diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..7a4de59 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +element-plus.run diff --git a/assets/editor.worker-BKc5bLP3-BO8eobv4.js b/assets/editor.worker-BKc5bLP3-BO8eobv4.js new file mode 100644 index 0000000..fe09d68 --- /dev/null +++ b/assets/editor.worker-BKc5bLP3-BO8eobv4.js @@ -0,0 +1,14423 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Avoid circular dependency on EventEmitter by implementing a subset of the interface. +class ErrorHandler { + constructor() { + this.listeners = []; + this.unexpectedErrorHandler = function (e) { + setTimeout(() => { + if (e.stack) { + if (ErrorNoTelemetry.isErrorNoTelemetry(e)) { + throw new ErrorNoTelemetry(e.message + '\n\n' + e.stack); + } + throw new Error(e.message + '\n\n' + e.stack); + } + throw e; + }, 0); + }; + } + emit(e) { + this.listeners.forEach((listener) => { + listener(e); + }); + } + onUnexpectedError(e) { + this.unexpectedErrorHandler(e); + this.emit(e); + } + // For external errors, we don't want the listeners to be called + onUnexpectedExternalError(e) { + this.unexpectedErrorHandler(e); + } +} +const errorHandler = new ErrorHandler(); +function onUnexpectedError(e) { + // ignore errors from cancelled promises + if (!isCancellationError(e)) { + errorHandler.onUnexpectedError(e); + } + return undefined; +} +function transformErrorForSerialization(error) { + if (error instanceof Error) { + const { name, message } = error; + const stack = error.stacktrace || error.stack; + return { + $isError: true, + name, + message, + stack, + noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error) + }; + } + // return as is + return error; +} +const canceledName = 'Canceled'; +/** + * Checks if the given error is a promise in canceled state + */ +function isCancellationError(error) { + if (error instanceof CancellationError) { + return true; + } + return error instanceof Error && error.name === canceledName && error.message === canceledName; +} +// !!!IMPORTANT!!! +// Do NOT change this class because it is also used as an API-type. +class CancellationError extends Error { + constructor() { + super(canceledName); + this.name = this.message; + } +} +/** + * Error that when thrown won't be logged in telemetry as an unhandled error. + */ +class ErrorNoTelemetry extends Error { + constructor(msg) { + super(msg); + this.name = 'CodeExpectedError'; + } + static fromError(err) { + if (err instanceof ErrorNoTelemetry) { + return err; + } + const result = new ErrorNoTelemetry(); + result.message = err.message; + result.stack = err.stack; + return result; + } + static isErrorNoTelemetry(err) { + return err.name === 'CodeExpectedError'; + } +} +/** + * This error indicates a bug. + * Do not throw this for invalid user input. + * Only catch this error to recover gracefully from bugs. + */ +class BugIndicatingError extends Error { + constructor(message) { + super(message || 'An unexpected bug occurred.'); + Object.setPrototypeOf(this, BugIndicatingError.prototype); + // Because we know for sure only buggy code throws this, + // we definitely want to break here and fix the bug. + // eslint-disable-next-line no-debugger + // debugger; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Given a function, returns a function that is only calling that function once. + */ +function createSingleCallFunction(fn, fnDidRunCallback) { + const _this = this; + let didCall = false; + let result; + return function () { + if (didCall) { + return result; + } + didCall = true; + { + result = fn.apply(_this, arguments); + } + return result; + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var Iterable; +(function (Iterable) { + function is(thing) { + return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function'; + } + Iterable.is = is; + const _empty = Object.freeze([]); + function empty() { + return _empty; + } + Iterable.empty = empty; + function* single(element) { + yield element; + } + Iterable.single = single; + function wrap(iterableOrElement) { + if (is(iterableOrElement)) { + return iterableOrElement; + } + else { + return single(iterableOrElement); + } + } + Iterable.wrap = wrap; + function from(iterable) { + return iterable || _empty; + } + Iterable.from = from; + function* reverse(array) { + for (let i = array.length - 1; i >= 0; i--) { + yield array[i]; + } + } + Iterable.reverse = reverse; + function isEmpty(iterable) { + return !iterable || iterable[Symbol.iterator]().next().done === true; + } + Iterable.isEmpty = isEmpty; + function first(iterable) { + return iterable[Symbol.iterator]().next().value; + } + Iterable.first = first; + function some(iterable, predicate) { + let i = 0; + for (const element of iterable) { + if (predicate(element, i++)) { + return true; + } + } + return false; + } + Iterable.some = some; + function find(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + return element; + } + } + return undefined; + } + Iterable.find = find; + function* filter(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + yield element; + } + } + } + Iterable.filter = filter; + function* map(iterable, fn) { + let index = 0; + for (const element of iterable) { + yield fn(element, index++); + } + } + Iterable.map = map; + function* flatMap(iterable, fn) { + let index = 0; + for (const element of iterable) { + yield* fn(element, index++); + } + } + Iterable.flatMap = flatMap; + function* concat(...iterables) { + for (const iterable of iterables) { + yield* iterable; + } + } + Iterable.concat = concat; + function reduce(iterable, reducer, initialValue) { + let value = initialValue; + for (const element of iterable) { + value = reducer(value, element); + } + return value; + } + Iterable.reduce = reduce; + /** + * Returns an iterable slice of the array, with the same semantics as `array.slice()`. + */ + function* slice(arr, from, to = arr.length) { + if (from < 0) { + from += arr.length; + } + if (to < 0) { + to += arr.length; + } + else if (to > arr.length) { + to = arr.length; + } + for (; from < to; from++) { + yield arr[from]; + } + } + Iterable.slice = slice; + /** + * Consumes `atMost` elements from iterable and returns the consumed elements, + * and an iterable for the rest of the elements. + */ + function consume(iterable, atMost = Number.POSITIVE_INFINITY) { + const consumed = []; + if (atMost === 0) { + return [consumed, iterable]; + } + const iterator = iterable[Symbol.iterator](); + for (let i = 0; i < atMost; i++) { + const next = iterator.next(); + if (next.done) { + return [consumed, Iterable.empty()]; + } + consumed.push(next.value); + } + return [consumed, { [Symbol.iterator]() { return iterator; } }]; + } + Iterable.consume = consume; + async function asyncToArray(iterable) { + const result = []; + for await (const item of iterable) { + result.push(item); + } + return Promise.resolve(result); + } + Iterable.asyncToArray = asyncToArray; +})(Iterable || (Iterable = {})); + +function trackDisposable(x) { + return x; +} +function setParentOfDisposable(child, parent) { +} +function dispose(arg) { + if (Iterable.is(arg)) { + const errors = []; + for (const d of arg) { + if (d) { + try { + d.dispose(); + } + catch (e) { + errors.push(e); + } + } + } + if (errors.length === 1) { + throw errors[0]; + } + else if (errors.length > 1) { + throw new AggregateError(errors, 'Encountered errors while disposing of store'); + } + return Array.isArray(arg) ? [] : arg; + } + else if (arg) { + arg.dispose(); + return arg; + } +} +/** + * Combine multiple disposable values into a single {@link IDisposable}. + */ +function combinedDisposable(...disposables) { + const parent = toDisposable(() => dispose(disposables)); + return parent; +} +/** + * Turn a function that implements dispose into an {@link IDisposable}. + * + * @param fn Clean up function, guaranteed to be called only **once**. + */ +function toDisposable(fn) { + const self = trackDisposable({ + dispose: createSingleCallFunction(() => { + fn(); + }) + }); + return self; +} +/** + * Manages a collection of disposable values. + * + * This is the preferred way to manage multiple disposables. A `DisposableStore` is safer to work with than an + * `IDisposable[]` as it considers edge cases, such as registering the same value multiple times or adding an item to a + * store that has already been disposed of. + */ +class DisposableStore { + static { this.DISABLE_DISPOSED_WARNING = false; } + constructor() { + this._toDispose = new Set(); + this._isDisposed = false; + } + /** + * Dispose of all registered disposables and mark this object as disposed. + * + * Any future disposables added to this object will be disposed of on `add`. + */ + dispose() { + if (this._isDisposed) { + return; + } + this._isDisposed = true; + this.clear(); + } + /** + * @return `true` if this object has been disposed of. + */ + get isDisposed() { + return this._isDisposed; + } + /** + * Dispose of all registered disposables but do not mark this object as disposed. + */ + clear() { + if (this._toDispose.size === 0) { + return; + } + try { + dispose(this._toDispose); + } + finally { + this._toDispose.clear(); + } + } + /** + * Add a new {@link IDisposable disposable} to the collection. + */ + add(o) { + if (!o) { + return o; + } + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + if (this._isDisposed) { + if (!DisposableStore.DISABLE_DISPOSED_WARNING) { + console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack); + } + } + else { + this._toDispose.add(o); + } + return o; + } + /** + * Deletes the value from the store, but does not dispose it. + */ + deleteAndLeak(o) { + if (!o) { + return; + } + if (this._toDispose.has(o)) { + this._toDispose.delete(o); + } + } +} +/** + * Abstract base class for a {@link IDisposable disposable} object. + * + * Subclasses can {@linkcode _register} disposables that will be automatically cleaned up when this object is disposed of. + */ +class Disposable { + /** + * A disposable that does nothing when it is disposed of. + * + * TODO: This should not be a static property. + */ + static { this.None = Object.freeze({ dispose() { } }); } + constructor() { + this._store = new DisposableStore(); + setParentOfDisposable(this._store); + } + dispose() { + this._store.dispose(); + } + /** + * Adds `o` to the collection of disposables managed by this object. + */ + _register(o) { + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + return this._store.add(o); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Node { + static { this.Undefined = new Node(undefined); } + constructor(element) { + this.element = element; + this.next = Node.Undefined; + this.prev = Node.Undefined; + } +} +class LinkedList { + constructor() { + this._first = Node.Undefined; + this._last = Node.Undefined; + this._size = 0; + } + get size() { + return this._size; + } + isEmpty() { + return this._first === Node.Undefined; + } + clear() { + let node = this._first; + while (node !== Node.Undefined) { + const next = node.next; + node.prev = Node.Undefined; + node.next = Node.Undefined; + node = next; + } + this._first = Node.Undefined; + this._last = Node.Undefined; + this._size = 0; + } + unshift(element) { + return this._insert(element, false); + } + push(element) { + return this._insert(element, true); + } + _insert(element, atTheEnd) { + const newNode = new Node(element); + if (this._first === Node.Undefined) { + this._first = newNode; + this._last = newNode; + } + else if (atTheEnd) { + // push + const oldLast = this._last; + this._last = newNode; + newNode.prev = oldLast; + oldLast.next = newNode; + } + else { + // unshift + const oldFirst = this._first; + this._first = newNode; + newNode.next = oldFirst; + oldFirst.prev = newNode; + } + this._size += 1; + let didRemove = false; + return () => { + if (!didRemove) { + didRemove = true; + this._remove(newNode); + } + }; + } + shift() { + if (this._first === Node.Undefined) { + return undefined; + } + else { + const res = this._first.element; + this._remove(this._first); + return res; + } + } + pop() { + if (this._last === Node.Undefined) { + return undefined; + } + else { + const res = this._last.element; + this._remove(this._last); + return res; + } + } + _remove(node) { + if (node.prev !== Node.Undefined && node.next !== Node.Undefined) { + // middle + const anchor = node.prev; + anchor.next = node.next; + node.next.prev = anchor; + } + else if (node.prev === Node.Undefined && node.next === Node.Undefined) { + // only node + this._first = Node.Undefined; + this._last = Node.Undefined; + } + else if (node.next === Node.Undefined) { + // last + this._last = this._last.prev; + this._last.next = Node.Undefined; + } + else if (node.prev === Node.Undefined) { + // first + this._first = this._first.next; + this._first.prev = Node.Undefined; + } + // done + this._size -= 1; + } + *[Symbol.iterator]() { + let node = this._first; + while (node !== Node.Undefined) { + yield node.element; + node = node.next; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const hasPerformanceNow = (globalThis.performance && typeof globalThis.performance.now === 'function'); +class StopWatch { + static create(highResolution) { + return new StopWatch(highResolution); + } + constructor(highResolution) { + this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance); + this._startTime = this._now(); + this._stopTime = -1; + } + stop() { + this._stopTime = this._now(); + } + reset() { + this._startTime = this._now(); + this._stopTime = -1; + } + elapsed() { + if (this._stopTime !== -1) { + return this._stopTime - this._startTime; + } + return this._now() - this._startTime; + } +} + +var Event; +(function (Event) { + Event.None = () => Disposable.None; + /** + * Given an event, returns another event which debounces calls and defers the listeners to a later task via a shared + * `setTimeout`. The event is converted into a signal (`Event`) to avoid additional object creation as a + * result of merging events and to try prevent race conditions that could arise when using related deferred and + * non-deferred events. + * + * This is useful for deferring non-critical work (eg. general UI updates) to ensure it does not block critical work + * (eg. latency of keypress to text rendered). + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function defer(event, disposable) { + return debounce(event, () => void 0, 0, undefined, true, undefined, disposable); + } + Event.defer = defer; + /** + * Given an event, returns another event which only fires once. + * + * @param event The event source for the new event. + */ + function once(event) { + return (listener, thisArgs = null, disposables) => { + // we need this, in case the event fires during the listener call + let didFire = false; + let result = undefined; + result = event(e => { + if (didFire) { + return; + } + else if (result) { + result.dispose(); + } + else { + didFire = true; + } + return listener.call(thisArgs, e); + }, null, disposables); + if (didFire) { + result.dispose(); + } + return result; + }; + } + Event.once = once; + /** + * Maps an event of one type into an event of another type using a mapping function, similar to how + * `Array.prototype.map` works. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param map The mapping function. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function map(event, map, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables), disposable); + } + Event.map = map; + /** + * Wraps an event in another event that performs some function on the event object before firing. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param each The function to perform on the event object. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function forEach(event, each, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable); + } + Event.forEach = forEach; + function filter(event, filter, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables), disposable); + } + Event.filter = filter; + /** + * Given an event, returns the same event but typed as `Event`. + */ + function signal(event) { + return event; + } + Event.signal = signal; + function any(...events) { + return (listener, thisArgs = null, disposables) => { + const disposable = combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e)))); + return addAndReturnDisposable(disposable, disposables); + }; + } + Event.any = any; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function reduce(event, merge, initial, disposable) { + let output = initial; + return map(event, e => { + output = merge(output, e); + return output; + }, disposable); + } + Event.reduce = reduce; + function snapshot(event, disposable) { + let listener; + const options = { + onWillAddFirstListener() { + listener = event(emitter.fire, emitter); + }, + onDidRemoveLastListener() { + listener?.dispose(); + } + }; + const emitter = new Emitter(options); + disposable?.add(emitter); + return emitter.event; + } + /** + * Adds the IDisposable to the store if it's set, and returns it. Useful to + * Event function implementation. + */ + function addAndReturnDisposable(d, store) { + if (store instanceof Array) { + store.push(d); + } + else if (store) { + store.add(d); + } + return d; + } + function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) { + let subscription; + let output = undefined; + let handle = undefined; + let numDebouncedCalls = 0; + let doFire; + const options = { + leakWarningThreshold, + onWillAddFirstListener() { + subscription = event(cur => { + numDebouncedCalls++; + output = merge(output, cur); + if (leading && !handle) { + emitter.fire(output); + output = undefined; + } + doFire = () => { + const _output = output; + output = undefined; + handle = undefined; + if (!leading || numDebouncedCalls > 1) { + emitter.fire(_output); + } + numDebouncedCalls = 0; + }; + if (typeof delay === 'number') { + clearTimeout(handle); + handle = setTimeout(doFire, delay); + } + else { + if (handle === undefined) { + handle = 0; + queueMicrotask(doFire); + } + } + }); + }, + onWillRemoveListener() { + if (flushOnListenerRemove && numDebouncedCalls > 0) { + doFire?.(); + } + }, + onDidRemoveLastListener() { + doFire = undefined; + subscription.dispose(); + } + }; + const emitter = new Emitter(options); + disposable?.add(emitter); + return emitter.event; + } + Event.debounce = debounce; + /** + * Debounces an event, firing after some delay (default=0) with an array of all event original objects. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function accumulate(event, delay = 0, disposable) { + return Event.debounce(event, (last, e) => { + if (!last) { + return [e]; + } + last.push(e); + return last; + }, delay, undefined, true, undefined, disposable); + } + Event.accumulate = accumulate; + /** + * Filters an event such that some condition is _not_ met more than once in a row, effectively ensuring duplicate + * event objects from different sources do not fire the same event object. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param equals The equality condition. + * @param disposable A disposable store to add the new EventEmitter to. + * + * @example + * ``` + * // Fire only one time when a single window is opened or focused + * Event.latch(Event.any(onDidOpenWindow, onDidFocusWindow)) + * ``` + */ + function latch(event, equals = (a, b) => a === b, disposable) { + let firstCall = true; + let cache; + return filter(event, value => { + const shouldEmit = firstCall || !equals(value, cache); + firstCall = false; + cache = value; + return shouldEmit; + }, disposable); + } + Event.latch = latch; + /** + * Splits an event whose parameter is a union type into 2 separate events for each type in the union. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @example + * ``` + * const event = new EventEmitter().event; + * const [numberEvent, undefinedEvent] = Event.split(event, isUndefined); + * ``` + * + * @param event The event source for the new event. + * @param isT A function that determines what event is of the first type. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function split(event, isT, disposable) { + return [ + Event.filter(event, isT, disposable), + Event.filter(event, e => !isT(e), disposable), + ]; + } + Event.split = split; + /** + * Buffers an event until it has a listener attached. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param flushAfterTimeout Determines whether to flush the buffer after a timeout immediately or after a + * `setTimeout` when the first event listener is added. + * @param _buffer Internal: A source event array used for tests. + * + * @example + * ``` + * // Start accumulating events, when the first listener is attached, flush + * // the event after a timeout such that multiple listeners attached before + * // the timeout would receive the event + * this.onInstallExtension = Event.buffer(service.onInstallExtension, true); + * ``` + */ + function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) { + let buffer = _buffer.slice(); + let listener = event(e => { + if (buffer) { + buffer.push(e); + } + else { + emitter.fire(e); + } + }); + if (disposable) { + disposable.add(listener); + } + const flush = () => { + buffer?.forEach(e => emitter.fire(e)); + buffer = null; + }; + const emitter = new Emitter({ + onWillAddFirstListener() { + if (!listener) { + listener = event(e => emitter.fire(e)); + if (disposable) { + disposable.add(listener); + } + } + }, + onDidAddFirstListener() { + if (buffer) { + if (flushAfterTimeout) { + setTimeout(flush); + } + else { + flush(); + } + } + }, + onDidRemoveLastListener() { + if (listener) { + listener.dispose(); + } + listener = null; + } + }); + if (disposable) { + disposable.add(emitter); + } + return emitter.event; + } + Event.buffer = buffer; + /** + * Wraps the event in an {@link IChainableEvent}, allowing a more functional programming style. + * + * @example + * ``` + * // Normal + * const onEnterPressNormal = Event.filter( + * Event.map(onKeyPress.event, e => new StandardKeyboardEvent(e)), + * e.keyCode === KeyCode.Enter + * ).event; + * + * // Using chain + * const onEnterPressChain = Event.chain(onKeyPress.event, $ => $ + * .map(e => new StandardKeyboardEvent(e)) + * .filter(e => e.keyCode === KeyCode.Enter) + * ); + * ``` + */ + function chain(event, sythensize) { + const fn = (listener, thisArgs, disposables) => { + const cs = sythensize(new ChainableSynthesis()); + return event(function (value) { + const result = cs.evaluate(value); + if (result !== HaltChainable) { + listener.call(thisArgs, result); + } + }, undefined, disposables); + }; + return fn; + } + Event.chain = chain; + const HaltChainable = Symbol('HaltChainable'); + class ChainableSynthesis { + constructor() { + this.steps = []; + } + map(fn) { + this.steps.push(fn); + return this; + } + forEach(fn) { + this.steps.push(v => { + fn(v); + return v; + }); + return this; + } + filter(fn) { + this.steps.push(v => fn(v) ? v : HaltChainable); + return this; + } + reduce(merge, initial) { + let last = initial; + this.steps.push(v => { + last = merge(last, v); + return last; + }); + return this; + } + latch(equals = (a, b) => a === b) { + let firstCall = true; + let cache; + this.steps.push(value => { + const shouldEmit = firstCall || !equals(value, cache); + firstCall = false; + cache = value; + return shouldEmit ? value : HaltChainable; + }); + return this; + } + evaluate(value) { + for (const step of this.steps) { + value = step(value); + if (value === HaltChainable) { + break; + } + } + return value; + } + } + /** + * Creates an {@link Event} from a node event emitter. + */ + function fromNodeEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.on(eventName, fn); + const onLastListenerRemove = () => emitter.removeListener(eventName, fn); + const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); + return result.event; + } + Event.fromNodeEventEmitter = fromNodeEventEmitter; + /** + * Creates an {@link Event} from a DOM event emitter. + */ + function fromDOMEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn); + const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn); + const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); + return result.event; + } + Event.fromDOMEventEmitter = fromDOMEventEmitter; + /** + * Creates a promise out of an event, using the {@link Event.once} helper. + */ + function toPromise(event) { + return new Promise(resolve => once(event)(resolve)); + } + Event.toPromise = toPromise; + /** + * Creates an event out of a promise that fires once when the promise is + * resolved with the result of the promise or `undefined`. + */ + function fromPromise(promise) { + const result = new Emitter(); + promise.then(res => { + result.fire(res); + }, () => { + result.fire(undefined); + }).finally(() => { + result.dispose(); + }); + return result.event; + } + Event.fromPromise = fromPromise; + /** + * A convenience function for forwarding an event to another emitter which + * improves readability. + * + * This is similar to {@link Relay} but allows instantiating and forwarding + * on a single line and also allows for multiple source events. + * @param from The event to forward. + * @param to The emitter to forward the event to. + * @example + * Event.forward(event, emitter); + * // equivalent to + * event(e => emitter.fire(e)); + * // equivalent to + * event(emitter.fire, emitter); + */ + function forward(from, to) { + return from(e => to.fire(e)); + } + Event.forward = forward; + function runAndSubscribe(event, handler, initial) { + handler(initial); + return event(e => handler(e)); + } + Event.runAndSubscribe = runAndSubscribe; + class EmitterObserver { + constructor(_observable, store) { + this._observable = _observable; + this._counter = 0; + this._hasChanged = false; + const options = { + onWillAddFirstListener: () => { + _observable.addObserver(this); + }, + onDidRemoveLastListener: () => { + _observable.removeObserver(this); + } + }; + this.emitter = new Emitter(options); + if (store) { + store.add(this.emitter); + } + } + beginUpdate(_observable) { + // assert(_observable === this.obs); + this._counter++; + } + handlePossibleChange(_observable) { + // assert(_observable === this.obs); + } + handleChange(_observable, _change) { + // assert(_observable === this.obs); + this._hasChanged = true; + } + endUpdate(_observable) { + // assert(_observable === this.obs); + this._counter--; + if (this._counter === 0) { + this._observable.reportChanges(); + if (this._hasChanged) { + this._hasChanged = false; + this.emitter.fire(this._observable.get()); + } + } + } + } + /** + * Creates an event emitter that is fired when the observable changes. + * Each listeners subscribes to the emitter. + */ + function fromObservable(obs, store) { + const observer = new EmitterObserver(obs, store); + return observer.emitter.event; + } + Event.fromObservable = fromObservable; + /** + * Each listener is attached to the observable directly. + */ + function fromObservableLight(observable) { + return (listener, thisArgs, disposables) => { + let count = 0; + let didChange = false; + const observer = { + beginUpdate() { + count++; + }, + endUpdate() { + count--; + if (count === 0) { + observable.reportChanges(); + if (didChange) { + didChange = false; + listener.call(thisArgs); + } + } + }, + handlePossibleChange() { + // noop + }, + handleChange() { + didChange = true; + } + }; + observable.addObserver(observer); + observable.reportChanges(); + const disposable = { + dispose() { + observable.removeObserver(observer); + } + }; + if (disposables instanceof DisposableStore) { + disposables.add(disposable); + } + else if (Array.isArray(disposables)) { + disposables.push(disposable); + } + return disposable; + }; + } + Event.fromObservableLight = fromObservableLight; +})(Event || (Event = {})); +class EventProfiling { + static { this.all = new Set(); } + static { this._idPool = 0; } + constructor(name) { + this.listenerCount = 0; + this.invocationCount = 0; + this.elapsedOverall = 0; + this.durations = []; + this.name = `${name}_${EventProfiling._idPool++}`; + EventProfiling.all.add(this); + } + start(listenerCount) { + this._stopWatch = new StopWatch(); + this.listenerCount = listenerCount; + } + stop() { + if (this._stopWatch) { + const elapsed = this._stopWatch.elapsed(); + this.durations.push(elapsed); + this.elapsedOverall += elapsed; + this.invocationCount += 1; + this._stopWatch = undefined; + } + } +} +let _globalLeakWarningThreshold = -1; +class LeakageMonitor { + static { this._idPool = 1; } + constructor(_errorHandler, threshold, name = (LeakageMonitor._idPool++).toString(16).padStart(3, '0')) { + this._errorHandler = _errorHandler; + this.threshold = threshold; + this.name = name; + this._warnCountdown = 0; + } + dispose() { + this._stacks?.clear(); + } + check(stack, listenerCount) { + const threshold = this.threshold; + if (threshold <= 0 || listenerCount < threshold) { + return undefined; + } + if (!this._stacks) { + this._stacks = new Map(); + } + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count + 1); + this._warnCountdown -= 1; + if (this._warnCountdown <= 0) { + // only warn on first exceed and then every time the limit + // is exceeded by 50% again + this._warnCountdown = threshold * 0.5; + const [topStack, topCount] = this.getMostFrequentStack(); + const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`; + console.warn(message); + console.warn(topStack); + const error = new ListenerLeakError(message, topStack); + this._errorHandler(error); + } + return () => { + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count - 1); + }; + } + getMostFrequentStack() { + if (!this._stacks) { + return undefined; + } + let topStack; + let topCount = 0; + for (const [stack, count] of this._stacks) { + if (!topStack || topCount < count) { + topStack = [stack, count]; + topCount = count; + } + } + return topStack; + } +} +class Stacktrace { + static create() { + const err = new Error(); + return new Stacktrace(err.stack ?? ''); + } + constructor(value) { + this.value = value; + } + print() { + console.warn(this.value.split('\n').slice(2).join('\n')); + } +} +// error that is logged when going over the configured listener threshold +class ListenerLeakError extends Error { + constructor(message, stack) { + super(message); + this.name = 'ListenerLeakError'; + this.stack = stack; + } +} +// SEVERE error that is logged when having gone way over the configured listener +// threshold so that the emitter refuses to accept more listeners +class ListenerRefusalError extends Error { + constructor(message, stack) { + super(message); + this.name = 'ListenerRefusalError'; + this.stack = stack; + } +} +class UniqueContainer { + constructor(value) { + this.value = value; + } +} +const compactionThreshold = 2; +/** + * The Emitter can be used to expose an Event to the public + * to fire it from the insides. + * Sample: + class Document { + + private readonly _onDidChange = new Emitter<(value:string)=>any>(); + + public onDidChange = this._onDidChange.event; + + // getter-style + // get onDidChange(): Event<(value:string)=>any> { + // return this._onDidChange.event; + // } + + private _doIt() { + //... + this._onDidChange.fire(value); + } + } + */ +class Emitter { + constructor(options) { + this._size = 0; + this._options = options; + this._leakageMon = (this._options?.leakWarningThreshold) + ? new LeakageMonitor(options?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold) : + undefined; + this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : undefined; + this._deliveryQueue = this._options?.deliveryQueue; + } + dispose() { + if (!this._disposed) { + this._disposed = true; + // It is bad to have listeners at the time of disposing an emitter, it is worst to have listeners keep the emitter + // alive via the reference that's embedded in their disposables. Therefore we loop over all remaining listeners and + // unset their subscriptions/disposables. Looping and blaming remaining listeners is done on next tick because the + // the following programming pattern is very popular: + // + // const someModel = this._disposables.add(new ModelObject()); // (1) create and register model + // this._disposables.add(someModel.onDidChange(() => { ... }); // (2) subscribe and register model-event listener + // ...later... + // this._disposables.dispose(); disposes (1) then (2): don't warn after (1) but after the "overall dispose" is done + if (this._deliveryQueue?.current === this) { + this._deliveryQueue.reset(); + } + if (this._listeners) { + this._listeners = undefined; + this._size = 0; + } + this._options?.onDidRemoveLastListener?.(); + this._leakageMon?.dispose(); + } + } + /** + * For the public to allow to subscribe + * to events from this Emitter + */ + get event() { + this._event ??= (callback, thisArgs, disposables) => { + if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) { + const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`; + console.warn(message); + const tuple = this._leakageMon.getMostFrequentStack() ?? ['UNKNOWN stack', -1]; + const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]); + const errorHandler = this._options?.onListenerError || onUnexpectedError; + errorHandler(error); + return Disposable.None; + } + if (this._disposed) { + // todo: should we warn if a listener is added to a disposed emitter? This happens often + return Disposable.None; + } + if (thisArgs) { + callback = callback.bind(thisArgs); + } + const contained = new UniqueContainer(callback); + let removeMonitor; + if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) { + // check and record this emitter for potential leakage + contained.stack = Stacktrace.create(); + removeMonitor = this._leakageMon.check(contained.stack, this._size + 1); + } + if (!this._listeners) { + this._options?.onWillAddFirstListener?.(this); + this._listeners = contained; + this._options?.onDidAddFirstListener?.(this); + } + else if (this._listeners instanceof UniqueContainer) { + this._deliveryQueue ??= new EventDeliveryQueuePrivate(); + this._listeners = [this._listeners, contained]; + } + else { + this._listeners.push(contained); + } + this._size++; + const result = toDisposable(() => { + removeMonitor?.(); + this._removeListener(contained); + }); + if (disposables instanceof DisposableStore) { + disposables.add(result); + } + else if (Array.isArray(disposables)) { + disposables.push(result); + } + return result; + }; + return this._event; + } + _removeListener(listener) { + this._options?.onWillRemoveListener?.(this); + if (!this._listeners) { + return; // expected if a listener gets disposed + } + if (this._size === 1) { + this._listeners = undefined; + this._options?.onDidRemoveLastListener?.(this); + this._size = 0; + return; + } + // size > 1 which requires that listeners be a list: + const listeners = this._listeners; + const index = listeners.indexOf(listener); + if (index === -1) { + console.log('disposed?', this._disposed); + console.log('size?', this._size); + console.log('arr?', JSON.stringify(this._listeners)); + throw new Error('Attempted to dispose unknown listener'); + } + this._size--; + listeners[index] = undefined; + const adjustDeliveryQueue = this._deliveryQueue.current === this; + if (this._size * compactionThreshold <= listeners.length) { + let n = 0; + for (let i = 0; i < listeners.length; i++) { + if (listeners[i]) { + listeners[n++] = listeners[i]; + } + else if (adjustDeliveryQueue) { + this._deliveryQueue.end--; + if (n < this._deliveryQueue.i) { + this._deliveryQueue.i--; + } + } + } + listeners.length = n; + } + } + _deliver(listener, value) { + if (!listener) { + return; + } + const errorHandler = this._options?.onListenerError || onUnexpectedError; + if (!errorHandler) { + listener.value(value); + return; + } + try { + listener.value(value); + } + catch (e) { + errorHandler(e); + } + } + /** Delivers items in the queue. Assumes the queue is ready to go. */ + _deliverQueue(dq) { + const listeners = dq.current._listeners; + while (dq.i < dq.end) { + // important: dq.i is incremented before calling deliver() because it might reenter deliverQueue() + this._deliver(listeners[dq.i++], dq.value); + } + dq.reset(); + } + /** + * To be kept private to fire an event to + * subscribers + */ + fire(event) { + if (this._deliveryQueue?.current) { + this._deliverQueue(this._deliveryQueue); + this._perfMon?.stop(); // last fire() will have starting perfmon, stop it before starting the next dispatch + } + this._perfMon?.start(this._size); + if (!this._listeners) ; + else if (this._listeners instanceof UniqueContainer) { + this._deliver(this._listeners, event); + } + else { + const dq = this._deliveryQueue; + dq.enqueue(this, event, this._listeners.length); + this._deliverQueue(dq); + } + this._perfMon?.stop(); + } + hasListeners() { + return this._size > 0; + } +} +class EventDeliveryQueuePrivate { + constructor() { + /** + * Index in current's listener list. + */ + this.i = -1; + /** + * The last index in the listener's list to deliver. + */ + this.end = 0; + } + enqueue(emitter, value, end) { + this.i = 0; + this.end = end; + this.current = emitter; + this.value = value; + } + reset() { + this.i = this.end; // force any current emission loop to stop, mainly for during dispose + this.current = undefined; + this.value = undefined; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * @returns whether the provided parameter is a JavaScript String or not. + */ +function isString(str) { + return (typeof str === 'string'); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getAllPropertyNames(obj) { + let res = []; + while (Object.prototype !== obj) { + res = res.concat(Object.getOwnPropertyNames(obj)); + obj = Object.getPrototypeOf(obj); + } + return res; +} +function getAllMethodNames(obj) { + const methods = []; + for (const prop of getAllPropertyNames(obj)) { + if (typeof obj[prop] === 'function') { + methods.push(prop); + } + } + return methods; +} +function createProxyObject$1(methodNames, invoke) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const result = {}; + for (const methodName of methodNames) { + result[methodName] = createProxyMethod(methodName); + } + return result; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/* + * This module exists so that the AMD build of the monaco editor can replace this with an async loader plugin. + * If you add new functions to this module make sure that they are also provided in the AMD build of the monaco editor. + */ +function getNLSMessages() { + return globalThis._VSCODE_NLS_MESSAGES; +} +function getNLSLanguage() { + return globalThis._VSCODE_NLS_LANGUAGE; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// eslint-disable-next-line local/code-import-patterns +// VSCODE_GLOBALS: NLS +const isPseudo = getNLSLanguage() === 'pseudo' || (typeof document !== 'undefined' && document.location && document.location.hash.indexOf('pseudo=true') >= 0); +function _format$1(message, args) { + let result; + if (args.length === 0) { + result = message; + } + else { + result = message.replace(/\{(\d+)\}/g, (match, rest) => { + const index = rest[0]; + const arg = args[index]; + let result = match; + if (typeof arg === 'string') { + result = arg; + } + else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) { + result = String(arg); + } + return result; + }); + } + if (isPseudo) { + // FF3B and FF3D is the Unicode zenkaku representation for [ and ] + result = '\uFF3B' + result.replace(/[aouei]/g, '$&$&') + '\uFF3D'; + } + return result; +} +/** + * @skipMangle + */ +function localize(data /* | number when built */, message /* | null when built */, ...args) { + if (typeof data === 'number') { + return _format$1(lookupMessage(data, message), args); + } + return _format$1(message, args); +} +/** + * Only used when built: Looks up the message in the global NLS table. + * This table is being made available as a global through bootstrapping + * depending on the target context. + */ +function lookupMessage(index, fallback) { + // VSCODE_GLOBALS: NLS + const message = getNLSMessages()?.[index]; + if (typeof message !== 'string') { + if (typeof fallback === 'string') { + return fallback; + } + throw new Error(`!!! NLS MISSING: ${index} !!!`); + } + return message; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const LANGUAGE_DEFAULT = 'en'; +let _isWindows = false; +let _isMacintosh = false; +let _isLinux = false; +let _locale = undefined; +let _language = LANGUAGE_DEFAULT; +let _platformLocale = LANGUAGE_DEFAULT; +let _translationsConfigFile = undefined; +let _userAgent = undefined; +const $globalThis = globalThis; +let nodeProcess = undefined; +if (typeof $globalThis.vscode !== 'undefined' && typeof $globalThis.vscode.process !== 'undefined') { + // Native environment (sandboxed) + nodeProcess = $globalThis.vscode.process; +} +else if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') { + // Native environment (non-sandboxed) + nodeProcess = process; +} +const isElectronProcess = typeof nodeProcess?.versions?.electron === 'string'; +const isElectronRenderer = isElectronProcess && nodeProcess?.type === 'renderer'; +// Native environment +if (typeof nodeProcess === 'object') { + _isWindows = (nodeProcess.platform === 'win32'); + _isMacintosh = (nodeProcess.platform === 'darwin'); + _isLinux = (nodeProcess.platform === 'linux'); + _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION']; + !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY']; + _locale = LANGUAGE_DEFAULT; + _language = LANGUAGE_DEFAULT; + const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG']; + if (rawNlsConfig) { + try { + const nlsConfig = JSON.parse(rawNlsConfig); + _locale = nlsConfig.userLocale; + _platformLocale = nlsConfig.osLocale; + _language = nlsConfig.resolvedLanguage || LANGUAGE_DEFAULT; + _translationsConfigFile = nlsConfig.languagePack?.translationsConfigFile; + } + catch (e) { + } + } +} +// Web environment +else if (typeof navigator === 'object' && !isElectronRenderer) { + _userAgent = navigator.userAgent; + _isWindows = _userAgent.indexOf('Windows') >= 0; + _isMacintosh = _userAgent.indexOf('Macintosh') >= 0; + (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0; + _isLinux = _userAgent.indexOf('Linux') >= 0; + _userAgent?.indexOf('Mobi') >= 0; + // VSCODE_GLOBALS: NLS + _language = getNLSLanguage() || LANGUAGE_DEFAULT; + _locale = navigator.language.toLowerCase(); + _platformLocale = _locale; +} +// Unknown environment +else { + console.error('Unable to resolve platform.'); +} +const isWindows = _isWindows; +const isMacintosh = _isMacintosh; +const userAgent = _userAgent; +const setTimeout0IsFaster = (typeof $globalThis.postMessage === 'function' && !$globalThis.importScripts); +/** + * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-. + * + * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay + * that browsers set when the nesting level is > 5. + */ +(() => { + if (setTimeout0IsFaster) { + const pending = []; + $globalThis.addEventListener('message', (e) => { + if (e.data && e.data.vscodeScheduleAsyncWork) { + for (let i = 0, len = pending.length; i < len; i++) { + const candidate = pending[i]; + if (candidate.id === e.data.vscodeScheduleAsyncWork) { + pending.splice(i, 1); + candidate.callback(); + return; + } + } + } + }); + let lastId = 0; + return (callback) => { + const myId = ++lastId; + pending.push({ + id: myId, + callback: callback + }); + $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, '*'); + }; + } + return (callback) => setTimeout(callback); +})(); +const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0); +!!(userAgent && userAgent.indexOf('Firefox') >= 0); +!!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0)); +!!(userAgent && userAgent.indexOf('Edg/') >= 0); +!!(userAgent && userAgent.indexOf('Android') >= 0); + +function identity(t) { + return t; +} +/** + * Uses a LRU cache to make a given parametrized function cached. + * Caches just the last key/value. +*/ +class LRUCachedFunction { + constructor(arg1, arg2) { + this.lastCache = undefined; + this.lastArgKey = undefined; + if (typeof arg1 === 'function') { + this._fn = arg1; + this._computeKey = identity; + } + else { + this._fn = arg2; + this._computeKey = arg1.getCacheKey; + } + } + get(arg) { + const key = this._computeKey(arg); + if (this.lastArgKey !== key) { + this.lastArgKey = key; + this.lastCache = this._fn(arg); + } + return this.lastCache; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Lazy { + constructor(executor) { + this.executor = executor; + this._didRun = false; + } + /** + * Get the wrapped value. + * + * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only + * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value + */ + get value() { + if (!this._didRun) { + try { + this._value = this.executor(); + } + catch (err) { + this._error = err; + } + finally { + this._didRun = true; + } + } + if (this._error) { + throw this._error; + } + return this._value; + } + /** + * Get the wrapped value without forcing evaluation. + */ + get rawValue() { return this._value; } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Escapes regular expression characters in a given string + */ +function escapeRegExpCharacters(value) { + return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, '\\$&'); +} +function splitLines(str) { + return str.split(/\r\n|\r|\n/); +} +/** + * Returns first index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function firstNonWhitespaceIndex(str) { + for (let i = 0, len = str.length; i < len; i++) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +/** + * Returns last index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function lastNonWhitespaceIndex(str, startIndex = str.length - 1) { + for (let i = startIndex; i >= 0; i--) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +function isUpperAsciiLetter(code) { + return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */; +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isHighSurrogate(charCode) { + return (0xD800 <= charCode && charCode <= 0xDBFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isLowSurrogate(charCode) { + return (0xDC00 <= charCode && charCode <= 0xDFFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function computeCodePoint(highSurrogate, lowSurrogate) { + return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000; +} +/** + * get the code point that begins at offset `offset` + */ +function getNextCodePoint(str, len, offset) { + const charCode = str.charCodeAt(offset); + if (isHighSurrogate(charCode) && offset + 1 < len) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + return computeCodePoint(charCode, nextCharCode); + } + } + return charCode; +} +const IS_BASIC_ASCII = /^[\t\n\r\x20-\x7E]*$/; +/** + * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \n, \r, \t + */ +function isBasicASCII(str) { + return IS_BASIC_ASCII.test(str); +} +class AmbiguousCharacters { + static { this.ambiguousCharacterData = new Lazy(() => { + // Generated using https://github.com/hediet/vscode-unicode-data + // Stored as key1, value1, key2, value2, ... + 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]}'); + }); } + static { this.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => { + function arrayToMap(arr) { + const result = new Map(); + for (let i = 0; i < arr.length; i += 2) { + result.set(arr[i], arr[i + 1]); + } + return result; + } + function mergeMaps(map1, map2) { + const result = new Map(map1); + for (const [key, value] of map2) { + result.set(key, value); + } + return result; + } + function intersectMaps(map1, map2) { + if (!map1) { + return map2; + } + const result = new Map(); + for (const [key, value] of map1) { + if (map2.has(key)) { + result.set(key, value); + } + } + return result; + } + const data = this.ambiguousCharacterData.value; + let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data); + if (filteredLocales.length === 0) { + filteredLocales = ['_default']; + } + let languageSpecificMap = undefined; + for (const locale of filteredLocales) { + const map = arrayToMap(data[locale]); + languageSpecificMap = intersectMaps(languageSpecificMap, map); + } + const commonMap = arrayToMap(data['_common']); + const map = mergeMaps(commonMap, languageSpecificMap); + return new AmbiguousCharacters(map); + }); } + static getInstance(locales) { + return AmbiguousCharacters.cache.get(Array.from(locales)); + } + static { this._locales = new Lazy(() => Object.keys(AmbiguousCharacters.ambiguousCharacterData.value).filter((k) => !k.startsWith('_'))); } + static getLocales() { + return AmbiguousCharacters._locales.value; + } + constructor(confusableDictionary) { + this.confusableDictionary = confusableDictionary; + } + isAmbiguous(codePoint) { + return this.confusableDictionary.has(codePoint); + } + /** + * Returns the non basic ASCII code point that the given code point can be confused, + * or undefined if such code point does note exist. + */ + getPrimaryConfusable(codePoint) { + return this.confusableDictionary.get(codePoint); + } + getConfusableCodePoints() { + return new Set(this.confusableDictionary.keys()); + } +} +class InvisibleCharacters { + static getRawData() { + // Generated using https://github.com/hediet/vscode-unicode-data + 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]'); + } + static { this._data = undefined; } + static getData() { + if (!this._data) { + this._data = new Set(InvisibleCharacters.getRawData()); + } + return this._data; + } + static isInvisibleCharacter(codePoint) { + return InvisibleCharacters.getData().has(codePoint); + } + static get codePoints() { + return InvisibleCharacters.getData(); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const INITIALIZE = '$initialize'; +class RequestMessage { + constructor(vsWorker, req, method, args) { + this.vsWorker = vsWorker; + this.req = req; + this.method = method; + this.args = args; + this.type = 0 /* MessageType.Request */; + } +} +class ReplyMessage { + constructor(vsWorker, seq, res, err) { + this.vsWorker = vsWorker; + this.seq = seq; + this.res = res; + this.err = err; + this.type = 1 /* MessageType.Reply */; + } +} +class SubscribeEventMessage { + constructor(vsWorker, req, eventName, arg) { + this.vsWorker = vsWorker; + this.req = req; + this.eventName = eventName; + this.arg = arg; + this.type = 2 /* MessageType.SubscribeEvent */; + } +} +class EventMessage { + constructor(vsWorker, req, event) { + this.vsWorker = vsWorker; + this.req = req; + this.event = event; + this.type = 3 /* MessageType.Event */; + } +} +class UnsubscribeEventMessage { + constructor(vsWorker, req) { + this.vsWorker = vsWorker; + this.req = req; + this.type = 4 /* MessageType.UnsubscribeEvent */; + } +} +class SimpleWorkerProtocol { + constructor(handler) { + this._workerId = -1; + this._handler = handler; + this._lastSentReq = 0; + this._pendingReplies = Object.create(null); + this._pendingEmitters = new Map(); + this._pendingEvents = new Map(); + } + setWorkerId(workerId) { + this._workerId = workerId; + } + sendMessage(method, args) { + const req = String(++this._lastSentReq); + return new Promise((resolve, reject) => { + this._pendingReplies[req] = { + resolve: resolve, + reject: reject + }; + this._send(new RequestMessage(this._workerId, req, method, args)); + }); + } + listen(eventName, arg) { + let req = null; + const emitter = new Emitter({ + onWillAddFirstListener: () => { + req = String(++this._lastSentReq); + this._pendingEmitters.set(req, emitter); + this._send(new SubscribeEventMessage(this._workerId, req, eventName, arg)); + }, + onDidRemoveLastListener: () => { + this._pendingEmitters.delete(req); + this._send(new UnsubscribeEventMessage(this._workerId, req)); + req = null; + } + }); + return emitter.event; + } + handleMessage(message) { + if (!message || !message.vsWorker) { + return; + } + if (this._workerId !== -1 && message.vsWorker !== this._workerId) { + return; + } + this._handleMessage(message); + } + _handleMessage(msg) { + switch (msg.type) { + case 1 /* MessageType.Reply */: + return this._handleReplyMessage(msg); + case 0 /* MessageType.Request */: + return this._handleRequestMessage(msg); + case 2 /* MessageType.SubscribeEvent */: + return this._handleSubscribeEventMessage(msg); + case 3 /* MessageType.Event */: + return this._handleEventMessage(msg); + case 4 /* MessageType.UnsubscribeEvent */: + return this._handleUnsubscribeEventMessage(msg); + } + } + _handleReplyMessage(replyMessage) { + if (!this._pendingReplies[replyMessage.seq]) { + console.warn('Got reply to unknown seq'); + return; + } + const reply = this._pendingReplies[replyMessage.seq]; + delete this._pendingReplies[replyMessage.seq]; + if (replyMessage.err) { + let err = replyMessage.err; + if (replyMessage.err.$isError) { + err = new Error(); + err.name = replyMessage.err.name; + err.message = replyMessage.err.message; + err.stack = replyMessage.err.stack; + } + reply.reject(err); + return; + } + reply.resolve(replyMessage.res); + } + _handleRequestMessage(requestMessage) { + const req = requestMessage.req; + const result = this._handler.handleMessage(requestMessage.method, requestMessage.args); + result.then((r) => { + this._send(new ReplyMessage(this._workerId, req, r, undefined)); + }, (e) => { + if (e.detail instanceof Error) { + // Loading errors have a detail property that points to the actual error + e.detail = transformErrorForSerialization(e.detail); + } + this._send(new ReplyMessage(this._workerId, req, undefined, transformErrorForSerialization(e))); + }); + } + _handleSubscribeEventMessage(msg) { + const req = msg.req; + const disposable = this._handler.handleEvent(msg.eventName, msg.arg)((event) => { + this._send(new EventMessage(this._workerId, req, event)); + }); + this._pendingEvents.set(req, disposable); + } + _handleEventMessage(msg) { + if (!this._pendingEmitters.has(msg.req)) { + console.warn('Got event for unknown req'); + return; + } + this._pendingEmitters.get(msg.req).fire(msg.event); + } + _handleUnsubscribeEventMessage(msg) { + if (!this._pendingEvents.has(msg.req)) { + console.warn('Got unsubscribe for unknown req'); + return; + } + this._pendingEvents.get(msg.req).dispose(); + this._pendingEvents.delete(msg.req); + } + _send(msg) { + const transfer = []; + if (msg.type === 0 /* MessageType.Request */) { + for (let i = 0; i < msg.args.length; i++) { + if (msg.args[i] instanceof ArrayBuffer) { + transfer.push(msg.args[i]); + } + } + } + else if (msg.type === 1 /* MessageType.Reply */) { + if (msg.res instanceof ArrayBuffer) { + transfer.push(msg.res); + } + } + this._handler.sendMessage(msg, transfer); + } +} +function propertyIsEvent(name) { + // Assume a property is an event if it has a form of "onSomething" + return name[0] === 'o' && name[1] === 'n' && isUpperAsciiLetter(name.charCodeAt(2)); +} +function propertyIsDynamicEvent(name) { + // Assume a property is a dynamic event (a method that returns an event) if it has a form of "onDynamicSomething" + return /^onDynamic/.test(name) && isUpperAsciiLetter(name.charCodeAt(9)); +} +function createProxyObject(methodNames, invoke, proxyListen) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const createProxyDynamicEvent = (eventName) => { + return function (arg) { + return proxyListen(eventName, arg); + }; + }; + const result = {}; + for (const methodName of methodNames) { + if (propertyIsDynamicEvent(methodName)) { + result[methodName] = createProxyDynamicEvent(methodName); + continue; + } + if (propertyIsEvent(methodName)) { + result[methodName] = proxyListen(methodName, undefined); + continue; + } + result[methodName] = createProxyMethod(methodName); + } + return result; +} +/** + * Worker side + */ +class SimpleWorkerServer { + constructor(postMessage, requestHandlerFactory) { + this._requestHandlerFactory = requestHandlerFactory; + this._requestHandler = null; + this._protocol = new SimpleWorkerProtocol({ + sendMessage: (msg, transfer) => { + postMessage(msg, transfer); + }, + handleMessage: (method, args) => this._handleMessage(method, args), + handleEvent: (eventName, arg) => this._handleEvent(eventName, arg) + }); + } + onmessage(msg) { + this._protocol.handleMessage(msg); + } + _handleMessage(method, args) { + if (method === INITIALIZE) { + return this.initialize(args[0], args[1], args[2], args[3]); + } + if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args)); + } + catch (e) { + return Promise.reject(e); + } + } + _handleEvent(eventName, arg) { + if (!this._requestHandler) { + throw new Error(`Missing requestHandler`); + } + if (propertyIsDynamicEvent(eventName)) { + const event = this._requestHandler[eventName].call(this._requestHandler, arg); + if (typeof event !== 'function') { + throw new Error(`Missing dynamic event ${eventName} on request handler.`); + } + return event; + } + if (propertyIsEvent(eventName)) { + const event = this._requestHandler[eventName]; + if (typeof event !== 'function') { + throw new Error(`Missing event ${eventName} on request handler.`); + } + return event; + } + throw new Error(`Malformed event name ${eventName}`); + } + initialize(workerId, loaderConfig, moduleId, hostMethods) { + this._protocol.setWorkerId(workerId); + const proxyMethodRequest = (method, args) => { + return this._protocol.sendMessage(method, args); + }; + const proxyListen = (eventName, arg) => { + return this._protocol.listen(eventName, arg); + }; + const hostProxy = createProxyObject(hostMethods, proxyMethodRequest, proxyListen); + if (this._requestHandlerFactory) { + // static request handler + this._requestHandler = this._requestHandlerFactory(hostProxy); + return Promise.resolve(getAllMethodNames(this._requestHandler)); + } + if (loaderConfig) { + // Remove 'baseUrl', handling it is beyond scope for now + if (typeof loaderConfig.baseUrl !== 'undefined') { + delete loaderConfig['baseUrl']; + } + if (typeof loaderConfig.paths !== 'undefined') { + if (typeof loaderConfig.paths.vs !== 'undefined') { + delete loaderConfig.paths['vs']; + } + } + if (typeof loaderConfig.trustedTypesPolicy !== 'undefined') { + // don't use, it has been destroyed during serialize + delete loaderConfig['trustedTypesPolicy']; + } + // Since this is in a web worker, enable catching errors + loaderConfig.catchError = true; + globalThis.require.config(loaderConfig); + } + return new Promise((resolve, reject) => { + // Use the global require to be sure to get the global config + // ESM-comment-begin + // const req = (globalThis.require || require); + // ESM-comment-end + // ESM-uncomment-begin + const req = globalThis.require; + // ESM-uncomment-end + req([moduleId], (module) => { + this._requestHandler = module.create(hostProxy); + if (!this._requestHandler) { + reject(new Error(`No RequestHandler!`)); + return; + } + resolve(getAllMethodNames(this._requestHandler)); + }, reject); + }); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Represents information about a specific difference between two sequences. + */ +class DiffChange { + /** + * Constructs a new DiffChange with the given sequence information + * and content. + */ + constructor(originalStart, originalLength, modifiedStart, modifiedLength) { + //Debug.Assert(originalLength > 0 || modifiedLength > 0, "originalLength and modifiedLength cannot both be <= 0"); + this.originalStart = originalStart; + this.originalLength = originalLength; + this.modifiedStart = modifiedStart; + this.modifiedLength = modifiedLength; + } + /** + * The end point (exclusive) of the change in the original sequence. + */ + getOriginalEnd() { + return this.originalStart + this.originalLength; + } + /** + * The end point (exclusive) of the change in the modified sequence. + */ + getModifiedEnd() { + return this.modifiedStart + this.modifiedLength; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function numberHash(val, initialHashVal) { + return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32 +} +function stringHash(s, hashVal) { + hashVal = numberHash(149417, hashVal); + for (let i = 0, length = s.length; i < length; i++) { + hashVal = numberHash(s.charCodeAt(i), hashVal); + } + return hashVal; +} +function leftRotate(value, bits, totalBits = 32) { + // delta + bits = totalBits + const delta = totalBits - bits; + // All ones, expect `delta` zeros aligned to the right + const mask = ~((1 << delta) - 1); + // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits) + return ((value << bits) | ((mask & value) >>> delta)) >>> 0; +} +function fill(dest, index = 0, count = dest.byteLength, value = 0) { + for (let i = 0; i < count; i++) { + dest[index + i] = value; + } +} +function leftPad(value, length, char = '0') { + while (value.length < length) { + value = char + value; + } + return value; +} +function toHexString(bufferOrValue, bitsize = 32) { + if (bufferOrValue instanceof ArrayBuffer) { + return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join(''); + } + return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4); +} +/** + * A SHA1 implementation that works with strings and does not allocate. + */ +class StringSHA1 { + static { this._bigBlock32 = new DataView(new ArrayBuffer(320)); } // 80 * 4 = 320 + constructor() { + this._h0 = 0x67452301; + this._h1 = 0xEFCDAB89; + this._h2 = 0x98BADCFE; + this._h3 = 0x10325476; + this._h4 = 0xC3D2E1F0; + this._buff = new Uint8Array(64 /* SHA1Constant.BLOCK_SIZE */ + 3 /* to fit any utf-8 */); + this._buffDV = new DataView(this._buff.buffer); + this._buffLen = 0; + this._totalLen = 0; + this._leftoverHighSurrogate = 0; + this._finished = false; + } + update(str) { + const strLen = str.length; + if (strLen === 0) { + return; + } + const buff = this._buff; + let buffLen = this._buffLen; + let leftoverHighSurrogate = this._leftoverHighSurrogate; + let charCode; + let offset; + if (leftoverHighSurrogate !== 0) { + charCode = leftoverHighSurrogate; + offset = -1; + leftoverHighSurrogate = 0; + } + else { + charCode = str.charCodeAt(0); + offset = 0; + } + while (true) { + let codePoint = charCode; + if (isHighSurrogate(charCode)) { + if (offset + 1 < strLen) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + offset++; + codePoint = computeCodePoint(charCode, nextCharCode); + } + else { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + } + else { + // last character is a surrogate pair + leftoverHighSurrogate = charCode; + break; + } + } + else if (isLowSurrogate(charCode)) { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + buffLen = this._push(buff, buffLen, codePoint); + offset++; + if (offset < strLen) { + charCode = str.charCodeAt(offset); + } + else { + break; + } + } + this._buffLen = buffLen; + this._leftoverHighSurrogate = leftoverHighSurrogate; + } + _push(buff, buffLen, codePoint) { + if (codePoint < 0x0080) { + buff[buffLen++] = codePoint; + } + else if (codePoint < 0x0800) { + buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else if (codePoint < 0x10000) { + buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else { + buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + if (buffLen >= 64 /* SHA1Constant.BLOCK_SIZE */) { + this._step(); + buffLen -= 64 /* SHA1Constant.BLOCK_SIZE */; + this._totalLen += 64 /* SHA1Constant.BLOCK_SIZE */; + // take last 3 in case of UTF8 overflow + buff[0] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 0]; + buff[1] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 1]; + buff[2] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 2]; + } + return buffLen; + } + digest() { + if (!this._finished) { + this._finished = true; + if (this._leftoverHighSurrogate) { + // illegal => unicode replacement character + this._leftoverHighSurrogate = 0; + this._buffLen = this._push(this._buff, this._buffLen, 65533 /* SHA1Constant.UNICODE_REPLACEMENT */); + } + this._totalLen += this._buffLen; + this._wrapUp(); + } + return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4); + } + _wrapUp() { + this._buff[this._buffLen++] = 0x80; + fill(this._buff, this._buffLen); + if (this._buffLen > 56) { + this._step(); + fill(this._buff); + } + // this will fit because the mantissa can cover up to 52 bits + const ml = 8 * this._totalLen; + this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false); + this._buffDV.setUint32(60, ml % 4294967296, false); + this._step(); + } + _step() { + const bigBlock32 = StringSHA1._bigBlock32; + const data = this._buffDV; + for (let j = 0; j < 64 /* 16*4 */; j += 4) { + bigBlock32.setUint32(j, data.getUint32(j, false), false); + } + for (let j = 64; j < 320 /* 80*4 */; j += 4) { + bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false); + } + let a = this._h0; + let b = this._h1; + let c = this._h2; + let d = this._h3; + let e = this._h4; + let f, k; + let temp; + for (let j = 0; j < 80; j++) { + if (j < 20) { + f = (b & c) | ((~b) & d); + k = 0x5A827999; + } + else if (j < 40) { + f = b ^ c ^ d; + k = 0x6ED9EBA1; + } + else if (j < 60) { + f = (b & c) | (b & d) | (c & d); + k = 0x8F1BBCDC; + } + else { + f = b ^ c ^ d; + k = 0xCA62C1D6; + } + temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff; + e = d; + d = c; + c = leftRotate(b, 30); + b = a; + a = temp; + } + this._h0 = (this._h0 + a) & 0xffffffff; + this._h1 = (this._h1 + b) & 0xffffffff; + this._h2 = (this._h2 + c) & 0xffffffff; + this._h3 = (this._h3 + d) & 0xffffffff; + this._h4 = (this._h4 + e) & 0xffffffff; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class StringDiffSequence { + constructor(source) { + this.source = source; + } + getElements() { + const source = this.source; + const characters = new Int32Array(source.length); + for (let i = 0, len = source.length; i < len; i++) { + characters[i] = source.charCodeAt(i); + } + return characters; + } +} +function stringDiff(original, modified, pretty) { + return new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes; +} +// +// The code below has been ported from a C# implementation in VS +// +class Debug { + static Assert(condition, message) { + if (!condition) { + throw new Error(message); + } + } +} +class MyArray { + /** + * Copies a range of elements from an Array starting at the specified source index and pastes + * them to another Array starting at the specified destination index. The length and the indexes + * are specified as 64-bit integers. + * sourceArray: + * The Array that contains the data to copy. + * sourceIndex: + * A 64-bit integer that represents the index in the sourceArray at which copying begins. + * destinationArray: + * The Array that receives the data. + * destinationIndex: + * A 64-bit integer that represents the index in the destinationArray at which storing begins. + * length: + * A 64-bit integer that represents the number of elements to copy. + */ + static Copy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } + static Copy2(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } +} +/** + * A utility class which helps to create the set of DiffChanges from + * a difference operation. This class accepts original DiffElements and + * modified DiffElements that are involved in a particular change. The + * MarkNextChange() method can be called to mark the separation between + * distinct changes. At the end, the Changes property can be called to retrieve + * the constructed changes. + */ +class DiffChangeHelper { + /** + * Constructs a new DiffChangeHelper for the given DiffSequences. + */ + constructor() { + this.m_changes = []; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_originalCount = 0; + this.m_modifiedCount = 0; + } + /** + * Marks the beginning of the next change in the set of differences. + */ + MarkNextChange() { + // Only add to the list if there is something to add + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Add the new change to our list + this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount)); + } + // Reset for the next change + this.m_originalCount = 0; + this.m_modifiedCount = 0; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + } + /** + * Adds the original element at the given position to the elements + * affected by the current change. The modified index gives context + * to the change position with respect to the original sequence. + * @param originalIndex The index of the original element to add. + * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence. + */ + AddOriginalElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_originalCount++; + } + /** + * Adds the modified element at the given position to the elements + * affected by the current change. The original index gives context + * to the change position with respect to the modified sequence. + * @param originalIndex The index of the original element that provides corresponding position in the original sequence. + * @param modifiedIndex The index of the modified element to add. + */ + AddModifiedElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_modifiedCount++; + } + /** + * Retrieves all of the changes marked by the class. + */ + getChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + return this.m_changes; + } + /** + * Retrieves all of the changes marked by the class in the reverse order + */ + getReverseChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + this.m_changes.reverse(); + return this.m_changes; + } +} +/** + * An implementation of the difference algorithm described in + * "An O(ND) Difference Algorithm and its variations" by Eugene W. Myers + */ +class LcsDiff { + /** + * Constructs the DiffFinder + */ + constructor(originalSequence, modifiedSequence, continueProcessingPredicate = null) { + this.ContinueProcessingPredicate = continueProcessingPredicate; + this._originalSequence = originalSequence; + this._modifiedSequence = modifiedSequence; + const [originalStringElements, originalElementsOrHash, originalHasStrings] = LcsDiff._getElements(originalSequence); + const [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = LcsDiff._getElements(modifiedSequence); + this._hasStrings = (originalHasStrings && modifiedHasStrings); + this._originalStringElements = originalStringElements; + this._originalElementsOrHash = originalElementsOrHash; + this._modifiedStringElements = modifiedStringElements; + this._modifiedElementsOrHash = modifiedElementsOrHash; + this.m_forwardHistory = []; + this.m_reverseHistory = []; + } + static _isStringArray(arr) { + return (arr.length > 0 && typeof arr[0] === 'string'); + } + static _getElements(sequence) { + const elements = sequence.getElements(); + if (LcsDiff._isStringArray(elements)) { + const hashes = new Int32Array(elements.length); + for (let i = 0, len = elements.length; i < len; i++) { + hashes[i] = stringHash(elements[i], 0); + } + return [elements, hashes, true]; + } + if (elements instanceof Int32Array) { + return [[], elements, false]; + } + return [[], new Int32Array(elements), false]; + } + ElementsAreEqual(originalIndex, newIndex) { + if (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true); + } + ElementsAreStrictEqual(originalIndex, newIndex) { + if (!this.ElementsAreEqual(originalIndex, newIndex)) { + return false; + } + const originalElement = LcsDiff._getStrictElement(this._originalSequence, originalIndex); + const modifiedElement = LcsDiff._getStrictElement(this._modifiedSequence, newIndex); + return (originalElement === modifiedElement); + } + static _getStrictElement(sequence, index) { + if (typeof sequence.getStrictElement === 'function') { + return sequence.getStrictElement(index); + } + return null; + } + OriginalElementsAreEqual(index1, index2) { + if (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true); + } + ModifiedElementsAreEqual(index1, index2) { + if (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true); + } + ComputeDiff(pretty) { + return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty); + } + /** + * Computes the differences between the original and modified input + * sequences on the bounded range. + * @returns An array of the differences between the two input sequences. + */ + _ComputeDiff(originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) { + const quitEarlyArr = [false]; + let changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr); + if (pretty) { + // We have to clean up the computed diff to be more intuitive + // but it turns out this cannot be done correctly until the entire set + // of diffs have been computed + changes = this.PrettifyChanges(changes); + } + return { + quitEarly: quitEarlyArr[0], + changes: changes + }; + } + /** + * Private helper method which computes the differences on the bounded range + * recursively. + * @returns An array of the differences between the two input sequences. + */ + ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) { + quitEarlyArr[0] = false; + // Find the start of the differences + while (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) { + originalStart++; + modifiedStart++; + } + // Find the end of the differences + while (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) { + originalEnd--; + modifiedEnd--; + } + // In the special case where we either have all insertions or all deletions or the sequences are identical + if (originalStart > originalEnd || modifiedStart > modifiedEnd) { + let changes; + if (modifiedStart <= modifiedEnd) { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + // All insertions + changes = [ + new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + else if (originalStart <= originalEnd) { + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // All deletions + changes = [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0) + ]; + } + else { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // Identical sequences - No differences + changes = []; + } + return changes; + } + // This problem can be solved using the Divide-And-Conquer technique. + const midOriginalArr = [0]; + const midModifiedArr = [0]; + const result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr); + const midOriginal = midOriginalArr[0]; + const midModified = midModifiedArr[0]; + if (result !== null) { + // Result is not-null when there was enough memory to compute the changes while + // searching for the recursion point + return result; + } + else if (!quitEarlyArr[0]) { + // We can break the problem down recursively by finding the changes in the + // First Half: (originalStart, modifiedStart) to (midOriginal, midModified) + // Second Half: (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd) + // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point + const leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr); + let rightChanges = []; + if (!quitEarlyArr[0]) { + rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr); + } + else { + // We didn't have time to finish the first half, so we don't have time to compute this half. + // Consider the entire rest of the sequence different. + rightChanges = [ + new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1) + ]; + } + return this.ConcatenateChanges(leftChanges, rightChanges); + } + // If we hit here, we quit early, and so can't return anything meaningful + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) { + let forwardChanges = null; + let reverseChanges = null; + // First, walk backward through the forward diagonals history + let changeHelper = new DiffChangeHelper(); + let diagonalMin = diagonalForwardStart; + let diagonalMax = diagonalForwardEnd; + let diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset; + let lastOriginalIndex = -1073741824 /* Constants.MIN_SAFE_SMALL_INTEGER */; + let historyIndex = this.m_forwardHistory.length - 1; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalForwardBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + // Vertical line (the element is an insert) + originalIndex = forwardPoints[diagonal + 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex); + diagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration + } + else { + // Horizontal line (the element is a deletion) + originalIndex = forwardPoints[diagonal - 1] + 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex - 1; + changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + forwardPoints = this.m_forwardHistory[historyIndex]; + diagonalForwardBase = forwardPoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = forwardPoints.length - 1; + } + } while (--historyIndex >= -1); + // Ironically, we get the forward changes as the reverse of the + // order we added them since we technically added them backwards + forwardChanges = changeHelper.getReverseChanges(); + if (quitEarlyArr[0]) { + // TODO: Calculate a partial from the reverse diagonals. + // For now, just assume everything after the midOriginal/midModified point is a diff + let originalStartPoint = midOriginalArr[0] + 1; + let modifiedStartPoint = midModifiedArr[0] + 1; + if (forwardChanges !== null && forwardChanges.length > 0) { + const lastForwardChange = forwardChanges[forwardChanges.length - 1]; + originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd()); + modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd()); + } + reverseChanges = [ + new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1) + ]; + } + else { + // Now walk backward through the reverse diagonals history + changeHelper = new DiffChangeHelper(); + diagonalMin = diagonalReverseStart; + diagonalMax = diagonalReverseEnd; + diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset; + lastOriginalIndex = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalReverseBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + // Horizontal line (the element is a deletion)) + originalIndex = reversePoints[diagonal + 1] - 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex + 1; + changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration + } + else { + // Vertical line (the element is an insertion) + originalIndex = reversePoints[diagonal - 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + reversePoints = this.m_reverseHistory[historyIndex]; + diagonalReverseBase = reversePoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = reversePoints.length - 1; + } + } while (--historyIndex >= -1); + // There are cases where the reverse history will find diffs that + // are correct, but not intuitive, so we need shift them. + reverseChanges = changeHelper.getChanges(); + } + return this.ConcatenateChanges(forwardChanges, reverseChanges); + } + /** + * Given the range to compute the diff on, this method finds the point: + * (midOriginal, midModified) + * that exists in the middle of the LCS of the two sequences and + * is the point at which the LCS problem may be broken down recursively. + * This method will try to keep the LCS trace in memory. If the LCS recursion + * point is calculated and the full trace is available in memory, then this method + * will return the change list. + * @param originalStart The start bound of the original sequence range + * @param originalEnd The end bound of the original sequence range + * @param modifiedStart The start bound of the modified sequence range + * @param modifiedEnd The end bound of the modified sequence range + * @param midOriginal The middle point of the original sequence range + * @param midModified The middle point of the modified sequence range + * @returns The diff changes, if available, otherwise null + */ + ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) { + let originalIndex = 0, modifiedIndex = 0; + let diagonalForwardStart = 0, diagonalForwardEnd = 0; + let diagonalReverseStart = 0, diagonalReverseEnd = 0; + // To traverse the edit graph and produce the proper LCS, our actual + // start position is just outside the given boundary + originalStart--; + modifiedStart--; + // We set these up to make the compiler happy, but they will + // be replaced before we return with the actual recursion point + midOriginalArr[0] = 0; + midModifiedArr[0] = 0; + // Clear out the history + this.m_forwardHistory = []; + this.m_reverseHistory = []; + // Each cell in the two arrays corresponds to a diagonal in the edit graph. + // The integer value in the cell represents the originalIndex of the furthest + // reaching point found so far that ends in that diagonal. + // The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number. + const maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart); + const numDiagonals = maxDifferences + 1; + const forwardPoints = new Int32Array(numDiagonals); + const reversePoints = new Int32Array(numDiagonals); + // diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart) + // diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd) + const diagonalForwardBase = (modifiedEnd - modifiedStart); + const diagonalReverseBase = (originalEnd - originalStart); + // diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalForwardBase) + // diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalReverseBase) + const diagonalForwardOffset = (originalStart - modifiedStart); + const diagonalReverseOffset = (originalEnd - modifiedEnd); + // delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers + // relative to the start diagonal with diagonal numbers relative to the end diagonal. + // The Even/Oddn-ness of this delta is important for determining when we should check for overlap + const delta = diagonalReverseBase - diagonalForwardBase; + const deltaIsEven = (delta % 2 === 0); + // Here we set up the start and end points as the furthest points found so far + // in both the forward and reverse directions, respectively + forwardPoints[diagonalForwardBase] = originalStart; + reversePoints[diagonalReverseBase] = originalEnd; + // Remember if we quit early, and thus need to do a best-effort result instead of a real result. + quitEarlyArr[0] = false; + // A couple of points: + // --With this method, we iterate on the number of differences between the two sequences. + // The more differences there actually are, the longer this will take. + // --Also, as the number of differences increases, we have to search on diagonals further + // away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse). + // --We extend on even diagonals (relative to the reference diagonal) only when numDifferences + // is even and odd diagonals only when numDifferences is odd. + for (let numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) { + let furthestOriginalIndex = 0; + let furthestModifiedIndex = 0; + // Run the algorithm in the forward direction + diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + for (let diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalStart, modifiedStart) + if (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + originalIndex = forwardPoints[diagonal + 1]; + } + else { + originalIndex = forwardPoints[diagonal - 1] + 1; + } + modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset; + // Save the current originalIndex so we can test for false overlap in step 3 + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // so long as the elements are equal. + while (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) { + originalIndex++; + modifiedIndex++; + } + forwardPoints[diagonal] = originalIndex; + if (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) { + furthestOriginalIndex = originalIndex; + furthestModifiedIndex = modifiedIndex; + } + // STEP 3: If delta is odd (overlap first happens on forward when delta is odd) + // and diagonal is in the range of reverse diagonals computed for numDifferences-1 + // (the previous iteration; we haven't computed reverse diagonals for numDifferences yet) + // then check for overlap. + if (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) { + if (originalIndex >= reversePoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex <= reversePoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Check to see if we should be quitting early, before moving on to the next iteration. + const matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2; + if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) { + // We can't finish, so skip ahead to generating a result from what we have. + quitEarlyArr[0] = true; + // Use the furthest distance we got in the forward direction. + midOriginalArr[0] = furthestOriginalIndex; + midModifiedArr[0] = furthestModifiedIndex; + if (matchLengthOfLongest > 0 && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // Enough of the history is in memory to walk it backwards + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // We didn't actually remember enough of the history. + //Since we are quitting the diff early, we need to shift back the originalStart and modified start + //back into the boundary limits since we decremented their value above beyond the boundary limit. + originalStart++; + modifiedStart++; + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + } + // Run the algorithm in the reverse direction + diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + for (let diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalEnd, modifiedEnd) + if (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + originalIndex = reversePoints[diagonal + 1] - 1; + } + else { + originalIndex = reversePoints[diagonal - 1]; + } + modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset; + // Save the current originalIndex so we can test for false overlap + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // as long as the elements are equal. + while (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) { + originalIndex--; + modifiedIndex--; + } + reversePoints[diagonal] = originalIndex; + // STEP 4: If delta is even (overlap first happens on reverse when delta is even) + // and diagonal is in the range of forward diagonals computed for numDifferences + // then check for overlap. + if (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) { + if (originalIndex <= forwardPoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex >= forwardPoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Save current vectors to history before the next iteration + if (numDifferences <= 1447 /* LocalConstants.MaxDifferencesHistory */) { + // We are allocating space for one extra int, which we fill with + // the index of the diagonal base index + let temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2); + temp[0] = diagonalForwardBase - diagonalForwardStart + 1; + MyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1); + this.m_forwardHistory.push(temp); + temp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2); + temp[0] = diagonalReverseBase - diagonalReverseStart + 1; + MyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1); + this.m_reverseHistory.push(temp); + } + } + // If we got here, then we have the full trace in history. We just have to convert it to a change list + // NOTE: This part is a bit messy + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + /** + * Shifts the given changes to provide a more intuitive diff. + * While the first element in a diff matches the first element after the diff, + * we shift the diff down. + * + * @param changes The list of changes to shift + * @returns The shifted changes + */ + PrettifyChanges(changes) { + // Shift all the changes down first + for (let i = 0; i < changes.length; i++) { + const change = changes[i]; + const originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this._originalElementsOrHash.length; + const modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this._modifiedElementsOrHash.length; + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + while (change.originalStart + change.originalLength < originalStop + && change.modifiedStart + change.modifiedLength < modifiedStop + && (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) + && (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) { + const startStrictEqual = this.ElementsAreStrictEqual(change.originalStart, change.modifiedStart); + const endStrictEqual = this.ElementsAreStrictEqual(change.originalStart + change.originalLength, change.modifiedStart + change.modifiedLength); + if (endStrictEqual && !startStrictEqual) { + // moving the change down would create an equal change, but the elements are not strict equal + break; + } + change.originalStart++; + change.modifiedStart++; + } + const mergedChangeArr = [null]; + if (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) { + changes[i] = mergedChangeArr[0]; + changes.splice(i + 1, 1); + i--; + continue; + } + } + // Shift changes back up until we hit empty or whitespace-only lines + for (let i = changes.length - 1; i >= 0; i--) { + const change = changes[i]; + let originalStop = 0; + let modifiedStop = 0; + if (i > 0) { + const prevChange = changes[i - 1]; + originalStop = prevChange.originalStart + prevChange.originalLength; + modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength; + } + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + let bestDelta = 0; + let bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength); + for (let delta = 1;; delta++) { + const originalStart = change.originalStart - delta; + const modifiedStart = change.modifiedStart - delta; + if (originalStart < originalStop || modifiedStart < modifiedStop) { + break; + } + if (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) { + break; + } + if (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) { + break; + } + const touchingPreviousChange = (originalStart === originalStop && modifiedStart === modifiedStop); + const score = ((touchingPreviousChange ? 5 : 0) + + this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength)); + if (score > bestScore) { + bestScore = score; + bestDelta = delta; + } + } + change.originalStart -= bestDelta; + change.modifiedStart -= bestDelta; + const mergedChangeArr = [null]; + if (i > 0 && this.ChangesOverlap(changes[i - 1], changes[i], mergedChangeArr)) { + changes[i - 1] = mergedChangeArr[0]; + changes.splice(i, 1); + i++; + continue; + } + } + // There could be multiple longest common substrings. + // Give preference to the ones containing longer lines + if (this._hasStrings) { + for (let i = 1, len = changes.length; i < len; i++) { + const aChange = changes[i - 1]; + const bChange = changes[i]; + const matchedLength = bChange.originalStart - aChange.originalStart - aChange.originalLength; + const aOriginalStart = aChange.originalStart; + const bOriginalEnd = bChange.originalStart + bChange.originalLength; + const abOriginalLength = bOriginalEnd - aOriginalStart; + const aModifiedStart = aChange.modifiedStart; + const bModifiedEnd = bChange.modifiedStart + bChange.modifiedLength; + const abModifiedLength = bModifiedEnd - aModifiedStart; + // Avoid wasting a lot of time with these searches + if (matchedLength < 5 && abOriginalLength < 20 && abModifiedLength < 20) { + const t = this._findBetterContiguousSequence(aOriginalStart, abOriginalLength, aModifiedStart, abModifiedLength, matchedLength); + if (t) { + const [originalMatchStart, modifiedMatchStart] = t; + if (originalMatchStart !== aChange.originalStart + aChange.originalLength || modifiedMatchStart !== aChange.modifiedStart + aChange.modifiedLength) { + // switch to another sequence that has a better score + aChange.originalLength = originalMatchStart - aChange.originalStart; + aChange.modifiedLength = modifiedMatchStart - aChange.modifiedStart; + bChange.originalStart = originalMatchStart + matchedLength; + bChange.modifiedStart = modifiedMatchStart + matchedLength; + bChange.originalLength = bOriginalEnd - bChange.originalStart; + bChange.modifiedLength = bModifiedEnd - bChange.modifiedStart; + } + } + } + } + } + return changes; + } + _findBetterContiguousSequence(originalStart, originalLength, modifiedStart, modifiedLength, desiredLength) { + if (originalLength < desiredLength || modifiedLength < desiredLength) { + return null; + } + const originalMax = originalStart + originalLength - desiredLength + 1; + const modifiedMax = modifiedStart + modifiedLength - desiredLength + 1; + let bestScore = 0; + let bestOriginalStart = 0; + let bestModifiedStart = 0; + for (let i = originalStart; i < originalMax; i++) { + for (let j = modifiedStart; j < modifiedMax; j++) { + const score = this._contiguousSequenceScore(i, j, desiredLength); + if (score > 0 && score > bestScore) { + bestScore = score; + bestOriginalStart = i; + bestModifiedStart = j; + } + } + } + if (bestScore > 0) { + return [bestOriginalStart, bestModifiedStart]; + } + return null; + } + _contiguousSequenceScore(originalStart, modifiedStart, length) { + let score = 0; + for (let l = 0; l < length; l++) { + if (!this.ElementsAreEqual(originalStart + l, modifiedStart + l)) { + return 0; + } + score += this._originalStringElements[originalStart + l].length; + } + return score; + } + _OriginalIsBoundary(index) { + if (index <= 0 || index >= this._originalElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._originalStringElements[index])); + } + _OriginalRegionIsBoundary(originalStart, originalLength) { + if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) { + return true; + } + if (originalLength > 0) { + const originalEnd = originalStart + originalLength; + if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) { + return true; + } + } + return false; + } + _ModifiedIsBoundary(index) { + if (index <= 0 || index >= this._modifiedElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._modifiedStringElements[index])); + } + _ModifiedRegionIsBoundary(modifiedStart, modifiedLength) { + if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) { + return true; + } + if (modifiedLength > 0) { + const modifiedEnd = modifiedStart + modifiedLength; + if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) { + return true; + } + } + return false; + } + _boundaryScore(originalStart, originalLength, modifiedStart, modifiedLength) { + const originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0); + const modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0); + return (originalScore + modifiedScore); + } + /** + * Concatenates the two input DiffChange lists and returns the resulting + * list. + * @param The left changes + * @param The right changes + * @returns The concatenated list + */ + ConcatenateChanges(left, right) { + const mergedChangeArr = []; + if (left.length === 0 || right.length === 0) { + return (right.length > 0) ? right : left; + } + else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) { + // Since we break the problem down recursively, it is possible that we + // might recurse in the middle of a change thereby splitting it into + // two changes. Here in the combining stage, we detect and fuse those + // changes back together + const result = new Array(left.length + right.length - 1); + MyArray.Copy(left, 0, result, 0, left.length - 1); + result[left.length - 1] = mergedChangeArr[0]; + MyArray.Copy(right, 1, result, left.length, right.length - 1); + return result; + } + else { + const result = new Array(left.length + right.length); + MyArray.Copy(left, 0, result, 0, left.length); + MyArray.Copy(right, 0, result, left.length, right.length); + return result; + } + } + /** + * Returns true if the two changes overlap and can be merged into a single + * change + * @param left The left change + * @param right The right change + * @param mergedChange The merged change if the two overlap, null otherwise + * @returns True if the two changes overlap + */ + ChangesOverlap(left, right, mergedChangeArr) { + Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change'); + Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change'); + if (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + const originalStart = left.originalStart; + let originalLength = left.originalLength; + const modifiedStart = left.modifiedStart; + let modifiedLength = left.modifiedLength; + if (left.originalStart + left.originalLength >= right.originalStart) { + originalLength = right.originalStart + right.originalLength - left.originalStart; + } + if (left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart; + } + mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength); + return true; + } + else { + mergedChangeArr[0] = null; + return false; + } + } + /** + * Helper method used to clip a diagonal index to the range of valid + * diagonals. This also decides whether or not the diagonal index, + * if it exceeds the boundary, should be clipped to the boundary or clipped + * one inside the boundary depending on the Even/Odd status of the boundary + * and numDifferences. + * @param diagonal The index of the diagonal to clip. + * @param numDifferences The current number of differences being iterated upon. + * @param diagonalBaseIndex The base reference diagonal. + * @param numDiagonals The total number of diagonals. + * @returns The clipped diagonal index. + */ + ClipDiagonalBound(diagonal, numDifferences, diagonalBaseIndex, numDiagonals) { + if (diagonal >= 0 && diagonal < numDiagonals) { + // Nothing to clip, its in range + return diagonal; + } + // diagonalsBelow: The number of diagonals below the reference diagonal + // diagonalsAbove: The number of diagonals above the reference diagonal + const diagonalsBelow = diagonalBaseIndex; + const diagonalsAbove = numDiagonals - diagonalBaseIndex - 1; + const diffEven = (numDifferences % 2 === 0); + if (diagonal < 0) { + const lowerBoundEven = (diagonalsBelow % 2 === 0); + return (diffEven === lowerBoundEven) ? 0 : 1; + } + else { + const upperBoundEven = (diagonalsAbove % 2 === 0); + return (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let safeProcess; +// Native sandbox environment +const vscodeGlobal = globalThis.vscode; +if (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') { + const sandboxProcess = vscodeGlobal.process; + safeProcess = { + get platform() { return sandboxProcess.platform; }, + get arch() { return sandboxProcess.arch; }, + get env() { return sandboxProcess.env; }, + cwd() { return sandboxProcess.cwd(); } + }; +} +// Native node.js environment +else if (typeof process !== 'undefined') { + safeProcess = { + get platform() { return process.platform; }, + get arch() { return process.arch; }, + get env() { return process.env; }, + cwd() { return process.env['VSCODE_CWD'] || process.cwd(); } + }; +} +// Web environment +else { + safeProcess = { + // Supported + get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; }, + get arch() { return undefined; /* arch is undefined in web */ }, + // Unsupported + get env() { return {}; }, + cwd() { return '/'; } + }; +} +/** + * Provides safe access to the `cwd` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `/`. + * + * @skipMangle + */ +const cwd = safeProcess.cwd; +/** + * Provides safe access to the `env` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `{}`. + */ +const env = safeProcess.env; +/** + * Provides safe access to the `platform` property in node.js, sandboxed or web + * environments. + */ +const platform = safeProcess.platform; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace +// Copied from: https://github.com/nodejs/node/commits/v20.9.0/lib/path.js +// Excluding: the change that adds primordials +// (https://github.com/nodejs/node/commit/187a862d221dec42fa9a5c4214e7034d9092792f and others) +/** + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +const CHAR_UPPERCASE_A = 65; /* A */ +const CHAR_LOWERCASE_A = 97; /* a */ +const CHAR_UPPERCASE_Z = 90; /* Z */ +const CHAR_LOWERCASE_Z = 122; /* z */ +const CHAR_DOT = 46; /* . */ +const CHAR_FORWARD_SLASH = 47; /* / */ +const CHAR_BACKWARD_SLASH = 92; /* \ */ +const CHAR_COLON = 58; /* : */ +const CHAR_QUESTION_MARK = 63; /* ? */ +class ErrorInvalidArgType extends Error { + constructor(name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && expected.indexOf('not ') === 0) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } + else { + determiner = 'must be'; + } + const type = name.indexOf('.') !== -1 ? 'property' : 'argument'; + let msg = `The "${name}" ${type} ${determiner} of type ${expected}`; + msg += `. Received type ${typeof actual}`; + super(msg); + this.code = 'ERR_INVALID_ARG_TYPE'; + } +} +function validateObject(pathObject, name) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new ErrorInvalidArgType(name, 'Object', pathObject); + } +} +function validateString(value, name) { + if (typeof value !== 'string') { + throw new ErrorInvalidArgType(name, 'string', value); + } +} +const platformIsWin32 = (platform === 'win32'); +function isPathSeparator(code) { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +} +function isPosixPathSeparator(code) { + return code === CHAR_FORWARD_SLASH; +} +function isWindowsDeviceRoot(code) { + return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) || + (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z); +} +// Resolves . and .. elements in a path with directory names +function normalizeString(path, allowAboveRoot, separator, isPathSeparator) { + let res = ''; + let lastSegmentLength = 0; + let lastSlash = -1; + let dots = 0; + let code = 0; + for (let i = 0; i <= path.length; ++i) { + if (i < path.length) { + code = path.charCodeAt(i); + } + else if (isPathSeparator(code)) { + break; + } + else { + code = CHAR_FORWARD_SLASH; + } + if (isPathSeparator(code)) { + if (lastSlash === i - 1 || dots === 1) ; + else if (dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || + res.charCodeAt(res.length - 1) !== CHAR_DOT || + res.charCodeAt(res.length - 2) !== CHAR_DOT) { + if (res.length > 2) { + const lastSlashIndex = res.lastIndexOf(separator); + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } + else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); + } + lastSlash = i; + dots = 0; + continue; + } + else if (res.length !== 0) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + res += res.length > 0 ? `${separator}..` : '..'; + lastSegmentLength = 2; + } + } + else { + if (res.length > 0) { + res += `${separator}${path.slice(lastSlash + 1, i)}`; + } + else { + res = path.slice(lastSlash + 1, i); + } + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } + else if (code === CHAR_DOT && dots !== -1) { + ++dots; + } + else { + dots = -1; + } + } + return res; +} +function formatExt(ext) { + return ext ? `${ext[0] === '.' ? '' : '.'}${ext}` : ''; +} +function _format(sep, pathObject) { + validateObject(pathObject, 'pathObject'); + const dir = pathObject.dir || pathObject.root; + const base = pathObject.base || + `${pathObject.name || ''}${formatExt(pathObject.ext)}`; + if (!dir) { + return base; + } + return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`; +} +const win32 = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedDevice = ''; + let resolvedTail = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1; i--) { + let path; + if (i >= 0) { + path = pathSegments[i]; + validateString(path, `paths[${i}]`); + // Skip empty entries + if (path.length === 0) { + continue; + } + } + else if (resolvedDevice.length === 0) { + path = cwd(); + } + else { + // Windows has the concept of drive-specific current working + // directories. If we've resolved a drive letter but not yet an + // absolute path, get cwd for that drive, or the process cwd if + // the drive cwd is not available. We're sure the device is not + // a UNC path at this points, because UNC paths are always absolute. + path = env[`=${resolvedDevice}`] || cwd(); + // Verify that a cwd was found and that it actually points + // to our drive. If not, default to the drive's root. + if (path === undefined || + (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() && + path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) { + path = `${resolvedDevice}\\`; + } + } + const len = path.length; + let rootEnd = 0; + let device = ''; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator + rootEnd = 1; + isAbsolute = true; + } + } + else if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an + // absolute path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len || j !== last) { + // We matched a UNC root + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + if (device.length > 0) { + if (resolvedDevice.length > 0) { + if (device.toLowerCase() !== resolvedDevice.toLowerCase()) { + // This path points to another device so it is not applicable + continue; + } + } + else { + resolvedDevice = device; + } + } + if (resolvedAbsolute) { + if (resolvedDevice.length > 0) { + break; + } + } + else { + resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; + resolvedAbsolute = isAbsolute; + if (isAbsolute && resolvedDevice.length > 0) { + break; + } + } + } + // At this point the path should be resolved to a full absolute path, + // but handle relative paths to be safe (might happen when process.cwd() + // fails) + // Normalize the tail path + resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\', isPathSeparator); + return resolvedAbsolute ? + `${resolvedDevice}\\${resolvedTail}` : + `${resolvedDevice}${resolvedTail}` || '.'; + }, + normalize(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = 0; + let device; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + // `path` contains just a single char, exit early to avoid + // unnecessary work + return isPosixPathSeparator(code) ? '\\' : path; + } + if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an absolute + // path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + // Return the normalized version of the UNC root since there + // is nothing left to process + return `\\\\${firstPart}\\${path.slice(last)}\\`; + } + if (j !== last) { + // We matched a UNC root with leftovers + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + let tail = rootEnd < len ? + normalizeString(path.slice(rootEnd), !isAbsolute, '\\', isPathSeparator) : + ''; + if (tail.length === 0 && !isAbsolute) { + tail = '.'; + } + if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { + tail += '\\'; + } + if (device === undefined) { + return isAbsolute ? `\\${tail}` : tail; + } + return isAbsolute ? `${device}\\${tail}` : `${device}${tail}`; + }, + isAbsolute(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return false; + } + const code = path.charCodeAt(0); + return isPathSeparator(code) || + // Possible device root + (len > 2 && + isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON && + isPathSeparator(path.charCodeAt(2))); + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + let firstPart; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = firstPart = arg; + } + else { + joined += `\\${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + // Make sure that the joined path doesn't start with two slashes, because + // normalize() will mistake it for a UNC path then. + // + // This step is skipped when it is very clear that the user actually + // intended to point at a UNC path. This is assumed when the first + // non-empty string arguments starts with exactly two slashes followed by + // at least one more non-slash character. + // + // Note that for normalize() to treat a path as a UNC path it needs to + // have at least 2 components, so we don't filter for that here. + // This means that the user can use join to construct UNC paths from + // a server name and a share name; for example: + // path.join('//server', 'share') -> '\\\\server\\share\\') + let needsReplace = true; + let slashCount = 0; + if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) { + ++slashCount; + const firstLen = firstPart.length; + if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) { + ++slashCount; + if (firstLen > 2) { + if (isPathSeparator(firstPart.charCodeAt(2))) { + ++slashCount; + } + else { + // We matched a UNC path in the first part + needsReplace = false; + } + } + } + } + if (needsReplace) { + // Find any more consecutive slashes we need to replace + while (slashCount < joined.length && + isPathSeparator(joined.charCodeAt(slashCount))) { + slashCount++; + } + // Replace the slashes if needed + if (slashCount >= 2) { + joined = `\\${joined.slice(slashCount)}`; + } + } + return win32.normalize(joined); + }, + // It will solve the relative path from `from` to `to`, for instance: + // from = 'C:\\orandea\\test\\aaa' + // to = 'C:\\orandea\\impl\\bbb' + // The output of the function should be: '..\\..\\impl\\bbb' + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + const fromOrig = win32.resolve(from); + const toOrig = win32.resolve(to); + if (fromOrig === toOrig) { + return ''; + } + from = fromOrig.toLowerCase(); + to = toOrig.toLowerCase(); + if (from === to) { + return ''; + } + // Trim any leading backslashes + let fromStart = 0; + while (fromStart < from.length && + from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) { + fromStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let fromEnd = from.length; + while (fromEnd - 1 > fromStart && + from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) { + fromEnd--; + } + const fromLen = fromEnd - fromStart; + // Trim any leading backslashes + let toStart = 0; + while (toStart < to.length && + to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + toStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let toEnd = to.length; + while (toEnd - 1 > toStart && + to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) { + toEnd--; + } + const toLen = toEnd - toStart; + // Compare paths to find the longest common path from root + const length = fromLen < toLen ? fromLen : toLen; + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_BACKWARD_SLASH) { + lastCommonSep = i; + } + } + // We found a mismatch before the first common path separator was seen, so + // return the original `to`. + if (i !== length) { + if (lastCommonSep === -1) { + return toOrig; + } + } + else { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' + return toOrig.slice(toStart + i + 1); + } + if (i === 2) { + // We get here if `from` is the device root. + // For example: from='C:\\'; to='C:\\foo' + return toOrig.slice(toStart + i); + } + } + if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='C:\\foo\\bar'; to='C:\\foo' + lastCommonSep = i; + } + else if (i === 2) { + // We get here if `to` is the device root. + // For example: from='C:\\foo\\bar'; to='C:\\' + lastCommonSep = 3; + } + } + if (lastCommonSep === -1) { + lastCommonSep = 0; + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` and + // `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { + out += out.length === 0 ? '..' : '\\..'; + } + } + toStart += lastCommonSep; + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) { + return `${out}${toOrig.slice(toStart, toEnd)}`; + } + if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + ++toStart; + } + return toOrig.slice(toStart, toEnd); + }, + toNamespacedPath(path) { + // Note: this will *probably* throw somewhere. + if (typeof path !== 'string' || path.length === 0) { + return path; + } + const resolvedPath = win32.resolve(path); + if (resolvedPath.length <= 2) { + return path; + } + if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { + // Possible UNC root + if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { + const code = resolvedPath.charCodeAt(2); + if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { + // Matched non-long UNC root, convert the path to a long UNC path + return `\\\\?\\UNC\\${resolvedPath.slice(2)}`; + } + } + } + else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) && + resolvedPath.charCodeAt(1) === CHAR_COLON && + resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) { + // Matched device root, convert the path to a long UNC path + return `\\\\?\\${resolvedPath}`; + } + return path; + }, + dirname(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = -1; + let offset = 0; + const code = path.charCodeAt(0); + if (len === 1) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work or a dot. + return isPathSeparator(code) ? path : '.'; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = offset = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + return path; + } + if (j !== last) { + // We matched a UNC root with leftovers + // Offset by 1 to include the separator after the UNC root to + // treat it as a "normal root" on top of a (UNC) root + rootEnd = offset = j + 1; + } + } + } + } + // Possible device root + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2; + offset = rootEnd; + } + let end = -1; + let matchedSlash = true; + for (let i = len - 1; i >= offset; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + if (rootEnd === -1) { + return '.'; + } + end = rootEnd; + } + return path.slice(0, end); + }, + basename(path, suffix) { + if (suffix !== undefined) { + validateString(suffix, 'suffix'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + isWindowsDeviceRoot(path.charCodeAt(0)) && + path.charCodeAt(1) === CHAR_COLON) { + start = 2; + } + if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { + if (suffix === path) { + return ''; + } + let extIdx = suffix.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === suffix.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= start; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let start = 0; + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + path.charCodeAt(1) === CHAR_COLON && + isWindowsDeviceRoot(path.charCodeAt(0))) { + start = startPart = 2; + } + for (let i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: _format.bind(null, '\\'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const len = path.length; + let rootEnd = 0; + let code = path.charCodeAt(0); + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + ret.base = ret.name = path; + return ret; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + rootEnd = j; + } + else if (j !== last) { + // We matched a UNC root with leftovers + rootEnd = j + 1; + } + } + } + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + if (len <= 2) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 2; + if (isPathSeparator(path.charCodeAt(2))) { + if (len === 3) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 3; + } + } + if (rootEnd > 0) { + ret.root = path.slice(0, rootEnd); + } + let startDot = -1; + let startPart = rootEnd; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= rootEnd; --i) { + code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(startPart, end); + } + else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + ret.ext = path.slice(startDot, end); + } + } + // If the directory is the root, use the entire root as the `dir` including + // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the + // trailing slash (`C:\abc\def` -> `C:\abc`). + if (startPart > 0 && startPart !== rootEnd) { + ret.dir = path.slice(0, startPart - 1); + } + else { + ret.dir = ret.root; + } + return ret; + }, + sep: '\\', + delimiter: ';', + win32: null, + posix: null +}; +const posixCwd = (() => { + if (platformIsWin32) { + // Converts Windows' backslash path separators to POSIX forward slashes + // and truncates any drive indicator + const regexp = /\\/g; + return () => { + const cwd$1 = cwd().replace(regexp, '/'); + return cwd$1.slice(cwd$1.indexOf('/')); + }; + } + // We're already on POSIX, no need for any transformations + return () => cwd(); +})(); +const posix = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedPath = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + const path = i >= 0 ? pathSegments[i] : posixCwd(); + validateString(path, `paths[${i}]`); + // Skip empty entries + if (path.length === 0) { + continue; + } + resolvedPath = `${path}/${resolvedPath}`; + resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + // Normalize the path + resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator); + if (resolvedAbsolute) { + return `/${resolvedPath}`; + } + return resolvedPath.length > 0 ? resolvedPath : '.'; + }, + normalize(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; + // Normalize the path + path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator); + if (path.length === 0) { + if (isAbsolute) { + return '/'; + } + return trailingSeparator ? './' : '.'; + } + if (trailingSeparator) { + path += '/'; + } + return isAbsolute ? `/${path}` : path; + }, + isAbsolute(path) { + validateString(path, 'path'); + return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = arg; + } + else { + joined += `/${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + return posix.normalize(joined); + }, + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + // Trim leading forward slashes. + from = posix.resolve(from); + to = posix.resolve(to); + if (from === to) { + return ''; + } + const fromStart = 1; + const fromEnd = from.length; + const fromLen = fromEnd - fromStart; + const toStart = 1; + const toLen = to.length - toStart; + // Compare paths to find the longest common path from root + const length = (fromLen < toLen ? fromLen : toLen); + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_FORWARD_SLASH) { + lastCommonSep = i; + } + } + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } + if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } + else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } + else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo/bar'; to='/' + lastCommonSep = 0; + } + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` + // and `from`. + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { + out += out.length === 0 ? '..' : '/..'; + } + } + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts. + return `${out}${to.slice(toStart + lastCommonSep)}`; + }, + toNamespacedPath(path) { + // Non-op on posix systems + return path; + }, + dirname(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let end = -1; + let matchedSlash = true; + for (let i = path.length - 1; i >= 1; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + return hasRoot ? '/' : '.'; + } + if (hasRoot && end === 1) { + return '//'; + } + return path.slice(0, end); + }, + basename(path, suffix) { + if (suffix !== undefined) { + validateString(suffix, 'ext'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { + if (suffix === path) { + return ''; + } + let extIdx = suffix.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === suffix.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + for (let i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: _format.bind(null, '/'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } + else { + start = 0; + } + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= start; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + const start = startPart === 0 && isAbsolute ? 1 : startPart; + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(start, end); + } + else { + ret.name = path.slice(start, startDot); + ret.base = path.slice(start, end); + ret.ext = path.slice(startDot, end); + } + } + if (startPart > 0) { + ret.dir = path.slice(0, startPart - 1); + } + else if (isAbsolute) { + ret.dir = '/'; + } + return ret; + }, + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; +posix.win32 = win32.win32 = win32; +posix.posix = win32.posix = posix; +(platformIsWin32 ? win32.normalize : posix.normalize); +(platformIsWin32 ? win32.resolve : posix.resolve); +(platformIsWin32 ? win32.relative : posix.relative); +(platformIsWin32 ? win32.dirname : posix.dirname); +(platformIsWin32 ? win32.basename : posix.basename); +(platformIsWin32 ? win32.extname : posix.extname); +(platformIsWin32 ? win32.sep : posix.sep); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const _schemePattern = /^\w[\w\d+.-]*$/; +const _singleSlashStart = /^\//; +const _doubleSlashStart = /^\/\//; +function _validateUri(ret, _strict) { + // scheme, must be set + if (!ret.scheme && _strict) { + throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`); + } + // scheme, https://tools.ietf.org/html/rfc3986#section-3.1 + // ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) + if (ret.scheme && !_schemePattern.test(ret.scheme)) { + throw new Error('[UriError]: Scheme contains illegal characters.'); + } + // path, http://tools.ietf.org/html/rfc3986#section-3.3 + // If a URI contains an authority component, then the path component + // must either be empty or begin with a slash ("/") character. If a URI + // does not contain an authority component, then the path cannot begin + // with two slash characters ("//"). + if (ret.path) { + if (ret.authority) { + if (!_singleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'); + } + } + else { + if (_doubleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'); + } + } + } +} +// for a while we allowed uris *without* schemes and this is the migration +// for them, e.g. an uri without scheme and without strict-mode warns and falls +// back to the file-scheme. that should cause the least carnage and still be a +// clear warning +function _schemeFix(scheme, _strict) { + if (!scheme && !_strict) { + return 'file'; + } + return scheme; +} +// implements a bit of https://tools.ietf.org/html/rfc3986#section-5 +function _referenceResolution(scheme, path) { + // the slash-character is our 'default base' as we don't + // support constructing URIs relative to other URIs. This + // also means that we alter and potentially break paths. + // see https://tools.ietf.org/html/rfc3986#section-5.1.4 + switch (scheme) { + case 'https': + case 'http': + case 'file': + if (!path) { + path = _slash; + } + else if (path[0] !== _slash) { + path = _slash + path; + } + break; + } + return path; +} +const _empty = ''; +const _slash = '/'; +const _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/; +/** + * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986. + * This class is a simple parser which creates the basic component parts + * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation + * and encoding. + * + * ```txt + * foo://example.com:8042/over/there?name=ferret#nose + * \_/ \______________/\_________/ \_________/ \__/ + * | | | | | + * scheme authority path query fragment + * | _____________________|__ + * / \ / \ + * urn:example:animal:ferret:nose + * ``` + */ +class URI { + static isUri(thing) { + if (thing instanceof URI) { + return true; + } + if (!thing) { + return false; + } + return typeof thing.authority === 'string' + && typeof thing.fragment === 'string' + && typeof thing.path === 'string' + && typeof thing.query === 'string' + && typeof thing.scheme === 'string' + && typeof thing.fsPath === 'string' + && typeof thing.with === 'function' + && typeof thing.toString === 'function'; + } + /** + * @internal + */ + constructor(schemeOrData, authority, path, query, fragment, _strict = false) { + if (typeof schemeOrData === 'object') { + this.scheme = schemeOrData.scheme || _empty; + this.authority = schemeOrData.authority || _empty; + this.path = schemeOrData.path || _empty; + this.query = schemeOrData.query || _empty; + this.fragment = schemeOrData.fragment || _empty; + // no validation because it's this URI + // that creates uri components. + // _validateUri(this); + } + else { + this.scheme = _schemeFix(schemeOrData, _strict); + this.authority = authority || _empty; + this.path = _referenceResolution(this.scheme, path || _empty); + this.query = query || _empty; + this.fragment = fragment || _empty; + _validateUri(this, _strict); + } + } + // ---- filesystem path ----------------------- + /** + * Returns a string representing the corresponding file system path of this URI. + * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the + * platform specific path separator. + * + * * Will *not* validate the path for invalid characters and semantics. + * * Will *not* look at the scheme of this URI. + * * The result shall *not* be used for display purposes but for accessing a file on disk. + * + * + * The *difference* to `URI#path` is the use of the platform specific separator and the handling + * of UNC paths. See the below sample of a file-uri with an authority (UNC path). + * + * ```ts + const u = URI.parse('file://server/c$/folder/file.txt') + u.authority === 'server' + u.path === '/shares/c$/file.txt' + u.fsPath === '\\server\c$\folder\file.txt' + ``` + * + * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path, + * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working + * with URIs that represent files on disk (`file` scheme). + */ + get fsPath() { + // if (this.scheme !== 'file') { + // console.warn(`[UriError] calling fsPath with scheme ${this.scheme}`); + // } + return uriToFsPath(this, false); + } + // ---- modify to new ------------------------- + with(change) { + if (!change) { + return this; + } + let { scheme, authority, path, query, fragment } = change; + if (scheme === undefined) { + scheme = this.scheme; + } + else if (scheme === null) { + scheme = _empty; + } + if (authority === undefined) { + authority = this.authority; + } + else if (authority === null) { + authority = _empty; + } + if (path === undefined) { + path = this.path; + } + else if (path === null) { + path = _empty; + } + if (query === undefined) { + query = this.query; + } + else if (query === null) { + query = _empty; + } + if (fragment === undefined) { + fragment = this.fragment; + } + else if (fragment === null) { + fragment = _empty; + } + if (scheme === this.scheme + && authority === this.authority + && path === this.path + && query === this.query + && fragment === this.fragment) { + return this; + } + return new Uri(scheme, authority, path, query, fragment); + } + // ---- parse & validate ------------------------ + /** + * Creates a new URI from a string, e.g. `http://www.example.com/some/path`, + * `file:///usr/home`, or `scheme:with/path`. + * + * @param value A string which represents an URI (see `URI#toString`). + */ + static parse(value, _strict = false) { + const match = _regexp.exec(value); + if (!match) { + return new Uri(_empty, _empty, _empty, _empty, _empty); + } + return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict); + } + /** + * Creates a new URI from a file system path, e.g. `c:\my\files`, + * `/usr/home`, or `\\server\share\some\path`. + * + * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument + * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as** + * `URI.parse('file://' + path)` because the path might contain characters that are + * interpreted (# and ?). See the following sample: + * ```ts + const good = URI.file('/coding/c#/project1'); + good.scheme === 'file'; + good.path === '/coding/c#/project1'; + good.fragment === ''; + const bad = URI.parse('file://' + '/coding/c#/project1'); + bad.scheme === 'file'; + bad.path === '/coding/c'; // path is now broken + bad.fragment === '/project1'; + ``` + * + * @param path A file system path (see `URI#fsPath`) + */ + static file(path) { + let authority = _empty; + // normalize to fwd-slashes on windows, + // on other systems bwd-slashes are valid + // filename character, eg /f\oo/ba\r.txt + if (isWindows) { + path = path.replace(/\\/g, _slash); + } + // check for authority as used in UNC shares + // or use the path as given + if (path[0] === _slash && path[1] === _slash) { + const idx = path.indexOf(_slash, 2); + if (idx === -1) { + authority = path.substring(2); + path = _slash; + } + else { + authority = path.substring(2, idx); + path = path.substring(idx) || _slash; + } + } + return new Uri('file', authority, path, _empty, _empty); + } + /** + * Creates new URI from uri components. + * + * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs + * validation and should be used for untrusted uri components retrieved from storage, + * user input, command arguments etc + */ + static from(components, strict) { + const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict); + return result; + } + /** + * Join a URI path with path fragments and normalizes the resulting path. + * + * @param uri The input URI. + * @param pathFragment The path fragment to add to the URI path. + * @returns The resulting URI. + */ + static joinPath(uri, ...pathFragment) { + if (!uri.path) { + throw new Error(`[UriError]: cannot call joinPath on URI without path`); + } + let newPath; + if (isWindows && uri.scheme === 'file') { + newPath = URI.file(win32.join(uriToFsPath(uri, true), ...pathFragment)).path; + } + else { + newPath = posix.join(uri.path, ...pathFragment); + } + return uri.with({ path: newPath }); + } + // ---- printing/externalize --------------------------- + /** + * Creates a string representation for this URI. It's guaranteed that calling + * `URI.parse` with the result of this function creates an URI which is equal + * to this URI. + * + * * The result shall *not* be used for display purposes but for externalization or transport. + * * The result will be encoded using the percentage encoding and encoding happens mostly + * ignore the scheme-specific encoding rules. + * + * @param skipEncoding Do not encode the result, default is `false` + */ + toString(skipEncoding = false) { + return _asFormatted(this, skipEncoding); + } + toJSON() { + return this; + } + static revive(data) { + if (!data) { + return data; + } + else if (data instanceof URI) { + return data; + } + else { + const result = new Uri(data); + result._formatted = data.external ?? null; + result._fsPath = data._sep === _pathSepMarker ? data.fsPath ?? null : null; + return result; + } + } +} +const _pathSepMarker = isWindows ? 1 : undefined; +// This class exists so that URI is compatible with vscode.Uri (API). +class Uri extends URI { + constructor() { + super(...arguments); + this._formatted = null; + this._fsPath = null; + } + get fsPath() { + if (!this._fsPath) { + this._fsPath = uriToFsPath(this, false); + } + return this._fsPath; + } + toString(skipEncoding = false) { + if (!skipEncoding) { + if (!this._formatted) { + this._formatted = _asFormatted(this, false); + } + return this._formatted; + } + else { + // we don't cache that + return _asFormatted(this, true); + } + } + toJSON() { + const res = { + $mid: 1 /* MarshalledId.Uri */ + }; + // cached state + if (this._fsPath) { + res.fsPath = this._fsPath; + res._sep = _pathSepMarker; + } + if (this._formatted) { + res.external = this._formatted; + } + //--- uri components + if (this.path) { + res.path = this.path; + } + // TODO + // this isn't correct and can violate the UriComponents contract but + // this is part of the vscode.Uri API and we shouldn't change how that + // works anymore + if (this.scheme) { + res.scheme = this.scheme; + } + if (this.authority) { + res.authority = this.authority; + } + if (this.query) { + res.query = this.query; + } + if (this.fragment) { + res.fragment = this.fragment; + } + return res; + } +} +// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2 +const encodeTable = { + [58 /* CharCode.Colon */]: '%3A', // gen-delims + [47 /* CharCode.Slash */]: '%2F', + [63 /* CharCode.QuestionMark */]: '%3F', + [35 /* CharCode.Hash */]: '%23', + [91 /* CharCode.OpenSquareBracket */]: '%5B', + [93 /* CharCode.CloseSquareBracket */]: '%5D', + [64 /* CharCode.AtSign */]: '%40', + [33 /* CharCode.ExclamationMark */]: '%21', // sub-delims + [36 /* CharCode.DollarSign */]: '%24', + [38 /* CharCode.Ampersand */]: '%26', + [39 /* CharCode.SingleQuote */]: '%27', + [40 /* CharCode.OpenParen */]: '%28', + [41 /* CharCode.CloseParen */]: '%29', + [42 /* CharCode.Asterisk */]: '%2A', + [43 /* CharCode.Plus */]: '%2B', + [44 /* CharCode.Comma */]: '%2C', + [59 /* CharCode.Semicolon */]: '%3B', + [61 /* CharCode.Equals */]: '%3D', + [32 /* CharCode.Space */]: '%20', +}; +function encodeURIComponentFast(uriComponent, isPath, isAuthority) { + let res = undefined; + let nativeEncodePos = -1; + for (let pos = 0; pos < uriComponent.length; pos++) { + const code = uriComponent.charCodeAt(pos); + // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3 + if ((code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */) + || (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) + || (code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */) + || code === 45 /* CharCode.Dash */ + || code === 46 /* CharCode.Period */ + || code === 95 /* CharCode.Underline */ + || code === 126 /* CharCode.Tilde */ + || (isPath && code === 47 /* CharCode.Slash */) + || (isAuthority && code === 91 /* CharCode.OpenSquareBracket */) + || (isAuthority && code === 93 /* CharCode.CloseSquareBracket */) + || (isAuthority && code === 58 /* CharCode.Colon */)) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // check if we write into a new string (by default we try to return the param) + if (res !== undefined) { + res += uriComponent.charAt(pos); + } + } + else { + // encoding needed, we need to allocate a new string + if (res === undefined) { + res = uriComponent.substr(0, pos); + } + // check with default table first + const escaped = encodeTable[code]; + if (escaped !== undefined) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // append escaped variant to result + res += escaped; + } + else if (nativeEncodePos === -1) { + // use native encode only when needed + nativeEncodePos = pos; + } + } + } + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos)); + } + return res !== undefined ? res : uriComponent; +} +function encodeURIComponentMinimal(path) { + let res = undefined; + for (let pos = 0; pos < path.length; pos++) { + const code = path.charCodeAt(pos); + if (code === 35 /* CharCode.Hash */ || code === 63 /* CharCode.QuestionMark */) { + if (res === undefined) { + res = path.substr(0, pos); + } + res += encodeTable[code]; + } + else { + if (res !== undefined) { + res += path[pos]; + } + } + } + return res !== undefined ? res : path; +} +/** + * Compute `fsPath` for the given uri + */ +function uriToFsPath(uri, keepDriveLetterCasing) { + let value; + if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') { + // unc path: file://shares/c$/far/boo + value = `//${uri.authority}${uri.path}`; + } + else if (uri.path.charCodeAt(0) === 47 /* CharCode.Slash */ + && (uri.path.charCodeAt(1) >= 65 /* CharCode.A */ && uri.path.charCodeAt(1) <= 90 /* CharCode.Z */ || uri.path.charCodeAt(1) >= 97 /* CharCode.a */ && uri.path.charCodeAt(1) <= 122 /* CharCode.z */) + && uri.path.charCodeAt(2) === 58 /* CharCode.Colon */) { + if (!keepDriveLetterCasing) { + // windows drive letter: file:///c:/far/boo + value = uri.path[1].toLowerCase() + uri.path.substr(2); + } + else { + value = uri.path.substr(1); + } + } + else { + // other path + value = uri.path; + } + if (isWindows) { + value = value.replace(/\//g, '\\'); + } + return value; +} +/** + * Create the external version of a uri + */ +function _asFormatted(uri, skipEncoding) { + const encoder = !skipEncoding + ? encodeURIComponentFast + : encodeURIComponentMinimal; + let res = ''; + let { scheme, authority, path, query, fragment } = uri; + if (scheme) { + res += scheme; + res += ':'; + } + if (authority || scheme === 'file') { + res += _slash; + res += _slash; + } + if (authority) { + let idx = authority.indexOf('@'); + if (idx !== -1) { + // @ + const userinfo = authority.substr(0, idx); + authority = authority.substr(idx + 1); + idx = userinfo.lastIndexOf(':'); + if (idx === -1) { + res += encoder(userinfo, false, false); + } + else { + // :@ + res += encoder(userinfo.substr(0, idx), false, false); + res += ':'; + res += encoder(userinfo.substr(idx + 1), false, true); + } + res += '@'; + } + authority = authority.toLowerCase(); + idx = authority.lastIndexOf(':'); + if (idx === -1) { + res += encoder(authority, false, true); + } + else { + // : + res += encoder(authority.substr(0, idx), false, true); + res += authority.substr(idx); + } + } + if (path) { + // lower-case windows drive letters in /C:/fff or C:/fff + if (path.length >= 3 && path.charCodeAt(0) === 47 /* CharCode.Slash */ && path.charCodeAt(2) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(1); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // "/c:".length === 3 + } + } + else if (path.length >= 2 && path.charCodeAt(1) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(0); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // "/c:".length === 3 + } + } + // encode the rest of the path + res += encoder(path, true, false); + } + if (query) { + res += '?'; + res += encoder(query, false, false); + } + if (fragment) { + res += '#'; + res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment; + } + return res; +} +// --- decode +function decodeURIComponentGraceful(str) { + try { + return decodeURIComponent(str); + } + catch { + if (str.length > 3) { + return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3)); + } + else { + return str; + } + } +} +const _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g; +function percentDecode(str) { + if (!str.match(_rEncodedAsHex)) { + return str; + } + return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match)); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A position in the editor. + */ +class Position { + constructor(lineNumber, column) { + this.lineNumber = lineNumber; + this.column = column; + } + /** + * Create a new position from this position. + * + * @param newLineNumber new line number + * @param newColumn new column + */ + with(newLineNumber = this.lineNumber, newColumn = this.column) { + if (newLineNumber === this.lineNumber && newColumn === this.column) { + return this; + } + else { + return new Position(newLineNumber, newColumn); + } + } + /** + * Derive a new position from this position. + * + * @param deltaLineNumber line number delta + * @param deltaColumn column delta + */ + delta(deltaLineNumber = 0, deltaColumn = 0) { + return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn); + } + /** + * Test if this position equals other position + */ + equals(other) { + return Position.equals(this, other); + } + /** + * Test if position `a` equals position `b` + */ + static equals(a, b) { + if (!a && !b) { + return true; + } + return (!!a && + !!b && + a.lineNumber === b.lineNumber && + a.column === b.column); + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be false. + */ + isBefore(other) { + return Position.isBefore(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be false. + */ + static isBefore(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column < b.column; + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be true. + */ + isBeforeOrEqual(other) { + return Position.isBeforeOrEqual(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be true. + */ + static isBeforeOrEqual(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column <= b.column; + } + /** + * A function that compares positions, useful for sorting + */ + static compare(a, b) { + const aLineNumber = a.lineNumber | 0; + const bLineNumber = b.lineNumber | 0; + if (aLineNumber === bLineNumber) { + const aColumn = a.column | 0; + const bColumn = b.column | 0; + return aColumn - bColumn; + } + return aLineNumber - bLineNumber; + } + /** + * Clone this position. + */ + clone() { + return new Position(this.lineNumber, this.column); + } + /** + * Convert to a human-readable representation. + */ + toString() { + return '(' + this.lineNumber + ',' + this.column + ')'; + } + // --- + /** + * Create a `Position` from an `IPosition`. + */ + static lift(pos) { + return new Position(pos.lineNumber, pos.column); + } + /** + * Test if `obj` is an `IPosition`. + */ + static isIPosition(obj) { + return (obj + && (typeof obj.lineNumber === 'number') + && (typeof obj.column === 'number')); + } + toJSON() { + return { + lineNumber: this.lineNumber, + column: this.column + }; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) + */ +class Range { + constructor(startLineNumber, startColumn, endLineNumber, endColumn) { + if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) { + this.startLineNumber = endLineNumber; + this.startColumn = endColumn; + this.endLineNumber = startLineNumber; + this.endColumn = startColumn; + } + else { + this.startLineNumber = startLineNumber; + this.startColumn = startColumn; + this.endLineNumber = endLineNumber; + this.endColumn = endColumn; + } + } + /** + * Test if this range is empty. + */ + isEmpty() { + return Range.isEmpty(this); + } + /** + * Test if `range` is empty. + */ + static isEmpty(range) { + return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn); + } + /** + * Test if position is in this range. If the position is at the edges, will return true. + */ + containsPosition(position) { + return Range.containsPosition(this, position); + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return true. + */ + static containsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return false. + * @internal + */ + static strictContainsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) { + return false; + } + return true; + } + /** + * Test if range is in this range. If the range is equal to this range, will return true. + */ + containsRange(range) { + return Range.containsRange(this, range); + } + /** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ + static containsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true. + */ + strictContainsRange(range) { + return Range.strictContainsRange(this, range); + } + /** + * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false. + */ + static strictContainsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) { + return false; + } + return true; + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + plusRange(range) { + return Range.plusRange(this, range); + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + static plusRange(a, b) { + let startLineNumber; + let startColumn; + let endLineNumber; + let endColumn; + if (b.startLineNumber < a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = b.startColumn; + } + else if (b.startLineNumber === a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = Math.min(b.startColumn, a.startColumn); + } + else { + startLineNumber = a.startLineNumber; + startColumn = a.startColumn; + } + if (b.endLineNumber > a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = b.endColumn; + } + else if (b.endLineNumber === a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = Math.max(b.endColumn, a.endColumn); + } + else { + endLineNumber = a.endLineNumber; + endColumn = a.endColumn; + } + return new Range(startLineNumber, startColumn, endLineNumber, endColumn); + } + /** + * A intersection of the two ranges. + */ + intersectRanges(range) { + return Range.intersectRanges(this, range); + } + /** + * A intersection of the two ranges. + */ + static intersectRanges(a, b) { + let resultStartLineNumber = a.startLineNumber; + let resultStartColumn = a.startColumn; + let resultEndLineNumber = a.endLineNumber; + let resultEndColumn = a.endColumn; + const otherStartLineNumber = b.startLineNumber; + const otherStartColumn = b.startColumn; + const otherEndLineNumber = b.endLineNumber; + const otherEndColumn = b.endColumn; + if (resultStartLineNumber < otherStartLineNumber) { + resultStartLineNumber = otherStartLineNumber; + resultStartColumn = otherStartColumn; + } + else if (resultStartLineNumber === otherStartLineNumber) { + resultStartColumn = Math.max(resultStartColumn, otherStartColumn); + } + if (resultEndLineNumber > otherEndLineNumber) { + resultEndLineNumber = otherEndLineNumber; + resultEndColumn = otherEndColumn; + } + else if (resultEndLineNumber === otherEndLineNumber) { + resultEndColumn = Math.min(resultEndColumn, otherEndColumn); + } + // Check if selection is now empty + if (resultStartLineNumber > resultEndLineNumber) { + return null; + } + if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) { + return null; + } + return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn); + } + /** + * Test if this range equals other. + */ + equalsRange(other) { + return Range.equalsRange(this, other); + } + /** + * Test if range `a` equals `b`. + */ + static equalsRange(a, b) { + if (!a && !b) { + return true; + } + return (!!a && + !!b && + a.startLineNumber === b.startLineNumber && + a.startColumn === b.startColumn && + a.endLineNumber === b.endLineNumber && + a.endColumn === b.endColumn); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + getEndPosition() { + return Range.getEndPosition(this); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + static getEndPosition(range) { + return new Position(range.endLineNumber, range.endColumn); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + getStartPosition() { + return Range.getStartPosition(this); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + static getStartPosition(range) { + return new Position(range.startLineNumber, range.startColumn); + } + /** + * Transform to a user presentable string representation. + */ + toString() { + return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']'; + } + /** + * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. + */ + setEndPosition(endLineNumber, endColumn) { + return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + /** + * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. + */ + setStartPosition(startLineNumber, startColumn) { + return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + /** + * Create a new empty range using this range's start position. + */ + collapseToStart() { + return Range.collapseToStart(this); + } + /** + * Create a new empty range using this range's start position. + */ + static collapseToStart(range) { + return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn); + } + /** + * Create a new empty range using this range's end position. + */ + collapseToEnd() { + return Range.collapseToEnd(this); + } + /** + * Create a new empty range using this range's end position. + */ + static collapseToEnd(range) { + return new Range(range.endLineNumber, range.endColumn, range.endLineNumber, range.endColumn); + } + /** + * Moves the range by the given amount of lines. + */ + delta(lineCount) { + return new Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn); + } + // --- + static fromPositions(start, end = start) { + return new Range(start.lineNumber, start.column, end.lineNumber, end.column); + } + static lift(range) { + if (!range) { + return null; + } + return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + /** + * Test if `obj` is an `IRange`. + */ + static isIRange(obj) { + return (obj + && (typeof obj.startLineNumber === 'number') + && (typeof obj.startColumn === 'number') + && (typeof obj.endLineNumber === 'number') + && (typeof obj.endColumn === 'number')); + } + /** + * Test if the two ranges are touching in any way. + */ + static areIntersectingOrTouching(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * Test if the two ranges are intersecting. If the ranges are touching it returns true. + */ + static areIntersecting(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the startPosition and then on the endPosition + */ + static compareRangesUsingStarts(a, b) { + if (a && b) { + const aStartLineNumber = a.startLineNumber | 0; + const bStartLineNumber = b.startLineNumber | 0; + if (aStartLineNumber === bStartLineNumber) { + const aStartColumn = a.startColumn | 0; + const bStartColumn = b.startColumn | 0; + if (aStartColumn === bStartColumn) { + const aEndLineNumber = a.endLineNumber | 0; + const bEndLineNumber = b.endLineNumber | 0; + if (aEndLineNumber === bEndLineNumber) { + const aEndColumn = a.endColumn | 0; + const bEndColumn = b.endColumn | 0; + return aEndColumn - bEndColumn; + } + return aEndLineNumber - bEndLineNumber; + } + return aStartColumn - bStartColumn; + } + return aStartLineNumber - bStartLineNumber; + } + const aExists = (a ? 1 : 0); + const bExists = (b ? 1 : 0); + return aExists - bExists; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the endPosition and then on the startPosition + */ + static compareRangesUsingEnds(a, b) { + if (a.endLineNumber === b.endLineNumber) { + if (a.endColumn === b.endColumn) { + if (a.startLineNumber === b.startLineNumber) { + return a.startColumn - b.startColumn; + } + return a.startLineNumber - b.startLineNumber; + } + return a.endColumn - b.endColumn; + } + return a.endLineNumber - b.endLineNumber; + } + /** + * Test if the range spans multiple lines. + */ + static spansMultipleLines(range) { + return range.endLineNumber > range.startLineNumber; + } + toJSON() { + return this; + } +} + +/** + * Returns the last element of an array. + * @param array The array. + * @param n Which element from the end (default is zero). + */ +function equals(one, other, itemEquals = (a, b) => a === b) { + if (one === other) { + return true; + } + if (!one || !other) { + return false; + } + if (one.length !== other.length) { + return false; + } + for (let i = 0, len = one.length; i < len; i++) { + if (!itemEquals(one[i], other[i])) { + return false; + } + } + return true; +} +/** + * Splits the given items into a list of (non-empty) groups. + * `shouldBeGrouped` is used to decide if two consecutive items should be in the same group. + * The order of the items is preserved. + */ +function* groupAdjacentBy(items, shouldBeGrouped) { + let currentGroup; + let last; + for (const item of items) { + if (last !== undefined && shouldBeGrouped(last, item)) { + currentGroup.push(item); + } + else { + if (currentGroup) { + yield currentGroup; + } + currentGroup = [item]; + } + last = item; + } + if (currentGroup) { + yield currentGroup; + } +} +function forEachAdjacent(arr, f) { + for (let i = 0; i <= arr.length; i++) { + f(i === 0 ? undefined : arr[i - 1], i === arr.length ? undefined : arr[i]); + } +} +function forEachWithNeighbors(arr, f) { + for (let i = 0; i < arr.length; i++) { + f(i === 0 ? undefined : arr[i - 1], arr[i], i + 1 === arr.length ? undefined : arr[i + 1]); + } +} +function pushMany(arr, items) { + for (const item of items) { + arr.push(item); + } +} +var CompareResult; +(function (CompareResult) { + function isLessThan(result) { + return result < 0; + } + CompareResult.isLessThan = isLessThan; + function isLessThanOrEqual(result) { + return result <= 0; + } + CompareResult.isLessThanOrEqual = isLessThanOrEqual; + function isGreaterThan(result) { + return result > 0; + } + CompareResult.isGreaterThan = isGreaterThan; + function isNeitherLessOrGreaterThan(result) { + return result === 0; + } + CompareResult.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan; + CompareResult.greaterThan = 1; + CompareResult.lessThan = -1; + CompareResult.neitherLessOrGreaterThan = 0; +})(CompareResult || (CompareResult = {})); +function compareBy(selector, comparator) { + return (a, b) => comparator(selector(a), selector(b)); +} +/** + * The natural order on numbers. +*/ +const numberComparator = (a, b) => a - b; +function reverseOrder(comparator) { + return (a, b) => -comparator(a, b); +} +/** + * This class is faster than an iterator and array for lazy computed data. +*/ +class CallbackIterable { + static { this.empty = new CallbackIterable(_callback => { }); } + constructor( + /** + * Calls the callback for every item. + * Stops when the callback returns false. + */ + iterate) { + this.iterate = iterate; + } + toArray() { + const result = []; + this.iterate(item => { result.push(item); return true; }); + return result; + } + filter(predicate) { + return new CallbackIterable(cb => this.iterate(item => predicate(item) ? cb(item) : true)); + } + map(mapFn) { + return new CallbackIterable(cb => this.iterate(item => cb(mapFn(item)))); + } + findLast(predicate) { + let result; + this.iterate(item => { + if (predicate(item)) { + result = item; + } + return true; + }); + return result; + } + findLastMaxBy(comparator) { + let result; + let first = true; + this.iterate(item => { + if (first || CompareResult.isGreaterThan(comparator(item, result))) { + first = false; + result = item; + } + return true; + }); + return result; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function toUint8(v) { + if (v < 0) { + return 0; + } + if (v > 255 /* Constants.MAX_UINT_8 */) { + return 255 /* Constants.MAX_UINT_8 */; + } + return v | 0; +} +function toUint32(v) { + if (v < 0) { + return 0; + } + if (v > 4294967295 /* Constants.MAX_UINT_32 */) { + return 4294967295 /* Constants.MAX_UINT_32 */; + } + return v | 0; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class PrefixSumComputer { + constructor(values) { + this.values = values; + this.prefixSum = new Uint32Array(values.length); + this.prefixSumValidIndex = new Int32Array(1); + this.prefixSumValidIndex[0] = -1; + } + insertValues(insertIndex, insertValues) { + insertIndex = toUint32(insertIndex); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + const insertValuesLen = insertValues.length; + if (insertValuesLen === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length + insertValuesLen); + this.values.set(oldValues.subarray(0, insertIndex), 0); + this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen); + this.values.set(insertValues, insertIndex); + if (insertIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = insertIndex - 1; + } + this.prefixSum = new Uint32Array(this.values.length); + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + setValue(index, value) { + index = toUint32(index); + value = toUint32(value); + if (this.values[index] === value) { + return false; + } + this.values[index] = value; + if (index - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = index - 1; + } + return true; + } + removeValues(startIndex, count) { + startIndex = toUint32(startIndex); + count = toUint32(count); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + if (startIndex >= oldValues.length) { + return false; + } + const maxCount = oldValues.length - startIndex; + if (count >= maxCount) { + count = maxCount; + } + if (count === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length - count); + this.values.set(oldValues.subarray(0, startIndex), 0); + this.values.set(oldValues.subarray(startIndex + count), startIndex); + this.prefixSum = new Uint32Array(this.values.length); + if (startIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = startIndex - 1; + } + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + getTotalSum() { + if (this.values.length === 0) { + return 0; + } + return this._getPrefixSum(this.values.length - 1); + } + /** + * Returns the sum of the first `index + 1` many items. + * @returns `SUM(0 <= j <= index, values[j])`. + */ + getPrefixSum(index) { + if (index < 0) { + return 0; + } + index = toUint32(index); + return this._getPrefixSum(index); + } + _getPrefixSum(index) { + if (index <= this.prefixSumValidIndex[0]) { + return this.prefixSum[index]; + } + let startIndex = this.prefixSumValidIndex[0] + 1; + if (startIndex === 0) { + this.prefixSum[0] = this.values[0]; + startIndex++; + } + if (index >= this.values.length) { + index = this.values.length - 1; + } + for (let i = startIndex; i <= index; i++) { + this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i]; + } + this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index); + return this.prefixSum[index]; + } + getIndexOf(sum) { + sum = Math.floor(sum); + // Compute all sums (to get a fully valid prefixSum) + this.getTotalSum(); + let low = 0; + let high = this.values.length - 1; + let mid = 0; + let midStop = 0; + let midStart = 0; + while (low <= high) { + mid = low + ((high - low) / 2) | 0; + midStop = this.prefixSum[mid]; + midStart = midStop - this.values[mid]; + if (sum < midStart) { + high = mid - 1; + } + else if (sum >= midStop) { + low = mid + 1; + } + else { + break; + } + } + return new PrefixSumIndexOfResult(mid, sum - midStart); + } +} +class PrefixSumIndexOfResult { + constructor(index, remainder) { + this.index = index; + this.remainder = remainder; + this._prefixSumIndexOfResultBrand = undefined; + this.index = index; + this.remainder = remainder; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class MirrorTextModel { + constructor(uri, lines, eol, versionId) { + this._uri = uri; + this._lines = lines; + this._eol = eol; + this._versionId = versionId; + this._lineStarts = null; + this._cachedTextValue = null; + } + dispose() { + this._lines.length = 0; + } + get version() { + return this._versionId; + } + getText() { + if (this._cachedTextValue === null) { + this._cachedTextValue = this._lines.join(this._eol); + } + return this._cachedTextValue; + } + onEvents(e) { + if (e.eol && e.eol !== this._eol) { + this._eol = e.eol; + this._lineStarts = null; + } + // Update my lines + const changes = e.changes; + for (const change of changes) { + this._acceptDeleteRange(change.range); + this._acceptInsertText(new Position(change.range.startLineNumber, change.range.startColumn), change.text); + } + this._versionId = e.versionId; + this._cachedTextValue = null; + } + _ensureLineStarts() { + if (!this._lineStarts) { + const eolLength = this._eol.length; + const linesLength = this._lines.length; + const lineStartValues = new Uint32Array(linesLength); + for (let i = 0; i < linesLength; i++) { + lineStartValues[i] = this._lines[i].length + eolLength; + } + this._lineStarts = new PrefixSumComputer(lineStartValues); + } + } + /** + * All changes to a line's text go through this method + */ + _setLineText(lineIndex, newValue) { + this._lines[lineIndex] = newValue; + if (this._lineStarts) { + // update prefix sum + this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length); + } + } + _acceptDeleteRange(range) { + if (range.startLineNumber === range.endLineNumber) { + if (range.startColumn === range.endColumn) { + // Nothing to delete + return; + } + // Delete text on the affected line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1)); + return; + } + // Take remaining text on last line and append it to remaining text on first line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1)); + // Delete middle lines + this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber); + if (this._lineStarts) { + // update prefix sum + this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber); + } + } + _acceptInsertText(position, insertText) { + if (insertText.length === 0) { + // Nothing to insert + return; + } + const insertLines = splitLines(insertText); + if (insertLines.length === 1) { + // Inserting text on one line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0] + + this._lines[position.lineNumber - 1].substring(position.column - 1)); + return; + } + // Append overflowing text from first line to the end of text to insert + insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1); + // Delete overflowing text from first line and insert text on first line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0]); + // Insert new lines & store lengths + const newLengths = new Uint32Array(insertLines.length - 1); + for (let i = 1; i < insertLines.length; i++) { + this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]); + newLengths[i - 1] = insertLines[i].length + this._eol.length; + } + if (this._lineStarts) { + // update prefix sum + this._lineStarts.insertValues(position.lineNumber, newLengths); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?'; +/** + * Create a word definition regular expression based on default word separators. + * Optionally provide allowed separators that should be included in words. + * + * The default would look like this: + * /(-?\d*\.\d\w*)|([^\`\~\!\@\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g + */ +function createWordRegExp(allowInWords = '') { + let source = '(-?\\d*\\.\\d\\w*)|([^'; + for (const sep of USUAL_WORD_SEPARATORS) { + if (allowInWords.indexOf(sep) >= 0) { + continue; + } + source += '\\' + sep; + } + source += '\\s]+)'; + return new RegExp(source, 'g'); +} +// catches numbers (including floating numbers) in the first group, and alphanum in the second +const DEFAULT_WORD_REGEXP = createWordRegExp(); +function ensureValidWordDefinition(wordDefinition) { + let result = DEFAULT_WORD_REGEXP; + if (wordDefinition && (wordDefinition instanceof RegExp)) { + if (!wordDefinition.global) { + let flags = 'g'; + if (wordDefinition.ignoreCase) { + flags += 'i'; + } + if (wordDefinition.multiline) { + flags += 'm'; + } + if (wordDefinition.unicode) { + flags += 'u'; + } + result = new RegExp(wordDefinition.source, flags); + } + else { + result = wordDefinition; + } + } + result.lastIndex = 0; + return result; +} +const _defaultConfig = new LinkedList(); +_defaultConfig.unshift({ + maxLen: 1000, + windowSize: 15, + timeBudget: 150 +}); +function getWordAtText(column, wordDefinition, text, textOffset, config) { + // Ensure the regex has the 'g' flag, otherwise this will loop forever + wordDefinition = ensureValidWordDefinition(wordDefinition); + if (!config) { + config = Iterable.first(_defaultConfig); + } + if (text.length > config.maxLen) { + // don't throw strings that long at the regexp + // but use a sub-string in which a word must occur + let start = column - config.maxLen / 2; + if (start < 0) { + start = 0; + } + else { + textOffset += start; + } + text = text.substring(start, column + config.maxLen / 2); + return getWordAtText(column, wordDefinition, text, textOffset, config); + } + const t1 = Date.now(); + const pos = column - 1 - textOffset; + let prevRegexIndex = -1; + let match = null; + for (let i = 1;; i++) { + // check time budget + if (Date.now() - t1 >= config.timeBudget) { + break; + } + // reset the index at which the regexp should start matching, also know where it + // should stop so that subsequent search don't repeat previous searches + const regexIndex = pos - config.windowSize * i; + wordDefinition.lastIndex = Math.max(0, regexIndex); + const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex); + if (!thisMatch && match) { + // stop: we have something + break; + } + match = thisMatch; + // stop: searched at start + if (regexIndex <= 0) { + break; + } + prevRegexIndex = regexIndex; + } + if (match) { + const result = { + word: match[0], + startColumn: textOffset + 1 + match.index, + endColumn: textOffset + 1 + match.index + match[0].length + }; + wordDefinition.lastIndex = 0; + return result; + } + return null; +} +function _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) { + let match; + while (match = wordDefinition.exec(text)) { + const matchIndex = match.index || 0; + if (matchIndex <= pos && wordDefinition.lastIndex >= pos) { + return match; + } + else if (stopPos > 0 && matchIndex > stopPos) { + return null; + } + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A fast character classifier that uses a compact array for ASCII values. + */ +class CharacterClassifier { + constructor(_defaultValue) { + const defaultValue = toUint8(_defaultValue); + this._defaultValue = defaultValue; + this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue); + this._map = new Map(); + } + static _createAsciiMap(defaultValue) { + const asciiMap = new Uint8Array(256); + asciiMap.fill(defaultValue); + return asciiMap; + } + set(charCode, _value) { + const value = toUint8(_value); + if (charCode >= 0 && charCode < 256) { + this._asciiMap[charCode] = value; + } + else { + this._map.set(charCode, value); + } + } + get(charCode) { + if (charCode >= 0 && charCode < 256) { + return this._asciiMap[charCode]; + } + else { + return (this._map.get(charCode) || this._defaultValue); + } + } + clear() { + this._asciiMap.fill(this._defaultValue); + this._map.clear(); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Uint8Matrix { + constructor(rows, cols, defaultValue) { + const data = new Uint8Array(rows * cols); + for (let i = 0, len = rows * cols; i < len; i++) { + data[i] = defaultValue; + } + this._data = data; + this.rows = rows; + this.cols = cols; + } + get(row, col) { + return this._data[row * this.cols + col]; + } + set(row, col, value) { + this._data[row * this.cols + col] = value; + } +} +class StateMachine { + constructor(edges) { + let maxCharCode = 0; + let maxState = 0 /* State.Invalid */; + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + if (chCode > maxCharCode) { + maxCharCode = chCode; + } + if (from > maxState) { + maxState = from; + } + if (to > maxState) { + maxState = to; + } + } + maxCharCode++; + maxState++; + const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */); + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + states.set(from, chCode, to); + } + this._states = states; + this._maxCharCode = maxCharCode; + } + nextState(currentState, chCode) { + if (chCode < 0 || chCode >= this._maxCharCode) { + return 0 /* State.Invalid */; + } + return this._states.get(currentState, chCode); + } +} +// State machine for http:// or https:// or file:// +let _stateMachine = null; +function getStateMachine() { + if (_stateMachine === null) { + _stateMachine = new StateMachine([ + [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */], + [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */], + [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */], + [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */], + [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */], + [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */], + [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */], + [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */], + [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */], + [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */], + [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */], + [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */], + [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */], + [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */], + [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */], + [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */], + [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */], + [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */], + ]); + } + return _stateMachine; +} +let _classifier = null; +function getClassifier() { + if (_classifier === null) { + _classifier = new CharacterClassifier(0 /* CharacterClass.None */); + // allow-any-unicode-next-line + const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…'; + for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) { + _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */); + } + const CANNOT_END_WITH_CHARACTERS = '.,;:'; + for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) { + _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */); + } + } + return _classifier; +} +class LinkComputer { + static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) { + // Do not allow to end link in certain characters... + let lastIncludedCharIndex = linkEndIndex - 1; + do { + const chCode = line.charCodeAt(lastIncludedCharIndex); + const chClass = classifier.get(chCode); + if (chClass !== 2 /* CharacterClass.CannotEndIn */) { + break; + } + lastIncludedCharIndex--; + } while (lastIncludedCharIndex > linkBeginIndex); + // Handle links enclosed in parens, square brackets and curlys. + if (linkBeginIndex > 0) { + const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1); + const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex); + if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */) + || (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */) + || (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) { + // Do not end in ) if ( is before the link start + // Do not end in ] if [ is before the link start + // Do not end in } if { is before the link start + lastIncludedCharIndex--; + } + } + return { + range: { + startLineNumber: lineNumber, + startColumn: linkBeginIndex + 1, + endLineNumber: lineNumber, + endColumn: lastIncludedCharIndex + 2 + }, + url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1) + }; + } + static computeLinks(model, stateMachine = getStateMachine()) { + const classifier = getClassifier(); + const result = []; + for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) { + const line = model.getLineContent(i); + const len = line.length; + let j = 0; + let linkBeginIndex = 0; + let linkBeginChCode = 0; + let state = 1 /* State.Start */; + let hasOpenParens = false; + let hasOpenSquareBracket = false; + let inSquareBrackets = false; + let hasOpenCurlyBracket = false; + while (j < len) { + let resetStateMachine = false; + const chCode = line.charCodeAt(j); + if (state === 13 /* State.Accept */) { + let chClass; + switch (chCode) { + case 40 /* CharCode.OpenParen */: + hasOpenParens = true; + chClass = 0 /* CharacterClass.None */; + break; + case 41 /* CharCode.CloseParen */: + chClass = (hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 91 /* CharCode.OpenSquareBracket */: + inSquareBrackets = true; + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 93 /* CharCode.CloseSquareBracket */: + inSquareBrackets = false; + chClass = (hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 123 /* CharCode.OpenCurlyBrace */: + hasOpenCurlyBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 125 /* CharCode.CloseCurlyBrace */: + chClass = (hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + // The following three rules make it that ' or " or ` are allowed inside links + // only if the link is wrapped by some other quote character + case 39 /* CharCode.SingleQuote */: + case 34 /* CharCode.DoubleQuote */: + case 96 /* CharCode.BackTick */: + if (linkBeginChCode === chCode) { + chClass = 1 /* CharacterClass.ForceTermination */; + } + else if (linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 34 /* CharCode.DoubleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */) { + chClass = 0 /* CharacterClass.None */; + } + else { + chClass = 1 /* CharacterClass.ForceTermination */; + } + break; + case 42 /* CharCode.Asterisk */: + // `*` terminates a link if the link began with `*` + chClass = (linkBeginChCode === 42 /* CharCode.Asterisk */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 124 /* CharCode.Pipe */: + // `|` terminates a link if the link began with `|` + chClass = (linkBeginChCode === 124 /* CharCode.Pipe */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 32 /* CharCode.Space */: + // ` ` allow space in between [ and ] + chClass = (inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + default: + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j)); + resetStateMachine = true; + } + } + else if (state === 12 /* State.End */) { + let chClass; + if (chCode === 91 /* CharCode.OpenSquareBracket */) { + // Allow for the authority part to contain ipv6 addresses which contain [ and ] + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + } + else { + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + resetStateMachine = true; + } + else { + state = 13 /* State.Accept */; + } + } + else { + state = stateMachine.nextState(state, chCode); + if (state === 0 /* State.Invalid */) { + resetStateMachine = true; + } + } + if (resetStateMachine) { + state = 1 /* State.Start */; + hasOpenParens = false; + hasOpenSquareBracket = false; + hasOpenCurlyBracket = false; + // Record where the link started + linkBeginIndex = j + 1; + linkBeginChCode = chCode; + } + j++; + } + if (state === 13 /* State.Accept */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len)); + } + } + return result; + } +} +/** + * Returns an array of all links contains in the provided + * document. *Note* that this operation is computational + * expensive and should not run in the UI thread. + */ +function computeLinks(model) { + if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') { + // Unknown caller! + return []; + } + return LinkComputer.computeLinks(model); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class BasicInplaceReplace { + constructor() { + this._defaultValueSet = [ + ['true', 'false'], + ['True', 'False'], + ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'], + ['public', 'protected', 'private'], + ]; + } + static { this.INSTANCE = new BasicInplaceReplace(); } + navigateValueSet(range1, text1, range2, text2, up) { + if (range1 && text1) { + const result = this.doNavigateValueSet(text1, up); + if (result) { + return { + range: range1, + value: result + }; + } + } + if (range2 && text2) { + const result = this.doNavigateValueSet(text2, up); + if (result) { + return { + range: range2, + value: result + }; + } + } + return null; + } + doNavigateValueSet(text, up) { + const numberResult = this.numberReplace(text, up); + if (numberResult !== null) { + return numberResult; + } + return this.textReplace(text, up); + } + numberReplace(value, up) { + const precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1)); + let n1 = Number(value); + const n2 = parseFloat(value); + if (!isNaN(n1) && !isNaN(n2) && n1 === n2) { + if (n1 === 0 && !up) { + return null; // don't do negative + // } else if(n1 === 9 && up) { + // return null; // don't insert 10 into a number + } + else { + n1 = Math.floor(n1 * precision); + n1 += up ? precision : -precision; + return String(n1 / precision); + } + } + return null; + } + textReplace(value, up) { + return this.valueSetsReplace(this._defaultValueSet, value, up); + } + valueSetsReplace(valueSets, value, up) { + let result = null; + for (let i = 0, len = valueSets.length; result === null && i < len; i++) { + result = this.valueSetReplace(valueSets[i], value, up); + } + return result; + } + valueSetReplace(valueSet, value, up) { + let idx = valueSet.indexOf(value); + if (idx >= 0) { + idx += up ? +1 : -1; + if (idx < 0) { + idx = valueSet.length - 1; + } + else { + idx %= valueSet.length; + } + return valueSet[idx]; + } + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const shortcutEvent = Object.freeze(function (callback, context) { + const handle = setTimeout(callback.bind(context), 0); + return { dispose() { clearTimeout(handle); } }; +}); +var CancellationToken; +(function (CancellationToken) { + function isCancellationToken(thing) { + if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) { + return true; + } + if (thing instanceof MutableToken) { + return true; + } + if (!thing || typeof thing !== 'object') { + return false; + } + return typeof thing.isCancellationRequested === 'boolean' + && typeof thing.onCancellationRequested === 'function'; + } + CancellationToken.isCancellationToken = isCancellationToken; + CancellationToken.None = Object.freeze({ + isCancellationRequested: false, + onCancellationRequested: Event.None + }); + CancellationToken.Cancelled = Object.freeze({ + isCancellationRequested: true, + onCancellationRequested: shortcutEvent + }); +})(CancellationToken || (CancellationToken = {})); +class MutableToken { + constructor() { + this._isCancelled = false; + this._emitter = null; + } + cancel() { + if (!this._isCancelled) { + this._isCancelled = true; + if (this._emitter) { + this._emitter.fire(undefined); + this.dispose(); + } + } + } + get isCancellationRequested() { + return this._isCancelled; + } + get onCancellationRequested() { + if (this._isCancelled) { + return shortcutEvent; + } + if (!this._emitter) { + this._emitter = new Emitter(); + } + return this._emitter.event; + } + dispose() { + if (this._emitter) { + this._emitter.dispose(); + this._emitter = null; + } + } +} +class CancellationTokenSource { + constructor(parent) { + this._token = undefined; + this._parentListener = undefined; + this._parentListener = parent && parent.onCancellationRequested(this.cancel, this); + } + get token() { + if (!this._token) { + // be lazy and create the token only when + // actually needed + this._token = new MutableToken(); + } + return this._token; + } + cancel() { + if (!this._token) { + // save an object by returning the default + // cancelled token when cancellation happens + // before someone asks for the token + this._token = CancellationToken.Cancelled; + } + else if (this._token instanceof MutableToken) { + // actually cancel + this._token.cancel(); + } + } + dispose(cancel = false) { + if (cancel) { + this.cancel(); + } + this._parentListener?.dispose(); + if (!this._token) { + // ensure to initialize with an empty token if we had none + this._token = CancellationToken.None; + } + else if (this._token instanceof MutableToken) { + // actually dispose + this._token.dispose(); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class KeyCodeStrMap { + constructor() { + this._keyCodeToStr = []; + this._strToKeyCode = Object.create(null); + } + define(keyCode, str) { + this._keyCodeToStr[keyCode] = str; + this._strToKeyCode[str.toLowerCase()] = keyCode; + } + keyCodeToStr(keyCode) { + return this._keyCodeToStr[keyCode]; + } + strToKeyCode(str) { + return this._strToKeyCode[str.toLowerCase()] || 0 /* KeyCode.Unknown */; + } +} +const uiMap = new KeyCodeStrMap(); +const userSettingsUSMap = new KeyCodeStrMap(); +const userSettingsGeneralMap = new KeyCodeStrMap(); +const EVENT_KEY_CODE_MAP = new Array(230); +const scanCodeStrToInt = Object.create(null); +const scanCodeLowerCaseStrToInt = Object.create(null); +(function () { + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + // See https://github.com/microsoft/node-native-keymap/blob/88c0b0e5/deps/chromium/keyboard_codes_win.h + const empty = ''; + const mappings = [ + // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel + [1, 0 /* ScanCode.None */, 'None', 0 /* KeyCode.Unknown */, 'unknown', 0, 'VK_UNKNOWN', empty, empty], + [1, 1 /* ScanCode.Hyper */, 'Hyper', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 2 /* ScanCode.Super */, 'Super', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 3 /* ScanCode.Fn */, 'Fn', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 4 /* ScanCode.FnLock */, 'FnLock', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 5 /* ScanCode.Suspend */, 'Suspend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 6 /* ScanCode.Resume */, 'Resume', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 7 /* ScanCode.Turbo */, 'Turbo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 8 /* ScanCode.Sleep */, 'Sleep', 0 /* KeyCode.Unknown */, empty, 0, 'VK_SLEEP', empty, empty], + [1, 9 /* ScanCode.WakeUp */, 'WakeUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 10 /* ScanCode.KeyA */, 'KeyA', 31 /* KeyCode.KeyA */, 'A', 65, 'VK_A', empty, empty], + [0, 11 /* ScanCode.KeyB */, 'KeyB', 32 /* KeyCode.KeyB */, 'B', 66, 'VK_B', empty, empty], + [0, 12 /* ScanCode.KeyC */, 'KeyC', 33 /* KeyCode.KeyC */, 'C', 67, 'VK_C', empty, empty], + [0, 13 /* ScanCode.KeyD */, 'KeyD', 34 /* KeyCode.KeyD */, 'D', 68, 'VK_D', empty, empty], + [0, 14 /* ScanCode.KeyE */, 'KeyE', 35 /* KeyCode.KeyE */, 'E', 69, 'VK_E', empty, empty], + [0, 15 /* ScanCode.KeyF */, 'KeyF', 36 /* KeyCode.KeyF */, 'F', 70, 'VK_F', empty, empty], + [0, 16 /* ScanCode.KeyG */, 'KeyG', 37 /* KeyCode.KeyG */, 'G', 71, 'VK_G', empty, empty], + [0, 17 /* ScanCode.KeyH */, 'KeyH', 38 /* KeyCode.KeyH */, 'H', 72, 'VK_H', empty, empty], + [0, 18 /* ScanCode.KeyI */, 'KeyI', 39 /* KeyCode.KeyI */, 'I', 73, 'VK_I', empty, empty], + [0, 19 /* ScanCode.KeyJ */, 'KeyJ', 40 /* KeyCode.KeyJ */, 'J', 74, 'VK_J', empty, empty], + [0, 20 /* ScanCode.KeyK */, 'KeyK', 41 /* KeyCode.KeyK */, 'K', 75, 'VK_K', empty, empty], + [0, 21 /* ScanCode.KeyL */, 'KeyL', 42 /* KeyCode.KeyL */, 'L', 76, 'VK_L', empty, empty], + [0, 22 /* ScanCode.KeyM */, 'KeyM', 43 /* KeyCode.KeyM */, 'M', 77, 'VK_M', empty, empty], + [0, 23 /* ScanCode.KeyN */, 'KeyN', 44 /* KeyCode.KeyN */, 'N', 78, 'VK_N', empty, empty], + [0, 24 /* ScanCode.KeyO */, 'KeyO', 45 /* KeyCode.KeyO */, 'O', 79, 'VK_O', empty, empty], + [0, 25 /* ScanCode.KeyP */, 'KeyP', 46 /* KeyCode.KeyP */, 'P', 80, 'VK_P', empty, empty], + [0, 26 /* ScanCode.KeyQ */, 'KeyQ', 47 /* KeyCode.KeyQ */, 'Q', 81, 'VK_Q', empty, empty], + [0, 27 /* ScanCode.KeyR */, 'KeyR', 48 /* KeyCode.KeyR */, 'R', 82, 'VK_R', empty, empty], + [0, 28 /* ScanCode.KeyS */, 'KeyS', 49 /* KeyCode.KeyS */, 'S', 83, 'VK_S', empty, empty], + [0, 29 /* ScanCode.KeyT */, 'KeyT', 50 /* KeyCode.KeyT */, 'T', 84, 'VK_T', empty, empty], + [0, 30 /* ScanCode.KeyU */, 'KeyU', 51 /* KeyCode.KeyU */, 'U', 85, 'VK_U', empty, empty], + [0, 31 /* ScanCode.KeyV */, 'KeyV', 52 /* KeyCode.KeyV */, 'V', 86, 'VK_V', empty, empty], + [0, 32 /* ScanCode.KeyW */, 'KeyW', 53 /* KeyCode.KeyW */, 'W', 87, 'VK_W', empty, empty], + [0, 33 /* ScanCode.KeyX */, 'KeyX', 54 /* KeyCode.KeyX */, 'X', 88, 'VK_X', empty, empty], + [0, 34 /* ScanCode.KeyY */, 'KeyY', 55 /* KeyCode.KeyY */, 'Y', 89, 'VK_Y', empty, empty], + [0, 35 /* ScanCode.KeyZ */, 'KeyZ', 56 /* KeyCode.KeyZ */, 'Z', 90, 'VK_Z', empty, empty], + [0, 36 /* ScanCode.Digit1 */, 'Digit1', 22 /* KeyCode.Digit1 */, '1', 49, 'VK_1', empty, empty], + [0, 37 /* ScanCode.Digit2 */, 'Digit2', 23 /* KeyCode.Digit2 */, '2', 50, 'VK_2', empty, empty], + [0, 38 /* ScanCode.Digit3 */, 'Digit3', 24 /* KeyCode.Digit3 */, '3', 51, 'VK_3', empty, empty], + [0, 39 /* ScanCode.Digit4 */, 'Digit4', 25 /* KeyCode.Digit4 */, '4', 52, 'VK_4', empty, empty], + [0, 40 /* ScanCode.Digit5 */, 'Digit5', 26 /* KeyCode.Digit5 */, '5', 53, 'VK_5', empty, empty], + [0, 41 /* ScanCode.Digit6 */, 'Digit6', 27 /* KeyCode.Digit6 */, '6', 54, 'VK_6', empty, empty], + [0, 42 /* ScanCode.Digit7 */, 'Digit7', 28 /* KeyCode.Digit7 */, '7', 55, 'VK_7', empty, empty], + [0, 43 /* ScanCode.Digit8 */, 'Digit8', 29 /* KeyCode.Digit8 */, '8', 56, 'VK_8', empty, empty], + [0, 44 /* ScanCode.Digit9 */, 'Digit9', 30 /* KeyCode.Digit9 */, '9', 57, 'VK_9', empty, empty], + [0, 45 /* ScanCode.Digit0 */, 'Digit0', 21 /* KeyCode.Digit0 */, '0', 48, 'VK_0', empty, empty], + [1, 46 /* ScanCode.Enter */, 'Enter', 3 /* KeyCode.Enter */, 'Enter', 13, 'VK_RETURN', empty, empty], + [1, 47 /* ScanCode.Escape */, 'Escape', 9 /* KeyCode.Escape */, 'Escape', 27, 'VK_ESCAPE', empty, empty], + [1, 48 /* ScanCode.Backspace */, 'Backspace', 1 /* KeyCode.Backspace */, 'Backspace', 8, 'VK_BACK', empty, empty], + [1, 49 /* ScanCode.Tab */, 'Tab', 2 /* KeyCode.Tab */, 'Tab', 9, 'VK_TAB', empty, empty], + [1, 50 /* ScanCode.Space */, 'Space', 10 /* KeyCode.Space */, 'Space', 32, 'VK_SPACE', empty, empty], + [0, 51 /* ScanCode.Minus */, 'Minus', 88 /* KeyCode.Minus */, '-', 189, 'VK_OEM_MINUS', '-', 'OEM_MINUS'], + [0, 52 /* ScanCode.Equal */, 'Equal', 86 /* KeyCode.Equal */, '=', 187, 'VK_OEM_PLUS', '=', 'OEM_PLUS'], + [0, 53 /* ScanCode.BracketLeft */, 'BracketLeft', 92 /* KeyCode.BracketLeft */, '[', 219, 'VK_OEM_4', '[', 'OEM_4'], + [0, 54 /* ScanCode.BracketRight */, 'BracketRight', 94 /* KeyCode.BracketRight */, ']', 221, 'VK_OEM_6', ']', 'OEM_6'], + [0, 55 /* ScanCode.Backslash */, 'Backslash', 93 /* KeyCode.Backslash */, '\\', 220, 'VK_OEM_5', '\\', 'OEM_5'], + [0, 56 /* ScanCode.IntlHash */, 'IntlHash', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], // has been dropped from the w3c spec + [0, 57 /* ScanCode.Semicolon */, 'Semicolon', 85 /* KeyCode.Semicolon */, ';', 186, 'VK_OEM_1', ';', 'OEM_1'], + [0, 58 /* ScanCode.Quote */, 'Quote', 95 /* KeyCode.Quote */, '\'', 222, 'VK_OEM_7', '\'', 'OEM_7'], + [0, 59 /* ScanCode.Backquote */, 'Backquote', 91 /* KeyCode.Backquote */, '`', 192, 'VK_OEM_3', '`', 'OEM_3'], + [0, 60 /* ScanCode.Comma */, 'Comma', 87 /* KeyCode.Comma */, ',', 188, 'VK_OEM_COMMA', ',', 'OEM_COMMA'], + [0, 61 /* ScanCode.Period */, 'Period', 89 /* KeyCode.Period */, '.', 190, 'VK_OEM_PERIOD', '.', 'OEM_PERIOD'], + [0, 62 /* ScanCode.Slash */, 'Slash', 90 /* KeyCode.Slash */, '/', 191, 'VK_OEM_2', '/', 'OEM_2'], + [1, 63 /* ScanCode.CapsLock */, 'CapsLock', 8 /* KeyCode.CapsLock */, 'CapsLock', 20, 'VK_CAPITAL', empty, empty], + [1, 64 /* ScanCode.F1 */, 'F1', 59 /* KeyCode.F1 */, 'F1', 112, 'VK_F1', empty, empty], + [1, 65 /* ScanCode.F2 */, 'F2', 60 /* KeyCode.F2 */, 'F2', 113, 'VK_F2', empty, empty], + [1, 66 /* ScanCode.F3 */, 'F3', 61 /* KeyCode.F3 */, 'F3', 114, 'VK_F3', empty, empty], + [1, 67 /* ScanCode.F4 */, 'F4', 62 /* KeyCode.F4 */, 'F4', 115, 'VK_F4', empty, empty], + [1, 68 /* ScanCode.F5 */, 'F5', 63 /* KeyCode.F5 */, 'F5', 116, 'VK_F5', empty, empty], + [1, 69 /* ScanCode.F6 */, 'F6', 64 /* KeyCode.F6 */, 'F6', 117, 'VK_F6', empty, empty], + [1, 70 /* ScanCode.F7 */, 'F7', 65 /* KeyCode.F7 */, 'F7', 118, 'VK_F7', empty, empty], + [1, 71 /* ScanCode.F8 */, 'F8', 66 /* KeyCode.F8 */, 'F8', 119, 'VK_F8', empty, empty], + [1, 72 /* ScanCode.F9 */, 'F9', 67 /* KeyCode.F9 */, 'F9', 120, 'VK_F9', empty, empty], + [1, 73 /* ScanCode.F10 */, 'F10', 68 /* KeyCode.F10 */, 'F10', 121, 'VK_F10', empty, empty], + [1, 74 /* ScanCode.F11 */, 'F11', 69 /* KeyCode.F11 */, 'F11', 122, 'VK_F11', empty, empty], + [1, 75 /* ScanCode.F12 */, 'F12', 70 /* KeyCode.F12 */, 'F12', 123, 'VK_F12', empty, empty], + [1, 76 /* ScanCode.PrintScreen */, 'PrintScreen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 77 /* ScanCode.ScrollLock */, 'ScrollLock', 84 /* KeyCode.ScrollLock */, 'ScrollLock', 145, 'VK_SCROLL', empty, empty], + [1, 78 /* ScanCode.Pause */, 'Pause', 7 /* KeyCode.PauseBreak */, 'PauseBreak', 19, 'VK_PAUSE', empty, empty], + [1, 79 /* ScanCode.Insert */, 'Insert', 19 /* KeyCode.Insert */, 'Insert', 45, 'VK_INSERT', empty, empty], + [1, 80 /* ScanCode.Home */, 'Home', 14 /* KeyCode.Home */, 'Home', 36, 'VK_HOME', empty, empty], + [1, 81 /* ScanCode.PageUp */, 'PageUp', 11 /* KeyCode.PageUp */, 'PageUp', 33, 'VK_PRIOR', empty, empty], + [1, 82 /* ScanCode.Delete */, 'Delete', 20 /* KeyCode.Delete */, 'Delete', 46, 'VK_DELETE', empty, empty], + [1, 83 /* ScanCode.End */, 'End', 13 /* KeyCode.End */, 'End', 35, 'VK_END', empty, empty], + [1, 84 /* ScanCode.PageDown */, 'PageDown', 12 /* KeyCode.PageDown */, 'PageDown', 34, 'VK_NEXT', empty, empty], + [1, 85 /* ScanCode.ArrowRight */, 'ArrowRight', 17 /* KeyCode.RightArrow */, 'RightArrow', 39, 'VK_RIGHT', 'Right', empty], + [1, 86 /* ScanCode.ArrowLeft */, 'ArrowLeft', 15 /* KeyCode.LeftArrow */, 'LeftArrow', 37, 'VK_LEFT', 'Left', empty], + [1, 87 /* ScanCode.ArrowDown */, 'ArrowDown', 18 /* KeyCode.DownArrow */, 'DownArrow', 40, 'VK_DOWN', 'Down', empty], + [1, 88 /* ScanCode.ArrowUp */, 'ArrowUp', 16 /* KeyCode.UpArrow */, 'UpArrow', 38, 'VK_UP', 'Up', empty], + [1, 89 /* ScanCode.NumLock */, 'NumLock', 83 /* KeyCode.NumLock */, 'NumLock', 144, 'VK_NUMLOCK', empty, empty], + [1, 90 /* ScanCode.NumpadDivide */, 'NumpadDivide', 113 /* KeyCode.NumpadDivide */, 'NumPad_Divide', 111, 'VK_DIVIDE', empty, empty], + [1, 91 /* ScanCode.NumpadMultiply */, 'NumpadMultiply', 108 /* KeyCode.NumpadMultiply */, 'NumPad_Multiply', 106, 'VK_MULTIPLY', empty, empty], + [1, 92 /* ScanCode.NumpadSubtract */, 'NumpadSubtract', 111 /* KeyCode.NumpadSubtract */, 'NumPad_Subtract', 109, 'VK_SUBTRACT', empty, empty], + [1, 93 /* ScanCode.NumpadAdd */, 'NumpadAdd', 109 /* KeyCode.NumpadAdd */, 'NumPad_Add', 107, 'VK_ADD', empty, empty], + [1, 94 /* ScanCode.NumpadEnter */, 'NumpadEnter', 3 /* KeyCode.Enter */, empty, 0, empty, empty, empty], + [1, 95 /* ScanCode.Numpad1 */, 'Numpad1', 99 /* KeyCode.Numpad1 */, 'NumPad1', 97, 'VK_NUMPAD1', empty, empty], + [1, 96 /* ScanCode.Numpad2 */, 'Numpad2', 100 /* KeyCode.Numpad2 */, 'NumPad2', 98, 'VK_NUMPAD2', empty, empty], + [1, 97 /* ScanCode.Numpad3 */, 'Numpad3', 101 /* KeyCode.Numpad3 */, 'NumPad3', 99, 'VK_NUMPAD3', empty, empty], + [1, 98 /* ScanCode.Numpad4 */, 'Numpad4', 102 /* KeyCode.Numpad4 */, 'NumPad4', 100, 'VK_NUMPAD4', empty, empty], + [1, 99 /* ScanCode.Numpad5 */, 'Numpad5', 103 /* KeyCode.Numpad5 */, 'NumPad5', 101, 'VK_NUMPAD5', empty, empty], + [1, 100 /* ScanCode.Numpad6 */, 'Numpad6', 104 /* KeyCode.Numpad6 */, 'NumPad6', 102, 'VK_NUMPAD6', empty, empty], + [1, 101 /* ScanCode.Numpad7 */, 'Numpad7', 105 /* KeyCode.Numpad7 */, 'NumPad7', 103, 'VK_NUMPAD7', empty, empty], + [1, 102 /* ScanCode.Numpad8 */, 'Numpad8', 106 /* KeyCode.Numpad8 */, 'NumPad8', 104, 'VK_NUMPAD8', empty, empty], + [1, 103 /* ScanCode.Numpad9 */, 'Numpad9', 107 /* KeyCode.Numpad9 */, 'NumPad9', 105, 'VK_NUMPAD9', empty, empty], + [1, 104 /* ScanCode.Numpad0 */, 'Numpad0', 98 /* KeyCode.Numpad0 */, 'NumPad0', 96, 'VK_NUMPAD0', empty, empty], + [1, 105 /* ScanCode.NumpadDecimal */, 'NumpadDecimal', 112 /* KeyCode.NumpadDecimal */, 'NumPad_Decimal', 110, 'VK_DECIMAL', empty, empty], + [0, 106 /* ScanCode.IntlBackslash */, 'IntlBackslash', 97 /* KeyCode.IntlBackslash */, 'OEM_102', 226, 'VK_OEM_102', empty, empty], + [1, 107 /* ScanCode.ContextMenu */, 'ContextMenu', 58 /* KeyCode.ContextMenu */, 'ContextMenu', 93, empty, empty, empty], + [1, 108 /* ScanCode.Power */, 'Power', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 109 /* ScanCode.NumpadEqual */, 'NumpadEqual', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 110 /* ScanCode.F13 */, 'F13', 71 /* KeyCode.F13 */, 'F13', 124, 'VK_F13', empty, empty], + [1, 111 /* ScanCode.F14 */, 'F14', 72 /* KeyCode.F14 */, 'F14', 125, 'VK_F14', empty, empty], + [1, 112 /* ScanCode.F15 */, 'F15', 73 /* KeyCode.F15 */, 'F15', 126, 'VK_F15', empty, empty], + [1, 113 /* ScanCode.F16 */, 'F16', 74 /* KeyCode.F16 */, 'F16', 127, 'VK_F16', empty, empty], + [1, 114 /* ScanCode.F17 */, 'F17', 75 /* KeyCode.F17 */, 'F17', 128, 'VK_F17', empty, empty], + [1, 115 /* ScanCode.F18 */, 'F18', 76 /* KeyCode.F18 */, 'F18', 129, 'VK_F18', empty, empty], + [1, 116 /* ScanCode.F19 */, 'F19', 77 /* KeyCode.F19 */, 'F19', 130, 'VK_F19', empty, empty], + [1, 117 /* ScanCode.F20 */, 'F20', 78 /* KeyCode.F20 */, 'F20', 131, 'VK_F20', empty, empty], + [1, 118 /* ScanCode.F21 */, 'F21', 79 /* KeyCode.F21 */, 'F21', 132, 'VK_F21', empty, empty], + [1, 119 /* ScanCode.F22 */, 'F22', 80 /* KeyCode.F22 */, 'F22', 133, 'VK_F22', empty, empty], + [1, 120 /* ScanCode.F23 */, 'F23', 81 /* KeyCode.F23 */, 'F23', 134, 'VK_F23', empty, empty], + [1, 121 /* ScanCode.F24 */, 'F24', 82 /* KeyCode.F24 */, 'F24', 135, 'VK_F24', empty, empty], + [1, 122 /* ScanCode.Open */, 'Open', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 123 /* ScanCode.Help */, 'Help', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 124 /* ScanCode.Select */, 'Select', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 125 /* ScanCode.Again */, 'Again', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 126 /* ScanCode.Undo */, 'Undo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 127 /* ScanCode.Cut */, 'Cut', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 128 /* ScanCode.Copy */, 'Copy', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 129 /* ScanCode.Paste */, 'Paste', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 130 /* ScanCode.Find */, 'Find', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 131 /* ScanCode.AudioVolumeMute */, 'AudioVolumeMute', 117 /* KeyCode.AudioVolumeMute */, 'AudioVolumeMute', 173, 'VK_VOLUME_MUTE', empty, empty], + [1, 132 /* ScanCode.AudioVolumeUp */, 'AudioVolumeUp', 118 /* KeyCode.AudioVolumeUp */, 'AudioVolumeUp', 175, 'VK_VOLUME_UP', empty, empty], + [1, 133 /* ScanCode.AudioVolumeDown */, 'AudioVolumeDown', 119 /* KeyCode.AudioVolumeDown */, 'AudioVolumeDown', 174, 'VK_VOLUME_DOWN', empty, empty], + [1, 134 /* ScanCode.NumpadComma */, 'NumpadComma', 110 /* KeyCode.NUMPAD_SEPARATOR */, 'NumPad_Separator', 108, 'VK_SEPARATOR', empty, empty], + [0, 135 /* ScanCode.IntlRo */, 'IntlRo', 115 /* KeyCode.ABNT_C1 */, 'ABNT_C1', 193, 'VK_ABNT_C1', empty, empty], + [1, 136 /* ScanCode.KanaMode */, 'KanaMode', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 137 /* ScanCode.IntlYen */, 'IntlYen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 138 /* ScanCode.Convert */, 'Convert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 139 /* ScanCode.NonConvert */, 'NonConvert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 140 /* ScanCode.Lang1 */, 'Lang1', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 141 /* ScanCode.Lang2 */, 'Lang2', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 142 /* ScanCode.Lang3 */, 'Lang3', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 143 /* ScanCode.Lang4 */, 'Lang4', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 144 /* ScanCode.Lang5 */, 'Lang5', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 145 /* ScanCode.Abort */, 'Abort', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 146 /* ScanCode.Props */, 'Props', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 147 /* ScanCode.NumpadParenLeft */, 'NumpadParenLeft', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 148 /* ScanCode.NumpadParenRight */, 'NumpadParenRight', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 149 /* ScanCode.NumpadBackspace */, 'NumpadBackspace', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 150 /* ScanCode.NumpadMemoryStore */, 'NumpadMemoryStore', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 151 /* ScanCode.NumpadMemoryRecall */, 'NumpadMemoryRecall', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 152 /* ScanCode.NumpadMemoryClear */, 'NumpadMemoryClear', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 153 /* ScanCode.NumpadMemoryAdd */, 'NumpadMemoryAdd', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 154 /* ScanCode.NumpadMemorySubtract */, 'NumpadMemorySubtract', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 155 /* ScanCode.NumpadClear */, 'NumpadClear', 131 /* KeyCode.Clear */, 'Clear', 12, 'VK_CLEAR', empty, empty], + [1, 156 /* ScanCode.NumpadClearEntry */, 'NumpadClearEntry', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 0 /* ScanCode.None */, empty, 5 /* KeyCode.Ctrl */, 'Ctrl', 17, 'VK_CONTROL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 4 /* KeyCode.Shift */, 'Shift', 16, 'VK_SHIFT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 6 /* KeyCode.Alt */, 'Alt', 18, 'VK_MENU', empty, empty], + [1, 0 /* ScanCode.None */, empty, 57 /* KeyCode.Meta */, 'Meta', 91, 'VK_COMMAND', empty, empty], + [1, 157 /* ScanCode.ControlLeft */, 'ControlLeft', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_LCONTROL', empty, empty], + [1, 158 /* ScanCode.ShiftLeft */, 'ShiftLeft', 4 /* KeyCode.Shift */, empty, 0, 'VK_LSHIFT', empty, empty], + [1, 159 /* ScanCode.AltLeft */, 'AltLeft', 6 /* KeyCode.Alt */, empty, 0, 'VK_LMENU', empty, empty], + [1, 160 /* ScanCode.MetaLeft */, 'MetaLeft', 57 /* KeyCode.Meta */, empty, 0, 'VK_LWIN', empty, empty], + [1, 161 /* ScanCode.ControlRight */, 'ControlRight', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_RCONTROL', empty, empty], + [1, 162 /* ScanCode.ShiftRight */, 'ShiftRight', 4 /* KeyCode.Shift */, empty, 0, 'VK_RSHIFT', empty, empty], + [1, 163 /* ScanCode.AltRight */, 'AltRight', 6 /* KeyCode.Alt */, empty, 0, 'VK_RMENU', empty, empty], + [1, 164 /* ScanCode.MetaRight */, 'MetaRight', 57 /* KeyCode.Meta */, empty, 0, 'VK_RWIN', empty, empty], + [1, 165 /* ScanCode.BrightnessUp */, 'BrightnessUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 166 /* ScanCode.BrightnessDown */, 'BrightnessDown', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 167 /* ScanCode.MediaPlay */, 'MediaPlay', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 168 /* ScanCode.MediaRecord */, 'MediaRecord', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 169 /* ScanCode.MediaFastForward */, 'MediaFastForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 170 /* ScanCode.MediaRewind */, 'MediaRewind', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 171 /* ScanCode.MediaTrackNext */, 'MediaTrackNext', 124 /* KeyCode.MediaTrackNext */, 'MediaTrackNext', 176, 'VK_MEDIA_NEXT_TRACK', empty, empty], + [1, 172 /* ScanCode.MediaTrackPrevious */, 'MediaTrackPrevious', 125 /* KeyCode.MediaTrackPrevious */, 'MediaTrackPrevious', 177, 'VK_MEDIA_PREV_TRACK', empty, empty], + [1, 173 /* ScanCode.MediaStop */, 'MediaStop', 126 /* KeyCode.MediaStop */, 'MediaStop', 178, 'VK_MEDIA_STOP', empty, empty], + [1, 174 /* ScanCode.Eject */, 'Eject', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 175 /* ScanCode.MediaPlayPause */, 'MediaPlayPause', 127 /* KeyCode.MediaPlayPause */, 'MediaPlayPause', 179, 'VK_MEDIA_PLAY_PAUSE', empty, empty], + [1, 176 /* ScanCode.MediaSelect */, 'MediaSelect', 128 /* KeyCode.LaunchMediaPlayer */, 'LaunchMediaPlayer', 181, 'VK_MEDIA_LAUNCH_MEDIA_SELECT', empty, empty], + [1, 177 /* ScanCode.LaunchMail */, 'LaunchMail', 129 /* KeyCode.LaunchMail */, 'LaunchMail', 180, 'VK_MEDIA_LAUNCH_MAIL', empty, empty], + [1, 178 /* ScanCode.LaunchApp2 */, 'LaunchApp2', 130 /* KeyCode.LaunchApp2 */, 'LaunchApp2', 183, 'VK_MEDIA_LAUNCH_APP2', empty, empty], + [1, 179 /* ScanCode.LaunchApp1 */, 'LaunchApp1', 0 /* KeyCode.Unknown */, empty, 0, 'VK_MEDIA_LAUNCH_APP1', empty, empty], + [1, 180 /* ScanCode.SelectTask */, 'SelectTask', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 181 /* ScanCode.LaunchScreenSaver */, 'LaunchScreenSaver', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 182 /* ScanCode.BrowserSearch */, 'BrowserSearch', 120 /* KeyCode.BrowserSearch */, 'BrowserSearch', 170, 'VK_BROWSER_SEARCH', empty, empty], + [1, 183 /* ScanCode.BrowserHome */, 'BrowserHome', 121 /* KeyCode.BrowserHome */, 'BrowserHome', 172, 'VK_BROWSER_HOME', empty, empty], + [1, 184 /* ScanCode.BrowserBack */, 'BrowserBack', 122 /* KeyCode.BrowserBack */, 'BrowserBack', 166, 'VK_BROWSER_BACK', empty, empty], + [1, 185 /* ScanCode.BrowserForward */, 'BrowserForward', 123 /* KeyCode.BrowserForward */, 'BrowserForward', 167, 'VK_BROWSER_FORWARD', empty, empty], + [1, 186 /* ScanCode.BrowserStop */, 'BrowserStop', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_STOP', empty, empty], + [1, 187 /* ScanCode.BrowserRefresh */, 'BrowserRefresh', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_REFRESH', empty, empty], + [1, 188 /* ScanCode.BrowserFavorites */, 'BrowserFavorites', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_FAVORITES', empty, empty], + [1, 189 /* ScanCode.ZoomToggle */, 'ZoomToggle', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 190 /* ScanCode.MailReply */, 'MailReply', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 191 /* ScanCode.MailForward */, 'MailForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 192 /* ScanCode.MailSend */, 'MailSend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html + // If an Input Method Editor is processing key input and the event is keydown, return 229. + [1, 0 /* ScanCode.None */, empty, 114 /* KeyCode.KEY_IN_COMPOSITION */, 'KeyInComposition', 229, empty, empty, empty], + [1, 0 /* ScanCode.None */, empty, 116 /* KeyCode.ABNT_C2 */, 'ABNT_C2', 194, 'VK_ABNT_C2', empty, empty], + [1, 0 /* ScanCode.None */, empty, 96 /* KeyCode.OEM_8 */, 'OEM_8', 223, 'VK_OEM_8', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANGUL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_JUNJA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_FINAL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANJA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANJI', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CONVERT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONCONVERT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ACCEPT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_MODECHANGE', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SELECT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PRINT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXECUTE', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SNAPSHOT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HELP', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_APPS', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PROCESSKEY', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PACKET', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_SBCSCHAR', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_DBCSCHAR', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ATTN', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CRSEL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXSEL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EREOF', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PLAY', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ZOOM', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONAME', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PA1', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_OEM_CLEAR', empty, empty], + ]; + const seenKeyCode = []; + const seenScanCode = []; + for (const mapping of mappings) { + const [immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping; + if (!seenScanCode[scanCode]) { + seenScanCode[scanCode] = true; + scanCodeStrToInt[scanCodeStr] = scanCode; + scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode; + } + if (!seenKeyCode[keyCode]) { + seenKeyCode[keyCode] = true; + if (!keyCodeStr) { + throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`); + } + uiMap.define(keyCode, keyCodeStr); + userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr); + userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr); + } + if (eventKeyCode) { + EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode; + } + } +})(); +var KeyCodeUtils; +(function (KeyCodeUtils) { + function toString(keyCode) { + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toString = toString; + function fromString(key) { + return uiMap.strToKeyCode(key); + } + KeyCodeUtils.fromString = fromString; + function toUserSettingsUS(keyCode) { + return userSettingsUSMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsUS = toUserSettingsUS; + function toUserSettingsGeneral(keyCode) { + return userSettingsGeneralMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral; + function fromUserSettings(key) { + return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key); + } + KeyCodeUtils.fromUserSettings = fromUserSettings; + function toElectronAccelerator(keyCode) { + if (keyCode >= 98 /* KeyCode.Numpad0 */ && keyCode <= 113 /* KeyCode.NumpadDivide */) { + // [Electron Accelerators] Electron is able to parse numpad keys, but unfortunately it + // renders them just as regular keys in menus. For example, num0 is rendered as "0", + // numdiv is rendered as "/", numsub is rendered as "-". + // + // This can lead to incredible confusion, as it makes numpad based keybindings indistinguishable + // from keybindings based on regular keys. + // + // We therefore need to fall back to custom rendering for numpad keys. + return null; + } + switch (keyCode) { + case 16 /* KeyCode.UpArrow */: + return 'Up'; + case 18 /* KeyCode.DownArrow */: + return 'Down'; + case 15 /* KeyCode.LeftArrow */: + return 'Left'; + case 17 /* KeyCode.RightArrow */: + return 'Right'; + } + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toElectronAccelerator = toElectronAccelerator; +})(KeyCodeUtils || (KeyCodeUtils = {})); +function KeyChord(firstPart, secondPart) { + const chordPart = ((secondPart & 0x0000FFFF) << 16) >>> 0; + return (firstPart | chordPart) >>> 0; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A selection in the editor. + * The selection is a range that has an orientation. + */ +class Selection extends Range { + constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) { + super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn); + this.selectionStartLineNumber = selectionStartLineNumber; + this.selectionStartColumn = selectionStartColumn; + this.positionLineNumber = positionLineNumber; + this.positionColumn = positionColumn; + } + /** + * Transform to a human-readable representation. + */ + toString() { + return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']'; + } + /** + * Test if equals other selection. + */ + equalsSelection(other) { + return (Selection.selectionsEqual(this, other)); + } + /** + * Test if the two selections are equal. + */ + static selectionsEqual(a, b) { + return (a.selectionStartLineNumber === b.selectionStartLineNumber && + a.selectionStartColumn === b.selectionStartColumn && + a.positionLineNumber === b.positionLineNumber && + a.positionColumn === b.positionColumn); + } + /** + * Get directions (LTR or RTL). + */ + getDirection() { + if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) { + return 0 /* SelectionDirection.LTR */; + } + return 1 /* SelectionDirection.RTL */; + } + /** + * Create a new selection with a different `positionLineNumber` and `positionColumn`. + */ + setEndPosition(endLineNumber, endColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn); + } + /** + * Get the position at `positionLineNumber` and `positionColumn`. + */ + getPosition() { + return new Position(this.positionLineNumber, this.positionColumn); + } + /** + * Get the position at the start of the selection. + */ + getSelectionStart() { + return new Position(this.selectionStartLineNumber, this.selectionStartColumn); + } + /** + * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. + */ + setStartPosition(startLineNumber, startColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn); + } + // ---- + /** + * Create a `Selection` from one or two positions + */ + static fromPositions(start, end = start) { + return new Selection(start.lineNumber, start.column, end.lineNumber, end.column); + } + /** + * Creates a `Selection` from a range, given a direction. + */ + static fromRange(range, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + else { + return new Selection(range.endLineNumber, range.endColumn, range.startLineNumber, range.startColumn); + } + } + /** + * Create a `Selection` from an `ISelection`. + */ + static liftSelection(sel) { + return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn); + } + /** + * `a` equals `b`. + */ + static selectionsArrEqual(a, b) { + if (a && !b || !a && b) { + return false; + } + if (!a && !b) { + return true; + } + if (a.length !== b.length) { + return false; + } + for (let i = 0, len = a.length; i < len; i++) { + if (!this.selectionsEqual(a[i], b[i])) { + return false; + } + } + return true; + } + /** + * Test if `obj` is an `ISelection`. + */ + static isISelection(obj) { + return (obj + && (typeof obj.selectionStartLineNumber === 'number') + && (typeof obj.selectionStartColumn === 'number') + && (typeof obj.positionLineNumber === 'number') + && (typeof obj.positionColumn === 'number')); + } + /** + * Create with a direction. + */ + static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, startLineNumber, startColumn); + } +} + +const _codiconFontCharacters = Object.create(null); +function register(id, fontCharacter) { + if (isString(fontCharacter)) { + const val = _codiconFontCharacters[fontCharacter]; + if (val === undefined) { + throw new Error(`${id} references an unknown codicon: ${fontCharacter}`); + } + fontCharacter = val; + } + _codiconFontCharacters[id] = fontCharacter; + return { id }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// This file is automatically generated by (microsoft/vscode-codicons)/scripts/export-to-ts.js +// Please don't edit it, as your changes will be overwritten. +// Instead, add mappings to codiconsDerived in codicons.ts. +const codiconsLibrary = { + add: register('add', 0xea60), + plus: register('plus', 0xea60), + gistNew: register('gist-new', 0xea60), + repoCreate: register('repo-create', 0xea60), + lightbulb: register('lightbulb', 0xea61), + lightBulb: register('light-bulb', 0xea61), + repo: register('repo', 0xea62), + repoDelete: register('repo-delete', 0xea62), + gistFork: register('gist-fork', 0xea63), + repoForked: register('repo-forked', 0xea63), + gitPullRequest: register('git-pull-request', 0xea64), + gitPullRequestAbandoned: register('git-pull-request-abandoned', 0xea64), + recordKeys: register('record-keys', 0xea65), + keyboard: register('keyboard', 0xea65), + tag: register('tag', 0xea66), + gitPullRequestLabel: register('git-pull-request-label', 0xea66), + tagAdd: register('tag-add', 0xea66), + tagRemove: register('tag-remove', 0xea66), + person: register('person', 0xea67), + personFollow: register('person-follow', 0xea67), + personOutline: register('person-outline', 0xea67), + personFilled: register('person-filled', 0xea67), + gitBranch: register('git-branch', 0xea68), + gitBranchCreate: register('git-branch-create', 0xea68), + gitBranchDelete: register('git-branch-delete', 0xea68), + sourceControl: register('source-control', 0xea68), + mirror: register('mirror', 0xea69), + mirrorPublic: register('mirror-public', 0xea69), + star: register('star', 0xea6a), + starAdd: register('star-add', 0xea6a), + starDelete: register('star-delete', 0xea6a), + starEmpty: register('star-empty', 0xea6a), + comment: register('comment', 0xea6b), + commentAdd: register('comment-add', 0xea6b), + alert: register('alert', 0xea6c), + warning: register('warning', 0xea6c), + search: register('search', 0xea6d), + searchSave: register('search-save', 0xea6d), + logOut: register('log-out', 0xea6e), + signOut: register('sign-out', 0xea6e), + logIn: register('log-in', 0xea6f), + signIn: register('sign-in', 0xea6f), + eye: register('eye', 0xea70), + eyeUnwatch: register('eye-unwatch', 0xea70), + eyeWatch: register('eye-watch', 0xea70), + circleFilled: register('circle-filled', 0xea71), + primitiveDot: register('primitive-dot', 0xea71), + closeDirty: register('close-dirty', 0xea71), + debugBreakpoint: register('debug-breakpoint', 0xea71), + debugBreakpointDisabled: register('debug-breakpoint-disabled', 0xea71), + debugHint: register('debug-hint', 0xea71), + terminalDecorationSuccess: register('terminal-decoration-success', 0xea71), + primitiveSquare: register('primitive-square', 0xea72), + edit: register('edit', 0xea73), + pencil: register('pencil', 0xea73), + info: register('info', 0xea74), + issueOpened: register('issue-opened', 0xea74), + gistPrivate: register('gist-private', 0xea75), + gitForkPrivate: register('git-fork-private', 0xea75), + lock: register('lock', 0xea75), + mirrorPrivate: register('mirror-private', 0xea75), + close: register('close', 0xea76), + removeClose: register('remove-close', 0xea76), + x: register('x', 0xea76), + repoSync: register('repo-sync', 0xea77), + sync: register('sync', 0xea77), + clone: register('clone', 0xea78), + desktopDownload: register('desktop-download', 0xea78), + beaker: register('beaker', 0xea79), + microscope: register('microscope', 0xea79), + vm: register('vm', 0xea7a), + deviceDesktop: register('device-desktop', 0xea7a), + file: register('file', 0xea7b), + fileText: register('file-text', 0xea7b), + more: register('more', 0xea7c), + ellipsis: register('ellipsis', 0xea7c), + kebabHorizontal: register('kebab-horizontal', 0xea7c), + mailReply: register('mail-reply', 0xea7d), + reply: register('reply', 0xea7d), + organization: register('organization', 0xea7e), + organizationFilled: register('organization-filled', 0xea7e), + organizationOutline: register('organization-outline', 0xea7e), + newFile: register('new-file', 0xea7f), + fileAdd: register('file-add', 0xea7f), + newFolder: register('new-folder', 0xea80), + fileDirectoryCreate: register('file-directory-create', 0xea80), + trash: register('trash', 0xea81), + trashcan: register('trashcan', 0xea81), + history: register('history', 0xea82), + clock: register('clock', 0xea82), + folder: register('folder', 0xea83), + fileDirectory: register('file-directory', 0xea83), + symbolFolder: register('symbol-folder', 0xea83), + logoGithub: register('logo-github', 0xea84), + markGithub: register('mark-github', 0xea84), + github: register('github', 0xea84), + terminal: register('terminal', 0xea85), + console: register('console', 0xea85), + repl: register('repl', 0xea85), + zap: register('zap', 0xea86), + symbolEvent: register('symbol-event', 0xea86), + error: register('error', 0xea87), + stop: register('stop', 0xea87), + variable: register('variable', 0xea88), + symbolVariable: register('symbol-variable', 0xea88), + array: register('array', 0xea8a), + symbolArray: register('symbol-array', 0xea8a), + symbolModule: register('symbol-module', 0xea8b), + symbolPackage: register('symbol-package', 0xea8b), + symbolNamespace: register('symbol-namespace', 0xea8b), + symbolObject: register('symbol-object', 0xea8b), + symbolMethod: register('symbol-method', 0xea8c), + symbolFunction: register('symbol-function', 0xea8c), + symbolConstructor: register('symbol-constructor', 0xea8c), + symbolBoolean: register('symbol-boolean', 0xea8f), + symbolNull: register('symbol-null', 0xea8f), + symbolNumeric: register('symbol-numeric', 0xea90), + symbolNumber: register('symbol-number', 0xea90), + symbolStructure: register('symbol-structure', 0xea91), + symbolStruct: register('symbol-struct', 0xea91), + symbolParameter: register('symbol-parameter', 0xea92), + symbolTypeParameter: register('symbol-type-parameter', 0xea92), + symbolKey: register('symbol-key', 0xea93), + symbolText: register('symbol-text', 0xea93), + symbolReference: register('symbol-reference', 0xea94), + goToFile: register('go-to-file', 0xea94), + symbolEnum: register('symbol-enum', 0xea95), + symbolValue: register('symbol-value', 0xea95), + symbolRuler: register('symbol-ruler', 0xea96), + symbolUnit: register('symbol-unit', 0xea96), + activateBreakpoints: register('activate-breakpoints', 0xea97), + archive: register('archive', 0xea98), + arrowBoth: register('arrow-both', 0xea99), + arrowDown: register('arrow-down', 0xea9a), + arrowLeft: register('arrow-left', 0xea9b), + arrowRight: register('arrow-right', 0xea9c), + arrowSmallDown: register('arrow-small-down', 0xea9d), + arrowSmallLeft: register('arrow-small-left', 0xea9e), + arrowSmallRight: register('arrow-small-right', 0xea9f), + arrowSmallUp: register('arrow-small-up', 0xeaa0), + arrowUp: register('arrow-up', 0xeaa1), + bell: register('bell', 0xeaa2), + bold: register('bold', 0xeaa3), + book: register('book', 0xeaa4), + bookmark: register('bookmark', 0xeaa5), + debugBreakpointConditionalUnverified: register('debug-breakpoint-conditional-unverified', 0xeaa6), + debugBreakpointConditional: register('debug-breakpoint-conditional', 0xeaa7), + debugBreakpointConditionalDisabled: register('debug-breakpoint-conditional-disabled', 0xeaa7), + debugBreakpointDataUnverified: register('debug-breakpoint-data-unverified', 0xeaa8), + debugBreakpointData: register('debug-breakpoint-data', 0xeaa9), + debugBreakpointDataDisabled: register('debug-breakpoint-data-disabled', 0xeaa9), + debugBreakpointLogUnverified: register('debug-breakpoint-log-unverified', 0xeaaa), + debugBreakpointLog: register('debug-breakpoint-log', 0xeaab), + debugBreakpointLogDisabled: register('debug-breakpoint-log-disabled', 0xeaab), + briefcase: register('briefcase', 0xeaac), + broadcast: register('broadcast', 0xeaad), + browser: register('browser', 0xeaae), + bug: register('bug', 0xeaaf), + calendar: register('calendar', 0xeab0), + caseSensitive: register('case-sensitive', 0xeab1), + check: register('check', 0xeab2), + checklist: register('checklist', 0xeab3), + chevronDown: register('chevron-down', 0xeab4), + chevronLeft: register('chevron-left', 0xeab5), + chevronRight: register('chevron-right', 0xeab6), + chevronUp: register('chevron-up', 0xeab7), + chromeClose: register('chrome-close', 0xeab8), + chromeMaximize: register('chrome-maximize', 0xeab9), + chromeMinimize: register('chrome-minimize', 0xeaba), + chromeRestore: register('chrome-restore', 0xeabb), + circleOutline: register('circle-outline', 0xeabc), + circle: register('circle', 0xeabc), + debugBreakpointUnverified: register('debug-breakpoint-unverified', 0xeabc), + terminalDecorationIncomplete: register('terminal-decoration-incomplete', 0xeabc), + circleSlash: register('circle-slash', 0xeabd), + circuitBoard: register('circuit-board', 0xeabe), + clearAll: register('clear-all', 0xeabf), + clippy: register('clippy', 0xeac0), + closeAll: register('close-all', 0xeac1), + cloudDownload: register('cloud-download', 0xeac2), + cloudUpload: register('cloud-upload', 0xeac3), + code: register('code', 0xeac4), + collapseAll: register('collapse-all', 0xeac5), + colorMode: register('color-mode', 0xeac6), + commentDiscussion: register('comment-discussion', 0xeac7), + creditCard: register('credit-card', 0xeac9), + dash: register('dash', 0xeacc), + dashboard: register('dashboard', 0xeacd), + database: register('database', 0xeace), + debugContinue: register('debug-continue', 0xeacf), + debugDisconnect: register('debug-disconnect', 0xead0), + debugPause: register('debug-pause', 0xead1), + debugRestart: register('debug-restart', 0xead2), + debugStart: register('debug-start', 0xead3), + debugStepInto: register('debug-step-into', 0xead4), + debugStepOut: register('debug-step-out', 0xead5), + debugStepOver: register('debug-step-over', 0xead6), + debugStop: register('debug-stop', 0xead7), + debug: register('debug', 0xead8), + deviceCameraVideo: register('device-camera-video', 0xead9), + deviceCamera: register('device-camera', 0xeada), + deviceMobile: register('device-mobile', 0xeadb), + diffAdded: register('diff-added', 0xeadc), + diffIgnored: register('diff-ignored', 0xeadd), + diffModified: register('diff-modified', 0xeade), + diffRemoved: register('diff-removed', 0xeadf), + diffRenamed: register('diff-renamed', 0xeae0), + diff: register('diff', 0xeae1), + diffSidebyside: register('diff-sidebyside', 0xeae1), + discard: register('discard', 0xeae2), + editorLayout: register('editor-layout', 0xeae3), + emptyWindow: register('empty-window', 0xeae4), + exclude: register('exclude', 0xeae5), + extensions: register('extensions', 0xeae6), + eyeClosed: register('eye-closed', 0xeae7), + fileBinary: register('file-binary', 0xeae8), + fileCode: register('file-code', 0xeae9), + fileMedia: register('file-media', 0xeaea), + filePdf: register('file-pdf', 0xeaeb), + fileSubmodule: register('file-submodule', 0xeaec), + fileSymlinkDirectory: register('file-symlink-directory', 0xeaed), + fileSymlinkFile: register('file-symlink-file', 0xeaee), + fileZip: register('file-zip', 0xeaef), + files: register('files', 0xeaf0), + filter: register('filter', 0xeaf1), + flame: register('flame', 0xeaf2), + foldDown: register('fold-down', 0xeaf3), + foldUp: register('fold-up', 0xeaf4), + fold: register('fold', 0xeaf5), + folderActive: register('folder-active', 0xeaf6), + folderOpened: register('folder-opened', 0xeaf7), + gear: register('gear', 0xeaf8), + gift: register('gift', 0xeaf9), + gistSecret: register('gist-secret', 0xeafa), + gist: register('gist', 0xeafb), + gitCommit: register('git-commit', 0xeafc), + gitCompare: register('git-compare', 0xeafd), + compareChanges: register('compare-changes', 0xeafd), + gitMerge: register('git-merge', 0xeafe), + githubAction: register('github-action', 0xeaff), + githubAlt: register('github-alt', 0xeb00), + globe: register('globe', 0xeb01), + grabber: register('grabber', 0xeb02), + graph: register('graph', 0xeb03), + gripper: register('gripper', 0xeb04), + heart: register('heart', 0xeb05), + home: register('home', 0xeb06), + horizontalRule: register('horizontal-rule', 0xeb07), + hubot: register('hubot', 0xeb08), + inbox: register('inbox', 0xeb09), + issueReopened: register('issue-reopened', 0xeb0b), + issues: register('issues', 0xeb0c), + italic: register('italic', 0xeb0d), + jersey: register('jersey', 0xeb0e), + json: register('json', 0xeb0f), + kebabVertical: register('kebab-vertical', 0xeb10), + key: register('key', 0xeb11), + law: register('law', 0xeb12), + lightbulbAutofix: register('lightbulb-autofix', 0xeb13), + linkExternal: register('link-external', 0xeb14), + link: register('link', 0xeb15), + listOrdered: register('list-ordered', 0xeb16), + listUnordered: register('list-unordered', 0xeb17), + liveShare: register('live-share', 0xeb18), + loading: register('loading', 0xeb19), + location: register('location', 0xeb1a), + mailRead: register('mail-read', 0xeb1b), + mail: register('mail', 0xeb1c), + markdown: register('markdown', 0xeb1d), + megaphone: register('megaphone', 0xeb1e), + mention: register('mention', 0xeb1f), + milestone: register('milestone', 0xeb20), + gitPullRequestMilestone: register('git-pull-request-milestone', 0xeb20), + mortarBoard: register('mortar-board', 0xeb21), + move: register('move', 0xeb22), + multipleWindows: register('multiple-windows', 0xeb23), + mute: register('mute', 0xeb24), + noNewline: register('no-newline', 0xeb25), + note: register('note', 0xeb26), + octoface: register('octoface', 0xeb27), + openPreview: register('open-preview', 0xeb28), + package: register('package', 0xeb29), + paintcan: register('paintcan', 0xeb2a), + pin: register('pin', 0xeb2b), + play: register('play', 0xeb2c), + run: register('run', 0xeb2c), + plug: register('plug', 0xeb2d), + preserveCase: register('preserve-case', 0xeb2e), + preview: register('preview', 0xeb2f), + project: register('project', 0xeb30), + pulse: register('pulse', 0xeb31), + question: register('question', 0xeb32), + quote: register('quote', 0xeb33), + radioTower: register('radio-tower', 0xeb34), + reactions: register('reactions', 0xeb35), + references: register('references', 0xeb36), + refresh: register('refresh', 0xeb37), + regex: register('regex', 0xeb38), + remoteExplorer: register('remote-explorer', 0xeb39), + remote: register('remote', 0xeb3a), + remove: register('remove', 0xeb3b), + replaceAll: register('replace-all', 0xeb3c), + replace: register('replace', 0xeb3d), + repoClone: register('repo-clone', 0xeb3e), + repoForcePush: register('repo-force-push', 0xeb3f), + repoPull: register('repo-pull', 0xeb40), + repoPush: register('repo-push', 0xeb41), + report: register('report', 0xeb42), + requestChanges: register('request-changes', 0xeb43), + rocket: register('rocket', 0xeb44), + rootFolderOpened: register('root-folder-opened', 0xeb45), + rootFolder: register('root-folder', 0xeb46), + rss: register('rss', 0xeb47), + ruby: register('ruby', 0xeb48), + saveAll: register('save-all', 0xeb49), + saveAs: register('save-as', 0xeb4a), + save: register('save', 0xeb4b), + screenFull: register('screen-full', 0xeb4c), + screenNormal: register('screen-normal', 0xeb4d), + searchStop: register('search-stop', 0xeb4e), + server: register('server', 0xeb50), + settingsGear: register('settings-gear', 0xeb51), + settings: register('settings', 0xeb52), + shield: register('shield', 0xeb53), + smiley: register('smiley', 0xeb54), + sortPrecedence: register('sort-precedence', 0xeb55), + splitHorizontal: register('split-horizontal', 0xeb56), + splitVertical: register('split-vertical', 0xeb57), + squirrel: register('squirrel', 0xeb58), + starFull: register('star-full', 0xeb59), + starHalf: register('star-half', 0xeb5a), + symbolClass: register('symbol-class', 0xeb5b), + symbolColor: register('symbol-color', 0xeb5c), + symbolConstant: register('symbol-constant', 0xeb5d), + symbolEnumMember: register('symbol-enum-member', 0xeb5e), + symbolField: register('symbol-field', 0xeb5f), + symbolFile: register('symbol-file', 0xeb60), + symbolInterface: register('symbol-interface', 0xeb61), + symbolKeyword: register('symbol-keyword', 0xeb62), + symbolMisc: register('symbol-misc', 0xeb63), + symbolOperator: register('symbol-operator', 0xeb64), + symbolProperty: register('symbol-property', 0xeb65), + wrench: register('wrench', 0xeb65), + wrenchSubaction: register('wrench-subaction', 0xeb65), + symbolSnippet: register('symbol-snippet', 0xeb66), + tasklist: register('tasklist', 0xeb67), + telescope: register('telescope', 0xeb68), + textSize: register('text-size', 0xeb69), + threeBars: register('three-bars', 0xeb6a), + thumbsdown: register('thumbsdown', 0xeb6b), + thumbsup: register('thumbsup', 0xeb6c), + tools: register('tools', 0xeb6d), + triangleDown: register('triangle-down', 0xeb6e), + triangleLeft: register('triangle-left', 0xeb6f), + triangleRight: register('triangle-right', 0xeb70), + triangleUp: register('triangle-up', 0xeb71), + twitter: register('twitter', 0xeb72), + unfold: register('unfold', 0xeb73), + unlock: register('unlock', 0xeb74), + unmute: register('unmute', 0xeb75), + unverified: register('unverified', 0xeb76), + verified: register('verified', 0xeb77), + versions: register('versions', 0xeb78), + vmActive: register('vm-active', 0xeb79), + vmOutline: register('vm-outline', 0xeb7a), + vmRunning: register('vm-running', 0xeb7b), + watch: register('watch', 0xeb7c), + whitespace: register('whitespace', 0xeb7d), + wholeWord: register('whole-word', 0xeb7e), + window: register('window', 0xeb7f), + wordWrap: register('word-wrap', 0xeb80), + zoomIn: register('zoom-in', 0xeb81), + zoomOut: register('zoom-out', 0xeb82), + listFilter: register('list-filter', 0xeb83), + listFlat: register('list-flat', 0xeb84), + listSelection: register('list-selection', 0xeb85), + selection: register('selection', 0xeb85), + listTree: register('list-tree', 0xeb86), + debugBreakpointFunctionUnverified: register('debug-breakpoint-function-unverified', 0xeb87), + debugBreakpointFunction: register('debug-breakpoint-function', 0xeb88), + debugBreakpointFunctionDisabled: register('debug-breakpoint-function-disabled', 0xeb88), + debugStackframeActive: register('debug-stackframe-active', 0xeb89), + circleSmallFilled: register('circle-small-filled', 0xeb8a), + debugStackframeDot: register('debug-stackframe-dot', 0xeb8a), + terminalDecorationMark: register('terminal-decoration-mark', 0xeb8a), + debugStackframe: register('debug-stackframe', 0xeb8b), + debugStackframeFocused: register('debug-stackframe-focused', 0xeb8b), + debugBreakpointUnsupported: register('debug-breakpoint-unsupported', 0xeb8c), + symbolString: register('symbol-string', 0xeb8d), + debugReverseContinue: register('debug-reverse-continue', 0xeb8e), + debugStepBack: register('debug-step-back', 0xeb8f), + debugRestartFrame: register('debug-restart-frame', 0xeb90), + debugAlt: register('debug-alt', 0xeb91), + callIncoming: register('call-incoming', 0xeb92), + callOutgoing: register('call-outgoing', 0xeb93), + menu: register('menu', 0xeb94), + expandAll: register('expand-all', 0xeb95), + feedback: register('feedback', 0xeb96), + gitPullRequestReviewer: register('git-pull-request-reviewer', 0xeb96), + groupByRefType: register('group-by-ref-type', 0xeb97), + ungroupByRefType: register('ungroup-by-ref-type', 0xeb98), + account: register('account', 0xeb99), + gitPullRequestAssignee: register('git-pull-request-assignee', 0xeb99), + bellDot: register('bell-dot', 0xeb9a), + debugConsole: register('debug-console', 0xeb9b), + library: register('library', 0xeb9c), + output: register('output', 0xeb9d), + runAll: register('run-all', 0xeb9e), + syncIgnored: register('sync-ignored', 0xeb9f), + pinned: register('pinned', 0xeba0), + githubInverted: register('github-inverted', 0xeba1), + serverProcess: register('server-process', 0xeba2), + serverEnvironment: register('server-environment', 0xeba3), + pass: register('pass', 0xeba4), + issueClosed: register('issue-closed', 0xeba4), + stopCircle: register('stop-circle', 0xeba5), + playCircle: register('play-circle', 0xeba6), + record: register('record', 0xeba7), + debugAltSmall: register('debug-alt-small', 0xeba8), + vmConnect: register('vm-connect', 0xeba9), + cloud: register('cloud', 0xebaa), + merge: register('merge', 0xebab), + export: register('export', 0xebac), + graphLeft: register('graph-left', 0xebad), + magnet: register('magnet', 0xebae), + notebook: register('notebook', 0xebaf), + redo: register('redo', 0xebb0), + checkAll: register('check-all', 0xebb1), + pinnedDirty: register('pinned-dirty', 0xebb2), + passFilled: register('pass-filled', 0xebb3), + circleLargeFilled: register('circle-large-filled', 0xebb4), + circleLarge: register('circle-large', 0xebb5), + circleLargeOutline: register('circle-large-outline', 0xebb5), + combine: register('combine', 0xebb6), + gather: register('gather', 0xebb6), + table: register('table', 0xebb7), + variableGroup: register('variable-group', 0xebb8), + typeHierarchy: register('type-hierarchy', 0xebb9), + typeHierarchySub: register('type-hierarchy-sub', 0xebba), + typeHierarchySuper: register('type-hierarchy-super', 0xebbb), + gitPullRequestCreate: register('git-pull-request-create', 0xebbc), + runAbove: register('run-above', 0xebbd), + runBelow: register('run-below', 0xebbe), + notebookTemplate: register('notebook-template', 0xebbf), + debugRerun: register('debug-rerun', 0xebc0), + workspaceTrusted: register('workspace-trusted', 0xebc1), + workspaceUntrusted: register('workspace-untrusted', 0xebc2), + workspaceUnknown: register('workspace-unknown', 0xebc3), + terminalCmd: register('terminal-cmd', 0xebc4), + terminalDebian: register('terminal-debian', 0xebc5), + terminalLinux: register('terminal-linux', 0xebc6), + terminalPowershell: register('terminal-powershell', 0xebc7), + terminalTmux: register('terminal-tmux', 0xebc8), + terminalUbuntu: register('terminal-ubuntu', 0xebc9), + terminalBash: register('terminal-bash', 0xebca), + arrowSwap: register('arrow-swap', 0xebcb), + copy: register('copy', 0xebcc), + personAdd: register('person-add', 0xebcd), + filterFilled: register('filter-filled', 0xebce), + wand: register('wand', 0xebcf), + debugLineByLine: register('debug-line-by-line', 0xebd0), + inspect: register('inspect', 0xebd1), + layers: register('layers', 0xebd2), + layersDot: register('layers-dot', 0xebd3), + layersActive: register('layers-active', 0xebd4), + compass: register('compass', 0xebd5), + compassDot: register('compass-dot', 0xebd6), + compassActive: register('compass-active', 0xebd7), + azure: register('azure', 0xebd8), + issueDraft: register('issue-draft', 0xebd9), + gitPullRequestClosed: register('git-pull-request-closed', 0xebda), + gitPullRequestDraft: register('git-pull-request-draft', 0xebdb), + debugAll: register('debug-all', 0xebdc), + debugCoverage: register('debug-coverage', 0xebdd), + runErrors: register('run-errors', 0xebde), + folderLibrary: register('folder-library', 0xebdf), + debugContinueSmall: register('debug-continue-small', 0xebe0), + beakerStop: register('beaker-stop', 0xebe1), + graphLine: register('graph-line', 0xebe2), + graphScatter: register('graph-scatter', 0xebe3), + pieChart: register('pie-chart', 0xebe4), + bracket: register('bracket', 0xeb0f), + bracketDot: register('bracket-dot', 0xebe5), + bracketError: register('bracket-error', 0xebe6), + lockSmall: register('lock-small', 0xebe7), + azureDevops: register('azure-devops', 0xebe8), + verifiedFilled: register('verified-filled', 0xebe9), + newline: register('newline', 0xebea), + layout: register('layout', 0xebeb), + layoutActivitybarLeft: register('layout-activitybar-left', 0xebec), + layoutActivitybarRight: register('layout-activitybar-right', 0xebed), + layoutPanelLeft: register('layout-panel-left', 0xebee), + layoutPanelCenter: register('layout-panel-center', 0xebef), + layoutPanelJustify: register('layout-panel-justify', 0xebf0), + layoutPanelRight: register('layout-panel-right', 0xebf1), + layoutPanel: register('layout-panel', 0xebf2), + layoutSidebarLeft: register('layout-sidebar-left', 0xebf3), + layoutSidebarRight: register('layout-sidebar-right', 0xebf4), + layoutStatusbar: register('layout-statusbar', 0xebf5), + layoutMenubar: register('layout-menubar', 0xebf6), + layoutCentered: register('layout-centered', 0xebf7), + target: register('target', 0xebf8), + indent: register('indent', 0xebf9), + recordSmall: register('record-small', 0xebfa), + errorSmall: register('error-small', 0xebfb), + terminalDecorationError: register('terminal-decoration-error', 0xebfb), + arrowCircleDown: register('arrow-circle-down', 0xebfc), + arrowCircleLeft: register('arrow-circle-left', 0xebfd), + arrowCircleRight: register('arrow-circle-right', 0xebfe), + arrowCircleUp: register('arrow-circle-up', 0xebff), + layoutSidebarRightOff: register('layout-sidebar-right-off', 0xec00), + layoutPanelOff: register('layout-panel-off', 0xec01), + layoutSidebarLeftOff: register('layout-sidebar-left-off', 0xec02), + blank: register('blank', 0xec03), + heartFilled: register('heart-filled', 0xec04), + map: register('map', 0xec05), + mapHorizontal: register('map-horizontal', 0xec05), + foldHorizontal: register('fold-horizontal', 0xec05), + mapFilled: register('map-filled', 0xec06), + mapHorizontalFilled: register('map-horizontal-filled', 0xec06), + foldHorizontalFilled: register('fold-horizontal-filled', 0xec06), + circleSmall: register('circle-small', 0xec07), + bellSlash: register('bell-slash', 0xec08), + bellSlashDot: register('bell-slash-dot', 0xec09), + commentUnresolved: register('comment-unresolved', 0xec0a), + gitPullRequestGoToChanges: register('git-pull-request-go-to-changes', 0xec0b), + gitPullRequestNewChanges: register('git-pull-request-new-changes', 0xec0c), + searchFuzzy: register('search-fuzzy', 0xec0d), + commentDraft: register('comment-draft', 0xec0e), + send: register('send', 0xec0f), + sparkle: register('sparkle', 0xec10), + insert: register('insert', 0xec11), + mic: register('mic', 0xec12), + thumbsdownFilled: register('thumbsdown-filled', 0xec13), + thumbsupFilled: register('thumbsup-filled', 0xec14), + coffee: register('coffee', 0xec15), + snake: register('snake', 0xec16), + game: register('game', 0xec17), + vr: register('vr', 0xec18), + chip: register('chip', 0xec19), + piano: register('piano', 0xec1a), + music: register('music', 0xec1b), + micFilled: register('mic-filled', 0xec1c), + repoFetch: register('repo-fetch', 0xec1d), + copilot: register('copilot', 0xec1e), + lightbulbSparkle: register('lightbulb-sparkle', 0xec1f), + robot: register('robot', 0xec20), + sparkleFilled: register('sparkle-filled', 0xec21), + diffSingle: register('diff-single', 0xec22), + diffMultiple: register('diff-multiple', 0xec23), + surroundWith: register('surround-with', 0xec24), + share: register('share', 0xec25), + gitStash: register('git-stash', 0xec26), + gitStashApply: register('git-stash-apply', 0xec27), + gitStashPop: register('git-stash-pop', 0xec28), + vscode: register('vscode', 0xec29), + vscodeInsiders: register('vscode-insiders', 0xec2a), + codeOss: register('code-oss', 0xec2b), + runCoverage: register('run-coverage', 0xec2c), + runAllCoverage: register('run-all-coverage', 0xec2d), + coverage: register('coverage', 0xec2e), + githubProject: register('github-project', 0xec2f), + mapVertical: register('map-vertical', 0xec30), + foldVertical: register('fold-vertical', 0xec30), + mapVerticalFilled: register('map-vertical-filled', 0xec31), + foldVerticalFilled: register('fold-vertical-filled', 0xec31), + goToSearch: register('go-to-search', 0xec32), + percentage: register('percentage', 0xec33), + sortPercentage: register('sort-percentage', 0xec33), + attach: register('attach', 0xec34), +}; + +/** + * Derived icons, that could become separate icons. + * These mappings should be moved into the mapping file in the vscode-codicons repo at some point. + */ +const codiconsDerived = { + dialogError: register('dialog-error', 'error'), + dialogWarning: register('dialog-warning', 'warning'), + dialogInfo: register('dialog-info', 'info'), + dialogClose: register('dialog-close', 'close'), + treeItemExpanded: register('tree-item-expanded', 'chevron-down'), // collapsed is done with rotation + treeFilterOnTypeOn: register('tree-filter-on-type-on', 'list-filter'), + treeFilterOnTypeOff: register('tree-filter-on-type-off', 'list-selection'), + treeFilterClear: register('tree-filter-clear', 'close'), + treeItemLoading: register('tree-item-loading', 'loading'), + menuSelection: register('menu-selection', 'check'), + menuSubmenu: register('menu-submenu', 'chevron-right'), + menuBarMore: register('menubar-more', 'more'), + scrollbarButtonLeft: register('scrollbar-button-left', 'triangle-left'), + scrollbarButtonRight: register('scrollbar-button-right', 'triangle-right'), + scrollbarButtonUp: register('scrollbar-button-up', 'triangle-up'), + scrollbarButtonDown: register('scrollbar-button-down', 'triangle-down'), + toolBarMore: register('toolbar-more', 'more'), + quickInputBack: register('quick-input-back', 'arrow-left'), + dropDownButton: register('drop-down-button', 0xeab4), + symbolCustomColor: register('symbol-customcolor', 0xeb5c), + exportIcon: register('export', 0xebac), + workspaceUnspecified: register('workspace-unspecified', 0xebc3), + newLine: register('newline', 0xebea), + thumbsDownFilled: register('thumbsdown-filled', 0xec13), + thumbsUpFilled: register('thumbsup-filled', 0xec14), + gitFetch: register('git-fetch', 0xec1d), + lightbulbSparkleAutofix: register('lightbulb-sparkle-autofix', 0xec1f), + debugBreakpointPending: register('debug-breakpoint-pending', 0xebd9), +}; +/** + * The Codicon library is a set of default icons that are built-in in VS Code. + * + * In the product (outside of base) Codicons should only be used as defaults. In order to have all icons in VS Code + * themeable, component should define new, UI component specific icons using `iconRegistry.registerIcon`. + * In that call a Codicon can be named as default. + */ +const Codicon = { + ...codiconsLibrary, + ...codiconsDerived +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class TokenizationRegistry { + constructor() { + this._tokenizationSupports = new Map(); + this._factories = new Map(); + this._onDidChange = new Emitter(); + this.onDidChange = this._onDidChange.event; + this._colorMap = null; + } + handleChange(languageIds) { + this._onDidChange.fire({ + changedLanguages: languageIds, + changedColorMap: false + }); + } + register(languageId, support) { + this._tokenizationSupports.set(languageId, support); + this.handleChange([languageId]); + return toDisposable(() => { + if (this._tokenizationSupports.get(languageId) !== support) { + return; + } + this._tokenizationSupports.delete(languageId); + this.handleChange([languageId]); + }); + } + get(languageId) { + return this._tokenizationSupports.get(languageId) || null; + } + registerFactory(languageId, factory) { + this._factories.get(languageId)?.dispose(); + const myData = new TokenizationSupportFactoryData(this, languageId, factory); + this._factories.set(languageId, myData); + return toDisposable(() => { + const v = this._factories.get(languageId); + if (!v || v !== myData) { + return; + } + this._factories.delete(languageId); + v.dispose(); + }); + } + async getOrCreate(languageId) { + // check first if the support is already set + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return tokenizationSupport; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + // no factory or factory.resolve already finished + return null; + } + await factory.resolve(); + return this.get(languageId); + } + isResolved(languageId) { + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return true; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + return true; + } + return false; + } + setColorMap(colorMap) { + this._colorMap = colorMap; + this._onDidChange.fire({ + changedLanguages: Array.from(this._tokenizationSupports.keys()), + changedColorMap: true + }); + } + getColorMap() { + return this._colorMap; + } + getDefaultBackground() { + if (this._colorMap && this._colorMap.length > 2 /* ColorId.DefaultBackground */) { + return this._colorMap[2 /* ColorId.DefaultBackground */]; + } + return null; + } +} +class TokenizationSupportFactoryData extends Disposable { + get isResolved() { + return this._isResolved; + } + constructor(_registry, _languageId, _factory) { + super(); + this._registry = _registry; + this._languageId = _languageId; + this._factory = _factory; + this._isDisposed = false; + this._resolvePromise = null; + this._isResolved = false; + } + dispose() { + this._isDisposed = true; + super.dispose(); + } + async resolve() { + if (!this._resolvePromise) { + this._resolvePromise = this._create(); + } + return this._resolvePromise; + } + async _create() { + const value = await this._factory.tokenizationSupport; + this._isResolved = true; + if (value && !this._isDisposed) { + this._register(this._registry.register(this._languageId, value)); + } + } +} + +class Token { + constructor(offset, type, language) { + this.offset = offset; + this.type = type; + this.language = language; + this._tokenBrand = undefined; + } + toString() { + return '(' + this.offset + ', ' + this.type + ')'; + } +} +var HoverVerbosityAction$1; +(function (HoverVerbosityAction) { + /** + * Increase the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Increase"] = 0] = "Increase"; + /** + * Decrease the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Decrease"] = 1] = "Decrease"; +})(HoverVerbosityAction$1 || (HoverVerbosityAction$1 = {})); +/** + * @internal + */ +var CompletionItemKinds; +(function (CompletionItemKinds) { + const byKind = new Map(); + byKind.set(0 /* CompletionItemKind.Method */, Codicon.symbolMethod); + byKind.set(1 /* CompletionItemKind.Function */, Codicon.symbolFunction); + byKind.set(2 /* CompletionItemKind.Constructor */, Codicon.symbolConstructor); + byKind.set(3 /* CompletionItemKind.Field */, Codicon.symbolField); + byKind.set(4 /* CompletionItemKind.Variable */, Codicon.symbolVariable); + byKind.set(5 /* CompletionItemKind.Class */, Codicon.symbolClass); + byKind.set(6 /* CompletionItemKind.Struct */, Codicon.symbolStruct); + byKind.set(7 /* CompletionItemKind.Interface */, Codicon.symbolInterface); + byKind.set(8 /* CompletionItemKind.Module */, Codicon.symbolModule); + byKind.set(9 /* CompletionItemKind.Property */, Codicon.symbolProperty); + byKind.set(10 /* CompletionItemKind.Event */, Codicon.symbolEvent); + byKind.set(11 /* CompletionItemKind.Operator */, Codicon.symbolOperator); + byKind.set(12 /* CompletionItemKind.Unit */, Codicon.symbolUnit); + byKind.set(13 /* CompletionItemKind.Value */, Codicon.symbolValue); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(14 /* CompletionItemKind.Constant */, Codicon.symbolConstant); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(16 /* CompletionItemKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(17 /* CompletionItemKind.Keyword */, Codicon.symbolKeyword); + byKind.set(27 /* CompletionItemKind.Snippet */, Codicon.symbolSnippet); + byKind.set(18 /* CompletionItemKind.Text */, Codicon.symbolText); + byKind.set(19 /* CompletionItemKind.Color */, Codicon.symbolColor); + byKind.set(20 /* CompletionItemKind.File */, Codicon.symbolFile); + byKind.set(21 /* CompletionItemKind.Reference */, Codicon.symbolReference); + byKind.set(22 /* CompletionItemKind.Customcolor */, Codicon.symbolCustomColor); + byKind.set(23 /* CompletionItemKind.Folder */, Codicon.symbolFolder); + byKind.set(24 /* CompletionItemKind.TypeParameter */, Codicon.symbolTypeParameter); + byKind.set(25 /* CompletionItemKind.User */, Codicon.account); + byKind.set(26 /* CompletionItemKind.Issue */, Codicon.issues); + /** + * @internal + */ + function toIcon(kind) { + let codicon = byKind.get(kind); + if (!codicon) { + console.info('No codicon found for CompletionItemKind ' + kind); + codicon = Codicon.symbolProperty; + } + return codicon; + } + CompletionItemKinds.toIcon = toIcon; + const data = new Map(); + data.set('method', 0 /* CompletionItemKind.Method */); + data.set('function', 1 /* CompletionItemKind.Function */); + data.set('constructor', 2 /* CompletionItemKind.Constructor */); + data.set('field', 3 /* CompletionItemKind.Field */); + data.set('variable', 4 /* CompletionItemKind.Variable */); + data.set('class', 5 /* CompletionItemKind.Class */); + data.set('struct', 6 /* CompletionItemKind.Struct */); + data.set('interface', 7 /* CompletionItemKind.Interface */); + data.set('module', 8 /* CompletionItemKind.Module */); + data.set('property', 9 /* CompletionItemKind.Property */); + data.set('event', 10 /* CompletionItemKind.Event */); + data.set('operator', 11 /* CompletionItemKind.Operator */); + data.set('unit', 12 /* CompletionItemKind.Unit */); + data.set('value', 13 /* CompletionItemKind.Value */); + data.set('constant', 14 /* CompletionItemKind.Constant */); + data.set('enum', 15 /* CompletionItemKind.Enum */); + data.set('enum-member', 16 /* CompletionItemKind.EnumMember */); + data.set('enumMember', 16 /* CompletionItemKind.EnumMember */); + data.set('keyword', 17 /* CompletionItemKind.Keyword */); + data.set('snippet', 27 /* CompletionItemKind.Snippet */); + data.set('text', 18 /* CompletionItemKind.Text */); + data.set('color', 19 /* CompletionItemKind.Color */); + data.set('file', 20 /* CompletionItemKind.File */); + data.set('reference', 21 /* CompletionItemKind.Reference */); + data.set('customcolor', 22 /* CompletionItemKind.Customcolor */); + data.set('folder', 23 /* CompletionItemKind.Folder */); + data.set('type-parameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('typeParameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('account', 25 /* CompletionItemKind.User */); + data.set('issue', 26 /* CompletionItemKind.Issue */); + /** + * @internal + */ + function fromString(value, strict) { + let res = data.get(value); + if (typeof res === 'undefined' && !strict) { + res = 9 /* CompletionItemKind.Property */; + } + return res; + } + CompletionItemKinds.fromString = fromString; +})(CompletionItemKinds || (CompletionItemKinds = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var InlineCompletionTriggerKind$1; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(InlineCompletionTriggerKind$1 || (InlineCompletionTriggerKind$1 = {})); +/** + * @internal + */ +var DocumentPasteTriggerKind; +(function (DocumentPasteTriggerKind) { + DocumentPasteTriggerKind[DocumentPasteTriggerKind["Automatic"] = 0] = "Automatic"; + DocumentPasteTriggerKind[DocumentPasteTriggerKind["PasteAs"] = 1] = "PasteAs"; +})(DocumentPasteTriggerKind || (DocumentPasteTriggerKind = {})); +var SignatureHelpTriggerKind$1; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(SignatureHelpTriggerKind$1 || (SignatureHelpTriggerKind$1 = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind$1; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(DocumentHighlightKind$1 || (DocumentHighlightKind$1 = {})); +/** + * @internal + */ +({ + [17 /* SymbolKind.Array */]: localize('Array', "array"), + [16 /* SymbolKind.Boolean */]: localize('Boolean', "boolean"), + [4 /* SymbolKind.Class */]: localize('Class', "class"), + [13 /* SymbolKind.Constant */]: localize('Constant', "constant"), + [8 /* SymbolKind.Constructor */]: localize('Constructor', "constructor"), + [9 /* SymbolKind.Enum */]: localize('Enum', "enumeration"), + [21 /* SymbolKind.EnumMember */]: localize('EnumMember', "enumeration member"), + [23 /* SymbolKind.Event */]: localize('Event', "event"), + [7 /* SymbolKind.Field */]: localize('Field', "field"), + [0 /* SymbolKind.File */]: localize('File', "file"), + [11 /* SymbolKind.Function */]: localize('Function', "function"), + [10 /* SymbolKind.Interface */]: localize('Interface', "interface"), + [19 /* SymbolKind.Key */]: localize('Key', "key"), + [5 /* SymbolKind.Method */]: localize('Method', "method"), + [1 /* SymbolKind.Module */]: localize('Module', "module"), + [2 /* SymbolKind.Namespace */]: localize('Namespace', "namespace"), + [20 /* SymbolKind.Null */]: localize('Null', "null"), + [15 /* SymbolKind.Number */]: localize('Number', "number"), + [18 /* SymbolKind.Object */]: localize('Object', "object"), + [24 /* SymbolKind.Operator */]: localize('Operator', "operator"), + [3 /* SymbolKind.Package */]: localize('Package', "package"), + [6 /* SymbolKind.Property */]: localize('Property', "property"), + [14 /* SymbolKind.String */]: localize('String', "string"), + [22 /* SymbolKind.Struct */]: localize('Struct', "struct"), + [25 /* SymbolKind.TypeParameter */]: localize('TypeParameter', "type parameter"), + [12 /* SymbolKind.Variable */]: localize('Variable', "variable"), +}); +/** + * @internal + */ +var SymbolKinds; +(function (SymbolKinds) { + const byKind = new Map(); + byKind.set(0 /* SymbolKind.File */, Codicon.symbolFile); + byKind.set(1 /* SymbolKind.Module */, Codicon.symbolModule); + byKind.set(2 /* SymbolKind.Namespace */, Codicon.symbolNamespace); + byKind.set(3 /* SymbolKind.Package */, Codicon.symbolPackage); + byKind.set(4 /* SymbolKind.Class */, Codicon.symbolClass); + byKind.set(5 /* SymbolKind.Method */, Codicon.symbolMethod); + byKind.set(6 /* SymbolKind.Property */, Codicon.symbolProperty); + byKind.set(7 /* SymbolKind.Field */, Codicon.symbolField); + byKind.set(8 /* SymbolKind.Constructor */, Codicon.symbolConstructor); + byKind.set(9 /* SymbolKind.Enum */, Codicon.symbolEnum); + byKind.set(10 /* SymbolKind.Interface */, Codicon.symbolInterface); + byKind.set(11 /* SymbolKind.Function */, Codicon.symbolFunction); + byKind.set(12 /* SymbolKind.Variable */, Codicon.symbolVariable); + byKind.set(13 /* SymbolKind.Constant */, Codicon.symbolConstant); + byKind.set(14 /* SymbolKind.String */, Codicon.symbolString); + byKind.set(15 /* SymbolKind.Number */, Codicon.symbolNumber); + byKind.set(16 /* SymbolKind.Boolean */, Codicon.symbolBoolean); + byKind.set(17 /* SymbolKind.Array */, Codicon.symbolArray); + byKind.set(18 /* SymbolKind.Object */, Codicon.symbolObject); + byKind.set(19 /* SymbolKind.Key */, Codicon.symbolKey); + byKind.set(20 /* SymbolKind.Null */, Codicon.symbolNull); + byKind.set(21 /* SymbolKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(22 /* SymbolKind.Struct */, Codicon.symbolStruct); + byKind.set(23 /* SymbolKind.Event */, Codicon.symbolEvent); + byKind.set(24 /* SymbolKind.Operator */, Codicon.symbolOperator); + byKind.set(25 /* SymbolKind.TypeParameter */, Codicon.symbolTypeParameter); + /** + * @internal + */ + function toIcon(kind) { + let icon = byKind.get(kind); + if (!icon) { + console.info('No codicon found for SymbolKind ' + kind); + icon = Codicon.symbolProperty; + } + return icon; + } + SymbolKinds.toIcon = toIcon; +})(SymbolKinds || (SymbolKinds = {})); +class FoldingRangeKind { + /** + * Kind for folding range representing a comment. The value of the kind is 'comment'. + */ + static { this.Comment = new FoldingRangeKind('comment'); } + /** + * Kind for folding range representing a import. The value of the kind is 'imports'. + */ + static { this.Imports = new FoldingRangeKind('imports'); } + /** + * Kind for folding range representing regions (for example marked by `#region`, `#endregion`). + * The value of the kind is 'region'. + */ + static { this.Region = new FoldingRangeKind('region'); } + /** + * Returns a {@link FoldingRangeKind} for the given value. + * + * @param value of the kind. + */ + static fromValue(value) { + switch (value) { + case 'comment': return FoldingRangeKind.Comment; + case 'imports': return FoldingRangeKind.Imports; + case 'region': return FoldingRangeKind.Region; + } + return new FoldingRangeKind(value); + } + /** + * Creates a new {@link FoldingRangeKind}. + * + * @param value of the kind. + */ + constructor(value) { + this.value = value; + } +} +var NewSymbolNameTag$1; +(function (NewSymbolNameTag) { + NewSymbolNameTag[NewSymbolNameTag["AIGenerated"] = 1] = "AIGenerated"; +})(NewSymbolNameTag$1 || (NewSymbolNameTag$1 = {})); +var NewSymbolNameTriggerKind$1; +(function (NewSymbolNameTriggerKind) { + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Invoke"] = 0] = "Invoke"; + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Automatic"] = 1] = "Automatic"; +})(NewSymbolNameTriggerKind$1 || (NewSymbolNameTriggerKind$1 = {})); +/** + * @internal + */ +var Command; +(function (Command) { + /** + * @internal + */ + function is(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + return typeof obj.id === 'string' && + typeof obj.title === 'string'; + } + Command.is = is; +})(Command || (Command = {})); +var InlayHintKind$1; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(InlayHintKind$1 || (InlayHintKind$1 = {})); +/** + * @internal + */ +new TokenizationRegistry(); +var InlineEditTriggerKind$1; +(function (InlineEditTriggerKind) { + InlineEditTriggerKind[InlineEditTriggerKind["Invoke"] = 0] = "Invoke"; + InlineEditTriggerKind[InlineEditTriggerKind["Automatic"] = 1] = "Automatic"; +})(InlineEditTriggerKind$1 || (InlineEditTriggerKind$1 = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. +var AccessibilitySupport; +(function (AccessibilitySupport) { + /** + * This should be the browser case where it is not known if a screen reader is attached or no. + */ + AccessibilitySupport[AccessibilitySupport["Unknown"] = 0] = "Unknown"; + AccessibilitySupport[AccessibilitySupport["Disabled"] = 1] = "Disabled"; + AccessibilitySupport[AccessibilitySupport["Enabled"] = 2] = "Enabled"; +})(AccessibilitySupport || (AccessibilitySupport = {})); +var CodeActionTriggerType; +(function (CodeActionTriggerType) { + CodeActionTriggerType[CodeActionTriggerType["Invoke"] = 1] = "Invoke"; + CodeActionTriggerType[CodeActionTriggerType["Auto"] = 2] = "Auto"; +})(CodeActionTriggerType || (CodeActionTriggerType = {})); +var CompletionItemInsertTextRule; +(function (CompletionItemInsertTextRule) { + CompletionItemInsertTextRule[CompletionItemInsertTextRule["None"] = 0] = "None"; + /** + * Adjust whitespace/indentation of multiline insert texts to + * match the current line indentation. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["KeepWhitespace"] = 1] = "KeepWhitespace"; + /** + * `insertText` is a snippet. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["InsertAsSnippet"] = 4] = "InsertAsSnippet"; +})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {})); +var CompletionItemKind; +(function (CompletionItemKind) { + CompletionItemKind[CompletionItemKind["Method"] = 0] = "Method"; + CompletionItemKind[CompletionItemKind["Function"] = 1] = "Function"; + CompletionItemKind[CompletionItemKind["Constructor"] = 2] = "Constructor"; + CompletionItemKind[CompletionItemKind["Field"] = 3] = "Field"; + CompletionItemKind[CompletionItemKind["Variable"] = 4] = "Variable"; + CompletionItemKind[CompletionItemKind["Class"] = 5] = "Class"; + CompletionItemKind[CompletionItemKind["Struct"] = 6] = "Struct"; + CompletionItemKind[CompletionItemKind["Interface"] = 7] = "Interface"; + CompletionItemKind[CompletionItemKind["Module"] = 8] = "Module"; + CompletionItemKind[CompletionItemKind["Property"] = 9] = "Property"; + CompletionItemKind[CompletionItemKind["Event"] = 10] = "Event"; + CompletionItemKind[CompletionItemKind["Operator"] = 11] = "Operator"; + CompletionItemKind[CompletionItemKind["Unit"] = 12] = "Unit"; + CompletionItemKind[CompletionItemKind["Value"] = 13] = "Value"; + CompletionItemKind[CompletionItemKind["Constant"] = 14] = "Constant"; + CompletionItemKind[CompletionItemKind["Enum"] = 15] = "Enum"; + CompletionItemKind[CompletionItemKind["EnumMember"] = 16] = "EnumMember"; + CompletionItemKind[CompletionItemKind["Keyword"] = 17] = "Keyword"; + CompletionItemKind[CompletionItemKind["Text"] = 18] = "Text"; + CompletionItemKind[CompletionItemKind["Color"] = 19] = "Color"; + CompletionItemKind[CompletionItemKind["File"] = 20] = "File"; + CompletionItemKind[CompletionItemKind["Reference"] = 21] = "Reference"; + CompletionItemKind[CompletionItemKind["Customcolor"] = 22] = "Customcolor"; + CompletionItemKind[CompletionItemKind["Folder"] = 23] = "Folder"; + CompletionItemKind[CompletionItemKind["TypeParameter"] = 24] = "TypeParameter"; + CompletionItemKind[CompletionItemKind["User"] = 25] = "User"; + CompletionItemKind[CompletionItemKind["Issue"] = 26] = "Issue"; + CompletionItemKind[CompletionItemKind["Snippet"] = 27] = "Snippet"; +})(CompletionItemKind || (CompletionItemKind = {})); +var CompletionItemTag; +(function (CompletionItemTag) { + CompletionItemTag[CompletionItemTag["Deprecated"] = 1] = "Deprecated"; +})(CompletionItemTag || (CompletionItemTag = {})); +/** + * How a suggest provider was triggered. + */ +var CompletionTriggerKind; +(function (CompletionTriggerKind) { + CompletionTriggerKind[CompletionTriggerKind["Invoke"] = 0] = "Invoke"; + CompletionTriggerKind[CompletionTriggerKind["TriggerCharacter"] = 1] = "TriggerCharacter"; + CompletionTriggerKind[CompletionTriggerKind["TriggerForIncompleteCompletions"] = 2] = "TriggerForIncompleteCompletions"; +})(CompletionTriggerKind || (CompletionTriggerKind = {})); +/** + * A positioning preference for rendering content widgets. + */ +var ContentWidgetPositionPreference; +(function (ContentWidgetPositionPreference) { + /** + * Place the content widget exactly at a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["EXACT"] = 0] = "EXACT"; + /** + * Place the content widget above a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["ABOVE"] = 1] = "ABOVE"; + /** + * Place the content widget below a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["BELOW"] = 2] = "BELOW"; +})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {})); +/** + * Describes the reason the cursor has changed its position. + */ +var CursorChangeReason; +(function (CursorChangeReason) { + /** + * Unknown or not set. + */ + CursorChangeReason[CursorChangeReason["NotSet"] = 0] = "NotSet"; + /** + * A `model.setValue()` was called. + */ + CursorChangeReason[CursorChangeReason["ContentFlush"] = 1] = "ContentFlush"; + /** + * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. + */ + CursorChangeReason[CursorChangeReason["RecoverFromMarkers"] = 2] = "RecoverFromMarkers"; + /** + * There was an explicit user gesture. + */ + CursorChangeReason[CursorChangeReason["Explicit"] = 3] = "Explicit"; + /** + * There was a Paste. + */ + CursorChangeReason[CursorChangeReason["Paste"] = 4] = "Paste"; + /** + * There was an Undo. + */ + CursorChangeReason[CursorChangeReason["Undo"] = 5] = "Undo"; + /** + * There was a Redo. + */ + CursorChangeReason[CursorChangeReason["Redo"] = 6] = "Redo"; +})(CursorChangeReason || (CursorChangeReason = {})); +/** + * The default end of line to use when instantiating models. + */ +var DefaultEndOfLine; +(function (DefaultEndOfLine) { + /** + * Use line feed (\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["CRLF"] = 2] = "CRLF"; +})(DefaultEndOfLine || (DefaultEndOfLine = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(DocumentHighlightKind || (DocumentHighlightKind = {})); +/** + * Configuration options for auto indentation in the editor + */ +var EditorAutoIndentStrategy; +(function (EditorAutoIndentStrategy) { + EditorAutoIndentStrategy[EditorAutoIndentStrategy["None"] = 0] = "None"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Keep"] = 1] = "Keep"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Brackets"] = 2] = "Brackets"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Advanced"] = 3] = "Advanced"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Full"] = 4] = "Full"; +})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {})); +var EditorOption; +(function (EditorOption) { + EditorOption[EditorOption["acceptSuggestionOnCommitCharacter"] = 0] = "acceptSuggestionOnCommitCharacter"; + EditorOption[EditorOption["acceptSuggestionOnEnter"] = 1] = "acceptSuggestionOnEnter"; + EditorOption[EditorOption["accessibilitySupport"] = 2] = "accessibilitySupport"; + EditorOption[EditorOption["accessibilityPageSize"] = 3] = "accessibilityPageSize"; + EditorOption[EditorOption["ariaLabel"] = 4] = "ariaLabel"; + EditorOption[EditorOption["ariaRequired"] = 5] = "ariaRequired"; + EditorOption[EditorOption["autoClosingBrackets"] = 6] = "autoClosingBrackets"; + EditorOption[EditorOption["autoClosingComments"] = 7] = "autoClosingComments"; + EditorOption[EditorOption["screenReaderAnnounceInlineSuggestion"] = 8] = "screenReaderAnnounceInlineSuggestion"; + EditorOption[EditorOption["autoClosingDelete"] = 9] = "autoClosingDelete"; + EditorOption[EditorOption["autoClosingOvertype"] = 10] = "autoClosingOvertype"; + EditorOption[EditorOption["autoClosingQuotes"] = 11] = "autoClosingQuotes"; + EditorOption[EditorOption["autoIndent"] = 12] = "autoIndent"; + EditorOption[EditorOption["automaticLayout"] = 13] = "automaticLayout"; + EditorOption[EditorOption["autoSurround"] = 14] = "autoSurround"; + EditorOption[EditorOption["bracketPairColorization"] = 15] = "bracketPairColorization"; + EditorOption[EditorOption["guides"] = 16] = "guides"; + EditorOption[EditorOption["codeLens"] = 17] = "codeLens"; + EditorOption[EditorOption["codeLensFontFamily"] = 18] = "codeLensFontFamily"; + EditorOption[EditorOption["codeLensFontSize"] = 19] = "codeLensFontSize"; + EditorOption[EditorOption["colorDecorators"] = 20] = "colorDecorators"; + EditorOption[EditorOption["colorDecoratorsLimit"] = 21] = "colorDecoratorsLimit"; + EditorOption[EditorOption["columnSelection"] = 22] = "columnSelection"; + EditorOption[EditorOption["comments"] = 23] = "comments"; + EditorOption[EditorOption["contextmenu"] = 24] = "contextmenu"; + EditorOption[EditorOption["copyWithSyntaxHighlighting"] = 25] = "copyWithSyntaxHighlighting"; + EditorOption[EditorOption["cursorBlinking"] = 26] = "cursorBlinking"; + EditorOption[EditorOption["cursorSmoothCaretAnimation"] = 27] = "cursorSmoothCaretAnimation"; + EditorOption[EditorOption["cursorStyle"] = 28] = "cursorStyle"; + EditorOption[EditorOption["cursorSurroundingLines"] = 29] = "cursorSurroundingLines"; + EditorOption[EditorOption["cursorSurroundingLinesStyle"] = 30] = "cursorSurroundingLinesStyle"; + EditorOption[EditorOption["cursorWidth"] = 31] = "cursorWidth"; + EditorOption[EditorOption["disableLayerHinting"] = 32] = "disableLayerHinting"; + EditorOption[EditorOption["disableMonospaceOptimizations"] = 33] = "disableMonospaceOptimizations"; + EditorOption[EditorOption["domReadOnly"] = 34] = "domReadOnly"; + EditorOption[EditorOption["dragAndDrop"] = 35] = "dragAndDrop"; + EditorOption[EditorOption["dropIntoEditor"] = 36] = "dropIntoEditor"; + EditorOption[EditorOption["emptySelectionClipboard"] = 37] = "emptySelectionClipboard"; + EditorOption[EditorOption["experimentalWhitespaceRendering"] = 38] = "experimentalWhitespaceRendering"; + EditorOption[EditorOption["extraEditorClassName"] = 39] = "extraEditorClassName"; + EditorOption[EditorOption["fastScrollSensitivity"] = 40] = "fastScrollSensitivity"; + EditorOption[EditorOption["find"] = 41] = "find"; + EditorOption[EditorOption["fixedOverflowWidgets"] = 42] = "fixedOverflowWidgets"; + EditorOption[EditorOption["folding"] = 43] = "folding"; + EditorOption[EditorOption["foldingStrategy"] = 44] = "foldingStrategy"; + EditorOption[EditorOption["foldingHighlight"] = 45] = "foldingHighlight"; + EditorOption[EditorOption["foldingImportsByDefault"] = 46] = "foldingImportsByDefault"; + EditorOption[EditorOption["foldingMaximumRegions"] = 47] = "foldingMaximumRegions"; + EditorOption[EditorOption["unfoldOnClickAfterEndOfLine"] = 48] = "unfoldOnClickAfterEndOfLine"; + EditorOption[EditorOption["fontFamily"] = 49] = "fontFamily"; + EditorOption[EditorOption["fontInfo"] = 50] = "fontInfo"; + EditorOption[EditorOption["fontLigatures"] = 51] = "fontLigatures"; + EditorOption[EditorOption["fontSize"] = 52] = "fontSize"; + EditorOption[EditorOption["fontWeight"] = 53] = "fontWeight"; + EditorOption[EditorOption["fontVariations"] = 54] = "fontVariations"; + EditorOption[EditorOption["formatOnPaste"] = 55] = "formatOnPaste"; + EditorOption[EditorOption["formatOnType"] = 56] = "formatOnType"; + EditorOption[EditorOption["glyphMargin"] = 57] = "glyphMargin"; + EditorOption[EditorOption["gotoLocation"] = 58] = "gotoLocation"; + EditorOption[EditorOption["hideCursorInOverviewRuler"] = 59] = "hideCursorInOverviewRuler"; + EditorOption[EditorOption["hover"] = 60] = "hover"; + EditorOption[EditorOption["inDiffEditor"] = 61] = "inDiffEditor"; + EditorOption[EditorOption["inlineSuggest"] = 62] = "inlineSuggest"; + EditorOption[EditorOption["inlineEdit"] = 63] = "inlineEdit"; + EditorOption[EditorOption["letterSpacing"] = 64] = "letterSpacing"; + EditorOption[EditorOption["lightbulb"] = 65] = "lightbulb"; + EditorOption[EditorOption["lineDecorationsWidth"] = 66] = "lineDecorationsWidth"; + EditorOption[EditorOption["lineHeight"] = 67] = "lineHeight"; + EditorOption[EditorOption["lineNumbers"] = 68] = "lineNumbers"; + EditorOption[EditorOption["lineNumbersMinChars"] = 69] = "lineNumbersMinChars"; + EditorOption[EditorOption["linkedEditing"] = 70] = "linkedEditing"; + EditorOption[EditorOption["links"] = 71] = "links"; + EditorOption[EditorOption["matchBrackets"] = 72] = "matchBrackets"; + EditorOption[EditorOption["minimap"] = 73] = "minimap"; + EditorOption[EditorOption["mouseStyle"] = 74] = "mouseStyle"; + EditorOption[EditorOption["mouseWheelScrollSensitivity"] = 75] = "mouseWheelScrollSensitivity"; + EditorOption[EditorOption["mouseWheelZoom"] = 76] = "mouseWheelZoom"; + EditorOption[EditorOption["multiCursorMergeOverlapping"] = 77] = "multiCursorMergeOverlapping"; + EditorOption[EditorOption["multiCursorModifier"] = 78] = "multiCursorModifier"; + EditorOption[EditorOption["multiCursorPaste"] = 79] = "multiCursorPaste"; + EditorOption[EditorOption["multiCursorLimit"] = 80] = "multiCursorLimit"; + EditorOption[EditorOption["occurrencesHighlight"] = 81] = "occurrencesHighlight"; + EditorOption[EditorOption["overviewRulerBorder"] = 82] = "overviewRulerBorder"; + EditorOption[EditorOption["overviewRulerLanes"] = 83] = "overviewRulerLanes"; + EditorOption[EditorOption["padding"] = 84] = "padding"; + EditorOption[EditorOption["pasteAs"] = 85] = "pasteAs"; + EditorOption[EditorOption["parameterHints"] = 86] = "parameterHints"; + EditorOption[EditorOption["peekWidgetDefaultFocus"] = 87] = "peekWidgetDefaultFocus"; + EditorOption[EditorOption["placeholder"] = 88] = "placeholder"; + EditorOption[EditorOption["definitionLinkOpensInPeek"] = 89] = "definitionLinkOpensInPeek"; + EditorOption[EditorOption["quickSuggestions"] = 90] = "quickSuggestions"; + EditorOption[EditorOption["quickSuggestionsDelay"] = 91] = "quickSuggestionsDelay"; + EditorOption[EditorOption["readOnly"] = 92] = "readOnly"; + EditorOption[EditorOption["readOnlyMessage"] = 93] = "readOnlyMessage"; + EditorOption[EditorOption["renameOnType"] = 94] = "renameOnType"; + EditorOption[EditorOption["renderControlCharacters"] = 95] = "renderControlCharacters"; + EditorOption[EditorOption["renderFinalNewline"] = 96] = "renderFinalNewline"; + EditorOption[EditorOption["renderLineHighlight"] = 97] = "renderLineHighlight"; + EditorOption[EditorOption["renderLineHighlightOnlyWhenFocus"] = 98] = "renderLineHighlightOnlyWhenFocus"; + EditorOption[EditorOption["renderValidationDecorations"] = 99] = "renderValidationDecorations"; + EditorOption[EditorOption["renderWhitespace"] = 100] = "renderWhitespace"; + EditorOption[EditorOption["revealHorizontalRightPadding"] = 101] = "revealHorizontalRightPadding"; + EditorOption[EditorOption["roundedSelection"] = 102] = "roundedSelection"; + EditorOption[EditorOption["rulers"] = 103] = "rulers"; + EditorOption[EditorOption["scrollbar"] = 104] = "scrollbar"; + EditorOption[EditorOption["scrollBeyondLastColumn"] = 105] = "scrollBeyondLastColumn"; + EditorOption[EditorOption["scrollBeyondLastLine"] = 106] = "scrollBeyondLastLine"; + EditorOption[EditorOption["scrollPredominantAxis"] = 107] = "scrollPredominantAxis"; + EditorOption[EditorOption["selectionClipboard"] = 108] = "selectionClipboard"; + EditorOption[EditorOption["selectionHighlight"] = 109] = "selectionHighlight"; + EditorOption[EditorOption["selectOnLineNumbers"] = 110] = "selectOnLineNumbers"; + EditorOption[EditorOption["showFoldingControls"] = 111] = "showFoldingControls"; + EditorOption[EditorOption["showUnused"] = 112] = "showUnused"; + EditorOption[EditorOption["snippetSuggestions"] = 113] = "snippetSuggestions"; + EditorOption[EditorOption["smartSelect"] = 114] = "smartSelect"; + EditorOption[EditorOption["smoothScrolling"] = 115] = "smoothScrolling"; + EditorOption[EditorOption["stickyScroll"] = 116] = "stickyScroll"; + EditorOption[EditorOption["stickyTabStops"] = 117] = "stickyTabStops"; + EditorOption[EditorOption["stopRenderingLineAfter"] = 118] = "stopRenderingLineAfter"; + EditorOption[EditorOption["suggest"] = 119] = "suggest"; + EditorOption[EditorOption["suggestFontSize"] = 120] = "suggestFontSize"; + EditorOption[EditorOption["suggestLineHeight"] = 121] = "suggestLineHeight"; + EditorOption[EditorOption["suggestOnTriggerCharacters"] = 122] = "suggestOnTriggerCharacters"; + EditorOption[EditorOption["suggestSelection"] = 123] = "suggestSelection"; + EditorOption[EditorOption["tabCompletion"] = 124] = "tabCompletion"; + EditorOption[EditorOption["tabIndex"] = 125] = "tabIndex"; + EditorOption[EditorOption["unicodeHighlighting"] = 126] = "unicodeHighlighting"; + EditorOption[EditorOption["unusualLineTerminators"] = 127] = "unusualLineTerminators"; + EditorOption[EditorOption["useShadowDOM"] = 128] = "useShadowDOM"; + EditorOption[EditorOption["useTabStops"] = 129] = "useTabStops"; + EditorOption[EditorOption["wordBreak"] = 130] = "wordBreak"; + EditorOption[EditorOption["wordSegmenterLocales"] = 131] = "wordSegmenterLocales"; + EditorOption[EditorOption["wordSeparators"] = 132] = "wordSeparators"; + EditorOption[EditorOption["wordWrap"] = 133] = "wordWrap"; + EditorOption[EditorOption["wordWrapBreakAfterCharacters"] = 134] = "wordWrapBreakAfterCharacters"; + EditorOption[EditorOption["wordWrapBreakBeforeCharacters"] = 135] = "wordWrapBreakBeforeCharacters"; + EditorOption[EditorOption["wordWrapColumn"] = 136] = "wordWrapColumn"; + EditorOption[EditorOption["wordWrapOverride1"] = 137] = "wordWrapOverride1"; + EditorOption[EditorOption["wordWrapOverride2"] = 138] = "wordWrapOverride2"; + EditorOption[EditorOption["wrappingIndent"] = 139] = "wrappingIndent"; + EditorOption[EditorOption["wrappingStrategy"] = 140] = "wrappingStrategy"; + EditorOption[EditorOption["showDeprecated"] = 141] = "showDeprecated"; + EditorOption[EditorOption["inlayHints"] = 142] = "inlayHints"; + EditorOption[EditorOption["editorClassName"] = 143] = "editorClassName"; + EditorOption[EditorOption["pixelRatio"] = 144] = "pixelRatio"; + EditorOption[EditorOption["tabFocusMode"] = 145] = "tabFocusMode"; + EditorOption[EditorOption["layoutInfo"] = 146] = "layoutInfo"; + EditorOption[EditorOption["wrappingInfo"] = 147] = "wrappingInfo"; + EditorOption[EditorOption["defaultColorDecorators"] = 148] = "defaultColorDecorators"; + EditorOption[EditorOption["colorDecoratorsActivatedOn"] = 149] = "colorDecoratorsActivatedOn"; + EditorOption[EditorOption["inlineCompletionsAccessibilityVerbose"] = 150] = "inlineCompletionsAccessibilityVerbose"; +})(EditorOption || (EditorOption = {})); +/** + * End of line character preference. + */ +var EndOfLinePreference; +(function (EndOfLinePreference) { + /** + * Use the end of line character identified in the text buffer. + */ + EndOfLinePreference[EndOfLinePreference["TextDefined"] = 0] = "TextDefined"; + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["CRLF"] = 2] = "CRLF"; +})(EndOfLinePreference || (EndOfLinePreference = {})); +/** + * End of line character preference. + */ +var EndOfLineSequence; +(function (EndOfLineSequence) { + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["LF"] = 0] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["CRLF"] = 1] = "CRLF"; +})(EndOfLineSequence || (EndOfLineSequence = {})); +/** + * Vertical Lane in the glyph margin of the editor. + */ +var GlyphMarginLane$1; +(function (GlyphMarginLane) { + GlyphMarginLane[GlyphMarginLane["Left"] = 1] = "Left"; + GlyphMarginLane[GlyphMarginLane["Center"] = 2] = "Center"; + GlyphMarginLane[GlyphMarginLane["Right"] = 3] = "Right"; +})(GlyphMarginLane$1 || (GlyphMarginLane$1 = {})); +var HoverVerbosityAction; +(function (HoverVerbosityAction) { + /** + * Increase the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Increase"] = 0] = "Increase"; + /** + * Decrease the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Decrease"] = 1] = "Decrease"; +})(HoverVerbosityAction || (HoverVerbosityAction = {})); +/** + * Describes what to do with the indentation when pressing Enter. + */ +var IndentAction; +(function (IndentAction) { + /** + * Insert new line and copy the previous line's indentation. + */ + IndentAction[IndentAction["None"] = 0] = "None"; + /** + * Insert new line and indent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Indent"] = 1] = "Indent"; + /** + * Insert two new lines: + * - the first one indented which will hold the cursor + * - the second one at the same indentation level + */ + IndentAction[IndentAction["IndentOutdent"] = 2] = "IndentOutdent"; + /** + * Insert new line and outdent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Outdent"] = 3] = "Outdent"; +})(IndentAction || (IndentAction = {})); +var InjectedTextCursorStops$1; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(InjectedTextCursorStops$1 || (InjectedTextCursorStops$1 = {})); +var InlayHintKind; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(InlayHintKind || (InlayHintKind = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var InlineCompletionTriggerKind; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {})); +var InlineEditTriggerKind; +(function (InlineEditTriggerKind) { + InlineEditTriggerKind[InlineEditTriggerKind["Invoke"] = 0] = "Invoke"; + InlineEditTriggerKind[InlineEditTriggerKind["Automatic"] = 1] = "Automatic"; +})(InlineEditTriggerKind || (InlineEditTriggerKind = {})); +/** + * Virtual Key Codes, the value does not hold any inherent meaning. + * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + * But these are "more general", as they should work across browsers & OS`s. + */ +var KeyCode; +(function (KeyCode) { + KeyCode[KeyCode["DependsOnKbLayout"] = -1] = "DependsOnKbLayout"; + /** + * Placed first to cover the 0 value of the enum. + */ + KeyCode[KeyCode["Unknown"] = 0] = "Unknown"; + KeyCode[KeyCode["Backspace"] = 1] = "Backspace"; + KeyCode[KeyCode["Tab"] = 2] = "Tab"; + KeyCode[KeyCode["Enter"] = 3] = "Enter"; + KeyCode[KeyCode["Shift"] = 4] = "Shift"; + KeyCode[KeyCode["Ctrl"] = 5] = "Ctrl"; + KeyCode[KeyCode["Alt"] = 6] = "Alt"; + KeyCode[KeyCode["PauseBreak"] = 7] = "PauseBreak"; + KeyCode[KeyCode["CapsLock"] = 8] = "CapsLock"; + KeyCode[KeyCode["Escape"] = 9] = "Escape"; + KeyCode[KeyCode["Space"] = 10] = "Space"; + KeyCode[KeyCode["PageUp"] = 11] = "PageUp"; + KeyCode[KeyCode["PageDown"] = 12] = "PageDown"; + KeyCode[KeyCode["End"] = 13] = "End"; + KeyCode[KeyCode["Home"] = 14] = "Home"; + KeyCode[KeyCode["LeftArrow"] = 15] = "LeftArrow"; + KeyCode[KeyCode["UpArrow"] = 16] = "UpArrow"; + KeyCode[KeyCode["RightArrow"] = 17] = "RightArrow"; + KeyCode[KeyCode["DownArrow"] = 18] = "DownArrow"; + KeyCode[KeyCode["Insert"] = 19] = "Insert"; + KeyCode[KeyCode["Delete"] = 20] = "Delete"; + KeyCode[KeyCode["Digit0"] = 21] = "Digit0"; + KeyCode[KeyCode["Digit1"] = 22] = "Digit1"; + KeyCode[KeyCode["Digit2"] = 23] = "Digit2"; + KeyCode[KeyCode["Digit3"] = 24] = "Digit3"; + KeyCode[KeyCode["Digit4"] = 25] = "Digit4"; + KeyCode[KeyCode["Digit5"] = 26] = "Digit5"; + KeyCode[KeyCode["Digit6"] = 27] = "Digit6"; + KeyCode[KeyCode["Digit7"] = 28] = "Digit7"; + KeyCode[KeyCode["Digit8"] = 29] = "Digit8"; + KeyCode[KeyCode["Digit9"] = 30] = "Digit9"; + KeyCode[KeyCode["KeyA"] = 31] = "KeyA"; + KeyCode[KeyCode["KeyB"] = 32] = "KeyB"; + KeyCode[KeyCode["KeyC"] = 33] = "KeyC"; + KeyCode[KeyCode["KeyD"] = 34] = "KeyD"; + KeyCode[KeyCode["KeyE"] = 35] = "KeyE"; + KeyCode[KeyCode["KeyF"] = 36] = "KeyF"; + KeyCode[KeyCode["KeyG"] = 37] = "KeyG"; + KeyCode[KeyCode["KeyH"] = 38] = "KeyH"; + KeyCode[KeyCode["KeyI"] = 39] = "KeyI"; + KeyCode[KeyCode["KeyJ"] = 40] = "KeyJ"; + KeyCode[KeyCode["KeyK"] = 41] = "KeyK"; + KeyCode[KeyCode["KeyL"] = 42] = "KeyL"; + KeyCode[KeyCode["KeyM"] = 43] = "KeyM"; + KeyCode[KeyCode["KeyN"] = 44] = "KeyN"; + KeyCode[KeyCode["KeyO"] = 45] = "KeyO"; + KeyCode[KeyCode["KeyP"] = 46] = "KeyP"; + KeyCode[KeyCode["KeyQ"] = 47] = "KeyQ"; + KeyCode[KeyCode["KeyR"] = 48] = "KeyR"; + KeyCode[KeyCode["KeyS"] = 49] = "KeyS"; + KeyCode[KeyCode["KeyT"] = 50] = "KeyT"; + KeyCode[KeyCode["KeyU"] = 51] = "KeyU"; + KeyCode[KeyCode["KeyV"] = 52] = "KeyV"; + KeyCode[KeyCode["KeyW"] = 53] = "KeyW"; + KeyCode[KeyCode["KeyX"] = 54] = "KeyX"; + KeyCode[KeyCode["KeyY"] = 55] = "KeyY"; + KeyCode[KeyCode["KeyZ"] = 56] = "KeyZ"; + KeyCode[KeyCode["Meta"] = 57] = "Meta"; + KeyCode[KeyCode["ContextMenu"] = 58] = "ContextMenu"; + KeyCode[KeyCode["F1"] = 59] = "F1"; + KeyCode[KeyCode["F2"] = 60] = "F2"; + KeyCode[KeyCode["F3"] = 61] = "F3"; + KeyCode[KeyCode["F4"] = 62] = "F4"; + KeyCode[KeyCode["F5"] = 63] = "F5"; + KeyCode[KeyCode["F6"] = 64] = "F6"; + KeyCode[KeyCode["F7"] = 65] = "F7"; + KeyCode[KeyCode["F8"] = 66] = "F8"; + KeyCode[KeyCode["F9"] = 67] = "F9"; + KeyCode[KeyCode["F10"] = 68] = "F10"; + KeyCode[KeyCode["F11"] = 69] = "F11"; + KeyCode[KeyCode["F12"] = 70] = "F12"; + KeyCode[KeyCode["F13"] = 71] = "F13"; + KeyCode[KeyCode["F14"] = 72] = "F14"; + KeyCode[KeyCode["F15"] = 73] = "F15"; + KeyCode[KeyCode["F16"] = 74] = "F16"; + KeyCode[KeyCode["F17"] = 75] = "F17"; + KeyCode[KeyCode["F18"] = 76] = "F18"; + KeyCode[KeyCode["F19"] = 77] = "F19"; + KeyCode[KeyCode["F20"] = 78] = "F20"; + KeyCode[KeyCode["F21"] = 79] = "F21"; + KeyCode[KeyCode["F22"] = 80] = "F22"; + KeyCode[KeyCode["F23"] = 81] = "F23"; + KeyCode[KeyCode["F24"] = 82] = "F24"; + KeyCode[KeyCode["NumLock"] = 83] = "NumLock"; + KeyCode[KeyCode["ScrollLock"] = 84] = "ScrollLock"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ';:' key + */ + KeyCode[KeyCode["Semicolon"] = 85] = "Semicolon"; + /** + * For any country/region, the '+' key + * For the US standard keyboard, the '=+' key + */ + KeyCode[KeyCode["Equal"] = 86] = "Equal"; + /** + * For any country/region, the ',' key + * For the US standard keyboard, the ',<' key + */ + KeyCode[KeyCode["Comma"] = 87] = "Comma"; + /** + * For any country/region, the '-' key + * For the US standard keyboard, the '-_' key + */ + KeyCode[KeyCode["Minus"] = 88] = "Minus"; + /** + * For any country/region, the '.' key + * For the US standard keyboard, the '.>' key + */ + KeyCode[KeyCode["Period"] = 89] = "Period"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '/?' key + */ + KeyCode[KeyCode["Slash"] = 90] = "Slash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '`~' key + */ + KeyCode[KeyCode["Backquote"] = 91] = "Backquote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '[{' key + */ + KeyCode[KeyCode["BracketLeft"] = 92] = "BracketLeft"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '\|' key + */ + KeyCode[KeyCode["Backslash"] = 93] = "Backslash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ']}' key + */ + KeyCode[KeyCode["BracketRight"] = 94] = "BracketRight"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ''"' key + */ + KeyCode[KeyCode["Quote"] = 95] = "Quote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + */ + KeyCode[KeyCode["OEM_8"] = 96] = "OEM_8"; + /** + * Either the angle bracket key or the backslash key on the RT 102-key keyboard. + */ + KeyCode[KeyCode["IntlBackslash"] = 97] = "IntlBackslash"; + KeyCode[KeyCode["Numpad0"] = 98] = "Numpad0"; + KeyCode[KeyCode["Numpad1"] = 99] = "Numpad1"; + KeyCode[KeyCode["Numpad2"] = 100] = "Numpad2"; + KeyCode[KeyCode["Numpad3"] = 101] = "Numpad3"; + KeyCode[KeyCode["Numpad4"] = 102] = "Numpad4"; + KeyCode[KeyCode["Numpad5"] = 103] = "Numpad5"; + KeyCode[KeyCode["Numpad6"] = 104] = "Numpad6"; + KeyCode[KeyCode["Numpad7"] = 105] = "Numpad7"; + KeyCode[KeyCode["Numpad8"] = 106] = "Numpad8"; + KeyCode[KeyCode["Numpad9"] = 107] = "Numpad9"; + KeyCode[KeyCode["NumpadMultiply"] = 108] = "NumpadMultiply"; + KeyCode[KeyCode["NumpadAdd"] = 109] = "NumpadAdd"; + KeyCode[KeyCode["NUMPAD_SEPARATOR"] = 110] = "NUMPAD_SEPARATOR"; + KeyCode[KeyCode["NumpadSubtract"] = 111] = "NumpadSubtract"; + KeyCode[KeyCode["NumpadDecimal"] = 112] = "NumpadDecimal"; + KeyCode[KeyCode["NumpadDivide"] = 113] = "NumpadDivide"; + /** + * Cover all key codes when IME is processing input. + */ + KeyCode[KeyCode["KEY_IN_COMPOSITION"] = 114] = "KEY_IN_COMPOSITION"; + KeyCode[KeyCode["ABNT_C1"] = 115] = "ABNT_C1"; + KeyCode[KeyCode["ABNT_C2"] = 116] = "ABNT_C2"; + KeyCode[KeyCode["AudioVolumeMute"] = 117] = "AudioVolumeMute"; + KeyCode[KeyCode["AudioVolumeUp"] = 118] = "AudioVolumeUp"; + KeyCode[KeyCode["AudioVolumeDown"] = 119] = "AudioVolumeDown"; + KeyCode[KeyCode["BrowserSearch"] = 120] = "BrowserSearch"; + KeyCode[KeyCode["BrowserHome"] = 121] = "BrowserHome"; + KeyCode[KeyCode["BrowserBack"] = 122] = "BrowserBack"; + KeyCode[KeyCode["BrowserForward"] = 123] = "BrowserForward"; + KeyCode[KeyCode["MediaTrackNext"] = 124] = "MediaTrackNext"; + KeyCode[KeyCode["MediaTrackPrevious"] = 125] = "MediaTrackPrevious"; + KeyCode[KeyCode["MediaStop"] = 126] = "MediaStop"; + KeyCode[KeyCode["MediaPlayPause"] = 127] = "MediaPlayPause"; + KeyCode[KeyCode["LaunchMediaPlayer"] = 128] = "LaunchMediaPlayer"; + KeyCode[KeyCode["LaunchMail"] = 129] = "LaunchMail"; + KeyCode[KeyCode["LaunchApp2"] = 130] = "LaunchApp2"; + /** + * VK_CLEAR, 0x0C, CLEAR key + */ + KeyCode[KeyCode["Clear"] = 131] = "Clear"; + /** + * Placed last to cover the length of the enum. + * Please do not depend on this value! + */ + KeyCode[KeyCode["MAX_VALUE"] = 132] = "MAX_VALUE"; +})(KeyCode || (KeyCode = {})); +var MarkerSeverity; +(function (MarkerSeverity) { + MarkerSeverity[MarkerSeverity["Hint"] = 1] = "Hint"; + MarkerSeverity[MarkerSeverity["Info"] = 2] = "Info"; + MarkerSeverity[MarkerSeverity["Warning"] = 4] = "Warning"; + MarkerSeverity[MarkerSeverity["Error"] = 8] = "Error"; +})(MarkerSeverity || (MarkerSeverity = {})); +var MarkerTag; +(function (MarkerTag) { + MarkerTag[MarkerTag["Unnecessary"] = 1] = "Unnecessary"; + MarkerTag[MarkerTag["Deprecated"] = 2] = "Deprecated"; +})(MarkerTag || (MarkerTag = {})); +/** + * Position in the minimap to render the decoration. + */ +var MinimapPosition; +(function (MinimapPosition) { + MinimapPosition[MinimapPosition["Inline"] = 1] = "Inline"; + MinimapPosition[MinimapPosition["Gutter"] = 2] = "Gutter"; +})(MinimapPosition || (MinimapPosition = {})); +/** + * Section header style. + */ +var MinimapSectionHeaderStyle; +(function (MinimapSectionHeaderStyle) { + MinimapSectionHeaderStyle[MinimapSectionHeaderStyle["Normal"] = 1] = "Normal"; + MinimapSectionHeaderStyle[MinimapSectionHeaderStyle["Underlined"] = 2] = "Underlined"; +})(MinimapSectionHeaderStyle || (MinimapSectionHeaderStyle = {})); +/** + * Type of hit element with the mouse in the editor. + */ +var MouseTargetType; +(function (MouseTargetType) { + /** + * Mouse is on top of an unknown element. + */ + MouseTargetType[MouseTargetType["UNKNOWN"] = 0] = "UNKNOWN"; + /** + * Mouse is on top of the textarea used for input. + */ + MouseTargetType[MouseTargetType["TEXTAREA"] = 1] = "TEXTAREA"; + /** + * Mouse is on top of the glyph margin + */ + MouseTargetType[MouseTargetType["GUTTER_GLYPH_MARGIN"] = 2] = "GUTTER_GLYPH_MARGIN"; + /** + * Mouse is on top of the line numbers + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_NUMBERS"] = 3] = "GUTTER_LINE_NUMBERS"; + /** + * Mouse is on top of the line decorations + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_DECORATIONS"] = 4] = "GUTTER_LINE_DECORATIONS"; + /** + * Mouse is on top of the whitespace left in the gutter by a view zone. + */ + MouseTargetType[MouseTargetType["GUTTER_VIEW_ZONE"] = 5] = "GUTTER_VIEW_ZONE"; + /** + * Mouse is on top of text in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_TEXT"] = 6] = "CONTENT_TEXT"; + /** + * Mouse is on top of empty space in the content (e.g. after line text or below last line) + */ + MouseTargetType[MouseTargetType["CONTENT_EMPTY"] = 7] = "CONTENT_EMPTY"; + /** + * Mouse is on top of a view zone in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_VIEW_ZONE"] = 8] = "CONTENT_VIEW_ZONE"; + /** + * Mouse is on top of a content widget. + */ + MouseTargetType[MouseTargetType["CONTENT_WIDGET"] = 9] = "CONTENT_WIDGET"; + /** + * Mouse is on top of the decorations overview ruler. + */ + MouseTargetType[MouseTargetType["OVERVIEW_RULER"] = 10] = "OVERVIEW_RULER"; + /** + * Mouse is on top of a scrollbar. + */ + MouseTargetType[MouseTargetType["SCROLLBAR"] = 11] = "SCROLLBAR"; + /** + * Mouse is on top of an overlay widget. + */ + MouseTargetType[MouseTargetType["OVERLAY_WIDGET"] = 12] = "OVERLAY_WIDGET"; + /** + * Mouse is outside of the editor. + */ + MouseTargetType[MouseTargetType["OUTSIDE_EDITOR"] = 13] = "OUTSIDE_EDITOR"; +})(MouseTargetType || (MouseTargetType = {})); +var NewSymbolNameTag; +(function (NewSymbolNameTag) { + NewSymbolNameTag[NewSymbolNameTag["AIGenerated"] = 1] = "AIGenerated"; +})(NewSymbolNameTag || (NewSymbolNameTag = {})); +var NewSymbolNameTriggerKind; +(function (NewSymbolNameTriggerKind) { + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Invoke"] = 0] = "Invoke"; + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Automatic"] = 1] = "Automatic"; +})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {})); +/** + * A positioning preference for rendering overlay widgets. + */ +var OverlayWidgetPositionPreference; +(function (OverlayWidgetPositionPreference) { + /** + * Position the overlay widget in the top right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_RIGHT_CORNER"] = 0] = "TOP_RIGHT_CORNER"; + /** + * Position the overlay widget in the bottom right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["BOTTOM_RIGHT_CORNER"] = 1] = "BOTTOM_RIGHT_CORNER"; + /** + * Position the overlay widget in the top center + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_CENTER"] = 2] = "TOP_CENTER"; +})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {})); +/** + * Vertical Lane in the overview ruler of the editor. + */ +var OverviewRulerLane$1; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(OverviewRulerLane$1 || (OverviewRulerLane$1 = {})); +/** + * How a partial acceptance was triggered. + */ +var PartialAcceptTriggerKind; +(function (PartialAcceptTriggerKind) { + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Word"] = 0] = "Word"; + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Line"] = 1] = "Line"; + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Suggest"] = 2] = "Suggest"; +})(PartialAcceptTriggerKind || (PartialAcceptTriggerKind = {})); +var PositionAffinity; +(function (PositionAffinity) { + /** + * Prefers the left most position. + */ + PositionAffinity[PositionAffinity["Left"] = 0] = "Left"; + /** + * Prefers the right most position. + */ + PositionAffinity[PositionAffinity["Right"] = 1] = "Right"; + /** + * No preference. + */ + PositionAffinity[PositionAffinity["None"] = 2] = "None"; + /** + * If the given position is on injected text, prefers the position left of it. + */ + PositionAffinity[PositionAffinity["LeftOfInjectedText"] = 3] = "LeftOfInjectedText"; + /** + * If the given position is on injected text, prefers the position right of it. + */ + PositionAffinity[PositionAffinity["RightOfInjectedText"] = 4] = "RightOfInjectedText"; +})(PositionAffinity || (PositionAffinity = {})); +var RenderLineNumbersType; +(function (RenderLineNumbersType) { + RenderLineNumbersType[RenderLineNumbersType["Off"] = 0] = "Off"; + RenderLineNumbersType[RenderLineNumbersType["On"] = 1] = "On"; + RenderLineNumbersType[RenderLineNumbersType["Relative"] = 2] = "Relative"; + RenderLineNumbersType[RenderLineNumbersType["Interval"] = 3] = "Interval"; + RenderLineNumbersType[RenderLineNumbersType["Custom"] = 4] = "Custom"; +})(RenderLineNumbersType || (RenderLineNumbersType = {})); +var RenderMinimap; +(function (RenderMinimap) { + RenderMinimap[RenderMinimap["None"] = 0] = "None"; + RenderMinimap[RenderMinimap["Text"] = 1] = "Text"; + RenderMinimap[RenderMinimap["Blocks"] = 2] = "Blocks"; +})(RenderMinimap || (RenderMinimap = {})); +var ScrollType; +(function (ScrollType) { + ScrollType[ScrollType["Smooth"] = 0] = "Smooth"; + ScrollType[ScrollType["Immediate"] = 1] = "Immediate"; +})(ScrollType || (ScrollType = {})); +var ScrollbarVisibility; +(function (ScrollbarVisibility) { + ScrollbarVisibility[ScrollbarVisibility["Auto"] = 1] = "Auto"; + ScrollbarVisibility[ScrollbarVisibility["Hidden"] = 2] = "Hidden"; + ScrollbarVisibility[ScrollbarVisibility["Visible"] = 3] = "Visible"; +})(ScrollbarVisibility || (ScrollbarVisibility = {})); +/** + * The direction of a selection. + */ +var SelectionDirection; +(function (SelectionDirection) { + /** + * The selection starts above where it ends. + */ + SelectionDirection[SelectionDirection["LTR"] = 0] = "LTR"; + /** + * The selection starts below where it ends. + */ + SelectionDirection[SelectionDirection["RTL"] = 1] = "RTL"; +})(SelectionDirection || (SelectionDirection = {})); +var ShowLightbulbIconMode; +(function (ShowLightbulbIconMode) { + ShowLightbulbIconMode["Off"] = "off"; + ShowLightbulbIconMode["OnCode"] = "onCode"; + ShowLightbulbIconMode["On"] = "on"; +})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {})); +var SignatureHelpTriggerKind; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {})); +/** + * A symbol kind. + */ +var SymbolKind; +(function (SymbolKind) { + SymbolKind[SymbolKind["File"] = 0] = "File"; + SymbolKind[SymbolKind["Module"] = 1] = "Module"; + SymbolKind[SymbolKind["Namespace"] = 2] = "Namespace"; + SymbolKind[SymbolKind["Package"] = 3] = "Package"; + SymbolKind[SymbolKind["Class"] = 4] = "Class"; + SymbolKind[SymbolKind["Method"] = 5] = "Method"; + SymbolKind[SymbolKind["Property"] = 6] = "Property"; + SymbolKind[SymbolKind["Field"] = 7] = "Field"; + SymbolKind[SymbolKind["Constructor"] = 8] = "Constructor"; + SymbolKind[SymbolKind["Enum"] = 9] = "Enum"; + SymbolKind[SymbolKind["Interface"] = 10] = "Interface"; + SymbolKind[SymbolKind["Function"] = 11] = "Function"; + SymbolKind[SymbolKind["Variable"] = 12] = "Variable"; + SymbolKind[SymbolKind["Constant"] = 13] = "Constant"; + SymbolKind[SymbolKind["String"] = 14] = "String"; + SymbolKind[SymbolKind["Number"] = 15] = "Number"; + SymbolKind[SymbolKind["Boolean"] = 16] = "Boolean"; + SymbolKind[SymbolKind["Array"] = 17] = "Array"; + SymbolKind[SymbolKind["Object"] = 18] = "Object"; + SymbolKind[SymbolKind["Key"] = 19] = "Key"; + SymbolKind[SymbolKind["Null"] = 20] = "Null"; + SymbolKind[SymbolKind["EnumMember"] = 21] = "EnumMember"; + SymbolKind[SymbolKind["Struct"] = 22] = "Struct"; + SymbolKind[SymbolKind["Event"] = 23] = "Event"; + SymbolKind[SymbolKind["Operator"] = 24] = "Operator"; + SymbolKind[SymbolKind["TypeParameter"] = 25] = "TypeParameter"; +})(SymbolKind || (SymbolKind = {})); +var SymbolTag; +(function (SymbolTag) { + SymbolTag[SymbolTag["Deprecated"] = 1] = "Deprecated"; +})(SymbolTag || (SymbolTag = {})); +/** + * The kind of animation in which the editor's cursor should be rendered. + */ +var TextEditorCursorBlinkingStyle; +(function (TextEditorCursorBlinkingStyle) { + /** + * Hidden + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Hidden"] = 0] = "Hidden"; + /** + * Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Blink"] = 1] = "Blink"; + /** + * Blinking with smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Smooth"] = 2] = "Smooth"; + /** + * Blinking with prolonged filled state and smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Phase"] = 3] = "Phase"; + /** + * Expand collapse animation on the y axis + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Expand"] = 4] = "Expand"; + /** + * No-Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Solid"] = 5] = "Solid"; +})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {})); +/** + * The style in which the editor's cursor should be rendered. + */ +var TextEditorCursorStyle; +(function (TextEditorCursorStyle) { + /** + * As a vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Line"] = 1] = "Line"; + /** + * As a block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Block"] = 2] = "Block"; + /** + * As a horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Underline"] = 3] = "Underline"; + /** + * As a thin vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["LineThin"] = 4] = "LineThin"; + /** + * As an outlined block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["BlockOutline"] = 5] = "BlockOutline"; + /** + * As a thin horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["UnderlineThin"] = 6] = "UnderlineThin"; +})(TextEditorCursorStyle || (TextEditorCursorStyle = {})); +/** + * Describes the behavior of decorations when typing/editing near their edges. + * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior` + */ +var TrackedRangeStickiness; +(function (TrackedRangeStickiness) { + TrackedRangeStickiness[TrackedRangeStickiness["AlwaysGrowsWhenTypingAtEdges"] = 0] = "AlwaysGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["NeverGrowsWhenTypingAtEdges"] = 1] = "NeverGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingBefore"] = 2] = "GrowsOnlyWhenTypingBefore"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingAfter"] = 3] = "GrowsOnlyWhenTypingAfter"; +})(TrackedRangeStickiness || (TrackedRangeStickiness = {})); +/** + * Describes how to indent wrapped lines. + */ +var WrappingIndent; +(function (WrappingIndent) { + /** + * No indentation => wrapped lines begin at column 1. + */ + WrappingIndent[WrappingIndent["None"] = 0] = "None"; + /** + * Same => wrapped lines get the same indentation as the parent. + */ + WrappingIndent[WrappingIndent["Same"] = 1] = "Same"; + /** + * Indent => wrapped lines get +1 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["Indent"] = 2] = "Indent"; + /** + * DeepIndent => wrapped lines get +2 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["DeepIndent"] = 3] = "DeepIndent"; +})(WrappingIndent || (WrappingIndent = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class KeyMod { + static { this.CtrlCmd = 2048 /* ConstKeyMod.CtrlCmd */; } + static { this.Shift = 1024 /* ConstKeyMod.Shift */; } + static { this.Alt = 512 /* ConstKeyMod.Alt */; } + static { this.WinCtrl = 256 /* ConstKeyMod.WinCtrl */; } + static chord(firstPart, secondPart) { + return KeyChord(firstPart, secondPart); + } +} +function createMonacoBaseAPI() { + return { + editor: undefined, // undefined override expected here + languages: undefined, // undefined override expected here + CancellationTokenSource: CancellationTokenSource, + Emitter: Emitter, + KeyCode: KeyCode, + KeyMod: KeyMod, + Position: Position, + Range: Range, + Selection: Selection, + SelectionDirection: SelectionDirection, + MarkerSeverity: MarkerSeverity, + MarkerTag: MarkerTag, + Uri: URI, + Token: Token + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var _b; +class LinkedMap { + constructor() { + this[_b] = 'LinkedMap'; + this._map = new Map(); + this._head = undefined; + this._tail = undefined; + this._size = 0; + this._state = 0; + } + clear() { + this._map.clear(); + this._head = undefined; + this._tail = undefined; + this._size = 0; + this._state++; + } + isEmpty() { + return !this._head && !this._tail; + } + get size() { + return this._size; + } + get first() { + return this._head?.value; + } + get last() { + return this._tail?.value; + } + has(key) { + return this._map.has(key); + } + get(key, touch = 0 /* Touch.None */) { + const item = this._map.get(key); + if (!item) { + return undefined; + } + if (touch !== 0 /* Touch.None */) { + this.touch(item, touch); + } + return item.value; + } + set(key, value, touch = 0 /* Touch.None */) { + let item = this._map.get(key); + if (item) { + item.value = value; + if (touch !== 0 /* Touch.None */) { + this.touch(item, touch); + } + } + else { + item = { key, value, next: undefined, previous: undefined }; + switch (touch) { + case 0 /* Touch.None */: + this.addItemLast(item); + break; + case 1 /* Touch.AsOld */: + this.addItemFirst(item); + break; + case 2 /* Touch.AsNew */: + this.addItemLast(item); + break; + default: + this.addItemLast(item); + break; + } + this._map.set(key, item); + this._size++; + } + return this; + } + delete(key) { + return !!this.remove(key); + } + remove(key) { + const item = this._map.get(key); + if (!item) { + return undefined; + } + this._map.delete(key); + this.removeItem(item); + this._size--; + return item.value; + } + shift() { + if (!this._head && !this._tail) { + return undefined; + } + if (!this._head || !this._tail) { + throw new Error('Invalid list'); + } + const item = this._head; + this._map.delete(item.key); + this.removeItem(item); + this._size--; + return item.value; + } + forEach(callbackfn, thisArg) { + const state = this._state; + let current = this._head; + while (current) { + if (thisArg) { + callbackfn.bind(thisArg)(current.value, current.key, this); + } + else { + callbackfn(current.value, current.key, this); + } + if (this._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + current = current.next; + } + } + keys() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: current.key, done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + values() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: current.value, done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + entries() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: [current.key, current.value], done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + [(_b = Symbol.toStringTag, Symbol.iterator)]() { + return this.entries(); + } + trimOld(newSize) { + if (newSize >= this.size) { + return; + } + if (newSize === 0) { + this.clear(); + return; + } + let current = this._head; + let currentSize = this.size; + while (current && currentSize > newSize) { + this._map.delete(current.key); + current = current.next; + currentSize--; + } + this._head = current; + this._size = currentSize; + if (current) { + current.previous = undefined; + } + this._state++; + } + trimNew(newSize) { + if (newSize >= this.size) { + return; + } + if (newSize === 0) { + this.clear(); + return; + } + let current = this._tail; + let currentSize = this.size; + while (current && currentSize > newSize) { + this._map.delete(current.key); + current = current.previous; + currentSize--; + } + this._tail = current; + this._size = currentSize; + if (current) { + current.next = undefined; + } + this._state++; + } + addItemFirst(item) { + // First time Insert + if (!this._head && !this._tail) { + this._tail = item; + } + else if (!this._head) { + throw new Error('Invalid list'); + } + else { + item.next = this._head; + this._head.previous = item; + } + this._head = item; + this._state++; + } + addItemLast(item) { + // First time Insert + if (!this._head && !this._tail) { + this._head = item; + } + else if (!this._tail) { + throw new Error('Invalid list'); + } + else { + item.previous = this._tail; + this._tail.next = item; + } + this._tail = item; + this._state++; + } + removeItem(item) { + if (item === this._head && item === this._tail) { + this._head = undefined; + this._tail = undefined; + } + else if (item === this._head) { + // This can only happen if size === 1 which is handled + // by the case above. + if (!item.next) { + throw new Error('Invalid list'); + } + item.next.previous = undefined; + this._head = item.next; + } + else if (item === this._tail) { + // This can only happen if size === 1 which is handled + // by the case above. + if (!item.previous) { + throw new Error('Invalid list'); + } + item.previous.next = undefined; + this._tail = item.previous; + } + else { + const next = item.next; + const previous = item.previous; + if (!next || !previous) { + throw new Error('Invalid list'); + } + next.previous = previous; + previous.next = next; + } + item.next = undefined; + item.previous = undefined; + this._state++; + } + touch(item, touch) { + if (!this._head || !this._tail) { + throw new Error('Invalid list'); + } + if ((touch !== 1 /* Touch.AsOld */ && touch !== 2 /* Touch.AsNew */)) { + return; + } + if (touch === 1 /* Touch.AsOld */) { + if (item === this._head) { + return; + } + const next = item.next; + const previous = item.previous; + // Unlink the item + if (item === this._tail) { + // previous must be defined since item was not head but is tail + // So there are more than on item in the map + previous.next = undefined; + this._tail = previous; + } + else { + // Both next and previous are not undefined since item was neither head nor tail. + next.previous = previous; + previous.next = next; + } + // Insert the node at head + item.previous = undefined; + item.next = this._head; + this._head.previous = item; + this._head = item; + this._state++; + } + else if (touch === 2 /* Touch.AsNew */) { + if (item === this._tail) { + return; + } + const next = item.next; + const previous = item.previous; + // Unlink the item. + if (item === this._head) { + // next must be defined since item was not tail but is head + // So there are more than on item in the map + next.previous = undefined; + this._head = next; + } + else { + // Both next and previous are not undefined since item was neither head nor tail. + next.previous = previous; + previous.next = next; + } + item.next = undefined; + item.previous = this._tail; + this._tail.next = item; + this._tail = item; + this._state++; + } + } + toJSON() { + const data = []; + this.forEach((value, key) => { + data.push([key, value]); + }); + return data; + } + fromJSON(data) { + this.clear(); + for (const [key, value] of data) { + this.set(key, value); + } + } +} +class Cache extends LinkedMap { + constructor(limit, ratio = 1) { + super(); + this._limit = limit; + this._ratio = Math.min(Math.max(0, ratio), 1); + } + get limit() { + return this._limit; + } + set limit(limit) { + this._limit = limit; + this.checkTrim(); + } + get(key, touch = 2 /* Touch.AsNew */) { + return super.get(key, touch); + } + peek(key) { + return super.get(key, 0 /* Touch.None */); + } + set(key, value) { + super.set(key, value, 2 /* Touch.AsNew */); + return this; + } + checkTrim() { + if (this.size > this._limit) { + this.trim(Math.round(this._limit * this._ratio)); + } + } +} +class LRUCache extends Cache { + constructor(limit, ratio = 1) { + super(limit, ratio); + } + trim(newSize) { + this.trimOld(newSize); + } + set(key, value) { + super.set(key, value); + this.checkTrim(); + return this; + } +} +class SetMap { + constructor() { + this.map = new Map(); + } + add(key, value) { + let values = this.map.get(key); + if (!values) { + values = new Set(); + this.map.set(key, values); + } + values.add(value); + } + delete(key, value) { + const values = this.map.get(key); + if (!values) { + return; + } + values.delete(value); + if (values.size === 0) { + this.map.delete(key); + } + } + forEach(key, fn) { + const values = this.map.get(key); + if (!values) { + return; + } + values.forEach(fn); + } + get(key) { + const values = this.map.get(key); + if (!values) { + return new Set(); + } + return values; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +new LRUCache(10); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Vertical Lane in the overview ruler of the editor. + */ +var OverviewRulerLane; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(OverviewRulerLane || (OverviewRulerLane = {})); +/** + * Vertical Lane in the glyph margin of the editor. + */ +var GlyphMarginLane; +(function (GlyphMarginLane) { + GlyphMarginLane[GlyphMarginLane["Left"] = 1] = "Left"; + GlyphMarginLane[GlyphMarginLane["Center"] = 2] = "Center"; + GlyphMarginLane[GlyphMarginLane["Right"] = 3] = "Right"; +})(GlyphMarginLane || (GlyphMarginLane = {})); +var InjectedTextCursorStops; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(InjectedTextCursorStops || (InjectedTextCursorStops = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex === 0) { + // Match starts at start of string + return true; + } + const charBefore = text.charCodeAt(matchStartIndex - 1); + if (wordSeparators.get(charBefore) !== 0 /* WordCharacterClass.Regular */) { + // The character before the match is a word separator + return true; + } + if (charBefore === 13 /* CharCode.CarriageReturn */ || charBefore === 10 /* CharCode.LineFeed */) { + // The character before the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const firstCharInMatch = text.charCodeAt(matchStartIndex); + if (wordSeparators.get(firstCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The first character inside the match is a word separator + return true; + } + } + return false; +} +function rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex + matchLength === textLength) { + // Match ends at end of string + return true; + } + const charAfter = text.charCodeAt(matchStartIndex + matchLength); + if (wordSeparators.get(charAfter) !== 0 /* WordCharacterClass.Regular */) { + // The character after the match is a word separator + return true; + } + if (charAfter === 13 /* CharCode.CarriageReturn */ || charAfter === 10 /* CharCode.LineFeed */) { + // The character after the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1); + if (wordSeparators.get(lastCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The last character in the match is a word separator + return true; + } + } + return false; +} +function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) { + return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) + && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)); +} +class Searcher { + constructor(wordSeparators, searchRegex) { + this._wordSeparators = wordSeparators; + this._searchRegex = searchRegex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + reset(lastIndex) { + this._searchRegex.lastIndex = lastIndex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + next(text) { + const textLength = text.length; + let m; + do { + if (this._prevMatchStartIndex + this._prevMatchLength === textLength) { + // Reached the end of the line + return null; + } + m = this._searchRegex.exec(text); + if (!m) { + return null; + } + const matchStartIndex = m.index; + const matchLength = m[0].length; + if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) { + if (matchLength === 0) { + // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here + // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise + if (getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) { + this._searchRegex.lastIndex += 2; + } + else { + this._searchRegex.lastIndex += 1; + } + continue; + } + // Exit early if the regex matches the same range twice + return null; + } + this._prevMatchStartIndex = matchStartIndex; + this._prevMatchLength = matchLength; + if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) { + return m; + } + } while (m); + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function assertNever(value, message = 'Unreachable') { + throw new Error(message); +} +/** + * condition must be side-effect free! + */ +function assertFn(condition) { + if (!condition()) { + // eslint-disable-next-line no-debugger + debugger; + // Reevaluate `condition` again to make debugging easier + condition(); + onUnexpectedError(new BugIndicatingError('Assertion Failed')); + } +} +function checkAdjacentItems(items, predicate) { + let i = 0; + while (i < items.length - 1) { + const a = items[i]; + const b = items[i + 1]; + if (!predicate(a, b)) { + return false; + } + i++; + } + return true; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class UnicodeTextModelHighlighter { + static computeUnicodeHighlights(model, options, range) { + const startLine = range ? range.startLineNumber : 1; + const endLine = range ? range.endLineNumber : model.getLineCount(); + const codePointHighlighter = new CodePointHighlighter(options); + const candidates = codePointHighlighter.getCandidateCodePoints(); + let regex; + if (candidates === 'allNonBasicAscii') { + regex = new RegExp('[^\\t\\n\\r\\x20-\\x7E]', 'g'); + } + else { + regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, 'g'); + } + const searcher = new Searcher(null, regex); + const ranges = []; + let hasMore = false; + let m; + let ambiguousCharacterCount = 0; + let invisibleCharacterCount = 0; + let nonBasicAsciiCharacterCount = 0; + forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber <= lineCount; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + const lineLength = lineContent.length; + // Reset regex to search from the beginning + searcher.reset(0); + do { + m = searcher.next(lineContent); + if (m) { + let startIndex = m.index; + let endIndex = m.index + m[0].length; + // Extend range to entire code point + if (startIndex > 0) { + const charCodeBefore = lineContent.charCodeAt(startIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + startIndex--; + } + } + if (endIndex + 1 < lineLength) { + const charCodeBefore = lineContent.charCodeAt(endIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + endIndex++; + } + } + const str = lineContent.substring(startIndex, endIndex); + let word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0); + if (word && word.endColumn <= startIndex + 1) { + // The word does not include the problematic character, ignore the word + word = null; + } + const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null); + if (highlightReason !== 0 /* SimpleHighlightReason.None */) { + if (highlightReason === 3 /* SimpleHighlightReason.Ambiguous */) { + ambiguousCharacterCount++; + } + else if (highlightReason === 2 /* SimpleHighlightReason.Invisible */) { + invisibleCharacterCount++; + } + else if (highlightReason === 1 /* SimpleHighlightReason.NonBasicASCII */) { + nonBasicAsciiCharacterCount++; + } + else { + assertNever(); + } + const MAX_RESULT_LENGTH = 1000; + if (ranges.length >= MAX_RESULT_LENGTH) { + hasMore = true; + break forLoop; + } + ranges.push(new Range(lineNumber, startIndex + 1, lineNumber, endIndex + 1)); + } + } + } while (m); + } + return { + ranges, + hasMore, + ambiguousCharacterCount, + invisibleCharacterCount, + nonBasicAsciiCharacterCount + }; + } + static computeUnicodeHighlightReason(char, options) { + const codePointHighlighter = new CodePointHighlighter(options); + const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null); + switch (reason) { + case 0 /* SimpleHighlightReason.None */: + return null; + case 2 /* SimpleHighlightReason.Invisible */: + return { kind: 1 /* UnicodeHighlighterReasonKind.Invisible */ }; + case 3 /* SimpleHighlightReason.Ambiguous */: { + const codePoint = char.codePointAt(0); + const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint); + const notAmbiguousInLocales = AmbiguousCharacters.getLocales().filter((l) => !AmbiguousCharacters.getInstance(new Set([...options.allowedLocales, l])).isAmbiguous(codePoint)); + return { kind: 0 /* UnicodeHighlighterReasonKind.Ambiguous */, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales }; + } + case 1 /* SimpleHighlightReason.NonBasicASCII */: + return { kind: 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */ }; + } + } +} +function buildRegExpCharClassExpr(codePoints, flags) { + const src = `[${escapeRegExpCharacters(codePoints.map((i) => String.fromCodePoint(i)).join(''))}]`; + return src; +} +class CodePointHighlighter { + constructor(options) { + this.options = options; + this.allowedCodePoints = new Set(options.allowedCodePoints); + this.ambiguousCharacters = AmbiguousCharacters.getInstance(new Set(options.allowedLocales)); + } + getCandidateCodePoints() { + if (this.options.nonBasicASCII) { + return 'allNonBasicAscii'; + } + const set = new Set(); + if (this.options.invisibleCharacters) { + for (const cp of InvisibleCharacters.codePoints) { + if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) { + set.add(cp); + } + } + } + if (this.options.ambiguousCharacters) { + for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) { + set.add(cp); + } + } + for (const cp of this.allowedCodePoints) { + set.delete(cp); + } + return set; + } + shouldHighlightNonBasicASCII(character, wordContext) { + const codePoint = character.codePointAt(0); + if (this.allowedCodePoints.has(codePoint)) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.nonBasicASCII) { + return 1 /* SimpleHighlightReason.NonBasicASCII */; + } + let hasBasicASCIICharacters = false; + let hasNonConfusableNonBasicAsciiCharacter = false; + if (wordContext) { + for (const char of wordContext) { + const codePoint = char.codePointAt(0); + const isBasicASCII$1 = isBasicASCII(char); + hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII$1; + if (!isBasicASCII$1 && + !this.ambiguousCharacters.isAmbiguous(codePoint) && + !InvisibleCharacters.isInvisibleCharacter(codePoint)) { + hasNonConfusableNonBasicAsciiCharacter = true; + } + } + } + if ( + /* Don't allow mixing weird looking characters with ASCII */ !hasBasicASCIICharacters && + /* Is there an obviously weird looking character? */ hasNonConfusableNonBasicAsciiCharacter) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.invisibleCharacters) { + // TODO check for emojis + if (!isAllowedInvisibleCharacter(character) && InvisibleCharacters.isInvisibleCharacter(codePoint)) { + return 2 /* SimpleHighlightReason.Invisible */; + } + } + if (this.options.ambiguousCharacters) { + if (this.ambiguousCharacters.isAmbiguous(codePoint)) { + return 3 /* SimpleHighlightReason.Ambiguous */; + } + } + return 0 /* SimpleHighlightReason.None */; + } +} +function isAllowedInvisibleCharacter(character) { + return character === ' ' || character === '\n' || character === '\t'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LinesDiff { + constructor(changes, + /** + * Sorted by original line ranges. + * The original line ranges and the modified line ranges must be disjoint (but can be touching). + */ + moves, + /** + * Indicates if the time out was reached. + * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time. + */ + hitTimeout) { + this.changes = changes; + this.moves = moves; + this.hitTimeout = hitTimeout; + } +} +class MovedText { + constructor(lineRangeMapping, changes) { + this.lineRangeMapping = lineRangeMapping; + this.changes = changes; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range of offsets (0-based). +*/ +class OffsetRange { + static addRange(range, sortedRanges) { + let i = 0; + while (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) { + i++; + } + let j = i; + while (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) { + j++; + } + if (i === j) { + sortedRanges.splice(i, 0, range); + } + else { + const start = Math.min(range.start, sortedRanges[i].start); + const end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive); + sortedRanges.splice(i, j - i, new OffsetRange(start, end)); + } + } + static tryCreate(start, endExclusive) { + if (start > endExclusive) { + return undefined; + } + return new OffsetRange(start, endExclusive); + } + static ofLength(length) { + return new OffsetRange(0, length); + } + static ofStartAndLength(start, length) { + return new OffsetRange(start, start + length); + } + constructor(start, endExclusive) { + this.start = start; + this.endExclusive = endExclusive; + if (start > endExclusive) { + throw new BugIndicatingError(`Invalid range: ${this.toString()}`); + } + } + get isEmpty() { + return this.start === this.endExclusive; + } + delta(offset) { + return new OffsetRange(this.start + offset, this.endExclusive + offset); + } + deltaStart(offset) { + return new OffsetRange(this.start + offset, this.endExclusive); + } + deltaEnd(offset) { + return new OffsetRange(this.start, this.endExclusive + offset); + } + get length() { + return this.endExclusive - this.start; + } + toString() { + return `[${this.start}, ${this.endExclusive})`; + } + contains(offset) { + return this.start <= offset && offset < this.endExclusive; + } + /** + * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n) + * The joined range is the smallest range that contains both ranges. + */ + join(other) { + return new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive)); + } + /** + * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n) + * + * The resulting range is empty if the ranges do not intersect, but touch. + * If the ranges don't even touch, the result is undefined. + */ + intersect(other) { + const start = Math.max(this.start, other.start); + const end = Math.min(this.endExclusive, other.endExclusive); + if (start <= end) { + return new OffsetRange(start, end); + } + return undefined; + } + intersects(other) { + const start = Math.max(this.start, other.start); + const end = Math.min(this.endExclusive, other.endExclusive); + return start < end; + } + isBefore(other) { + return this.endExclusive <= other.start; + } + isAfter(other) { + return this.start >= other.endExclusive; + } + slice(arr) { + return arr.slice(this.start, this.endExclusive); + } + substring(str) { + return str.substring(this.start, this.endExclusive); + } + /** + * Returns the given value if it is contained in this instance, otherwise the closest value that is contained. + * The range must not be empty. + */ + clip(value) { + if (this.isEmpty) { + throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`); + } + return Math.max(this.start, Math.min(this.endExclusive - 1, value)); + } + /** + * Returns `r := value + k * length` such that `r` is contained in this range. + * The range must not be empty. + * + * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`. + */ + clipCyclic(value) { + if (this.isEmpty) { + throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`); + } + if (value < this.start) { + return this.endExclusive - ((this.start - value) % this.length); + } + if (value >= this.endExclusive) { + return this.start + ((value - this.start) % this.length); + } + return value; + } + forEach(f) { + for (let i = this.start; i < this.endExclusive; i++) { + f(i); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Finds the last item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * + * @returns `undefined` if no item matches, otherwise the last item that matches the predicate. + */ +function findLastMonotonous(array, predicate) { + const idx = findLastIdxMonotonous(array, predicate); + return idx === -1 ? undefined : array[idx]; +} +/** + * Finds the last item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * + * @returns `startIdx - 1` if predicate is false for all items, otherwise the index of the last item that matches the predicate. + */ +function findLastIdxMonotonous(array, predicate, startIdx = 0, endIdxEx = array.length) { + let i = startIdx; + let j = endIdxEx; + while (i < j) { + const k = Math.floor((i + j) / 2); + if (predicate(array[k])) { + i = k + 1; + } + else { + j = k; + } + } + return i - 1; +} +/** + * Finds the first item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`! + * + * @returns `undefined` if no item matches, otherwise the first item that matches the predicate. + */ +function findFirstMonotonous(array, predicate) { + const idx = findFirstIdxMonotonousOrArrLen(array, predicate); + return idx === array.length ? undefined : array[idx]; +} +/** + * Finds the first item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`! + * + * @returns `endIdxEx` if predicate is false for all items, otherwise the index of the first item that matches the predicate. + */ +function findFirstIdxMonotonousOrArrLen(array, predicate, startIdx = 0, endIdxEx = array.length) { + let i = startIdx; + let j = endIdxEx; + while (i < j) { + const k = Math.floor((i + j) / 2); + if (predicate(array[k])) { + j = k; + } + else { + i = k + 1; + } + } + return i; +} +/** + * Use this when + * * You have a sorted array + * * You query this array with a monotonous predicate to find the last item that has a certain property. + * * You query this array multiple times with monotonous predicates that get weaker and weaker. + */ +class MonotonousArray { + static { this.assertInvariants = false; } + constructor(_array) { + this._array = _array; + this._findLastMonotonousLastIdx = 0; + } + /** + * The predicate must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * For subsequent calls, current predicate must be weaker than (or equal to) the previous predicate, i.e. more entries must be `true`. + */ + findLastMonotonous(predicate) { + if (MonotonousArray.assertInvariants) { + if (this._prevFindLastPredicate) { + for (const item of this._array) { + if (this._prevFindLastPredicate(item) && !predicate(item)) { + throw new Error('MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.'); + } + } + } + this._prevFindLastPredicate = predicate; + } + const idx = findLastIdxMonotonous(this._array, predicate, this._findLastMonotonousLastIdx); + this._findLastMonotonousLastIdx = idx + 1; + return idx === -1 ? undefined : this._array[idx]; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range of lines (1-based). + */ +class LineRange { + static fromRangeInclusive(range) { + return new LineRange(range.startLineNumber, range.endLineNumber + 1); + } + /** + * @param lineRanges An array of sorted line ranges. + */ + static joinMany(lineRanges) { + if (lineRanges.length === 0) { + return []; + } + let result = new LineRangeSet(lineRanges[0].slice()); + for (let i = 1; i < lineRanges.length; i++) { + result = result.getUnion(new LineRangeSet(lineRanges[i].slice())); + } + return result.ranges; + } + static join(lineRanges) { + if (lineRanges.length === 0) { + throw new BugIndicatingError('lineRanges cannot be empty'); + } + let startLineNumber = lineRanges[0].startLineNumber; + let endLineNumberExclusive = lineRanges[0].endLineNumberExclusive; + for (let i = 1; i < lineRanges.length; i++) { + startLineNumber = Math.min(startLineNumber, lineRanges[i].startLineNumber); + endLineNumberExclusive = Math.max(endLineNumberExclusive, lineRanges[i].endLineNumberExclusive); + } + return new LineRange(startLineNumber, endLineNumberExclusive); + } + static ofLength(startLineNumber, length) { + return new LineRange(startLineNumber, startLineNumber + length); + } + /** + * @internal + */ + static deserialize(lineRange) { + return new LineRange(lineRange[0], lineRange[1]); + } + constructor(startLineNumber, endLineNumberExclusive) { + if (startLineNumber > endLineNumberExclusive) { + throw new BugIndicatingError(`startLineNumber ${startLineNumber} cannot be after endLineNumberExclusive ${endLineNumberExclusive}`); + } + this.startLineNumber = startLineNumber; + this.endLineNumberExclusive = endLineNumberExclusive; + } + /** + * Indicates if this line range contains the given line number. + */ + contains(lineNumber) { + return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive; + } + /** + * Indicates if this line range is empty. + */ + get isEmpty() { + return this.startLineNumber === this.endLineNumberExclusive; + } + /** + * Moves this line range by the given offset of line numbers. + */ + delta(offset) { + return new LineRange(this.startLineNumber + offset, this.endLineNumberExclusive + offset); + } + deltaLength(offset) { + return new LineRange(this.startLineNumber, this.endLineNumberExclusive + offset); + } + /** + * The number of lines this line range spans. + */ + get length() { + return this.endLineNumberExclusive - this.startLineNumber; + } + /** + * Creates a line range that combines this and the given line range. + */ + join(other) { + return new LineRange(Math.min(this.startLineNumber, other.startLineNumber), Math.max(this.endLineNumberExclusive, other.endLineNumberExclusive)); + } + toString() { + return `[${this.startLineNumber},${this.endLineNumberExclusive})`; + } + /** + * The resulting range is empty if the ranges do not intersect, but touch. + * If the ranges don't even touch, the result is undefined. + */ + intersect(other) { + const startLineNumber = Math.max(this.startLineNumber, other.startLineNumber); + const endLineNumberExclusive = Math.min(this.endLineNumberExclusive, other.endLineNumberExclusive); + if (startLineNumber <= endLineNumberExclusive) { + return new LineRange(startLineNumber, endLineNumberExclusive); + } + return undefined; + } + intersectsStrict(other) { + return this.startLineNumber < other.endLineNumberExclusive && other.startLineNumber < this.endLineNumberExclusive; + } + overlapOrTouch(other) { + return this.startLineNumber <= other.endLineNumberExclusive && other.startLineNumber <= this.endLineNumberExclusive; + } + equals(b) { + return this.startLineNumber === b.startLineNumber && this.endLineNumberExclusive === b.endLineNumberExclusive; + } + toInclusiveRange() { + if (this.isEmpty) { + return null; + } + return new Range(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER); + } + /** + * @deprecated Using this function is discouraged because it might lead to bugs: The end position is not guaranteed to be a valid position! + */ + toExclusiveRange() { + return new Range(this.startLineNumber, 1, this.endLineNumberExclusive, 1); + } + mapToLineArray(f) { + const result = []; + for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) { + result.push(f(lineNumber)); + } + return result; + } + forEach(f) { + for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) { + f(lineNumber); + } + } + /** + * @internal + */ + serialize() { + return [this.startLineNumber, this.endLineNumberExclusive]; + } + includes(lineNumber) { + return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive; + } + /** + * Converts this 1-based line range to a 0-based offset range (subtracts 1!). + * @internal + */ + toOffsetRange() { + return new OffsetRange(this.startLineNumber - 1, this.endLineNumberExclusive - 1); + } +} +class LineRangeSet { + constructor( + /** + * Sorted by start line number. + * No two line ranges are touching or intersecting. + */ + _normalizedRanges = []) { + this._normalizedRanges = _normalizedRanges; + } + get ranges() { + return this._normalizedRanges; + } + addRange(range) { + if (range.length === 0) { + return; + } + // Idea: Find joinRange such that: + // replaceRange = _normalizedRanges.replaceRange(joinRange, range.joinAll(joinRange.map(idx => this._normalizedRanges[idx]))) + // idx of first element that touches range or that is after range + const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber); + // idx of element after { last element that touches range or that is before range } + const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1; + if (joinRangeStartIdx === joinRangeEndIdxExclusive) { + // If there is no element that touches range, then joinRangeStartIdx === joinRangeEndIdxExclusive and that value is the index of the element after range + this._normalizedRanges.splice(joinRangeStartIdx, 0, range); + } + else if (joinRangeStartIdx === joinRangeEndIdxExclusive - 1) { + // Else, there is an element that touches range and in this case it is both the first and last element. Thus we can replace it + const joinRange = this._normalizedRanges[joinRangeStartIdx]; + this._normalizedRanges[joinRangeStartIdx] = joinRange.join(range); + } + else { + // First and last element are different - we need to replace the entire range + const joinRange = this._normalizedRanges[joinRangeStartIdx].join(this._normalizedRanges[joinRangeEndIdxExclusive - 1]).join(range); + this._normalizedRanges.splice(joinRangeStartIdx, joinRangeEndIdxExclusive - joinRangeStartIdx, joinRange); + } + } + contains(lineNumber) { + const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber <= lineNumber); + return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > lineNumber; + } + intersects(range) { + const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber < range.endLineNumberExclusive); + return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > range.startLineNumber; + } + getUnion(other) { + if (this._normalizedRanges.length === 0) { + return other; + } + if (other._normalizedRanges.length === 0) { + return this; + } + const result = []; + let i1 = 0; + let i2 = 0; + let current = null; + while (i1 < this._normalizedRanges.length || i2 < other._normalizedRanges.length) { + let next = null; + if (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) { + const lineRange1 = this._normalizedRanges[i1]; + const lineRange2 = other._normalizedRanges[i2]; + if (lineRange1.startLineNumber < lineRange2.startLineNumber) { + next = lineRange1; + i1++; + } + else { + next = lineRange2; + i2++; + } + } + else if (i1 < this._normalizedRanges.length) { + next = this._normalizedRanges[i1]; + i1++; + } + else { + next = other._normalizedRanges[i2]; + i2++; + } + if (current === null) { + current = next; + } + else { + if (current.endLineNumberExclusive >= next.startLineNumber) { + // merge + current = new LineRange(current.startLineNumber, Math.max(current.endLineNumberExclusive, next.endLineNumberExclusive)); + } + else { + // push + result.push(current); + current = next; + } + } + } + if (current !== null) { + result.push(current); + } + return new LineRangeSet(result); + } + /** + * Subtracts all ranges in this set from `range` and returns the result. + */ + subtractFrom(range) { + // idx of first element that touches range or that is after range + const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber); + // idx of element after { last element that touches range or that is before range } + const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1; + if (joinRangeStartIdx === joinRangeEndIdxExclusive) { + return new LineRangeSet([range]); + } + const result = []; + let startLineNumber = range.startLineNumber; + for (let i = joinRangeStartIdx; i < joinRangeEndIdxExclusive; i++) { + const r = this._normalizedRanges[i]; + if (r.startLineNumber > startLineNumber) { + result.push(new LineRange(startLineNumber, r.startLineNumber)); + } + startLineNumber = r.endLineNumberExclusive; + } + if (startLineNumber < range.endLineNumberExclusive) { + result.push(new LineRange(startLineNumber, range.endLineNumberExclusive)); + } + return new LineRangeSet(result); + } + toString() { + return this._normalizedRanges.map(r => r.toString()).join(', '); + } + getIntersection(other) { + const result = []; + let i1 = 0; + let i2 = 0; + while (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) { + const r1 = this._normalizedRanges[i1]; + const r2 = other._normalizedRanges[i2]; + const i = r1.intersect(r2); + if (i && !i.isEmpty) { + result.push(i); + } + if (r1.endLineNumberExclusive < r2.endLineNumberExclusive) { + i1++; + } + else { + i2++; + } + } + return new LineRangeSet(result); + } + getWithDelta(value) { + return new LineRangeSet(this._normalizedRanges.map(r => r.delta(value))); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Represents a non-negative length of text in terms of line and column count. +*/ +class TextLength { + static { this.zero = new TextLength(0, 0); } + static betweenPositions(position1, position2) { + if (position1.lineNumber === position2.lineNumber) { + return new TextLength(0, position2.column - position1.column); + } + else { + return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1); + } + } + static ofRange(range) { + return TextLength.betweenPositions(range.getStartPosition(), range.getEndPosition()); + } + static ofText(text) { + let line = 0; + let column = 0; + for (const c of text) { + if (c === '\n') { + line++; + column = 0; + } + else { + column++; + } + } + return new TextLength(line, column); + } + constructor(lineCount, columnCount) { + this.lineCount = lineCount; + this.columnCount = columnCount; + } + isGreaterThanOrEqualTo(other) { + if (this.lineCount !== other.lineCount) { + return this.lineCount > other.lineCount; + } + return this.columnCount >= other.columnCount; + } + createRange(startPosition) { + if (this.lineCount === 0) { + return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber, startPosition.column + this.columnCount); + } + else { + return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber + this.lineCount, this.columnCount + 1); + } + } + addToPosition(position) { + if (this.lineCount === 0) { + return new Position(position.lineNumber, position.column + this.columnCount); + } + else { + return new Position(position.lineNumber + this.lineCount, this.columnCount + 1); + } + } + toString() { + return `${this.lineCount},${this.columnCount}`; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class SingleTextEdit { + constructor(range, text) { + this.range = range; + this.text = text; + } + toSingleEditOperation() { + return { + range: this.range, + text: this.text, + }; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Maps a line range in the original text model to a line range in the modified text model. + */ +class LineRangeMapping { + static inverse(mapping, originalLineCount, modifiedLineCount) { + const result = []; + let lastOriginalEndLineNumber = 1; + let lastModifiedEndLineNumber = 1; + for (const m of mapping) { + const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, m.original.startLineNumber), new LineRange(lastModifiedEndLineNumber, m.modified.startLineNumber)); + if (!r.modified.isEmpty) { + result.push(r); + } + lastOriginalEndLineNumber = m.original.endLineNumberExclusive; + lastModifiedEndLineNumber = m.modified.endLineNumberExclusive; + } + const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, originalLineCount + 1), new LineRange(lastModifiedEndLineNumber, modifiedLineCount + 1)); + if (!r.modified.isEmpty) { + result.push(r); + } + return result; + } + static clip(mapping, originalRange, modifiedRange) { + const result = []; + for (const m of mapping) { + const original = m.original.intersect(originalRange); + const modified = m.modified.intersect(modifiedRange); + if (original && !original.isEmpty && modified && !modified.isEmpty) { + result.push(new LineRangeMapping(original, modified)); + } + } + return result; + } + constructor(originalRange, modifiedRange) { + this.original = originalRange; + this.modified = modifiedRange; + } + toString() { + return `{${this.original.toString()}->${this.modified.toString()}}`; + } + flip() { + return new LineRangeMapping(this.modified, this.original); + } + join(other) { + return new LineRangeMapping(this.original.join(other.original), this.modified.join(other.modified)); + } + /** + * This method assumes that the LineRangeMapping describes a valid diff! + * I.e. if one range is empty, the other range cannot be the entire document. + * It avoids various problems when the line range points to non-existing line-numbers. + */ + toRangeMapping() { + const origInclusiveRange = this.original.toInclusiveRange(); + const modInclusiveRange = this.modified.toInclusiveRange(); + if (origInclusiveRange && modInclusiveRange) { + return new RangeMapping(origInclusiveRange, modInclusiveRange); + } + else if (this.original.startLineNumber === 1 || this.modified.startLineNumber === 1) { + if (!(this.modified.startLineNumber === 1 && this.original.startLineNumber === 1)) { + // If one line range starts at 1, the other one must start at 1 as well. + throw new BugIndicatingError('not a valid diff'); + } + // Because one range is empty and both ranges start at line 1, none of the ranges can cover all lines. + // Thus, `endLineNumberExclusive` is a valid line number. + return new RangeMapping(new Range(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1)); + } + else { + // We can assume here that both startLineNumbers are greater than 1. + return new RangeMapping(new Range(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), new Range(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER)); + } + } + /** + * This method assumes that the LineRangeMapping describes a valid diff! + * I.e. if one range is empty, the other range cannot be the entire document. + * It avoids various problems when the line range points to non-existing line-numbers. + */ + toRangeMapping2(original, modified) { + if (isValidLineNumber(this.original.endLineNumberExclusive, original) + && isValidLineNumber(this.modified.endLineNumberExclusive, modified)) { + return new RangeMapping(new Range(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1)); + } + if (!this.original.isEmpty && !this.modified.isEmpty) { + return new RangeMapping(Range.fromPositions(new Position(this.original.startLineNumber, 1), normalizePosition(new Position(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range.fromPositions(new Position(this.modified.startLineNumber, 1), normalizePosition(new Position(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified))); + } + if (this.original.startLineNumber > 1 && this.modified.startLineNumber > 1) { + return new RangeMapping(Range.fromPositions(normalizePosition(new Position(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER), original), normalizePosition(new Position(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range.fromPositions(normalizePosition(new Position(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER), modified), normalizePosition(new Position(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified))); + } + // Situation now: one range is empty and one range touches the last line and one range starts at line 1. + // I don't think this can happen. + throw new BugIndicatingError(); + } +} +function normalizePosition(position, content) { + if (position.lineNumber < 1) { + return new Position(1, 1); + } + if (position.lineNumber > content.length) { + return new Position(content.length, content[content.length - 1].length + 1); + } + const line = content[position.lineNumber - 1]; + if (position.column > line.length + 1) { + return new Position(position.lineNumber, line.length + 1); + } + return position; +} +function isValidLineNumber(lineNumber, lines) { + return lineNumber >= 1 && lineNumber <= lines.length; +} +/** + * Maps a line range in the original text model to a line range in the modified text model. + * Also contains inner range mappings. + */ +class DetailedLineRangeMapping extends LineRangeMapping { + static fromRangeMappings(rangeMappings) { + const originalRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.originalRange))); + const modifiedRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.modifiedRange))); + return new DetailedLineRangeMapping(originalRange, modifiedRange, rangeMappings); + } + constructor(originalRange, modifiedRange, innerChanges) { + super(originalRange, modifiedRange); + this.innerChanges = innerChanges; + } + flip() { + return new DetailedLineRangeMapping(this.modified, this.original, this.innerChanges?.map(c => c.flip())); + } + withInnerChangesFromLineRanges() { + return new DetailedLineRangeMapping(this.original, this.modified, [this.toRangeMapping()]); + } +} +/** + * Maps a range in the original text model to a range in the modified text model. + */ +class RangeMapping { + static assertSorted(rangeMappings) { + for (let i = 1; i < rangeMappings.length; i++) { + const previous = rangeMappings[i - 1]; + const current = rangeMappings[i]; + if (!(previous.originalRange.getEndPosition().isBeforeOrEqual(current.originalRange.getStartPosition()) + && previous.modifiedRange.getEndPosition().isBeforeOrEqual(current.modifiedRange.getStartPosition()))) { + throw new BugIndicatingError('Range mappings must be sorted'); + } + } + } + constructor(originalRange, modifiedRange) { + this.originalRange = originalRange; + this.modifiedRange = modifiedRange; + } + toString() { + return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`; + } + flip() { + return new RangeMapping(this.modifiedRange, this.originalRange); + } + /** + * Creates a single text edit that describes the change from the original to the modified text. + */ + toTextEdit(modified) { + const newText = modified.getValueOfRange(this.modifiedRange); + return new SingleTextEdit(this.originalRange, newText); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const MINIMUM_MATCHING_CHARACTER_LENGTH = 3; +class LegacyLinesDiffComputer { + computeDiff(originalLines, modifiedLines, options) { + const diffComputer = new DiffComputer(originalLines, modifiedLines, { + maxComputationTime: options.maxComputationTimeMs, + shouldIgnoreTrimWhitespace: options.ignoreTrimWhitespace, + shouldComputeCharChanges: true, + shouldMakePrettyDiff: true, + shouldPostProcessCharChanges: true, + }); + const result = diffComputer.computeDiff(); + const changes = []; + let lastChange = null; + for (const c of result.changes) { + let originalRange; + if (c.originalEndLineNumber === 0) { + // Insertion + originalRange = new LineRange(c.originalStartLineNumber + 1, c.originalStartLineNumber + 1); + } + else { + originalRange = new LineRange(c.originalStartLineNumber, c.originalEndLineNumber + 1); + } + let modifiedRange; + if (c.modifiedEndLineNumber === 0) { + // Deletion + modifiedRange = new LineRange(c.modifiedStartLineNumber + 1, c.modifiedStartLineNumber + 1); + } + else { + modifiedRange = new LineRange(c.modifiedStartLineNumber, c.modifiedEndLineNumber + 1); + } + let change = new DetailedLineRangeMapping(originalRange, modifiedRange, c.charChanges?.map(c => new RangeMapping(new Range(c.originalStartLineNumber, c.originalStartColumn, c.originalEndLineNumber, c.originalEndColumn), new Range(c.modifiedStartLineNumber, c.modifiedStartColumn, c.modifiedEndLineNumber, c.modifiedEndColumn)))); + if (lastChange) { + if (lastChange.modified.endLineNumberExclusive === change.modified.startLineNumber + || lastChange.original.endLineNumberExclusive === change.original.startLineNumber) { + // join touching diffs. Probably moving diffs up/down in the algorithm causes touching diffs. + change = new DetailedLineRangeMapping(lastChange.original.join(change.original), lastChange.modified.join(change.modified), lastChange.innerChanges && change.innerChanges ? + lastChange.innerChanges.concat(change.innerChanges) : undefined); + changes.pop(); + } + } + changes.push(change); + lastChange = change; + } + assertFn(() => { + return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive && + // There has to be an unchanged line in between (otherwise both diffs should have been joined) + m1.original.endLineNumberExclusive < m2.original.startLineNumber && + m1.modified.endLineNumberExclusive < m2.modified.startLineNumber); + }); + return new LinesDiff(changes, [], result.quitEarly); + } +} +function computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) { + const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate); + return diffAlgo.ComputeDiff(pretty); +} +let LineSequence$1 = class LineSequence { + constructor(lines) { + const startColumns = []; + const endColumns = []; + for (let i = 0, length = lines.length; i < length; i++) { + startColumns[i] = getFirstNonBlankColumn(lines[i], 1); + endColumns[i] = getLastNonBlankColumn(lines[i], 1); + } + this.lines = lines; + this._startColumns = startColumns; + this._endColumns = endColumns; + } + getElements() { + const elements = []; + for (let i = 0, len = this.lines.length; i < len; i++) { + elements[i] = this.lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1); + } + return elements; + } + getStrictElement(index) { + return this.lines[index]; + } + getStartLineNumber(i) { + return i + 1; + } + getEndLineNumber(i) { + return i + 1; + } + createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) { + const charCodes = []; + const lineNumbers = []; + const columns = []; + let len = 0; + for (let index = startIndex; index <= endIndex; index++) { + const lineContent = this.lines[index]; + const startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1); + const endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1); + for (let col = startColumn; col < endColumn; col++) { + charCodes[len] = lineContent.charCodeAt(col - 1); + lineNumbers[len] = index + 1; + columns[len] = col; + len++; + } + if (!shouldIgnoreTrimWhitespace && index < endIndex) { + // Add \n if trim whitespace is not ignored + charCodes[len] = 10 /* CharCode.LineFeed */; + lineNumbers[len] = index + 1; + columns[len] = lineContent.length + 1; + len++; + } + } + return new CharSequence(charCodes, lineNumbers, columns); + } +}; +class CharSequence { + constructor(charCodes, lineNumbers, columns) { + this._charCodes = charCodes; + this._lineNumbers = lineNumbers; + this._columns = columns; + } + toString() { + return ('[' + this._charCodes.map((s, idx) => (s === 10 /* CharCode.LineFeed */ ? '\\n' : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(', ') + ']'); + } + _assertIndex(index, arr) { + if (index < 0 || index >= arr.length) { + throw new Error(`Illegal index`); + } + } + getElements() { + return this._charCodes; + } + getStartLineNumber(i) { + if (i > 0 && i === this._lineNumbers.length) { + // the start line number of the element after the last element + // is the end line number of the last element + return this.getEndLineNumber(i - 1); + } + this._assertIndex(i, this._lineNumbers); + return this._lineNumbers[i]; + } + getEndLineNumber(i) { + if (i === -1) { + // the end line number of the element before the first element + // is the start line number of the first element + return this.getStartLineNumber(i + 1); + } + this._assertIndex(i, this._lineNumbers); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return this._lineNumbers[i] + 1; + } + return this._lineNumbers[i]; + } + getStartColumn(i) { + if (i > 0 && i === this._columns.length) { + // the start column of the element after the last element + // is the end column of the last element + return this.getEndColumn(i - 1); + } + this._assertIndex(i, this._columns); + return this._columns[i]; + } + getEndColumn(i) { + if (i === -1) { + // the end column of the element before the first element + // is the start column of the first element + return this.getStartColumn(i + 1); + } + this._assertIndex(i, this._columns); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return 1; + } + return this._columns[i] + 1; + } +} +class CharChange { + constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalStartColumn = originalStartColumn; + this.originalEndLineNumber = originalEndLineNumber; + this.originalEndColumn = originalEndColumn; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedStartColumn = modifiedStartColumn; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.modifiedEndColumn = modifiedEndColumn; + } + static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) { + const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart); + const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart); + const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1); + const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart); + const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart); + const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1); + return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn); + } +} +function postProcessCharChanges(rawChanges) { + if (rawChanges.length <= 1) { + return rawChanges; + } + const result = [rawChanges[0]]; + let prevChange = result[0]; + for (let i = 1, len = rawChanges.length; i < len; i++) { + const currChange = rawChanges[i]; + const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength); + const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength); + // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true + const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength); + if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) { + // Merge the current change into the previous one + prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart; + prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart; + } + else { + // Add the current change + result.push(currChange); + prevChange = currChange; + } + } + return result; +} +class LineChange { + constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalEndLineNumber = originalEndLineNumber; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.charChanges = charChanges; + } + static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) { + let originalStartLineNumber; + let originalEndLineNumber; + let modifiedStartLineNumber; + let modifiedEndLineNumber; + let charChanges = undefined; + if (diffChange.originalLength === 0) { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1; + originalEndLineNumber = 0; + } + else { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart); + originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + } + if (diffChange.modifiedLength === 0) { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1; + modifiedEndLineNumber = 0; + } + else { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart); + modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + } + if (shouldComputeCharChanges && diffChange.originalLength > 0 && diffChange.originalLength < 20 && diffChange.modifiedLength > 0 && diffChange.modifiedLength < 20 && continueCharDiff()) { + // Compute character changes for diff chunks of at most 20 lines... + const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1); + const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1); + if (originalCharSequence.getElements().length > 0 && modifiedCharSequence.getElements().length > 0) { + let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes; + if (shouldPostProcessCharChanges) { + rawChanges = postProcessCharChanges(rawChanges); + } + charChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence)); + } + } + } + return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges); + } +} +class DiffComputer { + constructor(originalLines, modifiedLines, opts) { + this.shouldComputeCharChanges = opts.shouldComputeCharChanges; + this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges; + this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace; + this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff; + this.originalLines = originalLines; + this.modifiedLines = modifiedLines; + this.original = new LineSequence$1(originalLines); + this.modified = new LineSequence$1(modifiedLines); + this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime); + this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5000)); // never run after 5s for character changes... + } + computeDiff() { + if (this.original.lines.length === 1 && this.original.lines[0].length === 0) { + // empty original => fast path + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + return { + quitEarly: false, + changes: [] + }; + } + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: 1, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: this.modified.lines.length, + charChanges: undefined + }] + }; + } + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + // empty modified => fast path + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: this.original.lines.length, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: 1, + charChanges: undefined + }] + }; + } + const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff); + const rawChanges = diffResult.changes; + const quitEarly = diffResult.quitEarly; + // The diff is always computed with ignoring trim whitespace + // This ensures we get the prettiest diff + if (this.shouldIgnoreTrimWhitespace) { + const lineChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + } + return { + quitEarly: quitEarly, + changes: lineChanges + }; + } + // Need to post-process and introduce changes where the trim whitespace is different + // Note that we are looping starting at -1 to also cover the lines before the first change + const result = []; + let originalLineIndex = 0; + let modifiedLineIndex = 0; + for (let i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) { + const nextChange = (i + 1 < len ? rawChanges[i + 1] : null); + const originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length); + const modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length); + while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) { + const originalLine = this.originalLines[originalLineIndex]; + const modifiedLine = this.modifiedLines[modifiedLineIndex]; + if (originalLine !== modifiedLine) { + // These lines differ only in trim whitespace + // Check the leading whitespace + { + let originalStartColumn = getFirstNonBlankColumn(originalLine, 1); + let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1); + while (originalStartColumn > 1 && modifiedStartColumn > 1) { + const originalChar = originalLine.charCodeAt(originalStartColumn - 2); + const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2); + if (originalChar !== modifiedChar) { + break; + } + originalStartColumn--; + modifiedStartColumn--; + } + if (originalStartColumn > 1 || modifiedStartColumn > 1) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn); + } + } + // Check the trailing whitespace + { + let originalEndColumn = getLastNonBlankColumn(originalLine, 1); + let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1); + const originalMaxColumn = originalLine.length + 1; + const modifiedMaxColumn = modifiedLine.length + 1; + while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) { + const originalChar = originalLine.charCodeAt(originalEndColumn - 1); + const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1); + if (originalChar !== modifiedChar) { + break; + } + originalEndColumn++; + modifiedEndColumn++; + } + if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn); + } + } + } + originalLineIndex++; + modifiedLineIndex++; + } + if (nextChange) { + // Emit the actual change + result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + originalLineIndex += nextChange.originalLength; + modifiedLineIndex += nextChange.modifiedLength; + } + } + return { + quitEarly: quitEarly, + changes: result + }; + } + _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) { + // Merged into previous + return; + } + let charChanges = undefined; + if (this.shouldComputeCharChanges) { + charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)]; + } + result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges)); + } + _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + const len = result.length; + if (len === 0) { + return false; + } + const prevChange = result[len - 1]; + if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) { + // Don't merge with inserts/deletes + return false; + } + if (prevChange.originalEndLineNumber === originalLineNumber && prevChange.modifiedEndLineNumber === modifiedLineNumber) { + if (this.shouldComputeCharChanges && prevChange.charChanges) { + prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)); + } + return true; + } + if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) { + prevChange.originalEndLineNumber = originalLineNumber; + prevChange.modifiedEndLineNumber = modifiedLineNumber; + if (this.shouldComputeCharChanges && prevChange.charChanges) { + prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)); + } + return true; + } + return false; + } +} +function getFirstNonBlankColumn(txt, defaultValue) { + const r = firstNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 1; +} +function getLastNonBlankColumn(txt, defaultValue) { + const r = lastNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 2; +} +function createContinueProcessingPredicate(maximumRuntime) { + if (maximumRuntime === 0) { + return () => true; + } + const startTime = Date.now(); + return () => { + return Date.now() - startTime < maximumRuntime; + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class DiffAlgorithmResult { + static trivial(seq1, seq2) { + return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], false); + } + static trivialTimedOut(seq1, seq2) { + return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], true); + } + constructor(diffs, + /** + * Indicates if the time out was reached. + * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time. + */ + hitTimeout) { + this.diffs = diffs; + this.hitTimeout = hitTimeout; + } +} +class SequenceDiff { + static invert(sequenceDiffs, doc1Length) { + const result = []; + forEachAdjacent(sequenceDiffs, (a, b) => { + result.push(SequenceDiff.fromOffsetPairs(a ? a.getEndExclusives() : OffsetPair.zero, b ? b.getStarts() : new OffsetPair(doc1Length, (a ? a.seq2Range.endExclusive - a.seq1Range.endExclusive : 0) + doc1Length))); + }); + return result; + } + static fromOffsetPairs(start, endExclusive) { + return new SequenceDiff(new OffsetRange(start.offset1, endExclusive.offset1), new OffsetRange(start.offset2, endExclusive.offset2)); + } + static assertSorted(sequenceDiffs) { + let last = undefined; + for (const cur of sequenceDiffs) { + if (last) { + if (!(last.seq1Range.endExclusive <= cur.seq1Range.start && last.seq2Range.endExclusive <= cur.seq2Range.start)) { + throw new BugIndicatingError('Sequence diffs must be sorted'); + } + } + last = cur; + } + } + constructor(seq1Range, seq2Range) { + this.seq1Range = seq1Range; + this.seq2Range = seq2Range; + } + swap() { + return new SequenceDiff(this.seq2Range, this.seq1Range); + } + toString() { + return `${this.seq1Range} <-> ${this.seq2Range}`; + } + join(other) { + return new SequenceDiff(this.seq1Range.join(other.seq1Range), this.seq2Range.join(other.seq2Range)); + } + delta(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.delta(offset), this.seq2Range.delta(offset)); + } + deltaStart(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.deltaStart(offset), this.seq2Range.deltaStart(offset)); + } + deltaEnd(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.deltaEnd(offset), this.seq2Range.deltaEnd(offset)); + } + intersect(other) { + const i1 = this.seq1Range.intersect(other.seq1Range); + const i2 = this.seq2Range.intersect(other.seq2Range); + if (!i1 || !i2) { + return undefined; + } + return new SequenceDiff(i1, i2); + } + getStarts() { + return new OffsetPair(this.seq1Range.start, this.seq2Range.start); + } + getEndExclusives() { + return new OffsetPair(this.seq1Range.endExclusive, this.seq2Range.endExclusive); + } +} +class OffsetPair { + static { this.zero = new OffsetPair(0, 0); } + static { this.max = new OffsetPair(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER); } + constructor(offset1, offset2) { + this.offset1 = offset1; + this.offset2 = offset2; + } + toString() { + return `${this.offset1} <-> ${this.offset2}`; + } + delta(offset) { + if (offset === 0) { + return this; + } + return new OffsetPair(this.offset1 + offset, this.offset2 + offset); + } + equals(other) { + return this.offset1 === other.offset1 && this.offset2 === other.offset2; + } +} +class InfiniteTimeout { + static { this.instance = new InfiniteTimeout(); } + isValid() { + return true; + } +} +class DateTimeout { + constructor(timeout) { + this.timeout = timeout; + this.startTime = Date.now(); + this.valid = true; + if (timeout <= 0) { + throw new BugIndicatingError('timeout must be positive'); + } + } + // Recommendation: Set a log-point `{this.disable()}` in the body + isValid() { + const valid = Date.now() - this.startTime < this.timeout; + if (!valid && this.valid) { + this.valid = false; // timeout reached + // eslint-disable-next-line no-debugger + debugger; // WARNING: Most likely debugging caused the timeout. Call `this.disable()` to continue without timing out. + } + return this.valid; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Array2D { + constructor(width, height) { + this.width = width; + this.height = height; + this.array = []; + this.array = new Array(width * height); + } + get(x, y) { + return this.array[x + y * this.width]; + } + set(x, y, value) { + this.array[x + y * this.width] = value; + } +} +function isSpace(charCode) { + return charCode === 32 /* CharCode.Space */ || charCode === 9 /* CharCode.Tab */; +} +class LineRangeFragment { + static { this.chrKeys = new Map(); } + static getKey(chr) { + let key = this.chrKeys.get(chr); + if (key === undefined) { + key = this.chrKeys.size; + this.chrKeys.set(chr, key); + } + return key; + } + constructor(range, lines, source) { + this.range = range; + this.lines = lines; + this.source = source; + this.histogram = []; + let counter = 0; + for (let i = range.startLineNumber - 1; i < range.endLineNumberExclusive - 1; i++) { + const line = lines[i]; + for (let j = 0; j < line.length; j++) { + counter++; + const chr = line[j]; + const key = LineRangeFragment.getKey(chr); + this.histogram[key] = (this.histogram[key] || 0) + 1; + } + counter++; + const key = LineRangeFragment.getKey('\n'); + this.histogram[key] = (this.histogram[key] || 0) + 1; + } + this.totalCount = counter; + } + computeSimilarity(other) { + let sumDifferences = 0; + const maxLength = Math.max(this.histogram.length, other.histogram.length); + for (let i = 0; i < maxLength; i++) { + sumDifferences += Math.abs((this.histogram[i] ?? 0) - (other.histogram[i] ?? 0)); + } + return 1 - (sumDifferences / (this.totalCount + other.totalCount)); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A O(MN) diffing algorithm that supports a score function. + * The algorithm can be improved by processing the 2d array diagonally. +*/ +class DynamicProgrammingDiffing { + compute(sequence1, sequence2, timeout = InfiniteTimeout.instance, equalityScore) { + if (sequence1.length === 0 || sequence2.length === 0) { + return DiffAlgorithmResult.trivial(sequence1, sequence2); + } + /** + * lcsLengths.get(i, j): Length of the longest common subsequence of sequence1.substring(0, i + 1) and sequence2.substring(0, j + 1). + */ + const lcsLengths = new Array2D(sequence1.length, sequence2.length); + const directions = new Array2D(sequence1.length, sequence2.length); + const lengths = new Array2D(sequence1.length, sequence2.length); + // ==== Initializing lcsLengths ==== + for (let s1 = 0; s1 < sequence1.length; s1++) { + for (let s2 = 0; s2 < sequence2.length; s2++) { + if (!timeout.isValid()) { + return DiffAlgorithmResult.trivialTimedOut(sequence1, sequence2); + } + const horizontalLen = s1 === 0 ? 0 : lcsLengths.get(s1 - 1, s2); + const verticalLen = s2 === 0 ? 0 : lcsLengths.get(s1, s2 - 1); + let extendedSeqScore; + if (sequence1.getElement(s1) === sequence2.getElement(s2)) { + if (s1 === 0 || s2 === 0) { + extendedSeqScore = 0; + } + else { + extendedSeqScore = lcsLengths.get(s1 - 1, s2 - 1); + } + if (s1 > 0 && s2 > 0 && directions.get(s1 - 1, s2 - 1) === 3) { + // Prefer consecutive diagonals + extendedSeqScore += lengths.get(s1 - 1, s2 - 1); + } + extendedSeqScore += (equalityScore ? equalityScore(s1, s2) : 1); + } + else { + extendedSeqScore = -1; + } + const newValue = Math.max(horizontalLen, verticalLen, extendedSeqScore); + if (newValue === extendedSeqScore) { + // Prefer diagonals + const prevLen = s1 > 0 && s2 > 0 ? lengths.get(s1 - 1, s2 - 1) : 0; + lengths.set(s1, s2, prevLen + 1); + directions.set(s1, s2, 3); + } + else if (newValue === horizontalLen) { + lengths.set(s1, s2, 0); + directions.set(s1, s2, 1); + } + else if (newValue === verticalLen) { + lengths.set(s1, s2, 0); + directions.set(s1, s2, 2); + } + lcsLengths.set(s1, s2, newValue); + } + } + // ==== Backtracking ==== + const result = []; + let lastAligningPosS1 = sequence1.length; + let lastAligningPosS2 = sequence2.length; + function reportDecreasingAligningPositions(s1, s2) { + if (s1 + 1 !== lastAligningPosS1 || s2 + 1 !== lastAligningPosS2) { + result.push(new SequenceDiff(new OffsetRange(s1 + 1, lastAligningPosS1), new OffsetRange(s2 + 1, lastAligningPosS2))); + } + lastAligningPosS1 = s1; + lastAligningPosS2 = s2; + } + let s1 = sequence1.length - 1; + let s2 = sequence2.length - 1; + while (s1 >= 0 && s2 >= 0) { + if (directions.get(s1, s2) === 3) { + reportDecreasingAligningPositions(s1, s2); + s1--; + s2--; + } + else { + if (directions.get(s1, s2) === 1) { + s1--; + } + else { + s2--; + } + } + } + reportDecreasingAligningPositions(-1, -1); + result.reverse(); + return new DiffAlgorithmResult(result, false); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * An O(ND) diff algorithm that has a quadratic space worst-case complexity. +*/ +class MyersDiffAlgorithm { + compute(seq1, seq2, timeout = InfiniteTimeout.instance) { + // These are common special cases. + // The early return improves performance dramatically. + if (seq1.length === 0 || seq2.length === 0) { + return DiffAlgorithmResult.trivial(seq1, seq2); + } + const seqX = seq1; // Text on the x axis + const seqY = seq2; // Text on the y axis + function getXAfterSnake(x, y) { + while (x < seqX.length && y < seqY.length && seqX.getElement(x) === seqY.getElement(y)) { + x++; + y++; + } + return x; + } + let d = 0; + // V[k]: X value of longest d-line that ends in diagonal k. + // d-line: path from (0,0) to (x,y) that uses exactly d non-diagonals. + // diagonal k: Set of points (x,y) with x-y = k. + // k=1 -> (1,0),(2,1) + const V = new FastInt32Array(); + V.set(0, getXAfterSnake(0, 0)); + const paths = new FastArrayNegativeIndices(); + paths.set(0, V.get(0) === 0 ? null : new SnakePath(null, 0, 0, V.get(0))); + let k = 0; + loop: while (true) { + d++; + if (!timeout.isValid()) { + return DiffAlgorithmResult.trivialTimedOut(seqX, seqY); + } + // The paper has `for (k = -d; k <= d; k += 2)`, but we can ignore diagonals that cannot influence the result. + const lowerBound = -Math.min(d, seqY.length + (d % 2)); + const upperBound = Math.min(d, seqX.length + (d % 2)); + for (k = lowerBound; k <= upperBound; k += 2) { + // We can use the X values of (d-1)-lines to compute X value of the longest d-lines. + const maxXofDLineTop = k === upperBound ? -1 : V.get(k + 1); // We take a vertical non-diagonal (add a symbol in seqX) + const maxXofDLineLeft = k === lowerBound ? -1 : V.get(k - 1) + 1; // We take a horizontal non-diagonal (+1 x) (delete a symbol in seqX) + const x = Math.min(Math.max(maxXofDLineTop, maxXofDLineLeft), seqX.length); + const y = x - k; + if (x > seqX.length || y > seqY.length) { + // This diagonal is irrelevant for the result. + // TODO: Don't pay the cost for this in the next iteration. + continue; + } + const newMaxX = getXAfterSnake(x, y); + V.set(k, newMaxX); + const lastPath = x === maxXofDLineTop ? paths.get(k + 1) : paths.get(k - 1); + paths.set(k, newMaxX !== x ? new SnakePath(lastPath, x, y, newMaxX - x) : lastPath); + if (V.get(k) === seqX.length && V.get(k) - k === seqY.length) { + break loop; + } + } + } + let path = paths.get(k); + const result = []; + let lastAligningPosS1 = seqX.length; + let lastAligningPosS2 = seqY.length; + while (true) { + const endX = path ? path.x + path.length : 0; + const endY = path ? path.y + path.length : 0; + if (endX !== lastAligningPosS1 || endY !== lastAligningPosS2) { + result.push(new SequenceDiff(new OffsetRange(endX, lastAligningPosS1), new OffsetRange(endY, lastAligningPosS2))); + } + if (!path) { + break; + } + lastAligningPosS1 = path.x; + lastAligningPosS2 = path.y; + path = path.prev; + } + result.reverse(); + return new DiffAlgorithmResult(result, false); + } +} +class SnakePath { + constructor(prev, x, y, length) { + this.prev = prev; + this.x = x; + this.y = y; + this.length = length; + } +} +/** + * An array that supports fast negative indices. +*/ +class FastInt32Array { + constructor() { + this.positiveArr = new Int32Array(10); + this.negativeArr = new Int32Array(10); + } + get(idx) { + if (idx < 0) { + idx = -idx - 1; + return this.negativeArr[idx]; + } + else { + return this.positiveArr[idx]; + } + } + set(idx, value) { + if (idx < 0) { + idx = -idx - 1; + if (idx >= this.negativeArr.length) { + const arr = this.negativeArr; + this.negativeArr = new Int32Array(arr.length * 2); + this.negativeArr.set(arr); + } + this.negativeArr[idx] = value; + } + else { + if (idx >= this.positiveArr.length) { + const arr = this.positiveArr; + this.positiveArr = new Int32Array(arr.length * 2); + this.positiveArr.set(arr); + } + this.positiveArr[idx] = value; + } + } +} +/** + * An array that supports fast negative indices. +*/ +class FastArrayNegativeIndices { + constructor() { + this.positiveArr = []; + this.negativeArr = []; + } + get(idx) { + if (idx < 0) { + idx = -idx - 1; + return this.negativeArr[idx]; + } + else { + return this.positiveArr[idx]; + } + } + set(idx, value) { + if (idx < 0) { + idx = -idx - 1; + this.negativeArr[idx] = value; + } + else { + this.positiveArr[idx] = value; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LinesSliceCharSequence { + constructor(lines, range, considerWhitespaceChanges) { + this.lines = lines; + this.range = range; + this.considerWhitespaceChanges = considerWhitespaceChanges; + this.elements = []; + this.firstElementOffsetByLineIdx = []; + this.lineStartOffsets = []; + this.trimmedWsLengthsByLineIdx = []; + this.firstElementOffsetByLineIdx.push(0); + for (let lineNumber = this.range.startLineNumber; lineNumber <= this.range.endLineNumber; lineNumber++) { + let line = lines[lineNumber - 1]; + let lineStartOffset = 0; + if (lineNumber === this.range.startLineNumber && this.range.startColumn > 1) { + lineStartOffset = this.range.startColumn - 1; + line = line.substring(lineStartOffset); + } + this.lineStartOffsets.push(lineStartOffset); + let trimmedWsLength = 0; + if (!considerWhitespaceChanges) { + const trimmedStartLine = line.trimStart(); + trimmedWsLength = line.length - trimmedStartLine.length; + line = trimmedStartLine.trimEnd(); + } + this.trimmedWsLengthsByLineIdx.push(trimmedWsLength); + const lineLength = lineNumber === this.range.endLineNumber ? Math.min(this.range.endColumn - 1 - lineStartOffset - trimmedWsLength, line.length) : line.length; + for (let i = 0; i < lineLength; i++) { + this.elements.push(line.charCodeAt(i)); + } + if (lineNumber < this.range.endLineNumber) { + this.elements.push('\n'.charCodeAt(0)); + this.firstElementOffsetByLineIdx.push(this.elements.length); + } + } + } + toString() { + return `Slice: "${this.text}"`; + } + get text() { + return this.getText(new OffsetRange(0, this.length)); + } + getText(range) { + return this.elements.slice(range.start, range.endExclusive).map(e => String.fromCharCode(e)).join(''); + } + getElement(offset) { + return this.elements[offset]; + } + get length() { + return this.elements.length; + } + getBoundaryScore(length) { + // a b c , d e f + // 11 0 0 12 15 6 13 0 0 11 + const prevCategory = getCategory(length > 0 ? this.elements[length - 1] : -1); + const nextCategory = getCategory(length < this.elements.length ? this.elements[length] : -1); + if (prevCategory === 7 /* CharBoundaryCategory.LineBreakCR */ && nextCategory === 8 /* CharBoundaryCategory.LineBreakLF */) { + // don't break between \r and \n + return 0; + } + if (prevCategory === 8 /* CharBoundaryCategory.LineBreakLF */) { + // prefer the linebreak before the change + return 150; + } + let score = 0; + if (prevCategory !== nextCategory) { + score += 10; + if (prevCategory === 0 /* CharBoundaryCategory.WordLower */ && nextCategory === 1 /* CharBoundaryCategory.WordUpper */) { + score += 1; + } + } + score += getCategoryBoundaryScore(prevCategory); + score += getCategoryBoundaryScore(nextCategory); + return score; + } + translateOffset(offset, preference = 'right') { + // find smallest i, so that lineBreakOffsets[i] <= offset using binary search + const i = findLastIdxMonotonous(this.firstElementOffsetByLineIdx, (value) => value <= offset); + const lineOffset = offset - this.firstElementOffsetByLineIdx[i]; + return new Position(this.range.startLineNumber + i, 1 + this.lineStartOffsets[i] + lineOffset + ((lineOffset === 0 && preference === 'left') ? 0 : this.trimmedWsLengthsByLineIdx[i])); + } + translateRange(range) { + const pos1 = this.translateOffset(range.start, 'right'); + const pos2 = this.translateOffset(range.endExclusive, 'left'); + if (pos2.isBefore(pos1)) { + return Range.fromPositions(pos2, pos2); + } + return Range.fromPositions(pos1, pos2); + } + /** + * Finds the word that contains the character at the given offset + */ + findWordContaining(offset) { + if (offset < 0 || offset >= this.elements.length) { + return undefined; + } + if (!isWordChar(this.elements[offset])) { + return undefined; + } + // find start + let start = offset; + while (start > 0 && isWordChar(this.elements[start - 1])) { + start--; + } + // find end + let end = offset; + while (end < this.elements.length && isWordChar(this.elements[end])) { + end++; + } + return new OffsetRange(start, end); + } + countLinesIn(range) { + return this.translateOffset(range.endExclusive).lineNumber - this.translateOffset(range.start).lineNumber; + } + isStronglyEqual(offset1, offset2) { + return this.elements[offset1] === this.elements[offset2]; + } + extendToFullLines(range) { + const start = findLastMonotonous(this.firstElementOffsetByLineIdx, x => x <= range.start) ?? 0; + const end = findFirstMonotonous(this.firstElementOffsetByLineIdx, x => range.endExclusive <= x) ?? this.elements.length; + return new OffsetRange(start, end); + } +} +function isWordChar(charCode) { + return charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */ + || charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */ + || charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */; +} +const score = { + [0 /* CharBoundaryCategory.WordLower */]: 0, + [1 /* CharBoundaryCategory.WordUpper */]: 0, + [2 /* CharBoundaryCategory.WordNumber */]: 0, + [3 /* CharBoundaryCategory.End */]: 10, + [4 /* CharBoundaryCategory.Other */]: 2, + [5 /* CharBoundaryCategory.Separator */]: 30, + [6 /* CharBoundaryCategory.Space */]: 3, + [7 /* CharBoundaryCategory.LineBreakCR */]: 10, + [8 /* CharBoundaryCategory.LineBreakLF */]: 10, +}; +function getCategoryBoundaryScore(category) { + return score[category]; +} +function getCategory(charCode) { + if (charCode === 10 /* CharCode.LineFeed */) { + return 8 /* CharBoundaryCategory.LineBreakLF */; + } + else if (charCode === 13 /* CharCode.CarriageReturn */) { + return 7 /* CharBoundaryCategory.LineBreakCR */; + } + else if (isSpace(charCode)) { + return 6 /* CharBoundaryCategory.Space */; + } + else if (charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */) { + return 0 /* CharBoundaryCategory.WordLower */; + } + else if (charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */) { + return 1 /* CharBoundaryCategory.WordUpper */; + } + else if (charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */) { + return 2 /* CharBoundaryCategory.WordNumber */; + } + else if (charCode === -1) { + return 3 /* CharBoundaryCategory.End */; + } + else if (charCode === 44 /* CharCode.Comma */ || charCode === 59 /* CharCode.Semicolon */) { + return 5 /* CharBoundaryCategory.Separator */; + } + else { + return 4 /* CharBoundaryCategory.Other */; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout) { + let { moves, excludedChanges } = computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout); + if (!timeout.isValid()) { + return []; + } + const filteredChanges = changes.filter(c => !excludedChanges.has(c)); + const unchangedMoves = computeUnchangedMoves(filteredChanges, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout); + pushMany(moves, unchangedMoves); + moves = joinCloseConsecutiveMoves(moves); + // Ignore too short moves + moves = moves.filter(current => { + const lines = current.original.toOffsetRange().slice(originalLines).map(l => l.trim()); + const originalText = lines.join('\n'); + return originalText.length >= 15 && countWhere(lines, l => l.length >= 2) >= 2; + }); + moves = removeMovesInSameDiff(changes, moves); + return moves; +} +function countWhere(arr, predicate) { + let count = 0; + for (const t of arr) { + if (predicate(t)) { + count++; + } + } + return count; +} +function computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout) { + const moves = []; + const deletions = changes + .filter(c => c.modified.isEmpty && c.original.length >= 3) + .map(d => new LineRangeFragment(d.original, originalLines, d)); + const insertions = new Set(changes + .filter(c => c.original.isEmpty && c.modified.length >= 3) + .map(d => new LineRangeFragment(d.modified, modifiedLines, d))); + const excludedChanges = new Set(); + for (const deletion of deletions) { + let highestSimilarity = -1; + let best; + for (const insertion of insertions) { + const similarity = deletion.computeSimilarity(insertion); + if (similarity > highestSimilarity) { + highestSimilarity = similarity; + best = insertion; + } + } + if (highestSimilarity > 0.90 && best) { + insertions.delete(best); + moves.push(new LineRangeMapping(deletion.range, best.range)); + excludedChanges.add(deletion.source); + excludedChanges.add(best.source); + } + if (!timeout.isValid()) { + return { moves, excludedChanges }; + } + } + return { moves, excludedChanges }; +} +function computeUnchangedMoves(changes, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout) { + const moves = []; + const original3LineHashes = new SetMap(); + for (const change of changes) { + for (let i = change.original.startLineNumber; i < change.original.endLineNumberExclusive - 2; i++) { + const key = `${hashedOriginalLines[i - 1]}:${hashedOriginalLines[i + 1 - 1]}:${hashedOriginalLines[i + 2 - 1]}`; + original3LineHashes.add(key, { range: new LineRange(i, i + 3) }); + } + } + const possibleMappings = []; + changes.sort(compareBy(c => c.modified.startLineNumber, numberComparator)); + for (const change of changes) { + let lastMappings = []; + for (let i = change.modified.startLineNumber; i < change.modified.endLineNumberExclusive - 2; i++) { + const key = `${hashedModifiedLines[i - 1]}:${hashedModifiedLines[i + 1 - 1]}:${hashedModifiedLines[i + 2 - 1]}`; + const currentModifiedRange = new LineRange(i, i + 3); + const nextMappings = []; + original3LineHashes.forEach(key, ({ range }) => { + for (const lastMapping of lastMappings) { + // does this match extend some last match? + if (lastMapping.originalLineRange.endLineNumberExclusive + 1 === range.endLineNumberExclusive && + lastMapping.modifiedLineRange.endLineNumberExclusive + 1 === currentModifiedRange.endLineNumberExclusive) { + lastMapping.originalLineRange = new LineRange(lastMapping.originalLineRange.startLineNumber, range.endLineNumberExclusive); + lastMapping.modifiedLineRange = new LineRange(lastMapping.modifiedLineRange.startLineNumber, currentModifiedRange.endLineNumberExclusive); + nextMappings.push(lastMapping); + return; + } + } + const mapping = { + modifiedLineRange: currentModifiedRange, + originalLineRange: range, + }; + possibleMappings.push(mapping); + nextMappings.push(mapping); + }); + lastMappings = nextMappings; + } + if (!timeout.isValid()) { + return []; + } + } + possibleMappings.sort(reverseOrder(compareBy(m => m.modifiedLineRange.length, numberComparator))); + const modifiedSet = new LineRangeSet(); + const originalSet = new LineRangeSet(); + for (const mapping of possibleMappings) { + const diffOrigToMod = mapping.modifiedLineRange.startLineNumber - mapping.originalLineRange.startLineNumber; + const modifiedSections = modifiedSet.subtractFrom(mapping.modifiedLineRange); + const originalTranslatedSections = originalSet.subtractFrom(mapping.originalLineRange).getWithDelta(diffOrigToMod); + const modifiedIntersectedSections = modifiedSections.getIntersection(originalTranslatedSections); + for (const s of modifiedIntersectedSections.ranges) { + if (s.length < 3) { + continue; + } + const modifiedLineRange = s; + const originalLineRange = s.delta(-diffOrigToMod); + moves.push(new LineRangeMapping(originalLineRange, modifiedLineRange)); + modifiedSet.addRange(modifiedLineRange); + originalSet.addRange(originalLineRange); + } + } + moves.sort(compareBy(m => m.original.startLineNumber, numberComparator)); + const monotonousChanges = new MonotonousArray(changes); + for (let i = 0; i < moves.length; i++) { + const move = moves[i]; + const firstTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber <= move.original.startLineNumber); + const firstTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber <= move.modified.startLineNumber); + const linesAbove = Math.max(move.original.startLineNumber - firstTouchingChangeOrig.original.startLineNumber, move.modified.startLineNumber - firstTouchingChangeMod.modified.startLineNumber); + const lastTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber < move.original.endLineNumberExclusive); + const lastTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber < move.modified.endLineNumberExclusive); + const linesBelow = Math.max(lastTouchingChangeOrig.original.endLineNumberExclusive - move.original.endLineNumberExclusive, lastTouchingChangeMod.modified.endLineNumberExclusive - move.modified.endLineNumberExclusive); + let extendToTop; + for (extendToTop = 0; extendToTop < linesAbove; extendToTop++) { + const origLine = move.original.startLineNumber - extendToTop - 1; + const modLine = move.modified.startLineNumber - extendToTop - 1; + if (origLine > originalLines.length || modLine > modifiedLines.length) { + break; + } + if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) { + break; + } + if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) { + break; + } + } + if (extendToTop > 0) { + originalSet.addRange(new LineRange(move.original.startLineNumber - extendToTop, move.original.startLineNumber)); + modifiedSet.addRange(new LineRange(move.modified.startLineNumber - extendToTop, move.modified.startLineNumber)); + } + let extendToBottom; + for (extendToBottom = 0; extendToBottom < linesBelow; extendToBottom++) { + const origLine = move.original.endLineNumberExclusive + extendToBottom; + const modLine = move.modified.endLineNumberExclusive + extendToBottom; + if (origLine > originalLines.length || modLine > modifiedLines.length) { + break; + } + if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) { + break; + } + if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) { + break; + } + } + if (extendToBottom > 0) { + originalSet.addRange(new LineRange(move.original.endLineNumberExclusive, move.original.endLineNumberExclusive + extendToBottom)); + modifiedSet.addRange(new LineRange(move.modified.endLineNumberExclusive, move.modified.endLineNumberExclusive + extendToBottom)); + } + if (extendToTop > 0 || extendToBottom > 0) { + moves[i] = new LineRangeMapping(new LineRange(move.original.startLineNumber - extendToTop, move.original.endLineNumberExclusive + extendToBottom), new LineRange(move.modified.startLineNumber - extendToTop, move.modified.endLineNumberExclusive + extendToBottom)); + } + } + return moves; +} +function areLinesSimilar(line1, line2, timeout) { + if (line1.trim() === line2.trim()) { + return true; + } + if (line1.length > 300 && line2.length > 300) { + return false; + } + const myersDiffingAlgorithm = new MyersDiffAlgorithm(); + const result = myersDiffingAlgorithm.compute(new LinesSliceCharSequence([line1], new Range(1, 1, 1, line1.length), false), new LinesSliceCharSequence([line2], new Range(1, 1, 1, line2.length), false), timeout); + let commonNonSpaceCharCount = 0; + const inverted = SequenceDiff.invert(result.diffs, line1.length); + for (const seq of inverted) { + seq.seq1Range.forEach(idx => { + if (!isSpace(line1.charCodeAt(idx))) { + commonNonSpaceCharCount++; + } + }); + } + function countNonWsChars(str) { + let count = 0; + for (let i = 0; i < line1.length; i++) { + if (!isSpace(str.charCodeAt(i))) { + count++; + } + } + return count; + } + const longerLineLength = countNonWsChars(line1.length > line2.length ? line1 : line2); + const r = commonNonSpaceCharCount / longerLineLength > 0.6 && longerLineLength > 10; + return r; +} +function joinCloseConsecutiveMoves(moves) { + if (moves.length === 0) { + return moves; + } + moves.sort(compareBy(m => m.original.startLineNumber, numberComparator)); + const result = [moves[0]]; + for (let i = 1; i < moves.length; i++) { + const last = result[result.length - 1]; + const current = moves[i]; + const originalDist = current.original.startLineNumber - last.original.endLineNumberExclusive; + const modifiedDist = current.modified.startLineNumber - last.modified.endLineNumberExclusive; + const currentMoveAfterLast = originalDist >= 0 && modifiedDist >= 0; + if (currentMoveAfterLast && originalDist + modifiedDist <= 2) { + result[result.length - 1] = last.join(current); + continue; + } + result.push(current); + } + return result; +} +function removeMovesInSameDiff(changes, moves) { + const changesMonotonous = new MonotonousArray(changes); + moves = moves.filter(m => { + const diffBeforeEndOfMoveOriginal = changesMonotonous.findLastMonotonous(c => c.original.startLineNumber < m.original.endLineNumberExclusive) + || new LineRangeMapping(new LineRange(1, 1), new LineRange(1, 1)); + const diffBeforeEndOfMoveModified = findLastMonotonous(changes, c => c.modified.startLineNumber < m.modified.endLineNumberExclusive); + const differentDiffs = diffBeforeEndOfMoveOriginal !== diffBeforeEndOfMoveModified; + return differentDiffs; + }); + return moves; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) { + let result = sequenceDiffs; + result = joinSequenceDiffsByShifting(sequence1, sequence2, result); + // Sometimes, calling this function twice improves the result. + // Uncomment the second invocation and run the tests to see the difference. + result = joinSequenceDiffsByShifting(sequence1, sequence2, result); + result = shiftSequenceDiffs(sequence1, sequence2, result); + return result; +} +/** + * This function fixes issues like this: + * ``` + * import { Baz, Bar } from "foo"; + * ``` + * <-> + * ``` + * import { Baz, Bar, Foo } from "foo"; + * ``` + * Computed diff: [ {Add "," after Bar}, {Add "Foo " after space} } + * Improved diff: [{Add ", Foo" after Bar}] + */ +function joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) { + if (sequenceDiffs.length === 0) { + return sequenceDiffs; + } + const result = []; + result.push(sequenceDiffs[0]); + // First move them all to the left as much as possible and join them if possible + for (let i = 1; i < sequenceDiffs.length; i++) { + const prevResult = result[result.length - 1]; + let cur = sequenceDiffs[i]; + if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) { + const length = cur.seq1Range.start - prevResult.seq1Range.endExclusive; + let d; + for (d = 1; d <= length; d++) { + if (sequence1.getElement(cur.seq1Range.start - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) || + sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive - d)) { + break; + } + } + d--; + if (d === length) { + // Merge previous and current diff + result[result.length - 1] = new SequenceDiff(new OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length), new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length)); + continue; + } + cur = cur.delta(-d); + } + result.push(cur); + } + const result2 = []; + // Then move them all to the right and join them again if possible + for (let i = 0; i < result.length - 1; i++) { + const nextResult = result[i + 1]; + let cur = result[i]; + if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) { + const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive; + let d; + for (d = 0; d < length; d++) { + if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive + d) || + !sequence2.isStronglyEqual(cur.seq2Range.start + d, cur.seq2Range.endExclusive + d)) { + break; + } + } + if (d === length) { + // Merge previous and current diff, write to result! + result[i + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive), new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive)); + continue; + } + if (d > 0) { + cur = cur.delta(d); + } + } + result2.push(cur); + } + if (result.length > 0) { + result2.push(result[result.length - 1]); + } + return result2; +} +// align character level diffs at whitespace characters +// import { IBar } from "foo"; +// import { I[Arr, I]Bar } from "foo"; +// -> +// import { [IArr, ]IBar } from "foo"; +// import { ITransaction, observableValue, transaction } from 'vs/base/common/observable'; +// import { ITransaction, observable[FromEvent, observable]Value, transaction } from 'vs/base/common/observable'; +// -> +// import { ITransaction, [observableFromEvent, ]observableValue, transaction } from 'vs/base/common/observable'; +// collectBrackets(level + 1, levelPerBracketType); +// collectBrackets(level + 1, levelPerBracket[ + 1, levelPerBracket]Type); +// -> +// collectBrackets(level + 1, [levelPerBracket + 1, ]levelPerBracketType); +function shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) { + if (!sequence1.getBoundaryScore || !sequence2.getBoundaryScore) { + return sequenceDiffs; + } + for (let i = 0; i < sequenceDiffs.length; i++) { + const prevDiff = (i > 0 ? sequenceDiffs[i - 1] : undefined); + const diff = sequenceDiffs[i]; + const nextDiff = (i + 1 < sequenceDiffs.length ? sequenceDiffs[i + 1] : undefined); + const seq1ValidRange = new OffsetRange(prevDiff ? prevDiff.seq1Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq1Range.start - 1 : sequence1.length); + const seq2ValidRange = new OffsetRange(prevDiff ? prevDiff.seq2Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq2Range.start - 1 : sequence2.length); + if (diff.seq1Range.isEmpty) { + sequenceDiffs[i] = shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange); + } + else if (diff.seq2Range.isEmpty) { + sequenceDiffs[i] = shiftDiffToBetterPosition(diff.swap(), sequence2, sequence1, seq2ValidRange, seq1ValidRange).swap(); + } + } + return sequenceDiffs; +} +function shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange) { + const maxShiftLimit = 100; // To prevent performance issues + // don't touch previous or next! + let deltaBefore = 1; + while (diff.seq1Range.start - deltaBefore >= seq1ValidRange.start && + diff.seq2Range.start - deltaBefore >= seq2ValidRange.start && + sequence2.isStronglyEqual(diff.seq2Range.start - deltaBefore, diff.seq2Range.endExclusive - deltaBefore) && deltaBefore < maxShiftLimit) { + deltaBefore++; + } + deltaBefore--; + let deltaAfter = 0; + while (diff.seq1Range.start + deltaAfter < seq1ValidRange.endExclusive && + diff.seq2Range.endExclusive + deltaAfter < seq2ValidRange.endExclusive && + sequence2.isStronglyEqual(diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter) && deltaAfter < maxShiftLimit) { + deltaAfter++; + } + if (deltaBefore === 0 && deltaAfter === 0) { + return diff; + } + // Visualize `[sequence1.text, diff.seq1Range.start + deltaAfter]` + // and `[sequence2.text, diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter]` + let bestDelta = 0; + let bestScore = -1; + // find best scored delta + for (let delta = -deltaBefore; delta <= deltaAfter; delta++) { + const seq2OffsetStart = diff.seq2Range.start + delta; + const seq2OffsetEndExclusive = diff.seq2Range.endExclusive + delta; + const seq1Offset = diff.seq1Range.start + delta; + const score = sequence1.getBoundaryScore(seq1Offset) + sequence2.getBoundaryScore(seq2OffsetStart) + sequence2.getBoundaryScore(seq2OffsetEndExclusive); + if (score > bestScore) { + bestScore = score; + bestDelta = delta; + } + } + return diff.delta(bestDelta); +} +function removeShortMatches(sequence1, sequence2, sequenceDiffs) { + const result = []; + for (const s of sequenceDiffs) { + const last = result[result.length - 1]; + if (!last) { + result.push(s); + continue; + } + if (s.seq1Range.start - last.seq1Range.endExclusive <= 2 || s.seq2Range.start - last.seq2Range.endExclusive <= 2) { + result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range)); + } + else { + result.push(s); + } + } + return result; +} +function extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequenceDiffs) { + const equalMappings = SequenceDiff.invert(sequenceDiffs, sequence1.length); + const additional = []; + let lastPoint = new OffsetPair(0, 0); + function scanWord(pair, equalMapping) { + if (pair.offset1 < lastPoint.offset1 || pair.offset2 < lastPoint.offset2) { + return; + } + const w1 = sequence1.findWordContaining(pair.offset1); + const w2 = sequence2.findWordContaining(pair.offset2); + if (!w1 || !w2) { + return; + } + let w = new SequenceDiff(w1, w2); + const equalPart = w.intersect(equalMapping); + let equalChars1 = equalPart.seq1Range.length; + let equalChars2 = equalPart.seq2Range.length; + // The words do not touch previous equals mappings, as we would have processed them already. + // But they might touch the next ones. + while (equalMappings.length > 0) { + const next = equalMappings[0]; + const intersects = next.seq1Range.intersects(w.seq1Range) || next.seq2Range.intersects(w.seq2Range); + if (!intersects) { + break; + } + const v1 = sequence1.findWordContaining(next.seq1Range.start); + const v2 = sequence2.findWordContaining(next.seq2Range.start); + // Because there is an intersection, we know that the words are not empty. + const v = new SequenceDiff(v1, v2); + const equalPart = v.intersect(next); + equalChars1 += equalPart.seq1Range.length; + equalChars2 += equalPart.seq2Range.length; + w = w.join(v); + if (w.seq1Range.endExclusive >= next.seq1Range.endExclusive) { + // The word extends beyond the next equal mapping. + equalMappings.shift(); + } + else { + break; + } + } + if (equalChars1 + equalChars2 < (w.seq1Range.length + w.seq2Range.length) * 2 / 3) { + additional.push(w); + } + lastPoint = w.getEndExclusives(); + } + while (equalMappings.length > 0) { + const next = equalMappings.shift(); + if (next.seq1Range.isEmpty) { + continue; + } + scanWord(next.getStarts(), next); + // The equal parts are not empty, so -1 gives us a character that is equal in both parts. + scanWord(next.getEndExclusives().delta(-1), next); + } + const merged = mergeSequenceDiffs(sequenceDiffs, additional); + return merged; +} +function mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) { + const result = []; + while (sequenceDiffs1.length > 0 || sequenceDiffs2.length > 0) { + const sd1 = sequenceDiffs1[0]; + const sd2 = sequenceDiffs2[0]; + let next; + if (sd1 && (!sd2 || sd1.seq1Range.start < sd2.seq1Range.start)) { + next = sequenceDiffs1.shift(); + } + else { + next = sequenceDiffs2.shift(); + } + if (result.length > 0 && result[result.length - 1].seq1Range.endExclusive >= next.seq1Range.start) { + result[result.length - 1] = result[result.length - 1].join(next); + } + else { + result.push(next); + } + } + return result; +} +function removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2, sequenceDiffs) { + let diffs = sequenceDiffs; + if (diffs.length === 0) { + return diffs; + } + let counter = 0; + let shouldRepeat; + do { + shouldRepeat = false; + const result = [ + diffs[0] + ]; + for (let i = 1; i < diffs.length; i++) { + const cur = diffs[i]; + const lastResult = result[result.length - 1]; + function shouldJoinDiffs(before, after) { + const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start); + const unchangedText = sequence1.getText(unchangedRange); + const unchangedTextWithoutWs = unchangedText.replace(/\s/g, ''); + if (unchangedTextWithoutWs.length <= 4 + && (before.seq1Range.length + before.seq2Range.length > 5 || after.seq1Range.length + after.seq2Range.length > 5)) { + return true; + } + return false; + } + const shouldJoin = shouldJoinDiffs(lastResult, cur); + if (shouldJoin) { + shouldRepeat = true; + result[result.length - 1] = result[result.length - 1].join(cur); + } + else { + result.push(cur); + } + } + diffs = result; + } while (counter++ < 10 && shouldRepeat); + return diffs; +} +function removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence2, sequenceDiffs) { + let diffs = sequenceDiffs; + if (diffs.length === 0) { + return diffs; + } + let counter = 0; + let shouldRepeat; + do { + shouldRepeat = false; + const result = [ + diffs[0] + ]; + for (let i = 1; i < diffs.length; i++) { + const cur = diffs[i]; + const lastResult = result[result.length - 1]; + function shouldJoinDiffs(before, after) { + const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start); + const unchangedLineCount = sequence1.countLinesIn(unchangedRange); + if (unchangedLineCount > 5 || unchangedRange.length > 500) { + return false; + } + const unchangedText = sequence1.getText(unchangedRange).trim(); + if (unchangedText.length > 20 || unchangedText.split(/\r\n|\r|\n/).length > 1) { + return false; + } + const beforeLineCount1 = sequence1.countLinesIn(before.seq1Range); + const beforeSeq1Length = before.seq1Range.length; + const beforeLineCount2 = sequence2.countLinesIn(before.seq2Range); + const beforeSeq2Length = before.seq2Range.length; + const afterLineCount1 = sequence1.countLinesIn(after.seq1Range); + const afterSeq1Length = after.seq1Range.length; + const afterLineCount2 = sequence2.countLinesIn(after.seq2Range); + const afterSeq2Length = after.seq2Range.length; + // TODO: Maybe a neural net can be used to derive the result from these numbers + const max = 2 * 40 + 50; + function cap(v) { + return Math.min(v, max); + } + if (Math.pow(Math.pow(cap(beforeLineCount1 * 40 + beforeSeq1Length), 1.5) + Math.pow(cap(beforeLineCount2 * 40 + beforeSeq2Length), 1.5), 1.5) + + Math.pow(Math.pow(cap(afterLineCount1 * 40 + afterSeq1Length), 1.5) + Math.pow(cap(afterLineCount2 * 40 + afterSeq2Length), 1.5), 1.5) > ((max ** 1.5) ** 1.5) * 1.3) { + return true; + } + return false; + } + const shouldJoin = shouldJoinDiffs(lastResult, cur); + if (shouldJoin) { + shouldRepeat = true; + result[result.length - 1] = result[result.length - 1].join(cur); + } + else { + result.push(cur); + } + } + diffs = result; + } while (counter++ < 10 && shouldRepeat); + const newDiffs = []; + // Remove short suffixes/prefixes + forEachWithNeighbors(diffs, (prev, cur, next) => { + let newDiff = cur; + function shouldMarkAsChanged(text) { + return text.length > 0 && text.trim().length <= 3 && cur.seq1Range.length + cur.seq2Range.length > 100; + } + const fullRange1 = sequence1.extendToFullLines(cur.seq1Range); + const prefix = sequence1.getText(new OffsetRange(fullRange1.start, cur.seq1Range.start)); + if (shouldMarkAsChanged(prefix)) { + newDiff = newDiff.deltaStart(-prefix.length); + } + const suffix = sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive, fullRange1.endExclusive)); + if (shouldMarkAsChanged(suffix)) { + newDiff = newDiff.deltaEnd(suffix.length); + } + const availableSpace = SequenceDiff.fromOffsetPairs(prev ? prev.getEndExclusives() : OffsetPair.zero, next ? next.getStarts() : OffsetPair.max); + const result = newDiff.intersect(availableSpace); + if (newDiffs.length > 0 && result.getStarts().equals(newDiffs[newDiffs.length - 1].getEndExclusives())) { + newDiffs[newDiffs.length - 1] = newDiffs[newDiffs.length - 1].join(result); + } + else { + newDiffs.push(result); + } + }); + return newDiffs; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LineSequence { + constructor(trimmedHash, lines) { + this.trimmedHash = trimmedHash; + this.lines = lines; + } + getElement(offset) { + return this.trimmedHash[offset]; + } + get length() { + return this.trimmedHash.length; + } + getBoundaryScore(length) { + const indentationBefore = length === 0 ? 0 : getIndentation(this.lines[length - 1]); + const indentationAfter = length === this.lines.length ? 0 : getIndentation(this.lines[length]); + return 1000 - (indentationBefore + indentationAfter); + } + getText(range) { + return this.lines.slice(range.start, range.endExclusive).join('\n'); + } + isStronglyEqual(offset1, offset2) { + return this.lines[offset1] === this.lines[offset2]; + } +} +function getIndentation(str) { + let i = 0; + while (i < str.length && (str.charCodeAt(i) === 32 /* CharCode.Space */ || str.charCodeAt(i) === 9 /* CharCode.Tab */)) { + i++; + } + return i; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class DefaultLinesDiffComputer { + constructor() { + this.dynamicProgrammingDiffing = new DynamicProgrammingDiffing(); + this.myersDiffingAlgorithm = new MyersDiffAlgorithm(); + } + computeDiff(originalLines, modifiedLines, options) { + if (originalLines.length <= 1 && equals(originalLines, modifiedLines, (a, b) => a === b)) { + return new LinesDiff([], [], false); + } + if (originalLines.length === 1 && originalLines[0].length === 0 || modifiedLines.length === 1 && modifiedLines[0].length === 0) { + return new LinesDiff([ + new DetailedLineRangeMapping(new LineRange(1, originalLines.length + 1), new LineRange(1, modifiedLines.length + 1), [ + new RangeMapping(new Range(1, 1, originalLines.length, originalLines[originalLines.length - 1].length + 1), new Range(1, 1, modifiedLines.length, modifiedLines[modifiedLines.length - 1].length + 1)) + ]) + ], [], false); + } + const timeout = options.maxComputationTimeMs === 0 ? InfiniteTimeout.instance : new DateTimeout(options.maxComputationTimeMs); + const considerWhitespaceChanges = !options.ignoreTrimWhitespace; + const perfectHashes = new Map(); + function getOrCreateHash(text) { + let hash = perfectHashes.get(text); + if (hash === undefined) { + hash = perfectHashes.size; + perfectHashes.set(text, hash); + } + return hash; + } + const originalLinesHashes = originalLines.map((l) => getOrCreateHash(l.trim())); + const modifiedLinesHashes = modifiedLines.map((l) => getOrCreateHash(l.trim())); + const sequence1 = new LineSequence(originalLinesHashes, originalLines); + const sequence2 = new LineSequence(modifiedLinesHashes, modifiedLines); + const lineAlignmentResult = (() => { + if (sequence1.length + sequence2.length < 1700) { + // Use the improved algorithm for small files + return this.dynamicProgrammingDiffing.compute(sequence1, sequence2, timeout, (offset1, offset2) => originalLines[offset1] === modifiedLines[offset2] + ? modifiedLines[offset2].length === 0 + ? 0.1 + : 1 + Math.log(1 + modifiedLines[offset2].length) + : 0.99); + } + return this.myersDiffingAlgorithm.compute(sequence1, sequence2, timeout); + })(); + let lineAlignments = lineAlignmentResult.diffs; + let hitTimeout = lineAlignmentResult.hitTimeout; + lineAlignments = optimizeSequenceDiffs(sequence1, sequence2, lineAlignments); + lineAlignments = removeVeryShortMatchingLinesBetweenDiffs(sequence1, sequence2, lineAlignments); + const alignments = []; + const scanForWhitespaceChanges = (equalLinesCount) => { + if (!considerWhitespaceChanges) { + return; + } + for (let i = 0; i < equalLinesCount; i++) { + const seq1Offset = seq1LastStart + i; + const seq2Offset = seq2LastStart + i; + if (originalLines[seq1Offset] !== modifiedLines[seq2Offset]) { + // This is because of whitespace changes, diff these lines + const characterDiffs = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(new OffsetRange(seq1Offset, seq1Offset + 1), new OffsetRange(seq2Offset, seq2Offset + 1)), timeout, considerWhitespaceChanges); + for (const a of characterDiffs.mappings) { + alignments.push(a); + } + if (characterDiffs.hitTimeout) { + hitTimeout = true; + } + } + } + }; + let seq1LastStart = 0; + let seq2LastStart = 0; + for (const diff of lineAlignments) { + assertFn(() => diff.seq1Range.start - seq1LastStart === diff.seq2Range.start - seq2LastStart); + const equalLinesCount = diff.seq1Range.start - seq1LastStart; + scanForWhitespaceChanges(equalLinesCount); + seq1LastStart = diff.seq1Range.endExclusive; + seq2LastStart = diff.seq2Range.endExclusive; + const characterDiffs = this.refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges); + if (characterDiffs.hitTimeout) { + hitTimeout = true; + } + for (const a of characterDiffs.mappings) { + alignments.push(a); + } + } + scanForWhitespaceChanges(originalLines.length - seq1LastStart); + const changes = lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines); + let moves = []; + if (options.computeMoves) { + moves = this.computeMoves(changes, originalLines, modifiedLines, originalLinesHashes, modifiedLinesHashes, timeout, considerWhitespaceChanges); + } + // Make sure all ranges are valid + assertFn(() => { + function validatePosition(pos, lines) { + if (pos.lineNumber < 1 || pos.lineNumber > lines.length) { + return false; + } + const line = lines[pos.lineNumber - 1]; + if (pos.column < 1 || pos.column > line.length + 1) { + return false; + } + return true; + } + function validateRange(range, lines) { + if (range.startLineNumber < 1 || range.startLineNumber > lines.length + 1) { + return false; + } + if (range.endLineNumberExclusive < 1 || range.endLineNumberExclusive > lines.length + 1) { + return false; + } + return true; + } + for (const c of changes) { + if (!c.innerChanges) { + return false; + } + for (const ic of c.innerChanges) { + const valid = validatePosition(ic.modifiedRange.getStartPosition(), modifiedLines) && validatePosition(ic.modifiedRange.getEndPosition(), modifiedLines) && + validatePosition(ic.originalRange.getStartPosition(), originalLines) && validatePosition(ic.originalRange.getEndPosition(), originalLines); + if (!valid) { + return false; + } + } + if (!validateRange(c.modified, modifiedLines) || !validateRange(c.original, originalLines)) { + return false; + } + } + return true; + }); + return new LinesDiff(changes, moves, hitTimeout); + } + computeMoves(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout, considerWhitespaceChanges) { + const moves = computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout); + const movesWithDiffs = moves.map(m => { + const moveChanges = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(m.original.toOffsetRange(), m.modified.toOffsetRange()), timeout, considerWhitespaceChanges); + const mappings = lineRangeMappingFromRangeMappings(moveChanges.mappings, originalLines, modifiedLines, true); + return new MovedText(m, mappings); + }); + return movesWithDiffs; + } + refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges) { + const lineRangeMapping = toLineRangeMapping(diff); + const rangeMapping = lineRangeMapping.toRangeMapping2(originalLines, modifiedLines); + const slice1 = new LinesSliceCharSequence(originalLines, rangeMapping.originalRange, considerWhitespaceChanges); + const slice2 = new LinesSliceCharSequence(modifiedLines, rangeMapping.modifiedRange, considerWhitespaceChanges); + const diffResult = slice1.length + slice2.length < 500 + ? this.dynamicProgrammingDiffing.compute(slice1, slice2, timeout) + : this.myersDiffingAlgorithm.compute(slice1, slice2, timeout); + let diffs = diffResult.diffs; + diffs = optimizeSequenceDiffs(slice1, slice2, diffs); + diffs = extendDiffsToEntireWordIfAppropriate(slice1, slice2, diffs); + diffs = removeShortMatches(slice1, slice2, diffs); + diffs = removeVeryShortMatchingTextBetweenLongDiffs(slice1, slice2, diffs); + const result = diffs.map((d) => new RangeMapping(slice1.translateRange(d.seq1Range), slice2.translateRange(d.seq2Range))); + // Assert: result applied on original should be the same as diff applied to original + return { + mappings: result, + hitTimeout: diffResult.hitTimeout, + }; + } +} +function lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines, dontAssertStartLine = false) { + const changes = []; + for (const g of groupAdjacentBy(alignments.map(a => getLineRangeMapping(a, originalLines, modifiedLines)), (a1, a2) => a1.original.overlapOrTouch(a2.original) + || a1.modified.overlapOrTouch(a2.modified))) { + const first = g[0]; + const last = g[g.length - 1]; + changes.push(new DetailedLineRangeMapping(first.original.join(last.original), first.modified.join(last.modified), g.map(a => a.innerChanges[0]))); + } + assertFn(() => { + if (!dontAssertStartLine && changes.length > 0) { + if (changes[0].modified.startLineNumber !== changes[0].original.startLineNumber) { + return false; + } + if (modifiedLines.length - changes[changes.length - 1].modified.endLineNumberExclusive !== originalLines.length - changes[changes.length - 1].original.endLineNumberExclusive) { + return false; + } + } + return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive && + // There has to be an unchanged line in between (otherwise both diffs should have been joined) + m1.original.endLineNumberExclusive < m2.original.startLineNumber && + m1.modified.endLineNumberExclusive < m2.modified.startLineNumber); + }); + return changes; +} +function getLineRangeMapping(rangeMapping, originalLines, modifiedLines) { + let lineStartDelta = 0; + let lineEndDelta = 0; + // rangeMapping describes the edit that replaces `rangeMapping.originalRange` with `newText := getText(modifiedLines, rangeMapping.modifiedRange)`. + // original: ]xxx \n <- this line is not modified + // modified: ]xx \n + if (rangeMapping.modifiedRange.endColumn === 1 && rangeMapping.originalRange.endColumn === 1 + && rangeMapping.originalRange.startLineNumber + lineStartDelta <= rangeMapping.originalRange.endLineNumber + && rangeMapping.modifiedRange.startLineNumber + lineStartDelta <= rangeMapping.modifiedRange.endLineNumber) { + // We can only do this if the range is not empty yet + lineEndDelta = -1; + } + // original: xxx[ \n <- this line is not modified + // modified: xxx[ \n + if (rangeMapping.modifiedRange.startColumn - 1 >= modifiedLines[rangeMapping.modifiedRange.startLineNumber - 1].length + && rangeMapping.originalRange.startColumn - 1 >= originalLines[rangeMapping.originalRange.startLineNumber - 1].length + && rangeMapping.originalRange.startLineNumber <= rangeMapping.originalRange.endLineNumber + lineEndDelta + && rangeMapping.modifiedRange.startLineNumber <= rangeMapping.modifiedRange.endLineNumber + lineEndDelta) { + // We can only do this if the range is not empty yet + lineStartDelta = 1; + } + const originalLineRange = new LineRange(rangeMapping.originalRange.startLineNumber + lineStartDelta, rangeMapping.originalRange.endLineNumber + 1 + lineEndDelta); + const modifiedLineRange = new LineRange(rangeMapping.modifiedRange.startLineNumber + lineStartDelta, rangeMapping.modifiedRange.endLineNumber + 1 + lineEndDelta); + return new DetailedLineRangeMapping(originalLineRange, modifiedLineRange, [rangeMapping]); +} +function toLineRangeMapping(sequenceDiff) { + return new LineRangeMapping(new LineRange(sequenceDiff.seq1Range.start + 1, sequenceDiff.seq1Range.endExclusive + 1), new LineRange(sequenceDiff.seq2Range.start + 1, sequenceDiff.seq2Range.endExclusive + 1)); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const linesDiffComputers = { + getLegacy: () => new LegacyLinesDiffComputer(), + getDefault: () => new DefaultLinesDiffComputer(), +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function roundFloat(number, decimalPoints) { + const decimal = Math.pow(10, decimalPoints); + return Math.round(number * decimal) / decimal; +} +class RGBA { + constructor(r, g, b, a = 1) { + this._rgbaBrand = undefined; + this.r = Math.min(255, Math.max(0, r)) | 0; + this.g = Math.min(255, Math.max(0, g)) | 0; + this.b = Math.min(255, Math.max(0, b)) | 0; + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.r === b.r && a.g === b.g && a.b === b.b && a.a === b.a; + } +} +class HSLA { + constructor(h, s, l, a) { + this._hslaBrand = undefined; + this.h = Math.max(Math.min(360, h), 0) | 0; + this.s = roundFloat(Math.max(Math.min(1, s), 0), 3); + this.l = roundFloat(Math.max(Math.min(1, l), 0), 3); + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.h === b.h && a.s === b.s && a.l === b.l && a.a === b.a; + } + /** + * Converts an RGB color value to HSL. Conversion formula + * adapted from http://en.wikipedia.org/wiki/HSL_color_space. + * Assumes r, g, and b are contained in the set [0, 255] and + * returns h in the set [0, 360], s, and l in the set [0, 1]. + */ + static fromRGBA(rgba) { + const r = rgba.r / 255; + const g = rgba.g / 255; + const b = rgba.b / 255; + const a = rgba.a; + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + let s = 0; + const l = (min + max) / 2; + const chroma = max - min; + if (chroma > 0) { + s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1); + switch (max) { + case r: + h = (g - b) / chroma + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / chroma + 2; + break; + case b: + h = (r - g) / chroma + 4; + break; + } + h *= 60; + h = Math.round(h); + } + return new HSLA(h, s, l, a); + } + static _hue2rgb(p, q, t) { + if (t < 0) { + t += 1; + } + if (t > 1) { + t -= 1; + } + if (t < 1 / 6) { + return p + (q - p) * 6 * t; + } + if (t < 1 / 2) { + return q; + } + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; + } + return p; + } + /** + * Converts an HSL color value to RGB. Conversion formula + * adapted from http://en.wikipedia.org/wiki/HSL_color_space. + * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and + * returns r, g, and b in the set [0, 255]. + */ + static toRGBA(hsla) { + const h = hsla.h / 360; + const { s, l, a } = hsla; + let r, g, b; + if (s === 0) { + r = g = b = l; // achromatic + } + else { + const q = l < 0.5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + r = HSLA._hue2rgb(p, q, h + 1 / 3); + g = HSLA._hue2rgb(p, q, h); + b = HSLA._hue2rgb(p, q, h - 1 / 3); + } + return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a); + } +} +class HSVA { + constructor(h, s, v, a) { + this._hsvaBrand = undefined; + this.h = Math.max(Math.min(360, h), 0) | 0; + this.s = roundFloat(Math.max(Math.min(1, s), 0), 3); + this.v = roundFloat(Math.max(Math.min(1, v), 0), 3); + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.h === b.h && a.s === b.s && a.v === b.v && a.a === b.a; + } + // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm + static fromRGBA(rgba) { + const r = rgba.r / 255; + const g = rgba.g / 255; + const b = rgba.b / 255; + const cmax = Math.max(r, g, b); + const cmin = Math.min(r, g, b); + const delta = cmax - cmin; + const s = cmax === 0 ? 0 : (delta / cmax); + let m; + if (delta === 0) { + m = 0; + } + else if (cmax === r) { + m = ((((g - b) / delta) % 6) + 6) % 6; + } + else if (cmax === g) { + m = ((b - r) / delta) + 2; + } + else { + m = ((r - g) / delta) + 4; + } + return new HSVA(Math.round(m * 60), s, cmax, rgba.a); + } + // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm + static toRGBA(hsva) { + const { h, s, v, a } = hsva; + const c = v * s; + const x = c * (1 - Math.abs((h / 60) % 2 - 1)); + const m = v - c; + let [r, g, b] = [0, 0, 0]; + if (h < 60) { + r = c; + g = x; + } + else if (h < 120) { + r = x; + g = c; + } + else if (h < 180) { + g = c; + b = x; + } + else if (h < 240) { + g = x; + b = c; + } + else if (h < 300) { + r = x; + b = c; + } + else if (h <= 360) { + r = c; + b = x; + } + r = Math.round((r + m) * 255); + g = Math.round((g + m) * 255); + b = Math.round((b + m) * 255); + return new RGBA(r, g, b, a); + } +} +class Color { + static fromHex(hex) { + return Color.Format.CSS.parseHex(hex) || Color.red; + } + static equals(a, b) { + if (!a && !b) { + return true; + } + if (!a || !b) { + return false; + } + return a.equals(b); + } + get hsla() { + if (this._hsla) { + return this._hsla; + } + else { + return HSLA.fromRGBA(this.rgba); + } + } + get hsva() { + if (this._hsva) { + return this._hsva; + } + return HSVA.fromRGBA(this.rgba); + } + constructor(arg) { + if (!arg) { + throw new Error('Color needs a value'); + } + else if (arg instanceof RGBA) { + this.rgba = arg; + } + else if (arg instanceof HSLA) { + this._hsla = arg; + this.rgba = HSLA.toRGBA(arg); + } + else if (arg instanceof HSVA) { + this._hsva = arg; + this.rgba = HSVA.toRGBA(arg); + } + else { + throw new Error('Invalid color ctor argument'); + } + } + equals(other) { + return !!other && RGBA.equals(this.rgba, other.rgba) && HSLA.equals(this.hsla, other.hsla) && HSVA.equals(this.hsva, other.hsva); + } + /** + * http://www.w3.org/TR/WCAG20/#relativeluminancedef + * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white. + */ + getRelativeLuminance() { + const R = Color._relativeLuminanceForComponent(this.rgba.r); + const G = Color._relativeLuminanceForComponent(this.rgba.g); + const B = Color._relativeLuminanceForComponent(this.rgba.b); + const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B; + return roundFloat(luminance, 4); + } + static _relativeLuminanceForComponent(color) { + const c = color / 255; + return (c <= 0.03928) ? c / 12.92 : Math.pow(((c + 0.055) / 1.055), 2.4); + } + /** + * http://24ways.org/2010/calculating-color-contrast + * Return 'true' if lighter color otherwise 'false' + */ + isLighter() { + const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1000; + return yiq >= 128; + } + isLighterThan(another) { + const lum1 = this.getRelativeLuminance(); + const lum2 = another.getRelativeLuminance(); + return lum1 > lum2; + } + isDarkerThan(another) { + const lum1 = this.getRelativeLuminance(); + const lum2 = another.getRelativeLuminance(); + return lum1 < lum2; + } + lighten(factor) { + return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor, this.hsla.a)); + } + darken(factor) { + return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor, this.hsla.a)); + } + transparent(factor) { + const { r, g, b, a } = this.rgba; + return new Color(new RGBA(r, g, b, a * factor)); + } + isTransparent() { + return this.rgba.a === 0; + } + isOpaque() { + return this.rgba.a === 1; + } + opposite() { + return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a)); + } + makeOpaque(opaqueBackground) { + if (this.isOpaque() || opaqueBackground.rgba.a !== 1) { + // only allow to blend onto a non-opaque color onto a opaque color + return this; + } + const { r, g, b, a } = this.rgba; + // https://stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity + return new Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1)); + } + toString() { + if (!this._toString) { + this._toString = Color.Format.CSS.format(this); + } + return this._toString; + } + static getLighterColor(of, relative, factor) { + if (of.isLighterThan(relative)) { + return of; + } + factor = factor ? factor : 0.5; + const lum1 = of.getRelativeLuminance(); + const lum2 = relative.getRelativeLuminance(); + factor = factor * (lum2 - lum1) / lum2; + return of.lighten(factor); + } + static getDarkerColor(of, relative, factor) { + if (of.isDarkerThan(relative)) { + return of; + } + factor = factor ? factor : 0.5; + const lum1 = of.getRelativeLuminance(); + const lum2 = relative.getRelativeLuminance(); + factor = factor * (lum1 - lum2) / lum1; + return of.darken(factor); + } + static { this.white = new Color(new RGBA(255, 255, 255, 1)); } + static { this.black = new Color(new RGBA(0, 0, 0, 1)); } + static { this.red = new Color(new RGBA(255, 0, 0, 1)); } + static { this.blue = new Color(new RGBA(0, 0, 255, 1)); } + static { this.green = new Color(new RGBA(0, 255, 0, 1)); } + static { this.cyan = new Color(new RGBA(0, 255, 255, 1)); } + static { this.lightgrey = new Color(new RGBA(211, 211, 211, 1)); } + static { this.transparent = new Color(new RGBA(0, 0, 0, 0)); } +} +(function (Color) { + (function (Format) { + (function (CSS) { + function formatRGB(color) { + if (color.rgba.a === 1) { + return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`; + } + return Color.Format.CSS.formatRGBA(color); + } + CSS.formatRGB = formatRGB; + function formatRGBA(color) { + return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+(color.rgba.a).toFixed(2)})`; + } + CSS.formatRGBA = formatRGBA; + function formatHSL(color) { + if (color.hsla.a === 1) { + return `hsl(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%)`; + } + return Color.Format.CSS.formatHSLA(color); + } + CSS.formatHSL = formatHSL; + function formatHSLA(color) { + return `hsla(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%, ${color.hsla.a.toFixed(2)})`; + } + CSS.formatHSLA = formatHSLA; + function _toTwoDigitHex(n) { + const r = n.toString(16); + return r.length !== 2 ? '0' + r : r; + } + /** + * Formats the color as #RRGGBB + */ + function formatHex(color) { + return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`; + } + CSS.formatHex = formatHex; + /** + * Formats the color as #RRGGBBAA + * If 'compact' is set, colors without transparancy will be printed as #RRGGBB + */ + function formatHexA(color, compact = false) { + if (compact && color.rgba.a === 1) { + return Color.Format.CSS.formatHex(color); + } + return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`; + } + CSS.formatHexA = formatHexA; + /** + * The default format will use HEX if opaque and RGBA otherwise. + */ + function format(color) { + if (color.isOpaque()) { + return Color.Format.CSS.formatHex(color); + } + return Color.Format.CSS.formatRGBA(color); + } + CSS.format = format; + /** + * Converts an Hex color value to a Color. + * returns r, g, and b are contained in the set [0, 255] + * @param hex string (#RGB, #RGBA, #RRGGBB or #RRGGBBAA). + */ + function parseHex(hex) { + const length = hex.length; + if (length === 0) { + // Invalid color + return null; + } + if (hex.charCodeAt(0) !== 35 /* CharCode.Hash */) { + // Does not begin with a # + return null; + } + if (length === 7) { + // #RRGGBB format + const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2)); + const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4)); + const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6)); + return new Color(new RGBA(r, g, b, 1)); + } + if (length === 9) { + // #RRGGBBAA format + const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2)); + const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4)); + const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6)); + const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8)); + return new Color(new RGBA(r, g, b, a / 255)); + } + if (length === 4) { + // #RGB format + const r = _parseHexDigit(hex.charCodeAt(1)); + const g = _parseHexDigit(hex.charCodeAt(2)); + const b = _parseHexDigit(hex.charCodeAt(3)); + return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b)); + } + if (length === 5) { + // #RGBA format + const r = _parseHexDigit(hex.charCodeAt(1)); + const g = _parseHexDigit(hex.charCodeAt(2)); + const b = _parseHexDigit(hex.charCodeAt(3)); + const a = _parseHexDigit(hex.charCodeAt(4)); + return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255)); + } + // Invalid color + return null; + } + CSS.parseHex = parseHex; + function _parseHexDigit(charCode) { + switch (charCode) { + case 48 /* CharCode.Digit0 */: return 0; + case 49 /* CharCode.Digit1 */: return 1; + case 50 /* CharCode.Digit2 */: return 2; + case 51 /* CharCode.Digit3 */: return 3; + case 52 /* CharCode.Digit4 */: return 4; + case 53 /* CharCode.Digit5 */: return 5; + case 54 /* CharCode.Digit6 */: return 6; + case 55 /* CharCode.Digit7 */: return 7; + case 56 /* CharCode.Digit8 */: return 8; + case 57 /* CharCode.Digit9 */: return 9; + case 97 /* CharCode.a */: return 10; + case 65 /* CharCode.A */: return 10; + case 98 /* CharCode.b */: return 11; + case 66 /* CharCode.B */: return 11; + case 99 /* CharCode.c */: return 12; + case 67 /* CharCode.C */: return 12; + case 100 /* CharCode.d */: return 13; + case 68 /* CharCode.D */: return 13; + case 101 /* CharCode.e */: return 14; + case 69 /* CharCode.E */: return 14; + case 102 /* CharCode.f */: return 15; + case 70 /* CharCode.F */: return 15; + } + return 0; + } + })(Format.CSS || (Format.CSS = {})); + })(Color.Format || (Color.Format = {})); +})(Color || (Color = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function _parseCaptureGroups(captureGroups) { + const values = []; + for (const captureGroup of captureGroups) { + const parsedNumber = Number(captureGroup); + if (parsedNumber || parsedNumber === 0 && captureGroup.replace(/\s/g, '') !== '') { + values.push(parsedNumber); + } + } + return values; +} +function _toIColor(r, g, b, a) { + return { + red: r / 255, + blue: b / 255, + green: g / 255, + alpha: a + }; +} +function _findRange(model, match) { + const index = match.index; + const length = match[0].length; + if (!index) { + return; + } + const startPosition = model.positionAt(index); + const range = { + startLineNumber: startPosition.lineNumber, + startColumn: startPosition.column, + endLineNumber: startPosition.lineNumber, + endColumn: startPosition.column + length + }; + return range; +} +function _findHexColorInformation(range, hexValue) { + if (!range) { + return; + } + const parsedHexColor = Color.Format.CSS.parseHex(hexValue); + if (!parsedHexColor) { + return; + } + return { + range: range, + color: _toIColor(parsedHexColor.rgba.r, parsedHexColor.rgba.g, parsedHexColor.rgba.b, parsedHexColor.rgba.a) + }; +} +function _findRGBColorInformation(range, matches, isAlpha) { + if (!range || matches.length !== 1) { + return; + } + const match = matches[0]; + const captureGroups = match.values(); + const parsedRegex = _parseCaptureGroups(captureGroups); + return { + range: range, + color: _toIColor(parsedRegex[0], parsedRegex[1], parsedRegex[2], isAlpha ? parsedRegex[3] : 1) + }; +} +function _findHSLColorInformation(range, matches, isAlpha) { + if (!range || matches.length !== 1) { + return; + } + const match = matches[0]; + const captureGroups = match.values(); + const parsedRegex = _parseCaptureGroups(captureGroups); + const colorEquivalent = new Color(new HSLA(parsedRegex[0], parsedRegex[1] / 100, parsedRegex[2] / 100, isAlpha ? parsedRegex[3] : 1)); + return { + range: range, + color: _toIColor(colorEquivalent.rgba.r, colorEquivalent.rgba.g, colorEquivalent.rgba.b, colorEquivalent.rgba.a) + }; +} +function _findMatches(model, regex) { + if (typeof model === 'string') { + return [...model.matchAll(regex)]; + } + else { + return model.findMatches(regex); + } +} +function computeColors(model) { + const result = []; + // Early validation for RGB and HSL + const initialValidationRegex = /\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm; + const initialValidationMatches = _findMatches(model, initialValidationRegex); + // Potential colors have been found, validate the parameters + if (initialValidationMatches.length > 0) { + for (const initialMatch of initialValidationMatches) { + const initialCaptureGroups = initialMatch.filter(captureGroup => captureGroup !== undefined); + const colorScheme = initialCaptureGroups[1]; + const colorParameters = initialCaptureGroups[2]; + if (!colorParameters) { + continue; + } + let colorInformation; + if (colorScheme === 'rgb') { + const regexParameters = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm; + colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false); + } + else if (colorScheme === 'rgba') { + const regexParameters = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm; + colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true); + } + else if (colorScheme === 'hsl') { + const regexParameters = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm; + colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false); + } + else if (colorScheme === 'hsla') { + const regexParameters = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm; + colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true); + } + else if (colorScheme === '#') { + colorInformation = _findHexColorInformation(_findRange(model, initialMatch), colorScheme + colorParameters); + } + if (colorInformation) { + result.push(colorInformation); + } + } + } + return result; +} +/** + * Returns an array of all default document colors in the provided document + */ +function computeDefaultDocumentColors(model) { + if (!model || typeof model.getValue !== 'function' || typeof model.positionAt !== 'function') { + // Unknown caller! + return []; + } + return computeColors(model); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const markRegex = new RegExp('\\bMARK:\\s*(.*)$', 'd'); +const trimDashesRegex = /^-+|-+$/g; +/** + * Find section headers in the model. + * + * @param model the text model to search in + * @param options options to search with + * @returns an array of section headers + */ +function findSectionHeaders(model, options) { + let headers = []; + if (options.findRegionSectionHeaders && options.foldingRules?.markers) { + const regionHeaders = collectRegionHeaders(model, options); + headers = headers.concat(regionHeaders); + } + if (options.findMarkSectionHeaders) { + const markHeaders = collectMarkHeaders(model); + headers = headers.concat(markHeaders); + } + return headers; +} +function collectRegionHeaders(model, options) { + const regionHeaders = []; + const endLineNumber = model.getLineCount(); + for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + const match = lineContent.match(options.foldingRules.markers.start); + if (match) { + const range = { startLineNumber: lineNumber, startColumn: match[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 }; + if (range.endColumn > range.startColumn) { + const sectionHeader = { + range, + ...getHeaderText(lineContent.substring(match[0].length)), + shouldBeInComments: false + }; + if (sectionHeader.text || sectionHeader.hasSeparatorLine) { + regionHeaders.push(sectionHeader); + } + } + } + } + return regionHeaders; +} +function collectMarkHeaders(model) { + const markHeaders = []; + const endLineNumber = model.getLineCount(); + for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + addMarkHeaderIfFound(lineContent, lineNumber, markHeaders); + } + return markHeaders; +} +function addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) { + markRegex.lastIndex = 0; + const match = markRegex.exec(lineContent); + if (match) { + const column = match.indices[1][0] + 1; + const endColumn = match.indices[1][1] + 1; + const range = { startLineNumber: lineNumber, startColumn: column, endLineNumber: lineNumber, endColumn: endColumn }; + if (range.endColumn > range.startColumn) { + const sectionHeader = { + range, + ...getHeaderText(match[1]), + shouldBeInComments: true + }; + if (sectionHeader.text || sectionHeader.hasSeparatorLine) { + sectionHeaders.push(sectionHeader); + } + } + } +} +function getHeaderText(text) { + text = text.trim(); + const hasSeparatorLine = text.startsWith('-'); + text = text.replace(trimDashesRegex, ''); + return { text, hasSeparatorLine }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * @internal + */ +class MirrorModel extends MirrorTextModel { + get uri() { + return this._uri; + } + get eol() { + return this._eol; + } + getValue() { + return this.getText(); + } + findMatches(regex) { + const matches = []; + for (let i = 0; i < this._lines.length; i++) { + const line = this._lines[i]; + const offsetToAdd = this.offsetAt(new Position(i + 1, 1)); + const iteratorOverMatches = line.matchAll(regex); + for (const match of iteratorOverMatches) { + if (match.index || match.index === 0) { + match.index = match.index + offsetToAdd; + } + matches.push(match); + } + } + return matches; + } + getLinesContent() { + return this._lines.slice(0); + } + getLineCount() { + return this._lines.length; + } + getLineContent(lineNumber) { + return this._lines[lineNumber - 1]; + } + getWordAtPosition(position, wordDefinition) { + const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0); + if (wordAtText) { + return new Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn); + } + return null; + } + words(wordDefinition) { + const lines = this._lines; + const wordenize = this._wordenize.bind(this); + let lineNumber = 0; + let lineText = ''; + let wordRangesIdx = 0; + let wordRanges = []; + return { + *[Symbol.iterator]() { + while (true) { + if (wordRangesIdx < wordRanges.length) { + const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end); + wordRangesIdx += 1; + yield value; + } + else { + if (lineNumber < lines.length) { + lineText = lines[lineNumber]; + wordRanges = wordenize(lineText, wordDefinition); + wordRangesIdx = 0; + lineNumber += 1; + } + else { + break; + } + } + } + } + }; + } + getLineWords(lineNumber, wordDefinition) { + const content = this._lines[lineNumber - 1]; + const ranges = this._wordenize(content, wordDefinition); + const words = []; + for (const range of ranges) { + words.push({ + word: content.substring(range.start, range.end), + startColumn: range.start + 1, + endColumn: range.end + 1 + }); + } + return words; + } + _wordenize(content, wordDefinition) { + const result = []; + let match; + wordDefinition.lastIndex = 0; // reset lastIndex just to be sure + while (match = wordDefinition.exec(content)) { + if (match[0].length === 0) { + // it did match the empty string + break; + } + result.push({ start: match.index, end: match.index + match[0].length }); + } + return result; + } + getValueInRange(range) { + range = this._validateRange(range); + if (range.startLineNumber === range.endLineNumber) { + return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1); + } + const lineEnding = this._eol; + const startLineIndex = range.startLineNumber - 1; + const endLineIndex = range.endLineNumber - 1; + const resultLines = []; + resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1)); + for (let i = startLineIndex + 1; i < endLineIndex; i++) { + resultLines.push(this._lines[i]); + } + resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1)); + return resultLines.join(lineEnding); + } + offsetAt(position) { + position = this._validatePosition(position); + this._ensureLineStarts(); + return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1); + } + positionAt(offset) { + offset = Math.floor(offset); + offset = Math.max(0, offset); + this._ensureLineStarts(); + const out = this._lineStarts.getIndexOf(offset); + const lineLength = this._lines[out.index].length; + // Ensure we return a valid position + return { + lineNumber: 1 + out.index, + column: 1 + Math.min(out.remainder, lineLength) + }; + } + _validateRange(range) { + const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn }); + const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn }); + if (start.lineNumber !== range.startLineNumber + || start.column !== range.startColumn + || end.lineNumber !== range.endLineNumber + || end.column !== range.endColumn) { + return { + startLineNumber: start.lineNumber, + startColumn: start.column, + endLineNumber: end.lineNumber, + endColumn: end.column + }; + } + return range; + } + _validatePosition(position) { + if (!Position.isIPosition(position)) { + throw new Error('bad position'); + } + let { lineNumber, column } = position; + let hasChanged = false; + if (lineNumber < 1) { + lineNumber = 1; + column = 1; + hasChanged = true; + } + else if (lineNumber > this._lines.length) { + lineNumber = this._lines.length; + column = this._lines[lineNumber - 1].length + 1; + hasChanged = true; + } + else { + const maxCharacter = this._lines[lineNumber - 1].length + 1; + if (column < 1) { + column = 1; + hasChanged = true; + } + else if (column > maxCharacter) { + column = maxCharacter; + hasChanged = true; + } + } + if (!hasChanged) { + return position; + } + else { + return { lineNumber, column }; + } + } +} +/** + * @internal + */ +class EditorSimpleWorker { + constructor(host, foreignModuleFactory) { + this._host = host; + this._models = Object.create(null); + this._foreignModuleFactory = foreignModuleFactory; + this._foreignModule = null; + } + dispose() { + this._models = Object.create(null); + } + _getModel(uri) { + return this._models[uri]; + } + _getModels() { + const all = []; + Object.keys(this._models).forEach((key) => all.push(this._models[key])); + return all; + } + acceptNewModel(data) { + this._models[data.url] = new MirrorModel(URI.parse(data.url), data.lines, data.EOL, data.versionId); + } + acceptModelChanged(strURL, e) { + if (!this._models[strURL]) { + return; + } + const model = this._models[strURL]; + model.onEvents(e); + } + acceptRemovedModel(strURL) { + if (!this._models[strURL]) { + return; + } + delete this._models[strURL]; + } + async computeUnicodeHighlights(url, options, range) { + const model = this._getModel(url); + if (!model) { + return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 }; + } + return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range); + } + async findSectionHeaders(url, options) { + const model = this._getModel(url); + if (!model) { + return []; + } + return findSectionHeaders(model, options); + } + // ---- BEGIN diff -------------------------------------------------------------------------- + async computeDiff(originalUrl, modifiedUrl, options, algorithm) { + const original = this._getModel(originalUrl); + const modified = this._getModel(modifiedUrl); + if (!original || !modified) { + return null; + } + const result = EditorSimpleWorker.computeDiff(original, modified, options, algorithm); + return result; + } + static computeDiff(originalTextModel, modifiedTextModel, options, algorithm) { + const diffAlgorithm = algorithm === 'advanced' ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy(); + const originalLines = originalTextModel.getLinesContent(); + const modifiedLines = modifiedTextModel.getLinesContent(); + const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options); + const identical = (result.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel)); + function getLineChanges(changes) { + return changes.map(m => ([m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, m.innerChanges?.map(m => [ + m.originalRange.startLineNumber, + m.originalRange.startColumn, + m.originalRange.endLineNumber, + m.originalRange.endColumn, + m.modifiedRange.startLineNumber, + m.modifiedRange.startColumn, + m.modifiedRange.endLineNumber, + m.modifiedRange.endColumn, + ])])); + } + return { + identical, + quitEarly: result.hitTimeout, + changes: getLineChanges(result.changes), + moves: result.moves.map(m => ([ + m.lineRangeMapping.original.startLineNumber, + m.lineRangeMapping.original.endLineNumberExclusive, + m.lineRangeMapping.modified.startLineNumber, + m.lineRangeMapping.modified.endLineNumberExclusive, + getLineChanges(m.changes) + ])), + }; + } + static _modelsAreIdentical(original, modified) { + const originalLineCount = original.getLineCount(); + const modifiedLineCount = modified.getLineCount(); + if (originalLineCount !== modifiedLineCount) { + return false; + } + for (let line = 1; line <= originalLineCount; line++) { + const originalLine = original.getLineContent(line); + const modifiedLine = modified.getLineContent(line); + if (originalLine !== modifiedLine) { + return false; + } + } + return true; + } + // ---- END diff -------------------------------------------------------------------------- + // ---- BEGIN minimal edits --------------------------------------------------------------- + static { this._diffLimit = 100000; } + async computeMoreMinimalEdits(modelUrl, edits, pretty) { + const model = this._getModel(modelUrl); + if (!model) { + return edits; + } + const result = []; + let lastEol = undefined; + edits = edits.slice(0).sort((a, b) => { + if (a.range && b.range) { + return Range.compareRangesUsingStarts(a.range, b.range); + } + // eol only changes should go to the end + const aRng = a.range ? 0 : 1; + const bRng = b.range ? 0 : 1; + return aRng - bRng; + }); + // merge adjacent edits + let writeIndex = 0; + for (let readIndex = 1; readIndex < edits.length; readIndex++) { + if (Range.getEndPosition(edits[writeIndex].range).equals(Range.getStartPosition(edits[readIndex].range))) { + edits[writeIndex].range = Range.fromPositions(Range.getStartPosition(edits[writeIndex].range), Range.getEndPosition(edits[readIndex].range)); + edits[writeIndex].text += edits[readIndex].text; + } + else { + writeIndex++; + edits[writeIndex] = edits[readIndex]; + } + } + edits.length = writeIndex + 1; + for (let { range, text, eol } of edits) { + if (typeof eol === 'number') { + lastEol = eol; + } + if (Range.isEmpty(range) && !text) { + // empty change + continue; + } + const original = model.getValueInRange(range); + text = text.replace(/\r\n|\n|\r/g, model.eol); + if (original === text) { + // noop + continue; + } + // make sure diff won't take too long + if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) { + result.push({ range, text }); + continue; + } + // compute diff between original and edit.text + const changes = stringDiff(original, text, pretty); + const editOffset = model.offsetAt(Range.lift(range).getStartPosition()); + for (const change of changes) { + const start = model.positionAt(editOffset + change.originalStart); + const end = model.positionAt(editOffset + change.originalStart + change.originalLength); + const newEdit = { + text: text.substr(change.modifiedStart, change.modifiedLength), + range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column } + }; + if (model.getValueInRange(newEdit.range) !== newEdit.text) { + result.push(newEdit); + } + } + } + if (typeof lastEol === 'number') { + result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }); + } + return result; + } + // ---- END minimal edits --------------------------------------------------------------- + async computeLinks(modelUrl) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + return computeLinks(model); + } + // --- BEGIN default document colors ----------------------------------------------------------- + async computeDefaultDocumentColors(modelUrl) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + return computeDefaultDocumentColors(model); + } + // ---- BEGIN suggest -------------------------------------------------------------------------- + static { this._suggestionsLimit = 10000; } + async textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) { + const sw = new StopWatch(); + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const seen = new Set(); + outer: for (const url of modelUrls) { + const model = this._getModel(url); + if (!model) { + continue; + } + for (const word of model.words(wordDefRegExp)) { + if (word === leadingWord || !isNaN(Number(word))) { + continue; + } + seen.add(word); + if (seen.size > EditorSimpleWorker._suggestionsLimit) { + break outer; + } + } + } + return { words: Array.from(seen), duration: sw.elapsed() }; + } + // ---- END suggest -------------------------------------------------------------------------- + //#region -- word ranges -- + async computeWordRanges(modelUrl, range, wordDef, wordDefFlags) { + const model = this._getModel(modelUrl); + if (!model) { + return Object.create(null); + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const result = Object.create(null); + for (let line = range.startLineNumber; line < range.endLineNumber; line++) { + const words = model.getLineWords(line, wordDefRegExp); + for (const word of words) { + if (!isNaN(Number(word.word))) { + continue; + } + let array = result[word.word]; + if (!array) { + array = []; + result[word.word] = array; + } + array.push({ + startLineNumber: line, + startColumn: word.startColumn, + endLineNumber: line, + endColumn: word.endColumn + }); + } + } + return result; + } + //#endregion + async navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + if (range.startColumn === range.endColumn) { + range = { + startLineNumber: range.startLineNumber, + startColumn: range.startColumn, + endLineNumber: range.endLineNumber, + endColumn: range.endColumn + 1 + }; + } + const selectionText = model.getValueInRange(range); + const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp); + if (!wordRange) { + return null; + } + const word = model.getValueInRange(wordRange); + const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up); + return result; + } + // ---- BEGIN foreign module support -------------------------------------------------------------------------- + loadForeignModule(moduleId, createData, foreignHostMethods) { + const proxyMethodRequest = (method, args) => { + return this._host.fhr(method, args); + }; + const foreignHost = createProxyObject$1(foreignHostMethods, proxyMethodRequest); + const ctx = { + host: foreignHost, + getMirrorModels: () => { + return this._getModels(); + } + }; + if (this._foreignModuleFactory) { + this._foreignModule = this._foreignModuleFactory(ctx, createData); + // static foreing module + return Promise.resolve(getAllMethodNames(this._foreignModule)); + } + // ESM-comment-begin + // return new Promise((resolve, reject) => { + // require([moduleId], (foreignModule: { create: IForeignModuleFactory }) => { + // this._foreignModule = foreignModule.create(ctx, createData); + // + // resolve(getAllMethodNames(this._foreignModule)); + // + // }, reject); + // }); + // ESM-comment-end + // ESM-uncomment-begin + return Promise.reject(new Error(`Unexpected usage`)); + // ESM-uncomment-end + } + // foreign method request + fmr(method, args) { + if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args)); + } + catch (e) { + return Promise.reject(e); + } + } +} +if (typeof importScripts === 'function') { + // Running in a web worker + globalThis.monaco = createMonacoBaseAPI(); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let initialized = false; +function initialize(foreignModule) { + if (initialized) { + return; + } + initialized = true; + const simpleWorker = new SimpleWorkerServer((msg) => { + globalThis.postMessage(msg); + }, (host) => new EditorSimpleWorker(host, foreignModule)); + globalThis.onmessage = (e) => { + simpleWorker.onmessage(e.data); + }; +} +globalThis.onmessage = (e) => { + // Ignore first message in this case and initialize if not yet initialized + if (!initialized) { + initialize(null); + } +}; diff --git a/assets/highlight-bGyCOtsB-CbqxkUwA.js b/assets/highlight-bGyCOtsB-CbqxkUwA.js new file mode 100644 index 0000000..84b6366 --- /dev/null +++ b/assets/highlight-bGyCOtsB-CbqxkUwA.js @@ -0,0 +1,16 @@ +var kt=Object.defineProperty;var wt=(t,e,n)=>e in t?kt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var A=(t,e,n)=>wt(t,typeof e!="symbol"?e+"":e,n);import{_ as zt,l as Fn,C as jt,E as Zt,K as vt,a as Ct,M as Ft,b as qt,P as St,R as Et,S as Nt,d as Gt,T as Bt,U as Tt,e as Dt}from"./index-Np15b6TM.js";const Rt=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:jt,Emitter:Zt,KeyCode:vt,KeyMod:Ct,MarkerSeverity:Ft,MarkerTag:qt,Position:St,Range:Et,Selection:Nt,SelectionDirection:Gt,Token:Bt,Uri:Tt,editor:Dt,languages:Fn},Symbol.toStringTag,{value:"Module"}));var D;(function(t){t[t.NotSet=-1]="NotSet",t[t.None=0]="None",t[t.Italic=1]="Italic",t[t.Bold=2]="Bold",t[t.Underline=4]="Underline"})(D||(D={}));function Lt(t){return We(t)}function We(t){return Array.isArray(t)?Pt(t):typeof t=="object"?It(t):t}function Pt(t){let e=[];for(let n=0,a=t.length;n{for(let a in n)t[a]=n[a]}),t}function Sn(t){const e=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return e===0?t:~e===t.length-1?Sn(t.substring(0,t.length-1)):t.substr(~e+1)}var Ce=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,re=class{static hasCaptures(t){return t===null?!1:(Ce.lastIndex=0,Ce.test(t))}static replaceCaptures(t,e,n){return t.replace(Ce,(a,s,i,r)=>{let c=n[parseInt(s||i,10)];if(c){let o=e.substring(c.start,c.end);for(;o[0]===".";)o=o.substring(1);switch(r){case"downcase":return o.toLowerCase();case"upcase":return o.toUpperCase();default:return o}}else return a})}};function En(t,e){return te?1:0}function Nn(t,e){if(t===null&&e===null)return 0;if(!t)return-1;if(!e)return 1;let n=t.length,a=e.length;if(n===a){for(let s=0;sthis._root.match(a))}static createFromRawTheme(t,e){return this.createFromParsedTheme(Ut(t),e)}static createFromParsedTheme(t,e){return Wt(t,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(t){if(t===null)return this._defaults;const e=t.scopeName,a=this._cachedMatchRoot.get(e).find(s=>Ot(t.parent,s.parentScopes));return a?new Tn(a.fontStyle,a.foreground,a.background):null}},Fe=class ue{constructor(e,n){this.parent=e,this.scopeName=n}static push(e,n){for(const a of n)e=new ue(e,a);return e}static from(...e){let n=null;for(let a=0;a"){if(n===e.length-1)return!1;a=e[++n],s=!0}for(;t&&!Mt(t.scopeName,a);){if(s)return!1;t=t.parent}if(!t)return!1;t=t.parent}return!0}function Mt(t,e){return e===t||t.startsWith(e)&&t[e.length]==="."}var Tn=class{constructor(t,e,n){this.fontStyle=t,this.foregroundId=e,this.backgroundId=n}};function Ut(t){if(!t)return[];if(!t.settings||!Array.isArray(t.settings))return[];let e=t.settings,n=[],a=0;for(let s=0,i=e.length;s1&&(h=b.slice(0,b.length-1),h.reverse()),n[a++]=new Ht(f,h,s,o,l,d)}}return n}var Ht=class{constructor(t,e,n,a,s,i){this.scope=t,this.parentScopes=e,this.index=n,this.fontStyle=a,this.foreground=s,this.background=i}};function Wt(t,e){t.sort((o,l)=>{let d=En(o.scope,l.scope);return d!==0||(d=Nn(o.parentScopes,l.parentScopes),d!==0)?d:o.index-l.index});let n=0,a="#000000",s="#ffffff";for(;t.length>=1&&t[0].scope==="";){let o=t.shift();o.fontStyle!==-1&&(n=o.fontStyle),o.foreground!==null&&(a=o.foreground),o.background!==null&&(s=o.background)}let i=new Xt(e),r=new Tn(n,i.getId(a),i.getId(s)),c=new Yt(new Be(0,null,-1,0,0),[]);for(let o=0,l=t.length;oe?console.log("how did this happen?"):this.scopeDepth=e,n!==-1&&(this.fontStyle=n),a!==0&&(this.foreground=a),s!==0&&(this.background=s)}},Yt=class Te{constructor(e,n=[],a={}){this._mainRule=e,this._children=a,this._rulesWithParentScopes=n}static _cmpBySpecificity(e,n){if(e.scopeDepth!==n.scopeDepth)return n.scopeDepth-e.scopeDepth;let a=0,s=0;for(;e.parentScopes[a]===">"&&a++,n.parentScopes[s]===">"&&s++,!(a>=e.parentScopes.length||s>=n.parentScopes.length);){const i=n.parentScopes[s].length-e.parentScopes[a].length;if(i!==0)return i;a++,s++}return n.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let a=e.indexOf("."),s,i;if(a===-1?(s=e,i=""):(s=e.substring(0,a),i=e.substring(a+1)),this._children.hasOwnProperty(s))return this._children[s].match(i)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(Te._cmpBySpecificity),n}insert(e,n,a,s,i,r){if(n===""){this._doInsertHere(e,a,s,i,r);return}let c=n.indexOf("."),o,l;c===-1?(o=n,l=""):(o=n.substring(0,c),l=n.substring(c+1));let d;this._children.hasOwnProperty(o)?d=this._children[o]:(d=new Te(this._mainRule.clone(),Be.cloneArr(this._rulesWithParentScopes)),this._children[o]=d),d.insert(e+1,l,a,s,i,r)}_doInsertHere(e,n,a,s,i){if(n===null){this._mainRule.acceptOverwrite(e,a,s,i);return}for(let r=0,c=this._rulesWithParentScopes.length;r>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,n,a,s,i,r,c){let o=G.getLanguageId(e),l=G.getTokenType(e),d=G.containsBalancedBrackets(e)?1:0,u=G.getFontStyle(e),m=G.getForeground(e),p=G.getBackground(e);return n!==0&&(o=n),a!==8&&(l=a),s!==null&&(d=s?1:0),i!==-1&&(u=i),r!==0&&(m=r),c!==0&&(p=c),(o<<0|l<<8|d<<10|u<<11|m<<15|p<<24)>>>0}};function pe(t,e){const n=[],a=Kt(t);let s=a.next();for(;s!==null;){let o=0;if(s.length===2&&s.charAt(1)===":"){switch(s.charAt(0)){case"R":o=1;break;case"L":o=-1;break;default:console.log(`Unknown priority ${s} in scope selector`)}s=a.next()}let l=r();if(n.push({matcher:l,priority:o}),s!==",")break;s=a.next()}return n;function i(){if(s==="-"){s=a.next();const o=i();return l=>!!o&&!o(l)}if(s==="("){s=a.next();const o=c();return s===")"&&(s=a.next()),o}if(ln(s)){const o=[];do o.push(s),s=a.next();while(ln(s));return l=>e(o,l)}return null}function r(){const o=[];let l=i();for(;l;)o.push(l),l=i();return d=>o.every(u=>u(d))}function c(){const o=[];let l=r();for(;l&&(o.push(l),s==="|"||s===",");){do s=a.next();while(s==="|"||s===",");l=r()}return d=>o.some(u=>u(d))}}function ln(t){return!!t&&!!t.match(/[\w\.:]+/)}function Kt(t){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=e.exec(t);return{next:()=>{if(!n)return null;const a=n[0];return n=e.exec(t),a}}}function Rn(t){typeof t.dispose=="function"&&t.dispose()}var ee=class{constructor(t){this.scopeName=t}toKey(){return this.scopeName}},Jt=class{constructor(t,e){this.scopeName=t,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},Qt=class{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(t){const e=t.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(t))}},ea=class{constructor(t,e){this.repo=t,this.initialScopeName=e,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new ee(this.initialScopeName)]}processQueue(){const t=this.Q;this.Q=[];const e=new Qt;for(const n of t)na(n,this.initialScopeName,this.repo,e);for(const n of e.references)if(n instanceof ee){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function na(t,e,n,a){const s=n.lookup(t.scopeName);if(!s){if(t.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const i=n.lookup(e);t instanceof ee?de({baseGrammar:i,selfGrammar:s},a):De(t.ruleName,{baseGrammar:i,selfGrammar:s,repository:s.repository},a);const r=n.injections(t.scopeName);if(r)for(const c of r)a.add(new ee(c))}function De(t,e,n){if(e.repository&&e.repository[t]){const a=e.repository[t];be([a],e,n)}}function de(t,e){t.selfGrammar.patterns&&Array.isArray(t.selfGrammar.patterns)&&be(t.selfGrammar.patterns,{...t,repository:t.selfGrammar.repository},e),t.selfGrammar.injections&&be(Object.values(t.selfGrammar.injections),{...t,repository:t.selfGrammar.repository},e)}function be(t,e,n){for(const a of t){if(n.visitedRule.has(a))continue;n.visitedRule.add(a);const s=a.repository?qn({},e.repository,a.repository):e.repository;Array.isArray(a.patterns)&&be(a.patterns,{...e,repository:s},n);const i=a.include;if(!i)continue;const r=Ln(i);switch(r.kind){case 0:de({...e,selfGrammar:e.baseGrammar},n);break;case 1:de(e,n);break;case 2:De(r.ruleName,{...e,repository:s},n);break;case 3:case 4:const c=r.scopeName===e.selfGrammar.scopeName?e.selfGrammar:r.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(c){const o={baseGrammar:e.baseGrammar,selfGrammar:c,repository:s};r.kind===4?De(r.ruleName,o,n):de(o,n)}else r.kind===4?n.add(new Jt(r.scopeName,r.ruleName)):n.add(new ee(r.scopeName));break}}}var ta=class{constructor(){this.kind=0}},aa=class{constructor(){this.kind=1}},sa=class{constructor(t){this.ruleName=t,this.kind=2}},ia=class{constructor(t){this.scopeName=t,this.kind=3}},ra=class{constructor(t,e){this.scopeName=t,this.ruleName=e,this.kind=4}};function Ln(t){if(t==="$base")return new ta;if(t==="$self")return new aa;const e=t.indexOf("#");if(e===-1)return new ia(t);if(e===0)return new sa(t.substring(1));{const n=t.substring(0,e),a=t.substring(e+1);return new ra(n,a)}}var oa=/\\(\d+)/,un=/\\(\d+)/g,ca=-1,Pn=-2;var se=class{constructor(t,e,n,a){this.$location=t,this.id=e,this._name=n||null,this._nameIsCapturing=re.hasCaptures(this._name),this._contentName=a||null,this._contentNameIsCapturing=re.hasCaptures(this._contentName)}get debugName(){const t=this.$location?`${Sn(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${t}`}getName(t,e){return!this._nameIsCapturing||this._name===null||t===null||e===null?this._name:re.replaceCaptures(this._name,t,e)}getContentName(t,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:re.replaceCaptures(this._contentName,t,e)}},la=class extends se{constructor(t,e,n,a,s){super(t,e,n,a),this.retokenizeCapturedWithRuleId=s}dispose(){}collectPatterns(t,e){throw new Error("Not supported!")}compile(t,e){throw new Error("Not supported!")}compileAG(t,e,n,a){throw new Error("Not supported!")}},ua=class extends se{constructor(t,e,n,a,s){super(t,e,n,null),this._match=new ne(a,this.id),this.captures=s,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(t,e){e.push(this._match)}compile(t,e){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,e,n,a){return this._getCachedCompiledPatterns(t).compileAG(t,n,a)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new te,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},dn=class extends se{constructor(t,e,n,a,s){super(t,e,n,a),this.patterns=s.patterns,this.hasMissingPatterns=s.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(t,e){for(const n of this.patterns)t.getRule(n).collectPatterns(t,e)}compile(t,e){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,e,n,a){return this._getCachedCompiledPatterns(t).compileAG(t,n,a)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new te,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Re=class extends se{constructor(t,e,n,a,s,i,r,c,o,l){super(t,e,n,a),this._begin=new ne(s,this.id),this.beginCaptures=i,this._end=new ne(r||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=o||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(t,e){return this._end.resolveBackReferences(t,e)}collectPatterns(t,e){e.push(this._begin)}compile(t,e){return this._getCachedCompiledPatterns(t,e).compile(t)}compileAG(t,e,n,a){return this._getCachedCompiledPatterns(t,e).compileAG(t,n,a)}_getCachedCompiledPatterns(t,e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new te;for(const n of this.patterns)t.getRule(n).collectPatterns(t,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,e):this._cachedCompiledPatterns.setSource(0,e)),this._cachedCompiledPatterns}},ge=class extends se{constructor(t,e,n,a,s,i,r,c,o){super(t,e,n,a),this._begin=new ne(s,this.id),this.beginCaptures=i,this.whileCaptures=c,this._while=new ne(r,Pn),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(t,e){return this._while.resolveBackReferences(t,e)}collectPatterns(t,e){e.push(this._begin)}compile(t,e){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,e,n,a){return this._getCachedCompiledPatterns(t).compileAG(t,n,a)}_getCachedCompiledPatterns(t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new te;for(const e of this.patterns)t.getRule(e).collectPatterns(t,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(t,e){return this._getCachedCompiledWhilePatterns(t,e).compile(t)}compileWhileAG(t,e,n,a){return this._getCachedCompiledWhilePatterns(t,e).compileAG(t,n,a)}_getCachedCompiledWhilePatterns(t,e){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new te,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,e||"￿"),this._cachedCompiledWhilePatterns}},In=class q{static createCaptureRule(e,n,a,s,i){return e.registerRule(r=>new la(n,r,a,s,i))}static getCompiledRuleId(e,n,a){return e.id||n.registerRule(s=>{if(e.id=s,e.match)return new ua(e.$vscodeTextmateLocation,e.id,e.name,e.match,q._compileCaptures(e.captures,n,a));if(typeof e.begin>"u"){e.repository&&(a=qn({},a,e.repository));let i=e.patterns;return typeof i>"u"&&e.include&&(i=[{include:e.include}]),new dn(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,q._compilePatterns(i,n,a))}return e.while?new ge(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,q._compileCaptures(e.beginCaptures||e.captures,n,a),e.while,q._compileCaptures(e.whileCaptures||e.captures,n,a),q._compilePatterns(e.patterns,n,a)):new Re(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,q._compileCaptures(e.beginCaptures||e.captures,n,a),e.end,q._compileCaptures(e.endCaptures||e.captures,n,a),e.applyEndPatternLast,q._compilePatterns(e.patterns,n,a))}),e.id}static _compileCaptures(e,n,a){let s=[];if(e){let i=0;for(const r in e){if(r==="$vscodeTextmateLocation")continue;const c=parseInt(r,10);c>i&&(i=c)}for(let r=0;r<=i;r++)s[r]=null;for(const r in e){if(r==="$vscodeTextmateLocation")continue;const c=parseInt(r,10);let o=0;e[r].patterns&&(o=q.getCompiledRuleId(e[r],n,a)),s[c]=q.createCaptureRule(n,e[r].$vscodeTextmateLocation,e[r].name,e[r].contentName,o)}}return s}static _compilePatterns(e,n,a){let s=[];if(e)for(let i=0,r=e.length;ie.substring(s.start,s.end));return un.lastIndex=0,this.source.replace(un,(s,i)=>Gn(a[parseInt(i,10)]||""))}_buildAnchorCache(){let e=[],n=[],a=[],s=[],i,r,c,o;for(i=0,r=this.source.length;in.source);this._cached=new mn(t,e,this._items.map(n=>n.ruleId))}return this._cached}compileAG(t,e,n){return this._hasAnchors?e?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G0):this.compile(t)}_resolveAnchors(t,e,n){let a=this._items.map(s=>s.resolveAnchors(e,n));return new mn(t,a,this._items.map(s=>s.ruleId))}},mn=class{constructor(t,e,n){this.regExps=e,this.rules=n,this.scanner=t.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const t=[];for(let e=0,n=this.rules.length;e{const s=this._scopeToLanguage(a),i=this._toStandardTokenType(a);return new Le(s,i)}),this._defaultAttributes=new Le(e,8),this._embeddedLanguagesMatcher=new ma(Object.entries(n||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return e===null?Pe._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const n=e.match(Pe.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}};Xe._NULL_SCOPE_METADATA=new Le(0,0);Xe.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;var da=Xe,ma=class{constructor(t){if(t.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(t);const e=t.map(([n,a])=>Gn(n));e.sort(),e.reverse(),this.scopesRegExp=new RegExp(`^((${e.join(")|(")}))($|\\.)`,"")}}match(t){if(!this.scopesRegExp)return;const e=t.match(this.scopesRegExp);if(e)return this.values.get(e[1])}},pn=class{constructor(t,e){this.stack=t,this.stoppedEarly=e}};function Mn(t,e,n,a,s,i,r,c){const o=e.content.length;let l=!1,d=-1;if(r){const p=pa(t,e,n,a,s,i);s=p.stack,a=p.linePos,n=p.isFirstLine,d=p.anchorPosition}const u=Date.now();for(;!l;){if(c!==0&&Date.now()-u>c)return new pn(s,!0);m()}return new pn(s,!1);function m(){const p=ba(t,e,n,a,s,d);if(!p){i.produce(s,o),l=!0;return}const b=p.captureIndices,f=p.matchedRuleId,h=b&&b.length>0?b[0].end>a:!1;if(f===ca){const _=s.getRule(t);i.produce(s,b[0].start),s=s.withContentNameScopesList(s.nameScopesList),J(t,e,n,s,i,_.endCaptures,b),i.produce(s,b[0].end);const y=s;if(s=s.parent,d=y.getAnchorPos(),!h&&y.getEnterPos()===a){s=y,i.produce(s,o),l=!0;return}}else{const _=t.getRule(f);i.produce(s,b[0].start);const y=s,$=_.getName(e.content,b),w=s.contentNameScopesList.pushAttributed($,t);if(s=s.push(f,a,d,b[0].end===o,null,w,w),_ instanceof Re){const k=_;J(t,e,n,s,i,k.beginCaptures,b),i.produce(s,b[0].end),d=b[0].end;const Z=k.getContentName(e.content,b),N=w.pushAttributed(Z,t);if(s=s.withContentNameScopesList(N),k.endHasBackReferences&&(s=s.withEndRule(k.getEndWithResolvedBackReferences(e.content,b))),!h&&y.hasSameRuleAs(s)){s=s.pop(),i.produce(s,o),l=!0;return}}else if(_ instanceof ge){const k=_;J(t,e,n,s,i,k.beginCaptures,b),i.produce(s,b[0].end),d=b[0].end;const Z=k.getContentName(e.content,b),N=w.pushAttributed(Z,t);if(s=s.withContentNameScopesList(N),k.whileHasBackReferences&&(s=s.withEndRule(k.getWhileWithResolvedBackReferences(e.content,b))),!h&&y.hasSameRuleAs(s)){s=s.pop(),i.produce(s,o),l=!0;return}}else if(J(t,e,n,s,i,_.captures,b),i.produce(s,b[0].end),s=s.pop(),!h){s=s.safePop(),i.produce(s,o),l=!0;return}}b[0].end>a&&(a=b[0].end,n=!1)}}function pa(t,e,n,a,s,i){let r=s.beginRuleCapturedEOL?0:-1;const c=[];for(let o=s;o;o=o.pop()){const l=o.getRule(t);l instanceof ge&&c.push({rule:l,stack:o})}for(let o=c.pop();o;o=c.pop()){const{ruleScanner:l,findOptions:d}=ha(o.rule,t,o.stack.endRule,n,a===r),u=l.findNextMatchSync(e,a,d);if(u){if(u.ruleId!==Pn){s=o.stack.pop();break}u.captureIndices&&u.captureIndices.length&&(i.produce(o.stack,u.captureIndices[0].start),J(t,e,n,o.stack,i,o.rule.whileCaptures,u.captureIndices),i.produce(o.stack,u.captureIndices[0].end),r=u.captureIndices[0].end,u.captureIndices[0].end>a&&(a=u.captureIndices[0].end,n=!1))}else{s=o.stack.pop();break}}return{stack:s,linePos:a,anchorPosition:r,isFirstLine:n}}function ba(t,e,n,a,s,i){const r=ga(t,e,n,a,s,i),c=t.getInjections();if(c.length===0)return r;const o=fa(c,t,e,n,a,s,i);if(!o)return r;if(!r)return o;const l=r.captureIndices[0].start,d=o.captureIndices[0].start;return d=c)&&(c=$,o=y.captureIndices,l=y.ruleId,d=b.priority,c===s))break}return o?{priorityMatch:d===-1,captureIndices:o,matchedRuleId:l}:null}function Un(t,e,n,a,s){return{ruleScanner:t.compileAG(e,n,a,s),findOptions:0}}function ha(t,e,n,a,s){return{ruleScanner:t.compileWhileAG(e,n,a,s),findOptions:0}}function J(t,e,n,a,s,i,r){if(i.length===0)return;const c=e.content,o=Math.min(i.length,r.length),l=[],d=r[0].end;for(let u=0;ud)break;for(;l.length>0&&l[l.length-1].endPos<=p.start;)s.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?s.produceFromScopes(l[l.length-1].scopes,p.start):s.produce(a,p.start),m.retokenizeCapturedWithRuleId){const f=m.getName(c,r),h=a.contentNameScopesList.pushAttributed(f,t),_=m.getContentName(c,r),y=h.pushAttributed(_,t),$=a.push(m.retokenizeCapturedWithRuleId,p.start,-1,!1,null,h,y),w=t.createOnigString(c.substring(0,p.end));Mn(t,w,n&&p.start===0,p.start,$,s,!1,0),Rn(w);continue}const b=m.getName(c,r);if(b!==null){const h=(l.length>0?l[l.length-1].scopes:a.contentNameScopesList).pushAttributed(b,t);l.push(new ya(h,p.end))}}for(;l.length>0;)s.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var ya=class{constructor(t,e){this.scopes=t,this.endPos=e}};function _a(t,e,n,a,s,i,r,c){return new xa(t,e,n,a,s,i,r,c)}function bn(t,e,n,a,s){const i=pe(e,fe),r=In.getCompiledRuleId(n,a,s.repository);for(const c of i)t.push({debugSelector:e,matcher:c.matcher,ruleId:r,grammar:s,priority:c.priority})}function fe(t,e){if(e.length{for(let s=n;sn&&t.substr(0,n)===e&&t[n]==="."}var xa=class{constructor(t,e,n,a,s,i,r,c){if(this._rootScopeName=t,this.balancedBracketSelectors=i,this._onigLib=c,this._basicScopeAttributesProvider=new da(n,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=r,this._grammar=gn(e,null),this._injections=null,this._tokenTypeMatchers=[],s)for(const o of Object.keys(s)){const l=pe(o,fe);for(const d of l)this._tokenTypeMatchers.push({matcher:d.matcher,type:s[o]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const t of this._ruleId2desc)t&&t.dispose()}createOnigScanner(t){return this._onigLib.createOnigScanner(t)}createOnigString(t){return this._onigLib.createOnigString(t)}getMetadataForScope(t){return this._basicScopeAttributesProvider.getBasicScopeAttributes(t)}_collectInjections(){const t={lookup:s=>s===this._rootScopeName?this._grammar:this.getExternalGrammar(s),injections:s=>this._grammarRepository.injections(s)},e=[],n=this._rootScopeName,a=t.lookup(n);if(a){const s=a.injections;if(s)for(let r in s)bn(e,r,s[r],this,a);const i=this._grammarRepository.injections(n);i&&i.forEach(r=>{const c=this.getExternalGrammar(r);if(c){const o=c.injectionSelector;o&&bn(e,o,c,this,c)}})}return e.sort((s,i)=>s.priority-i.priority),e}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(t){const e=++this._lastRuleId,n=t(e);return this._ruleId2desc[e]=n,n}getRule(t){return this._ruleId2desc[t]}getExternalGrammar(t,e){if(this._includedGrammars[t])return this._includedGrammars[t];if(this._grammarRepository){const n=this._grammarRepository.lookup(t);if(n)return this._includedGrammars[t]=gn(n,e&&e.$base),this._includedGrammars[t]}}tokenizeLine(t,e,n=0){const a=this._tokenize(t,e,!1,n);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(t,e,n=0){const a=this._tokenize(t,e,!0,n);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(t,e,n,a){this._rootId===-1&&(this._rootId=In.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let s;if(!e||e===Oe.NULL){s=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),d=this.themeProvider.getDefaults(),u=I.set(0,l.languageId,l.tokenType,null,d.fontStyle,d.foregroundId,d.backgroundId),m=this.getRule(this._rootId).getName(null,null);let p;m?p=Q.createRootAndLookUpScopeName(m,u,this):p=Q.createRoot("unknown",u),e=new Oe(null,this._rootId,-1,-1,!1,null,p,p)}else s=!1,e.reset();t=t+` +`;const i=this.createOnigString(t),r=i.content.length,c=new ka(n,t,this._tokenTypeMatchers,this.balancedBracketSelectors),o=Mn(this,i,s,0,e,c,!0,a);return Rn(i),{lineLength:r,lineTokens:c,ruleStack:o.stack,stoppedEarly:o.stoppedEarly}}};function gn(t,e){return t=Lt(t),t.repository=t.repository||{},t.repository.$self={$vscodeTextmateLocation:t.$vscodeTextmateLocation,patterns:t.patterns,name:t.scopeName},t.repository.$base=e||t.repository.$self,t}var Q=class T{constructor(e,n,a){this.parent=e,this.scopePath=n,this.tokenAttributes=a}static fromExtension(e,n){let a=e,s=(e==null?void 0:e.scopePath)??null;for(const i of n)s=Fe.push(s,i.scopeNames),a=new T(a,s,i.encodedTokenAttributes);return a}static createRoot(e,n){return new T(null,new Fe(null,e),n)}static createRootAndLookUpScopeName(e,n,a){const s=a.getMetadataForScope(e),i=new Fe(null,e),r=a.themeProvider.themeMatch(i),c=T.mergeAttributes(n,s,r);return new T(null,i,c)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return T.equals(this,e)}static equals(e,n){do{if(e===n||!e&&!n)return!0;if(!e||!n||e.scopeName!==n.scopeName||e.tokenAttributes!==n.tokenAttributes)return!1;e=e.parent,n=n.parent}while(!0)}static mergeAttributes(e,n,a){let s=-1,i=0,r=0;return a!==null&&(s=a.fontStyle,i=a.foregroundId,r=a.backgroundId),I.set(e,n.languageId,n.tokenType,null,s,i,r)}pushAttributed(e,n){if(e===null)return this;if(e.indexOf(" ")===-1)return T._pushAttributed(this,e,n);const a=e.split(/ /g);let s=this;for(const i of a)s=T._pushAttributed(s,i,n);return s}static _pushAttributed(e,n,a){const s=a.getMetadataForScope(n),i=e.scopePath.push(n),r=a.themeProvider.themeMatch(i),c=T.mergeAttributes(e.tokenAttributes,s,r);return new T(e,i,c)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){var s;const n=[];let a=this;for(;a&&a!==e;)n.push({encodedTokenAttributes:a.tokenAttributes,scopeNames:a.scopePath.getExtensionIfDefined(((s=a.parent)==null?void 0:s.scopePath)??null)}),a=a.parent;return a===e?n.reverse():void 0}},Ie=class H{constructor(e,n,a,s,i,r,c,o){this.parent=e,this.ruleId=n,this.beginRuleCapturedEOL=i,this.endRule=r,this.nameScopesList=c,this.contentNameScopesList=o,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=a,this._anchorPos=s}equals(e){return e===null?!1:H._equals(this,e)}static _equals(e,n){return e===n?!0:this._structuralEquals(e,n)?Q.equals(e.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(e,n){do{if(e===n||!e&&!n)return!0;if(!e||!n||e.depth!==n.depth||e.ruleId!==n.ruleId||e.endRule!==n.endRule)return!1;e=e.parent,n=n.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){H._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,n,a,s,i,r,c){return new H(this,e,n,a,s,i,r,c)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,n){var a,s;return this.parent&&(n=this.parent._writeString(e,n)),e[n++]=`(${this.ruleId}, ${(a=this.nameScopesList)==null?void 0:a.toString()}, ${(s=this.contentNameScopesList)==null?void 0:s.toString()})`,n}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new H(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let n=this;for(;n&&n._enterPos===e._enterPos;){if(n.ruleId===e.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){var e,n,a;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((n=this.nameScopesList)==null?void 0:n.getExtensionIfDefined(((e=this.parent)==null?void 0:e.nameScopesList)??null))??[],contentNameScopesList:((a=this.contentNameScopesList)==null?void 0:a.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(e,n){const a=Q.fromExtension((e==null?void 0:e.nameScopesList)??null,n.nameScopesList);return new H(e,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,a,Q.fromExtension(a,n.contentNameScopesList))}};Ie.NULL=new Ie(null,0,0,0,!1,null,null,null);var Oe=Ie,Aa=class{constructor(t,e){this.allowAny=!1,this.balancedBracketScopes=t.flatMap(n=>n==="*"?(this.allowAny=!0,[]):pe(n,fe).map(a=>a.matcher)),this.unbalancedBracketScopes=e.flatMap(n=>pe(n,fe).map(a=>a.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(t){for(const e of this.unbalancedBracketScopes)if(e(t))return!1;for(const e of this.balancedBracketScopes)if(e(t))return!0;return this.allowAny}},ka=class{constructor(t,e,n,a){this.balancedBracketSelectors=a,this._emitBinaryTokens=t,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(t,e){this.produceFromScopes(t.contentNameScopesList,e)}produceFromScopes(t,e){var a;if(this._lastTokenEndIndex>=e)return;if(this._emitBinaryTokens){let s=(t==null?void 0:t.tokenAttributes)??0,i=!1;if((a=this.balancedBracketSelectors)!=null&&a.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const r=(t==null?void 0:t.getScopeNames())??[];for(const c of this._tokenTypeOverrides)c.matcher(r)&&(s=I.set(s,0,c.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(r))}if(i&&(s=I.set(s,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s){this._lastTokenEndIndex=e;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(s),this._lastTokenEndIndex=e;return}const n=(t==null?void 0:t.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:e,scopes:n}),this._lastTokenEndIndex=e}getResult(t,e){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===e-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(t,e),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(t,e){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===e-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(t,e),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let a=0,s=this._binaryTokens.length;a0;)r.Q.map(c=>this._loadSingleGrammar(c.scopeName)),r.processQueue();return this._grammarForScopeName(e,n,a,s,i)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){const n=this._options.loadGrammar(e);if(n){const a=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(n,a)}}addGrammar(e,n=[],a=0,s=null){return this._syncRegistry.addGrammar(e,n),this._grammarForScopeName(e.scopeName,a,s)}_grammarForScopeName(e,n=0,a=null,s=null,i=null){return this._syncRegistry.grammarForScopeName(e,n,a,s,i)}},Ve=Oe.NULL;function ke(t,e=!1){var i;const n=t.split(/(\r?\n)/g);let a=0;const s=[];for(let r=0;rn&&a.push({...t,content:t.content.slice(n,s),offset:t.offset+n}),n=s;return na-s);return n.length?t.map(a=>a.flatMap(s=>{const i=n.filter(r=>s.offsetr-s.offset).sort((r,c)=>r-c);return i.length?va(s,i):s})):t}async function Wn(t){return Promise.resolve(typeof t=="function"?t():t).then(e=>e.default||e)}function he(t,e){const n=typeof t=="string"?{}:{...t.colorReplacements},a=typeof t=="string"?t:t.name;for(const[s,i]of Object.entries((e==null?void 0:e.colorReplacements)||{}))typeof i=="string"?n[s]=i:s===a&&Object.assign(n,i);return n}function L(t,e){return t&&((e==null?void 0:e[t==null?void 0:t.toLowerCase()])||t)}function Xn(t){const e={};return t.color&&(e.color=t.color),t.bgColor&&(e["background-color"]=t.bgColor),t.fontStyle&&(t.fontStyle&D.Italic&&(e["font-style"]="italic"),t.fontStyle&D.Bold&&(e["font-weight"]="bold"),t.fontStyle&D.Underline&&(e["text-decoration"]="underline")),e}function Vn(t){return Object.entries(t).map(([e,n])=>`${e}:${n}`).join(";")}function Fa(t){const e=ke(t,!0).map(([s])=>s);function n(s){if(s===t.length)return{line:e.length-1,character:e[e.length-1].length};let i=s,r=0;for(const c of e){if(in.source.length)throw new j(`Invalid decoration offset: ${r}. Code length: ${n.source.length}`);return{...s.indexToPos(r),offset:r}}else{const c=s.lines[r.line];if(c===void 0)throw new j(`Invalid decoration position ${JSON.stringify(r)}. Lines length: ${s.lines.length}`);if(r.character<0||r.character>c.length)throw new j(`Invalid decoration position ${JSON.stringify(r)}. Line ${r.line} length: ${c.length}`);return{...r,offset:s.posToIndex(r.line,r.character)}}};const s=Fa(n.source),i=(n.options.decorations||[]).map(r=>({...r,start:a(r.start),end:a(r.end)}));Sa(i),t.set(n.meta,{decorations:i,converter:s,source:n.source})}return t.get(n.meta)}return{name:"shiki:decorations",tokens(n){var r;if(!((r=this.options.decorations)!=null&&r.length))return;const s=e(this).decorations.flatMap(c=>[c.start.offset,c.end.offset]);return Ca(n,s)},code(n){var d;if(!((d=this.options.decorations)!=null&&d.length))return;const a=e(this),s=Array.from(n.children).filter(u=>u.type==="element"&&u.tagName==="span");if(s.length!==a.converter.lines.length)throw new j(`Number of lines in code element (${s.length}) does not match the number of lines in the source (${a.converter.lines.length}). Failed to apply decorations.`);function i(u,m,p,b){const f=s[u];let h="",_=-1,y=-1;if(m===0&&(_=0),p===0&&(y=0),p===Number.POSITIVE_INFINITY&&(y=f.children.length),_===-1||y===-1)for(let w=0;w_);return u.tagName=m.tagName||"span",u.properties={...u.properties,...b,class:u.properties.class},(h=m.properties)!=null&&h.class&&Hn(u,m.properties.class),u=f(u,p)||u,u}const o=[],l=a.decorations.sort((u,m)=>m.start.offset-u.start.offset);for(const u of l){const{start:m,end:p}=u;if(m.line===p.line)i(m.line,m.character,p.character,u);else if(m.liner(b,u));i(p.line,0,p.character,u)}}o.forEach(u=>u())}}}function Sa(t){for(let e=0;en.end.offset)throw new j(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let a=e+1;aNumber.parseInt(r));i.length===3&&!i.some(r=>Number.isNaN(r))&&(s={type:"rgb",rgb:i})}else if(a==="5"){const i=Number.parseInt(t[e+n]);Number.isNaN(i)||(s={type:"table",index:Number(i)})}return[n,s]}function Ta(t){const e=[];for(let n=0;n=90&&s<=97?e.push({type:"setForegroundColor",value:{type:"named",name:P[s-90+8]}}):s>=100&&s<=107&&e.push({type:"setBackgroundColor",value:{type:"named",name:P[s-100+8]}})}return e}function Da(){let t=null,e=null,n=new Set;return{parse(a){const s=[];let i=0;do{const r=Ba(a,i),c=r.sequence?a.substring(i,r.startPosition):a.substring(i);if(c.length>0&&s.push({value:c,foreground:t,background:e,decorations:new Set(n)}),r.sequence){const o=Ta(r.sequence);for(const l of o)l.type==="resetAll"?(t=null,e=null,n.clear()):l.type==="resetForegroundColor"?t=null:l.type==="resetBackgroundColor"?e=null:l.type==="resetDecoration"&&n.delete(l.value);for(const l of o)l.type==="setForegroundColor"?t=l.value:l.type==="setBackgroundColor"?e=l.value:l.type==="setDecoration"&&n.add(l.value)}i=r.position}while(iMath.max(0,Math.min(o,255)).toString(16).padStart(2,"0")).join("")}`}let a;function s(){if(a)return a;a=[];for(let l=0;l{var o;return[c,(o=t.colors)==null?void 0:o[`terminal.ansi${c[0].toUpperCase()}${c.substring(1)}`]]}))),r=Da();return s.map(c=>r.parse(c[0]).map(o=>{let l,d;o.decorations.has("reverse")?(l=o.background?i.value(o.background):t.bg,d=o.foreground?i.value(o.foreground):t.fg):(l=o.foreground?i.value(o.foreground):t.fg,d=o.background?i.value(o.background):void 0),l=L(l,a),d=L(d,a),o.decorations.has("dim")&&(l=Ia(l));let u=D.None;return o.decorations.has("bold")&&(u|=D.Bold),o.decorations.has("italic")&&(u|=D.Italic),o.decorations.has("underline")&&(u|=D.Underline),{content:o.value,offset:c[1],color:l,bgColor:d,fontStyle:u}}))}function Ia(t){const e=t.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(e)if(e[3]){const a=Math.round(Number.parseInt(e[3],16)/2).toString(16).padStart(2,"0");return`#${e[1]}${e[2]}${a}`}else return e[2]?`#${e[1]}${e[2]}80`:`#${Array.from(e[1]).map(a=>`${a}${a}`).join("")}80`;const n=t.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return n?`var(${n[1]}-dim)`:t}function Je(t,e,n={}){const{lang:a="text",theme:s=t.getLoadedThemes()[0]}=n;if(Ye(a)||Ke(s))return ke(e).map(o=>[{content:o[0],offset:o[1]}]);const{theme:i,colorMap:r}=t.setTheme(s);if(a==="ansi")return Pa(i,e,n);const c=t.getLanguage(a);if(n.grammarState){if(n.grammarState.lang!==c.name)throw new j(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${c.name}"`);if(n.grammarState.theme!==s)throw new j(`Grammar state theme "${n.grammarState.theme}" does not match highlight theme "${s}"`)}return Ma(e,c,i,r,n)}function Oa(t,e,n={}){const{lang:a="text",theme:s=t.getLoadedThemes()[0]}=n;if(Ye(a)||Ke(s))throw new j("Plain language does not have grammar state");if(a==="ansi")throw new j("ANSI language does not have grammar state");const{theme:i,colorMap:r}=t.setTheme(s),c=t.getLanguage(a);return new we(Qe(e,c,i,r,n).stateStack,c.name,i.name)}function Ma(t,e,n,a,s){return Qe(t,e,n,a,s).tokens}function Qe(t,e,n,a,s){const i=he(n,s),{tokenizeMaxLineLength:r=0,tokenizeTimeLimit:c=500}=s,o=ke(t);let l=s.grammarState?Ga(s.grammarState):s.grammarContextCode!=null?Qe(s.grammarContextCode,e,n,a,{...s,grammarState:void 0,grammarContextCode:void 0}).stateStack:Ve,d=[];const u=[];for(let m=0,p=o.length;m0&&b.length>=r){d=[],u.push([{content:b,offset:f,color:"",fontStyle:0}]);continue}let h,_,y;s.includeExplanation&&(h=e.tokenizeLine(b,l),_=h.tokens,y=0);const $=e.tokenizeLine2(b,l,c),w=$.tokens.length/2;for(let k=0;kve.trim());break;case"object":U=R.scope;break;default:continue}rn.push({settings:R,selectors:U.map(ve=>ve.split(/ /))})}Ze.explanation=[];let on=0;for(;Z+on({scopeName:e}))}function Ha(t,e){const n=[];for(let a=0,s=e.length;a=0&&s>=0;)hn(t[a],n[s])&&(a-=1),s-=1;return a===-1}function Xa(t,e,n){const a=[];for(const{selectors:s,settings:i}of t)for(const r of s)if(Wa(r,e,n)){a.push(i);break}return a}function Kn(t,e,n){const a=Object.entries(n.themes).filter(r=>r[1]).map(r=>({color:r[0],theme:r[1]})),s=Va(...a.map(r=>Je(t,e,{...n,theme:r.theme})));return s[0].map((r,c)=>r.map((o,l)=>{const d={content:o.content,variants:{},offset:o.offset};return"includeExplanation"in n&&n.includeExplanation&&(d.explanation=o.explanation),s.forEach((u,m)=>{const{content:p,explanation:b,offset:f,...h}=u[c][l];d.variants[a[m].color]=h}),d}))}function Va(...t){const e=t.map(()=>[]),n=t.length;for(let a=0;ao[a]),i=e.map(()=>[]);e.forEach((o,l)=>o.push(i[l]));const r=s.map(()=>0),c=s.map(o=>o[0]);for(;c.every(o=>o);){const o=Math.min(...c.map(l=>l.content.length));for(let l=0;lf[1]).map(f=>({color:f[0],theme:f[1]})).sort((f,h)=>f.color===o?-1:h.color===o?1:0);if(d.length===0)throw new j("`themes` option must not be empty");const u=Kn(t,e,n);if(o&&!d.find(f=>f.color===o))throw new j(`\`themes\` option must contain the defaultColor key \`${o}\``);const m=d.map(f=>t.getTheme(f.theme)),p=d.map(f=>f.color);i=u.map(f=>f.map(h=>Ya(h,p,l,o)));const b=d.map(f=>he(f.theme,n));s=d.map((f,h)=>(h===0&&o?"":`${l+f.color}:`)+(L(m[h].fg,b[h])||"inherit")).join(";"),a=d.map((f,h)=>(h===0&&o?"":`${l+f.color}-bg:`)+(L(m[h].bg,b[h])||"inherit")).join(";"),r=`shiki-themes ${m.map(f=>f.name).join(" ")}`,c=o?void 0:[s,a].join(";")}else if("theme"in n){const o=he(n.theme,n);i=Je(t,e,n);const l=t.getTheme(n.theme);a=L(l.bg,o),s=L(l.fg,o),r=l.name}else throw new j("Invalid options, either `theme` or `themes` must be provided");return{tokens:i,fg:s,bg:a,themeName:r,rootStyle:c}}function Ya(t,e,n,a){const s={content:t.content,explanation:t.explanation,offset:t.offset},i=e.map(o=>Xn(t.variants[o])),r=new Set(i.flatMap(o=>Object.keys(o))),c=i.reduce((o,l,d)=>{for(const u of r){const m=l[u]||"inherit";if(d===0&&a)o[u]=m;else{const p=u==="color"?"":u==="background-color"?"-bg":`-${u}`,b=n+e[d]+(u==="color"?"":p);o[u]?o[u]+=`;${b}:${m}`:o[u]=`${b}:${m}`}}return o},{});return s.htmlStyle=a?Vn(c):Object.values(c).join(";"),s}function $e(t,e,n,a={meta:{},options:n,codeToHast:(s,i)=>$e(t,s,i),codeToTokens:(s,i)=>_e(t,s,i)}){var m,p;let s=e;for(const b of ye(n))s=((m=b.preprocess)==null?void 0:m.call(a,s,n))||s;let{tokens:i,fg:r,bg:c,themeName:o,rootStyle:l}=_e(t,s,n);const{mergeWhitespaces:d=!0}=n;d===!0?i=Ja(i):d==="never"&&(i=Qa(i));const u={...a,get source(){return s}};for(const b of ye(n))i=((p=b.tokens)==null?void 0:p.call(u,i))||i;return Ka(i,{...n,fg:r,bg:c,themeName:o,rootStyle:l},u)}function Ka(t,e,n){var m,p,b;const a=ye(e),s=[],i={type:"root",children:[]},{structure:r="classic"}=e;let c={type:"element",tagName:"pre",properties:{class:`shiki ${e.themeName||""}`,style:e.rootStyle||`background-color:${e.bg};color:${e.fg}`,tabindex:"0",...Object.fromEntries(Array.from(Object.entries(e.meta||{})).filter(([f])=>!f.startsWith("_")))},children:[]},o={type:"element",tagName:"code",properties:{},children:s};const l=[],d={...n,structure:r,addClassToHast:Hn,get source(){return n.source},get tokens(){return t},get options(){return e},get root(){return i},get pre(){return c},get code(){return o},get lines(){return l}};if(t.forEach((f,h)=>{var $,w;h&&(r==="inline"?i.children.push({type:"element",tagName:"br",properties:{},children:[]}):r==="classic"&&s.push({type:"text",value:` +`}));let _={type:"element",tagName:"span",properties:{class:"line"},children:[]},y=0;for(const k of f){let Z={type:"element",tagName:"span",properties:{},children:[{type:"text",value:k.content}]};const N=k.htmlStyle||Vn(Xn(k));N&&(Z.properties.style=N);for(const M of a)Z=(($=M==null?void 0:M.span)==null?void 0:$.call(d,Z,h+1,y,_))||Z;r==="inline"?i.children.push(Z):r==="classic"&&_.children.push(Z),y+=k.content.length}if(r==="classic"){for(const k of a)_=((w=k==null?void 0:k.line)==null?void 0:w.call(d,_,h+1))||_;l.push(_),s.push(_)}}),r==="classic"){for(const f of a)o=((m=f==null?void 0:f.code)==null?void 0:m.call(d,o))||o;c.children.push(o);for(const f of a)c=((p=f==null?void 0:f.pre)==null?void 0:p.call(d,c))||c;i.children.push(c)}let u=i;for(const f of a)u=((b=f==null?void 0:f.root)==null?void 0:b.call(d,u))||u;return u}function Ja(t){return t.map(e=>{const n=[];let a="",s=0;return e.forEach((i,r)=>{const o=!(i.fontStyle&&i.fontStyle&D.Underline);o&&i.content.match(/^\s+$/)&&e[r+1]?(s||(s=i.offset),a+=i.content):a?(o?n.push({...i,offset:s,content:a+i.content}):n.push({content:a,offset:s},i),s=0,a=""):n.push(i)}),n})}function Qa(t){return t.map(e=>e.flatMap(n=>{if(n.content.match(/^\s+$/))return n;const a=n.content.match(/^(\s*)(.*?)(\s*)$/);if(!a)return n;const[,s,i,r]=a;if(!s&&!r)return n;const c=[{...n,offset:n.offset+s.length,content:i}];return s&&c.unshift({content:s,offset:n.offset}),r&&c.push({content:r,offset:n.offset+s.length+i.length}),c}))}const es=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class ie{constructor(e,n,a){this.property=e,this.normal=n,a&&(this.space=a)}}ie.prototype.property={};ie.prototype.normal={};ie.prototype.space=null;function Jn(t,e){const n={},a={};let s=-1;for(;++s4&&n.slice(0,4)==="data"&&is.test(e)){if(e.charAt(4)==="-"){const i=e.slice(5).replace(_n,ls);a="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=e.slice(4);if(!_n.test(i)){let r=i.replace(rs,cs);r.charAt(0)!=="-"&&(r="-"+r),e="data"+r}}s=en}return new s(a,e)}function cs(t){return"-"+t.toLowerCase()}function ls(t){return t.charAt(1).toUpperCase()}const us=Jn([nt,et,st,it,as],"html"),rt=Jn([nt,et,st,it,ss],"svg"),$n={}.hasOwnProperty;function ds(t,e){const n=e||{};function a(s,...i){let r=a.invalid;const c=a.handlers;if(s&&$n.call(s,t)){const o=String(s[t]);r=$n.call(c,o)?c[o]:a.unknown}if(r)return r.call(this,s,...i)}return a.handlers=n.handlers||{},a.invalid=n.invalid,a.unknown=n.unknown,a}function ms(t,e){if(t=t.replace(e.subset?ps(e.subset):/["&'<>`]/g,a),e.subset||e.escapeOnly)return t;return t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n).replace(/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,a);function n(s,i,r){return e.format((s.charCodeAt(0)-55296)*1024+s.charCodeAt(1)-56320+65536,r.charCodeAt(i+2),e)}function a(s,i,r){return e.format(s.charCodeAt(0),r.charCodeAt(i+1),e)}}function ps(t){const e=[];let n=-1;for(;++n",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},hs=["cent","copy","divide","gt","lt","not","para","times"],ot={}.hasOwnProperty,He={};let oe;for(oe in Ee)ot.call(Ee,oe)&&(He[Ee[oe]]=oe);function ys(t,e,n,a){const s=String.fromCharCode(t);if(ot.call(He,s)){const i=He[s],r="&"+i;return n&&fs.includes(i)&&!hs.includes(i)&&(!a||e&&e!==61&&/[^\da-z]/i.test(String.fromCharCode(e)))?r:r+";"}return""}function _s(t,e,n){let a=bs(t,e,n.omitOptionalSemicolons),s;if((n.useNamedReferences||n.useShortestReferences)&&(s=ys(t,e,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!s)&&n.useShortestReferences){const i=gs(t,e,n.omitOptionalSemicolons);i.length|^->||--!>|"],As=["<",">"];function ks(t,e,n,a){return a.settings.bogusComments?"":"";function s(i){return X(i,Object.assign({},a.settings.characterReferences,{subset:As}))}}function ws(t,e,n,a){return""}function xn(t,e){const n=String(t);if(typeof e!="string")throw new TypeError("Expected character");let a=0,s=n.indexOf(e);for(;s!==-1;)a++,s=n.indexOf(e,s+e.length);return a}function zs(t,e){const n=e||{};return(t[t.length-1]===""?[...t,""]:t).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function js(t){return t.join(" ").trim()}const Zs=/[ \t\n\f\r]/g;function nn(t){return typeof t=="object"?t.type==="text"?An(t.value):!1:An(t)}function An(t){return t.replace(Zs,"")===""}const C=lt(1),ct=lt(-1),vs=[];function lt(t){return e;function e(n,a,s){const i=n?n.children:vs;let r=(a||0)+t,c=i[r];if(!s)for(;c&&nn(c);)r+=t,c=i[r];return c}}const Cs={}.hasOwnProperty;function ut(t){return e;function e(n,a,s){return Cs.call(t,n.tagName)&&t[n.tagName](n,a,s)}}const tn=ut({body:qs,caption:Ne,colgroup:Ne,dd:Gs,dt:Ns,head:Ne,html:Fs,li:Es,optgroup:Bs,option:Ts,p:Ss,rp:kn,rt:kn,tbody:Rs,td:wn,tfoot:Ls,th:wn,thead:Ds,tr:Ps});function Ne(t,e,n){const a=C(n,e,!0);return!a||a.type!=="comment"&&!(a.type==="text"&&nn(a.value.charAt(0)))}function Fs(t,e,n){const a=C(n,e);return!a||a.type!=="comment"}function qs(t,e,n){const a=C(n,e);return!a||a.type!=="comment"}function Ss(t,e,n){const a=C(n,e);return a?a.type==="element"&&(a.tagName==="address"||a.tagName==="article"||a.tagName==="aside"||a.tagName==="blockquote"||a.tagName==="details"||a.tagName==="div"||a.tagName==="dl"||a.tagName==="fieldset"||a.tagName==="figcaption"||a.tagName==="figure"||a.tagName==="footer"||a.tagName==="form"||a.tagName==="h1"||a.tagName==="h2"||a.tagName==="h3"||a.tagName==="h4"||a.tagName==="h5"||a.tagName==="h6"||a.tagName==="header"||a.tagName==="hgroup"||a.tagName==="hr"||a.tagName==="main"||a.tagName==="menu"||a.tagName==="nav"||a.tagName==="ol"||a.tagName==="p"||a.tagName==="pre"||a.tagName==="section"||a.tagName==="table"||a.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function Es(t,e,n){const a=C(n,e);return!a||a.type==="element"&&a.tagName==="li"}function Ns(t,e,n){const a=C(n,e);return!!(a&&a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd"))}function Gs(t,e,n){const a=C(n,e);return!a||a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd")}function kn(t,e,n){const a=C(n,e);return!a||a.type==="element"&&(a.tagName==="rp"||a.tagName==="rt")}function Bs(t,e,n){const a=C(n,e);return!a||a.type==="element"&&a.tagName==="optgroup"}function Ts(t,e,n){const a=C(n,e);return!a||a.type==="element"&&(a.tagName==="option"||a.tagName==="optgroup")}function Ds(t,e,n){const a=C(n,e);return!!(a&&a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot"))}function Rs(t,e,n){const a=C(n,e);return!a||a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot")}function Ls(t,e,n){return!C(n,e)}function Ps(t,e,n){const a=C(n,e);return!a||a.type==="element"&&a.tagName==="tr"}function wn(t,e,n){const a=C(n,e);return!a||a.type==="element"&&(a.tagName==="td"||a.tagName==="th")}const Is=ut({body:Us,colgroup:Hs,head:Ms,html:Os,tbody:Ws});function Os(t){const e=C(t,-1);return!e||e.type!=="comment"}function Ms(t){const e=t.children,n=[];let a=-1;for(;++a0}function Us(t){const e=C(t,-1,!0);return!e||e.type!=="comment"&&!(e.type==="text"&&nn(e.value.charAt(0)))&&!(e.type==="element"&&(e.tagName==="meta"||e.tagName==="link"||e.tagName==="script"||e.tagName==="style"||e.tagName==="template"))}function Hs(t,e,n){const a=ct(n,e),s=C(t,-1,!0);return n&&a&&a.type==="element"&&a.tagName==="colgroup"&&tn(a,n.children.indexOf(a),n)?!1:!!(s&&s.type==="element"&&s.tagName==="col")}function Ws(t,e,n){const a=ct(n,e),s=C(t,-1);return n&&a&&a.type==="element"&&(a.tagName==="thead"||a.tagName==="tbody")&&tn(a,n.children.indexOf(a),n)?!1:!!(s&&s.type==="element"&&s.tagName==="tr")}const ce={name:[[` +\f\r &/=>`.split(""),` +\f\r "&'/=>\``.split("")],[`\0 +\f\r "&'/<=>`.split(""),`\0 +\f\r "&'/<=>\``.split("")]],unquoted:[[` +\f\r &>`.split(""),`\0 +\f\r "&'<=>\``.split("")],[`\0 +\f\r "&'<=>\``.split(""),`\0 +\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Xs(t,e,n,a){const s=a.schema,i=s.space==="svg"?!1:a.settings.omitOptionalTags;let r=s.space==="svg"?a.settings.closeEmptyElements:a.settings.voids.includes(t.tagName.toLowerCase());const c=[];let o;s.space==="html"&&t.tagName==="svg"&&(a.schema=rt);const l=Vs(a,t.properties),d=a.all(s.space==="html"&&t.tagName==="template"?t.content:t);return a.schema=s,d&&(r=!1),(l||!i||!Is(t,e,n))&&(c.push("<",t.tagName,l?" "+l:""),r&&(s.space==="svg"||a.settings.closeSelfClosing)&&(o=l.charAt(l.length-1),(!a.settings.tightSelfClosing||o==="/"||o&&o!=='"'&&o!=="'")&&c.push(" "),c.push("/")),c.push(">")),c.push(d),!r&&(!i||!tn(t,e,n))&&c.push(""),c.join("")}function Vs(t,e){const n=[];let a=-1,s;if(e){for(s in e)if(e[s]!==null&&e[s]!==void 0){const i=Ys(t,s,e[s]);i&&n.push(i)}}for(;++axn(n,t.alternative)&&(r=t.alternative),c=r+X(n,Object.assign({},t.settings.characterReferences,{subset:(r==="'"?ce.single:ce.double)[s][i],attribute:!0}))+r),o+(c&&"="+c))}const Ks=["<","&"];function dt(t,e,n,a){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?t.value:X(t.value,Object.assign({},a.settings.characterReferences,{subset:Ks}))}function Js(t,e,n,a){return a.settings.allowDangerousHtml?t.value:dt(t,e,n,a)}function Qs(t,e,n,a){return a.all(t)}const ei=ds("type",{invalid:ni,unknown:ti,handlers:{comment:ks,doctype:ws,element:Xs,raw:Js,root:Qs,text:dt}});function ni(t){throw new Error("Expected node, not `"+t+"`")}function ti(t){const e=t;throw new Error("Cannot compile unknown node `"+e.type+"`")}const ai={},si={},ii=[];function ri(t,e){const n=ai,a=n.quote||'"',s=a==='"'?"'":'"';if(a!=='"'&&a!=="'")throw new Error("Invalid quote `"+a+"`, expected `'` or `\"`");return{one:oi,all:ci,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||es,characterReferences:n.characterReferences||si,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?rt:us,quote:a,alternative:s}.one(Array.isArray(t)?{type:"root",children:t}:t,void 0,void 0)}function oi(t,e,n){return ei(t,e,n,this)}function ci(t){const e=[],n=t&&t.children||ii;let a=-1;for(;++a$e(t,r,c),codeToTokens:(r,c)=>_e(t,r,c)};let s=ri($e(t,e,n,a));for(const r of ye(n))s=((i=r.postprocess)==null?void 0:i.call(a,s,n))||s;return s}function ui(){return 2147483648}function di(){return typeof performance<"u"?performance.now():Date.now()}const mi=(t,e)=>t+(e-t%e)%e;async function pi(t){let e,n;const a={};function s(p){n=p,a.HEAPU8=new Uint8Array(p),a.HEAPU32=new Uint32Array(p)}function i(p,b,f){a.HEAPU8.copyWithin(p,b,b+f)}function r(p){try{return e.grow(p-n.byteLength+65535>>>16),s(e.buffer),1}catch{}}function c(p){const b=a.HEAPU8.length;p=p>>>0;const f=ui();if(p>f)return!1;for(let h=1;h<=4;h*=2){let _=b*(1+.2/h);_=Math.min(_,p+100663296);const y=Math.min(f,mi(Math.max(p,_),65536));if(r(y))return!0}return!1}const o=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function l(p,b,f=1024){const h=b+f;let _=b;for(;p[_]&&!(_>=h);)++_;if(_-b>16&&p.buffer&&o)return o.decode(p.subarray(b,_));let y="";for(;b<_;){let $=p[b++];if(!($&128)){y+=String.fromCharCode($);continue}const w=p[b++]&63;if(($&224)===192){y+=String.fromCharCode(($&31)<<6|w);continue}const k=p[b++]&63;if(($&240)===224?$=($&15)<<12|w<<6|k:$=($&7)<<18|w<<12|k<<6|p[b++]&63,$<65536)y+=String.fromCharCode($);else{const Z=$-65536;y+=String.fromCharCode(55296|Z>>10,56320|Z&1023)}}return y}function d(p,b){return p?l(a.HEAPU8,p,b):""}const u={emscripten_get_now:di,emscripten_memcpy_big:i,emscripten_resize_heap:c,fd_write:()=>0};async function m(){const b=await t({env:u,wasi_snapshot_preview1:u});e=b.memory,s(e.buffer),Object.assign(a,b),a.UTF8ToString=d}return await m(),a}let F=null;function bi(t){throw new j(t.UTF8ToString(t.getLastOnigError()))}class ze{constructor(e){A(this,"utf16Length");A(this,"utf8Length");A(this,"utf16Value");A(this,"utf8Value");A(this,"utf16OffsetToUtf8");A(this,"utf8OffsetToUtf16");const n=e.length,a=ze._utf8ByteLength(e),s=a!==n,i=s?new Uint32Array(n+1):null;s&&(i[n]=a);const r=s?new Uint32Array(a+1):null;s&&(r[a]=n);const c=new Uint8Array(a);let o=0;for(let l=0;l=55296&&d<=56319&&l+1=56320&&p<=57343&&(u=(d-55296<<10)+65536|p-56320,m=!0)}s&&(i[l]=o,m&&(i[l+1]=o),u<=127?r[o+0]=l:u<=2047?(r[o+0]=l,r[o+1]=l):u<=65535?(r[o+0]=l,r[o+1]=l,r[o+2]=l):(r[o+0]=l,r[o+1]=l,r[o+2]=l,r[o+3]=l)),u<=127?c[o++]=u:u<=2047?(c[o++]=192|(u&1984)>>>6,c[o++]=128|(u&63)>>>0):u<=65535?(c[o++]=224|(u&61440)>>>12,c[o++]=128|(u&4032)>>>6,c[o++]=128|(u&63)>>>0):(c[o++]=240|(u&1835008)>>>18,c[o++]=128|(u&258048)>>>12,c[o++]=128|(u&4032)>>>6,c[o++]=128|(u&63)>>>0),m&&l++}this.utf16Length=n,this.utf8Length=a,this.utf16Value=e,this.utf8Value=c,this.utf16OffsetToUtf8=i,this.utf8OffsetToUtf16=r}static _utf8ByteLength(e){let n=0;for(let a=0,s=e.length;a=55296&&i<=56319&&a+1=56320&&o<=57343&&(r=(i-55296<<10)+65536|o-56320,c=!0)}r<=127?n+=1:r<=2047?n+=2:r<=65535?n+=3:n+=4,c&&a++}return n}createString(e){const n=e.omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,n),n}}const S=class S{constructor(e){A(this,"id",++S.LAST_ID);A(this,"_onigBinding");A(this,"content");A(this,"utf16Length");A(this,"utf8Length");A(this,"utf16OffsetToUtf8");A(this,"utf8OffsetToUtf16");A(this,"ptr");if(!F)throw new j("Must invoke loadWasm first.");this._onigBinding=F,this.content=e;const n=new ze(e);this.utf16Length=n.utf16Length,this.utf8Length=n.utf8Length,this.utf16OffsetToUtf8=n.utf16OffsetToUtf8,this.utf8OffsetToUtf16=n.utf8OffsetToUtf16,this.utf8Length<1e4&&!S._sharedPtrInUse?(S._sharedPtr||(S._sharedPtr=F.omalloc(1e4)),S._sharedPtrInUse=!0,F.HEAPU8.set(n.utf8Value,S._sharedPtr),this.ptr=S._sharedPtr):this.ptr=n.createString(F)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===S._sharedPtr?S._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};A(S,"LAST_ID",0),A(S,"_sharedPtr",0),A(S,"_sharedPtrInUse",!1);let xe=S;class gi{constructor(e){A(this,"_onigBinding");A(this,"_ptr");if(!F)throw new j("Must invoke loadWasm first.");const n=[],a=[];for(let c=0,o=e.length;c{let a=t;return a=await a,typeof a=="function"&&(a=await a(n)),typeof a=="function"&&(a=await a(n)),fi(a)?a=await a.instantiator(n):hi(a)?a=await a.default(n):(yi(a)&&(a=a.data),_i(a)?typeof WebAssembly.instantiateStreaming=="function"?a=await Ai(a)(n):a=await ki(a)(n):$i(a)?a=await Ge(a)(n):a instanceof WebAssembly.Module?a=await Ge(a)(n):"default"in a&&a.default instanceof WebAssembly.Module&&(a=await Ge(a.default)(n))),"instance"in a&&(a=a.instance),"exports"in a&&(a=a.exports),a})}return le=e(),le}function Ge(t){return e=>WebAssembly.instantiate(t,e)}function Ai(t){return e=>WebAssembly.instantiateStreaming(t,e)}function ki(t){return async e=>{const n=await t.arrayBuffer();return WebAssembly.instantiate(n,e)}}async function wi(t){return t&&await xi(t),{createScanner(e){return new gi(e)},createString(e){return new xe(e)}}}const zn={light:"#333333",dark:"#bbbbbb"},jn={light:"#fffffe",dark:"#1e1e1e"},Zn="__shiki_resolved";function an(t){var c,o,l,d,u;if(t!=null&&t[Zn])return t;const e={...t};e.tokenColors&&!e.settings&&(e.settings=e.tokenColors,delete e.tokenColors),e.type||(e.type="dark"),e.colorReplacements={...e.colorReplacements},e.settings||(e.settings=[]);let{bg:n,fg:a}=e;if(!n||!a){const m=e.settings?e.settings.find(p=>!p.name&&!p.scope):void 0;(c=m==null?void 0:m.settings)!=null&&c.foreground&&(a=m.settings.foreground),(o=m==null?void 0:m.settings)!=null&&o.background&&(n=m.settings.background),!a&&((l=e==null?void 0:e.colors)!=null&&l["editor.foreground"])&&(a=e.colors["editor.foreground"]),!n&&((d=e==null?void 0:e.colors)!=null&&d["editor.background"])&&(n=e.colors["editor.background"]),a||(a=e.type==="light"?zn.light:zn.dark),n||(n=e.type==="light"?jn.light:jn.dark),e.fg=a,e.bg=n}e.settings[0]&&e.settings[0].settings&&!e.settings[0].scope||e.settings.unshift({settings:{foreground:e.fg,background:e.bg}});let s=0;const i=new Map;function r(m){var b;if(i.has(m))return i.get(m);s+=1;const p=`#${s.toString(16).padStart(8,"0").toLowerCase()}`;return(b=e.colorReplacements)!=null&&b[`#${p}`]?r(m):(i.set(m,p),p)}e.settings=e.settings.map(m=>{var h,_;const p=((h=m.settings)==null?void 0:h.foreground)&&!m.settings.foreground.startsWith("#"),b=((_=m.settings)==null?void 0:_.background)&&!m.settings.background.startsWith("#");if(!p&&!b)return m;const f={...m,settings:{...m.settings}};if(p){const y=r(m.settings.foreground);e.colorReplacements[y]=m.settings.foreground,f.settings.foreground=y}if(b){const y=r(m.settings.background);e.colorReplacements[y]=m.settings.background,f.settings.background=y}return f});for(const m of Object.keys(e.colors||{}))if((m==="editor.foreground"||m==="editor.background"||m.startsWith("terminal.ansi"))&&!((u=e.colors[m])!=null&&u.startsWith("#"))){const p=r(e.colors[m]);e.colorReplacements[p]=e.colors[m],e.colors[m]=p}return Object.defineProperty(e,Zn,{enumerable:!1,writable:!1,value:!0}),e}async function mt(t){return Array.from(new Set((await Promise.all(t.filter(e=>!ja(e)).map(async e=>await Wn(e).then(n=>Array.isArray(n)?n:[n])))).flat()))}async function pt(t){return(await Promise.all(t.map(async n=>Za(n)?null:an(await Wn(n))))).filter(n=>!!n)}class zi extends za{constructor(n,a,s,i={}){super(n);A(this,"_resolver");A(this,"_themes");A(this,"_langs");A(this,"_alias");A(this,"_resolvedThemes",new Map);A(this,"_resolvedGrammars",new Map);A(this,"_langMap",new Map);A(this,"_langGraph",new Map);A(this,"_textmateThemeCache",new WeakMap);A(this,"_loadedThemesCache",null);A(this,"_loadedLanguagesCache",null);this._resolver=n,this._themes=a,this._langs=s,this._alias=i,this._themes.map(r=>this.loadTheme(r)),this.loadLanguages(this._langs)}getTheme(n){return typeof n=="string"?this._resolvedThemes.get(n):this.loadTheme(n)}loadTheme(n){const a=an(n);return a.name&&(this._resolvedThemes.set(a.name,a),this._loadedThemesCache=null),a}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(n){let a=this._textmateThemeCache.get(n);a||(a=me.createFromRawTheme(n),this._textmateThemeCache.set(n,a)),this._syncRegistry.setTheme(a)}getGrammar(n){if(this._alias[n]){const a=new Set([n]);for(;this._alias[n];){if(n=this._alias[n],a.has(n))throw new j(`Circular alias \`${Array.from(a).join(" -> ")} -> ${n}\``);a.add(n)}}return this._resolvedGrammars.get(n)}loadLanguage(n){var r,c,o,l;if(this.getGrammar(n.name))return;const a=new Set([...this._langMap.values()].filter(d=>{var u;return(u=d.embeddedLangsLazy)==null?void 0:u.includes(n.name)}));this._resolver.addLanguage(n);const s={balancedBracketSelectors:n.balancedBracketSelectors||["*"],unbalancedBracketSelectors:n.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(n.scopeName,n);const i=this.loadGrammarWithConfiguration(n.scopeName,1,s);if(i.name=n.name,this._resolvedGrammars.set(n.name,i),n.aliases&&n.aliases.forEach(d=>{this._alias[d]=n.name}),this._loadedLanguagesCache=null,a.size)for(const d of a)this._resolvedGrammars.delete(d.name),this._loadedLanguagesCache=null,(c=(r=this._syncRegistry)==null?void 0:r._injectionGrammars)==null||c.delete(d.scopeName),(l=(o=this._syncRegistry)==null?void 0:o._grammars)==null||l.delete(d.scopeName),this.loadLanguage(this._langMap.get(d.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(n){for(const i of n)this.resolveEmbeddedLanguages(i);const a=Array.from(this._langGraph.entries()),s=a.filter(([i,r])=>!r);if(s.length){const i=a.filter(([r,c])=>{var o;return c&&((o=c.embeddedLangs)==null?void 0:o.some(l=>s.map(([d])=>d).includes(l)))}).filter(r=>!s.includes(r));throw new j(`Missing languages ${s.map(([r])=>`\`${r}\``).join(", ")}, required by ${i.map(([r])=>`\`${r}\``).join(", ")}`)}for(const[i,r]of a)this._resolver.addLanguage(r);for(const[i,r]of a)this.loadLanguage(r)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(n){if(this._langMap.set(n.name,n),this._langGraph.set(n.name,n),n.embeddedLangs)for(const a of n.embeddedLangs)this._langGraph.set(a,this._langMap.get(a))}}class ji{constructor(e,n){A(this,"_langs",new Map);A(this,"_scopeToLang",new Map);A(this,"_injections",new Map);A(this,"_onigLib");this._onigLib={createOnigScanner:a=>e.createScanner(a),createOnigString:a=>e.createString(a)},n.forEach(a=>this.addLanguage(a))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(n=>{this._langs.set(n,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(n=>{this._injections.get(n)||this._injections.set(n,[]),this._injections.get(n).push(e.scopeName)})}getInjections(e){const n=e.split(".");let a=[];for(let s=1;s<=n.length;s++){const i=n.slice(0,s).join(".");a=[...a,...this._injections.get(i)||[]]}return a}}let K=0;function Zi(t){K+=1,t.warnings!==!1&&K>=10&&K%10===0&&console.warn(`[Shiki] ${K} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let e=!1;if(!t.engine)throw new j("`engine` option is required for synchronous mode");const n=(t.langs||[]).flat(1),a=(t.themes||[]).flat(1).map(an),s=new ji(t.engine,n),i=new zi(s,a,n,t.langAlias);let r;function c(y){h();const $=i.getGrammar(typeof y=="string"?y:y.name);if(!$)throw new j(`Language \`${y}\` not found, you may need to load it first`);return $}function o(y){if(y==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};h();const $=i.getTheme(y);if(!$)throw new j(`Theme \`${y}\` not found, you may need to load it first`);return $}function l(y){h();const $=o(y);r!==y&&(i.setTheme($),r=y);const w=i.getColorMap();return{theme:$,colorMap:w}}function d(){return h(),i.getLoadedThemes()}function u(){return h(),i.getLoadedLanguages()}function m(...y){h(),i.loadLanguages(y.flat(1))}async function p(...y){return m(await mt(y))}async function b(...y){h();for(const $ of y.flat(1))i.loadTheme($)}async function f(...y){return h(),b(await pt(y))}function h(){if(e)throw new j("Shiki instance has been disposed")}function _(){e||(e=!0,i.dispose(),K-=1)}return{setTheme:l,getTheme:o,getLanguage:c,getLoadedThemes:d,getLoadedLanguages:u,loadLanguage:p,loadLanguageSync:m,loadTheme:f,loadThemeSync:b,dispose:_,[Symbol.dispose]:_}}let vi;async function Ci(t={}){const[e,n,a]=await Promise.all([pt(t.themes||[]),mt(t.langs||[]),t.engine||wi(t.loadWasm||vi)]);return Zi({...t,loadWasm:void 0,themes:e,langs:n,engine:a})}async function Fi(t={}){const e=await Ci(t);return{getLastGrammarState:(n,a)=>Oa(e,n,a),codeToTokensBase:(n,a)=>Je(e,n,a),codeToTokensWithThemes:(n,a)=>Kn(e,n,a),codeToTokens:(n,a)=>_e(e,n,a),codeToHast:(n,a)=>$e(e,n,a),codeToHtml:(n,a)=>li(e,n,a),...e,getInternalContext:()=>e}}new Set("!?:=+$(){}_><# ");new Set("-!:=_>< ");function qi(t){let e="rules"in t?t.rules:void 0;if(!e){e=[];const a=t.settings||t.tokenColors;for(const{scope:s,settings:i}of a){const r=Array.isArray(s)?s:[s];for(const c of r)i.foreground&&c&&e.push({token:c,foreground:Ae(i.foreground)})}}const n=Object.fromEntries(Object.entries(t.colors||{}).map(([a,s])=>[a,`#${Ae(s)}`]));return{base:t.type==="light"?"vs":"vs-dark",inherit:!1,colors:n,rules:e}}function Si(t,e,n={}){const a=new Map,s=t.getLoadedThemes();for(const m of s){const p=t.getTheme(m),b=qi(p);a.set(m,b),e.editor.defineTheme(m,b)}const i=[],r=new Map,c=e.editor.setTheme.bind(e.editor);e.editor.setTheme=m=>{const p=t.setTheme(m),b=a.get(m);i.length=p.colorMap.length,p.colorMap.forEach((f,h)=>{i[h]=f}),r.clear(),b==null||b.rules.forEach(f=>{const h=Ae(f.foreground);h&&!r.has(h)&&r.set(h,f.token)}),c(m)},e.editor.setTheme(s[0]);function o(m){return r.get(m)}const{tokenizeMaxLineLength:l=2e4,tokenizeTimeLimit:d=500}=n,u=new Set(e.languages.getLanguages().map(m=>m.id));for(const m of t.getLoadedLanguages())u.has(m)&&e.languages.setTokensProvider(m,{getInitialState(){return new ae(Ve)},tokenize(p,b){if(p.length>=l)return{endState:b,tokens:[{startIndex:0,scopes:""}]};const h=t.getLanguage(m).tokenizeLine2(p,b.ruleStack,d);h.stoppedEarly&&console.warn(`Time limit reached when tokenizing line: ${p.substring(0,100)}`);const _=h.tokens.length/2,y=[];for(let $=0;$<_;$++){const w=h.tokens[2*$],k=h.tokens[2*$+1],Z=Ae(i[I.getForeground(k)]||""),N=o(Z)||"";y.push({startIndex:w,scopes:N})}return{endState:new ae(h.ruleStack),tokens:y}}})}class ae{constructor(e){this._ruleStack=e}get ruleStack(){return this._ruleStack}clone(){return new ae(this._ruleStack)}equals(e){return!(!e||!(e instanceof ae)||e!==this||e._ruleStack!==this._ruleStack)}}function Ae(t){return t&&(t=(t.charCodeAt(0)===35?t.slice(1):t).toLowerCase(),(t.length===3||t.length===4)&&(t=t.split("").map(e=>e+e).join("")),t)}const Ei=Object.freeze({displayName:"JavaScript",name:"javascript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js"}},name:"meta.array.literal.js",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js"},2:{name:"variable.parameter.js"}},match:"(?:(?)",name:"meta.arrow.js"},{begin:"(?:(?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js"},2:{name:"entity.name.tag.directive.js"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js"}},name:"meta.tag.js",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js"},{match:"=",name:"keyword.operator.assignment.js"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"((@)(?:access|api))\\s+(private|protected|public)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\s*/]|\\*[^/])+)"},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.js"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"((@)kind)\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)"},{begin:"((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)"},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js"},{captures:{1:{name:"keyword.operator.logical.js"},2:{name:"keyword.operator.assignment.compound.js"},3:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$0-9A-Za-z])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js"},{match:"\\=",name:"keyword.operator.assignment.js"},{match:"--",name:"keyword.operator.decrement.js"},{match:"\\+\\+",name:"keyword.operator.increment.js"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js"},{begin:"(?<=[_$0-9A-Za-z)\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$0-9A-Za-z)\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{match:"\\#?[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.property.js variable.object.property.js"},{match:"\\?",name:"keyword.operator.optional.js"},{match:"\\!",name:"keyword.operator.definiteassignment.js"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js punctuation.accessor.optional.js"},{match:"\\!",name:"meta.function-call.js keyword.operator.definiteassignment.js"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.js"}]},"function-declaration":{begin:"(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))"},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.constant.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])"},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{match:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])",name:"variable.other.constant.js"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"variable.other.readwrite.js"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js"},2:{name:"punctuation.definition.tag.begin.js"},3:{name:"entity.name.tag.namespace.js"},4:{name:"punctuation.separator.namespace.js"},5:{name:"entity.name.tag.js"},6:{name:"support.class.component.js"},7:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.js",patterns:[{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"(?=|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.js"},"jsx-tag-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?!<\\s*[_$A-Za-z][_$0-9A-Za-z]*((\\s+extends\\s+[^=>])|,))(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"()",endCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.without-attributes.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"keyword.operator.new.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"storage.type.property.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?=(\\b(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",name:"meta.object.member.js"},{captures:{0:{name:"meta.object-literal.key.js"}},match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js"}},end:"(?=,|\\})",name:"meta.object.member.js",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js"},{captures:{1:{name:"keyword.control.as.js"},2:{name:"storage.modifier.js"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.js"}},match:"(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?:(?])",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},contentName:"meta.arrow.js meta.return.type.arrow.js",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js"},2:{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.js"},2:{name:"support.type.object.module.js"},3:{name:"punctuation.accessor.js"},4:{name:"punctuation.accessor.optional.js"},5:{name:"support.type.object.module.js"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.tagged-template.js"}]},{include:"#type-arguments"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"},2:{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:"`",endCaptures:{0:{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^\\d])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?))))))",end:"(?<=\\))",name:"meta.type.function.js",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.js"},2:{name:"entity.name.type.js"},3:{name:"keyword.operator.expression.extends.js"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js"},2:{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js"},2:{name:"punctuation.accessor.js"},3:{name:"punctuation.accessor.optional.js"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"entity.name.type.js"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.object.type.js",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.js"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},name:"meta.type.paren.cover.js",patterns:[{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"entity.name.function.js variable.language.this.js"},4:{name:"entity.name.function.js"},5:{name:"keyword.operator.optional.js"}},match:"(?:(?)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:"(?=$|^|[;,=}]|((?)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.js entity.name.function.js"},2:{name:"keyword.operator.definiteassignment.js"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js"}},end:"(?=$|^|[,);}\\]]|((?>>",name:"invalid.deprecated.combinator.css"},{match:">>|>|\\+|~",name:"keyword.operator.combinator.css"}]},commas:{match:",",name:"punctuation.separator.list.comma.css"},"comment-block":{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},escapes:{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?<:=]|\\)|/\\*)"},"media-query":{begin:"\\G",end:"(?=\\s*[{;])",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#media-types"},{match:"(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)",name:"keyword.operator.logical.$1.media.css"},{match:"(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)",name:"keyword.operator.logical.and.media.css"},{match:",(?:(?:\\s*,)+|(?=\\s*[;){]))",name:"invalid.illegal.comma.css"},{include:"#commas"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.css"}},patterns:[{include:"#media-features"},{include:"#media-feature-keywords"},{match:":",name:"punctuation.separator.key-value.css"},{match:">=|<=|=|<|>",name:"keyword.operator.comparison.css"},{captures:{1:{name:"constant.numeric.css"},2:{name:"keyword.operator.arithmetic.css"},3:{name:"constant.numeric.css"}},match:"(\\d+)\\s*(/)\\s*(\\d+)",name:"meta.ratio.css"},{include:"#numeric-values"},{include:"#comment-block"}]}]},"media-query-list":{begin:"(?=\\s*[^{;])",end:"(?=\\s*[{;])",patterns:[{include:"#media-query"}]},"media-types":{captures:{1:{name:"support.constant.media.css"},2:{name:"invalid.deprecated.constant.media.css"}},match:"(?i)(?<=^|\\s|,|\\*/)(?:(all|print|screen|speech)|(aural|braille|embossed|handheld|projection|tty|tv))(?=$|[{,\\s;]|/\\*)"},"numeric-values":{patterns:[{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.other.color.rgb-value.hex.css"},{captures:{1:{name:"keyword.other.unit.percentage.css"},2:{name:"keyword.other.unit.${2:/downcase}.css"}},match:"(?i)(?+~|]|/\\*)|(?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*(?:[!\"'%&(*;+~|]|/\\*)",name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#escapes"}]}},match:"(\\#)(-?(?!\\d)(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)",name:"entity.other.attribute-name.id.css"},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.entity.begin.bracket.square.css"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.entity.end.bracket.square.css"}},name:"meta.attribute-selector.css",patterns:[{include:"#comment-block"},{include:"#string"},{captures:{1:{name:"storage.modifier.ignore-case.css"}},match:`(?<=["'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)`},{captures:{1:{name:"string.unquoted.attribute-value.css",patterns:[{include:"#escapes"}]}},match:`(?<==)\\s*((?!/\\*)(?:[^\\\\"'\\s\\]]|\\\\.)+)`},{include:"#escapes"},{match:"[~|^$*]?=",name:"keyword.operator.pattern.css"},{match:"\\|",name:"punctuation.separator.css"},{captures:{1:{name:"entity.other.namespace-prefix.css",patterns:[{include:"#escapes"}]}},match:"(-?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+|\\*)(?=\\|(?!\\s|=|$|\\])(?:-?(?!\\d)|[\\\\\\w-]|[^\\x00-\\x7F]))"},{captures:{1:{name:"entity.other.attribute-name.css",patterns:[{include:"#escapes"}]}},match:"(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\\s*(?=[~|^\\]$*=]|/\\*)"}]},{include:"#pseudo-classes"},{include:"#pseudo-elements"},{include:"#functional-pseudo-classes"},{match:"(?\\s,.\\#|){:\\[]|/\\*|$)",name:"entity.name.tag.css"},"unicode-range":{captures:{0:{name:"constant.other.unicode-range.css"},1:{name:"punctuation.separator.dash.unicode-range.css"}},match:"(?)",patterns:[{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.css",patterns:[{captures:{0:{name:"source.css"}},match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.css",end:'(")',endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.css"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.css",end:"(')",endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.css"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},{begin:"on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 attributes, event handlers",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.event-handler.$1.html",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.js",patterns:[{captures:{0:{name:"source.js"},1:{patterns:[{include:"source.js"}]}},match:"(([^\\s\"'=<>`/]|/(?!>))+)",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.js",end:'(")',endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.js"}},name:"string.quoted.double.html",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:'([^\\n"/]|/(?![/*]))+'},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:'(?=")|\\n',name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:'(?=")|\\*/',endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.js",end:"(')",endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.js"}},name:"string.quoted.single.html",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:"([^\\n'/]|/(?![/*]))+"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:"(?=')|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:"(?=')|\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},{begin:"(data-[a-z\\-]+)(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 attributes, data-*",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.data-x.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"(align|bgcolor|border)(?![\\w:-])",beginCaptures:{0:{name:"invalid.deprecated.entity.other.attribute-name.html"}},comment:"HTML attributes, deprecated",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:`([^\\x{0020}"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)`,beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},"attribute-interior":{patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},cdata:{begin:"",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.cdata.html"},comment:{begin:"",name:"comment.block.html",patterns:[{match:"\\G-?>",name:"invalid.illegal.characters-not-allowed-here.html"},{match:")",name:"invalid.illegal.characters-not-allowed-here.html"},{match:"--!>",name:"invalid.illegal.characters-not-allowed-here.html"}]},"core-minus-invalid":{comment:"This should be the root pattern array includes minus #tags-invalid",patterns:[{include:"#xml-processing"},{include:"#comment"},{include:"#doctype"},{include:"#cdata"},{include:"#tags-valid"},{include:"#entities"}]},doctype:{begin:"",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.doctype.html",patterns:[{match:"\\G(?i:DOCTYPE)",name:"entity.name.tag.html"},{begin:'"',end:'"',name:"string.quoted.double.html"},{match:"[^\\s>]+",name:"entity.other.attribute-name.html"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},912:{name:"punctuation.definition.entity.html"}},comment:"Yes this is a bit ridiculous, there are quite a lot of these",match:"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)",name:"constant.character.entity.named.$2.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#\\d+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},math:{patterns:[{begin:`(?i)(<)(math)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:`([^\\x{0020}"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)`,beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.structure.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.structure.math.$2.html"},{begin:`(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.inline.math.$2.html"},{begin:`(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.inline.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.object.math.$2.html"},{begin:`(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.object.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.invalid.html"},{begin:`(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},svg:{patterns:[{begin:`(?i)(<)(svg)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:`([^\\x{0020}"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)`,beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.metadata.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.metadata.svg.$2.html"},{begin:`(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.metadata.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.structure.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.structure.svg.$2.html"},{begin:`(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.inline.svg.$2.html"},{begin:`(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.inline.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.object.svg.$2.html"},{begin:`(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.object.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.svg.$2.html"},{begin:`(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.invalid.html"},{begin:`(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},"tags-invalid":{patterns:[{begin:"(]*))(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.html",patterns:[{include:"#attribute"}]}]},"tags-valid":{patterns:[{begin:"(^[ \\t]+)?(?=<(?i:style)\\b(?!-))",beginCaptures:{1:{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{1:{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(?i)(<)(style)(?=\\s|/?>)",beginCaptures:{0:{name:"meta.tag.metadata.style.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.style.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.css-ignored-vscode"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{1:{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?=|type(?=[\\s=])(?!\\s*=\\s*(''|""|('|"|)(text/(javascript(1\\.[0-5])?|x-javascript|jscript|livescript|(x-)?ecmascript|babel)|application/((x-)?javascript|(x-)?ecmascript)|module)[\\s"'>]))))`,name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:`(?i:(?=type\\s*=\\s*('|"|)text/(x-handlebars|(x-(handlebars-)?|ng-)?template|html)[\\s"'>]))`,end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"text.html.basic"}},patterns:[{begin:"\\G",end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(noscript|title)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(col|hr|input)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(area|br|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((basefont|isindex))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((frame))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((applet))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.end.html",patterns:[{include:"#attribute"}]},{include:"#math"},{include:"#svg"},{begin:"(<)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.start.html",patterns:[{include:"#attribute"}]},{begin:"()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.end.html",patterns:[{include:"#attribute"}]}]},"xml-processing":{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(\\?>)",name:"meta.tag.metadata.processing.xml.html",patterns:[{include:"#attribute"}]}},scopeName:"text.html.basic",embeddedLangs:["javascript","css"]});var sn=[...Y,...je,Gi];const Bi=Object.freeze({displayName:"Markdown",name:"markdown",patterns:[{include:"#frontMatter"},{include:"#block"}],repository:{ampersand:{comment:"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",match:"&(?!([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+);)",name:"meta.other.valid-ampersand.markdown"},block:{patterns:[{include:"#separator"},{include:"#heading"},{include:"#blockquote"},{include:"#lists"},{include:"#fenced_code_block"},{include:"#raw_block"},{include:"#link-def"},{include:"#html"},{include:"#table"},{include:"#paragraph"}]},blockquote:{begin:"(^|\\G)[ ]{0,3}(>) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},bold:{begin:"(?(\\*\\*(?=\\w)|(?]*+>|(?`+)([^`]|(?!(?(?!`))`)*+\\k|\\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+|\\[((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+\\](([ ]?\\[[^\\]]*+\\])|(\\([ \\t]*+?[ \\t]*+((?['\"])(.*?)\\k<title>)?\\))))|(?!(?<=\\S)\\k<open>).)++(?<=\\S)(?=__\\b|\\*\\*)\\k<open>)",captures:{1:{name:"punctuation.definition.bold.markdown"}},end:"(?<=\\S)(\\1)",name:"markup.bold.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},bracket:{comment:"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",match:"<(?![a-zA-Z/?\\$!])",name:"meta.other.valid-bracket.markdown"},escape:{match:"\\\\[-`*_#+.!(){}\\[\\]\\\\>]",name:"constant.character.escape.markdown"},fenced_code_block:{patterns:[{include:"#fenced_code_block_css"},{include:"#fenced_code_block_basic"},{include:"#fenced_code_block_ini"},{include:"#fenced_code_block_java"},{include:"#fenced_code_block_lua"},{include:"#fenced_code_block_makefile"},{include:"#fenced_code_block_perl"},{include:"#fenced_code_block_r"},{include:"#fenced_code_block_ruby"},{include:"#fenced_code_block_php"},{include:"#fenced_code_block_sql"},{include:"#fenced_code_block_vs_net"},{include:"#fenced_code_block_xml"},{include:"#fenced_code_block_xsl"},{include:"#fenced_code_block_yaml"},{include:"#fenced_code_block_dosbatch"},{include:"#fenced_code_block_clojure"},{include:"#fenced_code_block_coffee"},{include:"#fenced_code_block_c"},{include:"#fenced_code_block_cpp"},{include:"#fenced_code_block_diff"},{include:"#fenced_code_block_dockerfile"},{include:"#fenced_code_block_git_commit"},{include:"#fenced_code_block_git_rebase"},{include:"#fenced_code_block_go"},{include:"#fenced_code_block_groovy"},{include:"#fenced_code_block_pug"},{include:"#fenced_code_block_js"},{include:"#fenced_code_block_js_regexp"},{include:"#fenced_code_block_json"},{include:"#fenced_code_block_jsonc"},{include:"#fenced_code_block_less"},{include:"#fenced_code_block_objc"},{include:"#fenced_code_block_swift"},{include:"#fenced_code_block_scss"},{include:"#fenced_code_block_perl6"},{include:"#fenced_code_block_powershell"},{include:"#fenced_code_block_python"},{include:"#fenced_code_block_julia"},{include:"#fenced_code_block_regexp_python"},{include:"#fenced_code_block_rust"},{include:"#fenced_code_block_scala"},{include:"#fenced_code_block_shell"},{include:"#fenced_code_block_ts"},{include:"#fenced_code_block_tsx"},{include:"#fenced_code_block_csharp"},{include:"#fenced_code_block_fsharp"},{include:"#fenced_code_block_dart"},{include:"#fenced_code_block_handlebars"},{include:"#fenced_code_block_markdown"},{include:"#fenced_code_block_log"},{include:"#fenced_code_block_erlang"},{include:"#fenced_code_block_elixir"},{include:"#fenced_code_block_latex"},{include:"#fenced_code_block_bibtex"},{include:"#fenced_code_block_twig"},{include:"#fenced_code_block_unknown"}]},fenced_code_block_basic:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.html",patterns:[{include:"text.html.basic"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_bibtex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.bibtex",patterns:[{include:"text.bibtex"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_c:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.c",patterns:[{include:"source.c"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_clojure:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.clojure",patterns:[{include:"source.clojure"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_coffee:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.coffee",patterns:[{include:"source.coffee"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_cpp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.cpp source.cpp",patterns:[{include:"source.cpp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_csharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.csharp",patterns:[{include:"source.cs"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_css:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.css",patterns:[{include:"source.css"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dart:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dart",patterns:[{include:"source.dart"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_diff:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.diff",patterns:[{include:"source.diff"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dockerfile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dockerfile",patterns:[{include:"source.dockerfile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dosbatch:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dosbatch",patterns:[{include:"source.batchfile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_elixir:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.elixir",patterns:[{include:"source.elixir"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_erlang:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.erlang",patterns:[{include:"source.erlang"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_fsharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.fsharp",patterns:[{include:"source.fsharp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_git_commit:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.git_commit",patterns:[{include:"text.git-commit"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_git_rebase:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.git_rebase",patterns:[{include:"text.git-rebase"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_go:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.go",patterns:[{include:"source.go"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_groovy:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.groovy",patterns:[{include:"source.groovy"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_handlebars:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.handlebars",patterns:[{include:"text.html.handlebars"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ini:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.ini",patterns:[{include:"source.ini"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_java:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.java",patterns:[{include:"source.java"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_js:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.javascript",patterns:[{include:"source.js"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_js_regexp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.js_regexp",patterns:[{include:"source.js.regexp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_json:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.json",patterns:[{include:"source.json"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_jsonc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.jsonc",patterns:[{include:"source.json.comments"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_julia:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.julia",patterns:[{include:"source.julia"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_latex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.latex",patterns:[{include:"text.tex.latex"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_less:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.less",patterns:[{include:"source.css.less"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_log:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.log",patterns:[{include:"text.log"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_lua:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_makefile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.makefile",patterns:[{include:"source.makefile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_markdown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.markdown",patterns:[{include:"text.html.markdown"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_objc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.objc",patterns:[{include:"source.objc"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_perl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.perl",patterns:[{include:"source.perl"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_perl6:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.perl6",patterns:[{include:"source.perl.6"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_php:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.php",patterns:[{include:"text.html.basic"},{include:"source.php"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_powershell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.powershell",patterns:[{include:"source.powershell"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_pug:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.pug",patterns:[{include:"text.pug"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.python",patterns:[{include:"source.python"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_r:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.r",patterns:[{include:"source.r"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_regexp_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.regexp_python",patterns:[{include:"source.regexp.python"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ruby:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.ruby",patterns:[{include:"source.ruby"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_rust:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.rust",patterns:[{include:"source.rust"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_scala:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.scala",patterns:[{include:"source.scala"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_scss:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.scss",patterns:[{include:"source.css.scss"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_shell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.shellscript",patterns:[{include:"source.shell"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_sql:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.sql",patterns:[{include:"source.sql"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_swift:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.swift",patterns:[{include:"source.swift"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ts:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.typescript",patterns:[{include:"source.ts"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_tsx:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.typescriptreact",patterns:[{include:"source.tsx"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_twig:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.twig",patterns:[{include:"source.twig"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_unknown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown"},fenced_code_block_vs_net:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.vs_net",patterns:[{include:"source.asp.vb.net"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_xml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.xml",patterns:[{include:"text.xml"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_xsl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.xsl",patterns:[{include:"text.xml.xsl"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_yaml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.yaml",patterns:[{include:"source.yaml"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},frontMatter:{applyEndPatternLast:1,begin:"\\A(?=(-{3,}))",end:"^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$",endCaptures:{0:{name:"punctuation.definition.end.frontmatter"}},patterns:[{begin:"\\A(-{3,})(.*)$",beginCaptures:{1:{name:"punctuation.definition.begin.frontmatter"},2:{name:"comment.frontmatter"}},contentName:"meta.embedded.block.frontmatter",patterns:[{include:"source.yaml"}],while:"^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)"}]},heading:{captures:{1:{patterns:[{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown"}]}},match:"(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",name:"markup.heading.markdown"},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},html:{patterns:[{begin:"(^|\\G)\\s*(<!--)",captures:{1:{name:"punctuation.definition.comment.html"},2:{name:"punctuation.definition.comment.html"}},end:"(-->)",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",end:"(?i)(.*)((</)(script|style|pre)(>))",endCaptures:{1:{patterns:[{include:"text.html.derivative"}]},2:{name:"meta.tag.structure.$4.end.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],while:"(?i)^(?!.*</(script|style|pre)>)"}]},{begin:"(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"}]},"image-inline":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.image.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.image.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\()[ \\t]*((<)((?:\\\\[<>]|[^<>\\n])*)(>)|((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*))[ \\t]*(?:((\\().+?(\\)))|((").+?("))|((').+?(')))?\\s*(\\))`,name:"meta.image.inline.markdown"},"image-ref":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.constant.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},inline:{patterns:[{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},italic:{begin:"(?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S)(?=(<[^>]*+>|(?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>|\\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+|\\[((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+\\](([ ]?\\[[^\\]]*+\\])|(\\([ \\t]*+<?(.*?)>?[ \\t]*+((?<title>['\"])(.*?)\\k<title>)?\\))))|\\k<open>\\k<open>|(?!(?<=\\S)\\k<open>).)++(?<=\\S)(?=_\\b|\\*)\\k<open>)",captures:{1:{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-def":{captures:{1:{name:"punctuation.definition.constant.markdown"},2:{name:"constant.other.reference.link.markdown"},3:{name:"punctuation.definition.constant.markdown"},4:{name:"punctuation.separator.key-value.markdown"},5:{name:"punctuation.definition.link.markdown"},6:{name:"markup.underline.link.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.begin.markdown"},11:{name:"punctuation.definition.string.end.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"}},match:`\\s*(\\[)([^]]+?)(\\])(:)[ \\t]*(?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?))[ \\t]*(?:((\\().+?(\\)))|((").+?("))|((').+?(')))?\\s*$`,name:"meta.link.reference.def.markdown"},"link-email":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},4:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},3:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\()[ \\t]*((<)((?:\\\\[<>]|[^<>\\n])*)(>)|((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*))[ \\t]*(?:((\\()[^()]*(\\)))|((")[^"]*("))|((')[^']*(')))?\\s*(\\))`,name:"meta.link.inline.markdown"},"link-ref":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])",name:"meta.link.reference.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|\\d+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},comment:"Currently does not support un-indented second lines.",name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})(\\d+[\\.\\)])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"},raw:{captures:{1:{name:"punctuation.definition.raw.markdown"},3:{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown",while:"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},strikethrough:{captures:{1:{name:"punctuation.definition.strikethrough.markdown"},2:{patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},3:{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"},table:{begin:"(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",beginCaptures:{2:{name:"punctuation.definition.table.markdown"}},name:"markup.table.markdown",patterns:[{match:"\\|",name:"punctuation.definition.table.markdown"},{captures:{1:{name:"punctuation.separator.table.markdown"}},match:"(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)"},{captures:{1:{patterns:[{include:"#inline"}]}},match:"(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)"}],while:"(^|\\G)(?=\\|)"}},scopeName:"text.html.markdown",embeddedLangs:[],aliases:["md"],embeddedLangsLazy:["css","html","ini","java","lua","make","perl","r","ruby","php","sql","vb","xml","xsl","yaml","bat","clojure","coffee","c","cpp","diff","docker","git-commit","git-rebase","go","groovy","pug","javascript","json","jsonc","less","objective-c","swift","scss","raku","powershell","python","julia","regexp","rust","scala","shellscript","typescript","tsx","csharp","fsharp","dart","handlebars","log","erlang","elixir","latex","bibtex","html-derivative"]});var Ti=[Bi];const Di=Object.freeze({displayName:"Sass",fileTypes:["sass"],foldingStartMarker:"/\\*|^#|^\\*|^\\b|*#?region|^\\.",foldingStopMarker:"\\*/|*#?endregion|^\\s*$",name:"sass",patterns:[{begin:"^(\\s*)(/\\*)",end:"(\\*/)|^(?!\\s\\1)",name:"comment.block.sass",patterns:[{include:"#comment-tag"},{include:"#comment-param"}]},{match:"^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$",name:"keyword.other.sass.formatter.action"},{begin:"^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)",captures:{1:{name:"keyword.control"},2:{name:"variable"},3:{name:"keyword.control"}},end:"$\\n?",name:"comment.import.css.variables",patterns:[{include:"#import-quotes"}]},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#placeholder-selector"},{begin:"\\$[a-zA-Z0-9_-]+(?=:)",captures:{0:{name:"variable.other.name"}},end:"$\\n?|(?=\\)\\s\\)|\\)\\n)",name:"sass.script.maps",patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#reserved-words"},{include:"#parent-selector"},{include:"#property-value"},{include:"#semicolon"},{include:"#dotdotdot"}]},{include:"#variable-root"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#dotdotdot"},{begin:"@include|\\+(?!\\W|\\d)",captures:{0:{name:"keyword.control.at-rule.css.sass"}},end:"(?=\\n|\\()",name:"support.function.name.sass.library"},{begin:"^(@use)",captures:{0:{name:"keyword.control.at-rule.css.sass.use"}},end:"(?=\\n)",name:"sass.use",patterns:[{match:"as|with",name:"support.type.css.sass"},{include:"#numeric"},{include:"#unit"},{include:"#variable-root"},{include:"#rgb-value"},{include:"#comma"},{include:"#parenthesis-open"},{include:"#parenthesis-close"},{include:"#colon"},{include:"#import-quotes"}]},{begin:"^@import(.*?)( as.*)?$",captures:{1:{name:"constant.character.css.sass"},2:{name:"invalid"}},end:"(?=\\n)",name:"keyword.control.at-rule.use"},{begin:"@mixin|^[\\t ]*=|@function",captures:{0:{name:"keyword.control.at-rule.css.sass"}},end:"$\\n?|(?=\\()",name:"support.function.name.sass",patterns:[{match:"[\\w-]+",name:"entity.name.function"}]},{begin:"@",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))",name:"keyword.control.at-rule.css.sass"},{begin:"(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\b(?!-|\\)|:\\s)|&",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)",name:"entity.name.tag.css.sass.symbol",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"#",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)",name:"entity.other.attribute-name.id.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\.|(?<=&)(-|_)",end:"$\\n?|(?=\\s|,|\\(|\\)|\\[|>)",name:"entity.other.attribute-name.class.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\[",end:"\\]",name:"entity.other.attribute-selector.sass",patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{match:"\\^|\\$|\\*|~",name:"keyword.other.regex.sass"}]},{match:`^((?<=\\]|\\)|not\\(|\\*|>|>\\s)| +*):[a-z:-]+|(::|:-)[a-z:-]+`,name:"entity.other.attribute-name.pseudo-class.css.sass"},{include:"#module"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{begin:":",end:"$\\n?|(?=\\s\\(|and\\(|\\),)",name:"meta.property-list.css.sass.prop",patterns:[{match:"(?<=:)[a-z-]+\\s",name:"support.type.property-name.css.sass.prop.name"},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#module"},{match:"--.+?(?=\\))",name:"variable.css"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}]},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{begin:"(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)",end:"\\s|(?=,|\\.|\\[|\\)|\\n)",name:"entity.name.tag.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{include:"#operator"},{match:"[a-z-]+((?=:|#{))",name:"support.type.property-name.css.sass.prop.name"},{include:"#reserved-words"},{include:"#property-value"}],repository:{colon:{match:":",name:"meta.property-list.css.sass.colon"},comma:{match:"\\band\\b|\\bor\\b|,",name:"comment.punctuation.comma.sass"},"comment-param":{match:"\\@(\\w+)",name:"storage.type.class.jsdoc"},"comment-tag":{begin:"(?<={{)",end:"(?=}})",name:"comment.tag.sass"},"curly-brackets":{match:"{|}",name:"invalid"},dotdotdot:{match:"\\.\\.\\.",name:"variable.other"},"double-quoted":{begin:'"',end:'"',name:"string.quoted.double.css.sass",patterns:[{include:"#quoted-interpolation"}]},"double-slash":{begin:"//",end:"$\\n?",name:"comment.line.sass",patterns:[{include:"#comment-tag"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.sass"},function:{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()",name:"support.function.name.sass"},"function-content":{begin:"(?<=url\\(|format\\(|attr\\()",end:".(?=\\))",name:"string.quoted.double.css.sass"},"import-quotes":{match:`["']?\\.{0,2}[\\w/]+["']?`,name:"constant.character.css.sass"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"},{include:"#double-quoted"},{include:"#single-quoted"}]},module:{captures:{1:{name:"constant.character.module.name"},2:{name:"constant.numeric.module.dot"}},match:"([\\w-]+?)(\\.)",name:"constant.character.module"},numeric:{match:"(-|\\.)?\\d+(\\.\\d+)?",name:"constant.numeric.css.sass"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.sass"},"parent-selector":{match:"&",name:"entity.name.tag.css.sass"},"parenthesis-close":{match:"\\)",name:"entity.name.function.parenthesis.close"},"parenthesis-open":{match:"\\(",name:"entity.name.function.parenthesis.open"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s",name:"entity.other.inherited-class.placeholder-selector.css.sass"},"property-value":{match:"[a-zA-Z0-9_-]+",name:"meta.property-value.css.sass support.constant.property-value.css.sass"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.sass"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.sass"},"rgb-value":{match:"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.language.color.rgb-value.css.sass"},semicolon:{match:";",name:"invalid"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.sass",patterns:[{include:"#quoted-interpolation"}]},unit:{match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)",name:"keyword.control.unit.css.sass"},variable:{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.value"},"variable-root":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.root"}},scopeName:"source.sass"});var bt=[Di];const Ri=Object.freeze({displayName:"SCSS",name:"scss",patterns:[{include:"#variable_setting"},{include:"#at_rule_forward"},{include:"#at_rule_use"},{include:"#at_rule_include"},{include:"#at_rule_import"},{include:"#general"},{include:"#flow_control"},{include:"#rules"},{include:"#property_list"},{include:"#at_rule_mixin"},{include:"#at_rule_media"},{include:"#at_rule_function"},{include:"#at_rule_charset"},{include:"#at_rule_option"},{include:"#at_rule_namespace"},{include:"#at_rule_fontface"},{include:"#at_rule_page"},{include:"#at_rule_keyframes"},{include:"#at_rule_at_root"},{include:"#at_rule_supports"},{match:";",name:"punctuation.terminator.rule.css"}],repository:{at_rule_at_root:{begin:"\\s*((@)(at-root))(\\s+|$)",beginCaptures:{1:{name:"keyword.control.at-rule.at-root.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.at-root.scss",patterns:[{include:"#function_attributes"},{include:"#functions"},{include:"#selectors"}]},at_rule_charset:{begin:"\\s*((@)charset\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"}]},at_rule_content:{begin:"\\s*((@)content\\b)\\s*",captures:{1:{name:"keyword.control.content.scss"}},end:"\\s*((?=;))",name:"meta.content.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_each:{begin:"\\s*((@)each\\b)\\s*",captures:{1:{name:"keyword.control.each.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=}))",name:"meta.at-rule.each.scss",patterns:[{match:"\\b(in|,)\\b",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_else:{begin:"\\s*((@)else(\\s*(if)?))\\s*",captures:{1:{name:"keyword.control.else.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.else.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_extend:{begin:"\\s*((@)extend\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.extend.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.extend.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_fontface:{patterns:[{begin:"^\\s*((@)font-face\\b)",beginCaptures:{1:{name:"keyword.control.at-rule.fontface.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.fontface.scss",patterns:[{include:"#function_attributes"}]}]},at_rule_for:{begin:"\\s*((@)for\\b)\\s*",captures:{1:{name:"keyword.control.for.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.for.scss",patterns:[{match:"(==|!=|<=|>=|<|>|from|to|through)",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_forward:{begin:"\\s*((@)forward\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.forward.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.forward.scss",patterns:[{match:"\\b(as|hide|show)\\b",name:"keyword.control.operator"},{captures:{1:{name:"entity.other.attribute-name.module.scss"},2:{name:"punctuation.definition.wildcard.scss"}},match:"\\b([\\w-]+)(\\*)"},{match:"\\b[\\w-]+\\b",name:"entity.name.function.scss"},{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"}]},at_rule_function:{patterns:[{begin:"\\s*((@)function\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.function.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},match:"\\s*((@)function\\b)\\s*",name:"meta.at-rule.function.scss"}]},at_rule_if:{begin:"\\s*((@)if\\b)\\s*",captures:{1:{name:"keyword.control.if.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.if.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_import:{begin:"\\s*((@)import\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.import.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;)|(?=}))",name:"meta.at-rule.import.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#functions"},{include:"#comment_line"}]},at_rule_include:{patterns:[{begin:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"},4:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.include.scss",patterns:[{include:"#function_attributes"}]},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"}},match:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)"},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"keyword.control.at-rule.include.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)include)\\b"}]},at_rule_keyframes:{begin:"(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",beginCaptures:{0:{name:"keyword.control.at-rule.keyframes.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?<=})",name:"meta.at-rule.keyframes.scss",patterns:[{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)"},{begin:'(?<=@keyframes)\\s+(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"(?<=@keyframes)\\s+(')",beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.keyframes.begin.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.keyframes.end.scss"}},patterns:[{match:"\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",name:"entity.other.attribute-name.scss"},{include:"#flow_control"},{include:"#interpolation"},{include:"#property_list"},{include:"#rules"}]}]},at_rule_media:{patterns:[{begin:"^\\s*((@)media)\\b",beginCaptures:{1:{name:"keyword.control.at-rule.media.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.media.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{match:"\\b(only)\\b",name:"keyword.control.operator.css.scss"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.media-query.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.media-query.end.bracket.round.scss"}},name:"meta.property-list.media-query.scss",patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.media-query.scss",patterns:[{include:"source.css#media-features"},{include:"source.css#property-names"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.media-query.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},{include:"#variable"},{include:"#conditional_operators"},{include:"source.css#media-types"}]}]},at_rule_mixin:{patterns:[{begin:"(?<=@mixin)\\s+([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.scss"},2:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.mixin.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@mixin)\\s+([\\w-]+)",name:"meta.at-rule.mixin.scss"},{captures:{1:{name:"keyword.control.at-rule.mixin.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)mixin)\\b",name:"meta.at-rule.mixin.scss"}]},at_rule_namespace:{patterns:[{begin:"(?<=@namespace)\\s+(?=url)",end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{begin:"(?<=@namespace)\\s+([\\w-]*)",captures:{1:{name:"entity.name.namespace-prefix.scss"}},end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#variables"},{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{captures:{1:{name:"keyword.control.at-rule.namespace.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)namespace)\\b",name:"meta.at-rule.namespace.scss"}]},at_rule_option:{captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"^\\s*((@)option\\b)\\s*",name:"meta.at-rule.option.scss"},at_rule_page:{patterns:[{begin:"^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)",captures:{1:{name:"keyword.control.at-rule.page.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.page.scss"}]},at_rule_return:{begin:"\\s*((@)(return)\\b)",captures:{1:{name:"keyword.control.return.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;))",name:"meta.at-rule.return.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},at_rule_supports:{begin:"(?<=^|\\s)(@)supports\\b",captures:{0:{name:"keyword.control.at-rule.supports.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?={)|$",name:"meta.at-rule.supports.scss",patterns:[{include:"#logical_operators"},{include:"#properties"},{match:"\\(",name:"punctuation.definition.condition.begin.bracket.round.scss"},{match:"\\)",name:"punctuation.definition.condition.end.bracket.round.scss"}]},at_rule_use:{begin:"\\s*((@)use\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.use.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.use.scss",patterns:[{match:"\\b(as|with)\\b",name:"keyword.control.operator"},{match:"\\b[\\w-]+\\b",name:"variable.scss"},{match:"\\*",name:"variable.language.expanded-namespace.scss"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]}]},at_rule_warn:{begin:"\\s*((@)(warn|debug|error)\\b)\\s*",captures:{1:{name:"keyword.control.warn.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.warn.scss",patterns:[{include:"#variable"},{include:"#string_double"},{include:"#string_single"}]},at_rule_while:{begin:"\\s*((@)while\\b)\\s*",captures:{1:{name:"keyword.control.while.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=})",name:"meta.at-rule.while.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.scss"}},name:"comment.block.scss"},comment_docblock:{begin:"///",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"(?=$)",name:"comment.block.documentation.scss",patterns:[{include:"source.sassdoc"}]},comment_line:{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\n",name:"comment.line.scss"},comparison_operators:{match:"==|!=|<=|>=|<|>",name:"keyword.operator.comparison.scss"},conditional_operators:{patterns:[{include:"#comparison_operators"},{include:"#logical_operators"}]},constant_default:{match:"!default",name:"keyword.other.default.scss"},constant_functions:{begin:"(?:([\\w-]+)(\\.))?([\\w-]+)(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"support.function.misc.scss"},4:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},constant_important:{match:"!important",name:"keyword.other.important.scss"},constant_mathematical_symbols:{match:"\\b(\\+|-|\\*|/)\\b",name:"support.constant.mathematical-symbols.scss"},constant_optional:{match:"!optional",name:"keyword.other.optional.scss"},constant_sass_functions:{begin:"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},flow_control:{patterns:[{include:"#at_rule_if"},{include:"#at_rule_else"},{include:"#at_rule_warn"},{include:"#at_rule_for"},{include:"#at_rule_while"},{include:"#at_rule_each"},{include:"#at_rule_return"}]},function_attributes:{patterns:[{match:":",name:"punctuation.separator.key-value.scss"},{include:"#general"},{include:"#property_values"},{match:"[={}\\?;@]",name:"invalid.illegal.scss"}]},functions:{patterns:[{begin:"([\\w-]{1,})(\\()\\s*",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},{match:"([\\w-]{1,})",name:"support.function.misc.scss"}]},general:{patterns:[{include:"#variable"},{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"}]},interpolation:{begin:"#{",beginCaptures:{0:{name:"punctuation.definition.interpolation.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.bracket.curly.scss"}},name:"variable.interpolation.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},logical_operators:{match:"\\b(not|or|and)\\b",name:"keyword.operator.logical.scss"},map:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.map.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.map.end.bracket.round.scss"}},name:"meta.definition.variable.map.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{captures:{1:{name:"support.type.map.key.scss"},2:{name:"punctuation.separator.key-value.scss"}},match:"\\b([\\w-]+)\\s*(:)"},{match:",",name:"punctuation.separator.delimiter.scss"},{include:"#map"},{include:"#variable"},{include:"#property_values"}]},operators:{match:"[-+*/](?!\\s*[-+*/])",name:"keyword.operator.css"},parameters:{patterns:[{include:"#variable"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]},{include:"#property_values"},{include:"#comment_block"},{match:`[^'",) \\t]+`,name:"variable.parameter.url.scss"},{match:",",name:"punctuation.separator.delimiter.scss"}]},parent_selector_suffix:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(?<=&)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\$|})+)(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)",name:"entity.other.attribute-name.parent-selector-suffix.css"},properties:{patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.scss",patterns:[{include:"source.css#property-names"},{include:"#at_rule_include"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},property_list:{begin:"{",beginCaptures:{0:{name:"punctuation.section.property-list.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.property-list.end.bracket.curly.scss"}},name:"meta.property-list.scss",patterns:[{include:"#flow_control"},{include:"#rules"},{include:"#properties"},{include:"$self"}]},property_values:{patterns:[{include:"#string_single"},{include:"#string_double"},{include:"#constant_functions"},{include:"#constant_sass_functions"},{include:"#constant_important"},{include:"#constant_default"},{include:"#constant_optional"},{include:"source.css#numeric-values"},{include:"source.css#property-keywords"},{include:"source.css#color-keywords"},{include:"source.css#property-names"},{include:"#constant_mathematical_symbols"},{include:"#operators"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},rules:{patterns:[{include:"#general"},{include:"#at_rule_extend"},{include:"#at_rule_content"},{include:"#at_rule_include"},{include:"#at_rule_media"},{include:"#selectors"}]},selector_attribute:{captures:{1:{name:"punctuation.definition.attribute-selector.begin.bracket.square.scss"},2:{name:"entity.other.attribute-name.attribute.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},3:{name:"keyword.operator.scss"},4:{name:"string.unquoted.attribute-value.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},5:{name:"string.quoted.double.attribute-value.scss"},6:{name:"punctuation.definition.string.begin.scss"},7:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},8:{name:"punctuation.definition.string.end.scss"},9:{name:"string.quoted.single.attribute-value.scss"},10:{name:"punctuation.definition.string.begin.scss"},11:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},12:{name:"punctuation.definition.string.end.scss"},13:{name:"punctuation.definition.attribute-selector.end.bracket.square.scss"}},match:`(?i)(\\[)\\s*((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+?)(?:\\s*([~|^$*]?=)\\s*(?:((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)|((")(.*?)("))|((')(.*?)('))))?\\s*(\\])`,name:"meta.attribute-selector.scss"},selector_class:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]}},match:"(\\.)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)(?=$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*|;)",name:"entity.other.attribute-name.class.css"},selector_custom:{match:"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)",name:"entity.name.tag.custom.scss"},selector_id:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(\\#)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.?\\$|})+)(?=$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*)",name:"entity.other.attribute-name.id.css"},selector_placeholder:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(%)((?:[-a-zA-Z_0-9]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.)|\\#\\{|\\.\\$|\\$|})+)(?=;|$|[\\s,\\#)\\[:{>+~|]|\\.[^$]|/\\*)",name:"entity.other.attribute-name.placeholder.css"},selector_pseudo_class:{patterns:[{begin:"((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()",beginCaptures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.definition.pseudo-class.begin.bracket.round.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.pseudo-class.end.bracket.round.css"}},patterns:[{include:"#interpolation"},{match:"\\d+",name:"constant.numeric.css"},{match:"(?<=\\d)n\\b|\\b(n|even|odd)\\b",name:"constant.other.scss"},{match:"\\w+",name:"invalid.illegal.scss"}]},{include:"source.css#pseudo-classes"},{include:"source.css#pseudo-elements"},{include:"source.css#functional-pseudo-classes"}]},selectors:{patterns:[{include:"source.css#tag-names"},{include:"#selector_custom"},{include:"#selector_class"},{include:"#selector_id"},{include:"#selector_pseudo_class"},{include:"#tag_wildcard"},{include:"#tag_parent_reference"},{include:"source.css#pseudo-elements"},{include:"#selector_attribute"},{include:"#selector_placeholder"},{include:"#parent_selector_suffix"}]},string_double:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.scss"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},string_single:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.scss"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},tag_parent_reference:{match:"&",name:"entity.name.tag.reference.scss"},tag_wildcard:{match:"\\*",name:"entity.name.tag.wildcard.scss"},variable:{patterns:[{include:"#variables"},{include:"#interpolation"}]},variable_setting:{begin:"(?=\\$[\\w-]+\\s*:)",contentName:"meta.definition.variable.scss",end:";",endCaptures:{0:{name:"punctuation.terminator.rule.scss"}},patterns:[{match:"\\$[\\w-]+(?=\\s*:)",name:"variable.scss"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.key-value.scss"}},end:"(?=;)",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{include:"#map"},{include:"#property_values"},{include:"#variable"},{match:",",name:"punctuation.separator.delimiter.scss"}]}]},variables:{patterns:[{captures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"variable.scss"}},match:"\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b"},{match:"(\\$|\\-\\-)[A-Za-z0-9_-]+\\b",name:"variable.scss"}]}},scopeName:"source.css.scss",embeddedLangs:["css"]});var gt=[...je,Ri];const Li=Object.freeze({displayName:"Stylus",fileTypes:["styl","stylus","css.styl","css.stylus"],name:"stylus",patterns:[{include:"#comment"},{include:"#at_rule"},{include:"#language_keywords"},{include:"#language_constants"},{include:"#variable_declaration"},{include:"#function"},{include:"#selector"},{include:"#declaration"},{captures:{1:{name:"punctuation.section.property-list.begin.css"},2:{name:"punctuation.section.property-list.end.css"}},match:"(\\{)(\\})",name:"meta.brace.curly.css"},{match:"\\{|\\}",name:"meta.brace.curly.css"},{include:"#numeric"},{include:"#string"},{include:"#operator"}],repository:{at_rule:{patterns:[{begin:"\\s*((@)(import|require))\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.import.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{include:"#string"}]},{begin:"\\s*((@)(extend[s]?)\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.extend.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.extend.css",patterns:[{include:"#selector"}]},{captures:{1:{name:"keyword.control.at-rule.fontface.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)font-face)\\b",name:"meta.at-rule.fontface.stylus"},{captures:{1:{name:"keyword.control.at-rule.css.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)css)\\b",name:"meta.at-rule.css.stylus"},{begin:"\\s*((@)charset)\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.charset.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",name:"meta.at-rule.charset.stylus",patterns:[{include:"#string"}]},{begin:"\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)",beginCaptures:{1:{name:"keyword.control.at-rule.keyframes.stylus"},2:{name:"punctuation.definition.keyword.stylus"},3:{name:"entity.name.function.keyframe.stylus"}},end:"\\s*((?=\\{|$|\\n))",name:"meta.at-rule.keyframes.stylus"},{begin:"(?=(\\b(\\d+%|from\\b|to\\b)))",end:"(?=(\\{|\\n))",name:"meta.at-rule.keyframes.stylus",patterns:[{match:"(\\b(\\d+%|from\\b|to\\b))",name:"entity.other.attribute-name.stylus"}]},{captures:{1:{name:"keyword.control.at-rule.media.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)media)\\b",name:"meta.at-rule.media.stylus"},{match:"(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))",name:"support.type.property-name.media-feature.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.media-type.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.media-property.media.css"}]},char_escape:{match:"\\\\(.)",name:"constant.character.escape.stylus"},color:{patterns:[{begin:"\\b(rgb|rgba|hsl|hsla)(\\()",beginCaptures:{1:{name:"support.function.color.css"},2:{name:"punctuation.section.function.css"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},name:"meta.function.color.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#property_variable"}]},{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css"},{comment:"http://www.w3.org/TR/CSS21/syndata.html#value-def-color",match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.css"},{comment:"http://www.w3.org/TR/css3-color/#svg-color",match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-name.css"}]},comment:{patterns:[{include:"#comment_block"},{include:"#comment_line"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},comment_line:{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.stylus"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.stylus"}},end:"(?=\\n)",name:"comment.line.double-slash.stylus"}]},declaration:{begin:"((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)",end:"(?=\\n)|(;)|(?=\\})|(\\n)",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},name:"meta.property-list.css",patterns:[{match:"(?<![\\w-])--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*",name:"variable.css"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?<=^)[^\\S\\n]+(\\n))"},{captures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"},3:{name:"variable.section.css"}},match:"\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)",name:"meta.property.counter.css"},{begin:"\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*",beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\}|$)",name:"meta.property.filter.css",patterns:[{include:"#function"},{include:"#property_values"}]},{include:"#property"},{include:"#interpolation"},{include:"$self"}]},font_name:{match:"(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)",name:"support.constant.font-name.css"},function:{begin:"(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},patterns:[{begin:"(format|url|local)(\\()",beginCaptures:{1:{name:"support.function.misc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.css",patterns:[{match:"(?<=\\()[^\\)\\s]*(?=\\))",name:"string.css"},{include:"#string"},{include:"#variable"},{include:"#operator"},{match:"\\s*"}]},{captures:{1:{name:"support.function.misc.counter.css"},2:{name:"punctuation.section.function.css"},3:{name:"variable.section.css"}},match:"(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))",name:"meta.function.misc.counter.css"},{begin:"(counters)(\\()",beginCaptures:{1:{name:"support.function.misc.counters.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.counters.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"variable.section.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(attr)(\\()",beginCaptures:{1:{name:"support.function.misc.attr.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.attr.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.attribute.css"},{match:"(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b",name:"support.type.attr.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(calc)(\\()",beginCaptures:{1:{name:"support.function.misc.calc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.calc.css",patterns:[{include:"#property_values"}]},{begin:"(cubic-bezier)(\\()",beginCaptures:{1:{name:"support.function.timing.cubic-bezier.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.cubic-bezier.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#interpolation"}]},{begin:"(steps)(\\()",beginCaptures:{1:{name:"support.function.timing.steps.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.steps.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{match:"\\b(start|end)\\b",name:"support.constant.timing.steps.direction.css"},{include:"#interpolation"}]},{begin:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()",beginCaptures:{1:{name:"support.function.gradient.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.gradient.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#color"},{match:"\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b",name:"support.constant.gradient.css"},{include:"#interpolation"}]},{begin:"(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()",beginCaptures:{1:{name:"support.function.filter.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(drop-shadow)(\\()",beginCaptures:{1:{name:"support.function.filter.drop-shadow.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.drop-shadow.css",patterns:[{include:"#numeric"},{include:"#color"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()",beginCaptures:{1:{name:"support.function.transform.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.transform.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{match:"(url|local|format|counter|counters|attr|calc)(?=\\()",name:"support.function.misc.css"},{match:"(cubic-bezier|steps)(?=\\()",name:"support.function.timing.css"},{match:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()",name:"support.function.gradient.css"},{match:"(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()",name:"support.function.filter.css"},{match:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()",name:"support.function.transform.css"},{begin:"([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()",beginCaptures:{1:{name:"entity.name.function.stylus"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.stylus",patterns:[{match:"--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*",name:"variable.argument.stylus"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#interpolation"},{include:"#property_values"}]},{match:"\\(",name:"punctuation.section.function.css"}]},interpolation:{begin:"(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})",beginCaptures:{1:{name:"meta.brace.curly"}},end:"(?:[^\\S\\n]*(\\}))|\\n|$",endCaptures:{1:{name:"meta.brace.curly"}},name:"meta.interpolation.stylus",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#string"},{include:"#operator"}]},language_constants:{match:"\\b(true|false|null)\\b",name:"constant.language.stylus"},language_keywords:{patterns:[{match:"(\\b|\\s)(return|else|for|unless|if|else)\\b",name:"keyword.control.stylus"},{match:"(\\b|\\s)(!important|in|is defined|is a)\\b",name:"keyword.other.stylus"},{match:"\\barguments\\b",name:"variable.language.stylus"}]},numeric:{patterns:[{captures:{1:{name:"keyword.other.unit.css"}},match:"(?<!\\w|-)(?:(?:-|\\+)?(?:\\d+(?:\\.\\d+)?)|(?:\\.\\d+))((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?",name:"constant.numeric.css"}]},operator:{patterns:[{match:"((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)",name:"keyword.operator.stylus"},{include:"#char_escape"}]},property:{begin:"(?:\\G\\s*(?:(-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|(writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|([a-zA-Z_-][a-zA-Z0-9_-]*))(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))",beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"support.type.property-name.svg.css"},3:{name:"support.function.mixin.stylus"}},end:"(;)|(?=\\n|\\}|$)",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_value"}]},property_value:{begin:"\\G(?:(:)|(\\s))(\\s*)(?!&)",beginCaptures:{1:{name:"punctuation.separator.key-value.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\})",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.property-value.css",patterns:[{include:"#property_values"},{match:"[^\\n]+?"}]},property_values:{patterns:[{include:"#function"},{include:"#comment"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.css"},{match:"(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.svg.css"},{include:"#font_name"},{include:"#numeric"},{include:"#color"},{include:"#string"},{match:"\\!\\s*important",name:"keyword.other.important.css"},{include:"#operator"},{include:"#stylus_keywords"},{include:"#property_variable"}]},property_variable:{patterns:[{include:"#variable"},{match:"(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.property.stylus"}]},selector:{patterns:[{match:"(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.css"},{match:"(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.svg.css"},{match:"\\s*(\\,)\\s*",name:"meta.selector.stylus"},{match:"\\*",name:"meta.selector.stylus"},{captures:{2:{name:"entity.other.attribute-name.parent-selector-suffix.stylus"}},match:"\\s*(\\&)([a-zA-Z0-9_-]+)\\s*",name:"meta.selector.stylus"},{match:"\\s*(\\&)\\s*",name:"meta.selector.stylus"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(\\.)[a-zA-Z0-9_-]+",name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(#)[a-zA-Z][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.id.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b",name:"entity.other.attribute-name.pseudo-element.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b",name:"entity.other.attribute-name.pseudo-class.ui-state.css"},{begin:"((:)not)(\\()",beginCaptures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.css"}},patterns:[{include:"#selector"}]},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.numeric.css"},5:{name:"punctuation.section.function.css"}},match:"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},5:{name:"punctuation.section.function.css"}},match:"((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},6:{name:"punctuation.section.function.css"}},match:"((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(active|hover|link|visited|focus)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(::)(shadow)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{name:"entity.other.attribute-name.attribute.css"},3:{name:"punctuation.separator.operator.css"},4:{name:"string.unquoted.attribute-value.css"},5:{name:"string.quoted.double.attribute-value.css"},6:{name:"punctuation.definition.string.begin.css"},7:{name:"punctuation.definition.string.end.css"},8:{name:"punctuation.definition.entity.css"}},match:`(?i)(\\[)\\s*(-?[_a-z\\\\[^\0-]][_a-z0-9\\-\\\\[^\0-]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[^\0-]][_a-z0-9\\-\\\\[^\0-]]*)|((?>(['"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])`,name:"meta.attribute-selector.css"},{include:"#interpolation"},{include:"#variable"}]},string:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.single.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]}]},variable:{match:"(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.stylus"},variable_declaration:{begin:"^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)",beginCaptures:{1:{name:"variable.stylus"},2:{name:"keyword.operator.stylus"}},end:"(\\n)|(;)|(?=\\})",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_values"}]}},scopeName:"source.stylus",aliases:["styl"]});var ft=[Li];const Pi=Object.freeze({displayName:"CoffeeScript",name:"coffee",patterns:[{include:"#jsx"},{captures:{1:{name:"keyword.operator.new.coffee"},2:{name:"storage.type.class.coffee"},3:{name:"entity.name.type.instance.coffee"},4:{name:"entity.name.type.instance.coffee"}},match:"(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))",name:"meta.class.instance.constructor.coffee"},{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.single.heredoc.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\).",name:"constant.character.escape.backslash.coffee"}]},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.double.heredoc.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\).",name:"constant.character.escape.backslash.coffee"},{include:"#interpolated_coffee"}]},{captures:{1:{name:"punctuation.definition.string.begin.coffee"},2:{name:"source.js.embedded.coffee",patterns:[{include:"source.js"}]},3:{name:"punctuation.definition.string.end.coffee"}},match:"(`)(.*)(`)",name:"string.quoted.script.coffee"},{begin:"(?<!#)###(?!#)",beginCaptures:{0:{name:"punctuation.definition.comment.coffee"}},end:"###",endCaptures:{0:{name:"punctuation.definition.comment.coffee"}},name:"comment.block.coffee",patterns:[{match:"(?<=^|\\s)@\\w*(?=\\s)",name:"storage.type.annotation.coffee"}]},{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.coffee"}},end:"$",name:"comment.line.number-sign.coffee"},{begin:"///",beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:"(///)[gimuy]*",endCaptures:{1:{name:"punctuation.definition.string.end.coffee"}},name:"string.regexp.multiline.coffee",patterns:[{include:"#heregexp"}]},{begin:"(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.coffee"}},end:"(/)[gimuy]*(?!\\s*[\\w$/(])",endCaptures:{1:{name:"punctuation.definition.string.end.coffee"}},name:"string.regexp.coffee",patterns:[{include:"source.js.regexp"}]},{match:"\\b(?<![\\.\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\s+own)(?!\\s*:)\\b",name:"keyword.control.coffee"},{match:"\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b",name:"keyword.operator.$1.coffee"},{match:"\\b(?<![\\.\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\s*:)\\b",name:"keyword.reserved.coffee"},{begin:"(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\\s*([:=])\\s*(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",beginCaptures:{1:{name:"entity.name.function.coffee"},2:{name:"variable.other.readwrite.instance.coffee"},3:{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:`(?<=\\s|^)(?:((')([^']*?)('))|((")([^"]*?)(")))\\s*([:=])\\s*(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)`,beginCaptures:{1:{name:"string.quoted.single.coffee"},2:{name:"punctuation.definition.string.begin.coffee"},3:{name:"entity.name.function.coffee"},4:{name:"punctuation.definition.string.end.coffee"},5:{name:"string.quoted.double.coffee"},6:{name:"punctuation.definition.string.begin.coffee"},7:{name:"entity.name.function.coffee"},8:{name:"punctuation.definition.string.end.coffee"},9:{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:"(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.inline.coffee",patterns:[{include:"#function_params"}]},{begin:`(?<=\\s|^)({)(?=[^'"#]+?}[\\s\\]}]*=)`,beginCaptures:{1:{name:"punctuation.definition.destructuring.begin.bracket.curly.coffee"}},end:"}",endCaptures:{0:{name:"punctuation.definition.destructuring.end.bracket.curly.coffee"}},name:"meta.variable.assignment.destructured.object.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{begin:`(?<=\\s|^)(\\[)(?=[^'"#]+?\\][\\s\\]}]*=)`,beginCaptures:{1:{name:"punctuation.definition.destructuring.begin.bracket.square.coffee"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.destructuring.end.bracket.square.coffee"}},name:"meta.variable.assignment.destructured.array.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{match:"\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b",name:"constant.language.boolean.true.coffee"},{match:"\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b",name:"constant.language.boolean.false.coffee"},{match:"\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b",name:"constant.language.null.coffee"},{match:"\\b(?<!\\.|::)extends(?!\\s*[:=])\\b",name:"variable.language.coffee"},{match:"(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b",name:"variable.language.$1.coffee"},{captures:{1:{name:"storage.type.class.coffee"},2:{name:"keyword.control.inheritance.coffee"},3:{name:"entity.other.inherited-class.coffee"}},match:"(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)",name:"meta.class.coffee"},{captures:{1:{name:"storage.type.class.coffee"},2:{name:"entity.name.type.class.coffee"},3:{name:"keyword.control.inheritance.coffee"},4:{name:"entity.other.inherited-class.coffee"}},match:"(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?",name:"meta.class.coffee"},{match:"\\b(debugger|\\\\)\\b",name:"keyword.other.coffee"},{match:"\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\b",name:"support.class.coffee"},{match:"\\b(console)\\b",name:"entity.name.type.object.coffee"},{match:"((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b",name:"support.function.console.coffee"},{match:"((?<=\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\b",name:"support.function.method.array.coffee"},{match:"((?<=Array\\.)(isArray))\\b",name:"support.function.static.array.coffee"},{match:"((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b",name:"support.function.static.object.coffee"},{match:"((?<=Math\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\b",name:"support.function.static.math.coffee"},{match:"((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b",name:"support.function.static.number.coffee"},{match:"(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b",name:"support.variable.coffee"},{match:"\\b(Infinity|NaN|undefined)\\b",name:"constant.language.coffee"},{include:"#operators"},{include:"#method_calls"},{include:"#function_calls"},{include:"#numbers"},{include:"#objects"},{include:"#properties"},{match:"::",name:"keyword.operator.prototype.coffee"},{match:"(?<!\\$)\\b\\d+[\\w$]*",name:"invalid.illegal.identifier.coffee"},{match:";",name:"punctuation.terminator.statement.coffee"},{match:",",name:"punctuation.separator.delimiter.coffee"},{begin:"{",beginCaptures:{0:{name:"meta.brace.curly.coffee"}},end:"}",endCaptures:{0:{name:"meta.brace.curly.coffee"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.bracket.square.coffee"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.square.coffee"}},patterns:[{match:"(?<!\\.)\\.{3}",name:"keyword.operator.slice.exclusive.coffee"},{match:"(?<!\\.)\\.{2}",name:"keyword.operator.slice.inclusive.coffee"},{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.coffee"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.coffee"}},patterns:[{include:"$self"}]},{include:"#instance_variable"},{include:"#single_quoted_string"},{include:"#double_quoted_string"}],repository:{arguments:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.arguments.begin.bracket.round.coffee"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.coffee"}},name:"meta.arguments.coffee",patterns:[{include:"$self"}]},{begin:`(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|'))`,end:"(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",name:"meta.arguments.coffee",patterns:[{include:"$self"}]}]},double_quoted_string:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.double.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",name:"constant.character.escape.backslash.coffee"},{include:"#interpolated_coffee"}]}]},embedded_comment:{patterns:[{captures:{1:{name:"punctuation.definition.comment.coffee"}},match:"(?<!\\\\)(#).*$\\n?",name:"comment.line.number-sign.coffee"}]},function_calls:{patterns:[{begin:"(@)?([\\w$]+)(?=\\()",beginCaptures:{1:{name:"variable.other.readwrite.instance.coffee"},2:{patterns:[{include:"#function_names"}]}},end:"(?<=\\))",name:"meta.function-call.coffee",patterns:[{include:"#arguments"}]},{begin:`(@)?([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|')))`,beginCaptures:{1:{name:"variable.other.readwrite.instance.coffee"},2:{patterns:[{include:"#function_names"}]}},end:"(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",name:"meta.function-call.coffee",patterns:[{include:"#arguments"}]}]},function_names:{patterns:[{match:"\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|require|set(Interval|Timeout)|clear(Interval|Timeout))\\b",name:"support.function.coffee"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.coffee"},{match:"\\d[\\w$]*",name:"invalid.illegal.identifier.coffee"}]},function_params:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.coffee"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.coffee"}},name:"meta.parameters.coffee",patterns:[{captures:{1:{name:"variable.parameter.function.coffee"},2:{name:"keyword.operator.splat.coffee"}},match:"([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?"},{captures:{1:{name:"variable.parameter.function.readwrite.instance.coffee"},2:{name:"keyword.operator.splat.coffee"}},match:"(@(?:[a-zA-Z_$][\\w$]*)?)(\\.\\.\\.)?"},{include:"$self"}]}]},heregexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{match:"\\\\[1-9]\\d*",name:"keyword.other.back-reference.regexp"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#heregexp"}]},{begin:"\\((\\?:)?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#heregexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"},{include:"#interpolated_coffee"},{include:"#embedded_comment"}]},instance_variable:{patterns:[{match:"(@)([a-zA-Z_\\$]\\w*)?",name:"variable.other.readwrite.instance.coffee"}]},interpolated_coffee:{patterns:[{begin:"\\#\\{",captures:{0:{name:"punctuation.section.embedded.coffee"}},end:"\\}",name:"source.coffee.embedded.source",patterns:[{include:"$self"}]}]},jsx:{patterns:[{include:"#jsx-tag"},{include:"#jsx-end-tag"}]},"jsx-attribute":{patterns:[{captures:{1:{name:"entity.other.attribute-name.coffee"},2:{name:"keyword.operator.assignment.coffee"}},match:"(?:^|\\s+)([-\\w.]+)\\s*(=)"},{include:"#double_quoted_string"},{include:"#single_quoted_string"},{include:"#jsx-expression"}]},"jsx-end-tag":{patterns:[{begin:"(</)([-\\w\\.]+)",beginCaptures:{1:{name:"punctuation.definition.tag.coffee"},2:{name:"entity.name.tag.coffee"}},end:"(/?>)",name:"meta.tag.coffee"}]},"jsx-expression":{begin:"{",beginCaptures:{0:{name:"meta.brace.curly.coffee"}},end:"}",endCaptures:{0:{name:"meta.brace.curly.coffee"}},patterns:[{include:"#double_quoted_string"},{include:"$self"}]},"jsx-tag":{patterns:[{begin:"(<)([-\\w\\.]+)",beginCaptures:{1:{name:"punctuation.definition.tag.coffee"},2:{name:"entity.name.tag.coffee"}},end:"(/?>)",name:"meta.tag.coffee",patterns:[{include:"#jsx-attribute"}]}]},method_calls:{patterns:[{begin:"(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()",beginCaptures:{1:{name:"punctuation.separator.method.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{patterns:[{include:"#method_names"}]}},end:"(?<=\\))",name:"meta.method-call.coffee",patterns:[{include:"#arguments"}]},{begin:`(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|"|')))`,beginCaptures:{1:{name:"punctuation.separator.method.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{patterns:[{include:"#method_names"}]}},end:"(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",name:"meta.method-call.coffee",patterns:[{include:"#arguments"}]}]},method_names:{patterns:[{match:"\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b",name:"support.function.event-handler.coffee"},{match:"\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b",name:"support.function.coffee"},{match:"\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|toDataURL|toggle|toString|values|write|writeln)\\b",name:"support.function.dom.coffee"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.coffee"},{match:"\\d[\\w$]*",name:"invalid.illegal.identifier.coffee"}]},numbers:{patterns:[{match:"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)",name:"constant.numeric.hex.coffee"},{match:"\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)",name:"constant.numeric.binary.coffee"},{match:"\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)",name:"constant.numeric.octal.coffee"},{captures:{0:{name:"constant.numeric.decimal.coffee"},1:{name:"punctuation.separator.decimal.period.coffee"},2:{name:"punctuation.separator.decimal.period.coffee"},3:{name:"punctuation.separator.decimal.period.coffee"},4:{name:"punctuation.separator.decimal.period.coffee"},5:{name:"punctuation.separator.decimal.period.coffee"},6:{name:"punctuation.separator.decimal.period.coffee"}},match:"(?<!\\$)(?:(?:\\b\\d+(\\.)\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+(\\.)[eE][+-]?\\d+\\b)|(?:\\B(\\.)\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+[eE][+-]?\\d+\\b)|(?:\\b\\d+(\\.)\\d+\\b)|(?:\\b\\d+(?=\\.{2,3}))|(?:\\b\\d+(\\.)\\B)|(?:\\B(\\.)\\d+\\b)|(?:\\b\\d+\\b(?!\\.)))(?!\\$)"}]},objects:{patterns:[{match:"[A-Z][A-Z0-9_$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",name:"constant.other.object.coffee"},{match:"[a-zA-Z_$][\\w$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",name:"variable.other.object.coffee"}]},operators:{patterns:[{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.compound.coffee"}},match:"(?:([a-zA-Z$_][\\w$]*)?\\s+|(?<![\\w$]))(and=|or=)"},{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.compound.coffee"}},match:"([a-zA-Z$_][\\w$]*)?\\s*(%=|\\+=|-=|\\*=|&&=|\\|\\|=|\\?=|(?<!\\()/=)"},{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.compound.bitwise.coffee"}},match:"([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.coffee"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.coffee"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.coffee"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.coffee"},{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.coffee"}},match:"([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])"},{match:"--",name:"keyword.operator.decrement.coffee"},{match:"\\+\\+",name:"keyword.operator.increment.coffee"},{match:"\\.\\.\\.",name:"keyword.operator.splat.coffee"},{match:"\\?",name:"keyword.operator.existential.coffee"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.coffee"},{captures:{1:{name:"keyword.operator.logical.coffee"},2:{name:"keyword.operator.comparison.coffee"}},match:"\\b(?<![\\.\\$])(?:(and|or|not)|(is|isnt))(?!\\s*:)\\b"}]},properties:{patterns:[{captures:{1:{name:"punctuation.separator.property.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{name:"constant.other.object.property.coffee"}},match:"(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))"},{captures:{1:{name:"punctuation.separator.property.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{name:"variable.other.object.property.coffee"}},match:"(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))"},{captures:{1:{name:"punctuation.separator.property.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{name:"constant.other.property.coffee"}},match:"(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)"},{captures:{1:{name:"punctuation.separator.property.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{name:"variable.other.property.coffee"}},match:"(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)"},{captures:{1:{name:"punctuation.separator.property.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{name:"invalid.illegal.identifier.coffee"}},match:"(?:(\\.)|(::))\\s*(\\d[\\w$]*)"}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdD]|\\.",name:"constant.character.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},single_quoted_string:{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.single.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",name:"constant.character.escape.backslash.coffee"}]}]}},scopeName:"source.coffee",embeddedLangs:["javascript"],aliases:["coffeescript"]});var ht=[...Y,Pi];const Ii=Object.freeze({displayName:"Pug",name:"pug",patterns:[{comment:"Doctype declaration.",match:"^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?",name:"meta.tag.sgml.doctype.html"},{begin:"^(\\s*)//-",comment:"Unbuffered (pug-only) comments.",end:"^(?!(\\1\\s)|\\s*$)",name:"comment.unbuffered.block.pug"},{begin:"^(\\s*)//",comment:"Buffered (html) comments.",end:"^(?!(\\1\\s)|\\s*$)",name:"string.comment.buffered.block.pug",patterns:[{captures:{1:{name:"invalid.illegal.comment.comment.block.pug"}},comment:"Buffered comments inside buffered comments will generate invalid html.",match:"^\\s*(//)(?!-)",name:"string.comment.buffered.block.pug"}]},{begin:"<!--",end:"--\\s*>",name:"comment.unbuffered.block.pug",patterns:[{match:"--",name:"invalid.illegal.comment.comment.block.pug"}]},{begin:"^(\\s*)-$",comment:"Unbuffered code block.",end:"^(?!(\\1\\s)|\\s*$)",name:"source.js",patterns:[{include:"source.js"}]},{begin:"^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))",beginCaptures:{2:{name:"entity.name.tag.pug"}},comment:"Script tag with JavaScript code.",end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.js"}]},{begin:"^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))",beginCaptures:{2:{name:"entity.name.tag.pug"}},comment:"Style tag with CSS code.",end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.css"}]},{begin:"^(\\s*):(sass)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.sass.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.sass.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.sass"}]},{begin:"^(\\s*):(scss)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.scss.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.css.scss.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.css.scss"}]},{begin:"^(\\s*):(less)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.less.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.less.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.less"}]},{begin:"^(\\s*):(stylus)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.stylus.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",patterns:[{include:"#tag_attributes"},{include:"source.stylus"}]},{begin:"^(\\s*):(coffee(-?script)?)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.coffeescript.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.coffeescript.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.coffee"}]},{begin:"^(\\s*):(uglify-js)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.js.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.js.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.js"}]},{begin:"^(\\s*)((:(?=.))|(:$))",beginCaptures:{4:{name:"invalid.illegal.empty.generic.filter.pug"}},comment:"Generic Pug filter.",end:"^(?!(\\1\\s)|\\s*$)",patterns:[{begin:"\\G(?<=:)(?=.)",end:"$",name:"name.generic.filter.pug",patterns:[{match:"\\G\\(",name:"invalid.illegal.name.generic.filter.pug"},{match:"[\\w-]",name:"constant.language.name.generic.filter.pug"},{include:"#tag_attributes"},{match:"\\W",name:"invalid.illegal.name.generic.filter.pug"}]}]},{begin:`^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))`,beginCaptures:{2:{name:"meta.selector.css entity.other.attribute-name.id.css.pug"},3:{name:"meta.selector.css entity.other.attribute-name.class.css.pug"},4:{name:"meta.tag.other entity.name.tag.pug"}},comment:"Generated from dot_block_tag.py",end:"^(?!(\\1\\s)|\\s*$)",patterns:[{match:"\\.$",name:"storage.type.function.pug.dot-block-dot"},{include:"#tag_attributes"},{include:"#complete_tag"},{begin:"^(?=.)",end:"$",name:"text.block.pug",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]}]},{begin:"^\\s*",comment:"All constructs that generally span a single line starting with any number of white-spaces.",end:"$",patterns:[{include:"#inline_pug"},{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_definition"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{include:"#case_conds"},{begin:"\\|",comment:"Tag pipe text line.",end:"$",name:"text.block.pipe.pug",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#printed_expression"},{begin:"\\G(?=(#[^\\{\\w-])|[^\\w.#])",comment:"Line starting with characters incompatible with tag name/id/class is standalone text.",end:"$",patterns:[{begin:"</?(?=[!#])",end:">|$",patterns:[{include:"#inline_pug"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#complete_tag"}]}],repository:{babel_parens:{begin:"\\(",end:"\\)|(({\\s*)?$)",patterns:[{include:"#babel_parens"},{include:"source.js"}]},blocks_and_includes:{captures:{1:{name:"storage.type.import.include.pug"},4:{name:"variable.control.import.include.pug"}},comment:"Template blocks and includes.",match:"(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",name:"meta.first-class.pug"},case_conds:{begin:"(default|when)((\\s+|(?=:))|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug case conditionals.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"\\G(?!:)",end:"(?=:\\s+)|$",name:"js.embedded.control.flow.pug",patterns:[{include:"#case_when_paren"},{include:"source.js"}]},{begin:":\\s+",end:"$",name:"tag.case.control.flow.pug",patterns:[{include:"#complete_tag"}]}]},case_when_paren:{begin:"\\(",end:"\\)",name:"js.when.control.flow.pug",patterns:[{include:"#case_when_paren"},{match:":",name:"invalid.illegal.name.tag.pug"},{include:"source.js"}]},complete_tag:{begin:"(?=[\\w.#])|(:\\s*)",end:"(\\.?$)|(?=:.)",endCaptures:{1:{name:"storage.type.function.pug.dot-block-dot"}},patterns:[{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{match:"(?<=:)\\w.*$",name:"invalid.illegal.name.tag.pug"},{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{captures:{2:{name:"invalid.illegal.end.tag.pug"},4:{name:"invalid.illegal.end.tag.pug"}},match:"((\\.)\\s+$)|((:)\\s*$)"},{include:"#printed_expression"},{include:"#tag_text"}]},embedded_html:{begin:"(?=<[^>]*>)",end:"$|(?=>)",name:"html",patterns:[{include:"text.html.basic"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},flow_control:{begin:"(for|if|else if|else|until|while|unless|case)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug control flow.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},flow_control_each:{begin:"(each)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug.each",patterns:[{match:"([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?",name:"variable.other.pug.each-var"},{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},html_entity:{patterns:[{match:"(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.text.pug"},{match:"[<>&]",name:"invalid.illegal.html_entity.text.pug"}]},inline_pug:{begin:"(?<!\\\\)(#\\[)",captures:{1:{name:"entity.name.function.pug"},2:{name:"entity.name.function.pug"}},end:"(\\])",name:"inline.pug",patterns:[{include:"#inline_pug"},{include:"#mixin_call"},{begin:"(?<!\\])(?=[\\w.#])|(:\\s*)",end:"(?=\\]|(:.)|=|\\s)",name:"tag.inline.pug",patterns:[{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{include:"#inline_pug"},{match:"\\[",name:"invalid.illegal.tag.pug"}]},{include:"#unbuffered_code"},{include:"#printed_expression"},{match:"\\[",name:"invalid.illegal.tag.pug"},{include:"#inline_pug_text"}]},inline_pug_text:{begin:"",end:"(?=\\])",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#inline_pug_text"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},interpolated_error:{match:"(?<!\\\\)[#!]\\{(?=[^}]*$)",name:"invalid.illegal.tag.pug"},interpolated_value:{begin:"(?<!\\\\)[#!]\\{(?=.*?\\})",end:"\\}",name:"string.interpolated.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]},js_braces:{begin:"\\{",end:"\\}",patterns:[{include:"#js_braces"},{include:"source.js"}]},js_brackets:{begin:"\\[",end:"\\]",patterns:[{include:"#js_brackets"},{include:"source.js"}]},js_parens:{begin:"\\(",end:"\\)",patterns:[{include:"#js_parens"},{include:"source.js"}]},mixin_call:{begin:"((?:mixin\\s+)|\\+)([\\w-]+)",beginCaptures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"}},end:"(?!\\()|$",patterns:[{begin:"(?<!\\))\\(",end:"\\)",name:"args.mixin.pug",patterns:[{include:"#js_parens"},{captures:{1:{name:"meta.tag.other entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/]+)\\s*=\\s*"},{include:"source.js"}]},{include:"#tag_attributes"}]},mixin_definition:{captures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"},3:{name:"punctuation.definition.parameters.begin.js"},4:{name:"variable.parameter.function.js"},5:{name:"punctuation.definition.parameters.begin.js"}},match:"(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$"},printed_expression:{begin:"(!?\\=)\\s*",captures:{1:{name:"constant"}},end:"(?=\\])|$",name:"source.js",patterns:[{include:"#js_brackets"},{include:"source.js"}]},tag_attribute_name:{captures:{1:{name:"entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/!]+)\\s*"},tag_attribute_name_paren:{begin:"\\(\\s*",end:"\\)",name:"entity.other.attribute-name.tag.pug",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"}]},tag_attributes:{begin:"(\\(\\s*)",captures:{1:{name:"constant.name.attribute.tag.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"},{match:"!(?!=)",name:"invalid.illegal.tag.pug"},{begin:"=\\s*",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]},{begin:"(?<=[%&*\\-+~|<>:?/])\\s+",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value2",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]}]},tag_classes:{captures:{1:{name:"invalid.illegal.tag.pug"}},match:"\\.([^\\w-])?[\\w-]*",name:"meta.selector.css entity.other.attribute-name.class.css.pug"},tag_id:{match:"#[\\w-]+",name:"meta.selector.css entity.other.attribute-name.id.css.pug"},tag_mixin_attributes:{begin:"(&attributes\\()",captures:{1:{name:"entity.name.function.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{match:"attributes(?=\\))",name:"storage.type.keyword.pug"},{include:"source.js"}]},tag_name:{begin:"([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))",end:"(\\G(?<!\\5[^\\w-]))|\\}|$",name:"meta.tag.other entity.name.tag.pug",patterns:[{begin:"\\G(?<=\\{)",end:"(?=\\})",name:"meta.tag.other entity.name.tag.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]}]},tag_text:{begin:"(?=.)",end:"$",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},unbuffered_code:{begin:"(-|((\\w+)\\s+=))",beginCaptures:{3:{name:"variable.parameter.javascript.embedded.pug"}},comment:"name = function() {}",end:"(?=\\])|(({\\s*)?$)",name:"source.js",patterns:[{include:"#js_brackets"},{include:"#babel_parens"},{include:"source.js"}]}},scopeName:"text.pug",embeddedLangs:["javascript","css","sass","scss","stylus","coffee","html"],aliases:["jade"]});var Oi=[...Y,...je,...bt,...gt,...ft,...ht,...sn,Ii];const Mi=Object.freeze({displayName:"Less",name:"less",patterns:[{include:"#comment-block"},{include:"#less-namespace-accessors"},{include:"#less-extend"},{include:"#at-rules"},{include:"#less-variable-assignment"},{include:"#property-list"},{include:"#selector"}],repository:{"angle-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(deg|grad|rad|turn))\\b",name:"constant.numeric.less"},"arbitrary-repetition":{captures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},match:"\\s*(?:(,))"},"at-charset":{begin:"\\s*((@)charset\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.charset.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.less",patterns:[{include:"#literal-string"}]},"at-container":{begin:"(?=\\s*@container)",end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"((@)container)",beginCaptures:{1:{name:"keyword.control.at-rule.container.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.container.less"}},end:"(?=\\{)",name:"meta.at-rule.container.less",patterns:[{begin:"\\s*(?=[^{;])",end:"\\s*(?=[{;])",patterns:[{match:"\\b(not|and|or)\\b",name:"keyword.operator.comparison.less"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.at-rule.container-query.less",patterns:[{captures:{1:{name:"support.type.property-name.less"}},match:"\\b(aspect-ratio|block-size|height|inline-size|orientation|width)\\b",name:"support.constant.size-feature.less"},{match:"((<|>)=?)|=|\\/",name:"keyword.operator.comparison.less"},{match:":",name:"punctuation.separator.key-value.less"},{match:"portrait|landscape",name:"support.constant.property-value.less"},{include:"#numeric-values"},{match:"\\/",name:"keyword.operator.arithmetic.less"},{include:"#var-function"},{include:"#less-variables"},{include:"#less-variable-interpolation"}]},{include:"#style-function"},{match:"--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*",name:"variable.parameter.container-name.css"},{include:"#arbitrary-repetition"},{include:"#less-variables"}]}]},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",patterns:[{include:"#rule-list-body"},{include:"$self"}]}]},"at-counter-style":{begin:"\\s*((@)counter-style\\b)\\s+(?:(?i:\\b(decimal|none)\\b)|(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*))\\s*(?=\\{|$)",beginCaptures:{1:{name:"keyword.control.at-rule.counter-style.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"invalid.illegal.counter-style-name.less"},4:{name:"entity.other.counter-style-name.css"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.begin.less"}},name:"meta.at-rule.counter-style.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-custom-media":{begin:"(?=\\s*@custom-media\\b)",end:"\\s*(?=;)",name:"meta.at-rule.custom-media.less",patterns:[{captures:{0:{name:"punctuation.section.property-list.less"}},match:"\\s*;"},{captures:{1:{name:"keyword.control.at-rule.custom-media.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.custom-media.less"}},match:"\\s*((@)custom-media)(?=.*?)"},{include:"#media-query-list"}]},"at-font-face":{begin:"\\s*((@)font-face)\\s*(?=\\{|$)",beginCaptures:{1:{name:"keyword.control.at-rule.font-face.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},name:"meta.at-rule.font-face.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-import":{begin:"\\s*((@)import\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.import.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.rule.less"}},name:"meta.at-rule.import.less",patterns:[{include:"#url-function"},{include:"#less-variables"},{begin:`(?<=(["'])|(["']\\)))\\s*`,end:"\\s*(?=\\;)",patterns:[{include:"#media-query"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{match:"reference|inline|less|css|once|multiple|optional",name:"constant.language.import-directive.less"},{include:"#comma-delimiter"}]},{include:"#literal-string"}]},"at-keyframes":{begin:"\\s*((@)keyframes)(?=.*?\\{)",beginCaptures:{1:{name:"keyword.control.at-rule.keyframe.less"},2:{name:"punctuation.definition.keyword.less"},4:{name:"support.constant.keyframe.less"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",patterns:[{captures:{1:{name:"keyword.other.keyframe-selector.less"},2:{name:"constant.numeric.less"},3:{name:"keyword.other.unit.less"}},match:"\\s*(?:(from|to)|((?:\\.\\d+|\\d+(?:\\.\\d*)?)(%)))\\s*,?\\s*"},{include:"$self"}]},{begin:"\\s*(?=[^{;])",end:"\\s*(?=\\{)",name:"meta.at-rule.keyframe.less",patterns:[{include:"#keyframe-name"},{include:"#arbitrary-repetition"}]}]},"at-media":{begin:"(?=\\s*@media\\b)",end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*((@)media)",beginCaptures:{1:{name:"keyword.control.at-rule.media.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.media.less"}},end:"\\s*(?=\\{)",name:"meta.at-rule.media.less",patterns:[{include:"#media-query-list"}]},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",patterns:[{include:"#rule-list-body"},{include:"$self"}]}]},"at-namespace":{begin:"\\s*((@)namespace)\\s+",beginCaptures:{1:{name:"keyword.control.at-rule.namespace.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.rule.less"}},name:"meta.at-rule.namespace.less",patterns:[{include:"#url-function"},{include:"#literal-string"},{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.name.constant.namespace-prefix.less"}]},"at-page":{captures:{1:{name:"keyword.control.at-rule.page.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"punctuation.definition.entity.less"},4:{name:"entity.other.attribute-name.pseudo-class.less"}},match:"\\s*((@)page)\\s*(?:(:)(first|left|right))?\\s*(?=\\{|$)",name:"meta.at-rule.page.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-rules":{patterns:[{include:"#at-charset"},{include:"#at-container"},{include:"#at-counter-style"},{include:"#at-custom-media"},{include:"#at-font-face"},{include:"#at-media"},{include:"#at-import"},{include:"#at-keyframes"},{include:"#at-namespace"},{include:"#at-page"},{include:"#at-supports"},{include:"#at-viewport"}]},"at-supports":{begin:"(?=\\s*@supports\\b)",end:"(?=\\s*)(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*((@)supports)",beginCaptures:{1:{name:"keyword.control.at-rule.supports.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.supports.less"}},end:"\\s*(?=\\{)",name:"meta.at-rule.supports.less",patterns:[{include:"#at-supports-operators"},{include:"#at-supports-parens"}]},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.section.property-list.begin.less"}},end:"(?=\\})",patterns:[{include:"#rule-list-body"},{include:"$self"}]}]},"at-supports-operators":{match:"\\b(?:and|or|not)\\b",name:"keyword.operator.logic.less"},"at-supports-parens":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#at-supports-operators"},{include:"#at-supports-parens"},{include:"#rule-list-body"}]},"attr-function":{begin:"\\b(attr)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#qualified-name"},{include:"#literal-string"},{begin:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",end:"(?=\\))",name:"entity.other.attribute-name.less",patterns:[{match:"\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b",name:"keyword.other.unit.less"},{include:"#comma-delimiter"},{include:"#property-value-constants"},{include:"#numeric-values"}]},{include:"#color-values"}]}]},"builtin-functions":{patterns:[{include:"#attr-function"},{include:"#calc-function"},{include:"#color-functions"},{include:"#counter-functions"},{include:"#cross-fade-function"},{include:"#cubic-bezier-function"},{include:"#filter-function"},{include:"#fit-content-function"},{include:"#format-function"},{include:"#gradient-functions"},{include:"#grid-repeat-function"},{include:"#image-function"},{include:"#less-functions"},{include:"#local-function"},{include:"#minmax-function"},{include:"#regexp-function"},{include:"#shape-functions"},{include:"#steps-function"},{include:"#symbols-function"},{include:"#transform-functions"},{include:"#url-function"},{include:"#var-function"}]},"calc-function":{begin:"\\b(calc)(?=\\()",beginCaptures:{1:{name:"support.function.calc.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#var-function"},{include:"#calc-function"},{include:"#attr-function"},{include:"#less-math"},{include:"#relative-color"}]}]},"color-adjuster-operators":{match:"[\\-\\+*](?=\\s+)",name:"keyword.operator.less"},"color-functions":{patterns:[{begin:"\\b(rgba?)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},comment:"rgb(), rgba()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#var-function"},{include:"#comma-delimiter"},{include:"#value-separator"},{include:"#percentage-type"},{include:"#number-type"}]}]},{begin:"\\b(hsla|hsl|hwb|oklab|oklch|lab|lch)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},comment:"hsla, hsl, hwb, oklab, oklch, lab, lch",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#less-strings"},{include:"#less-variables"},{include:"#var-function"},{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#percentage-type"},{include:"#number-type"},{include:"#calc-function"},{include:"#value-separator"}]}]},{begin:"\\b(light-dark)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},comment:"light-dark()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"}]}]},{include:"#less-color-functions"}]},"color-values":{patterns:[{include:"#color-functions"},{include:"#less-functions"},{include:"#less-variables"},{include:"#var-function"},{match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.less"},{match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-keywords.less"},{match:"\\b((?i)currentColor|transparent)\\b",name:"support.constant.color.w3c-special-color-keyword.less"},{captures:{1:{name:"punctuation.definition.constant.less"}},match:"(#)(\\h{3}|\\h{4}|\\h{6}|\\h{8})\\b",name:"constant.other.color.rgb-value.less"},{include:"#relative-color"}]},"comma-delimiter":{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(,)\\s*"},"comment-block":{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.less"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.less"}},name:"comment.block.less"},{include:"#comment-line"}]},"comment-line":{captures:{1:{name:"punctuation.definition.comment.less"}},match:"(//).*$\\n?",name:"comment.line.double-slash.less"},"counter-functions":{patterns:[{begin:"\\b(counter)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#var-function"},{match:"(?:--(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+|-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.counter-name.less"},{begin:"(?=,)",end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{match:"\\b((?i:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b",name:"support.constant.property-value.counter-style.less"}]}]}]},{begin:"\\b(counters)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.counter-name.less string.unquoted.less"},{begin:"(?=,)",end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#var-function"},{include:"#literal-string"},{include:"#comma-delimiter"},{match:"\\b((?i:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b",name:"support.constant.property-value.counter-style.less"}]}]}]}]},"cross-fade-function":{patterns:[{begin:"\\b(cross-fade)(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#percentage-type"},{include:"#color-values"},{include:"#image-type"},{include:"#literal-string"},{include:"#unquoted-string"}]}]}]},"cubic-bezier-function":{begin:"\\b(cubic-bezier)(\\()",beginCaptures:{1:{name:"support.function.timing.less"},2:{name:"punctuation.definition.group.begin.less"}},contentName:"meta.group.less",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{include:"#less-functions"},{include:"#calc-function"},{include:"#less-variables"},{include:"#var-function"},{include:"#comma-delimiter"},{include:"#number-type"}]},"custom-property-name":{captures:{1:{name:"punctuation.definition.custom-property.less"},2:{name:"support.type.custom-property.name.less"}},match:"\\s*(--)((?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+)",name:"support.type.custom-property.less"},dimensions:{patterns:[{include:"#angle-type"},{include:"#frequency-type"},{include:"#time-type"},{include:"#percentage-type"},{include:"#length-type"}]},"filter-function":{begin:"\\b(filter)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#comma-delimiter"},{include:"#image-type"},{include:"#literal-string"},{include:"#filter-functions"}]}]},"filter-functions":{patterns:[{include:"#less-functions"},{begin:"\\b(blur)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"}]}]},{begin:"\\b(brightness|contrast|grayscale|invert|opacity|saturate|sepia)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#percentage-type"},{include:"#number-type"},{include:"#less-functions"}]}]},{begin:"\\b(drop-shadow)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"},{include:"#color-values"}]}]},{begin:"\\b(hue-rotate)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"}]}]}]},"fit-content-function":{begin:"\\b(fit-content)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#calc-function"},{include:"#percentage-type"},{include:"#length-type"}]}]},"format-function":{patterns:[{begin:"\\b(format)(?=\\()",beginCaptures:{0:{name:"support.function.format.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"}]}]}]},"frequency-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(Hz|kHz))\\b",name:"constant.numeric.less"},"global-property-values":{match:"\\b(?:initial|inherit|unset|revert-layer|revert)\\b",name:"support.constant.property-value.less"},"gradient-functions":{patterns:[{begin:"\\b((?:repeating-)?linear-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#angle-type"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\bto\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left)\\b",name:"support.constant.property-value.less"}]}]},{begin:"\\b((?:repeating-)?radial-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\b(at|circle|ellipse)\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center|(farthest|closest)-(corner|side))\\b",name:"support.constant.property-value.less"}]}]}]},"grid-repeat-function":{begin:"\\b(repeat)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#var-function"},{include:"#length-type"},{include:"#percentage-type"},{include:"#minmax-function"},{include:"#integer-type"},{match:"\\b(auto-(fill|fit))\\b",name:"support.keyword.repetitions.less"},{match:"\\b(((max|min)-content)|auto)\\b",name:"support.constant.property-value.less"}]}]},"image-function":{begin:"\\b(image)(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#image-type"},{include:"#literal-string"},{include:"#color-values"},{include:"#comma-delimiter"},{include:"#unquoted-string"}]}]},"image-type":{patterns:[{include:"#cross-fade-function"},{include:"#gradient-functions"},{include:"#image-function"},{include:"#url-function"}]},important:{captures:{1:{name:"punctuation.separator.less"}},match:"(\\!)\\s*important",name:"keyword.other.important.less"},"integer-type":{match:"(?:[-+]?\\d+)",name:"constant.numeric.less"},"keyframe-name":{begin:"\\s*(-?(?:[_a-z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[_a-z0-9-]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*)?",beginCaptures:{1:{name:"variable.other.constant.animation-name.less"}},end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}}},"length-type":{patterns:[{captures:{1:{name:"keyword.other.unit.less"}},match:"(?:[-+]?)(?:\\d+\\.\\d+|\\.?\\d+)(?:[eE][-+]?\\d+)?(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|m|q|in|pt|pc|px|fr|dpi|dpcm|dppx|x)",name:"constant.numeric.less"},{match:"\\b(?:[-+]?)0\\b",name:"constant.numeric.less"}]},"less-boolean-function":{begin:"\\b(boolean)(?=\\()",beginCaptures:{1:{name:"support.function.boolean.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-logical-comparisons"}]}]},"less-color-blend-functions":{patterns:[{begin:"\\b(multiply|screen|overlay|(soft|hard)light|difference|exclusion|negation|average)(?=\\()",beginCaptures:{1:{name:"support.function.color-blend.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#comma-delimiter"},{include:"#color-values"}]}]}]},"less-color-channel-functions":{patterns:[{begin:"\\b(hue|saturation|lightness|hsv(hue|saturation|value)|red|green|blue|alpha|luma|luminance)(?=\\()",beginCaptures:{1:{name:"support.function.color-definition.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"}]}]}]},"less-color-definition-functions":{patterns:[{begin:"\\b(argb)(?=\\()",beginCaptures:{1:{name:"support.function.color-definition.less"}},comment:"argb()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#color-values"}]}]},{begin:"\\b(hsva?)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},comment:"hsva(), hsv()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#integer-type"},{include:"#percentage-type"},{include:"#number-type"},{include:"#less-strings"},{include:"#less-variables"},{include:"#var-function"},{include:"#calc-function"},{include:"#comma-delimiter"}]}]}]},"less-color-functions":{patterns:[{include:"#less-color-blend-functions"},{include:"#less-color-channel-functions"},{include:"#less-color-definition-functions"},{include:"#less-color-operation-functions"}]},"less-color-operation-functions":{patterns:[{begin:"\\b(fade|shade|tint)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"}]}]},{begin:"\\b(spin)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#number-type"}]}]},{begin:"\\b(((de)?saturate)|((light|dark)en)|(fade(in|out)))(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"},{match:"\\brelative\\b",name:"constant.language.relative.less"}]}]},{begin:"\\b(contrast)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"}]}]},{begin:"\\b(greyscale)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"}]}]},{begin:"\\b(mix)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#less-math"},{include:"#percentage-type"}]}]}]},"less-extend":{begin:"(:)(extend)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.extend.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\ball\\b",name:"constant.language.all.less"},{include:"#selectors"}]}]},"less-functions":{patterns:[{include:"#less-boolean-function"},{include:"#less-color-functions"},{include:"#less-if-function"},{include:"#less-list-functions"},{include:"#less-math-functions"},{include:"#less-misc-functions"},{include:"#less-string-functions"},{include:"#less-type-functions"}]},"less-if-function":{begin:"\\b(if)(?=\\()",beginCaptures:{1:{name:"support.function.if.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-mixin-guards"},{include:"#comma-delimiter"},{include:"#property-values"}]}]},"less-list-functions":{patterns:[{begin:"\\b(length)(?=\\()\\b",beginCaptures:{1:{name:"support.function.length.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"}]}]},{begin:"\\b(extract)(?=\\()\\b",beginCaptures:{1:{name:"support.function.extract.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{include:"#integer-type"}]}]},{begin:"\\b(range)(?=\\()\\b",beginCaptures:{1:{name:"support.function.range.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{include:"#integer-type"}]}]}]},"less-logical-comparisons":{patterns:[{captures:{1:{name:"keyword.operator.logical.less"}},match:"\\s*(=|((<|>)=?))\\s*"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-logical-comparisons"}]},{match:"\\btrue|false\\b",name:"constant.language.less"},{match:",",name:"punctuation.separator.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"}]},"less-math":{patterns:[{match:"[-\\+\\*\\/]",name:"keyword.operator.arithmetic.less"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-math"}]},{include:"#numeric-values"},{include:"#less-variables"}]},"less-math-functions":{patterns:[{begin:"\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"}]}]},{captures:{2:{name:"support.function.math.less"},3:{name:"punctuation.definition.group.begin.less"},4:{name:"punctuation.definition.group.end.less"}},match:"((pi)(\\()(\\)))",name:"meta.function-call.less"},{begin:"\\b(pow|m(od|in|ax))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"},{include:"#comma-delimiter"}]}]}]},"less-misc-functions":{patterns:[{begin:"\\b(color)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"}]}]},{begin:"\\b(image-(size|width|height))(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\b(convert|unit)(?=\\()",beginCaptures:{1:{name:"support.function.convert.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"},{include:"#literal-string"},{include:"#comma-delimiter"},{match:"((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)",name:"keyword.other.unit.less"}]}]},{begin:"\\b(data-uri)(?=\\()",beginCaptures:{1:{name:"support.function.data-uri.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(?:(,))"}]}]},{captures:{2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"\\b(default(\\()(\\)))\\b",name:"support.function.default.less"},{begin:"\\b(get-unit)(?=\\()",beginCaptures:{1:{name:"support.function.get-unit.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#dimensions"}]}]},{begin:"\\b(svg-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.svg-gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"},{include:"#comma-delimiter"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{match:"\\bto\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center)\\b",name:"support.constant.property-value.less"},{match:"\\b(at|circle|ellipse)\\b",name:"keyword.other.less"}]}]}]},"less-mixin-guards":{patterns:[{begin:"\\s*(and|not|or)?\\s*(?=\\()",beginCaptures:{1:{name:"keyword.operator.logical.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#less-variable-comparison"},{captures:{1:{name:"meta.group.less"},2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"default((\\()(\\)))",name:"support.function.default.less"},{include:"#property-values"},{include:"#less-logical-comparisons"},{include:"$self"}]}]}]},"less-namespace-accessors":{patterns:[{begin:"(?=\\s*when\\b)",end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},name:"meta.conditional.guarded-namespace.less",patterns:[{captures:{1:{name:"keyword.control.conditional.less"},2:{name:"punctuation.definition.keyword.less"}},match:"\\s*(when)(?=.*?)"},{include:"#less-mixin-guards"},{include:"#comma-delimiter"},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.section.property-list.begin.less"}},end:"(?=\\})",name:"meta.block.less",patterns:[{include:"#rule-list-body"}]},{include:"#selectors"}]},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.group.begin.less"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.end.less"},2:{name:"punctuation.terminator.rule.less"}},name:"meta.group.less",patterns:[{include:"#less-variable-assignment"},{include:"#comma-delimiter"},{include:"#property-values"},{include:"#rule-list-body"}]},{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"(;)|(?=[})])"}]},"less-string-functions":{patterns:[{begin:"\\b(e(scape)?)(?=\\()\\b",beginCaptures:{1:{name:"support.function.escape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\s*(%)(?=\\()\\s*",beginCaptures:{1:{name:"support.function.format.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]},{begin:"\\b(replace)(?=\\()\\b",beginCaptures:{1:{name:"support.function.replace.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]}]},"less-strings":{patterns:[{begin:`(~)('|")`,beginCaptures:{1:{name:"constant.character.escape.less"},2:{name:"punctuation.definition.string.begin.less"}},contentName:"markup.raw.inline.less",end:`('|")|(\\n)`,endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.other.less",patterns:[{include:"#string-content"}]}]},"less-type-functions":{patterns:[{begin:"\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"}]}]},{begin:"\\b(isunit)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{match:"\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b",name:"keyword.other.unit.less"}]}]},{begin:"\\b(isdefined)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"}]}]}]},"less-variable-assignment":{patterns:[{begin:"(@)(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(;|(\\.{3})|(?=\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.less"},2:{name:"keyword.operator.spread.less"}},name:"meta.property-value.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#property-values"},{include:"#comma-delimiter"},{include:"#property-list"},{include:"#unquoted-string"}]}]},"less-variable-comparison":{patterns:[{begin:"(@{1,2})([-]?([_a-z]|[^\\x{00}-\\x{7F}]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(?=\\))",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{captures:{1:{name:"keyword.operator.logical.less"}},match:"\\s*(=|((<|>)=?))\\s*"},{match:"\\btrue\\b",name:"constant.language.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"},{match:",",name:"punctuation.separator.less"}]}]},"less-variable-interpolation":{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"punctuation.definition.expression.less"},3:{name:"support.other.variable.less"},4:{name:"punctuation.definition.expression.less"}},match:"(@)(\\{)([-\\w]+)(\\})",name:"variable.other.readwrite.less"},"less-variables":{patterns:[{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},match:"\\s*(@@?)([-\\w]+)",name:"variable.other.readwrite.less"},{include:"#less-variable-interpolation"}]},"literal-string":{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:"(')|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.single.less",patterns:[{include:"#string-content"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:'(")|(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.double.less",patterns:[{include:"#string-content"}]},{include:"#less-strings"}]},"local-function":{begin:"\\b(local)(?=\\()",beginCaptures:{0:{name:"support.function.font-face.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#unquoted-string"}]}]},"media-query":{begin:"\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"support.constant.media.less"}},end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},patterns:[{include:"#less-variables"},{include:"#custom-property-name"},{begin:"\\s*(and)?\\s*(\\()\\s*",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{begin:"(--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\s*(?=[:)])",beginCaptures:{0:{name:"support.type.property-name.media.less"}},end:"(((\\+_?)?):)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.key-value.less"}}},{match:"\\b(portrait|landscape|progressive|interlace)",name:"support.constant.property-value.less"},{captures:{1:{name:"constant.numeric.less"},2:{name:"keyword.operator.arithmetic.less"},3:{name:"constant.numeric.less"}},match:"\\s*(\\d+)(/)(\\d+)"},{include:"#less-math"}]}]},"media-query-list":{begin:"\\s*(?=[^{;])",end:"\\s*(?=[{;])",patterns:[{include:"#media-query"}]},"minmax-function":{begin:"\\b(minmax)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#var-function"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\b(max-content|min-content)\\b",name:"support.constant.property-value.less"}]}]},"number-type":{match:"(?:[-+]?)(?:\\d+\\.\\d+|\\.?\\d+)(?:[eE][-+]?\\d+)?",name:"constant.numeric.less"},"numeric-values":{patterns:[{include:"#dimensions"},{include:"#percentage-type"},{include:"#number-type"}]},"percentage-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?:[-+]?)(?:\\d+\\.\\d+|\\.?\\d+)(?:[eE][-+]?\\d+)?(%)",name:"constant.numeric.less"},"property-list":{patterns:[{begin:"(?=(?=[^;]*)\\{)",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.less"}},patterns:[{include:"#rule-list"}]}]},"property-value-constants":{patterns:[{comment:"align-content, align-items, align-self, justify-content, justify-items, justify-self",match:"\\b(flex-start|flex-end|start|end|space-between|space-around|space-evenly|stretch|baseline|safe|unsafe|legacy|anchor-center|first|last|self-start|self-end)\\b",name:"support.constant.property-value.less"},{comment:"alignment-baseline",match:"\\b(text-before-edge|before-edge|middle|central|text-after-edge|after-edge|ideographic|alphabetic|hanging|mathematical|top|center|bottom)\\b",name:"support.constant.property-value.less"},{include:"#global-property-values"},{include:"#cubic-bezier-function"},{include:"#steps-function"},{comment:"animation-composition",match:"\\b(?:replace|add|accumulate)\\b",name:"support.constant.property-value.less"},{comment:"animation-direction",match:"\\b(?:normal|alternate-reverse|alternate|reverse)\\b",name:"support.constant.property-value.less"},{comment:"animation-fill-mode",match:"\\b(?:forwards|backwards|both)\\b",name:"support.constant.property-value.less"},{comment:"animation-iteration-count",match:"\\b(?:infinite)\\b",name:"support.constant.property-value.less"},{comment:"animation-play-state",match:"\\b(?:running|paused)\\b",name:"support.constant.property-value.less"},{comment:"animation-range, animation-range-start, animation-range-end",match:"\\b(?:entry-crossing|exit-crossing|entry|exit)\\b",name:"support.constant.property-value.less"},{comment:"animation-timing-function",match:"\\b(linear|ease-in-out|ease-in|ease-out|ease|step-start|step-end)\\b",name:"support.constant.property-value.less"},{match:"\\b(absolute|active|add|all-petite-caps|all-small-caps|all-scroll|all|alphabetic|alpha|alternate-reverse|alternate|always|annotation|antialiased|at|autohiding-scrollbar|auto|avoid-column|avoid-page|avoid-region|avoid|background-color|background-image|background-position|background-size|background-repeat|background|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink|block-line-height|block-start|block-end|block|blur|bolder|bold|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|both|bottom|box-shadow|box|break-all|break-word|break-spaces|brightness|butt(on)?|capitalize|central|center|char(acter-variant)?|cjk-ideographic|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color-stop|color-burn|color-dodge|color|column-count|column-gap|column-reverse|column-rule-color|column-rule-width|column-rule|column-width|columns|column|common-ligatures|condensed|consider-shifts|contain|content-box|contents?|contextual|contrast|cover|crisp-edges|crispEdges|crop|crosshair|cross|darken|dashed|default|dense|device-width|diagonal-fractions|difference|disabled|discard|discretionary-ligatures|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|drop-shadow|[nsew]{1,4}-resize|ease-in-out|ease-in|ease-out|ease|element|ellipsis|embed|end|EndColorStr|evenodd|exclude-ruby|exclusion|expanded|extra-condensed|extra-expanded|farthest-corner|farthest-side|farthest|fill-box|fill-opacity|fill|filter|fit-content|fixed|flat|flex-basis|flex-end|flex-grow|flex-shrink|flex-start|flexbox|flex|flip|flood-color|font-size-adjust|font-size|font-stretch|font-weight|font|forwards|from-image|from|full-width|gap|geometricPrecision|glyphs|gradient|grayscale|grid-column-gap|grid-column|grid-row-gap|grid-row|grid-gap|grid-height|grid|groove|hand|hanging|hard-light|height|help|hidden|hide|historical-forms|historical-ligatures|horizontal-tb|horizontal|hue|ideographic|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|include-ruby|infinite|inherit|initial|inline-end|inline-size|inline-start|inline-table|inline-line-height|inline-flexbox|inline-flex|inline-box|inline-block|inline|inset|inside|inter-ideograph|inter-word|intersect|invert|isolate|isolation|italic|jis(04|78|83|90)|justify-all|justify|keep-all|larger|large|last|layout|left|letter-spacing|lighten|lighter|lighting-color|linear-gradient|linearRGB|linear|line-edge|line-height|line-through|line|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr|luminosity|luminance|manual|manipulation|margin-bottom|margin-box|margin-left|margin-right|margin-top|margin|marker(-offset|s)?|match-parent|mathematical|max-(content|height|lines|size|width)|medium|middle|min-(content|height|width)|miter|mixed|move|multiply|newspaper|no-change|no-clip|no-close-quote|no-open-quote|no-common-ligatures|no-discretionary-ligatures|no-historical-ligatures|no-contextual|no-drop|no-repeat|none|nonzero|normal|not-allowed|nowrap|oblique|offset-after|offset-before|offset-end|offset-start|offset|oldstyle-nums|opacity|open-quote|optimize(Legibility|Precision|Quality|Speed)|order|ordinal|ornaments|outline-color|outline-offset|outline-width|outline|outset|outside|overline|over-edge|overlay|padding(-bottom|-box|-left|-right|-top|-box)?|page|paint(ed)?|paused|pan-(x|left|right|y|up|down)|perspective-origin|petite-caps|pixelated|pointer|pinch-zoom|pretty|pre(-line|-wrap)?|preserve-3d|preserve-breaks|preserve-spaces|preserve|progid:DXImageTransform\\.Microsoft\\.(Alpha|Blur|dropshadow|gradient|Shadow)|progress|proportional-nums|proportional-width|radial-gradient|recto|region|relative|repeating-linear-gradient|repeating-radial-gradient|repeat-x|repeat-y|repeat|replaced|reset-size|reverse|revert-layer|revert|ridge|right|round|row-gap|row-resize|row-reverse|row|rtl|ruby|running|saturate|saturation|screen|scrollbar|scroll-position|scroll|separate|sepia|scale-down|semi-condensed|semi-expanded|shape-image-threshold|shape-margin|shape-outside|show|sideways-lr|sideways-rl|sideways|simplified|size|slashed-zero|slice|small-caps|smaller|small|smooth|snap|solid|soft-light|space-around|space-between|space|span|sRGB|stable|stacked-fractions|stack|startColorStr|start|static|step-end|step-start|sticky|stop-color|stop-opacity|stretch|strict|stroke-box|stroke-dasharray|stroke-dashoffset|stroke-miterlimit|stroke-opacity|stroke-width|stroke|styleset|style|stylistic|subgrid|subpixel-antialiased|subtract|super|swash|table-caption|table-cell|table-column-group|table-footer-group|table-header-group|table-row-group|table-column|table-row|table|tabular-nums|tb-rl|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?|thick|thin|titling-caps|titling-case|top|touch|to|traditional|transform-origin|transform-style|transform|ultra-condensed|ultra-expanded|under-edge|underline|unicase|unset|uppercase|upright|use-glyph-orientation|use-script|verso|vertical(-align|-ideographic|-lr|-rl|-text)?|view-box|viewport-fill-opacity|viewport-fill|visibility|visibleFill|visiblePainted|visibleStroke|visible|wait|wavy|weight|whitespace|width|word-spacing|wrap-reverse|wrap-reverse|wrap|xx?-(large|small)|z-index|zero|zoom-in|zoom-out|zoom|arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)\\b",name:"support.constant.property-value.less"},{match:"\\b(sans-serif|serif|monospace|fantasy|cursive)\\b(?=\\s*[;,\\n}])",name:"support.constant.font-name.less"}]},"property-values":{patterns:[{include:"#comment-block"},{include:"#builtin-functions"},{include:"#color-functions"},{include:"#less-functions"},{include:"#less-variables"},{include:"#unicode-range"},{include:"#numeric-values"},{include:"#color-values"},{include:"#property-value-constants"},{include:"#less-math"},{include:"#literal-string"},{include:"#comma-delimiter"},{include:"#important"}]},"pseudo-selectors":{patterns:[{begin:"(:)(dir)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"ltr|rtl",name:"variable.parameter.dir.less"},{include:"#less-variables"}]}]},{begin:"(:)(lang)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"(:)(not)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{begin:"(:)(nth(-last)?-(child|of-type))(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},contentName:"meta.function-call.less",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{match:"\\b(even|odd)\\b",name:"keyword.other.pseudo-class.less"},{captures:{1:{name:"keyword.operator.arithmetic.less"},2:{name:"keyword.other.unit.less"},4:{name:"keyword.operator.arithmetic.less"}},match:"(?:([-+])?(?:\\d+)?(n)(\\s*([-+])\\s*\\d+)?|[-+]?\\s*\\d+)",name:"constant.numeric.less"},{include:"#less-math"},{include:"#less-strings"},{include:"#less-variable-interpolation"}]}]},{begin:"(:)(host-context|host|has|is|not|where)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},match:"(:)(active|any-link|autofill|blank|buffering|checked|current|default|defined|disabled|empty|enabled|first-child|first-of-type|first|focus-visible|focus-within|focus|fullscreen|future|host|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|local-link|link|modal|muted|only-child|only-of-type|optional|out-of-range|past|paused|picture-in-picture|placeholder-shown|playing|popover-open|read-only|read-write|required|right|root|scope|seeking|stalled|target-within|target|user-invalid|user-valid|valid|visited|volume-locked)\\b",name:"meta.function-call.less"},{begin:"(::?)(highlight|part|state)(?=\\s*(\\())",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},comment:"::highlight()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-element.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*",name:"variable.parameter.less"},{include:"#less-variables"}]}]},{begin:"(::?)slotted(?=\\s*(\\())",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},comment:"::slotted()",contentName:"meta.function-call.less",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-element.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"}},comment:"defined pseudo-elements",match:"(::?)(after|backdrop|before|cue|file-selector-button|first-letter|first-line|grammar-error|marker|placeholder|selection|spelling-error|target-text|view-transition-group|view-transition-image-pair|view-transition-new|view-transition-old|view-transition)\\b",name:"entity.other.attribute-name.pseudo-element.less"},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"meta.namespace.vendor-prefix.less"}},comment:"other possible pseudo-elements",match:"(::?)(-\\w+-)(--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\b",name:"entity.other.attribute-name.pseudo-element.less"}]},"qualified-name":{captures:{1:{name:"entity.name.constant.less"},2:{name:"entity.name.namespace.wildcard.less"},3:{name:"punctuation.separator.namespace.less"}},match:"(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)|(\\*))?([|])(?!=)"},"regexp-function":{begin:"\\b(regexp)(?=\\()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"support.function.regexp.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.function-call.less",patterns:[{include:"#literal-string"}]}]},"relative-color":{patterns:[{match:"from",name:"keyword.other.less"},{match:"\\b[hslawbch]\\b",name:"keyword.other.less"}]},"rule-list":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\s*\\})",name:"meta.property-list.less",patterns:[{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"\\s*(;)|(?=[})])"},{include:"#rule-list-body"},{include:"#less-extend"}]}]},"rule-list-body":{patterns:[{include:"#comment-block"},{include:"#comment-line"},{include:"#at-rules"},{include:"#less-variable-assignment"},{begin:"(?=[-\\w]*?@\\{.*\\}[-\\w]*?\\s*:[^;{(]*(?=[;})]))",end:"(?=\\s*(;)|(?=[})]))",patterns:[{begin:"(?=[^\\s:])",end:"(?=(((\\+_?)?):)[\\s\\t]*)",name:"support.type.property-name.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"support.type.property-name.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#property-values"}]}]},{begin:"(?=[-a-z])",end:"$|(?![-a-z])",patterns:[{include:"#custom-property-name"},{begin:"(-[\\w-]+?-)((?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*)\\b",beginCaptures:{0:{name:"support.type.property-name.less"},1:{name:"meta.namespace.vendor-prefix.less"}},comment:"vendor-prefixed properties",end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#property-values"},{match:"[\\w-]+",name:"support.constant.property-value.less"}]}]},{include:"#filter-function"},{begin:"\\b(border((-(bottom|top)-(left|right))|((-(start|end)){2}))?-radius|(border-image(?!-)))\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},comment:"border-radius and border-image properties utilize a slash as a separator",end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#value-separator"},{include:"#property-values"}]}]},{captures:{1:{name:"keyword.other.custom-property.prefix.less"},2:{name:"support.type.custom-property.name.less"}},match:"\\b(var-)(-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)(?=\\s)",name:"invalid.deprecated.custom-property.less"},{begin:"\\bfont(-family)?(?!-)\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#property-values"},{match:"-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*(\\s+-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)*",name:"string.unquoted.less"},{match:",",name:"punctuation.separator.less"}]},{begin:"\\banimation-timeline\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#comment-block"},{include:"#custom-property-name"},{include:"#scroll-function"},{include:"#view-function"},{include:"#property-values"},{include:"#less-variables"},{include:"#arbitrary-repetition"},{include:"#important"}]}]},{begin:"\\banimation(?:-name)?(?=(?:\\+_?)?:)\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#comment-block"},{include:"#builtin-functions"},{include:"#less-functions"},{include:"#less-variables"},{include:"#numeric-values"},{include:"#property-value-constants"},{match:"-?(?:[_a-zA-Z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[-_a-zA-Z0-9]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*",name:"variable.other.constant.animation-name.less string.unquoted.less"},{include:"#less-math"},{include:"#arbitrary-repetition"},{include:"#important"}]}]},{begin:"\\b(transition(-(property|duration|delay|timing-function))?)\\b",beginCaptures:{1:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{include:"#time-type"},{include:"#property-values"},{include:"#cubic-bezier-function"},{include:"#steps-function"},{include:"#arbitrary-repetition"}]}]},{begin:"\\b(?:backdrop-)?filter\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"\\b(inherit|initial|unset|none)\\b",name:"meta.property-value.less"},{include:"#filter-functions"}]},{begin:"\\bwill-change\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"unset|initial|inherit|will-change|auto|scroll-position|contents",name:"invalid.illegal.property-value.less"},{match:"-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*",name:"support.constant.property-value.less"},{include:"#arbitrary-repetition"}]},{begin:"\\bcounter-(increment|(re)?set)\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*",name:"entity.name.constant.counter-name.less"},{include:"#integer-type"},{match:"unset|initial|inherit|auto",name:"invalid.illegal.property-value.less"}]},{begin:"\\bcontainer(?:-name)?(?=\\s*?:)",end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"support.type.property-name.less",patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{match:"\\bdefault\\b",name:"invalid.illegal.property-value.less"},{include:"#global-property-values"},{include:"#custom-property-name"},{contentName:"variable.other.constant.container-name.less",match:"--|(?:-?(?:(?:[a-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R]))))(?:(?:[-\\da-zA-Z_]|[\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}\\x{200D}\\x{203F}\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}])|(?:\\\\(?:\\N|[^0-9A-Fa-f]|[0-9A-Fa-f]{1,6}[\\s\\R])))*",name:"support.constant.property-value.less"},{include:"#property-values"}]}]},{match:"\\b(accent-height|align-content|align-items|align-self|alignment-baseline|all|animation-timing-function|animation-range-start|animation-range-end|animation-range|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation-composition|animation|appearance|ascent|aspect-ratio|azimuth|backface-visibility|background-size|background-repeat-y|background-repeat-x|background-repeat|background-position-y|background-position-x|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|baseline-shift|begin|bias|blend-mode|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|bottom|box-(align|decoration-break|direction|flex|ordinal-group|orient|pack|shadow|sizing)|break-(after|before|inside)|caption-side|clear|clip-path|clip-rule|clip|color(-(interpolation(-filters)?|profile|rendering))?|columns|column-(break-before|count|fill|gap|(rule(-(color|style|width))?)|span|width)|container-name|container-type|container|contain-intrinsic-block-size|contain-intrinsic-inline-size|contain-intrinsic-height|contain-intrinsic-size|contain-intrinsic-width|contain|content|counter-(increment|reset)|cursor|[cdf][xy]|direction|display|divisor|dominant-baseline|dur|elevation|empty-cells|enable-background|end|fallback|fill(-(opacity|rule))?|filter|flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))?|float|flood-(color|opacity)|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size(-adjust)?|font-smoothing|font-stretch|font-style|font-synthesis|font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))?|font-weight|font|fr|((column|row)-)?gap|glyph-orientation-(horizontal|vertical)|grid-(area|gap)|grid-auto-(columns|flow|rows)|grid-(column|row)(-(end|gap|start))?|grid-template(-(areas|columns|rows))?|grid|height|hyphens|image-(orientation|rendering|resolution)|inset(-(block|inline))?(-(start|end))?|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-(box-contain|break|clamp|height)|list-style(-(image|position|type))?|(margin|padding)(-(bottom|left|right|top)|(-(block|inline)?(-(end|start))?))?|marker(-(end|mid|start))?|mask(-(clip||composite|image|origin|position|repeat|size|type))?|(max|min)-(height|width)|mix-blend-mode|nbsp-mode|negative|object-(fit|position)|opacity|operator|order|orphans|outline(-(color|offset|style|width))?|overflow(-((inline|block)|scrolling|wrap|x|y))?|overscroll-behavior(-block|-(inline|x|y))?|pad(ding(-(bottom|left|right|top))?)?|page(-break-(after|before|inside))?|paint-order|pause(-(after|before))?|perspective(-origin(-(x|y))?)?|pitch(-range)?|place-content|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|scale|scroll-behavior|shape-(image-threshold|margin|outside|rendering)|size|speak(-as)?|src|stop-(color|opacity)|stroke(-(dash(array|offset)|line(cap|join)|miterlimit|opacity|width))?|suffix|symbols|system|tab-size|table-layout|tap-highlight-color|text-align(-last)?|text-decoration(-(color|line|style))?|text-emphasis(-(color|position|style))?|text-(anchor|fill-color|height|indent|justify|orientation|overflow|rendering|size-adjust|shadow|transform|underline-position|wrap)|top|touch-action|transform(-origin(-(x|y))?)|transform(-style)?|transition(-(delay|duration|property|timing-function))?|translate|unicode-(bidi|range)|user-(drag|select)|vertical-align|visibility|white-space(-collapse)?|widows|width|will-change|word-(break|spacing|wrap)|writing-mode|z-index|zoom)\\b",name:"support.type.property-name.less"},{match:"\\b(((contain-intrinsic|max|min)-)?(block|inline)?-size)\\b",name:"support.type.property-name.less"},{include:"$self"}]},{begin:"\\b((?:(?:\\+_?)?):)([\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"},2:{name:"meta.property-value.less"}},captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},contentName:"meta.property-value.less",end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{include:"#property-values"}]},{include:"$self"}]},"scroll-function":{begin:"\\b(scroll)(\\()",beginCaptures:{1:{name:"support.function.scroll.less"},2:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{match:"root|nearest|self",name:"support.constant.scroller.less"},{match:"block|inline|x|y",name:"support.constant.axis.less"},{include:"#less-variables"},{include:"#var-function"}]},selector:{patterns:[{begin:"(?=[>~+/\\.*#a-zA-Z\\[&]|(\\:{1,2}[^\\s])|@\\{)",contentName:"meta.selector.less",end:"(?=@(?!\\{)|[{;])",patterns:[{include:"#comment-line"},{include:"#selectors"},{include:"#less-namespace-accessors"},{include:"#less-variable-interpolation"},{include:"#important"}]}]},selectors:{patterns:[{match:"\\b([a-z](?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*-(?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*)\\b",name:"entity.name.tag.custom.less"},{match:"\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|clipPath|code|col|colgroup|content|data|dataList|dd|defs|del|details|dfn|dialog|dir|div|dl|dt|element|ellipse|em|embed|eventsource|fieldset|figcaption|figure|filter|footer|foreignObject|form|frame|frameset|g|glyph|glyphRef|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|line|linearGradient|link|main|map|mark|marker|mask|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|path|pattern|picture|polygon|polyline|pre|progress|q|radialGradient|rect|rp|ruby|rt|rtc|s|samp|script|section|select|shadow|small|source|span|stop|strike|strong|style|sub|summary|sup|svg|switch|symbol|table|tbody|td|template|textarea|textPath|tfoot|th|thead|time|title|tr|track|tref|tspan|tt|u|ul|use|var|video|wbr|xmp)\\b",name:"entity.name.tag.less"},{begin:"(\\.)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.class.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(#)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.id.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(&)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},contentName:"entity.other.attribute-name.parent.less",end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.parent.less",patterns:[{include:"#less-variable-interpolation"},{include:"#selectors"}]},{include:"#pseudo-selectors"},{include:"#less-extend"},{match:"(?!\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])",name:"punctuation.separator.combinator.less"},{match:"((?:>{1,3}|[~+])){2,}",name:"invalid.illegal.combinator.less"},{match:"\\/deep\\/",name:"invalid.illegal.combinator.less"},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.braces.begin.less"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.braces.end.less"}},name:"meta.attribute-selector.less",patterns:[{include:"#less-variable-interpolation"},{include:"#qualified-name"},{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.attribute-name.less"},{begin:"\\s*([~*|^$]?=)\\s*",beginCaptures:{1:{name:"keyword.operator.attribute-selector.less"}},end:"(?=(\\s|\\]))",patterns:[{include:"#less-variable-interpolation"},{match:`[^\\s\\]\\['"]`,name:"string.unquoted.less"},{include:"#literal-string"},{captures:{1:{name:"keyword.other.less"}},match:"(?:\\s+([iI]))?"},{match:"\\]",name:"punctuation.definition.entity.less"}]}]},{include:"#arbitrary-repetition"},{match:"\\*",name:"entity.name.tag.wildcard.less"}]},"shape-functions":{patterns:[{begin:"\\b(rect)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bauto\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#comma-delimiter"}]}]},{begin:"\\b(inset)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bround\\b",name:"keyword.other.less"},{include:"#length-type"},{include:"#percentage-type"}]}]},{begin:"\\b(circle|ellipse)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bat\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center|closest-side|farthest-side)\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#percentage-type"}]}]},{begin:"\\b(polygon)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\b(nonzero|evenodd)\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#percentage-type"}]}]}]},"steps-function":{begin:"\\b(steps)(\\()",beginCaptures:{1:{name:"support.function.timing.less"},2:{name:"punctuation.definition.group.begin.less"}},contentName:"meta.group.less",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{match:"jump-start|jump-end|jump-none|jump-both|start|end",name:"support.constant.step-position.less"},{include:"#comma-delimiter"},{include:"#integer-type"},{include:"#less-variables"},{include:"#var-function"},{include:"#calc-function"}]},"string-content":{patterns:[{include:"#less-variable-interpolation"},{match:"\\\\\\s*\\n",name:"constant.character.escape.newline.less"},{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.less"}]},"style-function":{begin:"\\b(style)(?=\\()",beginCaptures:{0:{name:"support.function.style.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#rule-list-body"}]}]},"symbols-function":{begin:"\\b(symbols)(?=\\()",beginCaptures:{1:{name:"support.function.counter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\b(cyclic|numeric|alphabetic|symbolic|fixed)\\b",name:"support.constant.symbol-type.less"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#image-type"}]}]},"time-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(s|ms))\\b",name:"constant.numeric.less"},"transform-functions":{patterns:[{begin:"\\b(matrix3d|scale3d|matrix|scale)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(translate(3d)?)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#percentage-type"},{include:"#length-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(translate[XY])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#percentage-type"},{include:"#length-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(rotate[XYZ]?|skew[XY])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(skew)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(translateZ|perspective)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(rotate3d)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(scale[XYZ])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#number-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]}]},"unicode-range":{captures:{1:{name:"support.constant.unicode-range.prefix.less"},2:{name:"constant.codepoint-range.less"},3:{name:"punctuation.section.range.less"}},match:"(?i)(u\\+)([0-9a-f?]{1,6}(?:(-)[0-9a-f]{1,6})?)",name:"support.unicode-range.less"},"unquoted-string":{match:`[^\\s'"]`,name:"string.unquoted.less"},"url-function":{begin:"\\b(url)(?=\\()",beginCaptures:{1:{name:"support.function.url.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{include:"#unquoted-string"},{include:"#var-function"}]}]},"value-separator":{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(/)\\s*"},"var-function":{begin:"\\b(var)(?=\\()",beginCaptures:{1:{name:"support.function.var.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#custom-property-name"},{include:"#less-variables"},{include:"#property-values"}]}]},"view-function":{begin:"\\b(view)(?=\\()",beginCaptures:{1:{name:"support.function.view.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"block|inline|x|y|auto",name:"support.constant.property-value.less"},{include:"#percentage-type"},{include:"#length-type"},{include:"#less-variables"},{include:"#var-function"},{include:"#calc-function"},{include:"#arbitrary-repetition"}]}]}},scopeName:"source.css.less"});var Ui=[Mi];const Hi=Object.freeze({displayName:"TypeScript",name:"typescript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?==>)",name:"meta.arrow.ts"},{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync))?((?<![})!\\]])\\s*(?=((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.ts",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.ts"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.ts"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{captures:{1:{name:"meta.brace.angle.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.angle.ts"}},match:"\\s*(<)\\s*(const)\\s*(>)",name:"cast.expr.ts"},{begin:"(?:(?<!\\+\\+|--)(?<=^return|[^\\._$0-9A-Za-z]return|^throw|[^\\._$0-9A-Za-z]throw|^yield|[^\\._$0-9A-Za-z]yield|^await|[^\\._$0-9A-Za-z]await|^default|[^\\._$0-9A-Za-z]default|[=(,:>*?\\&\\|\\^]|[^_$0-9A-Za-z](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]},{begin:"(?:(?<=^))\\s*(<)(?=[_$A-Za-z][_$0-9A-Za-z]*\\s*>)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]}]},"class-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.ts"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s*\\??\\.\\s*[_$A-Za-z][_$0-9A-Za-z]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.documentation.ts",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.ts"},2:{name:"storage.type.internaldeclaration.ts"},3:{name:"punctuation.decorator.internaldeclaration.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.ts"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.ts"},{captures:{1:{name:"keyword.control.loop.ts"},2:{name:"entity.name.label.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.ts"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.ts"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.ts"},{include:"#if-statement"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.ts"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"}]},decorator:{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.ts"}},end:"(?=\\s)",name:"meta.decorator.ts",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},name:"meta.parameter.object-binding-pattern.ts",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},name:"meta.paramter.array-binding-pattern.ts",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.readwrite.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.constant.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ts"}},end:"(?=$)",name:"comment.line.triple-slash.directive.ts",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.ts"},2:{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.ts"}},name:"meta.tag.ts",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.ts"},{match:"=",name:"keyword.operator.assignment.ts"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"((@)(?:access|api))\\s+(private|protected|public)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\s*/]|\\*[^/])+)"},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.ts"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"((@)kind)\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)"},{begin:"((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.ts"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)"},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.enum.ts"},5:{name:"entity.name.type.enum.ts"}},end:"(?<=\\})",name:"meta.enum.declaration.ts",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{0:{name:"variable.other.enummember.ts"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.as.ts"},3:{name:"storage.type.namespace.ts"},4:{name:"entity.name.type.module.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$A-Za-z][_$0-9A-Za-z]*)"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"},3:{name:"keyword.operator.assignment.ts"},4:{name:"keyword.control.default.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.default.ts",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.ts",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.ts"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.ts"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.ts"},2:{name:"keyword.generator.asterisk.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.ts"},{include:"#typeof-operator"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.ts"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.ts"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{captures:{1:{name:"keyword.operator.logical.ts"},2:{name:"keyword.operator.assignment.compound.ts"},3:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$0-9A-Za-z])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ts"},{begin:"(?<=[_$0-9A-Za-z)\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$0-9A-Za-z)\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?<!\\()(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",name:"meta.field.declaration.ts",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.ts entity.name.function.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"keyword.operator.definiteassignment.ts"}},match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)(?:(\\?)|(\\!))?(?=\\s*\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{match:"\\#?[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.property.ts variable.object.property.ts"},{match:"\\?",name:"keyword.operator.optional.ts"},{match:"\\!",name:"keyword.operator.definiteassignment.ts"}]},"for-loop":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.ts"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.ts"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.ts"}]},"function-call":{patterns:[{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.ts punctuation.accessor.optional.ts"},{match:"\\!",name:"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.ts"}]},"function-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.async.ts"},4:{name:"storage.type.function.ts"},5:{name:"keyword.generator.asterisk.ts"},6:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.ts",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.function.ts"},3:{name:"keyword.generator.asterisk.ts"},4:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.ts",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.function.ts entity.name.function.ts"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ts"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.ts"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"entity.name.function.ts"}},match:"(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{match:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])",name:"variable.other.constant.ts"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"variable.other.readwrite.ts"}]},"if-statement":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"}},end:"(?<!^import|[^\\._$0-9A-Za-z]import)(?=;|$|^)",name:"meta.import.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$0-9A-Za-z]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.ts"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"},7:{name:"keyword.control.require.ts"},8:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.import-equals.external.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.other.readwrite.ts"}]}]},"import-export-assert-clause":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.ts"},2:{name:"keyword.control.assert.ts"},3:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.ts"},{match:":",name:"punctuation.separator.key-value.ts"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"keyword.control.default.ts"},3:{name:"constant.language.import-export-all.ts"},4:{name:"variable.other.readwrite.ts"},5:{name:"keyword.control.as.ts"},6:{name:"keyword.control.default.ts"},7:{name:"variable.other.readwrite.alias.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$A-Za-z][_$0-9A-Za-z]*)))\\s+(as)\\s+(?:(default(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$A-Za-z][_$0-9A-Za-z]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.ts"},{match:"\\b(default)\\b",name:"keyword.control.default.ts"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"variable.other.readwrite.alias.ts"}},match:"(?:(\\btype)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.ts"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"meta.brace.square.ts"},3:{name:"variable.parameter.ts"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.declaration.ts",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.square.ts"},4:{name:"entity.name.type.ts"},5:{name:"keyword.operator.expression.in.ts"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.type.modifier.ts"},3:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.mappedtype.declaration.ts",patterns:[{captures:{1:{name:"keyword.control.as.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.interface.ts"}},end:"(?<=\\})",name:"meta.interface.ts",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.ts"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},label:{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"keyword.operator.new.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.property.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.method.ts entity.name.function.ts"},{match:"\\?",name:"keyword.operator.optional.ts"}]},"namespace-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$A-Za-z\"'`]))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.namespace.ts"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.namespace.declaration.ts",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.type.module.ts"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",name:"new.expr.ts",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.ts"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.ts"},{captures:{0:{name:"constant.numeric.decimal.ts"},1:{name:"meta.delimiter.decimal.period.ts"},2:{name:"storage.type.numeric.bigint.ts"},3:{name:"meta.delimiter.decimal.period.ts"},4:{name:"storage.type.numeric.bigint.ts"},5:{name:"meta.delimiter.decimal.period.ts"},6:{name:"storage.type.numeric.bigint.ts"},7:{name:"storage.type.numeric.bigint.ts"},8:{name:"meta.delimiter.decimal.period.ts"},9:{name:"storage.type.numeric.bigint.ts"},10:{name:"meta.delimiter.decimal.period.ts"},11:{name:"storage.type.numeric.bigint.ts"},12:{name:"meta.delimiter.decimal.period.ts"},13:{name:"storage.type.numeric.bigint.ts"},14:{name:"storage.type.numeric.bigint.ts"}},match:"(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)"}]},"numericConstant-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.ts"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.ts"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.object.property.ts"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.ts"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.object.property.ts"},4:{name:"variable.other.object.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(\\#?[A-Z][_$\\dA-Z]*)|(\\#?[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{captures:{1:{name:"variable.other.constant.object.ts"},2:{name:"variable.other.object.ts"}},match:"(?:([A-Z][_$\\dA-Z]*)|([_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"constant.numeric.decimal.ts"}},match:"(?![_$A-Za-z])([\\d]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"entity.name.function.ts"}},match:"(?:([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"}},match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.ts"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.ts",patterns:[{include:"#type"}]},{begin:"(?=[_$A-Za-z][_$0-9A-Za-z]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},contentName:"meta.arrow.ts meta.return.type.arrow.ts",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.ts"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.ts"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.ts"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.double.ts",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.single.ts",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{begin:"((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.ts",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.ts",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.ts"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.ts"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.ts"},"super-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.ts"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.ts"}]},"support-objects":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.ts"},{captures:{1:{name:"keyword.control.import.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.importmeta.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.target.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"support.variable.property.ts"},4:{name:"support.constant.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.ts"},2:{name:"support.type.object.module.ts"},3:{name:"punctuation.accessor.ts"},4:{name:"punctuation.accessor.optional.ts"},5:{name:"support.type.object.module.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"switch-statement.expr.ts",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"switch-expression.expr.ts",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"(?=\\})",name:"switch-block.expr.ts",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.ts"}},end:"(?=:)",name:"case-clause.expr.ts",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"},2:{name:"meta.block.ts punctuation.definition.block.ts"}},contentName:"meta.block.ts",end:"\\}",endCaptures:{0:{name:"meta.block.ts punctuation.definition.block.ts"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.tagged-template.ts"}]},{include:"#type-arguments"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^\\d])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.ts"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.type.ts"},4:{name:"entity.name.type.alias.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.type.declaration.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.ts"},2:{name:"keyword.control.intrinsic.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.ts"},"type-conditional":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.ts"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.ts storage.modifier.ts"},2:{name:"meta.type.constructor.ts keyword.control.new.ts"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.control.new.ts"}},end:"(?<=\\))",name:"meta.type.constructor.ts",patterns:[{include:"#function-parameters"}]},{begin:"((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>))))))",end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.ts"},2:{name:"entity.name.type.ts"},3:{name:"keyword.operator.expression.extends.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.ts"}]},"type-name":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(<)",captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.ts"},2:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"entity.name.type.ts"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.ts"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.ts"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#comment"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=\\s*(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"},4:{name:"keyword.operator.expression.is.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s(is)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.ts"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.ts"}]},"type-primitive":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.ts"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.type.tuple.ts",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.ts"},{captures:{1:{name:"entity.name.label.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"punctuation.separator.label.ts"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$A-Za-z][_$0-9A-Za-z]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.ts"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.ts"},"var-expr":{patterns:[{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^let|[^\\._$0-9A-Za-z]let|^var|[^\\._$0-9A-Za-z]var)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^const|[^\\._$0-9A-Za-z]const)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^using|[^\\._$0-9A-Za-z]using|^await\\s+using|[^\\._$0-9A-Za-z]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.ts entity.name.function.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.readwrite.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=$|^|[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},scopeName:"source.ts",aliases:["ts"]});var yt=[Hi];const Wi=Object.freeze({displayName:"JSX",name:"jsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.js.jsx"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.objectliteral.js.jsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},name:"meta.array.literal.js.jsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"variable.parameter.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?==>)",name:"meta.arrow.js.jsx"},{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync))?((?<![})!\\]])\\s*(?=((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js.jsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js.jsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.js.jsx"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.js.jsx"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.type.class.js.jsx"}},end:"(?<=\\})",name:"meta.class.js.jsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.js.jsx"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.type.class.js.jsx"}},end:"(?<=\\})",name:"meta.class.js.jsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.js.jsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s*\\??\\.\\s*[_$A-Za-z][_$0-9A-Za-z]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},name:"comment.block.documentation.js.jsx",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"},2:{name:"storage.type.internaldeclaration.js.jsx"},3:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},name:"comment.block.js.jsx"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},contentName:"comment.line.double-slash.js.jsx",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.js.jsx"},{captures:{1:{name:"keyword.control.loop.js.jsx"},2:{name:"entity.name.label.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.js.jsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.js.jsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.js.jsx"},{include:"#if-statement"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.js.jsx"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.block.js.jsx",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.js.jsx"}]},decorator:{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.js.jsx"}},end:"(?=\\s)",name:"meta.decorator.js.jsx",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.js.jsx",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.js.jsx",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},name:"meta.parameter.object-binding-pattern.js.jsx",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},name:"meta.paramter.array-binding-pattern.js.jsx",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"variable.parameter.js.jsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.js.jsx",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.js.jsx",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"meta.definition.variable.js.jsx variable.other.readwrite.js.jsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js.jsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js.jsx"},2:{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js.jsx"},{match:"=",name:"keyword.operator.assignment.js.jsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"((@)(?:access|api))\\s+(private|protected|public)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\s*/]|\\*[^/])+)"},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.js.jsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"((@)kind)\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)"},{begin:"((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js.jsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)"},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.type.enum.js.jsx"},5:{name:"entity.name.type.enum.js.jsx"}},end:"(?<=\\})",name:"meta.enum.declaration.js.jsx",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#comment"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{0:{name:"variable.other.enummember.js.jsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"keyword.control.as.js.jsx"},3:{name:"storage.type.namespace.js.jsx"},4:{name:"entity.name.type.module.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$A-Za-z][_$0-9A-Za-z]*)"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"keyword.control.type.js.jsx"},3:{name:"keyword.operator.assignment.js.jsx"},4:{name:"keyword.control.default.js.jsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.default.js.jsx",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"keyword.control.type.js.jsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.js.jsx",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.js.jsx"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.js.jsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.js.jsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.js.jsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.js.jsx"},2:{name:"keyword.generator.asterisk.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.js.jsx"},{include:"#typeof-operator"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.js.jsx"},{captures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"storage.modifier.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"keyword.control.satisfies.js.jsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.js.jsx"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.js.jsx"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js.jsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js.jsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js.jsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js.jsx"},{captures:{1:{name:"keyword.operator.logical.js.jsx"},2:{name:"keyword.operator.assignment.compound.js.jsx"},3:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$0-9A-Za-z])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js.jsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js.jsx"},{match:"\\=",name:"keyword.operator.assignment.js.jsx"},{match:"--",name:"keyword.operator.decrement.js.jsx"},{match:"\\+\\+",name:"keyword.operator.increment.js.jsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js.jsx"},{begin:"(?<=[_$0-9A-Za-z)\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$0-9A-Za-z)\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?<!\\()(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{1:{name:"storage.modifier.js.jsx"}},end:"(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",name:"meta.field.declaration.js.jsx",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.optional.js.jsx"},3:{name:"keyword.operator.definiteassignment.js.jsx"}},match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)(?:(\\?)|(\\!))?(?=\\s*\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{match:"\\#?[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.property.js.jsx variable.object.property.js.jsx"},{match:"\\?",name:"keyword.operator.optional.js.jsx"},{match:"\\!",name:"keyword.operator.definiteassignment.js.jsx"}]},"for-loop":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.js.jsx"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.js.jsx"}]},"function-call":{patterns:[{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx"},{match:"\\!",name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.js.jsx"}]},"function-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.async.js.jsx"},4:{name:"storage.type.function.js.jsx"},5:{name:"keyword.generator.asterisk.js.jsx"},6:{name:"meta.definition.function.js.jsx entity.name.function.js.jsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.js.jsx",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.function.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"},4:{name:"meta.definition.function.js.jsx entity.name.function.js.jsx"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.js.jsx",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.function.js.jsx entity.name.function.js.jsx"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.js.jsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.js.jsx"}},name:"meta.parameters.js.jsx",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.js.jsx"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"entity.name.function.js.jsx"}},match:"(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{match:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])",name:"variable.other.constant.js.jsx"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"variable.other.readwrite.js.jsx"}]},"if-statement":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},name:"string.regexp.js.jsx",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"keyword.control.import.js.jsx"},4:{name:"keyword.control.type.js.jsx"}},end:"(?<!^import|[^\\._$0-9A-Za-z]import)(?=;|$|^)",name:"meta.import.js.jsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$0-9A-Za-z]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.js.jsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"keyword.control.import.js.jsx"},4:{name:"keyword.control.type.js.jsx"},5:{name:"variable.other.readwrite.alias.js.jsx"},6:{name:"keyword.operator.assignment.js.jsx"},7:{name:"keyword.control.require.js.jsx"},8:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},name:"meta.import-equals.external.js.jsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"keyword.control.import.js.jsx"},4:{name:"keyword.control.type.js.jsx"},5:{name:"variable.other.readwrite.alias.js.jsx"},6:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.js.jsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.other.readwrite.js.jsx"}]}]},"import-export-assert-clause":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.js.jsx"},2:{name:"keyword.control.assert.js.jsx"},3:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.js.jsx"},{match:":",name:"punctuation.separator.key-value.js.jsx"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.block.js.jsx",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.js.jsx"},2:{name:"keyword.control.default.js.jsx"},3:{name:"constant.language.import-export-all.js.jsx"},4:{name:"variable.other.readwrite.js.jsx"},5:{name:"keyword.control.as.js.jsx"},6:{name:"keyword.control.default.js.jsx"},7:{name:"variable.other.readwrite.alias.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$A-Za-z][_$0-9A-Za-z]*)))\\s+(as)\\s+(?:(default(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$A-Za-z][_$0-9A-Za-z]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.js.jsx"},{match:"\\b(default)\\b",name:"keyword.control.default.js.jsx"},{captures:{1:{name:"keyword.control.type.js.jsx"},2:{name:"variable.other.readwrite.alias.js.jsx"}},match:"(?:(\\btype)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.js.jsx"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"meta.brace.square.js.jsx"},3:{name:"variable.parameter.js.jsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.js.jsx"},2:{name:"keyword.operator.optional.js.jsx"}},name:"meta.indexer.declaration.js.jsx",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"meta.brace.square.js.jsx"},4:{name:"entity.name.type.js.jsx"},5:{name:"keyword.operator.expression.in.js.jsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.js.jsx"},2:{name:"keyword.operator.type.modifier.js.jsx"},3:{name:"keyword.operator.optional.js.jsx"}},name:"meta.indexer.mappedtype.declaration.js.jsx",patterns:[{captures:{1:{name:"keyword.control.as.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.js.jsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.type.interface.js.jsx"}},end:"(?<=\\})",name:"meta.interface.js.jsx",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.js.jsx"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{1:{name:"punctuation.definition.entity.js.jsx"},3:{name:"punctuation.definition.entity.js.jsx"}},match:"(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.js.jsx"}]},"jsx-evaluated-code":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.js.jsx"}},contentName:"meta.embedded.expression.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.js.jsx"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},name:"string.quoted.double.js.jsx",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},name:"string.quoted.single.js.jsx",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:"(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"},2:{name:"punctuation.definition.tag.begin.js.jsx"},3:{name:"entity.name.tag.namespace.js.jsx"},4:{name:"punctuation.separator.namespace.js.jsx"},5:{name:"entity.name.tag.js.jsx"},6:{name:"support.class.component.js.jsx"},7:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",end:"(?=</)",patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`,name:"keyword.operator.assignment.js.jsx"},"jsx-tag-attribute-name":{captures:{1:{name:"entity.other.attribute-name.namespace.js.jsx"},2:{name:"punctuation.separator.namespace.js.jsx"},3:{name:"entity.other.attribute-name.js.jsx"}},match:"\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(:))?([_$A-Za-z][-_$0-9A-Za-z]*)(?=\\s|=|/?>|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js.jsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.js.jsx"},"jsx-tag-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?!<\\s*[_$A-Za-z][_$0-9A-Za-z]*((\\s+extends\\s+[^=>])|,))(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",end:"(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.without-attributes.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"keyword.operator.new.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.property.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.method.js.jsx entity.name.function.js.jsx"},{match:"\\?",name:"keyword.operator.optional.js.jsx"}]},"namespace-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$A-Za-z\"'`]))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.namespace.js.jsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.namespace.declaration.js.jsx",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.type.module.js.jsx"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.js.jsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",name:"new.expr.js.jsx",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.js.jsx"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.js.jsx"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.js.jsx"},{captures:{1:{name:"storage.type.numeric.bigint.js.jsx"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.js.jsx"},{captures:{1:{name:"storage.type.numeric.bigint.js.jsx"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.js.jsx"},{captures:{0:{name:"constant.numeric.decimal.js.jsx"},1:{name:"meta.delimiter.decimal.period.js.jsx"},2:{name:"storage.type.numeric.bigint.js.jsx"},3:{name:"meta.delimiter.decimal.period.js.jsx"},4:{name:"storage.type.numeric.bigint.js.jsx"},5:{name:"meta.delimiter.decimal.period.js.jsx"},6:{name:"storage.type.numeric.bigint.js.jsx"},7:{name:"storage.type.numeric.bigint.js.jsx"},8:{name:"meta.delimiter.decimal.period.js.jsx"},9:{name:"storage.type.numeric.bigint.js.jsx"},10:{name:"meta.delimiter.decimal.period.js.jsx"},11:{name:"storage.type.numeric.bigint.js.jsx"},12:{name:"meta.delimiter.decimal.period.js.jsx"},13:{name:"storage.type.numeric.bigint.js.jsx"},14:{name:"storage.type.numeric.bigint.js.jsx"}},match:"(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)"}]},"numericConstant-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.js.jsx"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.js.jsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.object.property.js.jsx"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.js.jsx"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.object.property.js.jsx"},4:{name:"variable.other.object.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(\\#?[A-Z][_$\\dA-Z]*)|(\\#?[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{captures:{1:{name:"variable.other.constant.object.js.jsx"},2:{name:"variable.other.object.js.jsx"}},match:"(?:([A-Z][_$\\dA-Z]*)|([_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.objectliteral.js.jsx",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.js.jsx"},1:{name:"constant.numeric.decimal.js.jsx"}},match:"(?![_$A-Za-z])([\\d]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js.jsx"},{captures:{0:{name:"meta.object-literal.key.js.jsx"},1:{name:"entity.name.function.js.jsx"}},match:"(?:([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",name:"meta.object.member.js.jsx"},{captures:{0:{name:"meta.object-literal.key.js.jsx"}},match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js.jsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",name:"meta.object.member.js.jsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js.jsx"},{captures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"storage.modifier.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.js.jsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"keyword.control.satisfies.js.jsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.js.jsx",patterns:[{include:"#type"}]},{begin:"(?=[_$A-Za-z][_$0-9A-Za-z]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js.jsx",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.js.jsx punctuation.separator.key-value.js.jsx"}},end:"(?=,|\\})",name:"meta.object.member.js.jsx",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.js.jsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.js.jsx"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.js.jsx"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.js.jsx"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},name:"string.quoted.double.js.jsx",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},name:"string.quoted.single.js.jsx",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},name:"string.regexp.js.jsx",patterns:[{include:"#regexp"}]},{begin:"((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},name:"string.regexp.js.jsx",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.js.jsx",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.js.jsx",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.js.jsx"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.js.jsx"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},contentName:"comment.line.double-slash.js.jsx",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.js.jsx"},"super-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.js.jsx"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.js.jsx"}]},"support-objects":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.js.jsx"},{captures:{1:{name:"keyword.control.import.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"},4:{name:"support.variable.property.importmeta.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"},4:{name:"support.variable.property.target.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"support.variable.property.js.jsx"},4:{name:"support.constant.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.js.jsx"},2:{name:"support.type.object.module.js.jsx"},3:{name:"punctuation.accessor.js.jsx"},4:{name:"punctuation.accessor.optional.js.jsx"},5:{name:"support.type.object.module.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"switch-statement.expr.js.jsx",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},name:"switch-expression.expr.js.jsx",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"(?=\\})",name:"switch-block.expr.js.jsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.js.jsx"}},end:"(?=:)",name:"case-clause.expr.js.jsx",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx"},2:{name:"meta.block.js.jsx punctuation.definition.block.js.jsx"}},contentName:"meta.block.js.jsx",end:"\\}",endCaptures:{0:{name:"meta.block.js.jsx punctuation.definition.block.js.jsx"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},contentName:"string.template.js.jsx",end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.tagged-template.js.jsx"}]},{include:"#type-arguments"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},contentName:"string.template.js.jsx",end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^\\d])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.js.jsx"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.type.js.jsx"},4:{name:"entity.name.type.alias.js.jsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.type.declaration.js.jsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"},2:{name:"keyword.control.intrinsic.js.jsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.js.jsx"},"type-conditional":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.js.jsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.js.jsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.js.jsx storage.modifier.js.jsx"},2:{name:"meta.type.constructor.js.jsx keyword.control.new.js.jsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.control.new.js.jsx"}},end:"(?<=\\))",name:"meta.type.constructor.js.jsx",patterns:[{include:"#function-parameters"}]},{begin:"((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>))))))",end:"(?<=\\))",name:"meta.type.function.js.jsx",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js.jsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.js.jsx",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.js.jsx",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.js.jsx"},2:{name:"entity.name.type.js.jsx"},3:{name:"keyword.operator.expression.extends.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.js.jsx"}]},"type-name":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(<)",captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"},4:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},contentName:"meta.type.parameters.js.jsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js.jsx"},2:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},contentName:"meta.type.parameters.js.jsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"entity.name.type.js.jsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.object.type.js.jsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.js.jsx"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.js.jsx"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#comment"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.js.jsx"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.js.jsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},name:"meta.type.paren.cover.js.jsx",patterns:[{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=\\s*(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.js.jsx"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.js.jsx"},2:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},3:{name:"variable.parameter.js.jsx"},4:{name:"keyword.operator.expression.is.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s(is)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.js.jsx"},2:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},3:{name:"variable.parameter.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.js.jsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.js.jsx"}]},"type-primitive":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.js.jsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},name:"meta.type.tuple.js.jsx",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.js.jsx"},{captures:{1:{name:"entity.name.label.js.jsx"},2:{name:"keyword.operator.optional.js.jsx"},3:{name:"punctuation.separator.label.js.jsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$A-Za-z][_$0-9A-Za-z]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.js.jsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.js.jsx"},"var-expr":{patterns:[{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^let|[^\\._$0-9A-Za-z]let|^var|[^\\._$0-9A-Za-z]var)(?=\\s*$)))",name:"meta.var.expr.js.jsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.js.jsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.js.jsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.js.jsx"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^const|[^\\._$0-9A-Za-z]const)(?=\\s*$)))",name:"meta.var.expr.js.jsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.js.jsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.js.jsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.js.jsx"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^using|[^\\._$0-9A-Za-z]using|^await\\s+using|[^\\._$0-9A-Za-z]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.js.jsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.type.js.jsx"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.js.jsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.js.jsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.js.jsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.js.jsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.js.jsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.readwrite.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.js.jsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},scopeName:"source.js.jsx"});var _t=[Wi];const Xi=Object.freeze({displayName:"TSX",name:"tsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^yield|[^\\._$0-9A-Za-z]yield|^throw|[^\\._$0-9A-Za-z]throw|^in|[^\\._$0-9A-Za-z]in|^of|[^\\._$0-9A-Za-z]of|^typeof|[^\\._$0-9A-Za-z]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.array.literal.tsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?==>)",name:"meta.arrow.tsx"},{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync))?((?<![})!\\]])\\s*(?=((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.tsx"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.tsx"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.tsx"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s*\\??\\.\\s*[_$A-Za-z][_$0-9A-Za-z]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.documentation.tsx",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"},2:{name:"storage.type.internaldeclaration.tsx"},3:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.tsx"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.tsx"},{captures:{1:{name:"keyword.control.loop.tsx"},2:{name:"entity.name.label.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.tsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.tsx"},{include:"#if-statement"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.tsx"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"}]},decorator:{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",name:"meta.decorator.tsx",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},name:"meta.parameter.object-binding-pattern.tsx",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},name:"meta.paramter.array-binding-pattern.tsx",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$0-9A-Za-z]of|^in|[^\\._$0-9A-Za-z]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.tsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.tsx"},2:{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.tsx"}},name:"meta.tag.tsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.tsx"},{match:"=",name:"keyword.operator.assignment.tsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"((@)(?:access|api))\\s+(private|protected|public)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"((@)author)\\s+([^@\\s<>*/](?:[^@<>*/]|\\*[^/])*)(?:\\s*(<)([^>\\s]+)(>))?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"((@)borrows)\\s+((?:[^@\\s*/]|\\*[^/])+)\\s+(as)\\s+((?:[^@\\s*/]|\\*[^/])+)"},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.tsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"((@)kind)\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)template)\\s+([A-Za-z_$][\\w$.\\[\\]]*(?:\\s*,\\s*[A-Za-z_$][\\w$.\\[\\]]*)*)"},{begin:"((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.tsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)"},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.enum.tsx"},5:{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",name:"meta.enum.declaration.tsx",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{0:{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.as.tsx"},3:{name:"storage.type.namespace.tsx"},4:{name:"entity.name.type.module.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$A-Za-z][_$0-9A-Za-z]*)"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"},3:{name:"keyword.operator.assignment.tsx"},4:{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.default.tsx",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$A-Za-z][_$0-9A-Za-z]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.export.tsx",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.tsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.tsx"},2:{name:"keyword.generator.asterisk.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.tsx"},{include:"#typeof-operator"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.tsx"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.tsx"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.tsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.tsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.tsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.tsx"},{captures:{1:{name:"keyword.operator.logical.tsx"},2:{name:"keyword.operator.assignment.compound.tsx"},3:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$0-9A-Za-z])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.tsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.tsx"},{match:"\\=",name:"keyword.operator.assignment.tsx"},{match:"--",name:"keyword.operator.decrement.tsx"},{match:"\\+\\+",name:"keyword.operator.increment.tsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.tsx"},{begin:"(?<=[_$0-9A-Za-z)\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$0-9A-Za-z)\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?<!\\()(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|(\\#?[_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",name:"meta.field.declaration.tsx",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.tsx entity.name.function.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"keyword.operator.definiteassignment.tsx"}},match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)(?:(\\?)|(\\!))?(?=\\s*\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{match:"\\#?[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.property.tsx variable.object.property.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"},{match:"\\!",name:"keyword.operator.definiteassignment.tsx"}]},"for-loop":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.tsx"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.tsx"}]},"function-call":{patterns:[{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*)(\\s*\\??\\.\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*))*)|(\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.tsx punctuation.accessor.optional.tsx"},{match:"\\!",name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.tsx"}]},"function-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.async.tsx"},4:{name:"storage.type.function.tsx"},5:{name:"keyword.generator.asterisk.tsx"},6:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.tsx",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$A-Za-z][_$0-9A-Za-z]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.function.tsx"},3:{name:"keyword.generator.asterisk.tsx"},4:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.tsx",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.function.tsx entity.name.function.tsx"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.tsx"}},name:"meta.parameters.tsx",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"entity.name.function.tsx"}},match:"(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{match:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])",name:"variable.other.constant.tsx"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"variable.other.readwrite.tsx"}]},"if-statement":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$0-9A-Za-z]import)(?=;|$|^)",name:"meta.import.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$0-9A-Za-z]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"},7:{name:"keyword.control.require.tsx"},8:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.import-equals.external.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.other.readwrite.tsx"}]}]},"import-export-assert-clause":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.tsx"},2:{name:"keyword.control.assert.tsx"},3:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.tsx"},{match:":",name:"punctuation.separator.key-value.tsx"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"keyword.control.default.tsx"},3:{name:"constant.language.import-export-all.tsx"},4:{name:"variable.other.readwrite.tsx"},5:{name:"keyword.control.as.tsx"},6:{name:"keyword.control.default.tsx"},7:{name:"variable.other.readwrite.alias.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$A-Za-z][_$0-9A-Za-z]*)))\\s+(as)\\s+(?:(default(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$A-Za-z][_$0-9A-Za-z]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.tsx"},{match:"\\b(default)\\b",name:"keyword.control.default.tsx"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"variable.other.readwrite.alias.tsx"}},match:"(?:(\\btype)\\s+)?([_$A-Za-z][_$0-9A-Za-z]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.tsx"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"meta.brace.square.tsx"},3:{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.declaration.tsx",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$A-Za-z][_$0-9A-Za-z]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"meta.brace.square.tsx"},4:{name:"entity.name.type.tsx"},5:{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.type.modifier.tsx"},3:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.mappedtype.declaration.tsx",patterns:[{captures:{1:{name:"keyword.control.as.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s+instanceof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.interface.tsx"}},end:"(?<=\\})",name:"meta.interface.tsx",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.tsx"}},match:"[_$A-Za-z][_$0-9A-Za-z]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{1:{name:"punctuation.definition.entity.tsx"},3:{name:"punctuation.definition.entity.tsx"}},match:"(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.tsx"}]},"jsx-evaluated-code":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tsx"}},contentName:"meta.embedded.expression.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:"(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"},2:{name:"punctuation.definition.tag.begin.tsx"},3:{name:"entity.name.tag.namespace.tsx"},4:{name:"punctuation.separator.namespace.tsx"},5:{name:"entity.name.tag.tsx"},6:{name:"support.class.component.tsx"},7:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.tsx",patterns:[{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(?=</)",patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`,name:"keyword.operator.assignment.tsx"},"jsx-tag-attribute-name":{captures:{1:{name:"entity.other.attribute-name.namespace.tsx"},2:{name:"punctuation.separator.namespace.tsx"},3:{name:"entity.other.attribute-name.tsx"}},match:"\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(:))?([_$A-Za-z][-_$0-9A-Za-z]*)(?=\\s|=|/?>|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.tsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.tsx"},"jsx-tag-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?!<\\s*[_$A-Za-z][_$0-9A-Za-z]*((\\s+extends\\s+[^=>])|,))(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(</)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.without-attributes.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$0-9A-Za-z]await|^return|[^\\._$0-9A-Za-z]return|^default|[^\\._$0-9A-Za-z]default|^yield|[^\\._$0-9A-Za-z]yield|^)\\s*(?=(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$A-Za-z][-_$0-9A-Za-z.]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$A-Za-z][-_$0-9A-Za-z.]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"keyword.operator.new.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.property.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"meta.definition.method.tsx entity.name.function.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"}]},"namespace-declaration":{begin:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$A-Za-z\"'`]))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.namespace.declaration.tsx",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.type.module.tsx"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$A-Za-z][_$0-9A-Za-z]*)|(\\s*[\\(]))))",name:"new.expr.tsx",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.tsx"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.tsx"},{captures:{0:{name:"constant.numeric.decimal.tsx"},1:{name:"meta.delimiter.decimal.period.tsx"},2:{name:"storage.type.numeric.bigint.tsx"},3:{name:"meta.delimiter.decimal.period.tsx"},4:{name:"storage.type.numeric.bigint.tsx"},5:{name:"meta.delimiter.decimal.period.tsx"},6:{name:"storage.type.numeric.bigint.tsx"},7:{name:"storage.type.numeric.bigint.tsx"},8:{name:"meta.delimiter.decimal.period.tsx"},9:{name:"storage.type.numeric.bigint.tsx"},10:{name:"meta.delimiter.decimal.period.tsx"},11:{name:"storage.type.numeric.bigint.tsx"},12:{name:"meta.delimiter.decimal.period.tsx"},13:{name:"storage.type.numeric.bigint.tsx"},14:{name:"storage.type.numeric.bigint.tsx"}},match:"(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)"}]},"numericConstant-literal":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.tsx"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"variable.object.property.tsx"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.tsx"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.object.property.tsx"},4:{name:"variable.other.object.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(\\#?[A-Z][_$\\dA-Z]*)|(\\#?[_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"},{captures:{1:{name:"variable.other.constant.object.tsx"},2:{name:"variable.other.object.tsx"}},match:"(?:([A-Z][_$\\dA-Z]*)|([_$A-Za-z][_$0-9A-Za-z]*))(?=\\s*\\??\\.\\s*\\#?[_$A-Za-z][_$0-9A-Za-z]*)"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"constant.numeric.decimal.tsx"}},match:"(?![_$A-Za-z])([\\d]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"entity.name.function.tsx"}},match:"(?:([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"}},match:"(?:[_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.tsx"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.tsx",patterns:[{include:"#type"}]},{begin:"(?=[_$A-Za-z][_$0-9A-Za-z]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b(?!\\.)))(?!\\$))|([_$A-Za-z][_$0-9A-Za-z]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$0-9A-Za-z]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.tsx"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.tsx"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.tsx"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{begin:"((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.tsx"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.tsx"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.tsx"},"super-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.tsx"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.tsx"}]},"support-objects":{patterns:[{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.tsx"},{captures:{1:{name:"keyword.control.import.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.importmeta.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.target.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"support.variable.property.tsx"},4:{name:"support.constant.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(?:(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.tsx"},2:{name:"support.type.object.module.tsx"},3:{name:"punctuation.accessor.tsx"},4:{name:"punctuation.accessor.optional.tsx"},5:{name:"support.type.object.module.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[\\d])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"switch-statement.expr.tsx",patterns:[{include:"#comment"},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"switch-expression.expr.tsx",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",name:"switch-block.expr.tsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.tsx"}},end:"(?=:)",name:"case-clause.expr.tsx",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},2:{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",end:"\\}",endCaptures:{0:{name:"meta.block.tsx punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$A-Za-z][_$0-9A-Za-z]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$A-Za-z][_$0-9A-Za-z]*)",name:"entity.name.function.tagged-template.tsx"}]},{include:"#type-arguments"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$A-Za-z][_$0-9A-Za-z]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^\\d])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.tsx"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$A-Za-z][_$0-9A-Za-z]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.type.tsx"},4:{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",name:"meta.type.declaration.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"},2:{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$A-Za-z])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.tsx"},"type-conditional":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.tsx storage.modifier.tsx"},2:{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.control.new.tsx"}},end:"(?<=\\))",name:"meta.type.constructor.tsx",patterns:[{include:"#function-parameters"}]},{begin:"((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>))))))",end:"(?<=\\))",name:"meta.type.function.tsx",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.tsx"},2:{name:"entity.name.type.tsx"},3:{name:"keyword.operator.expression.extends.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$A-Za-z][_$0-9A-Za-z]*)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx"}]},"type-name":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))\\s*(<)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.tsx"},2:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$A-Za-z][_$0-9A-Za-z]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[\\d])))"},{match:"[_$A-Za-z][_$0-9A-Za-z]*",name:"entity.name.type.tsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.object.type.tsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.tsx"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.tsx"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#comment"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.tsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.type.paren.cover.tsx",patterns:[{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=\\s*(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?:(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"},4:{name:"keyword.operator.expression.is.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))\\s(is)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$A-Za-z][_$0-9A-Za-z]*))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.tsx"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.tsx"}]},"type-primitive":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.type.tuple.tsx",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.tsx"},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"punctuation.separator.label.tsx"}},match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$A-Za-z][_$0-9A-Za-z]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.tsx"},"var-expr":{patterns:[{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^let|[^\\._$0-9A-Za-z]let|^var|[^\\._$0-9A-Za-z]var)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^const|[^\\._$0-9A-Za-z]const)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b))|((?<!^using|[^\\._$0-9A-Za-z]using|^await\\s+using|[^\\._$0-9A-Za-z]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b))(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?(?=\\s*(=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>)))))|(:\\s*((<)|([(]\\s*(([)])|(\\.\\.\\.)|([_$0-9A-Za-z]+\\s*(([:,?=])|([)]\\s*=>)))))))|(:\\s*(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))))|(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(((async\\s+)?((function\\s*[(<*])|(function\\s+)|([_$A-Za-z][_$0-9A-Za-z]*\\s*=>)))|((async\\s*)?(((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([)]\\s*:)|((\\.\\.\\.\\s*)?[_$A-Za-z][_$0-9A-Za-z]*\\s*:)))|([<]\\s*[_$A-Za-z][_$0-9A-Za-z]*\\s+extends\\s*[^=>])|((<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$A-Za-z])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$A-Za-z]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$A-Za-z]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\s*=>))))))",beginCaptures:{1:{name:"meta.definition.variable.tsx entity.name.function.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$A-Za-z][_$0-9A-Za-z]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$A-Za-z])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},scopeName:"source.tsx"});var $t=[Xi];const Vi=Object.freeze({displayName:"JSON",name:"json",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json"}},name:"meta.structure.array.json",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.documentation.json"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.json"},{captures:{1:{name:"punctuation.definition.comment.json"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json"},number:{match:"-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?",name:"constant.numeric.json"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json"}},name:"meta.structure.dictionary.json",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json"}},name:"meta.structure.dictionary.value.json",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json"}},name:"string.json support.type.property-name.json",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json"}},name:"string.quoted.double.json",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:'\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4})',name:"constant.character.escape.json"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},scopeName:"source.json"});var Yi=[Vi];const Ki=Object.freeze({displayName:"JSON with Comments",name:"jsonc",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json.comments"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json.comments"}},name:"meta.structure.array.json.comments",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.comments"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.comments"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.documentation.json.comments"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.json.comments"},{captures:{1:{name:"punctuation.definition.comment.json.comments"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.comments"},number:{match:"-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?",name:"constant.numeric.json.comments"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json.comments"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json.comments"}},name:"meta.structure.dictionary.json.comments",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json.comments"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json.comments"}},name:"meta.structure.dictionary.value.json.comments",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json.comments"}},name:"string.json.comments support.type.property-name.json.comments",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json.comments"}},name:"string.quoted.double.json.comments",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:'\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4})',name:"constant.character.escape.json.comments"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.comments"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},scopeName:"source.json.comments"});var Ji=[Ki];const Qi=Object.freeze({displayName:"JSON5",fileTypes:["json5"],name:"json5",patterns:[{include:"#comments"},{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json5"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json5"}},name:"meta.structure.array.json5",patterns:[{include:"#comments"},{include:"#value"},{match:",",name:"punctuation.separator.array.json5"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json5"}]},comments:{patterns:[{match:"/{2}.*",name:"comment.single.json5"},{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.documentation.json5"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.json5"}]},constant:{match:"\\b(?:true|false|null|Infinity|NaN)\\b",name:"constant.language.json5"},infinity:{match:"(-)*\\b(?:Infinity|NaN)\\b",name:"constant.language.json5"},key:{name:"string.key.json5",patterns:[{include:"#stringSingle"},{include:"#stringDouble"},{match:"[a-zA-Z0-9_-]",name:"string.key.json5"}]},number:{patterns:[{comment:"handles hexadecimal numbers",match:"(0x)[0-9a-fA-f]*",name:"constant.hex.numeric.json5"},{comment:"handles integer and decimal numbers",match:"[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?",name:"constant.dec.numeric.json5"}]},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json5"}},comment:"a json5 object",end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json5"}},name:"meta.structure.dictionary.json5",patterns:[{include:"#comments"},{comment:"the json5 object key",include:"#key"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json5"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json5"}},name:"meta.structure.dictionary.value.json5",patterns:[{comment:"the json5 object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},stringDouble:{begin:'["]',beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:'["]',endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:'(?:\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4}))',name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},stringSingle:{begin:"[']",beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:"[']",endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:'(?:\\\\(?:["\\\\/bfnrt]|u[0-9a-fA-F]{4}))',name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},value:{comment:"the 'value' diagram at http://json.org",patterns:[{include:"#constant"},{include:"#infinity"},{include:"#number"},{include:"#stringSingle"},{include:"#stringDouble"},{include:"#array"},{include:"#object"}]}},scopeName:"source.json5"});var er=[Qi];const nr=Object.freeze({displayName:"YAML",fileTypes:["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],firstLineMatch:"^%YAML( ?1.\\d+)?",name:"yaml",patterns:[{include:"#comment"},{include:"#property"},{include:"#directive"},{match:"^---",name:"entity.other.document.begin.yaml"},{match:"^\\.{3}",name:"entity.other.document.end.yaml"},{include:"#node"}],repository:{"block-collection":{patterns:[{include:"#block-sequence"},{include:"#block-mapping"}]},"block-mapping":{patterns:[{include:"#block-pair"}]},"block-node":{patterns:[{include:"#prototype"},{include:"#block-scalar"},{include:"#block-collection"},{include:"#flow-scalar-plain-out"},{include:"#flow-node"}]},"block-pair":{patterns:[{begin:"\\?",beginCaptures:{1:{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=\\?)|^ *(:)|(:)",endCaptures:{1:{name:"punctuation.separator.key-value.mapping.yaml"},2:{name:"invalid.illegal.expected-newline.yaml"}},name:"meta.block-mapping.yaml",patterns:[{include:"#block-node"}]},{begin:"(?=(?:[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-]\\S)([^\\s:]|:\\S|\\s+(?![#\\s]))*\\s*:(\\s|$))",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$))",patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-]\\S",beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$))",name:"string.unquoted.plain.out.yaml"}]},{match:":(?=\\s|$)",name:"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{begin:"(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)",beginCaptures:{1:{name:"keyword.control.flow.block-scalar.literal.yaml"},2:{name:"keyword.control.flow.block-scalar.folded.yaml"},3:{name:"constant.numeric.indentation-indicator.yaml"},4:{name:"storage.modifier.chomping-indicator.yaml"},5:{patterns:[{include:"#comment"},{match:".+",name:"invalid.illegal.expected-comment-or-newline.yaml"}]}},end:"^(?=\\S)|(?!\\G)",patterns:[{begin:"^([ ]+)(?! )",end:"^(?!\\1|\\s*$)",name:"string.unquoted.block.yaml"}]},"block-sequence":{match:"(-)(?!\\S)",name:"punctuation.definition.block.sequence.item.yaml"},comment:{begin:"(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.yaml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.yaml"}},end:"\\n",name:"comment.line.number-sign.yaml"}]},directive:{begin:"^%",beginCaptures:{0:{name:"punctuation.definition.directive.begin.yaml"}},end:"(?=$|[ \\t]+($|#))",name:"meta.directive.yaml",patterns:[{captures:{1:{name:"keyword.other.directive.yaml.yaml"},2:{name:"constant.numeric.yaml-version.yaml"}},match:"\\G(YAML)[ \\t]+(\\d+\\.\\d+)"},{captures:{1:{name:"keyword.other.directive.tag.yaml"},2:{name:"storage.type.tag-handle.yaml"},3:{name:"support.type.tag-prefix.yaml"}},match:"\\G(TAG)(?:[ \\t]+((?:!(?:[0-9A-Za-z\\-]*!)?))(?:[ \\t]+(!(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]])*|(?![,!\\[\\]{}])(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]])+))?)?"},{captures:{1:{name:"support.other.directive.reserved.yaml"},2:{name:"string.unquoted.directive-name.yaml"},3:{name:"string.unquoted.directive-parameter.yaml"}},match:"\\G(\\w+)(?:[ \\t]+(\\w+)(?:[ \\t]+(\\w+))?)?"},{match:"\\S+",name:"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{captures:{1:{name:"keyword.control.flow.alias.yaml"},2:{name:"punctuation.definition.alias.yaml"},3:{name:"variable.other.alias.yaml"},4:{name:"invalid.illegal.character.anchor.yaml"}},match:"((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?"},"flow-collection":{patterns:[{include:"#flow-sequence"},{include:"#flow-mapping"}]},"flow-mapping":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.mapping.begin.yaml"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.mapping.end.yaml"}},name:"meta.flow-mapping.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.mapping.yaml"},{include:"#flow-pair"}]},"flow-node":{patterns:[{include:"#prototype"},{include:"#flow-alias"},{include:"#flow-collection"},{include:"#flow-scalar"}]},"flow-pair":{patterns:[{begin:"\\?",beginCaptures:{0:{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.explicit.yaml",patterns:[{include:"#prototype"},{include:"#flow-pair"},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",beginCaptures:{0:{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",patterns:[{include:"#flow-value"}]}]},{begin:"(?=(?:[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-][^\\s[\\[\\]{},]])([^\\s:[\\[\\]{},]]|:[^\\s[\\[\\]{},]]|\\s+(?![#\\s]))*\\s*:(\\s|$))",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$)|\\s*:[\\[\\]{},]|\\s*[\\[\\]{},])",name:"meta.flow-pair.key.yaml",patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-][^\\s[\\[\\]{},]]",beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$)|\\s*:[\\[\\]{},]|\\s*[\\[\\]{},])",name:"string.unquoted.plain.in.yaml"}]},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",captures:{0:{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.yaml",patterns:[{include:"#flow-value"}]}]},"flow-scalar":{patterns:[{include:"#flow-scalar-double-quoted"},{include:"#flow-scalar-single-quoted"},{include:"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.yaml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.double.yaml",patterns:[{match:'\\\\([0abtnvfre "/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})',name:"constant.character.escape.yaml"},{match:"\\\\\\n",name:"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-][^\\s[\\[\\]{},]]",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$)|\\s*:[\\[\\]{},]|\\s*[\\[\\]{},])",name:"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{patterns:[{captures:{1:{name:"constant.language.null.yaml"},2:{name:"constant.language.boolean.yaml"},3:{name:"constant.numeric.integer.yaml"},4:{name:"constant.numeric.float.yaml"},5:{name:"constant.other.timestamp.yaml"},6:{name:"constant.language.value.yaml"},7:{name:"constant.language.merge.yaml"}},match:"(?:(null|Null|NULL|~)|(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|((?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?\\d)+))|((?:[-+]?(?:\\d[0-9_]*)?\\.[0-9.]*(?:[eE][-+]\\d+)?|[-+]?\\d[0-9_]*(?::[0-5]?\\d)+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN)))|((?:\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{1,2}-\\d{1,2}(?:[Tt]|[ \\t]+)\\d{1,2}:\\d{2}:\\d{2}(?:\\.\\d*)?(?:(?:[ \\t]*)Z|[-+]\\d{1,2}(?::\\d{1,2})?)?))|(=)|(<<))(?:(?=\\s*$|\\s+\\#|\\s*:(\\s|$)|\\s*:[\\[\\]{},]|\\s*[\\[\\]{},]))"}]},"flow-scalar-plain-out":{patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]|[?:-]\\S",end:"(?=\\s*$|\\s+\\#|\\s*:(\\s|$))",name:"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{patterns:[{captures:{1:{name:"constant.language.null.yaml"},2:{name:"constant.language.boolean.yaml"},3:{name:"constant.numeric.integer.yaml"},4:{name:"constant.numeric.float.yaml"},5:{name:"constant.other.timestamp.yaml"},6:{name:"constant.language.value.yaml"},7:{name:"constant.language.merge.yaml"}},match:"(?:(null|Null|NULL|~)|(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|((?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?\\d)+))|((?:[-+]?(?:\\d[0-9_]*)?\\.[0-9.]*(?:[eE][-+]\\d+)?|[-+]?\\d[0-9_]*(?::[0-5]?\\d)+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN)))|((?:\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{1,2}-\\d{1,2}(?:[Tt]|[ \\t]+)\\d{1,2}:\\d{2}:\\d{2}(?:\\.\\d*)?(?:(?:[ \\t]*)Z|[-+]\\d{1,2}(?::\\d{1,2})?)?))|(=)|(<<))(?:(?=\\s*$|\\s+\\#|\\s*:(\\s|$)))"}]},"flow-scalar-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.yaml"}},end:"'(?!')",endCaptures:{0:{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.single.yaml",patterns:[{match:"''",name:"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.sequence.begin.yaml"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.sequence.end.yaml"}},name:"meta.flow-sequence.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.sequence.yaml"},{include:"#flow-pair"},{include:"#flow-node"}]},"flow-value":{patterns:[{begin:"\\G(?![},\\]])",end:"(?=[},\\]])",name:"meta.flow-pair.value.yaml",patterns:[{include:"#flow-node"}]}]},node:{patterns:[{include:"#block-node"}]},property:{begin:"(?=!|&)",end:"(?!\\G)",name:"meta.property.yaml",patterns:[{captures:{1:{name:"keyword.control.property.anchor.yaml"},2:{name:"punctuation.definition.anchor.yaml"},3:{name:"entity.name.type.anchor.yaml"},4:{name:"invalid.illegal.character.anchor.yaml"}},match:"\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?"},{match:"\\G(?:!<(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]])+>|(?:!(?:[0-9A-Za-z\\-]*!)?)(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$_.~*'()])+|!)(?=\\ |\\t|$)",name:"storage.type.tag-handle.yaml"},{match:"\\S+",name:"invalid.illegal.tag-handle.yaml"}]},prototype:{patterns:[{include:"#comment"},{include:"#property"}]}},scopeName:"source.yaml",aliases:["yml"]});var tr=[nr];const ar=Object.freeze({displayName:"TOML",fileTypes:["toml"],name:"toml",patterns:[{include:"#comments"},{include:"#groups"},{include:"#key_pair"},{include:"#invalid"}],repository:{comments:{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.toml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.toml"}},end:"\\n",name:"comment.line.number-sign.toml"}]},groups:{patterns:[{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[)([^\\[\\]]*)(\\])",name:"meta.group.toml"},{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])",name:"meta.group.double.toml"}]},invalid:{match:"\\S+(\\s*(?=\\S))?",name:"invalid.illegal.not-allowed-here.toml"},key_pair:{patterns:[{begin:"([A-Za-z0-9_-]+)\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:'((")(.*?)("))\\s*(=)\\s*',captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},3:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"},{match:'"',name:"invalid.illegal.not-allowed-here.toml"}]},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"((')([^']*)('))\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:`(((?:[A-Za-z0-9_-]+|"(?:[^"\\\\]|\\\\.)*"|'[^']*')(?:\\s*\\.\\s*|(?=\\s*=))){2,})\\s*(=)\\s*`,captures:{1:{name:"variable.other.key.toml",patterns:[{match:"\\.",name:"punctuation.separator.variable.toml"},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},3:{name:"punctuation.definition.variable.end.toml"}},match:'(")((?:[^"\\\\]|\\\\.)*)(")'},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{name:"punctuation.definition.variable.end.toml"}},match:"(')[^']*(')"}]},3:{name:"punctuation.separator.key-value.toml"}},comment:"Dotted key",end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]}]},primatives:{patterns:[{begin:'\\G"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"{3,5}',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\\\n]',name:"invalid.illegal.escape.toml"}]},{begin:'\\G"',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},{begin:"\\G'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'{3,5}",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.single.toml"},{begin:"\\G'",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.single.toml"},{match:"\\G\\d{4}-(0[1-9]|1[012])-(?!00|3[2-9])[0-3]\\d([Tt ](?!2[5-9])[0-2]\\d:[0-5]\\d:(?!6[1-9])[0-6]\\d(\\.\\d+)?(Z|[+-](?!2[5-9])[0-2]\\d:[0-5]\\d)?)?",name:"constant.other.date.toml"},{match:"\\G(?!2[5-9])[0-2]\\d:[0-5]\\d:(?!6[1-9])[0-6]\\d(\\.\\d+)?",name:"constant.other.time.toml"},{match:"\\G(true|false)",name:"constant.language.boolean.toml"},{match:"\\G0x\\h(\\h|_\\h)*",name:"constant.numeric.hex.toml"},{match:"\\G0o[0-7]([0-7]|_[0-7])*",name:"constant.numeric.octal.toml"},{match:"\\G0b[01]([01]|_[01])*",name:"constant.numeric.binary.toml"},{match:"\\G[+-]?(inf|nan)",name:"constant.numeric.toml"},{match:"\\G([+-]?(0|([1-9]((\\d|_\\d)+)?)))(?=[.eE])(\\.(\\d((\\d|_\\d)+)?))?([eE]([+-]?\\d((\\d|_\\d)+)?))?",name:"constant.numeric.float.toml"},{match:"\\G([+-]?(0|([1-9]((\\d|_\\d)+)?)))",name:"constant.numeric.integer.toml"},{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.toml"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.toml"}},name:"meta.array.toml",patterns:[{begin:`(?=["'']|[+-]?\\d|[+-]?(inf|nan)|true|false|\\[|\\{)`,end:",|(?=])",endCaptures:{0:{name:"punctuation.separator.array.toml"}},patterns:[{include:"#primatives"},{include:"#comments"},{include:"#invalid"}]},{include:"#comments"},{include:"#invalid"}]},{begin:"\\G\\{",beginCaptures:{0:{name:"punctuation.definition.inline-table.begin.toml"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.inline-table.end.toml"}},name:"meta.inline-table.toml",patterns:[{begin:"(?=\\S)",end:",|(?=})",endCaptures:{0:{name:"punctuation.separator.inline-table.toml"}},patterns:[{include:"#key_pair"}]},{include:"#comments"}]}]}},scopeName:"source.toml"});var sr=[ar];const ir=Object.freeze({displayName:"GraphQL",fileTypes:["graphql","graphqls","gql","graphcool"],name:"graphql",patterns:[{include:"#graphql"}],repository:{graphql:{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-fragment-definition"},{include:"#graphql-directive-definition"},{include:"#graphql-type-interface"},{include:"#graphql-enum"},{include:"#graphql-scalar"},{include:"#graphql-union"},{include:"#graphql-schema"},{include:"#graphql-operation-def"},{include:"#literal-quasi-embedded"}]},"graphql-ampersand":{captures:{1:{name:"keyword.operator.logical.graphql"}},match:"\\s*(&)"},"graphql-arguments":{begin:"\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.directive.graphql"}},end:"\\s*(\\))",endCaptures:{1:{name:"meta.brace.round.directive.graphql"}},name:"meta.arguments.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{begin:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))",beginCaptures:{1:{name:"variable.parameter.graphql"},2:{name:"punctuation.colon.graphql"}},end:"(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)",endCaptures:{3:{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-value"},{include:"#graphql-skip-newlines"}]},{include:"#literal-quasi-embedded"}]},"graphql-boolean-value":{captures:{1:{name:"constant.language.boolean.graphql"}},match:"\\s*\\b(true|false)\\b"},"graphql-colon":{captures:{1:{name:"punctuation.colon.graphql"}},match:"\\s*(:)"},"graphql-comma":{captures:{1:{name:"punctuation.comma.graphql"}},match:"\\s*(,)"},"graphql-comment":{patterns:[{captures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},comment:"need to prefix comment space with a scope else Atom's reflow cmd doesn't work",match:"(\\s*)(#).*",name:"comment.line.graphql.js"},{begin:'(""")',beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},end:'(""")',name:"comment.line.graphql.js"},{begin:'(")',beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},end:'(")',name:"comment.line.graphql.js"}]},"graphql-description-docstring":{begin:'"""',end:'"""',name:"comment.block.graphql"},"graphql-description-singleline":{match:'#(?=([^"]*"[^"]*")*[^"]*$).*$',name:"comment.line.number-sign.graphql"},"graphql-directive":{applyEndPatternLast:1,begin:"\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))",beginCaptures:{1:{name:"entity.name.function.directive.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-arguments"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-directive-definition":{applyEndPatternLast:1,begin:"\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.directive.graphql"},2:{name:"entity.name.function.directive.graphql"},3:{name:"keyword.on.graphql"},4:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-variable-definitions"},{applyEndPatternLast:1,begin:"\\s*(\\bon\\b)\\s*([_A-Za-z]*)",beginCaptures:{1:{name:"keyword.on.graphql"},2:{name:"support.type.location.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"},{captures:{2:{name:"support.type.location.graphql"}},match:"\\s*(\\|)\\s*([_A-Za-z]*)"}]},{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"}]},"graphql-enum":{begin:"\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.enum.graphql"},2:{name:"support.type.enum.graphql"}},end:"(?<=})",name:"meta.enum.graphql",patterns:[{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-object-type"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-enum-value"},{include:"#literal-quasi-embedded"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"}]},"graphql-enum-value":{match:"\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)",name:"constant.character.enum.graphql"},"graphql-field":{patterns:[{captures:{1:{name:"string.unquoted.alias.graphql"},2:{name:"punctuation.colon.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)"},{captures:{1:{name:"variable.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},{include:"#graphql-arguments"},{include:"#graphql-directive"},{include:"#graphql-selection-set"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-float-value":{captures:{1:{name:"constant.numeric.float.graphql"}},match:"\\s*(-?(0|[1-9]\\d*)(\\.\\d+)?((e|E)(\\+|-)?\\d+)?)"},"graphql-fragment-definition":{begin:"\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))",captures:{1:{name:"keyword.fragment.graphql"},2:{name:"entity.name.fragment.graphql"},3:{name:"keyword.on.graphql"},4:{name:"support.type.graphql"}},end:"(?<=})",name:"meta.fragment.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-fragment-spread":{applyEndPatternLast:1,begin:"\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)",captures:{1:{name:"keyword.operator.spread.graphql"},2:{name:"variable.fragment.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-ignore-spaces":{match:"\\s*"},"graphql-inline-fragment":{applyEndPatternLast:1,begin:"\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?",captures:{1:{name:"keyword.operator.spread.graphql"},2:{name:"keyword.on.graphql"},3:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-input-types":{patterns:[{include:"#graphql-scalar-type"},{captures:{1:{name:"support.type.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?"},{begin:"\\s*(\\[)",captures:{1:{name:"meta.brace.square.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},end:"\\s*(\\])(?:\\s*(!))?",name:"meta.type.list.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-input-types"},{include:"#graphql-comma"},{include:"#literal-quasi-embedded"}]}]},"graphql-list-value":{patterns:[{begin:"\\s*+(\\[)",beginCaptures:{1:{name:"meta.brace.square.graphql"}},end:"\\s*(\\])",endCaptures:{1:{name:"meta.brace.square.graphql"}},name:"meta.listvalues.graphql",patterns:[{include:"#graphql-value"}]}]},"graphql-name":{captures:{1:{name:"entity.name.function.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},"graphql-null-value":{captures:{1:{name:"constant.language.null.graphql"}},match:"\\s*\\b(null)\\b"},"graphql-object-field":{captures:{1:{name:"constant.object.key.graphql"},2:{name:"string.unquoted.graphql"},3:{name:"punctuation.graphql"}},match:"\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)"},"graphql-object-value":{patterns:[{begin:"\\s*+({)",beginCaptures:{1:{name:"meta.brace.curly.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"meta.brace.curly.graphql"}},name:"meta.objectvalues.graphql",patterns:[{include:"#graphql-object-field"},{include:"#graphql-value"}]}]},"graphql-operation-def":{patterns:[{include:"#graphql-query-mutation"},{include:"#graphql-name"},{include:"#graphql-variable-definitions"},{include:"#graphql-directive"},{include:"#graphql-selection-set"}]},"graphql-query-mutation":{captures:{1:{name:"keyword.operation.graphql"}},match:"\\s*\\b(query|mutation)\\b"},"graphql-scalar":{captures:{1:{name:"keyword.scalar.graphql"},2:{name:"entity.scalar.graphql"}},match:"\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)"},"graphql-scalar-type":{captures:{1:{name:"support.type.builtin.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},match:"\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?"},"graphql-schema":{begin:"\\s*\\b(schema)\\b",beginCaptures:{1:{name:"keyword.schema.graphql"}},end:"(?<=})",patterns:[{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},patterns:[{begin:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)",beginCaptures:{1:{name:"variable.arguments.graphql"}},end:"(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)",endCaptures:{5:{name:"punctuation.comma.graphql"}},patterns:[{captures:{1:{name:"support.type.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-colon"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"}]},"graphql-selection-set":{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},name:"meta.selectionset.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-field"},{include:"#graphql-fragment-spread"},{include:"#graphql-inline-fragment"},{include:"#graphql-comma"},{include:"#native-interpolation"},{include:"#literal-quasi-embedded"}]},"graphql-skip-newlines":{match:`\\s* +`},"graphql-string-content":{patterns:[{match:`\\\\[/'"\\\\nrtbf]`,name:"constant.character.escape.graphql"},{match:"\\\\u([0-9a-fA-F]{4})",name:"constant.character.escape.graphql"}]},"graphql-string-value":{begin:'\\s*+(("))',beginCaptures:{1:{name:"string.quoted.double.graphql"},2:{name:"punctuation.definition.string.begin.graphql"}},contentName:"string.quoted.double.graphql",end:`\\s*+(?:(("))|( +))`,endCaptures:{1:{name:"string.quoted.double.graphql"},2:{name:"punctuation.definition.string.end.graphql"},3:{name:"invalid.illegal.newline.graphql"}},patterns:[{include:"#graphql-string-content"},{include:"#literal-quasi-embedded"}]},"graphql-type-definition":{begin:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)",beginCaptures:{1:{name:"variable.graphql"}},comment:"key (optionalArgs): Type",end:"(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)",endCaptures:{5:{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-variable-definitions"},{include:"#graphql-type-object"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#literal-quasi-embedded"}]},"graphql-type-interface":{applyEndPatternLast:1,begin:"\\s*\\b(?:(extends?)?\\b\\s*\\b(type)|(interface)|(input))\\b\\s*([_A-Za-z][_0-9A-Za-z]*)?",captures:{1:{name:"keyword.type.graphql"},2:{name:"keyword.type.graphql"},3:{name:"keyword.interface.graphql"},4:{name:"keyword.input.graphql"},5:{name:"support.type.graphql"}},end:"(?=.)",name:"meta.type.interface.graphql",patterns:[{begin:"\\s*\\b(implements)\\b\\s*",beginCaptures:{1:{name:"keyword.implements.graphql"}},end:"\\s*(?={)",patterns:[{captures:{1:{name:"support.type.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-ampersand"},{include:"#graphql-comma"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-type-object"},{include:"#literal-quasi-embedded"},{include:"#graphql-ignore-spaces"}]},"graphql-type-object":{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-object-type"},{include:"#graphql-type-definition"},{include:"#literal-quasi-embedded"}]},"graphql-union":{applyEndPatternLast:1,begin:"\\s*\\b(union)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)",captures:{1:{name:"keyword.union.graphql"},2:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{applyEndPatternLast:1,begin:"\\s*(=)\\s*([_A-Za-z][_0-9A-Za-z]*)",captures:{1:{name:"punctuation.assignment.graphql"},2:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"},{captures:{1:{name:"punctuation.or.graphql"},2:{name:"support.type.graphql"}},match:"\\s*(\\|)\\s*([_A-Za-z][_0-9A-Za-z]*)"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-union-mark":{captures:{1:{name:"punctuation.union.graphql"}},match:"\\s*(\\|)"},"graphql-value":{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-variable-name"},{include:"#graphql-float-value"},{include:"#graphql-string-value"},{include:"#graphql-boolean-value"},{include:"#graphql-null-value"},{include:"#graphql-enum-value"},{include:"#graphql-list-value"},{include:"#graphql-object-value"},{include:"#literal-quasi-embedded"}]},"graphql-variable-assignment":{applyEndPatternLast:1,begin:"\\s(=)",beginCaptures:{1:{name:"punctuation.assignment.graphql"}},end:`(?=[ +,)])`,patterns:[{include:"#graphql-value"}]},"graphql-variable-definition":{begin:"\\s*(\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)",beginCaptures:{1:{name:"variable.parameter.graphql"}},comment:"variable: type = value,.... which may be a list",end:"(?=\\s*((\\$?[_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(}|\\))))|\\s*(,)",endCaptures:{5:{name:"punctuation.comma.graphql"}},name:"meta.variables.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-colon"},{include:"#graphql-input-types"},{include:"#graphql-variable-assignment"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-variable-definitions":{begin:"\\s*(\\()",captures:{1:{name:"meta.brace.round.graphql"}},end:"\\s*(\\))",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-variable-definition"},{include:"#literal-quasi-embedded"}]},"graphql-variable-name":{captures:{1:{name:"variable.graphql"}},match:"\\s*(\\$[_A-Za-z][_0-9A-Za-z]*)"},"native-interpolation":{begin:"\\s*(\\${)",beginCaptures:{1:{name:"keyword.other.substitution.begin"}},end:"(})",endCaptures:{1:{name:"keyword.other.substitution.end"}},name:"native.interpolation",patterns:[{include:"source.js"},{include:"source.ts"},{include:"source.js.jsx"},{include:"source.tsx"}]}},scopeName:"source.graphql",embeddedLangs:["javascript","typescript","jsx","tsx"],aliases:["gql"]});var rr=[...Y,...yt,..._t,...$t,ir];const or=Object.freeze({displayName:"HTML (Derivative)",injections:{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{comment:"Uses R: to ensure this matches after any other injections.",patterns:[{match:"<",name:"invalid.illegal.bad-angle-bracket.html"}]}},name:"html-derivative",patterns:[{include:"text.html.basic#core-minus-invalid"},{begin:"(</?)(\\w[^\\s>]*)(?<!/)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"((?: ?/)?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative",embeddedLangs:["html"]});var cr=[...sn,or];const lr=Object.freeze({fileTypes:[],injectTo:["text.html.markdown"],injectionSelector:"L:text.html.markdown",name:"markdown-vue",patterns:[{include:"#vue-code-block"}],repository:{"vue-code-block":{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vue)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown",patterns:[]}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{include:"source.vue"}]}},scopeName:"markdown.vue.codeblock"});var ur=[lr];const dr=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute",name:"vue-directives",patterns:[{include:"source.vue#vue-directives"}],scopeName:"vue.directives"});var mr=[dr];const pr=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block",name:"vue-interpolations",patterns:[{include:"source.vue#vue-interpolations"}],scopeName:"vue.interpolations"});var br=[pr];const gr=Object.freeze({fileTypes:[],injectTo:["source.vue"],injectionSelector:"L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment",name:"vue-sfc-style-variable-injection",patterns:[{include:"#vue-sfc-style-variable-injection"}],repository:{"vue-sfc-style-variable-injection":{begin:"\\b(v-bind)\\s*\\(",beginCaptures:{1:{name:"entity.name.function"}},end:"\\)",name:"vue.sfc.style.variable.injection.v-bind",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"source.ts.embedded.html.vue",patterns:[{include:"source.js"}]},{include:"source.js"}]}},scopeName:"vue.sfc.style.variable.injection",embeddedLangs:["javascript"]});var fr=[...Y,gr];const hr=Object.freeze({displayName:"Vue",name:"vue",patterns:[{include:"text.html.basic#comment"},{include:"#self-closing-tag"},{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},patterns:[{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)md\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.markdown",patterns:[{include:"text.html.markdown"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)html\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)pug\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.pug",patterns:[{include:"text.pug"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)stylus\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.stylus",patterns:[{include:"source.stylus"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)postcss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.postcss",patterns:[{include:"source.postcss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)sass\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.sass",patterns:[{include:"source.sass"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)css\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)scss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.scss",patterns:[{include:"source.css.scss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)less\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.less",patterns:[{include:"source.css.less"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)js\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)ts\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.ts",patterns:[{include:"source.ts"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js.jsx",patterns:[{include:"source.js.jsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)tsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.tsx",patterns:[{include:"source.tsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)coffee\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.coffee",patterns:[{include:"source.coffee"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json",patterns:[{include:"source.json"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsonc\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json.comments",patterns:[{include:"source.json.comments"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json5\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json5",patterns:[{include:"source.json5"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)yaml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.yaml",patterns:[{include:"source.yaml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)toml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.toml",patterns:[{include:"source.toml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)(gql|graphql)\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.graphql",patterns:[{include:"source.graphql"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)vue\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.vue",patterns:[{include:"source.vue"}]}]},{begin:"(template)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/template\\b)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:"(script)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/script\\b)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"(style)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/style\\b)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text"}]}]}],repository:{"html-stuff":{patterns:[{include:"#template-tag"},{include:"text.html.derivative"},{include:"text.html.basic"}]},"self-closing-tag":{begin:"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"self-closing-tag",patterns:[{include:"#tag-stuff"}]},"tag-stuff":{begin:"\\G",end:"(?=/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.tag-stuff",patterns:[{include:"#vue-directives"},{include:"text.html.basic#attribute"}]},"template-tag":{patterns:[{include:"#template-tag-1"},{include:"#template-tag-2"}]},"template-tag-1":{begin:"(<)(template)\\b(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"},3:{name:"punctuation.definition.tag.end.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#html-stuff"}]}]},"template-tag-2":{begin:"(<)(template)\\b",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#tag-stuff"},{include:"#html-stuff"}]}]},"vue-directives":{patterns:[{include:"#vue-directives-control"},{include:"#vue-directives-style-attr"},{include:"#vue-directives-original"},{include:"#vue-directives-generic-attr"}]},"vue-directives-control":{begin:"(v-for)|(v-if|v-else-if|v-else)",captures:{1:{name:"keyword.control.loop.vue"},2:{name:"keyword.control.conditional.vue"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.directive.control.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-expression":{patterns:[{begin:"(=)\\s*('|\"|`)",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"},2:{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},patterns:[{begin:"(?<=('|\"|`))",end:"(?=\\1)",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]}]},{begin:"(=)\\s*(?=[^'\"`])",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=(\\s|>|\\/>))",patterns:[{begin:"(?=[^'\"`])",end:"(?=(\\s|>|\\/>))",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]}]}]},"vue-directives-generic-attr":{begin:"\\b(generic)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.generic.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.type.parameters.vue",patterns:[{include:"source.ts#comment"},{match:"(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}]},"vue-directives-original":{begin:"(?:(?:(v-[\\w-]+)(:)?)|([:\\.])|(@)|(#))(?:(?:(\\[)([^\\]]*)(\\]))|([\\w-]+))?",beginCaptures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"},3:{name:"punctuation.attribute-shorthand.bind.html.vue"},4:{name:"punctuation.attribute-shorthand.event.html.vue"},5:{name:"punctuation.attribute-shorthand.slot.html.vue"},6:{name:"punctuation.separator.key-value.html.vue"},7:{name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]},8:{name:"punctuation.separator.key-value.html.vue"},9:{name:"entity.other.attribute-name.html.vue"}},end:"(?=\\s*[^=\\s])",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.attribute.directive.vue",patterns:[{1:{name:"punctuation.separator.key-value.html.vue"},2:{name:"entity.other.attribute-name.html.vue"},match:"(\\.)([\\w-]*)"},{include:"#vue-directives-expression"}]},"vue-directives-style-attr":{begin:"\\b(style)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.style.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"Copy from source.css#rule-list-innards",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"source.css.embedded.html.vue",patterns:[{include:"source.css#comment-block"},{include:"source.css#escapes"},{include:"source.css#font-features"},{match:"(?<![\\w-])--(?:[-a-zA-Z_]|[^\\x00-\\x7F])(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))*",name:"variable.css"},{begin:"(?<![-a-zA-Z])(?=[-a-zA-Z])",end:"$|(?![-a-zA-Z])",name:"meta.property-name.css",patterns:[{include:"source.css#property-names"}]},{begin:"(:)\\s*",beginCaptures:{1:{name:"punctuation.separator.key-value.css"}},comment:"Modify end to fix #199. TODO: handle ' character.",contentName:"meta.property-value.css",end:`\\s*(;)|\\s*(?='|")`,endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"source.css#comment-block"},{include:"source.css#property-values"}]},{match:";",name:"punctuation.terminator.rule.css"}]}]},"vue-interpolations":{patterns:[{begin:"(\\{\\{)",beginCaptures:{1:{name:"punctuation.definition.interpolation.begin.html.vue"}},end:"(\\}\\})",endCaptures:{1:{name:"punctuation.definition.interpolation.end.html.vue"}},name:"expression.embedded.vue",patterns:[{begin:"\\G",end:"(?=\\}\\})",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]}]}]}},scopeName:"source.vue",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","coffee","json","jsonc","json5","yaml","toml","graphql","html-derivative","markdown-vue","vue-directives","vue-interpolations","vue-sfc-style-variable-injection"]});var yr=[...sn,...Ti,...Oi,...ft,...bt,...je,...gt,...Ui,...Y,...yt,..._t,...$t,...ht,...Yi,...Ji,...er,...tr,...sr,...rr,...cr,...ur,...mr,...br,...fr,hr],vn=Object.freeze({colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007ACC","checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editor.selectionHighlightBackground":"#ADD6FF26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#A6A6A6","list.activeSelectionIconForeground":"#FFF","list.dropBackground":"#383B3D","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","sideBarTitle.foreground":"#BBBBBB","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#ccc3","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"},displayName:"Dark Plus",name:"dark-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#DCDCAA",newOperator:"#C586C0",numberLiteral:"#b5cea8",stringLiteral:"#ce9178"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{scope:"variable.language",settings:{foreground:"#569cd6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],type:"dark"}),Cn=Object.freeze({colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007ACC","checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editor.selectionHighlightBackground":"#ADD6FF80","editorIndentGuide.activeBackground":"#939393","editorIndentGuide.background":"#D3D3D3","editorSuggestWidget.background":"#F3F3F3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6F6F6F","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},displayName:"Light Plus",name:"light-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#795E26",newOperator:"#AF00DB",numberLiteral:"#098658",stringLiteral:"#a31515"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000ff"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],type:"light"});async function Ar(){const t=await Fi({themes:[vn,Cn],langs:[yr],loadWasm:zt(()=>import("./wasm-Dhj7AXtS-CsTmP73Z.js"),[])});return Fn.register({id:"vue"}),Si(t,Rt),{light:Cn.name,dark:vn.name}}export{Ar as registerHighlighter}; diff --git a/assets/index-CdphAwvZ.css b/assets/index-CdphAwvZ.css new file mode 100644 index 0000000..fccbd76 --- /dev/null +++ b/assets/index-CdphAwvZ.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;justify-content:flex-end;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-input__wrapper,.el-form-item.is-error .el-input__wrapper.is-focus,.el-form-item.is-error .el-input__wrapper:focus,.el-form-item.is-error .el-input__wrapper:hover,.el-form-item.is-error .el-select__wrapper,.el-form-item.is-error .el-select__wrapper.is-focus,.el-form-item.is-error .el-select__wrapper:focus,.el-form-item.is-error .el-select__wrapper:hover,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner.is-focus,.el-form-item.is-error .el-textarea__inner:focus,.el-form-item.is-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty,.el-select-dropdown__loading{color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{box-sizing:border-box;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);height:34px;line-height:34px;overflow:hidden;padding:0 32px 0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{background-color:unset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__title{color:var(--el-color-info);font-size:12px;line-height:34px;padding-left:20px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:14px;gap:6px;line-height:24px;min-height:32px;padding:4px 12px;position:relative;text-align:left;transform:translateZ(0);transition:var(--el-transition-duration)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select__wrapper.is-disabled,.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag{cursor:not-allowed}.el-select__prefix,.el-select__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;gap:6px}.el-select__caret{color:var(--el-select-input-color);cursor:pointer;font-size:var(--el-select-input-font-size);transform:rotate(0);transition:var(--el-transition-duration)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__selection{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{border-color:transparent;cursor:pointer}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__tags-text{line-height:normal}.el-select__placeholder,.el-select__tags-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{color:var(--el-input-text-color,var(--el-text-color-regular));position:absolute;top:50%;transform:translateY(-50%);width:100%}.el-select__placeholder.is-transparent{color:var(--el-text-color-placeholder);-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper,.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{max-width:100%}.el-select__input-wrapper.is-hidden{opacity:0;position:absolute}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-select-multiple-input-color);font-family:inherit;font-size:inherit;height:24px;max-width:100%;outline:none;padding:0}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-select--large .el-select__wrapper{font-size:14px;gap:6px;line-height:24px;min-height:40px;padding:8px 16px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{font-size:12px;gap:4px;line-height:20px;min-height:24px;padding:2px 8px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);align-items:center;color:var(--el-link-text-color);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{border-bottom:1px solid var(--el-link-hover-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{align-items:center;display:inline-flex;justify-content:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error.is-underline:hover:after,.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.split-pane[data-v-72d84baf]{display:flex;height:100%;position:relative}.split-pane.dragging[data-v-72d84baf]{cursor:ew-resize}.dragging .left[data-v-72d84baf],.dragging .right[data-v-72d84baf]{pointer-events:none}.left[data-v-72d84baf],.right[data-v-72d84baf]{position:relative;height:100%}.view-size[data-v-72d84baf]{position:absolute;top:40px;left:10px;font-size:12px;color:var(--text-light);z-index:100}.left[data-v-72d84baf]{border-right:1px solid var(--border)}.dragger[data-v-72d84baf]{position:absolute;z-index:3;top:0;bottom:0;right:-5px;width:10px;cursor:ew-resize}.toggler[data-v-72d84baf]{display:none;z-index:3;font-family:var(--font-code);color:var(--text-light);position:absolute;left:50%;bottom:20px;background-color:var(--bg);padding:8px 12px;border-radius:8px;transform:translate(-50%);box-shadow:0 3px 8px #00000040}.dark .toggler[data-v-72d84baf]{background-color:var(--bg)}@media (min-width: 721px){.split-pane.vertical[data-v-72d84baf]{display:block}.split-pane.vertical.dragging[data-v-72d84baf]{cursor:ns-resize}.vertical .dragger[data-v-72d84baf]{top:auto;height:10px;width:100%;left:0;right:0;bottom:-5px;cursor:ns-resize}.vertical .left[data-v-72d84baf],.vertical .right[data-v-72d84baf]{width:100%}.vertical .left[data-v-72d84baf]{border-right:none;border-bottom:1px solid var(--border)}}@media (max-width: 720px){.left[data-v-72d84baf],.right[data-v-72d84baf]{position:absolute;top:0;right:0;bottom:0;left:0;width:auto!important;height:auto!important}.dragger[data-v-72d84baf]{display:none}.split-pane .toggler[data-v-72d84baf]{display:block}.split-pane .right[data-v-72d84baf]{z-index:-1;pointer-events:none}.split-pane .left[data-v-72d84baf],.split-pane.show-output .right[data-v-72d84baf]{z-index:0;pointer-events:all}.split-pane.show-output .left[data-v-72d84baf]{z-index:-1;pointer-events:none}}.msg.err[data-v-024df844]{--color: #f56c6c;--bg-color: #fef0f0}.dark .msg.err[data-v-024df844]{--bg-color: #2b1d1d}.msg.warn[data-v-024df844]{--color: #e6a23c;--bg-color: #fdf6ec}.dark .msg.warn[data-v-024df844]{--bg-color: #292218}pre[data-v-024df844]{margin:0;padding:12px 20px;overflow:auto}.msg[data-v-024df844]{position:absolute;bottom:0;left:8px;right:8px;z-index:20;border:2px solid transparent;border-radius:6px;font-family:var(--font-code);white-space:pre-wrap;margin-bottom:8px;max-height:calc(100% - 300px);min-height:40px;display:flex;align-items:stretch;color:var(--color);border-color:var(--color);background-color:var(--bg-color)}.dismiss[data-v-024df844]{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:18px;border-radius:9px;text-align:center;display:block;font-size:9px;padding:0;color:var(--bg-color);background-color:var(--color)}@media (max-width: 720px){.dismiss[data-v-024df844]{top:-9px;right:-9px}.msg[data-v-024df844]{bottom:50px}}.fade-enter-active[data-v-024df844],.fade-leave-active[data-v-024df844]{transition:all .15s ease-out}.fade-enter-from[data-v-024df844],.fade-leave-to[data-v-024df844]{opacity:0;transform:translateY(10px)}.iframe-container[data-v-d0ce9d15],.iframe-container[data-v-d0ce9d15] iframe{width:100%;height:100%;border:none;background-color:#fff}.iframe-container.dark[data-v-d0ce9d15] iframe{background-color:#1e1e1e}.output-container[data-v-5893ae30]{height:calc(100% - var(--header-height));overflow:hidden;position:relative}.tab-buttons[data-v-5893ae30]{box-sizing:border-box;border-bottom:1px solid var(--border);background-color:var(--bg);height:var(--header-height);overflow:hidden}.tab-buttons button[data-v-5893ae30]{padding:0;box-sizing:border-box}.tab-buttons span[data-v-5893ae30]{font-size:13px;font-family:var(--font-code);text-transform:uppercase;color:var(--text-light);display:inline-block;padding:8px 16px 6px;line-height:20px}button.active[data-v-5893ae30]{color:var(--color-branding-dark);border-bottom:3px solid var(--color-branding-dark)}.file-selector[data-v-1ade58ef]{display:flex;box-sizing:border-box;border-bottom:1px solid var(--border);background-color:var(--bg);overflow-y:hidden;overflow-x:auto;white-space:nowrap;position:relative;height:var(--header-height)}.file-selector[data-v-1ade58ef]::-webkit-scrollbar{height:1px}.file-selector[data-v-1ade58ef]::-webkit-scrollbar-track{background-color:var(--border)}.file-selector[data-v-1ade58ef]::-webkit-scrollbar-thumb{background-color:var(--color-branding)}.file-selector.has-import-map .add[data-v-1ade58ef]{margin-right:10px}.file[data-v-1ade58ef]{position:relative;display:inline-block;font-size:13px;font-family:var(--font-code);cursor:pointer;color:var(--text-light);box-sizing:border-box}.file.active[data-v-1ade58ef]{color:var(--color-branding);border-bottom:3px solid var(--color-branding);cursor:text}.file span[data-v-1ade58ef]{display:inline-block;padding:8px 10px 6px;line-height:20px}.file.pending span[data-v-1ade58ef]{min-width:50px;min-height:34px;padding-right:32px;background-color:#c8c8c833;color:transparent}.file.pending input[data-v-1ade58ef]{position:absolute;inset:8px 7px auto;font-size:13px;font-family:var(--font-code);line-height:20px;outline:none;border:none;padding:0 3px;min-width:1px;color:inherit;background-color:transparent}.file .remove[data-v-1ade58ef]{display:inline-block;vertical-align:middle;line-height:12px;cursor:pointer;padding-left:0}.add[data-v-1ade58ef]{font-size:18px;font-family:var(--font-code);color:#999;vertical-align:middle;margin-left:6px;position:relative;top:-1px}.add[data-v-1ade58ef]:hover{color:var(--color-branding)}.icon[data-v-1ade58ef]{margin-top:-1px}.import-map-wrapper[data-v-1ade58ef]{position:sticky;margin-left:auto;top:0;right:0;padding-left:30px;background-color:var(--bg);background:linear-gradient(90deg,#fff0,#fff 25%)}.dark .import-map-wrapper[data-v-1ade58ef]{background:linear-gradient(90deg,#1a1a1a00,#1a1a1a 25%)}.wrapper[data-v-17ef6099]{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle[data-v-17ef6099]{display:inline-block;margin-left:4px;width:32px;height:18px;border-radius:12px;position:relative;background-color:var(--border)}.indicator[data-v-17ef6099]{font-size:12px;background-color:var(--text-light);width:14px;height:14px;border-radius:50%;transition:transform ease-in-out .2s;position:absolute;left:2px;top:2px;color:var(--bg);text-align:center}.active .indicator[data-v-17ef6099]{background-color:var(--color-branding);transform:translate(14px);color:#fff}.editor-container[data-v-f4f45a3c]{height:calc(100% - var(--header-height));overflow:hidden;position:relative}.editor-floating[data-v-f4f45a3c]{position:absolute;bottom:16px;right:16px;z-index:11;display:flex;flex-direction:column;align-items:end;gap:8px;background-color:var(--bg);color:var(--text-light);padding:8px}.vue-repl{--bg: #fff;--bg-soft: #f8f8f8;--border: #ddd;--text-light: #888;--font-code: Menlo, Monaco, Consolas, "Courier New", monospace;--color-branding: #42b883;--color-branding-dark: #416f9c;--header-height: 38px;height:100%;margin:0;overflow:hidden;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--bg-soft)}.dark .vue-repl{--bg: #1a1a1a;--bg-soft: #242424;--border: #383838;--text-light: #aaa;--color-branding: #42d392;--color-branding-dark: #89ddff}.vue-repl button{border:none;outline:none;cursor:pointer;margin:0;background-color:transparent}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;left:50%;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;top:20px;transform:translate(-50%);transition:opacity var(--el-transition-duration),transform .4s,top .4s;width:-moz-fit-content;width:fit-content}.el-message.is-center{justify-content:center}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}nav{--bg: #fff;--bg-light: #fff;--border: #ddd;position:relative;z-index:999;box-sizing:border-box;display:flex;justify-content:space-between;padding-left:1rem;padding-right:1rem;height:var(--nav-height);background-color:var(--bg);box-shadow:0 0 6px var(--el-color-primary)}nav .el-select{width:140px}.dark nav{--bg: #1a1a1a;--bg-light: #242424;--border: #383838;--un-shadow:0 0 var(--un-shadow-color, rgb(0 0 0 / 0));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);border-bottom:1px solid var(--border)}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background);overflow-wrap:initial}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .view-overlays>div,.monaco-editor .margin-view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box;height:100%}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{top:0;bottom:0;position:absolute}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete,.monaco-editor .inline-deleted-text{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .inline-deleted-text{text-decoration:line-through}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor.side-by-side .editor.original{box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow);border-right:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{position:relative;overflow:hidden;flex-shrink:0;flex-grow:0}.monaco-diff-editor .gutter>div{position:absolute}.monaco-diff-editor .gutter .gutterItem{opacity:0;transition:opacity .7s}.monaco-diff-editor .gutter .gutterItem.showAlways{opacity:1;transition:none}.monaco-diff-editor .gutter .gutterItem.noTransition{transition:none}.monaco-diff-editor .gutter:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.monaco-diff-editor .gutter .gutterItem .background{position:absolute;height:100%;left:50%;width:1px;border-left:2px var(--vscode-menu-border) solid}.monaco-diff-editor .gutter .gutterItem .buttons{position:absolute;width:100%;display:flex;justify-content:center;align-items:center}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar{height:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar{line-height:1}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container{width:fit-content;border-radius:4px;background:var(--vscode-editorGutter-commentRangeForeground)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item .action-label{padding:1px 2px}.monaco-diff-editor .diff-hidden-lines-compact{display:flex;height:11px}.monaco-diff-editor .diff-hidden-lines-compact .line-left,.monaco-diff-editor .diff-hidden-lines-compact .line-right{height:1px;border-top:1px solid;border-color:var(--vscode-editorCodeLens-foreground);opacity:.5;margin:auto;width:100%}.monaco-diff-editor .diff-hidden-lines-compact .line-left{width:20px}.monaco-diff-editor .diff-hidden-lines-compact .text{color:var(--vscode-editorCodeLens-foreground);text-wrap:nowrap;font-size:11px;line-height:11px;margin:0 4px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-component.diff-review .revertButton{cursor:pointer}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-action-bar .action-item.menu-entry.text-only .action-label{color:var(--vscode-descriptionForeground);overflow:hidden;border-radius:2px}.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label:after{content:", "}.monaco-action-bar .action-item.menu-entry.text-only+.action-item:not(.text-only)>.monaco-dropdown .action-label{color:var(--vscode-descriptionForeground)}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3T0tHAAABjAAAAGBjbWFwQ5s/ewAACSQAABreZ2x5ZvJtKHkAACekAAD3FGhlYWRYl6BTAAAA4AAAADZoaGVhAlsC+QAAALwAAAAkaG10eBxB//oAAAHsAAAHOGxvY2EFi8dWAAAkBAAAA55tYXhwAu8BgQAAARgAAAAgbmFtZZP3uUsAAR64AAAB+HBvc3RjGEbCAAEgsAAAGSQAAQAAASwAAAAAASz////+AS4AAQAAAAAAAAAAAAAAAAAAAc4AAQAAAAEAAFT7+XFfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID////9AS4BLQAAAAgAAgAAAAAAAAABAAABzgF1ABcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAADLANIAAAAqAMsA0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QEBLAAAABsBRwADAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABSYAAQAAAAAEIAADAAEAAAAsAAMACgAABSYABAP0AAAAEgAQAAMAAuqI6ozqx+rJ6wnrTuw08QH//wAA6mDqiuqP6snqzOsL61DxAf//AAAAAAAAAAAAAAAAAAAAAAABABIAYgBmANYA1gFQAdYDngAAAAMA8QFKAUcAtAE3AZUBJQFuAQ4BdABOAcMBYAFqAWkAkQA2ATAAhgDPAP4AQQGTAHkAFwG+AJsAiAFDAR0BFAEVAagAyQCmALwBoAGAAIsBkQF5AYgBhgF6AYkBkAGLAYQAvgF/AY0AAgAEAAUACgALAAwADQAOAA8AEAASABsAHQAeAB8AXABdAF4AXwBiAGMAIgAjACQAJQAmACkAKwAsAC0ALgAvADAAMgAzADQANQA8ADkAPQA+AD8AQABCAEMARgBIAEkASwBVAFYAVwBYAGcAaQBrAG4AcgB0AHUAdgB3AHgAegB7AHwAfQB+AH8AgQCCAIQAhQCHAIkAjACPAJAAkwCUAJUAlgCXAJgAmQCaAJwAngCfAKAAoQCiAKMApQCoAKkAqgCUAKsArACuALgAuQC9AMAAxADFAMgAygDLAMwAzQDTANQA1QDWANcA2ADZANoA7wDyAPMA9gD5APoA+wD8AQABAQEGAQcBCAENAQ8BEAERARMBFwEYARsBHAEfASABKAEsAS0BLgEvATEBMgEzATQBNQE2ATsBPAE9AT4BPwFAAUEBQgFEAUYBSAFJAUsBTAFOAU8BUAFRAVIBWQFaAVsBXAFdAV8BZAFlAWYBaAFrAW0BcQFyAXMBdQF2AXsBfAF9AX4BgQGCAYMBhQGHAYoBjAGOAZcBmAGhAaIBpAGmAacBqQGqAasBrAGtAbEBswG0AbUBuAG5AboBvAG9AcQBxQHGAccByAHMAc0A9AD1APcA+ABgAGEAcAA6AHEAZAGPAG8AcwBtAFsAJwAoAQkAjQCSAMYBsgABABgAZQDuAR4BVQGSASoAugFjAWIBIgF3ASsBOQBaAbsARAEKAI4AwQD/ARoBOgAqASkBIQA3ADgASgGUAbYBsAGuAa8AsAFTAVYBGQBsAckBywHKAZoBmwGcAZ0BngGfAZkAEQBTASQAnQHCAGoA0QDdANwA2wBRAFAATwAVANIArwCxAFkAaAFYAKQAZgAWAMIAwwEnACAAIQD9ABQBtwEWAO0A3gDfAOQA4gDjAOYA5wDpAOsA7ADhAOABlgDOATgAigAGAAcACAAJAOoA5QDoABwAxwEFAQIAOwAaABkATQCyALMBXgBMAWEBcADQAQwBowGlAEcBbACnAb8AMQEmARIBCwFFAFIA8AFNAW8AgwCAAXgBZwC3ALUAtgHBAcAARQFXAVQAVAC7AQQBAwC/ASMAEwCtAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAABW4AAAAAAAAAc4AAOpgAADqYAAAAAMAAOphAADqYQAAAPEAAOpiAADqYgAAAUoAAOpjAADqYwAAAUcAAOpkAADqZAAAALQAAOplAADqZQAAATcAAOpmAADqZgAAAZUAAOpnAADqZwAAASUAAOpoAADqaAAAAW4AAOppAADqaQAAAQ4AAOpqAADqagAAAXQAAOprAADqawAAAE4AAOpsAADqbAAAAcMAAOptAADqbQAAAWAAAOpuAADqbgAAAWoAAOpvAADqbwAAAWkAAOpwAADqcAAAAJEAAOpxAADqcQAAADYAAOpyAADqcgAAATAAAOpzAADqcwAAAIYAAOp0AADqdAAAAM8AAOp1AADqdQAAAP4AAOp2AADqdgAAAEEAAOp3AADqdwAAAZMAAOp4AADqeAAAAHkAAOp5AADqeQAAABcAAOp6AADqegAAAb4AAOp7AADqewAAAJsAAOp8AADqfAAAAIgAAOp9AADqfQAAAUMAAOp+AADqfgAAAR0AAOp/AADqfwAAARQAAOqAAADqgAAAARUAAOqBAADqgQAAAagAAOqCAADqggAAAMkAAOqDAADqgwAAAKYAAOqEAADqhAAAALwAAOqFAADqhQAAAaAAAOqGAADqhgAAAYAAAOqHAADqhwAAAIsAAOqIAADqiAAAAZEAAOqKAADqigAAAXkAAOqLAADqiwAAAYgAAOqMAADqjAAAAYYAAOqPAADqjwAAAXoAAOqQAADqkAAAAYkAAOqRAADqkQAAAZAAAOqSAADqkgAAAYsAAOqTAADqkwAAAYQAAOqUAADqlAAAAL4AAOqVAADqlQAAAX8AAOqWAADqlgAAAY0AAOqXAADqlwAAAAIAAOqYAADqmAAAAAQAAOqZAADqmQAAAAUAAOqaAADqmgAAAAoAAOqbAADqmwAAAAsAAOqcAADqnAAAAAwAAOqdAADqnQAAAA0AAOqeAADqngAAAA4AAOqfAADqnwAAAA8AAOqgAADqoAAAABAAAOqhAADqoQAAABIAAOqiAADqogAAABsAAOqjAADqowAAAB0AAOqkAADqpAAAAB4AAOqlAADqpQAAAB8AAOqmAADqpgAAAFwAAOqnAADqpwAAAF0AAOqoAADqqAAAAF4AAOqpAADqqQAAAF8AAOqqAADqqgAAAGIAAOqrAADqqwAAAGMAAOqsAADqrAAAACIAAOqtAADqrQAAACMAAOquAADqrgAAACQAAOqvAADqrwAAACUAAOqwAADqsAAAACYAAOqxAADqsQAAACkAAOqyAADqsgAAACsAAOqzAADqswAAACwAAOq0AADqtAAAAC0AAOq1AADqtQAAAC4AAOq2AADqtgAAAC8AAOq3AADqtwAAADAAAOq4AADquAAAADIAAOq5AADquQAAADMAAOq6AADqugAAADQAAOq7AADquwAAADUAAOq8AADqvAAAADwAAOq9AADqvQAAADkAAOq+AADqvgAAAD0AAOq/AADqvwAAAD4AAOrAAADqwAAAAD8AAOrBAADqwQAAAEAAAOrCAADqwgAAAEIAAOrDAADqwwAAAEMAAOrEAADqxAAAAEYAAOrFAADqxQAAAEgAAOrGAADqxgAAAEkAAOrHAADqxwAAAEsAAOrJAADqyQAAAFUAAOrMAADqzAAAAFYAAOrNAADqzQAAAFcAAOrOAADqzgAAAFgAAOrPAADqzwAAAGcAAOrQAADq0AAAAGkAAOrRAADq0QAAAGsAAOrSAADq0gAAAG4AAOrTAADq0wAAAHIAAOrUAADq1AAAAHQAAOrVAADq1QAAAHUAAOrWAADq1gAAAHYAAOrXAADq1wAAAHcAAOrYAADq2AAAAHgAAOrZAADq2QAAAHoAAOraAADq2gAAAHsAAOrbAADq2wAAAHwAAOrcAADq3AAAAH0AAOrdAADq3QAAAH4AAOreAADq3gAAAH8AAOrfAADq3wAAAIEAAOrgAADq4AAAAIIAAOrhAADq4QAAAIQAAOriAADq4gAAAIUAAOrjAADq4wAAAIcAAOrkAADq5AAAAIkAAOrlAADq5QAAAIwAAOrmAADq5gAAAI8AAOrnAADq5wAAAJAAAOroAADq6AAAAJMAAOrpAADq6QAAAJQAAOrqAADq6gAAAJUAAOrrAADq6wAAAJYAAOrsAADq7AAAAJcAAOrtAADq7QAAAJgAAOruAADq7gAAAJkAAOrvAADq7wAAAJoAAOrwAADq8AAAAJwAAOrxAADq8QAAAJ4AAOryAADq8gAAAJ8AAOrzAADq8wAAAKAAAOr0AADq9AAAAKEAAOr1AADq9QAAAKIAAOr2AADq9gAAAKMAAOr3AADq9wAAAKUAAOr4AADq+AAAAKgAAOr5AADq+QAAAKkAAOr6AADq+gAAAKoAAOr7AADq+wAAAJQAAOr8AADq/AAAAKsAAOr9AADq/QAAAKwAAOr+AADq/gAAAK4AAOr/AADq/wAAALgAAOsAAADrAAAAALkAAOsBAADrAQAAAL0AAOsCAADrAgAAAMAAAOsDAADrAwAAAMQAAOsEAADrBAAAAMUAAOsFAADrBQAAAMgAAOsGAADrBgAAAMoAAOsHAADrBwAAAMsAAOsIAADrCAAAAMwAAOsJAADrCQAAAM0AAOsLAADrCwAAANMAAOsMAADrDAAAANQAAOsNAADrDQAAANUAAOsOAADrDgAAANYAAOsPAADrDwAAANcAAOsQAADrEAAAANgAAOsRAADrEQAAANkAAOsSAADrEgAAANoAAOsTAADrEwAAAO8AAOsUAADrFAAAAPIAAOsVAADrFQAAAPMAAOsWAADrFgAAAPYAAOsXAADrFwAAAPkAAOsYAADrGAAAAPoAAOsZAADrGQAAAPsAAOsaAADrGgAAAPwAAOsbAADrGwAAAQAAAOscAADrHAAAAQEAAOsdAADrHQAAAQYAAOseAADrHgAAAQcAAOsfAADrHwAAAQgAAOsgAADrIAAAAQ0AAOshAADrIQAAAQ8AAOsiAADrIgAAARAAAOsjAADrIwAAAREAAOskAADrJAAAARMAAOslAADrJQAAARcAAOsmAADrJgAAARgAAOsnAADrJwAAARsAAOsoAADrKAAAARwAAOspAADrKQAAAR8AAOsqAADrKgAAASAAAOsrAADrKwAAASgAAOssAADrLAAAASwAAOstAADrLQAAAS0AAOsuAADrLgAAAS4AAOsvAADrLwAAAS8AAOswAADrMAAAATEAAOsxAADrMQAAATIAAOsyAADrMgAAATMAAOszAADrMwAAATQAAOs0AADrNAAAATUAAOs1AADrNQAAATYAAOs2AADrNgAAATsAAOs3AADrNwAAATwAAOs4AADrOAAAAT0AAOs5AADrOQAAAT4AAOs6AADrOgAAAT8AAOs7AADrOwAAAUAAAOs8AADrPAAAAUEAAOs9AADrPQAAAUIAAOs+AADrPgAAAUQAAOs/AADrPwAAAUYAAOtAAADrQAAAAUgAAOtBAADrQQAAAUkAAOtCAADrQgAAAUsAAOtDAADrQwAAAUwAAOtEAADrRAAAAU4AAOtFAADrRQAAAU8AAOtGAADrRgAAAVAAAOtHAADrRwAAAVEAAOtIAADrSAAAAVIAAOtJAADrSQAAAVkAAOtKAADrSgAAAVoAAOtLAADrSwAAAVsAAOtMAADrTAAAAVwAAOtNAADrTQAAAV0AAOtOAADrTgAAAV8AAOtQAADrUAAAAWQAAOtRAADrUQAAAWUAAOtSAADrUgAAAWYAAOtTAADrUwAAAWgAAOtUAADrVAAAAWsAAOtVAADrVQAAAW0AAOtWAADrVgAAAXEAAOtXAADrVwAAAXIAAOtYAADrWAAAAXMAAOtZAADrWQAAAXUAAOtaAADrWgAAAXYAAOtbAADrWwAAAXsAAOtcAADrXAAAAXwAAOtdAADrXQAAAX0AAOteAADrXgAAAX4AAOtfAADrXwAAAYEAAOtgAADrYAAAAYIAAOthAADrYQAAAYMAAOtiAADrYgAAAYUAAOtjAADrYwAAAYcAAOtkAADrZAAAAYoAAOtlAADrZQAAAYwAAOtmAADrZgAAAY4AAOtnAADrZwAAAZcAAOtoAADraAAAAZgAAOtpAADraQAAAaEAAOtqAADragAAAaIAAOtrAADrawAAAaQAAOtsAADrbAAAAaYAAOttAADrbQAAAacAAOtuAADrbgAAAakAAOtvAADrbwAAAaoAAOtwAADrcAAAAasAAOtxAADrcQAAAawAAOtyAADrcgAAAa0AAOtzAADrcwAAAbEAAOt0AADrdAAAAbMAAOt1AADrdQAAAbQAAOt2AADrdgAAAbUAAOt3AADrdwAAAbgAAOt4AADreAAAAbkAAOt5AADreQAAAboAAOt6AADregAAAbwAAOt7AADrewAAAb0AAOt8AADrfAAAAcQAAOt9AADrfQAAAcUAAOt+AADrfgAAAcYAAOt/AADrfwAAAccAAOuAAADrgAAAAcgAAOuBAADrgQAAAcwAAOuCAADrggAAAc0AAOuDAADrgwAAAPQAAOuEAADrhAAAAPUAAOuFAADrhQAAAPcAAOuGAADrhgAAAPgAAOuHAADrhwAAAGAAAOuIAADriAAAAGEAAOuJAADriQAAAHAAAOuKAADrigAAADoAAOuLAADriwAAAHEAAOuMAADrjAAAAGQAAOuNAADrjQAAAY8AAOuOAADrjgAAAG8AAOuPAADrjwAAAHMAAOuQAADrkAAAAG0AAOuRAADrkQAAAFsAAOuSAADrkgAAACcAAOuTAADrkwAAACgAAOuUAADrlAAAAQkAAOuVAADrlQAAAI0AAOuWAADrlgAAAJIAAOuXAADrlwAAAMYAAOuYAADrmAAAAbIAAOuZAADrmQAAAAEAAOuaAADrmgAAABgAAOubAADrmwAAAGUAAOucAADrnAAAAO4AAOudAADrnQAAAR4AAOueAADrngAAAVUAAOufAADrnwAAAZIAAOugAADroAAAASoAAOuhAADroQAAALoAAOuiAADrogAAAWMAAOujAADrowAAAWIAAOukAADrpAAAASIAAOulAADrpQAAAXcAAOumAADrpgAAASsAAOunAADrpwAAATkAAOuoAADrqAAAAFoAAOupAADrqQAAAbsAAOuqAADrqgAAAEQAAOurAADrqwAAAQoAAOusAADrrAAAAI4AAOutAADrrQAAAMEAAOuuAADrrgAAAP8AAOuvAADrrwAAARoAAOuwAADrsAAAAToAAOuxAADrsQAAACoAAOuyAADrsgAAASkAAOuzAADrswAAASEAAOu0AADrtAAAADcAAOu1AADrtQAAADgAAOu2AADrtgAAAEoAAOu3AADrtwAAAZQAAOu4AADruAAAAbYAAOu5AADruQAAAbAAAOu6AADrugAAAa4AAOu7AADruwAAAa8AAOu8AADrvAAAALAAAOu9AADrvQAAAVMAAOu+AADrvgAAAVYAAOu/AADrvwAAARkAAOvAAADrwAAAAGwAAOvBAADrwQAAAckAAOvCAADrwgAAAcsAAOvDAADrwwAAAcoAAOvEAADrxAAAAZoAAOvFAADrxQAAAZsAAOvGAADrxgAAAZwAAOvHAADrxwAAAZ0AAOvIAADryAAAAZ4AAOvJAADryQAAAZ8AAOvKAADrygAAAZkAAOvLAADrywAAABEAAOvMAADrzAAAAFMAAOvNAADrzQAAASQAAOvOAADrzgAAAJ0AAOvPAADrzwAAAcIAAOvQAADr0AAAAGoAAOvRAADr0QAAANEAAOvSAADr0gAAAN0AAOvTAADr0wAAANwAAOvUAADr1AAAANsAAOvVAADr1QAAAFEAAOvWAADr1gAAAFAAAOvXAADr1wAAAE8AAOvYAADr2AAAABUAAOvZAADr2QAAANIAAOvaAADr2gAAAK8AAOvbAADr2wAAALEAAOvcAADr3AAAAFkAAOvdAADr3QAAAGgAAOveAADr3gAAAVgAAOvfAADr3wAAAKQAAOvgAADr4AAAAGYAAOvhAADr4QAAABYAAOviAADr4gAAAMIAAOvjAADr4wAAAMMAAOvkAADr5AAAAScAAOvlAADr5QAAACAAAOvmAADr5gAAACEAAOvnAADr5wAAAP0AAOvoAADr6AAAABQAAOvpAADr6QAAAbcAAOvqAADr6gAAARYAAOvrAADr6wAAAO0AAOvsAADr7AAAAN4AAOvtAADr7QAAAN8AAOvuAADr7gAAAOQAAOvvAADr7wAAAOIAAOvwAADr8AAAAOMAAOvxAADr8QAAAOYAAOvyAADr8gAAAOcAAOvzAADr8wAAAOkAAOv0AADr9AAAAOsAAOv1AADr9QAAAOwAAOv2AADr9gAAAOEAAOv3AADr9wAAAOAAAOv4AADr+AAAAZYAAOv5AADr+QAAAM4AAOv6AADr+gAAATgAAOv7AADr+wAAAIoAAOv8AADr/AAAAAYAAOv9AADr/QAAAAcAAOv+AADr/gAAAAgAAOv/AADr/wAAAAkAAOwAAADsAAAAAOoAAOwBAADsAQAAAOUAAOwCAADsAgAAAOgAAOwDAADsAwAAABwAAOwEAADsBAAAAMcAAOwFAADsBQAAAQUAAOwGAADsBgAAAQIAAOwHAADsBwAAADsAAOwIAADsCAAAABoAAOwJAADsCQAAABkAAOwKAADsCgAAAE0AAOwLAADsCwAAALIAAOwMAADsDAAAALMAAOwNAADsDQAAAV4AAOwOAADsDgAAAEwAAOwPAADsDwAAAWEAAOwQAADsEAAAAXAAAOwRAADsEQAAANAAAOwSAADsEgAAAQwAAOwTAADsEwAAAaMAAOwUAADsFAAAAaUAAOwVAADsFQAAAEcAAOwWAADsFgAAAWwAAOwXAADsFwAAAKcAAOwYAADsGAAAAb8AAOwZAADsGQAAADEAAOwaAADsGgAAASYAAOwbAADsGwAAARIAAOwcAADsHAAAAQsAAOwdAADsHQAAAUUAAOweAADsHgAAAFIAAOwfAADsHwAAAPAAAOwgAADsIAAAAU0AAOwhAADsIQAAAW8AAOwiAADsIgAAAIMAAOwjAADsIwAAAIAAAOwkAADsJAAAAXgAAOwlAADsJQAAAWcAAOwmAADsJgAAALcAAOwnAADsJwAAALUAAOwoAADsKAAAALYAAOwpAADsKQAAAcEAAOwqAADsKgAAAcAAAOwrAADsKwAAAEUAAOwsAADsLAAAAVcAAOwtAADsLQAAAVQAAOwuAADsLgAAAFQAAOwvAADsLwAAALsAAOwwAADsMAAAAQQAAOwxAADsMQAAAQMAAOwyAADsMgAAAL8AAOwzAADsMwAAASMAAOw0AADsNAAAABMAAPEBAADxAQAAAK0AAAAAAAAAlADUAOgBFAEyAWwBpgHgAhoCLgJCAlYCagJ+ApICpgLIAt4DGgM4A4oD5AQQBGYEzAUcBWoFagWYBeoGBgamB1oHmggkCEIIqgkcCdQKiArOCvYLCAtQC2ILdAuGC5gL4Av6DAwMGAw2DGIMkAz0DSoNPg1mDY4N/A4uDnwOtg7QDyYPgA/IEAIQJhCyEN4RBBFiEZwR8BImEkoSuBMWE2AUFBQ4FI4UuBTEFTYVihX0FlQWthbsFxAXKBc4F0gXVBdoF3YXmhgYGDIYTBiaGQoZNhlIGYIZzBn8GhYaPhpaGnAaohrEGugbHBs0G7Qb5BwKHFgcdhycHLwc4B0aHTYdWB2IHbod5h4IHjAeXB6EHrwfFB+WH8gf4iAaIHgguiEeIXohsiIEImwitCL6IzojoCPCI/AkAiQeJKIkwCTcJPglRiWEJbgl5iZYJsonQieOJ7goOCheKOQpeCn0KnwqxisKK54r3iwULEosiC0qLaQtyC5iLuQvIi9sL4Avxi/qMBYwVjB8MNoxCjFsMagx1jIcMnwyrDLKMxgzTDNwM940NDRwNKA07jWmNdg2PjamNvo3PDdqN4I3mje4N+A4BDgmOEQ4YjiAOJg4tjjOOOw5BDkcOVY5kjnkOn46vjriO0Q7XDt4PA48JjxGPHg83Dz6PUw9eD2mPew+Ej4yPko+ZD6QPrw+4j8SP3I/jD/iQBhAZECOQMpBAkFCQXZBxkH4QiZCYEJ+QsJC6kNwQ6pEJERuRVJFikW8RiJGRkaURtRHNkeOR8pIEEhkSNxJMEmCSZhJyEoOSkZKXkqGSqZLBks6S8RMIkyETLZNBk0yTZhNyE3uTkZOYk5wTypPkE+0UC5QqlDwUWBRmFHQUihSVlKGUxZTcFPMVCZUTlRyVJZU7lUOVTJVhlXiVhxWXFaCVrZW8Fc6V5hXylfoWCRYsFkaWZRZ+lpaWtBbCFtCW5xcEFxWXMJdSl4QXi5eTF86X2xfgl+oX/JgOGBYYIpgzmFeYYBhumH6Yh5iSmJsYqJjOGNsY5hj3mSWZMBlQGV8ZeZmDmZIZr5m+mc+Z4BnvGgCaE5opmjKaRRprGoEbARtum3mbgpudm6ebspu4m8Qb2JvkG/icIBwunDKcNpw6nD6cVpxmnHaciRyanLacwRzUnPYdHR0pHT2dSh1ZHW6dfx2SHZodtp3Hndgd7p32ngYeER4nni8eYB58HqSewp7TnuKAAAABAAA//8BLAEsABEAIgA0AGQAACU0LgEiDgEVFBYfARYyPwE+AQciJzc+BDMyHgEXFhcGJyY0PgIyHgIUDgEHBicuARcwPQEuAScmJzY3Njc2JzYuAiIOAhUUHgEXFhcGBw4BBxUuATU0PgEyHgEVFAYBLChFUkUoHBkNJlwmDhgclikiAQMKDhAVCg8dFQYDAiJYBAgNEhYRDggIDgkTFAgOhwQRDAkLBQQHBQoBAQsUGh0aEwsGCAgEBQoJDBEFEhQjPEg8IxOWKUUoKEUpITwVChoaChU8YhgHChEOCgULFQ4ICRiLCRQSDQkIDhIVEQ4ECAgEDlsBAQ4YCQcFAwQHCBAUDhoUCgoUGg4KEw4IBAQEBwkYDwESMBokPCMjPCQaMAAAAAACAAAAAAEaARoAGgAoAAAlFg4BBzQnPgE3LgMOAQcmIz4CMzIeAgciDgEUHgEyPgE0LgEjARkBFCIWAxkiAQEQHSMeEwIJCgMYJRURHxgMshcnFhYnLicXFycXxRYlGAIKCQMlGhEeEgEPHBEDFSIUDBgfGhcnLicWFicuJxYAAAEAAAAAAQcBGgALAAAlFSMVIzUjNTM1MxUBB3ETcHATqRNwcBNwcAAEAAAAAAEaARoADQASABYAGgAAASMHFRczFRczNzUzNzUHIzUzFQc1MxUnIxUzARD0CQkKCc4KCQkc1+HPvCZwcAEZCTgKnwkJnwo4LyYmqZaWcRMAAAAAAQAAAAABEgDMAA8AADcXByc1NxcHMyc3FxUHJzc4KA04OA0ovCgNODgNKIMoDTgNOQ4oKA45DTgNKAAAAwAAAAABBwEHAAkAFgAjAAA3FzUzFTcXByMnNzQuASIOARQeATI+AScUDgEiLgE0PgEyHgFlKBMmDjgNOLAfMz4zHh4zPjMfExksMiwZGSwyLBmUKGxqJg03Nw8fMx8fMz4zHh4zHxksGRksMiwZGSwAAAADAAAAAAEHAQcACQAXACQAADcnMzUjNycHFRc3Mh4BFA4CLgI+ARcVIg4BFB4BMj4BNC4BlChsaiYNNzcPHzMfHzM+Mx4BHzMfGSwZGSwyLBkZLGUoEyYOOA04sB8zPjMeAR8zPjMfARIZLDIsGRksMiwZAAMAAAAAAQcBBwAJABYAIwAANxcjFTMHFzc1JwcGLgI+ATIeARQOAScyPgE0LgEiDgEUHgGYKGxqJg03Nw8fMx4BHzM+Mx8fMx8ZLBkZLDIsGRksxygTJg44DTivAR8zPjMfHzM+Mx4SGSwyLBkZLDIsGQAAAwAAAAABBwEHAAkAFgAjAAA/ARUzNRc3JyMHFxQOAi4CPgEyHgEHNC4BIg4BFB4BMj4BZSgTJg44DTiwHzM+Mx4BHzM+Mx8TGSwyLBkZLDIsGZgobGomDTc3Dx8zHgEfMz4zHx8zHxksGRksMiwZGSwAAAABAAAAAAEEAQcACQAANxczNycHNSMVJzteDV4NThNOg11dDk7ExE4AAQAAAAABBwDzAAkAADcHFRc3JzM1IzeDXV0OTsTETvJeDV4OTRNOAAEAAAAAAQcA8QAJAAA/ATUnBxcjFTMHqV5eDk7Dw04oXQ5dDU4STgABAAAAAADJAOEACQAANwcjJzcXNTMVN8kvDS8NHxMfii8vDR5oaB8AAQAAAAAA0QDPAAkAADcnNTcXBzMVIxd6Ly8NH2lpH2MvDS8NHxMeAAEAAAAAANEAzwAJAAA3FxUHJzcjNTMnoi8vDR5oaB7OLw0vDh4THwABAAAAAADJAOEACQAAPwEzFwcnFSM1B14vDS8NHxMfsi8vDR9paR8AAgAAAAABGgEbAAkAEwAANyc1NxcHMxUjFz8BNScHFyMVMwdPPDwNLOnpLIE8PA0s6eksEjwNPA0sEyx2PA08DSwTLAABAAAAAAEEAQcACQAAJScjBxc3FTM1FwEEXg1eDU4TTaleXg5Ow8NOAAAAAAEAAAAAARwBHAAlAAA/ATYyFhQPAQYiJjQ/ATY0JiIPAQYUFjI/AT4BLgIGDwEOARYyNm0RMCIRgggYEQh0AwUIA3QOHCgOgg4LCx0oKA9tAgEGCI9oECAuEHwIEBcIbwIIBQJvDSYbDXwOJiYcCgoOaAMIBQAAAAIAAAAAARoBGgAHAA8AACUVBycVJxc1FycVDwEVFzUBGUFmOqgBXlYaJeigNSUlSw2QATklGiFLEWEAAAMAAAAAASIBGgAbACcANgAAJScuAQcjIgYPAQYeAjsBMjY/ARcWOwEyPgIHIi8BMzcXHAEOASMzIzYvATMeARUXFg4CIwEgSwIKB1gGCgJMAgIFCQU3BQoCDDgFBlgECQUCawICbDkUKgIEAVdFAgJMRQIETAEBAgICLOEFCAEHBeEFCQgDBwYhKwMEBwkIAVA0fQEDAwEGB+EBAgLhAQMCAgAABAAAAAABGgEaAB0ALAA1AD0AADczJicjNzM0NyM3NTMVFzY3JzUzNSMVMxUHBh4CNzYzMh4CFRQOAS4CNhcWFzI3JwYVFDcXNjU0JiMiOF4LCEsdGwITJCYBCQkBE3ASSQIBBQhyEhcPHBULGSotIAkSFBEXEg9PChhOCyEYEhMICjkJCUhOTwMEAgFLExJLjgUJCQSJDQwVGw8XJhEJICwqWRABC04OEhhGTw8SFyEAAAAAAwAAAAABCgEaAA8AFgAaAAAlJzUzNSMVMxUHBhY7ATI2Jzc1MxUXIwc3MxcBBEgScBNKBAsKvAoLiAImJG4nHYIdLo1LExJLjgoREZAETk9HSzk5AAAAAAMAAAAAARoBGwAqADEAOgAANwYjFRQfASM3Nj0BND4CFzM2NyYnJg4CHQEUDwEXMxQWMjY1MzcnJjUHMjYnIxQWNzI2NCYiBhQW9AkKCAe1BwkNFx8PAwUHBgcUJh0QBwsIQhYfFkIJCwdeBwwBJQtTFyEhLiEhmAIEGhkUFRkZKRAeFQoCCQcCAQINGyQUKRYWIQ0PFhYPDSEWFm0LCAgLhCEuISEuIQAAAAAGAAAAAAEqASYAFQAnAC4AMwA4AEEAABMGByIHDgIdARQPATc2PQE0PgIfAQYHFh8BIwczFBYyNjUzNycmBwYiJjUzFjcmJzcXDwEXNyYXMjY0JiIGFBaiCgcJCg8XDQQcBgcQHSYUVQkKAgYHehIMFh8WQgkLBlIGDwslAXUGBwsNgpQNlQczFyEhLiEhARgICgMFFR4QKRERHRMWFikUJBsNApEDARMSFBMPFhYPDSERTAYLCAjdBwcKDWeVDZUGASEuISEuIQAAAAAEAAAAAAEqASYAFQAnAC4AMgAAEyYnJg4CHQEUBzc2PQE0PgIXFhcHMycmPQE3FRQfAQcjFAYiJicXMjYnIxQWBwEXAc8VGxQmHRAHGQENFx8PFBA9bAcIEwcLCUIWHxUBJgcMASULewEJDf73AQUQBAINGyQUKRYVGQkJKRAeFQoCAwysFBkaFhMpFhYhDQ8WFQ8SCwgICwkBCQ3+9wAAAwAAAAABBgEbABoAIQA0AAA3Jj0BNC4CJyYOAh0BFA8BFzMUFjI2NTM3BwYiJjUzFic3Nj0BND4CFxYXHgEdARQfAfsHDBgfEhQmHRAHCwhCFh8WQgljBg8LJQFuBwkNFx8PHhMJCggHZhUXJhIhGxECAg0bJBQpFxUhDQ8WFg8NGgYLCAgbFRgaKRAeFQoCBBYLGw4mGhkUAAAAAwAAAAAA4QD0AA4AFgAeAAA3NTMyFhUUBgceARUUBiMnFTMyNjU0IyczMjY0JisBXj8fIBANEBIiHioqEhQlKycQFBITJji8GhgNFQUEGBEZHVhEEhAiFBAdDgAJAAAAAAEaAQcAEAAXAB4AIgAmACoALgAyADYAAAEjDwEvASMHFRczFzM3Mzc1By8BIzUzHwEjDwE1NzMHIxUzFSMVMyczFSM3IxUzBzMVIxUzFSMBEGcHDAwHZwkJYxAOEGMJjAQGXVkOel4HAg1aljk5OTk5OTm8ODg4ODg4OAEHAwwMAwq7ChAQCru4AwOpDpsDAqENJhI5EjgTOBITExMSAAIAAAAAAPQBGgAIAA4AABMjBxUXNxc3NQcnIwc1M+qoChFNTRETRA5ElgEZCfQGVlYG9NtLS9IAAwAAAAABGgEHAEcAcQB9AAA3MSMiDgIdARQOAgceAx0BFB4COwEVIyIuAScxJic1Jjc1NCcxJic1JicxJisBNTMyPgE3MTY9ASY3MTY3MT4COwEXMzUjIicxJic1JicxJj0BNic1JicxLgIrARUzMh4CHQEUHgIXIxYHIg4BHgI+ATU0JnECBgoHBAIEBwUFBwQCBAcKBgICCRANAwMBAQECAgQDBQUGAQEGCgcCAgEBAQMDDRAJApQCAgYFBQMEAgIBAQEDAw0QCQEBBgoHBAIEBwUBDxcRHA0GGCIfEyH0BAgKBhkGDAsIBAQICwwGGQYKCAQSBg0ICAcBCAgQBgUFAwEDAgMSBQcFBQYQCAgICAgNB3oSAwIDAQMFBQYQCAgBBwgIDQcTBAgKBhkGDAsIBAIREx8iGAYNHBEXIQAEAAAAAAEaAQcARwBxAH4AigAANzEjIg4CHQEUDgIHHgMdARQeAjsBFSMiLgEnMSYnNSY3NTQnMSYnNSYnMSYrATUzMj4BNzE2PQEmNzE2NzE+AjsBFzM1IyInMSYnNSYnMSY9ATYnNSYnMS4CKwEVMzIeAh0BFB4CFyMWBzYzMhYVFA4BLgI2FwcnBxcHFzcXNyc3cQIGCgcEAgQHBQUHBAIEBwoGAgIJEA0DAwEBAQICBAMFBQYBAQYKBwICAQEBAwMNEAkClAICBgUFAwQCAgEBAQMDDRAJAQEGCgcEAgQHBQEPNg4RFyETHyIYBg1CFRUOFhYOFRUOFhb0BAgKBhkGDAsIBAQICwwGGQYKCAQSBg0ICAcBCAgQBgUFAwEDAgMSBQcFBQYQCAgICAgNB3oSAwIDAQMFBQYQCAgBBwgIDQcTBAgKBhkGDAsIBAIaCSEXERwNBhgiHwIWFg4VFQ4WFg4VFQAFAAAAAAEaAQcADQARABsAHwApAAAlIzUnIwcVIwcVFzM3NSczFSMXFQc1JyMHFSc1FxUjNQc1FxUXMzc1NxUBEEIJXglCCQn0CahLS5ZLCjgJS4MmXUsJOApL4RwKChwJlgoKlhwTEw4qCQoKCSsNOBMTS2ArBgkJBipfAAAAAAQAAAAAAQcBGgAiAD8AWwBkAAATNjMyHgEXDgEHNTE2PQE+AiYnLgEOAhYXFRQXFS4CNhcGIxUUBisBMCMxLgE9ASImPQE0NjsBMhYdARQHNxQHFh0BPgImJy4BDgIWFzU0NyY+Ah4BByMUBiImNDYyFlgcIh8zHgEBKSEJERcJBwoRNjkoCRoZCR4oCBtyAgQFBBQBBAQEBQsIEggLAxkJBgkLAQsJDSQjGgkLDQYJARQeHhMBHgsQCwsQCwEGEx40HiQ6DAEJCwMJICYnEBkVDCs6NQ4DDAgBCzFAOqcDLwQFAQQELwUEJggLCwgmBAJbDw0JCgIJGRwZCQ4KChokIw0CCwkNHxoJCxkQCAsLEAsLAAMAAAAAARoBGgAHAAsADwAAEzMXFQcjJzUXFTM1JzM1Ixz0CQn0CRPh4eHhARkJ4QkJ4UKWlhMmAAAAAAMAAAAAARgBGgAxADkASQAANzU0JiIGHQEjJwcXBwYdASMVOwEWHwEHFzcXHgEyNj8BFzcnNTY3MTM1IzU2LwE3JwcjNTQ2MhYdARcVFhUUDgIiLgI1NDc1zCAtIBAfCx4BCSYoAQQNASULIwIMHyIfDAEkCyUOBSknAQoBHgsfbRcgFx0JDRYbHRwWDAjYCxYgIBYLHwseARobDBAbFQElCyMBDhAPDgEkCyYBFhsQDBsaAR4LHwsQFxcQCxABFhkXJxwPDxwnFxkWAQAAAAARAAAAAAEaARoADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwBDAEcASwBPAAABIzUjFSM1IxUjBxUXMzc1ByM1MzUjNTMHIxUzBzMVIxcjFTM3MxUjFyMVMwczFSM3IxUzFzMVIxcjFTMHMxUjNyMVMxczFSMXIxUzJzMVIwEQHBOWExwJCfQJEuHh4eG8ExMTExMTExMmEhISEhISEhISEhImExMTExMTExMTExMlExMTExMTExMBBxISEhIK4QkJ4deoExNeExITExNeExITExOEExMTEhMTE4QTExMSE14TAAADAAAAAAEaARoAPQB5AIIAADcuAQ4BDwIGJi8BJicuAj8CPgI1NCcuAyMiDwEOAhUUHgYzMj4BPwE2NTQmLwEmLwEmBwYnIiYnJicuAzUmPgE/ATYzMh8BFh8BFhQPAQ4CFBYfARYzMjc2PwE+ATIfAhYfARYVFA8BDgE3BzMVIzUzFTfrBQsKBwMGBQMIAikLCwQGAQMEBwMGAwgFCwwNCAwIDgUJAwoRGBwgIiEQChENBg4IAwMHBAQPBA0HCA4eDh8aDRYQCQEEBgULAwQCBAcKBwYDAgsEBQQEBUUJDAUFCQYGAgYFBAcJBQMGAwQKBQovVz5eE1d9AgEFBQQGBAMBAycLDAUIBQMFBgMHCQYMCQUMCwgIDgYNEQoPIiEgHBkRCgQIBQ4IDAUKBAgEBA4EVAIBCQcSGg0cHh4PBw4JBQoEAwYICQcEBQMLAwcKCwoFRQkCBAcGAwQDBggEBQgDAgQDCwQH41cTXj5XAAMAAAAAARoBGgAIAEQAgAAAPwEjNTMVIzUHFzIfAx4BFRQPAQ4CIyIuBjU0PgE/ATYzMh4CFxYVFA4BDwIGFBYXFh8BHgE/Aj4CBzI+AT8BNic2LwEmLwImIgYPAQ4CIyIvAS4BND4CPwE2NC8EJiMiDwEOAgceAxcWFx4Bolc9XRJYMQwJDwgHAwMIDgUOEQoQIiEgHBgRCgMIBg4IDAcODQoFCAMGAwcEAgYECwspAggDBQYDCAkGCQwKBQoEAQEDBgMFCQcEBQYCBgMHCgUMCUUFBAQFBwMFAgMGCAkHBAIEAwsEBwMBAQkQFg0aHw4er1gSXT1XIwgOCAgECgUMCA4FCAQKEhgcICEhEAsQDQYOCAgLDQQJDAUJCAMGBQMFCAUMCycDAQMEBgQFBVoDBgULAwQCAwgFBAgGAwQDBgQFBAlFBAsMCQcGAwUDBQQHCQgGAwQKBAsNBw4fHhwNGhEICQAAAAQAAAAAAQIA4QAHAA8AJAAvAAA3IycjByM3MxcnJicjBg8BFyM1MQYjIiY1ND8BNCMiBzU2MzIVDwEOARUUFjMyNjWmEw89DxI3ERAWAQEBAQEXthELFQ8SIh8VEg8PFCQRGAwMCwkMEFEoKJBZPgMGBgM+NxATEA4dBQQaDBAKJg8EAQgLBwoRDQAABAAAAAABJQD0AAYACgAMABMAACUHIyc3FzcHNycPARcHFwcjJzcXASWSDjoONIuQUg1QEgopCw8OOg406a1TCkmkbWILXhYPFQ8RUwpJAAABAAAAAAEPAPoABgAAJQcvATcXNwEPnw8/DziX7rwBWQtPsgAIAAAAAAEaAQcABgAKAA4AEgAWAB0AJAArAAA3Iyc3FzcfATMVIxUzFSMXIxUzBzMVIyczNycHJwcXIyc3FzcXBzM3JwcnB0YNEw0NGg4blpaWlpaWlpaWlkoNIg4aDQ0gDRMNDRoOLw0iDhoNDdgUDQ0bDgUTJRMmEiYTaCENGg0OTBQNDRsNWiENGg0NAAABAAAAAADzAMEABgAAPwEXByMnN5ZRDFgLWAxvUgxXVwwAAAABAAAAAADBAPQABgAANxcHJzU3F29SDFdXDJZRDFgLWAwAAAABAAAAAADPAPMABgAANyc3FxUHJ71SDFdXDJZRDFgLWAwAAAABAAAAAAD0AM8ABgAANwcnNzMXB5ZRDFgLWAy9UgxXVwwAAAACAAAAAAEHARoANwA7AAATMxUzNTMVMzUzFTMXFTMVIxUzFSMVMxUjFQcjFSM1IxUjNSMVIzUjJzUjNTM1IzUzNSM1MzU3MwczNSNeExITExMSEyYmJiYmJhMSExMTEhMTEyUlJSUlJRMTE4ODARklJSUlJRMTEhMTExITEyUlJSUlJRMTEhMTExITE5aDAAABAAAAAAD9AP0ACwAANwcXNxc3JzcnBycHhVURVVURVVURVVURllURVVURVVURVVURAAAAAgAAAAAA9AD0AAMABwAANxUzNQcjNTM4vBOWlvS8vKmWAAAAAQAAAAABBwCWAAMAACUVIzUBB8+WExMAAwAAAAABBwD0AAMABwARAAA3FTM1ByM1MyczNTMVIxUzNSM4qRODg3ATgxMmqc6oqJaEEhODE6kAAAAAAQAAAAAA4gDiABkAADcyFx4BFxYUBw4BBwYiJy4BJyY0Njc2Nz4BlgoKExwFAwMFHBMKFAoTHAUDBQUKEQkT4QMFHBMKFAoTHAUDAwUcEwoUEwkRCgUFAAEAAAAAARoBGgAaAAATMhceARcWFAYHBgcOASIuBDQ2NzY3PgGWEhEhMQoECQkRHg8hJCEeGBEJCQkRHg8hARkECjEhESQhDx4RCQkJERgeISQhDx4RCQkAAAAAAgAAAAABGgEaACoARAAAEyYiBzEGBwYHMQ4BFhcWFx4CPgE3MTY3NjcxNiYnMSYnMSYnMSYnMSYnFwYHDgEiLgQ0Njc2Nz4BMhceARcWFAa0Dx4PDg0ZDwgIAQMIFQsZHR8cDRkPCAMFAQQDCAcLCgwNDlMRHg8hJCEeGBEJCQkRHg8hJBEhMQoECQECBQUDCA8ZDR0fDhwWCg8IAQcIDxkNDg8fDg4NDAoLBwgDrh4RCQkJERgeISQhDx4RCQkECjEhESQhAAADAAAAAAEaARoADAAWAB8AABMyHgEUDgEiLgE0PgEHFBYXNy4BDgEVMzQmJwceAT4BliQ8IyM8SDwjIzxMDQ2fGUI7JOIODZ8ZQjskARkjPEg8IyM8SDwjgxQlEJ8VCRw3IRQlEJ8VCRw3AAABAAAAAAC8ALwACAAANxQGLgE0NjIWvBYgFRUgFpYQFgEVIBYWAAAAAgAAAAAAvAC8AAoAFwAANw4BLgI+ATIWFBc2NTQmIyIOAR4CNqYECgsIAgQJDgsMBxYQCxMJBBEWFYwFBAIICwoHCw4PCgsQFg0VFhEECQADAAAAAADhAOIADAAVABYAADcyPgE0LgEiDgEUHgE3FAYiJjQ2MhYnlhQjFBQjKCMUFCNFHSgdHSgdMUsUIygjFBQjKCMUSxQdHSgdHSAAAAUAAAAAARoBGgAHADQAPQBGAE8AAAEjBxUXMzc1ByM1Mx4BMzI2NCYiBhUjFSM1MxUOARUUFjI2NTMUFjI2NCYjIgYHIy4BIzUzBzQ2MhYUBiImJzIWFAYiJjQ2MzIWFAYiJjQ2ARD0CQn0CRKpKwQSCg8WFh8WOCUlCAsWHxYmFh8WFhAKEQUwBREKqXEKEQsLEQo4CAsLEQoKeQkKChEKCgEZCfQJCfTqJQgLFh8WFg844SwEEgkQFhYQEBYWHxYKCQkKJqkICwsRCgp5ChEKChEKChEKChEKAAAFAAAAAAEaAPQACwAPABMAGAAcAAA3FzcXNyc3JwcnBxcnITUhFSE1IRc1IxUzFTUjFbwNHh4PICAPHh4NHscBBv76AQb++paWlpZADR4eDR4eDyAgDx6DE0sTQgkSORMTAAAABAAAAAABFgEaABYAIgAsADYAADcjNTMVMzUnIzUjNCYiBhUjFSMHFRczNT4CHgEUDgEuAhcHNSMVJwcXMzcnMxcHJxUjNQcngziWEwocEhYgFRQbCgpBAQkLCgcFCgsIBYYUExQOJQ0kfA0lDhQTFA0mqCUvCRMPFhYPEwm8CeUFCQIECgoKBQEGCqwUZGQUDSQkWyQNFGRkFA0ABAAAAAABBwEHAAsAGQAgACQAADcnBycHFwcXNxc3LwE3MxcVByMVByMnNTc7AhcVMzUjFyMVM6IOGhsNGxsNGxoOGykTgxMTJhKEEhImE0sSJoNLhISUDhsbDhobDRsbDRt6ExODEyYSEoQSEkuDOIQAAAABAAAAAADoAOgACwAANxc3JzcnBycHFwcXlkQORUUOREQORUUOiUUOREQORUUOREQOAAAAAgAAAAABGgD2AC8AOQAANzMeARQGIzUyNjQmJyMnLgIGDwEnJiciBw4BHgE7ARUjIiYnLgE+ATc2Fz4BHgEHFzUzFTcXByMn4AEXISEXDxUVDxECAhcfGwYGEAUFFA0KBgsYDgkJDhoJDAcLGxEODgkmKx9fGBMYDSgNKLwBIC8hExYeFgEQDxYFEA4OAwEBDgocGhATCwsNIyIXAwMEFBYGH3YYZmUXDSgoAAIAAAAAARoA9gAyADwAADczHgEUBisBNTMyNjQmJyMnLgIGDwEnJicGBw4BHgE7ARUjIiYnLgE3PgIXPgEeARcHJxUjNQcnNzMX4AEXISEXJSUPFRUPEQICFx8bBgYQBQUUDQoGCxgOLy8OGgkPBAsHFxwOCSYrHwMfGRIYDSgNKLwBIC8hExYeFgEQDxYFEA4OAwEBAQ0KHBoQEwsLECsSDBEFBBQWBh8WSBlmZRgOKCgAAAIAAAAAARoA9gAVAC4AADczHgEUBisBIiYnLgE+ATc2Fz4BHgEHMzI2NCYrAScuAgYPAScmJyIHDgEeATPgARchIReMDhoJDAcLGxEODgkmKx9/gxAWFhARAgIXHxsGBhAFBRQNCgYLGA68ASAvIQsLDSMiFwMDBBQWBh9zFh8WEA8WBRAODgMBAQ4KHBoQAAcAAAAAARoBGgADAAcACwAPABMAFwAnAAATMxUjNzMVIxczFSMVMxUjFTMVIwczFSMnBxUzNTMVIzUjFRczNzUnXhMTJUtLJktLS0tLSyZLS10TE+HhExPhEhIBB8+8ExMSExMTEhMTzhJeXs9xcRISzxIAAwAAAAABFAD0AAYADQARAAA3BxcHJzU3MwcXBxc3NQcXNydYMTENODiRDjIyDji4EV4RwzEyDTgNOQ4xMg04DWAIuwkAAAAABgAAAAABLAEaABUAKwBBAFMAXQBlAAATFRQWFzMWFxYdASM1NCYvASYnJj0BMxUGFhczFhcWHQEjNTQmJzUmJyY9ATMVFBYXMRYXFh0BIzU0Ji8BJicmPQEHNzMyFhQGKwEOASsBIi4BPQEXNSMVFBY7ATI2NxUzFjY0JiM4BwgBCgQIEwcIAQoECEwBBwgBCgQIEwYJCgUHSwYJCgUHEgcIAQoECHASxRQbGxQMBigaOBUiFbypIRc5FyETCQwQEAwBGQkGCAcIBQoMCgoGCAYBBwYKDAkJBggHCAUKDAoKBggGAQcGCgwJCQYIBwgFCgwKCgYIBgEHBgoMCXATHCcbGR8UIhQ5ODg4GCEhUDgBERcRAAAAAAQAAAAAAQcBBwADABEAGAAcAAA3IxUzJzczFxUHIxUHIyc1NzsCFxUzNSMXIxUzqV5eSxODExMmEoQSEiYTSxImg0uEhIMSgxMTgxMmEhKEEhJLgziEAAACAAAAAAEaARoADAAUAAATIg4BFB4BMj4BNC4BBzUyHgEUDgGWJDwjIzxIPCMjPCQfMx8fMwEZIzxIPCMjPEg8I/PhHzM+Mx4AAAAACgAAAAABLAEaAAcACwATABcAHwAjACsALwAzAD0AABMHFRczNzUnBzUzFQ8BFRczNzUnBzUzFQc3MxcVByMnNxUzNTcHFRczNzUnByM1MxUjNTMnIxUzBxc3NScHHAkJOAoKLiUvCQk4CgouJTgJOAoKOAkTJZ8JCTkJCQolJSUlbjo6Ew0iIg0BGQk4Cgo4CTgmJiUKOAkJOAo5JiYvCgo4CQkvJSWDCXEJCXEJOCZeJRMTEgwiDSINAAADAAAAAAEaARoAEgAeACcAAD8BFQcnNSMnNTczFxUjNSMVMx8CNzUzNzUnIwcVFzcjNTMVIwcVJ0sTFhAcCQnhChPOHAl2IxAcCQmWCQlLQoQdCRZYExsVBy8JlgkJVEuECUIiBhwKXQoKXQoTS0sJDxUAAAoAAAAAARoBBwAGAAoADgAUABgAIwAnAC0AMQA4AAABIxUzFTM1JzMVIyczFSMXHQEzNzUHNSMVJyMPATUnIxUXNzM3NSMVBzUjFRczPQEjFTcVIzU3MxUBEBwTEnAlJUslJakJCTglJgkHKAoJEDYFgxLhEwkKExMTCRwBBhITHAkSEhKEEhMJHCUTExMDKCEKQgc2SyUlOBIcCUslJV4THAkSAAAAAAIAAAAAARoBBwAXACMAABMzFxUmJzUjFTMXFT8BMwYVIwcnNSMnNRciDgEeAj4BNTQmHPQJCArhLgooBwsCBTYQLwnOERwNBhgiHxMhAQcKgAkGaJYKISgDCQo2By8JqXoTHyIYBg0cERchAAIAAAAAARoBBwALABQAAAEjBxUXMxUXNzM3NQcjDwE1JyM1MwEQ9AkJLxA2fwkSegcoCi7hAQcKqQkvBzYJqZ8DKCEKlgAAAAUAAP/9AS0BGgAsADIANgBDAEoAADcGIzUjFS4CJzM1Iz4CNxUzNR4CFyMVMwcWFzY1NC4BIg4BFB4BMzI3JjcvAR8BBi8CHwE2FzIWFRQOAS4CNhc3JwcnBxerBgYSGy4cAhISAh0tGxIbLhwCEhIBCQgDIzxIPCMjPCQODQQNNyZMGwYNEiQSRw8RFyETHyIYBw0uIg8cEAwYJwESEgIdLRsTGy0cAhISAhwuGxIMAgQNDiQ8IyM8SDwjAwhKG0wmNwQNJBIkJgoBIBgRHA0GGSEgPy0LJQ4PEwAEAAAAAAEsARoALAAyADYAPwAANwYjNSMVLgInMzUjPgI3FTM1HgIXIxUzBxYXNjU0LgEiDgEUHgEzMjcmNy8BHwEGLwIfARQWMjY0JiIGqwYGEhsuHAISEgIdLRsSGy4cAhISAQkIAyM8SDwjIzwkDg0EDTcmTBsGDRIkEi8gLyEhLyAnARISAh0tGxMbLRwCEhICHC4bEgwCBA0OJDwjIzxIPCMDCEobTCY3BA0kEiRVFyEhLyEhAAAAAAQAAAAAARoBGgADAAcAIwAwAAA3Fy8BFy8BFzMOAgc1IxUuAiczNSM+AjcVMzUeAhcjFQcyPgE0LgEiDgEUHgGpJkwmVBIkEnkCHC4bEhsuHAISEgIdLRsSGy4cAhJeJDwjIzxIPCMjPKlMJkxUJBIkGy4cAhISAh0tGxMbLRwCEhICHC4bEnojPEg8IyM8SDwjAAAG//8AAAEsAQsADAAYAE4AZwBxAHsAADcyFh0BFAYiJj0BNDYXNCYiBh0BFBYyNjUnFhc3NhcWFxYVFAcXMx4BHQEUBw4BDwEGBwYHBiInJicmLwEuAScmPQE0NjczNyY1NDc2NzYPARUXFhcWMjc2PwE1JwYjIicmJwYHBiMiNyYOARQWMjY3NjcGFx4BMjY0LgF1BggIDAgIVggMCAgMCDICAQMRJiMQDQUDAQ4PAwIHBwsGBwwNKVIpDQwHBgsHBwIDDw4BAwUNECMmSQEBCgwkRiQMCgEBDBQhEgYEBAYSIRQ6CDAPDCoTAgMnBwMCEyoMDzBxCQYcBggIBhwGCQ8GCQkGHAYICAayAQIDEwUEExEeEwwQBxkOGAUGAwkFCAUEBwUSEgUHBAUIBQkDBgUYDhkHEAwTHhETBAWCAlABBgUPDwUGAVACBhMGCAgGE2IIBRMoDhQUFggIFhQUDigTBQAAAAADAAAAAAEHARoABwAMABMAAD8BMxcVByMnNycjFTMnBxUXNTMnSxNlRBOWE6k4Xpa8EhJ5E+ETQ4sTE4M4u/MSvBPPEgAAAAAEAAAAAAEHAPQABgAbACgANgAANw8BJzcXNxc+ATU0LgEjIgcmIzYzMh4BFAYHNgciLgE0PgIeAg4BBzI+ATQuASIOARQeARenLw4cDRUoSQkKEh4SDQwNDxceFycXGRQFZRIeEhIeJB4RARIeEhcnFhYnLicWFicXkDgBHA4VMCsJGA0SHhIFBRMXJy4oCw4rEh4kHhEBEh4kHhISFicuJxYWJy4nFgEAAAAABAAAAAABGgDiAAMABwAXABsAACUVIzUVMxUjNyMiBh0BFBY7ATI2PQE0JgczFSMBB+Hh4eHhCAsLCOEHCwtAJibOEhIlXpYLCIMICwsIgwgLcBMAAQAAAAAAzwCWAAMAADczFSNecHCWEwAABgAAAAABCQEcAAwAHAAoADAAOgBIAAATPgEeAg4CLgI2FxYzMj4BNTQuAg4CHgE3FwcWDgEuAj4BFwcWNjQmDgEWNwcWFRQHFz4BLwEmIyIOARQXByY+AhdJG0E7JAQdNkE6JQQcJhogHC8cFiUwLiQTAxiCDSgEBREUDwIMFAoSBQoHCAQBVA8FCQ4MAwo0CwwSHhIJDRADJjgaAQUSBB02QTskBBw3QTqoEhwvHBkqHgkMIC0vKooNKQkUDAIOFREFBCEDBAsFAQcHKw4LDRIPDhMuFBcFEh4kDw4YOSsMDQAAAwAAAAAA9AEaABMAJAA1AAA3NC4BIg4BFRcjFRceATI2PwE1IycyFx4BFAYHBiInLgE0Njc2FwcOAQcGIicuAS8BNRY3Fjf0GSwyLBkBAQEENUg1BAEBXRUTEBMTEBMqExATExATYAEBEw8SKhIPEwEBIygoI+oNFgwMFg0CpgcRFxcRB6YeBQQOCg0EBQUEDQoOBAXEAwUMBAUFBAwFA4wUAQEVAAAABQAAAAABKAEHACUALAA1AD8ARgAANwcuASIGBycHFwcVIxUzFRYXBxc3HgEyNjcXNyc2NzUzNSM1JzcnMhYVIzQ2Fw4BBy4BJzUzJwcVMzUXBxU3NQc1Nyc1FxWJEQQZIBkEEQ0WAxMTAQQYDRUHFhgWBxUNGAQBExMDFksMEDgQMgIVDw8VAUsqDxOOMEdHaY+lgxAPFBQPEA0WAhMTAQkJGA0VCgsLChUNGAkKARITAhYNEAwMEEsPFQEBFQ8cswhWRF8gFy8QZBZGXxduEAAAAAAEAAAAAAEWAQcAJQAsADUAPwAANwcuASIGBycHFwcVIxUzFRYXBxc3HgEyNjcXNyc2NzUzNSM1JzcnMhYVIzQ2Fw4BBy4BJzUzJzcXFQc1NycVI4kRBBkgGQQRDRYDExMBBBgNFQcWGBYHFQ0YBAETEwMWSwwQOBAyAhUPDxUBSxMOqWxWjhODEA8UFA8QDRYCExMBCQkYDRUKCwsKFQ0YCQoBEhMCFg0QDAwQSw8VAQEVDxyrCHEQSBc5X0QAAAAEAAAAAAEpASwAJQAsADUAQAAANwcuASIGBycHFwcVIxUzFRYXBxc3HgEyNjcXNyc2NzUzNSM1JzcnMhYVIzQ2Fw4BBy4BJzUzNxUHNTcnFSYnNTeJEQQZIBkEEQ0WAxMTAQQYDRUHFhgWBxUNGAQBExMCFUsMEDgQMgIVDw8VAUu4gGqiCQoOgxAPFBQPEA0VAxMTAQkJGA0VCgsLChUNGQgKARITAxUNEAwMEEsPFQEBFQ8cYBBRFkNndgYDfggAAAAABAAAAAAA4wDjAAwAGAAcACAAADc+AR4CDgIuAjYXHgE+AiYnJg4BFjcjFTMVIxUzbBEoJBcCEiEoJBYDEh0MHBkPAg0LEikYCEo4ODg41AwCESIoJBcCEiEoJF4IAgwXHBkICwgjKjsTEhMAAwAAAAAA4QDiAAwAEAAUAAA3Ig4BFB4BMj4BNC4BFxUjNTcVIzWWFCMUFCMoIxQUIxJLS0vhFCMoIxQUIygjFF4SEjkTEwAAAgAAAAAA5gDhAAUACwAANyMHFzM3ByMnNzMXulYsLFYsOjoeHjod4UtLSzMzMzMAAQAAAAAA5gDhAAUAADcHIyc3M+UrViwsVpZLS0sAAAACAAAAAADhAOEAAgAFAAA3MycHMydLlksjRiNeg2w9AAEAAAAAAOEA4QACAAA3FyOWS5bhgQAAAAIAAAAAAPQA9AADAAcAAD8BFwc1NycHOV1dXTQ0NJZeXl0pNDU1AAABAAAAAAD0APQAAwAANxcHJ5ZeXl70Xl5eAAAAAwAAAAAA4wDjAAwAEAAUAAA3PgEuAg4CHgI2JyMVMyc1MxXUDAIRIigkFwIRIigkJxcXFxdsESgkFwIRIigkFwIRFhMlS0sABQAAAAABHAEcABUAHgBEAEwAVgAAEzczHwIVDwErATU0JzM1IxUmIz0BFwcmLwE3JzcXBzcXBxcVMxUjFQYHFwcnDgEiJicHJzcmJzUjNTM1Nyc3Fz4BMhYHLgEOARUzNAc2NzUjFR4BFzZYArEBDwEBDwFcB2CsCQqGIwICBhwtCjRXEQ0VAhMTAQQYDRUHFhgWBxUNGAQBExMDFg0RBBkgGRUGERAJOAIKAUoBFQ8PARsBAQ8BsQIPAgoHrFsCXAFnIwMDBRwuCjM7EA0VAxMSAQoJGA0VCgsLChUNGQgJARMTAxUNEA8UFAcGAwYOCQxUCg8cHA8VAQEAAwAAAAABDAEHAAMACQAMAAATIxUzNwcVFzc1DwE1SxMTPg8PgxZpAQfh1Qe8B10QCEyYAAMAAAAAAQ8BBwADAAkADAAAEzMVIzcHFRc3NQ8BNS8cHFwWFoQhXQEH4dkLvAteFgtChAADAAAAAAEWAQcACQAuADgAAD8BFxUHNTcnFSMXDgEdARQOAisBIi4CPQE0LgI1ND4EMh4EFRQGByMVFBY7ATI2NV4OqWxWjhMVBQYCAwUDEAMFAwIGCwcDBggKDAwMCggGBAccFgIBEAEC/whxEEgXOV9EYAUNBxADBQMCAgMFAxAHDQsQCgYLCwgGAwMGCAsLBgoQGRYBAgIBAAAEAAAAAAERARoAEQAfADcARAAANyYnNycHJicmBwYPARc3Njc2BwYPASc3Njc2Fx4BFxYHNycHJzcnBycHDgEUFhcHFzceATI2PwEHBiIuAjU0PwEXBwb/AwUZCxoHCRQUCwgdUR0JBAgXAwYSOhIGBxAQBwsEBmEcDBsjHAwcCx0JCAUGGQsaBxIVFQgdNggQDwwGDBI6EgbkCQcaCxkGAgcIBAkdUR0ICxQOBwYSOhIGAwYGBAsHEG4dDB0jHQwdCx0IFRURCBkMGQUGCQgdGgQHCw8IEQwSOhIFAAAAAAYAAAAAARoBAAADAAcACwAPABUAGAAANzUzFSczFSM3FSM1HQEzNSU3FxUHJzcVN3GoXV1dXaio/voOZWUOE0pxEhJLE0sTE6kTE60HQw9ECHVjMQAAAAACAAAAAADYAPQAAwAHAAA3MxUjNxUjNVQdHYQc9Ly8vLwAAAACAAD//QEWAQcAGgAkAAA3FA4BJicHHgE+Ai4BBgc1IxUXMzUjPgEeASc3FxUHNTcnFSOGGScjCBIKLTIjBxovMQ8TCSwYCiMlFygOqVlDjhNLFB8IEhIHFxkHJTIsEw0UFzIKExEOCh6hCHEQOxYtX0QAAAUAAAAAARwA9AAEAAkADgASAC0AADc1MwYHNzY3IxUXJicjFSUVITUXMj4BLgEGBzMVIyc1MxU+AR4BDgImJzceARNhAgEXCQuJaQUDYQEG/vrHEhoGESEgCRQlCBANKicWBh4qJQkPBhdxEgkJOAoIEnEJChO8ExO8FiIeDAwPEAgqExELESQrHgcVFAYNDwAAAAABAAAAAAEMAQ0AHQAANxQOASYnBx4CPgI1NC4BBgc1IxUXMzUjPgEeAe8mOjUMGgooMjMpFypERRYcDkEjDjU3I5YeLg0bHAsYIQ0KIC8aJDsXFRwiSw4cGRYPLQAAAAADAAAAAAD+AQcAAwAJAAwAABMjFTMnFxUHJzUfATX9HBxcFhaEIV0BB+HZC7wLXhYLQoQAAwAAAAABEAEHAAgAEgAXAAA3FAYuATQ2MhYzLwEjBxUXMz8BByM1Mxe8FiAVFSAWVFARXxgYXxFQYV9fT5YQFgEVIBYWWQgYshcIWUqyWQACAAAAAAEQAQcACQAOAAAlLwEjBxUXMz8BByM1MxcBEFARXxgYXxFQYV9fT6ZZCBiyFwhZSrJZAAIAAAAAAPwBAAAFAAgAAD8BFxUHJzcVN1AWlpYWHG70C2QXZAytk0oAAAAAAgAAAAABDAEMABcAIAAANzUzFT4BMzIeAR8BIzUuAiIGBzMVIycXIiY0NjIWFAYhHBAwGx00IAIBHQIYJy4pCzVOEnUQFRUgFhbASy8TFhsuHAUEFCIUFhMcEpAVIBYWIBUAAAIAAAAAAOoBGgAKABMAADczNycHNSMVJwcfARQGIiY0NjIWlgpJFDEcMRRJLxYfFhYfFnlJFDF0dDEUSUEQFRUgFhYAAgAAAAAA6gEaAAoAEwAAEyMHFzcVMzUXNycXFAYiJjQ2MhaWCkkUMRwxFEkbFh8WFh8WARlJFDF0dDEUSeEQFRUgFhYAAAAAAgAAAAABDAEMABcAIQAAJTUjFS4BIyIOAQ8BMzU+AjIWFyMVMzcHMjY0LgEGFBYzAQscEDAbHTQgAgEdAhgnLikLNU4SdRAWFiAVFRDASy8TFhsuHAUEFCIUFhMcEpAVIBUBFiAWAAACAAAAAAEHAQcABwALAAATFxUHIyc1NxcjFTP0ExO8EhK3srIBBxO8EhK8ExiyAAAFAAAAAAErASwAAQANAEEASQBZAAA3NRcnNxc3FwcXBycHJzcVMzcXBxUWFQczFSMxBg8BFwcnBw4BIiYvAQcnNycmJysBNTM1NDc1JzcXMzU0PgEyHgEHFTM1NCYiBhc1IwcGFRQeAjI+AjU0K1smDSgnDSYmDSgnDXQQJA0iDAEsLgYPASsNKQEOJCYkDgEpDCoBDwUBLiwLIw0kEhAdIh0Ra1kaJRp6mwEJDhkfIh8ZD4sBCSYMKCgNJiYNKSgNkAwkDSIBHh8OEh8ZASsMKQIPEhIQAigMKgEZHhIOIBwBIw0kDBEdEREdEQwMExoaMgEBGhwZLSERESEtGR0AAgAAAAABGgEHABQAHgAANzUyNjc2NSMnNTczFxUnNSMVMwcXMzcnBzUjFScHF0sREQICVQkJ9AkS4WsJLigvDR8THg4vExMFBQMFCrsKCq0TkakJLy8NH3l5Hw0vAAAAAwAAAAABGgDhAA0AEQAVAAAlBzUnIwcVFzM3NRc3NQcjNTMXJzU3AQs9CakJCakJPQ5dlpZLOTnTIygJCYQJCSYjCWttcF0fCiIAAAUAAAAAARoBBwANABcAIAApADIAADczFxUHIyc1NzM/ATMXBzM1Iy8BIw8BIxciBhQWPgE0JhcyFhQGLgE0NjciBhQWMjY0JslHCQn0CQlHEAc4B5PhQgcQMBAHQRwEBgYIBQVQEBYWIBUVEBchIS4hIfQKqAoKqAoQAwO5lgMQEAMTBQgGAQUIBRIWIBYBFSAWEiEuISEuIQAAAAMAAAAAAPQBGgAHAAsADwAAEzMXFQcjJzUXMzUjFzMVI1SWCgqWCRODgy8lJQEZCfQJCfTq4bwTAAAAAAMAAAAAAQcBGgAHAAsAFwAAEzMXFQcjJzUXMzUjFyMVIxUzFTM1MzUjHOEKCuEJE87OcBM4OBM4OAEZCeEJCeHYzyY4Ezg4EwAAAAADAAAAAAEaARoABwALABEAABMzFxUHIyc1FzM1IxczFQcjNRz0CQn0CRPh4ZYlcCYBGQn0CQn06uEmJXEmAAAAAwAAAAABGgEaAAcACwAUAAATMxcVByMnNRcVMzUHMjY0JiIGFBYc9AkJ9AkT4XEXISEuISEBGQn0CQn0CeHhqSEuISEuIQAABQAAAAABGgEaAAkADgAaAB4AJQAAEx8BFQcjJzU3MwczNScjFyMVMxUzNTM1IzUjBzMVIzcfARUHLwG2OAYTqRMTcXGpOHFLJSUTJiYTJV5eiysFEgE4ARQ4DqgTE+ES86g5SxMmJhMlgxPOKw27E844AAADAAAAAAEHARoAAwALAA8AADcVIzUnMxcVByMnNRczNSO8XkLhCgrhCRPOzqkTE3AJ4QkJ4djPAAMAAAAAARoBGgAHAAsAEgAAEzMXFQcjJzUXMzUjFzMVNycVIxz0CQn0CRPh4SU4Xl44ARkJ9AkJ9OrhhDhLSzgAAAAABAAAAAABBwEaAAkADgAaAB4AABMfARUHIyc1NzMHMzUnIxcjFTMVMzUzNSM1IwczFSPJOAUSqRMTcHCpOXBLJSUTJSUTJV1dARQ4DqgTE+ES86g5SxMmJhMlgxMAAAAABgAAAAABGgD0AAcACwAPABcAGwAfAAA/ATMXFQcjJzczNSM1MzUjNzMXFQcjJzUXMzUjNTM1IyYJXgkJXgkSS0tLS3peCQleCRNLS0tL6goKqAoKCXESExMKqAoKqJ8mJUsAAAEAAAAAAPcBCgAZAAATFRczNSM3PgEeAgYPARc3PgEuAgYPATVCCUIwEg0iIxkKCg1hDWIQDAwhLCwQDgEHQgkSEg0JCRkjIwxiDWERLCwhCwsRDScAAAADAAAAAAEaARoACQAMABAAABMjDwIXPwI1BzcXNyc3F/gbmwMsGk0FmuwdGxAhliEBGZoFTRosA5sbyzgbCiGWIQAAAAMAAAAAARoBGgANABEAGAAAJScjNScjBxUXMxUXMzcnNTMVFyM1Mzc1MwEZCY0JXgkJLwm8CfNLlqkcCYSyClQJCZcIVQkJZ3FxXUsIHQAAAwAAAAABBwCpAAgAEQAaAAA3FAYiJjQ2MhYXFAYiJjQ2MhYXFAYiJjQ2MhZLCxAKChALXgsQCwsQC14LEAsLEAuWCAsLEAsLCAgLCxALCwgICwsQCwsAAAIAAAAAARoBGgALABwAADczFSMVIzUjNTM1Mwc1MxUzNSM1MzUjNTMXFQcjSzg4Ezg4EzgT4XFxcXoJCfThEzg4Ezj9Z12DEyUTCs4JAAAAAwAAAAAA4gDhAAsAGAAhAAA3JwcnNyc3FzcXBxc3FA4BIi4BND4BMh4BBzQmIgYUFjI2rBYWERYWERYWERYWJBQjKCMUFCMoIxQTIS4hIS4hbxYWERYWERYWERYWFhQjFBQjKCMUFCMUFyEhLiEhAAMAAAAAARYBGwAVACgANAAAEx4BFxYVFAcOAQcGJy4DNzY3PgEXNjc2JzQmJyYnJgYHDgEWFx4BJzcXBxcHJwcnNyc3oRYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECYELQ0tLQ0tLQ0tLQ0BGQEUECk3KycSFwQJFgsiKi4VLhkMDPQJHyIlFyoQHQMBCQsYTkgTCgZ8Lw0vLw0vLw0vLw0AAAAABAAAAAABHQEaAC8AQwBQAFQAABMjBycHFwcVFwcXNxczJicjLwEHJzcvATU/ASc3Fz8BMx8BNxcHHwEVFhc1JzcnDwEyFhcGBy4BDgIWFwYHLgE+AR8BPgEeAg4CLgI2FxUzNbA0CiYmGi0tGiYmCicKCAYJDiYPGQYsLAYZDyYOCRYJDiYPGQYsCwgtGiYmJAwTBAkIAQsOCgEIBwYDDQ0EFQ4YDiMhFwUNHCIgFgYMCF4BGS0aJiYKNAomJhotCAssBhkPJg4JFgkOJg8ZBiwsBhkPJg4JBggKJwomJhowDgsDBgcIAQoOCwEICQUXGxIBNAwGDBwjIRYFDBsiIR4TEwAFAAAAAAEHAQcAAwAHABUAHAAgAAA3IxUzBzUjFSc3MxcVByMVByMnNTc7AhcVMzUjFyMVM6leXiYSExODExMmEoQSEiYTSxImg0uEhIMSJl5eqRMTgxMmEhKEEhJLgziEAAAAAgAAAAABGgDjAAgADAAANyc3FwcnNyM1JzMVI/UsDUNDDSy9JRMTqS0NREMNLRM4gwAAAAYAAAAAASwBLAAHAAsAFwAbAB8AIwAAEzczFxUHIyc3FTM1BTU3MxcVMxcVByMnNzUjFRcjFTsCNSOpE10TE10TE13+5xNeEl4TE84TcV5eXl4SXl4BGRMTXRMTXV1dqHATE14SXhMTcF5eEl5eAAAEAAAAAAEUARQAIAAmADcAOwAAEwYUHwEOAQcGHgE2Nz4BNxcGFBYyNxcWMjY0LwExJyYiHwEGIiY0NyIHFzYzMhYXHgE+AScuAgcXLgEcAwIzEhoFAQQHBwEFFxEWDh0pD0oDCAUCgGgDCGIsCRoSHxMRDwsKJTkJAQcHBAEHIzMaMAEbARACBwMzDSUWBAcCBAQUIAsXDikeD0oDBQcDgGgDdCwJExlRBRADLiMEBAIHBBsrGCwvExsAAAMAAAAAAREA6AAIABEAKAAANzIWFAYiJjQ2FyIGFBYyNjQmJzIeARcWDgEmJy4BIgYHDgEuATc+ApYVHR0qHR0VDRISGhISDRwzIwcBBAcHAQk5SjkJAQcHBAEHIzO7HSkeHikdEhMaEhIaEz4YKxsEBwIEBCMtLSMEBAIHBBsrGAAAAAP//wAAARoBGgAVADsARAAAEwcVNxc1MxUjBzUjFwczFRc3Mzc1Jwc+ATQuASIOARQWFw4BBwYPATM1ND4COwEyHgIdATMnJicuASciJjQ2MhYUBlQJCQqpIRgmAQEUECIiCQmYDhASHiMfERANDRYHBAEBEwoSGA0BDRgSChMBAQUGFjITGxsnGxsBGQkdAQEUXhgYCgkcByMJcQmxCR0jHhISHiMdCQYWEAsMEgoNFxMKChMXDQoTCwsQFg8bJxsbJxsAAAAACAAAAAABBwEaAAkADgAYAB0AJwAxADsAQAAAEx8BFQcjJzU3MwcVMzUnBxQzMjY1NCMiBhc0MhQiFzM1IzUHFTcVIwcjNTM1BzU3FTM3FDMyNjU0IyIGFzQyFCLGPgMKzgkJkYi8OGgZDQ4ZDQ4QFBQ8LQ8fEA8aLQ8QIA4UGg0NGQ0OEBQUARc+B7YJCfQJEuGoOUwlFBIlFBIaMgsMPQYNAy1qDC0DDQY9GCQTEyUUExoyAAAAAAUAAAAAAQcBGgAJAAwAEwAaACEAABMfARUHIyc1NzMHMycjFTM1Iyc1BzcnBxUXPwIXFQcnN8Y+AwrOCQmRBDg4hLxCCUoiDSkpDSQNKSkNIgEXPge2CQn0CUs54ZYJQo4jDSkNKQ1EDikNKQ0iAAAHAAAAAAEaARoAEQAUABwAJQApAC0ANgAAEzMVFzMVMzUvAiMHFRczNSM3FyMXIwcVFzM3NQcVJyMHJyMHNRc3FysBNTcXNzI2NCYiBhQWJnAJQhMDPgaRCQlCOIM4OGeWCQmWCRIfDRYoDQ1PDx0eXRMvJQQGBggFBQEHQgkTKQc+Agn0CRPhOTgJcQkJcQpLHhYoDCdQDxwbEy5BBgcGBgcGAAkAAAAAAQcBGgAOABEAGQAeACgALgA3AD8ASQAAJS8BIwcVMzUzFRczFTM1BzUXDwEVFzM3NScHFSM1MwcjFSM1MzIVFAYnIxUzMjQXNic0ByMVMzInNTM2FhQGJzcjFSM1MxUjFTMBBD4GkQkScQlCE0s4xQkJzgoKCby8lgYNFBUNCgUFCkIJAR4UFA0UBgcLCghNEg0hFBLZPgIJZ15CCRMpBDk5OAlxCQlxCV4SXTgTORMICxsRESYJDBwBOAsjAQsPCwELFjkLDgAAAAAEAAAAAAEaAQcAAwAhACsAMgAANzM1Izc1NzMfATMXFQcjJzUjJzU3Mx8BMxcVIzUjLwEjFRcnIxUzPwEzNSMHIxUzNSMHJhISEgpTCAhrCQnOChwJCVMICGsKE2cICERxCEQ7CAhxaBNBvGsIXksTCQkEDgqWCQkvCakKBQ4KLiUFDjgPDzkOBRM4S10OAAAEAAAAAAEaAQcACgASABwALAAANzMXFQcjJzU3Mx8BNTcjDwEjFTczNyMvASMVMzcXJzcXFQcnNyMOARcjNDY3kX8JCfQJCV4HhQF3EAZUZnoBegcQUFAQMRkOKSsNGxoPFQETHhf0CrsJCc4KA8wdZxADcZYTAxA5EEkaDSoNKg4ZARUOFiABAAAAAAUAAAAAAQcBGgARABQAHAAgACoAABMfARUHIzUzNSMnNSMVIzU3MwczJwcjBxUXMzc1ByM1MwcVIzUHJzcjNTPGPgMKQThCCXESCZEEODgdgwkJgwoTcHATEjINMSE4ARc+B7YJE5YJQktUCUs5XgqDCQmDeXAcOCExDTISAAAACwAAAAABBwEaAAoADgAjACcAKwAvADMANwA7AD8ASQAAEzMXFQ8BFQcjJzUXIxUzFTM1LwE1IxUHIxUjNSMnNSMVMzUzNRUzNScVIzU3MxUjNRUjNTczFSM1FSM1OwE1Ixc3NSMVHwEVMzUvzgoDEAq7CUsTE0sQAyYJCRMKCRMmExISExMSEhMTEhITExIScxA4DwMTARkJXgYRfwkJ9Akmu3YQB1QvChISCi/hEhMTExMTExMTJRISExMmExMTFhBRUQ8HenkAAAAAAwAAAAABBwEaAAkADwASAAAlLwEjBxUXMzc1ByM1MxUzJzUXAQE4DXETE6kTE6leSzg43DgFEuETE6io4UsSOTkAAAAEAAAAAAETASwADQAQABcAHQAAEyMHFSMHFRczNzUzNzUnFyMHIzUzFRczNyM1MxUz23ESORISlxI7EDgeHiaWORJLS5ZeOAEsEzgTvBISORKXHh7hu3ESE7s4AAEAAAAAARoBBwAHAAABFQcVIzUnNQEZXUteAQcgWWhoWSAAAAIAAAAAARoBBwAHAA8AAAEVBxUjNSc1FxUzNTc1IxUBGV1LXnAmXuEBByBZaGhZIHFeXlkFBQAAAgAAAAAA+wEaAC0AUwAANyc2JicmJwYHBhcWFwcuAjc1Njc2NzY/ATY3Njc2JzceAQc2PwEVFhcWBw4BJxcGFhceAQc+ATc2JicOAS8BNiYnBgcGDwEGBwYVMQYWFyY3NjerCgkDCxIEDgIDBgMKCxQfEQEBAwQJChAICQcKAwQGDR8bCQYEEQoGCwsJJTsQAQkJDQoEDBIFBQQIBhMKBgwJFAIRCQ8CFwkEARAPCgUGHBMOCxwJDxYTEQ4NCA4OBBglFAcJCQ0NDw4ICgsPDBEMDBZHJQcIAgEQEyUbFBp/Bw0ZCQkcDwQRCxEjEAkJAg0bOxYWGg0PAhQXDAoSHwoXFRwfAAAAAgAAAAABCwEaAAYADQAAAScHJwcXMzcnBycHFzMBCg1wcQ13DXcNcHENdw0BDA1wcA13Bg5xcQ53AAAAAgAAAAABDgEaAAYADQAANxc3FzcnIwcXNxc3JyMTDXBxDXYNeA1wcQ12DaENcXENeOgNcHANeAACAAAAAADuAQAABgANAAA3BycHFzM3BzcXNycjB+BKSwxRC1GjTUwMUwtS/0pKC1FRzkxMC1JSAAQAAP//AS4BBwAUAB4AKwAyAAA3MxcVJic1Iw8BIxUzFhcjJzU3Mx8BMzcjLwEjFTM3Fz4BHgIOAi4CNhc3JwcnBxeRfwkIC3YQBlVgAgRvCQleBwt6AXoHEFBQEDERKCQXAhIhKCQWAxI4LQ8nGAwg9ApUBwQbEANxCQkJzgoDNhMDEDkQQgwCESIoJBcCEiEoJFI7DDQTDhoAAAUAAAAAARoBBwASABwAIAAkACgAADczFxUjNSMPASMVMxUjJzU3Mx8BMzcjLwEjFTM3FzMVIzczFSM/ARcHkX8JEncQB1ReZwkJXgcLegF6BxBQUBAQExMmEhIlEiYR9ApBExADcRIJzgoDNhMDEDkQNXBwcGkHagYAAAADAAAAAAElAQcADQAZACAAADczPwEnIzUnIy8BIwcVNzMfATMVIw8BIw8BFyM3Mz8BMxzOCTIJFQpsEQZeCRNQEAdnVQYQRwkTvbofRQYQbSYGhAwuChADCs7FEAMlAxAHOTFeAxAAAAMAAAAAARoBBwAKABIAHAAAJSMvASMHFRczNzUHFSM1Mz8BMycjDwEjNTMfATMBEH8QB14JCfQJE+FVBhB3AXoGEFBQEAd69BADCs4JCbuVHXEDEBIDEDkQAwAABQAAAAABLAD0ABMAIwBAAEkAUwAANzMyHgEdARQOASsBIi4BPQE0PgEXIgYdARQWOwEyNj0BNCYjByIGHQEjIgYUFjsBFRQWMjY9ATMyNjQmKwE1NCYXFAYiJjQ2HgEHFAYiJj4BMhYVS5YUIxQUIxSWFCMUFCMUFyEhF5YXISEXegQFHAQGBgQcBQgGHAQFBQQcBokLEAsLEAsTCxALAQoQC/QUIxQ4FSIUFCIUORQjFBMhFzgYISEYOBchJQYEHAUIBhwEBQUEHAYIBRwEBhMICwsQCwEKQAgLCw8LCwgAAAAABAAAAAABGgEaAB8ANwBAAEkAADcnIw8BJwcXDwEVHwEHFzcfATM/ARc3Jz8BNS8BNycHJxc3FwcXFQcXBycHIycHJzcnNTcnNxc3FxQGIiY0NjIWBzI2NCYiBhQWqwoWCg0lERgDLS0FGA8lDwgWCg8lDxgFLC0GGA8lCAonJhstLRsmJwo0CiclGi0tGSYnCEAXHhYWHhcmCAsLEAsL2i0tBhgPJQ0KFgoPJQ8YBSstBRgPJQ8IFgoPJQ8YQy0ZJicINAonJRotLRkmJwg0CicmGy2DDxYWHhcXIgsQCwsQCwAABQAAAAABBwEaACIAJgA5AEwAUAAANyM2NSYnJi8BJiIGBwYHJicmIyIHBgcGDwEUFyMHFRczNzUHIzUzNSM1JjU3Njc2NzYyFxYXFhcWFTM0NzY3Njc2MhYXFh8BFAcVByMXIzUz/R4CBAMGCAUICQgDEQ0NEQwFCQgHBgMEAQIeCQnhCoRdXTgCAQIDAgcCDwQJBgQBAhMCAgQFCgMPCAUBAQICAjZeXl7hCA8LBQkDAgMBAgUUFAUDBQMJAwsDDggJqQkJqaCWEwQFCgMFAQQEAgIECAUDBQUFBQMFCAQCBAYBAwUKBQICqZYAAAAABQAAAAABGgEaABMAFgAmADAANAAANzMVFyMnNTczHwIVJic1Iyc1IxcnFRcVMxcVByMnNTczNTQ2MhYHBh0BMzU0LgEGBxUzNThLAlYJCZEGPgMIC0IJcbw4QRMJCXEJCRMWHxYzBSUGCgwlXiYSAQn0CQI+BzALBwgJQjk5OUsSCksJCUsKEhAWFgIGCBISBgkFAjc4OAACAAAAAADhASwADwAYAAATMxUeARQGBxUjNS4BNDY3FzI2NCYiBhQWjRIcJiYcEhwmJhwJFB0dKB0dASxMAyo6KgNMTAMqOioDex0oHR0oHQAAAAAEAAD//gEcARoAHwAqAEkAVQAANyc3FxUHJzcjBiY9AS4CPgEzMhcWFxYVFAYHFRQWMycWPgIuAQ4CFhcWFx4BBw4BLgI2NzY3NTQmKwEXByc1NxcHMzIWDwE+Ai4CDgIeAYsYDCgoDRgjExwOFAULFw8JCRIIAxUQEAw1CBQOAgoQEA0DB8gOCgwDCQgaHBQGCwwICRELIxgOKCgOGCMTHAEGBwwHAQkQEQwDBxA4GA0oDSgOGAEcE2gDFBwaEAMIEgkJERoDZwwRmwUCDhQPBwMNEBB7AwoMIQ4MCwYUHBoIBQJoDBAYDSgNKA0YGxSyAQgODg4GAwwREAoAAAAABAAAAAABBAEHAAMADQARABUAABMjFTMHJzcXNTMVNxcHJzMVIxcjFTOpExMQXg1OE00OXhATExMTEwEHE85dDk4bG04OXagSJhMAAAQAAAAAAQgBLQA0AD8ASgBXAAA3LgEHBgcGBy4BJzI3PgE1NCcmJyYjIg4BHgEXFQYHDgEeAj4BNTYuASc1FhcWFx4BPgE0Bx4BDgIuAT4CJyIuAT4CHgEOARcOAS4CPgIeAgb5DCEODAYBAR4qAwQEDRAEBxIJCg4XCwUUDgkICwsFFBwbDwEJEgsPFhMUBB0kGKgICgIOFA8HAw0QAwgOBwMNEBEKBA+NBQ4OCwYEDBEOCQMEmwwDCQgNBAQDKh4CBhcOCgkSBwQQGhwUA18CBQgbGxQGCxcPCRQPAi0VCwoBEhUDGyUyBA8UDgIKEBANA4IKDxEMAwcRFA17BQQDCQ4RDAMGCw0OAAAGAAD//gEaARoAIQAtADkASgBVAGEAADcGDwEVFhceARUUDgIjIi4BPgE3NS4CPgEzMh4CFRQHLgEiDgEeAj4CJxYyPgEuAg4CFhcWFxYVFA4BLgI2NzY3NTMXPgEuAQ4CHgE2JwcXNxc3JzcnBycHaQgNCAQEDRAHDRIJDxcLBRQODhQFCxcPCRINBxYEDRAOBwMNEBAJASwHEA0IAQkQEQwDB8gOCg4QGhwUBgsMBwoSCwcCChARDAMGEBQdHw0fIA0fHw0gHw3QDAYCXgECBRgOChEOBxAaHBQDXwMUHBoQBw0SCQ+fBwgKDxEMAwYOD54FCA4QDQcEDBAQewMKDhMOGAsGFBwaCAUCQ4UHFBAGAwwRDwsC2B8OICAOHyANHx8NAAAAAAUAAAAAASwBGgAdACoANgBKAFYAADcGDwEVFhcWFRQHDgEiLgE+ATc1LgI+ATM2FgcUBy4BIyIGFx4CPgInFjI+AS4CDgIWFyM1NCYrARcHJzU3FwczMhYXFgcVIzUjNTM1MxUzFSNpCA0IEwoIAwYYHRcLBRQODhQFCxcPEx0BFgQNCA0RAwENEBAJASwHEA0IAQkQEQwDB8gSEQsjGA4oKA4YIw4YBQQBEzg4Ezg40AwGAl4EEAwOCgkNEBAaHBQDXwMUHBoQARwUD58HCBUNCAwDBg4PngUIDhANBwQMEBAvHAwQGA0oDSgNGBANCQnFOBM4OBMABwAAAAABGwEaACAALAA4AEEASgBTAFwAADc+ATU0LgIjIg4BHgEXFQ4CHgEzMj4CNTQmJyYnNRceAQ4CLgI+ATInIi4BPgIeAg4BFxQGIiY0NjIWBzI2NCYiBhQWJxQWMjY0JiIGNRQWMjY0JiIGVA0QBw0SCQ8XCwUUDg4UBQsXDwkSDQcQDQQEBQYIAQkQEA0DBw4QCAgOBwMMERAJAQgN0BsnGxsnGy8MEREXEREHCw8LCw8LCw8LCw8LvgYXDwkSDQcQGhwUA18DFBwaEAcOEQoOGAUCAV51BA4PDgYDDBEPCoMKEBAMBAcNEA4InxQbGyccHC8QGBAQGBCICAsLDwsLSAcLCw8LCwAAAAAE//8AAAEHARoADwAbAB8ANQAANxUXMzc1LwIjFTMXFSM1NyM1IxUjFTMVMzUzBzMVIzcHJzcjIgYUFjsBFSMiJjQ2OwEnNxc4E6kSBTgOJSU5qYMlEyUlEyVdXV0TKA0YOAwQEAwJCRQbGxQ4GA0ocUsTE6gOOAUSOahLSyUlEyYmSxOZKA0YEBgQExsnHBgNKAAABAAAAAABGgEaABEAFgAiAC4AACUvASMHFRczJicjNTMXFRYXNQcjFTM0JzM1MxUzFSMVIzUjFyIOAR4CPgE1NCYBATgOcBMTZAkGVXA5CghuJyUlJRMlJRMlcBEcDQYYIh8TIdw4BRLhEwgK4jk6AwVCcBMKZyUlEyYmJhMfIhgGDRwRFyEAAAUAAP/+ARoBGgAdACoANgBXAGMAADcGDwEVFhcWFRQHDgEiLgE+ATc1LgI+ATM2FgcUBy4BIyIGFx4CPgInFjI+AS4CDgIWFxYXFhUUDgEuAjY3Njc1NCYrARcHJzU3FwczMhYXFgcXPgEuAQ4CHgI2aQgNCBMKCAMGGB0XCwUUDg4UBQsXDxMdARYEDQgNEQMBDRAQCQEsBxANCAEJEBEMAwfIDgoOEBocFAYLDAgJEQsjGA4oKA4YIw4YBQQBCwcCChARDAMGCw0O0AwGAl4EEAwOCgkNEBAaHBQDXwMUHBoQARwUD58HCBUNCAwDBg4PngUIDhANBwQMEBB7AwoOEw4YCwYUHBoIBQJoDBAYDSgNKA0YEA0JCaoHFBAGAwwRDgkDBAAABQAAAAABBwEOAAkAFwAhACUAKQAANxUzNRc3JyMHFw8BFRczNzUnIw4BIiYnFzMVIzUzHgEyNiczFSMVMxUjgxMyDUINQg42CQnhCgpCBBohGgNpLM4rCCAnID0TExMT8CIiMg5BQQ47CV4JCV4JEBUVEBJLSxEVFVwTExMAAAADAAAAAAEHAQ4ACQAXACEAADcVMzUXNycjBxcPARUXMzc1JyMOASImJxczFSM1Mx4BMjaDEzINQg1CDjYJCeEKCkIEGiEaA2kszisIICcg8G1tMg5BQQ47CV4JCV4JEBUVEBJLSxEVFQAAAAADAAAAAAEHARoACQAXACEAADc1MxU3FwcjJzcPARUXMzc1JyMOASImJxczFSM1Mx4BMjaDEzINQg1CDjYJCeEKCkIEGiEaA2kszisIICcgrWxsMQ1CQg1bCV4JCV4JEBUVEBJLSxEVFQAAAAAFAAAAAAEaARoADAAYAB8AIwAnAAA3MxcjJzU3MxcVJzUjFwczNycjNycjDwEXNzMHMwc3IycjNTMHIzUzOTANRgoK4QkTzmgbKmkNHw8PNhErESs2I0JsHzMKNj8aJS5xEwmpCQlaITCpQWwgGx0LXhpwOG1IOBM5EwAAAQAAAAABGAEhAGwAACUWFRQHBgcWHQEUBiImPQE2Jic3Njc2NzY1NC8BNicGDwEmBycmIwYXBw4BFRQXFhcWHwEGFxUWBiImPQEGJyYnJi8BLgEnLgE+ARcWFxYfARYXFjc1JjcmJyY1NDcmPwE2FxYXNhc2NzYfARYBBxEXEiAGBQcFAQUFBRYNEQkLEAIHBhETBykpBxoLBgcDCAkLCBINFgULAQEGBwYRDQsJBQgBBQcDAgMCBgMHBwMHAQoIDRUCByARGREFCQYEChAVKSoUEAsEBgnqFBstGBEFChEuBAUFBC4IDQYOAwYHDxIdFhEKEBIEDQILCwIQExAJCBUKHREPCAYDDwoPLwQGBgQaBAQDCAQLAQYGAQEGBgQCAQUDCAINBAcFBA4NBhEYKxwUGhUEAgEDDQoKDQQCAgUZAAAAAf//AAABLQEsAFQAABMiDgEVFB4BFzI2PQEGJyYnJi8BLgEvASY3NjMxHgEfARYXFjc2NyYnJjU0NzEmNzMyFxYXNjMyFzY3NhcxFg8BFhUUBwYHHgEdARQWMz4CNTQuAZYpRSgaLh4FBQ4LCQcEAwMCCAMDCQQCBAYLAwMJDgoKAQgeEBYQBwkEBggKDQ8XERQSDQcDCAUBEBYPHwQGBQUeLxkpRQEsKEUpIDoqCgQEGQMDAgUEBQQICgMBBgMBAQcEBA8BAQQMCAQNEycXERMUAwQJBQUMAwIBExQBERcnEg0EAw4KKQQECis6HylFKAAAAAMAAAAAAQcBBwALABMAFwAANzM1MzUjNSMVIxUzJzMXFQcjJzUXMzUjcRJxcRI5OULOCgrOCRK8vDhxEjk5El4KzgkJzsW8AAIAAAAAAS0BLAAMAGoAABMiDgEUHgEyPgE0LgEDIyImPQE0Jic+Ajc2NTQmJz4BNCYnIyIGDwImBy8BLgErAQ4BFBYXDgEVFBceAhcOAQcOASYvAi4BIwcGFB8BFh8BHgE3MzcVFAYrAS4CPgIyHgIOAQeWKUUoKEVSRSgoRQECAgQEBQ0XEAMEBwYBAQICAgUIBAkHICAHCQQJBAMBAgEBBgcEAxAWDQMEAQcPCwQEBAMGAwUBAggCAgYDEQoGBwQDAR0sEwokNz43JAoTLB0BLChFUkUoKEVSRSj+8AMDIwcNBAEJEAsNDgkSBwQHCQkFAgIFBAkJBAUCAgUJCQcEBxIJDg0LEAkBAwkFAwEIBwQFAQMBAQICBgICCwkKAQEWAwMJLDo+MhwcMj46LAkAAAAACgAAAAABGgEaAAwAEgAeACoAMQA3AEEASABNAFMAABMyHgEUDgEiLgE0PgEXLgEnFh8BNjUmJyMWFRQHMzYnNTY0JyMGFRQXMzYnJicrAQYHIzY3DgEPAQYUFzMmNTQ3IxcjHgEXJicXNjcjFjcGBz4BN58hOCEhOEI4ISE4fQkeEgwGMgEBAywBBC8CQQECSAEEQwIDBxAKCREGFAUNEx0JCAQELwQBLDQsCiYXEgkvEgo3CUIJEhclCwEZIThCOCAgOEI4IUsSGgYXGzgFBA8NCggTEwkKAQkSCQkJExMKQR4aGh4bGAcaEhIOHQ4TEwgKShYcBRkdMRYbGxweGQUcFgADAAAAAAEsARoAFgAnACoAAD8BNScHFyMiBhQWOwE1IyIuATY7AQcXNyMnMx8CFQcjJzUXFTM1IzcVM3EmKA0YOBQbGxQJCQwQAREMOBgNXzITWA05BROoExOoSxM4vScNKA0YHCcbExAYEBgNSxIFOA6oExOMEHyWSzkAAwAAAAABDwEaAAMAGgAwAAA3Bxc3Jx4BMj4BNC4BIyIHFzMyHgEUDgEiJic3Byc3IyIGFBY7ARUjIiY0NjsBJzcXWkcORx0NMTovHBwvHAwMEQcXJxYWJy0lCzYoDRg4DBAQDAkJFBsbFDgYDShuRQ1FIhkfHC84MBsCERYnLicWFBFhKA0YEBgQExsnHBgNKAAAAAIAAAAAARoAvAADAAcAACUhFSEVIRUhARn++gEG/voBBrwTJhIAAAAHAAAAAAEaAQ8ACQARABUAHQAhACkALQAANxcHJzU3FwczFQc1NzMXFQcjNzUjFTc1NzMXFQcjNzUjFTcVFzM3NScjFxUjNSgQCyAgCw/wzgkmCQkmHRM4CSYJCSYdEzgJJgkJJh0T4RELHwwfDA8TxqsICKsIEZmZHYUICIUJEXV1fWAICGAIEFBQAAIAAAAAASABLAAGABMAACUVIyc1MxU3ByMnByc3Mxc3MxcHARn9CRPOYQ0fRA5LDh9gDSYNOBIJ/fS4YR9EDUsfYSYNAAAAAAYAAAAAARoBLAAGAAoADgASABYAGgAAJRUjJzUzFTczFSM3MxUjBzMVIwczFSM3MxUjARn9CRM4JSWDJiZLJiY4JSWDJiY4Egn99M8mOCUmJSYlOCUAAAAHAAAAAAEaASwABgAOABIAGgAeACYAKgAANzM1IzUjFTc1NzMXFQcjNzUjFTcVFzM3NScjFxUjNQc1NzMXFQcjNzUjFRz98xMlCiUKCiUcE4MKJQoKJRwTXgolCgolHBMmEvT9JZYKCpYJE4ODsrwJCbwJEqmps3EJCXEJE15eAAYAAAAAAM8A9AADAAcACwAPABMAFwAANzMVIxUzFSMVMxUjNzMVIxUzFSMVMxUjXiUlJSUlJUslJSUlJSX0JiUmJSa8JiUmJSYAAAALAAAAAAEHARoACQARABUAHQAhACkALQA1ADkAPQBBAAATMxUjFTMVIyc1FyMnNTczFxUnMzUjFyMnNTczFxUnMzUjByMnNTczFxUnMzUjFyMnNTczFxUnMzUrAhUzNSMVMxwmHBwmCXomCQkmCSUSEow4CQk4CjkmJkEmCQkmCSUSEow4CQk4CjkmJhImJiYmARkS4RMJ9GcJJgkJJgoSJQk4Cgo4CiWWCSYJCSYKEzkKOAkJOAkmE3ASAAEAAAAAARoBBwAcAAAlLgEnLgEiBg8BJy4BIgYHDgIUHgEfATc+AjQBFwIJBwoaGxkKDQ0KGRsaCgcJBAQJB29vBwkE0gkRBgoKCgkNDQkKCgoHEBISEhAHbm4HEBISAAIAAAAAARoBBwAdAD0AACUuAScuASIGDwEnLgEiBgcGBwYUHgEfATc2NzY1NAcGDwEnLgI0PgE3Njc2FxYfATc2NzYXFhcWFxYVFAcBFwIJBwoaGxkKDQ0KGRsaCg0FAgQJB29vBwQJFQMKYWIFBwMDBwUHChMUCQcaGQcKExQJBwUDBwHSCREGCgsLCQ0NCQsLCg0TCRISEAZvbwYIEBMJFQ0KYWEFDAwODQsFBwQICAMIGRkHBAgIBAcFBgsOBwYAAAACAAAAAAEdARsAHgAlAAA3PgEmJy4BDgEHNSMVFzM1Iz4BHgEOAiYnBx4CNic3JzUjFRf9Eg0MEhM8QTgQEwlCKRNISi4CMUtGEhAPOEI+Kw42EwNFFzk5FxocBCEcLUIJEiIdFT5NPBIhIgkdJgYbLA02R0sHAAACAAAAAAEUARMAEQAcAAATFwcnFQcjJzUjFQcjJzUHJzcHFTM1NzMXFTM1J513DRMKOAkmCTgKEg53RCYJOAolSwESbA4RegkJQkIJCXoRDmxYgkIJCUKCRAAAAAQAAAAAAPQA4gALACAALAAwAAA3MzUjFSM1IxUzNTMXMyc2NzY3NjQuAScmJyYrARUzNTM3BisBNTMyFhUUBwYXIxUzeQ8PMRAQMWoRGAMECAMCAwUEBgcEAy4PHAkDAiAgBgoBAxe8vHFwMTFwMDAxAQMGCQULCgcDBQIBcC4QASQKCAUDB2YTAAAABQAAAAABBwEaACQALgA7AD8AQwAANzMXFTMXFQcjFQcjByc1Iyc1Iyc1NzM1NzM1LgE1NDYyFhUGBxc1IxUXMxU/ATMnBgcxBiYnBx4BMjY3JyMVMzczFSOfSwkKCgoKCTovEC8KCQkJCQpLBAYLEAsBCUKWLwkiBzUoCw4NGAkNChkcGQlMExM4ExPhCSYKEgk5CTQHLQw2CRIKKAcVAwgGBwsLBwsFYThuAikmAy4KAwMICQ4JCwsJMxMTEwAAAwAAAAABGgEaAAkAEwAdAAA3Mzc1LwEjDwEVNyM1Mx8BMz8BMycjDwEjLwEjNzMc9Ak0CI0JNPThLw4IVggNMQE1CQxLDgg1MX8mCVSQBgaLWQk4FwUFFxMFFxcFhAAAAQAAAAAA9ADPABEAADcVFBY7ASc3FxUHJzcjIiY9AUsFBIEeDTAwDR6BCxHOJQQFHg4wCy8NHhAMJQAABAAAAAABGQEbABMAJwArAC8AABMeARceAQYHDgEmJy4DPgMXPgE3PgEmJy4BBgcOAR4BFx4BNyczNSMXFSM1oRYpDxgSDBUTNzwbFB4RAg0aJisgEiEMEgsQFBIxMxUZGgMfGhEmEh8YGBgYARkDExAYPkAaGBkCDgsiKi0sJBoL8wQUDxY3NRUSEQcOETU7Mg4JBgSUEiVLSwAABQAAAAABGgEaAAcACwATABcAHQAAARcVByMnNTcXIxUzFRcVByMnNTcXIxUzJxcHFzcnAQcSEpYTE5aWlhISlhMTlpaW9B4eDSsrARkSSxMTSxISSzkSSxMTSxISS44eHg0rKwAAAAADAAAAAAEnAQcADAAQABQAAD8BMxcVIzUjFTMVIycFJxU3BzUXIxMT4RIS4V1dEwEUfjMgPSX0ExNxcZYTEyB+sTMGVj4AAAAJAAAAAAEHARoABwANABUAGwAkACoAMgA4AEEAADcXNjQnBxYUJzcmJwcWJzcmIgcXNjIHJwYHFzYHNDcXBhYXByYXBxYXNyYXBx4BNycGIjcXNjcnBicyNjQmIgYUFu8SBgYSBQsQEiMJHiwFEicSBg8hPwkjEhEPLQYSBgEFEgYeERIjCR4tBhInEgUQIT8JIxIQEEwHCwsPCwt/BRInEgYPIT8JIxIRDxUSBgYSBgwREiMJHk0UEgYPIRAFEhsJIxIQEBYSBQEGEgULEBIjCR46Cw8LCw8LAAAAAwAAAAABIwEbABUAMAA5AAA3By8BNxc+Ax4DFyMuAgYHNx8BBycOAy4DJzM1FB4DPgI3Byc3JxQWMjY0JiIGYz0NGREPCBskKCklHBABEgQySD4MLK0ZEQ8IGyQpKSQcEAITDBgfJCMgFwcrBz1/CxALCxALwhkFPAckEx8UCAYUHiYUJDQJJyISQz0IJRMfFAgHFB4mFQkSIhwSBgYSHBESEhkKCAsLDwsLAAMAAAAAAQcBGgANABsAJAAAEyIOAR4CPgEnNi4CByIuAT4CHgEVFA4CJxQWMjY0JiIGjSU+HA41SEQqAQETIi0YIDQYDSw9OiMQHSYnCw8LCw8LARkpREk0Dhw9JRksIxLhIzo9LA0YNCAUJh0QZwcLCw8LCwAAAAEAAAAAAOABBwAcAAA3ByM3Mjc2NzY/ATY1NC4BIzczByYOAQ8BBhQeAakCXAIOBQcDBgYmBQQJDAJWAgoNCAYmBgQJLQYGAgMFCBSHEAkEBwIHBwEGDBWHEwkGAwAAAAIAAAAAARoBBwAbADEAADcjJzUjLwE/ARceARcWFxY3Nj8DHwEPASMVJzM1NzM3JwcGBw4BIiYnJi8BBxczF9+TCRsJDAZQDAEFAgUGDg0GBQUEDFAGDAkbk4AJHQg/AwMDCBQVEwcEAwNACRwKIQp9BzILGwYFBwIFAwUGAgUFCQYbCzIHfQl9CSMVBAUDCAgICAMFBBUjCQAAAAIAAAAAAQcBBwBGAI0AADc1IyIOAQcxBgcxBhcVFAcxBgcGKwEVMzIXFRYXFRYXMRYdAQYXFRYXMR4CFzM1IyIuAj0BNCYnJic2Nz4BPQE0Njc2MxcVMzI+ATcxNjcxNic1NDcxNjc2OwE1IyInNSYnNSYnMSY9ATYnNSYnMS4CByMVMzIeAh0BFBYXFhcGBw4BHQEUBgcGI3ECCREMAwMBAQECBAoFBgEBBgUFAwQCAgEBAQMDDRAJAgIGCgcEAgIFCQkFAgIJBwUGTQEJEA0DAwEBAQIECgUGAgIGBQUDBAICAQEBAwMNEAkBAQYKBwQCAgUJCQUCAgkHBQb0EwcNCAgICAgQBgUKBQISAgECAwEDBQUGEAgIAQcICA0GARMECAoGGQYMBQsHBwsFDAYZCQ0EArwSBg0IBwkICBAGBQoFAhICAQIDAQMFBQYQCAgBBwgIDQcBEgQICgYZBgwFCwcHCwUMBhkJDQQCAAAAAwAAAAAAqgEHAAsAFAAdAAA3HgE+AiYnJg4BFjciJjQ2MhYUBiciJjQ2MhYUBowECgkFAQQFBg8IAhEICwsQCwsICAsLEAsLKQMBBQgKCQMEAw0PVgsQCwsQC14LEAsLEAsAAAMAAAAAARwBHAAcADkARQAAEx4CBw4BIyInDwEjFQcjFQcjJzU/ASY1ND4CFzY3MTYuAgcOARUGFw8BFTM1NzM1NzM/ARYzMjc+AS4CBgcGHgE21RcjDAQGLx4NCw8HEwkcCjgJAl4EER0lLBIFAwkYIBEWHgEFAl4lCR0JFxEKDAwXAwMBBQgLCQIEAw0OARgFICsWHSYEEgMcChwJCSsHXQ0OEiMXCYoOFxEgGAkDBSQXDQwKXx4dCRwJEwMEQgQKCQYBBQQHDwgDAAYAAAAAARoBGgAvADYAOQA9AEAARwAAJSczNSM1IxUjFTMHIxUzHgEyNjczNSMnMxUjDwEXMzcvASM1MwcjFTMeATI2NzM1BwYiJiczBicjNx8BIz8BFyMXBiImJzMGARIeE14TXhMeBwIFGB4ZBQIIHzolCCUHqQclCCU6HwgCBRgfGAUCtwYPDAQvBAEmE3YXgxd2EyYgBg8MBC8EqUsTEhITSxMOEhIOE0uWBC8PDy8ElksTDhISDhMdAwcGBhktixwcii0cBAgGBgAAAAAGAAD//QEtARgABwALABcAHwAsADMAABMjBxUXMzc1BzcXDwEnMxc3MwcjIgYPARcHJyMXMzcmNzYXMhYVFA4BLgI2FzcnBycHF5kKb28Kc9ZeYWEFbSFRVCIPBxknCBMQFVEhbQoUBCsPERchEx8iGAcNLiIPHBAMGAEYTBBKShAIQUE/Qko3NwodFg0ODjdKDQk9CgEgGBEcDQYZISA/LQslDg8TAAAFAAAAAAEsARgABwALABcAHwAoAAATIwcVFzM3NQc3Fw8BJzMXNzMHIyIGDwEXBycjFzM3JjcUFjI2NCYiBpkKb28Kc9ZeYWEFbSFRVCIPBxknCBMQFVEhbQoUBBMgLyEhLyABGEwQSkoQCEFBP0JKNzcKHRYNDg43Sg0JDhchIS8hIQAEAAAAAAEMARgABwALABIAGQAAEzMXFQcjJzU3Bxc3BxczNyMHJxcnMxc3MwePCnNzCm90Xl5h020KcSJUUUxtIVFUInEBGEwQSkoQOUE/PzdKSjc3eUo3N0oAAAIAAAAAARoBGgAHAAsAABMHFRczNzUnFSM1MyYTE+ESEry8ARkS4RMT4RLz4QAAAAIAAAAAARoBGgAHAAsAABMHFRczNzUnBzUzFSYTE+ESEuG7ARkS4RMT4RLz4eEAAAMAAAAAARoBGgAHAAsADwAAEwcVFzM3NScHNTMVMzUzFSYTE+ESEuFLS0sBGRLhExPhEvPh4eHhAAAAAAUAAAAAARoBGgAHAAsADwATABcAABM3MxcVByMnNxUzNQczFSM3MxUjNyMVMxMT4RIS4RMT4c8mJjklJV0lJQEGExPhEhLh4eESExMTExMABAAAAAABGgEaAAcACwAPABMAABMHFRczNzUnBzUzFTc1MxU3MxUjJhMT4RIS4SUTcBMmJgEZEuETE+ES8+HhS5aWluEAAAAABAAAAAABGgEaAAcACwAPABMAABMHFRczNzUnBzUzFTM1MxUzNTMVJhMT4RIS4SUTcBMmARkS4RMT4RKolpaWlpaWAAADAAAAAAEaARoABwALAA8AABM3MxcVByMnNxUzNTMVMzUTE+ESEuETE5YSOQEHEhLhExPhlpbh4QAAAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFQczFSMmExPhEhLh4eHh4QEZE+ESEuETqZaWEjkAAAADAAAAAAEaARoABwALAA8AABM3MxcVByMnNxUzNTMVMzUTE+ESEuETEzgTlgEHEhLhExPh4eGWlgAAAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLh4QEZEuETE+ESqJaWAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFTM1MxUmExPhEhLhSxKEARkT4RIS4RP04eHh4QAAAAACAAAAAAEaARoABwALAAATBxUXMzc1JxUjNTMmExPhEhKEhAEZEuETE+ES8+EAAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFTM1MxUmExPhEhLhgxNLARkT4RIS4RP04eHh4QAAAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLhgwEZEuETE+ES8+HhAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLh4QEZE+ESEuET4c7OAAAGAAAAAAEaAQcABwALABMAFwAfACMAABMHFRczNzUnBzUzFT8BMxcVByMnNxUzNQc3MxcVByMnNxUzNTgSEksTE0tLORI5EhI5EhI5SxI5EhI5EhI5AQcTvBISvBPPvLy8ExM4ExM4ODiDEhI5EhI5OTkAAAYAAAAAASgBBwAHAAsAEwAXAB8AIwAAPwEzFxUHIyc3FTM1Fz8BHwEPAS8BFzcvATczFxUHIyc3FTM1XgkmCQkmCRMSKQYjDEYFIwwyQBJBvwkmCQkmCRMS/QoKzgkJxby8BwwNBcIMDQXAsAawDAoKzgkJxby8AAMAAAAAARoBGgAIABIANwAANyIGFBYyNjQmFycHNyczNxczBycOAQcjFRQWOwEWFyMGJj0BNCYnLgE1NDc+AzMyHgEVFAcG4RchIS4hIQIZGAkWGwoKHBcfEh0HIwMDGgMFIgoPCgkMDgwFEBMVDBcnFwcEgyEuISEuIV0SEhwQHx8QUgMYEikCBAoIAQ8KHg0YCQsfERcTCg8LBhYnFxIOCQAAAwAAAAABHQEaADsAWABsAAA3Njc2PwE2NzY1NC4EIg4EBx4BFx4BHQEUHgI7ATI+AjUnIyYnFRQGKwEiJj0BMz4BMzcyFzY3Njc2MzAxJyYnJicmJwYHBgcGDwEXFhcWFxYXNjc2MhcWFxYUBwYHBiInJicmNKgFCAYEAgIHBQYLEBMVGBUTDwsGAQENDAoKAwcJBR4FCQcEAQIJBwMDHgIEJQMLBwIEMwYOCw0HBQcICAsICgQFCggLBwkHBwkHCwgKHwkGAgcCBgkCAgkGAgcCBgkCeAoIBQYHCAUNDwwVEw8LBgYLDxMVDBIdDAoXDR4FCQcDAwcJBQgBBg8CBAQCKQYIAVAYDwoFAgEBBQYKDhMTDgoGBQEBAQIEBgsNBQYJAgIJBgIGAgYJAwMJBgIGAAACAAAAAAD1ARoAIQArAAA3DgEdARQGBwYnIwYmPQE0JicuATU0Nz4DMzIeARUUBgcjFRQWOwEyNjXbCQsIBwQFHgsOCgkMDgwFDxMWDBcnFg0zKQMDHgIDigkYDR4HDQMCAQEPCh4NGAkLHxEXEwoPCwYWJxcSHi4pAgQDAwAAAAIAAAAAARoBGgAMABYAABMzFSMVMzUzFQcjJzUhFSM1Byc3IzUzHFVL4RIJ9AkBBhJ/DX5jegEZEuFLVQkJ9Hpjfg1/EgAAAAIAAAAAARoA9AAkAEkAADczMh4BHQEUDgErATUzMjY9ATQmKwEiBh0BHgEXFS4BPQE0PgEXNR4BHQEUDgErASIuAT0BND4BOwEVIyIGHQEUFjsBMjY3NS4BUzkSHRERHRIJCRMaGhM5ExsBFRAYIBEdoBggER0ROhIdEREdEgkJExoaEzoSGgEBFfQRHhEEER0SExsSBBMaGhMEEBkDEwMkGAQRHhFMEwMkGAQRHhERHhEEER0REhsSBBMaGhMEEBkAAAADAAAAAAEHAPQAAwAHAAsAADc1MxUnMxUjNxUjNXFLcZaWvOFLExNeE14TEwAAAAAEAAAAAAEHAPQAAwAHAAsADwAANzMVIxUzFSM1MxUjNTMVIyaoqJaW4eHOzoMSJhOEE0sTAAAAAAYAAAAAARoBBwAGAAoADgASADMAawAAEzczFSM1BzczFSMVMxUjFyMVMyc/ATY0JyYnJiIHBgcGBxUzNTQ/ATIzFxUWDwIVMzUjFzIXFhUUBwYHBiIuAS8BJicxMxUXFjM/Ai8BKwE1NzM/ASc0Jg8BBh0BIzU0Nz4CMh4CFAcrBw0NBzO7u7u7u7u70wEBAwECBwUIBQYCAQEQAQEBAgEBAQITJRELAgEDAQIHBQgFBAICAQEQAQIBAQEBAQEBBAQBAQEBAwEBAQ8DAQQGBwYGBAMBAAc5KgYCEzgTOBNSAQEFCAQHAgICAgcDAwEBAQIBAgEDAwMVCw06AgQGAwMHAgICAwIEAwQCAgEBAgIDAgwBAQMCAQEBAQECAQEGBQIDAgIDBwkEAAAAAAMAAAAAARoA9AADAAcACwAANzUzFSchFSE3FSM1E6mpAQb++s7OSxMTXhNeExMAAAUAAAAAAQcA9AADAAcACwAPABMAADczFSMVMxUjNTMVIyczFSM7ARUjS6mpg4O8vDjOzjgTE4MSJhOEE0sTqQAIAAAAAAEaAPQAAwAHAAsADwATABcAGwAfAAA3IxUzFSMVMwczFSMXIxUzNzMVIxcjFTMHMxUjFyMVMyYTExMTExMTExMTJc7Ozs7Ozs7Ozs7O9BMlEyYSJhO8EyUTJhImEwAABAAAAAABIwEgABYAJwAzAD8AABM3FxUHJzUjIgcGBwYHJyY3PgMXMxcVNycVIyYGBwYHNjc2NzYzBz4BHgIGBwYuATYXHgE+AiYnJg4BFqwSZGQSCB8PFhQVFxMBBAQZKDAaDRZHRiQYLhEVCRQUEhYPHEIMHRoQAg0MEysZCR4HERAJAggHDBoPBgEXCVARTAkjAwQNDx4GDg4ZLCARAUEjNjghARERFh0TCggDAkoJAg0YHRsHDAkkLDsFAggPERAECAYWGgABAAAAAAEYARoADwAAJS4CIg4BByM+AjIeARcBBQUfMDYwHwUTBSU4QDglBakaKxgYKxogMx0dMyAAAAAEAAAAAADiARAAEAAeACcAMwAANy4BIzEiDgIfATM3Nic0Jic7AR4BFxQPAScmNT4BFyYOAR4BPgEmJz4BHgIGBwYuATbLChwPFSIUAQw7CjsMAQtBAQIWIAEJMDAJASAiBhAIAw0PCQMmCBUSCwEJCQweEQX6CgwVIioSd3cSFg8bDgEhFxANYWENEBchKAUDDQ8JAw0PFAYCCREVEgUIBhkeAAMAAAAAAPQBBwAHAAsAGwAAPwEzFxUHIyc3FTM1JzU0JiIGHQEzNTQ2MhYdATgTlhMTlhMTlhMhLiETFSAVlhMTXhISXl5eEyUYISEYJSUQFhYQJQAAAAADAAAAAAEHARoAEQAZAB0AADcjNTQuASIOAR0BIwcVFzM3NSc0PgEWHQEjFyM1M/QTFCMoIxQTEhK8E6khLiFwlry8qSUVIhQUIhUlE3ATE3A4GCABIRglg3AAAAQAAAAAARoBEAAWABoAHgAwAAATIg4BHQEXMzc1NDYyFh0BFzM3NTQuAQcjNTMXIzUzJzU0JiIGBxUjNTQ+ATIeAR0BliQ8IxM4ExYeFxI5EiM8XDg4qTk5OSAuIQE4HjQ8NB8BECM8JF4TE14PFhYPXhMTXiQ8I+E4ODgTExggHxYWEx40Hh40HhMAAwAAAAABGgEPAAcADAAUAAATIwcVFzM3NScXByMnFyM1HwEzPwGbCn4J9AmDahqgGNnhFAioCBUBD0uVCQmVOD8dHYVyGgMDGgAAAAMAAAAAARoA9AAHAA0AEAAAPwEzFxUHIyc3FTM1ByM3IxcTCfQJCfQJE+FrDGS8XuoKCqgKCpWMjFJcSQAAAAADAAAAAAEHAPQAAwAHAAsAADcVNzUXNScVFzU3FSZBSzhLQsWNKY2wjSONI40pjQADAAAAAAD0AQcAAwAHAAsAABMzByMXIyczFyMHM2eNKY2wjSONI40pjQEHQks4S0EAAAAABAAAAAAA/AEQAAMABwAVABkAADczByMVMxcjPwEnIw8BFRcHFzM/ATUHMwcjbHcjd3cjd2QsCI0ILywsCI0IL5B3I3f9OBM4QkYOBUsJRkcOBUsJDjgAAAQAAAAAARAA/AADAAcAFQAZAAA3FTc1MxUXNQ8BJzU/ATMXNxcVDwEjNxU3NS84EzhBRw4FSwlHRg4FSwkOOMB3I3d3I3dkLAiNCC8sLAiNCC+QdyN3AAACAAAAAAEaAM8AEAAXAAA3MxUjNwcjJxQVFyM1MxcWFzc1IxUjFzd3JxsBIRchARkoDw4BnCUkNzbOemNjYwcvLXorKwQWQkI2NgAAAwAAAAABGgDuAA8AFwAbAAA/ARcVBycOAi4CNy8BNRcGFRQeATY3Jxc1BybnDAxyAw8VFg8GAyYIQAELEA4CWNfXrUAKoQoeCw8GBRAVCwoKJD0CAgkMAggILDmKPQAAAgAAAAAA7gD1ADgAQgAANwYnBi4CNzQ+AjMyFxYVFAYjIjUOASMiJjQ+ATM2Fhc3MwcGFjMyNjU0JiMiDgEVBh4CNxY3JxQzMjY3NiMiBsQaHxEhGQwBDh0mFCQWGR8XFQYRCg4RDRcNCQ8DBBEPAwMGDhUlHxglFQEJFBsOHBlMEQsQBAkZDhJEDwEBDBkgEhQnHRATFSMeJxIJCRMiHRIBCggPPA0KHxYdIBgpGA8aFAoBAQ04FxIRJB4AAAAAAwAAAAABLADhAAMABwALAAAlITUhFSE1ITUhNSEBLP7UASz+1AEs/tQBLM4TqRM4EwAAAAIAAAAAAOsA/gAmADsAADcnIwcXNxUxFTEVFB8BFhceAR8BHgIdATM1NC4CLwEuAjcnFwc2NyYvAQYPAQ4DHQEzNTQ+ATfFKA4oDRUBAgICBA0HDgcMBxoFCwwHDQYLBgEBFTQDAwcEAgUGDQcMCwUaBwwH1SgoDRQTCQYFBQsGBgsRCA8HERMNERENGBIQBw4GEBQLHRRTBAMKDAUHBg4HDxMYDRERDRMRBwADAAAAAAD+ARAACwAPACMAADc0NjIWHQEUBiImNRc1MxUnBi4BNTMUHgE7ATI+ATUzFA4BI14hLiEhLiEvEhIaKxkTFCIVEhUiFBMZKxrYFyEhF0sYISEYjSYmJgEaKxkUIxQUIxQZKxkAAAAEAAAAAAD+ARoACwAcACAANAAANzU0NjIWHQEUBiImNyIOAR0BFB4BMj4BPQE0LgEDNTMVJwYuATUzFB4BOwEyPgE1MxQOASNnHCYcHCYcLxIeEhIeJB4SEh4bEhIaKxkTFCIVEhUiFBMZKxqNSxMcHBNLFBsboBEfEUsSHhISHhJLER8R/ucmJiYBGisZFCMUFCMUGSsZAAMAAAAAARoBGgARABYAGgAAEyMVIwcVFzMVMzUzPwE1LwEjFyM1MxcnMxUjlhNnCQlnE1QHKCgHVFDAwB+nXl4BGSUKSwmDgwImDiUDSzgcCRIAAAMAAAAAARoBGgAKABUAJQAAEx8BFQcnByc1PwEfATUnFSM1BxU3MT8BFxUHJzcjFwcnNTcXBzOhdAQOdXUOBHQVZ2cTZ2cjDi4uDR5xHg0uLg0fcgEZSwesCEtLCKwHS6tClkI2NkKWQloNLw0uDR4eDS4NLw0fAAMAAAAAARoA9AATAB4AIgAAJScjBxUzNRcGHQEfATM/ATU0JzcHFQcnNTY3FzM3Fi8BNxcBGYAGgBMrDwVLCEkGDz9CQUIBDTEHMA1BZ2dnwjIyd14RFRoIByIiCAgZFRlHAR4eARYSExMSESgoKAAEAAAAAAEQARoACQATAB0AJwAANwc1IxUnBxczNycXNxUzNRc3JyMPATMVIxcHJzU3FzMnNxcVByc3I8AhEiENMA4wbg0hEiENMA41IUFBIQ0xMWVBIQ0xMQ0hQWMgQEAgDTAwkw0gQEAgDTBQIBMgDjENMC0gDTANMQ4gAAAAAAUAAAAAARoBGgAMABAAGAAcACAAABM3MxcVByM1MzUjFSM3FTM1DwEVFzM3NScHNTMVBzMVI3EJlgkJLyaEEhKE6wkJlgoKjIODg4MBEAkJgwoTSxM5ExNeCoMJCYMKJhMTEksAAAAABQAAAAABBwEHAAwAFQAnACsANAAAJSMVJiMiBhQWPgE9AQcyFhQGIiY+ATcPARUmIw4BFBYyNj0BNxUzNQcVBzUHMhYUBiImNDYBBxMNDxQbGycbLgsRERcRARAxlgkNDxQbGycbhBMTgy8LEREXEBCpLwkbJxwBGxNVOBEXEREXEZUJCY0KARsnGxsUcQgSVAolCSaNERcQEBcRAAAAAAMAAAAAARkBFwAJABEAHQAANzM3FxUHJyMnNR8BNQ8BIxUzNxcHFwcnByc3JzcXHDRJEBBJNAlIOzsHLi63DSAgDSEgDSAgDSDOSAb0BkgJXlg7xzsCS0kNICENICANISANIAADAAAAAAEsARoAEAATAB8AABMfARUjNSM1IxUzFSMnNTczBxUzFyM1IzUzNTMVMxUjskACE0teS1QJCX4ENhUTODgTODgBF0EIJRNLzxIJ4QkSOc44Ezg4EwAAAAMAAAAAASwBGgASABwAKAAAASMvASMHFRczNSM1Mz8BMwczNQcjDwEjNTMfATMHIzUjNTM1MxUzFSMBEH8QB14JCWdeVQYQdwETE3oGEFBQEAd6ExM4OBM4OAEHDwMJzgoTcQIQJVQcAxA4EAL0OBM4OBMAAQAAAAAA9ADFABEAADcVFAYrATcnBxUXNyczMjY9AeEFBIEeDTAwDR6BCxHFJQQGHw0wCjANHxAMJQAABAAAAAABGgDSAAgADwAWACgAADc2HgEOAS4BNhcuAQ4BFh8BHgE+ASYnNxUUBisBNycHFRc3JzMyNj0BLBMuGgknLhoJRgkUEgoBBQ0JFBIKAQWcBgRNHg0wMA0eTQwQxQ0JJy4aCScuAgUBChIUCQ0FAQoSFAklJQQFHg4wCy8NHhAMJQAAAAUAAAAAARoBBwAHAAsADwATABcAABMzFxUHIyc1FxUzNQczFSMXIxUzBzMVIxz0CQn0CRPhvJaWcXFxcUtLAQcKuwoKuwmpqSYSExMTEgAAFwAAAAABLAEsAAMABwALAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwBLAE8AUwBXAFsAXwAANyM1MxUjNTMVIzUzFSM1MxUjNTMdASM1FzMVIzczFSMDIzUzFyM1OwIVIzMjNTMXIzUzFyM1MxU1Mx0BIzUzKwE1Mxc3MxcVByMnNxUzNRczFSMVMxUjFTMVIyczFSMTExMTExMTExMTExMTExMlExMlExMlEhITExM4EhImExMlEhITExPOExNLE4MTE4MTE4MlExMTExMTll5ezhM4EzkTOBM5EyUTExMTExMBGRMTExMTExMTEyUSEiYTE0sSEqkTE6mpqRMmEiYTJYMTAAAAAAcAAAAAARoBGgAHAAsAEwAXABsAHwAjAAATNzMXFQcjJzcVMzUHNzMXFQcjJzcVMzUXIxUzBzMVIxcjFTMmEqkTE6kSEqmWE14SEl4TE15dEhISEhISEhIBBxIS4RMT4eHhJhMTExISExMTEyUTJRMmAAAABAAAAAABGgD6ACUAQABJAFIAACU2NzYnIyYHBgcGByYiByYnJgcxBhcWFwYVFBcWFxYyNzY3NjU0ByInJicmNTQ3NjcyFxYyNzYzFhcWFRQHBgcGJyIGFBYyNjQmMyIGFBYyNjQmAQQDAQEHBAQGCAkMDhJCEhkSCQUHAQEDFREPHxpTGx8PEYMhEBgMDREIDwoWERISFQoPCBENDBgQSggMDBAMDEoIDAwQDAzCCAoSEgECAQUFCQUFEAQCARISCggXICkYFQoICAoVGCkgeAMECwwZEw8IAgEBAQECCA8TGA0LBANSERgRERgRERgRERgRAAQAAAAAAS0BGgAMABAAIgAuAAATMxcVJic1IxUHIyc1FzM1IxciByMOARcHFzceAT4CLgIHBi4BPgIeAg4BOM8SCQpdFVwSEl5ewwwKAREJCywNLAkXFQ8HBA0VCAoPBwQMEBAJAQYMARkSZAQCXswVEs/Pz3EHCicRLA0sBgMIEBUWEgpLAQsPEQwDBg0PDggAAAAKAAAAAAEaARwACwAXACQALQBIAGIAdwCSAJ4ApwAANw4BLgI2NzYeAQYnLgEOAhYXFj4BJjc2FhceAQ4CJicmNhcWMjY0JiIGFAczFSMiJj0BIiY9ATQ2OwEGByMiBh0BMxUUFjcmKwEiBh0BFBYzFQYXFhczPgE9ATI2PQE0ByMVFAYrASImPQEjNSY2OwEyHgEVFyM1MzI2PQEzNTQmKwEmJzMyFh0BFAYjFRQGJyIOAR4CPgE1NCYHIiY0NjIWFAarCRQSCwIKCA0eEgYYBAoJBgEFBQYPCAMrCRQHBQQDCQ4RBgkCFAMIBQUIBZwiIgkOBwsTDiIHAxgGCRMCiwoOLg4TCwgBBwUHJggLBwsSEwICHgICEgEJBi4FBwM0IiIBAxMJBhgDByIOEwsHDq4JDgYDDBEQCRAMBAUFCAUF1QYCCREUEgYIBhkfJgMBBAkKCQMEBAwPBAUCBwUNDgsGAwYKGhYDBQgGBgilEw0KIgwIKQ0UCAsJBSo1AgJ6ChQOOwgMLAkHBQECDAgsDAg8DUo/AQICAT89BQkFBwJ2EwICNSoFCQsIFA0pCAwiCg3ZChARDAMGDwgMESYFCAYGCAUAAAAFAAAAAAEHASwAFQAZAB0AIQAlAAATFRcVByMnNTc1MxUzNTMVMzUzFTM1AzM1IxczFSMXIxUzBzMVI/QTE7wSEhMmEiYTJam8vCZwcHBwcHBwcAEsExL0ExP0EhMTExMTExP+5/QmEzgTOBMAAAAABAAAAAABGgD0AAoAEAAUABwAADcfARUPAS8BNT8BFwcfAT8BBxc1JxcVNzUHFQc1oWwMB3NzBgtrBEsKQDkRsV5ecV4mE/QdCX4JICAJfgkdExMDEQ8FdxpsGRlsGmsKMAUwAAMAAAAAARIBGgAjAC0AQgAAJSc1JzU0JyYnJiMiBh0BBwYUHwEWFxY3Nj8BBxQeAjI+AicmPgIeAR0BBxcOASYvASY0PwEVBhQeAT4BJic1FwERFlwCBAsGBQwQOQkJRAQFCwoFBF0NAQYHCggGApYBAQMEBgQSEwEFBgFEAwNSBQYKCQQDBEhPOgFcFwYFCwQCEAw9OAgXCUQEAgQEAgRdKgQJBwQEBwizAgQDAQEFBBcTqgICAgJEAggDUTUECwkDBQkKAzVJAAAAAAIAAAAAARoBGgAMABMAADcyPgE0LgEiDgEUHgE3Iyc3FzcXliQ8IyM8SDwjIzwRDSsNJE8NEyM8SDwjIzxIPCNNKw0kTw0AAAMAAAAAARYBGwAGABwALwAANzM3JwcnBzceARcWFRQHDgEHBicuAzc2Nz4BFzY3Nic0JicmJyYGBw4BFhceAXYNVQ1PJA1WFikQJh4PJhYwJxQeEAMHDyYSKyEmGRkCEQ8dJhMmDyAXISIQJmBWDU8kDY4BFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGAAUAAAAAAQcA/gADAAwAFQAeACcAAD8BFwc3IiY0NjIWFAYHMjY0JiIGFBYXIiY+ATIWFAYHMjY0JiIGFBZElg6WAgsRERcREQwUGxsnGxuXDBEBEBcREQsTHBwnGxs+vAy8gBEXEBAXERMcJxsbJxxdEBcRERcQExsnHBwnGwAABAAAAAABGgEbAAsAFwAjAEUAADcjFSMVMxUzNTM1IycuAQ4CFhcWPgEmJz4BHgIGBwYuATYXMzIWHQEjNTQmKwEiBh0BMxUUFjsBFSMiJjc1IiY3NTQ29BMlJRMlJVQECgkFAQQFBg8JAyYJFBILAgoIDR4RBgouDhMSCQYuBgkTAgIPDwkOAQkLARNxJhMlJRO4AwEFCAoJAwQDDQ8UBgEJERQSBQkHGR5FEw4ODgYICAYzPwECEw0JLAwIMg4TAAAAAAQAAAAAAM8BGgAIABEAKQA9AAATMhYUBiImNDY3IgYeATI2NCYXIyIGHQEGFjMVBhY7ATI2PQEyNic1NCYHNSY2OwEyFgcVIxUUBisBIiY9AZYICwsQCwsIEBYBFSAWFgcuDhMBCwkBDgkeCg0ICwETSgEJBi4GCQESAgIeAgIBBwsQCwsQCxIWHxYWHxZUEw4yCAwsCQ0NCisMCDIOE1QzBggIBjM/AQICAT8AAAAAAQAAAAABLAEHAC0AABMHFTM1MxUXMzc1MxUXMzc1MxUXMzc1MxUjNSMVIzUjFSM1IxUjNSMVFyE3NScTExMlChIKJQoSCiUKEgolOBMvEi8TOBMTAQYTEwEHE3FxZwoKZ2cKCmdnCgpnvDk5OTk5OUtLEhK8EwAABAAAAAABGgEaAAUADgAbAC0AADczLgEnFTceARcWFSM1MgcXMw4BIyIuATU0NjcXMj4BNzY1IzUiBw4CFxQeAbxJBigcASMzBgFwCS8TXAczIhksGSsgExswIAQCcQkKGisZAR4zvBsoBklcBjMjCglwgxMgKxksGSIzB8wYKxoKCXECBCAwGx8zHgACAAAAAAEHAOEAHAA3AAAlFSMiJicjDgMrATUjJzczNTMyFhcWFzM+ATMHBgcGDwEjJyYnLgEnFT4BNzY/ATMXFh8BFhcBBwYLEwc2BAwPEgoJPBMTPAkKEQgQCDYHEwsJAwMFAwRNAgQJBA8GBg8ECQQCTQQBAgUCBM6DCgkJDgoFSwoJSwUFChIJChQBAgMGBQYMCAMHAYMBBwQICwcGAwIEAgEAAAACAAAAAAEtAQcANgBQAAATMxUUBgcVHgEXBgcxJi8BNTc2PwE2NyMWFxYfARUHBgcOAQczBgcjFQcnNSM1NDY3Njc1LgE1Fz4CFx4BFxYUBw4BBwYiJy4BJyY2NzY3NkuDCQoJDQQJCAkMBgUDAgQCAVsCAQQFBgcLCAQHAV4FBAoJCksGBAoSCQqMBw4PCA4VBAICBBUOCA8HDhYEAgEBBQwEAQcGCxMHNgQLBgMFCgQCTQQBAgUDAwQCBQMETQIECQQPBgcIPBMTPAkKEQgQCDYHEwuYBAMBAwMVDwcPCA4VBAICBBUOCA8HEAsEAAACAAAAAADhAQcAHAA3AAATMxUUBgcVHgMdASMVByc1IzU0Njc2NzUuATUXFhcWHwEVBwYHDgEHMy4BJyYvATU3Nj8BNjdLgwkKCQ4KBUsJCksGBAoSCQoUAgEEBQYHCwgEBwGDAQYECAwGBQMCBAIBAQcGCxMHNgQMDxIKCTwTEzwJChEIEAg2BxMLCQQCBQMETQIECQQPBgYPBAkEAk0EAQIFAwMAAAAEAAAAAAEWARsAFQAoAC4AMQAAEx4BFxYVFAcOAQcGJy4DNzY3PgEXNjc2JzQmJyYnJgYHDgEWFx4BJzcXFQcnNxU3oRYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECYnDlRUDhI6ARkBFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGqwg4EDgIX04nAAIAAAAAAPABBwAFAAgAABMHFRc3NQc1F0cPD6mljwEHCOEIcBBnvl8AAAAAAgAAAAAA4gEaABUAHwAAEyMVIwcVFBYXFTM1PgE9AScjNSMVIxcOAS4BPQEzFRSDEh0JJR0SHSUJHBMmOwwiHxNwARk4CUIcKwM5OQMrHEIJODhzDAYNHBE4OBcAAAAABQAAAAABDQDvAAcADwAfACcALwAANyMnIwcjNzMXJyYnMQYPARc1MzIWFRQGBxUeARUUBiMnFTMyNjU0IwcVMzI2NTQjoBMPPg4TOBEQFwEBAQIWbikTFg4LDhIbFBkRDhAcExcPECNeKCiQWT4DBwcDPjeQEg8MEgQBARMPEheBLw4MFT40DgwaAAAIAAAAAAEaAQcABwALAA8AEwAXABsAHwAjAAATMxcVByMnNRczNSMXIxUzJyM1MwczNSMXMxUjJyMVMwczFSMm4RIS4RMT4eHOvLwTlpY4S0sTJSU5S0tLS0sBBxO8EhK8vLwTOBMSg0sTJTgTJRMAAgAAAAAA6wDrAAcACwAAPwEzFxUHIyc3FTM1QgmWCQmWCRKE4QkJlgkJjYSEAAAABQAAAAABGgEaAAcACwAPABMAFwAAEzMXFQcjJzUXMzUjFzMVIzcjFTM3MxUjHPQJCfQJE+HhEiYmcSYmJSYmARkJ9AkJ9OrhE7y8cXGWAAABAAAAAAEaAPQAEgAANycjBycjByMVMz8BFzM3HwEzNd0hEyMWEhY1PAoNFhMjGwlDg3F9XVESBzJfhFgGEgAABAAAAAABBwEaAAwAGQA8AEAAABMiDgEUHgEyPgE0LgEHIi4BPgIyHgEUDgE3LgEiDgIHMzQ+ATIeAhQGDwEOARcVMzU0Nj8BPgI0JgczFSONITghIThCOCEhOCEcMBwBGzA4LxwcLwEFDxEPCgQBFwUHBgUEAgQDDgMEARYEAwcEBgQELhUVARkhOEI4ICA4Qjgh4RwvODAcHDA4LxyeBQYGCw0HBQcDAQMFCAkEEAQJBQwJBAgECAQKCw0MXhYAAgAAAAABCgENABAAIgAANw4BFTIzMhYUBiMiJjU0NjcXDgEVMjMyFhQGIyImNTQ2NxeGIyADBRMcGhUbHS8vmSQgAwUTHBoVGx0wLhbqFjMkGCsbKiY1ThsjFjMkGCsbKiY1ThsjAAAIAAAAAAEZARoADAAZACUAMQBDAE4AUgBWAAA3NDY3Jw4BFBYXNy4BNxQWFzcuATQ2NycOARcnPgE0Jic3HgEUBjcHHgEUBgcXPgE0JgcWDwEXBycjByc3LgE+Ah4BBw4CHgEyNjQuARcjBzMXJyMHOBAPDhETExEODxAUDQwNCQoKCQ0MDZAOCgoKCg4LDQ0ODQ4QEA4NERMTSwEFBUARDmgPEUAFBAcNDw0JHgIEAQIFBgYEBQIFESYZETYQwxUmDg0RLDEsEQ0OJhQQHwwNCRgaGAkODB9NDgkYGhgJDQwfIR+GDQ4mKSYODREsMSxCCggEkQghIQiRBhAQCQEGDAEBBAUFAwUHBAInJDglJQAAAAAFAAAAAAEaAQsAFQAeACoAMwA/AAA3FAczNi4BDgIeATc1Bi4BPgIeAQcyNjQmIgYUFhcyNxcOASImJzceATcyNjQmIgYUFhczFTMVIxUjNSM1M+EBEwMgO0AuDBw5IBouGAYjMzEeeggLCxALCy4UDg0JGRsZCQ0HEi8ICwsQCws3EyUlEyUlnwQFIDkcDC5AOyADEwMYLzQnDRMrEQsPCwsPCy8ODQkLCwoNBwgvCw8LCw8LOCYTJSUTAA4AAAAAARoA9AAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMAACUjIgYdARQWOwEyNj0BNCYHIzUzByMVMwcjFTM3MxUjFyMVMyczFSM3IxUzJzMVIxUjFTMHMxUjNTMVIzcjFTMHMxUjAQfPCAoKCM8HCwsHz885EhISExMlExMTExODXV2DJiZeExMTE0sTExMTOBISOCYm9AsIgwgLCwiDCAuWgxMSExM4EjkSEhI4EzgSExMTEl0SEhITEwAAAAADAAAAAADiAOEACAAVAB4AADcyNjQmIgYUFjcUDgEiLgE0PgEyHgEHNCYiBhQWMjaWCAsLEAsLUxQjKCMUFCMoIxQTIS4hIS4hgwsQCwsQCxMUIxQUIygjFBQjFBchIS4hIQAAAwAAAAABFgEbAAgAHgAxAAA3MjY0JiIGHgE3HgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgGWEBYWIBYBFRsWKRAmHg8mFjAnFB4QAwcPJhIrISYZGQIRDx0mEyYPIBchIhAmcRUgFhYgFagBFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGAAEAAAAAAOsBCgAZAAATFQcjNTMnLgEOAhYfAQcnLgE+AhYfATXqCUIwEg0iIxkKCg1hDWIQDAwhLCwRDQEHQgkSEg0JCRkjIwxiDWERLCwhCwsRDScAAAAKAAAAAAEqASwAFQAdACEALgAyADYAOgA+AEIARwAANwcnNyMiBhQWOwEVIy4BNDY3Myc3FxMjJzU3MxcVJzM1IzczFxUHIzUzNSMVIzUXIxUzBzMVIxcjFTM3MxUjFyMVMycxMxUjiysOGjwNERENCwsUHBwUPBoOK0V4Cgp4CnhkZEZ4CgoyKGQUFDw8PDw8PDw8FDw8PBQUKioW8ysOGhEZEhQBHSgdARoOK/7/CqAKCqAKjHgKoAoUjDxGghQUFBQUyBQ8FDwUAAABAAAAAAEJAQcAHQAANyM1MxcVIzUOAR4BPgImJzceAg4DLgI+AVgyQQoTGhEaOUArBSQfBRklEgQaKzMxJRIEGvQTCkElEz88HwswQTUKEggjMDMsHQcQIzAzLAAAAAACAAAAAAEIAQcAEQAVAAATMxU3FwcXBycVIzUHJzcnNxcHMxUjvBIwCTAwCTASMAkwMAkwlktLAQc7HRAdHhAdOjodEB4dEB1bSwAABQAAAAABLQESABIAHwAsADIAOAAAEzMXFSYnNSMVMxQXIzUzNSMnNRciDgEUHgEyPgE0LgEHIi4BND4BMh4BFA4BNyc3FwcXJxcHFzcnEf4JCQrqYRROOmsK1xUkFRUkKiQVFSQVEBsQEBsgGw8PGxAaGgkTE0sSEggbGwERCWwHBVawIBoTFAnEbBUkKiQVFSQqJBWIDxsgGxAQGyAbDycbGwkSExESEwgbGwAAAAACAAAAAADyARoABgANAAA3JzcnBxUXJxcHFzc1J/JLSwxQUK5NTQxSUnlKSwtQDFBWTUwMUwtSAAEAAAAAARoAqQADAAAlITUhARn++gEGlhMAAAALAAAAAAEaARoACwAVACYAOgBEAFgAYQBzAHsAfwCGAAA3NjIWFAYiJwcjNTMVFBYyNjQmIgYVByc3FzU0NjsBFSMiBh0BNxc3MzU0IyIGBxU2Mg8BBhUUFjMyPwEVFAYiJjU0PwEHIzUGIyImNTQ/ATQiBzU+ATcyFQc1BwYVFBYyNhcyNzUGIiY0NjIXNSYnIgYUFic3MxcVByMnNxUzNSc3MxcVBzXaBA4ICQ4DAQsLBAcEAwcFjCcMEw8LLCwEBRIMOw0SBAkDBw8BCw4HBggEAQUGAwYHLAwECAYHDgsOBwMJBBEMBwYDBgQ3CQUFDAcICwQDCAwODX0SqRMTqRISqXAShBIS+gkOGA8HBko0BAcIDgcIBU4oDBMdChARBgMdEgwNIBcDAgwFCQEDEAcJCRIEBAcEAgcBAa8HCQkHEAMBCQUMAgIBFwsEAQEHAgQGEgMOBAgOCQQOAgEQGg9LExNdExNdXV0mExNeE3EAAAAGAAAAAADiARoAEAAdACcAOgBCAEYAADcXNycHNTQ2OwE1IyIGHQEnFzMWPgE0JiIHJyMVMz0BNDYyFhQGIiYHBiMiJjUmNjMyFxUmIgYUFjI3JwcVFzM3NScHMxUjPCspDRMGAx0cDBAUbwEFFQ0LFgYBEBAGCwYGCwYQBw4QEwEWEQwGBxELChEIXhMTgxMTg4OD5isqDRMeBAYSEAweFC8JARIeEQsnXBsHBwgJEQoJlgUUEBIVAxMFCxMLBVsTcBMTcBMTcAAAAAABAAAAAAEHAQQAFQAAEwcVFzcnMzIWFxYdATM1NC4CKwE3dktLDj0kJzQQHhMRJjwpIjsBBEwNSw08EBAfRwYGJzkmEzoAAAAJAAAAAAEaARoAKAAsADAANAA7AEsAUwBXAFsAADcjNTM1IyIOAh0BBhYXFhczNSMiJyYnND0BNDU2NzY7ARUjFTM3NSMnIxUzBzMVIxUzFSMXIzUzFSMnNzMXFQcjFSM1IyImPQE0NhczNSMiBh4BOwE1IyczNSP0qUtQBg0JBAELCgYGBQUDAgYCAgYCA65LVAoTgxMTExMTExMFBTgFF0JUCQkvExIICwsRCQkEBgEFICYmEzk5cZYSBQoMBrIKEAQCARMBAwUDAgoCAwUDASYTClRxExMSExODODgc6glxCRMTCwheBwtwEwYIBRMSOQAABwAAAAABGgEsAA8AHwAvAD8ARwBXAGAAADcxMhYVMRQGIzEiJjUxNDYXMTIWFTEUBiMxIiY1MTQ2NzEyFhUxFAYjMSImNTE0NjcxMhYVMRQGIzEiJjUxNDYHMzcXByMnNxcjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARafBAYGBAQFBQQEBgYEBAUFBAQGBgQEBQUEBAYGBAQFBQUTRA1UDVUODDg4BCUxJQM5OQMlMSVsGycbARwnG+EFBAQGBgQEBSUGBAQFBQQEBksGBAQFBQQEBiUFBAQGBgQEBXlFDlRUDq0TGCAgGBMYICAhFBsbJxsBHAAAAAAEAAAAAAEaARoACQATACMALAAANxUzNRc3JyMHFzcVMzUXNycjBx8BIxUzHgEyNjczNSMuASIGFxQGIi4BPgEWlhNEDVQNVQ5EE0QNVA1VDgw4OAQlMSUDOTkDJTElbBsnGwEcJxv8EhJEDVRUDQwuLkUOVFQONBMYICAYExggICEUGxsnGwEcAAAAAAQAAAAAAQcBCAAvADgAQQBKAAAlNC4BDgEWFxUUDwEnJj0BPgEuASIOARYXFRQWHwEVDgEeATI+ASYnNTc+AT0BPgEnNDYyFhQGIiYXFAYiJjQ2MhY3IiY0NjIWFAYBBxQeFwQQDgU0NAUOEAQVHBUEEA4IBzMOEAQVHRUDEA0yCAgMD7sLEAoKEAtnCxALCxALLwgLCxALC+EPFQMTHBkDFAYDGhoDBhQDGBwSEhwYAxQIDgMbGAQXHBMTHBcEGBoEDggUAxQNCAsLEAsLoQgKChALC44LEAsLEAsAAAAAAwAAAAABGgEsAA8AGAAiAAA3IxUzHgEyNjczNSMuASIGFxQGIi4BPgEWJzUzFTcXByMnN144OAQlMSUDOTkDJTElbBsnGwEcJxs4E0QNVA1VDksTGCAgGBMYICAhFBsbJxsBHF55eUUOVFQOAAAAAAMAAAAAARoBGgAJABkAIgAANxUzNRc3JyMHHwEjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARaWE0QNVA1VDgw4OAQlMSUDOTkDJTElbBsnGwEcJxv8ZmZEDVRUDW0TGCAgGBMYICAhFBsbJxsBHAAAAAAGAAAAAAEHARoAJgAqAC4AMgA2AD0AACU1JyMiBwYHBgcVFBcWFxY7ATUjIicmJyY9ATQ3Njc2OwEVIxUzNyc1MxUnMxUjFTMVIxcjFTMXByM1MxUjAQcKtwYGDQUCAQMFDQYGBQUDAgYCAQECBgIDrktUCryplhMTExMTExMJFwU4BXGfCQIGDQYGsgYGDQUCEgEDBQMCCgIDBQMBJhIJQpaWgxMTEhMTZxw4OAAAAAQAAAAAARoBGgALABQAGAAcAAATMxcVByMHJzUjJzUXMzUjFTMXFT8BMxUjFTM1Ixz0CQl/NhAvCXp64S4KKAcSEhISARkJvAk2By8JvLKpqQohKJleJRIAAAAABAAAAAABBwEaAAkADgAaAB4AABMfARUHIyc1NzMHMzUnIxcjFTMVMzUzNSM1IwczFSPJOAUSqRMTcHCpOXBLJSUTJSUTJV1dARQ4DqgTE+ES86g5SxMmJhMlgxMAAAAABwAAAAABGgEsAAgAEQAaACMAMABWAGYAADcUBiImNDYyFgcUFjI2NCYiBhcUFjI2NCYiBhcUBiImNDYyFgc2NxcOASImJzceAT8BFAYHFTMyFh0BFxUHFRQGKwEiJj0BJzU3NTQ2OwE1LgE1NDYyFgciBh0BFBY7AT4BPQE0JiOWFh8WFh8WOAsPCwsPCzgWHxYWHxY4Cw8LCw8LLg4LDQkZHBkKDQkYDRIKCS8YIBMSIRhwGCATEyAYLwkKEBgQVBAWFhBwEBYWEJYQFRUgFRUQCAsLEAsLCBAVFSAVFRAICwsQCwtFAwsNCgoKCg0JBwK3CQ8DASEXExMlExMXISEXExMlExMXIQEDDwkMEBA7Fg9xEBYBFRBxDxYAAAAABgAAAAABGgEaABEAFgAbACgALgA3AAABIgcGByMHFR8CMzc1Njc2NQczBgcnFyc2NxUvATY3Njc2NwYHBgcGBzUjNSMVNzYuAQ4BHgE2ARAvLiUkTgkDcAc4CSETF/MxFxMHagcbF0BAEBUjJDAvAx4XJBdIJRO3BgUTFw0FExcBGRcTIQk4B3ECCU4kJS4vVBgbB2oHExcxFUAYFyQXHgMvMCQjFTgTJTiQCRcNBRMXDQUABAAAAAABJQEHAB4AKAA1AD4AADc1NzMfATMXFTMXDwEjNjczNyMmJz8BMzUjLwEjFQYXFAYiJjQ2MhYVMxQOASIuATQ+ATIeAQcyNjQmIgYUFhMJXgYRbAoVCTIJRgcFMy1sBggDBlVnBxBQClURFxERFxAmEh4jHxERHyMeEkIUGxsnGxu3RgoDEAouDIQGCApxBwYDAyUDEDEFVwwQEBgQEAwSHhERHiQeEhIeQRwnGxsnHAAAAAQAAAAAARoBBwAcACYAMwA8AAA3MxcVByM2NzM3IxUmJz8BMzcjLwEjFQYHNTczFwcUBiImNDYyFhUzFA4BIi4BND4BMh4BBzI2NCYiBhQWkX8JCWwHBVYBdwgJBwZ6AXoHEFAKCQleBxARFxERFxAmEh4jHxERHyMeEkIUGxsnGxv0CrsJCAqEAQYEBgMTAxAxBQdGCgOdDBAQGBAQDBIeEREeJB4SEh5BHCcbGyccAAAAAAMAAAAAAPQA9AAEAA4AGAAANyM1MhYnFTIeARUzNC4BBxUyHgEVMzQuAV4mEBYmLk4tEzNWMxorGRMfMzgmFqwTLU4uM1YzSxMZKxofMx8AAwAAAAABGgD0AAkADgASAAA3FzM3NS8BIw8BFyc3MxcnMxcHE3wOfD4HfAc+g281dDVvMiJUpXx8Dj4DAz52bzU1IiJTAAAAAwAAAAABIAEaAAUACAASAAATBxUXNzUHNR8BMxcHJxUjNQcnIQ4OqaSOMA0vDR8THw0BGQjhB3AQZ75fCy8NH2ZmHw0AAAAABQAAAAABFwD4AAYAEAAgADIAOQAAPwE1JxUXByc3FxUHNTcnFSMXJg4BHgE2NzE2NTQnMS4BBzYXMRYXHgEVMRYOAS4BNzE2FwcjJzcXN593moZjag6fQy6GEiEYJg4RKS4QDxMIFS0NExENBggBFiMeDwYFSiMNEQwMHS9QDmcVWUKsB2oOLRUfWUAOARktLBcIExQWGxUIChgKAQINBhMLEB0IEiASERMjEQ0MHQADAAAAAAEWAQcABQAIAA8AABMHFRc3NQc1Fwc3NScVFwc0Dg6ppY9WpKSOjgEHCOEIcBBnvl91bRBuF19fAAAAAwAAAAABIAEaAAUACAASAAATBxUXNzUHNR8BIyc3FzUzFTcXIg8PqaWOPQ0vDR8THw0BGQjhB3AQZ75fji8NH2ZmHw4AAAAABAAAAAABFgEHAAkAHAAuADUAAD8BFxUHNTcnFSMHJgYHBhYXHgE2NzE2NTQnNS4BBzYXMRYXHgEVMRYOAS4BNzE2FwcjJzcXN14OqWxWjhMDGSgIBAIECSsxERAUCRYwDhQSDgcIARgkIBAGBU8lDhINDB//CHEQSBc5X0QPARoZDBgMFhkKExUXHhUBCAsZCgECDQgUCxEfCBMhExMVJRMNDB8AAAAABAAAAAABFgEHAAkAHAAuADoAAD8BFxUHNTcnFSMHJgYHBhYXHgE2NzE2NTQnNS4BBzYXMRYXHgEVMRYOAS4BNzE2FycHFwcXNxc3JzcnXg6pbFaOEwMZKAgEAgQJKzEREBQJFjAOFBIOBwgBGCQgEAYFLBYMFxcMFhcMFxcM/whxEEgXOV9EDwEaGQwYDBYZChMVFx4VAQgLGQoBAg0IFAsRHwgTIRMTFxcMGBcMFxcMFxgMAAAAAAQAAAAAARoBGgAPABgAHAAmAAAlLwEjBxUjBxUXMzc1Mzc1ByM1MxUzNTMXBzUzFRcjNS8CIzUzFwEWHAagCS8JCbwJLwlLqBJxDxZdJXEmAxwGXpIX+hwDCS8JvAkJLwmgzqg5ORYPJSVLXgYcAyYXAAAABQAAAAABGgEZABQAGAAgACMAJwAAEx8BFSMHNScjFSM1IxUzByMnNTczBzM1Ix8BFQ8BJz8BDwE/ARc3J88fBgoJHwZxJTgKLhMTnD8mJnoccjkMHHJnChMDD2EPARMfDgYJDyBLS7wSErwTSzk5HA1yHA04cocTCR0PYQ4AAAADAAAAAAEaARoACQASABYAABMfARUHIyc1NzMHFTM1JyMVIzUzFTM1+hwDCfQJCdjO4Rcig0smARcdBtgJCfQJEuHKF0tLOTkAAAAABgAAAAABGgEHAAMABwAOABUAHAAjAAA3MzUjFzMVIycjNTczFSM3FSM1IzUzBzMVByM1MyMzFSMnNTM4vLwmcHA4EwlCOPMSOUIJEglCOeE4QgkTS5YlS0tBChMJQTgTlkIJEhIJQgAGAAAAAAEaARoABgANABQAGwAjACcAADcjNTM1MxU3NSMVFzM1BxUzNTM1KwEVMxUzNSc3ByMnNTczFwcjFTNCLyUTqRMJLzgTJS/XJRMJnwmECQmECSVLS+ETJS8KJS8JE7IvJRMTJS8JHAkJXgkJHCYAAAMAAP//ASwBEAASAB8ALwAAEyIOARUUFhcHFzcWMzI+ATQuAQc0PgEyHgEUDgEiLgEXByMnNxc3Mxc3MxcVJwcjlhcnFgwLRQ1GFRoXJxYWJ1kSHiQeEhIeJB4SVSgOHA0WKA0pKA0fJSkNARAXJxYRHgxFDUYOFyctJxdUER4SEh4jHhISHoIoHA0VKCgoHxolKAAEAAAAAAEbAR8AHAApADIAOgAANw4BFxYXBhcVJwcnNy4BPgEeARUUByYnNTQuAQYXPgEeAg4CLgI2FxY3FjcnBhUUNxc2JzYmIyJsEwkLCA8CAQlHDkcXBSRBQikBCAkdLzInECkkFgMSIigkFgIREhEXEg9PChhOCwEBIRgS7hM1GBIMCQkDBkUNRRlFOhkTNyMHCAcGAhoqFApkCwMSISgkFwIRIigkWxEBAQtODhIYRk8PEhchAAAAAAIAAAAAASwBLQAPAB0AABMiDgEWFwcXNx4BPgEuASMVIi4BND4BMh4BFA4BI78fMxkJFGQOZBtDOBYUNyEXJxcXJy4mFxcmFwEsITg8FnMMchUCJkBBKLsWJy4nFhYnLicXAAACAAAAAAEaARAABgANAAATNxcVByc3Fwc3Jx8BFRMO+PgOHRQY0dEYZQEICHARcAhvCVdiX1YCEgAAAAAGAAAAAAEcARoAAwAHAAsAHQAhACkAADczFSMVMxUjFTMVIxchNzM1ND4COwEyHgIdATMHMzUjFycjFSM1IwdxS0tLS0tLq/70GCMDBQcEcAQHBQMjpnBwpg4VlhUO9BNeEhMTS16pAwcFAwMFBwSoJs/0OCUlOAAGAAAAAAEaAQcADAAQAC4ANwBVAF4AABMzFxUjNSMVMxUjJzUXMzUjFzUmJwcnNyY3JzcXNjc1MxUWFzcXBxYHFwcnBgcVJxQWMjY0JiIGFzUmJwcnNyY3JzcXNjc1MxUWFzcXBxYHFwcnBgcVJxQWMjY0JiIGHPQJEuGDjQkT4eFdBQQRChIBARIKEQUEEwUEEgkSAQESCRIEBRcICwkJCwllBQQSCREBAREJEgQFEgUEEgkRAQERCRIEBRcIDAgIDAgBBwp6OYQSCc4vJqkVAQMKEQoFBQoQCgQBFRUBBAoQCgUFChELBAEVLwYICAwICG0UAgMKEAsFBQoQCgMCFRUCAwoQCgUFCxAKAwIULwYJCQsJCQAABgAAAAABBwEaAAcAGwAjADcAPwBTAAA3JzU3MxcVBycjFSM1IxUjNSMVIzUjFTM1IxUjByc1NzMXFQcnIxUjNSMVMzUjFSM1IxUjNSMVIxc3NScjBxUXNzUzFTM1MxUzNTMVMzUzFTM1MxUvCQnOCgpBExMTEhMTE7wmEo0JCc4KCowTExO8JhITExMSjAoKzgkJCRMTExITExMSJs4KOAkJOAo5ExMTExMTJiYTgwk4Cgo4CTgTEyYmExMTExODCTgKCjgJEyUTExMTExMTEyUAAAAEAAAAAAEsASwAFwA3AEMATgAANxcVBxcHJwcjJwcnNyc1Nyc3FzczFzcXBzc1LwE3JwcvASMPAScHFw8BFR8BBxc3HwEzPwEXNy8BNjMyFhUUDgEuATYXFjMyNjQuAQ4BFvg0NB4rLAs8CywqHTQ0HSosCzwLLCsxMjIHHBErEQoZChArEh0HMjIHHRIrEAoZChErERxgCw0SGRQeGwsIGQYGCQwJDw4GBb8LPAssKh00NB4rLAs8CywrHjQ0HitsChkLECsSHQcyMgcdEisQCxkKECsSHQcyMgcdEitLBxkSDxgGDh0dLQMMEQsDBw4PAAAABAAAAAABBwD+ABkAIwA8AEYAADcyFhczMhYUBgcjDgEiJicjIiY+ATczPgEzFyIGFBYyNjQmIzcyFhczMhYUBgcjDgEiJicjIiY0NjczPgEXIgYUFjI2NCYjcQwVA2gEBgUDagMVGRUDHQQGAQQDHwMVDAEICwsPCwsITAwVAx0EBgUDHwMVGRUDaAQFBANqAxUNCAsLDwsLCHoQDAYHBQEMEBAMBQgFAQwQEwsPCwsPC5YQDAUIBQEMEBAMBgcFAQwQEwsPCwsPCwAABQAAAAABGQEaAAwAJQA9AEAAQgAANyMHFRczNzUjFSM1MxcjNTQ2NzU0NjIfARUHBiImPQEGBwYPASM3Ig4BDwEzNjc2NzYzFxQWMj8BJy4BBhUHMjAjMV5CCQnOChO7OBMTKiEPFQdFRQcVDxUKBAIBE0wUIRUBAQQFCg8XCQkBAwYCREQCBgM5AQHhCbwJCTgvqXAvITQGGAoPCEkZSQgPChQFEQcKBnoTIBMhDwsPBAEoAwMCSUgCAQQDogAAAwAAAAABGgEcACQARQBRAAA3LgU3NTcyPgI3Njc2FxYXFhceAzMXFRQOBAcnFRQeAx8BNjc+BD0BIyYnJi8BJicmBw4DBxc+AS4BIg4BFhcHM5sPHBoWEQoBCQoQEQ8HCwwSEwwLBgUIDxEQCgkJERcZHA9sCA8VGA0WDAsNGBUOCQsJChQRCQgKDg8JERMTCmgJCgQQFA8ECQoIJRgJExYZHiMSPAkCAwYFBwQFAwEGAwMFBgMCCTwSIx4ZFhMJ0TMQHRsXFQgPBwgJFBcbHRAzAQIECwUEAgIEAwsIBAFRBBITDQ0TEgQxAAADAAAAAAEbAQcAFQAZACMAADc1FzUnIwcVHwE3NTM3NQcVIzUvATMHJzUfATMVIxcHJzU3F88SCakJBl4MQgkSOQZEg0xLSzpdXB4OLi8N5QETKgoKygkgCRMJKhMOnAgY1BmtGS4THg0uDS8NAAAAAwAAAAABGwEHABcAGwAlAAA3FTc1JyMHFTEVHwE3NTM3NScVIzUvATMHJzUfASM1Myc3FxUHJ88SCakJBl4MQgkSOQZEg0xLS3teXR4NLi4N5R0TIgoKCcEJIAkTCSITLJwIGNQZrRlAEx4NLg4uDQAAAAAFAAAAAAEdAR0ADAAZACIAKwA4AAATPgEeAg4CLgI2Fx4BPgIuAg4CFjcUBiImNDYyFhcUBiImNDYyFgciJicHHgE+ATcnDgFNHUc/KAQgO0U/KAQeKRk8NiIEGzM7NiIEGjwLEAsLEAteCxALCxALQhAaCBAKJSojCRAHHAEDFAUfO0ZAJwQePEU/txAFGzI9NiEEGzI8NV8ICwsQCwsICAsLEAsLUxANCRIVARYTCA4RAAADAAAAAAEaARoACAAxAFgAADcUBiImNDYyFiciBhUUFwcjFTMVMzU3FhczFSMiBhUiBh4BOwE+ATQmIzQmIzU0LgEjBzQ2OwEyFh0BFzMyFh0BMzIWFAYrASImNDY7ATU0NjsBNzUnIyImlgUIBgYIBS8THAgVIh0SFQwOHBIQFhAWARUQqQ8WFg8WEBEfEUIQDCYTGwoJCAsTCAsLCKkICwsIEwsIHAkJJgwQ6gQFBQgGBisbFA4LFRMcIRUHASUWDxYgFgEVIBYPFkIRHxEvDBEcE0sKCwgSCxALCxALEwcLCjgJEQAABwAAAAABGgEHAAoADgASABoAHgAiACwAABMHFTM1MxU3FzUnBzMVIwcjFTMnBxUXMzc1Jwc1MxUnIxUzNyMVJwcXMzcnB4MSEoQDDxJxJiY4JiY4ExODExODgxMlJV4TFg0mDSYNFgEHEzg4LgMPOhMmJTklSxNeEhJeE3FeXjkmlkgWDiYmDhYAAAAEAAD//wEHASwALAA1AD4ARwAAJTQuAQ4CHgEXDgErASIHNT4BLgEiDgEWFxUOAR4CPgEmJz4BOwEyNjc+ASc0NjIWFAYiJhcUBiImNDYyFjciJjQ2MhYUBgEHDhgaFgkEEg0FEgslFhASFQMbJBsDFRISFgMZJBwGEhIFEgslEh0GERjOEBgQEBgQOBAYEBAYEGcMEBAXERHFDRcMAhAZGhMECgsPWwMdJBgYJB0DcgQcJBkCFiQeBQoLFRECG0kMEBAXERHCDBAQFxERbhEXEBAXEQAAAAACAAAAAAEaARoALABXAAA3FjI2PwE+AT8BPgIuAS8BLgEvAS4CDgEPAQ4BDwEOAh4BHwEWFxYfARYXFjI2PwE+AT8BPgIuAS8BLgEvAS4CDgEPAQ4BDwEOARQWHwEeAR8BFmUFDQoCCAQOChoFBgMCBgcZCg8DCQIJCQkGAggDDwkaBQYDAgYGGgwJBAMIAngECggBBQEHBQ4FBQEDBQMPBAcBBQIGCAYFAgQCBgUOBQUFBQ4FBwEFAWEDBwYaCg4ECAIGCQkJAgkDDgoaBgYCAwcEGgoOAwkBBwkJCQIIBAsGBxoGTwMFBQ4FBwEFAQcHBwUBBQEHBQ4FBQEDBQMOBQcBBQEICggBBQEHBQ4FAAQAAAAAARoBGgAsAEAAawB/AAA3FjI2PwE+AT8BPgIuAS8BLgEvAS4CDgEPAQ4BDwEOAh4BHwEWFxYfARY/ARceAR8BBw4BDwEnLgEvATc+ARcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4BFBYfAR4BHwEWLwE3PgE/ARceAR8BBw4BDwEnLgFlBQ0KAggEDgoaBQYDAgYHGQoPAwkCCQkJBgIIAw8JGgUGAwIGBhoMCQQDCAIHCggFFQ4aGg4VBQkJBBUOGhoOFHYECggBBQEHBQ4FBQEDBQMPBAcBBQIGCAYFAgQCBgUOBQUFBQ4FBwEFAQ0DAwkNAwEBAw0JAwMJDQMBAQMNYQMHBhoKDgQIAgYJCQkCCQMOChoGBgIDBwQaCg4DCQEHCQkJAggECwYHGgaHGhoOFQQKCQQVDhoaDhUFCQkFFMgDBQUOBQcBBQEHBwcFAQUBBwUOBQUBAwUDDgUGAgUBCAoIAQUBBwUOBTIBAQMNCQMDCQ0DAQEDDQkDAwkNAAMAAAAAARoBGgAHAAsADwAAASMHFRczNzUHIzUzFyM1MwEHzxISzxKDXl5xXl4BGRLPEhLPz8/PzwAAAAMAAAAAARoBGgAHAAsADwAAASMHFRczNzUHIzUzNSM1MwEHzxISzxISz8/PzwEZEs8SEs/PXhNeAAAAAAMAAAAAARoBEgBNAJwApgAANyYjLgEjFQ4BBxUWFxYXMjEGBwYHBh0BFBYyNzMGByMOARUGFjsBFj4CJyYvAS4BNj8BMzIXFhcWNjc2NTQnJicmBwYHBgcmJzU0JicXFgcGBwYrATQ2OwE1JjY3JwYHIyIHBiY+ATsBMjY/AQYmJz4BNzMyFxYXFh8BMzUmNjc+ATc2Fx4BFxUUDgEmJyYHDgEHBhYfAR4BByYvASIGFBY+ATQmI2gBAQIPChYeBAURCAoBEAoIBAMLDwcnBQIGERcBBAR9EBwWCQEBDQIHBQMDAgMDAwYHChIFAg0MERgaEg0KBQUHDwxkAgIDDggJbgoIGAESDgwIAzwDAgUFBAoHEwQFAQYPHAoEIRUCCAcKEAgGAQMBAgEEEw4TEA0RAgUHCAQKCwcJAgMHCAIKAQYBB4MEBgYHBgYE+gEJDBkJIxcICgYEAgIHBggGBwYHCgMJCgIbEgQFAQsXHRAWEQMICwkCAQEEAgEJCQYHERYSCw0FAw4LDgcHAwsQAbkPCQ4IAwcLCg0UAREDAgECAwsIBQMYAgkKFRwBAwUVCwoBAQcXBgwTAgQJCBsMAgcFAgICBgMCCgcLFwgDDB4NDQxwBQgGAQUIBQAABQAAAAABGgEaAAkADQAPABEAGwAANycHIxcHNxcnNwczNw8CNyMHMzcXMwcXJwc3tB4eZVIfUFAfUu1SGBgQGKpSUiwODiwkDiQkDrdiYkBkPj5kQAlPTzRQhBEtLRwtHBwtAAEAAAAAARoBGgAJAAA3JwcjFwc3Fyc3tB4eZVIfUFAfUrdiYkBkPj5kQAAABAAAAAABGgEaAAkADwAQABIAAD8BFzMHFycHNycfASc3Iyc1FyN4Hh5lUh9QUB9SgyQOJCwOalK3YmJAZD4+ZEBHHC0cLTNPAAAAAAMAAAAAARYBGwADABkALAAANzMVIzceARcWFRQHDgEHBicuAzc2Nz4BFzY3Nic0JicmJyYGBw4BFhceAXFLSzAWKRAmHg8mFjAnFB4QAwcPJhIrISYZGQIRDx0mEyYPIBchIhAmvEuoARQQKTcrJxIXBAkWCyIqLhUuGQwM9AkfIiUXKhAdAwEJCxhOSBMKBgAAAAAFAAAAAAEaAPQACQATABwAJQAuAAA3MzUjBxUXMzUjNyMVMxUjFTM3NQcyNjQmIgYUFjcUBiImNDYyFhcyNjQmIgYeASYSHAkJHBLqHBMTHAm7CAsLEAsLUwsQCwsQCyUICwsQCwEK4RMKqAoTqROWEwqoZwsQCwsQCxMICwsQCwsbCxALCxALAAAAAAIAAAAAARoBBwAJABMAABMHFRczNSM1MzUXNzUnIxUzFSMVHAkJLyUlxQkJLyYmAQcKzgkSvBPhCc4KE7wSAAACAAAAAAEaAPQABwAfAAA/ATMXFQcjJzcjFSM3JwcVFzcnMzUzJzcXFQcnNyMVMxMJ9AkJ9An0cUwnDTg4DShNSScNNzcNJ0lx6goKqAoKn0EnDTcONw0oEigNNw43DSdBAAAABAAAAAABFAEaACAAJAAoACwAADczNzUnIwcjNTc1JyMHFRczNxUXMxUXMzc1JyMHIzUzFTcXBycfAQcvAjcX1Q0yGQ0iXiMmDUslDhUJWBgOMhkNI15POAwlDCUMJQyQGD0ZdjINGSIYIg4lSw0mFm0JChkyDhkjSwkqCyYMOAwmDHgZPRgAAAcAAAAAARoBGgAZADUAPgBHAFAAWQBiAAATIg4CHQEeAT4BHgIOARYXMzI+ATQuASMHIy4BNSY3NjQmIgcGJyImPQE0PgEyHgEUDgEjNxQGIiY0NjIWFxQGIiY+ATIWJzI2LgEiBhQWNxQGIiY+ATIWFxQGIiY0NjIWlhowJRQBExoUHBQBFAMODwsjPSMjPSMBCgQFAggPHywQBwoCBB8zPTQeHjQeEgsQCwsQCzgLEAsBChALgwgLAQoQCwuLCxALAQoQCxMLEAsLEAsBGRQlMBoIDg0EEwEUGxUcFQEkPEc8JPUBBAQMCBArIBAIAgQDBx8zHx8zPTQevAgLCxALC4sICwsPCwtWCxALCxALEwgLCxALC0AICwsQCwsAAAQAAAAAARoA9AADAAcADwATAAA3MxUjFyMVMyc3MxcVByMnNxUzNUuWlpaWls4T4RIS4RMT4bwTJhJwExOWExOWlpYABgAAAAABGgEHAAwAFQAZAB4AIgAmAAA/ATMXFQcjNTM1IxUjFzUnIwcVFzM3JxUjNTcnNTMVJzMVIwcjFTODE3ESEktLcRMmE3ATE3ATE3CLCEtLS0smS0v0ExNeExNeODkTExNeEhJeXl4TCAsTOBNdEwAHAAAAAAEaAQcADAARABoAHgAiACYAKgAAASMHFTM1MxUjFTM3NQczFSMnByMHFRczNzUnFSM1MwczFSMVMxUjNzMVIwEHcRMTcUtLEnBLRAcmXRMTcBMTcHBeS0tLS3FLSwEHEzg4XhMTXjgTBwcTXhISXhNxXhMSExOWEwAAAAIAAAAAAO8BGgALABIAABM3MxcHMxcHJzcjJxcHNyM3IweLET4PKSEOhh4oFxFHNoVFPj5AAQ8KHUAgiRZIGwljiV6EAAAAAAQAAAAAARoBBwALAA8AEwAXAAAlJyMPARUfATM/ATUHJzUXNyc3HwEHNTcBD14RgwoKXhGDCqBUVAlXfVcHenrYL0IRVBEvQhFUkSpGJhAnPyxXPUk5AAADAAAAAAEHARoACQAMABMAACUvASMHFRczNzUHIzUHNTMVFzMVAQQ+BpEJCc4KEziEcQlC2T4CCfQJCbYEOeHhQgmWAAIAAAAAARsA4gAXACEAADciBgcjLgEOARQeATY3Mx4CPgIuAgciJjQ2MhYUBiPYGSUDOgQXHRISHRcEOgIVHyIcDwISHREUGxsnGxsT4SAYDRADFR0VBBAOERsOBBMeIxwRcBsnGxsnHAAAAAUAAAAAARoA6wASACUAPwBKAGUAADcWPgE3Nic2Jy4BIyIHNSMVMzU3Nhc2FxYVFgcOAScGJjc1Jjc2Jw4BDwEVNzY3MhYVBw4BFBYzMj8BFTM1NiYXFAYjIiY0NzY/ARcWNxY/ATUHBiImNDYXMh8BNScmIgYHBhQXFocKFBIGDQEBDAYQCRAMExMQBQYLBgcBCQMJBgsPAQEIBFAJEQcCCAsPBwkXDhUTDgsJBhEBEwEPCwYJBAgKE5wICg4MAwkJFxASDQoICAMKFhMHDw4GXwYBCAgRFhQPBwcLNI8GTAMBAQkKDQ8NBAYBARELCwwKBBYBBQUBFwcKAQwIBAESGhIGBQk/EBc5DREIDAQFAQMvBAEBCAEWBgcUHBYBBQUWAQUIBxEqEAcAAAgAAAAAARoBBwADAAcACwAPABMAFwAbAB8AACUjNTMHIxUzJyMVMxcjFTMnIxUzNyMVMycVIzUXIxUzARldXRImJkupqSXOzl5wcJZdXYODcF1d4RNLExMTXhJLExMTqTk5ExMAAAAABAAAAAABBwEaAAsADwATABcAADcnIw8BFR8BMz8BNQcnNRcnNxcHFwc1N/1dE14JCV4TXQp6VVVQWVlZXlRU4Tg4EHEQODgQcaMyYS5BNTUxQzJlLgAAAAUAAAAAARwBGgAIAAwAEAAdACkAABMzFRYXNSMVNxcnBzMnPwEXNz4BHgIOAi4CNhceAT4CJicmDgEWS5YKCbwTKBVLlnYgCysqDyMgFAIQHiIfFAIPGQoZFw4CDAoQJhYIAQdLAQRinyEqJYMTOBNLeAoCDx4jIBMCEB0iIFQHAgsVGhYHCwggJgAAAgAAAAABBwEHAEYAjQAANzUjIg4BBzEGBzEGFxUUBzEGBwYrARUzMhcVFhcVFhcxFh0BBhcVFhcxHgIXMzUjIi4CPQE0JicmJzY3PgE9ATQ2NzYzFxUzMj4BNzE2NzE2JzU0NzE2NzY7ATUjIic1Jic1JicxJj0BNic1JicxLgIHIxUzMh4CHQEUFhcWFwYHDgEdARQHDgEjcQIJEQwDAwEBAQIECgUGAQEGBQUDBAICAQEBAwMNEAkCAgYKBwQCAgUJCQUCAgkHBQZNAQkQDQMDAQEBAgQKBQYCAgYFBQMEAgIBAQEDAwwRCQEBBgoHBAICBQkJBQICCAMKBvQTBw0ICAgICBAGBQoFAhICAQIDAQMFBQYQCAgBBwgIDQYBEwQICgYZBgwFCwcHCwUMBhkJDQQCvBIGDQgHCQgIEAYFCgUCEgIBAgMBAwUFBhAICAEHCAgNBwESBAgKBhkGDAULBwcLBQwGGQwIBAQAAAACAAAAAAEaARoAGwAfAAATFTMVIxUzFSMVIzUjFSM1IzUzNSM1MzUzFTM1BxUzNc5LS0tLEksTS0tLSxNLS0sBGUsSSxNLS0tLE0sSS0tLXUtLAAAIAAAAAAEaARwADgAZAB0AKQA1AEIATwBTAAATFhcWFA4BIyImNTQ2NzYXNjc0LgEOARQeATcHFzcXMxUzFSMVIzUjNTMnFwcXBycHJzcnNxc3LgEiDgEeAz4CBwYHBicuAT4CFhcWNyMVMzYKBAIGDAgKDwgHCgQGAQUGBgQFBkxkDWNTEi8vEi8vbA0hIQ0hIQ0hIQ0hOgMMEA0FAQcLDQwHAREBBAYFAgIBBQYFAQWNS0sBFwQJBQwLCA8LBw0DBCUDBwMGAgMFBwUCImQMY4cvEi8vEiUNISENISENISENIXAHCQkNDQoGAQcKDQgEAQMFAQUGBQECAgU0EwAAAwAAAAABGQDhABsAIgApAAA3IzU0JisBFRQWOwEVIzUzMjY9ASMiBgcVIzUzFyc3FxUHJyMnNycHFRfOEgYEEwUECjkKBAUSBAUBEnA3HA4iIQ6nHBsOISK8CQQFZwQFExMFBGcFBAklTBwNIg4hDhsbDSEOIgAAAgAAAAABGgEbAB8AQwAANyIuATc2NyY0NzY3PgEfAQcXNxcWFAYHBgcOAScGBwY3IgcGBw4BHwEHBgcGHgIyNzY/ARcWNjc2Nz4BNTQnByc3JjUOEwIII0AFBgoVESkSDDYXOAUGDAsGCBAlEkQgCYkSEAYFDgcIAwREIwMBBwYIAx5JBQUPIA4GBQkJATEwMAYTExkKJj4OHg4YDQsECAU4FzYMDyAeCwYFCwQHRR4I9QsDBQ4mEgYEQiUFCwcCAxtLBAIHAwkDBQkXDQYGMDAxAQACAAAAAAD0ARoABwAbAAATBxUXMzc1Jwc1MxUjNTM1IzUzNSM1MzUjNTM1SxMTlhMTlpaWJiZLSyYmSwEZEuETE+ESJRPhEhMmEiYTJRMAAAgAAAAAARoBGgAJAA0AEQAVABkAHQAhACUAABMHFTM1MxUzNScDNTMVNyMVMzczFSM3IxUzNzMVIzM1IxUnMxUjLwkSzxIJ6hImExMTEhI4ExMTEhJdEiYTEwEZCdjPz9gJ/voTExMTExMTExMTExMTEwAABwAAAAABGgEHAAcACwAfACkANgBAAFIAABMHFRczNzUnBzUzFSczNTQjIgYHFTYyFQcGFRQWMzI/ARUUBiImNTQ/ARcjFSM1Mxc2MhYUBiInFRQWMjY0JiIGFzI3NQYiJjQ2Mhc1JgcmBhQWJhMT4RIS4eGjDRIECQMHDwwOBwYIBAEFBgMGBysBCwsBBA4ICQ4EBAcEAwcFRQkFBQsHBwwEBAgLDg0BBxOpExOpE7ypqTogFwMCDAUJAQMQBwkJEgQEBwQCBwEBFAZKHwkOGA8cBQQHCA4HCCEDDgQIDgkEDgMBARAaDwAAAAAGAAAAAAEaAQcABwALABMAGAAgACUAABMHFRczNzUnBzMVIwc3MxcVByMnNyMVMzUzNzMXFQcjJzcjFTM1JhMT4RIS4eHhExM4ExM4EyUSOF4SORISORIlEzkBBxM4ExM4ExM4SxISORISOTk5EhI5EhI5OTkAAAAGAAAAAAEaAOEACQATAB8AIwAnACsAADczNSMHFRczNSM3IxUzFSMVMzc1BxcVDwEjLwE1PwEzBxc1JzcXNycHNzUHJiUvCQkvJeovJiYvCTwEBlQJLgUGVAlQHBwLGz8bG0JCzhMJlgoTlhODEwqWJwgvCSUcCC8IJlcRGREPEBwQVx0aHQAAAwAAAAABKwEIABEAIwAnAAA3Jz4BHgEXNxcHIyc3Fy4CBh8BBi4CJwcnNzMXByceAyc3FwdnDxo9NiABFw4nDycPFwEaLDFADxo6Mh4BFw8nDigPFgIYJy6SDd8N5w0RAxwzHxYOJygOFxgqGAGzDQ4BHTEdFw4nKA4WFycXA74N0A4AAgAAAAABKwENABEAIwAANwcnNzMXByceAjY3Fw4BLgE3JwcXMzcnBy4CBgcXPgEeASYXDycOKA8WAyk9OQ8PE0VJMM0XDycPJw4XAS5IRRQPEDo8J5EXDicoDhYfLw0aHAshHhE6LxcOKCcOFiU6ExsgCxsYEDAACwAAAAABBwEHAAcACwAPABMAFwAbAB8AIwAnACsALwAAEyMHFRczNzUHMxUjFyM1Mx0BIzUnMxUjFTMVIxU1MxUzNTMVMyM1MzUjNTMnNTMV/eEJCeEK4c7Ogzg4OEs4ODg4OBM4Szg4ODg4OAEHCs4JCc4JEzglOCUlOCUTJTkmJiYmJhMlEyUlAAADAAAAAAEnAQcAEQAjADAAABMjDwEVFzM3FjI+AT8BNCYnNQcmIyIGFBYzMhcVBwYPASc3MxceARUGFQ4DJz8B+GIGfWENKhIqJRcCARQREw4OBAUFBA8NSQMCJVRzVBMJCgECERseDkUDAQcDfQ1iKgoUIhUKFSUMKiEFBQgGBihKAQMmVHQ5ChcNBQUPGQ8CBkUHAAAAAAUAAAAAARoBGgAIABUAHgArADgAADcyNjQmIgYUFjcUDgEiLgE0PgEyHgEHMjY0JiIGFBY3FA4BIi4BND4BMh4BBzI+ATQuASIOARQeAZYICwsQCwtTFCMoIxQUIygjFEsXISEuISGaIzxIPCMjPEg8I4MfMx8fMz4zHh4zgwsQCwsQCxMUIxQUIygjFBQjTCEuISEuITgkPCMjPEg8IyM8lB4zPjMfHzM+Mx4AAAAABAAAAAABGgEaAAYACgAOABIAAD8BJwcnBxc3IzczBzMVIxcjFTNDaw1kHA4i5JkrbqioqKioqK5dDlYiDCofJksmJSYAAAAABQAAAAABBgEaABMAFwAbACAAKgAAEx8BDwEvAQcvAQcvAT8BJz8BJzcHFzcnNxc3JzcXNycPARcjJxUjNQcjN9MLJwQ+CwNDCgMwCw4FLwMEQwMFZwYqBwoVOBQKIyshLgU5FiMTIxUgARkEXQsaBAgcBAcUBR8LFAgKHQgLYhAREBcuGC0YTRNNE3NbOEthTkkAAAQAAAAAARIBIwAXAEcAUQBuAAAlJyYiDwEOAR0BFBYfARYyPwE+AT0BNCYHFRQPAQY9AQYnIjU3NDczFjc2NCImNTQ3NTQ/ATIdATYXMg8BFAcxJgYVFBYzMhQ3FCMHIzU0PwExNwcOAR0BFBcjIi8BLgE9ATQ2PwE2Mh8BFhcuAQcBAFkIEghZCAkJCFkIEghZCAkJTQEFAQUFAQIBAQUEBw0GCgEFAQQEAgECAQUKBAQMJAEWAQEWEFQJCQgFBwdZBggIBlkHDwZZCwICCQbpNQUFNQUQCWoJEAU1BQU1BRAJagkQnwgBAQMBAggDAgEHAQEBAgMNBAcNCAgBAQMBCAIBAgYBAQEFBwICGgQBDgYBAQ18NAUMCWcLAwM1BA4HagcOBDUDAzUHDQQCAwAHAAAAAAEsARoAAwAgACQAKAAwADQAOAAANxcjJwciDgIUHgIyNxcGIwYiLgI0PgIyFhcHLgEXMxUjFTMVIzchBxUXITc1ByE1ITUhNSHMJg4lUwgMCgUFCQwSCQIEBQcQEAwHBwwSEgoCAgQJJRMTExON/uYJCQEaCRP++gEG/voBBqleXgsFCQ8QDQkFAwkCAgYMERQRDAcCAgkCAggTEhO7CfQJCfTqqBMmAAAAAA///wAAAPIBLQAEARcBGgEtATUBOwFKAVABUgFXAV4BYwFkAW4BdAAAEyIrATcXNjUHNj0BIy4BJy4BBz4BJw4BBwYHBjM3MAcjDgEHFDYxByYHBgczBgcxBhUHBhUUFwcXIx4DFyYnFBYXBxYfASYXFh8BNwYXMx4BMwcWFzMWFycXHgIXIyYnLgI3Jjc0JzU2NzUxFj8BNjczNjc2NzE2NxU2NzY/AQYzNwc2FzEyMwcGMRY3MTYXJxcWFzI3MTYXFRYXMicxHgEXJjEVFiMWFzUmJxQjMSYGFxY3MTQxFxYfASInMSYVHgEVMSIVFBY3MwcGFycUFTEWBzY0BxYHMQYVJwYWBzY1MTQ3Ig8BDgEnNCcmJyY3Njc2Nz4CFhcuAQ4BFzcyNRQeATcVNj8BBwY2PwE2NTEmPwEHMDkBFBYXFjcGLgEnMhcxFhcmJxYXNyIjMhYjMCcXNCIHFxQHBgc0JjY3FAcxBhQ/ATYHLgE3FjcnDwIXFhcnFh8BJyYnNwcGBzYnFTAzMTIUDwE1NgcUBzU0N4UEAwIOSAMCAgEBGxANIwkBBgEHCAMGBgEBBgMFBQgFBAIIDw0FAwIEBQECBAEDAQIEBQUEBAIFAwICAwEEAwIGAwIBCAUBCAMDBQIBAwYDBgUNDgUEFAccMhwCAQEBBwcCAwMDAQIBBQQHBwIHDAcNCAEBDwcFBAQFBQIFBQYGAQsKCgICBAUBCAEFDxoFAwEBBAIGBgMCAQIBAQIBAQEBAQIBAwECAQECAwEDAQIBAgEFBAMEAQMBAQEFBxAmFAISBgkDAgIDBQQSFhIFCRoYDgEBARUfDgUDCQEDBQ4DAQECBFQGAwsSCRsYBgEFCAQEBgkLAwEBBgICBDYCAQIDAgQEAQQCAgQBAxkFBgQHBRoBJwEDBAMFAgIBAQMBjAECBgfgAgEBBAIGAgMBKwGQCAYFCBAKEyYHBgIEAQEBAQICBAIBAQIBAwYBAgMBDwwJBQcJBAwRCA0FBwcJBAEFCQEEAgkFAgMCAQIGAwgEAgUJAwcEAQIDAgQFBgUCAgECCC1AIQYMDwICFg4BAgUFBwQEBgQHBgIDBgcDBgMBAgQBAQEBAQIBAgMEAwUBAQIBAwQFCB4RBAQFCwoBFAkCAQMFAgEBBAIGBQIDAQQGAQMFAwEECQcIAwQFBgYJAwcKCAMEBwUEAgEBAgUHDQUHAQIOCw8XAQYLAwcMAQoHCAQLGQ4BAhEbCwcBAQIIAgMBDQMCAgIDAykBBAIEAQQGEAoFCgEDCAoFuwEBegYEAwELBwYBAQQFAgIEAQIBBBMBAgEBAZkBnwQEBgMXBAIFAgYDGAIPDQ5XAQEDAwEDFQQEAgQEAAAFAAAAAAESAS0AWgCxAM8BGQE+AAA3HgEfARYfAR4BFA4BDwEOAgcOASMiJicmLwIiDwEiDwEOASImJyYvAS4CNDY1JzQ2NzY/Ayc0PgI3PgE1JzQ1ND4CMzIeAh0BFhcWHwEeAhUUJzIWHwEVDwEGDwEGFBcWHwEeATsBMj8DNC8CLgEvAT0BND4BMzIWFAYUFzMyNjUnLgIjIgYHFycmByMiPQEuAiIOARUHFB8BFjI2NSMiLwEmNgcyPgMmLwIuAgYPAQ4CFRcUBhQWHwIWFzcyNzY3Njc1PwE0PgE3NTQ/ATY/AS8BJi8BJjUnJi8CJiIPAQYiJi8BJiIdAQcGBxcUFwcOAR0CMh8BFh8BFh8BFAYHHgMXMj4BNzY/AjY9AS8CJiMiDwEGIiYvAQcGBwYVBwYPAhQW+QQFAQIBAwMCAwMGBAcGCQoGBAcECAsEAgEEHQcGDQEBBAMICwoFCQkZAwUDAwEHBwMCBQcBAQcKDAYICQEFCxINDhIJAwEDAwQOBwwIfgIDAQEBBAECBgICAwEEAQYGAQYFDgsBAQIFAwcDAQIDAgUEAgECAwMBAQMGBAgGAQEFAgICAgECBAYDAwECAQECAgEBAQIBBB0EBgYDAQICDQoCBAUGAwoDCAUBAgUEEAgDBUMEBQkJBAQCBQMGAwECAQIDBQICAgcBAQIDAwMCBQUUBQkHAwUDAggDAQEBBQYEAwMHBAQGBAECBQMCCAgKQAMHCAMICgoDAQUDBQMGAwIKAwUFAQQCAgECAgEDAQEJWwIHBQYEBQQCBgcFBAEEAwcKBAIDBggCAQEBAQICBQIEAgMEAgQBAwYICAUNBwcCAQIECQIHChQTEggKGA4LBgYMEg4HDBMXDA0KCQQGEgkUFg0KjwIBBAQCBQEBBQIDAQIEBgMFAwgIBAIBAgEBBAEBAgcCAwIHBQQCAQMDBwQIBAcICQEBAQEGAwYFAwQDBQQDBQECAQEFBAbkAgMGBwUCEhAEBgQBAgoDAwQEDAQHBwMBAwEBAw4BAgQCAwEIHwQGBQIBAQIDAQECFwYEAgoCAgQHBwcFAwMNAgUEBgMCBw0HCAQCAgcIEwkKBAIEAwQIAwQGBAUBBAYEAhUCBQQJBQUCAgICCAUPBAEGAQMCCgMCAgUFEQgIBQUHCgAAAAAEAAAAAAErARoABwALAA8AFQAAEx8BDwEvATcHFzcnFwcXNy8BBxcHFy/0CCIL9AgiDuEg4U0DXgI9RQ0yPQkBGQMJ8gkDCvHoA98CnRICEy83DycnDwAABAAAAAABBwEaAAcADAAQABQAABMjBxUXMzc1BxUjNTMXIzUzNSM1M/3hCQnhCoRdXXFeXl5eARkJ9AkJ9HFnz89eE14AAAAABv//AAABHAEaAAgAEQAeACcANABEAAA3FAYiJjQ2MhYHFAYiJjQ2MhYXLgEnBiceARcWMyY1NxQGIiY0NjIWFzY3NiYnBgcWBwYHFiciMT4BFwYPAQ4BByYnJiP2FyEXFyEXphghFxchGDIWIgoREg0xIA4OC2EXIRgYIRcQEwYGCg8GEBEIAwkO0gESRCYJAgEYKQ4ICgYG8xEWFiEWFmURFhYhFhZ0BBoTCAQeKAcCDhIBEBYWIRYWAhcdGTIWEQkfIhAOC3wgIwMKDQgBFRMFAgEAAAAABAAAAAABGgEaAAcACwASABYAABM3MxcVByMnNxUzNQ8BFwcXNzUVMxUjExPhEhLhExPhrw01NQ0+S0sBBxIS4RMT4eHhOQ01NQ09CjMTAAAEAAAAAAEaAOEABwAKABIAGAAANwczNzMXMycHNxc3IwczNzMXMyc3NjcfAT8sGQkrChksGw8OhR49Hg4/Dh1kFgIBAhepcRwccUIoKHqpKytCQwYFC0MAAwAAAAABBwD0AAMABwALAAAlIzUzFSM1MwczNSMBB+Hh4eHh4eHOJnEmcSYAAAAAAQAAAAABGgEHABsAADciLgE/ASMGLgI3Njc+ATczHgEdARQGKwEHBmYIDgUEEjQHDAcBAyMIAw0IpwsPDwsZbggjCxEJKQEGCw4GShcHCQEBDwtCCg9nBwAAAAACAAAAAAEaAQcAGwA2AAA3Ii4BPwEjBi4CNzY3PgE3Mx4BHQEUBisBBwYnIgcGBwYWNzMXFQcGHgEyPwIzMjY9ATQmI2YIDgUEEjQHDAcBAyMIAw0IpwsPDwsZbggYBQILIAIEBT4JFAEBBAUCcgkZAwUFAyMLEQkpAQYLDgZKFwcJAQEPC0IKD2cH0QUfQwQHAQwJLgIFAwJoAwQDQgMFAAAAAAEAAAAAARoBBwAbAAATHgIPATM2HgIHBgcOASsBLgE9ATQ2OwE3NsYIDgUEEjQHDAcBAyMIAw0IpwsPDwsabQgBBwEKEQkpAQcLDQZKFwcKAQ8LQgoPZwYAAAAAAgAAAAABGgEHABsANgAAEx4CDwEzNh4CBwYHDgErAS4BPQE0NjsBNzYXMjc2NzYmByMnNTc2LgEiDwIjIgYXFQYWM8YIDgUEEjQHDAcBAyMIAw0IpwsPDwsabQgYBQILIQEEBT0KFAEBBAUCcgkZAwUBAQUDAQcBChEJKQEHCw0GShcHCgEPC0IKD2cG0AUfQwQHAQwJLgIFAwJoAwQDQgMFAAAGAAAAAAEZARoAIAAvAEEATQBSAGgAACUnByc3JyYiDgIUFwYHBhYXHgEzMjc2NzY3FjI+AjQHBisBIi4CNzY3HgEXBjcWBiInLgE3PgI7AQcVFzM3BzMXNyc3LwEPAhcnFxUjJxc3FxYUBw4BJyYvATcXHgE+AjQmJwEVDycXJwMNGxoUCwU6OQYBCAQJBQkHFSQiGg0cGhQL4gECAgICAwIBKkYDBgRJqQEgLA8MBgYEDxQKBSIjDSLKHA4MDAEENgsPAiMKKxQcig06CAgGDwgFAzsNOgIFBQIBAQHrAycXKA8ECxQbHQ06OwgVBwQFBxMlIRsGCxUaHLcBAQQGAixGBAcDS4UXHw8MIA8KEAgjDSMiJw4NDR8IJAIPDDZAHRUsfQ08CBYIBgMDAgQ8DTwCAgIDAwQDAQAABgAAAAAA9AEaABMAFwAbAB8AIwAnAAA3MxUjFQcjJzUjNTM1NDY7ATIWFSsBFTMHMzUjFyMVMzczFSM3MxUjvDgTE4MTEjgLCDgICxM4OF6DgyYTExITEyYTE/QTqRISqRMTBwsLBxO8qRODg4ODgwAAAAABAAAAAAEHAM8ABQAAPwEzFwcjJgfSCGoQxAoKZgAAAAEAAAAAAM8BBwAFAAATFxUHJzXECgpmAQcI0ghqEAAAAQAAAAAAzwEHAAUAADcnNTcXFWgKCmYmB9IIahAAAAABAAAAAAEHAM8ABQAAJQcjJzczAQcI0gdpEGgKCmYAAAEAAAAAARoA/wA+AAAlDgEHFxQGBw4DIiYnFjY3IiYnJicXFjcuAScmNTEWMyYnJicmNzY3FhcWFxYXJzU0NzY3NjIWFzY3Bgc2ARkFDggBBwcJHSQrLSoSFSoQDBcHBQMFCgkJEAYMDA0LBwMCAwQBBAoNGR8QEAEECBUKFhQIEhAGEhDlCA4GBxAfDxUiGAwMDAILDgwKBwgBAQMCCQgOFAYHDAYGDg0HBgwKFQgEAQYGDAkVCAQJCAQJEwoBAAQAAAAAAQcBGgAeACIAJgAqAAA3IyczNzUnIwcVFzMHIwcVFzM3NScjNxcjBxUXMzc1JzUzFQcVIzUXIzUz/SA/FAoKSwkJFD4hCQk4CgoBOjkBCQk4CpY4XiXOJiZeXglLCQlLCV4KOAkJOApWVgo4CQk4ejk5gyUlJSUAAAAABAAAAAABBwEaAB4AIgAmACoAABMjBxUXMwcnMzc1JyMHFRczFyMHFRczNzUnIzczNzUHNTMVFxUjNTcjNTP9OAkJATk6AQoKOAkJIT4UCQlLCgoUPyAK4SVeOIMmJgEZCTgKVlYKOAkJOApdCksJCUsKXQo4LyYmgzg4gyYAAAAFAAAAAAEHARoAIwAnACsALwAzAAA3Iyc1JyM1Mzc1JyMHFRczFSMHFQcjBxUXMzc1NzMXFRczNzUnMxUjBzMVIwcjNTMXIzUz/SEgChwJCgolCQkJHAkgIgkJJgkgQyAKJQqEExMSODg5EhK8ExNLIEcKJQkmCQkmCSUKRyAJJgkJIiAgIgkJJsUTSzhLEhISAAAAAwAAAAABBwEaAAkAEwAtAAA3NQcnNzMXBycVBxUnBxczNycHNTcXBxcHIzUzJyMHMxUjJzcnNzMVIxczNyM1jRMNIg4iDRMSEw0iDiINE2IGRUUGTjg4ODo5TwVFRQVPOTg4OjiySxMOISINE0s4SxMNIiINE0tnEzc5ExMtLRMTNzkTEy0tEwAAAAAMAAAAAAEaARoACQATABsAHwAnACsAMwA3AD8AQwBHAEsAABMXBycVIzUHJzcXNSMVJwcXMzcnNyMnNTczFxUnMzUjFyMnNTczFxUnMzUjByMnNTczFxUnMzUjFyMnNTczFxUnMzUrAhUzNSMVMzYoDxcSFw0nDxIXDScNKA1OJQkJJQomExONOAoKOAk4JiZCJQkJJQomExONOAoKOAk4JiYTJSUlJQEZJw0WUlQYDSfoUlIWDScnDWIJJgkJJgoSJQk4Cgo4CiWWCSYJCSYKEzkKOAkJOAkmE3ASAAAAAAIAAAAAAQcBHQAVABoAADc1ND4BFhczLgEOAR0BIwcVFzM3NScHMxUjNV4aKSMHFAguOCYTEhK8ExMmJrypJRUfBxUTGyAHKh0lE3ATE3ATE3BwAAUAAAAAARoBGgAJABEAHgAnAC8AADczNxcVBycjJzUfATUPASMVMzcUBgcnPgEnNic3HgEHFAcnNjQnNxYHFAcnNic3Fhw0SRAQSTQJSDs7By4uxQ8ODgwNAQEZDg4PJRMNDQ0NEyYIDgcHDgjRSAb0BkgJXlc7xjoDSyUXKhINDyQTJx8NESsXHxkNFC8TDRkfEA0ODxANDQAAAAQAAAAAARUBFAAXAC8AWwBfAAA3MzczNzU3NSc1JyMnIwcjBxUHFRcVFzM3IzUvAT8BNTM/AR8BMxUfAQ8BFSMPASc3Bg8BIzU2Nz4DMzIeAhQOAQ8BDgEdASM1NDY/AT4BNCcxLgEnMSYiBhcjNTOQDSAtCiAgCS4gDR8vCh8fCi8DKQIdHAMpBhwdBigDHR0DKAccHBUCAQERAQMCBAcJBQgLCAMEBQMGAgQRBAMLAwMBAQMCAwYGDxAQGCAKLSAOIC4JICAKLSAOIC0KEygHHBwHKAMcHAMoBxwcBygDHBxxAwMGAQkHAwYEAwUICwwJCAQHAwYDCQoFCAMOAwgHAwIEAQIEXRAAAAAGAAAAAAEsARoAQgBOAFoAYgBmAGoAADc0Nh8BFjI2PwInLgIiBzU3Fh8BNz4DFhUUIyImIgYHBgcXFh8BFjI3Nj8BFw4DIi4BLwEmJw8BDgIiJhc+ATQmJzMWFRQGByMuATU0NzMOARUUFzchBxUXITc1ByE1ITUhNSFlBwQFAQMFAwsGBwEFBgcDGwYDBQUDCQkJBggDBQYGAwUECAEBAgEEAQUDAwMBBgcIBgUDAQQBAQkGAwgHCAZzBwkJBw0SCQmeCQkSDQgIEM/+5gkJARoJE/76AQb++gEGVAQFAgQBBQMQDRsDBQMBBAUGCBAIBgkGAQQECAMGBAYIIgQDAwEBBAUEAgMIBwYEBgMUBAMPCQUGBQUFChgaGAoVGg4XCgkZDRoVChkMGxTOCfQJCfTqqBMmAAACAAAAAAEVARQAFwAeAAA3IycjJzUnNTc1NzM3MxczFxUXFQcVByMnMzcnBycHnQ0fLwofHwovHw0gLgkgIAotPw5GDUAaDRggCi0gDiAtCiAgCS4gDiAtCjBGDkEaDQADAAAAAAEVARQAFwAvADYAADczNzM3NTc1JzUnIycjByMHFQcVFxUXMzcjNS8BPwE1Mz8BHwEzFR8BDwEVIw8BJzczNycHJweQDSAtCiAgCS4gDR8vCh8fCi8DKQIdHAMpBhwdBigDHR0DKAccHAQORg1AGg0YIAotIA4gLgkgIAotIA4gLQoTKAccHAcoAxwcAygHHBwHKAMcHCBGDkEaDQAAAAQAAAAAARoA9AAHAAsAFgAhAAA3BxUXMzc1JxUjNTMHNTM1IwcVFzM1Iyc1MzUjBxUXMzUjlhMTcRIScXGpEx0JCR0TOBIcCQkcEvQTlhMTlhOpll5LEwmECRM4JhIJXgkTAAADAAD//wEuAQcAEgAfACYAABMzFxUmJzUjFTMUFyM1MzUjJzUXPgEeAg4CLgI2FzcnBycHFxz0CQgL4F0TSzhnCaQRKCQXAhIhKCQWAxI4LQ8nGAwgAQcKZwcEU6kfGRMSCrt0DAIRIigkFwISISgkUjsMNBMOGgAFAAAAAAEsAQcAEgAfACsAMQA3AAATMxcVJic1IxUzFBcjNTM1Iyc1FyIOARQeATI+ATQuAQciLgE0PgEzMhYUBicXNyc3JwcnNxcHJxz0CQgL4F0TSzhnCc4UIxQUIygjFBQjFA8aDw8aDxchIRUbCRMTCTASCBsbCAEHCmcHBFOpHxkTEgq7ZxQjKCMUFCMoIxSDDxoeGg8hLiFDGwgTEgguEggaGwgAAAAAAwAAAAABLAEHABIAHwArAAATMxcVJic1IxUzFBcjNTM1Iyc1FyIOARQeATI+ATQuAQciLgE0PgEzMhYUBhz0CQgL4F0TSzhnCc4UIxQUIygjFBQjFA8aDw8aDxchIQEHCmcHBFOpHxkTEgq7ZxQjKCMUFCMoIxSDDxoeGg8hLiEAAAAAAwAA//4BLgEHABIALgAxAAATMxcVJic1IxUzFBcjNTM1Iyc1FzIeAhceAQcOAgcOAScuAicuATc+Ajc2FycVHPQJCAvgXRNLOGcJzgoTEQ4FBwQEAgoOCA0eDwkRDgUHBAQCCg4IEjo5AQcKZwcEU6kfGRMSCrtnBQoOCA0eDwkRDgUHBAQCCg4IDR4PCREOBQpLJksAAAACAAAAAAEaAQcADwATAAABIwcVFzMVIxUzNSM1Mzc1ByM1MwEQ9AkJZziWOGcJEuHhAQcKuwoSExMSCruyqQAABgAAAAABLAD0ABkAMwA3ADsARwBTAAA3MzIWHQEUBisBIi8BJiIPAQYrASImPQE0NhciBh0BHgE7ATI/ATYyHwEWOwEyNj0BNCYjBzMVIyUzFSMnMhYUBisBIiY0NjsBMhYUBisBIiY0NjNLlhchIRcHEQ8PChYKDw8RBxchIRcQFgEVEAcMCRAOIg4QCQwHEBYWEOETEwEZExOfBAUFBC8EBQUElgQFBQQvBAUFBPQhF0sYIQoKBgYKCiEYSxchExYPSxAWBgsJCQsGFhBLDxY4ODg4JQUIBgYIBQUIBgYIBQAABAAAAAABBwEZAAUAEQAfACkAABMHFzc1NBUnJiIPAQ4BHwE2NTcWHQEUBzc+AT0BNiYnBzcXBwYiLwEmNLdPKCyMAggDDQMBBKEFDgQENAQEAQUE6BYfGwIIAw0DARJIHyE7BppqAgMMAwkDlAUG4QkJzwkJGQIIBKUECAGBFRwVAgMMAwkAAAEAAAAAAQcBGgAqAAA3BicmLwEHBiIvASY0PwEnJjQ/ATYyHwE3PgEfAR4BHQEjNQcXNTMVFAYHzAYGAwNgKgIIAw0DAyQkAwMNAwgCKmIECAQyBAQ8SUk9BQQnAwMBAlggAgMMAwkDISIDCQMMAwIgWQMBAhkBCARcQTg3LkkECAIAAAYAAAAAARoBGgALABcAIwAwADgAQAAANzM1MzUjNSMVIxUzFyMVIxUzFTM1MzUjNzUjFSMVMxUzNTM1ByYiDwEGFBYyPwE2NAcGIiY0PwEXNwcnNzYyFhRSExMTExMTlhMSEhMTEx8TExMTEkoIFwmMCBAYCIwIogIIBgN5DhMGDQYCCAbOExMTExNeEhMTExOWEhITExMTLggIjQgXEQmMCBeeAwYHA3kNEwYOBgIFCAAAAAQAAAAAARkBGgAFAAgADAAQAAATMxcHIyc3BzMnNSMVPQEzFY4Qewj2CINr1l8YGAEZ5g0NzskTExMmS0sAAAADAAAAAAD0ARoABgAaACcAADczNSM1IxUnDgEUFhcVFzM3NT4BNCYnNScjBxcUDgEiLgE0PgEyHgGNJRwTHBYZGRYKSwkWGRkWCUsKehQjKCMUFCMoIxSDEy84WgwsMiwMKQkJKQwsMiwMKQkJehQjFBQjKCMUFCMAAAAAAwAAAAAA4QEaABEAGQAdAAATNSMiDgEUHgE7ARUjFTM1IzUHIyImNDY7ARcjNTPhZxIeEhIeEhwTXhM4HBQbGxQcJhMTAQcSER8jHhJeEhLPXhsnHM/PAAUAAAAAASwA9wAHABwAJwA3AEMAADUzFSE1MxUhNyM1IwYjIiY1ND8BNCMiBzU2MzIVDwEOARUUFjMyNjUXMRUjNTMVMTYzMhYVFAYiJxUUFjMyNjU0JiIGEwEGE/7UgBABChUQESIfFhIPDxQkEBkMCwoJDRA/EREMGBQWGSoLEA0PERAcEV4mJjg4EBMRDR0FBBoMEQkmDwQBCAsHChEOGw+YQxQbGBofOw4NEhcVERMUAAMAAAAAARoBBwAHAAsADwAAASMHFRczNzUHIzUzNSM1MwEQ9AkJ9AkS4eHh4QEHCs4JCc7FhBImAAAAAAYAAAAAARoBGgAfAC8ARQBaAHoAigAANyYnJgcGDwEVNz4BMhYXBw4CBwYWFxYzMjcVMzU0JgcVFAcOAScuAj0BND4BMzcuAiIHBgc1IxUzNRYXFjMyPgI0BxQOAQcGJy4CPQE+Axc2Fx4BBz4BMhYfATUnJg4DFB4CMjY/ATUPAQYnLgI0NjcjNTMXFQcjFwcnNTcXBzNJBAUJCwcGBgQECwsFARIHCQYBAwYJBQULBxMDDwECCgUCAgEDBANrAQYLDgUDAhISAwYCBAcLBwQSAgQCBgUCBAIBAgMFAwYEAQJeAwYIBgMHAggSDgoFBQkNDgoEAgYKBgYDBQME3EtUCQl8Jw42Ng4mcusFAgMCAQMDFAMDBQYGAgEFBwQKEgQCCQcxBwsfBQMDBgUCAQIDAgQBAwIWBgsHBAIDLnQFBQEBBgwQEAcHCgYBAwICBAYECgQIBQMBAQYCCWADAwICBRUBBQEGDA8RDgoGAwIBEQIEAQICBggLCU0SCXEJJw02DTcOJQAAAwAAAAABJQEtACQAPwBMAAATMh4CFxYXFhcWMxUUDgQPAScuBT0BMj4CNz4BFy4BJy4BIgYHDgEHFRQeBBc+BTUvAQ8BLwEPAR8CPwGXCA0NDAcKCxUXDAsLExkfIREEBREiHhoTCgsYFhUKDBqIFSkSCRYWFQkSKRYKERgaHg8QHRsXEgk0CAhRHAgIAiQECQRbASwCBAYEBgUIAgFKFiYjHhsXCgMDChcbHiMnFEwBBQkGCAg4AQwMBgYGBgwMATkSIiAbGBUJCRQZGyAiEhkHAWAnAgcHMwIBAmsAAAAEAAAAAAElAS0AJAA/AGkAcQAAEzIeAhcWFxYXMhcVFA4EDwEnLgU9ARY+Ajc+ARcuAScuASIGBw4BBxUUHgQXPgU1Jx4BFA4BDwEOAR0BByMnNTQ+AT8BPgE0JicmIgcOARUHIyc0PgE3NhcWBzczFxUHIyeXCA0NDAcKCxUWDQsLExkfIREFBBEiHhoTCgsYFhUKDBqIFSkSCRYWFQkSKRYKERgaHg8QHRsXEQpgBQYFBgQGAwMDDQMFBgQGAwMDAgUPBQIDAw0DBgoGDg8GHgMNAwMNAwEsAgQGBAYFCAIBShYmIx4bFwoDAwoXGx4jJxRMAQIFCQYICDgBDAwGBgYGDAwBORIiIBsYFQkJFBkbICISGQYMDgsIAwYDBgQGAwMGBwsHAwYEBgcGAwUFAwYEAgIIDQoCBgYDYQMDDQMDAAADAAAAAAElAS0AJAA/AFMAABMyHgIXFhcWFzIXFRQOBA8BJy4FPQEWPgI3PgEXLgEnLgEiBgcOAQcVFB4EFz4FNS8BIwcnIwcVFwcVFzM3FzM3NSc3lwgNDQwHCgsVFg0LCxMZHyERBQQRIh4aEwoLGBYVCgwaiBUpEgkWFhUJEikWChEYGh4PEB0bFxEKRwcEJSUECCUlCAQlJQQHJSUBLAIEBgQGBQgCAUoWJiMeGxcKAwMKFxseIycUTAECBQkGCAg4AQwMBgYGBgwMATkSIiAbGBUJCRQZGyAiEgsIJiYIBCUlBAgmJggEJSUAAAADAAAAAAEaAR4ADgAfACsAADcWBgcXBycOAS4BPgEeAQcyNjcHPgE1NC4BIg4BFB4BNzUjNSMVIxUzFTM14gENDFAOTxxIORMcP0cwZBEfDAEMDhcnLiYXFyZFJRMmJhO5FCYQTw5QFwIrRUIjDDWADQwBDB8RFycXFyctJxdLEyUlEyUlAAAAAwAAAAABGgEeAA4AHwAjAAA3FgYHFwcnDgEuAT4BHgEHMjY3Bz4BNTQuASIOARQeASczFSPiAQ0MUA5PHEg5Exw/RzBkER8MAQwOFycuJhcXJhhdXbkUJhBPDlAXAitFQiMMNYANDAEMHxEXJxcXJy0nF10SAAAAAAAQAMYAAQAAAAAAAQAHAAAAAQAAAAAAAgAHAAcAAQAAAAAAAwAHAA4AAQAAAAAABAAHABUAAQAAAAAABQAMABwAAQAAAAAABgAHACgAAQAAAAAACgAkAC8AAQAAAAAACwATAFMAAwABBAkAAQAOAGYAAwABBAkAAgAOAHQAAwABBAkAAwAOAIIAAwABBAkABAAOAJAAAwABBAkABQAYAJ4AAwABBAkABgAOALYAAwABBAkACgBIAMQAAwABBAkACwAmAQxjb2RpY29uUmVndWxhcmNvZGljb25jb2RpY29uVmVyc2lvbiAxLjExY29kaWNvblRoZSBpY29uIGZvbnQgZm9yIFZpc3VhbCBTdHVkaW8gQ29kZWh0dHA6Ly9mb250ZWxsby5jb20AYwBvAGQAaQBjAG8AbgBSAGUAZwB1AGwAYQByAGMAbwBkAGkAYwBvAG4AYwBvAGQAaQBjAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADEAMQBjAG8AZABpAGMAbwBuAFQAaABlACAAaQBjAG8AbgAgAGYAbwBuAHQAIABmAG8AcgAgAFYAaQBzAHUAYQBsACAAUwB0AHUAZABpAG8AIABDAG8AZABlAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHOAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAAdhY2NvdW50FGFjdGl2YXRlLWJyZWFrcG9pbnRzA2FkZAdhcmNoaXZlCmFycm93LWJvdGgRYXJyb3ctY2lyY2xlLWRvd24RYXJyb3ctY2lyY2xlLWxlZnQSYXJyb3ctY2lyY2xlLXJpZ2h0D2Fycm93LWNpcmNsZS11cAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQQYXJyb3ctc21hbGwtZG93bhBhcnJvdy1zbWFsbC1sZWZ0EWFycm93LXNtYWxsLXJpZ2h0DmFycm93LXNtYWxsLXVwCmFycm93LXN3YXAIYXJyb3ctdXAGYXR0YWNoDGF6dXJlLWRldm9wcwVhenVyZQtiZWFrZXItc3RvcAZiZWFrZXIIYmVsbC1kb3QOYmVsbC1zbGFzaC1kb3QKYmVsbC1zbGFzaARiZWxsBWJsYW5rBGJvbGQEYm9vawhib29rbWFyawticmFja2V0LWRvdA1icmFja2V0LWVycm9yCWJyaWVmY2FzZQlicm9hZGNhc3QHYnJvd3NlcgNidWcIY2FsZW5kYXINY2FsbC1pbmNvbWluZw1jYWxsLW91dGdvaW5nDmNhc2Utc2Vuc2l0aXZlCWNoZWNrLWFsbAVjaGVjawljaGVja2xpc3QMY2hldnJvbi1kb3duDGNoZXZyb24tbGVmdA1jaGV2cm9uLXJpZ2h0CmNoZXZyb24tdXAEY2hpcAxjaHJvbWUtY2xvc2UPY2hyb21lLW1heGltaXplD2Nocm9tZS1taW5pbWl6ZQ5jaHJvbWUtcmVzdG9yZQ1jaXJjbGUtZmlsbGVkE2NpcmNsZS1sYXJnZS1maWxsZWQMY2lyY2xlLWxhcmdlDGNpcmNsZS1zbGFzaBNjaXJjbGUtc21hbGwtZmlsbGVkDGNpcmNsZS1zbWFsbAZjaXJjbGUNY2lyY3VpdC1ib2FyZAljbGVhci1hbGwGY2xpcHB5CWNsb3NlLWFsbAVjbG9zZQ5jbG91ZC1kb3dubG9hZAxjbG91ZC11cGxvYWQFY2xvdWQIY29kZS1vc3MEY29kZQZjb2ZmZWUMY29sbGFwc2UtYWxsCmNvbG9yLW1vZGUHY29tYmluZRJjb21tZW50LWRpc2N1c3Npb24NY29tbWVudC1kcmFmdBJjb21tZW50LXVucmVzb2x2ZWQHY29tbWVudA5jb21wYXNzLWFjdGl2ZQtjb21wYXNzLWRvdAdjb21wYXNzB2NvcGlsb3QEY29weQhjb3ZlcmFnZQtjcmVkaXQtY2FyZARkYXNoCWRhc2hib2FyZAhkYXRhYmFzZQlkZWJ1Zy1hbGwPZGVidWctYWx0LXNtYWxsCWRlYnVnLWFsdCdkZWJ1Zy1icmVha3BvaW50LWNvbmRpdGlvbmFsLXVudmVyaWZpZWQcZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCBkZWJ1Zy1icmVha3BvaW50LWRhdGEtdW52ZXJpZmllZBVkZWJ1Zy1icmVha3BvaW50LWRhdGEkZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi11bnZlcmlmaWVkGWRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24fZGVidWctYnJlYWtwb2ludC1sb2ctdW52ZXJpZmllZBRkZWJ1Zy1icmVha3BvaW50LWxvZxxkZWJ1Zy1icmVha3BvaW50LXVuc3VwcG9ydGVkDWRlYnVnLWNvbnNvbGUUZGVidWctY29udGludWUtc21hbGwOZGVidWctY29udGludWUOZGVidWctY292ZXJhZ2UQZGVidWctZGlzY29ubmVjdBJkZWJ1Zy1saW5lLWJ5LWxpbmULZGVidWctcGF1c2ULZGVidWctcmVydW4TZGVidWctcmVzdGFydC1mcmFtZQ1kZWJ1Zy1yZXN0YXJ0FmRlYnVnLXJldmVyc2UtY29udGludWUXZGVidWctc3RhY2tmcmFtZS1hY3RpdmUQZGVidWctc3RhY2tmcmFtZQtkZWJ1Zy1zdGFydA9kZWJ1Zy1zdGVwLWJhY2sPZGVidWctc3RlcC1pbnRvDmRlYnVnLXN0ZXAtb3V0D2RlYnVnLXN0ZXAtb3ZlcgpkZWJ1Zy1zdG9wBWRlYnVnEGRlc2t0b3AtZG93bmxvYWQTZGV2aWNlLWNhbWVyYS12aWRlbw1kZXZpY2UtY2FtZXJhDWRldmljZS1tb2JpbGUKZGlmZi1hZGRlZAxkaWZmLWlnbm9yZWQNZGlmZi1tb2RpZmllZA1kaWZmLW11bHRpcGxlDGRpZmYtcmVtb3ZlZAxkaWZmLXJlbmFtZWQLZGlmZi1zaW5nbGUEZGlmZgdkaXNjYXJkBGVkaXQNZWRpdG9yLWxheW91dAhlbGxpcHNpcwxlbXB0eS13aW5kb3cLZXJyb3Itc21hbGwFZXJyb3IHZXhjbHVkZQpleHBhbmQtYWxsBmV4cG9ydApleHRlbnNpb25zCmV5ZS1jbG9zZWQDZXllCGZlZWRiYWNrC2ZpbGUtYmluYXJ5CWZpbGUtY29kZQpmaWxlLW1lZGlhCGZpbGUtcGRmDmZpbGUtc3VibW9kdWxlFmZpbGUtc3ltbGluay1kaXJlY3RvcnkRZmlsZS1zeW1saW5rLWZpbGUIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgVmbGFtZQlmb2xkLWRvd24HZm9sZC11cARmb2xkDWZvbGRlci1hY3RpdmUOZm9sZGVyLWxpYnJhcnkNZm9sZGVyLW9wZW5lZAZmb2xkZXIEZ2FtZQRnZWFyBGdpZnQLZ2lzdC1zZWNyZXQKZ2l0LWNvbW1pdAtnaXQtY29tcGFyZQlnaXQtZmV0Y2gJZ2l0LW1lcmdlF2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkF2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlFmdpdC1wdWxsLXJlcXVlc3QtZHJhZnQeZ2l0LXB1bGwtcmVxdWVzdC1nby10by1jaGFuZ2VzHGdpdC1wdWxsLXJlcXVlc3QtbmV3LWNoYW5nZXMQZ2l0LXB1bGwtcmVxdWVzdA9naXQtc3Rhc2gtYXBwbHkNZ2l0LXN0YXNoLXBvcAlnaXQtc3Rhc2gNZ2l0aHViLWFjdGlvbgpnaXRodWItYWx0D2dpdGh1Yi1pbnZlcnRlZA5naXRodWItcHJvamVjdAZnaXRodWIFZ2xvYmUKZ28tdG8tZmlsZQxnby10by1zZWFyY2gHZ3JhYmJlcgpncmFwaC1sZWZ0CmdyYXBoLWxpbmUNZ3JhcGgtc2NhdHRlcgVncmFwaAdncmlwcGVyEWdyb3VwLWJ5LXJlZi10eXBlDGhlYXJ0LWZpbGxlZAVoZWFydAdoaXN0b3J5BGhvbWUPaG9yaXpvbnRhbC1ydWxlBWh1Ym90BWluYm94BmluZGVudARpbmZvBmluc2VydAdpbnNwZWN0C2lzc3VlLWRyYWZ0Dmlzc3VlLXJlb3BlbmVkBmlzc3VlcwZpdGFsaWMGamVyc2V5BGpzb24Oa2ViYWItdmVydGljYWwDa2V5A2xhdw1sYXllcnMtYWN0aXZlCmxheWVycy1kb3QGbGF5ZXJzF2xheW91dC1hY3Rpdml0eWJhci1sZWZ0GGxheW91dC1hY3Rpdml0eWJhci1yaWdodA9sYXlvdXQtY2VudGVyZWQObGF5b3V0LW1lbnViYXITbGF5b3V0LXBhbmVsLWNlbnRlchRsYXlvdXQtcGFuZWwtanVzdGlmeRFsYXlvdXQtcGFuZWwtbGVmdBBsYXlvdXQtcGFuZWwtb2ZmEmxheW91dC1wYW5lbC1yaWdodAxsYXlvdXQtcGFuZWwXbGF5b3V0LXNpZGViYXItbGVmdC1vZmYTbGF5b3V0LXNpZGViYXItbGVmdBhsYXlvdXQtc2lkZWJhci1yaWdodC1vZmYUbGF5b3V0LXNpZGViYXItcmlnaHQQbGF5b3V0LXN0YXR1c2JhcgZsYXlvdXQHbGlicmFyeRFsaWdodGJ1bGItYXV0b2ZpeBFsaWdodGJ1bGItc3BhcmtsZQlsaWdodGJ1bGINbGluay1leHRlcm5hbARsaW5rC2xpc3QtZmlsdGVyCWxpc3QtZmxhdAxsaXN0LW9yZGVyZWQObGlzdC1zZWxlY3Rpb24JbGlzdC10cmVlDmxpc3QtdW5vcmRlcmVkCmxpdmUtc2hhcmUHbG9hZGluZwhsb2NhdGlvbgpsb2NrLXNtYWxsBGxvY2sGbWFnbmV0CW1haWwtcmVhZARtYWlsCm1hcC1maWxsZWQTbWFwLXZlcnRpY2FsLWZpbGxlZAxtYXAtdmVydGljYWwDbWFwCG1hcmtkb3duCW1lZ2FwaG9uZQdtZW50aW9uBG1lbnUFbWVyZ2UKbWljLWZpbGxlZANtaWMJbWlsZXN0b25lBm1pcnJvcgxtb3J0YXItYm9hcmQEbW92ZRBtdWx0aXBsZS13aW5kb3dzBW11c2ljBG11dGUIbmV3LWZpbGUKbmV3LWZvbGRlcgduZXdsaW5lCm5vLW5ld2xpbmUEbm90ZRFub3RlYm9vay10ZW1wbGF0ZQhub3RlYm9vawhvY3RvZmFjZQxvcGVuLXByZXZpZXcMb3JnYW5pemF0aW9uBm91dHB1dAdwYWNrYWdlCHBhaW50Y2FuC3Bhc3MtZmlsbGVkBHBhc3MKcGVyY2VudGFnZQpwZXJzb24tYWRkBnBlcnNvbgVwaWFubwlwaWUtY2hhcnQDcGluDHBpbm5lZC1kaXJ0eQZwaW5uZWQLcGxheS1jaXJjbGUEcGxheQRwbHVnDXByZXNlcnZlLWNhc2UHcHJldmlldxBwcmltaXRpdmUtc3F1YXJlB3Byb2plY3QFcHVsc2UIcXVlc3Rpb24FcXVvdGULcmFkaW8tdG93ZXIJcmVhY3Rpb25zC3JlY29yZC1rZXlzDHJlY29yZC1zbWFsbAZyZWNvcmQEcmVkbwpyZWZlcmVuY2VzB3JlZnJlc2gFcmVnZXgPcmVtb3RlLWV4cGxvcmVyBnJlbW90ZQZyZW1vdmULcmVwbGFjZS1hbGwHcmVwbGFjZQVyZXBseQpyZXBvLWNsb25lCnJlcG8tZmV0Y2gPcmVwby1mb3JjZS1wdXNoC3JlcG8tZm9ya2VkCXJlcG8tcHVsbAlyZXBvLXB1c2gEcmVwbwZyZXBvcnQPcmVxdWVzdC1jaGFuZ2VzBXJvYm90BnJvY2tldBJyb290LWZvbGRlci1vcGVuZWQLcm9vdC1mb2xkZXIDcnNzBHJ1YnkJcnVuLWFib3ZlEHJ1bi1hbGwtY292ZXJhZ2UHcnVuLWFsbAlydW4tYmVsb3cMcnVuLWNvdmVyYWdlCnJ1bi1lcnJvcnMIc2F2ZS1hbGwHc2F2ZS1hcwRzYXZlC3NjcmVlbi1mdWxsDXNjcmVlbi1ub3JtYWwMc2VhcmNoLWZ1enp5C3NlYXJjaC1zdG9wBnNlYXJjaARzZW5kEnNlcnZlci1lbnZpcm9ubWVudA5zZXJ2ZXItcHJvY2VzcwZzZXJ2ZXINc2V0dGluZ3MtZ2VhcghzZXR0aW5ncwVzaGFyZQZzaGllbGQHc2lnbi1pbghzaWduLW91dAZzbWlsZXkFc25ha2UPc29ydC1wcmVjZWRlbmNlDnNvdXJjZS1jb250cm9sDnNwYXJrbGUtZmlsbGVkB3NwYXJrbGUQc3BsaXQtaG9yaXpvbnRhbA5zcGxpdC12ZXJ0aWNhbAhzcXVpcnJlbApzdGFyLWVtcHR5CXN0YXItZnVsbAlzdGFyLWhhbGYLc3RvcC1jaXJjbGUNc3Vycm91bmQtd2l0aAxzeW1ib2wtYXJyYXkOc3ltYm9sLWJvb2xlYW4Mc3ltYm9sLWNsYXNzDHN5bWJvbC1jb2xvcg9zeW1ib2wtY29uc3RhbnQSc3ltYm9sLWVudW0tbWVtYmVyC3N5bWJvbC1lbnVtDHN5bWJvbC1ldmVudAxzeW1ib2wtZmllbGQLc3ltYm9sLWZpbGUQc3ltYm9sLWludGVyZmFjZQpzeW1ib2wta2V5DnN5bWJvbC1rZXl3b3JkDXN5bWJvbC1tZXRob2QLc3ltYm9sLW1pc2MQc3ltYm9sLW5hbWVzcGFjZQ5zeW1ib2wtbnVtZXJpYw9zeW1ib2wtb3BlcmF0b3IQc3ltYm9sLXBhcmFtZXRlcg9zeW1ib2wtcHJvcGVydHkMc3ltYm9sLXJ1bGVyDnN5bWJvbC1zbmlwcGV0DXN5bWJvbC1zdHJpbmcQc3ltYm9sLXN0cnVjdHVyZQ9zeW1ib2wtdmFyaWFibGUMc3luYy1pZ25vcmVkBHN5bmMFdGFibGUDdGFnBnRhcmdldAh0YXNrbGlzdAl0ZWxlc2NvcGUNdGVybWluYWwtYmFzaAx0ZXJtaW5hbC1jbWQPdGVybWluYWwtZGViaWFuDnRlcm1pbmFsLWxpbnV4E3Rlcm1pbmFsLXBvd2Vyc2hlbGwNdGVybWluYWwtdG11eA90ZXJtaW5hbC11YnVudHUIdGVybWluYWwJdGV4dC1zaXplCnRocmVlLWJhcnMRdGh1bWJzZG93bi1maWxsZWQKdGh1bWJzZG93bg90aHVtYnN1cC1maWxsZWQIdGh1bWJzdXAFdG9vbHMFdHJhc2gNdHJpYW5nbGUtZG93bg10cmlhbmdsZS1sZWZ0DnRyaWFuZ2xlLXJpZ2h0C3RyaWFuZ2xlLXVwB3R3aXR0ZXISdHlwZS1oaWVyYXJjaHktc3ViFHR5cGUtaGllcmFyY2h5LXN1cGVyDnR5cGUtaGllcmFyY2h5BnVuZm9sZBN1bmdyb3VwLWJ5LXJlZi10eXBlBnVubG9jawZ1bm11dGUKdW52ZXJpZmllZA52YXJpYWJsZS1ncm91cA92ZXJpZmllZC1maWxsZWQIdmVyaWZpZWQIdmVyc2lvbnMJdm0tYWN0aXZlCnZtLWNvbm5lY3QKdm0tb3V0bGluZQp2bS1ydW5uaW5nAnZtAnZyD3ZzY29kZS1pbnNpZGVycwZ2c2NvZGUEd2FuZAd3YXJuaW5nBXdhdGNoCndoaXRlc3BhY2UKd2hvbGUtd29yZAZ3aW5kb3cJd29yZC13cmFwEXdvcmtzcGFjZS10cnVzdGVkEXdvcmtzcGFjZS11bmtub3duE3dvcmtzcGFjZS11bnRydXN0ZWQHem9vbS1pbgh6b29tLW91dAAA) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;z-index:1}.monaco-editor .glyph-margin-widgets .cgmr[class*=codicon-gutter-lightbulb]{display:block;cursor:pointer}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.action-widget{font-size:13px;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .hover-row.status-bar .actions .action-container a{color:var(--vscode-textLink-foreground);text-decoration:var(--text-link-decoration)}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon{margin-bottom:2px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center;border-radius:2px;padding-right:2px}.monaco-action-bar .checkbox-action-item:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:0px;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-iconpath{width:16px;height:16px;padding-left:2px;margin-top:2px;display:flex}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover-content{padding-right:2px;padding-bottom:2px;box-sizing:border-box}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row{display:flex}.monaco-editor .monaco-hover .hover-row .hover-row-contents{min-width:0;display:flex;flex-direction:column}.monaco-editor .monaco-hover .hover-row .verbosity-actions{display:flex;flex-direction:column;padding-left:5px;padding-right:5px;justify-content:end;border-right:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled{opacity:.6}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground);border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:var(--vscode-editorWidget-background)}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px;outline-color:var(--vscode-focusBorder)}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);padding:1px;box-sizing:border-box}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{left:0!important;background-color:var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border))}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:var(--vscode-editor-foldPlaceholderForeground);margin:.1em .2em 0;content:"⋯";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer;color:var(--vscode-textLink-activeForeground)}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.preferences-editor .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info,.preferences-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic}.monaco-editor .inline-edit-hidden{opacity:0;font-size:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineEditHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .inlineEditSideBySide{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);white-space:pre}.monaco-editor div.inline-edits-widget{--widget-color: var(--vscode-notifications-background)}.monaco-editor div.inline-edits-widget .promptEditor .monaco-editor{--vscode-editor-placeholder-foreground: var(--vscode-editorGhostText-foreground)}.monaco-editor div.inline-edits-widget .toolbar,.monaco-editor div.inline-edits-widget .promptEditor{opacity:0;transition:opacity .2s ease-in-out}.monaco-editor div.inline-edits-widget:hover .toolbar,.monaco-editor div.inline-edits-widget:hover .promptEditor,.monaco-editor div.inline-edits-widget.focused .toolbar,.monaco-editor div.inline-edits-widget.focused .promptEditor{opacity:1}.monaco-editor div.inline-edits-widget .preview .monaco-editor{--vscode-editor-background: var(--widget-color)}.monaco-editor div.inline-edits-widget .preview .monaco-editor .mtk1{color:var(--vscode-editorGhostText-foreground)}.monaco-editor div.inline-edits-widget .preview .monaco-editor .view-overlays .current-line-exact,.monaco-editor div.inline-edits-widget .preview .monaco-editor .current-line-margin{border:none}.monaco-editor div.inline-edits-widget svg .gradient-start{stop-color:var(--vscode-editor-background)}.monaco-editor div.inline-edits-widget svg .gradient-stop{stop-color:var(--widget-color)}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .code{font-family:var(--vscode-parameterHintsWidget-editorFontFamily),var(--vscode-parameterHintsWidget-editorFontFamilyDefault)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor{--vscode-editor-placeholder-foreground: var(--vscode-editorGhostText-foreground)}.monaco-editor .editorPlaceholder{top:0;position:absolute;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;pointer-events:none;color:var(--vscode-editor-placeholder-foreground)}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{padding:3px;border-radius:2px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{width:calc(100% - 8px);padding:0}.monaco-editor .rename-box .rename-input:focus{outline:none}.monaco-editor .rename-box .rename-suggestions-button{display:flex;align-items:center;padding:3px;background-color:transparent;border:none;border-radius:5px;cursor:pointer}.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-number,.monaco-editor .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background);right:initial!important}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor,.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-workbench .workbench-hover{position:relative;font-size:13px;line-height:19px;z-index:40;overflow:hidden;max-width:700px;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:0 2px 8px var(--vscode-widget-shadow)}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{position:absolute;z-index:41;pointer-events:none}.monaco-workbench .workbench-hover-pointer:after{content:"";position:absolute;width:5px;height:5px;background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .locked .workbench-hover-pointer:after{width:4px;height:4px;border-right-width:2px;border-bottom-width:2px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-offset:-1px;text-decoration:underline;outline-color:var(--vscode-focusBorder)}.monaco-workbench .workbench-hover a:hover,.monaco-workbench .workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-right:0;margin-left:16px}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-right-radius:5px;border-top-left-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-inline-action-bar{margin:2px 0 0 5px}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{font-weight:700;background-color:unset;color:var(--vscode-list-highlightForeground)!important}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{padding:4px 6px;font-size:12px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);position:relative;height:100%;width:100%;overflow-y:hidden}.monaco-component.multiDiffEditor>div{position:absolute;top:0;left:0;height:100%;width:100%}.monaco-component.multiDiffEditor>div.placeholder{visibility:hidden;display:grid;place-items:center;place-content:center}.monaco-component.multiDiffEditor>div.placeholder.visible{visibility:visible}.monaco-component.multiDiffEditor .active{--vscode-multiDiffEditor-border: var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{display:flex;flex-direction:column;flex:1;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{z-index:1000;background:var(--vscode-editor-background)}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{margin:8px 0 0;padding:4px 5px;border-top:1px solid var(--vscode-multiDiffEditor-border);display:flex;align-items:center;color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{display:flex;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{flex:1;min-width:0;text-overflow:ellipsis}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{font-weight:600;opacity:.75;margin:0 10px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{flex:1;display:flex;flex-direction:column;border-bottom:1px solid var(--vscode-multiDiffEditor-border);overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}.editor{position:relative;height:100%;width:100%;overflow:hidden}body{margin:0;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;--base: #444;--nav-height: 50px}.vue-repl{height:calc(100vh - var(--nav-height))!important}.dark .vue-repl,.vue-repl{--color-branding: var(--el-color-primary) !important}.dark body{background-color:#1a1a1a}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255,255,255,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.dark .dark\:i-ri-moon-line,.dark [dark\:i-ri-moon-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2h.1A6.98 6.98 0 0 0 10 7m-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938A8 8 0 0 0 4 12'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri-github-fill,[i-ri-github-fill=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12.001 2c-5.525 0-10 4.475-10 10a9.99 9.99 0 0 0 6.837 9.488c.5.087.688-.213.688-.476c0-.237-.013-1.024-.013-1.862c-2.512.463-3.162-.612-3.362-1.175c-.113-.288-.6-1.175-1.025-1.413c-.35-.187-.85-.65-.013-.662c.788-.013 1.35.725 1.538 1.025c.9 1.512 2.337 1.087 2.912.825c.088-.65.35-1.087.638-1.337c-2.225-.25-4.55-1.113-4.55-4.938c0-1.088.387-1.987 1.025-2.687c-.1-.25-.45-1.275.1-2.65c0 0 .837-.263 2.75 1.024a9.3 9.3 0 0 1 2.5-.337c.85 0 1.7.112 2.5.337c1.913-1.3 2.75-1.024 2.75-1.024c.55 1.375.2 2.4.1 2.65c.637.7 1.025 1.587 1.025 2.687c0 3.838-2.337 4.688-4.562 4.938c.362.312.675.912.675 1.85c0 1.337-.013 2.412-.013 2.75c0 .262.188.574.688.474A10.02 10.02 0 0 0 22 12c0-5.525-4.475-10-10-10'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri-question-line,[i-ri-question-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10m0-2a8 8 0 1 0 0-16a8 8 0 0 0 0 16m-1-5h2v2h-2zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1a1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri-refresh-line,[i-ri-refresh-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M5.463 4.433A9.96 9.96 0 0 1 12 2c5.523 0 10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228zm13.074 15.134A9.96 9.96 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri-share-line,[i-ri-share-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m13.12 17.023l-4.199-2.29a4 4 0 1 1 0-5.465l4.2-2.29a4 4 0 1 1 .958 1.755l-4.2 2.29a4 4 0 0 1 0 1.954l4.2 2.29a4 4 0 1 1-.959 1.755M6 14a2 2 0 1 0 0-4a2 2 0 0 0 0 4m11-6a2 2 0 1 0 0-4a2 2 0 0 0 0 4m0 12a2 2 0 1 0 0-4a2 2 0 0 0 0 4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri-sun-line,[i-ri-sun-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 18a6 6 0 1 1 0-12a6 6 0 0 1 0 12m0-2a4 4 0 1 0 0-8a4 4 0 0 0 0 8M11 1h2v3h-2zm0 19h2v3h-2zM3.515 4.929l1.414-1.414L7.05 5.636L5.636 7.05zM16.95 18.364l1.414-1.414l2.121 2.121l-1.414 1.414zm2.121-14.85l1.414 1.415l-2.121 2.121l-1.414-1.414zM5.636 16.95l1.414 1.414l-2.121 2.121l-1.414-1.414zM23 11v2h-3v-2zM4 11v2H1v-2z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ri\:settings-line,[i-ri\:settings-line=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m12 1l9.5 5.5v11L12 23l-9.5-5.5v-11zm0 2.311L4.5 7.653v8.694l7.5 4.342l7.5-4.342V7.653zM12 16a4 4 0 1 1 0-8a4 4 0 0 1 0 8m0-2a2 2 0 1 0 0-4a2 2 0 0 0 0 4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.hover\:color-primary:hover,[hover\:color-primary=""]:hover{color:var(--el-color-primary)}.relative,[relative=""]{position:relative}[top~="-2px"]{top:-2px}.z-999{z-index:999}.m-0,.m-none,[m-0=""]{margin:0}.ml-1,[ml-1=""]{margin-left:.25rem}.mr-2,[mr-2=""]{margin-right:.5rem}.box-border{box-sizing:border-box}.h-100vh,[h-100vh=""]{height:100vh}.h-24px,[h-24px=""]{height:24px}.h-4,[h-4=""]{height:1rem}.w-36,[w-36=""]{width:9rem}.w-4,[w-4=""]{width:1rem}.w-full,[w-full=""]{width:100%}.flex,[flex=""],[flex~="~"]{display:flex}.cursor-pointer,[cursor-pointer=""]{cursor:pointer}.items-center,[flex~=items-center],[items-center=""]{align-items:center}.justify-between{justify-content:space-between}.gap-1,[flex~=gap-1]{gap:.25rem}.gap-2,[flex~=gap-2]{gap:.5rem}.gap-4,[flex~=gap-4]{gap:1rem}.px-4{padding-left:1rem;padding-right:1rem}[v~=mid]{vertical-align:middle}.text-13px{font-size:13px}.text-lg,[text-lg=""]{font-size:1.125rem;line-height:1.75rem}.text-xl,[text-xl=""]{font-size:1.25rem;line-height:1.75rem}.font-medium,[font-medium=""]{font-weight:500}[leading~="[var(--nav-height)]"]{line-height:var(--nav-height)}.antialiased,[antialiased=""]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-none{--un-shadow:0 0 var(--un-shadow-color, rgb(0 0 0 / 0));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}@media (max-width: 1023.9px){.lt-lg-hidden,[lt-lg-hidden=""]{display:none}}@media (max-width: 639.9px){.lt-sm-hidden,[lt-sm-hidden=""]{display:none}} diff --git a/assets/index-Np15b6TM.js b/assets/index-Np15b6TM.js new file mode 100644 index 0000000..7de7288 --- /dev/null +++ b/assets/index-Np15b6TM.js @@ -0,0 +1,1583 @@ +var UAe=Object.defineProperty;var jAe=(n,e,t)=>e in n?UAe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var lm=(n,e,t)=>jAe(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(s){if(s.ep)return;s.ep=!0;const r=t(s);fetch(s.href,r)}})();/** +* @vue/shared v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function oY(n,e){const t=new Set(n.split(","));return i=>t.has(i)}const Rn={},SC=[],hl=()=>{},qAe=()=>!1,B5=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),aY=n=>n.startsWith("onUpdate:"),Dr=Object.assign,lY=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},KAe=Object.prototype.hasOwnProperty,$n=(n,e)=>KAe.call(n,e),Dt=Array.isArray,xC=n=>YD(n)==="[object Map]",W5=n=>YD(n)==="[object Set]",ose=n=>YD(n)==="[object Date]",Wt=n=>typeof n=="function",on=n=>typeof n=="string",Ff=n=>typeof n=="symbol",zi=n=>n!==null&&typeof n=="object",Cme=n=>(zi(n)||Wt(n))&&Wt(n.then)&&Wt(n.catch),Sme=Object.prototype.toString,YD=n=>Sme.call(n),vR=n=>YD(n).slice(8,-1),xme=n=>YD(n)==="[object Object]",cY=n=>on(n)&&n!=="NaN"&&n[0]!=="-"&&""+parseInt(n,10)===n,rk=oY(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),V5=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},GAe=/-(\w)/g,Zc=V5(n=>n.replace(GAe,(e,t)=>t?t.toUpperCase():"")),XAe=/\B([A-Z])/g,ep=V5(n=>n.replace(XAe,"-$1").toLowerCase()),H5=V5(n=>n.charAt(0).toUpperCase()+n.slice(1)),bR=V5(n=>n?`on${H5(n)}`:""),zl=(n,e)=>!Object.is(n,e),yR=(n,...e)=>{for(let t=0;t<n.length;t++)n[t](...e)},Lme=(n,e,t,i=!1)=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})},MV=n=>{const e=parseFloat(n);return isNaN(e)?n:e},YAe=n=>{const e=on(n)?Number(n):NaN;return isNaN(e)?n:e};let ase;const Eme=()=>ase||(ase=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Hr(n){if(Dt(n)){const e={};for(let t=0;t<n.length;t++){const i=n[t],s=on(i)?ePe(i):Hr(i);if(s)for(const r in s)e[r]=s[r]}return e}else if(on(n)||zi(n))return n}const ZAe=/;(?![^(]*\))/g,QAe=/:([^]+)/,JAe=/\/\*[^]*?\*\//g;function ePe(n){const e={};return n.replace(JAe,"").split(ZAe).forEach(t=>{if(t){const i=t.split(QAe);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function pt(n){let e="";if(on(n))e=n;else if(Dt(n))for(let t=0;t<n.length;t++){const i=pt(n[t]);i&&(e+=i+" ")}else if(zi(n))for(const t in n)n[t]&&(e+=t+" ");return e.trim()}const tPe="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",iPe=oY(tPe);function kme(n){return!!n||n===""}function nPe(n,e){if(n.length!==e.length)return!1;let t=!0;for(let i=0;t&&i<n.length;i++)t=$5(n[i],e[i]);return t}function $5(n,e){if(n===e)return!0;let t=ose(n),i=ose(e);if(t||i)return t&&i?n.getTime()===e.getTime():!1;if(t=Ff(n),i=Ff(e),t||i)return n===e;if(t=Dt(n),i=Dt(e),t||i)return t&&i?nPe(n,e):!1;if(t=zi(n),i=zi(e),t||i){if(!t||!i)return!1;const s=Object.keys(n).length,r=Object.keys(e).length;if(s!==r)return!1;for(const o in n){const a=n.hasOwnProperty(o),l=e.hasOwnProperty(o);if(a&&!l||!a&&l||!$5(n[o],e[o]))return!1}}return String(n)===String(e)}function Ime(n,e){return n.findIndex(t=>$5(t,e))}const Tme=n=>!!(n&&n.__v_isRef===!0),Mn=n=>on(n)?n:n==null?"":Dt(n)||zi(n)&&(n.toString===Sme||!Wt(n.toString))?Tme(n)?Mn(n.value):JSON.stringify(n,Dme,2):String(n),Dme=(n,e)=>Tme(e)?Dme(n,e.value):xC(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,s],r)=>(t[l9(i,r)+" =>"]=s,t),{})}:W5(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>l9(t))}:Ff(e)?l9(e):zi(e)&&!Dt(e)&&!xme(e)?String(e):e,l9=(n,e="")=>{var t;return Ff(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/** +* @vue/reactivity v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Qa;class sPe{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Qa,!e&&Qa&&(this.index=(Qa.scopes||(Qa.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){const t=Qa;try{return Qa=this,e()}finally{Qa=t}}}on(){Qa=this}off(){Qa=this.parent}stop(e){if(this._active){let t,i;for(t=0,i=this.effects.length;t<i;t++)this.effects[t].stop();for(t=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.scopes)for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0,this._active=!1}}}function uY(){return Qa}function Nme(n,e=!1){Qa&&Qa.cleanups.push(n)}let bs;const c9=new WeakSet;class Ame{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.nextEffect=void 0,this.cleanup=void 0,this.scheduler=void 0,Qa&&Qa.active&&Qa.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,c9.has(this)&&(c9.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||(this.flags|=8,this.nextEffect=ok,ok=this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,lse(this),Rme(this);const e=bs,t=Ph;bs=this,Ph=!0;try{return this.fn()}finally{Mme(this),bs=e,Ph=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)fY(e);this.deps=this.depsTail=void 0,lse(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?c9.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){OV(this)&&this.run()}get dirty(){return OV(this)}}let Pme=0,ok;function hY(){Pme++}function dY(){if(--Pme>0)return;let n;for(;ok;){let e=ok;for(ok=void 0;e;){const t=e.nextEffect;if(e.nextEffect=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){n||(n=i)}e=t}}if(n)throw n}function Rme(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Mme(n){let e,t=n.depsTail;for(let i=t;i;i=i.prevDep)i.version===-1?(i===t&&(t=i.prevDep),fY(i),rPe(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0;n.deps=e,n.depsTail=t}function OV(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&Ome(e.dep.computed)===!1||e.dep.version!==e.version)return!0;return!!n._dirty}function Ome(n){if(n.flags&2)return!1;if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===TI))return;n.globalVersion=TI;const e=n.dep;if(n.flags|=2,e.version>0&&!n.isSSR&&!OV(n)){n.flags&=-3;return}const t=bs,i=Ph;bs=n,Ph=!0;try{Rme(n);const s=n.fn(n._value);(e.version===0||zl(s,n._value))&&(n._value=s,e.version++)}catch(s){throw e.version++,s}finally{bs=t,Ph=i,Mme(n),n.flags&=-3}}function fY(n){const{dep:e,prevSub:t,nextSub:i}=n;if(t&&(t.nextSub=i,n.prevSub=void 0),i&&(i.prevSub=t,n.nextSub=void 0),e.subs===n&&(e.subs=t),!e.subs&&e.computed){e.computed.flags&=-5;for(let s=e.computed.deps;s;s=s.nextDep)fY(s)}}function rPe(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let Ph=!0;const Fme=[];function S_(){Fme.push(Ph),Ph=!1}function x_(){const n=Fme.pop();Ph=n===void 0?!0:n}function lse(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=bs;bs=void 0;try{e()}finally{bs=t}}}let TI=0;class z5{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0}track(e){if(!bs||!Ph||bs===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==bs)t=this.activeLink={dep:this,sub:bs,version:this.version,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,prevActiveLink:void 0},bs.deps?(t.prevDep=bs.depsTail,bs.depsTail.nextDep=t,bs.depsTail=t):bs.deps=bs.depsTail=t,bs.flags&4&&Bme(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=bs.depsTail,t.nextDep=void 0,bs.depsTail.nextDep=t,bs.depsTail=t,bs.deps===t&&(bs.deps=i)}return t}trigger(e){this.version++,TI++,this.notify(e)}notify(e){hY();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()}finally{dY()}}}function Bme(n){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)Bme(i)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}const $M=new WeakMap,cb=Symbol(""),FV=Symbol(""),DI=Symbol("");function Aa(n,e,t){if(Ph&&bs){let i=$M.get(n);i||$M.set(n,i=new Map);let s=i.get(t);s||i.set(t,s=new z5),s.track()}}function gg(n,e,t,i,s,r){const o=$M.get(n);if(!o){TI++;return}let a=[];if(e==="clear")a=[...o.values()];else{const l=Dt(n),c=l&&cY(t);if(l&&t==="length"){const u=Number(i);o.forEach((h,d)=>{(d==="length"||d===DI||!Ff(d)&&d>=u)&&a.push(h)})}else{const u=h=>h&&a.push(h);switch(t!==void 0&&u(o.get(t)),c&&u(o.get(DI)),e){case"add":l?c&&u(o.get("length")):(u(o.get(cb)),xC(n)&&u(o.get(FV)));break;case"delete":l||(u(o.get(cb)),xC(n)&&u(o.get(FV)));break;case"set":xC(n)&&u(o.get(cb));break}}}hY();for(const l of a)l.trigger();dY()}function oPe(n,e){var t;return(t=$M.get(n))==null?void 0:t.get(e)}function j0(n){const e=en(n);return e===n?e:(Aa(e,"iterate",DI),Rh(n)?e:e.map(Sa))}function U5(n){return Aa(n=en(n),"iterate",DI),n}const aPe={__proto__:null,[Symbol.iterator](){return u9(this,Symbol.iterator,Sa)},concat(...n){return j0(this).concat(...n.map(e=>Dt(e)?j0(e):e))},entries(){return u9(this,"entries",n=>(n[1]=Sa(n[1]),n))},every(n,e){return lp(this,"every",n,e,void 0,arguments)},filter(n,e){return lp(this,"filter",n,e,t=>t.map(Sa),arguments)},find(n,e){return lp(this,"find",n,e,Sa,arguments)},findIndex(n,e){return lp(this,"findIndex",n,e,void 0,arguments)},findLast(n,e){return lp(this,"findLast",n,e,Sa,arguments)},findLastIndex(n,e){return lp(this,"findLastIndex",n,e,void 0,arguments)},forEach(n,e){return lp(this,"forEach",n,e,void 0,arguments)},includes(...n){return h9(this,"includes",n)},indexOf(...n){return h9(this,"indexOf",n)},join(n){return j0(this).join(n)},lastIndexOf(...n){return h9(this,"lastIndexOf",n)},map(n,e){return lp(this,"map",n,e,void 0,arguments)},pop(){return NL(this,"pop")},push(...n){return NL(this,"push",n)},reduce(n,...e){return cse(this,"reduce",n,e)},reduceRight(n,...e){return cse(this,"reduceRight",n,e)},shift(){return NL(this,"shift")},some(n,e){return lp(this,"some",n,e,void 0,arguments)},splice(...n){return NL(this,"splice",n)},toReversed(){return j0(this).toReversed()},toSorted(n){return j0(this).toSorted(n)},toSpliced(...n){return j0(this).toSpliced(...n)},unshift(...n){return NL(this,"unshift",n)},values(){return u9(this,"values",Sa)}};function u9(n,e,t){const i=U5(n),s=i[e]();return i!==n&&!Rh(n)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.value&&(r.value=t(r.value)),r}),s}const lPe=Array.prototype;function lp(n,e,t,i,s,r){const o=U5(n),a=o!==n&&!Rh(n),l=o[e];if(l!==lPe[e]){const h=l.apply(n,r);return a?Sa(h):h}let c=t;o!==n&&(a?c=function(h,d){return t.call(this,Sa(h),d,n)}:t.length>2&&(c=function(h,d){return t.call(this,h,d,n)}));const u=l.call(o,c,i);return a&&s?s(u):u}function cse(n,e,t,i){const s=U5(n);let r=t;return s!==n&&(Rh(n)?t.length>3&&(r=function(o,a,l){return t.call(this,o,a,l,n)}):r=function(o,a,l){return t.call(this,o,Sa(a),l,n)}),s[e](r,...i)}function h9(n,e,t){const i=en(n);Aa(i,"iterate",DI);const s=i[e](...t);return(s===-1||s===!1)&&_Y(t[0])?(t[0]=en(t[0]),i[e](...t)):s}function NL(n,e,t=[]){S_(),hY();const i=en(n)[e].apply(n,t);return dY(),x_(),i}const cPe=oY("__proto__,__v_isRef,__isVue"),Wme=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!=="arguments"&&n!=="caller").map(n=>Symbol[n]).filter(Ff));function uPe(n){Ff(n)||(n=String(n));const e=en(this);return Aa(e,"has",n),e.hasOwnProperty(n)}class Vme{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){const s=this._isReadonly,r=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return r;if(t==="__v_raw")return i===(s?r?SPe:Ume:r?zme:$me).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const o=Dt(e);if(!s){let l;if(o&&(l=aPe[t]))return l;if(t==="hasOwnProperty")return uPe}const a=Reflect.get(e,t,jn(e)?e:i);return(Ff(t)?Wme.has(t):cPe(t))||(s||Aa(e,"get",t),r)?a:jn(a)?o&&cY(t)?a:a.value:zi(a)?s?Ig(a):ia(a):a}}class Hme extends Vme{constructor(e=!1){super(!1,e)}set(e,t,i,s){let r=e[t];if(!this._isShallow){const l=Ty(r);if(!Rh(i)&&!Ty(i)&&(r=en(r),i=en(i)),!Dt(e)&&jn(r)&&!jn(i))return l?!1:(r.value=i,!0)}const o=Dt(e)&&cY(t)?Number(t)<e.length:$n(e,t),a=Reflect.set(e,t,i,jn(e)?e:s);return e===en(s)&&(o?zl(i,r)&&gg(e,"set",t,i):gg(e,"add",t,i)),a}deleteProperty(e,t){const i=$n(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&i&&gg(e,"delete",t,void 0),s}has(e,t){const i=Reflect.has(e,t);return(!Ff(t)||!Wme.has(t))&&Aa(e,"has",t),i}ownKeys(e){return Aa(e,"iterate",Dt(e)?"length":cb),Reflect.ownKeys(e)}}class hPe extends Vme{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const dPe=new Hme,fPe=new hPe,pPe=new Hme(!0);const pY=n=>n,j5=n=>Reflect.getPrototypeOf(n);function hA(n,e,t=!1,i=!1){n=n.__v_raw;const s=en(n),r=en(e);t||(zl(e,r)&&Aa(s,"get",e),Aa(s,"get",r));const{has:o}=j5(s),a=i?pY:t?vY:Sa;if(o.call(s,e))return a(n.get(e));if(o.call(s,r))return a(n.get(r));n!==s&&n.get(e)}function dA(n,e=!1){const t=this.__v_raw,i=en(t),s=en(n);return e||(zl(n,s)&&Aa(i,"has",n),Aa(i,"has",s)),n===s?t.has(n):t.has(n)||t.has(s)}function fA(n,e=!1){return n=n.__v_raw,!e&&Aa(en(n),"iterate",cb),Reflect.get(n,"size",n)}function use(n,e=!1){!e&&!Rh(n)&&!Ty(n)&&(n=en(n));const t=en(this);return j5(t).has.call(t,n)||(t.add(n),gg(t,"add",n,n)),this}function hse(n,e,t=!1){!t&&!Rh(e)&&!Ty(e)&&(e=en(e));const i=en(this),{has:s,get:r}=j5(i);let o=s.call(i,n);o||(n=en(n),o=s.call(i,n));const a=r.call(i,n);return i.set(n,e),o?zl(e,a)&&gg(i,"set",n,e):gg(i,"add",n,e),this}function dse(n){const e=en(this),{has:t,get:i}=j5(e);let s=t.call(e,n);s||(n=en(n),s=t.call(e,n)),i&&i.call(e,n);const r=e.delete(n);return s&&gg(e,"delete",n,void 0),r}function fse(){const n=en(this),e=n.size!==0,t=n.clear();return e&&gg(n,"clear",void 0,void 0),t}function pA(n,e){return function(i,s){const r=this,o=r.__v_raw,a=en(o),l=e?pY:n?vY:Sa;return!n&&Aa(a,"iterate",cb),o.forEach((c,u)=>i.call(s,l(c),l(u),r))}}function gA(n,e,t){return function(...i){const s=this.__v_raw,r=en(s),o=xC(r),a=n==="entries"||n===Symbol.iterator&&o,l=n==="keys"&&o,c=s[n](...i),u=t?pY:e?vY:Sa;return!e&&Aa(r,"iterate",l?FV:cb),{next(){const{value:h,done:d}=c.next();return d?{value:h,done:d}:{value:a?[u(h[0]),u(h[1])]:u(h),done:d}},[Symbol.iterator](){return this}}}}function cm(n){return function(...e){return n==="delete"?!1:n==="clear"?void 0:this}}function gPe(){const n={get(r){return hA(this,r)},get size(){return fA(this)},has:dA,add:use,set:hse,delete:dse,clear:fse,forEach:pA(!1,!1)},e={get(r){return hA(this,r,!1,!0)},get size(){return fA(this)},has:dA,add(r){return use.call(this,r,!0)},set(r,o){return hse.call(this,r,o,!0)},delete:dse,clear:fse,forEach:pA(!1,!0)},t={get(r){return hA(this,r,!0)},get size(){return fA(this,!0)},has(r){return dA.call(this,r,!0)},add:cm("add"),set:cm("set"),delete:cm("delete"),clear:cm("clear"),forEach:pA(!0,!1)},i={get(r){return hA(this,r,!0,!0)},get size(){return fA(this,!0)},has(r){return dA.call(this,r,!0)},add:cm("add"),set:cm("set"),delete:cm("delete"),clear:cm("clear"),forEach:pA(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=gA(r,!1,!1),t[r]=gA(r,!0,!1),e[r]=gA(r,!1,!0),i[r]=gA(r,!0,!0)}),[n,t,e,i]}const[mPe,_Pe,vPe,bPe]=gPe();function gY(n,e){const t=e?n?bPe:vPe:n?_Pe:mPe;return(i,s,r)=>s==="__v_isReactive"?!n:s==="__v_isReadonly"?n:s==="__v_raw"?i:Reflect.get($n(t,s)&&s in i?t:i,s,r)}const yPe={get:gY(!1,!1)},wPe={get:gY(!1,!0)},CPe={get:gY(!0,!1)};const $me=new WeakMap,zme=new WeakMap,Ume=new WeakMap,SPe=new WeakMap;function xPe(n){switch(n){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function LPe(n){return n.__v_skip||!Object.isExtensible(n)?0:xPe(vR(n))}function ia(n){return Ty(n)?n:mY(n,!1,dPe,yPe,$me)}function jme(n){return mY(n,!1,pPe,wPe,zme)}function Ig(n){return mY(n,!0,fPe,CPe,Ume)}function mY(n,e,t,i,s){if(!zi(n)||n.__v_raw&&!(e&&n.__v_isReactive))return n;const r=s.get(n);if(r)return r;const o=LPe(n);if(o===0)return n;const a=new Proxy(n,o===2?i:t);return s.set(n,a),a}function LC(n){return Ty(n)?LC(n.__v_raw):!!(n&&n.__v_isReactive)}function Ty(n){return!!(n&&n.__v_isReadonly)}function Rh(n){return!!(n&&n.__v_isShallow)}function _Y(n){return n?!!n.__v_raw:!1}function en(n){const e=n&&n.__v_raw;return e?en(e):n}function EPe(n){return Object.isExtensible(n)&&Lme(n,"__v_skip",!0),n}const Sa=n=>zi(n)?ia(n):n,vY=n=>zi(n)?Ig(n):n;function jn(n){return n?n.__v_isRef===!0:!1}function je(n){return qme(n,!1)}function mg(n){return qme(n,!0)}function qme(n,e){return jn(n)?n:new kPe(n,e)}class kPe{constructor(e,t){this.dep=new z5,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:en(e),this._value=t?e:Sa(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||Rh(e)||Ty(e);e=i?e:en(e),zl(e,t)&&(this._rawValue=e,this._value=i?e:Sa(e),this.dep.trigger())}}function ae(n){return jn(n)?n.value:n}const IPe={get:(n,e,t)=>e==="__v_raw"?n:ae(Reflect.get(n,e,t)),set:(n,e,t,i)=>{const s=n[e];return jn(s)&&!jn(t)?(s.value=t,!0):Reflect.set(n,e,t,i)}};function Kme(n){return LC(n)?n:new Proxy(n,IPe)}class TPe{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new z5,{get:i,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Gme(n){return new TPe(n)}function Yg(n){const e=Dt(n)?new Array(n.length):{};for(const t in n)e[t]=Xme(n,t);return e}class DPe{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return oPe(en(this._object),this._key)}}class NPe{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Xp(n,e,t){return jn(n)?n:Wt(n)?new NPe(n):zi(n)&&arguments.length>1?Xme(n,e,t):je(n)}function Xme(n,e,t){const i=n[e];return jn(i)?i:new DPe(n,e,t)}class APe{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new z5(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=TI-1,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){bs!==this&&(this.flags|=16,this.dep.notify())}get value(){const e=this.dep.track();return Ome(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function PPe(n,e,t=!1){let i,s;return Wt(n)?i=n:(i=n.get,s=n.set),new APe(i,s,t)}const mA={},zM=new WeakMap;let cv;function Yme(n,e=!1,t=cv){if(t){let i=zM.get(t);i||zM.set(t,i=[]),i.push(n)}}function RPe(n,e,t=Rn){const{immediate:i,deep:s,once:r,scheduler:o,augmentJob:a,call:l}=t,c=C=>s?C:Rh(C)||s===!1||s===0?Hp(C,1):Hp(C);let u,h,d,f,p=!1,g=!1;if(jn(n)?(h=()=>n.value,p=Rh(n)):LC(n)?(h=()=>c(n),p=!0):Dt(n)?(g=!0,p=n.some(C=>LC(C)||Rh(C)),h=()=>n.map(C=>{if(jn(C))return C.value;if(LC(C))return c(C);if(Wt(C))return l?l(C,2):C()})):Wt(n)?e?h=l?()=>l(n,2):n:h=()=>{if(d){S_();try{d()}finally{x_()}}const C=cv;cv=u;try{return l?l(n,3,[f]):n(f)}finally{cv=C}}:h=hl,e&&s){const C=h,S=s===!0?1/0:s;h=()=>Hp(C(),S)}const m=uY(),_=()=>{u.stop(),m&&lY(m.effects,u)};if(r)if(e){const C=e;e=(...S)=>{C(...S),_()}}else{const C=h;h=()=>{C(),_()}}let b=g?new Array(n.length).fill(mA):mA;const w=C=>{if(!(!(u.flags&1)||!u.dirty&&!C))if(e){const S=u.run();if(s||p||(g?S.some((x,k)=>zl(x,b[k])):zl(S,b))){d&&d();const x=cv;cv=u;try{const k=[S,b===mA?void 0:g&&b[0]===mA?[]:b,f];l?l(e,3,k):e(...k),b=S}finally{cv=x}}}else u.run()};return a&&a(w),u=new Ame(h),u.scheduler=o?()=>o(w,!1):w,f=C=>Yme(C,!1,u),d=u.onStop=()=>{const C=zM.get(u);if(C){if(l)l(C,4);else for(const S of C)S();zM.delete(u)}},e?i?w(!0):b=u.run():o?o(w.bind(null,!0),!0):u.run(),_.pause=u.pause.bind(u),_.resume=u.resume.bind(u),_.stop=_,_}function Hp(n,e=1/0,t){if(e<=0||!zi(n)||n.__v_skip||(t=t||new Set,t.has(n)))return n;if(t.add(n),e--,jn(n))Hp(n.value,e,t);else if(Dt(n))for(let i=0;i<n.length;i++)Hp(n[i],e,t);else if(W5(n)||xC(n))n.forEach(i=>{Hp(i,e,t)});else if(xme(n)){for(const i in n)Hp(n[i],e,t);for(const i of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,i)&&Hp(n[i],e,t)}return n}/** +* @vue/runtime-core v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ZD(n,e,t,i){try{return i?n(...i):n()}catch(s){q5(s,e,t)}}function Uh(n,e,t,i){if(Wt(n)){const s=ZD(n,e,t,i);return s&&Cme(s)&&s.catch(r=>{q5(r,e,t)}),s}if(Dt(n)){const s=[];for(let r=0;r<n.length;r++)s.push(Uh(n[r],e,t,i));return s}}function q5(n,e,t,i=!0){const s=e?e.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:o}=e&&e.appContext.config||Rn;if(e){let a=e.parent;const l=e.proxy,c=`https://vuejs.org/error-reference/#runtime-${t}`;for(;a;){const u=a.ec;if(u){for(let h=0;h<u.length;h++)if(u[h](n,l,c)===!1)return}a=a.parent}if(r){S_(),ZD(r,null,10,[n,l,c]),x_();return}}MPe(n,t,s,i,o)}function MPe(n,e,t,i=!0,s=!1){if(s)throw n;console.error(n)}let NI=!1,BV=!1;const nl=[];let Rd=0;const EC=[];let Nm=null,xw=0;const Zme=Promise.resolve();let bY=null;function Hs(n){const e=bY||Zme;return n?e.then(this?n.bind(this):n):e}function OPe(n){let e=NI?Rd+1:0,t=nl.length;for(;e<t;){const i=e+t>>>1,s=nl[i],r=AI(s);r<n||r===n&&s.flags&2?e=i+1:t=i}return e}function yY(n){if(!(n.flags&1)){const e=AI(n),t=nl[nl.length-1];!t||!(n.flags&2)&&e>=AI(t)?nl.push(n):nl.splice(OPe(e),0,n),n.flags|=1,Qme()}}function Qme(){!NI&&!BV&&(BV=!0,bY=Zme.then(e1e))}function FPe(n){Dt(n)?EC.push(...n):Nm&&n.id===-1?Nm.splice(xw+1,0,n):n.flags&1||(EC.push(n),n.flags|=1),Qme()}function pse(n,e,t=NI?Rd+1:0){for(;t<nl.length;t++){const i=nl[t];if(i&&i.flags&2){if(n&&i.id!==n.uid)continue;nl.splice(t,1),t--,i.flags&4&&(i.flags&=-2),i(),i.flags&=-2}}}function Jme(n){if(EC.length){const e=[...new Set(EC)].sort((t,i)=>AI(t)-AI(i));if(EC.length=0,Nm){Nm.push(...e);return}for(Nm=e,xw=0;xw<Nm.length;xw++){const t=Nm[xw];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}Nm=null,xw=0}}const AI=n=>n.id==null?n.flags&2?-1:1/0:n.id;function e1e(n){BV=!1,NI=!0;try{for(Rd=0;Rd<nl.length;Rd++){const e=nl[Rd];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),ZD(e,e.i,e.i?15:14),e.flags&=-2)}}finally{for(;Rd<nl.length;Rd++){const e=nl[Rd];e&&(e.flags&=-2)}Rd=0,nl.length=0,Jme(),NI=!1,bY=null,(nl.length||EC.length)&&e1e()}}let So=null,t1e=null;function UM(n){const e=So;return So=n,t1e=n&&n.type.__scopeId||null,e}function ei(n,e=So,t){if(!e||n._n)return n;const i=(...s)=>{i._d&&Lse(-1);const r=UM(e);let o;try{o=n(...s)}finally{UM(r),i._d&&Lse(1)}return o};return i._n=!0,i._c=!0,i._d=!0,i}function $r(n,e){if(So===null)return n;const t=e6(So),i=n.dirs||(n.dirs=[]);for(let s=0;s<e.length;s++){let[r,o,a,l=Rn]=e[s];r&&(Wt(r)&&(r={mounted:r,updated:r}),r.deep&&Hp(o),i.push({dir:r,instance:t,value:o,oldValue:void 0,arg:a,modifiers:l}))}return n}function U_(n,e,t,i){const s=n.dirs,r=e&&e.dirs;for(let o=0;o<s.length;o++){const a=s[o];r&&(a.oldValue=r[o].value);let l=a.dir[i];l&&(S_(),Uh(l,t,8,[n.el,a,n,e]),x_())}}const i1e=Symbol("_vte"),n1e=n=>n.__isTeleport,ak=n=>n&&(n.disabled||n.disabled===""),BPe=n=>n&&(n.defer||n.defer===""),gse=n=>typeof SVGElement<"u"&&n instanceof SVGElement,mse=n=>typeof MathMLElement=="function"&&n instanceof MathMLElement,WV=(n,e)=>{const t=n&&n.to;return on(t)?e?e(t):null:t},WPe={name:"Teleport",__isTeleport:!0,process(n,e,t,i,s,r,o,a,l,c){const{mc:u,pc:h,pbc:d,o:{insert:f,querySelector:p,createText:g,createComment:m}}=c,_=ak(e.props);let{shapeFlag:b,children:w,dynamicChildren:C}=e;if(n==null){const S=e.el=g(""),x=e.anchor=g("");f(S,t,i),f(x,t,i);const k=(E,A)=>{b&16&&u(w,E,A,s,r,o,a,l)},L=()=>{const E=e.target=WV(e.props,p),A=s1e(E,e,g,f);E&&(o!=="svg"&&gse(E)?o="svg":o!=="mathml"&&mse(E)&&(o="mathml"),_||(k(E,A),wR(e)))};_&&(k(t,x),wR(e)),BPe(e.props)?Ol(L,r):L()}else{e.el=n.el,e.targetStart=n.targetStart;const S=e.anchor=n.anchor,x=e.target=n.target,k=e.targetAnchor=n.targetAnchor,L=ak(n.props),E=L?t:x,A=L?S:k;if(o==="svg"||gse(x)?o="svg":(o==="mathml"||mse(x))&&(o="mathml"),C?(d(n.dynamicChildren,C,E,s,r,o,a),kY(n,e,!0)):l||h(n,e,E,A,s,r,o,a,!1),_)L?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):_A(e,t,S,c,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const I=e.target=WV(e.props,p);I&&_A(e,I,null,c,0)}else L&&_A(e,x,k,c,1);wR(e)}},remove(n,e,t,{um:i,o:{remove:s}},r){const{shapeFlag:o,children:a,anchor:l,targetStart:c,targetAnchor:u,target:h,props:d}=n;if(h&&(s(c),s(u)),r&&s(l),o&16){const f=r||!ak(d);for(let p=0;p<a.length;p++){const g=a[p];i(g,e,t,f,!!g.dynamicChildren)}}},move:_A,hydrate:VPe};function _A(n,e,t,{o:{insert:i},m:s},r=2){r===0&&i(n.targetAnchor,e,t);const{el:o,anchor:a,shapeFlag:l,children:c,props:u}=n,h=r===2;if(h&&i(o,e,t),(!h||ak(u))&&l&16)for(let d=0;d<c.length;d++)s(c[d],e,t,2);h&&i(a,e,t)}function VPe(n,e,t,i,s,r,{o:{nextSibling:o,parentNode:a,querySelector:l,insert:c,createText:u}},h){const d=e.target=WV(e.props,l);if(d){const f=d._lpa||d.firstChild;if(e.shapeFlag&16)if(ak(e.props))e.anchor=h(o(n),e,a(n),t,i,s,r),e.targetStart=f,e.targetAnchor=f&&o(f);else{e.anchor=o(n);let p=f;for(;p;){if(p&&p.nodeType===8){if(p.data==="teleport start anchor")e.targetStart=p;else if(p.data==="teleport anchor"){e.targetAnchor=p,d._lpa=e.targetAnchor&&o(e.targetAnchor);break}}p=o(p)}e.targetAnchor||s1e(d,e,u,c),h(f&&o(f),e,d,t,i,s,r)}wR(e)}return e.anchor&&o(e.anchor)}const HPe=WPe;function wR(n){const e=n.ctx;if(e&&e.ut){let t=n.targetStart;for(;t&&t!==n.targetAnchor;)t.nodeType===1&&t.setAttribute("data-v-owner",e.uid),t=t.nextSibling;e.ut()}}function s1e(n,e,t,i){const s=e.targetStart=t(""),r=e.targetAnchor=t("");return s[i1e]=r,n&&(i(s,n),i(r,n)),r}const Am=Symbol("_leaveCb"),vA=Symbol("_enterCb");function r1e(){const n={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return or(()=>{n.isMounted=!0}),Fa(()=>{n.isUnmounting=!0}),n}const du=[Function,Array],o1e={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:du,onEnter:du,onAfterEnter:du,onEnterCancelled:du,onBeforeLeave:du,onLeave:du,onAfterLeave:du,onLeaveCancelled:du,onBeforeAppear:du,onAppear:du,onAfterAppear:du,onAppearCancelled:du},a1e=n=>{const e=n.subTree;return e.component?a1e(e.component):e},$Pe={name:"BaseTransition",props:o1e,setup(n,{slots:e}){const t=sr(),i=r1e();return()=>{const s=e.default&&wY(e.default(),!0);if(!s||!s.length)return;const r=l1e(s),o=en(n),{mode:a}=o;if(i.isLeaving)return d9(r);const l=_se(r);if(!l)return d9(r);let c=PI(l,o,i,t,d=>c=d);l.type!==ka&&Dy(l,c);const u=t.subTree,h=u&&_se(u);if(h&&h.type!==ka&&!xv(l,h)&&a1e(t).type!==ka){const d=PI(h,o,i,t);if(Dy(h,d),a==="out-in"&&l.type!==ka)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,t.job.flags&8||t.update(),delete d.afterLeave},d9(r);a==="in-out"&&l.type!==ka&&(d.delayLeave=(f,p,g)=>{const m=c1e(i,h);m[String(h.key)]=h,f[Am]=()=>{p(),f[Am]=void 0,delete c.delayedLeave},c.delayedLeave=g})}return r}}};function l1e(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==ka){e=t;break}}return e}const zPe=$Pe;function c1e(n,e){const{leavingVNodes:t}=n;let i=t.get(e.type);return i||(i=Object.create(null),t.set(e.type,i)),i}function PI(n,e,t,i,s){const{appear:r,mode:o,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:d,onLeave:f,onAfterLeave:p,onLeaveCancelled:g,onBeforeAppear:m,onAppear:_,onAfterAppear:b,onAppearCancelled:w}=e,C=String(n.key),S=c1e(t,n),x=(E,A)=>{E&&Uh(E,i,9,A)},k=(E,A)=>{const I=A[1];x(E,A),Dt(E)?E.every(T=>T.length<=1)&&I():E.length<=1&&I()},L={mode:o,persisted:a,beforeEnter(E){let A=l;if(!t.isMounted)if(r)A=m||l;else return;E[Am]&&E[Am](!0);const I=S[C];I&&xv(n,I)&&I.el[Am]&&I.el[Am](),x(A,[E])},enter(E){let A=c,I=u,T=h;if(!t.isMounted)if(r)A=_||c,I=b||u,T=w||h;else return;let N=!1;const M=E[vA]=V=>{N||(N=!0,V?x(T,[E]):x(I,[E]),L.delayedLeave&&L.delayedLeave(),E[vA]=void 0)};A?k(A,[E,M]):M()},leave(E,A){const I=String(n.key);if(E[vA]&&E[vA](!0),t.isUnmounting)return A();x(d,[E]);let T=!1;const N=E[Am]=M=>{T||(T=!0,A(),M?x(g,[E]):x(p,[E]),E[Am]=void 0,S[I]===n&&delete S[I])};S[I]=n,f?k(f,[E,N]):N()},clone(E){const A=PI(E,e,t,i,s);return s&&s(A),A}};return L}function d9(n){if(K5(n))return n=Tg(n),n.children=null,n}function _se(n){if(!K5(n))return n1e(n.type)&&n.children?l1e(n.children):n;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&Wt(t.default))return t.default()}}function Dy(n,e){n.shapeFlag&6&&n.component?(n.transition=e,Dy(n.component.subTree,e)):n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function wY(n,e=!1,t){let i=[],s=0;for(let r=0;r<n.length;r++){let o=n[r];const a=t==null?o.key:String(t)+String(o.key!=null?o.key:r);o.type===ss?(o.patchFlag&128&&s++,i=i.concat(wY(o.children,e,a))):(e||o.type!==ka)&&i.push(a!=null?Tg(o,{key:a}):o)}if(s>1)for(let r=0;r<i.length;r++)i[r].patchFlag=-2;return i}/*! #__NO_SIDE_EFFECTS__ */function Et(n,e){return Wt(n)?Dr({name:n.name},e,{setup:n}):n}function u1e(n){n.ids=[n.ids[0]+n.ids[2]+++"-",0,0]}function Nx(n){const e=sr(),t=mg(null);if(e){const s=e.refs===Rn?e.refs={}:e.refs;Object.defineProperty(s,n,{enumerable:!0,get:()=>t.value,set:r=>t.value=r})}return t}function VV(n,e,t,i,s=!1){if(Dt(n)){n.forEach((p,g)=>VV(p,e&&(Dt(e)?e[g]:e),t,i,s));return}if(kC(i)&&!s)return;const r=i.shapeFlag&4?e6(i.component):i.el,o=s?null:r,{i:a,r:l}=n,c=e&&e.r,u=a.refs===Rn?a.refs={}:a.refs,h=a.setupState,d=en(h),f=h===Rn?()=>!1:p=>$n(d,p);if(c!=null&&c!==l&&(on(c)?(u[c]=null,f(c)&&(h[c]=null)):jn(c)&&(c.value=null)),Wt(l))ZD(l,a,12,[o,u]);else{const p=on(l),g=jn(l);if(p||g){const m=()=>{if(n.f){const _=p?f(l)?h[l]:u[l]:l.value;s?Dt(_)&&lY(_,r):Dt(_)?_.includes(r)||_.push(r):p?(u[l]=[r],f(l)&&(h[l]=u[l])):(l.value=[r],n.k&&(u[n.k]=l.value))}else p?(u[l]=o,f(l)&&(h[l]=o)):g&&(l.value=o,n.k&&(u[n.k]=o))};o?(m.id=-1,Ol(m,t)):m()}}}const kC=n=>!!n.type.__asyncLoader,K5=n=>n.type.__isKeepAlive;function h1e(n,e){f1e(n,"a",e)}function d1e(n,e){f1e(n,"da",e)}function f1e(n,e,t=qo){const i=n.__wdc||(n.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return n()});if(G5(e,i,t),t){let s=t.parent;for(;s&&s.parent;)K5(s.parent.vnode)&&UPe(i,e,t,s),s=s.parent}}function UPe(n,e,t,i){const s=G5(e,n,i,!0);Y5(()=>{lY(i[e],s)},t)}function G5(n,e,t=qo,i=!1){if(t){const s=t[n]||(t[n]=[]),r=e.__weh||(e.__weh=(...o)=>{S_();const a=JD(t),l=Uh(e,t,n,o);return a(),x_(),l});return i?s.unshift(r):s.push(r),r}}const Zg=n=>(e,t=qo)=>{(!J5||n==="sp")&&G5(n,(...i)=>e(...i),t)},p1e=Zg("bm"),or=Zg("m"),jPe=Zg("bu"),X5=Zg("u"),Fa=Zg("bum"),Y5=Zg("um"),qPe=Zg("sp"),KPe=Zg("rtg"),GPe=Zg("rtc");function XPe(n,e=qo){G5("ec",n,e)}const CY="components",YPe="directives";function j_(n,e){return SY(CY,n,!0,e)||n}const g1e=Symbol.for("v-ndc");function _g(n){return on(n)?SY(CY,n,!1)||n:n||g1e}function ZPe(n){return SY(YPe,n)}function SY(n,e,t=!0,i=!1){const s=So||qo;if(s){const r=s.type;if(n===CY){const a=FRe(r,!1);if(a&&(a===e||a===Zc(e)||a===H5(Zc(e))))return r}const o=vse(s[n]||r[n],e)||vse(s.appContext[n],e);return!o&&i?r:o}}function vse(n,e){return n&&(n[e]||n[Zc(e)]||n[H5(Zc(e))])}function bS(n,e,t,i){let s;const r=t,o=Dt(n);if(o||on(n)){const a=o&&LC(n);a&&(n=U5(n)),s=new Array(n.length);for(let l=0,c=n.length;l<c;l++)s[l]=e(a?Sa(n[l]):n[l],l,void 0,r)}else if(typeof n=="number"){s=new Array(n);for(let a=0;a<n;a++)s[a]=e(a+1,a,void 0,r)}else if(zi(n))if(n[Symbol.iterator])s=Array.from(n,(a,l)=>e(a,l,void 0,r));else{const a=Object.keys(n);s=new Array(a.length);for(let l=0,c=a.length;l<c;l++){const u=a[l];s[l]=e(n[u],u,l,r)}}else s=[];return s}function QPe(n,e){for(let t=0;t<e.length;t++){const i=e[t];if(Dt(i))for(let s=0;s<i.length;s++)n[i[s].name]=i[s].fn;else i&&(n[i.name]=i.key?(...s)=>{const r=i.fn(...s);return r&&(r.key=i.key),r}:i.fn)}return n}function Ii(n,e,t={},i,s){if(So.ce||So.parent&&kC(So.parent)&&So.parent.ce)return e!=="default"&&(t.name=e),Qe(),Mi(ss,null,[Kt("slot",t,i&&i())],64);let r=n[e];r&&r._c&&(r._d=!1),Qe();const o=r&&m1e(r(t)),a=Mi(ss,{key:(t.key||o&&o.key||`_${e}`)+(!o&&i?"_fb":"")},o||(i?i():[]),o&&n._===1?64:-2);return!s&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),r&&r._c&&(r._d=!0),a}function m1e(n){return n.some(e=>yS(e)?!(e.type===ka||e.type===ss&&!m1e(e.children)):!0)?n:null}const HV=n=>n?F1e(n)?e6(n):HV(n.parent):null,lk=Dr(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>HV(n.parent),$root:n=>HV(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>LY(n),$forceUpdate:n=>n.f||(n.f=()=>{yY(n.update)}),$nextTick:n=>n.n||(n.n=Hs.bind(n.proxy)),$watch:n=>wRe.bind(n)}),f9=(n,e)=>n!==Rn&&!n.__isScriptSetup&&$n(n,e),JPe={get({_:n},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:s,props:r,accessCache:o,type:a,appContext:l}=n;let c;if(e[0]!=="$"){const f=o[e];if(f!==void 0)switch(f){case 1:return i[e];case 2:return s[e];case 4:return t[e];case 3:return r[e]}else{if(f9(i,e))return o[e]=1,i[e];if(s!==Rn&&$n(s,e))return o[e]=2,s[e];if((c=n.propsOptions[0])&&$n(c,e))return o[e]=3,r[e];if(t!==Rn&&$n(t,e))return o[e]=4,t[e];$V&&(o[e]=0)}}const u=lk[e];let h,d;if(u)return e==="$attrs"&&Aa(n.attrs,"get",""),u(n);if((h=a.__cssModules)&&(h=h[e]))return h;if(t!==Rn&&$n(t,e))return o[e]=4,t[e];if(d=l.config.globalProperties,$n(d,e))return d[e]},set({_:n},e,t){const{data:i,setupState:s,ctx:r}=n;return f9(s,e)?(s[e]=t,!0):i!==Rn&&$n(i,e)?(i[e]=t,!0):$n(n.props,e)||e[0]==="$"&&e.slice(1)in n?!1:(r[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:i,appContext:s,propsOptions:r}},o){let a;return!!t[o]||n!==Rn&&$n(n,o)||f9(e,o)||(a=r[0])&&$n(a,o)||$n(i,o)||$n(lk,o)||$n(s.config.globalProperties,o)},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:$n(t,"value")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function xY(){return eRe().slots}function eRe(){const n=sr();return n.setupContext||(n.setupContext=W1e(n))}function jM(n){return Dt(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}function _1e(n,e){return!n||!e?n||e:Dt(n)&&Dt(e)?n.concat(e):Dr({},jM(n),jM(e))}let $V=!0;function tRe(n){const e=LY(n),t=n.proxy,i=n.ctx;$V=!1,e.beforeCreate&&bse(e.beforeCreate,n,"bc");const{data:s,computed:r,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:h,mounted:d,beforeUpdate:f,updated:p,activated:g,deactivated:m,beforeDestroy:_,beforeUnmount:b,destroyed:w,unmounted:C,render:S,renderTracked:x,renderTriggered:k,errorCaptured:L,serverPrefetch:E,expose:A,inheritAttrs:I,components:T,directives:N,filters:M}=e;if(c&&iRe(c,i,null),o)for(const B in o){const $=o[B];Wt($)&&(i[B]=$.bind(t))}if(s){const B=s.call(t,t);zi(B)&&(n.data=ia(B))}if($V=!0,r)for(const B in r){const $=r[B],Y=Wt($)?$.bind(t,t):Wt($.get)?$.get.bind(t,t):hl,le=!Wt($)&&Wt($.set)?$.set.bind(t):hl,re=Ee({get:Y,set:le});Object.defineProperty(i,B,{enumerable:!0,configurable:!0,get:()=>re.value,set:z=>re.value=z})}if(a)for(const B in a)v1e(a[B],i,t,B);if(l){const B=Wt(l)?l.call(t):l;Reflect.ownKeys(B).forEach($=>{To($,B[$])})}u&&bse(u,n,"c");function W(B,$){Dt($)?$.forEach(Y=>B(Y.bind(t))):$&&B($.bind(t))}if(W(p1e,h),W(or,d),W(jPe,f),W(X5,p),W(h1e,g),W(d1e,m),W(XPe,L),W(GPe,x),W(KPe,k),W(Fa,b),W(Y5,C),W(qPe,E),Dt(A))if(A.length){const B=n.exposed||(n.exposed={});A.forEach($=>{Object.defineProperty(B,$,{get:()=>t[$],set:Y=>t[$]=Y})})}else n.exposed||(n.exposed={});S&&n.render===hl&&(n.render=S),I!=null&&(n.inheritAttrs=I),T&&(n.components=T),N&&(n.directives=N),E&&u1e(n)}function iRe(n,e,t=hl){Dt(n)&&(n=zV(n));for(const i in n){const s=n[i];let r;zi(s)?"default"in s?r=Si(s.from||i,s.default,!0):r=Si(s.from||i):r=Si(s),jn(r)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):e[i]=r}}function bse(n,e,t){Uh(Dt(n)?n.map(i=>i.bind(e.proxy)):n.bind(e.proxy),e,t)}function v1e(n,e,t,i){let s=i.includes(".")?D1e(t,i):()=>t[i];if(on(n)){const r=e[n];Wt(r)&&Pt(s,r)}else if(Wt(n))Pt(s,n.bind(t));else if(zi(n))if(Dt(n))n.forEach(r=>v1e(r,e,t,i));else{const r=Wt(n.handler)?n.handler.bind(t):e[n.handler];Wt(r)&&Pt(s,r,n)}}function LY(n){const e=n.type,{mixins:t,extends:i}=e,{mixins:s,optionsCache:r,config:{optionMergeStrategies:o}}=n.appContext,a=r.get(e);let l;return a?l=a:!s.length&&!t&&!i?l=e:(l={},s.length&&s.forEach(c=>qM(l,c,o,!0)),qM(l,e,o)),zi(e)&&r.set(e,l),l}function qM(n,e,t,i=!1){const{mixins:s,extends:r}=e;r&&qM(n,r,t,!0),s&&s.forEach(o=>qM(n,o,t,!0));for(const o in e)if(!(i&&o==="expose")){const a=nRe[o]||t&&t[o];n[o]=a?a(n[o],e[o]):e[o]}return n}const nRe={data:yse,props:wse,emits:wse,methods:AE,computed:AE,beforeCreate:Ga,created:Ga,beforeMount:Ga,mounted:Ga,beforeUpdate:Ga,updated:Ga,beforeDestroy:Ga,beforeUnmount:Ga,destroyed:Ga,unmounted:Ga,activated:Ga,deactivated:Ga,errorCaptured:Ga,serverPrefetch:Ga,components:AE,directives:AE,watch:rRe,provide:yse,inject:sRe};function yse(n,e){return e?n?function(){return Dr(Wt(n)?n.call(this,this):n,Wt(e)?e.call(this,this):e)}:e:n}function sRe(n,e){return AE(zV(n),zV(e))}function zV(n){if(Dt(n)){const e={};for(let t=0;t<n.length;t++)e[n[t]]=n[t];return e}return n}function Ga(n,e){return n?[...new Set([].concat(n,e))]:e}function AE(n,e){return n?Dr(Object.create(null),n,e):e}function wse(n,e){return n?Dt(n)&&Dt(e)?[...new Set([...n,...e])]:Dr(Object.create(null),jM(n),jM(e??{})):e}function rRe(n,e){if(!n)return e;if(!e)return n;const t=Dr(Object.create(null),n);for(const i in e)t[i]=Ga(n[i],e[i]);return t}function b1e(){return{app:null,config:{isNativeTag:qAe,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let oRe=0;function aRe(n,e){return function(i,s=null){Wt(i)||(i=Dr({},i)),s!=null&&!zi(s)&&(s=null);const r=b1e(),o=new WeakSet,a=[];let l=!1;const c=r.app={_uid:oRe++,_component:i,_props:s,_container:null,_context:r,_instance:null,version:SR,get config(){return r.config},set config(u){},use(u,...h){return o.has(u)||(u&&Wt(u.install)?(o.add(u),u.install(c,...h)):Wt(u)&&(o.add(u),u(c,...h))),c},mixin(u){return r.mixins.includes(u)||r.mixins.push(u),c},component(u,h){return h?(r.components[u]=h,c):r.components[u]},directive(u,h){return h?(r.directives[u]=h,c):r.directives[u]},mount(u,h,d){if(!l){const f=c._ceVNode||Kt(i,s);return f.appContext=r,d===!0?d="svg":d===!1&&(d=void 0),h&&e?e(f,u):n(f,u,d),l=!0,c._container=u,u.__vue_app__=c,e6(f.component)}},onUnmount(u){a.push(u)},unmount(){l&&(Uh(a,c._instance,16),n(null,c._container),delete c._container.__vue_app__)},provide(u,h){return r.provides[u]=h,c},runWithContext(u){const h=IC;IC=c;try{return u()}finally{IC=h}}};return c}}let IC=null;function To(n,e){if(qo){let t=qo.provides;const i=qo.parent&&qo.parent.provides;i===t&&(t=qo.provides=Object.create(i)),t[n]=e}}function Si(n,e,t=!1){const i=qo||So;if(i||IC){const s=IC?IC._context.provides:i?i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(s&&n in s)return s[n];if(arguments.length>1)return t&&Wt(e)?e.call(i&&i.proxy):e}}const y1e={},w1e=()=>Object.create(y1e),C1e=n=>Object.getPrototypeOf(n)===y1e;function lRe(n,e,t,i=!1){const s={},r=w1e();n.propsDefaults=Object.create(null),S1e(n,e,s,r);for(const o in n.propsOptions[0])o in s||(s[o]=void 0);t?n.props=i?s:jme(s):n.type.props?n.props=s:n.props=r,n.attrs=r}function cRe(n,e,t,i){const{props:s,attrs:r,vnode:{patchFlag:o}}=n,a=en(s),[l]=n.propsOptions;let c=!1;if((i||o>0)&&!(o&16)){if(o&8){const u=n.vnode.dynamicProps;for(let h=0;h<u.length;h++){let d=u[h];if(Q5(n.emitsOptions,d))continue;const f=e[d];if(l)if($n(r,d))f!==r[d]&&(r[d]=f,c=!0);else{const p=Zc(d);s[p]=UV(l,a,p,f,n,!1)}else f!==r[d]&&(r[d]=f,c=!0)}}}else{S1e(n,e,s,r)&&(c=!0);let u;for(const h in a)(!e||!$n(e,h)&&((u=ep(h))===h||!$n(e,u)))&&(l?t&&(t[h]!==void 0||t[u]!==void 0)&&(s[h]=UV(l,a,h,void 0,n,!0)):delete s[h]);if(r!==a)for(const h in r)(!e||!$n(e,h))&&(delete r[h],c=!0)}c&&gg(n.attrs,"set","")}function S1e(n,e,t,i){const[s,r]=n.propsOptions;let o=!1,a;if(e)for(let l in e){if(rk(l))continue;const c=e[l];let u;s&&$n(s,u=Zc(l))?!r||!r.includes(u)?t[u]=c:(a||(a={}))[u]=c:Q5(n.emitsOptions,l)||(!(l in i)||c!==i[l])&&(i[l]=c,o=!0)}if(r){const l=en(t),c=a||Rn;for(let u=0;u<r.length;u++){const h=r[u];t[h]=UV(s,l,h,c[h],n,!$n(c,h))}}return o}function UV(n,e,t,i,s,r){const o=n[t];if(o!=null){const a=$n(o,"default");if(a&&i===void 0){const l=o.default;if(o.type!==Function&&!o.skipFactory&&Wt(l)){const{propsDefaults:c}=s;if(t in c)i=c[t];else{const u=JD(s);i=c[t]=l.call(null,e),u()}}else i=l;s.ce&&s.ce._setProp(t,i)}o[0]&&(r&&!a?i=!1:o[1]&&(i===""||i===ep(t))&&(i=!0))}return i}const uRe=new WeakMap;function x1e(n,e,t=!1){const i=t?uRe:e.propsCache,s=i.get(n);if(s)return s;const r=n.props,o={},a=[];let l=!1;if(!Wt(n)){const u=h=>{l=!0;const[d,f]=x1e(h,e,!0);Dr(o,d),f&&a.push(...f)};!t&&e.mixins.length&&e.mixins.forEach(u),n.extends&&u(n.extends),n.mixins&&n.mixins.forEach(u)}if(!r&&!l)return zi(n)&&i.set(n,SC),SC;if(Dt(r))for(let u=0;u<r.length;u++){const h=Zc(r[u]);Cse(h)&&(o[h]=Rn)}else if(r)for(const u in r){const h=Zc(u);if(Cse(h)){const d=r[u],f=o[h]=Dt(d)||Wt(d)?{type:d}:Dr({},d),p=f.type;let g=!1,m=!0;if(Dt(p))for(let _=0;_<p.length;++_){const b=p[_],w=Wt(b)&&b.name;if(w==="Boolean"){g=!0;break}else w==="String"&&(m=!1)}else g=Wt(p)&&p.name==="Boolean";f[0]=g,f[1]=m,(g||$n(f,"default"))&&a.push(h)}}const c=[o,a];return zi(n)&&i.set(n,c),c}function Cse(n){return n[0]!=="$"&&!rk(n)}const L1e=n=>n[0]==="_"||n==="$stable",EY=n=>Dt(n)?n.map(Kd):[Kd(n)],hRe=(n,e,t)=>{if(e._n)return e;const i=ei((...s)=>EY(e(...s)),t);return i._c=!1,i},E1e=(n,e,t)=>{const i=n._ctx;for(const s in n){if(L1e(s))continue;const r=n[s];if(Wt(r))e[s]=hRe(s,r,i);else if(r!=null){const o=EY(r);e[s]=()=>o}}},k1e=(n,e)=>{const t=EY(e);n.slots.default=()=>t},I1e=(n,e,t)=>{for(const i in e)(t||i!=="_")&&(n[i]=e[i])},dRe=(n,e,t)=>{const i=n.slots=w1e();if(n.vnode.shapeFlag&32){const s=e._;s?(I1e(i,e,t),t&&Lme(i,"_",s,!0)):E1e(e,i)}else e&&k1e(n,e)},fRe=(n,e,t)=>{const{vnode:i,slots:s}=n;let r=!0,o=Rn;if(i.shapeFlag&32){const a=e._;a?t&&a===1?r=!1:I1e(s,e,t):(r=!e.$stable,E1e(e,s)),o=e}else e&&(k1e(n,e),o={default:1});if(r)for(const a in s)!L1e(a)&&o[a]==null&&delete s[a]},Ol=kRe;function pRe(n){return gRe(n)}function gRe(n,e){const t=Eme();t.__VUE__=!0;const{insert:i,remove:s,patchProp:r,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:h,nextSibling:d,setScopeId:f=hl,insertStaticContent:p}=n,g=(Q,ne,xe,He=null,Re=null,Fe=null,Ye=void 0,he=null,te=!!ne.dynamicChildren)=>{if(Q===ne)return;Q&&!xv(Q,ne)&&(He=ie(Q),z(Q,Re,Fe,!0),Q=null),ne.patchFlag===-2&&(te=!1,ne.dynamicChildren=null);const{type:ee,ref:R,shapeFlag:F}=ne;switch(ee){case QD:m(Q,ne,xe,He);break;case ka:_(Q,ne,xe,He);break;case m9:Q==null&&b(ne,xe,He,Ye);break;case ss:T(Q,ne,xe,He,Re,Fe,Ye,he,te);break;default:F&1?S(Q,ne,xe,He,Re,Fe,Ye,he,te):F&6?N(Q,ne,xe,He,Re,Fe,Ye,he,te):(F&64||F&128)&&ee.process(Q,ne,xe,He,Re,Fe,Ye,he,te,Te)}R!=null&&Re&&VV(R,Q&&Q.ref,Fe,ne||Q,!ne)},m=(Q,ne,xe,He)=>{if(Q==null)i(ne.el=a(ne.children),xe,He);else{const Re=ne.el=Q.el;ne.children!==Q.children&&c(Re,ne.children)}},_=(Q,ne,xe,He)=>{Q==null?i(ne.el=l(ne.children||""),xe,He):ne.el=Q.el},b=(Q,ne,xe,He)=>{[Q.el,Q.anchor]=p(Q.children,ne,xe,He,Q.el,Q.anchor)},w=({el:Q,anchor:ne},xe,He)=>{let Re;for(;Q&&Q!==ne;)Re=d(Q),i(Q,xe,He),Q=Re;i(ne,xe,He)},C=({el:Q,anchor:ne})=>{let xe;for(;Q&&Q!==ne;)xe=d(Q),s(Q),Q=xe;s(ne)},S=(Q,ne,xe,He,Re,Fe,Ye,he,te)=>{ne.type==="svg"?Ye="svg":ne.type==="math"&&(Ye="mathml"),Q==null?x(ne,xe,He,Re,Fe,Ye,he,te):E(Q,ne,Re,Fe,Ye,he,te)},x=(Q,ne,xe,He,Re,Fe,Ye,he)=>{let te,ee;const{props:R,shapeFlag:F,transition:q,dirs:G}=Q;if(te=Q.el=o(Q.type,Fe,R&&R.is,R),F&8?u(te,Q.children):F&16&&L(Q.children,te,null,He,Re,p9(Q,Fe),Ye,he),G&&U_(Q,null,He,"created"),k(te,Q,Q.scopeId,Ye,He),R){for(const _e in R)_e!=="value"&&!rk(_e)&&r(te,_e,null,R[_e],Fe,He);"value"in R&&r(te,"value",null,R.value,Fe),(ee=R.onVnodeBeforeMount)&&wd(ee,He,Q)}G&&U_(Q,null,He,"beforeMount");const pe=mRe(Re,q);pe&&q.beforeEnter(te),i(te,ne,xe),((ee=R&&R.onVnodeMounted)||pe||G)&&Ol(()=>{ee&&wd(ee,He,Q),pe&&q.enter(te),G&&U_(Q,null,He,"mounted")},Re)},k=(Q,ne,xe,He,Re)=>{if(xe&&f(Q,xe),He)for(let Fe=0;Fe<He.length;Fe++)f(Q,He[Fe]);if(Re){let Fe=Re.subTree;if(ne===Fe||R1e(Fe.type)&&(Fe.ssContent===ne||Fe.ssFallback===ne)){const Ye=Re.vnode;k(Q,Ye,Ye.scopeId,Ye.slotScopeIds,Re.parent)}}},L=(Q,ne,xe,He,Re,Fe,Ye,he,te=0)=>{for(let ee=te;ee<Q.length;ee++){const R=Q[ee]=he?Pm(Q[ee]):Kd(Q[ee]);g(null,R,ne,xe,He,Re,Fe,Ye,he)}},E=(Q,ne,xe,He,Re,Fe,Ye)=>{const he=ne.el=Q.el;let{patchFlag:te,dynamicChildren:ee,dirs:R}=ne;te|=Q.patchFlag&16;const F=Q.props||Rn,q=ne.props||Rn;let G;if(xe&&q_(xe,!1),(G=q.onVnodeBeforeUpdate)&&wd(G,xe,ne,Q),R&&U_(ne,Q,xe,"beforeUpdate"),xe&&q_(xe,!0),(F.innerHTML&&q.innerHTML==null||F.textContent&&q.textContent==null)&&u(he,""),ee?A(Q.dynamicChildren,ee,he,xe,He,p9(ne,Re),Fe):Ye||$(Q,ne,he,null,xe,He,p9(ne,Re),Fe,!1),te>0){if(te&16)I(he,F,q,xe,Re);else if(te&2&&F.class!==q.class&&r(he,"class",null,q.class,Re),te&4&&r(he,"style",F.style,q.style,Re),te&8){const pe=ne.dynamicProps;for(let _e=0;_e<pe.length;_e++){const De=pe[_e],ze=F[De],Ze=q[De];(Ze!==ze||De==="value")&&r(he,De,ze,Ze,Re,xe)}}te&1&&Q.children!==ne.children&&u(he,ne.children)}else!Ye&&ee==null&&I(he,F,q,xe,Re);((G=q.onVnodeUpdated)||R)&&Ol(()=>{G&&wd(G,xe,ne,Q),R&&U_(ne,Q,xe,"updated")},He)},A=(Q,ne,xe,He,Re,Fe,Ye)=>{for(let he=0;he<ne.length;he++){const te=Q[he],ee=ne[he],R=te.el&&(te.type===ss||!xv(te,ee)||te.shapeFlag&70)?h(te.el):xe;g(te,ee,R,null,He,Re,Fe,Ye,!0)}},I=(Q,ne,xe,He,Re)=>{if(ne!==xe){if(ne!==Rn)for(const Fe in ne)!rk(Fe)&&!(Fe in xe)&&r(Q,Fe,ne[Fe],null,Re,He);for(const Fe in xe){if(rk(Fe))continue;const Ye=xe[Fe],he=ne[Fe];Ye!==he&&Fe!=="value"&&r(Q,Fe,he,Ye,Re,He)}"value"in xe&&r(Q,"value",ne.value,xe.value,Re)}},T=(Q,ne,xe,He,Re,Fe,Ye,he,te)=>{const ee=ne.el=Q?Q.el:a(""),R=ne.anchor=Q?Q.anchor:a("");let{patchFlag:F,dynamicChildren:q,slotScopeIds:G}=ne;G&&(he=he?he.concat(G):G),Q==null?(i(ee,xe,He),i(R,xe,He),L(ne.children||[],xe,R,Re,Fe,Ye,he,te)):F>0&&F&64&&q&&Q.dynamicChildren?(A(Q.dynamicChildren,q,xe,Re,Fe,Ye,he),(ne.key!=null||Re&&ne===Re.subTree)&&kY(Q,ne,!0)):$(Q,ne,xe,R,Re,Fe,Ye,he,te)},N=(Q,ne,xe,He,Re,Fe,Ye,he,te)=>{ne.slotScopeIds=he,Q==null?ne.shapeFlag&512?Re.ctx.activate(ne,xe,He,Ye,te):M(ne,xe,He,Re,Fe,Ye,te):V(Q,ne,te)},M=(Q,ne,xe,He,Re,Fe,Ye)=>{const he=Q.component=PRe(Q,He,Re);if(K5(Q)&&(he.ctx.renderer=Te),RRe(he,!1,Ye),he.asyncDep){if(Re&&Re.registerDep(he,W,Ye),!Q.el){const te=he.subTree=Kt(ka);_(null,te,ne,xe)}}else W(he,Q,ne,xe,Re,Fe,Ye)},V=(Q,ne,xe)=>{const He=ne.component=Q.component;if(LRe(Q,ne,xe))if(He.asyncDep&&!He.asyncResolved){B(He,ne,xe);return}else He.next=ne,He.update();else ne.el=Q.el,He.vnode=ne},W=(Q,ne,xe,He,Re,Fe,Ye)=>{const he=()=>{if(Q.isMounted){let{next:F,bu:q,u:G,parent:pe,vnode:_e}=Q;{const Tt=T1e(Q);if(Tt){F&&(F.el=_e.el,B(Q,F,Ye)),Tt.asyncDep.then(()=>{Q.isUnmounted||he()});return}}let De=F,ze;q_(Q,!1),F?(F.el=_e.el,B(Q,F,Ye)):F=_e,q&&yR(q),(ze=F.props&&F.props.onVnodeBeforeUpdate)&&wd(ze,pe,F,_e),q_(Q,!0);const Ze=g9(Q),tt=Q.subTree;Q.subTree=Ze,g(tt,Ze,h(tt.el),ie(tt),Q,Re,Fe),F.el=Ze.el,De===null&&ERe(Q,Ze.el),G&&Ol(G,Re),(ze=F.props&&F.props.onVnodeUpdated)&&Ol(()=>wd(ze,pe,F,_e),Re)}else{let F;const{el:q,props:G}=ne,{bm:pe,m:_e,parent:De,root:ze,type:Ze}=Q,tt=kC(ne);if(q_(Q,!1),pe&&yR(pe),!tt&&(F=G&&G.onVnodeBeforeMount)&&wd(F,De,ne),q_(Q,!0),q&&Ke){const Tt=()=>{Q.subTree=g9(Q),Ke(q,Q.subTree,Q,Re,null)};tt&&Ze.__asyncHydrate?Ze.__asyncHydrate(q,Q,Tt):Tt()}else{ze.ce&&ze.ce._injectChildStyle(Ze);const Tt=Q.subTree=g9(Q);g(null,Tt,xe,He,Q,Re,Fe),ne.el=Tt.el}if(_e&&Ol(_e,Re),!tt&&(F=G&&G.onVnodeMounted)){const Tt=ne;Ol(()=>wd(F,De,Tt),Re)}(ne.shapeFlag&256||De&&kC(De.vnode)&&De.vnode.shapeFlag&256)&&Q.a&&Ol(Q.a,Re),Q.isMounted=!0,ne=xe=He=null}};Q.scope.on();const te=Q.effect=new Ame(he);Q.scope.off();const ee=Q.update=te.run.bind(te),R=Q.job=te.runIfDirty.bind(te);R.i=Q,R.id=Q.uid,te.scheduler=()=>yY(R),q_(Q,!0),ee()},B=(Q,ne,xe)=>{ne.component=Q;const He=Q.vnode.props;Q.vnode=ne,Q.next=null,cRe(Q,ne.props,He,xe),fRe(Q,ne.children,xe),S_(),pse(Q),x_()},$=(Q,ne,xe,He,Re,Fe,Ye,he,te=!1)=>{const ee=Q&&Q.children,R=Q?Q.shapeFlag:0,F=ne.children,{patchFlag:q,shapeFlag:G}=ne;if(q>0){if(q&128){le(ee,F,xe,He,Re,Fe,Ye,he,te);return}else if(q&256){Y(ee,F,xe,He,Re,Fe,Ye,he,te);return}}G&8?(R&16&&ce(ee,Re,Fe),F!==ee&&u(xe,F)):R&16?G&16?le(ee,F,xe,He,Re,Fe,Ye,he,te):ce(ee,Re,Fe,!0):(R&8&&u(xe,""),G&16&&L(F,xe,He,Re,Fe,Ye,he,te))},Y=(Q,ne,xe,He,Re,Fe,Ye,he,te)=>{Q=Q||SC,ne=ne||SC;const ee=Q.length,R=ne.length,F=Math.min(ee,R);let q;for(q=0;q<F;q++){const G=ne[q]=te?Pm(ne[q]):Kd(ne[q]);g(Q[q],G,xe,null,Re,Fe,Ye,he,te)}ee>R?ce(Q,Re,Fe,!0,!1,F):L(ne,xe,He,Re,Fe,Ye,he,te,F)},le=(Q,ne,xe,He,Re,Fe,Ye,he,te)=>{let ee=0;const R=ne.length;let F=Q.length-1,q=R-1;for(;ee<=F&&ee<=q;){const G=Q[ee],pe=ne[ee]=te?Pm(ne[ee]):Kd(ne[ee]);if(xv(G,pe))g(G,pe,xe,null,Re,Fe,Ye,he,te);else break;ee++}for(;ee<=F&&ee<=q;){const G=Q[F],pe=ne[q]=te?Pm(ne[q]):Kd(ne[q]);if(xv(G,pe))g(G,pe,xe,null,Re,Fe,Ye,he,te);else break;F--,q--}if(ee>F){if(ee<=q){const G=q+1,pe=G<R?ne[G].el:He;for(;ee<=q;)g(null,ne[ee]=te?Pm(ne[ee]):Kd(ne[ee]),xe,pe,Re,Fe,Ye,he,te),ee++}}else if(ee>q)for(;ee<=F;)z(Q[ee],Re,Fe,!0),ee++;else{const G=ee,pe=ee,_e=new Map;for(ee=pe;ee<=q;ee++){const Rt=ne[ee]=te?Pm(ne[ee]):Kd(ne[ee]);Rt.key!=null&&_e.set(Rt.key,ee)}let De,ze=0;const Ze=q-pe+1;let tt=!1,Tt=0;const It=new Array(Ze);for(ee=0;ee<Ze;ee++)It[ee]=0;for(ee=G;ee<=F;ee++){const Rt=Q[ee];if(ze>=Ze){z(Rt,Re,Fe,!0);continue}let si;if(Rt.key!=null)si=_e.get(Rt.key);else for(De=pe;De<=q;De++)if(It[De-pe]===0&&xv(Rt,ne[De])){si=De;break}si===void 0?z(Rt,Re,Fe,!0):(It[si-pe]=ee+1,si>=Tt?Tt=si:tt=!0,g(Rt,ne[si],xe,null,Re,Fe,Ye,he,te),ze++)}const rt=tt?_Re(It):SC;for(De=rt.length-1,ee=Ze-1;ee>=0;ee--){const Rt=pe+ee,si=ne[Rt],Jn=Rt+1<R?ne[Rt+1].el:He;It[ee]===0?g(null,si,xe,Jn,Re,Fe,Ye,he,te):tt&&(De<0||ee!==rt[De]?re(si,xe,Jn,2):De--)}}},re=(Q,ne,xe,He,Re=null)=>{const{el:Fe,type:Ye,transition:he,children:te,shapeFlag:ee}=Q;if(ee&6){re(Q.component.subTree,ne,xe,He);return}if(ee&128){Q.suspense.move(ne,xe,He);return}if(ee&64){Ye.move(Q,ne,xe,Te);return}if(Ye===ss){i(Fe,ne,xe);for(let F=0;F<te.length;F++)re(te[F],ne,xe,He);i(Q.anchor,ne,xe);return}if(Ye===m9){w(Q,ne,xe);return}if(He!==2&&ee&1&&he)if(He===0)he.beforeEnter(Fe),i(Fe,ne,xe),Ol(()=>he.enter(Fe),Re);else{const{leave:F,delayLeave:q,afterLeave:G}=he,pe=()=>i(Fe,ne,xe),_e=()=>{F(Fe,()=>{pe(),G&&G()})};q?q(Fe,pe,_e):_e()}else i(Fe,ne,xe)},z=(Q,ne,xe,He=!1,Re=!1)=>{const{type:Fe,props:Ye,ref:he,children:te,dynamicChildren:ee,shapeFlag:R,patchFlag:F,dirs:q,cacheIndex:G}=Q;if(F===-2&&(Re=!1),he!=null&&VV(he,null,xe,Q,!0),G!=null&&(ne.renderCache[G]=void 0),R&256){ne.ctx.deactivate(Q);return}const pe=R&1&&q,_e=!kC(Q);let De;if(_e&&(De=Ye&&Ye.onVnodeBeforeUnmount)&&wd(De,ne,Q),R&6)j(Q.component,xe,He);else{if(R&128){Q.suspense.unmount(xe,He);return}pe&&U_(Q,null,ne,"beforeUnmount"),R&64?Q.type.remove(Q,ne,xe,Te,He):ee&&!ee.hasOnce&&(Fe!==ss||F>0&&F&64)?ce(ee,ne,xe,!1,!0):(Fe===ss&&F&384||!Re&&R&16)&&ce(te,ne,xe),He&&K(Q)}(_e&&(De=Ye&&Ye.onVnodeUnmounted)||pe)&&Ol(()=>{De&&wd(De,ne,Q),pe&&U_(Q,null,ne,"unmounted")},xe)},K=Q=>{const{type:ne,el:xe,anchor:He,transition:Re}=Q;if(ne===ss){Z(xe,He);return}if(ne===m9){C(Q);return}const Fe=()=>{s(xe),Re&&!Re.persisted&&Re.afterLeave&&Re.afterLeave()};if(Q.shapeFlag&1&&Re&&!Re.persisted){const{leave:Ye,delayLeave:he}=Re,te=()=>Ye(xe,Fe);he?he(Q.el,Fe,te):te()}else Fe()},Z=(Q,ne)=>{let xe;for(;Q!==ne;)xe=d(Q),s(Q),Q=xe;s(ne)},j=(Q,ne,xe)=>{const{bum:He,scope:Re,job:Fe,subTree:Ye,um:he,m:te,a:ee}=Q;Sse(te),Sse(ee),He&&yR(He),Re.stop(),Fe&&(Fe.flags|=8,z(Ye,Q,ne,xe)),he&&Ol(he,ne),Ol(()=>{Q.isUnmounted=!0},ne),ne&&ne.pendingBranch&&!ne.isUnmounted&&Q.asyncDep&&!Q.asyncResolved&&Q.suspenseId===ne.pendingId&&(ne.deps--,ne.deps===0&&ne.resolve())},ce=(Q,ne,xe,He=!1,Re=!1,Fe=0)=>{for(let Ye=Fe;Ye<Q.length;Ye++)z(Q[Ye],ne,xe,He,Re)},ie=Q=>{if(Q.shapeFlag&6)return ie(Q.component.subTree);if(Q.shapeFlag&128)return Q.suspense.next();const ne=d(Q.anchor||Q.el),xe=ne&&ne[i1e];return xe?d(xe):ne};let de=!1;const Le=(Q,ne,xe)=>{Q==null?ne._vnode&&z(ne._vnode,null,null,!0):g(ne._vnode||null,Q,ne,null,null,null,xe),ne._vnode=Q,de||(de=!0,pse(),Jme(),de=!1)},Te={p:g,um:z,m:re,r:K,mt:M,mc:L,pc:$,pbc:A,n:ie,o:n};let ve,Ke;return{render:Le,hydrate:ve,createApp:aRe(Le,ve)}}function p9({type:n,props:e},t){return t==="svg"&&n==="foreignObject"||t==="mathml"&&n==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function q_({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function mRe(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function kY(n,e,t=!1){const i=n.children,s=e.children;if(Dt(i)&&Dt(s))for(let r=0;r<i.length;r++){const o=i[r];let a=s[r];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=s[r]=Pm(s[r]),a.el=o.el),!t&&a.patchFlag!==-2&&kY(o,a)),a.type===QD&&(a.el=o.el)}}function _Re(n){const e=n.slice(),t=[0];let i,s,r,o,a;const l=n.length;for(i=0;i<l;i++){const c=n[i];if(c!==0){if(s=t[t.length-1],n[s]<c){e[i]=s,t.push(i);continue}for(r=0,o=t.length-1;r<o;)a=r+o>>1,n[t[a]]<c?r=a+1:o=a;c<n[t[r]]&&(r>0&&(e[i]=t[r-1]),t[r]=i)}}for(r=t.length,o=t[r-1];r-- >0;)t[r]=o,o=e[o];return t}function T1e(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:T1e(e)}function Sse(n){if(n)for(let e=0;e<n.length;e++)n[e].flags|=8}const vRe=Symbol.for("v-scx"),bRe=()=>Si(vRe);function g0(n,e){return Z5(n,null,e)}function yRe(n,e){return Z5(n,null,{flush:"sync"})}function Pt(n,e,t){return Z5(n,e,t)}function Z5(n,e,t=Rn){const{immediate:i,deep:s,flush:r,once:o}=t,a=Dr({},t);let l;if(J5)if(r==="sync"){const d=bRe();l=d.__watcherHandles||(d.__watcherHandles=[])}else if(!e||i)a.once=!0;else return{stop:hl,resume:hl,pause:hl};const c=qo;a.call=(d,f,p)=>Uh(d,c,f,p);let u=!1;r==="post"?a.scheduler=d=>{Ol(d,c&&c.suspense)}:r!=="sync"&&(u=!0,a.scheduler=(d,f)=>{f?d():yY(d)}),a.augmentJob=d=>{e&&(d.flags|=4),u&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const h=RPe(n,e,a);return l&&l.push(h),h}function wRe(n,e,t){const i=this.proxy,s=on(n)?n.includes(".")?D1e(i,n):()=>i[n]:n.bind(i,i);let r;Wt(e)?r=e:(r=e.handler,t=e);const o=JD(this),a=Z5(s,r.bind(i),t);return o(),a}function D1e(n,e){const t=e.split(".");return()=>{let i=n;for(let s=0;s<t.length&&i;s++)i=i[t[s]];return i}}function N1e(n,e,t=Rn){const i=sr(),s=Zc(e),r=ep(e),o=A1e(n,e),a=Gme((l,c)=>{let u,h=Rn,d;return yRe(()=>{const f=n[e];zl(u,f)&&(u=f,c())}),{get(){return l(),t.get?t.get(u):u},set(f){const p=t.set?t.set(f):f;if(!zl(p,u)&&!(h!==Rn&&zl(f,h)))return;const g=i.vnode.props;g&&(e in g||s in g||r in g)&&(`onUpdate:${e}`in g||`onUpdate:${s}`in g||`onUpdate:${r}`in g)||(u=f,c()),i.emit(`update:${e}`,p),zl(f,p)&&zl(f,h)&&!zl(p,d)&&c(),h=f,d=p}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||Rn:a,done:!1}:{done:!0}}}},a}const A1e=(n,e)=>e==="modelValue"||e==="model-value"?n.modelModifiers:n[`${e}Modifiers`]||n[`${Zc(e)}Modifiers`]||n[`${ep(e)}Modifiers`];function CRe(n,e,...t){if(n.isUnmounted)return;const i=n.vnode.props||Rn;let s=t;const r=e.startsWith("update:"),o=r&&A1e(i,e.slice(7));o&&(o.trim&&(s=t.map(u=>on(u)?u.trim():u)),o.number&&(s=t.map(MV)));let a,l=i[a=bR(e)]||i[a=bR(Zc(e))];!l&&r&&(l=i[a=bR(ep(e))]),l&&Uh(l,n,6,s);const c=i[a+"Once"];if(c){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,Uh(c,n,6,s)}}function P1e(n,e,t=!1){const i=e.emitsCache,s=i.get(n);if(s!==void 0)return s;const r=n.emits;let o={},a=!1;if(!Wt(n)){const l=c=>{const u=P1e(c,e,!0);u&&(a=!0,Dr(o,u))};!t&&e.mixins.length&&e.mixins.forEach(l),n.extends&&l(n.extends),n.mixins&&n.mixins.forEach(l)}return!r&&!a?(zi(n)&&i.set(n,null),null):(Dt(r)?r.forEach(l=>o[l]=null):Dr(o,r),zi(n)&&i.set(n,o),o)}function Q5(n,e){return!n||!B5(e)?!1:(e=e.slice(2).replace(/Once$/,""),$n(n,e[0].toLowerCase()+e.slice(1))||$n(n,ep(e))||$n(n,e))}function g9(n){const{type:e,vnode:t,proxy:i,withProxy:s,propsOptions:[r],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:h,data:d,setupState:f,ctx:p,inheritAttrs:g}=n,m=UM(n);let _,b;try{if(t.shapeFlag&4){const C=s||i,S=C;_=Kd(c.call(S,C,u,h,f,d,p)),b=a}else{const C=e;_=Kd(C.length>1?C(h,{attrs:a,slots:o,emit:l}):C(h,null)),b=e.props?a:SRe(a)}}catch(C){ck.length=0,q5(C,n,1),_=Kt(ka)}let w=_;if(b&&g!==!1){const C=Object.keys(b),{shapeFlag:S}=w;C.length&&S&7&&(r&&C.some(aY)&&(b=xRe(b,r)),w=Tg(w,b,!1,!0))}return t.dirs&&(w=Tg(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(t.dirs):t.dirs),t.transition&&Dy(w,t.transition),_=w,UM(m),_}const SRe=n=>{let e;for(const t in n)(t==="class"||t==="style"||B5(t))&&((e||(e={}))[t]=n[t]);return e},xRe=(n,e)=>{const t={};for(const i in n)(!aY(i)||!(i.slice(9)in e))&&(t[i]=n[i]);return t};function LRe(n,e,t){const{props:i,children:s,component:r}=n,{props:o,children:a,patchFlag:l}=e,c=r.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return i?xse(i,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let h=0;h<u.length;h++){const d=u[h];if(o[d]!==i[d]&&!Q5(c,d))return!0}}}else return(s||a)&&(!a||!a.$stable)?!0:i===o?!1:i?o?xse(i,o,c):!0:!!o;return!1}function xse(n,e,t){const i=Object.keys(e);if(i.length!==Object.keys(n).length)return!0;for(let s=0;s<i.length;s++){const r=i[s];if(e[r]!==n[r]&&!Q5(t,r))return!0}return!1}function ERe({vnode:n,parent:e},t){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===n&&(i.el=n.el),i===n)(n=e.vnode).el=t,e=e.parent;else break}}const R1e=n=>n.__isSuspense;function kRe(n,e){e&&e.pendingBranch?Dt(n)?e.effects.push(...n):e.effects.push(n):FPe(n)}const ss=Symbol.for("v-fgt"),QD=Symbol.for("v-txt"),ka=Symbol.for("v-cmt"),m9=Symbol.for("v-stc"),ck=[];let Fc=null;function Qe(n=!1){ck.push(Fc=n?null:[])}function IRe(){ck.pop(),Fc=ck[ck.length-1]||null}let RI=1;function Lse(n){RI+=n,n<0&&Fc&&(Fc.hasOnce=!0)}function M1e(n){return n.dynamicChildren=RI>0?Fc||SC:null,IRe(),RI>0&&Fc&&Fc.push(n),n}function St(n,e,t,i,s,r){return M1e(vt(n,e,t,i,s,r,!0))}function Mi(n,e,t,i,s){return M1e(Kt(n,e,t,i,s,!0))}function yS(n){return n?n.__v_isVNode===!0:!1}function xv(n,e){return n.type===e.type&&n.key===e.key}const O1e=({key:n})=>n??null,CR=({ref:n,ref_key:e,ref_for:t})=>(typeof n=="number"&&(n=""+n),n!=null?on(n)||jn(n)||Wt(n)?{i:So,r:n,k:e,f:!!t}:n:null);function vt(n,e=null,t=null,i=0,s=null,r=n===ss?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&O1e(e),ref:e&&CR(e),scopeId:t1e,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:So};return a?(IY(l,t),r&128&&n.normalize(l)):t&&(l.shapeFlag|=on(t)?8:16),RI>0&&!o&&Fc&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Fc.push(l),l}const Kt=TRe;function TRe(n,e=null,t=null,i=0,s=null,r=!1){if((!n||n===g1e)&&(n=ka),yS(n)){const a=Tg(n,e,!0);return t&&IY(a,t),RI>0&&!r&&Fc&&(a.shapeFlag&6?Fc[Fc.indexOf(n)]=a:Fc.push(a)),a.patchFlag=-2,a}if(BRe(n)&&(n=n.__vccOpts),e){e=DRe(e);let{class:a,style:l}=e;a&&!on(a)&&(e.class=pt(a)),zi(l)&&(_Y(l)&&!Dt(l)&&(l=Dr({},l)),e.style=Hr(l))}const o=on(n)?1:R1e(n)?128:n1e(n)?64:zi(n)?4:Wt(n)?2:0;return vt(n,e,t,i,s,o,r,!0)}function DRe(n){return n?_Y(n)||C1e(n)?Dr({},n):n:null}function Tg(n,e,t=!1,i=!1){const{props:s,ref:r,patchFlag:o,children:a,transition:l}=n,c=e?Ax(s||{},e):s,u={__v_isVNode:!0,__v_skip:!0,type:n.type,props:c,key:c&&O1e(c),ref:e&&e.ref?t&&r?Dt(r)?r.concat(CR(e)):[r,CR(e)]:CR(e):r,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==ss?o===-1?16:o|16:o,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:l,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&Tg(n.ssContent),ssFallback:n.ssFallback&&Tg(n.ssFallback),el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return l&&i&&Dy(u,l.clone(u)),u}function kh(n=" ",e=0){return Kt(QD,null,n,e)}function xi(n="",e=!1){return e?(Qe(),Mi(ka,null,n)):Kt(ka,null,n)}function Kd(n){return n==null||typeof n=="boolean"?Kt(ka):Dt(n)?Kt(ss,null,n.slice()):typeof n=="object"?Pm(n):Kt(QD,null,String(n))}function Pm(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:Tg(n)}function IY(n,e){let t=0;const{shapeFlag:i}=n;if(e==null)e=null;else if(Dt(e))t=16;else if(typeof e=="object")if(i&65){const s=e.default;s&&(s._c&&(s._d=!1),IY(n,s()),s._c&&(s._d=!0));return}else{t=32;const s=e._;!s&&!C1e(e)?e._ctx=So:s===3&&So&&(So.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else Wt(e)?(e={default:e,_ctx:So},t=32):(e=String(e),i&64?(t=16,e=[kh(e)]):t=8);n.children=e,n.shapeFlag|=t}function Ax(...n){const e={};for(let t=0;t<n.length;t++){const i=n[t];for(const s in i)if(s==="class")e.class!==i.class&&(e.class=pt([e.class,i.class]));else if(s==="style")e.style=Hr([e.style,i.style]);else if(B5(s)){const r=e[s],o=i[s];o&&r!==o&&!(Dt(r)&&r.includes(o))&&(e[s]=r?[].concat(r,o):o)}else s!==""&&(e[s]=i[s])}return e}function wd(n,e,t,i=null){Uh(n,e,7,[t,i])}const NRe=b1e();let ARe=0;function PRe(n,e,t){const i=n.type,s=(e?e.appContext:n.appContext)||NRe,r={uid:ARe++,vnode:n,type:i,parent:e,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new sPe(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(s.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:x1e(i,s),emitsOptions:P1e(i,s),emit:null,emitted:null,propsDefaults:Rn,inheritAttrs:i.inheritAttrs,ctx:Rn,data:Rn,props:Rn,attrs:Rn,slots:Rn,refs:Rn,setupState:Rn,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=e?e.root:r,r.emit=CRe.bind(null,r),n.ce&&n.ce(r),r}let qo=null;const sr=()=>qo||So;let KM,jV;{const n=Eme(),e=(t,i)=>{let s;return(s=n[t])||(s=n[t]=[]),s.push(i),r=>{s.length>1?s.forEach(o=>o(r)):s[0](r)}};KM=e("__VUE_INSTANCE_SETTERS__",t=>qo=t),jV=e("__VUE_SSR_SETTERS__",t=>J5=t)}const JD=n=>{const e=qo;return KM(n),n.scope.on(),()=>{n.scope.off(),KM(e)}},Ese=()=>{qo&&qo.scope.off(),KM(null)};function F1e(n){return n.vnode.shapeFlag&4}let J5=!1;function RRe(n,e=!1,t=!1){e&&jV(e);const{props:i,children:s}=n.vnode,r=F1e(n);lRe(n,i,r,e),dRe(n,s,t);const o=r?MRe(n,e):void 0;return e&&jV(!1),o}function MRe(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,JPe);const{setup:i}=t;if(i){const s=n.setupContext=i.length>1?W1e(n):null,r=JD(n);S_();const o=ZD(i,n,0,[n.props,s]);if(x_(),r(),Cme(o)){if(kC(n)||u1e(n),o.then(Ese,Ese),e)return o.then(a=>{kse(n,a,e)}).catch(a=>{q5(a,n,0)});n.asyncDep=o}else kse(n,o,e)}else B1e(n,e)}function kse(n,e,t){Wt(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:zi(e)&&(n.setupState=Kme(e)),B1e(n,t)}let Ise;function B1e(n,e,t){const i=n.type;if(!n.render){if(!e&&Ise&&!i.render){const s=i.template||LY(n).template;if(s){const{isCustomElement:r,compilerOptions:o}=n.appContext.config,{delimiters:a,compilerOptions:l}=i,c=Dr(Dr({isCustomElement:r,delimiters:a},o),l);i.render=Ise(s,c)}}n.render=i.render||hl}{const s=JD(n);S_();try{tRe(n)}finally{x_(),s()}}}const ORe={get(n,e){return Aa(n,"get",""),n[e]}};function W1e(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,ORe),slots:n.slots,emit:n.emit,expose:e}}function e6(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy(Kme(EPe(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in lk)return lk[t](n)},has(e,t){return t in e||t in lk}})):n.proxy}function FRe(n,e=!0){return Wt(n)?n.displayName||n.name:n.name||e&&n.__name}function BRe(n){return Wt(n)&&"__vccOpts"in n}const Ee=(n,e)=>PPe(n,e,J5);function Lw(n,e,t){const i=arguments.length;return i===2?zi(e)&&!Dt(e)?yS(e)?Kt(n,null,[e]):Kt(n,e):Kt(n,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&yS(t)&&(t=[t]),Kt(n,e,t))}const SR="3.5.3",WRe=hl;/** +* @vue/runtime-dom v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let qV;const Tse=typeof window<"u"&&window.trustedTypes;if(Tse)try{qV=Tse.createPolicy("vue",{createHTML:n=>n})}catch{}const V1e=qV?n=>qV.createHTML(n):n=>n,VRe="http://www.w3.org/2000/svg",HRe="http://www.w3.org/1998/Math/MathML",Sp=typeof document<"u"?document:null,Dse=Sp&&Sp.createElement("template"),$Re={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,i)=>{const s=e==="svg"?Sp.createElementNS(VRe,n):e==="mathml"?Sp.createElementNS(HRe,n):t?Sp.createElement(n,{is:t}):Sp.createElement(n);return n==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:n=>Sp.createTextNode(n),createComment:n=>Sp.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>Sp.querySelector(n),setScopeId(n,e){n.setAttribute(e,"")},insertStaticContent(n,e,t,i,s,r){const o=t?t.previousSibling:e.lastChild;if(s&&(s===r||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),t),!(s===r||!(s=s.nextSibling)););else{Dse.innerHTML=V1e(i==="svg"?`<svg>${n}</svg>`:i==="mathml"?`<math>${n}</math>`:n);const a=Dse.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,t)}return[o?o.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},um="transition",AL="animation",wS=Symbol("_vtc"),H1e={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},$1e=Dr({},o1e,H1e),zRe=n=>(n.displayName="Transition",n.props=$1e,n),m0=zRe((n,{slots:e})=>Lw(zPe,z1e(n),e)),K_=(n,e=[])=>{Dt(n)?n.forEach(t=>t(...e)):n&&n(...e)},Nse=n=>n?Dt(n)?n.some(e=>e.length>1):n.length>1:!1;function z1e(n){const e={};for(const T in n)T in H1e||(e[T]=n[T]);if(n.css===!1)return e;const{name:t="v",type:i,duration:s,enterFromClass:r=`${t}-enter-from`,enterActiveClass:o=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:l=r,appearActiveClass:c=o,appearToClass:u=a,leaveFromClass:h=`${t}-leave-from`,leaveActiveClass:d=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=n,p=URe(s),g=p&&p[0],m=p&&p[1],{onBeforeEnter:_,onEnter:b,onEnterCancelled:w,onLeave:C,onLeaveCancelled:S,onBeforeAppear:x=_,onAppear:k=b,onAppearCancelled:L=w}=e,E=(T,N,M)=>{wm(T,N?u:a),wm(T,N?c:o),M&&M()},A=(T,N)=>{T._isLeaving=!1,wm(T,h),wm(T,f),wm(T,d),N&&N()},I=T=>(N,M)=>{const V=T?k:b,W=()=>E(N,T,M);K_(V,[N,W]),Ase(()=>{wm(N,T?l:r),bp(N,T?u:a),Nse(V)||Pse(N,i,g,W)})};return Dr(e,{onBeforeEnter(T){K_(_,[T]),bp(T,r),bp(T,o)},onBeforeAppear(T){K_(x,[T]),bp(T,l),bp(T,c)},onEnter:I(!1),onAppear:I(!0),onLeave(T,N){T._isLeaving=!0;const M=()=>A(T,N);bp(T,h),bp(T,d),j1e(),Ase(()=>{T._isLeaving&&(wm(T,h),bp(T,f),Nse(C)||Pse(T,i,m,M))}),K_(C,[T,M])},onEnterCancelled(T){E(T,!1),K_(w,[T])},onAppearCancelled(T){E(T,!0),K_(L,[T])},onLeaveCancelled(T){A(T),K_(S,[T])}})}function URe(n){if(n==null)return null;if(zi(n))return[_9(n.enter),_9(n.leave)];{const e=_9(n);return[e,e]}}function _9(n){return YAe(n)}function bp(n,e){e.split(/\s+/).forEach(t=>t&&n.classList.add(t)),(n[wS]||(n[wS]=new Set)).add(e)}function wm(n,e){e.split(/\s+/).forEach(i=>i&&n.classList.remove(i));const t=n[wS];t&&(t.delete(e),t.size||(n[wS]=void 0))}function Ase(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let jRe=0;function Pse(n,e,t,i){const s=n._endId=++jRe,r=()=>{s===n._endId&&i()};if(t)return setTimeout(r,t);const{type:o,timeout:a,propCount:l}=U1e(n,e);if(!o)return i();const c=o+"end";let u=0;const h=()=>{n.removeEventListener(c,d),r()},d=f=>{f.target===n&&++u>=l&&h()};setTimeout(()=>{u<l&&h()},a+1),n.addEventListener(c,d)}function U1e(n,e){const t=window.getComputedStyle(n),i=p=>(t[p]||"").split(", "),s=i(`${um}Delay`),r=i(`${um}Duration`),o=Rse(s,r),a=i(`${AL}Delay`),l=i(`${AL}Duration`),c=Rse(a,l);let u=null,h=0,d=0;e===um?o>0&&(u=um,h=o,d=r.length):e===AL?c>0&&(u=AL,h=c,d=l.length):(h=Math.max(o,c),u=h>0?o>c?um:AL:null,d=u?u===um?r.length:l.length:0);const f=u===um&&/\b(transform|all)(,|$)/.test(i(`${um}Property`).toString());return{type:u,timeout:h,propCount:d,hasTransform:f}}function Rse(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max(...e.map((t,i)=>Mse(t)+Mse(n[i])))}function Mse(n){return n==="auto"?0:Number(n.slice(0,-1).replace(",","."))*1e3}function j1e(){return document.body.offsetHeight}function qRe(n,e,t){const i=n[wS];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?n.removeAttribute("class"):t?n.setAttribute("class",e):n.className=e}const GM=Symbol("_vod"),q1e=Symbol("_vsh"),rd={beforeMount(n,{value:e},{transition:t}){n[GM]=n.style.display==="none"?"":n.style.display,t&&e?t.beforeEnter(n):PL(n,e)},mounted(n,{value:e},{transition:t}){t&&e&&t.enter(n)},updated(n,{value:e,oldValue:t},{transition:i}){!e!=!t&&(i?e?(i.beforeEnter(n),PL(n,!0),i.enter(n)):i.leave(n,()=>{PL(n,!1)}):PL(n,e))},beforeUnmount(n,{value:e}){PL(n,e)}};function PL(n,e){n.style.display=e?n[GM]:"none",n[q1e]=!e}const KRe=Symbol(""),GRe=/(^|;)\s*display\s*:/;function XRe(n,e,t){const i=n.style,s=on(t);let r=!1;if(t&&!s){if(e)if(on(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();t[a]==null&&xR(i,a,"")}else for(const o in e)t[o]==null&&xR(i,o,"");for(const o in t)o==="display"&&(r=!0),xR(i,o,t[o])}else if(s){if(e!==t){const o=i[KRe];o&&(t+=";"+o),i.cssText=t,r=GRe.test(t)}}else e&&n.removeAttribute("style");GM in n&&(n[GM]=r?i.display:"",n[q1e]&&(i.display="none"))}const Ose=/\s*!important$/;function xR(n,e,t){if(Dt(t))t.forEach(i=>xR(n,e,i));else if(t==null&&(t=""),e.startsWith("--"))n.setProperty(e,t);else{const i=YRe(n,e);Ose.test(t)?n.setProperty(ep(i),t.replace(Ose,""),"important"):n[i]=t}}const Fse=["Webkit","Moz","ms"],v9={};function YRe(n,e){const t=v9[e];if(t)return t;let i=Zc(e);if(i!=="filter"&&i in n)return v9[e]=i;i=H5(i);for(let s=0;s<Fse.length;s++){const r=Fse[s]+i;if(r in n)return v9[e]=r}return e}const Bse="http://www.w3.org/1999/xlink";function Wse(n,e,t,i,s,r=iPe(e)){i&&e.startsWith("xlink:")?t==null?n.removeAttributeNS(Bse,e.slice(6,e.length)):n.setAttributeNS(Bse,e,t):t==null||r&&!kme(t)?n.removeAttribute(e):n.setAttribute(e,r?"":Ff(t)?String(t):t)}function ZRe(n,e,t,i){if(e==="innerHTML"||e==="textContent"){t!=null&&(n[e]=e==="innerHTML"?V1e(t):t);return}const s=n.tagName;if(e==="value"&&s!=="PROGRESS"&&!s.includes("-")){const o=s==="OPTION"?n.getAttribute("value")||"":n.value,a=t==null?n.type==="checkbox"?"on":"":String(t);(o!==a||!("_value"in n))&&(n.value=a),t==null&&n.removeAttribute(e),n._value=t;return}let r=!1;if(t===""||t==null){const o=typeof n[e];o==="boolean"?t=kme(t):t==null&&o==="string"?(t="",r=!0):o==="number"&&(t=0,r=!0)}try{n[e]=t}catch{}r&&n.removeAttribute(e)}function Lv(n,e,t,i){n.addEventListener(e,t,i)}function QRe(n,e,t,i){n.removeEventListener(e,t,i)}const Vse=Symbol("_vei");function JRe(n,e,t,i,s=null){const r=n[Vse]||(n[Vse]={}),o=r[e];if(i&&o)o.value=i;else{const[a,l]=eMe(e);if(i){const c=r[e]=nMe(i,s);Lv(n,a,c,l)}else o&&(QRe(n,a,o,l),r[e]=void 0)}}const Hse=/(?:Once|Passive|Capture)$/;function eMe(n){let e;if(Hse.test(n)){e={};let i;for(;i=n.match(Hse);)n=n.slice(0,n.length-i[0].length),e[i[0].toLowerCase()]=!0}return[n[2]===":"?n.slice(3):ep(n.slice(2)),e]}let b9=0;const tMe=Promise.resolve(),iMe=()=>b9||(tMe.then(()=>b9=0),b9=Date.now());function nMe(n,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Uh(sMe(i,t.value),e,5,[i])};return t.value=n,t.attached=iMe(),t}function sMe(n,e){if(Dt(e)){const t=n.stopImmediatePropagation;return n.stopImmediatePropagation=()=>{t.call(n),n._stopped=!0},e.map(i=>s=>!s._stopped&&i&&i(s))}else return e}const $se=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,rMe=(n,e,t,i,s,r)=>{const o=s==="svg";e==="class"?qRe(n,i,o):e==="style"?XRe(n,t,i):B5(e)?aY(e)||JRe(n,e,t,i,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):oMe(n,e,i,o))?(ZRe(n,e,i),!n.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Wse(n,e,i,o,r,e!=="value")):(e==="true-value"?n._trueValue=i:e==="false-value"&&(n._falseValue=i),Wse(n,e,i,o))};function oMe(n,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in n&&$se(e)&&Wt(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&n.tagName==="INPUT"||e==="type"&&n.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=n.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return $se(e)&&on(t)?!1:!!(e in n||n._isVueCE&&(/[A-Z]/.test(e)||!on(t)))}const K1e=new WeakMap,G1e=new WeakMap,XM=Symbol("_moveCb"),zse=Symbol("_enterCb"),aMe=n=>(delete n.props.mode,n),lMe=aMe({name:"TransitionGroup",props:Dr({},$1e,{tag:String,moveClass:String}),setup(n,{slots:e}){const t=sr(),i=r1e();let s,r;return X5(()=>{if(!s.length)return;const o=n.moveClass||`${n.name||"v"}-move`;if(!fMe(s[0].el,t.vnode.el,o))return;s.forEach(uMe),s.forEach(hMe);const a=s.filter(dMe);j1e(),a.forEach(l=>{const c=l.el,u=c.style;bp(c,o),u.transform=u.webkitTransform=u.transitionDuration="";const h=c[XM]=d=>{d&&d.target!==c||(!d||/transform$/.test(d.propertyName))&&(c.removeEventListener("transitionend",h),c[XM]=null,wm(c,o))};c.addEventListener("transitionend",h)})}),()=>{const o=en(n),a=z1e(o);let l=o.tag||ss;if(s=[],r)for(let c=0;c<r.length;c++){const u=r[c];u.el&&u.el instanceof Element&&(s.push(u),Dy(u,PI(u,a,i,t)),K1e.set(u,u.el.getBoundingClientRect()))}r=e.default?wY(e.default()):[];for(let c=0;c<r.length;c++){const u=r[c];u.key!=null&&Dy(u,PI(u,a,i,t))}return Kt(l,null,r)}}}),cMe=lMe;function uMe(n){const e=n.el;e[XM]&&e[XM](),e[zse]&&e[zse]()}function hMe(n){G1e.set(n,n.el.getBoundingClientRect())}function dMe(n){const e=K1e.get(n),t=G1e.get(n),i=e.left-t.left,s=e.top-t.top;if(i||s){const r=n.el.style;return r.transform=r.webkitTransform=`translate(${i}px,${s}px)`,r.transitionDuration="0s",n}}function fMe(n,e,t){const i=n.cloneNode(),s=n[wS];s&&s.forEach(a=>{a.split(/\s+/).forEach(l=>l&&i.classList.remove(l))}),t.split(/\s+/).forEach(a=>a&&i.classList.add(a)),i.style.display="none";const r=e.nodeType===1?e:e.parentNode;r.appendChild(i);const{hasTransform:o}=U1e(i);return r.removeChild(i),o}const YM=n=>{const e=n.props["onUpdate:modelValue"]||!1;return Dt(e)?t=>yR(e,t):e};function pMe(n){n.target.composing=!0}function Use(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const TC=Symbol("_assign"),X1e={created(n,{modifiers:{lazy:e,trim:t,number:i}},s){n[TC]=YM(s);const r=i||s.props&&s.props.type==="number";Lv(n,e?"change":"input",o=>{if(o.target.composing)return;let a=n.value;t&&(a=a.trim()),r&&(a=MV(a)),n[TC](a)}),t&&Lv(n,"change",()=>{n.value=n.value.trim()}),e||(Lv(n,"compositionstart",pMe),Lv(n,"compositionend",Use),Lv(n,"change",Use))},mounted(n,{value:e}){n.value=e??""},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:i,trim:s,number:r}},o){if(n[TC]=YM(o),n.composing)return;const a=(r||n.type==="number")&&!/^0\d/.test(n.value)?MV(n.value):n.value,l=e??"";a!==l&&(document.activeElement===n&&n.type!=="range"&&(i&&e===t||s&&n.value.trim()===l)||(n.value=l))}},ZM={deep:!0,created(n,e,t){n[TC]=YM(t),Lv(n,"change",()=>{const i=n._modelValue,s=gMe(n),r=n.checked,o=n[TC];if(Dt(i)){const a=Ime(i,s),l=a!==-1;if(r&&!l)o(i.concat(s));else if(!r&&l){const c=[...i];c.splice(a,1),o(c)}}else if(W5(i)){const a=new Set(i);r?a.add(s):a.delete(s),o(a)}else o(Y1e(n,r))})},mounted:jse,beforeUpdate(n,e,t){n[TC]=YM(t),jse(n,e,t)}};function jse(n,{value:e,oldValue:t},i){n._modelValue=e;let s;Dt(e)?s=Ime(e,i.props.value)>-1:W5(e)?s=e.has(i.props.value):s=$5(e,Y1e(n,!0)),n.checked!==s&&(n.checked=s)}function gMe(n){return"_value"in n?n._value:n.value}function Y1e(n,e){const t=e?"_trueValue":"_falseValue";return t in n?n[t]:e}const mMe=["ctrl","shift","alt","meta"],_Me={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>"button"in n&&n.button!==0,middle:n=>"button"in n&&n.button!==1,right:n=>"button"in n&&n.button!==2,exact:(n,e)=>mMe.some(t=>n[`${t}Key`]&&!e.includes(t))},wr=(n,e)=>{const t=n._withMods||(n._withMods={}),i=e.join(".");return t[i]||(t[i]=(s,...r)=>{for(let o=0;o<e.length;o++){const a=_Me[e[o]];if(a&&a(s,e))return}return n(s,...r)})},vMe={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},$p=(n,e)=>{const t=n._withKeys||(n._withKeys={}),i=e.join(".");return t[i]||(t[i]=s=>{if(!("key"in s))return;const r=ep(s.key);if(e.some(o=>o===r||vMe[o]===r))return n(s)})},bMe=Dr({patchProp:rMe},$Re);let qse;function Z1e(){return qse||(qse=pRe(bMe))}const Kse=(...n)=>{Z1e().render(...n)},Q1e=(...n)=>{const e=Z1e().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=wMe(i);if(!s)return;const r=e._component;!Wt(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=t(s,!1,yMe(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},e};function yMe(n){if(n instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&n instanceof MathMLElement)return"mathml"}function wMe(n){return on(n)?document.querySelector(n):n}const xp=(n,e,{checkForDefaultPrevented:t=!0}={})=>s=>{const r=n==null?void 0:n(s);if(t===!1||!r)return e==null?void 0:e(s)};var Gse;const no=typeof window<"u",CMe=n=>typeof n=="string",QM=()=>{},KV=no&&((Gse=window==null?void 0:window.navigator)==null?void 0:Gse.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function MI(n){return typeof n=="function"?n():ae(n)}function SMe(n,e){function t(...i){return new Promise((s,r)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(s).catch(r)})}return t}function xMe(n,e={}){let t,i,s=QM;const r=a=>{clearTimeout(a),s(),s=QM};return a=>{const l=MI(n),c=MI(e.maxWait);return t&&r(t),l<=0||c!==void 0&&c<=0?(i&&(r(i),i=null),Promise.resolve(a())):new Promise((u,h)=>{s=e.rejectOnCancel?h:u,c&&!i&&(i=setTimeout(()=>{t&&r(t),i=null,u(a())},c)),t=setTimeout(()=>{i&&r(i),i=null,u(a())},l)})}}function LMe(n){return n}function eN(n){return uY()?(Nme(n),!0):!1}function EMe(n,e=200,t={}){return SMe(xMe(e,t),n)}function kMe(n,e=200,t={}){const i=je(n.value),s=EMe(()=>{i.value=n.value},e,t);return Pt(n,()=>s()),i}function IMe(n,e=!0){sr()?or(n):e?n():Hs(n)}function TMe(n,e,t={}){const{immediate:i=!0}=t,s=je(!1);let r=null;function o(){r&&(clearTimeout(r),r=null)}function a(){s.value=!1,o()}function l(...c){o(),s.value=!0,r=setTimeout(()=>{s.value=!1,r=null,n(...c)},MI(e))}return i&&(s.value=!0,no&&l()),eN(a),{isPending:Ig(s),start:l,stop:a}}function Yp(n){var e;const t=MI(n);return(e=t==null?void 0:t.$el)!=null?e:t}const t6=no?window:void 0;function wf(...n){let e,t,i,s;if(CMe(n[0])||Array.isArray(n[0])?([t,i,s]=n,e=t6):[e,t,i,s]=n,!e)return QM;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const r=[],o=()=>{r.forEach(u=>u()),r.length=0},a=(u,h,d,f)=>(u.addEventListener(h,d,f),()=>u.removeEventListener(h,d,f)),l=Pt(()=>[Yp(e),MI(s)],([u,h])=>{o(),u&&r.push(...t.flatMap(d=>i.map(f=>a(u,d,f,h))))},{immediate:!0,flush:"post"}),c=()=>{l(),o()};return eN(c),c}let Xse=!1;function DMe(n,e,t={}){const{window:i=t6,ignore:s=[],capture:r=!0,detectIframe:o=!1}=t;if(!i)return;KV&&!Xse&&(Xse=!0,Array.from(i.document.body.children).forEach(d=>d.addEventListener("click",QM)));let a=!0;const l=d=>s.some(f=>{if(typeof f=="string")return Array.from(i.document.querySelectorAll(f)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Yp(f);return p&&(d.target===p||d.composedPath().includes(p))}}),u=[wf(i,"click",d=>{const f=Yp(n);if(!(!f||f===d.target||d.composedPath().includes(f))){if(d.detail===0&&(a=!l(d)),!a){a=!0;return}e(d)}},{passive:!0,capture:r}),wf(i,"pointerdown",d=>{const f=Yp(n);f&&(a=!d.composedPath().includes(f)&&!l(d))},{passive:!0}),o&&wf(i,"blur",d=>{var f;const p=Yp(n);((f=i.document.activeElement)==null?void 0:f.tagName)==="IFRAME"&&!(p!=null&&p.contains(i.document.activeElement))&&e(d)})].filter(Boolean);return()=>u.forEach(d=>d())}function J1e(n,e=!1){const t=je(),i=()=>t.value=!!n();return i(),IMe(i,e),t}const Yse=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zse="__vueuse_ssr_handlers__";Yse[Zse]=Yse[Zse]||{};var Qse=Object.getOwnPropertySymbols,NMe=Object.prototype.hasOwnProperty,AMe=Object.prototype.propertyIsEnumerable,PMe=(n,e)=>{var t={};for(var i in n)NMe.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&Qse)for(var i of Qse(n))e.indexOf(i)<0&&AMe.call(n,i)&&(t[i]=n[i]);return t};function Gd(n,e,t={}){const i=t,{window:s=t6}=i,r=PMe(i,["window"]);let o;const a=J1e(()=>s&&"ResizeObserver"in s),l=()=>{o&&(o.disconnect(),o=void 0)},c=Pt(()=>Yp(n),h=>{l(),a.value&&s&&h&&(o=new ResizeObserver(e),o.observe(h,r))},{immediate:!0,flush:"post"}),u=()=>{l(),c()};return eN(u),{isSupported:a,stop:u}}var Jse=Object.getOwnPropertySymbols,RMe=Object.prototype.hasOwnProperty,MMe=Object.prototype.propertyIsEnumerable,OMe=(n,e)=>{var t={};for(var i in n)RMe.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&Jse)for(var i of Jse(n))e.indexOf(i)<0&&MMe.call(n,i)&&(t[i]=n[i]);return t};function FMe(n,e,t={}){const i=t,{window:s=t6}=i,r=OMe(i,["window"]);let o;const a=J1e(()=>s&&"MutationObserver"in s),l=()=>{o&&(o.disconnect(),o=void 0)},c=Pt(()=>Yp(n),h=>{l(),a.value&&s&&h&&(o=new MutationObserver(e),o.observe(h,r))},{immediate:!0}),u=()=>{l(),c()};return eN(u),{isSupported:a,stop:u}}var ere;(function(n){n.UP="UP",n.RIGHT="RIGHT",n.DOWN="DOWN",n.LEFT="LEFT",n.NONE="NONE"})(ere||(ere={}));var BMe=Object.defineProperty,tre=Object.getOwnPropertySymbols,WMe=Object.prototype.hasOwnProperty,VMe=Object.prototype.propertyIsEnumerable,ire=(n,e,t)=>e in n?BMe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,HMe=(n,e)=>{for(var t in e||(e={}))WMe.call(e,t)&&ire(n,t,e[t]);if(tre)for(var t of tre(e))VMe.call(e,t)&&ire(n,t,e[t]);return n};const $Me={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};HMe({linear:LMe},$Me);var e_e=typeof global=="object"&&global&&global.Object===Object&&global,zMe=typeof self=="object"&&self&&self.Object===Object&&self,od=e_e||zMe||Function("return this")(),Mu=od.Symbol,t_e=Object.prototype,UMe=t_e.hasOwnProperty,jMe=t_e.toString,RL=Mu?Mu.toStringTag:void 0;function qMe(n){var e=UMe.call(n,RL),t=n[RL];try{n[RL]=void 0;var i=!0}catch{}var s=jMe.call(n);return i&&(e?n[RL]=t:delete n[RL]),s}var KMe=Object.prototype,GMe=KMe.toString;function XMe(n){return GMe.call(n)}var YMe="[object Null]",ZMe="[object Undefined]",nre=Mu?Mu.toStringTag:void 0;function Px(n){return n==null?n===void 0?ZMe:YMe:nre&&nre in Object(n)?qMe(n):XMe(n)}function G1(n){return n!=null&&typeof n=="object"}var QMe="[object Symbol]";function i6(n){return typeof n=="symbol"||G1(n)&&Px(n)==QMe}function JMe(n,e){for(var t=-1,i=n==null?0:n.length,s=Array(i);++t<i;)s[t]=e(n[t],t,n);return s}var Ou=Array.isArray,eOe=1/0,sre=Mu?Mu.prototype:void 0,rre=sre?sre.toString:void 0;function i_e(n){if(typeof n=="string")return n;if(Ou(n))return JMe(n,i_e)+"";if(i6(n))return rre?rre.call(n):"";var e=n+"";return e=="0"&&1/n==-eOe?"-0":e}var tOe=/\s/;function iOe(n){for(var e=n.length;e--&&tOe.test(n.charAt(e)););return e}var nOe=/^\s+/;function sOe(n){return n&&n.slice(0,iOe(n)+1).replace(nOe,"")}function jh(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var ore=NaN,rOe=/^[-+]0x[0-9a-f]+$/i,oOe=/^0b[01]+$/i,aOe=/^0o[0-7]+$/i,lOe=parseInt;function are(n){if(typeof n=="number")return n;if(i6(n))return ore;if(jh(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=jh(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=sOe(n);var t=oOe.test(n);return t||aOe.test(n)?lOe(n.slice(2),t?2:8):rOe.test(n)?ore:+n}function n_e(n){return n}var cOe="[object AsyncFunction]",uOe="[object Function]",hOe="[object GeneratorFunction]",dOe="[object Proxy]";function s_e(n){if(!jh(n))return!1;var e=Px(n);return e==uOe||e==hOe||e==cOe||e==dOe}var y9=od["__core-js_shared__"],lre=function(){var n=/[^.]+$/.exec(y9&&y9.keys&&y9.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function fOe(n){return!!lre&&lre in n}var pOe=Function.prototype,gOe=pOe.toString;function _0(n){if(n!=null){try{return gOe.call(n)}catch{}try{return n+""}catch{}}return""}var mOe=/[\\^$.*+?()[\]{}|]/g,_Oe=/^\[object .+?Constructor\]$/,vOe=Function.prototype,bOe=Object.prototype,yOe=vOe.toString,wOe=bOe.hasOwnProperty,COe=RegExp("^"+yOe.call(wOe).replace(mOe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function SOe(n){if(!jh(n)||fOe(n))return!1;var e=s_e(n)?COe:_Oe;return e.test(_0(n))}function xOe(n,e){return n==null?void 0:n[e]}function v0(n,e){var t=xOe(n,e);return SOe(t)?t:void 0}var GV=v0(od,"WeakMap"),cre=Object.create,LOe=function(){function n(){}return function(e){if(!jh(e))return{};if(cre)return cre(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}();function EOe(n,e,t){switch(t.length){case 0:return n.call(e);case 1:return n.call(e,t[0]);case 2:return n.call(e,t[0],t[1]);case 3:return n.call(e,t[0],t[1],t[2])}return n.apply(e,t)}function kOe(n,e){var t=-1,i=n.length;for(e||(e=Array(i));++t<i;)e[t]=n[t];return e}var IOe=800,TOe=16,DOe=Date.now;function NOe(n){var e=0,t=0;return function(){var i=DOe(),s=TOe-(i-t);if(t=i,s>0){if(++e>=IOe)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}function AOe(n){return function(){return n}}var JM=function(){try{var n=v0(Object,"defineProperty");return n({},"",{}),n}catch{}}(),POe=JM?function(n,e){return JM(n,"toString",{configurable:!0,enumerable:!1,value:AOe(e),writable:!0})}:n_e,ROe=NOe(POe);function MOe(n,e){for(var t=-1,i=n==null?0:n.length;++t<i&&e(n[t],t,n)!==!1;);return n}function OOe(n,e,t,i){n.length;for(var s=t+1;s--;)if(e(n[s],s,n))return s;return-1}var FOe=9007199254740991,BOe=/^(?:0|[1-9]\d*)$/;function TY(n,e){var t=typeof n;return e=e??FOe,!!e&&(t=="number"||t!="symbol"&&BOe.test(n))&&n>-1&&n%1==0&&n<e}function r_e(n,e,t){e=="__proto__"&&JM?JM(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}function DY(n,e){return n===e||n!==n&&e!==e}var WOe=Object.prototype,VOe=WOe.hasOwnProperty;function NY(n,e,t){var i=n[e];(!(VOe.call(n,e)&&DY(i,t))||t===void 0&&!(e in n))&&r_e(n,e,t)}function n6(n,e,t,i){var s=!t;t||(t={});for(var r=-1,o=e.length;++r<o;){var a=e[r],l=void 0;l===void 0&&(l=n[a]),s?r_e(t,a,l):NY(t,a,l)}return t}var ure=Math.max;function HOe(n,e,t){return e=ure(e===void 0?n.length-1:e,0),function(){for(var i=arguments,s=-1,r=ure(i.length-e,0),o=Array(r);++s<r;)o[s]=i[e+s];s=-1;for(var a=Array(e+1);++s<e;)a[s]=i[s];return a[e]=t(o),EOe(n,this,a)}}var $Oe=9007199254740991;function AY(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=$Oe}function o_e(n){return n!=null&&AY(n.length)&&!s_e(n)}var zOe=Object.prototype;function PY(n){var e=n&&n.constructor,t=typeof e=="function"&&e.prototype||zOe;return n===t}function UOe(n,e){for(var t=-1,i=Array(n);++t<n;)i[t]=e(t);return i}var jOe="[object Arguments]";function hre(n){return G1(n)&&Px(n)==jOe}var a_e=Object.prototype,qOe=a_e.hasOwnProperty,KOe=a_e.propertyIsEnumerable,RY=hre(function(){return arguments}())?hre:function(n){return G1(n)&&qOe.call(n,"callee")&&!KOe.call(n,"callee")};function GOe(){return!1}var l_e=typeof exports=="object"&&exports&&!exports.nodeType&&exports,dre=l_e&&typeof module=="object"&&module&&!module.nodeType&&module,XOe=dre&&dre.exports===l_e,fre=XOe?od.Buffer:void 0,YOe=fre?fre.isBuffer:void 0,eO=YOe||GOe,ZOe="[object Arguments]",QOe="[object Array]",JOe="[object Boolean]",eFe="[object Date]",tFe="[object Error]",iFe="[object Function]",nFe="[object Map]",sFe="[object Number]",rFe="[object Object]",oFe="[object RegExp]",aFe="[object Set]",lFe="[object String]",cFe="[object WeakMap]",uFe="[object ArrayBuffer]",hFe="[object DataView]",dFe="[object Float32Array]",fFe="[object Float64Array]",pFe="[object Int8Array]",gFe="[object Int16Array]",mFe="[object Int32Array]",_Fe="[object Uint8Array]",vFe="[object Uint8ClampedArray]",bFe="[object Uint16Array]",yFe="[object Uint32Array]",As={};As[dFe]=As[fFe]=As[pFe]=As[gFe]=As[mFe]=As[_Fe]=As[vFe]=As[bFe]=As[yFe]=!0;As[ZOe]=As[QOe]=As[uFe]=As[JOe]=As[hFe]=As[eFe]=As[tFe]=As[iFe]=As[nFe]=As[sFe]=As[rFe]=As[oFe]=As[aFe]=As[lFe]=As[cFe]=!1;function wFe(n){return G1(n)&&AY(n.length)&&!!As[Px(n)]}function MY(n){return function(e){return n(e)}}var c_e=typeof exports=="object"&&exports&&!exports.nodeType&&exports,uk=c_e&&typeof module=="object"&&module&&!module.nodeType&&module,CFe=uk&&uk.exports===c_e,w9=CFe&&e_e.process,CS=function(){try{var n=uk&&uk.require&&uk.require("util").types;return n||w9&&w9.binding&&w9.binding("util")}catch{}}(),pre=CS&&CS.isTypedArray,u_e=pre?MY(pre):wFe,SFe=Object.prototype,xFe=SFe.hasOwnProperty;function h_e(n,e){var t=Ou(n),i=!t&&RY(n),s=!t&&!i&&eO(n),r=!t&&!i&&!s&&u_e(n),o=t||i||s||r,a=o?UOe(n.length,String):[],l=a.length;for(var c in n)(e||xFe.call(n,c))&&!(o&&(c=="length"||s&&(c=="offset"||c=="parent")||r&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||TY(c,l)))&&a.push(c);return a}function d_e(n,e){return function(t){return n(e(t))}}var LFe=d_e(Object.keys,Object),EFe=Object.prototype,kFe=EFe.hasOwnProperty;function IFe(n){if(!PY(n))return LFe(n);var e=[];for(var t in Object(n))kFe.call(n,t)&&t!="constructor"&&e.push(t);return e}function s6(n){return o_e(n)?h_e(n):IFe(n)}function TFe(n){var e=[];if(n!=null)for(var t in Object(n))e.push(t);return e}var DFe=Object.prototype,NFe=DFe.hasOwnProperty;function AFe(n){if(!jh(n))return TFe(n);var e=PY(n),t=[];for(var i in n)i=="constructor"&&(e||!NFe.call(n,i))||t.push(i);return t}function OY(n){return o_e(n)?h_e(n,!0):AFe(n)}var PFe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,RFe=/^\w*$/;function FY(n,e){if(Ou(n))return!1;var t=typeof n;return t=="number"||t=="symbol"||t=="boolean"||n==null||i6(n)?!0:RFe.test(n)||!PFe.test(n)||e!=null&&n in Object(e)}var OI=v0(Object,"create");function MFe(){this.__data__=OI?OI(null):{},this.size=0}function OFe(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e}var FFe="__lodash_hash_undefined__",BFe=Object.prototype,WFe=BFe.hasOwnProperty;function VFe(n){var e=this.__data__;if(OI){var t=e[n];return t===FFe?void 0:t}return WFe.call(e,n)?e[n]:void 0}var HFe=Object.prototype,$Fe=HFe.hasOwnProperty;function zFe(n){var e=this.__data__;return OI?e[n]!==void 0:$Fe.call(e,n)}var UFe="__lodash_hash_undefined__";function jFe(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=OI&&e===void 0?UFe:e,this}function Ny(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var i=n[e];this.set(i[0],i[1])}}Ny.prototype.clear=MFe;Ny.prototype.delete=OFe;Ny.prototype.get=VFe;Ny.prototype.has=zFe;Ny.prototype.set=jFe;function qFe(){this.__data__=[],this.size=0}function r6(n,e){for(var t=n.length;t--;)if(DY(n[t][0],e))return t;return-1}var KFe=Array.prototype,GFe=KFe.splice;function XFe(n){var e=this.__data__,t=r6(e,n);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():GFe.call(e,t,1),--this.size,!0}function YFe(n){var e=this.__data__,t=r6(e,n);return t<0?void 0:e[t][1]}function ZFe(n){return r6(this.__data__,n)>-1}function QFe(n,e){var t=this.__data__,i=r6(t,n);return i<0?(++this.size,t.push([n,e])):t[i][1]=e,this}function Qg(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var i=n[e];this.set(i[0],i[1])}}Qg.prototype.clear=qFe;Qg.prototype.delete=XFe;Qg.prototype.get=YFe;Qg.prototype.has=ZFe;Qg.prototype.set=QFe;var FI=v0(od,"Map");function JFe(){this.size=0,this.__data__={hash:new Ny,map:new(FI||Qg),string:new Ny}}function e4e(n){var e=typeof n;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?n!=="__proto__":n===null}function o6(n,e){var t=n.__data__;return e4e(e)?t[typeof e=="string"?"string":"hash"]:t.map}function t4e(n){var e=o6(this,n).delete(n);return this.size-=e?1:0,e}function i4e(n){return o6(this,n).get(n)}function n4e(n){return o6(this,n).has(n)}function s4e(n,e){var t=o6(this,n),i=t.size;return t.set(n,e),this.size+=t.size==i?0:1,this}function Jg(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var i=n[e];this.set(i[0],i[1])}}Jg.prototype.clear=JFe;Jg.prototype.delete=t4e;Jg.prototype.get=i4e;Jg.prototype.has=n4e;Jg.prototype.set=s4e;var r4e="Expected a function";function BY(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new TypeError(r4e);var t=function(){var i=arguments,s=e?e.apply(this,i):i[0],r=t.cache;if(r.has(s))return r.get(s);var o=n.apply(this,i);return t.cache=r.set(s,o)||r,o};return t.cache=new(BY.Cache||Jg),t}BY.Cache=Jg;var o4e=500;function a4e(n){var e=BY(n,function(i){return t.size===o4e&&t.clear(),i}),t=e.cache;return e}var l4e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c4e=/\\(\\)?/g,u4e=a4e(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(l4e,function(t,i,s,r){e.push(s?r.replace(c4e,"$1"):i||t)}),e});function h4e(n){return n==null?"":i_e(n)}function a6(n,e){return Ou(n)?n:FY(n,e)?[n]:u4e(h4e(n))}var d4e=1/0;function tN(n){if(typeof n=="string"||i6(n))return n;var e=n+"";return e=="0"&&1/n==-d4e?"-0":e}function WY(n,e){e=a6(e,n);for(var t=0,i=e.length;n!=null&&t<i;)n=n[tN(e[t++])];return t&&t==i?n:void 0}function tf(n,e,t){var i=n==null?void 0:WY(n,e);return i===void 0?t:i}function VY(n,e){for(var t=-1,i=e.length,s=n.length;++t<i;)n[s+t]=e[t];return n}var gre=Mu?Mu.isConcatSpreadable:void 0;function f4e(n){return Ou(n)||RY(n)||!!(gre&&n&&n[gre])}function p4e(n,e,t,i,s){var r=-1,o=n.length;for(t||(t=f4e),s||(s=[]);++r<o;){var a=n[r];t(a)?VY(s,a):s[s.length]=a}return s}function g4e(n){var e=n==null?0:n.length;return e?p4e(n):[]}function m4e(n){return ROe(HOe(n,void 0,g4e),n+"")}var f_e=d_e(Object.getPrototypeOf,Object);function Lh(){if(!arguments.length)return[];var n=arguments[0];return Ou(n)?n:[n]}function _4e(){this.__data__=new Qg,this.size=0}function v4e(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t}function b4e(n){return this.__data__.get(n)}function y4e(n){return this.__data__.has(n)}var w4e=200;function C4e(n,e){var t=this.__data__;if(t instanceof Qg){var i=t.__data__;if(!FI||i.length<w4e-1)return i.push([n,e]),this.size=++t.size,this;t=this.__data__=new Jg(i)}return t.set(n,e),this.size=t.size,this}function Cf(n){var e=this.__data__=new Qg(n);this.size=e.size}Cf.prototype.clear=_4e;Cf.prototype.delete=v4e;Cf.prototype.get=b4e;Cf.prototype.has=y4e;Cf.prototype.set=C4e;function S4e(n,e){return n&&n6(e,s6(e),n)}function x4e(n,e){return n&&n6(e,OY(e),n)}var p_e=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mre=p_e&&typeof module=="object"&&module&&!module.nodeType&&module,L4e=mre&&mre.exports===p_e,_re=L4e?od.Buffer:void 0,vre=_re?_re.allocUnsafe:void 0;function E4e(n,e){if(e)return n.slice();var t=n.length,i=vre?vre(t):new n.constructor(t);return n.copy(i),i}function k4e(n,e){for(var t=-1,i=n==null?0:n.length,s=0,r=[];++t<i;){var o=n[t];e(o,t,n)&&(r[s++]=o)}return r}function g_e(){return[]}var I4e=Object.prototype,T4e=I4e.propertyIsEnumerable,bre=Object.getOwnPropertySymbols,HY=bre?function(n){return n==null?[]:(n=Object(n),k4e(bre(n),function(e){return T4e.call(n,e)}))}:g_e;function D4e(n,e){return n6(n,HY(n),e)}var N4e=Object.getOwnPropertySymbols,m_e=N4e?function(n){for(var e=[];n;)VY(e,HY(n)),n=f_e(n);return e}:g_e;function A4e(n,e){return n6(n,m_e(n),e)}function __e(n,e,t){var i=e(n);return Ou(n)?i:VY(i,t(n))}function XV(n){return __e(n,s6,HY)}function P4e(n){return __e(n,OY,m_e)}var YV=v0(od,"DataView"),ZV=v0(od,"Promise"),QV=v0(od,"Set"),yre="[object Map]",R4e="[object Object]",wre="[object Promise]",Cre="[object Set]",Sre="[object WeakMap]",xre="[object DataView]",M4e=_0(YV),O4e=_0(FI),F4e=_0(ZV),B4e=_0(QV),W4e=_0(GV),_h=Px;(YV&&_h(new YV(new ArrayBuffer(1)))!=xre||FI&&_h(new FI)!=yre||ZV&&_h(ZV.resolve())!=wre||QV&&_h(new QV)!=Cre||GV&&_h(new GV)!=Sre)&&(_h=function(n){var e=Px(n),t=e==R4e?n.constructor:void 0,i=t?_0(t):"";if(i)switch(i){case M4e:return xre;case O4e:return yre;case F4e:return wre;case B4e:return Cre;case W4e:return Sre}return e});var V4e=Object.prototype,H4e=V4e.hasOwnProperty;function $4e(n){var e=n.length,t=new n.constructor(e);return e&&typeof n[0]=="string"&&H4e.call(n,"index")&&(t.index=n.index,t.input=n.input),t}var tO=od.Uint8Array;function $Y(n){var e=new n.constructor(n.byteLength);return new tO(e).set(new tO(n)),e}function z4e(n,e){var t=e?$Y(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}var U4e=/\w*$/;function j4e(n){var e=new n.constructor(n.source,U4e.exec(n));return e.lastIndex=n.lastIndex,e}var Lre=Mu?Mu.prototype:void 0,Ere=Lre?Lre.valueOf:void 0;function q4e(n){return Ere?Object(Ere.call(n)):{}}function K4e(n,e){var t=e?$Y(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}var G4e="[object Boolean]",X4e="[object Date]",Y4e="[object Map]",Z4e="[object Number]",Q4e="[object RegExp]",J4e="[object Set]",e2e="[object String]",t2e="[object Symbol]",i2e="[object ArrayBuffer]",n2e="[object DataView]",s2e="[object Float32Array]",r2e="[object Float64Array]",o2e="[object Int8Array]",a2e="[object Int16Array]",l2e="[object Int32Array]",c2e="[object Uint8Array]",u2e="[object Uint8ClampedArray]",h2e="[object Uint16Array]",d2e="[object Uint32Array]";function f2e(n,e,t){var i=n.constructor;switch(e){case i2e:return $Y(n);case G4e:case X4e:return new i(+n);case n2e:return z4e(n,t);case s2e:case r2e:case o2e:case a2e:case l2e:case c2e:case u2e:case h2e:case d2e:return K4e(n,t);case Y4e:return new i;case Z4e:case e2e:return new i(n);case Q4e:return j4e(n);case J4e:return new i;case t2e:return q4e(n)}}function p2e(n){return typeof n.constructor=="function"&&!PY(n)?LOe(f_e(n)):{}}var g2e="[object Map]";function m2e(n){return G1(n)&&_h(n)==g2e}var kre=CS&&CS.isMap,_2e=kre?MY(kre):m2e,v2e="[object Set]";function b2e(n){return G1(n)&&_h(n)==v2e}var Ire=CS&&CS.isSet,y2e=Ire?MY(Ire):b2e,w2e=1,C2e=2,S2e=4,v_e="[object Arguments]",x2e="[object Array]",L2e="[object Boolean]",E2e="[object Date]",k2e="[object Error]",b_e="[object Function]",I2e="[object GeneratorFunction]",T2e="[object Map]",D2e="[object Number]",y_e="[object Object]",N2e="[object RegExp]",A2e="[object Set]",P2e="[object String]",R2e="[object Symbol]",M2e="[object WeakMap]",O2e="[object ArrayBuffer]",F2e="[object DataView]",B2e="[object Float32Array]",W2e="[object Float64Array]",V2e="[object Int8Array]",H2e="[object Int16Array]",$2e="[object Int32Array]",z2e="[object Uint8Array]",U2e="[object Uint8ClampedArray]",j2e="[object Uint16Array]",q2e="[object Uint32Array]",Cs={};Cs[v_e]=Cs[x2e]=Cs[O2e]=Cs[F2e]=Cs[L2e]=Cs[E2e]=Cs[B2e]=Cs[W2e]=Cs[V2e]=Cs[H2e]=Cs[$2e]=Cs[T2e]=Cs[D2e]=Cs[y_e]=Cs[N2e]=Cs[A2e]=Cs[P2e]=Cs[R2e]=Cs[z2e]=Cs[U2e]=Cs[j2e]=Cs[q2e]=!0;Cs[k2e]=Cs[b_e]=Cs[M2e]=!1;function LR(n,e,t,i,s,r){var o,a=e&w2e,l=e&C2e,c=e&S2e;if(o!==void 0)return o;if(!jh(n))return n;var u=Ou(n);if(u){if(o=$4e(n),!a)return kOe(n,o)}else{var h=_h(n),d=h==b_e||h==I2e;if(eO(n))return E4e(n,a);if(h==y_e||h==v_e||d&&!s){if(o=l||d?{}:p2e(n),!a)return l?A4e(n,x4e(o,n)):D4e(n,S4e(o,n))}else{if(!Cs[h])return s?n:{};o=f2e(n,h,a)}}r||(r=new Cf);var f=r.get(n);if(f)return f;r.set(n,o),y2e(n)?n.forEach(function(m){o.add(LR(m,e,t,m,n,r))}):_2e(n)&&n.forEach(function(m,_){o.set(_,LR(m,e,t,_,n,r))});var p=c?l?P4e:XV:l?OY:s6,g=u?void 0:p(n);return MOe(g||n,function(m,_){g&&(_=m,m=n[_]),NY(o,_,LR(m,e,t,_,n,r))}),o}var K2e=4;function Tre(n){return LR(n,K2e)}var G2e="__lodash_hash_undefined__";function X2e(n){return this.__data__.set(n,G2e),this}function Y2e(n){return this.__data__.has(n)}function iO(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new Jg;++e<t;)this.add(n[e])}iO.prototype.add=iO.prototype.push=X2e;iO.prototype.has=Y2e;function Z2e(n,e){for(var t=-1,i=n==null?0:n.length;++t<i;)if(e(n[t],t,n))return!0;return!1}function Q2e(n,e){return n.has(e)}var J2e=1,e3e=2;function w_e(n,e,t,i,s,r){var o=t&J2e,a=n.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=r.get(n),u=r.get(e);if(c&&u)return c==e&&u==n;var h=-1,d=!0,f=t&e3e?new iO:void 0;for(r.set(n,e),r.set(e,n);++h<a;){var p=n[h],g=e[h];if(i)var m=o?i(g,p,h,e,n,r):i(p,g,h,n,e,r);if(m!==void 0){if(m)continue;d=!1;break}if(f){if(!Z2e(e,function(_,b){if(!Q2e(f,b)&&(p===_||s(p,_,t,i,r)))return f.push(b)})){d=!1;break}}else if(!(p===g||s(p,g,t,i,r))){d=!1;break}}return r.delete(n),r.delete(e),d}function t3e(n){var e=-1,t=Array(n.size);return n.forEach(function(i,s){t[++e]=[s,i]}),t}function i3e(n){var e=-1,t=Array(n.size);return n.forEach(function(i){t[++e]=i}),t}var n3e=1,s3e=2,r3e="[object Boolean]",o3e="[object Date]",a3e="[object Error]",l3e="[object Map]",c3e="[object Number]",u3e="[object RegExp]",h3e="[object Set]",d3e="[object String]",f3e="[object Symbol]",p3e="[object ArrayBuffer]",g3e="[object DataView]",Dre=Mu?Mu.prototype:void 0,C9=Dre?Dre.valueOf:void 0;function m3e(n,e,t,i,s,r,o){switch(t){case g3e:if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case p3e:return!(n.byteLength!=e.byteLength||!r(new tO(n),new tO(e)));case r3e:case o3e:case c3e:return DY(+n,+e);case a3e:return n.name==e.name&&n.message==e.message;case u3e:case d3e:return n==e+"";case l3e:var a=t3e;case h3e:var l=i&n3e;if(a||(a=i3e),n.size!=e.size&&!l)return!1;var c=o.get(n);if(c)return c==e;i|=s3e,o.set(n,e);var u=w_e(a(n),a(e),i,s,r,o);return o.delete(n),u;case f3e:if(C9)return C9.call(n)==C9.call(e)}return!1}var _3e=1,v3e=Object.prototype,b3e=v3e.hasOwnProperty;function y3e(n,e,t,i,s,r){var o=t&_3e,a=XV(n),l=a.length,c=XV(e),u=c.length;if(l!=u&&!o)return!1;for(var h=l;h--;){var d=a[h];if(!(o?d in e:b3e.call(e,d)))return!1}var f=r.get(n),p=r.get(e);if(f&&p)return f==e&&p==n;var g=!0;r.set(n,e),r.set(e,n);for(var m=o;++h<l;){d=a[h];var _=n[d],b=e[d];if(i)var w=o?i(b,_,d,e,n,r):i(_,b,d,n,e,r);if(!(w===void 0?_===b||s(_,b,t,i,r):w)){g=!1;break}m||(m=d=="constructor")}if(g&&!m){var C=n.constructor,S=e.constructor;C!=S&&"constructor"in n&&"constructor"in e&&!(typeof C=="function"&&C instanceof C&&typeof S=="function"&&S instanceof S)&&(g=!1)}return r.delete(n),r.delete(e),g}var w3e=1,Nre="[object Arguments]",Are="[object Array]",bA="[object Object]",C3e=Object.prototype,Pre=C3e.hasOwnProperty;function S3e(n,e,t,i,s,r){var o=Ou(n),a=Ou(e),l=o?Are:_h(n),c=a?Are:_h(e);l=l==Nre?bA:l,c=c==Nre?bA:c;var u=l==bA,h=c==bA,d=l==c;if(d&&eO(n)){if(!eO(e))return!1;o=!0,u=!1}if(d&&!u)return r||(r=new Cf),o||u_e(n)?w_e(n,e,t,i,s,r):m3e(n,e,l,t,i,s,r);if(!(t&w3e)){var f=u&&Pre.call(n,"__wrapped__"),p=h&&Pre.call(e,"__wrapped__");if(f||p){var g=f?n.value():n,m=p?e.value():e;return r||(r=new Cf),s(g,m,t,i,r)}}return d?(r||(r=new Cf),y3e(n,e,t,i,s,r)):!1}function l6(n,e,t,i,s){return n===e?!0:n==null||e==null||!G1(n)&&!G1(e)?n!==n&&e!==e:S3e(n,e,t,i,l6,s)}var x3e=1,L3e=2;function E3e(n,e,t,i){var s=t.length,r=s;if(n==null)return!r;for(n=Object(n);s--;){var o=t[s];if(o[2]?o[1]!==n[o[0]]:!(o[0]in n))return!1}for(;++s<r;){o=t[s];var a=o[0],l=n[a],c=o[1];if(o[2]){if(l===void 0&&!(a in n))return!1}else{var u=new Cf,h;if(!(h===void 0?l6(c,l,x3e|L3e,i,u):h))return!1}}return!0}function C_e(n){return n===n&&!jh(n)}function k3e(n){for(var e=s6(n),t=e.length;t--;){var i=e[t],s=n[i];e[t]=[i,s,C_e(s)]}return e}function S_e(n,e){return function(t){return t==null?!1:t[n]===e&&(e!==void 0||n in Object(t))}}function I3e(n){var e=k3e(n);return e.length==1&&e[0][2]?S_e(e[0][0],e[0][1]):function(t){return t===n||E3e(t,n,e)}}function T3e(n,e){return n!=null&&e in Object(n)}function D3e(n,e,t){e=a6(e,n);for(var i=-1,s=e.length,r=!1;++i<s;){var o=tN(e[i]);if(!(r=n!=null&&t(n,o)))break;n=n[o]}return r||++i!=s?r:(s=n==null?0:n.length,!!s&&AY(s)&&TY(o,s)&&(Ou(n)||RY(n)))}function x_e(n,e){return n!=null&&D3e(n,e,T3e)}var N3e=1,A3e=2;function P3e(n,e){return FY(n)&&C_e(e)?S_e(tN(n),e):function(t){var i=tf(t,n);return i===void 0&&i===e?x_e(t,n):l6(e,i,N3e|A3e)}}function R3e(n){return function(e){return e==null?void 0:e[n]}}function M3e(n){return function(e){return WY(e,n)}}function O3e(n){return FY(n)?R3e(tN(n)):M3e(n)}function F3e(n){return typeof n=="function"?n:n==null?n_e:typeof n=="object"?Ou(n)?P3e(n[0],n[1]):I3e(n):O3e(n)}var S9=function(){return od.Date.now()},B3e="Expected a function",W3e=Math.max,V3e=Math.min;function H3e(n,e,t){var i,s,r,o,a,l,c=0,u=!1,h=!1,d=!0;if(typeof n!="function")throw new TypeError(B3e);e=are(e)||0,jh(t)&&(u=!!t.leading,h="maxWait"in t,r=h?W3e(are(t.maxWait)||0,e):r,d="trailing"in t?!!t.trailing:d);function f(x){var k=i,L=s;return i=s=void 0,c=x,o=n.apply(L,k),o}function p(x){return c=x,a=setTimeout(_,e),u?f(x):o}function g(x){var k=x-l,L=x-c,E=e-k;return h?V3e(E,r-L):E}function m(x){var k=x-l,L=x-c;return l===void 0||k>=e||k<0||h&&L>=r}function _(){var x=S9();if(m(x))return b(x);a=setTimeout(_,g(x))}function b(x){return a=void 0,d&&i?f(x):(i=s=void 0,o)}function w(){a!==void 0&&clearTimeout(a),c=0,i=l=s=a=void 0}function C(){return a===void 0?o:b(S9())}function S(){var x=S9(),k=m(x);if(i=arguments,s=this,l=x,k){if(a===void 0)return p(l);if(h)return clearTimeout(a),a=setTimeout(_,e),f(l)}return a===void 0&&(a=setTimeout(_,e)),o}return S.cancel=w,S.flush=C,S}function $3e(n,e,t){var i=n==null?0:n.length;if(!i)return-1;var s=i-1;return OOe(n,F3e(e),s)}function JV(n){for(var e=-1,t=n==null?0:n.length,i={};++e<t;){var s=n[e];i[s[0]]=s[1]}return i}function nO(n,e){return l6(n,e)}function c6(n){return n==null}function z3e(n){return n===void 0}function L_e(n,e,t,i){if(!jh(n))return n;e=a6(e,n);for(var s=-1,r=e.length,o=r-1,a=n;a!=null&&++s<r;){var l=tN(e[s]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return n;if(s!=o){var u=a[l];c=void 0,c===void 0&&(c=jh(u)?u:TY(e[s+1])?[]:{})}NY(a,l,c),a=a[l]}return n}function U3e(n,e,t){for(var i=-1,s=e.length,r={};++i<s;){var o=e[i],a=WY(n,o);t(a,o)&&L_e(r,a6(o,n),a)}return r}function j3e(n,e){return U3e(n,e,function(t,i){return x_e(n,i)})}var E_e=m4e(function(n,e){return n==null?{}:j3e(n,e)});function q3e(n,e,t){return n==null?n:L_e(n,e,t)}const Zm=n=>n===void 0,Bf=n=>typeof n=="boolean",xo=n=>typeof n=="number",ub=n=>typeof Element>"u"?!1:n instanceof Element,eH=n=>c6(n),K3e=n=>on(n)?!Number.isNaN(Number(n)):!1,G3e=(n="")=>n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d"),Rre=n=>Object.keys(n),x9=(n,e,t)=>({get value(){return tf(n,e,t)},set value(i){q3e(n,e,i)}});class X3e extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function k_e(n,e){throw new X3e(`[${n}] ${e}`)}const I_e=(n="")=>n.split(" ").filter(e=>!!e.trim()),Mre=(n,e)=>{!n||!e.trim()||n.classList.add(...I_e(e))},sO=(n,e)=>{!n||!e.trim()||n.classList.remove(...I_e(e))},ML=(n,e)=>{var t;if(!no||!n||!e)return"";let i=Zc(e);i==="float"&&(i="cssFloat");try{const s=n.style[i];if(s)return s;const r=(t=document.defaultView)==null?void 0:t.getComputedStyle(n,"");return r?r[i]:""}catch{return n.style[i]}};function X1(n,e="px"){if(!n)return"";if(xo(n)||K3e(n))return`${n}${e}`;if(on(n))return n}function Y3e(n,e){if(!no)return;if(!e){n.scrollTop=0;return}const t=[];let i=e.offsetParent;for(;i!==null&&n!==i&&n.contains(i);)t.push(i),i=i.offsetParent;const s=e.offsetTop+t.reduce((l,c)=>l+c.offsetTop,0),r=s+e.offsetHeight,o=n.scrollTop,a=o+n.clientHeight;s<o?n.scrollTop=s:r>a&&(n.scrollTop=r-n.clientHeight)}/*! Element Plus Icons Vue v2.3.1 */var Z3e=Et({name:"ArrowDown",__name:"arrow-down",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),Q3e=Z3e,J3e=Et({name:"CircleCheck",__name:"circle-check",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),vt("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"})]))}}),e5e=J3e,t5e=Et({name:"CircleCloseFilled",__name:"circle-close-filled",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),T_e=t5e,i5e=Et({name:"CircleClose",__name:"circle-close",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),vt("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),D_e=i5e,n5e=Et({name:"Close",__name:"close",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),tH=n5e,s5e=Et({name:"InfoFilled",__name:"info-filled",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),N_e=s5e,r5e=Et({name:"Loading",__name:"loading",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),o5e=r5e,a5e=Et({name:"SuccessFilled",__name:"success-filled",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),A_e=a5e,l5e=Et({name:"WarningFilled",__name:"warning-filled",setup(n){return(e,t)=>(Qe(),St("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[vt("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),P_e=l5e;const R_e="__epPropKey",Ti=n=>n,c5e=n=>zi(n)&&!!n[R_e],u6=(n,e)=>{if(!zi(n)||c5e(n))return n;const{values:t,required:i,default:s,type:r,validator:o}=n,l={type:r,required:!!i,validator:t||o?c=>{let u=!1,h=[];if(t&&(h=Array.from(t),$n(n,"default")&&h.push(s),u||(u=h.includes(c))),o&&(u||(u=o(c))),!u&&h.length>0){const d=[...new Set(h)].map(f=>JSON.stringify(f)).join(", ");WRe(`Invalid prop: validation failed${e?` for prop "${e}"`:""}. Expected one of [${d}], got value ${JSON.stringify(c)}.`)}return u}:void 0,[R_e]:!0};return $n(n,"default")&&(l.default=s),l},cs=n=>JV(Object.entries(n).map(([e,t])=>[e,u6(t,e)])),BI=Ti([String,Object,Function]),u5e={Close:tH,SuccessFilled:A_e,InfoFilled:N_e,WarningFilled:P_e,CircleCloseFilled:T_e},Ore={success:A_e,warning:P_e,error:T_e,info:N_e},h5e={validating:o5e,success:e5e,error:D_e},Gu=(n,e)=>{if(n.install=t=>{for(const i of[n,...Object.values(e??{})])t.component(i.name,i)},e)for(const[t,i]of Object.entries(e))n[t]=i;return n},d5e=(n,e)=>(n.install=t=>{n._context=t._context,t.config.globalProperties[e]=n},n),f5e=(n,e)=>(n.install=t=>{t.directive(e,n)},n),iN=n=>(n.install=hl,n),SS={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},nf="update:modelValue",M_e="change",h6=["","default","small","large"],p5e=n=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(n),g5e=n=>n,L9=({from:n,replacement:e,scope:t,version:i,ref:s,type:r="API"},o)=>{Pt(()=>ae(o),a=>{},{immediate:!0})};var m5e={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const _5e=n=>(e,t)=>v5e(e,t,ae(n)),v5e=(n,e,t)=>tf(t,n,n).replace(/\{(\w+)\}/g,(i,s)=>{var r;return`${(r=e==null?void 0:e[s])!=null?r:`{${s}}`}`}),b5e=n=>{const e=Ee(()=>ae(n).name),t=jn(n)?n:je(n);return{lang:e,locale:t,t:_5e(n)}},O_e=Symbol("localeContextKey"),F_e=n=>{const e=n||Si(O_e,je());return b5e(Ee(()=>e.value||m5e))},ER="el",y5e="is-",G_=(n,e,t,i,s)=>{let r=`${n}-${e}`;return t&&(r+=`-${t}`),i&&(r+=`__${i}`),s&&(r+=`--${s}`),r},B_e=Symbol("namespaceContextKey"),zY=n=>{const e=n||(sr()?Si(B_e,je(ER)):je(ER));return Ee(()=>ae(e)||ER)},qs=(n,e)=>{const t=zY(e);return{namespace:t,b:(g="")=>G_(t.value,n,g,"",""),e:g=>g?G_(t.value,n,"",g,""):"",m:g=>g?G_(t.value,n,"","",g):"",be:(g,m)=>g&&m?G_(t.value,n,g,m,""):"",em:(g,m)=>g&&m?G_(t.value,n,"",g,m):"",bm:(g,m)=>g&&m?G_(t.value,n,g,"",m):"",bem:(g,m,_)=>g&&m&&_?G_(t.value,n,g,m,_):"",is:(g,...m)=>{const _=m.length>=1?m[0]:!0;return g&&_?`${y5e}${g}`:""},cssVar:g=>{const m={};for(const _ in g)g[_]&&(m[`--${t.value}-${_}`]=g[_]);return m},cssVarName:g=>`--${t.value}-${g}`,cssVarBlock:g=>{const m={};for(const _ in g)g[_]&&(m[`--${t.value}-${n}-${_}`]=g[_]);return m},cssVarBlockName:g=>`--${t.value}-${n}-${g}`}},w5e=u6({type:Ti(Boolean),default:null}),C5e=u6({type:Ti(Function)}),W_e=n=>{const e=`update:${n}`,t=`onUpdate:${n}`,i=[e],s={[n]:w5e,[t]:C5e};return{useModelToggle:({indicator:o,toggleReason:a,shouldHideWhenRouteChanges:l,shouldProceed:c,onShow:u,onHide:h})=>{const d=sr(),{emit:f}=d,p=d.props,g=Ee(()=>Wt(p[t])),m=Ee(()=>p[n]===null),_=k=>{o.value!==!0&&(o.value=!0,a&&(a.value=k),Wt(u)&&u(k))},b=k=>{o.value!==!1&&(o.value=!1,a&&(a.value=k),Wt(h)&&h(k))},w=k=>{if(p.disabled===!0||Wt(c)&&!c())return;const L=g.value&&no;L&&f(e,!0),(m.value||!L)&&_(k)},C=k=>{if(p.disabled===!0||!no)return;const L=g.value&&no;L&&f(e,!1),(m.value||!L)&&b(k)},S=k=>{Bf(k)&&(p.disabled&&k?g.value&&f(e,!1):o.value!==k&&(k?_():b()))},x=()=>{o.value?C():w()};return Pt(()=>p[n],S),l&&d.appContext.config.globalProperties.$route!==void 0&&Pt(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&C()}),or(()=>{S(p[n])}),{hide:C,show:w,toggle:x,hasUpdateHandler:g}},useModelToggleProps:s,useModelToggleEmits:i}};W_e("modelValue");const V_e=n=>{const e=sr();return Ee(()=>{var t,i;return(i=(t=e==null?void 0:e.proxy)==null?void 0:t.$props)==null?void 0:i[n]})};var nc="top",Fu="bottom",Bu="right",sc="left",UY="auto",nN=[nc,Fu,Bu,sc],xS="start",WI="end",S5e="clippingParents",H_e="viewport",OL="popper",x5e="reference",Fre=nN.reduce(function(n,e){return n.concat([e+"-"+xS,e+"-"+WI])},[]),d6=[].concat(nN,[UY]).reduce(function(n,e){return n.concat([e,e+"-"+xS,e+"-"+WI])},[]),L5e="beforeRead",E5e="read",k5e="afterRead",I5e="beforeMain",T5e="main",D5e="afterMain",N5e="beforeWrite",A5e="write",P5e="afterWrite",R5e=[L5e,E5e,k5e,I5e,T5e,D5e,N5e,A5e,P5e];function Wf(n){return n?(n.nodeName||"").toLowerCase():null}function ad(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function LS(n){var e=ad(n).Element;return n instanceof e||n instanceof Element}function Nu(n){var e=ad(n).HTMLElement;return n instanceof e||n instanceof HTMLElement}function jY(n){if(typeof ShadowRoot>"u")return!1;var e=ad(n).ShadowRoot;return n instanceof e||n instanceof ShadowRoot}function M5e(n){var e=n.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},r=e.elements[t];!Nu(r)||!Wf(r)||(Object.assign(r.style,i),Object.keys(s).forEach(function(o){var a=s[o];a===!1?r.removeAttribute(o):r.setAttribute(o,a===!0?"":a)}))})}function O5e(n){var e=n.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(i){var s=e.elements[i],r=e.attributes[i]||{},o=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:t[i]),a=o.reduce(function(l,c){return l[c]="",l},{});!Nu(s)||!Wf(s)||(Object.assign(s.style,a),Object.keys(r).forEach(function(l){s.removeAttribute(l)}))})}}var $_e={name:"applyStyles",enabled:!0,phase:"write",fn:M5e,effect:O5e,requires:["computeStyles"]};function Sf(n){return n.split("-")[0]}var hb=Math.max,rO=Math.min,ES=Math.round;function kS(n,e){e===void 0&&(e=!1);var t=n.getBoundingClientRect(),i=1,s=1;if(Nu(n)&&e){var r=n.offsetHeight,o=n.offsetWidth;o>0&&(i=ES(t.width)/o||1),r>0&&(s=ES(t.height)/r||1)}return{width:t.width/i,height:t.height/s,top:t.top/s,right:t.right/i,bottom:t.bottom/s,left:t.left/i,x:t.left/i,y:t.top/s}}function qY(n){var e=kS(n),t=n.offsetWidth,i=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:i}}function z_e(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&jY(t)){var i=e;do{if(i&&n.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Dg(n){return ad(n).getComputedStyle(n)}function F5e(n){return["table","td","th"].indexOf(Wf(n))>=0}function L_(n){return((LS(n)?n.ownerDocument:n.document)||window.document).documentElement}function f6(n){return Wf(n)==="html"?n:n.assignedSlot||n.parentNode||(jY(n)?n.host:null)||L_(n)}function Bre(n){return!Nu(n)||Dg(n).position==="fixed"?null:n.offsetParent}function B5e(n){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,t=navigator.userAgent.indexOf("Trident")!==-1;if(t&&Nu(n)){var i=Dg(n);if(i.position==="fixed")return null}var s=f6(n);for(jY(s)&&(s=s.host);Nu(s)&&["html","body"].indexOf(Wf(s))<0;){var r=Dg(s);if(r.transform!=="none"||r.perspective!=="none"||r.contain==="paint"||["transform","perspective"].indexOf(r.willChange)!==-1||e&&r.willChange==="filter"||e&&r.filter&&r.filter!=="none")return s;s=s.parentNode}return null}function sN(n){for(var e=ad(n),t=Bre(n);t&&F5e(t)&&Dg(t).position==="static";)t=Bre(t);return t&&(Wf(t)==="html"||Wf(t)==="body"&&Dg(t).position==="static")?e:t||B5e(n)||e}function KY(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function hk(n,e,t){return hb(n,rO(e,t))}function W5e(n,e,t){var i=hk(n,e,t);return i>t?t:i}function U_e(){return{top:0,right:0,bottom:0,left:0}}function j_e(n){return Object.assign({},U_e(),n)}function q_e(n,e){return e.reduce(function(t,i){return t[i]=n,t},{})}var V5e=function(n,e){return n=typeof n=="function"?n(Object.assign({},e.rects,{placement:e.placement})):n,j_e(typeof n!="number"?n:q_e(n,nN))};function H5e(n){var e,t=n.state,i=n.name,s=n.options,r=t.elements.arrow,o=t.modifiersData.popperOffsets,a=Sf(t.placement),l=KY(a),c=[sc,Bu].indexOf(a)>=0,u=c?"height":"width";if(!(!r||!o)){var h=V5e(s.padding,t),d=qY(r),f=l==="y"?nc:sc,p=l==="y"?Fu:Bu,g=t.rects.reference[u]+t.rects.reference[l]-o[l]-t.rects.popper[u],m=o[l]-t.rects.reference[l],_=sN(r),b=_?l==="y"?_.clientHeight||0:_.clientWidth||0:0,w=g/2-m/2,C=h[f],S=b-d[u]-h[p],x=b/2-d[u]/2+w,k=hk(C,x,S),L=l;t.modifiersData[i]=(e={},e[L]=k,e.centerOffset=k-x,e)}}function $5e(n){var e=n.state,t=n.options,i=t.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||!z_e(e.elements.popper,s)||(e.elements.arrow=s))}var z5e={name:"arrow",enabled:!0,phase:"main",fn:H5e,effect:$5e,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function IS(n){return n.split("-")[1]}var U5e={top:"auto",right:"auto",bottom:"auto",left:"auto"};function j5e(n){var e=n.x,t=n.y,i=window,s=i.devicePixelRatio||1;return{x:ES(e*s)/s||0,y:ES(t*s)/s||0}}function Wre(n){var e,t=n.popper,i=n.popperRect,s=n.placement,r=n.variation,o=n.offsets,a=n.position,l=n.gpuAcceleration,c=n.adaptive,u=n.roundOffsets,h=n.isFixed,d=o.x,f=d===void 0?0:d,p=o.y,g=p===void 0?0:p,m=typeof u=="function"?u({x:f,y:g}):{x:f,y:g};f=m.x,g=m.y;var _=o.hasOwnProperty("x"),b=o.hasOwnProperty("y"),w=sc,C=nc,S=window;if(c){var x=sN(t),k="clientHeight",L="clientWidth";if(x===ad(t)&&(x=L_(t),Dg(x).position!=="static"&&a==="absolute"&&(k="scrollHeight",L="scrollWidth")),x=x,s===nc||(s===sc||s===Bu)&&r===WI){C=Fu;var E=h&&x===S&&S.visualViewport?S.visualViewport.height:x[k];g-=E-i.height,g*=l?1:-1}if(s===sc||(s===nc||s===Fu)&&r===WI){w=Bu;var A=h&&x===S&&S.visualViewport?S.visualViewport.width:x[L];f-=A-i.width,f*=l?1:-1}}var I=Object.assign({position:a},c&&U5e),T=u===!0?j5e({x:f,y:g}):{x:f,y:g};if(f=T.x,g=T.y,l){var N;return Object.assign({},I,(N={},N[C]=b?"0":"",N[w]=_?"0":"",N.transform=(S.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",N))}return Object.assign({},I,(e={},e[C]=b?g+"px":"",e[w]=_?f+"px":"",e.transform="",e))}function q5e(n){var e=n.state,t=n.options,i=t.gpuAcceleration,s=i===void 0?!0:i,r=t.adaptive,o=r===void 0?!0:r,a=t.roundOffsets,l=a===void 0?!0:a,c={placement:Sf(e.placement),variation:IS(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Wre(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Wre(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var K_e={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:q5e,data:{}},yA={passive:!0};function K5e(n){var e=n.state,t=n.instance,i=n.options,s=i.scroll,r=s===void 0?!0:s,o=i.resize,a=o===void 0?!0:o,l=ad(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&c.forEach(function(u){u.addEventListener("scroll",t.update,yA)}),a&&l.addEventListener("resize",t.update,yA),function(){r&&c.forEach(function(u){u.removeEventListener("scroll",t.update,yA)}),a&&l.removeEventListener("resize",t.update,yA)}}var G_e={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:K5e,data:{}},G5e={left:"right",right:"left",bottom:"top",top:"bottom"};function kR(n){return n.replace(/left|right|bottom|top/g,function(e){return G5e[e]})}var X5e={start:"end",end:"start"};function Vre(n){return n.replace(/start|end/g,function(e){return X5e[e]})}function GY(n){var e=ad(n),t=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:t,scrollTop:i}}function XY(n){return kS(L_(n)).left+GY(n).scrollLeft}function Y5e(n){var e=ad(n),t=L_(n),i=e.visualViewport,s=t.clientWidth,r=t.clientHeight,o=0,a=0;return i&&(s=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,a=i.offsetTop)),{width:s,height:r,x:o+XY(n),y:a}}function Z5e(n){var e,t=L_(n),i=GY(n),s=(e=n.ownerDocument)==null?void 0:e.body,r=hb(t.scrollWidth,t.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),o=hb(t.scrollHeight,t.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+XY(n),l=-i.scrollTop;return Dg(s||t).direction==="rtl"&&(a+=hb(t.clientWidth,s?s.clientWidth:0)-r),{width:r,height:o,x:a,y:l}}function YY(n){var e=Dg(n),t=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+s+i)}function X_e(n){return["html","body","#document"].indexOf(Wf(n))>=0?n.ownerDocument.body:Nu(n)&&YY(n)?n:X_e(f6(n))}function dk(n,e){var t;e===void 0&&(e=[]);var i=X_e(n),s=i===((t=n.ownerDocument)==null?void 0:t.body),r=ad(i),o=s?[r].concat(r.visualViewport||[],YY(i)?i:[]):i,a=e.concat(o);return s?a:a.concat(dk(f6(o)))}function iH(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function Q5e(n){var e=kS(n);return e.top=e.top+n.clientTop,e.left=e.left+n.clientLeft,e.bottom=e.top+n.clientHeight,e.right=e.left+n.clientWidth,e.width=n.clientWidth,e.height=n.clientHeight,e.x=e.left,e.y=e.top,e}function Hre(n,e){return e===H_e?iH(Y5e(n)):LS(e)?Q5e(e):iH(Z5e(L_(n)))}function J5e(n){var e=dk(f6(n)),t=["absolute","fixed"].indexOf(Dg(n).position)>=0,i=t&&Nu(n)?sN(n):n;return LS(i)?e.filter(function(s){return LS(s)&&z_e(s,i)&&Wf(s)!=="body"}):[]}function e6e(n,e,t){var i=e==="clippingParents"?J5e(n):[].concat(e),s=[].concat(i,[t]),r=s[0],o=s.reduce(function(a,l){var c=Hre(n,l);return a.top=hb(c.top,a.top),a.right=rO(c.right,a.right),a.bottom=rO(c.bottom,a.bottom),a.left=hb(c.left,a.left),a},Hre(n,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function Y_e(n){var e=n.reference,t=n.element,i=n.placement,s=i?Sf(i):null,r=i?IS(i):null,o=e.x+e.width/2-t.width/2,a=e.y+e.height/2-t.height/2,l;switch(s){case nc:l={x:o,y:e.y-t.height};break;case Fu:l={x:o,y:e.y+e.height};break;case Bu:l={x:e.x+e.width,y:a};break;case sc:l={x:e.x-t.width,y:a};break;default:l={x:e.x,y:e.y}}var c=s?KY(s):null;if(c!=null){var u=c==="y"?"height":"width";switch(r){case xS:l[c]=l[c]-(e[u]/2-t[u]/2);break;case WI:l[c]=l[c]+(e[u]/2-t[u]/2);break}}return l}function VI(n,e){e===void 0&&(e={});var t=e,i=t.placement,s=i===void 0?n.placement:i,r=t.boundary,o=r===void 0?S5e:r,a=t.rootBoundary,l=a===void 0?H_e:a,c=t.elementContext,u=c===void 0?OL:c,h=t.altBoundary,d=h===void 0?!1:h,f=t.padding,p=f===void 0?0:f,g=j_e(typeof p!="number"?p:q_e(p,nN)),m=u===OL?x5e:OL,_=n.rects.popper,b=n.elements[d?m:u],w=e6e(LS(b)?b:b.contextElement||L_(n.elements.popper),o,l),C=kS(n.elements.reference),S=Y_e({reference:C,element:_,strategy:"absolute",placement:s}),x=iH(Object.assign({},_,S)),k=u===OL?x:C,L={top:w.top-k.top+g.top,bottom:k.bottom-w.bottom+g.bottom,left:w.left-k.left+g.left,right:k.right-w.right+g.right},E=n.modifiersData.offset;if(u===OL&&E){var A=E[s];Object.keys(L).forEach(function(I){var T=[Bu,Fu].indexOf(I)>=0?1:-1,N=[nc,Fu].indexOf(I)>=0?"y":"x";L[I]+=A[N]*T})}return L}function t6e(n,e){e===void 0&&(e={});var t=e,i=t.placement,s=t.boundary,r=t.rootBoundary,o=t.padding,a=t.flipVariations,l=t.allowedAutoPlacements,c=l===void 0?d6:l,u=IS(i),h=u?a?Fre:Fre.filter(function(p){return IS(p)===u}):nN,d=h.filter(function(p){return c.indexOf(p)>=0});d.length===0&&(d=h);var f=d.reduce(function(p,g){return p[g]=VI(n,{placement:g,boundary:s,rootBoundary:r,padding:o})[Sf(g)],p},{});return Object.keys(f).sort(function(p,g){return f[p]-f[g]})}function i6e(n){if(Sf(n)===UY)return[];var e=kR(n);return[Vre(n),e,Vre(e)]}function n6e(n){var e=n.state,t=n.options,i=n.name;if(!e.modifiersData[i]._skip){for(var s=t.mainAxis,r=s===void 0?!0:s,o=t.altAxis,a=o===void 0?!0:o,l=t.fallbackPlacements,c=t.padding,u=t.boundary,h=t.rootBoundary,d=t.altBoundary,f=t.flipVariations,p=f===void 0?!0:f,g=t.allowedAutoPlacements,m=e.options.placement,_=Sf(m),b=_===m,w=l||(b||!p?[kR(m)]:i6e(m)),C=[m].concat(w).reduce(function(Z,j){return Z.concat(Sf(j)===UY?t6e(e,{placement:j,boundary:u,rootBoundary:h,padding:c,flipVariations:p,allowedAutoPlacements:g}):j)},[]),S=e.rects.reference,x=e.rects.popper,k=new Map,L=!0,E=C[0],A=0;A<C.length;A++){var I=C[A],T=Sf(I),N=IS(I)===xS,M=[nc,Fu].indexOf(T)>=0,V=M?"width":"height",W=VI(e,{placement:I,boundary:u,rootBoundary:h,altBoundary:d,padding:c}),B=M?N?Bu:sc:N?Fu:nc;S[V]>x[V]&&(B=kR(B));var $=kR(B),Y=[];if(r&&Y.push(W[T]<=0),a&&Y.push(W[B]<=0,W[$]<=0),Y.every(function(Z){return Z})){E=I,L=!1;break}k.set(I,Y)}if(L)for(var le=p?3:1,re=function(Z){var j=C.find(function(ce){var ie=k.get(ce);if(ie)return ie.slice(0,Z).every(function(de){return de})});if(j)return E=j,"break"},z=le;z>0;z--){var K=re(z);if(K==="break")break}e.placement!==E&&(e.modifiersData[i]._skip=!0,e.placement=E,e.reset=!0)}}var s6e={name:"flip",enabled:!0,phase:"main",fn:n6e,requiresIfExists:["offset"],data:{_skip:!1}};function $re(n,e,t){return t===void 0&&(t={x:0,y:0}),{top:n.top-e.height-t.y,right:n.right-e.width+t.x,bottom:n.bottom-e.height+t.y,left:n.left-e.width-t.x}}function zre(n){return[nc,Bu,Fu,sc].some(function(e){return n[e]>=0})}function r6e(n){var e=n.state,t=n.name,i=e.rects.reference,s=e.rects.popper,r=e.modifiersData.preventOverflow,o=VI(e,{elementContext:"reference"}),a=VI(e,{altBoundary:!0}),l=$re(o,i),c=$re(a,s,r),u=zre(l),h=zre(c);e.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":h})}var o6e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:r6e};function a6e(n,e,t){var i=Sf(n),s=[sc,nc].indexOf(i)>=0?-1:1,r=typeof t=="function"?t(Object.assign({},e,{placement:n})):t,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[sc,Bu].indexOf(i)>=0?{x:a,y:o}:{x:o,y:a}}function l6e(n){var e=n.state,t=n.options,i=n.name,s=t.offset,r=s===void 0?[0,0]:s,o=d6.reduce(function(u,h){return u[h]=a6e(h,e.rects,r),u},{}),a=o[e.placement],l=a.x,c=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[i]=o}var c6e={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:l6e};function u6e(n){var e=n.state,t=n.name;e.modifiersData[t]=Y_e({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var Z_e={name:"popperOffsets",enabled:!0,phase:"read",fn:u6e,data:{}};function h6e(n){return n==="x"?"y":"x"}function d6e(n){var e=n.state,t=n.options,i=n.name,s=t.mainAxis,r=s===void 0?!0:s,o=t.altAxis,a=o===void 0?!1:o,l=t.boundary,c=t.rootBoundary,u=t.altBoundary,h=t.padding,d=t.tether,f=d===void 0?!0:d,p=t.tetherOffset,g=p===void 0?0:p,m=VI(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:u}),_=Sf(e.placement),b=IS(e.placement),w=!b,C=KY(_),S=h6e(C),x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,E=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,A=typeof E=="number"?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),I=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,T={x:0,y:0};if(x){if(r){var N,M=C==="y"?nc:sc,V=C==="y"?Fu:Bu,W=C==="y"?"height":"width",B=x[C],$=B+m[M],Y=B-m[V],le=f?-L[W]/2:0,re=b===xS?k[W]:L[W],z=b===xS?-L[W]:-k[W],K=e.elements.arrow,Z=f&&K?qY(K):{width:0,height:0},j=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:U_e(),ce=j[M],ie=j[V],de=hk(0,k[W],Z[W]),Le=w?k[W]/2-le-de-ce-A.mainAxis:re-de-ce-A.mainAxis,Te=w?-k[W]/2+le+de+ie+A.mainAxis:z+de+ie+A.mainAxis,ve=e.elements.arrow&&sN(e.elements.arrow),Ke=ve?C==="y"?ve.clientTop||0:ve.clientLeft||0:0,Q=(N=I==null?void 0:I[C])!=null?N:0,ne=B+Le-Q-Ke,xe=B+Te-Q,He=hk(f?rO($,ne):$,B,f?hb(Y,xe):Y);x[C]=He,T[C]=He-B}if(a){var Re,Fe=C==="x"?nc:sc,Ye=C==="x"?Fu:Bu,he=x[S],te=S==="y"?"height":"width",ee=he+m[Fe],R=he-m[Ye],F=[nc,sc].indexOf(_)!==-1,q=(Re=I==null?void 0:I[S])!=null?Re:0,G=F?ee:he-k[te]-L[te]-q+A.altAxis,pe=F?he+k[te]+L[te]-q-A.altAxis:R,_e=f&&F?W5e(G,he,pe):hk(f?G:ee,he,f?pe:R);x[S]=_e,T[S]=_e-he}e.modifiersData[i]=T}}var f6e={name:"preventOverflow",enabled:!0,phase:"main",fn:d6e,requiresIfExists:["offset"]};function p6e(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function g6e(n){return n===ad(n)||!Nu(n)?GY(n):p6e(n)}function m6e(n){var e=n.getBoundingClientRect(),t=ES(e.width)/n.offsetWidth||1,i=ES(e.height)/n.offsetHeight||1;return t!==1||i!==1}function _6e(n,e,t){t===void 0&&(t=!1);var i=Nu(e),s=Nu(e)&&m6e(e),r=L_(e),o=kS(n,s),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((Wf(e)!=="body"||YY(r))&&(a=g6e(e)),Nu(e)?(l=kS(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):r&&(l.x=XY(r))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function v6e(n){var e=new Map,t=new Set,i=[];n.forEach(function(r){e.set(r.name,r)});function s(r){t.add(r.name);var o=[].concat(r.requires||[],r.requiresIfExists||[]);o.forEach(function(a){if(!t.has(a)){var l=e.get(a);l&&s(l)}}),i.push(r)}return n.forEach(function(r){t.has(r.name)||s(r)}),i}function b6e(n){var e=v6e(n);return R5e.reduce(function(t,i){return t.concat(e.filter(function(s){return s.phase===i}))},[])}function y6e(n){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(n())})})),e}}function w6e(n){var e=n.reduce(function(t,i){var s=t[i.name];return t[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,t},{});return Object.keys(e).map(function(t){return e[t]})}var Ure={placement:"bottom",modifiers:[],strategy:"absolute"};function jre(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];return!e.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function ZY(n){n===void 0&&(n={});var e=n,t=e.defaultModifiers,i=t===void 0?[]:t,s=e.defaultOptions,r=s===void 0?Ure:s;return function(o,a,l){l===void 0&&(l=r);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ure,r),modifiersData:{},elements:{reference:o,popper:a},attributes:{},styles:{}},u=[],h=!1,d={state:c,setOptions:function(g){var m=typeof g=="function"?g(c.options):g;p(),c.options=Object.assign({},r,c.options,m),c.scrollParents={reference:LS(o)?dk(o):o.contextElement?dk(o.contextElement):[],popper:dk(a)};var _=b6e(w6e([].concat(i,c.options.modifiers)));return c.orderedModifiers=_.filter(function(b){return b.enabled}),f(),d.update()},forceUpdate:function(){if(!h){var g=c.elements,m=g.reference,_=g.popper;if(jre(m,_)){c.rects={reference:_6e(m,sN(_),c.options.strategy==="fixed"),popper:qY(_)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(L){return c.modifiersData[L.name]=Object.assign({},L.data)});for(var b=0;b<c.orderedModifiers.length;b++){if(c.reset===!0){c.reset=!1,b=-1;continue}var w=c.orderedModifiers[b],C=w.fn,S=w.options,x=S===void 0?{}:S,k=w.name;typeof C=="function"&&(c=C({state:c,options:x,name:k,instance:d})||c)}}}},update:y6e(function(){return new Promise(function(g){d.forceUpdate(),g(c)})}),destroy:function(){p(),h=!0}};if(!jre(o,a))return d;d.setOptions(l).then(function(g){!h&&l.onFirstUpdate&&l.onFirstUpdate(g)});function f(){c.orderedModifiers.forEach(function(g){var m=g.name,_=g.options,b=_===void 0?{}:_,w=g.effect;if(typeof w=="function"){var C=w({state:c,name:m,instance:d,options:b}),S=function(){};u.push(C||S)}})}function p(){u.forEach(function(g){return g()}),u=[]}return d}}ZY();var C6e=[G_e,Z_e,K_e,$_e];ZY({defaultModifiers:C6e});var S6e=[G_e,Z_e,K_e,$_e,c6e,s6e,f6e,z5e,o6e],x6e=ZY({defaultModifiers:S6e});const L6e=(n,e,t={})=>{const i={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const c=E6e(l);Object.assign(o.value,c)},requires:["computeStyles"]},s=Ee(()=>{const{onFirstUpdate:l,placement:c,strategy:u,modifiers:h}=ae(t);return{onFirstUpdate:l,placement:c||"bottom",strategy:u||"absolute",modifiers:[...h||[],i,{name:"applyStyles",enabled:!1}]}}),r=mg(),o=je({styles:{popper:{position:ae(s).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),a=()=>{r.value&&(r.value.destroy(),r.value=void 0)};return Pt(s,l=>{const c=ae(r);c&&c.setOptions(l)},{deep:!0}),Pt([n,e],([l,c])=>{a(),!(!l||!c)&&(r.value=x6e(l,c,ae(s)))}),Fa(()=>{a()}),{state:Ee(()=>{var l;return{...((l=ae(r))==null?void 0:l.state)||{}}}),styles:Ee(()=>ae(o).styles),attributes:Ee(()=>ae(o).attributes),update:()=>{var l;return(l=ae(r))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=ae(r))==null?void 0:l.forceUpdate()},instanceRef:Ee(()=>ae(r))}};function E6e(n){const e=Object.keys(n.elements),t=JV(e.map(s=>[s,n.styles[s]||{}])),i=JV(e.map(s=>[s,n.attributes[s]]));return{styles:t,attributes:i}}function qre(){let n;const e=(i,s)=>{t(),n=window.setTimeout(i,s)},t=()=>window.clearTimeout(n);return eN(()=>t()),{registerTimeout:e,cancelTimeout:t}}const Kre={prefix:Math.floor(Math.random()*1e4),current:0},k6e=Symbol("elIdInjection"),Q_e=()=>sr()?Si(k6e,Kre):Kre,rN=n=>{const e=Q_e(),t=zY();return Ee(()=>ae(n)||`${t.value}-id-${e.prefix}-${e.current++}`)};let Ew=[];const Gre=n=>{const e=n;e.key===SS.esc&&Ew.forEach(t=>t(e))},I6e=n=>{or(()=>{Ew.length===0&&document.addEventListener("keydown",Gre),no&&Ew.push(n)}),Fa(()=>{Ew=Ew.filter(e=>e!==n),Ew.length===0&&no&&document.removeEventListener("keydown",Gre)})};let Xre;const J_e=()=>{const n=zY(),e=Q_e(),t=Ee(()=>`${n.value}-popper-container-${e.prefix}`),i=Ee(()=>`#${t.value}`);return{id:t,selector:i}},T6e=n=>{const e=document.createElement("div");return e.id=n,document.body.appendChild(e),e},D6e=()=>{const{id:n,selector:e}=J_e();return p1e(()=>{no&&(!Xre||!document.body.querySelector(e.value))&&(Xre=T6e(n.value))}),{id:n,selector:e}},N6e=cs({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),A6e=({showAfter:n,hideAfter:e,autoClose:t,open:i,close:s})=>{const{registerTimeout:r}=qre(),{registerTimeout:o,cancelTimeout:a}=qre();return{onOpen:u=>{r(()=>{i(u);const h=ae(t);xo(h)&&h>0&&o(()=>{s(u)},h)},ae(n))},onClose:u=>{a(),r(()=>{s(u)},ae(e))}}},eve=Symbol("elForwardRef"),P6e=n=>{To(eve,{setForwardRef:t=>{n.value=t}})},R6e=n=>({mounted(e){n(e)},updated(e){n(e)},unmounted(){n(null)}}),Yre={current:0},Zre=je(0),tve=2e3,Qre=Symbol("elZIndexContextKey"),ive=Symbol("zIndexContextKey"),nve=n=>{const e=sr()?Si(Qre,Yre):Yre,t=n||(sr()?Si(ive,void 0):void 0),i=Ee(()=>{const o=ae(t);return xo(o)?o:tve}),s=Ee(()=>i.value+Zre.value),r=()=>(e.current++,Zre.value=e.current,s.value);return!no&&Si(Qre),{initialZIndex:i,currentZIndex:s,nextZIndex:r}},QY=u6({type:String,values:h6,required:!1}),sve=Symbol("size"),M6e=()=>{const n=Si(sve,{});return Ee(()=>ae(n.size)||"")};function O6e(n,{beforeFocus:e,afterFocus:t,beforeBlur:i,afterBlur:s}={}){const r=sr(),{emit:o}=r,a=mg(),l=je(!1),c=d=>{Wt(e)&&e(d)||l.value||(l.value=!0,o("focus",d),t==null||t())},u=d=>{var f;Wt(i)&&i(d)||d.relatedTarget&&((f=a.value)!=null&&f.contains(d.relatedTarget))||(l.value=!1,o("blur",d),s==null||s())},h=()=>{var d,f;(d=a.value)!=null&&d.contains(document.activeElement)&&a.value!==document.activeElement||(f=n.value)==null||f.focus()};return Pt(a,d=>{d&&d.setAttribute("tabindex","-1")}),wf(a,"focus",c,!0),wf(a,"blur",u,!0),wf(a,"click",h,!0),{isFocused:l,wrapperRef:a,handleFocus:c,handleBlur:u}}function F6e({afterComposition:n,emit:e}){const t=je(!1),i=a=>{e==null||e("compositionstart",a),t.value=!0},s=a=>{var l;e==null||e("compositionupdate",a);const c=(l=a.target)==null?void 0:l.value,u=c[c.length-1]||"";t.value=!p5e(u)},r=a=>{e==null||e("compositionend",a),t.value&&(t.value=!1,Hs(()=>n(a)))};return{isComposing:t,handleComposition:a=>{a.type==="compositionend"?r(a):s(a)},handleCompositionStart:i,handleCompositionUpdate:s,handleCompositionEnd:r}}const rve=Symbol("emptyValuesContextKey"),B6e=["",void 0,null],W6e=void 0,V6e=cs({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:n=>Wt(n)?!n():!n}}),H6e=(n,e)=>{const t=sr()?Si(rve,je({})):je({}),i=Ee(()=>n.emptyValues||t.value.emptyValues||B6e),s=Ee(()=>Wt(n.valueOnClear)?n.valueOnClear():n.valueOnClear!==void 0?n.valueOnClear:Wt(t.value.valueOnClear)?t.value.valueOnClear():t.value.valueOnClear!==void 0?t.value.valueOnClear:W6e),r=o=>i.value.includes(o);return i.value.includes(s.value),{emptyValues:i,valueOnClear:s,isEmptyValue:r}},$6e=cs({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Rx=n=>E_e($6e,n),ove=Symbol(),oO=je();function ave(n,e=void 0){return sr()?Si(ove,oO):oO}function lve(n,e){const t=ave(),i=qs(n,Ee(()=>{var a;return((a=t.value)==null?void 0:a.namespace)||ER})),s=F_e(Ee(()=>{var a;return(a=t.value)==null?void 0:a.locale})),r=nve(Ee(()=>{var a;return((a=t.value)==null?void 0:a.zIndex)||tve})),o=Ee(()=>{var a;return ae(e)||((a=t.value)==null?void 0:a.size)||""});return z6e(Ee(()=>ae(t)||{})),{ns:i,locale:s,zIndex:r,size:o}}const z6e=(n,e,t=!1)=>{var i;const s=!!sr(),r=s?ave():void 0,o=(i=void 0)!=null?i:s?To:void 0;if(!o)return;const a=Ee(()=>{const l=ae(n);return r!=null&&r.value?U6e(r.value,l):l});return o(ove,a),o(O_e,Ee(()=>a.value.locale)),o(B_e,Ee(()=>a.value.namespace)),o(ive,Ee(()=>a.value.zIndex)),o(sve,{size:Ee(()=>a.value.size||"")}),o(rve,Ee(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),(t||!oO.value)&&(oO.value=a.value),a},U6e=(n,e)=>{const t=[...new Set([...Rre(n),...Rre(e)])],i={};for(const s of t)i[s]=e[s]!==void 0?e[s]:n[s];return i},Md={};var us=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t};const j6e=cs({size:{type:Ti([Number,String])},color:{type:String}}),q6e=Et({name:"ElIcon",inheritAttrs:!1}),K6e=Et({...q6e,props:j6e,setup(n){const e=n,t=qs("icon"),i=Ee(()=>{const{size:s,color:r}=e;return!s&&!r?{}:{fontSize:Zm(s)?void 0:X1(s),"--color":r}});return(s,r)=>(Qe(),St("i",Ax({class:ae(t).b(),style:ae(i)},s.$attrs),[Ii(s.$slots,"default")],16))}});var G6e=us(K6e,[["__file","icon.vue"]]);const TS=Gu(G6e),Mx=Symbol("formContextKey"),Ay=Symbol("formItemContextKey"),DS=(n,e={})=>{const t=je(void 0),i=e.prop?t:V_e("size"),s=e.global?t:M6e(),r=e.form?{size:void 0}:Si(Mx,void 0),o=e.formItem?{size:void 0}:Si(Ay,void 0);return Ee(()=>i.value||ae(n)||(o==null?void 0:o.size)||(r==null?void 0:r.size)||s.value||"")},X6e=n=>{const e=V_e("disabled"),t=Si(Mx,void 0);return Ee(()=>e.value||ae(n)||(t==null?void 0:t.disabled)||!1)},p6=()=>{const n=Si(Mx,void 0),e=Si(Ay,void 0);return{form:n,formItem:e}},JY=(n,{formItemContext:e,disableIdGeneration:t,disableIdManagement:i})=>{t||(t=je(!1)),i||(i=je(!1));const s=je();let r;const o=Ee(()=>{var a;return!!(!(n.label||n.ariaLabel)&&e&&e.inputIds&&((a=e.inputIds)==null?void 0:a.length)<=1)});return or(()=>{r=Pt([Xp(n,"id"),t],([a,l])=>{const c=a??(l?void 0:rN().value);c!==s.value&&(e!=null&&e.removeInputId&&(s.value&&e.removeInputId(s.value),!(i!=null&&i.value)&&!l&&c&&e.addInputId(c)),s.value=c)},{immediate:!0})}),Y5(()=>{r&&r(),e!=null&&e.removeInputId&&s.value&&e.removeInputId(s.value)}),{isLabeledByFormItem:o,inputId:s}},Y6e=cs({size:{type:String,values:h6},disabled:Boolean}),Z6e=cs({...Y6e,model:Object,rules:{type:Ti(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),Q6e={validate:(n,e,t)=>(Dt(n)||on(n))&&Bf(e)&&on(t)};function J6e(){const n=je([]),e=Ee(()=>{if(!n.value.length)return"0";const r=Math.max(...n.value);return r?`${r}px`:""});function t(r){const o=n.value.indexOf(r);return o===-1&&e.value,o}function i(r,o){if(r&&o){const a=t(o);n.value.splice(a,1,r)}else r&&n.value.push(r)}function s(r){const o=t(r);o>-1&&n.value.splice(o,1)}return{autoLabelWidth:e,registerLabelWidth:i,deregisterLabelWidth:s}}const wA=(n,e)=>{const t=Lh(e);return t.length>0?n.filter(i=>i.prop&&t.includes(i.prop)):n},eBe="ElForm",tBe=Et({name:eBe}),iBe=Et({...tBe,props:Z6e,emits:Q6e,setup(n,{expose:e,emit:t}){const i=n,s=[],r=DS(),o=qs("form"),a=Ee(()=>{const{labelPosition:w,inline:C}=i;return[o.b(),o.m(r.value||"default"),{[o.m(`label-${w}`)]:w,[o.m("inline")]:C}]}),l=w=>s.find(C=>C.prop===w),c=w=>{s.push(w)},u=w=>{w.prop&&s.splice(s.indexOf(w),1)},h=(w=[])=>{i.model&&wA(s,w).forEach(C=>C.resetField())},d=(w=[])=>{wA(s,w).forEach(C=>C.clearValidate())},f=Ee(()=>!!i.model),p=w=>{if(s.length===0)return[];const C=wA(s,w);return C.length?C:[]},g=async w=>_(void 0,w),m=async(w=[])=>{if(!f.value)return!1;const C=p(w);if(C.length===0)return!0;let S={};for(const x of C)try{await x.validate("")}catch(k){S={...S,...k}}return Object.keys(S).length===0?!0:Promise.reject(S)},_=async(w=[],C)=>{const S=!Wt(C);try{const x=await m(w);return x===!0&&await(C==null?void 0:C(x)),x}catch(x){if(x instanceof Error)throw x;const k=x;return i.scrollToError&&b(Object.keys(k)[0]),await(C==null?void 0:C(!1,k)),S&&Promise.reject(k)}},b=w=>{var C;const S=wA(s,w)[0];S&&((C=S.$el)==null||C.scrollIntoView(i.scrollIntoViewOptions))};return Pt(()=>i.rules,()=>{i.validateOnRuleChange&&g().catch(w=>void 0)},{deep:!0}),To(Mx,ia({...Yg(i),emit:t,resetFields:h,clearValidate:d,validateField:_,getField:l,addField:c,removeField:u,...J6e()})),e({validate:g,validateField:_,resetFields:h,clearValidate:d,scrollToField:b,fields:s}),(w,C)=>(Qe(),St("form",{class:pt(ae(a))},[Ii(w.$slots,"default")],2))}});var nBe=us(iBe,[["__file","form.vue"]]);function Xv(){return Xv=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Xv.apply(this,arguments)}function sBe(n,e){n.prototype=Object.create(e.prototype),n.prototype.constructor=n,HI(n,e)}function nH(n){return nH=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},nH(n)}function HI(n,e){return HI=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,s){return i.__proto__=s,i},HI(n,e)}function rBe(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function IR(n,e,t){return rBe()?IR=Reflect.construct.bind():IR=function(s,r,o){var a=[null];a.push.apply(a,r);var l=Function.bind.apply(s,a),c=new l;return o&&HI(c,o.prototype),c},IR.apply(null,arguments)}function oBe(n){return Function.toString.call(n).indexOf("[native code]")!==-1}function sH(n){var e=typeof Map=="function"?new Map:void 0;return sH=function(i){if(i===null||!oBe(i))return i;if(typeof i!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(i))return e.get(i);e.set(i,s)}function s(){return IR(i,arguments,nH(this).constructor)}return s.prototype=Object.create(i.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),HI(s,i)},sH(n)}var aBe=/%[sdj%]/g,lBe=function(){};function rH(n){if(!n||!n.length)return null;var e={};return n.forEach(function(t){var i=t.field;e[i]=e[i]||[],e[i].push(t)}),e}function Bc(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];var s=0,r=t.length;if(typeof n=="function")return n.apply(null,t);if(typeof n=="string"){var o=n.replace(aBe,function(a){if(a==="%%")return"%";if(s>=r)return a;switch(a){case"%s":return String(t[s++]);case"%d":return Number(t[s++]);case"%j":try{return JSON.stringify(t[s++])}catch{return"[Circular]"}break;default:return a}});return o}return n}function cBe(n){return n==="string"||n==="url"||n==="hex"||n==="email"||n==="date"||n==="pattern"}function ro(n,e){return!!(n==null||e==="array"&&Array.isArray(n)&&!n.length||cBe(e)&&typeof n=="string"&&!n)}function uBe(n,e,t){var i=[],s=0,r=n.length;function o(a){i.push.apply(i,a||[]),s++,s===r&&t(i)}n.forEach(function(a){e(a,o)})}function Jre(n,e,t){var i=0,s=n.length;function r(o){if(o&&o.length){t(o);return}var a=i;i=i+1,a<s?e(n[a],r):t([])}r([])}function hBe(n){var e=[];return Object.keys(n).forEach(function(t){e.push.apply(e,n[t]||[])}),e}var eoe=function(n){sBe(e,n);function e(t,i){var s;return s=n.call(this,"Async Validation Error")||this,s.errors=t,s.fields=i,s}return e}(sH(Error));function dBe(n,e,t,i,s){if(e.first){var r=new Promise(function(d,f){var p=function(_){return i(_),_.length?f(new eoe(_,rH(_))):d(s)},g=hBe(n);Jre(g,t,p)});return r.catch(function(d){return d}),r}var o=e.firstFields===!0?Object.keys(n):e.firstFields||[],a=Object.keys(n),l=a.length,c=0,u=[],h=new Promise(function(d,f){var p=function(m){if(u.push.apply(u,m),c++,c===l)return i(u),u.length?f(new eoe(u,rH(u))):d(s)};a.length||(i(u),d(s)),a.forEach(function(g){var m=n[g];o.indexOf(g)!==-1?Jre(m,t,p):uBe(m,t,p)})});return h.catch(function(d){return d}),h}function fBe(n){return!!(n&&n.message!==void 0)}function pBe(n,e){for(var t=n,i=0;i<e.length;i++){if(t==null)return t;t=t[e[i]]}return t}function toe(n,e){return function(t){var i;return n.fullFields?i=pBe(e,n.fullFields):i=e[t.field||n.fullField],fBe(t)?(t.field=t.field||n.fullField,t.fieldValue=i,t):{message:typeof t=="function"?t():t,fieldValue:i,field:t.field||n.fullField}}}function ioe(n,e){if(e){for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];typeof i=="object"&&typeof n[t]=="object"?n[t]=Xv({},n[t],i):n[t]=i}}return n}var cve=function(e,t,i,s,r,o){e.required&&(!i.hasOwnProperty(e.field)||ro(t,o||e.type))&&s.push(Bc(r.messages.required,e.fullField))},gBe=function(e,t,i,s,r){(/^\s+$/.test(t)||t==="")&&s.push(Bc(r.messages.whitespace,e.fullField))},CA,mBe=function(){if(CA)return CA;var n="[a-fA-F\\d:]",e=function(C){return C&&C.includeBoundaries?"(?:(?<=\\s|^)(?="+n+")|(?<="+n+")(?=\\s|$))":""},t="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",i="[a-fA-F\\d]{1,4}",s=(` +(?: +(?:`+i+":){7}(?:"+i+`|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8 +(?:`+i+":){6}(?:"+t+"|:"+i+`|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4 +(?:`+i+":){5}(?::"+t+"|(?::"+i+`){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4 +(?:`+i+":){4}(?:(?::"+i+"){0,1}:"+t+"|(?::"+i+`){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4 +(?:`+i+":){3}(?:(?::"+i+"){0,2}:"+t+"|(?::"+i+`){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4 +(?:`+i+":){2}(?:(?::"+i+"){0,3}:"+t+"|(?::"+i+`){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4 +(?:`+i+":){1}(?:(?::"+i+"){0,4}:"+t+"|(?::"+i+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 +(?::(?:(?::`+i+"){0,5}:"+t+"|(?::"+i+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 +)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 +`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),r=new RegExp("(?:^"+t+"$)|(?:^"+s+"$)"),o=new RegExp("^"+t+"$"),a=new RegExp("^"+s+"$"),l=function(C){return C&&C.exact?r:new RegExp("(?:"+e(C)+t+e(C)+")|(?:"+e(C)+s+e(C)+")","g")};l.v4=function(w){return w&&w.exact?o:new RegExp(""+e(w)+t+e(w),"g")},l.v6=function(w){return w&&w.exact?a:new RegExp(""+e(w)+s+e(w),"g")};var c="(?:(?:[a-z]+:)?//)",u="(?:\\S+(?::\\S*)?@)?",h=l.v4().source,d=l.v6().source,f="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",p="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",g="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",m="(?::\\d{2,5})?",_='(?:[/?#][^\\s"]*)?',b="(?:"+c+"|www\\.)"+u+"(?:localhost|"+h+"|"+d+"|"+f+p+g+")"+m+_;return CA=new RegExp("(?:^"+b+"$)","i"),CA},noe={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},PE={integer:function(e){return PE.number(e)&&parseInt(e,10)===e},float:function(e){return PE.number(e)&&!PE.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime=="function"&&typeof e.getMonth=="function"&&typeof e.getYear=="function"&&!isNaN(e.getTime())},number:function(e){return isNaN(e)?!1:typeof e=="number"},object:function(e){return typeof e=="object"&&!PE.array(e)},method:function(e){return typeof e=="function"},email:function(e){return typeof e=="string"&&e.length<=320&&!!e.match(noe.email)},url:function(e){return typeof e=="string"&&e.length<=2048&&!!e.match(mBe())},hex:function(e){return typeof e=="string"&&!!e.match(noe.hex)}},_Be=function(e,t,i,s,r){if(e.required&&t===void 0){cve(e,t,i,s,r);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],a=e.type;o.indexOf(a)>-1?PE[a](t)||s.push(Bc(r.messages.types[a],e.fullField,e.type)):a&&typeof t!==e.type&&s.push(Bc(r.messages.types[a],e.fullField,e.type))},vBe=function(e,t,i,s,r){var o=typeof e.len=="number",a=typeof e.min=="number",l=typeof e.max=="number",c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=t,h=null,d=typeof t=="number",f=typeof t=="string",p=Array.isArray(t);if(d?h="number":f?h="string":p&&(h="array"),!h)return!1;p&&(u=t.length),f&&(u=t.replace(c,"_").length),o?u!==e.len&&s.push(Bc(r.messages[h].len,e.fullField,e.len)):a&&!l&&u<e.min?s.push(Bc(r.messages[h].min,e.fullField,e.min)):l&&!a&&u>e.max?s.push(Bc(r.messages[h].max,e.fullField,e.max)):a&&l&&(u<e.min||u>e.max)&&s.push(Bc(r.messages[h].range,e.fullField,e.min,e.max))},q0="enum",bBe=function(e,t,i,s,r){e[q0]=Array.isArray(e[q0])?e[q0]:[],e[q0].indexOf(t)===-1&&s.push(Bc(r.messages[q0],e.fullField,e[q0].join(", ")))},yBe=function(e,t,i,s,r){if(e.pattern){if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||s.push(Bc(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if(typeof e.pattern=="string"){var o=new RegExp(e.pattern);o.test(t)||s.push(Bc(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},rn={required:cve,whitespace:gBe,type:_Be,range:vBe,enum:bBe,pattern:yBe},wBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t,"string")&&!e.required)return i();rn.required(e,t,s,o,r,"string"),ro(t,"string")||(rn.type(e,t,s,o,r),rn.range(e,t,s,o,r),rn.pattern(e,t,s,o,r),e.whitespace===!0&&rn.whitespace(e,t,s,o,r))}i(o)},CBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&rn.type(e,t,s,o,r)}i(o)},SBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(t===""&&(t=void 0),ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&(rn.type(e,t,s,o,r),rn.range(e,t,s,o,r))}i(o)},xBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&rn.type(e,t,s,o,r)}i(o)},LBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),ro(t)||rn.type(e,t,s,o,r)}i(o)},EBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&(rn.type(e,t,s,o,r),rn.range(e,t,s,o,r))}i(o)},kBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&(rn.type(e,t,s,o,r),rn.range(e,t,s,o,r))}i(o)},IBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(t==null&&!e.required)return i();rn.required(e,t,s,o,r,"array"),t!=null&&(rn.type(e,t,s,o,r),rn.range(e,t,s,o,r))}i(o)},TBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&rn.type(e,t,s,o,r)}i(o)},DBe="enum",NBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r),t!==void 0&&rn[DBe](e,t,s,o,r)}i(o)},ABe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t,"string")&&!e.required)return i();rn.required(e,t,s,o,r),ro(t,"string")||rn.pattern(e,t,s,o,r)}i(o)},PBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t,"date")&&!e.required)return i();if(rn.required(e,t,s,o,r),!ro(t,"date")){var l;t instanceof Date?l=t:l=new Date(t),rn.type(e,l,s,o,r),l&&rn.range(e,l.getTime(),s,o,r)}}i(o)},RBe=function(e,t,i,s,r){var o=[],a=Array.isArray(t)?"array":typeof t;rn.required(e,t,s,o,r,a),i(o)},E9=function(e,t,i,s,r){var o=e.type,a=[],l=e.required||!e.required&&s.hasOwnProperty(e.field);if(l){if(ro(t,o)&&!e.required)return i();rn.required(e,t,s,a,r,o),ro(t,o)||rn.type(e,t,s,a,r)}i(a)},MBe=function(e,t,i,s,r){var o=[],a=e.required||!e.required&&s.hasOwnProperty(e.field);if(a){if(ro(t)&&!e.required)return i();rn.required(e,t,s,o,r)}i(o)},fk={string:wBe,method:CBe,number:SBe,boolean:xBe,regexp:LBe,integer:EBe,float:kBe,array:IBe,object:TBe,enum:NBe,pattern:ABe,date:PBe,url:E9,hex:E9,email:E9,required:RBe,any:MBe};function oH(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var aH=oH(),oN=function(){function n(t){this.rules=null,this._messages=aH,this.define(t)}var e=n.prototype;return e.define=function(i){var s=this;if(!i)throw new Error("Cannot configure a schema with no rules");if(typeof i!="object"||Array.isArray(i))throw new Error("Rules must be an object");this.rules={},Object.keys(i).forEach(function(r){var o=i[r];s.rules[r]=Array.isArray(o)?o:[o]})},e.messages=function(i){return i&&(this._messages=ioe(oH(),i)),this._messages},e.validate=function(i,s,r){var o=this;s===void 0&&(s={}),r===void 0&&(r=function(){});var a=i,l=s,c=r;if(typeof l=="function"&&(c=l,l={}),!this.rules||Object.keys(this.rules).length===0)return c&&c(null,a),Promise.resolve(a);function u(g){var m=[],_={};function b(C){if(Array.isArray(C)){var S;m=(S=m).concat.apply(S,C)}else m.push(C)}for(var w=0;w<g.length;w++)b(g[w]);m.length?(_=rH(m),c(m,_)):c(null,a)}if(l.messages){var h=this.messages();h===aH&&(h=oH()),ioe(h,l.messages),l.messages=h}else l.messages=this.messages();var d={},f=l.keys||Object.keys(this.rules);f.forEach(function(g){var m=o.rules[g],_=a[g];m.forEach(function(b){var w=b;typeof w.transform=="function"&&(a===i&&(a=Xv({},a)),_=a[g]=w.transform(_)),typeof w=="function"?w={validator:w}:w=Xv({},w),w.validator=o.getValidationMethod(w),w.validator&&(w.field=g,w.fullField=w.fullField||g,w.type=o.getType(w),d[g]=d[g]||[],d[g].push({rule:w,value:_,source:a,field:g}))})});var p={};return dBe(d,l,function(g,m){var _=g.rule,b=(_.type==="object"||_.type==="array")&&(typeof _.fields=="object"||typeof _.defaultField=="object");b=b&&(_.required||!_.required&&g.value),_.field=g.field;function w(x,k){return Xv({},k,{fullField:_.fullField+"."+x,fullFields:_.fullFields?[].concat(_.fullFields,[x]):[x]})}function C(x){x===void 0&&(x=[]);var k=Array.isArray(x)?x:[x];!l.suppressWarning&&k.length&&n.warning("async-validator:",k),k.length&&_.message!==void 0&&(k=[].concat(_.message));var L=k.map(toe(_,a));if(l.first&&L.length)return p[_.field]=1,m(L);if(!b)m(L);else{if(_.required&&!g.value)return _.message!==void 0?L=[].concat(_.message).map(toe(_,a)):l.error&&(L=[l.error(_,Bc(l.messages.required,_.field))]),m(L);var E={};_.defaultField&&Object.keys(g.value).map(function(T){E[T]=_.defaultField}),E=Xv({},E,g.rule.fields);var A={};Object.keys(E).forEach(function(T){var N=E[T],M=Array.isArray(N)?N:[N];A[T]=M.map(w.bind(null,T))});var I=new n(A);I.messages(l.messages),g.rule.options&&(g.rule.options.messages=l.messages,g.rule.options.error=l.error),I.validate(g.value,g.rule.options||l,function(T){var N=[];L&&L.length&&N.push.apply(N,L),T&&T.length&&N.push.apply(N,T),m(N.length?N:null)})}}var S;if(_.asyncValidator)S=_.asyncValidator(_,g.value,C,g.source,l);else if(_.validator){try{S=_.validator(_,g.value,C,g.source,l)}catch(x){console.error==null||console.error(x),l.suppressValidatorError||setTimeout(function(){throw x},0),C(x.message)}S===!0?C():S===!1?C(typeof _.message=="function"?_.message(_.fullField||_.field):_.message||(_.fullField||_.field)+" fails"):S instanceof Array?C(S):S instanceof Error&&C(S.message)}S&&S.then&&S.then(function(){return C()},function(x){return C(x)})},function(g){u(g)},a)},e.getType=function(i){if(i.type===void 0&&i.pattern instanceof RegExp&&(i.type="pattern"),typeof i.validator!="function"&&i.type&&!fk.hasOwnProperty(i.type))throw new Error(Bc("Unknown rule type %s",i.type));return i.type||"string"},e.getValidationMethod=function(i){if(typeof i.validator=="function")return i.validator;var s=Object.keys(i),r=s.indexOf("message");return r!==-1&&s.splice(r,1),s.length===1&&s[0]==="required"?fk.required:fk[this.getType(i)]||void 0},n}();oN.register=function(e,t){if(typeof t!="function")throw new Error("Cannot register a validator by type, validator is not a function");fk[e]=t};oN.warning=lBe;oN.messages=aH;oN.validators=fk;const OBe=["","error","validating","success"],FBe=cs({label:String,labelWidth:{type:[String,Number],default:""},labelPosition:{type:String,values:["left","right","top",""],default:""},prop:{type:Ti([String,Array])},required:{type:Boolean,default:void 0},rules:{type:Ti([Object,Array])},error:String,validateStatus:{type:String,values:OBe},for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:{type:String,values:h6}}),soe="ElLabelWrap";var BBe=Et({name:soe,props:{isAutoWidth:Boolean,updateAll:Boolean},setup(n,{slots:e}){const t=Si(Mx,void 0),i=Si(Ay);i||k_e(soe,"usage: <el-form-item><label-wrap /></el-form-item>");const s=qs("form"),r=je(),o=je(0),a=()=>{var u;if((u=r.value)!=null&&u.firstElementChild){const h=window.getComputedStyle(r.value.firstElementChild).width;return Math.ceil(Number.parseFloat(h))}else return 0},l=(u="update")=>{Hs(()=>{e.default&&n.isAutoWidth&&(u==="update"?o.value=a():u==="remove"&&(t==null||t.deregisterLabelWidth(o.value)))})},c=()=>l("update");return or(()=>{c()}),Fa(()=>{l("remove")}),X5(()=>c()),Pt(o,(u,h)=>{n.updateAll&&(t==null||t.registerLabelWidth(u,h))}),Gd(Ee(()=>{var u,h;return(h=(u=r.value)==null?void 0:u.firstElementChild)!=null?h:null}),c),()=>{var u,h;if(!e)return null;const{isAutoWidth:d}=n;if(d){const f=t==null?void 0:t.autoLabelWidth,p=i==null?void 0:i.hasLabel,g={};if(p&&f&&f!=="auto"){const m=Math.max(0,Number.parseInt(f,10)-o.value),b=(i.labelPosition||t.labelPosition)==="left"?"marginRight":"marginLeft";m&&(g[b]=`${m}px`)}return Kt("div",{ref:r,class:[s.be("item","label-wrap")],style:g},[(u=e.default)==null?void 0:u.call(e)])}else return Kt(ss,{ref:r},[(h=e.default)==null?void 0:h.call(e)])}}});const WBe=Et({name:"ElFormItem"}),VBe=Et({...WBe,props:FBe,setup(n,{expose:e}){const t=n,i=xY(),s=Si(Mx,void 0),r=Si(Ay,void 0),o=DS(void 0,{formItem:!1}),a=qs("form-item"),l=rN().value,c=je([]),u=je(""),h=kMe(u,100),d=je(""),f=je();let p,g=!1;const m=Ee(()=>t.labelPosition||(s==null?void 0:s.labelPosition)),_=Ee(()=>{if(m.value==="top")return{};const de=X1(t.labelWidth||(s==null?void 0:s.labelWidth)||"");return de?{width:de}:{}}),b=Ee(()=>{if(m.value==="top"||s!=null&&s.inline)return{};if(!t.label&&!t.labelWidth&&A)return{};const de=X1(t.labelWidth||(s==null?void 0:s.labelWidth)||"");return!t.label&&!i.label?{marginLeft:de}:{}}),w=Ee(()=>[a.b(),a.m(o.value),a.is("error",u.value==="error"),a.is("validating",u.value==="validating"),a.is("success",u.value==="success"),a.is("required",V.value||t.required),a.is("no-asterisk",s==null?void 0:s.hideRequiredAsterisk),(s==null?void 0:s.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[a.m("feedback")]:s==null?void 0:s.statusIcon,[a.m(`label-${m.value}`)]:m.value}]),C=Ee(()=>Bf(t.inlineMessage)?t.inlineMessage:(s==null?void 0:s.inlineMessage)||!1),S=Ee(()=>[a.e("error"),{[a.em("error","inline")]:C.value}]),x=Ee(()=>t.prop?on(t.prop)?t.prop:t.prop.join("."):""),k=Ee(()=>!!(t.label||i.label)),L=Ee(()=>t.for||(c.value.length===1?c.value[0]:void 0)),E=Ee(()=>!L.value&&k.value),A=!!r,I=Ee(()=>{const de=s==null?void 0:s.model;if(!(!de||!t.prop))return x9(de,t.prop).value}),T=Ee(()=>{const{required:de}=t,Le=[];t.rules&&Le.push(...Lh(t.rules));const Te=s==null?void 0:s.rules;if(Te&&t.prop){const ve=x9(Te,t.prop).value;ve&&Le.push(...Lh(ve))}if(de!==void 0){const ve=Le.map((Ke,Q)=>[Ke,Q]).filter(([Ke])=>Object.keys(Ke).includes("required"));if(ve.length>0)for(const[Ke,Q]of ve)Ke.required!==de&&(Le[Q]={...Ke,required:de});else Le.push({required:de})}return Le}),N=Ee(()=>T.value.length>0),M=de=>T.value.filter(Te=>!Te.trigger||!de?!0:Array.isArray(Te.trigger)?Te.trigger.includes(de):Te.trigger===de).map(({trigger:Te,...ve})=>ve),V=Ee(()=>T.value.some(de=>de.required)),W=Ee(()=>{var de;return h.value==="error"&&t.showMessage&&((de=s==null?void 0:s.showMessage)!=null?de:!0)}),B=Ee(()=>`${t.label||""}${(s==null?void 0:s.labelSuffix)||""}`),$=de=>{u.value=de},Y=de=>{var Le,Te;const{errors:ve,fields:Ke}=de;(!ve||!Ke)&&console.error(de),$("error"),d.value=ve?(Te=(Le=ve==null?void 0:ve[0])==null?void 0:Le.message)!=null?Te:`${t.prop} is required`:"",s==null||s.emit("validate",t.prop,!1,d.value)},le=()=>{$("success"),s==null||s.emit("validate",t.prop,!0,"")},re=async de=>{const Le=x.value;return new oN({[Le]:de}).validate({[Le]:I.value},{firstFields:!0}).then(()=>(le(),!0)).catch(ve=>(Y(ve),Promise.reject(ve)))},z=async(de,Le)=>{if(g||!t.prop)return!1;const Te=Wt(Le);if(!N.value)return Le==null||Le(!1),!1;const ve=M(de);return ve.length===0?(Le==null||Le(!0),!0):($("validating"),re(ve).then(()=>(Le==null||Le(!0),!0)).catch(Ke=>{const{fields:Q}=Ke;return Le==null||Le(!1,Q),Te?!1:Promise.reject(Q)}))},K=()=>{$(""),d.value="",g=!1},Z=async()=>{const de=s==null?void 0:s.model;if(!de||!t.prop)return;const Le=x9(de,t.prop);g=!0,Le.value=Tre(p),await Hs(),K(),g=!1},j=de=>{c.value.includes(de)||c.value.push(de)},ce=de=>{c.value=c.value.filter(Le=>Le!==de)};Pt(()=>t.error,de=>{d.value=de||"",$(de?"error":"")},{immediate:!0}),Pt(()=>t.validateStatus,de=>$(de||""));const ie=ia({...Yg(t),$el:f,size:o,validateState:u,labelId:l,inputIds:c,isGroup:E,hasLabel:k,fieldValue:I,addInputId:j,removeInputId:ce,resetField:Z,clearValidate:K,validate:z});return To(Ay,ie),or(()=>{t.prop&&(s==null||s.addField(ie),p=Tre(I.value))}),Fa(()=>{s==null||s.removeField(ie)}),e({size:o,validateMessage:d,validateState:u,validate:z,clearValidate:K,resetField:Z}),(de,Le)=>{var Te;return Qe(),St("div",{ref_key:"formItemRef",ref:f,class:pt(ae(w)),role:ae(E)?"group":void 0,"aria-labelledby":ae(E)?ae(l):void 0},[Kt(ae(BBe),{"is-auto-width":ae(_).width==="auto","update-all":((Te=ae(s))==null?void 0:Te.labelWidth)==="auto"},{default:ei(()=>[ae(k)?(Qe(),Mi(_g(ae(L)?"label":"div"),{key:0,id:ae(l),for:ae(L),class:pt(ae(a).e("label")),style:Hr(ae(_))},{default:ei(()=>[Ii(de.$slots,"label",{label:ae(B)},()=>[kh(Mn(ae(B)),1)])]),_:3},8,["id","for","class","style"])):xi("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),vt("div",{class:pt(ae(a).e("content")),style:Hr(ae(b))},[Ii(de.$slots,"default"),Kt(cMe,{name:`${ae(a).namespace.value}-zoom-in-top`},{default:ei(()=>[ae(W)?Ii(de.$slots,"error",{key:0,error:d.value},()=>[vt("div",{class:pt(ae(S))},Mn(d.value),3)]):xi("v-if",!0)]),_:3},8,["name"])],6)],10,["role","aria-labelledby"])}}});var uve=us(VBe,[["__file","form-item.vue"]]);const HBe=Gu(nBe,{FormItem:uve}),$Be=iN(uve),K0=4,zBe={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},UBe=({move:n,size:e,bar:t})=>({[t.size]:e,transform:`translate${t.axis}(${n}%)`}),eZ=Symbol("scrollbarContextKey"),jBe=cs({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),qBe="Thumb",KBe=Et({__name:"thumb",props:jBe,setup(n){const e=n,t=Si(eZ),i=qs("scrollbar");t||k_e(qBe,"can not inject scrollbar context");const s=je(),r=je(),o=je({}),a=je(!1);let l=!1,c=!1,u=no?document.onselectstart:null;const h=Ee(()=>zBe[e.vertical?"vertical":"horizontal"]),d=Ee(()=>UBe({size:e.size,move:e.move,bar:h.value})),f=Ee(()=>s.value[h.value.offset]**2/t.wrapElement[h.value.scrollSize]/e.ratio/r.value[h.value.offset]),p=x=>{var k;if(x.stopPropagation(),x.ctrlKey||[1,2].includes(x.button))return;(k=window.getSelection())==null||k.removeAllRanges(),m(x);const L=x.currentTarget;L&&(o.value[h.value.axis]=L[h.value.offset]-(x[h.value.client]-L.getBoundingClientRect()[h.value.direction]))},g=x=>{if(!r.value||!s.value||!t.wrapElement)return;const k=Math.abs(x.target.getBoundingClientRect()[h.value.direction]-x[h.value.client]),L=r.value[h.value.offset]/2,E=(k-L)*100*f.value/s.value[h.value.offset];t.wrapElement[h.value.scroll]=E*t.wrapElement[h.value.scrollSize]/100},m=x=>{x.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",_),document.addEventListener("mouseup",b),u=document.onselectstart,document.onselectstart=()=>!1},_=x=>{if(!s.value||!r.value||l===!1)return;const k=o.value[h.value.axis];if(!k)return;const L=(s.value.getBoundingClientRect()[h.value.direction]-x[h.value.client])*-1,E=r.value[h.value.offset]-k,A=(L-E)*100*f.value/s.value[h.value.offset];t.wrapElement[h.value.scroll]=A*t.wrapElement[h.value.scrollSize]/100},b=()=>{l=!1,o.value[h.value.axis]=0,document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",b),S(),c&&(a.value=!1)},w=()=>{c=!1,a.value=!!e.size},C=()=>{c=!0,a.value=l};Fa(()=>{S(),document.removeEventListener("mouseup",b)});const S=()=>{document.onselectstart!==u&&(document.onselectstart=u)};return wf(Xp(t,"scrollbarElement"),"mousemove",w),wf(Xp(t,"scrollbarElement"),"mouseleave",C),(x,k)=>(Qe(),Mi(m0,{name:ae(i).b("fade"),persisted:""},{default:ei(()=>[$r(vt("div",{ref_key:"instance",ref:s,class:pt([ae(i).e("bar"),ae(i).is(ae(h).key)]),onMousedown:g},[vt("div",{ref_key:"thumb",ref:r,class:pt(ae(i).e("thumb")),style:Hr(ae(d)),onMousedown:p},null,38)],34),[[rd,x.always||a.value]])]),_:1},8,["name"]))}});var roe=us(KBe,[["__file","thumb.vue"]]);const GBe=cs({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),XBe=Et({__name:"bar",props:GBe,setup(n,{expose:e}){const t=n,i=Si(eZ),s=je(0),r=je(0),o=je(""),a=je(""),l=je(1),c=je(1);return e({handleScroll:d=>{if(d){const f=d.offsetHeight-K0,p=d.offsetWidth-K0;r.value=d.scrollTop*100/f*l.value,s.value=d.scrollLeft*100/p*c.value}},update:()=>{const d=i==null?void 0:i.wrapElement;if(!d)return;const f=d.offsetHeight-K0,p=d.offsetWidth-K0,g=f**2/d.scrollHeight,m=p**2/d.scrollWidth,_=Math.max(g,t.minSize),b=Math.max(m,t.minSize);l.value=g/(f-g)/(_/(f-_)),c.value=m/(p-m)/(b/(p-b)),a.value=_+K0<f?`${_}px`:"",o.value=b+K0<p?`${b}px`:""}}),(d,f)=>(Qe(),St(ss,null,[Kt(roe,{move:s.value,ratio:c.value,size:o.value,always:d.always},null,8,["move","ratio","size","always"]),Kt(roe,{move:r.value,ratio:l.value,size:a.value,vertical:"",always:d.always},null,8,["move","ratio","size","always"])],64))}});var YBe=us(XBe,[["__file","bar.vue"]]);const ZBe=cs({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Ti([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,...Rx(["ariaLabel","ariaOrientation"])}),QBe={scroll:({scrollTop:n,scrollLeft:e})=>[n,e].every(xo)},JBe="ElScrollbar",e8e=Et({name:JBe}),t8e=Et({...e8e,props:ZBe,emits:QBe,setup(n,{expose:e,emit:t}){const i=n,s=qs("scrollbar");let r,o,a=0,l=0;const c=je(),u=je(),h=je(),d=je(),f=Ee(()=>{const S={};return i.height&&(S.height=X1(i.height)),i.maxHeight&&(S.maxHeight=X1(i.maxHeight)),[i.wrapStyle,S]}),p=Ee(()=>[i.wrapClass,s.e("wrap"),{[s.em("wrap","hidden-default")]:!i.native}]),g=Ee(()=>[s.e("view"),i.viewClass]),m=()=>{var S;u.value&&((S=d.value)==null||S.handleScroll(u.value),a=u.value.scrollTop,l=u.value.scrollLeft,t("scroll",{scrollTop:u.value.scrollTop,scrollLeft:u.value.scrollLeft}))};function _(S,x){zi(S)?u.value.scrollTo(S):xo(S)&&xo(x)&&u.value.scrollTo(S,x)}const b=S=>{xo(S)&&(u.value.scrollTop=S)},w=S=>{xo(S)&&(u.value.scrollLeft=S)},C=()=>{var S;(S=d.value)==null||S.update()};return Pt(()=>i.noresize,S=>{S?(r==null||r(),o==null||o()):({stop:r}=Gd(h,C),o=wf("resize",C))},{immediate:!0}),Pt(()=>[i.maxHeight,i.height],()=>{i.native||Hs(()=>{var S;C(),u.value&&((S=d.value)==null||S.handleScroll(u.value))})}),To(eZ,ia({scrollbarElement:c,wrapElement:u})),h1e(()=>{u.value.scrollTop=a,u.value.scrollLeft=l}),or(()=>{i.native||Hs(()=>{C()})}),X5(()=>C()),e({wrapRef:u,update:C,scrollTo:_,setScrollTop:b,setScrollLeft:w,handleScroll:m}),(S,x)=>(Qe(),St("div",{ref_key:"scrollbarRef",ref:c,class:pt(ae(s).b())},[vt("div",{ref_key:"wrapRef",ref:u,class:pt(ae(p)),style:Hr(ae(f)),onScroll:m},[(Qe(),Mi(_g(S.tag),{id:S.id,ref_key:"resizeRef",ref:h,class:pt(ae(g)),style:Hr(S.viewStyle),role:S.role,"aria-label":S.ariaLabel,"aria-orientation":S.ariaOrientation},{default:ei(()=>[Ii(S.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),S.native?xi("v-if",!0):(Qe(),Mi(YBe,{key:0,ref_key:"barRef",ref:d,always:S.always,"min-size":S.minSize},null,8,["always","min-size"]))],2))}});var i8e=us(t8e,[["__file","scrollbar.vue"]]);const n8e=Gu(i8e),tZ=Symbol("popper"),hve=Symbol("popperContent"),s8e=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],dve=cs({role:{type:String,values:s8e,default:"tooltip"}}),r8e=Et({name:"ElPopper",inheritAttrs:!1}),o8e=Et({...r8e,props:dve,setup(n,{expose:e}){const t=n,i=je(),s=je(),r=je(),o=je(),a=Ee(()=>t.role),l={triggerRef:i,popperInstanceRef:s,contentRef:r,referenceRef:o,role:a};return e(l),To(tZ,l),(c,u)=>Ii(c.$slots,"default")}});var a8e=us(o8e,[["__file","popper.vue"]]);const fve=cs({arrowOffset:{type:Number,default:5}}),l8e=Et({name:"ElPopperArrow",inheritAttrs:!1}),c8e=Et({...l8e,props:fve,setup(n,{expose:e}){const t=n,i=qs("popper"),{arrowOffset:s,arrowRef:r,arrowStyle:o}=Si(hve,void 0);return Pt(()=>t.arrowOffset,a=>{s.value=a}),Fa(()=>{r.value=void 0}),e({arrowRef:r}),(a,l)=>(Qe(),St("span",{ref_key:"arrowRef",ref:r,class:pt(ae(i).e("arrow")),style:Hr(ae(o)),"data-popper-arrow":""},null,6))}});var u8e=us(c8e,[["__file","arrow.vue"]]);const h8e="ElOnlyChild",d8e=Et({name:h8e,setup(n,{slots:e,attrs:t}){var i;const s=Si(eve),r=R6e((i=s==null?void 0:s.setForwardRef)!=null?i:hl);return()=>{var o;const a=(o=e.default)==null?void 0:o.call(e,t);if(!a||a.length>1)return null;const l=pve(a);return l?$r(Tg(l,t),[[r]]):null}}});function pve(n){if(!n)return null;const e=n;for(const t of e){if(zi(t))switch(t.type){case ka:continue;case QD:case"svg":return ooe(t);case ss:return pve(t.children);default:return t}return ooe(t)}return null}function ooe(n){const e=qs("only-child");return Kt("span",{class:e.e("content")},[n])}const gve=cs({virtualRef:{type:Ti(Object)},virtualTriggering:Boolean,onMouseenter:{type:Ti(Function)},onMouseleave:{type:Ti(Function)},onClick:{type:Ti(Function)},onKeydown:{type:Ti(Function)},onFocus:{type:Ti(Function)},onBlur:{type:Ti(Function)},onContextmenu:{type:Ti(Function)},id:String,open:Boolean}),f8e=Et({name:"ElPopperTrigger",inheritAttrs:!1}),p8e=Et({...f8e,props:gve,setup(n,{expose:e}){const t=n,{role:i,triggerRef:s}=Si(tZ,void 0);P6e(s);const r=Ee(()=>a.value?t.id:void 0),o=Ee(()=>{if(i&&i.value==="tooltip")return t.open&&t.id?t.id:void 0}),a=Ee(()=>{if(i&&i.value!=="tooltip")return i.value}),l=Ee(()=>a.value?`${t.open}`:void 0);let c;const u=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return or(()=>{Pt(()=>t.virtualRef,h=>{h&&(s.value=Yp(h))},{immediate:!0}),Pt(s,(h,d)=>{c==null||c(),c=void 0,ub(h)&&(u.forEach(f=>{var p;const g=t[f];g&&(h.addEventListener(f.slice(2).toLowerCase(),g),(p=d==null?void 0:d.removeEventListener)==null||p.call(d,f.slice(2).toLowerCase(),g))}),c=Pt([r,o,a,l],f=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((p,g)=>{c6(f[g])?h.removeAttribute(p):h.setAttribute(p,f[g])})},{immediate:!0})),ub(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(f=>d.removeAttribute(f))},{immediate:!0})}),Fa(()=>{if(c==null||c(),c=void 0,s.value&&ub(s.value)){const h=s.value;u.forEach(d=>{const f=t[d];f&&h.removeEventListener(d.slice(2).toLowerCase(),f)}),s.value=void 0}}),e({triggerRef:s}),(h,d)=>h.virtualTriggering?xi("v-if",!0):(Qe(),Mi(ae(d8e),Ax({key:0},h.$attrs,{"aria-controls":ae(r),"aria-describedby":ae(o),"aria-expanded":ae(l),"aria-haspopup":ae(a)}),{default:ei(()=>[Ii(h.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var g8e=us(p8e,[["__file","trigger.vue"]]);const k9="focus-trap.focus-after-trapped",I9="focus-trap.focus-after-released",m8e="focus-trap.focusout-prevented",aoe={cancelable:!0,bubbles:!1},_8e={cancelable:!0,bubbles:!1},loe="focusAfterTrapped",coe="focusAfterReleased",v8e=Symbol("elFocusTrap"),iZ=je(),g6=je(0),nZ=je(0);let SA=0;const mve=n=>{const e=[],t=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const s=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||s?NodeFilter.FILTER_SKIP:i.tabIndex>=0||i===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)e.push(t.currentNode);return e},uoe=(n,e)=>{for(const t of n)if(!b8e(t,e))return t},b8e=(n,e)=>{if(getComputedStyle(n).visibility==="hidden")return!0;for(;n;){if(e&&n===e)return!1;if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1},y8e=n=>{const e=mve(n),t=uoe(e,n),i=uoe(e.reverse(),n);return[t,i]},w8e=n=>n instanceof HTMLInputElement&&"select"in n,Cm=(n,e)=>{if(n&&n.focus){const t=document.activeElement;n.focus({preventScroll:!0}),nZ.value=window.performance.now(),n!==t&&w8e(n)&&e&&n.select()}};function hoe(n,e){const t=[...n],i=n.indexOf(e);return i!==-1&&t.splice(i,1),t}const C8e=()=>{let n=[];return{push:i=>{const s=n[0];s&&i!==s&&s.pause(),n=hoe(n,i),n.unshift(i)},remove:i=>{var s,r;n=hoe(n,i),(r=(s=n[0])==null?void 0:s.resume)==null||r.call(s)}}},S8e=(n,e=!1)=>{const t=document.activeElement;for(const i of n)if(Cm(i,e),document.activeElement!==t)return},doe=C8e(),x8e=()=>g6.value>nZ.value,xA=()=>{iZ.value="pointer",g6.value=window.performance.now()},foe=()=>{iZ.value="keyboard",g6.value=window.performance.now()},L8e=()=>(or(()=>{SA===0&&(document.addEventListener("mousedown",xA),document.addEventListener("touchstart",xA),document.addEventListener("keydown",foe)),SA++}),Fa(()=>{SA--,SA<=0&&(document.removeEventListener("mousedown",xA),document.removeEventListener("touchstart",xA),document.removeEventListener("keydown",foe))}),{focusReason:iZ,lastUserFocusTimestamp:g6,lastAutomatedFocusTimestamp:nZ}),LA=n=>new CustomEvent(m8e,{..._8e,detail:n}),E8e=Et({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[loe,coe,"focusin","focusout","focusout-prevented","release-requested"],setup(n,{emit:e}){const t=je();let i,s;const{focusReason:r}=L8e();I6e(p=>{n.trapped&&!o.paused&&e("release-requested",p)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},a=p=>{if(!n.loop&&!n.trapped||o.paused)return;const{key:g,altKey:m,ctrlKey:_,metaKey:b,currentTarget:w,shiftKey:C}=p,{loop:S}=n,x=g===SS.tab&&!m&&!_&&!b,k=document.activeElement;if(x&&k){const L=w,[E,A]=y8e(L);if(E&&A){if(!C&&k===A){const T=LA({focusReason:r.value});e("focusout-prevented",T),T.defaultPrevented||(p.preventDefault(),S&&Cm(E,!0))}else if(C&&[E,L].includes(k)){const T=LA({focusReason:r.value});e("focusout-prevented",T),T.defaultPrevented||(p.preventDefault(),S&&Cm(A,!0))}}else if(k===L){const T=LA({focusReason:r.value});e("focusout-prevented",T),T.defaultPrevented||p.preventDefault()}}};To(v8e,{focusTrapRef:t,onKeydown:a}),Pt(()=>n.focusTrapEl,p=>{p&&(t.value=p)},{immediate:!0}),Pt([t],([p],[g])=>{p&&(p.addEventListener("keydown",a),p.addEventListener("focusin",u),p.addEventListener("focusout",h)),g&&(g.removeEventListener("keydown",a),g.removeEventListener("focusin",u),g.removeEventListener("focusout",h))});const l=p=>{e(loe,p)},c=p=>e(coe,p),u=p=>{const g=ae(t);if(!g)return;const m=p.target,_=p.relatedTarget,b=m&&g.contains(m);n.trapped||_&&g.contains(_)||(i=_),b&&e("focusin",p),!o.paused&&n.trapped&&(b?s=m:Cm(s,!0))},h=p=>{const g=ae(t);if(!(o.paused||!g))if(n.trapped){const m=p.relatedTarget;!c6(m)&&!g.contains(m)&&setTimeout(()=>{if(!o.paused&&n.trapped){const _=LA({focusReason:r.value});e("focusout-prevented",_),_.defaultPrevented||Cm(s,!0)}},0)}else{const m=p.target;m&&g.contains(m)||e("focusout",p)}};async function d(){await Hs();const p=ae(t);if(p){doe.push(o);const g=p.contains(document.activeElement)?i:document.activeElement;if(i=g,!p.contains(g)){const _=new Event(k9,aoe);p.addEventListener(k9,l),p.dispatchEvent(_),_.defaultPrevented||Hs(()=>{let b=n.focusStartEl;on(b)||(Cm(b),document.activeElement!==b&&(b="first")),b==="first"&&S8e(mve(p),!0),(document.activeElement===g||b==="container")&&Cm(p)})}}}function f(){const p=ae(t);if(p){p.removeEventListener(k9,l);const g=new CustomEvent(I9,{...aoe,detail:{focusReason:r.value}});p.addEventListener(I9,c),p.dispatchEvent(g),!g.defaultPrevented&&(r.value=="keyboard"||!x8e()||p.contains(document.activeElement))&&Cm(i??document.body),p.removeEventListener(I9,c),doe.remove(o)}}return or(()=>{n.trapped&&d(),Pt(()=>n.trapped,p=>{p?d():f()})}),Fa(()=>{n.trapped&&f(),t.value&&(t.value.removeEventListener("keydown",a),t.value.removeEventListener("focusin",u),t.value.removeEventListener("focusout",h),t.value=void 0)}),{onKeydown:a}}});function k8e(n,e,t,i,s,r){return Ii(n.$slots,"default",{handleKeydown:n.onKeydown})}var I8e=us(E8e,[["render",k8e],["__file","focus-trap.vue"]]);const T8e=["fixed","absolute"],D8e=cs({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ti(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:d6,default:"bottom"},popperOptions:{type:Ti(Object),default:()=>({})},strategy:{type:String,values:T8e,default:"absolute"}}),_ve=cs({...D8e,id:String,style:{type:Ti([String,Array,Object])},className:{type:Ti([String,Array,Object])},effect:{type:Ti(String),default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ti([String,Array,Object])},popperStyle:{type:Ti([String,Array,Object])},referenceEl:{type:Ti(Object)},triggerTargetEl:{type:Ti(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Rx(["ariaLabel"])}),N8e={mouseenter:n=>n instanceof MouseEvent,mouseleave:n=>n instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},A8e=(n,e=[])=>{const{placement:t,strategy:i,popperOptions:s}=n,r={placement:t,strategy:i,...s,modifiers:[...R8e(n),...e]};return M8e(r,s==null?void 0:s.modifiers),r},P8e=n=>{if(no)return Yp(n)};function R8e(n){const{offset:e,gpuAcceleration:t,fallbackPlacements:i}=n;return[{name:"offset",options:{offset:[0,e??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:i}},{name:"computeStyles",options:{gpuAcceleration:t}}]}function M8e(n,e){e&&(n.modifiers=[...n.modifiers,...e??[]])}const O8e=0,F8e=n=>{const{popperInstanceRef:e,contentRef:t,triggerRef:i,role:s}=Si(tZ,void 0),r=je(),o=je(),a=Ee(()=>({name:"eventListeners",enabled:!!n.visible})),l=Ee(()=>{var _;const b=ae(r),w=(_=ae(o))!=null?_:O8e;return{name:"arrow",enabled:!z3e(b),options:{element:b,padding:w}}}),c=Ee(()=>({onFirstUpdate:()=>{p()},...A8e(n,[ae(l),ae(a)])})),u=Ee(()=>P8e(n.referenceEl)||ae(i)),{attributes:h,state:d,styles:f,update:p,forceUpdate:g,instanceRef:m}=L6e(u,t,c);return Pt(m,_=>e.value=_),or(()=>{Pt(()=>{var _;return(_=ae(u))==null?void 0:_.getBoundingClientRect()},()=>{p()})}),{attributes:h,arrowRef:r,contentRef:t,instanceRef:m,state:d,styles:f,role:s,forceUpdate:g,update:p}},B8e=(n,{attributes:e,styles:t,role:i})=>{const{nextZIndex:s}=nve(),r=qs("popper"),o=Ee(()=>ae(e).popper),a=je(xo(n.zIndex)?n.zIndex:s()),l=Ee(()=>[r.b(),r.is("pure",n.pure),r.is(n.effect),n.popperClass]),c=Ee(()=>[{zIndex:ae(a)},ae(t).popper,n.popperStyle||{}]),u=Ee(()=>i.value==="dialog"?"false":void 0),h=Ee(()=>ae(t).arrow||{});return{ariaModal:u,arrowStyle:h,contentAttrs:o,contentClass:l,contentStyle:c,contentZIndex:a,updateZIndex:()=>{a.value=xo(n.zIndex)?n.zIndex:s()}}},W8e=(n,e)=>{const t=je(!1),i=je();return{focusStartRef:i,trapped:t,onFocusAfterReleased:c=>{var u;((u=c.detail)==null?void 0:u.focusReason)!=="pointer"&&(i.value="first",e("blur"))},onFocusAfterTrapped:()=>{e("focus")},onFocusInTrap:c=>{n.visible&&!t.value&&(c.target&&(i.value=c.target),t.value=!0)},onFocusoutPrevented:c=>{n.trapping||(c.detail.focusReason==="pointer"&&c.preventDefault(),t.value=!1)},onReleaseRequested:()=>{t.value=!1,e("close")}}},V8e=Et({name:"ElPopperContent"}),H8e=Et({...V8e,props:_ve,emits:N8e,setup(n,{expose:e,emit:t}){const i=n,{focusStartRef:s,trapped:r,onFocusAfterReleased:o,onFocusAfterTrapped:a,onFocusInTrap:l,onFocusoutPrevented:c,onReleaseRequested:u}=W8e(i,t),{attributes:h,arrowRef:d,contentRef:f,styles:p,instanceRef:g,role:m,update:_}=F8e(i),{ariaModal:b,arrowStyle:w,contentAttrs:C,contentClass:S,contentStyle:x,updateZIndex:k}=B8e(i,{styles:p,attributes:h,role:m}),L=Si(Ay,void 0),E=je();To(hve,{arrowStyle:w,arrowRef:d,arrowOffset:E}),L&&To(Ay,{...L,addInputId:hl,removeInputId:hl});let A;const I=(N=!0)=>{_(),N&&k()},T=()=>{I(!1),i.visible&&i.focusOnShow?r.value=!0:i.visible===!1&&(r.value=!1)};return or(()=>{Pt(()=>i.triggerTargetEl,(N,M)=>{A==null||A(),A=void 0;const V=ae(N||f.value),W=ae(M||f.value);ub(V)&&(A=Pt([m,()=>i.ariaLabel,b,()=>i.id],B=>{["role","aria-label","aria-modal","id"].forEach(($,Y)=>{c6(B[Y])?V.removeAttribute($):V.setAttribute($,B[Y])})},{immediate:!0})),W!==V&&ub(W)&&["role","aria-label","aria-modal","id"].forEach(B=>{W.removeAttribute(B)})},{immediate:!0}),Pt(()=>i.visible,T,{immediate:!0})}),Fa(()=>{A==null||A(),A=void 0}),e({popperContentRef:f,popperInstanceRef:g,updatePopper:I,contentStyle:x}),(N,M)=>(Qe(),St("div",Ax({ref_key:"contentRef",ref:f},ae(C),{style:ae(x),class:ae(S),tabindex:"-1",onMouseenter:V=>N.$emit("mouseenter",V),onMouseleave:V=>N.$emit("mouseleave",V)}),[Kt(ae(I8e),{trapped:ae(r),"trap-on-focus-in":!0,"focus-trap-el":ae(f),"focus-start-el":ae(s),onFocusAfterTrapped:ae(a),onFocusAfterReleased:ae(o),onFocusin:ae(l),onFocusoutPrevented:ae(c),onReleaseRequested:ae(u)},{default:ei(()=>[Ii(N.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16,["onMouseenter","onMouseleave"]))}});var $8e=us(H8e,[["__file","content.vue"]]);const z8e=Gu(a8e),sZ=Symbol("elTooltip"),Ic=cs({...N6e,..._ve,appendTo:{type:Ti([String,Object])},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Ti(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Rx(["ariaLabel"])}),$I=cs({...gve,disabled:Boolean,trigger:{type:Ti([String,Array]),default:"hover"},triggerKeys:{type:Ti(Array),default:()=>[SS.enter,SS.space]}}),{useModelToggleProps:U8e,useModelToggleEmits:j8e,useModelToggle:q8e}=W_e("visible"),K8e=cs({...dve,...U8e,...Ic,...$I,...fve,showArrow:{type:Boolean,default:!0}}),G8e=[...j8e,"before-show","before-hide","show","hide","open","close"],X8e=(n,e)=>Dt(n)?n.includes(e):n===e,G0=(n,e,t)=>i=>{X8e(ae(n),e)&&t(i)},Y8e=Et({name:"ElTooltipTrigger"}),Z8e=Et({...Y8e,props:$I,setup(n,{expose:e}){const t=n,i=qs("tooltip"),{controlled:s,id:r,open:o,onOpen:a,onClose:l,onToggle:c}=Si(sZ,void 0),u=je(null),h=()=>{if(ae(s)||t.disabled)return!0},d=Xp(t,"trigger"),f=xp(h,G0(d,"hover",a)),p=xp(h,G0(d,"hover",l)),g=xp(h,G0(d,"click",C=>{C.button===0&&c(C)})),m=xp(h,G0(d,"focus",a)),_=xp(h,G0(d,"focus",l)),b=xp(h,G0(d,"contextmenu",C=>{C.preventDefault(),c(C)})),w=xp(h,C=>{const{code:S}=C;t.triggerKeys.includes(S)&&(C.preventDefault(),c(C))});return e({triggerRef:u}),(C,S)=>(Qe(),Mi(ae(g8e),{id:ae(r),"virtual-ref":C.virtualRef,open:ae(o),"virtual-triggering":C.virtualTriggering,class:pt(ae(i).e("trigger")),onBlur:ae(_),onClick:ae(g),onContextmenu:ae(b),onFocus:ae(m),onMouseenter:ae(f),onMouseleave:ae(p),onKeydown:ae(w)},{default:ei(()=>[Ii(C.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var Q8e=us(Z8e,[["__file","trigger.vue"]]);const J8e=cs({to:{type:Ti([String,Object]),required:!0},disabled:Boolean}),e9e=Et({__name:"teleport",props:J8e,setup(n){return(e,t)=>e.disabled?Ii(e.$slots,"default",{key:0}):(Qe(),Mi(HPe,{key:1,to:e.to},[Ii(e.$slots,"default")],8,["to"]))}});var t9e=us(e9e,[["__file","teleport.vue"]]);const i9e=Gu(t9e),n9e=Et({name:"ElTooltipContent",inheritAttrs:!1}),s9e=Et({...n9e,props:Ic,setup(n,{expose:e}){const t=n,{selector:i}=J_e(),s=qs("tooltip"),r=je(null);let o;const{controlled:a,id:l,open:c,trigger:u,onClose:h,onOpen:d,onShow:f,onHide:p,onBeforeShow:g,onBeforeHide:m}=Si(sZ,void 0),_=Ee(()=>t.transition||`${s.namespace.value}-fade-in-linear`),b=Ee(()=>t.persistent);Fa(()=>{o==null||o()});const w=Ee(()=>ae(b)?!0:ae(c)),C=Ee(()=>t.disabled?!1:ae(c)),S=Ee(()=>t.appendTo||i.value),x=Ee(()=>{var W;return(W=t.style)!=null?W:{}}),k=Ee(()=>!ae(c)),L=()=>{p()},E=()=>{if(ae(a))return!0},A=xp(E,()=>{t.enterable&&ae(u)==="hover"&&d()}),I=xp(E,()=>{ae(u)==="hover"&&h()}),T=()=>{var W,B;(B=(W=r.value)==null?void 0:W.updatePopper)==null||B.call(W),g==null||g()},N=()=>{m==null||m()},M=()=>{f(),o=DMe(Ee(()=>{var W;return(W=r.value)==null?void 0:W.popperContentRef}),()=>{if(ae(a))return;ae(u)!=="hover"&&h()})},V=()=>{t.virtualTriggering||h()};return Pt(()=>ae(c),W=>{W||o==null||o()},{flush:"post"}),Pt(()=>t.content,()=>{var W,B;(B=(W=r.value)==null?void 0:W.updatePopper)==null||B.call(W)}),e({contentRef:r}),(W,B)=>(Qe(),Mi(ae(i9e),{disabled:!W.teleported,to:ae(S)},{default:ei(()=>[Kt(m0,{name:ae(_),onAfterLeave:L,onBeforeEnter:T,onAfterEnter:M,onBeforeLeave:N},{default:ei(()=>[ae(w)?$r((Qe(),Mi(ae($8e),Ax({key:0,id:ae(l),ref_key:"contentRef",ref:r},W.$attrs,{"aria-label":W.ariaLabel,"aria-hidden":ae(k),"boundaries-padding":W.boundariesPadding,"fallback-placements":W.fallbackPlacements,"gpu-acceleration":W.gpuAcceleration,offset:W.offset,placement:W.placement,"popper-options":W.popperOptions,strategy:W.strategy,effect:W.effect,enterable:W.enterable,pure:W.pure,"popper-class":W.popperClass,"popper-style":[W.popperStyle,ae(x)],"reference-el":W.referenceEl,"trigger-target-el":W.triggerTargetEl,visible:ae(C),"z-index":W.zIndex,onMouseenter:ae(A),onMouseleave:ae(I),onBlur:V,onClose:ae(h)}),{default:ei(()=>[Ii(W.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[rd,ae(C)]]):xi("v-if",!0)]),_:3},8,["name"])]),_:3},8,["disabled","to"]))}});var r9e=us(s9e,[["__file","content.vue"]]);const o9e=Et({name:"ElTooltip"}),a9e=Et({...o9e,props:K8e,emits:G8e,setup(n,{expose:e,emit:t}){const i=n;D6e();const s=rN(),r=je(),o=je(),a=()=>{var _;const b=ae(r);b&&((_=b.popperInstanceRef)==null||_.update())},l=je(!1),c=je(),{show:u,hide:h,hasUpdateHandler:d}=q8e({indicator:l,toggleReason:c}),{onOpen:f,onClose:p}=A6e({showAfter:Xp(i,"showAfter"),hideAfter:Xp(i,"hideAfter"),autoClose:Xp(i,"autoClose"),open:u,close:h}),g=Ee(()=>Bf(i.visible)&&!d.value);To(sZ,{controlled:g,id:s,open:Ig(l),trigger:Xp(i,"trigger"),onOpen:_=>{f(_)},onClose:_=>{p(_)},onToggle:_=>{ae(l)?p(_):f(_)},onShow:()=>{t("show",c.value)},onHide:()=>{t("hide",c.value)},onBeforeShow:()=>{t("before-show",c.value)},onBeforeHide:()=>{t("before-hide",c.value)},updatePopper:a}),Pt(()=>i.disabled,_=>{_&&l.value&&(l.value=!1)});const m=_=>{var b,w;const C=(w=(b=o.value)==null?void 0:b.contentRef)==null?void 0:w.popperContentRef,S=(_==null?void 0:_.relatedTarget)||document.activeElement;return C&&C.contains(S)};return d1e(()=>l.value&&h()),e({popperRef:r,contentRef:o,isFocusInsideContent:m,updatePopper:a,onOpen:f,onClose:p,hide:h}),(_,b)=>(Qe(),Mi(ae(z8e),{ref_key:"popperRef",ref:r,role:_.role},{default:ei(()=>[Kt(Q8e,{disabled:_.disabled,trigger:_.trigger,"trigger-keys":_.triggerKeys,"virtual-ref":_.virtualRef,"virtual-triggering":_.virtualTriggering},{default:ei(()=>[_.$slots.default?Ii(_.$slots,"default",{key:0}):xi("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),Kt(r9e,{ref_key:"contentRef",ref:o,"aria-label":_.ariaLabel,"boundaries-padding":_.boundariesPadding,content:_.content,disabled:_.disabled,effect:_.effect,enterable:_.enterable,"fallback-placements":_.fallbackPlacements,"hide-after":_.hideAfter,"gpu-acceleration":_.gpuAcceleration,offset:_.offset,persistent:_.persistent,"popper-class":_.popperClass,"popper-style":_.popperStyle,placement:_.placement,"popper-options":_.popperOptions,pure:_.pure,"raw-content":_.rawContent,"reference-el":_.referenceEl,"trigger-target-el":_.triggerTargetEl,"show-after":_.showAfter,strategy:_.strategy,teleported:_.teleported,transition:_.transition,"virtual-triggering":_.virtualTriggering,"z-index":_.zIndex,"append-to":_.appendTo},{default:ei(()=>[Ii(_.$slots,"content",{},()=>[_.rawContent?(Qe(),St("span",{key:0,innerHTML:_.content},null,8,["innerHTML"])):(Qe(),St("span",{key:1},Mn(_.content),1))]),_.showArrow?(Qe(),Mi(ae(u8e),{key:0,"arrow-offset":_.arrowOffset},null,8,["arrow-offset"])):xi("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var l9e=us(a9e,[["__file","tooltip.vue"]]);const rZ=Gu(l9e),c9e=cs({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:Ti([String,Object,Array])},offset:{type:Ti(Array),default:[0,0]},badgeClass:{type:String}}),u9e=Et({name:"ElBadge"}),h9e=Et({...u9e,props:c9e,setup(n,{expose:e}){const t=n,i=qs("badge"),s=Ee(()=>t.isDot?"":xo(t.value)&&xo(t.max)?t.max<t.value?`${t.max}+`:t.value===0&&!t.showZero?"":`${t.value}`:`${t.value}`),r=Ee(()=>{var o,a,l,c,u;return[{backgroundColor:t.color,marginRight:X1(-((a=(o=t.offset)==null?void 0:o[0])!=null?a:0)),marginTop:X1((c=(l=t.offset)==null?void 0:l[1])!=null?c:0)},(u=t.badgeStyle)!=null?u:{}]});return e({content:s}),(o,a)=>(Qe(),St("div",{class:pt(ae(i).b())},[Ii(o.$slots,"default"),Kt(m0,{name:`${ae(i).namespace.value}-zoom-in-center`,persisted:""},{default:ei(()=>[$r(vt("sup",{class:pt([ae(i).e("content"),ae(i).em("content",o.type),ae(i).is("fixed",!!o.$slots.default),ae(i).is("dot",o.isDot),o.badgeClass]),style:Hr(ae(r)),textContent:Mn(ae(s))},null,14,["textContent"]),[[rd,!o.hidden&&(ae(s)||o.isDot)]])]),_:1},8,["name"])],2))}});var d9e=us(h9e,[["__file","badge.vue"]]);const f9e=Gu(d9e),Sm=new Map;if(no){let n;document.addEventListener("mousedown",e=>n=e),document.addEventListener("mouseup",e=>{if(n){for(const t of Sm.values())for(const{documentHandler:i}of t)i(e,n);n=void 0}})}function poe(n,e){let t=[];return Array.isArray(e.arg)?t=e.arg:ub(e.arg)&&t.push(e.arg),function(i,s){const r=e.instance.popperRef,o=i.target,a=s==null?void 0:s.target,l=!e||!e.instance,c=!o||!a,u=n.contains(o)||n.contains(a),h=n===o,d=t.length&&t.some(p=>p==null?void 0:p.contains(o))||t.length&&t.includes(a),f=r&&(r.contains(o)||r.contains(a));l||c||u||h||d||f||e.value(i,s)}}const p9e={beforeMount(n,e){Sm.has(n)||Sm.set(n,[]),Sm.get(n).push({documentHandler:poe(n,e),bindingFn:e.value})},updated(n,e){Sm.has(n)||Sm.set(n,[]);const t=Sm.get(n),i=t.findIndex(r=>r.bindingFn===e.oldValue),s={documentHandler:poe(n,e),bindingFn:e.value};i>=0?t.splice(i,1,s):t.push(s)},unmounted(n){Sm.delete(n)}},vve={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:QY,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},...Rx(["ariaControls"])},bve={[nf]:n=>on(n)||xo(n)||Bf(n),change:n=>on(n)||xo(n)||Bf(n)},Ox=Symbol("checkboxGroupContextKey"),g9e=({model:n,isChecked:e})=>{const t=Si(Ox,void 0),i=Ee(()=>{var r,o;const a=(r=t==null?void 0:t.max)==null?void 0:r.value,l=(o=t==null?void 0:t.min)==null?void 0:o.value;return!Zm(a)&&n.value.length>=a&&!e.value||!Zm(l)&&n.value.length<=l&&e.value});return{isDisabled:X6e(Ee(()=>(t==null?void 0:t.disabled.value)||i.value)),isLimitDisabled:i}},m9e=(n,{model:e,isLimitExceeded:t,hasOwnLabel:i,isDisabled:s,isLabeledByFormItem:r})=>{const o=Si(Ox,void 0),{formItem:a}=p6(),{emit:l}=sr();function c(p){var g,m,_,b;return[!0,n.trueValue,n.trueLabel].includes(p)?(m=(g=n.trueValue)!=null?g:n.trueLabel)!=null?m:!0:(b=(_=n.falseValue)!=null?_:n.falseLabel)!=null?b:!1}function u(p,g){l("change",c(p),g)}function h(p){if(t.value)return;const g=p.target;l("change",c(g.checked),p)}async function d(p){t.value||!i.value&&!s.value&&r.value&&(p.composedPath().some(_=>_.tagName==="LABEL")||(e.value=c([!1,n.falseValue,n.falseLabel].includes(e.value)),await Hs(),u(e.value,p)))}const f=Ee(()=>(o==null?void 0:o.validateEvent)||n.validateEvent);return Pt(()=>n.modelValue,()=>{f.value&&(a==null||a.validate("change").catch(p=>void 0))}),{handleChange:h,onClickRoot:d}},_9e=n=>{const e=je(!1),{emit:t}=sr(),i=Si(Ox,void 0),s=Ee(()=>Zm(i)===!1),r=je(!1),o=Ee({get(){var a,l;return s.value?(a=i==null?void 0:i.modelValue)==null?void 0:a.value:(l=n.modelValue)!=null?l:e.value},set(a){var l,c;s.value&&Dt(a)?(r.value=((l=i==null?void 0:i.max)==null?void 0:l.value)!==void 0&&a.length>(i==null?void 0:i.max.value)&&a.length>o.value.length,r.value===!1&&((c=i==null?void 0:i.changeEvent)==null||c.call(i,a))):(t(nf,a),e.value=a)}});return{model:o,isGroup:s,isLimitExceeded:r}},v9e=(n,e,{model:t})=>{const i=Si(Ox,void 0),s=je(!1),r=Ee(()=>eH(n.value)?n.label:n.value),o=Ee(()=>{const u=t.value;return Bf(u)?u:Dt(u)?zi(r.value)?u.map(en).some(h=>nO(h,r.value)):u.map(en).includes(r.value):u!=null?u===n.trueValue||u===n.trueLabel:!!u}),a=DS(Ee(()=>{var u;return(u=i==null?void 0:i.size)==null?void 0:u.value}),{prop:!0}),l=DS(Ee(()=>{var u;return(u=i==null?void 0:i.size)==null?void 0:u.value})),c=Ee(()=>!!e.default||!eH(r.value));return{checkboxButtonSize:a,isChecked:o,isFocused:s,checkboxSize:l,hasOwnLabel:c,actualValue:r}},yve=(n,e)=>{const{formItem:t}=p6(),{model:i,isGroup:s,isLimitExceeded:r}=_9e(n),{isFocused:o,isChecked:a,checkboxButtonSize:l,checkboxSize:c,hasOwnLabel:u,actualValue:h}=v9e(n,e,{model:i}),{isDisabled:d}=g9e({model:i,isChecked:a}),{inputId:f,isLabeledByFormItem:p}=JY(n,{formItemContext:t,disableIdGeneration:u,disableIdManagement:s}),{handleChange:g,onClickRoot:m}=m9e(n,{model:i,isLimitExceeded:r,hasOwnLabel:u,isDisabled:d,isLabeledByFormItem:p});return(()=>{function b(){var w,C;Dt(i.value)&&!i.value.includes(h.value)?i.value.push(h.value):i.value=(C=(w=n.trueValue)!=null?w:n.trueLabel)!=null?C:!0}n.checked&&b()})(),L9({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},Ee(()=>s.value&&eH(n.value))),L9({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},Ee(()=>!!n.trueLabel)),L9({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},Ee(()=>!!n.falseLabel)),{inputId:f,isLabeledByFormItem:p,isChecked:a,isDisabled:d,isFocused:o,checkboxButtonSize:l,checkboxSize:c,hasOwnLabel:u,model:i,actualValue:h,handleChange:g,onClickRoot:m}},b9e=Et({name:"ElCheckbox"}),y9e=Et({...b9e,props:vve,emits:bve,setup(n){const e=n,t=xY(),{inputId:i,isLabeledByFormItem:s,isChecked:r,isDisabled:o,isFocused:a,checkboxSize:l,hasOwnLabel:c,model:u,actualValue:h,handleChange:d,onClickRoot:f}=yve(e,t),p=qs("checkbox"),g=Ee(()=>[p.b(),p.m(l.value),p.is("disabled",o.value),p.is("bordered",e.border),p.is("checked",r.value)]),m=Ee(()=>[p.e("input"),p.is("disabled",o.value),p.is("checked",r.value),p.is("indeterminate",e.indeterminate),p.is("focus",a.value)]);return(_,b)=>(Qe(),Mi(_g(!ae(c)&&ae(s)?"span":"label"),{class:pt(ae(g)),"aria-controls":_.indeterminate?_.ariaControls:null,onClick:ae(f)},{default:ei(()=>{var w,C;return[vt("span",{class:pt(ae(m))},[_.trueValue||_.falseValue||_.trueLabel||_.falseLabel?$r((Qe(),St("input",{key:0,id:ae(i),"onUpdate:modelValue":S=>jn(u)?u.value=S:null,class:pt(ae(p).e("original")),type:"checkbox",indeterminate:_.indeterminate,name:_.name,tabindex:_.tabindex,disabled:ae(o),"true-value":(w=_.trueValue)!=null?w:_.trueLabel,"false-value":(C=_.falseValue)!=null?C:_.falseLabel,onChange:ae(d),onFocus:S=>a.value=!0,onBlur:S=>a.value=!1,onClick:wr(()=>{},["stop"])},null,42,["id","onUpdate:modelValue","indeterminate","name","tabindex","disabled","true-value","false-value","onChange","onFocus","onBlur","onClick"])),[[ZM,ae(u)]]):$r((Qe(),St("input",{key:1,id:ae(i),"onUpdate:modelValue":S=>jn(u)?u.value=S:null,class:pt(ae(p).e("original")),type:"checkbox",indeterminate:_.indeterminate,disabled:ae(o),value:ae(h),name:_.name,tabindex:_.tabindex,onChange:ae(d),onFocus:S=>a.value=!0,onBlur:S=>a.value=!1,onClick:wr(()=>{},["stop"])},null,42,["id","onUpdate:modelValue","indeterminate","disabled","value","name","tabindex","onChange","onFocus","onBlur","onClick"])),[[ZM,ae(u)]]),vt("span",{class:pt(ae(p).e("inner"))},null,2)],2),ae(c)?(Qe(),St("span",{key:0,class:pt(ae(p).e("label"))},[Ii(_.$slots,"default"),_.$slots.default?xi("v-if",!0):(Qe(),St(ss,{key:0},[kh(Mn(_.label),1)],64))],2)):xi("v-if",!0)]}),_:3},8,["class","aria-controls","onClick"]))}});var w9e=us(y9e,[["__file","checkbox.vue"]]);const C9e=Et({name:"ElCheckboxButton"}),S9e=Et({...C9e,props:vve,emits:bve,setup(n){const e=n,t=xY(),{isFocused:i,isChecked:s,isDisabled:r,checkboxButtonSize:o,model:a,actualValue:l,handleChange:c}=yve(e,t),u=Si(Ox,void 0),h=qs("checkbox"),d=Ee(()=>{var p,g,m,_;const b=(g=(p=u==null?void 0:u.fill)==null?void 0:p.value)!=null?g:"";return{backgroundColor:b,borderColor:b,color:(_=(m=u==null?void 0:u.textColor)==null?void 0:m.value)!=null?_:"",boxShadow:b?`-1px 0 0 0 ${b}`:void 0}}),f=Ee(()=>[h.b("button"),h.bm("button",o.value),h.is("disabled",r.value),h.is("checked",s.value),h.is("focus",i.value)]);return(p,g)=>{var m,_;return Qe(),St("label",{class:pt(ae(f))},[p.trueValue||p.falseValue||p.trueLabel||p.falseLabel?$r((Qe(),St("input",{key:0,"onUpdate:modelValue":b=>jn(a)?a.value=b:null,class:pt(ae(h).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:ae(r),"true-value":(m=p.trueValue)!=null?m:p.trueLabel,"false-value":(_=p.falseValue)!=null?_:p.falseLabel,onChange:ae(c),onFocus:b=>i.value=!0,onBlur:b=>i.value=!1,onClick:wr(()=>{},["stop"])},null,42,["onUpdate:modelValue","name","tabindex","disabled","true-value","false-value","onChange","onFocus","onBlur","onClick"])),[[ZM,ae(a)]]):$r((Qe(),St("input",{key:1,"onUpdate:modelValue":b=>jn(a)?a.value=b:null,class:pt(ae(h).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:ae(r),value:ae(l),onChange:ae(c),onFocus:b=>i.value=!0,onBlur:b=>i.value=!1,onClick:wr(()=>{},["stop"])},null,42,["onUpdate:modelValue","name","tabindex","disabled","value","onChange","onFocus","onBlur","onClick"])),[[ZM,ae(a)]]),p.$slots.default||p.label?(Qe(),St("span",{key:2,class:pt(ae(h).be("button","inner")),style:Hr(ae(s)?ae(d):void 0)},[Ii(p.$slots,"default",{},()=>[kh(Mn(p.label),1)])],6)):xi("v-if",!0)],2)}}});var wve=us(S9e,[["__file","checkbox-button.vue"]]);const x9e=cs({modelValue:{type:Ti(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:QY,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},...Rx(["ariaLabel"])}),L9e={[nf]:n=>Dt(n),change:n=>Dt(n)},E9e=Et({name:"ElCheckboxGroup"}),k9e=Et({...E9e,props:x9e,emits:L9e,setup(n,{emit:e}){const t=n,i=qs("checkbox"),{formItem:s}=p6(),{inputId:r,isLabeledByFormItem:o}=JY(t,{formItemContext:s}),a=async c=>{e(nf,c),await Hs(),e("change",c)},l=Ee({get(){return t.modelValue},set(c){a(c)}});return To(Ox,{...E_e(Yg(t),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:a}),Pt(()=>t.modelValue,()=>{t.validateEvent&&(s==null||s.validate("change").catch(c=>void 0))}),(c,u)=>{var h;return Qe(),Mi(_g(c.tag),{id:ae(r),class:pt(ae(i).b("group")),role:"group","aria-label":ae(o)?void 0:c.ariaLabel||"checkbox-group","aria-labelledby":ae(o)?(h=ae(s))==null?void 0:h.labelId:void 0},{default:ei(()=>[Ii(c.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var Cve=us(k9e,[["__file","checkbox-group.vue"]]);const I9e=Gu(w9e,{CheckboxButton:wve,CheckboxGroup:Cve});iN(wve);iN(Cve);const lH=cs({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:h6},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),T9e={close:n=>n instanceof MouseEvent,click:n=>n instanceof MouseEvent},D9e=Et({name:"ElTag"}),N9e=Et({...D9e,props:lH,emits:T9e,setup(n,{emit:e}){const t=n,i=DS(),s=qs("tag"),r=Ee(()=>{const{type:c,hit:u,effect:h,closable:d,round:f}=t;return[s.b(),s.is("closable",d),s.m(c||"primary"),s.m(i.value),s.m(h),s.is("hit",u),s.is("round",f)]}),o=c=>{e("close",c)},a=c=>{e("click",c)},l=c=>{c.component.subTree.component.bum=null};return(c,u)=>c.disableTransitions?(Qe(),St("span",{key:0,class:pt(ae(r)),style:Hr({backgroundColor:c.color}),onClick:a},[vt("span",{class:pt(ae(s).e("content"))},[Ii(c.$slots,"default")],2),c.closable?(Qe(),Mi(ae(TS),{key:0,class:pt(ae(s).e("close")),onClick:wr(o,["stop"])},{default:ei(()=>[Kt(ae(tH))]),_:1},8,["class","onClick"])):xi("v-if",!0)],6)):(Qe(),Mi(m0,{key:1,name:`${ae(s).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:l},{default:ei(()=>[vt("span",{class:pt(ae(r)),style:Hr({backgroundColor:c.color}),onClick:a},[vt("span",{class:pt(ae(s).e("content"))},[Ii(c.$slots,"default")],2),c.closable?(Qe(),Mi(ae(TS),{key:0,class:pt(ae(s).e("close")),onClick:wr(o,["stop"])},{default:ei(()=>[Kt(ae(tH))]),_:1},8,["class","onClick"])):xi("v-if",!0)],6)]),_:3},8,["name"]))}});var A9e=us(N9e,[["__file","tag.vue"]]);const Sve=Gu(A9e),P9e=Et({inheritAttrs:!1});function R9e(n,e,t,i,s,r){return Ii(n.$slots,"default")}var M9e=us(P9e,[["render",R9e],["__file","collection.vue"]]);const O9e=Et({name:"ElCollectionItem",inheritAttrs:!1});function F9e(n,e,t,i,s,r){return Ii(n.$slots,"default")}var B9e=us(O9e,[["render",F9e],["__file","collection-item.vue"]]);const W9e="data-el-collection-item",V9e=n=>{const e=`El${n}Collection`,t=`${e}Item`,i=Symbol(e),s=Symbol(t),r={...M9e,name:e,setup(){const a=je(null),l=new Map;To(i,{itemMap:l,getItems:()=>{const u=ae(a);if(!u)return[];const h=Array.from(u.querySelectorAll(`[${W9e}]`));return[...l.values()].sort((f,p)=>h.indexOf(f.ref)-h.indexOf(p.ref))},collectionRef:a})}},o={...B9e,name:t,setup(a,{attrs:l}){const c=je(null),u=Si(i,void 0);To(s,{collectionItemRef:c}),or(()=>{const h=ae(c);h&&u.itemMap.set(h,{ref:h,...l})}),Fa(()=>{const h=ae(c);u.itemMap.delete(h)})}};return{COLLECTION_INJECTION_KEY:i,COLLECTION_ITEM_INJECTION_KEY:s,ElCollection:r,ElCollectionItem:o}},T9=cs({trigger:$I.trigger,effect:{...Ic.effect,default:"light"},type:{type:Ti(String)},placement:{type:Ti(String),default:"bottom"},popperOptions:{type:Ti(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Ti([Number,String]),default:0},maxHeight:{type:Ti([Number,String]),default:""},popperClass:{type:String,default:""},disabled:Boolean,role:{type:String,default:"menu"},buttonProps:{type:Ti(Object)},teleported:Ic.teleported});cs({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:BI}});cs({onKeydown:{type:Ti(Function)}});V9e("Dropdown");const H9e=cs({type:{type:String,values:["primary","success","warning","info","danger","default"],default:"default"},underline:{type:Boolean,default:!0},disabled:Boolean,href:{type:String,default:""},target:{type:String,default:"_self"},icon:{type:BI}}),$9e={click:n=>n instanceof MouseEvent},z9e=Et({name:"ElLink"}),U9e=Et({...z9e,props:H9e,emits:$9e,setup(n,{emit:e}){const t=n,i=qs("link"),s=Ee(()=>[i.b(),i.m(t.type),i.is("disabled",t.disabled),i.is("underline",t.underline&&!t.disabled)]);function r(o){t.disabled||e("click",o)}return(o,a)=>(Qe(),St("a",{class:pt(ae(s)),href:o.disabled||!o.href?void 0:o.href,target:o.disabled||!o.href?void 0:o.target,onClick:r},[o.icon?(Qe(),Mi(ae(TS),{key:0},{default:ei(()=>[(Qe(),Mi(_g(o.icon)))]),_:1})):xi("v-if",!0),o.$slots.default?(Qe(),St("span",{key:1,class:pt(ae(i).e("inner"))},[Ii(o.$slots,"default")],2)):xi("v-if",!0),o.$slots.icon?Ii(o.$slots,"icon",{key:2}):xi("v-if",!0)],10,["href","target"]))}});var j9e=us(U9e,[["__file","link.vue"]]);const q9e=Gu(j9e),xve=Symbol("ElSelectGroup"),m6=Symbol("ElSelect");function K9e(n,e){const t=Si(m6),i=Si(xve,{disabled:!1}),s=Ee(()=>u(Lh(t.props.modelValue),n.value)),r=Ee(()=>{var f;if(t.props.multiple){const p=Lh((f=t.props.modelValue)!=null?f:[]);return!s.value&&p.length>=t.props.multipleLimit&&t.props.multipleLimit>0}else return!1}),o=Ee(()=>n.label||(zi(n.value)?"":n.value)),a=Ee(()=>n.value||n.label||""),l=Ee(()=>n.disabled||e.groupDisabled||r.value),c=sr(),u=(f=[],p)=>{if(zi(n.value)){const g=t.props.valueKey;return f&&f.some(m=>en(tf(m,g))===tf(p,g))}else return f&&f.includes(p)},h=()=>{!n.disabled&&!i.disabled&&(t.states.hoveringIndex=t.optionsArray.indexOf(c.proxy))},d=f=>{const p=new RegExp(G3e(f),"i");e.visible=p.test(o.value)||n.created};return Pt(()=>o.value,()=>{!n.created&&!t.props.remote&&t.setSelected()}),Pt(()=>n.value,(f,p)=>{const{remote:g,valueKey:m}=t.props;if(f!==p&&(t.onOptionDestroy(p,c.proxy),t.onOptionCreate(c.proxy)),!n.created&&!g){if(m&&zi(f)&&zi(p)&&f[m]===p[m])return;t.setSelected()}}),Pt(()=>i.disabled,()=>{e.groupDisabled=i.disabled},{immediate:!0}),{select:t,currentLabel:o,currentValue:a,itemSelected:s,isDisabled:l,hoverItem:h,updateOption:d}}const G9e=Et({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:Boolean},setup(n){const e=qs("select"),t=rN(),i=Ee(()=>[e.be("dropdown","item"),e.is("disabled",ae(a)),e.is("selected",ae(o)),e.is("hovering",ae(d))]),s=ia({index:-1,groupDisabled:!1,visible:!0,hover:!1}),{currentLabel:r,itemSelected:o,isDisabled:a,select:l,hoverItem:c,updateOption:u}=K9e(n,s),{visible:h,hover:d}=Yg(s),f=sr().proxy;l.onOptionCreate(f),Fa(()=>{const g=f.value,{selected:m}=l.states,b=(l.props.multiple?m:[m]).some(w=>w.value===f.value);Hs(()=>{l.states.cachedOptions.get(g)===f&&!b&&l.states.cachedOptions.delete(g)}),l.onOptionDestroy(g,f)});function p(){a.value||l.handleOptionSelect(f)}return{ns:e,id:t,containerKls:i,currentLabel:r,itemSelected:o,isDisabled:a,select:l,hoverItem:c,updateOption:u,visible:h,hover:d,selectOptionClick:p,states:s}}});function X9e(n,e,t,i,s,r){return $r((Qe(),St("li",{id:n.id,class:pt(n.containerKls),role:"option","aria-disabled":n.isDisabled||void 0,"aria-selected":n.itemSelected,onMouseenter:n.hoverItem,onClick:wr(n.selectOptionClick,["stop"])},[Ii(n.$slots,"default",{},()=>[vt("span",null,Mn(n.currentLabel),1)])],42,["id","aria-disabled","aria-selected","onMouseenter","onClick"])),[[rd,n.visible]])}var oZ=us(G9e,[["render",X9e],["__file","option.vue"]]);const Y9e=Et({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const n=Si(m6),e=qs("select"),t=Ee(()=>n.props.popperClass),i=Ee(()=>n.props.multiple),s=Ee(()=>n.props.fitInputWidth),r=je("");function o(){var a;r.value=`${(a=n.selectRef)==null?void 0:a.offsetWidth}px`}return or(()=>{o(),Gd(n.selectRef,o)}),{ns:e,minWidth:r,popperClass:t,isMultiple:i,isFitInputWidth:s}}});function Z9e(n,e,t,i,s,r){return Qe(),St("div",{class:pt([n.ns.b("dropdown"),n.ns.is("multiple",n.isMultiple),n.popperClass]),style:Hr({[n.isFitInputWidth?"width":"minWidth"]:n.minWidth})},[n.$slots.header?(Qe(),St("div",{key:0,class:pt(n.ns.be("dropdown","header"))},[Ii(n.$slots,"header")],2)):xi("v-if",!0),Ii(n.$slots,"default"),n.$slots.footer?(Qe(),St("div",{key:1,class:pt(n.ns.be("dropdown","footer"))},[Ii(n.$slots,"footer")],2)):xi("v-if",!0)],6)}var Q9e=us(Y9e,[["render",Z9e],["__file","select-dropdown.vue"]]);const J9e=11,e7e=(n,e)=>{const{t}=F_e(),i=rN(),s=qs("select"),r=qs("input"),o=ia({inputValue:"",options:new Map,cachedOptions:new Map,disabledOptions:new Map,optionValues:[],selected:[],selectionWidth:0,calculatorWidth:0,collapseItemWidth:0,selectedLabel:"",hoveringIndex:-1,previousQuery:null,inputHovering:!1,menuVisibleOnFocus:!1,isBeforeHide:!1}),a=je(null),l=je(null),c=je(null),u=je(null),h=je(null),d=je(null),f=je(null),p=je(null),g=je(null),m=je(null),_=je(null),b=je(null),{isComposing:w,handleCompositionStart:C,handleCompositionUpdate:S,handleCompositionEnd:x}=F6e({afterComposition:We=>pe(We)}),{wrapperRef:k,isFocused:L}=O6e(h,{beforeFocus(){return W.value},afterFocus(){n.automaticDropdown&&!E.value&&(E.value=!0,o.menuVisibleOnFocus=!0)},beforeBlur(We){var _t,Fi;return((_t=c.value)==null?void 0:_t.isFocusInsideContent(We))||((Fi=u.value)==null?void 0:Fi.isFocusInsideContent(We))},afterBlur(){E.value=!1,o.menuVisibleOnFocus=!1}}),E=je(!1),A=je(),{form:I,formItem:T}=p6(),{inputId:N}=JY(n,{formItemContext:T}),{valueOnClear:M,isEmptyValue:V}=H6e(n),W=Ee(()=>n.disabled||(I==null?void 0:I.disabled)),B=Ee(()=>Dt(n.modelValue)?n.modelValue.length>0:!V(n.modelValue)),$=Ee(()=>n.clearable&&!W.value&&o.inputHovering&&B.value),Y=Ee(()=>n.remote&&n.filterable&&!n.remoteShowSuffix?"":n.suffixIcon),le=Ee(()=>s.is("reverse",Y.value&&E.value)),re=Ee(()=>(T==null?void 0:T.validateState)||""),z=Ee(()=>h5e[re.value]),K=Ee(()=>n.remote?300:0),Z=Ee(()=>n.loading?n.loadingText||t("el.select.loading"):n.remote&&!o.inputValue&&o.options.size===0?!1:n.filterable&&o.inputValue&&o.options.size>0&&j.value===0?n.noMatchText||t("el.select.noMatch"):o.options.size===0?n.noDataText||t("el.select.noData"):null),j=Ee(()=>ce.value.filter(We=>We.visible).length),ce=Ee(()=>{const We=Array.from(o.options.values()),_t=[];return o.optionValues.forEach(Fi=>{const Ln=We.findIndex(Dl=>Dl.value===Fi);Ln>-1&&_t.push(We[Ln])}),_t.length>=We.length?_t:We}),ie=Ee(()=>Array.from(o.cachedOptions.values())),de=Ee(()=>{const We=ce.value.filter(_t=>!_t.created).some(_t=>_t.currentLabel===o.inputValue);return n.filterable&&n.allowCreate&&o.inputValue!==""&&!We}),Le=()=>{n.filterable&&Wt(n.filterMethod)||n.filterable&&n.remote&&Wt(n.remoteMethod)||ce.value.forEach(We=>{var _t;(_t=We.updateOption)==null||_t.call(We,o.inputValue)})},Te=DS(),ve=Ee(()=>["small"].includes(Te.value)?"small":"default"),Ke=Ee({get(){return E.value&&Z.value!==!1},set(We){E.value=We}}),Q=Ee(()=>{if(n.multiple&&!Zm(n.modelValue))return Lh(n.modelValue).length===0&&!o.inputValue;const We=Dt(n.modelValue)?n.modelValue[0]:n.modelValue;return n.filterable||Zm(We)?!o.inputValue:!0}),ne=Ee(()=>{var We;const _t=(We=n.placeholder)!=null?We:t("el.select.placeholder");return n.multiple||!B.value?_t:o.selectedLabel}),xe=Ee(()=>KV?null:"mouseenter");Pt(()=>n.modelValue,(We,_t)=>{n.multiple&&n.filterable&&!n.reserveKeyword&&(o.inputValue="",He("")),Fe(),!nO(We,_t)&&n.validateEvent&&(T==null||T.validate("change").catch(Fi=>void 0))},{flush:"post",deep:!0}),Pt(()=>E.value,We=>{We?He(o.inputValue):(o.inputValue="",o.previousQuery=null,o.isBeforeHide=!0),e("visible-change",We)}),Pt(()=>o.options.entries(),()=>{var We;if(!no)return;const _t=((We=a.value)==null?void 0:We.querySelectorAll("input"))||[];(!n.filterable&&!n.defaultFirstOption&&!Zm(n.modelValue)||!Array.from(_t).includes(document.activeElement))&&Fe(),n.defaultFirstOption&&(n.filterable||n.remote)&&j.value&&Re()},{flush:"post"}),Pt(()=>o.hoveringIndex,We=>{xo(We)&&We>-1?A.value=ce.value[We]||{}:A.value={},ce.value.forEach(_t=>{_t.hover=A.value===_t})}),g0(()=>{o.isBeforeHide||Le()});const He=We=>{o.previousQuery===We||w.value||(o.previousQuery=We,n.filterable&&Wt(n.filterMethod)?n.filterMethod(We):n.filterable&&n.remote&&Wt(n.remoteMethod)&&n.remoteMethod(We),n.defaultFirstOption&&(n.filterable||n.remote)&&j.value?Hs(Re):Hs(he))},Re=()=>{const We=ce.value.filter(Ln=>Ln.visible&&!Ln.disabled&&!Ln.states.groupDisabled),_t=We.find(Ln=>Ln.created),Fi=We[0];o.hoveringIndex=rt(ce.value,_t||Fi)},Fe=()=>{if(n.multiple)o.selectedLabel="";else{const _t=Dt(n.modelValue)?n.modelValue[0]:n.modelValue,Fi=Ye(_t);o.selectedLabel=Fi.currentLabel,o.selected=[Fi];return}const We=[];Zm(n.modelValue)||Lh(n.modelValue).forEach(_t=>{We.push(Ye(_t))}),o.selected=We},Ye=We=>{let _t;const Fi=vR(We).toLowerCase()==="object",Ln=vR(We).toLowerCase()==="null",Dl=vR(We).toLowerCase()==="undefined";for(let st=o.cachedOptions.size-1;st>=0;st--){const dt=ie.value[st];if(Fi?tf(dt.value,n.valueKey)===tf(We,n.valueKey):dt.value===We){_t={value:We,currentLabel:dt.currentLabel,get isDisabled(){return dt.isDisabled}};break}}if(_t)return _t;const Mt=Fi?We.label:!Ln&&!Dl?We:"";return{value:We,currentLabel:Mt}},he=()=>{o.hoveringIndex=ce.value.findIndex(We=>o.selected.some(_t=>Ys(_t)===Ys(We)))},te=()=>{o.selectionWidth=l.value.getBoundingClientRect().width},ee=()=>{o.calculatorWidth=d.value.getBoundingClientRect().width},R=()=>{o.collapseItemWidth=_.value.getBoundingClientRect().width},F=()=>{var We,_t;(_t=(We=c.value)==null?void 0:We.updatePopper)==null||_t.call(We)},q=()=>{var We,_t;(_t=(We=u.value)==null?void 0:We.updatePopper)==null||_t.call(We)},G=()=>{o.inputValue.length>0&&!E.value&&(E.value=!0),He(o.inputValue)},pe=We=>{if(o.inputValue=We.target.value,n.remote)_e();else return G()},_e=H3e(()=>{G()},K.value),De=We=>{nO(n.modelValue,We)||e(M_e,We)},ze=We=>$3e(We,_t=>!o.disabledOptions.has(_t)),Ze=We=>{if(n.multiple&&We.code!==SS.delete&&We.target.value.length<=0){const _t=Lh(n.modelValue).slice(),Fi=ze(_t);if(Fi<0)return;const Ln=_t[Fi];_t.splice(Fi,1),e(nf,_t),De(_t),e("remove-tag",Ln)}},tt=(We,_t)=>{const Fi=o.selected.indexOf(_t);if(Fi>-1&&!W.value){const Ln=Lh(n.modelValue).slice();Ln.splice(Fi,1),e(nf,Ln),De(Ln),e("remove-tag",_t.value)}We.stopPropagation(),Ar()},Tt=We=>{We.stopPropagation();const _t=n.multiple?[]:M.value;if(n.multiple)for(const Fi of o.selected)Fi.isDisabled&&_t.push(Fi.value);e(nf,_t),De(_t),o.hoveringIndex=-1,E.value=!1,e("clear"),Ar()},It=We=>{var _t;if(n.multiple){const Fi=Lh((_t=n.modelValue)!=null?_t:[]).slice(),Ln=rt(Fi,We.value);Ln>-1?Fi.splice(Ln,1):(n.multipleLimit<=0||Fi.length<n.multipleLimit)&&Fi.push(We.value),e(nf,Fi),De(Fi),We.created&&He(""),n.filterable&&!n.reserveKeyword&&(o.inputValue="")}else e(nf,We.value),De(We.value),E.value=!1;Ar(),!E.value&&Hs(()=>{Rt(We)})},rt=(We=[],_t)=>{if(!zi(_t))return We.indexOf(_t);const Fi=n.valueKey;let Ln=-1;return We.some((Dl,Mt)=>en(tf(Dl,Fi))===tf(_t,Fi)?(Ln=Mt,!0):!1),Ln},Rt=We=>{var _t,Fi,Ln,Dl,Mt;const Se=Dt(We)?We[0]:We;let st=null;if(Se!=null&&Se.value){const dt=ce.value.filter(cn=>cn.value===Se.value);dt.length>0&&(st=dt[0].$el)}if(c.value&&st){const dt=(Dl=(Ln=(Fi=(_t=c.value)==null?void 0:_t.popperRef)==null?void 0:Fi.contentRef)==null?void 0:Ln.querySelector)==null?void 0:Dl.call(Ln,`.${s.be("dropdown","wrap")}`);dt&&Y3e(dt,st)}(Mt=b.value)==null||Mt.handleScroll()},si=We=>{o.options.set(We.value,We),o.cachedOptions.set(We.value,We),We.disabled&&o.disabledOptions.set(We.value,We)},Jn=(We,_t)=>{o.options.get(We)===_t&&o.options.delete(We)},oi=Ee(()=>{var We,_t;return(_t=(We=c.value)==null?void 0:We.popperRef)==null?void 0:_t.contentRef}),Zi=()=>{o.isBeforeHide=!1,Hs(()=>Rt(o.selected))},Ar=()=>{var We;(We=h.value)==null||We.focus()},_s=()=>{var We;(We=h.value)==null||We.blur()},mr=We=>{Tt(We)},Mo=()=>{E.value=!1,L.value&&_s()},Ha=()=>{o.inputValue.length>0?o.inputValue="":E.value=!1},Oo=()=>{W.value||(KV&&(o.inputHovering=!0),o.menuVisibleOnFocus?o.menuVisibleOnFocus=!1:E.value=!E.value)},pa=()=>{E.value?ce.value[o.hoveringIndex]&&It(ce.value[o.hoveringIndex]):Oo()},Ys=We=>zi(We.value)?tf(We.value,n.valueKey):We.value,Il=Ee(()=>ce.value.filter(We=>We.visible).every(We=>We.disabled)),Xr=Ee(()=>n.multiple?n.collapseTags?o.selected.slice(0,n.maxCollapseTags):o.selected:[]),Tl=Ee(()=>n.multiple?n.collapseTags?o.selected.slice(n.maxCollapseTags):[]:[]),$a=We=>{if(!E.value){E.value=!0;return}if(!(o.options.size===0||o.filteredOptionsCount===0||w.value)&&!Il.value){We==="next"?(o.hoveringIndex++,o.hoveringIndex===o.options.size&&(o.hoveringIndex=0)):We==="prev"&&(o.hoveringIndex--,o.hoveringIndex<0&&(o.hoveringIndex=o.options.size-1));const _t=ce.value[o.hoveringIndex];(_t.disabled===!0||_t.states.groupDisabled===!0||!_t.visible)&&$a(We),Hs(()=>Rt(A.value))}},bd=()=>{if(!l.value)return 0;const We=window.getComputedStyle(l.value);return Number.parseFloat(We.gap||"6px")},z_=Ee(()=>{const We=bd();return{maxWidth:`${_.value&&n.maxCollapseTags===1?o.selectionWidth-o.collapseItemWidth-We:o.selectionWidth}px`}}),yd=Ee(()=>({maxWidth:`${o.selectionWidth}px`})),za=Ee(()=>({width:`${Math.max(o.calculatorWidth,J9e)}px`}));return Gd(l,te),Gd(d,ee),Gd(g,F),Gd(k,F),Gd(m,q),Gd(_,R),or(()=>{Fe()}),{inputId:N,contentId:i,nsSelect:s,nsInput:r,states:o,isFocused:L,expanded:E,optionsArray:ce,hoverOption:A,selectSize:Te,filteredOptionsCount:j,resetCalculatorWidth:ee,updateTooltip:F,updateTagTooltip:q,debouncedOnInputChange:_e,onInput:pe,deletePrevTag:Ze,deleteTag:tt,deleteSelected:Tt,handleOptionSelect:It,scrollToOption:Rt,hasModelValue:B,shouldShowPlaceholder:Q,currentPlaceholder:ne,mouseEnterEventName:xe,showClose:$,iconComponent:Y,iconReverse:le,validateState:re,validateIcon:z,showNewOption:de,updateOptions:Le,collapseTagSize:ve,setSelected:Fe,selectDisabled:W,emptyText:Z,handleCompositionStart:C,handleCompositionUpdate:S,handleCompositionEnd:x,onOptionCreate:si,onOptionDestroy:Jn,handleMenuEnter:Zi,focus:Ar,blur:_s,handleClearClick:mr,handleClickOutside:Mo,handleEsc:Ha,toggleMenu:Oo,selectOption:pa,getValueKey:Ys,navigateOptions:$a,dropdownMenuVisible:Ke,showTagList:Xr,collapseTagList:Tl,tagStyle:z_,collapseTagStyle:yd,inputStyle:za,popperRef:oi,inputRef:h,tooltipRef:c,tagTooltipRef:u,calculatorRef:d,prefixRef:f,suffixRef:p,selectRef:a,wrapperRef:k,selectionRef:l,scrollbarRef:b,menuRef:g,tagMenuRef:m,collapseItemRef:_}};var t7e=Et({name:"ElOptions",setup(n,{slots:e}){const t=Si(m6);let i=[];return()=>{var s,r;const o=(s=e.default)==null?void 0:s.call(e),a=[];function l(c){Dt(c)&&c.forEach(u=>{var h,d,f,p;const g=(h=(u==null?void 0:u.type)||{})==null?void 0:h.name;g==="ElOptionGroup"?l(!on(u.children)&&!Dt(u.children)&&Wt((d=u.children)==null?void 0:d.default)?(f=u.children)==null?void 0:f.default():u.children):g==="ElOption"?a.push((p=u.props)==null?void 0:p.value):Dt(u.children)&&l(u.children)})}return o.length&&l((r=o[0])==null?void 0:r.children),nO(a,i)||(i=a,t&&(t.states.optionValues=a)),o}}});const i7e=cs({name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:QY,effect:{type:Ti(String),default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:Ti(Object),default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:"value"},collapseTags:Boolean,collapseTagsTooltip:Boolean,maxCollapseTags:{type:Number,default:1},teleported:Ic.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:BI,default:D_e},fitInputWidth:Boolean,suffixIcon:{type:BI,default:Q3e},tagType:{...lH.type,default:"info"},tagEffect:{...lH.effect,default:"light"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,placement:{type:Ti(String),values:d6,default:"bottom-start"},fallbackPlacements:{type:Ti(Array),default:["bottom-start","top-start","right","left"]},...V6e,...Rx(["ariaLabel"])}),goe="ElSelect",n7e=Et({name:goe,componentName:goe,components:{ElSelectMenu:Q9e,ElOption:oZ,ElOptions:t7e,ElTag:Sve,ElScrollbar:n8e,ElTooltip:rZ,ElIcon:TS},directives:{ClickOutside:p9e},props:i7e,emits:[nf,M_e,"remove-tag","clear","visible-change","focus","blur"],setup(n,{emit:e}){const t=Ee(()=>{const{modelValue:r,multiple:o}=n,a=o?[]:void 0;return Dt(r)?o?r:a:o?a:r}),i=ia({...Yg(n),modelValue:t}),s=e7e(i,e);return To(m6,ia({props:i,states:s.states,optionsArray:s.optionsArray,handleOptionSelect:s.handleOptionSelect,onOptionCreate:s.onOptionCreate,onOptionDestroy:s.onOptionDestroy,selectRef:s.selectRef,setSelected:s.setSelected})),{...s,modelValue:t}}});function s7e(n,e,t,i,s,r){const o=j_("el-tag"),a=j_("el-tooltip"),l=j_("el-icon"),c=j_("el-option"),u=j_("el-options"),h=j_("el-scrollbar"),d=j_("el-select-menu"),f=ZPe("click-outside");return $r((Qe(),St("div",{ref:"selectRef",class:pt([n.nsSelect.b(),n.nsSelect.m(n.selectSize)]),[bR(n.mouseEnterEventName)]:p=>n.states.inputHovering=!0,onMouseleave:p=>n.states.inputHovering=!1},[Kt(a,{ref:"tooltipRef",visible:n.dropdownMenuVisible,placement:n.placement,teleported:n.teleported,"popper-class":[n.nsSelect.e("popper"),n.popperClass],"popper-options":n.popperOptions,"fallback-placements":n.fallbackPlacements,effect:n.effect,pure:"",trigger:"click",transition:`${n.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:n.persistent,onBeforeShow:n.handleMenuEnter,onHide:p=>n.states.isBeforeHide=!1},{default:ei(()=>{var p;return[vt("div",{ref:"wrapperRef",class:pt([n.nsSelect.e("wrapper"),n.nsSelect.is("focused",n.isFocused),n.nsSelect.is("hovering",n.states.inputHovering),n.nsSelect.is("filterable",n.filterable),n.nsSelect.is("disabled",n.selectDisabled)]),onClick:wr(n.toggleMenu,["prevent"])},[n.$slots.prefix?(Qe(),St("div",{key:0,ref:"prefixRef",class:pt(n.nsSelect.e("prefix"))},[Ii(n.$slots,"prefix")],2)):xi("v-if",!0),vt("div",{ref:"selectionRef",class:pt([n.nsSelect.e("selection"),n.nsSelect.is("near",n.multiple&&!n.$slots.prefix&&!!n.states.selected.length)])},[n.multiple?Ii(n.$slots,"tag",{key:0},()=>[(Qe(!0),St(ss,null,bS(n.showTagList,g=>(Qe(),St("div",{key:n.getValueKey(g),class:pt(n.nsSelect.e("selected-item"))},[Kt(o,{closable:!n.selectDisabled&&!g.isDisabled,size:n.collapseTagSize,type:n.tagType,effect:n.tagEffect,"disable-transitions":"",style:Hr(n.tagStyle),onClose:m=>n.deleteTag(m,g)},{default:ei(()=>[vt("span",{class:pt(n.nsSelect.e("tags-text"))},[Ii(n.$slots,"label",{label:g.currentLabel,value:g.value},()=>[kh(Mn(g.currentLabel),1)])],2)]),_:2},1032,["closable","size","type","effect","style","onClose"])],2))),128)),n.collapseTags&&n.states.selected.length>n.maxCollapseTags?(Qe(),Mi(a,{key:0,ref:"tagTooltipRef",disabled:n.dropdownMenuVisible||!n.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],effect:n.effect,placement:"bottom",teleported:n.teleported},{default:ei(()=>[vt("div",{ref:"collapseItemRef",class:pt(n.nsSelect.e("selected-item"))},[Kt(o,{closable:!1,size:n.collapseTagSize,type:n.tagType,effect:n.tagEffect,"disable-transitions":"",style:Hr(n.collapseTagStyle)},{default:ei(()=>[vt("span",{class:pt(n.nsSelect.e("tags-text"))}," + "+Mn(n.states.selected.length-n.maxCollapseTags),3)]),_:1},8,["size","type","effect","style"])],2)]),content:ei(()=>[vt("div",{ref:"tagMenuRef",class:pt(n.nsSelect.e("selection"))},[(Qe(!0),St(ss,null,bS(n.collapseTagList,g=>(Qe(),St("div",{key:n.getValueKey(g),class:pt(n.nsSelect.e("selected-item"))},[Kt(o,{class:"in-tooltip",closable:!n.selectDisabled&&!g.isDisabled,size:n.collapseTagSize,type:n.tagType,effect:n.tagEffect,"disable-transitions":"",onClose:m=>n.deleteTag(m,g)},{default:ei(()=>[vt("span",{class:pt(n.nsSelect.e("tags-text"))},[Ii(n.$slots,"label",{label:g.currentLabel,value:g.value},()=>[kh(Mn(g.currentLabel),1)])],2)]),_:2},1032,["closable","size","type","effect","onClose"])],2))),128))],2)]),_:3},8,["disabled","effect","teleported"])):xi("v-if",!0)]):xi("v-if",!0),n.selectDisabled?xi("v-if",!0):(Qe(),St("div",{key:1,class:pt([n.nsSelect.e("selected-item"),n.nsSelect.e("input-wrapper"),n.nsSelect.is("hidden",!n.filterable)])},[$r(vt("input",{id:n.inputId,ref:"inputRef","onUpdate:modelValue":g=>n.states.inputValue=g,type:"text",name:n.name,class:pt([n.nsSelect.e("input"),n.nsSelect.is(n.selectSize)]),disabled:n.selectDisabled,autocomplete:n.autocomplete,style:Hr(n.inputStyle),role:"combobox",readonly:!n.filterable,spellcheck:"false","aria-activedescendant":((p=n.hoverOption)==null?void 0:p.id)||"","aria-controls":n.contentId,"aria-expanded":n.dropdownMenuVisible,"aria-label":n.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onKeydown:[$p(wr(g=>n.navigateOptions("next"),["stop","prevent"]),["down"]),$p(wr(g=>n.navigateOptions("prev"),["stop","prevent"]),["up"]),$p(wr(n.handleEsc,["stop","prevent"]),["esc"]),$p(wr(n.selectOption,["stop","prevent"]),["enter"]),$p(wr(n.deletePrevTag,["stop"]),["delete"])],onCompositionstart:n.handleCompositionStart,onCompositionupdate:n.handleCompositionUpdate,onCompositionend:n.handleCompositionEnd,onInput:n.onInput,onClick:wr(n.toggleMenu,["stop"])},null,46,["id","onUpdate:modelValue","name","disabled","autocomplete","readonly","aria-activedescendant","aria-controls","aria-expanded","aria-label","onKeydown","onCompositionstart","onCompositionupdate","onCompositionend","onInput","onClick"]),[[X1e,n.states.inputValue]]),n.filterable?(Qe(),St("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:pt(n.nsSelect.e("input-calculator")),textContent:Mn(n.states.inputValue)},null,10,["textContent"])):xi("v-if",!0)],2)),n.shouldShowPlaceholder?(Qe(),St("div",{key:2,class:pt([n.nsSelect.e("selected-item"),n.nsSelect.e("placeholder"),n.nsSelect.is("transparent",!n.hasModelValue||n.expanded&&!n.states.inputValue)])},[n.hasModelValue?Ii(n.$slots,"label",{key:0,label:n.currentPlaceholder,value:n.modelValue},()=>[vt("span",null,Mn(n.currentPlaceholder),1)]):(Qe(),St("span",{key:1},Mn(n.currentPlaceholder),1))],2)):xi("v-if",!0)],2),vt("div",{ref:"suffixRef",class:pt(n.nsSelect.e("suffix"))},[n.iconComponent&&!n.showClose?(Qe(),Mi(l,{key:0,class:pt([n.nsSelect.e("caret"),n.nsSelect.e("icon"),n.iconReverse])},{default:ei(()=>[(Qe(),Mi(_g(n.iconComponent)))]),_:1},8,["class"])):xi("v-if",!0),n.showClose&&n.clearIcon?(Qe(),Mi(l,{key:1,class:pt([n.nsSelect.e("caret"),n.nsSelect.e("icon"),n.nsSelect.e("clear")]),onClick:n.handleClearClick},{default:ei(()=>[(Qe(),Mi(_g(n.clearIcon)))]),_:1},8,["class","onClick"])):xi("v-if",!0),n.validateState&&n.validateIcon?(Qe(),Mi(l,{key:2,class:pt([n.nsInput.e("icon"),n.nsInput.e("validateIcon")])},{default:ei(()=>[(Qe(),Mi(_g(n.validateIcon)))]),_:1},8,["class"])):xi("v-if",!0)],2)],10,["onClick"])]}),content:ei(()=>[Kt(d,{ref:"menuRef"},{default:ei(()=>[n.$slots.header?(Qe(),St("div",{key:0,class:pt(n.nsSelect.be("dropdown","header")),onClick:wr(()=>{},["stop"])},[Ii(n.$slots,"header")],10,["onClick"])):xi("v-if",!0),$r(Kt(h,{id:n.contentId,ref:"scrollbarRef",tag:"ul","wrap-class":n.nsSelect.be("dropdown","wrap"),"view-class":n.nsSelect.be("dropdown","list"),class:pt([n.nsSelect.is("empty",n.filteredOptionsCount===0)]),role:"listbox","aria-label":n.ariaLabel,"aria-orientation":"vertical"},{default:ei(()=>[n.showNewOption?(Qe(),Mi(c,{key:0,value:n.states.inputValue,created:!0},null,8,["value"])):xi("v-if",!0),Kt(u,null,{default:ei(()=>[Ii(n.$slots,"default")]),_:3})]),_:3},8,["id","wrap-class","view-class","class","aria-label"]),[[rd,n.states.options.size>0&&!n.loading]]),n.$slots.loading&&n.loading?(Qe(),St("div",{key:1,class:pt(n.nsSelect.be("dropdown","loading"))},[Ii(n.$slots,"loading")],2)):n.loading||n.filteredOptionsCount===0?(Qe(),St("div",{key:2,class:pt(n.nsSelect.be("dropdown","empty"))},[Ii(n.$slots,"empty",{},()=>[vt("span",null,Mn(n.emptyText),1)])],2)):xi("v-if",!0),n.$slots.footer?(Qe(),St("div",{key:3,class:pt(n.nsSelect.be("dropdown","footer")),onClick:wr(()=>{},["stop"])},[Ii(n.$slots,"footer")],10,["onClick"])):xi("v-if",!0)]),_:3},512)]),_:3},8,["visible","placement","teleported","popper-class","popper-options","fallback-placements","effect","transition","persistent","onBeforeShow","onHide"])],16,["onMouseleave"])),[[f,n.handleClickOutside,n.popperRef]])}var r7e=us(n7e,[["render",s7e],["__file","select.vue"]]);const o7e=Et({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:Boolean},setup(n){const e=qs("select"),t=je(null),i=sr(),s=je([]);To(xve,ia({...Yg(n)}));const r=Ee(()=>s.value.some(c=>c.visible===!0)),o=c=>{var u,h;return((u=c.type)==null?void 0:u.name)==="ElOption"&&!!((h=c.component)!=null&&h.proxy)},a=c=>{const u=Lh(c),h=[];return u.forEach(d=>{var f,p;o(d)?h.push(d.component.proxy):(f=d.children)!=null&&f.length?h.push(...a(d.children)):(p=d.component)!=null&&p.subTree&&h.push(...a(d.component.subTree))}),h},l=()=>{s.value=a(i.subTree)};return or(()=>{l()}),FMe(t,l,{attributes:!0,subtree:!0,childList:!0}),{groupRef:t,visible:r,ns:e}}});function a7e(n,e,t,i,s,r){return $r((Qe(),St("ul",{ref:"groupRef",class:pt(n.ns.be("group","wrap"))},[vt("li",{class:pt(n.ns.be("group","title"))},Mn(n.label),3),vt("li",null,[vt("ul",{class:pt(n.ns.b("group"))},[Ii(n.$slots,"default")],2)])],2)),[[rd,n.visible]])}var Lve=us(o7e,[["render",a7e],["__file","option-group.vue"]]);const Eve=Gu(r7e,{Option:oZ,OptionGroup:Lve}),kve=iN(oZ);iN(Lve);const l7e=cs({trigger:$I.trigger,placement:T9.placement,disabled:$I.disabled,visible:Ic.visible,transition:Ic.transition,popperOptions:T9.popperOptions,tabindex:T9.tabindex,content:Ic.content,popperStyle:Ic.popperStyle,popperClass:Ic.popperClass,enterable:{...Ic.enterable,default:!0},effect:{...Ic.effect,default:"light"},teleported:Ic.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),c7e={"update:visible":n=>Bf(n),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},u7e="onUpdate:visible",h7e=Et({name:"ElPopover"}),d7e=Et({...h7e,props:l7e,emits:c7e,setup(n,{expose:e,emit:t}){const i=n,s=Ee(()=>i[u7e]),r=qs("popover"),o=je(),a=Ee(()=>{var m;return(m=ae(o))==null?void 0:m.popperRef}),l=Ee(()=>[{width:X1(i.width)},i.popperStyle]),c=Ee(()=>[r.b(),i.popperClass,{[r.m("plain")]:!!i.content}]),u=Ee(()=>i.transition===`${r.namespace.value}-fade-in-linear`),h=()=>{var m;(m=o.value)==null||m.hide()},d=()=>{t("before-enter")},f=()=>{t("before-leave")},p=()=>{t("after-enter")},g=()=>{t("update:visible",!1),t("after-leave")};return e({popperRef:a,hide:h}),(m,_)=>(Qe(),Mi(ae(rZ),Ax({ref_key:"tooltipRef",ref:o},m.$attrs,{trigger:m.trigger,placement:m.placement,disabled:m.disabled,visible:m.visible,transition:m.transition,"popper-options":m.popperOptions,tabindex:m.tabindex,content:m.content,offset:m.offset,"show-after":m.showAfter,"hide-after":m.hideAfter,"auto-close":m.autoClose,"show-arrow":m.showArrow,"aria-label":m.title,effect:m.effect,enterable:m.enterable,"popper-class":ae(c),"popper-style":ae(l),teleported:m.teleported,persistent:m.persistent,"gpu-acceleration":ae(u),"onUpdate:visible":ae(s),onBeforeShow:d,onBeforeHide:f,onShow:p,onHide:g}),{content:ei(()=>[m.title?(Qe(),St("div",{key:0,class:pt(ae(r).e("title")),role:"title"},Mn(m.title),3)):xi("v-if",!0),Ii(m.$slots,"default",{},()=>[kh(Mn(m.content),1)])]),default:ei(()=>[m.$slots.reference?Ii(m.$slots,"reference",{key:0}):xi("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var f7e=us(d7e,[["__file","popover.vue"]]);const moe=(n,e)=>{const t=e.arg||e.value,i=t==null?void 0:t.popperRef;i&&(i.triggerRef=n)};var p7e={mounted(n,e){moe(n,e)},updated(n,e){moe(n,e)}};const g7e="popover",m7e=f5e(p7e,g7e),_7e=Gu(f7e,{directive:m7e});function v7e(n){let e;const t=je(!1),i=ia({...n,originalPosition:"",originalOverflow:"",visible:!1});function s(d){i.text=d}function r(){const d=i.parent,f=h.ns;if(!d.vLoadingAddClassList){let p=d.getAttribute("loading-number");p=Number.parseInt(p)-1,p?d.setAttribute("loading-number",p.toString()):(sO(d,f.bm("parent","relative")),d.removeAttribute("loading-number")),sO(d,f.bm("parent","hidden"))}o(),u.unmount()}function o(){var d,f;(f=(d=h.$el)==null?void 0:d.parentNode)==null||f.removeChild(h.$el)}function a(){var d;n.beforeClose&&!n.beforeClose()||(t.value=!0,clearTimeout(e),e=setTimeout(l,400),i.visible=!1,(d=n.closed)==null||d.call(n))}function l(){if(!t.value)return;const d=i.parent;t.value=!1,d.vLoadingAddClassList=void 0,r()}const u=Q1e(Et({name:"ElLoading",setup(d,{expose:f}){const{ns:p,zIndex:g}=lve("loading");return f({ns:p,zIndex:g}),()=>{const m=i.spinner||i.svg,_=Lw("svg",{class:"circular",viewBox:i.svgViewBox?i.svgViewBox:"0 0 50 50",...m?{innerHTML:m}:{}},[Lw("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),b=i.text?Lw("p",{class:p.b("text")},[i.text]):void 0;return Lw(m0,{name:p.b("fade"),onAfterLeave:l},{default:ei(()=>[$r(Kt("div",{style:{backgroundColor:i.background||""},class:[p.b("mask"),i.customClass,i.fullscreen?"is-fullscreen":""]},[Lw("div",{class:p.b("spinner")},[_,b])]),[[rd,i.visible]])])})}}})),h=u.mount(document.createElement("div"));return{...Yg(i),setText:s,removeElLoadingChild:o,close:a,handleAfterLeave:l,vm:h,get $el(){return h.$el}}}let EA;const b7e=function(n={}){if(!no)return;const e=y7e(n);if(e.fullscreen&&EA)return EA;const t=v7e({...e,closed:()=>{var s;(s=e.closed)==null||s.call(e),e.fullscreen&&(EA=void 0)}});w7e(e,e.parent,t),_oe(e,e.parent,t),e.parent.vLoadingAddClassList=()=>_oe(e,e.parent,t);let i=e.parent.getAttribute("loading-number");return i?i=`${Number.parseInt(i)+1}`:i="1",e.parent.setAttribute("loading-number",i),e.parent.appendChild(t.$el),Hs(()=>t.visible.value=e.visible),e.fullscreen&&(EA=t),t},y7e=n=>{var e,t,i,s;let r;return on(n.target)?r=(e=document.querySelector(n.target))!=null?e:document.body:r=n.target||document.body,{parent:r===document.body||n.body?document.body:r,background:n.background||"",svg:n.svg||"",svgViewBox:n.svgViewBox||"",spinner:n.spinner||!1,text:n.text||"",fullscreen:r===document.body&&((t=n.fullscreen)!=null?t:!0),lock:(i=n.lock)!=null?i:!1,customClass:n.customClass||"",visible:(s=n.visible)!=null?s:!0,beforeClose:n.beforeClose,closed:n.closed,target:r}},w7e=async(n,e,t)=>{const{nextZIndex:i}=t.vm.zIndex||t.vm._.exposed.zIndex,s={};if(n.fullscreen)t.originalPosition.value=ML(document.body,"position"),t.originalOverflow.value=ML(document.body,"overflow"),s.zIndex=i();else if(n.parent===document.body){t.originalPosition.value=ML(document.body,"position"),await Hs();for(const r of["top","left"]){const o=r==="top"?"scrollTop":"scrollLeft";s[r]=`${n.target.getBoundingClientRect()[r]+document.body[o]+document.documentElement[o]-Number.parseInt(ML(document.body,`margin-${r}`),10)}px`}for(const r of["height","width"])s[r]=`${n.target.getBoundingClientRect()[r]}px`}else t.originalPosition.value=ML(e,"position");for(const[r,o]of Object.entries(s))t.$el.style[r]=o},_oe=(n,e,t)=>{const i=t.vm.ns||t.vm._.exposed.ns;["absolute","fixed","sticky"].includes(t.originalPosition.value)?sO(e,i.bm("parent","relative")):Mre(e,i.bm("parent","relative")),n.fullscreen&&n.lock?Mre(e,i.bm("parent","hidden")):sO(e,i.bm("parent","hidden"))},TR=Symbol("ElLoading"),voe=(n,e)=>{var t,i,s,r;const o=e.instance,a=d=>zi(e.value)?e.value[d]:void 0,l=d=>{const f=on(d)&&(o==null?void 0:o[d])||d;return f&&je(f)},c=d=>l(a(d)||n.getAttribute(`element-loading-${ep(d)}`)),u=(t=a("fullscreen"))!=null?t:e.modifiers.fullscreen,h={text:c("text"),svg:c("svg"),svgViewBox:c("svgViewBox"),spinner:c("spinner"),background:c("background"),customClass:c("customClass"),fullscreen:u,target:(i=a("target"))!=null?i:u?void 0:n,body:(s=a("body"))!=null?s:e.modifiers.body,lock:(r=a("lock"))!=null?r:e.modifiers.lock};n[TR]={options:h,instance:b7e(h)}},C7e=(n,e)=>{for(const t of Object.keys(e))jn(e[t])&&(e[t].value=n[t])},S7e={mounted(n,e){e.value&&voe(n,e)},updated(n,e){const t=n[TR];e.oldValue!==e.value&&(e.value&&!e.oldValue?voe(n,e):e.value&&e.oldValue?zi(e.value)&&C7e(e.value,t.options):t==null||t.instance.close())},unmounted(n){var e;(e=n[TR])==null||e.instance.close(),n[TR]=null}},Ive=["success","info","warning","error"],ma=g5e({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:no?document.body:void 0}),x7e=cs({customClass:{type:String,default:ma.customClass},center:{type:Boolean,default:ma.center},dangerouslyUseHTMLString:{type:Boolean,default:ma.dangerouslyUseHTMLString},duration:{type:Number,default:ma.duration},icon:{type:BI,default:ma.icon},id:{type:String,default:ma.id},message:{type:Ti([String,Object,Function]),default:ma.message},onClose:{type:Ti(Function),default:ma.onClose},showClose:{type:Boolean,default:ma.showClose},type:{type:String,values:Ive,default:ma.type},plain:{type:Boolean,default:ma.plain},offset:{type:Number,default:ma.offset},zIndex:{type:Number,default:ma.zIndex},grouping:{type:Boolean,default:ma.grouping},repeatNum:{type:Number,default:ma.repeatNum}}),L7e={destroy:()=>!0},Ih=jme([]),E7e=n=>{const e=Ih.findIndex(s=>s.id===n),t=Ih[e];let i;return e>0&&(i=Ih[e-1]),{current:t,prev:i}},k7e=n=>{const{prev:e}=E7e(n);return e?e.vm.exposed.bottom.value:0},I7e=(n,e)=>Ih.findIndex(i=>i.id===n)>0?16:e,T7e=Et({name:"ElMessage"}),D7e=Et({...T7e,props:x7e,emits:L7e,setup(n,{expose:e}){const t=n,{Close:i}=u5e,{ns:s,zIndex:r}=lve("message"),{currentZIndex:o,nextZIndex:a}=r,l=je(),c=je(!1),u=je(0);let h;const d=Ee(()=>t.type?t.type==="error"?"danger":t.type:"info"),f=Ee(()=>{const k=t.type;return{[s.bm("icon",k)]:k&&Ore[k]}}),p=Ee(()=>t.icon||Ore[t.type]||""),g=Ee(()=>k7e(t.id)),m=Ee(()=>I7e(t.id,t.offset)+g.value),_=Ee(()=>u.value+m.value),b=Ee(()=>({top:`${m.value}px`,zIndex:o.value}));function w(){t.duration!==0&&({stop:h}=TMe(()=>{S()},t.duration))}function C(){h==null||h()}function S(){c.value=!1}function x({code:k}){k===SS.esc&&S()}return or(()=>{w(),a(),c.value=!0}),Pt(()=>t.repeatNum,()=>{C(),w()}),wf(document,"keydown",x),Gd(l,()=>{u.value=l.value.getBoundingClientRect().height}),e({visible:c,bottom:_,close:S}),(k,L)=>(Qe(),Mi(m0,{name:ae(s).b("fade"),onBeforeLeave:k.onClose,onAfterLeave:E=>k.$emit("destroy"),persisted:""},{default:ei(()=>[$r(vt("div",{id:k.id,ref_key:"messageRef",ref:l,class:pt([ae(s).b(),{[ae(s).m(k.type)]:k.type},ae(s).is("center",k.center),ae(s).is("closable",k.showClose),ae(s).is("plain",k.plain),k.customClass]),style:Hr(ae(b)),role:"alert",onMouseenter:C,onMouseleave:w},[k.repeatNum>1?(Qe(),Mi(ae(f9e),{key:0,value:k.repeatNum,type:ae(d),class:pt(ae(s).e("badge"))},null,8,["value","type","class"])):xi("v-if",!0),ae(p)?(Qe(),Mi(ae(TS),{key:1,class:pt([ae(s).e("icon"),ae(f)])},{default:ei(()=>[(Qe(),Mi(_g(ae(p))))]),_:1},8,["class"])):xi("v-if",!0),Ii(k.$slots,"default",{},()=>[k.dangerouslyUseHTMLString?(Qe(),St(ss,{key:1},[xi(" Caution here, message could've been compromised, never use user's input as message "),vt("p",{class:pt(ae(s).e("content")),innerHTML:k.message},null,10,["innerHTML"])],2112)):(Qe(),St("p",{key:0,class:pt(ae(s).e("content"))},Mn(k.message),3))]),k.showClose?(Qe(),Mi(ae(TS),{key:2,class:pt(ae(s).e("closeBtn")),onClick:wr(S,["stop"])},{default:ei(()=>[Kt(ae(i))]),_:1},8,["class","onClick"])):xi("v-if",!0)],46,["id"]),[[rd,c.value]])]),_:3},8,["name","onBeforeLeave","onAfterLeave"]))}});var N7e=us(D7e,[["__file","message.vue"]]);let A7e=1;const Tve=n=>{const e=!n||on(n)||yS(n)||Wt(n)?{message:n}:n,t={...ma,...e};if(!t.appendTo)t.appendTo=document.body;else if(on(t.appendTo)){let i=document.querySelector(t.appendTo);ub(i)||(i=document.body),t.appendTo=i}return Bf(Md.grouping)&&!t.grouping&&(t.grouping=Md.grouping),xo(Md.duration)&&t.duration===3e3&&(t.duration=Md.duration),xo(Md.offset)&&t.offset===16&&(t.offset=Md.offset),Bf(Md.showClose)&&!t.showClose&&(t.showClose=Md.showClose),t},P7e=n=>{const e=Ih.indexOf(n);if(e===-1)return;Ih.splice(e,1);const{handler:t}=n;t.close()},R7e=({appendTo:n,...e},t)=>{const i=`message_${A7e++}`,s=e.onClose,r=document.createElement("div"),o={...e,id:i,onClose:()=>{s==null||s(),P7e(u)},onDestroy:()=>{Kse(null,r)}},a=Kt(N7e,o,Wt(o.message)||yS(o.message)?{default:Wt(o.message)?o.message:()=>o.message}:null);a.appContext=t||NS._context,Kse(a,r),n.appendChild(r.firstElementChild);const l=a.component,u={id:i,vnode:a,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:a.component.props};return u},NS=(n={},e)=>{if(!no)return{close:()=>{}};const t=Tve(n);if(t.grouping&&Ih.length){const s=Ih.find(({vnode:r})=>{var o;return((o=r.props)==null?void 0:o.message)===t.message});if(s)return s.props.repeatNum+=1,s.props.type=t.type,s.handler}if(xo(Md.max)&&Ih.length>=Md.max)return{close:()=>{}};const i=R7e(t,e);return Ih.push(i),i.handler};Ive.forEach(n=>{NS[n]=(e={},t)=>{const i=Tve(e);return NS({...i,type:n},t)}});function M7e(n){for(const e of Ih)(!n||n===e.props.type)&&e.handler.close()}NS.closeAll=M7e;NS._context=null;const O7e=d5e(NS,"$message");var cH={exports:{}};const F7e="2.0.0",Dve=256,B7e=Number.MAX_SAFE_INTEGER||9007199254740991,W7e=16,V7e=Dve-6,H7e=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var _6={MAX_LENGTH:Dve,MAX_SAFE_COMPONENT_LENGTH:W7e,MAX_SAFE_BUILD_LENGTH:V7e,MAX_SAFE_INTEGER:B7e,RELEASE_TYPES:H7e,SEMVER_SPEC_VERSION:F7e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},D9={};const $7e=typeof process=="object"&&D9&&D9.NODE_DEBUG&&/\bsemver\b/i.test(D9.NODE_DEBUG)?(...n)=>console.error("SEMVER",...n):()=>{};var v6=$7e;(function(n,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:s}=_6,r=v6;e=n.exports={};const o=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.t={};let u=0;const h="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",s],[h,i]],f=g=>{for(const[m,_]of d)g=g.split(`${m}*`).join(`${m}{0,${_}}`).split(`${m}+`).join(`${m}{1,${_}}`);return g},p=(g,m,_)=>{const b=f(m),w=u++;r(g,w,m),c[g]=w,l[w]=m,o[w]=new RegExp(m,_?"g":void 0),a[w]=new RegExp(b,_?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${h}*`),p("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${h}+`),p("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),p("FULL",`^${l[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),p("LOOSE",`^${l[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),p("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),p("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",l[c.COERCE],!0),p("COERCERTLFULL",l[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",p("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",p("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(cH,cH.exports);var aN=cH.exports;const z7e=Object.freeze({loose:!0}),U7e=Object.freeze({}),j7e=n=>n?typeof n!="object"?z7e:n:U7e;var aZ=j7e;const boe=/^[0-9]+$/,Nve=(n,e)=>{const t=boe.test(n),i=boe.test(e);return t&&i&&(n=+n,e=+e),n===e?0:t&&!i?-1:i&&!t?1:n<e?-1:1},q7e=(n,e)=>Nve(e,n);var Ave={compareIdentifiers:Nve,rcompareIdentifiers:q7e};const kA=v6,{MAX_LENGTH:yoe,MAX_SAFE_INTEGER:IA}=_6,{safeRe:woe,t:Coe}=aN,K7e=aZ,{compareIdentifiers:X0}=Ave;let G7e=class Id{constructor(e,t){if(t=K7e(t),e instanceof Id){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>yoe)throw new TypeError(`version is longer than ${yoe} characters`);kA("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const i=e.trim().match(t.loose?woe[Coe.LOOSE]:woe[Coe.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>IA||this.major<0)throw new TypeError("Invalid major version");if(this.minor>IA||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>IA||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){const r=+s;if(r>=0&&r<IA)return r}return s}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(kA("SemVer.compare",this.version,this.options,e),!(e instanceof Id)){if(typeof e=="string"&&e===this.version)return 0;e=new Id(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof Id||(e=new Id(e,this.options)),X0(this.major,e.major)||X0(this.minor,e.minor)||X0(this.patch,e.patch)}comparePre(e){if(e instanceof Id||(e=new Id(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const i=this.prerelease[t],s=e.prerelease[t];if(kA("prerelease compare",t,i,s),i===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(i===void 0)return-1;if(i===s)continue;return X0(i,s)}while(++t)}compareBuild(e){e instanceof Id||(e=new Id(e,this.options));let t=0;do{const i=this.build[t],s=e.build[t];if(kA("build compare",t,i,s),i===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(i===void 0)return-1;if(i===s)continue;return X0(i,s)}while(++t)}inc(e,t,i){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,i),this.inc("pre",t,i);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,i),this.inc("pre",t,i);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const s=Number(i)?1:0;if(!t&&i===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[s];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(".")&&i===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(t){let r=[t,s];i===!1&&(r=[t]),X0(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var Cl=G7e;const Soe=Cl,X7e=(n,e,t=!1)=>{if(n instanceof Soe)return n;try{return new Soe(n,e)}catch(i){if(!t)return null;throw i}};var Fx=X7e;const Y7e=Fx,Z7e=(n,e)=>{const t=Y7e(n,e);return t?t.version:null};var Q7e=Z7e;const J7e=Fx,eWe=(n,e)=>{const t=J7e(n.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var tWe=eWe;const xoe=Cl,iWe=(n,e,t,i,s)=>{typeof t=="string"&&(s=i,i=t,t=void 0);try{return new xoe(n instanceof xoe?n.version:n,t).inc(e,i,s).version}catch{return null}};var nWe=iWe;const Loe=Fx,sWe=(n,e)=>{const t=Loe(n,null,!0),i=Loe(e,null,!0),s=t.compare(i);if(s===0)return null;const r=s>0,o=r?t:i,a=r?i:t,l=!!o.prerelease.length;if(!!a.prerelease.length&&!l)return!a.patch&&!a.minor?"major":o.patch?"patch":o.minor?"minor":"major";const u=l?"pre":"";return t.major!==i.major?u+"major":t.minor!==i.minor?u+"minor":t.patch!==i.patch?u+"patch":"prerelease"};var rWe=sWe;const oWe=Cl,aWe=(n,e)=>new oWe(n,e).major;var lWe=aWe;const cWe=Cl,uWe=(n,e)=>new cWe(n,e).minor;var hWe=uWe;const dWe=Cl,fWe=(n,e)=>new dWe(n,e).patch;var pWe=fWe;const gWe=Fx,mWe=(n,e)=>{const t=gWe(n,e);return t&&t.prerelease.length?t.prerelease:null};var _We=mWe;const Eoe=Cl,vWe=(n,e,t)=>new Eoe(n,t).compare(new Eoe(e,t));var ld=vWe;const bWe=ld,yWe=(n,e,t)=>bWe(e,n,t);var wWe=yWe;const CWe=ld,SWe=(n,e)=>CWe(n,e,!0);var xWe=SWe;const koe=Cl,LWe=(n,e,t)=>{const i=new koe(n,t),s=new koe(e,t);return i.compare(s)||i.compareBuild(s)};var lZ=LWe;const EWe=lZ,kWe=(n,e)=>n.sort((t,i)=>EWe(t,i,e));var IWe=kWe;const TWe=lZ,DWe=(n,e)=>n.sort((t,i)=>TWe(i,t,e));var NWe=DWe;const AWe=ld,PWe=(n,e,t)=>AWe(n,e,t)>0;var b6=PWe;const RWe=ld,MWe=(n,e,t)=>RWe(n,e,t)<0;var cZ=MWe;const OWe=ld,FWe=(n,e,t)=>OWe(n,e,t)===0;var Pve=FWe;const BWe=ld,WWe=(n,e,t)=>BWe(n,e,t)!==0;var Rve=WWe;const VWe=ld,HWe=(n,e,t)=>VWe(n,e,t)>=0;var uZ=HWe;const $We=ld,zWe=(n,e,t)=>$We(n,e,t)<=0;var hZ=zWe;const UWe=Pve,jWe=Rve,qWe=b6,KWe=uZ,GWe=cZ,XWe=hZ,YWe=(n,e,t,i)=>{switch(e){case"===":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n===t;case"!==":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n!==t;case"":case"=":case"==":return UWe(n,t,i);case"!=":return jWe(n,t,i);case">":return qWe(n,t,i);case">=":return KWe(n,t,i);case"<":return GWe(n,t,i);case"<=":return XWe(n,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};var Mve=YWe;const ZWe=Cl,QWe=Fx,{safeRe:TA,t:DA}=aN,JWe=(n,e)=>{if(n instanceof ZWe)return n;if(typeof n=="number"&&(n=String(n)),typeof n!="string")return null;e=e||{};let t=null;if(!e.rtl)t=n.match(e.includePrerelease?TA[DA.COERCEFULL]:TA[DA.COERCE]);else{const l=e.includePrerelease?TA[DA.COERCERTLFULL]:TA[DA.COERCERTL];let c;for(;(c=l.exec(n))&&(!t||t.index+t[0].length!==n.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;const i=t[2],s=t[3]||"0",r=t[4]||"0",o=e.includePrerelease&&t[5]?`-${t[5]}`:"",a=e.includePrerelease&&t[6]?`+${t[6]}`:"";return QWe(`${i}.${s}.${r}${o}${a}`,e)};var eVe=JWe;let tVe=class{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){const s=this.map.keys().next().value;this.delete(s)}this.map.set(e,t)}return this}};var iVe=tVe,N9,Ioe;function cd(){if(Ioe)return N9;Ioe=1;const n=/\s+/g;class e{constructor(V,W){if(W=s(W),V instanceof e)return V.loose===!!W.loose&&V.includePrerelease===!!W.includePrerelease?V:new e(V.raw,W);if(V instanceof r)return this.raw=V.value,this.set=[[V]],this.formatted=void 0,this;if(this.options=W,this.loose=!!W.loose,this.includePrerelease=!!W.includePrerelease,this.raw=V.trim().replace(n," "),this.set=this.raw.split("||").map(B=>this.parseRange(B.trim())).filter(B=>B.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const B=this.set[0];if(this.set=this.set.filter($=>!g($[0])),this.set.length===0)this.set=[B];else if(this.set.length>1){for(const $ of this.set)if($.length===1&&m($[0])){this.set=[$];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let V=0;V<this.set.length;V++){V>0&&(this.formatted+="||");const W=this.set[V];for(let B=0;B<W.length;B++)B>0&&(this.formatted+=" "),this.formatted+=W[B].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(V){const B=((this.options.includePrerelease&&f)|(this.options.loose&&p))+":"+V,$=i.get(B);if($)return $;const Y=this.options.loose,le=Y?l[c.HYPHENRANGELOOSE]:l[c.HYPHENRANGE];V=V.replace(le,T(this.options.includePrerelease)),o("hyphen replace",V),V=V.replace(l[c.COMPARATORTRIM],u),o("comparator trim",V),V=V.replace(l[c.TILDETRIM],h),o("tilde trim",V),V=V.replace(l[c.CARETTRIM],d),o("caret trim",V);let re=V.split(" ").map(j=>b(j,this.options)).join(" ").split(/\s+/).map(j=>I(j,this.options));Y&&(re=re.filter(j=>(o("loose invalid filter",j,this.options),!!j.match(l[c.COMPARATORLOOSE])))),o("range list",re);const z=new Map,K=re.map(j=>new r(j,this.options));for(const j of K){if(g(j))return[j];z.set(j.value,j)}z.size>1&&z.has("")&&z.delete("");const Z=[...z.values()];return i.set(B,Z),Z}intersects(V,W){if(!(V instanceof e))throw new TypeError("a Range is required");return this.set.some(B=>_(B,W)&&V.set.some($=>_($,W)&&B.every(Y=>$.every(le=>Y.intersects(le,W)))))}test(V){if(!V)return!1;if(typeof V=="string")try{V=new a(V,this.options)}catch{return!1}for(let W=0;W<this.set.length;W++)if(N(this.set[W],V,this.options))return!0;return!1}}N9=e;const t=iVe,i=new t,s=aZ,r=y6(),o=v6,a=Cl,{safeRe:l,t:c,comparatorTrimReplace:u,tildeTrimReplace:h,caretTrimReplace:d}=aN,{FLAG_INCLUDE_PRERELEASE:f,FLAG_LOOSE:p}=_6,g=M=>M.value==="<0.0.0-0",m=M=>M.value==="",_=(M,V)=>{let W=!0;const B=M.slice();let $=B.pop();for(;W&&B.length;)W=B.every(Y=>$.intersects(Y,V)),$=B.pop();return W},b=(M,V)=>(o("comp",M,V),M=x(M,V),o("caret",M),M=C(M,V),o("tildes",M),M=L(M,V),o("xrange",M),M=A(M,V),o("stars",M),M),w=M=>!M||M.toLowerCase()==="x"||M==="*",C=(M,V)=>M.trim().split(/\s+/).map(W=>S(W,V)).join(" "),S=(M,V)=>{const W=V.loose?l[c.TILDELOOSE]:l[c.TILDE];return M.replace(W,(B,$,Y,le,re)=>{o("tilde",M,B,$,Y,le,re);let z;return w($)?z="":w(Y)?z=`>=${$}.0.0 <${+$+1}.0.0-0`:w(le)?z=`>=${$}.${Y}.0 <${$}.${+Y+1}.0-0`:re?(o("replaceTilde pr",re),z=`>=${$}.${Y}.${le}-${re} <${$}.${+Y+1}.0-0`):z=`>=${$}.${Y}.${le} <${$}.${+Y+1}.0-0`,o("tilde return",z),z})},x=(M,V)=>M.trim().split(/\s+/).map(W=>k(W,V)).join(" "),k=(M,V)=>{o("caret",M,V);const W=V.loose?l[c.CARETLOOSE]:l[c.CARET],B=V.includePrerelease?"-0":"";return M.replace(W,($,Y,le,re,z)=>{o("caret",M,$,Y,le,re,z);let K;return w(Y)?K="":w(le)?K=`>=${Y}.0.0${B} <${+Y+1}.0.0-0`:w(re)?Y==="0"?K=`>=${Y}.${le}.0${B} <${Y}.${+le+1}.0-0`:K=`>=${Y}.${le}.0${B} <${+Y+1}.0.0-0`:z?(o("replaceCaret pr",z),Y==="0"?le==="0"?K=`>=${Y}.${le}.${re}-${z} <${Y}.${le}.${+re+1}-0`:K=`>=${Y}.${le}.${re}-${z} <${Y}.${+le+1}.0-0`:K=`>=${Y}.${le}.${re}-${z} <${+Y+1}.0.0-0`):(o("no pr"),Y==="0"?le==="0"?K=`>=${Y}.${le}.${re}${B} <${Y}.${le}.${+re+1}-0`:K=`>=${Y}.${le}.${re}${B} <${Y}.${+le+1}.0-0`:K=`>=${Y}.${le}.${re} <${+Y+1}.0.0-0`),o("caret return",K),K})},L=(M,V)=>(o("replaceXRanges",M,V),M.split(/\s+/).map(W=>E(W,V)).join(" ")),E=(M,V)=>{M=M.trim();const W=V.loose?l[c.XRANGELOOSE]:l[c.XRANGE];return M.replace(W,(B,$,Y,le,re,z)=>{o("xRange",M,B,$,Y,le,re,z);const K=w(Y),Z=K||w(le),j=Z||w(re),ce=j;return $==="="&&ce&&($=""),z=V.includePrerelease?"-0":"",K?$===">"||$==="<"?B="<0.0.0-0":B="*":$&&ce?(Z&&(le=0),re=0,$===">"?($=">=",Z?(Y=+Y+1,le=0,re=0):(le=+le+1,re=0)):$==="<="&&($="<",Z?Y=+Y+1:le=+le+1),$==="<"&&(z="-0"),B=`${$+Y}.${le}.${re}${z}`):Z?B=`>=${Y}.0.0${z} <${+Y+1}.0.0-0`:j&&(B=`>=${Y}.${le}.0${z} <${Y}.${+le+1}.0-0`),o("xRange return",B),B})},A=(M,V)=>(o("replaceStars",M,V),M.trim().replace(l[c.STAR],"")),I=(M,V)=>(o("replaceGTE0",M,V),M.trim().replace(l[V.includePrerelease?c.GTE0PRE:c.GTE0],"")),T=M=>(V,W,B,$,Y,le,re,z,K,Z,j,ce)=>(w(B)?W="":w($)?W=`>=${B}.0.0${M?"-0":""}`:w(Y)?W=`>=${B}.${$}.0${M?"-0":""}`:le?W=`>=${W}`:W=`>=${W}${M?"-0":""}`,w(K)?z="":w(Z)?z=`<${+K+1}.0.0-0`:w(j)?z=`<${K}.${+Z+1}.0-0`:ce?z=`<=${K}.${Z}.${j}-${ce}`:M?z=`<${K}.${Z}.${+j+1}-0`:z=`<=${z}`,`${W} ${z}`.trim()),N=(M,V,W)=>{for(let B=0;B<M.length;B++)if(!M[B].test(V))return!1;if(V.prerelease.length&&!W.includePrerelease){for(let B=0;B<M.length;B++)if(o(M[B].semver),M[B].semver!==r.ANY&&M[B].semver.prerelease.length>0){const $=M[B].semver;if($.major===V.major&&$.minor===V.minor&&$.patch===V.patch)return!0}return!1}return!0};return N9}var A9,Toe;function y6(){if(Toe)return A9;Toe=1;const n=Symbol("SemVer ANY");class e{static get ANY(){return n}constructor(u,h){if(h=t(h),u instanceof e){if(u.loose===!!h.loose)return u;u=u.value}u=u.trim().split(/\s+/).join(" "),o("comparator",u,h),this.options=h,this.loose=!!h.loose,this.parse(u),this.semver===n?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(u){const h=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],d=u.match(h);if(!d)throw new TypeError(`Invalid comparator: ${u}`);this.operator=d[1]!==void 0?d[1]:"",this.operator==="="&&(this.operator=""),d[2]?this.semver=new a(d[2],this.options.loose):this.semver=n}toString(){return this.value}test(u){if(o("Comparator.test",u,this.options.loose),this.semver===n||u===n)return!0;if(typeof u=="string")try{u=new a(u,this.options)}catch{return!1}return r(u,this.operator,this.semver,this.options)}intersects(u,h){if(!(u instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(u.value,h).test(this.value):u.operator===""?u.value===""?!0:new l(this.value,h).test(u.semver):(h=t(h),h.includePrerelease&&(this.value==="<0.0.0-0"||u.value==="<0.0.0-0")||!h.includePrerelease&&(this.value.startsWith("<0.0.0")||u.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&u.operator.startsWith(">")||this.operator.startsWith("<")&&u.operator.startsWith("<")||this.semver.version===u.semver.version&&this.operator.includes("=")&&u.operator.includes("=")||r(this.semver,"<",u.semver,h)&&this.operator.startsWith(">")&&u.operator.startsWith("<")||r(this.semver,">",u.semver,h)&&this.operator.startsWith("<")&&u.operator.startsWith(">")))}}A9=e;const t=aZ,{safeRe:i,t:s}=aN,r=Mve,o=v6,a=Cl,l=cd();return A9}const nVe=cd(),sVe=(n,e,t)=>{try{e=new nVe(e,t)}catch{return!1}return e.test(n)};var w6=sVe;const rVe=cd(),oVe=(n,e)=>new rVe(n,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));var aVe=oVe;const lVe=Cl,cVe=cd(),uVe=(n,e,t)=>{let i=null,s=null,r=null;try{r=new cVe(e,t)}catch{return null}return n.forEach(o=>{r.test(o)&&(!i||s.compare(o)===-1)&&(i=o,s=new lVe(i,t))}),i};var hVe=uVe;const dVe=Cl,fVe=cd(),pVe=(n,e,t)=>{let i=null,s=null,r=null;try{r=new fVe(e,t)}catch{return null}return n.forEach(o=>{r.test(o)&&(!i||s.compare(o)===1)&&(i=o,s=new dVe(i,t))}),i};var gVe=pVe;const P9=Cl,mVe=cd(),Doe=b6,_Ve=(n,e)=>{n=new mVe(n,e);let t=new P9("0.0.0");if(n.test(t)||(t=new P9("0.0.0-0"),n.test(t)))return t;t=null;for(let i=0;i<n.set.length;++i){const s=n.set[i];let r=null;s.forEach(o=>{const a=new P9(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!r||Doe(a,r))&&(r=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),r&&(!t||Doe(t,r))&&(t=r)}return t&&n.test(t)?t:null};var vVe=_Ve;const bVe=cd(),yVe=(n,e)=>{try{return new bVe(n,e).range||"*"}catch{return null}};var wVe=yVe;const CVe=Cl,Ove=y6(),{ANY:SVe}=Ove,xVe=cd(),LVe=w6,Noe=b6,Aoe=cZ,EVe=hZ,kVe=uZ,IVe=(n,e,t,i)=>{n=new CVe(n,i),e=new xVe(e,i);let s,r,o,a,l;switch(t){case">":s=Noe,r=EVe,o=Aoe,a=">",l=">=";break;case"<":s=Aoe,r=kVe,o=Noe,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(LVe(n,e,i))return!1;for(let c=0;c<e.set.length;++c){const u=e.set[c];let h=null,d=null;if(u.forEach(f=>{f.semver===SVe&&(f=new Ove(">=0.0.0")),h=h||f,d=d||f,s(f.semver,h.semver,i)?h=f:o(f.semver,d.semver,i)&&(d=f)}),h.operator===a||h.operator===l||(!d.operator||d.operator===a)&&r(n,d.semver))return!1;if(d.operator===l&&o(n,d.semver))return!1}return!0};var dZ=IVe;const TVe=dZ,DVe=(n,e,t)=>TVe(n,e,">",t);var NVe=DVe;const AVe=dZ,PVe=(n,e,t)=>AVe(n,e,"<",t);var RVe=PVe;const Poe=cd(),MVe=(n,e,t)=>(n=new Poe(n,t),e=new Poe(e,t),n.intersects(e,t));var OVe=MVe;const FVe=w6,BVe=ld;var WVe=(n,e,t)=>{const i=[];let s=null,r=null;const o=n.sort((u,h)=>BVe(u,h,t));for(const u of o)FVe(u,e,t)?(r=u,s||(s=u)):(r&&i.push([s,r]),r=null,s=null);s&&i.push([s,null]);const a=[];for(const[u,h]of i)u===h?a.push(u):!h&&u===o[0]?a.push("*"):h?u===o[0]?a.push(`<=${h}`):a.push(`${u} - ${h}`):a.push(`>=${u}`);const l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e};const Roe=cd(),fZ=y6(),{ANY:R9}=fZ,FL=w6,pZ=ld,VVe=(n,e,t={})=>{if(n===e)return!0;n=new Roe(n,t),e=new Roe(e,t);let i=!1;e:for(const s of n.set){for(const r of e.set){const o=$Ve(s,r,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},HVe=[new fZ(">=0.0.0-0")],Moe=[new fZ(">=0.0.0")],$Ve=(n,e,t)=>{if(n===e)return!0;if(n.length===1&&n[0].semver===R9){if(e.length===1&&e[0].semver===R9)return!0;t.includePrerelease?n=HVe:n=Moe}if(e.length===1&&e[0].semver===R9){if(t.includePrerelease)return!0;e=Moe}const i=new Set;let s,r;for(const f of n)f.operator===">"||f.operator===">="?s=Ooe(s,f,t):f.operator==="<"||f.operator==="<="?r=Foe(r,f,t):i.add(f.semver);if(i.size>1)return null;let o;if(s&&r){if(o=pZ(s.semver,r.semver,t),o>0)return null;if(o===0&&(s.operator!==">="||r.operator!=="<="))return null}for(const f of i){if(s&&!FL(f,String(s),t)||r&&!FL(f,String(r),t))return null;for(const p of e)if(!FL(f,String(p),t))return!1;return!0}let a,l,c,u,h=r&&!t.includePrerelease&&r.semver.prerelease.length?r.semver:!1,d=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1;h&&h.prerelease.length===1&&r.operator==="<"&&h.prerelease[0]===0&&(h=!1);for(const f of e){if(u=u||f.operator===">"||f.operator===">=",c=c||f.operator==="<"||f.operator==="<=",s){if(d&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===d.major&&f.semver.minor===d.minor&&f.semver.patch===d.patch&&(d=!1),f.operator===">"||f.operator===">="){if(a=Ooe(s,f,t),a===f&&a!==s)return!1}else if(s.operator===">="&&!FL(s.semver,String(f),t))return!1}if(r){if(h&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===h.major&&f.semver.minor===h.minor&&f.semver.patch===h.patch&&(h=!1),f.operator==="<"||f.operator==="<="){if(l=Foe(r,f,t),l===f&&l!==r)return!1}else if(r.operator==="<="&&!FL(r.semver,String(f),t))return!1}if(!f.operator&&(r||s)&&o!==0)return!1}return!(s&&c&&!r&&o!==0||r&&u&&!s&&o!==0||d||h)},Ooe=(n,e,t)=>{if(!n)return e;const i=pZ(n.semver,e.semver,t);return i>0?n:i<0||e.operator===">"&&n.operator===">="?e:n},Foe=(n,e,t)=>{if(!n)return e;const i=pZ(n.semver,e.semver,t);return i<0?n:i>0||e.operator==="<"&&n.operator==="<="?e:n};var zVe=VVe;const M9=aN,Boe=_6,UVe=Cl,Woe=Ave,jVe=Fx,qVe=Q7e,KVe=tWe,GVe=nWe,XVe=rWe,YVe=lWe,ZVe=hWe,QVe=pWe,JVe=_We,eHe=ld,tHe=wWe,iHe=xWe,nHe=lZ,sHe=IWe,rHe=NWe,oHe=b6,aHe=cZ,lHe=Pve,cHe=Rve,uHe=uZ,hHe=hZ,dHe=Mve,fHe=eVe,pHe=y6(),gHe=cd(),mHe=w6,_He=aVe,vHe=hVe,bHe=gVe,yHe=vVe,wHe=wVe,CHe=dZ,SHe=NVe,xHe=RVe,LHe=OVe,EHe=WVe,kHe=zVe;var Fve={parse:jVe,valid:qVe,clean:KVe,inc:GVe,diff:XVe,major:YVe,minor:ZVe,patch:QVe,prerelease:JVe,compare:eHe,rcompare:tHe,compareLoose:iHe,compareBuild:nHe,sort:sHe,rsort:rHe,gt:oHe,lt:aHe,eq:lHe,neq:cHe,gte:uHe,lte:hHe,cmp:dHe,coerce:fHe,Comparator:pHe,Range:gHe,satisfies:mHe,toComparators:_He,maxSatisfying:vHe,minSatisfying:bHe,minVersion:yHe,validRange:wHe,outside:CHe,gtr:SHe,ltr:xHe,intersects:LHe,simplifyRange:EHe,subset:kHe,SemVer:UVe,re:M9.re,src:M9.src,tokens:M9.t,SEMVER_SPEC_VERSION:Boe.SEMVER_SPEC_VERSION,RELEASE_TYPES:Boe.RELEASE_TYPES,compareIdentifiers:Woe.compareIdentifiers,rcompareIdentifiers:Woe.rcompareIdentifiers};function C6(n){return uY()?(Nme(n),!0):!1}function O9(){const n=new Set,e=s=>{n.delete(s)};return{on:s=>{n.add(s);const r=()=>e(s);return C6(r),{off:r}},off:e,trigger:(...s)=>Promise.all(Array.from(n).map(r=>r(...s)))}}function Ia(n){return typeof n=="function"?n():ae(n)}const Bve=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const IHe=Object.prototype.toString,THe=n=>IHe.call(n)==="[object Object]",aO=()=>{};function Wve(n,e){function t(...i){return new Promise((s,r)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(s).catch(r)})}return t}const Vve=n=>n();function DHe(n,e={}){let t,i,s=aO;const r=a=>{clearTimeout(a),s(),s=aO};return a=>{const l=Ia(n),c=Ia(e.maxWait);return t&&r(t),l<=0||c!==void 0&&c<=0?(i&&(r(i),i=null),Promise.resolve(a())):new Promise((u,h)=>{s=e.rejectOnCancel?h:u,c&&!i&&(i=setTimeout(()=>{t&&r(t),i=null,u(a())},c)),t=setTimeout(()=>{i&&r(i),i=null,u(a())},l)})}}function NHe(n=Vve){const e=je(!0);function t(){e.value=!1}function i(){e.value=!0}const s=(...r)=>{e.value&&n(...r)};return{isActive:Ig(e),pause:t,resume:i,eventFilter:s}}function Voe(n,e=!1,t="Timeout"){return new Promise((i,s)=>{setTimeout(e?()=>s(t):i,n)})}function AHe(n,...e){return e.some(t=>t in n)}function PHe(n,e,t=!1){return Object.fromEntries(Object.entries(n).filter(([i,s])=>(!t||s!==void 0)&&!e.includes(i)))}function RHe(n){return sr()}function DR(...n){if(n.length!==1)return Xp(...n);const e=n[0];return typeof e=="function"?Ig(Gme(()=>({get:e,set:aO}))):je(e)}function MHe(n,e=200,t={}){return Wve(DHe(e,t),n)}function OHe(n,e,t={}){const{eventFilter:i=Vve,...s}=t;return Pt(n,Wve(i,e),s)}function FHe(n,e,t={}){const{eventFilter:i,...s}=t,{eventFilter:r,pause:o,resume:a,isActive:l}=NHe(i);return{stop:OHe(n,e,{...s,eventFilter:r}),pause:o,resume:a,isActive:l}}function Hve(n,e=!0,t){RHe()?or(n,t):e?n():Hs(n)}function uH(n,e=!1){function t(h,{flush:d="sync",deep:f=!1,timeout:p,throwOnTimeout:g}={}){let m=null;const b=[new Promise(w=>{m=Pt(n,C=>{h(C)!==e&&(m?m():Hs(()=>m==null?void 0:m()),w(C))},{flush:d,deep:f,immediate:!0})})];return p!=null&&b.push(Voe(p,g).then(()=>Ia(n)).finally(()=>m==null?void 0:m())),Promise.race(b)}function i(h,d){if(!jn(h))return t(C=>C===h,d);const{flush:f="sync",deep:p=!1,timeout:g,throwOnTimeout:m}=d??{};let _=null;const w=[new Promise(C=>{_=Pt([n,h],([S,x])=>{e!==(S===x)&&(_?_():Hs(()=>_==null?void 0:_()),C(S))},{flush:f,deep:p,immediate:!0})})];return g!=null&&w.push(Voe(g,m).then(()=>Ia(n)).finally(()=>(_==null||_(),Ia(n)))),Promise.race(w)}function s(h){return t(d=>!!d,h)}function r(h){return i(null,h)}function o(h){return i(void 0,h)}function a(h){return t(Number.isNaN,h)}function l(h,d){return t(f=>{const p=Array.from(f);return p.includes(h)||p.includes(Ia(h))},d)}function c(h){return u(1,h)}function u(h=1,d){let f=-1;return t(()=>(f+=1,f>=h),d)}return Array.isArray(Ia(n))?{toMatch:t,toContains:l,changed:c,changedTimes:u,get not(){return uH(n,!e)}}:{toMatch:t,toBe:i,toBeTruthy:s,toBeNull:r,toBeNaN:a,toBeUndefined:o,changed:c,changedTimes:u,get not(){return uH(n,!e)}}}function BHe(n){return uH(n)}function WHe(n,e,t={}){const{immediate:i=!0}=t,s=je(!1);let r=null;function o(){r&&(clearTimeout(r),r=null)}function a(){s.value=!1,o()}function l(...c){o(),s.value=!0,r=setTimeout(()=>{s.value=!1,r=null,n(...c)},Ia(e))}return i&&(s.value=!0,Bve&&l()),C6(a),{isPending:Ig(s),start:l,stop:a}}function $ve(n=!1,e={}){const{truthyValue:t=!0,falsyValue:i=!1}=e,s=jn(n),r=je(n);function o(a){if(arguments.length)return r.value=a,r.value;{const l=Ia(t);return r.value=r.value===l?Ia(i):l,r.value}}return s?o:[r,o]}function zve(n){var e;const t=Ia(n);return(e=t==null?void 0:t.$el)!=null?e:t}const Y1=Bve?window:void 0;function Hoe(...n){let e,t,i,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,i,s]=n,e=Y1):[e,t,i,s]=n,!e)return aO;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const r=[],o=()=>{r.forEach(u=>u()),r.length=0},a=(u,h,d,f)=>(u.addEventListener(h,d,f),()=>u.removeEventListener(h,d,f)),l=Pt(()=>[zve(e),Ia(s)],([u,h])=>{if(o(),!u)return;const d=THe(h)?{...h}:h;r.push(...t.flatMap(f=>i.map(p=>a(u,f,p,d))))},{immediate:!0,flush:"post"}),c=()=>{l(),o()};return C6(c),c}function VHe(){const n=je(!1),e=sr();return e&&or(()=>{n.value=!0},e),n}function HHe(n){const e=VHe();return Ee(()=>(e.value,!!n()))}function $He(n,e={}){const{window:t=Y1}=e,i=HHe(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const r=je(!1),o=c=>{r.value=c.matches},a=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},l=g0(()=>{i.value&&(a(),s=t.matchMedia(Ia(n)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),r.value=s.matches)});return C6(()=>{l(),a(),s=void 0}),r}const NA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},AA="__vueuse_ssr_handlers__",zHe=UHe();function UHe(){return AA in NA||(NA[AA]=NA[AA]||{}),NA[AA]}function Uve(n,e){return zHe[n]||e}function jHe(n){return n==null?"any":n instanceof Set?"set":n instanceof Map?"map":n instanceof Date?"date":typeof n=="boolean"?"boolean":typeof n=="string"?"string":typeof n=="object"?"object":Number.isNaN(n)?"any":"number"}const qHe={boolean:{read:n=>n==="true",write:n=>String(n)},object:{read:n=>JSON.parse(n),write:n=>JSON.stringify(n)},number:{read:n=>Number.parseFloat(n),write:n=>String(n)},any:{read:n=>n,write:n=>String(n)},string:{read:n=>n,write:n=>String(n)},map:{read:n=>new Map(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n.entries()))},set:{read:n=>new Set(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n))},date:{read:n=>new Date(n),write:n=>n.toISOString()}},$oe="vueuse-storage";function jve(n,e,t,i={}){var s;const{flush:r="pre",deep:o=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:c=!1,shallow:u,window:h=Y1,eventFilter:d,onError:f=A=>{console.error(A)},initOnMounted:p}=i,g=(u?mg:je)(typeof e=="function"?e():e);if(!t)try{t=Uve("getDefaultStorage",()=>{var A;return(A=Y1)==null?void 0:A.localStorage})()}catch(A){f(A)}if(!t)return g;const m=Ia(e),_=jHe(m),b=(s=i.serializer)!=null?s:qHe[_],{pause:w,resume:C}=FHe(g,()=>x(g.value),{flush:r,deep:o,eventFilter:d});h&&a&&Hve(()=>{t instanceof Storage?Hoe(h,"storage",L):Hoe(h,$oe,E),p&&L()}),p||L();function S(A,I){if(h){const T={key:n,oldValue:A,newValue:I,storageArea:t};h.dispatchEvent(t instanceof Storage?new StorageEvent("storage",T):new CustomEvent($oe,{detail:T}))}}function x(A){try{const I=t.getItem(n);if(A==null)S(I,null),t.removeItem(n);else{const T=b.write(A);I!==T&&(t.setItem(n,T),S(I,T))}}catch(I){f(I)}}function k(A){const I=A?A.newValue:t.getItem(n);if(I==null)return l&&m!=null&&t.setItem(n,b.write(m)),m;if(!A&&c){const T=b.read(I);return typeof c=="function"?c(T,m):_==="object"&&!Array.isArray(T)?{...m,...T}:T}else return typeof I!="string"?I:b.read(I)}function L(A){if(!(A&&A.storageArea!==t)){if(A&&A.key==null){g.value=m;return}if(!(A&&A.key!==n)){w();try{(A==null?void 0:A.newValue)!==b.write(g.value)&&(g.value=k(A))}catch(I){f(I)}finally{A?Hs(C):C()}}}}function E(A){L(A.detail)}return g}function qve(n){return $He("(prefers-color-scheme: dark)",n)}const KHe="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function GHe(n={}){const{selector:e="html",attribute:t="class",initialValue:i="auto",window:s=Y1,storage:r,storageKey:o="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:c,disableTransition:u=!0}=n,h={auto:"",light:"light",dark:"dark",...n.modes||{}},d=qve({window:s}),f=Ee(()=>d.value?"dark":"light"),p=l||(o==null?DR(i):jve(o,i,r,{window:s,listenToStorageChanges:a})),g=Ee(()=>p.value==="auto"?f.value:p.value),m=Uve("updateHTMLAttrs",(C,S,x)=>{const k=typeof C=="string"?s==null?void 0:s.document.querySelector(C):zve(C);if(!k)return;const L=new Set,E=new Set;let A=null;if(S==="class"){const T=x.split(/\s/g);Object.values(h).flatMap(N=>(N||"").split(/\s/g)).filter(Boolean).forEach(N=>{T.includes(N)?L.add(N):E.add(N)})}else A={key:S,value:x};if(L.size===0&&E.size===0&&A===null)return;let I;u&&(I=s.document.createElement("style"),I.appendChild(document.createTextNode(KHe)),s.document.head.appendChild(I));for(const T of L)k.classList.add(T);for(const T of E)k.classList.remove(T);A&&k.setAttribute(A.key,A.value),u&&(s.getComputedStyle(I).opacity,document.head.removeChild(I))});function _(C){var S;m(e,t,(S=h[C])!=null?S:C)}function b(C){n.onChanged?n.onChanged(C,_):_(C)}Pt(g,b,{flush:"post",immediate:!0}),Hve(()=>b(g.value));const w=Ee({get(){return c?p.value:g.value},set(C){p.value=C}});try{return Object.assign(w,{store:p,system:f,state:g})}catch{return w}}function Kve(n={}){const{valueDark:e="dark",valueLight:t="",window:i=Y1}=n,s=GHe({...n,onChanged:(a,l)=>{var c;n.onChanged?(c=n.onChanged)==null||c.call(n,a==="dark",l,a):l(a)},modes:{dark:e,light:t}}),r=Ee(()=>s.system?s.system.value:qve({window:i}).value?"dark":"light");return Ee({get(){return s.value==="dark"},set(a){const l=a?"dark":"light";r.value===l?s.value="auto":s.value=l}})}const XHe={json:"application/json",text:"text/plain"};function zoe(n){return n&&AHe(n,"immediate","refetch","initialData","timeout","beforeFetch","afterFetch","onFetchError","fetch","updateDataOnError")}function F9(n){return typeof Headers<"u"&&n instanceof Headers?Object.fromEntries(n.entries()):n}function YHe(n,...e){var t;const i=typeof AbortController=="function";let s={},r={immediate:!0,refetch:!1,timeout:0,updateDataOnError:!1};const o={method:"GET",type:"text",payload:void 0};e.length>0&&(zoe(e[0])?r={...r,...e[0]}:s=e[0]),e.length>1&&zoe(e[1])&&(r={...r,...e[1]});const{fetch:a=(t=Y1)==null?void 0:t.fetch,initialData:l,timeout:c}=r,u=O9(),h=O9(),d=O9(),f=je(!1),p=je(!1),g=je(!1),m=je(null),_=mg(null),b=mg(null),w=mg(l||null),C=Ee(()=>i&&p.value);let S,x;const k=()=>{i&&(S==null||S.abort(),S=new AbortController,S.signal.onabort=()=>g.value=!0,s={...s,signal:S.signal})},L=W=>{p.value=W,f.value=!W};c&&(x=WHe(k,c,{immediate:!1}));let E=0;const A=async(W=!1)=>{var B,$;k(),L(!0),b.value=null,m.value=null,g.value=!1,E+=1;const Y=E,le={method:o.method,headers:{}};if(o.payload){const Z=F9(le.headers),j=Ia(o.payload);!o.payloadType&&j&&Object.getPrototypeOf(j)===Object.prototype&&!(j instanceof FormData)&&(o.payloadType="json"),o.payloadType&&(Z["Content-Type"]=(B=XHe[o.payloadType])!=null?B:o.payloadType),le.body=o.payloadType==="json"?JSON.stringify(j):j}let re=!1;const z={url:Ia(n),options:{...le,...s},cancel:()=>{re=!0}};if(r.beforeFetch&&Object.assign(z,await r.beforeFetch(z)),re||!a)return L(!1),Promise.resolve(null);let K=null;return x&&x.start(),a(z.url,{...le,...z.options,headers:{...F9(le.headers),...F9(($=z.options)==null?void 0:$.headers)}}).then(async Z=>{if(_.value=Z,m.value=Z.status,K=await Z.clone()[o.type](),!Z.ok)throw w.value=l||null,new Error(Z.statusText);return r.afterFetch&&({data:K}=await r.afterFetch({data:K,response:Z})),w.value=K,u.trigger(Z),Z}).catch(async Z=>{let j=Z.message||Z.name;if(r.onFetchError&&({error:j,data:K}=await r.onFetchError({data:K,error:Z,response:_.value})),b.value=j,r.updateDataOnError&&(w.value=K),h.trigger(Z),W)throw Z;return null}).finally(()=>{Y===E&&L(!1),x&&x.stop(),d.trigger(null)})},I=DR(r.refetch);Pt([I,DR(n)],([W])=>W&&A(),{deep:!0});const T={isFinished:Ig(f),isFetching:Ig(p),statusCode:m,response:_,error:b,data:w,canAbort:C,aborted:g,abort:k,execute:A,onFetchResponse:u.on,onFetchError:h.on,onFetchFinally:d.on,get:N("GET"),put:N("PUT"),post:N("POST"),delete:N("DELETE"),patch:N("PATCH"),head:N("HEAD"),options:N("OPTIONS"),json:V("json"),text:V("text"),blob:V("blob"),arrayBuffer:V("arrayBuffer"),formData:V("formData")};function N(W){return(B,$)=>{if(!p.value)return o.method=W,o.payload=B,o.payloadType=$,jn(o.payload)&&Pt([I,DR(o.payload)],([Y])=>Y&&A(),{deep:!0}),{...T,then(Y,le){return M().then(Y,le)}}}}function M(){return new Promise((W,B)=>{BHe(f).toBe(!0).then(()=>W(T)).catch($=>B($))})}function V(W){return()=>{if(!p.value)return o.type=W,{...T,then(B,$){return M().then(B,$)}}}}return r.immediate&&Promise.resolve().then(()=>A()),{...T,then(W,B){return M().then(W,B)}}}function ZHe(n,e,t={}){const{window:i=Y1}=t;return jve(n,e,i==null?void 0:i.localStorage,t)}const NR=ZHe("setting-cdn","jsdelivr"),gZ=(n,e,t)=>{switch(e=e?`@${e}`:"",NR.value){case"jsdelivr":return`https://cdn.jsdelivr.net/npm/${n}${e}${t}`;case"jsdelivr-fastly":return`https://fastly.jsdelivr.net/npm/${n}${e}${t}`;case"unpkg":return`https://unpkg.com/${n}${e}${t}`}},QHe=n=>gZ("@vue/compiler-sfc",n,"/dist/compiler-sfc.esm-browser.js"),JHe=({vue:n,elementPlus:e}={},t)=>({imports:Object.fromEntries(Object.entries({vue:{pkg:"@vue/runtime-dom",version:n,path:"/dist/runtime-dom.esm-browser.js"},"@vue/shared":{version:n,path:"/dist/shared.esm-bundler.js"},"element-plus":{pkg:t?"@element-plus/nightly":"element-plus",version:e,path:"/dist/index.full.min.mjs"},"element-plus/":{pkg:"element-plus",version:e,path:"/"},"@element-plus/icons-vue":{version:"2",path:"/dist/index.min.js"}}).map(([s,r])=>[s,gZ(r.pkg??s,r.version,r.path)]))}),mZ=n=>{const e=Ee(()=>`https://data.jsdelivr.com/v1/package/npm/${ae(n)}`);return YHe(e,{initialData:[],afterFetch:t=>(t.data=t.data.versions,t),refetch:!0}).json().data},e$e=()=>{const n=mZ("vue");return Ee(()=>n.value.filter(e=>Fve.gte(e,"3.2.0")))},t$e=()=>{const n=mZ("typescript");return Ee(()=>n.value.filter(e=>!e.includes("dev")&&!e.includes("insiders")))},i$e=n=>{const e=Ee(()=>ae(n)?"@element-plus/nightly":"element-plus"),t=mZ(e);return Ee(()=>ae(n)?t.value:t.value.filter(i=>Fve.gte(i,"1.1.0-beta.18")))},n$e=Et({__name:"Settings",setup(n){return(e,t)=>{const i=kve,s=Eve,r=$Be,o=HBe;return Qe(),Mi(o,null,{default:ei(()=>[Kt(r,{label:"CDN"},{default:ei(()=>[Kt(s,{modelValue:ae(NR),"onUpdate:modelValue":t[0]||(t[0]=a=>jn(NR)?NR.value=a:null),"w-full":""},{default:ei(()=>[Kt(i,{value:"jsdelivr",label:"jsDelivr"}),Kt(i,{value:"jsdelivr-fastly",label:"jsDelivr Fastly"}),Kt(i,{value:"unpkg",label:"unpkg"})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),s$e="/assets/logo-kAxjPieW.svg",r$e="modulepreload",o$e=function(n){return"/"+n},Uoe={},S6=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));s=Promise.all(t.map(a=>{if(a=o$e(a),a in Uoe)return;Uoe[a]=!0;const l=a.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const u=document.createElement("link");if(u.rel=l?"stylesheet":r$e,l||(u.as="script"),u.crossOrigin="",u.href=a,o&&u.setAttribute("nonce",o),document.head.appendChild(u),l)return new Promise((h,d)=>{u.addEventListener("load",h),u.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${a}`)))})}))}return s.then(()=>e()).catch(r=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r})},b0=Symbol("props"),Gve=Symbol("preview-ref");var io=Uint8Array,Wc=Uint16Array,_Z=Int32Array,x6=new io([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),L6=new io([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),hH=new io([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Xve=function(n,e){for(var t=new Wc(31),i=0;i<31;++i)t[i]=e+=1<<n[i-1];for(var s=new _Z(t[30]),i=1;i<30;++i)for(var r=t[i];r<t[i+1];++r)s[r]=r-t[i]<<5|i;return{b:t,r:s}},Yve=Xve(x6,2),Zve=Yve.b,dH=Yve.r;Zve[28]=258,dH[258]=28;var Qve=Xve(L6,0),a$e=Qve.b,joe=Qve.r,fH=new Wc(32768);for(var Rs=0;Rs<32768;++Rs){var hm=(Rs&43690)>>1|(Rs&21845)<<1;hm=(hm&52428)>>2|(hm&13107)<<2,hm=(hm&61680)>>4|(hm&3855)<<4,fH[Rs]=((hm&65280)>>8|(hm&255)<<8)>>1}var xf=function(n,e,t){for(var i=n.length,s=0,r=new Wc(e);s<i;++s)n[s]&&++r[n[s]-1];var o=new Wc(e);for(s=1;s<e;++s)o[s]=o[s-1]+r[s-1]<<1;var a;if(t){a=new Wc(1<<e);var l=15-e;for(s=0;s<i;++s)if(n[s])for(var c=s<<4|n[s],u=e-n[s],h=o[n[s]-1]++<<u,d=h|(1<<u)-1;h<=d;++h)a[fH[h]>>l]=c}else for(a=new Wc(i),s=0;s<i;++s)n[s]&&(a[s]=fH[o[n[s]-1]++]>>15-n[s]);return a},Z1=new io(288);for(var Rs=0;Rs<144;++Rs)Z1[Rs]=8;for(var Rs=144;Rs<256;++Rs)Z1[Rs]=9;for(var Rs=256;Rs<280;++Rs)Z1[Rs]=7;for(var Rs=280;Rs<288;++Rs)Z1[Rs]=8;var zI=new io(32);for(var Rs=0;Rs<32;++Rs)zI[Rs]=5;var l$e=xf(Z1,9,0),c$e=xf(Z1,9,1),u$e=xf(zI,5,0),h$e=xf(zI,5,1),B9=function(n){for(var e=n[0],t=1;t<n.length;++t)n[t]>e&&(e=n[t]);return e},eh=function(n,e,t){var i=e/8|0;return(n[i]|n[i+1]<<8)>>(e&7)&t},W9=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},vZ=function(n){return(n+7)/8|0},E6=function(n,e,t){return(e==null||e<0)&&(e=0),(t==null||t>n.length)&&(t=n.length),new io(n.subarray(e,t))},d$e=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Cu=function(n,e,t){var i=new Error(e||d$e[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,Cu),!t)throw i;return i},f$e=function(n,e,t,i){var s=n.length,r=0;if(!s||e.f&&!e.l)return t||new io(0);var o=!t,a=o||e.i!=2,l=e.i;o&&(t=new io(s*3));var c=function(ve){var Ke=t.length;if(ve>Ke){var Q=new io(Math.max(Ke*2,ve));Q.set(t),t=Q}},u=e.f||0,h=e.p||0,d=e.b||0,f=e.l,p=e.d,g=e.m,m=e.n,_=s*8;do{if(!f){u=eh(n,h,1);var b=eh(n,h+1,3);if(h+=3,b)if(b==1)f=c$e,p=h$e,g=9,m=5;else if(b==2){var x=eh(n,h,31)+257,k=eh(n,h+10,15)+4,L=x+eh(n,h+5,31)+1;h+=14;for(var E=new io(L),A=new io(19),I=0;I<k;++I)A[hH[I]]=eh(n,h+I*3,7);h+=k*3;for(var T=B9(A),N=(1<<T)-1,M=xf(A,T,1),I=0;I<L;){var V=M[eh(n,h,N)];h+=V&15;var w=V>>4;if(w<16)E[I++]=w;else{var W=0,B=0;for(w==16?(B=3+eh(n,h,3),h+=2,W=E[I-1]):w==17?(B=3+eh(n,h,7),h+=3):w==18&&(B=11+eh(n,h,127),h+=7);B--;)E[I++]=W}}var $=E.subarray(0,x),Y=E.subarray(x);g=B9($),m=B9(Y),f=xf($,g,1),p=xf(Y,m,1)}else Cu(1);else{var w=vZ(h)+4,C=n[w-4]|n[w-3]<<8,S=w+C;if(S>s){l&&Cu(0);break}a&&c(d+C),t.set(n.subarray(w,S),d),e.b=d+=C,e.p=h=S*8,e.f=u;continue}if(h>_){l&&Cu(0);break}}a&&c(d+131072);for(var le=(1<<g)-1,re=(1<<m)-1,z=h;;z=h){var W=f[W9(n,h)&le],K=W>>4;if(h+=W&15,h>_){l&&Cu(0);break}if(W||Cu(2),K<256)t[d++]=K;else if(K==256){z=h,f=null;break}else{var Z=K-254;if(K>264){var I=K-257,j=x6[I];Z=eh(n,h,(1<<j)-1)+Zve[I],h+=j}var ce=p[W9(n,h)&re],ie=ce>>4;ce||Cu(3),h+=ce&15;var Y=a$e[ie];if(ie>3){var j=L6[ie];Y+=W9(n,h)&(1<<j)-1,h+=j}if(h>_){l&&Cu(0);break}a&&c(d+131072);var de=d+Z;if(d<Y){var Le=r-Y,Te=Math.min(Y,de);for(Le+d<0&&Cu(3);d<Te;++d)t[d]=i[Le+d]}for(;d<de;++d)t[d]=t[d-Y]}}e.l=f,e.p=z,e.b=d,e.f=u,f&&(u=1,e.m=g,e.d=p,e.n=m)}while(!u);return d!=t.length&&o?E6(t,0,d):t.subarray(0,d)},cp=function(n,e,t){t<<=e&7;var i=e/8|0;n[i]|=t,n[i+1]|=t>>8},BL=function(n,e,t){t<<=e&7;var i=e/8|0;n[i]|=t,n[i+1]|=t>>8,n[i+2]|=t>>16},V9=function(n,e){for(var t=[],i=0;i<n.length;++i)n[i]&&t.push({s:i,f:n[i]});var s=t.length,r=t.slice();if(!s)return{t:ebe,l:0};if(s==1){var o=new io(t[0].s+1);return o[t[0].s]=1,{t:o,l:1}}t.sort(function(S,x){return S.f-x.f}),t.push({s:-1,f:25001});var a=t[0],l=t[1],c=0,u=1,h=2;for(t[0]={s:-1,f:a.f+l.f,l:a,r:l};u!=s-1;)a=t[t[c].f<t[h].f?c++:h++],l=t[c!=u&&t[c].f<t[h].f?c++:h++],t[u++]={s:-1,f:a.f+l.f,l:a,r:l};for(var d=r[0].s,i=1;i<s;++i)r[i].s>d&&(d=r[i].s);var f=new Wc(d+1),p=pH(t[u-1],f,0);if(p>e){var i=0,g=0,m=p-e,_=1<<m;for(r.sort(function(x,k){return f[k.s]-f[x.s]||x.f-k.f});i<s;++i){var b=r[i].s;if(f[b]>e)g+=_-(1<<p-f[b]),f[b]=e;else break}for(g>>=m;g>0;){var w=r[i].s;f[w]<e?g-=1<<e-f[w]++-1:++i}for(;i>=0&&g;--i){var C=r[i].s;f[C]==e&&(--f[C],++g)}p=e}return{t:new io(f),l:p}},pH=function(n,e,t){return n.s==-1?Math.max(pH(n.l,e,t+1),pH(n.r,e,t+1)):e[n.s]=t},qoe=function(n){for(var e=n.length;e&&!n[--e];);for(var t=new Wc(++e),i=0,s=n[0],r=1,o=function(l){t[i++]=l},a=1;a<=e;++a)if(n[a]==s&&a!=e)++r;else{if(!s&&r>2){for(;r>138;r-=138)o(32754);r>2&&(o(r>10?r-11<<5|28690:r-3<<5|12305),r=0)}else if(r>3){for(o(s),--r;r>6;r-=6)o(8304);r>2&&(o(r-3<<5|8208),r=0)}for(;r--;)o(s);r=1,s=n[a]}return{c:t.subarray(0,i),n:e}},WL=function(n,e){for(var t=0,i=0;i<e.length;++i)t+=n[i]*e[i];return t},Jve=function(n,e,t){var i=t.length,s=vZ(e+2);n[s]=i&255,n[s+1]=i>>8,n[s+2]=n[s]^255,n[s+3]=n[s+1]^255;for(var r=0;r<i;++r)n[s+r+4]=t[r];return(s+4+i)*8},Koe=function(n,e,t,i,s,r,o,a,l,c,u){cp(e,u++,t),++s[256];for(var h=V9(s,15),d=h.t,f=h.l,p=V9(r,15),g=p.t,m=p.l,_=qoe(d),b=_.c,w=_.n,C=qoe(g),S=C.c,x=C.n,k=new Wc(19),L=0;L<b.length;++L)++k[b[L]&31];for(var L=0;L<S.length;++L)++k[S[L]&31];for(var E=V9(k,7),A=E.t,I=E.l,T=19;T>4&&!A[hH[T-1]];--T);var N=c+5<<3,M=WL(s,Z1)+WL(r,zI)+o,V=WL(s,d)+WL(r,g)+o+14+3*T+WL(k,A)+2*k[16]+3*k[17]+7*k[18];if(l>=0&&N<=M&&N<=V)return Jve(e,u,n.subarray(l,l+c));var W,B,$,Y;if(cp(e,u,1+(V<M)),u+=2,V<M){W=xf(d,f,0),B=d,$=xf(g,m,0),Y=g;var le=xf(A,I,0);cp(e,u,w-257),cp(e,u+5,x-1),cp(e,u+10,T-4),u+=14;for(var L=0;L<T;++L)cp(e,u+3*L,A[hH[L]]);u+=3*T;for(var re=[b,S],z=0;z<2;++z)for(var K=re[z],L=0;L<K.length;++L){var Z=K[L]&31;cp(e,u,le[Z]),u+=A[Z],Z>15&&(cp(e,u,K[L]>>5&127),u+=K[L]>>12)}}else W=l$e,B=Z1,$=u$e,Y=zI;for(var L=0;L<a;++L){var j=i[L];if(j>255){var Z=j>>18&31;BL(e,u,W[Z+257]),u+=B[Z+257],Z>7&&(cp(e,u,j>>23&31),u+=x6[Z]);var ce=j&31;BL(e,u,$[ce]),u+=Y[ce],ce>3&&(BL(e,u,j>>5&8191),u+=L6[ce])}else BL(e,u,W[j]),u+=B[j]}return BL(e,u,W[256]),u+B[256]},p$e=new _Z([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ebe=new io(0),g$e=function(n,e,t,i,s,r){var o=r.z||n.length,a=new io(i+o+5*(1+Math.ceil(o/7e3))+s),l=a.subarray(i,a.length-s),c=r.l,u=(r.r||0)&7;if(e){u&&(l[0]=r.r>>3);for(var h=p$e[e-1],d=h>>13,f=h&8191,p=(1<<t)-1,g=r.p||new Wc(32768),m=r.h||new Wc(p+1),_=Math.ceil(t/3),b=2*_,w=function(ne){return(n[ne]^n[ne+1]<<_^n[ne+2]<<b)&p},C=new _Z(25e3),S=new Wc(288),x=new Wc(32),k=0,L=0,E=r.i||0,A=0,I=r.w||0,T=0;E+2<o;++E){var N=w(E),M=E&32767,V=m[N];if(g[M]=V,m[N]=M,I<=E){var W=o-E;if((k>7e3||A>24576)&&(W>423||!c)){u=Koe(n,l,0,C,S,x,L,A,T,E-T,u),A=k=L=0,T=E;for(var B=0;B<286;++B)S[B]=0;for(var B=0;B<30;++B)x[B]=0}var $=2,Y=0,le=f,re=M-V&32767;if(W>2&&N==w(E-re))for(var z=Math.min(d,W)-1,K=Math.min(32767,E),Z=Math.min(258,W);re<=K&&--le&&M!=V;){if(n[E+$]==n[E+$-re]){for(var j=0;j<Z&&n[E+j]==n[E+j-re];++j);if(j>$){if($=j,Y=re,j>z)break;for(var ce=Math.min(re,j-2),ie=0,B=0;B<ce;++B){var de=E-re+B&32767,Le=g[de],Te=de-Le&32767;Te>ie&&(ie=Te,V=de)}}}M=V,V=g[M],re+=M-V&32767}if(Y){C[A++]=268435456|dH[$]<<18|joe[Y];var ve=dH[$]&31,Ke=joe[Y]&31;L+=x6[ve]+L6[Ke],++S[257+ve],++x[Ke],I=E+$,++k}else C[A++]=n[E],++S[n[E]]}}for(E=Math.max(E,I);E<o;++E)C[A++]=n[E],++S[n[E]];u=Koe(n,l,c,C,S,x,L,A,T,E-T,u),c||(r.r=u&7|l[u/8|0]<<3,u-=7,r.h=m,r.p=g,r.i=E,r.w=I)}else{for(var E=r.w||0;E<o+c;E+=65535){var Q=E+65535;Q>=o&&(l[u/8|0]=c,Q=o),u=Jve(l,u+1,n.subarray(E,Q))}r.i=o}return E6(a,0,i+vZ(u)+s)},tbe=function(){var n=1,e=0;return{p:function(t){for(var i=n,s=e,r=t.length|0,o=0;o!=r;){for(var a=Math.min(o+2655,r);o<a;++o)s+=i+=t[o];i=(i&65535)+15*(i>>16),s=(s&65535)+15*(s>>16)}n=i,e=s},d:function(){return n%=65521,e%=65521,(n&255)<<24|(n&65280)<<8|(e&255)<<8|e>>8}}},m$e=function(n,e,t,i,s){if(!s&&(s={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new io(r.length+n.length);o.set(r),o.set(n,r.length),n=o,s.w=r.length}return g$e(n,e.level==null?6:e.level,e.mem==null?s.l?Math.ceil(Math.max(8,Math.min(13,Math.log(n.length)))*1.5):20:12+e.mem,t,i,s)},ibe=function(n,e,t){for(;t;++e)n[e]=t,t>>>=8},_$e=function(n,e){var t=e.level,i=t==0?0:t<6?1:t==9?3:2;if(n[0]=120,n[1]=i<<6|(e.dictionary&&32),n[1]|=31-(n[0]<<8|n[1])%31,e.dictionary){var s=tbe();s.p(e.dictionary),ibe(n,2,s.d())}},v$e=function(n,e){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&Cu(6,"invalid zlib data"),(n[1]>>5&1)==+!e&&Cu(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function b$e(n,e){e||(e={});var t=tbe();t.p(n);var i=m$e(n,e,e.dictionary?6:2,4);return _$e(i,e),ibe(i,i.length-4,t.d()),i}function y$e(n,e){return f$e(n.subarray(v$e(n,e),-4),{i:2},e,e)}var Goe=typeof TextEncoder<"u"&&new TextEncoder,gH=typeof TextDecoder<"u"&&new TextDecoder,w$e=0;try{gH.decode(ebe,{stream:!0}),w$e=1}catch{}var C$e=function(n){for(var e="",t=0;;){var i=n[t++],s=(i>127)+(i>223)+(i>239);if(t+s>n.length)return{s:e,r:E6(n,t-1)};s?s==3?(i=((i&15)<<18|(n[t++]&63)<<12|(n[t++]&63)<<6|n[t++]&63)-65536,e+=String.fromCharCode(55296|i>>10,56320|i&1023)):s&1?e+=String.fromCharCode((i&31)<<6|n[t++]&63):e+=String.fromCharCode((i&15)<<12|(n[t++]&63)<<6|n[t++]&63):e+=String.fromCharCode(i)}};function nbe(n,e){if(e){for(var t=new io(n.length),i=0;i<n.length;++i)t[i]=n.charCodeAt(i);return t}if(Goe)return Goe.encode(n);for(var s=n.length,r=new io(n.length+(n.length>>1)),o=0,a=function(u){r[o++]=u},i=0;i<s;++i){if(o+5>r.length){var l=new io(o+8+(s-i<<1));l.set(r),r=l}var c=n.charCodeAt(i);c<128||e?a(c):c<2048?(a(192|c>>6),a(128|c&63)):c>55295&&c<57344?(c=65536+(c&1047552)|n.charCodeAt(++i)&1023,a(240|c>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|c&63)):(a(224|c>>12),a(128|c>>6&63),a(128|c&63))}return E6(r,0,o)}function sbe(n,e){if(e){for(var t="",i=0;i<n.length;i+=16384)t+=String.fromCharCode.apply(null,n.subarray(i,i+16384));return t}else{if(gH)return gH.decode(n);var s=C$e(n),r=s.s,t=s.r;return t.length&&Cu(8),r}}function rbe(n,e=100){let t;return(...i)=>{t&&clearTimeout(t),t=setTimeout(()=>{n(...i)},e)}}function S$e(n){const e=nbe(n),t=b$e(e,{level:9}),i=sbe(t,!0);return btoa(i)}function x$e(n){const e=atob(n);if(e.startsWith("xÚ")){const t=nbe(e,!0),i=y$e(t);return sbe(i)}return decodeURIComponent(escape(e))}/** +* @vue/compiler-sfc v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Ba(n,e){const t=new Set(n.split(","));return e?i=>t.has(i.toLowerCase()):i=>t.has(i)}const L$e=Object.freeze({}),H9=()=>{},AR=()=>!1,obe=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),Lf=Object.assign,E$e=Object.prototype.hasOwnProperty,bZ=(n,e)=>E$e.call(n,e),Lo=Array.isArray,k$e=n=>yZ(n)==="[object Map]",I$e=n=>yZ(n)==="[object Set]",abe=n=>typeof n=="function",wn=n=>typeof n=="string",E_=n=>typeof n=="symbol",k_=n=>n!==null&&typeof n=="object",lbe=Object.prototype.toString,yZ=n=>lbe.call(n),cbe=n=>yZ(n)==="[object Object]",Xoe=Ba(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wZ=Ba("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),k6=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},T$e=/-(\w)/g,Zl=k6(n=>n.replace(T$e,(e,t)=>t?t.toUpperCase():"")),D$e=/\B([A-Z])/g,N$e=k6(n=>n.replace(D$e,"-$1").toLowerCase()),Q1=k6(n=>n.charAt(0).toUpperCase()+n.slice(1)),A$e=k6(n=>n?`on${Q1(n)}`:""),P$e=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function lO(n){return P$e.test(n)?`__props.${n}`:`__props[${JSON.stringify(n)}]`}const m1={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},R$e={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},M$e="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",ube=Ba(M$e),Yoe=2;function AS(n,e=0,t=n.length){if(e=Math.max(0,Math.min(e,n.length)),t=Math.max(0,Math.min(t,n.length)),e>t)return"";let i=n.split(/(\r?\n)/);const s=i.filter((a,l)=>l%2===1);i=i.filter((a,l)=>l%2===0);let r=0;const o=[];for(let a=0;a<i.length;a++)if(r+=i[a].length+(s[a]&&s[a].length||0),r>=e){for(let l=a-Yoe;l<=a+Yoe||t>r;l++){if(l<0||l>=i.length)continue;const c=l+1;o.push(`${c}${" ".repeat(Math.max(3-String(c).length,0))}| ${i[l]}`);const u=i[l].length,h=s[l]&&s[l].length||0;if(l===a){const d=e-(r-(u+h)),f=Math.max(1,t>r?u-d:t-e);o.push(" | "+" ".repeat(d)+"^".repeat(f))}else if(l>a){if(t>r){const d=Math.max(Math.min(t-r,u),1);o.push(" | "+"^".repeat(d))}r+=u+h}}break}return o.join(` +`)}function hbe(n){if(Lo(n)){const e={};for(let t=0;t<n.length;t++){const i=n[t],s=wn(i)?dbe(i):hbe(i);if(s)for(const r in s)e[r]=s[r]}return e}else if(wn(n)||k_(n))return n}const O$e=/;(?![^(]*\))/g,F$e=/:([^]+)/,B$e=/\/\*[^]*?\*\//g;function dbe(n){const e={};return n.replace(B$e,"").split(O$e).forEach(t=>{if(t){const i=t.split(F$e);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function W$e(n){let e="";if(!n||wn(n))return e;for(const t in n){const i=n[t];if(wn(i)||typeof i=="number"){const s=t.startsWith("--")?t:N$e(t);e+=`${s}:${i};`}}return e}function fbe(n){let e="";if(wn(n))e=n;else if(Lo(n))for(let t=0;t<n.length;t++){const i=fbe(n[t]);i&&(e+=i+" ")}else if(k_(n))for(const t in n)n[t]&&(e+=t+" ");return e.trim()}const V$e="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",H$e="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",$$e="annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics",z$e="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",U$e=Ba(V$e),j$e=Ba(H$e),q$e=Ba($$e),pbe=Ba(z$e),K$e="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",gbe=Ba(K$e+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),G$e=/[>/="'\u0009\u000a\u000c\u0020]/,$9={};function X$e(n){if($9.hasOwnProperty(n))return $9[n];const e=G$e.test(n);return e&&console.error(`unsafe attribute name: ${n}`),$9[n]=!e}const Y$e={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},Z$e=Ba("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),Q$e=Ba("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),J$e=/["'&<>]/;function ff(n){const e=""+n,t=J$e.exec(e);if(!t)return e;let i="",s,r,o=0;for(r=t.index;r<e.length;r++){switch(e.charCodeAt(r)){case 34:s=""";break;case 38:s="&";break;case 39:s="'";break;case 60:s="<";break;case 62:s=">";break;default:continue}o!==r&&(i+=e.slice(o,r)),o=r+1,i+=s}return o!==r?i+e.slice(o,r):i}const eze=/[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;function tze(n,e){return n.replace(eze,t=>e?t==='"'?'\\\\\\"':`\\\\${t}`:`\\${t}`)}const mbe=n=>!!(n&&n.__v_isRef===!0),I6=n=>wn(n)?n:n==null?"":Lo(n)||k_(n)&&(n.toString===lbe||!abe(n.toString))?mbe(n)?I6(n.value):JSON.stringify(n,_be,2):String(n),_be=(n,e)=>mbe(e)?_be(n,e.value):k$e(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,s],r)=>(t[z9(i,r)+" =>"]=s,t),{})}:I$e(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>z9(t))}:E_(e)?z9(e):k_(e)&&!Lo(e)&&!cbe(e)?String(e):e,z9=(n,e="")=>{var t;return E_(n)?`Symbol(${(t=n.description)!=null?t:e})`:n},PS=Symbol("Fragment"),db=Symbol("Teleport"),Bx=Symbol("Suspense"),UI=Symbol("KeepAlive"),CZ=Symbol("BaseTransition"),J1=Symbol("openBlock"),SZ=Symbol("createBlock"),xZ=Symbol("createElementBlock"),lN=Symbol("createVNode"),T6=Symbol("createElementVNode"),Wx=Symbol("createCommentVNode"),D6=Symbol("createTextVNode"),N6=Symbol("createStaticVNode"),jI=Symbol("resolveComponent"),cN=Symbol("resolveDynamicComponent"),A6=Symbol("resolveDirective"),vbe=Symbol("resolveFilter"),P6=Symbol("withDirectives"),R6=Symbol("renderList"),LZ=Symbol("renderSlot"),EZ=Symbol("createSlots"),uN=Symbol("toDisplayString"),Py=Symbol("mergeProps"),M6=Symbol("normalizeClass"),O6=Symbol("normalizeStyle"),RS=Symbol("normalizeProps"),Vx=Symbol("guardReactiveProps"),F6=Symbol("toHandlers"),cO=Symbol("camelize"),bbe=Symbol("capitalize"),uO=Symbol("toHandlerKey"),qI=Symbol("setBlockTracking"),ybe=Symbol("pushScopeId"),wbe=Symbol("popScopeId"),B6=Symbol("withCtx"),MS=Symbol("unref"),KI=Symbol("isRef"),W6=Symbol("withMemo"),kZ=Symbol("isMemoSame"),$l={[PS]:"Fragment",[db]:"Teleport",[Bx]:"Suspense",[UI]:"KeepAlive",[CZ]:"BaseTransition",[J1]:"openBlock",[SZ]:"createBlock",[xZ]:"createElementBlock",[lN]:"createVNode",[T6]:"createElementVNode",[Wx]:"createCommentVNode",[D6]:"createTextVNode",[N6]:"createStaticVNode",[jI]:"resolveComponent",[cN]:"resolveDynamicComponent",[A6]:"resolveDirective",[vbe]:"resolveFilter",[P6]:"withDirectives",[R6]:"renderList",[LZ]:"renderSlot",[EZ]:"createSlots",[uN]:"toDisplayString",[Py]:"mergeProps",[M6]:"normalizeClass",[O6]:"normalizeStyle",[RS]:"normalizeProps",[Vx]:"guardReactiveProps",[F6]:"toHandlers",[cO]:"camelize",[bbe]:"capitalize",[uO]:"toHandlerKey",[qI]:"setBlockTracking",[ybe]:"pushScopeId",[wbe]:"popScopeId",[B6]:"withCtx",[MS]:"unref",[KI]:"isRef",[W6]:"withMemo",[kZ]:"isMemoSame"};function IZ(n){Object.getOwnPropertySymbols(n).forEach(e=>{$l[e]=n[e]})}const ize={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},nze={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},sze={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},rze={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},Ks={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function y0(n,e=""){return{type:0,source:e,children:n,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Ks}}function OS(n,e,t,i,s,r,o,a=!1,l=!1,c=!1,u=Ks){return n&&(a?(n.helper(J1),n.helper(My(n.inSSR,c))):n.helper(Ry(n.inSSR,c)),o&&n.helper(P6)),{type:13,tag:e,props:t,children:i,patchFlag:s,dynamicProps:r,directives:o,isBlock:a,disableTracking:l,isComponent:c,loc:u}}function Ef(n,e=Ks){return{type:17,loc:e,elements:n}}function Ql(n,e=Ks){return{type:15,loc:e,properties:n}}function Qn(n,e){return{type:16,loc:Ks,key:wn(n)?gt(n,!0):n,value:e}}function gt(n,e=!1,t=Ks,i=0){return{type:4,loc:t,content:n,isStatic:e,constType:e?3:i}}function hO(n,e){return{type:5,loc:e,content:wn(n)?gt(n,!1,e):n}}function yo(n,e=Ks){return{type:8,loc:e,children:n}}function ui(n,e=[],t=Ks){return{type:14,loc:t,callee:n,arguments:e}}function Qc(n,e=void 0,t=!1,i=!1,s=Ks){return{type:18,params:n,returns:e,newline:t,isSlot:i,loc:s}}function Mh(n,e,t,i=!0){return{type:19,test:n,consequent:e,alternate:t,newline:i,loc:Ks}}function Cbe(n,e,t=!1){return{type:20,index:n,value:e,needPauseTracking:t,needArraySpread:!1,loc:Ks}}function hN(n){return{type:21,body:n,loc:Ks}}function TZ(n){return{type:22,elements:n,loc:Ks}}function dO(n,e,t){return{type:23,test:n,consequent:e,alternate:t,loc:Ks}}function PR(n,e){return{type:24,left:n,right:e,loc:Ks}}function Sbe(n){return{type:25,expressions:n,loc:Ks}}function xbe(n){return{type:26,returns:n,loc:Ks}}function Ry(n,e){return n||e?lN:T6}function My(n,e){return n||e?SZ:xZ}function V6(n,{helper:e,removeHelper:t,inSSR:i}){n.isBlock||(n.isBlock=!0,t(Ry(i,n.isComponent)),e(J1),e(My(i,n.isComponent)))}var Lbe=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(n=>n.charCodeAt(0))),oze=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(n=>n.charCodeAt(0))),U9;const aze=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),mH=(U9=String.fromCodePoint)!==null&&U9!==void 0?U9:function(n){let e="";return n>65535&&(n-=65536,e+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),e+=String.fromCharCode(n),e};function lze(n){var e;return n>=55296&&n<=57343||n>1114111?65533:(e=aze.get(n))!==null&&e!==void 0?e:n}var wo;(function(n){n[n.NUM=35]="NUM",n[n.SEMI=59]="SEMI",n[n.EQUALS=61]="EQUALS",n[n.ZERO=48]="ZERO",n[n.NINE=57]="NINE",n[n.LOWER_A=97]="LOWER_A",n[n.LOWER_F=102]="LOWER_F",n[n.LOWER_X=120]="LOWER_X",n[n.LOWER_Z=122]="LOWER_Z",n[n.UPPER_A=65]="UPPER_A",n[n.UPPER_F=70]="UPPER_F",n[n.UPPER_Z=90]="UPPER_Z"})(wo||(wo={}));const cze=32;var Qm;(function(n){n[n.VALUE_LENGTH=49152]="VALUE_LENGTH",n[n.BRANCH_LENGTH=16256]="BRANCH_LENGTH",n[n.JUMP_TABLE=127]="JUMP_TABLE"})(Qm||(Qm={}));function _H(n){return n>=wo.ZERO&&n<=wo.NINE}function uze(n){return n>=wo.UPPER_A&&n<=wo.UPPER_F||n>=wo.LOWER_A&&n<=wo.LOWER_F}function hze(n){return n>=wo.UPPER_A&&n<=wo.UPPER_Z||n>=wo.LOWER_A&&n<=wo.LOWER_Z||_H(n)}function dze(n){return n===wo.EQUALS||hze(n)}var fo;(function(n){n[n.EntityStart=0]="EntityStart",n[n.NumericStart=1]="NumericStart",n[n.NumericDecimal=2]="NumericDecimal",n[n.NumericHex=3]="NumericHex",n[n.NamedEntity=4]="NamedEntity"})(fo||(fo={}));var sf;(function(n){n[n.Legacy=0]="Legacy",n[n.Strict=1]="Strict",n[n.Attribute=2]="Attribute"})(sf||(sf={}));class Ebe{constructor(e,t,i){this.decodeTree=e,this.emitCodePoint=t,this.errors=i,this.state=fo.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=sf.Strict}startEntity(e){this.decodeMode=e,this.state=fo.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case fo.EntityStart:return e.charCodeAt(t)===wo.NUM?(this.state=fo.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=fo.NamedEntity,this.stateNamedEntity(e,t));case fo.NumericStart:return this.stateNumericStart(e,t);case fo.NumericDecimal:return this.stateNumericDecimal(e,t);case fo.NumericHex:return this.stateNumericHex(e,t);case fo.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|cze)===wo.LOWER_X?(this.state=fo.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=fo.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,i,s){if(t!==i){const r=i-t;this.result=this.result*Math.pow(s,r)+parseInt(e.substr(t,r),s),this.consumed+=r}}stateNumericHex(e,t){const i=t;for(;t<e.length;){const s=e.charCodeAt(t);if(_H(s)||uze(s))t+=1;else return this.addToNumericResult(e,i,t,16),this.emitNumericEntity(s,3)}return this.addToNumericResult(e,i,t,16),-1}stateNumericDecimal(e,t){const i=t;for(;t<e.length;){const s=e.charCodeAt(t);if(_H(s))t+=1;else return this.addToNumericResult(e,i,t,10),this.emitNumericEntity(s,2)}return this.addToNumericResult(e,i,t,10),-1}emitNumericEntity(e,t){var i;if(this.consumed<=t)return(i=this.errors)===null||i===void 0||i.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===wo.SEMI)this.consumed+=1;else if(this.decodeMode===sf.Strict)return 0;return this.emitCodePoint(lze(this.result),this.consumed),this.errors&&(e!==wo.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){const{decodeTree:i}=this;let s=i[this.treeIndex],r=(s&Qm.VALUE_LENGTH)>>14;for(;t<e.length;t++,this.excess++){const o=e.charCodeAt(t);if(this.treeIndex=fze(i,s,this.treeIndex+Math.max(1,r),o),this.treeIndex<0)return this.result===0||this.decodeMode===sf.Attribute&&(r===0||dze(o))?0:this.emitNotTerminatedNamedEntity();if(s=i[this.treeIndex],r=(s&Qm.VALUE_LENGTH)>>14,r!==0){if(o===wo.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==sf.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:i}=this,s=(i[t]&Qm.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,s,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,i){const{decodeTree:s}=this;return this.emitCodePoint(t===1?s[e]&~Qm.VALUE_LENGTH:s[e+1],i),t===3&&this.emitCodePoint(s[e+2],i),i}end(){var e;switch(this.state){case fo.NamedEntity:return this.result!==0&&(this.decodeMode!==sf.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case fo.NumericDecimal:return this.emitNumericEntity(0,2);case fo.NumericHex:return this.emitNumericEntity(0,3);case fo.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case fo.EntityStart:return 0}}}function kbe(n){let e="";const t=new Ebe(n,i=>e+=mH(i));return function(s,r){let o=0,a=0;for(;(a=s.indexOf("&",a))>=0;){e+=s.slice(o,a),t.startEntity(r);const c=t.write(s,a+1);if(c<0){o=a+t.end();break}o=a+c,a=c===0?o+1:o}const l=e+s.slice(o);return e="",l}}function fze(n,e,t,i){const s=(e&Qm.BRANCH_LENGTH)>>7,r=e&Qm.JUMP_TABLE;if(s===0)return r!==0&&i===r?t:-1;if(r){const l=i-r;return l<0||l>=s?-1:n[t+l]-1}let o=t,a=o+s-1;for(;o<=a;){const l=o+a>>>1,c=n[l];if(c<i)o=l+1;else if(c>i)a=l-1;else return n[l+s]}return-1}const pze=kbe(Lbe);kbe(oze);function gze(n,e=sf.Legacy){return pze(n,e)}const Zoe=new Uint8Array([123,123]),Qoe=new Uint8Array([125,125]);function Joe(n){return n>=97&&n<=122||n>=65&&n<=90}function Tc(n){return n===32||n===10||n===9||n===12||n===13}function dm(n){return n===47||n===62||Tc(n)}function fO(n){const e=new Uint8Array(n.length);for(let t=0;t<n.length;t++)e[t]=n.charCodeAt(t);return e}const Bo={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};let mze=class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=Zoe,this.delimiterClose=Qoe,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0,this.entityDecoder=new Ebe(Lbe,(i,s)=>this.emitCodePoint(i,s))}get inSFCRoot(){return this.mode===2&&this.stack.length===0}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=Zoe,this.delimiterClose=Qoe}getPos(e){let t=1,i=e+1;for(let s=this.newlines.length-1;s>=0;s--){const r=this.newlines[s];if(e>r){t=s+2,i=e-r;break}}return{column:i,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){e===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):e===38?this.startEntity():!this.inVPre&&e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const t=this.index+1-this.delimiterOpen.length;t>this.sectionStart&&this.cbs.ontext(this.sectionStart,t),this.state=3,this.sectionStart=t}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length;if(!(t?dm(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(e===62||Tc(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart<t){const i=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=i}this.sectionStart=t+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Bo.TitleEnd||this.currentSequence===Bo.TextareaEnd&&!this.inSFCRoot?e===38?this.startEntity():e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.fastForwardTo(60)&&(this.sequenceIndex=1):this.sequenceIndex=+(e===60)}stateCDATASequence(e){e===Bo.Cdata[this.sequenceIndex]?++this.sequenceIndex===Bo.Cdata.length&&(this.state=28,this.currentSequence=Bo.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){const t=this.buffer.charCodeAt(this.index);if(t===10&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Bo.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){e===33?(this.state=22,this.sectionStart=this.index+1):e===63?(this.state=24,this.sectionStart=this.index+1):Joe(e)?(this.sectionStart=this.index,this.mode===0?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:e===116?this.state=30:this.state=e===115?29:6):e===47?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){dm(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(dm(e)){const t=this.buffer.slice(this.sectionStart,this.index);t!=="template"&&this.enterRCDATA(fO("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){Tc(e)||(e===62?(this.cbs.onerr(14,this.index),this.state=1,this.sectionStart=this.index+1):(this.state=Joe(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(e===62||Tc(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){e===62&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){e===62?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):e===47?(this.state=7,this.peek()!==62&&this.cbs.onerr(22,this.index)):e===60&&this.peek()===47?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):Tc(e)||(e===61&&this.cbs.onerr(19,this.index),this.handleAttrStart(e))}handleAttrStart(e){e===118&&this.peek()===45?(this.state=13,this.sectionStart=this.index):e===46||e===58||e===64||e===35?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===62?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):Tc(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){e===61||dm(e)?(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):(e===34||e===39||e===60)&&this.cbs.onerr(17,this.index)}stateInDirName(e){e===61||dm(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===58?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):e===46&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){e===61||dm(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===91?this.state=15:e===46&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){e===93?this.state=14:(e===61||dm(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e),this.cbs.onerr(27,this.index))}stateInDirModifier(e){e===61||dm(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===46&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){e===61?this.state=18:e===47||e===62?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):Tc(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){e===34?(this.state=19,this.sectionStart=this.index+1):e===39?(this.state=20,this.sectionStart=this.index+1):Tc(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){e===t?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===34?3:2,this.index+1),this.state=11):e===38&&this.startEntity()}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){Tc(e)||e===62?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):e===34||e===39||e===60||e===61||e===96?this.cbs.onerr(18,this.index):e===38&&this.startEntity()}stateBeforeDeclaration(e){e===91?(this.state=26,this.sequenceIndex=0):this.state=e===45?25:23}stateInDeclaration(e){(e===62||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===62||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){e===45?(this.state=28,this.currentSequence=Bo.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(e===62||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===Bo.ScriptEnd[3]?this.startSpecial(Bo.ScriptEnd,4):e===Bo.StyleEnd[3]?this.startSpecial(Bo.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===Bo.TitleEnd[3]?this.startSpecial(Bo.TitleEnd,4):e===Bo.TextareaEnd[3]?this.startSpecial(Bo.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){this.baseState=this.state,this.state=33,this.entityStart=this.index,this.entityDecoder.startEntity(this.baseState===1||this.baseState===32?sf.Legacy:sf.Attribute)}stateInEntity(){{const e=this.entityDecoder.write(this.buffer,this.index);e>=0?(this.state=this.baseState,e===0&&(this.index=this.entityStart)):this.index=this.buffer.length-1}}parse(e){for(this.buffer=e;this.index<this.buffer.length;){const t=this.buffer.charCodeAt(this.index);switch(t===10&&this.newlines.push(this.index),this.state){case 1:{this.stateText(t);break}case 2:{this.stateInterpolationOpen(t);break}case 3:{this.stateInterpolation(t);break}case 4:{this.stateInterpolationClose(t);break}case 31:{this.stateSpecialStartSequence(t);break}case 32:{this.stateInRCDATA(t);break}case 26:{this.stateCDATASequence(t);break}case 19:{this.stateInAttrValueDoubleQuotes(t);break}case 12:{this.stateInAttrName(t);break}case 13:{this.stateInDirName(t);break}case 14:{this.stateInDirArg(t);break}case 15:{this.stateInDynamicDirArg(t);break}case 16:{this.stateInDirModifier(t);break}case 28:{this.stateInCommentLike(t);break}case 27:{this.stateInSpecialComment(t);break}case 11:{this.stateBeforeAttrName(t);break}case 6:{this.stateInTagName(t);break}case 34:{this.stateInSFCRootTagName(t);break}case 9:{this.stateInClosingTagName(t);break}case 5:{this.stateBeforeTagName(t);break}case 17:{this.stateAfterAttrName(t);break}case 20:{this.stateInAttrValueSingleQuotes(t);break}case 18:{this.stateBeforeAttrValue(t);break}case 8:{this.stateBeforeClosingTagName(t);break}case 10:{this.stateAfterClosingTagName(t);break}case 29:{this.stateBeforeSpecialS(t);break}case 30:{this.stateBeforeSpecialT(t);break}case 21:{this.stateInAttrValueNoQuotes(t);break}case 7:{this.stateInSelfClosingTag(t);break}case 23:{this.stateInDeclaration(t);break}case 22:{this.stateBeforeDeclaration(t);break}case 25:{this.stateBeforeComment(t);break}case 24:{this.stateInProcessingInstruction(t);break}case 33:{this.stateInEntity();break}}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(this.state===1||this.state===32&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===19||this.state===20||this.state===21)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.state===33&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const e=this.buffer.length;this.sectionStart>=e||(this.state===28?this.currentSequence===Bo.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==1&&this.baseState!==32?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.onattribentity(mH(e),this.entityStart,this.sectionStart)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.ontextentity(mH(e),this.entityStart,this.sectionStart))}};const _ze={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},vze={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:n=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${n}.sync\` should be changed to \`v-model:${n}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",link:"https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html"},COMPILER_NATIVE_TEMPLATE:{message:"<template> with no special directives will render as a native template element instead of its inner content in Vue 3."},COMPILER_INLINE_TEMPLATE:{message:'"inline-template" has been removed in Vue 3.',link:"https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html"},COMPILER_FILTERS:{message:'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',link:"https://v3-migration.vuejs.org/breaking-changes/filters.html"}};function vH(n,{compatConfig:e}){const t=e&&e[n];return n==="MODE"?t||3:t}function bze(n,e){const t=vH("MODE",e),i=vH(n,e);return t===3?i===!0:i!==!1}function yze(n,e,t,...i){const s=bze(n,e);return s&&Ibe(n,e,t,...i),s}function Ibe(n,e,t,...i){if(vH(n,e)==="suppress-warning")return;const{message:r,link:o}=vze[n],a=`(deprecation ${n}) ${typeof r=="function"?r(...i):r}${o?` + Details: ${o}`:""}`,l=new SyntaxError(a);l.code=n,t&&(l.loc=t),e.onWarn(l)}function DZ(n){throw n}function Tbe(n){console.warn(`[Vue warn] ${n.message}`)}function Bn(n,e,t,i){const s=(t||NZ)[n]+(i||""),r=new SyntaxError(String(s));return r.code=n,r.loc=e,r}const wze={ABRUPT_CLOSING_OF_EMPTY_COMMENT:0,0:"ABRUPT_CLOSING_OF_EMPTY_COMMENT",CDATA_IN_HTML_CONTENT:1,1:"CDATA_IN_HTML_CONTENT",DUPLICATE_ATTRIBUTE:2,2:"DUPLICATE_ATTRIBUTE",END_TAG_WITH_ATTRIBUTES:3,3:"END_TAG_WITH_ATTRIBUTES",END_TAG_WITH_TRAILING_SOLIDUS:4,4:"END_TAG_WITH_TRAILING_SOLIDUS",EOF_BEFORE_TAG_NAME:5,5:"EOF_BEFORE_TAG_NAME",EOF_IN_CDATA:6,6:"EOF_IN_CDATA",EOF_IN_COMMENT:7,7:"EOF_IN_COMMENT",EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT:8,8:"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",EOF_IN_TAG:9,9:"EOF_IN_TAG",INCORRECTLY_CLOSED_COMMENT:10,10:"INCORRECTLY_CLOSED_COMMENT",INCORRECTLY_OPENED_COMMENT:11,11:"INCORRECTLY_OPENED_COMMENT",INVALID_FIRST_CHARACTER_OF_TAG_NAME:12,12:"INVALID_FIRST_CHARACTER_OF_TAG_NAME",MISSING_ATTRIBUTE_VALUE:13,13:"MISSING_ATTRIBUTE_VALUE",MISSING_END_TAG_NAME:14,14:"MISSING_END_TAG_NAME",MISSING_WHITESPACE_BETWEEN_ATTRIBUTES:15,15:"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",NESTED_COMMENT:16,16:"NESTED_COMMENT",UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME:17,17:"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE:18,18:"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME:19,19:"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",UNEXPECTED_NULL_CHARACTER:20,20:"UNEXPECTED_NULL_CHARACTER",UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME:21,21:"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",UNEXPECTED_SOLIDUS_IN_TAG:22,22:"UNEXPECTED_SOLIDUS_IN_TAG",X_INVALID_END_TAG:23,23:"X_INVALID_END_TAG",X_MISSING_END_TAG:24,24:"X_MISSING_END_TAG",X_MISSING_INTERPOLATION_END:25,25:"X_MISSING_INTERPOLATION_END",X_MISSING_DIRECTIVE_NAME:26,26:"X_MISSING_DIRECTIVE_NAME",X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END:27,27:"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",X_V_IF_NO_EXPRESSION:28,28:"X_V_IF_NO_EXPRESSION",X_V_IF_SAME_KEY:29,29:"X_V_IF_SAME_KEY",X_V_ELSE_NO_ADJACENT_IF:30,30:"X_V_ELSE_NO_ADJACENT_IF",X_V_FOR_NO_EXPRESSION:31,31:"X_V_FOR_NO_EXPRESSION",X_V_FOR_MALFORMED_EXPRESSION:32,32:"X_V_FOR_MALFORMED_EXPRESSION",X_V_FOR_TEMPLATE_KEY_PLACEMENT:33,33:"X_V_FOR_TEMPLATE_KEY_PLACEMENT",X_V_BIND_NO_EXPRESSION:34,34:"X_V_BIND_NO_EXPRESSION",X_V_ON_NO_EXPRESSION:35,35:"X_V_ON_NO_EXPRESSION",X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET:36,36:"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",X_V_SLOT_MIXED_SLOT_USAGE:37,37:"X_V_SLOT_MIXED_SLOT_USAGE",X_V_SLOT_DUPLICATE_SLOT_NAMES:38,38:"X_V_SLOT_DUPLICATE_SLOT_NAMES",X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN:39,39:"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",X_V_SLOT_MISPLACED:40,40:"X_V_SLOT_MISPLACED",X_V_MODEL_NO_EXPRESSION:41,41:"X_V_MODEL_NO_EXPRESSION",X_V_MODEL_MALFORMED_EXPRESSION:42,42:"X_V_MODEL_MALFORMED_EXPRESSION",X_V_MODEL_ON_SCOPE_VARIABLE:43,43:"X_V_MODEL_ON_SCOPE_VARIABLE",X_V_MODEL_ON_PROPS:44,44:"X_V_MODEL_ON_PROPS",X_INVALID_EXPRESSION:45,45:"X_INVALID_EXPRESSION",X_KEEP_ALIVE_INVALID_CHILDREN:46,46:"X_KEEP_ALIVE_INVALID_CHILDREN",X_PREFIX_ID_NOT_SUPPORTED:47,47:"X_PREFIX_ID_NOT_SUPPORTED",X_MODULE_MODE_NOT_SUPPORTED:48,48:"X_MODULE_MODE_NOT_SUPPORTED",X_CACHE_HANDLER_NOT_SUPPORTED:49,49:"X_CACHE_HANDLER_NOT_SUPPORTED",X_SCOPE_ID_NOT_SUPPORTED:50,50:"X_SCOPE_ID_NOT_SUPPORTED",X_VNODE_HOOKS:51,51:"X_VNODE_HOOKS",X_V_BIND_INVALID_SAME_NAME_ARGUMENT:52,52:"X_V_BIND_INVALID_SAME_NAME_ARGUMENT",__EXTEND_POINT__:53,53:"__EXTEND_POINT__"},NZ={0:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '<' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '<!--' in comment.",17:`Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`,18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",52:"v-bind with same-name shorthand only allows static argument.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:`v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,45:"Error parsing JavaScript expression: ",46:"<KeepAlive> expects exactly one child component.",51:"@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.",47:'"prefixIdentifiers" option is not supported in this build of compiler.',48:"ES module mode is not supported in this build of compiler.",49:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',50:'"scopeId" option is only supported in module mode.',53:""};function H6(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function dN(n){if(n.__esModule)return n;var e=n.default;if(typeof e=="function"){var t=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(i){var s=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return n[i]}})}),t}var $6={};Object.defineProperty($6,"__esModule",{value:!0});function Cze(n,e){if(n==null)return{};var t={};for(var i in n)if({}.hasOwnProperty.call(n,i)){if(e.includes(i))continue;t[i]=n[i]}return t}class _1{constructor(e,t,i){this.line=void 0,this.column=void 0,this.index=void 0,this.line=e,this.column=t,this.index=i}}class pO{constructor(e,t){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=e,this.end=t}}function sl(n,e){const{line:t,column:i,index:s}=n;return new _1(t,i+e,s+e)}const eae="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";var Sze={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:eae},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:eae}};const tae={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},RR=n=>n.type==="UpdateExpression"?tae.UpdateExpression[`${n.prefix}`]:tae[n.type];var xze={AccessorIsGenerator:({kind:n})=>`A ${n}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:n})=>`Missing initializer in ${n} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:n})=>`\`${n}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:n})=>`'import.${n}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:n,exportName:e})=>`A string literal cannot be used as an exported binding without \`from\`. +- Did you mean \`export { '${n}' as '${e}' } from 'some-module'\`?`,ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:({type:n})=>`'${n==="ForInStatement"?"for-in":"for-of"}' loop variable declaration may not have an initializer.`,ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:({type:n})=>`Unsyntactic ${n==="BreakStatement"?"break":"continue"}.`,IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",ImportBindingIsString:({importName:n})=>`A string literal cannot be used as an imported binding. +- Did you mean \`import { "${n}" as foo }\`?`,ImportCallArgumentTrailingComma:"Trailing comma is disallowed inside import(...) arguments.",ImportCallArity:({maxArgumentCount:n})=>`\`import()\` requires exactly ${n===1?"one argument":"one or two arguments"}.`,ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:({radix:n})=>`Expected number in radix ${n}.`,InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:({reservedWord:n})=>`Escape sequence in keyword ${n}.`,InvalidIdentifier:({identifierName:n})=>`Invalid identifier ${n}.`,InvalidLhs:({ancestor:n})=>`Invalid left-hand side in ${RR(n)}.`,InvalidLhsBinding:({ancestor:n})=>`Binding invalid left-hand side in ${RR(n)}.`,InvalidLhsOptionalChaining:({ancestor:n})=>`Invalid optional chaining in the left-hand side of ${RR(n)}.`,InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:({unexpected:n})=>`Unexpected character '${n}'.`,InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:({identifierName:n})=>`Private name #${n} is not defined.`,InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:({labelName:n})=>`Label '${n}' is already declared.`,LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:({missingPlugin:n})=>`This experimental syntax requires enabling the parser plugin: ${n.map(e=>JSON.stringify(e)).join(", ")}.`,MissingOneOfPlugins:({missingPlugin:n})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${n.map(e=>JSON.stringify(e)).join(", ")}.`,MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:({key:n})=>`Duplicate key "${n}" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:n})=>`An export name cannot include a lone surrogate, found '\\u${n.toString(16)}'.`,ModuleExportUndefined:({localName:n})=>`Export '${n}' is not defined.`,MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:({identifierName:n})=>`Private names are only allowed in property accesses (\`obj.#${n}\`) or in \`in\` expressions (\`#${n} in obj\`).`,PrivateNameRedeclaration:({identifierName:n})=>`Duplicate private name #${n}.`,RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:({keyword:n})=>`Unexpected keyword '${n}'.`,UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:({reservedWord:n})=>`Unexpected reserved word '${n}'.`,UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:({expected:n,unexpected:e})=>`Unexpected token${e?` '${e}'.`:""}${n?`, expected "${n}"`:""}`,UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:({target:n,onlyValidPropertyName:e})=>`The only valid meta property for ${n} is ${n}.${e}.`,UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:({identifierName:n})=>`Identifier '${n}' has already been declared.`,YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},Lze={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:({referenceName:n})=>`Assigning to '${n}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:n})=>`Binding '${n}' in strict mode.`,StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."};const Eze=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]);var kze={PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:({token:n})=>`Invalid topic token ${n}. In order to use ${n} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${n}" }.`,PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:({type:n})=>`Hack-style pipe body cannot be an unparenthesized ${RR({type:n})}; please wrap it in parentheses.`,PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'};const Ize=["message"];function iae(n,e,t){Object.defineProperty(n,e,{enumerable:!1,configurable:!0,value:t})}function Tze({toMessage:n,code:e,reasonCode:t,syntaxPlugin:i}){const s=t==="MissingPlugin"||t==="MissingOneOfPlugins";return function r(o,a){const l=new SyntaxError;return l.code=e,l.reasonCode=t,l.loc=o,l.pos=o.index,l.syntaxPlugin=i,s&&(l.missingPlugin=a.missingPlugin),iae(l,"clone",function(u={}){var h;const{line:d,column:f,index:p}=(h=u.loc)!=null?h:o;return r(new _1(d,f,p),Object.assign({},a,u.details))}),iae(l,"details",a),Object.defineProperty(l,"message",{configurable:!0,get(){const c=`${n(a)} (${o.line}:${o.column})`;return this.message=c,c},set(c){Object.defineProperty(this,"message",{value:c,writable:!0})}}),l}}function Zp(n,e){if(Array.isArray(n))return i=>Zp(i,n[0]);const t={};for(const i of Object.keys(n)){const s=n[i],r=typeof s=="string"?{message:()=>s}:typeof s=="function"?{message:s}:s,{message:o}=r,a=Cze(r,Ize),l=typeof o=="string"?()=>o:o;t[i]=Tze(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:i,toMessage:l},e?{syntaxPlugin:e}:{},a))}return t}const me=Object.assign({},Zp(Sze),Zp(xze),Zp(Lze),Zp`pipelineOperator`(kze)),{defineProperty:Dze}=Object,nae=(n,e)=>{n&&Dze(n,e,{enumerable:!1,value:n[e]})};function VL(n){return nae(n.loc.start,"index"),nae(n.loc.end,"index"),n}var Nze=n=>class extends n{parse(){const t=VL(super.parse());return this.options.tokens&&(t.tokens=t.tokens.map(VL)),t}parseRegExpLiteral({pattern:t,flags:i}){let s=null;try{s=new RegExp(t,i)}catch{}const r=this.estreeParseLiteral(s);return r.regex={pattern:t,flags:i},r}parseBigIntLiteral(t){let i;try{i=BigInt(t)}catch{i=null}const s=this.estreeParseLiteral(i);return s.bigint=String(s.value||t),s}parseDecimalLiteral(t){const s=this.estreeParseLiteral(null);return s.decimal=String(s.value||t),s}estreeParseLiteral(t){return this.parseLiteral(t,"Literal")}parseStringLiteral(t){return this.estreeParseLiteral(t)}parseNumericLiteral(t){return this.estreeParseLiteral(t)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(t){return this.estreeParseLiteral(t)}directiveToStmt(t){const i=t.value;delete t.value,i.type="Literal",i.raw=i.extra.raw,i.value=i.extra.expressionValue;const s=t;return s.type="ExpressionStatement",s.expression=i,s.directive=i.extra.rawValue,delete i.extra,s}initFunction(t,i){super.initFunction(t,i),t.expression=!1}checkDeclaration(t){t!=null&&this.isObjectProperty(t)?this.checkDeclaration(t.value):super.checkDeclaration(t)}getObjectOrClassMethodParams(t){return t.value.params}isValidDirective(t){var i;return t.type==="ExpressionStatement"&&t.expression.type==="Literal"&&typeof t.expression.value=="string"&&!((i=t.expression.extra)!=null&&i.parenthesized)}parseBlockBody(t,i,s,r,o){super.parseBlockBody(t,i,s,r,o);const a=t.directives.map(l=>this.directiveToStmt(l));t.body=a.concat(t.body),delete t.directives}pushClassMethod(t,i,s,r,o,a){this.parseMethod(i,s,r,o,a,"ClassMethod",!0),i.typeParameters&&(i.value.typeParameters=i.typeParameters,delete i.typeParameters),t.body.push(i)}parsePrivateName(){const t=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(t):t}convertPrivateNameToPrivateIdentifier(t){const i=super.getPrivateNameSV(t);return t=t,delete t.id,t.name=i,t.type="PrivateIdentifier",t}isPrivateName(t){return this.getPluginOption("estree","classFeatures")?t.type==="PrivateIdentifier":super.isPrivateName(t)}getPrivateNameSV(t){return this.getPluginOption("estree","classFeatures")?t.name:super.getPrivateNameSV(t)}parseLiteral(t,i){const s=super.parseLiteral(t,i);return s.raw=s.extra.raw,delete s.extra,s}parseFunctionBody(t,i,s=!1){super.parseFunctionBody(t,i,s),t.expression=t.body.type!=="BlockStatement"}parseMethod(t,i,s,r,o,a,l=!1){let c=this.startNode();return c.kind=t.kind,c=super.parseMethod(c,i,s,r,o,a,l),c.type="FunctionExpression",delete c.kind,t.value=c,a==="ClassPrivateMethod"&&(t.computed=!1),this.finishNode(t,"MethodDefinition")}nameIsConstructor(t){return t.type==="Literal"?t.value==="constructor":super.nameIsConstructor(t)}parseClassProperty(...t){const i=super.parseClassProperty(...t);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition"),i}parseClassPrivateProperty(...t){const i=super.parseClassPrivateProperty(...t);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition",i.computed=!1),i}parseObjectMethod(t,i,s,r,o){const a=super.parseObjectMethod(t,i,s,r,o);return a&&(a.type="Property",a.kind==="method"&&(a.kind="init"),a.shorthand=!1),a}parseObjectProperty(t,i,s,r){const o=super.parseObjectProperty(t,i,s,r);return o&&(o.kind="init",o.type="Property"),o}isValidLVal(t,i,s){return t==="Property"?"value":super.isValidLVal(t,i,s)}isAssignable(t,i){return t!=null&&this.isObjectProperty(t)?this.isAssignable(t.value,i):super.isAssignable(t,i)}toAssignable(t,i=!1){if(t!=null&&this.isObjectProperty(t)){const{key:s,value:r}=t;this.isPrivateName(s)&&this.classScope.usePrivateName(this.getPrivateNameSV(s),s.loc.start),this.toAssignable(r,i)}else super.toAssignable(t,i)}toAssignableObjectExpressionProp(t,i,s){t.type==="Property"&&(t.kind==="get"||t.kind==="set")?this.raise(me.PatternHasAccessor,t.key):t.type==="Property"&&t.method?this.raise(me.PatternHasMethod,t.key):super.toAssignableObjectExpressionProp(t,i,s)}finishCallExpression(t,i){const s=super.finishCallExpression(t,i);if(s.callee.type==="Import"){if(s.type="ImportExpression",s.source=s.arguments[0],this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")){var r,o;s.options=(r=s.arguments[1])!=null?r:null,s.attributes=(o=s.arguments[1])!=null?o:null}delete s.arguments,delete s.callee}return s}toReferencedArguments(t){t.type!=="ImportExpression"&&super.toReferencedArguments(t)}parseExport(t,i){const s=this.state.lastTokStartLoc,r=super.parseExport(t,i);switch(r.type){case"ExportAllDeclaration":r.exported=null;break;case"ExportNamedDeclaration":r.specifiers.length===1&&r.specifiers[0].type==="ExportNamespaceSpecifier"&&(r.type="ExportAllDeclaration",r.exported=r.specifiers[0].exported,delete r.specifiers);case"ExportDefaultDeclaration":{var o;const{declaration:a}=r;(a==null?void 0:a.type)==="ClassDeclaration"&&((o=a.decorators)==null?void 0:o.length)>0&&a.start===r.start&&this.resetStartLocation(r,s)}break}return r}parseSubscript(t,i,s,r){const o=super.parseSubscript(t,i,s,r);if(r.optionalChainMember){if((o.type==="OptionalMemberExpression"||o.type==="OptionalCallExpression")&&(o.type=o.type.substring(8)),r.stop){const a=this.startNodeAtNode(o);return a.expression=o,this.finishNode(a,"ChainExpression")}}else(o.type==="MemberExpression"||o.type==="CallExpression")&&(o.optional=!1);return o}isOptionalMemberExpression(t){return t.type==="ChainExpression"?t.expression.type==="MemberExpression":super.isOptionalMemberExpression(t)}hasPropertyAsPrivateName(t){return t.type==="ChainExpression"&&(t=t.expression),super.hasPropertyAsPrivateName(t)}isObjectProperty(t){return t.type==="Property"&&t.kind==="init"&&!t.method}isObjectMethod(t){return t.type==="Property"&&(t.method||t.kind==="get"||t.kind==="set")}finishNodeAt(t,i,s){return VL(super.finishNodeAt(t,i,s))}resetStartLocation(t,i){super.resetStartLocation(t,i),VL(t)}resetEndLocation(t,i=this.state.lastTokEndLoc){super.resetEndLocation(t,i),VL(t)}};class RE{constructor(e,t){this.token=void 0,this.preserveSpace=void 0,this.token=e,this.preserveSpace=!!t}}const ns={brace:new RE("{"),j_oTag:new RE("<tag"),j_cTag:new RE("</tag"),j_expr:new RE("<tag>...</tag>",!0)};ns.template=new RE("`",!0);const Ki=!0,wt=!0,j9=!0,HL=!0,fm=!0,Aze=!0;class Dbe{constructor(e,t={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.rightAssociative=!!t.rightAssociative,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop!=null?t.binop:null,this.updateContext=null}}const AZ=new Map;function un(n,e={}){e.keyword=n;const t=Qt(n,e);return AZ.set(n,t),t}function Ua(n,e){return Qt(n,{beforeExpr:Ki,binop:e})}let pk=-1;const Mp=[],PZ=[],RZ=[],MZ=[],OZ=[],FZ=[];function Qt(n,e={}){var t,i,s,r;return++pk,PZ.push(n),RZ.push((t=e.binop)!=null?t:-1),MZ.push((i=e.beforeExpr)!=null?i:!1),OZ.push((s=e.startsExpr)!=null?s:!1),FZ.push((r=e.prefix)!=null?r:!1),Mp.push(new Dbe(n,e)),pk}function qi(n,e={}){var t,i,s,r;return++pk,AZ.set(n,pk),PZ.push(n),RZ.push((t=e.binop)!=null?t:-1),MZ.push((i=e.beforeExpr)!=null?i:!1),OZ.push((s=e.startsExpr)!=null?s:!1),FZ.push((r=e.prefix)!=null?r:!1),Mp.push(new Dbe("name",e)),pk}const Pze={bracketL:Qt("[",{beforeExpr:Ki,startsExpr:wt}),bracketHashL:Qt("#[",{beforeExpr:Ki,startsExpr:wt}),bracketBarL:Qt("[|",{beforeExpr:Ki,startsExpr:wt}),bracketR:Qt("]"),bracketBarR:Qt("|]"),braceL:Qt("{",{beforeExpr:Ki,startsExpr:wt}),braceBarL:Qt("{|",{beforeExpr:Ki,startsExpr:wt}),braceHashL:Qt("#{",{beforeExpr:Ki,startsExpr:wt}),braceR:Qt("}"),braceBarR:Qt("|}"),parenL:Qt("(",{beforeExpr:Ki,startsExpr:wt}),parenR:Qt(")"),comma:Qt(",",{beforeExpr:Ki}),semi:Qt(";",{beforeExpr:Ki}),colon:Qt(":",{beforeExpr:Ki}),doubleColon:Qt("::",{beforeExpr:Ki}),dot:Qt("."),question:Qt("?",{beforeExpr:Ki}),questionDot:Qt("?."),arrow:Qt("=>",{beforeExpr:Ki}),template:Qt("template"),ellipsis:Qt("...",{beforeExpr:Ki}),backQuote:Qt("`",{startsExpr:wt}),dollarBraceL:Qt("${",{beforeExpr:Ki,startsExpr:wt}),templateTail:Qt("...`",{startsExpr:wt}),templateNonTail:Qt("...${",{beforeExpr:Ki,startsExpr:wt}),at:Qt("@"),hash:Qt("#",{startsExpr:wt}),interpreterDirective:Qt("#!..."),eq:Qt("=",{beforeExpr:Ki,isAssign:HL}),assign:Qt("_=",{beforeExpr:Ki,isAssign:HL}),slashAssign:Qt("_=",{beforeExpr:Ki,isAssign:HL}),xorAssign:Qt("_=",{beforeExpr:Ki,isAssign:HL}),moduloAssign:Qt("_=",{beforeExpr:Ki,isAssign:HL}),incDec:Qt("++/--",{prefix:fm,postfix:Aze,startsExpr:wt}),bang:Qt("!",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),tilde:Qt("~",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),doubleCaret:Qt("^^",{startsExpr:wt}),doubleAt:Qt("@@",{startsExpr:wt}),pipeline:Ua("|>",0),nullishCoalescing:Ua("??",1),logicalOR:Ua("||",1),logicalAND:Ua("&&",2),bitwiseOR:Ua("|",3),bitwiseXOR:Ua("^",4),bitwiseAND:Ua("&",5),equality:Ua("==/!=/===/!==",6),lt:Ua("</>/<=/>=",7),gt:Ua("</>/<=/>=",7),relational:Ua("</>/<=/>=",7),bitShift:Ua("<</>>/>>>",8),bitShiftL:Ua("<</>>/>>>",8),bitShiftR:Ua("<</>>/>>>",8),plusMin:Qt("+/-",{beforeExpr:Ki,binop:9,prefix:fm,startsExpr:wt}),modulo:Qt("%",{binop:10,startsExpr:wt}),star:Qt("*",{binop:10}),slash:Ua("/",10),exponent:Qt("**",{beforeExpr:Ki,binop:11,rightAssociative:!0}),_in:un("in",{beforeExpr:Ki,binop:7}),_instanceof:un("instanceof",{beforeExpr:Ki,binop:7}),_break:un("break"),_case:un("case",{beforeExpr:Ki}),_catch:un("catch"),_continue:un("continue"),_debugger:un("debugger"),_default:un("default",{beforeExpr:Ki}),_else:un("else",{beforeExpr:Ki}),_finally:un("finally"),_function:un("function",{startsExpr:wt}),_if:un("if"),_return:un("return",{beforeExpr:Ki}),_switch:un("switch"),_throw:un("throw",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),_try:un("try"),_var:un("var"),_const:un("const"),_with:un("with"),_new:un("new",{beforeExpr:Ki,startsExpr:wt}),_this:un("this",{startsExpr:wt}),_super:un("super",{startsExpr:wt}),_class:un("class",{startsExpr:wt}),_extends:un("extends",{beforeExpr:Ki}),_export:un("export"),_import:un("import",{startsExpr:wt}),_null:un("null",{startsExpr:wt}),_true:un("true",{startsExpr:wt}),_false:un("false",{startsExpr:wt}),_typeof:un("typeof",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),_void:un("void",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),_delete:un("delete",{beforeExpr:Ki,prefix:fm,startsExpr:wt}),_do:un("do",{isLoop:j9,beforeExpr:Ki}),_for:un("for",{isLoop:j9}),_while:un("while",{isLoop:j9}),_as:qi("as",{startsExpr:wt}),_assert:qi("assert",{startsExpr:wt}),_async:qi("async",{startsExpr:wt}),_await:qi("await",{startsExpr:wt}),_defer:qi("defer",{startsExpr:wt}),_from:qi("from",{startsExpr:wt}),_get:qi("get",{startsExpr:wt}),_let:qi("let",{startsExpr:wt}),_meta:qi("meta",{startsExpr:wt}),_of:qi("of",{startsExpr:wt}),_sent:qi("sent",{startsExpr:wt}),_set:qi("set",{startsExpr:wt}),_source:qi("source",{startsExpr:wt}),_static:qi("static",{startsExpr:wt}),_using:qi("using",{startsExpr:wt}),_yield:qi("yield",{startsExpr:wt}),_asserts:qi("asserts",{startsExpr:wt}),_checks:qi("checks",{startsExpr:wt}),_exports:qi("exports",{startsExpr:wt}),_global:qi("global",{startsExpr:wt}),_implements:qi("implements",{startsExpr:wt}),_intrinsic:qi("intrinsic",{startsExpr:wt}),_infer:qi("infer",{startsExpr:wt}),_is:qi("is",{startsExpr:wt}),_mixins:qi("mixins",{startsExpr:wt}),_proto:qi("proto",{startsExpr:wt}),_require:qi("require",{startsExpr:wt}),_satisfies:qi("satisfies",{startsExpr:wt}),_keyof:qi("keyof",{startsExpr:wt}),_readonly:qi("readonly",{startsExpr:wt}),_unique:qi("unique",{startsExpr:wt}),_abstract:qi("abstract",{startsExpr:wt}),_declare:qi("declare",{startsExpr:wt}),_enum:qi("enum",{startsExpr:wt}),_module:qi("module",{startsExpr:wt}),_namespace:qi("namespace",{startsExpr:wt}),_interface:qi("interface",{startsExpr:wt}),_type:qi("type",{startsExpr:wt}),_opaque:qi("opaque",{startsExpr:wt}),name:Qt("name",{startsExpr:wt}),string:Qt("string",{startsExpr:wt}),num:Qt("num",{startsExpr:wt}),bigint:Qt("bigint",{startsExpr:wt}),decimal:Qt("decimal",{startsExpr:wt}),regexp:Qt("regexp",{startsExpr:wt}),privateName:Qt("#name",{startsExpr:wt}),eof:Qt("eof"),jsxName:Qt("jsxName"),jsxText:Qt("jsxText",{beforeExpr:!0}),jsxTagStart:Qt("jsxTagStart",{startsExpr:!0}),jsxTagEnd:Qt("jsxTagEnd"),placeholder:Qt("%%",{startsExpr:!0})};function Pn(n){return n>=93&&n<=132}function Rze(n){return n<=92}function Th(n){return n>=58&&n<=132}function Nbe(n){return n>=58&&n<=136}function Mze(n){return MZ[n]}function bH(n){return OZ[n]}function Oze(n){return n>=29&&n<=33}function sae(n){return n>=129&&n<=131}function Fze(n){return n>=90&&n<=92}function BZ(n){return n>=58&&n<=92}function Bze(n){return n>=39&&n<=59}function Wze(n){return n===34}function Vze(n){return FZ[n]}function Hze(n){return n>=121&&n<=123}function $ze(n){return n>=124&&n<=130}function v1(n){return PZ[n]}function MR(n){return RZ[n]}function zze(n){return n===57}function gO(n){return n>=24&&n<=25}function yp(n){return Mp[n]}Mp[8].updateContext=n=>{n.pop()},Mp[5].updateContext=Mp[7].updateContext=Mp[23].updateContext=n=>{n.push(ns.brace)},Mp[22].updateContext=n=>{n[n.length-1]===ns.template?n.pop():n.push(ns.template)},Mp[142].updateContext=n=>{n.push(ns.j_expr,ns.j_oTag)};let WZ="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",Abe="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const Uze=new RegExp("["+WZ+"]"),jze=new RegExp("["+WZ+Abe+"]");WZ=Abe=null;const Pbe=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],qze=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];function yH(n,e){let t=65536;for(let i=0,s=e.length;i<s;i+=2){if(t+=e[i],t>n)return!1;if(t+=e[i+1],t>=n)return!0}return!1}function zp(n){return n<65?n===36:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&Uze.test(String.fromCharCode(n)):yH(n,Pbe)}function DC(n){return n<48?n===36:n<58?!0:n<65?!1:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&jze.test(String.fromCharCode(n)):yH(n,Pbe)||yH(n,qze)}const VZ={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},Kze=new Set(VZ.keyword),Gze=new Set(VZ.strict),Xze=new Set(VZ.strictBind);function Rbe(n,e){return e&&n==="await"||n==="enum"}function Mbe(n,e){return Rbe(n,e)||Gze.has(n)}function Obe(n){return Xze.has(n)}function Fbe(n,e){return Mbe(n,e)||Obe(n)}function Yze(n){return Kze.has(n)}function Zze(n,e,t){return n===64&&e===64&&zp(t)}const Qze=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Jze(n){return Qze.has(n)}let HZ=class{constructor(e){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=e}};class $Z{constructor(e,t){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=e,this.inModule=t}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){const e=this.currentThisScopeFlags();return(e&64)>0&&(e&2)===0}get inStaticBlock(){for(let e=this.scopeStack.length-1;;e--){const{flags:t}=this.scopeStack[e];if(t&128)return!0;if(t&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(e){return new HZ(e)}enter(e){this.scopeStack.push(this.createScope(e))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(e){return!!(e.flags&130||!this.parser.inModule&&e.flags&1)}declareName(e,t,i){let s=this.currentScope();if(t&8||t&16){this.checkRedeclarationInScope(s,e,t,i);let r=s.names.get(e)||0;t&16?r=r|4:(s.firstLexicalName||(s.firstLexicalName=e),r=r|2),s.names.set(e,r),t&8&&this.maybeExportDefined(s,e)}else if(t&4)for(let r=this.scopeStack.length-1;r>=0&&(s=this.scopeStack[r],this.checkRedeclarationInScope(s,e,t,i),s.names.set(e,(s.names.get(e)||0)|1),this.maybeExportDefined(s,e),!(s.flags&387));--r);this.parser.inModule&&s.flags&1&&this.undefinedExports.delete(e)}maybeExportDefined(e,t){this.parser.inModule&&e.flags&1&&this.undefinedExports.delete(t)}checkRedeclarationInScope(e,t,i,s){this.isRedeclaredInScope(e,t,i)&&this.parser.raise(me.VarRedeclaration,s,{identifierName:t})}isRedeclaredInScope(e,t,i){if(!(i&1))return!1;if(i&8)return e.names.has(t);const s=e.names.get(t);return i&16?(s&2)>0||!this.treatFunctionsAsVarInScope(e)&&(s&1)>0:(s&2)>0&&!(e.flags&8&&e.firstLexicalName===t)||!this.treatFunctionsAsVarInScope(e)&&(s&4)>0}checkLocalExport(e){const{name:t}=e;this.scopeStack[0].names.has(t)||this.undefinedExports.set(t,e.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let e=this.scopeStack.length-1;;e--){const{flags:t}=this.scopeStack[e];if(t&387)return t}}currentThisScopeFlags(){for(let e=this.scopeStack.length-1;;e--){const{flags:t}=this.scopeStack[e];if(t&451&&!(t&4))return t}}}class eUe extends HZ{constructor(...e){super(...e),this.declareFunctions=new Set}}class tUe extends $Z{createScope(e){return new eUe(e)}declareName(e,t,i){const s=this.currentScope();if(t&2048){this.checkRedeclarationInScope(s,e,t,i),this.maybeExportDefined(s,e),s.declareFunctions.add(e);return}super.declareName(e,t,i)}isRedeclaredInScope(e,t,i){if(super.isRedeclaredInScope(e,t,i))return!0;if(i&2048&&!e.declareFunctions.has(t)){const s=e.names.get(t);return(s&4)>0||(s&2)>0}return!1}checkLocalExport(e){this.scopeStack[0].declareFunctions.has(e.name)||super.checkLocalExport(e)}}class iUe{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(e){if(typeof e=="string")return this.plugins.has(e);{const[t,i]=e;if(!this.hasPlugin(t))return!1;const s=this.plugins.get(t);for(const r of Object.keys(i))if((s==null?void 0:s[r])!==i[r])return!1;return!0}}getPluginOption(e,t){var i;return(i=this.plugins.get(e))==null?void 0:i[t]}}function Bbe(n,e){n.trailingComments===void 0?n.trailingComments=e:n.trailingComments.unshift(...e)}function nUe(n,e){n.leadingComments===void 0?n.leadingComments=e:n.leadingComments.unshift(...e)}function GI(n,e){n.innerComments===void 0?n.innerComments=e:n.innerComments.unshift(...e)}function $L(n,e,t){let i=null,s=e.length;for(;i===null&&s>0;)i=e[--s];i===null||i.start>t.start?GI(n,t.comments):Bbe(i,t.comments)}class sUe extends iUe{addComment(e){this.filename&&(e.loc.filename=this.filename);const{commentsLen:t}=this.state;this.comments.length!==t&&(this.comments.length=t),this.comments.push(e),this.state.commentsLen++}processComment(e){const{commentStack:t}=this.state,i=t.length;if(i===0)return;let s=i-1;const r=t[s];r.start===e.end&&(r.leadingNode=e,s--);const{start:o}=e;for(;s>=0;s--){const a=t[s],l=a.end;if(l>o)a.containingNode=e,this.finalizeComment(a),t.splice(s,1);else{l===o&&(a.trailingNode=e);break}}}finalizeComment(e){const{comments:t}=e;if(e.leadingNode!==null||e.trailingNode!==null)e.leadingNode!==null&&Bbe(e.leadingNode,t),e.trailingNode!==null&&nUe(e.trailingNode,t);else{const{containingNode:i,start:s}=e;if(this.input.charCodeAt(s-1)===44)switch(i.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":$L(i,i.properties,e);break;case"CallExpression":case"OptionalCallExpression":$L(i,i.arguments,e);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":$L(i,i.params,e);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":$L(i,i.elements,e);break;case"ExportNamedDeclaration":case"ImportDeclaration":$L(i,i.specifiers,e);break;default:GI(i,t)}else GI(i,t)}}finalizeRemainingComments(){const{commentStack:e}=this.state;for(let t=e.length-1;t>=0;t--)this.finalizeComment(e[t]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(e){const{commentStack:t}=this.state,{length:i}=t;if(i===0)return;const s=t[i-1];s.leadingNode===e&&(s.leadingNode=null)}resetPreviousIdentifierLeadingComments(e){const{commentStack:t}=this.state,{length:i}=t;i!==0&&(t[i-1].trailingNode===e?t[i-1].trailingNode=null:i>=2&&t[i-2].trailingNode===e&&(t[i-2].trailingNode=null))}takeSurroundingComments(e,t,i){const{commentStack:s}=this.state,r=s.length;if(r===0)return;let o=r-1;for(;o>=0;o--){const a=s[o],l=a.end;if(a.start===i)a.leadingNode=e;else if(l===t)a.trailingNode=e;else if(l<t)break}}}const rUe=/\r\n|[\r\n\u2028\u2029]/,PA=new RegExp(rUe.source,"g");function NC(n){switch(n){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function rae(n,e,t){for(let i=e;i<t;i++)if(NC(n.charCodeAt(i)))return!0;return!1}const q9=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,K9=/(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;function oUe(n){switch(n){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}let aUe=class Wbe{constructor(){this.flags=1024,this.curLine=void 0,this.lineStart=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.labels=[],this.commentsLen=0,this.commentStack=[],this.pos=0,this.type=139,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.context=[ns.brace],this.firstInvalidTemplateEscapePos=null,this.strictErrors=new Map,this.tokensLength=0}get strict(){return(this.flags&1)>0}set strict(e){e?this.flags|=1:this.flags&=-2}init({strictMode:e,sourceType:t,startLine:i,startColumn:s}){this.strict=e===!1?!1:e===!0?!0:t==="module",this.curLine=i,this.lineStart=-s,this.startLoc=this.endLoc=new _1(i,s,0)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(e){e?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(e){e?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(e){e?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(e){e?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(e){e?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(e){e?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(e){e?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(e){e?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(e){e?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(e){e?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(e){e?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(e){e?this.flags|=4096:this.flags&=-4097}curPosition(){return new _1(this.curLine,this.pos-this.lineStart,this.pos)}clone(){const e=new Wbe;return e.flags=this.flags,e.curLine=this.curLine,e.lineStart=this.lineStart,e.startLoc=this.startLoc,e.endLoc=this.endLoc,e.errors=this.errors.slice(),e.potentialArrowAt=this.potentialArrowAt,e.noArrowAt=this.noArrowAt.slice(),e.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),e.topicContext=this.topicContext,e.labels=this.labels.slice(),e.commentsLen=this.commentsLen,e.commentStack=this.commentStack.slice(),e.pos=this.pos,e.type=this.type,e.value=this.value,e.start=this.start,e.end=this.end,e.lastTokEndLoc=this.lastTokEndLoc,e.lastTokStartLoc=this.lastTokStartLoc,e.context=this.context.slice(),e.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,e.strictErrors=this.strictErrors,e.tokensLength=this.tokensLength,e}};var lUe=function(e){return e>=48&&e<=57};const oae={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},RA={bin:n=>n===48||n===49,oct:n=>n>=48&&n<=55,dec:n=>n>=48&&n<=57,hex:n=>n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102};function aae(n,e,t,i,s,r){const o=t,a=i,l=s;let c="",u=null,h=t;const{length:d}=e;for(;;){if(t>=d){r.unterminated(o,a,l),c+=e.slice(h,t);break}const f=e.charCodeAt(t);if(cUe(n,f,e,t)){c+=e.slice(h,t);break}if(f===92){c+=e.slice(h,t);const p=uUe(e,t,i,s,n==="template",r);p.ch===null&&!u?u={pos:t,lineStart:i,curLine:s}:c+=p.ch,{pos:t,lineStart:i,curLine:s}=p,h=t}else f===8232||f===8233?(++t,++s,i=t):f===10||f===13?n==="template"?(c+=e.slice(h,t)+` +`,++t,f===13&&e.charCodeAt(t)===10&&++t,++s,h=i=t):r.unterminated(o,a,l):++t}return{pos:t,str:c,firstInvalidLoc:u,lineStart:i,curLine:s,containsInvalid:!!u}}function cUe(n,e,t,i){return n==="template"?e===96||e===36&&t.charCodeAt(i+1)===123:e===(n==="double"?34:39)}function uUe(n,e,t,i,s,r){const o=!s;e++;const a=c=>({pos:e,ch:c,lineStart:t,curLine:i}),l=n.charCodeAt(e++);switch(l){case 110:return a(` +`);case 114:return a("\r");case 120:{let c;return{code:c,pos:e}=wH(n,e,t,i,2,!1,o,r),a(c===null?null:String.fromCharCode(c))}case 117:{let c;return{code:c,pos:e}=Hbe(n,e,t,i,o,r),a(c===null?null:String.fromCodePoint(c))}case 116:return a(" ");case 98:return a("\b");case 118:return a("\v");case 102:return a("\f");case 13:n.charCodeAt(e)===10&&++e;case 10:t=e,++i;case 8232:case 8233:return a("");case 56:case 57:if(s)return a(null);r.strictNumericEscape(e-1,t,i);default:if(l>=48&&l<=55){const c=e-1;let h=/^[0-7]+/.exec(n.slice(c,e+2))[0],d=parseInt(h,8);d>255&&(h=h.slice(0,-1),d=parseInt(h,8)),e+=h.length-1;const f=n.charCodeAt(e);if(h!=="0"||f===56||f===57){if(s)return a(null);r.strictNumericEscape(c,t,i)}return a(String.fromCharCode(d))}return a(String.fromCharCode(l))}}function wH(n,e,t,i,s,r,o,a){const l=e;let c;return{n:c,pos:e}=Vbe(n,e,t,i,16,s,r,!1,a,!o),c===null&&(o?a.invalidEscapeSequence(l,t,i):e=l-1),{code:c,pos:e}}function Vbe(n,e,t,i,s,r,o,a,l,c){const u=e,h=s===16?oae.hex:oae.decBinOct,d=s===16?RA.hex:s===10?RA.dec:s===8?RA.oct:RA.bin;let f=!1,p=0;for(let g=0,m=r??1/0;g<m;++g){const _=n.charCodeAt(e);let b;if(_===95&&a!=="bail"){const w=n.charCodeAt(e-1),C=n.charCodeAt(e+1);if(a){if(Number.isNaN(C)||!d(C)||h.has(w)||h.has(C)){if(c)return{n:null,pos:e};l.unexpectedNumericSeparator(e,t,i)}}else{if(c)return{n:null,pos:e};l.numericSeparatorInEscapeSequence(e,t,i)}++e;continue}if(_>=97?b=_-97+10:_>=65?b=_-65+10:lUe(_)?b=_-48:b=1/0,b>=s){if(b<=9&&c)return{n:null,pos:e};if(b<=9&&l.invalidDigit(e,t,i,s))b=0;else if(o)b=0,f=!0;else break}++e,p=p*s+b}return e===u||r!=null&&e-u!==r||f?{n:null,pos:e}:{n:p,pos:e}}function Hbe(n,e,t,i,s,r){const o=n.charCodeAt(e);let a;if(o===123){if(++e,{code:a,pos:e}=wH(n,e,t,i,n.indexOf("}",e)-e,!0,s,r),++e,a!==null&&a>1114111)if(s)r.invalidCodePoint(e,t,i);else return{code:null,pos:e}}else({code:a,pos:e}=wH(n,e,t,i,4,!1,s,r));return{code:a,pos:e}}function zL(n,e,t){return new _1(t,n-e,n)}const hUe=new Set([103,109,115,105,121,117,100,118]);let xm=class{constructor(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,this.loc=new pO(e.startLoc,e.endLoc)}};class dUe extends sUe{constructor(e,t){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(i,s,r,o)=>this.options.errorRecovery?(this.raise(me.InvalidDigit,zL(i,s,r),{radix:o}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(me.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(me.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(me.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(me.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(i,s,r)=>{this.recordStrictModeErrors(me.StrictNumericEscape,zL(i,s,r))},unterminated:(i,s,r)=>{throw this.raise(me.UnterminatedString,zL(i-1,s,r))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(me.StrictNumericEscape),unterminated:(i,s,r)=>{throw this.raise(me.UnterminatedTemplate,zL(i,s,r))}}),this.state=new aUe,this.state.init(e),this.input=t,this.length=t.length,this.comments=[],this.isLookahead=!1}pushToken(e){this.tokens.length=this.state.tokensLength,this.tokens.push(e),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new xm(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(e){return this.match(e)?(this.next(),!0):!1}match(e){return this.state.type===e}createLookaheadState(e){return{pos:e.pos,value:null,type:e.type,start:e.start,end:e.end,context:[this.curContext()],inType:e.inType,startLoc:e.startLoc,lastTokEndLoc:e.lastTokEndLoc,curLine:e.curLine,lineStart:e.lineStart,curPosition:e.curPosition}}lookahead(){const e=this.state;this.state=this.createLookaheadState(e),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;const t=this.state;return this.state=e,t}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(e){return q9.lastIndex=e,q9.test(this.input)?q9.lastIndex:e}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(e){return K9.lastIndex=e,K9.test(this.input)?K9.lastIndex:e}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(e){let t=this.input.charCodeAt(e);if((t&64512)===55296&&++e<this.input.length){const i=this.input.charCodeAt(e);(i&64512)===56320&&(t=65536+((t&1023)<<10)+(i&1023))}return t}setStrict(e){this.state.strict=e,e&&(this.state.strictErrors.forEach(([t,i])=>this.raise(t,i)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(139);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(e){let t;this.isLookahead||(t=this.state.curPosition());const i=this.state.pos,s=this.input.indexOf(e,i+2);if(s===-1)throw this.raise(me.UnterminatedComment,this.state.curPosition());for(this.state.pos=s+e.length,PA.lastIndex=i+2;PA.test(this.input)&&PA.lastIndex<=s;)++this.state.curLine,this.state.lineStart=PA.lastIndex;if(this.isLookahead)return;const r={type:"CommentBlock",value:this.input.slice(i+2,s),start:i,end:s+e.length,loc:new pO(t,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(e){const t=this.state.pos;let i;this.isLookahead||(i=this.state.curPosition());let s=this.input.charCodeAt(this.state.pos+=e);if(this.state.pos<this.length)for(;!NC(s)&&++this.state.pos<this.length;)s=this.input.charCodeAt(this.state.pos);if(this.isLookahead)return;const r=this.state.pos,a={type:"CommentLine",value:this.input.slice(t+e,r),start:t,end:r,loc:new pO(i,this.state.curPosition())};return this.options.tokens&&this.pushToken(a),a}skipSpace(){const e=this.state.pos,t=[];e:for(;this.state.pos<this.length;){const i=this.input.charCodeAt(this.state.pos);switch(i){case 32:case 160:case 9:++this.state.pos;break;case 13:this.input.charCodeAt(this.state.pos+1)===10&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:{const s=this.skipBlockComment("*/");s!==void 0&&(this.addComment(s),this.options.attachComment&&t.push(s));break}case 47:{const s=this.skipLineComment(2);s!==void 0&&(this.addComment(s),this.options.attachComment&&t.push(s));break}default:break e}break;default:if(oUe(i))++this.state.pos;else if(i===45&&!this.inModule&&this.options.annexB){const s=this.state.pos;if(this.input.charCodeAt(s+1)===45&&this.input.charCodeAt(s+2)===62&&(e===0||this.state.lineStart>e)){const r=this.skipLineComment(3);r!==void 0&&(this.addComment(r),this.options.attachComment&&t.push(r))}else break e}else if(i===60&&!this.inModule&&this.options.annexB){const s=this.state.pos;if(this.input.charCodeAt(s+1)===33&&this.input.charCodeAt(s+2)===45&&this.input.charCodeAt(s+3)===45){const r=this.skipLineComment(4);r!==void 0&&(this.addComment(r),this.options.attachComment&&t.push(r))}else break e}else break e}}if(t.length>0){const i=this.state.pos,s={start:e,end:i,comments:t,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(s)}}finishToken(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();const i=this.state.type;this.state.type=e,this.state.value=t,this.isLookahead||this.updateContext(i)}replaceToken(e){this.state.type=e,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;const e=this.state.pos+1,t=this.codePointAtPos(e);if(t>=48&&t<=57)throw this.raise(me.UnexpectedDigitAfterHash,this.state.curPosition());if(t===123||t===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(t===123?me.RecordExpressionHashIncorrectStartSyntaxType:me.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,t===123?this.finishToken(7):this.finishToken(1)}else zp(t)?(++this.state.pos,this.finishToken(138,this.readWord1(t))):t===92?(++this.state.pos,this.finishToken(138,this.readWord1())):this.finishOp(27,1)}readToken_dot(){const e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57){this.readNumber(!0);return}e===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let e=this.input.charCodeAt(this.state.pos+1);if(e!==33)return!1;const t=this.state.pos;for(this.state.pos+=1;!NC(e)&&++this.state.pos<this.length;)e=this.input.charCodeAt(this.state.pos);const i=this.input.slice(t+2,this.state.pos);return this.finishToken(28,i),!0}readToken_mult_modulo(e){let t=e===42?55:54,i=1,s=this.input.charCodeAt(this.state.pos+1);e===42&&s===42&&(i++,s=this.input.charCodeAt(this.state.pos+2),t=57),s===61&&!this.state.inType&&(i++,t=e===37?33:30),this.finishOp(t,i)}readToken_pipe_amp(e){const t=this.input.charCodeAt(this.state.pos+1);if(t===e){this.input.charCodeAt(this.state.pos+2)===61?this.finishOp(30,3):this.finishOp(e===124?41:42,2);return}if(e===124){if(t===62){this.finishOp(39,2);return}if(this.hasPlugin("recordAndTuple")&&t===125){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(me.RecordExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(9);return}if(this.hasPlugin("recordAndTuple")&&t===93){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(me.TupleExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(4);return}}if(t===61){this.finishOp(30,2);return}this.finishOp(e===124?43:45,1)}readToken_caret(){const e=this.input.charCodeAt(this.state.pos+1);e===61&&!this.state.inType?this.finishOp(32,2):e===94&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"^^"}])?(this.finishOp(37,2),this.input.codePointAt(this.state.pos)===94&&this.unexpected()):this.finishOp(44,1)}readToken_atSign(){this.input.charCodeAt(this.state.pos+1)===64&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"@@"}])?this.finishOp(38,2):this.finishOp(26,1)}readToken_plus_min(e){const t=this.input.charCodeAt(this.state.pos+1);if(t===e){this.finishOp(34,2);return}t===61?this.finishOp(30,2):this.finishOp(53,1)}readToken_lt(){const{pos:e}=this.state,t=this.input.charCodeAt(e+1);if(t===60){if(this.input.charCodeAt(e+2)===61){this.finishOp(30,3);return}this.finishOp(51,2);return}if(t===61){this.finishOp(49,2);return}this.finishOp(47,1)}readToken_gt(){const{pos:e}=this.state,t=this.input.charCodeAt(e+1);if(t===62){const i=this.input.charCodeAt(e+2)===62?3:2;if(this.input.charCodeAt(e+i)===61){this.finishOp(30,i+1);return}this.finishOp(52,i);return}if(t===61){this.finishOp(49,2);return}this.finishOp(48,1)}readToken_eq_excl(e){const t=this.input.charCodeAt(this.state.pos+1);if(t===61){this.finishOp(46,this.input.charCodeAt(this.state.pos+2)===61?3:2);return}if(e===61&&t===62){this.state.pos+=2,this.finishToken(19);return}this.finishOp(e===61?29:35,1)}readToken_question(){const e=this.input.charCodeAt(this.state.pos+1),t=this.input.charCodeAt(this.state.pos+2);e===63?t===61?this.finishOp(30,3):this.finishOp(40,2):e===46&&!(t>=48&&t<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(e){switch(e){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(me.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(me.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{const t=this.input.charCodeAt(this.state.pos+1);if(t===120||t===88){this.readRadixNumber(16);return}if(t===111||t===79){this.readRadixNumber(8);return}if(t===98||t===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(e);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(e);return;case 124:case 38:this.readToken_pipe_amp(e);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(e);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(e);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(zp(e)){this.readWord(e);return}}throw this.raise(me.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(e)})}finishOp(e,t){const i=this.input.slice(this.state.pos,this.state.pos+t);this.state.pos+=t,this.finishToken(e,i)}readRegexp(){const e=this.state.startLoc,t=this.state.start+1;let i,s,{pos:r}=this.state;for(;;++r){if(r>=this.length)throw this.raise(me.UnterminatedRegExp,sl(e,1));const c=this.input.charCodeAt(r);if(NC(c))throw this.raise(me.UnterminatedRegExp,sl(e,1));if(i)i=!1;else{if(c===91)s=!0;else if(c===93&&s)s=!1;else if(c===47&&!s)break;i=c===92}}const o=this.input.slice(t,r);++r;let a="";const l=()=>sl(e,r+2-t);for(;r<this.length;){const c=this.codePointAtPos(r),u=String.fromCharCode(c);if(hUe.has(c))c===118?a.includes("u")&&this.raise(me.IncompatibleRegExpUVFlags,l()):c===117&&a.includes("v")&&this.raise(me.IncompatibleRegExpUVFlags,l()),a.includes(u)&&this.raise(me.DuplicateRegExpFlags,l());else if(DC(c)||c===92)this.raise(me.MalformedRegExpFlags,l());else break;++r,a+=u}this.state.pos=r,this.finishToken(137,{pattern:o,flags:a})}readInt(e,t,i=!1,s=!0){const{n:r,pos:o}=Vbe(this.input,this.state.pos,this.state.lineStart,this.state.curLine,e,t,i,s,this.errorHandlers_readInt,!1);return this.state.pos=o,r}readRadixNumber(e){const t=this.state.curPosition();let i=!1;this.state.pos+=2;const s=this.readInt(e);s==null&&this.raise(me.InvalidDigit,sl(t,2),{radix:e});const r=this.input.charCodeAt(this.state.pos);if(r===110)++this.state.pos,i=!0;else if(r===109)throw this.raise(me.InvalidDecimal,t);if(zp(this.codePointAtPos(this.state.pos)))throw this.raise(me.NumberIdentifier,this.state.curPosition());if(i){const o=this.input.slice(t.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(135,o);return}this.finishToken(134,s)}readNumber(e){const t=this.state.pos,i=this.state.curPosition();let s=!1,r=!1,o=!1,a=!1,l=!1;!e&&this.readInt(10)===null&&this.raise(me.InvalidNumber,this.state.curPosition());const c=this.state.pos-t>=2&&this.input.charCodeAt(t)===48;if(c){const f=this.input.slice(t,this.state.pos);if(this.recordStrictModeErrors(me.StrictOctalLiteral,i),!this.state.strict){const p=f.indexOf("_");p>0&&this.raise(me.ZeroDigitNumericSeparator,sl(i,p))}l=c&&!/[89]/.test(f)}let u=this.input.charCodeAt(this.state.pos);if(u===46&&!l&&(++this.state.pos,this.readInt(10),s=!0,u=this.input.charCodeAt(this.state.pos)),(u===69||u===101)&&!l&&(u=this.input.charCodeAt(++this.state.pos),(u===43||u===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(me.InvalidOrMissingExponent,i),s=!0,a=!0,u=this.input.charCodeAt(this.state.pos)),u===110&&((s||c)&&this.raise(me.InvalidBigIntLiteral,i),++this.state.pos,r=!0),u===109&&(this.expectPlugin("decimal",this.state.curPosition()),(a||c)&&this.raise(me.InvalidDecimal,i),++this.state.pos,o=!0),zp(this.codePointAtPos(this.state.pos)))throw this.raise(me.NumberIdentifier,this.state.curPosition());const h=this.input.slice(t,this.state.pos).replace(/[_mn]/g,"");if(r){this.finishToken(135,h);return}if(o){this.finishToken(136,h);return}const d=l?parseInt(h,8):parseFloat(h);this.finishToken(134,d)}readCodePoint(e){const{code:t,pos:i}=Hbe(this.input,this.state.pos,this.state.lineStart,this.state.curLine,e,this.errorHandlers_readCodePoint);return this.state.pos=i,t}readString(e){const{str:t,pos:i,curLine:s,lineStart:r}=aae(e===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=i+1,this.state.lineStart=r,this.state.curLine=s,this.finishToken(133,t)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){const e=this.input[this.state.pos],{str:t,firstInvalidLoc:i,pos:s,curLine:r,lineStart:o}=aae("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=s+1,this.state.lineStart=o,this.state.curLine=r,i&&(this.state.firstInvalidTemplateEscapePos=new _1(i.curLine,i.pos-i.lineStart,i.pos)),this.input.codePointAt(s)===96?this.finishToken(24,i?null:e+t+"`"):(this.state.pos++,this.finishToken(25,i?null:e+t+"${"))}recordStrictModeErrors(e,t){const i=t.index;this.state.strict&&!this.state.strictErrors.has(i)?this.raise(e,t):this.state.strictErrors.set(i,[e,t])}readWord1(e){this.state.containsEsc=!1;let t="";const i=this.state.pos;let s=this.state.pos;for(e!==void 0&&(this.state.pos+=e<=65535?1:2);this.state.pos<this.length;){const r=this.codePointAtPos(this.state.pos);if(DC(r))this.state.pos+=r<=65535?1:2;else if(r===92){this.state.containsEsc=!0,t+=this.input.slice(s,this.state.pos);const o=this.state.curPosition(),a=this.state.pos===i?zp:DC;if(this.input.charCodeAt(++this.state.pos)!==117){this.raise(me.MissingUnicodeEscape,this.state.curPosition()),s=this.state.pos-1;continue}++this.state.pos;const l=this.readCodePoint(!0);l!==null&&(a(l)||this.raise(me.EscapedCharNotAnIdentifier,o),t+=String.fromCodePoint(l)),s=this.state.pos}else break}return t+this.input.slice(s,this.state.pos)}readWord(e){const t=this.readWord1(e),i=AZ.get(t);i!==void 0?this.finishToken(i,v1(i)):this.finishToken(132,t)}checkKeywordEscapes(){const{type:e}=this.state;BZ(e)&&this.state.containsEsc&&this.raise(me.InvalidEscapedReservedWord,this.state.startLoc,{reservedWord:v1(e)})}raise(e,t,i={}){const s=t instanceof _1?t:t.loc.start,r=e(s,i);if(!this.options.errorRecovery)throw r;return this.isLookahead||this.state.errors.push(r),r}raiseOverwrite(e,t,i={}){const s=t instanceof _1?t:t.loc.start,r=s.index,o=this.state.errors;for(let a=o.length-1;a>=0;a--){const l=o[a];if(l.loc.index===r)return o[a]=e(s,i);if(l.loc.index<r)break}return this.raise(e,t,i)}updateContext(e){}unexpected(e,t){throw this.raise(me.UnexpectedToken,e??this.state.startLoc,{expected:t?v1(t):null})}expectPlugin(e,t){if(this.hasPlugin(e))return!0;throw this.raise(me.MissingPlugin,t??this.state.startLoc,{missingPlugin:[e]})}expectOnePlugin(e){if(!e.some(t=>this.hasPlugin(t)))throw this.raise(me.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:e})}errorBuilder(e){return(t,i,s)=>{this.raise(e,zL(t,i,s))}}}class fUe{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}}class pUe{constructor(e){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=e}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new fUe)}exit(){const e=this.stack.pop(),t=this.current();for(const[i,s]of Array.from(e.undefinedPrivateNames))t?t.undefinedPrivateNames.has(i)||t.undefinedPrivateNames.set(i,s):this.parser.raise(me.InvalidPrivateFieldResolution,s,{identifierName:i})}declarePrivateName(e,t,i){const{privateNames:s,loneAccessors:r,undefinedPrivateNames:o}=this.current();let a=s.has(e);if(t&3){const l=a&&r.get(e);if(l){const c=l&4,u=t&4,h=l&3,d=t&3;a=h===d||c!==u,a||r.delete(e)}else a||r.set(e,t)}a&&this.parser.raise(me.PrivateNameRedeclaration,i,{identifierName:e}),s.add(e),o.delete(e)}usePrivateName(e,t){let i;for(i of this.stack)if(i.privateNames.has(e))return;i?i.undefinedPrivateNames.set(e,t):this.parser.raise(me.InvalidPrivateFieldResolution,t,{identifierName:e})}}class z6{constructor(e=0){this.type=e}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}}class $be extends z6{constructor(e){super(e),this.declarationErrors=new Map}recordDeclarationError(e,t){const i=t.index;this.declarationErrors.set(i,[e,t])}clearDeclarationError(e){this.declarationErrors.delete(e)}iterateErrors(e){this.declarationErrors.forEach(e)}}class gUe{constructor(e){this.parser=void 0,this.stack=[new z6],this.parser=e}enter(e){this.stack.push(e)}exit(){this.stack.pop()}recordParameterInitializerError(e,t){const i=t.loc.start,{stack:s}=this;let r=s.length-1,o=s[r];for(;!o.isCertainlyParameterDeclaration();){if(o.canBeArrowParameterDeclaration())o.recordDeclarationError(e,i);else return;o=s[--r]}this.parser.raise(e,i)}recordArrowParameterBindingError(e,t){const{stack:i}=this,s=i[i.length-1],r=t.loc.start;if(s.isCertainlyParameterDeclaration())this.parser.raise(e,r);else if(s.canBeArrowParameterDeclaration())s.recordDeclarationError(e,r);else return}recordAsyncArrowParametersError(e){const{stack:t}=this;let i=t.length-1,s=t[i];for(;s.canBeArrowParameterDeclaration();)s.type===2&&s.recordDeclarationError(me.AwaitBindingIdentifier,e),s=t[--i]}validateAsPattern(){const{stack:e}=this,t=e[e.length-1];t.canBeArrowParameterDeclaration()&&t.iterateErrors(([i,s])=>{this.parser.raise(i,s);let r=e.length-2,o=e[r];for(;o.canBeArrowParameterDeclaration();)o.clearDeclarationError(s.index),o=e[--r]})}}function mUe(){return new z6(3)}function _Ue(){return new $be(1)}function vUe(){return new $be(2)}function zbe(){return new z6}class bUe{constructor(){this.stacks=[]}enter(e){this.stacks.push(e)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}}function OR(n,e){return(n?2:0)|(e?1:0)}class yUe extends dUe{addExtra(e,t,i,s=!0){if(!e)return;let{extra:r}=e;r==null&&(r={},e.extra=r),s?r[t]=i:Object.defineProperty(r,t,{enumerable:s,value:i})}isContextual(e){return this.state.type===e&&!this.state.containsEsc}isUnparsedContextual(e,t){const i=e+t.length;if(this.input.slice(e,i)===t){const s=this.input.charCodeAt(i);return!(DC(s)||(s&64512)===55296)}return!1}isLookaheadContextual(e){const t=this.nextTokenStart();return this.isUnparsedContextual(t,e)}eatContextual(e){return this.isContextual(e)?(this.next(),!0):!1}expectContextual(e,t){if(!this.eatContextual(e)){if(t!=null)throw this.raise(t,this.state.startLoc);this.unexpected(null,e)}}canInsertSemicolon(){return this.match(139)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return rae(this.input,this.state.lastTokEndLoc.index,this.state.start)}hasFollowingLineBreak(){return rae(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(e=!0){(e?this.isLineTerminator():this.eat(13))||this.raise(me.MissingSemicolon,this.state.lastTokEndLoc)}expect(e,t){this.eat(e)||this.unexpected(t,e)}tryParse(e,t=this.state.clone()){const i={node:null};try{const s=e((r=null)=>{throw i.node=r,i});if(this.state.errors.length>t.errors.length){const r=this.state;return this.state=t,this.state.tokensLength=r.tokensLength,{node:s,error:r.errors[t.errors.length],thrown:!1,aborted:!1,failState:r}}return{node:s,error:null,thrown:!1,aborted:!1,failState:null}}catch(s){const r=this.state;if(this.state=t,s instanceof SyntaxError)return{node:null,error:s,thrown:!0,aborted:!1,failState:r};if(s===i)return{node:i.node,error:null,thrown:!1,aborted:!0,failState:r};throw s}}checkExpressionErrors(e,t){if(!e)return!1;const{shorthandAssignLoc:i,doubleProtoLoc:s,privateKeyLoc:r,optionalParametersLoc:o}=e,a=!!i||!!s||!!o||!!r;if(!t)return a;i!=null&&this.raise(me.InvalidCoverInitializedName,i),s!=null&&this.raise(me.DuplicateProto,s),r!=null&&this.raise(me.UnexpectedPrivateField,r),o!=null&&this.unexpected(o)}isLiteralPropertyName(){return Nbe(this.state.type)}isPrivateName(e){return e.type==="PrivateName"}getPrivateNameSV(e){return e.id.name}hasPropertyAsPrivateName(e){return(e.type==="MemberExpression"||e.type==="OptionalMemberExpression")&&this.isPrivateName(e.property)}isObjectProperty(e){return e.type==="ObjectProperty"}isObjectMethod(e){return e.type==="ObjectMethod"}initializeScopes(e=this.options.sourceType==="module"){const t=this.state.labels;this.state.labels=[];const i=this.exportedIdentifiers;this.exportedIdentifiers=new Set;const s=this.inModule;this.inModule=e;const r=this.scope,o=this.getScopeHandler();this.scope=new o(this,e);const a=this.prodParam;this.prodParam=new bUe;const l=this.classScope;this.classScope=new pUe(this);const c=this.expressionScope;return this.expressionScope=new gUe(this),()=>{this.state.labels=t,this.exportedIdentifiers=i,this.inModule=s,this.scope=r,this.prodParam=a,this.classScope=l,this.expressionScope=c}}enterInitialScopes(){let e=0;this.inModule&&(e|=2),this.scope.enter(1),this.prodParam.enter(e)}checkDestructuringPrivate(e){const{privateKeyLoc:t}=e;t!==null&&this.expectPlugin("destructuringPrivate",t)}}class FR{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}}let mO=class{constructor(e,t,i){this.type="",this.start=t,this.end=0,this.loc=new pO(i),e!=null&&e.options.ranges&&(this.range=[t,0]),e!=null&&e.filename&&(this.loc.filename=e.filename)}};const zZ=mO.prototype;zZ.__clone=function(){const n=new mO(void 0,this.start,this.loc.start),e=Object.keys(this);for(let t=0,i=e.length;t<i;t++){const s=e[t];s!=="leadingComments"&&s!=="trailingComments"&&s!=="innerComments"&&(n[s]=this[s])}return n};function wUe(n){return vg(n)}function vg(n){const{type:e,start:t,end:i,loc:s,range:r,extra:o,name:a}=n,l=Object.create(zZ);return l.type=e,l.start=t,l.end=i,l.loc=s,l.range=r,l.extra=o,l.name=a,e==="Placeholder"&&(l.expectedNode=n.expectedNode),l}function CUe(n){const{type:e,start:t,end:i,loc:s,range:r,extra:o}=n;if(e==="Placeholder")return wUe(n);const a=Object.create(zZ);return a.type=e,a.start=t,a.end=i,a.loc=s,a.range=r,n.raw!==void 0?a.raw=n.raw:a.extra=o,a.value=n.value,a}class SUe extends yUe{startNode(){const e=this.state.startLoc;return new mO(this,e.index,e)}startNodeAt(e){return new mO(this,e.index,e)}startNodeAtNode(e){return this.startNodeAt(e.loc.start)}finishNode(e,t){return this.finishNodeAt(e,t,this.state.lastTokEndLoc)}finishNodeAt(e,t,i){return e.type=t,e.end=i.index,e.loc.end=i,this.options.ranges&&(e.range[1]=i.index),this.options.attachComment&&this.processComment(e),e}resetStartLocation(e,t){e.start=t.index,e.loc.start=t,this.options.ranges&&(e.range[0]=t.index)}resetEndLocation(e,t=this.state.lastTokEndLoc){e.end=t.index,e.loc.end=t,this.options.ranges&&(e.range[1]=t.index)}resetStartLocationFromNode(e,t){this.resetStartLocation(e,t.loc.start)}}const xUe=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),ai=Zp`flow`({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:({reservedType:n})=>`Cannot overwrite reserved type ${n}.`,DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:({memberName:n,enumName:e})=>`Boolean enum members need to be initialized. Use either \`${n} = true,\` or \`${n} = false,\` in enum \`${e}\`.`,EnumDuplicateMemberName:({memberName:n,enumName:e})=>`Enum member names need to be unique, but the name \`${n}\` has already been used before in enum \`${e}\`.`,EnumInconsistentMemberValues:({enumName:n})=>`Enum \`${n}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:n,enumName:e})=>`Enum type \`${n}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:n})=>`Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${n}\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:n,memberName:e,explicitType:t})=>`Enum \`${n}\` has type \`${t}\`, so the initializer of \`${e}\` needs to be a ${t} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:n,memberName:e})=>`Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${n}\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:n,memberName:e})=>`The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${n}\`.`,EnumInvalidMemberName:({enumName:n,memberName:e,suggestion:t})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${t}\`, in enum \`${n}\`.`,EnumNumberMemberNotInitialized:({enumName:n,memberName:e})=>`Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${n}\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:n})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \`${n}\`.`,GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:({reservedType:n})=>`Unexpected reserved type ${n}.`,UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",UnsupportedDeclareExportKind:({unsupportedExportKind:n,suggestion:e})=>`\`declare export ${n}\` is not supported. Use \`${e}\` instead.`,UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function LUe(n){return n.type==="DeclareExportAllDeclaration"||n.type==="DeclareExportDeclaration"&&(!n.declaration||n.declaration.type!=="TypeAlias"&&n.declaration.type!=="InterfaceDeclaration")}function lae(n){return n.importKind==="type"||n.importKind==="typeof"}const EUe={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function kUe(n,e){const t=[],i=[];for(let s=0;s<n.length;s++)(e(n[s],s,n)?t:i).push(n[s]);return[t,i]}const IUe=/\*?\s*@((?:no)?flow)\b/;var TUe=n=>class extends n{constructor(...t){super(...t),this.flowPragma=void 0}getScopeHandler(){return tUe}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(t,i){t!==133&&t!==13&&t!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(t,i)}addComment(t){if(this.flowPragma===void 0){const i=IUe.exec(t.value);if(i)if(i[1]==="flow")this.flowPragma="flow";else if(i[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}super.addComment(t)}flowParseTypeInitialiser(t){const i=this.state.inType;this.state.inType=!0,this.expect(t||14);const s=this.flowParseType();return this.state.inType=i,s}flowParsePredicate(){const t=this.startNode(),i=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>i.index+1&&this.raise(ai.UnexpectedSpaceBetweenModuloChecks,i),this.eat(10)?(t.value=super.parseExpression(),this.expect(11),this.finishNode(t,"DeclaredPredicate")):this.finishNode(t,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){const t=this.state.inType;this.state.inType=!0,this.expect(14);let i=null,s=null;return this.match(54)?(this.state.inType=t,s=this.flowParsePredicate()):(i=this.flowParseType(),this.state.inType=t,this.match(54)&&(s=this.flowParsePredicate())),[i,s]}flowParseDeclareClass(t){return this.next(),this.flowParseInterfaceish(t,!0),this.finishNode(t,"DeclareClass")}flowParseDeclareFunction(t){this.next();const i=t.id=this.parseIdentifier(),s=this.startNode(),r=this.startNode();this.match(47)?s.typeParameters=this.flowParseTypeParameterDeclaration():s.typeParameters=null,this.expect(10);const o=this.flowParseFunctionTypeParams();return s.params=o.params,s.rest=o.rest,s.this=o._this,this.expect(11),[s.returnType,t.predicate]=this.flowParseTypeAndPredicateInitialiser(),r.typeAnnotation=this.finishNode(s,"FunctionTypeAnnotation"),i.typeAnnotation=this.finishNode(r,"TypeAnnotation"),this.resetEndLocation(i),this.semicolon(),this.scope.declareName(t.id.name,2048,t.id.loc.start),this.finishNode(t,"DeclareFunction")}flowParseDeclare(t,i){if(this.match(80))return this.flowParseDeclareClass(t);if(this.match(68))return this.flowParseDeclareFunction(t);if(this.match(74))return this.flowParseDeclareVariable(t);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(t):(i&&this.raise(ai.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(t));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(t);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(t);if(this.isContextual(129))return this.flowParseDeclareInterface(t);if(this.match(82))return this.flowParseDeclareExportDeclaration(t,i);this.unexpected()}flowParseDeclareVariable(t){return this.next(),t.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(t.id.name,5,t.id.loc.start),this.semicolon(),this.finishNode(t,"DeclareVariable")}flowParseDeclareModule(t){this.scope.enter(0),this.match(133)?t.id=super.parseExprAtom():t.id=this.parseIdentifier();const i=t.body=this.startNode(),s=i.body=[];for(this.expect(5);!this.match(8);){let a=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(ai.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(a)):(this.expectContextual(125,ai.UnsupportedStatementInDeclareModule),a=this.flowParseDeclare(a,!0)),s.push(a)}this.scope.exit(),this.expect(8),this.finishNode(i,"BlockStatement");let r=null,o=!1;return s.forEach(a=>{LUe(a)?(r==="CommonJS"&&this.raise(ai.AmbiguousDeclareModuleKind,a),r="ES"):a.type==="DeclareModuleExports"&&(o&&this.raise(ai.DuplicateDeclareModuleExports,a),r==="ES"&&this.raise(ai.AmbiguousDeclareModuleKind,a),r="CommonJS",o=!0)}),t.kind=r||"CommonJS",this.finishNode(t,"DeclareModule")}flowParseDeclareExportDeclaration(t,i){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?t.declaration=this.flowParseDeclare(this.startNode()):(t.declaration=this.flowParseType(),this.semicolon()),t.default=!0,this.finishNode(t,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!i){const s=this.state.value;throw this.raise(ai.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:s,suggestion:EUe[s]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return t.declaration=this.flowParseDeclare(this.startNode()),t.default=!1,this.finishNode(t,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return t=this.parseExport(t,null),t.type==="ExportNamedDeclaration"&&(t.type="ExportDeclaration",t.default=!1,delete t.exportKind),t.type="Declare"+t.type,t;this.unexpected()}flowParseDeclareModuleExports(t){return this.next(),this.expectContextual(111),t.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(t,"DeclareModuleExports")}flowParseDeclareTypeAlias(t){this.next();const i=this.flowParseTypeAlias(t);return i.type="DeclareTypeAlias",i}flowParseDeclareOpaqueType(t){this.next();const i=this.flowParseOpaqueType(t,!0);return i.type="DeclareOpaqueType",i}flowParseDeclareInterface(t){return this.next(),this.flowParseInterfaceish(t,!1),this.finishNode(t,"DeclareInterface")}flowParseInterfaceish(t,i){if(t.id=this.flowParseRestrictedIdentifier(!i,!0),this.scope.declareName(t.id.name,i?17:8201,t.id.loc.start),this.match(47)?t.typeParameters=this.flowParseTypeParameterDeclaration():t.typeParameters=null,t.extends=[],this.eat(81))do t.extends.push(this.flowParseInterfaceExtends());while(!i&&this.eat(12));if(i){if(t.implements=[],t.mixins=[],this.eatContextual(117))do t.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do t.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}t.body=this.flowParseObjectType({allowStatic:i,allowExact:!1,allowSpread:!1,allowProto:i,allowInexact:!1})}flowParseInterfaceExtends(){const t=this.startNode();return t.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?t.typeParameters=this.flowParseTypeParameterInstantiation():t.typeParameters=null,this.finishNode(t,"InterfaceExtends")}flowParseInterface(t){return this.flowParseInterfaceish(t,!1),this.finishNode(t,"InterfaceDeclaration")}checkNotUnderscore(t){t==="_"&&this.raise(ai.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(t,i,s){xUe.has(t)&&this.raise(s?ai.AssignReservedType:ai.UnexpectedReservedType,i,{reservedType:t})}flowParseRestrictedIdentifier(t,i){return this.checkReservedType(this.state.value,this.state.startLoc,i),this.parseIdentifier(t)}flowParseTypeAlias(t){return t.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(t.id.name,8201,t.id.loc.start),this.match(47)?t.typeParameters=this.flowParseTypeParameterDeclaration():t.typeParameters=null,t.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(t,"TypeAlias")}flowParseOpaqueType(t,i){return this.expectContextual(130),t.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(t.id.name,8201,t.id.loc.start),this.match(47)?t.typeParameters=this.flowParseTypeParameterDeclaration():t.typeParameters=null,t.supertype=null,this.match(14)&&(t.supertype=this.flowParseTypeInitialiser(14)),t.impltype=null,i||(t.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(t,"OpaqueType")}flowParseTypeParameter(t=!1){const i=this.state.startLoc,s=this.startNode(),r=this.flowParseVariance(),o=this.flowParseTypeAnnotatableIdentifier();return s.name=o.name,s.variance=r,s.bound=o.typeAnnotation,this.match(29)?(this.eat(29),s.default=this.flowParseType()):t&&this.raise(ai.MissingTypeParamDefault,i),this.finishNode(s,"TypeParameter")}flowParseTypeParameterDeclaration(){const t=this.state.inType,i=this.startNode();i.params=[],this.state.inType=!0,this.match(47)||this.match(142)?this.next():this.unexpected();let s=!1;do{const r=this.flowParseTypeParameter(s);i.params.push(r),r.default&&(s=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=t,this.finishNode(i,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){const t=this.startNode(),i=this.state.inType;t.params=[],this.state.inType=!0,this.expect(47);const s=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)t.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=s,this.expect(48),this.state.inType=i,this.finishNode(t,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){const t=this.startNode(),i=this.state.inType;for(t.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)t.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=i,this.finishNode(t,"TypeParameterInstantiation")}flowParseInterfaceType(){const t=this.startNode();if(this.expectContextual(129),t.extends=[],this.eat(81))do t.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return t.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(t,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(134)||this.match(133)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(t,i,s){return t.static=i,this.lookahead().type===14?(t.id=this.flowParseObjectPropertyKey(),t.key=this.flowParseTypeInitialiser()):(t.id=null,t.key=this.flowParseType()),this.expect(3),t.value=this.flowParseTypeInitialiser(),t.variance=s,this.finishNode(t,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(t,i){return t.static=i,t.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(t.method=!0,t.optional=!1,t.value=this.flowParseObjectTypeMethodish(this.startNodeAt(t.loc.start))):(t.method=!1,this.eat(17)&&(t.optional=!0),t.value=this.flowParseTypeInitialiser()),this.finishNode(t,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(t){for(t.params=[],t.rest=null,t.typeParameters=null,t.this=null,this.match(47)&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(t.this=this.flowParseFunctionTypeParam(!0),t.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)t.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(t.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),t.returnType=this.flowParseTypeInitialiser(),this.finishNode(t,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(t,i){const s=this.startNode();return t.static=i,t.value=this.flowParseObjectTypeMethodish(s),this.finishNode(t,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:t,allowExact:i,allowSpread:s,allowProto:r,allowInexact:o}){const a=this.state.inType;this.state.inType=!0;const l=this.startNode();l.callProperties=[],l.properties=[],l.indexers=[],l.internalSlots=[];let c,u,h=!1;for(i&&this.match(6)?(this.expect(6),c=9,u=!0):(this.expect(5),c=8,u=!1),l.exact=u;!this.match(c);){let f=!1,p=null,g=null;const m=this.startNode();if(r&&this.isContextual(118)){const b=this.lookahead();b.type!==14&&b.type!==17&&(this.next(),p=this.state.startLoc,t=!1)}if(t&&this.isContextual(106)){const b=this.lookahead();b.type!==14&&b.type!==17&&(this.next(),f=!0)}const _=this.flowParseVariance();if(this.eat(0))p!=null&&this.unexpected(p),this.eat(0)?(_&&this.unexpected(_.loc.start),l.internalSlots.push(this.flowParseObjectTypeInternalSlot(m,f))):l.indexers.push(this.flowParseObjectTypeIndexer(m,f,_));else if(this.match(10)||this.match(47))p!=null&&this.unexpected(p),_&&this.unexpected(_.loc.start),l.callProperties.push(this.flowParseObjectTypeCallProperty(m,f));else{let b="init";if(this.isContextual(99)||this.isContextual(104)){const C=this.lookahead();Nbe(C.type)&&(b=this.state.value,this.next())}const w=this.flowParseObjectTypeProperty(m,f,p,_,b,s,o??!u);w===null?(h=!0,g=this.state.lastTokStartLoc):l.properties.push(w)}this.flowObjectTypeSemicolon(),g&&!this.match(8)&&!this.match(9)&&this.raise(ai.UnexpectedExplicitInexactInObject,g)}this.expect(c),s&&(l.inexact=h);const d=this.finishNode(l,"ObjectTypeAnnotation");return this.state.inType=a,d}flowParseObjectTypeProperty(t,i,s,r,o,a,l){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(a?l||this.raise(ai.InexactInsideExact,this.state.lastTokStartLoc):this.raise(ai.InexactInsideNonObject,this.state.lastTokStartLoc),r&&this.raise(ai.InexactVariance,r),null):(a||this.raise(ai.UnexpectedSpreadType,this.state.lastTokStartLoc),s!=null&&this.unexpected(s),r&&this.raise(ai.SpreadVariance,r),t.argument=this.flowParseType(),this.finishNode(t,"ObjectTypeSpreadProperty"));{t.key=this.flowParseObjectPropertyKey(),t.static=i,t.proto=s!=null,t.kind=o;let c=!1;return this.match(47)||this.match(10)?(t.method=!0,s!=null&&this.unexpected(s),r&&this.unexpected(r.loc.start),t.value=this.flowParseObjectTypeMethodish(this.startNodeAt(t.loc.start)),(o==="get"||o==="set")&&this.flowCheckGetterSetterParams(t),!a&&t.key.name==="constructor"&&t.value.this&&this.raise(ai.ThisParamBannedInConstructor,t.value.this)):(o!=="init"&&this.unexpected(),t.method=!1,this.eat(17)&&(c=!0),t.value=this.flowParseTypeInitialiser(),t.variance=r),t.optional=c,this.finishNode(t,"ObjectTypeProperty")}}flowCheckGetterSetterParams(t){const i=t.kind==="get"?0:1,s=t.value.params.length+(t.value.rest?1:0);t.value.this&&this.raise(t.kind==="get"?ai.GetterMayNotHaveThisParam:ai.SetterMayNotHaveThisParam,t.value.this),s!==i&&this.raise(t.kind==="get"?me.BadGetterArity:me.BadSetterArity,t),t.kind==="set"&&t.value.rest&&this.raise(me.BadSetterRestParameter,t)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(t,i){var s;(s=t)!=null||(t=this.state.startLoc);let r=i||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){const o=this.startNodeAt(t);o.qualification=r,o.id=this.flowParseRestrictedIdentifier(!0),r=this.finishNode(o,"QualifiedTypeIdentifier")}return r}flowParseGenericType(t,i){const s=this.startNodeAt(t);return s.typeParameters=null,s.id=this.flowParseQualifiedTypeIdentifier(t,i),this.match(47)&&(s.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(s,"GenericTypeAnnotation")}flowParseTypeofType(){const t=this.startNode();return this.expect(87),t.argument=this.flowParsePrimaryType(),this.finishNode(t,"TypeofTypeAnnotation")}flowParseTupleType(){const t=this.startNode();for(t.types=[],this.expect(0);this.state.pos<this.length&&!this.match(3)&&(t.types.push(this.flowParseType()),!this.match(3));)this.expect(12);return this.expect(3),this.finishNode(t,"TupleTypeAnnotation")}flowParseFunctionTypeParam(t){let i=null,s=!1,r=null;const o=this.startNode(),a=this.lookahead(),l=this.state.type===78;return a.type===14||a.type===17?(l&&!t&&this.raise(ai.ThisParamMustBeFirst,o),i=this.parseIdentifier(l),this.eat(17)&&(s=!0,l&&this.raise(ai.ThisParamMayNotBeOptional,o)),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),o.name=i,o.optional=s,o.typeAnnotation=r,this.finishNode(o,"FunctionTypeParam")}reinterpretTypeAsFunctionTypeParam(t){const i=this.startNodeAt(t.loc.start);return i.name=null,i.optional=!1,i.typeAnnotation=t,this.finishNode(i,"FunctionTypeParam")}flowParseFunctionTypeParams(t=[]){let i=null,s=null;for(this.match(78)&&(s=this.flowParseFunctionTypeParam(!0),s.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)t.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(i=this.flowParseFunctionTypeParam(!1)),{params:t,rest:i,_this:s}}flowIdentToTypeAnnotation(t,i,s){switch(s.name){case"any":return this.finishNode(i,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(i,"BooleanTypeAnnotation");case"mixed":return this.finishNode(i,"MixedTypeAnnotation");case"empty":return this.finishNode(i,"EmptyTypeAnnotation");case"number":return this.finishNode(i,"NumberTypeAnnotation");case"string":return this.finishNode(i,"StringTypeAnnotation");case"symbol":return this.finishNode(i,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(s.name),this.flowParseGenericType(t,s)}}flowParsePrimaryType(){const t=this.state.startLoc,i=this.startNode();let s,r,o=!1;const a=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,r=this.flowParseTupleType(),this.state.noAnonFunctionType=a,r;case 47:{const l=this.startNode();return l.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),s=this.flowParseFunctionTypeParams(),l.params=s.params,l.rest=s.rest,l.this=s._this,this.expect(11),this.expect(19),l.returnType=this.flowParseType(),this.finishNode(l,"FunctionTypeAnnotation")}case 10:{const l=this.startNode();if(this.next(),!this.match(11)&&!this.match(21))if(Pn(this.state.type)||this.match(78)){const c=this.lookahead().type;o=c!==17&&c!==14}else o=!0;if(o){if(this.state.noAnonFunctionType=!1,r=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),r;this.eat(12)}return r?s=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(r)]):s=this.flowParseFunctionTypeParams(),l.params=s.params,l.rest=s.rest,l.this=s._this,this.expect(11),this.expect(19),l.returnType=this.flowParseType(),l.typeParameters=null,this.finishNode(l,"FunctionTypeAnnotation")}case 133:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return i.value=this.match(85),this.next(),this.finishNode(i,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(134))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",i);if(this.match(135))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",i);throw this.raise(ai.UnexpectedSubtractionOperand,this.state.startLoc)}this.unexpected();return;case 134:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 135:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(i,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(i,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(i,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(i,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(BZ(this.state.type)){const l=v1(this.state.type);return this.next(),super.createIdentifier(i,l)}else if(Pn(this.state.type))return this.isContextual(129)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(t,i,this.parseIdentifier())}this.unexpected()}flowParsePostfixType(){const t=this.state.startLoc;let i=this.flowParsePrimaryType(),s=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){const r=this.startNodeAt(t),o=this.eat(18);s=s||o,this.expect(0),!o&&this.match(3)?(r.elementType=i,this.next(),i=this.finishNode(r,"ArrayTypeAnnotation")):(r.objectType=i,r.indexType=this.flowParseType(),this.expect(3),s?(r.optional=o,i=this.finishNode(r,"OptionalIndexedAccessType")):i=this.finishNode(r,"IndexedAccessType"))}return i}flowParsePrefixType(){const t=this.startNode();return this.eat(17)?(t.typeAnnotation=this.flowParsePrefixType(),this.finishNode(t,"NullableTypeAnnotation")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){const t=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){const i=this.startNodeAt(t.loc.start);return i.params=[this.reinterpretTypeAsFunctionTypeParam(t)],i.rest=null,i.this=null,i.returnType=this.flowParseType(),i.typeParameters=null,this.finishNode(i,"FunctionTypeAnnotation")}return t}flowParseIntersectionType(){const t=this.startNode();this.eat(45);const i=this.flowParseAnonFunctionWithoutParens();for(t.types=[i];this.eat(45);)t.types.push(this.flowParseAnonFunctionWithoutParens());return t.types.length===1?i:this.finishNode(t,"IntersectionTypeAnnotation")}flowParseUnionType(){const t=this.startNode();this.eat(43);const i=this.flowParseIntersectionType();for(t.types=[i];this.eat(43);)t.types.push(this.flowParseIntersectionType());return t.types.length===1?i:this.finishNode(t,"UnionTypeAnnotation")}flowParseType(){const t=this.state.inType;this.state.inType=!0;const i=this.flowParseUnionType();return this.state.inType=t,i}flowParseTypeOrImplicitInstantiation(){if(this.state.type===132&&this.state.value==="_"){const t=this.state.startLoc,i=this.parseIdentifier();return this.flowParseGenericType(t,i)}else return this.flowParseType()}flowParseTypeAnnotation(){const t=this.startNode();return t.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(t,"TypeAnnotation")}flowParseTypeAnnotatableIdentifier(t){const i=t?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(i.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(i)),i}typeCastToParameter(t){return t.expression.typeAnnotation=t.typeAnnotation,this.resetEndLocation(t.expression,t.typeAnnotation.loc.end),t.expression}flowParseVariance(){let t=null;return this.match(53)?(t=this.startNode(),this.state.value==="+"?t.kind="plus":t.kind="minus",this.next(),this.finishNode(t,"Variance")):t}parseFunctionBody(t,i,s=!1){if(i){this.forwardNoArrowParamsConversionAt(t,()=>super.parseFunctionBody(t,!0,s));return}super.parseFunctionBody(t,!1,s)}parseFunctionBodyAndFinish(t,i,s=!1){if(this.match(14)){const r=this.startNode();[r.typeAnnotation,t.predicate]=this.flowParseTypeAndPredicateInitialiser(),t.returnType=r.typeAnnotation?this.finishNode(r,"TypeAnnotation"):null}return super.parseFunctionBodyAndFinish(t,i,s)}parseStatementLike(t){if(this.state.strict&&this.isContextual(129)){const s=this.lookahead();if(Th(s.type)){const r=this.startNode();return this.next(),this.flowParseInterface(r)}}else if(this.shouldParseEnums()&&this.isContextual(126)){const s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}const i=super.parseStatementLike(t);return this.flowPragma===void 0&&!this.isValidDirective(i)&&(this.flowPragma=null),i}parseExpressionStatement(t,i,s){if(i.type==="Identifier"){if(i.name==="declare"){if(this.match(80)||Pn(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(t)}else if(Pn(this.state.type)){if(i.name==="interface")return this.flowParseInterface(t);if(i.name==="type")return this.flowParseTypeAlias(t);if(i.name==="opaque")return this.flowParseOpaqueType(t,!1)}}return super.parseExpressionStatement(t,i,s)}shouldParseExportDeclaration(){const{type:t}=this.state;return sae(t)||this.shouldParseEnums()&&t===126?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){const{type:t}=this.state;return sae(t)||this.shouldParseEnums()&&t===126?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(126)){const t=this.startNode();return this.next(),this.flowParseEnumDeclaration(t)}return super.parseExportDefaultExpression()}parseConditional(t,i,s){if(!this.match(17))return t;if(this.state.maybeInArrowParameters){const d=this.lookaheadCharCode();if(d===44||d===61||d===58||d===41)return this.setOptionalParametersError(s),t}this.expect(17);const r=this.state.clone(),o=this.state.noArrowAt,a=this.startNodeAt(i);let{consequent:l,failed:c}=this.tryParseConditionalConsequent(),[u,h]=this.getArrowLikeExpressions(l);if(c||h.length>0){const d=[...o];if(h.length>0){this.state=r,this.state.noArrowAt=d;for(let f=0;f<h.length;f++)d.push(h[f].start);({consequent:l,failed:c}=this.tryParseConditionalConsequent()),[u,h]=this.getArrowLikeExpressions(l)}c&&u.length>1&&this.raise(ai.AmbiguousConditionalArrow,r.startLoc),c&&u.length===1&&(this.state=r,d.push(u[0].start),this.state.noArrowAt=d,{consequent:l,failed:c}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(l,!0),this.state.noArrowAt=o,this.expect(14),a.test=t,a.consequent=l,a.alternate=this.forwardNoArrowParamsConversionAt(a,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(a,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);const t=this.parseMaybeAssignAllowIn(),i=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:t,failed:i}}getArrowLikeExpressions(t,i){const s=[t],r=[];for(;s.length!==0;){const o=s.pop();o.type==="ArrowFunctionExpression"&&o.body.type!=="BlockStatement"?(o.typeParameters||!o.returnType?this.finishArrowValidation(o):r.push(o),s.push(o.body)):o.type==="ConditionalExpression"&&(s.push(o.consequent),s.push(o.alternate))}return i?(r.forEach(o=>this.finishArrowValidation(o)),[r,[]]):kUe(r,o=>o.params.every(a=>this.isAssignable(a,!0)))}finishArrowValidation(t){var i;this.toAssignableList(t.params,(i=t.extra)==null?void 0:i.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(t,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(t,i){let s;return this.state.noArrowParamsConversionAt.includes(t.start)?(this.state.noArrowParamsConversionAt.push(this.state.start),s=i(),this.state.noArrowParamsConversionAt.pop()):s=i(),s}parseParenItem(t,i){const s=super.parseParenItem(t,i);if(this.eat(17)&&(s.optional=!0,this.resetEndLocation(t)),this.match(14)){const r=this.startNodeAt(i);return r.expression=s,r.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(r,"TypeCastExpression")}return s}assertModuleNodeAllowed(t){t.type==="ImportDeclaration"&&(t.importKind==="type"||t.importKind==="typeof")||t.type==="ExportNamedDeclaration"&&t.exportKind==="type"||t.type==="ExportAllDeclaration"&&t.exportKind==="type"||super.assertModuleNodeAllowed(t)}parseExportDeclaration(t){if(this.isContextual(130)){t.exportKind="type";const i=this.startNode();return this.next(),this.match(5)?(t.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(t),null):this.flowParseTypeAlias(i)}else if(this.isContextual(131)){t.exportKind="type";const i=this.startNode();return this.next(),this.flowParseOpaqueType(i,!1)}else if(this.isContextual(129)){t.exportKind="type";const i=this.startNode();return this.next(),this.flowParseInterface(i)}else if(this.shouldParseEnums()&&this.isContextual(126)){t.exportKind="value";const i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}else return super.parseExportDeclaration(t)}eatExportStar(t){return super.eatExportStar(t)?!0:this.isContextual(130)&&this.lookahead().type===55?(t.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(t){const{startLoc:i}=this.state,s=super.maybeParseExportNamespaceSpecifier(t);return s&&t.exportKind==="type"&&this.unexpected(i),s}parseClassId(t,i,s){super.parseClassId(t,i,s),this.match(47)&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(t,i,s){const{startLoc:r}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(t,i))return;i.declare=!0}super.parseClassMember(t,i,s),i.declare&&(i.type!=="ClassProperty"&&i.type!=="ClassPrivateProperty"&&i.type!=="PropertyDefinition"?this.raise(ai.DeclareClassElement,r):i.value&&this.raise(ai.DeclareClassFieldInitializer,i.value))}isIterator(t){return t==="iterator"||t==="asyncIterator"}readIterator(){const t=super.readWord1(),i="@@"+t;(!this.isIterator(t)||!this.state.inType)&&this.raise(me.InvalidIdentifier,this.state.curPosition(),{identifierName:i}),this.finishToken(132,i)}getTokenFromCode(t){const i=this.input.charCodeAt(this.state.pos+1);t===123&&i===124?this.finishOp(6,2):this.state.inType&&(t===62||t===60)?this.finishOp(t===62?48:47,1):this.state.inType&&t===63?i===46?this.finishOp(18,2):this.finishOp(17,1):Zze(t,i,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(t)}isAssignable(t,i){return t.type==="TypeCastExpression"?this.isAssignable(t.expression,i):super.isAssignable(t,i)}toAssignable(t,i=!1){!i&&t.type==="AssignmentExpression"&&t.left.type==="TypeCastExpression"&&(t.left=this.typeCastToParameter(t.left)),super.toAssignable(t,i)}toAssignableList(t,i,s){for(let r=0;r<t.length;r++){const o=t[r];(o==null?void 0:o.type)==="TypeCastExpression"&&(t[r]=this.typeCastToParameter(o))}super.toAssignableList(t,i,s)}toReferencedList(t,i){for(let r=0;r<t.length;r++){var s;const o=t[r];o&&o.type==="TypeCastExpression"&&!((s=o.extra)!=null&&s.parenthesized)&&(t.length>1||!i)&&this.raise(ai.TypeCastInPattern,o.typeAnnotation)}return t}parseArrayLike(t,i,s,r){const o=super.parseArrayLike(t,i,s,r);return i&&!this.state.maybeInArrowParameters&&this.toReferencedList(o.elements),o}isValidLVal(t,i,s){return t==="TypeCastExpression"||super.isValidLVal(t,i,s)}parseClassProperty(t){return this.match(14)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(t)}parseClassPrivateProperty(t){return this.match(14)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(t)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(t){return!this.match(14)&&super.isNonstaticConstructor(t)}pushClassMethod(t,i,s,r,o,a){if(i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(t,i,s,r,o,a),i.params&&o){const l=i.params;l.length>0&&this.isThisParam(l[0])&&this.raise(ai.ThisParamBannedInConstructor,i)}else if(i.type==="MethodDefinition"&&o&&i.value.params){const l=i.value.params;l.length>0&&this.isThisParam(l[0])&&this.raise(ai.ThisParamBannedInConstructor,i)}}pushClassPrivateMethod(t,i,s,r){i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(t,i,s,r)}parseClassSuper(t){if(super.parseClassSuper(t),t.superClass&&this.match(47)&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(113)){this.next();const i=t.implements=[];do{const s=this.startNode();s.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?s.typeParameters=this.flowParseTypeParameterInstantiation():s.typeParameters=null,i.push(this.finishNode(s,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(t){super.checkGetterSetterParams(t);const i=this.getObjectOrClassMethodParams(t);if(i.length>0){const s=i[0];this.isThisParam(s)&&t.kind==="get"?this.raise(ai.GetterMayNotHaveThisParam,s):this.isThisParam(s)&&this.raise(ai.SetterMayNotHaveThisParam,s)}}parsePropertyNamePrefixOperator(t){t.variance=this.flowParseVariance()}parseObjPropValue(t,i,s,r,o,a,l){t.variance&&this.unexpected(t.variance.loc.start),delete t.variance;let c;this.match(47)&&!a&&(c=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());const u=super.parseObjPropValue(t,i,s,r,o,a,l);return c&&((u.value||u).typeParameters=c),u}parseAssignableListItemTypes(t){return this.eat(17)&&(t.type!=="Identifier"&&this.raise(ai.PatternIsOptional,t),this.isThisParam(t)&&this.raise(ai.ThisParamMayNotBeOptional,t),t.optional=!0),this.match(14)?t.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(t)&&this.raise(ai.ThisParamAnnotationRequired,t),this.match(29)&&this.isThisParam(t)&&this.raise(ai.ThisParamNoDefault,t),this.resetEndLocation(t),t}parseMaybeDefault(t,i){const s=super.parseMaybeDefault(t,i);return s.type==="AssignmentPattern"&&s.typeAnnotation&&s.right.start<s.typeAnnotation.start&&this.raise(ai.TypeBeforeInitializer,s.typeAnnotation),s}checkImportReflection(t){super.checkImportReflection(t),t.module&&t.importKind!=="value"&&this.raise(ai.ImportReflectionHasImportType,t.specifiers[0].loc.start)}parseImportSpecifierLocal(t,i,s){i.local=lae(t)?this.flowParseRestrictedIdentifier(!0,!0):this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(i,s))}isPotentialImportPhase(t){if(super.isPotentialImportPhase(t))return!0;if(this.isContextual(130)){if(!t)return!0;const i=this.lookaheadCharCode();return i===123||i===42}return!t&&this.isContextual(87)}applyImportPhase(t,i,s,r){if(super.applyImportPhase(t,i,s,r),i){if(!s&&this.match(65))return;t.exportKind=s==="type"?s:"value"}else s==="type"&&this.match(55)&&this.unexpected(),t.importKind=s==="type"||s==="typeof"?s:"value"}parseImportSpecifier(t,i,s,r,o){const a=t.imported;let l=null;a.type==="Identifier"&&(a.name==="type"?l="type":a.name==="typeof"&&(l="typeof"));let c=!1;if(this.isContextual(93)&&!this.isLookaheadContextual("as")){const h=this.parseIdentifier(!0);l!==null&&!Th(this.state.type)?(t.imported=h,t.importKind=l,t.local=vg(h)):(t.imported=a,t.importKind=null,t.local=this.parseIdentifier())}else{if(l!==null&&Th(this.state.type))t.imported=this.parseIdentifier(!0),t.importKind=l;else{if(i)throw this.raise(me.ImportBindingIsString,t,{importName:a.value});t.imported=a,t.importKind=null}this.eatContextual(93)?t.local=this.parseIdentifier():(c=!0,t.local=vg(t.imported))}const u=lae(t);return s&&u&&this.raise(ai.ImportTypeShorthandOnlyInPureImport,t),(s||u)&&this.checkReservedType(t.local.name,t.local.loc.start,!0),c&&!s&&!u&&this.checkReservedWord(t.local.name,t.loc.start,!0,!0),this.finishImportSpecifier(t,"ImportSpecifier")}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseFunctionParams(t,i){const s=t.kind;s!=="get"&&s!=="set"&&this.match(47)&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),super.parseFunctionParams(t,i)}parseVarId(t,i){super.parseVarId(t,i),this.match(14)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(t.id))}parseAsyncArrowFromCallExpression(t,i){if(this.match(14)){const s=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=s}return super.parseAsyncArrowFromCallExpression(t,i)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}parseMaybeAssign(t,i){var s;let r=null,o;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(r=this.state.clone(),o=this.tryParse(()=>super.parseMaybeAssign(t,i),r),!o.error)return o.node;const{context:c}=this.state,u=c[c.length-1];(u===ns.j_oTag||u===ns.j_expr)&&c.pop()}if((s=o)!=null&&s.error||this.match(47)){var a,l;r=r||this.state.clone();let c;const u=this.tryParse(d=>{var f;c=this.flowParseTypeParameterDeclaration();const p=this.forwardNoArrowParamsConversionAt(c,()=>{const m=super.parseMaybeAssign(t,i);return this.resetStartLocationFromNode(m,c),m});(f=p.extra)!=null&&f.parenthesized&&d();const g=this.maybeUnwrapTypeCastExpression(p);return g.type!=="ArrowFunctionExpression"&&d(),g.typeParameters=c,this.resetStartLocationFromNode(g,c),p},r);let h=null;if(u.node&&this.maybeUnwrapTypeCastExpression(u.node).type==="ArrowFunctionExpression"){if(!u.error&&!u.aborted)return u.node.async&&this.raise(ai.UnexpectedTypeParameterBeforeAsyncArrowFunction,c),u.node;h=u.node}if((a=o)!=null&&a.node)return this.state=o.failState,o.node;if(h)return this.state=u.failState,h;throw(l=o)!=null&&l.thrown?o.error:u.thrown?u.error:this.raise(ai.UnexpectedTokenAfterTypeParameter,c)}return super.parseMaybeAssign(t,i)}parseArrow(t){if(this.match(14)){const i=this.tryParse(()=>{const s=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;const r=this.startNode();return[r.typeAnnotation,t.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=s,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),r});if(i.thrown)return null;i.error&&(this.state=i.failState),t.returnType=i.node.typeAnnotation?this.finishNode(i.node,"TypeAnnotation"):null}return super.parseArrow(t)}shouldParseArrow(t){return this.match(14)||super.shouldParseArrow(t)}setArrowFunctionParameters(t,i){this.state.noArrowParamsConversionAt.includes(t.start)?t.params=i:super.setArrowFunctionParameters(t,i)}checkParams(t,i,s,r=!0){if(!(s&&this.state.noArrowParamsConversionAt.includes(t.start))){for(let o=0;o<t.params.length;o++)this.isThisParam(t.params[o])&&o>0&&this.raise(ai.ThisParamMustBeFirst,t.params[o]);super.checkParams(t,i,s,r)}}parseParenAndDistinguishExpression(t){return super.parseParenAndDistinguishExpression(t&&!this.state.noArrowAt.includes(this.state.start))}parseSubscripts(t,i,s){if(t.type==="Identifier"&&t.name==="async"&&this.state.noArrowAt.includes(i.index)){this.next();const r=this.startNodeAt(i);r.callee=t,r.arguments=super.parseCallExpressionArguments(11,!1),t=this.finishNode(r,"CallExpression")}else if(t.type==="Identifier"&&t.name==="async"&&this.match(47)){const r=this.state.clone(),o=this.tryParse(l=>this.parseAsyncArrowWithTypeParameters(i)||l(),r);if(!o.error&&!o.aborted)return o.node;const a=this.tryParse(()=>super.parseSubscripts(t,i,s),r);if(a.node&&!a.error)return a.node;if(o.node)return this.state=o.failState,o.node;if(a.node)return this.state=a.failState,a.node;throw o.error||a.error}return super.parseSubscripts(t,i,s)}parseSubscript(t,i,s,r){if(this.match(18)&&this.isLookaheadToken_lt()){if(r.optionalChainMember=!0,s)return r.stop=!0,t;this.next();const o=this.startNodeAt(i);return o.callee=t,o.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),o.arguments=this.parseCallExpressionArguments(11,!1),o.optional=!0,this.finishCallExpression(o,!0)}else if(!s&&this.shouldParseTypes()&&this.match(47)){const o=this.startNodeAt(i);o.callee=t;const a=this.tryParse(()=>(o.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),o.arguments=super.parseCallExpressionArguments(11,!1),r.optionalChainMember&&(o.optional=!1),this.finishCallExpression(o,r.optionalChainMember)));if(a.node)return a.error&&(this.state=a.failState),a.node}return super.parseSubscript(t,i,s,r)}parseNewCallee(t){super.parseNewCallee(t);let i=null;this.shouldParseTypes()&&this.match(47)&&(i=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),t.typeArguments=i}parseAsyncArrowWithTypeParameters(t){const i=this.startNodeAt(t);if(this.parseFunctionParams(i,!1),!!this.parseArrow(i))return super.parseArrowExpression(i,void 0,!0)}readToken_mult_modulo(t){const i=this.input.charCodeAt(this.state.pos+1);if(t===42&&i===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(t)}readToken_pipe_amp(t){const i=this.input.charCodeAt(this.state.pos+1);if(t===124&&i===125){this.finishOp(9,2);return}super.readToken_pipe_amp(t)}parseTopLevel(t,i){const s=super.parseTopLevel(t,i);return this.state.hasFlowComment&&this.raise(ai.UnterminatedFlowComment,this.state.curPosition()),s}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(ai.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();const t=this.skipFlowComment();t&&(this.state.pos+=t,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?"*-/":"*/")}skipFlowComment(){const{pos:t}=this.state;let i=2;for(;[32,9].includes(this.input.charCodeAt(t+i));)i++;const s=this.input.charCodeAt(i+t),r=this.input.charCodeAt(i+t+1);return s===58&&r===58?i+2:this.input.slice(i+t,i+t+12)==="flow-include"?i+12:s===58&&r!==58?i:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(me.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(t,{enumName:i,memberName:s}){this.raise(ai.EnumBooleanMemberNotInitialized,t,{memberName:s,enumName:i})}flowEnumErrorInvalidMemberInitializer(t,i){return this.raise(i.explicitType?i.explicitType==="symbol"?ai.EnumInvalidMemberInitializerSymbolType:ai.EnumInvalidMemberInitializerPrimaryType:ai.EnumInvalidMemberInitializerUnknownType,t,i)}flowEnumErrorNumberMemberNotInitialized(t,i){this.raise(ai.EnumNumberMemberNotInitialized,t,i)}flowEnumErrorStringMemberInconsistentlyInitialized(t,i){this.raise(ai.EnumStringMemberInconsistentlyInitialized,t,i)}flowEnumMemberInit(){const t=this.state.startLoc,i=()=>this.match(12)||this.match(8);switch(this.state.type){case 134:{const s=this.parseNumericLiteral(this.state.value);return i()?{type:"number",loc:s.loc.start,value:s}:{type:"invalid",loc:t}}case 133:{const s=this.parseStringLiteral(this.state.value);return i()?{type:"string",loc:s.loc.start,value:s}:{type:"invalid",loc:t}}case 85:case 86:{const s=this.parseBooleanLiteral(this.match(85));return i()?{type:"boolean",loc:s.loc.start,value:s}:{type:"invalid",loc:t}}default:return{type:"invalid",loc:t}}}flowEnumMemberRaw(){const t=this.state.startLoc,i=this.parseIdentifier(!0),s=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:t};return{id:i,init:s}}flowEnumCheckExplicitTypeMismatch(t,i,s){const{explicitType:r}=i;r!==null&&r!==s&&this.flowEnumErrorInvalidMemberInitializer(t,i)}flowEnumMembers({enumName:t,explicitType:i}){const s=new Set,r={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]};let o=!1;for(;!this.match(8);){if(this.eat(21)){o=!0;break}const a=this.startNode(),{id:l,init:c}=this.flowEnumMemberRaw(),u=l.name;if(u==="")continue;/^[a-z]/.test(u)&&this.raise(ai.EnumInvalidMemberName,l,{memberName:u,suggestion:u[0].toUpperCase()+u.slice(1),enumName:t}),s.has(u)&&this.raise(ai.EnumDuplicateMemberName,l,{memberName:u,enumName:t}),s.add(u);const h={enumName:t,explicitType:i,memberName:u};switch(a.id=l,c.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(c.loc,h,"boolean"),a.init=c.value,r.booleanMembers.push(this.finishNode(a,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(c.loc,h,"number"),a.init=c.value,r.numberMembers.push(this.finishNode(a,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(c.loc,h,"string"),a.init=c.value,r.stringMembers.push(this.finishNode(a,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(c.loc,h);case"none":switch(i){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(c.loc,h);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(c.loc,h);break;default:r.defaultedMembers.push(this.finishNode(a,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:r,hasUnknownMembers:o}}flowEnumStringMembers(t,i,{enumName:s}){if(t.length===0)return i;if(i.length===0)return t;if(i.length>t.length){for(const r of t)this.flowEnumErrorStringMemberInconsistentlyInitialized(r,{enumName:s});return i}else{for(const r of i)this.flowEnumErrorStringMemberInconsistentlyInitialized(r,{enumName:s});return t}}flowEnumParseExplicitType({enumName:t}){if(!this.eatContextual(102))return null;if(!Pn(this.state.type))throw this.raise(ai.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:t});const{value:i}=this.state;return this.next(),i!=="boolean"&&i!=="number"&&i!=="string"&&i!=="symbol"&&this.raise(ai.EnumInvalidExplicitType,this.state.startLoc,{enumName:t,invalidEnumType:i}),i}flowEnumBody(t,i){const s=i.name,r=i.loc.start,o=this.flowEnumParseExplicitType({enumName:s});this.expect(5);const{members:a,hasUnknownMembers:l}=this.flowEnumMembers({enumName:s,explicitType:o});switch(t.hasUnknownMembers=l,o){case"boolean":return t.explicitType=!0,t.members=a.booleanMembers,this.expect(8),this.finishNode(t,"EnumBooleanBody");case"number":return t.explicitType=!0,t.members=a.numberMembers,this.expect(8),this.finishNode(t,"EnumNumberBody");case"string":return t.explicitType=!0,t.members=this.flowEnumStringMembers(a.stringMembers,a.defaultedMembers,{enumName:s}),this.expect(8),this.finishNode(t,"EnumStringBody");case"symbol":return t.members=a.defaultedMembers,this.expect(8),this.finishNode(t,"EnumSymbolBody");default:{const c=()=>(t.members=[],this.expect(8),this.finishNode(t,"EnumStringBody"));t.explicitType=!1;const u=a.booleanMembers.length,h=a.numberMembers.length,d=a.stringMembers.length,f=a.defaultedMembers.length;if(!u&&!h&&!d&&!f)return c();if(!u&&!h)return t.members=this.flowEnumStringMembers(a.stringMembers,a.defaultedMembers,{enumName:s}),this.expect(8),this.finishNode(t,"EnumStringBody");if(!h&&!d&&u>=f){for(const p of a.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(p.loc.start,{enumName:s,memberName:p.id.name});return t.members=a.booleanMembers,this.expect(8),this.finishNode(t,"EnumBooleanBody")}else if(!u&&!d&&h>=f){for(const p of a.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(p.loc.start,{enumName:s,memberName:p.id.name});return t.members=a.numberMembers,this.expect(8),this.finishNode(t,"EnumNumberBody")}else return this.raise(ai.EnumInconsistentMemberValues,r,{enumName:s}),c()}}}flowParseEnumDeclaration(t){const i=this.parseIdentifier();return t.id=i,t.body=this.flowEnumBody(this.startNode(),i),this.finishNode(t,"EnumDeclaration")}isLookaheadToken_lt(){const t=this.nextTokenStart();if(this.input.charCodeAt(t)===60){const i=this.input.charCodeAt(t+1);return i!==60&&i!==61}return!1}maybeUnwrapTypeCastExpression(t){return t.type==="TypeCastExpression"?t.expression:t}};const DUe={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},X_=Zp`jsx`({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:({openingTagName:n})=>`Expected corresponding JSX closing tag for <${n}>.`,MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:({unexpected:n,HTMLEntity:e})=>`Unexpected token \`${n}\`. Did you mean \`${e}\` or \`{'${n}'}\`?`,UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"});function pm(n){return n?n.type==="JSXOpeningFragment"||n.type==="JSXClosingFragment":!1}function Ow(n){if(n.type==="JSXIdentifier")return n.name;if(n.type==="JSXNamespacedName")return n.namespace.name+":"+n.name.name;if(n.type==="JSXMemberExpression")return Ow(n.object)+"."+Ow(n.property);throw new Error("Node had unexpected type: "+n.type)}var NUe=n=>class extends n{jsxReadToken(){let t="",i=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(X_.UnterminatedJsxContent,this.state.startLoc);const s=this.input.charCodeAt(this.state.pos);switch(s){case 60:case 123:if(this.state.pos===this.state.start){s===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(142)):super.getTokenFromCode(s);return}t+=this.input.slice(i,this.state.pos),this.finishToken(141,t);return;case 38:t+=this.input.slice(i,this.state.pos),t+=this.jsxReadEntity(),i=this.state.pos;break;case 62:case 125:default:NC(s)?(t+=this.input.slice(i,this.state.pos),t+=this.jsxReadNewLine(!0),i=this.state.pos):++this.state.pos}}}jsxReadNewLine(t){const i=this.input.charCodeAt(this.state.pos);let s;return++this.state.pos,i===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,s=t?` +`:`\r +`):s=String.fromCharCode(i),++this.state.curLine,this.state.lineStart=this.state.pos,s}jsxReadString(t){let i="",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(me.UnterminatedString,this.state.startLoc);const r=this.input.charCodeAt(this.state.pos);if(r===t)break;r===38?(i+=this.input.slice(s,this.state.pos),i+=this.jsxReadEntity(),s=this.state.pos):NC(r)?(i+=this.input.slice(s,this.state.pos),i+=this.jsxReadNewLine(!1),s=this.state.pos):++this.state.pos}i+=this.input.slice(s,this.state.pos++),this.finishToken(133,i)}jsxReadEntity(){const t=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let i=10;this.codePointAtPos(this.state.pos)===120&&(i=16,++this.state.pos);const s=this.readInt(i,void 0,!1,"bail");if(s!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(s)}else{let i=0,s=!1;for(;i++<10&&this.state.pos<this.length&&!(s=this.codePointAtPos(this.state.pos)===59);)++this.state.pos;if(s){const r=this.input.slice(t,this.state.pos),o=DUe[r];if(++this.state.pos,o)return o}}return this.state.pos=t,"&"}jsxReadWord(){let t;const i=this.state.pos;do t=this.input.charCodeAt(++this.state.pos);while(DC(t)||t===45);this.finishToken(140,this.input.slice(i,this.state.pos))}jsxParseIdentifier(){const t=this.startNode();return this.match(140)?t.name=this.state.value:BZ(this.state.type)?t.name=v1(this.state.type):this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")}jsxParseNamespacedName(){const t=this.state.startLoc,i=this.jsxParseIdentifier();if(!this.eat(14))return i;const s=this.startNodeAt(t);return s.namespace=i,s.name=this.jsxParseIdentifier(),this.finishNode(s,"JSXNamespacedName")}jsxParseElementName(){const t=this.state.startLoc;let i=this.jsxParseNamespacedName();if(i.type==="JSXNamespacedName")return i;for(;this.eat(16);){const s=this.startNodeAt(t);s.object=i,s.property=this.jsxParseIdentifier(),i=this.finishNode(s,"JSXMemberExpression")}return i}jsxParseAttributeValue(){let t;switch(this.state.type){case 5:return t=this.startNode(),this.setContext(ns.brace),this.next(),t=this.jsxParseExpressionContainer(t,ns.j_oTag),t.expression.type==="JSXEmptyExpression"&&this.raise(X_.AttributeIsEmpty,t),t;case 142:case 133:return this.parseExprAtom();default:throw this.raise(X_.UnsupportedJsxValue,this.state.startLoc)}}jsxParseEmptyExpression(){const t=this.startNodeAt(this.state.lastTokEndLoc);return this.finishNodeAt(t,"JSXEmptyExpression",this.state.startLoc)}jsxParseSpreadChild(t){return this.next(),t.expression=this.parseExpression(),this.setContext(ns.j_expr),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(t,"JSXSpreadChild")}jsxParseExpressionContainer(t,i){if(this.match(8))t.expression=this.jsxParseEmptyExpression();else{const s=this.parseExpression();t.expression=s}return this.setContext(i),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(t,"JSXExpressionContainer")}jsxParseAttribute(){const t=this.startNode();return this.match(5)?(this.setContext(ns.brace),this.next(),this.expect(21),t.argument=this.parseMaybeAssignAllowIn(),this.setContext(ns.j_oTag),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(t,"JSXSpreadAttribute")):(t.name=this.jsxParseNamespacedName(),t.value=this.eat(29)?this.jsxParseAttributeValue():null,this.finishNode(t,"JSXAttribute"))}jsxParseOpeningElementAt(t){const i=this.startNodeAt(t);return this.eat(143)?this.finishNode(i,"JSXOpeningFragment"):(i.name=this.jsxParseElementName(),this.jsxParseOpeningElementAfterName(i))}jsxParseOpeningElementAfterName(t){const i=[];for(;!this.match(56)&&!this.match(143);)i.push(this.jsxParseAttribute());return t.attributes=i,t.selfClosing=this.eat(56),this.expect(143),this.finishNode(t,"JSXOpeningElement")}jsxParseClosingElementAt(t){const i=this.startNodeAt(t);return this.eat(143)?this.finishNode(i,"JSXClosingFragment"):(i.name=this.jsxParseElementName(),this.expect(143),this.finishNode(i,"JSXClosingElement"))}jsxParseElementAt(t){const i=this.startNodeAt(t),s=[],r=this.jsxParseOpeningElementAt(t);let o=null;if(!r.selfClosing){e:for(;;)switch(this.state.type){case 142:if(t=this.state.startLoc,this.next(),this.eat(56)){o=this.jsxParseClosingElementAt(t);break e}s.push(this.jsxParseElementAt(t));break;case 141:s.push(this.parseLiteral(this.state.value,"JSXText"));break;case 5:{const a=this.startNode();this.setContext(ns.brace),this.next(),this.match(21)?s.push(this.jsxParseSpreadChild(a)):s.push(this.jsxParseExpressionContainer(a,ns.j_expr));break}default:this.unexpected()}pm(r)&&!pm(o)&&o!==null?this.raise(X_.MissingClosingTagFragment,o):!pm(r)&&pm(o)?this.raise(X_.MissingClosingTagElement,o,{openingTagName:Ow(r.name)}):!pm(r)&&!pm(o)&&Ow(o.name)!==Ow(r.name)&&this.raise(X_.MissingClosingTagElement,o,{openingTagName:Ow(r.name)})}if(pm(r)?(i.openingFragment=r,i.closingFragment=o):(i.openingElement=r,i.closingElement=o),i.children=s,this.match(47))throw this.raise(X_.UnwrappedAdjacentJSXElements,this.state.startLoc);return pm(r)?this.finishNode(i,"JSXFragment"):this.finishNode(i,"JSXElement")}jsxParseElement(){const t=this.state.startLoc;return this.next(),this.jsxParseElementAt(t)}setContext(t){const{context:i}=this.state;i[i.length-1]=t}parseExprAtom(t){return this.match(142)?this.jsxParseElement():this.match(47)&&this.input.charCodeAt(this.state.pos)!==33?(this.replaceToken(142),this.jsxParseElement()):super.parseExprAtom(t)}skipSpace(){this.curContext().preserveSpace||super.skipSpace()}getTokenFromCode(t){const i=this.curContext();if(i===ns.j_expr){this.jsxReadToken();return}if(i===ns.j_oTag||i===ns.j_cTag){if(zp(t)){this.jsxReadWord();return}if(t===62){++this.state.pos,this.finishToken(143);return}if((t===34||t===39)&&i===ns.j_oTag){this.jsxReadString(t);return}}if(t===60&&this.state.canStartJSXElement&&this.input.charCodeAt(this.state.pos+1)!==33){++this.state.pos,this.finishToken(142);return}super.getTokenFromCode(t)}updateContext(t){const{context:i,type:s}=this.state;if(s===56&&t===142)i.splice(-2,2,ns.j_cTag),this.state.canStartJSXElement=!1;else if(s===142)i.push(ns.j_oTag);else if(s===143){const r=i[i.length-1];r===ns.j_oTag&&t===56||r===ns.j_cTag?(i.pop(),this.state.canStartJSXElement=i[i.length-1]===ns.j_expr):(this.setContext(ns.j_expr),this.state.canStartJSXElement=!0)}else this.state.canStartJSXElement=Mze(s)}};class AUe extends HZ{constructor(...e){super(...e),this.tsNames=new Map}}class PUe extends $Z{constructor(...e){super(...e),this.importsStack=[]}createScope(e){return this.importsStack.push(new Set),new AUe(e)}enter(e){e===256&&this.importsStack.push(new Set),super.enter(e)}exit(){const e=super.exit();return e===256&&this.importsStack.pop(),e}hasImport(e,t){const i=this.importsStack.length;if(this.importsStack[i-1].has(e))return!0;if(!t&&i>1){for(let s=0;s<i-1;s++)if(this.importsStack[s].has(e))return!0}return!1}declareName(e,t,i){if(t&4096){this.hasImport(e,!0)&&this.parser.raise(me.VarRedeclaration,i,{identifierName:e}),this.importsStack[this.importsStack.length-1].add(e);return}const s=this.currentScope();let r=s.tsNames.get(e)||0;if(t&1024){this.maybeExportDefined(s,e),s.tsNames.set(e,r|16);return}super.declareName(e,t,i),t&2&&(t&1||(this.checkRedeclarationInScope(s,e,t,i),this.maybeExportDefined(s,e)),r=r|1),t&256&&(r=r|2),t&512&&(r=r|4),t&128&&(r=r|8),r&&s.tsNames.set(e,r)}isRedeclaredInScope(e,t,i){const s=e.tsNames.get(t);if((s&2)>0){if(i&256){const r=!!(i&512),o=(s&4)>0;return r!==o}return!0}return i&128&&(s&8)>0?e.names.get(t)&2?!!(i&1):!1:i&2&&(s&1)>0?!0:super.isRedeclaredInScope(e,t,i)}checkLocalExport(e){const{name:t}=e;if(this.hasImport(t))return;const i=this.scopeStack.length;for(let s=i-1;s>=0;s--){const o=this.scopeStack[s].tsNames.get(t);if((o&1)>0||(o&16)>0)return}super.checkLocalExport(e)}}const Ube=n=>n.type==="ParenthesizedExpression"?Ube(n.expression):n;class RUe extends SUe{toAssignable(e,t=!1){var i,s;let r;switch((e.type==="ParenthesizedExpression"||(i=e.extra)!=null&&i.parenthesized)&&(r=Ube(e),t?r.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(me.InvalidParenthesizedAssignment,e):r.type!=="MemberExpression"&&!this.isOptionalMemberExpression(r)&&this.raise(me.InvalidParenthesizedAssignment,e):this.raise(me.InvalidParenthesizedAssignment,e)),e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern";for(let a=0,l=e.properties.length,c=l-1;a<l;a++){var o;const u=e.properties[a],h=a===c;this.toAssignableObjectExpressionProp(u,h,t),h&&u.type==="RestElement"&&(o=e.extra)!=null&&o.trailingCommaLoc&&this.raise(me.RestTrailingComma,e.extra.trailingCommaLoc)}break;case"ObjectProperty":{const{key:a,value:l}=e;this.isPrivateName(a)&&this.classScope.usePrivateName(this.getPrivateNameSV(a),a.loc.start),this.toAssignable(l,t);break}case"SpreadElement":throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,(s=e.extra)==null?void 0:s.trailingCommaLoc,t);break;case"AssignmentExpression":e.operator!=="="&&this.raise(me.MissingEqInAssignment,e.left.loc.end),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);break;case"ParenthesizedExpression":this.toAssignable(r,t);break}}toAssignableObjectExpressionProp(e,t,i){if(e.type==="ObjectMethod")this.raise(e.kind==="get"||e.kind==="set"?me.PatternHasAccessor:me.PatternHasMethod,e.key);else if(e.type==="SpreadElement"){e.type="RestElement";const s=e.argument;this.checkToRestConversion(s,!1),this.toAssignable(s,i),t||this.raise(me.RestTrailingComma,e)}else this.toAssignable(e,i)}toAssignableList(e,t,i){const s=e.length-1;for(let r=0;r<=s;r++){const o=e[r];if(o){if(o.type==="SpreadElement"){o.type="RestElement";const a=o.argument;this.checkToRestConversion(a,!0),this.toAssignable(a,i)}else this.toAssignable(o,i);o.type==="RestElement"&&(r<s?this.raise(me.RestTrailingComma,o):t&&this.raise(me.RestTrailingComma,t))}}}isAssignable(e,t){switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":return!0;case"ObjectExpression":{const i=e.properties.length-1;return e.properties.every((s,r)=>s.type!=="ObjectMethod"&&(r===i||s.type!=="SpreadElement")&&this.isAssignable(s))}case"ObjectProperty":return this.isAssignable(e.value);case"SpreadElement":return this.isAssignable(e.argument);case"ArrayExpression":return e.elements.every(i=>i===null||this.isAssignable(i));case"AssignmentExpression":return e.operator==="=";case"ParenthesizedExpression":return this.isAssignable(e.expression);case"MemberExpression":case"OptionalMemberExpression":return!t;default:return!1}}toReferencedList(e,t){return e}toReferencedListDeep(e,t){this.toReferencedList(e,t);for(const i of e)(i==null?void 0:i.type)==="ArrayExpression"&&this.toReferencedListDeep(i.elements)}parseSpread(e){const t=this.startNode();return this.next(),t.argument=this.parseMaybeAssignAllowIn(e,void 0),this.finishNode(t,"SpreadElement")}parseRestBinding(){const e=this.startNode();return this.next(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{const e=this.startNode();return this.next(),e.elements=this.parseBindingList(3,93,1),this.finishNode(e,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(e,t,i){const s=i&1,r=[];let o=!0;for(;!this.eat(e);)if(o?o=!1:this.expect(12),s&&this.match(12))r.push(null);else{if(this.eat(e))break;if(this.match(21)){if(r.push(this.parseAssignableListItemTypes(this.parseRestBinding(),i)),!this.checkCommaAfterRest(t)){this.expect(e);break}}else{const a=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(me.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)a.push(this.parseDecorator());r.push(this.parseAssignableListItem(i,a))}}return r}parseBindingRestProperty(e){return this.next(),e.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(e,"RestElement")}parseBindingProperty(){const{type:e,startLoc:t}=this.state;if(e===21)return this.parseBindingRestProperty(this.startNode());const i=this.startNode();return e===138?(this.expectPlugin("destructuringPrivate",t),this.classScope.usePrivateName(this.state.value,t),i.key=this.parsePrivateName()):this.parsePropertyName(i),i.method=!1,this.parseObjPropValue(i,t,!1,!1,!0,!1)}parseAssignableListItem(e,t){const i=this.parseMaybeDefault();this.parseAssignableListItemTypes(i,e);const s=this.parseMaybeDefault(i.loc.start,i);return t.length&&(i.decorators=t),s}parseAssignableListItemTypes(e,t){return e}parseMaybeDefault(e,t){var i,s;if((i=e)!=null||(e=this.state.startLoc),t=(s=t)!=null?s:this.parseBindingAtom(),!this.eat(29))return t;const r=this.startNodeAt(e);return r.left=t,r.right=this.parseMaybeAssignAllowIn(),this.finishNode(r,"AssignmentPattern")}isValidLVal(e,t,i){switch(e){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1}isOptionalMemberExpression(e){return e.type==="OptionalMemberExpression"}checkLVal(e,t,i=64,s=!1,r=!1,o=!1){var a;const l=e.type;if(this.isObjectMethod(e))return;const c=this.isOptionalMemberExpression(e);if(c||l==="MemberExpression"){c&&(this.expectPlugin("optionalChainingAssign",e.loc.start),t.type!=="AssignmentExpression"&&this.raise(me.InvalidLhsOptionalChaining,e,{ancestor:t})),i!==64&&this.raise(me.InvalidPropertyBindingPattern,e);return}if(l==="Identifier"){this.checkIdentifier(e,i,r);const{name:g}=e;s&&(s.has(g)?this.raise(me.ParamDupe,e):s.add(g));return}const u=this.isValidLVal(l,!(o||(a=e.extra)!=null&&a.parenthesized)&&t.type==="AssignmentExpression",i);if(u===!0)return;if(u===!1){const g=i===64?me.InvalidLhs:me.InvalidLhsBinding;this.raise(g,e,{ancestor:t});return}let h,d;typeof u=="string"?(h=u,d=l==="ParenthesizedExpression"):[h,d]=u;const f=l==="ArrayPattern"||l==="ObjectPattern"?{type:l}:t,p=e[h];if(Array.isArray(p))for(const g of p)g&&this.checkLVal(g,f,i,s,r,d);else p&&this.checkLVal(p,f,i,s,r,d)}checkIdentifier(e,t,i=!1){this.state.strict&&(i?Fbe(e.name,this.inModule):Obe(e.name))&&(t===64?this.raise(me.StrictEvalArguments,e,{referenceName:e.name}):this.raise(me.StrictEvalArgumentsBinding,e,{bindingName:e.name})),t&8192&&e.name==="let"&&this.raise(me.LetInLexicalBinding,e),t&64||this.declareNameFromIdentifier(e,t)}declareNameFromIdentifier(e,t){this.scope.declareName(e.name,t,e.loc.start)}checkToRestConversion(e,t){switch(e.type){case"ParenthesizedExpression":this.checkToRestConversion(e.expression,t);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(t)break;default:this.raise(me.InvalidRestAssignmentPattern,e)}}checkCommaAfterRest(e){return this.match(12)?(this.raise(this.lookaheadCharCode()===e?me.RestTrailingComma:me.ElementAfterRest,this.state.startLoc),!0):!1}}function MUe(n){if(n==null)throw new Error(`Unexpected ${n} value.`);return n}function cae(n){if(!n)throw new Error("Assert fail")}const Bt=Zp`typescript`({AbstractMethodHasImplementation:({methodName:n})=>`Method '${n}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:n})=>`Property '${n}' cannot have an initializer because it is marked abstract.`,AccesorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccesorCannotHaveTypeParameters:"An accessor cannot have type parameters.",AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:({kind:n})=>`'declare' is not allowed in ${n}ters.`,DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:({modifier:n})=>"Accessibility modifier already seen.",DuplicateModifier:({modifier:n})=>`Duplicate modifier: '${n}'.`,EmptyHeritageClauseType:({token:n})=>`'${n}' list cannot be empty.`,EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:({modifiers:n})=>`'${n[0]}' modifier cannot be used with '${n[1]}' modifier.`,IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:({modifier:n})=>`Index signatures cannot have an accessibility modifier ('${n}').`,IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:({modifier:n})=>`'${n}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:n})=>`'${n}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:n})=>`'${n}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:n})=>`'${n[0]}' modifier must precede '${n[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:({modifier:n})=>`Private elements cannot have an accessibility modifier ('${n}').`,ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccesorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccesorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccesorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:({typeParameterName:n})=>`Single type parameter ${n} should have a trailing comma. Example usage: <${n},>.`,StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:({type:n})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${n}.`});function OUe(n){switch(n){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function uae(n){return n==="private"||n==="public"||n==="protected"}function FUe(n){return n==="in"||n==="out"}var BUe=n=>class extends n{constructor(...t){super(...t),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:Bt.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:Bt.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:Bt.InvalidModifierOnTypeParameter})}getScopeHandler(){return PUe}tsIsIdentifier(){return Pn(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(138)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(t,i){if(!Pn(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;const s=this.state.value;if(t.includes(s)){if(i&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return s}}tsParseModifiers({allowedModifiers:t,disallowedModifiers:i,stopOnStartOfClassStaticBlock:s,errorTemplate:r=Bt.InvalidModifierOnTypeMember},o){const a=(c,u,h,d)=>{u===h&&o[d]&&this.raise(Bt.InvalidModifiersOrder,c,{orderedModifiers:[h,d]})},l=(c,u,h,d)=>{(o[h]&&u===d||o[d]&&u===h)&&this.raise(Bt.IncompatibleModifiers,c,{modifiers:[h,d]})};for(;;){const{startLoc:c}=this.state,u=this.tsParseModifier(t.concat(i??[]),s);if(!u)break;uae(u)?o.accessibility?this.raise(Bt.DuplicateAccessibilityModifier,c,{modifier:u}):(a(c,u,u,"override"),a(c,u,u,"static"),a(c,u,u,"readonly"),o.accessibility=u):FUe(u)?(o[u]&&this.raise(Bt.DuplicateModifier,c,{modifier:u}),o[u]=!0,a(c,u,"in","out")):(hasOwnProperty.call(o,u)?this.raise(Bt.DuplicateModifier,c,{modifier:u}):(a(c,u,"static","readonly"),a(c,u,"static","override"),a(c,u,"override","readonly"),a(c,u,"abstract","override"),l(c,u,"declare","override"),l(c,u,"static","abstract")),o[u]=!0),i!=null&&i.includes(u)&&this.raise(r,c,{modifier:u})}}tsIsListTerminator(t){switch(t){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}}tsParseList(t,i){const s=[];for(;!this.tsIsListTerminator(t);)s.push(i());return s}tsParseDelimitedList(t,i,s){return MUe(this.tsParseDelimitedListWorker(t,i,!0,s))}tsParseDelimitedListWorker(t,i,s,r){const o=[];let a=-1;for(;!this.tsIsListTerminator(t);){a=-1;const l=i();if(l==null)return;if(o.push(l),this.eat(12)){a=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(t))break;s&&this.expect(12);return}return r&&(r.value=a),o}tsParseBracketedList(t,i,s,r,o){r||(s?this.expect(0):this.expect(47));const a=this.tsParseDelimitedList(t,i,o);return s?this.expect(3):this.expect(48),a}tsParseImportType(){const t=this.startNode();return this.expect(83),this.expect(10),this.match(133)||this.raise(Bt.UnsupportedImportTypeArgument,this.state.startLoc),t.argument=super.parseExprAtom(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(t.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(t.options=super.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.eat(16)&&(t.qualifier=this.tsParseEntityName()),this.match(47)&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,"TSImportType")}tsParseEntityName(t=!0){let i=this.parseIdentifier(t);for(;this.eat(16);){const s=this.startNodeAtNode(i);s.left=i,s.right=this.parseIdentifier(t),i=this.finishNode(s,"TSQualifiedName")}return i}tsParseTypeReference(){const t=this.startNode();return t.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,"TSTypeReference")}tsParseThisTypePredicate(t){this.next();const i=this.startNodeAtNode(t);return i.parameterName=t,i.typeAnnotation=this.tsParseTypeAnnotation(!1),i.asserts=!1,this.finishNode(i,"TSTypePredicate")}tsParseThisTypeNode(){const t=this.startNode();return this.next(),this.finishNode(t,"TSThisType")}tsParseTypeQuery(){const t=this.startNode();return this.expect(87),this.match(83)?t.exprName=this.tsParseImportType():t.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,"TSTypeQuery")}tsParseTypeParameter(t){const i=this.startNode();return t(i),i.name=this.tsParseTypeParameterName(),i.constraint=this.tsEatThenParseType(81),i.default=this.tsEatThenParseType(29),this.finishNode(i,"TSTypeParameter")}tsTryParseTypeParameters(t){if(this.match(47))return this.tsParseTypeParameters(t)}tsParseTypeParameters(t){const i=this.startNode();this.match(47)||this.match(142)?this.next():this.unexpected();const s={value:-1};return i.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,t),!1,!0,s),i.params.length===0&&this.raise(Bt.EmptyTypeParameters,i),s.value!==-1&&this.addExtra(i,"trailingComma",s.value),this.finishNode(i,"TSTypeParameterDeclaration")}tsFillSignature(t,i){const s=t===19,r="parameters",o="typeAnnotation";i.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),i[r]=this.tsParseBindingListForSignature(),s?i[o]=this.tsParseTypeOrTypePredicateAnnotation(t):this.match(t)&&(i[o]=this.tsParseTypeOrTypePredicateAnnotation(t))}tsParseBindingListForSignature(){const t=super.parseBindingList(11,41,2);for(const i of t){const{type:s}=i;(s==="AssignmentPattern"||s==="TSParameterProperty")&&this.raise(Bt.UnsupportedSignatureParameterKind,i,{type:s})}return t}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(t,i){return this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon(),this.finishNode(i,t)}tsIsUnambiguouslyIndexSignature(){return this.next(),Pn(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(t){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);const i=this.parseIdentifier();i.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(i),this.expect(3),t.parameters=[i];const s=this.tsTryParseTypeAnnotation();return s&&(t.typeAnnotation=s),this.tsParseTypeMemberSemicolon(),this.finishNode(t,"TSIndexSignature")}tsParsePropertyOrMethodSignature(t,i){this.eat(17)&&(t.optional=!0);const s=t;if(this.match(10)||this.match(47)){i&&this.raise(Bt.ReadonlyForMethodSignature,t);const r=s;r.kind&&this.match(47)&&this.raise(Bt.AccesorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,r),this.tsParseTypeMemberSemicolon();const o="parameters",a="typeAnnotation";if(r.kind==="get")r[o].length>0&&(this.raise(me.BadGetterArity,this.state.curPosition()),this.isThisParam(r[o][0])&&this.raise(Bt.AccesorCannotDeclareThisParameter,this.state.curPosition()));else if(r.kind==="set"){if(r[o].length!==1)this.raise(me.BadSetterArity,this.state.curPosition());else{const l=r[o][0];this.isThisParam(l)&&this.raise(Bt.AccesorCannotDeclareThisParameter,this.state.curPosition()),l.type==="Identifier"&&l.optional&&this.raise(Bt.SetAccesorCannotHaveOptionalParameter,this.state.curPosition()),l.type==="RestElement"&&this.raise(Bt.SetAccesorCannotHaveRestParameter,this.state.curPosition())}r[a]&&this.raise(Bt.SetAccesorCannotHaveReturnType,r[a])}else r.kind="method";return this.finishNode(r,"TSMethodSignature")}else{const r=s;i&&(r.readonly=!0);const o=this.tsTryParseTypeAnnotation();return o&&(r.typeAnnotation=o),this.tsParseTypeMemberSemicolon(),this.finishNode(r,"TSPropertySignature")}}tsParseTypeMember(){const t=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",t);if(this.match(77)){const s=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",t):(t.key=this.createIdentifier(s,"new"),this.tsParsePropertyOrMethodSignature(t,!1))}this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},t);const i=this.tsTryParseIndexSignature(t);return i||(super.parsePropertyName(t),!t.computed&&t.key.type==="Identifier"&&(t.key.name==="get"||t.key.name==="set")&&this.tsTokenCanFollowModifier()&&(t.kind=t.key.name,super.parsePropertyName(t)),this.tsParsePropertyOrMethodSignature(t,!!t.readonly))}tsParseTypeLiteral(){const t=this.startNode();return t.members=this.tsParseObjectTypeMembers(),this.finishNode(t,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);const t=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),t}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){const t=this.startNode();return t.name=this.tsParseTypeParameterName(),t.constraint=this.tsExpectThenParseType(58),this.finishNode(t,"TSTypeParameter")}tsParseMappedType(){const t=this.startNode();return this.expect(5),this.match(53)?(t.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(t.readonly=!0),this.expect(0),t.typeParameter=this.tsParseMappedTypeParameter(),t.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(t.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(t.optional=!0),t.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(t,"TSMappedType")}tsParseTupleType(){const t=this.startNode();t.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let i=!1;return t.elementTypes.forEach(s=>{const{type:r}=s;i&&r!=="TSRestType"&&r!=="TSOptionalType"&&!(r==="TSNamedTupleMember"&&s.optional)&&this.raise(Bt.OptionalTypeBeforeRequired,s),i||(i=r==="TSNamedTupleMember"&&s.optional||r==="TSOptionalType")}),this.finishNode(t,"TSTupleType")}tsParseTupleElementType(){const{startLoc:t}=this.state,i=this.eat(21);let s,r,o,a;const c=Th(this.state.type)?this.lookaheadCharCode():null;if(c===58)s=!0,o=!1,r=this.parseIdentifier(!0),this.expect(14),a=this.tsParseType();else if(c===63){o=!0;const u=this.state.startLoc,h=this.state.value,d=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(s=!0,r=this.createIdentifier(this.startNodeAt(u),h),this.expect(17),this.expect(14),a=this.tsParseType()):(s=!1,a=d,this.expect(17))}else a=this.tsParseType(),o=this.eat(17),s=this.eat(14);if(s){let u;r?(u=this.startNodeAtNode(r),u.optional=o,u.label=r,u.elementType=a,this.eat(17)&&(u.optional=!0,this.raise(Bt.TupleOptionalAfterType,this.state.lastTokStartLoc))):(u=this.startNodeAtNode(a),u.optional=o,this.raise(Bt.InvalidTupleMemberLabel,a),u.label=a,u.elementType=this.tsParseType()),a=this.finishNode(u,"TSNamedTupleMember")}else if(o){const u=this.startNodeAtNode(a);u.typeAnnotation=a,a=this.finishNode(u,"TSOptionalType")}if(i){const u=this.startNodeAt(t);u.typeAnnotation=a,a=this.finishNode(u,"TSRestType")}return a}tsParseParenthesizedType(){const t=this.startNode();return this.expect(10),t.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(t,"TSParenthesizedType")}tsParseFunctionOrConstructorType(t,i){const s=this.startNode();return t==="TSConstructorType"&&(s.abstract=!!i,i&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,s)),this.finishNode(s,t)}tsParseLiteralTypeNode(){const t=this.startNode();switch(this.state.type){case 134:case 135:case 133:case 85:case 86:t.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(t,"TSLiteralType")}tsParseTemplateLiteralType(){const t=this.startNode();return t.literal=super.parseTemplate(!1),this.finishNode(t,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){const t=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(t):t}tsParseNonArrayType(){switch(this.state.type){case 133:case 134:case 135:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){const t=this.startNode(),i=this.lookahead();return i.type!==134&&i.type!==135&&this.unexpected(),t.literal=this.parseMaybeUnary(),this.finishNode(t,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{const{type:t}=this.state;if(Pn(t)||t===88||t===84){const i=t===88?"TSVoidKeyword":t===84?"TSNullKeyword":OUe(this.state.value);if(i!==void 0&&this.lookaheadCharCode()!==46){const s=this.startNode();return this.next(),this.finishNode(s,i)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let t=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){const i=this.startNodeAtNode(t);i.elementType=t,this.expect(3),t=this.finishNode(i,"TSArrayType")}else{const i=this.startNodeAtNode(t);i.objectType=t,i.indexType=this.tsParseType(),this.expect(3),t=this.finishNode(i,"TSIndexedAccessType")}return t}tsParseTypeOperator(){const t=this.startNode(),i=this.state.value;return this.next(),t.operator=i,t.typeAnnotation=this.tsParseTypeOperatorOrHigher(),i==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(t),this.finishNode(t,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(t){switch(t.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(Bt.UnexpectedReadonly,t)}}tsParseInferType(){const t=this.startNode();this.expectContextual(115);const i=this.startNode();return i.name=this.tsParseTypeParameterName(),i.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),t.typeParameter=this.finishNode(i,"TSTypeParameter"),this.finishNode(t,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){const t=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return t}}tsParseTypeOperatorOrHigher(){return Hze(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(t,i,s){const r=this.startNode(),o=this.eat(s),a=[];do a.push(i());while(this.eat(s));return a.length===1&&!o?a[0]:(r.types=a,this.finishNode(r,t))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(Pn(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){const{errors:t}=this.state,i=t.length;try{return this.parseObjectLike(8,!0),t.length===i}catch{return!1}}if(this.match(0)){this.next();const{errors:t}=this.state,i=t.length;try{return super.parseBindingList(3,93,1),t.length===i}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(t){return this.tsInType(()=>{const i=this.startNode();this.expect(t);const s=this.startNode(),r=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(r&&this.match(78)){let l=this.tsParseThisTypeOrThisTypePredicate();return l.type==="TSThisType"?(s.parameterName=l,s.asserts=!0,s.typeAnnotation=null,l=this.finishNode(s,"TSTypePredicate")):(this.resetStartLocationFromNode(l,s),l.asserts=!0),i.typeAnnotation=l,this.finishNode(i,"TSTypeAnnotation")}const o=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!o)return r?(s.parameterName=this.parseIdentifier(),s.asserts=r,s.typeAnnotation=null,i.typeAnnotation=this.finishNode(s,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,i);const a=this.tsParseTypeAnnotation(!1);return s.parameterName=o,s.typeAnnotation=a,s.asserts=r,i.typeAnnotation=this.finishNode(s,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){const t=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),t}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;const t=this.state.containsEsc;return this.next(),!Pn(this.state.type)&&!this.match(78)?!1:(t&&this.raise(me.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(t=!0,i=this.startNode()){return this.tsInType(()=>{t&&this.expect(14),i.typeAnnotation=this.tsParseType()}),this.finishNode(i,"TSTypeAnnotation")}tsParseType(){cae(this.state.inType);const t=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return t;const i=this.startNodeAtNode(t);return i.checkType=t,i.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),i.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),i.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(i,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(Bt.ReservedTypeAssertion,this.state.startLoc);const t=this.startNode();return t.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),t.expression=this.parseMaybeUnary(),this.finishNode(t,"TSTypeAssertion")}tsParseHeritageClause(t){const i=this.state.startLoc,s=this.tsParseDelimitedList("HeritageClauseElement",()=>{const r=this.startNode();return r.expression=this.tsParseEntityName(),this.match(47)&&(r.typeParameters=this.tsParseTypeArguments()),this.finishNode(r,"TSExpressionWithTypeArguments")});return s.length||this.raise(Bt.EmptyHeritageClauseType,i,{token:t}),s}tsParseInterfaceDeclaration(t,i={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),i.declare&&(t.declare=!0),Pn(this.state.type)?(t.id=this.parseIdentifier(),this.checkIdentifier(t.id,130)):(t.id=null,this.raise(Bt.MissingInterfaceName,this.state.startLoc)),t.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(t.extends=this.tsParseHeritageClause("extends"));const s=this.startNode();return s.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),t.body=this.finishNode(s,"TSInterfaceBody"),this.finishNode(t,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(t){return t.id=this.parseIdentifier(),this.checkIdentifier(t.id,2),t.typeAnnotation=this.tsInType(()=>{if(t.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){const i=this.startNode();return this.next(),this.finishNode(i,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(t,"TSTypeAliasDeclaration")}tsInNoContext(t){const i=this.state.context;this.state.context=[i[0]];try{return t()}finally{this.state.context=i}}tsInType(t){const i=this.state.inType;this.state.inType=!0;try{return t()}finally{this.state.inType=i}}tsInDisallowConditionalTypesContext(t){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return t()}finally{this.state.inDisallowConditionalTypesContext=i}}tsInAllowConditionalTypesContext(t){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return t()}finally{this.state.inDisallowConditionalTypesContext=i}}tsEatThenParseType(t){if(this.match(t))return this.tsNextThenParseType()}tsExpectThenParseType(t){return this.tsInType(()=>(this.expect(t),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){const t=this.startNode();return t.id=this.match(133)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(t.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(t,"TSEnumMember")}tsParseEnumDeclaration(t,i={}){return i.const&&(t.const=!0),i.declare&&(t.declare=!0),this.expectContextual(126),t.id=this.parseIdentifier(),this.checkIdentifier(t.id,t.const?8971:8459),this.expect(5),t.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(t,"TSEnumDeclaration")}tsParseModuleBlock(){const t=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(t.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(t,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(t,i=!1){if(t.id=this.parseIdentifier(),i||this.checkIdentifier(t.id,1024),this.eat(16)){const s=this.startNode();this.tsParseModuleOrNamespaceDeclaration(s,!0),t.body=s}else this.scope.enter(256),this.prodParam.enter(0),t.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(t,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(t){return this.isContextual(112)?(t.global=!0,t.id=this.parseIdentifier()):this.match(133)?t.id=super.parseStringLiteral(this.state.value):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),t.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(t,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(t,i,s){t.isExport=s||!1,t.id=i||this.parseIdentifier(),this.checkIdentifier(t.id,4096),this.expect(29);const r=this.tsParseModuleReference();return t.importKind==="type"&&r.type!=="TSExternalModuleReference"&&this.raise(Bt.ImportAliasHasImportType,r),t.moduleReference=r,this.semicolon(),this.finishNode(t,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){const t=this.startNode();return this.expectContextual(119),this.expect(10),this.match(133)||this.unexpected(),t.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(t,"TSExternalModuleReference")}tsLookAhead(t){const i=this.state.clone(),s=t();return this.state=i,s}tsTryParseAndCatch(t){const i=this.tryParse(s=>t()||s());if(!(i.aborted||!i.node))return i.error&&(this.state=i.failState),i.node}tsTryParse(t){const i=this.state.clone(),s=t();if(s!==void 0&&s!==!1)return s;this.state=i}tsTryParseDeclare(t){if(this.isLineTerminator())return;let i=this.state.type,s;return this.isContextual(100)&&(i=74,s="let"),this.tsInAmbientContext(()=>{switch(i){case 68:return t.declare=!0,super.parseFunctionStatement(t,!1,!1);case 80:return t.declare=!0,this.parseClass(t,!0,!1);case 126:return this.tsParseEnumDeclaration(t,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(t);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual("enum")?(t.declare=!0,this.parseVarStatement(t,s||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(t,{const:!0,declare:!0}));case 129:{const r=this.tsParseInterfaceDeclaration(t,{declare:!0});if(r)return r}default:if(Pn(i))return this.tsParseDeclaration(t,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(t,i,s){switch(i.name){case"declare":{const r=this.tsTryParseDeclare(t);return r&&(r.declare=!0),r}case"global":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);const r=t;return r.global=!0,r.id=i,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(t,i.name,!1,s)}}tsParseDeclaration(t,i,s,r){switch(i){case"abstract":if(this.tsCheckLineTerminator(s)&&(this.match(80)||Pn(this.state.type)))return this.tsParseAbstractDeclaration(t,r);break;case"module":if(this.tsCheckLineTerminator(s)){if(this.match(133))return this.tsParseAmbientExternalModuleDeclaration(t);if(Pn(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(t)}break;case"namespace":if(this.tsCheckLineTerminator(s)&&Pn(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(t);break;case"type":if(this.tsCheckLineTerminator(s)&&Pn(this.state.type))return this.tsParseTypeAliasDeclaration(t);break}}tsCheckLineTerminator(t){return t?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(t){if(!this.match(47))return;const i=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;const s=this.tsTryParseAndCatch(()=>{const r=this.startNodeAt(t);return r.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(r),r.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),r});if(this.state.maybeInArrowParameters=i,!!s)return super.parseArrowExpression(s,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){const t=this.startNode();return t.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),t.params.length===0?this.raise(Bt.EmptyTypeArguments,t):!this.state.inType&&this.curContext()===ns.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(t,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return $ze(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(t,i){const s=this.state.startLoc,r={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},r);const o=r.accessibility,a=r.override,l=r.readonly;!(t&4)&&(o||l||a)&&this.raise(Bt.UnexpectedParameterModifier,s);const c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c,t);const u=this.parseMaybeDefault(c.loc.start,c);if(o||l||a){const h=this.startNodeAt(s);return i.length&&(h.decorators=i),o&&(h.accessibility=o),l&&(h.readonly=l),a&&(h.override=a),u.type!=="Identifier"&&u.type!=="AssignmentPattern"&&this.raise(Bt.UnsupportedParameterPropertyKind,h),h.parameter=u,this.finishNode(h,"TSParameterProperty")}return i.length&&(c.decorators=i),u}isSimpleParameter(t){return t.type==="TSParameterProperty"&&super.isSimpleParameter(t.parameter)||super.isSimpleParameter(t)}tsDisallowOptionalPattern(t){for(const i of t.params)i.type!=="Identifier"&&i.optional&&!this.state.isAmbientContext&&this.raise(Bt.PatternIsOptional,i)}setArrowFunctionParameters(t,i,s){super.setArrowFunctionParameters(t,i,s),this.tsDisallowOptionalPattern(t)}parseFunctionBodyAndFinish(t,i,s=!1){this.match(14)&&(t.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));const r=i==="FunctionDeclaration"?"TSDeclareFunction":i==="ClassMethod"||i==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return r&&!this.match(5)&&this.isLineTerminator()?this.finishNode(t,r):r==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(Bt.DeclareFunctionHasImplementation,t),t.declare)?super.parseFunctionBodyAndFinish(t,r,s):(this.tsDisallowOptionalPattern(t),super.parseFunctionBodyAndFinish(t,i,s))}registerFunctionStatementId(t){!t.body&&t.id?this.checkIdentifier(t.id,1024):super.registerFunctionStatementId(t)}tsCheckForInvalidTypeCasts(t){t.forEach(i=>{(i==null?void 0:i.type)==="TSTypeCastExpression"&&this.raise(Bt.UnexpectedTypeAnnotation,i.typeAnnotation)})}toReferencedList(t,i){return this.tsCheckForInvalidTypeCasts(t),t}parseArrayLike(t,i,s,r){const o=super.parseArrayLike(t,i,s,r);return o.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(o.elements),o}parseSubscript(t,i,s,r){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();const a=this.startNodeAt(i);return a.expression=t,this.finishNode(a,"TSNonNullExpression")}let o=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(s)return r.stop=!0,t;r.optionalChainMember=o=!0,this.next()}if(this.match(47)||this.match(51)){let a;const l=this.tsTryParseAndCatch(()=>{if(!s&&this.atPossibleAsyncArrow(t)){const d=this.tsTryParseGenericAsyncArrowFunction(i);if(d)return d}const c=this.tsParseTypeArgumentsInExpression();if(!c)return;if(o&&!this.match(10)){a=this.state.curPosition();return}if(gO(this.state.type)){const d=super.parseTaggedTemplateExpression(t,i,r);return d.typeParameters=c,d}if(!s&&this.eat(10)){const d=this.startNodeAt(i);return d.callee=t,d.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(d.arguments),d.typeParameters=c,r.optionalChainMember&&(d.optional=o),this.finishCallExpression(d,r.optionalChainMember)}const u=this.state.type;if(u===48||u===52||u!==10&&bH(u)&&!this.hasPrecedingLineBreak())return;const h=this.startNodeAt(i);return h.expression=t,h.typeParameters=c,this.finishNode(h,"TSInstantiationExpression")});if(a&&this.unexpected(a,10),l)return l.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(Bt.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),l}return super.parseSubscript(t,i,s,r)}parseNewCallee(t){var i;super.parseNewCallee(t);const{callee:s}=t;s.type==="TSInstantiationExpression"&&!((i=s.extra)!=null&&i.parenthesized)&&(t.typeParameters=s.typeParameters,t.callee=s.expression)}parseExprOp(t,i,s){let r;if(MR(58)>s&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(r=this.isContextual(120)))){const o=this.startNodeAt(i);return o.expression=t,o.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(r&&this.raise(me.UnexpectedKeyword,this.state.startLoc,{keyword:"const"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(o,r?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(o,i,s)}return super.parseExprOp(t,i,s)}checkReservedWord(t,i,s,r){this.state.isAmbientContext||super.checkReservedWord(t,i,s,r)}checkImportReflection(t){super.checkImportReflection(t),t.module&&t.importKind!=="value"&&this.raise(Bt.ImportReflectionHasImportType,t.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(t){if(super.isPotentialImportPhase(t))return!0;if(this.isContextual(130)){const i=this.lookaheadCharCode();return t?i===123||i===42:i!==61}return!t&&this.isContextual(87)}applyImportPhase(t,i,s,r){super.applyImportPhase(t,i,s,r),i?t.exportKind=s==="type"?"type":"value":t.importKind=s==="type"||s==="typeof"?s:"value"}parseImport(t){if(this.match(133))return t.importKind="value",super.parseImport(t);let i;if(Pn(this.state.type)&&this.lookaheadCharCode()===61)return t.importKind="value",this.tsParseImportEqualsDeclaration(t);if(this.isContextual(130)){const s=this.parseMaybeImportPhase(t,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(t,s);i=super.parseImportSpecifiersAndAfter(t,s)}else i=super.parseImport(t);return i.importKind==="type"&&i.specifiers.length>1&&i.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(Bt.TypeImportCannotSpecifyDefaultAndNamed,i),i}parseExport(t,i){if(this.match(83)){this.next();const s=t;let r=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?r=this.parseMaybeImportPhase(s,!1):s.importKind="value",this.tsParseImportEqualsDeclaration(s,r,!0)}else if(this.eat(29)){const s=t;return s.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(s,"TSExportAssignment")}else if(this.eatContextual(93)){const s=t;return this.expectContextual(128),s.id=this.parseIdentifier(),this.semicolon(),this.finishNode(s,"TSNamespaceExportDeclaration")}else return super.parseExport(t,i)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){const t=this.startNode();return this.next(),t.abstract=!0,this.parseClass(t,!0,!0)}if(this.match(129)){const t=this.tsParseInterfaceDeclaration(this.startNode());if(t)return t}return super.parseExportDefaultExpression()}parseVarStatement(t,i,s=!1){const{isAmbientContext:r}=this.state,o=super.parseVarStatement(t,i,s||r);if(!r)return o;for(const{id:a,init:l}of o.declarations)l&&(i!=="const"||a.typeAnnotation?this.raise(Bt.InitializerNotAllowedInAmbientContext,l):VUe(l,this.hasPlugin("estree"))||this.raise(Bt.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,l));return o}parseStatementContent(t,i){if(this.match(75)&&this.isLookaheadContextual("enum")){const s=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(s,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){const s=this.tsParseInterfaceDeclaration(this.startNode());if(s)return s}return super.parseStatementContent(t,i)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(t,i){return i.some(s=>uae(s)?t.accessibility===s:!!t[s])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(t,i,s){const r=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:r,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:Bt.InvalidModifierOnTypeParameterPositions},i);const o=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(i,r)&&this.raise(Bt.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(t,i)):this.parseClassMemberWithIsStatic(t,i,s,!!i.static)};i.declare?this.tsInAmbientContext(o):o()}parseClassMemberWithIsStatic(t,i,s,r){const o=this.tsTryParseIndexSignature(i);if(o){t.body.push(o),i.abstract&&this.raise(Bt.IndexSignatureHasAbstract,i),i.accessibility&&this.raise(Bt.IndexSignatureHasAccessibility,i,{modifier:i.accessibility}),i.declare&&this.raise(Bt.IndexSignatureHasDeclare,i),i.override&&this.raise(Bt.IndexSignatureHasOverride,i);return}!this.state.inAbstractClass&&i.abstract&&this.raise(Bt.NonAbstractClassHasAbstractMethod,i),i.override&&(s.hadSuperClass||this.raise(Bt.OverrideNotInSubClass,i)),super.parseClassMemberWithIsStatic(t,i,s,r)}parsePostMemberNameModifiers(t){this.eat(17)&&(t.optional=!0),t.readonly&&this.match(10)&&this.raise(Bt.ClassMethodHasReadonly,t),t.declare&&this.match(10)&&this.raise(Bt.ClassMethodHasDeclare,t)}parseExpressionStatement(t,i,s){return(i.type==="Identifier"?this.tsParseExpressionStatement(t,i,s):void 0)||super.parseExpressionStatement(t,i,s)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(t,i,s){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(t,i,s);const r=this.tryParse(()=>super.parseConditional(t,i));return r.node?(r.error&&(this.state=r.failState),r.node):(r.error&&super.setOptionalParametersError(s,r.error),t)}parseParenItem(t,i){const s=super.parseParenItem(t,i);if(this.eat(17)&&(s.optional=!0,this.resetEndLocation(t)),this.match(14)){const r=this.startNodeAt(i);return r.expression=t,r.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(r,"TSTypeCastExpression")}return t}parseExportDeclaration(t){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(t));const i=this.state.startLoc,s=this.eatContextual(125);if(s&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(Bt.ExpectedAmbientAfterExportDeclare,this.state.startLoc);const o=Pn(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(t);return o?((o.type==="TSInterfaceDeclaration"||o.type==="TSTypeAliasDeclaration"||s)&&(t.exportKind="type"),s&&(this.resetStartLocation(o,i),o.declare=!0),o):null}parseClassId(t,i,s,r){if((!i||s)&&this.isContextual(113))return;super.parseClassId(t,i,s,t.declare?1024:8331);const o=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);o&&(t.typeParameters=o)}parseClassPropertyAnnotation(t){t.optional||(this.eat(35)?t.definite=!0:this.eat(17)&&(t.optional=!0));const i=this.tsTryParseTypeAnnotation();i&&(t.typeAnnotation=i)}parseClassProperty(t){if(this.parseClassPropertyAnnotation(t),this.state.isAmbientContext&&!(t.readonly&&!t.typeAnnotation)&&this.match(29)&&this.raise(Bt.DeclareClassFieldHasInitializer,this.state.startLoc),t.abstract&&this.match(29)){const{key:i}=t;this.raise(Bt.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:i.type==="Identifier"&&!t.computed?i.name:`[${this.input.slice(i.start,i.end)}]`})}return super.parseClassProperty(t)}parseClassPrivateProperty(t){return t.abstract&&this.raise(Bt.PrivateElementHasAbstract,t),t.accessibility&&this.raise(Bt.PrivateElementHasAccessibility,t,{modifier:t.accessibility}),this.parseClassPropertyAnnotation(t),super.parseClassPrivateProperty(t)}parseClassAccessorProperty(t){return this.parseClassPropertyAnnotation(t),t.optional&&this.raise(Bt.AccessorCannotBeOptional,t),super.parseClassAccessorProperty(t)}pushClassMethod(t,i,s,r,o,a){const l=this.tsTryParseTypeParameters(this.tsParseConstModifier);l&&o&&this.raise(Bt.ConstructorHasTypeParameters,l);const{declare:c=!1,kind:u}=i;c&&(u==="get"||u==="set")&&this.raise(Bt.DeclareAccessor,i,{kind:u}),l&&(i.typeParameters=l),super.pushClassMethod(t,i,s,r,o,a)}pushClassPrivateMethod(t,i,s,r){const o=this.tsTryParseTypeParameters(this.tsParseConstModifier);o&&(i.typeParameters=o),super.pushClassPrivateMethod(t,i,s,r)}declareClassPrivateMethodInScope(t,i){t.type!=="TSDeclareMethod"&&(t.type==="MethodDefinition"&&!hasOwnProperty.call(t.value,"body")||super.declareClassPrivateMethodInScope(t,i))}parseClassSuper(t){super.parseClassSuper(t),t.superClass&&(this.match(47)||this.match(51))&&(t.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(t.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(t,i,s,r,o,a,l){const c=this.tsTryParseTypeParameters(this.tsParseConstModifier);return c&&(t.typeParameters=c),super.parseObjPropValue(t,i,s,r,o,a,l)}parseFunctionParams(t,i){const s=this.tsTryParseTypeParameters(this.tsParseConstModifier);s&&(t.typeParameters=s),super.parseFunctionParams(t,i)}parseVarId(t,i){super.parseVarId(t,i),t.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(t.definite=!0);const s=this.tsTryParseTypeAnnotation();s&&(t.id.typeAnnotation=s,this.resetEndLocation(t.id))}parseAsyncArrowFromCallExpression(t,i){return this.match(14)&&(t.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(t,i)}parseMaybeAssign(t,i){var s,r,o,a,l;let c,u,h;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(c=this.state.clone(),u=this.tryParse(()=>super.parseMaybeAssign(t,i),c),!u.error)return u.node;const{context:p}=this.state,g=p[p.length-1];(g===ns.j_oTag||g===ns.j_expr)&&p.pop()}if(!((s=u)!=null&&s.error)&&!this.match(47))return super.parseMaybeAssign(t,i);(!c||c===this.state)&&(c=this.state.clone());let d;const f=this.tryParse(p=>{var g,m;d=this.tsParseTypeParameters(this.tsParseConstModifier);const _=super.parseMaybeAssign(t,i);return(_.type!=="ArrowFunctionExpression"||(g=_.extra)!=null&&g.parenthesized)&&p(),((m=d)==null?void 0:m.params.length)!==0&&this.resetStartLocationFromNode(_,d),_.typeParameters=d,_},c);if(!f.error&&!f.aborted)return d&&this.reportReservedArrowTypeParam(d),f.node;if(!u&&(cae(!this.hasPlugin("jsx")),h=this.tryParse(()=>super.parseMaybeAssign(t,i),c),!h.error))return h.node;if((r=u)!=null&&r.node)return this.state=u.failState,u.node;if(f.node)return this.state=f.failState,d&&this.reportReservedArrowTypeParam(d),f.node;if((o=h)!=null&&o.node)return this.state=h.failState,h.node;throw((a=u)==null?void 0:a.error)||f.error||((l=h)==null?void 0:l.error)}reportReservedArrowTypeParam(t){var i;t.params.length===1&&!t.params[0].constraint&&!((i=t.extra)!=null&&i.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(Bt.ReservedArrowTypeParam,t)}parseMaybeUnary(t,i){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(t,i)}parseArrow(t){if(this.match(14)){const i=this.tryParse(s=>{const r=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&s(),r});if(i.aborted)return;i.thrown||(i.error&&(this.state=i.failState),t.returnType=i.node)}return super.parseArrow(t)}parseAssignableListItemTypes(t,i){if(!(i&2))return t;this.eat(17)&&(t.optional=!0);const s=this.tsTryParseTypeAnnotation();return s&&(t.typeAnnotation=s),this.resetEndLocation(t),t}isAssignable(t,i){switch(t.type){case"TSTypeCastExpression":return this.isAssignable(t.expression,i);case"TSParameterProperty":return!0;default:return super.isAssignable(t,i)}}toAssignable(t,i=!1){switch(t.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(t,i);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":i?this.expressionScope.recordArrowParameterBindingError(Bt.UnexpectedTypeCastInParameter,t):this.raise(Bt.UnexpectedTypeCastInParameter,t),this.toAssignable(t.expression,i);break;case"AssignmentExpression":!i&&t.left.type==="TSTypeCastExpression"&&(t.left=this.typeCastToParameter(t.left));default:super.toAssignable(t,i)}}toAssignableParenthesizedExpression(t,i){switch(t.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(t.expression,i);break;default:super.toAssignable(t,i)}}checkToRestConversion(t,i){switch(t.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(t.expression,!1);break;default:super.checkToRestConversion(t,i)}}isValidLVal(t,i,s){switch(t){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(s!==64||!i)&&["expression",!0];default:return super.isValidLVal(t,i,s)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(t){if(this.match(47)||this.match(51)){const i=this.tsParseTypeArgumentsInExpression();if(this.match(10)){const s=super.parseMaybeDecoratorArguments(t);return s.typeParameters=i,s}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(t)}checkCommaAfterRest(t){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===t?(this.next(),!1):super.checkCommaAfterRest(t)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(t,i){const s=super.parseMaybeDefault(t,i);return s.type==="AssignmentPattern"&&s.typeAnnotation&&s.right.start<s.typeAnnotation.start&&this.raise(Bt.TypeAnnotationAfterAssign,s.typeAnnotation),s}getTokenFromCode(t){if(this.state.inType){if(t===62){this.finishOp(48,1);return}if(t===60){this.finishOp(47,1);return}}super.getTokenFromCode(t)}reScan_lt_gt(){const{type:t}=this.state;t===47?(this.state.pos-=1,this.readToken_lt()):t===48&&(this.state.pos-=1,this.readToken_gt())}reScan_lt(){const{type:t}=this.state;return t===51?(this.state.pos-=2,this.finishOp(47,1),47):t}toAssignableList(t,i,s){for(let r=0;r<t.length;r++){const o=t[r];(o==null?void 0:o.type)==="TSTypeCastExpression"&&(t[r]=this.typeCastToParameter(o))}super.toAssignableList(t,i,s)}typeCastToParameter(t){return t.expression.typeAnnotation=t.typeAnnotation,this.resetEndLocation(t.expression,t.typeAnnotation.loc.end),t.expression}shouldParseArrow(t){return this.match(14)?t.every(i=>this.isAssignable(i,!0)):super.shouldParseArrow(t)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(t){if(this.match(47)||this.match(51)){const i=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());i&&(t.typeParameters=i)}return super.jsxParseOpeningElementAfterName(t)}getGetterSetterExpectedParamCount(t){const i=super.getGetterSetterExpectedParamCount(t),r=this.getObjectOrClassMethodParams(t)[0];return r&&this.isThisParam(r)?i+1:i}parseCatchClauseParam(){const t=super.parseCatchClauseParam(),i=this.tsTryParseTypeAnnotation();return i&&(t.typeAnnotation=i,this.resetEndLocation(t)),t}tsInAmbientContext(t){const{isAmbientContext:i,strict:s}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return t()}finally{this.state.isAmbientContext=i,this.state.strict=s}}parseClass(t,i,s){const r=this.state.inAbstractClass;this.state.inAbstractClass=!!t.abstract;try{return super.parseClass(t,i,s)}finally{this.state.inAbstractClass=r}}tsParseAbstractDeclaration(t,i){if(this.match(80))return t.abstract=!0,this.maybeTakeDecorators(i,this.parseClass(t,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return t.abstract=!0,this.raise(Bt.NonClassMethodPropertyHasAbstractModifer,t),this.tsParseInterfaceDeclaration(t)}else this.unexpected(null,80)}parseMethod(t,i,s,r,o,a,l){const c=super.parseMethod(t,i,s,r,o,a,l);if(c.abstract&&(this.hasPlugin("estree")?!!c.value.body:!!c.body)){const{key:h}=c;this.raise(Bt.AbstractMethodHasImplementation,c,{methodName:h.type==="Identifier"&&!c.computed?h.name:`[${this.input.slice(h.start,h.end)}]`})}return c}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(t,i,s,r){return!i&&r?(this.parseTypeOnlyImportExportSpecifier(t,!1,s),this.finishNode(t,"ExportSpecifier")):(t.exportKind="value",super.parseExportSpecifier(t,i,s,r))}parseImportSpecifier(t,i,s,r,o){return!i&&r?(this.parseTypeOnlyImportExportSpecifier(t,!0,s),this.finishNode(t,"ImportSpecifier")):(t.importKind="value",super.parseImportSpecifier(t,i,s,r,s?4098:4096))}parseTypeOnlyImportExportSpecifier(t,i,s){const r=i?"imported":"local",o=i?"local":"exported";let a=t[r],l,c=!1,u=!0;const h=a.loc.start;if(this.isContextual(93)){const f=this.parseIdentifier();if(this.isContextual(93)){const p=this.parseIdentifier();Th(this.state.type)?(c=!0,a=f,l=i?this.parseIdentifier():this.parseModuleExportName(),u=!1):(l=p,u=!1)}else Th(this.state.type)?(u=!1,l=i?this.parseIdentifier():this.parseModuleExportName()):(c=!0,a=f)}else Th(this.state.type)&&(c=!0,i?(a=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(a.name,a.loc.start,!0,!0)):a=this.parseModuleExportName());c&&s&&this.raise(i?Bt.TypeModifierIsUsedInTypeImports:Bt.TypeModifierIsUsedInTypeExports,h),t[r]=a,t[o]=l;const d=i?"importKind":"exportKind";t[d]=c?"type":"value",u&&this.eatContextual(93)&&(t[o]=i?this.parseIdentifier():this.parseModuleExportName()),t[o]||(t[o]=vg(t[r])),i&&this.checkIdentifier(t[o],c?4098:4096)}};function WUe(n){if(n.type!=="MemberExpression")return!1;const{computed:e,property:t}=n;return e&&t.type!=="StringLiteral"&&(t.type!=="TemplateLiteral"||t.expressions.length>0)?!1:qbe(n.object)}function VUe(n,e){var t;const{type:i}=n;if((t=n.extra)!=null&&t.parenthesized)return!1;if(e){if(i==="Literal"){const{value:s}=n;if(typeof s=="string"||typeof s=="boolean")return!0}}else if(i==="StringLiteral"||i==="BooleanLiteral")return!0;return!!(jbe(n,e)||HUe(n,e)||i==="TemplateLiteral"&&n.expressions.length===0||WUe(n))}function jbe(n,e){return e?n.type==="Literal"&&(typeof n.value=="number"||"bigint"in n):n.type==="NumericLiteral"||n.type==="BigIntLiteral"}function HUe(n,e){if(n.type==="UnaryExpression"){const{operator:t,argument:i}=n;if(t==="-"&&jbe(i,e))return!0}return!1}function qbe(n){return n.type==="Identifier"?!0:n.type!=="MemberExpression"||n.computed?!1:qbe(n.object)}const hae=Zp`placeholders`({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."});var $Ue=n=>class extends n{parsePlaceholder(t){if(this.match(144)){const i=this.startNode();return this.next(),this.assertNoSpace(),i.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(144),this.finishPlaceholder(i,t)}}finishPlaceholder(t,i){let s=t;return(!s.expectedNode||!s.type)&&(s=this.finishNode(s,"Placeholder")),s.expectedNode=i,s}getTokenFromCode(t){t===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(144,2):super.getTokenFromCode(t)}parseExprAtom(t){return this.parsePlaceholder("Expression")||super.parseExprAtom(t)}parseIdentifier(t){return this.parsePlaceholder("Identifier")||super.parseIdentifier(t)}checkReservedWord(t,i,s,r){t!==void 0&&super.checkReservedWord(t,i,s,r)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom()}isValidLVal(t,i,s){return t==="Placeholder"||super.isValidLVal(t,i,s)}toAssignable(t,i){t&&t.type==="Placeholder"&&t.expectedNode==="Expression"?t.expectedNode="Pattern":super.toAssignable(t,i)}chStartsBindingIdentifier(t,i){return!!(super.chStartsBindingIdentifier(t,i)||this.lookahead().type===144)}verifyBreakContinue(t,i){t.label&&t.label.type==="Placeholder"||super.verifyBreakContinue(t,i)}parseExpressionStatement(t,i){var s;if(i.type!=="Placeholder"||(s=i.extra)!=null&&s.parenthesized)return super.parseExpressionStatement(t,i);if(this.match(14)){const o=t;return o.label=this.finishPlaceholder(i,"Identifier"),this.next(),o.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(o,"LabeledStatement")}this.semicolon();const r=t;return r.name=i.name,this.finishPlaceholder(r,"Statement")}parseBlock(t,i,s){return this.parsePlaceholder("BlockStatement")||super.parseBlock(t,i,s)}parseFunctionId(t){return this.parsePlaceholder("Identifier")||super.parseFunctionId(t)}parseClass(t,i,s){const r=i?"ClassDeclaration":"ClassExpression";this.next();const o=this.state.strict,a=this.parsePlaceholder("Identifier");if(a)if(this.match(81)||this.match(144)||this.match(5))t.id=a;else{if(s||!i)return t.id=null,t.body=this.finishPlaceholder(a,"ClassBody"),this.finishNode(t,r);throw this.raise(hae.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(t,i,s);return super.parseClassSuper(t),t.body=this.parsePlaceholder("ClassBody")||super.parseClassBody(!!t.superClass,o),this.finishNode(t,r)}parseExport(t,i){const s=this.parsePlaceholder("Identifier");if(!s)return super.parseExport(t,i);const r=t;if(!this.isContextual(98)&&!this.match(12))return r.specifiers=[],r.source=null,r.declaration=this.finishPlaceholder(s,"Declaration"),this.finishNode(r,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");const o=this.startNode();return o.exported=s,r.specifiers=[this.finishNode(o,"ExportDefaultSpecifier")],super.parseExport(r,i)}isExportDefaultSpecifier(){if(this.match(65)){const t=this.nextTokenStart();if(this.isUnparsedContextual(t,"from")&&this.input.startsWith(v1(144),this.nextTokenStartSince(t+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(t,i){var s;return(s=t.specifiers)!=null&&s.length?!0:super.maybeParseExportDefaultSpecifier(t,i)}checkExport(t){const{specifiers:i}=t;i!=null&&i.length&&(t.specifiers=i.filter(s=>s.exported.type==="Placeholder")),super.checkExport(t),t.specifiers=i}parseImport(t){const i=this.parsePlaceholder("Identifier");if(!i)return super.parseImport(t);if(t.specifiers=[],!this.isContextual(98)&&!this.match(12))return t.source=this.finishPlaceholder(i,"StringLiteral"),this.semicolon(),this.finishNode(t,"ImportDeclaration");const s=this.startNodeAtNode(i);return s.local=i,t.specifiers.push(this.finishNode(s,"ImportDefaultSpecifier")),this.eat(12)&&(this.maybeParseStarImportSpecifier(t)||this.parseNamedImportSpecifiers(t)),this.expectContextual(98),t.source=this.parseImportSource(),this.semicolon(),this.finishNode(t,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource()}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(hae.UnexpectedSpace,this.state.lastTokEndLoc)}},zUe=n=>class extends n{parseV8Intrinsic(){if(this.match(54)){const t=this.state.startLoc,i=this.startNode();if(this.next(),Pn(this.state.type)){const s=this.parseIdentifierName(),r=this.createIdentifier(i,s);if(r.type="V8IntrinsicIdentifier",this.match(10))return r}this.unexpected(t)}}parseExprAtom(t){return this.parseV8Intrinsic()||super.parseExprAtom(t)}};const dae=["minimal","fsharp","hack","smart"],fae=["^^","@@","^","%","#"];function UUe(n){if(n.has("decorators")){if(n.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");const t=n.get("decorators").decoratorsBeforeExport;if(t!=null&&typeof t!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");const i=n.get("decorators").allowCallParenthesized;if(i!=null&&typeof i!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(n.has("flow")&&n.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(n.has("placeholders")&&n.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(n.has("pipelineOperator")){var e;const t=n.get("pipelineOperator").proposal;if(!dae.includes(t)){const s=dae.map(r=>`"${r}"`).join(", ");throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${s}.`)}const i=((e=n.get("recordAndTuple"))==null?void 0:e.syntaxType)==="hash";if(t==="hack"){if(n.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(n.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");const s=n.get("pipelineOperator").topicToken;if(!fae.includes(s)){const r=fae.map(o=>`"${o}"`).join(", ");throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${r}.`)}if(s==="#"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}else if(t==="smart"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}if(n.has("moduleAttributes")){if(n.has("importAttributes")||n.has("importAssertions"))throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");if(n.get("moduleAttributes").version!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(n.has("importAttributes")&&n.has("importAssertions"))throw new Error("Cannot combine importAssertions and importAttributes plugins.");if(n.has("recordAndTuple")){const t=n.get("recordAndTuple").syntaxType;if(t!=null){const i=["hash","bar"];if(!i.includes(t))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+i.map(s=>`'${s}'`).join(", "))}}if(n.has("asyncDoExpressions")&&!n.has("doExpressions")){const t=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw t.missingPlugins="doExpressions",t}if(n.has("optionalChainingAssign")&&n.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}const Kbe={estree:Nze,jsx:NUe,flow:TUe,typescript:BUe,v8intrinsic:zUe,placeholders:$Ue},jUe=Object.keys(Kbe),G9={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0};function qUe(n){if(n==null)return Object.assign({},G9);if(n.annexB!=null&&n.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");const e={};for(const i of Object.keys(G9)){var t;e[i]=(t=n[i])!=null?t:G9[i]}return e}class KUe extends RUe{checkProto(e,t,i,s){if(e.type==="SpreadElement"||this.isObjectMethod(e)||e.computed||e.shorthand)return;const r=e.key;if((r.type==="Identifier"?r.name:r.value)==="__proto__"){if(t){this.raise(me.RecordNoProto,r);return}i.used&&(s?s.doubleProtoLoc===null&&(s.doubleProtoLoc=r.loc.start):this.raise(me.DuplicateProto,r)),i.used=!0}}shouldExitDescending(e,t){return e.type==="ArrowFunctionExpression"&&e.start===t}getExpression(){this.enterInitialScopes(),this.nextToken();const e=this.parseExpression();return this.match(139)||this.unexpected(),this.finalizeRemainingComments(),e.comments=this.comments,e.errors=this.state.errors,this.options.tokens&&(e.tokens=this.tokens),e}parseExpression(e,t){return e?this.disallowInAnd(()=>this.parseExpressionBase(t)):this.allowInAnd(()=>this.parseExpressionBase(t))}parseExpressionBase(e){const t=this.state.startLoc,i=this.parseMaybeAssign(e);if(this.match(12)){const s=this.startNodeAt(t);for(s.expressions=[i];this.eat(12);)s.expressions.push(this.parseMaybeAssign(e));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i}parseMaybeAssignDisallowIn(e,t){return this.disallowInAnd(()=>this.parseMaybeAssign(e,t))}parseMaybeAssignAllowIn(e,t){return this.allowInAnd(()=>this.parseMaybeAssign(e,t))}setOptionalParametersError(e,t){var i;e.optionalParametersLoc=(i=t==null?void 0:t.loc)!=null?i:this.state.startLoc}parseMaybeAssign(e,t){const i=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let a=this.parseYield();return t&&(a=t.call(this,a,i)),a}let s;e?s=!1:(e=new FR,s=!0);const{type:r}=this.state;(r===10||Pn(r))&&(this.state.potentialArrowAt=this.state.start);let o=this.parseMaybeConditional(e);if(t&&(o=t.call(this,o,i)),Oze(this.state.type)){const a=this.startNodeAt(i),l=this.state.value;if(a.operator=l,this.match(29)){this.toAssignable(o,!0),a.left=o;const c=i.index;e.doubleProtoLoc!=null&&e.doubleProtoLoc.index>=c&&(e.doubleProtoLoc=null),e.shorthandAssignLoc!=null&&e.shorthandAssignLoc.index>=c&&(e.shorthandAssignLoc=null),e.privateKeyLoc!=null&&e.privateKeyLoc.index>=c&&(this.checkDestructuringPrivate(e),e.privateKeyLoc=null)}else a.left=o;return this.next(),a.right=this.parseMaybeAssign(),this.checkLVal(o,this.finishNode(a,"AssignmentExpression")),a}else s&&this.checkExpressionErrors(e,!0);return o}parseMaybeConditional(e){const t=this.state.startLoc,i=this.state.potentialArrowAt,s=this.parseExprOps(e);return this.shouldExitDescending(s,i)?s:this.parseConditional(s,t,e)}parseConditional(e,t,i){if(this.eat(17)){const s=this.startNodeAt(t);return s.test=e,s.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),s.alternate=this.parseMaybeAssign(),this.finishNode(s,"ConditionalExpression")}return e}parseMaybeUnaryOrPrivate(e){return this.match(138)?this.parsePrivateName():this.parseMaybeUnary(e)}parseExprOps(e){const t=this.state.startLoc,i=this.state.potentialArrowAt,s=this.parseMaybeUnaryOrPrivate(e);return this.shouldExitDescending(s,i)?s:this.parseExprOp(s,t,-1)}parseExprOp(e,t,i){if(this.isPrivateName(e)){const r=this.getPrivateNameSV(e);(i>=MR(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(me.PrivateInExpectedIn,e,{identifierName:r}),this.classScope.usePrivateName(r,e.loc.start)}const s=this.state.type;if(Bze(s)&&(this.prodParam.hasIn||!this.match(58))){let r=MR(s);if(r>i){if(s===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return e;this.checkPipelineAtInfixOperator(e,t)}const o=this.startNodeAt(t);o.left=e,o.operator=this.state.value;const a=s===41||s===42,l=s===40;if(l&&(r=MR(42)),this.next(),s===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(me.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);o.right=this.parseExprOpRightExpr(s,r);const c=this.finishNode(o,a||l?"LogicalExpression":"BinaryExpression"),u=this.state.type;if(l&&(u===41||u===42)||a&&u===40)throw this.raise(me.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(c,t,i)}}return e}parseExprOpRightExpr(e,t){const i=this.state.startLoc;switch(e){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"smart":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(me.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e,t),i)});case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(t))}default:return this.parseExprOpBaseRightExpr(e,t)}}parseExprOpBaseRightExpr(e,t){const i=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),i,zze(e)?t-1:t)}parseHackPipeBody(){var e;const{startLoc:t}=this.state,i=this.parseMaybeAssign();return Eze.has(i.type)&&!((e=i.extra)!=null&&e.parenthesized)&&this.raise(me.PipeUnparenthesizedBody,t,{type:i.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(me.PipeTopicUnused,t),i}checkExponentialAfterUnary(e){this.match(57)&&this.raise(me.UnexpectedTokenUnaryExponentiation,e.argument)}parseMaybeUnary(e,t){const i=this.state.startLoc,s=this.isContextual(96);if(s&&this.recordAwaitIfAllowed()){this.next();const l=this.parseAwait(i);return t||this.checkExponentialAfterUnary(l),l}const r=this.match(34),o=this.startNode();if(Vze(this.state.type)){o.operator=this.state.value,o.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");const l=this.match(89);if(this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),this.state.strict&&l){const c=o.argument;c.type==="Identifier"?this.raise(me.StrictDelete,o):this.hasPropertyAsPrivateName(c)&&this.raise(me.DeletePrivateField,o)}if(!r)return t||this.checkExponentialAfterUnary(o),this.finishNode(o,"UnaryExpression")}const a=this.parseUpdate(o,r,e);if(s){const{type:l}=this.state;if((this.hasPlugin("v8intrinsic")?bH(l):bH(l)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(me.AwaitNotInAsyncContext,i),this.parseAwait(i)}return a}parseUpdate(e,t,i){if(t){const o=e;return this.checkLVal(o.argument,this.finishNode(o,"UpdateExpression")),e}const s=this.state.startLoc;let r=this.parseExprSubscripts(i);if(this.checkExpressionErrors(i,!1))return r;for(;Wze(this.state.type)&&!this.canInsertSemicolon();){const o=this.startNodeAt(s);o.operator=this.state.value,o.prefix=!1,o.argument=r,this.next(),this.checkLVal(r,r=this.finishNode(o,"UpdateExpression"))}return r}parseExprSubscripts(e){const t=this.state.startLoc,i=this.state.potentialArrowAt,s=this.parseExprAtom(e);return this.shouldExitDescending(s,i)?s:this.parseSubscripts(s,t)}parseSubscripts(e,t,i){const s={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(e),stop:!1};do e=this.parseSubscript(e,t,i,s),s.maybeAsyncArrow=!1;while(!s.stop);return e}parseSubscript(e,t,i,s){const{type:r}=this.state;if(!i&&r===15)return this.parseBind(e,t,i,s);if(gO(r))return this.parseTaggedTemplateExpression(e,t,s);let o=!1;if(r===18){if(i&&(this.raise(me.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return s.stop=!0,e;s.optionalChainMember=o=!0,this.next()}if(!i&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(e,t,s,o);{const a=this.eat(0);return a||o||this.eat(16)?this.parseMember(e,t,s,a,o):(s.stop=!0,e)}}parseMember(e,t,i,s,r){const o=this.startNodeAt(t);return o.object=e,o.computed=s,s?(o.property=this.parseExpression(),this.expect(3)):this.match(138)?(e.type==="Super"&&this.raise(me.SuperPrivateField,t),this.classScope.usePrivateName(this.state.value,this.state.startLoc),o.property=this.parsePrivateName()):o.property=this.parseIdentifier(!0),i.optionalChainMember?(o.optional=r,this.finishNode(o,"OptionalMemberExpression")):this.finishNode(o,"MemberExpression")}parseBind(e,t,i,s){const r=this.startNodeAt(t);return r.object=e,this.next(),r.callee=this.parseNoCallExpr(),s.stop=!0,this.parseSubscripts(this.finishNode(r,"BindExpression"),t,i)}parseCoverCallAndAsyncArrowHead(e,t,i,s){const r=this.state.maybeInArrowParameters;let o=null;this.state.maybeInArrowParameters=!0,this.next();const a=this.startNodeAt(t);a.callee=e;const{maybeAsyncArrow:l,optionalChainMember:c}=i;l&&(this.expressionScope.enter(vUe()),o=new FR),c&&(a.optional=s),s?a.arguments=this.parseCallExpressionArguments(11):a.arguments=this.parseCallExpressionArguments(11,e.type==="Import",e.type!=="Super",a,o);let u=this.finishCallExpression(a,c);return l&&this.shouldParseAsyncArrow()&&!s?(i.stop=!0,this.checkDestructuringPrivate(o),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),u=this.parseAsyncArrowFromCallExpression(this.startNodeAt(t),u)):(l&&(this.checkExpressionErrors(o,!0),this.expressionScope.exit()),this.toReferencedArguments(u)),this.state.maybeInArrowParameters=r,u}toReferencedArguments(e,t){this.toReferencedListDeep(e.arguments,t)}parseTaggedTemplateExpression(e,t,i){const s=this.startNodeAt(t);return s.tag=e,s.quasi=this.parseTemplate(!0),i.optionalChainMember&&this.raise(me.OptionalChainingNoTemplate,t),this.finishNode(s,"TaggedTemplateExpression")}atPossibleAsyncArrow(e){return e.type==="Identifier"&&e.name==="async"&&this.state.lastTokEndLoc.index===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&e.start===this.state.potentialArrowAt}expectImportAttributesPlugin(){this.hasPlugin("importAssertions")||this.expectPlugin("importAttributes")}finishCallExpression(e,t){if(e.callee.type==="Import")if(e.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectImportAttributesPlugin()),e.arguments.length===0||e.arguments.length>2)this.raise(me.ImportCallArity,e,{maxArgumentCount:this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(const i of e.arguments)i.type==="SpreadElement"&&this.raise(me.ImportCallSpreadArgument,i);return this.finishNode(e,t?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(e,t,i,s,r){const o=[];let a=!0;const l=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(e);){if(a)a=!1;else if(this.expect(12),this.match(e)){t&&!this.hasPlugin("importAttributes")&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(me.ImportCallArgumentTrailingComma,this.state.lastTokStartLoc),s&&this.addTrailingCommaExtraToNode(s),this.next();break}o.push(this.parseExprListItem(!1,r,i))}return this.state.inFSharpPipelineDirectBody=l,o}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(e,t){var i;return this.resetPreviousNodeTrailingComments(t),this.expect(19),this.parseArrowExpression(e,t.arguments,!0,(i=t.extra)==null?void 0:i.trailingCommaLoc),t.innerComments&&GI(e,t.innerComments),t.callee.trailingComments&&GI(e,t.callee.trailingComments),e}parseNoCallExpr(){const e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,!0)}parseExprAtom(e){let t,i=null;const{type:s}=this.state;switch(s){case 79:return this.parseSuper();case 83:return t=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(t):this.match(10)?this.options.createImportExpressions?this.parseImportCall(t):this.finishNode(t,"Import"):(this.raise(me.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(t,"Import"));case 78:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 134:return this.parseNumericLiteral(this.state.value);case 135:return this.parseBigIntLiteral(this.state.value);case 136:return this.parseDecimalLiteral(this.state.value);case 133:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{const r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,e);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,e);case 68:return this.parseFunctionOrFunctionSent();case 26:i=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(i,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{t=this.startNode(),this.next(),t.object=null;const r=t.callee=this.parseNoCallExpr();if(r.type==="MemberExpression")return this.finishNode(t,"BindExpression");throw this.raise(me.UnsupportedBind,r)}case 138:return this.raise(me.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{const r=this.getPluginOption("pipelineOperator","proposal");if(r)return this.parseTopicReference(r);this.unexpected();break}case 47:{const r=this.input.codePointAt(this.nextTokenStart());zp(r)||r===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(Pn(s)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();const r=this.state.potentialArrowAt===this.state.start,o=this.state.containsEsc,a=this.parseIdentifier();if(!o&&a.name==="async"&&!this.canInsertSemicolon()){const{type:l}=this.state;if(l===68)return this.resetPreviousNodeTrailingComments(a),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(a));if(Pn(l))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(a)):a;if(l===90)return this.resetPreviousNodeTrailingComments(a),this.parseDo(this.startNodeAtNode(a),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(a),[a],!1)):a}else this.unexpected()}}parseTopicReferenceThenEqualsSign(e,t){const i=this.getPluginOption("pipelineOperator","proposal");if(i)return this.state.type=e,this.state.value=t,this.state.pos--,this.state.end--,this.state.endLoc=sl(this.state.endLoc,-1),this.parseTopicReference(i);this.unexpected()}parseTopicReference(e){const t=this.startNode(),i=this.state.startLoc,s=this.state.type;return this.next(),this.finishTopicReference(t,i,e,s)}finishTopicReference(e,t,i,s){if(this.testTopicReferenceConfiguration(i,t,s)){const r=i==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(i==="smart"?me.PrimaryTopicNotAllowed:me.PipeTopicUnbound,t),this.registerTopicReference(),this.finishNode(e,r)}else throw this.raise(me.PipeTopicUnconfiguredToken,t,{token:v1(s)})}testTopicReferenceConfiguration(e,t,i){switch(e){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:v1(i)}]);case"smart":return i===27;default:throw this.raise(me.PipeTopicRequiresHackPipes,t)}}parseAsyncArrowUnaryFunction(e){this.prodParam.enter(OR(!0,this.prodParam.hasYield));const t=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(me.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(e,t,!0)}parseDo(e,t){this.expectPlugin("doExpressions"),t&&this.expectPlugin("asyncDoExpressions"),e.async=t,this.next();const i=this.state.labels;return this.state.labels=[],t?(this.prodParam.enter(2),e.body=this.parseBlock(),this.prodParam.exit()):e.body=this.parseBlock(),this.state.labels=i,this.finishNode(e,"DoExpression")}parseSuper(){const e=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(me.SuperNotAllowed,e):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(me.UnexpectedSuper,e),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(me.UnsupportedSuper,e),this.finishNode(e,"Super")}parsePrivateName(){const e=this.startNode(),t=this.startNodeAt(sl(this.state.startLoc,1)),i=this.state.value;return this.next(),e.id=this.createIdentifier(t,i),this.finishNode(e,"PrivateName")}parseFunctionOrFunctionSent(){const e=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){const t=this.createIdentifier(this.startNodeAtNode(e),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(e,t,"sent")}return this.parseFunction(e)}parseMetaProperty(e,t,i){e.meta=t;const s=this.state.containsEsc;return e.property=this.parseIdentifier(!0),(e.property.name!==i||s)&&this.raise(me.UnsupportedMetaProperty,e.property,{target:t.name,onlyValidPropertyName:i}),this.finishNode(e,"MetaProperty")}parseImportMetaProperty(e){const t=this.createIdentifier(this.startNodeAtNode(e),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(me.ImportMetaOutsideModule,t),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){const i=this.isContextual(105);if(i||this.unexpected(),this.expectPlugin(i?"sourcePhaseImports":"deferredImportEvaluation"),!this.options.createImportExpressions)throw this.raise(me.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),e.phase=i?"source":"defer",this.parseImportCall(e)}return this.parseMetaProperty(e,t,"meta")}parseLiteralAtNode(e,t,i){return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(i.start,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)}parseLiteral(e,t){const i=this.startNode();return this.parseLiteralAtNode(e,t,i)}parseStringLiteral(e){return this.parseLiteral(e,"StringLiteral")}parseNumericLiteral(e){return this.parseLiteral(e,"NumericLiteral")}parseBigIntLiteral(e){return this.parseLiteral(e,"BigIntLiteral")}parseDecimalLiteral(e){return this.parseLiteral(e,"DecimalLiteral")}parseRegExpLiteral(e){const t=this.startNode();return this.addExtra(t,"raw",this.input.slice(t.start,this.state.end)),t.pattern=e.pattern,t.flags=e.flags,this.next(),this.finishNode(t,"RegExpLiteral")}parseBooleanLiteral(e){const t=this.startNode();return t.value=e,this.next(),this.finishNode(t,"BooleanLiteral")}parseNullLiteral(){const e=this.startNode();return this.next(),this.finishNode(e,"NullLiteral")}parseParenAndDistinguishExpression(e){const t=this.state.startLoc;let i;this.next(),this.expressionScope.enter(_Ue());const s=this.state.maybeInArrowParameters,r=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;const o=this.state.startLoc,a=[],l=new FR;let c=!0,u,h;for(;!this.match(11);){if(c)c=!1;else if(this.expect(12,l.optionalParametersLoc===null?null:l.optionalParametersLoc),this.match(11)){h=this.state.startLoc;break}if(this.match(21)){const p=this.state.startLoc;if(u=this.state.startLoc,a.push(this.parseParenItem(this.parseRestBinding(),p)),!this.checkCommaAfterRest(41))break}else a.push(this.parseMaybeAssignAllowIn(l,this.parseParenItem))}const d=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=s,this.state.inFSharpPipelineDirectBody=r;let f=this.startNodeAt(t);return e&&this.shouldParseArrow(a)&&(f=this.parseArrow(f))?(this.checkDestructuringPrivate(l),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(f,a,!1),f):(this.expressionScope.exit(),a.length||this.unexpected(this.state.lastTokStartLoc),h&&this.unexpected(h),u&&this.unexpected(u),this.checkExpressionErrors(l,!0),this.toReferencedListDeep(a,!0),a.length>1?(i=this.startNodeAt(o),i.expressions=a,this.finishNode(i,"SequenceExpression"),this.resetEndLocation(i,d)):i=a[0],this.wrapParenthesis(t,i))}wrapParenthesis(e,t){if(!this.options.createParenthesizedExpressions)return this.addExtra(t,"parenthesized",!0),this.addExtra(t,"parenStart",e.index),this.takeSurroundingComments(t,e.index,this.state.lastTokEndLoc.index),t;const i=this.startNodeAt(e);return i.expression=t,this.finishNode(i,"ParenthesizedExpression")}shouldParseArrow(e){return!this.canInsertSemicolon()}parseArrow(e){if(this.eat(19))return e}parseParenItem(e,t){return e}parseNewOrNewTarget(){const e=this.startNode();if(this.next(),this.match(16)){const t=this.createIdentifier(this.startNodeAtNode(e),"new");this.next();const i=this.parseMetaProperty(e,t,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!this.options.allowNewTargetOutsideFunction&&this.raise(me.UnexpectedNewTarget,i),i}return this.parseNew(e)}parseNew(e){if(this.parseNewCallee(e),this.eat(10)){const t=this.parseExprList(11);this.toReferencedList(t),e.arguments=t}else e.arguments=[];return this.finishNode(e,"NewExpression")}parseNewCallee(e){const t=this.match(83),i=this.parseNoCallExpr();e.callee=i,t&&(i.type==="Import"||i.type==="ImportExpression")&&this.raise(me.ImportCallNotNewExpression,i)}parseTemplateElement(e){const{start:t,startLoc:i,end:s,value:r}=this.state,o=t+1,a=this.startNodeAt(sl(i,1));r===null&&(e||this.raise(me.InvalidEscapeSequenceTemplate,sl(this.state.firstInvalidTemplateEscapePos,1)));const l=this.match(24),c=l?-1:-2,u=s+c;a.value={raw:this.input.slice(o,u).replace(/\r\n?/g,` +`),cooked:r===null?null:r.slice(1,c)},a.tail=l,this.next();const h=this.finishNode(a,"TemplateElement");return this.resetEndLocation(h,sl(this.state.lastTokEndLoc,c)),h}parseTemplate(e){const t=this.startNode();let i=this.parseTemplateElement(e);const s=[i],r=[];for(;!i.tail;)r.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),s.push(i=this.parseTemplateElement(e));return t.expressions=r,t.quasis=s,this.finishNode(t,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(e,t,i,s){i&&this.expectPlugin("recordAndTuple");const r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const o=Object.create(null);let a=!0;const l=this.startNode();for(l.properties=[],this.next();!this.match(e);){if(a)a=!1;else if(this.expect(12),this.match(e)){this.addTrailingCommaExtraToNode(l);break}let u;t?u=this.parseBindingProperty():(u=this.parsePropertyDefinition(s),this.checkProto(u,i,o,s)),i&&!this.isObjectProperty(u)&&u.type!=="SpreadElement"&&this.raise(me.InvalidRecordProperty,u),u.shorthand&&this.addExtra(u,"shorthand",!0),l.properties.push(u)}this.next(),this.state.inFSharpPipelineDirectBody=r;let c="ObjectExpression";return t?c="ObjectPattern":i&&(c="RecordExpression"),this.finishNode(l,c)}addTrailingCommaExtraToNode(e){this.addExtra(e,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(e,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(e){return!e.computed&&e.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(e){let t=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(me.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)t.push(this.parseDecorator());const i=this.startNode();let s=!1,r=!1,o;if(this.match(21))return t.length&&this.unexpected(),this.parseSpread();t.length&&(i.decorators=t,t=[]),i.method=!1,e&&(o=this.state.startLoc);let a=this.eat(55);this.parsePropertyNamePrefixOperator(i);const l=this.state.containsEsc;if(this.parsePropertyName(i,e),!a&&!l&&this.maybeAsyncOrAccessorProp(i)){const{key:c}=i,u=c.name;u==="async"&&!this.hasPrecedingLineBreak()&&(s=!0,this.resetPreviousNodeTrailingComments(c),a=this.eat(55),this.parsePropertyName(i)),(u==="get"||u==="set")&&(r=!0,this.resetPreviousNodeTrailingComments(c),i.kind=u,this.match(55)&&(a=!0,this.raise(me.AccessorIsGenerator,this.state.curPosition(),{kind:u}),this.next()),this.parsePropertyName(i))}return this.parseObjPropValue(i,o,a,s,!1,r,e)}getGetterSetterExpectedParamCount(e){return e.kind==="get"?0:1}getObjectOrClassMethodParams(e){return e.params}checkGetterSetterParams(e){var t;const i=this.getGetterSetterExpectedParamCount(e),s=this.getObjectOrClassMethodParams(e);s.length!==i&&this.raise(e.kind==="get"?me.BadGetterArity:me.BadSetterArity,e),e.kind==="set"&&((t=s[s.length-1])==null?void 0:t.type)==="RestElement"&&this.raise(me.BadSetterRestParameter,e)}parseObjectMethod(e,t,i,s,r){if(r){const o=this.parseMethod(e,t,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(o),o}if(i||t||this.match(10))return s&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,i,!1,!1,"ObjectMethod")}parseObjectProperty(e,t,i,s){if(e.shorthand=!1,this.eat(14))return e.value=i?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(s),this.finishNode(e,"ObjectProperty");if(!e.computed&&e.key.type==="Identifier"){if(this.checkReservedWord(e.key.name,e.key.loc.start,!0,!1),i)e.value=this.parseMaybeDefault(t,vg(e.key));else if(this.match(29)){const r=this.state.startLoc;s!=null?s.shorthandAssignLoc===null&&(s.shorthandAssignLoc=r):this.raise(me.InvalidCoverInitializedName,r),e.value=this.parseMaybeDefault(t,vg(e.key))}else e.value=vg(e.key);return e.shorthand=!0,this.finishNode(e,"ObjectProperty")}}parseObjPropValue(e,t,i,s,r,o,a){const l=this.parseObjectMethod(e,i,s,r,o)||this.parseObjectProperty(e,t,r,a);return l||this.unexpected(),l}parsePropertyName(e,t){if(this.eat(0))e.computed=!0,e.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{const{type:i,value:s}=this.state;let r;if(Th(i))r=this.parseIdentifier(!0);else switch(i){case 134:r=this.parseNumericLiteral(s);break;case 133:r=this.parseStringLiteral(s);break;case 135:r=this.parseBigIntLiteral(s);break;case 136:r=this.parseDecimalLiteral(s);break;case 138:{const o=this.state.startLoc;t!=null?t.privateKeyLoc===null&&(t.privateKeyLoc=o):this.raise(me.UnexpectedPrivateField,o),r=this.parsePrivateName();break}default:this.unexpected()}e.key=r,i!==138&&(e.computed=!1)}}initFunction(e,t){e.id=null,e.generator=!1,e.async=t}parseMethod(e,t,i,s,r,o,a=!1){this.initFunction(e,i),e.generator=t,this.scope.enter(18|(a?64:0)|(r?32:0)),this.prodParam.enter(OR(i,e.generator)),this.parseFunctionParams(e,s);const l=this.parseFunctionBodyAndFinish(e,o,!0);return this.prodParam.exit(),this.scope.exit(),l}parseArrayLike(e,t,i,s){i&&this.expectPlugin("recordAndTuple");const r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const o=this.startNode();return this.next(),o.elements=this.parseExprList(e,!i,s,o),this.state.inFSharpPipelineDirectBody=r,this.finishNode(o,i?"TupleExpression":"ArrayExpression")}parseArrowExpression(e,t,i,s){this.scope.enter(6);let r=OR(i,!1);!this.match(5)&&this.prodParam.hasIn&&(r|=8),this.prodParam.enter(r),this.initFunction(e,i);const o=this.state.maybeInArrowParameters;return t&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(e,t,s)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(e,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=o,this.finishNode(e,"ArrowFunctionExpression")}setArrowFunctionParameters(e,t,i){this.toAssignableList(t,i,!1),e.params=t}parseFunctionBodyAndFinish(e,t,i=!1){return this.parseFunctionBody(e,!1,i),this.finishNode(e,t)}parseFunctionBody(e,t,i=!1){const s=t&&!this.match(5);if(this.expressionScope.enter(zbe()),s)e.body=this.parseMaybeAssign(),this.checkParams(e,!1,t,!1);else{const r=this.state.strict,o=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),e.body=this.parseBlock(!0,!1,a=>{const l=!this.isSimpleParamList(e.params);a&&l&&this.raise(me.IllegalLanguageModeDirective,(e.kind==="method"||e.kind==="constructor")&&e.key?e.key.loc.end:e);const c=!r&&this.state.strict;this.checkParams(e,!this.state.strict&&!t&&!i&&!l,t,c),this.state.strict&&e.id&&this.checkIdentifier(e.id,65,c)}),this.prodParam.exit(),this.state.labels=o}this.expressionScope.exit()}isSimpleParameter(e){return e.type==="Identifier"}isSimpleParamList(e){for(let t=0,i=e.length;t<i;t++)if(!this.isSimpleParameter(e[t]))return!1;return!0}checkParams(e,t,i,s=!0){const r=!t&&new Set,o={type:"FormalParameters"};for(const a of e.params)this.checkLVal(a,o,5,r,s)}parseExprList(e,t,i,s){const r=[];let o=!0;for(;!this.eat(e);){if(o)o=!1;else if(this.expect(12),this.match(e)){s&&this.addTrailingCommaExtraToNode(s),this.next();break}r.push(this.parseExprListItem(t,i))}return r}parseExprListItem(e,t,i){let s;if(this.match(12))e||this.raise(me.UnexpectedToken,this.state.curPosition(),{unexpected:","}),s=null;else if(this.match(21)){const r=this.state.startLoc;s=this.parseParenItem(this.parseSpread(t),r)}else if(this.match(17)){this.expectPlugin("partialApplication"),i||this.raise(me.UnexpectedArgumentPlaceholder,this.state.startLoc);const r=this.startNode();this.next(),s=this.finishNode(r,"ArgumentPlaceholder")}else s=this.parseMaybeAssignAllowIn(t,this.parseParenItem);return s}parseIdentifier(e){const t=this.startNode(),i=this.parseIdentifierName(e);return this.createIdentifier(t,i)}createIdentifier(e,t){return e.name=t,e.loc.identifierName=t,this.finishNode(e,"Identifier")}parseIdentifierName(e){let t;const{startLoc:i,type:s}=this.state;Th(s)?t=this.state.value:this.unexpected();const r=Rze(s);return e?r&&this.replaceToken(132):this.checkReservedWord(t,i,r,!1),this.next(),t}checkReservedWord(e,t,i,s){if(e.length>10||!Jze(e))return;if(i&&Yze(e)){this.raise(me.UnexpectedKeyword,t,{keyword:e});return}if((this.state.strict?s?Fbe:Mbe:Rbe)(e,this.inModule)){this.raise(me.UnexpectedReservedWord,t,{reservedWord:e});return}else if(e==="yield"){if(this.prodParam.hasYield){this.raise(me.YieldBindingIdentifier,t);return}}else if(e==="await"){if(this.prodParam.hasAwait){this.raise(me.AwaitBindingIdentifier,t);return}if(this.scope.inStaticBlock){this.raise(me.AwaitBindingIdentifierInStaticBlock,t);return}this.expressionScope.recordAsyncArrowParametersError(t)}else if(e==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(me.ArgumentsInClass,t);return}}recordAwaitIfAllowed(){const e=this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction;return e&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),e}parseAwait(e){const t=this.startNodeAt(e);return this.expressionScope.recordParameterInitializerError(me.AwaitExpressionFormalParameter,t),this.eat(55)&&this.raise(me.ObsoleteAwaitStar,t),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(t.argument=this.parseMaybeUnary(null,!0)),this.finishNode(t,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;const{type:e}=this.state;return e===53||e===10||e===0||gO(e)||e===102&&!this.state.containsEsc||e===137||e===56||this.hasPlugin("v8intrinsic")&&e===54}parseYield(){const e=this.startNode();this.expressionScope.recordParameterInitializerError(me.YieldInParameter,e),this.next();let t=!1,i=null;if(!this.hasPrecedingLineBreak())switch(t=this.eat(55),this.state.type){case 13:case 139:case 8:case 11:case 3:case 9:case 14:case 12:if(!t)break;default:i=this.parseMaybeAssign()}return e.delegate=t,e.argument=i,this.finishNode(e,"YieldExpression")}parseImportCall(e){return this.next(),e.source=this.parseMaybeAssignAllowIn(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(e.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(e.options=this.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.finishNode(e,"ImportExpression")}checkPipelineAtInfixOperator(e,t){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&e.type==="SequenceExpression"&&this.raise(me.PipelineHeadSequenceExpression,t)}parseSmartPipelineBodyInStyle(e,t){if(this.isSimpleReference(e)){const i=this.startNodeAt(t);return i.callee=e,this.finishNode(i,"PipelineBareFunction")}else{const i=this.startNodeAt(t);return this.checkSmartPipeTopicBodyEarlyErrors(t),i.expression=e,this.finishNode(i,"PipelineTopicExpression")}}isSimpleReference(e){switch(e.type){case"MemberExpression":return!e.computed&&this.isSimpleReference(e.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(e){if(this.match(19))throw this.raise(me.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(me.PipelineTopicUnused,e)}withTopicBindingContext(e){const t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}}withSmartMixTopicForbiddingContext(e){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){const t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}}else return e()}withSoloAwaitPermittingContext(e){const t=this.state.soloAwait;this.state.soloAwait=!0;try{return e()}finally{this.state.soloAwait=t}}allowInAnd(e){const t=this.prodParam.currentFlags();if(8&~t){this.prodParam.enter(t|8);try{return e()}finally{this.prodParam.exit()}}return e()}disallowInAnd(e){const t=this.prodParam.currentFlags();if(8&t){this.prodParam.enter(t&-9);try{return e()}finally{this.prodParam.exit()}}return e()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(e){const t=this.state.startLoc;this.state.potentialArrowAt=this.state.start;const i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;const s=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),t,e);return this.state.inFSharpPipelineDirectBody=i,s}parseModuleExpression(){this.expectPlugin("moduleBlocks");const e=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);const t=this.startNodeAt(this.state.endLoc);this.next();const i=this.initializeScopes(!0);this.enterInitialScopes();try{e.body=this.parseProgram(t,8,"module")}finally{i()}return this.finishNode(e,"ModuleExpression")}parsePropertyNamePrefixOperator(e){}}const X9={kind:1},GUe={kind:2},XUe=/[\uD800-\uDFFF]/u,Y9=/in(?:stanceof)?/y;function YUe(n,e){for(let t=0;t<n.length;t++){const i=n[t],{type:s}=i;if(typeof s=="number"){{if(s===138){const{loc:r,start:o,value:a,end:l}=i,c=o+1,u=sl(r.start,1);n.splice(t,1,new xm({type:yp(27),value:"#",start:o,end:c,startLoc:r.start,endLoc:u}),new xm({type:yp(132),value:a,start:c,end:l,startLoc:u,endLoc:r.end})),t++;continue}if(gO(s)){const{loc:r,start:o,value:a,end:l}=i,c=o+1,u=sl(r.start,1);let h;e.charCodeAt(o)===96?h=new xm({type:yp(22),value:"`",start:o,end:c,startLoc:r.start,endLoc:u}):h=new xm({type:yp(8),value:"}",start:o,end:c,startLoc:r.start,endLoc:u});let d,f,p,g;s===24?(f=l-1,p=sl(r.end,-1),d=a===null?null:a.slice(1,-1),g=new xm({type:yp(22),value:"`",start:f,end:l,startLoc:p,endLoc:r.end})):(f=l-2,p=sl(r.end,-2),d=a===null?null:a.slice(1,-2),g=new xm({type:yp(23),value:"${",start:f,end:l,startLoc:p,endLoc:r.end})),n.splice(t,1,h,new xm({type:yp(20),value:d,start:c,end:f,startLoc:u,endLoc:p}),g),t+=2;continue}}i.type=yp(s)}}return n}class ZUe extends KUe{parseTopLevel(e,t){return e.program=this.parseProgram(t),e.comments=this.comments,this.options.tokens&&(e.tokens=YUe(this.tokens,this.input)),this.finishNode(e,"File")}parseProgram(e,t=139,i=this.options.sourceType){if(e.sourceType=i,e.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(e,!0,!0,t),this.inModule){if(!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(const[r,o]of Array.from(this.scope.undefinedExports))this.raise(me.ModuleExportUndefined,o,{localName:r});this.addExtra(e,"topLevelAwait",this.state.hasTopLevelAwait)}let s;return t===139?s=this.finishNode(e,"Program"):s=this.finishNodeAt(e,"Program",sl(this.state.startLoc,-1)),s}stmtToDirective(e){const t=e;t.type="Directive",t.value=t.expression,delete t.expression;const i=t.value,s=i.value,r=this.input.slice(i.start,i.end),o=i.value=r.slice(1,-1);return this.addExtra(i,"raw",r),this.addExtra(i,"rawValue",o),this.addExtra(i,"expressionValue",s),i.type="DirectiveLiteral",t}parseInterpreterDirective(){if(!this.match(28))return null;const e=this.startNode();return e.value=this.state.value,this.next(),this.finishNode(e,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(e,t){if(zp(e)){if(Y9.lastIndex=t,Y9.test(this.input)){const i=this.codePointAtPos(Y9.lastIndex);if(!DC(i)&&i!==92)return!1}return!0}else return e===92}chStartsBindingPattern(e){return e===91||e===123}hasFollowingBindingAtom(){const e=this.nextTokenStart(),t=this.codePointAtPos(e);return this.chStartsBindingPattern(t)||this.chStartsBindingIdentifier(t,e)}hasInLineFollowingBindingIdentifierOrBrace(){const e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);return t===123||this.chStartsBindingIdentifier(t,e)}startsUsingForOf(){const{type:e,containsEsc:t}=this.lookahead();if(e===102&&!t)return!1;if(Pn(e)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let e=this.nextTokenInLineStart();if(this.isUnparsedContextual(e,"using")){e=this.nextTokenInLineStartSince(e+5);const t=this.codePointAtPos(e);if(this.chStartsBindingIdentifier(t,e))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(e=!1){let t=0;return this.options.annexB&&!this.state.strict&&(t|=4,e&&(t|=8)),this.parseStatementLike(t)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(e){let t=null;return this.match(26)&&(t=this.parseDecorators(!0)),this.parseStatementContent(e,t)}parseStatementContent(e,t){const i=this.state.type,s=this.startNode(),r=!!(e&2),o=!!(e&4),a=e&1;switch(i){case 60:return this.parseBreakContinueStatement(s,!0);case 63:return this.parseBreakContinueStatement(s,!1);case 64:return this.parseDebuggerStatement(s);case 90:return this.parseDoWhileStatement(s);case 91:return this.parseForStatement(s);case 68:if(this.lookaheadCharCode()===46)break;return o||this.raise(this.state.strict?me.StrictFunction:this.options.annexB?me.SloppyFunctionAnnexB:me.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(s,!1,!r&&o);case 80:return r||this.unexpected(),this.parseClass(this.maybeTakeDecorators(t,s),!0);case 69:return this.parseIfStatement(s);case 70:return this.parseReturnStatement(s);case 71:return this.parseSwitchStatement(s);case 72:return this.parseThrowStatement(s);case 73:return this.parseTryStatement(s);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?r||this.raise(me.UnexpectedLexicalDeclaration,s):this.raise(me.AwaitUsingNotInAsyncContext,s),this.next(),this.parseVarStatement(s,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(me.UnexpectedUsingDeclaration,this.state.startLoc):r||this.raise(me.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(s,"using");case 100:{if(this.state.containsEsc)break;const u=this.nextTokenStart(),h=this.codePointAtPos(u);if(h!==91&&(!r&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(h,u)&&h!==123))break}case 75:r||this.raise(me.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{const u=this.state.value;return this.parseVarStatement(s,u)}case 92:return this.parseWhileStatement(s);case 76:return this.parseWithStatement(s);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(s);case 83:{const u=this.lookaheadCharCode();if(u===40||u===46)break}case 82:{!this.options.allowImportExportEverywhere&&!a&&this.raise(me.UnexpectedImportExport,this.state.startLoc),this.next();let u;return i===83?(u=this.parseImport(s),u.type==="ImportDeclaration"&&(!u.importKind||u.importKind==="value")&&(this.sawUnambiguousESM=!0)):(u=this.parseExport(s,t),(u.type==="ExportNamedDeclaration"&&(!u.exportKind||u.exportKind==="value")||u.type==="ExportAllDeclaration"&&(!u.exportKind||u.exportKind==="value")||u.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(u),u}default:if(this.isAsyncFunction())return r||this.raise(me.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(s,!0,!r&&o)}const l=this.state.value,c=this.parseExpression();return Pn(i)&&c.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(s,l,c,e):this.parseExpressionStatement(s,c,t)}assertModuleNodeAllowed(e){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(me.ImportOutsideModule,e)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(e,t,i){return e&&(t.decorators&&t.decorators.length>0?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(me.DecoratorsBeforeAfterExport,t.decorators[0]),t.decorators.unshift(...e)):t.decorators=e,this.resetStartLocationFromNode(t,e[0]),i&&this.resetStartLocationFromNode(i,t)),t}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(e){const t=[];do t.push(this.parseDecorator());while(this.match(26));if(this.match(82))e||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(me.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(me.UnexpectedLeadingDecorator,this.state.startLoc);return t}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);const e=this.startNode();if(this.next(),this.hasPlugin("decorators")){const t=this.state.startLoc;let i;if(this.match(10)){const s=this.state.startLoc;this.next(),i=this.parseExpression(),this.expect(11),i=this.wrapParenthesis(s,i);const r=this.state.startLoc;e.expression=this.parseMaybeDecoratorArguments(i),this.getPluginOption("decorators","allowCallParenthesized")===!1&&e.expression!==i&&this.raise(me.DecoratorArgumentsOutsideParentheses,r)}else{for(i=this.parseIdentifier(!1);this.eat(16);){const s=this.startNodeAt(t);s.object=i,this.match(138)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),s.property=this.parsePrivateName()):s.property=this.parseIdentifier(!0),s.computed=!1,i=this.finishNode(s,"MemberExpression")}e.expression=this.parseMaybeDecoratorArguments(i)}}else e.expression=this.parseExprSubscripts();return this.finishNode(e,"Decorator")}parseMaybeDecoratorArguments(e){if(this.eat(10)){const t=this.startNodeAtNode(e);return t.callee=e,t.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(t.arguments),this.finishNode(t,"CallExpression")}return e}parseBreakContinueStatement(e,t){return this.next(),this.isLineTerminator()?e.label=null:(e.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(e,t),this.finishNode(e,t?"BreakStatement":"ContinueStatement")}verifyBreakContinue(e,t){let i;for(i=0;i<this.state.labels.length;++i){const s=this.state.labels[i];if((e.label==null||s.name===e.label.name)&&(s.kind!=null&&(t||s.kind===1)||e.label&&t))break}if(i===this.state.labels.length){const s=t?"BreakStatement":"ContinueStatement";this.raise(me.IllegalBreakContinue,e,{type:s})}}parseDebuggerStatement(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")}parseHeaderExpression(){this.expect(10);const e=this.parseExpression();return this.expect(11),e}parseDoWhileStatement(e){return this.next(),this.state.labels.push(X9),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.expect(92),e.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(e,"DoWhileStatement")}parseForStatement(e){this.next(),this.state.labels.push(X9);let t=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(t=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return t!==null&&this.unexpected(t),this.parseFor(e,null);const i=this.isContextual(100);{const l=this.isContextual(96)&&this.startsAwaitUsing(),c=l||this.isContextual(107)&&this.startsUsingForOf(),u=i&&this.hasFollowingBindingAtom()||c;if(this.match(74)||this.match(75)||u){const h=this.startNode();let d;l?(d="await using",this.recordAwaitIfAllowed()||this.raise(me.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):d=this.state.value,this.next(),this.parseVar(h,!0,d);const f=this.finishNode(h,"VariableDeclaration"),p=this.match(58);return p&&c&&this.raise(me.ForInUsing,f),(p||this.isContextual(102))&&f.declarations.length===1?this.parseForIn(e,f,t):(t!==null&&this.unexpected(t),this.parseFor(e,f))}}const s=this.isContextual(95),r=new FR,o=this.parseExpression(!0,r),a=this.isContextual(102);if(a&&(i&&this.raise(me.ForOfLet,o),t===null&&s&&o.type==="Identifier"&&this.raise(me.ForOfAsync,o)),a||this.match(58)){this.checkDestructuringPrivate(r),this.toAssignable(o,!0);const l=a?"ForOfStatement":"ForInStatement";return this.checkLVal(o,{type:l}),this.parseForIn(e,o,t)}else this.checkExpressionErrors(r,!0);return t!==null&&this.unexpected(t),this.parseFor(e,o)}parseFunctionStatement(e,t,i){return this.next(),this.parseFunction(e,1|(i?2:0)|(t?8:0))}parseIfStatement(e){return this.next(),e.test=this.parseHeaderExpression(),e.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),e.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(e,"IfStatement")}parseReturnStatement(e){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(me.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")}parseSwitchStatement(e){this.next(),e.discriminant=this.parseHeaderExpression();const t=e.cases=[];this.expect(5),this.state.labels.push(GUe),this.scope.enter(0);let i;for(let s;!this.match(8);)if(this.match(61)||this.match(65)){const r=this.match(61);i&&this.finishNode(i,"SwitchCase"),t.push(i=this.startNode()),i.consequent=[],this.next(),r?i.test=this.parseExpression():(s&&this.raise(me.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),s=!0,i.test=null),this.expect(14)}else i?i.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),i&&this.finishNode(i,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")}parseThrowStatement(e){return this.next(),this.hasPrecedingLineBreak()&&this.raise(me.NewlineAfterThrow,this.state.lastTokEndLoc),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")}parseCatchClauseParam(){const e=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&e.type==="Identifier"?8:0),this.checkLVal(e,{type:"CatchClause"},9),e}parseTryStatement(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(62)){const t=this.startNode();this.next(),this.match(10)?(this.expect(10),t.param=this.parseCatchClauseParam(),this.expect(11)):(t.param=null,this.scope.enter(0)),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(67)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(me.NoCatchOrFinally,e),this.finishNode(e,"TryStatement")}parseVarStatement(e,t,i=!1){return this.next(),this.parseVar(e,!1,t,i),this.semicolon(),this.finishNode(e,"VariableDeclaration")}parseWhileStatement(e){return this.next(),e.test=this.parseHeaderExpression(),this.state.labels.push(X9),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(e,"WhileStatement")}parseWithStatement(e){return this.state.strict&&this.raise(me.StrictWith,this.state.startLoc),this.next(),e.object=this.parseHeaderExpression(),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(e,"WithStatement")}parseEmptyStatement(e){return this.next(),this.finishNode(e,"EmptyStatement")}parseLabeledStatement(e,t,i,s){for(const o of this.state.labels)o.name===t&&this.raise(me.LabelRedeclaration,i,{labelName:t});const r=Fze(this.state.type)?1:this.match(71)?2:null;for(let o=this.state.labels.length-1;o>=0;o--){const a=this.state.labels[o];if(a.statementStart===e.start)a.statementStart=this.state.start,a.kind=r;else break}return this.state.labels.push({name:t,kind:r,statementStart:this.state.start}),e.body=s&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),e.label=i,this.finishNode(e,"LabeledStatement")}parseExpressionStatement(e,t,i){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")}parseBlock(e=!1,t=!0,i){const s=this.startNode();return e&&this.state.strictErrors.clear(),this.expect(5),t&&this.scope.enter(0),this.parseBlockBody(s,e,!1,8,i),t&&this.scope.exit(),this.finishNode(s,"BlockStatement")}isValidDirective(e){return e.type==="ExpressionStatement"&&e.expression.type==="StringLiteral"&&!e.expression.extra.parenthesized}parseBlockBody(e,t,i,s,r){const o=e.body=[],a=e.directives=[];this.parseBlockOrModuleBlockBody(o,t?a:void 0,i,s,r)}parseBlockOrModuleBlockBody(e,t,i,s,r){const o=this.state.strict;let a=!1,l=!1;for(;!this.match(s);){const c=i?this.parseModuleItem():this.parseStatementListItem();if(t&&!l){if(this.isValidDirective(c)){const u=this.stmtToDirective(c);t.push(u),!a&&u.value.value==="use strict"&&(a=!0,this.setStrict(!0));continue}l=!0,this.state.strictErrors.clear()}e.push(c)}r==null||r.call(this,a),o||this.setStrict(!1),this.next()}parseFor(e,t){return e.init=t,this.semicolon(!1),e.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),e.update=this.match(11)?null:this.parseExpression(),this.expect(11),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,"ForStatement")}parseForIn(e,t,i){const s=this.match(58);return this.next(),s?i!==null&&this.unexpected(i):e.await=i!==null,t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!s||!this.options.annexB||this.state.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(me.ForInOfLoopInitializer,t,{type:s?"ForInStatement":"ForOfStatement"}),t.type==="AssignmentPattern"&&this.raise(me.InvalidLhs,t,{ancestor:{type:"ForStatement"}}),e.left=t,e.right=s?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,s?"ForInStatement":"ForOfStatement")}parseVar(e,t,i,s=!1){const r=e.declarations=[];for(e.kind=i;;){const o=this.startNode();if(this.parseVarId(o,i),o.init=this.eat(29)?t?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,o.init===null&&!s&&(o.id.type!=="Identifier"&&!(t&&(this.match(58)||this.isContextual(102)))?this.raise(me.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(i==="const"||i==="using"||i==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(me.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:i})),r.push(this.finishNode(o,"VariableDeclarator")),!this.eat(12))break}return e}parseVarId(e,t){const i=this.parseBindingAtom();(t==="using"||t==="await using")&&(i.type==="ArrayPattern"||i.type==="ObjectPattern")&&this.raise(me.UsingDeclarationHasBindingPattern,i.loc.start),this.checkLVal(i,{type:"VariableDeclarator"},t==="var"?5:8201),e.id=i}parseAsyncFunctionExpression(e){return this.parseFunction(e,8)}parseFunction(e,t=0){const i=t&2,s=!!(t&1),r=s&&!(t&4),o=!!(t&8);this.initFunction(e,o),this.match(55)&&(i&&this.raise(me.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),e.generator=!0),s&&(e.id=this.parseFunctionId(r));const a=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(OR(o,e.generator)),s||(e.id=this.parseFunctionId()),this.parseFunctionParams(e,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(e,s?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),s&&!i&&this.registerFunctionStatementId(e),this.state.maybeInArrowParameters=a,e}parseFunctionId(e){return e||Pn(this.state.type)?this.parseIdentifier():null}parseFunctionParams(e,t){this.expect(10),this.expressionScope.enter(mUe()),e.params=this.parseBindingList(11,41,2|(t?4:0)),this.expressionScope.exit()}registerFunctionStatementId(e){e.id&&this.scope.declareName(e.id.name,!this.options.annexB||this.state.strict||e.generator||e.async?this.scope.treatFunctionsAsVar?5:8201:17,e.id.loc.start)}parseClass(e,t,i){this.next();const s=this.state.strict;return this.state.strict=!0,this.parseClassId(e,t,i),this.parseClassSuper(e),e.body=this.parseClassBody(!!e.superClass,s),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(e){return e.type==="Identifier"&&e.name==="constructor"||e.type==="StringLiteral"&&e.value==="constructor"}isNonstaticConstructor(e){return!e.computed&&!e.static&&this.nameIsConstructor(e.key)}parseClassBody(e,t){this.classScope.enter();const i={hadConstructor:!1,hadSuperClass:e};let s=[];const r=this.startNode();if(r.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(s.length>0)throw this.raise(me.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){s.push(this.parseDecorator());continue}const o=this.startNode();s.length&&(o.decorators=s,this.resetStartLocationFromNode(o,s[0]),s=[]),this.parseClassMember(r,o,i),o.kind==="constructor"&&o.decorators&&o.decorators.length>0&&this.raise(me.DecoratorConstructor,o)}}),this.state.strict=t,this.next(),s.length)throw this.raise(me.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(r,"ClassBody")}parseClassMemberFromModifier(e,t){const i=this.parseIdentifier(!0);if(this.isClassMethod()){const s=t;return s.kind="method",s.computed=!1,s.key=i,s.static=!1,this.pushClassMethod(e,s,!1,!1,!1,!1),!0}else if(this.isClassProperty()){const s=t;return s.computed=!1,s.key=i,s.static=!1,e.body.push(this.parseClassProperty(s)),!0}return this.resetPreviousNodeTrailingComments(i),!1}parseClassMember(e,t,i){const s=this.isContextual(106);if(s){if(this.parseClassMemberFromModifier(e,t))return;if(this.eat(5)){this.parseClassStaticBlock(e,t);return}}this.parseClassMemberWithIsStatic(e,t,i,s)}parseClassMemberWithIsStatic(e,t,i,s){const r=t,o=t,a=t,l=t,c=t,u=r,h=r;if(t.static=s,this.parsePropertyNamePrefixOperator(t),this.eat(55)){u.kind="method";const _=this.match(138);if(this.parseClassElementName(u),_){this.pushClassPrivateMethod(e,o,!0,!1);return}this.isNonstaticConstructor(r)&&this.raise(me.ConstructorIsGenerator,r.key),this.pushClassMethod(e,r,!0,!1,!1,!1);return}const d=!this.state.containsEsc&&Pn(this.state.type),f=this.parseClassElementName(t),p=d?f.name:null,g=this.isPrivateName(f),m=this.state.startLoc;if(this.parsePostMemberNameModifiers(h),this.isClassMethod()){if(u.kind="method",g){this.pushClassPrivateMethod(e,o,!1,!1);return}const _=this.isNonstaticConstructor(r);let b=!1;_&&(r.kind="constructor",i.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(me.DuplicateConstructor,f),_&&this.hasPlugin("typescript")&&t.override&&this.raise(me.OverrideOnConstructor,f),i.hadConstructor=!0,b=i.hadSuperClass),this.pushClassMethod(e,r,!1,!1,_,b)}else if(this.isClassProperty())g?this.pushClassPrivateProperty(e,l):this.pushClassProperty(e,a);else if(p==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(f);const _=this.eat(55);h.optional&&this.unexpected(m),u.kind="method";const b=this.match(138);this.parseClassElementName(u),this.parsePostMemberNameModifiers(h),b?this.pushClassPrivateMethod(e,o,_,!0):(this.isNonstaticConstructor(r)&&this.raise(me.ConstructorIsAsync,r.key),this.pushClassMethod(e,r,_,!0,!1,!1))}else if((p==="get"||p==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(f),u.kind=p;const _=this.match(138);this.parseClassElementName(r),_?this.pushClassPrivateMethod(e,o,!1,!1):(this.isNonstaticConstructor(r)&&this.raise(me.ConstructorIsAccessor,r.key),this.pushClassMethod(e,r,!1,!1,!1,!1)),this.checkGetterSetterParams(r)}else if(p==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(f);const _=this.match(138);this.parseClassElementName(a),this.pushClassAccessorProperty(e,c,_)}else this.isLineTerminator()?g?this.pushClassPrivateProperty(e,l):this.pushClassProperty(e,a):this.unexpected()}parseClassElementName(e){const{type:t,value:i}=this.state;if((t===132||t===133)&&e.static&&i==="prototype"&&this.raise(me.StaticPrototype,this.state.startLoc),t===138){i==="constructor"&&this.raise(me.ConstructorClassPrivateField,this.state.startLoc);const s=this.parsePrivateName();return e.key=s,s}return this.parsePropertyName(e),e.key}parseClassStaticBlock(e,t){var i;this.scope.enter(208);const s=this.state.labels;this.state.labels=[],this.prodParam.enter(0);const r=t.body=[];this.parseBlockOrModuleBlockBody(r,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=s,e.body.push(this.finishNode(t,"StaticBlock")),(i=t.decorators)!=null&&i.length&&this.raise(me.DecoratorStaticBlock,t)}pushClassProperty(e,t){!t.computed&&this.nameIsConstructor(t.key)&&this.raise(me.ConstructorClassField,t.key),e.body.push(this.parseClassProperty(t))}pushClassPrivateProperty(e,t){const i=this.parseClassPrivateProperty(t);e.body.push(i),this.classScope.declarePrivateName(this.getPrivateNameSV(i.key),0,i.key.loc.start)}pushClassAccessorProperty(e,t,i){!i&&!t.computed&&this.nameIsConstructor(t.key)&&this.raise(me.ConstructorClassField,t.key);const s=this.parseClassAccessorProperty(t);e.body.push(s),i&&this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),0,s.key.loc.start)}pushClassMethod(e,t,i,s,r,o){e.body.push(this.parseMethod(t,i,s,r,o,"ClassMethod",!0))}pushClassPrivateMethod(e,t,i,s){const r=this.parseMethod(t,i,s,!1,!1,"ClassPrivateMethod",!0);e.body.push(r);const o=r.kind==="get"?r.static?6:2:r.kind==="set"?r.static?5:1:0;this.declareClassPrivateMethodInScope(r,o)}declareClassPrivateMethodInScope(e,t){this.classScope.declarePrivateName(this.getPrivateNameSV(e.key),t,e.key.loc.start)}parsePostMemberNameModifiers(e){}parseClassPrivateProperty(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassPrivateProperty")}parseClassProperty(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassProperty")}parseClassAccessorProperty(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassAccessorProperty")}parseInitializer(e){this.scope.enter(80),this.expressionScope.enter(zbe()),this.prodParam.enter(0),e.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(e,t,i,s=8331){if(Pn(this.state.type))e.id=this.parseIdentifier(),t&&this.declareNameFromIdentifier(e.id,s);else if(i||!t)e.id=null;else throw this.raise(me.MissingClassName,this.state.startLoc)}parseClassSuper(e){e.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(e,t){const i=this.parseMaybeImportPhase(e,!0),s=this.maybeParseExportDefaultSpecifier(e,i),r=!s||this.eat(12),o=r&&this.eatExportStar(e),a=o&&this.maybeParseExportNamespaceSpecifier(e),l=r&&(!a||this.eat(12)),c=s||o;if(o&&!a){if(s&&this.unexpected(),t)throw this.raise(me.UnsupportedDecoratorExport,e);return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration")}const u=this.maybeParseExportNamedSpecifiers(e);s&&r&&!o&&!u&&this.unexpected(null,5),a&&l&&this.unexpected(null,98);let h;if(c||u){if(h=!1,t)throw this.raise(me.UnsupportedDecoratorExport,e);this.parseExportFrom(e,c)}else h=this.maybeParseExportDeclaration(e);if(c||u||h){var d;const f=e;if(this.checkExport(f,!0,!1,!!f.source),((d=f.declaration)==null?void 0:d.type)==="ClassDeclaration")this.maybeTakeDecorators(t,f.declaration,f);else if(t)throw this.raise(me.UnsupportedDecoratorExport,e);return this.finishNode(f,"ExportNamedDeclaration")}if(this.eat(65)){const f=e,p=this.parseExportDefaultExpression();if(f.declaration=p,p.type==="ClassDeclaration")this.maybeTakeDecorators(t,p,f);else if(t)throw this.raise(me.UnsupportedDecoratorExport,e);return this.checkExport(f,!0,!0),this.finishNode(f,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(e){return this.eat(55)}maybeParseExportDefaultSpecifier(e,t){if(t||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",t==null?void 0:t.loc.start);const i=t||this.parseIdentifier(!0),s=this.startNodeAtNode(i);return s.exported=i,e.specifiers=[this.finishNode(s,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(e){if(this.isContextual(93)){var t,i;(i=(t=e).specifiers)!=null||(t.specifiers=[]);const s=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),s.exported=this.parseModuleExportName(),e.specifiers.push(this.finishNode(s,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(e){if(this.match(5)){const t=e;t.specifiers||(t.specifiers=[]);const i=t.exportKind==="type";return t.specifiers.push(...this.parseExportSpecifiers(i)),t.source=null,t.declaration=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),!0}return!1}maybeParseExportDeclaration(e){return this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,this.hasPlugin("importAssertions")&&(e.assertions=[]),e.declaration=this.parseExportDeclaration(e),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;const e=this.nextTokenInLineStart();return this.isUnparsedContextual(e,"function")}parseExportDefaultExpression(){const e=this.startNode();if(this.match(68))return this.next(),this.parseFunction(e,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(e,13);if(this.match(80))return this.parseClass(e,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(me.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(me.UnsupportedDefaultExport,this.state.startLoc);const t=this.parseMaybeAssignAllowIn();return this.semicolon(),t}parseExportDeclaration(e){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){const{type:e}=this.state;if(Pn(e)){if(e===95&&!this.state.containsEsc||e===100)return!1;if((e===130||e===129)&&!this.state.containsEsc){const{type:s}=this.lookahead();if(Pn(s)&&s!==98||s===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;const t=this.nextTokenStart(),i=this.isUnparsedContextual(t,"from");if(this.input.charCodeAt(t)===44||Pn(this.state.type)&&i)return!0;if(this.match(65)&&i){const s=this.input.charCodeAt(this.nextTokenStartSince(t+4));return s===34||s===39}return!1}parseExportFrom(e,t){this.eatContextual(98)?(e.source=this.parseImportSource(),this.checkExport(e),this.maybeParseImportAttributes(e),this.checkJSONModuleImport(e)):t&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){const{type:e}=this.state;return e===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(me.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(me.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(me.UsingDeclarationExport,this.state.startLoc),!0):e===74||e===75||e===68||e===80||this.isLet()||this.isAsyncFunction()}checkExport(e,t,i,s){if(t){var r;if(i){if(this.checkDuplicateExports(e,"default"),this.hasPlugin("exportDefaultFrom")){var o;const a=e.declaration;a.type==="Identifier"&&a.name==="from"&&a.end-a.start===4&&!((o=a.extra)!=null&&o.parenthesized)&&this.raise(me.ExportDefaultFromAsIdentifier,a)}}else if((r=e.specifiers)!=null&&r.length)for(const a of e.specifiers){const{exported:l}=a,c=l.type==="Identifier"?l.name:l.value;if(this.checkDuplicateExports(a,c),!s&&a.local){const{local:u}=a;u.type!=="Identifier"?this.raise(me.ExportBindingIsString,a,{localName:u.value,exportName:c}):(this.checkReservedWord(u.name,u.loc.start,!0,!1),this.scope.checkLocalExport(u))}}else if(e.declaration){const a=e.declaration;if(a.type==="FunctionDeclaration"||a.type==="ClassDeclaration"){const{id:l}=a;if(!l)throw new Error("Assertion failure");this.checkDuplicateExports(e,l.name)}else if(a.type==="VariableDeclaration")for(const l of a.declarations)this.checkDeclaration(l.id)}}}checkDeclaration(e){if(e.type==="Identifier")this.checkDuplicateExports(e,e.name);else if(e.type==="ObjectPattern")for(const t of e.properties)this.checkDeclaration(t);else if(e.type==="ArrayPattern")for(const t of e.elements)t&&this.checkDeclaration(t);else e.type==="ObjectProperty"?this.checkDeclaration(e.value):e.type==="RestElement"?this.checkDeclaration(e.argument):e.type==="AssignmentPattern"&&this.checkDeclaration(e.left)}checkDuplicateExports(e,t){this.exportedIdentifiers.has(t)&&(t==="default"?this.raise(me.DuplicateDefaultExport,e):this.raise(me.DuplicateExport,e,{exportName:t})),this.exportedIdentifiers.add(t)}parseExportSpecifiers(e){const t=[];let i=!0;for(this.expect(5);!this.eat(8);){if(i)i=!1;else if(this.expect(12),this.eat(8))break;const s=this.isContextual(130),r=this.match(133),o=this.startNode();o.local=this.parseModuleExportName(),t.push(this.parseExportSpecifier(o,r,e,s))}return t}parseExportSpecifier(e,t,i,s){return this.eatContextual(93)?e.exported=this.parseModuleExportName():t?e.exported=CUe(e.local):e.exported||(e.exported=vg(e.local)),this.finishNode(e,"ExportSpecifier")}parseModuleExportName(){if(this.match(133)){const e=this.parseStringLiteral(this.state.value),t=XUe.exec(e.value);return t&&this.raise(me.ModuleExportNameHasLoneSurrogate,e,{surrogateCharCode:t[0].charCodeAt(0)}),e}return this.parseIdentifier(!0)}isJSONModuleImport(e){return e.assertions!=null?e.assertions.some(({key:t,value:i})=>i.value==="json"&&(t.type==="Identifier"?t.name==="type":t.value==="type")):!1}checkImportReflection(e){const{specifiers:t}=e,i=t.length===1?t[0].type:null;if(e.phase==="source")i!=="ImportDefaultSpecifier"&&this.raise(me.SourcePhaseImportRequiresDefault,t[0].loc.start);else if(e.phase==="defer")i!=="ImportNamespaceSpecifier"&&this.raise(me.DeferImportRequiresNamespace,t[0].loc.start);else if(e.module){var s;i!=="ImportDefaultSpecifier"&&this.raise(me.ImportReflectionNotBinding,t[0].loc.start),((s=e.assertions)==null?void 0:s.length)>0&&this.raise(me.ImportReflectionHasAssertion,t[0].loc.start)}}checkJSONModuleImport(e){if(this.isJSONModuleImport(e)&&e.type!=="ExportAllDeclaration"){const{specifiers:t}=e;if(t!=null){const i=t.find(s=>{let r;if(s.type==="ExportSpecifier"?r=s.local:s.type==="ImportSpecifier"&&(r=s.imported),r!==void 0)return r.type==="Identifier"?r.name!=="default":r.value!=="default"});i!==void 0&&this.raise(me.ImportJSONBindingNotDefault,i.loc.start)}}}isPotentialImportPhase(e){return e?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(e,t,i,s){t||(i==="module"?(this.expectPlugin("importReflection",s),e.module=!0):this.hasPlugin("importReflection")&&(e.module=!1),i==="source"?(this.expectPlugin("sourcePhaseImports",s),e.phase="source"):i==="defer"?(this.expectPlugin("deferredImportEvaluation",s),e.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(e.phase=null))}parseMaybeImportPhase(e,t){if(!this.isPotentialImportPhase(t))return this.applyImportPhase(e,t,null),null;const i=this.parseIdentifier(!0),{type:s}=this.state;return(Th(s)?s!==98||this.lookaheadCharCode()===102:s!==12)?(this.resetPreviousIdentifierLeadingComments(i),this.applyImportPhase(e,t,i.name,i.loc.start),null):(this.applyImportPhase(e,t,null),i)}isPrecedingIdImportPhase(e){const{type:t}=this.state;return Pn(t)?t!==98||this.lookaheadCharCode()===102:t!==12}parseImport(e){return this.match(133)?this.parseImportSourceAndAttributes(e):this.parseImportSpecifiersAndAfter(e,this.parseMaybeImportPhase(e,!1))}parseImportSpecifiersAndAfter(e,t){e.specifiers=[];const s=!this.maybeParseDefaultImportSpecifier(e,t)||this.eat(12),r=s&&this.maybeParseStarImportSpecifier(e);return s&&!r&&this.parseNamedImportSpecifiers(e),this.expectContextual(98),this.parseImportSourceAndAttributes(e)}parseImportSourceAndAttributes(e){var t;return(t=e.specifiers)!=null||(e.specifiers=[]),e.source=this.parseImportSource(),this.maybeParseImportAttributes(e),this.checkImportReflection(e),this.checkJSONModuleImport(e),this.semicolon(),this.finishNode(e,"ImportDeclaration")}parseImportSource(){return this.match(133)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(e,t,i){t.local=this.parseIdentifier(),e.specifiers.push(this.finishImportSpecifier(t,i))}finishImportSpecifier(e,t,i=8201){return this.checkLVal(e.local,{type:t},i),this.finishNode(e,t)}parseImportAttributes(){this.expect(5);const e=[],t=new Set;do{if(this.match(8))break;const i=this.startNode(),s=this.state.value;if(t.has(s)&&this.raise(me.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:s}),t.add(s),this.match(133)?i.key=this.parseStringLiteral(s):i.key=this.parseIdentifier(!0),this.expect(14),!this.match(133))throw this.raise(me.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),e.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return this.expect(8),e}parseModuleAttributes(){const e=[],t=new Set;do{const i=this.startNode();if(i.key=this.parseIdentifier(!0),i.key.name!=="type"&&this.raise(me.ModuleAttributeDifferentFromType,i.key),t.has(i.key.name)&&this.raise(me.ModuleAttributesWithDuplicateKeys,i.key,{key:i.key.name}),t.add(i.key.name),this.expect(14),!this.match(133))throw this.raise(me.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),e.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return e}maybeParseImportAttributes(e){let t,i=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?t=this.parseModuleAttributes():(this.expectImportAttributesPlugin(),t=this.parseImportAttributes()),i=!0}else if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.hasPlugin("importAttributes")?(this.getPluginOption("importAttributes","deprecatedAssertSyntax")!==!0&&this.raise(me.ImportAttributesUseAssert,this.state.startLoc),this.addExtra(e,"deprecatedAssertSyntax",!0)):this.expectOnePlugin(["importAttributes","importAssertions"]),this.next(),t=this.parseImportAttributes();else if(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))t=[];else if(this.hasPlugin("moduleAttributes"))t=[];else return;!i&&this.hasPlugin("importAssertions")?e.assertions=t:e.attributes=t}maybeParseDefaultImportSpecifier(e,t){if(t){const i=this.startNodeAtNode(t);return i.local=t,e.specifiers.push(this.finishImportSpecifier(i,"ImportDefaultSpecifier")),!0}else if(Th(this.state.type))return this.parseImportSpecifierLocal(e,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(e){if(this.match(55)){const t=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(e,t,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(e){let t=!0;for(this.expect(5);!this.eat(8);){if(t)t=!1;else{if(this.eat(14))throw this.raise(me.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}const i=this.startNode(),s=this.match(133),r=this.isContextual(130);i.imported=this.parseModuleExportName();const o=this.parseImportSpecifier(i,s,e.importKind==="type"||e.importKind==="typeof",r,void 0);e.specifiers.push(o)}}parseImportSpecifier(e,t,i,s,r){if(this.eatContextual(93))e.local=this.parseIdentifier();else{const{imported:o}=e;if(t)throw this.raise(me.ImportBindingIsString,e,{importName:o.value});this.checkReservedWord(o.name,e.loc.start,!0,!0),e.local||(e.local=vg(o))}return this.finishImportSpecifier(e,"ImportSpecifier",r)}isThisParam(e){return e.type==="Identifier"&&e.name==="this"}}let Gbe=class extends ZUe{constructor(e,t,i){e=qUe(e),super(e,t),this.options=e,this.initializeScopes(),this.plugins=i,this.filename=e.sourceFilename}getScopeHandler(){return $Z}parse(){this.enterInitialScopes();const e=this.startNode(),t=this.startNode();return this.nextToken(),e.errors=null,this.parseTopLevel(e,t),e.errors=this.state.errors,e.comments.length=this.state.commentsLen,e}};function QUe(n,e){var t;if(((t=e)==null?void 0:t.sourceType)==="unambiguous"){e=Object.assign({},e);try{e.sourceType="module";const i=ME(e,n),s=i.parse();if(i.sawUnambiguousESM)return s;if(i.ambiguousScriptDifferentAst)try{return e.sourceType="script",ME(e,n).parse()}catch{}else s.program.sourceType="script";return s}catch(i){try{return e.sourceType="script",ME(e,n).parse()}catch{}throw i}}else return ME(e,n).parse()}function JUe(n,e){const t=ME(e,n);return t.options.strictMode&&(t.state.strict=!0),t.getExpression()}function eje(n){const e={};for(const t of Object.keys(n))e[t]=yp(n[t]);return e}const tje=eje(Pze);function ME(n,e){let t=Gbe;const i=new Map;if(n!=null&&n.plugins){for(const s of n.plugins){let r,o;typeof s=="string"?r=s:[r,o]=s,i.has(r)||i.set(r,o||{})}UUe(i),t=ije(i)}return new t(n,e,i)}const pae=new Map;function ije(n){const e=[];for(const s of jUe)n.has(s)&&e.push(s);const t=e.join("|");let i=pae.get(t);if(!i){i=Gbe;for(const s of e)i=Kbe[s](i);pae.set(t,i)}return i}var Oy=$6.parse=QUe,XI=$6.parseExpression=JUe;$6.tokTypes=tje;class nje{constructor(){this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:e=>this.replacement=e}}replace(e,t,i,s){e&&(i!==null?e[t][i]=s:e[t]=s)}remove(e,t,i){e&&(i!==null?e[t].splice(i,1):delete e[t])}}class sje extends nje{constructor(e,t){super(),this.enter=e,this.leave=t}visit(e,t,i,s){if(e){if(this.enter){const r=this.should_skip,o=this.should_remove,a=this.replacement;this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.enter.call(this.context,e,t,i,s),this.replacement&&(e=this.replacement,this.replace(t,i,s,e)),this.should_remove&&this.remove(t,i,s);const l=this.should_skip,c=this.should_remove;if(this.should_skip=r,this.should_remove=o,this.replacement=a,l)return e;if(c)return null}for(const r in e){const o=e[r];if(typeof o=="object")if(Array.isArray(o))for(let a=0;a<o.length;a+=1)o[a]!==null&&typeof o[a].type=="string"&&(this.visit(o[a],e,r,a)||a--);else o!==null&&typeof o.type=="string"&&this.visit(o,e,r,null)}if(this.leave){const r=this.replacement,o=this.should_remove;this.replacement=null,this.should_remove=!1,this.leave.call(this.context,e,t,i,s),this.replacement&&(e=this.replacement,this.replace(t,i,s,e)),this.should_remove&&this.remove(t,i,s);const a=this.should_remove;if(this.replacement=r,this.should_remove=o,a)return null}}return e}}function U6(n,{enter:e,leave:t}){return new sje(e,t).visit(n,null)}function Hx(n,e,t=!1,i=[],s=Object.create(null)){const r=n.type==="Program"?n.body[0].type==="ExpressionStatement"&&n.body[0].expression:n;U6(n,{enter(o,a){if(a&&i.push(a),a&&a.type.startsWith("TS")&&!qZ.includes(a.type))return this.skip();if(o.type==="Identifier"){const l=!!s[o.name],c=UZ(o,a,i);(t||c&&!l)&&e(o,a,i,c,l)}else if(o.type==="ObjectProperty"&&(a==null?void 0:a.type)==="ObjectPattern")o.inPattern=!0;else if(Jm(o))o.scopeIds?o.scopeIds.forEach(l=>CH(l,s)):jZ(o,l=>MA(o,l,s));else if(o.type==="BlockStatement")o.scopeIds?o.scopeIds.forEach(l=>CH(l,s)):Ybe(o,l=>MA(o,l,s));else if(o.type==="CatchClause"&&o.param)for(const l of Pc(o.param))MA(o,l,s);else Zbe(o)&&Qbe(o,!1,l=>MA(o,l,s))},leave(o,a){if(a&&i.pop(),o!==r&&o.scopeIds)for(const l of o.scopeIds)s[l]--,s[l]===0&&delete s[l]}})}function UZ(n,e,t){if(!e)return!0;if(n.name==="arguments")return!1;if(rje(n,e))return!0;switch(e.type){case"AssignmentExpression":case"AssignmentPattern":return!0;case"ObjectPattern":case"ArrayPattern":return $x(e,t)}return!1}function $x(n,e){if(n&&(n.type==="ObjectProperty"||n.type==="ArrayPattern")){let t=e.length;for(;t--;){const i=e[t];if(i.type==="AssignmentExpression")return!0;if(i.type!=="ObjectProperty"&&!i.type.endsWith("Pattern"))break}}return!1}function Xbe(n){let e=n.length;for(;e--;){const t=n[e];if(t.type==="NewExpression")return!0;if(t.type!=="MemberExpression")break}return!1}function jZ(n,e){for(const t of n.params)for(const i of Pc(t))e(i)}function Ybe(n,e){for(const t of n.body)if(t.type==="VariableDeclaration"){if(t.declare)continue;for(const i of t.declarations)for(const s of Pc(i.id))e(s)}else if(t.type==="FunctionDeclaration"||t.type==="ClassDeclaration"){if(t.declare||!t.id)continue;e(t.id)}else Zbe(t)&&Qbe(t,!0,e)}function Zbe(n){return n.type==="ForOfStatement"||n.type==="ForInStatement"||n.type==="ForStatement"}function Qbe(n,e,t){const i=n.type==="ForStatement"?n.init:n.left;if(i&&i.type==="VariableDeclaration"&&(i.kind==="var"?e:!e))for(const s of i.declarations)for(const r of Pc(s.id))t(r)}function Pc(n,e=[]){switch(n.type){case"Identifier":e.push(n);break;case"MemberExpression":let t=n;for(;t.type==="MemberExpression";)t=t.object;e.push(t);break;case"ObjectPattern":for(const i of n.properties)i.type==="RestElement"?Pc(i.argument,e):Pc(i.value,e);break;case"ArrayPattern":n.elements.forEach(i=>{i&&Pc(i,e)});break;case"RestElement":Pc(n.argument,e);break;case"AssignmentPattern":Pc(n.left,e);break}return e}function CH(n,e){n in e?e[n]++:e[n]=1}function MA(n,e,t){const{name:i}=e;n.scopeIds&&n.scopeIds.has(i)||(CH(i,t),(n.scopeIds||(n.scopeIds=new Set)).add(i))}const Jm=n=>/Function(?:Expression|Declaration)$|Method$/.test(n.type),zx=n=>n&&(n.type==="ObjectProperty"||n.type==="ObjectMethod")&&!n.computed,Jbe=(n,e)=>zx(e)&&e.key===n;function rje(n,e,t){switch(e.type){case"MemberExpression":case"OptionalMemberExpression":return e.property===n?!!e.computed:e.object===n;case"JSXMemberExpression":return e.object===n;case"VariableDeclarator":return e.init===n;case"ArrowFunctionExpression":return e.body===n;case"PrivateName":return!1;case"ClassMethod":case"ClassPrivateMethod":case"ObjectMethod":return e.key===n?!!e.computed:!1;case"ObjectProperty":return e.key===n?!!e.computed:!t;case"ClassProperty":return e.key===n?!!e.computed:!0;case"ClassPrivateProperty":return e.key!==n;case"ClassDeclaration":case"ClassExpression":return e.superClass===n;case"AssignmentExpression":return e.right===n;case"AssignmentPattern":return e.right===n;case"LabeledStatement":return!1;case"CatchClause":return!1;case"RestElement":return!1;case"BreakStatement":case"ContinueStatement":return!1;case"FunctionDeclaration":case"FunctionExpression":return!1;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"ExportSpecifier":return e.local===n;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ImportAttribute":return!1;case"JSXAttribute":return!1;case"ObjectPattern":case"ArrayPattern":return!1;case"MetaProperty":return!1;case"ObjectTypeProperty":return e.key!==n;case"TSEnumMember":return e.id!==n;case"TSPropertySignature":return e.key===n?!!e.computed:!0}return!0}const qZ=["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"];function Jc(n){return qZ.includes(n.type)?Jc(n.expression):n}const Ko=n=>n.type===4&&n.isStatic;function KZ(n){switch(n){case"Teleport":case"teleport":return db;case"Suspense":case"suspense":return Bx;case"KeepAlive":case"keep-alive":return UI;case"BaseTransition":case"base-transition":return CZ}}const oje=/^\d|[^\$\w\xA0-\uFFFF]/,Ng=n=>!oje.test(n),aje=/[A-Za-z_$\xA0-\uFFFF]/,lje=/[\.\?\w$\xA0-\uFFFF]/,cje=/\s+[.[]\s*|\s*[.[]\s+/g,j6=n=>n.type===4?n.content:n.loc.source,uje=n=>{const e=j6(n).trim().replace(cje,a=>a.trim());let t=0,i=[],s=0,r=0,o=null;for(let a=0;a<e.length;a++){const l=e.charAt(a);switch(t){case 0:if(l==="[")i.push(t),t=1,s++;else if(l==="(")i.push(t),t=2,r++;else if(!(a===0?aje:lje).test(l))return!1;break;case 1:l==="'"||l==='"'||l==="`"?(i.push(t),t=3,o=l):l==="["?s++:l==="]"&&(--s||(t=i.pop()));break;case 2:if(l==="'"||l==='"'||l==="`")i.push(t),t=3,o=l;else if(l==="(")r++;else if(l===")"){if(a===e.length-1)return!1;--r||(t=i.pop())}break;case 3:l===o&&(t=i.pop(),o=null);break}}return!s&&!r},eye=(n,e)=>{try{let t=n.ast||XI(j6(n),{plugins:e.expressionPlugins?[...e.expressionPlugins,"typescript"]:["typescript"]});return t=Jc(t),t.type==="MemberExpression"||t.type==="OptionalMemberExpression"||t.type==="Identifier"&&t.name!=="undefined"}catch{return!1}},GZ=eye,hje=/^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,dje=n=>hje.test(j6(n)),tye=(n,e)=>{try{let t=n.ast||XI(j6(n),{plugins:e.expressionPlugins?[...e.expressionPlugins,"typescript"]:["typescript"]});return t.type==="Program"&&(t=t.body[0],t.type==="ExpressionStatement"&&(t=t.expression)),t=Jc(t),t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"}catch{return!1}},iye=tye;function SH(n,e,t=e.length){return XZ({offset:n.offset,line:n.line,column:n.column},e,t)}function XZ(n,e,t=e.length){let i=0,s=-1;for(let r=0;r<t;r++)e.charCodeAt(r)===10&&(i++,s=r);return n.offset+=t,n.line+=i,n.column=s===-1?n.column+t:t-s,n}function xH(n,e){if(!n)throw new Error(e||"unexpected compiler condition")}function Jr(n,e,t=!1){for(let i=0;i<n.props.length;i++){const s=n.props[i];if(s.type===7&&(t||s.exp)&&(wn(e)?s.name===e:e.test(s.name)))return s}}function rc(n,e,t=!1,i=!1){for(let s=0;s<n.props.length;s++){const r=n.props[s];if(r.type===6){if(t)continue;if(r.name===e&&(r.value||i))return r}else if(r.name==="bind"&&(r.exp||i)&&pf(r.arg,e))return r}}function pf(n,e){return!!(n&&Ko(n)&&n.content===e)}function q6(n){return n.props.some(e=>e.type===7&&e.name==="bind"&&(!e.arg||e.arg.type!==4||!e.arg.isStatic))}function gk(n){return n.type===5||n.type===2}function YZ(n){return n.type===7&&n.name==="slot"}function FS(n){return n.type===1&&n.tagType===3}function BS(n){return n.type===1&&n.tagType===2}const fje=new Set([RS,Vx]);function nye(n,e=[]){if(n&&!wn(n)&&n.type===14){const t=n.callee;if(!wn(t)&&fje.has(t))return nye(n.arguments[0],e.concat(n))}return[n,e]}function YI(n,e,t){let i,s=n.type===13?n.props:n.arguments[2],r=[],o;if(s&&!wn(s)&&s.type===14){const a=nye(s);s=a[0],r=a[1],o=r[r.length-1]}if(s==null||wn(s))i=Ql([e]);else if(s.type===14){const a=s.arguments[0];!wn(a)&&a.type===15?gae(e,a)||a.properties.unshift(e):s.callee===F6?i=ui(t.helper(Py),[Ql([e]),s]):s.arguments.unshift(Ql([e])),!i&&(i=s)}else s.type===15?(gae(e,s)||s.properties.unshift(e),i=s):(i=ui(t.helper(Py),[Ql([e]),s]),o&&o.callee===Vx&&(o=r[r.length-2]));n.type===13?o?o.arguments[0]=i:n.props=i:o?o.arguments[0]=i:n.arguments[2]=i}function gae(n,e){let t=!1;if(n.key.type===4){const i=n.key.content;t=e.properties.some(s=>s.key.type===4&&s.key.content===i)}return t}function ZI(n,e){return`_${e}_${n.replace(/[^\w]/g,(t,i)=>t==="-"?"_":n.charCodeAt(i).toString())}`}function Wl(n,e){if(!n||Object.keys(e).length===0)return!1;switch(n.type){case 1:for(let t=0;t<n.props.length;t++){const i=n.props[t];if(i.type===7&&(Wl(i.arg,e)||Wl(i.exp,e)))return!0}return n.children.some(t=>Wl(t,e));case 11:return Wl(n.source,e)?!0:n.children.some(t=>Wl(t,e));case 9:return n.branches.some(t=>Wl(t,e));case 10:return Wl(n.condition,e)?!0:n.children.some(t=>Wl(t,e));case 4:return!n.isStatic&&Ng(n.content)&&!!e[n.content];case 8:return n.children.some(t=>k_(t)&&Wl(t,e));case 5:case 12:return Wl(n.content,e);case 2:case 3:case 20:return!1;default:return!1}}function sye(n){return n.type===14&&n.callee===W6?n.arguments[1].returns:n}const rye=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,oye={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:AR,isPreTag:AR,isCustomElement:AR,onError:DZ,onWarn:Tbe,comments:!0,prefixIdentifiers:!1};let Ls=oye,_O=null,bg="",wa=null,Hn=null,pu="",wp=-1,uv=-1,vO=0,Rm=!1,LH=null;const yr=[],Ps=new mze(yr,{onerr:Xa,ontext(n,e){OA(va(n,e),n,e)},ontextentity(n,e,t){OA(n,e,t)},oninterpolation(n,e){if(Rm)return OA(va(n,e),n,e);let t=n+Ps.delimiterOpen.length,i=e-Ps.delimiterClose.length;for(;Tc(bg.charCodeAt(t));)t++;for(;Tc(bg.charCodeAt(i-1));)i--;let s=va(t,i);s.includes("&")&&(s=gze(s)),EH({type:5,content:WR(s,!1,Or(t,i)),loc:Or(n,e)})},onopentagname(n,e){const t=va(n,e);wa={type:1,tag:t,ns:Ls.getNamespace(t,yr[0],Ls.ns),tagType:0,props:[],children:[],loc:Or(n-1,e),codegenNode:void 0}},onopentagend(n){_ae(n)},onclosetag(n,e){const t=va(n,e);if(!Ls.isVoidTag(t)){let i=!1;for(let s=0;s<yr.length;s++)if(yr[s].tag.toLowerCase()===t.toLowerCase()){i=!0,s>0&&Xa(24,yr[0].loc.start.offset);for(let o=0;o<=s;o++){const a=yr.shift();BR(a,e,o<s)}break}i||Xa(23,aye(n,60))}},onselfclosingtag(n){const e=wa.tag;wa.isSelfClosing=!0,_ae(n),yr[0]&&yr[0].tag===e&&BR(yr.shift(),n)},onattribname(n,e){Hn={type:6,name:va(n,e),nameLoc:Or(n,e),value:void 0,loc:Or(n)}},ondirname(n,e){const t=va(n,e),i=t==="."||t===":"?"bind":t==="@"?"on":t==="#"?"slot":t.slice(2);if(!Rm&&i===""&&Xa(26,n),Rm||i==="")Hn={type:6,name:t,nameLoc:Or(n,e),value:void 0,loc:Or(n)};else if(Hn={type:7,name:i,rawName:t,exp:void 0,arg:void 0,modifiers:t==="."?[gt("prop")]:[],loc:Or(n)},i==="pre"){Rm=Ps.inVPre=!0,LH=wa;const s=wa.props;for(let r=0;r<s.length;r++)s[r].type===7&&(s[r]=xje(s[r]))}},ondirarg(n,e){if(n===e)return;const t=va(n,e);if(Rm)Hn.name+=t,Yv(Hn.nameLoc,e);else{const i=t[0]!=="[";Hn.arg=WR(i?t:t.slice(1,-1),i,Or(n,e),i?3:0)}},ondirmodifier(n,e){const t=va(n,e);if(Rm)Hn.name+="."+t,Yv(Hn.nameLoc,e);else if(Hn.name==="slot"){const i=Hn.arg;i&&(i.content+="."+t,Yv(i.loc,e))}else{const i=gt(t,!0,Or(n,e));Hn.modifiers.push(i)}},onattribdata(n,e){pu+=va(n,e),wp<0&&(wp=n),uv=e},onattribentity(n,e,t){pu+=n,wp<0&&(wp=e),uv=t},onattribnameend(n){const e=Hn.loc.start.offset,t=va(e,n);Hn.type===7&&(Hn.rawName=t),wa.props.some(i=>(i.type===7?i.rawName:i.name)===t)&&Xa(2,e)},onattribend(n,e){if(wa&&Hn){if(Yv(Hn.loc,e),n!==0)if(Hn.type===6)Hn.name==="class"&&(pu=cye(pu).trim()),n===1&&!pu&&Xa(13,e),Hn.value={type:2,content:pu,loc:n===1?Or(wp,uv):Or(wp-1,uv+1)},Ps.inSFCRoot&&wa.tag==="template"&&Hn.name==="lang"&&pu&&pu!=="html"&&Ps.enterRCDATA(fO("</template"),0);else{let t=0;Hn.name==="for"?t=3:Hn.name==="slot"?t=1:Hn.name==="on"&&pu.includes(";")&&(t=2),Hn.exp=WR(pu,!1,Or(wp,uv),0,t),Hn.name==="for"&&(Hn.forParseResult=gje(Hn.exp))}(Hn.type!==7||Hn.name!=="pre")&&wa.props.push(Hn)}pu="",wp=uv=-1},oncomment(n,e){Ls.comments&&EH({type:3,content:va(n,e),loc:Or(n-4,e+3)})},onend(){const n=bg.length;if(Ps.state!==1)switch(Ps.state){case 5:case 8:Xa(5,n);break;case 3:case 4:Xa(25,Ps.sectionStart);break;case 28:Ps.currentSequence===Bo.CdataEnd?Xa(6,n):Xa(7,n);break;case 6:case 7:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:Xa(9,n);break}for(let e=0;e<yr.length;e++)BR(yr[e],n-1),Xa(24,yr[e].loc.start.offset)},oncdata(n,e){yr[0].ns!==0?OA(va(n,e),n,e):Xa(1,n-9)},onprocessinginstruction(n){(yr[0]?yr[0].ns:Ls.ns)===0&&Xa(21,n-1)}}),mae=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,pje=/^\(|\)$/g;function gje(n){const e=n.loc,t=n.content,i=t.match(rye);if(!i)return;const[,s,r]=i,o=(h,d,f=!1)=>{const p=e.start.offset+d,g=p+h.length;return WR(h,!1,Or(p,g),0,f?1:0)},a={source:o(r.trim(),t.indexOf(r,s.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let l=s.trim().replace(pje,"").trim();const c=s.indexOf(l),u=l.match(mae);if(u){l=l.replace(mae,"").trim();const h=u[1].trim();let d;if(h&&(d=t.indexOf(h,c+l.length),a.key=o(h,d,!0)),u[2]){const f=u[2].trim();f&&(a.index=o(f,t.indexOf(f,a.key?d+h.length:c+l.length),!0))}}return l&&(a.value=o(l,c,!0)),a}function va(n,e){return bg.slice(n,e)}function _ae(n){Ps.inSFCRoot&&(wa.innerLoc=Or(n+1,n+1)),EH(wa);const{tag:e,ns:t}=wa;t===0&&Ls.isPreTag(e)&&vO++,Ls.isVoidTag(e)?BR(wa,n):(yr.unshift(wa),(t===1||t===2)&&(Ps.inXML=!0)),wa=null}function OA(n,e,t){const i=yr[0]||_O,s=i.children[i.children.length-1];s&&s.type===2?(s.content+=n,Yv(s.loc,t)):i.children.push({type:2,content:n,loc:Or(e,t)})}function BR(n,e,t=!1){t?Yv(n.loc,aye(e,60)):Yv(n.loc,mje(e,62)+1),Ps.inSFCRoot&&(n.children.length?n.innerLoc.end=Lf({},n.children[n.children.length-1].loc.end):n.innerLoc.end=Lf({},n.innerLoc.start),n.innerLoc.source=va(n.innerLoc.start.offset,n.innerLoc.end.offset));const{tag:i,ns:s}=n;Rm||(i==="slot"?n.tagType=2:vje(n)?n.tagType=3:bje(n)&&(n.tagType=1)),Ps.inRCDATA||(n.children=lye(n.children,n.tag)),s===0&&Ls.isPreTag(i)&&vO--,LH===n&&(Rm=Ps.inVPre=!1,LH=null),Ps.inXML&&(yr[0]?yr[0].ns:Ls.ns)===0&&(Ps.inXML=!1)}function mje(n,e){let t=n;for(;bg.charCodeAt(t)!==e&&t<bg.length-1;)t++;return t}function aye(n,e){let t=n;for(;bg.charCodeAt(t)!==e&&t>=0;)t--;return t}const _je=new Set(["if","else","else-if","for","slot"]);function vje({tag:n,props:e}){if(n==="template"){for(let t=0;t<e.length;t++)if(e[t].type===7&&_je.has(e[t].name))return!0}return!1}function bje({tag:n,props:e}){if(Ls.isCustomElement(n))return!1;if(n==="component"||yje(n.charCodeAt(0))||KZ(n)||Ls.isBuiltInComponent&&Ls.isBuiltInComponent(n)||Ls.isNativeTag&&!Ls.isNativeTag(n))return!0;for(let t=0;t<e.length;t++){const i=e[t];if(i.type===6&&i.name==="is"&&i.value&&i.value.content.startsWith("vue:"))return!0}return!1}function yje(n){return n>64&&n<91}const wje=/\r\n/g;function lye(n,e){const t=Ls.whitespace!=="preserve";let i=!1;for(let s=0;s<n.length;s++){const r=n[s];if(r.type===2)if(vO)r.content=r.content.replace(wje,` +`);else if(Cje(r.content)){const o=n[s-1]&&n[s-1].type,a=n[s+1]&&n[s+1].type;!o||!a||t&&(o===3&&(a===3||a===1)||o===1&&(a===3||a===1&&Sje(r.content)))?(i=!0,n[s]=null):r.content=" "}else t&&(r.content=cye(r.content))}if(vO&&e&&Ls.isPreTag(e)){const s=n[0];s&&s.type===2&&(s.content=s.content.replace(/^\r?\n/,""))}return i?n.filter(Boolean):n}function Cje(n){for(let e=0;e<n.length;e++)if(!Tc(n.charCodeAt(e)))return!1;return!0}function Sje(n){for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);if(t===10||t===13)return!0}return!1}function cye(n){let e="",t=!1;for(let i=0;i<n.length;i++)Tc(n.charCodeAt(i))?t||(e+=" ",t=!0):(e+=n[i],t=!1);return e}function EH(n){(yr[0]||_O).children.push(n)}function Or(n,e){return{start:Ps.getPos(n),end:e==null?e:Ps.getPos(e),source:e==null?e:va(n,e)}}function Yv(n,e){n.end=Ps.getPos(e),n.source=va(n.start.offset,e)}function xje(n){const e={type:6,name:n.rawName,nameLoc:Or(n.loc.start.offset,n.loc.start.offset+n.rawName.length),value:void 0,loc:n.loc};if(n.exp){const t=n.exp.loc;t.end.offset<n.loc.end.offset&&(t.start.offset--,t.start.column--,t.end.offset++,t.end.column++),e.value={type:2,content:n.exp.content,loc:t}}return e}function WR(n,e=!1,t,i=0,s=0){const r=gt(n,e,t,i);if(!e&&Ls.prefixIdentifiers&&s!==3&&n.trim()){if(Ng(n))return r.ast=null,r;try{const o=Ls.expressionPlugins,a={plugins:o?[...o,"typescript"]:["typescript"]};s===2?r.ast=Oy(` ${n} `,a).program:s===1?r.ast=XI(`(${n})=>{}`,a):r.ast=XI(`(${n})`,a)}catch(o){r.ast=!1,Xa(45,t.start.offset,o.message)}}return r}function Xa(n,e,t){Ls.onError(Bn(n,Or(e,e),void 0,t))}function Lje(){Ps.reset(),wa=null,Hn=null,pu="",wp=-1,uv=-1,yr.length=0}function K6(n,e){if(Lje(),bg=n,Ls=Lf({},oye),e){let s;for(s in e)e[s]!=null&&(Ls[s]=e[s])}Ls.decodeEntities&&console.warn("[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds."),Ps.mode=Ls.parseMode==="html"?1:Ls.parseMode==="sfc"?2:0,Ps.inXML=Ls.ns===1||Ls.ns===2;const t=e&&e.delimiters;t&&(Ps.delimiterOpen=fO(t[0]),Ps.delimiterClose=fO(t[1]));const i=_O=y0([],n);return Ps.parse(bg),i.loc=Or(0,n.length),i.children=lye(i.children),_O=null,i}function Eje(n,e){VR(n,void 0,e,uye(n,n.children[0]))}function uye(n,e){const{children:t}=n;return t.length===1&&e.type===1&&!BS(e)}function VR(n,e,t,i=!1,s=!1){const{children:r}=n,o=[];for(let u=0;u<r.length;u++){const h=r[u];if(h.type===1&&h.tagType===0){const d=i?0:Jl(h,t);if(d>0){if(d>=2){h.codegenNode.patchFlag=-1,o.push(h);continue}}else{const f=h.codegenNode;if(f.type===13){const p=f.patchFlag;if((p===void 0||p===512||p===1)&&dye(h,t)>=2){const g=fye(h);g&&(f.props=t.hoist(g))}f.dynamicProps&&(f.dynamicProps=t.hoist(f.dynamicProps))}}}else if(h.type===12&&(i?0:Jl(h,t))>=2){o.push(h);continue}if(h.type===1){const d=h.tagType===1;d&&t.scopes.vSlot++,VR(h,n,t,!1,s),d&&t.scopes.vSlot--}else if(h.type===11)VR(h,n,t,h.children.length===1,!0);else if(h.type===9)for(let d=0;d<h.branches.length;d++)VR(h.branches[d],n,t,h.branches[d].children.length===1,s)}let a=!1;if(o.length===r.length&&n.type===1){if(n.tagType===0&&n.codegenNode&&n.codegenNode.type===13&&Lo(n.codegenNode.children))n.codegenNode.children=l(Ef(n.codegenNode.children)),a=!0;else if(n.tagType===1&&n.codegenNode&&n.codegenNode.type===13&&n.codegenNode.children&&!Lo(n.codegenNode.children)&&n.codegenNode.children.type===15){const u=c(n.codegenNode,"default");u&&(u.returns=l(Ef(u.returns)),a=!0)}else if(n.tagType===3&&e&&e.type===1&&e.tagType===1&&e.codegenNode&&e.codegenNode.type===13&&e.codegenNode.children&&!Lo(e.codegenNode.children)&&e.codegenNode.children.type===15){const u=Jr(n,"slot",!0),h=u&&u.arg&&c(e.codegenNode,u.arg);h&&(h.returns=l(Ef(h.returns)),a=!0)}}if(!a)for(const u of o)u.codegenNode=t.cache(u.codegenNode);function l(u){const h=t.cache(u);return s&&t.hmr&&(h.needArraySpread=!0),h}function c(u,h){if(u.children&&!Lo(u.children)&&u.children.type===15){const d=u.children.properties.find(f=>f.key===h||f.key.content===h);return d&&d.value}}o.length&&t.transformHoist&&t.transformHoist(r,t,n)}function Jl(n,e){const{constantCache:t}=e;switch(n.type){case 1:if(n.tagType!==0)return 0;const i=t.get(n);if(i!==void 0)return i;const s=n.codegenNode;if(s.type!==13||s.isBlock&&n.tag!=="svg"&&n.tag!=="foreignObject"&&n.tag!=="math")return 0;if(s.patchFlag===void 0){let o=3;const a=dye(n,e);if(a===0)return t.set(n,0),0;a<o&&(o=a);for(let l=0;l<n.children.length;l++){const c=Jl(n.children[l],e);if(c===0)return t.set(n,0),0;c<o&&(o=c)}if(o>1)for(let l=0;l<n.props.length;l++){const c=n.props[l];if(c.type===7&&c.name==="bind"&&c.exp){const u=Jl(c.exp,e);if(u===0)return t.set(n,0),0;u<o&&(o=u)}}if(s.isBlock){for(let l=0;l<n.props.length;l++)if(n.props[l].type===7)return t.set(n,0),0;e.removeHelper(J1),e.removeHelper(My(e.inSSR,s.isComponent)),s.isBlock=!1,e.helper(Ry(e.inSSR,s.isComponent))}return t.set(n,o),o}else return t.set(n,0),0;case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return Jl(n.content,e);case 4:return n.constType;case 8:let r=3;for(let o=0;o<n.children.length;o++){const a=n.children[o];if(wn(a)||E_(a))continue;const l=Jl(a,e);if(l===0)return 0;l<r&&(r=l)}return r;case 20:return 2;default:return 0}}const kje=new Set([M6,O6,RS,Vx]);function hye(n,e){if(n.type===14&&!wn(n.callee)&&kje.has(n.callee)){const t=n.arguments[0];if(t.type===4)return Jl(t,e);if(t.type===14)return hye(t,e)}return 0}function dye(n,e){let t=3;const i=fye(n);if(i&&i.type===15){const{properties:s}=i;for(let r=0;r<s.length;r++){const{key:o,value:a}=s[r],l=Jl(o,e);if(l===0)return l;l<t&&(t=l);let c;if(a.type===4?c=Jl(a,e):a.type===14?c=hye(a,e):c=0,c===0)return c;c<t&&(t=c)}}return t}function fye(n){const e=n.codegenNode;if(e.type===13)return e.props}function fN(n,{filename:e="",prefixIdentifiers:t=!1,hoistStatic:i=!1,hmr:s=!1,cacheHandlers:r=!1,nodeTransforms:o=[],directiveTransforms:a={},transformHoist:l=null,isBuiltInComponent:c=H9,isCustomElement:u=H9,expressionPlugins:h=[],scopeId:d=null,slotted:f=!0,ssr:p=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:_=L$e,inline:b=!1,isTS:w=!1,onError:C=DZ,onWarn:S=Tbe,compatConfig:x}){const k=e.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),L={filename:e,selfName:k&&Q1(Zl(k[1])),prefixIdentifiers:t,hoistStatic:i,hmr:s,cacheHandlers:r,nodeTransforms:o,directiveTransforms:a,transformHoist:l,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:h,scopeId:d,slotted:f,ssr:p,inSSR:g,ssrCssVars:m,bindingMetadata:_,inline:b,isTS:w,onError:C,onWarn:S,compatConfig:x,root:n,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:n,childIndex:0,inVOnce:!1,helper(I){const T=L.helpers.get(I)||0;return L.helpers.set(I,T+1),I},removeHelper(I){const T=L.helpers.get(I);if(T){const N=T-1;N?L.helpers.set(I,N):L.helpers.delete(I)}},helperString(I){return`_${$l[L.helper(I)]}`},replaceNode(I){{if(!L.currentNode)throw new Error("Node being replaced is already removed.");if(!L.parent)throw new Error("Cannot replace root node.")}L.parent.children[L.childIndex]=L.currentNode=I},removeNode(I){if(!L.parent)throw new Error("Cannot remove root node.");const T=L.parent.children,N=I?T.indexOf(I):L.currentNode?L.childIndex:-1;if(N<0)throw new Error("node being removed is not a child of current parent");!I||I===L.currentNode?(L.currentNode=null,L.onNodeRemoved()):L.childIndex>N&&(L.childIndex--,L.onNodeRemoved()),L.parent.children.splice(N,1)},onNodeRemoved:H9,addIdentifiers(I){wn(I)?E(I):I.identifiers?I.identifiers.forEach(E):I.type===4&&E(I.content)},removeIdentifiers(I){wn(I)?A(I):I.identifiers?I.identifiers.forEach(A):I.type===4&&A(I.content)},hoist(I){wn(I)&&(I=gt(I)),L.hoists.push(I);const T=gt(`_hoisted_${L.hoists.length}`,!1,I.loc,2);return T.hoisted=I,T},cache(I,T=!1){const N=Cbe(L.cached.length,I,T);return L.cached.push(N),N}};function E(I){const{identifiers:T}=L;T[I]===void 0&&(T[I]=0),T[I]++}function A(I){L.identifiers[I]--}return L}function ZZ(n,e){const t=fN(n,e);Ux(n,t),e.hoistStatic&&Eje(n,t),e.ssr||Ije(n,t),n.helpers=new Set([...t.helpers.keys()]),n.components=[...t.components],n.directives=[...t.directives],n.imports=t.imports,n.hoists=t.hoists,n.temps=t.temps,n.cached=t.cached,n.transformed=!0}function Ije(n,e){const{helper:t}=e,{children:i}=n;if(i.length===1){const s=i[0];if(uye(n,s)&&s.codegenNode){const r=s.codegenNode;r.type===13&&V6(r,e),n.codegenNode=r}else n.codegenNode=s}else if(i.length>1){let s=64,r=m1[64];i.filter(o=>o.type!==3).length===1&&(s|=2048,r+=`, ${m1[2048]}`),n.codegenNode=OS(e,t(PS),void 0,n.children,s,void 0,void 0,!0,void 0,!1)}}function Tje(n,e){let t=0;const i=()=>{t--};for(;t<n.children.length;t++){const s=n.children[t];wn(s)||(e.grandParent=e.parent,e.parent=n,e.childIndex=t,e.onNodeRemoved=i,Ux(s,e))}}function Ux(n,e){e.currentNode=n;const{nodeTransforms:t}=e,i=[];for(let r=0;r<t.length;r++){const o=t[r](n,e);if(o&&(Lo(o)?i.push(...o):i.push(o)),e.currentNode)n=e.currentNode;else return}switch(n.type){case 3:e.ssr||e.helper(Wx);break;case 5:e.ssr||e.helper(uN);break;case 9:for(let r=0;r<n.branches.length;r++)Ux(n.branches[r],e);break;case 10:case 11:case 1:case 0:Tje(n,e);break}e.currentNode=n;let s=i.length;for(;s--;)i[s]()}function pN(n,e){const t=wn(n)?i=>i===n:i=>n.test(i);return(i,s)=>{if(i.type===1){const{props:r}=i;if(i.tagType===3&&r.some(YZ))return;const o=[];for(let a=0;a<r.length;a++){const l=r[a];if(l.type===7&&t(l.name)){r.splice(a,1),a--;const c=e(i,l,s);c&&o.push(c)}}return o}}}var jx={},QZ={},G6={},JZ={},vae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");JZ.encode=function(n){if(0<=n&&n<vae.length)return vae[n];throw new TypeError("Must be between 0 and 63: "+n)};JZ.decode=function(n){var e=65,t=90,i=97,s=122,r=48,o=57,a=43,l=47,c=26,u=52;return e<=n&&n<=t?n-e:i<=n&&n<=s?n-i+c:r<=n&&n<=o?n-r+u:n==a?62:n==l?63:-1};var pye=JZ,eQ=5,gye=1<<eQ,mye=gye-1,_ye=gye;function Dje(n){return n<0?(-n<<1)+1:(n<<1)+0}function Nje(n){var e=(n&1)===1,t=n>>1;return e?-t:t}G6.encode=function(e){var t="",i,s=Dje(e);do i=s&mye,s>>>=eQ,s>0&&(i|=_ye),t+=pye.encode(i);while(s>0);return t};G6.decode=function(e,t,i){var s=e.length,r=0,o=0,a,l;do{if(t>=s)throw new Error("Expected more digits in base 64 VLQ value.");if(l=pye.decode(e.charCodeAt(t++)),l===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));a=!!(l&_ye),l&=mye,r=r+(l<<o),o+=eQ}while(a);i.value=Nje(r),i.rest=t};var qx={};(function(n){function e(L,E,A){if(E in L)return L[E];if(arguments.length===3)return A;throw new Error('"'+E+'" is a required argument.')}n.getArg=e;var t=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,i=/^data:.+\,.+$/;function s(L){var E=L.match(t);return E?{scheme:E[1],auth:E[2],host:E[3],port:E[4],path:E[5]}:null}n.urlParse=s;function r(L){var E="";return L.scheme&&(E+=L.scheme+":"),E+="//",L.auth&&(E+=L.auth+"@"),L.host&&(E+=L.host),L.port&&(E+=":"+L.port),L.path&&(E+=L.path),E}n.urlGenerate=r;var o=32;function a(L){var E=[];return function(A){for(var I=0;I<E.length;I++)if(E[I].input===A){var T=E[0];return E[0]=E[I],E[I]=T,E[0].result}var N=L(A);return E.unshift({input:A,result:N}),E.length>o&&E.pop(),N}}var l=a(function(E){var A=E,I=s(E);if(I){if(!I.path)return E;A=I.path}for(var T=n.isAbsolute(A),N=[],M=0,V=0;;)if(M=V,V=A.indexOf("/",M),V===-1){N.push(A.slice(M));break}else for(N.push(A.slice(M,V));V<A.length&&A[V]==="/";)V++;for(var W,B=0,V=N.length-1;V>=0;V--)W=N[V],W==="."?N.splice(V,1):W===".."?B++:B>0&&(W===""?(N.splice(V+1,B),B=0):(N.splice(V,2),B--));return A=N.join("/"),A===""&&(A=T?"/":"."),I?(I.path=A,r(I)):A});n.normalize=l;function c(L,E){L===""&&(L="."),E===""&&(E=".");var A=s(E),I=s(L);if(I&&(L=I.path||"/"),A&&!A.scheme)return I&&(A.scheme=I.scheme),r(A);if(A||E.match(i))return E;if(I&&!I.host&&!I.path)return I.host=E,r(I);var T=E.charAt(0)==="/"?E:l(L.replace(/\/+$/,"")+"/"+E);return I?(I.path=T,r(I)):T}n.join=c,n.isAbsolute=function(L){return L.charAt(0)==="/"||t.test(L)};function u(L,E){L===""&&(L="."),L=L.replace(/\/$/,"");for(var A=0;E.indexOf(L+"/")!==0;){var I=L.lastIndexOf("/");if(I<0||(L=L.slice(0,I),L.match(/^([^\/]+:\/)?\/*$/)))return E;++A}return Array(A+1).join("../")+E.substr(L.length+1)}n.relative=u;var h=function(){var L=Object.create(null);return!("__proto__"in L)}();function d(L){return L}function f(L){return g(L)?"$"+L:L}n.toSetString=h?d:f;function p(L){return g(L)?L.slice(1):L}n.fromSetString=h?d:p;function g(L){if(!L)return!1;var E=L.length;if(E<9||L.charCodeAt(E-1)!==95||L.charCodeAt(E-2)!==95||L.charCodeAt(E-3)!==111||L.charCodeAt(E-4)!==116||L.charCodeAt(E-5)!==111||L.charCodeAt(E-6)!==114||L.charCodeAt(E-7)!==112||L.charCodeAt(E-8)!==95||L.charCodeAt(E-9)!==95)return!1;for(var A=E-10;A>=0;A--)if(L.charCodeAt(A)!==36)return!1;return!0}function m(L,E,A){var I=C(L.source,E.source);return I!==0||(I=L.originalLine-E.originalLine,I!==0)||(I=L.originalColumn-E.originalColumn,I!==0||A)||(I=L.generatedColumn-E.generatedColumn,I!==0)||(I=L.generatedLine-E.generatedLine,I!==0)?I:C(L.name,E.name)}n.compareByOriginalPositions=m;function _(L,E,A){var I;return I=L.originalLine-E.originalLine,I!==0||(I=L.originalColumn-E.originalColumn,I!==0||A)||(I=L.generatedColumn-E.generatedColumn,I!==0)||(I=L.generatedLine-E.generatedLine,I!==0)?I:C(L.name,E.name)}n.compareByOriginalPositionsNoSource=_;function b(L,E,A){var I=L.generatedLine-E.generatedLine;return I!==0||(I=L.generatedColumn-E.generatedColumn,I!==0||A)||(I=C(L.source,E.source),I!==0)||(I=L.originalLine-E.originalLine,I!==0)||(I=L.originalColumn-E.originalColumn,I!==0)?I:C(L.name,E.name)}n.compareByGeneratedPositionsDeflated=b;function w(L,E,A){var I=L.generatedColumn-E.generatedColumn;return I!==0||A||(I=C(L.source,E.source),I!==0)||(I=L.originalLine-E.originalLine,I!==0)||(I=L.originalColumn-E.originalColumn,I!==0)?I:C(L.name,E.name)}n.compareByGeneratedPositionsDeflatedNoLine=w;function C(L,E){return L===E?0:L===null?1:E===null?-1:L>E?1:-1}function S(L,E){var A=L.generatedLine-E.generatedLine;return A!==0||(A=L.generatedColumn-E.generatedColumn,A!==0)||(A=C(L.source,E.source),A!==0)||(A=L.originalLine-E.originalLine,A!==0)||(A=L.originalColumn-E.originalColumn,A!==0)?A:C(L.name,E.name)}n.compareByGeneratedPositionsInflated=S;function x(L){return JSON.parse(L.replace(/^\)]}'[^\n]*\n/,""))}n.parseSourceMapInput=x;function k(L,E,A){if(E=E||"",L&&(L[L.length-1]!=="/"&&E[0]!=="/"&&(L+="/"),E=L+E),A){var I=s(A);if(!I)throw new Error("sourceMapURL could not be parsed");if(I.path){var T=I.path.lastIndexOf("/");T>=0&&(I.path=I.path.substring(0,T+1))}E=c(r(I),E)}return l(E)}n.computeSourceURL=k})(qx);var tQ={},iQ=qx,nQ=Object.prototype.hasOwnProperty,fb=typeof Map<"u";function Ag(){this._array=[],this._set=fb?new Map:Object.create(null)}Ag.fromArray=function(e,t){for(var i=new Ag,s=0,r=e.length;s<r;s++)i.add(e[s],t);return i};Ag.prototype.size=function(){return fb?this._set.size:Object.getOwnPropertyNames(this._set).length};Ag.prototype.add=function(e,t){var i=fb?e:iQ.toSetString(e),s=fb?this.has(e):nQ.call(this._set,i),r=this._array.length;(!s||t)&&this._array.push(e),s||(fb?this._set.set(e,r):this._set[i]=r)};Ag.prototype.has=function(e){if(fb)return this._set.has(e);var t=iQ.toSetString(e);return nQ.call(this._set,t)};Ag.prototype.indexOf=function(e){if(fb){var t=this._set.get(e);if(t>=0)return t}else{var i=iQ.toSetString(e);if(nQ.call(this._set,i))return this._set[i]}throw new Error('"'+e+'" is not in the set.')};Ag.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)};Ag.prototype.toArray=function(){return this._array.slice()};tQ.ArraySet=Ag;var vye={},bye=qx;function Aje(n,e){var t=n.generatedLine,i=e.generatedLine,s=n.generatedColumn,r=e.generatedColumn;return i>t||i==t&&r>=s||bye.compareByGeneratedPositionsInflated(n,e)<=0}function X6(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}X6.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)};X6.prototype.add=function(e){Aje(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))};X6.prototype.toArray=function(){return this._sorted||(this._array.sort(bye.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};vye.MappingList=X6;var UL=G6,Lr=qx,bO=tQ.ArraySet,Pje=vye.MappingList;function Wu(n){n||(n={}),this._file=Lr.getArg(n,"file",null),this._sourceRoot=Lr.getArg(n,"sourceRoot",null),this._skipValidation=Lr.getArg(n,"skipValidation",!1),this._ignoreInvalidMapping=Lr.getArg(n,"ignoreInvalidMapping",!1),this._sources=new bO,this._names=new bO,this._mappings=new Pje,this._sourcesContents=null}Wu.prototype._version=3;Wu.fromSourceMap=function(e,t){var i=e.sourceRoot,s=new Wu(Object.assign(t||{},{file:e.file,sourceRoot:i}));return e.eachMapping(function(r){var o={generated:{line:r.generatedLine,column:r.generatedColumn}};r.source!=null&&(o.source=r.source,i!=null&&(o.source=Lr.relative(i,o.source)),o.original={line:r.originalLine,column:r.originalColumn},r.name!=null&&(o.name=r.name)),s.addMapping(o)}),e.sources.forEach(function(r){var o=r;i!==null&&(o=Lr.relative(i,r)),s._sources.has(o)||s._sources.add(o);var a=e.sourceContentFor(r);a!=null&&s.setSourceContent(r,a)}),s};Wu.prototype.addMapping=function(e){var t=Lr.getArg(e,"generated"),i=Lr.getArg(e,"original",null),s=Lr.getArg(e,"source",null),r=Lr.getArg(e,"name",null);!this._skipValidation&&this._validateMapping(t,i,s,r)===!1||(s!=null&&(s=String(s),this._sources.has(s)||this._sources.add(s)),r!=null&&(r=String(r),this._names.has(r)||this._names.add(r)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:i!=null&&i.line,originalColumn:i!=null&&i.column,source:s,name:r}))};Wu.prototype.setSourceContent=function(e,t){var i=e;this._sourceRoot!=null&&(i=Lr.relative(this._sourceRoot,i)),t!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Lr.toSetString(i)]=t):this._sourcesContents&&(delete this._sourcesContents[Lr.toSetString(i)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};Wu.prototype.applySourceMap=function(e,t,i){var s=t;if(t==null){if(e.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);s=e.file}var r=this._sourceRoot;r!=null&&(s=Lr.relative(r,s));var o=new bO,a=new bO;this._mappings.unsortedForEach(function(l){if(l.source===s&&l.originalLine!=null){var c=e.originalPositionFor({line:l.originalLine,column:l.originalColumn});c.source!=null&&(l.source=c.source,i!=null&&(l.source=Lr.join(i,l.source)),r!=null&&(l.source=Lr.relative(r,l.source)),l.originalLine=c.line,l.originalColumn=c.column,c.name!=null&&(l.name=c.name))}var u=l.source;u!=null&&!o.has(u)&&o.add(u);var h=l.name;h!=null&&!a.has(h)&&a.add(h)},this),this._sources=o,this._names=a,e.sources.forEach(function(l){var c=e.sourceContentFor(l);c!=null&&(i!=null&&(l=Lr.join(i,l)),r!=null&&(l=Lr.relative(r,l)),this.setSourceContent(l,c))},this)};Wu.prototype._validateMapping=function(e,t,i,s){if(t&&typeof t.line!="number"&&typeof t.column!="number"){var r="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(r),!1;throw new Error(r)}if(!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!i&&!s)){if(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&i)return;var r="Invalid mapping: "+JSON.stringify({generated:e,source:i,original:t,name:s});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(r),!1;throw new Error(r)}};Wu.prototype._serializeMappings=function(){for(var e=0,t=1,i=0,s=0,r=0,o=0,a="",l,c,u,h,d=this._mappings.toArray(),f=0,p=d.length;f<p;f++){if(c=d[f],l="",c.generatedLine!==t)for(e=0;c.generatedLine!==t;)l+=";",t++;else if(f>0){if(!Lr.compareByGeneratedPositionsInflated(c,d[f-1]))continue;l+=","}l+=UL.encode(c.generatedColumn-e),e=c.generatedColumn,c.source!=null&&(h=this._sources.indexOf(c.source),l+=UL.encode(h-o),o=h,l+=UL.encode(c.originalLine-1-s),s=c.originalLine-1,l+=UL.encode(c.originalColumn-i),i=c.originalColumn,c.name!=null&&(u=this._names.indexOf(c.name),l+=UL.encode(u-r),r=u)),a+=l}return a};Wu.prototype._generateSourcesContent=function(e,t){return e.map(function(i){if(!this._sourcesContents)return null;t!=null&&(i=Lr.relative(t,i));var s=Lr.toSetString(i);return Object.prototype.hasOwnProperty.call(this._sourcesContents,s)?this._sourcesContents[s]:null},this)};Wu.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(e.file=this._file),this._sourceRoot!=null&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e};Wu.prototype.toString=function(){return JSON.stringify(this.toJSON())};QZ.SourceMapGenerator=Wu;var Y6={},yye={};(function(n){n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2;function e(t,i,s,r,o,a){var l=Math.floor((i-t)/2)+t,c=o(s,r[l],!0);return c===0?l:c>0?i-l>1?e(l,i,s,r,o,a):a==n.LEAST_UPPER_BOUND?i<r.length?i:-1:l:l-t>1?e(t,l,s,r,o,a):a==n.LEAST_UPPER_BOUND?l:t<0?-1:t}n.search=function(i,s,r,o){if(s.length===0)return-1;var a=e(-1,s.length,i,s,r,o||n.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&r(s[a],s[a-1],!0)===0;)--a;return a}})(yye);var wye={};function Rje(n){function e(s,r,o){var a=s[r];s[r]=s[o],s[o]=a}function t(s,r){return Math.round(s+Math.random()*(r-s))}function i(s,r,o,a){if(o<a){var l=t(o,a),c=o-1;e(s,l,a);for(var u=s[a],h=o;h<a;h++)r(s[h],u,!1)<=0&&(c+=1,e(s,c,h));e(s,c+1,h);var d=c+1;i(s,r,o,d-1),i(s,r,d+1,a)}}return i}function Mje(n){let e=Rje.toString();return new Function(`return ${e}`)()(n)}let bae=new WeakMap;wye.quickSort=function(n,e,t=0){let i=bae.get(e);i===void 0&&(i=Mje(e),bae.set(e,i)),i(n,e,t,n.length-1)};var Ht=qx,sQ=yye,WS=tQ.ArraySet,Oje=G6,QI=wye.quickSort;function Ms(n,e){var t=n;return typeof n=="string"&&(t=Ht.parseSourceMapInput(n)),t.sections!=null?new ud(t,e):new na(t,e)}Ms.fromSourceMap=function(n,e){return na.fromSourceMap(n,e)};Ms.prototype._version=3;Ms.prototype.__generatedMappings=null;Object.defineProperty(Ms.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}});Ms.prototype.__originalMappings=null;Object.defineProperty(Ms.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}});Ms.prototype._charIsMappingSeparator=function(e,t){var i=e.charAt(t);return i===";"||i===","};Ms.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")};Ms.GENERATED_ORDER=1;Ms.ORIGINAL_ORDER=2;Ms.GREATEST_LOWER_BOUND=1;Ms.LEAST_UPPER_BOUND=2;Ms.prototype.eachMapping=function(e,t,i){var s=t||null,r=i||Ms.GENERATED_ORDER,o;switch(r){case Ms.GENERATED_ORDER:o=this._generatedMappings;break;case Ms.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var a=this.sourceRoot,l=e.bind(s),c=this._names,u=this._sources,h=this._sourceMapURL,d=0,f=o.length;d<f;d++){var p=o[d],g=p.source===null?null:u.at(p.source);g=Ht.computeSourceURL(a,g,h),l({source:g,generatedLine:p.generatedLine,generatedColumn:p.generatedColumn,originalLine:p.originalLine,originalColumn:p.originalColumn,name:p.name===null?null:c.at(p.name)})}};Ms.prototype.allGeneratedPositionsFor=function(e){var t=Ht.getArg(e,"line"),i={source:Ht.getArg(e,"source"),originalLine:t,originalColumn:Ht.getArg(e,"column",0)};if(i.source=this._findSourceIndex(i.source),i.source<0)return[];var s=[],r=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",Ht.compareByOriginalPositions,sQ.LEAST_UPPER_BOUND);if(r>=0){var o=this._originalMappings[r];if(e.column===void 0)for(var a=o.originalLine;o&&o.originalLine===a;)s.push({line:Ht.getArg(o,"generatedLine",null),column:Ht.getArg(o,"generatedColumn",null),lastColumn:Ht.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[++r];else for(var l=o.originalColumn;o&&o.originalLine===t&&o.originalColumn==l;)s.push({line:Ht.getArg(o,"generatedLine",null),column:Ht.getArg(o,"generatedColumn",null),lastColumn:Ht.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[++r]}return s};Y6.SourceMapConsumer=Ms;function na(n,e){var t=n;typeof n=="string"&&(t=Ht.parseSourceMapInput(n));var i=Ht.getArg(t,"version"),s=Ht.getArg(t,"sources"),r=Ht.getArg(t,"names",[]),o=Ht.getArg(t,"sourceRoot",null),a=Ht.getArg(t,"sourcesContent",null),l=Ht.getArg(t,"mappings"),c=Ht.getArg(t,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);o&&(o=Ht.normalize(o)),s=s.map(String).map(Ht.normalize).map(function(u){return o&&Ht.isAbsolute(o)&&Ht.isAbsolute(u)?Ht.relative(o,u):u}),this._names=WS.fromArray(r.map(String),!0),this._sources=WS.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map(function(u){return Ht.computeSourceURL(o,u,e)}),this.sourceRoot=o,this.sourcesContent=a,this._mappings=l,this._sourceMapURL=e,this.file=c}na.prototype=Object.create(Ms.prototype);na.prototype.consumer=Ms;na.prototype._findSourceIndex=function(n){var e=n;if(this.sourceRoot!=null&&(e=Ht.relative(this.sourceRoot,e)),this._sources.has(e))return this._sources.indexOf(e);var t;for(t=0;t<this._absoluteSources.length;++t)if(this._absoluteSources[t]==n)return t;return-1};na.fromSourceMap=function(e,t){var i=Object.create(na.prototype),s=i._names=WS.fromArray(e._names.toArray(),!0),r=i._sources=WS.fromArray(e._sources.toArray(),!0);i.sourceRoot=e._sourceRoot,i.sourcesContent=e._generateSourcesContent(i._sources.toArray(),i.sourceRoot),i.file=e._file,i._sourceMapURL=t,i._absoluteSources=i._sources.toArray().map(function(f){return Ht.computeSourceURL(i.sourceRoot,f,t)});for(var o=e._mappings.toArray().slice(),a=i.__generatedMappings=[],l=i.__originalMappings=[],c=0,u=o.length;c<u;c++){var h=o[c],d=new Cye;d.generatedLine=h.generatedLine,d.generatedColumn=h.generatedColumn,h.source&&(d.source=r.indexOf(h.source),d.originalLine=h.originalLine,d.originalColumn=h.originalColumn,h.name&&(d.name=s.indexOf(h.name)),l.push(d)),a.push(d)}return QI(i.__originalMappings,Ht.compareByOriginalPositions),i};na.prototype._version=3;Object.defineProperty(na.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function Cye(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}const Z9=Ht.compareByGeneratedPositionsDeflatedNoLine;function yae(n,e){let t=n.length,i=n.length-e;if(!(i<=1))if(i==2){let s=n[e],r=n[e+1];Z9(s,r)>0&&(n[e]=r,n[e+1]=s)}else if(i<20)for(let s=e;s<t;s++)for(let r=s;r>e;r--){let o=n[r-1],a=n[r];if(Z9(o,a)<=0)break;n[r-1]=a,n[r]=o}else QI(n,Z9,e)}na.prototype._parseMappings=function(e,t){var i=1,s=0,r=0,o=0,a=0,l=0,c=e.length,u=0,h={},d=[],f=[],p,g,m,_;let b=0;for(;u<c;)if(e.charAt(u)===";")i++,u++,s=0,yae(f,b),b=f.length;else if(e.charAt(u)===",")u++;else{for(p=new Cye,p.generatedLine=i,m=u;m<c&&!this._charIsMappingSeparator(e,m);m++);for(e.slice(u,m),g=[];u<m;)Oje.decode(e,u,h),_=h.value,u=h.rest,g.push(_);if(g.length===2)throw new Error("Found a source, but no line and column");if(g.length===3)throw new Error("Found a source and line, but no column");if(p.generatedColumn=s+g[0],s=p.generatedColumn,g.length>1&&(p.source=a+g[1],a+=g[1],p.originalLine=r+g[2],r=p.originalLine,p.originalLine+=1,p.originalColumn=o+g[3],o=p.originalColumn,g.length>4&&(p.name=l+g[4],l+=g[4])),f.push(p),typeof p.originalLine=="number"){let C=p.source;for(;d.length<=C;)d.push(null);d[C]===null&&(d[C]=[]),d[C].push(p)}}yae(f,b),this.__generatedMappings=f;for(var w=0;w<d.length;w++)d[w]!=null&&QI(d[w],Ht.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(...d)};na.prototype._findMapping=function(e,t,i,s,r,o){if(e[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[i]);if(e[s]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[s]);return sQ.search(e,t,r,o)};na.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var i=this._generatedMappings[e+1];if(t.generatedLine===i.generatedLine){t.lastGeneratedColumn=i.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}};na.prototype.originalPositionFor=function(e){var t={generatedLine:Ht.getArg(e,"line"),generatedColumn:Ht.getArg(e,"column")},i=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",Ht.compareByGeneratedPositionsDeflated,Ht.getArg(e,"bias",Ms.GREATEST_LOWER_BOUND));if(i>=0){var s=this._generatedMappings[i];if(s.generatedLine===t.generatedLine){var r=Ht.getArg(s,"source",null);r!==null&&(r=this._sources.at(r),r=Ht.computeSourceURL(this.sourceRoot,r,this._sourceMapURL));var o=Ht.getArg(s,"name",null);return o!==null&&(o=this._names.at(o)),{source:r,line:Ht.getArg(s,"originalLine",null),column:Ht.getArg(s,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}};na.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return e==null}):!1};na.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var i=this._findSourceIndex(e);if(i>=0)return this.sourcesContent[i];var s=e;this.sourceRoot!=null&&(s=Ht.relative(this.sourceRoot,s));var r;if(this.sourceRoot!=null&&(r=Ht.urlParse(this.sourceRoot))){var o=s.replace(/^file:\/\//,"");if(r.scheme=="file"&&this._sources.has(o))return this.sourcesContent[this._sources.indexOf(o)];if((!r.path||r.path=="/")&&this._sources.has("/"+s))return this.sourcesContent[this._sources.indexOf("/"+s)]}if(t)return null;throw new Error('"'+s+'" is not in the SourceMap.')};na.prototype.generatedPositionFor=function(e){var t=Ht.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};var i={source:t,originalLine:Ht.getArg(e,"line"),originalColumn:Ht.getArg(e,"column")},s=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",Ht.compareByOriginalPositions,Ht.getArg(e,"bias",Ms.GREATEST_LOWER_BOUND));if(s>=0){var r=this._originalMappings[s];if(r.source===i.source)return{line:Ht.getArg(r,"generatedLine",null),column:Ht.getArg(r,"generatedColumn",null),lastColumn:Ht.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};Y6.BasicSourceMapConsumer=na;function ud(n,e){var t=n;typeof n=="string"&&(t=Ht.parseSourceMapInput(n));var i=Ht.getArg(t,"version"),s=Ht.getArg(t,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new WS,this._names=new WS;var r={line:-1,column:0};this._sections=s.map(function(o){if(o.url)throw new Error("Support for url field in sections not implemented.");var a=Ht.getArg(o,"offset"),l=Ht.getArg(a,"line"),c=Ht.getArg(a,"column");if(l<r.line||l===r.line&&c<r.column)throw new Error("Section offsets must be ordered and non-overlapping.");return r=a,{generatedOffset:{generatedLine:l+1,generatedColumn:c+1},consumer:new Ms(Ht.getArg(o,"map"),e)}})}ud.prototype=Object.create(Ms.prototype);ud.prototype.constructor=Ms;ud.prototype._version=3;Object.defineProperty(ud.prototype,"sources",{get:function(){for(var n=[],e=0;e<this._sections.length;e++)for(var t=0;t<this._sections[e].consumer.sources.length;t++)n.push(this._sections[e].consumer.sources[t]);return n}});ud.prototype.originalPositionFor=function(e){var t={generatedLine:Ht.getArg(e,"line"),generatedColumn:Ht.getArg(e,"column")},i=sQ.search(t,this._sections,function(r,o){var a=r.generatedLine-o.generatedOffset.generatedLine;return a||r.generatedColumn-o.generatedOffset.generatedColumn}),s=this._sections[i];return s?s.consumer.originalPositionFor({line:t.generatedLine-(s.generatedOffset.generatedLine-1),column:t.generatedColumn-(s.generatedOffset.generatedLine===t.generatedLine?s.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}};ud.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})};ud.prototype.sourceContentFor=function(e,t){for(var i=0;i<this._sections.length;i++){var s=this._sections[i],r=s.consumer.sourceContentFor(e,!0);if(r||r==="")return r}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')};ud.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var i=this._sections[t];if(i.consumer._findSourceIndex(Ht.getArg(e,"source"))!==-1){var s=i.consumer.generatedPositionFor(e);if(s){var r={line:s.line+(i.generatedOffset.generatedLine-1),column:s.column+(i.generatedOffset.generatedLine===s.line?i.generatedOffset.generatedColumn-1:0)};return r}}}return{line:null,column:null}};ud.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var s=this._sections[i],r=s.consumer._generatedMappings,o=0;o<r.length;o++){var a=r[o],l=s.consumer._sources.at(a.source);l=Ht.computeSourceURL(s.consumer.sourceRoot,l,this._sourceMapURL),this._sources.add(l),l=this._sources.indexOf(l);var c=null;a.name&&(c=s.consumer._names.at(a.name),this._names.add(c),c=this._names.indexOf(c));var u={source:l,generatedLine:a.generatedLine+(s.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(s.generatedOffset.generatedLine===a.generatedLine?s.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:c};this.__generatedMappings.push(u),typeof u.originalLine=="number"&&this.__originalMappings.push(u)}QI(this.__generatedMappings,Ht.compareByGeneratedPositionsDeflated),QI(this.__originalMappings,Ht.compareByOriginalPositions)};Y6.IndexedSourceMapConsumer=ud;var Sye={},Fje=QZ.SourceMapGenerator,yO=qx,Bje=/(\r?\n)/,Wje=10,Kx="$$$isSourceNode$$$";function jc(n,e,t,i,s){this.children=[],this.sourceContents={},this.line=n??null,this.column=e??null,this.source=t??null,this.name=s??null,this[Kx]=!0,i!=null&&this.add(i)}jc.fromStringWithSourceMap=function(e,t,i){var s=new jc,r=e.split(Bje),o=0,a=function(){var d=p(),f=p()||"";return d+f;function p(){return o<r.length?r[o++]:void 0}},l=1,c=0,u=null;return t.eachMapping(function(d){if(u!==null)if(l<d.generatedLine)h(u,a()),l++,c=0;else{var f=r[o]||"",p=f.substr(0,d.generatedColumn-c);r[o]=f.substr(d.generatedColumn-c),c=d.generatedColumn,h(u,p),u=d;return}for(;l<d.generatedLine;)s.add(a()),l++;if(c<d.generatedColumn){var f=r[o]||"";s.add(f.substr(0,d.generatedColumn)),r[o]=f.substr(d.generatedColumn),c=d.generatedColumn}u=d},this),o<r.length&&(u&&h(u,a()),s.add(r.splice(o).join(""))),t.sources.forEach(function(d){var f=t.sourceContentFor(d);f!=null&&(i!=null&&(d=yO.join(i,d)),s.setSourceContent(d,f))}),s;function h(d,f){if(d===null||d.source===void 0)s.add(f);else{var p=i?yO.join(i,d.source):d.source;s.add(new jc(d.originalLine,d.originalColumn,p,f,d.name))}}};jc.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(t){this.add(t)},this);else if(e[Kx]||typeof e=="string")e&&this.children.push(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this};jc.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else if(e[Kx]||typeof e=="string")this.children.unshift(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this};jc.prototype.walk=function(e){for(var t,i=0,s=this.children.length;i<s;i++)t=this.children[i],t[Kx]?t.walk(e):t!==""&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})};jc.prototype.join=function(e){var t,i,s=this.children.length;if(s>0){for(t=[],i=0;i<s-1;i++)t.push(this.children[i]),t.push(e);t.push(this.children[i]),this.children=t}return this};jc.prototype.replaceRight=function(e,t){var i=this.children[this.children.length-1];return i[Kx]?i.replaceRight(e,t):typeof i=="string"?this.children[this.children.length-1]=i.replace(e,t):this.children.push("".replace(e,t)),this};jc.prototype.setSourceContent=function(e,t){this.sourceContents[yO.toSetString(e)]=t};jc.prototype.walkSourceContents=function(e){for(var t=0,i=this.children.length;t<i;t++)this.children[t][Kx]&&this.children[t].walkSourceContents(e);for(var s=Object.keys(this.sourceContents),t=0,i=s.length;t<i;t++)e(yO.fromSetString(s[t]),this.sourceContents[s[t]])};jc.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e};jc.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},i=new Fje(e),s=!1,r=null,o=null,a=null,l=null;return this.walk(function(c,u){t.code+=c,u.source!==null&&u.line!==null&&u.column!==null?((r!==u.source||o!==u.line||a!==u.column||l!==u.name)&&i.addMapping({source:u.source,original:{line:u.line,column:u.column},generated:{line:t.line,column:t.column},name:u.name}),r=u.source,o=u.line,a=u.column,l=u.name,s=!0):s&&(i.addMapping({generated:{line:t.line,column:t.column}}),r=null,s=!1);for(var h=0,d=c.length;h<d;h++)c.charCodeAt(h)===Wje?(t.line++,t.column=0,h+1===d?(r=null,s=!1):s&&i.addMapping({source:u.source,original:{line:u.line,column:u.column},generated:{line:t.line,column:t.column},name:u.name})):t.column++}),this.walkSourceContents(function(c,u){i.setSourceContent(c,u)}),{code:t.code,map:i}};Sye.SourceNode=jc;var rQ=jx.SourceMapGenerator=QZ.SourceMapGenerator,wae=jx.SourceMapConsumer=Y6.SourceMapConsumer;jx.SourceNode=Sye.SourceNode;const Z6="/*@__PURE__*/",HR=n=>`${$l[n]}: _${$l[n]}`;function Cae(n,{mode:e="function",prefixIdentifiers:t=e==="module",sourceMap:i=!1,filename:s="template.vue.html",scopeId:r=null,optimizeImports:o=!1,runtimeGlobalName:a="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:h=!1,inSSR:d=!1}){const f={mode:e,prefixIdentifiers:t,sourceMap:i,filename:s,scopeId:r,optimizeImports:o,runtimeGlobalName:a,runtimeModuleName:l,ssrRuntimeModuleName:c,ssr:u,isTS:h,inSSR:d,source:n.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(m){return`_${$l[m]}`},push(m,_=-2,b){if(f.code+=m,f.map){if(b){let w;if(b.type===4&&!b.isStatic){const C=b.content.replace(/^_ctx\./,"");C!==b.content&&Ng(C)&&(w=C)}g(b.loc.start,w)}_===-3?XZ(f,m):(f.offset+=m.length,_===-2?f.column+=m.length:(_===-1&&(_=m.length-1),f.line++,f.column=m.length-_)),b&&b.loc!==Ks&&g(b.loc.end)}},indent(){p(++f.indentLevel)},deindent(m=!1){m?--f.indentLevel:p(--f.indentLevel)},newline(){p(f.indentLevel)}};function p(m){f.push(` +`+" ".repeat(m),0)}function g(m,_=null){const{_names:b,_mappings:w}=f.map;_!==null&&!b.has(_)&&b.add(_),w.add({originalLine:m.line,originalColumn:m.column-1,generatedLine:f.line,generatedColumn:f.column-1,source:s,name:_})}return i&&(f.map=new rQ,f.map.setSourceContent(s,f.source),f.map._sources.add(s)),f}function oQ(n,e={}){const t=Cae(n,e);e.onContextCreated&&e.onContextCreated(t);const{mode:i,push:s,prefixIdentifiers:r,indent:o,deindent:a,newline:l,scopeId:c,ssr:u}=t,h=Array.from(n.helpers),d=h.length>0,f=!r&&i!=="module",p=c!=null&&i==="module",g=!!e.inline,m=g?Cae(n,e):t;i==="module"?Hje(n,m,p,g):Vje(n,m);const _=u?"ssrRender":"render",b=u?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"];e.bindingMetadata&&!e.inline&&b.push("$props","$setup","$data","$options");const w=e.isTS?b.map(C=>`${C}: any`).join(","):b.join(", ");if(s(g?`(${w}) => {`:`function ${_}(${w}) {`),o(),f&&(s("with (_ctx) {"),o(),d&&(s(`const { ${h.map(HR).join(", ")} } = _Vue +`,-1),l())),n.components.length&&(Sae(n.components,"component",t),(n.directives.length||n.temps>0)&&l()),n.directives.length&&(Sae(n.directives,"directive",t),n.temps>0&&l()),n.temps>0){s("let ");for(let C=0;C<n.temps;C++)s(`${C>0?", ":""}_temp${C}`)}return(n.components.length||n.directives.length||n.temps)&&(s(` +`,0),l()),u||s("return "),n.codegenNode?$s(n.codegenNode,t):s("null"),f&&(a(),s("}")),a(),s("}"),{ast:n,code:t.code,preamble:g?m.code:"",map:t.map?t.map.toJSON():void 0}}function Vje(n,e){const{ssr:t,prefixIdentifiers:i,push:s,newline:r,runtimeModuleName:o,runtimeGlobalName:a,ssrRuntimeModuleName:l}=e,c=t?`require(${JSON.stringify(o)})`:a,u=Array.from(n.helpers);if(u.length>0){if(i)s(`const { ${u.map(HR).join(", ")} } = ${c} +`,-1);else if(s(`const _Vue = ${c} +`,-1),n.hoists.length){const h=[lN,T6,Wx,D6,N6].filter(d=>u.includes(d)).map(HR).join(", ");s(`const { ${h} } = _Vue +`,-1)}}n.ssrHelpers&&n.ssrHelpers.length&&s(`const { ${n.ssrHelpers.map(HR).join(", ")} } = require("${l}") +`,-1),xye(n.hoists,e),r(),s("return ")}function Hje(n,e,t,i){const{push:s,newline:r,optimizeImports:o,runtimeModuleName:a,ssrRuntimeModuleName:l}=e;if(n.helpers.size){const c=Array.from(n.helpers);o?(s(`import { ${c.map(u=>$l[u]).join(", ")} } from ${JSON.stringify(a)} +`,-1),s(` +// Binding optimization for webpack code-split +const ${c.map(u=>`_${$l[u]} = ${$l[u]}`).join(", ")} +`,-1)):s(`import { ${c.map(u=>`${$l[u]} as _${$l[u]}`).join(", ")} } from ${JSON.stringify(a)} +`,-1)}n.ssrHelpers&&n.ssrHelpers.length&&s(`import { ${n.ssrHelpers.map(c=>`${$l[c]} as _${$l[c]}`).join(", ")} } from "${l}" +`,-1),n.imports.length&&($je(n.imports,e),r()),xye(n.hoists,e),r(),i||s("export ")}function Sae(n,e,{helper:t,push:i,newline:s,isTS:r}){const o=t(e==="component"?jI:A6);for(let a=0;a<n.length;a++){let l=n[a];const c=l.endsWith("__self");c&&(l=l.slice(0,-6)),i(`const ${ZI(l,e)} = ${o}(${JSON.stringify(l)}${c?", true":""})${r?"!":""}`),a<n.length-1&&s()}}function xye(n,e){if(!n.length)return;e.pure=!0;const{push:t,newline:i}=e;i();for(let s=0;s<n.length;s++){const r=n[s];r&&(t(`const _hoisted_${s+1} = `),$s(r,e),i())}e.pure=!1}function $je(n,e){n.length&&n.forEach(t=>{e.push("import "),$s(t.exp,e),e.push(` from '${t.path}'`),e.newline()})}function zje(n){return wn(n)||n.type===4||n.type===2||n.type===5||n.type===8}function Q6(n,e){const t=n.length>3||n.some(i=>Lo(i)||!zje(i));e.push("["),t&&e.indent(),Gx(n,e,t),t&&e.deindent(),e.push("]")}function Gx(n,e,t=!1,i=!0){const{push:s,newline:r}=e;for(let o=0;o<n.length;o++){const a=n[o];wn(a)?s(a,-3):Lo(a)?Q6(a,e):$s(a,e),o<n.length-1&&(t?(i&&s(","),r()):i&&s(", "))}}function $s(n,e){if(wn(n)){e.push(n,-3);return}if(E_(n)){e.push(e.helper(n));return}switch(n.type){case 1:case 9:case 11:xH(n.codegenNode!=null,"Codegen node is missing for element/if/for node. Apply appropriate transforms first."),$s(n.codegenNode,e);break;case 2:Uje(n,e);break;case 4:Lye(n,e);break;case 5:jje(n,e);break;case 12:$s(n.codegenNode,e);break;case 8:Eye(n,e);break;case 3:Kje(n,e);break;case 13:Gje(n,e);break;case 14:Yje(n,e);break;case 15:Zje(n,e);break;case 17:Qje(n,e);break;case 18:Jje(n,e);break;case 19:eqe(n,e);break;case 20:tqe(n,e);break;case 21:Gx(n.body,e,!0,!1);break;case 22:iqe(n,e);break;case 23:kye(n,e);break;case 24:nqe(n,e);break;case 25:sqe(n,e);break;case 26:rqe(n,e);break;case 10:break;default:return xH(!1,`unhandled codegen node type: ${n.type}`),n}}function Uje(n,e){e.push(JSON.stringify(n.content),-3,n)}function Lye(n,e){const{content:t,isStatic:i}=n;e.push(i?JSON.stringify(t):t,-3,n)}function jje(n,e){const{push:t,helper:i,pure:s}=e;s&&t(Z6),t(`${i(uN)}(`),$s(n.content,e),t(")")}function Eye(n,e){for(let t=0;t<n.children.length;t++){const i=n.children[t];wn(i)?e.push(i,-3):$s(i,e)}}function qje(n,e){const{push:t}=e;if(n.type===8)t("["),Eye(n,e),t("]");else if(n.isStatic){const i=Ng(n.content)?n.content:JSON.stringify(n.content);t(i,-2,n)}else t(`[${n.content}]`,-3,n)}function Kje(n,e){const{push:t,helper:i,pure:s}=e;s&&t(Z6),t(`${i(Wx)}(${JSON.stringify(n.content)})`,-3,n)}function Gje(n,e){const{push:t,helper:i,pure:s}=e,{tag:r,props:o,children:a,patchFlag:l,dynamicProps:c,directives:u,isBlock:h,disableTracking:d,isComponent:f}=n;let p;if(l)if(l<0)p=l+` /* ${m1[l]} */`;else{const m=Object.keys(m1).map(Number).filter(_=>_>0&&l&_).map(_=>m1[_]).join(", ");p=l+` /* ${m} */`}u&&t(i(P6)+"("),h&&t(`(${i(J1)}(${d?"true":""}), `),s&&t(Z6);const g=h?My(e.inSSR,f):Ry(e.inSSR,f);t(i(g)+"(",-2,n),Gx(Xje([r,o,a,p,c]),e),t(")"),h&&t(")"),u&&(t(", "),$s(u,e),t(")"))}function Xje(n){let e=n.length;for(;e--&&n[e]==null;);return n.slice(0,e+1).map(t=>t||"null")}function Yje(n,e){const{push:t,helper:i,pure:s}=e,r=wn(n.callee)?n.callee:i(n.callee);s&&t(Z6),t(r+"(",-2,n),Gx(n.arguments,e),t(")")}function Zje(n,e){const{push:t,indent:i,deindent:s,newline:r}=e,{properties:o}=n;if(!o.length){t("{}",-2,n);return}const a=o.length>1||o.some(l=>l.value.type!==4);t(a?"{":"{ "),a&&i();for(let l=0;l<o.length;l++){const{key:c,value:u}=o[l];qje(c,e),t(": "),$s(u,e),l<o.length-1&&(t(","),r())}a&&s(),t(a?"}":" }")}function Qje(n,e){Q6(n.elements,e)}function Jje(n,e){const{push:t,indent:i,deindent:s}=e,{params:r,returns:o,body:a,newline:l,isSlot:c}=n;c&&t(`_${$l[B6]}(`),t("(",-2,n),Lo(r)?Gx(r,e):r&&$s(r,e),t(") => "),(l||a)&&(t("{"),i()),o?(l&&t("return "),Lo(o)?Q6(o,e):$s(o,e)):a&&$s(a,e),(l||a)&&(s(),t("}")),c&&t(")")}function eqe(n,e){const{test:t,consequent:i,alternate:s,newline:r}=n,{push:o,indent:a,deindent:l,newline:c}=e;if(t.type===4){const h=!Ng(t.content);h&&o("("),Lye(t,e),h&&o(")")}else o("("),$s(t,e),o(")");r&&a(),e.indentLevel++,r||o(" "),o("? "),$s(i,e),e.indentLevel--,r&&c(),r||o(" "),o(": ");const u=s.type===19;u||e.indentLevel++,$s(s,e),u||e.indentLevel--,r&&l(!0)}function tqe(n,e){const{push:t,helper:i,indent:s,deindent:r,newline:o}=e,{needPauseTracking:a,needArraySpread:l}=n;l&&t("[...("),t(`_cache[${n.index}] || (`),a&&(s(),t(`${i(qI)}(-1),`),o(),t("(")),t(`_cache[${n.index}] = `),$s(n.value,e),a&&(t(`).cacheIndex = ${n.index},`),o(),t(`${i(qI)}(1),`),o(),t(`_cache[${n.index}]`),r()),t(")"),l&&t(")]")}function iqe(n,e){const{push:t,indent:i,deindent:s}=e;t("`");const r=n.elements.length,o=r>3;for(let a=0;a<r;a++){const l=n.elements[a];wn(l)?t(l.replace(/(`|\$|\\)/g,"\\$1"),-3):(t("${"),o&&i(),$s(l,e),o&&s(),t("}"))}t("`")}function kye(n,e){const{push:t,indent:i,deindent:s}=e,{test:r,consequent:o,alternate:a}=n;t("if ("),$s(r,e),t(") {"),i(),$s(o,e),s(),t("}"),a&&(t(" else "),a.type===23?kye(a,e):(t("{"),i(),$s(a,e),s(),t("}")))}function nqe(n,e){$s(n.left,e),e.push(" = "),$s(n.right,e)}function sqe(n,e){e.push("("),Gx(n.expressions,e),e.push(")")}function rqe({returns:n},e){e.push("return "),Lo(n)?Q6(n,e):$s(n,e)}const oqe=Ba("true,false,null,this"),aQ=(n,e)=>{if(n.type===5)n.content=Eo(n.content,e);else if(n.type===1)for(let t=0;t<n.props.length;t++){const i=n.props[t];if(i.type===7&&i.name!=="for"){const s=i.exp,r=i.arg;s&&s.type===4&&!(i.name==="on"&&r)&&(i.exp=Eo(s,e,i.name==="slot")),r&&r.type===4&&!r.isStatic&&(i.arg=Eo(r,e))}}};function Eo(n,e,t=!1,i=!1,s=Object.create(e.identifiers)){if(!e.prefixIdentifiers||!n.content.trim())return n;const{inline:r,bindingMetadata:o}=e,a=(g,m,_)=>{const b=bZ(o,g)&&o[g];if(r){const w=m&&m.type==="AssignmentExpression"&&m.left===_,C=m&&m.type==="UpdateExpression"&&m.argument===_,S=m&&$x(m,h),x=m&&Xbe(h),k=L=>{const E=`${e.helperString(MS)}(${L})`;return x?`(${E})`:E};if(xae(b)||b==="setup-reactive-const"||s[g])return g;if(b==="setup-ref")return`${g}.value`;if(b==="setup-maybe-ref")return w||C||S?`${g}.value`:k(g);if(b==="setup-let")if(w){const{right:L,operator:E}=m,A=l.slice(L.start-1,L.end-1),I=J6(Eo(gt(A,!1),e,!1,!1,d));return`${e.helperString(KI)}(${g})${e.isTS?` //@ts-ignore +`:""} ? ${g}.value ${E} ${I} : ${g}`}else if(C){_.start=m.start,_.end=m.end;const{prefix:L,operator:E}=m,A=L?E:"",I=L?"":E;return`${e.helperString(KI)}(${g})${e.isTS?` //@ts-ignore +`:""} ? ${A}${g}.value${I} : ${A}${g}${I}`}else return S?g:k(g);else{if(b==="props")return lO(g);if(b==="props-aliased")return lO(o.__propsAliases[g])}}else{if(b&&b.startsWith("setup")||b==="literal-const")return`$setup.${g}`;if(b==="props-aliased")return`$props['${o.__propsAliases[g]}']`;if(b)return`$${b}.${g}`}return`_ctx.${g}`},l=n.content;let c=n.ast;if(c===!1)return n;if(c===null||!c&&Ng(l)){const g=e.identifiers[l],m=ube(l),_=oqe(l);return!t&&!g&&!_&&(!m||o[l])?(xae(o[l])&&(n.constType=1),n.content=a(l)):g||(_?n.constType=3:n.constType=2),n}if(!c){const g=i?` ${l} `:`(${l})${t?"=>{}":""}`;try{c=XI(g,{sourceType:"module",plugins:e.expressionPlugins})}catch(m){return e.onError(Bn(45,n.loc,void 0,m.message)),n}}const u=[],h=[],d=Object.create(e.identifiers);Hx(c,(g,m,_,b,w)=>{if(Jbe(g,m))return;const C=b&&aqe(g);C&&!w?(zx(m)&&m.shorthand&&(g.prefix=`${g.name}: `),g.name=a(g.name,m,g),u.push(g)):(!(C&&w)&&(!m||m.type!=="CallExpression"&&m.type!=="NewExpression"&&m.type!=="MemberExpression")&&(g.isConstant=!0),u.push(g))},!0,h,d);const f=[];u.sort((g,m)=>g.start-m.start),u.forEach((g,m)=>{const _=g.start-1,b=g.end-1,w=u[m-1],C=l.slice(w?w.end-1:0,_);(C.length||g.prefix)&&f.push(C+(g.prefix||""));const S=l.slice(_,b);f.push(gt(g.name,!1,{start:SH(n.loc.start,S,_),end:SH(n.loc.start,S,b),source:S},g.isConstant?3:0)),m===u.length-1&&b<l.length&&f.push(l.slice(b))});let p;return f.length?(p=yo(f,n.loc),p.ast=c):(p=n,p.constType=3),p.identifiers=Object.keys(d),p}function aqe(n){return!(ube(n.name)||n.name==="require")}function J6(n){return wn(n)?n:n.type===4?n.content:n.children.map(J6).join("")}function xae(n){return n==="setup-const"||n==="literal-const"}const lqe=pN(/^(if|else|else-if)$/,(n,e,t)=>lQ(n,e,t,(i,s,r)=>{const o=t.parent.children;let a=o.indexOf(i),l=0;for(;a-->=0;){const c=o[a];c&&c.type===9&&(l+=c.branches.length)}return()=>{if(r)i.codegenNode=Eae(s,l,t);else{const c=uqe(i.codegenNode);c.alternate=Eae(s,l+i.branches.length-1,t)}}}));function lQ(n,e,t,i){if(e.name!=="else"&&(!e.exp||!e.exp.content.trim())){const s=e.exp?e.exp.loc:n.loc;t.onError(Bn(28,e.loc)),e.exp=gt("true",!1,s)}if(t.prefixIdentifiers&&e.exp&&(e.exp=Eo(e.exp,t)),e.name==="if"){const s=Lae(n,e),r={type:9,loc:n.loc,branches:[s]};if(t.replaceNode(r),i)return i(r,s,!0)}else{const s=t.parent.children,r=[];let o=s.indexOf(n);for(;o-->=-1;){const a=s[o];if(a&&a.type===3){t.removeNode(a),r.unshift(a);continue}if(a&&a.type===2&&!a.content.trim().length){t.removeNode(a);continue}if(a&&a.type===9){e.name==="else-if"&&a.branches[a.branches.length-1].condition===void 0&&t.onError(Bn(30,n.loc)),t.removeNode();const l=Lae(n,e);r.length&&!(t.parent&&t.parent.type===1&&(t.parent.tag==="transition"||t.parent.tag==="Transition"))&&(l.children=[...r,...l.children]);{const u=l.userKey;u&&a.branches.forEach(({userKey:h})=>{cqe(h,u)&&t.onError(Bn(29,l.userKey.loc))})}a.branches.push(l);const c=i&&i(a,l,!1);Ux(l,t),c&&c(),t.currentNode=null}else t.onError(Bn(30,n.loc));break}}}function Lae(n,e){const t=n.tagType===3;return{type:10,loc:n.loc,condition:e.name==="else"?void 0:e.exp,children:t&&!Jr(n,"for")?n.children:[n],userKey:rc(n,"key"),isTemplateIf:t}}function Eae(n,e,t){return n.condition?Mh(n.condition,kae(n,e,t),ui(t.helper(Wx),['"v-if"',"true"])):kae(n,e,t)}function kae(n,e,t){const{helper:i}=t,s=Qn("key",gt(`${e}`,!1,Ks,2)),{children:r}=n,o=r[0];if(r.length!==1||o.type!==1)if(r.length===1&&o.type===11){const l=o.codegenNode;return YI(l,s,t),l}else{let l=64,c=m1[64];return!n.isTemplateIf&&r.filter(u=>u.type!==3).length===1&&(l|=2048,c+=`, ${m1[2048]}`),OS(t,i(PS),Ql([s]),r,l,void 0,void 0,!0,!1,!1,n.loc)}else{const l=o.codegenNode,c=sye(l);return c.type===13&&V6(c,t),YI(c,s,t),l}}function cqe(n,e){if(!n||n.type!==e.type)return!1;if(n.type===6){if(n.value.content!==e.value.content)return!1}else{const t=n.exp,i=e.exp;if(t.type!==i.type||t.type!==4||t.isStatic!==i.isStatic||t.content!==i.content)return!1}return!0}function uqe(n){for(;;)if(n.type===19)if(n.alternate.type===19)n=n.alternate;else return n;else n.type===20&&(n=n.value)}const cQ=(n,e,t)=>{const{modifiers:i,loc:s}=n,r=n.arg;let{exp:o}=n;if(o&&o.type===4&&!o.content.trim())return t.onError(Bn(34,s)),{props:[Qn(r,gt("",!0,s))]};if(!o){if(r.type!==4||!r.isStatic)return t.onError(Bn(52,r.loc)),{props:[Qn(r,gt("",!0,s))]};Iye(n,t),o=n.exp}return r.type!==4?(r.children.unshift("("),r.children.push(') || ""')):r.isStatic||(r.content=`${r.content} || ""`),i.some(a=>a.content==="camel")&&(r.type===4?r.isStatic?r.content=Zl(r.content):r.content=`${t.helperString(cO)}(${r.content})`:(r.children.unshift(`${t.helperString(cO)}(`),r.children.push(")"))),t.inSSR||(i.some(a=>a.content==="prop")&&Iae(r,"."),i.some(a=>a.content==="attr")&&Iae(r,"^")),{props:[Qn(r,o)]}},Iye=(n,e)=>{const t=n.arg,i=Zl(t.content);n.exp=gt(i,!1,t.loc),n.exp=Eo(n.exp,e)},Iae=(n,e)=>{n.type===4?n.isStatic?n.content=e+n.content:n.content=`\`${e}\${${n.content}}\``:(n.children.unshift(`'${e}' + (`),n.children.push(")"))},hqe=pN("for",(n,e,t)=>{const{helper:i,removeHelper:s}=t;return uQ(n,e,t,r=>{const o=ui(i(R6),[r.source]),a=FS(n),l=Jr(n,"memo"),c=rc(n,"key",!1,!0);c&&c.type===7&&!c.exp&&Iye(c,t);const u=c&&(c.type===6?c.value?gt(c.value.content,!0):void 0:c.exp),h=c&&u?Qn("key",u):null;a&&(l&&(l.exp=Eo(l.exp,t)),h&&c.type!==6&&(h.value=Eo(h.value,t)));const d=r.source.type===4&&r.source.constType>0,f=d?64:c?128:256;return r.codegenNode=OS(t,i(PS),void 0,o,f,void 0,void 0,!0,!d,!1,n.loc),()=>{let p;const{children:g}=r;a&&n.children.some(b=>{if(b.type===1){const w=rc(b,"key");if(w)return t.onError(Bn(33,w.loc)),!0}});const m=g.length!==1||g[0].type!==1,_=BS(n)?n:a&&n.children.length===1&&BS(n.children[0])?n.children[0]:null;if(_?(p=_.codegenNode,a&&h&&YI(p,h,t)):m?p=OS(t,i(PS),h?Ql([h]):void 0,n.children,64,void 0,void 0,!0,void 0,!1):(p=g[0].codegenNode,a&&h&&YI(p,h,t),p.isBlock!==!d&&(p.isBlock?(s(J1),s(My(t.inSSR,p.isComponent))):s(Ry(t.inSSR,p.isComponent))),p.isBlock=!d,p.isBlock?(i(J1),i(My(t.inSSR,p.isComponent))):i(Ry(t.inSSR,p.isComponent))),l){const b=Qc(JI(r.parseResult,[gt("_cached")]));b.body=hN([yo(["const _memo = (",l.exp,")"]),yo(["if (_cached",...u?[" && _cached.key === ",u]:[],` && ${t.helperString(kZ)}(_cached, _memo)) return _cached`]),yo(["const _item = ",p]),gt("_item.memo = _memo"),gt("return _item")]),o.arguments.push(b,gt("_cache"),gt(String(t.cached.length))),t.cached.push(null)}else o.arguments.push(Qc(JI(r.parseResult),p,!0))}})});function uQ(n,e,t,i){if(!e.exp){t.onError(Bn(31,e.loc));return}const s=e.forParseResult;if(!s){t.onError(Bn(32,e.loc));return}hQ(s,t);const{addIdentifiers:r,removeIdentifiers:o,scopes:a}=t,{source:l,value:c,key:u,index:h}=s,d={type:11,loc:e.loc,source:l,valueAlias:c,keyAlias:u,objectIndexAlias:h,parseResult:s,children:FS(n)?n.children:[n]};t.replaceNode(d),a.vFor++,t.prefixIdentifiers&&(c&&r(c),u&&r(u),h&&r(h));const f=i&&i(d);return()=>{a.vFor--,t.prefixIdentifiers&&(c&&o(c),u&&o(u),h&&o(h)),f&&f()}}function hQ(n,e){n.finalized||(e.prefixIdentifiers&&(n.source=Eo(n.source,e),n.key&&(n.key=Eo(n.key,e,!0)),n.index&&(n.index=Eo(n.index,e,!0)),n.value&&(n.value=Eo(n.value,e,!0))),n.finalized=!0)}function JI({value:n,key:e,index:t},i=[]){return dqe([n,e,t,...i])}function dqe(n){let e=n.length;for(;e--&&!n[e];);return n.slice(0,e+1).map((t,i)=>t||gt("_".repeat(i+1),!1))}const Tae=gt("undefined",!1),dQ=(n,e)=>{if(n.type===1&&(n.tagType===1||n.tagType===3)){const t=Jr(n,"slot");if(t){const i=t.exp;return e.prefixIdentifiers&&i&&e.addIdentifiers(i),e.scopes.vSlot++,()=>{e.prefixIdentifiers&&i&&e.removeIdentifiers(i),e.scopes.vSlot--}}}},fQ=(n,e)=>{let t;if(FS(n)&&n.props.some(YZ)&&(t=Jr(n,"for"))){const i=t.forParseResult;if(i){hQ(i,e);const{value:s,key:r,index:o}=i,{addIdentifiers:a,removeIdentifiers:l}=e;return s&&a(s),r&&a(r),o&&a(o),()=>{s&&l(s),r&&l(r),o&&l(o)}}}},fqe=(n,e,t,i)=>Qc(n,t,!1,!0,t.length?t[0].loc:i);function eT(n,e,t=fqe){e.helper(B6);const{children:i,loc:s}=n,r=[],o=[];let a=e.scopes.vSlot>0||e.scopes.vFor>0;!e.ssr&&e.prefixIdentifiers&&(a=Wl(n,e.identifiers));const l=Jr(n,"slot",!0);if(l){const{arg:m,exp:_}=l;m&&!Ko(m)&&(a=!0),r.push(Qn(m||gt("default",!0),t(_,void 0,i,s)))}let c=!1,u=!1;const h=[],d=new Set;let f=0;for(let m=0;m<i.length;m++){const _=i[m];let b;if(!FS(_)||!(b=Jr(_,"slot",!0))){_.type!==3&&h.push(_);continue}if(l){e.onError(Bn(37,b.loc));break}c=!0;const{children:w,loc:C}=_,{arg:S=gt("default",!0),exp:x,loc:k}=b;let L;Ko(S)?L=S?S.content:"default":a=!0;const E=Jr(_,"for"),A=t(x,E,w,C);let I,T;if(I=Jr(_,"if"))a=!0,o.push(Mh(I.exp,FA(S,A,f++),Tae));else if(T=Jr(_,/^else(-if)?$/,!0)){let N=m,M;for(;N--&&(M=i[N],M.type===3););if(M&&FS(M)&&Jr(M,/^(else-)?if$/)){let V=o[o.length-1];for(;V.alternate.type===19;)V=V.alternate;V.alternate=T.exp?Mh(T.exp,FA(S,A,f++),Tae):FA(S,A,f++)}else e.onError(Bn(30,T.loc))}else if(E){a=!0;const N=E.forParseResult;N?(hQ(N,e),o.push(ui(e.helper(R6),[N.source,Qc(JI(N),FA(S,A),!0)]))):e.onError(Bn(32,E.loc))}else{if(L){if(d.has(L)){e.onError(Bn(38,k));continue}d.add(L),L==="default"&&(u=!0)}r.push(Qn(S,A))}}if(!l){const m=(_,b)=>{const w=t(_,void 0,b,s);return Qn("default",w)};c?h.length&&h.some(_=>Tye(_))&&(u?e.onError(Bn(39,h[0].loc)):r.push(m(void 0,h))):r.push(m(void 0,i))}const p=a?2:$R(n.children)?3:1;let g=Ql(r.concat(Qn("_",gt(p+` /* ${R$e[p]} */`,!1))),s);return o.length&&(g=ui(e.helper(EZ),[g,Ef(o)])),{slots:g,hasDynamicSlots:a}}function FA(n,e,t){const i=[Qn("name",n),Qn("fn",e)];return t!=null&&i.push(Qn("key",gt(String(t),!0))),Ql(i)}function $R(n){for(let e=0;e<n.length;e++){const t=n[e];switch(t.type){case 1:if(t.tagType===2||$R(t.children))return!0;break;case 9:if($R(t.branches))return!0;break;case 10:case 11:if($R(t.children))return!0;break}}return!1}function Tye(n){return n.type!==2&&n.type!==12?!0:n.type===2?!!n.content.trim():Tye(n.content)}const Dye=new WeakMap,Nye=(n,e)=>function(){if(n=e.currentNode,!(n.type===1&&(n.tagType===0||n.tagType===1)))return;const{tag:i,props:s}=n,r=n.tagType===1;let o=r?eB(n,e):`"${i}"`;const a=k_(o)&&o.callee===cN;let l,c,u=0,h,d,f,p=a||o===db||o===Bx||!r&&(i==="svg"||i==="foreignObject"||i==="math");if(s.length>0){const g=Xx(n,e,void 0,r,a);l=g.props,u=g.patchFlag,d=g.dynamicPropNames;const m=g.directives;f=m&&m.length?Ef(m.map(_=>pQ(_,e))):void 0,g.shouldUseBlock&&(p=!0)}if(n.children.length>0)if(o===UI&&(p=!0,u|=1024,n.children.length>1&&e.onError(Bn(46,{start:n.children[0].loc.start,end:n.children[n.children.length-1].loc.end,source:""}))),r&&o!==db&&o!==UI){const{slots:m,hasDynamicSlots:_}=eT(n,e);c=m,_&&(u|=1024)}else if(n.children.length===1&&o!==db){const m=n.children[0],_=m.type,b=_===5||_===8;b&&Jl(m,e)===0&&(u|=1),b||_===2?c=m:c=n.children}else c=n.children;d&&d.length&&(h=gqe(d)),n.codegenNode=OS(e,o,l,c,u===0?void 0:u,h,f,!!p,!1,r,n.loc)};function eB(n,e,t=!1){let{tag:i}=n;const s=IH(i),r=rc(n,"is",!1,!0);if(r)if(s){let a;if(r.type===6?a=r.value&>(r.value.content,!0):(a=r.exp,a||(a=gt("is",!1,r.arg.loc),a=r.exp=Eo(a,e))),a)return ui(e.helper(cN),[a])}else r.type===6&&r.value.content.startsWith("vue:")&&(i=r.value.content.slice(4));const o=KZ(i)||e.isBuiltInComponent(i);if(o)return t||e.helper(o),o;{const a=kH(i,e);if(a)return a;const l=i.indexOf(".");if(l>0){const c=kH(i.slice(0,l),e);if(c)return c+i.slice(l)}}return e.selfName&&Q1(Zl(i))===e.selfName?(e.helper(jI),e.components.add(i+"__self"),ZI(i,"component")):(e.helper(jI),e.components.add(i),ZI(i,"component"))}function kH(n,e){const t=e.bindingMetadata;if(!t||t.__isScriptSetup===!1)return;const i=Zl(n),s=Q1(i),r=c=>{if(t[n]===c)return n;if(t[i]===c)return i;if(t[s]===c)return s},o=r("setup-const")||r("setup-reactive-const")||r("literal-const");if(o)return e.inline?o:`$setup[${JSON.stringify(o)}]`;const a=r("setup-let")||r("setup-ref")||r("setup-maybe-ref");if(a)return e.inline?`${e.helperString(MS)}(${a})`:`$setup[${JSON.stringify(a)}]`;const l=r("props");if(l)return`${e.helperString(MS)}(${e.inline?"__props":"$props"}[${JSON.stringify(l)}])`}function Xx(n,e,t=n.props,i,s,r=!1){const{tag:o,loc:a,children:l}=n;let c=[];const u=[],h=[],d=l.length>0;let f=!1,p=0,g=!1,m=!1,_=!1,b=!1,w=!1,C=!1;const S=[],x=A=>{c.length&&(u.push(Ql(Dae(c),a)),c=[]),A&&u.push(A)},k=()=>{e.scopes.vFor>0&&c.push(Qn(gt("ref_for",!0),gt("true")))},L=({key:A,value:I})=>{if(Ko(A)){const T=A.content,N=obe(T);if(N&&(!i||s)&&T.toLowerCase()!=="onclick"&&T!=="onUpdate:modelValue"&&!Xoe(T)&&(b=!0),N&&Xoe(T)&&(C=!0),N&&I.type===14&&(I=I.arguments[0]),I.type===20||(I.type===4||I.type===8)&&Jl(I,e)>0)return;T==="ref"?g=!0:T==="class"?m=!0:T==="style"?_=!0:T!=="key"&&!S.includes(T)&&S.push(T),i&&(T==="class"||T==="style")&&!S.includes(T)&&S.push(T)}else w=!0};for(let A=0;A<t.length;A++){const I=t[A];if(I.type===6){const{loc:T,name:N,nameLoc:M,value:V}=I;let W=!0;if(N==="ref"&&(g=!0,k(),V&&e.inline)){const B=e.bindingMetadata[V.content];(B==="setup-let"||B==="setup-ref"||B==="setup-maybe-ref")&&(W=!1,c.push(Qn(gt("ref_key",!0),gt(V.content,!0,V.loc))))}if(N==="is"&&(IH(o)||V&&V.content.startsWith("vue:")))continue;c.push(Qn(gt(N,!0,M),gt(V?V.content:"",W,V?V.loc:T)))}else{const{name:T,arg:N,exp:M,loc:V,modifiers:W}=I,B=T==="bind",$=T==="on";if(T==="slot"){i||e.onError(Bn(40,V));continue}if(T==="once"||T==="memo"||T==="is"||B&&pf(N,"is")&&IH(o)||$&&r)continue;if((B&&pf(N,"key")||$&&d&&pf(N,"vue:before-update"))&&(f=!0),B&&pf(N,"ref")&&k(),!N&&(B||$)){w=!0,M?B?(k(),x(),u.push(M)):x({type:14,loc:V,callee:e.helper(F6),arguments:i?[M]:[M,"true"]}):e.onError(Bn(B?34:35,V));continue}B&&W.some(le=>le.content==="prop")&&(p|=32);const Y=e.directiveTransforms[T];if(Y){const{props:le,needRuntime:re}=Y(I,n,e);!r&&le.forEach(L),$&&N&&!Ko(N)?x(Ql(le,a)):c.push(...le),re&&(h.push(I),E_(re)&&Dye.set(I,re))}else wZ(T)||(h.push(I),d&&(f=!0))}}let E;if(u.length?(x(),u.length>1?E=ui(e.helper(Py),u,a):E=u[0]):c.length&&(E=Ql(Dae(c),a)),w?p|=16:(m&&!i&&(p|=2),_&&!i&&(p|=4),S.length&&(p|=8),b&&(p|=32)),!f&&(p===0||p===32)&&(g||C||h.length>0)&&(p|=512),!e.inSSR&&E)switch(E.type){case 15:let A=-1,I=-1,T=!1;for(let V=0;V<E.properties.length;V++){const W=E.properties[V].key;Ko(W)?W.content==="class"?A=V:W.content==="style"&&(I=V):W.isHandlerKey||(T=!0)}const N=E.properties[A],M=E.properties[I];T?E=ui(e.helper(RS),[E]):(N&&!Ko(N.value)&&(N.value=ui(e.helper(M6),[N.value])),M&&(_||M.value.type===4&&M.value.content.trim()[0]==="["||M.value.type===17)&&(M.value=ui(e.helper(O6),[M.value])));break;case 14:break;default:E=ui(e.helper(RS),[ui(e.helper(Vx),[E])]);break}return{props:E,directives:h,patchFlag:p,dynamicPropNames:S,shouldUseBlock:f}}function Dae(n){const e=new Map,t=[];for(let i=0;i<n.length;i++){const s=n[i];if(s.key.type===8||!s.key.isStatic){t.push(s);continue}const r=s.key.content,o=e.get(r);o?(r==="style"||r==="class"||obe(r))&&pqe(o,s):(e.set(r,s),t.push(s))}return t}function pqe(n,e){n.value.type===17?n.value.elements.push(e.value):n.value=Ef([n.value,e.value],n.loc)}function pQ(n,e){const t=[],i=Dye.get(n);if(i)t.push(e.helperString(i));else{const r=kH("v-"+n.name,e);r?t.push(r):(e.helper(A6),e.directives.add(n.name),t.push(ZI(n.name,"directive")))}const{loc:s}=n;if(n.exp&&t.push(n.exp),n.arg&&(n.exp||t.push("void 0"),t.push(n.arg)),Object.keys(n.modifiers).length){n.arg||(n.exp||t.push("void 0"),t.push("void 0"));const r=gt("true",!1,s);t.push(Ql(n.modifiers.map(o=>Qn(o,r)),s))}return Ef(t,n.loc)}function gqe(n){let e="[";for(let t=0,i=n.length;t<i;t++)e+=JSON.stringify(n[t]),t<i-1&&(e+=", ");return e+"]"}function IH(n){return n==="component"||n==="Component"}const mqe=(n,e)=>{if(BS(n)){const{children:t,loc:i}=n,{slotName:s,slotProps:r}=gQ(n,e),o=[e.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"];let a=2;r&&(o[2]=r,a=3),t.length&&(o[3]=Qc([],t,!1,!1,i),a=4),e.scopeId&&!e.slotted&&(a=5),o.splice(a),n.codegenNode=ui(e.helper(LZ),o,i)}};function gQ(n,e){let t='"default"',i;const s=[];for(let r=0;r<n.props.length;r++){const o=n.props[r];if(o.type===6)o.value&&(o.name==="name"?t=JSON.stringify(o.value.content):(o.name=Zl(o.name),s.push(o)));else if(o.name==="bind"&&pf(o.arg,"name")){if(o.exp)t=o.exp;else if(o.arg&&o.arg.type===4){const a=Zl(o.arg.content);t=o.exp=gt(a,!1,o.arg.loc),t=o.exp=Eo(o.exp,e)}}else o.name==="bind"&&o.arg&&Ko(o.arg)&&(o.arg.content=Zl(o.arg.content)),s.push(o)}if(s.length>0){const{props:r,directives:o}=Xx(n,e,s,!1,!1);i=r,o.length&&e.onError(Bn(36,o[0].loc))}return{slotName:t,slotProps:i}}const tB=(n,e,t,i)=>{const{loc:s,modifiers:r,arg:o}=n;!n.exp&&!r.length&&t.onError(Bn(35,s));let a;if(o.type===4)if(o.isStatic){let h=o.content;h.startsWith("vnode")&&t.onError(Bn(51,o.loc)),h.startsWith("vue:")&&(h=`vnode-${h.slice(4)}`);const d=e.tagType!==0||h.startsWith("vnode")||!/[A-Z]/.test(h)?A$e(Zl(h)):`on:${h}`;a=gt(d,!0,o.loc)}else a=yo([`${t.helperString(uO)}(`,o,")"]);else a=o,a.children.unshift(`${t.helperString(uO)}(`),a.children.push(")");let l=n.exp;l&&!l.content.trim()&&(l=void 0);let c=t.cacheHandlers&&!l&&!t.inVOnce;if(l){const h=GZ(l,t),d=!(h||iye(l,t)),f=l.content.includes(";");t.prefixIdentifiers&&(d&&t.addIdentifiers("$event"),l=n.exp=Eo(l,t,!1,f),d&&t.removeIdentifiers("$event"),c=t.cacheHandlers&&!t.inVOnce&&!(l.type===4&&l.constType>0)&&!(h&&e.tagType===1)&&!Wl(l,t.identifiers),c&&h&&(l.type===4?l.content=`${l.content} && ${l.content}(...args)`:l.children=[...l.children," && ",...l.children,"(...args)"])),(d||c&&h)&&(l=yo([`${d?t.isTS?"($event: any)":"$event":`${t.isTS?` +//@ts-ignore +`:""}(...args)`} => ${f?"{":"("}`,l,f?"}":")"]))}let u={props:[Qn(a,l||gt("() => {}",!1,s))]};return i&&(u=i(u)),c&&(u.props[0].value=t.cache(u.props[0].value)),u.props.forEach(h=>h.key.isHandlerKey=!0),u},_qe=(n,e)=>{if(n.type===0||n.type===1||n.type===11||n.type===10)return()=>{const t=n.children;let i,s=!1;for(let r=0;r<t.length;r++){const o=t[r];if(gk(o)){s=!0;for(let a=r+1;a<t.length;a++){const l=t[a];if(gk(l))i||(i=t[r]=yo([o],o.loc)),i.children.push(" + ",l),t.splice(a,1),a--;else{i=void 0;break}}}}if(!(!s||t.length===1&&(n.type===0||n.type===1&&n.tagType===0&&!n.props.find(r=>r.type===7&&!e.directiveTransforms[r.name]))))for(let r=0;r<t.length;r++){const o=t[r];if(gk(o)||o.type===8){const a=[];(o.type!==2||o.content!==" ")&&a.push(o),!e.ssr&&Jl(o,e)===0&&a.push(`1 /* ${m1[1]} */`),t[r]={type:12,content:o,loc:o.loc,codegenNode:ui(e.helper(D6),a)}}}}},Nae=new WeakSet,vqe=(n,e)=>{if(n.type===1&&Jr(n,"once",!0))return Nae.has(n)||e.inVOnce||e.inSSR?void 0:(Nae.add(n),e.inVOnce=!0,e.helper(qI),()=>{e.inVOnce=!1;const t=e.currentNode;t.codegenNode&&(t.codegenNode=e.cache(t.codegenNode,!0))})},iB=(n,e,t)=>{const{exp:i,arg:s}=n;if(!i)return t.onError(Bn(41,n.loc)),jL();const r=i.loc.source,o=i.type===4?i.content:r,a=t.bindingMetadata[r];if(a==="props"||a==="props-aliased")return t.onError(Bn(44,i.loc)),jL();const l=t.inline&&(a==="setup-let"||a==="setup-ref"||a==="setup-maybe-ref");if(!o.trim()||!GZ(i,t)&&!l)return t.onError(Bn(42,i.loc)),jL();if(t.prefixIdentifiers&&Ng(o)&&t.identifiers[o])return t.onError(Bn(43,i.loc)),jL();const c=s||gt("modelValue",!0),u=s?Ko(s)?`onUpdate:${Zl(s.content)}`:yo(['"onUpdate:" + ',s]):"onUpdate:modelValue";let h;const d=t.isTS?"($event: any)":"$event";if(l)if(a==="setup-ref")h=yo([`${d} => ((`,gt(r,!1,i.loc),").value = $event)"]);else{const p=a==="setup-let"?`${r} = $event`:"null";h=yo([`${d} => (${t.helperString(KI)}(${r}) ? (`,gt(r,!1,i.loc),`).value = $event : ${p})`])}else h=yo([`${d} => ((`,i,") = $event)"]);const f=[Qn(c,n.exp),Qn(u,h)];if(t.prefixIdentifiers&&!t.inVOnce&&t.cacheHandlers&&!Wl(i,t.identifiers)&&(f[1].value=t.cache(f[1].value)),n.modifiers.length&&e.tagType===1){const p=n.modifiers.map(m=>m.content).map(m=>(Ng(m)?m:JSON.stringify(m))+": true").join(", "),g=s?Ko(s)?`${s.content}Modifiers`:yo([s,' + "Modifiers"']):"modelModifiers";f.push(Qn(g,gt(`{ ${p} }`,!1,n.loc,2)))}return jL(f)};function jL(n=[]){return{props:n}}const Aae=new WeakSet,bqe=(n,e)=>{if(n.type===1){const t=Jr(n,"memo");return!t||Aae.has(n)?void 0:(Aae.add(n),()=>{const i=n.codegenNode||e.currentNode.codegenNode;i&&i.type===13&&(n.tagType!==1&&V6(i,e),n.codegenNode=ui(e.helper(W6),[t.exp,Qc(void 0,i),"_cache",String(e.cached.length)]),e.cached.push(null))})}};function mQ(n){return[[vqe,lqe,bqe,hqe,...n?[fQ,aQ]:[],mqe,Nye,dQ,_qe],{on:tB,bind:cQ,model:iB}]}function Aye(n,e={}){const t=e.onError||DZ,i=e.mode==="module",s=e.prefixIdentifiers===!0||i;!s&&e.cacheHandlers&&t(Bn(49)),e.scopeId&&!i&&t(Bn(50));const r=Lf({},e,{prefixIdentifiers:s}),o=wn(n)?K6(n,r):n,[a,l]=mQ(s);if(e.isTS){const{expressionPlugins:c}=e;(!c||!c.includes("typescript"))&&(e.expressionPlugins=[...c||[],"typescript"])}return ZZ(o,Lf({},r,{nodeTransforms:[...a,...e.nodeTransforms||[]],directiveTransforms:Lf({},l,e.directiveTransforms||{})})),oQ(o,r)}const yqe={DATA:"data",PROPS:"props",PROPS_ALIASED:"props-aliased",SETUP_LET:"setup-let",SETUP_CONST:"setup-const",SETUP_REACTIVE_CONST:"setup-reactive-const",SETUP_MAYBE_REF:"setup-maybe-ref",SETUP_REF:"setup-ref",OPTIONS:"options",LITERAL_CONST:"literal-const"},mk=()=>({props:[]}),_Q=Symbol("vModelRadio"),vQ=Symbol("vModelCheckbox"),bQ=Symbol("vModelText"),yQ=Symbol("vModelSelect"),wO=Symbol("vModelDynamic"),wQ=Symbol("vOnModifiersGuard"),CQ=Symbol("vOnKeysGuard"),SQ=Symbol("vShow"),w0=Symbol("Transition"),Yx=Symbol("TransitionGroup");IZ({[_Q]:"vModelRadio",[vQ]:"vModelCheckbox",[bQ]:"vModelText",[yQ]:"vModelSelect",[wO]:"vModelDynamic",[wQ]:"withModifiers",[CQ]:"withKeys",[SQ]:"vShow",[w0]:"Transition",[Yx]:"TransitionGroup"});const VS={parseMode:"html",isVoidTag:pbe,isNativeTag:n=>U$e(n)||j$e(n)||q$e(n),isPreTag:n=>n==="pre",decodeEntities:void 0,isBuiltInComponent:n=>{if(n==="Transition"||n==="transition")return w0;if(n==="TransitionGroup"||n==="transition-group")return Yx},getNamespace(n,e,t){let i=e?e.ns:t;if(e&&i===2)if(e.tag==="annotation-xml"){if(n==="svg")return 1;e.props.some(s=>s.type===6&&s.name==="encoding"&&s.value!=null&&(s.value.content==="text/html"||s.value.content==="application/xhtml+xml"))&&(i=0)}else/^m(?:[ions]|text)$/.test(e.tag)&&n!=="mglyph"&&n!=="malignmark"&&(i=0);else e&&i===1&&(e.tag==="foreignObject"||e.tag==="desc"||e.tag==="title")&&(i=0);if(i===0){if(n==="svg")return 1;if(n==="math")return 2}return i}},xQ=n=>{n.type===1&&n.props.forEach((e,t)=>{e.type===6&&e.name==="style"&&e.value&&(n.props[t]={type:7,name:"bind",arg:gt("style",!0,e.loc),exp:wqe(e.value.content,e.loc),modifiers:[],loc:e.loc})})},wqe=(n,e)=>{const t=dbe(n);return gt(JSON.stringify(t),!1,e,3)};function Ta(n,e){return Bn(n,e,LQ)}const Cqe={X_V_HTML_NO_EXPRESSION:53,53:"X_V_HTML_NO_EXPRESSION",X_V_HTML_WITH_CHILDREN:54,54:"X_V_HTML_WITH_CHILDREN",X_V_TEXT_NO_EXPRESSION:55,55:"X_V_TEXT_NO_EXPRESSION",X_V_TEXT_WITH_CHILDREN:56,56:"X_V_TEXT_WITH_CHILDREN",X_V_MODEL_ON_INVALID_ELEMENT:57,57:"X_V_MODEL_ON_INVALID_ELEMENT",X_V_MODEL_ARG_ON_ELEMENT:58,58:"X_V_MODEL_ARG_ON_ELEMENT",X_V_MODEL_ON_FILE_INPUT_ELEMENT:59,59:"X_V_MODEL_ON_FILE_INPUT_ELEMENT",X_V_MODEL_UNNECESSARY_VALUE:60,60:"X_V_MODEL_UNNECESSARY_VALUE",X_V_SHOW_NO_EXPRESSION:61,61:"X_V_SHOW_NO_EXPRESSION",X_TRANSITION_INVALID_CHILDREN:62,62:"X_TRANSITION_INVALID_CHILDREN",X_IGNORED_SIDE_EFFECT_TAG:63,63:"X_IGNORED_SIDE_EFFECT_TAG",__EXTEND_POINT__:64,64:"__EXTEND_POINT__"},LQ={53:"v-html is missing expression.",54:"v-html will override element children.",55:"v-text is missing expression.",56:"v-text will override element children.",57:"v-model can only be used on <input>, <textarea> and <select> elements.",58:"v-model argument is not supported on plain elements.",59:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",60:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",61:"v-show is missing expression.",62:"<Transition> expects exactly one child element or component.",63:"Tags with side effect (<script> and <style>) are ignored in client component templates."},Sqe=(n,e,t)=>{const{exp:i,loc:s}=n;return i||t.onError(Ta(53,s)),e.children.length&&(t.onError(Ta(54,s)),e.children.length=0),{props:[Qn(gt("innerHTML",!0,s),i||gt("",!0))]}},xqe=(n,e,t)=>{const{exp:i,loc:s}=n;return i||t.onError(Ta(55,s)),e.children.length&&(t.onError(Ta(56,s)),e.children.length=0),{props:[Qn(gt("textContent",!0),i?Jl(i,t)>0?i:ui(t.helperString(uN),[i],s):gt("",!0))]}},Lqe=(n,e,t)=>{const i=iB(n,e,t);if(!i.props.length||e.tagType===1)return i;n.arg&&t.onError(Ta(58,n.arg.loc));function s(){const a=Jr(e,"bind");a&&pf(a.arg,"value")&&t.onError(Ta(60,a.loc))}const{tag:r}=e,o=t.isCustomElement(r);if(r==="input"||r==="textarea"||r==="select"||o){let a=bQ,l=!1;if(r==="input"||o){const c=rc(e,"type");if(c){if(c.type===7)a=wO;else if(c.value)switch(c.value.content){case"radio":a=_Q;break;case"checkbox":a=vQ;break;case"file":l=!0,t.onError(Ta(59,n.loc));break;default:s();break}}else q6(e)?a=wO:s()}else r==="select"?a=yQ:s();l||(i.needRuntime=t.helper(a))}else t.onError(Ta(57,n.loc));return i.props=i.props.filter(a=>!(a.key.type===4&&a.key.content==="modelValue")),i},Eqe=Ba("passive,once,capture"),kqe=Ba("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Iqe=Ba("left,right"),Pye=Ba("onkeyup,onkeydown,onkeypress",!0),Tqe=(n,e,t,i)=>{const s=[],r=[],o=[];for(let a=0;a<e.length;a++){const l=e[a].content;Eqe(l)?o.push(l):Iqe(l)?Ko(n)?Pye(n.content)?s.push(l):r.push(l):(s.push(l),r.push(l)):kqe(l)?r.push(l):s.push(l)}return{keyModifiers:s,nonKeyModifiers:r,eventOptionModifiers:o}},Pae=(n,e)=>Ko(n)&&n.content.toLowerCase()==="onclick"?gt(e,!0):n.type!==4?yo(["(",n,`) === "onClick" ? "${e}" : (`,n,")"]):n,Dqe=(n,e,t)=>tB(n,e,t,i=>{const{modifiers:s}=n;if(!s.length)return i;let{key:r,value:o}=i.props[0];const{keyModifiers:a,nonKeyModifiers:l,eventOptionModifiers:c}=Tqe(r,s,t,n.loc);if(l.includes("right")&&(r=Pae(r,"onContextmenu")),l.includes("middle")&&(r=Pae(r,"onMouseup")),l.length&&(o=ui(t.helper(wQ),[o,JSON.stringify(l)])),a.length&&(!Ko(r)||Pye(r.content))&&(o=ui(t.helper(CQ),[o,JSON.stringify(a)])),c.length){const u=c.map(Q1).join("");r=Ko(r)?gt(`${r.content}${u}`,!0):yo(["(",r,`) + "${u}"`])}return{props:[Qn(r,o)]}}),Nqe=(n,e,t)=>{const{exp:i,loc:s}=n;return i||t.onError(Ta(61,s)),{props:[],needRuntime:t.helper(SQ)}},Aqe=(n,e)=>{if(n.type===1&&n.tagType===1&&e.isBuiltInComponent(n.tag)===w0)return()=>{if(!n.children.length)return;Rye(n)&&e.onError(Ta(62,{start:n.children[0].loc.start,end:n.children[n.children.length-1].loc.end,source:""}));const i=n.children[0];if(i.type===1)for(const s of i.props)s.type===7&&s.name==="show"&&n.props.push({type:6,name:"persisted",nameLoc:n.loc,value:void 0,loc:n.loc})}};function Rye(n){const e=n.children=n.children.filter(i=>i.type!==3&&!(i.type===2&&!i.content.trim())),t=e[0];return e.length!==1||t.type===11||t.type===9&&t.branches.some(Rye)}const Pqe=/__VUE_EXP_START__(.*?)__VUE_EXP_END__/g,Rqe=(n,e,t)=>{if(e.scopes.vSlot>0)return;const i=t.type===1&&t.codegenNode&&t.codegenNode.type===13&&t.codegenNode.children&&!Lo(t.codegenNode.children)&&t.codegenNode.children.type===20;let s=0,r=0;const o=[],a=c=>{if(s>=20||r>=5){const u=ui(e.helper(N6),[JSON.stringify(o.map(h=>EQ(h,e)).join("")).replace(Pqe,'" + $1 + "'),String(o.length)]);if(i)t.codegenNode.children.value=Ef([u]);else if(o[0].codegenNode.value=u,o.length>1){const h=o.length-1;n.splice(c-o.length+1,h);const d=e.cached.indexOf(o[o.length-1].codegenNode);if(d>-1){for(let f=d;f<e.cached.length;f++){const p=e.cached[f];p&&(p.index-=h)}e.cached.splice(d-h+1,h)}return h}}return 0};let l=0;for(;l<n.length;l++){const c=n[l];if(i||Mqe(c)){const h=Bqe(c);if(h){s+=h[0],r+=h[1],o.push(c);continue}}l-=a(l),s=0,r=0,o.length=0}a(l)},Mqe=n=>{if((n.type===1&&n.tagType===0||n.type===12)&&n.codegenNode&&n.codegenNode.type===20)return n.codegenNode},Oqe=/^(data|aria)-/,Rae=(n,e)=>(e===0?Z$e(n):e===1?Q$e(n):!1)||Oqe.test(n),Fqe=Ba("caption,thead,tr,th,tbody,td,tfoot,colgroup,col");function Bqe(n){if(n.type===1&&Fqe(n.tag))return!1;if(n.type===12)return[1,0];let e=1,t=n.props.length>0?1:0,i=!1;const s=()=>(i=!0,!1);function r(o){const a=o.tag==="option"&&o.ns===0;for(let l=0;l<o.props.length;l++){const c=o.props[l];if(c.type===6&&!Rae(c.name,o.ns)||c.type===7&&c.name==="bind"&&(c.arg&&(c.arg.type===8||c.arg.isStatic&&!Rae(c.arg.content,o.ns))||c.exp&&(c.exp.type===8||c.exp.constType<3)||a&&pf(c.arg,"value")&&c.exp&&c.exp.ast&&c.exp.ast.type!=="StringLiteral"))return s()}for(let l=0;l<o.children.length;l++){e++;const c=o.children[l];if(c.type===1&&(c.props.length>0&&t++,r(c),i))return!1}return!0}return r(n)?[e,t]:!1}function EQ(n,e){if(wn(n))return n;if(E_(n))return"";switch(n.type){case 1:return Wqe(n,e);case 2:return ff(n.content);case 3:return`<!--${ff(n.content)}-->`;case 5:return ff(I6(pb(n.content)));case 8:return ff(pb(n));case 12:return EQ(n.content,e);default:return""}}function Wqe(n,e){let t=`<${n.tag}`,i="";for(let s=0;s<n.props.length;s++){const r=n.props[s];if(r.type===6)t+=` ${r.name}`,r.value&&(t+=`="${ff(r.value.content)}"`);else if(r.type===7)if(r.name==="bind"){const o=r.exp;if(o.content[0]==="_"){t+=` ${r.arg.content}="__VUE_EXP_START__${o.content}__VUE_EXP_END__"`;continue}if(gbe(r.arg.content)&&o.content==="false")continue;let a=pb(o);if(a!=null){const l=r.arg&&r.arg.content;l==="class"?a=fbe(a):l==="style"&&(a=W$e(hbe(a))),t+=` ${r.arg.content}="${ff(a)}"`}}else r.name==="html"?i=pb(r.exp):r.name==="text"&&(i=ff(I6(pb(r.exp))))}if(e.scopeId&&(t+=` ${e.scopeId}`),t+=">",i)t+=i;else for(let s=0;s<n.children.length;s++)t+=EQ(n.children[s],e);return pbe(n.tag)||(t+=`</${n.tag}>`),t}function pb(n){if(n.type===4)return new Function(`return (${n.content})`)();{let e="";return n.children.forEach(t=>{wn(t)||E_(t)||(t.type===2?e+=t.content:t.type===5?e+=I6(pb(t.content)):e+=pb(t))}),e}}const Vqe=(n,e)=>{n.type===1&&n.tagType===0&&(n.tag==="script"||n.tag==="style")&&(e.onError(Ta(63,n.loc)),e.removeNode())};function Hqe(n,e){return n in Mae?Mae[n].has(e):e in Oae?Oae[e].has(n):!(n in Fae&&Fae[n].has(e)||e in Bae&&Bae[e].has(n))}const Y0=new Set(["h1","h2","h3","h4","h5","h6"]),hv=new Set([]),Mae={head:new Set(["base","basefront","bgsound","link","meta","title","noscript","noframes","style","script","template"]),optgroup:new Set(["option"]),select:new Set(["optgroup","option","hr"]),table:new Set(["caption","colgroup","tbody","tfoot","thead"]),tr:new Set(["td","th"]),colgroup:new Set(["col"]),tbody:new Set(["tr"]),thead:new Set(["tr"]),tfoot:new Set(["tr"]),script:hv,iframe:hv,option:hv,textarea:hv,style:hv,title:hv},Oae={html:hv,body:new Set(["html"]),head:new Set(["html"]),td:new Set(["tr"]),colgroup:new Set(["table"]),caption:new Set(["table"]),tbody:new Set(["table"]),tfoot:new Set(["table"]),col:new Set(["colgroup"]),th:new Set(["tr"]),thead:new Set(["table"]),tr:new Set(["tbody","thead","tfoot"]),dd:new Set(["dl","div"]),dt:new Set(["dl","div"]),figcaption:new Set(["figure"]),summary:new Set(["details"]),area:new Set(["map"])},Fae={p:new Set(["address","article","aside","blockquote","center","details","dialog","dir","div","dl","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","menu","ol","p","pre","section","table","ul"]),svg:new Set(["b","blockquote","br","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","hr","i","img","li","menu","meta","ol","p","pre","ruby","s","small","span","strong","sub","sup","table","u","ul","var"])},Bae={a:new Set(["a"]),button:new Set(["button"]),dd:new Set(["dd","dt"]),dt:new Set(["dd","dt"]),form:new Set(["form"]),li:new Set(["li"]),h1:Y0,h2:Y0,h3:Y0,h4:Y0,h5:Y0,h6:Y0},$qe=(n,e)=>{if(n.type===1&&n.tagType===0&&e.parent&&e.parent.type===1&&e.parent.tagType===0&&!Hqe(e.parent.tag,n.tag)){const t=new SyntaxError(`<${n.tag}> cannot be child of <${e.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`);t.loc=n.loc,e.onWarn(t)}},kQ=[xQ,Aqe,$qe],IQ={cloak:mk,html:Sqe,text:xqe,model:Lqe,on:Dqe,show:Nqe};function zqe(n,e={}){return Aye(n,Lf({},VS,e,{nodeTransforms:[Vqe,...kQ,...e.nodeTransforms||[]],directiveTransforms:Lf({},IQ,e.directiveTransforms||{}),transformHoist:Rqe}))}function Uqe(n,e={}){return K6(n,Lf({},VS,e))}var TH=Object.freeze({__proto__:null,BASE_TRANSITION:CZ,BindingTypes:yqe,CAMELIZE:cO,CAPITALIZE:bbe,CREATE_BLOCK:SZ,CREATE_COMMENT:Wx,CREATE_ELEMENT_BLOCK:xZ,CREATE_ELEMENT_VNODE:T6,CREATE_SLOTS:EZ,CREATE_STATIC:N6,CREATE_TEXT:D6,CREATE_VNODE:lN,CompilerDeprecationTypes:_ze,ConstantTypes:rze,DOMDirectiveTransforms:IQ,DOMErrorCodes:Cqe,DOMErrorMessages:LQ,DOMNodeTransforms:kQ,ElementTypes:sze,ErrorCodes:wze,FRAGMENT:PS,GUARD_REACTIVE_PROPS:Vx,IS_MEMO_SAME:kZ,IS_REF:KI,KEEP_ALIVE:UI,MERGE_PROPS:Py,NORMALIZE_CLASS:M6,NORMALIZE_PROPS:RS,NORMALIZE_STYLE:O6,Namespaces:ize,NodeTypes:nze,OPEN_BLOCK:J1,POP_SCOPE_ID:wbe,PUSH_SCOPE_ID:ybe,RENDER_LIST:R6,RENDER_SLOT:LZ,RESOLVE_COMPONENT:jI,RESOLVE_DIRECTIVE:A6,RESOLVE_DYNAMIC_COMPONENT:cN,RESOLVE_FILTER:vbe,SET_BLOCK_TRACKING:qI,SUSPENSE:Bx,TELEPORT:db,TO_DISPLAY_STRING:uN,TO_HANDLERS:F6,TO_HANDLER_KEY:uO,TRANSITION:w0,TRANSITION_GROUP:Yx,TS_NODE_TYPES:qZ,UNREF:MS,V_MODEL_CHECKBOX:vQ,V_MODEL_DYNAMIC:wO,V_MODEL_RADIO:_Q,V_MODEL_SELECT:yQ,V_MODEL_TEXT:bQ,V_ON_WITH_KEYS:CQ,V_ON_WITH_MODIFIERS:wQ,V_SHOW:SQ,WITH_CTX:B6,WITH_DIRECTIVES:P6,WITH_MEMO:W6,advancePositionWithClone:SH,advancePositionWithMutation:XZ,assert:xH,baseCompile:Aye,baseParse:K6,buildDirectiveArgs:pQ,buildProps:Xx,buildSlots:eT,checkCompatEnabled:yze,compile:zqe,convertToBlock:V6,createArrayExpression:Ef,createAssignmentExpression:PR,createBlockStatement:hN,createCacheExpression:Cbe,createCallExpression:ui,createCompilerError:Bn,createCompoundExpression:yo,createConditionalExpression:Mh,createDOMCompilerError:Ta,createForLoopParams:JI,createFunctionExpression:Qc,createIfStatement:dO,createInterpolation:hO,createObjectExpression:Ql,createObjectProperty:Qn,createReturnStatement:xbe,createRoot:y0,createSequenceExpression:Sbe,createSimpleExpression:gt,createStructuralDirectiveTransform:pN,createTemplateLiteral:TZ,createTransformContext:fN,createVNodeCall:OS,errorMessages:NZ,extractIdentifiers:Pc,findDir:Jr,findProp:rc,forAliasRE:rye,generate:oQ,generateCodeFrame:AS,getBaseTransformPreset:mQ,getConstantType:Jl,getMemoedVNodeCall:sye,getVNodeBlockHelper:My,getVNodeHelper:Ry,hasDynamicKeyVBind:q6,hasScopeRef:Wl,helperNameMap:$l,injectProp:YI,isCoreComponent:KZ,isFnExpression:iye,isFnExpressionBrowser:dje,isFnExpressionNode:tye,isFunctionType:Jm,isInDestructureAssignment:$x,isInNewExpression:Xbe,isMemberExpression:GZ,isMemberExpressionBrowser:uje,isMemberExpressionNode:eye,isReferencedIdentifier:UZ,isSimpleIdentifier:Ng,isSlotOutlet:BS,isStaticArgOf:pf,isStaticExp:Ko,isStaticProperty:zx,isStaticPropertyKey:Jbe,isTemplateNode:FS,isText:gk,isVSlot:YZ,locStub:Ks,noopDirectiveTransform:mk,parse:Uqe,parserOptions:VS,processExpression:Eo,processFor:uQ,processIf:lQ,processSlotOutlet:gQ,registerRuntimeHelpers:IZ,resolveComponentType:eB,stringifyExpression:J6,toValidAssetId:ZI,trackSlotScopes:dQ,trackVForSlotScopes:fQ,transform:ZZ,transformBind:cQ,transformElement:Nye,transformExpression:aQ,transformModel:iB,transformOn:tB,transformStyle:xQ,traverseNode:Ux,unwrapTSNode:Jc,walkBlockDeclarations:Ybe,walkFunctionParams:jZ,walkIdentifiers:Hx,warnDeprecation:Ibe});function jqe(n,e){for(;n.length<e;)n="0"+n;return n}function up(n,e){var t,i,s;if(e.length===0)return n;for(t=0,s=e.length;t<s;t++)i=e.charCodeAt(t),n=(n<<5)-n+i,n|=0;return n<0?n*-2:n}function qqe(n,e,t){return Object.keys(e).sort().reduce(i,n);function i(s,r){return Mye(s,e[r],r,t)}}function Mye(n,e,t,i){var s=up(up(up(n,t),Kqe(e)),typeof e);if(e===null)return up(s,"null");if(e===void 0)return up(s,"undefined");if(typeof e=="object"||typeof e=="function"){if(i.indexOf(e)!==-1)return up(s,"[Circular]"+t);i.push(e);var r=qqe(s,e,i);if(!("valueOf"in e)||typeof e.valueOf!="function")return r;try{return up(r,String(e.valueOf()))}catch(o){return up(r,"[valueOf exception]"+(o.stack||o.message))}}return up(s,e.toString())}function Kqe(n){return Object.prototype.toString.call(n)}function Gqe(n){return jqe(Mye(0,n,"",[]).toString(16),8)}var Xqe=Gqe,Yqe=H6(Xqe);const CO="useCssVars";function Oye(n,e,t,i=!1){return`{ + ${n.map(s=>`"${i?"--":""}${Fye(e,s,t,i)}": (${s})`).join(`, + `)} +}`}function Fye(n,e,t,i=!1){return t?Yqe(n+e):`${n}-${tze(e,i)}`}function Bye(n){return n=n.trim(),n[0]==="'"&&n[n.length-1]==="'"||n[0]==='"'&&n[n.length-1]==='"'?n.slice(1,-1):n}const zR=/v-bind\s*\(/g;function Zqe(n){const e=[];return n.styles.forEach(t=>{let i;const s=t.content.replace(/\/\*([\s\S]*?)\*\/|\/\/.*/g,"");for(;i=zR.exec(s);){const r=i.index+i[0].length,o=Wye(s,r);if(o!==null){const a=Bye(s.slice(r,o));e.includes(a)||e.push(a)}}}),e}function Wye(n,e){let t=0,i=0;for(let s=e;s<n.length;s++){const r=n.charAt(s);switch(t){case 0:if(r==="'")t=1;else if(r==='"')t=2;else if(r==="(")i++;else if(r===")")if(i>0)i--;else return s;break;case 1:r==="'"&&(t=0);break;case 2:r==='"'&&(t=0);break}}return null}const Vye=n=>{const{id:e,isProd:t}=n;return{postcssPlugin:"vue-sfc-vars",Declaration(i){const s=i.value;if(zR.test(s)){zR.lastIndex=0;let r="",o=0,a;for(;a=zR.exec(s);){const l=a.index+a[0].length,c=Wye(s,l);if(c!==null){const u=Bye(s.slice(l,c));r+=s.slice(o,a.index)+`var(--${Fye(e,u,t)})`,o=c+1}}i.value=r+s.slice(o)}}}};Vye.postcss=!0;function Hye(n,e,t,i){const s=Oye(n,t,i),r=gt(s,!1),o=fN(y0([]),{prefixIdentifiers:!0,inline:!0,bindingMetadata:e.__isScriptSetup===!1?void 0:e}),a=Eo(r,o),l=a.type===4?a.content:a.children.map(c=>typeof c=="string"?c:c.content).join("");return`_${CO}(_ctx => (${l}))`}function Qqe(n,e,t,i,s){return` +import { ${CO} as _${CO} } from 'vue' +const __injectCSSVars__ = () => { +${Hye(n,e,t,i)}} +const __setup__ = ${s}.setup +${s}.setup = __setup__ + ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) } + : __injectCSSVars__ +`}var e_=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};function $ye(){throw new Error("setTimeout has not been defined")}function zye(){throw new Error("clearTimeout has not been defined")}var Lm=$ye,Em=zye;typeof e_.setTimeout=="function"&&(Lm=setTimeout);typeof e_.clearTimeout=="function"&&(Em=clearTimeout);function Uye(n){if(Lm===setTimeout)return setTimeout(n,0);if((Lm===$ye||!Lm)&&setTimeout)return Lm=setTimeout,setTimeout(n,0);try{return Lm(n,0)}catch{try{return Lm.call(null,n,0)}catch{return Lm.call(this,n,0)}}}function Jqe(n){if(Em===clearTimeout)return clearTimeout(n);if((Em===zye||!Em)&&clearTimeout)return Em=clearTimeout,clearTimeout(n);try{return Em(n)}catch{try{return Em.call(null,n)}catch{return Em.call(this,n)}}}var Qp=[],AC=!1,Zv,UR=-1;function eKe(){!AC||!Zv||(AC=!1,Zv.length?Qp=Zv.concat(Qp):UR=-1,Qp.length&&jye())}function jye(){if(!AC){var n=Uye(eKe);AC=!0;for(var e=Qp.length;e;){for(Zv=Qp,Qp=[];++UR<e;)Zv&&Zv[UR].run();UR=-1,e=Qp.length}Zv=null,AC=!1,Jqe(n)}}function tKe(n){var e=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];Qp.push(new qye(n,e)),Qp.length===1&&!AC&&Uye(jye)}function qye(n,e){this.fun=n,this.array=e}qye.prototype.run=function(){this.fun.apply(null,this.array)};var iKe="browser",nKe="browser",sKe=!0,rKe={},oKe=[],aKe="",lKe={},cKe={},uKe={};function C0(){}var hKe=C0,dKe=C0,fKe=C0,pKe=C0,gKe=C0,mKe=C0,_Ke=C0;function vKe(n){throw new Error("process.binding is not supported")}function bKe(){return"/"}function yKe(n){throw new Error("process.chdir is not supported")}function wKe(){return 0}var kw=e_.performance||{},CKe=kw.now||kw.mozNow||kw.msNow||kw.oNow||kw.webkitNow||function(){return new Date().getTime()};function SKe(n){var e=CKe.call(kw)*.001,t=Math.floor(e),i=Math.floor(e%1*1e9);return n&&(t=t-n[0],i=i-n[1],i<0&&(t--,i+=1e9)),[t,i]}var xKe=new Date;function LKe(){var n=new Date,e=n-xKe;return e/1e3}var oc={nextTick:tKe,title:iKe,browser:sKe,env:rKe,argv:oKe,version:aKe,versions:lKe,on:hKe,addListener:dKe,once:fKe,off:pKe,removeListener:gKe,removeAllListeners:mKe,emit:_Ke,binding:vKe,cwd:bKe,chdir:yKe,umask:wKe,hrtime:SKe,platform:nKe,release:cKe,config:uKe,uptime:LKe};function nB(n=500){return new Map}function Kye(n,e){return EKe(e).has(n)}const Wae=nB();function EKe(n){const{content:e,ast:t}=n.template,i=Wae.get(e);if(i)return i;const s=new Set;t.children.forEach(r);function r(o){var a;switch(o.type){case 1:let l=o.tag;l.includes(".")&&(l=l.split(".")[0].trim()),!VS.isNativeTag(l)&&!VS.isBuiltInComponent(l)&&(s.add(Zl(l)),s.add(Q1(Zl(l))));for(let c=0;c<o.props.length;c++){const u=o.props[c];u.type===7&&(wZ(u.name)||s.add(`v${Q1(Zl(u.name))}`),u.arg&&!u.arg.isStatic&&BA(s,u.arg),u.name==="for"?BA(s,u.forParseResult.source):u.exp?BA(s,u.exp):u.name==="bind"&&!u.exp&&s.add(Zl(u.arg.content))),u.type===6&&u.name==="ref"&&((a=u.value)!=null&&a.content)&&s.add(u.value.content)}o.children.forEach(r);break;case 5:BA(s,o.content);break}}return Wae.set(e,s),s}function BA(n,e){e.ast?Hx(e.ast,t=>n.add(t.name)):e.ast===null&&n.add(e.content)}var kKe=Object.defineProperty,IKe=Object.defineProperties,TKe=Object.getOwnPropertyDescriptors,Vae=Object.getOwnPropertySymbols,DKe=Object.prototype.hasOwnProperty,NKe=Object.prototype.propertyIsEnumerable,Hae=(n,e,t)=>e in n?kKe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Gye=(n,e)=>{for(var t in e||(e={}))DKe.call(e,t)&&Hae(n,t,e[t]);if(Vae)for(var t of Vae(e))NKe.call(e,t)&&Hae(n,t,e[t]);return n},Xye=(n,e)=>IKe(n,TKe(e));const Yye="anonymous.vue",DH=nB();function AKe(n,e){var t;return n+JSON.stringify(Xye(Gye({},e),{compiler:{parse:(t=e.compiler)==null?void 0:t.parse}}),(i,s)=>typeof s=="function"?s.toString():s)}function Zye(n,e={}){const t=AKe(n,e),i=DH.get(t);if(i)return i;const{sourceMap:s=!0,filename:r=Yye,sourceRoot:o="",pad:a=!1,ignoreEmpty:l=!0,compiler:c=TH,templateParseOptions:u={}}=e,h={filename:r,source:n,template:null,script:null,scriptSetup:null,styles:[],customBlocks:[],cssVars:[],slotted:!1,shouldForceReload:_=>WKe(_,h)},d=[];c.parse(n,Xye(Gye({parseMode:"sfc",prefixIdentifiers:!0},u),{onError:_=>{d.push(_)}})).children.forEach(_=>{if(_.type===1&&!(l&&_.tag!=="template"&&BKe(_)&&!FKe(_)))switch(_.tag){case"template":if(h.template)d.push($ae(_));else{const S=h.template=WA(_,n,!1);if(S.attrs.src||(S.ast=y0(_.children,n)),S.attrs.functional){const x=new SyntaxError("<template functional> is no longer supported in Vue 3, since functional components no longer have significant performance difference from stateful ones. Just use a normal <template> instead.");x.loc=_.props.find(k=>k.type===6&&k.name==="functional").loc,d.push(x)}}break;case"script":const b=WA(_,n,a),w=!!b.attrs.setup;if(w&&!h.scriptSetup){h.scriptSetup=b;break}if(!w&&!h.script){h.script=b;break}d.push($ae(_,w));break;case"style":const C=WA(_,n,a);C.attrs.vars&&d.push(new SyntaxError("<style vars> has been replaced by a new proposal: https://github.com/vuejs/rfcs/pull/231")),h.styles.push(C);break;default:h.customBlocks.push(WA(_,n,a));break}}),!h.template&&!h.script&&!h.scriptSetup&&d.push(new SyntaxError(`At least one <template> or <script> is required in a single file component. ${h.filename}`)),h.scriptSetup&&(h.scriptSetup.src&&(d.push(new SyntaxError('<script setup> cannot use the "src" attribute because its syntax will be ambiguous outside of the component.')),h.scriptSetup=null),h.script&&h.script.src&&(d.push(new SyntaxError('<script> cannot use the "src" attribute when <script setup> is also present because they must be processed together.')),h.script=null));let p=0;if(h.template&&(h.template.lang==="pug"||h.template.lang==="jade")&&([h.template.content,p]=VKe(h.template.content)),s){const _=(b,w=0)=>{b&&!b.src&&(b.map=MKe(r,n,b.content,o,!a||b.type==="template"?b.loc.start.line-1:0,w))};_(h.template,p),_(h.script),h.styles.forEach(b=>_(b)),h.customBlocks.forEach(b=>_(b))}h.cssVars=Zqe(h);const g=/(?:::v-|:)slotted\(/;h.slotted=h.styles.some(_=>_.scoped&&g.test(_.content));const m={descriptor:h,errors:d};return DH.set(t,m),m}function $ae(n,e=!1){const t=new SyntaxError(`Single file component can contain only one <${n.tag}${e?" setup":""}> element`);return t.loc=n.loc,t}function WA(n,e,t){const i=n.tag,s=n.innerLoc,r={},o={type:i,content:e.slice(s.start.offset,s.end.offset),loc:s,attrs:r};return t&&(o.content=OKe(e,o,t)+o.content),n.props.forEach(a=>{if(a.type===6){const l=a.name;r[l]=a.value&&a.value.content||!0,l==="lang"?o.lang=a.value&&a.value.content:l==="src"?o.src=a.value&&a.value.content:i==="style"?l==="scoped"?o.scoped=!0:l==="module"&&(o.module=r[l]):i==="script"&&l==="setup"&&(o.setup=r.setup)}}),o}const Qye=/\r?\n/g,PKe=/^(?:\/\/)?\s*$/,RKe=/./g;function MKe(n,e,t,i,s,r){const o=new rQ({file:n.replace(/\\/g,"/"),sourceRoot:i.replace(/\\/g,"/")});return o.setSourceContent(n,e),o._sources.add(n),t.split(Qye).forEach((a,l)=>{if(!PKe.test(a)){const c=l+1+s,u=l+1;for(let h=0;h<a.length;h++)/\s/.test(a[h])||o._mappings.add({originalLine:c,originalColumn:h+r,generatedLine:u,generatedColumn:h,source:n,name:null})}}),o.toJSON()}function OKe(n,e,t){if(n=n.slice(0,e.loc.start.offset),t==="space")return n.replace(RKe," ");{const i=n.split(Qye).length,s=e.type==="script"&&!e.lang?`// +`:` +`;return Array(i).join(s)}}function FKe(n){return n.props.some(e=>e.type!==6?!1:e.name==="src")}function BKe(n){for(let e=0;e<n.children.length;e++){const t=n.children[e];if(t.type!==2||t.content.trim()!=="")return!1}return!0}function WKe(n,e){if(!e.scriptSetup||e.scriptSetup.lang!=="ts"&&e.scriptSetup.lang!=="tsx")return!1;for(const t in n)if(!n[t].isUsedInTemplate&&Kye(t,e))return!0;return!1}function VKe(n){const e=n.split(` +`),t=e.reduce(function(i,s){var r,o;if(s.trim()==="")return i;const a=((o=(r=s.match(/^\s*/))==null?void 0:r[0])==null?void 0:o.length)||0;return Math.min(a,i)},1/0);return t===0?[n,t]:[e.map(function(i){return i.slice(t)}).join(` +`),t]}function Jye(n,e){for(var t=0,i=n.length-1;i>=0;i--){var s=n[i];s==="."?n.splice(i,1):s===".."?(n.splice(i,1),t++):t&&(n.splice(i,1),t--)}if(e)for(;t--;t)n.unshift("..");return n}var HKe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,TQ=function(n){return HKe.exec(n).slice(1)};function SO(){for(var n="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var i=t>=0?arguments[t]:"/";if(typeof i!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!i)continue;n=i+"/"+n,e=i.charAt(0)==="/"}return n=Jye(PQ(n.split("/"),function(s){return!!s}),!e).join("/"),(e?"/":"")+n||"."}function DQ(n){var e=NQ(n),t=$Ke(n,-1)==="/";return n=Jye(PQ(n.split("/"),function(i){return!!i}),!e).join("/"),!n&&!e&&(n="."),n&&t&&(n+="/"),(e?"/":"")+n}function NQ(n){return n.charAt(0)==="/"}function e0e(){var n=Array.prototype.slice.call(arguments,0);return DQ(PQ(n,function(e,t){if(typeof e!="string")throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))}function t0e(n,e){n=SO(n).substr(1),e=SO(e).substr(1);function t(c){for(var u=0;u<c.length&&c[u]==="";u++);for(var h=c.length-1;h>=0&&c[h]==="";h--);return u>h?[]:c.slice(u,h-u+1)}for(var i=t(n.split("/")),s=t(e.split("/")),r=Math.min(i.length,s.length),o=r,a=0;a<r;a++)if(i[a]!==s[a]){o=a;break}for(var l=[],a=o;a<i.length;a++)l.push("..");return l=l.concat(s.slice(o)),l.join("/")}var i0e="/",n0e=":";function xO(n){var e=TQ(n),t=e[0],i=e[1];return!t&&!i?".":(i&&(i=i.substr(0,i.length-1)),t+i)}function s0e(n,e){var t=TQ(n)[2];return e&&t.substr(-1*e.length)===e&&(t=t.substr(0,t.length-e.length)),t}function AQ(n){return TQ(n)[3]}var Pg={extname:AQ,basename:s0e,dirname:xO,sep:i0e,delimiter:n0e,relative:t0e,join:e0e,isAbsolute:NQ,normalize:DQ,resolve:SO};function PQ(n,e){if(n.filter)return n.filter(e);for(var t=[],i=0;i<n.length;i++)e(n[i],i,n)&&t.push(n[i]);return t}var $Ke="ab".substr(-1)==="b"?function(n,e,t){return n.substr(e,t)}:function(n,e,t){return e<0&&(e=n.length+e),n.substr(e,t)},zKe=Object.freeze({__proto__:null,basename:s0e,default:Pg,delimiter:n0e,dirname:xO,extname:AQ,isAbsolute:NQ,join:e0e,normalize:DQ,relative:t0e,resolve:SO,sep:i0e});/*! https://mths.be/punycode v1.4.1 by @mathias */var Q9=2147483647,_k=36,r0e=1,NH=26,UKe=38,jKe=700,qKe=72,KKe=128,GKe="-",XKe=/[^\x20-\x7E]/,YKe=/[\x2E\u3002\uFF0E\uFF61]/g,ZKe={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},J9=_k-r0e,Fw=Math.floor,e7=String.fromCharCode;function zae(n){throw new RangeError(ZKe[n])}function QKe(n,e){for(var t=n.length,i=[];t--;)i[t]=e(n[t]);return i}function JKe(n,e){var t=n.split("@"),i="";t.length>1&&(i=t[0]+"@",n=t[1]),n=n.replace(YKe,".");var s=n.split("."),r=QKe(s,e).join(".");return i+r}function eGe(n){for(var e=[],t=0,i=n.length,s,r;t<i;)s=n.charCodeAt(t++),s>=55296&&s<=56319&&t<i?(r=n.charCodeAt(t++),(r&64512)==56320?e.push(((s&1023)<<10)+(r&1023)+65536):(e.push(s),t--)):e.push(s);return e}function Uae(n,e){return n+22+75*(n<26)-((e!=0)<<5)}function tGe(n,e,t){var i=0;for(n=t?Fw(n/jKe):n>>1,n+=Fw(n/e);n>J9*NH>>1;i+=_k)n=Fw(n/J9);return Fw(i+(J9+1)*n/(n+UKe))}function iGe(n){var e,t,i,s,r,o,a,l,c,u,h,d=[],f,p,g,m;for(n=eGe(n),f=n.length,e=KKe,t=0,r=qKe,o=0;o<f;++o)h=n[o],h<128&&d.push(e7(h));for(i=s=d.length,s&&d.push(GKe);i<f;){for(a=Q9,o=0;o<f;++o)h=n[o],h>=e&&h<a&&(a=h);for(p=i+1,a-e>Fw((Q9-t)/p)&&zae("overflow"),t+=(a-e)*p,e=a,o=0;o<f;++o)if(h=n[o],h<e&&++t>Q9&&zae("overflow"),h==e){for(l=t,c=_k;u=c<=r?r0e:c>=r+NH?NH:c-r,!(l<u);c+=_k)m=l-u,g=_k-u,d.push(e7(Uae(u+m%g,0))),l=Fw(m/g);d.push(e7(Uae(l,0))),r=tGe(t,p,i==s),t=0,++i}++t,++e}return d.join("")}function nGe(n){return JKe(n,function(e){return XKe.test(e)?"xn--"+iGe(e):e})}var rf=[],wu=[],sGe=typeof Uint8Array<"u"?Uint8Array:Array,RQ=!1;function o0e(){RQ=!0;for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,t=n.length;e<t;++e)rf[e]=n[e],wu[n.charCodeAt(e)]=e;wu[45]=62,wu[95]=63}function rGe(n){RQ||o0e();var e,t,i,s,r,o,a=n.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");r=n[a-2]==="="?2:n[a-1]==="="?1:0,o=new sGe(a*3/4-r),i=r>0?a-4:a;var l=0;for(e=0,t=0;e<i;e+=4,t+=3)s=wu[n.charCodeAt(e)]<<18|wu[n.charCodeAt(e+1)]<<12|wu[n.charCodeAt(e+2)]<<6|wu[n.charCodeAt(e+3)],o[l++]=s>>16&255,o[l++]=s>>8&255,o[l++]=s&255;return r===2?(s=wu[n.charCodeAt(e)]<<2|wu[n.charCodeAt(e+1)]>>4,o[l++]=s&255):r===1&&(s=wu[n.charCodeAt(e)]<<10|wu[n.charCodeAt(e+1)]<<4|wu[n.charCodeAt(e+2)]>>2,o[l++]=s>>8&255,o[l++]=s&255),o}function oGe(n){return rf[n>>18&63]+rf[n>>12&63]+rf[n>>6&63]+rf[n&63]}function aGe(n,e,t){for(var i,s=[],r=e;r<t;r+=3)i=(n[r]<<16)+(n[r+1]<<8)+n[r+2],s.push(oGe(i));return s.join("")}function jae(n){RQ||o0e();for(var e,t=n.length,i=t%3,s="",r=[],o=16383,a=0,l=t-i;a<l;a+=o)r.push(aGe(n,a,a+o>l?l:a+o));return i===1?(e=n[t-1],s+=rf[e>>2],s+=rf[e<<4&63],s+="=="):i===2&&(e=(n[t-2]<<8)+n[t-1],s+=rf[e>>10],s+=rf[e>>4&63],s+=rf[e<<2&63],s+="="),r.push(s),r.join("")}function sB(n,e,t,i,s){var r,o,a=s*8-i-1,l=(1<<a)-1,c=l>>1,u=-7,h=t?s-1:0,d=t?-1:1,f=n[e+h];for(h+=d,r=f&(1<<-u)-1,f>>=-u,u+=a;u>0;r=r*256+n[e+h],h+=d,u-=8);for(o=r&(1<<-u)-1,r>>=-u,u+=i;u>0;o=o*256+n[e+h],h+=d,u-=8);if(r===0)r=1-c;else{if(r===l)return o?NaN:(f?-1:1)*(1/0);o=o+Math.pow(2,i),r=r-c}return(f?-1:1)*o*Math.pow(2,r-i)}function a0e(n,e,t,i,s,r){var o,a,l,c=r*8-s-1,u=(1<<c)-1,h=u>>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:r-1,p=i?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+h>=1?e+=d/l:e+=d*Math.pow(2,1-h),e*l>=2&&(o++,l/=2),o+h>=u?(a=0,o=u):o+h>=1?(a=(e*l-1)*Math.pow(2,s),o=o+h):(a=e*Math.pow(2,h-1)*Math.pow(2,s),o=0));s>=8;n[t+f]=a&255,f+=p,a/=256,s-=8);for(o=o<<s|a,c+=s;c>0;n[t+f]=o&255,f+=p,o/=256,c-=8);n[t+f-p]|=g*128}var lGe={}.toString,l0e=Array.isArray||function(n){return lGe.call(n)=="[object Array]"};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */var cGe=50;it.TYPED_ARRAY_SUPPORT=e_.TYPED_ARRAY_SUPPORT!==void 0?e_.TYPED_ARRAY_SUPPORT:!0;LO();function LO(){return it.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Jp(n,e){if(LO()<e)throw new RangeError("Invalid typed array length");return it.TYPED_ARRAY_SUPPORT?(n=new Uint8Array(e),n.__proto__=it.prototype):(n===null&&(n=new it(e)),n.length=e),n}function it(n,e,t){if(!it.TYPED_ARRAY_SUPPORT&&!(this instanceof it))return new it(n,e,t);if(typeof n=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return MQ(this,n)}return c0e(this,n,e,t)}it.poolSize=8192;it._augment=function(n){return n.__proto__=it.prototype,n};function c0e(n,e,t,i){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?dGe(n,e,t,i):typeof e=="string"?hGe(n,e,t):fGe(n,e)}it.from=function(n,e,t){return c0e(null,n,e,t)};it.TYPED_ARRAY_SUPPORT&&(it.prototype.__proto__=Uint8Array.prototype,it.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&it[Symbol.species]);function u0e(n){if(typeof n!="number")throw new TypeError('"size" argument must be a number');if(n<0)throw new RangeError('"size" argument must not be negative')}function uGe(n,e,t,i){return u0e(e),e<=0?Jp(n,e):t!==void 0?typeof i=="string"?Jp(n,e).fill(t,i):Jp(n,e).fill(t):Jp(n,e)}it.alloc=function(n,e,t){return uGe(null,n,e,t)};function MQ(n,e){if(u0e(e),n=Jp(n,e<0?0:OQ(e)|0),!it.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)n[t]=0;return n}it.allocUnsafe=function(n){return MQ(null,n)};it.allocUnsafeSlow=function(n){return MQ(null,n)};function hGe(n,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!it.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var i=h0e(e,t)|0;n=Jp(n,i);var s=n.write(e,t);return s!==i&&(n=n.slice(0,s)),n}function AH(n,e){var t=e.length<0?0:OQ(e.length)|0;n=Jp(n,t);for(var i=0;i<t;i+=1)n[i]=e[i]&255;return n}function dGe(n,e,t,i){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(i||0))throw new RangeError("'length' is out of bounds");return t===void 0&&i===void 0?e=new Uint8Array(e):i===void 0?e=new Uint8Array(e,t):e=new Uint8Array(e,t,i),it.TYPED_ARRAY_SUPPORT?(n=e,n.__proto__=it.prototype):n=AH(n,e),n}function fGe(n,e){if(Vf(e)){var t=OQ(e.length)|0;return n=Jp(n,t),n.length===0||e.copy(n,0,0,t),n}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||AGe(e.length)?Jp(n,0):AH(n,e);if(e.type==="Buffer"&&l0e(e.data))return AH(n,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function OQ(n){if(n>=LO())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+LO().toString(16)+" bytes");return n|0}it.isBuffer=PGe;function Vf(n){return!!(n!=null&&n._isBuffer)}it.compare=function(e,t){if(!Vf(e)||!Vf(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,s=t.length,r=0,o=Math.min(i,s);r<o;++r)if(e[r]!==t[r]){i=e[r],s=t[r];break}return i<s?-1:s<i?1:0};it.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};it.concat=function(e,t){if(!l0e(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return it.alloc(0);var i;if(t===void 0)for(t=0,i=0;i<e.length;++i)t+=e[i].length;var s=it.allocUnsafe(t),r=0;for(i=0;i<e.length;++i){var o=e[i];if(!Vf(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(s,r),r+=o.length}return s};function h0e(n,e){if(Vf(n))return n.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(n)||n instanceof ArrayBuffer))return n.byteLength;typeof n!="string"&&(n=""+n);var t=n.length;if(t===0)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":case void 0:return EO(n).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t*2;case"hex":return t>>>1;case"base64":return v0e(n).length;default:if(i)return EO(n).length;e=(""+e).toLowerCase(),i=!0}}it.byteLength=h0e;function pGe(n,e,t){var i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return"";for(n||(n="utf8");;)switch(n){case"hex":return xGe(this,e,t);case"utf8":case"utf-8":return p0e(this,e,t);case"ascii":return CGe(this,e,t);case"latin1":case"binary":return SGe(this,e,t);case"base64":return yGe(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return LGe(this,e,t);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(n+"").toLowerCase(),i=!0}}it.prototype._isBuffer=!0;function Qv(n,e,t){var i=n[e];n[e]=n[t],n[t]=i}it.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Qv(this,t,t+1);return this};it.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Qv(this,t,t+3),Qv(this,t+1,t+2);return this};it.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Qv(this,t,t+7),Qv(this,t+1,t+6),Qv(this,t+2,t+5),Qv(this,t+3,t+4);return this};it.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?p0e(this,0,e):pGe.apply(this,arguments)};it.prototype.equals=function(e){if(!Vf(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:it.compare(this,e)===0};it.prototype.inspect=function(){var e="",t=cGe;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"};it.prototype.compare=function(e,t,i,s,r){if(!Vf(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),i===void 0&&(i=e?e.length:0),s===void 0&&(s=0),r===void 0&&(r=this.length),t<0||i>e.length||s<0||r>this.length)throw new RangeError("out of range index");if(s>=r&&t>=i)return 0;if(s>=r)return-1;if(t>=i)return 1;if(t>>>=0,i>>>=0,s>>>=0,r>>>=0,this===e)return 0;for(var o=r-s,a=i-t,l=Math.min(o,a),c=this.slice(s,r),u=e.slice(t,i),h=0;h<l;++h)if(c[h]!==u[h]){o=c[h],a=u[h];break}return o<a?-1:a<o?1:0};function d0e(n,e,t,i,s){if(n.length===0)return-1;if(typeof t=="string"?(i=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=s?0:n.length-1),t<0&&(t=n.length+t),t>=n.length){if(s)return-1;t=n.length-1}else if(t<0)if(s)t=0;else return-1;if(typeof e=="string"&&(e=it.from(e,i)),Vf(e))return e.length===0?-1:qae(n,e,t,i,s);if(typeof e=="number")return e=e&255,it.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?s?Uint8Array.prototype.indexOf.call(n,e,t):Uint8Array.prototype.lastIndexOf.call(n,e,t):qae(n,[e],t,i,s);throw new TypeError("val must be string, number or Buffer")}function qae(n,e,t,i,s){var r=1,o=n.length,a=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(n.length<2||e.length<2)return-1;r=2,o/=2,a/=2,t/=2}function l(f,p){return r===1?f[p]:f.readUInt16BE(p*r)}var c;if(s){var u=-1;for(c=t;c<o;c++)if(l(n,c)===l(e,u===-1?0:c-u)){if(u===-1&&(u=c),c-u+1===a)return u*r}else u!==-1&&(c-=c-u),u=-1}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var h=!0,d=0;d<a;d++)if(l(n,c+d)!==l(e,d)){h=!1;break}if(h)return c}return-1}it.prototype.includes=function(e,t,i){return this.indexOf(e,t,i)!==-1};it.prototype.indexOf=function(e,t,i){return d0e(this,e,t,i,!0)};it.prototype.lastIndexOf=function(e,t,i){return d0e(this,e,t,i,!1)};function gGe(n,e,t,i){t=Number(t)||0;var s=n.length-t;i?(i=Number(i),i>s&&(i=s)):i=s;var r=e.length;if(r%2!==0)throw new TypeError("Invalid hex string");i>r/2&&(i=r/2);for(var o=0;o<i;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;n[t+o]=a}return o}function mGe(n,e,t,i){return aB(EO(e,n.length-t),n,t,i)}function f0e(n,e,t,i){return aB(DGe(e),n,t,i)}function _Ge(n,e,t,i){return f0e(n,e,t,i)}function vGe(n,e,t,i){return aB(v0e(e),n,t,i)}function bGe(n,e,t,i){return aB(NGe(e,n.length-t),n,t,i)}it.prototype.write=function(e,t,i,s){if(t===void 0)s="utf8",i=this.length,t=0;else if(i===void 0&&typeof t=="string")s=t,i=this.length,t=0;else if(isFinite(t))t=t|0,isFinite(i)?(i=i|0,s===void 0&&(s="utf8")):(s=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var r=this.length-t;if((i===void 0||i>r)&&(i=r),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");s||(s="utf8");for(var o=!1;;)switch(s){case"hex":return gGe(this,e,t,i);case"utf8":case"utf-8":return mGe(this,e,t,i);case"ascii":return f0e(this,e,t,i);case"latin1":case"binary":return _Ge(this,e,t,i);case"base64":return vGe(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return bGe(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+s);s=(""+s).toLowerCase(),o=!0}};it.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function yGe(n,e,t){return e===0&&t===n.length?jae(n):jae(n.slice(e,t))}function p0e(n,e,t){t=Math.min(n.length,t);for(var i=[],s=e;s<t;){var r=n[s],o=null,a=r>239?4:r>223?3:r>191?2:1;if(s+a<=t){var l,c,u,h;switch(a){case 1:r<128&&(o=r);break;case 2:l=n[s+1],(l&192)===128&&(h=(r&31)<<6|l&63,h>127&&(o=h));break;case 3:l=n[s+1],c=n[s+2],(l&192)===128&&(c&192)===128&&(h=(r&15)<<12|(l&63)<<6|c&63,h>2047&&(h<55296||h>57343)&&(o=h));break;case 4:l=n[s+1],c=n[s+2],u=n[s+3],(l&192)===128&&(c&192)===128&&(u&192)===128&&(h=(r&15)<<18|(l&63)<<12|(c&63)<<6|u&63,h>65535&&h<1114112&&(o=h))}}o===null?(o=65533,a=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|o&1023),i.push(o),s+=a}return wGe(i)}var Kae=4096;function wGe(n){var e=n.length;if(e<=Kae)return String.fromCharCode.apply(String,n);for(var t="",i=0;i<e;)t+=String.fromCharCode.apply(String,n.slice(i,i+=Kae));return t}function CGe(n,e,t){var i="";t=Math.min(n.length,t);for(var s=e;s<t;++s)i+=String.fromCharCode(n[s]&127);return i}function SGe(n,e,t){var i="";t=Math.min(n.length,t);for(var s=e;s<t;++s)i+=String.fromCharCode(n[s]);return i}function xGe(n,e,t){var i=n.length;(!e||e<0)&&(e=0),(!t||t<0||t>i)&&(t=i);for(var s="",r=e;r<t;++r)s+=TGe(n[r]);return s}function LGe(n,e,t){for(var i=n.slice(e,t),s="",r=0;r<i.length;r+=2)s+=String.fromCharCode(i[r]+i[r+1]*256);return s}it.prototype.slice=function(e,t){var i=this.length;e=~~e,t=t===void 0?i:~~t,e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),t<e&&(t=e);var s;if(it.TYPED_ARRAY_SUPPORT)s=this.subarray(e,t),s.__proto__=it.prototype;else{var r=t-e;s=new it(r,void 0);for(var o=0;o<r;++o)s[o]=this[o+e]}return s};function Po(n,e,t){if(n%1!==0||n<0)throw new RangeError("offset is not uint");if(n+e>t)throw new RangeError("Trying to access beyond buffer length")}it.prototype.readUIntLE=function(e,t,i){e=e|0,t=t|0,i||Po(e,t,this.length);for(var s=this[e],r=1,o=0;++o<t&&(r*=256);)s+=this[e+o]*r;return s};it.prototype.readUIntBE=function(e,t,i){e=e|0,t=t|0,i||Po(e,t,this.length);for(var s=this[e+--t],r=1;t>0&&(r*=256);)s+=this[e+--t]*r;return s};it.prototype.readUInt8=function(e,t){return t||Po(e,1,this.length),this[e]};it.prototype.readUInt16LE=function(e,t){return t||Po(e,2,this.length),this[e]|this[e+1]<<8};it.prototype.readUInt16BE=function(e,t){return t||Po(e,2,this.length),this[e]<<8|this[e+1]};it.prototype.readUInt32LE=function(e,t){return t||Po(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};it.prototype.readUInt32BE=function(e,t){return t||Po(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};it.prototype.readIntLE=function(e,t,i){e=e|0,t=t|0,i||Po(e,t,this.length);for(var s=this[e],r=1,o=0;++o<t&&(r*=256);)s+=this[e+o]*r;return r*=128,s>=r&&(s-=Math.pow(2,8*t)),s};it.prototype.readIntBE=function(e,t,i){e=e|0,t=t|0,i||Po(e,t,this.length);for(var s=t,r=1,o=this[e+--s];s>0&&(r*=256);)o+=this[e+--s]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o};it.prototype.readInt8=function(e,t){return t||Po(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};it.prototype.readInt16LE=function(e,t){t||Po(e,2,this.length);var i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};it.prototype.readInt16BE=function(e,t){t||Po(e,2,this.length);var i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};it.prototype.readInt32LE=function(e,t){return t||Po(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};it.prototype.readInt32BE=function(e,t){return t||Po(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};it.prototype.readFloatLE=function(e,t){return t||Po(e,4,this.length),sB(this,e,!0,23,4)};it.prototype.readFloatBE=function(e,t){return t||Po(e,4,this.length),sB(this,e,!1,23,4)};it.prototype.readDoubleLE=function(e,t){return t||Po(e,8,this.length),sB(this,e,!0,52,8)};it.prototype.readDoubleBE=function(e,t){return t||Po(e,8,this.length),sB(this,e,!1,52,8)};function _c(n,e,t,i,s,r){if(!Vf(n))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||e<r)throw new RangeError('"value" argument is out of bounds');if(t+i>n.length)throw new RangeError("Index out of range")}it.prototype.writeUIntLE=function(e,t,i,s){if(e=+e,t=t|0,i=i|0,!s){var r=Math.pow(2,8*i)-1;_c(this,e,t,i,r,0)}var o=1,a=0;for(this[t]=e&255;++a<i&&(o*=256);)this[t+a]=e/o&255;return t+i};it.prototype.writeUIntBE=function(e,t,i,s){if(e=+e,t=t|0,i=i|0,!s){var r=Math.pow(2,8*i)-1;_c(this,e,t,i,r,0)}var o=i-1,a=1;for(this[t+o]=e&255;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+i};it.prototype.writeUInt8=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,1,255,0),it.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function rB(n,e,t,i){e<0&&(e=65535+e+1);for(var s=0,r=Math.min(n.length-t,2);s<r;++s)n[t+s]=(e&255<<8*(i?s:1-s))>>>(i?s:1-s)*8}it.prototype.writeUInt16LE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,2,65535,0),it.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):rB(this,e,t,!0),t+2};it.prototype.writeUInt16BE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,2,65535,0),it.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):rB(this,e,t,!1),t+2};function oB(n,e,t,i){e<0&&(e=4294967295+e+1);for(var s=0,r=Math.min(n.length-t,4);s<r;++s)n[t+s]=e>>>(i?s:3-s)*8&255}it.prototype.writeUInt32LE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,4,4294967295,0),it.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):oB(this,e,t,!0),t+4};it.prototype.writeUInt32BE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,4,4294967295,0),it.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):oB(this,e,t,!1),t+4};it.prototype.writeIntLE=function(e,t,i,s){if(e=+e,t=t|0,!s){var r=Math.pow(2,8*i-1);_c(this,e,t,i,r-1,-r)}var o=0,a=1,l=0;for(this[t]=e&255;++o<i&&(a*=256);)e<0&&l===0&&this[t+o-1]!==0&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+i};it.prototype.writeIntBE=function(e,t,i,s){if(e=+e,t=t|0,!s){var r=Math.pow(2,8*i-1);_c(this,e,t,i,r-1,-r)}var o=i-1,a=1,l=0;for(this[t+o]=e&255;--o>=0&&(a*=256);)e<0&&l===0&&this[t+o+1]!==0&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+i};it.prototype.writeInt8=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,1,127,-128),it.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};it.prototype.writeInt16LE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,2,32767,-32768),it.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):rB(this,e,t,!0),t+2};it.prototype.writeInt16BE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,2,32767,-32768),it.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):rB(this,e,t,!1),t+2};it.prototype.writeInt32LE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,4,2147483647,-2147483648),it.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):oB(this,e,t,!0),t+4};it.prototype.writeInt32BE=function(e,t,i){return e=+e,t=t|0,i||_c(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),it.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):oB(this,e,t,!1),t+4};function g0e(n,e,t,i,s,r){if(t+i>n.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function m0e(n,e,t,i,s){return s||g0e(n,e,t,4),a0e(n,e,t,i,23,4),t+4}it.prototype.writeFloatLE=function(e,t,i){return m0e(this,e,t,!0,i)};it.prototype.writeFloatBE=function(e,t,i){return m0e(this,e,t,!1,i)};function _0e(n,e,t,i,s){return s||g0e(n,e,t,8),a0e(n,e,t,i,52,8),t+8}it.prototype.writeDoubleLE=function(e,t,i){return _0e(this,e,t,!0,i)};it.prototype.writeDoubleBE=function(e,t,i){return _0e(this,e,t,!1,i)};it.prototype.copy=function(e,t,i,s){if(i||(i=0),!s&&s!==0&&(s=this.length),t>=e.length&&(t=e.length),t||(t=0),s>0&&s<i&&(s=i),s===i||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(s<0)throw new RangeError("sourceEnd out of bounds");s>this.length&&(s=this.length),e.length-t<s-i&&(s=e.length-t+i);var r=s-i,o;if(this===e&&i<t&&t<s)for(o=r-1;o>=0;--o)e[o+t]=this[o+i];else if(r<1e3||!it.TYPED_ARRAY_SUPPORT)for(o=0;o<r;++o)e[o+t]=this[o+i];else Uint8Array.prototype.set.call(e,this.subarray(i,i+r),t);return r};it.prototype.fill=function(e,t,i,s){if(typeof e=="string"){if(typeof t=="string"?(s=t,t=0,i=this.length):typeof i=="string"&&(s=i,i=this.length),e.length===1){var r=e.charCodeAt(0);r<256&&(e=r)}if(s!==void 0&&typeof s!="string")throw new TypeError("encoding must be a string");if(typeof s=="string"&&!it.isEncoding(s))throw new TypeError("Unknown encoding: "+s)}else typeof e=="number"&&(e=e&255);if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;t=t>>>0,i=i===void 0?this.length:i>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o<i;++o)this[o]=e;else{var a=Vf(e)?e:EO(new it(e,s).toString()),l=a.length;for(o=0;o<i-t;++o)this[o+t]=a[o%l]}return this};var EGe=/[^+\/0-9A-Za-z-_]/g;function kGe(n){if(n=IGe(n).replace(EGe,""),n.length<2)return"";for(;n.length%4!==0;)n=n+"=";return n}function IGe(n){return n.trim?n.trim():n.replace(/^\s+|\s+$/g,"")}function TGe(n){return n<16?"0"+n.toString(16):n.toString(16)}function EO(n,e){e=e||1/0;for(var t,i=n.length,s=null,r=[],o=0;o<i;++o){if(t=n.charCodeAt(o),t>55295&&t<57344){if(!s){if(t>56319){(e-=3)>-1&&r.push(239,191,189);continue}else if(o+1===i){(e-=3)>-1&&r.push(239,191,189);continue}s=t;continue}if(t<56320){(e-=3)>-1&&r.push(239,191,189),s=t;continue}t=(s-55296<<10|t-56320)+65536}else s&&(e-=3)>-1&&r.push(239,191,189);if(s=null,t<128){if((e-=1)<0)break;r.push(t)}else if(t<2048){if((e-=2)<0)break;r.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=3)<0)break;r.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;r.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error("Invalid code point")}return r}function DGe(n){for(var e=[],t=0;t<n.length;++t)e.push(n.charCodeAt(t)&255);return e}function NGe(n,e){for(var t,i,s,r=[],o=0;o<n.length&&!((e-=2)<0);++o)t=n.charCodeAt(o),i=t>>8,s=t%256,r.push(s),r.push(i);return r}function v0e(n){return rGe(kGe(n))}function aB(n,e,t,i){for(var s=0;s<i&&!(s+t>=e.length||s>=n.length);++s)e[s+t]=n[s];return s}function AGe(n){return n!==n}function PGe(n){return n!=null&&(!!n._isBuffer||b0e(n)||RGe(n))}function b0e(n){return!!n.constructor&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)}function RGe(n){return typeof n.readFloatLE=="function"&&typeof n.slice=="function"&&b0e(n.slice(0,0))}var kO;typeof Object.create=="function"?kO=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:kO=function(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e};var y0e=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),i={},s=0;s<t.length;s++)i[t[s]]=Object.getOwnPropertyDescriptor(e,t[s]);return i},MGe=/%[sdj%]/g;function lB(n){if(!I_(n)){for(var e=[],t=0;t<arguments.length;t++)e.push(kf(arguments[t]));return e.join(" ")}for(var t=1,i=arguments,s=i.length,r=String(n).replace(MGe,function(a){if(a==="%%")return"%";if(t>=s)return a;switch(a){case"%s":return String(i[t++]);case"%d":return Number(i[t++]);case"%j":try{return JSON.stringify(i[t++])}catch{return"[Circular]"}default:return a}}),o=i[t];t<s;o=i[++t])eg(o)||!em(o)?r+=" "+o:r+=" "+kf(o);return r}function FQ(n,e){if(gf(e_.process))return function(){return FQ(n,e).apply(this,arguments)};if(oc.noDeprecation===!0)return n;var t=!1;function i(){if(!t){if(oc.throwDeprecation)throw new Error(e);oc.traceDeprecation?console.trace(e):console.error(e),t=!0}return n.apply(this,arguments)}return i}var VA={},t7;function w0e(n){if(gf(t7)&&(t7=oc.env.NODE_DEBUG||""),n=n.toUpperCase(),!VA[n])if(new RegExp("\\b"+n+"\\b","i").test(t7)){var e=0;VA[n]=function(){var t=lB.apply(null,arguments);console.error("%s %d: %s",n,e,t)}}else VA[n]=function(){};return VA[n]}function kf(n,e){var t={seen:[],stylize:FGe};return arguments.length>=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),cB(e)?t.showHidden=e:e&&$Q(t,e),gf(t.showHidden)&&(t.showHidden=!1),gf(t.depth)&&(t.depth=2),gf(t.colors)&&(t.colors=!1),gf(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=OGe),IO(t,n,t.depth)}kf.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};kf.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function OGe(n,e){var t=kf.styles[e];return t?"\x1B["+kf.colors[t][0]+"m"+n+"\x1B["+kf.colors[t][1]+"m":n}function FGe(n,e){return n}function BGe(n){var e={};return n.forEach(function(t,i){e[t]=!0}),e}function IO(n,e,t){if(n.customInspect&&e&&yk(e.inspect)&&e.inspect!==kf&&!(e.constructor&&e.constructor.prototype===e)){var i=e.inspect(t,n);return I_(i)||(i=IO(n,i,t)),i}var s=WGe(n,e);if(s)return s;var r=Object.keys(e),o=BGe(r);if(n.showHidden&&(r=Object.getOwnPropertyNames(e)),bk(e)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return i7(e);if(r.length===0){if(yk(e)){var a=e.name?": "+e.name:"";return n.stylize("[Function"+a+"]","special")}if(vk(e))return n.stylize(RegExp.prototype.toString.call(e),"regexp");if(TO(e))return n.stylize(Date.prototype.toString.call(e),"date");if(bk(e))return i7(e)}var l="",c=!1,u=["{","}"];if(BQ(e)&&(c=!0,u=["[","]"]),yk(e)){var h=e.name?": "+e.name:"";l=" [Function"+h+"]"}if(vk(e)&&(l=" "+RegExp.prototype.toString.call(e)),TO(e)&&(l=" "+Date.prototype.toUTCString.call(e)),bk(e)&&(l=" "+i7(e)),r.length===0&&(!c||e.length==0))return u[0]+l+u[1];if(t<0)return vk(e)?n.stylize(RegExp.prototype.toString.call(e),"regexp"):n.stylize("[Object]","special");n.seen.push(e);var d;return c?d=VGe(n,e,t,o,r):d=r.map(function(f){return PH(n,e,t,o,f,c)}),n.seen.pop(),HGe(d,l,u)}function WGe(n,e){if(gf(e))return n.stylize("undefined","undefined");if(I_(e)){var t="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(t,"string")}if(VQ(e))return n.stylize(""+e,"number");if(cB(e))return n.stylize(""+e,"boolean");if(eg(e))return n.stylize("null","null")}function i7(n){return"["+Error.prototype.toString.call(n)+"]"}function VGe(n,e,t,i,s){for(var r=[],o=0,a=e.length;o<a;++o)E0e(e,String(o))?r.push(PH(n,e,t,i,String(o),!0)):r.push("");return s.forEach(function(l){l.match(/^\d+$/)||r.push(PH(n,e,t,i,l,!0))}),r}function PH(n,e,t,i,s,r){var o,a,l;if(l=Object.getOwnPropertyDescriptor(e,s)||{value:e[s]},l.get?l.set?a=n.stylize("[Getter/Setter]","special"):a=n.stylize("[Getter]","special"):l.set&&(a=n.stylize("[Setter]","special")),E0e(i,s)||(o="["+s+"]"),a||(n.seen.indexOf(l.value)<0?(eg(t)?a=IO(n,l.value,null):a=IO(n,l.value,t-1),a.indexOf(` +`)>-1&&(r?a=a.split(` +`).map(function(c){return" "+c}).join(` +`).substr(2):a=` +`+a.split(` +`).map(function(c){return" "+c}).join(` +`))):a=n.stylize("[Circular]","special")),gf(o)){if(r&&s.match(/^\d+$/))return a;o=JSON.stringify(""+s),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=n.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=n.stylize(o,"string"))}return o+": "+a}function HGe(n,e,t){var i=n.reduce(function(s,r){return r.indexOf(` +`)>=0,s+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?t[0]+(e===""?"":e+` + `)+" "+n.join(`, + `)+" "+t[1]:t[0]+e+" "+n.join(", ")+" "+t[1]}function BQ(n){return Array.isArray(n)}function cB(n){return typeof n=="boolean"}function eg(n){return n===null}function WQ(n){return n==null}function VQ(n){return typeof n=="number"}function I_(n){return typeof n=="string"}function C0e(n){return typeof n=="symbol"}function gf(n){return n===void 0}function vk(n){return em(n)&&HQ(n)==="[object RegExp]"}function em(n){return typeof n=="object"&&n!==null}function TO(n){return em(n)&&HQ(n)==="[object Date]"}function bk(n){return em(n)&&(HQ(n)==="[object Error]"||n instanceof Error)}function yk(n){return typeof n=="function"}function S0e(n){return n===null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||typeof n=="symbol"||typeof n>"u"}function x0e(n){return it.isBuffer(n)}function HQ(n){return Object.prototype.toString.call(n)}function n7(n){return n<10?"0"+n.toString(10):n.toString(10)}var $Ge=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zGe(){var n=new Date,e=[n7(n.getHours()),n7(n.getMinutes()),n7(n.getSeconds())].join(":");return[n.getDate(),$Ge[n.getMonth()],e].join(" ")}function L0e(){console.log("%s - %s",zGe(),lB.apply(null,arguments))}function $Q(n,e){if(!e||!em(e))return n;for(var t=Object.keys(e),i=t.length;i--;)n[t[i]]=e[t[i]];return n}function E0e(n,e){return Object.prototype.hasOwnProperty.call(n,e)}var dv=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function zQ(n){if(typeof n!="function")throw new TypeError('The "original" argument must be of type Function');if(dv&&n[dv]){var e=n[dv];if(typeof e!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,dv,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var t,i,s=new Promise(function(a,l){t=a,i=l}),r=[],o=0;o<arguments.length;o++)r.push(arguments[o]);r.push(function(a,l){a?i(a):t(l)});try{n.apply(this,r)}catch(a){i(a)}return s}return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),dv&&Object.defineProperty(e,dv,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,y0e(n))}zQ.custom=dv;function UGe(n,e){if(!n){var t=new Error("Promise was rejected with a falsy value");t.reason=n,n=t}return e(n)}function k0e(n){if(typeof n!="function")throw new TypeError('The "original" argument must be of type Function');function e(){for(var t=[],i=0;i<arguments.length;i++)t.push(arguments[i]);var s=t.pop();if(typeof s!="function")throw new TypeError("The last argument must be of type Function");var r=this,o=function(){return s.apply(r,arguments)};n.apply(this,t).then(function(a){oc.nextTick(o.bind(null,null,a))},function(a){oc.nextTick(UGe.bind(null,a,o))})}return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,y0e(n)),e}var jGe={inherits:kO,_extend:$Q,log:L0e,isBuffer:x0e,isPrimitive:S0e,isFunction:yk,isError:bk,isDate:TO,isObject:em,isRegExp:vk,isUndefined:gf,isSymbol:C0e,isString:I_,isNumber:VQ,isNullOrUndefined:WQ,isNull:eg,isBoolean:cB,isArray:BQ,inspect:kf,deprecate:FQ,format:lB,debuglog:w0e,promisify:zQ,callbackify:k0e},qGe=Object.freeze({__proto__:null,_extend:$Q,callbackify:k0e,debuglog:w0e,default:jGe,deprecate:FQ,format:lB,inherits:kO,inspect:kf,isArray:BQ,isBoolean:cB,isBuffer:x0e,isDate:TO,isError:bk,isFunction:yk,isNull:eg,isNullOrUndefined:WQ,isNumber:VQ,isObject:em,isPrimitive:S0e,isRegExp:vk,isString:I_,isSymbol:C0e,isUndefined:gf,log:L0e,promisify:zQ});function KGe(n,e){return Object.prototype.hasOwnProperty.call(n,e)}var I0e=Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"};function s7(n){switch(typeof n){case"string":return n;case"boolean":return n?"true":"false";case"number":return isFinite(n)?n:"";default:return""}}function GGe(n,e,t,i){return e=e||"&",t=t||"=",n===null&&(n=void 0),typeof n=="object"?Gae(XGe(n),function(s){var r=encodeURIComponent(s7(s))+t;return I0e(n[s])?Gae(n[s],function(o){return r+encodeURIComponent(s7(o))}).join(e):r+encodeURIComponent(s7(n[s]))}).join(e):""}function Gae(n,e){if(n.map)return n.map(e);for(var t=[],i=0;i<n.length;i++)t.push(e(n[i],i));return t}var XGe=Object.keys||function(n){var e=[];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.push(t);return e};function Xae(n,e,t,i){e=e||"&",t=t||"=";var s={};if(typeof n!="string"||n.length===0)return s;var r=/\+/g;n=n.split(e);var o=1e3,a=n.length;a>o&&(a=o);for(var l=0;l<a;++l){var c=n[l].replace(r,"%20"),u=c.indexOf(t),h,d,f,p;u>=0?(h=c.substr(0,u),d=c.substr(u+1)):(h=c,d=""),f=decodeURIComponent(h),p=decodeURIComponent(d),KGe(s,f)?I0e(s[f])?s[f].push(p):s[f]=[s[f],p]:s[f]=p}return s}const T0e=e_.URL,D0e=e_.URLSearchParams;var YGe={parse:Zx,resolve:R0e,resolveObject:M0e,fileURLToPath:A0e,format:P0e,Url:qc,URL:T0e,URLSearchParams:D0e};function qc(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var ZGe=/^([a-z0-9.+-]+:)/i,QGe=/:[0-9]*$/,JGe=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,eXe=["<",">",'"',"`"," ","\r",` +`," "],tXe=["{","}","|","\\","^","`"].concat(eXe),RH=["'"].concat(tXe),Yae=["%","/","?",";","#"].concat(RH),Zae=["/","?","#"],iXe=255,Qae=/^[+a-z0-9A-Z_-]{0,63}$/,nXe=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,sXe={javascript:!0,"javascript:":!0},MH={javascript:!0,"javascript:":!0},PC={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Zx(n,e,t){if(n&&em(n)&&n instanceof qc)return n;var i=new qc;return i.parse(n,e,t),i}qc.prototype.parse=function(n,e,t){return N0e(this,n,e,t)};function N0e(n,e,t,i){if(!I_(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var s=e.indexOf("?"),r=s!==-1&&s<e.indexOf("#")?"?":"#",o=e.split(r),a=/\\/g;o[0]=o[0].replace(a,"/"),e=o.join(r);var l=e;if(l=l.trim(),!i&&e.split("#").length===1){var c=JGe.exec(l);if(c)return n.path=l,n.href=l,n.pathname=c[1],c[2]?(n.search=c[2],t?n.query=Xae(n.search.substr(1)):n.query=n.search.substr(1)):t&&(n.search="",n.query={}),n}var u=ZGe.exec(l);if(u){u=u[0];var h=u.toLowerCase();n.protocol=h,l=l.substr(u.length)}if(i||u||l.match(/^\/\/[^@\/]+@[^@\/]+/)){var d=l.substr(0,2)==="//";d&&!(u&&MH[u])&&(l=l.substr(2),n.slashes=!0)}var f,p,g,m;if(!MH[u]&&(d||u&&!PC[u])){var _=-1;for(f=0;f<Zae.length;f++)p=l.indexOf(Zae[f]),p!==-1&&(_===-1||p<_)&&(_=p);var b,w;for(_===-1?w=l.lastIndexOf("@"):w=l.lastIndexOf("@",_),w!==-1&&(b=l.slice(0,w),l=l.slice(w+1),n.auth=decodeURIComponent(b)),_=-1,f=0;f<Yae.length;f++)p=l.indexOf(Yae[f]),p!==-1&&(_===-1||p<_)&&(_=p);_===-1&&(_=l.length),n.host=l.slice(0,_),l=l.slice(_),O0e(n),n.hostname=n.hostname||"";var C=n.hostname[0]==="["&&n.hostname[n.hostname.length-1]==="]";if(!C){var S=n.hostname.split(/\./);for(f=0,g=S.length;f<g;f++){var x=S[f];if(x&&!x.match(Qae)){for(var k="",L=0,E=x.length;L<E;L++)x.charCodeAt(L)>127?k+="x":k+=x[L];if(!k.match(Qae)){var A=S.slice(0,f),I=S.slice(f+1),T=x.match(nXe);T&&(A.push(T[1]),I.unshift(T[2])),I.length&&(l="/"+I.join(".")+l),n.hostname=A.join(".");break}}}}n.hostname.length>iXe?n.hostname="":n.hostname=n.hostname.toLowerCase(),C||(n.hostname=nGe(n.hostname)),m=n.port?":"+n.port:"";var N=n.hostname||"";n.host=N+m,n.href+=n.host,C&&(n.hostname=n.hostname.substr(1,n.hostname.length-2),l[0]!=="/"&&(l="/"+l))}if(!sXe[h])for(f=0,g=RH.length;f<g;f++){var M=RH[f];if(l.indexOf(M)!==-1){var V=encodeURIComponent(M);V===M&&(V=escape(M)),l=l.split(M).join(V)}}var W=l.indexOf("#");W!==-1&&(n.hash=l.substr(W),l=l.slice(0,W));var B=l.indexOf("?");if(B!==-1?(n.search=l.substr(B),n.query=l.substr(B+1),t&&(n.query=Xae(n.query)),l=l.slice(0,B)):t&&(n.search="",n.query={}),l&&(n.pathname=l),PC[h]&&n.hostname&&!n.pathname&&(n.pathname="/"),n.pathname||n.search){m=n.pathname||"";var $=n.search||"";n.path=m+$}return n.href=UQ(n),n}function A0e(n){if(typeof n=="string")n=new qc().parse(n);else if(!(n instanceof qc))throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type '+typeof n+String(n));if(n.protocol!=="file:")throw new TypeError("The URL must be of scheme file");return rXe(n)}function rXe(n){const e=n.pathname;for(let t=0;t<e.length;t++)if(e[t]==="%"){const i=e.codePointAt(t+2)|32;if(e[t+1]==="2"&&i===102)throw new TypeError("must not include encoded / characters")}return decodeURIComponent(e)}function P0e(n){return I_(n)&&(n=N0e({},n)),UQ(n)}function UQ(n){var e=n.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=n.protocol||"",i=n.pathname||"",s=n.hash||"",r=!1,o="";n.host?r=e+n.host:n.hostname&&(r=e+(n.hostname.indexOf(":")===-1?n.hostname:"["+this.hostname+"]"),n.port&&(r+=":"+n.port)),n.query&&em(n.query)&&Object.keys(n.query).length&&(o=GGe(n.query));var a=n.search||o&&"?"+o||"";return t&&t.substr(-1)!==":"&&(t+=":"),n.slashes||(!t||PC[t])&&r!==!1?(r="//"+(r||""),i&&i.charAt(0)!=="/"&&(i="/"+i)):r||(r=""),s&&s.charAt(0)!=="#"&&(s="#"+s),a&&a.charAt(0)!=="?"&&(a="?"+a),i=i.replace(/[?#]/g,function(l){return encodeURIComponent(l)}),a=a.replace("#","%23"),t+r+i+a+s}qc.prototype.format=function(){return UQ(this)};function R0e(n,e){return Zx(n,!1,!0).resolve(e)}qc.prototype.resolve=function(n){return this.resolveObject(Zx(n,!1,!0)).format()};function M0e(n,e){return n?Zx(n,!1,!0).resolveObject(e):e}qc.prototype.resolveObject=function(n){if(I_(n)){var e=new qc;e.parse(n,!1,!0),n=e}for(var t=new qc,i=Object.keys(this),s=0;s<i.length;s++){var r=i[s];t[r]=this[r]}if(t.hash=n.hash,n.href==="")return t.href=t.format(),t;if(n.slashes&&!n.protocol){for(var o=Object.keys(n),a=0;a<o.length;a++){var l=o[a];l!=="protocol"&&(t[l]=n[l])}return PC[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}var c;if(n.protocol&&n.protocol!==t.protocol){if(!PC[n.protocol]){for(var u=Object.keys(n),h=0;h<u.length;h++){var d=u[h];t[d]=n[d]}return t.href=t.format(),t}if(t.protocol=n.protocol,!n.host&&!MH[n.protocol]){for(c=(n.pathname||"").split("/");c.length&&!(n.host=c.shift()););n.host||(n.host=""),n.hostname||(n.hostname=""),c[0]!==""&&c.unshift(""),c.length<2&&c.unshift(""),t.pathname=c.join("/")}else t.pathname=n.pathname;if(t.search=n.search,t.query=n.query,t.host=n.host||"",t.auth=n.auth,t.hostname=n.hostname||n.host,t.port=n.port,t.pathname||t.search){var f=t.pathname||"",p=t.search||"";t.path=f+p}return t.slashes=t.slashes||n.slashes,t.href=t.format(),t}var g=t.pathname&&t.pathname.charAt(0)==="/",m=n.host||n.pathname&&n.pathname.charAt(0)==="/",_=m||g||t.host&&n.pathname,b=_,w=t.pathname&&t.pathname.split("/")||[],C=t.protocol&&!PC[t.protocol];c=n.pathname&&n.pathname.split("/")||[],C&&(t.hostname="",t.port=null,t.host&&(w[0]===""?w[0]=t.host:w.unshift(t.host)),t.host="",n.protocol&&(n.hostname=null,n.port=null,n.host&&(c[0]===""?c[0]=n.host:c.unshift(n.host)),n.host=null),_=_&&(c[0]===""||w[0]===""));var S;if(m)t.host=n.host||n.host===""?n.host:t.host,t.hostname=n.hostname||n.hostname===""?n.hostname:t.hostname,t.search=n.search,t.query=n.query,w=c;else if(c.length)w||(w=[]),w.pop(),w=w.concat(c),t.search=n.search,t.query=n.query;else if(!WQ(n.search))return C&&(t.hostname=t.host=w.shift(),S=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1,S&&(t.auth=S.shift(),t.host=t.hostname=S.shift())),t.search=n.search,t.query=n.query,(!eg(t.pathname)||!eg(t.search))&&(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t;if(!w.length)return t.pathname=null,t.search?t.path="/"+t.search:t.path=null,t.href=t.format(),t;for(var x=w.slice(-1)[0],k=(t.host||n.host||w.length>1)&&(x==="."||x==="..")||x==="",L=0,E=w.length;E>=0;E--)x=w[E],x==="."?w.splice(E,1):x===".."?(w.splice(E,1),L++):L&&(w.splice(E,1),L--);if(!_&&!b)for(;L--;L)w.unshift("..");_&&w[0]!==""&&(!w[0]||w[0].charAt(0)!=="/")&&w.unshift(""),k&&w.join("/").substr(-1)!=="/"&&w.push("");var A=w[0]===""||w[0]&&w[0].charAt(0)==="/";return C&&(t.hostname=t.host=A?"":w.length?w.shift():"",S=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1,S&&(t.auth=S.shift(),t.host=t.hostname=S.shift())),_=_||t.host&&w.length,_&&!A&&w.unshift(""),w.length?t.pathname=w.join("/"):(t.pathname=null,t.path=null),(!eg(t.pathname)||!eg(t.search))&&(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=n.auth||t.auth,t.slashes=t.slashes||n.slashes,t.href=t.format(),t};qc.prototype.parseHost=function(){return O0e(this)};function O0e(n){var e=n.host,t=QGe.exec(e);t&&(t=t[0],t!==":"&&(n.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(n.hostname=e)}var oXe=Object.freeze({__proto__:null,URL:T0e,URLSearchParams:D0e,Url:qc,default:YGe,fileURLToPath:A0e,format:P0e,parse:Zx,resolve:R0e,resolveObject:M0e});function F0e(n){const e=n.charAt(0);return e==="."||e==="~"||e==="@"}const aXe=/^(https?:)?\/\//;function B0e(n){return aXe.test(n)}const lXe=/^\s*data:/i;function OH(n){return lXe.test(n)}function FH(n){if(n.charAt(0)==="~"){const t=n.charAt(1);n=n.slice(t==="/"?2:1)}return cXe(n)}function cXe(n){return Zx(wn(n)?n:"",!1,!0)}var uXe=Object.defineProperty,hXe=Object.defineProperties,dXe=Object.getOwnPropertyDescriptors,Jae=Object.getOwnPropertySymbols,fXe=Object.prototype.hasOwnProperty,pXe=Object.prototype.propertyIsEnumerable,ele=(n,e,t)=>e in n?uXe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,r7=(n,e)=>{for(var t in e||(e={}))fXe.call(e,t)&&ele(n,t,e[t]);if(Jae)for(var t of Jae(e))pXe.call(e,t)&&ele(n,t,e[t]);return n},gXe=(n,e)=>hXe(n,dXe(e));const tT={base:null,includeAbsolute:!1,tags:{video:["src","poster"],source:["src"],img:["src"],image:["xlink:href","href"],use:["xlink:href","href"]}},mXe=n=>Object.keys(n).some(e=>Lo(n[e]))?gXe(r7({},tT),{tags:n}):r7(r7({},tT),n),_Xe=n=>(e,t)=>W0e(e,t,n),W0e=(n,e,t=tT)=>{if(n.type===1){if(!n.props.length)return;const i=t.tags||tT.tags,s=i[n.tag],r=i["*"];if(!s&&!r)return;const o=(s||[]).concat(r||[]);n.props.forEach((a,l)=>{if(a.type!==6||!o.includes(a.name)||!a.value||B0e(a.value.content)||OH(a.value.content)||a.value.content[0]==="#"||!t.includeAbsolute&&!F0e(a.value.content))return;const c=FH(a.value.content);if(t.base&&a.value.content[0]==="."){const h=FH(t.base),d=h.protocol||"",f=h.host?d+"//"+h.host:"",p=h.path||"/";a.value.content=f+(Pg.posix||Pg).join(p,c.path+(c.hash||""));return}const u=vXe(c.path,c.hash,a.loc,e);n.props[l]={type:7,name:"bind",arg:gt(a.name,!0,a.loc),exp:u,modifiers:[],loc:a.loc}})}};function vXe(n,e,t,i){if(n){let s,r;const o=i.imports.findIndex(u=>u.path===n);if(o>-1?(s=`_imports_${o}`,r=i.imports[o].exp):(s=`_imports_${i.imports.length}`,r=gt(s,!1,t,3),i.imports.push({exp:r,path:decodeURIComponent(n)})),!e)return r;const a=`${s} + '${e}'`,l=gt(a,!1,t,3);if(!i.hoistStatic)return l;const c=i.hoists.findIndex(u=>u&&u.type===4&&!u.isStatic&&u.content===a);return c>-1?gt(`_hoisted_${c+1}`,!1,t,3):i.hoist(l)}else return gt("''",!1,t,3)}const bXe=["img","source"],yXe=/( |\\t|\\n|\\f|\\r)+/g,wXe=n=>(e,t)=>V0e(e,t,n),V0e=(n,e,t=tT)=>{n.type===1&&bXe.includes(n.tag)&&n.props.length&&n.props.forEach((i,s)=>{if(i.name==="srcset"&&i.type===6){if(!i.value)return;const r=i.value.content;if(!r)return;const o=r.split(",").map(u=>{const[h,d]=u.replace(yXe," ").trim().split(" ",2);return{url:h,descriptor:d}});for(let u=0;u<o.length;u++){const{url:h}=o[u];OH(h)&&(o[u+1].url=h+","+o[u+1].url,o.splice(u,1))}const a=u=>!B0e(u)&&!OH(u)&&(t.includeAbsolute||F0e(u));if(!o.some(({url:u})=>a(u)))return;if(t.base){const u=t.base,h=[];let d=!1;if(o.forEach(f=>{let{url:p,descriptor:g}=f;g=g?` ${g}`:"",p[0]==="."?(f.url=(Pg.posix||Pg).join(u,p),h.push(f.url+g)):a(p)?d=!0:h.push(p+g)}),!d){i.value.content=h.join(", ");return}}const l=yo([],i.loc);o.forEach(({url:u,descriptor:h},d)=>{if(a(u)){const{path:p}=FH(u);let g;if(p){const m=e.imports.findIndex(_=>_.path===p);m>-1?g=gt(`_imports_${m}`,!1,i.loc,3):(g=gt(`_imports_${e.imports.length}`,!1,i.loc,3),e.imports.push({exp:g,path:p})),l.children.push(g)}}else{const p=gt(`"${u}"`,!1,i.loc,3);l.children.push(p)}const f=o.length-1>d;h&&f?l.children.push(` + ' ${h}, ' + `):h?l.children.push(` + ' ${h}'`):f&&l.children.push(" + ', ' + ")});let c=l;e.hoistStatic&&(c=e.hoist(l),c.constType=3),n.props[s]={type:7,name:"bind",arg:gt("srcset",!0,i.loc),exp:c,modifiers:[],loc:i.loc}}})},DO=Symbol("ssrInterpolate"),H0e=Symbol("ssrRenderVNode"),$0e=Symbol("ssrRenderComponent"),z0e=Symbol("ssrRenderSlot"),U0e=Symbol("ssrRenderSlotInner"),j0e=Symbol("ssrRenderClass"),q0e=Symbol("ssrRenderStyle"),jQ=Symbol("ssrRenderAttrs"),K0e=Symbol("ssrRenderAttr"),G0e=Symbol("ssrRenderDynamicAttr"),X0e=Symbol("ssrRenderList"),qQ=Symbol("ssrIncludeBooleanAttr"),jR=Symbol("ssrLooseEqual"),BH=Symbol("ssrLooseContain"),Y0e=Symbol("ssrRenderDynamicModel"),Z0e=Symbol("ssrGetDynamicModelProps"),Q0e=Symbol("ssrRenderTeleport"),J0e=Symbol("ssrRenderSuspense"),ewe=Symbol("ssrGetDirectiveProps"),WH={[DO]:"ssrInterpolate",[H0e]:"ssrRenderVNode",[$0e]:"ssrRenderComponent",[z0e]:"ssrRenderSlot",[U0e]:"ssrRenderSlotInner",[j0e]:"ssrRenderClass",[q0e]:"ssrRenderStyle",[jQ]:"ssrRenderAttrs",[K0e]:"ssrRenderAttr",[G0e]:"ssrRenderDynamicAttr",[X0e]:"ssrRenderList",[qQ]:"ssrIncludeBooleanAttr",[jR]:"ssrLooseEqual",[BH]:"ssrLooseContain",[Y0e]:"ssrRenderDynamicModel",[Z0e]:"ssrGetDynamicModelProps",[Q0e]:"ssrRenderTeleport",[J0e]:"ssrRenderSuspense",[ewe]:"ssrGetDirectiveProps"};IZ(WH);const CXe=pN(/^(if|else|else-if)$/,lQ);function SXe(n,e,t=!1,i=!1){const[s]=n.branches,r=dO(s.condition,tle(s,e,t));e.pushStatement(r);let o=r;for(let a=1;a<n.branches.length;a++){const l=n.branches[a],c=tle(l,e,t);l.condition?o=o.alternate=dO(l.condition,c):o.alternate=c}!o.alternate&&!i&&(o.alternate=hN([ui("_push",["`<!---->`"])]))}function tle(n,e,t=!1){const{children:i}=n,s=!t&&(i.length!==1||i[0].type!==1)&&!(i.length===1&&i[0].type===11);return Qx(n,e,s)}const xXe=pN("for",uQ);function LXe(n,e,t=!1){const i=!t&&(n.children.length!==1||n.children[0].type!==1),s=Qc(JI(n.parseResult));s.body=Qx(n,e,i),t||e.pushStringPart("<!--[-->"),e.pushStatement(ui(e.helper(X0e),[n.source,s])),t||e.pushStringPart("<!--]-->")}const EXe=(n,e)=>{if(BS(n)){const{slotName:t,slotProps:i}=gQ(n,e),s=["_ctx.$slots",t,i||"{}","null","_push","_parent"];e.scopeId&&e.slotted!==!1&&s.push(`"${e.scopeId}-s"`);let r=z0e,o=e.parent;if(o){const a=o.children;o.type===10&&(o=e.grandParent);let l;o.type===1&&o.tagType===1&&((l=eB(o,e,!0))===w0||l===Yx)&&a.filter(c=>c.type===1).length===1&&(r=U0e,e.scopeId&&e.slotted!==!1||s.push("null"),s.push("true"))}n.ssrCodegenNode=ui(e.helper(r),s)}};function kXe(n,e){const t=n.ssrCodegenNode;if(n.children.length){const i=Qc([]);i.body=Qx(n,e),t.arguments[3]=i}if(e.withSlotScopeId){const i=t.arguments[6];t.arguments[6]=i?`${i} + _scopeId`:"_scopeId"}e.pushStatement(n.ssrCodegenNode)}function iT(n,e){return Bn(n,e,IXe)}const IXe={65:"Unsafe attribute name for SSR.",66:"Missing the 'to' prop on teleport element.",67:"Invalid AST node during SSR transform."};function TXe(n,e){const t=rc(n,"to");if(!t){e.onError(iT(66,n.loc));return}let i;if(t.type===6?i=t.value&>(t.value.content,!0):i=t.exp,!i){e.onError(iT(66,t.loc));return}const s=rc(n,"disabled",!1,!0),r=s?s.type===6?"true":s.exp||"false":"false",o=Qc(["_push"],void 0,!0,!1,n.loc);o.body=Qx(n,e),e.pushStatement(ui(e.helper(Q0e),["_push",o,i,r,"_parent"]))}const twe=new WeakMap;function DXe(n,e){return()=>{if(n.children.length){const t={slotsExp:null,wipSlots:[]};twe.set(n,t),t.slotsExp=eT(n,e,(i,s,r,o)=>{const a=Qc([],void 0,!0,!1,o);return t.wipSlots.push({fn:a,children:r}),a}).slots}}}function NXe(n,e){const t=twe.get(n);if(!t)return;const{slotsExp:i,wipSlots:s}=t;for(let r=0;r<s.length;r++){const o=s[r];o.fn.body=Qx(o,e)}e.pushStatement(ui(e.helper(J0e),["_push",i]))}const OE=new WeakMap,AXe=(n,e)=>{if(!(n.type!==1||n.tagType!==0))return function(){const i=[`<${n.tag}`],s=n.tag==="textarea"||n.tag.indexOf("-")>0,r=q6(n),o=n.props.some(h=>h.type===7&&!wZ(h.name)),a=r||o;if(a){const{props:h,directives:d}=Xx(n,e,n.props,!1,!1,!0);if(h||d.length){const f=KQ(h,d,e),p=ui(e.helper(jQ),[f]);if(n.tag==="textarea"){const g=n.children[0];if(!g||g.type!==5){const m=`_temp${e.temps++}`;p.arguments=[PR(gt(m,!1),f)],OE.set(n,ui(e.helper(DO),[Mh(gt(`"value" in ${m}`,!1),gt(`${m}.value`,!1),gt(g?g.content:"",!0),!1)]))}}else if(n.tag==="input"){const g=OXe(n);if(g){const m=`_temp${e.temps++}`,_=gt(m,!1);p.arguments=[Sbe([PR(_,f),ui(e.helper(Py),[_,ui(e.helper(Z0e),[_,g.exp])])])]}}else if(d.length&&!n.children.length){const g=`_temp${e.temps++}`;p.arguments=[PR(gt(g,!1),f)],OE.set(n,Mh(gt(`"textContent" in ${g}`,!1),ui(e.helper(DO),[gt(`${g}.textContent`,!1)]),gt(`${g}.innerHTML ?? ''`,!1),!1))}s&&p.arguments.push(`"${n.tag}"`),i.push(p)}}let l,c,u;for(let h=0;h<n.props.length;h++){const d=n.props[h];if(!(n.tag==="input"&&PXe(d)))if(d.type===7){if(d.name==="html"&&d.exp)OE.set(n,yo(["(",d.exp,") ?? ''"]));else if(d.name==="text"&&d.exp)n.children=[hO(d.exp,d.loc)];else if(d.name==="slot")e.onError(Bn(40,d.loc));else if(RXe(n,d)&&d.exp)a||(n.children=[hO(d.exp,d.loc)]);else if(!a&&d.name!=="on"){const f=e.directiveTransforms[d.name];if(f){const{props:p,ssrTagParts:g}=f(d,n,e);g&&i.push(...g);for(let m=0;m<p.length;m++){const{key:_,value:b}=p[m];if(Ko(_)){let w=_.content;if(w==="key"||w==="ref")continue;w==="class"?i.push(' class="',l=ui(e.helper(j0e),[b]),'"'):w==="style"?u?ile(u,b):i.push(' style="',u=ui(e.helper(q0e),[b]),'"'):(w=n.tag.indexOf("-")>0?w:Y$e[w]||w.toLowerCase(),gbe(w)?i.push(Mh(ui(e.helper(qQ),[b]),gt(" "+w,!0),gt("",!0),!1)):X$e(w)?i.push(ui(e.helper(K0e),[_,b])):e.onError(iT(65,_.loc)))}else{const w=[_,b];s&&w.push(`"${n.tag}"`),i.push(ui(e.helper(G0e),w))}}}}}else{const f=d.name;if(n.tag==="textarea"&&f==="value"&&d.value)OE.set(n,ff(d.value.content));else if(!a){if(f==="key"||f==="ref")continue;f==="class"&&d.value&&(c=JSON.stringify(d.value.content)),i.push(` ${d.name}`+(d.value?`="${ff(d.value.content)}"`:""))}}}l&&c&&(ile(l,c),MXe(i,"class")),e.scopeId&&i.push(` ${e.scopeId}`),n.ssrCodegenNode=TZ(i)}};function KQ(n,e,t){let i=[];if(n&&(n.type===14?i=n.arguments:i.push(n)),e.length)for(const s of e)i.push(ui(t.helper(ewe),["_ctx",...pQ(s,t).elements]));return i.length>1?ui(t.helper(Py),i):i[0]}function PXe(n){return n.type===7?n.name==="bind"&&n.arg&&Ko(n.arg)&&(n.arg.content==="true-value"||n.arg.content==="false-value"):n.name==="true-value"||n.name==="false-value"}function RXe(n,e){return!!(n.tag==="textarea"&&e.name==="bind"&&pf(e.arg,"value"))}function ile(n,e){const t=n.arguments[0];t.type===17?t.elements.push(e):n.arguments[0]=Ef([t,e])}function MXe(n,e){const t=new RegExp(`^ ${e}=".+"$`),i=n.findIndex(s=>typeof s=="string"&&t.test(s));i>-1&&n.splice(i,1)}function OXe(n){return n.props.find(e=>e.type===7&&e.name==="model"&&e.exp)}function FXe(n,e){const t=e.options.isVoidTag||AR,i=n.ssrCodegenNode.elements;for(let r=0;r<i.length;r++)e.pushStringPart(i[r]);e.withSlotScopeId&&e.pushStringPart(gt("_scopeId",!1)),e.pushStringPart(">");const s=OE.get(n);s?e.pushStringPart(s):n.children.length&&yg(n,e),t(n.tag)||e.pushStringPart(`</${n.tag}>`)}const iwe=new WeakMap;function BXe(n,e){return()=>{const t=rc(n,"tag");if(t){const i=n.props.filter(a=>a!==t),{props:s,directives:r}=Xx(n,e,i,!0,!1,!0);let o=null;(s||r.length)&&(o=ui(e.helper(jQ),[KQ(s,r,e)])),iwe.set(n,{tag:t,propsExp:o,scopeId:e.scopeId||null})}}}function WXe(n,e){const t=iwe.get(n);if(t){const{tag:i,propsExp:s,scopeId:r}=t;i.type===7?(e.pushStringPart("<"),e.pushStringPart(i.exp),s&&e.pushStringPart(s),r&&e.pushStringPart(` ${r}`),e.pushStringPart(">"),yg(n,e,!1,!0,!0),e.pushStringPart("</"),e.pushStringPart(i.exp),e.pushStringPart(">")):(e.pushStringPart(`<${i.value.content}`),s&&e.pushStringPart(s),r&&e.pushStringPart(` ${r}`),e.pushStringPart(">"),yg(n,e,!1,!0,!0),e.pushStringPart(`</${i.value.content}>`))}else yg(n,e,!0,!0,!0)}const nwe=new WeakMap;function VXe(n,e){return()=>{const t=rc(n,"appear",!1,!0);nwe.set(n,!!t)}}function HXe(n,e){n.children=n.children.filter(i=>i.type!==3),nwe.get(n)?(e.pushStringPart("<template>"),yg(n,e,!1,!0),e.pushStringPart("</template>")):yg(n,e,!1,!0)}var $Xe=Object.defineProperty,zXe=Object.defineProperties,UXe=Object.getOwnPropertyDescriptors,nle=Object.getOwnPropertySymbols,jXe=Object.prototype.hasOwnProperty,qXe=Object.prototype.propertyIsEnumerable,sle=(n,e,t)=>e in n?$Xe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,gb=(n,e)=>{for(var t in e||(e={}))jXe.call(e,t)&&sle(n,t,e[t]);if(nle)for(var t of nle(e))qXe.call(e,t)&&sle(n,t,e[t]);return n},KXe=(n,e)=>zXe(n,UXe(e));const swe=new WeakMap,rwe=Symbol(),owe=new WeakMap,GXe=(n,e)=>{if(n.type!==1||n.tagType!==1)return;const t=eB(n,e,!0),i=k_(t)&&t.callee===cN;if(owe.set(n,t),E_(t))return t===Bx?DXe(n,e):t===Yx?BXe(n,e):t===w0?VXe(n):void 0;const s=[],r=VH(n);return function(){r.children.length&&eT(r,e,(h,d,f)=>(s.push(eYe(h,d,f,e)),Qc(void 0)));let a="null";if(n.props.length){const{props:h,directives:d}=Xx(n,e,void 0,!0,i);(h||d.length)&&(a=KQ(h,d,e))}const l=[];swe.set(n,l);const c=(h,d,f,p)=>{const g=h&&J6(h)||"_",m=Qc([g,"_push","_parent","_scopeId"],void 0,!0,!0,p);return l.push({type:rwe,fn:m,children:f,vnodeBranch:s[l.length]}),m},u=n.children.length?eT(n,e,c).slots:"null";typeof t!="string"?n.ssrCodegenNode=ui(e.helper(H0e),["_push",ui(e.helper(lN),[t,a,u]),"_parent"]):n.ssrCodegenNode=ui(e.helper($0e),[t,a,u,"_parent"])}};function XXe(n,e,t){const i=owe.get(n);if(n.ssrCodegenNode){const s=swe.get(n)||[];for(let r=0;r<s.length;r++){const{fn:o,vnodeBranch:a}=s[r];o.body=dO(gt("_push",!1),Qx(s[r],e,!1,!0),a)}e.withSlotScopeId&&n.ssrCodegenNode.arguments.push("_scopeId"),typeof i=="string"?e.pushStatement(ui("_push",[n.ssrCodegenNode])):e.pushStatement(n.ssrCodegenNode)}else{if(i===db)return TXe(n,e);if(i===Bx)return NXe(n,e);if(i===Yx)return WXe(n,e);if(t.type===rwe&&e.pushStringPart(""),i===w0)return HXe(n,e);yg(n,e)}}const awe=new WeakMap,[YXe,ZXe]=mQ(!0),QXe=[...YXe,...kQ],JXe=gb(gb({},ZXe),IQ);function eYe(n,e,t,i){const s=awe.get(i.root),r=KXe(gb({},s),{nodeTransforms:[...QXe,...s.nodeTransforms||[]],directiveTransforms:gb(gb({},JXe),s.directiveTransforms||{})}),o=[];return n&&o.push({type:7,name:"slot",exp:n,arg:void 0,modifiers:[],loc:Ks}),e&&o.push(Lf({},e)),tYe({type:1,ns:0,tag:"template",tagType:3,props:o,children:t,loc:Ks,codegenNode:void 0},r,i),xbe(t)}function tYe(n,e,t){const i=y0([n]),s=fN(i,e);s.ssr=!1,s.scopes=gb({},t.scopes),s.identifiers=gb({},t.identifiers),s.imports=t.imports,Ux(i,s),["helpers","components","directives"].forEach(r=>{s[r].forEach((o,a)=>{if(r==="helpers"){const l=t.helpers.get(a);l===void 0?t.helpers.set(a,o):t.helpers.set(a,o+l)}else t[r].add(o)})})}function VH(n){if(Lo(n))return n.map(VH);if(cbe(n)){const e={};for(const t in n)e[t]=VH(n[t]);return e}else return n}function iYe(n,e){const t=lwe(n,e);if(e.ssrCssVars){const s=fN(y0([]),e),r=Eo(gt(e.ssrCssVars,!1),s);t.body.push(yo(["const _cssVars = { style: ",r,"}"])),Array.from(s.helpers.keys()).forEach(o=>{n.helpers.add(o)})}const i=n.children.length>1&&n.children.some(s=>!gk(s));yg(n,t,i),n.codegenNode=hN(t.body),n.ssrHelpers=Array.from(new Set([...Array.from(n.helpers).filter(s=>s in WH),...t.helpers])),n.helpers=new Set(Array.from(n.helpers).filter(s=>!(s in WH)))}function lwe(n,e,t=new Set,i=!1){const s=[];let r=null;return{root:n,options:e,body:s,helpers:t,withSlotScopeId:i,onError:e.onError||(o=>{throw o}),helper(o){return t.add(o),o},pushStringPart(o){if(!r){const c=ui("_push");s.push(c),r=TZ([]),c.arguments.push(r)}const a=r.elements,l=a[a.length-1];wn(o)&&wn(l)?a[a.length-1]+=o:a.push(o)},pushStatement(o){r=null,s.push(o)}}}function nYe(n,e=n.withSlotScopeId){return lwe(n.root,n.options,n.helpers,e)}function yg(n,e,t=!1,i=!1,s=!1){t&&e.pushStringPart("<!--[-->");const{children:r}=n;for(let o=0;o<r.length;o++){const a=r[o];switch(a.type){case 1:switch(a.tagType){case 0:FXe(a,e);break;case 1:XXe(a,e,n);break;case 2:kXe(a,e);break;case 3:break;default:return e.onError(iT(67,a.loc)),a}break;case 2:e.pushStringPart(ff(a.content));break;case 3:e.pushStringPart(`<!--${a.content}-->`);break;case 5:e.pushStringPart(ui(e.helper(DO),[a.content]));break;case 9:SXe(a,e,i,s);break;case 11:LXe(a,e,i);break;case 10:break;case 12:case 8:break;default:return e.onError(iT(67,a.loc)),a}}t&&e.pushStringPart("<!--]-->")}function Qx(n,e,t=!1,i=e.withSlotScopeId){const s=nYe(e,i);return yg(n,s,t),hN(s.body)}const sYe=(n,e,t)=>{const i=n.exp;function s(){const o=rc(e,"value");o&&t.onError(Ta(60,o.loc))}function r(o){if(o.tag==="option"){if(o.props.findIndex(a=>a.name==="selected")===-1){const a=rle(o);o.ssrCodegenNode.elements.push(Mh(ui(t.helper(qQ),[Mh(ui("Array.isArray",[i]),ui(t.helper(BH),[i,a]),ui(t.helper(jR),[i,a]))]),gt(" selected",!0),gt("",!0),!1))}}else o.tag==="optgroup"&&o.children.forEach(a=>r(a))}if(e.tagType===0){const o={props:[]},a=[Qn("value",i)];if(e.tag==="input"){const l=rc(e,"type");if(l){const c=rle(e);if(l.type===7)o.ssrTagParts=[ui(t.helper(Y0e),[l.exp,i,c])];else if(l.value)switch(l.value.content){case"radio":o.props=[Qn("checked",ui(t.helper(jR),[i,c]))];break;case"checkbox":const u=rc(e,"true-value");if(u){const h=u.type===6?JSON.stringify(u.value.content):u.exp;o.props=[Qn("checked",ui(t.helper(jR),[i,h]))]}else o.props=[Qn("checked",Mh(ui("Array.isArray",[i]),ui(t.helper(BH),[i,c]),i))];break;case"file":t.onError(Ta(59,n.loc));break;default:s(),o.props=a;break}}else q6(e)||(s(),o.props=a)}else e.tag==="textarea"?(s(),e.children=[hO(i,i.loc)]):e.tag==="select"?e.children.forEach(l=>{l.type===1&&r(l)}):t.onError(Ta(57,n.loc));return o}else return iB(n,e,t)};function rle(n){const e=rc(n,"value");return e?e.type===7?e.exp:gt(e.value.content,!0):gt("null",!1)}const rYe=(n,e,t)=>(n.exp||t.onError(Ta(61)),{props:[Qn("style",Mh(n.exp,gt("null",!1),Ql([Qn("display",gt("none",!0))]),!1))]}),HH=n=>n.children.filter(e=>e.type!==3),o7=n=>HH(n).length===1,oYe=(n,e)=>{if(n.type===0&&(e.identifiers._attrs=1),n.type===1&&n.tagType===1&&(n.tag==="transition"||n.tag==="Transition"||n.tag==="KeepAlive"||n.tag==="keep-alive")){const i=HH(e.root);if(i.length===1&&i[0]===n){o7(n)&&a7(n.children[0]);return}}const t=e.parent;if(!(!t||t.type!==0))if(n.type===10&&o7(n)){let i=!1;for(const s of HH(t))if(s.type===9||s.type===1&&Jr(s,"if")){if(i)return;i=!0}else if(!i||!(s.type===1&&Jr(s,/else/,!0)))return;a7(n.children[0])}else o7(t)&&a7(n)};function a7(n){n.type===1&&(n.tagType===0||n.tagType===1)&&!Jr(n,"for")&&n.props.push({type:7,name:"bind",arg:void 0,exp:gt("_attrs",!1),modifiers:[],loc:Ks})}const aYe=(n,e)=>{if(!e.ssrCssVars)return;n.type===0&&(e.identifiers._cssVars=1);const t=e.parent;if(!(!t||t.type!==0))if(n.type===10)for(const i of n.children)NO(i);else NO(n)};function NO(n){if(n.type===1&&(n.tagType===0||n.tagType===1)&&!Jr(n,"for"))if(n.tag==="suspense"||n.tag==="Suspense")for(const e of n.children)e.type===1&&e.tagType===3?e.children.forEach(NO):NO(e);else n.props.push({type:7,name:"bind",arg:void 0,exp:gt("_cssVars",!1),modifiers:[],loc:Ks})}var lYe=Object.defineProperty,cYe=Object.defineProperties,uYe=Object.getOwnPropertyDescriptors,ole=Object.getOwnPropertySymbols,hYe=Object.prototype.hasOwnProperty,dYe=Object.prototype.propertyIsEnumerable,ale=(n,e,t)=>e in n?lYe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,HA=(n,e)=>{for(var t in e||(e={}))hYe.call(e,t)&&ale(n,t,e[t]);if(ole)for(var t of ole(e))dYe.call(e,t)&&ale(n,t,e[t]);return n},lle=(n,e)=>cYe(n,uYe(e));function fYe(n,e={}){e=lle(HA(HA({},e),VS),{ssr:!0,inSSR:!0,scopeId:e.mode==="function"?null:e.scopeId,prefixIdentifiers:!0,cacheHandlers:!1,hoistStatic:!1});const t=typeof n=="string"?K6(n,e):n;return awe.set(t,e),ZZ(t,lle(HA({},e),{hoistStatic:!1,nodeTransforms:[CXe,xXe,fQ,aQ,EXe,oYe,aYe,AXe,GXe,dQ,xQ,...e.nodeTransforms||[]],directiveTransforms:HA({bind:cQ,on:tB,model:sYe,show:rYe,cloak:mk,once:mk,memo:mk},e.directiveTransforms||{})})),iYe(t,e),oQ(t,e)}var pYe=Object.freeze({__proto__:null,compile:fYe});function gYe(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var mYe={},_Ye=Object.freeze({__proto__:null,default:mYe}),vYe=dN(_Ye),GQ=dN(zKe),bYe=dN(qGe);const cle={};function wk(n){!(typeof process<"u"&&!0)&&!cle[n]&&(cle[n]=!0,$H(n))}function $H(n){console.warn(`\x1B[1m\x1B[33m[@vue/compiler-sfc]\x1B[0m\x1B[33m ${n}\x1B[0m +`)}var yYe=Object.defineProperty,wYe=Object.defineProperties,CYe=Object.getOwnPropertyDescriptors,ule=Object.getOwnPropertySymbols,SYe=Object.prototype.hasOwnProperty,xYe=Object.prototype.propertyIsEnumerable,hle=(n,e,t)=>e in n?yYe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,AO=(n,e)=>{for(var t in e||(e={}))SYe.call(e,t)&&hle(n,t,e[t]);if(ule)for(var t of ule(e))xYe.call(e,t)&&hle(n,t,e[t]);return n},zH=(n,e)=>wYe(n,CYe(e));function LYe({source:n,filename:e,preprocessOptions:t},i){let s="",r=null;if(i.render(n,AO({filename:e},t),(o,a)=>{o&&(r=o),s=a}),r)throw r;return s}function cwe(n){const{preprocessLang:e,preprocessCustomRequire:t}=n;if(e&&!t)throw new Error("[@vue/compiler-sfc] Template preprocessing in the browser build must provide the `preprocessCustomRequire` option to return the in-browser version of the preprocessor in the shape of { render(): string }.");const i=e?t?t(e):void 0:!1;if(i)try{return dle(zH(AO({},n),{source:LYe(n,i),ast:void 0}))}catch(s){return{code:"export default function render() {}",source:n.source,tips:[],errors:[s]}}else return e?{code:"export default function render() {}",source:n.source,tips:[`Component ${n.filename} uses lang ${e} for template. Please install the language preprocessor.`],errors:[`Component ${n.filename} uses lang ${e} for template, however it is not installed.`]}:dle(n)}function dle({filename:n,id:e,scoped:t,slotted:i,inMap:s,source:r,ast:o,ssr:a=!1,ssrCssVars:l,isProd:c=!1,compiler:u,compilerOptions:h={},transformAssetUrls:d}){const f=[],p=[];let g=[];if(k_(d)){const L=mXe(d);g=[_Xe(L),wXe(L)]}else d!==!1&&(g=[W0e,V0e]);a&&!l&&wk("compileTemplate is called with `ssr: true` but no corresponding `cssVars` option."),e||(wk("compileTemplate now requires the `id` option."),e="");const m=e.replace(/^data-v-/,""),_=`data-v-${m}`,b=a?pYe:TH;if(u=u||b,u!==b&&(o=void 0),o!=null&&o.transformed){const E=(a?TH:u).parse(o.source,zH(AO({prefixIdentifiers:!0},h),{parseMode:"sfc",onError:A=>f.push(A)})).children.find(A=>A.type===1&&A.tag==="template");o=y0(E.children,o.source)}let{code:w,ast:C,preamble:S,map:x}=u.compile(o||r,zH(AO({mode:"module",prefixIdentifiers:!0,hoistStatic:!0,cacheHandlers:!0,ssrCssVars:a&&l&&l.length?Oye(l,m,c,!0):"",scopeId:t?_:void 0,slotted:i,sourceMap:!0},h),{hmr:!c,nodeTransforms:g.concat(h.nodeTransforms||[]),filename:n,onError:L=>f.push(L),onWarn:L=>p.push(L)}));s&&!o&&(x&&(x=EYe(s,x)),f.length&&kYe(f,r,s));const k=p.map(L=>{let E=L.message;return L.loc&&(E+=` +${AS((o==null?void 0:o.source)||r,L.loc.start.offset,L.loc.end.offset)}`),E});return{code:w,ast:C,preamble:S,source:r,errors:f,tips:k,map:x}}function EYe(n,e){if(!n)return e;if(!e)return n;const t=new wae(n),i=new wae(e),s=new rQ;i.eachMapping(o=>{if(o.originalLine==null)return;const a=t.originalPositionFor({line:o.originalLine,column:o.originalColumn});a.source!=null&&s.addMapping({generated:{line:o.generatedLine,column:o.generatedColumn},original:{line:a.line,column:o.originalColumn},source:a.source,name:a.name})});const r=s;return t.sources.forEach(o=>{r._sources.add(o);const a=t.sourceContentFor(o);a!=null&&s.setSourceContent(o,a)}),r._sourceRoot=n.sourceRoot,r._file=n.file,r.toJSON()}function kYe(n,e,t){const i=t.sourcesContent[0],s=i.indexOf(e),r=i.slice(0,s).split(/\r?\n/).length-1;n.forEach(o=>{o.loc&&(o.loc.start.line+=r,o.loc.start.offset+=s,o.loc.end!==o.loc.start&&(o.loc.end.line+=r,o.loc.end.offset+=s))})}var XQ={exports:{}};function uwe(){return!1}function hwe(){throw new Error("tty.ReadStream is not implemented")}function dwe(){throw new Error("tty.ReadStream is not implemented")}var IYe={isatty:uwe,ReadStream:hwe,WriteStream:dwe},TYe=Object.freeze({__proto__:null,ReadStream:hwe,WriteStream:dwe,default:IYe,isatty:uwe}),DYe=dN(TYe);let fle=oc.argv||[],$A={},NYe=!("NO_COLOR"in $A||fle.includes("--no-color"))&&("FORCE_COLOR"in $A||fle.includes("--color")||!1||gYe!=null&&DYe.isatty(1)&&$A.TERM!=="dumb"||"CI"in $A),AYe=(n,e,t=n)=>i=>{let s=""+i,r=s.indexOf(e,n.length);return~r?n+PYe(s,e,t,r)+e:n+s+e},PYe=(n,e,t,i)=>{let s="",r=0;do s+=n.substring(r,i)+t,r=i+e.length,i=n.indexOf(e,r);while(~i);return s+n.substring(r)},fwe=(n=NYe)=>{let e=n?AYe:()=>String;return{isColorSupported:n,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m")}};XQ.exports=fwe();XQ.exports.createColors=fwe;var pwe=XQ.exports;const l7=39,ple=34,zA=92,gle=47,UA=10,qL=32,jA=12,qA=9,KA=13,RYe=91,MYe=93,OYe=40,FYe=41,BYe=123,WYe=125,VYe=59,HYe=42,$Ye=58,zYe=64,GA=/[\t\n\f\r "#'()/;[\\\]{}]/g,XA=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,UYe=/.[\r\n"'(/\\]/,mle=/[\da-f]/i;var gwe=function(e,t={}){let i=e.css.valueOf(),s=t.ignoreErrors,r,o,a,l,c,u,h,d,f,p,g=i.length,m=0,_=[],b=[];function w(){return m}function C(L){throw e.error("Unclosed "+L,m)}function S(){return b.length===0&&m>=g}function x(L){if(b.length)return b.pop();if(m>=g)return;let E=L?L.ignoreUnclosed:!1;switch(r=i.charCodeAt(m),r){case UA:case qL:case qA:case KA:case jA:{l=m;do l+=1,r=i.charCodeAt(l);while(r===qL||r===UA||r===qA||r===KA||r===jA);u=["space",i.slice(m,l)],m=l-1;break}case RYe:case MYe:case BYe:case WYe:case $Ye:case VYe:case FYe:{let A=String.fromCharCode(r);u=[A,A,m];break}case OYe:{if(p=_.length?_.pop()[1]:"",f=i.charCodeAt(m+1),p==="url"&&f!==l7&&f!==ple&&f!==qL&&f!==UA&&f!==qA&&f!==jA&&f!==KA){l=m;do{if(h=!1,l=i.indexOf(")",l+1),l===-1)if(s||E){l=m;break}else C("bracket");for(d=l;i.charCodeAt(d-1)===zA;)d-=1,h=!h}while(h);u=["brackets",i.slice(m,l+1),m,l],m=l}else l=i.indexOf(")",m+1),o=i.slice(m,l+1),l===-1||UYe.test(o)?u=["(","(",m]:(u=["brackets",o,m,l],m=l);break}case l7:case ple:{c=r===l7?"'":'"',l=m;do{if(h=!1,l=i.indexOf(c,l+1),l===-1)if(s||E){l=m+1;break}else C("string");for(d=l;i.charCodeAt(d-1)===zA;)d-=1,h=!h}while(h);u=["string",i.slice(m,l+1),m,l],m=l;break}case zYe:{GA.lastIndex=m+1,GA.test(i),GA.lastIndex===0?l=i.length-1:l=GA.lastIndex-2,u=["at-word",i.slice(m,l+1),m,l],m=l;break}case zA:{for(l=m,a=!0;i.charCodeAt(l+1)===zA;)l+=1,a=!a;if(r=i.charCodeAt(l+1),a&&r!==gle&&r!==qL&&r!==UA&&r!==qA&&r!==KA&&r!==jA&&(l+=1,mle.test(i.charAt(l)))){for(;mle.test(i.charAt(l+1));)l+=1;i.charCodeAt(l+1)===qL&&(l+=1)}u=["word",i.slice(m,l+1),m,l],m=l;break}default:{r===gle&&i.charCodeAt(m+1)===HYe?(l=i.indexOf("*/",m+2)+1,l===0&&(s||E?l=i.length:C("comment")),u=["comment",i.slice(m,l+1),m,l],m=l):(XA.lastIndex=m+1,XA.test(i),XA.lastIndex===0?l=i.length-1:l=XA.lastIndex-2,u=["word",i.slice(m,l+1),m,l],_.push(u),m=l);break}}return m++,u}function k(L){b.push(L)}return{back:k,endOfFile:S,nextToken:x,position:w}};let ja=pwe,jYe=gwe,mwe;function qYe(n){mwe=n}const KYe={";":ja.yellow,":":ja.yellow,"(":ja.cyan,")":ja.cyan,"[":ja.yellow,"]":ja.yellow,"{":ja.yellow,"}":ja.yellow,"at-word":ja.cyan,brackets:ja.cyan,call:ja.cyan,class:ja.yellow,comment:ja.gray,hash:ja.magenta,string:ja.green};function GYe([n,e],t){if(n==="word"){if(e[0]===".")return"class";if(e[0]==="#")return"hash"}if(!t.endOfFile()){let i=t.nextToken();if(t.back(i),i[0]==="brackets"||i[0]==="(")return"call"}return n}function _we(n){let e=jYe(new mwe(n),{ignoreErrors:!0}),t="";for(;!e.endOfFile();){let i=e.nextToken(),s=KYe[GYe(i,e)];s?t+=i[1].split(/\r?\n/).map(r=>s(r)).join(` +`):t+=i[1]}return t}_we.registerInput=qYe;var vwe=_we;let _le=pwe,vle=vwe,UH=class bwe extends Error{constructor(e,t,i,s,r,o){super(e),this.name="CssSyntaxError",this.reason=e,r&&(this.file=r),s&&(this.source=s),o&&(this.plugin=o),typeof t<"u"&&typeof i<"u"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,bwe)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=_le.isColorSupported);let i=u=>u,s=u=>u,r=u=>u;if(e){let{bold:u,gray:h,red:d}=_le.createColors(!0);s=f=>u(d(f)),i=f=>h(f),vle&&(r=f=>vle(f))}let o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;return o.slice(a,l).map((u,h)=>{let d=a+1+h,f=" "+(" "+d).slice(-c)+" | ";if(d===this.line){if(u.length>160){let g=20,m=Math.max(0,this.column-g),_=Math.max(this.column+g,this.endColumn+g),b=u.slice(m,_),w=i(f.replace(/\d/g," "))+u.slice(0,Math.min(this.column-1,g-1)).replace(/[^\t]/g," ");return s(">")+i(f)+r(b)+` + `+w+s("^")}let p=i(f.replace(/\d/g," "))+u.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+i(f)+r(u)+` + `+p+s("^")}return" "+i(f)+r(u)}).join(` +`)}toString(){let e=this.showSourceCode();return e&&(e=` + +`+e+` +`),this.name+": "+this.message+e}};var YQ=UH;UH.default=UH;const ble={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function XYe(n){return n[0].toUpperCase()+n.slice(1)}let jH=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,s=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?i+=e.raws.afterName:s&&(i+=" "),e.nodes)this.block(e,i+s);else{let r=(e.raws.between||"")+(t?";":"");this.builder(i+s+r,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let s=e.parent,r=0;for(;s&&s.type!=="root";)r+=1,s=s.parent;if(i.includes(` +`)){let o=this.raw(e,null,"indent");if(o.length)for(let a=0;a<r;a++)i+=o}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let s;e.nodes&&e.nodes.length?(this.body(e),s=this.raw(e,"after")):s=this.raw(e,"after","emptyBody"),s&&this.builder(s),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let s=0;s<e.nodes.length;s++){let r=e.nodes[s],o=this.raw(r,"before");o&&this.builder(o),this.stringify(r,t!==s||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),s=e.prop+i+this.rawValue(e,"value");e.important&&(s+=e.raws.important||" !important"),t&&(s+=";"),this.builder(s,e)}document(e){this.body(e)}raw(e,t,i){let s;if(i||(i=t),t&&(s=e.raws[t],typeof s<"u"))return s;let r=e.parent;if(i==="before"&&(!r||r.type==="root"&&r.first===e||r&&r.type==="document"))return"";if(!r)return ble[i];let o=e.root();if(o.rawCache||(o.rawCache={}),typeof o.rawCache[i]<"u")return o.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+XYe(i);this[a]?s=this[a](o,e):o.walk(l=>{if(s=l.raws[t],typeof s<"u")return!1})}return typeof s>"u"&&(s=ble[i]),o.rawCache[i]=s,s}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return t=i.raws.after,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(s=>{if(typeof s.raws.before<"u")return i=s.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(s=>{if(typeof s.raws.before<"u")return i=s.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return t=i.raws.before,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let s=i.parent;if(s&&s!==e&&s.parent&&s.parent===e&&typeof i.raws.before<"u"){let r=i.raws.before.split(` +`);return t=r[r.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],s=e.raws[t];return s&&s.value===i?s.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var ywe=jH;jH.default=jH;let YYe=ywe;function qH(n,e){new YYe(e).stringify(n)}var uB=qH;qH.default=qH;var gN={};gN.isClean=Symbol("isClean");gN.my=Symbol("my");let ZYe=YQ,QYe=ywe,JYe=uB,{isClean:KL,my:eZe}=gN;function KH(n,e){let t=new n.constructor;for(let i in n){if(!Object.prototype.hasOwnProperty.call(n,i)||i==="proxyCache")continue;let s=n[i],r=typeof s;i==="parent"&&r==="object"?e&&(t[i]=e):i==="source"?t[i]=s:Array.isArray(s)?t[i]=s.map(o=>KH(o,t)):(r==="object"&&s!==null&&(s=KH(s)),t[i]=s)}return t}let GH=class{constructor(e={}){this.raws={},this[KL]=!1,this[eZe]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=KH(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:s}=this.rangeBy(t);return this.source.input.error(e,{column:s.column,line:s.line},{column:i.column,line:i.line},t)}return new ZYe(e)}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:t==="root"?()=>e.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[KL]=!0}markDirty(){if(this[KL]){this[KL]=!1;let e=this;for(;e=e.parent;)e[KL]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let i=this.source.start;if(e.index)i=this.positionInside(e.index,t);else if(e.word){t=this.toString();let s=t.indexOf(e.word);s!==-1&&(i=this.positionInside(s,t))}return i}positionInside(e,t){let i=t||this.toString(),s=this.source.start.column,r=this.source.start.line;for(let o=0;o<e;o++)i[o]===` +`?(s=1,r+=1):s+=1;return{column:s,line:r}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e){let t={column:this.source.start.column,line:this.source.start.line},i=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:t.column+1,line:t.line};if(e.word){let s=this.toString(),r=s.indexOf(e.word);r!==-1&&(t=this.positionInside(r,s),i=this.positionInside(r+e.word.length,s))}else e.start?t={column:e.start.column,line:e.start.line}:e.index&&(t=this.positionInside(e.index)),e.end?i={column:e.end.column,line:e.end.line}:typeof e.endIndex=="number"?i=this.positionInside(e.endIndex):e.index&&(i=this.positionInside(e.index+1));return(i.line<t.line||i.line===t.line&&i.column<=t.column)&&(i={column:t.column+1,line:t.line}),{end:i,start:t}}raw(e,t){return new QYe().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let s of e)s===this?i=!0:i?(this.parent.insertAfter(t,s),t=s):this.parent.insertBefore(t,s);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},s=t==null;t=t||new Map;let r=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o)||o==="parent"||o==="proxyCache")continue;let a=this[o];if(Array.isArray(a))i[o]=a.map(l=>typeof l=="object"&&l.toJSON?l.toJSON(null,t):l);else if(typeof a=="object"&&a.toJSON)i[o]=a.toJSON(null,t);else if(o==="source"){let l=t.get(a.input);l==null&&(l=r,t.set(a.input,r),r++),i[o]={end:a.end,inputId:l,start:a.start}}else i[o]=a}return s&&(i.inputs=[...t.keys()].map(o=>o.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=JYe){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i){let s={node:this};for(let r in i)s[r]=i[r];return e.warn(t,s)}get proxyOf(){return this}};var hB=GH;GH.default=GH;let tZe=hB,XH=class extends tZe{constructor(e){super(e),this.type="comment"}};var dB=XH;XH.default=XH;let iZe=hB,YH=class extends iZe{constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var fB=YH;YH.default=YH;let wwe=dB,Cwe=fB,nZe=hB,{isClean:Swe,my:xwe}=gN,ZQ,Lwe,Ewe,QQ;function kwe(n){return n.map(e=>(e.nodes&&(e.nodes=kwe(e.nodes)),delete e.source,e))}function Iwe(n){if(n[Swe]=!1,n.proxyOf.nodes)for(let e of n.proxyOf.nodes)Iwe(e)}let Rg=class Twe extends nZe{append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let s of i)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,s;for(;this.indexes[t]<this.proxyOf.nodes.length&&(i=this.indexes[t],s=e(this.proxyOf.nodes[i],i),s!==!1);)this.indexes[t]+=1;return delete this.indexes[t],s}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...i)=>e[t](...i.map(s=>typeof s=="function"?(r,o)=>s(r.toProxy(),o):s)):t==="every"||t==="some"?i=>e[t]((s,...r)=>i(s.toProxy(),...r)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),s=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let o of s)this.proxyOf.nodes.splice(i+1,0,o);let r;for(let o in this.indexes)r=this.indexes[o],i<r&&(this.indexes[o]=r+s.length);return this.markDirty(),this}insertBefore(e,t){let i=this.index(e),s=i===0?"prepend":!1,r=this.normalize(t,this.proxyOf.nodes[i],s).reverse();i=this.index(e);for(let a of r)this.proxyOf.nodes.splice(i,0,a);let o;for(let a in this.indexes)o=this.indexes[a],i<=o&&(this.indexes[a]=o+r.length);return this.markDirty(),this}normalize(e,t){if(typeof e=="string")e=kwe(Lwe(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let s of e)s.parent&&s.parent.removeChild(s,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let s of e)s.parent&&s.parent.removeChild(s,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Cwe(e)]}else if(e.selector||e.selectors)e=[new QQ(e)];else if(e.name)e=[new ZQ(e)];else if(e.text)e=[new wwe(e)];else throw new Error("Unknown node type in node creation");return e.map(s=>((!s[xwe]||!s.markClean)&&Twe.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[Swe]&&Iwe(s),typeof s.raws.before>"u"&&t&&typeof t.raws.before<"u"&&(s.raws.before=t.raws.before.replace(/\S/g,"")),s.parent=this.proxyOf,s))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let s of i)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(s=>{t.props&&!t.props.includes(s.prop)||t.fast&&!s.value.includes(t.fast)||(s.value=s.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,i)=>{let s;try{s=e(t,i)}catch(r){throw t.addToError(r)}return s!==!1&&t.walk&&(s=t.walk(e)),s})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,s)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,s)}):this.walk((i,s)=>{if(i.type==="atrule"&&i.name===e)return t(i,s)}):(t=e,this.walk((i,s)=>{if(i.type==="atrule")return t(i,s)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,s)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,s)}):this.walk((i,s)=>{if(i.type==="decl"&&i.prop===e)return t(i,s)}):(t=e,this.walk((i,s)=>{if(i.type==="decl")return t(i,s)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,s)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,s)}):this.walk((i,s)=>{if(i.type==="rule"&&i.selector===e)return t(i,s)}):(t=e,this.walk((i,s)=>{if(i.type==="rule")return t(i,s)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Rg.registerParse=n=>{Lwe=n};Rg.registerRule=n=>{QQ=n};Rg.registerAtRule=n=>{ZQ=n};Rg.registerRoot=n=>{Ewe=n};var S0=Rg;Rg.default=Rg;Rg.rebuild=n=>{n.type==="atrule"?Object.setPrototypeOf(n,ZQ.prototype):n.type==="rule"?Object.setPrototypeOf(n,QQ.prototype):n.type==="decl"?Object.setPrototypeOf(n,Cwe.prototype):n.type==="comment"?Object.setPrototypeOf(n,wwe.prototype):n.type==="root"&&Object.setPrototypeOf(n,Ewe.prototype),n[xwe]=!0,n.nodes&&n.nodes.forEach(e=>{Rg.rebuild(e)})};let Dwe=S0,PO=class extends Dwe{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var JQ=PO;PO.default=PO;Dwe.registerAtRule(PO);let sZe=S0,Nwe,Awe,nT=class extends sZe{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new Nwe(new Awe,this,e).stringify()}};nT.registerLazyResult=n=>{Nwe=n};nT.registerProcessor=n=>{Awe=n};var eJ=nT;nT.default=nT;let rZe="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",oZe=(n,e=21)=>(t=e)=>{let i="",s=t;for(;s--;)i+=n[Math.random()*n.length|0];return i},aZe=(n=21)=>{let e="",t=n;for(;t--;)e+=rZe[Math.random()*64|0];return e};var lZe={nanoid:aZe,customAlphabet:oZe},Pwe=dN(oXe);let{existsSync:cZe,readFileSync:uZe}=vYe,{dirname:c7,join:hZe}=GQ,{SourceMapConsumer:yle,SourceMapGenerator:wle}=jx;function dZe(n){return it?it.from(n,"base64").toString():window.atob(n)}let ZH=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,s=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=c7(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new yle(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,s=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/,o=e.match(s)||e.match(r);if(o)return decodeURIComponent(e.substr(o[0].length));let a=e.match(t)||e.match(i);if(a)return dZe(e.substr(a[0].length));let l=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+l)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),s=e.indexOf("*/",i);i>-1&&s>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,s)))}loadFile(e){if(this.root=c7(e),cZe(e))return this.mapFile=e,uZe(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let s=this.loadFile(i);if(!s)throw new Error("Unable to load previous source map: "+i.toString());return s}}else{if(t instanceof yle)return wle.fromSourceMap(t).toString();if(t instanceof wle)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=hZe(c7(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Rwe=ZH;ZH.default=ZH;let{nanoid:fZe}=lZe,{isAbsolute:QH,resolve:JH}=GQ,{SourceMapConsumer:pZe,SourceMapGenerator:gZe}=jx,{fileURLToPath:Cle,pathToFileURL:YA}=Pwe,Sle=YQ,mZe=Rwe,u7=vwe,h7=Symbol("fromOffsetCache"),_Ze=!!(pZe&&gZe),xle=!!(JH&&QH),RO=class{constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!xle||/^\w+:\/\//.test(t.from)||QH(t.from)?this.file=t.from:this.file=JH(t.from)),xle&&_Ze){let i=new mZe(this.css,t);if(i.text){this.map=i;let s=i.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id="<input css "+fZe(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,s={}){let r,o,a;if(t&&typeof t=="object"){let c=t,u=i;if(typeof c.offset=="number"){let h=this.fromOffset(c.offset);t=h.line,i=h.col}else t=c.line,i=c.column;if(typeof u.offset=="number"){let h=this.fromOffset(u.offset);o=h.line,r=h.col}else o=u.line,r=u.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let l=this.origin(t,i,o,r);return l?a=new Sle(e,l.endLine===void 0?l.line:{column:l.column,line:l.line},l.endLine===void 0?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,s.plugin):a=new Sle(e,o===void 0?t:{column:i,line:t},o===void 0?i:{column:r,line:o},this.css,this.file,s.plugin),a.input={column:i,endColumn:r,endLine:o,line:t,source:this.css},this.file&&(YA&&(a.input.url=YA(this.file).toString()),a.input.file=this.file),a}fromOffset(e){let t,i;if(this[h7])i=this[h7];else{let r=this.css.split(` +`);i=new Array(r.length);let o=0;for(let a=0,l=r.length;a<l;a++)i[a]=o,o+=r[a].length+1;this[h7]=i}t=i[i.length-1];let s=0;if(e>=t)s=i.length-1;else{let r=i.length-2,o;for(;s<r;)if(o=s+(r-s>>1),e<i[o])r=o-1;else if(e>=i[o+1])s=o+1;else{s=o;break}}return{col:e-i[s]+1,line:s+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:JH(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,s){if(!this.map)return!1;let r=this.map.consumer(),o=r.originalPositionFor({column:t,line:e});if(!o.source)return!1;let a;typeof i=="number"&&(a=r.originalPositionFor({column:s,line:i}));let l;QH(o.source)?l=YA(o.source):l=new URL(o.source,this.map.consumer().sourceRoot||YA(this.map.mapFile));let c={column:o.column,endColumn:a&&a.column,endLine:a&&a.line,line:o.line,url:l.toString()};if(l.protocol==="file:")if(Cle)c.file=Cle(l);else throw new Error("file: protocol is not available in this PostCSS build");let u=r.sourceContentFor(o.source);return u&&(c.source=u),c}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};var pB=RO;RO.default=RO;u7&&u7.registerInput&&u7.registerInput(RO);let Mwe=S0,Owe,Fwe,HS=class extends Mwe{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let s=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let r of s)r.raws.before=t.raws.before}return s}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Owe(new Fwe,this,e).stringify()}};HS.registerLazyResult=n=>{Owe=n};HS.registerProcessor=n=>{Fwe=n};var mN=HS;HS.default=HS;Mwe.registerRoot(HS);let sT={comma(n){return sT.split(n,[","],!0)},space(n){let e=[" ",` +`," "];return sT.split(n,e)},split(n,e,t){let i=[],s="",r=!1,o=0,a=!1,l="",c=!1;for(let u of n)c?c=!1:u==="\\"?c=!0:a?u===l&&(a=!1):u==='"'||u==="'"?(a=!0,l=u):u==="("?o+=1:u===")"?o>0&&(o-=1):o===0&&e.includes(u)&&(r=!0),r?(s!==""&&i.push(s.trim()),s="",r=!1):s+=u;return(t||s!=="")&&i.push(s.trim()),i}};var Bwe=sT;sT.default=sT;let Wwe=S0,vZe=Bwe,MO=class extends Wwe{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return vZe.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};var tJ=MO;MO.default=MO;Wwe.registerRule(MO);let bZe=JQ,yZe=dB,wZe=fB,CZe=pB,SZe=Rwe,xZe=mN,LZe=tJ;function rT(n,e){if(Array.isArray(n))return n.map(s=>rT(s));let{inputs:t,...i}=n;if(t){e=[];for(let s of t){let r={...s,__proto__:CZe.prototype};r.map&&(r.map={...r.map,__proto__:SZe.prototype}),e.push(r)}}if(i.nodes&&(i.nodes=n.nodes.map(s=>rT(s,e))),i.source){let{inputId:s,...r}=i.source;i.source=r,s!=null&&(i.source.input=e[s])}if(i.type==="root")return new xZe(i);if(i.type==="decl")return new wZe(i);if(i.type==="rule")return new LZe(i);if(i.type==="comment")return new yZe(i);if(i.type==="atrule")return new bZe(i);throw new Error("Unknown node type: "+n.type)}var EZe=rT;rT.default=rT;let{dirname:qR,relative:Vwe,resolve:Hwe,sep:$we}=GQ,{SourceMapConsumer:zwe,SourceMapGenerator:KR}=jx,{pathToFileURL:Lle}=Pwe,kZe=pB,IZe=!!(zwe&&KR),TZe=!!(qR&&Hwe&&Vwe&&$we),DZe=class{constructor(e,t,i,s){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=` +`;this.css.includes(`\r +`)&&(t=`\r +`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||qR(e.file),s;this.mapOpts.sourcesContent===!1?(s=new zwe(e.text),s.sourcesContent&&(s.sourcesContent=null)):s=e.consumer(),this.map.applySourceMap(s,t,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),TZe&&IZe&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=KR.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new KR({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new KR({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,t=1,i="<no source>",s={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,o;this.stringify(this.root,(a,l,c)=>{if(this.css+=a,l&&c!=="end"&&(s.generated.line=e,s.generated.column=t-1,l.source&&l.source.start?(s.source=this.sourcePath(l),s.original.line=l.source.start.line,s.original.column=l.source.start.column-1,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,this.map.addMapping(s))),o=a.match(/\n/g),o?(e+=o.length,r=a.lastIndexOf(` +`),t=a.length-r):t+=a.length,l&&c!=="start"){let u=l.parent||{raws:{}};(!(l.type==="decl"||l.type==="atrule"&&!l.nodes)||l!==u.last||u.raws.semicolon)&&(l.source&&l.source.end?(s.source=this.sourcePath(l),s.original.line=l.source.end.line,s.original.column=l.source.end.column-1,s.generated.line=e,s.generated.column=t-2,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,s.generated.line=e,s.generated.column=t-1,this.map.addMapping(s)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?qR(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=qR(Hwe(i,this.mapOpts.annotation)));let s=Vwe(i,e);return this.memoizedPaths.set(e,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new kZe(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let s=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(s,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return it?it.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Lle){let i=Lle(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;$we==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};var Uwe=DZe;let NZe=JQ,AZe=dB,PZe=fB,RZe=mN,Ele=tJ,MZe=gwe;const kle={empty:!0,space:!0};function OZe(n){for(let e=n.length-1;e>=0;e--){let t=n[e],i=t[3]||t[2];if(i)return i}}let FZe=class{constructor(e){this.input=e,this.root=new RZe,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new NZe;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,s,r,o=!1,a=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){a=!0;break}else if(i==="}"){if(l.length>0){for(r=l.length-1,s=l[r];s&&s[0]==="space";)s=l[--r];s&&(t.source.end=this.getPosition(s[3]||s[2]),t.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),o&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),a&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,s;for(let r=t-1;r>=0&&(s=e[r],!(s[0]!=="space"&&(i+=1,i===2)));r--);throw this.input.error("Missed semicolon",s[0]==="word"?s[3]+1:s[2])}colon(e){let t=0,i,s,r;for(let[o,a]of e.entries()){if(s=a,r=s[0],r==="("&&(t+=1),r===")"&&(t-=1),t===0&&r===":")if(!i)this.doubleColon(s);else{if(i[0]==="word"&&i[1]==="progid")continue;return o}i=s}return!1}comment(e){let t=new AZe;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let s=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=s[2],t.raws.left=s[1],t.raws.right=s[3]}}createTokenizer(){this.tokenizer=MZe(this.input)}decl(e,t){let i=new PZe;this.init(i,e[0][2]);let s=e[e.length-1];for(s[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(s[3]||s[2]||OZe(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let r;for(;e.length;)if(r=e.shift(),r[0]===":"){i.raws.between+=r[1];break}else r[0]==="word"&&/\w/.test(r[1])&&this.unknownWord([r]),i.raws.between+=r[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let o=[],a;for(;e.length&&(a=e[0][0],!(a!=="space"&&a!=="comment"));)o.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(r=e[c],r[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,c);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(r[1].toLowerCase()==="important"){let u=e.slice(0),h="";for(let d=c;d>0;d--){let f=u[d][0];if(h.trim().startsWith("!")&&f!=="space")break;h=u.pop()[1]+h}h.trim().startsWith("!")&&(i.important=!0,i.raws.important=h,e=u)}if(r[0]!=="space"&&r[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=o.map(c=>c[1]).join(""),o=[]),this.raw(i,"value",o.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Ele;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,s=!1,r=null,o=[],a=e[1].startsWith("--"),l=[],c=e;for(;c;){if(i=c[0],l.push(c),i==="("||i==="[")r||(r=c),o.push(i==="("?")":"]");else if(a&&s&&i==="{")r||(r=c),o.push("}");else if(o.length===0)if(i===";")if(s){this.decl(l,a);return}else break;else if(i==="{"){this.rule(l);return}else if(i==="}"){this.tokenizer.back(l.pop()),t=!0;break}else i===":"&&(s=!0);else i===o[o.length-1]&&(o.pop(),o.length===0&&(r=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(r),t&&s){if(!a)for(;l.length&&(c=l[l.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,a)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,s){let r,o,a=i.length,l="",c=!0,u,h;for(let d=0;d<a;d+=1)r=i[d],o=r[0],o==="space"&&d===a-1&&!s?c=!1:o==="comment"?(h=i[d-1]?i[d-1][0]:"empty",u=i[d+1]?i[d+1][0]:"empty",!kle[h]&&!kle[u]?l.slice(-1)===","?c=!1:l+=r[1]:c=!1):l+=r[1];if(!c){let d=i.reduce((f,p)=>f+p[1],"");e.raws[t]={raw:d,value:l}}e[t]=l}rule(e){e.pop();let t=new Ele;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let s=t;s<e.length;s++)i+=e[s][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};var BZe=FZe;let WZe=S0,VZe=pB,HZe=BZe;function OO(n,e){let t=new VZe(n,e),i=new HZe(t);try{i.parse()}catch(s){throw oc.env.NODE_ENV!=="production"&&s.name==="CssSyntaxError"&&e&&e.from&&(/\.scss$/i.test(e.from)?s.message+=` +You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(e.from)?s.message+=` +You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(e.from)&&(s.message+=` +You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),s}return i.root}var iJ=OO;OO.default=OO;WZe.registerParse(OO);let e$=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var jwe=e$;e$.default=e$;let $Ze=jwe,t$=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new $Ze(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};var nJ=t$;t$.default=t$;let Ile={};var qwe=function(e){Ile[e]||(Ile[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))};let zZe=S0,UZe=eJ,jZe=Uwe,qZe=iJ,Tle=nJ,KZe=mN,GZe=uB,{isClean:Td,my:XZe}=gN,YZe=qwe;const ZZe={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},QZe={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},JZe={Once:!0,postcssPlugin:!0,prepare:!0},$S=0;function GL(n){return typeof n=="object"&&typeof n.then=="function"}function Kwe(n){let e=!1,t=ZZe[n.type];return n.type==="decl"?e=n.prop.toLowerCase():n.type==="atrule"&&(e=n.name.toLowerCase()),e&&n.append?[t,t+"-"+e,$S,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:n.append?[t,$S,t+"Exit"]:[t,t+"Exit"]}function Dle(n){let e;return n.type==="document"?e=["Document",$S,"DocumentExit"]:n.type==="root"?e=["Root",$S,"RootExit"]:e=Kwe(n),{eventIndex:0,events:e,iterator:0,node:n,visitorIndex:0,visitors:[]}}function i$(n){return n[Td]=!1,n.nodes&&n.nodes.forEach(e=>i$(e)),n}let n$={},zS=class Gwe{constructor(e,t,i){this.stringified=!1,this.processed=!1;let s;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))s=i$(t);else if(t instanceof Gwe||t instanceof Tle)s=i$(t.root),t.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let r=qZe;i.syntax&&(r=i.syntax.parse),i.parser&&(r=i.parser),r.parse&&(r=r.parse);try{s=r(t,i)}catch(o){this.processed=!0,this.error=o}s&&!s[XZe]&&zZe.rebuild(s)}this.result=new Tle(e,s,i),this.helpers={...n$,postcss:n$,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{if(t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin)e.plugin=i.postcssPlugin,e.setMessage();else if(i.postcssVersion&&oc.env.NODE_ENV!=="production"){let s=i.postcssPlugin,r=i.postcssVersion,o=this.result.processor.version,a=r.split("."),l=o.split(".");(a[0]!==l[0]||parseInt(a[1])>parseInt(l[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+o+", but "+s+" uses "+r+". Perhaps this is the source of the error below.")}}catch(s){console&&console.error&&console.error(s)}return e}prepareVisitors(){this.listeners={};let e=(t,i,s)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,s])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!QZe[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!JZe[i])if(typeof t[i]=="object")for(let s in t[i])s==="*"?e(t,i,t[i][s]):e(t,i+"-"+s.toLowerCase(),t[i][s]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],i=this.runOnRoot(t);if(GL(i))try{await i}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Td];){e[Td]=!0;let t=[Dle(e)];for(;t.length>0;){let i=this.visitTick(t);if(GL(i))try{await i}catch(s){let r=t[t.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let s=e.nodes.map(r=>i(r,this.helpers));await Promise.all(s)}else await i(e,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return GL(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=GZe;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let s=new jZe(t,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(GL(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Td];)e[Td]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return oc.env.NODE_ENV!=="production"&&("from"in this.opts||YZe("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,s]of e){this.result.lastPlugin=i;let r;try{r=s(t,this.helpers)}catch(o){throw this.handleError(o,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(GL(r))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:s}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(s.length>0&&t.visitorIndex<s.length){let[o,a]=s[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===s.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=o;try{return a(i.toProxy(),this.helpers)}catch(l){throw this.handleError(l,i)}}if(t.iterator!==0){let o=t.iterator,a;for(;a=i.nodes[i.indexes[o]];)if(i.indexes[o]+=1,!a[Td]){a[Td]=!0,e.push(Dle(a));return}t.iterator=0,delete i.indexes[o]}let r=t.events;for(;t.eventIndex<r.length;){let o=r[t.eventIndex];if(t.eventIndex+=1,o===$S){i.nodes&&i.nodes.length&&(i[Td]=!0,t.iterator=i.getIterator());return}else if(this.listeners[o]){t.visitors=this.listeners[o];return}}e.pop()}walkSync(e){e[Td]=!0;let t=Kwe(e);for(let i of t)if(i===$S)e.nodes&&e.each(s=>{s[Td]||this.walkSync(s)});else{let s=this.listeners[i];if(s&&this.visitSync(s,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};zS.registerPostcss=n=>{n$=n};var Xwe=zS;zS.default=zS;KZe.registerLazyResult(zS);UZe.registerLazyResult(zS);let eQe=Uwe,tQe=iJ;const iQe=nJ;let nQe=uB,sQe=qwe,s$=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let s,r=nQe;this.result=new iQe(this._processor,s,this._opts),this.result.css=t;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new eQe(r,s,this._opts,t);if(a.isMap()){let[l,c]=a.generate();l&&(this.result.css=l),c&&(this.result.map=c)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return oc.env.NODE_ENV!=="production"&&("from"in this._opts||sQe("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=tQe;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};var rQe=s$;s$.default=s$;let oQe=eJ,aQe=Xwe,lQe=rQe,cQe=mN,oT=class{constructor(e=[]){this.version="8.4.44",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(oc.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new lQe(this,e,t):new aQe(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var uQe=oT;oT.default=oT;cQe.registerProcessor(oT);oQe.registerProcessor(oT);let Ywe=JQ,Zwe=dB,hQe=S0,dQe=YQ,Qwe=fB,Jwe=eJ,fQe=EZe,pQe=pB,gQe=Xwe,mQe=Bwe,_Qe=hB,vQe=iJ,sJ=uQe,bQe=nJ,eCe=mN,tCe=tJ,yQe=uB,wQe=jwe;function as(...n){return n.length===1&&Array.isArray(n[0])&&(n=n[0]),new sJ(n)}as.plugin=function(e,t){let i=!1;function s(...o){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),oc.env.LANG&&oc.env.LANG.startsWith("cn")&&console.warn(e+`: 里面 postcss.plugin 被弃用. 迁移指南: +https://www.w3ctech.com/topic/2226`));let a=t(...o);return a.postcssPlugin=e,a.postcssVersion=new sJ().version,a}let r;return Object.defineProperty(s,"postcss",{get(){return r||(r=s()),r}}),s.process=function(o,a,l){return as([s(l)]).process(o,a)},s};as.stringify=yQe;as.parse=vQe;as.fromJSON=fQe;as.list=mQe;as.comment=n=>new Zwe(n);as.atRule=n=>new Ywe(n);as.decl=n=>new Qwe(n);as.rule=n=>new tCe(n);as.root=n=>new eCe(n);as.document=n=>new Jwe(n);as.CssSyntaxError=dQe;as.Declaration=Qwe;as.Container=hQe;as.Processor=sJ;as.Document=Jwe;as.Comment=Zwe;as.Warning=wQe;as.AtRule=Ywe;as.Result=bQe;as.Input=pQe;as.Rule=tCe;as.Root=eCe;as.Node=_Qe;gQe.registerPostcss(as);var CQe=as;as.default=as;var Fs=H6(CQe);Fs.stringify;Fs.fromJSON;Fs.plugin;Fs.parse;Fs.list;Fs.document;Fs.comment;Fs.atRule;Fs.rule;Fs.decl;Fs.root;Fs.CssSyntaxError;Fs.Declaration;Fs.Container;Fs.Processor;Fs.Document;Fs.Comment;Fs.Warning;Fs.AtRule;Fs.Result;Fs.Input;Fs.Rule;Fs.Root;Fs.Node;const iCe=()=>({postcssPlugin:"vue-sfc-trim",Once(n){n.walk(({type:e,raws:t})=>{(e==="rule"||e==="atrule")&&(t.before&&(t.before=` +`),"after"in t&&t.after&&(t.after=` +`))})}});iCe.postcss=!0;var r$={exports:{}},o$={exports:{}},a$={exports:{}},l$={exports:{}},c$={exports:{}},u$={exports:{}},Vc={},h$={exports:{}};(function(n,e){e.__esModule=!0,e.default=s;function t(r){for(var o=r.toLowerCase(),a="",l=!1,c=0;c<6&&o[c]!==void 0;c++){var u=o.charCodeAt(c),h=u>=97&&u<=102||u>=48&&u<=57;if(l=u===32,!h)break;a+=o[c]}if(a.length!==0){var d=parseInt(a,16),f=d>=55296&&d<=57343;return f||d===0||d>1114111?["�",a.length+(l?1:0)]:[String.fromCodePoint(d),a.length+(l?1:0)]}}var i=/\\/;function s(r){var o=i.test(r);if(!o)return r;for(var a="",l=0;l<r.length;l++){if(r[l]==="\\"){var c=t(r.slice(l+1,l+7));if(c!==void 0){a+=c[0],l+=c[1];continue}if(r[l+1]==="\\"){a+="\\",l++;continue}r.length===l+1&&(a+=r[l]);continue}a+=r[l]}return a}n.exports=e.default})(h$,h$.exports);var nCe=h$.exports,d$={exports:{}};(function(n,e){e.__esModule=!0,e.default=t;function t(i){for(var s=arguments.length,r=new Array(s>1?s-1:0),o=1;o<s;o++)r[o-1]=arguments[o];for(;r.length>0;){var a=r.shift();if(!i[a])return;i=i[a]}return i}n.exports=e.default})(d$,d$.exports);var SQe=d$.exports,f$={exports:{}};(function(n,e){e.__esModule=!0,e.default=t;function t(i){for(var s=arguments.length,r=new Array(s>1?s-1:0),o=1;o<s;o++)r[o-1]=arguments[o];for(;r.length>0;){var a=r.shift();i[a]||(i[a]={}),i=i[a]}}n.exports=e.default})(f$,f$.exports);var xQe=f$.exports,p$={exports:{}};(function(n,e){e.__esModule=!0,e.default=t;function t(i){for(var s="",r=i.indexOf("/*"),o=0;r>=0;){s=s+i.slice(o,r);var a=i.indexOf("*/",r+2);if(a<0)return s;o=a+2,r=i.indexOf("/*",o)}return s=s+i.slice(o),s}n.exports=e.default})(p$,p$.exports);var LQe=p$.exports;Vc.__esModule=!0;Vc.unesc=Vc.stripComments=Vc.getProp=Vc.ensureObject=void 0;var EQe=gB(nCe);Vc.unesc=EQe.default;var kQe=gB(SQe);Vc.getProp=kQe.default;var IQe=gB(xQe);Vc.ensureObject=IQe.default;var TQe=gB(LQe);Vc.stripComments=TQe.default;function gB(n){return n&&n.__esModule?n:{default:n}}(function(n,e){e.__esModule=!0,e.default=void 0;var t=Vc;function i(a,l){for(var c=0;c<l.length;c++){var u=l[c];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(a,u.key,u)}}function s(a,l,c){return l&&i(a.prototype,l),Object.defineProperty(a,"prototype",{writable:!1}),a}var r=function a(l,c){if(typeof l!="object"||l===null)return l;var u=new l.constructor;for(var h in l)if(l.hasOwnProperty(h)){var d=l[h],f=typeof d;h==="parent"&&f==="object"?c&&(u[h]=c):d instanceof Array?u[h]=d.map(function(p){return a(p,u)}):u[h]=a(d,u)}return u},o=function(){function a(c){c===void 0&&(c={}),Object.assign(this,c),this.spaces=this.spaces||{},this.spaces.before=this.spaces.before||"",this.spaces.after=this.spaces.after||""}var l=a.prototype;return l.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},l.replaceWith=function(){if(this.parent){for(var u in arguments)this.parent.insertBefore(this,arguments[u]);this.remove()}return this},l.next=function(){return this.parent.at(this.parent.index(this)+1)},l.prev=function(){return this.parent.at(this.parent.index(this)-1)},l.clone=function(u){u===void 0&&(u={});var h=r(this);for(var d in u)h[d]=u[d];return h},l.appendToPropertyAndEscape=function(u,h,d){this.raws||(this.raws={});var f=this[u],p=this.raws[u];this[u]=f+h,p||d!==h?this.raws[u]=(p||f)+d:delete this.raws[u]},l.setPropertyAndEscape=function(u,h,d){this.raws||(this.raws={}),this[u]=h,this.raws[u]=d},l.setPropertyWithoutEscape=function(u,h){this[u]=h,this.raws&&delete this.raws[u]},l.isAtPosition=function(u,h){if(this.source&&this.source.start&&this.source.end)return!(this.source.start.line>u||this.source.end.line<u||this.source.start.line===u&&this.source.start.column>h||this.source.end.line===u&&this.source.end.column<h)},l.stringifyProperty=function(u){return this.raws&&this.raws[u]||this[u]},l.valueToString=function(){return String(this.stringifyProperty("value"))},l.toString=function(){return[this.rawSpaceBefore,this.valueToString(),this.rawSpaceAfter].join("")},s(a,[{key:"rawSpaceBefore",get:function(){var u=this.raws&&this.raws.spaces&&this.raws.spaces.before;return u===void 0&&(u=this.spaces&&this.spaces.before),u||""},set:function(u){(0,t.ensureObject)(this,"raws","spaces"),this.raws.spaces.before=u}},{key:"rawSpaceAfter",get:function(){var u=this.raws&&this.raws.spaces&&this.raws.spaces.after;return u===void 0&&(u=this.spaces.after),u||""},set:function(u){(0,t.ensureObject)(this,"raws","spaces"),this.raws.spaces.after=u}}]),a}();e.default=o,n.exports=e.default})(u$,u$.exports);var T_=u$.exports,$i={};$i.__esModule=!0;$i.UNIVERSAL=$i.TAG=$i.STRING=$i.SELECTOR=$i.ROOT=$i.PSEUDO=$i.NESTING=$i.ID=$i.COMMENT=$i.COMBINATOR=$i.CLASS=$i.ATTRIBUTE=void 0;var DQe="tag";$i.TAG=DQe;var NQe="string";$i.STRING=NQe;var AQe="selector";$i.SELECTOR=AQe;var PQe="root";$i.ROOT=PQe;var RQe="pseudo";$i.PSEUDO=RQe;var MQe="nesting";$i.NESTING=MQe;var OQe="id";$i.ID=OQe;var FQe="comment";$i.COMMENT=FQe;var BQe="combinator";$i.COMBINATOR=BQe;var WQe="class";$i.CLASS=WQe;var VQe="attribute";$i.ATTRIBUTE=VQe;var HQe="universal";$i.UNIVERSAL=HQe;(function(n,e){e.__esModule=!0,e.default=void 0;var t=o(T_),i=r($i);function s(g){if(typeof WeakMap!="function")return null;var m=new WeakMap,_=new WeakMap;return(s=function(w){return w?_:m})(g)}function r(g,m){if(g&&g.__esModule)return g;if(g===null||typeof g!="object"&&typeof g!="function")return{default:g};var _=s(m);if(_&&_.has(g))return _.get(g);var b={},w=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in g)if(C!=="default"&&Object.prototype.hasOwnProperty.call(g,C)){var S=w?Object.getOwnPropertyDescriptor(g,C):null;S&&(S.get||S.set)?Object.defineProperty(b,C,S):b[C]=g[C]}return b.default=g,_&&_.set(g,b),b}function o(g){return g&&g.__esModule?g:{default:g}}function a(g,m){var _=typeof Symbol<"u"&&g[Symbol.iterator]||g["@@iterator"];if(_)return(_=_.call(g)).next.bind(_);if(Array.isArray(g)||(_=l(g))||m){_&&(g=_);var b=0;return function(){return b>=g.length?{done:!0}:{done:!1,value:g[b++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l(g,m){if(g){if(typeof g=="string")return c(g,m);var _=Object.prototype.toString.call(g).slice(8,-1);if(_==="Object"&&g.constructor&&(_=g.constructor.name),_==="Map"||_==="Set")return Array.from(g);if(_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_))return c(g,m)}}function c(g,m){(m==null||m>g.length)&&(m=g.length);for(var _=0,b=new Array(m);_<m;_++)b[_]=g[_];return b}function u(g,m){for(var _=0;_<m.length;_++){var b=m[_];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(g,b.key,b)}}function h(g,m,_){return m&&u(g.prototype,m),Object.defineProperty(g,"prototype",{writable:!1}),g}function d(g,m){g.prototype=Object.create(m.prototype),g.prototype.constructor=g,f(g,m)}function f(g,m){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(b,w){return b.__proto__=w,b},f(g,m)}var p=function(g){d(m,g);function m(b){var w;return w=g.call(this,b)||this,w.nodes||(w.nodes=[]),w}var _=m.prototype;return _.append=function(w){return w.parent=this,this.nodes.push(w),this},_.prepend=function(w){return w.parent=this,this.nodes.unshift(w),this},_.at=function(w){return this.nodes[w]},_.index=function(w){return typeof w=="number"?w:this.nodes.indexOf(w)},_.removeChild=function(w){w=this.index(w),this.at(w).parent=void 0,this.nodes.splice(w,1);var C;for(var S in this.indexes)C=this.indexes[S],C>=w&&(this.indexes[S]=C-1);return this},_.removeAll=function(){for(var w=a(this.nodes),C;!(C=w()).done;){var S=C.value;S.parent=void 0}return this.nodes=[],this},_.empty=function(){return this.removeAll()},_.insertAfter=function(w,C){C.parent=this;var S=this.index(w);this.nodes.splice(S+1,0,C),C.parent=this;var x;for(var k in this.indexes)x=this.indexes[k],S<=x&&(this.indexes[k]=x+1);return this},_.insertBefore=function(w,C){C.parent=this;var S=this.index(w);this.nodes.splice(S,0,C),C.parent=this;var x;for(var k in this.indexes)x=this.indexes[k],x<=S&&(this.indexes[k]=x+1);return this},_._findChildAtPosition=function(w,C){var S=void 0;return this.each(function(x){if(x.atPosition){var k=x.atPosition(w,C);if(k)return S=k,!1}else if(x.isAtPosition(w,C))return S=x,!1}),S},_.atPosition=function(w,C){if(this.isAtPosition(w,C))return this._findChildAtPosition(w,C)||this},_._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},_.each=function(w){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var C=this.lastEach;if(this.indexes[C]=0,!!this.length){for(var S,x;this.indexes[C]<this.length&&(S=this.indexes[C],x=w(this.at(S),S),x!==!1);)this.indexes[C]+=1;if(delete this.indexes[C],x===!1)return!1}},_.walk=function(w){return this.each(function(C,S){var x=w(C,S);if(x!==!1&&C.length&&(x=C.walk(w)),x===!1)return!1})},_.walkAttributes=function(w){var C=this;return this.walk(function(S){if(S.type===i.ATTRIBUTE)return w.call(C,S)})},_.walkClasses=function(w){var C=this;return this.walk(function(S){if(S.type===i.CLASS)return w.call(C,S)})},_.walkCombinators=function(w){var C=this;return this.walk(function(S){if(S.type===i.COMBINATOR)return w.call(C,S)})},_.walkComments=function(w){var C=this;return this.walk(function(S){if(S.type===i.COMMENT)return w.call(C,S)})},_.walkIds=function(w){var C=this;return this.walk(function(S){if(S.type===i.ID)return w.call(C,S)})},_.walkNesting=function(w){var C=this;return this.walk(function(S){if(S.type===i.NESTING)return w.call(C,S)})},_.walkPseudos=function(w){var C=this;return this.walk(function(S){if(S.type===i.PSEUDO)return w.call(C,S)})},_.walkTags=function(w){var C=this;return this.walk(function(S){if(S.type===i.TAG)return w.call(C,S)})},_.walkUniversals=function(w){var C=this;return this.walk(function(S){if(S.type===i.UNIVERSAL)return w.call(C,S)})},_.split=function(w){var C=this,S=[];return this.reduce(function(x,k,L){var E=w.call(C,k);return S.push(k),E?(x.push(S),S=[]):L===C.length-1&&x.push(S),x},[])},_.map=function(w){return this.nodes.map(w)},_.reduce=function(w,C){return this.nodes.reduce(w,C)},_.every=function(w){return this.nodes.every(w)},_.some=function(w){return this.nodes.some(w)},_.filter=function(w){return this.nodes.filter(w)},_.sort=function(w){return this.nodes.sort(w)},_.toString=function(){return this.map(String).join("")},h(m,[{key:"first",get:function(){return this.at(0)}},{key:"last",get:function(){return this.at(this.length-1)}},{key:"length",get:function(){return this.nodes.length}}]),m}(t.default);e.default=p,n.exports=e.default})(c$,c$.exports);var rJ=c$.exports;(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(rJ),i=$i;function s(u){return u&&u.__esModule?u:{default:u}}function r(u,h){for(var d=0;d<h.length;d++){var f=h[d];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(u,f.key,f)}}function o(u,h,d){return h&&r(u.prototype,h),Object.defineProperty(u,"prototype",{writable:!1}),u}function a(u,h){u.prototype=Object.create(h.prototype),u.prototype.constructor=u,l(u,h)}function l(u,h){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(f,p){return f.__proto__=p,f},l(u,h)}var c=function(u){a(h,u);function h(f){var p;return p=u.call(this,f)||this,p.type=i.ROOT,p}var d=h.prototype;return d.toString=function(){var p=this.reduce(function(g,m){return g.push(String(m)),g},[]).join(",");return this.trailingComma?p+",":p},d.error=function(p,g){return this._error?this._error(p,g):new Error(p)},o(h,[{key:"errorGenerator",set:function(p){this._error=p}}]),h}(t.default);e.default=c,n.exports=e.default})(l$,l$.exports);var sCe=l$.exports,g$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(rJ),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.SELECTOR,h}return c}(t.default);e.default=a,n.exports=e.default})(g$,g$.exports);var rCe=g$.exports,m$={exports:{}};/*! https://mths.be/cssesc v3.0.0 by @mathias */var $Qe={},zQe=$Qe.hasOwnProperty,UQe=function(e,t){if(!e)return t;var i={};for(var s in t)i[s]=zQe.call(e,s)?e[s]:t[s];return i},jQe=/[ -,\.\/:-@\[-\^`\{-~]/,qQe=/[ -,\.\/:-@\[\]\^`\{-~]/,KQe=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,oJ=function n(e,t){t=UQe(t,n.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",s=t.isIdentifier,r=e.charAt(0),o="",a=0,l=e.length;a<l;){var c=e.charAt(a++),u=c.charCodeAt(),h=void 0;if(u<32||u>126){if(u>=55296&&u<=56319&&a<l){var d=e.charCodeAt(a++);(d&64512)==56320?u=((u&1023)<<10)+(d&1023)+65536:a--}h="\\"+u.toString(16).toUpperCase()+" "}else t.escapeEverything?jQe.test(c)?h="\\"+c:h="\\"+u.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(c)?h="\\"+u.toString(16).toUpperCase()+" ":c=="\\"||!s&&(c=='"'&&i==c||c=="'"&&i==c)||s&&qQe.test(c)?h="\\"+c:h=c;o+=h}return s&&(/^-[-\d]/.test(o)?o="\\-"+o.slice(1):/\d/.test(r)&&(o="\\3"+r+" "+o.slice(1))),o=o.replace(KQe,function(f,p,g){return p&&p.length%2?f:(p||"")+g}),!s&&t.wrap?i+o+i:o};oJ.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1};oJ.version="3.0.0";var aJ=oJ;(function(n,e){e.__esModule=!0,e.default=void 0;var t=o(aJ),i=Vc,s=o(T_),r=$i;function o(d){return d&&d.__esModule?d:{default:d}}function a(d,f){for(var p=0;p<f.length;p++){var g=f[p];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(d,g.key,g)}}function l(d,f,p){return f&&a(d.prototype,f),Object.defineProperty(d,"prototype",{writable:!1}),d}function c(d,f){d.prototype=Object.create(f.prototype),d.prototype.constructor=d,u(d,f)}function u(d,f){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(g,m){return g.__proto__=m,g},u(d,f)}var h=function(d){c(f,d);function f(g){var m;return m=d.call(this,g)||this,m.type=r.CLASS,m._constructed=!0,m}var p=f.prototype;return p.valueToString=function(){return"."+d.prototype.valueToString.call(this)},l(f,[{key:"value",get:function(){return this._value},set:function(m){if(this._constructed){var _=(0,t.default)(m,{isIdentifier:!0});_!==m?((0,i.ensureObject)(this,"raws"),this.raws.value=_):this.raws&&delete this.raws.value}this._value=m}}]),f}(s.default);e.default=h,n.exports=e.default})(m$,m$.exports);var oCe=m$.exports,_$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(T_),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.COMMENT,h}return c}(t.default);e.default=a,n.exports=e.default})(_$,_$.exports);var aCe=_$.exports,v$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(T_),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(h){var d;return d=l.call(this,h)||this,d.type=i.ID,d}var u=c.prototype;return u.valueToString=function(){return"#"+l.prototype.valueToString.call(this)},c}(t.default);e.default=a,n.exports=e.default})(v$,v$.exports);var lCe=v$.exports,b$={exports:{}},y$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=r(aJ),i=Vc,s=r(T_);function r(h){return h&&h.__esModule?h:{default:h}}function o(h,d){for(var f=0;f<d.length;f++){var p=d[f];p.enumerable=p.enumerable||!1,p.configurable=!0,"value"in p&&(p.writable=!0),Object.defineProperty(h,p.key,p)}}function a(h,d,f){return d&&o(h.prototype,d),Object.defineProperty(h,"prototype",{writable:!1}),h}function l(h,d){h.prototype=Object.create(d.prototype),h.prototype.constructor=h,c(h,d)}function c(h,d){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,g){return p.__proto__=g,p},c(h,d)}var u=function(h){l(d,h);function d(){return h.apply(this,arguments)||this}var f=d.prototype;return f.qualifiedName=function(g){return this.namespace?this.namespaceString+"|"+g:g},f.valueToString=function(){return this.qualifiedName(h.prototype.valueToString.call(this))},a(d,[{key:"namespace",get:function(){return this._namespace},set:function(g){if(g===!0||g==="*"||g==="&"){this._namespace=g,this.raws&&delete this.raws.namespace;return}var m=(0,t.default)(g,{isIdentifier:!0});this._namespace=g,m!==g?((0,i.ensureObject)(this,"raws"),this.raws.namespace=m):this.raws&&delete this.raws.namespace}},{key:"ns",get:function(){return this._namespace},set:function(g){this.namespace=g}},{key:"namespaceString",get:function(){if(this.namespace){var g=this.stringifyProperty("namespace");return g===!0?"":g}else return""}}]),d}(s.default);e.default=u,n.exports=e.default})(y$,y$.exports);var lJ=y$.exports;(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(lJ),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.TAG,h}return c}(t.default);e.default=a,n.exports=e.default})(b$,b$.exports);var cCe=b$.exports,w$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(T_),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.STRING,h}return c}(t.default);e.default=a,n.exports=e.default})(w$,w$.exports);var uCe=w$.exports,C$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(rJ),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(h){var d;return d=l.call(this,h)||this,d.type=i.PSEUDO,d}var u=c.prototype;return u.toString=function(){var d=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),d,this.rawSpaceAfter].join("")},c}(t.default);e.default=a,n.exports=e.default})(C$,C$.exports);var hCe=C$.exports,cJ={},GQe=bYe.deprecate;(function(n){n.__esModule=!0,n.default=void 0,n.unescapeValue=m;var e=o(aJ),t=o(nCe),i=o(lJ),s=$i,r;function o(S){return S&&S.__esModule?S:{default:S}}function a(S,x){for(var k=0;k<x.length;k++){var L=x[k];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(S,L.key,L)}}function l(S,x,k){return x&&a(S.prototype,x),Object.defineProperty(S,"prototype",{writable:!1}),S}function c(S,x){S.prototype=Object.create(x.prototype),S.prototype.constructor=S,u(S,x)}function u(S,x){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(L,E){return L.__proto__=E,L},u(S,x)}var h=GQe,d=/^('|")([^]*)\1$/,f=h(function(){},"Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead."),p=h(function(){},"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."),g=h(function(){},"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.");function m(S){var x=!1,k=null,L=S,E=L.match(d);return E&&(k=E[1],L=E[2]),L=(0,t.default)(L),L!==S&&(x=!0),{deprecatedUsage:x,unescaped:L,quoteMark:k}}function _(S){if(S.quoteMark!==void 0||S.value===void 0)return S;g();var x=m(S.value),k=x.quoteMark,L=x.unescaped;return S.raws||(S.raws={}),S.raws.value===void 0&&(S.raws.value=S.value),S.value=L,S.quoteMark=k,S}var b=function(S){c(x,S);function x(L){var E;return L===void 0&&(L={}),E=S.call(this,_(L))||this,E.type=s.ATTRIBUTE,E.raws=E.raws||{},Object.defineProperty(E.raws,"unquoted",{get:h(function(){return E.value},"attr.raws.unquoted is deprecated. Call attr.value instead."),set:h(function(){return E.value},"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.")}),E._constructed=!0,E}var k=x.prototype;return k.getQuotedValue=function(E){E===void 0&&(E={});var A=this._determineQuoteMark(E),I=w[A],T=(0,e.default)(this._value,I);return T},k._determineQuoteMark=function(E){return E.smart?this.smartQuoteMark(E):this.preferredQuoteMark(E)},k.setValue=function(E,A){A===void 0&&(A={}),this._value=E,this._quoteMark=this._determineQuoteMark(A),this._syncRawValue()},k.smartQuoteMark=function(E){var A=this.value,I=A.replace(/[^']/g,"").length,T=A.replace(/[^"]/g,"").length;if(I+T===0){var N=(0,e.default)(A,{isIdentifier:!0});if(N===A)return x.NO_QUOTE;var M=this.preferredQuoteMark(E);if(M===x.NO_QUOTE){var V=this.quoteMark||E.quoteMark||x.DOUBLE_QUOTE,W=w[V],B=(0,e.default)(A,W);if(B.length<N.length)return V}return M}else return T===I?this.preferredQuoteMark(E):T<I?x.DOUBLE_QUOTE:x.SINGLE_QUOTE},k.preferredQuoteMark=function(E){var A=E.preferCurrentQuoteMark?this.quoteMark:E.quoteMark;return A===void 0&&(A=E.preferCurrentQuoteMark?E.quoteMark:this.quoteMark),A===void 0&&(A=x.DOUBLE_QUOTE),A},k._syncRawValue=function(){var E=(0,e.default)(this._value,w[this.quoteMark]);E===this._value?this.raws&&delete this.raws.value:this.raws.value=E},k._handleEscapes=function(E,A){if(this._constructed){var I=(0,e.default)(A,{isIdentifier:!0});I!==A?this.raws[E]=I:delete this.raws[E]}},k._spacesFor=function(E){var A={before:"",after:""},I=this.spaces[E]||{},T=this.raws.spaces&&this.raws.spaces[E]||{};return Object.assign(A,I,T)},k._stringFor=function(E,A,I){A===void 0&&(A=E),I===void 0&&(I=C);var T=this._spacesFor(A);return I(this.stringifyProperty(E),T)},k.offsetOf=function(E){var A=1,I=this._spacesFor("attribute");if(A+=I.before.length,E==="namespace"||E==="ns")return this.namespace?A:-1;if(E==="attributeNS"||(A+=this.namespaceString.length,this.namespace&&(A+=1),E==="attribute"))return A;A+=this.stringifyProperty("attribute").length,A+=I.after.length;var T=this._spacesFor("operator");A+=T.before.length;var N=this.stringifyProperty("operator");if(E==="operator")return N?A:-1;A+=N.length,A+=T.after.length;var M=this._spacesFor("value");A+=M.before.length;var V=this.stringifyProperty("value");if(E==="value")return V?A:-1;A+=V.length,A+=M.after.length;var W=this._spacesFor("insensitive");return A+=W.before.length,E==="insensitive"&&this.insensitive?A:-1},k.toString=function(){var E=this,A=[this.rawSpaceBefore,"["];return A.push(this._stringFor("qualifiedAttribute","attribute")),this.operator&&(this.value||this.value==="")&&(A.push(this._stringFor("operator")),A.push(this._stringFor("value")),A.push(this._stringFor("insensitiveFlag","insensitive",function(I,T){return I.length>0&&!E.quoted&&T.before.length===0&&!(E.spaces.value&&E.spaces.value.after)&&(T.before=" "),C(I,T)}))),A.push("]"),A.push(this.rawSpaceAfter),A.join("")},l(x,[{key:"quoted",get:function(){var E=this.quoteMark;return E==="'"||E==='"'},set:function(E){p()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(E){if(!this._constructed){this._quoteMark=E;return}this._quoteMark!==E&&(this._quoteMark=E,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(E){if(this._constructed){var A=m(E),I=A.deprecatedUsage,T=A.unescaped,N=A.quoteMark;if(I&&f(),T===this._value&&N===this._quoteMark)return;this._value=T,this._quoteMark=N,this._syncRawValue()}else this._value=E}},{key:"insensitive",get:function(){return this._insensitive},set:function(E){E||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=E}},{key:"attribute",get:function(){return this._attribute},set:function(E){this._handleEscapes("attribute",E),this._attribute=E}}]),x}(i.default);n.default=b,b.NO_QUOTE=null,b.SINGLE_QUOTE="'",b.DOUBLE_QUOTE='"';var w=(r={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},r[null]={isIdentifier:!0},r);function C(S,x){return""+x.before+S+x.after}})(cJ);var S$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(lJ),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.UNIVERSAL,h.value="*",h}return c}(t.default);e.default=a,n.exports=e.default})(S$,S$.exports);var dCe=S$.exports,x$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(T_),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.COMBINATOR,h}return c}(t.default);e.default=a,n.exports=e.default})(x$,x$.exports);var fCe=x$.exports,L$={exports:{}};(function(n,e){e.__esModule=!0,e.default=void 0;var t=s(T_),i=$i;function s(l){return l&&l.__esModule?l:{default:l}}function r(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,o(l,c)}function o(l,c){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,d){return h.__proto__=d,h},o(l,c)}var a=function(l){r(c,l);function c(u){var h;return h=l.call(this,u)||this,h.type=i.NESTING,h.value="&",h}return c}(t.default);e.default=a,n.exports=e.default})(L$,L$.exports);var pCe=L$.exports,E$={exports:{}};(function(n,e){e.__esModule=!0,e.default=t;function t(i){return i.sort(function(s,r){return s-r})}n.exports=e.default})(E$,E$.exports);var XQe=E$.exports,gCe={},Ft={};Ft.__esModule=!0;Ft.word=Ft.tilde=Ft.tab=Ft.str=Ft.space=Ft.slash=Ft.singleQuote=Ft.semicolon=Ft.plus=Ft.pipe=Ft.openSquare=Ft.openParenthesis=Ft.newline=Ft.greaterThan=Ft.feed=Ft.equals=Ft.doubleQuote=Ft.dollar=Ft.cr=Ft.comment=Ft.comma=Ft.combinator=Ft.colon=Ft.closeSquare=Ft.closeParenthesis=Ft.caret=Ft.bang=Ft.backslash=Ft.at=Ft.asterisk=Ft.ampersand=void 0;var YQe=38;Ft.ampersand=YQe;var ZQe=42;Ft.asterisk=ZQe;var QQe=64;Ft.at=QQe;var JQe=44;Ft.comma=JQe;var eJe=58;Ft.colon=eJe;var tJe=59;Ft.semicolon=tJe;var iJe=40;Ft.openParenthesis=iJe;var nJe=41;Ft.closeParenthesis=nJe;var sJe=91;Ft.openSquare=sJe;var rJe=93;Ft.closeSquare=rJe;var oJe=36;Ft.dollar=oJe;var aJe=126;Ft.tilde=aJe;var lJe=94;Ft.caret=lJe;var cJe=43;Ft.plus=cJe;var uJe=61;Ft.equals=uJe;var hJe=124;Ft.pipe=hJe;var dJe=62;Ft.greaterThan=dJe;var fJe=32;Ft.space=fJe;var mCe=39;Ft.singleQuote=mCe;var pJe=34;Ft.doubleQuote=pJe;var gJe=47;Ft.slash=gJe;var mJe=33;Ft.bang=mJe;var _Je=92;Ft.backslash=_Je;var vJe=13;Ft.cr=vJe;var bJe=12;Ft.feed=bJe;var yJe=10;Ft.newline=yJe;var wJe=9;Ft.tab=wJe;var CJe=mCe;Ft.str=CJe;var SJe=-1;Ft.comment=SJe;var xJe=-2;Ft.word=xJe;var LJe=-3;Ft.combinator=LJe;(function(n){n.__esModule=!0,n.FIELDS=void 0,n.default=p;var e=r(Ft),t,i;function s(g){if(typeof WeakMap!="function")return null;var m=new WeakMap,_=new WeakMap;return(s=function(w){return w?_:m})(g)}function r(g,m){if(g&&g.__esModule)return g;if(g===null||typeof g!="object"&&typeof g!="function")return{default:g};var _=s(m);if(_&&_.has(g))return _.get(g);var b={},w=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in g)if(C!=="default"&&Object.prototype.hasOwnProperty.call(g,C)){var S=w?Object.getOwnPropertyDescriptor(g,C):null;S&&(S.get||S.set)?Object.defineProperty(b,C,S):b[C]=g[C]}return b.default=g,_&&_.set(g,b),b}for(var o=(t={},t[e.tab]=!0,t[e.newline]=!0,t[e.cr]=!0,t[e.feed]=!0,t),a=(i={},i[e.space]=!0,i[e.tab]=!0,i[e.newline]=!0,i[e.cr]=!0,i[e.feed]=!0,i[e.ampersand]=!0,i[e.asterisk]=!0,i[e.bang]=!0,i[e.comma]=!0,i[e.colon]=!0,i[e.semicolon]=!0,i[e.openParenthesis]=!0,i[e.closeParenthesis]=!0,i[e.openSquare]=!0,i[e.closeSquare]=!0,i[e.singleQuote]=!0,i[e.doubleQuote]=!0,i[e.plus]=!0,i[e.pipe]=!0,i[e.tilde]=!0,i[e.greaterThan]=!0,i[e.equals]=!0,i[e.dollar]=!0,i[e.caret]=!0,i[e.slash]=!0,i),l={},c="0123456789abcdefABCDEF",u=0;u<c.length;u++)l[c.charCodeAt(u)]=!0;function h(g,m){var _=m,b;do{if(b=g.charCodeAt(_),a[b])return _-1;b===e.backslash?_=d(g,_)+1:_++}while(_<g.length);return _-1}function d(g,m){var _=m,b=g.charCodeAt(_+1);if(!o[b])if(l[b]){var w=0;do _++,w++,b=g.charCodeAt(_+1);while(l[b]&&w<6);w<6&&b===e.space&&_++}else _++;return _}var f={TYPE:0,START_LINE:1,START_COL:2,END_LINE:3,END_COL:4,START_POS:5,END_POS:6};n.FIELDS=f;function p(g){var m=[],_=g.css.valueOf(),b=_,w=b.length,C=-1,S=1,x=0,k=0,L,E,A,I,T,N,M,V,W,B,$,Y,le;function re(z,K){if(g.safe)_+=K,W=_.length-1;else throw g.error("Unclosed "+z,S,x-C,x)}for(;x<w;){switch(L=_.charCodeAt(x),L===e.newline&&(C=x,S+=1),L){case e.space:case e.tab:case e.newline:case e.cr:case e.feed:W=x;do W+=1,L=_.charCodeAt(W),L===e.newline&&(C=W,S+=1);while(L===e.space||L===e.newline||L===e.tab||L===e.cr||L===e.feed);le=e.space,I=S,A=W-C-1,k=W;break;case e.plus:case e.greaterThan:case e.tilde:case e.pipe:W=x;do W+=1,L=_.charCodeAt(W);while(L===e.plus||L===e.greaterThan||L===e.tilde||L===e.pipe);le=e.combinator,I=S,A=x-C,k=W;break;case e.asterisk:case e.ampersand:case e.bang:case e.comma:case e.equals:case e.dollar:case e.caret:case e.openSquare:case e.closeSquare:case e.colon:case e.semicolon:case e.openParenthesis:case e.closeParenthesis:W=x,le=L,I=S,A=x-C,k=W+1;break;case e.singleQuote:case e.doubleQuote:Y=L===e.singleQuote?"'":'"',W=x;do for(T=!1,W=_.indexOf(Y,W+1),W===-1&&re("quote",Y),N=W;_.charCodeAt(N-1)===e.backslash;)N-=1,T=!T;while(T);le=e.str,I=S,A=x-C,k=W+1;break;default:L===e.slash&&_.charCodeAt(x+1)===e.asterisk?(W=_.indexOf("*/",x+2)+1,W===0&&re("comment","*/"),E=_.slice(x,W+1),V=E.split(` +`),M=V.length-1,M>0?(B=S+M,$=W-V[M].length):(B=S,$=C),le=e.comment,S=B,I=B,A=W-$):L===e.slash?(W=x,le=L,I=S,A=x-C,k=W+1):(W=h(_,x),le=e.word,I=S,A=W-C),k=W+1;break}m.push([le,S,x-C,I,A,x,k]),$&&(C=$,$=null),x=k}return m}})(gCe);(function(n,e){e.__esModule=!0,e.default=void 0;var t=k(sCe),i=k(rCe),s=k(oCe),r=k(aCe),o=k(lCe),a=k(cCe),l=k(uCe),c=k(hCe),u=x(cJ),h=k(dCe),d=k(fCe),f=k(pCe),p=k(XQe),g=x(gCe),m=x(Ft),_=x($i),b=Vc,w,C;function S(re){if(typeof WeakMap!="function")return null;var z=new WeakMap,K=new WeakMap;return(S=function(j){return j?K:z})(re)}function x(re,z){if(re&&re.__esModule)return re;if(re===null||typeof re!="object"&&typeof re!="function")return{default:re};var K=S(z);if(K&&K.has(re))return K.get(re);var Z={},j=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ce in re)if(ce!=="default"&&Object.prototype.hasOwnProperty.call(re,ce)){var ie=j?Object.getOwnPropertyDescriptor(re,ce):null;ie&&(ie.get||ie.set)?Object.defineProperty(Z,ce,ie):Z[ce]=re[ce]}return Z.default=re,K&&K.set(re,Z),Z}function k(re){return re&&re.__esModule?re:{default:re}}function L(re,z){for(var K=0;K<z.length;K++){var Z=z[K];Z.enumerable=Z.enumerable||!1,Z.configurable=!0,"value"in Z&&(Z.writable=!0),Object.defineProperty(re,Z.key,Z)}}function E(re,z,K){return z&&L(re.prototype,z),Object.defineProperty(re,"prototype",{writable:!1}),re}var A=(w={},w[m.space]=!0,w[m.cr]=!0,w[m.feed]=!0,w[m.newline]=!0,w[m.tab]=!0,w),I=Object.assign({},A,(C={},C[m.comment]=!0,C));function T(re){return{line:re[g.FIELDS.START_LINE],column:re[g.FIELDS.START_COL]}}function N(re){return{line:re[g.FIELDS.END_LINE],column:re[g.FIELDS.END_COL]}}function M(re,z,K,Z){return{start:{line:re,column:z},end:{line:K,column:Z}}}function V(re){return M(re[g.FIELDS.START_LINE],re[g.FIELDS.START_COL],re[g.FIELDS.END_LINE],re[g.FIELDS.END_COL])}function W(re,z){if(re)return M(re[g.FIELDS.START_LINE],re[g.FIELDS.START_COL],z[g.FIELDS.END_LINE],z[g.FIELDS.END_COL])}function B(re,z){var K=re[z];if(typeof K=="string")return K.indexOf("\\")!==-1&&((0,b.ensureObject)(re,"raws"),re[z]=(0,b.unesc)(K),re.raws[z]===void 0&&(re.raws[z]=K)),re}function $(re,z){for(var K=-1,Z=[];(K=re.indexOf(z,K+1))!==-1;)Z.push(K);return Z}function Y(){var re=Array.prototype.concat.apply([],arguments);return re.filter(function(z,K){return K===re.indexOf(z)})}var le=function(){function re(K,Z){Z===void 0&&(Z={}),this.rule=K,this.options=Object.assign({lossy:!1,safe:!1},Z),this.position=0,this.css=typeof this.rule=="string"?this.rule:this.rule.selector,this.tokens=(0,g.default)({css:this.css,error:this._errorGenerator(),safe:this.options.safe});var j=W(this.tokens[0],this.tokens[this.tokens.length-1]);this.root=new t.default({source:j}),this.root.errorGenerator=this._errorGenerator();var ce=new i.default({source:{start:{line:1,column:1}},sourceIndex:0});this.root.append(ce),this.current=ce,this.loop()}var z=re.prototype;return z._errorGenerator=function(){var Z=this;return function(j,ce){return typeof Z.rule=="string"?new Error(j):Z.rule.error(j,ce)}},z.attribute=function(){var Z=[],j=this.currToken;for(this.position++;this.position<this.tokens.length&&this.currToken[g.FIELDS.TYPE]!==m.closeSquare;)Z.push(this.currToken),this.position++;if(this.currToken[g.FIELDS.TYPE]!==m.closeSquare)return this.expected("closing square bracket",this.currToken[g.FIELDS.START_POS]);var ce=Z.length,ie={source:M(j[1],j[2],this.currToken[3],this.currToken[4]),sourceIndex:j[g.FIELDS.START_POS]};if(ce===1&&!~[m.word].indexOf(Z[0][g.FIELDS.TYPE]))return this.expected("attribute",Z[0][g.FIELDS.START_POS]);for(var de=0,Le="",Te="",ve=null,Ke=!1;de<ce;){var Q=Z[de],ne=this.content(Q),xe=Z[de+1];switch(Q[g.FIELDS.TYPE]){case m.space:if(Ke=!0,this.options.lossy)break;if(ve){(0,b.ensureObject)(ie,"spaces",ve);var He=ie.spaces[ve].after||"";ie.spaces[ve].after=He+ne;var Re=(0,b.getProp)(ie,"raws","spaces",ve,"after")||null;Re&&(ie.raws.spaces[ve].after=Re+ne)}else Le=Le+ne,Te=Te+ne;break;case m.asterisk:if(xe[g.FIELDS.TYPE]===m.equals)ie.operator=ne,ve="operator";else if((!ie.namespace||ve==="namespace"&&!Ke)&&xe){Le&&((0,b.ensureObject)(ie,"spaces","attribute"),ie.spaces.attribute.before=Le,Le=""),Te&&((0,b.ensureObject)(ie,"raws","spaces","attribute"),ie.raws.spaces.attribute.before=Le,Te=""),ie.namespace=(ie.namespace||"")+ne;var Fe=(0,b.getProp)(ie,"raws","namespace")||null;Fe&&(ie.raws.namespace+=ne),ve="namespace"}Ke=!1;break;case m.dollar:if(ve==="value"){var Ye=(0,b.getProp)(ie,"raws","value");ie.value+="$",Ye&&(ie.raws.value=Ye+"$");break}case m.caret:xe[g.FIELDS.TYPE]===m.equals&&(ie.operator=ne,ve="operator"),Ke=!1;break;case m.combinator:if(ne==="~"&&xe[g.FIELDS.TYPE]===m.equals&&(ie.operator=ne,ve="operator"),ne!=="|"){Ke=!1;break}xe[g.FIELDS.TYPE]===m.equals?(ie.operator=ne,ve="operator"):!ie.namespace&&!ie.attribute&&(ie.namespace=!0),Ke=!1;break;case m.word:if(xe&&this.content(xe)==="|"&&Z[de+2]&&Z[de+2][g.FIELDS.TYPE]!==m.equals&&!ie.operator&&!ie.namespace)ie.namespace=ne,ve="namespace";else if(!ie.attribute||ve==="attribute"&&!Ke){Le&&((0,b.ensureObject)(ie,"spaces","attribute"),ie.spaces.attribute.before=Le,Le=""),Te&&((0,b.ensureObject)(ie,"raws","spaces","attribute"),ie.raws.spaces.attribute.before=Te,Te=""),ie.attribute=(ie.attribute||"")+ne;var he=(0,b.getProp)(ie,"raws","attribute")||null;he&&(ie.raws.attribute+=ne),ve="attribute"}else if(!ie.value&&ie.value!==""||ve==="value"&&!(Ke||ie.quoteMark)){var te=(0,b.unesc)(ne),ee=(0,b.getProp)(ie,"raws","value")||"",R=ie.value||"";ie.value=R+te,ie.quoteMark=null,(te!==ne||ee)&&((0,b.ensureObject)(ie,"raws"),ie.raws.value=(ee||R)+ne),ve="value"}else{var F=ne==="i"||ne==="I";(ie.value||ie.value==="")&&(ie.quoteMark||Ke)?(ie.insensitive=F,(!F||ne==="I")&&((0,b.ensureObject)(ie,"raws"),ie.raws.insensitiveFlag=ne),ve="insensitive",Le&&((0,b.ensureObject)(ie,"spaces","insensitive"),ie.spaces.insensitive.before=Le,Le=""),Te&&((0,b.ensureObject)(ie,"raws","spaces","insensitive"),ie.raws.spaces.insensitive.before=Te,Te="")):(ie.value||ie.value==="")&&(ve="value",ie.value+=ne,ie.raws.value&&(ie.raws.value+=ne))}Ke=!1;break;case m.str:if(!ie.attribute||!ie.operator)return this.error("Expected an attribute followed by an operator preceding the string.",{index:Q[g.FIELDS.START_POS]});var q=(0,u.unescapeValue)(ne),G=q.unescaped,pe=q.quoteMark;ie.value=G,ie.quoteMark=pe,ve="value",(0,b.ensureObject)(ie,"raws"),ie.raws.value=ne,Ke=!1;break;case m.equals:if(!ie.attribute)return this.expected("attribute",Q[g.FIELDS.START_POS],ne);if(ie.value)return this.error('Unexpected "=" found; an operator was already defined.',{index:Q[g.FIELDS.START_POS]});ie.operator=ie.operator?ie.operator+ne:ne,ve="operator",Ke=!1;break;case m.comment:if(ve)if(Ke||xe&&xe[g.FIELDS.TYPE]===m.space||ve==="insensitive"){var _e=(0,b.getProp)(ie,"spaces",ve,"after")||"",De=(0,b.getProp)(ie,"raws","spaces",ve,"after")||_e;(0,b.ensureObject)(ie,"raws","spaces",ve),ie.raws.spaces[ve].after=De+ne}else{var ze=ie[ve]||"",Ze=(0,b.getProp)(ie,"raws",ve)||ze;(0,b.ensureObject)(ie,"raws"),ie.raws[ve]=Ze+ne}else Te=Te+ne;break;default:return this.error('Unexpected "'+ne+'" found.',{index:Q[g.FIELDS.START_POS]})}de++}B(ie,"attribute"),B(ie,"namespace"),this.newNode(new u.default(ie)),this.position++},z.parseWhitespaceEquivalentTokens=function(Z){Z<0&&(Z=this.tokens.length);var j=this.position,ce=[],ie="",de=void 0;do if(A[this.currToken[g.FIELDS.TYPE]])this.options.lossy||(ie+=this.content());else if(this.currToken[g.FIELDS.TYPE]===m.comment){var Le={};ie&&(Le.before=ie,ie=""),de=new r.default({value:this.content(),source:V(this.currToken),sourceIndex:this.currToken[g.FIELDS.START_POS],spaces:Le}),ce.push(de)}while(++this.position<Z);if(ie){if(de)de.spaces.after=ie;else if(!this.options.lossy){var Te=this.tokens[j],ve=this.tokens[this.position-1];ce.push(new l.default({value:"",source:M(Te[g.FIELDS.START_LINE],Te[g.FIELDS.START_COL],ve[g.FIELDS.END_LINE],ve[g.FIELDS.END_COL]),sourceIndex:Te[g.FIELDS.START_POS],spaces:{before:ie,after:""}}))}}return ce},z.convertWhitespaceNodesToSpace=function(Z,j){var ce=this;j===void 0&&(j=!1);var ie="",de="";Z.forEach(function(Te){var ve=ce.lossySpace(Te.spaces.before,j),Ke=ce.lossySpace(Te.rawSpaceBefore,j);ie+=ve+ce.lossySpace(Te.spaces.after,j&&ve.length===0),de+=ve+Te.value+ce.lossySpace(Te.rawSpaceAfter,j&&Ke.length===0)}),de===ie&&(de=void 0);var Le={space:ie,rawSpace:de};return Le},z.isNamedCombinator=function(Z){return Z===void 0&&(Z=this.position),this.tokens[Z+0]&&this.tokens[Z+0][g.FIELDS.TYPE]===m.slash&&this.tokens[Z+1]&&this.tokens[Z+1][g.FIELDS.TYPE]===m.word&&this.tokens[Z+2]&&this.tokens[Z+2][g.FIELDS.TYPE]===m.slash},z.namedCombinator=function(){if(this.isNamedCombinator()){var Z=this.content(this.tokens[this.position+1]),j=(0,b.unesc)(Z).toLowerCase(),ce={};j!==Z&&(ce.value="/"+Z+"/");var ie=new d.default({value:"/"+j+"/",source:M(this.currToken[g.FIELDS.START_LINE],this.currToken[g.FIELDS.START_COL],this.tokens[this.position+2][g.FIELDS.END_LINE],this.tokens[this.position+2][g.FIELDS.END_COL]),sourceIndex:this.currToken[g.FIELDS.START_POS],raws:ce});return this.position=this.position+3,ie}else this.unexpected()},z.combinator=function(){var Z=this;if(this.content()==="|")return this.namespace();var j=this.locateNextMeaningfulToken(this.position);if(j<0||this.tokens[j][g.FIELDS.TYPE]===m.comma||this.tokens[j][g.FIELDS.TYPE]===m.closeParenthesis){var ce=this.parseWhitespaceEquivalentTokens(j);if(ce.length>0){var ie=this.current.last;if(ie){var de=this.convertWhitespaceNodesToSpace(ce),Le=de.space,Te=de.rawSpace;Te!==void 0&&(ie.rawSpaceAfter+=Te),ie.spaces.after+=Le}else ce.forEach(function(ee){return Z.newNode(ee)})}return}var ve=this.currToken,Ke=void 0;j>this.position&&(Ke=this.parseWhitespaceEquivalentTokens(j));var Q;if(this.isNamedCombinator()?Q=this.namedCombinator():this.currToken[g.FIELDS.TYPE]===m.combinator?(Q=new d.default({value:this.content(),source:V(this.currToken),sourceIndex:this.currToken[g.FIELDS.START_POS]}),this.position++):A[this.currToken[g.FIELDS.TYPE]]||Ke||this.unexpected(),Q){if(Ke){var ne=this.convertWhitespaceNodesToSpace(Ke),xe=ne.space,He=ne.rawSpace;Q.spaces.before=xe,Q.rawSpaceBefore=He}}else{var Re=this.convertWhitespaceNodesToSpace(Ke,!0),Fe=Re.space,Ye=Re.rawSpace;Ye||(Ye=Fe);var he={},te={spaces:{}};Fe.endsWith(" ")&&Ye.endsWith(" ")?(he.before=Fe.slice(0,Fe.length-1),te.spaces.before=Ye.slice(0,Ye.length-1)):Fe.startsWith(" ")&&Ye.startsWith(" ")?(he.after=Fe.slice(1),te.spaces.after=Ye.slice(1)):te.value=Ye,Q=new d.default({value:" ",source:W(ve,this.tokens[this.position-1]),sourceIndex:ve[g.FIELDS.START_POS],spaces:he,raws:te})}return this.currToken&&this.currToken[g.FIELDS.TYPE]===m.space&&(Q.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(Q)},z.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var Z=new i.default({source:{start:T(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][g.FIELDS.START_POS]});this.current.parent.append(Z),this.current=Z,this.position++},z.comment=function(){var Z=this.currToken;this.newNode(new r.default({value:this.content(),source:V(Z),sourceIndex:Z[g.FIELDS.START_POS]})),this.position++},z.error=function(Z,j){throw this.root.error(Z,j)},z.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[g.FIELDS.START_POS]})},z.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[g.FIELDS.START_POS])},z.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[g.FIELDS.START_POS])},z.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[g.FIELDS.START_POS])},z.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[g.FIELDS.START_POS])},z.namespace=function(){var Z=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[g.FIELDS.TYPE]===m.word)return this.position++,this.word(Z);if(this.nextToken[g.FIELDS.TYPE]===m.asterisk)return this.position++,this.universal(Z);this.unexpectedPipe()},z.nesting=function(){if(this.nextToken){var Z=this.content(this.nextToken);if(Z==="|"){this.position++;return}}var j=this.currToken;this.newNode(new f.default({value:this.content(),source:V(j),sourceIndex:j[g.FIELDS.START_POS]})),this.position++},z.parentheses=function(){var Z=this.current.last,j=1;if(this.position++,Z&&Z.type===_.PSEUDO){var ce=new i.default({source:{start:T(this.tokens[this.position])},sourceIndex:this.tokens[this.position][g.FIELDS.START_POS]}),ie=this.current;for(Z.append(ce),this.current=ce;this.position<this.tokens.length&&j;)this.currToken[g.FIELDS.TYPE]===m.openParenthesis&&j++,this.currToken[g.FIELDS.TYPE]===m.closeParenthesis&&j--,j?this.parse():(this.current.source.end=N(this.currToken),this.current.parent.source.end=N(this.currToken),this.position++);this.current=ie}else{for(var de=this.currToken,Le="(",Te;this.position<this.tokens.length&&j;)this.currToken[g.FIELDS.TYPE]===m.openParenthesis&&j++,this.currToken[g.FIELDS.TYPE]===m.closeParenthesis&&j--,Te=this.currToken,Le+=this.parseParenthesisToken(this.currToken),this.position++;Z?Z.appendToPropertyAndEscape("value",Le,Le):this.newNode(new l.default({value:Le,source:M(de[g.FIELDS.START_LINE],de[g.FIELDS.START_COL],Te[g.FIELDS.END_LINE],Te[g.FIELDS.END_COL]),sourceIndex:de[g.FIELDS.START_POS]}))}if(j)return this.expected("closing parenthesis",this.currToken[g.FIELDS.START_POS])},z.pseudo=function(){for(var Z=this,j="",ce=this.currToken;this.currToken&&this.currToken[g.FIELDS.TYPE]===m.colon;)j+=this.content(),this.position++;if(!this.currToken)return this.expected(["pseudo-class","pseudo-element"],this.position-1);if(this.currToken[g.FIELDS.TYPE]===m.word)this.splitWord(!1,function(ie,de){j+=ie,Z.newNode(new c.default({value:j,source:W(ce,Z.currToken),sourceIndex:ce[g.FIELDS.START_POS]})),de>1&&Z.nextToken&&Z.nextToken[g.FIELDS.TYPE]===m.openParenthesis&&Z.error("Misplaced parenthesis.",{index:Z.nextToken[g.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[g.FIELDS.START_POS])},z.space=function(){var Z=this.content();this.position===0||this.prevToken[g.FIELDS.TYPE]===m.comma||this.prevToken[g.FIELDS.TYPE]===m.openParenthesis||this.current.nodes.every(function(j){return j.type==="comment"})?(this.spaces=this.optionalSpace(Z),this.position++):this.position===this.tokens.length-1||this.nextToken[g.FIELDS.TYPE]===m.comma||this.nextToken[g.FIELDS.TYPE]===m.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(Z),this.position++):this.combinator()},z.string=function(){var Z=this.currToken;this.newNode(new l.default({value:this.content(),source:V(Z),sourceIndex:Z[g.FIELDS.START_POS]})),this.position++},z.universal=function(Z){var j=this.nextToken;if(j&&this.content(j)==="|")return this.position++,this.namespace();var ce=this.currToken;this.newNode(new h.default({value:this.content(),source:V(ce),sourceIndex:ce[g.FIELDS.START_POS]}),Z),this.position++},z.splitWord=function(Z,j){for(var ce=this,ie=this.nextToken,de=this.content();ie&&~[m.dollar,m.caret,m.equals,m.word].indexOf(ie[g.FIELDS.TYPE]);){this.position++;var Le=this.content();if(de+=Le,Le.lastIndexOf("\\")===Le.length-1){var Te=this.nextToken;Te&&Te[g.FIELDS.TYPE]===m.space&&(de+=this.requiredSpace(this.content(Te)),this.position++)}ie=this.nextToken}var ve=$(de,".").filter(function(xe){var He=de[xe-1]==="\\",Re=/^\d+\.\d+%$/.test(de);return!He&&!Re}),Ke=$(de,"#").filter(function(xe){return de[xe-1]!=="\\"}),Q=$(de,"#{");Q.length&&(Ke=Ke.filter(function(xe){return!~Q.indexOf(xe)}));var ne=(0,p.default)(Y([0].concat(ve,Ke)));ne.forEach(function(xe,He){var Re=ne[He+1]||de.length,Fe=de.slice(xe,Re);if(He===0&&j)return j.call(ce,Fe,ne.length);var Ye,he=ce.currToken,te=he[g.FIELDS.START_POS]+ne[He],ee=M(he[1],he[2]+xe,he[3],he[2]+(Re-1));if(~ve.indexOf(xe)){var R={value:Fe.slice(1),source:ee,sourceIndex:te};Ye=new s.default(B(R,"value"))}else if(~Ke.indexOf(xe)){var F={value:Fe.slice(1),source:ee,sourceIndex:te};Ye=new o.default(B(F,"value"))}else{var q={value:Fe,source:ee,sourceIndex:te};B(q,"value"),Ye=new a.default(q)}ce.newNode(Ye,Z),Z=null}),this.position++},z.word=function(Z){var j=this.nextToken;return j&&this.content(j)==="|"?(this.position++,this.namespace()):this.splitWord(Z)},z.loop=function(){for(;this.position<this.tokens.length;)this.parse(!0);return this.current._inferEndPosition(),this.root},z.parse=function(Z){switch(this.currToken[g.FIELDS.TYPE]){case m.space:this.space();break;case m.comment:this.comment();break;case m.openParenthesis:this.parentheses();break;case m.closeParenthesis:Z&&this.missingParenthesis();break;case m.openSquare:this.attribute();break;case m.dollar:case m.caret:case m.equals:case m.word:this.word();break;case m.colon:this.pseudo();break;case m.comma:this.comma();break;case m.asterisk:this.universal();break;case m.ampersand:this.nesting();break;case m.slash:case m.combinator:this.combinator();break;case m.str:this.string();break;case m.closeSquare:this.missingSquareBracket();case m.semicolon:this.missingBackslash();default:this.unexpected()}},z.expected=function(Z,j,ce){if(Array.isArray(Z)){var ie=Z.pop();Z=Z.join(", ")+" or "+ie}var de=/^[aeiou]/.test(Z[0])?"an":"a";return ce?this.error("Expected "+de+" "+Z+', found "'+ce+'" instead.',{index:j}):this.error("Expected "+de+" "+Z+".",{index:j})},z.requiredSpace=function(Z){return this.options.lossy?" ":Z},z.optionalSpace=function(Z){return this.options.lossy?"":Z},z.lossySpace=function(Z,j){return this.options.lossy?j?" ":"":Z},z.parseParenthesisToken=function(Z){var j=this.content(Z);return Z[g.FIELDS.TYPE]===m.space?this.requiredSpace(j):j},z.newNode=function(Z,j){return j&&(/^ +$/.test(j)&&(this.options.lossy||(this.spaces=(this.spaces||"")+j),j=!0),Z.namespace=j,B(Z,"namespace")),this.spaces&&(Z.spaces.before=this.spaces,this.spaces=""),this.current.append(Z)},z.content=function(Z){return Z===void 0&&(Z=this.currToken),this.css.slice(Z[g.FIELDS.START_POS],Z[g.FIELDS.END_POS])},z.locateNextMeaningfulToken=function(Z){Z===void 0&&(Z=this.position+1);for(var j=Z;j<this.tokens.length;)if(I[this.tokens[j][g.FIELDS.TYPE]]){j++;continue}else return j;return-1},E(re,[{key:"currToken",get:function(){return this.tokens[this.position]}},{key:"nextToken",get:function(){return this.tokens[this.position+1]}},{key:"prevToken",get:function(){return this.tokens[this.position-1]}}]),re}();e.default=le,n.exports=e.default})(a$,a$.exports);var EJe=a$.exports;(function(n,e){e.__esModule=!0,e.default=void 0;var t=i(EJe);function i(r){return r&&r.__esModule?r:{default:r}}var s=function(){function r(a,l){this.func=a||function(){},this.funcRes=null,this.options=l}var o=r.prototype;return o._shouldUpdateSelector=function(l,c){c===void 0&&(c={});var u=Object.assign({},this.options,c);return u.updateSelector===!1?!1:typeof l!="string"},o._isLossy=function(l){l===void 0&&(l={});var c=Object.assign({},this.options,l);return c.lossless===!1},o._root=function(l,c){c===void 0&&(c={});var u=new t.default(l,this._parseOptions(c));return u.root},o._parseOptions=function(l){return{lossy:this._isLossy(l)}},o._run=function(l,c){var u=this;return c===void 0&&(c={}),new Promise(function(h,d){try{var f=u._root(l,c);Promise.resolve(u.func(f)).then(function(p){var g=void 0;return u._shouldUpdateSelector(l,c)&&(g=f.toString(),l.selector=g),{transform:p,root:f,string:g}}).then(h,d)}catch(p){d(p);return}})},o._runSync=function(l,c){c===void 0&&(c={});var u=this._root(l,c),h=this.func(u);if(h&&typeof h.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var d=void 0;return c.updateSelector&&typeof l!="string"&&(d=u.toString(),l.selector=d),{transform:h,root:u,string:d}},o.ast=function(l,c){return this._run(l,c).then(function(u){return u.root})},o.astSync=function(l,c){return this._runSync(l,c).root},o.transform=function(l,c){return this._run(l,c).then(function(u){return u.transform})},o.transformSync=function(l,c){return this._runSync(l,c).transform},o.process=function(l,c){return this._run(l,c).then(function(u){return u.string||u.root.toString()})},o.processSync=function(l,c){var u=this._runSync(l,c);return u.string||u.root.toString()},r}();e.default=s,n.exports=e.default})(o$,o$.exports);var kJe=o$.exports,_Ce={},Ss={};Ss.__esModule=!0;Ss.universal=Ss.tag=Ss.string=Ss.selector=Ss.root=Ss.pseudo=Ss.nesting=Ss.id=Ss.comment=Ss.combinator=Ss.className=Ss.attribute=void 0;var IJe=Xu(cJ),TJe=Xu(oCe),DJe=Xu(fCe),NJe=Xu(aCe),AJe=Xu(lCe),PJe=Xu(pCe),RJe=Xu(hCe),MJe=Xu(sCe),OJe=Xu(rCe),FJe=Xu(uCe),BJe=Xu(cCe),WJe=Xu(dCe);function Xu(n){return n&&n.__esModule?n:{default:n}}var VJe=function(e){return new IJe.default(e)};Ss.attribute=VJe;var HJe=function(e){return new TJe.default(e)};Ss.className=HJe;var $Je=function(e){return new DJe.default(e)};Ss.combinator=$Je;var zJe=function(e){return new NJe.default(e)};Ss.comment=zJe;var UJe=function(e){return new AJe.default(e)};Ss.id=UJe;var jJe=function(e){return new PJe.default(e)};Ss.nesting=jJe;var qJe=function(e){return new RJe.default(e)};Ss.pseudo=qJe;var KJe=function(e){return new MJe.default(e)};Ss.root=KJe;var GJe=function(e){return new OJe.default(e)};Ss.selector=GJe;var XJe=function(e){return new FJe.default(e)};Ss.string=XJe;var YJe=function(e){return new BJe.default(e)};Ss.tag=YJe;var ZJe=function(e){return new WJe.default(e)};Ss.universal=ZJe;var zn={};zn.__esModule=!0;zn.isComment=zn.isCombinator=zn.isClassName=zn.isAttribute=void 0;zn.isContainer=uet;zn.isIdentifier=void 0;zn.isNamespace=het;zn.isNesting=void 0;zn.isNode=uJ;zn.isPseudo=void 0;zn.isPseudoClass=cet;zn.isPseudoElement=yCe;zn.isUniversal=zn.isTag=zn.isString=zn.isSelector=zn.isRoot=void 0;var Ws=$i,Nl,QJe=(Nl={},Nl[Ws.ATTRIBUTE]=!0,Nl[Ws.CLASS]=!0,Nl[Ws.COMBINATOR]=!0,Nl[Ws.COMMENT]=!0,Nl[Ws.ID]=!0,Nl[Ws.NESTING]=!0,Nl[Ws.PSEUDO]=!0,Nl[Ws.ROOT]=!0,Nl[Ws.SELECTOR]=!0,Nl[Ws.STRING]=!0,Nl[Ws.TAG]=!0,Nl[Ws.UNIVERSAL]=!0,Nl);function uJ(n){return typeof n=="object"&&QJe[n.type]}function Yu(n,e){return uJ(e)&&e.type===n}var vCe=Yu.bind(null,Ws.ATTRIBUTE);zn.isAttribute=vCe;var JJe=Yu.bind(null,Ws.CLASS);zn.isClassName=JJe;var eet=Yu.bind(null,Ws.COMBINATOR);zn.isCombinator=eet;var tet=Yu.bind(null,Ws.COMMENT);zn.isComment=tet;var iet=Yu.bind(null,Ws.ID);zn.isIdentifier=iet;var net=Yu.bind(null,Ws.NESTING);zn.isNesting=net;var hJ=Yu.bind(null,Ws.PSEUDO);zn.isPseudo=hJ;var set=Yu.bind(null,Ws.ROOT);zn.isRoot=set;var ret=Yu.bind(null,Ws.SELECTOR);zn.isSelector=ret;var oet=Yu.bind(null,Ws.STRING);zn.isString=oet;var bCe=Yu.bind(null,Ws.TAG);zn.isTag=bCe;var aet=Yu.bind(null,Ws.UNIVERSAL);zn.isUniversal=aet;function yCe(n){return hJ(n)&&n.value&&(n.value.startsWith("::")||n.value.toLowerCase()===":before"||n.value.toLowerCase()===":after"||n.value.toLowerCase()===":first-letter"||n.value.toLowerCase()===":first-line")}function cet(n){return hJ(n)&&!yCe(n)}function uet(n){return!!(uJ(n)&&n.walk)}function het(n){return vCe(n)||bCe(n)}(function(n){n.__esModule=!0;var e=$i;Object.keys(e).forEach(function(s){s==="default"||s==="__esModule"||s in n&&n[s]===e[s]||(n[s]=e[s])});var t=Ss;Object.keys(t).forEach(function(s){s==="default"||s==="__esModule"||s in n&&n[s]===t[s]||(n[s]=t[s])});var i=zn;Object.keys(i).forEach(function(s){s==="default"||s==="__esModule"||s in n&&n[s]===i[s]||(n[s]=i[s])})})(_Ce);(function(n,e){e.__esModule=!0,e.default=void 0;var t=o(kJe),i=r(_Ce);function s(c){if(typeof WeakMap!="function")return null;var u=new WeakMap,h=new WeakMap;return(s=function(f){return f?h:u})(c)}function r(c,u){if(c&&c.__esModule)return c;if(c===null||typeof c!="object"&&typeof c!="function")return{default:c};var h=s(u);if(h&&h.has(c))return h.get(c);var d={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in c)if(p!=="default"&&Object.prototype.hasOwnProperty.call(c,p)){var g=f?Object.getOwnPropertyDescriptor(c,p):null;g&&(g.get||g.set)?Object.defineProperty(d,p,g):d[p]=c[p]}return d.default=c,h&&h.set(c,d),d}function o(c){return c&&c.__esModule?c:{default:c}}var a=function(u){return new t.default(u)};Object.assign(a,i),delete a.__esModule;var l=a;e.default=l,n.exports=e.default})(r$,r$.exports);var det=r$.exports,GR=H6(det);const fet=/^(-\w+-)?animation-name$/,pet=/^(-\w+-)?animation$/,wCe=(n="")=>{const e=Object.create(null),t=n.replace(/^data-v-/,"");return{postcssPlugin:"vue-sfc-scoped",Rule(i){get(n,i)},AtRule(i){/-?keyframes$/.test(i.name)&&!i.params.endsWith(`-${t}`)&&(e[i.params]=i.params=i.params+"-"+t)},OnceExit(i){Object.keys(e).length&&i.walkDecls(s=>{fet.test(s.prop)&&(s.value=s.value.split(",").map(r=>e[r.trim()]||r.trim()).join(",")),pet.test(s.prop)&&(s.value=s.value.split(",").map(r=>{const o=r.trim().split(/\s+/),a=o.findIndex(l=>e[l]);return a!==-1?(o.splice(a,1,e[o[a]]),o.join(" ")):r}).join(","))})}}},Nle=new WeakSet;function get(n,e){Nle.has(e)||e.parent&&e.parent.type==="atrule"&&/-?keyframes$/.test(e.parent.name)||(Nle.add(e),e.selector=GR(t=>{t.each(i=>{k$(n,i,t)})}).processSync(e.selector))}function k$(n,e,t,i=!1){let s=null,r=!0;if(e.each(o=>{if(o.type==="combinator"&&(o.value===">>>"||o.value==="/deep/"))return o.value=" ",o.spaces.before=o.spaces.after="",$H("the >>> and /deep/ combinators have been deprecated. Use :deep() instead."),!1;if(o.type==="pseudo"){const{value:a}=o;if(a===":deep"||a==="::v-deep"){if(o.nodes.length){let l=o;o.nodes[0].each(u=>{e.insertAfter(l,u),l=u});const c=e.at(e.index(o)-1);(!c||!Ale(c))&&e.insertAfter(o,GR.combinator({value:" "})),e.removeChild(o)}else{$H(`${a} usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead of ${a} <inner-selector>.`);const l=e.at(e.index(o)-1);l&&Ale(l)&&e.removeChild(l),e.removeChild(o)}return!1}if(a===":slotted"||a==="::v-slotted"){k$(n,o.nodes[0],t,!0);let l=o;return o.nodes[0].each(c=>{e.insertAfter(l,c),l=c}),e.removeChild(o),r=!1,!1}if(a===":global"||a==="::v-global")return t.insertAfter(e,o.nodes[0]),t.removeChild(e),!1}if(o.type==="universal"){const a=e.at(e.index(o)-1),l=e.at(e.index(o)+1);if(!a)if(l){l.type==="combinator"&&l.value===" "&&e.removeChild(l),e.removeChild(o);return}else return s=GR.combinator({value:""}),e.insertBefore(o,s),e.removeChild(o),!1;if(s)return}(o.type!=="pseudo"&&o.type!=="combinator"||o.type==="pseudo"&&(o.value===":is"||o.value===":where")&&!s)&&(s=o)}),s){const{type:o,value:a}=s;o==="pseudo"&&(a===":is"||a===":where")&&(s.nodes.forEach(l=>k$(n,l,t,i)),r=!1)}if(s?s.spaces.after="":e.first.spaces.before="",r){const o=i?n+"-s":n;e.insertAfter(s,GR.attribute({attribute:o,value:o,raws:{},quoteMark:'"'}))}}function Ale(n){return n.type==="combinator"&&/^\s+$/.test(n.value)}wCe.postcss=!0;var mB={},dJ={},_B={},fJ={},Ple="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");fJ.encode=function(n){if(0<=n&&n<Ple.length)return Ple[n];throw new TypeError("Must be between 0 and 63: "+n)};fJ.decode=function(n){var e=65,t=90,i=97,s=122,r=48,o=57,a=43,l=47,c=26,u=52;return e<=n&&n<=t?n-e:i<=n&&n<=s?n-i+c:r<=n&&n<=o?n-r+u:n==a?62:n==l?63:-1};var CCe=fJ,pJ=5,SCe=1<<pJ,xCe=SCe-1,LCe=SCe;function met(n){return n<0?(-n<<1)+1:(n<<1)+0}function _et(n){var e=(n&1)===1,t=n>>1;return e?-t:t}_B.encode=function(e){var t="",i,s=met(e);do i=s&xCe,s>>>=pJ,s>0&&(i|=LCe),t+=CCe.encode(i);while(s>0);return t};_B.decode=function(e,t,i){var s=e.length,r=0,o=0,a,l;do{if(t>=s)throw new Error("Expected more digits in base 64 VLQ value.");if(l=CCe.decode(e.charCodeAt(t++)),l===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));a=!!(l&LCe),l&=xCe,r=r+(l<<o),o+=pJ}while(a);i.value=_et(r),i.rest=t};var Jx={};(function(n){function e(C,S,x){if(S in C)return C[S];if(arguments.length===3)return x;throw new Error('"'+S+'" is a required argument.')}n.getArg=e;var t=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,i=/^data:.+\,.+$/;function s(C){var S=C.match(t);return S?{scheme:S[1],auth:S[2],host:S[3],port:S[4],path:S[5]}:null}n.urlParse=s;function r(C){var S="";return C.scheme&&(S+=C.scheme+":"),S+="//",C.auth&&(S+=C.auth+"@"),C.host&&(S+=C.host),C.port&&(S+=":"+C.port),C.path&&(S+=C.path),S}n.urlGenerate=r;function o(C){var S=C,x=s(C);if(x){if(!x.path)return C;S=x.path}for(var k=n.isAbsolute(S),L=S.split(/\/+/),E,A=0,I=L.length-1;I>=0;I--)E=L[I],E==="."?L.splice(I,1):E===".."?A++:A>0&&(E===""?(L.splice(I+1,A),A=0):(L.splice(I,2),A--));return S=L.join("/"),S===""&&(S=k?"/":"."),x?(x.path=S,r(x)):S}n.normalize=o;function a(C,S){C===""&&(C="."),S===""&&(S=".");var x=s(S),k=s(C);if(k&&(C=k.path||"/"),x&&!x.scheme)return k&&(x.scheme=k.scheme),r(x);if(x||S.match(i))return S;if(k&&!k.host&&!k.path)return k.host=S,r(k);var L=S.charAt(0)==="/"?S:o(C.replace(/\/+$/,"")+"/"+S);return k?(k.path=L,r(k)):L}n.join=a,n.isAbsolute=function(C){return C.charAt(0)==="/"||t.test(C)};function l(C,S){C===""&&(C="."),C=C.replace(/\/$/,"");for(var x=0;S.indexOf(C+"/")!==0;){var k=C.lastIndexOf("/");if(k<0||(C=C.slice(0,k),C.match(/^([^\/]+:\/)?\/*$/)))return S;++x}return Array(x+1).join("../")+S.substr(C.length+1)}n.relative=l;var c=function(){var C=Object.create(null);return!("__proto__"in C)}();function u(C){return C}function h(C){return f(C)?"$"+C:C}n.toSetString=c?u:h;function d(C){return f(C)?C.slice(1):C}n.fromSetString=c?u:d;function f(C){if(!C)return!1;var S=C.length;if(S<9||C.charCodeAt(S-1)!==95||C.charCodeAt(S-2)!==95||C.charCodeAt(S-3)!==111||C.charCodeAt(S-4)!==116||C.charCodeAt(S-5)!==111||C.charCodeAt(S-6)!==114||C.charCodeAt(S-7)!==112||C.charCodeAt(S-8)!==95||C.charCodeAt(S-9)!==95)return!1;for(var x=S-10;x>=0;x--)if(C.charCodeAt(x)!==36)return!1;return!0}function p(C,S,x){var k=m(C.source,S.source);return k!==0||(k=C.originalLine-S.originalLine,k!==0)||(k=C.originalColumn-S.originalColumn,k!==0||x)||(k=C.generatedColumn-S.generatedColumn,k!==0)||(k=C.generatedLine-S.generatedLine,k!==0)?k:m(C.name,S.name)}n.compareByOriginalPositions=p;function g(C,S,x){var k=C.generatedLine-S.generatedLine;return k!==0||(k=C.generatedColumn-S.generatedColumn,k!==0||x)||(k=m(C.source,S.source),k!==0)||(k=C.originalLine-S.originalLine,k!==0)||(k=C.originalColumn-S.originalColumn,k!==0)?k:m(C.name,S.name)}n.compareByGeneratedPositionsDeflated=g;function m(C,S){return C===S?0:C===null?1:S===null?-1:C>S?1:-1}function _(C,S){var x=C.generatedLine-S.generatedLine;return x!==0||(x=C.generatedColumn-S.generatedColumn,x!==0)||(x=m(C.source,S.source),x!==0)||(x=C.originalLine-S.originalLine,x!==0)||(x=C.originalColumn-S.originalColumn,x!==0)?x:m(C.name,S.name)}n.compareByGeneratedPositionsInflated=_;function b(C){return JSON.parse(C.replace(/^\)]}'[^\n]*\n/,""))}n.parseSourceMapInput=b;function w(C,S,x){if(S=S||"",C&&(C[C.length-1]!=="/"&&S[0]!=="/"&&(C+="/"),S=C+S),x){var k=s(x);if(!k)throw new Error("sourceMapURL could not be parsed");if(k.path){var L=k.path.lastIndexOf("/");L>=0&&(k.path=k.path.substring(0,L+1))}S=a(r(k),S)}return o(S)}n.computeSourceURL=w})(Jx);var gJ={},mJ=Jx,_J=Object.prototype.hasOwnProperty,mb=typeof Map<"u";function Mg(){this._array=[],this._set=mb?new Map:Object.create(null)}Mg.fromArray=function(e,t){for(var i=new Mg,s=0,r=e.length;s<r;s++)i.add(e[s],t);return i};Mg.prototype.size=function(){return mb?this._set.size:Object.getOwnPropertyNames(this._set).length};Mg.prototype.add=function(e,t){var i=mb?e:mJ.toSetString(e),s=mb?this.has(e):_J.call(this._set,i),r=this._array.length;(!s||t)&&this._array.push(e),s||(mb?this._set.set(e,r):this._set[i]=r)};Mg.prototype.has=function(e){if(mb)return this._set.has(e);var t=mJ.toSetString(e);return _J.call(this._set,t)};Mg.prototype.indexOf=function(e){if(mb){var t=this._set.get(e);if(t>=0)return t}else{var i=mJ.toSetString(e);if(_J.call(this._set,i))return this._set[i]}throw new Error('"'+e+'" is not in the set.')};Mg.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)};Mg.prototype.toArray=function(){return this._array.slice()};gJ.ArraySet=Mg;var ECe={},kCe=Jx;function vet(n,e){var t=n.generatedLine,i=e.generatedLine,s=n.generatedColumn,r=e.generatedColumn;return i>t||i==t&&r>=s||kCe.compareByGeneratedPositionsInflated(n,e)<=0}function vB(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}vB.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)};vB.prototype.add=function(e){vet(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))};vB.prototype.toArray=function(){return this._sorted||(this._array.sort(kCe.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};ECe.MappingList=vB;var XL=_B,Br=Jx,FO=gJ.ArraySet,bet=ECe.MappingList;function Vu(n){n||(n={}),this._file=Br.getArg(n,"file",null),this._sourceRoot=Br.getArg(n,"sourceRoot",null),this._skipValidation=Br.getArg(n,"skipValidation",!1),this._sources=new FO,this._names=new FO,this._mappings=new bet,this._sourcesContents=null}Vu.prototype._version=3;Vu.fromSourceMap=function(e){var t=e.sourceRoot,i=new Vu({file:e.file,sourceRoot:t});return e.eachMapping(function(s){var r={generated:{line:s.generatedLine,column:s.generatedColumn}};s.source!=null&&(r.source=s.source,t!=null&&(r.source=Br.relative(t,r.source)),r.original={line:s.originalLine,column:s.originalColumn},s.name!=null&&(r.name=s.name)),i.addMapping(r)}),e.sources.forEach(function(s){var r=s;t!==null&&(r=Br.relative(t,s)),i._sources.has(r)||i._sources.add(r);var o=e.sourceContentFor(s);o!=null&&i.setSourceContent(s,o)}),i};Vu.prototype.addMapping=function(e){var t=Br.getArg(e,"generated"),i=Br.getArg(e,"original",null),s=Br.getArg(e,"source",null),r=Br.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,i,s,r),s!=null&&(s=String(s),this._sources.has(s)||this._sources.add(s)),r!=null&&(r=String(r),this._names.has(r)||this._names.add(r)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:i!=null&&i.line,originalColumn:i!=null&&i.column,source:s,name:r})};Vu.prototype.setSourceContent=function(e,t){var i=e;this._sourceRoot!=null&&(i=Br.relative(this._sourceRoot,i)),t!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Br.toSetString(i)]=t):this._sourcesContents&&(delete this._sourcesContents[Br.toSetString(i)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};Vu.prototype.applySourceMap=function(e,t,i){var s=t;if(t==null){if(e.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);s=e.file}var r=this._sourceRoot;r!=null&&(s=Br.relative(r,s));var o=new FO,a=new FO;this._mappings.unsortedForEach(function(l){if(l.source===s&&l.originalLine!=null){var c=e.originalPositionFor({line:l.originalLine,column:l.originalColumn});c.source!=null&&(l.source=c.source,i!=null&&(l.source=Br.join(i,l.source)),r!=null&&(l.source=Br.relative(r,l.source)),l.originalLine=c.line,l.originalColumn=c.column,c.name!=null&&(l.name=c.name))}var u=l.source;u!=null&&!o.has(u)&&o.add(u);var h=l.name;h!=null&&!a.has(h)&&a.add(h)},this),this._sources=o,this._names=a,e.sources.forEach(function(l){var c=e.sourceContentFor(l);c!=null&&(i!=null&&(l=Br.join(i,l)),r!=null&&(l=Br.relative(r,l)),this.setSourceContent(l,c))},this)};Vu.prototype._validateMapping=function(e,t,i,s){if(t&&typeof t.line!="number"&&typeof t.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!i&&!s)){if(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&i)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:i,original:t,name:s}))}};Vu.prototype._serializeMappings=function(){for(var e=0,t=1,i=0,s=0,r=0,o=0,a="",l,c,u,h,d=this._mappings.toArray(),f=0,p=d.length;f<p;f++){if(c=d[f],l="",c.generatedLine!==t)for(e=0;c.generatedLine!==t;)l+=";",t++;else if(f>0){if(!Br.compareByGeneratedPositionsInflated(c,d[f-1]))continue;l+=","}l+=XL.encode(c.generatedColumn-e),e=c.generatedColumn,c.source!=null&&(h=this._sources.indexOf(c.source),l+=XL.encode(h-o),o=h,l+=XL.encode(c.originalLine-1-s),s=c.originalLine-1,l+=XL.encode(c.originalColumn-i),i=c.originalColumn,c.name!=null&&(u=this._names.indexOf(c.name),l+=XL.encode(u-r),r=u)),a+=l}return a};Vu.prototype._generateSourcesContent=function(e,t){return e.map(function(i){if(!this._sourcesContents)return null;t!=null&&(i=Br.relative(t,i));var s=Br.toSetString(i);return Object.prototype.hasOwnProperty.call(this._sourcesContents,s)?this._sourcesContents[s]:null},this)};Vu.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(e.file=this._file),this._sourceRoot!=null&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e};Vu.prototype.toString=function(){return JSON.stringify(this.toJSON())};dJ.SourceMapGenerator=Vu;var bB={},ICe={};(function(n){n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2;function e(t,i,s,r,o,a){var l=Math.floor((i-t)/2)+t,c=o(s,r[l],!0);return c===0?l:c>0?i-l>1?e(l,i,s,r,o,a):a==n.LEAST_UPPER_BOUND?i<r.length?i:-1:l:l-t>1?e(t,l,s,r,o,a):a==n.LEAST_UPPER_BOUND?l:t<0?-1:t}n.search=function(i,s,r,o){if(s.length===0)return-1;var a=e(-1,s.length,i,s,r,o||n.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&r(s[a],s[a-1],!0)===0;)--a;return a}})(ICe);var TCe={};function d7(n,e,t){var i=n[e];n[e]=n[t],n[t]=i}function yet(n,e){return Math.round(n+Math.random()*(e-n))}function I$(n,e,t,i){if(t<i){var s=yet(t,i),r=t-1;d7(n,s,i);for(var o=n[i],a=t;a<i;a++)e(n[a],o)<=0&&(r+=1,d7(n,r,a));d7(n,r+1,a);var l=r+1;I$(n,e,t,l-1),I$(n,e,l+1,i)}}TCe.quickSort=function(n,e){I$(n,e,0,n.length-1)};var $t=Jx,vJ=ICe,US=gJ.ArraySet,wet=_B,aT=TCe.quickSort;function Os(n,e){var t=n;return typeof n=="string"&&(t=$t.parseSourceMapInput(n)),t.sections!=null?new hd(t,e):new sa(t,e)}Os.fromSourceMap=function(n,e){return sa.fromSourceMap(n,e)};Os.prototype._version=3;Os.prototype.__generatedMappings=null;Object.defineProperty(Os.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}});Os.prototype.__originalMappings=null;Object.defineProperty(Os.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}});Os.prototype._charIsMappingSeparator=function(e,t){var i=e.charAt(t);return i===";"||i===","};Os.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")};Os.GENERATED_ORDER=1;Os.ORIGINAL_ORDER=2;Os.GREATEST_LOWER_BOUND=1;Os.LEAST_UPPER_BOUND=2;Os.prototype.eachMapping=function(e,t,i){var s=t||null,r=i||Os.GENERATED_ORDER,o;switch(r){case Os.GENERATED_ORDER:o=this._generatedMappings;break;case Os.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;o.map(function(l){var c=l.source===null?null:this._sources.at(l.source);return c=$t.computeSourceURL(a,c,this._sourceMapURL),{source:c,generatedLine:l.generatedLine,generatedColumn:l.generatedColumn,originalLine:l.originalLine,originalColumn:l.originalColumn,name:l.name===null?null:this._names.at(l.name)}},this).forEach(e,s)};Os.prototype.allGeneratedPositionsFor=function(e){var t=$t.getArg(e,"line"),i={source:$t.getArg(e,"source"),originalLine:t,originalColumn:$t.getArg(e,"column",0)};if(i.source=this._findSourceIndex(i.source),i.source<0)return[];var s=[],r=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",$t.compareByOriginalPositions,vJ.LEAST_UPPER_BOUND);if(r>=0){var o=this._originalMappings[r];if(e.column===void 0)for(var a=o.originalLine;o&&o.originalLine===a;)s.push({line:$t.getArg(o,"generatedLine",null),column:$t.getArg(o,"generatedColumn",null),lastColumn:$t.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[++r];else for(var l=o.originalColumn;o&&o.originalLine===t&&o.originalColumn==l;)s.push({line:$t.getArg(o,"generatedLine",null),column:$t.getArg(o,"generatedColumn",null),lastColumn:$t.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[++r]}return s};bB.SourceMapConsumer=Os;function sa(n,e){var t=n;typeof n=="string"&&(t=$t.parseSourceMapInput(n));var i=$t.getArg(t,"version"),s=$t.getArg(t,"sources"),r=$t.getArg(t,"names",[]),o=$t.getArg(t,"sourceRoot",null),a=$t.getArg(t,"sourcesContent",null),l=$t.getArg(t,"mappings"),c=$t.getArg(t,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);o&&(o=$t.normalize(o)),s=s.map(String).map($t.normalize).map(function(u){return o&&$t.isAbsolute(o)&&$t.isAbsolute(u)?$t.relative(o,u):u}),this._names=US.fromArray(r.map(String),!0),this._sources=US.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map(function(u){return $t.computeSourceURL(o,u,e)}),this.sourceRoot=o,this.sourcesContent=a,this._mappings=l,this._sourceMapURL=e,this.file=c}sa.prototype=Object.create(Os.prototype);sa.prototype.consumer=Os;sa.prototype._findSourceIndex=function(n){var e=n;if(this.sourceRoot!=null&&(e=$t.relative(this.sourceRoot,e)),this._sources.has(e))return this._sources.indexOf(e);var t;for(t=0;t<this._absoluteSources.length;++t)if(this._absoluteSources[t]==n)return t;return-1};sa.fromSourceMap=function(e,t){var i=Object.create(sa.prototype),s=i._names=US.fromArray(e._names.toArray(),!0),r=i._sources=US.fromArray(e._sources.toArray(),!0);i.sourceRoot=e._sourceRoot,i.sourcesContent=e._generateSourcesContent(i._sources.toArray(),i.sourceRoot),i.file=e._file,i._sourceMapURL=t,i._absoluteSources=i._sources.toArray().map(function(f){return $t.computeSourceURL(i.sourceRoot,f,t)});for(var o=e._mappings.toArray().slice(),a=i.__generatedMappings=[],l=i.__originalMappings=[],c=0,u=o.length;c<u;c++){var h=o[c],d=new DCe;d.generatedLine=h.generatedLine,d.generatedColumn=h.generatedColumn,h.source&&(d.source=r.indexOf(h.source),d.originalLine=h.originalLine,d.originalColumn=h.originalColumn,h.name&&(d.name=s.indexOf(h.name)),l.push(d)),a.push(d)}return aT(i.__originalMappings,$t.compareByOriginalPositions),i};sa.prototype._version=3;Object.defineProperty(sa.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function DCe(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}sa.prototype._parseMappings=function(e,t){for(var i=1,s=0,r=0,o=0,a=0,l=0,c=e.length,u=0,h={},d={},f=[],p=[],g,m,_,b,w;u<c;)if(e.charAt(u)===";")i++,u++,s=0;else if(e.charAt(u)===",")u++;else{for(g=new DCe,g.generatedLine=i,b=u;b<c&&!this._charIsMappingSeparator(e,b);b++);if(m=e.slice(u,b),_=h[m],_)u+=m.length;else{for(_=[];u<b;)wet.decode(e,u,d),w=d.value,u=d.rest,_.push(w);if(_.length===2)throw new Error("Found a source, but no line and column");if(_.length===3)throw new Error("Found a source and line, but no column");h[m]=_}g.generatedColumn=s+_[0],s=g.generatedColumn,_.length>1&&(g.source=a+_[1],a+=_[1],g.originalLine=r+_[2],r=g.originalLine,g.originalLine+=1,g.originalColumn=o+_[3],o=g.originalColumn,_.length>4&&(g.name=l+_[4],l+=_[4])),p.push(g),typeof g.originalLine=="number"&&f.push(g)}aT(p,$t.compareByGeneratedPositionsDeflated),this.__generatedMappings=p,aT(f,$t.compareByOriginalPositions),this.__originalMappings=f};sa.prototype._findMapping=function(e,t,i,s,r,o){if(e[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[i]);if(e[s]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[s]);return vJ.search(e,t,r,o)};sa.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var i=this._generatedMappings[e+1];if(t.generatedLine===i.generatedLine){t.lastGeneratedColumn=i.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}};sa.prototype.originalPositionFor=function(e){var t={generatedLine:$t.getArg(e,"line"),generatedColumn:$t.getArg(e,"column")},i=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",$t.compareByGeneratedPositionsDeflated,$t.getArg(e,"bias",Os.GREATEST_LOWER_BOUND));if(i>=0){var s=this._generatedMappings[i];if(s.generatedLine===t.generatedLine){var r=$t.getArg(s,"source",null);r!==null&&(r=this._sources.at(r),r=$t.computeSourceURL(this.sourceRoot,r,this._sourceMapURL));var o=$t.getArg(s,"name",null);return o!==null&&(o=this._names.at(o)),{source:r,line:$t.getArg(s,"originalLine",null),column:$t.getArg(s,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}};sa.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return e==null}):!1};sa.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var i=this._findSourceIndex(e);if(i>=0)return this.sourcesContent[i];var s=e;this.sourceRoot!=null&&(s=$t.relative(this.sourceRoot,s));var r;if(this.sourceRoot!=null&&(r=$t.urlParse(this.sourceRoot))){var o=s.replace(/^file:\/\//,"");if(r.scheme=="file"&&this._sources.has(o))return this.sourcesContent[this._sources.indexOf(o)];if((!r.path||r.path=="/")&&this._sources.has("/"+s))return this.sourcesContent[this._sources.indexOf("/"+s)]}if(t)return null;throw new Error('"'+s+'" is not in the SourceMap.')};sa.prototype.generatedPositionFor=function(e){var t=$t.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};var i={source:t,originalLine:$t.getArg(e,"line"),originalColumn:$t.getArg(e,"column")},s=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",$t.compareByOriginalPositions,$t.getArg(e,"bias",Os.GREATEST_LOWER_BOUND));if(s>=0){var r=this._originalMappings[s];if(r.source===i.source)return{line:$t.getArg(r,"generatedLine",null),column:$t.getArg(r,"generatedColumn",null),lastColumn:$t.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};bB.BasicSourceMapConsumer=sa;function hd(n,e){var t=n;typeof n=="string"&&(t=$t.parseSourceMapInput(n));var i=$t.getArg(t,"version"),s=$t.getArg(t,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new US,this._names=new US;var r={line:-1,column:0};this._sections=s.map(function(o){if(o.url)throw new Error("Support for url field in sections not implemented.");var a=$t.getArg(o,"offset"),l=$t.getArg(a,"line"),c=$t.getArg(a,"column");if(l<r.line||l===r.line&&c<r.column)throw new Error("Section offsets must be ordered and non-overlapping.");return r=a,{generatedOffset:{generatedLine:l+1,generatedColumn:c+1},consumer:new Os($t.getArg(o,"map"),e)}})}hd.prototype=Object.create(Os.prototype);hd.prototype.constructor=Os;hd.prototype._version=3;Object.defineProperty(hd.prototype,"sources",{get:function(){for(var n=[],e=0;e<this._sections.length;e++)for(var t=0;t<this._sections[e].consumer.sources.length;t++)n.push(this._sections[e].consumer.sources[t]);return n}});hd.prototype.originalPositionFor=function(e){var t={generatedLine:$t.getArg(e,"line"),generatedColumn:$t.getArg(e,"column")},i=vJ.search(t,this._sections,function(r,o){var a=r.generatedLine-o.generatedOffset.generatedLine;return a||r.generatedColumn-o.generatedOffset.generatedColumn}),s=this._sections[i];return s?s.consumer.originalPositionFor({line:t.generatedLine-(s.generatedOffset.generatedLine-1),column:t.generatedColumn-(s.generatedOffset.generatedLine===t.generatedLine?s.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}};hd.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})};hd.prototype.sourceContentFor=function(e,t){for(var i=0;i<this._sections.length;i++){var s=this._sections[i],r=s.consumer.sourceContentFor(e,!0);if(r)return r}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')};hd.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var i=this._sections[t];if(i.consumer._findSourceIndex($t.getArg(e,"source"))!==-1){var s=i.consumer.generatedPositionFor(e);if(s){var r={line:s.line+(i.generatedOffset.generatedLine-1),column:s.column+(i.generatedOffset.generatedLine===s.line?i.generatedOffset.generatedColumn-1:0)};return r}}}return{line:null,column:null}};hd.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var s=this._sections[i],r=s.consumer._generatedMappings,o=0;o<r.length;o++){var a=r[o],l=s.consumer._sources.at(a.source);l=$t.computeSourceURL(s.consumer.sourceRoot,l,this._sourceMapURL),this._sources.add(l),l=this._sources.indexOf(l);var c=null;a.name&&(c=s.consumer._names.at(a.name),this._names.add(c),c=this._names.indexOf(c));var u={source:l,generatedLine:a.generatedLine+(s.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(s.generatedOffset.generatedLine===a.generatedLine?s.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:c};this.__generatedMappings.push(u),typeof u.originalLine=="number"&&this.__originalMappings.push(u)}aT(this.__generatedMappings,$t.compareByGeneratedPositionsDeflated),aT(this.__originalMappings,$t.compareByOriginalPositions)};bB.IndexedSourceMapConsumer=hd;var NCe={},Cet=dJ.SourceMapGenerator,BO=Jx,xet=/(\r?\n)/,Let=10,eL="$$$isSourceNode$$$";function Kc(n,e,t,i,s){this.children=[],this.sourceContents={},this.line=n??null,this.column=e??null,this.source=t??null,this.name=s??null,this[eL]=!0,i!=null&&this.add(i)}Kc.fromStringWithSourceMap=function(e,t,i){var s=new Kc,r=e.split(xet),o=0,a=function(){var d=p(),f=p()||"";return d+f;function p(){return o<r.length?r[o++]:void 0}},l=1,c=0,u=null;return t.eachMapping(function(d){if(u!==null)if(l<d.generatedLine)h(u,a()),l++,c=0;else{var f=r[o]||"",p=f.substr(0,d.generatedColumn-c);r[o]=f.substr(d.generatedColumn-c),c=d.generatedColumn,h(u,p),u=d;return}for(;l<d.generatedLine;)s.add(a()),l++;if(c<d.generatedColumn){var f=r[o]||"";s.add(f.substr(0,d.generatedColumn)),r[o]=f.substr(d.generatedColumn),c=d.generatedColumn}u=d},this),o<r.length&&(u&&h(u,a()),s.add(r.splice(o).join(""))),t.sources.forEach(function(d){var f=t.sourceContentFor(d);f!=null&&(i!=null&&(d=BO.join(i,d)),s.setSourceContent(d,f))}),s;function h(d,f){if(d===null||d.source===void 0)s.add(f);else{var p=i?BO.join(i,d.source):d.source;s.add(new Kc(d.originalLine,d.originalColumn,p,f,d.name))}}};Kc.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(t){this.add(t)},this);else if(e[eL]||typeof e=="string")e&&this.children.push(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this};Kc.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else if(e[eL]||typeof e=="string")this.children.unshift(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this};Kc.prototype.walk=function(e){for(var t,i=0,s=this.children.length;i<s;i++)t=this.children[i],t[eL]?t.walk(e):t!==""&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})};Kc.prototype.join=function(e){var t,i,s=this.children.length;if(s>0){for(t=[],i=0;i<s-1;i++)t.push(this.children[i]),t.push(e);t.push(this.children[i]),this.children=t}return this};Kc.prototype.replaceRight=function(e,t){var i=this.children[this.children.length-1];return i[eL]?i.replaceRight(e,t):typeof i=="string"?this.children[this.children.length-1]=i.replace(e,t):this.children.push("".replace(e,t)),this};Kc.prototype.setSourceContent=function(e,t){this.sourceContents[BO.toSetString(e)]=t};Kc.prototype.walkSourceContents=function(e){for(var t=0,i=this.children.length;t<i;t++)this.children[t][eL]&&this.children[t].walkSourceContents(e);for(var s=Object.keys(this.sourceContents),t=0,i=s.length;t<i;t++)e(BO.fromSetString(s[t]),this.sourceContents[s[t]])};Kc.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e};Kc.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},i=new Cet(e),s=!1,r=null,o=null,a=null,l=null;return this.walk(function(c,u){t.code+=c,u.source!==null&&u.line!==null&&u.column!==null?((r!==u.source||o!==u.line||a!==u.column||l!==u.name)&&i.addMapping({source:u.source,original:{line:u.line,column:u.column},generated:{line:t.line,column:t.column},name:u.name}),r=u.source,o=u.line,a=u.column,l=u.name,s=!0):s&&(i.addMapping({generated:{line:t.line,column:t.column}}),r=null,s=!1);for(var h=0,d=c.length;h<d;h++)c.charCodeAt(h)===Let?(t.line++,t.column=0,h+1===d?(r=null,s=!1):s&&i.addMapping({source:u.source,original:{line:u.line,column:u.column},generated:{line:t.line,column:t.column},name:u.name})):t.column++}),this.walkSourceContents(function(c,u){i.setSourceContent(c,u)}),{code:t.code,map:i}};NCe.SourceNode=Kc;mB.SourceMapGenerator=dJ.SourceMapGenerator;mB.SourceMapConsumer=bB.SourceMapConsumer;mB.SourceNode=NCe.SourceNode;var ACe=mB,Rle=ACe.SourceMapConsumer,Eet=ACe.SourceMapGenerator,ket=Iet;function Iet(n,e){if(!n)return e;if(!e)return n;var t=new Rle(n),i=new Rle(e),s=new Eet;i.eachMapping(function(o){if(o.originalLine!=null){var a=t.originalPositionFor({line:o.originalLine,column:o.originalColumn});a.source!=null&&s.addMapping({original:{line:a.line,column:a.column},generated:{line:o.generatedLine,column:o.generatedColumn},source:a.source,name:a.name})}});var r=[t,i];return r.forEach(function(o){o.sources.forEach(function(a){s._sources.add(a);var l=o.sourceContentFor(a);l!=null&&s.setSourceContent(a,l)})}),s._sourceRoot=n.sourceRoot,s._file=n.file,JSON.parse(s.toString())}var bJ=H6(ket),Tet=Object.defineProperty,Det=Object.defineProperties,Net=Object.getOwnPropertyDescriptors,Mle=Object.getOwnPropertySymbols,Aet=Object.prototype.hasOwnProperty,Pet=Object.prototype.propertyIsEnumerable,Ole=(n,e,t)=>e in n?Tet(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,yJ=(n,e)=>{for(var t in e||(e={}))Aet.call(e,t)&&Ole(n,t,e[t]);if(Mle)for(var t of Mle(e))Pet.call(e,t)&&Ole(n,t,e[t]);return n},wJ=(n,e)=>Det(n,Net(e));const PCe=(n,e,t,i=require)=>{const s=i("sass"),r=wJ(yJ({},t),{data:RCe(n,t.filename,t.additionalData),file:t.filename,outFile:t.filename,sourceMap:!!e});try{const o=s.renderSync(r),a=o.stats.includedFiles;return e?{code:o.css.toString(),map:bJ(e,JSON.parse(o.map.toString())),errors:[],dependencies:a}:{code:o.css.toString(),errors:[],dependencies:a}}catch(o){return{code:"",errors:[o],dependencies:[]}}},Ret=(n,e,t,i)=>PCe(n,e,wJ(yJ({},t),{indentedSyntax:!0}),i),Met=(n,e,t,i=require)=>{const s=i("less");let r,o=null;if(s.render(RCe(n,t.filename,t.additionalData),wJ(yJ({},t),{syncImport:!0}),(l,c)=>{o=l,r=c}),o)return{code:"",errors:[o],dependencies:[]};const a=r.imports;return e?{code:r.css.toString(),map:bJ(e,r.map),errors:[],dependencies:a}:{code:r.css.toString(),errors:[],dependencies:a}},Fle=(n,e,t,i=require)=>{const s=i("stylus");try{const r=s(n,t);e&&r.set("sourcemap",{inline:!1,comment:!1});const o=r.render(),a=r.deps();return e?{code:o,map:bJ(e,r.sourcemap),errors:[],dependencies:a}:{code:o,errors:[],dependencies:a}}catch(r){return{code:"",errors:[r],dependencies:[]}}};function RCe(n,e,t){return t?abe(t)?t(n,e):t+n:n}const Oet={less:Met,sass:Ret,scss:PCe,styl:Fle,stylus:Fle};var Fet=Object.defineProperty,Bet=Object.defineProperties,Wet=Object.getOwnPropertyDescriptors,Ble=Object.getOwnPropertySymbols,Vet=Object.prototype.hasOwnProperty,Het=Object.prototype.propertyIsEnumerable,Wle=(n,e,t)=>e in n?Fet(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,yB=(n,e)=>{for(var t in e||(e={}))Vet.call(e,t)&&Wle(n,t,e[t]);if(Ble)for(var t of Ble(e))Het.call(e,t)&&Wle(n,t,e[t]);return n},CJ=(n,e)=>Bet(n,Wet(e));function $et(n){return MCe(CJ(yB({},n),{isAsync:!1}))}function zet(n){return MCe(CJ(yB({},n),{isAsync:!0}))}function MCe(n){const{filename:e,id:t,scoped:i=!1,trim:s=!0,isProd:r=!1,modules:o=!1,modulesOptions:a={},preprocessLang:l,postcssOptions:c,postcssPlugins:u}=n,h=l&&Oet[l],d=h&&Uet(n,h),f=d?d.map:n.inMap||n.map,p=d?d.code:n.source,g=t.replace(/^data-v-/,""),m=`data-v-${g}`,_=(u||[]).slice();_.unshift(Vye({id:g,isProd:r})),s&&_.push(iCe()),i&&_.push(wCe(m));let b;if(o)throw new Error("[@vue/compiler-sfc] `modules` option is not supported in the browser build.");const w=CJ(yB({},c),{to:e,from:e});f&&(w.map={inline:!1,annotation:!1,prev:f});let C,S,x;const k=new Set(d?d.dependencies:[]);k.delete(e);const L=[];d&&d.errors.length&&L.push(...d.errors);const E=A=>(A.forEach(I=>{I.type==="dependency"&&k.add(I.file)}),k);try{if(C=Fs(_).process(p,w),n.isAsync)return C.then(A=>({code:A.css||"",map:A.map&&A.map.toJSON(),errors:L,modules:b,rawResult:A,dependencies:E(A.messages)})).catch(A=>({code:"",map:void 0,errors:[...L,A],rawResult:void 0,dependencies:k}));E(C.messages),S=C.css,x=C.map}catch(A){L.push(A)}return{code:S||"",map:x&&x.toJSON(),errors:L,rawResult:C,dependencies:k}}function Uet(n,e){if(!n.preprocessCustomRequire)throw new Error("[@vue/compiler-sfc] Style preprocessing in the browser build must provide the `preprocessCustomRequire` option to return the in-browser version of the preprocessor.");return e(n.source,n.inMap||n.map,yB({filename:n.filename},n.preprocessOptions),n.preprocessCustomRequire)}const Xd="Unknown";function SJ(n,e){switch(n.type){case"StringLiteral":case"NumericLiteral":return String(n.value);case"Identifier":if(!e)return n.name}}function Vle(n){return n.filter(e=>!!e).join(", ")}function OCe(n){return n.type.endsWith("Literal")}function rl(n,e){return!!(n&&e&&n.type==="CallExpression"&&n.callee.type==="Identifier"&&(typeof e=="string"?n.callee.name===e:e(n.callee.name)))}function Bw(n){return n.length>1?`[${n.join(", ")}]`:n[0]}function T$(n){return n.type==="ImportSpecifier"?n.imported.type==="Identifier"?n.imported.name:n.imported.value:n.type==="ImportNamespaceSpecifier"?"*":"default"}function Fy(n){return n.type==="Identifier"?n.name:n.type==="StringLiteral"?n.value:null}const jet=(Pg.posix||Pg).normalize,qet=/\\/g;function xJ(n){return jet(n.replace(qet,"/"))}const Ck=(Pg.posix||Pg).join,Ket=/[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~\-]/;function FCe(n){return Ket.test(n)?JSON.stringify(n):n}function BCe(n){for(const e of n)if(e.type==="ExportDefaultDeclaration"&&e.declaration.type==="ObjectExpression")return Get(e.declaration);return{}}function Get(n){const e={};Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!1});for(const t of n.properties)if(t.type==="ObjectProperty"&&!t.computed&&t.key.type==="Identifier"){if(t.key.name==="props")for(const i of N$(t.value))e[i]="props";else if(t.key.name==="inject")for(const i of N$(t.value))e[i]="options";else if(t.value.type==="ObjectExpression"&&(t.key.name==="computed"||t.key.name==="methods"))for(const i of D$(t.value))e[i]="options"}else if(t.type==="ObjectMethod"&&t.key.type==="Identifier"&&(t.key.name==="setup"||t.key.name==="data")){for(const i of t.body.body)if(i.type==="ReturnStatement"&&i.argument&&i.argument.type==="ObjectExpression")for(const s of D$(i.argument))e[s]=t.key.name==="setup"?"setup-maybe-ref":"data"}return e}function D$(n){const e=[];for(const t of n.properties){if(t.type==="SpreadElement")continue;const i=SJ(t.key,t.computed);i&&e.push(String(i))}return e}function Xet(n){const e=[];for(const t of n.elements)t&&t.type==="StringLiteral"&&e.push(t.value);return e}function N$(n){return n.type==="ArrayExpression"?Xet(n):n.type==="ObjectExpression"?D$(n):[]}const Yet=44,Zet=59,Hle="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",WCe=new Uint8Array(64),Qet=new Uint8Array(128);for(let n=0;n<Hle.length;n++){const e=Hle.charCodeAt(n);WCe[n]=e,Qet[e]=n}function YL(n,e,t){let i=e-t;i=i<0?-i<<1|1:i<<1;do{let s=i&31;i>>>=5,i>0&&(s|=32),n.write(WCe[s])}while(i>0);return e}const $le=1024*16,zle=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(n){return Buffer.from(n.buffer,n.byteOffset,n.byteLength).toString()}}:{decode(n){let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}};class Jet{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array($le)}write(e){const{buffer:t}=this;t[this.pos++]=e,this.pos===$le&&(this.out+=zle.decode(t),this.pos=0)}flush(){const{buffer:e,out:t,pos:i}=this;return i>0?t+zle.decode(e.subarray(0,i)):t}}function ett(n){const e=new Jet;let t=0,i=0,s=0,r=0;for(let o=0;o<n.length;o++){const a=n[o];if(o>0&&e.write(Zet),a.length===0)continue;let l=0;for(let c=0;c<a.length;c++){const u=a[c];c>0&&e.write(Yet),l=YL(e,u[0],l),u.length!==1&&(t=YL(e,u[1],t),i=YL(e,u[2],i),s=YL(e,u[3],s),u.length!==4&&(r=YL(e,u[4],r)))}}return e.flush()}class WO{constructor(e){this.bits=e instanceof WO?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}}class lT{constructor(e,t,i){this.start=e,this.end=t,this.original=i,this.intro="",this.outro="",this.content=i,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){const e=new lT(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e}contains(e){return this.start<e&&e<this.end}eachNext(e){let t=this;for(;t;)e(t),t=t.next}eachPrevious(e){let t=this;for(;t;)e(t),t=t.previous}edit(e,t,i){return this.content=e,i||(this.intro="",this.outro=""),this.storeName=t,this.edited=!0,this}prependLeft(e){this.outro=e+this.outro}prependRight(e){this.intro=e+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(e){const t=e-this.start,i=this.original.slice(0,t),s=this.original.slice(t);this.original=i;const r=new lT(e,this.end,s);return r.outro=this.outro,this.outro="",this.end=e,this.edited?(r.edit("",!1),this.content=""):this.content=i,r.next=this.next,r.next&&(r.next.previous=r),r.previous=this,this.next=r,r}toString(){return this.intro+this.content+this.outro}trimEnd(e){if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;const t=this.content.replace(e,"");if(t.length)return t!==this.content&&(this.split(this.start+t.length).edit("",void 0,!0),this.edited&&this.edit(t,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(e,""),this.intro.length)return!0}trimStart(e){if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;const t=this.content.replace(e,"");if(t.length){if(t!==this.content){const i=this.split(this.end-t.length);this.edited&&i.edit(t,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(e,""),this.outro.length)return!0}}function ttt(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?n=>globalThis.btoa(unescape(encodeURIComponent(n))):typeof Buffer=="function"?n=>Buffer.from(n,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}const itt=ttt();class ntt{constructor(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=ett(e.mappings),typeof e.x_google_ignoreList<"u"&&(this.x_google_ignoreList=e.x_google_ignoreList)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+itt(this.toString())}}function stt(n){const e=n.split(` +`),t=e.filter(r=>/^\t+/.test(r)),i=e.filter(r=>/^ {2,}/.test(r));if(t.length===0&&i.length===0)return null;if(t.length>=i.length)return" ";const s=i.reduce((r,o)=>{const a=/^ +/.exec(o)[0].length;return Math.min(a,r)},1/0);return new Array(s+1).join(" ")}function rtt(n,e){const t=n.split(/[/\\]/),i=e.split(/[/\\]/);for(t.pop();t[0]===i[0];)t.shift(),i.shift();if(t.length){let s=t.length;for(;s--;)t[s]=".."}return t.concat(i).join("/")}const ott=Object.prototype.toString;function att(n){return ott.call(n)==="[object Object]"}function Ule(n){const e=n.split(` +`),t=[];for(let i=0,s=0;i<e.length;i++)t.push(s),s+=e[i].length+1;return function(s){let r=0,o=t.length;for(;r<o;){const c=r+o>>1;s<t[c]?o=c:r=c+1}const a=r-1,l=s-t[a];return{line:a,column:l}}}const ltt=/\w/;class ctt{constructor(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(e,t,i,s){if(t.length){const r=t.length-1;let o=t.indexOf(` +`,0),a=-1;for(;o>=0&&r>o;){const c=[this.generatedCodeColumn,e,i.line,i.column];s>=0&&c.push(s),this.rawSegments.push(c),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=o,o=t.indexOf(` +`,o+1)}const l=[this.generatedCodeColumn,e,i.line,i.column];s>=0&&l.push(s),this.rawSegments.push(l),this.advance(t.slice(a+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(t));this.pending=null}addUneditedChunk(e,t,i,s,r){let o=t.start,a=!0,l=!1;for(;o<t.end;){if(this.hires||a||r.has(o)){const c=[this.generatedCodeColumn,e,s.line,s.column];this.hires==="boundary"?ltt.test(i[o])?l||(this.rawSegments.push(c),l=!0):(this.rawSegments.push(c),l=!1):this.rawSegments.push(c)}i[o]===` +`?(s.line+=1,s.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0):(s.column+=1,this.generatedCodeColumn+=1,a=!1),o+=1}this.pending=null}advance(e){if(!e)return;const t=e.split(` +`);if(t.length>1){for(let i=0;i<t.length-1;i++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=t[t.length-1].length}}const ZL=` +`,Z0={insertLeft:!1,insertRight:!1,storeName:!1};class x0{constructor(e,t={}){const i=new lT(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:i},lastChunk:{writable:!0,value:i},lastSearchedChunk:{writable:!0,value:i},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:t.filename},indentExclusionRanges:{writable:!0,value:t.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new WO},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:t.ignoreList}}),this.byStart[0]=i,this.byEnd[e.length]=i}addSourcemapLocation(e){this.sourcemapLocations.add(e)}append(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.outro+=e,this}appendLeft(e,t){if(typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);const i=this.byEnd[e];return i?i.appendLeft(t):this.intro+=t,this}appendRight(e,t){if(typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);const i=this.byStart[e];return i?i.appendRight(t):this.outro+=t,this}clone(){const e=new x0(this.original,{filename:this.filename});let t=this.firstChunk,i=e.firstChunk=e.lastSearchedChunk=t.clone();for(;t;){e.byStart[i.start]=i,e.byEnd[i.end]=i;const s=t.next,r=s&&s.clone();r&&(i.next=r,r.previous=i,i=r),t=s}return e.lastChunk=i,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new WO(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e}generateDecodedMap(e){e=e||{};const t=0,i=Object.keys(this.storedNames),s=new ctt(e.hires),r=Ule(this.original);return this.intro&&s.advance(this.intro),this.firstChunk.eachNext(o=>{const a=r(o.start);o.intro.length&&s.advance(o.intro),o.edited?s.addEdit(t,o.content,a,o.storeName?i.indexOf(o.original):-1):s.addUneditedChunk(t,o,this.original,a,this.sourcemapLocations),o.outro.length&&s.advance(o.outro)}),{file:e.file?e.file.split(/[/\\]/).pop():void 0,sources:[e.source?rtt(e.file||"",e.source):e.file||""],sourcesContent:e.includeContent?[this.original]:void 0,names:i,mappings:s.raw,x_google_ignoreList:this.ignoreList?[t]:void 0}}generateMap(e){return new ntt(this.generateDecodedMap(e))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=stt(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(e,t){const i=/^[^\r\n]/gm;if(att(e)&&(t=e,e=void 0),e===void 0&&(this._ensureindentStr(),e=this.indentStr||" "),e==="")return this;t=t||{};const s={};t.exclude&&(typeof t.exclude[0]=="number"?[t.exclude]:t.exclude).forEach(u=>{for(let h=u[0];h<u[1];h+=1)s[h]=!0});let r=t.indentStart!==!1;const o=c=>r?`${e}${c}`:(r=!0,c);this.intro=this.intro.replace(i,o);let a=0,l=this.firstChunk;for(;l;){const c=l.end;if(l.edited)s[a]||(l.content=l.content.replace(i,o),l.content.length&&(r=l.content[l.content.length-1]===` +`));else for(a=l.start;a<c;){if(!s[a]){const u=this.original[a];u===` +`?r=!0:u!=="\r"&&r&&(r=!1,a===l.start||(this._splitChunk(l,a),l=l.next),l.prependRight(e))}a+=1}a=l.end,l=l.next}return this.outro=this.outro.replace(i,o),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(e,t){return Z0.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),Z0.insertLeft=!0),this.appendLeft(e,t)}insertRight(e,t){return Z0.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),Z0.insertRight=!0),this.prependRight(e,t)}move(e,t,i){if(i>=e&&i<=t)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(t),this._split(i);const s=this.byStart[e],r=this.byEnd[t],o=s.previous,a=r.next,l=this.byStart[i];if(!l&&r===this.lastChunk)return this;const c=l?l.previous:this.lastChunk;return o&&(o.next=a),a&&(a.previous=o),c&&(c.next=s),l&&(l.previous=r),s.previous||(this.firstChunk=r.next),r.next||(this.lastChunk=s.previous,this.lastChunk.next=null),s.previous=c,r.next=l||null,c||(this.firstChunk=s),l||(this.lastChunk=r),this}overwrite(e,t,i,s){return s=s||{},this.update(e,t,i,{...s,overwrite:!s.contentOnly})}update(e,t,i,s){if(typeof i!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(t),s===!0&&(Z0.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Z0.storeName=!0),s={storeName:!0});const r=s!==void 0?s.storeName:!1,o=s!==void 0?s.overwrite:!1;if(r){const c=this.original.slice(e,t);Object.defineProperty(this.storedNames,c,{writable:!0,value:!0,enumerable:!0})}const a=this.byStart[e],l=this.byEnd[t];if(a){let c=a;for(;c!==l;){if(c.next!==this.byStart[c.end])throw new Error("Cannot overwrite across a split point");c=c.next,c.edit("",!1)}a.edit(i,r,!o)}else{const c=new lT(e,t,"").edit(i,r);l.next=c,c.previous=l}return this}prepend(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this}prependLeft(e,t){if(typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);const i=this.byEnd[e];return i?i.prependLeft(t):this.intro=t+this.intro,this}prependRight(e,t){if(typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);const i=this.byStart[e];return i?i.prependRight(t):this.outro=t+this.outro,this}remove(e,t){if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let i=this.byStart[e];for(;i;)i.intro="",i.outro="",i.edit(""),i=t>i.end?this.byStart[i.end]:null;return this}reset(e,t){if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let i=this.byStart[e];for(;i;)i.reset(),i=t>i.end?this.byStart[i.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let e=this.outro.lastIndexOf(ZL);if(e!==-1)return this.outro.substr(e+1);let t=this.outro,i=this.lastChunk;do{if(i.outro.length>0){if(e=i.outro.lastIndexOf(ZL),e!==-1)return i.outro.substr(e+1)+t;t=i.outro+t}if(i.content.length>0){if(e=i.content.lastIndexOf(ZL),e!==-1)return i.content.substr(e+1)+t;t=i.content+t}if(i.intro.length>0){if(e=i.intro.lastIndexOf(ZL),e!==-1)return i.intro.substr(e+1)+t;t=i.intro+t}}while(i=i.previous);return e=this.intro.lastIndexOf(ZL),e!==-1?this.intro.substr(e+1)+t:this.intro+t}slice(e=0,t=this.original.length){if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}let i="",s=this.firstChunk;for(;s&&(s.start>e||s.end<=e);){if(s.start<t&&s.end>=t)return i;s=s.next}if(s&&s.edited&&s.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);const r=s;for(;s;){s.intro&&(r!==s||s.start===e)&&(i+=s.intro);const o=s.start<t&&s.end>=t;if(o&&s.edited&&s.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);const a=r===s?e-s.start:0,l=o?s.content.length+t-s.end:s.content.length;if(i+=s.content.slice(a,l),s.outro&&(!o||s.end===t)&&(i+=s.outro),o)break;s=s.next}return i}snip(e,t){const i=this.clone();return i.remove(0,e),i.remove(t,i.original.length),i}_split(e){if(this.byStart[e]||this.byEnd[e])return;let t=this.lastSearchedChunk;const i=e>t.end;for(;t;){if(t.contains(e))return this._splitChunk(t,e);t=i?this.byStart[t.end]:this.byEnd[t.start]}}_splitChunk(e,t){if(e.edited&&e.content.length){const s=Ule(this.original)(t);throw new Error(`Cannot split a chunk that has already been edited (${s.line}:${s.column} – "${e.original}")`)}const i=e.split(t);return this.byEnd[t]=e,this.byStart[t]=i,this.byEnd[i.end]=i,e===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=e,!0}toString(){let e=this.intro,t=this.firstChunk;for(;t;)e+=t.toString(),t=t.next;return e+this.outro}isEmpty(){let e=this.firstChunk;do if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1;while(e=e.next);return!0}length(){let e=this.firstChunk,t=0;do t+=e.intro.length+e.content.length+e.outro.length;while(e=e.next);return t}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){const t=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;let i=this.lastChunk;do{const s=i.end,r=i.trimEnd(t);if(i.end!==s&&(this.lastChunk===i&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),r)return!0;i=i.previous}while(i);return!1}trimEnd(e){return this.trimEndAborted(e),this}trimStartAborted(e){const t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;let i=this.firstChunk;do{const s=i.end,r=i.trimStart(t);if(i.end!==s&&(i===this.lastChunk&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),r)return!0;i=i.next}while(i);return!1}trimStart(e){return this.trimStartAborted(e),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,t){function i(r,o){return typeof t=="string"?t.replace(/\$(\$|&|\d+)/g,(a,l)=>l==="$"?"$":l==="&"?r[0]:+l<r.length?r[+l]:`$${l}`):t(...r,r.index,o,r.groups)}function s(r,o){let a;const l=[];for(;a=r.exec(o);)l.push(a);return l}if(e.global)s(e,this.original).forEach(o=>{if(o.index!=null){const a=i(o,this.original);a!==o[0]&&this.overwrite(o.index,o.index+o[0].length,a)}});else{const r=this.original.match(e);if(r&&r.index!=null){const o=i(r,this.original);o!==r[0]&&this.overwrite(r.index,r.index+r[0].length,o)}}return this}_replaceString(e,t){const{original:i}=this,s=i.indexOf(e);return s!==-1&&this.overwrite(s,s+e.length,t),this}replace(e,t){return typeof e=="string"?this._replaceString(e,t):this._replaceRegexp(e,t)}_replaceAllString(e,t){const{original:i}=this,s=e.length;for(let r=i.indexOf(e);r!==-1;r=i.indexOf(e,r+s))i.slice(r,r+s)!==t&&this.overwrite(r,r+s,t);return this}replaceAll(e,t){if(typeof e=="string")return this._replaceAllString(e,t);if(!e.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(e,t)}}var jle,qle;class utt{constructor(e,t){this.descriptor=e,this.options=t,this.isCE=!1,this.source=this.descriptor.source,this.filename=this.descriptor.filename,this.s=new x0(this.source),this.startOffset=(jle=this.descriptor.scriptSetup)==null?void 0:jle.loc.start.offset,this.endOffset=(qle=this.descriptor.scriptSetup)==null?void 0:qle.loc.end.offset,this.userImports=Object.create(null),this.hasDefinePropsCall=!1,this.hasDefineEmitCall=!1,this.hasDefineExposeCall=!1,this.hasDefaultExportName=!1,this.hasDefaultExportRender=!1,this.hasDefineOptionsCall=!1,this.hasDefineSlotsCall=!1,this.hasDefineModelCall=!1,this.propsDestructuredBindings=Object.create(null),this.modelDecls=Object.create(null),this.bindingMetadata={},this.helperImports=new Set;const{script:i,scriptSetup:s}=e,r=i&&i.lang,o=s&&s.lang;this.isJS=r==="js"||r==="jsx"||o==="js"||o==="jsx",this.isTS=r==="ts"||r==="tsx"||o==="ts"||o==="tsx";const a=t.customElement,l=this.descriptor.filename;a&&(this.isCE=typeof a=="boolean"?a:a(l));const c=VO(r||o,t.babelParserPlugins);function u(h,d){try{return Oy(h,{plugins:c,sourceType:"module"}).program}catch(f){throw f.message=`[vue/compiler-sfc] ${f.message} + +${e.filename} +${AS(e.source,f.pos+d,f.pos+d+1)}`,f}}this.scriptAst=e.script&&u(e.script.content,e.script.loc.start.offset),this.scriptSetupAst=e.scriptSetup&&u(e.scriptSetup.content,this.startOffset)}helper(e){return this.helperImports.add(e),`_${e}`}getString(e,t=!0){return(t?this.descriptor.scriptSetup:this.descriptor.script).content.slice(e.start,e.end)}error(e,t,i){const s=i?i.offset:this.startOffset;throw new Error(`[@vue/compiler-sfc] ${e} + +${(i||this.descriptor).filename} +${AS((i||this.descriptor).source,t.start+s,t.end+s)}`)}}function VO(n,e,t=!1){const i=[];return(!e||!e.some(s=>s==="importAssertions"||s==="importAttributes"||Lo(s)&&s[0]==="importAttributes"))&&i.push("importAttributes"),n==="jsx"||n==="tsx"||n==="mtsx"?i.push("jsx"):e&&(e=e.filter(s=>s!=="jsx")),(n==="ts"||n==="mts"||n==="tsx"||n==="mtsx")&&(i.push(["typescript",{dts:t}],"explicitResourceManagement"),(!e||!e.includes("decorators"))&&i.push("decorators-legacy")),e&&i.push(...e),i}function htt(n,e,t){const i=Oy(n,{sourceType:"module",plugins:VO("js",t)}).program.body,s=new x0(n);return LJ(i,s,e),s.toString()}function LJ(n,e,t){if(!dtt(n)){e.append(` +const ${t} = {}`);return}n.forEach(i=>{if(i.type==="ExportDefaultDeclaration")if(i.declaration.type==="ClassDeclaration"&&i.declaration.id){let s=i.declaration.decorators&&i.declaration.decorators.length>0?i.declaration.decorators[i.declaration.decorators.length-1].end:i.start;e.overwrite(s,i.declaration.id.start," class "),e.append(` +const ${t} = ${i.declaration.id.name}`)}else e.overwrite(i.start,i.declaration.start,`const ${t} = `);else if(i.type==="ExportNamedDeclaration"){for(const s of i.specifiers)if(s.type==="ExportSpecifier"&&s.exported.type==="Identifier"&&s.exported.name==="default"){if(i.source)if(s.local.name==="default"){e.prepend(`import { default as __VUE_DEFAULT__ } from '${i.source.value}' +`);const o=f7(e,s.local.end,i.end);e.remove(s.start,o),e.append(` +const ${t} = __VUE_DEFAULT__`);continue}else{e.prepend(`import { ${e.slice(s.local.start,s.local.end)} as __VUE_DEFAULT__ } from '${i.source.value}' +`);const o=f7(e,s.exported.end,i.end);e.remove(s.start,o),e.append(` +const ${t} = __VUE_DEFAULT__`);continue}const r=f7(e,s.end,i.end);e.remove(s.start,r),e.append(` +const ${t} = ${s.local.name}`)}}})}function dtt(n){for(const e of n){if(e.type==="ExportDefaultDeclaration")return!0;if(e.type==="ExportNamedDeclaration"&&e.specifiers.some(t=>t.exported.name==="default"))return!0}return!1}function f7(n,e,t){let i=!1,s=e;for(;e<t;)if(/\s/.test(n.slice(e,e+1)))e++;else if(n.slice(e,e+1)===","){e++,i=!0;break}else if(n.slice(e,e+1)==="}")break;return i?e:s}var ftt=Object.defineProperty,ptt=Object.defineProperties,gtt=Object.getOwnPropertyDescriptors,Kle=Object.getOwnPropertySymbols,mtt=Object.prototype.hasOwnProperty,_tt=Object.prototype.propertyIsEnumerable,Gle=(n,e,t)=>e in n?ftt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,vtt=(n,e)=>{for(var t in e||(e={}))mtt.call(e,t)&&Gle(n,t,e[t]);if(Kle)for(var t of Kle(e))_tt.call(e,t)&&Gle(n,t,e[t]);return n},btt=(n,e)=>ptt(n,gtt(e));const Iw="__default__";function ytt(n,e){var t;const i=n.descriptor.script;if(i.lang&&!n.isJS&&!n.isTS)return i;try{let s=i.content,r=i.map;const o=n.scriptAst,a=BCe(o.body),{cssVars:l}=n.descriptor,{genDefaultAs:c,isProd:u}=n.options;if(l.length||c){const h=c||Iw,d=new x0(s);LJ(o.body,d,h),s=d.toString(),l.length&&!((t=n.options.templateOptions)!=null&&t.ssr)&&(s+=Qqe(l,a,e,!!u,h)),c||(s+=` +export default ${h}`)}return btt(vtt({},i),{content:s,map:r,bindings:a,scriptAst:o.body})}catch{return i}}var wtt=Object.defineProperty,Ctt=Object.defineProperties,Stt=Object.getOwnPropertyDescriptors,Xle=Object.getOwnPropertySymbols,xtt=Object.prototype.hasOwnProperty,Ltt=Object.prototype.propertyIsEnumerable,Yle=(n,e,t)=>e in n?wtt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,HO=(n,e)=>{for(var t in e||(e={}))xtt.call(e,t)&&Yle(n,t,e[t]);if(Xle)for(var t of Xle(e))Ltt.call(e,t)&&Yle(n,t,e[t]);return n},$O=(n,e)=>Ctt(n,Stt(e));class EJ{constructor(e,t,i=0,s=Object.create(null),r=Object.create(null),o=Object.create(null)){this.filename=e,this.source=t,this.offset=i,this.imports=s,this.types=r,this.declares=o,this.isGenericScope=!1,this.resolvedImportSources=Object.create(null),this.exportedTypes=Object.create(null),this.exportedDeclares=Object.create(null)}}function Vo(n,e,t,i){const s=!i;if(s&&e._resolvedElements)return e._resolvedElements;const r=Ett(n,e,e._ownerScope||t||CB(n),i);return s?e._resolvedElements=r:r}function Ett(n,e,t,i){var s,r;if(e.leadingComments&&e.leadingComments.some(o=>o.value.includes("@vue-ignore")))return{props:{}};switch(e.type){case"TSTypeLiteral":return VCe(n,e.members,t,i);case"TSInterfaceDeclaration":return ktt(n,e,t,i);case"TSTypeAliasDeclaration":case"TSTypeAnnotation":case"TSParenthesizedType":return Vo(n,e.typeAnnotation,t,i);case"TSFunctionType":return{props:{},calls:[e]};case"TSUnionType":case"TSIntersectionType":return Zle(e.types.map(o=>Vo(n,o,t,i)),e.type);case"TSMappedType":return Itt(n,e,t,i);case"TSIndexedAccessType":{const o=HCe(n,e,t);return Zle(o.map(a=>Vo(n,a,a._ownerScope)),"TSUnionType")}case"TSExpressionWithTypeArguments":case"TSTypeReference":{const o=IJ(e);if((o==="ExtractPropTypes"||o==="ExtractPublicPropTypes")&&e.typeParameters&&((s=t.imports[o])==null?void 0:s.source)==="vue")return tce(Vo(n,e.typeParameters.params[0],t,i),t);const a=If(n,e,t);if(a){let l;return(a.type==="TSTypeAliasDeclaration"||a.type==="TSInterfaceDeclaration")&&a.typeParameters&&e.typeParameters&&(l=Object.create(null),a.typeParameters.params.forEach((c,u)=>{let h=i&&i[c.name];h||(h=e.typeParameters.params[u]),l[c.name]=h})),Vo(n,a,a._ownerScope,l)}else{if(typeof o=="string"){if(i&&i[o])return Vo(n,i[o],t,i);if(Ttt.has(o))return Dtt(n,e,o,t,i);if(o==="ReturnType"&&e.typeParameters){const l=$tt(n,e.typeParameters.params[0],t);if(l)return Vo(n,l,t)}}return n.error("Unresolvable type reference or unsupported built-in utility type",e,t)}}case"TSImportType":{if(Fy(e.argument)==="vue"&&((r=e.qualifier)==null?void 0:r.type)==="Identifier"&&e.qualifier.name==="ExtractPropTypes"&&e.typeParameters)return tce(Vo(n,e.typeParameters.params[0],t),t);const o=wB(n,e.argument,t,e.argument.value),a=If(n,e,o);if(a)return Vo(n,a,a._ownerScope);break}case"TSTypeQuery":{const o=If(n,e,t);if(o)return Vo(n,o,o._ownerScope)}break}return n.error(`Unresolvable type: ${e.type}`,e,t)}function VCe(n,e,t=CB(n),i){const s={props:{}};for(const r of e)if(r.type==="TSPropertySignature"||r.type==="TSMethodSignature"){i&&(t=DJ(t),t.isGenericScope=!0,Object.assign(t.types,i)),r._ownerScope=t;const o=Fy(r.key);if(o&&!r.computed)s.props[o]=r;else if(r.key.type==="TemplateLiteral")for(const a of kJ(n,r.key,t))s.props[a]=r;else n.error("Unsupported computed key in type referenced by a macro",r.key,t)}else r.type==="TSCallSignatureDeclaration"&&(s.calls||(s.calls=[])).push(r);return s}function Zle(n,e){if(n.length===1)return n[0];const t={props:{}},{props:i}=t;for(const{props:s,calls:r}of n){for(const o in s)bZ(i,o)?i[o]=Sk(i[o].key,{type:e,types:[i[o],s[o]]},i[o]._ownerScope,i[o].optional||s[o].optional):i[o]=s[o];r&&(t.calls||(t.calls=[])).push(...r)}return t}function Sk(n,e,t,i){return{type:"TSPropertySignature",key:n,kind:"get",optional:i,typeAnnotation:{type:"TSTypeAnnotation",typeAnnotation:e},_ownerScope:t}}function ktt(n,e,t,i){const s=VCe(n,e.body.body,e._ownerScope,i);if(e.extends)for(const r of e.extends)try{const{props:o,calls:a}=Vo(n,r,t);for(const l in o)bZ(s.props,l)||(s.props[l]=o[l]);a&&(s.calls||(s.calls=[])).push(...a)}catch{n.error(`Failed to resolve extends base type. +If this previously worked in 3.2, you can instruct the compiler to ignore this extend by adding /* @vue-ignore */ before it, for example: + +interface Props extends /* @vue-ignore */ Base {} + +Note: both in 3.2 or with the ignore, the properties in the base type are treated as fallthrough attrs at runtime.`,r,t)}return s}function Itt(n,e,t,i){const s={props:{}};let r;if(e.nameType){const{name:o,constraint:a}=e.typeParameter;t=DJ(t),Object.assign(t.types,$O(HO({},i),{[o]:a})),r=mf(n,e.nameType,t)}else r=mf(n,e.typeParameter.constraint,t);for(const o of r)s.props[o]=Sk({type:"Identifier",name:o},e.typeAnnotation,t,!!e.optional);return s}function HCe(n,e,t){var i,s;if(e.indexType.type==="TSNumberKeyword")return $Ce(n,e.objectType,t);const{indexType:r,objectType:o}=e,a=[];let l,c;r.type==="TSStringKeyword"?(c=Vo(n,o,t),l=Object.keys(c.props)):(l=mf(n,r,t),c=Vo(n,o,t));for(const u of l){const h=(s=(i=c.props[u])==null?void 0:i.typeAnnotation)==null?void 0:s.typeAnnotation;h&&(h._ownerScope=c.props[u]._ownerScope,a.push(h))}return a}function $Ce(n,e,t){if(e.type==="TSArrayType")return[e.elementType];if(e.type==="TSTupleType")return e.elementTypes.map(i=>i.type==="TSNamedTupleMember"?i.elementType:i);if(e.type==="TSTypeReference"){if(IJ(e)==="Array"&&e.typeParameters)return e.typeParameters.params;{const i=If(n,e,t);if(i)return $Ce(n,i,t)}}return n.error("Failed to resolve element type from target type",e,t)}function mf(n,e,t){switch(e.type){case"StringLiteral":return[e.value];case"TSLiteralType":return mf(n,e.literal,t);case"TSUnionType":return e.types.map(i=>mf(n,i,t)).flat();case"TemplateLiteral":return kJ(n,e,t);case"TSTypeReference":{const i=If(n,e,t);if(i)return mf(n,i,t);if(e.typeName.type==="Identifier"){const s=(r=0)=>mf(n,e.typeParameters.params[r],t);switch(e.typeName.name){case"Extract":return s(1);case"Exclude":{const r=s(1);return s().filter(o=>!r.includes(o))}case"Uppercase":return s().map(r=>r.toUpperCase());case"Lowercase":return s().map(r=>r.toLowerCase());case"Capitalize":return s().map(Q1);case"Uncapitalize":return s().map(r=>r[0].toLowerCase()+r.slice(1));default:n.error("Unsupported type when resolving index type",e.typeName,t)}}}}return n.error("Failed to resolve index type into finite keys",e,t)}function kJ(n,e,t){if(!e.expressions.length)return[e.quasis[0].value.raw];const i=[],s=e.expressions[0],r=e.quasis[0],o=r?r.value.raw:"",a=mf(n,s,t),l=kJ(n,$O(HO({},e),{expressions:e.expressions.slice(1),quasis:r?e.quasis.slice(1):e.quasis}),t);for(const c of a)for(const u of l)i.push(o+c+u);return i}const Ttt=new Set(["Partial","Required","Readonly","Pick","Omit"]);function Dtt(n,e,t,i,s){const r=Vo(n,e.typeParameters.params[0],i,s);switch(t){case"Partial":{const l={props:{},calls:r.calls};return Object.keys(r.props).forEach(c=>{l.props[c]=$O(HO({},r.props[c]),{optional:!0})}),l}case"Required":{const l={props:{},calls:r.calls};return Object.keys(r.props).forEach(c=>{l.props[c]=$O(HO({},r.props[c]),{optional:!1})}),l}case"Readonly":return r;case"Pick":{const l=mf(n,e.typeParameters.params[1],i),c={props:{},calls:r.calls};for(const u of l)c.props[u]=r.props[u];return c}case"Omit":const o=mf(n,e.typeParameters.params[1],i),a={props:{},calls:r.calls};for(const l in r.props)o.includes(l)||(a.props[l]=r.props[l]);return a}}function If(n,e,t,i,s=!1){const r=!(t!=null&&t.isGenericScope);if(r&&e._resolvedReference)return e._resolvedReference;const o=A$(n,t||CB(n),i||IJ(e),e,s);return r?e._resolvedReference=o:o}function A$(n,e,t,i,s){if(typeof t=="string"){if(e.imports[t])return Ptt(n,i,t,e);{const r=i.type==="TSTypeQuery"?s?e.exportedDeclares:e.declares:s?e.exportedTypes:e.types;if(r[t])return r[t];{const o=Ntt(n);if(o)for(const a of o){const l=i.type==="TSTypeQuery"?a.declares:a.types;if(l[t])return(n.deps||(n.deps=new Set)).add(a.filename),l[t]}}}}else{let r=A$(n,e,t[0],i,s);if(r&&(r.type!=="TSModuleDeclaration"&&(r=r._ns),r)){const o=Ftt(n,r,r._ownerScope||e);return A$(n,o,t.length>2?t.slice(1):t[t.length-1],i,!r.declare)}}}function IJ(n){const e=n.type==="TSTypeReference"?n.typeName:n.type==="TSExpressionWithTypeArguments"?n.expression:n.type==="TSImportType"?n.qualifier:n.exprName;return(e==null?void 0:e.type)==="Identifier"?e.name:(e==null?void 0:e.type)==="TSQualifiedName"?zCe(e):"default"}function zCe(n){return n.type==="Identifier"?[n.name]:[...zCe(n.left),n.right.name]}function Ntt(n){if(n.options.globalTypeFiles){if(!TJ(n))throw new Error("[vue/compiler-sfc] globalTypeFiles requires fs access.");return n.options.globalTypeFiles.map(t=>UCe(n,xJ(t),!0))}}let ZA,P$;function Att(n){P$=()=>{try{return n()}catch(e){throw typeof e.message=="string"&&e.message.includes("Cannot find module")?new Error('Failed to load TypeScript, which is required for resolving imported types. Please make sure "typescript" is installed as a project dependency.'):new Error("Failed to load TypeScript for resolving imported types.")}}}function TJ(n){if(n.fs)return n.fs;!ZA&&P$&&(ZA=P$());const e=n.options.fs||(ZA==null?void 0:ZA.sys);if(e)return n.fs={fileExists(t){return t.endsWith(".vue.ts")&&(t=t.replace(/\.ts$/,"")),e.fileExists(t)},readFile(t){return t.endsWith(".vue.ts")&&(t=t.replace(/\.ts$/,"")),e.readFile(t)},realpath:e.realpath}}function Ptt(n,e,t,i){const{source:s,imported:r}=i.imports[t],o=wB(n,e,i,s);return If(n,e,o,r,!0)}function wB(n,e,t,i){let s;try{s=TJ(n)}catch(o){return n.error(o.message,e,t)}if(!s)return n.error("No fs option provided to `compileScript` in non-Node environment. File system access is required for resolving imported types.",e,t);let r=t.resolvedImportSources[i];if(!r){if(i.startsWith("..")){const a=Ck(xO(t.filename),i);r=Qle(a,s)}else if(i[0]==="."){const o=Ck(xO(t.filename),i);r=Qle(o,s)}else return n.error("Type import from non-relative sources is not supported in the browser build.",e,t);r&&(r=t.resolvedImportSources[i]=xJ(r))}return r?((n.deps||(n.deps=new Set)).add(r),UCe(n,r)):n.error(`Failed to resolve import source ${JSON.stringify(i)}.`,e,t)}function Qle(n,e){n=n.replace(/\.js$/,"");const t=i=>{if(e.fileExists(i))return i};return t(n)||t(n+".ts")||t(n+".tsx")||t(n+".d.ts")||t(Ck(n,"index.ts"))||t(Ck(n,"index.tsx"))||t(Ck(n,"index.d.ts"))}const Jle=nB(),Rtt=new Map,R$=nB();function Mtt(n){n=xJ(n),R$.delete(n),Jle.delete(n);const e=Rtt.get(n);e&&Jle.delete(e)}function UCe(n,e,t=!1){const i=R$.get(e);if(i)return i;const r=TJ(n).readFile(e)||"",o=Ott(e,r,n.options.babelParserPlugins),a=new EJ(e,r,0,jCe(o));return NJ(n,o,a,t),R$.set(e,a),a}function Ott(n,e,t){const i=AQ(n);if(i===".ts"||i===".mts"||i===".tsx"||i===".mtsx")return Oy(e,{plugins:VO(i.slice(1),t,/\.d\.m?ts$/.test(n)),sourceType:"module"}).program.body;if(i===".vue"){const{descriptor:{script:s,scriptSetup:r}}=Zye(e);if(!s&&!r)return[];const o=s?s.loc.start.offset:1/0,a=r?r.loc.start.offset:1/0,l=o<a?s:r,c=o<a?r:s;let u=" ".repeat(Math.min(o,a))+l.content;c&&(u+=" ".repeat(c.loc.start.offset-s.loc.end.offset)+c.content);const h=(s==null?void 0:s.lang)||(r==null?void 0:r.lang);return Oy(u,{plugins:VO(h,t),sourceType:"module"}).program.body}return[]}function CB(n){if(n.scope)return n.scope;const e="ast"in n?n.ast:n.scriptAst?[...n.scriptAst.body,...n.scriptSetupAst.body]:n.scriptSetupAst.body,t=new EJ(n.filename,n.source,"startOffset"in n?n.startOffset:0,"userImports"in n?Object.create(n.userImports):jCe(e));return NJ(n,e,t),n.scope=t}function Ftt(n,e,t){if(e._resolvedChildScope)return e._resolvedChildScope;const i=DJ(t);if(e.body.type==="TSModuleDeclaration"){const s=e.body;s._ownerScope=i;const r=Fy(s.id);i.types[r]=i.exportedTypes[r]=s}else NJ(n,e.body.body,i);return e._resolvedChildScope=i}function DJ(n){return new EJ(n.filename,n.source,n.offset,Object.create(n.imports),Object.create(n.types),Object.create(n.declares))}const Btt=/^Import|^Export/;function NJ(n,e,t,i=!1){const{types:s,declares:r,exportedTypes:o,exportedDeclares:a,imports:l}=t,c=i?!e.some(u=>Btt.test(u.type)):!1;for(const u of e)if(i){if(c)u.declare&&Y_(u,s,r);else if(u.type==="TSModuleDeclaration"&&u.global)for(const h of u.body.body)Y_(h,s,r)}else Y_(u,s,r);if(!i)for(const u of e)if(u.type==="ExportNamedDeclaration"){if(u.declaration)Y_(u.declaration,s,r),Y_(u.declaration,o,a);else for(const h of u.specifiers)if(h.type==="ExportSpecifier"){const d=h.local.name,f=Fy(h.exported);u.source?(l[f]={source:u.source.value,imported:d},o[f]={type:"TSTypeReference",typeName:{type:"Identifier",name:d},_ownerScope:t}):s[d]&&(o[f]=s[d])}}else if(u.type==="ExportAllDeclaration"){const h=wB(n,u.source,t,u.source.value);Object.assign(t.exportedTypes,h.exportedTypes)}else u.type==="ExportDefaultDeclaration"&&u.declaration&&(u.declaration.type!=="Identifier"?(Y_(u.declaration,s,r,"default"),Y_(u.declaration,o,a,"default")):s[u.declaration.name]&&(o.default=s[u.declaration.name]));for(const u of Object.keys(s)){const h=s[u];h._ownerScope=t,h._ns&&(h._ns._ownerScope=t)}for(const u of Object.keys(r))r[u]._ownerScope=t}function Y_(n,e,t,i){switch(n.type){case"TSInterfaceDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":{const s=i||Fy(n.id);let r=e[s];if(r){if(n.type==="TSModuleDeclaration"){r.type==="TSModuleDeclaration"?AJ(r,n):ece(r,n);break}if(r.type==="TSModuleDeclaration"){e[s]=n,ece(n,r);break}if(r.type!==n.type)break;n.type==="TSInterfaceDeclaration"?r.body.body.push(...n.body.body):r.members.push(...n.members)}else e[s]=n;break}case"ClassDeclaration":(i||n.id)&&(e[i||Fy(n.id)]=n);break;case"TSTypeAliasDeclaration":e[n.id.name]=n.typeParameters?n:n.typeAnnotation;break;case"TSDeclareFunction":n.id&&(t[n.id.name]=n);break;case"VariableDeclaration":{if(n.declare)for(const s of n.declarations)s.id.type==="Identifier"&&s.id.typeAnnotation&&(t[s.id.name]=s.id.typeAnnotation.typeAnnotation);break}}}function AJ(n,e){const t=n.body,i=e.body;t.type==="TSModuleDeclaration"?i.type==="TSModuleDeclaration"?AJ(t,i):i.body.push({type:"ExportNamedDeclaration",declaration:t,exportKind:"type",specifiers:[]}):i.type==="TSModuleDeclaration"?t.body.push({type:"ExportNamedDeclaration",declaration:i,exportKind:"type",specifiers:[]}):t.body.push(...i.body)}function ece(n,e){n._ns?AJ(n._ns,e):n._ns=e}function jCe(n){const e=Object.create(null);for(const t of n)Wtt(t,e);return e}function Wtt(n,e){if(n.type==="ImportDeclaration")for(const t of n.specifiers)e[t.local.name]={imported:T$(t),source:n.source.value}}function Wo(n,e,t=e._ownerScope||CB(n),i=!1){try{switch(e.type){case"TSStringKeyword":return["String"];case"TSNumberKeyword":return["Number"];case"TSBooleanKeyword":return["Boolean"];case"TSObjectKeyword":return["Object"];case"TSNullKeyword":return["null"];case"TSTypeLiteral":case"TSInterfaceDeclaration":{const s=new Set,r=e.type==="TSTypeLiteral"?e.members:e.body.body;for(const o of r)if(i)if(o.type==="TSPropertySignature"&&o.key.type==="NumericLiteral")s.add("Number");else if(o.type==="TSIndexSignature"){const a=o.parameters[0].typeAnnotation;if(a&&a.type!=="Noop"){const l=Wo(n,a.typeAnnotation,t)[0];if(l===Xd)return[Xd];s.add(l)}}else s.add("String");else o.type==="TSCallSignatureDeclaration"||o.type==="TSConstructSignatureDeclaration"?s.add("Function"):s.add("Object");return s.size?Array.from(s):[i?Xd:"Object"]}case"TSPropertySignature":if(e.typeAnnotation)return Wo(n,e.typeAnnotation.typeAnnotation,t);break;case"TSMethodSignature":case"TSFunctionType":return["Function"];case"TSArrayType":case"TSTupleType":return["Array"];case"TSLiteralType":switch(e.literal.type){case"StringLiteral":return["String"];case"BooleanLiteral":return["Boolean"];case"NumericLiteral":case"BigIntLiteral":return["Number"];default:return[Xd]}case"TSTypeReference":{const s=If(n,e,t);if(s)return Wo(n,s,s._ownerScope,i);if(e.typeName.type==="Identifier")if(i)switch(e.typeName.name){case"String":case"Array":case"ArrayLike":case"Parameters":case"ConstructorParameters":case"ReadonlyArray":return["String","Number"];case"Record":case"Partial":case"Required":case"Readonly":if(e.typeParameters&&e.typeParameters.params[0])return Wo(n,e.typeParameters.params[0],t,!0);break;case"Pick":case"Extract":if(e.typeParameters&&e.typeParameters.params[1])return Wo(n,e.typeParameters.params[1],t);break;case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":case"Error":case"Uppercase":case"Lowercase":case"Capitalize":case"Uncapitalize":case"ReadonlyMap":case"ReadonlySet":return["String"]}else switch(e.typeName.name){case"Array":case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":case"Error":return[e.typeName.name];case"Partial":case"Required":case"Readonly":case"Record":case"Pick":case"Omit":case"InstanceType":return["Object"];case"Uppercase":case"Lowercase":case"Capitalize":case"Uncapitalize":return["String"];case"Parameters":case"ConstructorParameters":case"ReadonlyArray":return["Array"];case"ReadonlyMap":return["Map"];case"ReadonlySet":return["Set"];case"NonNullable":if(e.typeParameters&&e.typeParameters.params[0])return Wo(n,e.typeParameters.params[0],t).filter(r=>r!=="null");break;case"Extract":if(e.typeParameters&&e.typeParameters.params[1])return Wo(n,e.typeParameters.params[1],t);break;case"Exclude":case"OmitThisParameter":if(e.typeParameters&&e.typeParameters.params[0])return Wo(n,e.typeParameters.params[0],t);break}break}case"TSParenthesizedType":return Wo(n,e.typeAnnotation,t);case"TSUnionType":return p7(n,e.types,t,i);case"TSIntersectionType":return p7(n,e.types,t,i).filter(s=>s!==Xd);case"TSEnumDeclaration":return Vtt(e);case"TSSymbolKeyword":return["Symbol"];case"TSIndexedAccessType":{const s=HCe(n,e,t);return p7(n,s,t,i)}case"ClassDeclaration":return["Object"];case"TSImportType":{const s=wB(n,e.argument,t,e.argument.value),r=If(n,e,s);if(r)return Wo(n,r,r._ownerScope);break}case"TSTypeQuery":{const s=e.exprName;if(s.type==="Identifier"){const r=t.declares[s.name];if(r)return Wo(n,r,r._ownerScope,i)}break}case"TSTypeOperator":return Wo(n,e.typeAnnotation,t,e.operator==="keyof");case"TSAnyKeyword":{if(i)return["String","Number","Symbol"];break}}}catch{}return[Xd]}function p7(n,e,t,i=!1){return e.length===1?Wo(n,e[0],t,i):[...new Set([].concat(...e.map(s=>Wo(n,s,t,i))))]}function Vtt(n){const e=new Set;for(const t of n.members)if(t.initializer)switch(t.initializer.type){case"StringLiteral":e.add("String");break;case"NumericLiteral":e.add("Number");break}return e.size?[...e]:["Number"]}function tce({props:n},e){const t={props:{}};for(const i in n){const s=n[i];t.props[i]=M$(s.key,s.typeAnnotation.typeAnnotation,e)}return t}function M$(n,e,t,i=!0,s=!0){if(s&&e.type==="TSTypeLiteral"){const r=ice(e,"type");if(r){const o=ice(e,"required"),a=o&&o.type==="TSLiteralType"&&o.literal.type==="BooleanLiteral"?!o.literal.value:!0;return M$(n,r,t,a,!1)}}else if(e.type==="TSTypeReference"&&e.typeName.type==="Identifier"){if(e.typeName.name.endsWith("Constructor"))return Sk(n,Htt(e.typeName.name),t,i);if(e.typeName.name==="PropType"&&e.typeParameters)return Sk(n,e.typeParameters.params[0],t,i)}if((e.type==="TSTypeReference"||e.type==="TSImportType")&&e.typeParameters)for(const r of e.typeParameters.params){const o=M$(n,r,t,i);if(o)return o}return Sk(n,{type:"TSNullKeyword"},t,i)}function Htt(n){const e=n.slice(0,-11);switch(e){case"String":case"Number":case"Boolean":return{type:`TS${e}Keyword`};case"Array":case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":return{type:"TSTypeReference",typeName:{type:"Identifier",name:e}}}return{type:"TSNullKeyword"}}function ice(n,e){const t=n.members.find(i=>i.type==="TSPropertySignature"&&!i.computed&&Fy(i.key)===e&&i.typeAnnotation);return t&&t.typeAnnotation.typeAnnotation}function $tt(n,e,t){var i;let s=e;if((e.type==="TSTypeReference"||e.type==="TSTypeQuery"||e.type==="TSImportType")&&(s=If(n,e,t)),!!s){if(s.type==="TSFunctionType")return(i=s.typeAnnotation)==null?void 0:i.typeAnnotation;if(s.type==="TSDeclareFunction")return s.returnType}}function qCe(n,e,t){if(e.type==="TSTypeReference"){const s=If(n,e,t);s&&(e=s)}let i;return e.type==="TSUnionType"?i=e.types.flatMap(s=>qCe(n,s,t)):i=[e],i}const SB="defineModel";function nce(n,e,t){if(!rl(e,SB))return!1;n.hasDefineModelCall=!0;const i=e.typeParameters&&e.typeParameters.params[0]||void 0;let s,r;const o=e.arguments[0]&&Jc(e.arguments[0]),a=o&&o.type==="StringLiteral";a?(s=o.value,r=e.arguments[1]):(s="modelValue",r=o),n.modelDecls[s]&&n.error(`duplicate model name ${JSON.stringify(s)}`,e);let l=r&&n.getString(r),c=!r;const u=[];if(r&&r.type==="ObjectExpression"&&!r.properties.some(h=>h.type==="SpreadElement"||h.computed)){let h=0;for(let d=r.properties.length-1;d>=0;d--){const f=r.properties[d],p=r.properties[d+1],g=f.start,m=p?p.start:r.end-1;(f.type==="ObjectProperty"||f.type==="ObjectMethod")&&(f.key.type==="Identifier"&&(f.key.name==="get"||f.key.name==="set")||f.key.type==="StringLiteral"&&(f.key.value==="get"||f.key.value==="set"))?l=l.slice(0,g-r.start)+l.slice(m-r.start):(h++,n.s.remove(n.startOffset+g,n.startOffset+m),u.push(f))}h===r.properties.length&&(c=!0,n.s.remove(n.startOffset+(a?o.end:r.start),n.startOffset+r.end))}return n.modelDecls[s]={type:i,options:l,runtimeOptionNodes:u,identifier:t&&t.type==="Identifier"?t.name:void 0},n.bindingMetadata[s]="props",n.s.overwrite(n.startOffset+e.callee.start,n.startOffset+e.callee.end,n.helper("useModel")),n.s.appendLeft(n.startOffset+(e.arguments.length?e.arguments[0].start:e.end-1),"__props, "+(a?"":`${JSON.stringify(s)}${c?"":", "}`)),!0}function ztt(n){if(!n.hasDefineModelCall)return;const e=!!n.options.isProd;let t="";for(const[i,{type:s,options:r}]of Object.entries(n.modelDecls)){let o=!1,a="",l=s&&Wo(n,s);if(l){const h=l.includes("Boolean"),d=l.includes("Function");l.includes(Xd)&&(h||d?(l=l.filter(p=>p!==Xd),o=!0):l=["null"]),e?(h||r&&d)&&(a=`type: ${Bw(l)}`):a=`type: ${Bw(l)}`+(o?", skipCheck: true":"")}let c;a&&r?c=n.isTS?`{ ${a}, ...${r} }`:`Object.assign({ ${a} }, ${r})`:a?c=`{ ${a} }`:r?c=r:c="{}",t+=` + ${JSON.stringify(i)}: ${c},`;const u=JSON.stringify(i==="modelValue"?"modelModifiers":`${i}Modifiers`);t+=` + ${u}: {},`}return`{${t} + }`}const Qo="defineProps",Ev="withDefaults";function O$(n,e,t){if(!rl(e,Qo))return Utt(n,e,t);if(n.hasDefinePropsCall&&n.error(`duplicate ${Qo}() call`,e),n.hasDefinePropsCall=!0,n.propsRuntimeDecl=e.arguments[0],n.propsRuntimeDecl)for(const i of N$(n.propsRuntimeDecl))i in n.bindingMetadata||(n.bindingMetadata[i]="props");return e.typeParameters&&(n.propsRuntimeDecl&&n.error(`${Qo}() cannot accept both type and non-type arguments at the same time. Use one or the other.`,e),n.propsTypeDecl=e.typeParameters.params[0]),t&&t.type==="ObjectPattern"&&Ytt(n,t),n.propsCall=e,n.propsDecl=t,!0}function Utt(n,e,t){return rl(e,Ev)?(O$(n,e.arguments[0],t)||n.error(`${Ev}' first argument must be a ${Qo} call.`,e.arguments[0]||e),n.propsRuntimeDecl&&n.error(`${Ev} can only be used with type-based ${Qo} declaration.`,e),n.propsDestructureDecl&&n.error(`${Ev}() is unnecessary when using destructure with ${Qo}(). +Prefer using destructure default values, e.g. const { foo = 1 } = defineProps(...).`,e.callee),n.propsRuntimeDefaults=e.arguments[1],n.propsRuntimeDefaults||n.error(`The 2nd argument of ${Ev} is required.`,e),n.propsCall=e,!0):!1}function jtt(n){let e;if(n.propsRuntimeDecl){if(e=n.getString(n.propsRuntimeDecl).trim(),n.propsDestructureDecl){const i=[];for(const s in n.propsDestructuredBindings){const r=GCe(n,s),o=FCe(s);r&&i.push(`${o}: ${r.valueString}${r.needSkipFactory?`, __skip_${o}: true`:""}`)}i.length&&(e=`/*@__PURE__*/${n.helper("mergeDefaults")}(${e}, { + ${i.join(`, + `)} +})`)}}else n.propsTypeDecl&&(e=KCe(n));const t=ztt(n);return e&&t?`/*@__PURE__*/${n.helper("mergeModels")}(${e}, ${t})`:t||e}function KCe(n){const e=qtt(n,n.propsTypeDecl);if(!e.length)return;const t=[],i=Gtt(n);for(const r of e)t.push(Ktt(n,r,i)),"bindingMetadata"in n&&!(r.key in n.bindingMetadata)&&(n.bindingMetadata[r.key]="props");let s=`{ + ${t.join(`, + `)} + }`;return n.propsRuntimeDefaults&&!i&&(s=`/*@__PURE__*/${n.helper("mergeDefaults")}(${s}, ${n.getString(n.propsRuntimeDefaults)})`),s}function qtt(n,e){const t=[],i=Vo(n,e);for(const s in i.props){const r=i.props[s];let o=Wo(n,r),a=!1;o.includes(Xd)&&(o.includes("Boolean")||o.includes("Function")?(o=o.filter(l=>l!==Xd),a=!0):o=["null"]),t.push({key:s,required:!r.optional,type:o||["null"],skipCheck:a})}return t}function Ktt(n,{key:e,required:t,type:i,skipCheck:s},r){let o;const a=GCe(n,e,i);if(a)o=`default: ${a.valueString}${a.needSkipFactory?", skipFactory: true":""}`;else if(r){const c=n.propsRuntimeDefaults.properties.find(u=>u.type==="SpreadElement"?!1:SJ(u.key,u.computed)===e);c&&(c.type==="ObjectProperty"?o=`default: ${n.getString(c.value)}`:o=`${c.async?"async ":""}${c.kind!=="method"?`${c.kind} `:""}default() ${n.getString(c.body)}`)}const l=FCe(e);return n.options.isProd?i.some(c=>c==="Boolean"||(!r||o)&&c==="Function")?`${l}: { ${Vle([`type: ${Bw(i)}`,o])} }`:n.isCE?o?`${l}: ${`{ ${o}, type: ${Bw(i)} }`}`:`${l}: {type: ${Bw(i)}}`:`${l}: ${o?`{ ${o} }`:"{}"}`:`${l}: { ${Vle([`type: ${Bw(i)}`,`required: ${t}`,s&&"skipCheck: true",o])} }`}function Gtt(n){return!!(n.propsRuntimeDefaults&&n.propsRuntimeDefaults.type==="ObjectExpression"&&n.propsRuntimeDefaults.properties.every(e=>e.type!=="SpreadElement"&&(!e.computed||e.key.type.endsWith("Literal"))))}function GCe(n,e,t){const i=n.propsDestructuredBindings[e],s=i&&i.default;if(s){const r=n.getString(s),o=Jc(s);if(t&&t.length&&!t.includes("null")){const c=Xtt(o);c&&!t.includes(c)&&n.error(`Default value of prop "${e}" does not match declared type.`,o)}const a=!t&&(Jm(o)||o.type==="Identifier");return{valueString:!a&&!OCe(o)&&!(t!=null&&t.includes("Function"))?`() => (${r})`:r,needSkipFactory:a}}}function Xtt(n){switch(n.type){case"StringLiteral":return"String";case"NumericLiteral":return"Number";case"BooleanLiteral":return"Boolean";case"ObjectExpression":return"Object";case"ArrayExpression":return"Array";case"FunctionExpression":case"ArrowFunctionExpression":return"Function"}}function Ytt(n,e){if(n.options.propsDestructure==="error")n.error("Props destructure is explicitly prohibited via config.",e);else if(n.options.propsDestructure===!1)return;n.propsDestructureDecl=e;const t=(i,s,r)=>{n.propsDestructuredBindings[i]={local:s,default:r},s!==i&&(n.bindingMetadata[s]="props-aliased",(n.bindingMetadata.__propsAliases||(n.bindingMetadata.__propsAliases={}))[s]=i)};for(const i of e.properties)if(i.type==="ObjectProperty"){const s=SJ(i.key,i.computed);if(s||n.error(`${Qo}() destructure cannot use computed key.`,i.key),i.value.type==="AssignmentPattern"){const{left:r,right:o}=i.value;r.type!=="Identifier"&&n.error(`${Qo}() destructure does not support nested patterns.`,r),t(s,r.name,o)}else i.value.type==="Identifier"?t(s,i.value.name):n.error(`${Qo}() destructure does not support nested patterns.`,i.value)}else n.propsDestructureRestId=i.argument.name,n.bindingMetadata[n.propsDestructureRestId]="setup-reactive-const"}function Ztt(n,e){if(n.options.propsDestructure===!1)return;const t={},i=[t];let s=t;const r=new WeakSet,o=[],a=Object.create(null);for(const m in n.propsDestructuredBindings){const{local:_}=n.propsDestructuredBindings[m];t[_]=!0,a[_]=m}function l(){i.push(s=Object.create(s))}function c(){i.pop(),s=i[i.length-1]||null}function u(m){r.add(m),s?s[m.name]=!1:n.error("registerBinding called without active scope, something is wrong.",m)}function h(m,_=!1){for(const b of m.body)if(b.type==="VariableDeclaration")d(b,_);else if(b.type==="FunctionDeclaration"||b.type==="ClassDeclaration"){if(b.declare||!b.id)continue;u(b.id)}else(b.type==="ForOfStatement"||b.type==="ForInStatement")&&b.left.type==="VariableDeclaration"?d(b.left):b.type==="ExportNamedDeclaration"&&b.declaration&&b.declaration.type==="VariableDeclaration"?d(b.declaration,_):b.type==="LabeledStatement"&&b.body.type==="VariableDeclaration"&&d(b.body,_)}function d(m,_=!1){if(!m.declare)for(const b of m.declarations){const w=_&&b.init&&rl(Jc(b.init),"defineProps");for(const C of Pc(b.id))w?r.add(C):u(C)}}function f(m,_,b){(_.type==="AssignmentExpression"&&m===_.left||_.type==="UpdateExpression")&&n.error("Cannot assign to destructured props as they are readonly.",m),zx(_)&&_.shorthand?(!_.inPattern||$x(_,b))&&n.s.appendLeft(m.end+n.startOffset,`: ${lO(a[m.name])}`):n.s.overwrite(m.start+n.startOffset,m.end+n.startOffset,lO(a[m.name]))}function p(m,_,b=_){if(rl(m,b)){const w=Jc(m.arguments[0]);w.type==="Identifier"&&s[w.name]&&n.error(`"${w.name}" is a destructured prop and should not be passed directly to ${_}(). Pass a getter () => ${w.name} instead.`,w)}}const g=n.scriptSetupAst;h(g,!0),U6(g,{enter(m,_){if(_&&o.push(_),_&&_.type.startsWith("TS")&&_.type!=="TSAsExpression"&&_.type!=="TSNonNullExpression"&&_.type!=="TSTypeAssertion")return this.skip();if(p(m,"watch",e.watch),p(m,"toRef",e.toRef),Jm(m)){l(),jZ(m,u),m.body.type==="BlockStatement"&&h(m.body);return}if(m.type==="CatchClause"){l(),m.param&&m.param.type==="Identifier"&&u(m.param),h(m.body);return}if(m.type==="BlockStatement"&&!Jm(_)){l(),h(m);return}m.type==="Identifier"&&UZ(m,_,o)&&!r.has(m)&&s[m.name]&&f(m,_,o)},leave(m,_){_&&o.pop(),(m.type==="BlockStatement"&&!Jm(_)||Jm(m))&&c()}})}const _b="defineEmits";function sce(n,e,t){return rl(e,_b)?(n.hasDefineEmitCall&&n.error(`duplicate ${_b}() call`,e),n.hasDefineEmitCall=!0,n.emitsRuntimeDecl=e.arguments[0],e.typeParameters&&(n.emitsRuntimeDecl&&n.error(`${_b}() cannot accept both type and non-type arguments at the same time. Use one or the other.`,e),n.emitsTypeDecl=e.typeParameters.params[0]),n.emitDecl=t,!0):!1}function Qtt(n){let e="";if(n.emitsRuntimeDecl)e=n.getString(n.emitsRuntimeDecl).trim();else if(n.emitsTypeDecl){const t=XCe(n);e=t.size?`[${Array.from(t).map(i=>JSON.stringify(i)).join(", ")}]`:""}if(n.hasDefineModelCall){let t=`[${Object.keys(n.modelDecls).map(i=>JSON.stringify(`update:${i}`)).join(", ")}]`;e=e?`/*@__PURE__*/${n.helper("mergeModels")}(${e}, ${t})`:t}return e}function XCe(n){const e=new Set,t=n.emitsTypeDecl;if(t.type==="TSFunctionType")return rce(n,t.parameters[0],e),e;const{props:i,calls:s}=Vo(n,t);let r=!1;for(const o in i)e.add(o),r=!0;if(s){r&&n.error("defineEmits() type cannot mixed call signature and property syntax.",t);for(const o of s)rce(n,o.parameters[0],e)}return e}function rce(n,e,t){if(e.type==="Identifier"&&e.typeAnnotation&&e.typeAnnotation.type==="TSTypeAnnotation"){const i=qCe(n,e.typeAnnotation.typeAnnotation);for(const s of i)s.type==="TSLiteralType"&&s.literal.type!=="UnaryExpression"&&s.literal.type!=="TemplateLiteral"&&t.add(String(s.literal.value))}}const zO="defineExpose";function Jtt(n,e){return rl(e,zO)?(n.hasDefineExposeCall&&n.error(`duplicate ${zO}() call`,e),n.hasDefineExposeCall=!0,!0):!1}const RC="defineSlots";function oce(n,e,t){return rl(e,RC)?(n.hasDefineSlotsCall&&n.error(`duplicate ${RC}() call`,e),n.hasDefineSlotsCall=!0,e.arguments.length>0&&n.error(`${RC}() cannot accept arguments`,e),t&&n.s.overwrite(n.startOffset+e.start,n.startOffset+e.end,`${n.helper("useSlots")}()`),!0):!1}const Ud="defineOptions";function ace(n,e){if(!rl(e,Ud))return!1;if(n.hasDefineOptionsCall&&n.error(`duplicate ${Ud}() call`,e),e.typeParameters&&n.error(`${Ud}() cannot accept type arguments`,e),!e.arguments[0])return!0;n.hasDefineOptionsCall=!0,n.optionsRuntimeDecl=Jc(e.arguments[0]);let t,i,s,r;if(n.optionsRuntimeDecl.type==="ObjectExpression"){for(const o of n.optionsRuntimeDecl.properties)if((o.type==="ObjectProperty"||o.type==="ObjectMethod")&&o.key.type==="Identifier")switch(o.key.name){case"props":t=o;break;case"emits":i=o;break;case"expose":s=o;break;case"slots":r=o;break}}return t&&n.error(`${Ud}() cannot be used to declare props. Use ${Qo}() instead.`,t),i&&n.error(`${Ud}() cannot be used to declare emits. Use ${_b}() instead.`,i),s&&n.error(`${Ud}() cannot be used to declare expose. Use ${zO}() instead.`,s),r&&n.error(`${Ud}() cannot be used to declare slots. Use ${RC}() instead.`,r),!0}function eit(n,e,t,i){const s=e.argument.extra&&e.argument.extra.parenthesized?e.argument.extra.parenStart:e.argument.start,r=n.startOffset,o=n.descriptor.source.slice(s+r,e.argument.end+r),a=/\bawait\b/.test(o);n.s.overwrite(e.start+r,s+r,`${t?";":""}( + ([__temp,__restore] = ${n.helper("withAsyncContext")}(${a?"async ":""}() => `),n.s.appendLeft(e.end+r,`)), + ${i?"":"__temp = "}await __temp, + __restore()${i?"":`, + __temp`} +)`)}var tit=Object.defineProperty,iit=Object.defineProperties,nit=Object.getOwnPropertyDescriptors,lce=Object.getOwnPropertySymbols,sit=Object.prototype.hasOwnProperty,rit=Object.prototype.propertyIsEnumerable,cce=(n,e,t)=>e in n?tit(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,QL=(n,e)=>{for(var t in e||(e={}))sit.call(e,t)&&cce(n,t,e[t]);if(lce)for(var t of lce(e))rit.call(e,t)&&cce(n,t,e[t]);return n},g7=(n,e)=>iit(n,nit(e));const oit=[Qo,_b,zO,Ud,RC,SB,Ev];function ait(n,e){var t,i,s;e.id||wk("compileScript now requires passing the `id` option.\nUpgrade your vite or vue-loader version for compatibility with the latest experimental proposals.");const r=new utt(n,e),{script:o,scriptSetup:a,source:l,filename:c}=n,u=e.hoistStatic!==!1&&!o,h=e.id?e.id.replace(/^data-v-/,""):"",d=o&&o.lang,f=a&&a.lang;if(!a){if(!o)throw new Error("[@vue/compiler-sfc] SFC contains no <script> tags.");return ytt(r,h)}if(o&&d!==f)throw new Error("[@vue/compiler-sfc] <script> and <script setup> must have the same language type.");if(f&&!r.isJS&&!r.isTS)return a;const p=Object.create(null),g=Object.create(null);let m,_=!1,b=!1;const w=r.startOffset,C=r.endOffset,S=o&&o.loc.start.offset,x=o&&o.loc.end.offset;function k(z){const K=z.start+w;let Z=z.end+w;for(z.trailingComments&&z.trailingComments.length>0&&(Z=z.trailingComments[z.trailingComments.length-1].end+w);Z<=l.length&&/\s/.test(l.charAt(Z));)Z++;r.s.move(K,Z,0)}function L(z,K,Z,j,ce,ie){let de=ie;ie&&r.isTS&&n.template&&!n.template.src&&!n.template.lang&&(de=Kye(K,n)),r.userImports[K]={isType:j,imported:Z,local:K,source:z,isFromSetup:ce,isUsedInTemplate:de}}function E(z,K){z&&Hx(z,Z=>{const j=g[Z.name];j&&j!=="literal-const"&&r.error(`\`${K}()\` in <script setup> cannot reference locally declared variables because it will be hoisted outside of the setup() function. If your component options require initialization in the module scope, use a separate normal <script> to export the options instead.`,Z)})}const A=r.scriptAst,I=r.scriptSetupAst;if(A){for(const z of A.body)if(z.type==="ImportDeclaration")for(const K of z.specifiers){const Z=T$(K);L(z.source.value,K.local.name,Z,z.importKind==="type"||K.type==="ImportSpecifier"&&K.importKind==="type",!1,!e.inlineTemplate)}}for(const z of I.body)if(z.type==="ImportDeclaration"){k(z);let K=0;const Z=j=>{const ce=j>K;K++;const ie=z.specifiers[j],de=z.specifiers[j+1];r.s.remove(ce?z.specifiers[j-1].end+w:ie.start+w,de&&!ce?de.start+w:ie.end+w)};for(let j=0;j<z.specifiers.length;j++){const ce=z.specifiers[j],ie=ce.local.name,de=T$(ce),Le=z.source.value,Te=r.userImports[ie];Le==="vue"&&oit.includes(de)?(ie===de?wk(`\`${de}\` is a compiler macro and no longer needs to be imported.`):r.error(`\`${de}\` is a compiler macro and cannot be aliased to a different name.`,ce),Z(j)):Te?Te.source===Le&&Te.imported===de?Z(j):r.error("different imports aliased to same local name.",ce):L(Le,ie,de,z.importKind==="type"||ce.type==="ImportSpecifier"&&ce.importKind==="type",!0,!e.inlineTemplate)}z.specifiers.length&&K===z.specifiers.length&&r.s.remove(z.start+w,z.end+w)}const T={};for(const z in r.userImports){const{source:K,imported:Z,local:j}=r.userImports[z];K==="vue"&&(T[Z]=j)}if(o&&A){for(const z of A.body)if(z.type==="ExportDefaultDeclaration"){m=z;let K;if(m.declaration.type==="ObjectExpression"?K=m.declaration.properties:m.declaration.type==="CallExpression"&&m.declaration.arguments[0]&&m.declaration.arguments[0].type==="ObjectExpression"&&(K=m.declaration.arguments[0].properties),K)for(const ce of K)ce.type==="ObjectProperty"&&ce.key.type==="Identifier"&&ce.key.name==="name"&&(r.hasDefaultExportName=!0),(ce.type==="ObjectMethod"||ce.type==="ObjectProperty")&&ce.key.type==="Identifier"&&ce.key.name==="render"&&(r.hasDefaultExportRender=!0);const Z=z.start+S,j=z.declaration.start+S;r.s.overwrite(Z,j,`const ${Iw} = `)}else if(z.type==="ExportNamedDeclaration"){const K=z.specifiers.find(Z=>Z.exported.type==="Identifier"&&Z.exported.name==="default");K&&(m=z,z.specifiers.length>1?r.s.remove(K.start+S,K.end+S):r.s.remove(z.start+S,z.end+S),z.source?r.s.prepend(`import { ${K.local.name} as ${Iw} } from '${z.source.value}' +`):r.s.appendLeft(x,` +const ${Iw} = ${K.local.name} +`)),z.declaration&&m7("script",z.declaration,p,T,u)}else(z.type==="VariableDeclaration"||z.type==="FunctionDeclaration"||z.type==="ClassDeclaration"||z.type==="TSEnumDeclaration")&&!z.declare&&m7("script",z,p,T,u);S>w&&(/\n$/.test(o.content.trim())||r.s.appendLeft(x,` +`),r.s.move(S,x,0))}for(const z of I.body){if(z.type==="ExpressionStatement"){const Z=Jc(z.expression);if(O$(r,Z)||sce(r,Z)||ace(r,Z)||oce(r,Z))r.s.remove(z.start+w,z.end+w);else if(Jtt(r,Z)){const j=Z.callee;r.s.overwrite(j.start+w,j.end+w,"__expose")}else nce(r,Z)}if(z.type==="VariableDeclaration"&&!z.declare){const Z=z.declarations.length;let j=Z,ce;for(let ie=0;ie<Z;ie++){const de=z.declarations[ie],Le=de.init&&Jc(de.init);if(Le){ace(r,Le)&&r.error(`${Ud}() has no returning value, it cannot be assigned.`,z);const Te=O$(r,Le,de.id);r.propsDestructureRestId&&(g[r.propsDestructureRestId]="setup-reactive-const");const ve=!Te&&sce(r,Le,de.id);if(!ve&&(oce(r,Le,de.id)||nce(r,Le,de.id)),Te&&!r.propsDestructureRestId&&r.propsDestructureDecl)if(j===1)r.s.remove(z.start+w,z.end+w);else{let Ke=de.start+w,Q=de.end+w;ie===Z-1?Ke=z.declarations[ce].end+w:Q=z.declarations[ie+1].start+w,r.s.remove(Ke,Q),j--}else ve?r.s.overwrite(w+Le.start,w+Le.end,"__emit"):ce=ie}}}let K=!1;if((z.type==="VariableDeclaration"||z.type==="FunctionDeclaration"||z.type==="ClassDeclaration"||z.type==="TSEnumDeclaration")&&!z.declare&&(K=m7("scriptSetup",z,g,T,u,!!r.propsDestructureDecl)),u&&K&&k(z),z.type==="VariableDeclaration"&&!z.declare||z.type.endsWith("Statement")){const Z=[I.body];U6(z,{enter(j,ce){if(Jm(j)&&this.skip(),j.type==="BlockStatement"&&Z.push(j.body),j.type==="AwaitExpression"){_=!0;const de=Z[Z.length-1].some((Le,Te)=>(Z.length===1||Te>0)&&Le.type==="ExpressionStatement"&&Le.start===j.start);eit(r,j,de,ce.type==="ExpressionStatement")}},exit(j){j.type==="BlockStatement"&&Z.pop()}})}(z.type==="ExportNamedDeclaration"&&z.exportKind!=="type"||z.type==="ExportAllDeclaration"||z.type==="ExportDefaultDeclaration")&&r.error("<script setup> cannot contain ES module exports. If you are using a previous version of <script setup>, please consult the updated RFC at https://github.com/vuejs/rfcs/pull/227.",z),r.isTS&&(z.type.startsWith("TS")||z.type==="ExportNamedDeclaration"&&z.exportKind==="type"||z.type==="VariableDeclaration"&&z.declare)&&z.type!=="TSEnumDeclaration"&&k(z)}r.propsDestructureDecl&&Ztt(r,T),E(r.propsRuntimeDecl,Qo),E(r.propsRuntimeDefaults,Qo),E(r.propsDestructureDecl,Qo),E(r.emitsRuntimeDecl,_b),E(r.optionsRuntimeDecl,Ud);for(const{runtimeOptionNodes:z}of Object.values(r.modelDecls))for(const K of z)E(K,SB);o?w<S?(r.s.remove(0,w),r.s.remove(C,S),r.s.remove(x,l.length)):(r.s.remove(0,S),r.s.remove(x,w),r.s.remove(C,l.length)):(r.s.remove(0,w),r.s.remove(C,l.length)),A&&Object.assign(r.bindingMetadata,BCe(A.body));for(const[z,{isType:K,imported:Z,source:j}]of Object.entries(r.userImports))K||(r.bindingMetadata[z]=Z==="*"||Z==="default"&&j.endsWith(".vue")||j==="vue"?"setup-const":"setup-maybe-ref");for(const z in p)r.bindingMetadata[z]=p[z];for(const z in g)r.bindingMetadata[z]=g[z];n.cssVars.length&&!((t=e.templateOptions)!=null&&t.ssr)&&(r.helperImports.add(CO),r.helperImports.add("unref"),r.s.prependLeft(w,` +${Hye(n.cssVars,r.bindingMetadata,h,!!e.isProd)} +`));let N="__props";if(r.propsTypeDecl&&(N+=": any"),r.propsDecl&&(r.propsDestructureRestId?(r.s.overwrite(w+r.propsCall.start,w+r.propsCall.end,`${r.helper("createPropsRestProxy")}(__props, ${JSON.stringify(Object.keys(r.propsDestructuredBindings))})`),r.s.overwrite(w+r.propsDestructureDecl.start,w+r.propsDestructureDecl.end,r.propsDestructureRestId)):r.propsDestructureDecl||r.s.overwrite(w+r.propsCall.start,w+r.propsCall.end,"__props")),_){const z=r.isTS?": any":"";r.s.prependLeft(w,` +let __temp${z}, __restore${z} +`)}const M=r.hasDefineExposeCall||!e.inlineTemplate?["expose: __expose"]:[];r.emitDecl&&M.push("emit: __emit"),M.length&&(N+=`, { ${M.join(", ")} }`);let V;if(!e.inlineTemplate||!n.template&&r.hasDefaultExportRender){const z=QL(QL({},p),g);for(const K in r.userImports)!r.userImports[K].isType&&r.userImports[K].isUsedInTemplate&&(z[K]=!0);V="{ ";for(const K in z)if(z[K]===!0&&r.userImports[K].source!=="vue"&&!r.userImports[K].source.endsWith(".vue"))V+=`get ${K}() { return ${K} }, `;else if(r.bindingMetadata[K]==="setup-let"){const Z=K==="v"?"_v":"v";V+=`get ${K}() { return ${K} }, set ${K}(${Z}) { ${K} = ${Z} }, `}else V+=`${K}, `;V=V.replace(/, $/,"")+" }"}else if(n.template&&!n.template.src){e.templateOptions&&e.templateOptions.ssr&&(b=!0);const{code:z,ast:K,preamble:Z,tips:j,errors:ce}=cwe(g7(QL({filename:c,ast:n.template.ast,source:n.template.content,inMap:n.template.map},e.templateOptions),{id:h,scoped:n.styles.some(de=>de.scoped),isProd:e.isProd,ssrCssVars:n.cssVars,compilerOptions:g7(QL({},e.templateOptions&&e.templateOptions.compilerOptions),{inline:!0,isTS:r.isTS,bindingMetadata:r.bindingMetadata})}));j.length&&j.forEach(wk);const ie=ce[0];if(typeof ie=="string")throw new Error(ie);if(ie)throw ie.loc&&(ie.message+=` + +`+n.filename+` +`+AS(l,ie.loc.start.offset,ie.loc.end.offset)+` +`),ie;Z&&r.s.prepend(Z),K&&K.helpers.has(MS)&&r.helperImports.delete("unref"),V=z}else V="() => {}";e.inlineTemplate?r.s.appendRight(C,` +return ${V} +} + +`):r.s.appendRight(C,` +const __returned__ = ${V} +Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true }) +return __returned__ +} + +`);const W=e.genDefaultAs?`const ${e.genDefaultAs} =`:"export default";let B="";if(!r.hasDefaultExportName&&c&&c!==Yye){const z=c.match(/([^/\\]+)\.\w+$/);z&&(B+=` + __name: '${z[1]}',`)}b&&(B+=` + __ssrInlineRender: true,`);const $=jtt(r);$&&(B+=` + props: ${$},`);const Y=Qtt(r);Y&&(B+=` + emits: ${Y},`);let le="";r.optionsRuntimeDecl&&(le=a.content.slice(r.optionsRuntimeDecl.start,r.optionsRuntimeDecl.end).trim());const re=r.hasDefineExposeCall||e.inlineTemplate?"":` __expose(); +`;if(r.isTS){const z=(m?` + ...${Iw},`:"")+(le?` + ...${le},`:"");r.s.prependLeft(w,` +${W} /*@__PURE__*/${r.helper("defineComponent")}({${z}${B} + ${_?"async ":""}setup(${N}) { +${re}`),r.s.appendRight(C,"})")}else m||le?(r.s.prependLeft(w,` +${W} /*@__PURE__*/Object.assign(${m?`${Iw}, `:""}${le?`${le}, `:""}{${B} + ${_?"async ":""}setup(${N}) { +${re}`),r.s.appendRight(C,"})")):(r.s.prependLeft(w,` +${W} {${B} + ${_?"async ":""}setup(${N}) { +${re}`),r.s.appendRight(C,"}"));if(r.helperImports.size>0){const z=(s=(i=e.templateOptions)==null?void 0:i.compilerOptions)==null?void 0:s.runtimeModuleName,K=z?JSON.stringify(z):"'vue'";r.s.prepend(`import { ${[...r.helperImports].map(Z=>`${Z} as _${Z}`).join(", ")} } from ${K} +`)}return g7(QL({},a),{bindings:r.bindingMetadata,imports:r.userImports,content:r.s.toString(),map:e.sourceMap!==!1?r.s.generateMap({source:c,hires:!0,includeContent:!0}):void 0,scriptAst:A==null?void 0:A.body,scriptSetupAst:I==null?void 0:I.body,deps:r.deps?[...r.deps]:void 0})}function MC(n,e,t){n[e.name]=t}function m7(n,e,t,i,s,r=!1){let o=!1;if(e.type==="VariableDeclaration"){const a=e.kind==="const";o=a&&e.declarations.every(l=>l.id.type==="Identifier"&&hh(l.init));for(const{id:l,init:c}of e.declarations){const u=c&&Jc(c),h=a&&rl(u,d=>d===Qo||d===_b||d===Ev||d===RC);if(l.type==="Identifier"){let d;const f=i.reactive;(s||n==="script")&&(o||a&&hh(u))?d="literal-const":rl(u,f)?d=a?"setup-reactive-const":"setup-let":h||a&&QCe(u,f)?d=rl(u,Qo)?"setup-reactive-const":"setup-const":a?rl(u,p=>p===i.ref||p===i.computed||p===i.shallowRef||p===i.customRef||p===i.toRef||p===SB)?d="setup-ref":d="setup-maybe-ref":d="setup-let",MC(t,l,d)}else{if(rl(u,Qo)&&r)continue;l.type==="ObjectPattern"?YCe(l,t,a,h):l.type==="ArrayPattern"&&ZCe(l,t,a,h)}}}else e.type==="TSEnumDeclaration"?(o=e.members.every(a=>!a.initializer||hh(a.initializer)),t[e.id.name]=o?"literal-const":"setup-const"):(e.type==="FunctionDeclaration"||e.type==="ClassDeclaration")&&(t[e.id.name]="setup-const");return o}function YCe(n,e,t,i=!1){for(const s of n.properties)if(s.type==="ObjectProperty")if(s.key.type==="Identifier"&&s.key===s.value){const r=i?"setup-const":t?"setup-maybe-ref":"setup-let";MC(e,s.key,r)}else PJ(s.value,e,t,i);else{const r=t?"setup-const":"setup-let";MC(e,s.argument,r)}}function ZCe(n,e,t,i=!1){for(const s of n.elements)s&&PJ(s,e,t,i)}function PJ(n,e,t,i=!1){if(n.type==="Identifier")MC(e,n,i?"setup-const":t?"setup-maybe-ref":"setup-let");else if(n.type==="RestElement"){const s=t?"setup-const":"setup-let";MC(e,n.argument,s)}else if(n.type==="ObjectPattern")YCe(n,e,t);else if(n.type==="ArrayPattern")ZCe(n,e,t);else if(n.type==="AssignmentPattern")if(n.left.type==="Identifier"){const s=i?"setup-const":t?"setup-maybe-ref":"setup-let";MC(e,n.left,s)}else PJ(n.left,e,t)}function QCe(n,e){if(rl(n,e))return!0;switch(n.type){case"UnaryExpression":case"BinaryExpression":case"ArrayExpression":case"ObjectExpression":case"FunctionExpression":case"ArrowFunctionExpression":case"UpdateExpression":case"ClassExpression":case"TaggedTemplateExpression":return!0;case"SequenceExpression":return QCe(n.expressions[n.expressions.length-1],e);default:return!!OCe(n)}}function hh(n){switch(n=Jc(n),n.type){case"UnaryExpression":return hh(n.argument);case"LogicalExpression":case"BinaryExpression":return hh(n.left)&&hh(n.right);case"ConditionalExpression":return hh(n.test)&&hh(n.consequent)&&hh(n.alternate);case"SequenceExpression":case"TemplateLiteral":return n.expressions.every(e=>hh(e));case"ParenthesizedExpression":return hh(n.expression);case"StringLiteral":case"NumericLiteral":case"BooleanLiteral":case"NullLiteral":case"BigIntLiteral":return!0}return!1}var lit=Object.defineProperty,uce=Object.getOwnPropertySymbols,cit=Object.prototype.hasOwnProperty,uit=Object.prototype.propertyIsEnumerable,hce=(n,e,t)=>e in n?lit(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,dce=(n,e)=>{for(var t in e||(e={}))cit.call(e,t)&&hce(n,t,e[t]);if(uce)for(var t of uce(e))uit.call(e,t)&&hce(n,t,e[t]);return n};const hit="3.5.3",dit=DH,fit=dce(dce({},NZ),LQ),JCe=U6,pit=()=>!1,fce=Object.freeze(Object.defineProperty({__proto__:null,MagicString:x0,babelParse:Oy,compileScript:ait,compileStyle:$et,compileStyleAsync:zet,compileTemplate:cwe,errorMessages:fit,extractIdentifiers:Pc,extractRuntimeEmits:XCe,extractRuntimeProps:KCe,generateCodeFrame:AS,inferRuntimeType:Wo,invalidateTypeCache:Mtt,isInDestructureAssignment:$x,isStaticProperty:zx,parse:Zye,parseCache:dit,registerTS:Att,resolveTypeElements:Vo,rewriteDefault:htt,rewriteDefaultAST:LJ,shouldTransformRef:pit,version:hit,walk:JCe,walkIdentifiers:Hx},Symbol.toStringTag,{value:"Module"}));var qh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function git(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}const mit=Et({__name:"SplitPane",props:{layout:{}},setup(n){const e=n,t=Ee(()=>e.layout==="vertical"),i=Nx("container"),s=Si(Gve),{store:r}=Si(b0),o=Ee(()=>r.value.showOutput),a=ia({dragging:!1,split:50,viewHeight:0,viewWidth:0}),l=Ee(()=>{const{split:g}=a;return g<20?20:g>80?80:g});let c=0,u=0;function h(g){a.dragging=!0,c=t.value?g.pageY:g.pageX,u=l.value,p()}function d(g){if(i.value&&a.dragging){const m=t.value?g.pageY:g.pageX,_=t.value?i.value.offsetHeight:i.value.offsetWidth,b=m-c;a.split=u+ +(b/_*100).toFixed(2),p()}}function f(){a.dragging=!1}function p(){const g=s.value;g&&(a.viewHeight=g.offsetHeight,a.viewWidth=g.offsetWidth)}return(g,m)=>(Qe(),St("div",{ref:"container",class:pt(["split-pane",{dragging:a.dragging,"show-output":o.value,vertical:t.value}]),onMousemove:d,onMouseup:f,onMouseleave:f},[vt("div",{class:"left",style:Hr({[t.value?"height":"width"]:l.value+"%"})},[Ii(g.$slots,"left",{},void 0,!0),vt("div",{class:"dragger",onMousedown:wr(h,["prevent"])},null,32)],4),vt("div",{class:"right",style:Hr({[t.value?"height":"width"]:100-l.value+"%"})},[$r(vt("div",{class:"view-size"},Mn(`${a.viewWidth}px x ${a.viewHeight}px`),513),[[rd,a.dragging]]),Ii(g.$slots,"right",{},void 0,!0)],4),vt("button",{class:"toggler",onClick:m[0]||(m[0]=_=>o.value=!o.value)},Mn(o.value?"< Code":"Output >"),1)],34))}}),L0=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},_it=L0(mit,[["__scopeId","data-v-72d84baf"]]),vit=Et({__name:"Message",props:{err:{type:[String,Error,Boolean]},warn:{}},setup(n){const e=n,t=je(!1);Pt(()=>[e.err,e.warn],()=>{t.value=!1});function i(s){if(typeof s=="string")return s;{let r=s.message;const o=s.loc;return o&&o.start&&(r=`(${o.start.line}:${o.start.column}) `+r),r}}return(s,r)=>(Qe(),Mi(m0,{name:"fade"},{default:ei(()=>[!t.value&&(s.err||s.warn)?(Qe(),St("div",{key:0,class:pt(["msg",s.err?"err":"warn"])},[vt("pre",null,Mn(i(s.err||s.warn)),1),vt("button",{class:"dismiss",onClick:r[0]||(r[0]=o=>t.value=!0)},"✕")],2)):xi("",!0)]),_:1}))}}),F$=L0(vit,[["__scopeId","data-v-024df844"]]),bit=`<!doctype html> +<html> + <head> + <style> + html.dark { + color-scheme: dark; + } + body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + } + </style> + <!-- PREVIEW-OPTIONS-HEAD-HTML --> + <script> + ;(() => { + let scriptEls = [] + + window.process = { env: {} } + window.__modules__ = {} + + window.__export__ = (mod, key, get) => { + Object.defineProperty(mod, key, { + enumerable: true, + configurable: true, + get, + }) + } + + window.__dynamic_import__ = (key) => { + return Promise.resolve(window.__modules__[key]) + } + + async function handle_message(ev) { + let { action, cmd_id } = ev.data + const send_message = (payload) => + parent.postMessage({ ...payload }, ev.origin) + const send_reply = (payload) => send_message({ ...payload, cmd_id }) + const send_ok = () => send_reply({ action: 'cmd_ok' }) + const send_error = (message, stack) => + send_reply({ action: 'cmd_error', message, stack }) + + if (action === 'eval') { + try { + if (scriptEls.length) { + scriptEls.forEach((el) => { + document.head.removeChild(el) + }) + scriptEls.length = 0 + } + + let { script: scripts } = ev.data.args + if (typeof scripts === 'string') scripts = [scripts] + + for (const script of scripts) { + const scriptEl = document.createElement('script') + scriptEl.setAttribute('type', 'module') + // send ok in the module script to ensure sequential evaluation + // of multiple proxy.eval() calls + const done = new Promise((resolve) => { + window.__next__ = resolve + }) + scriptEl.innerHTML = script + \`\\nwindow.__next__()\` + document.head.appendChild(scriptEl) + scriptEl.onerror = (err) => send_error(err.message, err.stack) + scriptEls.push(scriptEl) + await done + } + send_ok() + } catch (e) { + send_error(e.message, e.stack) + } + } + + if (action === 'catch_clicks') { + try { + const top_origin = ev.origin + document.body.addEventListener('click', (event) => { + if (event.which !== 1) return + if (event.metaKey || event.ctrlKey || event.shiftKey) return + if (event.defaultPrevented) return + + // ensure target is a link + let el = event.target + while (el && el.nodeName !== 'A') el = el.parentNode + if (!el || el.nodeName !== 'A') return + + if ( + el.hasAttribute('download') || + el.getAttribute('rel') === 'external' || + el.target || + el.href.startsWith('javascript:') || + !el.href + ) + return + + event.preventDefault() + + if (el.href.startsWith(top_origin)) { + const url = new URL(el.href) + if (url.hash[0] === '#') { + window.location.hash = url.hash + return + } + } + + window.open(el.href, '_blank') + }) + send_ok() + } catch (e) { + send_error(e.message, e.stack) + } + } + } + + window.addEventListener('message', handle_message, false) + + window.onerror = function (msg, url, lineNo, columnNo, error) { + // ignore errors from import map polyfill - these are necessary for + // it to detect browser support + if (msg.includes('module specifier “vue”')) { + // firefox only error, ignore + return false + } + if (msg.includes("Module specifier, 'vue")) { + // Safari only + return false + } + try { + parent.postMessage({ action: 'error', value: error }, '*') + } catch (e) { + parent.postMessage({ action: 'error', value: msg }, '*') + } + } + + window.addEventListener('unhandledrejection', (event) => { + if ( + event.reason.message && + event.reason.message.includes('Cross-origin') + ) { + event.preventDefault() + return + } + try { + parent.postMessage( + { action: 'unhandledrejection', value: event.reason }, + '*', + ) + } catch (e) { + parent.postMessage( + { action: 'unhandledrejection', value: event.reason.message }, + '*', + ) + } + }) + + let previous = { level: null, args: null } + + ;['clear', 'log', 'info', 'dir', 'warn', 'error', 'table'].forEach( + (level) => { + const original = console[level] + console[level] = (...args) => { + const msg = args[0] + if (typeof msg === 'string') { + if ( + msg.includes('You are running a development build of Vue') || + msg.includes('You are running the esm-bundler build of Vue') + ) { + return + } + } + + original(...args) + + const stringifiedArgs = stringify(args) + if ( + previous.level === level && + previous.args && + previous.args === stringifiedArgs + ) { + parent.postMessage( + { action: 'console', level, duplicate: true }, + '*', + ) + } else { + previous = { level, args: stringifiedArgs } + + try { + parent.postMessage({ action: 'console', level, args }, '*') + } catch (err) { + parent.postMessage( + { action: 'console', level, args: args.map(toString) }, + '*', + ) + } + } + } + }, + ) + ;[ + { method: 'group', action: 'console_group' }, + { method: 'groupEnd', action: 'console_group_end' }, + { method: 'groupCollapsed', action: 'console_group_collapsed' }, + ].forEach((group_action) => { + const original = console[group_action.method] + console[group_action.method] = (label) => { + parent.postMessage({ action: group_action.action, label }, '*') + + original(label) + } + }) + + const timers = new Map() + const original_time = console.time + const original_timelog = console.timeLog + const original_timeend = console.timeEnd + + console.time = (label = 'default') => { + original_time(label) + timers.set(label, performance.now()) + } + console.timeLog = (label = 'default') => { + original_timelog(label) + const now = performance.now() + if (timers.has(label)) { + parent.postMessage( + { + action: 'console', + level: 'system-log', + args: [\`\${label}: \${now - timers.get(label)}ms\`], + }, + '*', + ) + } else { + parent.postMessage( + { + action: 'console', + level: 'system-warn', + args: [\`Timer '\${label}' does not exist\`], + }, + '*', + ) + } + } + console.timeEnd = (label = 'default') => { + original_timeend(label) + const now = performance.now() + if (timers.has(label)) { + parent.postMessage( + { + action: 'console', + level: 'system-log', + args: [\`\${label}: \${now - timers.get(label)}ms\`], + }, + '*', + ) + } else { + parent.postMessage( + { + action: 'console', + level: 'system-warn', + args: [\`Timer '\${label}' does not exist\`], + }, + '*', + ) + } + timers.delete(label) + } + + const original_assert = console.assert + console.assert = (condition, ...args) => { + if (condition) { + const stack = new Error().stack + parent.postMessage( + { action: 'console', level: 'assert', args, stack }, + '*', + ) + } + original_assert(condition, ...args) + } + + const counter = new Map() + const original_count = console.count + const original_countreset = console.countReset + + console.count = (label = 'default') => { + counter.set(label, (counter.get(label) || 0) + 1) + parent.postMessage( + { + action: 'console', + level: 'system-log', + args: \`\${label}: \${counter.get(label)}\`, + }, + '*', + ) + original_count(label) + } + + console.countReset = (label = 'default') => { + if (counter.has(label)) { + counter.set(label, 0) + } else { + parent.postMessage( + { + action: 'console', + level: 'system-warn', + args: \`Count for '\${label}' does not exist\`, + }, + '*', + ) + } + original_countreset(label) + } + + const original_trace = console.trace + + console.trace = (...args) => { + const stack = new Error().stack + parent.postMessage( + { action: 'console', level: 'trace', args, stack }, + '*', + ) + original_trace(...args) + } + + function toString(value) { + if (value instanceof Error) { + return value.message + } + for (const fn of [ + String, + (v) => Object.prototype.toString.call(v), + (v) => typeof v, + ]) { + try { + return fn(value) + } catch (err) {} + } + } + + function isComponentProxy(value) { + return ( + value && + typeof value === 'object' && + value.__v_skip === true && + typeof value.$nextTick === 'function' && + value.$ && + value._ + ) + } + + function stringify(args) { + try { + return JSON.stringify(args, (key, value) => { + return isComponentProxy(value) ? '{component proxy}' : value + }) + } catch (error) { + return null + } + } + })() + <\/script> + + <!-- ES Module Shims: Import maps polyfill for modules browsers without import maps support (all except Chrome 89+) --> + <script + async + src="https://cdn.jsdelivr.net/npm/es-module-shims@1.5.18/dist/es-module-shims.wasm.js" + ><\/script> + <script type="importmap"> + <!--IMPORT_MAP--> + <\/script> + </head> + <body> + <!--PREVIEW-OPTIONS-PLACEHOLDER-HTML--> + </body> +</html> +`;let yit=1;class wit{constructor(e,t){this.iframe=e,this.handlers=t,this.pending_cmds=new Map,this.handle_event=i=>this.handle_repl_message(i),window.addEventListener("message",this.handle_event,!1)}destroy(){window.removeEventListener("message",this.handle_event)}iframe_command(e,t){return new Promise((i,s)=>{const r=yit++;this.pending_cmds.set(r,{resolve:i,reject:s}),this.iframe.contentWindow.postMessage({action:e,cmd_id:r,args:t},"*")})}handle_command_message(e){let t=e.action,i=e.cmd_id,s=this.pending_cmds.get(i);if(s){if(this.pending_cmds.delete(i),t==="cmd_error"){let{message:r,stack:o}=e,a=new Error(r);a.stack=o,s.reject(a)}t==="cmd_ok"&&s.resolve(e.args)}else t!=="cmd_error"&&t!=="cmd_ok"&&console.error("command not found",i,e,[...this.pending_cmds.keys()])}handle_repl_message(e){if(e.source!==this.iframe.contentWindow)return;const{action:t,args:i}=e.data;switch(t){case"cmd_error":case"cmd_ok":return this.handle_command_message(e.data);case"fetch_progress":return this.handlers.on_fetch_progress(i.remaining);case"error":return this.handlers.on_error(e.data);case"unhandledrejection":return this.handlers.on_unhandled_rejection(e.data);case"console":return this.handlers.on_console(e.data);case"console_group":return this.handlers.on_console_group(e.data);case"console_group_collapsed":return this.handlers.on_console_group_collapsed(e.data);case"console_group_end":return this.handlers.on_console_group_end(e.data)}}eval(e){return this.iframe_command("eval",{script:e})}handle_links(){return this.iframe_command("catch_clicks",{})}}function pce(n,e=!1){const t=new Set,i=[];if(B$(n,n.files[n.mainFile],i,t,e),!e){for(const s in n.files)if(s.endsWith(".css")){const r=n.files[s];t.has(r)||i.push(` +window.__css__.push(${JSON.stringify(r.compiled.css)})`)}}return i}const gce="__modules__",_7="__export__",Cit="__dynamic_import__",JL="__module__";function B$(n,e,t,i,s){if(i.has(e))return[];if(i.add(e),!s&&e.filename.endsWith(".html"))return Lit(n,e.code,e.filename,t,i);let{code:r,importedFiles:o,hasDynamicImport:a}=tSe(n,s?e.compiled.ssr:e.compiled.js,e.filename);eSe(n,o,a,t,i,s),e.compiled.css&&!s&&(r+=` +window.__css__.push(${JSON.stringify(e.compiled.css)})`),t.push(r)}function eSe(n,e,t,i,s,r){if(t)for(const o of Object.values(n.files))s.has(o)||B$(n,o,i,s,r);else if(e.size>0)for(const o of e)B$(n,n.files[o],i,s,r)}function tSe(n,e,t){const i=new x0(e),s=Oy(e,{sourceFilename:t,sourceType:"module"}).program.body,r=new Map,o=new Set,a=new Set,l=new Map;function c(f){const p=n.files;let g=f;return p[g]||p[g=f+".ts"]||p[g=f+".js"]?g:void 0}function u(f,p){const g=c(p.replace(/^\.\/+/,"src/"));if(!g)throw new Error(`File "${p}" does not exist.`);if(a.has(g))return l.get(g);a.add(g);const m=`__import_${a.size}__`;return l.set(g,m),i.appendLeft(f.start,`const ${m} = ${gce}[${JSON.stringify(g)}] +`),m}function h(f,p=f){i.append(` +${_7}(${JL}, "${f}", () => ${p})`)}i.prepend(`const ${JL} = ${gce}[${JSON.stringify(t)}] = { [Symbol.toStringTag]: "Module" } + +`);for(const f of s)if(f.type==="ImportDeclaration"&&f.source.value.startsWith("./")){const g=u(f,f.source.value);for(const m of f.specifiers)m.type==="ImportSpecifier"?r.set(m.local.name,`${g}.${m.imported.name}`):m.type==="ImportDefaultSpecifier"?r.set(m.local.name,`${g}.default`):r.set(m.local.name,g);i.remove(f.start,f.end)}for(const f of s){if(f.type==="ExportNamedDeclaration")if(f.declaration){if(f.declaration.type==="FunctionDeclaration"||f.declaration.type==="ClassDeclaration")h(f.declaration.id.name);else if(f.declaration.type==="VariableDeclaration")for(const p of f.declaration.declarations)for(const g of Pc(p.id))h(g.name);i.remove(f.start,f.declaration.start)}else if(f.source){const p=u(f,f.source.value);for(const g of f.specifiers)h(g.exported.name,`${p}.${g.local.name}`);i.remove(f.start,f.end)}else{for(const p of f.specifiers){const g=p.local.name,m=r.get(g);h(p.exported.name,m||g)}i.remove(f.start,f.end)}if(f.type==="ExportDefaultDeclaration")if("id"in f.declaration&&f.declaration.id){const{name:p}=f.declaration.id;i.remove(f.start,f.start+15),i.append(` +${_7}(${JL}, "default", () => ${p})`)}else i.overwrite(f.start,f.start+14,`${JL}.default =`);if(f.type==="ExportAllDeclaration"){const p=u(f,f.source.value);i.remove(f.start,f.end),i.append(` +for (const key in ${p}) { + if (key !== 'default') { + ${_7}(${JL}, key, () => ${p}[key]) + } + }`)}}for(const f of s)f.type!=="ImportDeclaration"&&Hx(f,(p,g,m)=>{const _=r.get(p.name);if(_)if(g&&zx(g)&&g.shorthand)(!g.inPattern||$x(g,m))&&i.appendLeft(p.end,`: ${_}`);else if(g&&g.type==="ClassDeclaration"&&p===g.superClass){if(!o.has(p.name)){o.add(p.name);const b=m[1];i.prependRight(b.start,`const ${p.name} = ${_}; +`)}}else i.overwrite(p.start,p.end,_)});let d=!1;return JCe(s,{enter(f,p){if(f.type==="Import"&&p.type==="CallExpression"){const g=p.arguments[0];g.type==="StringLiteral"&&g.value.startsWith("./")&&(d=!0,i.overwrite(f.start,f.start+6,Cit),i.overwrite(g.start,g.end,JSON.stringify(g.value.replace(/^\.\/+/,"src/"))))}}}),{code:i.toString(),importedFiles:a,hasDynamicImport:d}}const Sit=/<script\b(?:\s[^>]*>|>)([^]*?)<\/script>/gi,xit=/<script\b[^>]*type\s*=\s*(?:"module"|'module')[^>]*>([^]*?)<\/script>/gi;function Lit(n,e,t,i,s){const r=[];let o="";const a=e.replace(xit,(l,c)=>{const{code:u,importedFiles:h,hasDynamicImport:d}=tSe(n,c,t);return eSe(n,h,d,r,s,!1),o+=` +`+u,""}).replace(Sit,(l,c)=>(o+=` +`+c,""));i.push(`document.body.innerHTML = ${JSON.stringify(a)}`),i.push(...r),i.push(o)}const Eit=Et({__name:"Preview",props:{show:{type:Boolean},ssr:{type:Boolean}},setup(n,{expose:e}){const t=n,{store:i,clearConsole:s,theme:r,previewTheme:o,previewOptions:a}=Si(b0),l=Nx("container"),c=je(),u=je();let h,d,f;or(g),Pt(()=>i.value.getImportMap(),()=>{try{g()}catch(b){i.value.errors=[b];return}});function p(){var w;if(!o.value)return;const b=(w=h.contentDocument)==null?void 0:w.documentElement;b?b.className=r.value:g()}Pt([r,o],p),Y5(()=>{d.destroy(),f&&f()});function g(){var C,S,x,k;h&&(d.destroy(),f&&f(),(C=l.value)==null||C.removeChild(h)),h=document.createElement("iframe"),h.setAttribute("sandbox",["allow-forms","allow-modals","allow-pointer-lock","allow-popups","allow-same-origin","allow-scripts","allow-top-navigation-by-user-activation"].join(" "));const b=i.value.getImportMap(),w=bit.replace(/<html>/,`<html class="${o.value?r.value:""}">`).replace(/<!--IMPORT_MAP-->/,JSON.stringify(b)).replace(/<!-- PREVIEW-OPTIONS-HEAD-HTML -->/,((S=a.value)==null?void 0:S.headHTML)||"").replace(/<!--PREVIEW-OPTIONS-PLACEHOLDER-HTML-->/,((x=a.value)==null?void 0:x.placeholderHTML)||"");h.srcdoc=w,(k=l.value)==null||k.appendChild(h),d=new wit(h,{on_fetch_progress:L=>{},on_error:L=>{const E=L.value instanceof Error?L.value.message:L.value;E.includes("Failed to resolve module specifier")||E.includes("Error resolving module specifier")?c.value=E.replace(/\. Relative references must.*$/,"")+`. +Tip: edit the "Import Map" tab to specify import paths for dependencies.`:c.value=L.value},on_unhandled_rejection:L=>{let E=L.value;typeof E=="string"&&(E={message:E}),c.value="Uncaught (in promise): "+E.message},on_console:L=>{L.duplicate||(L.level==="error"?L.args[0]instanceof Error?c.value=L.args[0].message:c.value=L.args[0]:L.level==="warn"&&L.args[0].toString().includes("[Vue warn]")&&(u.value=L.args.join("").replace(/\[Vue warn\]:/,"").trim()))},on_console_group:L=>{},on_console_group_end:()=>{},on_console_group_collapsed:L=>{}}),h.addEventListener("load",()=>{d.handle_links(),f=g0(m),p()})}async function m(){var w,C,S,x,k,L;s.value&&console.clear(),c.value=void 0,u.value=void 0;let b=t.ssr;if(i.value.vueVersion){const[E,A,I]=i.value.vueVersion.split(".").map(T=>parseInt(T,10));E===3&&(A<2||A===2&&I<27)&&(alert(`The selected version of Vue (${i.value.vueVersion}) does not support in-browser SSR. Rendering in client mode instead.`),b=!1)}try{const{mainFile:E}=i.value;if(b&&E.endsWith(".vue")){const T=pce(i.value,!0);console.info(`[@vue/repl] successfully compiled ${T.length} modules for SSR.`),await d.eval(["const __modules__ = {};",...T,`import { renderToString as _renderToString } from 'vue/server-renderer' + import { createSSRApp as _createApp } from 'vue' + const AppComponent = __modules__["${E}"].default + AppComponent.name = 'Repl' + const app = _createApp(AppComponent) + if (!app.config.hasOwnProperty('unwrapInjectedRef')) { + app.config.unwrapInjectedRef = true + } + app.config.warnHandler = () => {} + window.__ssr_promise__ = _renderToString(app).then(html => { + document.body.innerHTML = '<div id="app">' + html + '</div>' + \`${((w=a.value)==null?void 0:w.bodyHTML)||""}\` + }).catch(err => { + console.error("SSR Error", err) + }) + `])}const A=pce(i.value);console.info(`[@vue/repl] successfully compiled ${A.length} module${A.length>1?"s":""}.`);const I=["window.__modules__ = {};window.__css__ = [];if (window.__app__) window.__app__.unmount();"+(b?"":`document.body.innerHTML = '<div id="app"></div>' + \`${((C=a.value)==null?void 0:C.bodyHTML)||""}\``),...A,"document.querySelectorAll('style[css]').forEach(el => el.remove())\n document.head.insertAdjacentHTML('beforeend', window.__css__.map(s => `<style css>${s}</style>`).join('\\n'))"];E.endsWith(".vue")&&I.push(`import { ${b?"createSSRApp":"createApp"} as _createApp } from "vue" + ${((x=(S=a.value)==null?void 0:S.customCode)==null?void 0:x.importCode)||""} + const _mount = () => { + const AppComponent = __modules__["${E}"].default + AppComponent.name = 'Repl' + const app = window.__app__ = _createApp(AppComponent) + if (!app.config.hasOwnProperty('unwrapInjectedRef')) { + app.config.unwrapInjectedRef = true + } + app.config.errorHandler = e => console.error(e) + ${((L=(k=a.value)==null?void 0:k.customCode)==null?void 0:L.useCode)||""} + app.mount('#app') + } + if (window.__ssr_promise__) { + window.__ssr_promise__.then(_mount) + } else { + _mount() + }`),await d.eval(I)}catch(E){console.error(E),c.value=E.message}}function _(){var b;(b=h.contentWindow)==null||b.location.reload()}return e({reload:_,container:l}),(b,w)=>{var C,S;return Qe(),St(ss,null,[$r(vt("div",{ref:"container",class:pt(["iframe-container",{[ae(r)]:ae(o)}])},null,2),[[rd,b.show]]),Kt(F$,{err:(((C=ae(a))==null?void 0:C.showRuntimeError)??!0)&&c.value},null,8,["err"]),!c.value&&(((S=ae(a))==null?void 0:S.showRuntimeWarning)??!0)?(Qe(),Mi(F$,{key:0,warn:u.value},null,8,["warn"])):xi("",!0)],64)}}}),kit=L0(Eit,[["__scopeId","data-v-d0ce9d15"]]),Iit={class:"tab-buttons"},Tit=["onClick"],Dit={class:"output-container"},Nit=Et({__name:"Output",props:{editorComponent:{},showCompileOutput:{type:Boolean},ssr:{type:Boolean}},setup(n,{expose:e}){const t=n,{store:i}=Si(b0),s=Nx("preview"),r=Ee(()=>t.showCompileOutput?["preview","js","css","ssr"]:["preview"]),o=Ee({get:()=>r.value.includes(i.value.outputMode)?i.value.outputMode:"preview",set(l){r.value.includes(i.value.outputMode)&&(i.value.outputMode=l)}});function a(){var l;(l=s.value)==null||l.reload()}return e({reload:a,previewRef:s}),(l,c)=>(Qe(),St(ss,null,[vt("div",Iit,[(Qe(!0),St(ss,null,bS(r.value,u=>(Qe(),St("button",{key:u,class:pt({active:o.value===u}),onClick:h=>o.value=u},[vt("span",null,Mn(u),1)],10,Tit))),128))]),vt("div",Dit,[Kt(kit,{ref:"preview",show:o.value==="preview",ssr:l.ssr},null,8,["show","ssr"]),o.value!=="preview"?(Qe(),Mi(t.editorComponent,{key:0,readonly:"",filename:ae(i).activeFile.filename,value:ae(i).activeFile.compiled[o.value],mode:o.value},null,8,["filename","value","mode"])):xi("",!0)])],64))}}),Ait=L0(Nit,[["__scopeId","data-v-5893ae30"]]);var fe;(function(n){n[n.NONE=0]="NONE";const t=1;n[n._abstract=t]="_abstract";const i=t+1;n[n._accessor=i]="_accessor";const s=i+1;n[n._as=s]="_as";const r=s+1;n[n._assert=r]="_assert";const o=r+1;n[n._asserts=o]="_asserts";const a=o+1;n[n._async=a]="_async";const l=a+1;n[n._await=l]="_await";const c=l+1;n[n._checks=c]="_checks";const u=c+1;n[n._constructor=u]="_constructor";const h=u+1;n[n._declare=h]="_declare";const d=h+1;n[n._enum=d]="_enum";const f=d+1;n[n._exports=f]="_exports";const p=f+1;n[n._from=p]="_from";const g=p+1;n[n._get=g]="_get";const m=g+1;n[n._global=m]="_global";const _=m+1;n[n._implements=_]="_implements";const b=_+1;n[n._infer=b]="_infer";const w=b+1;n[n._interface=w]="_interface";const C=w+1;n[n._is=C]="_is";const S=C+1;n[n._keyof=S]="_keyof";const x=S+1;n[n._mixins=x]="_mixins";const k=x+1;n[n._module=k]="_module";const L=k+1;n[n._namespace=L]="_namespace";const E=L+1;n[n._of=E]="_of";const A=E+1;n[n._opaque=A]="_opaque";const I=A+1;n[n._out=I]="_out";const T=I+1;n[n._override=T]="_override";const N=T+1;n[n._private=N]="_private";const M=N+1;n[n._protected=M]="_protected";const V=M+1;n[n._proto=V]="_proto";const W=V+1;n[n._public=W]="_public";const B=W+1;n[n._readonly=B]="_readonly";const $=B+1;n[n._require=$]="_require";const Y=$+1;n[n._satisfies=Y]="_satisfies";const le=Y+1;n[n._set=le]="_set";const re=le+1;n[n._static=re]="_static";const z=re+1;n[n._symbol=z]="_symbol";const K=z+1;n[n._type=K]="_type";const Z=K+1;n[n._unique=Z]="_unique";const j=Z+1;n[n._using=j]="_using"})(fe||(fe={}));var y;(function(n){n[n.PRECEDENCE_MASK=15]="PRECEDENCE_MASK";const t=16;n[n.IS_KEYWORD=t]="IS_KEYWORD";const i=32;n[n.IS_ASSIGN=i]="IS_ASSIGN";const s=64;n[n.IS_RIGHT_ASSOCIATIVE=s]="IS_RIGHT_ASSOCIATIVE";const r=128;n[n.IS_PREFIX=r]="IS_PREFIX";const o=256;n[n.IS_POSTFIX=o]="IS_POSTFIX";const a=512;n[n.IS_EXPRESSION_START=a]="IS_EXPRESSION_START";const l=512;n[n.num=l]="num";const c=1536;n[n.bigint=c]="bigint";const u=2560;n[n.decimal=u]="decimal";const h=3584;n[n.regexp=h]="regexp";const d=4608;n[n.string=d]="string";const f=5632;n[n.name=f]="name";const p=6144;n[n.eof=p]="eof";const g=7680;n[n.bracketL=g]="bracketL";const m=8192;n[n.bracketR=m]="bracketR";const _=9728;n[n.braceL=_]="braceL";const b=10752;n[n.braceBarL=b]="braceBarL";const w=11264;n[n.braceR=w]="braceR";const C=12288;n[n.braceBarR=C]="braceBarR";const S=13824;n[n.parenL=S]="parenL";const x=14336;n[n.parenR=x]="parenR";const k=15360;n[n.comma=k]="comma";const L=16384;n[n.semi=L]="semi";const E=17408;n[n.colon=E]="colon";const A=18432;n[n.doubleColon=A]="doubleColon";const I=19456;n[n.dot=I]="dot";const T=20480;n[n.question=T]="question";const N=21504;n[n.questionDot=N]="questionDot";const M=22528;n[n.arrow=M]="arrow";const V=23552;n[n.template=V]="template";const W=24576;n[n.ellipsis=W]="ellipsis";const B=25600;n[n.backQuote=B]="backQuote";const $=27136;n[n.dollarBraceL=$]="dollarBraceL";const Y=27648;n[n.at=Y]="at";const le=29184;n[n.hash=le]="hash";const re=29728;n[n.eq=re]="eq";const z=30752;n[n.assign=z]="assign";const K=32640;n[n.preIncDec=K]="preIncDec";const Z=33664;n[n.postIncDec=Z]="postIncDec";const j=34432;n[n.bang=j]="bang";const ce=35456;n[n.tilde=ce]="tilde";const ie=35841;n[n.pipeline=ie]="pipeline";const de=36866;n[n.nullishCoalescing=de]="nullishCoalescing";const Le=37890;n[n.logicalOR=Le]="logicalOR";const Te=38915;n[n.logicalAND=Te]="logicalAND";const ve=39940;n[n.bitwiseOR=ve]="bitwiseOR";const Ke=40965;n[n.bitwiseXOR=Ke]="bitwiseXOR";const Q=41990;n[n.bitwiseAND=Q]="bitwiseAND";const ne=43015;n[n.equality=ne]="equality";const xe=44040;n[n.lessThan=xe]="lessThan";const He=45064;n[n.greaterThan=He]="greaterThan";const Re=46088;n[n.relationalOrEqual=Re]="relationalOrEqual";const Fe=47113;n[n.bitShiftL=Fe]="bitShiftL";const Ye=48137;n[n.bitShiftR=Ye]="bitShiftR";const he=49802;n[n.plus=he]="plus";const te=50826;n[n.minus=te]="minus";const ee=51723;n[n.modulo=ee]="modulo";const R=52235;n[n.star=R]="star";const F=53259;n[n.slash=F]="slash";const q=54348;n[n.exponent=q]="exponent";const G=55296;n[n.jsxName=G]="jsxName";const pe=56320;n[n.jsxText=pe]="jsxText";const _e=57344;n[n.jsxEmptyText=_e]="jsxEmptyText";const De=58880;n[n.jsxTagStart=De]="jsxTagStart";const ze=59392;n[n.jsxTagEnd=ze]="jsxTagEnd";const Ze=60928;n[n.typeParameterStart=Ze]="typeParameterStart";const tt=61440;n[n.nonNullAssertion=tt]="nonNullAssertion";const Tt=62480;n[n._break=Tt]="_break";const It=63504;n[n._case=It]="_case";const rt=64528;n[n._catch=rt]="_catch";const Rt=65552;n[n._continue=Rt]="_continue";const si=66576;n[n._debugger=si]="_debugger";const Jn=67600;n[n._default=Jn]="_default";const oi=68624;n[n._do=oi]="_do";const Zi=69648;n[n._else=Zi]="_else";const Ar=70672;n[n._finally=Ar]="_finally";const _s=71696;n[n._for=_s]="_for";const mr=73232;n[n._function=mr]="_function";const Mo=73744;n[n._if=Mo]="_if";const Ha=74768;n[n._return=Ha]="_return";const Oo=75792;n[n._switch=Oo]="_switch";const pa=77456;n[n._throw=pa]="_throw";const Ys=77840;n[n._try=Ys]="_try";const Il=78864;n[n._var=Il]="_var";const Xr=79888;n[n._let=Xr]="_let";const Tl=80912;n[n._const=Tl]="_const";const $a=81936;n[n._while=$a]="_while";const bd=82960;n[n._with=bd]="_with";const z_=84496;n[n._new=z_]="_new";const yd=85520;n[n._this=yd]="_this";const za=86544;n[n._super=za]="_super";const We=87568;n[n._class=We]="_class";const _t=88080;n[n._extends=_t]="_extends";const Fi=89104;n[n._export=Fi]="_export";const Ln=90640;n[n._import=Ln]="_import";const Dl=91664;n[n._yield=Dl]="_yield";const Mt=92688;n[n._null=Mt]="_null";const Se=93712;n[n._true=Se]="_true";const st=94736;n[n._false=st]="_false";const dt=95256;n[n._in=dt]="_in";const cn=96280;n[n._instanceof=cn]="_instanceof";const ar=97936;n[n._typeof=ar]="_typeof";const ga=98960;n[n._void=ga]="_void";const Ds=99984;n[n._delete=Ds]="_delete";const hu=100880;n[n._async=hu]="_async";const DL=101904;n[n._get=DL]="_get";const uA=102928;n[n._set=uA]="_set";const rse=103952;n[n._declare=rse]="_declare";const PAe=104976;n[n._readonly=PAe]="_readonly";const RAe=106e3;n[n._abstract=RAe]="_abstract";const MAe=107024;n[n._static=MAe]="_static";const OAe=107536;n[n._public=OAe]="_public";const FAe=108560;n[n._private=FAe]="_private";const BAe=109584;n[n._protected=BAe]="_protected";const WAe=110608;n[n._override=WAe]="_override";const VAe=112144;n[n._as=VAe]="_as";const HAe=113168;n[n._enum=HAe]="_enum";const $Ae=114192;n[n._type=$Ae]="_type";const zAe=115216;n[n._implements=zAe]="_implements"})(y||(y={}));function Pit(n){switch(n){case y.num:return"num";case y.bigint:return"bigint";case y.decimal:return"decimal";case y.regexp:return"regexp";case y.string:return"string";case y.name:return"name";case y.eof:return"eof";case y.bracketL:return"[";case y.bracketR:return"]";case y.braceL:return"{";case y.braceBarL:return"{|";case y.braceR:return"}";case y.braceBarR:return"|}";case y.parenL:return"(";case y.parenR:return")";case y.comma:return",";case y.semi:return";";case y.colon:return":";case y.doubleColon:return"::";case y.dot:return".";case y.question:return"?";case y.questionDot:return"?.";case y.arrow:return"=>";case y.template:return"template";case y.ellipsis:return"...";case y.backQuote:return"`";case y.dollarBraceL:return"${";case y.at:return"@";case y.hash:return"#";case y.eq:return"=";case y.assign:return"_=";case y.preIncDec:return"++/--";case y.postIncDec:return"++/--";case y.bang:return"!";case y.tilde:return"~";case y.pipeline:return"|>";case y.nullishCoalescing:return"??";case y.logicalOR:return"||";case y.logicalAND:return"&&";case y.bitwiseOR:return"|";case y.bitwiseXOR:return"^";case y.bitwiseAND:return"&";case y.equality:return"==/!=";case y.lessThan:return"<";case y.greaterThan:return">";case y.relationalOrEqual:return"<=/>=";case y.bitShiftL:return"<<";case y.bitShiftR:return">>/>>>";case y.plus:return"+";case y.minus:return"-";case y.modulo:return"%";case y.star:return"*";case y.slash:return"/";case y.exponent:return"**";case y.jsxName:return"jsxName";case y.jsxText:return"jsxText";case y.jsxEmptyText:return"jsxEmptyText";case y.jsxTagStart:return"jsxTagStart";case y.jsxTagEnd:return"jsxTagEnd";case y.typeParameterStart:return"typeParameterStart";case y.nonNullAssertion:return"nonNullAssertion";case y._break:return"break";case y._case:return"case";case y._catch:return"catch";case y._continue:return"continue";case y._debugger:return"debugger";case y._default:return"default";case y._do:return"do";case y._else:return"else";case y._finally:return"finally";case y._for:return"for";case y._function:return"function";case y._if:return"if";case y._return:return"return";case y._switch:return"switch";case y._throw:return"throw";case y._try:return"try";case y._var:return"var";case y._let:return"let";case y._const:return"const";case y._while:return"while";case y._with:return"with";case y._new:return"new";case y._this:return"this";case y._super:return"super";case y._class:return"class";case y._extends:return"extends";case y._export:return"export";case y._import:return"import";case y._yield:return"yield";case y._null:return"null";case y._true:return"true";case y._false:return"false";case y._in:return"in";case y._instanceof:return"instanceof";case y._typeof:return"typeof";case y._void:return"void";case y._delete:return"delete";case y._async:return"async";case y._get:return"get";case y._set:return"set";case y._declare:return"declare";case y._readonly:return"readonly";case y._abstract:return"abstract";case y._static:return"static";case y._public:return"public";case y._private:return"private";case y._protected:return"protected";case y._override:return"override";case y._as:return"as";case y._enum:return"enum";case y._type:return"type";case y._implements:return"implements";default:return""}}class Hf{constructor(e,t,i){this.startTokenIndex=e,this.endTokenIndex=t,this.isFunctionScope=i}}class Rit{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f){this.potentialArrowAt=e,this.noAnonFunctionType=t,this.inDisallowConditionalTypesContext=i,this.tokensLength=s,this.scopesLength=r,this.pos=o,this.type=a,this.contextualKeyword=l,this.start=c,this.end=u,this.isType=h,this.scopeDepth=d,this.error=f}}let Mit=class Pl{constructor(){Pl.prototype.__init.call(this),Pl.prototype.__init2.call(this),Pl.prototype.__init3.call(this),Pl.prototype.__init4.call(this),Pl.prototype.__init5.call(this),Pl.prototype.__init6.call(this),Pl.prototype.__init7.call(this),Pl.prototype.__init8.call(this),Pl.prototype.__init9.call(this),Pl.prototype.__init10.call(this),Pl.prototype.__init11.call(this),Pl.prototype.__init12.call(this),Pl.prototype.__init13.call(this)}__init(){this.potentialArrowAt=-1}__init2(){this.noAnonFunctionType=!1}__init3(){this.inDisallowConditionalTypesContext=!1}__init4(){this.tokens=[]}__init5(){this.scopes=[]}__init6(){this.pos=0}__init7(){this.type=y.eof}__init8(){this.contextualKeyword=fe.NONE}__init9(){this.start=0}__init10(){this.end=0}__init11(){this.isType=!1}__init12(){this.scopeDepth=0}__init13(){this.error=null}snapshot(){return new Rit(this.potentialArrowAt,this.noAnonFunctionType,this.inDisallowConditionalTypesContext,this.tokens.length,this.scopes.length,this.pos,this.type,this.contextualKeyword,this.start,this.end,this.isType,this.scopeDepth,this.error)}restoreFromSnapshot(e){this.potentialArrowAt=e.potentialArrowAt,this.noAnonFunctionType=e.noAnonFunctionType,this.inDisallowConditionalTypesContext=e.inDisallowConditionalTypesContext,this.tokens.length=e.tokensLength,this.scopes.length=e.scopesLength,this.pos=e.pos,this.type=e.type,this.contextualKeyword=e.contextualKeyword,this.start=e.start,this.end=e.end,this.isType=e.isType,this.scopeDepth=e.scopeDepth,this.error=e.error}};var we;(function(n){n[n.backSpace=8]="backSpace";const t=10;n[n.lineFeed=t]="lineFeed";const i=9;n[n.tab=i]="tab";const s=13;n[n.carriageReturn=s]="carriageReturn";const r=14;n[n.shiftOut=r]="shiftOut";const o=32;n[n.space=o]="space";const a=33;n[n.exclamationMark=a]="exclamationMark";const l=34;n[n.quotationMark=l]="quotationMark";const c=35;n[n.numberSign=c]="numberSign";const u=36;n[n.dollarSign=u]="dollarSign";const h=37;n[n.percentSign=h]="percentSign";const d=38;n[n.ampersand=d]="ampersand";const f=39;n[n.apostrophe=f]="apostrophe";const p=40;n[n.leftParenthesis=p]="leftParenthesis";const g=41;n[n.rightParenthesis=g]="rightParenthesis";const m=42;n[n.asterisk=m]="asterisk";const _=43;n[n.plusSign=_]="plusSign";const b=44;n[n.comma=b]="comma";const w=45;n[n.dash=w]="dash";const C=46;n[n.dot=C]="dot";const S=47;n[n.slash=S]="slash";const x=48;n[n.digit0=x]="digit0";const k=49;n[n.digit1=k]="digit1";const L=50;n[n.digit2=L]="digit2";const E=51;n[n.digit3=E]="digit3";const A=52;n[n.digit4=A]="digit4";const I=53;n[n.digit5=I]="digit5";const T=54;n[n.digit6=T]="digit6";const N=55;n[n.digit7=N]="digit7";const M=56;n[n.digit8=M]="digit8";const V=57;n[n.digit9=V]="digit9";const W=58;n[n.colon=W]="colon";const B=59;n[n.semicolon=B]="semicolon";const $=60;n[n.lessThan=$]="lessThan";const Y=61;n[n.equalsTo=Y]="equalsTo";const le=62;n[n.greaterThan=le]="greaterThan";const re=63;n[n.questionMark=re]="questionMark";const z=64;n[n.atSign=z]="atSign";const K=65;n[n.uppercaseA=K]="uppercaseA";const Z=66;n[n.uppercaseB=Z]="uppercaseB";const j=67;n[n.uppercaseC=j]="uppercaseC";const ce=68;n[n.uppercaseD=ce]="uppercaseD";const ie=69;n[n.uppercaseE=ie]="uppercaseE";const de=70;n[n.uppercaseF=de]="uppercaseF";const Le=71;n[n.uppercaseG=Le]="uppercaseG";const Te=72;n[n.uppercaseH=Te]="uppercaseH";const ve=73;n[n.uppercaseI=ve]="uppercaseI";const Ke=74;n[n.uppercaseJ=Ke]="uppercaseJ";const Q=75;n[n.uppercaseK=Q]="uppercaseK";const ne=76;n[n.uppercaseL=ne]="uppercaseL";const xe=77;n[n.uppercaseM=xe]="uppercaseM";const He=78;n[n.uppercaseN=He]="uppercaseN";const Re=79;n[n.uppercaseO=Re]="uppercaseO";const Fe=80;n[n.uppercaseP=Fe]="uppercaseP";const Ye=81;n[n.uppercaseQ=Ye]="uppercaseQ";const he=82;n[n.uppercaseR=he]="uppercaseR";const te=83;n[n.uppercaseS=te]="uppercaseS";const ee=84;n[n.uppercaseT=ee]="uppercaseT";const R=85;n[n.uppercaseU=R]="uppercaseU";const F=86;n[n.uppercaseV=F]="uppercaseV";const q=87;n[n.uppercaseW=q]="uppercaseW";const G=88;n[n.uppercaseX=G]="uppercaseX";const pe=89;n[n.uppercaseY=pe]="uppercaseY";const _e=90;n[n.uppercaseZ=_e]="uppercaseZ";const De=91;n[n.leftSquareBracket=De]="leftSquareBracket";const ze=92;n[n.backslash=ze]="backslash";const Ze=93;n[n.rightSquareBracket=Ze]="rightSquareBracket";const tt=94;n[n.caret=tt]="caret";const Tt=95;n[n.underscore=Tt]="underscore";const It=96;n[n.graveAccent=It]="graveAccent";const rt=97;n[n.lowercaseA=rt]="lowercaseA";const Rt=98;n[n.lowercaseB=Rt]="lowercaseB";const si=99;n[n.lowercaseC=si]="lowercaseC";const Jn=100;n[n.lowercaseD=Jn]="lowercaseD";const oi=101;n[n.lowercaseE=oi]="lowercaseE";const Zi=102;n[n.lowercaseF=Zi]="lowercaseF";const Ar=103;n[n.lowercaseG=Ar]="lowercaseG";const _s=104;n[n.lowercaseH=_s]="lowercaseH";const mr=105;n[n.lowercaseI=mr]="lowercaseI";const Mo=106;n[n.lowercaseJ=Mo]="lowercaseJ";const Ha=107;n[n.lowercaseK=Ha]="lowercaseK";const Oo=108;n[n.lowercaseL=Oo]="lowercaseL";const pa=109;n[n.lowercaseM=pa]="lowercaseM";const Ys=110;n[n.lowercaseN=Ys]="lowercaseN";const Il=111;n[n.lowercaseO=Il]="lowercaseO";const Xr=112;n[n.lowercaseP=Xr]="lowercaseP";const Tl=113;n[n.lowercaseQ=Tl]="lowercaseQ";const $a=114;n[n.lowercaseR=$a]="lowercaseR";const bd=115;n[n.lowercaseS=bd]="lowercaseS";const z_=116;n[n.lowercaseT=z_]="lowercaseT";const yd=117;n[n.lowercaseU=yd]="lowercaseU";const za=118;n[n.lowercaseV=za]="lowercaseV";const We=119;n[n.lowercaseW=We]="lowercaseW";const _t=120;n[n.lowercaseX=_t]="lowercaseX";const Fi=121;n[n.lowercaseY=Fi]="lowercaseY";const Ln=122;n[n.lowercaseZ=Ln]="lowercaseZ";const Dl=123;n[n.leftCurlyBrace=Dl]="leftCurlyBrace";const Mt=124;n[n.verticalBar=Mt]="verticalBar";const Se=125;n[n.rightCurlyBrace=Se]="rightCurlyBrace";const st=126;n[n.tilde=st]="tilde";const dt=160;n[n.nonBreakingSpace=dt]="nonBreakingSpace";const cn=5760;n[n.oghamSpaceMark=cn]="oghamSpaceMark";const ar=8232;n[n.lineSeparator=ar]="lineSeparator";const ga=8233;n[n.paragraphSeparator=ga]="paragraphSeparator"})(we||(we={}));let xB,tn,Tn,D,ht,iSe;function cT(){return iSe++}function Oit(n){if("pos"in n){const e=Bit(n.pos);n.message+=` (${e.line}:${e.column})`,n.loc=e}return n}class Fit{constructor(e,t){this.line=e,this.column=t}}function Bit(n){let e=1,t=1;for(let i=0;i<n;i++)ht.charCodeAt(i)===we.lineFeed?(e++,t=1):t++;return new Fit(e,t)}function Wit(n,e,t,i){ht=n,D=new Mit,iSe=1,xB=e,tn=t,Tn=i}function Ut(n){return D.contextualKeyword===n}function RJ(n){const e=vN();return e.type===y.name&&e.contextualKeyword===n}function jr(n){return D.contextualKeyword===n&&Be(y.name)}function gr(n){jr(n)||Di()}function Hc(){return J(y.eof)||J(y.braceR)||_l()}function _l(){const n=D.tokens[D.tokens.length-1],e=n?n.end:0;for(let t=e;t<D.start;t++){const i=ht.charCodeAt(t);if(i===we.lineFeed||i===we.carriageReturn||i===8232||i===8233)return!0}return!1}function nSe(){const n=MJ();for(let e=D.end;e<n;e++){const t=ht.charCodeAt(e);if(t===we.lineFeed||t===we.carriageReturn||t===8232||t===8233)return!0}return!1}function _f(){return Be(y.semi)||Hc()}function Is(){_f()||Di('Unexpected token, expected ";"')}function qe(n){Be(n)||Di(`Unexpected token, expected "${Pit(n)}"`)}function Di(n="Unexpected token",e=D.start){if(D.error)return;const t=new SyntaxError(n);t.pos=e,D.error=t,D.pos=ht.length,ki(y.eof)}const sSe=[9,11,12,we.space,we.nonBreakingSpace,we.oghamSpaceMark,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],mce=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,rSe=new Uint8Array(65536);for(const n of sSe)rSe[n]=1;function Vit(n){if(n<48)return n===36;if(n<58)return!0;if(n<65)return!1;if(n<91)return!0;if(n<97)return n===95;if(n<123)return!0;if(n<128)return!1;throw new Error("Should not be called with non-ASCII char code.")}const Kh=new Uint8Array(65536);for(let n=0;n<128;n++)Kh[n]=Vit(n)?1:0;for(let n=128;n<65536;n++)Kh[n]=1;for(const n of sSe)Kh[n]=0;Kh[8232]=0;Kh[8233]=0;const _N=Kh.slice();for(let n=we.digit0;n<=we.digit9;n++)_N[n]=0;const _ce=new Int32Array([-1,27,783,918,1755,2376,2862,3483,-1,3699,-1,4617,4752,4833,5130,5508,5940,-1,6480,6939,7749,8181,8451,8613,-1,8829,-1,-1,-1,54,243,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,432,-1,-1,-1,675,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,108,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1,-1,-1,-1,-1,-1,-1,-1,162,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,189,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,216,-1,-1,-1,-1,-1,-1,fe._abstract<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,270,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,297,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,324,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,351,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,378,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,405,-1,-1,-1,-1,-1,-1,-1,-1,fe._accessor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._as<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,459,-1,-1,-1,-1,-1,594,-1,-1,-1,-1,-1,-1,486,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,513,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,540,-1,-1,-1,-1,-1,-1,fe._assert<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,567,-1,-1,-1,-1,-1,-1,-1,fe._asserts<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,621,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,648,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._async<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,702,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,729,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,756,-1,-1,-1,-1,-1,-1,fe._await<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,810,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,837,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,864,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,891,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._break<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,945,-1,-1,-1,-1,-1,-1,1107,-1,-1,-1,1242,-1,-1,1350,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,972,1026,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._case<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1053,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1080,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._catch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1161,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1188,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1215,-1,-1,-1,-1,-1,-1,-1,fe._checks<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1269,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1296,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1323,-1,-1,-1,-1,-1,-1,-1,(y._class<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1377,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1404,1620,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1431,-1,-1,-1,-1,-1,-1,(y._const<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1458,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,-1,-1,-1,-1,-1,-1,-1,-1,1512,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1539,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1566,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1593,-1,-1,-1,-1,-1,-1,-1,-1,fe._constructor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1647,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1674,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1701,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1728,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._continue<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1782,-1,-1,-1,-1,-1,-1,-1,-1,-1,2349,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1809,1971,-1,-1,2106,-1,-1,-1,-1,-1,2241,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1836,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1863,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1890,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1917,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1944,-1,-1,-1,-1,-1,-1,-1,-1,(y._debugger<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2025,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2052,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2079,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._declare<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2160,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2187,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2214,-1,-1,-1,-1,-1,-1,(y._default<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2268,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2295,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2322,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._delete<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._do<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2403,-1,2484,-1,-1,-1,-1,-1,-1,-1,-1,-1,2565,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2430,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2457,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._else<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2511,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2538,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._enum<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2592,-1,-1,-1,2727,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2619,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2646,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2673,-1,-1,-1,-1,-1,-1,(y._export<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2700,-1,-1,-1,-1,-1,-1,-1,fe._exports<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2754,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2781,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2808,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2835,-1,-1,-1,-1,-1,-1,-1,(y._extends<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2889,-1,-1,-1,-1,-1,-1,-1,2997,-1,-1,-1,-1,-1,3159,-1,-1,3213,-1,-1,3294,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2916,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2943,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2970,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._false<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3024,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3051,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3078,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3105,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3132,-1,(y._finally<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3186,-1,-1,-1,-1,-1,-1,-1,-1,(y._for<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3240,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3267,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._from<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3321,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3348,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3375,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3402,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3429,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3456,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._function<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3510,-1,-1,-1,-1,-1,-1,3564,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3537,-1,-1,-1,-1,-1,-1,fe._get<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3591,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3618,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3645,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3672,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._global<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3726,-1,-1,-1,-1,-1,-1,3753,4077,-1,-1,-1,-1,4590,-1,-1,-1,-1,-1,-1,-1,(y._if<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3780,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3807,-1,-1,3996,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3834,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3861,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3888,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3915,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3942,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3969,-1,-1,-1,-1,-1,-1,-1,fe._implements<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4023,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4050,-1,-1,-1,-1,-1,-1,(y._import<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._in<<1)+1,-1,-1,-1,-1,-1,4104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4185,4401,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4131,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4158,-1,-1,-1,-1,-1,-1,-1,-1,fe._infer<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4212,-1,-1,-1,-1,-1,-1,-1,4239,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4266,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4293,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4320,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4347,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4374,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._instanceof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4428,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4455,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4482,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4509,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4563,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._interface<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._is<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4644,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4671,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4698,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4725,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._keyof<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4779,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4806,-1,-1,-1,-1,-1,-1,(y._let<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4860,-1,-1,-1,-1,-1,4995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4914,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4941,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4968,-1,-1,-1,-1,-1,-1,-1,fe._mixins<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5022,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5049,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5076,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5103,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._module<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5157,-1,-1,-1,5373,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5427,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5184,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5211,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5238,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5265,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5292,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5346,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._namespace<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5400,-1,-1,-1,(y._new<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5454,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5481,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._null<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5535,-1,-1,-1,-1,-1,-1,-1,-1,-1,5562,-1,-1,-1,-1,5697,5751,-1,-1,-1,-1,fe._of<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5589,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5616,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5643,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5670,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._opaque<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5724,-1,-1,-1,-1,-1,-1,fe._out<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5778,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5805,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5832,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5859,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5886,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5913,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._override<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5967,-1,-1,6345,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5994,-1,-1,-1,-1,-1,6129,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6021,-1,-1,-1,-1,-1,6048,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6075,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._private<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6156,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6183,-1,-1,-1,-1,-1,-1,-1,-1,-1,6318,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6210,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6237,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6264,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6291,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._protected<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._proto<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6399,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6426,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6453,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._public<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6507,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6534,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6696,-1,-1,6831,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6561,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6588,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6615,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6642,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6669,-1,fe._readonly<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6723,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6750,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6777,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6804,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._require<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6858,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6885,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6912,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._return<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6966,-1,-1,-1,7182,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7236,7371,-1,7479,-1,7614,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7020,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7047,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7074,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7101,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7128,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7155,-1,-1,-1,-1,-1,-1,-1,fe._satisfies<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7209,-1,-1,-1,-1,-1,-1,fe._set<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7263,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7290,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7317,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7344,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._static<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7398,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7425,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7452,-1,-1,-1,-1,-1,-1,-1,-1,(y._super<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7506,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7533,-1,-1,-1,-1,-1,-1,-1,-1,-1,7560,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7587,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._switch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7641,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7668,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7695,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7722,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._symbol<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7776,-1,-1,-1,-1,-1,-1,-1,-1,-1,7938,-1,-1,-1,-1,-1,-1,8046,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7803,-1,-1,-1,-1,-1,-1,-1,-1,7857,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7830,-1,-1,-1,-1,-1,-1,-1,(y._this<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7884,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7911,-1,-1,-1,(y._throw<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7965,-1,-1,-1,8019,-1,-1,-1,-1,-1,-1,7992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._true<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._try<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8073,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._type<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8127,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8154,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._typeof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8208,-1,-1,-1,-1,8343,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8235,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8262,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8289,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8316,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._unique<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8370,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8397,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8424,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,fe._using<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8478,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8532,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8505,-1,-1,-1,-1,-1,-1,-1,-1,(y._var<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8559,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8586,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._void<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8640,8748,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8667,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8694,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8721,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._while<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8775,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8802,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._with<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8856,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8883,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8910,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8937,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(y._yield<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);function Hit(){let n=0,e=0,t=D.pos;for(;t<ht.length&&(e=ht.charCodeAt(t),!(e<we.lowercaseA||e>we.lowercaseZ));){const s=_ce[n+(e-we.lowercaseA)+1];if(s===-1)break;n=s,t++}const i=_ce[n];if(i>-1&&!Kh[e]){D.pos=t,i&1?ki(i>>>1):ki(y.name,i>>>1);return}for(;t<ht.length;){const s=ht.charCodeAt(t);if(Kh[s])t++;else if(s===we.backslash){if(t+=2,ht.charCodeAt(t)===we.leftCurlyBrace){for(;t<ht.length&&ht.charCodeAt(t)!==we.rightCurlyBrace;)t++;t++}}else if(s===we.atSign&&ht.charCodeAt(t+1)===we.atSign)t+=2;else break}D.pos=t,ki(y.name)}var ti;(function(n){n[n.Access=0]="Access";const t=1;n[n.ExportAccess=t]="ExportAccess";const i=t+1;n[n.TopLevelDeclaration=i]="TopLevelDeclaration";const s=i+1;n[n.FunctionScopedDeclaration=s]="FunctionScopedDeclaration";const r=s+1;n[n.BlockScopedDeclaration=r]="BlockScopedDeclaration";const o=r+1;n[n.ObjectShorthandTopLevelDeclaration=o]="ObjectShorthandTopLevelDeclaration";const a=o+1;n[n.ObjectShorthandFunctionScopedDeclaration=a]="ObjectShorthandFunctionScopedDeclaration";const l=a+1;n[n.ObjectShorthandBlockScopedDeclaration=l]="ObjectShorthandBlockScopedDeclaration";const c=l+1;n[n.ObjectShorthand=c]="ObjectShorthand";const u=c+1;n[n.ImportDeclaration=u]="ImportDeclaration";const h=u+1;n[n.ObjectKey=h]="ObjectKey";const d=h+1;n[n.ImportAccess=d]="ImportAccess"})(ti||(ti={}));var Dh;(function(n){n[n.NoChildren=0]="NoChildren";const t=1;n[n.OneChild=t]="OneChild";const i=t+1;n[n.StaticChildren=i]="StaticChildren";const s=i+1;n[n.KeyAfterPropSpread=s]="KeyAfterPropSpread"})(Dh||(Dh={}));function oSe(n){const e=n.identifierRole;return e===ti.TopLevelDeclaration||e===ti.FunctionScopedDeclaration||e===ti.BlockScopedDeclaration||e===ti.ObjectShorthandTopLevelDeclaration||e===ti.ObjectShorthandFunctionScopedDeclaration||e===ti.ObjectShorthandBlockScopedDeclaration}function $it(n){const e=n.identifierRole;return e===ti.FunctionScopedDeclaration||e===ti.BlockScopedDeclaration||e===ti.ObjectShorthandFunctionScopedDeclaration||e===ti.ObjectShorthandBlockScopedDeclaration}function aSe(n){const e=n.identifierRole;return e===ti.TopLevelDeclaration||e===ti.ObjectShorthandTopLevelDeclaration||e===ti.ImportDeclaration}function zit(n){const e=n.identifierRole;return e===ti.TopLevelDeclaration||e===ti.BlockScopedDeclaration||e===ti.ObjectShorthandTopLevelDeclaration||e===ti.ObjectShorthandBlockScopedDeclaration}function Uit(n){const e=n.identifierRole;return e===ti.FunctionScopedDeclaration||e===ti.ObjectShorthandFunctionScopedDeclaration}function jit(n){return n.identifierRole===ti.ObjectShorthandTopLevelDeclaration||n.identifierRole===ti.ObjectShorthandBlockScopedDeclaration||n.identifierRole===ti.ObjectShorthandFunctionScopedDeclaration}class LB{constructor(){this.type=D.type,this.contextualKeyword=D.contextualKeyword,this.start=D.start,this.end=D.end,this.scopeDepth=D.scopeDepth,this.isType=D.isType,this.identifierRole=null,this.jsxRole=null,this.shadowsGlobal=!1,this.isAsyncOperation=!1,this.contextId=null,this.rhsEndIndex=null,this.isExpression=!1,this.numNullishCoalesceStarts=0,this.numNullishCoalesceEnds=0,this.isOptionalChainStart=!1,this.isOptionalChainEnd=!1,this.subscriptStartIndex=null,this.nullishStartIndex=null}}function Ge(){D.tokens.push(new LB),hSe()}function e1(){D.tokens.push(new LB),D.start=D.pos,lnt()}function qit(){D.type===y.assign&&--D.pos,rnt()}function Oi(n){for(let t=D.tokens.length-n;t<D.tokens.length;t++)D.tokens[t].isType=!0;const e=D.isType;return D.isType=!0,e}function Ri(n){D.isType=n}function Be(n){return J(n)?(Ge(),!0):!1}function lSe(n){const e=D.isType;D.isType=!0,Be(n),D.isType=e}function J(n){return D.type===n}function zs(){const n=D.snapshot();Ge();const e=D.type;return D.restoreFromSnapshot(n),e}class Kit{constructor(e,t){this.type=e,this.contextualKeyword=t}}function vN(){const n=D.snapshot();Ge();const e=D.type,t=D.contextualKeyword;return D.restoreFromSnapshot(n),new Kit(e,t)}function MJ(){return cSe(D.pos)}function cSe(n){mce.lastIndex=n;const e=mce.exec(ht);return n+e[0].length}function uSe(){return ht.charCodeAt(MJ())}function hSe(){if(fSe(),D.start=D.pos,D.pos>=ht.length){const n=D.tokens;n.length>=2&&n[n.length-1].start>=ht.length&&n[n.length-2].start>=ht.length&&Di("Unexpectedly reached the end of input."),ki(y.eof);return}Git(ht.charCodeAt(D.pos))}function Git(n){_N[n]||n===we.backslash||n===we.atSign&&ht.charCodeAt(D.pos+1)===we.atSign?Hit():mSe(n)}function Xit(){for(;ht.charCodeAt(D.pos)!==we.asterisk||ht.charCodeAt(D.pos+1)!==we.slash;)if(D.pos++,D.pos>ht.length){Di("Unterminated comment",D.pos-2);return}D.pos+=2}function dSe(n){let e=ht.charCodeAt(D.pos+=n);if(D.pos<ht.length)for(;e!==we.lineFeed&&e!==we.carriageReturn&&e!==we.lineSeparator&&e!==we.paragraphSeparator&&++D.pos<ht.length;)e=ht.charCodeAt(D.pos)}function fSe(){for(;D.pos<ht.length;){const n=ht.charCodeAt(D.pos);switch(n){case we.carriageReturn:ht.charCodeAt(D.pos+1)===we.lineFeed&&++D.pos;case we.lineFeed:case we.lineSeparator:case we.paragraphSeparator:++D.pos;break;case we.slash:switch(ht.charCodeAt(D.pos+1)){case we.asterisk:D.pos+=2,Xit();break;case we.slash:dSe(2);break;default:return}break;default:if(rSe[n])++D.pos;else return}}}function ki(n,e=fe.NONE){D.end=D.pos,D.type=n,D.contextualKeyword=e}function Yit(){const n=ht.charCodeAt(D.pos+1);if(n>=we.digit0&&n<=we.digit9){_Se(!0);return}n===we.dot&&ht.charCodeAt(D.pos+2)===we.dot?(D.pos+=3,ki(y.ellipsis)):(++D.pos,ki(y.dot))}function Zit(){ht.charCodeAt(D.pos+1)===we.equalsTo?On(y.assign,2):On(y.slash,1)}function Qit(n){let e=n===we.asterisk?y.star:y.modulo,t=1,i=ht.charCodeAt(D.pos+1);n===we.asterisk&&i===we.asterisk&&(t++,i=ht.charCodeAt(D.pos+2),e=y.exponent),i===we.equalsTo&&ht.charCodeAt(D.pos+2)!==we.greaterThan&&(t++,e=y.assign),On(e,t)}function Jit(n){const e=ht.charCodeAt(D.pos+1);if(e===n){ht.charCodeAt(D.pos+2)===we.equalsTo?On(y.assign,3):On(n===we.verticalBar?y.logicalOR:y.logicalAND,2);return}if(n===we.verticalBar){if(e===we.greaterThan){On(y.pipeline,2);return}else if(e===we.rightCurlyBrace&&Tn){On(y.braceBarR,2);return}}if(e===we.equalsTo){On(y.assign,2);return}On(n===we.verticalBar?y.bitwiseOR:y.bitwiseAND,1)}function ent(){ht.charCodeAt(D.pos+1)===we.equalsTo?On(y.assign,2):On(y.bitwiseXOR,1)}function tnt(n){const e=ht.charCodeAt(D.pos+1);if(e===n){On(y.preIncDec,2);return}e===we.equalsTo?On(y.assign,2):n===we.plusSign?On(y.plus,1):On(y.minus,1)}function int(){const n=ht.charCodeAt(D.pos+1);if(n===we.lessThan){if(ht.charCodeAt(D.pos+2)===we.equalsTo){On(y.assign,3);return}D.isType?On(y.lessThan,1):On(y.bitShiftL,2);return}n===we.equalsTo?On(y.relationalOrEqual,2):On(y.lessThan,1)}function pSe(){if(D.isType){On(y.greaterThan,1);return}const n=ht.charCodeAt(D.pos+1);if(n===we.greaterThan){const e=ht.charCodeAt(D.pos+2)===we.greaterThan?3:2;if(ht.charCodeAt(D.pos+e)===we.equalsTo){On(y.assign,e+1);return}On(y.bitShiftR,e);return}n===we.equalsTo?On(y.relationalOrEqual,2):On(y.greaterThan,1)}function gSe(){D.type===y.greaterThan&&(D.pos-=1,pSe())}function nnt(n){const e=ht.charCodeAt(D.pos+1);if(e===we.equalsTo){On(y.equality,ht.charCodeAt(D.pos+2)===we.equalsTo?3:2);return}if(n===we.equalsTo&&e===we.greaterThan){D.pos+=2,ki(y.arrow);return}On(n===we.equalsTo?y.eq:y.bang,1)}function snt(){const n=ht.charCodeAt(D.pos+1),e=ht.charCodeAt(D.pos+2);n===we.questionMark&&!(Tn&&D.isType)?e===we.equalsTo?On(y.assign,3):On(y.nullishCoalescing,2):n===we.dot&&!(e>=we.digit0&&e<=we.digit9)?(D.pos+=2,ki(y.questionDot)):(++D.pos,ki(y.question))}function mSe(n){switch(n){case we.numberSign:++D.pos,ki(y.hash);return;case we.dot:Yit();return;case we.leftParenthesis:++D.pos,ki(y.parenL);return;case we.rightParenthesis:++D.pos,ki(y.parenR);return;case we.semicolon:++D.pos,ki(y.semi);return;case we.comma:++D.pos,ki(y.comma);return;case we.leftSquareBracket:++D.pos,ki(y.bracketL);return;case we.rightSquareBracket:++D.pos,ki(y.bracketR);return;case we.leftCurlyBrace:Tn&&ht.charCodeAt(D.pos+1)===we.verticalBar?On(y.braceBarL,2):(++D.pos,ki(y.braceL));return;case we.rightCurlyBrace:++D.pos,ki(y.braceR);return;case we.colon:ht.charCodeAt(D.pos+1)===we.colon?On(y.doubleColon,2):(++D.pos,ki(y.colon));return;case we.questionMark:snt();return;case we.atSign:++D.pos,ki(y.at);return;case we.graveAccent:++D.pos,ki(y.backQuote);return;case we.digit0:{const e=ht.charCodeAt(D.pos+1);if(e===we.lowercaseX||e===we.uppercaseX||e===we.lowercaseO||e===we.uppercaseO||e===we.lowercaseB||e===we.uppercaseB){ont();return}}case we.digit1:case we.digit2:case we.digit3:case we.digit4:case we.digit5:case we.digit6:case we.digit7:case we.digit8:case we.digit9:_Se(!1);return;case we.quotationMark:case we.apostrophe:ant(n);return;case we.slash:Zit();return;case we.percentSign:case we.asterisk:Qit(n);return;case we.verticalBar:case we.ampersand:Jit(n);return;case we.caret:ent();return;case we.plusSign:case we.dash:tnt(n);return;case we.lessThan:int();return;case we.greaterThan:pSe();return;case we.equalsTo:case we.exclamationMark:nnt(n);return;case we.tilde:On(y.tilde,1);return}Di(`Unexpected character '${String.fromCharCode(n)}'`,D.pos)}function On(n,e){D.pos+=e,ki(n)}function rnt(){const n=D.pos;let e=!1,t=!1;for(;;){if(D.pos>=ht.length){Di("Unterminated regular expression",n);return}const i=ht.charCodeAt(D.pos);if(e)e=!1;else{if(i===we.leftSquareBracket)t=!0;else if(i===we.rightSquareBracket&&t)t=!1;else if(i===we.slash&&!t)break;e=i===we.backslash}++D.pos}++D.pos,cnt(),ki(y.regexp)}function v7(){for(;;){const n=ht.charCodeAt(D.pos);if(n>=we.digit0&&n<=we.digit9||n===we.underscore)D.pos++;else break}}function ont(){for(D.pos+=2;;){const e=ht.charCodeAt(D.pos);if(e>=we.digit0&&e<=we.digit9||e>=we.lowercaseA&&e<=we.lowercaseF||e>=we.uppercaseA&&e<=we.uppercaseF||e===we.underscore)D.pos++;else break}ht.charCodeAt(D.pos)===we.lowercaseN?(++D.pos,ki(y.bigint)):ki(y.num)}function _Se(n){let e=!1,t=!1;n||v7();let i=ht.charCodeAt(D.pos);if(i===we.dot&&(++D.pos,v7(),i=ht.charCodeAt(D.pos)),(i===we.uppercaseE||i===we.lowercaseE)&&(i=ht.charCodeAt(++D.pos),(i===we.plusSign||i===we.dash)&&++D.pos,v7(),i=ht.charCodeAt(D.pos)),i===we.lowercaseN?(++D.pos,e=!0):i===we.lowercaseM&&(++D.pos,t=!0),e){ki(y.bigint);return}if(t){ki(y.decimal);return}ki(y.num)}function ant(n){for(D.pos++;;){if(D.pos>=ht.length){Di("Unterminated string constant");return}const e=ht.charCodeAt(D.pos);if(e===we.backslash)D.pos++;else if(e===n)break;D.pos++}D.pos++,ki(y.string)}function lnt(){for(;;){if(D.pos>=ht.length){Di("Unterminated template");return}const n=ht.charCodeAt(D.pos);if(n===we.graveAccent||n===we.dollarSign&&ht.charCodeAt(D.pos+1)===we.leftCurlyBrace){if(D.pos===D.start&&J(y.template))if(n===we.dollarSign){D.pos+=2,ki(y.dollarBraceL);return}else{++D.pos,ki(y.backQuote);return}ki(y.template);return}n===we.backslash&&D.pos++,D.pos++}}function cnt(){for(;D.pos<ht.length;){const n=ht.charCodeAt(D.pos);if(Kh[n])D.pos++;else if(n===we.backslash){if(D.pos+=2,ht.charCodeAt(D.pos)===we.leftCurlyBrace){for(;D.pos<ht.length&&ht.charCodeAt(D.pos)!==we.rightCurlyBrace;)D.pos++;D.pos++}}else break}}function uT(n,e=n.currentIndex()){let t=e+1;if(QA(n,t)){const i=n.identifierNameAtIndex(e);return{isType:!1,leftName:i,rightName:i,endIndex:t}}if(t++,QA(n,t))return{isType:!0,leftName:null,rightName:null,endIndex:t};if(t++,QA(n,t))return{isType:!1,leftName:n.identifierNameAtIndex(e),rightName:n.identifierNameAtIndex(e+2),endIndex:t};if(t++,QA(n,t))return{isType:!0,leftName:null,rightName:null,endIndex:t};throw new Error(`Unexpected import/export specifier at ${e}`)}function QA(n,e){const t=n.tokens[e];return t.type===y.braceR||t.type===y.comma}const unt=new Map([["quot",'"'],["amp","&"],["apos","'"],["lt","<"],["gt",">"],["nbsp"," "],["iexcl","¡"],["cent","¢"],["pound","£"],["curren","¤"],["yen","¥"],["brvbar","¦"],["sect","§"],["uml","¨"],["copy","©"],["ordf","ª"],["laquo","«"],["not","¬"],["shy","­"],["reg","®"],["macr","¯"],["deg","°"],["plusmn","±"],["sup2","²"],["sup3","³"],["acute","´"],["micro","µ"],["para","¶"],["middot","·"],["cedil","¸"],["sup1","¹"],["ordm","º"],["raquo","»"],["frac14","¼"],["frac12","½"],["frac34","¾"],["iquest","¿"],["Agrave","À"],["Aacute","Á"],["Acirc","Â"],["Atilde","Ã"],["Auml","Ä"],["Aring","Å"],["AElig","Æ"],["Ccedil","Ç"],["Egrave","È"],["Eacute","É"],["Ecirc","Ê"],["Euml","Ë"],["Igrave","Ì"],["Iacute","Í"],["Icirc","Î"],["Iuml","Ï"],["ETH","Ð"],["Ntilde","Ñ"],["Ograve","Ò"],["Oacute","Ó"],["Ocirc","Ô"],["Otilde","Õ"],["Ouml","Ö"],["times","×"],["Oslash","Ø"],["Ugrave","Ù"],["Uacute","Ú"],["Ucirc","Û"],["Uuml","Ü"],["Yacute","Ý"],["THORN","Þ"],["szlig","ß"],["agrave","à"],["aacute","á"],["acirc","â"],["atilde","ã"],["auml","ä"],["aring","å"],["aelig","æ"],["ccedil","ç"],["egrave","è"],["eacute","é"],["ecirc","ê"],["euml","ë"],["igrave","ì"],["iacute","í"],["icirc","î"],["iuml","ï"],["eth","ð"],["ntilde","ñ"],["ograve","ò"],["oacute","ó"],["ocirc","ô"],["otilde","õ"],["ouml","ö"],["divide","÷"],["oslash","ø"],["ugrave","ù"],["uacute","ú"],["ucirc","û"],["uuml","ü"],["yacute","ý"],["thorn","þ"],["yuml","ÿ"],["OElig","Œ"],["oelig","œ"],["Scaron","Š"],["scaron","š"],["Yuml","Ÿ"],["fnof","ƒ"],["circ","ˆ"],["tilde","˜"],["Alpha","Α"],["Beta","Β"],["Gamma","Γ"],["Delta","Δ"],["Epsilon","Ε"],["Zeta","Ζ"],["Eta","Η"],["Theta","Θ"],["Iota","Ι"],["Kappa","Κ"],["Lambda","Λ"],["Mu","Μ"],["Nu","Ν"],["Xi","Ξ"],["Omicron","Ο"],["Pi","Π"],["Rho","Ρ"],["Sigma","Σ"],["Tau","Τ"],["Upsilon","Υ"],["Phi","Φ"],["Chi","Χ"],["Psi","Ψ"],["Omega","Ω"],["alpha","α"],["beta","β"],["gamma","γ"],["delta","δ"],["epsilon","ε"],["zeta","ζ"],["eta","η"],["theta","θ"],["iota","ι"],["kappa","κ"],["lambda","λ"],["mu","μ"],["nu","ν"],["xi","ξ"],["omicron","ο"],["pi","π"],["rho","ρ"],["sigmaf","ς"],["sigma","σ"],["tau","τ"],["upsilon","υ"],["phi","φ"],["chi","χ"],["psi","ψ"],["omega","ω"],["thetasym","ϑ"],["upsih","ϒ"],["piv","ϖ"],["ensp"," "],["emsp"," "],["thinsp"," "],["zwnj","‌"],["zwj","‍"],["lrm","‎"],["rlm","‏"],["ndash","–"],["mdash","—"],["lsquo","‘"],["rsquo","’"],["sbquo","‚"],["ldquo","“"],["rdquo","”"],["bdquo","„"],["dagger","†"],["Dagger","‡"],["bull","•"],["hellip","…"],["permil","‰"],["prime","′"],["Prime","″"],["lsaquo","‹"],["rsaquo","›"],["oline","‾"],["frasl","⁄"],["euro","€"],["image","ℑ"],["weierp","℘"],["real","ℜ"],["trade","™"],["alefsym","ℵ"],["larr","←"],["uarr","↑"],["rarr","→"],["darr","↓"],["harr","↔"],["crarr","↵"],["lArr","⇐"],["uArr","⇑"],["rArr","⇒"],["dArr","⇓"],["hArr","⇔"],["forall","∀"],["part","∂"],["exist","∃"],["empty","∅"],["nabla","∇"],["isin","∈"],["notin","∉"],["ni","∋"],["prod","∏"],["sum","∑"],["minus","−"],["lowast","∗"],["radic","√"],["prop","∝"],["infin","∞"],["ang","∠"],["and","∧"],["or","∨"],["cap","∩"],["cup","∪"],["int","∫"],["there4","∴"],["sim","∼"],["cong","≅"],["asymp","≈"],["ne","≠"],["equiv","≡"],["le","≤"],["ge","≥"],["sub","⊂"],["sup","⊃"],["nsub","⊄"],["sube","⊆"],["supe","⊇"],["oplus","⊕"],["otimes","⊗"],["perp","⊥"],["sdot","⋅"],["lceil","⌈"],["rceil","⌉"],["lfloor","⌊"],["rfloor","⌋"],["lang","〈"],["rang","〉"],["loz","◊"],["spades","♠"],["clubs","♣"],["hearts","♥"],["diams","♦"]]);function vSe(n){const[e,t]=vce(n.jsxPragma||"React.createElement"),[i,s]=vce(n.jsxFragmentPragma||"React.Fragment");return{base:e,suffix:t,fragmentBase:i,fragmentSuffix:s}}function vce(n){let e=n.indexOf(".");return e===-1&&(e=n.length),[n.slice(0,e),n.slice(e)]}class dd{getPrefixCode(){return""}getHoistedCode(){return""}getSuffixCode(){return""}}class kv extends dd{__init(){this.lastLineNumber=1}__init2(){this.lastIndex=0}__init3(){this.filenameVarName=null}__init4(){this.esmAutomaticImportNameResolutions={}}__init5(){this.cjsAutomaticModuleNameResolutions={}}constructor(e,t,i,s,r){super(),this.rootTransformer=e,this.tokens=t,this.importProcessor=i,this.nameManager=s,this.options=r,kv.prototype.__init.call(this),kv.prototype.__init2.call(this),kv.prototype.__init3.call(this),kv.prototype.__init4.call(this),kv.prototype.__init5.call(this),this.jsxPragmaInfo=vSe(r),this.isAutomaticRuntime=r.jsxRuntime==="automatic",this.jsxImportSource=r.jsxImportSource||"react"}process(){return this.tokens.matches1(y.jsxTagStart)?(this.processJSXTag(),!0):!1}getPrefixCode(){let e="";if(this.filenameVarName&&(e+=`const ${this.filenameVarName} = ${JSON.stringify(this.options.filePath||"")};`),this.isAutomaticRuntime)if(this.importProcessor)for(const[t,i]of Object.entries(this.cjsAutomaticModuleNameResolutions))e+=`var ${i} = require("${t}");`;else{const{createElement:t,...i}=this.esmAutomaticImportNameResolutions;t&&(e+=`import {createElement as ${t}} from "${this.jsxImportSource}";`);const s=Object.entries(i).map(([r,o])=>`${r} as ${o}`).join(", ");if(s){const r=this.jsxImportSource+(this.options.production?"/jsx-runtime":"/jsx-dev-runtime");e+=`import {${s}} from "${r}";`}}return e}processJSXTag(){const{jsxRole:e,start:t}=this.tokens.currentToken(),i=this.options.production?null:this.getElementLocationCode(t);this.isAutomaticRuntime&&e!==Dh.KeyAfterPropSpread?this.transformTagToJSXFunc(i,e):this.transformTagToCreateElement(i)}getElementLocationCode(e){return`lineNumber: ${this.getLineNumberForIndex(e)}`}getLineNumberForIndex(e){const t=this.tokens.code;for(;this.lastIndex<e&&this.lastIndex<t.length;)t[this.lastIndex]===` +`&&this.lastLineNumber++,this.lastIndex++;return this.lastLineNumber}transformTagToJSXFunc(e,t){const i=t===Dh.StaticChildren;this.tokens.replaceToken(this.getJSXFuncInvocationCode(i));let s=null;if(this.tokens.matches1(y.jsxTagEnd))this.tokens.replaceToken(`${this.getFragmentCode()}, {`),this.processAutomaticChildrenAndEndProps(t);else{if(this.processTagIntro(),this.tokens.appendCode(", {"),s=this.processProps(!0),this.tokens.matches2(y.slash,y.jsxTagEnd))this.tokens.appendCode("}");else if(this.tokens.matches1(y.jsxTagEnd))this.tokens.removeToken(),this.processAutomaticChildrenAndEndProps(t);else throw new Error("Expected either /> or > at the end of the tag.");s&&this.tokens.appendCode(`, ${s}`)}for(this.options.production||(s===null&&this.tokens.appendCode(", void 0"),this.tokens.appendCode(`, ${i}, ${this.getDevSource(e)}, this`)),this.tokens.removeInitialToken();!this.tokens.matches1(y.jsxTagEnd);)this.tokens.removeToken();this.tokens.replaceToken(")")}transformTagToCreateElement(e){if(this.tokens.replaceToken(this.getCreateElementInvocationCode()),this.tokens.matches1(y.jsxTagEnd))this.tokens.replaceToken(`${this.getFragmentCode()}, null`),this.processChildren(!0);else if(this.processTagIntro(),this.processPropsObjectWithDevInfo(e),!this.tokens.matches2(y.slash,y.jsxTagEnd))if(this.tokens.matches1(y.jsxTagEnd))this.tokens.removeToken(),this.processChildren(!0);else throw new Error("Expected either /> or > at the end of the tag.");for(this.tokens.removeInitialToken();!this.tokens.matches1(y.jsxTagEnd);)this.tokens.removeToken();this.tokens.replaceToken(")")}getJSXFuncInvocationCode(e){return this.options.production?e?this.claimAutoImportedFuncInvocation("jsxs","/jsx-runtime"):this.claimAutoImportedFuncInvocation("jsx","/jsx-runtime"):this.claimAutoImportedFuncInvocation("jsxDEV","/jsx-dev-runtime")}getCreateElementInvocationCode(){if(this.isAutomaticRuntime)return this.claimAutoImportedFuncInvocation("createElement","");{const{jsxPragmaInfo:e}=this;return`${this.importProcessor&&this.importProcessor.getIdentifierReplacement(e.base)||e.base}${e.suffix}(`}}getFragmentCode(){if(this.isAutomaticRuntime)return this.claimAutoImportedName("Fragment",this.options.production?"/jsx-runtime":"/jsx-dev-runtime");{const{jsxPragmaInfo:e}=this;return(this.importProcessor&&this.importProcessor.getIdentifierReplacement(e.fragmentBase)||e.fragmentBase)+e.fragmentSuffix}}claimAutoImportedFuncInvocation(e,t){const i=this.claimAutoImportedName(e,t);return this.importProcessor?`${i}.call(void 0, `:`${i}(`}claimAutoImportedName(e,t){if(this.importProcessor){const i=this.jsxImportSource+t;return this.cjsAutomaticModuleNameResolutions[i]||(this.cjsAutomaticModuleNameResolutions[i]=this.importProcessor.getFreeIdentifierForPath(i)),`${this.cjsAutomaticModuleNameResolutions[i]}.${e}`}else return this.esmAutomaticImportNameResolutions[e]||(this.esmAutomaticImportNameResolutions[e]=this.nameManager.claimFreeName(`_${e}`)),this.esmAutomaticImportNameResolutions[e]}processTagIntro(){let e=this.tokens.currentIndex()+1;for(;this.tokens.tokens[e].isType||!this.tokens.matches2AtIndex(e-1,y.jsxName,y.jsxName)&&!this.tokens.matches2AtIndex(e-1,y.greaterThan,y.jsxName)&&!this.tokens.matches1AtIndex(e,y.braceL)&&!this.tokens.matches1AtIndex(e,y.jsxTagEnd)&&!this.tokens.matches2AtIndex(e,y.slash,y.jsxTagEnd);)e++;if(e===this.tokens.currentIndex()+1){const t=this.tokens.identifierName();bSe(t)&&this.tokens.replaceToken(`'${t}'`)}for(;this.tokens.currentIndex()<e;)this.rootTransformer.processToken()}processPropsObjectWithDevInfo(e){const t=this.options.production?"":`__self: this, __source: ${this.getDevSource(e)}`;if(!this.tokens.matches1(y.jsxName)&&!this.tokens.matches1(y.braceL)){t?this.tokens.appendCode(`, {${t}}`):this.tokens.appendCode(", null");return}this.tokens.appendCode(", {"),this.processProps(!1),t?this.tokens.appendCode(` ${t}}`):this.tokens.appendCode("}")}processProps(e){let t=null;for(;;){if(this.tokens.matches2(y.jsxName,y.eq)){const i=this.tokens.identifierName();if(e&&i==="key"){t!==null&&this.tokens.appendCode(t.replace(/[^\n]/g,"")),this.tokens.removeToken(),this.tokens.removeToken();const s=this.tokens.snapshot();this.processPropValue(),t=this.tokens.dangerouslyGetAndRemoveCodeSinceSnapshot(s);continue}else this.processPropName(i),this.tokens.replaceToken(": "),this.processPropValue()}else if(this.tokens.matches1(y.jsxName)){const i=this.tokens.identifierName();this.processPropName(i),this.tokens.appendCode(": true")}else if(this.tokens.matches1(y.braceL))this.tokens.replaceToken(""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken("");else break;this.tokens.appendCode(",")}return t}processPropName(e){e.includes("-")?this.tokens.replaceToken(`'${e}'`):this.tokens.copyToken()}processPropValue(){this.tokens.matches1(y.braceL)?(this.tokens.replaceToken(""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken("")):this.tokens.matches1(y.jsxTagStart)?this.processJSXTag():this.processStringPropValue()}processStringPropValue(){const e=this.tokens.currentToken(),t=this.tokens.code.slice(e.start+1,e.end-1),i=bce(t),s=dnt(t);this.tokens.replaceToken(s+i)}processAutomaticChildrenAndEndProps(e){e===Dh.StaticChildren?(this.tokens.appendCode(" children: ["),this.processChildren(!1),this.tokens.appendCode("]}")):(e===Dh.OneChild&&this.tokens.appendCode(" children: "),this.processChildren(!1),this.tokens.appendCode("}"))}processChildren(e){let t=e;for(;;){if(this.tokens.matches2(y.jsxTagStart,y.slash))return;let i=!1;if(this.tokens.matches1(y.braceL))this.tokens.matches2(y.braceL,y.braceR)?(this.tokens.replaceToken(""),this.tokens.replaceToken("")):(this.tokens.replaceToken(t?", ":""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken(""),i=!0);else if(this.tokens.matches1(y.jsxTagStart))this.tokens.appendCode(t?", ":""),this.processJSXTag(),i=!0;else if(this.tokens.matches1(y.jsxText)||this.tokens.matches1(y.jsxEmptyText))i=this.processChildTextElement(t);else throw new Error("Unexpected token when processing JSX children.");i&&(t=!0)}}processChildTextElement(e){const t=this.tokens.currentToken(),i=this.tokens.code.slice(t.start,t.end),s=bce(i),r=hnt(i);return r==='""'?(this.tokens.replaceToken(s),!1):(this.tokens.replaceToken(`${e?", ":""}${r}${s}`),!0)}getDevSource(e){return`{fileName: ${this.getFilenameVarName()}, ${e}}`}getFilenameVarName(){return this.filenameVarName||(this.filenameVarName=this.nameManager.claimFreeName("_jsxFileName")),this.filenameVarName}}function bSe(n){const e=n.charCodeAt(0);return e>=we.lowercaseA&&e<=we.lowercaseZ}function hnt(n){let e="",t="",i=!1,s=!1;for(let r=0;r<n.length;r++){const o=n[r];if(o===" "||o===" "||o==="\r")i||(t+=o);else if(o===` +`)t="",i=!0;else{if(s&&i&&(e+=" "),e+=t,t="",o==="&"){const{entity:a,newI:l}=ySe(n,r+1);r=l-1,e+=a}else e+=o;s=!0,i=!1}}return i||(e+=t),JSON.stringify(e)}function bce(n){let e=0,t=0;for(const i of n)i===` +`?(e++,t=0):i===" "&&t++;return` +`.repeat(e)+" ".repeat(t)}function dnt(n){let e="";for(let t=0;t<n.length;t++){const i=n[t];if(i===` +`)if(/\s/.test(n[t+1]))for(e+=" ";t<n.length&&/\s/.test(n[t+1]);)t++;else e+=` +`;else if(i==="&"){const{entity:s,newI:r}=ySe(n,t+1);e+=s,t=r-1}else e+=i}return JSON.stringify(e)}function ySe(n,e){let t="",i=0,s,r=e;if(n[r]==="#"){let o=10;r++;let a;if(n[r]==="x")for(o=16,r++,a=r;r<n.length&&pnt(n.charCodeAt(r));)r++;else for(a=r;r<n.length&&fnt(n.charCodeAt(r));)r++;if(n[r]===";"){const l=n.slice(a,r);l&&(r++,s=String.fromCodePoint(parseInt(l,o)))}}else for(;r<n.length&&i++<10;){const o=n[r];if(r++,o===";"){s=unt.get(t);break}t+=o}return s?{entity:s,newI:r}:{entity:"&",newI:e}}function fnt(n){return n>=we.digit0&&n<=we.digit9}function pnt(n){return n>=we.digit0&&n<=we.digit9||n>=we.lowercaseA&&n<=we.lowercaseF||n>=we.uppercaseA&&n<=we.uppercaseF}function wSe(n,e){const t=vSe(e),i=new Set;for(let s=0;s<n.tokens.length;s++){const r=n.tokens[s];if(r.type===y.name&&!r.isType&&(r.identifierRole===ti.Access||r.identifierRole===ti.ObjectShorthand||r.identifierRole===ti.ExportAccess)&&!r.shadowsGlobal&&i.add(n.identifierNameForToken(r)),r.type===y.jsxTagStart&&i.add(t.base),r.type===y.jsxTagStart&&s+1<n.tokens.length&&n.tokens[s+1].type===y.jsxTagEnd&&(i.add(t.base),i.add(t.fragmentBase)),r.type===y.jsxName&&r.identifierRole===ti.Access){const o=n.identifierNameForToken(r);(!bSe(o)||n.tokens[s+1].type===y.dot)&&i.add(n.identifierNameForToken(r))}}return i}class Iv{__init(){this.nonTypeIdentifiers=new Set}__init2(){this.importInfoByPath=new Map}__init3(){this.importsToReplace=new Map}__init4(){this.identifierReplacements=new Map}__init5(){this.exportBindingsByLocalName=new Map}constructor(e,t,i,s,r,o,a){this.nameManager=e,this.tokens=t,this.enableLegacyTypeScriptModuleInterop=i,this.options=s,this.isTypeScriptTransformEnabled=r,this.keepUnusedImports=o,this.helperManager=a,Iv.prototype.__init.call(this),Iv.prototype.__init2.call(this),Iv.prototype.__init3.call(this),Iv.prototype.__init4.call(this),Iv.prototype.__init5.call(this)}preprocessTokens(){for(let e=0;e<this.tokens.tokens.length;e++)this.tokens.matches1AtIndex(e,y._import)&&!this.tokens.matches3AtIndex(e,y._import,y.name,y.eq)&&this.preprocessImportAtIndex(e),this.tokens.matches1AtIndex(e,y._export)&&!this.tokens.matches2AtIndex(e,y._export,y.eq)&&this.preprocessExportAtIndex(e);this.generateImportReplacements()}pruneTypeOnlyImports(){this.nonTypeIdentifiers=wSe(this.tokens,this.options);for(const[e,t]of this.importInfoByPath.entries()){if(t.hasBareImport||t.hasStarExport||t.exportStarNames.length>0||t.namedExports.length>0)continue;[...t.defaultNames,...t.wildcardNames,...t.namedImports.map(({localName:s})=>s)].every(s=>this.shouldAutomaticallyElideImportedName(s))&&this.importsToReplace.set(e,"")}}shouldAutomaticallyElideImportedName(e){return this.isTypeScriptTransformEnabled&&!this.keepUnusedImports&&!this.nonTypeIdentifiers.has(e)}generateImportReplacements(){for(const[e,t]of this.importInfoByPath.entries()){const{defaultNames:i,wildcardNames:s,namedImports:r,namedExports:o,exportStarNames:a,hasStarExport:l}=t;if(i.length===0&&s.length===0&&r.length===0&&o.length===0&&a.length===0&&!l){this.importsToReplace.set(e,`require('${e}');`);continue}const c=this.getFreeIdentifierForPath(e);let u;this.enableLegacyTypeScriptModuleInterop?u=c:u=s.length>0?s[0]:this.getFreeIdentifierForPath(e);let h=`var ${c} = require('${e}');`;if(s.length>0)for(const d of s){const f=this.enableLegacyTypeScriptModuleInterop?c:`${this.helperManager.getHelperName("interopRequireWildcard")}(${c})`;h+=` var ${d} = ${f};`}else a.length>0&&u!==c?h+=` var ${u} = ${this.helperManager.getHelperName("interopRequireWildcard")}(${c});`:i.length>0&&u!==c&&(h+=` var ${u} = ${this.helperManager.getHelperName("interopRequireDefault")}(${c});`);for(const{importedName:d,localName:f}of o)h+=` ${this.helperManager.getHelperName("createNamedExportFrom")}(${c}, '${f}', '${d}');`;for(const d of a)h+=` exports.${d} = ${u};`;l&&(h+=` ${this.helperManager.getHelperName("createStarExport")}(${c});`),this.importsToReplace.set(e,h);for(const d of i)this.identifierReplacements.set(d,`${u}.default`);for(const{importedName:d,localName:f}of r)this.identifierReplacements.set(f,`${c}.${d}`)}}getFreeIdentifierForPath(e){const t=e.split("/"),s=t[t.length-1].replace(/\W/g,"");return this.nameManager.claimFreeName(`_${s}`)}preprocessImportAtIndex(e){const t=[],i=[],s=[];if(e++,(this.tokens.matchesContextualAtIndex(e,fe._type)||this.tokens.matches1AtIndex(e,y._typeof))&&!this.tokens.matches1AtIndex(e+1,y.comma)&&!this.tokens.matchesContextualAtIndex(e+1,fe._from)||this.tokens.matches1AtIndex(e,y.parenL))return;if(this.tokens.matches1AtIndex(e,y.name)&&(t.push(this.tokens.identifierNameAtIndex(e)),e++,this.tokens.matches1AtIndex(e,y.comma)&&e++),this.tokens.matches1AtIndex(e,y.star)&&(e+=2,i.push(this.tokens.identifierNameAtIndex(e)),e++),this.tokens.matches1AtIndex(e,y.braceL)){const a=this.getNamedImports(e+1);e=a.newIndex;for(const l of a.namedImports)l.importedName==="default"?t.push(l.localName):s.push(l)}if(this.tokens.matchesContextualAtIndex(e,fe._from)&&e++,!this.tokens.matches1AtIndex(e,y.string))throw new Error("Expected string token at the end of import statement.");const r=this.tokens.stringValueAtIndex(e),o=this.getImportInfo(r);o.defaultNames.push(...t),o.wildcardNames.push(...i),o.namedImports.push(...s),t.length===0&&i.length===0&&s.length===0&&(o.hasBareImport=!0)}preprocessExportAtIndex(e){if(this.tokens.matches2AtIndex(e,y._export,y._var)||this.tokens.matches2AtIndex(e,y._export,y._let)||this.tokens.matches2AtIndex(e,y._export,y._const))this.preprocessVarExportAtIndex(e);else if(this.tokens.matches2AtIndex(e,y._export,y._function)||this.tokens.matches2AtIndex(e,y._export,y._class)){const t=this.tokens.identifierNameAtIndex(e+2);this.addExportBinding(t,t)}else if(this.tokens.matches3AtIndex(e,y._export,y.name,y._function)){const t=this.tokens.identifierNameAtIndex(e+3);this.addExportBinding(t,t)}else this.tokens.matches2AtIndex(e,y._export,y.braceL)?this.preprocessNamedExportAtIndex(e):this.tokens.matches2AtIndex(e,y._export,y.star)&&this.preprocessExportStarAtIndex(e)}preprocessVarExportAtIndex(e){let t=0;for(let i=e+2;;i++)if(this.tokens.matches1AtIndex(i,y.braceL)||this.tokens.matches1AtIndex(i,y.dollarBraceL)||this.tokens.matches1AtIndex(i,y.bracketL))t++;else if(this.tokens.matches1AtIndex(i,y.braceR)||this.tokens.matches1AtIndex(i,y.bracketR))t--;else{if(t===0&&!this.tokens.matches1AtIndex(i,y.name))break;if(this.tokens.matches1AtIndex(1,y.eq)){const s=this.tokens.currentToken().rhsEndIndex;if(s==null)throw new Error("Expected = token with an end index.");i=s-1}else{const s=this.tokens.tokens[i];if(oSe(s)){const r=this.tokens.identifierNameAtIndex(i);this.identifierReplacements.set(r,`exports.${r}`)}}}}preprocessNamedExportAtIndex(e){e+=2;const{newIndex:t,namedImports:i}=this.getNamedImports(e);if(e=t,this.tokens.matchesContextualAtIndex(e,fe._from))e++;else{for(const{importedName:o,localName:a}of i)this.addExportBinding(o,a);return}if(!this.tokens.matches1AtIndex(e,y.string))throw new Error("Expected string token at the end of import statement.");const s=this.tokens.stringValueAtIndex(e);this.getImportInfo(s).namedExports.push(...i)}preprocessExportStarAtIndex(e){let t=null;if(this.tokens.matches3AtIndex(e,y._export,y.star,y._as)?(e+=3,t=this.tokens.identifierNameAtIndex(e),e+=2):e+=3,!this.tokens.matches1AtIndex(e,y.string))throw new Error("Expected string token at the end of star export statement.");const i=this.tokens.stringValueAtIndex(e),s=this.getImportInfo(i);t!==null?s.exportStarNames.push(t):s.hasStarExport=!0}getNamedImports(e){const t=[];for(;;){if(this.tokens.matches1AtIndex(e,y.braceR)){e++;break}const i=uT(this.tokens,e);if(e=i.endIndex,i.isType||t.push({importedName:i.leftName,localName:i.rightName}),this.tokens.matches2AtIndex(e,y.comma,y.braceR)){e+=2;break}else if(this.tokens.matches1AtIndex(e,y.braceR)){e++;break}else if(this.tokens.matches1AtIndex(e,y.comma))e++;else throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.tokens[e])}`)}return{newIndex:e,namedImports:t}}getImportInfo(e){const t=this.importInfoByPath.get(e);if(t)return t;const i={defaultNames:[],wildcardNames:[],namedImports:[],namedExports:[],hasBareImport:!1,exportStarNames:[],hasStarExport:!1};return this.importInfoByPath.set(e,i),i}addExportBinding(e,t){this.exportBindingsByLocalName.has(e)||this.exportBindingsByLocalName.set(e,[]),this.exportBindingsByLocalName.get(e).push(t)}claimImportCode(e){const t=this.importsToReplace.get(e);return this.importsToReplace.set(e,""),t||""}getIdentifierReplacement(e){return this.identifierReplacements.get(e)||null}resolveExportBinding(e){const t=this.exportBindingsByLocalName.get(e);return!t||t.length===0?null:t.map(i=>`exports.${i}`).join(" = ")}getGlobalNames(){return new Set([...this.identifierReplacements.keys(),...this.exportBindingsByLocalName.keys()])}}var W$={exports:{}},JA={exports:{}},yce;function gnt(){return yce||(yce=1,function(n,e){(function(t,i){i(e)})(qh,function(t){class i{constructor(){this._indexes={__proto__:null},this.array=[]}}function s(c){return c}function r(c,u){return c._indexes[u]}function o(c,u){const h=r(c,u);if(h!==void 0)return h;const{array:d,_indexes:f}=c,p=d.push(u);return f[u]=p-1}function a(c){const{array:u,_indexes:h}=c;if(u.length===0)return;const d=u.pop();h[d]=void 0}function l(c,u){const h=r(c,u);if(h===void 0)return;const{array:d,_indexes:f}=c;for(let p=h+1;p<d.length;p++){const g=d[p];d[p-1]=g,f[g]--}f[u]=void 0,d.pop()}t.SetArray=i,t.get=r,t.pop=a,t.put=o,t.remove=l,Object.defineProperty(t,"__esModule",{value:!0})})}(JA,JA.exports)),JA.exports}var eP={exports:{}},wce;function CSe(){return wce||(wce=1,function(n,e){(function(t,i){i(e)})(qh,function(t){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(64),a=new Uint8Array(128);for(let I=0;I<r.length;I++){const T=r.charCodeAt(I);o[I]=T,a[T]=I}function l(I,T){let N=0,M=0,V=0;do{const B=I.next();V=a[B],N|=(V&31)<<M,M+=5}while(V&32);const W=N&1;return N>>>=1,W&&(N=-2147483648|-N),T+N}function c(I,T,N){let M=T-N;M=M<0?-M<<1|1:M<<1;do{let V=M&31;M>>>=5,M>0&&(V|=32),I.write(o[V])}while(M>0);return T}function u(I,T){return I.pos>=T?!1:I.peek()!==44}const h=1024*16,d=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(I){return Buffer.from(I.buffer,I.byteOffset,I.byteLength).toString()}}:{decode(I){let T="";for(let N=0;N<I.length;N++)T+=String.fromCharCode(I[N]);return T}};class f{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(h)}write(T){const{buffer:N}=this;N[this.pos++]=T,this.pos===h&&(this.out+=d.decode(N),this.pos=0)}flush(){const{buffer:T,out:N,pos:M}=this;return M>0?N+d.decode(T.subarray(0,M)):N}}class p{constructor(T){this.pos=0,this.buffer=T}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(T){const{buffer:N,pos:M}=this,V=N.indexOf(T,M);return V===-1?N.length:V}}const g=[];function m(I){const{length:T}=I,N=new p(I),M=[],V=[];let W=0;for(;N.pos<T;N.pos++){W=l(N,W);const B=l(N,0);if(!u(N,T)){const K=V.pop();K[2]=W,K[3]=B;continue}const $=l(N,0),re=l(N,0)&1?[W,B,0,0,$,l(N,0)]:[W,B,0,0,$];let z=g;if(u(N,T)){z=[];do{const K=l(N,0);z.push(K)}while(u(N,T))}re.vars=z,M.push(re),V.push(re)}return M}function _(I){const T=new f;for(let N=0;N<I.length;)N=b(I,N,T,[0]);return T.flush()}function b(I,T,N,M){const V=I[T],{0:W,1:B,2:$,3:Y,4:le,vars:re}=V;T>0&&N.write(44),M[0]=c(N,W,M[0]),c(N,B,0),c(N,le,0);const z=V.length===6?1:0;c(N,z,0),V.length===6&&c(N,V[5],0);for(const K of re)c(N,K,0);for(T++;T<I.length;){const K=I[T],{0:Z,1:j}=K;if(Z>$||Z===$&&j>=Y)break;T=b(I,T,N,M)}return N.write(44),M[0]=c(N,$,M[0]),c(N,Y,0),T}function w(I){const{length:T}=I,N=new p(I),M=[],V=[];let W=0,B=0,$=0,Y=0,le=0,re=0,z=0,K=0;do{const Z=N.indexOf(";");let j=0;for(;N.pos<Z;N.pos++){if(j=l(N,j),!u(N,Z)){const Q=V.pop();Q[2]=W,Q[3]=j;continue}const ce=l(N,0),ie=ce&1,de=ce&2,Le=ce&4;let Te=null,ve=g,Ke;if(ie){const Q=l(N,B);$=l(N,B===Q?$:0),B=Q,Ke=[W,j,0,0,Q,$]}else Ke=[W,j,0,0];if(Ke.isScope=!!Le,de){const Q=Y,ne=le;Y=l(N,Y);const xe=Q===Y;le=l(N,xe?le:0),re=l(N,xe&&ne===le?re:0),Te=[Y,le,re]}if(Ke.callsite=Te,u(N,Z)){ve=[];do{z=W,K=j;const Q=l(N,0);let ne;if(Q<-1){ne=[[l(N,0)]];for(let xe=-1;xe>Q;xe--){const He=z;z=l(N,z),K=l(N,z===He?K:0);const Re=l(N,0);ne.push([Re,z,K])}}else ne=[[Q]];ve.push(ne)}while(u(N,Z))}Ke.bindings=ve,M.push(Ke),V.push(Ke)}W++,N.pos=Z+1}while(N.pos<T);return M}function C(I){if(I.length===0)return"";const T=new f;for(let N=0;N<I.length;)N=S(I,N,T,[0,0,0,0,0,0,0]);return T.flush()}function S(I,T,N,M){const V=I[T],{0:W,1:B,2:$,3:Y,isScope:le,callsite:re,bindings:z}=V;M[0]<W?(x(N,M[0],W),M[0]=W,M[1]=0):T>0&&N.write(44),M[1]=c(N,V[1],M[1]);const K=(V.length===6?1:0)|(re?2:0)|(le?4:0);if(c(N,K,0),V.length===6){const{4:Z,5:j}=V;Z!==M[2]&&(M[3]=0),M[2]=c(N,Z,M[2]),M[3]=c(N,j,M[3])}if(re){const{0:Z,1:j,2:ce}=V.callsite;Z!==M[4]?(M[5]=0,M[6]=0):j!==M[5]&&(M[6]=0),M[4]=c(N,Z,M[4]),M[5]=c(N,j,M[5]),M[6]=c(N,ce,M[6])}if(z)for(const Z of z){Z.length>1&&c(N,-Z.length,0);const j=Z[0][0];c(N,j,0);let ce=W,ie=B;for(let de=1;de<Z.length;de++){const Le=Z[de];ce=c(N,Le[1],ce),ie=c(N,Le[2],ie),c(N,Le[0],0)}}for(T++;T<I.length;){const Z=I[T],{0:j,1:ce}=Z;if(j>$||j===$&&ce>=Y)break;T=S(I,T,N,M)}return M[0]<$?(x(N,M[0],$),M[0]=$,M[1]=0):N.write(44),M[1]=c(N,Y,M[1]),T}function x(I,T,N){do I.write(59);while(++T<N)}function k(I){const{length:T}=I,N=new p(I),M=[];let V=0,W=0,B=0,$=0,Y=0;do{const le=N.indexOf(";"),re=[];let z=!0,K=0;for(V=0;N.pos<le;){let Z;V=l(N,V),V<K&&(z=!1),K=V,u(N,le)?(W=l(N,W),B=l(N,B),$=l(N,$),u(N,le)?(Y=l(N,Y),Z=[V,W,B,$,Y]):Z=[V,W,B,$]):Z=[V],re.push(Z),N.pos++}z||L(re),M.push(re),N.pos=le+1}while(N.pos<=T);return M}function L(I){I.sort(E)}function E(I,T){return I[0]-T[0]}function A(I){const T=new f;let N=0,M=0,V=0,W=0;for(let B=0;B<I.length;B++){const $=I[B];if(B>0&&T.write(59),$.length===0)continue;let Y=0;for(let le=0;le<$.length;le++){const re=$[le];le>0&&T.write(44),Y=c(T,re[0],Y),re.length!==1&&(N=c(T,re[1],N),M=c(T,re[2],M),V=c(T,re[3],V),re.length!==4&&(W=c(T,re[4],W)))}}return T.flush()}t.decode=k,t.decodeGeneratedRanges=w,t.decodeOriginalScopes=m,t.encode=A,t.encodeGeneratedRanges=C,t.encodeOriginalScopes=_,Object.defineProperty(t,"__esModule",{value:!0})})}(eP,eP.exports)),eP.exports}var tP={exports:{}},b7={exports:{}},Cce;function mnt(){return Cce||(Cce=1,function(n,e){(function(t,i){n.exports=i()})(qh,function(){const t=/^[\w+.-]+:\/\//,i=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,s=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function r(b){return t.test(b)}function o(b){return b.startsWith("//")}function a(b){return b.startsWith("/")}function l(b){return b.startsWith("file:")}function c(b){return/^[.?#]/.test(b)}function u(b){const w=i.exec(b);return d(w[1],w[2]||"",w[3],w[4]||"",w[5]||"/",w[6]||"",w[7]||"")}function h(b){const w=s.exec(b),C=w[2];return d("file:","",w[1]||"","",a(C)?C:"/"+C,w[3]||"",w[4]||"")}function d(b,w,C,S,x,k,L){return{scheme:b,user:w,host:C,port:S,path:x,query:k,hash:L,type:7}}function f(b){if(o(b)){const C=u("http:"+b);return C.scheme="",C.type=6,C}if(a(b)){const C=u("http://foo.com"+b);return C.scheme="",C.host="",C.type=5,C}if(l(b))return h(b);if(r(b))return u(b);const w=u("http://foo.com/"+b);return w.scheme="",w.host="",w.type=b?b.startsWith("?")?3:b.startsWith("#")?2:4:1,w}function p(b){if(b.endsWith("/.."))return b;const w=b.lastIndexOf("/");return b.slice(0,w+1)}function g(b,w){m(w,w.type),b.path==="/"?b.path=w.path:b.path=p(w.path)+b.path}function m(b,w){const C=w<=4,S=b.path.split("/");let x=1,k=0,L=!1;for(let A=1;A<S.length;A++){const I=S[A];if(!I){L=!0;continue}if(L=!1,I!=="."){if(I===".."){k?(L=!0,k--,x--):C&&(S[x++]=I);continue}S[x++]=I,k++}}let E="";for(let A=1;A<x;A++)E+="/"+S[A];(!E||L&&!E.endsWith("/.."))&&(E+="/"),b.path=E}function _(b,w){if(!b&&!w)return"";const C=f(b);let S=C.type;if(w&&S!==7){const k=f(w),L=k.type;switch(S){case 1:C.hash=k.hash;case 2:C.query=k.query;case 3:case 4:g(C,k);case 5:C.user=k.user,C.host=k.host,C.port=k.port;case 6:C.scheme=k.scheme}L>S&&(S=L)}m(C,S);const x=C.query+C.hash;switch(S){case 2:case 3:return x;case 4:{const k=C.path.slice(1);return k?c(w||b)&&!c(k)?"./"+k+x:k+x:x||"."}case 5:return C.path+x;default:return C.scheme+"//"+C.user+C.host+C.port+C.path+x}}return _})}(b7)),b7.exports}var Sce;function _nt(){return Sce||(Sce=1,function(n,e){(function(t,i){i(e,CSe(),mnt())})(qh,function(t,i,s){function r(R,F){return F&&!F.endsWith("/")&&(F+="/"),s(R,F)}function o(R){if(!R)return"";const F=R.lastIndexOf("/");return R.slice(0,F+1)}const a=0,l=1,c=2,u=3,h=4,d=1,f=2;function p(R,F){const q=g(R,0);if(q===R.length)return R;F||(R=R.slice());for(let G=q;G<R.length;G=g(R,G+1))R[G]=_(R[G],F);return R}function g(R,F){for(let q=F;q<R.length;q++)if(!m(R[q]))return q;return R.length}function m(R){for(let F=1;F<R.length;F++)if(R[F][a]<R[F-1][a])return!1;return!0}function _(R,F){return F||(R=R.slice()),R.sort(b)}function b(R,F){return R[a]-F[a]}let w=!1;function C(R,F,q,G){for(;q<=G;){const pe=q+(G-q>>1),_e=R[pe][a]-F;if(_e===0)return w=!0,pe;_e<0?q=pe+1:G=pe-1}return w=!1,q-1}function S(R,F,q){for(let G=q+1;G<R.length&&R[G][a]===F;q=G++);return q}function x(R,F,q){for(let G=q-1;G>=0&&R[G][a]===F;q=G--);return q}function k(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function L(R,F,q,G){const{lastKey:pe,lastNeedle:_e,lastIndex:De}=q;let ze=0,Ze=R.length-1;if(G===pe){if(F===_e)return w=De!==-1&&R[De][a]===F,De;F>=_e?ze=De===-1?0:De:Ze=De}return q.lastKey=G,q.lastNeedle=F,q.lastIndex=C(R,F,ze,Ze)}function E(R,F){const q=F.map(I);for(let G=0;G<R.length;G++){const pe=R[G];for(let _e=0;_e<pe.length;_e++){const De=pe[_e];if(De.length===1)continue;const ze=De[l],Ze=De[c],tt=De[u],Tt=q[ze],It=Tt[Ze]||(Tt[Ze]=[]),rt=F[ze];let Rt=S(It,tt,L(It,tt,rt,Ze));rt.lastIndex=++Rt,A(It,Rt,[tt,G,De[a]])}}return q}function A(R,F,q){for(let G=R.length;G>F;G--)R[G]=R[G-1];R[F]=q}function I(){return{__proto__:null}}const T=function(R,F){const q=N(R);if(!("sections"in q))return new z(q,F);const G=[],pe=[],_e=[],De=[],ze=[];M(q,F,G,pe,_e,De,ze,0,0,1/0,1/0);const Ze={version:3,file:q.file,names:De,sources:pe,sourcesContent:_e,mappings:G,ignoreList:ze};return ne(Ze)};function N(R){return typeof R=="string"?JSON.parse(R):R}function M(R,F,q,G,pe,_e,De,ze,Ze,tt,Tt){const{sections:It}=R;for(let rt=0;rt<It.length;rt++){const{map:Rt,offset:si}=It[rt];let Jn=tt,oi=Tt;if(rt+1<It.length){const Zi=It[rt+1].offset;Jn=Math.min(tt,ze+Zi.line),Jn===tt?oi=Math.min(Tt,Ze+Zi.column):Jn<tt&&(oi=Ze+Zi.column)}V(Rt,F,q,G,pe,_e,De,ze+si.line,Ze+si.column,Jn,oi)}}function V(R,F,q,G,pe,_e,De,ze,Ze,tt,Tt){const It=N(R);if("sections"in It)return M(...arguments);const rt=new z(It,F),Rt=G.length,si=_e.length,Jn=j(rt),{resolvedSources:oi,sourcesContent:Zi,ignoreList:Ar}=rt;if(W(G,oi),W(_e,rt.names),Zi)W(pe,Zi);else for(let _s=0;_s<oi.length;_s++)pe.push(null);if(Ar)for(let _s=0;_s<Ar.length;_s++)De.push(Ar[_s]+Rt);for(let _s=0;_s<Jn.length;_s++){const mr=ze+_s;if(mr>tt)return;const Mo=B(q,mr),Ha=_s===0?Ze:0,Oo=Jn[_s];for(let pa=0;pa<Oo.length;pa++){const Ys=Oo[pa],Il=Ha+Ys[a];if(mr===tt&&Il>=Tt)return;if(Ys.length===1){Mo.push([Il]);continue}const Xr=Rt+Ys[l],Tl=Ys[c],$a=Ys[u];Mo.push(Ys.length===4?[Il,Xr,Tl,$a]:[Il,Xr,Tl,$a,si+Ys[h]])}}}function W(R,F){for(let q=0;q<F.length;q++)R.push(F[q])}function B(R,F){for(let q=R.length;q<=F;q++)R[q]=[];return R[F]}const $="`line` must be greater than 0 (lines start at line 1)",Y="`column` must be greater than or equal to 0 (columns start at column 0)",le=-1,re=1;class z{constructor(F,q){const G=typeof F=="string";if(!G&&F._decodedMemo)return F;const pe=G?JSON.parse(F):F,{version:_e,file:De,names:ze,sourceRoot:Ze,sources:tt,sourcesContent:Tt}=pe;this.version=_e,this.file=De,this.names=ze||[],this.sourceRoot=Ze,this.sources=tt,this.sourcesContent=Tt,this.ignoreList=pe.ignoreList||pe.x_google_ignoreList||void 0;const It=r(Ze||"",o(q));this.resolvedSources=tt.map(Rt=>r(Rt||"",It));const{mappings:rt}=pe;typeof rt=="string"?(this._encoded=rt,this._decoded=void 0):(this._encoded=void 0,this._decoded=p(rt,G)),this._decodedMemo=k(),this._bySources=void 0,this._bySourceMemos=void 0}}function K(R){return R}function Z(R){var F,q;return(F=(q=R)._encoded)!==null&&F!==void 0?F:q._encoded=i.encode(R._decoded)}function j(R){var F;return(F=R)._decoded||(F._decoded=i.decode(R._encoded))}function ce(R,F,q){const G=j(R);if(F>=G.length)return null;const pe=G[F],_e=he(pe,R._decodedMemo,F,q,re);return _e===-1?null:pe[_e]}function ie(R,F){let{line:q,column:G,bias:pe}=F;if(q--,q<0)throw new Error($);if(G<0)throw new Error(Y);const _e=j(R);if(q>=_e.length)return Fe(null,null,null,null);const De=_e[q],ze=he(De,R._decodedMemo,q,G,pe||re);if(ze===-1)return Fe(null,null,null,null);const Ze=De[ze];if(Ze.length===1)return Fe(null,null,null,null);const{names:tt,resolvedSources:Tt}=R;return Fe(Tt[Ze[l]],Ze[c]+1,Ze[u],Ze.length===5?tt[Ze[h]]:null)}function de(R,F){const{source:q,line:G,column:pe,bias:_e}=F;return ee(R,q,G,pe,_e||re,!1)}function Le(R,F){const{source:q,line:G,column:pe,bias:_e}=F;return ee(R,q,G,pe,_e||le,!0)}function Te(R,F){const q=j(R),{names:G,resolvedSources:pe}=R;for(let _e=0;_e<q.length;_e++){const De=q[_e];for(let ze=0;ze<De.length;ze++){const Ze=De[ze],tt=_e+1,Tt=Ze[0];let It=null,rt=null,Rt=null,si=null;Ze.length!==1&&(It=pe[Ze[1]],rt=Ze[2]+1,Rt=Ze[3]),Ze.length===5&&(si=G[Ze[4]]),F({generatedLine:tt,generatedColumn:Tt,source:It,originalLine:rt,originalColumn:Rt,name:si})}}}function ve(R,F){const{sources:q,resolvedSources:G}=R;let pe=q.indexOf(F);return pe===-1&&(pe=G.indexOf(F)),pe}function Ke(R,F){const{sourcesContent:q}=R;if(q==null)return null;const G=ve(R,F);return G===-1?null:q[G]}function Q(R,F){const{ignoreList:q}=R;if(q==null)return!1;const G=ve(R,F);return G===-1?!1:q.includes(G)}function ne(R,F){const q=new z(Re(R,[]),F);return q._decoded=R.mappings,q}function xe(R){return Re(R,j(R))}function He(R){return Re(R,Z(R))}function Re(R,F){return{version:R.version,file:R.file,names:R.names,sourceRoot:R.sourceRoot,sources:R.sources,sourcesContent:R.sourcesContent,mappings:F,ignoreList:R.ignoreList||R.x_google_ignoreList}}function Fe(R,F,q,G){return{source:R,line:F,column:q,name:G}}function Ye(R,F){return{line:R,column:F}}function he(R,F,q,G,pe){let _e=L(R,G,F,q);return w?_e=(pe===le?S:x)(R,G,_e):pe===le&&_e++,_e===-1||_e===R.length?-1:_e}function te(R,F,q,G,pe){let _e=he(R,F,q,G,re);if(!w&&pe===le&&_e++,_e===-1||_e===R.length)return[];const De=w?G:R[_e][a];w||(_e=x(R,De,_e));const ze=S(R,De,_e),Ze=[];for(;_e<=ze;_e++){const tt=R[_e];Ze.push(Ye(tt[d]+1,tt[f]))}return Ze}function ee(R,F,q,G,pe,_e){var De;if(q--,q<0)throw new Error($);if(G<0)throw new Error(Y);const{sources:ze,resolvedSources:Ze}=R;let tt=ze.indexOf(F);if(tt===-1&&(tt=Ze.indexOf(F)),tt===-1)return _e?[]:Ye(null,null);const It=((De=R)._bySources||(De._bySources=E(j(R),R._bySourceMemos=ze.map(k))))[tt][q];if(It==null)return _e?[]:Ye(null,null);const rt=R._bySourceMemos[tt];if(_e)return te(It,rt,q,G,pe);const Rt=he(It,rt,q,G,pe);if(Rt===-1)return Ye(null,null);const si=It[Rt];return Ye(si[d]+1,si[f])}t.AnyMap=T,t.GREATEST_LOWER_BOUND=re,t.LEAST_UPPER_BOUND=le,t.TraceMap=z,t.allGeneratedPositionsFor=Le,t.decodedMap=xe,t.decodedMappings=j,t.eachMapping=Te,t.encodedMap=He,t.encodedMappings=Z,t.generatedPositionFor=de,t.isIgnored=Q,t.originalPositionFor=ie,t.presortedDecodedMap=ne,t.sourceContentFor=Ke,t.traceSegment=ce})}(tP,tP.exports)),tP.exports}(function(n,e){(function(t,i){i(e,gnt(),CSe(),_nt())})(qh,function(t,i,s,r){class d{constructor({file:$,sourceRoot:Y}={}){this._names=new i.SetArray,this._sources=new i.SetArray,this._sourcesContent=[],this._mappings=[],this.file=$,this.sourceRoot=Y,this._ignoreList=new i.SetArray}}function f(B){return B}function p(B,$,Y,le,re,z,K,Z){return L(!1,B,$,Y,le,re,z,K,Z)}function g(B,$){return W(!1,B,$)}const m=(B,$,Y,le,re,z,K,Z)=>L(!0,B,$,Y,le,re,z,K,Z),_=(B,$)=>W(!0,B,$);function b(B,$,Y){const{_sources:le,_sourcesContent:re}=B,z=i.put(le,$);re[z]=Y}function w(B,$,Y=!0){const{_sources:le,_sourcesContent:re,_ignoreList:z}=B,K=i.put(le,$);K===re.length&&(re[K]=null),Y?i.put(z,K):i.remove(z,K)}function C(B){const{_mappings:$,_sources:Y,_sourcesContent:le,_names:re,_ignoreList:z}=B;return T($),{version:3,file:B.file||void 0,names:re.array,sourceRoot:B.sourceRoot||void 0,sources:Y.array,sourcesContent:le,mappings:$,ignoreList:z.array}}function S(B){const $=C(B);return Object.assign(Object.assign({},$),{mappings:s.encode($.mappings)})}function x(B){const $=new r.TraceMap(B),Y=new d({file:$.file,sourceRoot:$.sourceRoot});return N(Y._names,$.names),N(Y._sources,$.sources),Y._sourcesContent=$.sourcesContent||$.sources.map(()=>null),Y._mappings=r.decodedMappings($),$.ignoreList&&N(Y._ignoreList,$.ignoreList),Y}function k(B){const $=[],{_mappings:Y,_sources:le,_names:re}=B;for(let z=0;z<Y.length;z++){const K=Y[z];for(let Z=0;Z<K.length;Z++){const j=K[Z],ce={line:z+1,column:j[0]};let ie,de,Le;j.length!==1&&(ie=le.array[j[1]],de={line:j[2]+1,column:j[3]},j.length===5&&(Le=re.array[j[4]])),$.push({generated:ce,source:ie,original:de,name:Le})}}return $}function L(B,$,Y,le,re,z,K,Z,j){const{_mappings:ce,_sources:ie,_sourcesContent:de,_names:Le}=$,Te=E(ce,Y),ve=A(Te,le);if(!re)return B&&M(Te,ve)?void 0:I(Te,ve,[le]);const Ke=i.put(ie,re),Q=Z?i.put(Le,Z):-1;if(Ke===de.length&&(de[Ke]=j??null),!(B&&V(Te,ve,Ke,z,K,Q)))return I(Te,ve,Z?[le,Ke,z,K,Q]:[le,Ke,z,K])}function E(B,$){for(let Y=B.length;Y<=$;Y++)B[Y]=[];return B[$]}function A(B,$){let Y=B.length;for(let le=Y-1;le>=0;Y=le--){const re=B[le];if($>=re[0])break}return Y}function I(B,$,Y){for(let le=B.length;le>$;le--)B[le]=B[le-1];B[$]=Y}function T(B){const{length:$}=B;let Y=$;for(let le=Y-1;le>=0&&!(B[le].length>0);Y=le,le--);Y<$&&(B.length=Y)}function N(B,$){for(let Y=0;Y<$.length;Y++)i.put(B,$[Y])}function M(B,$){return $===0?!0:B[$-1].length===1}function V(B,$,Y,le,re,z){if($===0)return!1;const K=B[$-1];return K.length===1?!1:Y===K[1]&&le===K[2]&&re===K[3]&&z===(K.length===5?K[4]:-1)}function W(B,$,Y){const{generated:le,source:re,original:z,name:K,content:Z}=Y;return re?L(B,$,le.line-1,le.column,re,z.line-1,z.column,K,Z):L(B,$,le.line-1,le.column,null,null,null,null,null)}t.GenMapping=d,t.addMapping=g,t.addSegment=p,t.allMappings=k,t.fromMap=x,t.maybeAddMapping=_,t.maybeAddSegment=m,t.setIgnore=w,t.setSourceContent=b,t.toDecodedMap=C,t.toEncodedMap=S,Object.defineProperty(t,"__esModule",{value:!0})})})(W$,W$.exports);var eE=W$.exports;function vnt({code:n,mappings:e},t,i,s,r){const o=bnt(s,r),a=new eE.GenMapping({file:i.compiledFilename});let l=0,c=e[0];for(;c===void 0&&l<e.length-1;)l++,c=e[l];let u=0,h=0;c!==h&&eE.maybeAddSegment(a,u,0,t,u,0);for(let g=0;g<n.length;g++){if(g===c){const m=c-h,_=o[l];for(eE.maybeAddSegment(a,u,m,t,u,_);(c===g||c===void 0)&&l<e.length-1;)l++,c=e[l]}n.charCodeAt(g)===we.lineFeed&&(u++,h=g+1,c!==h&&eE.maybeAddSegment(a,u,0,t,u,0))}const{sourceRoot:d,sourcesContent:f,...p}=eE.toEncodedMap(a);return p}function bnt(n,e){const t=new Array(e.length);let i=0,s=e[i].start,r=0;for(let o=0;o<n.length;o++)o===s&&(t[i]=s-r,i++,s=e[i].start),n.charCodeAt(o)===we.lineFeed&&(r=o+1);return t}const ynt={require:` + import {createRequire as CREATE_REQUIRE_NAME} from "module"; + const require = CREATE_REQUIRE_NAME(import.meta.url); + `,interopRequireWildcard:` + function interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + return newObj; + } + } + `,interopRequireDefault:` + function interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + `,createNamedExportFrom:` + function createNamedExportFrom(obj, localName, importedName) { + Object.defineProperty(exports, localName, {enumerable: true, configurable: true, get: () => obj[importedName]}); + } + `,createStarExport:` + function createStarExport(obj) { + Object.keys(obj) + .filter((key) => key !== "default" && key !== "__esModule") + .forEach((key) => { + if (exports.hasOwnProperty(key)) { + return; + } + Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); + }); + } + `,nullishCoalesce:` + function nullishCoalesce(lhs, rhsFn) { + if (lhs != null) { + return lhs; + } else { + return rhsFn(); + } + } + `,asyncNullishCoalesce:` + async function asyncNullishCoalesce(lhs, rhsFn) { + if (lhs != null) { + return lhs; + } else { + return await rhsFn(); + } + } + `,optionalChain:` + function optionalChain(ops) { + let lastAccessLHS = undefined; + let value = ops[0]; + let i = 1; + while (i < ops.length) { + const op = ops[i]; + const fn = ops[i + 1]; + i += 2; + if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { + return undefined; + } + if (op === 'access' || op === 'optionalAccess') { + lastAccessLHS = value; + value = fn(value); + } else if (op === 'call' || op === 'optionalCall') { + value = fn((...args) => value.call(lastAccessLHS, ...args)); + lastAccessLHS = undefined; + } + } + return value; + } + `,asyncOptionalChain:` + async function asyncOptionalChain(ops) { + let lastAccessLHS = undefined; + let value = ops[0]; + let i = 1; + while (i < ops.length) { + const op = ops[i]; + const fn = ops[i + 1]; + i += 2; + if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { + return undefined; + } + if (op === 'access' || op === 'optionalAccess') { + lastAccessLHS = value; + value = await fn(value); + } else if (op === 'call' || op === 'optionalCall') { + value = await fn((...args) => value.call(lastAccessLHS, ...args)); + lastAccessLHS = undefined; + } + } + return value; + } + `,optionalChainDelete:` + function optionalChainDelete(ops) { + const result = OPTIONAL_CHAIN_NAME(ops); + return result == null ? true : result; + } + `,asyncOptionalChainDelete:` + async function asyncOptionalChainDelete(ops) { + const result = await ASYNC_OPTIONAL_CHAIN_NAME(ops); + return result == null ? true : result; + } + `};class UO{__init(){this.helperNames={}}__init2(){this.createRequireName=null}constructor(e){this.nameManager=e,UO.prototype.__init.call(this),UO.prototype.__init2.call(this)}getHelperName(e){let t=this.helperNames[e];return t||(t=this.nameManager.claimFreeName(`_${e}`),this.helperNames[e]=t,t)}emitHelpers(){let e="";this.helperNames.optionalChainDelete&&this.getHelperName("optionalChain"),this.helperNames.asyncOptionalChainDelete&&this.getHelperName("asyncOptionalChain");for(const[t,i]of Object.entries(ynt)){const s=this.helperNames[t];let r=i;t==="optionalChainDelete"?r=r.replace("OPTIONAL_CHAIN_NAME",this.helperNames.optionalChain):t==="asyncOptionalChainDelete"?r=r.replace("ASYNC_OPTIONAL_CHAIN_NAME",this.helperNames.asyncOptionalChain):t==="require"&&(this.createRequireName===null&&(this.createRequireName=this.nameManager.claimFreeName("_createRequire")),r=r.replace(/CREATE_REQUIRE_NAME/g,this.createRequireName)),s&&(e+=" ",e+=r.replace(t,s).replace(/\s+/g," ").trim())}return e}}function xce(n,e,t){wnt(n,t)&&Cnt(n,e,t)}function wnt(n,e){for(const t of n.tokens)if(t.type===y.name&&!t.isType&&$it(t)&&e.has(n.identifierNameForToken(t)))return!0;return!1}function Cnt(n,e,t){const i=[];let s=e.length-1;for(let r=n.tokens.length-1;;r--){for(;i.length>0&&i[i.length-1].startTokenIndex===r+1;)i.pop();for(;s>=0&&e[s].endTokenIndex===r+1;)i.push(e[s]),s--;if(r<0)break;const o=n.tokens[r],a=n.identifierNameForToken(o);if(i.length>1&&!o.isType&&o.type===y.name&&t.has(a)){if(zit(o))Lce(i[i.length-1],n,a);else if(Uit(o)){let l=i.length-1;for(;l>0&&!i[l].isFunctionScope;)l--;if(l<0)throw new Error("Did not find parent function scope.");Lce(i[l],n,a)}}}if(i.length>0)throw new Error("Expected empty scope stack after processing file.")}function Lce(n,e,t){for(let i=n.startTokenIndex;i<n.endTokenIndex;i++){const s=e.tokens[i];(s.type===y.name||s.type===y.jsxName)&&e.identifierNameForToken(s)===t&&(s.shadowsGlobal=!0)}}function Snt(n,e){const t=[];for(const i of e)i.type===y.name&&t.push(n.slice(i.start,i.end));return t}class OJ{__init(){this.usedNames=new Set}constructor(e,t){OJ.prototype.__init.call(this),this.usedNames=new Set(Snt(e,t))}claimFreeName(e){const t=this.findFreeName(e);return this.usedNames.add(t),t}findFreeName(e){if(!this.usedNames.has(e))return e;let t=2;for(;this.usedNames.has(e+String(t));)t++;return e+String(t)}}var is={},V$={},Tf={},xnt=qh&&qh.__extends||function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var r in s)s.hasOwnProperty(r)&&(i[r]=s[r])},n(e,t)};return function(e,t){n(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Tf,"__esModule",{value:!0});Tf.DetailContext=Tf.NoopContext=Tf.VError=void 0;var SSe=function(n){xnt(e,n);function e(t,i){var s=n.call(this,i)||this;return s.path=t,Object.setPrototypeOf(s,e.prototype),s}return e}(Error);Tf.VError=SSe;var Lnt=function(){function n(){}return n.prototype.fail=function(e,t,i){return!1},n.prototype.unionResolver=function(){return this},n.prototype.createContext=function(){return this},n.prototype.resolveUnion=function(e){},n}();Tf.NoopContext=Lnt;var xSe=function(){function n(){this._propNames=[""],this._messages=[null],this._score=0}return n.prototype.fail=function(e,t,i){return this._propNames.push(e),this._messages.push(t),this._score+=i,!1},n.prototype.unionResolver=function(){return new Ent},n.prototype.resolveUnion=function(e){for(var t,i,s=e,r=null,o=0,a=s.contexts;o<a.length;o++){var l=a[o];(!r||l._score>=r._score)&&(r=l)}r&&r._score>0&&((t=this._propNames).push.apply(t,r._propNames),(i=this._messages).push.apply(i,r._messages))},n.prototype.getError=function(e){for(var t=[],i=this._propNames.length-1;i>=0;i--){var s=this._propNames[i];e+=typeof s=="number"?"["+s+"]":s?"."+s:"";var r=this._messages[i];r&&t.push(e+" "+r)}return new SSe(e,t.join("; "))},n.prototype.getErrorDetail=function(e){for(var t=[],i=this._propNames.length-1;i>=0;i--){var s=this._propNames[i];e+=typeof s=="number"?"["+s+"]":s?"."+s:"";var r=this._messages[i];r&&t.push({path:e,message:r})}for(var o=null,i=t.length-1;i>=0;i--)o&&(t[i].nested=[o]),o=t[i];return o},n}();Tf.DetailContext=xSe;var Ent=function(){function n(){this.contexts=[]}return n.prototype.createContext=function(){var e=new xSe;return this.contexts.push(e),e},n}();(function(n){var e=qh&&qh.__extends||function(){var j=function(ce,ie){return j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(de,Le){de.__proto__=Le}||function(de,Le){for(var Te in Le)Le.hasOwnProperty(Te)&&(de[Te]=Le[Te])},j(ce,ie)};return function(ce,ie){j(ce,ie);function de(){this.constructor=ce}ce.prototype=ie===null?Object.create(ie):(de.prototype=ie.prototype,new de)}}();Object.defineProperty(n,"__esModule",{value:!0}),n.basicTypes=n.BasicType=n.TParamList=n.TParam=n.param=n.TFunc=n.func=n.TProp=n.TOptional=n.opt=n.TIface=n.iface=n.TEnumLiteral=n.enumlit=n.TEnumType=n.enumtype=n.TIntersection=n.intersection=n.TUnion=n.union=n.TTuple=n.tuple=n.TArray=n.array=n.TLiteral=n.lit=n.TName=n.name=n.TType=void 0;var t=Tf,i=function(){function j(){}return j}();n.TType=i;function s(j){return typeof j=="string"?o(j):j}function r(j,ce){var ie=j[ce];if(!ie)throw new Error("Unknown type "+ce);return ie}function o(j){return new a(j)}n.name=o;var a=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.name=ie,de._failMsg="is not a "+ie,de}return ce.prototype.getChecker=function(ie,de,Le){var Te=this,ve=r(ie,this.name),Ke=ve.getChecker(ie,de,Le);return ve instanceof $||ve instanceof ce?Ke:function(Q,ne){return Ke(Q,ne)?!0:ne.fail(null,Te._failMsg,0)}},ce}(i);n.TName=a;function l(j){return new c(j)}n.lit=l;var c=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.value=ie,de.name=JSON.stringify(ie),de._failMsg="is not "+de.name,de}return ce.prototype.getChecker=function(ie,de){var Le=this;return function(Te,ve){return Te===Le.value?!0:ve.fail(null,Le._failMsg,-1)}},ce}(i);n.TLiteral=c;function u(j){return new h(s(j))}n.array=u;var h=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.ttype=ie,de}return ce.prototype.getChecker=function(ie,de){var Le=this.ttype.getChecker(ie,de);return function(Te,ve){if(!Array.isArray(Te))return ve.fail(null,"is not an array",0);for(var Ke=0;Ke<Te.length;Ke++){var Q=Le(Te[Ke],ve);if(!Q)return ve.fail(Ke,null,1)}return!0}},ce}(i);n.TArray=h;function d(){for(var j=[],ce=0;ce<arguments.length;ce++)j[ce]=arguments[ce];return new f(j.map(function(ie){return s(ie)}))}n.tuple=d;var f=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.ttypes=ie,de}return ce.prototype.getChecker=function(ie,de){var Le=this.ttypes.map(function(ve){return ve.getChecker(ie,de)}),Te=function(ve,Ke){if(!Array.isArray(ve))return Ke.fail(null,"is not an array",0);for(var Q=0;Q<Le.length;Q++){var ne=Le[Q](ve[Q],Ke);if(!ne)return Ke.fail(Q,null,1)}return!0};return de?function(ve,Ke){return Te(ve,Ke)?ve.length<=Le.length?!0:Ke.fail(Le.length,"is extraneous",2):!1}:Te},ce}(i);n.TTuple=f;function p(){for(var j=[],ce=0;ce<arguments.length;ce++)j[ce]=arguments[ce];return new g(j.map(function(ie){return s(ie)}))}n.union=p;var g=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;de.ttypes=ie;var Le=ie.map(function(ve){return ve instanceof a||ve instanceof c?ve.name:null}).filter(function(ve){return ve}),Te=ie.length-Le.length;return Le.length?(Te>0&&Le.push(Te+" more"),de._failMsg="is none of "+Le.join(", ")):de._failMsg="is none of "+Te+" types",de}return ce.prototype.getChecker=function(ie,de){var Le=this,Te=this.ttypes.map(function(ve){return ve.getChecker(ie,de)});return function(ve,Ke){for(var Q=Ke.unionResolver(),ne=0;ne<Te.length;ne++){var xe=Te[ne](ve,Q.createContext());if(xe)return!0}return Ke.resolveUnion(Q),Ke.fail(null,Le._failMsg,0)}},ce}(i);n.TUnion=g;function m(){for(var j=[],ce=0;ce<arguments.length;ce++)j[ce]=arguments[ce];return new _(j.map(function(ie){return s(ie)}))}n.intersection=m;var _=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.ttypes=ie,de}return ce.prototype.getChecker=function(ie,de){var Le=new Set,Te=this.ttypes.map(function(ve){return ve.getChecker(ie,de,Le)});return function(ve,Ke){var Q=Te.every(function(ne){return ne(ve,Ke)});return Q?!0:Ke.fail(null,null,0)}},ce}(i);n.TIntersection=_;function b(j){return new w(j)}n.enumtype=b;var w=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.members=ie,de.validValues=new Set,de._failMsg="is not a valid enum value",de.validValues=new Set(Object.keys(ie).map(function(Le){return ie[Le]})),de}return ce.prototype.getChecker=function(ie,de){var Le=this;return function(Te,ve){return Le.validValues.has(Te)?!0:ve.fail(null,Le._failMsg,0)}},ce}(i);n.TEnumType=w;function C(j,ce){return new S(j,ce)}n.enumlit=C;var S=function(j){e(ce,j);function ce(ie,de){var Le=j.call(this)||this;return Le.enumName=ie,Le.prop=de,Le._failMsg="is not "+ie+"."+de,Le}return ce.prototype.getChecker=function(ie,de){var Le=this,Te=r(ie,this.enumName);if(!(Te instanceof w))throw new Error("Type "+this.enumName+" used in enumlit is not an enum type");var ve=Te.members[this.prop];if(!Te.members.hasOwnProperty(this.prop))throw new Error("Unknown value "+this.enumName+"."+this.prop+" used in enumlit");return function(Ke,Q){return Ke===ve?!0:Q.fail(null,Le._failMsg,-1)}},ce}(i);n.TEnumLiteral=S;function x(j){return Object.keys(j).map(function(ce){return k(ce,j[ce])})}function k(j,ce){return ce instanceof I?new T(j,ce.ttype,!0):new T(j,s(ce),!1)}function L(j,ce){return new E(j,x(ce))}n.iface=L;var E=function(j){e(ce,j);function ce(ie,de){var Le=j.call(this)||this;return Le.bases=ie,Le.props=de,Le.propSet=new Set(de.map(function(Te){return Te.name})),Le}return ce.prototype.getChecker=function(ie,de,Le){var Te=this,ve=this.bases.map(function(Re){return r(ie,Re).getChecker(ie,de)}),Ke=this.props.map(function(Re){return Re.ttype.getChecker(ie,de)}),Q=new t.NoopContext,ne=this.props.map(function(Re,Fe){return!Re.isOpt&&!Ke[Fe](void 0,Q)}),xe=function(Re,Fe){if(typeof Re!="object"||Re===null)return Fe.fail(null,"is not an object",0);for(var Ye=0;Ye<ve.length;Ye++)if(!ve[Ye](Re,Fe))return!1;for(var Ye=0;Ye<Ke.length;Ye++){var he=Te.props[Ye].name,te=Re[he];if(te===void 0){if(ne[Ye])return Fe.fail(he,"is missing",1)}else{var ee=Ke[Ye](te,Fe);if(!ee)return Fe.fail(he,null,1)}}return!0};if(!de)return xe;var He=this.propSet;return Le&&(this.propSet.forEach(function(Re){return Le.add(Re)}),He=Le),function(Re,Fe){if(!xe(Re,Fe))return!1;for(var Ye in Re)if(!He.has(Ye))return Fe.fail(Ye,"is extraneous",2);return!0}},ce}(i);n.TIface=E;function A(j){return new I(s(j))}n.opt=A;var I=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.ttype=ie,de}return ce.prototype.getChecker=function(ie,de){var Le=this.ttype.getChecker(ie,de);return function(Te,ve){return Te===void 0||Le(Te,ve)}},ce}(i);n.TOptional=I;var T=function(){function j(ce,ie,de){this.name=ce,this.ttype=ie,this.isOpt=de}return j}();n.TProp=T;function N(j){for(var ce=[],ie=1;ie<arguments.length;ie++)ce[ie-1]=arguments[ie];return new M(new B(ce),s(j))}n.func=N;var M=function(j){e(ce,j);function ce(ie,de){var Le=j.call(this)||this;return Le.paramList=ie,Le.result=de,Le}return ce.prototype.getChecker=function(ie,de){return function(Le,Te){return typeof Le=="function"?!0:Te.fail(null,"is not a function",0)}},ce}(i);n.TFunc=M;function V(j,ce,ie){return new W(j,s(ce),!!ie)}n.param=V;var W=function(){function j(ce,ie,de){this.name=ce,this.ttype=ie,this.isOpt=de}return j}();n.TParam=W;var B=function(j){e(ce,j);function ce(ie){var de=j.call(this)||this;return de.params=ie,de}return ce.prototype.getChecker=function(ie,de){var Le=this,Te=this.params.map(function(ne){return ne.ttype.getChecker(ie,de)}),ve=new t.NoopContext,Ke=this.params.map(function(ne,xe){return!ne.isOpt&&!Te[xe](void 0,ve)}),Q=function(ne,xe){if(!Array.isArray(ne))return xe.fail(null,"is not an array",0);for(var He=0;He<Te.length;He++){var Re=Le.params[He];if(ne[He]===void 0){if(Ke[He])return xe.fail(Re.name,"is missing",1)}else{var Fe=Te[He](ne[He],xe);if(!Fe)return xe.fail(Re.name,null,1)}}return!0};return de?function(ne,xe){return Q(ne,xe)?ne.length<=Te.length?!0:xe.fail(Te.length,"is extraneous",2):!1}:Q},ce}(i);n.TParamList=B;var $=function(j){e(ce,j);function ce(ie,de){var Le=j.call(this)||this;return Le.validator=ie,Le.message=de,Le}return ce.prototype.getChecker=function(ie,de){var Le=this;return function(Te,ve){return Le.validator(Te)?!0:ve.fail(null,Le.message,0)}},ce}(i);n.BasicType=$,n.basicTypes={any:new $(function(j){return!0},"is invalid"),number:new $(function(j){return typeof j=="number"},"is not a number"),object:new $(function(j){return typeof j=="object"&&j},"is not an object"),boolean:new $(function(j){return typeof j=="boolean"},"is not a boolean"),string:new $(function(j){return typeof j=="string"},"is not a string"),symbol:new $(function(j){return typeof j=="symbol"},"is not a symbol"),void:new $(function(j){return j==null},"is not void"),undefined:new $(function(j){return j===void 0},"is not undefined"),null:new $(function(j){return j===null},"is not null"),never:new $(function(j){return!1},"is unexpected"),Date:new $(le("[object Date]"),"is not a Date"),RegExp:new $(le("[object RegExp]"),"is not a RegExp")};var Y=Object.prototype.toString;function le(j){return function(ce){return typeof ce=="object"&&ce&&Y.call(ce)===j}}typeof Buffer<"u"&&(n.basicTypes.Buffer=new $(function(j){return Buffer.isBuffer(j)},"is not a Buffer"));for(var re=function(j){n.basicTypes[j.name]=new $(function(ce){return ce instanceof j},"is not a "+j.name)},z=0,K=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,ArrayBuffer];z<K.length;z++){var Z=K[z];re(Z)}})(V$);(function(n){var e=qh&&qh.__spreadArrays||function(){for(var l=0,c=0,u=arguments.length;c<u;c++)l+=arguments[c].length;for(var h=Array(l),d=0,c=0;c<u;c++)for(var f=arguments[c],p=0,g=f.length;p<g;p++,d++)h[d]=f[p];return h};Object.defineProperty(n,"__esModule",{value:!0}),n.Checker=n.createCheckers=void 0;var t=V$,i=Tf,s=V$;Object.defineProperty(n,"TArray",{enumerable:!0,get:function(){return s.TArray}}),Object.defineProperty(n,"TEnumType",{enumerable:!0,get:function(){return s.TEnumType}}),Object.defineProperty(n,"TEnumLiteral",{enumerable:!0,get:function(){return s.TEnumLiteral}}),Object.defineProperty(n,"TFunc",{enumerable:!0,get:function(){return s.TFunc}}),Object.defineProperty(n,"TIface",{enumerable:!0,get:function(){return s.TIface}}),Object.defineProperty(n,"TLiteral",{enumerable:!0,get:function(){return s.TLiteral}}),Object.defineProperty(n,"TName",{enumerable:!0,get:function(){return s.TName}}),Object.defineProperty(n,"TOptional",{enumerable:!0,get:function(){return s.TOptional}}),Object.defineProperty(n,"TParam",{enumerable:!0,get:function(){return s.TParam}}),Object.defineProperty(n,"TParamList",{enumerable:!0,get:function(){return s.TParamList}}),Object.defineProperty(n,"TProp",{enumerable:!0,get:function(){return s.TProp}}),Object.defineProperty(n,"TTuple",{enumerable:!0,get:function(){return s.TTuple}}),Object.defineProperty(n,"TType",{enumerable:!0,get:function(){return s.TType}}),Object.defineProperty(n,"TUnion",{enumerable:!0,get:function(){return s.TUnion}}),Object.defineProperty(n,"TIntersection",{enumerable:!0,get:function(){return s.TIntersection}}),Object.defineProperty(n,"array",{enumerable:!0,get:function(){return s.array}}),Object.defineProperty(n,"enumlit",{enumerable:!0,get:function(){return s.enumlit}}),Object.defineProperty(n,"enumtype",{enumerable:!0,get:function(){return s.enumtype}}),Object.defineProperty(n,"func",{enumerable:!0,get:function(){return s.func}}),Object.defineProperty(n,"iface",{enumerable:!0,get:function(){return s.iface}}),Object.defineProperty(n,"lit",{enumerable:!0,get:function(){return s.lit}}),Object.defineProperty(n,"name",{enumerable:!0,get:function(){return s.name}}),Object.defineProperty(n,"opt",{enumerable:!0,get:function(){return s.opt}}),Object.defineProperty(n,"param",{enumerable:!0,get:function(){return s.param}}),Object.defineProperty(n,"tuple",{enumerable:!0,get:function(){return s.tuple}}),Object.defineProperty(n,"union",{enumerable:!0,get:function(){return s.union}}),Object.defineProperty(n,"intersection",{enumerable:!0,get:function(){return s.intersection}}),Object.defineProperty(n,"BasicType",{enumerable:!0,get:function(){return s.BasicType}});var r=Tf;Object.defineProperty(n,"VError",{enumerable:!0,get:function(){return r.VError}});function o(){for(var l=[],c=0;c<arguments.length;c++)l[c]=arguments[c];for(var u=Object.assign.apply(Object,e([{},t.basicTypes],l)),h={},d=0,f=l;d<f.length;d++)for(var p=f[d],g=0,m=Object.keys(p);g<m.length;g++){var _=m[g];h[_]=new a(u,p[_])}return h}n.createCheckers=o;var a=function(){function l(c,u,h){if(h===void 0&&(h="value"),this.suite=c,this.ttype=u,this._path=h,this.props=new Map,u instanceof t.TIface)for(var d=0,f=u.props;d<f.length;d++){var p=f[d];this.props.set(p.name,p.ttype)}this.checkerPlain=this.ttype.getChecker(c,!1),this.checkerStrict=this.ttype.getChecker(c,!0)}return l.prototype.setReportedPath=function(c){this._path=c},l.prototype.check=function(c){return this._doCheck(this.checkerPlain,c)},l.prototype.test=function(c){return this.checkerPlain(c,new i.NoopContext)},l.prototype.validate=function(c){return this._doValidate(this.checkerPlain,c)},l.prototype.strictCheck=function(c){return this._doCheck(this.checkerStrict,c)},l.prototype.strictTest=function(c){return this.checkerStrict(c,new i.NoopContext)},l.prototype.strictValidate=function(c){return this._doValidate(this.checkerStrict,c)},l.prototype.getProp=function(c){var u=this.props.get(c);if(!u)throw new Error("Type has no property "+c);return new l(this.suite,u,this._path+"."+c)},l.prototype.methodArgs=function(c){var u=this._getMethod(c);return new l(this.suite,u.paramList)},l.prototype.methodResult=function(c){var u=this._getMethod(c);return new l(this.suite,u.result)},l.prototype.getArgs=function(){if(!(this.ttype instanceof t.TFunc))throw new Error("getArgs() applied to non-function");return new l(this.suite,this.ttype.paramList)},l.prototype.getResult=function(){if(!(this.ttype instanceof t.TFunc))throw new Error("getResult() applied to non-function");return new l(this.suite,this.ttype.result)},l.prototype.getType=function(){return this.ttype},l.prototype._doCheck=function(c,u){var h=new i.NoopContext;if(!c(u,h)){var d=new i.DetailContext;throw c(u,d),d.getError(this._path)}},l.prototype._doValidate=function(c,u){var h=new i.NoopContext;if(c(u,h))return null;var d=new i.DetailContext;return c(u,d),d.getErrorDetail(this._path)},l.prototype._getMethod=function(c){var u=this.props.get(c);if(!u)throw new Error("Type has no property "+c);if(!(u instanceof t.TFunc))throw new Error("Property "+c+" is not a method");return u},l}();n.Checker=a})(is);const knt=is.union(is.lit("jsx"),is.lit("typescript"),is.lit("flow"),is.lit("imports"),is.lit("react-hot-loader"),is.lit("jest")),Int=is.iface([],{compiledFilename:"string"}),Tnt=is.iface([],{transforms:is.array("Transform"),disableESTransforms:is.opt("boolean"),jsxRuntime:is.opt(is.union(is.lit("classic"),is.lit("automatic"),is.lit("preserve"))),production:is.opt("boolean"),jsxImportSource:is.opt("string"),jsxPragma:is.opt("string"),jsxFragmentPragma:is.opt("string"),keepUnusedImports:is.opt("boolean"),preserveDynamicImport:is.opt("boolean"),injectCreateRequireForImportRequire:is.opt("boolean"),enableLegacyTypeScriptModuleInterop:is.opt("boolean"),enableLegacyBabel5ModuleInterop:is.opt("boolean"),sourceMapOptions:is.opt("SourceMapOptions"),filePath:is.opt("string")}),Dnt={Transform:knt,SourceMapOptions:Int,Options:Tnt},{Options:Nnt}=is.createCheckers(Dnt);function Ant(n){Nnt.strictCheck(n)}function LSe(){Ge(),No(!1)}function ESe(n){Ge(),EB(n)}function D_(n){gi(),FJ(n)}function jO(){gi(),D.tokens[D.tokens.length-1].identifierRole=ti.ImportDeclaration}function FJ(n){let e;D.scopeDepth===0?e=ti.TopLevelDeclaration:n?e=ti.BlockScopedDeclaration:e=ti.FunctionScopedDeclaration,D.tokens[D.tokens.length-1].identifierRole=e}function EB(n){switch(D.type){case y._this:{const e=Oi(0);Ge(),Ri(e);return}case y._yield:case y.name:{D.type=y.name,D_(n);return}case y.bracketL:{Ge(),BJ(y.bracketR,n,!0);return}case y.braceL:XJ(!0,n);return;default:Di()}}function BJ(n,e,t=!1,i=!1,s=0){let r=!0,o=!1;const a=D.tokens.length;for(;!Be(n)&&!D.error;)if(r?r=!1:(qe(y.comma),D.tokens[D.tokens.length-1].contextId=s,!o&&D.tokens[a].isType&&(D.tokens[D.tokens.length-1].isType=!0,o=!0)),!(t&&J(y.comma))){if(Be(n))break;if(J(y.ellipsis)){ESe(e),kSe(),Be(y.comma),qe(n);break}else Pnt(i,e)}}function Pnt(n,e){n&&WJ([fe._public,fe._protected,fe._private,fe._readonly,fe._override]),qO(e),kSe(),qO(e,!0)}function kSe(){Tn?Zrt():tn&&Hst()}function qO(n,e=!1){if(e||EB(n),!Be(y.eq))return;const t=D.tokens.length-1;No(),D.tokens[t].rhsEndIndex=D.tokens.length}function H$(){return J(y.name)}function Rnt(){return J(y.name)||!!(D.type&y.IS_KEYWORD)||J(y.string)||J(y.num)||J(y.bigint)||J(y.decimal)}function ISe(){const n=D.snapshot();return Ge(),(J(y.bracketL)||J(y.braceL)||J(y.star)||J(y.ellipsis)||J(y.hash)||Rnt())&&!_l()?!0:(D.restoreFromSnapshot(n),!1)}function WJ(n){for(;TSe(n)!==null;);}function TSe(n){if(!J(y.name))return null;const e=D.contextualKeyword;if(n.indexOf(e)!==-1&&ISe()){switch(e){case fe._readonly:D.tokens[D.tokens.length-1].type=y._readonly;break;case fe._abstract:D.tokens[D.tokens.length-1].type=y._abstract;break;case fe._static:D.tokens[D.tokens.length-1].type=y._static;break;case fe._public:D.tokens[D.tokens.length-1].type=y._public;break;case fe._private:D.tokens[D.tokens.length-1].type=y._private;break;case fe._protected:D.tokens[D.tokens.length-1].type=y._protected;break;case fe._override:D.tokens[D.tokens.length-1].type=y._override;break;case fe._declare:D.tokens[D.tokens.length-1].type=y._declare;break}return e}return null}function bN(){for(gi();Be(y.dot);)gi()}function Mnt(){bN(),!_l()&&J(y.lessThan)&&iL()}function Ont(){Ge(),yN()}function Fnt(){Ge()}function Bnt(){qe(y._typeof),J(y._import)?DSe():bN(),!_l()&&J(y.lessThan)&&iL()}function DSe(){qe(y._import),qe(y.parenL),qe(y.string),qe(y.parenR),Be(y.dot)&&bN(),J(y.lessThan)&&iL()}function Wnt(){Be(y._const);const n=Be(y._in),e=jr(fe._out);Be(y._const),(n||e)&&!J(y.name)?D.tokens[D.tokens.length-1].type=y.name:gi(),Be(y._extends)&&Us(),Be(y.eq)&&Us()}function E0(){J(y.lessThan)&&kB()}function kB(){const n=Oi(0);for(J(y.lessThan)||J(y.typeParameterStart)?Ge():Di();!Be(y.greaterThan)&&!D.error;)Wnt(),Be(y.comma);Ri(n)}function VJ(n){const e=n===y.arrow;E0(),qe(y.parenL),D.scopeDepth++,Vnt(!1),D.scopeDepth--,(e||J(n))&&hT(n)}function Vnt(n){BJ(y.parenR,n)}function KO(){Be(y.comma)||Is()}function Ece(){VJ(y.colon),KO()}function Hnt(){const n=D.snapshot();Ge();const e=Be(y.name)&&J(y.colon);return D.restoreFromSnapshot(n),e}function NSe(){if(!(J(y.bracketL)&&Hnt()))return!1;const n=Oi(0);return qe(y.bracketL),gi(),yN(),qe(y.bracketR),tL(),KO(),Ri(n),!0}function kce(n){Be(y.question),!n&&(J(y.parenL)||J(y.lessThan))?(VJ(y.colon),KO()):(tL(),KO())}function $nt(){if(J(y.parenL)||J(y.lessThan)){Ece();return}if(J(y._new)){Ge(),J(y.parenL)||J(y.lessThan)?Ece():kce(!1);return}const n=!!TSe([fe._readonly]);NSe()||((Ut(fe._get)||Ut(fe._set))&&ISe(),dT(-1),kce(n))}function znt(){ASe()}function ASe(){for(qe(y.braceL);!Be(y.braceR)&&!D.error;)$nt()}function Unt(){const n=D.snapshot(),e=jnt();return D.restoreFromSnapshot(n),e}function jnt(){return Ge(),Be(y.plus)||Be(y.minus)?Ut(fe._readonly):(Ut(fe._readonly)&&Ge(),!J(y.bracketL)||(Ge(),!H$())?!1:(Ge(),J(y._in)))}function qnt(){gi(),qe(y._in),Us()}function Knt(){qe(y.braceL),J(y.plus)||J(y.minus)?(Ge(),gr(fe._readonly)):jr(fe._readonly),qe(y.bracketL),qnt(),jr(fe._as)&&Us(),qe(y.bracketR),J(y.plus)||J(y.minus)?(Ge(),qe(y.question)):Be(y.question),ast(),Is(),qe(y.braceR)}function Gnt(){for(qe(y.bracketL);!Be(y.bracketR)&&!D.error;)Xnt(),Be(y.comma)}function Xnt(){Be(y.ellipsis)?Us():(Us(),Be(y.question)),Be(y.colon)&&Us()}function Ynt(){qe(y.parenL),Us(),qe(y.parenR)}function Znt(){for(e1(),e1();!J(y.backQuote)&&!D.error;)qe(y.dollarBraceL),Us(),e1(),e1();Ge()}var b1;(function(n){n[n.TSFunctionType=0]="TSFunctionType";const t=1;n[n.TSConstructorType=t]="TSConstructorType";const i=t+1;n[n.TSAbstractConstructorType=i]="TSAbstractConstructorType"})(b1||(b1={}));function y7(n){n===b1.TSAbstractConstructorType&&gr(fe._abstract),(n===b1.TSConstructorType||n===b1.TSAbstractConstructorType)&&qe(y._new);const e=D.inDisallowConditionalTypesContext;D.inDisallowConditionalTypesContext=!1,VJ(y.arrow),D.inDisallowConditionalTypesContext=e}function Qnt(){switch(D.type){case y.name:Mnt();return;case y._void:case y._null:Ge();return;case y.string:case y.num:case y.bigint:case y.decimal:case y._true:case y._false:jS();return;case y.minus:Ge(),jS();return;case y._this:{Fnt(),Ut(fe._is)&&!_l()&&Ont();return}case y._typeof:Bnt();return;case y._import:DSe();return;case y.braceL:Unt()?Knt():znt();return;case y.bracketL:Gnt();return;case y.parenL:Ynt();return;case y.backQuote:Znt();return;default:if(D.type&y.IS_KEYWORD){Ge(),D.tokens[D.tokens.length-1].type=y.name;return}break}Di()}function Jnt(){for(Qnt();!_l()&&Be(y.bracketL);)Be(y.bracketR)||(Us(),qe(y.bracketR))}function est(){if(gr(fe._infer),gi(),J(y._extends)){const n=D.snapshot();qe(y._extends);const e=D.inDisallowConditionalTypesContext;D.inDisallowConditionalTypesContext=!0,Us(),D.inDisallowConditionalTypesContext=e,(D.error||!D.inDisallowConditionalTypesContext&&J(y.question))&&D.restoreFromSnapshot(n)}}function $$(){if(Ut(fe._keyof)||Ut(fe._unique)||Ut(fe._readonly))Ge(),$$();else if(Ut(fe._infer))est();else{const n=D.inDisallowConditionalTypesContext;D.inDisallowConditionalTypesContext=!1,Jnt(),D.inDisallowConditionalTypesContext=n}}function Ice(){if(Be(y.bitwiseAND),$$(),J(y.bitwiseAND))for(;Be(y.bitwiseAND);)$$()}function tst(){if(Be(y.bitwiseOR),Ice(),J(y.bitwiseOR))for(;Be(y.bitwiseOR);)Ice()}function ist(){return J(y.lessThan)?!0:J(y.parenL)&&sst()}function nst(){if(J(y.name)||J(y._this))return Ge(),!0;if(J(y.braceL)||J(y.bracketL)){let n=1;for(Ge();n>0&&!D.error;)J(y.braceL)||J(y.bracketL)?n++:(J(y.braceR)||J(y.bracketR))&&n--,Ge();return!0}return!1}function sst(){const n=D.snapshot(),e=rst();return D.restoreFromSnapshot(n),e}function rst(){return Ge(),!!(J(y.parenR)||J(y.ellipsis)||nst()&&(J(y.colon)||J(y.comma)||J(y.question)||J(y.eq)||J(y.parenR)&&(Ge(),J(y.arrow))))}function hT(n){const e=Oi(0);qe(n),lst()||Us(),Ri(e)}function ost(){J(y.colon)&&hT(y.colon)}function tL(){J(y.colon)&&yN()}function ast(){Be(y.colon)&&Us()}function lst(){const n=D.snapshot();return Ut(fe._asserts)?(Ge(),jr(fe._is)?(Us(),!0):H$()||J(y._this)?(Ge(),jr(fe._is)&&Us(),!0):(D.restoreFromSnapshot(n),!1)):H$()||J(y._this)?(Ge(),Ut(fe._is)&&!_l()?(Ge(),Us(),!0):(D.restoreFromSnapshot(n),!1)):!1}function yN(){const n=Oi(0);qe(y.colon),Us(),Ri(n)}function Us(){if(Tce(),D.inDisallowConditionalTypesContext||_l()||!Be(y._extends))return;const n=D.inDisallowConditionalTypesContext;D.inDisallowConditionalTypesContext=!0,Tce(),D.inDisallowConditionalTypesContext=n,qe(y.question),Us(),qe(y.colon),Us()}function cst(){return Ut(fe._abstract)&&zs()===y._new}function Tce(){if(ist()){y7(b1.TSFunctionType);return}if(J(y._new)){y7(b1.TSConstructorType);return}else if(cst()){y7(b1.TSAbstractConstructorType);return}tst()}function ust(){const n=Oi(1);Us(),qe(y.greaterThan),Ri(n),wN()}function hst(){if(Be(y.jsxTagStart)){D.tokens[D.tokens.length-1].type=y.typeParameterStart;const n=Oi(1);for(;!J(y.greaterThan)&&!D.error;)Us(),Be(y.comma);Au(),Ri(n)}}function PSe(){for(;!J(y.braceL)&&!D.error;)dst(),Be(y.comma)}function dst(){bN(),J(y.lessThan)&&iL()}function fst(){D_(!1),E0(),Be(y._extends)&&PSe(),ASe()}function pst(){D_(!1),E0(),qe(y.eq),Us(),Is()}function gst(){if(J(y.string)?jS():gi(),Be(y.eq)){const n=D.tokens.length-1;No(),D.tokens[n].rhsEndIndex=D.tokens.length}}function HJ(){for(D_(!1),qe(y.braceL);!Be(y.braceR)&&!D.error;)gst(),Be(y.comma)}function $J(){qe(y.braceL),NB(y.braceR)}function z$(){D_(!1),Be(y.dot)?z$():$J()}function RSe(){Ut(fe._global)?gi():J(y.string)?Og():Di(),J(y.braceL)?$J():Is()}function U$(){jO(),qe(y.eq),_st(),Is()}function mst(){return Ut(fe._require)&&zs()===y.parenL}function _st(){mst()?vst():bN()}function vst(){gr(fe._require),qe(y.parenL),J(y.string)||Di(),jS(),qe(y.parenR)}function bst(){if(_f())return!1;switch(D.type){case y._function:{const n=Oi(1);Ge();const e=D.start;return Wy(e,!0),Ri(n),!0}case y._class:{const n=Oi(1);return Vy(!0,!1),Ri(n),!0}case y._const:if(J(y._const)&&RJ(fe._enum)){const n=Oi(1);return qe(y._const),gr(fe._enum),D.tokens[D.tokens.length-1].type=y._enum,HJ(),Ri(n),!0}case y._var:case y._let:{const n=Oi(1);return ZR(D.type!==y._var),Ri(n),!0}case y.name:{const n=Oi(1),e=D.contextualKeyword;let t=!1;return e===fe._global?(RSe(),t=!0):t=IB(e,!0),Ri(n),t}default:return!1}}function Dce(){return IB(D.contextualKeyword,!0)}function yst(n){switch(n){case fe._declare:{const e=D.tokens.length-1;if(bst())return D.tokens[e].type=y._declare,!0;break}case fe._global:if(J(y.braceL))return $J(),!0;break;default:return IB(n,!1)}return!1}function IB(n,e){switch(n){case fe._abstract:if(Q0(e)&&J(y._class))return D.tokens[D.tokens.length-1].type=y._abstract,Vy(!0,!1),!0;break;case fe._enum:if(Q0(e)&&J(y.name))return D.tokens[D.tokens.length-1].type=y._enum,HJ(),!0;break;case fe._interface:if(Q0(e)&&J(y.name)){const t=Oi(e?2:1);return fst(),Ri(t),!0}break;case fe._module:if(Q0(e)){if(J(y.string)){const t=Oi(e?2:1);return RSe(),Ri(t),!0}else if(J(y.name)){const t=Oi(e?2:1);return z$(),Ri(t),!0}}break;case fe._namespace:if(Q0(e)&&J(y.name)){const t=Oi(e?2:1);return z$(),Ri(t),!0}break;case fe._type:if(Q0(e)&&J(y.name)){const t=Oi(e?2:1);return pst(),Ri(t),!0}break}return!1}function Q0(n){return n?(Ge(),!0):!_f()}function wst(){const n=D.snapshot();return kB(),nL(),ost(),qe(y.arrow),D.error?(D.restoreFromSnapshot(n),!1):(CN(!0),!0)}function zJ(){D.type===y.bitShiftL&&(D.pos-=1,ki(y.lessThan)),iL()}function iL(){const n=Oi(0);for(qe(y.lessThan);!J(y.greaterThan)&&!D.error;)Us(),Be(y.comma);n?(qe(y.greaterThan),Ri(n)):(Ri(n),gSe(),qe(y.greaterThan),D.tokens[D.tokens.length-1].isType=!0)}function MSe(){if(J(y.name))switch(D.contextualKeyword){case fe._abstract:case fe._declare:case fe._enum:case fe._interface:case fe._module:case fe._namespace:case fe._type:return!0}return!1}function Cst(n,e){if(J(y.colon)&&hT(y.colon),!J(y.braceL)&&_f()){let t=D.tokens.length-1;for(;t>=0&&(D.tokens[t].start>=n||D.tokens[t].type===y._default||D.tokens[t].type===y._export);)D.tokens[t].isType=!0,t--;return}CN(!1,e)}function Sst(n,e,t){if(!_l()&&Be(y.bang)){D.tokens[D.tokens.length-1].type=y.nonNullAssertion;return}if(J(y.lessThan)||J(y.bitShiftL)){const i=D.snapshot();if(!e&&zSe()&&wst())return;if(zJ(),!e&&Be(y.parenL)?(D.tokens[D.tokens.length-1].subscriptStartIndex=n,y1()):J(y.backQuote)?GJ():(D.type===y.greaterThan||D.type!==y.parenL&&D.type&y.IS_EXPRESSION_START&&!_l())&&Di(),D.error)D.restoreFromSnapshot(i);else return}else!e&&J(y.questionDot)&&zs()===y.lessThan&&(Ge(),D.tokens[n].isOptionalChainStart=!0,D.tokens[D.tokens.length-1].subscriptStartIndex=n,iL(),qe(y.parenL),y1());jJ(n,e,t)}function xst(){if(Be(y._import))return Ut(fe._type)&&zs()!==y.eq&&gr(fe._type),U$(),!0;if(Be(y.eq))return Do(),Is(),!0;if(jr(fe._as))return gr(fe._namespace),gi(),Is(),!0;if(Ut(fe._type)){const n=zs();(n===y.braceL||n===y.star)&&Ge()}return!1}function Lst(){if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-1].identifierRole=ti.ImportDeclaration;return}if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-1].identifierRole=ti.ImportDeclaration,D.tokens[D.tokens.length-2].isType=!0,D.tokens[D.tokens.length-1].isType=!0;return}if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-3].identifierRole=ti.ImportAccess,D.tokens[D.tokens.length-1].identifierRole=ti.ImportDeclaration;return}gi(),D.tokens[D.tokens.length-3].identifierRole=ti.ImportAccess,D.tokens[D.tokens.length-1].identifierRole=ti.ImportDeclaration,D.tokens[D.tokens.length-4].isType=!0,D.tokens[D.tokens.length-3].isType=!0,D.tokens[D.tokens.length-2].isType=!0,D.tokens[D.tokens.length-1].isType=!0}function Est(){if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-1].identifierRole=ti.ExportAccess;return}if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-1].identifierRole=ti.ExportAccess,D.tokens[D.tokens.length-2].isType=!0,D.tokens[D.tokens.length-1].isType=!0;return}if(gi(),J(y.comma)||J(y.braceR)){D.tokens[D.tokens.length-3].identifierRole=ti.ExportAccess;return}gi(),D.tokens[D.tokens.length-3].identifierRole=ti.ExportAccess,D.tokens[D.tokens.length-4].isType=!0,D.tokens[D.tokens.length-3].isType=!0,D.tokens[D.tokens.length-2].isType=!0,D.tokens[D.tokens.length-1].isType=!0}function kst(){if(Ut(fe._abstract)&&zs()===y._class)return D.type=y._abstract,Ge(),Vy(!0,!0),!0;if(Ut(fe._interface)){const n=Oi(2);return IB(fe._interface,!0),Ri(n),!0}return!1}function Ist(){if(D.type===y._const){const n=vN();if(n.type===y.name&&n.contextualKeyword===fe._enum)return qe(y._const),gr(fe._enum),D.tokens[D.tokens.length-1].type=y._enum,HJ(),!0}return!1}function Tst(n){const e=D.tokens.length;WJ([fe._abstract,fe._readonly,fe._declare,fe._static,fe._override]);const t=D.tokens.length;if(NSe()){const s=n?e-1:e;for(let r=s;r<t;r++)D.tokens[r].isType=!0;return!0}return!1}function Dst(n){yst(n)||Is()}function Nst(){const n=jr(fe._declare);n&&(D.tokens[D.tokens.length-1].type=y._declare);let e=!1;if(J(y.name))if(n){const t=Oi(2);e=Dce(),Ri(t)}else e=Dce();if(!e)if(n){const t=Oi(2);eu(!0),Ri(t)}else eu(!0)}function Ast(n){if(n&&(J(y.lessThan)||J(y.bitShiftL))&&zJ(),jr(fe._implements)){D.tokens[D.tokens.length-1].type=y._implements;const e=Oi(1);PSe(),Ri(e)}}function Pst(){E0()}function Rst(){E0()}function Mst(){const n=Oi(0);_l()||Be(y.bang),tL(),Ri(n)}function Ost(){J(y.colon)&&yN()}function Fst(n,e){return xB?Bst(n,e):Wst(n,e)}function Bst(n,e){if(!J(y.lessThan))return Df(n,e);const t=D.snapshot();let i=Df(n,e);if(D.error)D.restoreFromSnapshot(t);else return i;return D.type=y.typeParameterStart,kB(),i=Df(n,e),i||Di(),i}function Wst(n,e){if(!J(y.lessThan))return Df(n,e);const t=D.snapshot();kB();const i=Df(n,e);if(i||Di(),D.error)D.restoreFromSnapshot(t);else return i;return Df(n,e)}function Vst(){if(J(y.colon)){const n=D.snapshot();hT(y.colon),Hc()&&Di(),J(y.arrow)||Di(),D.error&&D.restoreFromSnapshot(n)}return Be(y.arrow)}function Hst(){const n=Oi(0);Be(y.question),tL(),Ri(n)}function $st(){(J(y.lessThan)||J(y.bitShiftL))&&zJ(),txe()}function zst(){let n=!1,e=!1;for(;;){if(D.pos>=ht.length){Di("Unterminated JSX contents");return}const t=ht.charCodeAt(D.pos);if(t===we.lessThan||t===we.leftCurlyBrace){if(D.pos===D.start){if(t===we.lessThan){D.pos++,ki(y.jsxTagStart);return}mSe(t);return}ki(n&&!e?y.jsxEmptyText:y.jsxText);return}t===we.lineFeed?n=!0:t!==we.space&&t!==we.carriageReturn&&t!==we.tab&&(e=!0),D.pos++}}function Ust(n){for(D.pos++;;){if(D.pos>=ht.length){Di("Unterminated string constant");return}if(ht.charCodeAt(D.pos)===n){D.pos++;break}D.pos++}ki(y.string)}function jst(){let n;do{if(D.pos>ht.length){Di("Unexpectedly reached the end of input.");return}n=ht.charCodeAt(++D.pos)}while(Kh[n]||n===we.dash);ki(y.jsxName)}function j$(){Au()}function OSe(n){if(j$(),!Be(y.colon)){D.tokens[D.tokens.length-1].identifierRole=n;return}j$()}function FSe(){const n=D.tokens.length;OSe(ti.Access);let e=!1;for(;J(y.dot);)e=!0,Au(),j$();if(!e){const t=D.tokens[n],i=ht.charCodeAt(t.start);i>=we.lowercaseA&&i<=we.lowercaseZ&&(t.identifierRole=null)}}function qst(){switch(D.type){case y.braceL:Ge(),Do(),Au();return;case y.jsxTagStart:WSe(),Au();return;case y.string:Au();return;default:Di("JSX value should be either an expression or a quoted JSX text")}}function Kst(){qe(y.ellipsis),Do()}function Gst(n){if(J(y.jsxTagEnd))return!1;FSe(),tn&&hst();let e=!1;for(;!J(y.slash)&&!J(y.jsxTagEnd)&&!D.error;){if(Be(y.braceL)){e=!0,qe(y.ellipsis),No(),Au();continue}e&&D.end-D.start===3&&ht.charCodeAt(D.start)===we.lowercaseK&&ht.charCodeAt(D.start+1)===we.lowercaseE&&ht.charCodeAt(D.start+2)===we.lowercaseY&&(D.tokens[n].jsxRole=Dh.KeyAfterPropSpread),OSe(ti.ObjectKey),J(y.eq)&&(Au(),qst())}const t=J(y.slash);return t&&Au(),t}function Xst(){J(y.jsxTagEnd)||FSe()}function BSe(){const n=D.tokens.length-1;D.tokens[n].jsxRole=Dh.NoChildren;let e=0;if(!Gst(n))for(J0();;)switch(D.type){case y.jsxTagStart:if(Au(),J(y.slash)){Au(),Xst(),D.tokens[n].jsxRole!==Dh.KeyAfterPropSpread&&(e===1?D.tokens[n].jsxRole=Dh.OneChild:e>1&&(D.tokens[n].jsxRole=Dh.StaticChildren));return}e++,BSe(),J0();break;case y.jsxText:e++,J0();break;case y.jsxEmptyText:J0();break;case y.braceL:Ge(),J(y.ellipsis)?(Kst(),J0(),e+=2):(J(y.braceR)||(e++,Do()),J0());break;default:Di();return}}function WSe(){Au(),BSe()}function Au(){D.tokens.push(new LB),fSe(),D.start=D.pos;const n=ht.charCodeAt(D.pos);if(_N[n])jst();else if(n===we.quotationMark||n===we.apostrophe)Ust(n);else switch(++D.pos,n){case we.greaterThan:ki(y.jsxTagEnd);break;case we.lessThan:ki(y.jsxTagStart);break;case we.slash:ki(y.slash);break;case we.equalsTo:ki(y.eq);break;case we.leftCurlyBrace:ki(y.braceL);break;case we.dot:ki(y.dot);break;case we.colon:ki(y.colon);break;default:Di()}}function J0(){D.tokens.push(new LB),D.start=D.pos,zst()}function Yst(n){if(J(y.question)){const e=zs();if(e===y.colon||e===y.comma||e===y.parenR)return}VSe(n)}function Zst(){lSe(y.question),J(y.colon)&&(tn?yN():Tn&&k0())}class Qst{constructor(e){this.stop=e}}function Do(n=!1){if(No(n),J(y.comma))for(;Be(y.comma);)No(n)}function No(n=!1,e=!1){return tn?Fst(n,e):Tn?not(n,e):Df(n,e)}function Df(n,e){if(J(y._yield))return prt(),!1;(J(y.parenL)||J(y.name)||J(y._yield))&&(D.potentialArrowAt=D.start);const t=Jst(n);return e&&KJ(),D.type&y.IS_ASSIGN?(Ge(),No(n),!1):t}function Jst(n){return trt(n)?!0:(ert(n),!1)}function ert(n){tn||Tn?Yst(n):VSe(n)}function VSe(n){Be(y.question)&&(No(),qe(y.colon),No(n))}function trt(n){const e=D.tokens.length;return wN()?!0:(XR(e,-1,n),!1)}function XR(n,e,t){if(tn&&(y._in&y.PRECEDENCE_MASK)>e&&!_l()&&(jr(fe._as)||jr(fe._satisfies))){const s=Oi(1);Us(),Ri(s),gSe(),XR(n,e,t);return}const i=D.type&y.PRECEDENCE_MASK;if(i>0&&(!t||!J(y._in))&&i>e){const s=D.type;Ge(),s===y.nullishCoalescing&&(D.tokens[D.tokens.length-1].nullishStartIndex=n);const r=D.tokens.length;wN(),XR(r,s&y.IS_RIGHT_ASSOCIATIVE?i-1:i,t),s===y.nullishCoalescing&&(D.tokens[n].numNullishCoalesceStarts++,D.tokens[D.tokens.length-1].numNullishCoalesceEnds++),XR(n,e,t)}}function wN(){if(tn&&!xB&&Be(y.lessThan))return ust(),!1;if(Ut(fe._module)&&uSe()===we.leftCurlyBrace&&!nSe())return grt(),!1;if(D.type&y.IS_PREFIX)return Ge(),wN(),!1;if(HSe())return!0;for(;D.type&y.IS_POSTFIX&&!Hc();)D.type===y.preIncDec&&(D.type=y.postIncDec),Ge();return!1}function HSe(){const n=D.tokens.length;return Og()?!0:(UJ(n),D.tokens.length>n&&D.tokens[n].isOptionalChainStart&&(D.tokens[D.tokens.length-1].isOptionalChainEnd=!0),!1)}function UJ(n,e=!1){Tn?rot(n,e):$Se(n,e)}function $Se(n,e=!1){const t=new Qst(!1);do irt(n,e,t);while(!t.stop&&!D.error)}function irt(n,e,t){tn?Sst(n,e,t):Tn?Wrt(n,e,t):jJ(n,e,t)}function jJ(n,e,t){if(!e&&Be(y.doubleColon))qJ(),t.stop=!0,UJ(n,e);else if(J(y.questionDot)){if(D.tokens[n].isOptionalChainStart=!0,e&&zs()===y.parenL){t.stop=!0;return}Ge(),D.tokens[D.tokens.length-1].subscriptStartIndex=n,Be(y.bracketL)?(Do(),qe(y.bracketR)):Be(y.parenL)?y1():GO()}else if(Be(y.dot))D.tokens[D.tokens.length-1].subscriptStartIndex=n,GO();else if(Be(y.bracketL))D.tokens[D.tokens.length-1].subscriptStartIndex=n,Do(),qe(y.bracketR);else if(!e&&J(y.parenL))if(zSe()){const i=D.snapshot(),s=D.tokens.length;Ge(),D.tokens[D.tokens.length-1].subscriptStartIndex=n;const r=cT();D.tokens[D.tokens.length-1].contextId=r,y1(),D.tokens[D.tokens.length-1].contextId=r,nrt()&&(D.restoreFromSnapshot(i),t.stop=!0,D.scopeDepth++,nL(),srt(s))}else{Ge(),D.tokens[D.tokens.length-1].subscriptStartIndex=n;const i=cT();D.tokens[D.tokens.length-1].contextId=i,y1(),D.tokens[D.tokens.length-1].contextId=i}else J(y.backQuote)?GJ():t.stop=!0}function zSe(){return D.tokens[D.tokens.length-1].contextualKeyword===fe._async&&!Hc()}function y1(){let n=!0;for(;!Be(y.parenR)&&!D.error;){if(n)n=!1;else if(qe(y.comma),Be(y.parenR))break;KSe(!1)}}function nrt(){return J(y.colon)||J(y.arrow)}function srt(n){tn?Ost():Tn&&iot(),qe(y.arrow),fT(n)}function qJ(){const n=D.tokens.length;Og(),UJ(n,!0)}function Og(){if(Be(y.modulo))return gi(),!1;if(J(y.jsxText)||J(y.jsxEmptyText))return jS(),!1;if(J(y.lessThan)&&xB)return D.type=y.jsxTagStart,WSe(),Ge(),!1;const n=D.potentialArrowAt===D.start;switch(D.type){case y.slash:case y.assign:qit();case y._super:case y._this:case y.regexp:case y.num:case y.bigint:case y.decimal:case y.string:case y._null:case y._true:case y._false:return Ge(),!1;case y._import:return Ge(),J(y.dot)&&(D.tokens[D.tokens.length-1].type=y.name,Ge(),gi()),!1;case y.name:{const e=D.tokens.length,t=D.start,i=D.contextualKeyword;return gi(),i===fe._await?(frt(),!1):i===fe._async&&J(y._function)&&!Hc()?(Ge(),Wy(t,!1),!1):n&&i===fe._async&&!Hc()&&J(y.name)?(D.scopeDepth++,D_(!1),qe(y.arrow),fT(e),!0):J(y._do)&&!Hc()?(Ge(),w1(),!1):n&&!Hc()&&J(y.arrow)?(D.scopeDepth++,FJ(!1),qe(y.arrow),fT(e),!0):(D.tokens[D.tokens.length-1].identifierRole=ti.Access,!1)}case y._do:return Ge(),w1(),!1;case y.parenL:return USe(n);case y.bracketL:return Ge(),qSe(y.bracketR,!0),!1;case y.braceL:return XJ(!1,!1),!1;case y._function:return rrt(),!1;case y.at:see();case y._class:return Vy(!1),!1;case y._new:return art(),!1;case y.backQuote:return GJ(),!1;case y.doubleColon:return Ge(),qJ(),!1;case y.hash:{const e=uSe();return _N[e]||e===we.backslash?GO():Ge(),!1}default:return Di(),!1}}function GO(){Be(y.hash),gi()}function rrt(){const n=D.start;gi(),Be(y.dot)&&gi(),Wy(n,!1)}function jS(){Ge()}function TB(){qe(y.parenL),Do(),qe(y.parenR)}function USe(n){const e=D.snapshot(),t=D.tokens.length;qe(y.parenL);let i=!0;for(;!J(y.parenR)&&!D.error;){if(i)i=!1;else if(qe(y.comma),J(y.parenR))break;if(J(y.ellipsis)){ESe(!1),KJ();break}else No(!1,!0)}return qe(y.parenR),n&&ort()&&q$()?(D.restoreFromSnapshot(e),D.scopeDepth++,nL(),q$(),fT(t),D.error?(D.restoreFromSnapshot(e),USe(!1),!1):!0):!1}function ort(){return J(y.colon)||!Hc()}function q$(){return tn?Vst():Tn?sot():Be(y.arrow)}function KJ(){(tn||Tn)&&Zst()}function art(){if(qe(y._new),Be(y.dot)){gi();return}lrt(),Tn&&Vrt(),Be(y.parenL)&&qSe(y.parenR)}function lrt(){qJ(),Be(y.questionDot)}function GJ(){for(e1(),e1();!J(y.backQuote)&&!D.error;)qe(y.dollarBraceL),Do(),e1(),e1();Ge()}function XJ(n,e){const t=cT();let i=!0;for(Ge(),D.tokens[D.tokens.length-1].contextId=t;!Be(y.braceR)&&!D.error;){if(i)i=!1;else if(qe(y.comma),Be(y.braceR))break;let s=!1;if(J(y.ellipsis)){const r=D.tokens.length;if(LSe(),n&&(D.tokens.length===r+2&&FJ(e),Be(y.braceR)))break;continue}n||(s=Be(y.star)),!n&&Ut(fe._async)?(s&&Di(),gi(),J(y.colon)||J(y.parenL)||J(y.braceR)||J(y.eq)||J(y.comma)||(J(y.star)&&(Ge(),s=!0),dT(t))):dT(t),drt(n,e,t)}D.tokens[D.tokens.length-1].contextId=t}function crt(n){return!n&&(J(y.string)||J(y.num)||J(y.bracketL)||J(y.name)||!!(D.type&y.IS_KEYWORD))}function urt(n,e){const t=D.start;return J(y.parenL)?(n&&Di(),K$(t,!1),!0):crt(n)?(dT(e),K$(t,!1),!0):!1}function hrt(n,e){if(Be(y.colon)){n?qO(e):No(!1);return}let t;n?D.scopeDepth===0?t=ti.ObjectShorthandTopLevelDeclaration:e?t=ti.ObjectShorthandBlockScopedDeclaration:t=ti.ObjectShorthandFunctionScopedDeclaration:t=ti.ObjectShorthand,D.tokens[D.tokens.length-1].identifierRole=t,qO(e,!0)}function drt(n,e,t){tn?Pst():Tn&&Yrt(),urt(n,t)||hrt(n,e)}function dT(n){Tn&&nee(),Be(y.bracketL)?(D.tokens[D.tokens.length-1].contextId=n,No(),qe(y.bracketR),D.tokens[D.tokens.length-1].contextId=n):(J(y.num)||J(y.string)||J(y.bigint)||J(y.decimal)?Og():GO(),D.tokens[D.tokens.length-1].identifierRole=ti.ObjectKey,D.tokens[D.tokens.length-1].contextId=n)}function K$(n,e){const t=cT();D.scopeDepth++;const i=D.tokens.length;nL(e,t),jSe(n,t);const r=D.tokens.length;D.scopes.push(new Hf(i,r,!0)),D.scopeDepth--}function fT(n){CN(!0);const e=D.tokens.length;D.scopes.push(new Hf(n,e,!0)),D.scopeDepth--}function jSe(n,e=0){tn?Cst(n,e):Tn?Brt(e):CN(!1,e)}function CN(n,e=0){n&&!J(y.braceL)?No():w1(!0,e)}function qSe(n,e=!1){let t=!0;for(;!Be(n)&&!D.error;){if(t)t=!1;else if(qe(y.comma),Be(n))break;KSe(e)}}function KSe(n){n&&J(y.comma)||(J(y.ellipsis)?(LSe(),KJ()):J(y.question)?Ge():No(!1,!0))}function gi(){Ge(),D.tokens[D.tokens.length-1].type=y.name}function frt(){wN()}function prt(){Ge(),!J(y.semi)&&!Hc()&&(Be(y.star),No())}function grt(){gr(fe._module),qe(y.braceL),NB(y.braceR)}function mrt(n){return(n.type===y.name||!!(n.type&y.IS_KEYWORD))&&n.contextualKeyword!==fe._from}function $f(n){const e=Oi(0);qe(n||y.colon),ac(),Ri(e)}function Nce(){qe(y.modulo),gr(fe._checks),Be(y.parenL)&&(Do(),qe(y.parenR))}function YJ(){const n=Oi(0);qe(y.colon),J(y.modulo)?Nce():(ac(),J(y.modulo)&&Nce()),Ri(n)}function _rt(){Ge(),ZJ(!0)}function vrt(){Ge(),gi(),J(y.lessThan)&&fd(),qe(y.parenL),X$(),qe(y.parenR),YJ(),Is()}function G$(){J(y._class)?_rt():J(y._function)?vrt():J(y._var)?brt():jr(fe._module)?Be(y.dot)?Crt():yrt():Ut(fe._type)?Srt():Ut(fe._opaque)?xrt():Ut(fe._interface)?Lrt():J(y._export)?wrt():Di()}function brt(){Ge(),ZSe(),Is()}function yrt(){for(J(y.string)?Og():gi(),qe(y.braceL);!J(y.braceR)&&!D.error;)J(y._import)?(Ge(),axe()):Di();qe(y.braceR)}function wrt(){qe(y._export),Be(y._default)?J(y._function)||J(y._class)?G$():(ac(),Is()):J(y._var)||J(y._function)||J(y._class)||Ut(fe._opaque)?G$():J(y.star)||J(y.braceL)||Ut(fe._interface)||Ut(fe._type)||Ut(fe._opaque)?rxe():Di()}function Crt(){gr(fe._exports),k0(),Is()}function Srt(){Ge(),JJ()}function xrt(){Ge(),eee(!0)}function Lrt(){Ge(),ZJ()}function ZJ(n=!1){if(DB(),J(y.lessThan)&&fd(),Be(y._extends))do YR();while(!n&&Be(y.comma));if(Ut(fe._mixins)){Ge();do YR();while(Be(y.comma))}if(Ut(fe._implements)){Ge();do YR();while(Be(y.comma))}XO(n,!1,n)}function YR(){GSe(!1),J(y.lessThan)&&By()}function QJ(){ZJ()}function DB(){gi()}function JJ(){DB(),J(y.lessThan)&&fd(),$f(y.eq),Is()}function eee(n){gr(fe._type),DB(),J(y.lessThan)&&fd(),J(y.colon)&&$f(y.colon),n||$f(y.eq),Is()}function Ert(){nee(),ZSe(),Be(y.eq)&&ac()}function fd(){const n=Oi(0);J(y.lessThan)||J(y.typeParameterStart)?Ge():Di();do Ert(),J(y.greaterThan)||qe(y.comma);while(!J(y.greaterThan)&&!D.error);qe(y.greaterThan),Ri(n)}function By(){const n=Oi(0);for(qe(y.lessThan);!J(y.greaterThan)&&!D.error;)ac(),J(y.greaterThan)||qe(y.comma);qe(y.greaterThan),Ri(n)}function krt(){if(gr(fe._interface),Be(y._extends))do YR();while(Be(y.comma));XO(!1,!1,!1)}function tee(){J(y.num)||J(y.string)?Og():gi()}function Irt(){zs()===y.colon?(tee(),$f()):ac(),qe(y.bracketR),$f()}function Trt(){tee(),qe(y.bracketR),qe(y.bracketR),J(y.lessThan)||J(y.parenL)?iee():(Be(y.question),$f())}function iee(){for(J(y.lessThan)&&fd(),qe(y.parenL);!J(y.parenR)&&!J(y.ellipsis)&&!D.error;)YO(),J(y.parenR)||qe(y.comma);Be(y.ellipsis)&&YO(),qe(y.parenR),$f()}function Drt(){iee()}function XO(n,e,t){let i;for(e&&J(y.braceBarL)?(qe(y.braceBarL),i=y.braceBarR):(qe(y.braceL),i=y.braceR);!J(i)&&!D.error;){if(t&&Ut(fe._proto)){const s=zs();s!==y.colon&&s!==y.question&&(Ge(),n=!1)}if(n&&Ut(fe._static)){const s=zs();s!==y.colon&&s!==y.question&&Ge()}if(nee(),Be(y.bracketL))Be(y.bracketL)?Trt():Irt();else if(J(y.parenL)||J(y.lessThan))Drt();else{if(Ut(fe._get)||Ut(fe._set)){const s=zs();(s===y.name||s===y.string||s===y.num)&&Ge()}Nrt()}Art()}qe(i)}function Nrt(){if(J(y.ellipsis)){if(qe(y.ellipsis),Be(y.comma)||Be(y.semi),J(y.braceR))return;ac()}else tee(),J(y.lessThan)||J(y.parenL)?iee():(Be(y.question),$f())}function Art(){!Be(y.semi)&&!Be(y.comma)&&!J(y.braceR)&&!J(y.braceBarR)&&Di()}function GSe(n){for(n||gi();Be(y.dot);)gi()}function Prt(){GSe(!0),J(y.lessThan)&&By()}function Rrt(){qe(y._typeof),XSe()}function Mrt(){for(qe(y.bracketL);D.pos<ht.length&&!J(y.bracketR)&&(ac(),!J(y.bracketR));)qe(y.comma);qe(y.bracketR)}function YO(){const n=zs();n===y.colon||n===y.question?(gi(),Be(y.question),$f()):ac()}function X$(){for(;!J(y.parenR)&&!J(y.ellipsis)&&!D.error;)YO(),J(y.parenR)||qe(y.comma);Be(y.ellipsis)&&YO()}function XSe(){let n=!1;const e=D.noAnonFunctionType;switch(D.type){case y.name:{if(Ut(fe._interface)){krt();return}gi(),Prt();return}case y.braceL:XO(!1,!1,!1);return;case y.braceBarL:XO(!1,!0,!1);return;case y.bracketL:Mrt();return;case y.lessThan:fd(),qe(y.parenL),X$(),qe(y.parenR),qe(y.arrow),ac();return;case y.parenL:if(Ge(),!J(y.parenR)&&!J(y.ellipsis))if(J(y.name)){const t=zs();n=t!==y.question&&t!==y.colon}else n=!0;if(n)if(D.noAnonFunctionType=!1,ac(),D.noAnonFunctionType=e,D.noAnonFunctionType||!(J(y.comma)||J(y.parenR)&&zs()===y.arrow)){qe(y.parenR);return}else Be(y.comma);X$(),qe(y.parenR),qe(y.arrow),ac();return;case y.minus:Ge(),jS();return;case y.string:case y.num:case y._true:case y._false:case y._null:case y._this:case y._void:case y.star:Ge();return;default:if(D.type===y._typeof){Rrt();return}else if(D.type&y.IS_KEYWORD){Ge(),D.tokens[D.tokens.length-1].type=y.name;return}}Di()}function Ort(){for(XSe();!Hc()&&(J(y.bracketL)||J(y.questionDot));)Be(y.questionDot),qe(y.bracketL),Be(y.bracketR)||(ac(),qe(y.bracketR))}function YSe(){Be(y.question)?YSe():Ort()}function Ace(){YSe(),!D.noAnonFunctionType&&Be(y.arrow)&&ac()}function Pce(){for(Be(y.bitwiseAND),Ace();Be(y.bitwiseAND);)Ace()}function Frt(){for(Be(y.bitwiseOR),Pce();Be(y.bitwiseOR);)Pce()}function ac(){Frt()}function k0(){$f()}function ZSe(){gi(),J(y.colon)&&k0()}function nee(){(J(y.plus)||J(y.minus))&&(Ge(),D.tokens[D.tokens.length-1].isType=!0)}function Brt(n){J(y.colon)&&YJ(),CN(!1,n)}function Wrt(n,e,t){if(J(y.questionDot)&&zs()===y.lessThan){if(e){t.stop=!0;return}Ge(),By(),qe(y.parenL),y1();return}else if(!e&&J(y.lessThan)){const i=D.snapshot();if(By(),qe(y.parenL),y1(),D.error)D.restoreFromSnapshot(i);else return}jJ(n,e,t)}function Vrt(){if(J(y.lessThan)){const n=D.snapshot();By(),D.error&&D.restoreFromSnapshot(n)}}function Hrt(){if(J(y.name)&&D.contextualKeyword===fe._interface){const n=Oi(0);return Ge(),QJ(),Ri(n),!0}else if(Ut(fe._enum))return QSe(),!0;return!1}function $rt(){return Ut(fe._enum)?(QSe(),!0):!1}function zrt(n){if(n===fe._declare){if(J(y._class)||J(y.name)||J(y._function)||J(y._var)||J(y._export)){const e=Oi(1);G$(),Ri(e)}}else if(J(y.name)){if(n===fe._interface){const e=Oi(1);QJ(),Ri(e)}else if(n===fe._type){const e=Oi(1);JJ(),Ri(e)}else if(n===fe._opaque){const e=Oi(1);eee(!1),Ri(e)}}Is()}function Urt(){return Ut(fe._type)||Ut(fe._interface)||Ut(fe._opaque)||Ut(fe._enum)}function jrt(){return J(y.name)&&(D.contextualKeyword===fe._type||D.contextualKeyword===fe._interface||D.contextualKeyword===fe._opaque||D.contextualKeyword===fe._enum)}function qrt(){if(Ut(fe._type)){const n=Oi(1);Ge(),J(y.braceL)?(ree(),pT()):JJ(),Ri(n)}else if(Ut(fe._opaque)){const n=Oi(1);Ge(),eee(!1),Ri(n)}else if(Ut(fe._interface)){const n=Oi(1);Ge(),QJ(),Ri(n)}else eu(!0)}function Krt(){return J(y.star)||Ut(fe._type)&&zs()===y.star}function Grt(){if(jr(fe._type)){const n=Oi(2);Y$(),Ri(n)}else Y$()}function Xrt(n){if(n&&J(y.lessThan)&&By(),Ut(fe._implements)){const e=Oi(0);Ge(),D.tokens[D.tokens.length-1].type=y._implements;do DB(),J(y.lessThan)&&By();while(Be(y.comma));Ri(e)}}function Yrt(){J(y.lessThan)&&(fd(),J(y.parenL)||Di())}function Zrt(){const n=Oi(0);Be(y.question),J(y.colon)&&k0(),Ri(n)}function Qrt(){if(J(y._typeof)||Ut(fe._type)){const n=vN();(mrt(n)||n.type===y.braceL||n.type===y.star)&&Ge()}}function Jrt(){const n=D.contextualKeyword===fe._type||D.type===y._typeof;n?Ge():gi(),Ut(fe._as)&&!RJ(fe._as)?(gi(),n&&!J(y.name)&&!(D.type&y.IS_KEYWORD)||gi()):(n&&(J(y.name)||D.type&y.IS_KEYWORD)&&gi(),jr(fe._as)&&gi())}function eot(){if(J(y.lessThan)){const n=Oi(0);fd(),Ri(n)}}function tot(){J(y.colon)&&k0()}function iot(){if(J(y.colon)){const n=D.noAnonFunctionType;D.noAnonFunctionType=!0,k0(),D.noAnonFunctionType=n}}function not(n,e){if(J(y.lessThan)){const t=D.snapshot();let i=Df(n,e);if(D.error)D.restoreFromSnapshot(t),D.type=y.typeParameterStart;else return i;const s=Oi(0);if(fd(),Ri(s),i=Df(n,e),i)return!0;Di()}return Df(n,e)}function sot(){if(J(y.colon)){const n=Oi(0),e=D.snapshot(),t=D.noAnonFunctionType;D.noAnonFunctionType=!0,YJ(),D.noAnonFunctionType=t,Hc()&&Di(),J(y.arrow)||Di(),D.error&&D.restoreFromSnapshot(e),Ri(n)}return Be(y.arrow)}function rot(n,e=!1){if(D.tokens[D.tokens.length-1].contextualKeyword===fe._async&&J(y.lessThan)){const t=D.snapshot();if(oot()&&!D.error)return;D.restoreFromSnapshot(t)}$Se(n,e)}function oot(){D.scopeDepth++;const n=D.tokens.length;return nL(),q$()?(fT(n),!0):!1}function QSe(){gr(fe._enum),D.tokens[D.tokens.length-1].type=y._enum,gi(),aot()}function aot(){jr(fe._of)&&Ge(),qe(y.braceL),lot(),qe(y.braceR)}function lot(){for(;!J(y.braceR)&&!D.error&&!Be(y.ellipsis);)cot(),J(y.braceR)||qe(y.comma)}function cot(){gi(),Be(y.eq)&&Ge()}function uot(){if(NB(y.eof),D.scopes.push(new Hf(0,D.tokens.length,!0)),D.scopeDepth!==0)throw new Error(`Invalid scope depth at end of file: ${D.scopeDepth}`);return new Yot(D.tokens,D.scopes)}function eu(n){Tn&&Hrt()||(J(y.at)&&see(),hot(n))}function hot(n){if(tn&&Ist())return;const e=D.type;switch(e){case y._break:case y._continue:fot();return;case y._debugger:pot();return;case y._do:got();return;case y._for:mot();return;case y._function:if(zs()===y.dot)break;n||Di(),bot();return;case y._class:n||Di(),Vy(!0);return;case y._if:yot();return;case y._return:wot();return;case y._switch:Cot();return;case y._throw:Sot();return;case y._try:Lot();return;case y._let:case y._const:n||Di();case y._var:ZR(e!==y._var);return;case y._while:Eot();return;case y.braceL:w1();return;case y.semi:kot();return;case y._export:case y._import:{const s=zs();if(s===y.parenL||s===y.dot)break;Ge(),e===y._import?axe():rxe();return}case y.name:if(D.contextualKeyword===fe._async){const s=D.start,r=D.snapshot();if(Ge(),J(y._function)&&!Hc()){qe(y._function),Wy(s,!0);return}else D.restoreFromSnapshot(r)}else if(D.contextualKeyword===fe._using&&!nSe()&&zs()===y.name){ZR(!0);return}else if(JSe()){gr(fe._await),ZR(!0);return}}const t=D.tokens.length;Do();let i=null;if(D.tokens.length===t+1){const s=D.tokens[D.tokens.length-1];s.type===y.name&&(i=s.contextualKeyword)}if(i==null){Is();return}Be(y.colon)?Iot():Tot(i)}function JSe(){if(!Ut(fe._await))return!1;const n=D.snapshot();return Ge(),!Ut(fe._using)||_l()||(Ge(),!J(y.name)||_l())?(D.restoreFromSnapshot(n),!1):(D.restoreFromSnapshot(n),!0)}function see(){for(;J(y.at);)exe()}function exe(){if(Ge(),Be(y.parenL))Do(),qe(y.parenR);else{for(gi();Be(y.dot);)gi();dot()}}function dot(){tn?$st():txe()}function txe(){Be(y.parenL)&&y1()}function fot(){Ge(),_f()||(gi(),Is())}function pot(){Ge(),Is()}function got(){Ge(),eu(!1),qe(y._while),TB(),Be(y.semi)}function mot(){D.scopeDepth++;const n=D.tokens.length;vot();const e=D.tokens.length;D.scopes.push(new Hf(n,e,!1)),D.scopeDepth--}function _ot(){return!(!Ut(fe._using)||RJ(fe._of))}function vot(){Ge();let n=!1;if(Ut(fe._await)&&(n=!0,Ge()),qe(y.parenL),J(y.semi)){n&&Di(),w7();return}const e=JSe();if(e||J(y._var)||J(y._let)||J(y._const)||_ot()){if(e&&gr(fe._await),Ge(),ixe(!0,D.type!==y._var),J(y._in)||Ut(fe._of)){Rce(n);return}w7();return}if(Do(!0),J(y._in)||Ut(fe._of)){Rce(n);return}n&&Di(),w7()}function bot(){const n=D.start;Ge(),Wy(n,!0)}function yot(){Ge(),TB(),eu(!1),Be(y._else)&&eu(!1)}function wot(){Ge(),_f()||(Do(),Is())}function Cot(){Ge(),TB(),D.scopeDepth++;const n=D.tokens.length;for(qe(y.braceL);!J(y.braceR)&&!D.error;)if(J(y._case)||J(y._default)){const t=J(y._case);Ge(),t&&Do(),qe(y.colon)}else eu(!0);Ge();const e=D.tokens.length;D.scopes.push(new Hf(n,e,!1)),D.scopeDepth--}function Sot(){Ge(),Do(),Is()}function xot(){EB(!0),tn&&tL()}function Lot(){if(Ge(),w1(),J(y._catch)){Ge();let n=null;if(J(y.parenL)&&(D.scopeDepth++,n=D.tokens.length,qe(y.parenL),xot(),qe(y.parenR)),w1(),n!=null){const e=D.tokens.length;D.scopes.push(new Hf(n,e,!1)),D.scopeDepth--}}Be(y._finally)&&w1()}function ZR(n){Ge(),ixe(!1,n),Is()}function Eot(){Ge(),TB(),eu(!1)}function kot(){Ge()}function Iot(){eu(!0)}function Tot(n){tn?Dst(n):Tn?zrt(n):Is()}function w1(n=!1,e=0){const t=D.tokens.length;D.scopeDepth++,qe(y.braceL),e&&(D.tokens[D.tokens.length-1].contextId=e),NB(y.braceR),e&&(D.tokens[D.tokens.length-1].contextId=e);const i=D.tokens.length;D.scopes.push(new Hf(t,i,n)),D.scopeDepth--}function NB(n){for(;!Be(n)&&!D.error;)eu(!0)}function w7(){qe(y.semi),J(y.semi)||Do(),qe(y.semi),J(y.parenR)||Do(),qe(y.parenR),eu(!1)}function Rce(n){n?jr(fe._of):Ge(),Do(),qe(y.parenR),eu(!1)}function ixe(n,e){for(;;){if(Dot(e),Be(y.eq)){const t=D.tokens.length-1;No(n),D.tokens[t].rhsEndIndex=D.tokens.length}if(!Be(y.comma))break}}function Dot(n){EB(n),tn?Mst():Tn&&tot()}function Wy(n,e,t=!1){J(y.star)&&Ge(),e&&!t&&!J(y.name)&&!J(y._yield)&&Di();let i=null;J(y.name)&&(e||(i=D.tokens.length,D.scopeDepth++),D_(!1));const s=D.tokens.length;D.scopeDepth++,nL(),jSe(n);const r=D.tokens.length;D.scopes.push(new Hf(s,r,!0)),D.scopeDepth--,i!==null&&(D.scopes.push(new Hf(i,r,!0)),D.scopeDepth--)}function nL(n=!1,e=0){tn?Rst():Tn&&eot(),qe(y.parenL),e&&(D.tokens[D.tokens.length-1].contextId=e),BJ(y.parenR,!1,!1,n,e),e&&(D.tokens[D.tokens.length-1].contextId=e)}function Vy(n,e=!1){const t=cT();Ge(),D.tokens[D.tokens.length-1].contextId=t,D.tokens[D.tokens.length-1].isExpression=!n;let i=null;n||(i=D.tokens.length,D.scopeDepth++),Rot(n,e),Mot();const s=D.tokens.length;if(Not(t),!D.error&&(D.tokens[s].contextId=t,D.tokens[D.tokens.length-1].contextId=t,i!==null)){const r=D.tokens.length;D.scopes.push(new Hf(i,r,!1)),D.scopeDepth--}}function nxe(){return J(y.eq)||J(y.semi)||J(y.braceR)||J(y.bang)||J(y.colon)}function sxe(){return J(y.parenL)||J(y.lessThan)}function Not(n){for(qe(y.braceL);!Be(y.braceR)&&!D.error;){if(Be(y.semi))continue;if(J(y.at)){exe();continue}const e=D.start;Aot(e,n)}}function Aot(n,e){tn&&WJ([fe._declare,fe._public,fe._protected,fe._private,fe._override]);let t=!1;if(J(y.name)&&D.contextualKeyword===fe._static){if(gi(),sxe()){FE(n,!1);return}else if(nxe()){QR();return}if(D.tokens[D.tokens.length-1].type=y._static,t=!0,J(y.braceL)){D.tokens[D.tokens.length-1].contextId=e,w1();return}}Pot(n,t,e)}function Pot(n,e,t){if(tn&&Tst(e))return;if(Be(y.star)){tE(t),FE(n,!1);return}tE(t);let i=!1;const s=D.tokens[D.tokens.length-1];s.contextualKeyword===fe._constructor&&(i=!0),Mce(),sxe()?FE(n,i):nxe()?QR():s.contextualKeyword===fe._async&&!_f()?(D.tokens[D.tokens.length-1].type=y._async,J(y.star)&&Ge(),tE(t),Mce(),FE(n,!1)):(s.contextualKeyword===fe._get||s.contextualKeyword===fe._set)&&!(_f()&&J(y.star))?(s.contextualKeyword===fe._get?D.tokens[D.tokens.length-1].type=y._get:D.tokens[D.tokens.length-1].type=y._set,tE(t),FE(n,!1)):s.contextualKeyword===fe._accessor&&!_f()?(tE(t),QR()):_f()?QR():Di()}function FE(n,e){tn?E0():Tn&&J(y.lessThan)&&fd(),K$(n,e)}function tE(n){dT(n)}function Mce(){if(tn){const n=Oi(0);Be(y.question),Ri(n)}}function QR(){if(tn?(lSe(y.bang),tL()):Tn&&J(y.colon)&&k0(),J(y.eq)){const n=D.tokens.length;Ge(),No(),D.tokens[n].rhsEndIndex=D.tokens.length}Is()}function Rot(n,e=!1){tn&&(!n||e)&&Ut(fe._implements)||(J(y.name)&&D_(!0),tn?E0():Tn&&J(y.lessThan)&&fd())}function Mot(){let n=!1;Be(y._extends)?(HSe(),n=!0):n=!1,tn?Ast(n):Tn&&Xrt(n)}function rxe(){const n=D.tokens.length-1;tn&&xst()||(Wot()?Vot():Bot()?(gi(),J(y.comma)&&zs()===y.star?(qe(y.comma),qe(y.star),gr(fe._as),gi()):oxe(),pT()):Be(y._default)?Oot():$ot()?Fot():(ree(),pT()),D.tokens[n].rhsEndIndex=D.tokens.length)}function Oot(){if(tn&&kst()||Tn&&$rt())return;const n=D.start;Be(y._function)?Wy(n,!0,!0):Ut(fe._async)&&zs()===y._function?(jr(fe._async),Be(y._function),Wy(n,!0,!0)):J(y._class)?Vy(!0,!0):J(y.at)?(see(),Vy(!0,!0)):(No(),Is())}function Fot(){tn?Nst():Tn?qrt():eu(!0)}function Bot(){if(tn&&MSe())return!1;if(Tn&&jrt())return!1;if(J(y.name))return D.contextualKeyword!==fe._async;if(!J(y._default))return!1;const n=MJ(),e=vN(),t=e.type===y.name&&e.contextualKeyword===fe._from;if(e.type===y.comma)return!0;if(t){const i=ht.charCodeAt(cSe(n+4));return i===we.quotationMark||i===we.apostrophe}return!1}function oxe(){Be(y.comma)&&ree()}function pT(){jr(fe._from)&&(Og(),lxe()),Is()}function Wot(){return Tn?Krt():J(y.star)}function Vot(){Tn?Grt():Y$()}function Y$(){qe(y.star),Ut(fe._as)?Hot():pT()}function Hot(){Ge(),D.tokens[D.tokens.length-1].type=y._as,gi(),oxe(),pT()}function $ot(){return tn&&MSe()||Tn&&Urt()||D.type===y._var||D.type===y._const||D.type===y._let||D.type===y._function||D.type===y._class||Ut(fe._async)||J(y.at)}function ree(){let n=!0;for(qe(y.braceL);!Be(y.braceR)&&!D.error;){if(n)n=!1;else if(qe(y.comma),Be(y.braceR))break;zot()}}function zot(){if(tn){Est();return}gi(),D.tokens[D.tokens.length-1].identifierRole=ti.ExportAccess,jr(fe._as)&&gi()}function Uot(){const n=D.snapshot();return gr(fe._module),jr(fe._from)?Ut(fe._from)?(D.restoreFromSnapshot(n),!0):(D.restoreFromSnapshot(n),!1):J(y.comma)?(D.restoreFromSnapshot(n),!1):(D.restoreFromSnapshot(n),!0)}function jot(){Ut(fe._module)&&Uot()&&Ge()}function axe(){if(tn&&J(y.name)&&zs()===y.eq){U$();return}if(tn&&Ut(fe._type)){const n=vN();if(n.type===y.name&&n.contextualKeyword!==fe._from){if(gr(fe._type),zs()===y.eq){U$();return}}else(n.type===y.star||n.type===y.braceL)&&gr(fe._type)}J(y.string)||(jot(),Kot(),gr(fe._from)),Og(),lxe(),Is()}function qot(){return J(y.name)}function Oce(){jO()}function Kot(){Tn&&Qrt();let n=!0;if(!(qot()&&(Oce(),!Be(y.comma)))){if(J(y.star)){Ge(),gr(fe._as),Oce();return}for(qe(y.braceL);!Be(y.braceR)&&!D.error;){if(n)n=!1;else if(Be(y.colon)&&Di("ES2015 named imports do not destructure. Use another statement for destructuring after the import."),qe(y.comma),Be(y.braceR))break;Got()}}}function Got(){if(tn){Lst();return}if(Tn){Jrt();return}jO(),Ut(fe._as)&&(D.tokens[D.tokens.length-1].identifierRole=ti.ImportAccess,Ge(),jO())}function lxe(){(J(y._with)||Ut(fe._assert)&&!_l())&&(Ge(),XJ(!1,!1))}function Xot(){return D.pos===0&&ht.charCodeAt(0)===we.numberSign&&ht.charCodeAt(1)===we.exclamationMark&&dSe(2),hSe(),uot()}let Yot=class{constructor(e,t){this.tokens=e,this.scopes=t}};function Zot(n,e,t,i){if(i&&t)throw new Error("Cannot combine flow and typescript plugins.");Wit(n,e,t,i);const s=Xot();if(D.error)throw Oit(D.error);return s}function Qot(n){let e=n.currentIndex(),t=0;const i=n.currentToken();do{const s=n.tokens[e];if(s.isOptionalChainStart&&t++,s.isOptionalChainEnd&&t--,t+=s.numNullishCoalesceStarts,t-=s.numNullishCoalesceEnds,s.contextualKeyword===fe._await&&s.identifierRole==null&&s.scopeDepth===i.scopeDepth)return!0;e+=1}while(t>0&&e<n.tokens.length);return!1}class xk{__init(){this.resultCode=""}__init2(){this.resultMappings=new Array(this.tokens.length)}__init3(){this.tokenIndex=0}constructor(e,t,i,s,r){this.code=e,this.tokens=t,this.isFlowEnabled=i,this.disableESTransforms=s,this.helperManager=r,xk.prototype.__init.call(this),xk.prototype.__init2.call(this),xk.prototype.__init3.call(this)}snapshot(){return{resultCode:this.resultCode,tokenIndex:this.tokenIndex}}restoreToSnapshot(e){this.resultCode=e.resultCode,this.tokenIndex=e.tokenIndex}dangerouslyGetAndRemoveCodeSinceSnapshot(e){const t=this.resultCode.slice(e.resultCode.length);return this.resultCode=e.resultCode,t}reset(){this.resultCode="",this.resultMappings=new Array(this.tokens.length),this.tokenIndex=0}matchesContextualAtIndex(e,t){return this.matches1AtIndex(e,y.name)&&this.tokens[e].contextualKeyword===t}identifierNameAtIndex(e){return this.identifierNameForToken(this.tokens[e])}identifierNameAtRelativeIndex(e){return this.identifierNameForToken(this.tokenAtRelativeIndex(e))}identifierName(){return this.identifierNameForToken(this.currentToken())}identifierNameForToken(e){return this.code.slice(e.start,e.end)}rawCodeForToken(e){return this.code.slice(e.start,e.end)}stringValueAtIndex(e){return this.stringValueForToken(this.tokens[e])}stringValue(){return this.stringValueForToken(this.currentToken())}stringValueForToken(e){return this.code.slice(e.start+1,e.end-1)}matches1AtIndex(e,t){return this.tokens[e].type===t}matches2AtIndex(e,t,i){return this.tokens[e].type===t&&this.tokens[e+1].type===i}matches3AtIndex(e,t,i,s){return this.tokens[e].type===t&&this.tokens[e+1].type===i&&this.tokens[e+2].type===s}matches1(e){return this.tokens[this.tokenIndex].type===e}matches2(e,t){return this.tokens[this.tokenIndex].type===e&&this.tokens[this.tokenIndex+1].type===t}matches3(e,t,i){return this.tokens[this.tokenIndex].type===e&&this.tokens[this.tokenIndex+1].type===t&&this.tokens[this.tokenIndex+2].type===i}matches4(e,t,i,s){return this.tokens[this.tokenIndex].type===e&&this.tokens[this.tokenIndex+1].type===t&&this.tokens[this.tokenIndex+2].type===i&&this.tokens[this.tokenIndex+3].type===s}matches5(e,t,i,s,r){return this.tokens[this.tokenIndex].type===e&&this.tokens[this.tokenIndex+1].type===t&&this.tokens[this.tokenIndex+2].type===i&&this.tokens[this.tokenIndex+3].type===s&&this.tokens[this.tokenIndex+4].type===r}matchesContextual(e){return this.matchesContextualAtIndex(this.tokenIndex,e)}matchesContextIdAndLabel(e,t){return this.matches1(e)&&this.currentToken().contextId===t}previousWhitespaceAndComments(){let e=this.code.slice(this.tokenIndex>0?this.tokens[this.tokenIndex-1].end:0,this.tokenIndex<this.tokens.length?this.tokens[this.tokenIndex].start:this.code.length);return this.isFlowEnabled&&(e=e.replace(/@flow/g,"")),e}replaceToken(e){this.resultCode+=this.previousWhitespaceAndComments(),this.appendTokenPrefix(),this.resultMappings[this.tokenIndex]=this.resultCode.length,this.resultCode+=e,this.appendTokenSuffix(),this.tokenIndex++}replaceTokenTrimmingLeftWhitespace(e){this.resultCode+=this.previousWhitespaceAndComments().replace(/[^\r\n]/g,""),this.appendTokenPrefix(),this.resultMappings[this.tokenIndex]=this.resultCode.length,this.resultCode+=e,this.appendTokenSuffix(),this.tokenIndex++}removeInitialToken(){this.replaceToken("")}removeToken(){this.replaceTokenTrimmingLeftWhitespace("")}removeBalancedCode(){let e=0;for(;!this.isAtEnd();){if(this.matches1(y.braceL))e++;else if(this.matches1(y.braceR)){if(e===0)return;e--}this.removeToken()}}copyExpectedToken(e){if(this.tokens[this.tokenIndex].type!==e)throw new Error(`Expected token ${e}`);this.copyToken()}copyToken(){this.resultCode+=this.previousWhitespaceAndComments(),this.appendTokenPrefix(),this.resultMappings[this.tokenIndex]=this.resultCode.length,this.resultCode+=this.code.slice(this.tokens[this.tokenIndex].start,this.tokens[this.tokenIndex].end),this.appendTokenSuffix(),this.tokenIndex++}copyTokenWithPrefix(e){this.resultCode+=this.previousWhitespaceAndComments(),this.appendTokenPrefix(),this.resultCode+=e,this.resultMappings[this.tokenIndex]=this.resultCode.length,this.resultCode+=this.code.slice(this.tokens[this.tokenIndex].start,this.tokens[this.tokenIndex].end),this.appendTokenSuffix(),this.tokenIndex++}appendTokenPrefix(){const e=this.currentToken();if((e.numNullishCoalesceStarts||e.isOptionalChainStart)&&(e.isAsyncOperation=Qot(this)),!this.disableESTransforms){if(e.numNullishCoalesceStarts)for(let t=0;t<e.numNullishCoalesceStarts;t++)e.isAsyncOperation?(this.resultCode+="await ",this.resultCode+=this.helperManager.getHelperName("asyncNullishCoalesce")):this.resultCode+=this.helperManager.getHelperName("nullishCoalesce"),this.resultCode+="(";e.isOptionalChainStart&&(e.isAsyncOperation&&(this.resultCode+="await "),this.tokenIndex>0&&this.tokenAtRelativeIndex(-1).type===y._delete?e.isAsyncOperation?this.resultCode+=this.helperManager.getHelperName("asyncOptionalChainDelete"):this.resultCode+=this.helperManager.getHelperName("optionalChainDelete"):e.isAsyncOperation?this.resultCode+=this.helperManager.getHelperName("asyncOptionalChain"):this.resultCode+=this.helperManager.getHelperName("optionalChain"),this.resultCode+="([")}}appendTokenSuffix(){const e=this.currentToken();if(e.isOptionalChainEnd&&!this.disableESTransforms&&(this.resultCode+="])"),e.numNullishCoalesceEnds&&!this.disableESTransforms)for(let t=0;t<e.numNullishCoalesceEnds;t++)this.resultCode+="))"}appendCode(e){this.resultCode+=e}currentToken(){return this.tokens[this.tokenIndex]}currentTokenCode(){const e=this.currentToken();return this.code.slice(e.start,e.end)}tokenAtRelativeIndex(e){return this.tokens[this.tokenIndex+e]}currentIndex(){return this.tokenIndex}nextToken(){if(this.tokenIndex===this.tokens.length)throw new Error("Unexpectedly reached end of input.");this.tokenIndex++}previousToken(){this.tokenIndex--}finish(){if(this.tokenIndex!==this.tokens.length)throw new Error("Tried to finish processing tokens before reaching the end.");return this.resultCode+=this.previousWhitespaceAndComments(),{code:this.resultCode,mappings:this.resultMappings}}isAtEnd(){return this.tokenIndex===this.tokens.length}}function Jot(n,e,t,i){const s=e.snapshot(),r=eat(e);let o=[];const a=[],l=[];let c=null;const u=[],h=[],d=e.currentToken().contextId;if(d==null)throw new Error("Expected non-null class context ID on class open-brace.");for(e.nextToken();!e.matchesContextIdAndLabel(y.braceR,d);)if(e.matchesContextual(fe._constructor)&&!e.currentToken().isType)({constructorInitializerStatements:o,constructorInsertPos:c}=Fce(e));else if(e.matches1(y.semi))i||h.push({start:e.currentIndex(),end:e.currentIndex()+1}),e.nextToken();else if(e.currentToken().isType)e.nextToken();else{const f=e.currentIndex();let p=!1,g=!1,m=!1;for(;ZO(e.currentToken());)e.matches1(y._static)&&(p=!0),e.matches1(y.hash)&&(g=!0),(e.matches1(y._declare)||e.matches1(y._abstract))&&(m=!0),e.nextToken();if(p&&e.matches1(y.braceL)){C7(e,d);continue}if(g){C7(e,d);continue}if(e.matchesContextual(fe._constructor)&&!e.currentToken().isType){({constructorInitializerStatements:o,constructorInsertPos:c}=Fce(e));continue}const _=e.currentIndex();if(tat(e),e.matches1(y.lessThan)||e.matches1(y.parenL)){C7(e,d);continue}for(;e.currentToken().isType;)e.nextToken();if(e.matches1(y.eq)){const b=e.currentIndex(),w=e.currentToken().rhsEndIndex;if(w==null)throw new Error("Expected rhsEndIndex on class field assignment.");for(e.nextToken();e.currentIndex()<w;)n.processToken();let C;p?(C=t.claimFreeName("__initStatic"),l.push(C)):(C=t.claimFreeName("__init"),a.push(C)),u.push({initializerName:C,equalsIndex:b,start:_,end:e.currentIndex()})}else(!i||m)&&h.push({start:f,end:e.currentIndex()})}return e.restoreToSnapshot(s),i?{headerInfo:r,constructorInitializerStatements:o,instanceInitializerNames:[],staticInitializerNames:[],constructorInsertPos:c,fields:[],rangesToRemove:h}:{headerInfo:r,constructorInitializerStatements:o,instanceInitializerNames:a,staticInitializerNames:l,constructorInsertPos:c,fields:u,rangesToRemove:h}}function C7(n,e){for(n.nextToken();n.currentToken().contextId!==e;)n.nextToken();for(;ZO(n.tokenAtRelativeIndex(-1));)n.previousToken()}function eat(n){const e=n.currentToken(),t=e.contextId;if(t==null)throw new Error("Expected context ID on class token.");const i=e.isExpression;if(i==null)throw new Error("Expected isExpression on class token.");let s=null,r=!1;for(n.nextToken(),n.matches1(y.name)&&(s=n.identifierName());!n.matchesContextIdAndLabel(y.braceL,t);)n.matches1(y._extends)&&!n.currentToken().isType&&(r=!0),n.nextToken();return{isExpression:i,className:s,hasSuperclass:r}}function Fce(n){const e=[];n.nextToken();const t=n.currentToken().contextId;if(t==null)throw new Error("Expected context ID on open-paren starting constructor params.");for(;!n.matchesContextIdAndLabel(y.parenR,t);)if(n.currentToken().contextId===t){if(n.nextToken(),ZO(n.currentToken())){for(n.nextToken();ZO(n.currentToken());)n.nextToken();const r=n.currentToken();if(r.type!==y.name)throw new Error("Expected identifier after access modifiers in constructor arg.");const o=n.identifierNameForToken(r);e.push(`this.${o} = ${o}`)}}else n.nextToken();for(n.nextToken();n.currentToken().isType;)n.nextToken();let i=n.currentIndex(),s=!1;for(;!n.matchesContextIdAndLabel(y.braceR,t);){if(!s&&n.matches2(y._super,y.parenL)){n.nextToken();const r=n.currentToken().contextId;if(r==null)throw new Error("Expected a context ID on the super call");for(;!n.matchesContextIdAndLabel(y.parenR,r);)n.nextToken();i=n.currentIndex(),s=!0}n.nextToken()}return n.nextToken(),{constructorInitializerStatements:e,constructorInsertPos:i}}function ZO(n){return[y._async,y._get,y._set,y.plus,y.minus,y._readonly,y._static,y._public,y._private,y._protected,y._override,y._abstract,y.star,y._declare,y.hash].includes(n.type)}function tat(n){if(n.matches1(y.bracketL)){const t=n.currentToken().contextId;if(t==null)throw new Error("Expected class context ID on computed name open bracket.");for(;!n.matchesContextIdAndLabel(y.bracketR,t);)n.nextToken();n.nextToken()}else n.nextToken()}function cxe(n){if(n.removeInitialToken(),n.removeToken(),n.removeToken(),n.removeToken(),n.matches1(y.parenL))n.removeToken(),n.removeToken(),n.removeToken();else for(;n.matches1(y.dot);)n.removeToken(),n.removeToken()}const uxe={typeDeclarations:new Set,valueDeclarations:new Set};function hxe(n){const e=new Set,t=new Set;for(let i=0;i<n.tokens.length;i++){const s=n.tokens[i];s.type===y.name&&aSe(s)&&(s.isType?e.add(n.identifierNameForToken(s)):t.add(n.identifierNameForToken(s)))}return{typeDeclarations:e,valueDeclarations:t}}function dxe(n){let e=n.currentIndex();for(;!n.matches1AtIndex(e,y.braceR);)e++;return n.matchesContextualAtIndex(e+1,fe._from)&&n.matches1AtIndex(e+2,y.string)}function Jv(n){(n.matches2(y._with,y.braceL)||n.matches2(y.name,y.braceL)&&n.matchesContextual(fe._assert))&&(n.removeToken(),n.removeToken(),n.removeBalancedCode(),n.removeToken())}function fxe(n,e,t,i){if(!n||e)return!1;const s=t.currentToken();if(s.rhsEndIndex==null)throw new Error("Expected non-null rhsEndIndex on export token.");const r=s.rhsEndIndex-t.currentIndex();if(r!==3&&!(r===4&&t.matches1AtIndex(s.rhsEndIndex-1,y.semi)))return!1;const o=t.tokenAtRelativeIndex(2);if(o.type!==y.name)return!1;const a=t.identifierNameForToken(o);return i.typeDeclarations.has(a)&&!i.valueDeclarations.has(a)}class Lk extends dd{__init(){this.hadExport=!1}__init2(){this.hadNamedExport=!1}__init3(){this.hadDefaultExport=!1}constructor(e,t,i,s,r,o,a,l,c,u,h,d){super(),this.rootTransformer=e,this.tokens=t,this.importProcessor=i,this.nameManager=s,this.helperManager=r,this.reactHotLoaderTransformer=o,this.enableLegacyBabel5ModuleInterop=a,this.enableLegacyTypeScriptModuleInterop=l,this.isTypeScriptTransformEnabled=c,this.isFlowTransformEnabled=u,this.preserveDynamicImport=h,this.keepUnusedImports=d,Lk.prototype.__init.call(this),Lk.prototype.__init2.call(this),Lk.prototype.__init3.call(this),this.declarationInfo=c?hxe(t):uxe}getPrefixCode(){let e="";return this.hadExport&&(e+='Object.defineProperty(exports, "__esModule", {value: true});'),e}getSuffixCode(){return this.enableLegacyBabel5ModuleInterop&&this.hadDefaultExport&&!this.hadNamedExport?` +module.exports = exports.default; +`:""}process(){return this.tokens.matches3(y._import,y.name,y.eq)?this.processImportEquals():this.tokens.matches1(y._import)?(this.processImport(),!0):this.tokens.matches2(y._export,y.eq)?(this.tokens.replaceToken("module.exports"),!0):this.tokens.matches1(y._export)&&!this.tokens.currentToken().isType?(this.hadExport=!0,this.processExport()):this.tokens.matches2(y.name,y.postIncDec)&&this.processPostIncDec()?!0:this.tokens.matches1(y.name)||this.tokens.matches1(y.jsxName)?this.processIdentifier():this.tokens.matches1(y.eq)?this.processAssignment():this.tokens.matches1(y.assign)?this.processComplexAssignment():this.tokens.matches1(y.preIncDec)?this.processPreIncDec():!1}processImportEquals(){const e=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);return this.importProcessor.shouldAutomaticallyElideImportedName(e)?cxe(this.tokens):this.tokens.replaceToken("const"),!0}processImport(){if(this.tokens.matches2(y._import,y.parenL)){if(this.preserveDynamicImport){this.tokens.copyToken();return}const t=this.enableLegacyTypeScriptModuleInterop?"":`${this.helperManager.getHelperName("interopRequireWildcard")}(`;this.tokens.replaceToken(`Promise.resolve().then(() => ${t}require`);const i=this.tokens.currentToken().contextId;if(i==null)throw new Error("Expected context ID on dynamic import invocation.");for(this.tokens.copyToken();!this.tokens.matchesContextIdAndLabel(y.parenR,i);)this.rootTransformer.processToken();this.tokens.replaceToken(t?")))":"))");return}if(this.removeImportAndDetectIfShouldElide())this.tokens.removeToken();else{const t=this.tokens.stringValue();this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(t)),this.tokens.appendCode(this.importProcessor.claimImportCode(t))}Jv(this.tokens),this.tokens.matches1(y.semi)&&this.tokens.removeToken()}removeImportAndDetectIfShouldElide(){if(this.tokens.removeInitialToken(),this.tokens.matchesContextual(fe._type)&&!this.tokens.matches1AtIndex(this.tokens.currentIndex()+1,y.comma)&&!this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+1,fe._from))return this.removeRemainingImport(),!0;if(this.tokens.matches1(y.name)||this.tokens.matches1(y.star))return this.removeRemainingImport(),!1;if(this.tokens.matches1(y.string))return!1;let e=!1,t=!1;for(;!this.tokens.matches1(y.string);)(!e&&this.tokens.matches1(y.braceL)||this.tokens.matches1(y.comma))&&(this.tokens.removeToken(),this.tokens.matches1(y.braceR)||(t=!0),(this.tokens.matches2(y.name,y.comma)||this.tokens.matches2(y.name,y.braceR)||this.tokens.matches4(y.name,y.name,y.name,y.comma)||this.tokens.matches4(y.name,y.name,y.name,y.braceR))&&(e=!0)),this.tokens.removeToken();return this.keepUnusedImports?!1:this.isTypeScriptTransformEnabled?!e:this.isFlowTransformEnabled?t&&!e:!1}removeRemainingImport(){for(;!this.tokens.matches1(y.string);)this.tokens.removeToken()}processIdentifier(){const e=this.tokens.currentToken();if(e.shadowsGlobal)return!1;if(e.identifierRole===ti.ObjectShorthand)return this.processObjectShorthand();if(e.identifierRole!==ti.Access)return!1;const t=this.importProcessor.getIdentifierReplacement(this.tokens.identifierNameForToken(e));if(!t)return!1;let i=this.tokens.currentIndex()+1;for(;i<this.tokens.tokens.length&&this.tokens.tokens[i].type===y.parenR;)i++;return this.tokens.tokens[i].type===y.parenL?this.tokens.tokenAtRelativeIndex(1).type===y.parenL&&this.tokens.tokenAtRelativeIndex(-1).type!==y._new?(this.tokens.replaceToken(`${t}.call(void 0, `),this.tokens.removeToken(),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR)):this.tokens.replaceToken(`(0, ${t})`):this.tokens.replaceToken(t),!0}processObjectShorthand(){const e=this.tokens.identifierName(),t=this.importProcessor.getIdentifierReplacement(e);return t?(this.tokens.replaceToken(`${e}: ${t}`),!0):!1}processExport(){if(this.tokens.matches2(y._export,y._enum)||this.tokens.matches3(y._export,y._const,y._enum))return this.hadNamedExport=!0,!1;if(this.tokens.matches2(y._export,y._default))return this.tokens.matches3(y._export,y._default,y._enum)?(this.hadDefaultExport=!0,!1):(this.processExportDefault(),!0);if(this.tokens.matches2(y._export,y.braceL))return this.processExportBindings(),!0;if(this.tokens.matches2(y._export,y.name)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+1,fe._type)){if(this.tokens.removeInitialToken(),this.tokens.removeToken(),this.tokens.matches1(y.braceL)){for(;!this.tokens.matches1(y.braceR);)this.tokens.removeToken();this.tokens.removeToken()}else this.tokens.removeToken(),this.tokens.matches1(y._as)&&(this.tokens.removeToken(),this.tokens.removeToken());return this.tokens.matchesContextual(fe._from)&&this.tokens.matches1AtIndex(this.tokens.currentIndex()+1,y.string)&&(this.tokens.removeToken(),this.tokens.removeToken(),Jv(this.tokens)),!0}if(this.hadNamedExport=!0,this.tokens.matches2(y._export,y._var)||this.tokens.matches2(y._export,y._let)||this.tokens.matches2(y._export,y._const))return this.processExportVar(),!0;if(this.tokens.matches2(y._export,y._function)||this.tokens.matches3(y._export,y.name,y._function))return this.processExportFunction(),!0;if(this.tokens.matches2(y._export,y._class)||this.tokens.matches3(y._export,y._abstract,y._class)||this.tokens.matches2(y._export,y.at))return this.processExportClass(),!0;if(this.tokens.matches2(y._export,y.star))return this.processExportStar(),!0;throw new Error("Unrecognized export syntax.")}processAssignment(){const e=this.tokens.currentIndex(),t=this.tokens.tokens[e-1];if(t.isType||t.type!==y.name||t.shadowsGlobal||e>=2&&this.tokens.matches1AtIndex(e-2,y.dot)||e>=2&&[y._var,y._let,y._const].includes(this.tokens.tokens[e-2].type))return!1;const i=this.importProcessor.resolveExportBinding(this.tokens.identifierNameForToken(t));return i?(this.tokens.copyToken(),this.tokens.appendCode(` ${i} =`),!0):!1}processComplexAssignment(){const e=this.tokens.currentIndex(),t=this.tokens.tokens[e-1];if(t.type!==y.name||t.shadowsGlobal||e>=2&&this.tokens.matches1AtIndex(e-2,y.dot))return!1;const i=this.importProcessor.resolveExportBinding(this.tokens.identifierNameForToken(t));return i?(this.tokens.appendCode(` = ${i}`),this.tokens.copyToken(),!0):!1}processPreIncDec(){const e=this.tokens.currentIndex(),t=this.tokens.tokens[e+1];if(t.type!==y.name||t.shadowsGlobal||e+2<this.tokens.tokens.length&&(this.tokens.matches1AtIndex(e+2,y.dot)||this.tokens.matches1AtIndex(e+2,y.bracketL)||this.tokens.matches1AtIndex(e+2,y.parenL)))return!1;const i=this.tokens.identifierNameForToken(t),s=this.importProcessor.resolveExportBinding(i);return s?(this.tokens.appendCode(`${s} = `),this.tokens.copyToken(),!0):!1}processPostIncDec(){const e=this.tokens.currentIndex(),t=this.tokens.tokens[e],i=this.tokens.tokens[e+1];if(t.type!==y.name||t.shadowsGlobal||e>=1&&this.tokens.matches1AtIndex(e-1,y.dot))return!1;const s=this.tokens.identifierNameForToken(t),r=this.importProcessor.resolveExportBinding(s);if(!r)return!1;const o=this.tokens.rawCodeForToken(i),a=this.importProcessor.getIdentifierReplacement(s)||s;if(o==="++")this.tokens.replaceToken(`(${a} = ${r} = ${a} + 1, ${a} - 1)`);else if(o==="--")this.tokens.replaceToken(`(${a} = ${r} = ${a} - 1, ${a} + 1)`);else throw new Error(`Unexpected operator: ${o}`);return this.tokens.removeToken(),!0}processExportDefault(){let e=!0;if(this.tokens.matches4(y._export,y._default,y._function,y.name)||this.tokens.matches5(y._export,y._default,y.name,y._function,y.name)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+2,fe._async)){this.tokens.removeInitialToken(),this.tokens.removeToken();const t=this.processNamedFunction();this.tokens.appendCode(` exports.default = ${t};`)}else if(this.tokens.matches4(y._export,y._default,y._class,y.name)||this.tokens.matches5(y._export,y._default,y._abstract,y._class,y.name)||this.tokens.matches3(y._export,y._default,y.at)){this.tokens.removeInitialToken(),this.tokens.removeToken(),this.copyDecorators(),this.tokens.matches1(y._abstract)&&this.tokens.removeToken();const t=this.rootTransformer.processNamedClass();this.tokens.appendCode(` exports.default = ${t};`)}else if(fxe(this.isTypeScriptTransformEnabled,this.keepUnusedImports,this.tokens,this.declarationInfo))e=!1,this.tokens.removeInitialToken(),this.tokens.removeToken(),this.tokens.removeToken();else if(this.reactHotLoaderTransformer){const t=this.nameManager.claimFreeName("_default");this.tokens.replaceToken(`let ${t}; exports.`),this.tokens.copyToken(),this.tokens.appendCode(` = ${t} =`),this.reactHotLoaderTransformer.setExtractedDefaultExportName(t)}else this.tokens.replaceToken("exports."),this.tokens.copyToken(),this.tokens.appendCode(" =");e&&(this.hadDefaultExport=!0)}copyDecorators(){for(;this.tokens.matches1(y.at);)if(this.tokens.copyToken(),this.tokens.matches1(y.parenL))this.tokens.copyExpectedToken(y.parenL),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR);else{for(this.tokens.copyExpectedToken(y.name);this.tokens.matches1(y.dot);)this.tokens.copyExpectedToken(y.dot),this.tokens.copyExpectedToken(y.name);this.tokens.matches1(y.parenL)&&(this.tokens.copyExpectedToken(y.parenL),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR))}}processExportVar(){this.isSimpleExportVar()?this.processSimpleExportVar():this.processComplexExportVar()}isSimpleExportVar(){let e=this.tokens.currentIndex();if(e++,e++,!this.tokens.matches1AtIndex(e,y.name))return!1;for(e++;e<this.tokens.tokens.length&&this.tokens.tokens[e].isType;)e++;return!!this.tokens.matches1AtIndex(e,y.eq)}processSimpleExportVar(){this.tokens.removeInitialToken(),this.tokens.copyToken();const e=this.tokens.identifierName();for(;!this.tokens.matches1(y.eq);)this.rootTransformer.processToken();const t=this.tokens.currentToken().rhsEndIndex;if(t==null)throw new Error("Expected = token with an end index.");for(;this.tokens.currentIndex()<t;)this.rootTransformer.processToken();this.tokens.appendCode(`; exports.${e} = ${e}`)}processComplexExportVar(){this.tokens.removeInitialToken(),this.tokens.removeToken();const e=this.tokens.matches1(y.braceL);e&&this.tokens.appendCode("(");let t=0;for(;;)if(this.tokens.matches1(y.braceL)||this.tokens.matches1(y.dollarBraceL)||this.tokens.matches1(y.bracketL))t++,this.tokens.copyToken();else if(this.tokens.matches1(y.braceR)||this.tokens.matches1(y.bracketR))t--,this.tokens.copyToken();else{if(t===0&&!this.tokens.matches1(y.name)&&!this.tokens.currentToken().isType)break;if(this.tokens.matches1(y.eq)){const i=this.tokens.currentToken().rhsEndIndex;if(i==null)throw new Error("Expected = token with an end index.");for(;this.tokens.currentIndex()<i;)this.rootTransformer.processToken()}else{const i=this.tokens.currentToken();if(oSe(i)){const s=this.tokens.identifierName();let r=this.importProcessor.getIdentifierReplacement(s);if(r===null)throw new Error(`Expected a replacement for ${s} in \`export var\` syntax.`);jit(i)&&(r=`${s}: ${r}`),this.tokens.replaceToken(r)}else this.rootTransformer.processToken()}}if(e){const i=this.tokens.currentToken().rhsEndIndex;if(i==null)throw new Error("Expected = token with an end index.");for(;this.tokens.currentIndex()<i;)this.rootTransformer.processToken();this.tokens.appendCode(")")}}processExportFunction(){this.tokens.replaceToken("");const e=this.processNamedFunction();this.tokens.appendCode(` exports.${e} = ${e};`)}processNamedFunction(){if(this.tokens.matches1(y._function))this.tokens.copyToken();else if(this.tokens.matches2(y.name,y._function)){if(!this.tokens.matchesContextual(fe._async))throw new Error("Expected async keyword in function export.");this.tokens.copyToken(),this.tokens.copyToken()}if(this.tokens.matches1(y.star)&&this.tokens.copyToken(),!this.tokens.matches1(y.name))throw new Error("Expected identifier for exported function name.");const e=this.tokens.identifierName();if(this.tokens.copyToken(),this.tokens.currentToken().isType)for(this.tokens.removeInitialToken();this.tokens.currentToken().isType;)this.tokens.removeToken();return this.tokens.copyExpectedToken(y.parenL),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR),this.rootTransformer.processPossibleTypeRange(),this.tokens.copyExpectedToken(y.braceL),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.braceR),e}processExportClass(){this.tokens.removeInitialToken(),this.copyDecorators(),this.tokens.matches1(y._abstract)&&this.tokens.removeToken();const e=this.rootTransformer.processNamedClass();this.tokens.appendCode(` exports.${e} = ${e};`)}processExportBindings(){this.tokens.removeInitialToken(),this.tokens.removeToken();const e=dxe(this.tokens),t=[];for(;;){if(this.tokens.matches1(y.braceR)){this.tokens.removeToken();break}const i=uT(this.tokens);for(;this.tokens.currentIndex()<i.endIndex;)this.tokens.removeToken();if(!(i.isType||!e&&this.shouldElideExportedIdentifier(i.leftName))){const r=i.rightName;r==="default"?this.hadDefaultExport=!0:this.hadNamedExport=!0;const o=i.leftName,a=this.importProcessor.getIdentifierReplacement(o);t.push(`exports.${r} = ${a||o};`)}if(this.tokens.matches1(y.braceR)){this.tokens.removeToken();break}if(this.tokens.matches2(y.comma,y.braceR)){this.tokens.removeToken(),this.tokens.removeToken();break}else if(this.tokens.matches1(y.comma))this.tokens.removeToken();else throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.currentToken())}`)}if(this.tokens.matchesContextual(fe._from)){this.tokens.removeToken();const i=this.tokens.stringValue();this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(i)),Jv(this.tokens)}else this.tokens.appendCode(t.join(" "));this.tokens.matches1(y.semi)&&this.tokens.removeToken()}processExportStar(){for(this.tokens.removeInitialToken();!this.tokens.matches1(y.string);)this.tokens.removeToken();const e=this.tokens.stringValue();this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(e)),Jv(this.tokens),this.tokens.matches1(y.semi)&&this.tokens.removeToken()}shouldElideExportedIdentifier(e){return this.isTypeScriptTransformEnabled&&!this.keepUnusedImports&&!this.declarationInfo.valueDeclarations.has(e)}}class iat extends dd{constructor(e,t,i,s,r,o,a,l){super(),this.tokens=e,this.nameManager=t,this.helperManager=i,this.reactHotLoaderTransformer=s,this.isTypeScriptTransformEnabled=r,this.isFlowTransformEnabled=o,this.keepUnusedImports=a,this.nonTypeIdentifiers=r&&!a?wSe(e,l):new Set,this.declarationInfo=r&&!a?hxe(e):uxe,this.injectCreateRequireForImportRequire=!!l.injectCreateRequireForImportRequire}process(){if(this.tokens.matches3(y._import,y.name,y.eq))return this.processImportEquals();if(this.tokens.matches4(y._import,y.name,y.name,y.eq)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+1,fe._type)){this.tokens.removeInitialToken();for(let e=0;e<7;e++)this.tokens.removeToken();return!0}if(this.tokens.matches2(y._export,y.eq))return this.tokens.replaceToken("module.exports"),!0;if(this.tokens.matches5(y._export,y._import,y.name,y.name,y.eq)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+2,fe._type)){this.tokens.removeInitialToken();for(let e=0;e<8;e++)this.tokens.removeToken();return!0}if(this.tokens.matches1(y._import))return this.processImport();if(this.tokens.matches2(y._export,y._default))return this.processExportDefault();if(this.tokens.matches2(y._export,y.braceL))return this.processNamedExports();if(this.tokens.matches2(y._export,y.name)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+1,fe._type)){if(this.tokens.removeInitialToken(),this.tokens.removeToken(),this.tokens.matches1(y.braceL)){for(;!this.tokens.matches1(y.braceR);)this.tokens.removeToken();this.tokens.removeToken()}else this.tokens.removeToken(),this.tokens.matches1(y._as)&&(this.tokens.removeToken(),this.tokens.removeToken());return this.tokens.matchesContextual(fe._from)&&this.tokens.matches1AtIndex(this.tokens.currentIndex()+1,y.string)&&(this.tokens.removeToken(),this.tokens.removeToken(),Jv(this.tokens)),!0}return!1}processImportEquals(){const e=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);return this.shouldAutomaticallyElideImportedName(e)?cxe(this.tokens):this.injectCreateRequireForImportRequire?(this.tokens.replaceToken("const"),this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.replaceToken(this.helperManager.getHelperName("require"))):this.tokens.replaceToken("const"),!0}processImport(){if(this.tokens.matches2(y._import,y.parenL))return!1;const e=this.tokens.snapshot();if(this.removeImportTypeBindings()){for(this.tokens.restoreToSnapshot(e);!this.tokens.matches1(y.string);)this.tokens.removeToken();this.tokens.removeToken(),Jv(this.tokens),this.tokens.matches1(y.semi)&&this.tokens.removeToken()}return!0}removeImportTypeBindings(){if(this.tokens.copyExpectedToken(y._import),this.tokens.matchesContextual(fe._type)&&!this.tokens.matches1AtIndex(this.tokens.currentIndex()+1,y.comma)&&!this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+1,fe._from))return!0;if(this.tokens.matches1(y.string))return this.tokens.copyToken(),!1;this.tokens.matchesContextual(fe._module)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+2,fe._from)&&this.tokens.copyToken();let e=!1,t=!1,i=!1;if(this.tokens.matches1(y.name)&&(this.shouldAutomaticallyElideImportedName(this.tokens.identifierName())?(this.tokens.removeToken(),this.tokens.matches1(y.comma)&&this.tokens.removeToken()):(e=!0,this.tokens.copyToken(),this.tokens.matches1(y.comma)&&(i=!0,this.tokens.removeToken()))),this.tokens.matches1(y.star))this.shouldAutomaticallyElideImportedName(this.tokens.identifierNameAtRelativeIndex(2))?(this.tokens.removeToken(),this.tokens.removeToken(),this.tokens.removeToken()):(i&&this.tokens.appendCode(","),e=!0,this.tokens.copyExpectedToken(y.star),this.tokens.copyExpectedToken(y.name),this.tokens.copyExpectedToken(y.name));else if(this.tokens.matches1(y.braceL)){for(i&&this.tokens.appendCode(","),this.tokens.copyToken();!this.tokens.matches1(y.braceR);){t=!0;const s=uT(this.tokens);if(s.isType||this.shouldAutomaticallyElideImportedName(s.rightName)){for(;this.tokens.currentIndex()<s.endIndex;)this.tokens.removeToken();this.tokens.matches1(y.comma)&&this.tokens.removeToken()}else{for(e=!0;this.tokens.currentIndex()<s.endIndex;)this.tokens.copyToken();this.tokens.matches1(y.comma)&&this.tokens.copyToken()}}this.tokens.copyExpectedToken(y.braceR)}return this.keepUnusedImports?!1:this.isTypeScriptTransformEnabled?!e:this.isFlowTransformEnabled?t&&!e:!1}shouldAutomaticallyElideImportedName(e){return this.isTypeScriptTransformEnabled&&!this.keepUnusedImports&&!this.nonTypeIdentifiers.has(e)}processExportDefault(){if(fxe(this.isTypeScriptTransformEnabled,this.keepUnusedImports,this.tokens,this.declarationInfo))return this.tokens.removeInitialToken(),this.tokens.removeToken(),this.tokens.removeToken(),!0;if(!(this.tokens.matches4(y._export,y._default,y._function,y.name)||this.tokens.matches5(y._export,y._default,y.name,y._function,y.name)&&this.tokens.matchesContextualAtIndex(this.tokens.currentIndex()+2,fe._async)||this.tokens.matches4(y._export,y._default,y._class,y.name)||this.tokens.matches5(y._export,y._default,y._abstract,y._class,y.name))&&this.reactHotLoaderTransformer){const t=this.nameManager.claimFreeName("_default");return this.tokens.replaceToken(`let ${t}; export`),this.tokens.copyToken(),this.tokens.appendCode(` ${t} =`),this.reactHotLoaderTransformer.setExtractedDefaultExportName(t),!0}return!1}processNamedExports(){if(!this.isTypeScriptTransformEnabled)return!1;this.tokens.copyExpectedToken(y._export),this.tokens.copyExpectedToken(y.braceL);const e=dxe(this.tokens);let t=!1;for(;!this.tokens.matches1(y.braceR);){const i=uT(this.tokens);if(i.isType||!e&&this.shouldElideExportedName(i.leftName)){for(;this.tokens.currentIndex()<i.endIndex;)this.tokens.removeToken();this.tokens.matches1(y.comma)&&this.tokens.removeToken()}else{for(t=!0;this.tokens.currentIndex()<i.endIndex;)this.tokens.copyToken();this.tokens.matches1(y.comma)&&this.tokens.copyToken()}}return this.tokens.copyExpectedToken(y.braceR),!this.keepUnusedImports&&e&&!t&&(this.tokens.removeToken(),this.tokens.removeToken(),Jv(this.tokens)),!0}shouldElideExportedName(e){return this.isTypeScriptTransformEnabled&&!this.keepUnusedImports&&this.declarationInfo.typeDeclarations.has(e)&&!this.declarationInfo.valueDeclarations.has(e)}}class nat extends dd{constructor(e,t,i){super(),this.rootTransformer=e,this.tokens=t,this.isImportsTransformEnabled=i}process(){return this.rootTransformer.processPossibleArrowParamEnd()||this.rootTransformer.processPossibleAsyncArrowWithTypeParams()||this.rootTransformer.processPossibleTypeRange()?!0:this.tokens.matches1(y._enum)?(this.processEnum(),!0):this.tokens.matches2(y._export,y._enum)?(this.processNamedExportEnum(),!0):this.tokens.matches3(y._export,y._default,y._enum)?(this.processDefaultExportEnum(),!0):!1}processNamedExportEnum(){if(this.isImportsTransformEnabled){this.tokens.removeInitialToken();const e=this.tokens.identifierNameAtRelativeIndex(1);this.processEnum(),this.tokens.appendCode(` exports.${e} = ${e};`)}else this.tokens.copyToken(),this.processEnum()}processDefaultExportEnum(){this.tokens.removeInitialToken(),this.tokens.removeToken();const e=this.tokens.identifierNameAtRelativeIndex(1);this.processEnum(),this.isImportsTransformEnabled?this.tokens.appendCode(` exports.default = ${e};`):this.tokens.appendCode(` export default ${e};`)}processEnum(){this.tokens.replaceToken("const"),this.tokens.copyExpectedToken(y.name);let e=!1;this.tokens.matchesContextual(fe._of)&&(this.tokens.removeToken(),e=this.tokens.matchesContextual(fe._symbol),this.tokens.removeToken());const t=this.tokens.matches3(y.braceL,y.name,y.eq);this.tokens.appendCode(' = require("flow-enums-runtime")');const i=!e&&!t;for(this.tokens.replaceTokenTrimmingLeftWhitespace(i?".Mirrored([":"({");!this.tokens.matches1(y.braceR);){if(this.tokens.matches1(y.ellipsis)){this.tokens.removeToken();break}this.processEnumElement(e,t),this.tokens.matches1(y.comma)&&this.tokens.copyToken()}this.tokens.replaceToken(i?"]);":"});")}processEnumElement(e,t){if(e){const i=this.tokens.identifierName();this.tokens.copyToken(),this.tokens.appendCode(`: Symbol("${i}")`)}else t?(this.tokens.copyToken(),this.tokens.replaceTokenTrimmingLeftWhitespace(":"),this.tokens.copyToken()):this.tokens.replaceToken(`"${this.tokens.identifierName()}"`)}}function sat(n){let e,t=n[0],i=1;for(;i<n.length;){const s=n[i],r=n[i+1];if(i+=2,(s==="optionalAccess"||s==="optionalCall")&&t==null)return;s==="access"||s==="optionalAccess"?(e=t,t=r(t)):(s==="call"||s==="optionalCall")&&(t=r((...o)=>t.call(e,...o)),e=void 0)}return t}const iP="jest",rat=["mock","unmock","enableAutomock","disableAutomock"];class oee extends dd{__init(){this.hoistedFunctionNames=[]}constructor(e,t,i,s){super(),this.rootTransformer=e,this.tokens=t,this.nameManager=i,this.importProcessor=s,oee.prototype.__init.call(this)}process(){return this.tokens.currentToken().scopeDepth===0&&this.tokens.matches4(y.name,y.dot,y.name,y.parenL)&&this.tokens.identifierName()===iP?sat([this,"access",e=>e.importProcessor,"optionalAccess",e=>e.getGlobalNames,"call",e=>e(),"optionalAccess",e=>e.has,"call",e=>e(iP)])?!1:this.extractHoistedCalls():!1}getHoistedCode(){return this.hoistedFunctionNames.length>0?this.hoistedFunctionNames.map(e=>`${e}();`).join(""):""}extractHoistedCalls(){this.tokens.removeToken();let e=!1;for(;this.tokens.matches3(y.dot,y.name,y.parenL);){const t=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);if(rat.includes(t)){const s=this.nameManager.claimFreeName("__jestHoist");this.hoistedFunctionNames.push(s),this.tokens.replaceToken(`function ${s}(){${iP}.`),this.tokens.copyToken(),this.tokens.copyToken(),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR),this.tokens.appendCode(";}"),e=!1}else e?this.tokens.copyToken():this.tokens.replaceToken(`${iP}.`),this.tokens.copyToken(),this.tokens.copyToken(),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.parenR),e=!0}return!0}}class oat extends dd{constructor(e){super(),this.tokens=e}process(){if(this.tokens.matches1(y.num)){const e=this.tokens.currentTokenCode();if(e.includes("_"))return this.tokens.replaceToken(e.replace(/_/g,"")),!0}return!1}}class aat extends dd{constructor(e,t){super(),this.tokens=e,this.nameManager=t}process(){return this.tokens.matches2(y._catch,y.braceL)?(this.tokens.copyToken(),this.tokens.appendCode(` (${this.nameManager.claimFreeName("e")})`),!0):!1}}class lat extends dd{constructor(e,t){super(),this.tokens=e,this.nameManager=t}process(){if(this.tokens.matches1(y.nullishCoalescing)){const i=this.tokens.currentToken();return this.tokens.tokens[i.nullishStartIndex].isAsyncOperation?this.tokens.replaceTokenTrimmingLeftWhitespace(", async () => ("):this.tokens.replaceTokenTrimmingLeftWhitespace(", () => ("),!0}if(this.tokens.matches1(y._delete)&&this.tokens.tokenAtRelativeIndex(1).isOptionalChainStart)return this.tokens.removeInitialToken(),!0;const t=this.tokens.currentToken().subscriptStartIndex;if(t!=null&&this.tokens.tokens[t].isOptionalChainStart&&this.tokens.tokenAtRelativeIndex(-1).type!==y._super){const i=this.nameManager.claimFreeName("_");let s;if(t>0&&this.tokens.matches1AtIndex(t-1,y._delete)&&this.isLastSubscriptInChain()?s=`${i} => delete ${i}`:s=`${i} => ${i}`,this.tokens.tokens[t].isAsyncOperation&&(s=`async ${s}`),this.tokens.matches2(y.questionDot,y.parenL)||this.tokens.matches2(y.questionDot,y.lessThan))this.justSkippedSuper()&&this.tokens.appendCode(".bind(this)"),this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalCall', ${s}`);else if(this.tokens.matches2(y.questionDot,y.bracketL))this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${s}`);else if(this.tokens.matches1(y.questionDot))this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${s}.`);else if(this.tokens.matches1(y.dot))this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${s}.`);else if(this.tokens.matches1(y.bracketL))this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${s}[`);else if(this.tokens.matches1(y.parenL))this.justSkippedSuper()&&this.tokens.appendCode(".bind(this)"),this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'call', ${s}(`);else throw new Error("Unexpected subscript operator in optional chain.");return!0}return!1}isLastSubscriptInChain(){let e=0;for(let t=this.tokens.currentIndex()+1;;t++){if(t>=this.tokens.tokens.length)throw new Error("Reached the end of the code while finding the end of the access chain.");if(this.tokens.tokens[t].isOptionalChainStart?e++:this.tokens.tokens[t].isOptionalChainEnd&&e--,e<0)return!0;if(e===0&&this.tokens.tokens[t].subscriptStartIndex!=null)return!1}}justSkippedSuper(){let e=0,t=this.tokens.currentIndex()-1;for(;;){if(t<0)throw new Error("Reached the start of the code while finding the start of the access chain.");if(this.tokens.tokens[t].isOptionalChainStart?e--:this.tokens.tokens[t].isOptionalChainEnd&&e++,e<0)return!1;if(e===0&&this.tokens.tokens[t].subscriptStartIndex!=null)return this.tokens.tokens[t-1].type===y._super;t--}}}class cat extends dd{constructor(e,t,i,s){super(),this.rootTransformer=e,this.tokens=t,this.importProcessor=i,this.options=s}process(){const e=this.tokens.currentIndex();if(this.tokens.identifierName()==="createReactClass"){const t=this.importProcessor&&this.importProcessor.getIdentifierReplacement("createReactClass");return t?this.tokens.replaceToken(`(0, ${t})`):this.tokens.copyToken(),this.tryProcessCreateClassCall(e),!0}if(this.tokens.matches3(y.name,y.dot,y.name)&&this.tokens.identifierName()==="React"&&this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+2)==="createClass"){const t=this.importProcessor&&this.importProcessor.getIdentifierReplacement("React")||"React";return t?(this.tokens.replaceToken(t),this.tokens.copyToken(),this.tokens.copyToken()):(this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.copyToken()),this.tryProcessCreateClassCall(e),!0}return!1}tryProcessCreateClassCall(e){const t=this.findDisplayName(e);t&&this.classNeedsDisplayName()&&(this.tokens.copyExpectedToken(y.parenL),this.tokens.copyExpectedToken(y.braceL),this.tokens.appendCode(`displayName: '${t}',`),this.rootTransformer.processBalancedCode(),this.tokens.copyExpectedToken(y.braceR),this.tokens.copyExpectedToken(y.parenR))}findDisplayName(e){return e<2?null:this.tokens.matches2AtIndex(e-2,y.name,y.eq)?this.tokens.identifierNameAtIndex(e-2):e>=2&&this.tokens.tokens[e-2].identifierRole===ti.ObjectKey?this.tokens.identifierNameAtIndex(e-2):this.tokens.matches2AtIndex(e-2,y._export,y._default)?this.getDisplayNameFromFilename():null}getDisplayNameFromFilename(){const t=(this.options.filePath||"unknown").split("/"),i=t[t.length-1],s=i.lastIndexOf("."),r=s===-1?i:i.slice(0,s);return r==="index"&&t[t.length-2]?t[t.length-2]:r}classNeedsDisplayName(){let e=this.tokens.currentIndex();if(!this.tokens.matches2(y.parenL,y.braceL))return!1;const t=e+1,i=this.tokens.tokens[t].contextId;if(i==null)throw new Error("Expected non-null context ID on object open-brace.");for(;e<this.tokens.tokens.length;e++){const s=this.tokens.tokens[e];if(s.type===y.braceR&&s.contextId===i){e++;break}if(this.tokens.identifierNameAtIndex(e)==="displayName"&&this.tokens.tokens[e].identifierRole===ti.ObjectKey&&s.contextId===i)return!1}if(e===this.tokens.tokens.length)throw new Error("Unexpected end of input when processing React class.");return this.tokens.matches1AtIndex(e,y.parenR)||this.tokens.matches2AtIndex(e,y.comma,y.parenR)}}class aee extends dd{__init(){this.extractedDefaultExportName=null}constructor(e,t){super(),this.tokens=e,this.filePath=t,aee.prototype.__init.call(this)}setExtractedDefaultExportName(e){this.extractedDefaultExportName=e}getPrefixCode(){return` + (function () { + var enterModule = require('react-hot-loader').enterModule; + enterModule && enterModule(module); + })();`.replace(/\s+/g," ").trim()}getSuffixCode(){const e=new Set;for(const i of this.tokens.tokens)!i.isType&&aSe(i)&&i.identifierRole!==ti.ImportDeclaration&&e.add(this.tokens.identifierNameForToken(i));const t=Array.from(e).map(i=>({variableName:i,uniqueLocalName:i}));return this.extractedDefaultExportName&&t.push({variableName:this.extractedDefaultExportName,uniqueLocalName:"default"}),` +;(function () { + var reactHotLoader = require('react-hot-loader').default; + var leaveModule = require('react-hot-loader').leaveModule; + if (!reactHotLoader) { + return; + } +${t.map(({variableName:i,uniqueLocalName:s})=>` reactHotLoader.register(${i}, "${s}", ${JSON.stringify(this.filePath||"")});`).join(` +`)} + leaveModule(module); +})();`}process(){return!1}}const uat=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","implements","interface","let","package","private","protected","public","static","await","false","null","true"]);function Bce(n){if(n.length===0||!_N[n.charCodeAt(0)])return!1;for(let e=1;e<n.length;e++)if(!Kh[n.charCodeAt(e)])return!1;return!uat.has(n)}class hat extends dd{constructor(e,t,i){super(),this.rootTransformer=e,this.tokens=t,this.isImportsTransformEnabled=i}process(){return this.rootTransformer.processPossibleArrowParamEnd()||this.rootTransformer.processPossibleAsyncArrowWithTypeParams()||this.rootTransformer.processPossibleTypeRange()?!0:this.tokens.matches1(y._public)||this.tokens.matches1(y._protected)||this.tokens.matches1(y._private)||this.tokens.matches1(y._abstract)||this.tokens.matches1(y._readonly)||this.tokens.matches1(y._override)||this.tokens.matches1(y.nonNullAssertion)?(this.tokens.removeInitialToken(),!0):this.tokens.matches1(y._enum)||this.tokens.matches2(y._const,y._enum)?(this.processEnum(),!0):this.tokens.matches2(y._export,y._enum)||this.tokens.matches3(y._export,y._const,y._enum)?(this.processEnum(!0),!0):!1}processEnum(e=!1){for(this.tokens.removeInitialToken();this.tokens.matches1(y._const)||this.tokens.matches1(y._enum);)this.tokens.removeToken();const t=this.tokens.identifierName();this.tokens.removeToken(),e&&!this.isImportsTransformEnabled&&this.tokens.appendCode("export "),this.tokens.appendCode(`var ${t}; (function (${t})`),this.tokens.copyExpectedToken(y.braceL),this.processEnumBody(t),this.tokens.copyExpectedToken(y.braceR),e&&this.isImportsTransformEnabled?this.tokens.appendCode(`)(${t} || (exports.${t} = ${t} = {}));`):this.tokens.appendCode(`)(${t} || (${t} = {}));`)}processEnumBody(e){let t=null;for(;!this.tokens.matches1(y.braceR);){const{nameStringCode:i,variableName:s}=this.extractEnumKeyInfo(this.tokens.currentToken());this.tokens.removeInitialToken(),this.tokens.matches3(y.eq,y.string,y.comma)||this.tokens.matches3(y.eq,y.string,y.braceR)?this.processStringLiteralEnumMember(e,i,s):this.tokens.matches1(y.eq)?this.processExplicitValueEnumMember(e,i,s):this.processImplicitValueEnumMember(e,i,s,t),this.tokens.matches1(y.comma)&&this.tokens.removeToken(),s!=null?t=s:t=`${e}[${i}]`}}extractEnumKeyInfo(e){if(e.type===y.name){const t=this.tokens.identifierNameForToken(e);return{nameStringCode:`"${t}"`,variableName:Bce(t)?t:null}}else if(e.type===y.string){const t=this.tokens.stringValueForToken(e);return{nameStringCode:this.tokens.code.slice(e.start,e.end),variableName:Bce(t)?t:null}}else throw new Error("Expected name or string at beginning of enum element.")}processStringLiteralEnumMember(e,t,i){i!=null?(this.tokens.appendCode(`const ${i}`),this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.appendCode(`; ${e}[${t}] = ${i};`)):(this.tokens.appendCode(`${e}[${t}]`),this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.appendCode(";"))}processExplicitValueEnumMember(e,t,i){const s=this.tokens.currentToken().rhsEndIndex;if(s==null)throw new Error("Expected rhsEndIndex on enum assign.");if(i!=null){for(this.tokens.appendCode(`const ${i}`),this.tokens.copyToken();this.tokens.currentIndex()<s;)this.rootTransformer.processToken();this.tokens.appendCode(`; ${e}[${e}[${t}] = ${i}] = ${t};`)}else{for(this.tokens.appendCode(`${e}[${e}[${t}]`),this.tokens.copyToken();this.tokens.currentIndex()<s;)this.rootTransformer.processToken();this.tokens.appendCode(`] = ${t};`)}}processImplicitValueEnumMember(e,t,i,s){let r=s!=null?`${s} + 1`:"0";i!=null&&(this.tokens.appendCode(`const ${i} = ${r}; `),r=i),this.tokens.appendCode(`${e}[${e}[${t}] = ${r}] = ${t};`)}}class QO{__init(){this.transformers=[]}__init2(){this.generatedVariables=[]}constructor(e,t,i,s){QO.prototype.__init.call(this),QO.prototype.__init2.call(this),this.nameManager=e.nameManager,this.helperManager=e.helperManager;const{tokenProcessor:r,importProcessor:o}=e;this.tokens=r,this.isImportsTransformEnabled=t.includes("imports"),this.isReactHotLoaderTransformEnabled=t.includes("react-hot-loader"),this.disableESTransforms=!!s.disableESTransforms,s.disableESTransforms||(this.transformers.push(new lat(r,this.nameManager)),this.transformers.push(new oat(r)),this.transformers.push(new aat(r,this.nameManager))),t.includes("jsx")&&(s.jsxRuntime!=="preserve"&&this.transformers.push(new kv(this,r,o,this.nameManager,s)),this.transformers.push(new cat(this,r,o,s)));let a=null;if(t.includes("react-hot-loader")){if(!s.filePath)throw new Error("filePath is required when using the react-hot-loader transform.");a=new aee(r,s.filePath),this.transformers.push(a)}if(t.includes("imports")){if(o===null)throw new Error("Expected non-null importProcessor with imports transform enabled.");this.transformers.push(new Lk(this,r,o,this.nameManager,this.helperManager,a,i,!!s.enableLegacyTypeScriptModuleInterop,t.includes("typescript"),t.includes("flow"),!!s.preserveDynamicImport,!!s.keepUnusedImports))}else this.transformers.push(new iat(r,this.nameManager,this.helperManager,a,t.includes("typescript"),t.includes("flow"),!!s.keepUnusedImports,s));t.includes("flow")&&this.transformers.push(new nat(this,r,t.includes("imports"))),t.includes("typescript")&&this.transformers.push(new hat(this,r,t.includes("imports"))),t.includes("jest")&&this.transformers.push(new oee(this,r,this.nameManager,o))}transform(){this.tokens.reset(),this.processBalancedCode();let t=this.isImportsTransformEnabled?'"use strict";':"";for(const o of this.transformers)t+=o.getPrefixCode();t+=this.helperManager.emitHelpers(),t+=this.generatedVariables.map(o=>` var ${o};`).join("");for(const o of this.transformers)t+=o.getHoistedCode();let i="";for(const o of this.transformers)i+=o.getSuffixCode();const s=this.tokens.finish();let{code:r}=s;if(r.startsWith("#!")){let o=r.indexOf(` +`);return o===-1&&(o=r.length,r+=` +`),{code:r.slice(0,o+1)+t+r.slice(o+1)+i,mappings:this.shiftMappings(s.mappings,t.length)}}else return{code:t+r+i,mappings:this.shiftMappings(s.mappings,t.length)}}processBalancedCode(){let e=0,t=0;for(;!this.tokens.isAtEnd();){if(this.tokens.matches1(y.braceL)||this.tokens.matches1(y.dollarBraceL))e++;else if(this.tokens.matches1(y.braceR)){if(e===0)return;e--}if(this.tokens.matches1(y.parenL))t++;else if(this.tokens.matches1(y.parenR)){if(t===0)return;t--}this.processToken()}}processToken(){if(this.tokens.matches1(y._class)){this.processClass();return}for(const e of this.transformers)if(e.process())return;this.tokens.copyToken()}processNamedClass(){if(!this.tokens.matches2(y._class,y.name))throw new Error("Expected identifier for exported class name.");const e=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);return this.processClass(),e}processClass(){const e=Jot(this,this.tokens,this.nameManager,this.disableESTransforms),t=(e.headerInfo.isExpression||!e.headerInfo.className)&&e.staticInitializerNames.length+e.instanceInitializerNames.length>0;let i=e.headerInfo.className;t&&(i=this.nameManager.claimFreeName("_class"),this.generatedVariables.push(i),this.tokens.appendCode(` (${i} =`));const r=this.tokens.currentToken().contextId;if(r==null)throw new Error("Expected class to have a context ID.");for(this.tokens.copyExpectedToken(y._class);!this.tokens.matchesContextIdAndLabel(y.braceL,r);)this.processToken();this.processClassBody(e,i);const o=e.staticInitializerNames.map(a=>`${i}.${a}()`);t?this.tokens.appendCode(`, ${o.map(a=>`${a}, `).join("")}${i})`):e.staticInitializerNames.length>0&&this.tokens.appendCode(` ${o.map(a=>`${a};`).join(" ")}`)}processClassBody(e,t){const{headerInfo:i,constructorInsertPos:s,constructorInitializerStatements:r,fields:o,instanceInitializerNames:a,rangesToRemove:l}=e;let c=0,u=0;const h=this.tokens.currentToken().contextId;if(h==null)throw new Error("Expected non-null context ID on class.");this.tokens.copyExpectedToken(y.braceL),this.isReactHotLoaderTransformEnabled&&this.tokens.appendCode("__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}");const d=r.length+a.length>0;if(s===null&&d){const f=this.makeConstructorInitCode(r,a,t);if(i.hasSuperclass){const p=this.nameManager.claimFreeName("args");this.tokens.appendCode(`constructor(...${p}) { super(...${p}); ${f}; }`)}else this.tokens.appendCode(`constructor() { ${f}; }`)}for(;!this.tokens.matchesContextIdAndLabel(y.braceR,h);)if(c<o.length&&this.tokens.currentIndex()===o[c].start){let f=!1;for(this.tokens.matches1(y.bracketL)?this.tokens.copyTokenWithPrefix(`${o[c].initializerName}() {this`):this.tokens.matches1(y.string)||this.tokens.matches1(y.num)?(this.tokens.copyTokenWithPrefix(`${o[c].initializerName}() {this[`),f=!0):this.tokens.copyTokenWithPrefix(`${o[c].initializerName}() {this.`);this.tokens.currentIndex()<o[c].end;)f&&this.tokens.currentIndex()===o[c].equalsIndex&&this.tokens.appendCode("]"),this.processToken();this.tokens.appendCode("}"),c++}else if(u<l.length&&this.tokens.currentIndex()>=l[u].start){for(this.tokens.currentIndex()<l[u].end&&this.tokens.removeInitialToken();this.tokens.currentIndex()<l[u].end;)this.tokens.removeToken();u++}else this.tokens.currentIndex()===s?(this.tokens.copyToken(),d&&this.tokens.appendCode(`;${this.makeConstructorInitCode(r,a,t)};`),this.processToken()):this.processToken();this.tokens.copyExpectedToken(y.braceR)}makeConstructorInitCode(e,t,i){return[...e,...t.map(s=>`${i}.prototype.${s}.call(this)`)].join(";")}processPossibleArrowParamEnd(){if(this.tokens.matches2(y.parenR,y.colon)&&this.tokens.tokenAtRelativeIndex(1).isType){let e=this.tokens.currentIndex()+1;for(;this.tokens.tokens[e].isType;)e++;if(this.tokens.matches1AtIndex(e,y.arrow)){for(this.tokens.removeInitialToken();this.tokens.currentIndex()<e;)this.tokens.removeToken();return this.tokens.replaceTokenTrimmingLeftWhitespace(") =>"),!0}}return!1}processPossibleAsyncArrowWithTypeParams(){if(!this.tokens.matchesContextual(fe._async)&&!this.tokens.matches1(y._async))return!1;const e=this.tokens.tokenAtRelativeIndex(1);if(e.type!==y.lessThan||!e.isType)return!1;let t=this.tokens.currentIndex()+1;for(;this.tokens.tokens[t].isType;)t++;if(this.tokens.matches1AtIndex(t,y.parenL)){for(this.tokens.replaceToken("async ("),this.tokens.removeInitialToken();this.tokens.currentIndex()<t;)this.tokens.removeToken();return this.tokens.removeToken(),this.processBalancedCode(),this.processToken(),!0}return!1}processPossibleTypeRange(){if(this.tokens.currentToken().isType){for(this.tokens.removeInitialToken();this.tokens.currentToken().isType;)this.tokens.removeToken();return!0}return!1}shiftMappings(e,t){for(let i=0;i<e.length;i++){const s=e[i];s!==void 0&&(e[i]=s+t)}return e}}var dat={};(function(n){n.__esModule=!0,n.LinesAndColumns=void 0;var e=` +`,t="\r",i=function(){function s(r){this.string=r;for(var o=[0],a=0;a<r.length;)switch(r[a]){case e:a+=e.length,o.push(a);break;case t:a+=t.length,r[a]===e&&(a+=e.length),o.push(a);break;default:a++;break}this.offsets=o}return s.prototype.locationForIndex=function(r){if(r<0||r>this.string.length)return null;for(var o=0,a=this.offsets;a[o+1]<=r;)o++;var l=r-a[o];return{line:o,column:l}},s.prototype.indexForLocation=function(r){var o=r.line,a=r.column;return o<0||o>=this.offsets.length||a<0||a>this.lengthOfLine(o)?null:this.offsets[o]+a},s.prototype.lengthOfLine=function(r){var o=this.offsets[r],a=r===this.offsets.length-1?this.string.length:this.offsets[r+1];return a-o},s}();n.LinesAndColumns=i,n.default=i})(dat);function fat(n){const e=new Set;for(let t=0;t<n.tokens.length;t++)n.matches1AtIndex(t,y._import)&&!n.matches3AtIndex(t,y._import,y.name,y.eq)&&pat(n,t,e);return e}function pat(n,e,t){e++,!n.matches1AtIndex(e,y.parenL)&&(n.matches1AtIndex(e,y.name)&&(t.add(n.identifierNameAtIndex(e)),e++,n.matches1AtIndex(e,y.comma)&&e++),n.matches1AtIndex(e,y.star)&&(e+=2,t.add(n.identifierNameAtIndex(e)),e++),n.matches1AtIndex(e,y.braceL)&&(e++,gat(n,e,t)))}function gat(n,e,t){for(;;){if(n.matches1AtIndex(e,y.braceR))return;const i=uT(n,e);if(e=i.endIndex,i.isType||t.add(i.rightName),n.matches2AtIndex(e,y.comma,y.braceR))return;if(n.matches1AtIndex(e,y.braceR))return;if(n.matches1AtIndex(e,y.comma))e++;else throw new Error(`Unexpected token: ${JSON.stringify(n.tokens[e])}`)}}function mat(n,e){Ant(e);try{const t=_at(n,e),s=new QO(t,e.transforms,!!e.enableLegacyBabel5ModuleInterop,e).transform();let r={code:s.code};if(e.sourceMapOptions){if(!e.filePath)throw new Error("filePath must be specified when generating a source map.");r={...r,sourceMap:vnt(s,e.filePath,e.sourceMapOptions,n,t.tokenProcessor.tokens)}}return r}catch(t){throw e.filePath&&(t.message=`Error transforming ${e.filePath}: ${t.message}`),t}}function _at(n,e){const t=e.transforms.includes("jsx"),i=e.transforms.includes("typescript"),s=e.transforms.includes("flow"),r=e.disableESTransforms===!0,o=Zot(n,t,i,s),a=o.tokens,l=o.scopes,c=new OJ(n,a),u=new UO(c),h=new xk(n,a,s,r,u),d=!!e.enableLegacyTypeScriptModuleInterop;let f=null;return e.transforms.includes("imports")?(f=new Iv(c,h,d,e,e.transforms.includes("typescript"),!!e.keepUnusedImports,u),f.preprocessTokens(),xce(h,l,f.getGlobalNames()),e.transforms.includes("typescript")&&!e.keepUnusedImports&&f.pruneTypeOnlyImports()):e.transforms.includes("typescript")&&!e.keepUnusedImports&&xce(h,l,fat(h)),{tokenProcessor:h,scopes:l,nameManager:c,importProcessor:f,helperManager:u}}function vat(n,e){for(;n.length<e;)n="0"+n;return n}function hp(n,e){var t,i,s;if(e.length===0)return n;for(t=0,s=e.length;t<s;t++)i=e.charCodeAt(t),n=(n<<5)-n+i,n|=0;return n<0?n*-2:n}function bat(n,e,t){return Object.keys(e).sort().reduce(i,n);function i(s,r){return pxe(s,e[r],r,t)}}function pxe(n,e,t,i){var s=hp(hp(hp(n,t),yat(e)),typeof e);if(e===null)return hp(s,"null");if(e===void 0)return hp(s,"undefined");if(typeof e=="object"||typeof e=="function"){if(i.indexOf(e)!==-1)return hp(s,"[Circular]"+t);i.push(e);var r=bat(s,e,i);if(!("valueOf"in e)||typeof e.valueOf!="function")return r;try{return hp(r,String(e.valueOf()))}catch(o){return hp(r,"[valueOf exception]"+(o.stack||o.message))}}return hp(s,e.toString())}function yat(n){return Object.prototype.toString.call(n)}function wat(n){return vat(pxe(0,n,"",[]).toString(16),8)}var Cat=wat;const Sat=git(Cat),eb="__sfc__",xat=/\.[jt]sx?$/;function Wce(n){return!!(n&&/(\.|\b)tsx?$/.test(n))}function Vce(n){return!!(n&&/(\.|\b)[jt]sx$/.test(n))}async function lee(n,e){return mat(n,{transforms:["typescript",...e?["jsx"]:[]],jsxRuntime:"preserve"}).code}async function tb(n,{filename:e,code:t,compiled:i}){var k,L,E,A,I,T,N,M,V;if(!t.trim())return[];if(e.endsWith(".css"))return i.css=t,[];if(xat.test(e)){const W=Vce(e);return Wce(e)&&(t=await lee(t,W)),W&&(t=await S6(()=>import("./jsx-_qJgh1vg-DcxuIahC.js"),[]).then(B=>B.transformJSX(t))),i.js=i.ssr=t,[]}if(e.endsWith(".json")){let W;try{W=JSON.parse(t)}catch(B){return console.error(`Error parsing ${e}`,B.message),[B.message]}return i.js=i.ssr=`export default ${JSON.stringify(W)}`,[]}if(!e.endsWith(".vue"))return[];const s=Sat(e),{errors:r,descriptor:o}=n.compiler.parse(t,{filename:e,sourceMap:!0,templateParseOptions:(L=(k=n.sfcOptions)==null?void 0:k.template)==null?void 0:L.compilerOptions});if(r.length)return r;const a=o.styles.map(W=>W.lang).filter(Boolean),l=(E=o.template)==null?void 0:E.lang;if(a.length&&l)return[`lang="${a.join(",")}" pre-processors for <style> and lang="${l}" for <template> are currently not supported.`];if(a.length)return[`lang="${a.join(",")}" pre-processors for <style> are currently not supported.`];if(l)return[`lang="${l}" pre-processors for <template> are currently not supported.`];const c=((A=o.script)==null?void 0:A.lang)||((I=o.scriptSetup)==null?void 0:I.lang),u=Wce(c),h=Vce(c);if(c&&c!=="js"&&!u&&!h)return[`Unsupported lang "${c}" in <script> blocks.`];const d=o.styles.some(W=>W.scoped);let f="",p="";const g=W=>{f+=W,p+=W};let m,_;try{[m,_]=await Hce(n,o,s,!1,u,h)}catch(W){return[W.stack.split(` +`).slice(0,12).join(` +`)]}if(f+=m,o.scriptSetup||o.cssVars.length>0)try{const W=await Hce(n,o,s,!0,u,h);p+=W[0]}catch(W){p=`/* SSR compile error: ${W} */`}else p+=m;if(o.template&&(!o.scriptSetup||((N=(T=n.sfcOptions)==null?void 0:T.script)==null?void 0:N.inlineTemplate)===!1)){const W=await $ce(n,o,s,_,!1,u,h);if(Array.isArray(W))return W;f+=`;${W}`;const B=await $ce(n,o,s,_,!0,u,h);typeof B=="string"?p+=`;${B}`:p=`/* SSR compile error: ${B[0]} */`}d&&g(` +${eb}.__scopeId = ${JSON.stringify(`data-v-${s}`)}`);const b=((M=n.sfcOptions.script)==null?void 0:M.customElement)||/\.ce\.vue$/;function w(W){return typeof W=="boolean"?W:typeof W=="function"?W(e):W.test(e)}let C=w(b),S="",x=[];for(const W of o.styles){if(W.module)return["<style module> is not supported in the playground."];const B=await n.compiler.compileStyleAsync({...(V=n.sfcOptions)==null?void 0:V.style,source:W.content,filename:e,id:s,scoped:W.scoped,modules:!!W.module});B.errors.length?B.errors[0].message.includes("pathToFileURL")||(n.errors=B.errors):C?x.push(B.code):S+=B.code+` +`}if(S?i.css=S.trim():i.css=C?i.css="/* The component style of the custom element will be compiled into the component object */":"/* No <style> tags present */",f||p){const W=C?` +${eb}.styles = ${JSON.stringify(x)}`:"";g(` +${eb}.__file = ${JSON.stringify(e)}`+W+` +export default ${eb}`),i.js=f.trimStart(),i.ssr=p.trimStart()}return[]}async function Hce(n,e,t,i,s,r){var o,a,l,c;if(e.script||e.scriptSetup){const u=[];s&&u.push("typescript"),r&&u.push("jsx");const h=n.compiler.compileScript(e,{inlineTemplate:!0,...(o=n.sfcOptions)==null?void 0:o.script,id:t,genDefaultAs:eb,templateOptions:{...(a=n.sfcOptions)==null?void 0:a.template,ssr:i,ssrCssVars:e.cssVars,compilerOptions:{...(c=(l=n.sfcOptions)==null?void 0:l.template)==null?void 0:c.compilerOptions,expressionPlugins:u}}});let d=h.content;return s&&(d=await lee(d,r)),r&&(d=await S6(()=>import("./jsx-_qJgh1vg-DcxuIahC.js"),[]).then(f=>f.transformJSX(d))),h.bindings&&(d=`/* Analyzed bindings: ${JSON.stringify(h.bindings,null,2)} */ +`+d),[d,h.bindings]}else return[` +const ${eb} = {}`,void 0]}async function $ce(n,e,t,i,s,r,o){var h,d,f;const a=[];r&&a.push("typescript"),o&&a.push("jsx");let{code:l,errors:c}=n.compiler.compileTemplate({isProd:!1,...(h=n.sfcOptions)==null?void 0:h.template,ast:e.template.ast,source:e.template.content,filename:e.filename,id:t,scoped:e.styles.some(p=>p.scoped),slotted:e.slotted,ssr:s,ssrCssVars:e.cssVars,compilerOptions:{...(f=(d=n.sfcOptions)==null?void 0:d.template)==null?void 0:f.compilerOptions,bindingMetadata:i,expressionPlugins:a}});if(c.length)return c;const u=s?"ssrRender":"render";return l=` +${l.replace(/\nexport (function|const) (render|ssrRender)/,`$1 ${u}`)} +${eb}.${u} = ${u}`,r&&(l=await lee(l,o)),o&&(l=await S6(()=>import("./jsx-_qJgh1vg-DcxuIahC.js"),[]).then(p=>p.transformJSX(l))),l}function Lat(n={}){function e(r){if(r)return typeof r=="string"?r:r()}const t=je(!1),i=je(n.vueVersion||null),s=Ee(()=>{const r=!i.value&&e(t.value?n.runtimeProd:n.runtimeDev)||`https://cdn.jsdelivr.net/npm/@vue/runtime-dom@${i.value||SR}/dist/runtime-dom.esm-browser${t.value?".prod":""}.js`,o=!i.value&&e(n.serverRenderer)||`https://cdn.jsdelivr.net/npm/@vue/server-renderer@${i.value||SR}/dist/server-renderer.esm-browser.js`;return{imports:{vue:r,"vue/server-renderer":o}}});return{productionMode:t,importMap:s,vueVersion:i,defaultVersion:SR}}function JO(n,e){return{imports:{...n.imports,...e.imports},scopes:{...n.scopes,...e.scopes}}}const S7=`<script setup> +import { ref } from 'vue' + +const msg = ref('Hello World!') +<\/script> + +<template> + <h1>{{ msg }}</h1> + <input v-model="msg" /> +</template> +`,Eat=`<script setup><\/script> + +<template> + <div> + <slot /> + </div> +</template> +`,kc="import-map.json",of="tsconfig.json";function gxe({files:n=je(Object.create(null)),activeFilename:e=void 0,mainFile:t=je("src/App.vue"),template:i=je({welcomeSFC:S7,newSFC:Eat}),builtinImportMap:s=void 0,errors:r=je([]),showOutput:o=je(!1),outputMode:a=je("preview"),sfcOptions:l=je({}),compiler:c=mg(fce),vueVersion:u=je(null),locale:h=je(),typescriptVersion:d=je("latest"),dependencyVersion:f=je(Object.create(null)),reloadLanguageTools:p=je()}={},g){s||({importMap:s,vueVersion:u}=Lat({vueVersion:u.value}));const m=je(!1);function _(){const B=JO(s.value,L());w(B)}function b(){g0(()=>{tb(W,V.value).then(B=>r.value=B)}),Pt(()=>{var B;return[(B=n.value[of])==null?void 0:B.code,d.value,h.value,f.value,u.value]},()=>{var B;return(B=p.value)==null?void 0:B.call(p)},{deep:!0}),Pt(s,()=>{w(JO(L(),s.value))},{deep:!0}),Pt(u,async B=>{if(B){const $=`https://cdn.jsdelivr.net/npm/@vue/compiler-sfc@${B}/dist/compiler-sfc.esm-browser.js`;m.value=!0,c.value=await import($).finally(()=>m.value=!1),console.info(`[@vue/repl] Now using Vue version: ${B}`)}else c.value=fce,console.info("[@vue/repl] Now using default Vue version")},{immediate:!0}),Pt(l,()=>{var B;(B=l.value).script||(B.script={}),l.value.script.fs={fileExists($){return $.startsWith("/")&&($=$.slice(1)),!!W.files[$]},readFile($){return $.startsWith("/")&&($=$.slice(1)),W.files[$].code}}},{immediate:!0}),n.value[of]||(n.value[of]=new t1(of,JSON.stringify(kat,void 0,2))),r.value=[];for(const[B,$]of Object.entries(n.value))B!==t.value&&tb(W,$).then(Y=>r.value.push(...Y))}function w(B){if(B.imports)for(const[Y,le]of Object.entries(B.imports))le&&(B.imports[Y]=Iat(le));const $=JSON.stringify(B,void 0,2);n.value[kc]?n.value[kc].code=$:n.value[kc]=new t1(kc,$)}const C=B=>{e.value=B},S=B=>{let $;typeof B=="string"?$=new t1(B,B.endsWith(".vue")?i.value.newSFC:""):$=B,n.value[$.filename]=$,$.hidden||C($.filename)},x=B=>{confirm(`Are you sure you want to delete ${Ek(B)}?`)&&(e.value===B&&(e.value=t.value),delete n.value[B])},k=(B,$)=>{const Y=n.value[B];if(!Y){r.value=[`Could not rename "${B}", file not found`];return}if(!$||B===$){r.value=[`Cannot rename "${B}" to "${$}"`];return}Y.filename=$;const le={};for(const[re,z]of Object.entries(n.value))re===B?le[$]=z:le[re]=z;n.value=le,t.value===B&&(t.value=$),e.value===B?e.value=$:tb(W,Y).then(re=>r.value=re)},L=()=>{try{return JSON.parse(n.value[kc].code)}catch(B){return r.value=[`Syntax error in ${kc}: ${B.message}`],{}}},E=()=>{try{return JSON.parse(n.value[of].code)}catch{return{}}},A=()=>{const B=T(),$=B[kc];if($){const Y=JSON.parse($),le=s.value.imports||{};if(Y.imports){for(const[re,z]of Object.entries(Y.imports))le[re]===z&&delete Y.imports[re];Y.imports&&!Object.keys(Y.imports).length&&delete Y.imports}Y.scopes&&!Object.keys(Y.scopes).length&&delete Y.scopes,Object.keys(Y).length?B[kc]=JSON.stringify(Y,null,2):delete B[kc]}return u.value&&(B._version=u.value),"#"+S$e(JSON.stringify(B))},I=B=>{B.startsWith("#")&&(B=B.slice(1));let $;try{$=JSON.parse(x$e(B))}catch(Y){return console.error(Y),alert("Failed to load code from URL."),M()}for(const Y in $)Y==="_version"?u.value=$[Y]:nP(n.value,Y,$[Y])},T=()=>{const B={};for(const[$,Y]of Object.entries(n.value)){const le=Ek($);B[le]=Y.code}return B},N=async(B,$=W.mainFile)=>{const Y=Object.create(null);$=mxe($),B[$]||nP(Y,$,i.value.welcomeSFC||S7);for(const[re,z]of Object.entries(B))nP(Y,re,z);const le=[];for(const re of Object.values(Y))le.push(...await tb(W,re));W.mainFile=$,W.files=Y,W.errors=le,_(),C(W.mainFile)},M=()=>{nP(n.value,t.value,i.value.welcomeSFC||S7)};M(),n.value[t.value]||(t.value=Object.keys(n.value)[0]),e||(e=je(t.value));const V=Ee(()=>n.value[e.value]);_();const W=ia({files:n,activeFile:V,activeFilename:e,mainFile:t,template:i,builtinImportMap:s,errors:r,showOutput:o,outputMode:a,sfcOptions:l,compiler:c,loading:m,vueVersion:u,locale:h,typescriptVersion:d,dependencyVersion:f,reloadLanguageTools:p,init:b,setActive:C,addFile:S,deleteFile:x,renameFile:k,getImportMap:L,getTsConfig:E,serialize:A,deserialize:I,getFiles:T,setFiles:N});return W}const kat={compilerOptions:{allowJs:!0,checkJs:!0,jsx:"Preserve",target:"ESNext",module:"ESNext",moduleResolution:"Bundler",allowImportingTsExtensions:!0},vueCompilerOptions:{target:3.4}};class t1{constructor(e,t="",i=!1){this.filename=e,this.code=t,this.hidden=i,this.compiled={js:"",css:"",ssr:""},this.editorViewState=null}get language(){return this.filename.endsWith(".vue")?"vue":this.filename.endsWith(".html")?"html":this.filename.endsWith(".css")?"css":this.filename.endsWith(".ts")?"typescript":"javascript"}}function mxe(n){return n===kc||n===of||n.startsWith("src/")?n:`src/${n}`}function Ek(n){return n.replace(/^src\//,"")}function Iat(n){return n.replace("https://sfc.vuejs","https://play.vuejs")}function nP(n,e,t){const i=mxe(e);n[i]=new t1(i,t)}const Tat=["onClick","onDblclick"],Dat={class:"label"},Nat=["onClick"],Aat={class:"file pending"},Pat={class:"import-map-wrapper"},Rat=Et({__name:"FileSelector",setup(n){const{store:e,showTsConfig:t,showImportMap:i}=Si(b0),s=je(!1),r=je("Comp.vue"),o=Ee(()=>Object.entries(e.value.files).filter(([p,g])=>p!==kc&&p!==of&&!g.hidden).map(([p])=>p));function a(){let p=0,g="Comp.vue";for(;;){let m=!1;for(const _ in e.value.files)if(Ek(_)===g){m=!0,g=`Comp${++p}.vue`;break}if(!m)break}r.value=g,s.value=!0}function l(){s.value=!1}function c({el:p}){p.focus()}function u(){if(!s.value)return;if(!r.value){s.value=!1;return}const p="src/"+r.value,g=s.value===!0?"":s.value;if(!/\.(vue|jsx?|tsx?|css|json)$/.test(p)){e.value.errors=["Playground only supports *.vue, *.jsx?, *.tsx?, *.css, *.json files."];return}if(p!==g&&p in e.value.files){e.value.errors=[`File "${p}" already exists.`];return}e.value.errors=[],l(),p!==g&&(g?e.value.renameFile(g,p):e.value.addFile(p))}function h(p){r.value=Ek(p),s.value=p}const d=Nx("fileSelector");function f(p){p.preventDefault();const g=d.value,_=30*((Math.abs(p.deltaX)>=Math.abs(p.deltaY)?p.deltaX:p.deltaY)>0?1:-1);g.scrollTo({left:g.scrollLeft+_})}return(p,g)=>(Qe(),St("div",{ref_key:"fileSelector",ref:d,class:pt(["file-selector",{"has-import-map":ae(i)}]),onWheel:f},[(Qe(!0),St(ss,null,bS(o.value,(m,_)=>(Qe(),St(ss,{key:m},[s.value!==m?(Qe(),St("div",{key:0,class:pt(["file",{active:ae(e).activeFile.filename===m}]),onClick:b=>ae(e).setActive(m),onDblclick:b=>_>0&&h(m)},[vt("span",Dat,Mn(ae(Ek)(m)),1),_>0?(Qe(),St("span",{key:0,class:"remove",onClick:wr(b=>ae(e).deleteFile(m),["stop"])},g[3]||(g[3]=[vt("svg",{class:"icon",width:"12",height:"12",viewBox:"0 0 24 24"},[vt("line",{stroke:"#999",x1:"18",y1:"6",x2:"6",y2:"18"}),vt("line",{stroke:"#999",x1:"6",y1:"6",x2:"18",y2:"18"})],-1)]),8,Nat)):xi("",!0)],42,Tat)):xi("",!0),s.value===!0&&_===o.value.length-1||s.value===m?(Qe(),St("div",{key:1,class:pt(["file pending",{active:s.value===m}])},[vt("span",Aat,Mn(r.value),1),$r(vt("input",{"onUpdate:modelValue":g[0]||(g[0]=b=>r.value=b),spellcheck:"false",onBlur:u,onKeyup:[$p(u,["enter"]),$p(l,["esc"])],onVnodeMounted:c},null,544),[[X1e,r.value]])],2)):xi("",!0)],64))),128)),vt("button",{class:"add",onClick:a},"+"),vt("div",Pat,[ae(t)&&ae(e).files[ae(of)]?(Qe(),St("div",{key:0,class:pt(["file",{active:ae(e).activeFile.filename===ae(of)}]),onClick:g[1]||(g[1]=m=>ae(e).setActive(ae(of)))},g[4]||(g[4]=[vt("span",{class:"label"},"tsconfig.json",-1)]),2)):xi("",!0),ae(i)?(Qe(),St("div",{key:1,class:pt(["file",{active:ae(e).activeFile.filename===ae(kc)}]),onClick:g[2]||(g[2]=m=>ae(e).setActive(ae(kc)))},g[5]||(g[5]=[vt("span",{class:"label"},"Import Map",-1)]),2)):xi("",!0)])],34))}}),Mat=L0(Rat,[["__scopeId","data-v-1ade58ef"]]),Oat=Et({__name:"ToggleButton",props:_1e({text:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=N1e(n,"modelValue");return(t,i)=>(Qe(),St("div",{class:"wrapper",onClick:i[0]||(i[0]=s=>e.value=!e.value)},[vt("span",null,Mn(t.text),1),vt("div",{class:pt(["toggle",[{active:n.modelValue}]])},i[1]||(i[1]=[vt("div",{class:"indicator"},null,-1)]),2)]))}}),zce=L0(Oat,[["__scopeId","data-v-17ef6099"]]),Fat={class:"editor-container"},Bat={class:"editor-floating"},Uce="repl_show_error",Wat=Et({__name:"EditorContainer",props:{editorComponent:{}},setup(n){const e=n,{store:t,autoSave:i,editorOptions:s}=Si(b0),r=je(l()),o=rbe(c=>{t.value.activeFile.code=c},250);function a(){localStorage.setItem(Uce,r.value?"true":"false")}function l(){return localStorage.getItem(Uce)!=="false"}return Pt(r,()=>{a()}),(c,u)=>{var h,d,f,p;return Qe(),St(ss,null,[Kt(Mat),vt("div",Fat,[Kt(e.editorComponent,{value:ae(t).activeFile.code,filename:ae(t).activeFile.filename,onChange:ae(o)},null,8,["value","filename","onChange"]),$r(Kt(F$,{err:ae(t).errors[0]},null,8,["err"]),[[rd,r.value]]),vt("div",Bat,[((h=ae(s))==null?void 0:h.showErrorText)!==!1?(Qe(),Mi(zce,{key:0,modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=g=>r.value=g),text:((d=ae(s))==null?void 0:d.showErrorText)||"Show Error"},null,8,["modelValue","text"])):xi("",!0),((f=ae(s))==null?void 0:f.autoSaveText)!==!1?(Qe(),Mi(zce,{key:1,modelValue:ae(i),"onUpdate:modelValue":u[1]||(u[1]=g=>jn(i)?i.value=g:null),text:((p=ae(s))==null?void 0:p.autoSaveText)||"Auto Save"},null,8,["modelValue","text"])):xi("",!0)])])],64)}}}),Vat=L0(Wat,[["__scopeId","data-v-f4f45a3c"]]),Hat={class:"vue-repl"},$at=Et({__name:"Repl",props:_1e({theme:{default:"light"},previewTheme:{type:Boolean,default:!1},editor:{},store:{default:()=>gxe()},autoResize:{type:Boolean,default:!0},showCompileOutput:{type:Boolean,default:!0},showImportMap:{type:Boolean,default:!0},showTsConfig:{type:Boolean,default:!0},clearConsole:{type:Boolean,default:!0},layout:{default:"horizontal"},layoutReverse:{type:Boolean,default:!1},ssr:{type:Boolean,default:!1},previewOptions:{default:()=>({})},editorOptions:{default:()=>({})}},{modelValue:{type:Boolean,default:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:e}){const t=N1e(n,"modelValue"),i=n;if(!i.editor)throw new Error('The "editor" prop is now required.');const s=Nx("output");i.store.init();const r=Ee(()=>i.layoutReverse?"right":"left"),o=Ee(()=>i.layoutReverse?"left":"right");To(b0,{...Yg(i),autoSave:t}),To(Gve,Ee(()=>{var l,c;return((c=(l=s.value)==null?void 0:l.previewRef)==null?void 0:c.container)??null}));function a(){var l;(l=s.value)==null||l.reload()}return e({reload:a}),(l,c)=>(Qe(),St("div",Hat,[Kt(_it,{layout:l.layout},{[r.value]:ei(()=>[Kt(Vat,{"editor-component":l.editor},null,8,["editor-component"])]),[o.value]:ei(()=>[Kt(Ait,{ref:"output","editor-component":l.editor,"show-compile-output":i.showCompileOutput,ssr:!!i.ssr},null,8,["editor-component","show-compile-output","ssr"])]),_:2},1032,["layout"])]))}}),zat="2.1.6",Uat={leading:"[var(--nav-height)]","m-0":"",flex:"","items-center":"","font-medium":""},jat={flex:"~ gap-1","items-center":"","lt-sm-hidden":""},qat={flex:"~ gap-2","items-center":""},Kat={flex:"~ items-center"},Gat={flex:"~ gap-4","text-lg":""},Xat=Et({__name:"Header",props:{store:{}},emits:["refresh"],setup(n,{emit:e}){const t="2.5.1",i="4.4.1",s=e,r=je(!1),o=Kve(),a=$ve(o),l=ia({elementPlus:{text:"Element Plus",published:i$e(r),active:n.store.versions.elementPlus},vue:{text:"Vue",published:e$e(),active:n.store.versions.vue},typescript:{text:"TypeScript",published:t$e(),active:n.store.versions.typescript}});async function c(f,p){l[f].active="loading...",await n.store.setVersion(f,p),l[f].active=p}const u=()=>{n.store.toggleNightly(r.value),c("elementPlus","latest")};async function h(){await navigator.clipboard.writeText(location.href),O7e.success("Sharable URL has been copied to clipboard.")}function d(){s("refresh")}return(f,p)=>{const g=Sve,m=q9e,_=I9e,b=rZ,w=kve,C=Eve,S=n$e,x=_7e;return Qe(),St("nav",null,[vt("div",Uat,[p[3]||(p[3]=vt("img",{relative:"","mr-2":"","h-24px":"",v:"mid",top:"-2px",alt:"logo",src:s$e},null,-1)),vt("div",jat,[p[2]||(p[2]=vt("div",{"text-xl":""},"Element Plus Playground",-1)),Kt(g,{size:"small"},{default:ei(()=>[kh("v"+Mn(ae(t))+", repl v"+Mn(ae(i))+", volar v"+Mn(ae(zat)),1)]),_:1}),f.store.pr?(Qe(),Mi(g,{key:0,size:"small"},{default:ei(()=>[Kt(m,{type:"primary",href:`https://github.com/element-plus/element-plus/pull/${f.store.pr}`},{default:ei(()=>[kh("PR "+Mn(f.store.pr),1)]),_:1},8,["href"])]),_:1})):xi("",!0)])]),vt("div",qat,[(Qe(!0),St(ss,null,bS(ae(l),(k,L)=>(Qe(),St("div",{key:L,flex:"~ gap-2","items-center":"","lt-lg-hidden":""},[vt("span",null,Mn(k.text)+":",1),Kt(C,{"model-value":k.active,size:"small","fit-input-width":"","w-36":"","onUpdate:modelValue":E=>c(L,E)},QPe({default:ei(()=>[(Qe(!0),St(ss,null,bS(k.published,E=>(Qe(),Mi(w,{key:E,value:E},{default:ei(()=>[kh(Mn(E),1)]),_:2},1032,["value"]))),128))]),_:2},[L==="elementPlus"?{name:"header",fn:ei(()=>[vt("div",Kat,[Kt(_,{modelValue:ae(r),"onUpdate:modelValue":p[0]||(p[0]=E=>jn(r)?r.value=E:null),onChange:u},{default:ei(()=>p[4]||(p[4]=[kh(" nightly ")])),_:1},8,["modelValue"]),Kt(b,{placement:"top",content:"A release of the development branch that is published every night."},{default:ei(()=>p[5]||(p[5]=[vt("div",{"i-ri-question-line":"","ml-1":"","h-4":"","w-4":"","cursor-pointer":"","hover:color-primary":""},null,-1)])),_:1})])]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue"])]))),128)),vt("div",Gat,[vt("button",{"i-ri-refresh-line":"","hover:color-primary":"",onClick:d}),vt("button",{"i-ri-share-line":"","hover:color-primary":"",onClick:h}),vt("button",{"i-ri-sun-line":"","dark:i-ri-moon-line":"","hover:color-primary":"",onClick:p[1]||(p[1]=k=>ae(a)())}),p[7]||(p[7]=vt("a",{href:"https://github.com/element-plus/element-plus-playground",target:"_blank",flex:"","hover:color-primary":""},[vt("button",{title:"View on GitHub","i-ri-github-fill":""})],-1)),Kt(x,{trigger:"click",width:"300px"},{reference:ei(()=>p[6]||(p[6]=[vt("button",{"i-ri:settings-line":"","hover:color-primary":""},null,-1)])),default:ei(()=>[Kt(S)]),_:1})])])])}}});var jce={};function Yat(){return globalThis._VSCODE_NLS_MESSAGES}function _xe(){return globalThis._VSCODE_NLS_LANGUAGE}const Zat=_xe()==="pseudo"||typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function eF(n,e){let t;return e.length===0?t=n:t=n.replace(/\{(\d+)\}/g,(i,s)=>{const r=s[0],o=e[r];let a=i;return typeof o=="string"?a=o:(typeof o=="number"||typeof o=="boolean"||o===void 0||o===null)&&(a=String(o)),a}),Zat&&(t="["+t.replace(/[aouei]/g,"$&$&")+"]"),t}function v(n,e,...t){return eF(typeof n=="number"?vxe(n,e):e,t)}function vxe(n,e){var i;const t=(i=Yat())==null?void 0:i[n];if(typeof t!="string"){if(typeof e=="string")return e;throw new Error(`!!! NLS MISSING: ${n} !!!`)}return t}function Ct(n,e,...t){let i;typeof n=="number"?i=vxe(n,e):i=e;const s=eF(i,t);return{value:s,original:e===i?s:eF(e,t)}}function Qat(n,e){const t=n;typeof t.vscodeWindowId!="number"&&Object.defineProperty(t,"vscodeWindowId",{get:()=>e})}const Gi=window,s3=class s3{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}getWindowId(e){return e.vscodeWindowId}};s3.INSTANCE=new s3;let Z$=s3;function bxe(n,e,t){typeof e=="string"&&(e=n.matchMedia(e)),e.addEventListener("change",t)}function Jat(n){return Z$.INSTANCE.getZoomFactor(n)}const sL=navigator.userAgent,tu=sL.indexOf("Firefox")>=0,vb=sL.indexOf("AppleWebKit")>=0,SN=sL.indexOf("Chrome")>=0,Fg=!SN&&sL.indexOf("Safari")>=0,yxe=!SN&&!Fg&&vb;sL.indexOf("Electron/")>=0;const qce=sL.indexOf("Android")>=0;let JR=!1;if(typeof Gi.matchMedia=="function"){const n=Gi.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=Gi.matchMedia("(display-mode: fullscreen)");JR=n.matches,bxe(Gi,n,({matches:t})=>{JR&&e.matches||(JR=t)})}function elt(){return JR}function Da(n){return typeof n=="string"}function fr(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&!(n instanceof RegExp)&&!(n instanceof Date)}function tlt(n){const e=Object.getPrototypeOf(Uint8Array);return typeof n=="object"&&n instanceof e}function t_(n){return typeof n=="number"&&!isNaN(n)}function Kce(n){return!!n&&typeof n[Symbol.iterator]=="function"}function wxe(n){return n===!0||n===!1}function ko(n){return typeof n>"u"}function Nf(n){return!Kl(n)}function Kl(n){return ko(n)||n===null}function yi(n,e){if(!n)throw new Error(e?`Unexpected type, expected '${e}'`:"Unexpected type")}function i1(n){if(Kl(n))throw new Error("Assertion Failed: argument is undefined or null");return n}function gT(n){return typeof n=="function"}function ilt(n,e){const t=Math.min(n.length,e.length);for(let i=0;i<t;i++)nlt(n[i],e[i])}function nlt(n,e){if(Da(e)){if(typeof n!==e)throw new Error(`argument does not match constraint: typeof ${e}`)}else if(gT(e)){try{if(n instanceof e)return}catch{}if(!Kl(n)&&n.constructor===e||e.length===1&&e.call(void 0,n)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}const Ww="en";let tF=!1,iF=!1,eM=!1,Cxe=!1,cee=!1,uee=!1,Sxe=!1,sP,tM=Ww,Gce=Ww,slt,nh;const wg=globalThis;let Ho;var bme;typeof wg.vscode<"u"&&typeof wg.vscode.process<"u"?Ho=wg.vscode.process:typeof process<"u"&&typeof((bme=process==null?void 0:process.versions)==null?void 0:bme.node)=="string"&&(Ho=process);var yme;const rlt=typeof((yme=Ho==null?void 0:Ho.versions)==null?void 0:yme.electron)=="string",olt=rlt&&(Ho==null?void 0:Ho.type)==="renderer";var wme;if(typeof Ho=="object"){tF=Ho.platform==="win32",iF=Ho.platform==="darwin",eM=Ho.platform==="linux",eM&&Ho.env.SNAP&&Ho.env.SNAP_REVISION,Ho.env.CI||Ho.env.BUILD_ARTIFACTSTAGINGDIRECTORY,sP=Ww,tM=Ww;const n=Ho.env.VSCODE_NLS_CONFIG;if(n)try{const e=JSON.parse(n);sP=e.userLocale,Gce=e.osLocale,tM=e.resolvedLanguage||Ww,slt=(wme=e.languagePack)==null?void 0:wme.translationsConfigFile}catch{}Cxe=!0}else typeof navigator=="object"&&!olt?(nh=navigator.userAgent,tF=nh.indexOf("Windows")>=0,iF=nh.indexOf("Macintosh")>=0,uee=(nh.indexOf("Macintosh")>=0||nh.indexOf("iPad")>=0||nh.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,eM=nh.indexOf("Linux")>=0,Sxe=(nh==null?void 0:nh.indexOf("Mobi"))>=0,cee=!0,tM=_xe()||Ww,sP=navigator.language.toLowerCase(),Gce=sP):console.error("Unable to resolve platform.");const qr=tF,ni=iF,ra=eM,Oh=Cxe,N_=cee,alt=cee&&typeof wg.importScripts=="function",llt=alt?wg.origin:void 0,Gh=uee,xxe=Sxe,zf=nh,clt=tM,ult=typeof wg.postMessage=="function"&&!wg.importScripts,Lxe=(()=>{if(ult){const n=[];wg.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,s=n.length;i<s;i++){const r=n[i];if(r.id===t.data.vscodeScheduleAsyncWork){n.splice(i,1),r.callback();return}}});let e=0;return t=>{const i=++e;n.push({id:i,callback:t}),wg.postMessage({vscodeScheduleAsyncWork:i},"*")}}return n=>setTimeout(n)})(),cl=iF||uee?2:tF?1:3;let Xce=!0,Yce=!1;function Exe(){if(!Yce){Yce=!0;const n=new Uint8Array(2);n[0]=1,n[1]=2,Xce=new Uint16Array(n.buffer)[0]===513}return Xce}const kxe=!!(zf&&zf.indexOf("Chrome")>=0),hlt=!!(zf&&zf.indexOf("Firefox")>=0),dlt=!!(!kxe&&zf&&zf.indexOf("Safari")>=0),flt=!!(zf&&zf.indexOf("Edg/")>=0),plt=!!(zf&&zf.indexOf("Android")>=0),hee={clipboard:{writeText:Oh||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:Oh||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:Oh||elt()?0:navigator.keyboard||Fg?1:2,touch:"ontouchstart"in Gi||navigator.maxTouchPoints>0,pointerEvents:Gi.PointerEvent&&("ontouchstart"in Gi||navigator.maxTouchPoints>0)};class dee{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const iM=new dee,Q$=new dee,J$=new dee,Ixe=new Array(230),glt=Object.create(null),mlt=Object.create(null),fee=[];for(let n=0;n<=193;n++)fee[n]=-1;(function(){const n="",e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",n,n],[1,1,"Hyper",0,n,0,n,n,n],[1,2,"Super",0,n,0,n,n,n],[1,3,"Fn",0,n,0,n,n,n],[1,4,"FnLock",0,n,0,n,n,n],[1,5,"Suspend",0,n,0,n,n,n],[1,6,"Resume",0,n,0,n,n,n],[1,7,"Turbo",0,n,0,n,n,n],[1,8,"Sleep",0,n,0,"VK_SLEEP",n,n],[1,9,"WakeUp",0,n,0,n,n,n],[0,10,"KeyA",31,"A",65,"VK_A",n,n],[0,11,"KeyB",32,"B",66,"VK_B",n,n],[0,12,"KeyC",33,"C",67,"VK_C",n,n],[0,13,"KeyD",34,"D",68,"VK_D",n,n],[0,14,"KeyE",35,"E",69,"VK_E",n,n],[0,15,"KeyF",36,"F",70,"VK_F",n,n],[0,16,"KeyG",37,"G",71,"VK_G",n,n],[0,17,"KeyH",38,"H",72,"VK_H",n,n],[0,18,"KeyI",39,"I",73,"VK_I",n,n],[0,19,"KeyJ",40,"J",74,"VK_J",n,n],[0,20,"KeyK",41,"K",75,"VK_K",n,n],[0,21,"KeyL",42,"L",76,"VK_L",n,n],[0,22,"KeyM",43,"M",77,"VK_M",n,n],[0,23,"KeyN",44,"N",78,"VK_N",n,n],[0,24,"KeyO",45,"O",79,"VK_O",n,n],[0,25,"KeyP",46,"P",80,"VK_P",n,n],[0,26,"KeyQ",47,"Q",81,"VK_Q",n,n],[0,27,"KeyR",48,"R",82,"VK_R",n,n],[0,28,"KeyS",49,"S",83,"VK_S",n,n],[0,29,"KeyT",50,"T",84,"VK_T",n,n],[0,30,"KeyU",51,"U",85,"VK_U",n,n],[0,31,"KeyV",52,"V",86,"VK_V",n,n],[0,32,"KeyW",53,"W",87,"VK_W",n,n],[0,33,"KeyX",54,"X",88,"VK_X",n,n],[0,34,"KeyY",55,"Y",89,"VK_Y",n,n],[0,35,"KeyZ",56,"Z",90,"VK_Z",n,n],[0,36,"Digit1",22,"1",49,"VK_1",n,n],[0,37,"Digit2",23,"2",50,"VK_2",n,n],[0,38,"Digit3",24,"3",51,"VK_3",n,n],[0,39,"Digit4",25,"4",52,"VK_4",n,n],[0,40,"Digit5",26,"5",53,"VK_5",n,n],[0,41,"Digit6",27,"6",54,"VK_6",n,n],[0,42,"Digit7",28,"7",55,"VK_7",n,n],[0,43,"Digit8",29,"8",56,"VK_8",n,n],[0,44,"Digit9",30,"9",57,"VK_9",n,n],[0,45,"Digit0",21,"0",48,"VK_0",n,n],[1,46,"Enter",3,"Enter",13,"VK_RETURN",n,n],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",n,n],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",n,n],[1,49,"Tab",2,"Tab",9,"VK_TAB",n,n],[1,50,"Space",10,"Space",32,"VK_SPACE",n,n],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,n,0,n,n,n],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",n,n],[1,64,"F1",59,"F1",112,"VK_F1",n,n],[1,65,"F2",60,"F2",113,"VK_F2",n,n],[1,66,"F3",61,"F3",114,"VK_F3",n,n],[1,67,"F4",62,"F4",115,"VK_F4",n,n],[1,68,"F5",63,"F5",116,"VK_F5",n,n],[1,69,"F6",64,"F6",117,"VK_F6",n,n],[1,70,"F7",65,"F7",118,"VK_F7",n,n],[1,71,"F8",66,"F8",119,"VK_F8",n,n],[1,72,"F9",67,"F9",120,"VK_F9",n,n],[1,73,"F10",68,"F10",121,"VK_F10",n,n],[1,74,"F11",69,"F11",122,"VK_F11",n,n],[1,75,"F12",70,"F12",123,"VK_F12",n,n],[1,76,"PrintScreen",0,n,0,n,n,n],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",n,n],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",n,n],[1,79,"Insert",19,"Insert",45,"VK_INSERT",n,n],[1,80,"Home",14,"Home",36,"VK_HOME",n,n],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",n,n],[1,82,"Delete",20,"Delete",46,"VK_DELETE",n,n],[1,83,"End",13,"End",35,"VK_END",n,n],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",n,n],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",n],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",n],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",n],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",n],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",n,n],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",n,n],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",n,n],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",n,n],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",n,n],[1,94,"NumpadEnter",3,n,0,n,n,n],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",n,n],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",n,n],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",n,n],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",n,n],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",n,n],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",n,n],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",n,n],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",n,n],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",n,n],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",n,n],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",n,n],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",n,n],[1,107,"ContextMenu",58,"ContextMenu",93,n,n,n],[1,108,"Power",0,n,0,n,n,n],[1,109,"NumpadEqual",0,n,0,n,n,n],[1,110,"F13",71,"F13",124,"VK_F13",n,n],[1,111,"F14",72,"F14",125,"VK_F14",n,n],[1,112,"F15",73,"F15",126,"VK_F15",n,n],[1,113,"F16",74,"F16",127,"VK_F16",n,n],[1,114,"F17",75,"F17",128,"VK_F17",n,n],[1,115,"F18",76,"F18",129,"VK_F18",n,n],[1,116,"F19",77,"F19",130,"VK_F19",n,n],[1,117,"F20",78,"F20",131,"VK_F20",n,n],[1,118,"F21",79,"F21",132,"VK_F21",n,n],[1,119,"F22",80,"F22",133,"VK_F22",n,n],[1,120,"F23",81,"F23",134,"VK_F23",n,n],[1,121,"F24",82,"F24",135,"VK_F24",n,n],[1,122,"Open",0,n,0,n,n,n],[1,123,"Help",0,n,0,n,n,n],[1,124,"Select",0,n,0,n,n,n],[1,125,"Again",0,n,0,n,n,n],[1,126,"Undo",0,n,0,n,n,n],[1,127,"Cut",0,n,0,n,n,n],[1,128,"Copy",0,n,0,n,n,n],[1,129,"Paste",0,n,0,n,n,n],[1,130,"Find",0,n,0,n,n,n],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",n,n],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",n,n],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",n,n],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",n,n],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",n,n],[1,136,"KanaMode",0,n,0,n,n,n],[0,137,"IntlYen",0,n,0,n,n,n],[1,138,"Convert",0,n,0,n,n,n],[1,139,"NonConvert",0,n,0,n,n,n],[1,140,"Lang1",0,n,0,n,n,n],[1,141,"Lang2",0,n,0,n,n,n],[1,142,"Lang3",0,n,0,n,n,n],[1,143,"Lang4",0,n,0,n,n,n],[1,144,"Lang5",0,n,0,n,n,n],[1,145,"Abort",0,n,0,n,n,n],[1,146,"Props",0,n,0,n,n,n],[1,147,"NumpadParenLeft",0,n,0,n,n,n],[1,148,"NumpadParenRight",0,n,0,n,n,n],[1,149,"NumpadBackspace",0,n,0,n,n,n],[1,150,"NumpadMemoryStore",0,n,0,n,n,n],[1,151,"NumpadMemoryRecall",0,n,0,n,n,n],[1,152,"NumpadMemoryClear",0,n,0,n,n,n],[1,153,"NumpadMemoryAdd",0,n,0,n,n,n],[1,154,"NumpadMemorySubtract",0,n,0,n,n,n],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",n,n],[1,156,"NumpadClearEntry",0,n,0,n,n,n],[1,0,n,5,"Ctrl",17,"VK_CONTROL",n,n],[1,0,n,4,"Shift",16,"VK_SHIFT",n,n],[1,0,n,6,"Alt",18,"VK_MENU",n,n],[1,0,n,57,"Meta",91,"VK_COMMAND",n,n],[1,157,"ControlLeft",5,n,0,"VK_LCONTROL",n,n],[1,158,"ShiftLeft",4,n,0,"VK_LSHIFT",n,n],[1,159,"AltLeft",6,n,0,"VK_LMENU",n,n],[1,160,"MetaLeft",57,n,0,"VK_LWIN",n,n],[1,161,"ControlRight",5,n,0,"VK_RCONTROL",n,n],[1,162,"ShiftRight",4,n,0,"VK_RSHIFT",n,n],[1,163,"AltRight",6,n,0,"VK_RMENU",n,n],[1,164,"MetaRight",57,n,0,"VK_RWIN",n,n],[1,165,"BrightnessUp",0,n,0,n,n,n],[1,166,"BrightnessDown",0,n,0,n,n,n],[1,167,"MediaPlay",0,n,0,n,n,n],[1,168,"MediaRecord",0,n,0,n,n,n],[1,169,"MediaFastForward",0,n,0,n,n,n],[1,170,"MediaRewind",0,n,0,n,n,n],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",n,n],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",n,n],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",n,n],[1,174,"Eject",0,n,0,n,n,n],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",n,n],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",n,n],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",n,n],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",n,n],[1,179,"LaunchApp1",0,n,0,"VK_MEDIA_LAUNCH_APP1",n,n],[1,180,"SelectTask",0,n,0,n,n,n],[1,181,"LaunchScreenSaver",0,n,0,n,n,n],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",n,n],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",n,n],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",n,n],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",n,n],[1,186,"BrowserStop",0,n,0,"VK_BROWSER_STOP",n,n],[1,187,"BrowserRefresh",0,n,0,"VK_BROWSER_REFRESH",n,n],[1,188,"BrowserFavorites",0,n,0,"VK_BROWSER_FAVORITES",n,n],[1,189,"ZoomToggle",0,n,0,n,n,n],[1,190,"MailReply",0,n,0,n,n,n],[1,191,"MailForward",0,n,0,n,n,n],[1,192,"MailSend",0,n,0,n,n,n],[1,0,n,114,"KeyInComposition",229,n,n,n],[1,0,n,116,"ABNT_C2",194,"VK_ABNT_C2",n,n],[1,0,n,96,"OEM_8",223,"VK_OEM_8",n,n],[1,0,n,0,n,0,"VK_KANA",n,n],[1,0,n,0,n,0,"VK_HANGUL",n,n],[1,0,n,0,n,0,"VK_JUNJA",n,n],[1,0,n,0,n,0,"VK_FINAL",n,n],[1,0,n,0,n,0,"VK_HANJA",n,n],[1,0,n,0,n,0,"VK_KANJI",n,n],[1,0,n,0,n,0,"VK_CONVERT",n,n],[1,0,n,0,n,0,"VK_NONCONVERT",n,n],[1,0,n,0,n,0,"VK_ACCEPT",n,n],[1,0,n,0,n,0,"VK_MODECHANGE",n,n],[1,0,n,0,n,0,"VK_SELECT",n,n],[1,0,n,0,n,0,"VK_PRINT",n,n],[1,0,n,0,n,0,"VK_EXECUTE",n,n],[1,0,n,0,n,0,"VK_SNAPSHOT",n,n],[1,0,n,0,n,0,"VK_HELP",n,n],[1,0,n,0,n,0,"VK_APPS",n,n],[1,0,n,0,n,0,"VK_PROCESSKEY",n,n],[1,0,n,0,n,0,"VK_PACKET",n,n],[1,0,n,0,n,0,"VK_DBE_SBCSCHAR",n,n],[1,0,n,0,n,0,"VK_DBE_DBCSCHAR",n,n],[1,0,n,0,n,0,"VK_ATTN",n,n],[1,0,n,0,n,0,"VK_CRSEL",n,n],[1,0,n,0,n,0,"VK_EXSEL",n,n],[1,0,n,0,n,0,"VK_EREOF",n,n],[1,0,n,0,n,0,"VK_PLAY",n,n],[1,0,n,0,n,0,"VK_ZOOM",n,n],[1,0,n,0,n,0,"VK_NONAME",n,n],[1,0,n,0,n,0,"VK_PA1",n,n],[1,0,n,0,n,0,"VK_OEM_CLEAR",n,n]],t=[],i=[];for(const s of e){const[r,o,a,l,c,u,h,d,f]=s;if(i[o]||(i[o]=!0,glt[a]=o,mlt[a.toLowerCase()]=o,r&&(fee[o]=l)),!t[l]){if(t[l]=!0,!c)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);iM.define(l,c),Q$.define(l,d||c),J$.define(l,f||d||c)}u&&(Ixe[u]=l)}})();var Up;(function(n){function e(a){return iM.keyCodeToStr(a)}n.toString=e;function t(a){return iM.strToKeyCode(a)}n.fromString=t;function i(a){return Q$.keyCodeToStr(a)}n.toUserSettingsUS=i;function s(a){return J$.keyCodeToStr(a)}n.toUserSettingsGeneral=s;function r(a){return Q$.strToKeyCode(a)||J$.strToKeyCode(a)}n.fromUserSettings=r;function o(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return iM.keyCodeToStr(a)}n.toElectronAccelerator=o})(Up||(Up={}));function Ts(n,e){const t=(e&65535)<<16>>>0;return(n|t)>>>0}class _lt{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?qS.isErrorNoTelemetry(e)?new qS(e.message+` + +`+e.stack):new Error(e.message+` + +`+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const Txe=new _lt;function Nt(n){ou(n)||Txe.onUnexpectedError(n)}function ls(n){ou(n)||Txe.onUnexpectedExternalError(n)}function Zce(n){if(n instanceof Error){const{name:e,message:t}=n,i=n.stacktrace||n.stack;return{$isError:!0,name:e,message:t,stack:i,noTelemetry:qS.isErrorNoTelemetry(n)}}return n}const nF="Canceled";function ou(n){return n instanceof Hu?!0:n instanceof Error&&n.name===nF&&n.message===nF}class Hu extends Error{constructor(){super(nF),this.name=this.message}}function vlt(){const n=new Error(nF);return n.name=n.message,n}function Gc(n){return n?new Error(`Illegal argument: ${n}`):new Error("Illegal argument")}function pee(n){return n?new Error(`Illegal state: ${n}`):new Error("Illegal state")}class blt extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class qS extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof qS)return e;const t=new qS;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}}class Li extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,Li.prototype)}}function ez(n,e){if(typeof n=="number"){if(n===0)return null;const t=(n&65535)>>>0,i=(n&4294901760)>>>16;return i!==0?new x7([rP(t,e),rP(i,e)]):new x7([rP(t,e)])}else{const t=[];for(let i=0;i<n.length;i++)t.push(rP(n[i],e));return new x7(t)}}function rP(n,e){const t=!!(n&2048),i=!!(n&256),s=e===2?i:t,r=!!(n&1024),o=!!(n&512),a=e===2?t:i,l=n&255;return new Bg(s,r,o,a,l)}class Bg{constructor(e,t,i,s,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=s,this.keyCode=r}equals(e){return e instanceof Bg&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}}class x7{constructor(e){if(e.length===0)throw Gc("chords");this.chords=e}}class ylt{constructor(e,t,i,s,r,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=s,this.keyLabel=r,this.keyAriaLabel=o}}class wlt{}function Clt(n){if(n.charCode){const t=String.fromCharCode(n.charCode).toUpperCase();return Up.fromString(t)}const e=n.keyCode;if(e===3)return 7;if(tu)switch(e){case 59:return 85;case 60:if(ra)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(ni)return 57;break}else if(vb){if(ni&&e===93)return 57;if(!ni&&e===92)return 57}return Ixe[e]||0}const Slt=ni?256:2048,xlt=512,Llt=1024,Elt=ni?2048:256;class Ji{constructor(e){var i;this._standardKeyboardEventBrand=!0;const t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.altGraphKey=(i=t.getModifierState)==null?void 0:i.call(t,"AltGraph"),this.keyCode=Clt(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=Slt),this.altKey&&(t|=xlt),this.shiftKey&&(t|=Llt),this.metaKey&&(t|=Elt),t|=e,t}_computeKeyCodeChord(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new Bg(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}const Qce=new WeakMap;function klt(n){if(!n.parent||n.parent===n)return null;try{const e=n.location,t=n.parent.location;if(e.origin!=="null"&&t.origin!=="null"&&e.origin!==t.origin)return null}catch{return null}return n.parent}class Ilt{static getSameOriginWindowChain(e){let t=Qce.get(e);if(!t){t=[],Qce.set(e,t);let i=e,s;do s=klt(i),s?t.push({window:new WeakRef(i),iframeElement:i.frameElement||null}):t.push({window:new WeakRef(i),iframeElement:null}),i=s;while(i)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let i=0,s=0;const r=this.getSameOriginWindowChain(e);for(const o of r){const a=o.window.deref();if(i+=(a==null?void 0:a.scrollY)??0,s+=(a==null?void 0:a.scrollX)??0,a===t||!o.iframeElement)break;const l=o.iframeElement.getBoundingClientRect();i+=l.top,s+=l.left}return{top:i,left:s}}}class Iu{constructor(e,t){this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=t.button===0,this.middleButton=t.button===1,this.rightButton=t.button===2,this.buttons=t.buttons,this.target=t.target,this.detail=t.detail||1,t.type==="dblclick"&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,typeof t.pageX=="number"?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const i=Ilt.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=i.left,this.posy-=i.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class Hy{constructor(e,t=0,i=0){var r;this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t;let s=!1;if(SN){const o=navigator.userAgent.match(/Chrome\/(\d+)/);s=(o?parseInt(o[1]):123)<=122}if(e){const o=e,a=e,l=((r=e.view)==null?void 0:r.devicePixelRatio)||1;if(typeof o.wheelDeltaY<"u")s?this.deltaY=o.wheelDeltaY/(120*l):this.deltaY=o.wheelDeltaY/120;else if(typeof a.VERTICAL_AXIS<"u"&&a.axis===a.VERTICAL_AXIS)this.deltaY=-a.detail/3;else if(e.type==="wheel"){const c=e;c.deltaMode===c.DOM_DELTA_LINE?tu&&!ni?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof o.wheelDeltaX<"u")Fg&&qr?this.deltaX=-(o.wheelDeltaX/120):s?this.deltaX=o.wheelDeltaX/(120*l):this.deltaX=o.wheelDeltaX/120;else if(typeof a.HORIZONTAL_AXIS<"u"&&a.axis===a.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type==="wheel"){const c=e;c.deltaMode===c.DOM_DELTA_LINE?tu&&!ni?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(s?this.deltaY=e.wheelDelta/(120*l):this.deltaY=e.wheelDelta/120)}}preventDefault(){var e;(e=this.browserEvent)==null||e.preventDefault()}stopPropagation(){var e;(e=this.browserEvent)==null||e.stopPropagation()}}function i_(n,e){const t=this;let i=!1,s;return function(){return i||(i=!0,s=n.apply(t,arguments)),s}}var hi;(function(n){function e(C){return C&&typeof C=="object"&&typeof C[Symbol.iterator]=="function"}n.is=e;const t=Object.freeze([]);function i(){return t}n.empty=i;function*s(C){yield C}n.single=s;function r(C){return e(C)?C:s(C)}n.wrap=r;function o(C){return C||t}n.from=o;function*a(C){for(let S=C.length-1;S>=0;S--)yield C[S]}n.reverse=a;function l(C){return!C||C[Symbol.iterator]().next().done===!0}n.isEmpty=l;function c(C){return C[Symbol.iterator]().next().value}n.first=c;function u(C,S){let x=0;for(const k of C)if(S(k,x++))return!0;return!1}n.some=u;function h(C,S){for(const x of C)if(S(x))return x}n.find=h;function*d(C,S){for(const x of C)S(x)&&(yield x)}n.filter=d;function*f(C,S){let x=0;for(const k of C)yield S(k,x++)}n.map=f;function*p(C,S){let x=0;for(const k of C)yield*S(k,x++)}n.flatMap=p;function*g(...C){for(const S of C)yield*S}n.concat=g;function m(C,S,x){let k=x;for(const L of C)k=S(k,L);return k}n.reduce=m;function*_(C,S,x=C.length){for(S<0&&(S+=C.length),x<0?x+=C.length:x>C.length&&(x=C.length);S<x;S++)yield C[S]}n.slice=_;function b(C,S=Number.POSITIVE_INFINITY){const x=[];if(S===0)return[x,C];const k=C[Symbol.iterator]();for(let L=0;L<S;L++){const E=k.next();if(E.done)return[x,n.empty()];x.push(E.value)}return[x,{[Symbol.iterator](){return k}}]}n.consume=b;async function w(C){const S=[];for await(const x of C)S.push(x);return Promise.resolve(S)}n.asyncToArray=w})(hi||(hi={}));function AB(n){return typeof n=="object"&&n!==null&&typeof n.dispose=="function"&&n.dispose.length===0}function Yi(n){if(hi.is(n)){const e=[];for(const t of n)if(t)try{t.dispose()}catch(i){e.push(i)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(n)?[]:n}else if(n)return n.dispose(),n}function Pu(...n){return lt(()=>Yi(n))}function lt(n){return{dispose:i_(()=>{n()})}}const r3=class r3{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Yi(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?r3.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}deleteAndLeak(e){e&&this._toDispose.has(e)&&this._toDispose.delete(e)}};r3.DISABLE_DISPOSED_WARNING=!1;let be=r3;const Yne=class Yne{constructor(){this._store=new be,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};Yne.None=Object.freeze({dispose(){}});let ue=Yne;class rr{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)==null||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)==null||e.dispose(),this._value=void 0}}class Tlt{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class Dlt{constructor(e){this.object=e}dispose(){}}class gee{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{Yi(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){var s;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),i||(s=this._store.get(e))==null||s.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))==null||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}var cg;let Zs=(cg=class{constructor(e){this.element=e,this.next=cg.Undefined,this.prev=cg.Undefined}},cg.Undefined=new cg(void 0),cg);class Go{constructor(){this._first=Zs.Undefined,this._last=Zs.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Zs.Undefined}clear(){let e=this._first;for(;e!==Zs.Undefined;){const t=e.next;e.prev=Zs.Undefined,e.next=Zs.Undefined,e=t}this._first=Zs.Undefined,this._last=Zs.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new Zs(e);if(this._first===Zs.Undefined)this._first=i,this._last=i;else if(t){const r=this._last;this._last=i,i.prev=r,r.next=i}else{const r=this._first;this._first=i,i.next=r,r.prev=i}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(i))}}shift(){if(this._first!==Zs.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==Zs.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==Zs.Undefined&&e.next!==Zs.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===Zs.Undefined&&e.next===Zs.Undefined?(this._first=Zs.Undefined,this._last=Zs.Undefined):e.next===Zs.Undefined?(this._last=this._last.prev,this._last.next=Zs.Undefined):e.prev===Zs.Undefined&&(this._first=this._first.next,this._first.prev=Zs.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==Zs.Undefined;)yield e.element,e=e.next}}const Nlt=globalThis.performance&&typeof globalThis.performance.now=="function";class Nr{static create(e){return new Nr(e)}constructor(e){this._now=Nlt&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var Oe;(function(n){n.None=()=>ue.None;function e(T,N){return h(T,()=>{},0,void 0,!0,void 0,N)}n.defer=e;function t(T){return(N,M=null,V)=>{let W=!1,B;return B=T($=>{if(!W)return B?B.dispose():W=!0,N.call(M,$)},null,V),W&&B.dispose(),B}}n.once=t;function i(T,N,M){return c((V,W=null,B)=>T($=>V.call(W,N($)),null,B),M)}n.map=i;function s(T,N,M){return c((V,W=null,B)=>T($=>{N($),V.call(W,$)},null,B),M)}n.forEach=s;function r(T,N,M){return c((V,W=null,B)=>T($=>N($)&&V.call(W,$),null,B),M)}n.filter=r;function o(T){return T}n.signal=o;function a(...T){return(N,M=null,V)=>{const W=Pu(...T.map(B=>B($=>N.call(M,$))));return u(W,V)}}n.any=a;function l(T,N,M,V){let W=M;return i(T,B=>(W=N(W,B),W),V)}n.reduce=l;function c(T,N){let M;const V={onWillAddFirstListener(){M=T(W.fire,W)},onDidRemoveLastListener(){M==null||M.dispose()}},W=new oe(V);return N==null||N.add(W),W.event}function u(T,N){return N instanceof Array?N.push(T):N&&N.add(T),T}function h(T,N,M=100,V=!1,W=!1,B,$){let Y,le,re,z=0,K;const Z={leakWarningThreshold:B,onWillAddFirstListener(){Y=T(ce=>{z++,le=N(le,ce),V&&!re&&(j.fire(le),le=void 0),K=()=>{const ie=le;le=void 0,re=void 0,(!V||z>1)&&j.fire(ie),z=0},typeof M=="number"?(clearTimeout(re),re=setTimeout(K,M)):re===void 0&&(re=0,queueMicrotask(K))})},onWillRemoveListener(){W&&z>0&&(K==null||K())},onDidRemoveLastListener(){K=void 0,Y.dispose()}},j=new oe(Z);return $==null||$.add(j),j.event}n.debounce=h;function d(T,N=0,M){return n.debounce(T,(V,W)=>V?(V.push(W),V):[W],N,void 0,!0,void 0,M)}n.accumulate=d;function f(T,N=(V,W)=>V===W,M){let V=!0,W;return r(T,B=>{const $=V||!N(B,W);return V=!1,W=B,$},M)}n.latch=f;function p(T,N,M){return[n.filter(T,N,M),n.filter(T,V=>!N(V),M)]}n.split=p;function g(T,N=!1,M=[],V){let W=M.slice(),B=T(le=>{W?W.push(le):Y.fire(le)});V&&V.add(B);const $=()=>{W==null||W.forEach(le=>Y.fire(le)),W=null},Y=new oe({onWillAddFirstListener(){B||(B=T(le=>Y.fire(le)),V&&V.add(B))},onDidAddFirstListener(){W&&(N?setTimeout($):$())},onDidRemoveLastListener(){B&&B.dispose(),B=null}});return V&&V.add(Y),Y.event}n.buffer=g;function m(T,N){return(V,W,B)=>{const $=N(new b);return T(function(Y){const le=$.evaluate(Y);le!==_&&V.call(W,le)},void 0,B)}}n.chain=m;const _=Symbol("HaltChainable");class b{constructor(){this.steps=[]}map(N){return this.steps.push(N),this}forEach(N){return this.steps.push(M=>(N(M),M)),this}filter(N){return this.steps.push(M=>N(M)?M:_),this}reduce(N,M){let V=M;return this.steps.push(W=>(V=N(V,W),V)),this}latch(N=(M,V)=>M===V){let M=!0,V;return this.steps.push(W=>{const B=M||!N(W,V);return M=!1,V=W,B?W:_}),this}evaluate(N){for(const M of this.steps)if(N=M(N),N===_)break;return N}}function w(T,N,M=V=>V){const V=(...Y)=>$.fire(M(...Y)),W=()=>T.on(N,V),B=()=>T.removeListener(N,V),$=new oe({onWillAddFirstListener:W,onDidRemoveLastListener:B});return $.event}n.fromNodeEventEmitter=w;function C(T,N,M=V=>V){const V=(...Y)=>$.fire(M(...Y)),W=()=>T.addEventListener(N,V),B=()=>T.removeEventListener(N,V),$=new oe({onWillAddFirstListener:W,onDidRemoveLastListener:B});return $.event}n.fromDOMEventEmitter=C;function S(T){return new Promise(N=>t(T)(N))}n.toPromise=S;function x(T){const N=new oe;return T.then(M=>{N.fire(M)},()=>{N.fire(void 0)}).finally(()=>{N.dispose()}),N.event}n.fromPromise=x;function k(T,N){return T(M=>N.fire(M))}n.forward=k;function L(T,N,M){return N(M),T(V=>N(V))}n.runAndSubscribe=L;class E{constructor(N,M){this._observable=N,this._counter=0,this._hasChanged=!1;const V={onWillAddFirstListener:()=>{N.addObserver(this)},onDidRemoveLastListener:()=>{N.removeObserver(this)}};this.emitter=new oe(V),M&&M.add(this.emitter)}beginUpdate(N){this._counter++}handlePossibleChange(N){}handleChange(N,M){this._hasChanged=!0}endUpdate(N){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function A(T,N){return new E(T,N).emitter.event}n.fromObservable=A;function I(T){return(N,M,V)=>{let W=0,B=!1;const $={beginUpdate(){W++},endUpdate(){W--,W===0&&(T.reportChanges(),B&&(B=!1,N.call(M)))},handlePossibleChange(){},handleChange(){B=!0}};T.addObserver($),T.reportChanges();const Y={dispose(){T.removeObserver($)}};return V instanceof be?V.add(Y):Array.isArray(V)&&V.push(Y),Y}}n.fromObservableLight=I})(Oe||(Oe={}));const aC=class aC{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${aC._idPool++}`,aC.all.add(this)}start(e){this._stopWatch=new Nr,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}};aC.all=new Set,aC._idPool=0;let tz=aC,Alt=-1;const o3=class o3{constructor(e,t,i=(o3._idPool++).toString(16).padStart(3,"0")){this._errorHandler=e,this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){var e;(e=this._stacks)==null||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t<i)return;this._stacks||(this._stacks=new Map);const s=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,s+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=i*.5;const[r,o]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${o}):`;console.warn(a),console.warn(r);const l=new Plt(a,r);this._errorHandler(l)}return()=>{const r=this._stacks.get(e.value)||0;this._stacks.set(e.value,r-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(const[i,s]of this._stacks)(!e||t<s)&&(e=[i,s],t=s);return e}};o3._idPool=1;let iz=o3;class mee{static create(){const e=new Error;return new mee(e.stack??"")}constructor(e){this.value=e}print(){console.warn(this.value.split(` +`).slice(2).join(` +`))}}class Plt extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}}class Rlt extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}}class L7{constructor(e){this.value=e}}const Mlt=2;let oe=class{constructor(e){var t,i,s,r;this._size=0,this._options=e,this._leakageMon=(t=this._options)!=null&&t.leakWarningThreshold?new iz((e==null?void 0:e.onListenerError)??Nt,((i=this._options)==null?void 0:i.leakWarningThreshold)??Alt):void 0,this._perfMon=(s=this._options)!=null&&s._profName?new tz(this._options._profName):void 0,this._deliveryQueue=(r=this._options)==null?void 0:r.deliveryQueue}dispose(){var e,t,i,s;this._disposed||(this._disposed=!0,((e=this._deliveryQueue)==null?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(i=(t=this._options)==null?void 0:t.onDidRemoveLastListener)==null||i.call(t),(s=this._leakageMon)==null||s.dispose())}get event(){return this._event??(this._event=(e,t,i)=>{var a,l,c,u,h;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const d=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(d);const f=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],p=new Rlt(`${d}. HINT: Stack shows most frequent listener (${f[1]}-times)`,f[0]);return(((a=this._options)==null?void 0:a.onListenerError)||Nt)(p),ue.None}if(this._disposed)return ue.None;t&&(e=e.bind(t));const s=new L7(e);let r;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=mee.create(),r=this._leakageMon.check(s.stack,this._size+1)),this._listeners?this._listeners instanceof L7?(this._deliveryQueue??(this._deliveryQueue=new Dxe),this._listeners=[this._listeners,s]):this._listeners.push(s):((c=(l=this._options)==null?void 0:l.onWillAddFirstListener)==null||c.call(l,this),this._listeners=s,(h=(u=this._options)==null?void 0:u.onDidAddFirstListener)==null||h.call(u,this)),this._size++;const o=lt(()=>{r==null||r(),this._removeListener(s)});return i instanceof be?i.add(o):Array.isArray(i)&&i.push(o),o}),this._event}_removeListener(e){var r,o,a,l;if((o=(r=this._options)==null?void 0:r.onWillRemoveListener)==null||o.call(r,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(l=(a=this._options)==null?void 0:a.onDidRemoveLastListener)==null||l.call(a,this),this._size=0;return}const t=this._listeners,i=t.indexOf(e);if(i===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[i]=void 0;const s=this._deliveryQueue.current===this;if(this._size*Mlt<=t.length){let c=0;for(let u=0;u<t.length;u++)t[u]?t[c++]=t[u]:s&&(this._deliveryQueue.end--,c<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=c}}_deliver(e,t){var s;if(!e)return;const i=((s=this._options)==null?void 0:s.onListenerError)||Nt;if(!i){e.value(t);return}try{e.value(t)}catch(r){i(r)}}_deliverQueue(e){const t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){var t,i,s,r;if((t=this._deliveryQueue)!=null&&t.current&&(this._deliverQueue(this._deliveryQueue),(i=this._perfMon)==null||i.stop()),(s=this._perfMon)==null||s.start(this._size),this._listeners)if(this._listeners instanceof L7)this._deliver(this._listeners,e);else{const o=this._deliveryQueue;o.enqueue(this,e,this._listeners.length),this._deliverQueue(o)}(r=this._perfMon)==null||r.stop()}hasListeners(){return this._size>0}};const Olt=()=>new Dxe;class Dxe{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class $y extends oe{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Go,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class Nxe extends $y{constructor(e){super(e),this._delay=e.delay??100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class Flt extends oe{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e==null?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}}class Blt{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new oe({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),lt(i_(()=>{this.hasListeners&&this.unhook(t);const s=this.events.indexOf(t);this.events.splice(s,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){var t;(t=e.listener)==null||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)(e=t.listener)==null||e.dispose();this.events=[]}}class xN{constructor(){this.data=[]}wrapEvent(e,t,i){return(s,r,o)=>e(a=>{const l=this.data[this.data.length-1];if(!t){l?l.buffers.push(()=>s.call(r,a)):s.call(r,a);return}const c=l;if(!c){s.call(r,t(i,a));return}c.items??(c.items=[]),c.items.push(a),c.buffers.length===0&&l.buffers.push(()=>{c.reducedResult??(c.reducedResult=i?c.items.reduce(t,i):c.items.reduce(t)),s.call(r,c.reducedResult)})},void 0,o)}bufferEvents(e){const t={buffers:new Array};this.data.push(t);const i=e();return this.data.pop(),t.buffers.forEach(s=>s()),i}}class Jce{constructor(){this.listening=!1,this.inputEvent=Oe.None,this.inputEventListener=ue.None,this.emitter=new oe({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const Axe=Object.freeze(function(n,e){const t=setTimeout(n.bind(e),0);return{dispose(){clearTimeout(t)}}});var Vt;(function(n){function e(t){return t===n.None||t===n.Cancelled||t instanceof nM?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}n.isCancellationToken=e,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Oe.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Axe})})(Vt||(Vt={}));class nM{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Axe:(this._emitter||(this._emitter=new oe),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let Wn=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new nM),this._token}cancel(){this._token?this._token instanceof nM&&this._token.cancel():this._token=Vt.Cancelled}dispose(e=!1){var t;e&&this.cancel(),(t=this._parentListener)==null||t.dispose(),this._token?this._token instanceof nM&&this._token.dispose():this._token=Vt.None}};function nz(n){const e=new Wn;return n.add({dispose(){e.cancel()}}),e.token}const Pxe=Symbol("MicrotaskDelay");function sz(n){return!!n&&typeof n.then=="function"}function tr(n){const e=new Wn,t=n(e.token),i=new Promise((s,r)=>{const o=e.token.onCancellationRequested(()=>{o.dispose(),r(new Hu)});Promise.resolve(t).then(a=>{o.dispose(),e.dispose(),s(a)},a=>{o.dispose(),e.dispose(),r(a)})});return new class{cancel(){e.cancel(),e.dispose()}then(s,r){return i.then(s,r)}catch(s){return this.then(void 0,s)}finally(s){return i.finally(s)}}}function LN(n,e,t){return new Promise((i,s)=>{const r=e.onCancellationRequested(()=>{r.dispose(),i(t)});n.then(i,s).finally(()=>r.dispose())})}class Wlt{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(s=>{this.activePromise=null,t(s)},s=>{this.activePromise=null,i(s)})})}dispose(){this.isDisposed=!0}}const Vlt=(n,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},n);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},Hlt=n=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,n())}),{isTriggered:()=>e,dispose:()=>{e=!1}}};class $u{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((s,r)=>{this.doResolve=s,this.doReject=r}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const s=this.task;return this.task=null,s()}}));const i=()=>{var s;this.deferred=null,(s=this.doResolve)==null||s.call(this,null)};return this.deferred=t===Pxe?Hlt(i):Vlt(t,i),this.completionPromise}isTriggered(){var e;return!!((e=this.deferred)!=null&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)==null||e.call(this,new Hu),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)==null||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class Rxe{constructor(e){this.delayer=new $u(e),this.throttler=new Wlt}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function Uf(n,e){return e?new Promise((t,i)=>{const s=setTimeout(()=>{r.dispose(),t()},n),r=e.onCancellationRequested(()=>{clearTimeout(s),r.dispose(),i(new Hu)})}):tr(t=>Uf(n,t))}function n_(n,e=0,t){const i=setTimeout(()=>{n(),t&&s.dispose()},e),s=lt(()=>{clearTimeout(i),t==null||t.deleteAndLeak(s)});return t==null||t.add(s),s}function _ee(n,e=i=>!!i,t=null){let i=0;const s=n.length,r=()=>{if(i>=s)return Promise.resolve(t);const o=n[i++];return Promise.resolve(o()).then(l=>e(l)?Promise.resolve(l):r())};return r()}class Zu{constructor(e,t){this._isDisposed=!1,this._token=-1,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){if(this._isDisposed)throw new Li("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new Li("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class vee{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){var e;(e=this.disposable)==null||e.dispose(),this.disposable=void 0}cancelAndSet(e,t,i=globalThis){if(this.isDisposed)throw new Li("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const s=i.setInterval(()=>{e()},t);this.disposable=lt(()=>{i.clearInterval(s),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}class ji{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)==null||e.call(this)}}let Mxe,kk;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?kk=(n,e)=>{Lxe(()=>{if(t)return;const i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let t=!1;return{dispose(){t||(t=!0)}}}:kk=(n,e,t)=>{const i=n.requestIdleCallback(e,typeof t=="number"?{timeout:t}:void 0);let s=!1;return{dispose(){s||(s=!0,n.cancelIdleCallback(i))}}},Mxe=n=>kk(globalThis,n)})();class Oxe{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(i){this._error=i}finally{this._didRun=!0}},this._handle=kk(e,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class $lt extends Oxe{constructor(e){super(globalThis,e)}}class rL{get isRejected(){var e;return((e=this.outcome)==null?void 0:e.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new Hu)}}var rz;(function(n){async function e(i){let s;const r=await Promise.all(i.map(o=>o.then(a=>a,a=>{s||(s=a)})));if(typeof s<"u")throw s;return r}n.settled=e;function t(i){return new Promise(async(s,r)=>{try{await i(s,r)}catch(o){r(o)}})}n.withAsyncBody=t})(rz||(rz={}));const Ya=class Ya{static fromArray(e){return new Ya(t=>{t.emitMany(e)})}static fromPromise(e){return new Ya(async t=>{t.emitMany(await e)})}static fromPromises(e){return new Ya(async t=>{await Promise.all(e.map(async i=>t.emitOne(await i)))})}static merge(e){return new Ya(async t=>{await Promise.all(e.map(async i=>{for await(const s of i)t.emitOne(s)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new oe,queueMicrotask(async()=>{const i={emitOne:s=>this.emitOne(s),emitMany:s=>this.emitMany(s),reject:s=>this.reject(s)};try{await Promise.resolve(e(i)),this.resolve()}catch(s){this.reject(s)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(this._state===1)return{done:!0,value:void 0};await Oe.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>{var t;return(t=this._onReturn)==null||t.call(this),{done:!0,value:void 0}}}}static map(e,t){return new Ya(async i=>{for await(const s of e)i.emitOne(t(s))})}map(e){return Ya.map(this,e)}static filter(e,t){return new Ya(async i=>{for await(const s of e)t(s)&&i.emitOne(s)})}filter(e){return Ya.filter(this,e)}static coalesce(e){return Ya.filter(e,t=>!!t)}coalesce(){return Ya.coalesce(this)}static async toPromise(e){const t=[];for await(const i of e)t.push(i);return t}toPromise(){return Ya.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}};Ya.EMPTY=Ya.fromArray([]);let ec=Ya;class zlt extends ec{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function Ult(n){const e=new Wn,t=n(e.token);return new zlt(e,async i=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),e.dispose(),i.reject(new Hu)});try{for await(const r of t){if(e.token.isCancellationRequested)return;i.emitOne(r)}s.dispose(),e.dispose()}catch(r){s.dispose(),e.dispose(),i.reject(r)}})}/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries:Fxe,setPrototypeOf:eue,isFrozen:jlt,getPrototypeOf:qlt,getOwnPropertyDescriptor:Klt}=Object;let{freeze:vl,seal:Xh,create:Glt}=Object,{apply:oz,construct:az}=typeof Reflect<"u"&&Reflect;oz||(oz=function(e,t,i){return e.apply(t,i)});vl||(vl=function(e){return e});Xh||(Xh=function(e){return e});az||(az=function(e,t){return new e(...t)});const Xlt=zu(Array.prototype.forEach),tue=zu(Array.prototype.pop),iE=zu(Array.prototype.push),sM=zu(String.prototype.toLowerCase),E7=zu(String.prototype.toString),Ylt=zu(String.prototype.match),th=zu(String.prototype.replace),Zlt=zu(String.prototype.indexOf),Qlt=zu(String.prototype.trim),Sc=zu(RegExp.prototype.test),nE=Jlt(TypeError);function zu(n){return function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];return oz(n,e,i)}}function Jlt(n){return function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return az(n,t)}}function Ui(n,e,t){var i;t=(i=t)!==null&&i!==void 0?i:sM,eue&&eue(n,null);let s=e.length;for(;s--;){let r=e[s];if(typeof r=="string"){const o=t(r);o!==r&&(jlt(e)||(e[s]=o),r=o)}n[r]=!0}return n}function ew(n){const e=Glt(null);for(const[t,i]of Fxe(n))e[t]=i;return e}function oP(n,e){for(;n!==null;){const i=Klt(n,e);if(i){if(i.get)return zu(i.get);if(typeof i.value=="function")return zu(i.value)}n=qlt(n)}function t(i){return console.warn("fallback value for",i),null}return t}const iue=vl(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),k7=vl(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),I7=vl(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),ect=vl(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),T7=vl(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),tct=vl(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),nue=vl(["#text"]),sue=vl(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),D7=vl(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),rue=vl(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),aP=vl(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),ict=Xh(/\{\{[\w\W]*|[\w\W]*\}\}/gm),nct=Xh(/<%[\w\W]*|[\w\W]*%>/gm),sct=Xh(/\${[\w\W]*}/gm),rct=Xh(/^data-[\-\w.\u00B7-\uFFFF]/),oct=Xh(/^aria-[\-\w]+$/),Bxe=Xh(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),act=Xh(/^(?:\w+script|data):/i),lct=Xh(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Wxe=Xh(/^html$/i);var oue=Object.freeze({__proto__:null,MUSTACHE_EXPR:ict,ERB_EXPR:nct,TMPLIT_EXPR:sct,DATA_ATTR:rct,ARIA_ATTR:oct,IS_ALLOWED_URI:Bxe,IS_SCRIPT_OR_DATA:act,ATTR_WHITESPACE:lct,DOCTYPE_NAME:Wxe});const cct=()=>typeof window>"u"?null:window,uct=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null;const s="data-tt-policy-suffix";t&&t.hasAttribute(s)&&(i=t.getAttribute(s));const r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function Vxe(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:cct();const e=Mt=>Vxe(Mt);if(e.version="3.0.5",e.removed=[],!n||!n.document||n.document.nodeType!==9)return e.isSupported=!1,e;const t=n.document,i=t.currentScript;let{document:s}=n;const{DocumentFragment:r,HTMLTemplateElement:o,Node:a,Element:l,NodeFilter:c,NamedNodeMap:u=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:h,DOMParser:d,trustedTypes:f}=n,p=l.prototype,g=oP(p,"cloneNode"),m=oP(p,"nextSibling"),_=oP(p,"childNodes"),b=oP(p,"parentNode");if(typeof o=="function"){const Mt=s.createElement("template");Mt.content&&Mt.content.ownerDocument&&(s=Mt.content.ownerDocument)}let w,C="";const{implementation:S,createNodeIterator:x,createDocumentFragment:k,getElementsByTagName:L}=s,{importNode:E}=t;let A={};e.isSupported=typeof Fxe=="function"&&typeof b=="function"&&S&&S.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:I,ERB_EXPR:T,TMPLIT_EXPR:N,DATA_ATTR:M,ARIA_ATTR:V,IS_SCRIPT_OR_DATA:W,ATTR_WHITESPACE:B}=oue;let{IS_ALLOWED_URI:$}=oue,Y=null;const le=Ui({},[...iue,...k7,...I7,...T7,...nue]);let re=null;const z=Ui({},[...sue,...D7,...rue,...aP]);let K=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Z=null,j=null,ce=!0,ie=!0,de=!1,Le=!0,Te=!1,ve=!1,Ke=!1,Q=!1,ne=!1,xe=!1,He=!1,Re=!0,Fe=!1;const Ye="user-content-";let he=!0,te=!1,ee={},R=null;const F=Ui({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let q=null;const G=Ui({},["audio","video","img","source","image","track"]);let pe=null;const _e=Ui({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),De="http://www.w3.org/1998/Math/MathML",ze="http://www.w3.org/2000/svg",Ze="http://www.w3.org/1999/xhtml";let tt=Ze,Tt=!1,It=null;const rt=Ui({},[De,ze,Ze],E7);let Rt;const si=["application/xhtml+xml","text/html"],Jn="text/html";let oi,Zi=null;const Ar=s.createElement("form"),_s=function(Se){return Se instanceof RegExp||Se instanceof Function},mr=function(Se){if(!(Zi&&Zi===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=ew(Se),Rt=si.indexOf(Se.PARSER_MEDIA_TYPE)===-1?Rt=Jn:Rt=Se.PARSER_MEDIA_TYPE,oi=Rt==="application/xhtml+xml"?E7:sM,Y="ALLOWED_TAGS"in Se?Ui({},Se.ALLOWED_TAGS,oi):le,re="ALLOWED_ATTR"in Se?Ui({},Se.ALLOWED_ATTR,oi):z,It="ALLOWED_NAMESPACES"in Se?Ui({},Se.ALLOWED_NAMESPACES,E7):rt,pe="ADD_URI_SAFE_ATTR"in Se?Ui(ew(_e),Se.ADD_URI_SAFE_ATTR,oi):_e,q="ADD_DATA_URI_TAGS"in Se?Ui(ew(G),Se.ADD_DATA_URI_TAGS,oi):G,R="FORBID_CONTENTS"in Se?Ui({},Se.FORBID_CONTENTS,oi):F,Z="FORBID_TAGS"in Se?Ui({},Se.FORBID_TAGS,oi):{},j="FORBID_ATTR"in Se?Ui({},Se.FORBID_ATTR,oi):{},ee="USE_PROFILES"in Se?Se.USE_PROFILES:!1,ce=Se.ALLOW_ARIA_ATTR!==!1,ie=Se.ALLOW_DATA_ATTR!==!1,de=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,Le=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Te=Se.SAFE_FOR_TEMPLATES||!1,ve=Se.WHOLE_DOCUMENT||!1,ne=Se.RETURN_DOM||!1,xe=Se.RETURN_DOM_FRAGMENT||!1,He=Se.RETURN_TRUSTED_TYPE||!1,Q=Se.FORCE_BODY||!1,Re=Se.SANITIZE_DOM!==!1,Fe=Se.SANITIZE_NAMED_PROPS||!1,he=Se.KEEP_CONTENT!==!1,te=Se.IN_PLACE||!1,$=Se.ALLOWED_URI_REGEXP||Bxe,tt=Se.NAMESPACE||Ze,K=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&_s(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(K.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&_s(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(K.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(K.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Te&&(ie=!1),xe&&(ne=!0),ee&&(Y=Ui({},[...nue]),re=[],ee.html===!0&&(Ui(Y,iue),Ui(re,sue)),ee.svg===!0&&(Ui(Y,k7),Ui(re,D7),Ui(re,aP)),ee.svgFilters===!0&&(Ui(Y,I7),Ui(re,D7),Ui(re,aP)),ee.mathMl===!0&&(Ui(Y,T7),Ui(re,rue),Ui(re,aP))),Se.ADD_TAGS&&(Y===le&&(Y=ew(Y)),Ui(Y,Se.ADD_TAGS,oi)),Se.ADD_ATTR&&(re===z&&(re=ew(re)),Ui(re,Se.ADD_ATTR,oi)),Se.ADD_URI_SAFE_ATTR&&Ui(pe,Se.ADD_URI_SAFE_ATTR,oi),Se.FORBID_CONTENTS&&(R===F&&(R=ew(R)),Ui(R,Se.FORBID_CONTENTS,oi)),he&&(Y["#text"]=!0),ve&&Ui(Y,["html","head","body"]),Y.table&&(Ui(Y,["tbody"]),delete Z.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw nE('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw nE('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=Se.TRUSTED_TYPES_POLICY,C=w.createHTML("")}else w===void 0&&(w=uct(f,i)),w!==null&&typeof C=="string"&&(C=w.createHTML(""));vl&&vl(Se),Zi=Se}},Mo=Ui({},["mi","mo","mn","ms","mtext"]),Ha=Ui({},["foreignobject","desc","title","annotation-xml"]),Oo=Ui({},["title","style","font","a","script"]),pa=Ui({},k7);Ui(pa,I7),Ui(pa,ect);const Ys=Ui({},T7);Ui(Ys,tct);const Il=function(Se){let st=b(Se);(!st||!st.tagName)&&(st={namespaceURI:tt,tagName:"template"});const dt=sM(Se.tagName),cn=sM(st.tagName);return It[Se.namespaceURI]?Se.namespaceURI===ze?st.namespaceURI===Ze?dt==="svg":st.namespaceURI===De?dt==="svg"&&(cn==="annotation-xml"||Mo[cn]):!!pa[dt]:Se.namespaceURI===De?st.namespaceURI===Ze?dt==="math":st.namespaceURI===ze?dt==="math"&&Ha[cn]:!!Ys[dt]:Se.namespaceURI===Ze?st.namespaceURI===ze&&!Ha[cn]||st.namespaceURI===De&&!Mo[cn]?!1:!Ys[dt]&&(Oo[dt]||!pa[dt]):!!(Rt==="application/xhtml+xml"&&It[Se.namespaceURI]):!1},Xr=function(Se){iE(e.removed,{element:Se});try{Se.parentNode.removeChild(Se)}catch{Se.remove()}},Tl=function(Se,st){try{iE(e.removed,{attribute:st.getAttributeNode(Se),from:st})}catch{iE(e.removed,{attribute:null,from:st})}if(st.removeAttribute(Se),Se==="is"&&!re[Se])if(ne||xe)try{Xr(st)}catch{}else try{st.setAttribute(Se,"")}catch{}},$a=function(Se){let st,dt;if(Q)Se="<remove></remove>"+Se;else{const ga=Ylt(Se,/^[\r\n\t ]+/);dt=ga&&ga[0]}Rt==="application/xhtml+xml"&&tt===Ze&&(Se='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Se+"</body></html>");const cn=w?w.createHTML(Se):Se;if(tt===Ze)try{st=new d().parseFromString(cn,Rt)}catch{}if(!st||!st.documentElement){st=S.createDocument(tt,"template",null);try{st.documentElement.innerHTML=Tt?C:cn}catch{}}const ar=st.body||st.documentElement;return Se&&dt&&ar.insertBefore(s.createTextNode(dt),ar.childNodes[0]||null),tt===Ze?L.call(st,ve?"html":"body")[0]:ve?st.documentElement:ar},bd=function(Se){return x.call(Se.ownerDocument||Se,Se,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},z_=function(Se){return Se instanceof h&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof u)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},yd=function(Se){return typeof a=="object"?Se instanceof a:Se&&typeof Se=="object"&&typeof Se.nodeType=="number"&&typeof Se.nodeName=="string"},za=function(Se,st,dt){A[Se]&&Xlt(A[Se],cn=>{cn.call(e,st,dt,Zi)})},We=function(Se){let st;if(za("beforeSanitizeElements",Se,null),z_(Se))return Xr(Se),!0;const dt=oi(Se.nodeName);if(za("uponSanitizeElement",Se,{tagName:dt,allowedTags:Y}),Se.hasChildNodes()&&!yd(Se.firstElementChild)&&(!yd(Se.content)||!yd(Se.content.firstElementChild))&&Sc(/<[/\w]/g,Se.innerHTML)&&Sc(/<[/\w]/g,Se.textContent))return Xr(Se),!0;if(!Y[dt]||Z[dt]){if(!Z[dt]&&Fi(dt)&&(K.tagNameCheck instanceof RegExp&&Sc(K.tagNameCheck,dt)||K.tagNameCheck instanceof Function&&K.tagNameCheck(dt)))return!1;if(he&&!R[dt]){const cn=b(Se)||Se.parentNode,ar=_(Se)||Se.childNodes;if(ar&&cn){const ga=ar.length;for(let Ds=ga-1;Ds>=0;--Ds)cn.insertBefore(g(ar[Ds],!0),m(Se))}}return Xr(Se),!0}return Se instanceof l&&!Il(Se)||(dt==="noscript"||dt==="noembed"||dt==="noframes")&&Sc(/<\/no(script|embed|frames)/i,Se.innerHTML)?(Xr(Se),!0):(Te&&Se.nodeType===3&&(st=Se.textContent,st=th(st,I," "),st=th(st,T," "),st=th(st,N," "),Se.textContent!==st&&(iE(e.removed,{element:Se.cloneNode()}),Se.textContent=st)),za("afterSanitizeElements",Se,null),!1)},_t=function(Se,st,dt){if(Re&&(st==="id"||st==="name")&&(dt in s||dt in Ar))return!1;if(!(ie&&!j[st]&&Sc(M,st))){if(!(ce&&Sc(V,st))){if(!re[st]||j[st]){if(!(Fi(Se)&&(K.tagNameCheck instanceof RegExp&&Sc(K.tagNameCheck,Se)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Se))&&(K.attributeNameCheck instanceof RegExp&&Sc(K.attributeNameCheck,st)||K.attributeNameCheck instanceof Function&&K.attributeNameCheck(st))||st==="is"&&K.allowCustomizedBuiltInElements&&(K.tagNameCheck instanceof RegExp&&Sc(K.tagNameCheck,dt)||K.tagNameCheck instanceof Function&&K.tagNameCheck(dt))))return!1}else if(!pe[st]){if(!Sc($,th(dt,B,""))){if(!((st==="src"||st==="xlink:href"||st==="href")&&Se!=="script"&&Zlt(dt,"data:")===0&&q[Se])){if(!(de&&!Sc(W,th(dt,B,"")))){if(dt)return!1}}}}}}return!0},Fi=function(Se){return Se.indexOf("-")>0},Ln=function(Se){let st,dt,cn,ar;za("beforeSanitizeAttributes",Se,null);const{attributes:ga}=Se;if(!ga)return;const Ds={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:re};for(ar=ga.length;ar--;){st=ga[ar];const{name:hu,namespaceURI:DL}=st;if(dt=hu==="value"?st.value:Qlt(st.value),cn=oi(hu),Ds.attrName=cn,Ds.attrValue=dt,Ds.keepAttr=!0,Ds.forceKeepAttr=void 0,za("uponSanitizeAttribute",Se,Ds),dt=Ds.attrValue,Ds.forceKeepAttr||(Tl(hu,Se),!Ds.keepAttr))continue;if(!Le&&Sc(/\/>/i,dt)){Tl(hu,Se);continue}Te&&(dt=th(dt,I," "),dt=th(dt,T," "),dt=th(dt,N," "));const uA=oi(Se.nodeName);if(_t(uA,cn,dt)){if(Fe&&(cn==="id"||cn==="name")&&(Tl(hu,Se),dt=Ye+dt),w&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!DL)switch(f.getAttributeType(uA,cn)){case"TrustedHTML":{dt=w.createHTML(dt);break}case"TrustedScriptURL":{dt=w.createScriptURL(dt);break}}try{DL?Se.setAttributeNS(DL,hu,dt):Se.setAttribute(hu,dt),tue(e.removed)}catch{}}}za("afterSanitizeAttributes",Se,null)},Dl=function Mt(Se){let st;const dt=bd(Se);for(za("beforeSanitizeShadowDOM",Se,null);st=dt.nextNode();)za("uponSanitizeShadowNode",st,null),!We(st)&&(st.content instanceof r&&Mt(st.content),Ln(st));za("afterSanitizeShadowDOM",Se,null)};return e.sanitize=function(Mt){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},st,dt,cn,ar;if(Tt=!Mt,Tt&&(Mt="<!-->"),typeof Mt!="string"&&!yd(Mt))if(typeof Mt.toString=="function"){if(Mt=Mt.toString(),typeof Mt!="string")throw nE("dirty is not a string, aborting")}else throw nE("toString is not a function");if(!e.isSupported)return Mt;if(Ke||mr(Se),e.removed=[],typeof Mt=="string"&&(te=!1),te){if(Mt.nodeName){const hu=oi(Mt.nodeName);if(!Y[hu]||Z[hu])throw nE("root node is forbidden and cannot be sanitized in-place")}}else if(Mt instanceof a)st=$a("<!---->"),dt=st.ownerDocument.importNode(Mt,!0),dt.nodeType===1&&dt.nodeName==="BODY"||dt.nodeName==="HTML"?st=dt:st.appendChild(dt);else{if(!ne&&!Te&&!ve&&Mt.indexOf("<")===-1)return w&&He?w.createHTML(Mt):Mt;if(st=$a(Mt),!st)return ne?null:He?C:""}st&&Q&&Xr(st.firstChild);const ga=bd(te?Mt:st);for(;cn=ga.nextNode();)We(cn)||(cn.content instanceof r&&Dl(cn.content),Ln(cn));if(te)return Mt;if(ne){if(xe)for(ar=k.call(st.ownerDocument);st.firstChild;)ar.appendChild(st.firstChild);else ar=st;return(re.shadowroot||re.shadowrootmode)&&(ar=E.call(t,ar,!0)),ar}let Ds=ve?st.outerHTML:st.innerHTML;return ve&&Y["!doctype"]&&st.ownerDocument&&st.ownerDocument.doctype&&st.ownerDocument.doctype.name&&Sc(Wxe,st.ownerDocument.doctype.name)&&(Ds="<!DOCTYPE "+st.ownerDocument.doctype.name+`> +`+Ds),Te&&(Ds=th(Ds,I," "),Ds=th(Ds,T," "),Ds=th(Ds,N," ")),w&&He?w.createHTML(Ds):Ds},e.setConfig=function(Mt){mr(Mt),Ke=!0},e.clearConfig=function(){Zi=null,Ke=!1},e.isValidAttribute=function(Mt,Se,st){Zi||mr({});const dt=oi(Mt),cn=oi(Se);return _t(dt,cn,st)},e.addHook=function(Mt,Se){typeof Se=="function"&&(A[Mt]=A[Mt]||[],iE(A[Mt],Se))},e.removeHook=function(Mt){if(A[Mt])return tue(A[Mt])},e.removeHooks=function(Mt){A[Mt]&&(A[Mt]=[])},e.removeAllHooks=function(){A={}},e}var tp=Vxe();tp.version;tp.isSupported;const Hxe=tp.sanitize;tp.setConfig;tp.clearConfig;tp.isValidAttribute;const $xe=tp.addHook,zxe=tp.removeHook;tp.removeHooks;tp.removeAllHooks;function Uxe(n){return n}class hct{constructor(e,t){this.lastCache=void 0,this.lastArgKey=void 0,typeof e=="function"?(this._fn=e,this._computeKey=Uxe):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}}class aue{get cachedValues(){return this._map}constructor(e,t){this._map=new Map,this._map2=new Map,typeof e=="function"?(this._fn=e,this._computeKey=Uxe):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);if(this._map2.has(t))return this._map2.get(t);const i=this._fn(e);return this._map.set(e,i),this._map2.set(t,i),i}}class Yh{constructor(e){this.executor=e,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}function jxe(n){return!n||typeof n!="string"?!0:n.trim().length===0}const dct=/{(\d+)}/g;function zy(n,...e){return e.length===0?n:n.replace(dct,function(t,i){const s=parseInt(i,10);return isNaN(s)||s<0||s>=e.length?t:e[s]})}function fct(n){return n.replace(/[<>"'&]/g,e=>{switch(e){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return e})}function Ik(n){return n.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function dc(n){return n.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function pct(n,e=" "){const t=EN(n,e);return qxe(t,e)}function EN(n,e){if(!n||!e)return n;const t=e.length;if(t===0||n.length===0)return n;let i=0;for(;n.indexOf(e,i)===i;)i=i+t;return n.substring(i)}function qxe(n,e){if(!n||!e)return n;const t=e.length,i=n.length;if(t===0||i===0)return n;let s=i,r=-1;for(;r=n.lastIndexOf(e,s-1),!(r===-1||r+t!==s);){if(r===0)return"";s=r}return n.substring(0,s)}function gct(n){return n.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function mct(n){return n.replace(/\*/g,"")}function Kxe(n,e,t={}){if(!n)throw new Error("Cannot create regex from empty string");e||(n=dc(n)),t.wholeWord&&(/\B/.test(n.charAt(0))||(n="\\b"+n),/\B/.test(n.charAt(n.length-1))||(n=n+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(n,i)}function _ct(n){return n.source==="^"||n.source==="^$"||n.source==="$"||n.source==="^\\s*$"?!1:!!(n.exec("")&&n.lastIndex===0)}function ip(n){return n.split(/\r\n|\r|\n/)}function vct(n){const e=[],t=n.split(/(\r\n|\r|\n)/);for(let i=0;i<Math.ceil(t.length/2);i++)e.push(t[2*i]+(t[2*i+1]??""));return e}function Io(n){for(let e=0,t=n.length;e<t;e++){const i=n.charCodeAt(e);if(i!==32&&i!==9)return e}return-1}function Xi(n,e=0,t=n.length){for(let i=e;i<t;i++){const s=n.charCodeAt(i);if(s!==32&&s!==9)return n.substring(e,i)}return n.substring(e,t)}function Fh(n,e=n.length-1){for(let t=e;t>=0;t--){const i=n.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function mT(n,e){return n<e?-1:n>e?1:0}function bee(n,e,t=0,i=n.length,s=0,r=e.length){for(;t<i&&s<r;t++,s++){const l=n.charCodeAt(t),c=e.charCodeAt(s);if(l<c)return-1;if(l>c)return 1}const o=i-t,a=r-s;return o<a?-1:o>a?1:0}function lz(n,e){return kN(n,e,0,n.length,0,e.length)}function kN(n,e,t=0,i=n.length,s=0,r=e.length){for(;t<i&&s<r;t++,s++){let l=n.charCodeAt(t),c=e.charCodeAt(s);if(l===c)continue;if(l>=128||c>=128)return bee(n.toLowerCase(),e.toLowerCase(),t,i,s,r);n1(l)&&(l-=32),n1(c)&&(c-=32);const u=l-c;if(u!==0)return u}const o=i-t,a=r-s;return o<a?-1:o>a?1:0}function lP(n){return n>=48&&n<=57}function n1(n){return n>=97&&n<=122}function Yd(n){return n>=65&&n<=90}function Vw(n,e){return n.length===e.length&&kN(n,e)===0}function yee(n,e){const t=e.length;return e.length>n.length?!1:kN(n,e,0,t)===0}function s_(n,e){const t=Math.min(n.length,e.length);let i;for(i=0;i<t;i++)if(n.charCodeAt(i)!==e.charCodeAt(i))return i;return t}function sF(n,e){const t=Math.min(n.length,e.length);let i;const s=n.length-1,r=e.length-1;for(i=0;i<t;i++)if(n.charCodeAt(s-i)!==e.charCodeAt(r-i))return i;return t}function Js(n){return 55296<=n&&n<=56319}function Uy(n){return 56320<=n&&n<=57343}function wee(n,e){return(n-55296<<10)+(e-56320)+65536}function rF(n,e,t){const i=n.charCodeAt(t);if(Js(i)&&t+1<e){const s=n.charCodeAt(t+1);if(Uy(s))return wee(i,s)}return i}function bct(n,e){const t=n.charCodeAt(e-1);if(Uy(t)&&e>1){const i=n.charCodeAt(e-2);if(Js(i))return wee(i,t)}return t}class Cee{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=bct(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=rF(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class oF{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new Cee(e,t)}nextGraphemeLength(){const e=aF.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const r=t.offset,o=e.getGraphemeBreakType(t.nextCodePoint());if(lue(s,o)){t.setOffset(r);break}s=o}return t.offset-i}prevGraphemeLength(){const e=aF.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const r=t.offset,o=e.getGraphemeBreakType(t.prevCodePoint());if(lue(o,s)){t.setOffset(r);break}s=o}return i-t.offset}eol(){return this._iterator.eol()}}function See(n,e){return new oF(n,e).nextGraphemeLength()}function Gxe(n,e){return new oF(n,e).prevGraphemeLength()}function yct(n,e){e>0&&Uy(n.charCodeAt(e))&&e--;const t=e+See(n,e);return[t-Gxe(n,t),t]}let N7;function wct(){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])/}function KS(n){return N7||(N7=wct()),N7.test(n)}const Cct=/^[\t\n\r\x20-\x7E]*$/;function IN(n){return Cct.test(n)}const Xxe=/[\u2028\u2029]/;function Yxe(n){return Xxe.test(n)}function r_(n){return n>=11904&&n<=55215||n>=63744&&n<=64255||n>=65281&&n<=65374}function xee(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}const Sct="\uFEFF";function Lee(n){return!!(n&&n.length>0&&n.charCodeAt(0)===65279)}function xct(n,e=!1){return n?(e&&(n=n.replace(/\\./g,"")),n.toLowerCase()!==n):!1}function Zxe(n){return n=n%(2*26),n<26?String.fromCharCode(97+n):String.fromCharCode(65+n-26)}function lue(n,e){return n===0?e!==5&&e!==7:n===2&&e===3?!1:n===4||n===2||n===3||e===4||e===2||e===3?!0:!(n===8&&(e===8||e===9||e===11||e===12)||(n===11||n===9)&&(e===9||e===10)||(n===12||n===10)&&e===10||e===5||e===13||e===7||n===1||n===13&&e===14||n===6&&e===6)}const Hv=class Hv{static getInstance(){return Hv._INSTANCE||(Hv._INSTANCE=new Hv),Hv._INSTANCE}constructor(){this._data=Lct()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let s=1;for(;s<=i;)if(e<t[3*s])s=2*s;else if(e>t[3*s+1])s=2*s+1;else return t[3*s+2];return 0}};Hv._INSTANCE=null;let aF=Hv;function Lct(){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]")}function Ect(n,e){if(n===0)return 0;const t=kct(n,e);if(t!==void 0)return t;const i=new Cee(e,n);return i.prevCodePoint(),i.offset}function kct(n,e){const t=new Cee(e,n);let i=t.prevCodePoint();for(;Ict(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!xee(i))return;let s=t.offset;return s>0&&t.prevCodePoint()===8205&&(s=t.offset),s}function Ict(n){return 127995<=n&&n<=127999}const Qxe=" ",Fd=class Fd{static getInstance(e){return Fd.cache.get(Array.from(e))}static getLocales(){return Fd._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}};Fd.ambiguousCharacterData=new Yh(()=>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]}')),Fd.cache=new hct({getCacheKey:JSON.stringify},e=>{function t(u){const h=new Map;for(let d=0;d<u.length;d+=2)h.set(u[d],u[d+1]);return h}function i(u,h){const d=new Map(u);for(const[f,p]of h)d.set(f,p);return d}function s(u,h){if(!u)return h;const d=new Map;for(const[f,p]of u)h.has(f)&&d.set(f,p);return d}const r=Fd.ambiguousCharacterData.value;let o=e.filter(u=>!u.startsWith("_")&&u in r);o.length===0&&(o=["_default"]);let a;for(const u of o){const h=t(r[u]);a=s(a,h)}const l=t(r._common),c=i(l,a);return new Fd(c)}),Fd._locales=new Yh(()=>Object.keys(Fd.ambiguousCharacterData.value).filter(e=>!e.startsWith("_")));let _T=Fd;const lC=class lC{static getRawData(){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]")}static getData(){return this._data||(this._data=new Set(lC.getRawData())),this._data}static isInvisibleCharacter(e){return lC.getData().has(e)}static get codePoints(){return lC.getData()}};lC._data=void 0;let bb=lC,OC;const A7=globalThis.vscode;if(typeof A7<"u"&&typeof A7.process<"u"){const n=A7.process;OC={get platform(){return n.platform},get arch(){return n.arch},get env(){return n.env},cwd(){return n.cwd()}}}else typeof process<"u"?OC={get platform(){return process.platform},get arch(){return process.arch},get env(){return jce},cwd(){return jce.VSCODE_CWD||process.cwd()}}:OC={get platform(){return qr?"win32":ni?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const lF=OC.cwd,cz=OC.env,Tct=OC.platform,Dct=65,Nct=97,Act=90,Pct=122,C1=46,go=47,Rl=92,gm=58,Rct=63;class Jxe extends Error{constructor(e,t,i){let s;typeof t=="string"&&t.indexOf("not ")===0?(s="must not be",t=t.replace(/^not /,"")):s="must be";const r=e.indexOf(".")!==-1?"property":"argument";let o=`The "${e}" ${r} ${s} of type ${t}`;o+=`. Received type ${typeof i}`,super(o),this.code="ERR_INVALID_ARG_TYPE"}}function Mct(n,e){if(n===null||typeof n!="object")throw new Jxe(e,"Object",n)}function ur(n,e){if(typeof n!="string")throw new Jxe(e,"string",n)}const A_=Tct==="win32";function Hi(n){return n===go||n===Rl}function uz(n){return n===go}function mm(n){return n>=Dct&&n<=Act||n>=Nct&&n<=Pct}function cF(n,e,t,i){let s="",r=0,o=-1,a=0,l=0;for(let c=0;c<=n.length;++c){if(c<n.length)l=n.charCodeAt(c);else{if(i(l))break;l=go}if(i(l)){if(!(o===c-1||a===1))if(a===2){if(s.length<2||r!==2||s.charCodeAt(s.length-1)!==C1||s.charCodeAt(s.length-2)!==C1){if(s.length>2){const u=s.lastIndexOf(t);u===-1?(s="",r=0):(s=s.slice(0,u),r=s.length-1-s.lastIndexOf(t)),o=c,a=0;continue}else if(s.length!==0){s="",r=0,o=c,a=0;continue}}e&&(s+=s.length>0?`${t}..`:"..",r=2)}else s.length>0?s+=`${t}${n.slice(o+1,c)}`:s=n.slice(o+1,c),r=c-o-1;o=c,a=0}else l===C1&&a!==-1?++a:a=-1}return s}function Oct(n){return n?`${n[0]==="."?"":"."}${n}`:""}function eLe(n,e){Mct(e,"pathObject");const t=e.dir||e.root,i=e.base||`${e.name||""}${Oct(e.ext)}`;return t?t===e.root?`${t}${i}`:`${t}${n}${i}`:i}const ul={resolve(...n){let e="",t="",i=!1;for(let s=n.length-1;s>=-1;s--){let r;if(s>=0){if(r=n[s],ur(r,`paths[${s}]`),r.length===0)continue}else e.length===0?r=lF():(r=cz[`=${e}`]||lF(),(r===void 0||r.slice(0,2).toLowerCase()!==e.toLowerCase()&&r.charCodeAt(2)===Rl)&&(r=`${e}\\`));const o=r.length;let a=0,l="",c=!1;const u=r.charCodeAt(0);if(o===1)Hi(u)&&(a=1,c=!0);else if(Hi(u))if(c=!0,Hi(r.charCodeAt(1))){let h=2,d=h;for(;h<o&&!Hi(r.charCodeAt(h));)h++;if(h<o&&h!==d){const f=r.slice(d,h);for(d=h;h<o&&Hi(r.charCodeAt(h));)h++;if(h<o&&h!==d){for(d=h;h<o&&!Hi(r.charCodeAt(h));)h++;(h===o||h!==d)&&(l=`\\\\${f}\\${r.slice(d,h)}`,a=h)}}}else a=1;else mm(u)&&r.charCodeAt(1)===gm&&(l=r.slice(0,2),a=2,o>2&&Hi(r.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${r.slice(a)}\\${t}`,i=c,c&&e.length>0)break}return t=cF(t,!i,"\\",Hi),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(n){ur(n,"path");const e=n.length;if(e===0)return".";let t=0,i,s=!1;const r=n.charCodeAt(0);if(e===1)return uz(r)?"\\":n;if(Hi(r))if(s=!0,Hi(n.charCodeAt(1))){let a=2,l=a;for(;a<e&&!Hi(n.charCodeAt(a));)a++;if(a<e&&a!==l){const c=n.slice(l,a);for(l=a;a<e&&Hi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!Hi(n.charCodeAt(a));)a++;if(a===e)return`\\\\${c}\\${n.slice(l)}\\`;a!==l&&(i=`\\\\${c}\\${n.slice(l,a)}`,t=a)}}}else t=1;else mm(r)&&n.charCodeAt(1)===gm&&(i=n.slice(0,2),t=2,e>2&&Hi(n.charCodeAt(2))&&(s=!0,t=3));let o=t<e?cF(n.slice(t),!s,"\\",Hi):"";return o.length===0&&!s&&(o="."),o.length>0&&Hi(n.charCodeAt(e-1))&&(o+="\\"),i===void 0?s?`\\${o}`:o:s?`${i}\\${o}`:`${i}${o}`},isAbsolute(n){ur(n,"path");const e=n.length;if(e===0)return!1;const t=n.charCodeAt(0);return Hi(t)||e>2&&mm(t)&&n.charCodeAt(1)===gm&&Hi(n.charCodeAt(2))},join(...n){if(n.length===0)return".";let e,t;for(let r=0;r<n.length;++r){const o=n[r];ur(o,"path"),o.length>0&&(e===void 0?e=t=o:e+=`\\${o}`)}if(e===void 0)return".";let i=!0,s=0;if(typeof t=="string"&&Hi(t.charCodeAt(0))){++s;const r=t.length;r>1&&Hi(t.charCodeAt(1))&&(++s,r>2&&(Hi(t.charCodeAt(2))?++s:i=!1))}if(i){for(;s<e.length&&Hi(e.charCodeAt(s));)s++;s>=2&&(e=`\\${e.slice(s)}`)}return ul.normalize(e)},relative(n,e){if(ur(n,"from"),ur(e,"to"),n===e)return"";const t=ul.resolve(n),i=ul.resolve(e);if(t===i||(n=t.toLowerCase(),e=i.toLowerCase(),n===e))return"";let s=0;for(;s<n.length&&n.charCodeAt(s)===Rl;)s++;let r=n.length;for(;r-1>s&&n.charCodeAt(r-1)===Rl;)r--;const o=r-s;let a=0;for(;a<e.length&&e.charCodeAt(a)===Rl;)a++;let l=e.length;for(;l-1>a&&e.charCodeAt(l-1)===Rl;)l--;const c=l-a,u=o<c?o:c;let h=-1,d=0;for(;d<u;d++){const p=n.charCodeAt(s+d);if(p!==e.charCodeAt(a+d))break;p===Rl&&(h=d)}if(d!==u){if(h===-1)return i}else{if(c>u){if(e.charCodeAt(a+d)===Rl)return i.slice(a+d+1);if(d===2)return i.slice(a+d)}o>u&&(n.charCodeAt(s+d)===Rl?h=d:d===2&&(h=3)),h===-1&&(h=0)}let f="";for(d=s+h+1;d<=r;++d)(d===r||n.charCodeAt(d)===Rl)&&(f+=f.length===0?"..":"\\..");return a+=h,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===Rl&&++a,i.slice(a,l))},toNamespacedPath(n){if(typeof n!="string"||n.length===0)return n;const e=ul.resolve(n);if(e.length<=2)return n;if(e.charCodeAt(0)===Rl){if(e.charCodeAt(1)===Rl){const t=e.charCodeAt(2);if(t!==Rct&&t!==C1)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(mm(e.charCodeAt(0))&&e.charCodeAt(1)===gm&&e.charCodeAt(2)===Rl)return`\\\\?\\${e}`;return n},dirname(n){ur(n,"path");const e=n.length;if(e===0)return".";let t=-1,i=0;const s=n.charCodeAt(0);if(e===1)return Hi(s)?n:".";if(Hi(s)){if(t=i=1,Hi(n.charCodeAt(1))){let a=2,l=a;for(;a<e&&!Hi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&Hi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!Hi(n.charCodeAt(a));)a++;if(a===e)return n;a!==l&&(t=i=a+1)}}}}else mm(s)&&n.charCodeAt(1)===gm&&(t=e>2&&Hi(n.charCodeAt(2))?3:2,i=t);let r=-1,o=!0;for(let a=e-1;a>=i;--a)if(Hi(n.charCodeAt(a))){if(!o){r=a;break}}else o=!1;if(r===-1){if(t===-1)return".";r=t}return n.slice(0,r)},basename(n,e){e!==void 0&&ur(e,"suffix"),ur(n,"path");let t=0,i=-1,s=!0,r;if(n.length>=2&&mm(n.charCodeAt(0))&&n.charCodeAt(1)===gm&&(t=2),e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let o=e.length-1,a=-1;for(r=n.length-1;r>=t;--r){const l=n.charCodeAt(r);if(Hi(l)){if(!s){t=r+1;break}}else a===-1&&(s=!1,a=r+1),o>=0&&(l===e.charCodeAt(o)?--o===-1&&(i=r):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(r=n.length-1;r>=t;--r)if(Hi(n.charCodeAt(r))){if(!s){t=r+1;break}}else i===-1&&(s=!1,i=r+1);return i===-1?"":n.slice(t,i)},extname(n){ur(n,"path");let e=0,t=-1,i=0,s=-1,r=!0,o=0;n.length>=2&&n.charCodeAt(1)===gm&&mm(n.charCodeAt(0))&&(e=i=2);for(let a=n.length-1;a>=e;--a){const l=n.charCodeAt(a);if(Hi(l)){if(!r){i=a+1;break}continue}s===-1&&(r=!1,s=a+1),l===C1?t===-1?t=a:o!==1&&(o=1):t!==-1&&(o=-1)}return t===-1||s===-1||o===0||o===1&&t===s-1&&t===i+1?"":n.slice(t,s)},format:eLe.bind(null,"\\"),parse(n){ur(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.length;let i=0,s=n.charCodeAt(0);if(t===1)return Hi(s)?(e.root=e.dir=n,e):(e.base=e.name=n,e);if(Hi(s)){if(i=1,Hi(n.charCodeAt(1))){let h=2,d=h;for(;h<t&&!Hi(n.charCodeAt(h));)h++;if(h<t&&h!==d){for(d=h;h<t&&Hi(n.charCodeAt(h));)h++;if(h<t&&h!==d){for(d=h;h<t&&!Hi(n.charCodeAt(h));)h++;h===t?i=h:h!==d&&(i=h+1)}}}}else if(mm(s)&&n.charCodeAt(1)===gm){if(t<=2)return e.root=e.dir=n,e;if(i=2,Hi(n.charCodeAt(2))){if(t===3)return e.root=e.dir=n,e;i=3}}i>0&&(e.root=n.slice(0,i));let r=-1,o=i,a=-1,l=!0,c=n.length-1,u=0;for(;c>=i;--c){if(s=n.charCodeAt(c),Hi(s)){if(!l){o=c+1;break}continue}a===-1&&(l=!1,a=c+1),s===C1?r===-1?r=c:u!==1&&(u=1):r!==-1&&(u=-1)}return a!==-1&&(r===-1||u===0||u===1&&r===a-1&&r===o+1?e.base=e.name=n.slice(o,a):(e.name=n.slice(o,r),e.base=n.slice(o,a),e.ext=n.slice(r,a))),o>0&&o!==i?e.dir=n.slice(0,o-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},Fct=(()=>{if(A_){const n=/\\/g;return()=>{const e=lF().replace(n,"/");return e.slice(e.indexOf("/"))}}return()=>lF()})(),Es={resolve(...n){let e="",t=!1;for(let i=n.length-1;i>=-1&&!t;i--){const s=i>=0?n[i]:Fct();ur(s,`paths[${i}]`),s.length!==0&&(e=`${s}/${e}`,t=s.charCodeAt(0)===go)}return e=cF(e,!t,"/",uz),t?`/${e}`:e.length>0?e:"."},normalize(n){if(ur(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===go,t=n.charCodeAt(n.length-1)===go;return n=cF(n,!e,"/",uz),n.length===0?e?"/":t?"./":".":(t&&(n+="/"),e?`/${n}`:n)},isAbsolute(n){return ur(n,"path"),n.length>0&&n.charCodeAt(0)===go},join(...n){if(n.length===0)return".";let e;for(let t=0;t<n.length;++t){const i=n[t];ur(i,"path"),i.length>0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":Es.normalize(e)},relative(n,e){if(ur(n,"from"),ur(e,"to"),n===e||(n=Es.resolve(n),e=Es.resolve(e),n===e))return"";const t=1,i=n.length,s=i-t,r=1,o=e.length-r,a=s<o?s:o;let l=-1,c=0;for(;c<a;c++){const h=n.charCodeAt(t+c);if(h!==e.charCodeAt(r+c))break;h===go&&(l=c)}if(c===a)if(o>a){if(e.charCodeAt(r+c)===go)return e.slice(r+c+1);if(c===0)return e.slice(r+c)}else s>a&&(n.charCodeAt(t+c)===go?l=c:c===0&&(l=0));let u="";for(c=t+l+1;c<=i;++c)(c===i||n.charCodeAt(c)===go)&&(u+=u.length===0?"..":"/..");return`${u}${e.slice(r+l)}`},toNamespacedPath(n){return n},dirname(n){if(ur(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===go;let t=-1,i=!0;for(let s=n.length-1;s>=1;--s)if(n.charCodeAt(s)===go){if(!i){t=s;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":n.slice(0,t)},basename(n,e){e!==void 0&&ur(e,"ext"),ur(n,"path");let t=0,i=-1,s=!0,r;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let o=e.length-1,a=-1;for(r=n.length-1;r>=0;--r){const l=n.charCodeAt(r);if(l===go){if(!s){t=r+1;break}}else a===-1&&(s=!1,a=r+1),o>=0&&(l===e.charCodeAt(o)?--o===-1&&(i=r):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(r=n.length-1;r>=0;--r)if(n.charCodeAt(r)===go){if(!s){t=r+1;break}}else i===-1&&(s=!1,i=r+1);return i===-1?"":n.slice(t,i)},extname(n){ur(n,"path");let e=-1,t=0,i=-1,s=!0,r=0;for(let o=n.length-1;o>=0;--o){const a=n.charCodeAt(o);if(a===go){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===C1?e===-1?e=o:r!==1&&(r=1):e!==-1&&(r=-1)}return e===-1||i===-1||r===0||r===1&&e===i-1&&e===t+1?"":n.slice(e,i)},format:eLe.bind(null,"/"),parse(n){ur(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.charCodeAt(0)===go;let i;t?(e.root="/",i=1):i=0;let s=-1,r=0,o=-1,a=!0,l=n.length-1,c=0;for(;l>=i;--l){const u=n.charCodeAt(l);if(u===go){if(!a){r=l+1;break}continue}o===-1&&(a=!1,o=l+1),u===C1?s===-1?s=l:c!==1&&(c=1):s!==-1&&(c=-1)}if(o!==-1){const u=r===0&&t?1:r;s===-1||c===0||c===1&&s===o-1&&s===r+1?e.base=e.name=n.slice(u,o):(e.name=n.slice(u,s),e.base=n.slice(u,o),e.ext=n.slice(s,o))}return r>0?e.dir=n.slice(0,r-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};Es.win32=ul.win32=ul;Es.posix=ul.posix=Es;const tLe=A_?ul.normalize:Es.normalize,Bct=A_?ul.resolve:Es.resolve,Wct=A_?ul.relative:Es.relative,iLe=A_?ul.dirname:Es.dirname,S1=A_?ul.basename:Es.basename,Vct=A_?ul.extname:Es.extname,Bh=A_?ul.sep:Es.sep,Hct=/^\w[\w\d+.-]*$/,$ct=/^\//,zct=/^\/\//;function Uct(n,e){if(!n.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${n.authority}", path: "${n.path}", query: "${n.query}", fragment: "${n.fragment}"}`);if(n.scheme&&!Hct.test(n.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(n.path){if(n.authority){if(!$ct.test(n.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(zct.test(n.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function jct(n,e){return!n&&!e?"file":n}function qct(n,e){switch(n){case"https":case"http":case"file":e?e[0]!==vh&&(e=vh+e):e=vh;break}return e}const vs="",vh="/",Kct=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;let mt=class rM{static isUri(e){return e instanceof rM?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function":!1}constructor(e,t,i,s,r,o=!1){typeof e=="object"?(this.scheme=e.scheme||vs,this.authority=e.authority||vs,this.path=e.path||vs,this.query=e.query||vs,this.fragment=e.fragment||vs):(this.scheme=jct(e,o),this.authority=t||vs,this.path=qct(this.scheme,i||vs),this.query=s||vs,this.fragment=r||vs,Uct(this,o))}get fsPath(){return uF(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:s,query:r,fragment:o}=e;return t===void 0?t=this.scheme:t===null&&(t=vs),i===void 0?i=this.authority:i===null&&(i=vs),s===void 0?s=this.path:s===null&&(s=vs),r===void 0?r=this.query:r===null&&(r=vs),o===void 0?o=this.fragment:o===null&&(o=vs),t===this.scheme&&i===this.authority&&s===this.path&&r===this.query&&o===this.fragment?this:new tw(t,i,s,r,o)}static parse(e,t=!1){const i=Kct.exec(e);return i?new tw(i[2]||vs,cP(i[4]||vs),cP(i[5]||vs),cP(i[7]||vs),cP(i[9]||vs),t):new tw(vs,vs,vs,vs,vs)}static file(e){let t=vs;if(qr&&(e=e.replace(/\\/g,vh)),e[0]===vh&&e[1]===vh){const i=e.indexOf(vh,2);i===-1?(t=e.substring(2),e=vh):(t=e.substring(2,i),e=e.substring(i)||vh)}return new tw("file",t,e,vs,vs)}static from(e,t){return new tw(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return qr&&e.scheme==="file"?i=rM.file(ul.join(uF(e,!0),...t)).path:i=Es.join(e.path,...t),e.with({path:i})}toString(e=!1){return hz(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof rM)return e;{const t=new tw(e);return t._formatted=e.external??null,t._fsPath=e._sep===nLe?e.fsPath??null:null,t}}else return e}};const nLe=qr?1:void 0;let tw=class extends mt{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=uF(this,!1)),this._fsPath}toString(e=!1){return e?hz(this,!0):(this._formatted||(this._formatted=hz(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=nLe),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}};const sLe={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function cue(n,e,t){let i,s=-1;for(let r=0;r<n.length;r++){const o=n.charCodeAt(r);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||e&&o===47||t&&o===91||t&&o===93||t&&o===58)s!==-1&&(i+=encodeURIComponent(n.substring(s,r)),s=-1),i!==void 0&&(i+=n.charAt(r));else{i===void 0&&(i=n.substr(0,r));const a=sLe[o];a!==void 0?(s!==-1&&(i+=encodeURIComponent(n.substring(s,r)),s=-1),i+=a):s===-1&&(s=r)}}return s!==-1&&(i+=encodeURIComponent(n.substring(s))),i!==void 0?i:n}function Gct(n){let e;for(let t=0;t<n.length;t++){const i=n.charCodeAt(t);i===35||i===63?(e===void 0&&(e=n.substr(0,t)),e+=sLe[i]):e!==void 0&&(e+=n[t])}return e!==void 0?e:n}function uF(n,e){let t;return n.authority&&n.path.length>1&&n.scheme==="file"?t=`//${n.authority}${n.path}`:n.path.charCodeAt(0)===47&&(n.path.charCodeAt(1)>=65&&n.path.charCodeAt(1)<=90||n.path.charCodeAt(1)>=97&&n.path.charCodeAt(1)<=122)&&n.path.charCodeAt(2)===58?e?t=n.path.substr(1):t=n.path[1].toLowerCase()+n.path.substr(2):t=n.path,qr&&(t=t.replace(/\//g,"\\")),t}function hz(n,e){const t=e?Gct:cue;let i="",{scheme:s,authority:r,path:o,query:a,fragment:l}=n;if(s&&(i+=s,i+=":"),(r||s==="file")&&(i+=vh,i+=vh),r){let c=r.indexOf("@");if(c!==-1){const u=r.substr(0,c);r=r.substr(c+1),c=u.lastIndexOf(":"),c===-1?i+=t(u,!1,!1):(i+=t(u.substr(0,c),!1,!1),i+=":",i+=t(u.substr(c+1),!1,!0)),i+="@"}r=r.toLowerCase(),c=r.lastIndexOf(":"),c===-1?i+=t(r,!1,!0):(i+=t(r.substr(0,c),!1,!0),i+=r.substr(c))}if(o){if(o.length>=3&&o.charCodeAt(0)===47&&o.charCodeAt(2)===58){const c=o.charCodeAt(1);c>=65&&c<=90&&(o=`/${String.fromCharCode(c+32)}:${o.substr(3)}`)}else if(o.length>=2&&o.charCodeAt(1)===58){const c=o.charCodeAt(0);c>=65&&c<=90&&(o=`${String.fromCharCode(c+32)}:${o.substr(2)}`)}i+=t(o,!0,!1)}return a&&(i+="?",i+=t(a,!1,!1)),l&&(i+="#",i+=e?l:cue(l,!1,!1)),i}function rLe(n){try{return decodeURIComponent(n)}catch{return n.length>3?n.substr(0,3)+rLe(n.substr(3)):n}}const uue=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function cP(n){return n.match(uue)?n.replace(uue,e=>rLe(e)):n}var kt;(function(n){n.inMemory="inmemory",n.vscode="vscode",n.internal="private",n.walkThrough="walkThrough",n.walkThroughSnippet="walkThroughSnippet",n.http="http",n.https="https",n.file="file",n.mailto="mailto",n.untitled="untitled",n.data="data",n.command="command",n.vscodeRemote="vscode-remote",n.vscodeRemoteResource="vscode-remote-resource",n.vscodeManagedRemoteResource="vscode-managed-remote-resource",n.vscodeUserData="vscode-userdata",n.vscodeCustomEditor="vscode-custom-editor",n.vscodeNotebookCell="vscode-notebook-cell",n.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",n.vscodeNotebookCellOutput="vscode-notebook-cell-output",n.vscodeInteractiveInput="vscode-interactive-input",n.vscodeSettings="vscode-settings",n.vscodeWorkspaceTrust="vscode-workspace-trust",n.vscodeTerminal="vscode-terminal",n.vscodeChatCodeBlock="vscode-chat-code-block",n.vscodeCopilotBackingChatCodeBlock="vscode-copilot-chat-code-block",n.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",n.vscodeChatSesssion="vscode-chat-editor",n.webviewPanel="webview-panel",n.vscodeWebview="vscode-webview",n.extension="extension",n.vscodeFileResource="vscode-file",n.tmp="tmp",n.vsls="vsls",n.vscodeSourceControl="vscode-scm",n.commentsInput="comment",n.codeSetting="code-setting"})(kt||(kt={}));function Eee(n,e){return mt.isUri(n)?Vw(n.scheme,e):yee(n,e+":")}function dz(n,...e){return e.some(t=>Eee(n,t))}const Xct="tkn";class Yct{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return Es.join(this._serverRootPath,kt.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return Nt(a),e}const t=e.authority;let i=this._hosts[t];i&&i.indexOf(":")!==-1&&i.indexOf("[")===-1&&(i=`[${i}]`);const s=this._ports[t],r=this._connectionTokens[t];let o=`path=${encodeURIComponent(e.path)}`;return typeof r=="string"&&(o+=`&${Xct}=${encodeURIComponent(r)}`),mt.from({scheme:N_?this._preferredWebSchema:kt.vscodeRemoteResource,authority:`${i}:${s}`,path:this._remoteResourcesPath,query:o})}}const oLe=new Yct,Zct="vscode-app",dI=class dI{uriToBrowserUri(e){return e.scheme===kt.vscodeRemote?oLe.rewrite(e):e.scheme===kt.file&&(Oh||llt===`${kt.vscodeFileResource}://${dI.FALLBACK_AUTHORITY}`)?e.with({scheme:kt.vscodeFileResource,authority:e.authority||dI.FALLBACK_AUTHORITY,query:null,fragment:null}):e}};dI.FALLBACK_AUTHORITY=Zct;let fz=dI;const aLe=new fz;var hue;(function(n){const e=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);n.CoopAndCoep=Object.freeze(e.get("3"));const t="vscode-coi";function i(r){let o;typeof r=="string"?o=new URL(r).searchParams:r instanceof URL?o=r.searchParams:mt.isUri(r)&&(o=new URL(r.toString(!0)).searchParams);const a=o==null?void 0:o.get(t);if(a)return e.get(a)}n.getHeadersFromQuery=i;function s(r,o,a){if(!globalThis.crossOriginIsolated)return;const l=o&&a?"3":a?"2":"1";r instanceof URLSearchParams?r.set(t,l):r[t]=l}n.addSearchParam=s})(hue||(hue={}));function PB(n){return RB(n,0)}function RB(n,e){switch(typeof n){case"object":return n===null?tg(349,e):Array.isArray(n)?Jct(n,e):eut(n,e);case"string":return kee(n,e);case"boolean":return Qct(n,e);case"number":return tg(n,e);case"undefined":return tg(937,e);default:return tg(617,e)}}function tg(n,e){return(e<<5)-e+n|0}function Qct(n,e){return tg(n?433:863,e)}function kee(n,e){e=tg(149417,e);for(let t=0,i=n.length;t<i;t++)e=tg(n.charCodeAt(t),e);return e}function Jct(n,e){return e=tg(104579,e),n.reduce((t,i)=>RB(i,t),e)}function eut(n,e){return e=tg(181387,e),Object.keys(n).sort().reduce((t,i)=>(t=kee(i,t),RB(n[i],t)),e)}function P7(n,e,t=32){const i=t-e,s=~((1<<i)-1);return(n<<e|(s&n)>>>i)>>>0}function due(n,e=0,t=n.byteLength,i=0){for(let s=0;s<t;s++)n[e+s]=i}function tut(n,e,t="0"){for(;n.length<e;)n=t+n;return n}function sE(n,e=32){return n instanceof ArrayBuffer?Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,"0")).join(""):tut((n>>>0).toString(16),e/4)}const a3=class a3{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(t===0)return;const i=this._buff;let s=this._buffLen,r=this._leftoverHighSurrogate,o,a;for(r!==0?(o=r,a=-1,r=0):(o=e.charCodeAt(0),a=0);;){let l=o;if(Js(o))if(a+1<t){const c=e.charCodeAt(a+1);Uy(c)?(a++,l=wee(o,c)):l=65533}else{r=o;break}else Uy(o)&&(l=65533);if(s=this._push(i,s,l),a++,a<t)o=e.charCodeAt(a);else break}this._buffLen=s,this._leftoverHighSurrogate=r}_push(e,t,i){return i<128?e[t++]=i:i<2048?(e[t++]=192|(i&1984)>>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),sE(this._h0)+sE(this._h1)+sE(this._h2)+sE(this._h3)+sE(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,due(this._buff,this._buffLen),this._buffLen>56&&(this._step(),due(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=a3._bigBlock32,t=this._buffDV;for(let h=0;h<64;h+=4)e.setUint32(h,t.getUint32(h,!1),!1);for(let h=64;h<320;h+=4)e.setUint32(h,P7(e.getUint32(h-12,!1)^e.getUint32(h-32,!1)^e.getUint32(h-56,!1)^e.getUint32(h-64,!1),1),!1);let i=this._h0,s=this._h1,r=this._h2,o=this._h3,a=this._h4,l,c,u;for(let h=0;h<80;h++)h<20?(l=s&r|~s&o,c=1518500249):h<40?(l=s^r^o,c=1859775393):h<60?(l=s&r|s&o|r&o,c=2400959708):(l=s^r^o,c=3395469782),u=P7(i,5)+l+a+c+e.getUint32(h*4,!1)&4294967295,a=o,o=r,r=P7(s,30),s=i,i=u;this._h0=this._h0+i&4294967295,this._h1=this._h1+s&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+o&4294967295,this._h4=this._h4+a&4294967295}};a3._bigBlock32=new DataView(new ArrayBuffer(320));let pz=a3;const{registerWindow:z6t,getWindow:ut,getDocument:U6t,getWindows:lLe,getWindowsCount:iut,getWindowId:hF,getWindowById:fue,hasWindow:j6t,onDidRegisterWindow:MB,onWillUnregisterWindow:nut,onDidUnregisterWindow:sut}=function(){const n=new Map;Qat(Gi,1);const e={window:Gi,disposables:new be};n.set(Gi.vscodeWindowId,e);const t=new oe,i=new oe,s=new oe;function r(o,a){return(typeof o=="number"?n.get(o):void 0)??(a?e:void 0)}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:s.event,onDidUnregisterWindow:i.event,registerWindow(o){if(n.has(o.vscodeWindowId))return ue.None;const a=new be,l={window:o,disposables:a.add(new be)};return n.set(o.vscodeWindowId,l),a.add(lt(()=>{n.delete(o.vscodeWindowId),i.fire(o)})),a.add(ge(o,Ae.BEFORE_UNLOAD,()=>{s.fire(o)})),t.fire(l),a},getWindows(){return n.values()},getWindowsCount(){return n.size},getWindowId(o){return o.vscodeWindowId},hasWindow(o){return n.has(o)},getWindowById:r,getWindow(o){var c;const a=o;if((c=a==null?void 0:a.ownerDocument)!=null&&c.defaultView)return a.ownerDocument.defaultView.window;const l=o;return l!=null&&l.view?l.view.window:Gi},getDocument(o){return ut(o).document}}}();function kr(n){for(;n.firstChild;)n.firstChild.remove()}class rut{constructor(e,t,i,s){this._node=e,this._type=t,this._handler=i,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function ge(n,e,t,i){return new rut(n,e,t,i)}function cLe(n,e){return function(t){return e(new Iu(n,t))}}function out(n){return function(e){return n(new Ji(e))}}const os=function(e,t,i,s){let r=i;return t==="click"||t==="mousedown"||t==="contextmenu"?r=cLe(ut(e),i):(t==="keydown"||t==="keypress"||t==="keyup")&&(r=out(i)),ge(e,t,r,s)},aut=function(e,t,i){const s=cLe(ut(e),t);return lut(e,s,i)};function lut(n,e,t){return ge(n,Gh&&hee.pointerEvents?Ae.POINTER_DOWN:Ae.MOUSE_DOWN,e,t)}function BE(n,e,t){return kk(n,e,t)}class R7 extends Oxe{constructor(e,t){super(e,t)}}let dF,bl;class Iee extends vee{constructor(e){super(),this.defaultTarget=e&&ut(e)}cancelAndSet(e,t,i){return super.cancelAndSet(e,t,i??this.defaultTarget)}}class M7{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Nt(e)}}static sort(e,t){return t.priority-e.priority}}(function(){const n=new Map,e=new Map,t=new Map,i=new Map,s=r=>{t.set(r,!1);const o=n.get(r)??[];for(e.set(r,o),n.set(r,[]),i.set(r,!0);o.length>0;)o.sort(M7.sort),o.shift().execute();i.set(r,!1)};bl=(r,o,a=0)=>{const l=hF(r),c=new M7(o,a);let u=n.get(l);return u||(u=[],n.set(l,u)),u.push(c),t.get(l)||(t.set(l,!0),r.requestAnimationFrame(()=>s(l))),c},dF=(r,o,a)=>{const l=hF(r);if(i.get(l)){const c=new M7(o,a);let u=e.get(l);return u||(u=[],e.set(l,u)),u.push(c),c}else return bl(r,o,a)}})();function OB(n){return ut(n).getComputedStyle(n,null)}function o_(n,e){const t=ut(n),i=t.document;if(n!==i.body)return new Wi(n.clientWidth,n.clientHeight);if(Gh&&(t!=null&&t.visualViewport))return new Wi(t.visualViewport.width,t.visualViewport.height);if(t!=null&&t.innerWidth&&t.innerHeight)return new Wi(t.innerWidth,t.innerHeight);if(i.body&&i.body.clientWidth&&i.body.clientHeight)return new Wi(i.body.clientWidth,i.body.clientHeight);if(i.documentElement&&i.documentElement.clientWidth&&i.documentElement.clientHeight)return new Wi(i.documentElement.clientWidth,i.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class ds{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const s=OB(e),r=s?s.getPropertyValue(t):"0";return ds.convertToPixels(e,r)}static getBorderLeftWidth(e){return ds.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return ds.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return ds.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return ds.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return ds.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return ds.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return ds.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return ds.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return ds.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return ds.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return ds.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return ds.getDimension(e,"margin-bottom","marginBottom")}}const $v=class $v{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new $v(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof $v?e:new $v(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};$v.None=new $v(0,0);let Wi=$v;function uLe(n){let e=n.offsetParent,t=n.offsetTop,i=n.offsetLeft;for(;(n=n.parentNode)!==null&&n!==n.ownerDocument.body&&n!==n.ownerDocument.documentElement;){t-=n.scrollTop;const s=dLe(n)?null:OB(n);s&&(i-=s.direction!=="rtl"?n.scrollLeft:-n.scrollLeft),n===e&&(i+=ds.getBorderLeftWidth(n),t+=ds.getBorderTopWidth(n),t+=n.offsetTop,i+=n.offsetLeft,e=n.offsetParent)}return{left:i,top:t}}function cut(n,e,t){typeof e=="number"&&(n.style.width=`${e}px`),typeof t=="number"&&(n.style.height=`${t}px`)}function ps(n){const e=n.getBoundingClientRect(),t=ut(n);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function hLe(n){let e=n,t=1;do{const i=OB(e).zoom;i!=null&&i!=="1"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function Ja(n){const e=ds.getMarginLeft(n)+ds.getMarginRight(n);return n.offsetWidth+e}function O7(n){const e=ds.getBorderLeftWidth(n)+ds.getBorderRightWidth(n),t=ds.getPaddingLeft(n)+ds.getPaddingRight(n);return n.offsetWidth-e-t}function uut(n){const e=ds.getBorderTopWidth(n)+ds.getBorderBottomWidth(n),t=ds.getPaddingTop(n)+ds.getPaddingBottom(n);return n.offsetHeight-e-t}function ig(n){const e=ds.getMarginTop(n)+ds.getMarginBottom(n);return n.offsetHeight+e}function er(n,e){return!!(e!=null&&e.contains(n))}function hut(n,e,t){for(;n&&n.nodeType===n.ELEMENT_NODE;){if(n.classList.contains(e))return n;if(t){if(typeof t=="string"){if(n.classList.contains(t))return null}else if(n===t)return null}n=n.parentNode}return null}function F7(n,e,t){return!!hut(n,e,t)}function dLe(n){return n&&!!n.host&&!!n.mode}function fF(n){return!!jy(n)}function jy(n){var e;for(;n.parentNode;){if(n===((e=n.ownerDocument)==null?void 0:e.body))return null;n=n.parentNode}return dLe(n)?n:null}function zr(){let n=oL().activeElement;for(;n!=null&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function FB(n){return zr()===n}function fLe(n){return er(zr(),n)}function oL(){return iut()<=1?Gi.document:Array.from(lLe()).map(({window:e})=>e.document).find(e=>e.hasFocus())??Gi.document}function oM(){var e;return((e=oL().defaultView)==null?void 0:e.window)??Gi}const Tee=new Map;function pLe(){return new dut}class dut{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(e){e!==this._currentCssStyle&&(this._currentCssStyle=e,this._styleSheet?this._styleSheet.innerText=e:this._styleSheet=fc(Gi.document.head,t=>t.innerText=e))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function fc(n=Gi.document.head,e,t){const i=document.createElement("style");if(i.type="text/css",i.media="screen",e==null||e(i),n.appendChild(i),t&&t.add(lt(()=>i.remove())),n===Gi.document.head){const s=new Set;Tee.set(i,s);for(const{window:r,disposables:o}of lLe()){if(r===Gi)continue;const a=o.add(fut(i,s,r));t==null||t.add(a)}}return i}function fut(n,e,t){var r,o;const i=new be,s=n.cloneNode(!0);t.document.head.appendChild(s),i.add(lt(()=>s.remove()));for(const a of mLe(n))(o=s.sheet)==null||o.insertRule(a.cssText,(r=s.sheet)==null?void 0:r.cssRules.length);return i.add(put.observe(n,i,{childList:!0})(()=>{s.textContent=n.textContent})),e.add(s),i.add(lt(()=>e.delete(s))),i}const put=new class{constructor(){this.mutationObservers=new Map}observe(n,e,t){let i=this.mutationObservers.get(n);i||(i=new Map,this.mutationObservers.set(n,i));const s=PB(t);let r=i.get(s);if(r)r.users+=1;else{const o=new oe,a=new MutationObserver(c=>o.fire(c));a.observe(n,t);const l=r={users:1,observer:a,onDidMutate:o.event};e.add(lt(()=>{l.users-=1,l.users===0&&(o.dispose(),a.disconnect(),i==null||i.delete(s),(i==null?void 0:i.size)===0&&this.mutationObservers.delete(n))})),i.set(s,r)}return r.onDidMutate}};let B7=null;function gLe(){return B7||(B7=fc()),B7}function mLe(n){var e,t;return(e=n==null?void 0:n.sheet)!=null&&e.rules?n.sheet.rules:(t=n==null?void 0:n.sheet)!=null&&t.cssRules?n.sheet.cssRules:[]}function pF(n,e,t=gLe()){var i;if(!(!t||!e)){(i=t.sheet)==null||i.insertRule(`${n} {${e}}`,0);for(const s of Tee.get(t)??[])pF(n,e,s)}}function gz(n,e=gLe()){var s;if(!e)return;const t=mLe(e),i=[];for(let r=0;r<t.length;r++){const o=t[r];gut(o)&&o.selectorText.indexOf(n)!==-1&&i.push(r)}for(let r=i.length-1;r>=0;r--)(s=e.sheet)==null||s.deleteRule(i[r]);for(const r of Tee.get(e)??[])gz(n,r)}function gut(n){return typeof n.selectorText=="string"}function ir(n){return n instanceof HTMLElement||n instanceof ut(n).HTMLElement}function pue(n){return n instanceof HTMLAnchorElement||n instanceof ut(n).HTMLAnchorElement}function mut(n){return n instanceof SVGElement||n instanceof ut(n).SVGElement}function Dee(n){return n instanceof MouseEvent||n instanceof ut(n).MouseEvent}function Op(n){return n instanceof KeyboardEvent||n instanceof ut(n).KeyboardEvent}const Ae={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:vb?"webkitAnimationStart":"animationstart",ANIMATION_END:vb?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:vb?"webkitAnimationIteration":"animationiteration"};function _ut(n){const e=n;return!!(e&&typeof e.preventDefault=="function"&&typeof e.stopPropagation=="function")}const ci={stop:(n,e)=>(n.preventDefault(),e&&n.stopPropagation(),n)};function vut(n){const e=[];for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)e[t]=n.scrollTop,n=n.parentNode;return e}function but(n,e){for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)n.scrollTop!==e[t]&&(n.scrollTop=e[t]),n=n.parentNode}class gF extends ue{static hasFocusWithin(e){if(ir(e)){const t=jy(e),i=t?t.activeElement:e.ownerDocument.activeElement;return er(i,e)}else{const t=e;return er(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new oe),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new oe),this.onDidBlur=this._onDidBlur.event;let t=gF.hasFocusWithin(e),i=!1;const s=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},r=()=>{t&&(i=!0,(ir(e)?ut(e):e).setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{gF.hasFocusWithin(e)!==t&&(t?r():s())},this._register(ge(e,Ae.FOCUS,s,!0)),this._register(ge(e,Ae.BLUR,r,!0)),ir(e)&&(this._register(ge(e,Ae.FOCUS_IN,()=>this._refreshStateHandler())),this._register(ge(e,Ae.FOCUS_OUT,()=>this._refreshStateHandler())))}}function Zh(n){return new gF(n)}function yut(n,e){return n.after(e),e}function ke(n,...e){if(n.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function Nee(n,e){return n.insertBefore(e,n.firstChild),e}function Ir(n,...e){n.innerText="",ke(n,...e)}const wut=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var vT;(function(n){n.HTML="http://www.w3.org/1999/xhtml",n.SVG="http://www.w3.org/2000/svg"})(vT||(vT={}));function _Le(n,e,t,...i){const s=wut.exec(e);if(!s)throw new Error("Bad use of emmet");const r=s[1]||"div";let o;return n!==vT.HTML?o=document.createElementNS(n,r):o=document.createElement(r),s[3]&&(o.id=s[3]),s[4]&&(o.className=s[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>"u"||(/^on\w+$/.test(a)?o[a]=l:a==="selected"?l&&o.setAttribute(a,"true"):o.setAttribute(a,l))}),o.append(...i),o}function Pe(n,e,...t){return _Le(vT.HTML,n,e,...t)}Pe.SVG=function(n,e,...t){return _Le(vT.SVG,n,e,...t)};function Cut(n,...e){n?ol(...e):zo(...e)}function ol(...n){for(const e of n)e.style.display="",e.removeAttribute("aria-hidden")}function zo(...n){for(const e of n)e.style.display="none",e.setAttribute("aria-hidden","true")}function gue(n,e){const t=n.devicePixelRatio*e;return Math.max(1,Math.floor(t))/n.devicePixelRatio}function vLe(n){Gi.open(n,"_blank","noopener")}function Sut(n,e){const t=()=>{e(),i=bl(n,t)};let i=bl(n,t);return lt(()=>i.dispose())}oLe.setPreferredWebSchema(/^https:/.test(Gi.location.href)?"https":"http");function Wg(n){return n?`url('${aLe.uriToBrowserUri(n).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function W7(n){return`'${n.replace(/'/g,"%27")}'`}function Cg(n,e){if(n!==void 0){const t=n.match(/^\s*var\((.+)\)$/);if(t){const i=t[1].split(",",2);return i.length===2&&(e=Cg(i[1].trim(),e)),`var(${i[0]}, ${e})`}return n}return e}function xut(n,e=!1){const t=document.createElement("a");return $xe("afterSanitizeAttributes",i=>{for(const s of["href","src"])if(i.hasAttribute(s)){const r=i.getAttribute(s);if(s==="href"&&r.startsWith("#"))continue;if(t.href=r,!n.includes(t.protocol.replace(/:$/,""))){if(e&&s==="src"&&t.href.startsWith("data:"))continue;i.removeAttribute(s)}}}),lt(()=>{zxe("afterSanitizeAttributes")})}const Lut=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);class ng extends oe{constructor(){super(),this._subscriptions=new be,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(Oe.runAndSubscribe(MB,({window:e,disposables:t})=>this.registerListeners(e,t),{window:Gi,disposables:this._subscriptions}))}registerListeners(e,t){t.add(ge(e,"keydown",i=>{if(i.defaultPrevented)return;const s=new Ji(i);if(!(s.keyCode===6&&i.repeat)){if(i.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(i.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(i.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(i.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(s.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=i,this.fire(this._keyStatus))}},!0)),t.add(ge(e,"keyup",i=>{i.defaultPrevented||(!i.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!i.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!i.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!i.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=i,this.fire(this._keyStatus)))},!0)),t.add(ge(e.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ge(e.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ge(e.document.body,"mousemove",i=>{i.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(ge(e,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return ng.instance||(ng.instance=new ng),ng.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class Eut extends ue{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(ge(this.element,Ae.DRAG_START,e=>{var t,i;(i=(t=this.callbacks).onDragStart)==null||i.call(t,e)})),this.callbacks.onDrag&&this._register(ge(this.element,Ae.DRAG,e=>{var t,i;(i=(t=this.callbacks).onDrag)==null||i.call(t,e)})),this._register(ge(this.element,Ae.DRAG_ENTER,e=>{var t,i;this.counter++,this.dragStartTime=e.timeStamp,(i=(t=this.callbacks).onDragEnter)==null||i.call(t,e)})),this._register(ge(this.element,Ae.DRAG_OVER,e=>{var t,i;e.preventDefault(),(i=(t=this.callbacks).onDragOver)==null||i.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(ge(this.element,Ae.DRAG_LEAVE,e=>{var t,i;this.counter--,this.counter===0&&(this.dragStartTime=0,(i=(t=this.callbacks).onDragLeave)==null||i.call(t,e))})),this._register(ge(this.element,Ae.DRAG_END,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDragEnd)==null||i.call(t,e)})),this._register(ge(this.element,Ae.DROP,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDrop)==null||i.call(t,e)}))}}const bLe=/(?<tag>[\w\-]+)?(?:#(?<id>[\w\-]+))?(?<class>(?:\.(?:[\w\-]+))*)(?:@(?<name>(?:[\w\_])+))?/;function Jt(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const s=bLe.exec(n);if(!s||!s.groups)throw new Error("Bad use of h");const r=s.groups.tag||"div",o=document.createElement(r);s.groups.id&&(o.id=s.groups.id);const a=[];if(s.groups.class)for(const c of s.groups.class.split("."))c!==""&&a.push(c);if(t.className!==void 0)for(const c of t.className.split("."))c!==""&&a.push(c);a.length>0&&(o.className=a.join(" "));const l={};if(s.groups.name&&(l[s.groups.name]=o),i)for(const c of i)ir(c)?o.appendChild(c):typeof c=="string"?o.append(c):"root"in c&&(Object.assign(l,c),o.appendChild(c.root));for(const[c,u]of Object.entries(t))if(c!=="className")if(c==="style")for(const[h,d]of Object.entries(u))o.style.setProperty(mF(h),typeof d=="number"?d+"px":""+d);else c==="tabIndex"?o.tabIndex=u:o.setAttribute(mF(c),u.toString());return l.root=o,l}function iw(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const s=bLe.exec(n);if(!s||!s.groups)throw new Error("Bad use of h");const r=s.groups.tag||"div",o=document.createElementNS("http://www.w3.org/2000/svg",r);s.groups.id&&(o.id=s.groups.id);const a=[];if(s.groups.class)for(const c of s.groups.class.split("."))c!==""&&a.push(c);if(t.className!==void 0)for(const c of t.className.split("."))c!==""&&a.push(c);a.length>0&&(o.className=a.join(" "));const l={};if(s.groups.name&&(l[s.groups.name]=o),i)for(const c of i)ir(c)?o.appendChild(c):typeof c=="string"?o.append(c):"root"in c&&(Object.assign(l,c),o.appendChild(c.root));for(const[c,u]of Object.entries(t))if(c!=="className")if(c==="style")for(const[h,d]of Object.entries(u))o.style.setProperty(mF(h),typeof d=="number"?d+"px":""+d);else c==="tabIndex"?o.tabIndex=u:o.setAttribute(mF(c),u.toString());return l.root=o,l}function mF(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}const mue=2e4;let Tv,aM,mz,lM,_z;function kut(n){Tv=document.createElement("div"),Tv.className="monaco-aria-container";const e=()=>{const i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),Tv.appendChild(i),i};aM=e(),mz=e();const t=()=>{const i=document.createElement("div");return i.className="monaco-status",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),Tv.appendChild(i),i};lM=t(),_z=t(),n.appendChild(Tv)}function yl(n){Tv&&(aM.textContent!==n?(kr(mz),_F(aM,n)):(kr(aM),_F(mz,n)))}function jf(n){Tv&&(lM.textContent!==n?(kr(_z),_F(lM,n)):(kr(lM),_F(_z,n)))}function _F(n,e){kr(n),e.length>mue&&(e=e.substr(0,mue)),n.textContent=e,n.style.visibility="hidden",n.style.visibility="visible"}var Nh;(function(n){n.serviceIds=new Map,n.DI_TARGET="$di$target",n.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[n.DI_DEPENDENCIES]||[]}n.getServiceDependencies=e})(Nh||(Nh={}));const ct=ri("instantiationService");function Iut(n,e,t){e[Nh.DI_TARGET]===e?e[Nh.DI_DEPENDENCIES].push({id:n,index:t}):(e[Nh.DI_DEPENDENCIES]=[{id:n,index:t}],e[Nh.DI_TARGET]=e)}function ri(n){if(Nh.serviceIds.has(n))return Nh.serviceIds.get(n);const e=function(t,i,s){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");Iut(e,t,s)};return e.toString=()=>n,Nh.serviceIds.set(n,e),e}const wi=ri("codeEditorService");let se=class fv{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new fv(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return fv.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return fv.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<t.column}isBeforeOrEqual(e){return fv.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<=t.column}static compare(e,t){const i=e.lineNumber|0,s=t.lineNumber|0;if(i===s){const r=e.column|0,o=t.column|0;return r-o}return i-s}clone(){return new fv(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new fv(e.lineNumber,e.column)}static isIPosition(e){return e&&typeof e.lineNumber=="number"&&typeof e.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};const mn=ri("modelService"),Wa=ri("textModelService");class dl extends ue{constructor(e,t="",i="",s=!0,r){super(),this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=s,this._actionCallback=r}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}}class qy extends ue{constructor(){super(...arguments),this._onWillRun=this._register(new oe),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new oe),this.onDidRun=this._onDidRun.event}async run(e,t){if(!e.enabled)return;this._onWillRun.fire({action:e});let i;try{await this.runAction(e,t)}catch(s){i=s}this._onDidRun.fire({action:e,error:i})}async runAction(e,t){await e.run(t)}}const fI=class fI{constructor(){this.id=fI.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(const i of e)i.length&&(t.length?t=[...t,new fI,...i]:t=i);return t}async run(){}};fI.ID="vs.actions.separator";let nr=fI;class GS{get actions(){return this._actions}constructor(e,t,i,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=s,this._actions=i}async run(){}}const l3=class l3 extends dl{constructor(){super(l3.ID,v("submenu.empty","(empty)"),void 0,!1)}};l3.ID="vs.actions.empty";let vz=l3;function yb(n){return{id:n.id,label:n.label,tooltip:n.tooltip??n.label,class:n.class,enabled:n.enabled??!0,checked:n.checked,run:async(...e)=>n.run(...e)}}const bz=Object.create(null);function P(n,e){if(Da(e)){const t=bz[e];if(t===void 0)throw new Error(`${n} references an unknown codicon: ${e}`);e=t}return bz[n]=e,{id:n}}function yLe(){return bz}const Tut={add:P("add",6e4),plus:P("plus",6e4),gistNew:P("gist-new",6e4),repoCreate:P("repo-create",6e4),lightbulb:P("lightbulb",60001),lightBulb:P("light-bulb",60001),repo:P("repo",60002),repoDelete:P("repo-delete",60002),gistFork:P("gist-fork",60003),repoForked:P("repo-forked",60003),gitPullRequest:P("git-pull-request",60004),gitPullRequestAbandoned:P("git-pull-request-abandoned",60004),recordKeys:P("record-keys",60005),keyboard:P("keyboard",60005),tag:P("tag",60006),gitPullRequestLabel:P("git-pull-request-label",60006),tagAdd:P("tag-add",60006),tagRemove:P("tag-remove",60006),person:P("person",60007),personFollow:P("person-follow",60007),personOutline:P("person-outline",60007),personFilled:P("person-filled",60007),gitBranch:P("git-branch",60008),gitBranchCreate:P("git-branch-create",60008),gitBranchDelete:P("git-branch-delete",60008),sourceControl:P("source-control",60008),mirror:P("mirror",60009),mirrorPublic:P("mirror-public",60009),star:P("star",60010),starAdd:P("star-add",60010),starDelete:P("star-delete",60010),starEmpty:P("star-empty",60010),comment:P("comment",60011),commentAdd:P("comment-add",60011),alert:P("alert",60012),warning:P("warning",60012),search:P("search",60013),searchSave:P("search-save",60013),logOut:P("log-out",60014),signOut:P("sign-out",60014),logIn:P("log-in",60015),signIn:P("sign-in",60015),eye:P("eye",60016),eyeUnwatch:P("eye-unwatch",60016),eyeWatch:P("eye-watch",60016),circleFilled:P("circle-filled",60017),primitiveDot:P("primitive-dot",60017),closeDirty:P("close-dirty",60017),debugBreakpoint:P("debug-breakpoint",60017),debugBreakpointDisabled:P("debug-breakpoint-disabled",60017),debugHint:P("debug-hint",60017),terminalDecorationSuccess:P("terminal-decoration-success",60017),primitiveSquare:P("primitive-square",60018),edit:P("edit",60019),pencil:P("pencil",60019),info:P("info",60020),issueOpened:P("issue-opened",60020),gistPrivate:P("gist-private",60021),gitForkPrivate:P("git-fork-private",60021),lock:P("lock",60021),mirrorPrivate:P("mirror-private",60021),close:P("close",60022),removeClose:P("remove-close",60022),x:P("x",60022),repoSync:P("repo-sync",60023),sync:P("sync",60023),clone:P("clone",60024),desktopDownload:P("desktop-download",60024),beaker:P("beaker",60025),microscope:P("microscope",60025),vm:P("vm",60026),deviceDesktop:P("device-desktop",60026),file:P("file",60027),fileText:P("file-text",60027),more:P("more",60028),ellipsis:P("ellipsis",60028),kebabHorizontal:P("kebab-horizontal",60028),mailReply:P("mail-reply",60029),reply:P("reply",60029),organization:P("organization",60030),organizationFilled:P("organization-filled",60030),organizationOutline:P("organization-outline",60030),newFile:P("new-file",60031),fileAdd:P("file-add",60031),newFolder:P("new-folder",60032),fileDirectoryCreate:P("file-directory-create",60032),trash:P("trash",60033),trashcan:P("trashcan",60033),history:P("history",60034),clock:P("clock",60034),folder:P("folder",60035),fileDirectory:P("file-directory",60035),symbolFolder:P("symbol-folder",60035),logoGithub:P("logo-github",60036),markGithub:P("mark-github",60036),github:P("github",60036),terminal:P("terminal",60037),console:P("console",60037),repl:P("repl",60037),zap:P("zap",60038),symbolEvent:P("symbol-event",60038),error:P("error",60039),stop:P("stop",60039),variable:P("variable",60040),symbolVariable:P("symbol-variable",60040),array:P("array",60042),symbolArray:P("symbol-array",60042),symbolModule:P("symbol-module",60043),symbolPackage:P("symbol-package",60043),symbolNamespace:P("symbol-namespace",60043),symbolObject:P("symbol-object",60043),symbolMethod:P("symbol-method",60044),symbolFunction:P("symbol-function",60044),symbolConstructor:P("symbol-constructor",60044),symbolBoolean:P("symbol-boolean",60047),symbolNull:P("symbol-null",60047),symbolNumeric:P("symbol-numeric",60048),symbolNumber:P("symbol-number",60048),symbolStructure:P("symbol-structure",60049),symbolStruct:P("symbol-struct",60049),symbolParameter:P("symbol-parameter",60050),symbolTypeParameter:P("symbol-type-parameter",60050),symbolKey:P("symbol-key",60051),symbolText:P("symbol-text",60051),symbolReference:P("symbol-reference",60052),goToFile:P("go-to-file",60052),symbolEnum:P("symbol-enum",60053),symbolValue:P("symbol-value",60053),symbolRuler:P("symbol-ruler",60054),symbolUnit:P("symbol-unit",60054),activateBreakpoints:P("activate-breakpoints",60055),archive:P("archive",60056),arrowBoth:P("arrow-both",60057),arrowDown:P("arrow-down",60058),arrowLeft:P("arrow-left",60059),arrowRight:P("arrow-right",60060),arrowSmallDown:P("arrow-small-down",60061),arrowSmallLeft:P("arrow-small-left",60062),arrowSmallRight:P("arrow-small-right",60063),arrowSmallUp:P("arrow-small-up",60064),arrowUp:P("arrow-up",60065),bell:P("bell",60066),bold:P("bold",60067),book:P("book",60068),bookmark:P("bookmark",60069),debugBreakpointConditionalUnverified:P("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:P("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:P("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:P("debug-breakpoint-data-unverified",60072),debugBreakpointData:P("debug-breakpoint-data",60073),debugBreakpointDataDisabled:P("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:P("debug-breakpoint-log-unverified",60074),debugBreakpointLog:P("debug-breakpoint-log",60075),debugBreakpointLogDisabled:P("debug-breakpoint-log-disabled",60075),briefcase:P("briefcase",60076),broadcast:P("broadcast",60077),browser:P("browser",60078),bug:P("bug",60079),calendar:P("calendar",60080),caseSensitive:P("case-sensitive",60081),check:P("check",60082),checklist:P("checklist",60083),chevronDown:P("chevron-down",60084),chevronLeft:P("chevron-left",60085),chevronRight:P("chevron-right",60086),chevronUp:P("chevron-up",60087),chromeClose:P("chrome-close",60088),chromeMaximize:P("chrome-maximize",60089),chromeMinimize:P("chrome-minimize",60090),chromeRestore:P("chrome-restore",60091),circleOutline:P("circle-outline",60092),circle:P("circle",60092),debugBreakpointUnverified:P("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:P("terminal-decoration-incomplete",60092),circleSlash:P("circle-slash",60093),circuitBoard:P("circuit-board",60094),clearAll:P("clear-all",60095),clippy:P("clippy",60096),closeAll:P("close-all",60097),cloudDownload:P("cloud-download",60098),cloudUpload:P("cloud-upload",60099),code:P("code",60100),collapseAll:P("collapse-all",60101),colorMode:P("color-mode",60102),commentDiscussion:P("comment-discussion",60103),creditCard:P("credit-card",60105),dash:P("dash",60108),dashboard:P("dashboard",60109),database:P("database",60110),debugContinue:P("debug-continue",60111),debugDisconnect:P("debug-disconnect",60112),debugPause:P("debug-pause",60113),debugRestart:P("debug-restart",60114),debugStart:P("debug-start",60115),debugStepInto:P("debug-step-into",60116),debugStepOut:P("debug-step-out",60117),debugStepOver:P("debug-step-over",60118),debugStop:P("debug-stop",60119),debug:P("debug",60120),deviceCameraVideo:P("device-camera-video",60121),deviceCamera:P("device-camera",60122),deviceMobile:P("device-mobile",60123),diffAdded:P("diff-added",60124),diffIgnored:P("diff-ignored",60125),diffModified:P("diff-modified",60126),diffRemoved:P("diff-removed",60127),diffRenamed:P("diff-renamed",60128),diff:P("diff",60129),diffSidebyside:P("diff-sidebyside",60129),discard:P("discard",60130),editorLayout:P("editor-layout",60131),emptyWindow:P("empty-window",60132),exclude:P("exclude",60133),extensions:P("extensions",60134),eyeClosed:P("eye-closed",60135),fileBinary:P("file-binary",60136),fileCode:P("file-code",60137),fileMedia:P("file-media",60138),filePdf:P("file-pdf",60139),fileSubmodule:P("file-submodule",60140),fileSymlinkDirectory:P("file-symlink-directory",60141),fileSymlinkFile:P("file-symlink-file",60142),fileZip:P("file-zip",60143),files:P("files",60144),filter:P("filter",60145),flame:P("flame",60146),foldDown:P("fold-down",60147),foldUp:P("fold-up",60148),fold:P("fold",60149),folderActive:P("folder-active",60150),folderOpened:P("folder-opened",60151),gear:P("gear",60152),gift:P("gift",60153),gistSecret:P("gist-secret",60154),gist:P("gist",60155),gitCommit:P("git-commit",60156),gitCompare:P("git-compare",60157),compareChanges:P("compare-changes",60157),gitMerge:P("git-merge",60158),githubAction:P("github-action",60159),githubAlt:P("github-alt",60160),globe:P("globe",60161),grabber:P("grabber",60162),graph:P("graph",60163),gripper:P("gripper",60164),heart:P("heart",60165),home:P("home",60166),horizontalRule:P("horizontal-rule",60167),hubot:P("hubot",60168),inbox:P("inbox",60169),issueReopened:P("issue-reopened",60171),issues:P("issues",60172),italic:P("italic",60173),jersey:P("jersey",60174),json:P("json",60175),kebabVertical:P("kebab-vertical",60176),key:P("key",60177),law:P("law",60178),lightbulbAutofix:P("lightbulb-autofix",60179),linkExternal:P("link-external",60180),link:P("link",60181),listOrdered:P("list-ordered",60182),listUnordered:P("list-unordered",60183),liveShare:P("live-share",60184),loading:P("loading",60185),location:P("location",60186),mailRead:P("mail-read",60187),mail:P("mail",60188),markdown:P("markdown",60189),megaphone:P("megaphone",60190),mention:P("mention",60191),milestone:P("milestone",60192),gitPullRequestMilestone:P("git-pull-request-milestone",60192),mortarBoard:P("mortar-board",60193),move:P("move",60194),multipleWindows:P("multiple-windows",60195),mute:P("mute",60196),noNewline:P("no-newline",60197),note:P("note",60198),octoface:P("octoface",60199),openPreview:P("open-preview",60200),package:P("package",60201),paintcan:P("paintcan",60202),pin:P("pin",60203),play:P("play",60204),run:P("run",60204),plug:P("plug",60205),preserveCase:P("preserve-case",60206),preview:P("preview",60207),project:P("project",60208),pulse:P("pulse",60209),question:P("question",60210),quote:P("quote",60211),radioTower:P("radio-tower",60212),reactions:P("reactions",60213),references:P("references",60214),refresh:P("refresh",60215),regex:P("regex",60216),remoteExplorer:P("remote-explorer",60217),remote:P("remote",60218),remove:P("remove",60219),replaceAll:P("replace-all",60220),replace:P("replace",60221),repoClone:P("repo-clone",60222),repoForcePush:P("repo-force-push",60223),repoPull:P("repo-pull",60224),repoPush:P("repo-push",60225),report:P("report",60226),requestChanges:P("request-changes",60227),rocket:P("rocket",60228),rootFolderOpened:P("root-folder-opened",60229),rootFolder:P("root-folder",60230),rss:P("rss",60231),ruby:P("ruby",60232),saveAll:P("save-all",60233),saveAs:P("save-as",60234),save:P("save",60235),screenFull:P("screen-full",60236),screenNormal:P("screen-normal",60237),searchStop:P("search-stop",60238),server:P("server",60240),settingsGear:P("settings-gear",60241),settings:P("settings",60242),shield:P("shield",60243),smiley:P("smiley",60244),sortPrecedence:P("sort-precedence",60245),splitHorizontal:P("split-horizontal",60246),splitVertical:P("split-vertical",60247),squirrel:P("squirrel",60248),starFull:P("star-full",60249),starHalf:P("star-half",60250),symbolClass:P("symbol-class",60251),symbolColor:P("symbol-color",60252),symbolConstant:P("symbol-constant",60253),symbolEnumMember:P("symbol-enum-member",60254),symbolField:P("symbol-field",60255),symbolFile:P("symbol-file",60256),symbolInterface:P("symbol-interface",60257),symbolKeyword:P("symbol-keyword",60258),symbolMisc:P("symbol-misc",60259),symbolOperator:P("symbol-operator",60260),symbolProperty:P("symbol-property",60261),wrench:P("wrench",60261),wrenchSubaction:P("wrench-subaction",60261),symbolSnippet:P("symbol-snippet",60262),tasklist:P("tasklist",60263),telescope:P("telescope",60264),textSize:P("text-size",60265),threeBars:P("three-bars",60266),thumbsdown:P("thumbsdown",60267),thumbsup:P("thumbsup",60268),tools:P("tools",60269),triangleDown:P("triangle-down",60270),triangleLeft:P("triangle-left",60271),triangleRight:P("triangle-right",60272),triangleUp:P("triangle-up",60273),twitter:P("twitter",60274),unfold:P("unfold",60275),unlock:P("unlock",60276),unmute:P("unmute",60277),unverified:P("unverified",60278),verified:P("verified",60279),versions:P("versions",60280),vmActive:P("vm-active",60281),vmOutline:P("vm-outline",60282),vmRunning:P("vm-running",60283),watch:P("watch",60284),whitespace:P("whitespace",60285),wholeWord:P("whole-word",60286),window:P("window",60287),wordWrap:P("word-wrap",60288),zoomIn:P("zoom-in",60289),zoomOut:P("zoom-out",60290),listFilter:P("list-filter",60291),listFlat:P("list-flat",60292),listSelection:P("list-selection",60293),selection:P("selection",60293),listTree:P("list-tree",60294),debugBreakpointFunctionUnverified:P("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:P("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:P("debug-breakpoint-function-disabled",60296),debugStackframeActive:P("debug-stackframe-active",60297),circleSmallFilled:P("circle-small-filled",60298),debugStackframeDot:P("debug-stackframe-dot",60298),terminalDecorationMark:P("terminal-decoration-mark",60298),debugStackframe:P("debug-stackframe",60299),debugStackframeFocused:P("debug-stackframe-focused",60299),debugBreakpointUnsupported:P("debug-breakpoint-unsupported",60300),symbolString:P("symbol-string",60301),debugReverseContinue:P("debug-reverse-continue",60302),debugStepBack:P("debug-step-back",60303),debugRestartFrame:P("debug-restart-frame",60304),debugAlt:P("debug-alt",60305),callIncoming:P("call-incoming",60306),callOutgoing:P("call-outgoing",60307),menu:P("menu",60308),expandAll:P("expand-all",60309),feedback:P("feedback",60310),gitPullRequestReviewer:P("git-pull-request-reviewer",60310),groupByRefType:P("group-by-ref-type",60311),ungroupByRefType:P("ungroup-by-ref-type",60312),account:P("account",60313),gitPullRequestAssignee:P("git-pull-request-assignee",60313),bellDot:P("bell-dot",60314),debugConsole:P("debug-console",60315),library:P("library",60316),output:P("output",60317),runAll:P("run-all",60318),syncIgnored:P("sync-ignored",60319),pinned:P("pinned",60320),githubInverted:P("github-inverted",60321),serverProcess:P("server-process",60322),serverEnvironment:P("server-environment",60323),pass:P("pass",60324),issueClosed:P("issue-closed",60324),stopCircle:P("stop-circle",60325),playCircle:P("play-circle",60326),record:P("record",60327),debugAltSmall:P("debug-alt-small",60328),vmConnect:P("vm-connect",60329),cloud:P("cloud",60330),merge:P("merge",60331),export:P("export",60332),graphLeft:P("graph-left",60333),magnet:P("magnet",60334),notebook:P("notebook",60335),redo:P("redo",60336),checkAll:P("check-all",60337),pinnedDirty:P("pinned-dirty",60338),passFilled:P("pass-filled",60339),circleLargeFilled:P("circle-large-filled",60340),circleLarge:P("circle-large",60341),circleLargeOutline:P("circle-large-outline",60341),combine:P("combine",60342),gather:P("gather",60342),table:P("table",60343),variableGroup:P("variable-group",60344),typeHierarchy:P("type-hierarchy",60345),typeHierarchySub:P("type-hierarchy-sub",60346),typeHierarchySuper:P("type-hierarchy-super",60347),gitPullRequestCreate:P("git-pull-request-create",60348),runAbove:P("run-above",60349),runBelow:P("run-below",60350),notebookTemplate:P("notebook-template",60351),debugRerun:P("debug-rerun",60352),workspaceTrusted:P("workspace-trusted",60353),workspaceUntrusted:P("workspace-untrusted",60354),workspaceUnknown:P("workspace-unknown",60355),terminalCmd:P("terminal-cmd",60356),terminalDebian:P("terminal-debian",60357),terminalLinux:P("terminal-linux",60358),terminalPowershell:P("terminal-powershell",60359),terminalTmux:P("terminal-tmux",60360),terminalUbuntu:P("terminal-ubuntu",60361),terminalBash:P("terminal-bash",60362),arrowSwap:P("arrow-swap",60363),copy:P("copy",60364),personAdd:P("person-add",60365),filterFilled:P("filter-filled",60366),wand:P("wand",60367),debugLineByLine:P("debug-line-by-line",60368),inspect:P("inspect",60369),layers:P("layers",60370),layersDot:P("layers-dot",60371),layersActive:P("layers-active",60372),compass:P("compass",60373),compassDot:P("compass-dot",60374),compassActive:P("compass-active",60375),azure:P("azure",60376),issueDraft:P("issue-draft",60377),gitPullRequestClosed:P("git-pull-request-closed",60378),gitPullRequestDraft:P("git-pull-request-draft",60379),debugAll:P("debug-all",60380),debugCoverage:P("debug-coverage",60381),runErrors:P("run-errors",60382),folderLibrary:P("folder-library",60383),debugContinueSmall:P("debug-continue-small",60384),beakerStop:P("beaker-stop",60385),graphLine:P("graph-line",60386),graphScatter:P("graph-scatter",60387),pieChart:P("pie-chart",60388),bracket:P("bracket",60175),bracketDot:P("bracket-dot",60389),bracketError:P("bracket-error",60390),lockSmall:P("lock-small",60391),azureDevops:P("azure-devops",60392),verifiedFilled:P("verified-filled",60393),newline:P("newline",60394),layout:P("layout",60395),layoutActivitybarLeft:P("layout-activitybar-left",60396),layoutActivitybarRight:P("layout-activitybar-right",60397),layoutPanelLeft:P("layout-panel-left",60398),layoutPanelCenter:P("layout-panel-center",60399),layoutPanelJustify:P("layout-panel-justify",60400),layoutPanelRight:P("layout-panel-right",60401),layoutPanel:P("layout-panel",60402),layoutSidebarLeft:P("layout-sidebar-left",60403),layoutSidebarRight:P("layout-sidebar-right",60404),layoutStatusbar:P("layout-statusbar",60405),layoutMenubar:P("layout-menubar",60406),layoutCentered:P("layout-centered",60407),target:P("target",60408),indent:P("indent",60409),recordSmall:P("record-small",60410),errorSmall:P("error-small",60411),terminalDecorationError:P("terminal-decoration-error",60411),arrowCircleDown:P("arrow-circle-down",60412),arrowCircleLeft:P("arrow-circle-left",60413),arrowCircleRight:P("arrow-circle-right",60414),arrowCircleUp:P("arrow-circle-up",60415),layoutSidebarRightOff:P("layout-sidebar-right-off",60416),layoutPanelOff:P("layout-panel-off",60417),layoutSidebarLeftOff:P("layout-sidebar-left-off",60418),blank:P("blank",60419),heartFilled:P("heart-filled",60420),map:P("map",60421),mapHorizontal:P("map-horizontal",60421),foldHorizontal:P("fold-horizontal",60421),mapFilled:P("map-filled",60422),mapHorizontalFilled:P("map-horizontal-filled",60422),foldHorizontalFilled:P("fold-horizontal-filled",60422),circleSmall:P("circle-small",60423),bellSlash:P("bell-slash",60424),bellSlashDot:P("bell-slash-dot",60425),commentUnresolved:P("comment-unresolved",60426),gitPullRequestGoToChanges:P("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:P("git-pull-request-new-changes",60428),searchFuzzy:P("search-fuzzy",60429),commentDraft:P("comment-draft",60430),send:P("send",60431),sparkle:P("sparkle",60432),insert:P("insert",60433),mic:P("mic",60434),thumbsdownFilled:P("thumbsdown-filled",60435),thumbsupFilled:P("thumbsup-filled",60436),coffee:P("coffee",60437),snake:P("snake",60438),game:P("game",60439),vr:P("vr",60440),chip:P("chip",60441),piano:P("piano",60442),music:P("music",60443),micFilled:P("mic-filled",60444),repoFetch:P("repo-fetch",60445),copilot:P("copilot",60446),lightbulbSparkle:P("lightbulb-sparkle",60447),robot:P("robot",60448),sparkleFilled:P("sparkle-filled",60449),diffSingle:P("diff-single",60450),diffMultiple:P("diff-multiple",60451),surroundWith:P("surround-with",60452),share:P("share",60453),gitStash:P("git-stash",60454),gitStashApply:P("git-stash-apply",60455),gitStashPop:P("git-stash-pop",60456),vscode:P("vscode",60457),vscodeInsiders:P("vscode-insiders",60458),codeOss:P("code-oss",60459),runCoverage:P("run-coverage",60460),runAllCoverage:P("run-all-coverage",60461),coverage:P("coverage",60462),githubProject:P("github-project",60463),mapVertical:P("map-vertical",60464),foldVertical:P("fold-vertical",60464),mapVerticalFilled:P("map-vertical-filled",60465),foldVerticalFilled:P("fold-vertical-filled",60465),goToSearch:P("go-to-search",60466),percentage:P("percentage",60467),sortPercentage:P("sort-percentage",60467),attach:P("attach",60468)},Dut={dialogError:P("dialog-error","error"),dialogWarning:P("dialog-warning","warning"),dialogInfo:P("dialog-info","info"),dialogClose:P("dialog-close","close"),treeItemExpanded:P("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:P("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:P("tree-filter-on-type-off","list-selection"),treeFilterClear:P("tree-filter-clear","close"),treeItemLoading:P("tree-item-loading","loading"),menuSelection:P("menu-selection","check"),menuSubmenu:P("menu-submenu","chevron-right"),menuBarMore:P("menubar-more","more"),scrollbarButtonLeft:P("scrollbar-button-left","triangle-left"),scrollbarButtonRight:P("scrollbar-button-right","triangle-right"),scrollbarButtonUp:P("scrollbar-button-up","triangle-up"),scrollbarButtonDown:P("scrollbar-button-down","triangle-down"),toolBarMore:P("toolbar-more","more"),quickInputBack:P("quick-input-back","arrow-left"),dropDownButton:P("drop-down-button",60084),symbolCustomColor:P("symbol-customcolor",60252),exportIcon:P("export",60332),workspaceUnspecified:P("workspace-unspecified",60355),newLine:P("newline",60394),thumbsDownFilled:P("thumbsdown-filled",60435),thumbsUpFilled:P("thumbsup-filled",60436),gitFetch:P("git-fetch",60445),lightbulbSparkleAutofix:P("lightbulb-sparkle-autofix",60447),debugBreakpointPending:P("debug-breakpoint-pending",60377)},Ne={...Tut,...Dut};var yz;(function(n){function e(t){return t&&typeof t=="object"&&typeof t.id=="string"}n.isThemeColor=e})(yz||(yz={}));var ft;(function(n){n.iconNameSegment="[A-Za-z0-9]+",n.iconNameExpression="[A-Za-z0-9-]+",n.iconModifierExpression="~[A-Za-z]+",n.iconNameCharacter="[A-Za-z0-9~-]";const e=new RegExp(`^(${n.iconNameExpression})(${n.iconModifierExpression})?$`);function t(d){const f=e.exec(d.id);if(!f)return t(Ne.error);const[,p,g]=f,m=["codicon","codicon-"+p];return g&&m.push("codicon-modifier-"+g.substring(1)),m}n.asClassNameArray=t;function i(d){return t(d).join(" ")}n.asClassName=i;function s(d){return"."+t(d).join(".")}n.asCSSSelector=s;function r(d){return d&&typeof d=="object"&&typeof d.id=="string"&&(typeof d.color>"u"||yz.isThemeColor(d.color))}n.isThemeIcon=r;const o=new RegExp(`^\\$\\((${n.iconNameExpression}(?:${n.iconModifierExpression})?)\\)$`);function a(d){const f=o.exec(d);if(!f)return;const[,p]=f;return{id:p}}n.fromString=a;function l(d){return{id:d}}n.fromId=l;function c(d,f){let p=d.id;const g=p.lastIndexOf("~");return g!==-1&&(p=p.substring(0,g)),f&&(p=`${p}~${f}`),{id:p}}n.modify=c;function u(d){const f=d.id.lastIndexOf("~");if(f!==-1)return d.id.substring(f+1)}n.getModifier=u;function h(d,f){var p,g;return d.id===f.id&&((p=d.color)==null?void 0:p.id)===((g=f.color)==null?void 0:g.id)}n.isEqual=h})(ft||(ft={}));const an=ri("commandService"),di=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new oe,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(n,e){if(!n)throw new Error("invalid command");if(typeof n=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:n,handler:e})}if(n.metadata&&Array.isArray(n.metadata.args)){const o=[];for(const l of n.metadata.args)o.push(l.constraint);const a=n.handler;n.handler=function(l,...c){return ilt(c,o),a(l,...c)}}const{id:t}=n;let i=this._commands.get(t);i||(i=new Go,this._commands.set(t,i));const s=i.unshift(n),r=lt(()=>{s();const o=this._commands.get(t);o!=null&&o.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),r}registerCommandAlias(n,e){return di.registerCommand(n,(t,...i)=>t.get(an).executeCommand(e,...i))}getCommand(n){const e=this._commands.get(n);if(!(!e||e.isEmpty()))return hi.first(e)}getCommands(){const n=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&n.set(e,t)}return n}};di.registerCommand("noop",()=>{});function V7(...n){switch(n.length){case 1:return v("contextkey.scanner.hint.didYouMean1","Did you mean {0}?",n[0]);case 2:return v("contextkey.scanner.hint.didYouMean2","Did you mean {0} or {1}?",n[0],n[1]);case 3:return v("contextkey.scanner.hint.didYouMean3","Did you mean {0}, {1} or {2}?",n[0],n[1],n[2]);default:return}}const Nut=v("contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote","Did you forget to open or close the quote?"),Aut=v("contextkey.scanner.hint.didYouForgetToEscapeSlash","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");var ug;let rE=(ug=class{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return"EOF";default:throw pee(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(V7("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(V7("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(V7("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(s)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=ug._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(Nut);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(Aut);return}const r=this._input.charCodeAt(e);if(t)t=!1;else if(r===47&&!i){e++;break}else r===91?i=!0:r===92?t=!0:r===93&&(i=!1);e++}for(;e<this._input.length&&ug._regexFlags.has(this._input.charCodeAt(e));)e++;this._current=e;const s=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:s,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}},ug._regexFlags=new Set(["i","g","s","m","y","u"].map(e=>e.charCodeAt(0))),ug._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]),ug);const oo=new Map;oo.set("false",!1);oo.set("true",!0);oo.set("isMac",ni);oo.set("isLinux",ra);oo.set("isWindows",qr);oo.set("isWeb",N_);oo.set("isMacNative",ni&&!N_);oo.set("isEdge",flt);oo.set("isFirefox",hlt);oo.set("isChrome",kxe);oo.set("isSafari",dlt);const Put=Object.prototype.hasOwnProperty,Rut={regexParsingWithErrorRecovery:!0},Mut=v("contextkey.parser.error.emptyString","Empty context key expression"),Out=v("contextkey.parser.error.emptyString.hint","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),Fut=v("contextkey.parser.error.noInAfterNot","'in' after 'not'."),_ue=v("contextkey.parser.error.closingParenthesis","closing parenthesis ')'"),But=v("contextkey.parser.error.unexpectedToken","Unexpected token"),Wut=v("contextkey.parser.error.unexpectedToken.hint","Did you forget to put && or || before the token?"),Vut=v("contextkey.parser.error.unexpectedEOF","Unexpected end of expression"),Hut=v("contextkey.parser.error.unexpectedEOF.hint","Did you forget to put a context key?");var uf;let $ut=(uf=class{constructor(e=Rut){this._config=e,this._scanner=new rE,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===""){this._parsingErrors.push({message:Mut,offset:0,lexeme:"",additionalInfo:Out});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const i=this._peek(),s=i.type===17?Wut:void 0;throw this._parsingErrors.push({message:But,offset:i.offset,lexeme:rE.getLexeme(i),additionalInfo:s}),uf._parseError}return t}catch(t){if(t!==uf._parseError)throw t;return}}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return e.length===1?e[0]:ye.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return e.length===1?e[0]:ye.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),oa.INSTANCE;case 12:return this._advance(),Pa.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,_ue),t==null?void 0:t.negate()}case 17:return this._advance(),T0.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),ye.true();case 12:return this._advance(),ye.false();case 0:{this._advance();const t=this._expr();return this._consume(1,_ue),t}case 17:{const t=e.lexeme;if(this._advance(),this._matchOne(9)){const s=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),s.type!==10)throw this._errExpectedButGot("REGEX",s);const r=s.lexeme,o=r.lastIndexOf("/"),a=o===r.length-1?void 0:this._removeFlagsGY(r.substring(o+1));let l;try{l=new RegExp(r.substring(1,o),a)}catch{throw this._errExpectedButGot("REGEX",s)}return bT.create(t,l)}switch(s.type){case 10:case 19:{const r=[s.lexeme];this._advance();let o=this._peek(),a=0;for(let d=0;d<s.lexeme.length;d++)s.lexeme.charCodeAt(d)===40?a++:s.lexeme.charCodeAt(d)===41&&a--;for(;!this._isAtEnd()&&o.type!==15&&o.type!==16;){switch(o.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let d=0;d<o.lexeme.length;d++)o.lexeme.charCodeAt(d)===40?a++:s.lexeme.charCodeAt(d)===41&&a--}if(a<0)break;r.push(rE.getLexeme(o)),this._advance(),o=this._peek()}const l=r.join(""),c=l.lastIndexOf("/"),u=c===l.length-1?void 0:this._removeFlagsGY(l.substring(c+1));let h;try{h=new RegExp(l.substring(1,c),u)}catch{throw this._errExpectedButGot("REGEX",s)}return ye.regex(t,h)}case 18:{const r=s.lexeme;this._advance();let o=null;if(!jxe(r)){const a=r.indexOf("/"),l=r.lastIndexOf("/");if(a!==l&&a>=0){const c=r.slice(a+1,l),u=r[l+1]==="i"?"i":"";try{o=new RegExp(c,u)}catch{throw this._errExpectedButGot("REGEX",s)}}}if(o===null)throw this._errExpectedButGot("REGEX",s);return bT.create(t,o)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,Fut);const s=this._value();return ye.notIn(t,s)}switch(this._peek().type){case 3:{this._advance();const s=this._value();if(this._previous().type===18)return ye.equals(t,s);switch(s){case"true":return ye.has(t);case"false":return ye.not(t);default:return ye.equals(t,s)}}case 4:{this._advance();const s=this._value();if(this._previous().type===18)return ye.notEquals(t,s);switch(s){case"true":return ye.not(t);case"false":return ye.has(t);default:return ye.notEquals(t,s)}}case 5:return this._advance(),UB.create(t,this._value());case 6:return this._advance(),jB.create(t,this._value());case 7:return this._advance(),$B.create(t,this._value());case 8:return this._advance(),zB.create(t,this._value());case 13:return this._advance(),ye.in(t,this._value());default:return ye.has(t)}}case 20:throw this._parsingErrors.push({message:Vut,offset:e.offset,lexeme:"",additionalInfo:Hut}),uf._parseError;default:throw this._errExpectedButGot(`true | false | KEY + | KEY '=~' REGEX + | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const s=v("contextkey.parser.error.expectedButGot",`Expected: {0} +Received: '{1}'.`,e,rE.getLexeme(t)),r=t.offset,o=rE.getLexeme(t);return this._parsingErrors.push({message:s,offset:r,lexeme:o,additionalInfo:i}),uf._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},uf._parseError=new Error,uf);const Zne=class Zne{static false(){return oa.INSTANCE}static true(){return Pa.INSTANCE}static has(e){return I0.create(e)}static equals(e,t){return aL.create(e,t)}static notEquals(e,t){return VB.create(e,t)}static regex(e,t){return bT.create(e,t)}static in(e,t){return BB.create(e,t)}static notIn(e,t){return WB.create(e,t)}static not(e){return T0.create(e)}static and(...e){return ib.create(e,null,!0)}static or(...e){return jp.create(e,null,!0)}static deserialize(e){return e==null?void 0:this._parser.parse(e)}};Zne._parser=new $ut({regexParsingWithErrorRecovery:!1});let ye=Zne;function zut(n,e){const t=n?n.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function Tk(n,e){return n.cmp(e)}const c3=class c3{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return Pa.INSTANCE}};c3.INSTANCE=new c3;let oa=c3;const u3=class u3{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return oa.INSTANCE}};u3.INSTANCE=new u3;let Pa=u3;class I0{static create(e,t=null){const i=oo.get(e);return typeof i=="boolean"?i?Pa.INSTANCE:oa.INSTANCE:new I0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:CLe(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=oo.get(this.key);return typeof e=="boolean"?e?Pa.INSTANCE:oa.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=T0.create(this.key,this)),this.negated}}class aL{static create(e,t,i=null){if(typeof t=="boolean")return t?I0.create(e,i):T0.create(e,i);const s=oo.get(e);return typeof s=="boolean"?t===(s?"true":"false")?Pa.INSTANCE:oa.INSTANCE:new aL(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=oo.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?Pa.INSTANCE:oa.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=VB.create(this.key,this.value,this)),this.negated}}class BB{static create(e,t){return new BB(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i=="string"&&typeof t=="object"&&t!==null?Put.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=WB.create(this.key,this.valueKey)),this.negated}}class WB{static create(e,t){return new WB(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=BB.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class VB{static create(e,t,i=null){if(typeof t=="boolean")return t?T0.create(e,i):I0.create(e,i);const s=oo.get(e);return typeof s=="boolean"?t===(s?"true":"false")?oa.INSTANCE:Pa.INSTANCE:new VB(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=oo.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?oa.INSTANCE:Pa.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=aL.create(this.key,this.value,this)),this.negated}}class T0{static create(e,t=null){const i=oo.get(e);return typeof i=="boolean"?i?oa.INSTANCE:Pa.INSTANCE:new T0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:CLe(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=oo.get(this.key);return typeof e=="boolean"?e?oa.INSTANCE:Pa.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=I0.create(this.key,this)),this.negated}}function HB(n,e){if(typeof n=="string"){const t=parseFloat(n);isNaN(t)||(n=t)}return typeof n=="string"||typeof n=="number"?e(n):oa.INSTANCE}class $B{static create(e,t,i=null){return HB(t,s=>new $B(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=jB.create(this.key,this.value,this)),this.negated}}class zB{static create(e,t,i=null){return HB(t,s=>new zB(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=UB.create(this.key,this.value,this)),this.negated}}class UB{static create(e,t,i=null){return HB(t,s=>new UB(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=zB.create(this.key,this.value,this)),this.negated}}class jB{static create(e,t,i=null){return HB(t,s=>new jB(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:D0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=$B.create(this.key,this.value,this)),this.negated}}class bT{static create(e,t){return new bT(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.key<e.key)return-1;if(this.key>e.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return t<i?-1:t>i?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Aee.create(this)),this.negated}}class Aee{static create(e){return new Aee(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function wLe(n){let e=null;for(let t=0,i=n.length;t<i;t++){const s=n[t].substituteConstants();if(n[t]!==s&&e===null){e=[];for(let r=0;r<t;r++)e[r]=n[r]}e!==null&&(e[t]=s)}return e===null?n:e}class ib{static create(e,t,i){return ib._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=6}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const s=Tk(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=wLe(this.expr);return e===this.expr?this:ib.create(e,this.negated,!1)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].evaluate(e))return!1;return!0}static _normalizeArr(e,t,i){const s=[];let r=!1;for(const o of e)if(o){if(o.type===1){r=!0;continue}if(o.type===0)return oa.INSTANCE;if(o.type===6){s.push(...o.expr);continue}s.push(o)}if(s.length===0&&r)return Pa.INSTANCE;if(s.length!==0){if(s.length===1)return s[0];s.sort(Tk);for(let o=1;o<s.length;o++)s[o-1].equals(s[o])&&(s.splice(o,1),o--);if(s.length===1)return s[0];for(;s.length>1;){const o=s[s.length-1];if(o.type!==9)break;s.pop();const a=s.pop(),l=s.length===0,c=jp.create(o.expr.map(u=>ib.create([u,a],null,i)),null,l);c&&(s.push(c),s.sort(Tk))}if(s.length===1)return s[0];if(i){for(let o=0;o<s.length;o++)for(let a=o+1;a<s.length;a++)if(s[o].negate().equals(s[a]))return oa.INSTANCE;if(s.length===1)return s[0]}return new ib(s,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=jp.create(e,this,!0)}return this.negated}}class jp{static create(e,t,i){return jp._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const s=Tk(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=wLe(this.expr);return e===this.expr?this:jp.create(e,this.negated,!1)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(this.expr[t].evaluate(e))return!0;return!1}static _normalizeArr(e,t,i){let s=[],r=!1;if(e){for(let o=0,a=e.length;o<a;o++){const l=e[o];if(l){if(l.type===0){r=!0;continue}if(l.type===1)return Pa.INSTANCE;if(l.type===9){s=s.concat(l.expr);continue}s.push(l)}}if(s.length===0&&r)return oa.INSTANCE;s.sort(Tk)}if(s.length!==0){if(s.length===1)return s[0];for(let o=1;o<s.length;o++)s[o-1].equals(s[o])&&(s.splice(o,1),o--);if(s.length===1)return s[0];if(i){for(let o=0;o<s.length;o++)for(let a=o+1;a<s.length;a++)if(s[o].negate().equals(s[a]))return Pa.INSTANCE;if(s.length===1)return s[0]}return new jp(s,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),s=[];for(const r of bue(t))for(const o of bue(i))s.push(ib.create([r,o],null,!1));e.unshift(jp.create(s,null,!1))}this.negated=jp.create(e,this,!0)}return this.negated}}const cC=class cC extends I0{static all(){return cC._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?cC._info.push({...i,key:e}):i!==!0&&cC._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return aL.create(this.key,e)}};cC._info=[];let $e=cC;const bt=ri("contextKeyService");function CLe(n,e){return n<e?-1:n>e?1:0}function D0(n,e,t,i){return n<t?-1:n>t?1:e<i?-1:e>i?1:0}function wz(n,e){if(n.type===0||e.type===1)return!0;if(n.type===9)return e.type===9?vue(n.expr,e.expr):!1;if(e.type===9){for(const t of e.expr)if(wz(n,t))return!0;return!1}if(n.type===6){if(e.type===6)return vue(e.expr,n.expr);for(const t of n.expr)if(wz(t,e))return!0;return!1}return n.equals(e)}function vue(n,e){let t=0,i=0;for(;t<n.length&&i<e.length;){const s=n[t].cmp(e[i]);if(s<0)return!1;s===0&&t++,i++}return t===n.length}function bue(n){return n.type===9?n.expr:[n]}function H7(n,e){if(!n)throw new Error(e?`Assertion failed (${e})`:"Assertion Failed")}function qB(n,e="Unreachable"){throw new Error(e)}function yue(n){n||Nt(new Li("Soft Assertion Failed"))}function Ky(n){if(!n()){debugger;n(),Nt(new Li("Assertion Failed"))}}function Pee(n,e){let t=0;for(;t<n.length-1;){const i=n[t],s=n[t+1];if(!e(i,s))return!1;t++}return!0}class Uut{constructor(){this.data=new Map}add(e,t){H7(Da(e)),H7(fr(t)),H7(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}const Vn=new Uut;class Ree{constructor(){this._coreKeybindings=new Go,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(cl===1){if(e&&e.win)return e.win}else if(cl===2){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=Ree.bindToCurrentPlatform(e),i=new be;if(t&&t.primary){const s=ez(t.primary,cl);s&&i.add(this._registerDefaultKeybinding(s,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let s=0,r=t.secondary.length;s<r;s++){const o=t.secondary[s],a=ez(o,cl);a&&i.add(this._registerDefaultKeybinding(a,e.id,e.args,e.weight,-s-1,e.when))}return i}registerCommandAndKeybindingRule(e){return Pu(this.registerKeybindingRule(e),di.registerCommand(e))}_registerDefaultKeybinding(e,t,i,s,r,o){const a=this._coreKeybindings.push({keybinding:e,command:t,commandArgs:i,when:o,weight1:s,weight2:r,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,lt(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(qut)),this._cachedMergedKeybindings.slice(0)}}const aa=new Ree,jut={EditorModes:"platform.keybindingsRegistry"};Vn.add(jut.EditorModes,aa);function qut(n,e){if(n.weight1!==e.weight1)return n.weight1-e.weight1;if(n.command&&e.command){if(n.command<e.command)return-1;if(n.command>e.command)return 1}return n.weight2-e.weight2}var Kut=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},wue=function(n,e){return function(t,i){e(t,i,n)}},cM;function FC(n){return n.command!==void 0}function Gut(n){return n.submenu!==void 0}const X=class X{constructor(e){if(X._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);X._instances.set(e,this),this.id=e}};X._instances=new Map,X.CommandPalette=new X("CommandPalette"),X.DebugBreakpointsContext=new X("DebugBreakpointsContext"),X.DebugCallStackContext=new X("DebugCallStackContext"),X.DebugConsoleContext=new X("DebugConsoleContext"),X.DebugVariablesContext=new X("DebugVariablesContext"),X.NotebookVariablesContext=new X("NotebookVariablesContext"),X.DebugHoverContext=new X("DebugHoverContext"),X.DebugWatchContext=new X("DebugWatchContext"),X.DebugToolBar=new X("DebugToolBar"),X.DebugToolBarStop=new X("DebugToolBarStop"),X.DebugCallStackToolbar=new X("DebugCallStackToolbar"),X.EditorContext=new X("EditorContext"),X.SimpleEditorContext=new X("SimpleEditorContext"),X.EditorContent=new X("EditorContent"),X.EditorLineNumberContext=new X("EditorLineNumberContext"),X.EditorContextCopy=new X("EditorContextCopy"),X.EditorContextPeek=new X("EditorContextPeek"),X.EditorContextShare=new X("EditorContextShare"),X.EditorTitle=new X("EditorTitle"),X.EditorTitleRun=new X("EditorTitleRun"),X.EditorTitleContext=new X("EditorTitleContext"),X.EditorTitleContextShare=new X("EditorTitleContextShare"),X.EmptyEditorGroup=new X("EmptyEditorGroup"),X.EmptyEditorGroupContext=new X("EmptyEditorGroupContext"),X.EditorTabsBarContext=new X("EditorTabsBarContext"),X.EditorTabsBarShowTabsSubmenu=new X("EditorTabsBarShowTabsSubmenu"),X.EditorTabsBarShowTabsZenModeSubmenu=new X("EditorTabsBarShowTabsZenModeSubmenu"),X.EditorActionsPositionSubmenu=new X("EditorActionsPositionSubmenu"),X.ExplorerContext=new X("ExplorerContext"),X.ExplorerContextShare=new X("ExplorerContextShare"),X.ExtensionContext=new X("ExtensionContext"),X.GlobalActivity=new X("GlobalActivity"),X.CommandCenter=new X("CommandCenter"),X.CommandCenterCenter=new X("CommandCenterCenter"),X.LayoutControlMenuSubmenu=new X("LayoutControlMenuSubmenu"),X.LayoutControlMenu=new X("LayoutControlMenu"),X.MenubarMainMenu=new X("MenubarMainMenu"),X.MenubarAppearanceMenu=new X("MenubarAppearanceMenu"),X.MenubarDebugMenu=new X("MenubarDebugMenu"),X.MenubarEditMenu=new X("MenubarEditMenu"),X.MenubarCopy=new X("MenubarCopy"),X.MenubarFileMenu=new X("MenubarFileMenu"),X.MenubarGoMenu=new X("MenubarGoMenu"),X.MenubarHelpMenu=new X("MenubarHelpMenu"),X.MenubarLayoutMenu=new X("MenubarLayoutMenu"),X.MenubarNewBreakpointMenu=new X("MenubarNewBreakpointMenu"),X.PanelAlignmentMenu=new X("PanelAlignmentMenu"),X.PanelPositionMenu=new X("PanelPositionMenu"),X.ActivityBarPositionMenu=new X("ActivityBarPositionMenu"),X.MenubarPreferencesMenu=new X("MenubarPreferencesMenu"),X.MenubarRecentMenu=new X("MenubarRecentMenu"),X.MenubarSelectionMenu=new X("MenubarSelectionMenu"),X.MenubarShare=new X("MenubarShare"),X.MenubarSwitchEditorMenu=new X("MenubarSwitchEditorMenu"),X.MenubarSwitchGroupMenu=new X("MenubarSwitchGroupMenu"),X.MenubarTerminalMenu=new X("MenubarTerminalMenu"),X.MenubarViewMenu=new X("MenubarViewMenu"),X.MenubarHomeMenu=new X("MenubarHomeMenu"),X.OpenEditorsContext=new X("OpenEditorsContext"),X.OpenEditorsContextShare=new X("OpenEditorsContextShare"),X.ProblemsPanelContext=new X("ProblemsPanelContext"),X.SCMInputBox=new X("SCMInputBox"),X.SCMChangesSeparator=new X("SCMChangesSeparator"),X.SCMChangesContext=new X("SCMChangesContext"),X.SCMIncomingChanges=new X("SCMIncomingChanges"),X.SCMIncomingChangesContext=new X("SCMIncomingChangesContext"),X.SCMIncomingChangesSetting=new X("SCMIncomingChangesSetting"),X.SCMOutgoingChanges=new X("SCMOutgoingChanges"),X.SCMOutgoingChangesContext=new X("SCMOutgoingChangesContext"),X.SCMOutgoingChangesSetting=new X("SCMOutgoingChangesSetting"),X.SCMIncomingChangesAllChangesContext=new X("SCMIncomingChangesAllChangesContext"),X.SCMIncomingChangesHistoryItemContext=new X("SCMIncomingChangesHistoryItemContext"),X.SCMOutgoingChangesAllChangesContext=new X("SCMOutgoingChangesAllChangesContext"),X.SCMOutgoingChangesHistoryItemContext=new X("SCMOutgoingChangesHistoryItemContext"),X.SCMChangeContext=new X("SCMChangeContext"),X.SCMResourceContext=new X("SCMResourceContext"),X.SCMResourceContextShare=new X("SCMResourceContextShare"),X.SCMResourceFolderContext=new X("SCMResourceFolderContext"),X.SCMResourceGroupContext=new X("SCMResourceGroupContext"),X.SCMSourceControl=new X("SCMSourceControl"),X.SCMSourceControlInline=new X("SCMSourceControlInline"),X.SCMSourceControlTitle=new X("SCMSourceControlTitle"),X.SCMTitle=new X("SCMTitle"),X.SearchContext=new X("SearchContext"),X.SearchActionMenu=new X("SearchActionContext"),X.StatusBarWindowIndicatorMenu=new X("StatusBarWindowIndicatorMenu"),X.StatusBarRemoteIndicatorMenu=new X("StatusBarRemoteIndicatorMenu"),X.StickyScrollContext=new X("StickyScrollContext"),X.TestItem=new X("TestItem"),X.TestItemGutter=new X("TestItemGutter"),X.TestProfilesContext=new X("TestProfilesContext"),X.TestMessageContext=new X("TestMessageContext"),X.TestMessageContent=new X("TestMessageContent"),X.TestPeekElement=new X("TestPeekElement"),X.TestPeekTitle=new X("TestPeekTitle"),X.TestCallStack=new X("TestCallStack"),X.TouchBarContext=new X("TouchBarContext"),X.TitleBarContext=new X("TitleBarContext"),X.TitleBarTitleContext=new X("TitleBarTitleContext"),X.TunnelContext=new X("TunnelContext"),X.TunnelPrivacy=new X("TunnelPrivacy"),X.TunnelProtocol=new X("TunnelProtocol"),X.TunnelPortInline=new X("TunnelInline"),X.TunnelTitle=new X("TunnelTitle"),X.TunnelLocalAddressInline=new X("TunnelLocalAddressInline"),X.TunnelOriginInline=new X("TunnelOriginInline"),X.ViewItemContext=new X("ViewItemContext"),X.ViewContainerTitle=new X("ViewContainerTitle"),X.ViewContainerTitleContext=new X("ViewContainerTitleContext"),X.ViewTitle=new X("ViewTitle"),X.ViewTitleContext=new X("ViewTitleContext"),X.CommentEditorActions=new X("CommentEditorActions"),X.CommentThreadTitle=new X("CommentThreadTitle"),X.CommentThreadActions=new X("CommentThreadActions"),X.CommentThreadAdditionalActions=new X("CommentThreadAdditionalActions"),X.CommentThreadTitleContext=new X("CommentThreadTitleContext"),X.CommentThreadCommentContext=new X("CommentThreadCommentContext"),X.CommentTitle=new X("CommentTitle"),X.CommentActions=new X("CommentActions"),X.CommentsViewThreadActions=new X("CommentsViewThreadActions"),X.InteractiveToolbar=new X("InteractiveToolbar"),X.InteractiveCellTitle=new X("InteractiveCellTitle"),X.InteractiveCellDelete=new X("InteractiveCellDelete"),X.InteractiveCellExecute=new X("InteractiveCellExecute"),X.InteractiveInputExecute=new X("InteractiveInputExecute"),X.InteractiveInputConfig=new X("InteractiveInputConfig"),X.ReplInputExecute=new X("ReplInputExecute"),X.IssueReporter=new X("IssueReporter"),X.NotebookToolbar=new X("NotebookToolbar"),X.NotebookStickyScrollContext=new X("NotebookStickyScrollContext"),X.NotebookCellTitle=new X("NotebookCellTitle"),X.NotebookCellDelete=new X("NotebookCellDelete"),X.NotebookCellInsert=new X("NotebookCellInsert"),X.NotebookCellBetween=new X("NotebookCellBetween"),X.NotebookCellListTop=new X("NotebookCellTop"),X.NotebookCellExecute=new X("NotebookCellExecute"),X.NotebookCellExecuteGoTo=new X("NotebookCellExecuteGoTo"),X.NotebookCellExecutePrimary=new X("NotebookCellExecutePrimary"),X.NotebookDiffCellInputTitle=new X("NotebookDiffCellInputTitle"),X.NotebookDiffCellMetadataTitle=new X("NotebookDiffCellMetadataTitle"),X.NotebookDiffCellOutputsTitle=new X("NotebookDiffCellOutputsTitle"),X.NotebookOutputToolbar=new X("NotebookOutputToolbar"),X.NotebookOutlineFilter=new X("NotebookOutlineFilter"),X.NotebookOutlineActionMenu=new X("NotebookOutlineActionMenu"),X.NotebookEditorLayoutConfigure=new X("NotebookEditorLayoutConfigure"),X.NotebookKernelSource=new X("NotebookKernelSource"),X.BulkEditTitle=new X("BulkEditTitle"),X.BulkEditContext=new X("BulkEditContext"),X.TimelineItemContext=new X("TimelineItemContext"),X.TimelineTitle=new X("TimelineTitle"),X.TimelineTitleContext=new X("TimelineTitleContext"),X.TimelineFilterSubMenu=new X("TimelineFilterSubMenu"),X.AccountsContext=new X("AccountsContext"),X.SidebarTitle=new X("SidebarTitle"),X.PanelTitle=new X("PanelTitle"),X.AuxiliaryBarTitle=new X("AuxiliaryBarTitle"),X.AuxiliaryBarHeader=new X("AuxiliaryBarHeader"),X.TerminalInstanceContext=new X("TerminalInstanceContext"),X.TerminalEditorInstanceContext=new X("TerminalEditorInstanceContext"),X.TerminalNewDropdownContext=new X("TerminalNewDropdownContext"),X.TerminalTabContext=new X("TerminalTabContext"),X.TerminalTabEmptyAreaContext=new X("TerminalTabEmptyAreaContext"),X.TerminalStickyScrollContext=new X("TerminalStickyScrollContext"),X.WebviewContext=new X("WebviewContext"),X.InlineCompletionsActions=new X("InlineCompletionsActions"),X.InlineEditsActions=new X("InlineEditsActions"),X.InlineEditActions=new X("InlineEditActions"),X.NewFile=new X("NewFile"),X.MergeInput1Toolbar=new X("MergeToolbar1Toolbar"),X.MergeInput2Toolbar=new X("MergeToolbar2Toolbar"),X.MergeBaseToolbar=new X("MergeBaseToolbar"),X.MergeInputResultToolbar=new X("MergeToolbarResultToolbar"),X.InlineSuggestionToolbar=new X("InlineSuggestionToolbar"),X.InlineEditToolbar=new X("InlineEditToolbar"),X.ChatContext=new X("ChatContext"),X.ChatCodeBlock=new X("ChatCodeblock"),X.ChatCompareBlock=new X("ChatCompareBlock"),X.ChatMessageTitle=new X("ChatMessageTitle"),X.ChatExecute=new X("ChatExecute"),X.ChatExecuteSecondary=new X("ChatExecuteSecondary"),X.ChatInputSide=new X("ChatInputSide"),X.AccessibleView=new X("AccessibleView"),X.MultiDiffEditorFileToolbar=new X("MultiDiffEditorFileToolbar"),X.DiffEditorHunkToolbar=new X("DiffEditorHunkToolbar"),X.DiffEditorSelectionToolbar=new X("DiffEditorSelectionToolbar");let et=X;const vc=ri("menuService"),pI=class pI{static for(e){let t=this._all.get(e);return t||(t=new pI(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof pI&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}};pI._all=new Map;let Dv=pI;const pr=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new Flt({merge:Dv.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(n){return this._commands.set(n.id,n),this._onDidChangeMenu.fire(Dv.for(et.CommandPalette)),lt(()=>{this._commands.delete(n.id)&&this._onDidChangeMenu.fire(Dv.for(et.CommandPalette))})}getCommand(n){return this._commands.get(n)}getCommands(){const n=new Map;return this._commands.forEach((e,t)=>n.set(t,e)),n}appendMenuItem(n,e){let t=this._menuItems.get(n);t||(t=new Go,this._menuItems.set(n,t));const i=t.push(e);return this._onDidChangeMenu.fire(Dv.for(n)),lt(()=>{i(),this._onDidChangeMenu.fire(Dv.for(n))})}appendMenuItems(n){const e=new be;for(const{id:t,item:i}of n)e.add(this.appendMenuItem(t,i));return e}getMenuItems(n){let e;return this._menuItems.has(n)?e=[...this._menuItems.get(n)]:e=[],n===et.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(n){const e=new Set;for(const t of n)FC(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||n.push({command:t})})}};class BC extends GS{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}}let fl=cM=class{static label(e,t){return t!=null&&t.renderShortTitle&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value}constructor(e,t,i,s,r,o,a){var c;this.hideActions=s,this.menuKeybinding=r,this._commandService=a,this.id=e.id,this.label=cM.label(e,i),this.tooltip=(typeof e.tooltip=="string"?e.tooltip:(c=e.tooltip)==null?void 0:c.value)??"",this.enabled=!e.precondition||o.contextMatchesRules(e.precondition),this.checked=void 0;let l;if(e.toggled){const u=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=o.contextMatchesRules(u.condition),this.checked&&u.tooltip&&(this.tooltip=typeof u.tooltip=="string"?u.tooltip:u.tooltip.value),this.checked&&ft.isThemeIcon(u.icon)&&(l=u.icon),this.checked&&u.title&&(this.label=typeof u.title=="string"?u.title:u.title.value)}l||(l=ft.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new cM(t,void 0,i,s,void 0,o,a):void 0,this._options=i,this.class=l&&ft.asClassName(l)}run(...e){var i,s;let t=[];return(i=this._options)!=null&&i.arg&&(t=[...t,this._options.arg]),(s=this._options)!=null&&s.shouldForwardArgs&&(t=[...t,...e]),this._commandService.executeCommand(this.id,...t)}};fl=cM=Kut([wue(5,bt),wue(6,an)],fl);class ca{constructor(e){this.desc=e}}function nn(n){const e=[],t=new n,{f1:i,menu:s,keybinding:r,...o}=t.desc;if(di.getCommand(o.id))throw new Error(`Cannot register two commands with the same id: ${o.id}`);if(e.push(di.registerCommand({id:o.id,handler:(a,...l)=>t.run(a,...l),metadata:o.metadata})),Array.isArray(s))for(const a of s)e.push(pr.appendMenuItem(a.id,{command:{...o,precondition:a.precondition===null?void 0:o.precondition},...a}));else s&&e.push(pr.appendMenuItem(s.id,{command:{...o,precondition:s.precondition===null?void 0:o.precondition},...s}));if(i&&(e.push(pr.appendMenuItem(et.CommandPalette,{command:o,when:o.precondition})),e.push(pr.addCommand(o))),Array.isArray(r))for(const a of r)e.push(aa.registerKeybindingRule({...a,id:o.id,when:o.precondition?ye.and(o.precondition,a.when):a.when}));else r&&e.push(aa.registerKeybindingRule({...r,id:o.id,when:o.precondition?ye.and(o.precondition,r.when):r.when}));return{dispose(){Yi(e)}}}const Ro=ri("telemetryService"),co=ri("logService");var xa;(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(xa||(xa={}));const SLe=xa.Info;class xLe extends ue{constructor(){super(...arguments),this.level=SLe,this._onDidChangeLogLevel=this._register(new oe),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==xa.Off&&this.level<=e}}class Xut extends xLe{constructor(e=SLe,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.checkLogLevel(xa.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",e,...t):console.log(e,...t))}debug(e,...t){this.checkLogLevel(xa.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",e,...t):console.log(e,...t))}info(e,...t){this.checkLogLevel(xa.Info)&&(this.useColors?console.log("%c INFO","color: #33f",e,...t):console.log(e,...t))}warn(e,...t){this.checkLogLevel(xa.Warning)&&(this.useColors?console.log("%c WARN","color: #993",e,...t):console.log(e,...t))}error(e,...t){this.checkLogLevel(xa.Error)&&(this.useColors?console.log("%c ERR","color: #f33",e,...t):console.error(e,...t))}}class Yut extends xLe{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(const t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(const i of this.loggers)i.trace(e,...t)}debug(e,...t){for(const i of this.loggers)i.debug(e,...t)}info(e,...t){for(const i of this.loggers)i.info(e,...t)}warn(e,...t){for(const i of this.loggers)i.warn(e,...t)}error(e,...t){for(const i of this.loggers)i.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose();super.dispose()}}function Zut(n){switch(n){case xa.Trace:return"trace";case xa.Debug:return"debug";case xa.Info:return"info";case xa.Warning:return"warn";case xa.Error:return"error";case xa.Off:return"off"}}new $e("logLevel",Zut(xa.Info));let KB=class{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let i=t.kbExpr;this.precondition&&(i?i=ye.and(i,this.precondition):i=this.precondition);const s={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};aa.registerKeybindingRule(s)}}di.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata})}_registerMenuItem(e){pr.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}};class lL extends KB{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,s){return this._implementations.push({priority:e,name:t,implementation:i,when:s}),this._implementations.sort((r,o)=>o.priority-r.priority),{dispose:()=>{for(let r=0;r<this._implementations.length;r++)if(this._implementations[r].implementation===i){this._implementations.splice(r,1);return}}}}runCommand(e,t){const i=e.get(co),s=e.get(bt);i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);for(const r of this._implementations){if(r.when){const a=s.getContext(zr());if(!r.when.evaluate(a))continue}const o=r.implementation(e,t);if(o)return i.trace(`Command '${this.id}' was handled by '${r.name}'.`),typeof o=="boolean"?void 0:o}i.trace(`The Command '${this.id}' was not handled by any implementation.`)}}class LLe extends KB{constructor(e,t){super(t),this.command=e}runCommand(e,t){return this.command.runCommand(e,t)}}class Gs extends KB{static bindToContribution(e){return class extends Gs{constructor(i){super(i),this._callback=i.handler}runEditorCommand(i,s,r){const o=e(s);o&&this._callback(o,r)}}}static runEditorCommand(e,t,i,s){const r=e.get(wi),o=r.getFocusedCodeEditor()||r.getActiveCodeEditor();if(o)return o.invokeWithinContext(a=>{if(a.get(bt).contextMatchesRules(i??void 0))return s(a,o,t)})}runCommand(e,t){return Gs.runEditorCommand(e,t,this.precondition,(i,s,r)=>this.runEditorCommand(i,s,r))}}class Xe extends Gs{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(s){return s.menuId||(s.menuId=et.EditorContext),s.title||(s.title=e.label),s.when=ye.and(e.precondition,s.when),s}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(Xe.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Ro).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class ELe extends Xe{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,s)=>s[0]-i[0]),{dispose:()=>{for(let i=0;i<this._implementations.length;i++)if(this._implementations[i][1]===t){this._implementations.splice(i,1);return}}}}run(e,t,i){for(const s of this._implementations){const r=s[1](e,t,i);if(r)return typeof r=="boolean"?void 0:r}}}class pd extends ca{run(e,...t){const i=e.get(wi),s=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(s)return s.invokeWithinContext(r=>{var c;const o=r.get(bt),a=r.get(co);if(!o.contextMatchesRules(this.desc.precondition??void 0)){a.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(c=this.desc.precondition)==null?void 0:c.serialize());return}return this.runEditorCommand(r,s,...t)})}}function Va(n,e){di.registerCommand(n,function(t,...i){const s=t.get(ct),[r,o]=i;yi(mt.isUri(r)),yi(se.isIPosition(o));const a=t.get(mn).getModel(r);if(a){const l=se.lift(o);return s.invokeFunction(e,a,l,...i.slice(2))}return t.get(Wa).createModelReference(r).then(l=>new Promise((c,u)=>{try{const h=s.invokeFunction(e,l.object.textEditorModel,se.lift(o),i.slice(2));c(h)}catch(h){u(h)}}).finally(()=>{l.dispose()}))})}function Ve(n){return Rc.INSTANCE.registerEditorCommand(n),n}function Ie(n){const e=new n;return Rc.INSTANCE.registerEditorAction(e),e}function kLe(n){return Rc.INSTANCE.registerEditorAction(n),n}function Qut(n){Rc.INSTANCE.registerEditorAction(n)}function _i(n,e,t){Rc.INSTANCE.registerEditorContribution(n,e,t)}var wb;(function(n){function e(o){return Rc.INSTANCE.getEditorCommand(o)}n.getEditorCommand=e;function t(){return Rc.INSTANCE.getEditorActions()}n.getEditorActions=t;function i(){return Rc.INSTANCE.getEditorContributions()}n.getEditorContributions=i;function s(o){return Rc.INSTANCE.getEditorContributions().filter(a=>o.indexOf(a.id)>=0)}n.getSomeEditorContributions=s;function r(){return Rc.INSTANCE.getDiffEditorContributions()}n.getDiffEditorContributions=r})(wb||(wb={}));const Jut={EditorCommonContributions:"editor.contributions"},h3=class h3{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}};h3.INSTANCE=new h3;let Rc=h3;Vn.add(Jut.EditorCommonContributions,Rc.INSTANCE);function TN(n){return n.register(),n}const ILe=TN(new lL({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:et.MenubarEditMenu,group:"1_do",title:v({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:et.CommandPalette,group:"",title:v("undo","Undo"),order:1}]}));TN(new LLe(ILe,{id:"default:undo",precondition:void 0}));const TLe=TN(new lL({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:et.MenubarEditMenu,group:"1_do",title:v({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:et.CommandPalette,group:"",title:v("redo","Redo"),order:1}]}));TN(new LLe(TLe,{id:"default:redo",precondition:void 0}));const eht=TN(new lL({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:et.MenubarSelectionMenu,group:"1_basic",title:v({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:et.CommandPalette,group:"",title:v("selectAll","Select All"),order:1}]}));let O=class _r{constructor(e,t,i,s){e>i||e===i&&t>s?(this.startLineNumber=i,this.startColumn=s,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=s)}isEmpty(){return _r.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return _r.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<e.startColumn||t.lineNumber===e.endLineNumber&&t.column>e.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return _r.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)}strictContainsRange(e){return _r.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return _r.plusRange(this,e)}static plusRange(e,t){let i,s,r,o;return t.startLineNumber<e.startLineNumber?(i=t.startLineNumber,s=t.startColumn):t.startLineNumber===e.startLineNumber?(i=t.startLineNumber,s=Math.min(t.startColumn,e.startColumn)):(i=e.startLineNumber,s=e.startColumn),t.endLineNumber>e.endLineNumber?(r=t.endLineNumber,o=t.endColumn):t.endLineNumber===e.endLineNumber?(r=t.endLineNumber,o=Math.max(t.endColumn,e.endColumn)):(r=e.endLineNumber,o=e.endColumn),new _r(i,s,r,o)}intersectRanges(e){return _r.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,s=e.startColumn,r=e.endLineNumber,o=e.endColumn;const a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,u=t.endColumn;return i<a?(i=a,s=l):i===a&&(s=Math.max(s,l)),r>c?(r=c,o=u):r===c&&(o=Math.min(o,u)),i>r||i===r&&s>o?null:new _r(i,s,r,o)}equalsRange(e){return _r.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return _r.getEndPosition(this)}static getEndPosition(e){return new se(e.endLineNumber,e.endColumn)}getStartPosition(){return _r.getStartPosition(this)}static getStartPosition(e){return new se(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new _r(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new _r(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return _r.collapseToStart(this)}static collapseToStart(e){return new _r(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return _r.collapseToEnd(this)}static collapseToEnd(e){return new _r(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new _r(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e,t=e){return new _r(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new _r(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}static areIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}static compareRangesUsingStarts(e,t){if(e&&t){const r=e.startLineNumber|0,o=t.startLineNumber|0;if(r===o){const a=e.startColumn|0,l=t.startColumn|0;if(a===l){const c=e.endLineNumber|0,u=t.endLineNumber|0;if(c===u){const h=e.endColumn|0,d=t.endColumn|0;return h-d}return c-u}return a-l}return r-o}return(e?1:0)-(t?1:0)}static compareRangesUsingEnds(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}static spansMultipleLines(e){return e.endLineNumber>e.startLineNumber}toJSON(){return this}},nt=class gu extends O{constructor(e,t,i,s){super(e,t,i,s),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return gu.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new gu(this.startLineNumber,this.startColumn,e,t):new gu(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new se(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new se(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new gu(e,t,this.endLineNumber,this.endColumn):new gu(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new gu(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new gu(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new gu(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new gu(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,s=e.length;i<s;i++)if(!this.selectionsEqual(e[i],t[i]))return!1;return!0}static isISelection(e){return e&&typeof e.selectionStartLineNumber=="number"&&typeof e.selectionStartColumn=="number"&&typeof e.positionLineNumber=="number"&&typeof e.positionColumn=="number"}static createWithDirection(e,t,i,s,r){return r===0?new gu(e,t,i,s):new gu(i,s,e,t)}};function nb(n,e){const t=n.getCount(),i=n.findTokenIndexAtOffset(e),s=n.getLanguageId(i);let r=i;for(;r+1<t&&n.getLanguageId(r+1)===s;)r++;let o=i;for(;o>0&&n.getLanguageId(o-1)===s;)o--;return new tht(n,s,o,r+1,n.getStartOffset(o),n.getEndOffset(r))}class tht{constructor(e,t,i,s,r,o){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=s,this.firstCharOffset=r,this._lastCharOffset=o,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function Dd(n){return(n&3)!==0}class Vs{static _nextVisibleColumn(e,t,i){return e===9?Vs.nextRenderTabStop(t,i):r_(e)||xee(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const s=Math.min(t-1,e.length),r=e.substring(0,s),o=new oF(r);let a=0;for(;!o.eol();){const l=rF(r,s,o.offset);o.nextGraphemeLength(),a=this._nextVisibleColumn(l,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const s=e.length,r=new oF(e);let o=0,a=1;for(;!r.eol();){const l=rF(e,s,r.offset);r.nextGraphemeLength();const c=this._nextVisibleColumn(l,o,i),u=r.offset+1;if(c>=t){const h=t-o;return c-t<h?u:a}o=c,a=u}return s+1}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return e+t-e%t}static prevRenderTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}static prevIndentTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}}function iht(n,e,t){let i=0;for(let r=0;r<n.length;r++)n.charAt(r)===" "?i=Vs.nextIndentTabStop(i,e):i++;let s="";if(!t){const r=Math.floor(i/e);i=i%e;for(let o=0;o<r;o++)s+=" "}for(let r=0;r<i;r++)s+=" ";return s}function Mee(n,e,t){let i=Io(n);return i===-1&&(i=n.length),iht(n.substring(0,i),e,t)+n.substring(i)}const nht=()=>!0,sht=()=>!1,rht=n=>n===" "||n===" ";class nw{static shouldRecreate(e){return e.hasChanged(146)||e.hasChanged(132)||e.hasChanged(37)||e.hasChanged(77)||e.hasChanged(79)||e.hasChanged(80)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(129)||e.hasChanged(50)||e.hasChanged(92)||e.hasChanged(131)}constructor(e,t,i,s){this.languageConfigurationService=s,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const r=i.options,o=r.get(146),a=r.get(50);this.readOnly=r.get(92),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=r.get(117),this.lineHeight=a.lineHeight,this.typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(o.height/this.lineHeight)-2),this.useTabStops=r.get(129),this.wordSeparators=r.get(132),this.emptySelectionClipboard=r.get(37),this.copyWithSyntaxHighlighting=r.get(25),this.multiCursorMergeOverlapping=r.get(77),this.multiCursorPaste=r.get(79),this.multiCursorLimit=r.get(80),this.autoClosingBrackets=r.get(6),this.autoClosingComments=r.get(7),this.autoClosingQuotes=r.get(11),this.autoClosingDelete=r.get(9),this.autoClosingOvertype=r.get(10),this.autoSurround=r.get(14),this.autoIndent=r.get(12),this.wordSegmenterLocales=r.get(131),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const l=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(l)for(const u of l)this.surroundingPairs[u.open]=u.close;const c=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(c==null?void 0:c.blockCommentStartToken)??null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)==null?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const s=nb(t,i-1),r=this.languageConfigurationService.getLanguageConfiguration(s.languageId).electricCharacter;return r?r.onElectricCharacter(e,s,i-s.firstCharOffset):null}normalizeIndentation(e){return Mee(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return rht;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return nht;case"never":return sht}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return s=>i.indexOf(s)!==-1}visibleColumnFromColumn(e,t){return Vs.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const s=Vs.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),r=e.getLineMinColumn(t);if(s<r)return r;const o=e.getLineMaxColumn(t);return s>o?o:s}}let bi=class DLe{static fromModelState(e){return new oht(e)}static fromViewState(e){return new aht(e)}static fromModelSelection(e){const t=nt.liftSelection(e),i=new Cr(O.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return DLe.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,s=e.length;i<s;i++)t[i]=this.fromModelSelection(e[i]);return t}constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}equals(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}};class oht{constructor(e){this.modelState=e,this.viewState=null}}class aht{constructor(e){this.modelState=null,this.viewState=e}}class Cr{constructor(e,t,i,s,r){this.selectionStart=e,this.selectionStartKind=t,this.selectionStartLeftoverVisibleColumns=i,this.position=s,this.leftoverVisibleColumns=r,this._singleCursorStateBrand=void 0,this.selection=Cr._computeSelection(this.selectionStart,this.position)}equals(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.selectionStartKind===e.selectionStartKind&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}hasSelection(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}move(e,t,i,s){return e?new Cr(this.selectionStart,this.selectionStartKind,this.selectionStartLeftoverVisibleColumns,new se(t,i),s):new Cr(new O(t,i,t,i),0,s,new se(t,i),s)}static _computeSelection(e,t){return e.isEmpty()||!t.isBeforeOrEqual(e.getStartPosition())?nt.fromPositions(e.getStartPosition(),t):nt.fromPositions(e.getEndPosition(),t)}}class Ra{constructor(e,t,i){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter}}function a_(n){return n==="'"||n==='"'||n==="`"}class Nv{static columnSelect(e,t,i,s,r,o){const a=Math.abs(r-i)+1,l=i>r,c=s>o,u=s<o,h=[];for(let d=0;d<a;d++){const f=i+(l?-d:d),p=e.columnFromVisibleColumn(t,f,s),g=e.columnFromVisibleColumn(t,f,o),m=e.visibleColumnFromColumn(t,new se(f,p)),_=e.visibleColumnFromColumn(t,new se(f,g));u&&(m>o||_<s)||c&&(_>s||m<o)||h.push(new Cr(new O(f,p,f,p),0,0,new se(f,g),0))}if(h.length===0)for(let d=0;d<a;d++){const f=i+(l?-d:d),p=t.getLineMaxColumn(f);h.push(new Cr(new O(f,p,f,p),0,0,new se(f,p),0))}return{viewStates:h,reversed:l,fromLineNumber:i,fromVisualColumn:s,toLineNumber:r,toVisualColumn:o}}static columnSelectLeft(e,t,i){let s=i.toViewVisualColumn;return s>0&&s--,Nv.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,s)}static columnSelectRight(e,t,i){let s=0;const r=Math.min(i.fromViewLineNumber,i.toViewLineNumber),o=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=r;l<=o;l++){const c=t.getLineMaxColumn(l),u=e.visibleColumnFromColumn(t,new se(l,c));s=Math.max(s,u)}let a=i.toViewVisualColumn;return a<s&&a++,this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,a)}static columnSelectUp(e,t,i,s){const r=s?e.pageSize:1,o=Math.max(1,i.toViewLineNumber-r);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,o,i.toViewVisualColumn)}static columnSelectDown(e,t,i,s){const r=s?e.pageSize:1,o=Math.min(t.getLineCount(),i.toViewLineNumber+r);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,o,i.toViewVisualColumn)}}class Wr{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return nt.fromPositions(s.getEndPosition())}}class lht{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return nt.fromRange(s,0)}}class uM{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return nt.fromPositions(s.getStartPosition())}}class vF{constructor(e,t,i,s,r=!1){this._range=e,this._text=t,this._columnDeltaOffset=s,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=r}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return nt.fromPositions(s.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class Oee{constructor(e,t,i,s=!1){this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=s,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}class yT{static whitespaceVisibleColumn(e,t,i){const s=e.length;let r=0,o=-1,a=-1;for(let l=0;l<s;l++){if(l===t)return[o,a,r];switch(r%i===0&&(o=l,a=r),e.charCodeAt(l)){case 32:r+=1;break;case 9:r=Vs.nextRenderTabStop(r,i);break;default:return[-1,-1,-1]}}return t===s?[o,a,r]:[-1,-1,-1]}static atomicPosition(e,t,i,s){const r=e.length,[o,a,l]=yT.whitespaceVisibleColumn(e,t,i);if(l===-1)return-1;let c;switch(s){case 0:c=!0;break;case 1:c=!1;break;case 2:if(l%i===0)return t;c=l%i<=i/2;break}if(c){if(o===-1)return-1;let d=a;for(let f=o;f<r;++f){if(d===a+i)return o;switch(e.charCodeAt(f)){case 32:d+=1;break;case 9:d=Vs.nextRenderTabStop(d,i);break;default:return-1}}return d===a+i?o:-1}const u=Vs.nextRenderTabStop(l,i);let h=l;for(let d=t;d<r;d++){if(h===u)return d;switch(e.charCodeAt(d)){case 32:h+=1;break;case 9:h=Vs.nextRenderTabStop(h,i);break;default:return-1}}return h===u?r:-1}}class $7{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}}class Bi{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-Gxe(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new se(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const s=e.getLineMinColumn(t.lineNumber),r=e.getLineContent(t.lineNumber),o=yT.atomicPosition(r,t.column-1,i,0);if(o!==-1&&o+1>=s)return new se(t.lineNumber,o+1)}return this.leftPosition(e,t)}static left(e,t,i){const s=e.stickyTabStops?Bi.leftPositionAtomicSoftTabs(t,i,e.tabSize):Bi.leftPosition(t,i);return new $7(s.lineNumber,s.column,0)}static moveLeft(e,t,i,s,r){let o,a;if(i.hasSelection()&&!s)o=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(r-1)),c=t.normalizePosition(Bi.clipPositionColumn(l,t),0),u=Bi.left(e,t,c);o=u.lineNumber,a=u.column}return i.move(s,o,a,0)}static clipPositionColumn(e,t){return new se(e.lineNumber,Bi.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return e<t?t:e>i?i:e}static rightPosition(e,t,i){return i<e.getLineMaxColumn(t)?i=i+See(e.getLineContent(t),i-1):t<e.getLineCount()&&(t=t+1,i=e.getLineMinColumn(t)),new se(t,i)}static rightPositionAtomicSoftTabs(e,t,i,s,r){if(i<e.getLineIndentColumn(t)){const o=e.getLineContent(t),a=yT.atomicPosition(o,i-1,s,1);if(a!==-1)return new se(t,a+1)}return this.rightPosition(e,t,i)}static right(e,t,i){const s=e.stickyTabStops?Bi.rightPositionAtomicSoftTabs(t,i.lineNumber,i.column,e.tabSize,e.indentSize):Bi.rightPosition(t,i.lineNumber,i.column);return new $7(s.lineNumber,s.column,0)}static moveRight(e,t,i,s,r){let o,a;if(i.hasSelection()&&!s)o=i.selection.endLineNumber,a=i.selection.endColumn;else{const l=i.position.delta(void 0,r-1),c=t.normalizePosition(Bi.clipPositionColumn(l,t),1),u=Bi.right(e,t,c);o=u.lineNumber,a=u.column}return i.move(s,o,a,0)}static vertical(e,t,i,s,r,o,a,l){const c=Vs.visibleColumnFromColumn(t.getLineContent(i),s,e.tabSize)+r,u=t.getLineCount(),h=i===1&&s===1,d=i===u&&s===t.getLineMaxColumn(i),f=o<i?h:d;if(i=o,i<1?(i=1,a?s=t.getLineMinColumn(i):s=Math.min(t.getLineMaxColumn(i),s)):i>u?(i=u,a?s=t.getLineMaxColumn(i):s=Math.min(t.getLineMaxColumn(i),s)):s=e.columnFromVisibleColumn(t,i,c),f?r=0:r=c-Vs.visibleColumnFromColumn(t.getLineContent(i),s,e.tabSize),l!==void 0){const p=new se(i,s),g=t.normalizePosition(p,l);r=r+(s-g.column),i=g.lineNumber,s=g.column}return new $7(i,s,r)}static down(e,t,i,s,r,o,a){return this.vertical(e,t,i,s,r,i+o,a,4)}static moveDown(e,t,i,s,r){let o,a;i.hasSelection()&&!s?(o=i.selection.endLineNumber,a=i.selection.endColumn):(o=i.position.lineNumber,a=i.position.column);let l=0,c;do if(c=Bi.down(e,t,o+l,a,i.leftoverVisibleColumns,r,!0),t.normalizePosition(new se(c.lineNumber,c.column),2).lineNumber>o)break;while(l++<10&&o+l<t.getLineCount());return i.move(s,c.lineNumber,c.column,c.leftoverVisibleColumns)}static translateDown(e,t,i){const s=i.selection,r=Bi.down(e,t,s.selectionStartLineNumber,s.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),o=Bi.down(e,t,s.positionLineNumber,s.positionColumn,i.leftoverVisibleColumns,1,!1);return new Cr(new O(r.lineNumber,r.column,r.lineNumber,r.column),0,r.leftoverVisibleColumns,new se(o.lineNumber,o.column),o.leftoverVisibleColumns)}static up(e,t,i,s,r,o,a){return this.vertical(e,t,i,s,r,i-o,a,3)}static moveUp(e,t,i,s,r){let o,a;i.hasSelection()&&!s?(o=i.selection.startLineNumber,a=i.selection.startColumn):(o=i.position.lineNumber,a=i.position.column);const l=Bi.up(e,t,o,a,i.leftoverVisibleColumns,r,!0);return i.move(s,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateUp(e,t,i){const s=i.selection,r=Bi.up(e,t,s.selectionStartLineNumber,s.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),o=Bi.up(e,t,s.positionLineNumber,s.positionColumn,i.leftoverVisibleColumns,1,!1);return new Cr(new O(r.lineNumber,r.column,r.lineNumber,r.column),0,r.leftoverVisibleColumns,new se(o.lineNumber,o.column),o.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,i,s){let r=i.position.lineNumber;for(;r>1&&this._isBlankLine(t,r);)r--;for(;r>1&&!this._isBlankLine(t,r);)r--;return i.move(s,r,t.getLineMinColumn(r),0)}static moveToNextBlankLine(e,t,i,s){const r=t.getLineCount();let o=i.position.lineNumber;for(;o<r&&this._isBlankLine(t,o);)o++;for(;o<r&&!this._isBlankLine(t,o);)o++;return i.move(s,o,t.getLineMinColumn(o),0)}static moveToBeginningOfLine(e,t,i,s){const r=i.position.lineNumber,o=t.getLineMinColumn(r),a=t.getLineFirstNonWhitespaceColumn(r)||o;let l;return i.position.column===a?l=o:l=a,i.move(s,r,l,0)}static moveToEndOfLine(e,t,i,s,r){const o=i.position.lineNumber,a=t.getLineMaxColumn(o);return i.move(s,o,a,r?1073741824-a:0)}static moveToBeginningOfBuffer(e,t,i,s){return i.move(s,1,1,0)}static moveToEndOfBuffer(e,t,i,s){const r=t.getLineCount(),o=t.getLineMaxColumn(r);return i.move(s,r,o,0)}}class Gy{static deleteRight(e,t,i,s){const r=[];let o=e!==3;for(let a=0,l=s.length;a<l;a++){const c=s[a];let u=c;if(u.isEmpty()){const h=c.getPosition(),d=Bi.right(t,i,h);u=new O(d.lineNumber,d.column,h.lineNumber,h.column)}if(u.isEmpty()){r[a]=null;continue}u.startLineNumber!==u.endLineNumber&&(o=!0),r[a]=new Wr(u,"")}return[o,r]}static isAutoClosingPairDelete(e,t,i,s,r,o,a){if(t==="never"&&i==="never"||e==="never")return!1;for(let l=0,c=o.length;l<c;l++){const u=o[l],h=u.getPosition();if(!u.isEmpty())return!1;const d=r.getLineContent(h.lineNumber);if(h.column<2||h.column>=d.length+1)return!1;const f=d.charAt(h.column-2),p=s.get(f);if(!p)return!1;if(a_(f)){if(i==="never")return!1}else if(t==="never")return!1;const g=d.charAt(h.column-1);let m=!1;for(const _ of p)_.open===f&&_.close===g&&(m=!0);if(!m)return!1;if(e==="auto"){let _=!1;for(let b=0,w=a.length;b<w;b++){const C=a[b];if(h.lineNumber===C.startLineNumber&&h.column===C.startColumn){_=!0;break}}if(!_)return!1}}return!0}static _runAutoClosingPairDelete(e,t,i){const s=[];for(let r=0,o=i.length;r<o;r++){const a=i[r].getPosition(),l=new O(a.lineNumber,a.column-1,a.lineNumber,a.column+1);s[r]=new Wr(l,"")}return[!0,s]}static deleteLeft(e,t,i,s,r){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,i,s,r))return this._runAutoClosingPairDelete(t,i,s);const o=[];let a=e!==2;for(let l=0,c=s.length;l<c;l++){const u=Gy.getDeleteRange(s[l],i,t);if(u.isEmpty()){o[l]=null;continue}u.startLineNumber!==u.endLineNumber&&(a=!0),o[l]=new Wr(u,"")}return[a,o]}static getDeleteRange(e,t,i){if(!e.isEmpty())return e;const s=e.getPosition();if(i.useTabStops&&s.column>1){const r=t.getLineContent(s.lineNumber),o=Io(r),a=o===-1?r.length+1:o+1;if(s.column<=a){const l=i.visibleColumnFromColumn(t,s),c=Vs.prevIndentTabStop(l,i.indentSize),u=i.columnFromVisibleColumn(t,s.lineNumber,c);return new O(s.lineNumber,u,s.lineNumber,s.column)}}return O.fromPositions(Gy.getPositionAfterDeleteLeft(s,t),s)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=Ect(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new se(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const s=[];let r=null;i.sort((o,a)=>se.compare(o.getStartPosition(),a.getEndPosition()));for(let o=0,a=i.length;o<a;o++){const l=i[o];if(l.isEmpty())if(e.emptySelectionClipboard){const c=l.getPosition();let u,h,d,f;c.lineNumber<t.getLineCount()?(u=c.lineNumber,h=1,d=c.lineNumber+1,f=1):c.lineNumber>1&&(r==null?void 0:r.endLineNumber)!==c.lineNumber?(u=c.lineNumber-1,h=t.getLineMaxColumn(c.lineNumber-1),d=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(u=c.lineNumber,h=1,d=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));const p=new O(u,h,d,f);r=p,p.isEmpty()?s[o]=null:s[o]=new Wr(p,"")}else s[o]=null;else s[o]=new Wr(l,"")}return new Ra(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}var Cue,Sue;class cht{constructor(e,t){this.uri=e,this.value=t}}function uht(n){return Array.isArray(n)}const zv=class zv{constructor(e,t){if(this[Cue]="ResourceMap",e instanceof zv)this.map=new Map(e.map),this.toKey=t??zv.defaultToKey;else if(uht(e)){this.map=new Map,this.toKey=t??zv.defaultToKey;for(const[i,s]of e)this.set(i,s)}else this.map=new Map,this.toKey=e??zv.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new cht(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))==null?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(const[i,s]of this.map)e(s.value,s.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(Cue=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}};zv.defaultToKey=e=>e.toString();let js=zv;class hht{constructor(){this[Sue]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)==null?void 0:e.value}get last(){var e;return(e=this._tail)==null?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let s=this._map.get(e);if(s)s.value=t,i!==0&&this.touch(s,i);else{switch(s={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(s);break;case 1:this.addItemFirst(s);break;case 2:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let s=this._head;for(;s;){if(t?e.bind(t)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:i.key,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return s}values(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:i.value,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return s}entries(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:[i.key,i.value],done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return s}[(Sue=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.previous,i--;this._tail=t,this._size=i,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class dht extends hht{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class np extends dht{constructor(e,t=1){super(e,t)}trim(e){this.trimOld(e)}set(e,t){return super.set(e,t),this.checkTrim(),this}}class fht{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class Fee{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}function bF(n){return n<0?0:n>255?255:n|0}function sw(n){return n<0?0:n>4294967295?4294967295:n|0}class cL{constructor(e){const t=bF(e);this._defaultValue=t,this._asciiMap=cL._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);return t.fill(e),t}set(e,t){const i=bF(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class yF{constructor(){this._actual=new cL(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}class pht extends cL{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let i=0,s=e.length;i<s;i++)this.set(e.charCodeAt(i),2);this.set(32,1),this.set(9,1)}findPrevIntlWordBeforeOrAtOffset(e,t){let i=null;for(const s of this._getIntlSegmenterWordsOnLine(e)){if(s.index>t)break;i=s}return i}findNextIntlWordAtOrAfterOffset(e,t){for(const i of this._getIntlSegmenterWordsOnLine(e))if(!(i.index<t))return i;return null}_getIntlSegmenterWordsOnLine(e){return this._segmenter?this._cachedLine===e?this._cachedSegments:(this._cachedLine=e,this._cachedSegments=this._filterWordSegments(this._segmenter.segment(e)),this._cachedSegments):[]}_filterWordSegments(e){const t=[];for(const i of e)this._isWordLike(i)&&t.push(i);return t}_isWordLike(e){return!!e.isWordLike}}const xue=new np(10);function iu(n,e){const t=`${n}/${e.join(",")}`;let i=xue.get(t);return i||(i=new pht(n,e),xue.set(t,i)),i}class Ai{static _createWord(e,t,i,s,r){return{start:s,end:r,wordType:t,nextCharClass:i}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(s,e,i)}static _doFindPreviousWordOnLine(e,t,i){let s=0;const r=t.findPrevIntlWordBeforeOrAtOffset(e,i.column-2);for(let o=i.column-2;o>=0;o--){const a=e.charCodeAt(o),l=t.get(a);if(r&&o===r.index)return this._createIntlWord(r,l);if(l===0){if(s===2)return this._createWord(e,s,l,o+1,this._findEndOfWord(e,t,s,o+1));s=1}else if(l===2){if(s===1)return this._createWord(e,s,l,o+1,this._findEndOfWord(e,t,s,o+1));s=2}else if(l===1&&s!==0)return this._createWord(e,s,l,o+1,this._findEndOfWord(e,t,s,o+1))}return s!==0?this._createWord(e,s,1,0,this._findEndOfWord(e,t,s,0)):null}static _findEndOfWord(e,t,i,s){const r=t.findNextIntlWordAtOrAfterOffset(e,s),o=e.length;for(let a=s;a<o;a++){const l=e.charCodeAt(a),c=t.get(l);if(r&&a===r.index+r.segment.length||c===1||i===1&&c===2||i===2&&c===0)return a}return o}static _findNextWordOnLine(e,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindNextWordOnLine(s,e,i)}static _doFindNextWordOnLine(e,t,i){let s=0;const r=e.length,o=t.findNextIntlWordAtOrAfterOffset(e,i.column-1);for(let a=i.column-1;a<r;a++){const l=e.charCodeAt(a),c=t.get(l);if(o&&a===o.index)return this._createIntlWord(o,c);if(c===0){if(s===2)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a);s=1}else if(c===2){if(s===1)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a);s=2}else if(c===1&&s!==0)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a)}return s!==0?this._createWord(e,s,1,this._findStartOfWord(e,t,s,r-1),r):null}static _findStartOfWord(e,t,i,s){const r=t.findPrevIntlWordBeforeOrAtOffset(e,s);for(let o=s;o>=0;o--){const a=e.charCodeAt(o),l=t.get(a);if(r&&o===r.index)return o;if(l===1||i===1&&l===2||i===2&&l===0)return o+1}return 0}static moveWordLeft(e,t,i,s,r){let o=i.lineNumber,a=i.column;a===1&&o>1&&(o=o-1,a=t.getLineMaxColumn(o));let l=Ai._findPreviousWordOnLine(e,t,new se(o,a));if(s===0)return new se(o,l?l.start+1:1);if(s===1)return!r&&l&&l.wordType===2&&l.end-l.start===1&&l.nextCharClass===0&&(l=Ai._findPreviousWordOnLine(e,t,new se(o,l.start+1))),new se(o,l?l.start+1:1);if(s===3){for(;l&&l.wordType===2;)l=Ai._findPreviousWordOnLine(e,t,new se(o,l.start+1));return new se(o,l?l.start+1:1)}return l&&a<=l.end+1&&(l=Ai._findPreviousWordOnLine(e,t,new se(o,l.start+1))),new se(o,l?l.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===1)return i>1?new se(i-1,e.getLineMaxColumn(i-1)):t;const r=e.getLineContent(i);for(let o=t.column-1;o>1;o--){const a=r.charCodeAt(o-2),l=r.charCodeAt(o-1);if(a===95&&l!==95)return new se(i,o);if(a===45&&l!==45)return new se(i,o);if((n1(a)||lP(a))&&Yd(l))return new se(i,o);if(Yd(a)&&Yd(l)&&o+1<s){const c=r.charCodeAt(o);if(n1(c)||lP(c))return new se(i,o)}}return new se(i,1)}static moveWordRight(e,t,i,s){let r=i.lineNumber,o=i.column,a=!1;o===t.getLineMaxColumn(r)&&r<t.getLineCount()&&(a=!0,r=r+1,o=1);let l=Ai._findNextWordOnLine(e,t,new se(r,o));if(s===2)l&&l.wordType===2&&l.end-l.start===1&&l.nextCharClass===0&&(l=Ai._findNextWordOnLine(e,t,new se(r,l.end+1))),l?o=l.end+1:o=t.getLineMaxColumn(r);else if(s===3){for(a&&(o=0);l&&(l.wordType===2||l.start+1<=o);)l=Ai._findNextWordOnLine(e,t,new se(r,l.end+1));l?o=l.start+1:o=t.getLineMaxColumn(r)}else l&&!a&&o>=l.start+1&&(l=Ai._findNextWordOnLine(e,t,new se(r,l.end+1))),l?o=l.start+1:o=t.getLineMaxColumn(r);return new se(r,o)}static _moveWordPartRight(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===s)return i<e.getLineCount()?new se(i+1,1):t;const r=e.getLineContent(i);for(let o=t.column+1;o<s;o++){const a=r.charCodeAt(o-2),l=r.charCodeAt(o-1);if(a!==95&&l===95)return new se(i,o);if(a!==45&&l===45)return new se(i,o);if((n1(a)||lP(a))&&Yd(l))return new se(i,o);if(Yd(a)&&Yd(l)&&o+1<s){const c=r.charCodeAt(o);if(n1(c)||lP(c))return new se(i,o)}}return new se(i,s)}static _deleteWordLeftWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=t.column-2,r=Fh(i,s);return r+1<s?new O(t.lineNumber,r+2,t.lineNumber,t.column):null}static deleteWordLeft(e,t){const i=e.wordSeparators,s=e.model,r=e.selection,o=e.whitespaceHeuristics;if(!r.isEmpty())return r;if(Gy.isAutoClosingPairDelete(e.autoClosingDelete,e.autoClosingBrackets,e.autoClosingQuotes,e.autoClosingPairs.autoClosingPairsOpenByEnd,e.model,[e.selection],e.autoClosedCharacters)){const h=e.selection.getPosition();return new O(h.lineNumber,h.column-1,h.lineNumber,h.column+1)}const a=new se(r.positionLineNumber,r.positionColumn);let l=a.lineNumber,c=a.column;if(l===1&&c===1)return null;if(o){const h=this._deleteWordLeftWhitespace(s,a);if(h)return h}let u=Ai._findPreviousWordOnLine(i,s,a);return t===0?u?c=u.start+1:c>1?c=1:(l--,c=s.getLineMaxColumn(l)):(u&&c<=u.end+1&&(u=Ai._findPreviousWordOnLine(i,s,new se(l,u.start+1))),u?c=u.end+1:c>1?c=1:(l--,c=s.getLineMaxColumn(l))),new O(l,c,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const s=new se(i.positionLineNumber,i.positionColumn),r=this._deleteInsideWordWhitespace(t,s);return r||this._deleteInsideWordDetermineDeleteRange(e,t,s)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=i.length;if(s===0)return null;let r=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,r))return null;let o=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(i,o))return null;for(;r>0&&this._charAtIsWhitespace(i,r-1);)r--;for(;o+1<s&&this._charAtIsWhitespace(i,o+1);)o++;return new O(t.lineNumber,r+1,t.lineNumber,o+2)}static _deleteInsideWordDetermineDeleteRange(e,t,i){const s=t.getLineContent(i.lineNumber),r=s.length;if(r===0)return i.lineNumber>1?new O(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<t.getLineCount()?new O(i.lineNumber,1,i.lineNumber+1,1):new O(i.lineNumber,1,i.lineNumber,1);const o=h=>h.start+1<=i.column&&i.column<=h.end+1,a=(h,d)=>(h=Math.min(h,i.column),d=Math.max(d,i.column),new O(i.lineNumber,h,i.lineNumber,d)),l=h=>{let d=h.start+1,f=h.end+1,p=!1;for(;f-1<r&&this._charAtIsWhitespace(s,f-1);)p=!0,f++;if(!p)for(;d>1&&this._charAtIsWhitespace(s,d-2);)d--;return a(d,f)},c=Ai._findPreviousWordOnLine(e,t,i);if(c&&o(c))return l(c);const u=Ai._findNextWordOnLine(e,t,i);return u&&o(u)?l(u):c&&u?a(c.end+1,u.start+1):c?a(c.start+1,c.end+1):u?a(u.start+1,u.end+1):a(1,r+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=Ai._moveWordPartLeft(e,i);return new O(i.lineNumber,i.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let s=t;s<i;s++){const r=e.charAt(s);if(r!==" "&&r!==" ")return s}return i}static _deleteWordRightWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=t.column-1,r=this._findFirstNonWhitespaceChar(i,s);return s+1<r?new O(t.lineNumber,t.column,t.lineNumber,r+1):null}static deleteWordRight(e,t){const i=e.wordSeparators,s=e.model,r=e.selection,o=e.whitespaceHeuristics;if(!r.isEmpty())return r;const a=new se(r.positionLineNumber,r.positionColumn);let l=a.lineNumber,c=a.column;const u=s.getLineCount(),h=s.getLineMaxColumn(l);if(l===u&&c===h)return null;if(o){const f=this._deleteWordRightWhitespace(s,a);if(f)return f}let d=Ai._findNextWordOnLine(i,s,a);return t===2?d?c=d.end+1:c<h||l===u?c=h:(l++,d=Ai._findNextWordOnLine(i,s,new se(l,1)),d?c=d.start+1:c=s.getLineMaxColumn(l)):(d&&c>=d.start+1&&(d=Ai._findNextWordOnLine(i,s,new se(l,d.end+1))),d?c=d.start+1:c<h||l===u?c=h:(l++,d=Ai._findNextWordOnLine(i,s,new se(l,1)),d?c=d.start+1:c=s.getLineMaxColumn(l))),new O(l,c,a.lineNumber,a.column)}static _deleteWordPartRight(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=Ai._moveWordPartRight(e,i);return new O(i.lineNumber,i.column,s.lineNumber,s.column)}static _createWordAtPosition(e,t,i){const s=new O(t,i.start+1,t,i.end+1);return{word:e.getValueInRange(s),startColumn:s.startColumn,endColumn:s.endColumn}}static getWordAtPosition(e,t,i,s){const r=iu(t,i),o=Ai._findPreviousWordOnLine(r,e,s);if(o&&o.wordType===1&&o.start<=s.column-1&&s.column-1<=o.end)return Ai._createWordAtPosition(e,s.lineNumber,o);const a=Ai._findNextWordOnLine(r,e,s);return a&&a.wordType===1&&a.start<=s.column-1&&s.column-1<=a.end?Ai._createWordAtPosition(e,s.lineNumber,a):null}static word(e,t,i,s,r){const o=iu(e.wordSeparators,e.wordSegmenterLocales),a=Ai._findPreviousWordOnLine(o,t,r),l=Ai._findNextWordOnLine(o,t,r);if(!s){let f,p;return a&&a.wordType===1&&a.start<=r.column-1&&r.column-1<=a.end?(f=a.start+1,p=a.end+1):l&&l.wordType===1&&l.start<=r.column-1&&r.column-1<=l.end?(f=l.start+1,p=l.end+1):(a?f=a.end+1:f=1,l?p=l.start+1:p=t.getLineMaxColumn(r.lineNumber)),new Cr(new O(r.lineNumber,f,r.lineNumber,p),1,0,new se(r.lineNumber,p),0)}let c,u;a&&a.wordType===1&&a.start<r.column-1&&r.column-1<a.end?(c=a.start+1,u=a.end+1):l&&l.wordType===1&&l.start<r.column-1&&r.column-1<l.end?(c=l.start+1,u=l.end+1):(c=r.column,u=r.column);const h=r.lineNumber;let d;if(i.selectionStart.containsPosition(r))d=i.selectionStart.endColumn;else if(r.isBeforeOrEqual(i.selectionStart.getStartPosition())){d=c;const f=new se(h,d);i.selectionStart.containsPosition(f)&&(d=i.selectionStart.endColumn)}else{d=u;const f=new se(h,d);i.selectionStart.containsPosition(f)&&(d=i.selectionStart.startColumn)}return i.move(!0,h,d,0)}}class GB extends Ai{static deleteWordPartLeft(e){const t=uP([Ai.deleteWordLeft(e,0),Ai.deleteWordLeft(e,2),Ai._deleteWordPartLeft(e.model,e.selection)]);return t.sort(O.compareRangesUsingEnds),t[2]}static deleteWordPartRight(e){const t=uP([Ai.deleteWordRight(e,0),Ai.deleteWordRight(e,2),Ai._deleteWordPartRight(e.model,e.selection)]);return t.sort(O.compareRangesUsingStarts),t[0]}static moveWordPartLeft(e,t,i,s){const r=uP([Ai.moveWordLeft(e,t,i,0,s),Ai.moveWordLeft(e,t,i,2,s),Ai._moveWordPartLeft(t,i)]);return r.sort(se.compare),r[2]}static moveWordPartRight(e,t,i){const s=uP([Ai.moveWordRight(e,t,i,0),Ai.moveWordRight(e,t,i,2),Ai._moveWordPartRight(t,i)]);return s.sort(se.compare),s[0]}}function uP(n){return n.filter(e=>!!e)}class br{static addCursorDown(e,t,i){const s=[];let r=0;for(let o=0,a=t.length;o<a;o++){const l=t[o];s[r++]=new bi(l.modelState,l.viewState),i?s[r++]=bi.fromModelState(Bi.translateDown(e.cursorConfig,e.model,l.modelState)):s[r++]=bi.fromViewState(Bi.translateDown(e.cursorConfig,e,l.viewState))}return s}static addCursorUp(e,t,i){const s=[];let r=0;for(let o=0,a=t.length;o<a;o++){const l=t[o];s[r++]=new bi(l.modelState,l.viewState),i?s[r++]=bi.fromModelState(Bi.translateUp(e.cursorConfig,e.model,l.modelState)):s[r++]=bi.fromViewState(Bi.translateUp(e.cursorConfig,e,l.viewState))}return s}static moveToBeginningOfLine(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r];s[r]=this._moveToLineStart(e,a,i)}return s}static _moveToLineStart(e,t,i){const s=t.viewState.position.column,r=t.modelState.position.column,o=s===r,a=t.viewState.position.lineNumber,l=e.getLineFirstNonWhitespaceColumn(a);return!o&&!(s===l)?this._moveToLineStartByView(e,t,i):this._moveToLineStartByModel(e,t,i)}static _moveToLineStartByView(e,t,i){return bi.fromViewState(Bi.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,i))}static _moveToLineStartByModel(e,t,i){return bi.fromModelState(Bi.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,i))}static moveToEndOfLine(e,t,i,s){const r=[];for(let o=0,a=t.length;o<a;o++){const l=t[o];r[o]=this._moveToLineEnd(e,l,i,s)}return r}static _moveToLineEnd(e,t,i,s){const r=t.viewState.position,o=e.getLineMaxColumn(r.lineNumber),a=r.column===o,l=t.modelState.position,c=e.model.getLineMaxColumn(l.lineNumber),u=o-r.column===c-l.column;return a||u?this._moveToLineEndByModel(e,t,i,s):this._moveToLineEndByView(e,t,i,s)}static _moveToLineEndByView(e,t,i,s){return bi.fromViewState(Bi.moveToEndOfLine(e.cursorConfig,e,t.viewState,i,s))}static _moveToLineEndByModel(e,t,i,s){return bi.fromModelState(Bi.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,i,s))}static expandLineSelection(e,t){const i=[];for(let s=0,r=t.length;s<r;s++){const o=t[s],a=o.modelState.selection.startLineNumber,l=e.model.getLineCount();let c=o.modelState.selection.endLineNumber,u;c===l?u=e.model.getLineMaxColumn(l):(c++,u=1),i[s]=bi.fromModelState(new Cr(new O(a,1,a,1),0,0,new se(c,u),0))}return i}static moveToBeginningOfBuffer(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r];s[r]=bi.fromModelState(Bi.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return s}static moveToEndOfBuffer(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r];s[r]=bi.fromModelState(Bi.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return s}static selectAll(e,t){const i=e.model.getLineCount(),s=e.model.getLineMaxColumn(i);return bi.fromModelState(new Cr(new O(1,1,1,1),0,0,new se(i,s),0))}static line(e,t,i,s,r){const o=e.model.validatePosition(s),a=r?e.coordinatesConverter.validateViewPosition(new se(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);if(!i){const c=e.model.getLineCount();let u=o.lineNumber+1,h=1;return u>c&&(u=c,h=e.model.getLineMaxColumn(u)),bi.fromModelState(new Cr(new O(o.lineNumber,1,u,h),2,0,new se(u,h),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(o.lineNumber<l)return bi.fromViewState(t.viewState.move(!0,a.lineNumber,1,0));if(o.lineNumber>l){const c=e.getLineCount();let u=a.lineNumber+1,h=1;return u>c&&(u=c,h=e.getLineMaxColumn(u)),bi.fromViewState(t.viewState.move(!0,u,h,0))}else{const c=t.modelState.selectionStart.getEndPosition();return bi.fromModelState(t.modelState.move(!0,c.lineNumber,c.column,0))}}static word(e,t,i,s){const r=e.model.validatePosition(s);return bi.fromModelState(Ai.word(e.cursorConfig,e.model,t.modelState,i,r))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new bi(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,s=t.viewState.position.column;return bi.fromViewState(new Cr(new O(i,s,i,s),0,0,new se(i,s),0))}static moveTo(e,t,i,s,r){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,s);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,s,r)}const o=e.model.validatePosition(s),a=r?e.coordinatesConverter.validateViewPosition(new se(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);return bi.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,s,r,o){switch(i){case 0:return o===4?this._moveHalfLineLeft(e,t,s):this._moveLeft(e,t,s,r);case 1:return o===4?this._moveHalfLineRight(e,t,s):this._moveRight(e,t,s,r);case 2:return o===2?this._moveUpByViewLines(e,t,s,r):this._moveUpByModelLines(e,t,s,r);case 3:return o===2?this._moveDownByViewLines(e,t,s,r):this._moveDownByModelLines(e,t,s,r);case 4:return o===2?t.map(a=>bi.fromViewState(Bi.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>bi.fromModelState(Bi.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 5:return o===2?t.map(a=>bi.fromViewState(Bi.moveToNextBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>bi.fromModelState(Bi.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 6:return this._moveToViewMinColumn(e,t,s);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,s);case 8:return this._moveToViewCenterColumn(e,t,s);case 9:return this._moveToViewMaxColumn(e,t,s);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,s);default:return null}}static viewportMove(e,t,i,s,r){const o=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(o);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 14:{const l=[];for(let c=0,u=t.length;c<u;c++){const h=t[c];l[c]=this.findPositionInViewportIfOutside(e,h,o,s)}return l}default:return null}}static findPositionInViewportIfOutside(e,t,i,s){const r=t.viewState.position.lineNumber;if(i.startLineNumber<=r&&r<=i.endLineNumber-1)return new bi(t.modelState,t.viewState);{let o;r>i.endLineNumber-1?o=i.endLineNumber-1:r<i.startLineNumber?o=i.startLineNumber:o=r;const a=Bi.vertical(e.cursorConfig,e,r,t.viewState.position.column,t.viewState.leftoverVisibleColumns,o,!1);return bi.fromViewState(t.viewState.move(s,a.lineNumber,a.column,a.leftoverVisibleColumns))}}static _firstLineNumberInRange(e,t,i){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.min(t.endLineNumber,s+i-1)}static _lastLineNumberInRange(e,t,i){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.max(s,t.endLineNumber-i+1)}static _moveLeft(e,t,i,s){return t.map(r=>bi.fromViewState(Bi.moveLeft(e.cursorConfig,e,r.viewState,i,s)))}static _moveHalfLineLeft(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineLength(l)/2);s[r]=bi.fromViewState(Bi.moveLeft(e.cursorConfig,e,a.viewState,i,c))}return s}static _moveRight(e,t,i,s){return t.map(r=>bi.fromViewState(Bi.moveRight(e.cursorConfig,e,r.viewState,i,s)))}static _moveHalfLineRight(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineLength(l)/2);s[r]=bi.fromViewState(Bi.moveRight(e.cursorConfig,e,a.viewState,i,c))}return s}static _moveDownByViewLines(e,t,i,s){const r=[];for(let o=0,a=t.length;o<a;o++){const l=t[o];r[o]=bi.fromViewState(Bi.moveDown(e.cursorConfig,e,l.viewState,i,s))}return r}static _moveDownByModelLines(e,t,i,s){const r=[];for(let o=0,a=t.length;o<a;o++){const l=t[o];r[o]=bi.fromModelState(Bi.moveDown(e.cursorConfig,e.model,l.modelState,i,s))}return r}static _moveUpByViewLines(e,t,i,s){const r=[];for(let o=0,a=t.length;o<a;o++){const l=t[o];r[o]=bi.fromViewState(Bi.moveUp(e.cursorConfig,e,l.viewState,i,s))}return r}static _moveUpByModelLines(e,t,i,s){const r=[];for(let o=0,a=t.length;o<a;o++){const l=t[o];r[o]=bi.fromModelState(Bi.moveUp(e.cursorConfig,e.model,l.modelState,i,s))}return r}static _moveToViewPosition(e,t,i,s,r){return bi.fromViewState(t.viewState.move(i,s,r,0))}static _moveToModelPosition(e,t,i,s,r){return bi.fromModelState(t.modelState.move(i,s,r,0))}static _moveToViewMinColumn(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=e.getLineMinColumn(l);s[r]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewFirstNonWhitespaceColumn(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=e.getLineFirstNonWhitespaceColumn(l);s[r]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewCenterColumn(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=Math.round((e.getLineMaxColumn(l)+e.getLineMinColumn(l))/2);s[r]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewMaxColumn(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=e.getLineMaxColumn(l);s[r]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewLastNonWhitespaceColumn(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.viewState.position.lineNumber,c=e.getLineLastNonWhitespaceColumn(l);s[r]=this._moveToViewPosition(e,a,i,l,c)}return s}}var wF;(function(n){const e=function(i){if(!fr(i))return!1;const s=i;return!(!Da(s.to)||!ko(s.select)&&!wxe(s.select)||!ko(s.by)&&!Da(s.by)||!ko(s.value)&&!t_(s.value))};n.metadata={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:`Property-value pairs that can be passed through this argument: + * 'to': A mandatory logical position value providing where to move the cursor. + \`\`\` + 'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine', + 'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter' + 'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter' + 'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside' + \`\`\` + * 'by': Unit to move. Default is computed based on 'to' value. + \`\`\` + 'line', 'wrappedLine', 'character', 'halfLine' + \`\`\` + * 'value': Number of units to move. Default is '1'. + * 'select': If 'true' makes the selection. Default is 'false'. + `,constraint:e,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1}}}}]},n.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},n.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"};function t(i){if(!i.to)return null;let s;switch(i.to){case n.RawDirection.Left:s=0;break;case n.RawDirection.Right:s=1;break;case n.RawDirection.Up:s=2;break;case n.RawDirection.Down:s=3;break;case n.RawDirection.PrevBlankLine:s=4;break;case n.RawDirection.NextBlankLine:s=5;break;case n.RawDirection.WrappedLineStart:s=6;break;case n.RawDirection.WrappedLineFirstNonWhitespaceCharacter:s=7;break;case n.RawDirection.WrappedLineColumnCenter:s=8;break;case n.RawDirection.WrappedLineEnd:s=9;break;case n.RawDirection.WrappedLineLastNonWhitespaceCharacter:s=10;break;case n.RawDirection.ViewPortTop:s=11;break;case n.RawDirection.ViewPortBottom:s=13;break;case n.RawDirection.ViewPortCenter:s=12;break;case n.RawDirection.ViewPortIfOutside:s=14;break;default:return null}let r=0;switch(i.by){case n.RawUnit.Line:r=1;break;case n.RawUnit.WrappedLine:r=2;break;case n.RawUnit.Character:r=3;break;case n.RawUnit.HalfLine:r=4;break}return{direction:s,unit:r,select:!!i.select,value:i.value||1}}n.parse=t})(wF||(wF={}));var ks;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(ks||(ks={}));class z7{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t<i;t++)switch(e.notIn[t]){case"string":this._inString=!1;break;case"comment":this._inComment=!1;break;case"regex":this._inRegEx=!1;break}}isOK(e){switch(e){case 0:return!0;case 1:return this._inComment;case 2:return this._inString;case 3:return this._inRegEx}}shouldAutoClose(e,t){if(e.getTokenCount()===0)return!0;const i=e.findTokenIndexAtOffset(t-2),s=e.getStandardTokenType(i);return this.isOK(s)}_findNeutralCharacterInRange(e,t){for(let i=e;i<=t;i++){const s=String.fromCharCode(i);if(!this.open.includes(s)&&!this.close.includes(s))return s}return null}findNeutralCharacter(){return this._neutralCharacterSearched||(this._neutralCharacterSearched=!0,this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(48,57)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(97,122)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(65,90))),this._neutralCharacter}}class ght{constructor(e){this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;for(const t of e)oE(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),oE(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),oE(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),oE(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),t.close.length===1&&t.open.length===1&&oE(this.autoClosingPairsCloseSingleChar,t.close,t)}}function oE(n,e,t){n.has(e)?n.get(e).push(t):n.set(e,[t])}const NLe="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function mht(n=""){let e="(-?\\d*\\.\\d\\w*)|([^";for(const t of NLe)n.indexOf(t)>=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}const Bee=mht();function Wee(n){let e=Bee;if(n&&n instanceof RegExp)if(n.global)e=n;else{let t="g";n.ignoreCase&&(t+="i"),n.multiline&&(t+="m"),n.unicode&&(t+="u"),e=new RegExp(n.source,t)}return e.lastIndex=0,e}const ALe=new Go;ALe.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function wT(n,e,t,i,s){if(e=Wee(e),s||(s=hi.first(ALe)),t.length>s.maxLen){let c=n-s.maxLen/2;return c<0?c=0:i+=c,t=t.substring(c,n+s.maxLen/2),wT(n,e,t,i,s)}const r=Date.now(),o=n-1-i;let a=-1,l=null;for(let c=1;!(Date.now()-r>=s.timeBudget);c++){const u=o-s.windowSize*c;e.lastIndex=Math.max(0,u);const h=_ht(e,t,o,a);if(!h&&l||(l=h,u<=0))break;a=u}if(l){const c={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,c}return null}function _ht(n,e,t,i){let s;for(;s=n.exec(e);){const r=s.index||0;if(r<=t&&n.lastIndex>=t)return s;if(i>0&&r>i)return null}return null}const uC=class uC{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new z7(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new z7({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new z7({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:uC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:uC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}};uC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> + `,uC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> + `;let Cz=uC;function xc(n,e=0){return n[n.length-(1+e)]}function vht(n){if(n.length===0)throw new Error("Invalid tail call");return[n.slice(0,n.length-1),n[n.length-1]]}function In(n,e,t=(i,s)=>i===s){if(n===e)return!0;if(!n||!e||n.length!==e.length)return!1;for(let i=0,s=n.length;i<s;i++)if(!t(n[i],e[i]))return!1;return!0}function bht(n,e){const t=n.length-1;e<t&&(n[e]=n[t]),n.pop()}function CT(n,e,t){return yht(n.length,i=>t(n[i],e))}function yht(n,e){let t=0,i=n-1;for(;t<=i;){const s=(t+i)/2|0,r=e(s);if(r<0)t=s+1;else if(r>0)i=s-1;else return s}return-(t+1)}function Sz(n,e,t){if(n=n|0,n>=e.length)throw new TypeError("invalid index");const i=e[Math.floor(e.length*Math.random())],s=[],r=[],o=[];for(const a of e){const l=t(a,i);l<0?s.push(a):l>0?r.push(a):o.push(a)}return n<s.length?Sz(n,s,t):n<s.length+o.length?o[0]:Sz(n-(s.length+o.length),r,t)}function Lue(n,e){const t=[];let i;for(const s of n.slice(0).sort(e))!i||e(i[0],s)!==0?(i=[s],t.push(i)):i.push(s);return t}function*Vee(n,e){let t,i;for(const s of n)i!==void 0&&e(i,s)?t.push(s):(t&&(yield t),t=[s]),i=s;t&&(yield t)}function PLe(n,e){for(let t=0;t<=n.length;t++)e(t===0?void 0:n[t-1],t===n.length?void 0:n[t])}function wht(n,e){for(let t=0;t<n.length;t++)e(t===0?void 0:n[t-1],n[t],t+1===n.length?void 0:n[t+1])}function Qh(n){return n.filter(e=>!!e)}function Eue(n){let e=0;for(let t=0;t<n.length;t++)n[t]&&(n[e]=n[t],e+=1);n.length=e}function RLe(n){return!Array.isArray(n)||n.length===0}function so(n){return Array.isArray(n)&&n.length>0}function Vg(n,e=t=>t){const t=new Set;return n.filter(i=>{const s=e(i);return t.has(s)?!1:(t.add(s),!0)})}function Hee(n,e){return n.length>0?n[0]:e}function ya(n,e){let t=typeof e=="number"?n:0;typeof e=="number"?t=n:(t=0,e=n);const i=[];if(t<=e)for(let s=t;s<e;s++)i.push(s);else for(let s=t;s>e;s--)i.push(s);return i}function XB(n,e,t){const i=n.slice(0,e),s=n.slice(e);return i.concat(t,s)}function U7(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.unshift(e))}function hP(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.push(e))}function xz(n,e){for(const t of e)n.push(t)}function $ee(n){return Array.isArray(n)?n:[n]}function Cht(n,e,t){const i=MLe(n,e),s=n.length,r=t.length;n.length=s+r;for(let o=s-1;o>=i;o--)n[o+r]=n[o];for(let o=0;o<r;o++)n[o+i]=t[o]}function kue(n,e,t,i){const s=MLe(n,e);let r=n.splice(s,t);return r===void 0&&(r=[]),Cht(n,s,i),r}function MLe(n,e){return e<0?Math.max(e+n.length,0):Math.min(e,n.length)}var ST;(function(n){function e(r){return r<0}n.isLessThan=e;function t(r){return r<=0}n.isLessThanOrEqual=t;function i(r){return r>0}n.isGreaterThan=i;function s(r){return r===0}n.isNeitherLessOrGreaterThan=s,n.greaterThan=1,n.lessThan=-1,n.neitherLessOrGreaterThan=0})(ST||(ST={}));function Jo(n,e){return(t,i)=>e(n(t),n(i))}function Sht(...n){return(e,t)=>{for(const i of n){const s=i(e,t);if(!ST.isNeitherLessOrGreaterThan(s))return s}return ST.neitherLessOrGreaterThan}}const Ru=(n,e)=>n-e,xht=(n,e)=>Ru(n?1:0,e?1:0);function OLe(n){return(e,t)=>-n(e,t)}class Hg{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t<this.items.length&&e(this.items[t]);)t++;const i=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,i}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}const hC=class hC{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new hC(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new hC(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(s=>((i||ST.isGreaterThan(e(s,t)))&&(i=!1,t=s),!0)),t}};hC.empty=new hC(e=>{});let Cb=hC;class CF{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const i=Array.from(e.keys()).sort((s,r)=>t(e[s],e[r]));return new CF(i)}apply(e){return e.map((t,i)=>e[this._indexMap[i]])}inverse(){const e=this._indexMap.slice();for(let t=0;t<this._indexMap.length;t++)e[this._indexMap[t]]=t;return new CF(e)}}const Iue=typeof Buffer<"u";let j7;class YB{static wrap(e){return Iue&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new YB(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return Iue?this.buffer.toString():(j7||(j7=new TextDecoder),j7.decode(this.buffer))}}function Lht(n,e){return n[e+0]<<0>>>0|n[e+1]<<8>>>0}function Eht(n,e,t){n[t+0]=e&255,e=e>>>8,n[t+1]=e&255}function dh(n,e){return n[e]*2**24+n[e+1]*2**16+n[e+2]*2**8+n[e+3]}function fh(n,e,t){n[t+3]=e,e=e>>>8,n[t+2]=e,e=e>>>8,n[t+1]=e,e=e>>>8,n[t]=e}function Tue(n,e){return n[e]}function Due(n,e,t){n[t]=e}let q7;function FLe(){return q7||(q7=new TextDecoder("UTF-16LE")),q7}let K7;function kht(){return K7||(K7=new TextDecoder("UTF-16BE")),K7}let G7;function BLe(){return G7||(G7=Exe()?FLe():kht()),G7}function Iht(n,e,t){const i=new Uint16Array(n.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?Tht(n,e,t):FLe().decode(i)}function Tht(n,e,t){const i=[];let s=0;for(let r=0;r<t;r++){const o=Lht(n,e);e+=2,i[s++]=String.fromCharCode(o)}return i.join("")}class uL{constructor(e){this._capacity=e|0,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return this._completedStrings!==null?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(this._bufferLength===0)return"";const e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return BLe().decode(e)}_flushBuffer(){const e=this._buildBuffer();this._bufferLength=0,this._completedStrings===null?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}appendCharCode(e){const t=this._capacity-this._bufferLength;t<=1&&(t===0||Js(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIICharCode(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendString(e){const t=e.length;if(this._bufferLength+t>=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i<t;i++)this._buffer[this._bufferLength++]=e.charCodeAt(i)}}class SF{constructor(e,t,i,s,r,o){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=s,this.forwardRegex=r,this.reversedRegex=o,this._openSet=SF._toSet(this.open),this._closeSet=SF._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){const t=new Set;for(const i of e)t.add(i);return t}}function Dht(n){const e=n.length;n=n.map(o=>[o[0].toLowerCase(),o[1].toLowerCase()]);const t=[];for(let o=0;o<e;o++)t[o]=o;const i=(o,a)=>{const[l,c]=o,[u,h]=a;return l===u||l===h||c===u||c===h},s=(o,a)=>{const l=Math.min(o,a),c=Math.max(o,a);for(let u=0;u<e;u++)t[u]===c&&(t[u]=l)};for(let o=0;o<e;o++){const a=n[o];for(let l=o+1;l<e;l++){const c=n[l];i(a,c)&&s(t[o],t[l])}}const r=[];for(let o=0;o<e;o++){const a=[],l=[];for(let c=0;c<e;c++)if(t[c]===o){const[u,h]=n[c];a.push(u),l.push(h)}a.length>0&&r.push({open:a,close:l})}return r}class Nht{constructor(e,t){this._richEditBracketsBrand=void 0;const i=Dht(t);this.brackets=i.map((s,r)=>new SF(e,r,s.open,s.close,Aht(s.open,s.close,i,r),Pht(s.open,s.close,i,r))),this.forwardRegex=Rht(this.brackets),this.reversedRegex=Mht(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const s of this.brackets){for(const r of s.open)this.textIsBracket[r]=s,this.textIsOpenBracket[r]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,r.length);for(const r of s.close)this.textIsBracket[r]=s,this.textIsOpenBracket[r]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,r.length)}}}function WLe(n,e,t,i){for(let s=0,r=e.length;s<r;s++){if(s===t)continue;const o=e[s];for(const a of o.open)a.indexOf(n)>=0&&i.push(a);for(const a of o.close)a.indexOf(n)>=0&&i.push(a)}}function VLe(n,e){return n.length-e.length}function ZB(n){if(n.length<=1)return n;const e=[],t=new Set;for(const i of n)t.has(i)||(e.push(i),t.add(i));return e}function Aht(n,e,t,i){let s=[];s=s.concat(n),s=s.concat(e);for(let r=0,o=s.length;r<o;r++)WLe(s[r],t,i,s);return s=ZB(s),s.sort(VLe),s.reverse(),DN(s)}function Pht(n,e,t,i){let s=[];s=s.concat(n),s=s.concat(e);for(let r=0,o=s.length;r<o;r++)WLe(s[r],t,i,s);return s=ZB(s),s.sort(VLe),s.reverse(),DN(s.map(zee))}function Rht(n){let e=[];for(const t of n){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=ZB(e),DN(e)}function Mht(n){let e=[];for(const t of n){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=ZB(e),DN(e.map(zee))}function Oht(n){const e=/^[\w ]+$/.test(n);return n=dc(n),e?`\\b${n}\\b`:n}function DN(n,e){const t=`(${n.map(Oht).join(")|(")})`;return Kxe(t,!0,e)}const zee=function(){function n(i){const s=new Uint16Array(i.length);let r=0;for(let o=i.length-1;o>=0;o--)s[r++]=i.charCodeAt(o);return BLe().decode(s)}let e=null,t=null;return function(s){return e!==s&&(e=s,t=n(e)),t}}();class mu{static _findPrevBracketInText(e,t,i,s){const r=i.match(e);if(!r)return null;const o=i.length-(r.index||0),a=r[0].length,l=s+o;return new O(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,s,r){const a=zee(i).substring(i.length-r,i.length-s);return this._findPrevBracketInText(e,t,a,s)}static findNextBracketInText(e,t,i,s){const r=i.match(e);if(!r)return null;const o=r.index||0,a=r[0].length;if(a===0)return null;const l=s+o;return new O(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,s,r){const o=i.substring(s,r);return this.findNextBracketInText(e,t,o,s)}}class Fht{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const s=i.charAt(i.length-1);e.push(s)}return Vg(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const s=t.findTokenIndexAtOffset(i-1);if(Dd(t.getStandardTokenType(s)))return null;const r=this._richEditBrackets.reversedRegex,o=t.getLineContent().substring(0,i-1)+e,a=mu.findPrevBracketInRange(r,1,o,0,o.length);if(!a)return null;const l=o.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const u=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(u)?{matchOpenBracket:l}:null}}function dP(n){return n.global&&(n.lastIndex=0),!0}class Bht{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&dP(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&dP(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&dP(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&dP(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}class Hw{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{const i=Hw._createOpenBracketRegExp(t[0]),s=Hw._createCloseBracketRegExp(t[1]);i&&s&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:s})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,s){if(e>=3)for(let r=0,o=this._regExpRules.length;r<o;r++){const a=this._regExpRules[r];if([{reg:a.beforeText,text:i},{reg:a.afterText,text:s},{reg:a.previousLineText,text:t}].every(c=>c.reg?(c.reg.lastIndex=0,c.reg.test(c.text)):!0))return a.action}if(e>=2&&i.length>0&&s.length>0)for(let r=0,o=this._brackets.length;r<o;r++){const a=this._brackets[r];if(a.openRegExp.test(i)&&a.closeRegExp.test(s))return{indentAction:ks.IndentOutdent}}if(e>=2&&i.length>0){for(let r=0,o=this._brackets.length;r<o;r++)if(this._brackets[r].openRegExp.test(i))return{indentAction:ks.Indent}}return null}static _createOpenBracketRegExp(e){let t=dc(e);return/\B/.test(t.charAt(0))||(t="\\b"+t),t+="\\s*$",Hw._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=dc(e);return/\B/.test(t.charAt(t.length-1))||(t=t+"\\b"),t="^\\s*"+t,Hw._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(t){return Nt(t),null}}}const Xt=ri("configurationService");function Lz(n,e){const t=Object.create(null);for(const i in n)HLe(t,i,n[i],e);return t}function HLe(n,e,t,i){const s=e.split("."),r=s.pop();let o=n;for(let a=0;a<s.length;a++){const l=s[a];let c=o[l];switch(typeof c){case"undefined":c=o[l]=Object.create(null);break;case"object":if(c===null){i(`Ignoring ${e} as ${s.slice(0,a+1).join(".")} is null`);return}break;default:i(`Ignoring ${e} as ${s.slice(0,a+1).join(".")} is ${JSON.stringify(c)}`);return}o=c}if(typeof o=="object"&&o!==null)try{o[r]=t}catch{i(`Ignoring ${e} as ${s.join(".")} is ${JSON.stringify(o)}`)}else i(`Ignoring ${e} as ${s.join(".")} is ${JSON.stringify(o)}`)}function Wht(n,e){const t=e.split(".");$Le(n,t)}function $Le(n,e){const t=e.shift();if(e.length===0){delete n[t];return}if(Object.keys(n).indexOf(t)!==-1){const i=n[t];typeof i=="object"&&!Array.isArray(i)&&($Le(i,e),Object.keys(i).length===0&&delete n[t])}}function Nue(n,e,t){function i(o,a){let l=o;for(const c of a){if(typeof l!="object"||l===null)return;l=l[c]}return l}const s=e.split("."),r=i(n,s);return typeof r>"u"?t:r}function Vht(n){return n.replace(/[\[\]]/g,"")}const Dn=ri("languageService");class Zd{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}const zLe=[];function fi(n,e,t){e instanceof Zd||(e=new Zd(e,[],!!t)),zLe.push([n,e])}function Aue(){return zLe}const rs=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"}),QB={JSONContribution:"base.contributions.json"};function Hht(n){return n.length>0&&n.charAt(n.length-1)==="#"?n.substring(0,n.length-1):n}class $ht{constructor(){this._onDidChangeSchema=new oe,this.schemasById={}}registerSchema(e,t){this.schemasById[Hht(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const zht=new $ht;Vn.add(QB.JSONContribution,zht);const Qu={Configuration:"base.contributions.configuration"},aE="vscode://schemas/settings/resourceLanguage",Pue=Vn.as(QB.JSONContribution);class Uht{constructor(){this.registeredConfigurationDefaults=[],this.overrideIdentifiers=new Set,this._onDidSchemaChange=new oe,this._onDidUpdateConfiguration=new oe,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:v("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},Pue.registerSchema(aE,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=new Set;this.doRegisterConfigurations(e,t,i),Pue.registerSchema(aE,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){this.registeredConfigurationDefaults.push(...e);const i=[];for(const{overrides:s,source:r}of e)for(const o in s){t.add(o);const a=this.configurationDefaultsOverrides.get(o)??this.configurationDefaultsOverrides.set(o,{configurationDefaultOverrides:[]}).get(o),l=s[o];if(a.configurationDefaultOverrides.push({value:l,source:r}),l_.test(o)){const c=this.mergeDefaultConfigurationsForOverrideIdentifier(o,l,r,a.configurationDefaultOverrideValue);if(!c)continue;a.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(o,c,r),i.push(...xF(o))}else{const c=this.mergeDefaultConfigurationsForConfigurationProperty(o,l,r,a.configurationDefaultOverrideValue);if(!c)continue;a.configurationDefaultOverrideValue=c;const u=this.configurationProperties[o];u&&(this.updatePropertyDefaultValue(o,u),this.updateSchema(o,u))}}this.doRegisterOverrideIdentifiers(i)}updateDefaultOverrideProperty(e,t,i){const s={type:"object",default:t.value,description:v("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",Vht(e)),$ref:aE,defaultDefaultValue:t.value,source:i,defaultValueSource:i};this.configurationProperties[e]=s,this.defaultLanguageConfigurationOverridesNode.properties[e]=s}mergeDefaultConfigurationsForOverrideIdentifier(e,t,i,s){const r=(s==null?void 0:s.value)||{},o=(s==null?void 0:s.source)??new Map;if(!(o instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(const a of Object.keys(t)){const l=t[a];if(fr(l)&&(ko(r[a])||fr(r[a]))){if(r[a]={...r[a]??{},...l},i)for(const u in l)o.set(`${a}.${u}`,i)}else r[a]=l,i?o.set(a,i):o.delete(a)}return{value:r,source:o}}mergeDefaultConfigurationsForConfigurationProperty(e,t,i,s){const r=this.configurationProperties[e],o=(s==null?void 0:s.value)??(r==null?void 0:r.defaultDefaultValue);let a=i;if(fr(t)&&(r!==void 0&&r.type==="object"||r===void 0&&(ko(o)||fr(o)))){if(a=(s==null?void 0:s.source)??new Map,!(a instanceof Map)){console.error("defaultValueSource is not a Map");return}for(const c in t)i&&a.set(`${e}.${c}`,i);t={...fr(o)?o:{},...t}}return{value:t,source:a}}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(s=>{this.validateAndRegisterProperties(s,t,s.extensionInfo,s.restrictedProperties,void 0,i),this.configurationContributors.push(s),this.registerJSONConfiguration(s)})}validateAndRegisterProperties(e,t=!0,i,s,r=3,o){var c;r=Kl(e.scope)?r:e.scope;const a=e.properties;if(a)for(const u in a){const h=a[u];if(t&&Kht(u,h)){delete a[u];continue}if(h.source=i,h.defaultDefaultValue=a[u].default,this.updatePropertyDefaultValue(u,h),l_.test(u)?h.scope=void 0:(h.scope=Kl(h.scope)?r:h.scope,h.restricted=Kl(h.restricted)?!!(s!=null&&s.includes(u)):h.restricted),a[u].hasOwnProperty("included")&&!a[u].included){this.excludedConfigurationProperties[u]=a[u],delete a[u];continue}else this.configurationProperties[u]=a[u],(c=a[u].policy)!=null&&c.name&&this.policyConfigurations.set(a[u].policy.name,u);!a[u].deprecationMessage&&a[u].markdownDeprecationMessage&&(a[u].deprecationMessage=a[u].markdownDeprecationMessage),o.add(u)}const l=e.allOf;if(l)for(const u of l)this.validateAndRegisterProperties(u,t,i,s,r,o)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=i=>{const s=i.properties;if(s)for(const o in s)this.updateSchema(o,s[o]);const r=i.allOf;r==null||r.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 6:break;case 3:break;case 4:break;case 5:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:v("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:v("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:aE};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){v("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),v("overrideSettings.errorMessage","This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){var o;const i=(o=this.configurationDefaultsOverrides.get(e))==null?void 0:o.configurationDefaultOverrideValue;let s,r;i&&(!t.disallowConfigurationDefault||!i.source)&&(s=i.value,r=i.source),ko(s)&&(s=t.defaultDefaultValue,r=void 0),ko(s)&&(s=qht(t.type)),t.default=s,t.defaultValueSource=r}}const ULe="\\[([^\\]]+)\\]",Rue=new RegExp(ULe,"g"),jht=`^(${ULe})+$`,l_=new RegExp(jht);function xF(n){const e=[];if(l_.test(n)){let t=Rue.exec(n);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=Rue.exec(n)}}return Vg(e)}function qht(n){switch(Array.isArray(n)?n[0]:n){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const hM=new Uht;Vn.add(Qu.Configuration,hM);function Kht(n,e){var t,i,s,r;return n.trim()?l_.test(n)?v("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",n):hM.getConfigurationProperties()[n]!==void 0?v("config.property.duplicate","Cannot register '{0}'. This property is already registered.",n):(t=e.policy)!=null&&t.name&&hM.getPolicyConfigurations().get((i=e.policy)==null?void 0:i.name)!==void 0?v("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",n,(s=e.policy)==null?void 0:s.name,hM.getPolicyConfigurations().get((r=e.policy)==null?void 0:r.name)):null:v("config.property.empty","Cannot register an empty property")}const Ght={ModesRegistry:"editor.modesRegistry"};class Xht{constructor(){this._onDidChangeLanguages=new oe,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t<i;t++)if(this._languages[t]===e){this._languages.splice(t,1);return}}}}getLanguages(){return this._languages}}const XS=new Xht;Vn.add(Ght.ModesRegistry,XS);const ea="plaintext",Yht=".txt";XS.registerLanguage({id:ea,extensions:[Yht],aliases:[v("plainText.alias","Plain Text"),"text"],mimetypes:[rs.text]});Vn.as(Qu.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1}}}]);class Zht{constructor(e,t){this.languageId=e;const i=t.brackets?Mue(t.brackets):[],s=new aue(a=>{const l=new Set;return{info:new Qht(this,a,l),closing:l}}),r=new aue(a=>{const l=new Set,c=new Set;return{info:new Jht(this,a,l,c),opening:l,openingColorized:c}});for(const[a,l]of i){const c=s.get(a),u=r.get(l);c.closing.add(u.info),u.opening.add(c.info)}const o=t.colorizedBracketPairs?Mue(t.colorizedBracketPairs):i.filter(a=>!(a[0]==="<"&&a[1]===">"));for(const[a,l]of o){const c=s.get(a),u=r.get(l);c.closing.add(u.info),u.openingColorized.add(c.info),u.opening.add(c.info)}this._openingBrackets=new Map([...s.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...r.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}getBracketRegExp(e){const t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return DN(t,e)}}function Mue(n){return n.filter(([e,t])=>e!==""&&t!=="")}class jLe{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class Qht extends jLe{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class Jht extends jLe{constructor(e,t,i,s){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=s,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var edt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Oue=function(n,e){return function(t,i){e(t,i,n)}};class X7{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const ln=ri("languageConfigurationService");let Ez=class extends ue{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new sdt),this.onDidChangeEmitter=this._register(new oe),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(kz));this._register(this.configurationService.onDidChangeConfiguration(s=>{const r=s.change.keys.some(a=>i.has(a)),o=s.change.overrides.filter(([a,l])=>l.some(c=>i.has(c))).map(([a])=>a);if(r)this.configurations.clear(),this.onDidChangeEmitter.fire(new X7(void 0));else for(const a of o)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new X7(a)))})),this._register(this._registry.onDidChange(s=>{this.configurations.delete(s.languageId),this.onDidChangeEmitter.fire(new X7(s.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=tdt(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};Ez=edt([Oue(0,Xt),Oue(1,Dn)],Ez);function tdt(n,e,t,i){let s=e.getLanguageConfiguration(n);if(!s){if(!i.isRegisteredLanguageId(n))return new WC(n,{});s=new WC(n,{})}const r=idt(s.languageId,t),o=KLe([s.underlyingConfig,r]);return new WC(s.languageId,o)}const kz={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function idt(n,e){const t=e.getValue(kz.brackets,{overrideIdentifier:n}),i=e.getValue(kz.colorizedBracketPairs,{overrideIdentifier:n});return{brackets:Fue(t),colorizedBracketPairs:Fue(i)}}function Fue(n){if(Array.isArray(n))return n.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function qLe(n,e,t){const i=n.getLineContent(e);let s=Xi(i);return s.length>t-1&&(s=s.substring(0,t-1)),s}class ndt{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new Bue(e,t,++this._order);return this._entries.push(i),this._resolved=null,lt(()=>{for(let s=0;s<this._entries.length;s++)if(this._entries[s]===i){this._entries.splice(s,1),this._resolved=null;break}})}getResolvedConfiguration(){if(!this._resolved){const e=this._resolve();e&&(this._resolved=new WC(this.languageId,e))}return this._resolved}_resolve(){return this._entries.length===0?null:(this._entries.sort(Bue.cmp),KLe(this._entries.map(e=>e.configuration)))}}function KLe(n){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of n)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class Bue{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class Wue{constructor(e){this.languageId=e}}class sdt extends ue{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._register(this.register(ea,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let s=this._entries.get(e);s||(s=new ndt(e),this._entries.set(e,s));const r=s.register(t,i);return this._onDidChange.fire(new Wue(e)),lt(()=>{r.dispose(),this._onDidChange.fire(new Wue(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}}class WC{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new Hw(this.underlyingConfig):null,this.comments=WC._handleComments(this.underlyingConfig),this.characterPair=new Cz(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||Bee,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new Bht(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new Zht(e,this.underlyingConfig)}getWordDefinition(){return Wee(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new Nht(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new Fht(this.brackets)),this._electricCharacter}onEnter(e,t,i,s){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,s):null}getAutoClosingPairs(){return new ght(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[s,r]=t.blockComment;i.blockCommentStartToken=s,i.blockCommentEndToken=r}return i}}fi(ln,Ez,1);class La{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e);const s=this.getFontStyle(e);return s&1&&(i+=" mtki"),s&2&&(i+=" mtkb"),s&4&&(i+=" mtku"),s&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),s=this.getFontStyle(e);let r=`color: ${t[i]};`;s&1&&(r+="font-style: italic;"),s&2&&(r+="font-weight: bold;");let o="";return s&4&&(o+=" underline"),s&8&&(o+=" line-through"),o&&(r+=`text-decoration:${o};`),r}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}const Dp=class Dp{static createEmpty(e,t){const i=Dp.defaultTokenMetadata,s=new Uint32Array(2);return s[0]=e.length,s[1]=i,new Dp(s,e,t)}static createFromTextAndMetadata(e,t){let i=0,s="";const r=new Array;for(const{text:o,metadata:a}of e)r.push(i+o.length,a),i+=o.length,s+=o;return new Dp(new Uint32Array(r),s,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=i}equals(e){return e instanceof Dp?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const s=t<<1,r=s+(i<<1);for(let o=s;o<r;o++)if(this._tokens[o]!==e._tokens[o])return!1;return!0}getLineContent(){return this._text}getCount(){return this._tokensCount}getStartOffset(e){return e>0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=La.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return La.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return La.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return La.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return La.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return La.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return Dp.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new Uee(this,e,t,i)}static convertToEndOffset(e,t){const s=(e.length>>>1)-1;for(let r=0;r<s;r++)e[r<<1]=e[r+1<<1];e[s<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let i=0,s=(e.length>>>1)-1;for(;i<s;){const r=i+Math.floor((s-i)/2),o=e[r<<1];if(o===t)return r+1;o<t?i=r+1:o>t&&(s=r)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,s="";const r=new Array;let o=0;for(;;){const a=t<this._tokensCount?this._tokens[t<<1]:-1,l=i<e.length?e[i]:null;if(a!==-1&&(l===null||a<=l.offset)){s+=this._text.substring(o,a);const c=this._tokens[(t<<1)+1];r.push(s.length,c),t++,o=a}else if(l){if(l.offset>o){s+=this._text.substring(o,l.offset);const c=this._tokens[(t<<1)+1];r.push(s.length,c),o=l.offset}s+=l.text,r.push(s.length,l.tokenMetadata),i++}else break}return new Dp(new Uint32Array(r),s,this.languageIdCodec)}getTokenText(e){const t=this.getStartOffset(e),i=this.getEndOffset(e);return this._text.substring(t,i)}forEach(e){const t=this.getCount();for(let i=0;i<t;i++)e(i)}};Dp.defaultTokenMetadata=(32768|2<<24)>>>0;let Kr=Dp;class Uee{constructor(e,t,i,s){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=s,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let r=this._firstTokenIndex,o=e.getCount();r<o&&!(e.getStartOffset(r)>=i);r++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof Uee?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(e){const t=this._firstTokenIndex+e,i=this._source.getStartOffset(t),s=this._source.getEndOffset(t);let r=this._source.getTokenText(t);return i<this._startOffset&&(r=r.substring(this._startOffset-i)),s>this._endOffset&&(r=r.substring(0,r.length-(s-this._endOffset))),r}forEach(e){for(let t=0;t<this.getCount();t++)e(t)}}function rdt(n,e){const t=e.lineNumber;if(!n.tokenization.isCheapToTokenize(t))return;n.tokenization.forceTokenization(t);const i=n.tokenization.getLineTokens(t),s=i.findTokenIndexAtOffset(e.column-1);return i.getStandardTokenType(s)}class jee{constructor(e,t,i){this._indentRulesSupport=t,this._indentationLineProcessor=new GLe(e,i)}shouldIncrease(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIncrease(i)}shouldDecrease(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldDecrease(i)}shouldIgnore(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIgnore(i)}shouldIndentNextLine(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIndentNextLine(i)}}class qee{constructor(e,t){this.model=e,this.indentationLineProcessor=new GLe(e,t)}getProcessedTokenContextAroundRange(e){const t=this._getProcessedTokensBeforeRange(e),i=this._getProcessedTokensAfterRange(e),s=this._getProcessedPreviousLineTokens(e);return{beforeRangeProcessedTokens:t,afterRangeProcessedTokens:i,previousLineProcessedTokens:s}}_getProcessedTokensBeforeRange(e){this.model.tokenization.forceTokenization(e.startLineNumber);const t=this.model.tokenization.getLineTokens(e.startLineNumber),i=nb(t,e.startColumn-1);let s;if(Kee(this.model,e.getStartPosition())){const o=e.startColumn-1-i.firstCharOffset,a=i.firstCharOffset,l=a+o;s=t.sliceAndInflate(a,l,0)}else{const o=e.startColumn-1;s=t.sliceAndInflate(0,o,0)}return this.indentationLineProcessor.getProcessedTokens(s)}_getProcessedTokensAfterRange(e){const t=e.isEmpty()?e.getStartPosition():e.getEndPosition();this.model.tokenization.forceTokenization(t.lineNumber);const i=this.model.tokenization.getLineTokens(t.lineNumber),s=nb(i,t.column-1),r=t.column-1-s.firstCharOffset,o=s.firstCharOffset+r,a=s.firstCharOffset+s.getLineLength(),l=i.sliceAndInflate(o,a,0);return this.indentationLineProcessor.getProcessedTokens(l)}_getProcessedPreviousLineTokens(e){const t=f=>{this.model.tokenization.forceTokenization(f);const p=this.model.tokenization.getLineTokens(f),g=this.model.getLineMaxColumn(f)-1;return nb(p,g)};this.model.tokenization.forceTokenization(e.startLineNumber);const i=this.model.tokenization.getLineTokens(e.startLineNumber),s=nb(i,e.startColumn-1),r=Kr.createEmpty("",s.languageIdCodec),o=e.startLineNumber-1;if(o===0||!(s.firstCharOffset===0))return r;const c=t(o);if(!(s.languageId===c.languageId))return r;const h=c.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(h)}}class GLe{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){var o,a;const i=(l,c)=>{const u=Xi(l);return c+l.substring(u.length)};(a=(o=this.model.tokenization).forceTokenization)==null||a.call(o,e);const s=this.model.tokenization.getLineTokens(e);let r=this.getProcessedTokens(s).getLineContent();return t!==void 0&&(r=i(r,t)),r}getProcessedTokens(e){const t=l=>l===2||l===3||l===1,i=e.getLanguageId(0),r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew.getBracketRegExp({global:!0}),o=[];return e.forEach(l=>{const c=e.getStandardTokenType(l);let u=e.getTokenText(l);t(c)&&(u=u.replace(r,""));const h=e.getMetadata(l);o.push({text:u,metadata:h})}),Kr.createFromTextAndMetadata(o,e.languageIdCodec)}}function Kee(n,e){n.tokenization.forceTokenization(e.lineNumber);const t=n.tokenization.getLineTokens(e.lineNumber),i=nb(t,e.column-1),s=i.firstCharOffset===0,r=t.getLanguageId(0)===i.languageId;return!s&&!r}function VC(n,e,t,i){e.tokenization.forceTokenization(t.startLineNumber);const s=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),r=i.getLanguageConfiguration(s);if(!r)return null;const a=new qee(e,i).getProcessedTokenContextAroundRange(t),l=a.previousLineProcessedTokens.getLineContent(),c=a.beforeRangeProcessedTokens.getLineContent(),u=a.afterRangeProcessedTokens.getLineContent(),h=r.onEnter(n,l,c,u);if(!h)return null;const d=h.indentAction;let f=h.appendText;const p=h.removeText||0;f?d===ks.Indent&&(f=" "+f):d===ks.Indent||d===ks.IndentOutdent?f=" ":f="";let g=qLe(e,t.startLineNumber,t.startColumn);return p&&(g=g.substring(0,g.length-p)),{indentAction:d,appendText:f,removeText:p,indentation:g}}var odt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},adt=function(n,e){return function(t,i){e(t,i,n)}},dM;const Y7=Object.create(null);function Z_(n,e){if(e<=0)return"";Y7[n]||(Y7[n]=["",n]);const t=Y7[n];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+n;return t[e]}let nu=dM=class{static unshiftIndent(e,t,i,s,r){const o=Vs.visibleColumnFromColumn(e,t,i);if(r){const a=Z_(" ",s),c=Vs.prevIndentTabStop(o,s)/s;return Z_(a,c)}else{const a=" ",c=Vs.prevRenderTabStop(o,i)/i;return Z_(a,c)}}static shiftIndent(e,t,i,s,r){const o=Vs.visibleColumnFromColumn(e,t,i);if(r){const a=Z_(" ",s),c=Vs.nextIndentTabStop(o,s)/s;return Z_(a,c)}else{const a=" ",c=Vs.nextRenderTabStop(o,i)/i;return Z_(a,c)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let s=this._selection.endLineNumber;this._selection.endColumn===1&&i!==s&&(s=s-1);const{tabSize:r,indentSize:o,insertSpaces:a}=this._opts,l=i===s;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,u=0;for(let h=i;h<=s;h++,c=u){u=0;const d=e.getLineContent(h);let f=Io(d);if(this._opts.isUnshift&&(d.length===0||f===0)||!l&&!this._opts.isUnshift&&d.length===0)continue;if(f===-1&&(f=d.length),h>1&&Vs.visibleColumnFromColumn(d,f+1,r)%o!==0&&e.tokenization.isCheapToTokenize(h-1)){const m=VC(this._opts.autoIndent,e,new O(h-1,e.getLineMaxColumn(h-1),h-1,e.getLineMaxColumn(h-1)),this._languageConfigurationService);if(m){if(u=c,m.appendText)for(let _=0,b=m.appendText.length;_<b&&u<o&&m.appendText.charCodeAt(_)===32;_++)u++;m.removeText&&(u=Math.max(0,u-m.removeText));for(let _=0;_<u&&!(f===0||d.charCodeAt(f-1)!==32);_++)f--}}if(this._opts.isUnshift&&f===0)continue;let p;this._opts.isUnshift?p=dM.unshiftIndent(d,f+1,r,o,a):p=dM.shiftIndent(d,f+1,r,o,a),this._addEditOperation(t,new O(h,1,h,f+1),p),h===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn<=f+1)}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&e.getLineLength(i)===0&&(this._useLastEditRangeForCursorEndPosition=!0);const c=a?Z_(" ",o):" ";for(let u=i;u<=s;u++){const h=e.getLineContent(u);let d=Io(h);if(!(this._opts.isUnshift&&(h.length===0||d===0))&&!(!l&&!this._opts.isUnshift&&h.length===0)&&(d===-1&&(d=h.length),!(this._opts.isUnshift&&d===0)))if(this._opts.isUnshift){d=Math.min(d,o);for(let f=0;f<d;f++)if(h.charCodeAt(f)===9){d=f+1;break}this._addEditOperation(t,new O(u,1,u,d+1),"")}else this._addEditOperation(t,new O(u,1,u,1),c),u===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn===1)}}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){const s=t.getInverseEditOperations()[0];return new nt(s.range.endLineNumber,s.range.endColumn,s.range.endLineNumber,s.range.endColumn)}const i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){const s=this._selection.startColumn;return i.startColumn<=s?i:i.getDirection()===0?new nt(i.startLineNumber,s,i.endLineNumber,i.endColumn):new nt(i.endLineNumber,i.endColumn,i.startLineNumber,s)}return i}};nu=dM=odt([adt(2,ln)],nu);class ldt{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new O(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new O(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){const i=t.getInverseEditOperations(),s=i[0].range,r=i[1].range;return new nt(s.endLineNumber,s.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)}}class cdt{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new O(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return new nt(s.endLineNumber,s.startColumn,s.endLineNumber,s.endColumn-this._charAfter.length)}}function udt(n,e,t){const i=n.tokenization.getLanguageIdAtPosition(e,0);if(e>1){let s,r=-1;for(s=e-1;s>=1;s--){if(n.tokenization.getLanguageIdAtPosition(s,0)!==i)return r;const o=n.getLineContent(s);if(t.shouldIgnore(s)||/^\s+$/.test(o)||o===""){r=s;continue}return s}}return-1}function xT(n,e,t,i=!0,s){if(n<4)return null;const r=s.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!r)return null;const o=new jee(e,r,s);if(t<=1)return{indentation:"",action:null};for(let l=t-1;l>0&&e.getLineContent(l)==="";l--)if(l===1)return{indentation:"",action:null};const a=udt(e,t,o);if(a<0)return null;if(a<1)return{indentation:"",action:null};if(o.shouldIncrease(a)||o.shouldIndentNextLine(a)){const l=e.getLineContent(a);return{indentation:Xi(l),action:ks.Indent,line:a}}else if(o.shouldDecrease(a)){const l=e.getLineContent(a);return{indentation:Xi(l),action:null,line:a}}else{if(a===1)return{indentation:Xi(e.getLineContent(a)),action:null,line:a};const l=a-1,c=r.getIndentMetadata(e.getLineContent(l));if(!(c&3)&&c&4){let u=0;for(let h=l-1;h>0;h--)if(!o.shouldIndentNextLine(h)){u=h;break}return{indentation:Xi(e.getLineContent(u+1)),action:null,line:u+1}}if(i)return{indentation:Xi(e.getLineContent(a)),action:null,line:a};for(let u=a;u>0;u--){if(o.shouldIncrease(u))return{indentation:Xi(e.getLineContent(u)),action:ks.Indent,line:u};if(o.shouldIndentNextLine(u)){let h=0;for(let d=u-1;d>0;d--)if(!o.shouldIndentNextLine(u)){h=d;break}return{indentation:Xi(e.getLineContent(h+1)),action:null,line:h+1}}else if(o.shouldDecrease(u))return{indentation:Xi(e.getLineContent(u)),action:null,line:u}}return{indentation:Xi(e.getLineContent(1)),action:null,line:1}}}function Dk(n,e,t,i,s,r){if(n<4)return null;const o=r.getLanguageConfiguration(t);if(!o)return null;const a=r.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;const l=new jee(e,a,r),c=xT(n,e,i,void 0,r);if(c){const u=c.line;if(u!==void 0){let h=!0;for(let d=u;d<i-1;d++)if(!/^\s*$/.test(e.getLineContent(d))){h=!1;break}if(h){const d=o.onEnter(n,"",e.getLineContent(u),"");if(d){let f=Xi(e.getLineContent(u));return d.removeText&&(f=f.substring(0,f.length-d.removeText)),d.indentAction===ks.Indent||d.indentAction===ks.IndentOutdent?f=s.shiftIndent(f):d.indentAction===ks.Outdent&&(f=s.unshiftIndent(f)),l.shouldDecrease(i)&&(f=s.unshiftIndent(f)),d.appendText&&(f+=d.appendText),Xi(f)}}}return l.shouldDecrease(i)?c.action===ks.Indent?c.indentation:s.unshiftIndent(c.indentation):c.action===ks.Indent?s.shiftIndent(c.indentation):c.indentation}return null}function hdt(n,e,t,i,s){if(n<4)return null;const r=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),o=s.getLanguageConfiguration(r).indentRulesSupport;if(!o)return null;e.tokenization.forceTokenization(t.startLineNumber);const l=new qee(e,s).getProcessedTokenContextAroundRange(t),c=l.afterRangeProcessedTokens,u=l.beforeRangeProcessedTokens,h=Xi(u.getLineContent()),d=fdt(e,t.startLineNumber,u),f=Kee(e,t.getStartPosition()),p=e.getLineContent(t.startLineNumber),g=Xi(p),m=xT(n,d,t.startLineNumber+1,void 0,s);if(!m){const b=f?g:h;return{beforeEnter:b,afterEnter:b}}let _=f?g:m.indentation;return m.action===ks.Indent&&(_=i.shiftIndent(_)),o.shouldDecrease(c.getLineContent())&&(_=i.unshiftIndent(_)),{beforeEnter:f?g:h,afterEnter:_}}function ddt(n,e,t,i,s,r){const o=n.autoIndent;if(o<4||Kee(e,t.getStartPosition()))return null;const l=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),c=r.getLanguageConfiguration(l).indentRulesSupport;if(!c)return null;const h=new qee(e,r).getProcessedTokenContextAroundRange(t),d=h.beforeRangeProcessedTokens.getLineContent(),f=h.afterRangeProcessedTokens.getLineContent(),p=d+f,g=d+i+f;if(!c.shouldDecrease(p)&&c.shouldDecrease(g)){const _=xT(o,e,t.startLineNumber,!1,r);if(!_)return null;let b=_.indentation;return _.action!==ks.Indent&&(b=s.unshiftIndent(b)),b}const m=t.startLineNumber-1;if(m>0){const _=e.getLineContent(m);if(c.shouldIndentNextLine(_)&&c.shouldIncrease(g)){const b=xT(o,e,t.startLineNumber,!1,r),w=b==null?void 0:b.indentation;if(w!==void 0){const C=e.getLineContent(t.startLineNumber),S=Xi(C),k=s.shiftIndent(w)===S,L=/^\s*$/.test(p),E=n.autoClosingPairs.autoClosingPairsOpenByEnd.get(i),I=E&&E.length>0&&L;if(k&&I)return w}}}return null}function XLe(n,e,t){const i=t.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;return!i||e<1||e>n.getLineCount()?null:i.getIndentMetadata(n.getLineContent(e))}function fdt(n,e,t){return{tokenization:{getLineTokens:s=>s===e?t:n.tokenization.getLineTokens(s),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(s,r)=>n.getLanguageIdAtPosition(s,r)},getLineContent:s=>s===e?t.getLineContent():n.getLineContent(s)}}class pdt{static getEdits(e,t,i,s,r){if(!r&&this._isAutoIndentType(e,t,i)){const o=[];for(const l of i){const c=this._findActualIndentationForSelection(e,t,l,s);if(c===null)return;o.push({selection:l,indentation:c})}const a=Iz.getAutoClosingPairClose(e,t,i,s,!1);return this._getIndentationAndAutoClosingPairEdits(e,t,o,s,a)}}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let s=0,r=i.length;s<r;s++)if(!t.tokenization.isCheapToTokenize(i[s].getEndPosition().lineNumber))return!1;return!0}static _findActualIndentationForSelection(e,t,i,s){const r=ddt(e,t,i,s,{shiftIndent:a=>Yee(e,a),unshiftIndent:a=>LF(e,a)},e.languageConfigurationService);if(r===null)return null;const o=qLe(t,i.startLineNumber,i.startColumn);return r===e.normalizeIndentation(o)?null:r}static _getIndentationAndAutoClosingPairEdits(e,t,i,s,r){const o=i.map(({selection:l,indentation:c})=>{if(r!==null){const u=this._getEditFromIndentationAndSelection(e,t,c,l,s,!1);return new Ldt(u,l,s,r)}else{const u=this._getEditFromIndentationAndSelection(e,t,c,l,s,!0);return pv(u.range,u.text,!1)}}),a={shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1};return new Ra(4,o,a)}static _getEditFromIndentationAndSelection(e,t,i,s,r,o=!0){const a=s.startLineNumber,l=t.getLineFirstNonWhitespaceColumn(a);let c=e.normalizeIndentation(i);if(l!==0){const h=t.getLineContent(a);c+=h.substring(l-1,s.startColumn-1)}return c+=o?r:"",{range:new O(a,1,s.endLineNumber,s.endColumn),text:c}}}class gdt{static getEdits(e,t,i,s,r,o){if(YLe(t,i,s,r,o))return this._runAutoClosingOvertype(e,s,o)}static _runAutoClosingOvertype(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const l=t[r].getPosition(),c=new O(l.lineNumber,l.column,l.lineNumber,l.column+1);s[r]=new Wr(c,i)}return new Ra(4,s,{shouldPushStackElementBefore:e8(e,4),shouldPushStackElementAfter:!1})}}class mdt{static getEdits(e,t,i,s,r){if(YLe(e,t,i,s,r)){const o=i.map(a=>new Wr(new O(a.positionLineNumber,a.positionColumn,a.positionLineNumber,a.positionColumn+1),"",!1));return new Ra(4,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}}class Iz{static getEdits(e,t,i,s,r,o){if(!o){const a=this.getAutoClosingPairClose(e,t,i,s,r);if(a!==null)return this._runAutoClosingOpenCharType(i,s,r,a)}}static _runAutoClosingOpenCharType(e,t,i,s){const r=[];for(let o=0,a=e.length;o<a;o++){const l=e[o];r[o]=new xdt(l,t,!i,s)}return new Ra(4,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static getAutoClosingPairClose(e,t,i,s,r){for(const p of i)if(!p.isEmpty())return null;const o=i.map(p=>{const g=p.getPosition();return r?{lineNumber:g.lineNumber,beforeColumn:g.column-s.length,afterColumn:g.column}:{lineNumber:g.lineNumber,beforeColumn:g.column,afterColumn:g.column}}),a=this._findAutoClosingPairOpen(e,t,o.map(p=>new se(p.lineNumber,p.beforeColumn)),s);if(!a)return null;let l,c;if(a_(s)?(l=e.autoClosingQuotes,c=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,c=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,c=e.shouldAutoCloseBefore.bracket),l==="never")return null;const h=this._findContainedAutoClosingPair(e,a),d=h?h.close:"";let f=!0;for(const p of o){const{lineNumber:g,beforeColumn:m,afterColumn:_}=p,b=t.getLineContent(g),w=b.substring(0,m-1),C=b.substring(_-1);if(C.startsWith(d)||(f=!1),C.length>0){const L=C.charAt(0);if(!this._isBeforeClosingBrace(e,C)&&!c(L))return null}if(a.open.length===1&&(s==="'"||s==='"')&&l!=="always"){const L=iu(e.wordSeparators,[]);if(w.length>0){const E=w.charCodeAt(w.length-1);if(L.get(E)===0)return null}}if(!t.tokenization.isCheapToTokenize(g))return null;t.tokenization.forceTokenization(g);const S=t.tokenization.getLineTokens(g),x=nb(S,m-1);if(!a.shouldAutoClose(x,m-x.firstCharOffset))return null;const k=a.findNeutralCharacter();if(k){const L=t.tokenization.getTokenTypeIfInsertingCharacter(g,m,k);if(!a.isOK(L))return null}}return f?a.close.substring(0,a.close.length-d.length):a.close}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),s=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let r=null;for(const o of s)o.open!==t.open&&t.open.includes(o.open)&&t.close.endsWith(o.close)&&(!r||o.open.length>r.open.length)&&(r=o);return r}static _findAutoClosingPairOpen(e,t,i,s){const r=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(s);if(!r)return null;let o=null;for(const a of r)if(o===null||a.open.length>o.open.length){let l=!0;for(const c of i)if(t.getValueInRange(new O(c.lineNumber,c.column-a.open.length+1,c.lineNumber,c.column))+s!==a.open){l=!1;break}l&&(o=a)}return o}static _isBeforeClosingBrace(e,t){const i=t.charAt(0),s=e.autoClosingPairs.autoClosingPairsOpenByStart.get(i)||[],r=e.autoClosingPairs.autoClosingPairsCloseByStart.get(i)||[],o=s.some(l=>t.startsWith(l.open)),a=r.some(l=>t.startsWith(l.close));return!o&&a}}class _dt{static getEdits(e,t,i,s,r){if(!r&&this._isSurroundSelectionType(e,t,i,s))return this._runSurroundSelectionType(e,i,s)}static _runSurroundSelectionType(e,t,i){const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=e.surroundingPairs[i];s[r]=new ldt(a,i,l)}return new Ra(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isSurroundSelectionType(e,t,i,s){if(!ZLe(e,s)||!e.surroundingPairs.hasOwnProperty(s))return!1;const r=a_(s);for(const o of i){if(o.isEmpty())return!1;let a=!0;for(let l=o.startLineNumber;l<=o.endLineNumber;l++){const c=t.getLineContent(l),u=l===o.startLineNumber?o.startColumn-1:0,h=l===o.endLineNumber?o.endColumn-1:c.length,d=c.substring(u,h);if(/[^ \t]/.test(d)){a=!1;break}}if(a)return!1;if(r&&o.startLineNumber===o.endLineNumber&&o.startColumn+1===o.endColumn){const l=t.getValueInRange(o);if(a_(l))return!1}}return!0}}class vdt{static getEdits(e,t,i,s,r,o){if(!o&&this._isTypeInterceptorElectricChar(t,i,s)){const a=this._typeInterceptorElectricChar(e,t,i,s[0],r);if(a)return a}}static _isTypeInterceptorElectricChar(e,t,i){return!!(i.length===1&&t.tokenization.isCheapToTokenize(i[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,i,s,r){if(!t.electricChars.hasOwnProperty(r)||!s.isEmpty())return null;const o=s.getPosition();i.tokenization.forceTokenization(o.lineNumber);const a=i.tokenization.getLineTokens(o.lineNumber);let l;try{l=t.onElectricCharacter(r,a,o.column)}catch(c){return Nt(c),null}if(!l)return null;if(l.matchOpenBracket){const c=(a.getLineContent()+r).lastIndexOf(l.matchOpenBracket)+1,u=i.bracketPairs.findMatchingBracketUp(l.matchOpenBracket,{lineNumber:o.lineNumber,column:c},500);if(u){if(u.startLineNumber===o.lineNumber)return null;const h=i.getLineContent(u.startLineNumber),d=Xi(h),f=t.normalizeIndentation(d),p=i.getLineContent(o.lineNumber),g=i.getLineFirstNonWhitespaceColumn(o.lineNumber)||o.column,m=p.substring(g-1,o.column-1),_=f+m+r,b=new O(o.lineNumber,1,o.lineNumber,o.column),w=new Wr(b,_);return new Ra(Xee(_,e),[w],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}}class bdt{static getEdits(e,t,i){const s=[];for(let o=0,a=t.length;o<a;o++)s[o]=new Wr(t[o],i);const r=Xee(i,e);return new Ra(r,s,{shouldPushStackElementBefore:e8(e,r),shouldPushStackElementAfter:!1})}}class JB{static getEdits(e,t,i,s,r){if(!r&&s===` +`){const o=[];for(let a=0,l=i.length;a<l;a++)o[a]=this._enter(e,t,!1,i[a]);return new Ra(4,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}static _enter(e,t,i,s){if(e.autoIndent===0)return pv(s,` +`,i);if(!t.tokenization.isCheapToTokenize(s.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(s.startLineNumber),c=Xi(l).substring(0,s.startColumn-1);return pv(s,` +`+e.normalizeIndentation(c),i)}const r=VC(e.autoIndent,t,s,e.languageConfigurationService);if(r){if(r.indentAction===ks.None)return pv(s,` +`+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===ks.Indent)return pv(s,` +`+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===ks.IndentOutdent){const l=e.normalizeIndentation(r.indentation),c=e.normalizeIndentation(r.indentation+r.appendText),u=` +`+c+` +`+l;return i?new uM(s,u,!0):new vF(s,u,-1,c.length-l.length,!0)}else if(r.indentAction===ks.Outdent){const l=LF(e,r.indentation);return pv(s,` +`+e.normalizeIndentation(l+r.appendText),i)}}const o=t.getLineContent(s.startLineNumber),a=Xi(o).substring(0,s.startColumn-1);if(e.autoIndent>=4){const l=hdt(e.autoIndent,t,s,{unshiftIndent:c=>LF(e,c),shiftIndent:c=>Yee(e,c),normalizeIndentation:c=>e.normalizeIndentation(c)},e.languageConfigurationService);if(l){let c=e.visibleColumnFromColumn(t,s.getEndPosition());const u=s.endColumn,h=t.getLineContent(s.endLineNumber),d=Io(h);if(d>=0?s=s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,d+1)):s=s.setEndPosition(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),i)return new uM(s,` +`+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return u<=d+1&&(e.insertSpaces||(c=Math.ceil(c/e.indentSize)),f=Math.min(c+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new vF(s,` +`+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return pv(s,` +`+e.normalizeIndentation(a),i)}static lineInsertBefore(e,t,i){if(t===null||i===null)return[];const s=[];for(let r=0,o=i.length;r<o;r++){let a=i[r].positionLineNumber;if(a===1)s[r]=new uM(new O(1,1,1,1),` +`);else{a--;const l=t.getLineMaxColumn(a);s[r]=this._enter(e,t,!1,new O(a,l,a,l))}}return s}static lineInsertAfter(e,t,i){if(t===null||i===null)return[];const s=[];for(let r=0,o=i.length;r<o;r++){const a=i[r].positionLineNumber,l=t.getLineMaxColumn(a);s[r]=this._enter(e,t,!1,new O(a,l,a,l))}return s}static lineBreakInsert(e,t,i){const s=[];for(let r=0,o=i.length;r<o;r++)s[r]=this._enter(e,t,!0,i[r]);return s}}class ydt{static getEdits(e,t,i,s,r,o){const a=this._distributePasteToCursors(e,i,s,r,o);return a?(i=i.sort(O.compareRangesUsingStarts),this._distributedPaste(e,t,i,a)):this._simplePaste(e,t,i,s,r)}static _distributePasteToCursors(e,t,i,s,r){if(s||t.length===1)return null;if(r&&r.length===t.length)return r;if(e.multiCursorPaste==="spread"){i.charCodeAt(i.length-1)===10&&(i=i.substring(0,i.length-1)),i.charCodeAt(i.length-1)===13&&(i=i.substring(0,i.length-1));const o=ip(i);if(o.length===t.length)return o}return null}static _distributedPaste(e,t,i,s){const r=[];for(let o=0,a=i.length;o<a;o++)r[o]=new Wr(i[o],s[o]);return new Ra(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,i,s,r){const o=[];for(let a=0,l=i.length;a<l;a++){const c=i[a],u=c.getPosition();if(r&&!c.isEmpty()&&(r=!1),r&&s.indexOf(` +`)!==s.length-1&&(r=!1),r){const h=new O(u.lineNumber,1,u.lineNumber,1);o[a]=new Oee(h,s,c,!0)}else o[a]=new Wr(c,s)}return new Ra(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class wdt{static getEdits(e,t,i,s,r,o,a,l){const c=s.map(u=>this._compositionType(i,u,r,o,a,l));return new Ra(4,c,{shouldPushStackElementBefore:e8(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,s,r,o){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-s),c=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+r),u=new O(a.lineNumber,l,a.lineNumber,c);return e.getValueInRange(u)===i&&o===0?null:new vF(u,i,0,o)}}class Cdt{static getEdits(e,t,i){const s=[];for(let o=0,a=t.length;o<a;o++)s[o]=new Wr(t[o],i);const r=Xee(i,e);return new Ra(r,s,{shouldPushStackElementBefore:e8(e,r),shouldPushStackElementAfter:!1})}}class Sdt{static getCommands(e,t,i){const s=[];for(let r=0,o=i.length;r<o;r++){const a=i[r];if(a.isEmpty()){const l=t.getLineContent(a.startLineNumber);if(/^\s*$/.test(l)&&t.tokenization.isCheapToTokenize(a.startLineNumber)){let c=this._goodIndentForLine(e,t,a.startLineNumber);c=c||" ";const u=e.normalizeIndentation(c);if(!l.startsWith(u)){s[r]=new Wr(new O(a.startLineNumber,1,a.startLineNumber,l.length+1),u,!0);continue}}s[r]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){const l=t.getLineMaxColumn(a.startLineNumber);if(a.startColumn!==1||a.endColumn!==l){s[r]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}s[r]=new nu(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return s}static _goodIndentForLine(e,t,i){let s=null,r="";const o=xT(e.autoIndent,t,i,!1,e.languageConfigurationService);if(o)s=o.action,r=o.indentation;else if(i>1){let a;for(a=i-1;a>=1;a--){const u=t.getLineContent(a);if(Fh(u)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),c=VC(e.autoIndent,t,new O(a,l,a,l),e.languageConfigurationService);c&&(r=c.indentation+c.appendText)}return s&&(s===ks.Indent&&(r=Yee(e,r)),s===ks.Outdent&&(r=LF(e,r)),r=e.normalizeIndentation(r)),r||null}static _replaceJumpToNextIndent(e,t,i,s){let r="";const o=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,o),l=e.indentSize,c=l-a%l;for(let u=0;u<c;u++)r+=" "}else r=" ";return new Wr(i,r,s)}}class Gee extends vF{constructor(e,t,i,s,r,o){super(e,t,i,s),this._openCharacter=r,this._closeCharacter=o,this.closeCharacterRange=null,this.enclosingRange=null}_computeCursorStateWithRange(e,t,i){return this.closeCharacterRange=new O(t.startLineNumber,t.endColumn-this._closeCharacter.length,t.endLineNumber,t.endColumn),this.enclosingRange=new O(t.startLineNumber,t.endColumn-this._openCharacter.length-this._closeCharacter.length,t.endLineNumber,t.endColumn),super.computeCursorState(e,i)}}class xdt extends Gee{constructor(e,t,i,s){const r=(i?t:"")+s,o=0,a=-s.length;super(e,r,o,a,t,s)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this._computeCursorStateWithRange(e,s,t)}}class Ldt extends Gee{constructor(e,t,i,s){const r=i+s,o=0,a=i.length;super(t,r,o,a,i,s),this._autoIndentationEdit=e,this._autoClosingEdit={range:t,text:r}}getEditOperations(e,t){t.addTrackedEditOperation(this._autoIndentationEdit.range,this._autoIndentationEdit.text),t.addTrackedEditOperation(this._autoClosingEdit.range,this._autoClosingEdit.text)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length!==2)throw new Error("There should be two inverse edit operations!");const s=i[0].range,r=i[1].range,o=s.plusRange(r);return this._computeCursorStateWithRange(e,o,t)}}function Xee(n,e){return n===" "?e===5||e===6?6:5:4}function e8(n,e){return Hue(n)&&!Hue(e)?!0:n===5?!1:Vue(n)!==Vue(e)}function Vue(n){return n===6||n===5?"space":n}function Hue(n){return n===4||n===5||n===6}function YLe(n,e,t,i,s){if(n.autoClosingOvertype==="never"||!n.autoClosingPairs.autoClosingPairsCloseSingleChar.has(s))return!1;for(let r=0,o=t.length;r<o;r++){const a=t[r];if(!a.isEmpty())return!1;const l=a.getPosition(),c=e.getLineContent(l.lineNumber);if(c.charAt(l.column-1)!==s)return!1;const h=a_(s);if((l.column>2?c.charCodeAt(l.column-2):0)===92&&h)return!1;if(n.autoClosingOvertype==="auto"){let f=!1;for(let p=0,g=i.length;p<g;p++){const m=i[p];if(l.lineNumber===m.startLineNumber&&l.column===m.startColumn){f=!0;break}}if(!f)return!1}}return!0}function pv(n,e,t){return t?new uM(n,e,!0):new Wr(n,e,!0)}function Yee(n,e,t){return t=t||1,nu.shiftIndent(e,e.length+t,n.tabSize,n.indentSize,n.insertSpaces)}function LF(n,e,t){return t=t||1,nu.unshiftIndent(e,e.length+t,n.tabSize,n.indentSize,n.insertSpaces)}function ZLe(n,e){return a_(e)?n.autoSurround==="quotes"||n.autoSurround==="languageDefined":n.autoSurround==="brackets"||n.autoSurround==="languageDefined"}class zm{static indent(e,t,i){if(t===null||i===null)return[];const s=[];for(let r=0,o=i.length;r<o;r++)s[r]=new nu(i[r],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static outdent(e,t,i){const s=[];for(let r=0,o=i.length;r<o;r++)s[r]=new nu(i[r],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static paste(e,t,i,s,r,o){return ydt.getEdits(e,t,i,s,r,o)}static tab(e,t,i){return Sdt.getCommands(e,t,i)}static compositionType(e,t,i,s,r,o,a,l){return wdt.getEdits(e,t,i,s,r,o,a,l)}static compositionEndWithInterceptors(e,t,i,s,r,o){if(!s)return null;let a=null;for(const d of s)if(a===null)a=d.insertedText;else if(a!==d.insertedText)return null;if(!a||a.length!==1)return null;const l=a;let c=!1;for(const d of s)if(d.deletedText.length!==0){c=!0;break}if(c){if(!ZLe(t,l)||!t.surroundingPairs.hasOwnProperty(l))return null;const d=a_(l);for(const g of s)if(g.deletedSelectionStart!==0||g.deletedSelectionEnd!==g.deletedText.length||/^[ \t]+$/.test(g.deletedText)||d&&a_(g.deletedText))return null;const f=[];for(const g of r){if(!g.isEmpty())return null;f.push(g.getPosition())}if(f.length!==s.length)return null;const p=[];for(let g=0,m=f.length;g<m;g++)p.push(new cdt(f[g],s[g].deletedText,t.surroundingPairs[l]));return new Ra(4,p,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const u=mdt.getEdits(t,i,r,o,l);if(u!==void 0)return u;const h=Iz.getEdits(t,i,r,l,!0,!1);return h!==void 0?h:null}static typeWithInterceptors(e,t,i,s,r,o,a){const l=JB.getEdits(i,s,r,a,e);if(l!==void 0)return l;const c=pdt.getEdits(i,s,r,a,e);if(c!==void 0)return c;const u=gdt.getEdits(t,i,s,r,o,a);if(u!==void 0)return u;const h=Iz.getEdits(i,s,r,a,!1,e);if(h!==void 0)return h;const d=_dt.getEdits(i,s,r,a,e);if(d!==void 0)return d;const f=vdt.getEdits(t,i,s,r,a,e);return f!==void 0?f:bdt.getEdits(t,r,a)}static typeWithoutInterceptors(e,t,i,s,r){return Cdt.getEdits(e,s,r)}}class Edt{constructor(e,t,i,s,r,o){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=i,this.insertedText=s,this.insertedSelectionStart=r,this.insertedSelectionEnd=o}}var H;(function(n){n.editorSimpleInput=new $e("editorSimpleInput",!1,!0),n.editorTextFocus=new $e("editorTextFocus",!1,v("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),n.focus=new $e("editorFocus",!1,v("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),n.textInputFocus=new $e("textInputFocus",!1,v("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),n.readOnly=new $e("editorReadonly",!1,v("editorReadonly","Whether the editor is read-only")),n.inDiffEditor=new $e("inDiffEditor",!1,v("inDiffEditor","Whether the context is a diff editor")),n.isEmbeddedDiffEditor=new $e("isEmbeddedDiffEditor",!1,v("isEmbeddedDiffEditor","Whether the context is an embedded diff editor")),n.inMultiDiffEditor=new $e("inMultiDiffEditor",!1,v("inMultiDiffEditor","Whether the context is a multi diff editor")),n.multiDiffEditorAllCollapsed=new $e("multiDiffEditorAllCollapsed",void 0,v("multiDiffEditorAllCollapsed","Whether all files in multi diff editor are collapsed")),n.hasChanges=new $e("diffEditorHasChanges",!1,v("diffEditorHasChanges","Whether the diff editor has changes")),n.comparingMovedCode=new $e("comparingMovedCode",!1,v("comparingMovedCode","Whether a moved code block is selected for comparison")),n.accessibleDiffViewerVisible=new $e("accessibleDiffViewerVisible",!1,v("accessibleDiffViewerVisible","Whether the accessible diff viewer is visible")),n.diffEditorRenderSideBySideInlineBreakpointReached=new $e("diffEditorRenderSideBySideInlineBreakpointReached",!1,v("diffEditorRenderSideBySideInlineBreakpointReached","Whether the diff editor render side by side inline breakpoint is reached")),n.diffEditorInlineMode=new $e("diffEditorInlineMode",!1,v("diffEditorInlineMode","Whether inline mode is active")),n.diffEditorOriginalWritable=new $e("diffEditorOriginalWritable",!1,v("diffEditorOriginalWritable","Whether modified is writable in the diff editor")),n.diffEditorModifiedWritable=new $e("diffEditorModifiedWritable",!1,v("diffEditorModifiedWritable","Whether modified is writable in the diff editor")),n.diffEditorOriginalUri=new $e("diffEditorOriginalUri","",v("diffEditorOriginalUri","The uri of the original document")),n.diffEditorModifiedUri=new $e("diffEditorModifiedUri","",v("diffEditorModifiedUri","The uri of the modified document")),n.columnSelection=new $e("editorColumnSelection",!1,v("editorColumnSelection","Whether `editor.columnSelection` is enabled")),n.writable=n.readOnly.toNegated(),n.hasNonEmptySelection=new $e("editorHasSelection",!1,v("editorHasSelection","Whether the editor has text selected")),n.hasOnlyEmptySelection=n.hasNonEmptySelection.toNegated(),n.hasMultipleSelections=new $e("editorHasMultipleSelections",!1,v("editorHasMultipleSelections","Whether the editor has multiple selections")),n.hasSingleSelection=n.hasMultipleSelections.toNegated(),n.tabMovesFocus=new $e("editorTabMovesFocus",!1,v("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),n.tabDoesNotMoveFocus=n.tabMovesFocus.toNegated(),n.isInEmbeddedEditor=new $e("isInEmbeddedEditor",!1,!0),n.canUndo=new $e("canUndo",!1,!0),n.canRedo=new $e("canRedo",!1,!0),n.hoverVisible=new $e("editorHoverVisible",!1,v("editorHoverVisible","Whether the editor hover is visible")),n.hoverFocused=new $e("editorHoverFocused",!1,v("editorHoverFocused","Whether the editor hover is focused")),n.stickyScrollFocused=new $e("stickyScrollFocused",!1,v("stickyScrollFocused","Whether the sticky scroll is focused")),n.stickyScrollVisible=new $e("stickyScrollVisible",!1,v("stickyScrollVisible","Whether the sticky scroll is visible")),n.standaloneColorPickerVisible=new $e("standaloneColorPickerVisible",!1,v("standaloneColorPickerVisible","Whether the standalone color picker is visible")),n.standaloneColorPickerFocused=new $e("standaloneColorPickerFocused",!1,v("standaloneColorPickerFocused","Whether the standalone color picker is focused")),n.inCompositeEditor=new $e("inCompositeEditor",void 0,v("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),n.notInCompositeEditor=n.inCompositeEditor.toNegated(),n.languageId=new $e("editorLangId","",v("editorLangId","The language identifier of the editor")),n.hasCompletionItemProvider=new $e("editorHasCompletionItemProvider",!1,v("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),n.hasCodeActionsProvider=new $e("editorHasCodeActionsProvider",!1,v("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),n.hasCodeLensProvider=new $e("editorHasCodeLensProvider",!1,v("editorHasCodeLensProvider","Whether the editor has a code lens provider")),n.hasDefinitionProvider=new $e("editorHasDefinitionProvider",!1,v("editorHasDefinitionProvider","Whether the editor has a definition provider")),n.hasDeclarationProvider=new $e("editorHasDeclarationProvider",!1,v("editorHasDeclarationProvider","Whether the editor has a declaration provider")),n.hasImplementationProvider=new $e("editorHasImplementationProvider",!1,v("editorHasImplementationProvider","Whether the editor has an implementation provider")),n.hasTypeDefinitionProvider=new $e("editorHasTypeDefinitionProvider",!1,v("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),n.hasHoverProvider=new $e("editorHasHoverProvider",!1,v("editorHasHoverProvider","Whether the editor has a hover provider")),n.hasDocumentHighlightProvider=new $e("editorHasDocumentHighlightProvider",!1,v("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),n.hasDocumentSymbolProvider=new $e("editorHasDocumentSymbolProvider",!1,v("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),n.hasReferenceProvider=new $e("editorHasReferenceProvider",!1,v("editorHasReferenceProvider","Whether the editor has a reference provider")),n.hasRenameProvider=new $e("editorHasRenameProvider",!1,v("editorHasRenameProvider","Whether the editor has a rename provider")),n.hasSignatureHelpProvider=new $e("editorHasSignatureHelpProvider",!1,v("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),n.hasInlayHintsProvider=new $e("editorHasInlayHintsProvider",!1,v("editorHasInlayHintsProvider","Whether the editor has an inline hints provider")),n.hasDocumentFormattingProvider=new $e("editorHasDocumentFormattingProvider",!1,v("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),n.hasDocumentSelectionFormattingProvider=new $e("editorHasDocumentSelectionFormattingProvider",!1,v("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),n.hasMultipleDocumentFormattingProvider=new $e("editorHasMultipleDocumentFormattingProvider",!1,v("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),n.hasMultipleDocumentSelectionFormattingProvider=new $e("editorHasMultipleDocumentSelectionFormattingProvider",!1,v("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))})(H||(H={}));const Ei=0;class es extends Gs{runEditorCommand(e,t,i){const s=t._getViewModel();s&&this.runCoreEditorCommand(s,i||{})}}var Rr;(function(n){const e=function(i){if(!fr(i))return!1;const s=i;return!(!Da(s.to)||!ko(s.by)&&!Da(s.by)||!ko(s.value)&&!t_(s.value)||!ko(s.revealCursor)&&!wxe(s.revealCursor))};n.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:e,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},n.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},n.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function t(i){let s;switch(i.to){case n.RawDirection.Up:s=1;break;case n.RawDirection.Right:s=2;break;case n.RawDirection.Down:s=3;break;case n.RawDirection.Left:s=4;break;default:return null}let r;switch(i.by){case n.RawUnit.Line:r=1;break;case n.RawUnit.WrappedLine:r=2;break;case n.RawUnit.Page:r=3;break;case n.RawUnit.HalfPage:r=4;break;case n.RawUnit.Editor:r=5;break;case n.RawUnit.Column:r=6;break;default:r=2}const o=Math.floor(i.value||1),a=!!i.revealCursor;return{direction:s,unit:r,value:o,revealCursor:a,select:!!i.select}}n.parse=t})(Rr||(Rr={}));var $w;(function(n){const e=function(t){if(!fr(t))return!1;const i=t;return!(!t_(i.lineNumber)&&!Da(i.lineNumber)||!ko(i.at)&&!Da(i.at))};n.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:e,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},n.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})($w||($w={}));class Tz{constructor(e){e.addImplementation(1e4,"code-editor",(t,i)=>{const s=t.get(wi).getFocusedCodeEditor();return s&&s.hasTextFocus()?this._runEditorCommand(t,s,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{const s=zr();return s&&["input","textarea"].indexOf(s.tagName.toLowerCase())>=0?(this.runDOMCommand(s),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{const s=t.get(wi).getActiveCodeEditor();return s?(s.focus(),this._runEditorCommand(t,s,i)):!1})}_runEditorCommand(e,t,i){const s=this.runEditorCommand(e,t,i);return s||!0}}var lr;(function(n){class e extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){if(!w.position)return;b.model.pushStackElement(),b.setCursorStates(w.source,3,[br.moveTo(b,b.getPrimaryCursorState(),this._inSelectionMode,w.position,w.viewPosition)])&&w.revealType!==2&&b.revealAllCursors(w.source,!0,!0)}}n.MoveTo=Ve(new e({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),n.MoveToSelect=Ve(new e({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class t extends es{runCoreEditorCommand(b,w){b.model.pushStackElement();const C=this._getColumnSelectResult(b,b.getPrimaryCursorState(),b.getCursorColumnSelectData(),w);C!==null&&(b.setCursorStates(w.source,3,C.viewStates.map(S=>bi.fromViewState(S))),b.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:C.fromLineNumber,fromViewVisualColumn:C.fromVisualColumn,toViewLineNumber:C.toLineNumber,toViewVisualColumn:C.toVisualColumn}),C.reversed?b.revealTopMostCursor(w.source):b.revealBottomMostCursor(w.source))}}n.ColumnSelect=Ve(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(_,b,w,C){if(typeof C.position>"u"||typeof C.viewPosition>"u"||typeof C.mouseColumn>"u")return null;const S=_.model.validatePosition(C.position),x=_.coordinatesConverter.validateViewPosition(new se(C.viewPosition.lineNumber,C.viewPosition.column),S),k=C.doColumnSelect?w.fromViewLineNumber:x.lineNumber,L=C.doColumnSelect?w.fromViewVisualColumn:C.mouseColumn-1;return Nv.columnSelect(_.cursorConfig,_,k,L,x.lineNumber,C.mouseColumn-1)}}),n.CursorColumnSelectLeft=Ve(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(_,b,w,C){return Nv.columnSelectLeft(_.cursorConfig,_,w)}}),n.CursorColumnSelectRight=Ve(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(_,b,w,C){return Nv.columnSelectRight(_.cursorConfig,_,w)}});class i extends t{constructor(b){super(b),this._isPaged=b.isPaged}_getColumnSelectResult(b,w,C,S){return Nv.columnSelectUp(b.cursorConfig,b,C,this._isPaged)}}n.CursorColumnSelectUp=Ve(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3600,linux:{primary:0}}})),n.CursorColumnSelectPageUp=Ve(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3595,linux:{primary:0}}}));class s extends t{constructor(b){super(b),this._isPaged=b.isPaged}_getColumnSelectResult(b,w,C,S){return Nv.columnSelectDown(b.cursorConfig,b,C,this._isPaged)}}n.CursorColumnSelectDown=Ve(new s({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3602,linux:{primary:0}}})),n.CursorColumnSelectPageDown=Ve(new s({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3596,linux:{primary:0}}}));class r extends es{constructor(){super({id:"cursorMove",precondition:void 0,metadata:wF.metadata})}runCoreEditorCommand(b,w){const C=wF.parse(w);C&&this._runCursorMove(b,w.source,C)}_runCursorMove(b,w,C){b.model.pushStackElement(),b.setCursorStates(w,3,r._move(b,b.getCursorStates(),C)),b.revealAllCursors(w,!0)}static _move(b,w,C){const S=C.select,x=C.value;switch(C.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return br.simpleMove(b,w,C.direction,S,x,C.unit);case 11:case 13:case 12:case 14:return br.viewportMove(b,w,C.direction,S,x);default:return null}}}n.CursorMoveImpl=r,n.CursorMove=Ve(new r);class o extends es{constructor(b){super(b),this._staticArgs=b.args}runCoreEditorCommand(b,w){let C=this._staticArgs;this._staticArgs.value===-1&&(C={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:w.pageSize||b.cursorConfig.pageSize}),b.model.pushStackElement(),b.setCursorStates(w.source,3,br.simpleMove(b,b.getCursorStates(),C.direction,C.select,C.value,C.unit)),b.revealAllCursors(w.source,!0)}}n.CursorLeft=Ve(new o({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),n.CursorLeftSelect=Ve(new o({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1039}})),n.CursorRight=Ve(new o({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),n.CursorRightSelect=Ve(new o({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1041}})),n.CursorUp=Ve(new o({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),n.CursorUpSelect=Ve(new o({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),n.CursorPageUp=Ve(new o({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:11}})),n.CursorPageUpSelect=Ve(new o({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1035}})),n.CursorDown=Ve(new o({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),n.CursorDownSelect=Ve(new o({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),n.CursorPageDown=Ve(new o({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:12}})),n.CursorPageDownSelect=Ve(new o({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1036}})),n.CreateCursor=Ve(new class extends es{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(_,b){if(!b.position)return;let w;b.wholeLine?w=br.line(_,_.getPrimaryCursorState(),!1,b.position,b.viewPosition):w=br.moveTo(_,_.getPrimaryCursorState(),!1,b.position,b.viewPosition);const C=_.getCursorStates();if(C.length>1){const S=w.modelState?w.modelState.position:null,x=w.viewState?w.viewState.position:null;for(let k=0,L=C.length;k<L;k++){const E=C[k];if(!(S&&!E.modelState.selection.containsPosition(S))&&!(x&&!E.viewState.selection.containsPosition(x))){C.splice(k,1),_.model.pushStackElement(),_.setCursorStates(b.source,3,C);return}}}C.push(w),_.model.pushStackElement(),_.setCursorStates(b.source,3,C)}}),n.LastCursorMoveToSelect=Ve(new class extends es{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(_,b){if(!b.position)return;const w=_.getLastAddedCursorIndex(),C=_.getCursorStates(),S=C.slice(0);S[w]=br.moveTo(_,C[w],!0,b.position,b.viewPosition),_.model.pushStackElement(),_.setCursorStates(b.source,3,S)}});class a extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,br.moveToBeginningOfLine(b,b.getCursorStates(),this._inSelectionMode)),b.revealAllCursors(w.source,!0)}}n.CursorHome=Ve(new a({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),n.CursorHomeSelect=Ve(new a({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class l extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,this._exec(b.getCursorStates())),b.revealAllCursors(w.source,!0)}_exec(b){const w=[];for(let C=0,S=b.length;C<S;C++){const x=b[C],k=x.modelState.position.lineNumber;w[C]=bi.fromModelState(x.modelState.move(this._inSelectionMode,k,1,0))}return w}}n.CursorLineStart=Ve(new l({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:0,mac:{primary:287}}})),n.CursorLineStartSelect=Ve(new l({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:0,mac:{primary:1311}}}));class c extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,br.moveToEndOfLine(b,b.getCursorStates(),this._inSelectionMode,w.sticky||!1)),b.revealAllCursors(w.source,!0)}}n.CursorEnd=Ve(new c({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:Ei,kbExpr:H.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:v("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),n.CursorEndSelect=Ve(new c({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:Ei,kbExpr:H.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:v("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class u extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,this._exec(b,b.getCursorStates())),b.revealAllCursors(w.source,!0)}_exec(b,w){const C=[];for(let S=0,x=w.length;S<x;S++){const k=w[S],L=k.modelState.position.lineNumber,E=b.model.getLineMaxColumn(L);C[S]=bi.fromModelState(k.modelState.move(this._inSelectionMode,L,E,0))}return C}}n.CursorLineEnd=Ve(new u({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:0,mac:{primary:291}}})),n.CursorLineEndSelect=Ve(new u({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:0,mac:{primary:1315}}}));class h extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,br.moveToBeginningOfBuffer(b,b.getCursorStates(),this._inSelectionMode)),b.revealAllCursors(w.source,!0)}}n.CursorTop=Ve(new h({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2062,mac:{primary:2064}}})),n.CursorTopSelect=Ve(new h({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3086,mac:{primary:3088}}}));class d extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,br.moveToEndOfBuffer(b,b.getCursorStates(),this._inSelectionMode)),b.revealAllCursors(w.source,!0)}}n.CursorBottom=Ve(new d({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2061,mac:{primary:2066}}})),n.CursorBottomSelect=Ve(new d({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:3085,mac:{primary:3090}}}));class f extends es{constructor(){super({id:"editorScroll",precondition:void 0,metadata:Rr.metadata})}determineScrollMethod(b){const w=[6],C=[1,2,3,4,5,6],S=[4,2],x=[1,3];return w.includes(b.unit)&&S.includes(b.direction)?this._runHorizontalEditorScroll.bind(this):C.includes(b.unit)&&x.includes(b.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(b,w){const C=Rr.parse(w);if(!C)return;const S=this.determineScrollMethod(C);S&&S(b,w.source,C)}_runVerticalEditorScroll(b,w,C){const S=this._computeDesiredScrollTop(b,C);if(C.revealCursor){const x=b.getCompletelyVisibleViewRangeAtScrollTop(S);b.setCursorStates(w,3,[br.findPositionInViewportIfOutside(b,b.getPrimaryCursorState(),x,C.select)])}b.viewLayout.setScrollPosition({scrollTop:S},0)}_computeDesiredScrollTop(b,w){if(w.unit===1){const x=b.viewLayout.getFutureViewport(),k=b.getCompletelyVisibleViewRangeAtScrollTop(x.top),L=b.coordinatesConverter.convertViewRangeToModelRange(k);let E;w.direction===1?E=Math.max(1,L.startLineNumber-w.value):E=Math.min(b.model.getLineCount(),L.startLineNumber+w.value);const A=b.coordinatesConverter.convertModelPositionToViewPosition(new se(E,1));return b.viewLayout.getVerticalOffsetForLineNumber(A.lineNumber)}if(w.unit===5){let x=0;return w.direction===3&&(x=b.model.getLineCount()-b.cursorConfig.pageSize),b.viewLayout.getVerticalOffsetForLineNumber(x)}let C;w.unit===3?C=b.cursorConfig.pageSize*w.value:w.unit===4?C=Math.round(b.cursorConfig.pageSize/2)*w.value:C=w.value;const S=(w.direction===1?-1:1)*C;return b.viewLayout.getCurrentScrollTop()+S*b.cursorConfig.lineHeight}_runHorizontalEditorScroll(b,w,C){const S=this._computeDesiredScrollLeft(b,C);b.viewLayout.setScrollPosition({scrollLeft:S},0)}_computeDesiredScrollLeft(b,w){const C=(w.direction===4?-1:1)*w.value;return b.viewLayout.getCurrentScrollLeft()+C*b.cursorConfig.typicalHalfwidthCharacterWidth}}n.EditorScrollImpl=f,n.EditorScroll=Ve(new f),n.ScrollLineUp=Ve(new class extends es{constructor(){super({id:"scrollLineUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Up,by:Rr.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollPageUp=Ve(new class extends es{constructor(){super({id:"scrollPageUp",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Up,by:Rr.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollEditorTop=Ve(new class extends es{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Up,by:Rr.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollLineDown=Ve(new class extends es{constructor(){super({id:"scrollLineDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Down,by:Rr.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollPageDown=Ve(new class extends es{constructor(){super({id:"scrollPageDown",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Down,by:Rr.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollEditorBottom=Ve(new class extends es{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Down,by:Rr.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollLeft=Ve(new class extends es{constructor(){super({id:"scrollLeft",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Left,by:Rr.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:b.source})}}),n.ScrollRight=Ve(new class extends es{constructor(){super({id:"scrollRight",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus}})}runCoreEditorCommand(_,b){n.EditorScroll.runCoreEditorCommand(_,{to:Rr.RawDirection.Right,by:Rr.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:b.source})}});class p extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){w.position&&(b.model.pushStackElement(),b.setCursorStates(w.source,3,[br.word(b,b.getPrimaryCursorState(),this._inSelectionMode,w.position)]),w.revealType!==2&&b.revealAllCursors(w.source,!0,!0))}}n.WordSelect=Ve(new p({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),n.WordSelectDrag=Ve(new p({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),n.LastCursorWordSelect=Ve(new class extends es{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(_,b){if(!b.position)return;const w=_.getLastAddedCursorIndex(),C=_.getCursorStates(),S=C.slice(0),x=C[w];S[w]=br.word(_,x,x.modelState.hasSelection(),b.position),_.model.pushStackElement(),_.setCursorStates(b.source,3,S)}});class g extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){w.position&&(b.model.pushStackElement(),b.setCursorStates(w.source,3,[br.line(b,b.getPrimaryCursorState(),this._inSelectionMode,w.position,w.viewPosition)]),w.revealType!==2&&b.revealAllCursors(w.source,!1,!0))}}n.LineSelect=Ve(new g({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),n.LineSelectDrag=Ve(new g({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class m extends es{constructor(b){super(b),this._inSelectionMode=b.inSelectionMode}runCoreEditorCommand(b,w){if(!w.position)return;const C=b.getLastAddedCursorIndex(),S=b.getCursorStates(),x=S.slice(0);x[C]=br.line(b,S[C],this._inSelectionMode,w.position,w.viewPosition),b.model.pushStackElement(),b.setCursorStates(w.source,3,x)}}n.LastCursorLineSelect=Ve(new m({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),n.LastCursorLineSelectDrag=Ve(new m({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),n.CancelSelection=Ve(new class extends es{constructor(){super({id:"cancelSelection",precondition:H.hasNonEmptySelection,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(_,b){_.model.pushStackElement(),_.setCursorStates(b.source,3,[br.cancelSelection(_,_.getPrimaryCursorState())]),_.revealAllCursors(b.source,!0)}}),n.RemoveSecondaryCursors=Ve(new class extends es{constructor(){super({id:"removeSecondaryCursors",precondition:H.hasMultipleSelections,kbOpts:{weight:Ei+1,kbExpr:H.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(_,b){_.model.pushStackElement(),_.setCursorStates(b.source,3,[_.getPrimaryCursorState()]),_.revealAllCursors(b.source,!0),jf(v("removedCursor","Removed secondary cursors"))}}),n.RevealLine=Ve(new class extends es{constructor(){super({id:"revealLine",precondition:void 0,metadata:$w.metadata})}runCoreEditorCommand(_,b){const w=b,C=w.lineNumber||0;let S=typeof C=="number"?C+1:parseInt(C)+1;S<1&&(S=1);const x=_.model.getLineCount();S>x&&(S=x);const k=new O(S,1,S,_.model.getLineMaxColumn(S));let L=0;if(w.at)switch(w.at){case $w.RawAtArgument.Top:L=3;break;case $w.RawAtArgument.Center:L=1;break;case $w.RawAtArgument.Bottom:L=4;break}const E=_.coordinatesConverter.convertModelRangeToViewRange(k);_.revealRange(b.source,!1,E,L,0)}}),n.SelectAll=new class extends Tz{constructor(){super(eht)}runDOMCommand(_){tu&&(_.focus(),_.select()),_.ownerDocument.execCommand("selectAll")}runEditorCommand(_,b,w){const C=b._getViewModel();C&&this.runCoreEditorCommand(C,w)}runCoreEditorCommand(_,b){_.model.pushStackElement(),_.setCursorStates("keyboard",3,[br.selectAll(_,_.getPrimaryCursorState())])}},n.SetSelection=Ve(new class extends es{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(_,b){b.selection&&(_.model.pushStackElement(),_.setCursorStates(b.source,3,[bi.fromModelSelection(b.selection)]))}})})(lr||(lr={}));const kdt=ye.and(H.textInputFocus,H.columnSelection);function hL(n,e){aa.registerKeybindingRule({id:n,primary:e,when:kdt,weight:Ei+1})}hL(lr.CursorColumnSelectLeft.id,1039);hL(lr.CursorColumnSelectRight.id,1041);hL(lr.CursorColumnSelectUp.id,1040);hL(lr.CursorColumnSelectPageUp.id,1035);hL(lr.CursorColumnSelectDown.id,1042);hL(lr.CursorColumnSelectPageDown.id,1036);function $ue(n){return n.register(),n}var HC;(function(n){class e extends Gs{runEditorCommand(i,s,r){const o=s._getViewModel();o&&this.runCoreEditingCommand(s,o,r||{})}}n.CoreEditingCommand=e,n.LineBreakInsert=Ve(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:H.writable,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,JB.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection)))}}),n.Outdent=Ve(new class extends e{constructor(){super({id:"outdent",precondition:H.writable,kbOpts:{weight:Ei,kbExpr:ye.and(H.editorTextFocus,H.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,zm.outdent(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),n.Tab=Ve(new class extends e{constructor(){super({id:"tab",precondition:H.writable,kbOpts:{weight:Ei,kbExpr:ye.and(H.editorTextFocus,H.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,zm.tab(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),n.DeleteLeft=Ve(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,s){const[r,o]=Gy.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());r&&t.pushUndoStop(),t.executeCommands(this.id,o),i.setPrevEditOperationType(2)}}),n.DeleteRight=Ve(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:Ei,kbExpr:H.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,s){const[r,o]=Gy.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));r&&t.pushUndoStop(),t.executeCommands(this.id,o),i.setPrevEditOperationType(3)}}),n.Undo=new class extends Tz{constructor(){super(ILe)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(92)===!0))return i.getModel().undo()}},n.Redo=new class extends Tz{constructor(){super(TLe)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(92)===!0))return i.getModel().redo()}}})(HC||(HC={}));class zue extends KB{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){const i=e.get(wi).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function N0(n,e){$ue(new zue("default:"+n,n)),$ue(new zue(n,n,e))}N0("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]});N0("replacePreviousChar");N0("compositionType");N0("compositionStart");N0("compositionEnd");N0("paste");N0("cut");const Zee=ri("markerDecorationsService");var Idt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Tdt=function(n,e){return function(t,i){e(t,i,n)}},lS;let EF=(lS=class{constructor(e,t){}dispose(){}},lS.ID="editor.contrib.markerDecorations",lS);EF=Idt([Tdt(1,Zee)],EF);_i(EF.ID,EF,0);class QLe{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){const t=ih(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=ih(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=ih(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=ih(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=ih(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=ih(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=ih(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){const t=ih(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){const t=ih(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=ih(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=ih(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function ih(n){return typeof n=="number"?`${n}px`:n}function Pi(n){return new QLe(n)}function Tr(n,e){n instanceof QLe?(n.setFontFamily(e.getMassagedFontFamily()),n.setFontWeight(e.fontWeight),n.setFontSize(e.fontSize),n.setFontFeatureSettings(e.fontFeatureSettings),n.setFontVariationSettings(e.fontVariationSettings),n.setLineHeight(e.lineHeight),n.setLetterSpacing(e.letterSpacing)):(n.style.fontFamily=e.getMassagedFontFamily(),n.style.fontWeight=e.fontWeight,n.style.fontSize=e.fontSize+"px",n.style.fontFeatureSettings=e.fontFeatureSettings,n.style.fontVariationSettings=e.fontVariationSettings,n.style.lineHeight=e.lineHeight+"px",n.style.letterSpacing=e.letterSpacing+"px")}function Fp(n){if(!n||typeof n!="object"||n instanceof RegExp)return n;const e=Array.isArray(n)?[]:{};return Object.entries(n).forEach(([t,i])=>{e[t]=i&&typeof i=="object"?Fp(i):i}),e}function Ddt(n){if(!n||typeof n!="object")return n;const e=[n];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(JLe.call(t,i)){const s=t[i];typeof s=="object"&&!Object.isFrozen(s)&&!tlt(s)&&e.push(s)}}return n}const JLe=Object.prototype.hasOwnProperty;function eEe(n,e){return Dz(n,e,new Set)}function Dz(n,e,t){if(Kl(n))return n;const i=e(n);if(typeof i<"u")return i;if(Array.isArray(n)){const s=[];for(const r of n)s.push(Dz(r,e,t));return s}if(fr(n)){if(t.has(n))throw new Error("Cannot clone recursive data-structure");t.add(n);const s={};for(const r in n)JLe.call(n,r)&&(s[r]=Dz(n[r],e,t));return t.delete(n),s}return n}function t8(n,e,t=!0){return fr(n)?(fr(e)&&Object.keys(e).forEach(i=>{i in n?t&&(fr(n[i])&&fr(e[i])?t8(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function lc(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!="object"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;t<n.length;t++)if(!lc(n[t],e[t]))return!1}else{const s=[];for(i in n)s.push(i);s.sort();const r=[];for(i in e)r.push(i);if(r.sort(),!lc(s,r))return!1;for(t=0;t<s.length;t++)if(!lc(n[s[t]],e[s[t]]))return!1}return!0}function Ndt(n){let e=[];for(;Object.prototype!==n;)e=e.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return e}function Qee(n){const e=[];for(const t of Ndt(n))typeof n[t]=="function"&&e.push(t);return e}function Adt(n,e){const t=s=>function(){const r=Array.prototype.slice.call(arguments,0);return e(s,r)},i={};for(const s of n)i[s]=t(s);return i}class tEe extends ue{constructor(e,t){super(),this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,s=!1;const r=()=>{if(i&&!s)try{i=!1,s=!0,t()}finally{bl(ut(this._referenceDomElement),()=>{s=!1,r()})}};this._resizeObserver=new ResizeObserver(o=>{o&&o[0]&&o[0].contentRect?e={width:o[0].contentRect.width,height:o[0].contentRect.height}:e=null,i=!0,r()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,s=0;t?(i=t.width,s=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,s=this._referenceDomElement.clientHeight),i=Math.max(5,i),s=Math.max(5,s),(this._width!==i||this._height!==s)&&(this._width=i,this._height=s,e&&this._onDidChange.fire())}}class Pdt extends ue{constructor(e){super(),this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var i;(i=this._mediaQueryList)==null||i.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class Rdt extends ue{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new Pdt(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){const t=document.createElement("canvas").getContext("2d"),i=e.devicePixelRatio||1,s=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return i/s}}class Mdt{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=hF(e);let i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=new Rdt(e),this.mapWindowIdToPixelRatioMonitor.set(t,i),Oe.once(sut)(({vscodeWindowId:s})=>{s===t&&(i==null||i.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}const LT=new Mdt;class Odt{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class Jee{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){var t;this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),(t=this._container)==null||t.remove(),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");Tr(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");Tr(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const s=document.createElement("div");Tr(s,this._bareFontInfo),s.style.fontStyle="italic",e.appendChild(s);const r=[];for(const o of this._requests){let a;o.type===0&&(a=t),o.type===2&&(a=i),o.type===1&&(a=s),a.appendChild(document.createElement("br"));const l=document.createElement("span");Jee._render(l,o),a.appendChild(l),r.push(l)}this._container=e,this._testElements=r}static _render(e,t){if(t.chr===" "){let i=" ";for(let s=0;s<8;s++)i+=i;e.innerText=i}else{let i=t.chr;for(let s=0;s<8;s++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){const i=this._requests[e],s=this._testElements[e];i.fulfill(s.offsetWidth/256)}}}function Fdt(n,e,t){new Jee(e,t).read(n)}const eo={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},Nd=8;class iEe{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class nEe{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class xn{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return i8(e,t)}compute(e,t,i){return i}}class Nk{constructor(e,t){this.newValue=e,this.didChange=t}}function i8(n,e){if(typeof n!="object"||typeof e!="object"||!n||!e)return new Nk(e,n!==e);if(Array.isArray(n)||Array.isArray(e)){const i=Array.isArray(n)&&Array.isArray(e)&&In(n,e);return new Nk(e,!i)}let t=!1;for(const i in e)if(e.hasOwnProperty(i)){const s=i8(n[i],e[i]);s.didChange&&(n[i]=s.newValue,t=!0)}return new Nk(n,t)}class NN{constructor(e){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0}applyUpdate(e,t){return i8(e,t)}validate(e){return this.defaultValue}}class dL{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return i8(e,t)}validate(e){return typeof e>"u"?this.defaultValue:e}compute(e,t,i){return i}}function at(n,e){return typeof n>"u"?e:n==="false"?!1:!!n}class vi extends dL{constructor(e,t,i,s=void 0){typeof s<"u"&&(s.type="boolean",s.default=i),super(e,t,i,s)}validate(e){return at(e,this.defaultValue)}}function gv(n,e,t,i){if(typeof n>"u")return e;let s=parseInt(n,10);return isNaN(s)?e:(s=Math.max(t,s),s=Math.min(i,s),s|0)}class Qi extends dL{static clampedInt(e,t,i,s){return gv(e,t,i,s)}constructor(e,t,i,s,r,o=void 0){typeof o<"u"&&(o.type="integer",o.default=i,o.minimum=s,o.maximum=r),super(e,t,i,o),this.minimum=s,this.maximum=r}validate(e){return Qi.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function Bdt(n,e,t,i){if(typeof n>"u")return e;const s=tc.float(n,e);return tc.clamp(s,t,i)}class tc extends dL{static clamp(e,t,i){return e<t?t:e>i?i:e}static float(e,t){if(typeof e=="number")return e;if(typeof e>"u")return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,s,r){typeof r<"u"&&(r.type="number",r.default=i),super(e,t,i,r),this.validationFn=s}validate(e){return this.validationFn(tc.float(e,this.defaultValue))}}class bo extends dL{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,s=void 0){typeof s<"u"&&(s.type="string",s.default=i),super(e,t,i,s)}validate(e){return bo.string(e,this.defaultValue)}}function Kn(n,e,t,i){return typeof n!="string"?e:i&&n in i?i[n]:t.indexOf(n)===-1?e:n}class qn extends dL{constructor(e,t,i,s,r=void 0){typeof r<"u"&&(r.type="string",r.enum=s,r.default=i),super(e,t,i,r),this._allowedValues=s}validate(e){return Kn(e,this.defaultValue,this._allowedValues)}}class fP extends xn{constructor(e,t,i,s,r,o,a=void 0){typeof a<"u"&&(a.type="string",a.enum=r,a.default=s),super(e,t,i,a),this._allowedValues=r,this._convert=o}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function Wdt(n){switch(n){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class Vdt extends xn{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[v("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached."),v("accessibilitySupport.on","Optimize for usage with a Screen Reader."),v("accessibilitySupport.off","Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:v("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class Hdt extends xn{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:v("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:v("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:at(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:at(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function $dt(n){switch(n){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var Sr;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(Sr||(Sr={}));function zdt(n){switch(n){case"line":return Sr.Line;case"block":return Sr.Block;case"underline":return Sr.Underline;case"line-thin":return Sr.LineThin;case"block-outline":return Sr.BlockOutline;case"underline-thin":return Sr.UnderlineThin}}class Udt extends NN{constructor(){super(143)}compute(e,t,i){const s=["monaco-editor"];return t.get(39)&&s.push(t.get(39)),e.extraEditorClassName&&s.push(e.extraEditorClassName),t.get(74)==="default"?s.push("mouse-default"):t.get(74)==="copy"&&s.push("mouse-copy"),t.get(112)&&s.push("showUnused"),t.get(141)&&s.push("showDeprecated"),s.join(" ")}}class jdt extends vi{constructor(){super(37,"emptySelectionClipboard",!0,{description:v("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class qdt extends xn{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:v("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[v("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),v("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),v("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:v("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[v("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),v("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),v("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:v("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:v("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:ni},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:v("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:v("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:at(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":Kn(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":Kn(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:at(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:at(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:at(t.loop,this.defaultValue.loop)}}}const Np=class Np extends xn{constructor(){super(51,"fontLigatures",Np.OFF,{anyOf:[{type:"boolean",description:v("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:v("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:v("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"||e.length===0?Np.OFF:e==="true"?Np.ON:e:e?Np.ON:Np.OFF}};Np.OFF='"liga" off, "calt" off',Np.ON='"liga" on, "calt" on';let c_=Np;const Ap=class Ap extends xn{constructor(){super(54,"fontVariations",Ap.OFF,{anyOf:[{type:"boolean",description:v("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:v("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:v("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?Ap.OFF:e==="true"?Ap.TRANSLATE:e:e?Ap.TRANSLATE:Ap.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}};Ap.OFF="normal",Ap.TRANSLATE="translate";let ET=Ap;class Kdt extends NN{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}class Gdt extends dL{constructor(){super(52,"fontSize",ta.fontSize,{type:"number",minimum:6,maximum:100,default:ta.fontSize,description:v("fontSize","Controls the font size in pixels.")})}validate(e){const t=tc.float(e,this.defaultValue);return t===0?ta.fontSize:tc.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}const Bd=class Bd extends xn{constructor(){super(53,"fontWeight",ta.fontWeight,{anyOf:[{type:"number",minimum:Bd.MINIMUM_VALUE,maximum:Bd.MAXIMUM_VALUE,errorMessage:v("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:Bd.SUGGESTION_VALUES}],default:ta.fontWeight,description:v("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(Qi.clampedInt(e,ta.fontWeight,Bd.MINIMUM_VALUE,Bd.MAXIMUM_VALUE))}};Bd.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],Bd.MINIMUM_VALUE=1,Bd.MAXIMUM_VALUE=1e3;let Nz=Bd;class Xdt extends xn{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[v("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),v("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),v("editor.gotoLocation.multiple.goto","Go to the primary result and enable Peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:v("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:v("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:v("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:v("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:v("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:v("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:v("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:v("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:v("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:v("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:v("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{multiple:Kn(t.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:t.multipleDefinitions??Kn(t.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:t.multipleTypeDefinitions??Kn(t.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:t.multipleDeclarations??Kn(t.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:t.multipleImplementations??Kn(t.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:t.multipleReferences??Kn(t.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:t.multipleTests??Kn(t.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:bo.string(t.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:bo.string(t.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:bo.string(t.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:bo.string(t.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:bo.string(t.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:bo.string(t.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}}class Ydt extends xn{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:v("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:v("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:v("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,description:v("hover.hidingDelay","Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:v("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),delay:Qi.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:at(t.sticky,this.defaultValue.sticky),hidingDelay:Qi.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:at(t.above,this.defaultValue.above)}}}class $C extends NN{constructor(){super(146)}compute(e,t,i){return $C.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let s=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(s=Math.max(s,t-1));const r=(i+e.viewLineCount+s)/(e.pixelRatio*e.height),o=Math.floor(e.viewLineCount/r);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:s,desiredRatio:r,minimapLineCount:o}}static _computeMinimapLayout(e,t){const i=e.outerWidth,s=e.outerHeight,r=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(r*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const o=t.stableMinimapLayoutInput,a=o&&e.outerHeight===o.outerHeight&&e.lineHeight===o.lineHeight&&e.typicalHalfwidthCharacterWidth===o.typicalHalfwidthCharacterWidth&&e.pixelRatio===o.pixelRatio&&e.scrollBeyondLastLine===o.scrollBeyondLastLine&&e.paddingTop===o.paddingTop&&e.paddingBottom===o.paddingBottom&&e.minimap.enabled===o.minimap.enabled&&e.minimap.side===o.minimap.side&&e.minimap.size===o.minimap.size&&e.minimap.showSlider===o.minimap.showSlider&&e.minimap.renderCharacters===o.minimap.renderCharacters&&e.minimap.maxColumn===o.minimap.maxColumn&&e.minimap.scale===o.minimap.scale&&e.verticalScrollbarWidth===o.verticalScrollbarWidth&&e.isViewportWrapping===o.isViewportWrapping,l=e.lineHeight,c=e.typicalHalfwidthCharacterWidth,u=e.scrollBeyondLastLine,h=e.minimap.renderCharacters;let d=r>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const f=e.minimap.maxColumn,p=e.minimap.size,g=e.minimap.side,m=e.verticalScrollbarWidth,_=e.viewLineCount,b=e.remainingWidth,w=e.isViewportWrapping,C=h?2:3;let S=Math.floor(r*s);const x=S/r;let k=!1,L=!1,E=C*d,A=d/r,I=1;if(p==="fill"||p==="fit"){const{typicalViewportLineCount:$,extraLinesBeforeFirstLine:Y,extraLinesBeyondLastLine:le,desiredRatio:re,minimapLineCount:z}=$C.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:u,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:s,lineHeight:l,pixelRatio:r});if(_/z>1)k=!0,L=!0,d=1,E=1,A=d/r;else{let Z=!1,j=d+1;if(p==="fit"){const ce=Math.ceil((Y+_+le)*E);w&&a&&b<=t.stableFitRemainingWidth?(Z=!0,j=t.stableFitMaxMinimapScale):Z=ce>S}if(p==="fill"||Z){k=!0;const ce=d;E=Math.min(l*r,Math.max(1,Math.floor(1/re))),w&&a&&b<=t.stableFitRemainingWidth&&(j=t.stableFitMaxMinimapScale),d=Math.min(j,Math.max(1,Math.floor(E/C))),d>ce&&(I=Math.min(2,d/ce)),A=d/r/I,S=Math.ceil(Math.max($,Y+_+le)*E),w?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=b,t.stableFitMaxMinimapScale=d):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const T=Math.floor(f*A),N=Math.min(T,Math.max(0,Math.floor((b-m-2)*A/(c+A)))+Nd);let M=Math.floor(r*N);const V=M/r;M=Math.floor(M*I);const W=h?1:2,B=g==="left"?0:i-N-m;return{renderMinimap:W,minimapLeft:B,minimapWidth:N,minimapHeightIsEditorHeight:k,minimapIsSampling:L,minimapScale:d,minimapLineHeight:E,minimapCanvasInnerWidth:M,minimapCanvasInnerHeight:S,minimapCanvasOuterWidth:V,minimapCanvasOuterHeight:x}}static computeLayout(e,t){const i=t.outerWidth|0,s=t.outerHeight|0,r=t.lineHeight|0,o=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,u=t.viewLineCount,h=e.get(138),d=h==="inherit"?e.get(137):h,f=d==="inherit"?e.get(133):d,p=e.get(136),g=t.isDominatedByLongLines,m=e.get(57),_=e.get(68).renderType!==0,b=e.get(69),w=e.get(106),C=e.get(84),S=e.get(73),x=e.get(104),k=x.verticalScrollbarSize,L=x.verticalHasArrows,E=x.arrowSize,A=x.horizontalScrollbarSize,I=e.get(43),T=e.get(111)!=="never";let N=e.get(66);I&&T&&(N+=16);let M=0;if(_){const de=Math.max(o,b);M=Math.round(de*l)}let V=0;m&&(V=r*t.glyphMarginDecorationLaneCount);let W=0,B=W+V,$=B+M,Y=$+N;const le=i-V-M-N;let re=!1,z=!1,K=-1;d==="inherit"&&g?(re=!0,z=!0):f==="on"||f==="bounded"?z=!0:f==="wordWrapColumn"&&(K=p);const Z=$C._computeMinimapLayout({outerWidth:i,outerHeight:s,lineHeight:r,typicalHalfwidthCharacterWidth:a,pixelRatio:c,scrollBeyondLastLine:w,paddingTop:C.top,paddingBottom:C.bottom,minimap:S,verticalScrollbarWidth:k,viewLineCount:u,remainingWidth:le,isViewportWrapping:z},t.memory||new nEe);Z.renderMinimap!==0&&Z.minimapLeft===0&&(W+=Z.minimapWidth,B+=Z.minimapWidth,$+=Z.minimapWidth,Y+=Z.minimapWidth);const j=le-Z.minimapWidth,ce=Math.max(1,Math.floor((j-k-2)/a)),ie=L?E:0;return z&&(K=Math.max(1,ce),f==="bounded"&&(K=Math.min(K,p))),{width:i,height:s,glyphMarginLeft:W,glyphMarginWidth:V,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:B,lineNumbersWidth:M,decorationsLeft:$,decorationsWidth:N,contentLeft:Y,contentWidth:j,minimap:Z,viewportColumn:ce,isWordWrapMinified:re,isViewportWrapping:z,wrappingColumn:K,verticalScrollbarWidth:k,horizontalScrollbarHeight:A,overviewRuler:{top:ie,width:k,height:s-2*ie,right:0}}}}class Zdt extends xn{constructor(){super(140,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[v("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),v("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:v("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return Kn(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}}var Su;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(Su||(Su={}));class Qdt extends xn{constructor(){const e={enabled:Su.On};super(65,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[Su.Off,Su.OnCode,Su.On],default:e.enabled,enumDescriptions:[v("editor.lightbulb.enabled.off","Disable the code action menu."),v("editor.lightbulb.enabled.onCode","Show the code action menu when the cursor is on lines with code."),v("editor.lightbulb.enabled.on","Show the code action menu when the cursor is on lines with code or on empty lines.")],description:v("enabled","Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:Kn(e.enabled,this.defaultValue.enabled,[Su.Off,Su.OnCode,Su.On])}}}class Jdt extends xn{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(116,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:v("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:v("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:v("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:v("editor.stickyScroll.scrollWithEditor","Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),maxLineCount:Qi.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Kn(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:at(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class eft extends xn{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(142,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:v("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[v("editor.inlayHints.on","Inlay hints are enabled"),v("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",ni?"Ctrl+Option":"Ctrl+Alt"),v("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",ni?"Ctrl+Option":"Ctrl+Alt"),v("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:v("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:v("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:v("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:Kn(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:Qi.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:bo.string(t.fontFamily,this.defaultValue.fontFamily),padding:at(t.padding,this.defaultValue.padding)}}}class tft extends xn{constructor(){super(66,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):Qi.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?Qi.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class ift extends tc{constructor(){super(67,"lineHeight",ta.lineHeight,e=>tc.clamp(e,0,150),{markdownDescription:v("lineHeight",`Controls the line height. + - Use 0 to automatically compute the line height from the font size. + - Values between 0 and 8 will be used as a multiplier with the font size. + - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class nft extends xn{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(73,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:v("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:v("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[v("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),v("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),v("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:v("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:v("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:v("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:v("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:v("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:v("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:e.showRegionSectionHeaders,description:v("minimap.showRegionSectionHeaders","Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:e.showMarkSectionHeaders,description:v("minimap.showMarkSectionHeaders","Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:e.sectionHeaderFontSize,description:v("minimap.sectionHeaderFontSize","Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:e.sectionHeaderLetterSpacing,description:v("minimap.sectionHeaderLetterSpacing","Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),autohide:at(t.autohide,this.defaultValue.autohide),size:Kn(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:Kn(t.side,this.defaultValue.side,["right","left"]),showSlider:Kn(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:at(t.renderCharacters,this.defaultValue.renderCharacters),scale:Qi.clampedInt(t.scale,1,1,3),maxColumn:Qi.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:at(t.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:at(t.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:tc.clamp(t.sectionHeaderFontSize??this.defaultValue.sectionHeaderFontSize,4,32),sectionHeaderLetterSpacing:tc.clamp(t.sectionHeaderLetterSpacing??this.defaultValue.sectionHeaderLetterSpacing,0,5)}}}function sft(n){return n==="ctrlCmd"?ni?"metaKey":"ctrlKey":"altKey"}class rft extends xn{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:v("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:v("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:Qi.clampedInt(t.top,0,0,1e3),bottom:Qi.clampedInt(t.bottom,0,0,1e3)}}}class oft extends xn{constructor(){const e={enabled:!0,cycle:!0};super(86,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:v("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:v("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),cycle:at(t.cycle,this.defaultValue.cycle)}}}class aft extends NN{constructor(){super(144)}compute(e,t,i){return e.pixelRatio}}class lft extends xn{constructor(){super(88,"placeholder",void 0)}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e:this.defaultValue}}class cft extends xn{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[v("on","Quick suggestions show inside the suggest widget"),v("inline","Quick suggestions show as ghost text"),v("off","Quick suggestions are disabled")]}];super(90,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:v("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:v("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:v("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:v("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the {0}-setting which controls if suggestions are triggered by special characters.","`#editor.suggestOnTriggerCharacters#`")}),this.defaultValue=e}validate(e){if(typeof e=="boolean"){const c=e?"on":"off";return{comments:c,strings:c,other:c}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:i,strings:s}=e,r=["on","inline","off"];let o,a,l;return typeof t=="boolean"?o=t?"on":"off":o=Kn(t,this.defaultValue.other,r),typeof i=="boolean"?a=i?"on":"off":a=Kn(i,this.defaultValue.comments,r),typeof s=="boolean"?l=s?"on":"off":l=Kn(s,this.defaultValue.strings,r),{other:o,comments:a,strings:l}}}class uft extends xn{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[v("lineNumbers.off","Line numbers are not rendered."),v("lineNumbers.on","Line numbers are rendered as absolute number."),v("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),v("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:v("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function kF(n){const e=n.get(99);return e==="editable"?n.get(92):e!=="on"}class hft extends xn{constructor(){const e=[],t={type:"number",description:v("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(103,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:v("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:v("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="number")t.push({column:Qi.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const s=i;t.push({column:Qi.clampedInt(s.column,0,0,1e4),color:s.color})}return t.sort((i,s)=>i.column-s.column),t}return this.defaultValue}}class dft extends xn{constructor(){super(93,"readOnlyMessage",void 0)}validate(e){return!e||typeof e!="object"?this.defaultValue:e}}function Uue(n,e){if(typeof n!="string")return e;switch(n){case"hidden":return 2;case"visible":return 3;default:return 1}}let fft=class extends xn{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(104,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[v("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),v("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),v("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:v("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[v("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),v("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),v("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:v("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:v("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:v("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:v("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:v("scrollbar.ignoreHorizontalScrollbarInContentHeight","When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=Qi.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=Qi.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:Qi.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:Uue(t.vertical,this.defaultValue.vertical),horizontal:Uue(t.horizontal,this.defaultValue.horizontal),useShadows:at(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:at(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:at(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:at(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:at(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:Qi.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:s,verticalSliderSize:Qi.clampedInt(t.verticalSliderSize,s,0,1e3),scrollByPage:at(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:at(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};const Fl="inUntrustedWorkspace",Ca={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class pft extends xn{constructor(){const e={nonBasicASCII:Fl,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Fl,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(126,"unicodeHighlight",e,{[Ca.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Fl],default:e.nonBasicASCII,description:v("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Ca.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:v("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[Ca.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:v("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Ca.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Fl],default:e.includeComments,description:v("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[Ca.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Fl],default:e.includeStrings,description:v("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[Ca.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:v("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Ca.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:v("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(lc(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},i=!0)),t.allowedLocales&&e&&(lc(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},i=!0));const s=super.applyUpdate(e,t);return i?new Nk(s.newValue,!0):s}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{nonBasicASCII:zC(t.nonBasicASCII,Fl,[!0,!1,Fl]),invisibleCharacters:at(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:at(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:zC(t.includeComments,Fl,[!0,!1,Fl]),includeStrings:zC(t.includeStrings,Fl,[!0,!1,Fl]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const i={};for(const[s,r]of Object.entries(e))r===!0&&(i[s]=!0);return i}}class gft extends xn{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:v("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[v("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),v("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion."),v("inlineSuggest.showToolbar.never","Never show the inline suggestion toolbar.")],description:v("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:v("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:e.fontFamily,description:v("inlineSuggest.fontFamily","Controls the font family of the inline suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),mode:Kn(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:Kn(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:at(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:at(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:bo.string(t.fontFamily,this.defaultValue.fontFamily)}}}class mft extends xn{constructor(){const e={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1};super(63,"experimentalInlineEdit",e,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:e.enabled,description:v("inlineEdit.enabled","Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[v("inlineEdit.showToolbar.always","Show the inline edit toolbar whenever an inline suggestion is shown."),v("inlineEdit.showToolbar.onHover","Show the inline edit toolbar when hovering over an inline suggestion."),v("inlineEdit.showToolbar.never","Never show the inline edit toolbar.")],description:v("inlineEdit.showToolbar","Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:e.fontFamily,description:v("inlineEdit.fontFamily","Controls the font family of the inline edit.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),showToolbar:Kn(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:bo.string(t.fontFamily,this.defaultValue.fontFamily),keepOnBlur:at(t.keepOnBlur,this.defaultValue.keepOnBlur)}}}class _ft extends xn{constructor(){const e={enabled:eo.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:eo.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:v("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:at(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class vft extends xn{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[v("editor.guides.bracketPairs.true","Enables bracket pair guides."),v("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),v("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:v("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[v("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),v("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),v("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:v("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:v("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:v("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[v("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),v("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),v("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:v("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{bracketPairs:zC(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:zC(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:at(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:at(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:zC(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function zC(n,e,t){const i=t.indexOf(n);return i===-1?e:t[i]}class bft extends xn{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(119,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[v("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),v("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:v("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:v("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:v("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:v("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[v("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),v("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),v("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),v("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:v("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions ({0} and {1}) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.","`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:v("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:v("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:v("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:v("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:v("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:v("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:v("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertMode:Kn(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:at(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:at(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:at(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:at(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:Kn(t.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:at(t.showIcons,this.defaultValue.showIcons),showStatusBar:at(t.showStatusBar,this.defaultValue.showStatusBar),preview:at(t.preview,this.defaultValue.preview),previewMode:Kn(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:at(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:at(t.showMethods,this.defaultValue.showMethods),showFunctions:at(t.showFunctions,this.defaultValue.showFunctions),showConstructors:at(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:at(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:at(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:at(t.showFields,this.defaultValue.showFields),showVariables:at(t.showVariables,this.defaultValue.showVariables),showClasses:at(t.showClasses,this.defaultValue.showClasses),showStructs:at(t.showStructs,this.defaultValue.showStructs),showInterfaces:at(t.showInterfaces,this.defaultValue.showInterfaces),showModules:at(t.showModules,this.defaultValue.showModules),showProperties:at(t.showProperties,this.defaultValue.showProperties),showEvents:at(t.showEvents,this.defaultValue.showEvents),showOperators:at(t.showOperators,this.defaultValue.showOperators),showUnits:at(t.showUnits,this.defaultValue.showUnits),showValues:at(t.showValues,this.defaultValue.showValues),showConstants:at(t.showConstants,this.defaultValue.showConstants),showEnums:at(t.showEnums,this.defaultValue.showEnums),showEnumMembers:at(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:at(t.showKeywords,this.defaultValue.showKeywords),showWords:at(t.showWords,this.defaultValue.showWords),showColors:at(t.showColors,this.defaultValue.showColors),showFiles:at(t.showFiles,this.defaultValue.showFiles),showReferences:at(t.showReferences,this.defaultValue.showReferences),showFolders:at(t.showFolders,this.defaultValue.showFolders),showTypeParameters:at(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:at(t.showSnippets,this.defaultValue.showSnippets),showUsers:at(t.showUsers,this.defaultValue.showUsers),showIssues:at(t.showIssues,this.defaultValue.showIssues)}}}class yft extends xn{constructor(){super(114,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:v("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:v("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:at(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:at(e.selectSubwords,this.defaultValue.selectSubwords)}}}class wft extends xn{constructor(){const e=[];super(131,"wordSegmenterLocales",e,{anyOf:[{description:v("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"string"},{description:v("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"}}]})}validate(e){if(typeof e=="string"&&(e=[e]),Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="string")try{Intl.Segmenter.supportedLocalesOf(i).length>0&&t.push(i)}catch{}return t}return this.defaultValue}}class Cft extends xn{constructor(){super(139,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[v("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),v("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),v("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),v("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:v("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(e,t,i){return t.get(2)===2?0:i}}class Sft extends NN{constructor(){super(147)}compute(e,t,i){const s=t.get(146);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}class xft extends xn{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:v("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[v("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),v("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),showDropSelector:Kn(t.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class Lft extends xn{constructor(){const e={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:v("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[v("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),v("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:at(t.enabled,this.defaultValue.enabled),showPasteSelector:Kn(t.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const Eft="Consolas, 'Courier New', monospace",kft="Menlo, Monaco, 'Courier New', monospace",Ift="'Droid Sans Mono', 'monospace', monospace",ta={fontFamily:ni?kft:ra?Ift:Eft,fontWeight:"normal",fontSize:ni?12:14,lineHeight:0,letterSpacing:0},zw=[];function Me(n){return zw[n.id]=n,n}const gd={acceptSuggestionOnCommitCharacter:Me(new vi(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:v("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Me(new qn(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",v("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:v("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Me(new Vdt),accessibilityPageSize:Me(new Qi(3,"accessibilityPageSize",10,1,1073741824,{description:v("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Me(new bo(4,"ariaLabel",v("editorViewAccessibleLabel","Editor content"))),ariaRequired:Me(new vi(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Me(new vi(8,"screenReaderAnnounceInlineSuggestion",!0,{description:v("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Me(new qn(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),v("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:v("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Me(new qn(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingComments.languageDefined","Use language configurations to determine when to autoclose comments."),v("editor.autoClosingComments.beforeWhitespace","Autoclose comments only when the cursor is to the left of whitespace."),""],description:v("autoClosingComments","Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Me(new qn(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",v("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:v("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Me(new qn(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",v("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:v("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Me(new qn(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),v("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:v("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Me(new fP(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],Wdt,{enumDescriptions:[v("editor.autoIndent.none","The editor will not insert indentation automatically."),v("editor.autoIndent.keep","The editor will keep the current line's indentation."),v("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),v("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),v("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:v("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Me(new vi(13,"automaticLayout",!1)),autoSurround:Me(new qn(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[v("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),v("editor.autoSurround.quotes","Surround with quotes but not brackets."),v("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:v("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Me(new _ft),bracketPairGuides:Me(new vft),stickyTabStops:Me(new vi(117,"stickyTabStops",!1,{description:v("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Me(new vi(17,"codeLens",!0,{description:v("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Me(new bo(18,"codeLensFontFamily","",{description:v("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:Me(new Qi(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:v("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Me(new vi(20,"colorDecorators",!0,{description:v("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Me(new qn(149,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[v("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),v("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),v("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:v("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Me(new Qi(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:v("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Me(new vi(22,"columnSelection",!1,{description:v("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:Me(new Hdt),contextmenu:Me(new vi(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Me(new vi(25,"copyWithSyntaxHighlighting",!0,{description:v("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Me(new fP(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],$dt,{description:v("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:Me(new qn(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[v("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),v("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),v("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:v("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Me(new fP(28,"cursorStyle",Sr.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],zdt,{description:v("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:Me(new Qi(29,"cursorSurroundingLines",0,0,1073741824,{description:v("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Me(new qn(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[v("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),v("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],markdownDescription:v("cursorSurroundingLinesStyle","Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:Me(new Qi(31,"cursorWidth",0,0,1073741824,{markdownDescription:v("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Me(new vi(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Me(new vi(33,"disableMonospaceOptimizations",!1)),domReadOnly:Me(new vi(34,"domReadOnly",!1)),dragAndDrop:Me(new vi(35,"dragAndDrop",!0,{description:v("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Me(new jdt),dropIntoEditor:Me(new xft),stickyScroll:Me(new Jdt),experimentalWhitespaceRendering:Me(new qn(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[v("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),v("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),v("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:v("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Me(new bo(39,"extraEditorClassName","")),fastScrollSensitivity:Me(new tc(40,"fastScrollSensitivity",5,n=>n<=0?5:n,{markdownDescription:v("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:Me(new qdt),fixedOverflowWidgets:Me(new vi(42,"fixedOverflowWidgets",!1)),folding:Me(new vi(43,"folding",!0,{description:v("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:Me(new qn(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[v("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),v("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:v("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:Me(new vi(45,"foldingHighlight",!0,{description:v("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Me(new vi(46,"foldingImportsByDefault",!1,{description:v("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Me(new Qi(47,"foldingMaximumRegions",5e3,10,65e3,{description:v("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Me(new vi(48,"unfoldOnClickAfterEndOfLine",!1,{description:v("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Me(new bo(49,"fontFamily",ta.fontFamily,{description:v("fontFamily","Controls the font family.")})),fontInfo:Me(new Kdt),fontLigatures2:Me(new c_),fontSize:Me(new Gdt),fontWeight:Me(new Nz),fontVariations:Me(new ET),formatOnPaste:Me(new vi(55,"formatOnPaste",!1,{description:v("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Me(new vi(56,"formatOnType",!1,{description:v("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Me(new vi(57,"glyphMargin",!0,{description:v("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Me(new Xdt),hideCursorInOverviewRuler:Me(new vi(59,"hideCursorInOverviewRuler",!1,{description:v("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:Me(new Ydt),inDiffEditor:Me(new vi(61,"inDiffEditor",!1)),letterSpacing:Me(new tc(64,"letterSpacing",ta.letterSpacing,n=>tc.clamp(n,-5,20),{description:v("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:Me(new Qdt),lineDecorationsWidth:Me(new tft),lineHeight:Me(new ift),lineNumbers:Me(new uft),lineNumbersMinChars:Me(new Qi(69,"lineNumbersMinChars",5,1,300)),linkedEditing:Me(new vi(70,"linkedEditing",!1,{description:v("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Me(new vi(71,"links",!0,{description:v("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Me(new qn(72,"matchBrackets","always",["always","near","never"],{description:v("matchBrackets","Highlight matching brackets.")})),minimap:Me(new nft),mouseStyle:Me(new qn(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Me(new tc(75,"mouseWheelScrollSensitivity",1,n=>n===0?1:n,{markdownDescription:v("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Me(new vi(76,"mouseWheelZoom",!1,{markdownDescription:ni?v("mouseWheelZoom.mac","Zoom the font of the editor when using mouse wheel and holding `Cmd`."):v("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Me(new vi(77,"multiCursorMergeOverlapping",!0,{description:v("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Me(new fP(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],sft,{markdownEnumDescriptions:[v("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),v("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:v({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Me(new qn(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[v("multiCursorPaste.spread","Each cursor pastes a single line of the text."),v("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:v("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Me(new Qi(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:v("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Me(new qn(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[v("occurrencesHighlight.off","Does not highlight occurrences."),v("occurrencesHighlight.singleFile","Highlights occurrences only in the current file."),v("occurrencesHighlight.multiFile","Experimental: Highlights occurrences across all valid open files.")],markdownDescription:v("occurrencesHighlight","Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Me(new vi(82,"overviewRulerBorder",!0,{description:v("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Me(new Qi(83,"overviewRulerLanes",3,0,3)),padding:Me(new rft),pasteAs:Me(new Lft),parameterHints:Me(new oft),peekWidgetDefaultFocus:Me(new qn(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[v("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),v("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:v("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),placeholder:Me(new lft),definitionLinkOpensInPeek:Me(new vi(89,"definitionLinkOpensInPeek",!1,{description:v("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Me(new cft),quickSuggestionsDelay:Me(new Qi(91,"quickSuggestionsDelay",10,0,1073741824,{description:v("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Me(new vi(92,"readOnly",!1)),readOnlyMessage:Me(new dft),renameOnType:Me(new vi(94,"renameOnType",!1,{description:v("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:v("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Me(new vi(95,"renderControlCharacters",!0,{description:v("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Me(new qn(96,"renderFinalNewline",ra?"dimmed":"on",["off","on","dimmed"],{description:v("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:Me(new qn(97,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",v("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:v("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Me(new vi(98,"renderLineHighlightOnlyWhenFocus",!1,{description:v("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Me(new qn(99,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Me(new qn(100,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",v("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),v("renderWhitespace.selection","Render whitespace characters only on selected text."),v("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:v("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Me(new Qi(101,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Me(new vi(102,"roundedSelection",!0,{description:v("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:Me(new hft),scrollbar:Me(new fft),scrollBeyondLastColumn:Me(new Qi(105,"scrollBeyondLastColumn",4,0,1073741824,{description:v("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Me(new vi(106,"scrollBeyondLastLine",!0,{description:v("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Me(new vi(107,"scrollPredominantAxis",!0,{description:v("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Me(new vi(108,"selectionClipboard",!0,{description:v("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:ra})),selectionHighlight:Me(new vi(109,"selectionHighlight",!0,{description:v("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Me(new vi(110,"selectOnLineNumbers",!0)),showFoldingControls:Me(new qn(111,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[v("showFoldingControls.always","Always show the folding controls."),v("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),v("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:v("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:Me(new vi(112,"showUnused",!0,{description:v("showUnused","Controls fading out of unused code.")})),showDeprecated:Me(new vi(141,"showDeprecated",!0,{description:v("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:Me(new eft),snippetSuggestions:Me(new qn(113,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[v("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),v("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),v("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),v("snippetSuggestions.none","Do not show snippet suggestions.")],description:v("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Me(new yft),smoothScrolling:Me(new vi(115,"smoothScrolling",!1,{description:v("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Me(new Qi(118,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Me(new bft),inlineSuggest:Me(new gft),inlineEdit:Me(new mft),inlineCompletionsAccessibilityVerbose:Me(new vi(150,"inlineCompletionsAccessibilityVerbose",!1,{description:v("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Me(new Qi(120,"suggestFontSize",0,0,1e3,{markdownDescription:v("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Me(new Qi(121,"suggestLineHeight",0,0,1e3,{markdownDescription:v("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Me(new vi(122,"suggestOnTriggerCharacters",!0,{description:v("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Me(new qn(123,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[v("suggestSelection.first","Always select the first suggestion."),v("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),v("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:v("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Me(new qn(124,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[v("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),v("tabCompletion.off","Disable tab completions."),v("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:v("tabCompletion","Enables tab completions.")})),tabIndex:Me(new Qi(125,"tabIndex",0,-1,1073741824)),unicodeHighlight:Me(new pft),unusualLineTerminators:Me(new qn(127,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[v("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),v("unusualLineTerminators.off","Unusual line terminators are ignored."),v("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:v("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:Me(new vi(128,"useShadowDOM",!0)),useTabStops:Me(new vi(129,"useTabStops",!0,{description:v("useTabStops","Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:Me(new qn(130,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[v("wordBreak.normal","Use the default line break rule."),v("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:v("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:Me(new wft),wordSeparators:Me(new bo(132,"wordSeparators",NLe,{description:v("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Me(new qn(133,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[v("wordWrap.off","Lines will never wrap."),v("wordWrap.on","Lines will wrap at the viewport width."),v({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),v({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:v({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Me(new bo(134,"wordWrapBreakAfterCharacters"," })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:Me(new bo(135,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:Me(new Qi(136,"wordWrapColumn",80,1,1073741824,{markdownDescription:v({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Me(new qn(137,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Me(new qn(138,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Me(new Udt),defaultColorDecorators:Me(new vi(148,"defaultColorDecorators",!1,{markdownDescription:v("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Me(new aft),tabFocusMode:Me(new vi(145,"tabFocusMode",!1,{markdownDescription:v("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Me(new $C),wrappingInfo:Me(new Sft),wrappingIndent:Me(new Cft),wrappingStrategy:Me(new Zdt)},Mc=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new oe,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(n){n=Math.min(Math.max(-5,n),20),this._zoomLevel!==n&&(this._zoomLevel=n,this._onDidChangeZoomLevel.fire(this._zoomLevel))}},Tft=ni?1.5:1.35,Z7=8;class Sb{static createFromValidatedSettings(e,t,i){const s=e.get(49),r=e.get(53),o=e.get(52),a=e.get(51),l=e.get(54),c=e.get(67),u=e.get(64);return Sb._create(s,r,o,a,l,c,u,t,i)}static _create(e,t,i,s,r,o,a,l,c){o===0?o=Tft*i:o<Z7&&(o=o*i),o=Math.round(o),o<Z7&&(o=Z7);const u=1+(c?0:Mc.getZoomLevel()*.1);return i*=u,o*=u,r===ET.TRANSLATE&&(t==="normal"||t==="bold"?r=ET.OFF:(r=`'wght' ${parseInt(t,10)}`,t="normal")),new Sb({pixelRatio:l,fontFamily:e,fontWeight:t,fontSize:i,fontFeatureSettings:s,fontVariationSettings:r,lineHeight:o,letterSpacing:a})}constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.fontVariationSettings=e.fontVariationSettings,this.lineHeight=e.lineHeight|0,this.letterSpacing=e.letterSpacing}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){const e=ta.fontFamily,t=Sb._wrapInQuotes(this.fontFamily);return e&&this.fontFamily!==e?`${t}, ${e}`:t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?`"${e}"`:e}}const Dft=2;class Az extends Sb{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=Dft,this.isTrusted=t,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}class Nft extends ue{constructor(){super(...arguments),this._cache=new Map,this._evictUntrustedReadingsTimeout=-1,this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event}dispose(){this._evictUntrustedReadingsTimeout!==-1&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache.clear(),this._onDidChange.fire()}_ensureCache(e){const t=hF(e);let i=this._cache.get(t);return i||(i=new Aft,this._cache.set(t,i)),i}_writeToCache(e,t,i){this._ensureCache(e).put(t,i),!i.isTrusted&&this._evictUntrustedReadingsTimeout===-1&&(this._evictUntrustedReadingsTimeout=e.setTimeout(()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),i=t.getValues();let s=!1;for(const r of i)r.isTrusted||(s=!0,t.remove(r));s&&this._onDidChange.fire()}readFontInfo(e,t){const i=this._ensureCache(e);if(!i.has(t)){let s=this._actualReadFontInfo(e,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new Az({pixelRatio:LT.getInstance(e).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(e,t,s)}return i.get(t)}_createRequest(e,t,i,s){const r=new Odt(e,t);return i.push(r),s==null||s.push(r),r}_actualReadFontInfo(e,t){const i=[],s=[],r=this._createRequest("n",0,i,s),o=this._createRequest("m",0,i,null),a=this._createRequest(" ",0,i,s),l=this._createRequest("0",0,i,s),c=this._createRequest("1",0,i,s),u=this._createRequest("2",0,i,s),h=this._createRequest("3",0,i,s),d=this._createRequest("4",0,i,s),f=this._createRequest("5",0,i,s),p=this._createRequest("6",0,i,s),g=this._createRequest("7",0,i,s),m=this._createRequest("8",0,i,s),_=this._createRequest("9",0,i,s),b=this._createRequest("→",0,i,s),w=this._createRequest("→",0,i,null),C=this._createRequest("·",0,i,s),S=this._createRequest("⸱",0,i,null),x="|/-_ilm%";for(let I=0,T=x.length;I<T;I++)this._createRequest(x.charAt(I),0,i,s),this._createRequest(x.charAt(I),1,i,s),this._createRequest(x.charAt(I),2,i,s);Fdt(e,t,i);const k=Math.max(l.width,c.width,u.width,h.width,d.width,f.width,p.width,g.width,m.width,_.width);let L=t.fontFeatureSettings===c_.OFF;const E=s[0].width;for(let I=1,T=s.length;L&&I<T;I++){const N=E-s[I].width;if(N<-.001||N>.001){L=!1;break}}let A=!0;return L&&w.width!==E&&(A=!1),w.width>b.width&&(A=!1),new Az({pixelRatio:LT.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:L,typicalHalfwidthCharacterWidth:r.width,typicalFullwidthCharacterWidth:o.width,canUseHalfwidthRightwardsArrow:A,spaceWidth:a.width,middotWidth:C.width,wsmiddotWidth:S.width,maxDigitWidth:k},!0)}}class Aft{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}const Pz=new Nft,dC=class dC{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=dC._read(e,this.key),i=r=>dC._read(e,r),s=(r,o)=>dC._write(e,r,o);this.migrate(t,i,s)}static _read(e,t){if(typeof e>"u")return;const i=t.indexOf(".");if(i>=0){const s=t.substring(0,i);return this._read(e[s],t.substring(i+1))}return e[t]}static _write(e,t,i){const s=t.indexOf(".");if(s>=0){const r=t.substring(0,s);e[r]=e[r]||{},this._write(e[r],t.substring(s+1),i);return}e[t]=i}};dC.items=[];let kT=dC;function md(n,e){kT.items.push(new kT(n,e))}function Sl(n,e){md(n,(t,i,s)=>{if(typeof t<"u"){for(const[r,o]of e)if(t===r){s(n,o);return}}})}function Pft(n){kT.items.forEach(e=>e.apply(n))}Sl("wordWrap",[[!0,"on"],[!1,"off"]]);Sl("lineNumbers",[[!0,"on"],[!1,"off"]]);Sl("cursorBlinking",[["visible","solid"]]);Sl("renderWhitespace",[[!0,"boundary"],[!1,"none"]]);Sl("renderLineHighlight",[[!0,"line"],[!1,"none"]]);Sl("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]);Sl("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]);Sl("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Sl("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Sl("autoIndent",[[!1,"advanced"],[!0,"full"]]);Sl("matchBrackets",[[!0,"always"],[!1,"never"]]);Sl("renderFinalNewline",[[!0,"on"],[!1,"off"]]);Sl("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]);Sl("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]);Sl("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]);md("autoClosingBrackets",(n,e,t)=>{n===!1&&(t("autoClosingBrackets","never"),typeof e("autoClosingQuotes")>"u"&&t("autoClosingQuotes","never"),typeof e("autoSurround")>"u"&&t("autoSurround","never"))});md("renderIndentGuides",(n,e,t)=>{typeof n<"u"&&(t("renderIndentGuides",void 0),typeof e("guides.indentation")>"u"&&t("guides.indentation",!!n))});md("highlightActiveIndentGuide",(n,e,t)=>{typeof n<"u"&&(t("highlightActiveIndentGuide",void 0),typeof e("guides.highlightActiveIndentation")>"u"&&t("guides.highlightActiveIndentation",!!n))});const Rft={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};md("suggest.filteredTypes",(n,e,t)=>{if(n&&typeof n=="object"){for(const i of Object.entries(Rft))n[i[0]]===!1&&typeof e(`suggest.${i[1]}`)>"u"&&t(`suggest.${i[1]}`,!1);t("suggest.filteredTypes",void 0)}});md("quickSuggestions",(n,e,t)=>{if(typeof n=="boolean"){const i=n?"on":"off";t("quickSuggestions",{comments:i,strings:i,other:i})}});md("experimental.stickyScroll.enabled",(n,e,t)=>{typeof n=="boolean"&&(t("experimental.stickyScroll.enabled",void 0),typeof e("stickyScroll.enabled")>"u"&&t("stickyScroll.enabled",n))});md("experimental.stickyScroll.maxLineCount",(n,e,t)=>{typeof n=="number"&&(t("experimental.stickyScroll.maxLineCount",void 0),typeof e("stickyScroll.maxLineCount")>"u"&&t("stickyScroll.maxLineCount",n))});md("codeActionsOnSave",(n,e,t)=>{if(n&&typeof n=="object"){let i=!1;const s={};for(const r of Object.entries(n))typeof r[1]=="boolean"?(i=!0,s[r[0]]=r[1]?"explicit":"never"):s[r[0]]=r[1];i&&t("codeActionsOnSave",s)}});md("codeActionWidget.includeNearbyQuickfixes",(n,e,t)=>{typeof n=="boolean"&&(t("codeActionWidget.includeNearbyQuickfixes",void 0),typeof e("codeActionWidget.includeNearbyQuickFixes")>"u"&&t("codeActionWidget.includeNearbyQuickFixes",n))});md("lightbulb.enabled",(n,e,t)=>{typeof n=="boolean"&&t("lightbulb.enabled",n?void 0:"off")});class Mft{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new oe,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}const YS=new Mft,xl=ri("accessibilityService"),AN=new $e("accessibilityModeEnabled",!1);var Oft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Fft=function(n,e){return function(t,i){e(t,i,n)}};let Rz=class extends ue{constructor(e,t,i,s,r){super(),this._accessibilityService=r,this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new oe),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new nEe,this.isSimpleWidget=e,this.contextMenuId=t,this._containerObserver=this._register(new tEe(s,i.dimension)),this._targetWindowId=ut(s).vscodeWindowId,this._rawOptions=jue(i),this._validatedOptions=Um.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(Mc.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(YS.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(Pz.onDidChange(()=>this._recomputeOptions())),this._register(LT.getInstance(ut(s)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=Um.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=Sb.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),s={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:YS.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return Um.computeOptions(this._validatedOptions,s)}_readEnvConfiguration(){return{extraEditorClassName:Wft(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:vb||tu,pixelRatio:LT.getInstance(fue(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return Pz.readFontInfo(fue(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=jue(e);Um.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=Um.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=Bft(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};Rz=Oft([Fft(4,xl)],Rz);function Bft(n){let e=0;for(;n;)n=Math.floor(n/10),e++;return e||1}function Wft(){let n="";return!Fg&&!yxe&&(n+="no-user-select "),Fg&&(n+="no-minimap-shadow ",n+="enable-user-select "),ni&&(n+="mac "),n}class Vft{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class Hft{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class Um{static validateOptions(e){const t=new Vft;for(const i of zw){const s=i.name==="_never_"?void 0:e[i.name];t._write(i.id,i.validate(s))}return t}static computeOptions(e,t){const i=new Hft;for(const s of zw)i._write(s.id,s.compute(t,i,e._read(s.id)));return i}static _deepEquals(e,t){if(typeof e!="object"||typeof t!="object"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?In(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!Um._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let s=!1;for(const r of zw){const o=!Um._deepEquals(e._read(r.id),t._read(r.id));i[r.id]=o,o&&(s=!0)}return s?new iEe(i):null}static applyUpdate(e,t){let i=!1;for(const s of zw)if(t.hasOwnProperty(s.name)){const r=s.applyUpdate(e[s.name],t[s.name]);e[s.name]=r.newValue,i=i||r.didChange}return i}}function jue(n){const e=Fp(n);return Pft(e),e}var s1;(function(n){const e={total:0,min:Number.MAX_VALUE,max:0},t={...e},i={...e},s={...e};let r=0;const o={keydown:0,input:0,render:0};function a(){_(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),o.keydown=1,queueMicrotask(l)}n.onKeyDown=a;function l(){o.keydown===1&&(performance.mark("keydown/end"),o.keydown=2)}function c(){performance.mark("input/start"),o.input=1,m()}n.onBeforeInput=c;function u(){o.input===0&&c(),queueMicrotask(h)}n.onInput=u;function h(){o.input===1&&(performance.mark("input/end"),o.input=2)}function d(){_()}n.onKeyUp=d;function f(){_()}n.onSelectionChange=f;function p(){o.keydown===2&&o.input===2&&o.render===0&&(performance.mark("render/start"),o.render=1,queueMicrotask(g),m())}n.onRenderStart=p;function g(){o.render===1&&(performance.mark("render/end"),o.render=2)}function m(){setTimeout(_)}function _(){o.keydown===2&&o.input===2&&o.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),b("keydown",e),b("input",t),b("render",i),b("inputlatency",s),r++,w())}function b(k,L){const E=performance.getEntriesByName(k)[0].duration;L.total+=E,L.min=Math.min(L.min,E),L.max=Math.max(L.max,E)}function w(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),o.keydown=0,o.input=0,o.render=0}function C(){if(r===0)return;const k={keydown:S(e),input:S(t),render:S(i),total:S(s),sampleCount:r};return x(e),x(t),x(i),x(s),r=0,k}n.getAndClearMeasurements=C;function S(k){return{average:k.total/r,max:k.max,min:k.min}}function x(k){k.total=0,k.min=Number.MAX_VALUE,k.max=0}})(s1||(s1={}));class fL{constructor(){this._hooks=new be,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,s,r){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=r;let o=e;try{e.setPointerCapture(t),this._hooks.add(lt(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{o=ut(e)}this._hooks.add(ge(o,Ae.POINTER_MOVE,a=>{if(a.buttons!==i){this.stopMonitoring(!0);return}a.preventDefault(),this._pointerMoveCallback(a)})),this._hooks.add(ge(o,Ae.POINTER_UP,a=>this.stopMonitoring(!0)))}}function x1(n,e){const t=Math.pow(10,e);return Math.round(n*t)/t}class pi{constructor(e,t,i,s=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=x1(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class xu{constructor(e,t,i,s){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=x1(Math.max(Math.min(1,t),0),3),this.l=x1(Math.max(Math.min(1,i),0),3),this.a=x1(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,r=e.a,o=Math.max(t,i,s),a=Math.min(t,i,s);let l=0,c=0;const u=(a+o)/2,h=o-a;if(h>0){switch(c=Math.min(u<=.5?h/(2*u):h/(2-2*u),1),o){case t:l=(i-s)/h+(i<s?6:0);break;case i:l=(s-t)/h+2;break;case s:l=(t-i)/h+4;break}l*=60,l=Math.round(l)}return new xu(l,c,u,r)}static _hue2rgb(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:s,a:r}=e;let o,a,l;if(i===0)o=a=l=s;else{const c=s<.5?s*(1+i):s+i-s*i,u=2*s-c;o=xu._hue2rgb(u,c,t+1/3),a=xu._hue2rgb(u,c,t),l=xu._hue2rgb(u,c,t-1/3)}return new pi(Math.round(o*255),Math.round(a*255),Math.round(l*255),r)}}class vf{constructor(e,t,i,s){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=x1(Math.max(Math.min(1,t),0),3),this.v=x1(Math.max(Math.min(1,i),0),3),this.a=x1(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,r=Math.max(t,i,s),o=Math.min(t,i,s),a=r-o,l=r===0?0:a/r;let c;return a===0?c=0:r===t?c=((i-s)/a%6+6)%6:r===i?c=(s-t)/a+2:c=(t-i)/a+4,new vf(Math.round(c*60),l,r,e.a)}static toRGBA(e){const{h:t,s:i,v:s,a:r}=e,o=s*i,a=o*(1-Math.abs(t/60%2-1)),l=s-o;let[c,u,h]=[0,0,0];return t<60?(c=o,u=a):t<120?(c=a,u=o):t<180?(u=o,h=a):t<240?(u=a,h=o):t<300?(c=a,h=o):t<=360&&(c=o,h=a),c=Math.round((c+l)*255),u=Math.round((u+l)*255),h=Math.round((h+l)*255),new pi(c,u,h,r)}}const ts=class ts{static fromHex(e){return ts.Format.CSS.parseHex(e)||ts.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:xu.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:vf.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof pi)this.rgba=e;else if(e instanceof xu)this._hsla=e,this.rgba=xu.toRGBA(e);else if(e instanceof vf)this._hsva=e,this.rgba=vf.toRGBA(e);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(e){return!!e&&pi.equals(this.rgba,e.rgba)&&xu.equals(this.hsla,e.hsla)&&vf.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=ts._relativeLuminanceForComponent(this.rgba.r),t=ts._relativeLuminanceForComponent(this.rgba.g),i=ts._relativeLuminanceForComponent(this.rgba.b),s=.2126*e+.7152*t+.0722*i;return x1(s,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t<i}lighten(e){return new ts(new xu(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*e,this.hsla.a))}darken(e){return new ts(new xu(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*e,this.hsla.a))}transparent(e){const{r:t,g:i,b:s,a:r}=this.rgba;return new ts(new pi(t,i,s,r*e))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new ts(new pi(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}makeOpaque(e){if(this.isOpaque()||e.rgba.a!==1)return this;const{r:t,g:i,b:s,a:r}=this.rgba;return new ts(new pi(e.rgba.r-r*(e.rgba.r-t),e.rgba.g-r*(e.rgba.g-i),e.rgba.b-r*(e.rgba.b-s),1))}toString(){return this._toString||(this._toString=ts.Format.CSS.format(this)),this._toString}static getLighterColor(e,t,i){if(e.isLighterThan(t))return e;i=i||.5;const s=e.getRelativeLuminance(),r=t.getRelativeLuminance();return i=i*(r-s)/r,e.lighten(i)}static getDarkerColor(e,t,i){if(e.isDarkerThan(t))return e;i=i||.5;const s=e.getRelativeLuminance(),r=t.getRelativeLuminance();return i=i*(s-r)/s,e.darken(i)}};ts.white=new ts(new pi(255,255,255,1)),ts.black=new ts(new pi(0,0,0,1)),ts.red=new ts(new pi(255,0,0,1)),ts.blue=new ts(new pi(0,0,255,1)),ts.green=new ts(new pi(0,255,0,1)),ts.cyan=new ts(new pi(0,255,255,1)),ts.lightgrey=new ts(new pi(211,211,211,1)),ts.transparent=new ts(new pi(0,0,0,0));let Ce=ts;(function(n){(function(e){(function(t){function i(f){return f.rgba.a===1?`rgb(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b})`:n.Format.CSS.formatRGBA(f)}t.formatRGB=i;function s(f){return`rgba(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b}, ${+f.rgba.a.toFixed(2)})`}t.formatRGBA=s;function r(f){return f.hsla.a===1?`hsl(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%)`:n.Format.CSS.formatHSLA(f)}t.formatHSL=r;function o(f){return`hsla(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%, ${f.hsla.a.toFixed(2)})`}t.formatHSLA=o;function a(f){const p=f.toString(16);return p.length!==2?"0"+p:p}function l(f){return`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}`}t.formatHex=l;function c(f,p=!1){return p&&f.rgba.a===1?n.Format.CSS.formatHex(f):`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}${a(Math.round(f.rgba.a*255))}`}t.formatHexA=c;function u(f){return f.isOpaque()?n.Format.CSS.formatHex(f):n.Format.CSS.formatRGBA(f)}t.format=u;function h(f){const p=f.length;if(p===0||f.charCodeAt(0)!==35)return null;if(p===7){const g=16*d(f.charCodeAt(1))+d(f.charCodeAt(2)),m=16*d(f.charCodeAt(3))+d(f.charCodeAt(4)),_=16*d(f.charCodeAt(5))+d(f.charCodeAt(6));return new n(new pi(g,m,_,1))}if(p===9){const g=16*d(f.charCodeAt(1))+d(f.charCodeAt(2)),m=16*d(f.charCodeAt(3))+d(f.charCodeAt(4)),_=16*d(f.charCodeAt(5))+d(f.charCodeAt(6)),b=16*d(f.charCodeAt(7))+d(f.charCodeAt(8));return new n(new pi(g,m,_,b/255))}if(p===4){const g=d(f.charCodeAt(1)),m=d(f.charCodeAt(2)),_=d(f.charCodeAt(3));return new n(new pi(16*g+g,16*m+m,16*_+_))}if(p===5){const g=d(f.charCodeAt(1)),m=d(f.charCodeAt(2)),_=d(f.charCodeAt(3)),b=d(f.charCodeAt(4));return new n(new pi(16*g+g,16*m+m,16*_+_,(16*b+b)/255))}return null}t.parseHex=h;function d(f){switch(f){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:return 10;case 65:return 10;case 98:return 11;case 66:return 11;case 99:return 12;case 67:return 12;case 100:return 13;case 68:return 13;case 101:return 14;case 69:return 14;case 102:return 15;case 70:return 15}return 0}})(e.CSS||(e.CSS={}))})(n.Format||(n.Format={}))})(Ce||(Ce={}));function ete(n){return`--vscode-${n.replace(/\./g,"-")}`}function Ue(n){return`var(${ete(n)})`}function $ft(n,e){return`var(${ete(n)}, ${e})`}function zft(n){return n!==null&&typeof n=="object"&&"light"in n&&"dark"in n}const sEe={ColorContribution:"base.contributions.colors"},Uft="default";class jft{constructor(){this._onDidChangeSchema=new oe,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,s=!1,r){const o={id:e,description:i,defaults:t,needsTransparency:s,deprecationMessage:r};this.colorsById[e]=o;const a={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return r&&(a.deprecationMessage=r),s&&(a.pattern="^#(?:(?<rgba>[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",a.patternErrorMessage=v("transparecyRequired","This color must be transparent or it will obscure content")),this.colorSchema.properties[e]={oneOf:[a,{type:"string",const:Uft,description:v("useDefault","Use the default color.")}]},this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i!=null&&i.defaults){const s=zft(i.defaults)?i.defaults[t.type]:i.defaults;return sh(s,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,i)=>{const s=t.indexOf(".")===-1?0:1,r=i.indexOf(".")===-1?0:1;return s!==r?s-r:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \`${t}\`: ${this.colorsById[t].description}`).join(` +`)}}const n8=new jft;Vn.add(sEe.ColorContribution,n8);function U(n,e,t,i,s){return n8.registerColor(n,e,t,i,s)}function qft(n,e){var t,i,s,r;switch(n.op){case 0:return(t=sh(n.value,e))==null?void 0:t.darken(n.factor);case 1:return(i=sh(n.value,e))==null?void 0:i.lighten(n.factor);case 2:return(s=sh(n.value,e))==null?void 0:s.transparent(n.factor);case 3:{const o=sh(n.background,e);return o?(r=sh(n.value,e))==null?void 0:r.makeOpaque(o):sh(n.value,e)}case 4:for(const o of n.values){const a=sh(o,e);if(a)return a}return;case 6:return sh(e.defines(n.if)?n.then:n.else,e);case 5:{const o=sh(n.value,e);if(!o)return;const a=sh(n.background,e);return a?o.isDarkerThan(a)?Ce.getLighterColor(o,a,n.factor).transparent(n.transparency):Ce.getDarkerColor(o,a,n.factor).transparent(n.transparency):o.transparent(n.factor*n.transparency)}default:throw qB()}}function A0(n,e){return{op:0,value:n,factor:e}}function Wh(n,e){return{op:1,value:n,factor:e}}function jt(n,e){return{op:2,value:n,factor:e}}function IT(...n){return{op:4,values:n}}function Kft(n,e,t){return{op:6,if:n,then:e,else:t}}function que(n,e,t,i){return{op:5,value:n,background:e,factor:t,transparency:i}}function sh(n,e){if(n!==null){if(typeof n=="string")return n[0]==="#"?Ce.fromHex(n):e.getColor(n);if(n instanceof Ce)return n;if(typeof n=="object")return qft(n,e)}}const rEe="vscode://schemas/workbench-colors",oEe=Vn.as(QB.JSONContribution);oEe.registerSchema(rEe,n8.getColorSchema());const Kue=new ji(()=>oEe.notifySchemaChanged(rEe),200);n8.onDidChangeSchema(()=>{Kue.isScheduled()||Kue.schedule()});const Zt=U("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},v("foreground","Overall foreground color. This color is only used if not overridden by a component."));U("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},v("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component."));U("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},v("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."));U("descriptionForeground",{light:"#717171",dark:jt(Zt,.7),hcDark:jt(Zt,.7),hcLight:jt(Zt,.7)},v("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));const IF=U("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},v("iconForeground","The default color for icons in the workbench.")),qf=U("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},v("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),mi=U("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},v("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),Cn=U("contrastActiveBorder",{light:null,dark:null,hcDark:qf,hcLight:qf},v("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));U("selection.background",null,v("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));const Gft=U("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},v("textLinkForeground","Foreground color for links in text."));U("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},v("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover."));U("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:Ce.black,hcLight:"#292929"},v("textSeparatorForeground","Color for text separators."));U("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},v("textPreformatForeground","Foreground color for preformatted text segments."));U("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},v("textPreformatBackground","Background color for preformatted text segments."));U("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},v("textBlockQuoteBackground","Background color for block quotes in text."));U("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:Ce.white,hcLight:"#292929"},v("textBlockQuoteBorder","Border color for block quotes in text."));U("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:Ce.black,hcLight:"#F2F2F2"},v("textCodeBlockBackground","Background color for code blocks in text."));U("sash.hoverBorder",qf,v("sashActiveBorder","Border color of active sashes."));const fM=U("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:Ce.black,hcLight:"#0F4A85"},v("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),Xft=U("badge.foreground",{dark:Ce.white,light:"#333",hcDark:Ce.white,hcLight:Ce.white},v("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),tte=U("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},v("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),aEe=U("scrollbarSlider.background",{dark:Ce.fromHex("#797979").transparent(.4),light:Ce.fromHex("#646464").transparent(.4),hcDark:jt(mi,.6),hcLight:jt(mi,.4)},v("scrollbarSliderBackground","Scrollbar slider background color.")),lEe=U("scrollbarSlider.hoverBackground",{dark:Ce.fromHex("#646464").transparent(.7),light:Ce.fromHex("#646464").transparent(.7),hcDark:jt(mi,.8),hcLight:jt(mi,.8)},v("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),cEe=U("scrollbarSlider.activeBackground",{dark:Ce.fromHex("#BFBFBF").transparent(.4),light:Ce.fromHex("#000000").transparent(.6),hcDark:mi,hcLight:mi},v("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),Yft=U("progressBar.background",{dark:Ce.fromHex("#0E70C0"),light:Ce.fromHex("#0E70C0"),hcDark:mi,hcLight:mi},v("progressBarBackground","Background color of the progress bar that can show for long running operations.")),Jh=U("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:Ce.black,hcLight:Ce.white},v("editorBackground","Editor background color.")),sp=U("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:Ce.white,hcLight:Zt},v("editorForeground","Editor default foreground color."));U("editorStickyScroll.background",Jh,v("editorStickyScrollBackground","Background color of sticky scroll in the editor"));U("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:Ce.fromHex("#0F4A85").transparent(.1)},v("editorStickyScrollHoverBackground","Background color of sticky scroll on hover in the editor"));U("editorStickyScroll.border",{dark:null,light:null,hcDark:mi,hcLight:mi},v("editorStickyScrollBorder","Border color of sticky scroll in the editor"));U("editorStickyScroll.shadow",tte,v("editorStickyScrollShadow"," Shadow color of sticky scroll in the editor"));const $c=U("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:Ce.white},v("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),ite=U("editorWidget.foreground",Zt,v("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),nte=U("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:mi,hcLight:mi},v("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget."));U("editorWidget.resizeBorder",null,v("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget."));U("editorError.background",null,v("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const s8=U("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},v("editorError.foreground","Foreground color of error squigglies in the editor.")),Zft=U("editorError.border",{dark:null,light:null,hcDark:Ce.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},v("errorBorder","If set, color of double underlines for errors in the editor.")),Qft=U("editorWarning.background",null,v("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),$g=U("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},v("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),TT=U("editorWarning.border",{dark:null,light:null,hcDark:Ce.fromHex("#FFCC00").transparent(.8),hcLight:Ce.fromHex("#FFCC00").transparent(.8)},v("warningBorder","If set, color of double underlines for warnings in the editor."));U("editorInfo.background",null,v("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const Kf=U("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},v("editorInfo.foreground","Foreground color of info squigglies in the editor.")),DT=U("editorInfo.border",{dark:null,light:null,hcDark:Ce.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},v("infoBorder","If set, color of double underlines for infos in the editor.")),Jft=U("editorHint.foreground",{dark:Ce.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},v("editorHint.foreground","Foreground color of hint squigglies in the editor."));U("editorHint.border",{dark:null,light:null,hcDark:Ce.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},v("hintBorder","If set, color of double underlines for hints in the editor."));const ept=U("editorLink.activeForeground",{dark:"#4E94CE",light:Ce.blue,hcDark:Ce.cyan,hcLight:"#292929"},v("activeLinkForeground","Color of active links.")),r1=U("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},v("editorSelectionBackground","Color of the editor selection.")),tpt=U("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:Ce.white},v("editorSelectionForeground","Color of the selected text for high contrast.")),uEe=U("editor.inactiveSelectionBackground",{light:jt(r1,.5),dark:jt(r1,.5),hcDark:jt(r1,.7),hcLight:jt(r1,.5)},v("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),ste=U("editor.selectionHighlightBackground",{light:que(r1,Jh,.3,.6),dark:que(r1,Jh,.3,.6),hcDark:null,hcLight:null},v("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:Cn,hcLight:Cn},v("editorSelectionHighlightBorder","Border color for regions with the same content as the selection."));U("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},v("editorFindMatch","Color of the current search match."));const ipt=U("editor.findMatchForeground",null,v("editorFindMatchForeground","Text color of the current search match.")),sg=U("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},v("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),npt=U("editor.findMatchHighlightForeground",null,v("findMatchHighlightForeground","Foreground color of the other search matches."),!0);U("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},v("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.findMatchBorder",{light:null,dark:null,hcDark:Cn,hcLight:Cn},v("editorFindMatchBorder","Border color of the current search match."));const o1=U("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:Cn,hcLight:Cn},v("findMatchHighlightBorder","Border color of the other search matches.")),spt=U("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:jt(Cn,.4),hcLight:jt(Cn,.4)},v("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},v("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0);const TF=U("editorHoverWidget.background",$c,v("hoverBackground","Background color of the editor hover."));U("editorHoverWidget.foreground",ite,v("hoverForeground","Foreground color of the editor hover."));const hEe=U("editorHoverWidget.border",nte,v("hoverBorder","Border color of the editor hover."));U("editorHoverWidget.statusBarBackground",{dark:Wh(TF,.2),light:A0(TF,.05),hcDark:$c,hcLight:$c},v("statusBarBackground","Background color of the editor hover status bar."));const rte=U("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:Ce.white,hcLight:Ce.black},v("editorInlayHintForeground","Foreground color of inline hints")),ote=U("editorInlayHint.background",{dark:jt(fM,.1),light:jt(fM,.1),hcDark:jt(Ce.white,.1),hcLight:jt(fM,.1)},v("editorInlayHintBackground","Background color of inline hints")),rpt=U("editorInlayHint.typeForeground",rte,v("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),opt=U("editorInlayHint.typeBackground",ote,v("editorInlayHintBackgroundTypes","Background color of inline hints for types")),apt=U("editorInlayHint.parameterForeground",rte,v("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),lpt=U("editorInlayHint.parameterBackground",ote,v("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),cpt=U("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},v("editorLightBulbForeground","The color used for the lightbulb actions icon."));U("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon."));U("editorLightBulbAi.foreground",cpt,v("editorLightBulbAiForeground","The color used for the lightbulb AI icon."));U("editor.snippetTabstopHighlightBackground",{dark:new Ce(new pi(124,124,124,.3)),light:new Ce(new pi(10,50,100,.2)),hcDark:new Ce(new pi(124,124,124,.3)),hcLight:new Ce(new pi(10,50,100,.2))},v("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop."));U("editor.snippetTabstopHighlightBorder",null,v("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop."));U("editor.snippetFinalTabstopHighlightBackground",null,v("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet."));U("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new Ce(new pi(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},v("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));const Mz=new Ce(new pi(155,185,85,.2)),Oz=new Ce(new pi(255,0,0,.2)),upt=U("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},v("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),hpt=U("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},v("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);U("diffEditor.insertedLineBackground",{dark:Mz,light:Mz,hcDark:null,hcLight:null},v("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0);U("diffEditor.removedLineBackground",{dark:Oz,light:Oz,hcDark:null,hcLight:null},v("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);U("diffEditorGutter.insertedLineBackground",null,v("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted."));U("diffEditorGutter.removedLineBackground",null,v("diffEditorRemovedLineGutter","Background color for the margin where lines got removed."));const dpt=U("diffEditorOverview.insertedForeground",null,v("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),fpt=U("diffEditorOverview.removedForeground",null,v("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content."));U("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},v("diffEditorInsertedOutline","Outline color for the text that got inserted."));U("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},v("diffEditorRemovedOutline","Outline color for text that got removed."));U("diffEditor.border",{dark:null,light:null,hcDark:mi,hcLight:mi},v("diffEditorBorder","Border color between the two text editors."));U("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},v("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."));U("diffEditor.unchangedRegionBackground","sideBar.background",v("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor."));U("diffEditor.unchangedRegionForeground","foreground",v("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor."));U("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},v("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor."));const pL=U("widget.shadow",{dark:jt(Ce.black,.36),light:jt(Ce.black,.16),hcDark:null,hcLight:null},v("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),dEe=U("widget.border",{dark:null,light:null,hcDark:mi,hcLight:mi},v("widgetBorder","Border color of widgets such as find/replace inside the editor.")),Gue=U("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},v("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));U("toolbar.hoverOutline",{dark:null,light:null,hcDark:Cn,hcLight:Cn},v("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse"));U("toolbar.activeBackground",{dark:Wh(Gue,.1),light:A0(Gue,.1),hcDark:null,hcLight:null},v("toolbarActiveBackground","Toolbar background when holding the mouse over actions"));const ppt=U("breadcrumb.foreground",jt(Zt,.8),v("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),gpt=U("breadcrumb.background",Jh,v("breadcrumbsBackground","Background color of breadcrumb items.")),Xue=U("breadcrumb.focusForeground",{light:A0(Zt,.2),dark:Wh(Zt,.1),hcDark:Wh(Zt,.1),hcLight:Wh(Zt,.1)},v("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),mpt=U("breadcrumb.activeSelectionForeground",{light:A0(Zt,.2),dark:Wh(Zt,.1),hcDark:Wh(Zt,.1),hcLight:Wh(Zt,.1)},v("breadcrumbsSelectedForeground","Color of selected breadcrumb items."));U("breadcrumbPicker.background",$c,v("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));const fEe=.5,Yue=Ce.fromHex("#40C8AE").transparent(fEe),Zue=Ce.fromHex("#40A6FF").transparent(fEe),Que=Ce.fromHex("#606060").transparent(.4),ate=.4,ZS=1,Fz=U("merge.currentHeaderBackground",{dark:Yue,light:Yue,hcDark:null,hcLight:null},v("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);U("merge.currentContentBackground",jt(Fz,ate),v("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const Bz=U("merge.incomingHeaderBackground",{dark:Zue,light:Zue,hcDark:null,hcLight:null},v("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);U("merge.incomingContentBackground",jt(Bz,ate),v("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const Wz=U("merge.commonHeaderBackground",{dark:Que,light:Que,hcDark:null,hcLight:null},v("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);U("merge.commonContentBackground",jt(Wz,ate),v("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const QS=U("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},v("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));U("editorOverviewRuler.currentContentForeground",{dark:jt(Fz,ZS),light:jt(Fz,ZS),hcDark:QS,hcLight:QS},v("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts."));U("editorOverviewRuler.incomingContentForeground",{dark:jt(Bz,ZS),light:jt(Bz,ZS),hcDark:QS,hcLight:QS},v("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts."));U("editorOverviewRuler.commonContentForeground",{dark:jt(Wz,ZS),light:jt(Wz,ZS),hcDark:QS,hcLight:QS},v("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));const Q7=U("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},v("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),pEe=U("editorOverviewRuler.selectionHighlightForeground","#A0A0A0CC",v("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),_pt=U("problemsErrorIcon.foreground",s8,v("problemsErrorIconForeground","The color used for the problems error icon.")),vpt=U("problemsWarningIcon.foreground",$g,v("problemsWarningIconForeground","The color used for the problems warning icon.")),bpt=U("problemsInfoIcon.foreground",Kf,v("problemsInfoIconForeground","The color used for the problems info icon.")),Vz=U("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},v("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),r8=U("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},v("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),Jue=U("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},v("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),ypt=U("minimap.infoHighlight",{dark:Kf,light:Kf,hcDark:DT,hcLight:DT},v("minimapInfo","Minimap marker color for infos.")),wpt=U("minimap.warningHighlight",{dark:$g,light:$g,hcDark:TT,hcLight:TT},v("overviewRuleWarning","Minimap marker color for warnings.")),Cpt=U("minimap.errorHighlight",{dark:new Ce(new pi(255,18,18,.7)),light:new Ce(new pi(255,18,18,.7)),hcDark:new Ce(new pi(255,50,50,1)),hcLight:"#B5200D"},v("minimapError","Minimap marker color for errors.")),Spt=U("minimap.background",null,v("minimapBackground","Minimap background color.")),xpt=U("minimap.foregroundOpacity",Ce.fromHex("#000f"),v("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));U("minimapSlider.background",jt(aEe,.5),v("minimapSliderBackground","Minimap slider background color."));U("minimapSlider.hoverBackground",jt(lEe,.5),v("minimapSliderHoverBackground","Minimap slider background color when hovering."));U("minimapSlider.activeBackground",jt(cEe,.5),v("minimapSliderActiveBackground","Minimap slider background color when clicked on."));U("charts.foreground",Zt,v("chartsForeground","The foreground color used in charts."));U("charts.lines",jt(Zt,.5),v("chartsLines","The color used for horizontal lines in charts."));U("charts.red",s8,v("chartsRed","The red color used in chart visualizations."));U("charts.blue",Kf,v("chartsBlue","The blue color used in chart visualizations."));U("charts.yellow",$g,v("chartsYellow","The yellow color used in chart visualizations."));U("charts.orange",Vz,v("chartsOrange","The orange color used in chart visualizations."));U("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},v("chartsGreen","The green color used in chart visualizations."));U("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("chartsPurple","The purple color used in chart visualizations."));const Hz=U("input.background",{dark:"#3C3C3C",light:Ce.white,hcDark:Ce.black,hcLight:Ce.white},v("inputBoxBackground","Input box background.")),gEe=U("input.foreground",Zt,v("inputBoxForeground","Input box foreground.")),mEe=U("input.border",{dark:null,light:null,hcDark:mi,hcLight:mi},v("inputBoxBorder","Input box border.")),o8=U("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:mi,hcLight:mi},v("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),Lpt=U("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},v("inputOption.hoverBackground","Background color of activated options in input fields.")),PN=U("inputOption.activeBackground",{dark:jt(qf,.4),light:jt(qf,.2),hcDark:Ce.transparent,hcLight:Ce.transparent},v("inputOption.activeBackground","Background hover color of options in input fields.")),a8=U("inputOption.activeForeground",{dark:Ce.white,light:Ce.black,hcDark:Zt,hcLight:Zt},v("inputOption.activeForeground","Foreground color of activated options in input fields."));U("input.placeholderForeground",{light:jt(Zt,.5),dark:jt(Zt,.5),hcDark:jt(Zt,.7),hcLight:jt(Zt,.7)},v("inputPlaceholderForeground","Input box foreground color for placeholder text."));const Ept=U("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:Ce.black,hcLight:Ce.white},v("inputValidationInfoBackground","Input validation background color for information severity.")),kpt=U("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:Zt},v("inputValidationInfoForeground","Input validation foreground color for information severity.")),Ipt=U("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:mi,hcLight:mi},v("inputValidationInfoBorder","Input validation border color for information severity.")),Tpt=U("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:Ce.black,hcLight:Ce.white},v("inputValidationWarningBackground","Input validation background color for warning severity.")),Dpt=U("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:Zt},v("inputValidationWarningForeground","Input validation foreground color for warning severity.")),Npt=U("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:mi,hcLight:mi},v("inputValidationWarningBorder","Input validation border color for warning severity.")),Apt=U("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:Ce.black,hcLight:Ce.white},v("inputValidationErrorBackground","Input validation background color for error severity.")),Ppt=U("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:Zt},v("inputValidationErrorForeground","Input validation foreground color for error severity.")),Rpt=U("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:mi,hcLight:mi},v("inputValidationErrorBorder","Input validation border color for error severity.")),l8=U("dropdown.background",{dark:"#3C3C3C",light:Ce.white,hcDark:Ce.black,hcLight:Ce.white},v("dropdownBackground","Dropdown background.")),Mpt=U("dropdown.listBackground",{dark:null,light:null,hcDark:Ce.black,hcLight:Ce.white},v("dropdownListBackground","Dropdown list background.")),lte=U("dropdown.foreground",{dark:"#F0F0F0",light:Zt,hcDark:Ce.white,hcLight:Zt},v("dropdownForeground","Dropdown foreground.")),cte=U("dropdown.border",{dark:l8,light:"#CECECE",hcDark:mi,hcLight:mi},v("dropdownBorder","Dropdown border.")),_Ee=U("button.foreground",Ce.white,v("buttonForeground","Button foreground color.")),Opt=U("button.separator",jt(_Ee,.4),v("buttonSeparator","Button separator color.")),WE=U("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},v("buttonBackground","Button background color.")),Fpt=U("button.hoverBackground",{dark:Wh(WE,.2),light:A0(WE,.2),hcDark:WE,hcLight:WE},v("buttonHoverBackground","Button background color when hovering.")),Bpt=U("button.border",mi,v("buttonBorder","Button border color.")),Wpt=U("button.secondaryForeground",{dark:Ce.white,light:Ce.white,hcDark:Ce.white,hcLight:Zt},v("buttonSecondaryForeground","Secondary button foreground color.")),$z=U("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:Ce.white},v("buttonSecondaryBackground","Secondary button background color.")),Vpt=U("button.secondaryHoverBackground",{dark:Wh($z,.2),light:A0($z,.2),hcDark:null,hcLight:null},v("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),VE=U("radio.activeForeground",a8,v("radioActiveForeground","Foreground color of active radio option.")),Hpt=U("radio.activeBackground",PN,v("radioBackground","Background color of active radio option.")),$pt=U("radio.activeBorder",o8,v("radioActiveBorder","Border color of the active radio option.")),zpt=U("radio.inactiveForeground",null,v("radioInactiveForeground","Foreground color of inactive radio option.")),Upt=U("radio.inactiveBackground",null,v("radioInactiveBackground","Background color of inactive radio option.")),jpt=U("radio.inactiveBorder",{light:jt(VE,.2),dark:jt(VE,.2),hcDark:jt(VE,.4),hcLight:jt(VE,.2)},v("radioInactiveBorder","Border color of the inactive radio option.")),qpt=U("radio.inactiveHoverBackground",Lpt,v("radioHoverBackground","Background color of inactive active radio option when hovering.")),Kpt=U("checkbox.background",l8,v("checkbox.background","Background color of checkbox widget."));U("checkbox.selectBackground",$c,v("checkbox.select.background","Background color of checkbox widget when the element it's in is selected."));const Gpt=U("checkbox.foreground",lte,v("checkbox.foreground","Foreground color of checkbox widget.")),Xpt=U("checkbox.border",cte,v("checkbox.border","Border color of checkbox widget."));U("checkbox.selectBorder",IF,v("checkbox.select.border","Border color of checkbox widget when the element it's in is selected."));const Ypt=U("keybindingLabel.background",{dark:new Ce(new pi(128,128,128,.17)),light:new Ce(new pi(221,221,221,.4)),hcDark:Ce.transparent,hcLight:Ce.transparent},v("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),Zpt=U("keybindingLabel.foreground",{dark:Ce.fromHex("#CCCCCC"),light:Ce.fromHex("#555555"),hcDark:Ce.white,hcLight:Zt},v("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),Qpt=U("keybindingLabel.border",{dark:new Ce(new pi(51,51,51,.6)),light:new Ce(new pi(204,204,204,.4)),hcDark:new Ce(new pi(111,195,223)),hcLight:mi},v("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Jpt=U("keybindingLabel.bottomBorder",{dark:new Ce(new pi(68,68,68,.6)),light:new Ce(new pi(187,187,187,.4)),hcDark:new Ce(new pi(111,195,223)),hcLight:Zt},v("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),egt=U("list.focusBackground",null,v("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),tgt=U("list.focusForeground",null,v("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),igt=U("list.focusOutline",{dark:qf,light:qf,hcDark:Cn,hcLight:Cn},v("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ngt=U("list.focusAndSelectionOutline",null,v("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),JS=U("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:Ce.fromHex("#0F4A85").transparent(.1)},v("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),DF=U("list.activeSelectionForeground",{dark:Ce.white,light:Ce.white,hcDark:null,hcLight:null},v("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),vEe=U("list.activeSelectionIconForeground",null,v("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),sgt=U("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:Ce.fromHex("#0F4A85").transparent(.1)},v("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),rgt=U("list.inactiveSelectionForeground",null,v("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),ogt=U("list.inactiveSelectionIconForeground",null,v("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),agt=U("list.inactiveFocusBackground",null,v("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),lgt=U("list.inactiveFocusOutline",null,v("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),bEe=U("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:Ce.white.transparent(.1),hcLight:Ce.fromHex("#0F4A85").transparent(.1)},v("listHoverBackground","List/Tree background when hovering over items using the mouse.")),yEe=U("list.hoverForeground",null,v("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),cgt=U("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},v("listDropBackground","List/Tree drag and drop background when moving items over other items when using the mouse.")),ugt=U("list.dropBetweenBackground",{dark:IF,light:IF,hcDark:null,hcLight:null},v("listDropBetweenBackground","List/Tree drag and drop border color when moving items between items when using the mouse.")),Uw=U("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:qf,hcLight:qf},v("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),hgt=U("list.focusHighlightForeground",{dark:Uw,light:Kft(JS,Uw,"#BBE7FF"),hcDark:Uw,hcLight:Uw},v("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));U("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},v("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer."));U("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},v("listErrorForeground","Foreground color of list items containing errors."));U("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},v("listWarningForeground","Foreground color of list items containing warnings."));const dgt=U("listFilterWidget.background",{light:A0($c,0),dark:Wh($c,0),hcDark:$c,hcLight:$c},v("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),fgt=U("listFilterWidget.outline",{dark:Ce.transparent,light:Ce.transparent,hcDark:"#f38518",hcLight:"#007ACC"},v("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),pgt=U("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:mi,hcLight:mi},v("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),ggt=U("listFilterWidget.shadow",pL,v("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees."));U("list.filterMatchBackground",{dark:sg,light:sg,hcDark:null,hcLight:null},v("listFilterMatchHighlight","Background color of the filtered match."));U("list.filterMatchBorder",{dark:o1,light:o1,hcDark:mi,hcLight:Cn},v("listFilterMatchHighlightBorder","Border color of the filtered match."));U("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},v("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized."));const wEe=U("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},v("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),mgt=U("tree.inactiveIndentGuidesStroke",jt(wEe,.4),v("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active.")),_gt=U("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},v("tableColumnsBorder","Table border color between columns.")),vgt=U("tree.tableOddRowsBackground",{dark:jt(Zt,.04),light:jt(Zt,.04),hcDark:null,hcLight:null},v("tableOddRowsBackgroundColor","Background color for odd table rows.")),bgt=U("menu.border",{dark:null,light:null,hcDark:mi,hcLight:mi},v("menuBorder","Border color of menus.")),ygt=U("menu.foreground",lte,v("menuForeground","Foreground color of menu items.")),wgt=U("menu.background",l8,v("menuBackground","Background color of menu items.")),Cgt=U("menu.selectionForeground",DF,v("menuSelectionForeground","Foreground color of the selected menu item in menus.")),Sgt=U("menu.selectionBackground",JS,v("menuSelectionBackground","Background color of the selected menu item in menus.")),xgt=U("menu.selectionBorder",{dark:null,light:null,hcDark:Cn,hcLight:Cn},v("menuSelectionBorder","Border color of the selected menu item in menus.")),Lgt=U("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:mi,hcLight:mi},v("menuSeparatorBackground","Color of a separator menu item in menus.")),ehe=U("quickInput.background",$c,v("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),Egt=U("quickInput.foreground",ite,v("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),kgt=U("quickInputTitle.background",{dark:new Ce(new pi(255,255,255,.105)),light:new Ce(new pi(0,0,0,.06)),hcDark:"#000000",hcLight:Ce.white},v("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),CEe=U("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:Ce.white,hcLight:"#0F4A85"},v("pickerGroupForeground","Quick picker color for grouping labels.")),Igt=U("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:Ce.white,hcLight:"#0F4A85"},v("pickerGroupBorder","Quick picker color for grouping borders.")),the=U("quickInput.list.focusBackground",null,"",void 0,v("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),NT=U("quickInputList.focusForeground",DF,v("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),ute=U("quickInputList.focusIconForeground",vEe,v("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),AT=U("quickInputList.focusBackground",{dark:IT(the,JS),light:IT(the,JS),hcDark:null,hcLight:null},v("quickInput.listFocusBackground","Quick picker background color for the focused item."));U("search.resultsInfoForeground",{light:Zt,dark:jt(Zt,.65),hcDark:Zt,hcLight:Zt},v("search.resultsInfoForeground","Color of the text in the search viewlet's completion message."));U("searchEditor.findMatchBackground",{light:jt(sg,.66),dark:jt(sg,.66),hcDark:sg,hcLight:sg},v("searchEditor.queryMatch","Color of the Search Editor query matches."));U("searchEditor.findMatchBorder",{light:jt(o1,.66),dark:jt(o1,.66),hcDark:o1,hcLight:o1},v("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."));class c8{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new SEe(this.x-e.scrollX,this.y-e.scrollY)}}class SEe{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new c8(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class Tgt{constructor(e,t,i,s){this.x=e,this.y=t,this.width=i,this.height=s,this._editorPagePositionBrand=void 0}}class Dgt{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function hte(n){const e=ps(n);return new Tgt(e.left,e.top,e.width,e.height)}function dte(n,e,t){const i=e.width/n.offsetWidth,s=e.height/n.offsetHeight,r=(t.x-e.x)/i,o=(t.y-e.y)/s;return new Dgt(r,o)}class u_ extends Iu{constructor(e,t,i){super(ut(i),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new c8(this.posx,this.posy),this.editorPos=hte(i),this.relativePos=dte(i,this.editorPos,this.pos)}}class Ngt{constructor(e){this._editorViewDomNode=e}_create(e){return new u_(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return ge(e,"contextmenu",i=>{t(this._create(i))})}onMouseUp(e,t){return ge(e,"mouseup",i=>{t(this._create(i))})}onMouseDown(e,t){return ge(e,Ae.MOUSE_DOWN,i=>{t(this._create(i))})}onPointerDown(e,t){return ge(e,Ae.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onMouseLeave(e,t){return ge(e,Ae.MOUSE_LEAVE,i=>{t(this._create(i))})}onMouseMove(e,t){return ge(e,"mousemove",i=>t(this._create(i)))}}class Agt{constructor(e){this._editorViewDomNode=e}_create(e){return new u_(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return ge(e,"pointerup",i=>{t(this._create(i))})}onPointerDown(e,t){return ge(e,Ae.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onPointerLeave(e,t){return ge(e,Ae.POINTER_LEAVE,i=>{t(this._create(i))})}onPointerMove(e,t){return ge(e,"pointermove",i=>t(this._create(i)))}}class Pgt extends ue{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new fL),this._keydownListener=null}startMonitoring(e,t,i,s,r){this._keydownListener=os(e.ownerDocument,"keydown",o=>{o.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,o.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,o=>{s(new u_(o,!0,this._editorViewDomNode))},o=>{this._keydownListener.dispose(),r(o)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}const d3=class d3{constructor(e){this._editor=e,this._instanceId=++d3._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new ji(()=>this.garbageCollect(),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const s=this._counter++;i=new Rgt(t,`dyn-rule-${this._instanceId}-${s}`,fF(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}};d3._idPool=0;let NF=d3;class Rgt{constructor(e,t,i,s){this.key=e,this.className=t,this.properties=s,this._referenceCount=0,this._styleElementDisposables=new be,this._styleElement=fc(i,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const s in t){const r=t[s];let o;typeof r=="object"?o=Ue(r.id):o=r;const a=Mgt(s);i+=` + ${a}: ${o};`}return i+=` +}`,i}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function Mgt(n){return n.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}class RN extends ue{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,s=e.length;i<s;i++){const r=e[i];switch(r.type){case 0:this.onCompositionStart(r)&&(t=!0);break;case 1:this.onCompositionEnd(r)&&(t=!0);break;case 2:this.onConfigurationChanged(r)&&(t=!0);break;case 3:this.onCursorStateChanged(r)&&(t=!0);break;case 4:this.onDecorationsChanged(r)&&(t=!0);break;case 5:this.onFlushed(r)&&(t=!0);break;case 6:this.onFocusChanged(r)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(r)&&(t=!0);break;case 8:this.onLineMappingChanged(r)&&(t=!0);break;case 9:this.onLinesChanged(r)&&(t=!0);break;case 10:this.onLinesDeleted(r)&&(t=!0);break;case 11:this.onLinesInserted(r)&&(t=!0);break;case 12:this.onRevealRangeRequest(r)&&(t=!0);break;case 13:this.onScrollChanged(r)&&(t=!0);break;case 15:this.onTokensChanged(r)&&(t=!0);break;case 14:this.onThemeChanged(r)&&(t=!0);break;case 16:this.onTokensColorsChanged(r)&&(t=!0);break;case 17:this.onZonesChanged(r)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(r)}}t&&(this._shouldRender=!0)}}class Ll extends RN{constructor(e){super(),this._context=e,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}class ed{static write(e,t){e.setAttribute("data-mprt",String(t))}static read(e){const t=e.getAttribute("data-mprt");return t===null?0:parseInt(t,10)}static collect(e,t){const i=[];let s=0;for(;e&&e!==e.ownerDocument.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(i[s++]=this.read(e)),e=e.parentElement;const r=new Uint8Array(s);for(let o=0;o<s;o++)r[o]=i[s-o-1];return r}}class Ogt{constructor(e,t){this._restrictedRenderingContextBrand=void 0,this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e,t){return this._viewLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t){return this._viewLayout.getVerticalOffsetAfterLineNumber(e,t)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}class Fgt extends Ogt{constructor(e,t,i){super(e,t),this._renderingContextBrand=void 0,this._viewLines=i}linesVisibleRangesForRange(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)}}class Bgt{constructor(e,t,i,s){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i,this.continuesOnNextLine=s}}class u8{static from(e){const t=new Array(e.length);for(let i=0,s=e.length;i<s;i++){const r=e[i];t[i]=new u8(r.left,r.width)}return t}constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}toString(){return`[${this.left},${this.width}]`}}class xb{constructor(e,t){this._floatHorizontalRangeBrand=void 0,this.left=e,this.width=t}toString(){return`[${this.left},${this.width}]`}static compare(e,t){return e.left-t.left}}class Wgt{constructor(e,t){this.outsideRenderedLine=e,this.originalLeft=t,this.left=Math.round(this.originalLeft)}}class ihe{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}}class pM{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,s,r){const o=this._createRange();try{return o.setStart(e,t),o.setEnd(i,s),o.getClientRects()}catch{return null}finally{this._detachRange(o,r)}}static _mergeAdjacentRanges(e){if(e.length===1)return e;e.sort(xb.compare);const t=[];let i=0,s=e[0];for(let r=1,o=e.length;r<o;r++){const a=e[r];s.left+s.width+.9>=a.left?s.width=Math.max(s.width,a.left+a.width-s.left):(t[i++]=s,s=a)}return t[i++]=s,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const s=[];for(let r=0,o=e.length;r<o;r++){const a=e[r];s[r]=new xb(Math.max(0,(a.left-t)/i),a.width/i)}return this._mergeAdjacentRanges(s)}static readHorizontalRanges(e,t,i,s,r,o){const l=e.children.length-1;if(0>l)return null;if(t=Math.min(l,Math.max(0,t)),s=Math.min(l,Math.max(0,s)),t===s&&i===r&&i===0&&!e.children[t].firstChild){const d=e.children[t].getClientRects();return o.markDidDomLayout(),this._createHorizontalRangesFromClientRects(d,o.clientRectDeltaLeft,o.clientRectScale)}t!==s&&s>0&&r===0&&(s--,r=1073741824);let c=e.children[t].firstChild,u=e.children[s].firstChild;if((!c||!u)&&(!c&&i===0&&t>0&&(c=e.children[t-1].firstChild,i=1073741824),!u&&r===0&&s>0&&(u=e.children[s-1].firstChild,r=1073741824)),!c||!u)return null;i=Math.min(c.textContent.length,Math.max(0,i)),r=Math.min(u.textContent.length,Math.max(0,r));const h=this._readClientRects(c,i,u,r,o.endNode);return o.markDidDomLayout(),this._createHorizontalRangesFromClientRects(h,o.clientRectDeltaLeft,o.clientRectScale)}}class Xo{constructor(e,t,i,s){this.startColumn=e,this.endColumn=t,this.className=i,this.type=s,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length,s=t.length;if(i!==s)return!1;for(let r=0;r<i;r++)if(!Xo._equals(e[r],t[r]))return!1;return!0}static extractWrapped(e,t,i){if(e.length===0)return e;const s=t+1,r=i+1,o=i-t,a=[];let l=0;for(const c of e)c.endColumn<=s||c.startColumn>=r||(a[l++]=new Xo(Math.max(1,c.startColumn-s+1),Math.min(o+1,c.endColumn-s+1),c.className,c.type));return a}static filter(e,t,i,s){if(e.length===0)return[];const r=[];let o=0;for(let a=0,l=e.length;a<l;a++){const c=e[a],u=c.range;if(u.endLineNumber<t||u.startLineNumber>t||u.isEmpty()&&(c.type===0||c.type===3))continue;const h=u.startLineNumber===t?u.startColumn:i,d=u.endLineNumber===t?u.endColumn:s;r[o++]=new Xo(h,d,c.inlineClassName,c.type)}return r}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=Xo._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className<t.className?-1:1:0}}class nhe{constructor(e,t,i,s){this.startOffset=e,this.endOffset=t,this.className=i,this.metadata=s}}class AF{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let i=0,s=e.length;i<s;i++)t|=e[i];return t}consumeLowerThan(e,t,i){for(;this.count>0&&this.stopOffsets[0]<e;){let s=0;for(;s+1<this.count&&this.stopOffsets[s]===this.stopOffsets[s+1];)s++;i.push(new nhe(t,this.stopOffsets[s],this.classNames.join(" "),AF._metadata(this.metadata))),t=this.stopOffsets[s]+1,this.stopOffsets.splice(0,s+1),this.classNames.splice(0,s+1),this.metadata.splice(0,s+1),this.count-=s+1}return this.count>0&&t<e&&(i.push(new nhe(t,e-1,this.classNames.join(" "),AF._metadata(this.metadata))),t=e),t}insert(e,t,i){if(this.count===0||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(i);else for(let s=0;s<this.count;s++)if(this.stopOffsets[s]>=e){this.stopOffsets.splice(s,0,e),this.classNames.splice(s,0,t),this.metadata.splice(s,0,i);break}this.count++}}class Vgt{static normalize(e,t){if(t.length===0)return[];const i=[],s=new AF;let r=0;for(let o=0,a=t.length;o<a;o++){const l=t[o];let c=l.startColumn,u=l.endColumn;const h=l.className,d=l.type===1?2:l.type===2?4:0;if(c>1){const g=e.charCodeAt(c-2);Js(g)&&c--}if(u>1){const g=e.charCodeAt(u-2);Js(g)&&u--}const f=c-1,p=u-2;r=s.consumeLowerThan(f,r,i),s.count===0&&(r=f),s.insert(p,h,d)}return s.consumeLowerThan(1073741824,r,i),i}}class hr{constructor(e,t,i,s){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=s,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}let xEe=class{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}};class P_{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f,p,g,m,_,b,w){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=s,this.isBasicASCII=r,this.containsRTL=o,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=c.sort(Xo.compare),this.tabSize=u,this.startVisibleColumn=h,this.spaceWidth=d,this.stopRenderingLineAfter=g,this.renderWhitespace=m==="all"?4:m==="boundary"?1:m==="selection"?2:m==="trailing"?3:0,this.renderControlCharacters=_,this.fontLigatures=b,this.selectionsOnLine=w&&w.sort((x,k)=>x.startOffset<k.startOffset?-1:1);const C=Math.abs(p-d),S=Math.abs(f-d);C<S?(this.renderSpaceWidth=p,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=f,this.renderSpaceCharCode=183)}sameSelection(e){if(this.selectionsOnLine===null)return e===null;if(e===null||e.length!==this.selectionsOnLine.length)return!1;for(let t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}equals(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&Xo.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}class LEe{constructor(e,t){this.partIndex=e,this.charIndex=t}}class Qd{static getPartIndex(e){return(e&4294901760)>>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,s){const r=(t<<16|i<<0)>>>0;this._data[e-1]=r,this._horizontalOffset[e-1]=s}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=Qd.getPartIndex(t),s=Qd.getCharIndex(t);return new LEe(i,s)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const s=(e<<16|i<<0)>>>0;let r=0,o=this.length-1;for(;r+1<o;){const g=r+o>>>1,m=this._data[g];if(m===s)return g;m>s?o=g:r=g}if(r===o)return r;const a=this._data[r],l=this._data[o];if(a===s)return r;if(l===s)return o;const c=Qd.getPartIndex(a),u=Qd.getCharIndex(a),h=Qd.getPartIndex(l);let d;c!==h?d=t:d=Qd.getCharIndex(l);const f=i-u,p=d-i;return f<=p?r:o}}class zz{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function MN(n,e){if(n.lineContent.length===0){if(n.lineDecorations.length>0){e.appendString("<span>");let t=0,i=0,s=0;for(const o of n.lineDecorations)(o.type===1||o.type===2)&&(e.appendString('<span class="'),e.appendString(o.className),e.appendString('"></span>'),o.type===1&&(s|=1,t++),o.type===2&&(s|=2,i++));e.appendString("</span>");const r=new Qd(1,t+i);return r.setColumnInfo(1,t,0,0),new zz(r,!1,s)}return e.appendString("<span><span></span></span>"),new zz(new Qd(0,0),!1,0)}return Xgt(zgt(n),e)}class Hgt{constructor(e,t,i,s){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=s}}function h8(n){const e=new uL(1e4),t=MN(n,e);return new Hgt(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class $gt{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f,p,g,m){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=s,this.isOverflowing=r,this.overflowingCharCount=o,this.parts=a,this.containsForeignElements=l,this.fauxIndentLength=c,this.tabSize=u,this.startVisibleColumn=h,this.containsRTL=d,this.spaceWidth=f,this.renderSpaceCharCode=p,this.renderWhitespace=g,this.renderControlCharacters=m}}function zgt(n){const e=n.lineContent;let t,i,s;n.stopRenderingLineAfter!==-1&&n.stopRenderingLineAfter<e.length?(t=!0,i=e.length-n.stopRenderingLineAfter,s=n.stopRenderingLineAfter):(t=!1,i=0,s=e.length);let r=Ugt(e,n.containsRTL,n.lineTokens,n.fauxIndentLength,s);n.renderControlCharacters&&!n.isBasicASCII&&(r=qgt(e,r)),(n.renderWhitespace===4||n.renderWhitespace===1||n.renderWhitespace===2&&n.selectionsOnLine||n.renderWhitespace===3&&!n.continuesWithWrappedLine)&&(r=Kgt(n,e,s,r));let o=0;if(n.lineDecorations.length>0){for(let a=0,l=n.lineDecorations.length;a<l;a++){const c=n.lineDecorations[a];c.type===3||c.type===1?o|=1:c.type===2&&(o|=2)}r=Ggt(e,s,r,n.lineDecorations)}return n.containsRTL||(r=jgt(e,r,!n.isBasicASCII||n.fontLigatures)),new $gt(n.useMonospaceOptimizations,n.canUseHalfwidthRightwardsArrow,e,s,t,i,r,o,n.fauxIndentLength,n.tabSize,n.startVisibleColumn,n.containsRTL,n.spaceWidth,n.renderSpaceCharCode,n.renderWhitespace,n.renderControlCharacters)}function Ugt(n,e,t,i,s){const r=[];let o=0;i>0&&(r[o++]=new hr(i,"",0,!1));let a=i;for(let l=0,c=t.getCount();l<c;l++){const u=t.getEndOffset(l);if(u<=i)continue;const h=t.getClassName(l);if(u>=s){const f=e?KS(n.substring(a,s)):!1;r[o++]=new hr(s,h,0,f);break}const d=e?KS(n.substring(a,u)):!1;r[o++]=new hr(u,h,0,d),a=u}return r}function jgt(n,e,t){let i=0;const s=[];let r=0;if(t)for(let o=0,a=e.length;o<a;o++){const l=e[o],c=l.endIndex;if(i+50<c){const u=l.type,h=l.metadata,d=l.containsRTL;let f=-1,p=i;for(let g=i;g<c;g++)n.charCodeAt(g)===32&&(f=g),f!==-1&&g-p>=50&&(s[r++]=new hr(f+1,u,h,d),p=f+1,f=-1);p!==c&&(s[r++]=new hr(c,u,h,d))}else s[r++]=l;i=c}else for(let o=0,a=e.length;o<a;o++){const l=e[o],c=l.endIndex,u=c-i;if(u>50){const h=l.type,d=l.metadata,f=l.containsRTL,p=Math.ceil(u/50);for(let g=1;g<p;g++){const m=i+g*50;s[r++]=new hr(m,h,d,f)}s[r++]=new hr(c,h,d,f)}else s[r++]=l;i=c}return s}function EEe(n){return n<32?n!==9:n===127||n>=8234&&n<=8238||n>=8294&&n<=8297||n>=8206&&n<=8207||n===1564}function qgt(n,e){const t=[];let i=new hr(0,"",0,!1),s=0;for(const r of e){const o=r.endIndex;for(;s<o;s++){const a=n.charCodeAt(s);EEe(a)&&(s>i.endIndex&&(i=new hr(s,r.type,r.metadata,r.containsRTL),t.push(i)),i=new hr(s+1,"mtkcontrol",r.metadata,!1),t.push(i))}s>i.endIndex&&(i=new hr(o,r.type,r.metadata,r.containsRTL),t.push(i))}return t}function Kgt(n,e,t,i){const s=n.continuesWithWrappedLine,r=n.fauxIndentLength,o=n.tabSize,a=n.startVisibleColumn,l=n.useMonospaceOptimizations,c=n.selectionsOnLine,u=n.renderWhitespace===1,h=n.renderWhitespace===3,d=n.renderSpaceWidth!==n.spaceWidth,f=[];let p=0,g=0,m=i[g].type,_=i[g].containsRTL,b=i[g].endIndex;const w=i.length;let C=!1,S=Io(e),x;S===-1?(C=!0,S=t,x=t):x=Fh(e);let k=!1,L=0,E=c&&c[L],A=a%o;for(let T=r;T<t;T++){const N=e.charCodeAt(T);E&&T>=E.endOffset&&(L++,E=c&&c[L]);let M;if(T<S||T>x)M=!0;else if(N===9)M=!0;else if(N===32)if(u)if(k)M=!0;else{const V=T+1<t?e.charCodeAt(T+1):0;M=V===32||V===9}else M=!0;else M=!1;if(M&&c&&(M=!!E&&E.startOffset<=T&&E.endOffset>T),M&&h&&(M=C||T>x),M&&_&&T>=S&&T<=x&&(M=!1),k){if(!M||!l&&A>=o){if(d){const V=p>0?f[p-1].endIndex:r;for(let W=V+1;W<=T;W++)f[p++]=new hr(W,"mtkw",1,!1)}else f[p++]=new hr(T,"mtkw",1,!1);A=A%o}}else(T===b||M&&T>r)&&(f[p++]=new hr(T,m,0,_),A=A%o);for(N===9?A=o:r_(N)?A+=2:A++,k=M;T===b&&(g++,g<w);)m=i[g].type,_=i[g].containsRTL,b=i[g].endIndex}let I=!1;if(k)if(s&&u){const T=t>0?e.charCodeAt(t-1):0,N=t>1?e.charCodeAt(t-2):0;T===32&&N!==32&&N!==9||(I=!0)}else I=!0;if(I)if(d){const T=p>0?f[p-1].endIndex:r;for(let N=T+1;N<=t;N++)f[p++]=new hr(N,"mtkw",1,!1)}else f[p++]=new hr(t,"mtkw",1,!1);else f[p++]=new hr(t,m,0,_);return f}function Ggt(n,e,t,i){i.sort(Xo.compare);const s=Vgt.normalize(n,i),r=s.length;let o=0;const a=[];let l=0,c=0;for(let h=0,d=t.length;h<d;h++){const f=t[h],p=f.endIndex,g=f.type,m=f.metadata,_=f.containsRTL;for(;o<r&&s[o].startOffset<p;){const b=s[o];if(b.startOffset>c&&(c=b.startOffset,a[l++]=new hr(c,g,m,_)),b.endOffset+1<=p)c=b.endOffset+1,a[l++]=new hr(c,g+" "+b.className,m|b.metadata,_),o++;else{c=p,a[l++]=new hr(c,g+" "+b.className,m|b.metadata,_);break}}p>c&&(c=p,a[l++]=new hr(c,g,m,_))}const u=t[t.length-1].endIndex;if(o<r&&s[o].startOffset===u)for(;o<r&&s[o].startOffset===u;){const h=s[o];a[l++]=new hr(c,h.className,h.metadata,!1),o++}return a}function Xgt(n,e){const t=n.fontIsMonospace,i=n.canUseHalfwidthRightwardsArrow,s=n.containsForeignElements,r=n.lineContent,o=n.len,a=n.isOverflowing,l=n.overflowingCharCount,c=n.parts,u=n.fauxIndentLength,h=n.tabSize,d=n.startVisibleColumn,f=n.containsRTL,p=n.spaceWidth,g=n.renderSpaceCharCode,m=n.renderWhitespace,_=n.renderControlCharacters,b=new Qd(o+1,c.length);let w=!1,C=0,S=d,x=0,k=0,L=0;f?e.appendString('<span dir="ltr">'):e.appendString("<span>");for(let E=0,A=c.length;E<A;E++){const I=c[E],T=I.endIndex,N=I.type,M=I.containsRTL,V=m!==0&&I.isWhitespace(),W=V&&!t&&(N==="mtkw"||!s),B=C===T&&I.isPseudoAfter();if(x=0,e.appendString("<span "),M&&e.appendString('style="unicode-bidi:isolate" '),e.appendString('class="'),e.appendString(W?"mtkz":N),e.appendASCIICharCode(34),V){let $=0;{let Y=C,le=S;for(;Y<T;Y++){const z=(r.charCodeAt(Y)===9?h-le%h:1)|0;$+=z,Y>=u&&(le+=z)}}for(W&&(e.appendString(' style="width:'),e.appendString(String(p*$)),e.appendString('px"')),e.appendASCIICharCode(62);C<T;C++){b.setColumnInfo(C+1,E-L,x,k),L=0;const Y=r.charCodeAt(C);let le,re;if(Y===9){le=h-S%h|0,re=le,!i||re>1?e.appendCharCode(8594):e.appendCharCode(65515);for(let z=2;z<=re;z++)e.appendCharCode(160)}else le=2,re=1,e.appendCharCode(g),e.appendCharCode(8204);x+=le,k+=re,C>=u&&(S+=re)}}else for(e.appendASCIICharCode(62);C<T;C++){b.setColumnInfo(C+1,E-L,x,k),L=0;const $=r.charCodeAt(C);let Y=1,le=1;switch($){case 9:Y=h-S%h,le=Y;for(let re=1;re<=Y;re++)e.appendCharCode(160);break;case 32:e.appendCharCode(160);break;case 60:e.appendString("<");break;case 62:e.appendString(">");break;case 38:e.appendString("&");break;case 0:_?e.appendCharCode(9216):e.appendString("�");break;case 65279:case 8232:case 8233:case 133:e.appendCharCode(65533);break;default:r_($)&&le++,_&&$<32?e.appendCharCode(9216+$):_&&$===127?e.appendCharCode(9249):_&&EEe($)?(e.appendString("[U+"),e.appendString(Ygt($)),e.appendString("]"),Y=8,le=Y):e.appendCharCode($)}x+=Y,k+=le,C>=u&&(S+=le)}B?L++:L=0,C>=o&&!w&&I.isPseudoAfter()&&(w=!0,b.setColumnInfo(C+1,E,x,k)),e.appendString("</span>")}return w||b.setColumnInfo(o+1,c.length-1,x,k),a&&(e.appendString('<span class="mtkoverflow">'),e.appendString(v("showMore","Show more ({0})",Zgt(l))),e.appendString("</span>")),e.appendString("</span>"),new zz(b,f,s)}function Ygt(n){return n.toString(16).toUpperCase().padStart(4,"0")}function Zgt(n){return n<1024?v("overflow.chars","{0} chars",n):n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/1024/1024).toFixed(1)} MB`}var zc;(function(n){n.DARK="dark",n.LIGHT="light",n.HIGH_CONTRAST_DARK="hcDark",n.HIGH_CONTRAST_LIGHT="hcLight"})(zc||(zc={}));function Vh(n){return n===zc.HIGH_CONTRAST_DARK||n===zc.HIGH_CONTRAST_LIGHT}function ex(n){return n===zc.DARK||n===zc.HIGH_CONTRAST_DARK}const Qgt=function(){return Oh?!0:!(ra||tu||Fg)}();let UC=!0;class she{constructor(e,t){this.themeType=t;const i=e.options,s=i.get(50);i.get(38)==="off"?this.renderWhitespace=i.get(100):this.renderWhitespace="none",this.renderControlCharacters=i.get(95),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.useMonospaceOptimizations=s.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(67),this.stopRenderingLineAfter=i.get(118),this.fontLigatures=i.get(51)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}const f3=class f3{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=Pi(e);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return Vh(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,s,r){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const o=s.getViewLineRenderingData(e),a=this._options,l=Xo.filter(o.inlineDecorations,e,o.minColumn,o.maxColumn);let c=null;if(Vh(a.themeType)||this._options.renderWhitespace==="selection"){const f=s.selections;for(const p of f){if(p.endLineNumber<e||p.startLineNumber>e)continue;const g=p.startLineNumber===e?p.startColumn:o.minColumn,m=p.endLineNumber===e?p.endColumn:o.maxColumn;g<m&&(Vh(a.themeType)&&l.push(new Xo(g,m,"inline-selected-text",0)),this._options.renderWhitespace==="selection"&&(c||(c=[]),c.push(new xEe(g-1,m-1))))}}const u=new P_(a.useMonospaceOptimizations,a.canUseHalfwidthRightwardsArrow,o.content,o.continuesWithWrappedLine,o.isBasicASCII,o.containsRTL,o.minColumn-1,o.tokens,l,o.tabSize,o.startVisibleColumn,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,a.stopRenderingLineAfter,a.renderWhitespace,a.renderControlCharacters,a.fontLigatures!==c_.OFF,c);if(this._renderedViewLine&&this._renderedViewLine.input.equals(u))return!1;r.appendString('<div style="top:'),r.appendString(String(t)),r.appendString("px;height:"),r.appendString(String(i)),r.appendString('px;" class="'),r.appendString(f3.CLASS_NAME),r.appendString('">');const h=MN(u,r);r.appendString("</div>");let d=null;return UC&&Qgt&&o.isBasicASCII&&a.useMonospaceOptimizations&&h.containsForeignElements===0&&(d=new pP(this._renderedViewLine?this._renderedViewLine.domNode:null,u,h.characterMapping)),d||(d=IEe(this._renderedViewLine?this._renderedViewLine.domNode:null,u,h.characterMapping,h.containsRTL,h.containsForeignElements)),this._renderedViewLine=d,!0}layoutLine(e,t,i){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(i))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof pP:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof pP?this._renderedViewLine.monospaceAssumptionsAreValid():UC}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof pP&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,s){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const r=this._renderedViewLine.input.stopRenderingLineAfter;if(r!==-1&&t>r+1&&i>r+1)return new ihe(!0,[new xb(this.getWidth(s),0)]);r!==-1&&t>r+1&&(t=r+1),r!==-1&&i>r+1&&(i=r+1);const o=this._renderedViewLine.getVisibleRangesForRange(e,t,i,s);return o&&o.length>0?new ihe(!1,o):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}};f3.CLASS_NAME="view-line";let qp=f3;class pP{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const s=Math.floor(t.lineContent.length/300);if(s>0){this._keyColumnPixelOffsetCache=new Float32Array(s);for(let r=0;r<s;r++)this._keyColumnPixelOffsetCache[r]=-1}else this._keyColumnPixelOffsetCache=null;this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(e){if(!this.domNode||this.input.lineContent.length<300){const t=this._characterMapping.getHorizontalOffset(this._characterMapping.length);return Math.round(this._charWidth*t)}return this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth}getWidthIsFast(){return this.input.lineContent.length<300||this._cachedWidth!==-1}monospaceAssumptionsAreValid(){if(!this.domNode)return UC;if(this.input.lineContent.length<300){const e=this.getWidth(null),t=this.domNode.domNode.firstChild.offsetWidth;Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),UC=!1)}return UC}toSlowRenderedLine(){return IEe(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,s){const r=this._getColumnPixelOffset(e,t,s),o=this._getColumnPixelOffset(e,i,s);return[new xb(r,o-r)]}_getColumnPixelOffset(e,t,i){if(t<=300){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const s=Math.floor((t-1)/300)-1,r=(s+1)*300+1;let o=-1;if(this._keyColumnPixelOffsetCache&&(o=this._keyColumnPixelOffsetCache[s],o===-1&&(o=this._actualReadPixelOffset(e,r,i),this._keyColumnPixelOffsetCache[s]=o)),o===-1){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const a=this._characterMapping.getHorizontalOffset(r),l=this._characterMapping.getHorizontalOffset(t);return o+this._charWidth*(l-a)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const s=this._characterMapping.getDomPosition(t),r=pM.readHorizontalRanges(this._getReadingTarget(this.domNode),s.partIndex,s.charIndex,s.partIndex,s.charIndex,i);return!r||r.length===0?-1:r[0].left}getColumnOfNodeOffset(e,t){return fte(this._characterMapping,e,t)}}class kEe{constructor(e,t,i,s,r){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=r,this._cachedWidth=-1,this._pixelOffsetCache=null,!s||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let o=0,a=this._characterMapping.length;o<=a;o++)this._pixelOffsetCache[o]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,s){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const r=this._readPixelOffset(this.domNode,e,t,s);if(r===-1)return null;const o=this._readPixelOffset(this.domNode,e,i,s);return o===-1?null:[new xb(r,o-r)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,s)}_readVisibleRangesForRange(e,t,i,s,r){if(i===s){const o=this._readPixelOffset(e,t,i,r);return o===-1?null:[new xb(o,0)]}else return this._readRawVisibleRangesForRange(e,i,s,r)}_readPixelOffset(e,t,i,s){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(s);const r=this._getReadingTarget(e);return r.firstChild?(s.markDidDomLayout(),r.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const r=this._pixelOffsetCache[i];if(r!==-1)return r;const o=this._actualReadPixelOffset(e,t,i,s);return this._pixelOffsetCache[i]=o,o}return this._actualReadPixelOffset(e,t,i,s)}_actualReadPixelOffset(e,t,i,s){if(this._characterMapping.length===0){const l=pM.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,s);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(s);const r=this._characterMapping.getDomPosition(i),o=pM.readHorizontalRanges(this._getReadingTarget(e),r.partIndex,r.charIndex,r.partIndex,r.charIndex,s);if(!o||o.length===0)return-1;const a=o[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getHorizontalOffset(i),c=Math.round(this.input.spaceWidth*l);if(Math.abs(c-a)<=1)return c}return a}_readRawVisibleRangesForRange(e,t,i,s){if(t===1&&i===this._characterMapping.length)return[new xb(0,this.getWidth(s))];const r=this._characterMapping.getDomPosition(t),o=this._characterMapping.getDomPosition(i);return pM.readHorizontalRanges(this._getReadingTarget(e),r.partIndex,r.charIndex,o.partIndex,o.charIndex,s)}getColumnOfNodeOffset(e,t){return fte(this._characterMapping,e,t)}}class Jgt extends kEe{_readVisibleRangesForRange(e,t,i,s,r){const o=super._readVisibleRangesForRange(e,t,i,s,r);if(!o||o.length===0||i===s||i===1&&s===this._characterMapping.length)return o;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,s,r);if(a!==-1){const l=o[o.length-1];l.left<a&&(l.width=a-l.left)}}return o}}const IEe=function(){return vb?emt:tmt}();function emt(n,e,t,i,s){return new Jgt(n,e,t,i,s)}function tmt(n,e,t,i,s){return new kEe(n,e,t,i,s)}function fte(n,e,t){const i=e.textContent.length;let s=-1;for(;e;)e=e.previousSibling,s++;return n.getColumn(new LEe(s,t),i)}class km{constructor(e=null){this.hitTarget=e,this.type=0}}class TEe{get hitTarget(){return this.spanNode}constructor(e,t,i){this.position=e,this.spanNode=t,this.injectedText=i,this.type=1}}var Av;(function(n){function e(t,i,s){const r=t.getPositionFromDOMInfo(i,s);return r?new TEe(r,i,null):new km(i)}n.createFromDOMInfo=e})(Av||(Av={}));class imt{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}}class mo{static _deduceRage(e,t=null){return!t&&e?new O(e.lineNumber,e.column,e.lineNumber,e.column):t??null}static createUnknown(e,t,i){return{type:0,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,i,s,r,o){return{type:e,element:t,mouseColumn:i,position:s,range:r,detail:o}}static createViewZone(e,t,i,s,r){return{type:e,element:t,mouseColumn:i,position:s,range:this._deduceRage(s),detail:r}}static createContentText(e,t,i,s,r){return{type:6,element:e,mouseColumn:t,position:i,range:this._deduceRage(i,s),detail:r}}static createContentEmpty(e,t,i,s){return{type:7,element:e,mouseColumn:t,position:i,range:this._deduceRage(i),detail:s}}static createContentWidget(e,t,i){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createScrollbar(e,t,i){return{type:11,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createOverlayWidget(e,t,i){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createOutsideEditor(e,t,i,s){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:i,outsideDistance:s}}static _typeToString(e){return e===1?"TEXTAREA":e===2?"GUTTER_GLYPH_MARGIN":e===3?"GUTTER_LINE_NUMBERS":e===4?"GUTTER_LINE_DECORATIONS":e===5?"GUTTER_VIEW_ZONE":e===6?"CONTENT_TEXT":e===7?"CONTENT_EMPTY":e===8?"CONTENT_VIEW_ZONE":e===9?"CONTENT_WIDGET":e===10?"OVERVIEW_RULER":e===11?"SCROLLBAR":e===12?"OVERLAY_WIDGET":"UNKNOWN"}static toString(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+JSON.stringify(e.detail)}}class Fo{static isTextArea(e){return e.length===2&&e[0]===3&&e[1]===7}static isChildOfViewLines(e){return e.length>=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}}class Xy{constructor(e,t,i){this.viewModel=e.viewModel;const s=e.configuration.options;this.layoutInfo=s.get(146),this.viewDomNode=t.viewDomNode,this.overflowWidgetsDomNode=t.overflowWidgetsDomNode??null,this.lineHeight=s.get(67),this.stickyTabStops=s.get(117),this.typicalHalfwidthCharacterWidth=s.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return Xy.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const s=i.verticalOffset+i.height/2,r=e.viewModel.getLineCount();let o=null,a,l=null;return i.afterLineNumber!==r&&(l=new se(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(o=new se(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=o:o===null?a=l:t<s?a=o:a=l,{viewZoneId:i.id,afterLineNumber:i.afterLineNumber,positionBefore:o,positionAfter:l,position:a}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){const s=this._context.viewModel.getLineCount(),r=this._context.viewModel.getLineMaxColumn(s);return{range:new O(s,r,s,r),isAfterLines:!0}}const t=this._context.viewLayout.getLineNumberAtVerticalOffset(e),i=this._context.viewModel.getLineMaxColumn(t);return{range:new O(t,1,t,i),isAfterLines:!1}}getLineNumberAtVerticalOffset(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}isAfterLines(e){return this._context.viewLayout.isAfterLines(e)}isInTopPadding(e){return this._context.viewLayout.isInTopPadding(e)}isInBottomPadding(e){return this._context.viewLayout.isInBottomPadding(e)}getVerticalOffsetForLineNumber(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}findAttribute(e,t){return Xy._findAttribute(e,t,this._viewHelper.viewDomNode)}static _findAttribute(e,t,i){for(;e&&e!==e.ownerDocument.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===i)return null;e=e.parentNode}return null}getLineWidth(e){return this._viewHelper.getLineWidth(e)}visibleRangeForPosition(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}getPositionFromDOMInfo(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}getCurrentScrollTop(){return this._context.viewLayout.getCurrentScrollTop()}getCurrentScrollLeft(){return this._context.viewLayout.getCurrentScrollLeft()}}class nmt{constructor(e,t,i,s){this.editorPos=t,this.pos=i,this.relativePos=s,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+this.relativePos.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+this.relativePos.x-e.layoutInfo.contentLeft,this.isInMarginArea=this.relativePos.x<e.layoutInfo.contentLeft&&this.relativePos.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,Yr._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class rhe extends nmt{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&this._targetElement&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=ed.collect(this.target,this._targetElement)),this._targetPathCacheValue}constructor(e,t,i,s,r,o=null){super(e,t,i,s),this.hitTestResult=new Yh(()=>Yr.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._targetElement=null,this._ctx=e,this._eventTarget=r,this._targetElement=o;const a=!!this._eventTarget;this._useHitTestTarget=!a}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} + target: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(e=null){return e&&e.column<this._ctx.viewModel.getLineMaxColumn(e.lineNumber)?Vs.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(e.lineNumber),e.column,this._ctx.viewModel.model.getOptions().tabSize)+1:this.mouseColumn}fulfillUnknown(e=null){return mo.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return mo.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,i,s){return mo.createMargin(e,this.target,this._getMouseColumn(t),t,i,s)}fulfillViewZone(e,t,i){return mo.createViewZone(e,this.target,this._getMouseColumn(t),t,i)}fulfillContentText(e,t,i){return mo.createContentText(this.target,this._getMouseColumn(e),e,t,i)}fulfillContentEmpty(e,t){return mo.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return mo.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return mo.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return mo.createOverlayWidget(this.target,this._getMouseColumn(),e)}}const ohe={isAfterLines:!0};function J7(n){return{isAfterLines:!1,horizontalDistanceToText:n}}class Yr{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){const t=e.target,i=ed.collect(t,this._viewHelper.viewDomNode);return!!(Fo.isChildOfContentWidgets(i)||Fo.isChildOfOverflowingContentWidgets(i)||Fo.isChildOfOverlayWidgets(i)||Fo.isChildOfOverflowingOverlayWidgets(i))}createMouseTargetForView(e,t,i,s,r){const o=new Xy(this._context,this._viewHelper,e),a=new rhe(o,t,i,s,r,o.viewDomNode);try{const l=Yr._createMouseTarget(o,a);if(l.type===6&&o.stickyTabStops&&l.position!==null){const c=Yr._snapToSoftTabBoundary(l.position,o.viewModel),u=O.fromPositions(c,c).plusRange(l.range);return a.fulfillContentText(c,u,l.detail)}return l}catch{return a.fulfillUnknown()}}createMouseTargetForOverflowWidgetsDomNode(e,t,i,s,r){const o=new Xy(this._context,this._viewHelper,e),a=new rhe(o,t,i,s,r,o.overflowWidgetsDomNode);try{return Yr._createMouseTarget(o,a)}catch{return a.fulfillUnknown()}}static _createMouseTarget(e,t){if(t.target===null)return t.fulfillUnknown();const i=t;let s=null;return!Fo.isChildOfOverflowGuard(t.targetPath)&&!Fo.isChildOfOverflowingContentWidgets(t.targetPath)&&!Fo.isChildOfOverflowingOverlayWidgets(t.targetPath)&&(s=s||t.fulfillUnknown()),s=s||Yr._hitTestContentWidget(e,i),s=s||Yr._hitTestOverlayWidget(e,i),s=s||Yr._hitTestMinimap(e,i),s=s||Yr._hitTestScrollbarSlider(e,i),s=s||Yr._hitTestViewZone(e,i),s=s||Yr._hitTestMargin(e,i),s=s||Yr._hitTestViewCursor(e,i),s=s||Yr._hitTestTextArea(e,i),s=s||Yr._hitTestViewLines(e,i),s=s||Yr._hitTestScrollbar(e,i),s||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(Fo.isChildOfContentWidgets(t.targetPath)||Fo.isChildOfOverflowingContentWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillContentWidget(i):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(Fo.isChildOfOverlayWidgets(t.targetPath)||Fo.isChildOfOverflowingOverlayWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillOverlayWidget(i):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const i=e.lastRenderData.lastViewCursorsRenderData;for(const s of i)if(t.target===s.domNode)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const i=e.lastRenderData.lastViewCursorsRenderData,s=t.mouseContentHorizontalOffset,r=t.mouseVerticalOffset;for(const o of i){if(s<o.contentLeft||s>o.contentLeft+o.width)continue;const a=e.getVerticalOffsetForLineNumber(o.position.lineNumber);if(a<=r&&r<=a+o.height)return t.fulfillContentText(o.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const s=t.isInContentArea?8:5;return t.fulfillViewZone(s,i.position,i)}return null}static _hitTestTextArea(e,t){return Fo.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),s=i.range.getStartPosition();let r=Math.abs(t.relativePos.x);const o={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:r};if(r-=e.layoutInfo.glyphMarginLeft,r<=e.layoutInfo.glyphMarginWidth){const a=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i.range.getStartPosition()),l=e.viewModel.glyphLanes.getLanesAtLine(a.lineNumber);return o.glyphMarginLane=l[Math.floor(r/e.lineHeight)],t.fulfillMargin(2,s,i.range,o)}return r-=e.layoutInfo.glyphMarginWidth,r<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,s,i.range,o):(r-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,s,i.range,o))}return null}static _hitTestViewLines(e,t){if(!Fo.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new se(1,1),ohe);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const s=e.viewModel.getLineCount(),r=e.viewModel.getLineMaxColumn(s);return t.fulfillContentEmpty(new se(s,r),ohe)}if(Fo.isStrictChildOfViewLines(t.targetPath)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(s)===0){const o=e.getLineWidth(s),a=J7(t.mouseContentHorizontalOffset-o);return t.fulfillContentEmpty(new se(s,1),a)}const r=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>=r){const o=J7(t.mouseContentHorizontalOffset-r),a=new se(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(a,o)}}const i=t.hitTestResult.value;return i.type===1?Yr.createMouseTargetFromHitTestPosition(e,t,i.spanNode,i.position,i.injectedText):t.wouldBenefitFromHitTestTargetSwitch?(t.switchToHitTestTarget(),this._createMouseTarget(e,t)):t.fulfillUnknown()}static _hitTestMinimap(e,t){if(Fo.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new se(i,s))}return null}static _hitTestScrollbarSlider(e,t){if(Fo.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(s);return t.fulfillScrollbar(new se(s,r))}}return null}static _hitTestScrollbar(e,t){if(Fo.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new se(i,s))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(146),s=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return Yr._getMouseColumn(s,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,s,r){const o=s.lineNumber,a=s.column,l=e.getLineWidth(o);if(t.mouseContentHorizontalOffset>l){const _=J7(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(s,_)}const c=e.visibleRangeForPosition(o,a);if(!c)return t.fulfillUnknown(s);const u=c.left;if(Math.abs(t.mouseContentHorizontalOffset-u)<1)return t.fulfillContentText(s,null,{mightBeForeignElement:!!r,injectedText:r});const h=[];if(h.push({offset:c.left,column:a}),a>1){const _=e.visibleRangeForPosition(o,a-1);_&&h.push({offset:_.left,column:a-1})}const d=e.viewModel.getLineMaxColumn(o);if(a<d){const _=e.visibleRangeForPosition(o,a+1);_&&h.push({offset:_.left,column:a+1})}h.sort((_,b)=>_.offset-b.offset);const f=t.pos.toClientCoordinates(ut(e.viewDomNode)),p=i.getBoundingClientRect(),g=p.left<=f.clientX&&f.clientX<=p.right;let m=null;for(let _=1;_<h.length;_++){const b=h[_-1],w=h[_];if(b.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=w.offset){m=new O(o,b.column,o,w.column);const C=Math.abs(b.offset-t.mouseContentHorizontalOffset),S=Math.abs(w.offset-t.mouseContentHorizontalOffset);s=C<S?new se(o,b.column):new se(o,w.column);break}}return t.fulfillContentText(s,m,{mightBeForeignElement:!g||!!r,injectedText:r})}static _doHitTestWithCaretRangeFromPoint(e,t){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.getVerticalOffsetForLineNumber(i),r=s+e.lineHeight;if(!(i===e.viewModel.getLineCount()&&t.mouseVerticalOffset>r)){const a=Math.floor((s+r)/2);let l=t.pos.y+(a-t.mouseVerticalOffset);l<=t.editorPos.y&&(l=t.editorPos.y+1),l>=t.editorPos.y+t.editorPos.height&&(l=t.editorPos.y+t.editorPos.height-1);const c=new c8(t.pos.x,l),u=this._actualDoHitTestWithCaretRangeFromPoint(e,c.toClientCoordinates(ut(e.viewDomNode)));if(u.type===1)return u}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(ut(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=jy(e.viewDomNode);let s;if(i?typeof i.caretRangeFromPoint>"u"?s=smt(i,t.clientX,t.clientY):s=i.caretRangeFromPoint(t.clientX,t.clientY):s=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!s||!s.startContainer)return new km;const r=s.startContainer;if(r.nodeType===r.TEXT_NODE){const o=r.parentNode,a=o?o.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===qp.CLASS_NAME?Av.createFromDOMInfo(e,o,s.startOffset):new km(r.parentNode)}else if(r.nodeType===r.ELEMENT_NODE){const o=r.parentNode,a=o?o.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===qp.CLASS_NAME?Av.createFromDOMInfo(e,r,r.textContent.length):new km(r)}return new km}static _doHitTestWithCaretPositionFromPoint(e,t){const i=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const s=i.offsetNode.parentNode,r=s?s.parentNode:null,o=r?r.parentNode:null;return(o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===qp.CLASS_NAME?Av.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new km(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const s=i.offsetNode.parentNode,r=s&&s.nodeType===s.ELEMENT_NODE?s.className:null,o=s?s.parentNode:null,a=o&&o.nodeType===o.ELEMENT_NODE?o.className:null;if(r===qp.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return Av.createFromDOMInfo(e,l,0)}else if(a===qp.CLASS_NAME)return Av.createFromDOMInfo(e,i.offsetNode,0)}return new km(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:s}=t.model.getOptions(),r=yT.atomicPosition(i,e.column-1,s,2);return r!==-1?new se(e.lineNumber,r+1):e}static doHitTest(e,t){let i=new km;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?i=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(ut(e.viewDomNode)))),i.type===1){const s=e.viewModel.getInjectedTextAt(i.position),r=e.viewModel.normalizePosition(i.position,2);(s||!r.equals(i.position))&&(i=new TEe(r,i.spanNode,s))}return i}}function smt(n,e,t){const i=document.createRange();let s=n.elementFromPoint(e,t);if(s!==null){for(;s&&s.firstChild&&s.firstChild.nodeType!==s.firstChild.TEXT_NODE&&s.lastChild&&s.lastChild.firstChild;)s=s.lastChild;const r=s.getBoundingClientRect(),o=ut(s),a=o.getComputedStyle(s,null).getPropertyValue("font-style"),l=o.getComputedStyle(s,null).getPropertyValue("font-variant"),c=o.getComputedStyle(s,null).getPropertyValue("font-weight"),u=o.getComputedStyle(s,null).getPropertyValue("font-size"),h=o.getComputedStyle(s,null).getPropertyValue("line-height"),d=o.getComputedStyle(s,null).getPropertyValue("font-family"),f=`${a} ${l} ${c} ${u}/${h} ${d}`,p=s.innerText;let g=r.left,m=0,_;if(e>r.left+r.width)m=p.length;else{const b=Uz.getInstance();for(let w=0;w<p.length+1;w++){if(_=b.getCharWidth(p.charAt(w),f)/2,g+=_,e<g){m=w;break}g+=_}}i.setStart(s.firstChild,m),i.setEnd(s.firstChild,m)}return i}const Uv=class Uv{static getInstance(){return Uv._INSTANCE||(Uv._INSTANCE=new Uv),Uv._INSTANCE}constructor(){this._cache={},this._canvas=document.createElement("canvas")}getCharWidth(e,t){const i=e+t;if(this._cache[i])return this._cache[i];const s=this._canvas.getContext("2d");s.font=t;const o=s.measureText(e).width;return this._cache[i]=o,o}};Uv._INSTANCE=null;let Uz=Uv;function gs(n,e,t){let i=null,s=null;if(typeof t.value=="function"?(i="value",s=t.value,s.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof t.get=="function"&&(i="get",s=t.get),!s)throw new Error("not supported");const r=`$memoize$${e}`;t[i]=function(...o){return this.hasOwnProperty(r)||Object.defineProperty(this,r,{configurable:!1,enumerable:!1,writable:!1,value:s.apply(this,o)}),this[r]}}var rmt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sn;(function(n){n.Tap="-monaco-gesturetap",n.Change="-monaco-gesturechange",n.Start="-monaco-gesturestart",n.End="-monaco-gesturesend",n.Contextmenu="-monaco-gesturecontextmenu"})(sn||(sn={}));const Mr=class Mr extends ue{constructor(){super(),this.dispatched=!1,this.targets=new Go,this.ignoreTargets=new Go,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(Oe.runAndSubscribe(MB,({window:e,disposables:t})=>{t.add(ge(e.document,"touchstart",i=>this.onTouchStart(i),{passive:!1})),t.add(ge(e.document,"touchend",i=>this.onTouchEnd(e,i))),t.add(ge(e.document,"touchmove",i=>this.onTouchMove(i),{passive:!1}))},{window:Gi,disposables:this._store}))}static addTarget(e){if(!Mr.isTouchDevice())return ue.None;Mr.INSTANCE||(Mr.INSTANCE=new Mr);const t=Mr.INSTANCE.targets.push(e);return lt(t)}static ignoreTarget(e){if(!Mr.isTouchDevice())return ue.None;Mr.INSTANCE||(Mr.INSTANCE=new Mr);const t=Mr.INSTANCE.ignoreTargets.push(e);return lt(t)}static isTouchDevice(){return"ontouchstart"in Gi||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,s=e.targetTouches.length;i<s;i++){const r=e.targetTouches.item(i);this.activeTouches[r.identifier]={id:r.identifier,initialTarget:r.target,initialTimeStamp:t,initialPageX:r.pageX,initialPageY:r.pageY,rollingTimestamps:[t],rollingPageX:[r.pageX],rollingPageY:[r.pageY]};const o=this.newGestureEvent(sn.Start,r.target);o.pageX=r.pageX,o.pageY=r.pageY,this.dispatchEvent(o)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e,t){const i=Date.now(),s=Object.keys(this.activeTouches).length;for(let r=0,o=t.changedTouches.length;r<o;r++){const a=t.changedTouches.item(r);if(!this.activeTouches.hasOwnProperty(String(a.identifier))){console.warn("move of an UNKNOWN touch",a);continue}const l=this.activeTouches[a.identifier],c=Date.now()-l.initialTimeStamp;if(c<Mr.HOLD_DELAY&&Math.abs(l.initialPageX-xc(l.rollingPageX))<30&&Math.abs(l.initialPageY-xc(l.rollingPageY))<30){const u=this.newGestureEvent(sn.Tap,l.initialTarget);u.pageX=xc(l.rollingPageX),u.pageY=xc(l.rollingPageY),this.dispatchEvent(u)}else if(c>=Mr.HOLD_DELAY&&Math.abs(l.initialPageX-xc(l.rollingPageX))<30&&Math.abs(l.initialPageY-xc(l.rollingPageY))<30){const u=this.newGestureEvent(sn.Contextmenu,l.initialTarget);u.pageX=xc(l.rollingPageX),u.pageY=xc(l.rollingPageY),this.dispatchEvent(u)}else if(s===1){const u=xc(l.rollingPageX),h=xc(l.rollingPageY),d=xc(l.rollingTimestamps)-l.rollingTimestamps[0],f=u-l.rollingPageX[0],p=h-l.rollingPageY[0],g=[...this.targets].filter(m=>l.initialTarget instanceof Node&&m.contains(l.initialTarget));this.inertia(e,g,i,Math.abs(f)/d,f>0?1:-1,u,Math.abs(p)/d,p>0?1:-1,h)}this.dispatchEvent(this.newGestureEvent(sn.End,l.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===sn.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>Mr.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===sn.Change||e.type===sn.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(e.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(e.initialTarget)){let s=0,r=e.initialTarget;for(;r&&r!==i;)s++,r=r.parentElement;t.push([s,i])}t.sort((i,s)=>i[0]-s[0]);for(const[i,s]of t)s.dispatchEvent(e),this.dispatched=!0}}inertia(e,t,i,s,r,o,a,l,c){this.handle=bl(e,()=>{const u=Date.now(),h=u-i;let d=0,f=0,p=!0;s+=Mr.SCROLL_FRICTION*h,a+=Mr.SCROLL_FRICTION*h,s>0&&(p=!1,d=r*s*h),a>0&&(p=!1,f=l*a*h);const g=this.newGestureEvent(sn.Change);g.translationX=d,g.translationY=f,t.forEach(m=>m.dispatchEvent(g)),p||this.inertia(e,t,u,s,r,o+d,a,l,c+f)})}onTouchMove(e){const t=Date.now();for(let i=0,s=e.changedTouches.length;i<s;i++){const r=e.changedTouches.item(i);if(!this.activeTouches.hasOwnProperty(String(r.identifier))){console.warn("end of an UNKNOWN touch",r);continue}const o=this.activeTouches[r.identifier],a=this.newGestureEvent(sn.Change,o.initialTarget);a.translationX=r.pageX-xc(o.rollingPageX),a.translationY=r.pageY-xc(o.rollingPageY),a.pageX=r.pageX,a.pageY=r.pageY,this.dispatchEvent(a),o.rollingPageX.length>3&&(o.rollingPageX.shift(),o.rollingPageY.shift(),o.rollingTimestamps.shift()),o.rollingPageX.push(r.pageX),o.rollingPageY.push(r.pageY),o.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}};Mr.SCROLL_FRICTION=-.005,Mr.HOLD_DELAY=700,Mr.CLEAR_TAP_COUNT_TIME=400;let ao=Mr;rmt([gs],ao,"isTouchDevice",null);let bc=class extends ue{onclick(e,t){this._register(ge(e,Ae.CLICK,i=>t(new Iu(ut(e),i))))}onmousedown(e,t){this._register(ge(e,Ae.MOUSE_DOWN,i=>t(new Iu(ut(e),i))))}onmouseover(e,t){this._register(ge(e,Ae.MOUSE_OVER,i=>t(new Iu(ut(e),i))))}onmouseleave(e,t){this._register(ge(e,Ae.MOUSE_LEAVE,i=>t(new Iu(ut(e),i))))}onkeydown(e,t){this._register(ge(e,Ae.KEY_DOWN,i=>t(new Ji(i))))}onkeyup(e,t){this._register(ge(e,Ae.KEY_UP,i=>t(new Ji(i))))}oninput(e,t){this._register(ge(e,Ae.INPUT,t))}onblur(e,t){this._register(ge(e,Ae.BLUR,t))}onfocus(e,t){this._register(ge(e,Ae.FOCUS,t))}ignoreGesture(e){return ao.ignoreTarget(e)}};const tx=11;class omt extends bc{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",typeof e.top<"u"&&(this.bgDomNode.style.top="0px"),typeof e.left<"u"&&(this.bgDomNode.style.left="0px"),typeof e.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof e.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...ft.asClassNameArray(e.icon)),this.domNode.style.position="absolute",this.domNode.style.width=tx+"px",this.domNode.style.height=tx+"px",typeof e.top<"u"&&(this.domNode.style.top=e.top+"px"),typeof e.left<"u"&&(this.domNode.style.left=e.left+"px"),typeof e.bottom<"u"&&(this.domNode.style.bottom=e.bottom+"px"),typeof e.right<"u"&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new fL),this._register(os(this.bgDomNode,Ae.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._register(os(this.domNode,Ae.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._pointerdownRepeatTimer=this._register(new Iee),this._pointerdownScheduleRepeatTimer=this._register(new Zu)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,ut(e))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class amt extends ue{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new Zu)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var e;(e=this._domNode)==null||e.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)==null||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}const lmt=140;class DEe extends bc{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new amt(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new fL),this._shouldRender=!0,this.domNode=Pi(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(ge(this.domNode.domNode,Ae.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(e){const t=this._register(new omt(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,s){this.slider=Pi(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof s=="number"&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(ge(this.slider.domNode,Ae.POINTER_DOWN,r=>{r.button===0&&(r.preventDefault(),this._sliderPointerDown(r))})),this.onclick(this.slider.domNode,r=>{r.leftButton&&r.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),r=this._sliderPointerPosition(e);i<=r&&r<=s?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.offsetX=="number"&&typeof e.offsetY=="number")t=e.offsetX,i=e.offsetY;else{const r=ps(this.domNode.domNode);t=e.pageX-r.left,i=e.pageY-r.top}const s=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>{const o=this._sliderOrthogonalPointerPosition(r),a=Math.abs(o-i);if(qr&&a>lmt){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const c=this._sliderPointerPosition(r)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(c))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}const cmt=20;class ix{constructor(e,t,i,s,r,o){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=s,this._scrollSize=r,this._scrollPosition=o,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new ix(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t?(this._visibleSize=t,this._refreshComputedValues(),!0):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,s,r){const o=Math.max(0,i-e),a=Math.max(0,o-2*t),l=s>0&&s>i;if(!l)return{computedAvailableSize:Math.round(o),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const c=Math.round(Math.max(cmt,Math.floor(i*a/s))),u=(a-c)/(s-i),h=r*u;return{computedAvailableSize:Math.round(o),computedIsNeeded:l,computedSliderSize:Math.round(c),computedSliderRatio:u,computedSliderPosition:Math.round(h)}}_refreshComputedValues(){const e=ix._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return t<this._computedSliderPosition?i-=this._visibleSize:i+=this._visibleSize,i}getDesiredScrollPositionFromDelta(e){if(!this._computedIsNeeded)return 0;const t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}}class umt extends DEe{constructor(e,t,i){const s=e.getScrollDimensions(),r=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new ix(t.horizontalHasArrows?t.arrowSize:0,t.horizontal===2?0:t.horizontalScrollbarSize,t.vertical===2?0:t.verticalScrollbarSize,s.width,s.scrollWidth,r.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const o=(t.arrowSize-tx)/2,a=(t.horizontalScrollbarSize-tx)/2;this._createArrow({className:"scra",icon:Ne.scrollbarButtonLeft,top:a,left:o,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new Hy(null,1,0))}),this._createArrow({className:"scra",icon:Ne.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:o,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new Hy(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class hmt extends DEe{constructor(e,t,i){const s=e.getScrollDimensions(),r=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new ix(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,s.height,s.scrollHeight,r.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const o=(t.arrowSize-tx)/2,a=(t.verticalScrollbarSize-tx)/2;this._createArrow({className:"scra",icon:Ne.scrollbarButtonUp,top:o,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new Hy(null,0,1))}),this._createArrow({className:"scra",icon:Ne.scrollbarButtonDown,top:void 0,left:a,bottom:o,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new Hy(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class PF{constructor(e,t,i,s,r,o,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,s=s|0,r=r|0,o=o|0,a=a|0),this.rawScrollLeft=s,this.rawScrollTop=a,t<0&&(t=0),s+t>i&&(s=i-t),s<0&&(s=0),r<0&&(r=0),a+r>o&&(a=o-r),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=s,this.height=r,this.scrollHeight=o,this.scrollTop=a}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new PF(this._forceIntegerValues,typeof e.width<"u"?e.width:this.width,typeof e.scrollWidth<"u"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height<"u"?e.height:this.height,typeof e.scrollHeight<"u"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new PF(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft<"u"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop<"u"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,s=this.scrollWidth!==e.scrollWidth,r=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:s,scrollLeftChanged:r,heightChanged:o,scrollHeightChanged:a,scrollTopChanged:l}}}class gL extends ue{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new oe),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new PF(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var s;const i=this._state.withScrollDimensions(e,t);this._setState(i,!!this._smoothScrolling),(s=this._smoothScrolling)==null||s.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>"u"?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let s;t?s=new PT(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):s=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=s}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=PT.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class ahe{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function eW(n,e){const t=e-n;return function(i){return n+t*pmt(i)}}function dmt(n,e,t){return function(i){return i<t?n(i/t):e((i-t)/(1-t))}}class PT{constructor(e,t,i,s){this.from=e,this.to=t,this.duration=s,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(e,t,i){if(Math.abs(e-t)>2.5*i){let r,o;return e<t?(r=e+.75*i,o=t-.75*i):(r=e-.75*i,o=t+.75*i),dmt(eW(e,r),eW(o,t),.33)}return eW(e,t)}dispose(){this.animationFrameDisposable!==null&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(e){const t=(e-this.startTime)/this.duration;if(t<1){const i=this.scrollLeft(t),s=this.scrollTop(t);return new ahe(i,s,!1)}return new ahe(this.to.scrollLeft,this.to.scrollTop,!0)}combine(e,t,i){return PT.start(e,t,i)}static start(e,t,i){i=i+10;const s=Date.now()-10;return new PT(e,t,s,i)}}function fmt(n){return Math.pow(n,3)}function pmt(n){return 1-fmt(1-n)}const gmt=500,lhe=50;class mmt{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}const p3=class p3{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let e=1,t=0,i=1,s=this._rear;do{const r=s===this._front?e:Math.pow(2,-i);if(e-=r,t+=this._memory[s].score*r,s===this._front)break;s=(this._capacity+s-1)%this._capacity,i++}while(!0);return t<=.5}acceptStandardWheelEvent(e){if(SN){const t=ut(e.browserEvent),i=Jat(t);this.accept(Date.now(),e.deltaX*i,e.deltaY*i)}else this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,i){let s=null;const r=new mmt(e,t,i);this._front===-1&&this._rear===-1?(this._memory[0]=r,this._front=0,this._rear=0):(s=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=r),r.score=this._computeScore(r,s)}_computeScore(e,t){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let i=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(i+=.25),t){const s=Math.abs(e.deltaX),r=Math.abs(e.deltaY),o=Math.abs(t.deltaX),a=Math.abs(t.deltaY),l=Math.max(Math.min(s,o),1),c=Math.max(Math.min(r,a),1),u=Math.max(s,o),h=Math.max(r,a);u%l===0&&h%c===0&&(i-=.5)}return Math.min(Math.max(i,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}};p3.INSTANCE=new p3;let RF=p3;class pte extends bc{get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new oe),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new oe),e.style.overflow="hidden",this._options=_mt(t),this._scrollable=i,this._register(this._scrollable.onScroll(r=>{this._onWillScroll.fire(r),this._onDidScroll(r),this._onScroll.fire(r)}));const s={onMouseWheel:r=>this._onMouseWheel(r),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new hmt(this._scrollable,this._options,s)),this._horizontalScrollbar=this._register(new umt(this._scrollable,this._options,s)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=Pi(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=Pi(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=Pi(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,r=>this._onMouseOver(r)),this.onmouseleave(this._listenOnDomNode,r=>this._onMouseLeave(r)),this._hideTimeout=this._register(new Zu),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=Yi(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,ni&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){typeof e.handleMouseWheel<"u"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<"u"&&(this._options.horizontal=e.horizontal),typeof e.vertical<"u"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<"u"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new Hy(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Yi(this._mouseWheelToDispose),e)){const i=s=>{this._onMouseWheel(new Hy(s))};this._mouseWheelToDispose.push(ge(this._listenOnDomNode,Ae.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){var r;if((r=e.browserEvent)!=null&&r.defaultPrevented)return;const t=RF.INSTANCE;t.acceptStandardWheelEvent(e);let i=!1;if(e.deltaY||e.deltaX){let o=e.deltaY*this._options.mouseWheelScrollSensitivity,a=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&a+o===0?a=o=0:Math.abs(o)>=Math.abs(a)?a=0:o=0),this._options.flipAxes&&([o,a]=[a,o]);const l=!ni&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||l)&&!a&&(a=o,o=0),e.browserEvent&&e.browserEvent.altKey&&(a=a*this._options.fastScrollSensitivity,o=o*this._options.fastScrollSensitivity);const c=this._scrollable.getFutureScrollPosition();let u={};if(o){const h=lhe*o,d=c.scrollTop-(h<0?Math.floor(h):Math.ceil(h));this._verticalScrollbar.writeScrollPosition(u,d)}if(a){const h=lhe*a,d=c.scrollLeft-(h<0?Math.floor(h):Math.ceil(h));this._horizontalScrollbar.writeScrollPosition(u,d)}u=this._scrollable.validateScrollPosition(u),(c.scrollLeft!==u.scrollLeft||c.scrollTop!==u.scrollTop)&&(this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(u):this._scrollable.setScrollPositionNow(u),i=!0)}let s=i;!s&&this._options.alwaysConsumeMouseWheel&&(s=!0),!s&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(s=!0),s&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,s=i?" left":"",r=t?" top":"",o=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${s}`),this._topShadowDomNode.setClassName(`shadow${r}`),this._topLeftShadowDomNode.setClassName(`shadow${o}${r}${s}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),gmt)}}class NEe extends pte{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new gL({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>bl(ut(e),s)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class d8 extends pte{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class ON extends pte{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new gL({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>bl(ut(e),s)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll(s=>{s.scrollTopChanged&&(this._element.scrollTop=s.scrollTop),s.scrollLeftChanged&&(this._element.scrollLeft=s.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function _mt(n){const e={lazyRender:typeof n.lazyRender<"u"?n.lazyRender:!1,className:typeof n.className<"u"?n.className:"",useShadows:typeof n.useShadows<"u"?n.useShadows:!0,handleMouseWheel:typeof n.handleMouseWheel<"u"?n.handleMouseWheel:!0,flipAxes:typeof n.flipAxes<"u"?n.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof n.consumeMouseWheelIfScrollbarIsNeeded<"u"?n.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof n.alwaysConsumeMouseWheel<"u"?n.alwaysConsumeMouseWheel:!1,scrollYToX:typeof n.scrollYToX<"u"?n.scrollYToX:!1,mouseWheelScrollSensitivity:typeof n.mouseWheelScrollSensitivity<"u"?n.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof n.fastScrollSensitivity<"u"?n.fastScrollSensitivity:5,scrollPredominantAxis:typeof n.scrollPredominantAxis<"u"?n.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof n.mouseWheelSmoothScroll<"u"?n.mouseWheelSmoothScroll:!0,arrowSize:typeof n.arrowSize<"u"?n.arrowSize:11,listenOnDomNode:typeof n.listenOnDomNode<"u"?n.listenOnDomNode:null,horizontal:typeof n.horizontal<"u"?n.horizontal:1,horizontalScrollbarSize:typeof n.horizontalScrollbarSize<"u"?n.horizontalScrollbarSize:10,horizontalSliderSize:typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:0,horizontalHasArrows:typeof n.horizontalHasArrows<"u"?n.horizontalHasArrows:!1,vertical:typeof n.vertical<"u"?n.vertical:1,verticalScrollbarSize:typeof n.verticalScrollbarSize<"u"?n.verticalScrollbarSize:10,verticalHasArrows:typeof n.verticalHasArrows<"u"?n.verticalHasArrows:!1,verticalSliderSize:typeof n.verticalSliderSize<"u"?n.verticalSliderSize:0,scrollByPage:typeof n.scrollByPage<"u"?n.scrollByPage:!1};return e.horizontalSliderSize=typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof n.verticalSliderSize<"u"?n.verticalSliderSize:e.verticalScrollbarSize,ni&&(e.className+=" mac"),e}class gte extends RN{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._mouseOnOverflowWidgetsDomNode=!1,this._mouseOnViewDomNode=!1,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new Yr(this._context,i),this._mouseDownOperation=this._register(new vmt(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(a,l)=>this._createMouseTargetForView(a,l),a=>this._getMouseColumn(a))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(146).height;const s=new Ngt(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,a=>this._onContextMenu(a,!0))),this._register(s.onMouseMove(this.viewHelper.viewDomNode,a=>{this._mouseOnViewDomNode=!0,this._onMouseMoveOverView(a),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=ge(this.viewHelper.viewDomNode.ownerDocument,"mousemove",l=>{this.viewHelper.viewDomNode.contains(l.target)||(this._mouseOnViewDomNode=!1,setTimeout(()=>{this._mouseOnOverflowWidgetsDomNode||this._onMouseLeave(new u_(l,!1,this.viewHelper.viewDomNode))},0))}))})),this._register(s.onMouseUp(this.viewHelper.viewDomNode,a=>this._onMouseUp(a))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,a=>{this._mouseOnViewDomNode=!1,setTimeout(()=>{this._mouseOnOverflowWidgetsDomNode||this._onMouseLeave(a)},0)}));const r=this.viewHelper.overflowWidgetsDomNode;r&&(this._register(s.onMouseMove(r,a=>{var l;this._mouseOnOverflowWidgetsDomNode=!0,(l=this._mouseLeaveMonitor)==null||l.dispose(),this._mouseLeaveMonitor=null,this._onMouseMoveOverOverflowWidgetsDomNode(a)})),this._register(s.onMouseLeave(r,a=>{this._mouseOnOverflowWidgetsDomNode=!1,setTimeout(()=>{this._mouseOnViewDomNode||this._onMouseLeave(a)},0)})));let o=0;this._register(s.onPointerDown(this.viewHelper.viewDomNode,(a,l)=>{o=l})),this._register(ge(this.viewHelper.viewDomNode,Ae.POINTER_UP,a=>{this._mouseDownOperation.onPointerUp()})),this._register(s.onMouseDown(this.viewHelper.viewDomNode,a=>this._onMouseDown(a,o))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=RF.INSTANCE;let t=0,i=Mc.getZoomLevel(),s=!1,r=0;const o=l=>{if(this.viewController.emitMouseWheel(l),!this._context.configuration.options.get(76))return;const c=new Hy(l);if(e.acceptStandardWheelEvent(c),e.isPhysicalMouseWheel()){if(a(l)){const u=Mc.getZoomLevel(),h=c.deltaY>0?1:-1;Mc.setZoomLevel(u+h),c.preventDefault(),c.stopPropagation()}}else Date.now()-t>50&&(i=Mc.getZoomLevel(),s=a(l),r=0),t=Date.now(),r+=c.deltaY,s&&(Mc.setZoomLevel(i+r/5),c.preventDefault(),c.stopPropagation())};this._register(ge(this.viewHelper.viewDomNode,Ae.MOUSE_WHEEL,o,{capture:!0,passive:!1}));function a(l){return ni?(l.metaKey||l.ctrlKey)&&!l.shiftKey&&!l.altKey:l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(146)){const t=this._context.configuration.options.get(146).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const s=new SEe(e,t).toPageCoordinates(ut(this.viewHelper.viewDomNode)),r=hte(this.viewHelper.viewDomNode);if(s.y<r.y||s.y>r.y+r.height||s.x<r.x||s.x>r.x+r.width)return null;const o=dte(this.viewHelper.viewDomNode,r,s);return this.mouseTargetFactory.createMouseTargetForView(this.viewHelper.getLastRenderData(),r,s,o,null)}_createMouseTargetForView(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const s=jy(this.viewHelper.viewDomNode);s&&(i=s.elementsFromPoint(e.posx,e.posy).find(r=>this.viewHelper.viewDomNode.contains(r)))}return this.mouseTargetFactory.createMouseTargetForView(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_createMouseTargetForOverflowWidgetsDomNode(e){return this.mouseTargetFactory.createMouseTargetForOverflowWidgetsDomNode(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,e.target)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTargetForView(e,t)})}_onMouseMoveOverView(e){this._onMouseMove(e,this._createMouseTargetForView(e,!0))}_onMouseMoveOverOverflowWidgetsDomNode(e){this._onMouseMove(e,this._createMouseTargetForOverflowWidgetsDomNode(e))}_onMouseMove(e,t){this._shouldIgnoreMouseMoveEvent(e)||this.viewController.emitMouseMove({event:e,target:t})}_shouldIgnoreMouseMoveEvent(e){return this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!!(this._mouseDownOperation.isActive()||e.timestamp<this.lastMouseLeaveTime)}_onMouseLeave(e){this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),this.lastMouseLeaveTime=new Date().getTime(),this.viewController.emitMouseLeave({event:e,target:null})}_onMouseUp(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTargetForView(e,!0)})}_onMouseDown(e,t){const i=this._createMouseTargetForView(e,!0),s=i.type===6||i.type===7,r=i.type===2||i.type===3||i.type===4,o=i.type===3,a=this._context.configuration.options.get(110),l=i.type===8||i.type===5,c=i.type===9;let u=e.leftButton||e.middleButton;ni&&e.leftButton&&e.ctrlKey&&(u=!1);const h=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(u&&(s||o&&a))h(),this._mouseDownOperation.start(i.type,e,t);else if(r)e.preventDefault();else if(l){const d=i.detail;u&&this.viewHelper.shouldSuppressMouseDownOnViewZone(d.viewZoneId)&&(h(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else c&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(h(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class vmt extends ue{constructor(e,t,i,s,r,o){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=s,this._createMouseTarget=r,this._getMouseColumn=o,this._mouseMoveMonitor=this._register(new Pgt(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new bmt(this._context,this._viewHelper,this._mouseTargetFactory,(a,l,c)=>this._dispatchMouse(a,l,c))),this._mouseState=new jz,this._currentSelection=new nt(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13&&(t.outsidePosition==="above"||t.outsidePosition==="below")?this._topBottomDragScrolling.start(t,e):(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const s=this._findMousePosition(t,!0);if(!s||!s.position)return;this._mouseState.trySetCount(t.detail,s.position),t.detail=this._mouseState.count;const r=this._context.configuration.options;if(!r.get(92)&&r.get(35)&&!r.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&s.type===6&&s.position&&this._currentSelection.containsPosition(s.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,o=>this._onMouseDownThenMove(o),o=>{const a=this._findMousePosition(this._lastMouseEvent,!1);Op(o)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:a?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(s,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,o=>this._onMouseDownThenMove(o),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,s=this._context.viewLayout,r=this._getMouseColumn(e);if(e.posy<t.y){const a=t.y-e.posy,l=Math.max(s.getCurrentScrollTop()-a,0),c=Xy.getZoneAtCoord(this._context,l);if(c){const h=this._helpPositionJumpOverViewZone(c);if(h)return mo.createOutsideEditor(r,h,"above",a)}const u=s.getLineNumberAtVerticalOffset(l);return mo.createOutsideEditor(r,new se(u,1),"above",a)}if(e.posy>t.y+t.height){const a=e.posy-t.y-t.height,l=s.getCurrentScrollTop()+e.relativePos.y,c=Xy.getZoneAtCoord(this._context,l);if(c){const h=this._helpPositionJumpOverViewZone(c);if(h)return mo.createOutsideEditor(r,h,"below",a)}const u=s.getLineNumberAtVerticalOffset(l);return mo.createOutsideEditor(r,new se(u,i.getLineMaxColumn(u)),"below",a)}const o=s.getLineNumberAtVerticalOffset(s.getCurrentScrollTop()+e.relativePos.y);if(e.posx<t.x){const a=t.x-e.posx;return mo.createOutsideEditor(r,new se(o,1),"left",a)}if(e.posx>t.x+t.width){const a=e.posx-t.x-t.width;return mo.createOutsideEditor(r,new se(o,i.getLineMaxColumn(o)),"right",a)}return null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const s=this._createMouseTarget(e,t);if(!s.position)return null;if(s.type===8||s.type===5){const o=this._helpPositionJumpOverViewZone(s.detail);if(o)return mo.createViewZone(s.type,s.element,s.mouseColumn,o,s.detail)}return s}_helpPositionJumpOverViewZone(e){const t=new se(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,s=e.positionAfter;return i&&s?i.isBefore(t)?i:s:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class bmt extends ue{constructor(e,t,i,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new ymt(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class ymt extends ue{constructor(e,t,i,s,r,o){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._position=r,this._mouseEvent=o,this._lastTime=Date.now(),this._animationFrameDisposable=bl(ut(o.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(67),t=this._context.configuration.options.get(146).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(67),t=this._getScrollSpeed(),i=this._tick(),s=t*(i/1e3)*e,r=this._position.outsidePosition==="above"?-s:s;this._context.viewModel.viewLayout.deltaScrollNow(0,r),this._viewHelper.renderNow();const o=this._context.viewLayout.getLinesViewportData(),a=this._position.outsidePosition==="above"?o.startLineNumber:o.endLineNumber;let l;{const c=hte(this._viewHelper.viewDomNode),u=this._context.configuration.options.get(146).horizontalScrollbarHeight,h=new c8(this._mouseEvent.pos.x,c.y+c.height-u-.1),d=dte(this._viewHelper.viewDomNode,c,h);l=this._mouseTargetFactory.createMouseTargetForView(this._viewHelper.getLastRenderData(),c,h,d,null)}(!l.position||l.position.lineNumber!==a)&&(this._position.outsidePosition==="above"?l=mo.createOutsideEditor(this._position.mouseColumn,new se(a,1),"above",this._position.outsideDistance):l=mo.createOutsideEditor(this._position.mouseColumn,new se(a,this._context.viewModel.getLineMaxColumn(a)),"below",this._position.outsideDistance)),this._dispatchMouse(l,!0,2),this._animationFrameDisposable=bl(ut(l.element),()=>this._execute())}}const g3=class g3{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=new Date().getTime();i-this._lastSetMouseDownCountTime>g3.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}};g3.CLEAR_MOUSE_DOWN_COUNT_TIME=400;let jz=g3;class li{get event(){return this.emitter.event}constructor(e,t,i){const s=r=>this.emitter.fire(r);this.emitter=new oe({onWillAddFirstListener:()=>e.addEventListener(t,s,i),onDidRemoveLastListener:()=>e.removeEventListener(t,s,i)})}dispose(){this.emitter.dispose()}}const fC=class fC{constructor(e,t,i,s,r){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=s,this.newlineCountBeforeSelection=r}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e,t){const i=e.getValue(),s=e.getSelectionStart(),r=e.getSelectionEnd();let o;if(t){const a=i.substring(0,s),l=t.value.substring(0,t.selectionStart);a===l&&(o=t.newlineCountBeforeSelection)}return new fC(i,s,r,null,o)}collapseSelection(){return this.selectionStart===this.value.length?this:new fC(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var s,r,o,a;if(e<=this.selectionStart){const l=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(((s=this.selection)==null?void 0:s.getStartPosition())??null,l,-1)}if(e>=this.selectionEnd){const l=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(((r=this.selection)==null?void 0:r.getEndPosition())??null,l,1)}const t=this.value.substring(this.selectionStart,e);if(t.indexOf("…")===-1)return this._finishDeduceEditorPosition(((o=this.selection)==null?void 0:o.getStartPosition())??null,t,1);const i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(((a=this.selection)==null?void 0:a.getEndPosition())??null,i,-1)}_finishDeduceEditorPosition(e,t,i){let s=0,r=-1;for(;(r=t.indexOf(` +`,r+1))!==-1;)s++;return[e,i*t.length,s]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const s=Math.min(s_(e.value,t.value),e.selectionStart,t.selectionStart),r=Math.min(sF(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(s,e.value.length-r);const o=t.value.substring(s,t.value.length-r),a=e.selectionStart-s,l=e.selectionEnd-s,c=t.selectionStart-s,u=t.selectionEnd-s;if(c===u){const d=e.selectionStart-s;return{text:o,replacePrevCharCnt:d,replaceNextCharCnt:0,positionDelta:0}}const h=l-a;return{text:o,replacePrevCharCnt:h,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(s_(e.value,t.value),e.selectionEnd),s=Math.min(sF(e.value,t.value),e.value.length-e.selectionEnd),r=e.value.substring(i,e.value.length-s),o=t.value.substring(i,t.value.length-s);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:o,replacePrevCharCnt:a,replaceNextCharCnt:r.length-a,positionDelta:l-o.length}}};fC.EMPTY=new fC("",0,0,null,void 0);let _o=fC;class jw{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,s=i+1,r=i+t;return new O(s,1,r+1,1)}static fromEditorSelection(e,t,i,s){const o=jw._getPageOfLine(t.startLineNumber,i),a=jw._getRangeForPage(o,i),l=jw._getPageOfLine(t.endLineNumber,i),c=jw._getRangeForPage(l,i);let u=a.intersectRanges(new O(1,1,t.startLineNumber,t.startColumn));if(s&&e.getValueLengthInRange(u,1)>500){const _=e.modifyPosition(u.getEndPosition(),-500);u=O.fromPositions(_,u.getEndPosition())}const h=e.getValueInRange(u,1),d=e.getLineCount(),f=e.getLineMaxColumn(d);let p=c.intersectRanges(new O(t.endLineNumber,t.endColumn,d,f));if(s&&e.getValueLengthInRange(p,1)>500){const _=e.modifyPosition(p.getStartPosition(),500);p=O.fromPositions(p.getStartPosition(),_)}const g=e.getValueInRange(p,1);let m;if(o===l||o+1===l)m=e.getValueInRange(t,1);else{const _=a.intersectRanges(t),b=c.intersectRanges(t);m=e.getValueInRange(_,1)+"…"+e.getValueInRange(b,1)}return s&&m.length>2*500&&(m=m.substring(0,500)+"…"+m.substring(m.length-500,m.length)),new _o(h+m+g,h.length,h.length+m.length,t,u.endLineNumber-u.startLineNumber)}}var wmt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},che=function(n,e){return function(t,i){e(t,i,n)}},MF;(function(n){n.Tap="-monaco-textarea-synthetic-tap"})(MF||(MF={}));const qz={forceCopyWithSyntaxHighlighting:!1},m3=class m3{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}};m3.INSTANCE=new m3;let RT=m3;class Cmt{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||"";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}let Kz=class extends ue{get textAreaState(){return this._textAreaState}constructor(e,t,i,s,r,o){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=s,this._accessibilityService=r,this._logService=o,this._onFocus=this._register(new oe),this.onFocus=this._onFocus.event,this._onBlur=this._register(new oe),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new oe),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new oe),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new oe),this.onCut=this._onCut.event,this._onPaste=this._register(new oe),this.onPaste=this._onPaste.event,this._onType=this._register(new oe),this.onType=this._onType.event,this._onCompositionStart=this._register(new oe),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new oe),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new oe),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new oe),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new rr),this._asyncTriggerCut=this._register(new ji(()=>this._onCut.fire(),0)),this._textAreaState=_o.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(Oe.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new ji(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let a=null;this._register(this._textArea.onKeyDown(l=>{const c=new Ji(l);(c.keyCode===114||this._currentComposition&&c.keyCode===1)&&c.stopPropagation(),c.equals(9)&&c.preventDefault(),a=c,this._onKeyDown.fire(c)})),this._register(this._textArea.onKeyUp(l=>{const c=new Ji(l);this._onKeyUp.fire(c)})),this._register(this._textArea.onCompositionStart(l=>{const c=new Cmt;if(this._currentComposition){this._currentComposition=c;return}if(this._currentComposition=c,this._OS===2&&a&&a.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===l.data&&(a.code==="ArrowRight"||a.code==="ArrowLeft")){c.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:l.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:l.data});return}this._onCompositionStart.fire({data:l.data})})),this._register(this._textArea.onCompositionUpdate(l=>{const c=this._currentComposition;if(!c)return;if(this._browser.isAndroid){const h=_o.readFromTextArea(this._textArea,this._textAreaState),d=_o.deduceAndroidCompositionInput(this._textAreaState,h);this._textAreaState=h,this._onType.fire(d),this._onCompositionUpdate.fire(l);return}const u=c.handleCompositionUpdate(l.data);this._textAreaState=_o.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(u),this._onCompositionUpdate.fire(l)})),this._register(this._textArea.onCompositionEnd(l=>{const c=this._currentComposition;if(!c)return;if(this._currentComposition=null,this._browser.isAndroid){const h=_o.readFromTextArea(this._textArea,this._textAreaState),d=_o.deduceAndroidCompositionInput(this._textAreaState,h);this._textAreaState=h,this._onType.fire(d),this._onCompositionEnd.fire();return}const u=c.handleCompositionUpdate(l.data);this._textAreaState=_o.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(u),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const c=_o.readFromTextArea(this._textArea,this._textAreaState),u=_o.deduceInput(this._textAreaState,c,this._OS===2);u.replacePrevCharCnt===0&&u.text.length===1&&(Js(u.text.charCodeAt(0))||u.text.charCodeAt(0)===127)||(this._textAreaState=c,(u.text!==""||u.replacePrevCharCnt!==0||u.replaceNextCharCnt!==0||u.positionDelta!==0)&&this._onType.fire(u))})),this._register(this._textArea.onCut(l=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(l),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(l=>{this._ensureClipboardGetsEditorSelection(l)})),this._register(this._textArea.onPaste(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),l.preventDefault(),!l.clipboardData)return;let[c,u]=Gz.getTextData(l.clipboardData);c&&(u=u||RT.INSTANCE.get(c),this._onPaste.fire({text:c,metadata:u}))})),this._register(this._textArea.onFocus(()=>{const l=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!l&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new ji(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return ge(this._textArea.ownerDocument,"selectionchange",t=>{if(s1.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const i=Date.now(),s=i-e;if(e=i,s<5)return;const r=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),r<100||!this._textAreaState.selection)return;const o=this._textArea.getValue();if(this._textAreaState.value!==o)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const c=this._textAreaState.deduceEditorPosition(a),u=this._host.deduceModelPosition(c[0],c[1],c[2]),h=this._textAreaState.deduceEditorPosition(l),d=this._host.deduceModelPosition(h[0],h[1],h[2]),f=new nt(u.lineNumber,u.column,d.lineNumber,d.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${e})`),this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};RT.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,` +`):t.text,i),e.preventDefault(),e.clipboardData&&Gz.setTextData(e.clipboardData,t.text,t.html,i)}};Kz=wmt([che(4,xl),che(5,co)],Kz);const Gz={getTextData(n){const e=n.getData(rs.text);let t=null;const i=n.getData("vscode-editor-data");if(typeof i=="string")try{t=JSON.parse(i),t.version!==1&&(t=null)}catch{}return e.length===0&&t===null&&n.files.length>0?[Array.prototype.slice.call(n.files,0).map(r=>r.name).join(` +`),null]:[e,t]},setTextData(n,e,t,i){n.setData(rs.text,e),typeof t=="string"&&n.setData("text/html",t),n.setData("vscode-editor-data",JSON.stringify(i))}};class Smt extends ue{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new li(this._actual,"keydown")).event,this.onKeyUp=this._register(new li(this._actual,"keyup")).event,this.onCompositionStart=this._register(new li(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new li(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new li(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new li(this._actual,"beforeinput")).event,this.onInput=this._register(new li(this._actual,"input")).event,this.onCut=this._register(new li(this._actual,"cut")).event,this.onCopy=this._register(new li(this._actual,"copy")).event,this.onPaste=this._register(new li(this._actual,"paste")).event,this.onFocus=this._register(new li(this._actual,"focus")).event,this.onBlur=this._register(new li(this._actual,"blur")).event,this._onSyntheticTap=this._register(new oe),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>s1.onKeyDown())),this._register(this.onBeforeInput(()=>s1.onBeforeInput())),this._register(this.onInput(()=>s1.onInput())),this._register(this.onKeyUp(()=>s1.onKeyUp())),this._register(ge(this._actual,MF.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=jy(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?zr()===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const s=this._actual;let r=null;const o=jy(s);o?r=o.activeElement:r=zr();const a=ut(r),l=r===s,c=s.selectionStart,u=s.selectionEnd;if(l&&c===t&&u===i){tu&&a.parent!==a&&s.focus();return}if(l){this.setIgnoreSelectionChangeTime("setSelectionRange"),s.setSelectionRange(t,i),tu&&a.parent!==a&&s.focus();return}try{const h=vut(s);this.setIgnoreSelectionChangeTime("setSelectionRange"),s.focus(),s.setSelectionRange(t,i),but(s,h)}catch{}}}class xmt extends gte{constructor(e,t,i){super(e,t,i),this._register(ao.addTarget(this.viewHelper.linesContentDomNode)),this._register(ge(this.viewHelper.linesContentDomNode,sn.Tap,r=>this.onTap(r))),this._register(ge(this.viewHelper.linesContentDomNode,sn.Change,r=>this.onChange(r))),this._register(ge(this.viewHelper.linesContentDomNode,sn.Contextmenu,r=>this._onContextMenu(new u_(r,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(ge(this.viewHelper.linesContentDomNode,"pointerdown",r=>{const o=r.pointerType;if(o==="mouse"){this._lastPointerType="mouse";return}else o==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const s=new Agt(this.viewHelper.viewDomNode);this._register(s.onPointerMove(this.viewHelper.viewDomNode,r=>this._onMouseMoveOverView(r))),this._register(s.onPointerUp(this.viewHelper.viewDomNode,r=>this._onMouseUp(r))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,r=>this._onMouseLeave(r))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,(r,o)=>this._onMouseDown(r,o)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const i=this._createMouseTargetForView(new u_(e,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:i.type===6&&i.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e,t)}}class Lmt extends gte{constructor(e,t,i){super(e,t,i),this._register(ao.addTarget(this.viewHelper.linesContentDomNode)),this._register(ge(this.viewHelper.linesContentDomNode,sn.Tap,s=>this.onTap(s))),this._register(ge(this.viewHelper.linesContentDomNode,sn.Change,s=>this.onChange(s))),this._register(ge(this.viewHelper.linesContentDomNode,sn.Contextmenu,s=>this._onContextMenu(new u_(s,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTargetForView(new u_(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent("CustomEvent");i.initEvent(MF.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class Emt extends ue{constructor(e,t,i){super(),(Gh||plt&&xxe)&&hee.pointerEvents?this.handler=this._register(new xmt(e,t,i)):Gi.TouchEvent?this.handler=this._register(new Lmt(e,t,i)):this.handler=this._register(new gte(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class P0 extends RN{}const Xs=ri("themeService");function Gn(n){return{id:n}}function Xz(n){switch(n){case zc.DARK:return"vs-dark";case zc.HIGH_CONTRAST_DARK:return"hc-black";case zc.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const AEe={ThemingContribution:"base.contributions.theming"};class kmt{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new oe}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),lt(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}const PEe=new kmt;Vn.add(AEe.ThemingContribution,PEe);function au(n){return PEe.onColorThemeChange(n)}class Imt extends ue{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}const REe=U("editor.lineHighlightBackground",null,v("lineHighlight","Background color for the highlight of line at the cursor position.")),uhe=U("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:mi},v("lineHighlightBorderBox","Background color for the border around the line at the cursor position."));U("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},v("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:Cn,hcLight:Cn},v("rangeHighlightBorder","Background color of the border around highlighted ranges."));U("editor.symbolHighlightBackground",{dark:sg,light:sg,hcDark:null,hcLight:null},v("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:Cn,hcLight:Cn},v("symbolHighlightBorder","Background color of the border around highlighted symbols."));const f8=U("editorCursor.foreground",{dark:"#AEAFAD",light:Ce.black,hcDark:Ce.white,hcLight:"#0F4A85"},v("caret","Color of the editor cursor.")),mte=U("editorCursor.background",null,v("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),MEe=U("editorMultiCursor.primary.foreground",f8,v("editorMultiCursorPrimaryForeground","Color of the primary editor cursor when multiple cursors are present.")),Tmt=U("editorMultiCursor.primary.background",mte,v("editorMultiCursorPrimaryBackground","The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),OEe=U("editorMultiCursor.secondary.foreground",f8,v("editorMultiCursorSecondaryForeground","Color of secondary editor cursors when multiple cursors are present.")),Dmt=U("editorMultiCursor.secondary.background",mte,v("editorMultiCursorSecondaryBackground","The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),_te=U("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},v("editorWhitespaces","Color of whitespace characters in the editor.")),Nmt=U("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:Ce.white,hcLight:"#292929"},v("editorLineNumbers","Color of editor line numbers.")),Amt=U("editorIndentGuide.background",_te,v("editorIndentGuides","Color of the editor indentation guides."),!1,v("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),Pmt=U("editorIndentGuide.activeBackground",_te,v("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,v("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),FN=U("editorIndentGuide.background1",Amt,v("editorIndentGuides1","Color of the editor indentation guides (1).")),Rmt=U("editorIndentGuide.background2","#00000000",v("editorIndentGuides2","Color of the editor indentation guides (2).")),Mmt=U("editorIndentGuide.background3","#00000000",v("editorIndentGuides3","Color of the editor indentation guides (3).")),Omt=U("editorIndentGuide.background4","#00000000",v("editorIndentGuides4","Color of the editor indentation guides (4).")),Fmt=U("editorIndentGuide.background5","#00000000",v("editorIndentGuides5","Color of the editor indentation guides (5).")),Bmt=U("editorIndentGuide.background6","#00000000",v("editorIndentGuides6","Color of the editor indentation guides (6).")),BN=U("editorIndentGuide.activeBackground1",Pmt,v("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),Wmt=U("editorIndentGuide.activeBackground2","#00000000",v("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),Vmt=U("editorIndentGuide.activeBackground3","#00000000",v("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),Hmt=U("editorIndentGuide.activeBackground4","#00000000",v("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),$mt=U("editorIndentGuide.activeBackground5","#00000000",v("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),zmt=U("editorIndentGuide.activeBackground6","#00000000",v("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),Umt=U("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:Cn,hcLight:Cn},v("editorActiveLineNumber","Color of editor active line number"),!1,v("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));U("editorLineNumber.activeForeground",Umt,v("editorActiveLineNumber","Color of editor active line number"));const jmt=U("editorLineNumber.dimmedForeground",null,v("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."));U("editorRuler.foreground",{dark:"#5A5A5A",light:Ce.lightgrey,hcDark:Ce.white,hcLight:"#292929"},v("editorRuler","Color of the editor rulers."));U("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},v("editorCodeLensForeground","Foreground color of editor CodeLens"));U("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},v("editorBracketMatchBackground","Background color behind matching brackets"));U("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:mi,hcLight:mi},v("editorBracketMatchBorder","Color for matching brackets boxes"));const qmt=U("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},v("editorOverviewRulerBorder","Color of the overview ruler border.")),Kmt=U("editorOverviewRuler.background",null,v("editorOverviewRulerBackground","Background color of the editor overview ruler."));U("editorGutter.background",Jh,v("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers."));U("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:Ce.fromHex("#fff").transparent(.8),hcLight:mi},v("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor."));const Gmt=U("editorUnnecessaryCode.opacity",{dark:Ce.fromHex("#000a"),light:Ce.fromHex("#0007"),hcDark:null,hcLight:null},v("unnecessaryCodeOpacity",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));U("editorGhostText.border",{dark:null,light:null,hcDark:Ce.fromHex("#fff").transparent(.8),hcLight:Ce.fromHex("#292929").transparent(.8)},v("editorGhostTextBorder","Border color of ghost text in the editor."));const Xmt=U("editorGhostText.foreground",{dark:Ce.fromHex("#ffffff56"),light:Ce.fromHex("#0007"),hcDark:null,hcLight:null},v("editorGhostTextForeground","Foreground color of the ghost text in the editor."));U("editorGhostText.background",null,v("editorGhostTextBackground","Background color of the ghost text in the editor."));const Ymt=new Ce(new pi(0,122,204,.6)),FEe=U("editorOverviewRuler.rangeHighlightForeground",Ymt,v("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Zmt=U("editorOverviewRuler.errorForeground",{dark:new Ce(new pi(255,18,18,.7)),light:new Ce(new pi(255,18,18,.7)),hcDark:new Ce(new pi(255,50,50,1)),hcLight:"#B5200D"},v("overviewRuleError","Overview ruler marker color for errors.")),Qmt=U("editorOverviewRuler.warningForeground",{dark:$g,light:$g,hcDark:TT,hcLight:TT},v("overviewRuleWarning","Overview ruler marker color for warnings.")),Jmt=U("editorOverviewRuler.infoForeground",{dark:Kf,light:Kf,hcDark:DT,hcLight:DT},v("overviewRuleInfo","Overview ruler marker color for infos.")),BEe=U("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},v("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),WEe=U("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},v("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),VEe=U("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},v("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),HEe=U("editorBracketHighlight.foreground4","#00000000",v("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),$Ee=U("editorBracketHighlight.foreground5","#00000000",v("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),zEe=U("editorBracketHighlight.foreground6","#00000000",v("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),e1t=U("editorBracketHighlight.unexpectedBracket.foreground",{dark:new Ce(new pi(255,18,18,.8)),light:new Ce(new pi(255,18,18,.8)),hcDark:new Ce(new pi(255,50,50,1)),hcLight:""},v("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),t1t=U("editorBracketPairGuide.background1","#00000000",v("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),i1t=U("editorBracketPairGuide.background2","#00000000",v("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),n1t=U("editorBracketPairGuide.background3","#00000000",v("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),s1t=U("editorBracketPairGuide.background4","#00000000",v("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),r1t=U("editorBracketPairGuide.background5","#00000000",v("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),o1t=U("editorBracketPairGuide.background6","#00000000",v("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),a1t=U("editorBracketPairGuide.activeBackground1","#00000000",v("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),l1t=U("editorBracketPairGuide.activeBackground2","#00000000",v("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),c1t=U("editorBracketPairGuide.activeBackground3","#00000000",v("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),u1t=U("editorBracketPairGuide.activeBackground4","#00000000",v("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),h1t=U("editorBracketPairGuide.activeBackground5","#00000000",v("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),d1t=U("editorBracketPairGuide.activeBackground6","#00000000",v("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));U("editorUnicodeHighlight.border",$g,v("editorUnicodeHighlight.border","Border color used to highlight unicode characters."));U("editorUnicodeHighlight.background",Qft,v("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));au((n,e)=>{const t=n.getColor(Jh),i=n.getColor(REe),s=i&&!i.isTransparent()?i:t;s&&e.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${s}; }`)});const _3=class _3 extends P0{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new se(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(67);const t=e.get(68);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(96);const i=e.get(146);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new se(e,1));if(t.column!==1)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const s=Math.abs(this._lastCursorModelPosition.lineNumber-i);return s===0?'<span class="relative-current-line-number">'+i+"</span>":String(s)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===i||i%10===0)return String(i);const s=this._context.viewModel.getLineCount();return i===s?String(i):""}return String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=ra?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,r=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter(c=>!!c.options.lineNumberClassName);r.sort((c,u)=>O.compareRangesUsingEnds(c.range,u.range));let o=0;const a=this._context.viewModel.getLineCount(),l=[];for(let c=i;c<=s;c++){const u=c-i;let h=this._getLineRenderLineNumber(c),d="";for(;o<r.length&&r[o].range.endLineNumber<c;)o++;for(let f=o;f<r.length;f++){const{range:p,options:g}=r[f];p.startLineNumber<=c&&(d+=" "+g.lineNumberClassName)}if(!h&&!d){l[u]="";continue}c===a&&this._context.viewModel.getLineLength(c)===0&&(this._renderFinalNewline==="off"&&(h=""),this._renderFinalNewline==="dimmed"&&(d+=" dimmed-line-number")),c===this._activeLineNumber&&(d+=" active-line-number"),l[u]=`<div class="${_3.CLASS_NAME}${t}${d}" style="left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;">${h}</div>`}this._renderResult=l}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}};_3.CLASS_NAME="line-numbers";let OF=_3;au((n,e)=>{const t=n.getColor(Nmt),i=n.getColor(jmt);i?e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${i}; }`):t&&e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${t.transparent(.4)}; }`)});const pC=class pC extends Ll{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(146);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=Pi(document.createElement("div")),this._domNode.setClassName(pC.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=Pi(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(pC.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146);return this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}};pC.CLASS_NAME="glyph-margin",pC.OUTER_CLASS_NAME="margin";let FF=pC;const jC="monaco-mouse-cursor-text";let f1t=class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._tokenizationSupports.set(e,t),this.handleChange([e]),lt(()=>{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))})}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var s;(s=this._factories.get(e))==null||s.dispose();const i=new p1t(this,e,t);return this._factories.set(e,i),lt(()=>{const r=this._factories.get(e);!r||r!==i||(this._factories.delete(e),r.dispose())})}async getOrCreate(e){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(await i.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};class p1t extends ue{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}let MT=class{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}};class vte{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class p8{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}var il;(function(n){n[n.Increase=0]="Increase",n[n.Decrease=1]="Decrease"})(il||(il={}));var OT;(function(n){const e=new Map;e.set(0,Ne.symbolMethod),e.set(1,Ne.symbolFunction),e.set(2,Ne.symbolConstructor),e.set(3,Ne.symbolField),e.set(4,Ne.symbolVariable),e.set(5,Ne.symbolClass),e.set(6,Ne.symbolStruct),e.set(7,Ne.symbolInterface),e.set(8,Ne.symbolModule),e.set(9,Ne.symbolProperty),e.set(10,Ne.symbolEvent),e.set(11,Ne.symbolOperator),e.set(12,Ne.symbolUnit),e.set(13,Ne.symbolValue),e.set(15,Ne.symbolEnum),e.set(14,Ne.symbolConstant),e.set(15,Ne.symbolEnum),e.set(16,Ne.symbolEnumMember),e.set(17,Ne.symbolKeyword),e.set(27,Ne.symbolSnippet),e.set(18,Ne.symbolText),e.set(19,Ne.symbolColor),e.set(20,Ne.symbolFile),e.set(21,Ne.symbolReference),e.set(22,Ne.symbolCustomColor),e.set(23,Ne.symbolFolder),e.set(24,Ne.symbolTypeParameter),e.set(25,Ne.account),e.set(26,Ne.issues);function t(r){let o=e.get(r);return o||(console.info("No codicon found for CompletionItemKind "+r),o=Ne.symbolProperty),o}n.toIcon=t;const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26);function s(r,o){let a=i.get(r);return typeof a>"u"&&!o&&(a=9),a}n.fromString=s})(OT||(OT={}));var Hh;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(Hh||(Hh={}));class UEe{constructor(e,t,i,s){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=s}equals(e){return O.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var FT;(function(n){n[n.Automatic=0]="Automatic",n[n.PasteAs=1]="PasteAs"})(FT||(FT={}));var Af;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(Af||(Af={}));var BT;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(BT||(BT={}));function g1t(n){return n&&mt.isUri(n.uri)&&O.isIRange(n.range)&&(O.isIRange(n.originSelectionRange)||O.isIRange(n.targetSelectionRange))}const m1t={17:v("Array","array"),16:v("Boolean","boolean"),4:v("Class","class"),13:v("Constant","constant"),8:v("Constructor","constructor"),9:v("Enum","enumeration"),21:v("EnumMember","enumeration member"),23:v("Event","event"),7:v("Field","field"),0:v("File","file"),11:v("Function","function"),10:v("Interface","interface"),19:v("Key","key"),5:v("Method","method"),1:v("Module","module"),2:v("Namespace","namespace"),20:v("Null","null"),15:v("Number","number"),18:v("Object","object"),24:v("Operator","operator"),3:v("Package","package"),6:v("Property","property"),14:v("String","string"),22:v("Struct","struct"),25:v("TypeParameter","type parameter"),12:v("Variable","variable")};function _1t(n,e){return v("symbolAriaLabel","{0} ({1})",n,m1t[e])}var BF;(function(n){const e=new Map;e.set(0,Ne.symbolFile),e.set(1,Ne.symbolModule),e.set(2,Ne.symbolNamespace),e.set(3,Ne.symbolPackage),e.set(4,Ne.symbolClass),e.set(5,Ne.symbolMethod),e.set(6,Ne.symbolProperty),e.set(7,Ne.symbolField),e.set(8,Ne.symbolConstructor),e.set(9,Ne.symbolEnum),e.set(10,Ne.symbolInterface),e.set(11,Ne.symbolFunction),e.set(12,Ne.symbolVariable),e.set(13,Ne.symbolConstant),e.set(14,Ne.symbolString),e.set(15,Ne.symbolNumber),e.set(16,Ne.symbolBoolean),e.set(17,Ne.symbolArray),e.set(18,Ne.symbolObject),e.set(19,Ne.symbolKey),e.set(20,Ne.symbolNull),e.set(21,Ne.symbolEnumMember),e.set(22,Ne.symbolStruct),e.set(23,Ne.symbolEvent),e.set(24,Ne.symbolOperator),e.set(25,Ne.symbolTypeParameter);function t(i){let s=e.get(i);return s||(console.info("No codicon found for SymbolKind "+i),s=Ne.symbolProperty),s}n.toIcon=t})(BF||(BF={}));const _u=class _u{static fromValue(e){switch(e){case"comment":return _u.Comment;case"imports":return _u.Imports;case"region":return _u.Region}return new _u(e)}constructor(e){this.value=e}};_u.Comment=new _u("comment"),_u.Imports=new _u("imports"),_u.Region=new _u("region");let h_=_u;var Yz;(function(n){n[n.AIGenerated=1]="AIGenerated"})(Yz||(Yz={}));var WT;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(WT||(WT={}));var Zz;(function(n){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}n.is=e})(Zz||(Zz={}));var WF;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(WF||(WF={}));class v1t{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(e=>{e&&e.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const Xn=new f1t;var VF;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(VF||(VF={}));class b1t{constructor(){this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}const Ak=new b1t,Ni=ri("keybindingService");var y1t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},hhe=function(n,e){return function(t,i){e(t,i,n)}};class w1t{constructor(e,t,i,s,r){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=s,this.distanceToModelLineEnd=r,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new se(this.modelLineNumber,this.distanceToModelLineStart+1),i=new se(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const tW=tu;let Qz=class extends Ll{constructor(e,t,i,s,r){super(e),this._keybindingService=s,this._instantiationService=r,this._primaryCursorPosition=new se(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const o=this._context.configuration.options,a=o.get(146);this._setAccessibilityOptions(o),this._contentLeft=a.contentLeft,this._contentWidth=a.contentWidth,this._contentHeight=a.height,this._fontInfo=o.get(50),this._lineHeight=o.get(67),this._emptySelectionClipboard=o.get(37),this._copyWithSyntaxHighlighting=o.get(25),this._visibleTextArea=null,this._selections=[new nt(1,1,1,1)],this._modelSelections=[new nt(1,1,1,1)],this._lastRenderPosition=null,this.textArea=Pi(document.createElement("textarea")),ed.write(this.textArea,7),this.textArea.setClassName(`inputarea ${jC}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:l}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${l*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(o)),this.textArea.setAttribute("aria-required",o.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(o.get(125))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",v("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",o.get(92)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=Pi(document.createElement("div")),this.textAreaCover.setPosition("absolute");const c={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:d=>this._context.viewModel.getLineMaxColumn(d),getValueInRange:(d,f)=>this._context.viewModel.getValueInRange(d,f),getValueLengthInRange:(d,f)=>this._context.viewModel.getValueLengthInRange(d,f),modifyPosition:(d,f)=>this._context.viewModel.modifyPosition(d,f)},u={getDataToCopy:()=>{const d=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,qr),f=this._context.viewModel.model.getEOL(),p=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),g=Array.isArray(d)?d:null,m=Array.isArray(d)?d.join(f):d;let _,b=null;if(qz.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&m.length<65536){const w=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);w&&(_=w.html,b=w.mode)}return{isFromEmptySelection:p,multicursorText:g,text:m,html:_,mode:b}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const d=this._selections[0];if(ni&&d.isEmpty()){const p=d.getStartPosition();let g=this._getWordBeforePosition(p);if(g.length===0&&(g=this._getCharacterBeforePosition(p)),g.length>0)return new _o(g,g.length,g.length,O.fromPositions(p),0)}if(ni&&!d.isEmpty()&&c.getValueLengthInRange(d,0)<500){const p=c.getValueInRange(d,0);return new _o(p,0,p.length,d,0)}if(Fg&&!d.isEmpty()){const p="vscode-placeholder";return new _o(p,0,p.length,null,void 0)}return _o.EMPTY}if(qce){const d=this._selections[0];if(d.isEmpty()){const f=d.getStartPosition(),[p,g]=this._getAndroidWordAtPosition(f);if(p.length>0)return new _o(p,g,g,O.fromPositions(f),0)}return _o.EMPTY}return jw.fromEditorSelection(c,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(d,f,p)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(d,f,p)},h=this._register(new Smt(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(Kz,u,h,cl,{isAndroid:qce,isChrome:SN,isFirefox:tu,isSafari:Fg})),this._register(this._textAreaInput.onKeyDown(d=>{this._viewController.emitKeyDown(d)})),this._register(this._textAreaInput.onKeyUp(d=>{this._viewController.emitKeyUp(d)})),this._register(this._textAreaInput.onPaste(d=>{let f=!1,p=null,g=null;d.metadata&&(f=this._emptySelectionClipboard&&!!d.metadata.isFromEmptySelection,p=typeof d.metadata.multicursorText<"u"?d.metadata.multicursorText:null,g=d.metadata.mode),this._viewController.paste(d.text,f,p,g)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(d=>{d.replacePrevCharCnt||d.replaceNextCharCnt||d.positionDelta?this._viewController.compositionType(d.text,d.replacePrevCharCnt,d.replaceNextCharCnt,d.positionDelta):this._viewController.type(d.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(d=>{this._viewController.setSelection(d)})),this._register(this._textAreaInput.onCompositionStart(d=>{const f=this.textArea.domNode,p=this._modelSelections[0],{distanceToModelLineStart:g,widthOfHiddenTextBefore:m}=(()=>{const b=f.value.substring(0,Math.min(f.selectionStart,f.selectionEnd)),w=b.lastIndexOf(` +`),C=b.substring(w+1),S=C.lastIndexOf(" "),x=C.length-S-1,k=p.getStartPosition(),L=Math.min(k.column-1,x),E=k.column-1-L,A=C.substring(0,C.length-L),{tabSize:I}=this._context.viewModel.model.getOptions(),T=C1t(this.textArea.domNode.ownerDocument,A,this._fontInfo,I);return{distanceToModelLineStart:E,widthOfHiddenTextBefore:T}})(),{distanceToModelLineEnd:_}=(()=>{const b=f.value.substring(Math.max(f.selectionStart,f.selectionEnd)),w=b.indexOf(` +`),C=w===-1?b:b.substring(0,w),S=C.indexOf(" "),x=S===-1?C.length:C.length-S-1,k=p.getEndPosition(),L=Math.min(this._context.viewModel.model.getLineMaxColumn(k.lineNumber)-k.column,x);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(k.lineNumber)-k.column-L}})();this._context.viewModel.revealRange("keyboard",!0,O.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new w1t(this._context,p.startLineNumber,g,m,_),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${jC} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(d=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${jC}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(Ak.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),s=iu(t,[]);let r=!0,o=e.column,a=!0,l=e.column,c=0;for(;c<50&&(r||a);){if(r&&o<=1&&(r=!1),r){const u=i.charCodeAt(o-2);s.get(u)!==0?r=!1:o--}if(a&&l>i.length&&(a=!1),a){const u=i.charCodeAt(l-1);s.get(u)!==0?a=!1:l++}c++}return[i.substring(o-1,l-1),e.column-o]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=iu(this._context.configuration.options.get(132),[]);let s=e.column,r=0;for(;s>1;){const o=t.charCodeAt(s-2);if(i.get(o)!==0||r>50)return t.substring(s-1,e.column-1);r++,s--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!Js(i.charCodeAt(0)))return i}return""}_getAriaLabel(e){var i,s,r;if(e.get(2)===1){const o=(i=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))==null?void 0:i.getAriaLabel(),a=(s=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))==null?void 0:s.getAriaLabel(),l=(r=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))==null?void 0:r.getAriaLabel(),c=v("accessibilityModeOff","The editor is not accessible at this time.");return o?v("accessibilityOffAriaLabel","{0} To enable screen reader optimized mode, use {1}",c,o):a?v("accessibilityOffAriaLabelNoKb","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",c,a):l?v("accessibilityOffAriaLabelNoKbs","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",c,l):c}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===gd.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const s=e.get(146).wrappingColumn;if(s!==-1&&this._accessibilitySupport!==1){const r=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(s*r.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=tW?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(67),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:s}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${s*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("aria-required",t.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(125))),(e.hasChanged(34)||e.hasChanged(92))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!Ak.enabled||e.get(34)&&e.get(92)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(e){var t;this._primaryCursorPosition=new se(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),(t=this._visibleTextArea)==null||t.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){if(this._visibleTextArea){const i=this._visibleTextArea.visibleTextareaStart,s=this._visibleTextArea.visibleTextareaEnd,r=this._visibleTextArea.startPosition,o=this._visibleTextArea.endPosition;if(r&&o&&i&&s&&s.left>=this._scrollLeft&&i.left<=this._scrollLeft+this._contentWidth){const a=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,l=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let c=this._visibleTextArea.widthOfHiddenLineTextBefore,u=this._contentLeft+i.left-this._scrollLeft,h=s.left-i.left+1;if(u<this._contentLeft){const _=this._contentLeft-u;u+=_,c+=_,h-=_}h>this._contentWidth&&(h=this._contentWidth);const d=this._context.viewModel.getViewLineData(r.lineNumber),f=d.tokens.findTokenIndexAtOffset(r.column-1),p=d.tokens.findTokenIndexAtOffset(o.column-1),g=f===p,m=this._visibleTextArea.definePresentation(g?d.tokens.getPresentation(f):null);this.textArea.domNode.scrollTop=l*this._lineHeight,this.textArea.domNode.scrollLeft=c,this._doRender({lastRenderPosition:null,top:a,left:u,width:h,height:this._lineHeight,useCover:!1,color:(Xn.getColorMap()||[])[m.foreground],italic:m.italic,bold:m.bold,underline:m.underline,strikethrough:m.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(t<0||t>this._contentHeight){this._renderAtTopLeft();return}if(ni||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const i=this._textAreaInput.textAreaState.newlineCountBeforeSelection??this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=i*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:tW?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(` +`,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:tW?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;Tr(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?Ce.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const s=this._context.configuration.options;s.get(57)?i.setClassName("monaco-editor-background textAreaCover "+FF.OUTER_CLASS_NAME):s.get(68).renderType!==0?i.setClassName("monaco-editor-background textAreaCover "+OF.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}};Qz=y1t([hhe(3,Ni),hhe(4,ct)],Qz);function C1t(n,e,t,i){if(e.length===0)return 0;const s=n.createElement("div");s.style.position="absolute",s.style.top="-50000px",s.style.width="50000px";const r=n.createElement("span");Tr(r,t),r.style.whiteSpace="pre",r.style.tabSize=`${i*t.spaceWidth}px`,r.append(e),s.appendChild(r),n.body.appendChild(s);const o=r.offsetWidth;return s.remove(),o}class S1t{constructor(e,t,i,s){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=s}paste(e,t,i,s){this.commandDelegate.paste(e,t,i,s)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,s){this.commandDelegate.compositionType(e,t,i,s)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){lr.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new se(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(78)){case"altKey":return e.altKey;case"ctrlKey":return e.ctrlKey;case"metaKey":return e.metaKey;default:return!1}}_hasNonMulticursorModifier(e){switch(this.configuration.options.get(78)){case"altKey":return e.ctrlKey||e.metaKey;case"ctrlKey":return e.altKey||e.metaKey;case"metaKey":return e.ctrlKey||e.altKey;default:return!1}}dispatchMouse(e){const t=this.configuration.options,i=ra&&t.get(108),s=t.get(22);e.middleButton&&!i?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position,e.revealType):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount>=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):s?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){lr.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){lr.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),lr.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),lr.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){lr.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){lr.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){lr.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){lr.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){lr.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){lr.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){lr.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){lr.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){lr.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}function tm(n,e){var i;const t=globalThis.MonacoEnvironment;if(t!=null&&t.createTrustedTypesPolicy)try{return t.createTrustedTypesPolicy(n,e)}catch(s){Nt(s);return}try{return(i=globalThis.trustedTypes)==null?void 0:i.createPolicy(n,e)}catch(s){Nt(s);return}}class jEe{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Li("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),s=this.getEndLineNumber();if(t<i){const l=t-e+1;return this._rendLineNumberStart-=l,null}if(e>s)return null;let r=0,o=0;for(let l=i;l<=s;l++){const c=l-this._rendLineNumberStart;e<=l&&l<=t&&(o===0?(r=c,o=1):o++)}if(e<i){let l=0;t<i?l=t-e+1:l=i-e,this._rendLineNumberStart-=l}return this._lines.splice(r,o)}onLinesChanged(e,t){const i=e+t-1;if(this.getCount()===0)return!1;const s=this.getStartLineNumber(),r=this.getEndLineNumber();let o=!1;for(let a=e;a<=i;a++)a>=s&&a<=r&&(this._lines[a-this._rendLineNumberStart].onContentChanged(),o=!0);return o}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,s=this.getStartLineNumber(),r=this.getEndLineNumber();if(e<=s)return this._rendLineNumberStart+=i,null;if(e>r)return null;if(i+e>r)return this._lines.splice(e-this._rendLineNumberStart,r-e+1);const o=[];for(let h=0;h<i;h++)o[h]=this._createLine();const a=e-this._rendLineNumberStart,l=this._lines.slice(0,a),c=this._lines.slice(a,this._lines.length-i),u=this._lines.slice(this._lines.length-i,this._lines.length);return this._lines=l.concat(o).concat(c),u}onTokensChanged(e){if(this.getCount()===0)return!1;const t=this.getStartLineNumber(),i=this.getEndLineNumber();let s=!1;for(let r=0,o=e.length;r<o;r++){const a=e[r];if(a.toLineNumber<t||a.fromLineNumber>i)continue;const l=Math.max(t,a.fromLineNumber),c=Math.min(i,a.toLineNumber);for(let u=l;u<=c;u++){const h=u-this._rendLineNumberStart;this._lines[h].onTokensChanged(),s=!0}}return s}}class qEe{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new jEe(()=>this._host.createVisibleLine())}_createDomNode(){const e=Pi(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(146)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,s=t.length;i<s;i++){const r=t[i].getDomNode();r==null||r.remove()}return!0}onLinesInserted(e){const t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,s=t.length;i<s;i++){const r=t[i].getDomNode();r==null||r.remove()}return!0}onScrollChanged(e){return e.scrollTopChanged}onTokensChanged(e){return this._linesCollection.onTokensChanged(e.ranges)}onZonesChanged(e){return!0}getStartLineNumber(){return this._linesCollection.getStartLineNumber()}getEndLineNumber(){return this._linesCollection.getEndLineNumber()}getVisibleLine(e){return this._linesCollection.getLine(e)}renderLines(e){const t=this._linesCollection._get(),i=new Jz(this.domNode.domNode,this._host,e),s={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},r=i.render(s,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(r.rendLineNumberStart,r.lines)}}const Pp=class Pp{constructor(e,t,i){this.domNode=e,this.host=t,this.viewportData=i}render(e,t,i,s){const r={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(r.rendLineNumberStart+r.linesLength-1<t||i<r.rendLineNumberStart){r.rendLineNumberStart=t,r.linesLength=i-t+1,r.lines=[];for(let o=t;o<=i;o++)r.lines[o-t]=this.host.createVisibleLine();return this._finishRendering(r,!0,s),r}if(this._renderUntouchedLines(r,Math.max(t-r.rendLineNumberStart,0),Math.min(i-r.rendLineNumberStart,r.linesLength-1),s,t),r.rendLineNumberStart>t){const o=t,a=Math.min(i,r.rendLineNumberStart-1);o<=a&&(this._insertLinesBefore(r,o,a,s,t),r.linesLength+=a-o+1)}else if(r.rendLineNumberStart<t){const o=Math.min(r.linesLength,t-r.rendLineNumberStart);o>0&&(this._removeLinesBefore(r,o),r.linesLength-=o)}if(r.rendLineNumberStart=t,r.rendLineNumberStart+r.linesLength-1<i){const o=r.rendLineNumberStart+r.linesLength,a=i;o<=a&&(this._insertLinesAfter(r,o,a,s,t),r.linesLength+=a-o+1)}else if(r.rendLineNumberStart+r.linesLength-1>i){const o=Math.max(0,i-r.rendLineNumberStart+1),l=r.linesLength-1-o+1;l>0&&(this._removeLinesAfter(r,l),r.linesLength-=l)}return this._finishRendering(r,!1,s),r}_renderUntouchedLines(e,t,i,s,r){const o=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const c=o+l;a[l].layoutLine(c,s[c-r],this.viewportData.lineHeight)}}_insertLinesBefore(e,t,i,s,r){const o=[];let a=0;for(let l=t;l<=i;l++)o[a++]=this.host.createVisibleLine();e.lines=o.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i<t;i++){const s=e.lines[i].getDomNode();s==null||s.remove()}e.lines.splice(0,t)}_insertLinesAfter(e,t,i,s,r){const o=[];let a=0;for(let l=t;l<=i;l++)o[a++]=this.host.createVisibleLine();e.lines=e.lines.concat(o)}_removeLinesAfter(e,t){const i=e.linesLength-t;for(let s=0;s<t;s++){const r=e.lines[i+s].getDomNode();r==null||r.remove()}e.lines.splice(i,t)}_finishRenderingNewLines(e,t,i,s){Pp._ttPolicy&&(i=Pp._ttPolicy.createHTML(i));const r=this.domNode.lastChild;t||!r?this.domNode.innerHTML=i:r.insertAdjacentHTML("afterend",i);let o=this.domNode.lastChild;for(let a=e.linesLength-1;a>=0;a--){const l=e.lines[a];s[a]&&(l.setDomNode(o),o=o.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const s=document.createElement("div");Pp._ttPolicy&&(t=Pp._ttPolicy.createHTML(t)),s.innerHTML=t;for(let r=0;r<e.linesLength;r++){const o=e.lines[r];if(i[r]){const a=s.firstChild,l=o.getDomNode();l.parentNode.replaceChild(a,l),o.setDomNode(a)}}}_finishRendering(e,t,i){const s=Pp._sb,r=e.linesLength,o=e.lines,a=e.rendLineNumberStart,l=[];{s.reset();let c=!1;for(let u=0;u<r;u++){const h=o[u];l[u]=!1,!(h.getDomNode()||!h.renderLine(u+a,i[u],this.viewportData.lineHeight,this.viewportData,s))&&(l[u]=!0,c=!0)}c&&this._finishRenderingNewLines(e,t,s.build(),l)}{s.reset();let c=!1;const u=[];for(let h=0;h<r;h++){const d=o[h];u[h]=!1,!(l[h]||!d.renderLine(h+a,i[h],this.viewportData.lineHeight,this.viewportData,s))&&(u[h]=!0,c=!0)}c&&this._finishRenderingInvalidLines(e,s.build(),u)}}};Pp._ttPolicy=tm("editorViewLayer",{createHTML:e=>e}),Pp._sb=new uL(1e5);let Jz=Pp;class KEe extends Ll{constructor(e){super(e),this._visibleLines=new qEe(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);Tr(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;e<t;e++)if(this._dynamicOverlays[e].shouldRender())return!0;return!1}dispose(){super.dispose();for(let e=0,t=this._dynamicOverlays.length;e<t;e++)this._dynamicOverlays[e].dispose();this._dynamicOverlays=[]}getDomNode(){return this.domNode}createVisibleLine(){return new x1t(this._dynamicOverlays)}addDynamicOverlay(e){this._dynamicOverlays.push(e)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e);const i=this._context.configuration.options.get(50);return Tr(this.domNode,i),!0}onFlushed(e){return this._visibleLines.onFlushed(e)}onFocusChanged(e){return this._isFocused=e.isFocused,!0}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onScrollChanged(e){return this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._visibleLines.onZonesChanged(e)}prepareRender(e){const t=this._dynamicOverlays.filter(i=>i.shouldRender());for(let i=0,s=t.length;i<s;i++){const r=t[i];r.prepareRender(e),r.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class x1t{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=Pi(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,i,s,r){let o="";for(let a=0,l=this._dynamicOverlays.length;a<l;a++){const c=this._dynamicOverlays[a];o+=c.render(s.startLineNumber,e)}return this._renderedContent===o?!1:(this._renderedContent=o,r.appendString('<div style="top:'),r.appendString(String(t)),r.appendString("px;height:"),r.appendString(String(i)),r.appendString('px;">'),r.appendString(o),r.appendString("</div>"),!0)}layoutLine(e,t,i){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(i))}}class L1t extends KEe{constructor(e){super(e);const i=this._context.configuration.options.get(146);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(146);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class E1t extends KEe{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(146);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),Tr(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;Tr(this.domNode,t.get(50));const i=t.get(146);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class g8{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){var t;(t=this.onKeyDown)==null||t.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)==null||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)==null||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)==null||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return g8.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i={...e};return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),(i.type===5||i.type===8)&&(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new se(e.afterLineNumber,1)).lineNumber}}}class k1t extends Ll{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=Pi(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const i=this._context.configuration.options.get(146),s=i.contentWidth-i.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);const r=i.contentLeft;return this.contentLeft!==r&&(this.contentLeft=r,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){let t=0;const i=e.getDecorationsInViewport();for(const s of i){if(!s.options.blockClassName)continue;let r=this.blocks[t];r||(r=this.blocks[t]=Pi(document.createElement("div")),this.domNode.appendChild(r));let o,a;s.options.blockIsAfterEnd?(o=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!1),a=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0)):(o=e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!0),a=s.range.isEmpty()&&!s.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0));const[l,c,u,h]=s.options.blockPadding??[0,0,0,0];r.setClassName("blockDecorations-block "+s.options.blockClassName),r.setLeft(this.contentLeft-h),r.setWidth(this.contentWidth+h+c),r.setTop(o-e.scrollTop-l),r.setHeight(a-o+l+u),t++}for(let s=t;s<this.blocks.length;s++)this.blocks[s].domNode.remove();this.blocks.length=t}}class I1t extends Ll{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=Pi(document.createElement("div")),ed.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=Pi(document.createElement("div")),ed.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(e);return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLineMappingChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(e){return this._updateAnchorsViewPositions(),!0}onLinesInserted(e){return this._updateAnchorsViewPositions(),!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}_updateAnchorsViewPositions(){const e=Object.keys(this._widgets);for(const t of e)this._widgets[t].updateAnchorViewPosition()}addWidget(e){const t=new T1t(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(e,t,i,s,r){this._widgets[e.getId()].setPosition(t,i,s,r),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const s=i.domNode.domNode;s.remove(),s.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return this._widgets.hasOwnProperty(e)?this._widgets[e].suppressMouseDown:!1}onBeforeRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(e)}prepareRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(e)}render(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(e)}}class T1t{constructor(e,t,i){this._primaryAnchor=new lE(null,null),this._secondaryAnchor=new lE(null,null),this._context=e,this._viewDomNode=t,this._actual=i,this.domNode=Pi(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const s=this._context.configuration.options,r=s.get(146);this._fixedOverflowWidgets=s.get(42),this._contentWidth=r.contentWidth,this._contentLeft=r.contentLeft,this._lineHeight=s.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){const t=this._context.configuration.options;if(this._lineHeight=t.get(67),e.hasChanged(146)){const i=t.get(146);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,i){this._affinity=e,this._primaryAnchor=s(t,this._context.viewModel,this._affinity),this._secondaryAnchor=s(i,this._context.viewModel,this._affinity);function s(r,o,a){if(!r)return new lE(null,null);const l=o.model.validatePosition(r);if(o.coordinatesConverter.modelPositionIsVisible(l)){const c=o.coordinatesConverter.convertModelPositionToViewPosition(l,a??void 0);return new lE(r,c)}return new lE(r,null)}}_getMaxWidth(){const e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?(t==null?void 0:t.innerWidth)||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,i,s){this._setPosition(s,e,t),this._preference=i,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,s){const r=e.top,o=r,a=e.top+e.height,l=s.viewportHeight-a,c=r-i,u=o>=i,h=a,d=l>=i;let f=e.left;return f+t>s.scrollLeft+s.viewportWidth&&(f=s.scrollLeft+s.viewportWidth-t),f<s.scrollLeft&&(f=s.scrollLeft),{fitsAbove:u,aboveTop:c,fitsBelow:d,belowTop:h,left:f}}_layoutHorizontalSegmentInPage(e,t,i,s){const a=Math.max(15,t.left-s),l=Math.min(t.left+t.width+s,e.width-15),u=this._viewDomNode.domNode.ownerDocument.defaultView;let h=t.left+i-((u==null?void 0:u.scrollX)??0);if(h+s>l){const d=h-(l-s);h-=d,i-=d}if(h<a){const d=h-a;h-=d,i-=d}return[i,h]}_layoutBoxInPage(e,t,i,s){const r=e.top-i,o=e.top+e.height,a=ps(this._viewDomNode.domNode),l=this._viewDomNode.domNode.ownerDocument,c=l.defaultView,u=a.top+r-((c==null?void 0:c.scrollY)??0),h=a.top+o-((c==null?void 0:c.scrollY)??0),d=o_(l.body),[f,p]=this._layoutHorizontalSegmentInPage(d,a,e.left-s.scrollLeft+this._contentLeft,t),g=22,m=22,_=u>=g,b=h+i<=d.height-m;return this._fixedOverflowWidgets?{fitsAbove:_,aboveTop:Math.max(u,g),fitsBelow:b,belowTop:h,left:p}:{fitsAbove:_,aboveTop:r,fitsBelow:b,belowTop:o,left:f}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new cE(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var o,a;const t=r(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),i=((o=this._secondaryAnchor.viewPosition)==null?void 0:o.lineNumber)===((a=this._primaryAnchor.viewPosition)==null?void 0:a.lineNumber)?this._secondaryAnchor.viewPosition:null,s=r(i,this._affinity,this._lineHeight);return{primary:t,secondary:s};function r(l,c,u){if(!l)return null;const h=e.visibleRangeForPosition(l);if(!h)return null;const d=l.column===1&&c===3?0:h.left,f=e.getVerticalOffsetForLineNumber(l.lineNumber)-e.scrollTop;return new dhe(f,d,u)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const s=this._context.configuration.options.get(50);let r=t.left;return r<e.left?r=Math.max(r,e.left-i+s.typicalFullwidthCharacterWidth):r=Math.min(r,e.left+i-s.typicalFullwidthCharacterWidth),new dhe(e.top,r,e.height)}_prepareRenderWidget(e){if(!this._preference||this._preference.length===0)return null;const{primary:t,secondary:i}=this._getAnchorsCoordinates(e);if(!t)return{kind:"offViewport",preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(this._cachedDomNodeOffsetWidth===-1||this._cachedDomNodeOffsetHeight===-1){let o=null;if(typeof this._actual.beforeRender=="function"&&(o=iW(this._actual.beforeRender,this._actual)),o)this._cachedDomNodeOffsetWidth=o.width,this._cachedDomNodeOffsetHeight=o.height;else{const l=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(l.width),this._cachedDomNodeOffsetHeight=Math.round(l.height)}}const s=this._reduceAnchorCoordinates(t,i,this._cachedDomNodeOffsetWidth);let r;this.allowEditorOverflow?r=this._layoutBoxInPage(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):r=this._layoutBoxInViewport(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let o=1;o<=2;o++)for(const a of this._preference)if(a===1){if(!r)return null;if(o===2||r.fitsAbove)return{kind:"inViewport",coordinate:new cE(r.aboveTop,r.left),position:1}}else if(a===2){if(!r)return null;if(o===2||r.fitsBelow)return{kind:"inViewport",coordinate:new cE(r.belowTop,r.left),position:2}}else return this.allowEditorOverflow?{kind:"inViewport",coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new cE(s.top,s.left)),position:0}:{kind:"inViewport",coordinate:new cE(s.top,s.left),position:0};return null}onBeforeRender(e){!this._primaryAnchor.viewPosition||!this._preference||this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber||this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){var t;if(!this._renderData||this._renderData.kind==="offViewport"){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,((t=this._renderData)==null?void 0:t.kind)==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&iW(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&iW(this._actual.afterRender,this._actual,this._renderData.position)}}class lE{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class cE{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class dhe{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function iW(n,e,...t){try{return n.call(e,...t)}catch{return null}}class GEe extends P0{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(146);this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new nt(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=new Set;for(const r of this._selections)t.add(r.positionLineNumber);const i=Array.from(t);i.sort((r,o)=>r-o),In(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const s=this._selections.every(r=>r.isEmpty());return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146);return this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=[];for(let o=t;o<=i;o++){const a=o-t;s[a]=""}if(this._wordWrap){const o=this._renderOne(e,!1);for(const a of this._cursorLineNumbers){const l=this._context.viewModel.coordinatesConverter,c=l.convertViewPositionToModelPosition(new se(a,1)).lineNumber,u=l.convertModelPositionToViewPosition(new se(c,1)).lineNumber,h=l.convertModelPositionToViewPosition(new se(c,this._context.viewModel.model.getLineMaxColumn(c))).lineNumber,d=Math.max(u,t),f=Math.min(h,i);for(let p=d;p<=f;p++){const g=p-t;s[g]=o}}}const r=this._renderOne(e,!0);for(const o of this._cursorLineNumbers){if(o<t||o>i)continue;const a=o-t;s[a]=r}this._renderData=s}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class D1t extends GEe{_renderOne(e,t){return`<div class="${"current-line"+(this._shouldRenderInMargin()?" current-line-both":"")+(t?" current-line-exact":"")}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class N1t extends GEe{_renderOne(e,t){return`<div class="${"current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")+(this._shouldRenderInMargin()&&t?" current-line-exact-margin":"")}" style="width:${this._contentLeft}px"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}au((n,e)=>{const t=n.getColor(REe);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||n.defines(uhe)){const i=n.getColor(uhe);i&&(e.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${i}; }`),Vh(n.type)&&(e.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}});class A1t extends P0{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],s=0;for(let l=0,c=t.length;l<c;l++){const u=t[l];u.options.className&&(i[s++]=u)}i=i.sort((l,c)=>{if(l.options.zIndex<c.options.zIndex)return-1;if(l.options.zIndex>c.options.zIndex)return 1;const u=l.options.className,h=c.options.className;return u<h?-1:u>h?1:O.compareRangesUsingStarts(l.range,c.range)});const r=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber,a=[];for(let l=r;l<=o;l++){const c=l-r;a[c]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const s=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber;for(let o=0,a=t.length;o<a;o++){const l=t[o];if(!l.options.isWholeLine)continue;const c='<div class="cdr '+l.options.className+'" style="left:0;width:100%;"></div>',u=Math.max(l.range.startLineNumber,s),h=Math.min(l.range.endLineNumber,r);for(let d=u;d<=h;d++){const f=d-s;i[f]+=c}}}_renderNormalDecorations(e,t,i){const s=e.visibleRange.startLineNumber;let r=null,o=!1,a=null,l=!1;for(let c=0,u=t.length;c<u;c++){const h=t[c];if(h.options.isWholeLine)continue;const d=h.options.className,f=!!h.options.showIfCollapsed;let p=h.range;if(f&&p.endColumn===1&&p.endLineNumber!==p.startLineNumber&&(p=new O(p.startLineNumber,p.startColumn,p.endLineNumber-1,this._context.viewModel.getLineMaxColumn(p.endLineNumber-1))),r===d&&o===f&&O.areIntersectingOrTouching(a,p)){a=O.plusRange(a,p);continue}r!==null&&this._renderNormalDecoration(e,a,r,l,o,s,i),r=d,o=f,a=p,l=h.options.shouldFillLineOnLineBreak??!1}r!==null&&this._renderNormalDecoration(e,a,r,l,o,s,i)}_renderNormalDecoration(e,t,i,s,r,o,a){const l=e.linesVisibleRangesForRange(t,i==="findMatch");if(l)for(let c=0,u=l.length;c<u;c++){const h=l[c];if(h.outsideRenderedLine)continue;const d=h.lineNumber-o;if(r&&h.ranges.length===1){const f=h.ranges[0];if(f.width<this._typicalHalfwidthCharacterWidth){const p=Math.round(f.left+f.width/2),g=Math.max(0,Math.round(p-this._typicalHalfwidthCharacterWidth/2));h.ranges[0]=new u8(g,this._typicalHalfwidthCharacterWidth)}}for(let f=0,p=h.ranges.length;f<p;f++){const g=s&&h.continuesOnNextLine&&p===1,m=h.ranges[f],_='<div class="cdr '+i+'" style="left:'+String(m.left)+"px;width:"+(g?"100%;":String(m.width)+"px;")+'"></div>';a[d]+=_}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class P1t extends Ll{constructor(e,t,i,s){super(e);const r=this._context.configuration.options,o=r.get(104),a=r.get(75),l=r.get(40),c=r.get(107),u={listenOnDomNode:i.domNode,className:"editor-scrollable "+Xz(e.theme.type),useShadows:!1,lazyRender:!0,vertical:o.vertical,horizontal:o.horizontal,verticalHasArrows:o.verticalHasArrows,horizontalHasArrows:o.horizontalHasArrows,verticalScrollbarSize:o.verticalScrollbarSize,verticalSliderSize:o.verticalSliderSize,horizontalScrollbarSize:o.horizontalScrollbarSize,horizontalSliderSize:o.horizontalSliderSize,handleMouseWheel:o.handleMouseWheel,alwaysConsumeMouseWheel:o.alwaysConsumeMouseWheel,arrowSize:o.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:c,scrollByPage:o.scrollByPage};this.scrollbar=this._register(new d8(t.domNode,u,this._context.viewLayout.getScrollable())),ed.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=Pi(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const h=(d,f,p)=>{const g={};{const m=d.scrollTop;m&&(g.scrollTop=this._context.viewLayout.getCurrentScrollTop()+m,d.scrollTop=0)}if(p){const m=d.scrollLeft;m&&(g.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+m,d.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(g,1)};this._register(ge(i.domNode,"scroll",d=>h(i.domNode,!0,!0))),this._register(ge(t.domNode,"scroll",d=>h(t.domNode,!0,!1))),this._register(ge(s.domNode,"scroll",d=>h(s.domNode,!0,!1))),this._register(ge(this.scrollbarDomNode.domNode,"scroll",d=>h(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(146);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(73).side==="right"?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(104)||e.hasChanged(75)||e.hasChanged(40)){const t=this._context.configuration.options,i=t.get(104),s=t.get(75),r=t.get(40),o=t.get(107),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:r,scrollPredominantAxis:o};this.scrollbar.updateOptions(a)}return e.hasChanged(146)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+Xz(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}var cc;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(cc||(cc={}));var Uu;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(Uu||(Uu={}));var Tu;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(Tu||(Tu={}));class gM{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),e.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,e.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!e.insertSpaces,this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=!!e.trimAutoWhitespace,this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&lc(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class VT{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function R1t(n){return n&&typeof n.read=="function"}class nW{constructor(e,t,i,s,r,o){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=s,this.isAutoWhitespaceEdit=r,this._isTracked=o}}class M1t{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class O1t{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function XEe(n){return!n.isTooLargeForSyncing()&&!n.isForSimpleWidget}class eU{constructor(e,t,i,s,r){this.startLineNumber=e,this.endLineNumber=t,this.className=i,this.tooltip=s,this._decorationToRenderBrand=void 0,this.zIndex=r??0}}class F1t{constructor(e,t,i){this.className=e,this.zIndex=t,this.tooltip=i}}class B1t{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class YEe extends P0{_render(e,t,i){const s=[];for(let a=e;a<=t;a++){const l=a-e;s[l]=new B1t}if(i.length===0)return s;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.className<l.className?-1:1);let r=null,o=0;for(let a=0,l=i.length;a<l;a++){const c=i[a],u=c.className,h=c.zIndex;let d=Math.max(c.startLineNumber,e)-e;const f=Math.min(c.endLineNumber,t)-e;r===u?(d=Math.max(o+1,d),o=Math.max(o,f)):(r=u,o=f);for(let p=d;p<=o;p++)s[p].add(new F1t(u,h,c.tooltip))}return s}}class W1t extends Ll{constructor(e){super(e),this._widgets={},this._context=e;const t=this._context.configuration.options,i=t.get(146);this.domNode=Pi(document.createElement("div")),this.domNode.setClassName("glyph-margin-widgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146);return this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}addWidget(e){const t=Pi(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:e.getPosition(),domNode:t,renderInfo:null},t.setPosition("absolute"),t.setDisplay("none"),t.setAttribute("widgetId",e.getId()),this.domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference.lane===t.lane&&i.preference.zIndex===t.zIndex&&O.equalsRange(i.preference.range,t.range)?!1:(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){const t=e.getId();if(this._widgets[t]){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){var o;const i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,r=e.getDecorationsInViewport();for(const a of r){const l=a.options.glyphMarginClassName;if(!l)continue;const c=Math.max(a.range.startLineNumber,i),u=Math.min(a.range.endLineNumber,s),h=((o=a.options.glyphMargin)==null?void 0:o.position)??Uu.Center,d=a.options.zIndex??0;for(let f=c;f<=u;f++){const p=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new se(f,0)),g=this._context.viewModel.glyphLanes.getLanesAtLine(p.lineNumber).indexOf(h);t.push(new V1t(f,g,d,l))}}}_collectWidgetBasedGlyphRenderRequest(e,t){const i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(const r of Object.values(this._widgets)){const o=r.preference.range,{startLineNumber:a,endLineNumber:l}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(O.lift(o));if(!a||!l||l<i||a>s)continue;const c=Math.max(a,i),u=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new se(c,0)),h=this._context.viewModel.glyphLanes.getLanesAtLine(u.lineNumber).indexOf(r.preference.lane);t.push(new H1t(c,h,r.preference.zIndex,r))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((i,s)=>i.lineNumber===s.lineNumber?i.laneIndex===s.laneIndex?i.zIndex===s.zIndex?s.type===i.type?i.type===0&&s.type===0?i.className<s.className?-1:1:0:s.type-i.type:s.zIndex-i.zIndex:i.laneIndex-s.laneIndex:i.lineNumber-s.lineNumber),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(const s of Object.values(this._widgets))s.renderInfo=null;const t=new Hg(this._collectSortedGlyphRenderRequests(e)),i=[];for(;t.length>0;){const s=t.peek();if(!s)break;const r=t.takeWhile(a=>a.lineNumber===s.lineNumber&&a.laneIndex===s.laneIndex);if(!r||r.length===0)break;const o=r[0];if(o.type===0){const a=[];for(const l of r){if(l.zIndex!==o.zIndex||l.type!==o.type)break;(a.length===0||a[a.length-1]!==l.className)&&a.push(l.className)}i.push(o.accept(a.join(" ")))}else o.widget.renderInfo={lineNumber:o.lineNumber,laneIndex:o.laneIndex}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const i of Object.values(this._widgets))i.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(!i.renderInfo)i.domNode.setDisplay("none");else{const s=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],r=this._glyphMarginLeft+i.renderInfo.laneIndex*this._lineHeight;i.domNode.setDisplay("block"),i.domNode.setTop(s),i.domNode.setLeft(r),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}for(let i=0;i<this._decorationGlyphsToRender.length;i++){const s=this._decorationGlyphsToRender[i],r=e.viewportData.relativeVerticalOffset[s.lineNumber-e.viewportData.startLineNumber],o=this._glyphMarginLeft+s.laneIndex*this._lineHeight;let a;i<this._managedDomNodes.length?a=this._managedDomNodes[i]:(a=Pi(document.createElement("div")),this._managedDomNodes.push(a),this.domNode.appendChild(a)),a.setClassName("cgmr codicon "+s.combinedClassName),a.setPosition("absolute"),a.setTop(r),a.setLeft(o),a.setWidth(t),a.setHeight(this._lineHeight)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}}}class V1t{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.className=s,this.type=0}accept(e){return new $1t(this.lineNumber,this.laneIndex,e)}}class H1t{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.widget=s,this.type=1}}class $1t{constructor(e,t,i){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=i}}function HT(n,e){const t=z1t(n,e);if(t!==-1)return n[t]}function z1t(n,e,t=n.length-1){for(let i=t;i>=0;i--){const s=n[i];if(e(s))return i}return-1}function nx(n,e){const t=$T(n,e);return t===-1?void 0:n[t]}function $T(n,e,t=0,i=n.length){let s=t,r=i;for(;s<r;){const o=Math.floor((s+r)/2);e(n[o])?s=o+1:r=o}return s-1}function U1t(n,e){const t=zT(n,e);return t===n.length?void 0:n[t]}function zT(n,e,t=0,i=n.length){let s=t,r=i;for(;s<r;){const o=Math.floor((s+r)/2);e(n[o])?r=o:s=o+1}return s}const v3=class v3{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(v3.assertInvariants){if(this._prevFindLastPredicate){for(const i of this._array)if(this._prevFindLastPredicate(i)&&!e(i))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=e}const t=$T(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,t===-1?void 0:this._array[t]}};v3.assertInvariants=!1;let HF=v3;function bte(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i<n.length;i++){const s=n[i];e(s,t)>0&&(t=s)}return t}function j1t(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i<n.length;i++){const s=n[i];e(s,t)>=0&&(t=s)}return t}function q1t(n,e){return bte(n,(t,i)=>-e(t,i))}function K1t(n,e){if(n.length===0)return-1;let t=0;for(let i=1;i<n.length;i++){const s=n[i];e(s,n[t])>0&&(t=i)}return t}function G1t(n,e){for(const t of n){const i=e(t);if(i!==void 0)return i}}class ZEe extends ue{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function m8(n,e){let t=0,i=0;const s=n.length;for(;i<s;){const r=n.charCodeAt(i);if(r===32)t++;else if(r===9)t=t-t%e+e;else break;i++}return i===s?-1:t}var Lb;(function(n){n[n.Disabled=0]="Disabled",n[n.EnabledForActive=1]="EnabledForActive",n[n.Enabled=2]="Enabled"})(Lb||(Lb={}));class sb{constructor(e,t,i,s,r,o){if(this.visibleColumn=e,this.column=t,this.className=i,this.horizontalLine=s,this.forWrappedLinesAfterColumn=r,this.forWrappedLinesBeforeOrAtColumn=o,e!==-1==(t!==-1))throw new Error}}class Pk{constructor(e,t){this.top=e,this.endColumn=t}}class X1t extends ZEe{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return m8(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,i){this.assertNotDisposed();const s=this.textModel.getLineCount();if(e<1||e>s)throw new Li("Illegal value for lineNumber");const r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,o=!!(r&&r.offSide);let a=-2,l=-1,c=-2,u=-1;const h=k=>{if(a!==-1&&(a===-2||a>k-1)){a=-1,l=-1;for(let L=k-2;L>=0;L--){const E=this._computeIndentLevel(L);if(E>=0){a=L,l=E;break}}}if(c===-2){c=-1,u=-1;for(let L=k;L<s;L++){const E=this._computeIndentLevel(L);if(E>=0){c=L,u=E;break}}}};let d=-2,f=-1,p=-2,g=-1;const m=k=>{if(d===-2){d=-1,f=-1;for(let L=k-2;L>=0;L--){const E=this._computeIndentLevel(L);if(E>=0){d=L,f=E;break}}}if(p!==-1&&(p===-2||p<k-1)){p=-1,g=-1;for(let L=k;L<s;L++){const E=this._computeIndentLevel(L);if(E>=0){p=L,g=E;break}}}};let _=0,b=!0,w=0,C=!0,S=0,x=0;for(let k=0;b||C;k++){const L=e-k,E=e+k;k>1&&(L<1||L<t)&&(b=!1),k>1&&(E>s||E>i)&&(C=!1),k>5e4&&(b=!1,C=!1);let A=-1;if(b&&L>=1){const T=this._computeIndentLevel(L-1);T>=0?(c=L-1,u=T,A=Math.ceil(T/this.textModel.getOptions().indentSize)):(h(L),A=this._getIndentLevelForWhitespaceLine(o,l,u))}let I=-1;if(C&&E<=s){const T=this._computeIndentLevel(E-1);T>=0?(d=E-1,f=T,I=Math.ceil(T/this.textModel.getOptions().indentSize)):(m(E),I=this._getIndentLevelForWhitespaceLine(o,f,g))}if(k===0){x=A;continue}if(k===1){if(E<=s&&I>=0&&x+1===I){b=!1,_=E,w=E,S=I;continue}if(L>=1&&A>=0&&A-1===x){C=!1,_=L,w=L,S=A;continue}if(_=e,w=e,S=x,S===0)return{startLineNumber:_,endLineNumber:w,indent:S}}b&&(A>=S?_=L:b=!1),C&&(I>=S?w=E:C=!1)}return{startLineNumber:_,endLineNumber:w,indent:S}}getLinesBracketGuides(e,t,i,s){var h;const r=[];for(let d=e;d<=t;d++)r.push([]);const o=!0,a=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new O(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let l;if(i&&a.length>0){const d=(e<=i.lineNumber&&i.lineNumber<=t?a:this.textModel.bracketPairs.getBracketPairsInRange(O.fromPositions(i)).toArray()).filter(f=>O.strictContainsPosition(f.range,i));l=(h=HT(d,f=>o))==null?void 0:h.range}const c=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,u=new QEe;for(const d of a){if(!d.closingBracketRange)continue;const f=l&&d.range.equalsRange(l);if(!f&&!s.includeInactive)continue;const p=u.getInlineClassName(d.nestingLevel,d.nestingLevelOfEqualBracketType,c)+(s.highlightActive&&f?" "+u.activeClassName:""),g=d.openingBracketRange.getStartPosition(),m=d.closingBracketRange.getStartPosition(),_=s.horizontalGuides===Lb.Enabled||s.horizontalGuides===Lb.EnabledForActive&&f;if(d.range.startLineNumber===d.range.endLineNumber){_&&r[d.range.startLineNumber-e].push(new sb(-1,d.openingBracketRange.getEndPosition().column,p,new Pk(!1,m.column),-1,-1));continue}const b=this.getVisibleColumnFromPosition(m),w=this.getVisibleColumnFromPosition(d.openingBracketRange.getStartPosition()),C=Math.min(w,b,d.minVisibleColumnIndentation+1);let S=!1;Io(this.textModel.getLineContent(d.closingBracketRange.startLineNumber))<d.closingBracketRange.startColumn-1&&(S=!0);const L=Math.max(g.lineNumber,e),E=Math.min(m.lineNumber,t),A=S?1:0;for(let I=L;I<E+A;I++)r[I-e].push(new sb(C,-1,p,null,I===g.lineNumber?g.column:-1,I===m.lineNumber?m.column:-1));_&&(g.lineNumber>=e&&w>C&&r[g.lineNumber-e].push(new sb(C,-1,p,new Pk(!1,g.column),-1,-1)),m.lineNumber<=t&&b>C&&r[m.lineNumber-e].push(new sb(C,-1,p,new Pk(!S,m.column),-1,-1)))}for(const d of r)d.sort((f,p)=>f.visibleColumn-p.visibleColumn);return r}getVisibleColumnFromPosition(e){return Vs.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const s=this.textModel.getOptions(),r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,o=!!(r&&r.offSide),a=new Array(t-e+1);let l=-2,c=-1,u=-2,h=-1;for(let d=e;d<=t;d++){const f=d-e,p=this._computeIndentLevel(d-1);if(p>=0){l=d-1,c=p,a[f]=Math.ceil(p/s.indentSize);continue}if(l===-2){l=-1,c=-1;for(let g=d-2;g>=0;g--){const m=this._computeIndentLevel(g);if(m>=0){l=g,c=m;break}}}if(u!==-1&&(u===-2||u<d-1)){u=-1,h=-1;for(let g=d;g<i;g++){const m=this._computeIndentLevel(g);if(m>=0){u=g,h=m;break}}}a[f]=this._getIndentLevelForWhitespaceLine(o,c,h)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const s=this.textModel.getOptions();return t===-1||i===-1?0:t<i?1+Math.floor(t/s.indentSize):t===i||e?Math.ceil(i/s.indentSize):1+Math.floor(i/s.indentSize)}}class QEe{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,i){return this.getInlineClassNameOfLevel(i?t:e)}getInlineClassNameOfLevel(e){return`bracket-indent-guide lvl-${e%30}`}}class Y1t extends P0{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,i=t.get(147),s=t.get(50);this._spaceWidth=s.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(147),s=t.get(50);return this._spaceWidth=s.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){var s;const i=e.selections[0].getPosition();return(s=this._primaryPosition)!=null&&s.equals(i)?!1:(this._primaryPosition=i,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){var l,c;if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=e.scrollWidth,r=this._primaryPosition,o=this.getGuidesByLine(t,Math.min(i+1,this._context.viewModel.getLineCount()),r),a=[];for(let u=t;u<=i;u++){const h=u-t,d=o[h];let f="";const p=((l=e.visibleRangeForPosition(new se(u,1)))==null?void 0:l.left)??0;for(const g of d){const m=g.column===-1?p+(g.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new se(u,g.column)).left;if(m>s||this._maxIndentLeft>0&&m>this._maxIndentLeft)break;const _=g.horizontalLine?g.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",b=g.horizontalLine?(((c=e.visibleRangeForPosition(new se(u,g.horizontalLine.endColumn)))==null?void 0:c.left)??m+this._spaceWidth)-m:this._spaceWidth;f+=`<div class="core-guide ${g.className} ${_}" style="left:${m}px;width:${b}px"></div>`}a[h]=f}this._renderResult=a}getGuidesByLine(e,t,i){const s=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?Lb.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?Lb.EnabledForActive:Lb.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,r=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let o=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&i){const h=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);o=h.startLineNumber,a=h.endLineNumber,l=h.indent}const{indentSize:c}=this._context.viewModel.model.getOptions(),u=[];for(let h=e;h<=t;h++){const d=new Array;u.push(d);const f=s?s[h-e]:[],p=new Hg(f),g=r?r[h-e]:0;for(let m=1;m<=g;m++){const _=(m-1)*c+1,b=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||f.length===0)&&o<=h&&h<=a&&m===l;d.push(...p.takeWhile(C=>C.visibleColumn<_)||[]);const w=p.peek();(!w||w.visibleColumn!==_||w.horizontalLine)&&d.push(new sb(_,-1,`core-guide-indent lvl-${(m-1)%30}`+(b?" indent-active":""),null,-1,-1))}d.push(...p.takeWhile(m=>!0)||[])}return u}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function rw(n){if(!(n&&n.isTransparent()))return n}au((n,e)=>{const t=[{bracketColor:BEe,guideColor:t1t,guideColorActive:a1t},{bracketColor:WEe,guideColor:i1t,guideColorActive:l1t},{bracketColor:VEe,guideColor:n1t,guideColorActive:c1t},{bracketColor:HEe,guideColor:s1t,guideColorActive:u1t},{bracketColor:$Ee,guideColor:r1t,guideColorActive:h1t},{bracketColor:zEe,guideColor:o1t,guideColorActive:d1t}],i=new QEe,s=[{indentColor:FN,indentColorActive:BN},{indentColor:Rmt,indentColorActive:Wmt},{indentColor:Mmt,indentColorActive:Vmt},{indentColor:Omt,indentColorActive:Hmt},{indentColor:Fmt,indentColorActive:$mt},{indentColor:Bmt,indentColorActive:zmt}],r=t.map(a=>{const l=n.getColor(a.bracketColor),c=n.getColor(a.guideColor),u=n.getColor(a.guideColorActive),h=rw(rw(c)??(l==null?void 0:l.transparent(.3))),d=rw(rw(u)??l);if(!(!h||!d))return{guideColor:h,guideColorActive:d}}).filter(Nf),o=s.map(a=>{const l=n.getColor(a.indentColor),c=n.getColor(a.indentColorActive),u=rw(l),h=rw(c);if(!(!u||!h))return{indentColor:u,indentColorActive:h}}).filter(Nf);if(r.length>0){for(let a=0;a<30;a++){const l=r[a%r.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),e.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),e.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),e.addRule(`.monaco-editor .vertical.${i.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${i.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${i.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(o.length>0){for(let a=0;a<30;a++){const l=o[a%o.length];e.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${l.indentColor}; --indent-color-active: ${l.indentColorActive}; }`)}e.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),e.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}});class sW{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class Z1t{constructor(){this._currentVisibleRange=new O(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class Q1t{constructor(e,t,i,s,r,o,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=s,this.startScrollTop=r,this.stopScrollTop=o,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class J1t{constructor(e,t,i,s,r){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=s,this.scrollType=r,this.type="selections";let o=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,c=t.length;l<c;l++){const u=t[l];o=Math.min(o,u.startLineNumber),a=Math.max(a,u.endLineNumber)}this.minLineNumber=o,this.maxLineNumber=a}}const b3=class b3 extends Ll{constructor(e,t){super(e),this._linesContent=t,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new qEe(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration,s=this._context.configuration.options,r=s.get(50),o=s.get(147);this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._isViewportWrapping=o.isViewportWrapping,this._revealHorizontalRightPadding=s.get(101),this._cursorSurroundingLines=s.get(29),this._cursorSurroundingLinesStyle=s.get(30),this._canUseLayerHinting=!s.get(32),this._viewLineOptions=new she(i,this._context.theme.type),ed.write(this.domNode,8),this.domNode.setClassName(`view-lines ${jC}`),Tr(this.domNode,r),this._maxLineWidth=0,this._asyncUpdateLineWidths=new ji(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new ji(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new Z1t,this._horizontalRevealRequest=null,this._stickyScrollEnabled=s.get(116).enabled,this._maxNumberStickyLines=s.get(116).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new qp(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(147)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),s=t.get(147);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=t.get(101),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(116).enabled,this._maxNumberStickyLines=t.get(116).maxLineCount,Tr(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(146)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new she(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let r=i;r<=s;r++)this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=!1;for(let r=t;r<=i;r++)s=this._visibleLines.getVisibleLine(r).onSelectionChanged()||s;return s}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let s=t;s<=i;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new Q1t(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new J1t(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const r=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,r),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>i)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const s=this._getLineNumberFor(i);if(s===-1||s<1||s>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(s)===1)return new se(s,1);const r=this._visibleLines.getStartLineNumber(),o=this._visibleLines.getEndLineNumber();if(s<r||s>o)return null;let a=this._visibleLines.getVisibleLine(s).getColumnOfNodeOffset(e,t);const l=this._context.viewModel.getLineMinColumn(s);return a<l&&(a=l),new se(s,a)}_getViewLineDomNode(e){for(;e&&e.nodeType===1;){if(e.className===qp.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let s=t;s<=i;s++){const r=this._visibleLines.getVisibleLine(s);if(e===r.getDomNode())return s}return-1}getLineWidth(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();if(e<t||e>i)return-1;const s=new sW(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(e).getWidth(s);return this._updateLineWidthsSlowIfDomDidLayout(s),r}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,s=O.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!s)return null;const r=[];let o=0;const a=new sW(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new se(s.startLineNumber,1)).lineNumber);const c=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let h=s.startLineNumber;h<=s.endLineNumber;h++){if(h<c||h>u)continue;const d=h===s.startLineNumber?s.startColumn:1,f=h!==s.endLineNumber,p=f?this._context.viewModel.getLineMaxColumn(h):s.endColumn,g=this._visibleLines.getVisibleLine(h).getVisibleRangesForRange(h,d,p,a);if(g){if(t&&h<i){const m=l;l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new se(h+1,1)).lineNumber,m!==l&&(g.ranges[g.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth)}r[o++]=new Bgt(g.outsideRenderedLine,h,u8.from(g.ranges),f)}}return this._updateLineWidthsSlowIfDomDidLayout(a),o===0?null:r}_visibleRangesForLineRange(e,t,i){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;const s=new sW(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,s);return this._updateLineWidthsSlowIfDomDidLayout(s),r}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new Wgt(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=1,r=!0;for(let o=t;o<=i;o++){const a=this._visibleLines.getVisibleLine(o);if(e&&!a.getWidthIsFast()){r=!1;continue}s=Math.max(s,a.getWidth(null))}return r&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(s),r}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let r=i;r<=s;r++){const o=this._visibleLines.getVisibleLine(r);if(o.needsMonospaceFontCheck()){const a=o.getWidth(null);a>t&&(t=a,e=r)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let r=i;r<=s;r++)this._visibleLines.getVisibleLine(r).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const s=this._computeScrollLeftToReveal(i);s&&(this._isViewportWrapping||this._ensureMaxLineWidth(s.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:s.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),ra&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let r=i;r<=s;r++)if(this._visibleLines.getVisibleLine(r).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,i,s,r,o){const a=e.top,l=e.height,c=a+l;let u,h,d;if(r&&r.length>0){let _=r[0].startLineNumber,b=r[0].endLineNumber;for(let w=1,C=r.length;w<C;w++){const S=r[w];_=Math.min(_,S.startLineNumber),b=Math.max(b,S.endLineNumber)}u=!1,h=this._context.viewLayout.getVerticalOffsetForLineNumber(_),d=this._context.viewLayout.getVerticalOffsetForLineNumber(b)+this._lineHeight}else if(s)u=!0,h=this._context.viewLayout.getVerticalOffsetForLineNumber(s.startLineNumber),d=this._context.viewLayout.getVerticalOffsetForLineNumber(s.endLineNumber)+this._lineHeight;else return-1;const f=(t==="mouse"||i)&&this._cursorSurroundingLinesStyle==="default";let p=0,g=0;if(f)i||(p=this._lineHeight);else{const _=Math.min(l/this._lineHeight/2,this._cursorSurroundingLines);this._stickyScrollEnabled?p=Math.max(_,this._maxNumberStickyLines)*this._lineHeight:p=_*this._lineHeight,g=Math.max(0,_-1)*this._lineHeight}i||(o===0||o===4)&&(g+=this._lineHeight),h-=p,d+=g;let m;if(d-h>l){if(!u)return-1;m=h}else if(o===5||o===6)if(o===6&&a<=h&&d<=c)m=a;else{const _=Math.max(5*this._lineHeight,l*.2),b=h-_,w=d-l;m=Math.max(w,b)}else if(o===1||o===2)if(o===2&&a<=h&&d<=c)m=a;else{const _=(h+d)/2;m=Math.max(0,_-l/2)}else m=this._computeMinimumScrolling(a,c,h,d,o===3,o===4);return m}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(146),s=t.left,r=s+t.width-i.verticalScrollbarWidth;let o=1073741824,a=0;if(e.type==="range"){const c=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!c)return null;for(const u of c.ranges)o=Math.min(o,Math.round(u.left)),a=Math.max(a,Math.round(u.left+u.width))}else for(const c of e.selections){if(c.startLineNumber!==c.endLineNumber)return null;const u=this._visibleRangesForLineRange(c.startLineNumber,c.startColumn,c.endColumn);if(!u)return null;for(const h of u.ranges)o=Math.min(o,Math.round(h.left)),a=Math.max(a,Math.round(h.left+h.width))}return e.minimalReveal||(o=Math.max(0,o-b3.HORIZONTAL_EXTRA_PX),a+=this._revealHorizontalRightPadding),e.type==="selections"&&a-o>t.width?null:{scrollLeft:this._computeMinimumScrolling(s,r,o,a),maxHorizontalOffset:a}}_computeMinimumScrolling(e,t,i,s,r,o){e=e|0,t=t|0,i=i|0,s=s|0,r=!!r,o=!!o;const a=t-e;if(s-i<a){if(r)return i;if(o)return Math.max(0,s-a);if(i<e)return i;if(s>t)return Math.max(0,s-a)}else return i;return e}};b3.HORIZONTAL_EXTRA_PX=30;let tU=b3;class e_t extends YEe{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(146);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(146);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let s=0;for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.options.linesDecorationsClassName,c=a.options.zIndex;l&&(i[s++]=new eU(a.range.startLineNumber,a.range.endLineNumber,l,a.options.linesDecorationsTooltip??null,c));const u=a.options.firstLineDecorationClassName;u&&(i[s++]=new eU(a.range.startLineNumber,a.range.startLineNumber,u,a.options.linesDecorationsTooltip??null,c))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=this._render(t,i,this._getDecorations(e)),r=this._decorationsLeft.toString(),o=this._decorationsWidth.toString(),a='" style="left:'+r+"px;width:"+o+'px;"></div>',l=[];for(let c=t;c<=i;c++){const u=c-t,h=s[u].getDecorations();let d="";for(const f of h){let p='<div class="cldr '+f.className;f.tooltip!==null&&(p+='" title="'+f.tooltip),p+=a,d+=p}l[u]=d}this._renderResult=l}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class t_t extends YEe{constructor(e){super(),this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let s=0;for(let r=0,o=t.length;r<o;r++){const a=t[r],l=a.options.marginClassName,c=a.options.zIndex;l&&(i[s++]=new eU(a.range.startLineNumber,a.range.endLineNumber,l,null,c))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=this._render(t,i,this._getDecorations(e)),r=[];for(let o=t;o<=i;o++){const a=o-t,l=s[a].getDecorations();let c="";for(const u of l)c+='<div class="cmdr '+u.className+'" style=""></div>';r[a]=c}this._renderResult=r}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}const Fm=class Fm{constructor(e,t,i,s){this._rgba8Brand=void 0,this.r=Fm._clamp(e),this.g=Fm._clamp(t),this.b=Fm._clamp(i),this.a=Fm._clamp(s)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}};Fm.Empty=new Fm(0,0,0,0);let Sg=Fm;const y3=class y3 extends ue{static getInstance(){return this._INSTANCE||(this._INSTANCE=new y3),this._INSTANCE}constructor(){super(),this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Xn.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const e=Xn.getColorMap();if(!e){this._colors=[Sg.Empty],this._backgroundIsLight=!0;return}this._colors=[Sg.Empty];for(let i=1;i<e.length;i++){const s=e[i].rgba;this._colors[i]=new Sg(s.r,s.g,s.b,Math.round(s.a*255))}const t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}};y3._INSTANCE=null;let $F=y3;class fhe{constructor(e,t,i,s){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=s|0}}class i_t{constructor(e,t){this.tabSize=e,this.data=t}}class yte{constructor(e,t,i,s,r,o,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=s,this.startVisibleColumn=r,this.tokens=o,this.inlineDecorations=a}}class pc{constructor(e,t,i,s,r,o,a,l,c,u){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=s,this.isBasicASCII=pc.isBasicASCII(i,o),this.containsRTL=pc.containsRTL(i,this.isBasicASCII,r),this.tokens=a,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=u}static isBasicASCII(e,t){return t?IN(e):!0}static containsRTL(e,t,i){return!t&&i?KS(e):!1}}class Rk{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class n_t{constructor(e,t,i,s){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=s}toInlineDecoration(e){return new Rk(new O(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class JEe{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class UT{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.color<t.color?-1:e.color>t.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&In(e.data,t.data)}static equalsArr(e,t){return In(e,t,UT.equals)}}const s_t=(()=>{const n=[];for(let e=32;e<=126;e++)n.push(e);return n.push(65533),n})(),r_t=(n,e)=>(n-=32,n<0||n>96?e<=2?(n+96)%96:95:n);class jT{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=jT.soften(e,12/15),this.charDataLight=jT.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let s=0,r=e.length;s<r;s++)i[s]=bF(e[s]*t);return i}renderChar(e,t,i,s,r,o,a,l,c,u,h){const d=1*this.scale,f=2*this.scale,p=h?1:f;if(t+d>e.width||i+p>e.height){console.warn("bad render request outside image data");return}const g=u?this.charDataLight:this.charDataNormal,m=r_t(s,c),_=e.width*4,b=a.r,w=a.g,C=a.b,S=r.r-b,x=r.g-w,k=r.b-C,L=Math.max(o,l),E=e.data;let A=m*d*f,I=i*_+t*4;for(let T=0;T<p;T++){let N=I;for(let M=0;M<d;M++){const V=g[A++]/255*(o/255);E[N++]=b+S*V,E[N++]=w+x*V,E[N++]=C+k*V,E[N++]=L}I+=_}}blockRenderChar(e,t,i,s,r,o,a,l){const c=1*this.scale,u=2*this.scale,h=l?1:u;if(t+c>e.width||i+h>e.height){console.warn("bad render request outside image data");return}const d=e.width*4,f=.5*(r/255),p=o.r,g=o.g,m=o.b,_=s.r-p,b=s.g-g,w=s.b-m,C=p+_*f,S=g+b*f,x=m+w*f,k=Math.max(r,a),L=e.data;let E=i*d+t*4;for(let A=0;A<h;A++){let I=E;for(let T=0;T<c;T++)L[I++]=C,L[I++]=S,L[I++]=x,L[I++]=k;E+=d}}}const phe={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},ghe=n=>{const e=new Uint8ClampedArray(n.length/2);for(let t=0;t<n.length;t+=2)e[t>>1]=phe[n[t]]<<4|phe[n[t+1]]&15;return e},mhe={1:i_(()=>ghe("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:i_(()=>ghe("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class Mk{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return mhe[e]?i=new jT(mhe[e](),e):i=Mk.createFromSampleData(Mk.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="16px",t.height=16,t.width=96*10,t.style.width=96*10+"px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let s=0;for(const r of s_t)i.fillText(String.fromCharCode(r),s,16/2),s+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const s=Mk._downsample(e,t);return new jT(s,t)}static _downsampleChar(e,t,i,s,r){const o=1*r,a=2*r;let l=s,c=0;for(let u=0;u<a;u++){const h=u/a*16,d=(u+1)/a*16;for(let f=0;f<o;f++){const p=f/o*10,g=(f+1)/o*10;let m=0,_=0;for(let w=h;w<d;w++){const C=t+Math.floor(w)*3840,S=1-(w-Math.floor(w));for(let x=p;x<g;x++){const k=1-(x-Math.floor(x)),L=C+Math.floor(x)*4,E=k*S;_+=E,m+=e[L]*e[L+3]/255*E}}const b=m/_;c=Math.max(c,b),i[l++]=bF(b)}}return c}static _downsample(e,t){const i=2*t*1*t,s=i*96,r=new Uint8ClampedArray(s);let o=0,a=0,l=0;for(let c=0;c<96;c++)l=Math.max(l,this._downsampleChar(e,a,r,o,t)),o+=i,a+=10*4;if(l>0){const c=255/l;for(let u=0;u<s;u++)r[u]*=c}return r}}const eke=qr?'"Segoe WPC", "Segoe UI", sans-serif':ni?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif',o_t=140,a_t=2;class qC{constructor(e,t,i){const s=e.options,r=s.get(144),o=s.get(146),a=o.minimap,l=s.get(50),c=s.get(73);this.renderMinimap=a.renderMinimap,this.size=c.size,this.minimapHeightIsEditorHeight=a.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=s.get(106),this.paddingTop=s.get(84).top,this.paddingBottom=s.get(84).bottom,this.showSlider=c.showSlider,this.autohide=c.autohide,this.pixelRatio=r,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.lineHeight=s.get(67),this.minimapLeft=a.minimapLeft,this.minimapWidth=a.minimapWidth,this.minimapHeight=o.height,this.canvasInnerWidth=a.minimapCanvasInnerWidth,this.canvasInnerHeight=a.minimapCanvasInnerHeight,this.canvasOuterWidth=a.minimapCanvasOuterWidth,this.canvasOuterHeight=a.minimapCanvasOuterHeight,this.isSampling=a.minimapIsSampling,this.editorHeight=o.height,this.fontScale=a.minimapScale,this.minimapLineHeight=a.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=eke,this.sectionHeaderFontSize=c.sectionHeaderFontSize*r,this.sectionHeaderLetterSpacing=c.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=qC._getSectionHeaderColor(t,i.getColor(1)),this.charRenderer=i_(()=>Mk.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=qC._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=qC._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(Spt);return i?new Sg(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(xpt);return t?Sg._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){const i=e.getColor(sp);return i?new Sg(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===e.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class Ok{constructor(e,t,i,s,r,o,a,l,c){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=s,this.sliderTop=r,this.sliderHeight=o,this.topPaddingLineCount=a,this.startLineNumber=l,this.endLineNumber=c}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,s,r,o,a,l,c,u,h){const d=e.pixelRatio,f=e.minimapLineHeight,p=Math.floor(e.canvasInnerHeight/f),g=e.lineHeight;if(e.minimapHeightIsEditorHeight){let x=l*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(x+=Math.max(0,r-e.lineHeight-e.paddingBottom));const k=Math.max(1,Math.floor(r*r/x)),L=Math.max(0,e.minimapHeight-k),E=L/(u-r),A=c*E,I=L>0,T=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),N=Math.floor(e.paddingTop/e.lineHeight);return new Ok(c,u,I,E,A,k,N,1,Math.min(a,T))}let m;if(o&&i!==a){const x=i-t+1;m=Math.floor(x*f/d)}else{const x=r/g;m=Math.floor(x*f/d)}const _=Math.floor(e.paddingTop/g);let b=Math.floor(e.paddingBottom/g);if(e.scrollBeyondLastLine){const x=r/g;b=Math.max(b,x-1)}let w;if(b>0){const x=r/g;w=(_+a+b-x-1)*f/d}else w=Math.max(0,(_+a)*f/d-m);w=Math.min(e.minimapHeight-m,w);const C=w/(u-r),S=c*C;if(p>=_+a+b){const x=w>0;return new Ok(c,u,x,C,S,m,_,1,a)}else{let x;t>1?x=t+_:x=Math.max(1,c/g);let k,L=Math.max(1,Math.floor(x-S*d/f));L<_?(k=_-L+1,L=1):(k=0,L=Math.max(1,L-_)),h&&h.scrollHeight===u&&(h.scrollTop>c&&(L=Math.min(L,h.startLineNumber),k=Math.max(k,h.topPaddingLineCount)),h.scrollTop<c&&(L=Math.max(L,h.startLineNumber),k=Math.min(k,h.topPaddingLineCount)));const E=Math.min(a,L-k+p-1),A=(c-s)/g;let I;return c>=e.paddingTop?I=(t-L+k+A)*f/d:I=c/e.paddingTop*(k+A)*f/d,new Ok(c,u,!0,C,I,m,k,L,E)}}}const w3=class w3{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}};w3.INVALID=new w3(-1);let zF=w3;class _he{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new jEe(()=>zF.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let s=0,r=i.length;s<r;s++)if(i[s].dy===-1)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){const e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}onLinesChanged(e,t){return this._renderedLines.onLinesChanged(e,t)}onLinesDeleted(e,t){this._renderedLines.onLinesDeleted(e,t)}onLinesInserted(e,t){this._renderedLines.onLinesInserted(e,t)}onTokensChanged(e){return this._renderedLines.onTokensChanged(e)}}class wte{constructor(e,t,i,s){this._backgroundFillData=wte._createBackgroundFillData(t,i,s),this._buffers=[e.createImageData(t,i),e.createImageData(t,i)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;const e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,i){const s=i.r,r=i.g,o=i.b,a=i.a,l=new Uint8ClampedArray(e*t*4);let c=0;for(let u=0;u<t;u++)for(let h=0;h<e;h++)l[c]=s,l[c+1]=r,l[c+2]=o,l[c+3]=a,c+=4;return l}}class qT{static compute(e,t,i){if(e.renderMinimap===0||!e.isSampling)return[null,[]];const{minimapLineCount:s}=$C.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),r=t/s,o=r/2;if(!i||i.minimapLines.length===0){const m=[];if(m[0]=1,s>1){for(let _=0,b=s-1;_<b;_++)m[_]=Math.round(_*r+o);m[s-1]=t}return[new qT(r,m),[]]}const a=i.minimapLines,l=a.length,c=[];let u=0,h=0,d=1;const f=10;let p=[],g=null;for(let m=0;m<s;m++){const _=Math.max(d,Math.round(m*r)),b=Math.max(_,Math.round((m+1)*r));for(;u<l&&a[u]<_;){if(p.length<f){const C=u+1+h;g&&g.type==="deleted"&&g._oldIndex===u-1?g.deleteToLineNumber++:(g={type:"deleted",_oldIndex:u,deleteFromLineNumber:C,deleteToLineNumber:C},p.push(g)),h--}u++}let w;if(u<l&&a[u]<=b)w=a[u],u++;else if(m===0?w=1:m+1===s?w=t:w=Math.round(m*r+o),p.length<f){const C=u+1+h;g&&g.type==="inserted"&&g._i===m-1?g.insertToLineNumber++:(g={type:"inserted",_i:m,insertFromLineNumber:C,insertToLineNumber:C},p.push(g)),h++}c[m]=w,d=w}if(p.length<f)for(;u<l;){const m=u+1+h;g&&g.type==="deleted"&&g._oldIndex===u-1?g.deleteToLineNumber++:(g={type:"deleted",_oldIndex:u,deleteFromLineNumber:m,deleteToLineNumber:m},p.push(g)),h--,u++}else p=[{type:"flush"}];return[new qT(r,c),p]}constructor(e,t){this.samplingRatio=e,this.minimapLines=t}modelLineToMinimapLine(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}modelLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e)-1;for(;i>0&&this.minimapLines[i-1]>=e;)i--;let s=this.modelLineToMinimapLine(t)-1;for(;s+1<this.minimapLines.length&&this.minimapLines[s+1]<=t;)s++;if(i===s){const r=this.minimapLines[i];if(r<e||r>t)return null}return[i+1,s+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),s=this.modelLineToMinimapLine(t);return e!==t&&s===i&&(s===this.minimapLines.length?i>1&&i--:s++),[i,s]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,s=0;for(let r=this.minimapLines.length-1;r>=0&&!(this.minimapLines[r]<e.fromLineNumber);r--)this.minimapLines[r]<=e.toLineNumber?(this.minimapLines[r]=Math.max(1,e.fromLineNumber-1),i=Math.min(i,r),s=Math.max(s,r)):this.minimapLines[r]-=t;return[i,s]}onLinesInserted(e){const t=e.toLineNumber-e.fromLineNumber+1;for(let i=this.minimapLines.length-1;i>=0&&!(this.minimapLines[i]<e.fromLineNumber);i--)this.minimapLines[i]+=t}}class l_t extends Ll{constructor(e){super(e),this._sectionHeaderCache=new np(10,1.5),this.tokensColorTracker=$F.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new qC(this._context.configuration,this._context.theme,this.tokensColorTracker);const[t]=qT.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new qw(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){const e=new qC(this._context.configuration,this._context.theme,this.tokensColorTracker);return this.options.equals(e)?!1:(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return e.affectsMinimap?this._actual.onDecorationsChanged():!1}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(this._samplingState){const t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return t?this._actual.onLinesChanged(t[0],t[1]-t[0]+1):!1}else return this._actual.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){if(this._samplingState){const[t,i]=this._samplingState.onLinesDeleted(e);return t<=i&&this._actual.onLinesChanged(t+1,i-t+1),this._shouldCheckSampling=!0,!0}else return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged()}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){const t=[];for(const i of e.ranges){const s=this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber,i.toLineNumber);s&&t.push({fromLineNumber:s[0],toLineNumber:s[1]})}return t.length?this._actual.onTokensChanged(t):!1}else return this._actual.onTokensChanged(e.ranges)}onTokensColorsChanged(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}onZonesChanged(e){return this._actual.onZonesChanged()}prepareRender(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}render(e){let t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),i=this._samplingState.modelLineToMinimapLine(i));const s={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(s)}_recreateLineSampling(){this._minimapSelections=null;const e=!!this._samplingState,[t,i]=qT.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const s of i)switch(s.type){case"deleted":this._actual.onLinesDeleted(s.deleteFromLineNumber,s.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(s.insertFromLineNumber,s.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const s=[];for(let r=0,o=t-e+1;r<o;r++)i[r]?s[r]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+r-1]):s[r]=null;return s}return this._context.viewModel.getMinimapLinesRenderingData(e,t,i).data}getSelections(){if(this._minimapSelections===null)if(this._samplingState){this._minimapSelections=[];for(const e of this._selections){const[t,i]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new nt(t,e.startColumn,i,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){const i=this._getMinimapDecorationsInViewport(e,t).filter(s=>{var r;return!((r=s.options.minimap)!=null&&r.sectionHeaderStyle)});if(this._samplingState){const s=[];for(const r of i){if(!r.options.minimap)continue;const o=r.range,a=this._samplingState.modelLineToMinimapLine(o.startLineNumber),l=this._samplingState.modelLineToMinimapLine(o.endLineNumber);s.push(new JEe(new O(a,o.startColumn,l,o.endColumn),r.options))}return s}return i}getSectionHeaderDecorationsInViewport(e,t){const i=this.options.minimapLineHeight,r=this.options.sectionHeaderFontSize/i;return e=Math.floor(Math.max(1,e-r)),this._getMinimapDecorationsInViewport(e,t).filter(o=>{var a;return!!((a=o.options.minimap)!=null&&a.sectionHeaderStyle)})}_getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const s=this._samplingState.minimapLines[e-1],r=this._samplingState.minimapLines[t-1];i=new O(s,1,r,this._context.viewModel.getLineMaxColumn(r))}else i=new O(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(i)}getSectionHeaderText(e,t){var o;const i=(o=e.options.minimap)==null?void 0:o.sectionHeaderText;if(!i)return null;const s=this._sectionHeaderCache.get(i);if(s)return s;const r=t(i);return this._sectionHeaderCache.set(i,r),r}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new O(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class qw extends ue{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(Jue),this._domNode=Pi(document.createElement("div")),ed.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=Pi(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=Pi(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=Pi(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=Pi(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=Pi(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=os(this._domNode.domNode,Ae.POINTER_DOWN,i=>{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(i.button===0&&this._lastRenderData){const c=ps(this._slider.domNode),u=c.top+c.height/2;this._startSliderDragging(i,u,this._lastRenderData.renderedLayout)}return}const r=this._model.options.minimapLineHeight,o=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.offsetY;let l=Math.floor(o/r)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderPointerMoveMonitor=new fL,this._sliderPointerDownListener=os(this._slider.domNode,Ae.POINTER_DOWN,i=>{i.preventDefault(),i.stopPropagation(),i.button===0&&this._lastRenderData&&this._startSliderDragging(i,i.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=ao.addTarget(this._domNode.domNode),this._sliderTouchStartListener=ge(this._domNode.domNode,sn.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=ge(this._domNode.domNode,sn.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=os(this._domNode.domNode,sn.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const s=e.pageX;this._slider.toggleClassName("active",!0);const r=(o,a)=>{const l=ps(this._domNode.domNode),c=Math.min(Math.abs(a-s),Math.abs(a-l.left),Math.abs(a-l.left-l.width));if(qr&&c>o_t){this._model.setScrollTop(i.scrollTop);return}const u=o-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(u))};e.pageY!==t&&r(e.pageY,s),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,o=>r(o.pageY,o.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return this._model.options.showSlider==="always"?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new wte(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){var i;return(i=this._lastRenderData)==null||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return(i=this._lastRenderData)==null||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(Jue),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const i=Ok.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(O.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((d,f)=>(d.options.zIndex||0)-(f.options.zIndex||0));const{canvasInnerWidth:s,canvasInnerHeight:r}=this._model.options,o=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext("2d");c.clearRect(0,0,s,r);const u=new vhe(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(c,t,u,e,o),this._renderDecorationsLineHighlights(c,i,u,e,o);const h=new vhe(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(c,t,h,e,o,l,a,s),this._renderDecorationsHighlights(c,i,h,e,o,l,a,s),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,i,s,r){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let o=0,a=0;for(const l of t){const c=s.intersectWithViewport(l);if(!c)continue;const[u,h]=c;for(let p=u;p<=h;p++)i.set(p,!0);const d=s.getYForLineNumber(u,r),f=s.getYForLineNumber(h,r);a>=d||(a>o&&e.fillRect(Nd,o,e.canvas.width,a-o),o=d),a=f}a>o&&e.fillRect(Nd,o,e.canvas.width,a-o)}_renderDecorationsLineHighlights(e,t,i,s,r){const o=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],c=l.options.minimap;if(!c||c.position!==1)continue;const u=s.intersectWithViewport(l.range);if(!u)continue;const[h,d]=u,f=c.getColor(this._theme.value);if(!f||f.isTransparent())continue;let p=o.get(f.toString());p||(p=f.transparent(.5).toString(),o.set(f.toString(),p)),e.fillStyle=p;for(let g=h;g<=d;g++){if(i.has(g))continue;i.set(g,!0);const m=s.getYForLineNumber(h,r);e.fillRect(Nd,m,e.canvas.width,r)}}}_renderSelectionsHighlights(e,t,i,s,r,o,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const c of t){const u=s.intersectWithViewport(c);if(!u)continue;const[h,d]=u;for(let f=h;f<=d;f++)this.renderDecorationOnLine(e,i,c,this._selectionColor,s,f,r,r,o,a,l)}}_renderDecorationsHighlights(e,t,i,s,r,o,a,l){for(const c of t){const u=c.options.minimap;if(!u)continue;const h=s.intersectWithViewport(c.range);if(!h)continue;const[d,f]=h,p=u.getColor(this._theme.value);if(!(!p||p.isTransparent()))for(let g=d;g<=f;g++)switch(u.position){case 1:this.renderDecorationOnLine(e,i,c.range,p,s,g,r,r,o,a,l);continue;case 2:{const m=s.getYForLineNumber(g,r);this.renderDecoration(e,p,2,m,a_t,r);continue}}}}renderDecorationOnLine(e,t,i,s,r,o,a,l,c,u,h){const d=r.getYForLineNumber(o,l);if(d+a<0||d>this._model.options.canvasInnerHeight)return;const{startLineNumber:f,endLineNumber:p}=i,g=f===o?i.startColumn:1,m=p===o?i.endColumn:this._model.getLineMaxColumn(o),_=this.getXOffsetForPosition(t,o,g,c,u,h),b=this.getXOffsetForPosition(t,o,m,c,u,h);this.renderDecoration(e,s,_,d,b-_,a)}getXOffsetForPosition(e,t,i,s,r,o){if(i===1)return Nd;if((i-1)*r>=o)return o;let l=e.get(t);if(!l){const c=this._model.getLineContent(t);l=[Nd];let u=Nd;for(let h=1;h<c.length+1;h++){const d=c.charCodeAt(h-1),f=d===9?s*r:r_(d)?2*r:r,p=u+f;if(p>=o){l[h]=o;break}l[h]=p,u=p}e.set(t,l)}return i-1<l.length?l[i-1]:o}renderDecoration(e,t,i,s,r,o){e.fillStyle=t&&t.toString()||"",e.fillRect(i,s,r,o)}_renderSectionHeaders(e){var g;const t=this._model.options.minimapLineHeight,i=this._model.options.sectionHeaderFontSize,s=this._model.options.sectionHeaderLetterSpacing,r=i*1.5,{canvasInnerWidth:o}=this._model.options,a=this._model.options.backgroundColor,l=`rgb(${a.r} ${a.g} ${a.b} / .7)`,c=this._model.options.sectionHeaderFontColor,u=`rgb(${c.r} ${c.g} ${c.b})`,h=u,d=this._decorationsCanvas.domNode.getContext("2d");d.letterSpacing=s+"px",d.font="500 "+i+"px "+this._model.options.sectionHeaderFontFamily,d.strokeStyle=h,d.lineWidth=.2;const f=this._model.getSectionHeaderDecorationsInViewport(e.startLineNumber,e.endLineNumber);f.sort((m,_)=>m.range.startLineNumber-_.range.startLineNumber);const p=qw._fitSectionHeader.bind(null,d,o-Nd);for(const m of f){const _=e.getYForLineNumber(m.range.startLineNumber,t)+i,b=_-i,w=b+2,C=this._model.getSectionHeaderText(m,p);qw._renderSectionLabel(d,C,((g=m.options.minimap)==null?void 0:g.sectionHeaderStyle)===2,l,u,o,b,r,_,w)}}static _fitSectionHeader(e,t,i){if(!i)return i;const s="…",r=e.measureText(i).width,o=e.measureText(s).width;if(r<=t||r<=o)return i;const a=i.length,l=r/i.length,c=Math.floor((t-o)/l)-1;let u=Math.ceil(c/2);for(;u>0&&/\s/.test(i[u-1]);)--u;return i.substring(0,u)+s+i.substring(a-(c-u))}static _renderSectionLabel(e,t,i,s,r,o,a,l,c,u){t&&(e.fillStyle=s,e.fillRect(0,a,o,l),e.fillStyle=r,e.fillText(t,Nd,c)),i&&(e.beginPath(),e.moveTo(0,u),e.lineTo(o,u),e.closePath(),e.stroke())}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,s=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const V=this._lastRenderData._get();return new _he(e,V.imageData,V.lines)}const r=this._getBuffer();if(!r)return null;const[o,a,l]=qw._renderUntouchedLines(r,e.topPaddingLineCount,t,i,s,this._lastRenderData),c=this._model.getMinimapLinesRenderingData(t,i,l),u=this._model.getOptions().tabSize,h=this._model.options.defaultBackgroundColor,d=this._model.options.backgroundColor,f=this._model.options.foregroundAlpha,p=this._model.tokensColorTracker,g=p.backgroundIsLight(),m=this._model.options.renderMinimap,_=this._model.options.charRenderer(),b=this._model.options.fontScale,w=this._model.options.minimapCharWidth,S=(m===1?2:3)*b,x=s>S?Math.floor((s-S)/2):0,k=d.a/255,L=new Sg(Math.round((d.r-h.r)*k+h.r),Math.round((d.g-h.g)*k+h.g),Math.round((d.b-h.b)*k+h.b),255);let E=e.topPaddingLineCount*s;const A=[];for(let V=0,W=i-t+1;V<W;V++)l[V]&&qw._renderLine(r,L,d.a,g,m,w,p,f,_,E,x,u,c[V],b,s),A[V]=new zF(E),E+=s;const I=o===-1?0:o,N=(a===-1?r.height:a)-I;return this._canvas.domNode.getContext("2d").putImageData(r,0,0,0,I,r.width,N),new _he(e,r,A)}static _renderUntouchedLines(e,t,i,s,r,o){const a=[];if(!o){for(let E=0,A=s-i+1;E<A;E++)a[E]=!0;return[-1,-1,a]}const l=o._get(),c=l.imageData.data,u=l.rendLineNumberStart,h=l.lines,d=h.length,f=e.width,p=e.data,g=(s-i+1)*r*f*4;let m=-1,_=-1,b=-1,w=-1,C=-1,S=-1,x=t*r;for(let E=i;E<=s;E++){const A=E-i,I=E-u,T=I>=0&&I<d?h[I].dy:-1;if(T===-1){a[A]=!0,x+=r;continue}const N=T*f*4,M=(T+r)*f*4,V=x*f*4,W=(x+r)*f*4;w===N&&S===V?(w=M,S=W):(b!==-1&&(p.set(c.subarray(b,w),C),m===-1&&b===0&&b===C&&(m=w),_===-1&&w===g&&b===C&&(_=b)),b=N,w=M,C=V,S=W),a[A]=!1,x+=r}b!==-1&&(p.set(c.subarray(b,w),C),m===-1&&b===0&&b===C&&(m=w),_===-1&&w===g&&b===C&&(_=b));const k=m===-1?-1:m/(f*4),L=_===-1?-1:_/(f*4);return[k,L,a]}static _renderLine(e,t,i,s,r,o,a,l,c,u,h,d,f,p,g){const m=f.content,_=f.tokens,b=e.width-o,w=g===1;let C=Nd,S=0,x=0;for(let k=0,L=_.getCount();k<L;k++){const E=_.getEndOffset(k),A=_.getForeground(k),I=a.getColor(A);for(;S<E;S++){if(C>b)return;const T=m.charCodeAt(S);if(T===9){const N=d-(S+x)%d;x+=N-1,C+=N*o}else if(T===32)C+=o;else{const N=r_(T)?2:1;for(let M=0;M<N;M++)if(r===2?c.blockRenderChar(e,C,u+h,I,l,t,i,w):c.renderChar(e,C,u+h,T,I,l,t,i,p,s,w),C+=o,C>b)return}}}}}class vhe{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let s=0,r=this._endLineNumber-this._startLineNumber+1;s<r;s++)this._values[s]=i}has(e){return this.get(e)!==this._defaultValue}set(e,t){e<this._startLineNumber||e>this._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return e<this._startLineNumber||e>this._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class c_t extends Ll{constructor(e,t){super(e),this._viewDomNode=t;const s=this._context.configuration.options.get(146);this._widgets={},this._verticalScrollbarWidth=s.verticalScrollbarWidth,this._minimapWidth=s.minimap.minimapWidth,this._horizontalScrollbarHeight=s.horizontalScrollbarHeight,this._editorHeight=s.height,this._editorWidth=s.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=Pi(document.createElement("div")),ed.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=Pi(document.createElement("div")),ed.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(146);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=Pi(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()],s=t?t.preference:null,r=t==null?void 0:t.stackOridinal;return i.preference===s&&i.stack===r?(this._updateMaxMinWidth(),!1):(i.preference=s,i.stack=r,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var i,s;let e=0;const t=Object.keys(this._widgets);for(let r=0,o=t.length;r<o;r++){const a=t[r],c=(s=(i=this._widgets[a].widget).getMinContentWidthInPx)==null?void 0:s.call(i);typeof c<"u"&&(e=Math.max(e,c))}this._context.viewLayout.setOverlayWidgetsMinWidth(e)}_renderWidget(e,t){const i=e.domNode;if(e.preference===null){i.setTop("");return}const s=2*this._verticalScrollbarWidth+this._minimapWidth;if(e.preference===0||e.preference===1){if(e.preference===1){const r=i.domNode.clientHeight;i.setTop(this._editorHeight-r-2*this._horizontalScrollbarHeight)}else i.setTop(0);e.stack!==void 0?(i.setTop(t[e.preference]),t[e.preference]+=i.domNode.clientWidth):i.setRight(s)}else if(e.preference===2)i.domNode.style.right="50%",e.stack!==void 0?(i.setTop(t[2]),t[2]+=i.domNode.clientHeight):i.setTop(0);else{const{top:r,left:o}=e.preference;if(this._context.configuration.options.get(42)&&e.widget.allowEditorOverflow){const l=this._viewDomNodeRect;i.setTop(r+l.top),i.setLeft(o+l.left),i.setPosition("fixed")}else i.setTop(r),i.setLeft(o),i.setPosition("absolute")}}prepareRender(e){this._viewDomNodeRect=ps(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets),i=Array.from({length:3},()=>0);t.sort((s,r)=>(this._widgets[s].stack||0)-(this._widgets[r].stack||0));for(let s=0,r=t.length;s<r;s++){const o=t[s];this._renderWidget(this._widgets[o],i)}}}class u_t{constructor(e,t){const i=e.options;this.lineHeight=i.get(67),this.pixelRatio=i.get(144),this.overviewRulerLanes=i.get(83),this.renderBorder=i.get(82);const s=t.getColor(qmt);this.borderColor=s?s.toString():null,this.hideCursor=i.get(59);const r=t.getColor(f8);this.cursorColorSingle=r?r.transparent(.7).toString():null;const o=t.getColor(MEe);this.cursorColorPrimary=o?o.transparent(.7).toString():null;const a=t.getColor(OEe);this.cursorColorSecondary=a?a.transparent(.7).toString():null,this.themeType=t.type;const l=i.get(73),c=l.enabled,u=l.side,h=t.getColor(Kmt),d=Xn.getDefaultBackground();h?this.backgroundColor=h:c&&u==="right"?this.backgroundColor=d:this.backgroundColor=null;const p=i.get(146).overviewRuler;this.top=p.top,this.right=p.right,this.domWidth=p.width,this.domHeight=p.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[g,m]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=g,this.w=m}_initLanes(e,t,i){const s=t-e;if(i>=3){const r=Math.floor(s/3),o=Math.floor(s/3),a=s-r-o,l=e,c=l+r,u=l+r+a;return[[0,l,c,l,u,l,c,l],[0,r,a,r+a,o,r+a+o,a+o,r+a+o]]}else if(i===2){const r=Math.floor(s/2),o=s-r,a=e,l=a+r;return[[0,a,a,a,l,a,a,a],[0,r,r,r,o,r+o,r+o,r+o]]}else{const r=e,o=s;return[[0,r,r,r,r,r,r,r],[0,o,o,o,o,o,o,o]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&Ce.equals(this.backgroundColor,e.backgroundColor)&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class h_t extends Ll{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=Pi(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=Xn.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new se(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new u_t(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;t<i;t++){let s=this._settings.cursorColorSingle;i>1&&(s=t===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:s})}return this._cursorPositions.sort((t,i)=>se.compare(t.position,i.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return e.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return e.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){const e=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(e?Ce.Format.CSS.formatHexA(e):""),this._domNode.setDisplay("none");return}const t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(UT.compareByRenderingProps),this._actualShouldRender===1&&!UT.equalsArr(this._renderedDecorations,t)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!In(this._renderedCursorPositions,this._cursorPositions,(p,g)=>p.position.lineNumber===g.position.lineNumber&&p.color===g.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const i=this._settings.canvasWidth,s=this._settings.canvasHeight,r=this._settings.lineHeight,o=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),l=s/a,c=6*this._settings.pixelRatio|0,u=c/2|0,h=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(h.fillStyle=Ce.Format.CSS.formatHexA(e),h.fillRect(0,0,i,s)):(h.clearRect(0,0,i,s),h.fillStyle=Ce.Format.CSS.formatHexA(e),h.fillRect(0,0,i,s)):h.clearRect(0,0,i,s);const d=this._settings.x,f=this._settings.w;for(const p of t){const g=p.color,m=p.data;h.fillStyle=g;let _=0,b=0,w=0;for(let C=0,S=m.length/3;C<S;C++){const x=m[3*C],k=m[3*C+1],L=m[3*C+2];let E=o.getVerticalOffsetForLineNumber(k)*l|0,A=(o.getVerticalOffsetForLineNumber(L)+r)*l|0;if(A-E<c){let T=(E+A)/2|0;T<u?T=u:T+u>s&&(T=s-u),E=T-u,A=T+u}E>w+1||x!==_?(C!==0&&h.fillRect(d[_],b,f[_],w-b),_=x,b=E,w=A):A>w&&(w=A)}h.fillRect(d[_],b,f[_],w-b)}if(!this._settings.hideCursor){const p=2*this._settings.pixelRatio|0,g=p/2|0,m=this._settings.x[7],_=this._settings.w[7];let b=-100,w=-100,C=null;for(let S=0,x=this._cursorPositions.length;S<x;S++){const k=this._cursorPositions[S].color;if(!k)continue;const L=this._cursorPositions[S].position;let E=o.getVerticalOffsetForLineNumber(L.lineNumber)*l|0;E<g?E=g:E+g>s&&(E=s-g);const A=E-g,I=A+p;A>w+1||k!==C?(S!==0&&C&&h.fillRect(m,b,_,w-b),b=A,w=I):I>w&&(w=I),C=k,h.fillStyle=k}C&&h.fillRect(m,b,_,w-b)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(h.beginPath(),h.lineWidth=1,h.strokeStyle=this._settings.borderColor,h.moveTo(0,0),h.lineTo(0,s),h.moveTo(1,0),h.lineTo(i,0),h.stroke())}}class bhe{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class tke{constructor(e,t,i,s){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=s,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}setColorZone(e){this._colorZone=e}getColorZones(){return this._colorZone}}class d_t{constructor(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}getId2Color(){return this._id2Color}setZones(e){this._zones=e,this._zones.sort(tke.compare)}setLineHeight(e){return this._lineHeight===e?!1:(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth===e?!1:(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight===e?!1:(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight===e?!1:(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){const e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),s=Math.floor(this._outerHeight),r=i/s,o=Math.floor(4*this._pixelRatio/2),a=[];for(let l=0,c=this._zones.length;l<c;l++){const u=this._zones[l];if(!e){const C=u.getColorZones();if(C){a.push(C);continue}}const h=this._getVerticalOffsetForLine(u.startLineNumber),d=u.heightInLines===0?this._getVerticalOffsetForLine(u.endLineNumber)+t:h+u.heightInLines*t,f=Math.floor(r*h),p=Math.floor(r*d);let g=Math.floor((f+p)/2),m=p-g;m<o&&(m=o),g-m<0&&(g=m),g+m>i&&(g=i-m);const _=u.color;let b=this._color2Id[_];b||(b=++this._lastAssignedId,this._color2Id[_]=b,this._id2Color[b]=_);const w=new bhe(g-m,g+m,b);u.setColorZone(w),a.push(w)}return this._colorZonesInvalid=!1,a.sort(bhe.compare),a}}class f_t extends RN{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=Pi(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new d_t(s=>this._context.viewLayout.getVerticalOffsetForLineNumber(s)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(67)),this._zoneManager.setPixelRatio(i.get(144)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(144)&&(this._zoneManager.setPixelRatio(t.get(144)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),s=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");return r.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(r,i,s,e),!0}_renderOneLane(e,t,i,s){let r=0,o=0,a=0;for(const l of t){const c=l.colorId,u=l.from,h=l.to;c!==r?(e.fillRect(0,o,s,a-o),r=c,e.fillStyle=i[r],o=u,a=h):a>=u?a=Math.max(a,h):(e.fillRect(0,o,s,a-o),o=u,a=h)}e.fillRect(0,o,s,a-o)}}class p_t extends Ll{constructor(e){super(e),this.domNode=Pi(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){const{tabSize:s}=this._context.viewModel.model.getOptions(),r=s;let o=t-e;for(;o>0;){const a=Pi(document.createElement("div"));a.setClassName("view-ruler"),a.setWidth(r),this.domNode.appendChild(a),this._renderedRulers.push(a),o--}return}let i=e-t;for(;i>0;){const s=this._renderedRulers.pop();this.domNode.removeChild(s),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t<i;t++){const s=this._renderedRulers[t],r=this._rulers[t];s.setBoxShadow(r.color?`1px 0 0 0 ${r.color} inset`:""),s.setHeight(Math.min(e.scrollHeight,1e6)),s.setLeft(r.column*this._typicalHalfwidthCharacterWidth)}}}class g_t extends Ll{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const i=this._context.configuration.options.get(104);this._useShadows=i.useShadows,this._domNode=Pi(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e?(this._shouldShow=e,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(146);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(104);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}class m_t{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class __t{constructor(e,t){this.lineNumber=e,this.ranges=t}}function v_t(n){return new m_t(n)}function b_t(n){return new __t(n.lineNumber,n.ranges.map(v_t))}const hs=class hs extends P0{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t<i;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,i){const s=this._typicalHalfwidthCharacterWidth/4;let r=null,o=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let c=0;!r&&c<i.length;c++)i[c].lineNumber===a&&(r=i[c].ranges[0]);const l=t[t.length-1].lineNumber;if(l===e.endLineNumber)for(let c=i.length-1;!o&&c>=0;c--)i[c].lineNumber===l&&(o=i[c].ranges[0]);r&&!r.startStyle&&(r=null),o&&!o.startStyle&&(o=null)}for(let a=0,l=t.length;a<l;a++){const c=t[a].ranges[0],u=c.left,h=c.left+c.width,d={top:0,bottom:0},f={top:0,bottom:0};if(a>0){const p=t[a-1].ranges[0].left,g=t[a-1].ranges[0].left+t[a-1].ranges[0].width;gP(u-p)<s?d.top=2:u>p&&(d.top=1),gP(h-g)<s?f.top=2:p<h&&h<g&&(f.top=1)}else r&&(d.top=r.startStyle.top,f.top=r.endStyle.top);if(a+1<l){const p=t[a+1].ranges[0].left,g=t[a+1].ranges[0].left+t[a+1].ranges[0].width;gP(u-p)<s?d.bottom=2:p<u&&u<g&&(d.bottom=1),gP(h-g)<s?f.bottom=2:h<g&&(f.bottom=1)}else o&&(d.bottom=o.startStyle.bottom,f.bottom=o.endStyle.bottom);c.startStyle=d,c.endStyle=f}}_getVisibleRangesWithStyle(e,t,i){const r=(t.linesVisibleRangesForRange(e,!0)||[]).map(b_t);return!this._visibleRangesHaveGaps(r)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,r,i),r}_createSelectionPiece(e,t,i,s,r){return'<div class="cslr '+i+'" style="top:'+e.toString()+"px;bottom:"+t.toString()+"px;left:"+s.toString()+"px;width:"+r.toString()+'px;"></div>'}_actualRenderOneSelection(e,t,i,s){if(s.length===0)return;const r=!!s[0].ranges[0].startStyle,o=s[0].lineNumber,a=s[s.length-1].lineNumber;for(let l=0,c=s.length;l<c;l++){const u=s[l],h=u.lineNumber,d=h-t,f=i&&h===o?1:0,p=i&&h!==o&&h===a?1:0;let g="",m="";for(let _=0,b=u.ranges.length;_<b;_++){const w=u.ranges[_];if(r){const S=w.startStyle,x=w.endStyle;if(S.top===1||S.bottom===1){g+=this._createSelectionPiece(f,p,hs.SELECTION_CLASS_NAME,w.left-hs.ROUNDED_PIECE_WIDTH,hs.ROUNDED_PIECE_WIDTH);let k=hs.EDITOR_BACKGROUND_CLASS_NAME;S.top===1&&(k+=" "+hs.SELECTION_TOP_RIGHT),S.bottom===1&&(k+=" "+hs.SELECTION_BOTTOM_RIGHT),g+=this._createSelectionPiece(f,p,k,w.left-hs.ROUNDED_PIECE_WIDTH,hs.ROUNDED_PIECE_WIDTH)}if(x.top===1||x.bottom===1){g+=this._createSelectionPiece(f,p,hs.SELECTION_CLASS_NAME,w.left+w.width,hs.ROUNDED_PIECE_WIDTH);let k=hs.EDITOR_BACKGROUND_CLASS_NAME;x.top===1&&(k+=" "+hs.SELECTION_TOP_LEFT),x.bottom===1&&(k+=" "+hs.SELECTION_BOTTOM_LEFT),g+=this._createSelectionPiece(f,p,k,w.left+w.width,hs.ROUNDED_PIECE_WIDTH)}}let C=hs.SELECTION_CLASS_NAME;if(r){const S=w.startStyle,x=w.endStyle;S.top===0&&(C+=" "+hs.SELECTION_TOP_LEFT),S.bottom===0&&(C+=" "+hs.SELECTION_BOTTOM_LEFT),x.top===0&&(C+=" "+hs.SELECTION_TOP_RIGHT),x.bottom===0&&(C+=" "+hs.SELECTION_BOTTOM_RIGHT)}m+=this._createSelectionPiece(f,p,C,w.left,w.width)}e[d][0]+=g,e[d][1]+=m}}prepareRender(e){const t=[],i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let o=i;o<=s;o++){const a=o-i;t[a]=["",""]}const r=[];for(let o=0,a=this._selections.length;o<a;o++){const l=this._selections[o];if(l.isEmpty()){r[o]=null;continue}const c=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[o]);r[o]=c,this._actualRenderOneSelection(t,i,this._selections.length>1,c)}this._previousFrameVisibleRangesWithStyle=r,this._renderResult=t.map(([o,a])=>o+a)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}};hs.SELECTION_CLASS_NAME="selected-text",hs.SELECTION_TOP_LEFT="top-left-radius",hs.SELECTION_BOTTOM_LEFT="bottom-left-radius",hs.SELECTION_TOP_RIGHT="top-right-radius",hs.SELECTION_BOTTOM_RIGHT="bottom-right-radius",hs.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",hs.ROUNDED_PIECE_WIDTH=10;let iU=hs;au((n,e)=>{const t=n.getColor(tpt);t&&!t.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function gP(n){return n<0?-n:n}class yhe{constructor(e,t,i,s,r,o,a){this.top=e,this.left=t,this.paddingLeft=i,this.width=s,this.height=r,this.textContent=o,this.textContentClassName=a}}var rg;(function(n){n[n.Single=0]="Single",n[n.MultiPrimary=1]="MultiPrimary",n[n.MultiSecondary=2]="MultiSecondary"})(rg||(rg={}));class whe{constructor(e,t){this._context=e;const i=this._context.configuration.options,s=i.get(50);this._cursorStyle=i.get(28),this._lineHeight=i.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=Pi(document.createElement("div")),this._domNode.setClassName(`cursor ${jC}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),Tr(this._domNode,s),this._domNode.setDisplay("none"),this._position=new se(1,1),this._pluralityClass="",this.setPlurality(t),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case rg.Single:this._pluralityClass="";break;case rg.MultiPrimary:this._pluralityClass="cursor-primary";break;case rg.MultiSecondary:this._pluralityClass="cursor-secondary";break}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),Tr(this._domNode,i),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[s,r]=yct(i,t-1);return[new se(e,s+1),i.substring(s,r)]}_prepareRender(e){let t="",i="";const[s,r]=this._getGraphemeAwarePosition();if(this._cursorStyle===Sr.Line||this._cursorStyle===Sr.LineThin){const d=e.visibleRangeForPosition(s);if(!d||d.outsideRenderedLine)return null;const f=ut(this._domNode.domNode);let p;this._cursorStyle===Sr.Line?(p=gue(f,this._lineCursorWidth>0?this._lineCursorWidth:2),p>2&&(t=r,i=this._getTokenClassName(s))):p=gue(f,1);let g=d.left,m=0;p>=2&&g>=1&&(m=1,g-=m);const _=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta;return new yhe(_,g,m,p,this._lineHeight,t,i)}const o=e.linesVisibleRangesForRange(new O(s.lineNumber,s.column,s.lineNumber,s.column+r.length),!1);if(!o||o.length===0)return null;const a=o[0];if(a.outsideRenderedLine||a.ranges.length===0)return null;const l=a.ranges[0],c=r===" "?this._typicalHalfwidthCharacterWidth:l.width<1?this._typicalHalfwidthCharacterWidth:l.width;this._cursorStyle===Sr.Block&&(t=r,i=this._getTokenClassName(s));let u=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta,h=this._lineHeight;return(this._cursorStyle===Sr.Underline||this._cursorStyle===Sr.UnderlineThin)&&(u+=this._lineHeight-2,h=2),new yhe(u,l.left,0,c,h,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${jC} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}const gI=class gI extends Ll{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new whe(this._context,rg.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=Pi(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new Zu,this._cursorFlatBlinkInterval=new Iee,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,s=this._secondaryCursors.length;i<s;i++)this._secondaryCursors[i].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,i){const s=this._secondaryCursors.length!==t.length||this._cursorSmoothCaretAnimation==="explicit"&&i!==3;if(this._primaryCursor.setPlurality(t.length?rg.MultiPrimary:rg.Single),this._primaryCursor.onCursorPositionChanged(e,s),this._updateBlinking(),this._secondaryCursors.length<t.length){const r=t.length-this._secondaryCursors.length;for(let o=0;o<r;o++){const a=new whe(this._context,rg.MultiSecondary);this._domNode.domNode.insertBefore(a.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(a)}}else if(this._secondaryCursors.length>t.length){const r=this._secondaryCursors.length-t.length;for(let o=0;o<r;o++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let r=0;r<t.length;r++)this._secondaryCursors[r].onCursorPositionChanged(t[r],s)}onCursorStateChanged(e){const t=[];for(let s=0,r=e.selections.length;s<r;s++)t[s]=e.selections[s].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);const i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,this._updateDomClassName()),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onFocusChanged(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onTokensChanged(e){const t=i=>{for(let s=0,r=e.ranges.length;s<r;s++)if(e.ranges[s].fromLineNumber<=i.lineNumber&&i.lineNumber<=e.ranges[s].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(const i of this._secondaryCursors)if(t(i.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();const e=this._getCursorBlinking(),t=e===0,i=e===5;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),!t&&!i&&(e===1?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},gI.BLINK_INTERVAL,ut(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},gI.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case Sr.Line:e+=" cursor-line-style";break;case Sr.Block:e+=" cursor-block-style";break;case Sr.Underline:e+=" cursor-underline-style";break;case Sr.LineThin:e+=" cursor-line-thin-style";break;case Sr.BlockOutline:e+=" cursor-block-outline-style";break;case Sr.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,i=this._secondaryCursors.length;t<i;t++)this._secondaryCursors[t].prepareRender(e)}render(e){const t=[];let i=0;const s=this._primaryCursor.render(e);s&&(t[i++]=s);for(let r=0,o=this._secondaryCursors.length;r<o;r++){const a=this._secondaryCursors[r].render(e);a&&(t[i++]=a)}this._renderData=t}getLastRenderData(){return this._renderData}};gI.BLINK_INTERVAL=500;let nU=gI;au((n,e)=>{const t=[{class:".cursor",foreground:f8,background:mte},{class:".cursor-primary",foreground:MEe,background:Tmt},{class:".cursor-secondary",foreground:OEe,background:Dmt}];for(const i of t){const s=n.getColor(i.foreground);if(s){let r=n.getColor(i.background);r||(r=s.opposite()),e.addRule(`.monaco-editor .cursors-layer ${i.class} { background-color: ${s}; border-color: ${s}; color: ${r}; }`),Vh(n.type)&&e.addRule(`.monaco-editor .cursors-layer.has-selection ${i.class} { border-left: 1px solid ${r}; border-right: 1px solid ${r}; }`)}}});const rW=()=>{throw new Error("Invalid change accessor")};class y_t extends Ll{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(146);this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=Pi(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=Pi(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const s of e)t.set(s.id,s);let i=!1;return this._context.viewModel.changeWhitespace(s=>{const r=Object.keys(this._zones);for(let o=0,a=r.length;o<a;o++){const l=r[o],c=this._zones[l],u=this._computeWhitespaceProps(c.delegate);c.isInHiddenArea=u.isInHiddenArea;const h=t.get(l);h&&(h.afterLineNumber!==u.afterViewLineNumber||h.height!==u.heightInPx)&&(s.changeOneWhitespace(l,u.afterViewLineNumber,u.heightInPx),this._safeCallOnComputedHeight(c.delegate,u.heightInPx),i=!0)}}),i}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146);return this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,e.hasChanged(67)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){return e.ordinal??e.afterColumn??1e4}_computeWhitespaceProps(e){if(e.afterLineNumber===0)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};let t;if(typeof e.afterColumn<"u")t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{const o=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new se(o,this._context.viewModel.model.getLineMaxColumn(o))}let i;t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});const s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),r=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(i);return{isInHiddenArea:!r,afterViewLineNumber:s.lineNumber,heightInPx:r?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(i=>{const s={addZone:r=>(t=!0,this._addZone(i,r)),removeZone:r=>{r&&(t=this._removeZone(i,r)||t)},layoutZone:r=>{r&&(t=this._layoutZone(i,r)||t)}};w_t(e,s),s.addZone=rW,s.removeZone=rW,s.layoutZone=rW}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),r={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:Pi(t.domNode),marginDomNode:t.marginDomNode?Pi(t.marginDomNode):null};return this._safeCallOnComputedHeight(r.delegate,i.heightInPx),r.domNode.setPosition("absolute"),r.domNode.domNode.style.width="100%",r.domNode.setDisplay("none"),r.domNode.setAttribute("monaco-view-zone",r.whitespaceId),this.domNode.appendChild(r.domNode),r.marginDomNode&&(r.marginDomNode.setPosition("absolute"),r.marginDomNode.domNode.style.width="100%",r.marginDomNode.setDisplay("none"),r.marginDomNode.setAttribute("monaco-view-zone",r.whitespaceId),this.marginDomNode.appendChild(r.marginDomNode)),this._zones[r.whitespaceId]=r,this.setShouldRender(),r.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.remove(),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],s=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=s.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(i.delegate,s.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx=="number"?e.heightInPx:typeof e.heightInLines=="number"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx=="number"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight=="function")try{e.onComputedHeight(t)}catch(i){Nt(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(i){Nt(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let s=!1;for(const o of t)this._zones[o.id].isInHiddenArea||(i[o.id]=o,s=!0);const r=Object.keys(this._zones);for(let o=0,a=r.length;o<a;o++){const l=r[o],c=this._zones[l];let u=0,h=0,d="none";i.hasOwnProperty(l)?(u=i[l].verticalOffset-e.bigNumbersDelta,h=i[l].height,d="block",c.isVisible||(c.domNode.setAttribute("monaco-visible-view-zone","true"),c.isVisible=!0),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(i[l].verticalOffset))):(c.isVisible&&(c.domNode.removeAttribute("monaco-visible-view-zone"),c.isVisible=!1),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),c.domNode.setTop(u),c.domNode.setHeight(h),c.domNode.setDisplay(d),c.marginDomNode&&(c.marginDomNode.setTop(u),c.marginDomNode.setHeight(h),c.marginDomNode.setDisplay(d))}s&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}function w_t(n,e){try{return n(e)}catch(t){Nt(t)}}class C_t extends P0{constructor(e){super(),this._context=e,this._options=new Che(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=new Che(this._context.configuration);return this._options.equals(t)?e.hasChanged(146):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,this._options.renderWhitespace==="selection"}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}prepareRender(e){if(this._options.renderWhitespace==="none"){this._renderResult=null;return}const t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber-t+1,r=new Array(s);for(let a=0;a<s;a++)r[a]=!0;const o=this._context.viewModel.getMinimapLinesRenderingData(e.viewportData.startLineNumber,e.viewportData.endLineNumber,r);this._renderResult=[];for(let a=e.viewportData.startLineNumber;a<=e.viewportData.endLineNumber;a++){const l=a-e.viewportData.startLineNumber,c=o.data[l];let u=null;if(this._options.renderWhitespace==="selection"){const h=this._selection;for(const d of h){if(d.endLineNumber<a||d.startLineNumber>a)continue;const f=d.startLineNumber===a?d.startColumn:c.minColumn,p=d.endLineNumber===a?d.endColumn:c.maxColumn;f<p&&(u||(u=[]),u.push(new xEe(f-1,p-1)))}}this._renderResult[l]=this._applyRenderWhitespace(e,a,u,c)}}_applyRenderWhitespace(e,t,i,s){if(this._options.renderWhitespace==="selection"&&!i||this._options.renderWhitespace==="trailing"&&s.continuesWithWrappedLine)return"";const r=this._context.theme.getColor(_te),o=this._options.renderWithSVG,a=s.content,l=this._options.stopRenderingLineAfter===-1?a.length:Math.min(this._options.stopRenderingLineAfter,a.length),c=s.continuesWithWrappedLine,u=s.minColumn-1,h=this._options.renderWhitespace==="boundary",d=this._options.renderWhitespace==="trailing",f=this._options.lineHeight,p=this._options.middotWidth,g=this._options.wsmiddotWidth,m=this._options.spaceWidth,_=Math.abs(g-m),b=Math.abs(p-m),w=_<b?11825:183,C=this._options.canUseHalfwidthRightwardsArrow;let S="",x=!1,k=Io(a),L;k===-1?(x=!0,k=l,L=l):L=Fh(a);let E=0,A=i&&i[E],I=0;for(let T=u;T<l;T++){const N=a.charCodeAt(T);if(A&&T>=A.endOffset&&(E++,A=i&&i[E]),N!==9&&N!==32||d&&!x&&T<=L)continue;if(h&&T>=k&&T<=L&&N===32){const V=T-1>=0?a.charCodeAt(T-1):0,W=T+1<l?a.charCodeAt(T+1):0;if(V!==32&&W!==32)continue}if(h&&c&&T===l-1){const V=T-1>=0?a.charCodeAt(T-1):0;if(N===32&&V!==32&&V!==9)continue}if(i&&(!A||A.startOffset>T||A.endOffset<=T))continue;const M=e.visibleRangeForPosition(new se(t,T+1));M&&(o?(I=Math.max(I,M.left),N===9?S+=this._renderArrow(f,m,M.left):S+=`<circle cx="${(M.left+m/2).toFixed(2)}" cy="${(f/2).toFixed(2)}" r="${(m/7).toFixed(2)}" />`):N===9?S+=`<div class="mwh" style="left:${M.left}px;height:${f}px;">${C?"→":"→"}</div>`:S+=`<div class="mwh" style="left:${M.left}px;height:${f}px;">${String.fromCharCode(w)}</div>`)}return o?(I=Math.round(I+m),`<svg style="bottom:0;position:absolute;width:${I}px;height:${f}px" viewBox="0 0 ${I} ${f}" xmlns="http://www.w3.org/2000/svg" fill="${r}">`+S+"</svg>"):S}_renderArrow(e,t,i){const s=t/7,r=t,o=e/2,a=i,l={x:0,y:s/2},c={x:100/125*r,y:l.y},u={x:c.x-.2*c.x,y:c.y+.2*c.x},h={x:u.x+.1*c.x,y:u.y+.1*c.x},d={x:h.x+.35*c.x,y:h.y-.35*c.x},f={x:d.x,y:-d.y},p={x:h.x,y:-h.y},g={x:u.x,y:-u.y},m={x:c.x,y:-c.y},_={x:l.x,y:-l.y};return`<path d="M ${[l,c,u,h,d,f,p,g,m,_].map(C=>`${(a+C.x).toFixed(2)} ${(o+C.y).toFixed(2)}`).join(" L ")}" />`}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class Che{constructor(e){const t=e.options,i=t.get(50),s=t.get(38);s==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):s==="svg"?(this.renderWhitespace=t.get(100),this.renderWithSVG=!0):(this.renderWhitespace=t.get(100),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(118)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}class S_t{constructor(e,t,i,s){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.lineHeight=t.lineHeight|0,this.whitespaceViewportData=i,this._model=s,this.visibleRange=new O(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class x_t{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class L_t{constructor(e,t,i){this.configuration=e,this.theme=new x_t(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}var E_t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},k_t=function(n,e){return function(t,i){e(t,i,n)}};let sU=class extends RN{constructor(e,t,i,s,r,o,a){super(),this._instantiationService=a,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new nt(1,1,1,1)],this._renderAnimationFrame=null,this._overflowWidgetsDomNode=o??null;const l=new S1t(t,s,r,e);this._context=new L_t(t,i,s),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(Qz,this._context,l,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=Pi(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=Pi(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=Pi(document.createElement("div")),ed.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new P1t(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new tU(this._context,this._linesContent),this._viewZones=new y_t(this._context),this._viewParts.push(this._viewZones);const c=new h_t(this._context);this._viewParts.push(c);const u=new g_t(this._context);this._viewParts.push(u);const h=new L1t(this._context);this._viewParts.push(h),h.addDynamicOverlay(new D1t(this._context)),h.addDynamicOverlay(new iU(this._context)),h.addDynamicOverlay(new Y1t(this._context)),h.addDynamicOverlay(new A1t(this._context)),h.addDynamicOverlay(new C_t(this._context));const d=new E1t(this._context);this._viewParts.push(d),d.addDynamicOverlay(new N1t(this._context)),d.addDynamicOverlay(new t_t(this._context)),d.addDynamicOverlay(new e_t(this._context)),d.addDynamicOverlay(new OF(this._context)),this._glyphMarginWidgets=new W1t(this._context),this._viewParts.push(this._glyphMarginWidgets);const f=new FF(this._context);f.getDomNode().appendChild(this._viewZones.marginDomNode),f.getDomNode().appendChild(d.getDomNode()),f.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(f),this._contentWidgets=new I1t(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new nU(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new c_t(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const p=new p_t(this._context);this._viewParts.push(p);const g=new k1t(this._context);this._viewParts.push(g);const m=new l_t(this._context);if(this._viewParts.push(m),c){const _=this._scrollbar.getOverviewRulerLayoutInfo();_.parent.insertBefore(c.getDomNode(),_.insertBefore)}this._linesContent.appendChild(h.getDomNode()),this._linesContent.appendChild(p.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(f.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(u.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(m.getDomNode()),this._overflowGuardContainer.appendChild(g.domNode),this.domNode.appendChild(this._overflowGuardContainer),o?(o.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),o.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new Emt(this._context,l,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let i=[],s=0;i=i.concat(e.getAllMarginDecorations().map(r=>{var a,l;const o=((a=r.options.glyphMargin)==null?void 0:a.position)??Uu.Center;return s=Math.max(s,r.range.endLineNumber),{range:r.range,lane:o,persist:(l=r.options.glyphMargin)==null?void 0:l.persistLane}})),i=i.concat(this._glyphMarginWidgets.getWidgets().map(r=>{const o=e.validateRange(r.preference.range);return s=Math.max(s,o.endLineNumber),{range:o,lane:r.preference.lane}})),i.sort((r,o)=>O.compareRangesUsingStarts(r.range,o.range)),t.reset(s);for(const r of i)t.push(r.lane,r.range,r.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,overflowWidgetsDomNode:this._overflowWidgetsDomNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new imt(e,t)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new se(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(146);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(143)+" "+Xz(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new Li;if(this._renderAnimationFrame===null){const e=this._createCoordinatedRendering();this._renderAnimationFrame=rU.INSTANCE.scheduleCoordinatedRendering({window:ut(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new Li;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new Li;return e.renderText()},prepareRender:(t,i)=>{if(this._store.isDisposed)throw new Li;return e.prepareRender(t,i)},render:(t,i)=>{if(this._store.isDisposed)throw new Li;return e.render(t,i)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();a1(()=>e.prepareRenderText());const t=a1(()=>e.renderText());if(t){const[i,s]=t;a1(()=>e.prepareRender(i,s)),a1(()=>e.render(i,s))}}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}s1.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new S_t(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new Fgt(this._context.viewLayout,i,this._viewLines)]},prepareRender:(e,t)=>{for(const i of e)i.prepareRender(t)},render:(e,t)=>{for(const i of e)i.render(t),i.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const r=this._viewLines.visibleRangeForPosition(new se(s.lineNumber,s.column));return r?r.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?g8.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new f_t(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i,s,r;this._contentWidgets.setWidgetPosition(e.widget,((t=e.position)==null?void 0:t.position)??null,((i=e.position)==null?void 0:i.secondaryPosition)??null,((s=e.position)==null?void 0:s.preference)??null,((r=e.position)==null?void 0:r.positionAffinity)??null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){this._overlayWidgets.setWidgetPosition(e.widget,e.position)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};sU=E_t([k_t(6,ct)],sU);function a1(n){try{return n()}catch(e){return Nt(e),null}}const C3=class C3{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(const[i,s]of this._animationFrameRunners)s.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,dF(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of e)a1(()=>i.prepareRenderText());const t=[];for(let i=0,s=e.length;i<s;i++){const r=e[i];t[i]=a1(()=>r.renderText())}for(let i=0,s=e.length;i<s;i++){const r=e[i],o=t[i];if(!o)continue;const[a,l]=o;a1(()=>r.prepareRender(a,l))}for(let i=0,s=e.length;i<s;i++){const r=e[i],o=t[i];if(!o)continue;const[a,l]=o;a1(()=>r.render(a,l))}}};C3.INSTANCE=new C3;let rU=C3;class Fk{constructor(e,t,i,s,r){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=s,this.wrappedTextIndentLength=r}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let s=this.breakOffsets[e]-t;return e>0&&(s+=this.wrappedTextIndentLength),s}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let s=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let r=0;r<this.injectionOffsets.length&&s>this.injectionOffsets[r];r++)s<this.injectionOffsets[r]+this.injectionOptions[r].content.length?s=this.injectionOffsets[r]:s-=this.injectionOptions[r].content.length;return s}translateToOutputPosition(e,t=2){let i=e;if(this.injectionOffsets!==null)for(let s=0;s<this.injectionOffsets.length&&!(e<this.injectionOffsets[s]||t!==1&&e===this.injectionOffsets[s]);s++)i+=this.injectionOptions[s].content.length;return this.offsetInInputWithInjectionsToOutputPosition(i,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let i=0,s=this.breakOffsets.length-1,r=0,o=0;for(;i<=s;){r=i+(s-i)/2|0;const l=this.breakOffsets[r];if(o=r>0?this.breakOffsets[r-1]:0,t===0)if(e<=o)s=r-1;else if(e>l)i=r+1;else break;else if(e<o)s=r-1;else if(e>=l)i=r+1;else break}let a=e-o;return r>0&&(a+=this.wrappedTextIndentLength),new mP(r,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const s=this.outputPositionToOffsetInInputWithInjections(e,t),r=this.normalizeOffsetInInputWithInjectionsAroundInjections(s,i);if(r!==s)return this.offsetInInputWithInjectionsToOutputPosition(r,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new mP(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const s=this.getOutputLineCount()-1;if(e<s&&t===this.getMaxOutputOffset(e))return new mP(e+1,this.getMinOutputOffset(e+1))}return new mP(e,t)}outputPositionToOffsetInInputWithInjections(e,t){return e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&She(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let s=i.offsetInInputWithInjections;if(xhe(this.injectionOptions[i.injectedTextIndex].cursorStops))return s;let r=i.injectedTextIndex-1;for(;r>=0&&this.injectionOffsets[r]===this.injectionOffsets[i.injectedTextIndex]&&!(She(this.injectionOptions[r].cursorStops)||(s-=this.injectionOptions[r].content.length,xhe(this.injectionOptions[r].cursorStops)));)r--;return s}}else if(t===1||t===4){let s=i.offsetInInputWithInjections+i.length,r=i.injectedTextIndex;for(;r+1<this.injectionOffsets.length&&this.injectionOffsets[r+1]===this.injectionOffsets[r];)s+=this.injectionOptions[r+1].content.length,r++;return s}else if(t===0||t===3){let s=i.offsetInInputWithInjections,r=i.injectedTextIndex;for(;r-1>=0&&this.injectionOffsets[r-1]===this.injectionOffsets[r];)s-=this.injectionOptions[r-1].content.length,r--;return s}qB()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),s=this.getInjectedTextAtOffset(i);return s?{options:this.injectionOptions[s.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let s=0;for(let r=0;r<t.length;r++){const o=i[r].content.length,a=t[r]+s,l=t[r]+s+o;if(a>e)break;if(e<=l)return{injectedTextIndex:r,offsetInInputWithInjections:a,length:o};s+=o}}}}function She(n){return n==null?!0:n===Tu.Right||n===Tu.Both}function xhe(n){return n==null?!0:n===Tu.Left||n===Tu.Both}class mP{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new se(e+this.outputLineIndex,this.outputOffset+1)}}class I_t{constructor(){this.changeType=1}}class td{static applyInjectedText(e,t){if(!t||t.length===0)return e;let i="",s=0;for(const r of t)i+=e.substring(s,r.column-1),s=r.column-1,i+=r.options.content;return i+=e.substring(s),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new td(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new td(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,s)=>i.lineNumber===s.lineNumber?i.column===s.column?i.order-s.order:i.column-s.column:i.lineNumber-s.lineNumber),t}constructor(e,t,i,s,r){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=s,this.order=r}}class Lhe{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class T_t{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class D_t{constructor(e,t,i,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class N_t{constructor(){this.changeType=5}}class KC{constructor(e,t,i,s){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=s,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;t<i;t++)if(this.changes[t].changeType===e)return!0;return!1}static merge(e,t){const i=[].concat(e.changes).concat(t.changes),s=t.versionId,r=e.isUndoing||t.isUndoing,o=e.isRedoing||t.isRedoing;return new KC(i,s,r,o)}}class ike{constructor(e){this.changes=e}}class Eb{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=KC.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),i=Eb._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new Eb(t,i)}static _mergeChangeEvents(e,t){const i=[].concat(e.changes).concat(t.changes),s=t.eol,r=t.versionId,o=e.isUndoing||t.isUndoing,a=e.isRedoing||t.isRedoing,l=e.isFlush||t.isFlush,c=e.isEolChange&&t.isEolChange;return{changes:i,eol:s,isEolChange:c,versionId:r,isUndoing:o,isRedoing:a,isFlush:l}}}const oW=tm("domLineBreaksComputer",{createHTML:n=>n});class Cte{static create(e){return new Cte(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,i,s,r){const o=[],a=[];return{addRequest:(l,c,u)=>{o.push(l),a.push(c)},finalize:()=>A_t(i1(this.targetWindow.deref()),o,e,t,i,s,r,a)}}}function A_t(n,e,t,i,s,r,o,a){function l(E){const A=a[E];if(A){const I=td.applyInjectedText(e[E],A),T=A.map(M=>M.options),N=A.map(M=>M.column-1);return new Fk(N,T,[I.length],[],0)}else return null}if(s===-1){const E=[];for(let A=0,I=e.length;A<I;A++)E[A]=l(A);return E}const c=Math.round(s*t.typicalHalfwidthCharacterWidth),h=Math.round(i*(r===3?2:r===2?1:0)),d=Math.ceil(t.spaceWidth*h),f=document.createElement("div");Tr(f,t);const p=new uL(1e4),g=[],m=[],_=[],b=[],w=[];for(let E=0;E<e.length;E++){const A=td.applyInjectedText(e[E],a[E]);let I=0,T=0,N=c;if(r!==0)if(I=Io(A),I===-1)I=0;else{for(let B=0;B<I;B++){const $=A.charCodeAt(B)===9?i-T%i:1;T+=$}const W=Math.ceil(t.spaceWidth*T);W+t.typicalFullwidthCharacterWidth>c?(I=0,T=0):N=c-W}const M=A.substr(I),V=P_t(M,T,i,N,p,d);g[E]=I,m[E]=T,_[E]=M,b[E]=V[0],w[E]=V[1]}const C=p.build(),S=(oW==null?void 0:oW.createHTML(C))??C;f.innerHTML=S,f.style.position="absolute",f.style.top="10000",o==="keepAll"?(f.style.wordBreak="keep-all",f.style.overflowWrap="anywhere"):(f.style.wordBreak="inherit",f.style.overflowWrap="break-word"),n.document.body.appendChild(f);const x=document.createRange(),k=Array.prototype.slice.call(f.children,0),L=[];for(let E=0;E<e.length;E++){const A=k[E],I=R_t(x,A,_[E],b[E]);if(I===null){L[E]=l(E);continue}const T=g[E],N=m[E]+h,M=w[E],V=[];for(let Y=0,le=I.length;Y<le;Y++)V[Y]=M[I[Y]];if(T!==0)for(let Y=0,le=I.length;Y<le;Y++)I[Y]+=T;let W,B;const $=a[E];$?(W=$.map(Y=>Y.options),B=$.map(Y=>Y.column-1)):(W=null,B=null),L[E]=new Fk(B,W,I,V,N)}return f.remove(),L}function P_t(n,e,t,i,s,r){if(r!==0){const d=String(r);s.appendString('<div style="text-indent: -'),s.appendString(d),s.appendString("px; padding-left: "),s.appendString(d),s.appendString("px; box-sizing: border-box; width:")}else s.appendString('<div style="width:');s.appendString(String(i)),s.appendString('px;">');const o=n.length;let a=e,l=0;const c=[],u=[];let h=0<o?n.charCodeAt(0):0;s.appendString("<span>");for(let d=0;d<o;d++){d!==0&&d%16384===0&&s.appendString("</span><span>"),c[d]=l,u[d]=a;const f=h;h=d+1<o?n.charCodeAt(d+1):0;let p=1,g=1;switch(f){case 9:p=t-a%t,g=p;for(let m=1;m<=p;m++)m<p?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 32:h===32?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 60:s.appendString("<");break;case 62:s.appendString(">");break;case 38:s.appendString("&");break;case 0:s.appendString("�");break;case 65279:case 8232:case 8233:case 133:s.appendCharCode(65533);break;default:r_(f)&&g++,f<32?s.appendCharCode(9216+f):s.appendCharCode(f)}l+=p,a+=g}return s.appendString("</span>"),c[n.length]=l,u[n.length]=a,s.appendString("</div>"),[c,u]}function R_t(n,e,t,i){if(t.length<=1)return null;const s=Array.prototype.slice.call(e.children,0),r=[];try{oU(n,s,i,0,null,t.length-1,null,r)}catch(o){return console.log(o),null}return r.length===0?null:(r.push(t.length),r)}function oU(n,e,t,i,s,r,o,a){if(i===r||(s=s||aW(n,e,t[i],t[i+1]),o=o||aW(n,e,t[r],t[r+1]),Math.abs(s[0].top-o[0].top)<=.1))return;if(i+1===r){a.push(r);return}const l=i+(r-i)/2|0,c=aW(n,e,t[l],t[l+1]);oU(n,e,t,i,s,l,c,a),oU(n,e,t,l,c,r,o,a)}function aW(n,e,t,i){return n.setStart(e[t/16384|0].firstChild,t%16384),n.setEnd(e[i/16384|0].firstChild,i%16384),n.getClientRects()}class M_t extends ue{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new gee),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const s of t){if(this._pending.has(s.id)){Nt(new Error(`Cannot have two contributions with the same id ${s.id}`));continue}this._pending.set(s.id,s)}this._instantiateSome(0),this._register(BE(ut(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(BE(ut(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(BE(ut(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)typeof i.saveViewState=="function"&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)typeof i.restoreViewState=="function"&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return BE(ut((e=this._editor)==null?void 0:e.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const i=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,i),typeof i.restoreViewState=="function"&&t.instantiation!==0&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(i){Nt(i)}}}}class nke{constructor(e,t,i,s,r,o,a){this.id=e,this.label=t,this.alias=i,this.metadata=s,this._precondition=r,this._run=o,this._contextKeyService=a}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}const WN={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"};function d_(n){let e=0,t=0,i=0,s=0;for(let r=0,o=n.length;r<o;r++){const a=n.charCodeAt(r);a===13?(e===0&&(t=r),e++,r+1<o&&n.charCodeAt(r+1)===10?(s|=2,r++):s|=3,i=r+1):a===10&&(s|=1,e===0&&(t=r),e++,i=r+1)}return e===0&&(t=n.length),[e,t,n.length-i,s]}class Yt{static addRange(e,t){let i=0;for(;i<t.length&&t[i].endExclusive<e.start;)i++;let s=i;for(;s<t.length&&t[s].start<=e.endExclusive;)s++;if(i===s)t.splice(i,0,e);else{const r=Math.min(e.start,t[i].start),o=Math.max(e.endExclusive,t[s-1].endExclusive);t.splice(i,s-i,new Yt(r,o))}}static tryCreate(e,t){if(!(e>t))return new Yt(e,t)}static ofLength(e){return new Yt(0,e)}static ofStartAndLength(e,t){return new Yt(e,e+t)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new Li(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new Yt(this.start+e,this.endExclusive+e)}deltaStart(e){return new Yt(this.start+e,this.endExclusive)}deltaEnd(e){return new Yt(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new Yt(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){const t=Math.max(this.start,e.start),i=Math.min(this.endExclusive,e.endExclusive);if(t<=i)return new Yt(t,i)}intersects(e){const t=Math.max(this.start,e.start),i=Math.min(this.endExclusive,e.endExclusive);return t<i}isBefore(e){return this.endExclusive<=e.start}isAfter(e){return this.start>=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new Li(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new Li(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;t<this.endExclusive;t++)e(t)}}class Ste{constructor(){this._sortedRanges=[]}addRange(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<e.start;)t++;let i=t;for(;i<this._sortedRanges.length&&this._sortedRanges[i].start<=e.endExclusive;)i++;if(t===i)this._sortedRanges.splice(t,0,e);else{const s=Math.min(e.start,this._sortedRanges[t].start),r=Math.max(e.endExclusive,this._sortedRanges[i-1].endExclusive);this._sortedRanges.splice(t,i-t,new Yt(s,r))}}toString(){return this._sortedRanges.map(e=>e.toString()).join(", ")}intersectsStrict(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<=e.start;)t++;return t<this._sortedRanges.length&&this._sortedRanges[t].start<e.endExclusive}intersectWithRange(e){const t=new Ste;for(const i of this._sortedRanges){const s=i.intersect(e);s&&t.addRange(s)}return t}intersectWithRangeLength(e){return this.intersectWithRange(e).length}get length(){return this._sortedRanges.reduce((e,t)=>e+t.length,0)}}class xt{static fromRangeInclusive(e){return new xt(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(e.length===0)return[];let t=new Oc(e[0].slice());for(let i=1;i<e.length;i++)t=t.getUnion(new Oc(e[i].slice()));return t.ranges}static join(e){if(e.length===0)throw new Li("lineRanges cannot be empty");let t=e[0].startLineNumber,i=e[0].endLineNumberExclusive;for(let s=1;s<e.length;s++)t=Math.min(t,e[s].startLineNumber),i=Math.max(i,e[s].endLineNumberExclusive);return new xt(t,i)}static ofLength(e,t){return new xt(e,e+t)}static deserialize(e){return new xt(e[0],e[1])}constructor(e,t){if(e>t)throw new Li(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(e){return new xt(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new xt(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new xt(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return`[${this.startLineNumber},${this.endLineNumberExclusive})`}intersect(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=i)return new xt(t,i)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}overlapOrTouch(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}equals(e){return this.startLineNumber===e.startLineNumber&&this.endLineNumberExclusive===e.endLineNumberExclusive}toInclusiveRange(){return this.isEmpty?null:new O(this.startLineNumber,1,this.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER)}toExclusiveRange(){return new O(this.startLineNumber,1,this.endLineNumberExclusive,1)}mapToLineArray(e){const t=[];for(let i=this.startLineNumber;i<this.endLineNumberExclusive;i++)t.push(e(i));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}includes(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}toOffsetRange(){return new Yt(this.startLineNumber-1,this.endLineNumberExclusive-1)}}class Oc{constructor(e=[]){this._normalizedRanges=e}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;const t=zT(this._normalizedRanges,s=>s.endLineNumberExclusive>=e.startLineNumber),i=$T(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const s=this._normalizedRanges[t];this._normalizedRanges[t]=s.join(e)}else{const s=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,s)}}contains(e){const t=nx(this._normalizedRanges,i=>i.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=nx(this._normalizedRanges,i=>i.startLineNumber<e.endLineNumberExclusive);return!!t&&t.endLineNumberExclusive>e.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let i=0,s=0,r=null;for(;i<this._normalizedRanges.length||s<e._normalizedRanges.length;){let o=null;if(i<this._normalizedRanges.length&&s<e._normalizedRanges.length){const a=this._normalizedRanges[i],l=e._normalizedRanges[s];a.startLineNumber<l.startLineNumber?(o=a,i++):(o=l,s++)}else i<this._normalizedRanges.length?(o=this._normalizedRanges[i],i++):(o=e._normalizedRanges[s],s++);r===null?r=o:r.endLineNumberExclusive>=o.startLineNumber?r=new xt(r.startLineNumber,Math.max(r.endLineNumberExclusive,o.endLineNumberExclusive)):(t.push(r),r=o)}return r!==null&&t.push(r),new Oc(t)}subtractFrom(e){const t=zT(this._normalizedRanges,o=>o.endLineNumberExclusive>=e.startLineNumber),i=$T(this._normalizedRanges,o=>o.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)return new Oc([e]);const s=[];let r=e.startLineNumber;for(let o=t;o<i;o++){const a=this._normalizedRanges[o];a.startLineNumber>r&&s.push(new xt(r,a.startLineNumber)),r=a.endLineNumberExclusive}return r<e.endLineNumberExclusive&&s.push(new xt(r,e.endLineNumberExclusive)),new Oc(s)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(", ")}getIntersection(e){const t=[];let i=0,s=0;for(;i<this._normalizedRanges.length&&s<e._normalizedRanges.length;){const r=this._normalizedRanges[i],o=e._normalizedRanges[s],a=r.intersect(o);a&&!a.isEmpty&&t.push(a),r.endLineNumberExclusive<o.endLineNumberExclusive?i++:s++}return new Oc(t)}getWithDelta(e){return new Oc(this._normalizedRanges.map(t=>t.delta(e)))}}class Ehe{constructor(e,t,i,s){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=s}}class O_t{constructor(e,t,i,s,r,o){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=s,this.nestingLevelOfEqualBracketType=r,this.bracketPairNode=o}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class F_t extends O_t{constructor(e,t,i,s,r,o,a){super(e,t,i,s,r,o),this.minVisibleColumnIndentation=a}}const Bm=class Bm{static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new Bm(0,t.column-e.column):new Bm(t.lineNumber-e.lineNumber,t.column-1)}static ofRange(e){return Bm.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,i=0;for(const s of e)s===` +`?(t++,i=0):i++;return new Bm(t,i)}constructor(e,t){this.lineCount=e,this.columnCount=t}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}createRange(e){return this.lineCount===0?new O(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new O(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(e){return this.lineCount===0?new se(e.lineNumber,e.column+this.columnCount):new se(e.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}};Bm.zero=new Bm(0,0);let ju=Bm;function B_t(n,e,t,i){return n!==t?ys(t-n,i):ys(0,i-e)}const Yo=0;function UF(n){return n===0}const ic=2**26;function ys(n,e){return n*ic+e}function Xc(n){const e=n,t=Math.floor(e/ic),i=e-t*ic;return new ju(t,i)}function W_t(n){return Math.floor(n/ic)}function Yn(n,e){let t=n+e;return e>=ic&&(t=t-n%ic),t}function V_t(n,e){return n.reduce((t,i)=>Yn(t,e(i)),Yo)}function ske(n,e){return n===e}function KT(n,e){const t=n,i=e;if(i-t<=0)return Yo;const r=Math.floor(t/ic),o=Math.floor(i/ic),a=i-o*ic;if(r===o){const l=t-r*ic;return ys(0,a-l)}else return ys(o-r,a)}function GC(n,e){return n<e}function XC(n,e){return n<=e}function HE(n,e){return n>=e}function Kw(n){return ys(n.lineNumber-1,n.column-1)}function kb(n,e){const t=n,i=Math.floor(t/ic),s=t-i*ic,r=e,o=Math.floor(r/ic),a=r-o*ic;return new O(i+1,s+1,o+1,a+1)}function H_t(n){const e=ip(n);return ys(e.length-1,e[e.length-1].length)}class og{static fromModelContentChanges(e){return e.map(i=>{const s=O.lift(i.range);return new og(Kw(s.getStartPosition()),Kw(s.getEndPosition()),H_t(i.text))}).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return`[${Xc(this.startOffset)}...${Xc(this.endOffset)}) -> ${Xc(this.newLength)}`}}class $_t{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(t=>xte.from(t))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return i===null?null:KT(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?ys(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):ys(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=Xc(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?ys(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):ys(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx<this.edits.length;){const t=this.edits[this.nextEditIdx],i=this.translateOldToCur(t.endOffsetAfterObj);if(XC(i,e)){this.nextEditIdx++;const s=Xc(i),r=Xc(this.translateOldToCur(t.endOffsetBeforeObj)),o=s.lineCount-r.lineCount;this.deltaOldToNewLineCount+=o;const a=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,l=s.columnCount-r.columnCount;this.deltaOldToNewColumnCount=a+l,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}else break}}}class xte{static from(e){return new xte(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,i){this.endOffsetBeforeObj=Xc(t),this.endOffsetAfterObj=Xc(Yn(e,i)),this.offsetObj=Xc(e)}}const _P=[],Lc=class Lc{static create(e,t){if(e<=128&&t.length===0){let i=Lc.cache[e];return i||(i=new Lc(e,t),Lc.cache[e]=i),i}return new Lc(e,t)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const i=t.getKey(e);let s=i>>5;if(s===0){const o=1<<i|this.items;return o===this.items?this:Lc.create(o,this.additionalItems)}s--;const r=this.additionalItems.slice(0);for(;r.length<s;)r.push(0);return r[s]|=1<<(i&31),Lc.create(this.items,r)}merge(e){const t=this.items|e.items;if(this.additionalItems===_P&&e.additionalItems===_P)return t===this.items?this:t===e.items?e:Lc.create(t,_P);const i=[];for(let s=0;s<Math.max(this.additionalItems.length,e.additionalItems.length);s++){const r=this.additionalItems[s]||0,o=e.additionalItems[s]||0;i.push(r|o)}return Lc.create(t,i)}intersects(e){if(this.items&e.items)return!0;for(let t=0;t<Math.min(this.additionalItems.length,e.additionalItems.length);t++)if(this.additionalItems[t]&e.additionalItems[t])return!0;return!1}};Lc.cache=new Array(129),Lc.empty=Lc.create(0,_P);let al=Lc;const khe={getKey(n){return n}};class rke{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return t===void 0&&(t=this.items.size,this.items.set(e,t)),t}}class Lte{get length(){return this._length}constructor(e){this._length=e}}class GT extends Lte{static create(e,t,i){let s=e.length;return t&&(s=Yn(s,t.length)),i&&(s=Yn(s,i.length)),new GT(s,e,t,i,t?t.missingOpeningBracketIds:al.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const e=[];return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}constructor(e,t,i,s,r){super(e),this.openingBracket=t,this.child=i,this.closingBracket=s,this.missingOpeningBracketIds=r}canBeReused(e){return!(this.closingBracket===null||e.intersects(this.missingOpeningBracketIds))}deepClone(){return new GT(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation(Yn(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class Gf extends Lte{static create23(e,t,i,s=!1){let r=e.length,o=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(r=Yn(r,t.length),o=o.merge(t.missingOpeningBracketIds),i){if(e.listHeight!==i.listHeight)throw new Error("Invalid list heights");r=Yn(r,i.length),o=o.merge(i.missingOpeningBracketIds)}return s?new z_t(r,e.listHeight+1,e,t,i,o):new XT(r,e.listHeight+1,e,t,i,o)}static getEmpty(){return new U_t(Yo,0,[],al.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,i){super(e),this.listHeight=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(e===0)return;const t=this.getChild(e-1),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(e-1,i),i}makeFirstElementMutable(){if(this.throwIfImmutable(),this.childrenLength===0)return;const t=this.getChild(0),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(0,i),i}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds)||this.childrenLength===0)return!1;let t=this;for(;t.kind===4;){const i=t.childrenLength;if(i===0)throw new Li;t=t.getChild(i-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let s=1;s<e;s++){const r=this.getChild(s);t=Yn(t,r.length),i=i.merge(r.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(this.cachedMinIndentation!==-1)return this.cachedMinIndentation;let i=Number.MAX_SAFE_INTEGER,s=e;for(let r=0;r<this.childrenLength;r++){const o=this.getChild(r);o&&(i=Math.min(i,o.computeMinIndentation(s,t)),s=Yn(s,o.length))}return this.cachedMinIndentation=i,i}}class XT extends Gf{get childrenLength(){return this._item3!==null?3:2}getChild(e){switch(e){case 0:return this._item1;case 1:return this._item2;case 2:return this._item3}throw new Error("Invalid child index")}setChild(e,t){switch(e){case 0:this._item1=t;return;case 1:this._item2=t;return;case 2:this._item3=t;return}throw new Error("Invalid child index")}get children(){return this._item3?[this._item1,this._item2,this._item3]:[this._item1,this._item2]}get item1(){return this._item1}get item2(){return this._item2}get item3(){return this._item3}constructor(e,t,i,s,r,o){super(e,t,o),this._item1=i,this._item2=s,this._item3=r}deepClone(){return new XT(this.length,this.listHeight,this._item1.deepClone(),this._item2.deepClone(),this._item3?this._item3.deepClone():null,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){if(this._item3)throw new Error("Cannot append to a full (2,3) tree node");this.throwIfImmutable(),this._item3=e,this.handleChildrenChanged()}unappendChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item3;return this._item3=null,this.handleChildrenChanged(),e}prependChildOfSameHeight(e){if(this._item3)throw new Error("Cannot prepend to a full (2,3) tree node");this.throwIfImmutable(),this._item3=this._item2,this._item2=this._item1,this._item1=e,this.handleChildrenChanged()}unprependChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item1;return this._item1=this._item2,this._item2=this._item3,this._item3=null,this.handleChildrenChanged(),e}toMutable(){return this}}class z_t extends XT{toMutable(){return new XT(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}class jF extends Gf{get childrenLength(){return this._children.length}getChild(e){return this._children[e]}setChild(e,t){this._children[e]=t}get children(){return this._children}constructor(e,t,i,s){super(e,t,s),this._children=i}deepClone(){const e=new Array(this._children.length);for(let t=0;t<this._children.length;t++)e[t]=this._children[t].deepClone();return new jF(this.length,this.listHeight,e,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){this.throwIfImmutable(),this._children.push(e),this.handleChildrenChanged()}unappendChild(){this.throwIfImmutable();const e=this._children.pop();return this.handleChildrenChanged(),e}prependChildOfSameHeight(e){this.throwIfImmutable(),this._children.unshift(e),this.handleChildrenChanged()}unprependChild(){this.throwIfImmutable();const e=this._children.shift();return this.handleChildrenChanged(),e}toMutable(){return this}}class U_t extends jF{toMutable(){return new jF(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}const j_t=[];class Ete extends Lte{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return j_t}deepClone(){return this}}class Pv extends Ete{get kind(){return 0}get missingOpeningBracketIds(){return al.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const i=Xc(e),s=(i.columnCount===0?i.lineCount:i.lineCount+1)+1,r=W_t(Yn(e,this.length))+1;let o=Number.MAX_SAFE_INTEGER;for(let a=s;a<=r;a++){const l=t.getLineFirstNonWhitespaceColumn(a),c=t.getLineContent(a);if(l===0)continue;const u=Vs.visibleColumnFromColumn(c,l,t.getOptions().tabSize);o=Math.min(o,u)}return o}}class qF extends Ete{static create(e,t,i){return new qF(e,t,i)}get kind(){return 1}get missingOpeningBracketIds(){return al.getEmpty()}constructor(e,t,i){super(e),this.bracketInfo=t,this.bracketIds=i}get text(){return this.bracketInfo.bracketText}get languageId(){return this.bracketInfo.languageId}canBeReused(e){return!1}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}class q_t extends Ete{get kind(){return 3}constructor(e,t){super(t),this.missingOpeningBracketIds=e}canBeReused(e){return!e.intersects(this.missingOpeningBracketIds)}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}let jm=class{constructor(e,t,i,s,r){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=s,this.astNode=r}};class oke{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new K_t(this.textModel,this.bracketTokens),this._offset=Yo,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return ys(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=Yn(this._offset,e);const t=Xc(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=Yn(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class K_t{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const r=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=r.length,r}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const r=this.lineTokens,o=r.getCount();let a=null;if(this.lineTokenOffset<o){const l=r.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<o&&l===r.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const c=La.getTokenType(l)===0,u=La.containsBalancedBrackets(l),h=r.getEndOffset(this.lineTokenOffset);if(u&&c&&this.lineCharOffset<h){const d=r.getLanguageId(this.lineTokenOffset),f=this.line.substring(this.lineCharOffset,h),p=this.bracketTokens.getSingleLanguageBracketTokens(d),g=p.regExpGlobal;if(g){g.lastIndex=0;const m=g.exec(f);m&&(a=p.getToken(m[0]),a&&(this.lineCharOffset+=m.index))}}if(i+=h-this.lineCharOffset,a)if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=a;break}else return this.lineCharOffset+=a.length,a;else this.lineTokenOffset++,this.lineCharOffset=h}else if(this.lineIdx===this.textBufferLineCount-1||(this.lineIdx++,this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.lineTokenOffset=0,this.line=this.lineTokens.getLineContent(),this.lineCharOffset=0,i+=33,i>1e3))break;if(i>1500)break}const s=B_t(e,t,this.lineIdx,this.lineCharOffset);return new jm(s,0,-1,al.getEmpty(),new Pv(s))}}class G_t{constructor(e,t){this.text=e,this._offset=Yo,this.idx=0;const i=t.getRegExpStr(),s=i?new RegExp(i+`| +`,"gi"):null,r=[];let o,a=0,l=0,c=0,u=0;const h=[];for(let p=0;p<60;p++)h.push(new jm(ys(0,p),0,-1,al.getEmpty(),new Pv(ys(0,p))));const d=[];for(let p=0;p<60;p++)d.push(new jm(ys(1,p),0,-1,al.getEmpty(),new Pv(ys(1,p))));if(s)for(s.lastIndex=0;(o=s.exec(e))!==null;){const p=o.index,g=o[0];if(g===` +`)a++,l=p+1;else{if(c!==p){let m;if(u===a){const _=p-c;if(_<h.length)m=h[_];else{const b=ys(0,_);m=new jm(b,0,-1,al.getEmpty(),new Pv(b))}}else{const _=a-u,b=p-l;if(_===1&&b<d.length)m=d[b];else{const w=ys(_,b);m=new jm(w,0,-1,al.getEmpty(),new Pv(w))}}r.push(m)}r.push(t.getToken(g)),c=p+g.length,u=a}}const f=e.length;if(c!==f){const p=u===a?ys(0,f-c):ys(a-u,f-l);r.push(new jm(p,0,-1,al.getEmpty(),new Pv(p)))}this.length=ys(a,f-l),this.tokens=r}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new blt}}class kte{static createFromLanguage(e,t){function i(r){return t.getKey(`${r.languageId}:::${r.bracketText}`)}const s=new Map;for(const r of e.bracketsNew.openingBrackets){const o=ys(0,r.bracketText.length),a=i(r),l=al.getEmpty().add(a,khe);s.set(r.bracketText,new jm(o,1,a,l,qF.create(o,r,l)))}for(const r of e.bracketsNew.closingBrackets){const o=ys(0,r.bracketText.length);let a=al.getEmpty();const l=r.getOpeningBrackets();for(const c of l)a=a.add(i(c),khe);s.set(r.bracketText,new jm(o,2,i(l[0]),a,qF.create(o,r,a)))}return new kte(s)}constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map(t=>X_t(t)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function X_t(n){let e=dc(n);return/^[\w ]+/.test(n)&&(e=`\\b${e}`),/[\w ]+$/.test(n)&&(e=`${e}\\b`),e}class ake{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=kte.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function Y_t(n){if(n.length===0)return null;if(n.length===1)return n[0];let e=0;function t(){if(e>=n.length)return null;const o=e,a=n[o].listHeight;for(e++;e<n.length&&n[e].listHeight===a;)e++;return e-o>=2?lke(o===0&&e===n.length?n:n.slice(o,e),!1):n[o]}let i=t(),s=t();if(!s)return i;for(let o=t();o;o=t())Ihe(i,s)<=Ihe(s,o)?(i=lW(i,s),s=o):s=lW(s,o);return lW(i,s)}function lke(n,e=!1){if(n.length===0)return null;if(n.length===1)return n[0];let t=n.length;for(;t>3;){const i=t>>1;for(let s=0;s<i;s++){const r=s<<1;n[s]=Gf.create23(n[r],n[r+1],r+3===t?n[r+2]:null,e)}t=i}return Gf.create23(n[0],n[1],t>=3?n[2]:null,e)}function Ihe(n,e){return Math.abs(n.listHeight-e.listHeight)}function lW(n,e){return n.listHeight===e.listHeight?Gf.create23(n,e,null,!1):n.listHeight>e.listHeight?Z_t(n,e):Q_t(e,n)}function Z_t(n,e){n=n.toMutable();let t=n;const i=[];let s;for(;;){if(e.listHeight===t.listHeight){s=e;break}if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeLastElementMutable()}for(let r=i.length-1;r>=0;r--){const o=i[r];s?o.childrenLength>=3?s=Gf.create23(o.unappendChild(),s,null,!1):(o.appendChildOfSameHeight(s),s=void 0):o.handleChildrenChanged()}return s?Gf.create23(n,s,null,!1):n}function Q_t(n,e){n=n.toMutable();let t=n;const i=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeFirstElementMutable()}let s=e;for(let r=i.length-1;r>=0;r--){const o=i[r];s?o.childrenLength>=3?s=Gf.create23(s,o.unprependChild(),null,!1):(o.prependChildOfSameHeight(s),s=void 0):o.handleChildrenChanged()}return s?Gf.create23(s,n,null,!1):n}class J_t{constructor(e){this.lastOffset=Yo,this.nextNodes=[e],this.offsets=[Yo],this.idxs=[]}readLongestNodeAt(e,t){if(GC(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=uE(this.nextNodes);if(!i)return;const s=uE(this.offsets);if(GC(e,s))return;if(GC(s,e))if(Yn(s,i.length)<=e)this.nextNodeAfterCurrent();else{const r=cW(i);r!==-1?(this.nextNodes.push(i.getChild(r)),this.offsets.push(s),this.idxs.push(r)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const r=cW(i);if(r===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(r)),this.offsets.push(s),this.idxs.push(r)}}}}nextNodeAfterCurrent(){for(;;){const e=uE(this.offsets),t=uE(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=uE(this.nextNodes),s=cW(i,this.idxs[this.idxs.length-1]);if(s!==-1){this.nextNodes.push(i.getChild(s)),this.offsets.push(Yn(e,t.length)),this.idxs[this.idxs.length-1]=s;break}else this.idxs.pop()}}}function cW(n,e=-1){for(;;){if(e++,e>=n.childrenLength)return-1;if(n.getChild(e))return e}}function uE(n){return n.length>0?n[n.length-1]:void 0}function aU(n,e,t,i){return new evt(n,e,t,i).parseDocument()}class evt{constructor(e,t,i,s){if(this.tokenizer=e,this.createImmutableLists=s,this._itemsConstructed=0,this._itemsFromCache=0,i&&s)throw new Error("Not supported");this.oldNodeReader=i?new J_t(i):void 0,this.positionMapper=new $_t(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(al.getEmpty(),0);return e||(e=Gf.getEmpty()),e}parseList(e,t){const i=[];for(;;){let r=this.tryReadChildFromCache(e);if(!r){const o=this.tokenizer.peek();if(!o||o.kind===2&&o.bracketIds.intersects(e))break;r=this.parseChild(e,t+1)}r.kind===4&&r.childrenLength===0||i.push(r)}return this.oldNodeReader?Y_t(i):lke(i,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!UF(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),s=>t!==null&&!GC(s.length,t)?!1:s.canBeReused(e));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new q_t(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new Pv(i.length);const s=e.merge(i.bracketIds),r=this.parseList(s,t+1),o=this.tokenizer.peek();return o&&o.kind===2&&(o.bracketId===i.bracketId||o.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),GT.create(i.astNode,r,o.astNode)):GT.create(i.astNode,r,null)}default:throw new Error("unexpected")}}}function KF(n,e){if(n.length===0)return e;if(e.length===0)return n;const t=new Hg(The(n)),i=The(e);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let s=t.dequeue();function r(c){if(c===void 0){const h=t.takeWhile(d=>!0)||[];return s&&h.unshift(s),h}const u=[];for(;s&&!UF(c);){const[h,d]=s.splitAt(c);u.push(h),c=KT(h.lengthAfter,c),s=d??t.dequeue()}return UF(c)||u.push(new l1(!1,c,c)),u}const o=[];function a(c,u,h){if(o.length>0&&ske(o[o.length-1].endOffset,c)){const d=o[o.length-1];o[o.length-1]=new og(d.startOffset,u,Yn(d.newLength,h))}else o.push({startOffset:c,endOffset:u,newLength:h})}let l=Yo;for(const c of i){const u=r(c.lengthBefore);if(c.modified){const h=V_t(u,f=>f.lengthBefore),d=Yn(l,h);a(l,d,c.lengthAfter),l=d}else for(const h of u){const d=l;l=Yn(l,h.lengthBefore),h.modified&&a(d,l,h.lengthAfter)}}return o}class l1{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=KT(e,this.lengthAfter);return ske(t,Yo)?[this,void 0]:this.modified?[new l1(this.modified,this.lengthBefore,e),new l1(this.modified,Yo,t)]:[new l1(this.modified,e,e),new l1(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${Xc(this.lengthBefore)} -> ${Xc(this.lengthAfter)}`}}function The(n){const e=[];let t=Yo;for(const i of n){const s=KT(t,i.startOffset);UF(s)||e.push(new l1(!1,s,s));const r=KT(i.startOffset,i.endOffset);e.push(new l1(!0,r,i.newLength)),t=i.endOffset}return e}class tvt extends ue{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new oe,this.denseKeyProvider=new rke,this.brackets=new ake(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)e.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),s=new G_t(this.textModel.getValue(),i);this.initialAstWithoutTokens=aU(s,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new og(ys(i.fromLineNumber-1,0),ys(i.toLineNumber,0),ys(i.toLineNumber-i.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=og.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=KF(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=KF(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const s=t,r=new oke(this.textModel,this.brackets);return aU(r,e,s,i)}getBracketsInRange(e,t){this.flushQueue();const i=ys(e.startLineNumber-1,e.startColumn-1),s=ys(e.endLineNumber-1,e.endColumn-1);return new Cb(r=>{const o=this.initialAstWithoutTokens||this.astWithTokens;lU(o,Yo,o.length,i,s,r,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const i=Kw(e.getStartPosition()),s=Kw(e.getEndPosition());return new Cb(r=>{const o=this.initialAstWithoutTokens||this.astWithTokens,a=new ivt(r,t,this.textModel);cU(o,Yo,o.length,i,s,a,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return uke(t,Yo,t.length,Kw(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return cke(t,Yo,t.length,Kw(e))}}function cke(n,e,t,i){if(n.kind===4||n.kind===2){const s=[];for(const r of n.children)t=Yn(e,r.length),s.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let r=s.length-1;r>=0;r--){const{nodeOffsetStart:o,nodeOffsetEnd:a}=s[r];if(GC(o,i)){const l=cke(n.children[r],o,a,i);if(l)return l}}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=kb(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function uke(n,e,t,i){if(n.kind===4||n.kind===2){for(const s of n.children){if(t=Yn(e,s.length),GC(i,t)){const r=uke(s,e,t,i);if(r)return r}e=t}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=kb(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function lU(n,e,t,i,s,r,o,a,l,c,u=!1){if(o>200)return!0;e:for(;;)switch(n.kind){case 4:{const h=n.childrenLength;for(let d=0;d<h;d++){const f=n.getChild(d);if(f){if(t=Yn(e,f.length),XC(e,s)&&HE(t,i)){if(HE(t,s)){n=f;continue e}if(!lU(f,e,t,i,s,r,o,0,l,c))return!1}e=t}}return!0}case 2:{const h=!c||!n.closingBracket||n.closingBracket.bracketInfo.closesColorized(n.openingBracket.bracketInfo);let d=0;if(l){let p=l.get(n.openingBracket.text);p===void 0&&(p=0),d=p,h&&(p++,l.set(n.openingBracket.text,p))}const f=n.childrenLength;for(let p=0;p<f;p++){const g=n.getChild(p);if(g){if(t=Yn(e,g.length),XC(e,s)&&HE(t,i)){if(HE(t,s)&&g.kind!==1){n=g,h?(o++,a=d+1):a=d;continue e}if((h||g.kind!==1||!n.closingBracket)&&!lU(g,e,t,i,s,r,h?o+1:o,h?d+1:d,l,c,!n.closingBracket))return!1}e=t}}return l==null||l.set(n.openingBracket.text,d),!0}case 3:{const h=kb(e,t);return r(new Ehe(h,o-1,0,!0))}case 1:{const h=kb(e,t);return r(new Ehe(h,o-1,a-1,u))}case 0:return!0}}class ivt{constructor(e,t,i){this.push=e,this.includeMinIndentation=t,this.textModel=i}}function cU(n,e,t,i,s,r,o,a){var c;if(o>200)return!0;let l=!0;if(n.kind===2){let u=0;if(a){let f=a.get(n.openingBracket.text);f===void 0&&(f=0),u=f,f++,a.set(n.openingBracket.text,f)}const h=Yn(e,n.openingBracket.length);let d=-1;if(r.includeMinIndentation&&(d=n.computeMinIndentation(e,r.textModel)),l=r.push(new F_t(kb(e,t),kb(e,h),n.closingBracket?kb(Yn(h,((c=n.child)==null?void 0:c.length)||Yo),t):void 0,o,u,n,d)),e=h,l&&n.child){const f=n.child;if(t=Yn(e,f.length),XC(e,s)&&HE(t,i)&&(l=cU(f,e,t,i,s,r,o+1,a),!l))return!1}a==null||a.set(n.openingBracket.text,u)}else{let u=e;for(const h of n.children){const d=u;if(u=Yn(u,h.length),XC(d,s)&&XC(i,u)&&(l=cU(h,d,u,i,s,r,o,a),!l))return!1}}return l}class nvt extends ue{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new rr),this.onDidChangeEmitter=new oe,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1}handleLanguageConfigurationServiceChange(e){var t;(!e.languageId||(t=this.bracketPairsTree.value)!=null&&t.object.didLanguageChange(e.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)==null||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)==null||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)==null||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new be;this.bracketPairsTree.value=svt(e.add(new tvt(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)==null?void 0:t.object.getBracketPairsInRange(e,!1))||Cb.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)==null?void 0:t.object.getBracketPairsInRange(e,!0))||Cb.empty}getBracketsInRange(e,t=!1){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((i=this.bracketPairsTree.value)==null?void 0:i.object.getBracketsInRange(e,t))||Cb.empty}findMatchingBracketUp(e,t,i){const s=this.textModel.validatePosition(t),r=this.textModel.getLanguageIdAtPosition(s.lineNumber,s.column);if(this.canBuildAST){const o=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew.getClosingBracketInfo(e);if(!o)return null;const a=this.getBracketPairsInRange(O.fromPositions(t,t)).findLast(l=>o.closes(l.openingBracketInfo));return a?a.openingBracketRange:null}else{const o=e.toLowerCase(),a=this.languageConfigurationService.getLanguageConfiguration(r).brackets;if(!a)return null;const l=a.textIsBracket[o];return l?vP(this._findMatchingBracketUp(l,s,uW(i))):null}}matchBracket(e,t){if(this.canBuildAST){const i=this.getBracketPairsInRange(O.fromPositions(e,e)).filter(s=>s.closingBracketRange!==void 0&&(s.openingBracketRange.containsPosition(e)||s.closingBracketRange.containsPosition(e))).findLastMaxBy(Jo(s=>s.openingBracketRange.containsPosition(e)?s.openingBracketRange:s.closingBracketRange,O.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}else{const i=uW(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,s){const r=t.getCount(),o=t.getLanguageId(s);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let c=s-1;c>=0;c--){const u=t.getEndOffset(c);if(u<=a)break;if(Dd(t.getStandardTokenType(c))||t.getLanguageId(c)!==o){a=u;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let c=s+1;c<r;c++){const u=t.getStartOffset(c);if(u>=l)break;if(Dd(t.getStandardTokenType(c))||t.getLanguageId(c)!==o){l=u;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,s=this.textModel.tokenization.getLineTokens(i),r=this.textModel.getLineContent(i),o=s.findTokenIndexAtOffset(e.column-1);if(o<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(o)).brackets;if(a&&!Dd(s.getStandardTokenType(o))){let{searchStartOffset:l,searchEndOffset:c}=this._establishBracketSearchOffsets(e,s,a,o),u=null;for(;;){const h=mu.findNextBracketInRange(a.forwardRegex,i,r,l,c);if(!h)break;if(h.startColumn<=e.column&&e.column<=h.endColumn){const d=r.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),f=this._matchFoundBracket(h,a.textIsBracket[d],a.textIsOpenBracket[d],t);if(f){if(f instanceof Bp)return null;u=f}}l=h.endColumn-1}if(u)return u}if(o>0&&s.getStartOffset(o)===e.column-1){const l=o-1,c=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(l)).brackets;if(c&&!Dd(s.getStandardTokenType(l))){const{searchStartOffset:u,searchEndOffset:h}=this._establishBracketSearchOffsets(e,s,c,l),d=mu.findPrevBracketInRange(c.reversedRegex,i,r,u,h);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn){const f=r.substring(d.startColumn-1,d.endColumn-1).toLowerCase(),p=this._matchFoundBracket(d,c.textIsBracket[f],c.textIsOpenBracket[f],t);if(p)return p instanceof Bp?null:p}}}return null}_matchFoundBracket(e,t,i,s){if(!t)return null;const r=i?this._findMatchingBracketDown(t,e.getEndPosition(),s):this._findMatchingBracketUp(t,e.getStartPosition(),s);return r?r instanceof Bp?r:[e,r]:null}_findMatchingBracketUp(e,t,i){const s=e.languageId,r=e.reversedRegex;let o=-1,a=0;const l=(c,u,h,d)=>{for(;;){if(i&&++a%100===0&&!i())return Bp.INSTANCE;const f=mu.findPrevBracketInRange(r,c,u,h,d);if(!f)break;const p=u.substring(f.startColumn-1,f.endColumn-1).toLowerCase();if(e.isOpen(p)?o++:e.isClose(p)&&o--,o===0)return f;d=f.startColumn-1}return null};for(let c=t.lineNumber;c>=1;c--){const u=this.textModel.tokenization.getLineTokens(c),h=u.getCount(),d=this.textModel.getLineContent(c);let f=h-1,p=d.length,g=d.length;c===t.lineNumber&&(f=u.findTokenIndexAtOffset(t.column-1),p=t.column-1,g=t.column-1);let m=!0;for(;f>=0;f--){const _=u.getLanguageId(f)===s&&!Dd(u.getStandardTokenType(f));if(_)m?p=u.getStartOffset(f):(p=u.getStartOffset(f),g=u.getEndOffset(f));else if(m&&p!==g){const b=l(c,d,p,g);if(b)return b}m=_}if(m&&p!==g){const _=l(c,d,p,g);if(_)return _}}return null}_findMatchingBracketDown(e,t,i){const s=e.languageId,r=e.forwardRegex;let o=1,a=0;const l=(u,h,d,f)=>{for(;;){if(i&&++a%100===0&&!i())return Bp.INSTANCE;const p=mu.findNextBracketInRange(r,u,h,d,f);if(!p)break;const g=h.substring(p.startColumn-1,p.endColumn-1).toLowerCase();if(e.isOpen(g)?o++:e.isClose(g)&&o--,o===0)return p;d=p.endColumn-1}return null},c=this.textModel.getLineCount();for(let u=t.lineNumber;u<=c;u++){const h=this.textModel.tokenization.getLineTokens(u),d=h.getCount(),f=this.textModel.getLineContent(u);let p=0,g=0,m=0;u===t.lineNumber&&(p=h.findTokenIndexAtOffset(t.column-1),g=t.column-1,m=t.column-1);let _=!0;for(;p<d;p++){const b=h.getLanguageId(p)===s&&!Dd(h.getStandardTokenType(p));if(b)_||(g=h.getStartOffset(p)),m=h.getEndOffset(p);else if(_&&g!==m){const w=l(u,f,g,m);if(w)return w}_=b}if(_&&g!==m){const b=l(u,f,g,m);if(b)return b}}return null}findPrevBracket(e){var o;const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((o=this.bracketPairsTree.value)==null?void 0:o.object.getFirstBracketBefore(t))||null;let i=null,s=null,r=null;for(let a=t.lineNumber;a>=1;a--){const l=this.textModel.tokenization.getLineTokens(a),c=l.getCount(),u=this.textModel.getLineContent(a);let h=c-1,d=u.length,f=u.length;if(a===t.lineNumber){h=l.findTokenIndexAtOffset(t.column-1),d=t.column-1,f=t.column-1;const g=l.getLanguageId(h);i!==g&&(i=g,s=this.languageConfigurationService.getLanguageConfiguration(i).brackets,r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew)}let p=!0;for(;h>=0;h--){const g=l.getLanguageId(h);if(i!==g){if(s&&r&&p&&d!==f){const _=mu.findPrevBracketInRange(s.reversedRegex,a,u,d,f);if(_)return this._toFoundBracket(r,_);p=!1}i=g,s=this.languageConfigurationService.getLanguageConfiguration(i).brackets,r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew}const m=!!s&&!Dd(l.getStandardTokenType(h));if(m)p?d=l.getStartOffset(h):(d=l.getStartOffset(h),f=l.getEndOffset(h));else if(r&&s&&p&&d!==f){const _=mu.findPrevBracketInRange(s.reversedRegex,a,u,d,f);if(_)return this._toFoundBracket(r,_)}p=m}if(r&&s&&p&&d!==f){const g=mu.findPrevBracketInRange(s.reversedRegex,a,u,d,f);if(g)return this._toFoundBracket(r,g)}}return null}findNextBracket(e){var a;const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((a=this.bracketPairsTree.value)==null?void 0:a.object.getFirstBracketAfter(t))||null;const i=this.textModel.getLineCount();let s=null,r=null,o=null;for(let l=t.lineNumber;l<=i;l++){const c=this.textModel.tokenization.getLineTokens(l),u=c.getCount(),h=this.textModel.getLineContent(l);let d=0,f=0,p=0;if(l===t.lineNumber){d=c.findTokenIndexAtOffset(t.column-1),f=t.column-1,p=t.column-1;const m=c.getLanguageId(d);s!==m&&(s=m,r=this.languageConfigurationService.getLanguageConfiguration(s).brackets,o=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew)}let g=!0;for(;d<u;d++){const m=c.getLanguageId(d);if(s!==m){if(o&&r&&g&&f!==p){const b=mu.findNextBracketInRange(r.forwardRegex,l,h,f,p);if(b)return this._toFoundBracket(o,b);g=!1}s=m,r=this.languageConfigurationService.getLanguageConfiguration(s).brackets,o=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew}const _=!!r&&!Dd(c.getStandardTokenType(d));if(_)g||(f=c.getStartOffset(d)),p=c.getEndOffset(d);else if(o&&r&&g&&f!==p){const b=mu.findNextBracketInRange(r.forwardRegex,l,h,f,p);if(b)return this._toFoundBracket(o,b)}g=_}if(o&&r&&g&&f!==p){const m=mu.findNextBracketInRange(r.forwardRegex,l,h,f,p);if(m)return this._toFoundBracket(o,m)}}return null}findEnclosingBrackets(e,t){const i=this.textModel.validatePosition(e);if(this.canBuildAST){const f=O.fromPositions(i),p=this.getBracketPairsInRange(O.fromPositions(i,i)).findLast(g=>g.closingBracketRange!==void 0&&g.range.strictContainsRange(f));return p?[p.openingBracketRange,p.closingBracketRange]:null}const s=uW(t),r=this.textModel.getLineCount(),o=new Map;let a=[];const l=(f,p)=>{if(!o.has(f)){const g=[];for(let m=0,_=p?p.brackets.length:0;m<_;m++)g[m]=0;o.set(f,g)}a=o.get(f)};let c=0;const u=(f,p,g,m,_)=>{for(;;){if(s&&++c%100===0&&!s())return Bp.INSTANCE;const b=mu.findNextBracketInRange(f.forwardRegex,p,g,m,_);if(!b)break;const w=g.substring(b.startColumn-1,b.endColumn-1).toLowerCase(),C=f.textIsBracket[w];if(C&&(C.isOpen(w)?a[C.index]++:C.isClose(w)&&a[C.index]--,a[C.index]===-1))return this._matchFoundBracket(b,C,!1,s);m=b.endColumn-1}return null};let h=null,d=null;for(let f=i.lineNumber;f<=r;f++){const p=this.textModel.tokenization.getLineTokens(f),g=p.getCount(),m=this.textModel.getLineContent(f);let _=0,b=0,w=0;if(f===i.lineNumber){_=p.findTokenIndexAtOffset(i.column-1),b=i.column-1,w=i.column-1;const S=p.getLanguageId(_);h!==S&&(h=S,d=this.languageConfigurationService.getLanguageConfiguration(h).brackets,l(h,d))}let C=!0;for(;_<g;_++){const S=p.getLanguageId(_);if(h!==S){if(d&&C&&b!==w){const k=u(d,f,m,b,w);if(k)return vP(k);C=!1}h=S,d=this.languageConfigurationService.getLanguageConfiguration(h).brackets,l(h,d)}const x=!!d&&!Dd(p.getStandardTokenType(_));if(x)C||(b=p.getStartOffset(_)),w=p.getEndOffset(_);else if(d&&C&&b!==w){const k=u(d,f,m,b,w);if(k)return vP(k)}C=x}if(d&&C&&b!==w){const S=u(d,f,m,b,w);if(S)return vP(S)}}return null}_toFoundBracket(e,t){if(!t)return null;let i=this.textModel.getValueInRange(t);i=i.toLowerCase();const s=e.getBracketInfo(i);return s?{range:t,bracketInfo:s}:null}}function svt(n,e){return{object:n,dispose:()=>e==null?void 0:e.dispose()}}function uW(n){if(typeof n>"u")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=n}}const S3=class S3{constructor(){this._searchCanceledBrand=void 0}};S3.INSTANCE=new S3;let Bp=S3;function vP(n){return n instanceof Bp?null:n}class rvt extends ue{constructor(e){super(),this.textModel=e,this.colorProvider=new hke,this.onDidChangeEmitter=new oe,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,s){return s?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(o=>({id:`bracket${o.range.toString()}-${o.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(o,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:o.range})).toArray():[]}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new O(1,1,this.textModel.getLineCount(),1),e,t):[]}}class hke{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}au((n,e)=>{const t=[BEe,WEe,VEe,HEe,$Ee,zEe],i=new hke;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${n.getColor(e1t)}; }`);const s=t.map(r=>n.getColor(r)).filter(r=>!!r).filter(r=>!r.isTransparent());for(let r=0;r<30;r++){const o=s[r%s.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(r)} { color: ${o}; }`)}});function bP(n){return n.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class Fr{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,s){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=s}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${bP(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${bP(this.oldText)}")`:`(replace@${this.oldPosition} "${bP(this.oldText)}" with "${bP(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const s=t.length;fh(e,s,i),i+=4;for(let r=0;r<s;r++)Eht(e,t.charCodeAt(r),i),i+=2;return i}static _readString(e,t){const i=dh(e,t);return t+=4,Iht(e,t,i)}writeSize(){return 8+Fr._writeStringSize(this.oldText)+Fr._writeStringSize(this.newText)}write(e,t){return fh(e,this.oldPosition,t),t+=4,fh(e,this.newPosition,t),t+=4,t=Fr._writeString(e,this.oldText,t),t=Fr._writeString(e,this.newText,t),t}static read(e,t,i){const s=dh(e,t);t+=4;const r=dh(e,t);t+=4;const o=Fr._readString(e,t);t+=Fr._writeStringSize(o);const a=Fr._readString(e,t);return t+=Fr._writeStringSize(a),i.push(new Fr(s,o,r,a)),t}}function ovt(n,e){return n===null||n.length===0?e:new Od(n,e).compress()}class Od{constructor(e,t){this._prevEdits=e,this._currEdits=t,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let e=0,t=0,i=this._getPrev(e),s=this._getCurr(t);for(;e<this._prevLen||t<this._currLen;){if(i===null){this._acceptCurr(s),s=this._getCurr(++t);continue}if(s===null){this._acceptPrev(i),i=this._getPrev(++e);continue}if(s.oldEnd<=i.newPosition){this._acceptCurr(s),s=this._getCurr(++t);continue}if(i.newEnd<=s.oldPosition){this._acceptPrev(i),i=this._getPrev(++e);continue}if(s.oldPosition<i.newPosition){const[c,u]=Od._splitCurr(s,i.newPosition-s.oldPosition);this._acceptCurr(c),s=u;continue}if(i.newPosition<s.oldPosition){const[c,u]=Od._splitPrev(i,s.oldPosition-i.newPosition);this._acceptPrev(c),i=u;continue}let a,l;if(s.oldEnd===i.newEnd)a=i,l=s,i=this._getPrev(++e),s=this._getCurr(++t);else if(s.oldEnd<i.newEnd){const[c,u]=Od._splitPrev(i,s.oldLength);a=c,l=s,i=u,s=this._getCurr(++t)}else{const[c,u]=Od._splitCurr(s,i.newLength);a=i,l=c,i=this._getPrev(++e),s=u}this._result[this._resultLen++]=new Fr(a.oldPosition,a.oldText,l.newPosition,l.newText),this._prevDeltaOffset+=a.newLength-a.oldLength,this._currDeltaOffset+=l.newLength-l.oldLength}const r=Od._merge(this._result);return Od._removeNoOps(r)}_acceptCurr(e){this._result[this._resultLen++]=Od._rebaseCurr(this._prevDeltaOffset,e),this._currDeltaOffset+=e.newLength-e.oldLength}_getCurr(e){return e<this._currLen?this._currEdits[e]:null}_acceptPrev(e){this._result[this._resultLen++]=Od._rebasePrev(this._currDeltaOffset,e),this._prevDeltaOffset+=e.newLength-e.oldLength}_getPrev(e){return e<this._prevLen?this._prevEdits[e]:null}static _rebaseCurr(e,t){return new Fr(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new Fr(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}static _splitPrev(e,t){const i=e.newText.substr(0,t),s=e.newText.substr(t);return[new Fr(e.oldPosition,e.oldText,e.newPosition,i),new Fr(e.oldEnd,"",e.newPosition+t,s)]}static _splitCurr(e,t){const i=e.oldText.substr(0,t),s=e.oldText.substr(t);return[new Fr(e.oldPosition,i,e.newPosition,e.newText),new Fr(e.oldPosition+t,s,e.newEnd,"")]}static _merge(e){if(e.length===0)return e;const t=[];let i=0,s=e[0];for(let r=1;r<e.length;r++){const o=e[r];s.oldEnd===o.oldPosition?s=new Fr(s.oldPosition,s.oldText+o.oldText,s.newPosition,s.newText+o.newText):(t[i++]=s,s=o)}return t[i++]=s,t}static _removeNoOps(e){if(e.length===0)return e;const t=[];let i=0;for(let s=0;s<e.length;s++){const r=e[s];r.oldText!==r.newText&&(t[i++]=r)}return t}}function _m(n){return n===47||n===92}function dke(n){return n.replace(/[\\/]/g,Es.sep)}function avt(n){return n.indexOf("/")===-1&&(n=dke(n)),/^[a-zA-Z]:(\/|$)/.test(n)&&(n="/"+n),n}function Dhe(n,e=Es.sep){if(!n)return"";const t=n.length,i=n.charCodeAt(0);if(_m(i)){if(_m(n.charCodeAt(1))&&!_m(n.charCodeAt(2))){let r=3;const o=r;for(;r<t&&!_m(n.charCodeAt(r));r++);if(o!==r&&!_m(n.charCodeAt(r+1))){for(r+=1;r<t;r++)if(_m(n.charCodeAt(r)))return n.slice(0,r+1).replace(/[\\/]/g,e)}}return e}else if(fke(i)&&n.charCodeAt(1)===58)return _m(n.charCodeAt(2))?n.slice(0,2)+e:n.slice(0,2);let s=n.indexOf("://");if(s!==-1){for(s+=3;s<t;s++)if(_m(n.charCodeAt(s)))return n.slice(0,s+1)}return""}function uU(n,e,t,i=Bh){if(n===e)return!0;if(!n||!e||e.length>n.length)return!1;if(t){if(!yee(n,e))return!1;if(e.length===n.length)return!0;let r=e.length;return e.charAt(e.length-1)===i&&r--,n.charAt(r)===i}return e.charAt(e.length-1)!==i&&(e+=i),n.indexOf(e)===0}function fke(n){return n>=65&&n<=90||n>=97&&n<=122}function lvt(n,e=qr){return e?fke(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}function Ad(n){return uF(n,!0)}class cvt{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:mT(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===kt.file)return uU(Ad(e),Ad(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(Ahe(e.authority,t.authority))return uU(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return mt.joinPath(e,...t)}basenameOrAuthority(e){return su(e)||e.authority}basename(e){return Es.basename(e.path)}extname(e){return Es.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===kt.file?t=mt.file(iLe(Ad(e))).path:(t=Es.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===kt.file?t=mt.file(tLe(Ad(e))).path:t=Es.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!Ahe(e.authority,t.authority))return;if(e.scheme===kt.file){const r=Wct(Ad(e),Ad(t));return qr?dke(r):r}let i=e.path||"/";const s=t.path||"/";if(this._ignorePathCasing(e)){let r=0;for(const o=Math.min(i.length,s.length);r<o&&!(i.charCodeAt(r)!==s.charCodeAt(r)&&i.charAt(r).toLowerCase()!==s.charAt(r).toLowerCase());r++);i=s.substr(0,r)+i.substr(r)}return Es.relative(i,s)}resolvePath(e,t){if(e.scheme===kt.file){const i=mt.file(Bct(Ad(e),t));return e.with({authority:i.authority,path:i.path})}return t=avt(t),e.with({path:Es.resolve(e.path,t)})}isAbsolutePath(e){return!!e.path&&e.path[0]==="/"}isEqualAuthority(e,t){return e===t||e!==void 0&&t!==void 0&&Vw(e,t)}hasTrailingPathSeparator(e,t=Bh){if(e.scheme===kt.file){const i=Ad(e);return i.length>Dhe(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=Bh){return Phe(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=Bh){let i=!1;if(e.scheme===kt.file){const s=Ad(e);i=s!==void 0&&s.length===Dhe(s).length&&s[s.length-1]===t}else{t="/";const s=e.path;i=s.length===1&&s.charCodeAt(s.length-1)===47}return!i&&!Phe(e,t)?e.with({path:e.path+"/"}):e}}const Sn=new cvt(()=>!1),Ite=Sn.isEqual.bind(Sn);Sn.isEqualOrParent.bind(Sn);Sn.getComparisonKey.bind(Sn);const uvt=Sn.basenameOrAuthority.bind(Sn),su=Sn.basename.bind(Sn),hvt=Sn.extname.bind(Sn),_8=Sn.dirname.bind(Sn),dvt=Sn.joinPath.bind(Sn),fvt=Sn.normalizePath.bind(Sn),pvt=Sn.relativePath.bind(Sn),Nhe=Sn.resolvePath.bind(Sn);Sn.isAbsolutePath.bind(Sn);const Ahe=Sn.isEqualAuthority.bind(Sn),Phe=Sn.hasTrailingPathSeparator.bind(Sn);Sn.removeTrailingPathSeparator.bind(Sn);Sn.addTrailingPathSeparator.bind(Sn);var f_;(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function e(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(o=>{const[a,l]=o.split(":");a&&l&&i.set(a,l)});const r=t.path.substring(0,t.path.indexOf(";"));return r&&i.set(n.META_DATA_MIME,r),i}n.parseMetaData=e})(f_||(f_={}));function ow(n){return n.toString()}class cr{static create(e,t){const i=e.getAlternativeVersionId(),s=hU(e);return new cr(i,i,s,s,t,t,[])}constructor(e,t,i,s,r,o,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=s,this.beforeCursorState=r,this.afterCursorState=o,this.changes=a}append(e,t,i,s,r){t.length>0&&(this.changes=ovt(this.changes,t)),this.afterEOL=i,this.afterVersionId=s,this.afterCursorState=r}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(fh(e,t?t.length:0,i),i+=4,t)for(const s of t)fh(e,s.selectionStartLineNumber,i),i+=4,fh(e,s.selectionStartColumn,i),i+=4,fh(e,s.positionLineNumber,i),i+=4,fh(e,s.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const s=dh(e,t);t+=4;for(let r=0;r<s;r++){const o=dh(e,t);t+=4;const a=dh(e,t);t+=4;const l=dh(e,t);t+=4;const c=dh(e,t);t+=4,i.push(new nt(o,a,l,c))}return t}serialize(){let e=10+cr._writeSelectionsSize(this.beforeCursorState)+cr._writeSelectionsSize(this.afterCursorState)+4;for(const s of this.changes)e+=s.writeSize();const t=new Uint8Array(e);let i=0;fh(t,this.beforeVersionId,i),i+=4,fh(t,this.afterVersionId,i),i+=4,Due(t,this.beforeEOL,i),i+=1,Due(t,this.afterEOL,i),i+=1,i=cr._writeSelections(t,this.beforeCursorState,i),i=cr._writeSelections(t,this.afterCursorState,i),fh(t,this.changes.length,i),i+=4;for(const s of this.changes)i=s.write(t,i);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let i=0;const s=dh(t,i);i+=4;const r=dh(t,i);i+=4;const o=Tue(t,i);i+=1;const a=Tue(t,i);i+=1;const l=[];i=cr._readSelections(t,i,l);const c=[];i=cr._readSelections(t,i,c);const u=dh(t,i);i+=4;const h=[];for(let d=0;d<u;d++)i=Fr.read(t,i,h);return new cr(s,r,o,a,l,c,h)}}class pke{get type(){return 0}get resource(){return mt.isUri(this.model)?this.model:this.model.uri}constructor(e,t,i,s){this.label=e,this.code=t,this.model=i,this._data=cr.create(i,s)}toString(){return(this._data instanceof cr?this._data:cr.deserialize(this._data)).changes.map(t=>t.toString()).join(", ")}matchesResource(e){return(mt.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof cr}append(e,t,i,s,r){this._data instanceof cr&&this._data.append(e,t,i,s,r)}close(){this._data instanceof cr&&(this._data=this._data.serialize())}open(){this._data instanceof cr||(this._data=cr.deserialize(this._data))}undo(){if(mt.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof cr&&(this._data=this._data.serialize());const e=cr.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(mt.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof cr&&(this._data=this._data.serialize());const e=cr.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof cr&&(this._data=this._data.serialize()),this._data.byteLength+168}}class gvt{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const s of this._editStackElementsArr){const r=ow(s.resource);this._editStackElementsMap.set(r,s)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=ow(e);return this._editStackElementsMap.has(t)}setModel(e){const t=ow(mt.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=ow(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,s,r){const o=ow(e.uri);this._editStackElementsMap.get(o).append(e,t,i,s,r)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=ow(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${su(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function hU(n){return n.getEOL()===` +`?0:1}function Wp(n){return n?n instanceof pke||n instanceof gvt:!1}class Tte{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Wp(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Wp(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(Wp(i)&&i.canAppend(this._model))return i;const s=new pke(v("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(s,t),s}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],hU(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,s){const r=this._getOrCreateEditStackElement(e,s),o=this._model.applyEdits(t,!0),a=Tte._computeCursorState(i,o),l=o.map((c,u)=>({index:u,textChange:c.textChange}));return l.sort((c,u)=>c.textChange.oldPosition===u.textChange.oldPosition?c.index-u.index:c.textChange.oldPosition-u.textChange.oldPosition),r.append(this._model,l.map(c=>c.textChange),hU(this._model),this._model.getAlternativeVersionId(),a),a}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return Nt(i),null}}}class mvt{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function _vt(n,e,t,i,s){s.spacesDiff=0,s.looksLikeAlignment=!1;let r;for(r=0;r<e&&r<i;r++){const d=n.charCodeAt(r),f=t.charCodeAt(r);if(d!==f)break}let o=0,a=0;for(let d=r;d<e;d++)n.charCodeAt(d)===32?o++:a++;let l=0,c=0;for(let d=r;d<i;d++)t.charCodeAt(d)===32?l++:c++;if(o>0&&a>0||l>0&&c>0)return;const u=Math.abs(a-c),h=Math.abs(o-l);if(u===0){s.spacesDiff=h,h>0&&0<=l-1&&l-1<n.length&&l<t.length&&t.charCodeAt(l)!==32&&n.charCodeAt(l-1)===32&&n.charCodeAt(n.length-1)===44&&(s.looksLikeAlignment=!0);return}if(h%u===0){s.spacesDiff=h/u;return}}function Rhe(n,e,t){const i=Math.min(n.getLineCount(),1e4);let s=0,r=0,o="",a=0;const l=[2,4,6,8,3,5,7],c=8,u=[0,0,0,0,0,0,0,0,0],h=new mvt;for(let p=1;p<=i;p++){const g=n.getLineLength(p),m=n.getLineContent(p),_=g<=65536;let b=!1,w=0,C=0,S=0;for(let k=0,L=g;k<L;k++){const E=_?m.charCodeAt(k):n.getLineCharCode(p,k);if(E===9)S++;else if(E===32)C++;else{b=!0,w=k;break}}if(!b||(S>0?s++:C>1&&r++,_vt(o,a,m,w,h),h.looksLikeAlignment&&!(t&&e===h.spacesDiff)))continue;const x=h.spacesDiff;x<=c&&u[x]++,o=m,a=w}let d=t;s!==r&&(d=s<r);let f=e;if(d){let p=d?0:.1*i;l.forEach(g=>{const m=u[g];m>p&&(p=m,f=g)}),f===4&&u[4]>0&&u[2]>0&&u[2]>=u[4]/2&&(f=2)}return{insertSpaces:d,tabSize:f}}function ba(n){return(n.metadata&1)>>>0}function vn(n,e){n.metadata=n.metadata&254|e<<0}function Ur(n){return(n.metadata&2)>>>1===1}function pn(n,e){n.metadata=n.metadata&253|(e?1:0)<<1}function gke(n){return(n.metadata&4)>>>2===1}function Mhe(n,e){n.metadata=n.metadata&251|(e?1:0)<<2}function mke(n){return(n.metadata&64)>>>6===1}function Ohe(n,e){n.metadata=n.metadata&191|(e?1:0)<<6}function vvt(n){return(n.metadata&24)>>>3}function Fhe(n,e){n.metadata=n.metadata&231|e<<3}function bvt(n){return(n.metadata&32)>>>5===1}function Bhe(n,e){n.metadata=n.metadata&223|(e?1:0)<<5}class _ke{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,vn(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,Mhe(this,!1),Ohe(this,!1),Fhe(this,1),Bhe(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,pn(this,!1)}reset(e,t,i,s){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=s}setOptions(e){this.options=e;const t=this.options.className;Mhe(this,t==="squiggly-error"||t==="squiggly-warning"||t==="squiggly-info"),Ohe(this,this.options.glyphMarginClassName!==null),Fhe(this,this.options.stickiness),Bhe(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const ii=new _ke(null,0,0);ii.parent=ii;ii.left=ii;ii.right=ii;vn(ii,0);class hW{constructor(){this.root=ii,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,s,r,o){return this.root===ii?[]:kvt(this,e,t,i,s,r,o)}search(e,t,i,s){return this.root===ii?[]:Evt(this,e,t,i,s)}collectNodesFromOwner(e){return xvt(this,e)}collectNodesPostOrder(){return Lvt(this)}insert(e){Whe(this,e),this._normalizeDeltaIfNecessary()}delete(e){Vhe(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let s=0;for(;e!==this.root;)e===e.parent.right&&(s+=e.parent.delta),e=e.parent;const r=i.start+s,o=i.end+s;i.setCachedOffsets(r,o,t)}acceptReplace(e,t,i,s){const r=Cvt(this,e,e+t);for(let o=0,a=r.length;o<a;o++){const l=r[o];Vhe(this,l)}this._normalizeDeltaIfNecessary(),Svt(this,e,e+t,i),this._normalizeDeltaIfNecessary();for(let o=0,a=r.length;o<a;o++){const l=r[o];l.start=l.cachedAbsoluteStart,l.end=l.cachedAbsoluteEnd,wvt(l,e,e+t,i,s),l.maxEnd=l.end,Whe(this,l)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,yvt(this))}}function yvt(n){let e=n.root,t=0;for(;e!==ii;){if(e.left!==ii&&!Ur(e.left)){e=e.left;continue}if(e.right!==ii&&!Ur(e.right)){t+=e.delta,e=e.right;continue}e.start=t+e.start,e.end=t+e.end,e.delta=0,p_(e),pn(e,!0),pn(e.left,!1),pn(e.right,!1),e===e.parent.right&&(t-=e.parent.delta),e=e.parent}pn(n.root,!1)}function aw(n,e,t,i){return n<t?!0:n>t||i===1?!1:i===2?!0:e}function wvt(n,e,t,i,s){const r=vvt(n),o=r===0||r===2,a=r===1||r===2,l=t-e,c=i,u=Math.min(l,c),h=n.start;let d=!1;const f=n.end;let p=!1;e<=h&&f<=t&&bvt(n)&&(n.start=e,d=!0,n.end=e,p=!0);{const m=s?1:l>0?2:0;!d&&aw(h,o,e,m)&&(d=!0),!p&&aw(f,a,e,m)&&(p=!0)}if(u>0&&!s){const m=l>c?2:0;!d&&aw(h,o,e+u,m)&&(d=!0),!p&&aw(f,a,e+u,m)&&(p=!0)}{const m=s?1:0;!d&&aw(h,o,t,m)&&(n.start=e+c,d=!0),!p&&aw(f,a,t,m)&&(n.end=e+c,p=!0)}const g=c-l;d||(n.start=Math.max(0,h+g)),p||(n.end=Math.max(0,f+g)),n.start>n.end&&(n.end=n.start)}function Cvt(n,e,t){let i=n.root,s=0,r=0,o=0,a=0;const l=[];let c=0;for(;i!==ii;){if(Ur(i)){pn(i.left,!1),pn(i.right,!1),i===i.parent.right&&(s-=i.parent.delta),i=i.parent;continue}if(!Ur(i.left)){if(r=s+i.maxEnd,r<e){pn(i,!0);continue}if(i.left!==ii){i=i.left;continue}}if(o=s+i.start,o>t){pn(i,!0);continue}if(a=s+i.end,a>=e&&(i.setCachedOffsets(o,a,0),l[c++]=i),pn(i,!0),i.right!==ii&&!Ur(i.right)){s+=i.delta,i=i.right;continue}}return pn(n.root,!1),l}function Svt(n,e,t,i){let s=n.root,r=0,o=0,a=0;const l=i-(t-e);for(;s!==ii;){if(Ur(s)){pn(s.left,!1),pn(s.right,!1),s===s.parent.right&&(r-=s.parent.delta),p_(s),s=s.parent;continue}if(!Ur(s.left)){if(o=r+s.maxEnd,o<e){pn(s,!0);continue}if(s.left!==ii){s=s.left;continue}}if(a=r+s.start,a>t){s.start+=l,s.end+=l,s.delta+=l,(s.delta<-1073741824||s.delta>1073741824)&&(n.requestNormalizeDelta=!0),pn(s,!0);continue}if(pn(s,!0),s.right!==ii&&!Ur(s.right)){r+=s.delta,s=s.right;continue}}pn(n.root,!1)}function xvt(n,e){let t=n.root;const i=[];let s=0;for(;t!==ii;){if(Ur(t)){pn(t.left,!1),pn(t.right,!1),t=t.parent;continue}if(t.left!==ii&&!Ur(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[s++]=t),pn(t,!0),t.right!==ii&&!Ur(t.right)){t=t.right;continue}}return pn(n.root,!1),i}function Lvt(n){let e=n.root;const t=[];let i=0;for(;e!==ii;){if(Ur(e)){pn(e.left,!1),pn(e.right,!1),e=e.parent;continue}if(e.left!==ii&&!Ur(e.left)){e=e.left;continue}if(e.right!==ii&&!Ur(e.right)){e=e.right;continue}t[i++]=e,pn(e,!0)}return pn(n.root,!1),t}function Evt(n,e,t,i,s){let r=n.root,o=0,a=0,l=0;const c=[];let u=0;for(;r!==ii;){if(Ur(r)){pn(r.left,!1),pn(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),r=r.parent;continue}if(r.left!==ii&&!Ur(r.left)){r=r.left;continue}a=o+r.start,l=o+r.end,r.setCachedOffsets(a,l,i);let h=!0;if(e&&r.ownerId&&r.ownerId!==e&&(h=!1),t&&gke(r)&&(h=!1),s&&!mke(r)&&(h=!1),h&&(c[u++]=r),pn(r,!0),r.right!==ii&&!Ur(r.right)){o+=r.delta,r=r.right;continue}}return pn(n.root,!1),c}function kvt(n,e,t,i,s,r,o){let a=n.root,l=0,c=0,u=0,h=0;const d=[];let f=0;for(;a!==ii;){if(Ur(a)){pn(a.left,!1),pn(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;continue}if(!Ur(a.left)){if(c=l+a.maxEnd,c<e){pn(a,!0);continue}if(a.left!==ii){a=a.left;continue}}if(u=l+a.start,u>t){pn(a,!0);continue}if(h=l+a.end,h>=e){a.setCachedOffsets(u,h,r);let p=!0;i&&a.ownerId&&a.ownerId!==i&&(p=!1),s&&gke(a)&&(p=!1),o&&!mke(a)&&(p=!1),p&&(d[f++]=a)}if(pn(a,!0),a.right!==ii&&!Ur(a.right)){l+=a.delta,a=a.right;continue}}return pn(n.root,!1),d}function Whe(n,e){if(n.root===ii)return e.parent=ii,e.left=ii,e.right=ii,vn(e,0),n.root=e,n.root;Ivt(n,e),Im(e.parent);let t=e;for(;t!==n.root&&ba(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;ba(i)===1?(vn(t.parent,0),vn(i,0),vn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,Bk(n,t)),vn(t.parent,0),vn(t.parent.parent,1),Wk(n,t.parent.parent))}else{const i=t.parent.parent.left;ba(i)===1?(vn(t.parent,0),vn(i,0),vn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,Wk(n,t)),vn(t.parent,0),vn(t.parent.parent,1),Bk(n,t.parent.parent))}return vn(n.root,0),e}function Ivt(n,e){let t=0,i=n.root;const s=e.start,r=e.end;for(;;)if(Dvt(s,r,i.start+t,i.end+t)<0)if(i.left===ii){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===ii){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=ii,e.right=ii,vn(e,1)}function Vhe(n,e){let t,i;if(e.left===ii?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===ii?(t=e.left,i=e):(i=Tvt(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(n.requestNormalizeDelta=!0)),i===n.root){n.root=t,vn(t,0),e.detach(),dW(),p_(t),n.root.parent=ii;return}const s=ba(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,vn(i,ba(e)),e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==ii&&(i.left.parent=i),i.right!==ii&&(i.right.parent=i)),e.detach(),s){Im(t.parent),i!==e&&(Im(i),Im(i.parent)),dW();return}Im(t),Im(t.parent),i!==e&&(Im(i),Im(i.parent));let r;for(;t!==n.root&&ba(t)===0;)t===t.parent.left?(r=t.parent.right,ba(r)===1&&(vn(r,0),vn(t.parent,1),Bk(n,t.parent),r=t.parent.right),ba(r.left)===0&&ba(r.right)===0?(vn(r,1),t=t.parent):(ba(r.right)===0&&(vn(r.left,0),vn(r,1),Wk(n,r),r=t.parent.right),vn(r,ba(t.parent)),vn(t.parent,0),vn(r.right,0),Bk(n,t.parent),t=n.root)):(r=t.parent.left,ba(r)===1&&(vn(r,0),vn(t.parent,1),Wk(n,t.parent),r=t.parent.left),ba(r.left)===0&&ba(r.right)===0?(vn(r,1),t=t.parent):(ba(r.left)===0&&(vn(r.right,0),vn(r,1),Bk(n,r),r=t.parent.left),vn(r,ba(t.parent)),vn(t.parent,0),vn(r.left,0),Wk(n,t.parent),t=n.root));vn(t,0),dW()}function Tvt(n){for(;n.left!==ii;)n=n.left;return n}function dW(){ii.parent=ii,ii.delta=0,ii.start=0,ii.end=0}function Bk(n,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==ii&&(t.left.parent=e),t.parent=e.parent,e.parent===ii?n.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,p_(e),p_(t)}function Wk(n,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(n.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==ii&&(t.right.parent=e),t.parent=e.parent,e.parent===ii?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,p_(e),p_(t)}function vke(n){let e=n.end;if(n.left!==ii){const t=n.left.maxEnd;t>e&&(e=t)}if(n.right!==ii){const t=n.right.maxEnd+n.delta;t>e&&(e=t)}return e}function p_(n){n.maxEnd=vke(n)}function Im(n){for(;n!==ii;){const e=vke(n);if(n.maxEnd===e)return;n.maxEnd=e,n=n.parent}}function Dvt(n,e,t,i){return n===t?e-i:n-t}class dU{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==Ot)return Dte(this.right);let e=this;for(;e.parent!==Ot&&e.parent.left!==e;)e=e.parent;return e.parent===Ot?Ot:e.parent}prev(){if(this.left!==Ot)return bke(this.left);let e=this;for(;e.parent!==Ot&&e.parent.right!==e;)e=e.parent;return e.parent===Ot?Ot:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Ot=new dU(null,0);Ot.parent=Ot;Ot.left=Ot;Ot.right=Ot;Ot.color=0;function Dte(n){for(;n.left!==Ot;)n=n.left;return n}function bke(n){for(;n.right!==Ot;)n=n.right;return n}function Nte(n){return n===Ot?0:n.size_left+n.piece.length+Nte(n.right)}function Ate(n){return n===Ot?0:n.lf_left+n.piece.lineFeedCnt+Ate(n.right)}function fW(){Ot.parent=Ot}function Vk(n,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==Ot&&(t.left.parent=e),t.parent=e.parent,e.parent===Ot?n.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function Hk(n,e){const t=e.left;e.left=t.right,t.right!==Ot&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===Ot?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function yP(n,e){let t,i;if(e.left===Ot?(i=e,t=i.right):e.right===Ot?(i=e,t=i.left):(i=Dte(e.right),t=i.right),i===n.root){n.root=t,t.color=0,e.detach(),fW(),n.root.parent=Ot;return}const s=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,$E(n,t)):(i.parent===e?t.parent=i:t.parent=i.parent,$E(n,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Ot&&(i.left.parent=i),i.right!==Ot&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,$E(n,i)),e.detach(),t.parent.left===t){const o=Nte(t),a=Ate(t);if(o!==t.parent.size_left||a!==t.parent.lf_left){const l=o-t.parent.size_left,c=a-t.parent.lf_left;t.parent.size_left=o,t.parent.lf_left=a,Cp(n,t.parent,l,c)}}if($E(n,t.parent),s){fW();return}let r;for(;t!==n.root&&t.color===0;)t===t.parent.left?(r=t.parent.right,r.color===1&&(r.color=0,t.parent.color=1,Vk(n,t.parent),r=t.parent.right),r.left.color===0&&r.right.color===0?(r.color=1,t=t.parent):(r.right.color===0&&(r.left.color=0,r.color=1,Hk(n,r),r=t.parent.right),r.color=t.parent.color,t.parent.color=0,r.right.color=0,Vk(n,t.parent),t=n.root)):(r=t.parent.left,r.color===1&&(r.color=0,t.parent.color=1,Hk(n,t.parent),r=t.parent.left),r.left.color===0&&r.right.color===0?(r.color=1,t=t.parent):(r.left.color===0&&(r.right.color=0,r.color=1,Vk(n,r),r=t.parent.left),r.color=t.parent.color,t.parent.color=0,r.left.color=0,Hk(n,t.parent),t=n.root));t.color=0,fW()}function Hhe(n,e){for($E(n,e);e!==n.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,Vk(n,e)),e.parent.color=0,e.parent.parent.color=1,Hk(n,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,Hk(n,e)),e.parent.color=0,e.parent.parent.color=1,Vk(n,e.parent.parent))}n.root.color=0}function Cp(n,e,t,i){for(;e!==n.root&&e!==Ot;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function $E(n,e){let t=0,i=0;if(e!==n.root){for(;e!==n.root&&e===e.parent.right;)e=e.parent;if(e!==n.root)for(e=e.parent,t=Nte(e.left)-e.size_left,i=Ate(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==n.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const Nvt=999;class mv{constructor(e,t,i,s){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=s}parseSearchRequest(){if(this.searchString==="")return null;let e;this.isRegex?e=Avt(this.searchString):e=this.searchString.indexOf(` +`)>=0;let t=null;try{t=Kxe(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new M1t(t,this.wordSeparators?iu(this.wordSeparators,[]):null,i?this.searchString:null)}}function Avt(n){if(!n||n.length===0)return!1;for(let e=0,t=n.length;e<t;e++){const i=n.charCodeAt(e);if(i===10)return!0;if(i===92){if(e++,e>=t)break;const s=n.charCodeAt(e);if(s===110||s===114||s===87)return!0}}return!1}function Rv(n,e,t){if(!t)return new VT(n,null);const i=[];for(let s=0,r=e.length;s<r;s++)i[s]=e[s];return new VT(n,i)}class $he{constructor(e){const t=[];let i=0;for(let s=0,r=e.length;s<r;s++)e.charCodeAt(s)===10&&(t[i++]=s);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let i=0,s=t.length-1;if(s===-1||e<=t[0])return 0;for(;i<s;){const r=i+((s-i)/2>>0);t[r]>=e?s=r-1:t[r+1]>=e?(i=r,s=r):i=r+1}return i+1}}class wP{static findMatches(e,t,i,s,r){const o=t.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(e,i,new Gw(o.wordSeparators,o.regex),s,r):this._doFindMatchesLineByLine(e,i,o,s,r):[]}static _getMultilineMatchRange(e,t,i,s,r,o){let a,l=0;s?(l=s.findLineFeedCountBeforeOffset(r),a=t+r+l):a=t+r;let c;if(s){const f=s.findLineFeedCountBeforeOffset(r+o.length)-l;c=a+o.length+f}else c=a+o.length;const u=e.getPositionAt(a),h=e.getPositionAt(c);return new O(u.lineNumber,u.column,h.lineNumber,h.column)}static _doFindMatchesMultiline(e,t,i,s,r){const o=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\r +`?new $he(a):null,c=[];let u=0,h;for(i.reset(0);h=i.next(a);)if(c[u++]=Rv(this._getMultilineMatchRange(e,o,a,l,h.index,h[0]),h,s),u>=r)return c;return c}static _doFindMatchesLineByLine(e,t,i,s,r){const o=[];let a=0;if(t.startLineNumber===t.endLineNumber){const c=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,c,t.startLineNumber,t.startColumn-1,a,o,s,r),o}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,o,s,r);for(let c=t.startLineNumber+1;c<t.endLineNumber&&a<r;c++)a=this._findMatchesInLine(i,e.getLineContent(c),c,0,a,o,s,r);if(a<r){const c=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);a=this._findMatchesInLine(i,c,t.endLineNumber,0,a,o,s,r)}return o}static _findMatchesInLine(e,t,i,s,r,o,a,l){const c=e.wordSeparators;if(!a&&e.simpleSearch){const d=e.simpleSearch,f=d.length,p=t.length;let g=-f;for(;(g=t.indexOf(d,g+f))!==-1;)if((!c||Pte(c,t,p,g,f))&&(o[r++]=new VT(new O(i,g+1+s,i,g+1+f+s),null),r>=l))return r;return r}const u=new Gw(e.wordSeparators,e.regex);let h;u.reset(0);do if(h=u.next(t),h&&(o[r++]=Rv(new O(i,h.index+1+s,i,h.index+1+h[0].length+s),h,a),r>=l))return r;while(h);return r}static findNextMatch(e,t,i,s){const r=t.parseSearchRequest();if(!r)return null;const o=new Gw(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(e,i,o,s):this._doFindNextMatchLineByLine(e,i,o,s)}static _doFindNextMatchMultiline(e,t,i,s){const r=new se(t.lineNumber,1),o=e.getOffsetAt(r),a=e.getLineCount(),l=e.getValueInRange(new O(r.lineNumber,r.column,a,e.getLineMaxColumn(a)),1),c=e.getEOL()===`\r +`?new $he(l):null;i.reset(t.column-1);const u=i.next(l);return u?Rv(this._getMultilineMatchRange(e,o,l,c,u.index,u[0]),u,s):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new se(1,1),i,s):null}static _doFindNextMatchLineByLine(e,t,i,s){const r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o),l=this._findFirstMatchInLine(i,a,o,t.column,s);if(l)return l;for(let c=1;c<=r;c++){const u=(o+c-1)%r,h=e.getLineContent(u+1),d=this._findFirstMatchInLine(i,h,u+1,1,s);if(d)return d}return null}static _findFirstMatchInLine(e,t,i,s,r){e.reset(s-1);const o=e.next(t);return o?Rv(new O(i,o.index+1,i,o.index+1+o[0].length),o,r):null}static findPreviousMatch(e,t,i,s){const r=t.parseSearchRequest();if(!r)return null;const o=new Gw(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(e,i,o,s):this._doFindPreviousMatchLineByLine(e,i,o,s)}static _doFindPreviousMatchMultiline(e,t,i,s){const r=this._doFindMatchesMultiline(e,new O(1,1,t.lineNumber,t.column),i,s,10*Nvt);if(r.length>0)return r[r.length-1];const o=e.getLineCount();return t.lineNumber!==o||t.column!==e.getLineMaxColumn(o)?this._doFindPreviousMatchMultiline(e,new se(o,e.getLineMaxColumn(o)),i,s):null}static _doFindPreviousMatchLineByLine(e,t,i,s){const r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,o,s);if(l)return l;for(let c=1;c<=r;c++){const u=(r+o-c-1)%r,h=e.getLineContent(u+1),d=this._findLastMatchInLine(i,h,u+1,s);if(d)return d}return null}static _findLastMatchInLine(e,t,i,s){let r=null,o;for(e.reset(0);o=e.next(t);)r=Rv(new O(i,o.index+1,i,o.index+1+o[0].length),o,s);return r}}function Pvt(n,e,t,i,s){if(i===0)return!0;const r=e.charCodeAt(i-1);if(n.get(r)!==0||r===13||r===10)return!0;if(s>0){const o=e.charCodeAt(i);if(n.get(o)!==0)return!0}return!1}function Rvt(n,e,t,i,s){if(i+s===t)return!0;const r=e.charCodeAt(i+s);if(n.get(r)!==0||r===13||r===10)return!0;if(s>0){const o=e.charCodeAt(i+s-1);if(n.get(o)!==0)return!0}return!1}function Pte(n,e,t,i,s){return Pvt(n,e,t,i,s)&&Rvt(n,e,t,i,s)}class Gw{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(i=this._searchRegex.exec(e),!i))return null;const s=i.index,r=i[0].length;if(s===this._prevMatchStartIndex&&r===this._prevMatchLength){if(r===0){rF(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=r,!this._wordSeparators||Pte(this._wordSeparators,e,t,s,r))return i}while(i);return null}}const dp=65535;function yke(n){let e;return n[n.length-1]<65536?e=new Uint16Array(n.length):e=new Uint32Array(n.length),e.set(n,0),e}class Mvt{constructor(e,t,i,s,r){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=s,this.isBasicASCII=r}}function Lp(n,e=!0){const t=[0];let i=1;for(let s=0,r=n.length;s<r;s++){const o=n.charCodeAt(s);o===13?s+1<r&&n.charCodeAt(s+1)===10?(t[i++]=s+2,s++):t[i++]=s+1:o===10&&(t[i++]=s+1)}return e?yke(t):t}function Ovt(n,e){n.length=0,n[0]=0;let t=1,i=0,s=0,r=0,o=!0;for(let l=0,c=e.length;l<c;l++){const u=e.charCodeAt(l);u===13?l+1<c&&e.charCodeAt(l+1)===10?(r++,n[t++]=l+2,l++):(i++,n[t++]=l+1):u===10?(s++,n[t++]=l+1):o&&u!==9&&(u<32||u>126)&&(o=!1)}const a=new Mvt(yke(n),i,s,r,o);return n.length=0,a}class qa{constructor(e,t,i,s,r){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=s,this.length=r}}class Mv{constructor(e,t){this.buffer=e,this.lineStarts=t}}class Fvt{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Ot&&e.iterate(e.root,i=>(i!==Ot&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class Bvt{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber<e&&i.nodeStartLineNumber+i.node.piece.lineFeedCnt>=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let s=0;s<i.length;s++){const r=i[s];if(r.node.parent===null||r.nodeStartOffset>=e){i[s]=null,t=!0;continue}}if(t){const s=[];for(const r of i)r!==null&&s.push(r);this._cache=s}}}class Wvt{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new Mv("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Ot,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let s=null;for(let r=0,o=e.length;r<o;r++)if(e[r].buffer.length>0){e[r].lineStarts||(e[r].lineStarts=Lp(e[r].buffer));const a=new qa(r+1,{line:0,column:0},{line:e[r].lineStarts.length-1,column:e[r].buffer.length-e[r].lineStarts[e[r].lineStarts.length-1]},e[r].lineStarts.length-1,e[r].buffer.length);this._buffers.push(e[r]),s=this.rbInsertRight(s,a)}this._searchCache=new Bvt(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=dp,i=t-Math.floor(t/3),s=i*2;let r="",o=0;const a=[];if(this.iterate(this.root,l=>{const c=this.getNodeContent(l),u=c.length;if(o<=i||o+u<s)return r+=c,o+=u,!0;const h=r.replace(/\r\n|\r|\n/g,e);return a.push(new Mv(h,Lp(h))),r=c,o=u,!0}),o>0){const l=r.replace(/\r\n|\r|\n/g,e);a.push(new Mv(l,Lp(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new Fvt(this,e)}getOffsetAt(e,t){let i=0,s=this.root;for(;s!==Ot;)if(s.left!==Ot&&s.lf_left+1>=e)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt+1>=e){i+=s.size_left;const r=this.getAccumulatedValue(s,e-s.lf_left-2);return i+=r+t-1}else e-=s.lf_left+s.piece.lineFeedCnt,i+=s.size_left+s.piece.length,s=s.right;return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const s=e;for(;t!==Ot;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const r=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+r.index,r.index===0){const o=this.getOffsetAt(i+1,1),a=s-o;return new se(i+1,a+1)}return new se(i+1,r.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===Ot){const r=this.getOffsetAt(i+1,1),o=s-e-r;return new se(i+1,o+1)}else t=t.right;return new se(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),s=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(i,s);return t?t!==this._EOL||!this._EOLNormalized?r.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,c=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(c+e.remainder,c+t.remainder)}let i=e.node;const s=this._buffers[i.piece.bufferIndex].buffer,r=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let o=s.substring(r+e.remainder,r+i.piece.length);for(i=i.next();i!==Ot;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){o+=a.substring(l,l+t.remainder);break}else o+=a.substr(l,i.piece.length);i=i.next()}return o}getLinesContent(){const e=[];let t=0,i="",s=!1;return this.iterate(this.root,r=>{if(r===Ot)return!0;const o=r.piece;let a=o.length;if(a===0)return!0;const l=this._buffers[o.bufferIndex].buffer,c=this._buffers[o.bufferIndex].lineStarts,u=o.start.line,h=o.end.line;let d=c[u]+o.start.column;if(s&&(l.charCodeAt(d)===10&&(d++,a--),e[t++]=i,i="",s=!1,a===0))return!0;if(u===h)return!this._EOLNormalized&&l.charCodeAt(d+a-1)===13?(s=!0,i+=l.substr(d,a-1)):i+=l.substr(d,a),!0;i+=this._EOLNormalized?l.substring(d,Math.max(d,c[u+1]-this._EOLLength)):l.substring(d,c[u+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let f=u+1;f<h;f++)i=this._EOLNormalized?l.substring(c[f],c[f+1]-this._EOLLength):l.substring(c[f],c[f+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;return!this._EOLNormalized&&l.charCodeAt(c[h]+o.end.column-1)===13?(s=!0,o.end.column===0?t--:i=l.substr(c[h],o.end.column-1)):i=l.substr(c[h],o.end.column),!0}),s&&(e[t++]=i,i=""),e[t++]=i,e}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(e){return this._lastVisitedLine.lineNumber===e?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,""),this._lastVisitedLine.value)}_getCharCode(e){if(e.remainder===e.node.piece.length){const t=e.node.next();if(!t)return 0;const i=this._buffers[t.piece.bufferIndex],s=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return i.buffer.charCodeAt(s)}else{const t=this._buffers[e.node.piece.bufferIndex],s=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(s)}}getLineCharCode(e,t){const i=this.nodeAt2(e,t+1);return this._getCharCode(i)}getLineLength(e){if(e===this.getLineCount()){const t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}findMatchesInNode(e,t,i,s,r,o,a,l,c,u,h){const d=this._buffers[e.piece.bufferIndex],f=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),p=this.offsetInBuffer(e.piece.bufferIndex,r),g=this.offsetInBuffer(e.piece.bufferIndex,o);let m;const _={line:0,column:0};let b,w;t._wordSeparators?(b=d.buffer.substring(p,g),w=C=>C+p,t.reset(0)):(b=d.buffer,w=C=>C,t.reset(p));do if(m=t.next(b),m){if(w(m.index)>=g)return u;this.positionInBuffer(e,w(m.index)-f,_);const C=this.getLineFeedCnt(e.piece.bufferIndex,r,_),S=_.line===r.line?_.column-r.column+s:_.column+1,x=S+m[0].length;if(h[u++]=Rv(new O(i+C,S,i+C,x),m,l),w(m.index)+m[0].length>=g||u>=c)return u}while(m);return u}findMatchesLineByLine(e,t,i,s){const r=[];let o=0;const a=new Gw(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const c=this.nodeAt2(e.endLineNumber,e.endColumn);if(c===null)return[];let u=this.positionInBuffer(l.node,l.remainder);const h=this.positionInBuffer(c.node,c.remainder);if(l.node===c.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,u,h,t,i,s,o,r),r;let d=e.startLineNumber,f=l.node;for(;f!==c.node;){const g=this.getLineFeedCnt(f.piece.bufferIndex,u,f.piece.end);if(g>=1){const _=this._buffers[f.piece.bufferIndex].lineStarts,b=this.offsetInBuffer(f.piece.bufferIndex,f.piece.start),w=_[u.line+g],C=d===e.startLineNumber?e.startColumn:1;if(o=this.findMatchesInNode(f,a,d,C,u,this.positionInBuffer(f,w-b),t,i,s,o,r),o>=s)return r;d+=g}const m=d===e.startLineNumber?e.startColumn-1:0;if(d===e.endLineNumber){const _=this.getLineContent(d).substring(m,e.endColumn-1);return o=this._findMatchesInLine(t,a,_,e.endLineNumber,m,o,r,i,s),r}if(o=this._findMatchesInLine(t,a,this.getLineContent(d).substr(m),d,m,o,r,i,s),o>=s)return r;d++,l=this.nodeAt2(d,1),f=l.node,u=this.positionInBuffer(l.node,l.remainder)}if(d===e.endLineNumber){const g=d===e.startLineNumber?e.startColumn-1:0,m=this.getLineContent(d).substring(g,e.endColumn-1);return o=this._findMatchesInLine(t,a,m,e.endLineNumber,g,o,r,i,s),r}const p=d===e.startLineNumber?e.startColumn:1;return o=this.findMatchesInNode(c.node,a,d,p,u,h,t,i,s,o,r),r}_findMatchesInLine(e,t,i,s,r,o,a,l,c){const u=e.wordSeparators;if(!l&&e.simpleSearch){const d=e.simpleSearch,f=d.length,p=i.length;let g=-f;for(;(g=i.indexOf(d,g+f))!==-1;)if((!u||Pte(u,i,p,g,f))&&(a[o++]=new VT(new O(s,g+1+r,s,g+1+f+r),null),o>=c))return o;return o}let h;t.reset(0);do if(h=t.next(i),h&&(a[o++]=Rv(new O(s,h.index+1+r,s,h.index+1+h[0].length+r),h,l),o>=c))return o;while(h);return o}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Ot){const{node:s,remainder:r,nodeStartOffset:o}=this.nodeAt(e),a=s.piece,l=a.bufferIndex,c=this.positionInBuffer(s,r);if(s.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&o+a.length===e&&t.length<dp){this.appendToNode(s,t),this.computeBufferMetadata();return}if(o===e)this.insertContentToNodeLeft(t,s),this._searchCache.validate(e);else if(o+s.piece.length>e){const u=[];let h=new qa(a.bufferIndex,c,a.end,this.getLineFeedCnt(a.bufferIndex,c,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,c));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(s,r)===10){const g={line:h.start.line+1,column:0};h=new qa(h.bufferIndex,g,h.end,this.getLineFeedCnt(h.bufferIndex,g,h.end),h.length-1),t+=` +`}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(s,r-1)===13){const g=this.positionInBuffer(s,r-1);this.deleteNodeTail(s,g),t="\r"+t,s.piece.length===0&&u.push(s)}else this.deleteNodeTail(s,c);else this.deleteNodeTail(s,c);const d=this.createNewPieces(t);h.length>0&&this.rbInsertRight(s,h);let f=s;for(let p=0;p<d.length;p++)f=this.rbInsertRight(f,d[p]);this.deleteNodes(u)}else this.insertContentToNodeRight(t,s)}else{const s=this.createNewPieces(t);let r=this.rbInsertLeft(null,s[0]);for(let o=1;o<s.length;o++)r=this.rbInsertRight(r,s[o])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",t<=0||this.root===Ot)return;const i=this.nodeAt(e),s=this.nodeAt(e+t),r=i.node,o=s.node;if(r===o){const d=this.positionInBuffer(r,i.remainder),f=this.positionInBuffer(r,s.remainder);if(i.nodeStartOffset===e){if(t===r.piece.length){const p=r.next();yP(this,r),this.validateCRLFWithPrevNode(p),this.computeBufferMetadata();return}this.deleteNodeHead(r,f),this._searchCache.validate(e),this.validateCRLFWithPrevNode(r),this.computeBufferMetadata();return}if(i.nodeStartOffset+r.piece.length===e+t){this.deleteNodeTail(r,d),this.validateCRLFWithNextNode(r),this.computeBufferMetadata();return}this.shrinkNode(r,d,f),this.computeBufferMetadata();return}const a=[],l=this.positionInBuffer(r,i.remainder);this.deleteNodeTail(r,l),this._searchCache.validate(e),r.piece.length===0&&a.push(r);const c=this.positionInBuffer(o,s.remainder);this.deleteNodeHead(o,c),o.piece.length===0&&a.push(o);const u=r.next();for(let d=u;d!==Ot&&d!==o;d=d.next())a.push(d);const h=r.piece.length===0?r.prev():r;this.deleteNodes(a),this.validateCRLFWithNextNode(h),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const i=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const o=t.piece,a={line:o.start.line+1,column:0},l=new qa(o.bufferIndex,a,o.end,this.getLineFeedCnt(o.bufferIndex,a,o.end),o.length-1);t.piece=l,e+=` +`,Cp(this,t,-1,-1),t.piece.length===0&&i.push(t)}const s=this.createNewPieces(e);let r=this.rbInsertLeft(t,s[s.length-1]);for(let o=s.length-2;o>=0;o--)r=this.rbInsertLeft(r,s[o]);this.validateCRLFWithPrevNode(r),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=` +`);const i=this.createNewPieces(e),s=this.rbInsertRight(t,i[0]);let r=s;for(let o=1;o<i.length;o++)r=this.rbInsertRight(r,i[o]);this.validateCRLFWithPrevNode(s)}positionInBuffer(e,t,i){const s=e.piece,r=e.piece.bufferIndex,o=this._buffers[r].lineStarts,l=o[s.start.line]+s.start.column+t;let c=s.start.line,u=s.end.line,h=0,d=0,f=0;for(;c<=u&&(h=c+(u-c)/2|0,f=o[h],h!==u);)if(d=o[h+1],l<f)u=h-1;else if(l>=d)c=h+1;else break;return i?(i.line=h,i.column=l-f,null):{line:h,column:l-f}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const s=this._buffers[e].lineStarts;if(i.line===s.length-1)return i.line-t.line;const r=s[i.line+1],o=s[i.line]+i.column;if(r>o+1)return i.line-t.line;const a=o-1;return this._buffers[e].buffer.charCodeAt(a)===13?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;t<e.length;t++)yP(this,e[t])}createNewPieces(e){if(e.length>dp){const u=[];for(;e.length>dp;){const d=e.charCodeAt(dp-1);let f;d===13||d>=55296&&d<=56319?(f=e.substring(0,dp-1),e=e.substring(dp-1)):(f=e.substring(0,dp),e=e.substring(dp));const p=Lp(f);u.push(new qa(this._buffers.length,{line:0,column:0},{line:p.length-1,column:f.length-p[p.length-1]},p.length-1,f.length)),this._buffers.push(new Mv(f,p))}const h=Lp(e);return u.push(new qa(this._buffers.length,{line:0,column:0},{line:h.length-1,column:e.length-h[h.length-1]},h.length-1,e.length)),this._buffers.push(new Mv(e,h)),u}let t=this._buffers[0].buffer.length;const i=Lp(e,!1);let s=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},s=this._lastChangeBufferPos;for(let u=0;u<i.length;u++)i[u]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+="_"+e,t+=1}else{if(t!==0)for(let u=0;u<i.length;u++)i[u]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+=e}const r=this._buffers[0].buffer.length,o=this._buffers[0].lineStarts.length-1,a=r-this._buffers[0].lineStarts[o],l={line:o,column:a},c=new qa(0,s,l,this.getLineFeedCnt(0,s,l),r-t);return this._lastChangeBufferPos=l,[c]}getLineRawContent(e,t=0){let i=this.root,s="";const r=this._searchCache.get2(e);if(r){i=r.node;const o=this.getAccumulatedValue(i,e-r.nodeStartLineNumber-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(r.nodeStartLineNumber+i.piece.lineFeedCnt===e)s=a.substring(l+o,l+i.piece.length);else{const c=this.getAccumulatedValue(i,e-r.nodeStartLineNumber);return a.substring(l+o,l+c-t)}}else{let o=0;const a=e;for(;i!==Ot;)if(i.left!==Ot&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this.getAccumulatedValue(i,e-i.lf_left-1),u=this._buffers[i.piece.bufferIndex].buffer,h=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:o,nodeStartLineNumber:a-(e-1-i.lf_left)}),u.substring(h+l,h+c-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this._buffers[i.piece.bufferIndex].buffer,u=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s=c.substring(u+l,u+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,o+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==Ot;){const o=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return s+=o.substring(l,l+a-t),s}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s+=o.substr(a,i.piece.length)}i=i.next()}return s}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==Ot;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,s=this.positionInBuffer(e,t),r=s.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const o=this.getLineFeedCnt(e.piece.bufferIndex,i.start,s);if(o!==r)return{index:o,remainder:0}}return{index:r,remainder:s.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,s=this._buffers[i.bufferIndex].lineStarts,r=i.start.line+t+1;return r>i.end.line?s[i.end.line]+i.end.column-s[i.start.line]-i.start.column:s[r]-s[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,s=i.lineFeedCnt,r=this.offsetInBuffer(i.bufferIndex,i.end),o=t,a=this.offsetInBuffer(i.bufferIndex,o),l=this.getLineFeedCnt(i.bufferIndex,i.start,o),c=l-s,u=a-r,h=i.length+u;e.piece=new qa(i.bufferIndex,i.start,o,l,h),Cp(this,e,u,c)}deleteNodeHead(e,t){const i=e.piece,s=i.lineFeedCnt,r=this.offsetInBuffer(i.bufferIndex,i.start),o=t,a=this.getLineFeedCnt(i.bufferIndex,o,i.end),l=this.offsetInBuffer(i.bufferIndex,o),c=a-s,u=r-l,h=i.length+u;e.piece=new qa(i.bufferIndex,o,i.end,a,h),Cp(this,e,u,c)}shrinkNode(e,t,i){const s=e.piece,r=s.start,o=s.end,a=s.length,l=s.lineFeedCnt,c=t,u=this.getLineFeedCnt(s.bufferIndex,s.start,c),h=this.offsetInBuffer(s.bufferIndex,t)-this.offsetInBuffer(s.bufferIndex,r);e.piece=new qa(s.bufferIndex,s.start,c,u,h),Cp(this,e,h-a,u-l);const d=new qa(s.bufferIndex,i,o,this.getLineFeedCnt(s.bufferIndex,i,o),this.offsetInBuffer(s.bufferIndex,o)-this.offsetInBuffer(s.bufferIndex,i)),f=this.rbInsertRight(e,d);this.validateCRLFWithPrevNode(f)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=` +`);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),s=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const r=Lp(t,!1);for(let f=0;f<r.length;f++)r[f]+=s;if(i){const f=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:s-f}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));const o=this._buffers[0].lineStarts.length-1,a=this._buffers[0].buffer.length-this._buffers[0].lineStarts[o],l={line:o,column:a},c=e.piece.length+t.length,u=e.piece.lineFeedCnt,h=this.getLineFeedCnt(0,e.piece.start,l),d=h-u;e.piece=new qa(e.piece.bufferIndex,e.piece.start,l,h,c),this._lastChangeBufferPos=l,Cp(this,e,t.length,d)}nodeAt(e){let t=this.root;const i=this._searchCache.get(e);if(i)return{node:i.node,nodeStartOffset:i.nodeStartOffset,remainder:e-i.nodeStartOffset};let s=0;for(;t!==Ot;)if(t.size_left>e)t=t.left;else if(t.size_left+t.piece.length>=e){s+=t.size_left;const r={node:t,remainder:e-t.size_left,nodeStartOffset:s};return this._searchCache.set(r),r}else e-=t.size_left+t.piece.length,s+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let i=this.root,s=0;for(;i!==Ot;)if(i.left!==Ot&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const r=this.getAccumulatedValue(i,e-i.lf_left-2),o=this.getAccumulatedValue(i,e-i.lf_left-1);return s+=i.size_left,{node:i,remainder:Math.min(r+t-1,o),nodeStartOffset:s}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const r=this.getAccumulatedValue(i,e-i.lf_left-2);if(r+t-1<=i.piece.length)return{node:i,remainder:r+t-1,nodeStartOffset:s};t-=i.piece.length-r;break}else e-=i.lf_left+i.piece.lineFeedCnt,s+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==Ot;){if(i.piece.lineFeedCnt>0){const r=this.getAccumulatedValue(i,0),o=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,r),nodeStartOffset:o}}else if(i.piece.length>=t-1){const r=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:r}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],s=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(s)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` +`)}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===Ot||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,s=t.start.line,r=i[s]+t.start.column;return s===i.length-1||i[s+1]>r+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(r)===10}endWithCR(e){return typeof e=="string"?e.charCodeAt(e.length-1)===13:e===Ot||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],s=this._buffers[e.piece.bufferIndex].lineStarts;let r;e.piece.end.column===0?r={line:e.piece.end.line-1,column:s[e.piece.end.line]-s[e.piece.end.line-1]-1}:r={line:e.piece.end.line,column:e.piece.end.column-1};const o=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new qa(e.piece.bufferIndex,e.piece.start,r,a,o),Cp(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},c=t.piece.length-1,u=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new qa(t.piece.bufferIndex,l,t.piece.end,u,c),Cp(this,t,-1,-1),t.piece.length===0&&i.push(t);const h=this.createNewPieces(`\r +`);this.rbInsertRight(e,h[0]);for(let d=0;d<i.length;d++)yP(this,i[d])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const i=t.next();if(this.startWithLF(i)){if(e+=` +`,i.piece.length===1)yP(this,i);else{const s=i.piece,r={line:s.start.line+1,column:0},o=s.length-1,a=this.getLineFeedCnt(s.bufferIndex,r,s.end);i.piece=new qa(s.bufferIndex,r,s.end,a,o),Cp(this,i,-1,-1)}return!0}}return!1}iterate(e,t){if(e===Ot)return t(Ot);const i=this.iterate(e.left,t);return i&&t(e)&&this.iterate(e.right,t)}getNodeContent(e){if(e===Ot)return"";const t=this._buffers[e.piece.bufferIndex],i=e.piece,s=this.offsetInBuffer(i.bufferIndex,i.start),r=this.offsetInBuffer(i.bufferIndex,i.end);return t.buffer.substring(s,r)}getPieceContent(e){const t=this._buffers[e.bufferIndex],i=this.offsetInBuffer(e.bufferIndex,e.start),s=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(i,s)}rbInsertRight(e,t){const i=new dU(t,1);if(i.left=Ot,i.right=Ot,i.parent=Ot,i.size_left=0,i.lf_left=0,this.root===Ot)this.root=i,i.color=0;else if(e.right===Ot)e.right=i,i.parent=e;else{const r=Dte(e.right);r.left=i,i.parent=r}return Hhe(this,i),i}rbInsertLeft(e,t){const i=new dU(t,1);if(i.left=Ot,i.right=Ot,i.parent=Ot,i.size_left=0,i.lf_left=0,this.root===Ot)this.root=i,i.color=0;else if(e.left===Ot)e.left=i,i.parent=e;else{const s=bke(e.left);s.right=i,i.parent=s}return Hhe(this,i),i}}class YC extends ue{constructor(e,t,i,s,r,o,a){super(),this._onDidChangeContent=this._register(new oe),this._BOM=t,this._mightContainNonBasicASCII=!o,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=r,this._pieceTree=new Wvt(e,i,a)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}getOffsetAt(e,t){return this._pieceTree.getOffsetAt(e,t)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,t){const i=e+t,s=this.getPositionAt(e),r=this.getPositionAt(i);return new O(s.lineNumber,s.column,r.lineNumber,r.column)}getValueInRange(e,t=0){if(e.isEmpty())return"";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,i)}getValueLengthInRange(e,t=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const i=this.getOffsetAt(e.startLineNumber,e.startColumn),s=this.getOffsetAt(e.endLineNumber,e.endColumn);let r=0;const o=this._getEndOfLine(t),a=this.getEOL();if(o.length!==a.length){const l=o.length-a.length,c=e.endLineNumber-e.startLineNumber;r=l*c}return s-i+r}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let i=0;const s=e.startLineNumber,r=e.endLineNumber;for(let o=s;o<=r;o++){const a=this.getLineContent(o),l=o===s?e.startColumn-1:0,c=o===r?e.endColumn-1:a.length;for(let u=l;u<c;u++)Js(a.charCodeAt(u))?(i=i+1,u=u+1):i=i+1}return i+=this._getEndOfLine(t).length*(r-s),i}return this.getValueLengthInRange(e,t)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,t){return this._pieceTree.getLineCharCode(e,t)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineFirstNonWhitespaceColumn(e){const t=Io(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Fh(this.getLineContent(e));return t===-1?0:t+2}_getEndOfLine(e){switch(e){case 1:return` +`;case 2:return`\r +`;case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,t,i){let s=this._mightContainRTL,r=this._mightContainUnusualLineTerminators,o=this._mightContainNonBasicASCII,a=!0,l=[];for(let g=0;g<e.length;g++){const m=e[g];a&&m._isTracked&&(a=!1);const _=m.range;if(m.text){let x=!0;o||(x=!IN(m.text),o=x),!s&&x&&(s=KS(m.text)),!r&&x&&(r=Yxe(m.text))}let b="",w=0,C=0,S=0;if(m.text){let x;[w,C,S,x]=d_(m.text);const k=this.getEOL();x===0||x===(k===`\r +`?2:1)?b=m.text:b=m.text.replace(/\r\n|\r|\n/g,k)}l[g]={sortIndex:g,identifier:m.identifier||null,range:_,rangeOffset:this.getOffsetAt(_.startLineNumber,_.startColumn),rangeLength:this.getValueLengthInRange(_),text:b,eolCount:w,firstLineLength:C,lastLineLength:S,forceMoveMarkers:!!m.forceMoveMarkers,isAutoWhitespaceEdit:m.isAutoWhitespaceEdit||!1}}l.sort(YC._sortOpsAscending);let c=!1;for(let g=0,m=l.length-1;g<m;g++){const _=l[g].range.getEndPosition(),b=l[g+1].range.getStartPosition();if(b.isBeforeOrEqual(_)){if(b.isBefore(_))throw new Error("Overlapping ranges are not allowed!");c=!0}}a&&(l=this._reduceOperations(l));const u=i||t?YC._getInverseEditRanges(l):[],h=[];if(t)for(let g=0;g<l.length;g++){const m=l[g],_=u[g];if(m.isAutoWhitespaceEdit&&m.range.isEmpty())for(let b=_.startLineNumber;b<=_.endLineNumber;b++){let w="";b===_.startLineNumber&&(w=this.getLineContent(m.range.startLineNumber),Io(w)!==-1)||h.push({lineNumber:b,oldContent:w})}}let d=null;if(i){let g=0;d=[];for(let m=0;m<l.length;m++){const _=l[m],b=u[m],w=this.getValueInRange(_.range),C=_.rangeOffset+g;g+=_.text.length-w.length,d[m]={sortIndex:_.sortIndex,identifier:_.identifier,range:b,text:w,textChange:new Fr(_.rangeOffset,w,C,_.text)}}c||d.sort((m,_)=>m.sortIndex-_.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=r,this._mightContainNonBasicASCII=o;const f=this._doApplyEdits(l);let p=null;if(t&&h.length>0){h.sort((g,m)=>m.lineNumber-g.lineNumber),p=[];for(let g=0,m=h.length;g<m;g++){const _=h[g].lineNumber;if(g>0&&h[g-1].lineNumber===_)continue;const b=h[g].oldContent,w=this.getLineContent(_);w.length===0||w===b||Io(w)!==-1||p.push(_)}}return this._onDidChangeContent.fire(),new O1t(d,f,p)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,s=e[e.length-1].range,r=new O(i.startLineNumber,i.startColumn,s.endLineNumber,s.endColumn);let o=i.startLineNumber,a=i.startColumn;const l=[];for(let f=0,p=e.length;f<p;f++){const g=e[f],m=g.range;t=t||g.forceMoveMarkers,l.push(this.getValueInRange(new O(o,a,m.startLineNumber,m.startColumn))),g.text.length>0&&l.push(g.text),o=m.endLineNumber,a=m.endColumn}const c=l.join(""),[u,h,d]=d_(c);return{sortIndex:0,identifier:e[0].identifier,range:r,rangeOffset:this.getOffsetAt(r.startLineNumber,r.startColumn),rangeLength:this.getValueLengthInRange(r,0),text:c,eolCount:u,firstLineLength:h,lastLineLength:d,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(YC._sortOpsDescending);const t=[];for(let i=0;i<e.length;i++){const s=e[i],r=s.range.startLineNumber,o=s.range.startColumn,a=s.range.endLineNumber,l=s.range.endColumn;if(r===a&&o===l&&s.text.length===0)continue;s.text?(this._pieceTree.delete(s.rangeOffset,s.rangeLength),this._pieceTree.insert(s.rangeOffset,s.text,!0)):this._pieceTree.delete(s.rangeOffset,s.rangeLength);const c=new O(r,o,a,l);t.push({range:c,rangeLength:s.rangeLength,text:s.text,rangeOffset:s.rangeOffset,forceMoveMarkers:s.forceMoveMarkers})}return t}findMatchesLineByLine(e,t,i,s){return this._pieceTree.findMatchesLineByLine(e,t,i,s)}static _getInverseEditRanges(e){const t=[];let i=0,s=0,r=null;for(let o=0,a=e.length;o<a;o++){const l=e[o];let c,u;r?r.range.endLineNumber===l.range.startLineNumber?(c=i,u=s+(l.range.startColumn-r.range.endColumn)):(c=i+(l.range.startLineNumber-r.range.endLineNumber),u=l.range.startColumn):(c=l.range.startLineNumber,u=l.range.startColumn);let h;if(l.text.length>0){const d=l.eolCount+1;d===1?h=new O(c,u,c,u+l.firstLineLength):h=new O(c,u,c+d-1,l.lastLineLength+1)}else h=new O(c,u,c,u);i=h.endLineNumber,s=h.endColumn,t.push(h),r=l}return t}static _sortOpsAscending(e,t){const i=O.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=O.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class Vvt{constructor(e,t,i,s,r,o,a,l,c){this._chunks=e,this._bom=t,this._cr=i,this._lf=s,this._crlf=r,this._containsRTL=o,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=c}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?` +`:`\r +`:i>t/2?`\r +`:` +`}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\r +`&&(this._cr>0||this._lf>0)||t===` +`&&(this._cr>0||this._crlf>0)))for(let r=0,o=i.length;r<o;r++){const a=i[r].buffer.replace(/\r\n|\r|\n/g,t),l=Lp(a);i[r]=new Mv(a,l)}const s=new YC(i,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:s,disposable:s}}}class wke{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(e.length===0)return;this.chunks.length===0&&Lee(e)&&(this.BOM=Sct,e=e.substr(1));const t=e.charCodeAt(e.length-1);t===13||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){!t&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=Ovt(this._tmpLineStarts,e);this.chunks.push(new Mv(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=KS(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=Yxe(e)))}finish(e=!0){return this._finish(),new Vvt(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Lp(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}const sx=new class{clone(){return this}equals(n){return this===n}};function Rte(n,e){return new vte([new MT(0,"",n)],e)}function v8(n,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(n<<0|0|0|32768|2<<24)>>>0,new p8(t,e===null?sx:e)}class Hvt{constructor(e){this._default=e,this._store=[]}get(e){return e<this._store.length?this._store[e]:this._default}set(e,t){for(;e>=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(t===0){this.insert(e,i);return}else if(i===0){this.delete(e,t);return}const s=this._store.slice(0,e),r=this._store.slice(e+t),o=$vt(i,this._default);this._store=s.concat(o,r)}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let s=0;s<t;s++)i[s]=this._default;this._store=XB(this._store,e,i)}}function $vt(n,e){const t=[];for(let i=0;i<n;i++)t[i]=e;return t}class zvt{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(e,t){this._startLineNumber=e,this._tokens=t}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class fU{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new zvt(e,[t]))}finalize(){return this._tokens}}class Uvt{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new pU(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class jvt extends Uvt{constructor(e,t,i,s){super(e,t),this._textModel=i,this._languageIdCodec=s}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const s=this.getFirstInvalidLine();if(!s||s.lineNumber>t)break;const r=this._textModel.getLineContent(s.lineNumber),o=hE(this._languageIdCodec,i,this.tokenizationSupport,r,!0,s.startState);e.add(s.lineNumber,o.tokens),this.store.setEndState(s.lineNumber,o.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const s=this._textModel.getLanguageId(),r=this._textModel.getLineContent(e.lineNumber),o=r.substring(0,e.column-1)+t+r.substring(e.column-1),a=hE(this._languageIdCodec,s,this.tokenizationSupport,o,!0,i),l=new Kr(a.tokens,o,this._languageIdCodec);if(l.getCount()===0)return 0;const c=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(c)}tokenizeLineWithEdit(e,t,i){const s=e.lineNumber,r=e.column,o=this.getStartState(s);if(!o)return null;const a=this._textModel.getLineContent(s),l=a.substring(0,r-1)+i+a.substring(r-1+t),c=this._textModel.getLanguageIdAtPosition(s,0),u=hE(this._languageIdCodec,c,this.tokenizationSupport,l,!0,o);return new Kr(u.tokens,l,this._languageIdCodec)}hasAccurateTokensForLine(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t||e===t&&this._textModel.getLineLength(e)<2048}tokenizeHeuristically(e,t,i){if(i<=this.store.getFirstInvalidEndStateLineNumberOrMax())return{heuristicTokens:!1};if(t<=this.store.getFirstInvalidEndStateLineNumberOrMax())return this.updateTokensUntilLine(e,i),{heuristicTokens:!1};let s=this.guessStartState(t);const r=this._textModel.getLanguageId();for(let o=t;o<=i;o++){const a=this._textModel.getLineContent(o),l=hE(this._languageIdCodec,r,this.tokenizationSupport,a,!0,s);e.add(o,l.tokens),s=l.endState}return{heuristicTokens:!0}}guessStartState(e){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);const i=[];let s=null;for(let a=e-1;t>1&&a>=1;a--){const l=this._textModel.getLineFirstNonWhitespaceColumn(a);if(l!==0&&l<t&&(i.push(this._textModel.getLineContent(a)),t=l,s=this.getStartState(a),s))break}s||(s=this.tokenizationSupport.getInitialState()),i.reverse();const r=this._textModel.getLanguageId();let o=s;for(const a of i)o=hE(this._languageIdCodec,r,this.tokenizationSupport,a,!1,o).endState;return o}}class pU{constructor(e){this.lineCount=e,this._tokenizationStateStore=new qvt,this._invalidEndStatesLineNumbers=new Kvt,this._invalidEndStatesLineNumbers.addRange(new Yt(1,e+1))}getEndState(e){return this._tokenizationStateStore.getEndState(e)}setEndState(e,t){if(!t)throw new Li("Cannot set null/undefined state");this._invalidEndStatesLineNumbers.delete(e);const i=this._tokenizationStateStore.setEndState(e,t);return i&&e<this.lineCount&&this._invalidEndStatesLineNumbers.addRange(new Yt(e+1,e+2)),i}acceptChange(e,t){this.lineCount+=t-e.length,this._tokenizationStateStore.acceptChange(e,t),this._invalidEndStatesLineNumbers.addRangeAndResize(new Yt(e.startLineNumber,e.endLineNumberExclusive),t)}acceptChanges(e){for(const t of e){const[i]=d_(t.text);this.acceptChange(new xt(t.range.startLineNumber,t.range.endLineNumber+1),i+1)}}invalidateEndStateRange(e){this._invalidEndStatesLineNumbers.addRange(new Yt(e.startLineNumber,e.endLineNumberExclusive))}getFirstInvalidEndStateLineNumber(){return this._invalidEndStatesLineNumbers.min}getFirstInvalidEndStateLineNumberOrMax(){return this.getFirstInvalidEndStateLineNumber()||Number.MAX_SAFE_INTEGER}allStatesValid(){return this._invalidEndStatesLineNumbers.min===null}getStartState(e,t){return e===1?t:this.getEndState(e-1)}getFirstInvalidLine(e){const t=this.getFirstInvalidEndStateLineNumber();if(t===null)return null;const i=this.getStartState(t,e);if(!i)throw new Li("Start state must be defined");return{lineNumber:t,startState:i}}}class qvt{constructor(){this._lineEndStates=new Hvt(null)}getEndState(e){return this._lineEndStates.get(e)}setEndState(e,t){const i=this._lineEndStates.get(e);return i&&i.equals(t)?!1:(this._lineEndStates.set(e,t),!0)}acceptChange(e,t){let i=e.length;t>0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class Kvt{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(i=>i.contains(e));if(t!==-1){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new Yt(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new Yt(i.start,e):this._ranges.splice(t,1,new Yt(i.start,e),new Yt(e+1,i.endExclusive))}}addRange(e){Yt.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let s=i;for(;!(s>=this._ranges.length||e.endExclusive<this._ranges[s].start);)s++;const r=t-e.length;for(let o=s;o<this._ranges.length;o++)this._ranges[o]=this._ranges[o].delta(r);if(i===s){const o=new Yt(e.start,e.start+t);o.isEmpty||this._ranges.splice(i,0,o)}else{const o=Math.min(e.start,this._ranges[i].start),a=Math.max(e.endExclusive,this._ranges[s-1].endExclusive),l=new Yt(o,a+r);l.isEmpty?this._ranges.splice(i,s-i):this._ranges.splice(i,s-i,l)}}toString(){return this._ranges.map(e=>e.toString()).join(" + ")}}function hE(n,e,t,i,s,r){let o=null;if(t)try{o=t.tokenizeEncoded(i,s,r.clone())}catch(a){Nt(a)}return o||(o=v8(n.encodeLanguageId(e),r)),Kr.convertToEndOffset(o.tokens,i.length),o}class Gvt{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,Mxe(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?Lxe(i):this._beginBackgroundTokenization())};i()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new fU,i=Nr.create(!1);do if(i.elapsed()>1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(e){var i;const t=(i=this._tokenizerWithStateStore)==null?void 0:i.getFirstInvalidLine();return t?(this._tokenizerWithStateStore.updateTokensUntilLine(e,t.lineNumber),t.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new xt(e,t))}}const Ep=new Uint32Array(0).buffer;class jd{static deleteBeginning(e,t){return e===null||e===Ep?e:jd.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===Ep)return e;const i=Kp(e),s=i[i.length-2];return jd.delete(e,t,s)}static delete(e,t,i){if(e===null||e===Ep||t===i)return e;const s=Kp(e),r=s.length>>>1;if(t===0&&s[s.length-2]===i)return Ep;const o=Kr.findIndexInTokensArray(s,t),a=o>0?s[o-1<<1]:0,l=s[o<<1];if(i<l){const f=i-t;for(let p=o;p<r;p++)s[p<<1]-=f;return e}let c,u;a!==t?(s[o<<1]=t,c=o+1<<1,u=t):(c=o<<1,u=a);const h=i-t;for(let f=o+1;f<r;f++){const p=s[f<<1]-h;p>u&&(s[c++]=p,s[c++]=s[(f<<1)+1],u=p)}if(c===s.length)return e;const d=new Uint32Array(c);return d.set(s.subarray(0,c),0),d.buffer}static append(e,t){if(t===Ep)return e;if(e===Ep)return t;if(e===null)return e;if(t===null)return null;const i=Kp(e),s=Kp(t),r=s.length>>>1,o=new Uint32Array(i.length+s.length);o.set(i,0);let a=i.length;const l=i[i.length-2];for(let c=0;c<r;c++)o[a++]=s[c<<1]+l,o[a++]=s[(c<<1)+1];return o.buffer}static insert(e,t,i){if(e===null||e===Ep)return e;const s=Kp(e),r=s.length>>>1;let o=Kr.findIndexInTokensArray(s,t);o>0&&s[o-1<<1]===t&&o--;for(let a=o;a<r;a++)s[a<<1]+=i;return e}}function Kp(n){return n instanceof Uint32Array?n:new Uint32Array(n)}class YT{constructor(e){this._lineTokens=[],this._len=0,this._languageIdCodec=e}flush(){this._lineTokens=[],this._len=0}get hasTokens(){return this._lineTokens.length>0}getTokens(e,t,i){let s=null;if(t<this._len&&(s=this._lineTokens[t]),s!==null&&s!==Ep)return new Kr(Kp(s),i,this._languageIdCodec);const r=new Uint32Array(2);return r[0]=i.length,r[1]=zhe(this._languageIdCodec.encodeLanguageId(e)),new Kr(r,i,this._languageIdCodec)}static _massageTokens(e,t,i){const s=i?Kp(i):null;if(t===0){let r=!1;if(s&&s.length>1&&(r=La.getLanguageId(s[1])!==e),!r)return Ep}if(!s||s.length===0){const r=new Uint32Array(2);return r[0]=t,r[1]=zhe(e),r.buffer}return s[s.length-2]=t,s.byteOffset===0&&s.byteLength===s.buffer.byteLength?s.buffer:s}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let s=0;s<t;s++)i[s]=null;this._lineTokens=XB(this._lineTokens,e,i),this._len+=t}setTokens(e,t,i,s,r){const o=YT._massageTokens(this._languageIdCodec.encodeLanguageId(e),i,s);this._ensureLine(t);const a=this._lineTokens[t];return this._lineTokens[t]=o,r?!YT._equals(a,o):!1}static _equals(e,t){if(!e||!t)return!e&&!t;const i=Kp(e),s=Kp(t);if(i.length!==s.length)return!1;for(let r=0,o=i.length;r<o;r++)if(i[r]!==s[r])return!1;return!0}acceptEdit(e,t,i){this._acceptDeleteRange(e),this._acceptInsertText(new se(e.startLineNumber,e.startColumn),t,i)}_acceptDeleteRange(e){const t=e.startLineNumber-1;if(t>=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._lineTokens[t]=jd.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=jd.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let s=null;i<this._len&&(s=jd.deleteBeginning(this._lineTokens[i],e.endColumn-1)),this._lineTokens[t]=jd.append(this._lineTokens[t],s),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,i){if(t===0&&i===0)return;const s=e.lineNumber-1;if(!(s>=this._len)){if(t===0){this._lineTokens[s]=jd.insert(this._lineTokens[s],e.column-1,i);return}this._lineTokens[s]=jd.deleteEnding(this._lineTokens[s],e.column-1),this._lineTokens[s]=jd.insert(this._lineTokens[s],e.column-1,i),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const i=[];for(let s=0,r=e.length;s<r;s++){const o=e[s];let a=0,l=0,c=!1;for(let u=o.startLineNumber;u<=o.endLineNumber;u++)c?(this.setTokens(t.getLanguageId(),u-1,t.getLineLength(u),o.getLineTokens(u),!1),l=u):this.setTokens(t.getLanguageId(),u-1,t.getLineLength(u),o.getLineTokens(u),!0)&&(c=!0,a=u,l=u);c&&i.push({fromLineNumber:a,toLineNumber:l})}return{changes:i}}}function zhe(n){return(n<<0|0|0|32768|2<<24|1024)>>>0}class Mte{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const r=t[0].getRange(),o=t[t.length-1].getRange();if(!r||!o)return e;i=e.plusRange(r).plusRange(o)}let s=null;for(let r=0,o=this._pieces.length;r<o;r++){const a=this._pieces[r];if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){s=s||{index:r};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(r,1),r--,o--;continue}if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){s=s||{index:r};continue}const[l,c]=a.split(i);if(l.isEmpty()){s=s||{index:r};continue}c.isEmpty()||(this._pieces.splice(r,1,l,c),r++,o++,s=s||{index:r})}return s=s||{index:this._pieces.length},t.length>0&&(this._pieces=XB(this._pieces,s.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getLineContent().length===0)return t;const i=this._pieces;if(i.length===0)return t;const s=Mte._findFirstPieceWithLine(i,e),r=i[s].getLineTokens(e);if(!r)return t;const o=t.getCount(),a=r.getCount();let l=0;const c=[];let u=0,h=0;const d=(f,p)=>{f!==h&&(h=f,c[u++]=f,c[u++]=p)};for(let f=0;f<a;f++){const p=r.getStartCharacter(f),g=r.getEndCharacter(f),m=r.getMetadata(f),_=((m&1?2048:0)|(m&2?4096:0)|(m&4?8192:0)|(m&8?16384:0)|(m&16?16744448:0)|(m&32?4278190080:0))>>>0,b=~_>>>0;for(;l<o&&t.getEndOffset(l)<=p;)d(t.getEndOffset(l),t.getMetadata(l)),l++;for(l<o&&t.getStartOffset(l)<p&&d(p,t.getMetadata(l));l<o&&t.getEndOffset(l)<g;)d(t.getEndOffset(l),t.getMetadata(l)&b|m&_),l++;if(l<o)d(g,t.getMetadata(l)&b|m&_),t.getEndOffset(l)===g&&l++;else{const w=Math.min(Math.max(0,l-1),o-1);d(g,t.getMetadata(w)&b|m&_)}}for(;l<o;)d(t.getEndOffset(l),t.getMetadata(l)),l++;return new Kr(new Uint32Array(c),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let i=0,s=e.length-1;for(;i<s;){let r=i+Math.floor((s-i)/2);if(e[r].endLineNumber<t)i=r+1;else if(e[r].startLineNumber>t)s=r-1;else{for(;r>i&&e[r-1].startLineNumber<=t&&t<=e[r-1].endLineNumber;)r--;return r}}return i}acceptEdit(e,t,i,s,r){for(const o of this._pieces)o.acceptEdit(e,t,i,s,r)}}class GF extends ZEe{constructor(e,t,i,s,r,o){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=s,this._languageId=r,this._attachedViews=o,this._semanticTokens=new Mte(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new oe),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new oe),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new oe),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new Xvt(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this.grammarTokens.onDidChangeTokens(a=>{this._emitModelTokensChangedEvent(a)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(a=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleLanguageConfigurationServiceChange(e){e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[i,s,r]=d_(t.text);this._semanticTokens.acceptEdit(t.range,i,s,r,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new Li("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this.grammarTokens.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),s=this.getLineTokens(t.lineNumber),r=s.findTokenIndexAtOffset(t.column-1),[o,a]=GF._findLanguageBoundaries(s,r),l=wT(t.column,this.getLanguageConfiguration(s.getLanguageId(r)).getWordDefinition(),i.substring(o,a),o);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(r>0&&o===t.column-1){const[c,u]=GF._findLanguageBoundaries(s,r-1),h=wT(t.column,this.getLanguageConfiguration(s.getLanguageId(r-1)).getWordDefinition(),i.substring(c,u),c);if(h&&h.startColumn<=e.column&&e.column<=h.endColumn)return h}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let s=0;for(let o=t;o>=0&&e.getLanguageId(o)===i;o--)s=e.getStartOffset(o);let r=e.getLineContent().length;for(let o=t,a=e.getCount();o<a&&e.getLanguageId(o)===i;o++)r=e.getEndOffset(o);return[s,r]}getWordUntilPosition(e){const t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(e,t){const i=this._textModel.validatePosition(new se(e,t)),s=this.getLineTokens(i.lineNumber);return s.getLanguageId(s.findTokenIndexAtOffset(i.column-1))}setLanguageId(e,t="api"){if(this._languageId===e)return;const i={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._bracketPairsTextModelPart.handleDidChangeLanguage(i),this.grammarTokens.resetTokenization(),this._onDidChangeLanguage.fire(i),this._onDidChangeLanguageConfiguration.fire({})}}class Xvt extends ue{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t,i,s){super(),this._languageIdCodec=e,this._textModel=t,this.getLanguageId=i,this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new rr),this._tokens=new YT(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new rr),this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new oe),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new oe),this.onDidChangeTokens=this._onDidChangeTokens.event,this._attachedViewStates=this._register(new gee),this._register(Xn.onDidChange(r=>{const o=this.getLanguageId();r.changedLanguages.indexOf(o)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(s.onDidChangeVisibleRanges(({view:r,state:o})=>{if(o){let a=this._attachedViewStates.get(r);a||(a=new Yvt(()=>this.refreshRanges(a.lineRanges)),this._attachedViewStates.set(r,a)),a.handleStateChange(o)}else this._attachedViewStates.deleteAndDispose(r)}))}resetTokenization(e=!0){var r;this._tokens.flush(),(r=this._debugBackgroundTokens)==null||r.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new pU(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const t=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const o=Xn.get(this.getLanguageId());if(!o)return[null,null];let a;try{a=o.getInitialState()}catch(l){return Nt(l),[null,null]}return[o,a]},[i,s]=t();if(i&&s?this._tokenizer=new jvt(this._textModel.getLineCount(),i,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const o={setTokens:a=>{this.setTokens(a)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const a=2;this._backgroundTokenizationState=a,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(a,l)=>{var u;if(!this._tokenizer)return;const c=this._tokenizer.store.getFirstInvalidEndStateLineNumber();c!==null&&a>=c&&((u=this._tokenizer)==null||u.store.setEndState(a,l))}};i&&i.createBackgroundTokenizer&&!i.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=i.createBackgroundTokenizer(this._textModel,o)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new Gvt(this._tokenizer,o),this._defaultBackgroundTokenizer.handleChanges()),i!=null&&i.backgroundTokenizerShouldOnlyVerifyTokens&&i.createBackgroundTokenizer?(this._debugBackgroundTokens=new YT(this._languageIdCodec),this._debugBackgroundStates=new pU(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=i.createBackgroundTokenizer(this._textModel,{setTokens:a=>{var l;(l=this._debugBackgroundTokens)==null||l.setMultilineTokens(a,this._textModel)},backgroundTokenizationFinished(){},setEndState:(a,l)=>{var c;(c=this._debugBackgroundStates)==null||c.setEndState(a,l)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)==null||e.handleChanges()}handleDidChangeContent(e){var t,i,s;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const r of e.changes){const[o,a]=d_(r.text);this._tokens.acceptEdit(r.range,o,a),(t=this._debugBackgroundTokens)==null||t.acceptEdit(r.range,o,a)}(i=this._debugBackgroundStates)==null||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(s=this._defaultBackgroundTokenizer)==null||s.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=xt.joinMany([...this._attachedViewStates].map(([t,i])=>i.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var o,a;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const i=new fU,{heuristicTokens:s}=this._tokenizer.tokenizeHeuristically(i,e,t),r=this.setTokens(i.finalize());if(s)for(const l of r.changes)(o=this._backgroundTokenizer.value)==null||o.requestTokens(l.fromLineNumber,l.toLineNumber+1);(a=this._defaultBackgroundTokenizer)==null||a.checkFinished()}forceTokenization(e){var i,s;const t=new fU;(i=this._tokenizer)==null||i.updateTokensUntilLine(t,e),this.setTokens(t.finalize()),(s=this._defaultBackgroundTokenizer)==null||s.checkFinished()}hasAccurateTokensForLine(e){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(e):!0}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var s;const t=this._textModel.getLineContent(e),i=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,t);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const r=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,t);!i.equals(r)&&((s=this._debugBackgroundTokenizer.value)!=null&&s.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return i}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const s=this._textModel.validatePosition(new se(e,t));return this.forceTokenization(s.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(s,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const s=this._textModel.validatePosition(e);return this.forceTokenization(s.lineNumber),this._tokenizer.tokenizeLineWithEdit(s,t,i)}get hasTokens(){return this._tokens.hasTokens}}class Yvt extends ue{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new ji(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){In(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}const b8=ri("undoRedoService");class Cke{constructor(e,t){this.resource=e,this.elements=t}}const gC=class gC{constructor(){this.id=gC._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}};gC._ID=0,gC.None=new gC;let gU=gC;const mC=class mC{constructor(){this.id=mC._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}};mC._ID=0,mC.None=new mC;let Ov=mC;var Zvt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},pW=function(n,e){return function(t,i){e(t,i,n)}},_v;function Qvt(n){const e=new wke;return e.acceptChunk(n),e.finish()}function Jvt(n){const e=new wke;let t;for(;typeof(t=n.read())=="string";)e.acceptChunk(t);return e.finish()}function Uhe(n,e){let t;return typeof n=="string"?t=Qvt(n):R1t(n)?t=Jvt(n):t=n,t.create(e)}let CP=0;const ebt=999,tbt=1e4;class ibt{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const s=this._source.read();if(s===null)return this._eos=!0,t===0?null:e.join("");if(s.length>0&&(e[t++]=s,i+=s.length),i>=64*1024)return e.join("")}while(!0)}}const dE=()=>{throw new Error("Invalid change accessor")};var wh;let Ah=(wh=class extends ue{static resolveOptions(e,t){if(t.detectIndentation){const i=Rhe(e,t.tabSize,t.insertSpaces);return new gM({tabSize:i.tabSize,indentSize:"tabSize",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new gM(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return Pu(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i,s=null,r,o,a){super(),this._undoRedoService=r,this._languageService=o,this._languageConfigurationService=a,this._onWillDispose=this._register(new oe),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new lbt(f=>this.handleBeforeFireDecorationsChangedEvent(f))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new oe),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new oe),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new oe),this._eventEmitter=this._register(new cbt),this._languageSelectionListener=this._register(new rr),this._deltaDecorationCallCnt=0,this._attachedViews=new ubt,CP++,this.id="$model"+CP,this.isForSimpleWidget=i.isForSimpleWidget,typeof s>"u"||s===null?this._associatedResource=mt.parse("inmemory://model/"+CP):this._associatedResource=s,this._attachedEditorCount=0;const{textBuffer:l,disposable:c}=Uhe(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=c,this._options=_v.resolveOptions(this._buffer,i);const u=typeof t=="string"?t:t.languageId;typeof t!="string"&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new nvt(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new X1t(this,this._languageConfigurationService)),this._decorationProvider=this._register(new rvt(this)),this._tokenizationTextModelPart=new GF(this._languageService,this._languageConfigurationService,this,this._bracketPairs,u,this._attachedViews);const h=this._buffer.getLineCount(),d=this._buffer.getValueLengthInRange(new O(1,1,h,this._buffer.getLineLength(h)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=d>_v.LARGE_FILE_SIZE_THRESHOLD||h>_v.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=d>_v.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=d>_v._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=Zxe(CP),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new jhe,this._commandManager=new Tte(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(u),this._register(this._languageConfigurationService.onDidChange(f=>{this._bracketPairs.handleLanguageConfigurationServiceChange(f),this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(f)}))}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new YC([],"",` +`,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=ue.None}_assertNotDisposed(){if(this._isDisposed)throw new Li("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Eb(e,t)))}setValue(e){if(this._assertNotDisposed(),e==null)throw Gc();const{textBuffer:t,disposable:i}=Uhe(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,s,r,o,a,l){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:s}],eol:this._buffer.getEOL(),isEolChange:l,versionId:this.getVersionId(),isUndoing:r,isRedoing:o,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new jhe,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new KC([new I_t],this._versionId,!1,!1),this._createContentChanged2(new O(1,1,r,o),0,s,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=e===1?`\r +`:` +`;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new KC([new N_t],this._versionId,!1,!1),this._createContentChanged2(new O(1,1,r,o),0,s,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,s=t.length;i<s;i++){const r=t[i],o=r.range,a=r.cachedAbsoluteStart-r.start,l=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),c=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);r.cachedAbsoluteStart=l,r.cachedAbsoluteEnd=c,r.cachedVersionId=e,r.start=l-a,r.end=c-a,p_(r)}}onBeforeAttached(){return this._attachedEditorCount++,this._attachedEditorCount===1&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.attachView()}onBeforeDetached(e){this._attachedEditorCount--,this._attachedEditorCount===0&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.detachView(e)}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let s=1;s<=i;s++){const r=this._buffer.getLineLength(s);r>=tbt?t+=r:e+=r}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=typeof e.tabSize<"u"?e.tabSize:this._options.tabSize,i=typeof e.indentSize<"u"?e.indentSize:this._options.originalIndentSize,s=typeof e.insertSpaces<"u"?e.insertSpaces:this._options.insertSpaces,r=typeof e.trimAutoWhitespace<"u"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,o=typeof e.bracketColorizationOptions<"u"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new gM({tabSize:t,indentSize:i,insertSpaces:s,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:r,bracketPairColorizationOptions:o});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairs.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=Rhe(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),Mee(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(Xxe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Li("Operation would exceed heap memory limits");const i=this.getFullModelRange(),s=this.getValueInRange(i,e);return t?this._buffer.getBOM()+s:s}createSnapshot(e=!1){return new ibt(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+s:s}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Li("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Li("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Li("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` +`?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Li("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Li("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Li("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,s=e.startColumn;let r=Math.floor(typeof i=="number"&&!isNaN(i)?i:1),o=Math.floor(typeof s=="number"&&!isNaN(s)?s:1);if(r<1)r=1,o=1;else if(r>t)r=t,o=this.getLineMaxColumn(r);else if(o<=1)o=1;else{const h=this.getLineMaxColumn(r);o>=h&&(o=h)}const a=e.endLineNumber,l=e.endColumn;let c=Math.floor(typeof a=="number"&&!isNaN(a)?a:1),u=Math.floor(typeof l=="number"&&!isNaN(l)?l:1);if(c<1)c=1,u=1;else if(c>t)c=t,u=this.getLineMaxColumn(c);else if(u<=1)u=1;else{const h=this.getLineMaxColumn(c);u>=h&&(u=h)}return i===r&&s===o&&a===c&&l===u&&e instanceof O&&!(e instanceof nt)?e:new O(r,o,c,u)}_isValidPosition(e,t,i){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const s=this._buffer.getLineCount();if(e>s)return!1;if(t===1)return!0;const r=this.getLineMaxColumn(e);if(t>r)return!1;if(i===1){const o=this._buffer.getLineCharCode(e,t-2);if(Js(o))return!1}return!0}_validatePosition(e,t,i){const s=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),r=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),o=this._buffer.getLineCount();if(s<1)return new se(1,1);if(s>o)return new se(o,this.getLineMaxColumn(o));if(r<=1)return new se(s,1);const a=this.getLineMaxColumn(s);if(r>=a)return new se(s,a);if(i===1){const l=this._buffer.getLineCharCode(s,r-2);if(Js(l))return new se(s,r-1)}return new se(s,r)}validatePosition(e){return this._assertNotDisposed(),e instanceof se&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,s=e.startColumn,r=e.endLineNumber,o=e.endColumn;if(!this._isValidPosition(i,s,0)||!this._isValidPosition(r,o,0))return!1;if(t===1){const a=s>1?this._buffer.getLineCharCode(i,s-2):0,l=o>1&&o<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,o-2):0,c=Js(a),u=Js(l);return!c&&!u}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof O&&!(e instanceof nt)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),s=this._validatePosition(e.endLineNumber,e.endColumn,0),r=i.lineNumber,o=i.column,a=s.lineNumber,l=s.column;{const c=o>1?this._buffer.getLineCharCode(r,o-2):0,u=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,h=Js(c),d=Js(u);return!h&&!d?new O(r,o,a,l):r===a&&o===l?new O(r,o-1,a,l-1):h&&d?new O(r,o-1,a,l+1):h?new O(r,o-1,a,l):new O(r,o,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new O(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,s){return this._buffer.findMatchesLineByLine(e,t,i,s)}findMatches(e,t,i,s,r,o,a=ebt){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(h=>O.isIRange(h))&&(l=t.map(h=>this.validateRange(h)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((h,d)=>h.startLineNumber-d.startLineNumber||h.startColumn-d.startColumn);const c=[];c.push(l.reduce((h,d)=>O.areIntersecting(h,d)?h.plusRange(d):(c.push(h),d)));let u;if(!i&&e.indexOf(` +`)<0){const d=new mv(e,i,s,r).parseSearchRequest();if(!d)return[];u=f=>this.findMatchesLineByLine(f,d,o,a)}else u=h=>wP.findMatches(this,new mv(e,i,s,r),h,o,a);return c.map(u).reduce((h,d)=>h.concat(d),[])}findNextMatch(e,t,i,s,r,o){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(` +`)<0){const c=new mv(e,i,s,r).parseSearchRequest();if(!c)return null;const u=this.getLineCount();let h=new O(a.lineNumber,a.column,u,this.getLineMaxColumn(u)),d=this.findMatchesLineByLine(h,c,o,1);return wP.findNextMatch(this,new mv(e,i,s,r),a,o),d.length>0||(h=new O(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),d=this.findMatchesLineByLine(h,c,o,1),d.length>0)?d[0]:null}return wP.findNextMatch(this,new mv(e,i,s,r),a,o)}findPreviousMatch(e,t,i,s,r,o){this._assertNotDisposed();const a=this.validatePosition(t);return wP.findPreviousMatch(this,new mv(e,i,s,r),a,o)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===` +`?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof nW?e:new nW(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,s=e.length;i<s;i++)t[i]=this._validateEditOperation(e[i]);return t}pushEditOperations(e,t,i,s){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),i,s)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,i,s){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const r=t.map(a=>({range:this.validateRange(a.range),text:a.text}));let o=!0;if(e)for(let a=0,l=e.length;a<l;a++){const c=e[a];let u=!1;for(let h=0,d=r.length;h<d;h++){const f=r[h].range,p=f.startLineNumber>c.endLineNumber,g=c.startLineNumber>f.endLineNumber;if(!p&&!g){u=!0;break}}if(!u){o=!1;break}}if(o)for(let a=0,l=this._trimAutoWhitespaceLines.length;a<l;a++){const c=this._trimAutoWhitespaceLines[a],u=this.getLineMaxColumn(c);let h=!0;for(let d=0,f=r.length;d<f;d++){const p=r[d].range,g=r[d].text;if(!(c<p.startLineNumber||c>p.endLineNumber)&&!(c===p.startLineNumber&&p.startColumn===u&&p.isEmpty()&&g&&g.length>0&&g.charAt(0)===` +`)&&!(c===p.startLineNumber&&p.startColumn===1&&p.isEmpty()&&g&&g.length>0&&g.charAt(g.length-1)===` +`)){h=!1;break}}if(h){const d=new O(c,1,c,u);t.push(new nW(null,d,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,s)}_applyUndo(e,t,i,s){const r=e.map(o=>{const a=this.getPositionAt(o.newPosition),l=this.getPositionAt(o.newEnd);return{range:new O(a.lineNumber,a.column,l.lineNumber,l.column),text:o.oldText}});this._applyUndoRedoEdits(r,t,!0,!1,i,s)}_applyRedo(e,t,i,s){const r=e.map(o=>{const a=this.getPositionAt(o.oldPosition),l=this.getPositionAt(o.oldEnd);return{range:new O(a.lineNumber,a.column,l.lineNumber,l.column),text:o.newText}});this._applyUndoRedoEdits(r,t,!1,!0,i,s)}_applyUndoRedoEdits(e,t,i,s,r,o){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=s,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(r)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(o),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),s=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),r=this._buffer.getLineCount(),o=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,o.length!==0){for(let c=0,u=o.length;c<u;c++){const h=o[c];this._decorationsTree.acceptReplace(h.rangeOffset,h.rangeLength,h.text.length,h.forceMoveMarkers)}const a=[];this._increaseVersionId();let l=i;for(let c=0,u=o.length;c<u;c++){const h=o[c],[d]=d_(h.text);this._onDidChangeDecorations.fire();const f=h.range.startLineNumber,p=h.range.endLineNumber,g=p-f,m=d,_=Math.min(g,m),b=m-g,w=r-l-b+f,C=w,S=w+m,x=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new se(C,1)),this.getOffsetAt(new se(S,this.getLineMaxColumn(S))),0),k=td.fromDecorations(x),L=new Hg(k);for(let E=_;E>=0;E--){const A=f+E,I=w+E;L.takeFromEndWhile(N=>N.lineNumber>I);const T=L.takeFromEndWhile(N=>N.lineNumber===I);a.push(new Lhe(A,this.getLineContent(I),T))}if(_<g){const E=f+_;a.push(new T_t(E+1,p))}if(_<m){const E=new Hg(k),A=f+_,I=m-_,T=r-l-I+A+1,N=[],M=[];for(let V=0;V<I;V++){const W=T+V;M[V]=this.getLineContent(W),E.takeWhile(B=>B.lineNumber<W),N[V]=E.takeWhile(B=>B.lineNumber===W)}a.push(new D_t(A+1,f+m,M,N))}l+=b}this._emitContentChangedEvent(new KC(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:o,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return s.reverseEdits===null?void 0:s.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(e===null||e.size===0)return;const i=Array.from(e).map(s=>new Lhe(s,this.getLineContent(s),this._getInjectedTextInLine(s)));this._onDidChangeInjectedText.fire(new ike(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(r,o)=>this._deltaDecorationsImpl(e,[],[{range:r,options:o}])[0],changeDecoration:(r,o)=>{this._changeDecorationImpl(r,o)},changeDecorationOptions:(r,o)=>{this._changeDecorationOptionsImpl(r,Khe(o))},removeDecoration:r=>{this._deltaDecorationsImpl(e,[r],[])},deltaDecorations:(r,o)=>r.length===0&&o.length===0?[]:this._deltaDecorationsImpl(e,r,o)};let s=null;try{s=t(i)}catch(r){Nt(r)}return i.addDecoration=dE,i.changeDecoration=dE,i.changeDecorationOptions=dE,i.removeDecoration=dE,i.deltaDecorations=dE,s}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),Nt(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const s=e?this._decorations[e]:null;if(!s)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:qhe[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(s),delete this._decorations[s.id],null;const r=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),a=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);return this._decorationsTree.delete(s),s.reset(this.getVersionId(),o,a,r),s.setOptions(qhe[i]),this._decorationsTree.insert(s),s.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,s=t.length;i<s;i++){const r=t[i];this._decorationsTree.delete(r),delete this._decorations[r.id]}}getDecorationOptions(e){const t=this._decorations[e];return t?t.options:null}getDecorationRange(e){const t=this._decorations[e];return t?this._decorationsTree.getNodeRange(this,t):null}getLineDecorations(e,t=0,i=!1){return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,s=!1,r=!1){const o=this.getLineCount(),a=Math.min(o,Math.max(1,e)),l=Math.min(o,Math.max(1,t)),c=this.getLineMaxColumn(l),u=new O(a,1,l,c),h=this._getDecorationsInRange(u,i,s,r);return xz(h,this._decorationProvider.getDecorationsInRange(u,i,s)),h}getDecorationsInRange(e,t=0,i=!1,s=!1,r=!1){const o=this.validateRange(e),a=this._getDecorationsInRange(o,t,i,r);return xz(a,this._decorationProvider.getDecorationsInRange(o,t,i,s)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),s=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return td.fromDecorations(s).filter(r=>r.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,s){const r=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,r,o,t,i,s)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const s=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),o=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),r,o,s),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const s=!!(i.options.overviewRuler&&i.options.overviewRuler.color),r=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.endLineNumber)}if(i.options.before||t.before){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.startLineNumber)}const o=s!==r,a=sbt(t)!==mM(i);o||a?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i,s=!1){const r=this.getVersionId(),o=t.length;let a=0;const l=i.length;let c=0;this._onDidChangeDecorations.beginDeferredEmit();try{const u=new Array(l);for(;a<o||c<l;){let h=null;if(a<o){do h=this._decorations[t[a++]];while(!h&&a<o);if(h){if(h.options.after){const d=this._decorationsTree.getNodeRange(this,h);this._onDidChangeDecorations.recordLineAffectedByInjectedText(d.endLineNumber)}if(h.options.before){const d=this._decorationsTree.getNodeRange(this,h);this._onDidChangeDecorations.recordLineAffectedByInjectedText(d.startLineNumber)}this._decorationsTree.delete(h),s||this._onDidChangeDecorations.checkAffectedAndFire(h.options)}}if(c<l){if(!h){const _=++this._lastDecorationId,b=`${this._instanceId};${_}`;h=new _ke(b,0,0),this._decorations[b]=h}const d=i[c],f=this._validateRangeRelaxedNoAllocations(d.range),p=Khe(d.options),g=this._buffer.getOffsetAt(f.startLineNumber,f.startColumn),m=this._buffer.getOffsetAt(f.endLineNumber,f.endColumn);h.ownerId=e,h.reset(r,g,m,f),h.setOptions(p),h.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.endLineNumber),h.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.startLineNumber),s||this._onDidChangeDecorations.checkAffectedAndFire(p),this._decorationsTree.insert(h),u[c]=h.id,c++}else h&&delete this._decorations[h.id]}return u}finally{this._onDidChangeDecorations.endDeferredEmit()}}getLanguageId(){return this.tokenization.getLanguageId()}setLanguage(e,t){typeof e=="string"?(this._languageSelectionListener.clear(),this._setLanguage(e,t)):(this._languageSelectionListener.value=e.onDidChange(()=>this._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return nbt(this.getLineContent(e))+1}},_v=wh,wh._MODEL_SYNC_LIMIT=50*1024*1024,wh.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024,wh.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3,wh.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024,wh.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:eo.tabSize,indentSize:eo.indentSize,insertSpaces:eo.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:eo.trimAutoWhitespace,largeFileOptimizations:eo.largeFileOptimizations,bracketPairColorizationOptions:eo.bracketPairColorizationOptions},wh);Ah=_v=Zvt([pW(4,b8),pW(5,Dn),pW(6,ln)],Ah);function nbt(n){let e=0;for(const t of n)if(t===" "||t===" ")e++;else break;return e}function gW(n){return!!(n.options.overviewRuler&&n.options.overviewRuler.color)}function sbt(n){return!!n.after||!!n.before}function mM(n){return!!n.options.after||!!n.options.before}class jhe{constructor(){this._decorationsTree0=new hW,this._decorationsTree1=new hW,this._injectedTextDecorationsTree=new hW}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)i.range===null&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,s,r,o){const a=e.getVersionId(),l=this._intervalSearch(t,i,s,r,a,o);return this._ensureNodesHaveRanges(e,l)}_intervalSearch(e,t,i,s,r,o){const a=this._decorationsTree0.intervalSearch(e,t,i,s,r,o),l=this._decorationsTree1.intervalSearch(e,t,i,s,r,o),c=this._injectedTextDecorationsTree.intervalSearch(e,t,i,s,r,o);return a.concat(l).concat(c)}getInjectedTextInInterval(e,t,i,s){const r=e.getVersionId(),o=this._injectedTextDecorationsTree.intervalSearch(t,i,s,!1,r,!1);return this._ensureNodesHaveRanges(e,o).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),s=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,s).filter(r=>r.options.showIfCollapsed||!r.range.isEmpty())}getAll(e,t,i,s,r){const o=e.getVersionId(),a=this._search(t,i,s,o,r);return this._ensureNodesHaveRanges(e,a)}_search(e,t,i,s,r){if(i)return this._decorationsTree1.search(e,t,s,r);{const o=this._decorationsTree0.search(e,t,s,r),a=this._decorationsTree1.search(e,t,s,r),l=this._injectedTextDecorationsTree.search(e,t,s,r);return o.concat(a).concat(l)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),s=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(s)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){mM(e)?this._injectedTextDecorationsTree.insert(e):gW(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){mM(e)?this._injectedTextDecorationsTree.delete(e):gW(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){mM(e)?this._injectedTextDecorationsTree.resolveNode(e,t):gW(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,s){this._decorationsTree0.acceptReplace(e,t,i,s),this._decorationsTree1.acceptReplace(e,t,i,s),this._injectedTextDecorationsTree.acceptReplace(e,t,i,s)}}function Cd(n){return n.replace(/[^a-z0-9\-_]/gi," ")}class Ske{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class rbt extends Ske{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position=="number"?e.position:cc.Center}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e=="string")return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class obt{constructor(e){this.position=(e==null?void 0:e.position)??Uu.Center,this.persistLane=e==null?void 0:e.persistLane}}class abt extends Ske{constructor(e){super(e),this.position=e.position,this.sectionHeaderStyle=e.sectionHeaderStyle??null,this.sectionHeaderText=e.sectionHeaderText??null}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return typeof e=="string"?Ce.fromHex(e):t.getColor(e.id)}}class g_{static from(e){return e instanceof g_?e:new g_(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class At{static register(e){return new At(e)}static createDynamic(e){return new At(e)}constructor(e){this.description=e.description,this.blockClassName=e.blockClassName?Cd(e.blockClassName):null,this.blockDoesNotCollapse=e.blockDoesNotCollapse??null,this.blockIsAfterEnd=e.blockIsAfterEnd??null,this.blockPadding=e.blockPadding??null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?Cd(e.className):null,this.shouldFillLineOnLineBreak=e.shouldFillLineOnLineBreak??null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new rbt(e.overviewRuler):null,this.minimap=e.minimap?new abt(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new obt(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?Cd(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?Cd(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?Cd(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?fct(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?Cd(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?Cd(e.marginClassName):null,this.inlineClassName=e.inlineClassName?Cd(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?Cd(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?Cd(e.afterContentClassName):null,this.after=e.after?g_.from(e.after):null,this.before=e.before?g_.from(e.before):null,this.hideInCommentTokens=e.hideInCommentTokens??!1,this.hideInStringTokens=e.hideInStringTokens??!1}}At.EMPTY=At.register({description:"empty"});const qhe=[At.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),At.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),At.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),At.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Khe(n){return n instanceof At?n:At.createDynamic(n)}class lbt extends ue{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new oe),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)==null||e.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){var t,i;this._affectsMinimap||(this._affectsMinimap=!!((t=e.minimap)!=null&&t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!((i=e.overviewRuler)!=null&&i.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class cbt extends ue{constructor(){super(),this._fastEmitter=this._register(new oe),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new oe),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}class ubt{constructor(){this._onDidChangeVisibleRanges=new oe,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new hbt(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class hbt{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map(s=>new xt(s.startLineNumber,s.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}const Je=ri("ILanguageFeaturesService");class Ote{static create(e){return new Ote(e.get(135),e.get(134))}constructor(e,t){this.classifier=new dbt(e,t)}createLineBreaksComputer(e,t,i,s,r){const o=[],a=[],l=[];return{addRequest:(c,u,h)=>{o.push(c),a.push(u),l.push(h)},finalize:()=>{const c=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,u=[];for(let h=0,d=o.length;h<d;h++){const f=a[h],p=l[h];p&&!p.injectionOptions&&!f?u[h]=fbt(this.classifier,p,o[h],t,i,c,s,r):u[h]=pbt(this.classifier,o[h],f,t,i,c,s,r)}return mU.length=0,_U.length=0,u}}}}class dbt extends cL{constructor(e,t){super(0);for(let i=0;i<e.length;i++)this.set(e.charCodeAt(i),1);for(let i=0;i<t.length;i++)this.set(t.charCodeAt(i),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let mU=[],_U=[];function fbt(n,e,t,i,s,r,o,a){if(s===-1)return null;const l=t.length;if(l<=1)return null;const c=a==="keepAll",u=e.breakOffsets,h=e.breakOffsetsVisibleColumn,d=xke(t,i,s,r,o),f=s-d,p=mU,g=_U;let m=0,_=0,b=0,w=s;const C=u.length;let S=0;if(S>=0){let x=Math.abs(h[S]-w);for(;S+1<C;){const k=Math.abs(h[S+1]-w);if(k>=x)break;x=k,S++}}for(;S<C;){let x=S<0?0:u[S],k=S<0?0:h[S];_>x&&(x=_,k=b);let L=0,E=0,A=0,I=0;if(k<=w){let N=k,M=x===0?0:t.charCodeAt(x-1),V=x===0?0:n.get(M),W=!0;for(let B=x;B<l;B++){const $=B,Y=t.charCodeAt(B);let le,re;if(Js(Y)?(B++,le=0,re=2):(le=n.get(Y),re=$k(Y,N,i,r)),$>_&&vU(M,V,Y,le,c)&&(L=$,E=N),N+=re,N>w){$>_?(A=$,I=N-re):(A=B+1,I=N),N-E>f&&(L=0),W=!1;break}M=Y,V=le}if(W){m>0&&(p[m]=u[u.length-1],g[m]=h[u.length-1],m++);break}}if(L===0){let N=k,M=t.charCodeAt(x),V=n.get(M),W=!1;for(let B=x-1;B>=_;B--){const $=B+1,Y=t.charCodeAt(B);if(Y===9){W=!0;break}let le,re;if(Uy(Y)?(B--,le=0,re=2):(le=n.get(Y),re=r_(Y)?r:1),N<=w){if(A===0&&(A=$,I=N),N<=w-f)break;if(vU(Y,le,M,V,c)){L=$,E=N;break}}N-=re,M=Y,V=le}if(L!==0){const B=f-(I-E);if(B<=i){const $=t.charCodeAt(A);let Y;Js($)?Y=2:Y=$k($,I,i,r),B-Y<0&&(L=0)}}if(W){S--;continue}}if(L===0&&(L=A,E=I),L<=_){const N=t.charCodeAt(_);Js(N)?(L=_+2,E=b+2):(L=_+1,E=b+$k(N,b,i,r))}for(_=L,p[m]=L,b=E,g[m]=E,m++,w=E+f;S<0||S<C&&h[S]<E;)S++;let T=Math.abs(h[S]-w);for(;S+1<C;){const N=Math.abs(h[S+1]-w);if(N>=T)break;T=N,S++}}return m===0?null:(p.length=m,g.length=m,mU=e.breakOffsets,_U=e.breakOffsetsVisibleColumn,e.breakOffsets=p,e.breakOffsetsVisibleColumn=g,e.wrappedTextIndentLength=d,e)}function pbt(n,e,t,i,s,r,o,a){const l=td.applyInjectedText(e,t);let c,u;if(t&&t.length>0?(c=t.map(E=>E.options),u=t.map(E=>E.column-1)):(c=null,u=null),s===-1)return c?new Fk(u,c,[l.length],[],0):null;const h=l.length;if(h<=1)return c?new Fk(u,c,[l.length],[],0):null;const d=a==="keepAll",f=xke(l,i,s,r,o),p=s-f,g=[],m=[];let _=0,b=0,w=0,C=s,S=l.charCodeAt(0),x=n.get(S),k=$k(S,0,i,r),L=1;Js(S)&&(k+=1,S=l.charCodeAt(1),x=n.get(S),L++);for(let E=L;E<h;E++){const A=E,I=l.charCodeAt(E);let T,N;Js(I)?(E++,T=0,N=2):(T=n.get(I),N=$k(I,k,i,r)),vU(S,x,I,T,d)&&(b=A,w=k),k+=N,k>C&&((b===0||k-w>p)&&(b=A,w=k-N),g[_]=b,m[_]=w,_++,C=w+p,b=0),S=I,x=T}return _===0&&(!t||t.length===0)?null:(g[_]=h,m[_]=k,new Fk(u,c,g,m,f))}function $k(n,e,t,i){return n===9?t-e%t:r_(n)||n<32?i:1}function Ghe(n,e){return e-n%e}function vU(n,e,t,i,s){return t!==32&&(e===2&&i!==2||e!==1&&i===1||!s&&e===3&&i!==2||!s&&i===3&&e!==1)}function xke(n,e,t,i,s){let r=0;if(s!==0){const o=Io(n);if(o!==-1){for(let l=0;l<o;l++){const c=n.charCodeAt(l)===9?Ghe(r,e):1;r+=c}const a=s===3?2:s===2?1:0;for(let l=0;l<a;l++){const c=Ghe(r,e);r+=c}r+i>t&&(r=0)}}return r}class XF{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new Cr(new O(1,1,1,1),0,0,new se(1,1),0),new Cr(new O(1,1,1,1),0,0,new se(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new bi(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?nt.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):nt.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,s){return t.equals(i)?s:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,s=t.selectionStart.getStartPosition(),r=t.selectionStart.getEndPosition(),o=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,s,i,o),l=this._validatePositionWithCache(e,r,s,a);return i.equals(o)&&s.equals(a)&&r.equals(l)?t:new Cr(O.fromPositions(a,l),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+s.column-a.column,o,t.leftoverVisibleColumns+i.column-o.column)}_setState(e,t,i){if(i&&(i=XF._validateViewState(e.viewModel,i)),t){const s=e.model.validateRange(t.selectionStart),r=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,o=e.model.validatePosition(t.position),a=t.position.equals(o)?t.leftoverVisibleColumns:0;t=new Cr(s,t.selectionStartKind,r,o,a)}else{if(!i)return;const s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),r=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new Cr(s,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,r,i.leftoverVisibleColumns)}if(i){const s=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),r=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new Cr(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}else{const s=e.coordinatesConverter.convertModelPositionToViewPosition(new se(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),r=e.coordinatesConverter.convertModelPositionToViewPosition(new se(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),o=new O(s.lineNumber,s.column,r.lineNumber,r.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new Cr(o,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class Xhe{constructor(e){this.context=e,this.cursors=[new XF(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return q1t(this.cursors,Jo(e=>e.viewState.position,se.compare)).viewState.position}getBottomMostViewPosition(){return j1t(this.cursors,Jo(e=>e.viewState.position,se.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(bi.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(t<i){const s=i-t;for(let r=0;r<s;r++)this._addSecondaryCursor()}else if(t>i){const s=t-i;for(let r=0;r<s;r++)this._removeSecondaryCursor(this.cursors.length-2)}for(let s=0;s<i;s++)this.cursors[s+1].setState(this.context,e[s].modelState,e[s].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new XF(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return this.cursors.length===1||this.lastAddedCursorIndex===0?0:this.lastAddedCursorIndex}_removeSecondaryCursor(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,s=e.length;i<s;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort(Jo(i=>i.selection,O.compareRangesUsingStarts));for(let i=0;i<t.length-1;i++){const s=t[i],r=t[i+1],o=s.selection,a=r.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let l;if(a.isEmpty()||o.isEmpty()?l=a.getStartPosition().isBeforeOrEqual(o.getEndPosition()):l=a.getStartPosition().isBefore(o.getEndPosition()),l){const c=s.index<r.index?i:i+1,u=s.index<r.index?i+1:i,h=t[u].index,d=t[c].index,f=t[u].selection,p=t[c].selection;if(!f.equalsSelection(p)){const g=f.plusRange(p),m=f.selectionStartLineNumber===f.startLineNumber&&f.selectionStartColumn===f.startColumn,_=p.selectionStartLineNumber===p.startLineNumber&&p.selectionStartColumn===p.startColumn;let b;h===this.lastAddedCursorIndex?(b=m,this.lastAddedCursorIndex=d):b=_;let w;b?w=new nt(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn):w=new nt(g.endLineNumber,g.endColumn,g.startLineNumber,g.startColumn),t[c].selection=w;const C=bi.fromModelSelection(w);e[d].setState(this.context,C.modelState,C.viewState)}for(const g of t)g.index>h&&g.index--;e.splice(h,1),t.splice(u,1),this._removeSecondaryCursor(h-1),i--}}}}class Yhe{constructor(e,t,i,s){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=s}}class gbt{constructor(){this.type=0}}class mbt{constructor(){this.type=1}}class _bt{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class vbt{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class Q_{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}}class SP{constructor(){this.type=5}}class bbt{constructor(e){this.type=6,this.isFocused=e}}class ybt{constructor(){this.type=7}}class xP{constructor(){this.type=8}}class Lke{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class bU{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class yU{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class zk{constructor(e,t,i,s,r,o,a){this.source=e,this.minimalReveal=t,this.range=i,this.selections=s,this.verticalType=r,this.revealHorizontal=o,this.scrollType=a,this.type=12}}class wbt{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class Cbt{constructor(e){this.theme=e,this.type=14}}class Sbt{constructor(e){this.type=15,this.ranges=e}}class xbt{constructor(){this.type=16}}let Lbt=class{constructor(){this.type=17}};class Ebt extends ue{constructor(){super(),this._onEvent=this._register(new oe),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t<i;t++){const s=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(s){this._outgoingEvents[t]=s;return}}this._outgoingEvents.push(e)}_emitOutgoingEvents(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t<i;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,this._collectorCnt===1&&(this._collector=new kbt),this._collector}endEmitViewEvents(){if(this._collectorCnt--,this._collectorCnt===0){const e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;for(const i of e)this._addOutgoingEvent(i);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class kbt{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class Fte{constructor(e,t,i,s){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=s,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new Fte(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class Bte{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new Bte(this.oldHasFocus,e.hasFocus)}}class Wte{constructor(e,t,i,s,r,o,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=s,this.scrollWidth=r,this.scrollLeft=o,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new Wte(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class Ibt{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Tbt{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class YF{constructor(e,t,i,s,r,o,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=s,this.source=r,this.reason=o,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,s=t.length;if(i!==s)return!1;for(let r=0;r<i;r++)if(!e[r].equalsSelection(t[r]))return!1;return!0}isNoOp(){return YF._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new YF(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class Dbt{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Nbt{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class Abt{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class Pbt{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class Rbt{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class Mbt{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class Obt{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class Fbt extends ue{constructor(e,t,i,s){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=i,this.context=new Yhe(this._model,this._viewModel,this._coordinatesConverter,s),this._cursors=new Xhe(this.context),this._hasFocus=!1,this._isHandling=!1,this._compositionState=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=Yi(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new Yhe(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){const e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){const i=this._autoClosedActions[t];i.isValid(e)||(i.dispose(),this._autoClosedActions.splice(t,1),t--)}}}getPrimaryCursorState(){return this._cursors.getPrimaryCursor()}getLastAddedCursorIndex(){return this._cursors.getLastAddedCursorIndex()}getCursorStates(){return this._cursors.getAll()}setStates(e,t,i,s){let r=!1;const o=this.context.cursorConfig.multiCursorLimit;s!==null&&s.length>o&&(s=s.slice(0,o),r=!0);const a=Uk.from(this._model,this);return this._cursors.setStates(s),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,r)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,i,s,r,o){const a=this._cursors.getViewPositions();let l=null,c=null;a.length>1?c=this._cursors.getViewSelections():l=O.fromPositions(a[0],a[0]),e.emitViewEvent(new zk(t,i,l,c,s,r,o))}revealPrimary(e,t,i,s,r,o){const l=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new zk(t,i,null,l,s,r,o))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,s=t.length;i<s;i++){const r=t[i];e.push({inSelectionMode:!r.isEmpty(),selectionStart:{lineNumber:r.selectionStartLineNumber,column:r.selectionStartColumn},position:{lineNumber:r.positionLineNumber,column:r.positionColumn}})}return e}restoreState(e,t){const i=[];for(let s=0,r=t.length;s<r;s++){const o=t[s];let a=1,l=1;o.position&&o.position.lineNumber&&(a=o.position.lineNumber),o.position&&o.position.column&&(l=o.position.column);let c=a,u=l;o.selectionStart&&o.selectionStart.lineNumber&&(c=o.selectionStart.lineNumber),o.selectionStart&&o.selectionStart.column&&(u=o.selectionStart.column),i.push({selectionStartLineNumber:c,selectionStartColumn:u,positionLineNumber:a,positionColumn:l})}this.setStates(e,"restoreState",0,bi.fromModelSelections(i)),this.revealAll(e,"restoreState",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof ike){if(this._isHandling)return;this._isHandling=!0;try{this.setStates(e,"modelChange",0,this.getCursorStates())}finally{this._isHandling=!1}}else{const i=t.rawContentChangedEvent;if(this._knownModelVersionId=i.versionId,this._isHandling)return;const s=i.containsEvent(1);if(this._prevEditOperationType=0,s)this._cursors.dispose(),this._cursors=new Xhe(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&i.resultingSelection&&i.resultingSelection.length>0){const r=bi.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,r)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{const r=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,bi.fromModelSelections(r))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,s){this.setStates(e,t,s,bi.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],s=[];for(let a=0,l=e.length;a<l;a++)i.push({range:e[a],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),s.push({range:t[a],options:{description:"auto-closed-enclosing",stickiness:1}});const r=this._model.deltaDecorations([],i),o=this._model.deltaDecorations([],s);this._autoClosedActions.push(new Zhe(this._model,r,o))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();const t=Bbt.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);const i=[],s=[];for(let r=0;r<e.commands.length;r++){const o=e.commands[r];o instanceof Gee&&o.enclosingRange&&o.closeCharacterRange&&(i.push(o.closeCharacterRange),s.push(o.enclosingRange))}i.length>0&&this._pushAutoClosedAction(i,s),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,s,r){const o=Uk.from(this._model,this);if(o.equals(s))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new vbt(l,a,i)),!s||s.cursorState.length!==o.cursorState.length||o.cursorState.some((c,u)=>!c.modelState.equals(s.cursorState[u].modelState))){const c=s?s.cursorState.map(h=>h.modelState.selection):null,u=s?s.modelVersionId:0;e.emitOutgoingEvent(new YF(c,a,u,o.modelVersionId,t||"keyboard",i,r))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,s=e.length;i<s;i++){const r=e[i];if(!r.text||r.text.indexOf(` +`)>=0)return null;const o=r.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;const a=o[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const c=l[0].open,u=r.text.length-o[2].length-1,h=r.text.lastIndexOf(c,u-1);if(h===-1)return null;t.push([h,u])}return t}executeEdits(e,t,i,s){let r=null;t==="snippet"&&(r=this._findAutoClosingPairs(i)),r&&(i[0]._isTracked=!0);const o=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,c=>{if(r)for(let h=0,d=r.length;h<d;h++){const[f,p]=r[h],g=c[h],m=g.range.startLineNumber,_=g.range.startColumn-1+f,b=g.range.startColumn-1+p;o.push(new O(m,b+1,m,b+2)),a.push(new O(m,_+1,m,b+2))}const u=s(c);return u&&(this._isHandling=!0),u});l&&(this._isHandling=!1,this.setSelections(e,t,l,0)),o.length>0&&this._pushAutoClosedAction(o,a)}_executeEdit(e,t,i,s=0){if(this.context.cursorConfig.readOnly)return;const r=Uk.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(o){Nt(o)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,s,r,!1)&&this.revealAll(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return Zhe.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new jk(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t==="keyboard"&&this._executeEditOperation(zm.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,i){this._executeEdit(()=>{if(i==="keyboard"){const s=t.length;let r=0;for(;r<s;){const o=See(t,r),a=t.substr(r,o);this._executeEditOperation(zm.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),a)),r+=o}}else this._executeEditOperation(zm.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))},e,i)}compositionType(e,t,i,s,r,o){if(t.length===0&&i===0&&s===0){if(r!==0){const a=this.getSelections().map(l=>{const c=l.getPosition();return new nt(c.lineNumber,c.column+r,c.lineNumber,c.column+r)});this.setSelections(e,o,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(zm.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,s,r))},e,o)}paste(e,t,i,s,r){this._executeEdit(()=>{this._executeEditOperation(zm.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,s||[]))},e,r,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(Gy.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new Ra(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new Ra(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}class Uk{static from(e,t){return new Uk(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t<i;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class Zhe{static getAllAutoClosedCharacters(e){let t=[];for(const i of e)t=t.concat(i.getAutoClosedCharactersRanges());return t}constructor(e,t,i){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=i}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){const e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){const i=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);i&&e.push(i)}return e}isValid(e){const t=[];for(let i=0;i<this._autoClosedEnclosingDecorations.length;i++){const s=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i]);if(s&&(t.push(s),s.startLineNumber!==s.endLineNumber))return!1}t.sort(O.compareRangesUsingStarts),e.sort(O.compareRangesUsingStarts);for(let i=0;i<e.length;i++)if(i>=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class Bbt{static executeCommands(e,t,i){const s={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},r=this._innerExecuteCommands(s,i);for(let o=0,a=s.trackedRanges.length;o<a;o++)s.model._setTrackedRange(s.trackedRanges[o],null,0);return r}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;const i=this._getEditOperations(e,t);if(i.operations.length===0)return null;const s=i.operations,r=this._getLoserCursorMap(s);if(r.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;const o=[];for(let c=0,u=s.length;c<u;c++)r.hasOwnProperty(s[c].identifier.major.toString())||o.push(s[c]);i.hadTrackedEditOperation&&o.length>0&&(o[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,o,c=>{const u=[];for(let f=0;f<e.selectionsBefore.length;f++)u[f]=[];for(const f of c)f.identifier&&u[f.identifier.major].push(f);const h=(f,p)=>f.identifier.minor-p.identifier.minor,d=[];for(let f=0;f<e.selectionsBefore.length;f++)u[f].length>0?(u[f].sort(h),d[f]=t[f].computeCursorState(e.model,{getInverseEditOperations:()=>u[f],getTrackedSelection:p=>{const g=parseInt(p,10),m=e.model._getTrackedRange(e.trackedRanges[g]);return e.trackedRangesDirection[g]===0?new nt(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn):new nt(m.endLineNumber,m.endColumn,m.startLineNumber,m.startColumn)}})):d[f]=e.selectionsBefore[f];return d});a||(a=e.selectionsBefore);const l=[];for(const c in r)r.hasOwnProperty(c)&&l.push(parseInt(c,10));l.sort((c,u)=>u-c);for(const c of l)a.splice(c,1);return a}static _arrayIsEmpty(e){for(let t=0,i=e.length;t<i;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let i=[],s=!1;for(let r=0,o=t.length;r<o;r++){const a=t[r];if(a){const l=this._getEditOperationsFromCommand(e,r,a);i=i.concat(l.operations),s=s||l.hadTrackedEditOperation}}return{operations:i,hadTrackedEditOperation:s}}static _getEditOperationsFromCommand(e,t,i){const s=[];let r=0;const o=(h,d,f=!1)=>{O.isEmpty(h)&&d===""||s.push({identifier:{major:t,minor:r++},range:h,text:d,forceMoveMarkers:f,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const u={addEditOperation:o,addTrackedEditOperation:(h,d,f)=>{a=!0,o(h,d,f)},trackSelection:(h,d)=>{const f=nt.liftSelection(h);let p;if(f.isEmpty())if(typeof d=="boolean")d?p=2:p=3;else{const _=e.model.getLineMaxColumn(f.startLineNumber);f.startColumn===_?p=2:p=3}else p=1;const g=e.trackedRanges.length,m=e.model._setTrackedRange(null,f,p);return e.trackedRanges[g]=m,e.trackedRangesDirection[g]=f.getDirection(),g.toString()}};try{i.getEditOperations(e.model,u)}catch(h){return Nt(h),{operations:[],hadTrackedEditOperation:!1}}return{operations:s,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,s)=>-O.compareRangesUsingEnds(i.range,s.range));const t={};for(let i=1;i<e.length;i++){const s=e[i-1],r=e[i];if(O.getStartPosition(s.range).isBefore(O.getEndPosition(r.range))){let o;s.identifier.major>r.identifier.major?o=s.identifier.major:o=r.identifier.major,t[o.toString()]=!0;for(let a=0;a<e.length;a++)e[a].identifier.major===o&&(e.splice(a,1),a<i&&i--,a--);i>0&&i--}}return t}}class Wbt{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class jk{static _capture(e,t){const i=[];for(const s of t){if(s.startLineNumber!==s.endLineNumber)return null;i.push(new Wbt(e.getLineContent(s.startLineNumber),s.startColumn-1,s.endColumn-1))}return i}constructor(e,t){this._original=jk._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=jk._capture(e,t);if(!i||this._original.length!==i.length)return null;const s=[];for(let r=0,o=this._original.length;r<o;r++)s.push(jk._deduceOutcome(this._original[r],i[r]));return s}static _deduceOutcome(e,t){const i=Math.min(e.startSelection,t.startSelection,s_(e.text,t.text)),s=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,sF(e.text,t.text)),r=e.text.substring(i,e.text.length-s),o=t.text.substring(i,t.text.length-s);return new Edt(r,e.startSelection-i,e.endSelection-i,o,t.startSelection-i,t.endSelection-i)}}const Qhe={getInitialState:()=>sx,tokenizeEncoded:(n,e,t)=>v8(0,t)};async function Vbt(n,e,t){if(!t)return Jhe(e,n.languageIdCodec,Qhe);const i=await Xn.getOrCreate(t);return Jhe(e,n.languageIdCodec,i||Qhe)}function Hbt(n,e,t,i,s,r,o){let a="<div>",l=i,c=0,u=!0;for(let h=0,d=e.getCount();h<d;h++){const f=e.getEndOffset(h);if(f<=i)continue;let p="";for(;l<f&&l<s;l++){const g=n.charCodeAt(l);switch(g){case 9:{let m=r-(l+c)%r;for(c+=m-1;m>0;)o&&u?(p+=" ",u=!1):(p+=" ",u=!0),m--;break}case 60:p+="<",u=!1;break;case 62:p+=">",u=!1;break;case 38:p+="&",u=!1;break;case 0:p+="�",u=!1;break;case 65279:case 8232:case 8233:case 133:p+="�",u=!1;break;case 13:p+="​",u=!1;break;case 32:o&&u?(p+=" ",u=!1):(p+=" ",u=!0);break;default:p+=String.fromCharCode(g),u=!1}}if(a+=`<span style="${e.getInlineStyle(h,t)}">${p}</span>`,f>s||l>=s)break}return a+="</div>",a}function Jhe(n,e,t){let i='<div class="monaco-tokenized-source">';const s=ip(n);let r=t.getInitialState();for(let o=0,a=s.length;o<a;o++){const l=s[o];o>0&&(i+="<br/>");const c=t.tokenizeEncoded(l,!0,r);Kr.convertToEndOffset(c.tokens,l.length);const h=new Kr(c.tokens,l,e).inflate();let d=0;for(let f=0,p=h.getCount();f<p;f++){const g=h.getClassName(f),m=h.getEndOffset(f);i+=`<span class="${g}">${Ik(l.substring(d,m))}</span>`,d=m}r=c.endState}return i+="</div>",i}class $bt{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,s=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,s)}}class zbt{constructor(e,t,i,s,r){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=s,this.minWidth=r,this.prefixSum=0}}var N1;let Ubt=(N1=class{constructor(e,t,i,s){this._instanceId=Zxe(++N1.INSTANCE_COUNT),this._pendingChanges=new $bt,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=s}static findInsertionIndex(e,t,i){let s=0,r=e.length;for(;s<r;){const o=s+r>>>1;t===e[o].afterLineNumber?i<e[o].ordinal?r=o:s=o+1:t<e[o].afterLineNumber?r=o:s=o+1}return s}setLineHeight(e){this._checkPendingChanges(),this._lineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e){this._checkPendingChanges(),this._lineCount=e}changeWhitespace(e){let t=!1;try{e({insertWhitespace:(s,r,o,a)=>{t=!0,s=s|0,r=r|0,o=o|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new zbt(l,s,r,o,a)),l},changeOneWhitespace:(s,r,o)=>{t=!0,r=r|0,o=o|0,this._pendingChanges.change({id:s,newAfterLineNumber:r,newHeight:o})},removeWhitespace:s=>{t=!0,this._pendingChanges.remove({id:s})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const c=this._findWhitespaceIndex(l.id);c!==-1&&this._removeWhitespace(c)}return}const s=new Set;for(const l of i)s.add(l.id);const r=new Map;for(const l of t)r.set(l.id,l);const o=l=>{const c=[];for(const u of l)if(!s.has(u.id)){if(r.has(u.id)){const h=r.get(u.id);u.afterLineNumber=h.newAfterLineNumber,u.height=h.newHeight}c.push(u)}return c},a=o(this._arr).concat(o(e));a.sort((l,c)=>l.afterLineNumber===c.afterLineNumber?l.ordinal-c.ordinal:l.afterLineNumber-c.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=N1.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,s=t.length;i<s;i++)if(t[i].id===e)return i;return-1}_changeOneWhitespace(e,t,i){const s=this._findWhitespaceIndex(e);if(s!==-1&&(this._arr[s].height!==i&&(this._arr[s].height=i,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,s-1)),this._arr[s].afterLineNumber!==t)){const r=this._arr[s];this._removeWhitespace(s),r.afterLineNumber=t,this._insertWhitespace(r)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount-=t-e+1;for(let i=0,s=this._arr.length;i<s;i++){const r=this._arr[i].afterLineNumber;e<=r&&r<=t?this._arr[i].afterLineNumber=e-1:r>t&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,s=this._arr.length;i<s;i++){const r=this._arr[i].afterLineNumber;e<=r&&(this._arr[i].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return this._checkPendingChanges(),this._arr.length===0?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e=e|0;let t=Math.max(0,this._prefixSumValidIndex+1);t===0&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let i=t;i<=e;i++)this._arr[i].prefixSum=this._arr[i-1].prefixSum+this._arr[i].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){this._checkPendingChanges();const e=this._lineHeight*this._lineCount,t=this.getWhitespacesTotalHeight();return e+t+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e=e|0;const t=this._findLastWhitespaceBeforeLineNumber(e);return t===-1?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e=e|0;const t=this._arr;let i=0,s=t.length-1;for(;i<=s;){const o=(s-i|0)/2|0,a=i+o|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else s=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i<this._arr.length?i:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e=e|0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;let i;e>1?i=this._lineHeight*(e-1):i=0;const s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return i+s+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;const i=this._lineHeight*e,s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return i+s+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let e=0;for(let t=0,i=this._arr.length;t<i;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>t}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){if(this._paddingBottom===0)return!1;this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let s=1,r=t;for(;s<r;){const o=(s+r)/2|0,a=this.getVerticalOffsetForLineNumber(o)|0;if(e>=a+i)s=o+1;else{if(e>=a)return o;r=o}}return s>t?t:s}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,s=this.getLineNumberAtOrAfterVerticalOffset(e)|0,r=this.getVerticalOffsetForLineNumber(s)|0;let o=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(s)|0;const l=this.getWhitespacesCount()|0;let c,u;a===-1?(a=l,u=o+1,c=0):(u=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);let h=r,d=h;const f=5e5;let p=0;r>=f&&(p=Math.floor(r/f)*f,p=Math.floor(p/i)*i,d-=p);const g=[],m=e+(t-e)/2;let _=-1;for(let S=s;S<=o;S++){if(_===-1){const x=h,k=h+i;(x<=m&&m<k||x>m)&&(_=S)}for(h+=i,g[S-s]=d,d+=i;u===S;)d+=c,h+=c,a++,a>=l?u=o+1:(u=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);if(h>=t){o=S;break}}_===-1&&(_=o);const b=this.getVerticalOffsetForLineNumber(o)|0;let w=s,C=o;return w<C&&r<e&&w++,w<C&&b+i>t&&C--,{bigNumbersDelta:p,startLineNumber:s,endLineNumber:o,relativeVerticalOffset:g,centeredLineNumber:_,completelyVisibleStartLineNumber:w,completelyVisibleEndLineNumber:C,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let s;return e>0?s=this.getWhitespacesAccumulatedHeight(e-1):s=0,i+s+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const s=this.getVerticalOffsetForWhitespaceIndex(i),r=this.getHeightForWhitespaceIndex(i);if(e>=s+r)return-1;for(;t<i;){const o=Math.floor((t+i)/2),a=this.getVerticalOffsetForWhitespaceIndex(o),l=this.getHeightForWhitespaceIndex(o);if(e>=a+l)t=o+1;else{if(e>=a)return o;i=o}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const s=this.getHeightForWhitespaceIndex(t),r=this.getIdForWhitespaceIndex(t),o=this.getAfterLineNumberForWhitespaceIndex(t);return{id:r,afterLineNumber:o,verticalOffset:i,height:s}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),s=this.getWhitespacesCount()-1;if(i<0)return[];const r=[];for(let o=i;o<=s;o++){const a=this.getVerticalOffsetForWhitespaceIndex(o),l=this.getHeightForWhitespaceIndex(o);if(a>=t)break;r.push({id:this.getIdForWhitespaceIndex(o),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:a,height:l})}return r}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}},N1.INSTANCE_COUNT=0,N1);const jbt=125;class zE{constructor(e,t,i,s){e=e|0,t=t|0,i=i|0,s=s|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),s<0&&(s=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=s,this.scrollHeight=Math.max(i,s)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class qbt extends ue{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new oe),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new zE(0,0,0,0),this._scrollable=this._register(new gL({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,s=t.contentHeight!==e.contentHeight;(i||s)&&this._onDidContentSizeChange.fire(new Fte(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class Kbt extends ue{constructor(e,t,i){super(),this._configuration=e;const s=this._configuration.options,r=s.get(146),o=s.get(84);this._linesLayout=new Ubt(t,s.get(67),o.top,o.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new qbt(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new zE(r.contentWidth,0,r.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(115)?jbt:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){const i=t.get(84);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(146)){const i=t.get(146),s=i.contentWidth,r=i.height,o=this._scrollable.getScrollDimensions(),a=o.contentWidth;this._scrollable.setScrollDimensions(new zE(s,o.contentWidth,r,this._getContentHeight(s,r,a)))}else this._updateHeight();e.hasChanged(115)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const s=this._configuration.options.get(104);return s.horizontal===2||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,i){const s=this._configuration.options;let r=this._linesLayout.getLinesTotalHeight();return s.get(106)?r+=Math.max(0,t-s.get(67)-s.get(84).bottom):s.get(104).ignoreHorizontalScrollbarInContentHeight||(r+=this._getHorizontalScrollbarHeight(e,i)),r}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,s=e.contentWidth;this._scrollable.setScrollDimensions(new zE(t,e.contentWidth,i,this._getContentHeight(t,i,s)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new fhe(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new fhe(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(147),s=e.get(50),r=e.get(146);if(i.isViewportWrapping){const o=e.get(73);return t>r.contentWidth+s.typicalHalfwidthCharacterWidth&&o.enabled&&o.side==="right"?t+r.verticalScrollbarWidth:t}else{const o=e.get(105)*s.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+o+r.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new zE(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),s=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-s,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class Gbt{constructor(e,t,i,s,r){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=s,this._coordinatesConverter=r,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const s=e.range,r=e.options;let o;if(r.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new se(s.startLineNumber,1),0,!1,!0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new se(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);o=new O(a.lineNumber,a.column,l.lineNumber,l.column)}else o=this._coordinatesConverter.convertModelRangeToViewRange(s,1);i=new JEe(o,r),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,i=!1){const s=new O(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(s,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const s=this._linesCollection.getDecorationsInRange(e,this.editorId,kF(this.configuration.options),t,i),r=e.startLineNumber,o=e.endLineNumber,a=[];let l=0;const c=[];for(let u=r;u<=o;u++)c[u-r]=[];for(let u=0,h=s.length;u<h;u++){const d=s[u],f=d.options;if(!Vte(this.model,d))continue;const p=this._getOrCreateViewModelDecoration(d),g=p.range;if(a[l++]=p,f.inlineClassName){const m=new Rk(g,f.inlineClassName,f.inlineClassNameAffectsLetterSpacing?3:0),_=Math.max(r,g.startLineNumber),b=Math.min(o,g.endLineNumber);for(let w=_;w<=b;w++)c[w-r].push(m)}if(f.beforeContentClassName&&r<=g.startLineNumber&&g.startLineNumber<=o){const m=new Rk(new O(g.startLineNumber,g.startColumn,g.startLineNumber,g.startColumn),f.beforeContentClassName,1);c[g.startLineNumber-r].push(m)}if(f.afterContentClassName&&r<=g.endLineNumber&&g.endLineNumber<=o){const m=new Rk(new O(g.endLineNumber,g.endColumn,g.endLineNumber,g.endColumn),f.afterContentClassName,2);c[g.endLineNumber-r].push(m)}}return{decorations:a,inlineDecorations:c}}}function Vte(n,e){return!(e.options.hideInCommentTokens&&Hte(n,e)||e.options.hideInStringTokens&&$te(n,e))}function Hte(n,e){return Eke(n,e.range,t=>t===1)}function $te(n,e){return Eke(n,e.range,t=>t===2)}function Eke(n,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const s=n.tokenization.getLineTokens(i),r=i===e.startLineNumber,o=i===e.endLineNumber;let a=r?s.findTokenIndexAtOffset(e.startColumn-1):0;for(;a<s.getCount()&&!(o&&s.getStartOffset(a)>e.endColumn-1);){if(!t(s.getStandardTokenType(a)))return!1;a++}}return!0}function mW(n,e){return n===null?e?ZF.INSTANCE:QF.INSTANCE:new Xbt(n,e)}class Xbt{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const s=i>0?this._projectionData.breakOffsets[i-1]:0,r=this._projectionData.breakOffsets[i];let o;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((c,u)=>new td(0,0,c+1,this._projectionData.injectionOptions[u],0));o=td.applyInjectedText(e.getLineContent(t),a).substring(s,r)}else o=e.getValueInRange({startLineNumber:t,startColumn:s+1,endLineNumber:t,endColumn:r+1});return i>0&&(o=ede(this._projectionData.wrappedTextIndentLength)+o),o}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const s=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],s),s[0]}getViewLinesData(e,t,i,s,r,o,a){this._assertVisible();const l=this._projectionData,c=l.injectionOffsets,u=l.injectionOptions;let h=null;if(c){h=[];let f=0,p=0;for(let g=0;g<l.getOutputLineCount();g++){const m=new Array;h[g]=m;const _=g>0?l.breakOffsets[g-1]:0,b=l.breakOffsets[g];for(;p<c.length;){const w=u[p].content.length,C=c[p]+f,S=C+w;if(C>b)break;if(_<S){const x=u[p];if(x.inlineClassName){const k=g>0?l.wrappedTextIndentLength:0,L=k+Math.max(C-_,0),E=k+Math.min(S-_,b-_);L!==E&&m.push(new n_t(L,E,x.inlineClassName,x.inlineClassNameAffectsLetterSpacing))}}if(S<=b)f+=w,p++;else break}}}let d;c?d=e.tokenization.getLineTokens(t).withInserted(c.map((f,p)=>({offset:f,text:u[p].content,tokenMetadata:Kr.defaultTokenMetadata}))):d=e.tokenization.getLineTokens(t);for(let f=i;f<i+s;f++){const p=r+f-i;if(!o[p]){a[p]=null;continue}a[p]=this._getViewLineData(d,h?h[f]:null,f)}}_getViewLineData(e,t,i){this._assertVisible();const s=this._projectionData,r=i>0?s.wrappedTextIndentLength:0,o=i>0?s.breakOffsets[i-1]:0,a=s.breakOffsets[i],l=e.sliceAndInflate(o,a,r);let c=l.getLineContent();i>0&&(c=ede(s.wrappedTextIndentLength)+c);const u=this._projectionData.getMinOutputOffset(i)+1,h=c.length+1,d=i+1<this.getViewLineCount(),f=i===0?0:s.breakOffsetsVisibleColumn[i-1];return new yte(c,d,u,h,f,l,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,i=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,i).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();const i=this._projectionData.translateToOutputPosition(t-1);return e+i.outputLineIndex}normalizePosition(e,t,i){const s=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,i).toPosition(s)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error("Not supported")}}const x3=class x3{constructor(){}isVisible(){return!0}setVisible(e){return e?this:QF.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,i){return e.getLineContent(t)}getViewLineLength(e,t,i){return e.getLineLength(t)}getViewLineMinColumn(e,t,i){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,i){return e.getLineMaxColumn(t)}getViewLineData(e,t,i){const s=e.tokenization.getLineTokens(t),r=s.getLineContent();return new yte(r,!1,1,r.length+1,0,s.inflate(),null)}getViewLinesData(e,t,i,s,r,o,a){if(!o[r]){a[r]=null;return}a[r]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new se(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,i){return t}getInjectedTextAt(e,t){return null}};x3.INSTANCE=new x3;let ZF=x3;const L3=class L3{constructor(){}isVisible(){return!1}setVisible(e){return e?ZF.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,i){throw new Error("Not supported")}getViewLineLength(e,t,i){throw new Error("Not supported")}getViewLineMinColumn(e,t,i){throw new Error("Not supported")}getViewLineMaxColumn(e,t,i){throw new Error("Not supported")}getViewLineData(e,t,i){throw new Error("Not supported")}getViewLinesData(e,t,i,s,r,o,a){throw new Error("Not supported")}getModelColumnOfViewPosition(e,t){throw new Error("Not supported")}getViewPositionOfModelPosition(e,t){throw new Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw new Error("Not supported")}normalizePosition(e,t,i){throw new Error("Not supported")}getInjectedTextAt(e,t){throw new Error("Not supported")}};L3.INSTANCE=new L3;let QF=L3;const _W=[""];function ede(n){if(n>=_W.length)for(let e=1;e<=n;e++)_W[e]=Ybt(e);return _W[n]}function Ybt(n){return new Array(n+1).join(" ")}class Zbt{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=sw(e);const i=this.values,s=this.prefixSum,r=t.length;return r===0?!1:(this.values=new Uint32Array(i.length+r),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=sw(e),t=sw(t),this.values[e]===t?!1:(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=sw(e),t=sw(t);const i=this.values,s=this.prefixSum;if(e>=i.length)return!1;const r=i.length-e;return t>=r&&(t=r),t===0?!1:(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=sw(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,s=0,r=0,o=0;for(;t<=i;)if(s=t+(i-t)/2|0,r=this.prefixSum[s],o=r-this.values[s],e<o)i=s-1;else if(e>=r)t=s+1;else break;return new kke(s,e-o)}}class Qbt{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new kke(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=XB(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e<t;e++){const i=this._values[e],s=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=s+i;for(let r=0;r<i;r++)this._indexBySum[s+r]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class kke{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}class Jbt{constructor(e,t,i,s,r,o,a,l,c,u){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=s,this.fontInfo=r,this.tabSize=o,this.wrappingStrategy=a,this.wrappingColumn=l,this.wrappingIndent=c,this.wordBreak=u,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new tyt(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),s=this.model.getInjectedTextDecorations(this._editorId),r=i.length,o=this.createLineBreaksComputer(),a=new Hg(td.fromDecorations(s));for(let g=0;g<r;g++){const m=a.takeWhile(_=>_.lineNumber===g+1);o.addRequest(i[g],m,t?t[g]:null)}const l=o.finalize(),c=[],u=this.hiddenAreasDecorationIds.map(g=>this.model.getDecorationRange(g)).sort(O.compareRangesUsingStarts);let h=1,d=0,f=-1,p=f+1<u.length?d+1:r+2;for(let g=0;g<r;g++){const m=g+1;m===p&&(f++,h=u[f].startLineNumber,d=u[f].endLineNumber,p=f+1<u.length?d+1:r+2);const _=m>=h&&m<=d,b=mW(l[g],!_);c[g]=b.getViewLineCount(),this.modelLineProjections[g]=b}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new Qbt(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(d=>this.model.validateRange(d)),i=eyt(t),s=this.hiddenAreasDecorationIds.map(d=>this.model.getDecorationRange(d)).sort(O.compareRangesUsingStarts);if(i.length===s.length){let d=!1;for(let f=0;f<i.length;f++)if(!i[f].equalsRange(s[f])){d=!0;break}if(!d)return!1}const r=i.map(d=>({range:d,options:At.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,r);const o=i;let a=1,l=0,c=-1,u=c+1<o.length?l+1:this.modelLineProjections.length+2,h=!1;for(let d=0;d<this.modelLineProjections.length;d++){const f=d+1;f===u&&(c++,a=o[c].startLineNumber,l=o[c].endLineNumber,u=c+1<o.length?l+1:this.modelLineProjections.length+2);let p=!1;if(f>=a&&f<=l?this.modelLineProjections[d].isVisible()&&(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!1),p=!0):(h=!0,this.modelLineProjections[d].isVisible()||(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!0),p=!0)),p){const g=this.modelLineProjections[d].getViewLineCount();this.projectedModelLineLineCounts.setValue(d,g)}}return h||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,s,r){const o=this.fontInfo.equals(e),a=this.wrappingStrategy===t,l=this.wrappingColumn===i,c=this.wrappingIndent===s,u=this.wordBreak===r;if(o&&a&&l&&c&&u)return!1;const h=o&&a&&!l&&c&&u;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=s,this.wordBreak=r;let d=null;if(h){d=[];for(let f=0,p=this.modelLineProjections.length;f<p;f++)d[f]=this.modelLineProjections[f].getProjectionData()}return this._constructLines(!1,d),!0}createLineBreaksComputer(){return(this.wrappingStrategy==="advanced"?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,i){if(!e||e<=this._validModelVersionId)return null;const s=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,r=this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections.splice(t-1,i-t+1),this.projectedModelLineLineCounts.removeValues(t-1,i-t+1),new bU(s,r)}onModelLinesInserted(e,t,i,s){if(!e||e<=this._validModelVersionId)return null;const r=t>2&&!this.modelLineProjections[t-2].isVisible(),o=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],c=[];for(let u=0,h=s.length;u<h;u++){const d=mW(s[u],!r);l.push(d);const f=d.getViewLineCount();a+=f,c[u]=f}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(l).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,c),new yU(o,o+a-1)}onModelLineChanged(e,t,i){if(e!==null&&e<=this._validModelVersionId)return[!1,null,null,null];const s=t-1,r=this.modelLineProjections[s].getViewLineCount(),o=this.modelLineProjections[s].isVisible(),a=mW(i,o);this.modelLineProjections[s]=a;const l=this.modelLineProjections[s].getViewLineCount();let c=!1,u=0,h=-1,d=0,f=-1,p=0,g=-1;r>l?(u=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,h=u+l-1,p=h+1,g=p+(r-l)-1,c=!0):r<l?(u=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,h=u+r-1,d=h+1,f=d+(l-r)-1,c=!0):(u=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,h=u+l-1),this.projectedModelLineLineCounts.setValue(s,l);const m=u<=h?new Lke(u,h-u+1):null,_=d<=f?new yU(d,f):null,b=p<=g?new bU(p,g):null;return[c,m,_,b]}acceptVersionId(e){this._validModelVersionId=e,this.modelLineProjections.length===1&&!this.modelLineProjections[0].isVisible()&&this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;const t=this.getViewLineCount();return e>t?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),o=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(s.lineNumber,r.lineNumber,o.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),c=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:c.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,s=t.remainder;return new tde(i+1,s)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new se(e.modelLineNumber,s)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new se(e.modelLineNumber,s)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),s=this.getViewLineInfo(t),r=new Array;let o=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=s.modelLineNumber;l++){const c=this.modelLineProjections[l-1];if(c.isVisible()){const u=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,h=l===s.modelLineNumber?s.modelLineWrappedLineIdx+1:c.getViewLineCount();for(let d=u;d<h;d++)a.push(new tde(l,d))}if(!c.isVisible()&&o){const u=new se(l-1,this.model.getLineMaxColumn(l-1)+1),h=O.fromPositions(o,u);r.push(new ide(h,a)),a=[],o=null}else c.isVisible()&&!o&&(o=new se(l,1))}if(o){const l=O.fromPositions(o,this.getModelEndPositionOfViewLine(s));r.push(new ide(l,a))}return r}getViewLinesBracketGuides(e,t,i,s){const r=i?this.convertViewPositionToModelPosition(i.lineNumber,i.column):null,o=[];for(const a of this.getViewLineInfosGroupedByModelRanges(e,t)){const l=a.modelRange.startLineNumber,c=this.model.guides.getLinesBracketGuides(l,a.modelRange.endLineNumber,r,s);for(const u of a.viewLines){const d=c[u.modelLineNumber-l].map(f=>{if(f.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[u.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesAfterColumn).lineNumber>=u.modelLineWrappedLineIdx||f.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[u.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesBeforeOrAtColumn).lineNumber<u.modelLineWrappedLineIdx)return;if(!f.horizontalLine)return f;let p=-1;if(f.column!==-1){const _=this.modelLineProjections[u.modelLineNumber-1].getViewPositionOfModelPosition(0,f.column);if(_.lineNumber===u.modelLineWrappedLineIdx)p=_.column;else if(_.lineNumber<u.modelLineWrappedLineIdx)p=this.getMinColumnOfViewLine(u);else if(_.lineNumber>u.modelLineWrappedLineIdx)return}const g=this.convertModelPositionToViewPosition(u.modelLineNumber,f.horizontalLine.endColumn),m=this.modelLineProjections[u.modelLineNumber-1].getViewPositionOfModelPosition(0,f.horizontalLine.endColumn);return m.lineNumber===u.modelLineWrappedLineIdx?new sb(f.visibleColumn,p,f.className,new Pk(f.horizontalLine.top,g.column),-1,-1):m.lineNumber<u.modelLineWrappedLineIdx||f.visibleColumn!==-1?void 0:new sb(f.visibleColumn,p,f.className,new Pk(f.horizontalLine.top,this.getMaxColumnOfViewLine(u)),-1,-1)});o.push(d.filter(f=>!!f))}}return o}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),s=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let r=[];const o=[],a=[],l=i.lineNumber-1,c=s.lineNumber-1;let u=null;for(let p=l;p<=c;p++){const g=this.modelLineProjections[p];if(g.isVisible()){const m=g.getViewLineNumberOfModelPosition(0,p===l?i.column:1),_=g.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(p+1)),b=_-m+1;let w=0;b>1&&g.getViewLineMinColumn(this.model,p+1,_)===1&&(w=m===0?1:2),o.push(b),a.push(w),u===null&&(u=new se(p+1,0))}else u!==null&&(r=r.concat(this.model.guides.getLinesIndentGuides(u.lineNumber,p)),u=null)}u!==null&&(r=r.concat(this.model.guides.getLinesIndentGuides(u.lineNumber,s.lineNumber)),u=null);const h=t-e+1,d=new Array(h);let f=0;for(let p=0,g=r.length;p<g;p++){let m=r[p];const _=Math.min(h-f,o[p]),b=a[p];let w;b===2?w=0:b===1?w=1:w=_;for(let C=0;C<_;C++)C===w&&(m=0),d[f++]=m}return d}getViewLineContent(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const s=this.projectedModelLineLineCounts.getIndexOf(e-1);let r=e;const o=s.index,a=s.remainder,l=[];for(let c=o,u=this.model.getLineCount();c<u;c++){const h=this.modelLineProjections[c];if(!h.isVisible())continue;const d=c===o?a:0;let f=h.getViewLineCount()-d,p=!1;if(r+f>t&&(p=!0,f=t-r+1),h.getViewLinesData(this.model,c+1,d,f,r-e,i,l),r+=f,p)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const s=this.projectedModelLineLineCounts.getIndexOf(e-1),r=s.index,o=s.remainder,a=this.modelLineProjections[r],l=a.getViewLineMinColumn(this.model,r+1,o),c=a.getViewLineMaxColumn(this.model,r+1,o);t<l&&(t=l),t>c&&(t=c);const u=a.getModelColumnOfViewPosition(o,t);return this.model.validatePosition(new se(r+1,u)).equals(i)?new se(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),s=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new O(i.lineNumber,i.column,s.lineNumber,s.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),s=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new se(i.modelLineNumber,s))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new O(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2,s=!1,r=!1){const o=this.model.validatePosition(new se(e,t)),a=o.lineNumber,l=o.column;let c=a-1,u=!1;if(r)for(;c<this.modelLineProjections.length&&!this.modelLineProjections[c].isVisible();)c++,u=!0;else for(;c>0&&!this.modelLineProjections[c].isVisible();)c--,u=!0;if(c===0&&!this.modelLineProjections[c].isVisible())return new se(s?0:1,1);const h=1+this.projectedModelLineLineCounts.getPrefixSum(c);let d;return u?r?d=this.modelLineProjections[c].getViewPositionOfModelPosition(h,1,i):d=this.modelLineProjections[c].getViewPositionOfModelPosition(h,this.model.getLineMaxColumn(c+1),i):d=this.modelLineProjections[a-1].getViewPositionOfModelPosition(h,l,i),d}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return O.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new O(i.lineNumber,i.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const r=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(r,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const s=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(s,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,s,r){const o=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),a=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(a.lineNumber-o.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new O(o.lineNumber,1,a.lineNumber,a.column),t,i,s,r);let l=[];const c=o.lineNumber-1,u=a.lineNumber-1;let h=null;for(let g=c;g<=u;g++)if(this.modelLineProjections[g].isVisible())h===null&&(h=new se(g+1,g===c?o.column:1));else if(h!==null){const _=this.model.getLineMaxColumn(g);l=l.concat(this.model.getDecorationsInRange(new O(h.lineNumber,h.column,g,_),t,i,s)),h=null}h!==null&&(l=l.concat(this.model.getDecorationsInRange(new O(h.lineNumber,h.column,a.lineNumber,a.column),t,i,s)),h=null),l.sort((g,m)=>{const _=O.compareRangesUsingStarts(g.range,m.range);return _===0?g.id<m.id?-1:g.id>m.id?1:0:_});const d=[];let f=0,p=null;for(const g of l){const m=g.id;p!==m&&(p=m,d[f++]=g)}return d}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function eyt(n){if(n.length===0)return[];const e=n.slice();e.sort(O.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,s=e[0].endLineNumber;for(let r=1,o=e.length;r<o;r++){const a=e[r];a.startLineNumber>s+1?(t.push(new O(i,1,s,1)),i=a.startLineNumber,s=a.endLineNumber):a.endLineNumber>s&&(s=a.endLineNumber)}return t.push(new O(i,1,s,1)),t}class tde{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class ide{constructor(e,t){this.modelRange=e,this.viewLines=t}}class tyt{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,i,s){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,s)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class iyt{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new nyt(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,s){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,s)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new bU(t,i)}onModelLinesInserted(e,t,i,s){return new yU(t,i)}onModelLineChanged(e,t,i){return[!1,new Lke(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,s=new Array(i);for(let r=0;r<i;r++)s[r]=0;return s}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){const t=this.model.tokenization.getLineTokens(e),i=t.getLineContent();return new yte(i,!1,1,i.length+1,0,t.inflate(),null)}getViewLinesData(e,t,i){const s=this.model.getLineCount();e=Math.min(Math.max(1,e),s),t=Math.min(Math.max(1,t),s);const r=[];for(let o=e;o<=t;o++){const a=o-e;r[a]=i[a]?this.getViewLineData(o):null}return r}getDecorationsInRange(e,t,i,s,r){return this.model.getDecorationsInRange(e,t,i,s,r)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class nyt{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){const t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}const J_=Uu.Right;class syt{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*J_/8))}reset(e){const t=Math.ceil((e+1)*J_/8);this.lanes.length<t?this.lanes=new Uint8Array(t):this.lanes.fill(0),this._requiredLanes=1}get requiredLanes(){return this._requiredLanes}push(e,t,i){i&&(this.persist|=1<<e-1);for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const r=J_*s+(e-1);this.lanes[r>>>3]|=1<<r%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(s))}}getLanesAtLine(e){const t=[];let i=J_*e;for(let s=0;s<J_;s++)(this.persist&1<<s||this.lanes[i>>>3]&1<<i%8)&&t.push(s+1),i++;return t.length?t:[Uu.Center]}countAtLine(e){let t=J_*e,i=0;for(let s=0;s<J_;s++)(this.persist&1<<s||this.lanes[t>>>3]&1<<t%8)&&i++,t++;return i}}let ryt=class extends ue{constructor(e,t,i,s,r,o,a,l,c,u){if(super(),this.languageConfigurationService=a,this._themeService=l,this._attachedView=c,this._transactionalTarget=u,this.hiddenAreasModel=new ayt,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new Ebt,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new nw(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new ji(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=zte.create(this.model),this.glyphLanes=new syt(0),this.model.isTooLargeForTokenization())this._lines=new iyt(this.model);else{const h=this._configuration.options,d=h.get(50),f=h.get(140),p=h.get(147),g=h.get(139),m=h.get(130);this._lines=new Jbt(this._editorId,this.model,s,r,d,this.model.getOptions().tabSize,f,p.wrappingColumn,g,m)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new Fbt(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new Kbt(this._configuration,this.getLineCount(),o)),this._register(this.viewLayout.onDidScroll(h=>{h.scrollTopChanged&&this._handleVisibleLinesChanged(),h.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new wbt(h)),this._eventDispatcher.emitOutgoingEvent(new Wte(h.oldScrollWidth,h.oldScrollLeft,h.oldScrollHeight,h.oldScrollTop,h.scrollWidth,h.scrollLeft,h.scrollHeight,h.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(h=>{this._eventDispatcher.emitOutgoingEvent(h)})),this._decorations=new Gbt(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(h=>{try{const d=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(d,h)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register($F.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new xbt)})),this._register(this._themeService.onDidColorThemeChange(h=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new Cbt(h))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new O(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new bbt(e)),this._eventDispatcher.emitOutgoingEvent(new Bte(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new gbt)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new mbt)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new se(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new sde(t,this._viewportStart.startLineDelta)}return new sde(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),s=this._configuration.options,r=s.get(50),o=s.get(140),a=s.get(147),l=s.get(139),c=s.get(130);this._lines.setWrappingSettings(r,o,a.wrappingColumn,l,c)&&(e.emitViewEvent(new SP),e.emitViewEvent(new xP),e.emitViewEvent(new Q_(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(92)&&(this._decorations.reset(),e.emitViewEvent(new Q_(null))),t.hasChanged(99)&&(this._decorations.reset(),e.emitViewEvent(new Q_(null))),e.emitViewEvent(new _bt(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),nw.shouldRecreate(t)&&(this.cursorConfig=new nw(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let s=!1,r=!1;const o=e instanceof Eb?e.rawContentChangedEvent.changes:e.changes,a=e instanceof Eb?e.rawContentChangedEvent.versionId:null,l=this._lines.createLineBreaksComputer();for(const h of o)switch(h.changeType){case 4:{for(let d=0;d<h.detail.length;d++){const f=h.detail[d];let p=h.injectedTexts[d];p&&(p=p.filter(g=>!g.ownerId||g.ownerId===this._editorId)),l.addRequest(f,p,null)}break}case 2:{let d=null;h.injectedText&&(d=h.injectedText.filter(f=>!f.ownerId||f.ownerId===this._editorId)),l.addRequest(h.detail,d,null);break}}const c=l.finalize(),u=new Hg(c);for(const h of o)switch(h.changeType){case 1:{this._lines.onModelFlushed(),i.emitViewEvent(new SP),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),s=!0;break}case 3:{const d=this._lines.onModelLinesDeleted(a,h.fromLineNumber,h.toLineNumber);d!==null&&(i.emitViewEvent(d),this.viewLayout.onLinesDeleted(d.fromLineNumber,d.toLineNumber)),s=!0;break}case 4:{const d=u.takeCount(h.detail.length),f=this._lines.onModelLinesInserted(a,h.fromLineNumber,h.toLineNumber,d);f!==null&&(i.emitViewEvent(f),this.viewLayout.onLinesInserted(f.fromLineNumber,f.toLineNumber)),s=!0;break}case 2:{const d=u.dequeue(),[f,p,g,m]=this._lines.onModelLineChanged(a,h.lineNumber,d);r=f,p&&i.emitViewEvent(p),g&&(i.emitViewEvent(g),this.viewLayout.onLinesInserted(g.fromLineNumber,g.toLineNumber)),m&&(i.emitViewEvent(m),this.viewLayout.onLinesDeleted(m.fromLineNumber,m.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!s&&r&&(i.emitViewEvent(new xP),i.emitViewEvent(new Q_(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const i=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(i){const s=this.coordinatesConverter.convertModelPositionToViewPosition(i.getStartPosition()),r=this.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber);this.viewLayout.setScrollPosition({scrollTop:r+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();e instanceof Eb&&i.emitOutgoingEvent(new Rbt(e.contentChangedEvent)),this._cursor.onModelContentChanged(i,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,s=e.ranges.length;i<s;i++){const r=e.ranges[i],o=this.coordinatesConverter.convertModelPositionToViewPosition(new se(r.fromLineNumber,1)).lineNumber,a=this.coordinatesConverter.convertModelPositionToViewPosition(new se(r.toLineNumber,this.model.getLineMaxColumn(r.toLineNumber))).lineNumber;t[i]={fromLineNumber:o,toLineNumber:a}}this._eventDispatcher.emitSingleViewEvent(new Sbt(t)),this._eventDispatcher.emitOutgoingEvent(new Obt(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new ybt),this.cursorConfig=new nw(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Pbt(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new nw(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Abt(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new SP),t.emitViewEvent(new xP),t.emitViewEvent(new Q_(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new nw(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Mbt(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new Q_(e)),this._eventDispatcher.emitOutgoingEvent(new Nbt(e))}))}setHiddenAreas(e,t){var o;this.hiddenAreasModel.setHiddenAreas(t,e);const i=this.hiddenAreasModel.getMergedRanges();if(i===this.previousHiddenAreas)return;this.previousHiddenAreas=i;const s=this._captureStableViewport();let r=!1;try{const a=this._eventDispatcher.beginEmitViewEvents();r=this._lines.setHiddenAreas(i),r&&(a.emitViewEvent(new SP),a.emitViewEvent(new xP),a.emitViewEvent(new Q_(null)),this._cursor.onLineMappingChanged(a),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const l=(o=s.viewportStartModelPosition)==null?void 0:o.lineNumber;l&&i.some(u=>u.startLineNumber<=l&&l<=u.endLineNumber)||s.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),r&&this._eventDispatcher.emitOutgoingEvent(new Tbt)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(146),t=this._configuration.options.get(67),i=Math.max(20,Math.round(e.height/t)),s=this.viewLayout.getLinesViewportData(),r=Math.max(1,s.completelyVisibleStartLineNumber-i),o=Math.min(this.getLineCount(),s.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new O(r,this.getLineMinColumn(r),o,this.getLineMaxColumn(o)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const s=[];let r=0,o=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,c=t.endColumn;for(let u=0,h=i.length;u<h;u++){const d=i[u].startLineNumber,f=i[u].endLineNumber;f<o||d>l||(o<d&&(s[r++]=new O(o,a,d-1,this.model.getLineMaxColumn(d-1))),o=f+1,a=1)}return(o<l||o===l&&a<c)&&(s[r++]=new O(o,a,l,c)),s}getCompletelyVisibleViewRange(){const e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,i=e.completelyVisibleEndLineNumber;return new O(t,this.getLineMinColumn(t),i,this.getLineMaxColumn(i))}getCompletelyVisibleViewRangeAtScrollTop(e){const t=this.viewLayout.getLinesViewportDataAtScrollTop(e),i=t.completelyVisibleStartLineNumber,s=t.completelyVisibleEndLineNumber;return new O(i,this.getLineMinColumn(i),s,this.getLineMaxColumn(s))}saveState(){const e=this.viewLayout.saveState(),t=e.scrollTop,i=this.viewLayout.getLineNumberAtVerticalOffset(t),s=this.coordinatesConverter.convertViewPositionToModelPosition(new se(i,this.getLineMinColumn(i))),r=this.viewLayout.getVerticalOffsetForLineNumber(i)-t;return{scrollLeft:e.scrollLeft,firstPosition:s,firstPositionDeltaTop:r}}reduceRestoreState(e){if(typeof e.firstPosition>"u")return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),i=this.coordinatesConverter.convertModelPositionToViewPosition(t),s=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:s}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,s){return this._lines.getViewLinesBracketGuides(e,t,i,s)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){const t=Io(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Fh(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const s=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),s=this.model.mightContainNonBasicASCII(),r=this.getTabSize(),o=this._lines.getViewLineData(e);return o.inlineDecorations&&(t=[...t,...o.inlineDecorations.map(a=>a.toInlineDecoration(e))]),new pc(o.minColumn,o.maxColumn,o.content,o.continuesWithWrappedLine,i,s,o.tokens,t,r,o.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const s=this._lines.getViewLinesData(e,t,i);return new i_t(this.getTabSize(),s)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,kF(this._configuration.options)),i=new oyt;for(const s of t){const r=s.options,o=r.overviewRuler;if(!o)continue;const a=o.position;if(a===0)continue;const l=o.getColor(e.value),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.startLineNumber,s.range.startColumn),u=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.endLineNumber,s.range.endColumn);i.accept(l,r.zIndex,c,u,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i==null||i.invalidateCachedColor();const s=t.options.minimap;s==null||s.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e),s=this.model.modifyPosition(i,t);return this.coordinatesConverter.convertModelPositionToViewPosition(s)}deduceModelPositionRelativeToViewPosition(e,t,i){const s=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const o=this.model.getOffsetAt(s)+t;return this.model.getPositionAt(o)}getPlainTextToCopy(e,t,i){const s=i?`\r +`:this.model.getEOL();e=e.slice(0),e.sort(O.compareRangesUsingStarts);let r=!1,o=!1;for(const l of e)l.isEmpty()?r=!0:o=!0;if(!o){if(!t)return"";const l=e.map(u=>u.startLineNumber);let c="";for(let u=0;u<l.length;u++)u>0&&l[u-1]===l[u]||(c+=this.model.getLineContent(l[u])+s);return c}if(r&&t){const l=[];let c=0;for(const u of e){const h=u.startLineNumber;u.isEmpty()?h!==c&&l.push(this.model.getLineContent(h)):l.push(this.model.getValueInRange(u,i?2:0)),c=h}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===ea||e.length!==1)return null;let s=e[0];if(s.isEmpty()){if(!t)return null;const u=s.startLineNumber;s=new O(u,this.model.getLineMinColumn(u),u,this.model.getLineMaxColumn(u))}const r=this._configuration.options.get(50),o=this._getColorMap(),l=/[:;\\\/<>]/.test(r.fontFamily)||r.fontFamily===ta.fontFamily;let c;return l?c=ta.fontFamily:(c=r.fontFamily,c=c.replace(/"/g,"'"),/[,']/.test(c)||/[+ ]/.test(c)&&(c=`'${c}'`),c=`${c}, ${ta.fontFamily}`),{mode:i,html:`<div style="color: ${o[1]};background-color: ${o[2]};font-family: ${c};font-weight: ${r.fontWeight};font-size: ${r.fontSize}px;line-height: ${r.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(s,o)+"</div>"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,s=e.startColumn,r=e.endLineNumber,o=e.endColumn,a=this.getTabSize();let l="";for(let c=i;c<=r;c++){const u=this.model.tokenization.getLineTokens(c),h=u.getLineContent(),d=c===i?s-1:0,f=c===r?o-1:h.length;h===""?l+="<br>":l+=Hbt(h,u.inflate(),t,d,f,a,qr)}return l}_getColorMap(){const e=Xn.getColorMap(),t=["#000000"];if(e)for(let i=1,s=e.length;i<s;i++)t[i]=Ce.Format.CSS.formatHex(e[i]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,i){return this._withViewEventsCollector(s=>this._cursor.setStates(s,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector(s=>this._cursor.setSelections(s,e,t,i))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new Dbt);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(s=>this._cursor.executeEdits(s,e,t,i))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}compositionType(e,t,i,s,r){this._executeCursorEdit(o=>this._cursor.compositionType(o,e,t,i,s,r))}paste(e,t,i,s){this._executeCursorEdit(r=>this._cursor.paste(r,e,t,i,s))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealAllCursors(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealAll(s,e,i,0,t,0))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealPrimary(s,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new O(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new zk(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new O(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new zk(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,s,r){this._withViewEventsCollector(o=>o.emitViewEvent(new zk(e,!1,i,null,s,t,r)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Lbt),this._eventDispatcher.emitOutgoingEvent(new Ibt))}_withViewEventsCollector(e){return this._transactionalTarget.batchChanges(()=>{try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}})}batchEvents(e){this._withViewEventsCollector(()=>{e()})}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}};class zte{static create(e){const t=e._setTrackedRange(null,new O(1,1,1,1),1);return new zte(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,s,r){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=s,this._startLineDelta=r}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new se(t,e.getLineMinColumn(t))),s=e.model._setTrackedRange(this._modelTrackedRange,new O(i.lineNumber,i.column,i.lineNumber,i.column),1),r=e.viewLayout.getVerticalOffsetForLineNumber(t),o=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=s,this._startLineDelta=o-r}invalidate(){this._isValid=!1}}class oyt{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,s,r){const o=this._asMap[e];if(o){const a=o.data,l=a[a.length-3],c=a[a.length-1];if(l===r&&c+1>=i){s>c&&(a[a.length-1]=s);return}a.push(r,i,s)}else{const a=new UT(e,t,[r,i,s]);this._asMap[e]=a,this.asArray.push(a)}}}class ayt{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&nde(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce((t,i)=>lyt(t,i),[]);return nde(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function lyt(n,e){const t=[];let i=0,s=0;for(;i<n.length&&s<e.length;){const r=n[i],o=e[s];if(r.endLineNumber<o.startLineNumber-1)t.push(n[i++]);else if(o.endLineNumber<r.startLineNumber-1)t.push(e[s++]);else{const a=Math.min(r.startLineNumber,o.startLineNumber),l=Math.max(r.endLineNumber,o.endLineNumber);t.push(new O(a,1,l,1)),i++,s++}}for(;i<n.length;)t.push(n[i++]);for(;s<e.length;)t.push(e[s++]);return t}function nde(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!n[t].equalsRange(e[t]))return!1;return!0}class sde{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;const i=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),s=t.getVerticalOffsetForLineNumber(i.lineNumber);t.setScrollPosition({scrollTop:s+this.startLineDelta},1)}}class VN{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}var ZT;(function(n){n[n.Ignore=0]="Ignore",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error"})(ZT||(ZT={}));(function(n){const e="error",t="warning",i="warn",s="info",r="ignore";function o(l){return l?Vw(e,l)?n.Error:Vw(t,l)||Vw(i,l)?n.Warning:Vw(s,l)?n.Info:n.Ignore:n.Ignore}n.fromValue=o;function a(l){switch(l){case n.Error:return e;case n.Warning:return t;case n.Info:return s;default:return r}}n.toString=a})(ZT||(ZT={}));const fs=ZT;var y8=fs;const ms=ri("notificationService");class cyt{}var uyt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},fp=function(n,e){return function(t,i){e(t,i,n)}},vv,Pb;let QT=(Pb=class extends ue{get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}constructor(e,t,i,s,r,o,a,l,c,u,h,d){super(),this.languageConfigurationService=h,this._deliveryQueue=Olt(),this._contributions=this._register(new M_t),this._onDidDispose=this._register(new oe),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new rde({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new rde({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new ho(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new ho(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new ho(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new ho(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new ho(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new ho(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new oe({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onBeginUpdate=this._register(new oe),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new oe),this.onEndUpdate=this._onEndUpdate.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),r.willCreateCodeEditor();const f={...t};this._domElement=e,this._overflowWidgetsDomNode=f.overflowWidgetsDomNode,delete f.overflowWidgetsDomNode,this._id=++hyt,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,i.contextMenuId??(i.isSimpleWidget?et.SimpleEditorContext:et.EditorContext),f,u)),this._register(this._configuration.onDidChange(m=>{this._onDidChangeConfiguration.fire(m);const _=this._configuration.options;if(m.hasChanged(146)){const b=_.get(146);this._onDidLayoutChange.fire(b)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=r,this._commandService=o,this._themeService=l,this._register(new fyt(this,this._contextKeyService)),this._register(new pyt(this,this._contextKeyService,d)),this._instantiationService=this._register(s.createChild(new VN([bt,this._contextKeyService]))),this._modelData=null,this._focusTracker=new gyt(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let p;Array.isArray(i.contributions)?p=i.contributions:p=wb.getEditorContributions(),this._contributions.initialize(this,p,this._instantiationService);for(const m of wb.getEditorActions()){if(this._actions.has(m.id)){Nt(new Error(`Cannot have two actions with the same id ${m.id}`));continue}const _=new nke(m.id,m.label,m.alias,m.metadata,m.precondition??void 0,b=>this._instantiationService.invokeFunction(w=>Promise.resolve(m.runEditorCommand(w,this,b))),this._contextKeyService);this._actions.set(_.id,_)}const g=()=>!this._configuration.options.get(92)&&this._configuration.options.get(36).enabled;this._register(new Eut(this._domElement,{onDragOver:m=>{if(!g())return;const _=this.getTargetAtClientPoint(m.clientX,m.clientY);_!=null&&_.position&&this.showDropIndicatorAt(_.position)},onDrop:async m=>{if(!g()||(this.removeDropIndicator(),!m.dataTransfer))return;const _=this.getTargetAtClientPoint(m.clientX,m.clientY);_!=null&&_.position&&this._onDropIntoEditor.fire({position:_.position,event:m})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)==null||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i,s){return new Rz(e,t,i,this._domElement,s)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return WN.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?Ai.getWordAtPosition(this._modelData.model,this._configuration.options.get(132),this._configuration.options.get(131),e):null}getValue(e=null){if(!this._modelData)return"";const t=!!(e&&e.preserveBOM);let i=0;return e&&e.lineEnding&&e.lineEnding===` +`?i=1:e&&e.lineEnding&&e.lineEnding===`\r +`&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(e)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){var t;try{this._beginUpdate();const i=e;if(this._modelData===null&&i===null||this._modelData&&this._modelData.model===i)return;const s={oldModelUrl:((t=this._modelData)==null?void 0:t.model.uri)||null,newModelUrl:(i==null?void 0:i.uri)||null};this._onWillChangeModel.fire(s);const r=this.hasTextFocus(),o=this._detachModel();this._attachModel(i),r&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(s),this._postDetachModelCleanup(o),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+"-"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,s){const r=e.model.validatePosition({lineNumber:t,column:i}),o=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(r);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(o.lineNumber,s)}getTopForLineNumber(e,t=!1){return this._modelData?vv._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?vv._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i,s=!1){const r=e.model.validatePosition({lineNumber:t,column:i}),o=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(r);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber,s)}getBottomForLineNumber(e,t=!1){return this._modelData?vv._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;(i=this._modelData)==null||i.viewModel.setHiddenAreas(e.map(s=>O.lift(s)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return Vs.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!se.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,s){if(!this._modelData)return;if(!O.isIRange(e))throw new Error("Invalid arguments");const r=this._modelData.model.validateRange(e),o=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(r);this._modelData.viewModel.revealRange("api",i,o,t,s)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new O(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,s){if(!se.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new O(e.lineNumber,e.column,e.lineNumber,e.column),t,i,s)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const i=nt.isISelection(e),s=O.isIRange(e);if(!i&&!s)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(s){const r={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(r,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new nt(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,s){if(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new O(e,1,t,1),i,!1,s)}revealRange(e,t=0,i=!1,s=!0){this._revealRange(e,i?1:0,s,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,s){if(!O.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(O.lift(e),t,i,s)}setSelections(e,t="api",i=0){if(this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let s=0,r=e.length;s<r;s++)if(!nt.isISelection(e[s]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,i)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if(typeof e!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if(typeof e!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e,t=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;const e=this._contributions.saveViewState(),t=this._modelData.viewModel.saveCursorState(),i=this._modelData.viewModel.saveState();return{cursorState:t,viewState:i,contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const i=t.cursorState;Array.isArray(i)?i.length>0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]),this._contributions.restoreViewState(t.contributionsState||{});const s=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){var e;(e=this._getViewModel())==null||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(t=>t.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){i=i||{};try{switch(this._beginUpdate(),t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const r=i;this._type(e,r.text||"");return}case"replacePreviousChar":{const r=i;this._compositionType(e,r.text||"",r.replaceCharCnt||0,0,0);return}case"compositionType":{const r=i;this._compositionType(e,r.text||"",r.replacePrevCharCnt||0,r.replaceNextCharCnt||0,r.positionDelta||0);return}case"paste":{const r=i;this._paste(e,r.text||"",r.pasteOnNewLine||!1,r.multicursorText||null,r.mode||null,r.clipboardEvent);return}case"cut":this._cut(e);return}const s=this.getAction(t);if(s){Promise.resolve(s.run(i)).then(void 0,Nt);return}if(!this._modelData||this._triggerEditorCommand(e,t,i))return;this._triggerCommand(t,i)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e==="keyboard"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e==="keyboard"&&this._onDidType.fire(t))}_compositionType(e,t,i,s,r){this._modelData&&this._modelData.viewModel.compositionType(t,i,s,r,e)}_paste(e,t,i,s,r,o){if(!this._modelData)return;const a=this._modelData.viewModel,l=a.getSelection().getStartPosition();a.paste(t,i,s,e);const c=a.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({clipboardEvent:o,range:new O(l.lineNumber,l.column,c.lineNumber,c.column),languageId:r})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const s=wb.getEditorCommand(t);return s?(i=i||{},i.source=e,this._instantiationService.invokeFunction(r=>{Promise.resolve(s.runEditorCommand(r,this,i)).then(void 0,Nt)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(92))return!1;let s;return i?Array.isArray(i)?s=()=>i:s=i:s=()=>null,this._modelData.viewModel.executeEdits(e,t,s),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new myt(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,kF(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,kF(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(i=>i.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e,t=!1){this._configuration.observeContainer(e),t||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id:"+e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,s=i.get(146),r=vv._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),o=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+s.glyphMarginWidth+s.lineNumbersWidth+s.decorationsWidth-this.getScrollLeft();return{top:r,left:o,height:i.get(67)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){Tr(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),s=new ryt(this._id,this._configuration,e,Cte.create(ut(this._domElement)),Ote.create(this._configuration.options),a=>bl(ut(this._domElement),a),this.languageConfigurationService,this._themeService,i,{batchChanges:a=>{try{return this._beginUpdate(),a()}finally{this._endUpdate()}}});t.push(e.onWillDispose(()=>this.setModel(null))),t.push(s.onEvent(a=>{switch(a.kind){case 0:this._onDidContentSizeChange.fire(a);break;case 1:this._editorTextFocus.setValue(a.hasFocus);break;case 2:this._onDidScrollChange.fire(a);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(a.reachedMaxCursorCount){const h=this.getOption(80),d=v("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",h);this._notificationService.prompt(y8.Warning,d,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:v("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const l=[];for(let h=0,d=a.selections.length;h<d;h++)l[h]=a.selections[h].getPosition();const c={position:l[0],secondaryPositions:l.slice(1),reason:a.reason,source:a.source};this._onDidChangeCursorPosition.fire(c);const u={selection:a.selections[0],secondarySelections:a.selections.slice(1),modelVersionId:a.modelVersionId,oldSelections:a.oldSelections,oldModelVersionId:a.oldModelVersionId,source:a.source,reason:a.reason};this._onDidChangeCursorSelection.fire(u);break}case 7:this._onDidChangeModelDecorations.fire(a.event);break;case 8:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(a.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(a.event);break;case 10:this._onDidChangeModelContent.fire(a.event);break;case 11:this._onDidChangeModelOptions.fire(a.event);break;case 12:this._onDidChangeModelTokens.fire(a.event);break}}));const[r,o]=this._createView(s);if(o){this._domElement.appendChild(r.domNode.domNode);let a=Object.keys(this._contentWidgets);for(let l=0,c=a.length;l<c;l++){const u=a[l];r.addContentWidget(this._contentWidgets[u])}a=Object.keys(this._overlayWidgets);for(let l=0,c=a.length;l<c;l++){const u=a[l];r.addOverlayWidget(this._overlayWidgets[u])}a=Object.keys(this._glyphMarginWidgets);for(let l=0,c=a.length;l<c;l++){const u=a[l];r.addGlyphMarginWidget(this._glyphMarginWidgets[u])}r.render(!1,!0),r.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new dyt(e,s,r,o,t,i)}_createView(e){let t;this.isSimpleWidget?t={paste:(r,o,a,l)=>{this._paste("keyboard",r,o,a,l)},type:r=>{this._type("keyboard",r)},compositionType:(r,o,a,l)=>{this._compositionType("keyboard",r,o,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(r,o,a,l)=>{const c={text:r,pasteOnNewLine:o,multicursorText:a,mode:l};this._commandService.executeCommand("paste",c)},type:r=>{const o={text:r};this._commandService.executeCommand("type",o)},compositionType:(r,o,a,l)=>{if(a||l){const c={text:r,replacePrevCharCnt:o,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand("compositionType",c)}else{const c={text:r,replaceCharCnt:o};this._commandService.executeCommand("replacePreviousChar",c)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new g8(e.coordinatesConverter);return i.onKeyDown=r=>this._onKeyDown.fire(r),i.onKeyUp=r=>this._onKeyUp.fire(r),i.onContextMenu=r=>this._onContextMenu.fire(r),i.onMouseMove=r=>this._onMouseMove.fire(r),i.onMouseLeave=r=>this._onMouseLeave.fire(r),i.onMouseDown=r=>this._onMouseDown.fire(r),i.onMouseUp=r=>this._onMouseUp.fire(r),i.onMouseDrag=r=>this._onMouseDrag.fire(r),i.onMouseDrop=r=>this._onMouseDrop.fire(r),i.onMouseDropCanceled=r=>this._onMouseDropCanceled.fire(r),i.onMouseWheel=r=>this._onMouseWheel.fire(r),[new sU(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var i;if((i=this._contributionsDisposable)==null||i.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&t.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){const t=[{range:new O(e.lineNumber,e.column,e.lineNumber,e.column),options:vv.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}},vv=Pb,Pb.dropIntoEditorDecorationOptions=At.register({description:"workbench-dnd-target",className:"dnd-target"}),Pb);QT=vv=uyt([fp(3,ct),fp(4,wi),fp(5,an),fp(6,bt),fp(7,Xs),fp(8,ms),fp(9,xl),fp(10,ln),fp(11,Je)],QT);let hyt=0,dyt=class{constructor(e,t,i,s,r,o){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=s,this.listenersToRemove=r,this.attachedView=o}dispose(){Yi(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}};class rde extends ue{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new oe(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new oe(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class ho extends oe{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class fyt extends ue{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=H.editorSimpleInput.bindTo(t),this._editorFocus=H.focus.bindTo(t),this._textInputFocus=H.textInputFocus.bindTo(t),this._editorTextFocus=H.editorTextFocus.bindTo(t),this._tabMovesFocus=H.tabMovesFocus.bindTo(t),this._editorReadonly=H.readOnly.bindTo(t),this._inDiffEditor=H.inDiffEditor.bindTo(t),this._editorColumnSelection=H.columnSelection.bindTo(t),this._hasMultipleSelections=H.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=H.hasNonEmptySelection.bindTo(t),this._canUndo=H.canUndo.bindTo(t),this._canRedo=H.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(YS.onDidChangeTabFocus(i=>this._tabMovesFocus.set(i))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(YS.getTabFocusMode()),this._editorReadonly.set(e.get(92)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class pyt extends ue{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=H.languageId.bindTo(t),this._hasCompletionItemProvider=H.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=H.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=H.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=H.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=H.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=H.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=H.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=H.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=H.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=H.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=H.hasReferenceProvider.bindTo(t),this._hasRenameProvider=H.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=H.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=H.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=H.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=H.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=H.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=H.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=H.isInEmbeddedEditor.bindTo(t);const s=()=>this._update();this._register(e.onDidChangeModel(s)),this._register(e.onDidChangeModelLanguage(s)),this._register(i.completionProvider.onDidChange(s)),this._register(i.codeActionProvider.onDidChange(s)),this._register(i.codeLensProvider.onDidChange(s)),this._register(i.definitionProvider.onDidChange(s)),this._register(i.declarationProvider.onDidChange(s)),this._register(i.implementationProvider.onDidChange(s)),this._register(i.typeDefinitionProvider.onDidChange(s)),this._register(i.hoverProvider.onDidChange(s)),this._register(i.documentHighlightProvider.onDidChange(s)),this._register(i.documentSymbolProvider.onDidChange(s)),this._register(i.referenceProvider.onDidChange(s)),this._register(i.renameProvider.onDidChange(s)),this._register(i.documentFormattingEditProvider.onDidChange(s)),this._register(i.documentRangeFormattingEditProvider.onDidChange(s)),this._register(i.signatureHelpProvider.onDidChange(s)),this._register(i.inlayHintsProvider.onDidChange(s)),s()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===kt.walkThroughSnippet||e.uri.scheme===kt.vscodeChatCodeBlock)})}}class gyt extends ue{constructor(e,t){super(),this._onChange=this._register(new oe),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(Zh(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(Zh(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class myt{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},i)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const s=e.getDecorationRange(i);s&&t.push(s)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(i=>{t=i.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}const _yt=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),vyt=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function vW(n){return _yt+encodeURIComponent(n.toString())+vyt}const byt=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),yyt=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');function wyt(n){return byt+encodeURIComponent(n.toString())+yyt}au((n,e)=>{const t=n.getColor(s8);t&&e.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${vW(t)}") repeat-x bottom left; }`);const i=n.getColor($g);i&&e.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${vW(i)}") repeat-x bottom left; }`);const s=n.getColor(Kf);s&&e.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${vW(s)}") repeat-x bottom left; }`);const r=n.getColor(Jft);r&&e.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${wyt(r)}") no-repeat bottom left; }`);const o=n.getColor(Gmt);o&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${o.rgba.a}; }`)});const gc=(n,e)=>n===e;function JF(n=gc){return(e,t)=>In(e,t,n)}function Cyt(){return(n,e)=>n.equals(e)}function wU(n,e,t){if(t!==void 0){const i=n;return i==null||e===void 0||e===null?e===i:t(i,e)}else{const i=n;return(s,r)=>s==null||r===void 0||r===null?r===s:i(s,r)}}function e4(n,e){if(n===e)return!0;if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!e4(n[t],e[t]))return!1;return!0}if(n&&typeof n=="object"&&e&&typeof e=="object"&&Object.getPrototypeOf(n)===Object.prototype&&Object.getPrototypeOf(e)===Object.prototype){const t=n,i=e,s=Object.keys(t),r=Object.keys(i),o=new Set(r);if(s.length!==r.length)return!1;for(const a of s)if(!o.has(a)||!e4(t[a],i[a]))return!1;return!0}return!1}class lo{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return Syt(e,this)}}const ode=new Map,CU=new WeakMap;function Syt(n,e){const t=CU.get(n);if(t)return t;const i=xyt(n,e);if(i){let s=ode.get(i)??0;s++,ode.set(i,s);const r=s===1?i:`${i}#${s}`;return CU.set(n,r),r}}function xyt(n,e){const t=CU.get(n);if(t)return t;const i=e.owner?Eyt(e.owner)+".":"";let s;const r=e.debugNameSource;if(r!==void 0)if(typeof r=="function"){if(s=r(),s!==void 0)return i+s}else return i+r;const o=e.referenceFn;if(o!==void 0&&(s=Ute(o),s!==void 0))return i+s;if(e.owner!==void 0){const a=Lyt(e.owner,n);if(a!==void 0)return i+a}}function Lyt(n,e){for(const t in n)if(n[t]===e)return t}const ade=new Map,lde=new WeakMap;function Eyt(n){const e=lde.get(n);if(e)return e;const t=kyt(n);let i=ade.get(t)??0;i++,ade.set(t,i);const s=i===1?t:`${t}#${i}`;return lde.set(n,s),s}function kyt(n){const e=n.constructor;return e?e.name:"Object"}function Ute(n){const e=n.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e),s=i?i[1]:void 0;return s==null?void 0:s.trim()}let Iyt;function Ike(){return Iyt}let Tke;function Tyt(n){Tke=n}let Dke;function Dyt(n){Dke=n}let SU;function Nyt(n){SU=n}class Nke{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=t===void 0?void 0:e,s=t===void 0?e:t;return SU({owner:i,debugName:()=>{const r=Ute(s);if(r!==void 0)return r;const a=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(s.toString());if(a)return`${this.debugName}.${a[2]}`;if(!i)return`${this.debugName} (mapped)`},debugReferenceFn:s},r=>s(this.read(r),r))}flatten(){return SU({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},e=>this.read(e).read(e))}recomputeInitiallyAndOnChange(e,t){return e.add(Tke(this,t)),this}keepObserved(e){return e.add(Dke(this)),this}}class mL extends Nke{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),t===0&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function Un(n,e){const t=new _L(n,e);try{n(t)}finally{t.finish()}}let LP;function UE(n){if(LP)n(LP);else{const e=new _L(n,void 0);LP=e;try{n(e)}finally{e.finish(),LP=void 0}}}async function Ake(n,e){const t=new _L(n,e);try{await n(t)}finally{t.finish()}}function Yy(n,e,t){n?e(n):Un(e,t)}class _L{constructor(e,t){this._fn=e,this._getDebugName=t,this.updatingObservers=[]}getDebugName(){return this._getDebugName?this._getDebugName():Ute(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){const e=this.updatingObservers;for(let t=0;t<e.length;t++){const{observer:i,observable:s}=e[t];i.endUpdate(s)}this.updatingObservers=null}}function Gt(n,e){let t;return typeof n=="string"?t=new lo(void 0,n,void 0):t=new lo(n,void 0,void 0),new jte(t,e,gc)}class jte extends mL{get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}constructor(e,t,i){super(),this._debugNameData=e,this._equalityComparator=i,this._value=t}get(){return this._value}set(e,t,i){var r;if(i===void 0&&this._equalityComparator(this._value,e))return;let s;t||(t=s=new _L(()=>{},()=>`Setting ${this.debugName}`));try{const o=this._value;this._setValue(e),(r=Ike())==null||r.handleObservableChanged(this,{oldValue:o,newValue:e,change:i,didChange:!0,hadValue:!0});for(const a of this.observers)t.updateObserver(a,this),a.handleChange(this,i)}finally{s&&s.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function JT(n,e){let t;return typeof n=="string"?t=new lo(void 0,n,void 0):t=new lo(n,void 0,void 0),new Ayt(t,e,gc)}class Ayt extends jte{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;(e=this._value)==null||e.dispose()}}function ot(n,e){return e!==void 0?new Zy(new lo(n,void 0,e),e,void 0,void 0,void 0,gc):new Zy(new lo(void 0,void 0,n),n,void 0,void 0,void 0,gc)}function HN(n,e,t){return new Pyt(new lo(n,void 0,e),e,void 0,void 0,void 0,gc,t)}function Gl(n,e){return new Zy(new lo(n.owner,n.debugName,n.debugReferenceFn),e,void 0,void 0,n.onLastObserverRemoved,n.equalsFn??gc)}Nyt(Gl);function Pke(n,e){return new Zy(new lo(n.owner,n.debugName,void 0),e,n.createEmptyChangeSummary,n.handleChange,void 0,n.equalityComparer??gc)}function R_(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const s=new be;return new Zy(new lo(i,void 0,t),r=>(s.clear(),t(r,s)),void 0,void 0,()=>s.dispose(),gc)}function vo(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);let s;return new Zy(new lo(i,void 0,t),r=>{s?s.clear():s=new be;const o=t(r);return o&&s.add(o),o},void 0,void 0,()=>{s&&(s.dispose(),s=void 0)},gc)}class Zy extends mL{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,i,s,r=void 0,o){var a;super(),this._debugNameData=e,this._computeFn=t,this.createChangeSummary=i,this._handleChange=s,this._handleLastObserverRemoved=r,this._equalityComparator=o,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(a=this.createChangeSummary)==null?void 0:a.call(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(e=this._handleLastObserverRemoved)==null||e.call(this)}get(){var e;if(this.observers.size===0){const t=this._computeFn(this,(e=this.createChangeSummary)==null?void 0:e.call(this));return this.onLastObserverRemoved(),t}else{do{if(this.state===1){for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var o;if(this.state===3)return;const e=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=e;const t=this.state!==0,i=this.value;this.state=3;const s=this.changeSummary;this.changeSummary=(o=this.createChangeSummary)==null?void 0:o.call(this);try{this.value=this._computeFn(this,s)}finally{for(const a of this.dependenciesToBeRemoved)a.removeObserver(this);this.dependenciesToBeRemoved.clear()}if(t&&!this._equalityComparator(i,this.value))for(const a of this.observers)a.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){this.updateCount++;const t=this.updateCount===1;if(this.state===3&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,this.updateCount===0){const t=[...this.observers];for(const i of t)i.endUpdate(this)}Ky(()=>this.updateCount>=0)}handlePossibleChange(e){if(this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=this._handleChange?this._handleChange({changedObservable:e,change:t,didChange:r=>r===e},this.changeSummary):!0,s=this.state===3;if(i&&(this.state===1||s)&&(this.state=2,s))for(const r of this.observers)r.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}class Pyt extends Zy{constructor(e,t,i,s,r=void 0,o,a){super(e,t,i,s,r,o),this.set=a}}function Lt(n){return new w8(new lo(void 0,void 0,n),n,void 0,void 0)}function $N(n,e){return new w8(new lo(n.owner,n.debugName,n.debugReferenceFn??e),e,void 0,void 0)}function zN(n,e){return new w8(new lo(n.owner,n.debugName,n.debugReferenceFn??e),e,n.createEmptyChangeSummary,n.handleChange)}function Ryt(n,e){const t=new be,i=zN({owner:n.owner,debugName:n.debugName,debugReferenceFn:n.debugReferenceFn??e,createEmptyChangeSummary:n.createEmptyChangeSummary,handleChange:n.handleChange},(s,r)=>{t.clear(),e(s,r,t)});return lt(()=>{i.dispose(),t.dispose()})}function Na(n){const e=new be,t=$N({owner:void 0,debugName:void 0,debugReferenceFn:n},i=>{e.clear(),n(i,e)});return lt(()=>{t.dispose(),e.dispose()})}class w8{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,i,s){var r;this._debugNameData=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=s,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(r=this.createChangeSummary)==null?void 0:r.call(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var i,s;if(this.state===3)return;const e=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=e,this.state=3;const t=this.disposed;try{if(!t){(i=Ike())==null||i.handleAutorunTriggered(this);const r=this.changeSummary;this.changeSummary=(s=this.createChangeSummary)==null?void 0:s.call(this),this._runFn(this,r)}}finally{for(const r of this.dependenciesToBeRemoved)r.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,Ky(()=>this.updateCount>=0)}handlePossibleChange(e){this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:s=>s===e},this.changeSummary))&&(this.state=2)}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}(function(n){n.Observer=w8})(Lt||(Lt={}));function Uc(n){return new Myt(n)}class Myt extends Nke{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return`Const: ${this.value}`}}function Vi(...n){let e,t,i;return n.length===3?[e,t,i]=n:[t,i]=n,new c1(new lo(e,void 0,i),t,i,()=>c1.globalTransaction,gc)}function Oyt(n,e,t){return new c1(new lo(n.owner,n.debugName,n.debugReferenceFn??t),e,t,()=>c1.globalTransaction,n.equalsFn??gc)}class c1 extends mL{constructor(e,t,i,s,r){super(),this._debugNameData=e,this.event=t,this._getValue=i,this._getTransaction=s,this._equalityComparator=r,this.hasValue=!1,this.handleEvent=o=>{const a=this._getValue(o),l=this.value;(!this.hasValue||!this._equalityComparator(l,a))&&(this.value=a,this.hasValue&&Yy(this._getTransaction(),u=>{for(const h of this.observers)u.updateObserver(h,this),h.handleChange(this,void 0)},()=>{const u=this.getDebugName();return"Event fired"+(u?`: ${u}`:"")}),this.hasValue=!0)}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}(function(n){n.Observer=c1;function e(t,i){let s=!1;c1.globalTransaction===void 0&&(c1.globalTransaction=t,s=!0);try{i()}finally{s&&(c1.globalTransaction=void 0)}}n.batchEventsGlobally=e})(Vi||(Vi={}));function Vr(n,e){return new Fyt(n,e)}class Fyt extends mL{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{Un(i=>{for(const s of this.observers)i.updateObserver(s,this),s.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function vL(n){return typeof n=="string"?new cde(n):new cde(void 0,n)}class cde extends mL{get debugName(){return new lo(this._owner,this._debugName,void 0).getDebugName(this)??"Observable Signal"}toString(){return this.debugName}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(!e){Un(i=>{this.trigger(i,t)},()=>`Trigger signal ${this.debugName}`);return}for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t)}get(){}}function Byt(n){const e=new Rke(!1,void 0);return n.addObserver(e),lt(()=>{n.removeObserver(e)})}Dyt(Byt);function bL(n,e){const t=new Rke(!0,e);return n.addObserver(t),e?e(n.get()):n.reportChanges(),lt(()=>{n.removeObserver(t)})}Tyt(bL);class Rke{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges())}handlePossibleChange(e){}handleChange(e,t){}}function UN(n,e){let t;return Gl({owner:n,debugReferenceFn:e},s=>(t=e(s,t),t))}function Wyt(n,e,t,i){let s=new ude(t,i);return Gl({debugReferenceFn:t,owner:n,onLastObserverRemoved:()=>{s.dispose(),s=new ude(t)}},o=>(s.setItems(e.read(o)),s.getItems()))}class ude{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],i=new Set(this._cache.keys());for(const s of e){const r=this._keySelector?this._keySelector(s):s;let o=this._cache.get(r);if(o)i.delete(r);else{const a=new be;o={out:this._map(s,a),store:a},this._cache.set(r,o)}t.push(o.out)}for(const s of i)this._cache.get(s).store.dispose(),this._cache.delete(s);this._items=t}getItems(){return this._items}}function Vyt(n,e){return UN(n,(t,i)=>i??e(t))}class C8{static fromFn(e){return new C8(e())}constructor(e){this._value=Gt(this,void 0),this.promiseResult=this._value,this.promise=e.then(t=>(Un(i=>{this._value.set(new hde(t,void 0),i)}),t),t=>{throw Un(i=>{this._value.set(new hde(void 0,t),i)}),t})}}class hde{constructor(e,t){this.data=e,this.error=t}}function Mke(n,e,t,i){return e||(e=s=>s!=null),new Promise((s,r)=>{let o=!0,a=!1;const l=n.map(u=>({isFinished:e(u),error:t?t(u):!1,state:u})),c=Lt(u=>{const{isFinished:h,error:d,state:f}=l.read(u);(h||d)&&(o?a=!0:c.dispose(),d?r(d===!0?f:d):s(f))});if(i){const u=i.onCancellationRequested(()=>{c.dispose(),u.dispose(),r(new Hu)});if(i.isCancellationRequested){c.dispose(),u.dispose(),r(new Hu);return}}o=!1,a&&c.dispose()})}class Hyt extends mL{get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}constructor(e,t,i){super(),this._debugNameData=e,this._equalityComparator=i,this._isUpToDate=!0,this._deltas=[],this._updateCounter=0,this._value=t}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(const e of this.observers)for(const t of this._deltas)e.handleChange(this,t);this._deltas.length=0}else for(const e of this.observers)e.handleChange(this,void 0)}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(const e of this.observers)e.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();const e=[...this.observers];for(const t of e)t.endUpdate(this)}}addObserver(e){const t=!this.observers.has(e)&&this._updateCounter>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this._updateCounter>0;super.removeObserver(e),t&&e.endUpdate(this)}set(e,t,i){if(i===void 0&&this._equalityComparator(this._value,e))return;let s;t||(t=s=new _L(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(e),i!==void 0&&this._deltas.push(i),t.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(r,o)=>{},handlePossibleChange:r=>{}},this),this._updateCounter>1)for(const r of this.observers)r.handlePossibleChange(this)}finally{s&&s.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function xU(n,e){return n.lazy?new Hyt(new lo(n.owner,n.debugName,void 0),e,n.equalsFn??gc):new jte(new lo(n.owner,n.debugName,void 0),e,n.equalsFn??gc)}class id{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new id(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const s=e.getVisibleRanges();if(s.length>0){t=s[0].getStartPosition();const r=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-r}return new id(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,s,r){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=s,this._cursorPosition=r}restore(e){if(!(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i,1)}}const eD={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:rs.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"},$yt=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});let S8=$yt;const zyt=new Yh(()=>S8("mouse",!1)),Uyt=new Yh(()=>S8("element",!1));function jyt(n){S8=n}function ua(n){return n==="element"?Uyt.value:zyt.value}function rx(){return S8("element",!0)}function qyt(n,e={}){const t=qte(e);return t.textContent=n,t}function Kyt(n,e={}){const t=qte(e);return Oke(t,Xyt(n,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function qte(n){const e=n.inline?"span":"div",t=document.createElement(e);return n.className&&(t.className=n.className),t}class Gyt{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function Oke(n,e,t,i){let s;if(e.type===2)s=document.createTextNode(e.content||"");else if(e.type===3)s=document.createElement("b");else if(e.type===4)s=document.createElement("i");else if(e.type===7&&i)s=document.createElement("code");else if(e.type===5&&t){const r=document.createElement("a");t.disposables.add(os(r,"click",o=>{t.callback(String(e.index),o)})),s=r}else e.type===8?s=document.createElement("br"):e.type===1&&(s=n);s&&n!==s&&n.appendChild(s),s&&Array.isArray(e.children)&&e.children.forEach(r=>{Oke(s,r,t,i)})}function Xyt(n,e){const t={type:1,children:[]};let i=0,s=t;const r=[],o=new Gyt(n);for(;!o.eos();){let a=o.next();const l=a==="\\"&&LU(o.peek(),e)!==0;if(l&&(a=o.next()),!l&&Yyt(a,e)&&a===o.peek()){o.advance(),s.type===2&&(s=r.pop());const c=LU(a,e);if(s.type===c||s.type===5&&c===6)s=r.pop();else{const u={type:c,children:[]};c===5&&(u.index=i,i++),s.children.push(u),r.push(s),s=u}}else if(a===` +`)s.type===2&&(s=r.pop()),s.children.push({type:8});else if(s.type!==2){const c={type:2,content:a};s.children.push(c),r.push(s),s=c}else s.content+=a}return s.type===2&&(s=r.pop()),t}function Yyt(n,e){return LU(n,e)!==0}function LU(n,e){switch(n){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return e?7:0;default:return 0}}const Zyt=new RegExp(`(\\\\)?\\$\\((${ft.iconNameExpression}(?:${ft.iconModifierExpression})?)\\)`,"g");function L1(n){const e=new Array;let t,i=0,s=0;for(;(t=Zyt.exec(n))!==null;){s=t.index||0,i<s&&e.push(n.substring(i,s)),i=(t.index||0)+t[0].length;const[,r,o]=t;e.push(r?`$(${o})`:Qy({id:o}))}return i<n.length&&e.push(n.substring(i)),e}function Qy(n){const e=Pe("span");return e.classList.add(...ft.asClassNameArray(n)),e}function Qyt(n){const e=Jyt(n);if(e&&e.length>0)return new Uint32Array(e)}let Bl=0;const qm=new Uint32Array(10);function Jyt(n){if(Bl=0,Sd(n,bW,4352),Bl>0||(Sd(n,yW,4449),Bl>0)||(Sd(n,wW,4520),Bl>0)||(Sd(n,ev,12593),Bl))return qm.subarray(0,Bl);if(n>=44032&&n<=55203){const e=n-44032,t=e%588,i=Math.floor(e/588),s=Math.floor(t/28),r=t%28-1;if(i<bW.length?Sd(i,bW,0):4352+i-12593<ev.length&&Sd(4352+i,ev,12593),s<yW.length?Sd(s,yW,0):4449+s-12593<ev.length&&Sd(4449+s-12593,ev,12593),r>=0&&(r<wW.length?Sd(r,wW,0):4520+r-12593<ev.length&&Sd(4520+r-12593,ev,12593)),Bl>0)return qm.subarray(0,Bl)}}function Sd(n,e,t){n>=t&&n<t+e.length&&e0t(e[n-t])}function e0t(n){n!==0&&(qm[Bl++]=n&255,n>>8&&(qm[Bl++]=n>>8&255),n>>16&&(qm[Bl++]=n>>16&255))}const bW=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),yW=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),wW=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),ev=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function Kte(...n){return function(e,t){for(let i=0,s=n.length;i<s;i++){const r=n[i](e,t);if(r)return r}return null}}Fke.bind(void 0,!1);const tD=Fke.bind(void 0,!0);function Fke(n,e,t){if(!t||t.length<e.length)return null;let i;return n?i=yee(t,e):i=t.indexOf(e)===0,i?e.length>0?[{start:0,end:e.length}]:[]:null}function Bke(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t===-1?null:[{start:t,end:t+n.length}]}function Wke(n,e){return EU(n.toLowerCase(),e.toLowerCase(),0,0)}function EU(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]===e[i]){let s=null;return(s=EU(n,e,t+1,i+1))?Yte({start:i,end:i+1},s):null}return EU(n,e,t,i+1)}function Gte(n){return 97<=n&&n<=122}function x8(n){return 65<=n&&n<=90}function Xte(n){return 48<=n&&n<=57}function Vke(n){return n===32||n===9||n===10||n===13}const Hke=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(n=>Hke.add(n.charCodeAt(0)));function t4(n){return Vke(n)||Hke.has(n)}function dde(n,e){return n===e||t4(n)&&t4(e)}const CW=new Map;function fde(n){if(CW.has(n))return CW.get(n);let e;const t=Qyt(n);return t&&(e=t),CW.set(n,e),e}function $ke(n){return Gte(n)||x8(n)||Xte(n)}function Yte(n,e){return e.length===0?e=[n]:n.end===e[0].start?e[0].start=n.start:e.unshift(n),e}function zke(n,e){for(let t=e;t<n.length;t++){const i=n.charCodeAt(t);if(x8(i)||Xte(i)||t>0&&!$ke(n.charCodeAt(t-1)))return t}return n.length}function kU(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]!==e[i].toLowerCase())return null;{let s=null,r=i+1;for(s=kU(n,e,t+1,i+1);!s&&(r=zke(e,r))<e.length;)s=kU(n,e,t+1,r),r++;return s===null?null:Yte({start:i,end:i+1},s)}}function t0t(n){let e=0,t=0,i=0,s=0,r=0;for(let u=0;u<n.length;u++)r=n.charCodeAt(u),x8(r)&&e++,Gte(r)&&t++,$ke(r)&&i++,Xte(r)&&s++;const o=e/n.length,a=t/n.length,l=i/n.length,c=s/n.length;return{upperPercent:o,lowerPercent:a,alphaPercent:l,numericPercent:c}}function i0t(n){const{upperPercent:e,lowerPercent:t}=n;return t===0&&e>.6}function n0t(n){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:s}=n;return t>.2&&e<.8&&i>.6&&s<.2}function s0t(n){let e=0,t=0,i=0,s=0;for(let r=0;r<n.length;r++)i=n.charCodeAt(r),x8(i)&&e++,Gte(i)&&t++,Vke(i)&&s++;return(e===0||t===0)&&s===0?n.length<=30:e<=5}function Uke(n,e){if(!e||(e=e.trim(),e.length===0)||!s0t(n))return null;e.length>60&&(e=e.substring(0,60));const t=t0t(e);if(!n0t(t)){if(!i0t(t))return null;e=e.toLowerCase()}let i=null,s=0;for(n=n.toLowerCase();s<e.length&&(i=kU(n,e,0,s))===null;)s=zke(e,s+1);return i}function r0t(n,e,t=!1){if(!e||e.length===0)return null;let i=null,s=0;for(n=n.toLowerCase(),e=e.toLowerCase();s<e.length&&(i=IU(n,e,0,s,t),i===null);)s=jke(e,s+1);return i}function IU(n,e,t,i,s){let r=0;if(t===n.length)return[];if(i===e.length)return null;if(!dde(n.charCodeAt(t),e.charCodeAt(i))){const l=fde(n.charCodeAt(t));if(!l)return null;for(let c=0;c<l.length;c++)if(!dde(l[c],e.charCodeAt(i+c)))return null;r+=l.length-1}let o=null,a=i+r+1;if(o=IU(n,e,t+1,a,s),!s)for(;!o&&(a=jke(e,a))<e.length;)o=IU(n,e,t+1,a,s),a++;if(!o)return null;if(n.charCodeAt(t)!==e.charCodeAt(i)){const l=fde(n.charCodeAt(t));if(!l)return o;for(let c=0;c<l.length;c++)if(l[c]!==e.charCodeAt(i+c))return o}return Yte({start:i,end:i+r+1},o)}function jke(n,e){for(let t=e;t<n.length;t++)if(t4(n.charCodeAt(t))||t>0&&t4(n.charCodeAt(t-1)))return t;return n.length}const o0t=Kte(tD,Uke,Bke),a0t=Kte(tD,Uke,Wke),pde=new np(1e4);function gde(n,e,t=!1){if(typeof n!="string"||typeof e!="string")return null;let i=pde.get(n);i||(i=new RegExp(gct(n),"i"),pde.set(n,i));const s=i.exec(e);return s?[{start:s.index,end:s.index+s[0].length}]:t?a0t(n,e):o0t(n,e)}function l0t(n,e){const t=Jy(n,n.toLowerCase(),0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return t?jN(t):null}function c0t(n,e,t,i,s,r){const o=Math.min(13,n.length);for(;t<o;t++){const a=Jy(n,e,t,i,s,r,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(a)return a}return[0,r]}function jN(n){if(typeof n>"u")return[];const e=[],t=n[1];for(let i=n.length-1;i>1;i--){const s=n[i]+t,r=e[e.length-1];r&&r.end===s?r.end=s+1:e.push({start:s,end:s+1})}return e}const u1=128;function Zte(){const n=[],e=[];for(let t=0;t<=u1;t++)e[t]=0;for(let t=0;t<=u1;t++)n.push(e.slice(0));return n}function qke(n){const e=[];for(let t=0;t<=n;t++)e[t]=0;return e}const Kke=qke(2*u1),TU=qke(2*u1),pp=Zte(),tv=Zte(),EP=Zte();function kP(n,e){if(e<0||e>=n.length)return!1;const t=n.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!xee(t)}}function mde(n,e){if(e<0||e>=n.length)return!1;switch(n.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function _M(n,e,t){return e[n]!==t[n]}function u0t(n,e,t,i,s,r,o=!1){for(;e<t&&s<r;)n[e]===i[s]&&(o&&(Kke[e]=s),e+=1),s+=1;return e===t}var $h;(function(n){n.Default=[-100,0];function e(t){return!t||t.length===2&&t[0]===-100&&t[1]===0}n.isDefault=e})($h||($h={}));const Qne=class Qne{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}};Qne.default={boostFullMatch:!0,firstMatchCanBeWeak:!1};let iD=Qne;function Jy(n,e,t,i,s,r,o=iD.default){const a=n.length>u1?u1:n.length,l=i.length>u1?u1:i.length;if(t>=a||r>=l||a-t>l-r||!u0t(e,t,a,s,r,l,!0))return;h0t(a,l,t,r,e,s);let c=1,u=1,h=t,d=r;const f=[!1];for(c=1,h=t;h<a;c++,h++){const b=Kke[h],w=TU[h],C=h+1<a?TU[h+1]:l;for(u=b-r+1,d=b;d<C;u++,d++){let S=Number.MIN_SAFE_INTEGER,x=!1;d<=w&&(S=d0t(n,e,h,t,i,s,d,l,r,pp[c-1][u-1]===0,f));let k=0;S!==Number.MAX_SAFE_INTEGER&&(x=!0,k=S+tv[c-1][u-1]);const L=d>b,E=L?tv[c][u-1]+(pp[c][u-1]>0?-5:0):0,A=d>b+1&&pp[c][u-1]>0,I=A?tv[c][u-2]+(pp[c][u-2]>0?-5:0):0;if(A&&(!L||I>=E)&&(!x||I>=k))tv[c][u]=I,EP[c][u]=3,pp[c][u]=0;else if(L&&(!x||E>=k))tv[c][u]=E,EP[c][u]=2,pp[c][u]=0;else if(x)tv[c][u]=k,EP[c][u]=1,pp[c][u]=pp[c-1][u-1]+1;else throw new Error("not possible")}}if(!f[0]&&!o.firstMatchCanBeWeak)return;c--,u--;const p=[tv[c][u],r];let g=0,m=0;for(;c>=1;){let b=u;do{const w=EP[c][b];if(w===3)b=b-2;else if(w===2)b=b-1;else break}while(b>=1);g>1&&e[t+c-1]===s[r+u-1]&&!_M(b+r-1,i,s)&&g+1>pp[c][b]&&(b=u),b===u?g++:g=1,m||(m=b),c--,u=b-1,p.push(u)}l-r===a&&o.boostFullMatch&&(p[0]+=2);const _=m-a;return p[0]-=_,p}function h0t(n,e,t,i,s,r){let o=n-1,a=e-1;for(;o>=t&&a>=i;)s[o]===r[a]&&(TU[o]=a,o--),a--}function d0t(n,e,t,i,s,r,o,a,l,c,u){if(e[t]!==r[o])return Number.MIN_SAFE_INTEGER;let h=1,d=!1;return o===t-i?h=n[t]===s[o]?7:5:_M(o,s,r)&&(o===0||!_M(o-1,s,r))?(h=n[t]===s[o]?7:5,d=!0):kP(r,o)&&(o===0||!kP(r,o-1))?h=5:(kP(r,o-1)||mde(r,o-1))&&(h=5,d=!0),h>1&&t===i&&(u[0]=!0),d||(d=_M(o,s,r)||kP(r,o-1)||mde(r,o-1)),t===i?o>l&&(h-=d?3:5):c?h+=d?2:0:h+=d?0:1,o+1===a&&(h-=d?3:5),h}function f0t(n,e,t,i,s,r,o){return p0t(n,e,t,i,s,r,!0,o)}function p0t(n,e,t,i,s,r,o,a){let l=Jy(n,e,t,i,s,r,a);if(l&&!o)return l;if(n.length>=3){const c=Math.min(7,n.length-1);for(let u=t+1;u<c;u++){const h=g0t(n,u);if(h){const d=Jy(h,h.toLowerCase(),t,i,s,r,a);d&&(d[0]-=3,(!l||d[0]>l[0])&&(l=d))}}}return l}function g0t(n,e){if(e+1>=n.length)return;const t=n[e],i=n[e+1];if(t!==i)return n.slice(0,e)+i+t+n.slice(e+2)}const m0t="$(",Qte=new RegExp(`\\$\\(${ft.iconNameExpression}(?:${ft.iconModifierExpression})?\\)`,"g"),_0t=new RegExp(`(\\\\)?${Qte.source}`,"g");function v0t(n){return n.replace(_0t,(e,t)=>t?e:`\\${e}`)}const b0t=new RegExp(`\\\\${Qte.source}`,"g");function y0t(n){return n.replace(b0t,e=>`\\${e}`)}const w0t=new RegExp(`(\\s)?(\\\\)?${Qte.source}(\\s)?`,"g");function Jte(n){return n.indexOf(m0t)===-1?n:n.replace(w0t,(e,t,i,s)=>i?e:t||s||"")}function C0t(n){return n?n.replace(/\$\((.*?)\)/g,(e,t)=>` ${t} `).trim():""}const SW=new RegExp(`\\$\\(${ft.iconNameCharacter}+\\)`,"g");function jE(n){SW.lastIndex=0;let e="";const t=[];let i=0;for(;;){const s=SW.lastIndex,r=SW.exec(n),o=n.substring(s,r==null?void 0:r.index);if(o.length>0){e+=o;for(let a=0;a<o.length;a++)t.push(i)}if(!r)break;i+=r[0].length}return{text:e,iconOffsets:t}}function xW(n,e,t=!1){const{text:i,iconOffsets:s}=e;if(!s||s.length===0)return gde(n,i,t);const r=EN(i," "),o=i.length-r.length,a=gde(n,r,t);if(a)for(const l of a){const c=s[l.start+o]+o;l.start+=c,l.end+=c}return a}class to{constructor(e="",t=!1){if(this.value=e,typeof this.value!="string")throw Gc("value");typeof t=="boolean"?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=t.isTrusted??void 0,this.supportThemeIcons=t.supportThemeIcons??!1,this.supportHtml=t.supportHtml??!1)}appendText(e,t=0){return this.value+=x0t(this.supportThemeIcons?v0t(e):e).replace(/([ \t]+)/g,(i,s)=>" ".repeat(s.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?`\\ +`:` + +`),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+=` +${L0t(t,e)} +`,this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=` "${this._escape(this._escape(i,'"'),")")}"`),this.value+=")",this}_escape(e,t){const i=new RegExp(dc(t),"g");return e.replace(i,(s,r)=>e.charAt(r-1)!=="\\"?`\\${s}`:s)}}function ox(n){return zh(n)?!n.value:Array.isArray(n)?n.every(ox):!0}function zh(n){return n instanceof to?!0:n&&typeof n=="object"?typeof n.value=="string"&&(typeof n.isTrusted=="boolean"||typeof n.isTrusted=="object"||n.isTrusted===void 0)&&(typeof n.supportThemeIcons=="boolean"||n.supportThemeIcons===void 0):!1}function S0t(n,e){return n===e?!0:!n||!e?!1:n.value===e.value&&n.isTrusted===e.isTrusted&&n.supportThemeIcons===e.supportThemeIcons&&n.supportHtml===e.supportHtml&&(n.baseUri===e.baseUri||!!n.baseUri&&!!e.baseUri&&Ite(mt.from(n.baseUri),mt.from(e.baseUri)))}function x0t(n){return n.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function L0t(n,e){var s;const t=((s=n.match(/^`+/gm))==null?void 0:s.reduce((r,o)=>r.length>o.length?r:o).length)??0,i=t>=3?t+1:3;return[`${"`".repeat(i)}${e}`,n,`${"`".repeat(i)}`].join(` +`)}function IP(n){return n.replace(/"/g,""")}function LW(n){return n&&n.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function E0t(n){const e=[],t=n.split("|").map(s=>s.trim());n=t[0];const i=t[1];if(i){const s=/height=(\d+)/.exec(i),r=/width=(\d+)/.exec(i),o=s?s[1]:"",a=r?r[1]:"",l=isFinite(parseInt(a)),c=isFinite(parseInt(o));l&&e.push(`width="${a}"`),c&&e.push(`height="${o}"`)}return{href:n,dimensions:e}}class eie{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const DU=new eie("id#");let ha={};(function(){function n(e,t){t(ha)}n.amd=!0,function(e,t){typeof n=="function"&&n.amd?n(["exports"],t):typeof exports=="object"&&typeof module<"u"?t(exports):(e=typeof globalThis<"u"?globalThis:e||self,t(e.marked={}))}(this,function(e){function t(he,te){for(var ee=0;ee<te.length;ee++){var R=te[ee];R.enumerable=R.enumerable||!1,R.configurable=!0,"value"in R&&(R.writable=!0),Object.defineProperty(he,R.key,R)}}function i(he,te,ee){return ee&&t(he,ee),Object.defineProperty(he,"prototype",{writable:!1}),he}function s(he,te){if(he){if(typeof he=="string")return r(he,te);var ee=Object.prototype.toString.call(he).slice(8,-1);if(ee==="Object"&&he.constructor&&(ee=he.constructor.name),ee==="Map"||ee==="Set")return Array.from(he);if(ee==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ee))return r(he,te)}}function r(he,te){(te==null||te>he.length)&&(te=he.length);for(var ee=0,R=new Array(te);ee<te;ee++)R[ee]=he[ee];return R}function o(he,te){var ee=typeof Symbol<"u"&&he[Symbol.iterator]||he["@@iterator"];if(ee)return(ee=ee.call(he)).next.bind(ee);if(Array.isArray(he)||(ee=s(he))||te){ee&&(he=ee);var R=0;return function(){return R>=he.length?{done:!0}:{done:!1,value:he[R++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=a();function l(he){e.defaults=he}var c=/[&<>"']/,u=/[&<>"']/g,h=/[<>"']|&(?!#?\w+;)/,d=/[<>"']|&(?!#?\w+;)/g,f={"&":"&","<":"<",">":">",'"':""","'":"'"},p=function(te){return f[te]};function g(he,te){if(te){if(c.test(he))return he.replace(u,p)}else if(h.test(he))return he.replace(d,p);return he}var m=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function _(he){return he.replace(m,function(te,ee){return ee=ee.toLowerCase(),ee==="colon"?":":ee.charAt(0)==="#"?ee.charAt(1)==="x"?String.fromCharCode(parseInt(ee.substring(2),16)):String.fromCharCode(+ee.substring(1)):""})}var b=/(^|[^\[])\^/g;function w(he,te){he=typeof he=="string"?he:he.source,te=te||"";var ee={replace:function(F,q){return q=q.source||q,q=q.replace(b,"$1"),he=he.replace(F,q),ee},getRegex:function(){return new RegExp(he,te)}};return ee}var C=/[^\w:]/g,S=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function x(he,te,ee){if(he){var R;try{R=decodeURIComponent(_(ee)).replace(C,"").toLowerCase()}catch{return null}if(R.indexOf("javascript:")===0||R.indexOf("vbscript:")===0||R.indexOf("data:")===0)return null}te&&!S.test(ee)&&(ee=I(te,ee));try{ee=encodeURI(ee).replace(/%25/g,"%")}catch{return null}return ee}var k={},L=/^[^:]+:\/*[^/]*$/,E=/^([^:]+:)[\s\S]*$/,A=/^([^:]+:\/*[^/]*)[\s\S]*$/;function I(he,te){k[" "+he]||(L.test(he)?k[" "+he]=he+"/":k[" "+he]=V(he,"/",!0)),he=k[" "+he];var ee=he.indexOf(":")===-1;return te.substring(0,2)==="//"?ee?te:he.replace(E,"$1")+te:te.charAt(0)==="/"?ee?te:he.replace(A,"$1")+te:he+te}var T={exec:function(){}};function N(he){for(var te=1,ee,R;te<arguments.length;te++){ee=arguments[te];for(R in ee)Object.prototype.hasOwnProperty.call(ee,R)&&(he[R]=ee[R])}return he}function M(he,te){var ee=he.replace(/\|/g,function(q,G,pe){for(var _e=!1,De=G;--De>=0&&pe[De]==="\\";)_e=!_e;return _e?"|":" |"}),R=ee.split(/ \|/),F=0;if(R[0].trim()||R.shift(),R.length>0&&!R[R.length-1].trim()&&R.pop(),R.length>te)R.splice(te);else for(;R.length<te;)R.push("");for(;F<R.length;F++)R[F]=R[F].trim().replace(/\\\|/g,"|");return R}function V(he,te,ee){var R=he.length;if(R===0)return"";for(var F=0;F<R;){var q=he.charAt(R-F-1);if(q===te&&!ee)F++;else if(q!==te&&ee)F++;else break}return he.slice(0,R-F)}function W(he,te){if(he.indexOf(te[1])===-1)return-1;for(var ee=he.length,R=0,F=0;F<ee;F++)if(he[F]==="\\")F++;else if(he[F]===te[0])R++;else if(he[F]===te[1]&&(R--,R<0))return F;return-1}function B(he){he&&he.sanitize&&!he.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function $(he,te){if(te<1)return"";for(var ee="";te>1;)te&1&&(ee+=he),te>>=1,he+=he;return ee+he}function Y(he,te,ee,R){var F=te.href,q=te.title?g(te.title):null,G=he[1].replace(/\\([\[\]])/g,"$1");if(he[0].charAt(0)!=="!"){R.state.inLink=!0;var pe={type:"link",raw:ee,href:F,title:q,text:G,tokens:R.inlineTokens(G)};return R.state.inLink=!1,pe}return{type:"image",raw:ee,href:F,title:q,text:g(G)}}function le(he,te){var ee=he.match(/^(\s+)(?:```)/);if(ee===null)return te;var R=ee[1];return te.split(` +`).map(function(F){var q=F.match(/^\s+/);if(q===null)return F;var G=q[0];return G.length>=R.length?F.slice(R.length):F}).join(` +`)}var re=function(){function he(ee){this.options=ee||e.defaults}var te=he.prototype;return te.space=function(R){var F=this.rules.block.newline.exec(R);if(F&&F[0].length>0)return{type:"space",raw:F[0]}},te.code=function(R){var F=this.rules.block.code.exec(R);if(F){var q=F[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:F[0],codeBlockStyle:"indented",text:this.options.pedantic?q:V(q,` +`)}}},te.fences=function(R){var F=this.rules.block.fences.exec(R);if(F){var q=F[0],G=le(q,F[3]||"");return{type:"code",raw:q,lang:F[2]?F[2].trim():F[2],text:G}}},te.heading=function(R){var F=this.rules.block.heading.exec(R);if(F){var q=F[2].trim();if(/#$/.test(q)){var G=V(q,"#");(this.options.pedantic||!G||/ $/.test(G))&&(q=G.trim())}return{type:"heading",raw:F[0],depth:F[1].length,text:q,tokens:this.lexer.inline(q)}}},te.hr=function(R){var F=this.rules.block.hr.exec(R);if(F)return{type:"hr",raw:F[0]}},te.blockquote=function(R){var F=this.rules.block.blockquote.exec(R);if(F){var q=F[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:F[0],tokens:this.lexer.blockTokens(q,[]),text:q}}},te.list=function(R){var F=this.rules.block.list.exec(R);if(F){var q,G,pe,_e,De,ze,Ze,tt,Tt,It,rt,Rt,si=F[1].trim(),Jn=si.length>1,oi={type:"list",raw:"",ordered:Jn,start:Jn?+si.slice(0,-1):"",loose:!1,items:[]};si=Jn?"\\d{1,9}\\"+si.slice(-1):"\\"+si,this.options.pedantic&&(si=Jn?si:"[*+-]");for(var Zi=new RegExp("^( {0,3}"+si+")((?:[ ][^\\n]*)?(?:\\n|$))");R&&(Rt=!1,!(!(F=Zi.exec(R))||this.rules.block.hr.test(R)));){if(q=F[0],R=R.substring(q.length),tt=F[2].split(` +`,1)[0],Tt=R.split(` +`,1)[0],this.options.pedantic?(_e=2,rt=tt.trimLeft()):(_e=F[2].search(/[^ ]/),_e=_e>4?1:_e,rt=tt.slice(_e),_e+=F[1].length),ze=!1,!tt&&/^ *$/.test(Tt)&&(q+=Tt+` +`,R=R.substring(Tt.length+1),Rt=!0),!Rt)for(var Ar=new RegExp("^ {0,"+Math.min(3,_e-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),_s=new RegExp("^ {0,"+Math.min(3,_e-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),mr=new RegExp("^ {0,"+Math.min(3,_e-1)+"}(?:```|~~~)"),Mo=new RegExp("^ {0,"+Math.min(3,_e-1)+"}#");R&&(It=R.split(` +`,1)[0],tt=It,this.options.pedantic&&(tt=tt.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(mr.test(tt)||Mo.test(tt)||Ar.test(tt)||_s.test(R)));){if(tt.search(/[^ ]/)>=_e||!tt.trim())rt+=` +`+tt.slice(_e);else if(!ze)rt+=` +`+tt;else break;!ze&&!tt.trim()&&(ze=!0),q+=It+` +`,R=R.substring(It.length+1)}oi.loose||(Ze?oi.loose=!0:/\n *\n *$/.test(q)&&(Ze=!0)),this.options.gfm&&(G=/^\[[ xX]\] /.exec(rt),G&&(pe=G[0]!=="[ ] ",rt=rt.replace(/^\[[ xX]\] +/,""))),oi.items.push({type:"list_item",raw:q,task:!!G,checked:pe,loose:!1,text:rt}),oi.raw+=q}oi.items[oi.items.length-1].raw=q.trimRight(),oi.items[oi.items.length-1].text=rt.trimRight(),oi.raw=oi.raw.trimRight();var Ha=oi.items.length;for(De=0;De<Ha;De++){this.lexer.state.top=!1,oi.items[De].tokens=this.lexer.blockTokens(oi.items[De].text,[]);var Oo=oi.items[De].tokens.filter(function(Ys){return Ys.type==="space"}),pa=Oo.every(function(Ys){for(var Il=Ys.raw.split(""),Xr=0,Tl=o(Il),$a;!($a=Tl()).done;){var bd=$a.value;if(bd===` +`&&(Xr+=1),Xr>1)return!0}return!1});!oi.loose&&Oo.length&&pa&&(oi.loose=!0,oi.items[De].loose=!0)}return oi}},te.html=function(R){var F=this.rules.block.html.exec(R);if(F){var q={type:"html",raw:F[0],pre:!this.options.sanitizer&&(F[1]==="pre"||F[1]==="script"||F[1]==="style"),text:F[0]};if(this.options.sanitize){var G=this.options.sanitizer?this.options.sanitizer(F[0]):g(F[0]);q.type="paragraph",q.text=G,q.tokens=this.lexer.inline(G)}return q}},te.def=function(R){var F=this.rules.block.def.exec(R);if(F){F[3]&&(F[3]=F[3].substring(1,F[3].length-1));var q=F[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:q,raw:F[0],href:F[2],title:F[3]}}},te.table=function(R){var F=this.rules.block.table.exec(R);if(F){var q={type:"table",header:M(F[1]).map(function(Ze){return{text:Ze}}),align:F[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:F[3]&&F[3].trim()?F[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(q.header.length===q.align.length){q.raw=F[0];var G=q.align.length,pe,_e,De,ze;for(pe=0;pe<G;pe++)/^ *-+: *$/.test(q.align[pe])?q.align[pe]="right":/^ *:-+: *$/.test(q.align[pe])?q.align[pe]="center":/^ *:-+ *$/.test(q.align[pe])?q.align[pe]="left":q.align[pe]=null;for(G=q.rows.length,pe=0;pe<G;pe++)q.rows[pe]=M(q.rows[pe],q.header.length).map(function(Ze){return{text:Ze}});for(G=q.header.length,_e=0;_e<G;_e++)q.header[_e].tokens=this.lexer.inline(q.header[_e].text);for(G=q.rows.length,_e=0;_e<G;_e++)for(ze=q.rows[_e],De=0;De<ze.length;De++)ze[De].tokens=this.lexer.inline(ze[De].text);return q}}},te.lheading=function(R){var F=this.rules.block.lheading.exec(R);if(F)return{type:"heading",raw:F[0],depth:F[2].charAt(0)==="="?1:2,text:F[1],tokens:this.lexer.inline(F[1])}},te.paragraph=function(R){var F=this.rules.block.paragraph.exec(R);if(F){var q=F[1].charAt(F[1].length-1)===` +`?F[1].slice(0,-1):F[1];return{type:"paragraph",raw:F[0],text:q,tokens:this.lexer.inline(q)}}},te.text=function(R){var F=this.rules.block.text.exec(R);if(F)return{type:"text",raw:F[0],text:F[0],tokens:this.lexer.inline(F[0])}},te.escape=function(R){var F=this.rules.inline.escape.exec(R);if(F)return{type:"escape",raw:F[0],text:g(F[1])}},te.tag=function(R){var F=this.rules.inline.tag.exec(R);if(F)return!this.lexer.state.inLink&&/^<a /i.test(F[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(F[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(F[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(F[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:F[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(F[0]):g(F[0]):F[0]}},te.link=function(R){var F=this.rules.inline.link.exec(R);if(F){var q=F[2].trim();if(!this.options.pedantic&&/^</.test(q)){if(!/>$/.test(q))return;var G=V(q.slice(0,-1),"\\");if((q.length-G.length)%2===0)return}else{var pe=W(F[2],"()");if(pe>-1){var _e=F[0].indexOf("!")===0?5:4,De=_e+F[1].length+pe;F[2]=F[2].substring(0,pe),F[0]=F[0].substring(0,De).trim(),F[3]=""}}var ze=F[2],Ze="";if(this.options.pedantic){var tt=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(ze);tt&&(ze=tt[1],Ze=tt[3])}else Ze=F[3]?F[3].slice(1,-1):"";return ze=ze.trim(),/^</.test(ze)&&(this.options.pedantic&&!/>$/.test(q)?ze=ze.slice(1):ze=ze.slice(1,-1)),Y(F,{href:ze&&ze.replace(this.rules.inline._escapes,"$1"),title:Ze&&Ze.replace(this.rules.inline._escapes,"$1")},F[0],this.lexer)}},te.reflink=function(R,F){var q;if((q=this.rules.inline.reflink.exec(R))||(q=this.rules.inline.nolink.exec(R))){var G=(q[2]||q[1]).replace(/\s+/g," ");if(G=F[G.toLowerCase()],!G||!G.href){var pe=q[0].charAt(0);return{type:"text",raw:pe,text:pe}}return Y(q,G,q[0],this.lexer)}},te.emStrong=function(R,F,q){q===void 0&&(q="");var G=this.rules.inline.emStrong.lDelim.exec(R);if(G&&!(G[3]&&q.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var pe=G[1]||G[2]||"";if(!pe||pe&&(q===""||this.rules.inline.punctuation.exec(q))){var _e=G[0].length-1,De,ze,Ze=_e,tt=0,Tt=G[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(Tt.lastIndex=0,F=F.slice(-1*R.length+_e);(G=Tt.exec(F))!=null;)if(De=G[1]||G[2]||G[3]||G[4]||G[5]||G[6],!!De){if(ze=De.length,G[3]||G[4]){Ze+=ze;continue}else if((G[5]||G[6])&&_e%3&&!((_e+ze)%3)){tt+=ze;continue}if(Ze-=ze,!(Ze>0)){if(ze=Math.min(ze,ze+Ze+tt),Math.min(_e,ze)%2){var It=R.slice(1,_e+G.index+ze);return{type:"em",raw:R.slice(0,_e+G.index+ze+1),text:It,tokens:this.lexer.inlineTokens(It)}}var rt=R.slice(2,_e+G.index+ze-1);return{type:"strong",raw:R.slice(0,_e+G.index+ze+1),text:rt,tokens:this.lexer.inlineTokens(rt)}}}}}},te.codespan=function(R){var F=this.rules.inline.code.exec(R);if(F){var q=F[2].replace(/\n/g," "),G=/[^ ]/.test(q),pe=/^ /.test(q)&&/ $/.test(q);return G&&pe&&(q=q.substring(1,q.length-1)),q=g(q,!0),{type:"codespan",raw:F[0],text:q}}},te.br=function(R){var F=this.rules.inline.br.exec(R);if(F)return{type:"br",raw:F[0]}},te.del=function(R){var F=this.rules.inline.del.exec(R);if(F)return{type:"del",raw:F[0],text:F[2],tokens:this.lexer.inlineTokens(F[2])}},te.autolink=function(R,F){var q=this.rules.inline.autolink.exec(R);if(q){var G,pe;return q[2]==="@"?(G=g(this.options.mangle?F(q[1]):q[1]),pe="mailto:"+G):(G=g(q[1]),pe=G),{type:"link",raw:q[0],text:G,href:pe,tokens:[{type:"text",raw:G,text:G}]}}},te.url=function(R,F){var q;if(q=this.rules.inline.url.exec(R)){var G,pe;if(q[2]==="@")G=g(this.options.mangle?F(q[0]):q[0]),pe="mailto:"+G;else{var _e;do _e=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])[0];while(_e!==q[0]);G=g(q[0]),q[1]==="www."?pe="http://"+G:pe=G}return{type:"link",raw:q[0],text:G,href:pe,tokens:[{type:"text",raw:G,text:G}]}}},te.inlineText=function(R,F){var q=this.rules.inline.text.exec(R);if(q){var G;return this.lexer.state.inRawBlock?G=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(q[0]):g(q[0]):q[0]:G=g(this.options.smartypants?F(q[0]):q[0]),{type:"text",raw:q[0],text:G}}},he}(),z={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:T,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};z._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,z._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,z.def=w(z.def).replace("label",z._label).replace("title",z._title).getRegex(),z.bullet=/(?:[*+-]|\d{1,9}[.)])/,z.listItemStart=w(/^( *)(bull) */).replace("bull",z.bullet).getRegex(),z.list=w(z.list).replace(/bull/g,z.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+z.def.source+")").getRegex(),z._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",z._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,z.html=w(z.html,"i").replace("comment",z._comment).replace("tag",z._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),z.paragraph=w(z._paragraph).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",z._tag).getRegex(),z.blockquote=w(z.blockquote).replace("paragraph",z.paragraph).getRegex(),z.normal=N({},z),z.gfm=N({},z.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),z.gfm.table=w(z.gfm.table).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",z._tag).getRegex(),z.gfm.paragraph=w(z._paragraph).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",z.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",z._tag).getRegex(),z.pedantic=N({},z.normal,{html:w(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",z._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:T,paragraph:w(z.normal._paragraph).replace("hr",z.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",z.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var K={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:T,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:T,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};K._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",K.punctuation=w(K.punctuation).replace(/punctuation/g,K._punctuation).getRegex(),K.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,K.escapedEmSt=/\\\*|\\_/g,K._comment=w(z._comment).replace("(?:-->|$)","-->").getRegex(),K.emStrong.lDelim=w(K.emStrong.lDelim).replace(/punct/g,K._punctuation).getRegex(),K.emStrong.rDelimAst=w(K.emStrong.rDelimAst,"g").replace(/punct/g,K._punctuation).getRegex(),K.emStrong.rDelimUnd=w(K.emStrong.rDelimUnd,"g").replace(/punct/g,K._punctuation).getRegex(),K._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,K._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,K._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,K.autolink=w(K.autolink).replace("scheme",K._scheme).replace("email",K._email).getRegex(),K._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,K.tag=w(K.tag).replace("comment",K._comment).replace("attribute",K._attribute).getRegex(),K._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,K._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,K._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,K.link=w(K.link).replace("label",K._label).replace("href",K._href).replace("title",K._title).getRegex(),K.reflink=w(K.reflink).replace("label",K._label).replace("ref",z._label).getRegex(),K.nolink=w(K.nolink).replace("ref",z._label).getRegex(),K.reflinkSearch=w(K.reflinkSearch,"g").replace("reflink",K.reflink).replace("nolink",K.nolink).getRegex(),K.normal=N({},K),K.pedantic=N({},K.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:w(/^!?\[(label)\]\((.*?)\)/).replace("label",K._label).getRegex(),reflink:w(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",K._label).getRegex()}),K.gfm=N({},K.normal,{escape:w(K.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),K.gfm.url=w(K.gfm.url,"i").replace("email",K.gfm._extended_email).getRegex(),K.breaks=N({},K.gfm,{br:w(K.br).replace("{2,}","*").getRegex(),text:w(K.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function Z(he){return he.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function j(he){var te="",ee,R,F=he.length;for(ee=0;ee<F;ee++)R=he.charCodeAt(ee),Math.random()>.5&&(R="x"+R.toString(16)),te+="&#"+R+";";return te}var ce=function(){function he(ee){this.tokens=[],this.tokens.links=Object.create(null),this.options=ee||e.defaults,this.options.tokenizer=this.options.tokenizer||new re,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var R={block:z.normal,inline:K.normal};this.options.pedantic?(R.block=z.pedantic,R.inline=K.pedantic):this.options.gfm&&(R.block=z.gfm,this.options.breaks?R.inline=K.breaks:R.inline=K.gfm),this.tokenizer.rules=R}he.lex=function(R,F){var q=new he(F);return q.lex(R)},he.lexInline=function(R,F){var q=new he(F);return q.inlineTokens(R)};var te=he.prototype;return te.lex=function(R){R=R.replace(/\r\n|\r/g,` +`),this.blockTokens(R,this.tokens);for(var F;F=this.inlineQueue.shift();)this.inlineTokens(F.src,F.tokens);return this.tokens},te.blockTokens=function(R,F){var q=this;F===void 0&&(F=[]),this.options.pedantic?R=R.replace(/\t/g," ").replace(/^ +$/gm,""):R=R.replace(/^( *)(\t+)/gm,function(Ze,tt,Tt){return tt+" ".repeat(Tt.length)});for(var G,pe,_e,De;R;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(Ze){return(G=Ze.call({lexer:q},R,F))?(R=R.substring(G.raw.length),F.push(G),!0):!1}))){if(G=this.tokenizer.space(R)){R=R.substring(G.raw.length),G.raw.length===1&&F.length>0?F[F.length-1].raw+=` +`:F.push(G);continue}if(G=this.tokenizer.code(R)){R=R.substring(G.raw.length),pe=F[F.length-1],pe&&(pe.type==="paragraph"||pe.type==="text")?(pe.raw+=` +`+G.raw,pe.text+=` +`+G.text,this.inlineQueue[this.inlineQueue.length-1].src=pe.text):F.push(G);continue}if(G=this.tokenizer.fences(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.heading(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.hr(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.blockquote(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.list(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.html(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.def(R)){R=R.substring(G.raw.length),pe=F[F.length-1],pe&&(pe.type==="paragraph"||pe.type==="text")?(pe.raw+=` +`+G.raw,pe.text+=` +`+G.raw,this.inlineQueue[this.inlineQueue.length-1].src=pe.text):this.tokens.links[G.tag]||(this.tokens.links[G.tag]={href:G.href,title:G.title});continue}if(G=this.tokenizer.table(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.lheading(R)){R=R.substring(G.raw.length),F.push(G);continue}if(_e=R,this.options.extensions&&this.options.extensions.startBlock&&function(){var Ze=1/0,tt=R.slice(1),Tt=void 0;q.options.extensions.startBlock.forEach(function(It){Tt=It.call({lexer:this},tt),typeof Tt=="number"&&Tt>=0&&(Ze=Math.min(Ze,Tt))}),Ze<1/0&&Ze>=0&&(_e=R.substring(0,Ze+1))}(),this.state.top&&(G=this.tokenizer.paragraph(_e))){pe=F[F.length-1],De&&pe.type==="paragraph"?(pe.raw+=` +`+G.raw,pe.text+=` +`+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=pe.text):F.push(G),De=_e.length!==R.length,R=R.substring(G.raw.length);continue}if(G=this.tokenizer.text(R)){R=R.substring(G.raw.length),pe=F[F.length-1],pe&&pe.type==="text"?(pe.raw+=` +`+G.raw,pe.text+=` +`+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=pe.text):F.push(G);continue}if(R){var ze="Infinite loop on byte: "+R.charCodeAt(0);if(this.options.silent){console.error(ze);break}else throw new Error(ze)}}return this.state.top=!0,F},te.inline=function(R,F){return F===void 0&&(F=[]),this.inlineQueue.push({src:R,tokens:F}),F},te.inlineTokens=function(R,F){var q=this;F===void 0&&(F=[]);var G,pe,_e,De=R,ze,Ze,tt;if(this.tokens.links){var Tt=Object.keys(this.tokens.links);if(Tt.length>0)for(;(ze=this.tokenizer.rules.inline.reflinkSearch.exec(De))!=null;)Tt.includes(ze[0].slice(ze[0].lastIndexOf("[")+1,-1))&&(De=De.slice(0,ze.index)+"["+$("a",ze[0].length-2)+"]"+De.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(ze=this.tokenizer.rules.inline.blockSkip.exec(De))!=null;)De=De.slice(0,ze.index)+"["+$("a",ze[0].length-2)+"]"+De.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(ze=this.tokenizer.rules.inline.escapedEmSt.exec(De))!=null;)De=De.slice(0,ze.index)+"++"+De.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;R;)if(Ze||(tt=""),Ze=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(rt){return(G=rt.call({lexer:q},R,F))?(R=R.substring(G.raw.length),F.push(G),!0):!1}))){if(G=this.tokenizer.escape(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.tag(R)){R=R.substring(G.raw.length),pe=F[F.length-1],pe&&G.type==="text"&&pe.type==="text"?(pe.raw+=G.raw,pe.text+=G.text):F.push(G);continue}if(G=this.tokenizer.link(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.reflink(R,this.tokens.links)){R=R.substring(G.raw.length),pe=F[F.length-1],pe&&G.type==="text"&&pe.type==="text"?(pe.raw+=G.raw,pe.text+=G.text):F.push(G);continue}if(G=this.tokenizer.emStrong(R,De,tt)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.codespan(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.br(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.del(R)){R=R.substring(G.raw.length),F.push(G);continue}if(G=this.tokenizer.autolink(R,j)){R=R.substring(G.raw.length),F.push(G);continue}if(!this.state.inLink&&(G=this.tokenizer.url(R,j))){R=R.substring(G.raw.length),F.push(G);continue}if(_e=R,this.options.extensions&&this.options.extensions.startInline&&function(){var rt=1/0,Rt=R.slice(1),si=void 0;q.options.extensions.startInline.forEach(function(Jn){si=Jn.call({lexer:this},Rt),typeof si=="number"&&si>=0&&(rt=Math.min(rt,si))}),rt<1/0&&rt>=0&&(_e=R.substring(0,rt+1))}(),G=this.tokenizer.inlineText(_e,Z)){R=R.substring(G.raw.length),G.raw.slice(-1)!=="_"&&(tt=G.raw.slice(-1)),Ze=!0,pe=F[F.length-1],pe&&pe.type==="text"?(pe.raw+=G.raw,pe.text+=G.text):F.push(G);continue}if(R){var It="Infinite loop on byte: "+R.charCodeAt(0);if(this.options.silent){console.error(It);break}else throw new Error(It)}}return F},i(he,null,[{key:"rules",get:function(){return{block:z,inline:K}}}]),he}(),ie=function(){function he(ee){this.options=ee||e.defaults}var te=he.prototype;return te.code=function(R,F,q){var G=(F||"").match(/\S*/)[0];if(this.options.highlight){var pe=this.options.highlight(R,G);pe!=null&&pe!==R&&(q=!0,R=pe)}return R=R.replace(/\n$/,"")+` +`,G?'<pre><code class="'+this.options.langPrefix+g(G,!0)+'">'+(q?R:g(R,!0))+`</code></pre> +`:"<pre><code>"+(q?R:g(R,!0))+`</code></pre> +`},te.blockquote=function(R){return`<blockquote> +`+R+`</blockquote> +`},te.html=function(R){return R},te.heading=function(R,F,q,G){if(this.options.headerIds){var pe=this.options.headerPrefix+G.slug(q);return"<h"+F+' id="'+pe+'">'+R+"</h"+F+`> +`}return"<h"+F+">"+R+"</h"+F+`> +`},te.hr=function(){return this.options.xhtml?`<hr/> +`:`<hr> +`},te.list=function(R,F,q){var G=F?"ol":"ul",pe=F&&q!==1?' start="'+q+'"':"";return"<"+G+pe+`> +`+R+"</"+G+`> +`},te.listitem=function(R){return"<li>"+R+`</li> +`},te.checkbox=function(R){return"<input "+(R?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},te.paragraph=function(R){return"<p>"+R+`</p> +`},te.table=function(R,F){return F&&(F="<tbody>"+F+"</tbody>"),`<table> +<thead> +`+R+`</thead> +`+F+`</table> +`},te.tablerow=function(R){return`<tr> +`+R+`</tr> +`},te.tablecell=function(R,F){var q=F.header?"th":"td",G=F.align?"<"+q+' align="'+F.align+'">':"<"+q+">";return G+R+("</"+q+`> +`)},te.strong=function(R){return"<strong>"+R+"</strong>"},te.em=function(R){return"<em>"+R+"</em>"},te.codespan=function(R){return"<code>"+R+"</code>"},te.br=function(){return this.options.xhtml?"<br/>":"<br>"},te.del=function(R){return"<del>"+R+"</del>"},te.link=function(R,F,q){if(R=x(this.options.sanitize,this.options.baseUrl,R),R===null)return q;var G='<a href="'+g(R)+'"';return F&&(G+=' title="'+F+'"'),G+=">"+q+"</a>",G},te.image=function(R,F,q){if(R=x(this.options.sanitize,this.options.baseUrl,R),R===null)return q;var G='<img src="'+R+'" alt="'+q+'"';return F&&(G+=' title="'+F+'"'),G+=this.options.xhtml?"/>":">",G},te.text=function(R){return R},he}(),de=function(){function he(){}var te=he.prototype;return te.strong=function(R){return R},te.em=function(R){return R},te.codespan=function(R){return R},te.del=function(R){return R},te.html=function(R){return R},te.text=function(R){return R},te.link=function(R,F,q){return""+q},te.image=function(R,F,q){return""+q},te.br=function(){return""},he}(),Le=function(){function he(){this.seen={}}var te=he.prototype;return te.serialize=function(R){return R.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},te.getNextSafeSlug=function(R,F){var q=R,G=0;if(this.seen.hasOwnProperty(q)){G=this.seen[R];do G++,q=R+"-"+G;while(this.seen.hasOwnProperty(q))}return F||(this.seen[R]=G,this.seen[q]=0),q},te.slug=function(R,F){F===void 0&&(F={});var q=this.serialize(R);return this.getNextSafeSlug(q,F.dryrun)},he}(),Te=function(){function he(ee){this.options=ee||e.defaults,this.options.renderer=this.options.renderer||new ie,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new de,this.slugger=new Le}he.parse=function(R,F){var q=new he(F);return q.parse(R)},he.parseInline=function(R,F){var q=new he(F);return q.parseInline(R)};var te=he.prototype;return te.parse=function(R,F){F===void 0&&(F=!0);var q="",G,pe,_e,De,ze,Ze,tt,Tt,It,rt,Rt,si,Jn,oi,Zi,Ar,_s,mr,Mo,Ha=R.length;for(G=0;G<Ha;G++){if(rt=R[G],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[rt.type]&&(Mo=this.options.extensions.renderers[rt.type].call({parser:this},rt),Mo!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(rt.type))){q+=Mo||"";continue}switch(rt.type){case"space":continue;case"hr":{q+=this.renderer.hr();continue}case"heading":{q+=this.renderer.heading(this.parseInline(rt.tokens),rt.depth,_(this.parseInline(rt.tokens,this.textRenderer)),this.slugger);continue}case"code":{q+=this.renderer.code(rt.text,rt.lang,rt.escaped);continue}case"table":{for(Tt="",tt="",De=rt.header.length,pe=0;pe<De;pe++)tt+=this.renderer.tablecell(this.parseInline(rt.header[pe].tokens),{header:!0,align:rt.align[pe]});for(Tt+=this.renderer.tablerow(tt),It="",De=rt.rows.length,pe=0;pe<De;pe++){for(Ze=rt.rows[pe],tt="",ze=Ze.length,_e=0;_e<ze;_e++)tt+=this.renderer.tablecell(this.parseInline(Ze[_e].tokens),{header:!1,align:rt.align[_e]});It+=this.renderer.tablerow(tt)}q+=this.renderer.table(Tt,It);continue}case"blockquote":{It=this.parse(rt.tokens),q+=this.renderer.blockquote(It);continue}case"list":{for(Rt=rt.ordered,si=rt.start,Jn=rt.loose,De=rt.items.length,It="",pe=0;pe<De;pe++)Zi=rt.items[pe],Ar=Zi.checked,_s=Zi.task,oi="",Zi.task&&(mr=this.renderer.checkbox(Ar),Jn?Zi.tokens.length>0&&Zi.tokens[0].type==="paragraph"?(Zi.tokens[0].text=mr+" "+Zi.tokens[0].text,Zi.tokens[0].tokens&&Zi.tokens[0].tokens.length>0&&Zi.tokens[0].tokens[0].type==="text"&&(Zi.tokens[0].tokens[0].text=mr+" "+Zi.tokens[0].tokens[0].text)):Zi.tokens.unshift({type:"text",text:mr}):oi+=mr),oi+=this.parse(Zi.tokens,Jn),It+=this.renderer.listitem(oi,_s,Ar);q+=this.renderer.list(It,Rt,si);continue}case"html":{q+=this.renderer.html(rt.text);continue}case"paragraph":{q+=this.renderer.paragraph(this.parseInline(rt.tokens));continue}case"text":{for(It=rt.tokens?this.parseInline(rt.tokens):rt.text;G+1<Ha&&R[G+1].type==="text";)rt=R[++G],It+=` +`+(rt.tokens?this.parseInline(rt.tokens):rt.text);q+=F?this.renderer.paragraph(It):It;continue}default:{var Oo='Token with "'+rt.type+'" type was not found.';if(this.options.silent){console.error(Oo);return}else throw new Error(Oo)}}}return q},te.parseInline=function(R,F){F=F||this.renderer;var q="",G,pe,_e,De=R.length;for(G=0;G<De;G++){if(pe=R[G],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[pe.type]&&(_e=this.options.extensions.renderers[pe.type].call({parser:this},pe),_e!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(pe.type))){q+=_e||"";continue}switch(pe.type){case"escape":{q+=F.text(pe.text);break}case"html":{q+=F.html(pe.text);break}case"link":{q+=F.link(pe.href,pe.title,this.parseInline(pe.tokens,F));break}case"image":{q+=F.image(pe.href,pe.title,pe.text);break}case"strong":{q+=F.strong(this.parseInline(pe.tokens,F));break}case"em":{q+=F.em(this.parseInline(pe.tokens,F));break}case"codespan":{q+=F.codespan(pe.text);break}case"br":{q+=F.br();break}case"del":{q+=F.del(this.parseInline(pe.tokens,F));break}case"text":{q+=F.text(pe.text);break}default:{var ze='Token with "'+pe.type+'" type was not found.';if(this.options.silent){console.error(ze);return}else throw new Error(ze)}}}return q},he}();function ve(he,te,ee){if(typeof he>"u"||he===null)throw new Error("marked(): input parameter is undefined or null");if(typeof he!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(he)+", string expected");if(typeof te=="function"&&(ee=te,te=null),te=N({},ve.defaults,te||{}),B(te),ee){var R=te.highlight,F;try{F=ce.lex(he,te)}catch(De){return ee(De)}var q=function(ze){var Ze;if(!ze)try{te.walkTokens&&ve.walkTokens(F,te.walkTokens),Ze=Te.parse(F,te)}catch(tt){ze=tt}return te.highlight=R,ze?ee(ze):ee(null,Ze)};if(!R||R.length<3||(delete te.highlight,!F.length))return q();var G=0;ve.walkTokens(F,function(De){De.type==="code"&&(G++,setTimeout(function(){R(De.text,De.lang,function(ze,Ze){if(ze)return q(ze);Ze!=null&&Ze!==De.text&&(De.text=Ze,De.escaped=!0),G--,G===0&&q()})},0))}),G===0&&q();return}function pe(De){if(De.message+=` +Please report this to https://github.com/markedjs/marked.`,te.silent)return"<p>An error occurred:</p><pre>"+g(De.message+"",!0)+"</pre>";throw De}try{var _e=ce.lex(he,te);if(te.walkTokens){if(te.async)return Promise.all(ve.walkTokens(_e,te.walkTokens)).then(function(){return Te.parse(_e,te)}).catch(pe);ve.walkTokens(_e,te.walkTokens)}return Te.parse(_e,te)}catch(De){pe(De)}}ve.options=ve.setOptions=function(he){return N(ve.defaults,he),l(ve.defaults),ve},ve.getDefaults=a,ve.defaults=e.defaults,ve.use=function(){for(var he=arguments.length,te=new Array(he),ee=0;ee<he;ee++)te[ee]=arguments[ee];var R=N.apply(void 0,[{}].concat(te)),F=ve.defaults.extensions||{renderers:{},childTokens:{}},q;te.forEach(function(G){if(G.extensions&&(q=!0,G.extensions.forEach(function(_e){if(!_e.name)throw new Error("extension name required");if(_e.renderer){var De=F.renderers?F.renderers[_e.name]:null;De?F.renderers[_e.name]=function(){for(var ze=arguments.length,Ze=new Array(ze),tt=0;tt<ze;tt++)Ze[tt]=arguments[tt];var Tt=_e.renderer.apply(this,Ze);return Tt===!1&&(Tt=De.apply(this,Ze)),Tt}:F.renderers[_e.name]=_e.renderer}if(_e.tokenizer){if(!_e.level||_e.level!=="block"&&_e.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");F[_e.level]?F[_e.level].unshift(_e.tokenizer):F[_e.level]=[_e.tokenizer],_e.start&&(_e.level==="block"?F.startBlock?F.startBlock.push(_e.start):F.startBlock=[_e.start]:_e.level==="inline"&&(F.startInline?F.startInline.push(_e.start):F.startInline=[_e.start]))}_e.childTokens&&(F.childTokens[_e.name]=_e.childTokens)})),G.renderer&&function(){var _e=ve.defaults.renderer||new ie,De=function(tt){var Tt=_e[tt];_e[tt]=function(){for(var It=arguments.length,rt=new Array(It),Rt=0;Rt<It;Rt++)rt[Rt]=arguments[Rt];var si=G.renderer[tt].apply(_e,rt);return si===!1&&(si=Tt.apply(_e,rt)),si}};for(var ze in G.renderer)De(ze);R.renderer=_e}(),G.tokenizer&&function(){var _e=ve.defaults.tokenizer||new re,De=function(tt){var Tt=_e[tt];_e[tt]=function(){for(var It=arguments.length,rt=new Array(It),Rt=0;Rt<It;Rt++)rt[Rt]=arguments[Rt];var si=G.tokenizer[tt].apply(_e,rt);return si===!1&&(si=Tt.apply(_e,rt)),si}};for(var ze in G.tokenizer)De(ze);R.tokenizer=_e}(),G.walkTokens){var pe=ve.defaults.walkTokens;R.walkTokens=function(_e){var De=[];return De.push(G.walkTokens.call(this,_e)),pe&&(De=De.concat(pe.call(this,_e))),De}}q&&(R.extensions=F),ve.setOptions(R)})},ve.walkTokens=function(he,te){for(var ee=[],R=function(){var pe=q.value;switch(ee=ee.concat(te.call(ve,pe)),pe.type){case"table":{for(var _e=o(pe.header),De;!(De=_e()).done;){var ze=De.value;ee=ee.concat(ve.walkTokens(ze.tokens,te))}for(var Ze=o(pe.rows),tt;!(tt=Ze()).done;)for(var Tt=tt.value,It=o(Tt),rt;!(rt=It()).done;){var Rt=rt.value;ee=ee.concat(ve.walkTokens(Rt.tokens,te))}break}case"list":{ee=ee.concat(ve.walkTokens(pe.items,te));break}default:ve.defaults.extensions&&ve.defaults.extensions.childTokens&&ve.defaults.extensions.childTokens[pe.type]?ve.defaults.extensions.childTokens[pe.type].forEach(function(si){ee=ee.concat(ve.walkTokens(pe[si],te))}):pe.tokens&&(ee=ee.concat(ve.walkTokens(pe.tokens,te)))}},F=o(he),q;!(q=F()).done;)R();return ee},ve.parseInline=function(he,te){if(typeof he>"u"||he===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof he!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(he)+", string expected");te=N({},ve.defaults,te||{}),B(te);try{var ee=ce.lexInline(he,te);return te.walkTokens&&ve.walkTokens(ee,te.walkTokens),Te.parseInline(ee,te)}catch(R){if(R.message+=` +Please report this to https://github.com/markedjs/marked.`,te.silent)return"<p>An error occurred:</p><pre>"+g(R.message+"",!0)+"</pre>";throw R}},ve.Parser=Te,ve.parser=Te.parse,ve.Renderer=ie,ve.TextRenderer=de,ve.Lexer=ce,ve.lexer=ce.lex,ve.Tokenizer=re,ve.Slugger=Le,ve.parse=ve;var Ke=ve.options,Q=ve.setOptions,ne=ve.use,xe=ve.walkTokens,He=ve.parseInline,Re=ve,Fe=Te.parse,Ye=ce.lex;e.Lexer=ce,e.Parser=Te,e.Renderer=ie,e.Slugger=Le,e.TextRenderer=de,e.Tokenizer=re,e.getDefaults=a,e.lexer=Ye,e.marked=ve,e.options=Ke,e.parse=Re,e.parseInline=He,e.parser=Fe,e.setOptions=Q,e.use=ne,e.walkTokens=xe,Object.defineProperty(e,"__esModule",{value:!0})})})();ha.Lexer||exports.Lexer;ha.Parser||exports.Parser;ha.Renderer||exports.Renderer;ha.Slugger||exports.Slugger;ha.TextRenderer||exports.TextRenderer;ha.Tokenizer||exports.Tokenizer;ha.getDefaults||exports.getDefaults;ha.lexer||exports.lexer;var Eh=ha.marked||exports.marked;ha.options||exports.options;ha.parse||exports.parse;ha.parseInline||exports.parseInline;ha.parser||exports.parser;ha.setOptions||exports.setOptions;ha.use||exports.use;ha.walkTokens||exports.walkTokens;function k0t(n){return JSON.stringify(n,I0t)}function NU(n){let e=JSON.parse(n);return e=AU(e),e}function I0t(n,e){return e instanceof RegExp?{$mid:2,source:e.source,flags:e.flags}:e}function AU(n,e=0){if(!n||e>200)return n;if(typeof n=="object"){switch(n.$mid){case 1:return mt.revive(n);case 2:return new RegExp(n.source,n.flags);case 17:return new Date(n.source)}if(n instanceof YB||n instanceof Uint8Array)return n;if(Array.isArray(n))for(let t=0;t<n.length;++t)n[t]=AU(n[t],e+1);else for(const t in n)Object.hasOwnProperty.call(n,t)&&(n[t]=AU(n[t],e+1))}return n}const EW=Object.freeze({image:(n,e,t)=>{let i=[],s=[];return n&&({href:n,dimensions:i}=E0t(n),s.push(`src="${IP(n)}"`)),t&&s.push(`alt="${IP(t)}"`),e&&s.push(`title="${IP(e)}"`),i.length&&(s=s.concat(i)),"<img "+s.join(" ")+">"},paragraph:n=>`<p>${n}</p>`,link:(n,e,t)=>typeof n!="string"?"":(n===t&&(t=LW(t)),e=typeof e=="string"?IP(LW(e)):"",n=LW(n),n=n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),`<a href="${n}" title="${e||n}" draggable="false">${t}</a>`)});function L8(n,e={},t={}){const i=new be;let s=!1;const r=qte(e),o=function(g){let m;try{m=NU(decodeURIComponent(g))}catch{}return m?(m=eEe(m,_=>{if(n.uris&&n.uris[_])return mt.revive(n.uris[_])}),encodeURIComponent(JSON.stringify(m))):g},a=function(g,m){const _=n.uris&&n.uris[g];let b=mt.revive(_);return m?g.startsWith(kt.data+":")?g:(b||(b=mt.parse(g)),aLe.uriToBrowserUri(b).toString(!0)):!b||mt.parse(g).toString()===b.toString()?g:(b.query&&(b=b.with({query:o(b.query)})),b.toString())},l=new Eh.Renderer;l.image=EW.image,l.link=EW.link,l.paragraph=EW.paragraph;const c=[],u=[];if(e.codeBlockRendererSync?l.code=(g,m)=>{const _=DU.nextId(),b=e.codeBlockRendererSync(_de(m),g);return u.push([_,b]),`<div class="code" data-code="${_}">${Ik(g)}</div>`}:e.codeBlockRenderer&&(l.code=(g,m)=>{const _=DU.nextId(),b=e.codeBlockRenderer(_de(m),g);return c.push(b.then(w=>[_,w])),`<div class="code" data-code="${_}">${Ik(g)}</div>`}),e.actionHandler){const g=function(b){let w=b.target;if(!(w.tagName!=="A"&&(w=w.parentElement,!w||w.tagName!=="A")))try{let C=w.dataset.href;C&&(n.baseUri&&(C=kW(mt.from(n.baseUri),C)),e.actionHandler.callback(C,b))}catch(C){Nt(C)}finally{b.preventDefault()}},m=e.actionHandler.disposables.add(new li(r,"click")),_=e.actionHandler.disposables.add(new li(r,"auxclick"));e.actionHandler.disposables.add(Oe.any(m.event,_.event)(b=>{const w=new Iu(ut(r),b);!w.leftButton&&!w.middleButton||g(w)})),e.actionHandler.disposables.add(ge(r,"keydown",b=>{const w=new Ji(b);!w.equals(10)&&!w.equals(3)||g(w)}))}n.supportHtml||(t.sanitizer=g=>{var _;return(_=e.sanitizerOptions)!=null&&_.replaceWithPlaintext?Ik(g):(n.isTrusted?g.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?g:""},t.sanitize=!0,t.silent=!0),t.renderer=l;let h=n.value??"";h.length>1e5&&(h=`${h.substr(0,1e5)}…`),n.supportThemeIcons&&(h=y0t(h));let d;if(e.fillInIncompleteTokens){const g={...Eh.defaults,...t},m=Eh.lexer(h,g),_=H0t(m);d=Eh.parser(_,g)}else d=Eh.parse(h,t);n.supportThemeIcons&&(d=L1(d).map(m=>typeof m=="string"?m:m.outerHTML).join(""));const p=new DOMParser().parseFromString(PU({isTrusted:n.isTrusted,...e.sanitizerOptions},d),"text/html");if(p.body.querySelectorAll("img, audio, video, source").forEach(g=>{const m=g.getAttribute("src");if(m){let _=m;try{n.baseUri&&(_=kW(mt.from(n.baseUri),_))}catch{}if(g.setAttribute("src",a(_,!0)),e.remoteImageIsAllowed){const b=mt.parse(_);b.scheme!==kt.file&&b.scheme!==kt.data&&!e.remoteImageIsAllowed(b)&&g.replaceWith(Pe("",void 0,g.outerHTML))}}}),p.body.querySelectorAll("a").forEach(g=>{const m=g.getAttribute("href");if(g.setAttribute("href",""),!m||/^data:|javascript:/i.test(m)||/^command:/i.test(m)&&!n.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(m))g.replaceWith(...g.childNodes);else{let _=a(m,!1);n.baseUri&&(_=kW(mt.from(n.baseUri),m)),g.dataset.href=_}}),r.innerHTML=PU({isTrusted:n.isTrusted,...e.sanitizerOptions},p.body.innerHTML),c.length>0)Promise.all(c).then(g=>{var b;if(s)return;const m=new Map(g),_=r.querySelectorAll("div[data-code]");for(const w of _){const C=m.get(w.dataset.code??"");C&&Ir(w,C)}(b=e.asyncRenderCallback)==null||b.call(e)});else if(u.length>0){const g=new Map(u),m=r.querySelectorAll("div[data-code]");for(const _ of m){const b=g.get(_.dataset.code??"");b&&Ir(_,b)}}if(e.asyncRenderCallback)for(const g of r.getElementsByTagName("img")){const m=i.add(ge(g,"load",()=>{m.dispose(),e.asyncRenderCallback()}))}return{element:r,dispose:()=>{s=!0,i.dispose()}}}function _de(n){if(!n)return"";const e=n.split(/[\s+|:|,|\{|\?]/,1);return e.length?e[0]:n}function kW(n,e){return/^\w[\w\d+.-]*:/.test(e)?e:n.path.endsWith("/")?Nhe(n,e).toString():Nhe(_8(n),e).toString()}const T0t=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function PU(n,e){const{config:t,allowedSchemes:i}=N0t(n),s=new be;s.add(vde("uponSanitizeAttribute",(r,o)=>{var a;if(o.attrName==="style"||o.attrName==="class"){if(r.tagName==="SPAN"){if(o.attrName==="style"){o.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(border-radius:[0-9]+px;)?$/.test(o.attrValue);return}else if(o.attrName==="class"){o.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(o.attrValue);return}}o.keepAttr=!1;return}else if(r.tagName==="INPUT"&&((a=r.attributes.getNamedItem("type"))==null?void 0:a.value)==="checkbox"){if(o.attrName==="type"&&o.attrValue==="checkbox"||o.attrName==="disabled"||o.attrName==="checked"){o.keepAttr=!0;return}o.keepAttr=!1}})),s.add(vde("uponSanitizeElement",(r,o)=>{var a;if(o.tagName==="input"&&(((a=r.attributes.getNamedItem("type"))==null?void 0:a.value)==="checkbox"?r.setAttribute("disabled",""):n.replaceWithPlaintext||r.remove()),n.replaceWithPlaintext&&!o.allowedTags[o.tagName]&&o.tagName!=="body"&&r.parentElement){let l,c;if(o.tagName==="#comment")l=`<!--${r.textContent}-->`;else{const f=T0t.includes(o.tagName),p=r.attributes.length?" "+Array.from(r.attributes).map(g=>`${g.name}="${g.value}"`).join(" "):"";l=`<${o.tagName}${p}>`,f||(c=`</${o.tagName}>`)}const u=document.createDocumentFragment(),h=r.parentElement.ownerDocument.createTextNode(l);u.appendChild(h);const d=c?r.parentElement.ownerDocument.createTextNode(c):void 0;for(;r.firstChild;)u.appendChild(r.firstChild);d&&u.appendChild(d),r.parentElement.replaceChild(u,r)}})),s.add(xut(i));try{return Hxe(e,{...t,RETURN_TRUSTED_TYPE:!0})}finally{s.dispose()}}const D0t=["align","autoplay","alt","checked","class","colspan","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","rowspan","src","style","target","title","type","width","start"];function N0t(n){const e=[kt.http,kt.https,kt.mailto,kt.data,kt.file,kt.vscodeFileResource,kt.vscodeRemote,kt.vscodeRemoteResource];return n.isTrusted&&e.push(kt.command),{config:{ALLOWED_TAGS:n.allowedTags??[...Lut],ALLOWED_ATTR:D0t,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:e}}function A0t(n){return typeof n=="string"?n:P0t(n)}function P0t(n,e){let t=n.value??"";t.length>1e5&&(t=`${t.substr(0,1e5)}…`);const i=Eh.parse(t,{renderer:O0t.value}).replace(/&(#\d+|[a-zA-Z]+);/g,s=>R0t.get(s)??s);return PU({isTrusted:!1},i).toString()}const R0t=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]);function M0t(){const n=new Eh.Renderer;return n.code=e=>e,n.blockquote=e=>e,n.html=e=>"",n.heading=(e,t,i)=>e+` +`,n.hr=()=>"",n.list=(e,t)=>e,n.listitem=e=>e+` +`,n.paragraph=e=>e+` +`,n.table=(e,t)=>e+t+` +`,n.tablerow=e=>e,n.tablecell=(e,t)=>e+" ",n.strong=e=>e,n.em=e=>e,n.codespan=e=>e,n.br=()=>` +`,n.del=e=>e,n.image=(e,t,i)=>"",n.text=e=>e,n.link=(e,t,i)=>i,n}const O0t=new Yh(n=>M0t());function nD(n){let e="";return n.forEach(t=>{e+=t.raw}),e}function Gke(n){var e,t;if(n.tokens)for(let i=n.tokens.length-1;i>=0;i--){const s=n.tokens[i];if(s.type==="text"){const r=s.raw.split(` +`),o=r[r.length-1];if(o.includes("`"))return U0t(n);if(o.includes("**"))return Y0t(n);if(o.match(/\*\w/))return j0t(n);if(o.match(/(^|\s)__\w/))return Z0t(n);if(o.match(/(^|\s)_\w/))return q0t(n);if(F0t(o)||B0t(o)&&n.tokens.slice(0,i).some(a=>a.type==="text"&&a.raw.match(/\[[^\]]*$/))){const a=n.tokens.slice(i+1);return((e=a[0])==null?void 0:e.type)==="link"&&((t=a[1])==null?void 0:t.type)==="text"&&a[1].raw.match(/^ *"[^"]*$/)||o.match(/^[^"]* +"[^"]*$/)?G0t(n):K0t(n)}else if(o.match(/(^|\s)\[\w*/))return X0t(n)}}}function F0t(n){return!!n.match(/(^|\s)\[.*\]\(\w*/)}function B0t(n){return!!n.match(/^[^\[]*\]\([^\)]*$/)}function W0t(n){var l;const e=n.items[n.items.length-1],t=e.tokens?e.tokens[e.tokens.length-1]:void 0;let i;if((t==null?void 0:t.type)==="text"&&!("inRawBlock"in e)&&(i=Gke(t)),!i||i.type!=="paragraph")return;const s=nD(n.items.slice(0,-1)),r=(l=e.raw.match(/^(\s*(-|\d+\.|\*) +)/))==null?void 0:l[0];if(!r)return;const o=r+nD(e.tokens.slice(0,-1))+i.raw,a=Eh.lexer(s+o)[0];if(a.type==="list")return a}const V0t=3;function H0t(n){for(let e=0;e<V0t;e++){const t=$0t(n);if(t)n=t;else break}return n}function $0t(n){let e,t;for(e=0;e<n.length;e++){const i=n[e];let s;if(i.type==="paragraph"&&(s=i.raw.match(/(\n|^)(````*)/))){const r=s[2];t=z0t(n.slice(e),r);break}if(i.type==="paragraph"&&i.raw.match(/(\n|^)\|/)){t=Q0t(n.slice(e));break}if(e===n.length-1&&i.type==="list"){const r=W0t(i);if(r){t=[r];break}}if(e===n.length-1&&i.type==="paragraph"){const r=Gke(i);if(r){t=[r];break}}}if(t){const i=[...n.slice(0,e),...t];return i.links=n.links,i}return null}function z0t(n,e){const t=nD(n);return Eh.lexer(t+` +${e}`)}function U0t(n){return M_(n,"`")}function j0t(n){return M_(n,"*")}function q0t(n){return M_(n,"_")}function K0t(n){return M_(n,")")}function G0t(n){return M_(n,'")')}function X0t(n){return M_(n,"](https://microsoft.com)")}function Y0t(n){return M_(n,"**")}function Z0t(n){return M_(n,"__")}function M_(n,e){const t=nD(Array.isArray(n)?n:[n]);return Eh.lexer(t+e)[0]}function Q0t(n){const e=nD(n),t=e.split(` +`);let i,s=!1;for(let r=0;r<t.length;r++){const o=t[r].trim();if(typeof i>"u"&&o.match(/^\s*\|/)){const a=o.match(/(\|[^\|]+)(?=\||$)/g);a&&(i=a.length)}else if(typeof i=="number")if(o.match(/^\s*\|/)){if(r!==t.length-1)return;s=!0}else return}if(typeof i=="number"&&i>0){const r=s?t.slice(0,-1).join(` +`):e,o=!!r.match(/\|\s*$/),a=r+(o?"":"|")+` +|${" --- |".repeat(i)}`;return Eh.lexer(a)}}function vde(n,e){return $xe(n,e),lt(()=>zxe(n))}let Xke={showHover:()=>{},hideHover:()=>{},showAndFocusLastHover:()=>{},setupManagedHover:()=>null,showManagedHover:()=>{}};function J0t(n){Xke=n}function _d(){return Xke}class ewt{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(s=>s.splice(e,t,i))}}function $o(n,e,t){return Math.min(Math.max(n,e),t)}class Yke{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class twt{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n<this._values.length&&(this._n+=1),this._val=this._sum/this._n,this._val}get value(){return this._val}}class iv extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}var Zr;(function(n){function e(r,o){if(r.start>=o.end||o.start>=r.end)return{start:0,end:0};const a=Math.max(r.start,o.start),l=Math.min(r.end,o.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}n.intersect=e;function t(r){return r.end-r.start<=0}n.isEmpty=t;function i(r,o){return!t(e(r,o))}n.intersects=i;function s(r,o){const a=[],l={start:r.start,end:Math.min(o.start,r.end)},c={start:Math.max(o.end,r.start),end:r.end};return t(l)||a.push(l),t(c)||a.push(c),a}n.relativeComplement=s})(Zr||(Zr={}));function bde(n,e){const t=[];for(const i of e){if(n.start>=i.range.end)continue;if(n.end<i.range.start)break;const s=Zr.intersect(n,i.range);Zr.isEmpty(s)||t.push({range:s,size:i.size})}return t}function RU({start:n,end:e},t){return{start:n+t,end:e+t}}function iwt(n){const e=[];let t=null;for(const i of n){const s=i.range.start,r=i.range.end,o=i.size;if(t&&o===t.size){t.range.end=r;continue}t={range:{start:s,end:r},size:o},e.push(t)}return e}function nwt(...n){return iwt(n.reduce((e,t)=>e.concat(t),[]))}class swt{get paddingTop(){return this._paddingTop}set paddingTop(e){this._size=this._size+e-this._paddingTop,this._paddingTop=e}constructor(e){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=e??0,this._size=this._paddingTop}splice(e,t,i=[]){const s=i.length-t,r=bde({start:0,end:e},this.groups),o=bde({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:RU(l.range,s),size:l.size})),a=i.map((l,c)=>({range:{start:e+c,end:e+c+1},size:l.size}));this.groups=nwt(r,a,o),this._size=this._paddingTop+this.groups.reduce((l,c)=>l+c.size*(c.range.end-c.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;if(e<this._paddingTop)return 0;let t=0,i=this._paddingTop;for(const s of this.groups){const r=s.range.end-s.range.start,o=i+r*s.size;if(e<o)return t+Math.floor((e-i)/s.size);t+=r,i=o}return t}indexAfter(e){return Math.min(this.indexAt(e)+1,this.count)}positionAt(e){if(e<0)return-1;let t=0,i=0;for(const s of this.groups){const r=s.range.end-s.range.start,o=i+r;if(e<o)return this._paddingTop+t+(e-i)*s.size;t+=r*s.size,i=o}return-1}}class rwt{constructor(e){this.renderers=e,this.cache=new Map,this.transactionNodesPendingRemoval=new Set,this.inTransaction=!1}alloc(e){let t=this.getTemplateCache(e).pop(),i=!1;if(t)i=this.transactionNodesPendingRemoval.has(t.domNode),i&&this.transactionNodesPendingRemoval.delete(t.domNode);else{const s=Pe(".monaco-list-row"),o=this.getRenderer(e).renderTemplate(s);t={domNode:s,templateId:e,templateData:o}}return{row:t,isReusingConnectedDomNode:i}}release(e){e&&this.releaseRow(e)}transact(e){if(this.inTransaction)throw new Error("Already in transaction");this.inTransaction=!0;try{e()}finally{for(const t of this.transactionNodesPendingRemoval)this.doRemoveNode(t);this.transactionNodesPendingRemoval.clear(),this.inTransaction=!1}}releaseRow(e){const{domNode:t,templateId:i}=e;t&&(this.inTransaction?this.transactionNodesPendingRemoval.add(t):this.doRemoveNode(t)),this.getTemplateCache(i).push(e)}doRemoveNode(e){e.classList.remove("scrolling"),e.remove()}getTemplateCache(e){let t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}dispose(){this.cache.forEach((e,t)=>{for(const i of e)this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var im=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r};const nv={CurrentDragAndDropData:void 0},xd={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(n){return[n]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class qN{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class owt{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class awt{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;t<e.files.length;t++){const i=e.files.item(t);i&&(i.size||i.type)&&this.files.push(i)}}}getData(){return{types:this.types,files:this.files}}}function lwt(n,e){return Array.isArray(n)&&Array.isArray(e)?In(n,e):n===e}class cwt{constructor(e){e!=null&&e.getSetSize?this.getSetSize=e.getSetSize.bind(e):this.getSetSize=(t,i,s)=>s,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>"listitem",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}const E3=class E3{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:O7(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(e,t,i,s=xd){var o,a;if(this.virtualDelegate=t,this.domId=`list_id_${++E3.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new $u(50),this.splicing=!1,this.dragOverAnimationStopDisposable=ue.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=ue.None,this.onDragLeaveTimeout=ue.None,this.disposables=new be,this._onDidChangeContentHeight=new oe,this._onDidChangeContentWidth=new oe,this.onDidChangeContentHeight=Oe.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,s.horizontalScrolling&&s.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap(s.paddingTop??0);for(const l of i)this.renderers.set(l.templateId,l);this.cache=this.disposables.add(new rwt(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof s.mouseSupport=="boolean"?s.mouseSupport:!0),this._horizontalScrolling=s.horizontalScrolling??xd.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof s.paddingBottom>"u"?0:s.paddingBottom,this.accessibilityProvider=new cwt(s.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(s.transformOptimization??xd.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(ao.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new gL({forceIntegerValues:!0,smoothScrollDuration:s.smoothScrolling??!1?125:0,scheduleAtNextAnimationFrame:l=>bl(ut(this.domNode),l)})),this.scrollableElement=this.disposables.add(new d8(this.rowsContainer,{alwaysConsumeMouseWheel:s.alwaysConsumeMouseWheel??xd.alwaysConsumeMouseWheel,horizontal:1,vertical:s.verticalScrollMode??xd.verticalScrollMode,useShadows:s.useShadows??xd.useShadows,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity,fastScrollSensitivity:s.fastScrollSensitivity,scrollByPage:s.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(ge(this.rowsContainer,sn.Change,l=>this.onTouchChange(l))),this.disposables.add(ge(this.scrollableElement.getDomNode(),"scroll",l=>l.target.scrollTop=0)),this.disposables.add(ge(this.domNode,"dragover",l=>this.onDragOver(this.toDragEvent(l)))),this.disposables.add(ge(this.domNode,"drop",l=>this.onDrop(this.toDragEvent(l)))),this.disposables.add(ge(this.domNode,"dragleave",l=>this.onDragLeave(this.toDragEvent(l)))),this.disposables.add(ge(this.domNode,"dragend",l=>this.onDragEnd(l))),this.setRowLineHeight=s.setRowLineHeight??xd.setRowLineHeight,this.setRowHeight=s.setRowHeight??xd.setRowHeight,this.supportDynamicHeights=s.supportDynamicHeights??xd.supportDynamicHeights,this.dnd=s.dnd??this.disposables.add(xd.dnd),this.layout((o=s.initialSize)==null?void 0:o.height,(a=s.initialSize)==null?void 0:a.width)}updateOptions(e){e.paddingBottom!==void 0&&(this.paddingBottom=e.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling);let t;if(e.scrollByPage!==void 0&&(t={...t??{},scrollByPage:e.scrollByPage}),e.mouseWheelScrollSensitivity!==void 0&&(t={...t??{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&(t={...t??{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+s),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new swt(e)}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),r={start:e,end:e+t},o=Zr.intersect(s,r),a=new Map;for(let S=o.end-1;S>=o.start;S--){const x=this.items[S];if(x.dragStartDisposable.dispose(),x.checkedDisposable.dispose(),x.row){let k=a.get(x.templateId);k||(k=[],a.set(x.templateId,k));const L=this.renderers.get(x.templateId);L&&L.disposeElement&&L.disposeElement(x.element,S,x.row.templateData,x.size),k.unshift(x.row)}x.row=null,x.stale=!0}const l={start:e+t,end:this.items.length},c=Zr.intersect(l,s),u=Zr.relativeComplement(l,s),h=i.map(S=>({id:String(this.itemId++),element:S,templateId:this.virtualDelegate.getTemplateId(S),size:this.virtualDelegate.getHeight(S),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(S),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:ue.None,checkedDisposable:ue.None,stale:!1}));let d;e===0&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,h),d=this.items,this.items=h):(this.rangeMap.splice(e,t,h),d=this.items.splice(e,t,...h));const f=i.length-t,p=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),g=RU(c,f),m=Zr.intersect(p,g);for(let S=m.start;S<m.end;S++)this.updateItemInDOM(this.items[S],S);const _=Zr.relativeComplement(g,p);for(const S of _)for(let x=S.start;x<S.end;x++)this.removeItemFromDOM(x);const b=u.map(S=>RU(S,f)),C=[{start:e,end:e+i.length},...b].map(S=>Zr.intersect(p,S)).reverse();for(const S of C)for(let x=S.end-1;x>=S.start;x--){const k=this.items[x],L=a.get(k.templateId),E=L==null?void 0:L.pop();this.insertItemInDOM(x,E)}for(const S of a.values())for(const x of S)this.cache.release(x);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),d.map(S=>S.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=bl(ut(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width<"u"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex(t=>t.element===e)}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:typeof e=="number"?e:uut(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t<"u"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t=="number"?t:O7(this.domNode)})}render(e,t,i,s,r,o=!1){const a=this.getRenderRange(t,i),l=Zr.relativeComplement(a,e).reverse(),c=Zr.relativeComplement(e,a);if(o){const u=Zr.intersect(e,a);for(let h=u.start;h<u.end;h++)this.updateItemInDOM(this.items[h],h)}this.cache.transact(()=>{for(const u of c)for(let h=u.start;h<u.end;h++)this.removeItemFromDOM(h);for(const u of l)for(let h=u.end-1;h>=u.start;h--)this.insertItemInDOM(h)}),s!==void 0&&(this.rowsContainer.style.left=`-${s}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&r!==void 0&&(this.rowsContainer.style.width=`${Math.max(r,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t){var l,c;const i=this.items[e];if(!i.row)if(t)i.row=t,i.stale=!0;else{const u=this.cache.alloc(i.templateId);i.row=u.row,i.stale||(i.stale=u.isReusingConnectedDomNode)}const s=this.accessibilityProvider.getRole(i.element)||"listitem";i.row.domNode.setAttribute("role",s);const r=this.accessibilityProvider.isChecked(i.element);if(typeof r=="boolean")i.row.domNode.setAttribute("aria-checked",String(!!r));else if(r){const u=h=>i.row.domNode.setAttribute("aria-checked",String(!!h));u(r.value),i.checkedDisposable=r.onDidChange(()=>u(r.value))}if(i.stale||!i.row.domNode.parentElement){const u=((c=(l=this.items.at(e+1))==null?void 0:l.row)==null?void 0:c.domNode)??null;(i.row.domNode.parentElement!==this.rowsContainer||i.row.domNode.nextElementSibling!==u)&&this.rowsContainer.insertBefore(i.row.domNode,u),i.stale=!1}this.updateItemInDOM(i,e);const o=this.renderers.get(i.templateId);if(!o)throw new Error(`No renderer found for template id ${i.templateId}`);o==null||o.renderElement(i.element,e,i.row.templateData,i.size);const a=this.dnd.getDragURI(i.element);i.dragStartDisposable.dispose(),i.row.domNode.draggable=!!a,a&&(i.dragStartDisposable=ge(i.row.domNode,"dragstart",u=>this.onDragStart(i.element,a,u))),this.horizontalScrolling&&(this.measureItemWidth(i),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width="fit-content",e.width=O7(e.row.domNode);const t=ut(e.row.domNode).getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("data-parity",t%2===0?"even":"odd"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return Oe.map(this.disposables.add(new li(this.domNode,"click")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return Oe.map(this.disposables.add(new li(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return Oe.filter(Oe.map(this.disposables.add(new li(this.domNode,"auxclick")).event,e=>this.toMouseEvent(e),this.disposables),e=>e.browserEvent.button===1,this.disposables)}get onMouseDown(){return Oe.map(this.disposables.add(new li(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return Oe.map(this.disposables.add(new li(this.domNode,"mouseover")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return Oe.map(this.disposables.add(new li(this.domNode,"mouseout")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return Oe.any(Oe.map(this.disposables.add(new li(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e),this.disposables),Oe.map(this.disposables.add(new li(this.domNode,sn.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return Oe.map(this.disposables.add(new li(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return Oe.map(this.disposables.add(new li(this.rowsContainer,sn.Tap)).event,e=>this.toGestureEvent(e),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element,r=this.getTargetSector(e,t);return{browserEvent:e,index:t,element:s,sector:r}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var r,o;if(!i.dataTransfer)return;const s=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(eD.TEXT,t),i.dataTransfer.setDragImage){let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(s,i)),typeof a>"u"&&(a=String(s.length));const l=Pe(".monaco-drag-image");l.textContent=a,(h=>{for(;h&&!h.classList.contains("monaco-workbench");)h=h.parentElement;return h||this.domNode.ownerDocument})(this.domNode).appendChild(l),i.dataTransfer.setDragImage(l,-10,-10),setTimeout(()=>l.remove(),0)}this.domNode.classList.add("dragging"),this.currentDragData=new qN(s),nv.CurrentDragAndDropData=new owt(s),(o=(r=this.dnd).onDragStart)==null||o.call(r,this.currentDragData,i)}onDragOver(e){var r,o;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),nv.CurrentDragAndDropData&&nv.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(nv.CurrentDragAndDropData)this.currentDragData=nv.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new awt}const t=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop=typeof t=="boolean"?t:t.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof t!="boolean"&&((r=t.effect)==null?void 0:r.type)===0?"copy":"move";let i;typeof t!="boolean"&&t.feedback?i=t.feedback:typeof e.index>"u"?i=[-1]:i=[e.index],i=Vg(i).filter(a=>a>=-1&&a<this.length).sort((a,l)=>a-l),i=i[0]===-1?[-1]:i;let s=typeof t!="boolean"&&t.effect&&t.effect.position?t.effect.position:"drop-target";if(lwt(this.currentDragFeedback,i)&&this.currentDragFeedbackPosition===s)return!0;if(this.currentDragFeedback=i,this.currentDragFeedbackPosition=s,this.currentDragFeedbackDisposable.dispose(),i[0]===-1)this.domNode.classList.add(s),this.rowsContainer.classList.add(s),this.currentDragFeedbackDisposable=lt(()=>{this.domNode.classList.remove(s),this.rowsContainer.classList.remove(s)});else{if(i.length>1&&s!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");s==="drop-target-after"&&i[0]<this.length-1&&(i[0]+=1,s="drop-target-before");for(const a of i){const l=this.items[a];l.dropTarget=!0,(o=l.row)==null||o.domNode.classList.add(s)}this.currentDragFeedbackDisposable=lt(()=>{var a;for(const l of i){const c=this.items[l];c.dropTarget=!1,(a=c.row)==null||a.domNode.classList.remove(s)}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=n_(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((i=(t=this.dnd).onDragLeave)==null||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,nv.CurrentDragAndDropData=void 0,!(!t||!e.browserEvent.dataTransfer)&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.sector,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,nv.CurrentDragAndDropData=void 0,(i=(t=this.dnd).onDragEnd)==null||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=ue.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=uLe(this.domNode).top;this.dragOverAnimationDisposable=Sut(ut(this.domNode),this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=n_(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(t===void 0)return;const i=e.offsetY/this.items[t].size,s=Math.floor(i/.25);return $o(s,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;(ir(i)||mut(i))&&i!==this.rowsContainer&&t.contains(i);){const s=i.getAttribute("data-index");if(s){const r=Number(s);if(!isNaN(r))return r}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const s=this.getRenderRange(e,t);let r,o;e===this.elementTop(s.start)?(r=s.start,o=0):s.end-s.start>1&&(r=s.start+1,o=this.elementTop(r)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let c=!1;for(let u=l.start;u<l.end;u++){const h=this.probeDynamicHeight(u);h!==0&&this.rangeMap.splice(u,1,[this.items[u]]),a+=h,c=c||h!==0}if(!c){a!==0&&this.eventuallyUpdateScrollDimensions();const u=Zr.relativeComplement(s,l);for(const d of u)for(let f=d.start;f<d.end;f++)this.items[f].row&&this.removeItemFromDOM(f);const h=Zr.relativeComplement(l,s).reverse();for(const d of h)for(let f=d.end-1;f>=d.start;f--)this.insertItemInDOM(f);for(let d=l.start;d<l.end;d++)this.items[d].row&&this.updateItemInDOM(this.items[d],d);if(typeof r=="number"){const d=this.scrollable.getFutureScrollPosition().scrollTop-e,f=this.elementTop(r)-o+d;this.setScrollTop(f,i)}this._onDidChangeContentHeight.fire(this.contentHeight);return}}}probeDynamicHeight(e){var o,a,l;const t=this.items[e];if(this.virtualDelegate.getDynamicHeight){const c=this.virtualDelegate.getDynamicHeight(t.element);if(c!==null){const u=t.size;return t.size=c,t.lastDynamicHeightWidth=this.renderWidth,c-u}}if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth||this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(t.element))return 0;const i=t.size;if(t.row)return t.row.domNode.style.height="",t.size=t.row.domNode.offsetHeight,t.size===0&&!er(t.row.domNode,ut(t.row.domNode).document.body)&&console.warn("Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!"),t.lastDynamicHeightWidth=this.renderWidth,t.size-i;const{row:s}=this.cache.alloc(t.templateId);s.domNode.style.height="",this.rowsContainer.appendChild(s.domNode);const r=this.renderers.get(t.templateId);if(!r)throw new Li("Missing renderer for templateId: "+t.templateId);return r.renderElement(t.element,e,s.templateData,void 0),t.size=s.domNode.offsetHeight,(o=r.disposeElement)==null||o.call(r,t.element,e,s.templateData,void 0),(l=(a=this.virtualDelegate).setDynamicHeight)==null||l.call(a,t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,s.domNode.remove(),this.cache.release(s),t.size-i}getElementDomId(e){return`${this.domId}_${e}`}dispose(){var e,t,i;for(const s of this.items)if(s.dragStartDisposable.dispose(),s.checkedDisposable.dispose(),s.row){const r=this.renderers.get(s.row.templateId);r&&((e=r.disposeElement)==null||e.call(r,s.element,-1,s.row.templateData,void 0),r.disposeTemplate(s.row.templateData))}this.items=[],(t=this.domNode)==null||t.remove(),(i=this.dragOverAnimationDisposable)==null||i.dispose(),this.disposables.dispose()}};E3.InstanceCount=0;let qu=E3;im([gs],qu.prototype,"onMouseClick",null);im([gs],qu.prototype,"onMouseDblClick",null);im([gs],qu.prototype,"onMouseMiddleClick",null);im([gs],qu.prototype,"onMouseDown",null);im([gs],qu.prototype,"onMouseOver",null);im([gs],qu.prototype,"onMouseOut",null);im([gs],qu.prototype,"onContextMenu",null);im([gs],qu.prototype,"onTouchStart",null);im([gs],qu.prototype,"onTap",null);var O_=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r};class uwt{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const s=this.renderedElements.findIndex(r=>r.templateData===i);if(s>=0){const r=this.renderedElements[s];this.trait.unrender(i),r.index=t}else{const r={index:t,templateData:i};this.renderedElements.push(r)}this.trait.renderIndex(t,i)}splice(e,t,i){const s=[];for(const r of this.renderedElements)r.index<e?s.push(r):r.index>=e+t&&s.push({index:r.index+i-t,templateData:r.templateData});this.renderedElements=s}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}let i4=class{get name(){return this._trait}get renderer(){return new uwt(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new oe,this.onChange=this._onChange.event}splice(e,t,i){const s=i.length-t,r=e+t,o=[];let a=0;for(;a<this.sortedIndexes.length&&this.sortedIndexes[a]<e;)o.push(this.sortedIndexes[a++]);for(let l=0;l<i.length;l++)i[l]&&o.push(l+e);for(;a<this.sortedIndexes.length&&this.sortedIndexes[a]>=r;)o.push(this.sortedIndexes[a++]+s);this.renderer.splice(e,t,i.length),this._set(o,o)}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(wde),t)}_set(e,t,i){const s=this.indexes,r=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const o=MU(r,e);return this.renderer.renderIndexes(o),this._onChange.fire({indexes:e,browserEvent:i}),s}get(){return this.indexes}contains(e){return CT(this.sortedIndexes,e,wde)>=0}dispose(){Yi(this._onChange)}};O_([gs],i4.prototype,"renderer",null);class hwt extends i4{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class IW{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,new Array(i.length).fill(!1));const s=this.trait.get().map(a=>this.identityProvider.getId(this.view.element(a)).toString());if(s.length===0)return this.trait.splice(e,t,new Array(i.length).fill(!1));const r=new Set(s),o=i.map(a=>r.has(this.identityProvider.getId(a).toString()));this.trait.splice(e,t,o)}}function E1(n){return n.tagName==="INPUT"||n.tagName==="TEXTAREA"}function KN(n,e){return n.classList.contains(e)?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:KN(n.parentElement,e)}function qE(n){return KN(n,"monaco-editor")}function dwt(n){return KN(n,"monaco-custom-toggle")}function fwt(n){return KN(n,"action-item")}function qk(n){return KN(n,"monaco-tree-sticky-row")}function sD(n){return n.classList.contains("monaco-tree-sticky-container")}function Zke(n){return n.tagName==="A"&&n.classList.contains("monaco-button")||n.tagName==="DIV"&&n.classList.contains("monaco-button-dropdown")?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:Zke(n.parentElement)}class Qke{get onKeyDown(){return Oe.chain(this.disposables.add(new li(this.view.domNode,"keydown")).event,e=>e.filter(t=>!E1(t.target)).map(t=>new Ji(t)))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new be,this.multipleSelectionDisposables=new be,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown(s=>{switch(s.keyCode){case 3:return this.onEnter(s);case 16:return this.onUpArrow(s);case 18:return this.onDownArrow(s);case 11:return this.onPageUpArrow(s);case 12:return this.onPageDownArrow(s);case 9:return this.onEscape(s);case 31:this.multipleSelectionSupport&&(ni?s.metaKey:s.ctrlKey)&&this.onCtrlA(s)}}))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(ya(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}O_([gs],Qke.prototype,"onKeyDown",null);var af;(function(n){n[n.Automatic=0]="Automatic",n[n.Trigger=1]="Trigger"})(af||(af={}));var Xw;(function(n){n[n.Idle=0]="Idle",n[n.Typing=1]="Typing"})(Xw||(Xw={}));const pwt=new class{mightProducePrintableCharacter(n){return n.ctrlKey||n.metaKey||n.altKey?!1:n.keyCode>=31&&n.keyCode<=56||n.keyCode>=21&&n.keyCode<=30||n.keyCode>=98&&n.keyCode<=107||n.keyCode>=85&&n.keyCode<=95}};class gwt{constructor(e,t,i,s,r){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=s,this.delegate=r,this.enabled=!1,this.state=Xw.Idle,this.mode=af.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new be,this.disposables=new be,this.updateOptions(e.options)}updateOptions(e){e.typeNavigationEnabled??!0?this.enable():this.disable(),this.mode=e.typeNavigationMode??af.Automatic}enable(){if(this.enabled)return;let e=!1;const t=Oe.chain(this.enabledDisposables.add(new li(this.view.domNode,"keydown")).event,r=>r.filter(o=>!E1(o.target)).filter(()=>this.mode===af.Automatic||this.triggered).map(o=>new Ji(o)).filter(o=>e||this.keyboardNavigationEventFilter(o)).filter(o=>this.delegate.mightProducePrintableCharacter(o)).forEach(o=>ci.stop(o,!0)).map(o=>o.browserEvent.key)),i=Oe.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);Oe.reduce(Oe.any(t,i),(r,o)=>o===null?null:(r||"")+o,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),i(()=>e=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var t;const e=this.list.getFocus();if(e.length>0&&e[0]===this.previouslyFocused){const i=(t=this.list.options.accessibilityProvider)==null?void 0:t.getAriaLabel(this.list.element(e[0]));typeof i=="string"?yl(i):i&&yl(i.get())}this.previouslyFocused=-1}onInput(e){if(!e){this.state=Xw.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,s=this.state===Xw.Idle?1:0;this.state=Xw.Typing;for(let r=0;r<this.list.length;r++){const o=(i+r+s)%this.list.length,a=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(o)),l=a&&a.toString();if(this.list.options.typeNavigationEnabled){if(typeof l<"u"){if(tD(e,l)){this.previouslyFocused=i,this.list.setFocus([o]),this.list.reveal(o);return}const c=l0t(e,l);if(c&&c[0].end-c[0].start>1&&c.length===1){this.previouslyFocused=i,this.list.setFocus([o]),this.list.reveal(o);return}}}else if(typeof l>"u"||tD(e,l)){this.previouslyFocused=i,this.list.setFocus([o]),this.list.reveal(o);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class mwt{constructor(e,t){this.list=e,this.view=t,this.disposables=new be;const i=Oe.chain(this.disposables.add(new li(t.domNode,"keydown")).event,r=>r.filter(o=>!E1(o.target)).map(o=>new Ji(o)));Oe.chain(i,r=>r.filter(o=>o.keyCode===2&&!o.ctrlKey&&!o.metaKey&&!o.shiftKey&&!o.altKey))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const s=i.querySelector("[tabIndex]");if(!s||!ir(s)||s.tabIndex===-1)return;const r=ut(s).getComputedStyle(s);r.visibility==="hidden"||r.display==="none"||(e.preventDefault(),e.stopPropagation(),s.focus())}dispose(){this.disposables.dispose()}}function Jke(n){return ni?n.browserEvent.metaKey:n.browserEvent.ctrlKey}function eIe(n){return n.browserEvent.shiftKey}function _wt(n){return Dee(n)&&n.button===2}const yde={isSelectionSingleChangeEvent:Jke,isSelectionRangeChangeEvent:eIe};class tIe{constructor(e){this.list=e,this.disposables=new be,this._onPointer=new oe,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||yde),this.mouseSupport=typeof e.options.mouseSupport>"u"||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(ao.addTarget(e.getHTMLElement()))),Oe.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||yde))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){qE(e.browserEvent.target)||zr()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(E1(e.browserEvent.target)||qE(e.browserEvent.target))return;const t=typeof e.index>"u"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||E1(e.browserEvent.target)||qE(e.browserEvent.target)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;if(typeof t>"u"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),_wt(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(E1(e.browserEvent.target)||qE(e.browserEvent.target)||this.isSelectionChangeEvent(e)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){typeof i>"u"&&(i=this.list.getFocus()[0]??t,this.list.setAnchor(i));const s=Math.min(i,t),r=Math.max(i,t),o=ya(s,r+1),a=this.list.getSelection(),l=ywt(MU(a,[i]),i);if(l.length===0)return;const c=MU(o,wwt(a,l));this.list.setSelection(c,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const s=this.list.getSelection(),r=s.filter(o=>o!==t);this.list.setFocus([t]),this.list.setAnchor(t),s.length===r.length?this.list.setSelection([...r,t],e.browserEvent):this.list.setSelection(r,e.browserEvent)}}dispose(){this.disposables.dispose()}}class iIe{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){const t=this.selectorSuffix&&`.${this.selectorSuffix}`,i=[];e.listBackground&&i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`),e.listFocusBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; } + `),e.listFocusAndSelectionForeground&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; } + `),e.listInactiveFocusForeground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&i.push(`.monaco-list${t} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(i.push(`.monaco-list${t} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&i.push(`.monaco-list${t}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&i.push(`.monaco-list${t}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`);const s=Cg(e.listFocusAndSelectionOutline,Cg(e.listSelectionOutline,e.listFocusOutline??""));s&&i.push(`.monaco-list${t}:focus .monaco-list-row.focused.selected { outline: 1px solid ${s}; outline-offset: -1px;}`),e.listFocusOutline&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + .monaco-workbench.context-menu-visible .monaco-list${t}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + `);const r=Cg(e.listSelectionOutline,e.listInactiveFocusOutline??"");r&&i.push(`.monaco-list${t} .monaco-list-row.focused.selected { outline: 1px dotted ${r}; outline-offset: -1px; }`),e.listSelectionOutline&&i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listInactiveFocusOutline&&i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropOverBackground&&i.push(` + .monaco-list${t}.drop-target, + .monaco-list${t} .monaco-list-rows.drop-target, + .monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropOverBackground} !important; color: inherit !important; } + `),e.listDropBetweenBackground&&(i.push(` + .monaco-list${t} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, + .monaco-list${t} .monaco-list-row.drop-target-before::before { + content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${e.listDropBetweenBackground}; + }`),i.push(` + .monaco-list${t} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, + .monaco-list${t} .monaco-list-row.drop-target-after::after { + content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${e.listDropBetweenBackground}; + }`)),e.tableColumnsBorder&&i.push(` + .monaco-table > .monaco-split-view2, + .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: ${e.tableColumnsBorder}; + } + + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: transparent; + } + `),e.tableOddRowsBackgroundColor&&i.push(` + .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { + background-color: ${e.tableOddRowsBackgroundColor}; + } + `),this.styleElement.textContent=i.join(` +`)}}const vwt={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:Ce.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:Ce.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:Ce.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},bwt={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function ywt(n,e){const t=n.indexOf(e);if(t===-1)return[];const i=[];let s=t-1;for(;s>=0&&n[s]===e-(t-s);)i.push(n[s--]);for(i.reverse(),s=t;s<n.length&&n[s]===e+(s-t);)i.push(n[s++]);return i}function MU(n,e){const t=[];let i=0,s=0;for(;i<n.length||s<e.length;)if(i>=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){t.push(n[i]),i++,s++;continue}else n[i]<e[s]?t.push(n[i++]):t.push(e[s++]);return t}function wwt(n,e){const t=[];let i=0,s=0;for(;i<n.length||s<e.length;)if(i>=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){i++,s++;continue}else n[i]<e[s]?t.push(n[i++]):s++;return t}const wde=(n,e)=>n-e;class Cwt{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,s){let r=0;for(const o of this.renderers)o.renderElement(e,t,i[r++],s)}disposeElement(e,t,i,s){var o;let r=0;for(const a of this.renderers)(o=a.disposeElement)==null||o.call(a,e,t,i[r],s),r+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class Swt{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return{container:e,disposables:new be}}renderElement(e,t,i){const s=this.accessibilityProvider.getAriaLabel(e),r=s&&typeof s!="string"?s:Uc(s);i.disposables.add(Lt(a=>{this.setAriaLabel(a.readObservable(r),i.container)}));const o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof o=="number"?i.container.setAttribute("aria-level",`${o}`):i.container.removeAttribute("aria-level")}setAriaLabel(e,t){e?t.setAttribute("aria-label",e):t.removeAttribute("aria-label")}disposeElement(e,t,i,s){i.disposables.clear()}disposeTemplate(e){e.disposables.dispose()}}class xwt{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)==null||s.call(i,e,t)}onDragOver(e,t,i,s,r){return this.dnd.onDragOver(e,t,i,s,r)}onDragLeave(e,t,i,s){var r,o;(o=(r=this.dnd).onDragLeave)==null||o.call(r,e,t,i,s)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)==null||i.call(t,e)}drop(e,t,i,s,r){this.dnd.drop(e,t,i,s,r)}dispose(){this.dnd.dispose()}}class yc{get onDidChangeFocus(){return Oe.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return Oe.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=Oe.chain(this.disposables.add(new li(this.view.domNode,"keydown")).event,r=>r.map(o=>new Ji(o)).filter(o=>e=o.keyCode===58||o.shiftKey&&o.keyCode===68).map(o=>ci.stop(o,!0)).filter(()=>!1)),i=Oe.chain(this.disposables.add(new li(this.view.domNode,"keyup")).event,r=>r.forEach(()=>e=!1).map(o=>new Ji(o)).filter(o=>o.keyCode===58||o.shiftKey&&o.keyCode===68).map(o=>ci.stop(o,!0)).map(({browserEvent:o})=>{const a=this.getFocus(),l=a.length?a[0]:void 0,c=typeof l<"u"?this.view.element(l):void 0,u=typeof l<"u"?this.view.domElement(l):this.view.domNode;return{index:l,element:c,anchor:u,browserEvent:o}})),s=Oe.chain(this.view.onContextMenu,r=>r.filter(o=>!e).map(({element:o,index:a,browserEvent:l})=>({element:o,index:a,anchor:new Iu(ut(this.view.domNode),l),browserEvent:l})));return Oe.any(t,i,s)}get onKeyDown(){return this.disposables.add(new li(this.view.domNode,"keydown")).event}get onDidFocus(){return Oe.signal(this.disposables.add(new li(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return Oe.signal(this.disposables.add(new li(this.view.domNode,"blur",!0)).event)}constructor(e,t,i,s,r=bwt){var c,u,h;this.user=e,this._options=r,this.focus=new i4("focused"),this.anchor=new i4("anchor"),this.eventBufferer=new xN,this._ariaLabel="",this.disposables=new be,this._onDidDispose=new oe,this.onDidDispose=this._onDidDispose.event;const o=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(c=this._options.accessibilityProvider)==null?void 0:c.getWidgetRole():"list";this.selection=new hwt(o!=="listbox");const a=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=r.accessibilityProvider,this.accessibilityProvider&&(a.push(new Swt(this.accessibilityProvider)),(h=(u=this.accessibilityProvider).onDidChangeActiveDescendant)==null||h.call(u,this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map(d=>new Cwt(d.templateId,[...a,d]));const l={...r,dnd:r.dnd&&new xwt(this,r.dnd)};if(this.view=this.createListView(t,i,s,l),this.view.domNode.setAttribute("role",o),r.styleController)this.styleController=r.styleController(this.view.domId);else{const d=fc(this.view.domNode);this.styleController=new iIe(d,this.view.domId)}if(this.spliceable=new ewt([new IW(this.focus,this.view,r.identityProvider),new IW(this.selection,this.view,r.identityProvider),new IW(this.anchor,this.view,r.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new mwt(this,this.view)),(typeof r.keyboardSupport!="boolean"||r.keyboardSupport)&&(this.keyboardController=new Qke(this,this.view,r),this.disposables.add(this.keyboardController)),r.keyboardNavigationLabelProvider){const d=r.keyboardNavigationDelegate||pwt;this.typeNavigationController=new gwt(this,this.view,r.keyboardNavigationLabelProvider,r.keyboardNavigationEventFilter??(()=>!0),d),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(r),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,i,s){return new qu(e,t,i,s)}createMouseController(e){return new tIe(this)}updateOptions(e={}){var t,i;this._options={...this._options,...e},(t=this.typeNavigationController)==null||t.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),(i=this.keyboardController)==null||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new iv(this.user,`Invalid start index: ${e}`);if(t<0)throw new iv(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new iv(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e>"u"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new iv(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return Hee(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e>"u"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new iv(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,s){if(this.length===0)return;const r=this.focus.get(),o=this.findNextIndex(r.length>0?r[0]+e:0,t,s);o>-1&&this.setFocus([o],i)}focusPrevious(e=1,t=!1,i,s){if(this.length===0)return;const r=this.focus.get(),o=this.findPreviousIndex(r.length>0?r[0]-e:0,t,s);o>-1&&this.setFocus([o],i)}async focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const s=this.getFocus()[0];if(s!==i&&(s===void 0||i>s)){const r=this.findPreviousIndex(i,!1,t);r>-1&&s!==r?this.setFocus([r],e):this.setFocus([i],e)}else{const r=this.view.getScrollTop();let o=r+this.view.renderHeight;i>s&&(o-=this.view.elementHeight(i)),this.view.setScrollTop(o),this.view.getScrollTop()!==r&&(this.setFocus([]),await Uf(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t,i=()=>0){let s;const r=i(),o=this.view.getScrollTop()+r;o===0?s=this.view.indexAt(o):s=this.view.indexAfter(o-1);const a=this.getFocus()[0];if(a!==s&&(a===void 0||a>=s)){const l=this.findNextIndex(s,!1,t);l>-1&&a!==l?this.setFocus([l],e):this.setFocus([s],e)}else{const l=o;this.view.setScrollTop(o-this.view.renderHeight-r),this.view.getScrollTop()+i()!==l&&(this.setFocus([]),await Uf(0),await this.focusPreviousPage(e,t,i))}}focusLast(e,t){if(this.length===0)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(this.length===0)return;const s=this.findNextIndex(e,!1,i);s>-1&&this.setFocus([s],t)}findNextIndex(e,t=!1,i){for(let s=0;s<this.length;s++){if(e>=this.length&&!t)return-1;if(e=e%this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let s=0;s<this.length;s++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!i||i(this.element(e)))return e;e--}return-1}getFocus(){return this.focus.get()}getFocusedElements(){return this.getFocus().map(e=>this.view.element(e))}reveal(e,t,i=0){if(e<0||e>=this.length)throw new iv(this.user,`Invalid index ${e}`);const s=this.view.getScrollTop(),r=this.view.elementTop(e),o=this.view.elementHeight(e);if(t_(t)){const a=o-this.view.renderHeight+i;this.view.setScrollTop(a*$o(t,0,1)+r-i)}else{const a=r+o,l=s+this.view.renderHeight;r<s+i&&a>=l||(r<s+i||a>=l&&o>=this.view.renderHeight?this.view.setScrollTop(r-i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}}getRelativeTop(e,t=0){if(e<0||e>=this.length)throw new iv(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),s=this.view.elementTop(e),r=this.view.elementHeight(e);if(s<i+t||s+r>i+this.view.renderHeight)return null;const o=r-this.view.renderHeight+t;return Math.abs((i+t-s)/o)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var t;const e=this.focus.get();if(e.length>0){let i;(t=this.accessibilityProvider)!=null&&t.getActiveDescendantId&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(e[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(e[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle("selection-none",e.length===0),this.view.domNode.classList.toggle("selection-single",e.length===1),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}O_([gs],yc.prototype,"onDidChangeFocus",null);O_([gs],yc.prototype,"onDidChangeSelection",null);O_([gs],yc.prototype,"onContextMenu",null);O_([gs],yc.prototype,"onKeyDown",null);O_([gs],yc.prototype,"onDidFocus",null);O_([gs],yc.prototype,"onDidBlur",null);const rb=Pe,nIe="selectOption.entry.template";class Lwt{get templateId(){return nIe}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=ke(e,rb(".option-text")),t.detail=ke(e,rb(".option-detail")),t.decoratorRight=ke(e,rb(".option-decorator-right")),t}renderElement(e,t,i){const s=i,r=e.text,o=e.detail,a=e.decoratorRight,l=e.isDisabled;s.text.textContent=r,s.detail.textContent=o||"",s.decoratorRight.innerText=a||"",l?s.root.classList.add("option-disabled"):s.root.classList.remove("option-disabled")}disposeTemplate(e){}}const Wd=class Wd extends ue{constructor(e,t,i,s,r){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=s,this.selectBoxOptions=r||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=Wd.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new oe,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}setTitle(e){!this._hover&&e?this._hover=this._register(_d().setupManagedHover(ua("mouse"),this.selectElement,e)):this._hover&&this._hover.update(e)}getHeight(){return 22}getTemplateId(){return nIe}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=Pe(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=ke(this.selectDropDownContainer,rb(".select-box-details-pane"));const t=ke(this.selectDropDownContainer,rb(".select-box-dropdown-container-width-control")),i=ke(t,rb(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",ke(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=fc(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(ge(this.selectDropDownContainer,Ae.DRAG_START,s=>{ci.stop(s,!0)}))}registerListeners(){this._register(os(this.selectElement,"change",t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)})),this._register(ge(this.selectElement,Ae.CLICK,t=>{ci.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ge(this.selectElement,Ae.MOUSE_DOWN,t=>{ci.stop(t)}));let e;this._register(ge(this.selectElement,"touchstart",t=>{e=this._isVisible})),this._register(ge(this.selectElement,"touchend",t=>{ci.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ge(this.selectElement,Ae.KEY_DOWN,t=>{const i=new Ji(t);let s=!1;ni?(i.keyCode===18||i.keyCode===16||i.keyCode===10||i.keyCode===3)&&(s=!0):(i.keyCode===18&&i.altKey||i.keyCode===16&&i.altKey||i.keyCode===10||i.keyCode===3)&&(s=!0),s&&(this.showSelectDropDown(),ci.stop(t,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){In(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled)),typeof i.description=="string"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)==null||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add("select-container"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=e.join(` +`)}styleSelectElement(){const e=this.styles.selectBackground??"",t=this.styles.selectForeground??"",i=this.styles.selectBorder??"";this.selectElement.style.backgroundColor=e,this.selectElement.style.color=t,this.selectElement.style.borderColor=i}styleList(){const e=this.styles.selectBackground??"",t=Cg(this.styles.selectListBackground,e);this.selectDropDownListContainer.style.backgroundColor=t,this.selectionDetailsPane.style.backgroundColor=t;const i=this.styles.focusBorder??"";this.selectDropDownContainer.style.outlineColor=i,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,i){const s=document.createElement("option");return s.value=e,s.text=e,s.disabled=!!i,s}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(e){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{this.selectDropDownContainer.remove()}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)}),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const t=ut(this.selectElement),i=ps(this.selectElement),s=ut(this.selectElement).getComputedStyle(this.selectElement),r=parseFloat(s.getPropertyValue("--dropdown-padding-top"))+parseFloat(s.getPropertyValue("--dropdown-padding-bottom")),o=t.innerHeight-i.top-i.height-(this.selectBoxOptions.minBottomMargin||0),a=i.top-Wd.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,l=this.selectElement.offsetWidth,c=this.setWidthControlElement(this.widthControlElement),u=Math.max(c,Math.round(l)).toString()+"px";this.selectDropDownContainer.style.width=u,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let h=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const d=this._hasDetails?this._cachedMaxDetailsHeight:0,f=h+r+d,p=Math.floor((o-r-d)/this.getHeight()),g=Math.floor((a-r-d)/this.getHeight());if(e)return i.top+i.height>t.innerHeight-22||i.top<Wd.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||p<1&&g<1?!1:(p<Wd.DEFAULT_MINIMUM_VISIBLE_OPTIONS&&g>p&&this.options.length>p?(this._dropDownPosition=1,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(i.top+i.height>t.innerHeight-22||i.top<Wd.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||this._dropDownPosition===0&&p<1||this._dropDownPosition===1&&g<1)return this.hideSelectDropDown(!0),!1;if(this._dropDownPosition===0){if(this._isVisible&&p+g<1)return this.hideSelectDropDown(!0),!1;f>o&&(h=p*this.getHeight())}else f>a&&(h=g*this.getHeight());return this.selectList.layout(h),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=h+r+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=h+r+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=u,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(e){let t=0;if(e){let i=0,s=0;this.options.forEach((r,o)=>{const a=r.detail?r.detail.length:0,l=r.decoratorRight?r.decoratorRight.length:0,c=r.text.length+a+l;c>s&&(i=o,s=c)}),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+" ":""),t=Ja(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=ke(e,rb(".select-box-dropdown-list-container")),this.listRenderer=new Lwt,this.selectList=this._register(new yc("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:s=>{let r=s.text;return s.detail&&(r+=`. ${s.detail}`),s.decoratorRight&&(r+=`. ${s.decoratorRight}`),s.description&&(r+=`. ${s.description}`),r},getWidgetAriaLabel:()=>v({key:"selectBox",comment:["Behave like native select dropdown element."]},"Select Box"),getRole:()=>ni?"":"option",getWidgetRole:()=>"listbox"}})),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new li(this.selectDropDownListContainer,"keydown")),i=Oe.chain(t.event,s=>s.filter(()=>this.selectList.length>0).map(r=>new Ji(r)));this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===3))(this.onEnter,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===2))(this.onEnter,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===9))(this.onEscape,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===16))(this.onUpArrow,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===18))(this.onDownArrow,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===12))(this.onPageDown,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===11))(this.onPageUp,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===14))(this.onHome,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode===13))(this.onEnd,this)),this._register(Oe.chain(i,s=>s.filter(r=>r.keyCode>=21&&r.keyCode<=56||r.keyCode>=85&&r.keyCode<=113))(this.onCharacter,this)),this._register(ge(this.selectList.getHTMLElement(),Ae.POINTER_UP,s=>this.onPointerUp(s))),this._register(this.selectList.onMouseOver(s=>typeof s.index<"u"&&this.selectList.setFocus([s.index]))),this._register(this.selectList.onDidChangeFocus(s=>this.onListFocus(s))),this._register(ge(this.selectDropDownContainer,Ae.FOCUS_OUT,s=>{!this._isVisible||er(s.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;ci.stop(e);const t=e.target;if(!t||t.classList.contains("slider"))return;const i=t.closest(".monaco-list-row");if(!i)return;const s=Number(i.getAttribute("data-index")),r=i.classList.contains("option-disabled");s>=0&&s<this.options.length&&!r&&(this.selected=s,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)),this.hideSelectDropDown(!0))}onListBlur(){this._sticky||(this.selected!==this._currentSelection&&this.select(this._currentSelection),this.hideSelectDropDown(!1))}renderDescriptionMarkdown(e,t){const i=r=>{for(let o=0;o<r.childNodes.length;o++){const a=r.childNodes.item(o);(a.tagName&&a.tagName.toLowerCase())==="img"?a.remove():i(a)}},s=L8({value:e,supportThemeIcons:!0},{actionHandler:t});return s.element.classList.add("select-box-description-markdown"),i(s.element),s.element}onListFocus(e){!this._isVisible||!this._hasDetails||this.updateDetail(e.indexes[0])}updateDetail(e){this.selectionDetailsPane.innerText="";const t=this.options[e],i=(t==null?void 0:t.description)??"",s=(t==null?void 0:t.descriptionIsMarkdown)??!1;if(i){if(s){const r=t.descriptionMarkdownActionHandler;this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(i,r))}else this.selectionDetailsPane.innerText=i;this.selectionDetailsPane.style.display="block"}else this.selectionDetailsPane.style.display="none";this._skipLayout=!0,this.contextViewProvider.layout(),this._skipLayout=!1}onEscape(e){ci.stop(e),this.select(this._currentSelection),this.hideSelectDropDown(!0)}onEnter(e){ci.stop(e),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)),this.hideSelectDropDown(!0)}onDownArrow(e){if(this.selected<this.options.length-1){ci.stop(e,!0);const t=this.options[this.selected+1].isDisabled;if(t&&this.options.length>this.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){this.selected>0&&(ci.stop(e,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(e){ci.stop(e),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected<this.options.length-1&&(this.selected++,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onPageDown(e){ci.stop(e),this.selectList.focusNextPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(e){ci.stop(e),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){ci.stop(e),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=Up.toString(e.keyCode);let i=-1;for(let s=0;s<this.options.length-1;s++)if(i=(s+this.selected+1)%this.options.length,this.options[i].text.charAt(0).toUpperCase()===t&&!this.options[i].isDisabled){this.select(i),this.selectList.setFocus([i]),this.selectList.reveal(this.selectList.getFocus()[0]),ci.stop(e);break}}dispose(){this.hideSelectDropDown(!1),super.dispose()}};Wd.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32,Wd.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2,Wd.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3;let OU=Wd;class Ewt extends ue{constructor(e,t,i,s){super(),this.selected=0,this.selectBoxOptions=s||Object.create(null),this.options=[],this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new oe),this.styles=i,this.registerListeners(),this.setOptions(e,t)}registerListeners(){this._register(ao.addTarget(this.selectElement)),[sn.Tap].forEach(e=>{this._register(ge(this.selectElement,e,t=>{this.selectElement.focus()}))}),this._register(os(this.selectElement,"click",e=>{ci.stop(e,!0)})),this._register(os(this.selectElement,"change",e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})})),this._register(os(this.selectElement,"keydown",e=>{let t=!1;ni?(e.keyCode===18||e.keyCode===16||e.keyCode===10)&&(t=!0):(e.keyCode===18&&e.altKey||e.keyCode===10||e.keyCode===3)&&(t=!0),t&&e.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){(!this.options||!In(this.options,e))&&(this.options=e,this.selectElement.options.length=0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled))})),t!==void 0&&this.select(t)}select(e){this.options.length===0?this.selected=0:e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected<this.options.length&&typeof this.options[this.selected].text=="string"?this.selectElement.title=this.options[this.selected].text:this.selectElement.title=""}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){e.classList.add("select-container"),e.appendChild(this.selectElement),this.setOptions(this.options,this.selected),this.applyStyles()}applyStyles(){this.selectElement&&(this.selectElement.style.backgroundColor=this.styles.selectBackground??"",this.selectElement.style.color=this.styles.selectForeground??"",this.selectElement.style.borderColor=this.styles.selectBorder??"")}createOption(e,t,i){const s=document.createElement("option");return s.value=e,s.text=e,s.disabled=!!i,s}}class kwt extends bc{constructor(e,t,i,s,r){super(),ni&&!(r!=null&&r.useCustomDrawn)?this.selectBoxDelegate=new Ewt(e,t,s,r):this.selectBoxDelegate=new OU(e,t,i,s,r),this._register(this.selectBoxDelegate)}get onDidSelect(){return this.selectBoxDelegate.onDidSelect}setOptions(e,t){this.selectBoxDelegate.setOptions(e,t)}select(e){this.selectBoxDelegate.select(e)}focus(){this.selectBoxDelegate.focus()}blur(){this.selectBoxDelegate.blur()}setFocusable(e){this.selectBoxDelegate.setFocusable(e)}render(e){this.selectBoxDelegate.render(e)}}class bh extends ue{get action(){return this._action}constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof dl&&this._register(t.onDidChange(s=>{this.element&&this.handleActionChangeEvent(s)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new qy)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(ao.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,tu&&this._register(ge(e,Ae.DRAG_START,s=>{var r;return(r=s.dataTransfer)==null?void 0:r.setData(eD.TEXT,this._action.label)}))),this._register(ge(t,sn.Tap,s=>this.onClick(s,!0))),this._register(ge(t,Ae.MOUSE_DOWN,s=>{i||ci.stop(s,!0),this._action.enabled&&s.button===0&&t.classList.add("active")})),ni&&this._register(ge(t,Ae.CONTEXT_MENU,s=>{s.button===0&&s.ctrlKey===!0&&this.onClick(s)})),this._register(ge(t,Ae.CLICK,s=>{ci.stop(s,!0),this.options&&this.options.isMenu||this.onClick(s)})),this._register(ge(t,Ae.DBLCLICK,s=>{ci.stop(s,!0)})),[Ae.MOUSE_UP,Ae.MOUSE_OUT].forEach(s=>{this._register(ge(t,s,r=>{ci.stop(r),t.classList.remove("active")}))})}onClick(e,t=!1){var s;ci.stop(e,!0);const i=Kl(this._context)?(s=this.options)!=null&&s.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,i)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var t;if(!this.element)return;const e=this.getTooltip()??"";if(this.updateAriaLabel(),(t=this.options.hoverDelegate)!=null&&t.showNativeHover)this.element.title=e;else if(!this.customHover&&e!==""){const i=this.options.hoverDelegate??ua("element");this.customHover=this._store.add(_d().setupManagedHover(i,this.element,e))}else this.customHover&&this.customHover.update(e)}updateAriaLabel(){if(this.element){const e=this.getTooltip()??"";this.element.setAttribute("aria-label",e)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class ax extends bh{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=""}render(e){super.render(e),yi(this.element);const t=document.createElement("a");if(t.classList.add("action-label"),t.setAttribute("role",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding){const i=document.createElement("span");i.classList.add("keybinding"),i.textContent=this.options.keybinding,this.element.appendChild(i)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===nr.ID?"presentation":this.options.isMenu?"menuitem":this.options.isTabList?"tab":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=v({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e??void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(e=this.label)==null||e.classList.remove("codicon")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),(e=this.element)==null||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(t=this.element)==null||t.classList.add("disabled"))}updateAriaLabel(){if(this.label){const e=this.getTooltip()??"";this.label.setAttribute("aria-label",e)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.options.isTabList?this.label.setAttribute("aria-selected",this.action.checked?"true":"false"):(this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox"))):(this.label.classList.remove("checked"),this.label.removeAttribute(this.options.isTabList?"aria-selected":"aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class Iwt extends bh{constructor(e,t,i,s,r,o,a){super(e,t),this.selectBox=new kwt(i,s,r,o,a),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect(e=>this.runAction(e.selected,e.index)))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;(e=this.selectBox)==null||e.focus()}blur(){var e;(e=this.selectBox)==null||e.blur()}render(e){this.selectBox.render(e)}}class uc extends ue{constructor(e,t={}){var r,o;super(),this._actionRunnerDisposables=this._register(new be),this.viewItemDisposables=this._register(new gee),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new oe),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new oe({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new oe),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new oe),this.onWillRun=this._onWillRun.event,this.options=t,this._context=t.context??null,this._orientation=this.options.orientation??0,this._triggerKeys={keyDown:((r=this.options.triggerKeys)==null?void 0:r.keyDown)??!1,keys:((o=this.options.triggerKeys)==null?void 0:o.keys)??[3,10]},this._hoverDelegate=t.hoverDelegate??this._register(rx()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new qy,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(a=>this._onDidRun.fire(a))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(a=>this._onWillRun.fire(a))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let i,s;switch(this._orientation){case 0:i=[15],s=[17];break;case 1:i=[16],s=[18],this.domNode.className+=" vertical";break}this._register(ge(this.domNode,Ae.KEY_DOWN,a=>{const l=new Ji(a);let c=!0;const u=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;i&&(l.equals(i[0])||l.equals(i[1]))?c=this.focusPrevious():s&&(l.equals(s[0])||l.equals(s[1]))?c=this.focusNext():l.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():l.equals(14)?c=this.focusFirst():l.equals(13)?c=this.focusLast():l.equals(2)&&u instanceof bh&&u.trapsArrowNavigation?c=this.focusNext():this.isTriggerKeyEvent(l)?this._triggerKeys.keyDown?this.doTrigger(l):this.triggerKeyDown=!0:c=!1,c&&(l.preventDefault(),l.stopPropagation())})),this._register(ge(this.domNode,Ae.KEY_UP,a=>{const l=new Ji(a);this.isTriggerKeyEvent(l)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(l)),l.preventDefault(),l.stopPropagation()):(l.equals(2)||l.equals(1026)||l.equals(16)||l.equals(18)||l.equals(15)||l.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(Zh(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(zr()===this.domNode||!er(zr(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof bh&&i.isEnabled());t instanceof bh&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof bh&&t.setFocusable(!1)})}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){var e,t;for(let i=0;i<this.actionsList.children.length;i++){const s=this.actionsList.children[i];if(er(zr(),s)){this.focusedItem=i,(t=(e=this.viewItems[this.focusedItem])==null?void 0:e.showHover)==null||t.call(e);break}}}get context(){return this._context}set context(e){this._context=e,this.viewItems.forEach(t=>t.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=e)}getContainer(){return this.domNode}getAction(e){var t;if(typeof e=="number")return(t=this.viewItems[e])==null?void 0:t.action;if(ir(e)){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let i=0;i<this.actionsList.childNodes.length;i++)if(this.actionsList.childNodes[i]===e)return this.viewItems[i].action}}push(e,t={}){const i=Array.isArray(e)?e:[e];let s=t_(t.index)?t.index:null;i.forEach(r=>{const o=document.createElement("li");o.className="action-item",o.setAttribute("role","presentation");let a;const l={hoverDelegate:this._hoverDelegate,...t,isTabList:this.options.ariaRole==="tablist"};this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(r,l)),a||(a=new ax(this.context,r,l)),this.options.allowContextMenu||this.viewItemDisposables.set(a,ge(o,Ae.CONTEXT_MENU,c=>{ci.stop(c,!0)})),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(o),this.focusable&&a instanceof bh&&this.viewItems.length===0&&a.setFocusable(!0),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(o),this.viewItems.push(a)):(this.actionsList.insertBefore(o,this.actionsList.children[s]),this.viewItems.splice(s,0,a),s++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=Yi(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),kr(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e=="number"?i=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem>"u"){const s=this.viewItems.findIndex(r=>r.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===nr.ID));return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===nr.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var r,o;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((r=this.viewItems[this.previouslyFocusedItem])==null||r.blur());const s=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(s){let a=!0;gT(s.focus)||(a=!1),this.options.focusOnlyEnabledItems&&gT(s.isEnabled)&&!s.isEnabled()&&(a=!1),s.action.id===nr.ID&&(a=!1),a?(i||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),a&&((o=s.showHover)==null||o.call(s))}}doTrigger(e){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof bh){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=Yi(this.viewItems),this.getContainer().remove(),super.dispose()}}function Twt(n,e,t,i){if(n.length===0)return e;if(e.length===0)return n;const s=[];let r=0,o=0;for(;r<n.length&&o<e.length;){const a=n[r],l=e[o],c=t(a),u=t(l);c<u?(s.push(a),r++):c>u?(s.push(l),o++):(s.push(i(a,l)),r++,o++)}for(;r<n.length;)s.push(n[r]),r++;for(;o<e.length;)s.push(e[o]),o++;return s}function n4(n,e){const t=new be,i=n.createDecorationsCollection();return t.add($N({debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const r=e.read(s);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}function Yw(n,e){return n.appendChild(e),lt(()=>{e.remove()})}function Dwt(n,e){return n.prepend(e),lt(()=>{e.remove()})}class sIe extends ue{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(e,t){super(),this._automaticLayout=!1,this.elementSizeObserver=this._register(new tEe(e,t)),this._width=Gt(this,this.elementSizeObserver.getWidth()),this._height=Gt(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(i=>Un(s=>{this._width.set(this.elementSizeObserver.getWidth(),s),this._height.set(this.elementSizeObserver.getHeight(),s)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function Cde(n,e,t){let i=e.get(),s=i,r=i;const o=Gt("animatedValue",i);let a=-1;const l=300;let c;t.add(zN({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(h,d)=>(h.didChange(e)&&(d.animate=d.animate||h.change),!0)},(h,d)=>{c!==void 0&&(n.cancelAnimationFrame(c),c=void 0),s=r,i=e.read(h),a=Date.now()-(d.animate?0:l),u()}));function u(){const h=Date.now()-a;r=Math.floor(Nwt(h,s,i-s,l)),h<l?c=n.requestAnimationFrame(u):r=i,o.set(r,void 0)}return o}function Nwt(n,e,t,i){return n===i?e+t:t*(-Math.pow(2,-10*n/i)+1)+e}class tie extends ue{constructor(e,t,i){super(),this._register(new FU(e,i)),this._register(zg(i,{height:t.actualHeight,top:t.actualTop}))}}class Zw{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement("div"),this._actualTop=Gt(this,void 0),this._actualHeight=Gt(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=i=>{this._actualTop.set(i,void 0)},this.onComputedHeight=i=>{this._actualHeight.set(i,void 0)}}}const k3=class k3{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${k3._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}};k3._counter=0;let FU=k3;function zg(n,e){return Lt(t=>{for(let[i,s]of Object.entries(e))s&&typeof s=="object"&&"read"in s&&(s=s.read(t)),typeof s=="number"&&(s=`${s}px`),i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase()),n.style[i]=s})}function s4(n,e,t,i){const s=new be,r=[];return s.add(Na((o,a)=>{const l=e.read(o),c=new Map,u=new Map;t&&t(!0),n.changeViewZones(h=>{for(const d of r)h.removeZone(d),i==null||i.delete(d);r.length=0;for(const d of l){const f=h.addZone(d);d.setZoneId&&d.setZoneId(f),r.push(f),i==null||i.add(f),c.set(d,f)}}),t&&t(!1),a.add(zN({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(h,d){const f=u.get(h.changedObservable);return f!==void 0&&d.zoneIds.push(f),!0}},(h,d)=>{for(const f of l)f.onChange&&(u.set(f.onChange,c.get(f)),f.onChange.read(h));t&&t(!0),n.changeViewZones(f=>{for(const p of d.zoneIds)f.layoutZone(p)}),t&&t(!1)}))})),s.add({dispose(){t&&t(!0),n.changeViewZones(o=>{for(const a of r)o.removeZone(a)}),i==null||i.clear(),t&&t(!1)}}),s}class Awt extends Wn{dispose(){super.dispose(!0)}}function Sde(n,e){const t=HT(e,s=>s.original.startLineNumber<=n.lineNumber);if(!t)return O.fromPositions(n);if(t.original.endLineNumberExclusive<=n.lineNumber){const s=n.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return O.fromPositions(new se(s,n.column))}if(!t.innerChanges)return O.fromPositions(new se(t.modified.startLineNumber,1));const i=HT(t.innerChanges,s=>s.originalRange.getStartPosition().isBeforeOrEqual(n));if(!i){const s=n.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return O.fromPositions(new se(s,n.column))}if(i.originalRange.containsPosition(n))return i.modifiedRange;{const s=Pwt(i.originalRange.getEndPosition(),n);return O.fromPositions(s.addToPosition(i.modifiedRange.getEndPosition()))}}function Pwt(n,e){return n.lineNumber===e.lineNumber?new ju(0,e.column-n.column):new ju(e.lineNumber-n.lineNumber,e.column-1)}function Rwt(n,e){let t;return n.filter(i=>{const s=e(i,t);return t=i,s})}class r4{static create(e,t=void 0){return new xde(e,e,t)}static createWithDisposable(e,t,i=void 0){const s=new be;return s.add(t),s.add(e),new xde(e,s,i)}}class xde extends r4{constructor(e,t,i){super(),this.object=e,this._disposable=t,this._debugOwner=i,this._refCount=1,this._isDisposed=!1,this._owners=[],i&&this._addOwner(i)}_addOwner(e){e&&this._owners.push(e)}createNewRef(e){return this._refCount++,e&&this._addOwner(e),new Mwt(this,e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(e){if(this._refCount--,this._refCount===0&&this._disposable.dispose(),e){const t=this._owners.indexOf(e);t!==-1&&this._owners.splice(t,1)}}}class Mwt extends r4{constructor(e,t){super(),this._base=e,this._debugOwner=t,this._isDisposed=!1}get object(){return this._base.object}createNewRef(e){return this._base.createNewRef(e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._base._decreaseRefCount(this._debugOwner))}}class Owt{constructor(e){this.text=e,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)===` +`&&this.lineStartOffsetByLineIdx.push(t+1)}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}getOffsetRange(e){return new Yt(this.getOffset(e.getStartPosition()),this.getOffset(e.getEndPosition()))}get textLength(){const e=this.lineStartOffsetByLineIdx.length-1;return new ju(e,this.text.length-this.lineStartOffsetByLineIdx[e])}}class iie{constructor(e){this.edits=e,Ky(()=>Pee(e,(t,i)=>t.range.getEndPosition().isBeforeOrEqual(i.range.getStartPosition())))}apply(e){let t="",i=new se(1,1);for(const r of this.edits){const o=r.range,a=o.getStartPosition(),l=o.getEndPosition(),c=Lde(i,a);c.isEmpty()||(t+=e.getValueOfRange(c)),t+=r.text,i=l}const s=Lde(i,e.endPositionExclusive);return s.isEmpty()||(t+=e.getValueOfRange(s)),t}applyToString(e){const t=new Fwt(e);return this.apply(t)}getNewRanges(){const e=[];let t=0,i=0,s=0;for(const r of this.edits){const o=ju.ofText(r.text),a=se.lift({lineNumber:r.range.startLineNumber+i,column:r.range.startColumn+(r.range.startLineNumber===t?s:0)}),l=o.createRange(a);e.push(l),i=l.endLineNumber-r.range.endLineNumber,s=l.endColumn-r.range.endColumn,t=r.range.endLineNumber}return e}}class Xf{constructor(e,t){this.range=e,this.text=t}toSingleEditOperation(){return{range:this.range,text:this.text}}}function Lde(n,e){if(n.lineNumber===e.lineNumber&&n.column===Number.MAX_SAFE_INTEGER)return O.fromPositions(e,e);if(!n.isBeforeOrEqual(e))throw new Li("start must be before end");return new O(n.lineNumber,n.column,e.lineNumber,e.column)}class rIe{get endPositionExclusive(){return this.length.addToPosition(new se(1,1))}}class Fwt extends rIe{constructor(e){super(),this.value=e,this._t=new Owt(this.value)}getValueOfRange(e){return this._t.getOffsetRange(e).substring(this.value)}get length(){return this._t.textLength}}class Co{static inverse(e,t,i){const s=[];let r=1,o=1;for(const l of e){const c=new Co(new xt(r,l.original.startLineNumber),new xt(o,l.modified.startLineNumber));c.modified.isEmpty||s.push(c),r=l.original.endLineNumberExclusive,o=l.modified.endLineNumberExclusive}const a=new Co(new xt(r,t+1),new xt(o,i+1));return a.modified.isEmpty||s.push(a),s}static clip(e,t,i){const s=[];for(const r of e){const o=r.original.intersect(t),a=r.modified.intersect(i);o&&!o.isEmpty&&a&&!a.isEmpty&&s.push(new Co(o,a))}return s}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new Co(this.modified,this.original)}join(e){return new Co(this.original.join(e.original),this.modified.join(e.modified))}toRangeMapping(){const e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new Ul(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new Li("not a valid diff");return new Ul(new O(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new O(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new Ul(new O(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new O(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,t){if(Ede(this.original.endLineNumberExclusive,e)&&Ede(this.modified.endLineNumberExclusive,t))return new Ul(new O(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new O(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new Ul(O.fromPositions(new se(this.original.startLineNumber,1),lw(new se(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),O.fromPositions(new se(this.modified.startLineNumber,1),lw(new se(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new Ul(O.fromPositions(lw(new se(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),lw(new se(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),O.fromPositions(lw(new se(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),lw(new se(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));throw new Li}}function lw(n,e){if(n.lineNumber<1)return new se(1,1);if(n.lineNumber>e.length)return new se(e.length,e[e.length-1].length+1);const t=e[n.lineNumber-1];return n.column>t.length+1?new se(n.lineNumber,t.length+1):n}function Ede(n,e){return n>=1&&n<=e.length}class hc extends Co{static fromRangeMappings(e){const t=xt.join(e.map(s=>xt.fromRangeInclusive(s.originalRange))),i=xt.join(e.map(s=>xt.fromRangeInclusive(s.modifiedRange)));return new hc(t,i,e)}constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new hc(this.modified,this.original,(e=this.innerChanges)==null?void 0:e.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new hc(this.original,this.modified,[this.toRangeMapping()])}}class Ul{static assertSorted(e){for(let t=1;t<e.length;t++){const i=e[t-1],s=e[t];if(!(i.originalRange.getEndPosition().isBeforeOrEqual(s.originalRange.getStartPosition())&&i.modifiedRange.getEndPosition().isBeforeOrEqual(s.modifiedRange.getStartPosition())))throw new Li("Range mappings must be sorted")}}constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new Ul(this.modifiedRange,this.originalRange)}toTextEdit(e){const t=e.getValueOfRange(this.modifiedRange);return new Xf(this.originalRange,t)}}const F_=ri("accessibilitySignalService"),Ci=class Ci{static register(e){return new Ci(e.fileName)}constructor(e){this.fileName=e}};Ci.error=Ci.register({fileName:"error.mp3"}),Ci.warning=Ci.register({fileName:"warning.mp3"}),Ci.success=Ci.register({fileName:"success.mp3"}),Ci.foldedArea=Ci.register({fileName:"foldedAreas.mp3"}),Ci.break=Ci.register({fileName:"break.mp3"}),Ci.quickFixes=Ci.register({fileName:"quickFixes.mp3"}),Ci.taskCompleted=Ci.register({fileName:"taskCompleted.mp3"}),Ci.taskFailed=Ci.register({fileName:"taskFailed.mp3"}),Ci.terminalBell=Ci.register({fileName:"terminalBell.mp3"}),Ci.diffLineInserted=Ci.register({fileName:"diffLineInserted.mp3"}),Ci.diffLineDeleted=Ci.register({fileName:"diffLineDeleted.mp3"}),Ci.diffLineModified=Ci.register({fileName:"diffLineModified.mp3"}),Ci.chatRequestSent=Ci.register({fileName:"chatRequestSent.mp3"}),Ci.chatResponseReceived1=Ci.register({fileName:"chatResponseReceived1.mp3"}),Ci.chatResponseReceived2=Ci.register({fileName:"chatResponseReceived2.mp3"}),Ci.chatResponseReceived3=Ci.register({fileName:"chatResponseReceived3.mp3"}),Ci.chatResponseReceived4=Ci.register({fileName:"chatResponseReceived4.mp3"}),Ci.clear=Ci.register({fileName:"clear.mp3"}),Ci.save=Ci.register({fileName:"save.mp3"}),Ci.format=Ci.register({fileName:"format.mp3"}),Ci.voiceRecordingStarted=Ci.register({fileName:"voiceRecordingStarted.mp3"}),Ci.voiceRecordingStopped=Ci.register({fileName:"voiceRecordingStopped.mp3"}),Ci.progress=Ci.register({fileName:"progress.mp3"});let En=Ci;class Bwt{constructor(e){this.randomOneOf=e}}const qt=class qt{constructor(e,t,i,s,r,o){this.sound=e,this.name=t,this.legacySoundSettingsKey=i,this.settingsKey=s,this.legacyAnnouncementSettingsKey=r,this.announcementMessage=o}static register(e){const t=new Bwt("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),i=new qt(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage);return qt._signals.add(i),i}};qt._signals=new Set,qt.errorAtPosition=qt.register({name:v("accessibilitySignals.positionHasError.name","Error at Position"),sound:En.error,announcementMessage:v("accessibility.signals.positionHasError","Error"),settingsKey:"accessibility.signals.positionHasError",delaySettingsKey:"accessibility.signalOptions.delays.errorAtPosition"}),qt.warningAtPosition=qt.register({name:v("accessibilitySignals.positionHasWarning.name","Warning at Position"),sound:En.warning,announcementMessage:v("accessibility.signals.positionHasWarning","Warning"),settingsKey:"accessibility.signals.positionHasWarning",delaySettingsKey:"accessibility.signalOptions.delays.warningAtPosition"}),qt.errorOnLine=qt.register({name:v("accessibilitySignals.lineHasError.name","Error on Line"),sound:En.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:v("accessibility.signals.lineHasError","Error on Line"),settingsKey:"accessibility.signals.lineHasError"}),qt.warningOnLine=qt.register({name:v("accessibilitySignals.lineHasWarning.name","Warning on Line"),sound:En.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:v("accessibility.signals.lineHasWarning","Warning on Line"),settingsKey:"accessibility.signals.lineHasWarning"}),qt.foldedArea=qt.register({name:v("accessibilitySignals.lineHasFoldedArea.name","Folded Area on Line"),sound:En.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:v("accessibility.signals.lineHasFoldedArea","Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"}),qt.break=qt.register({name:v("accessibilitySignals.lineHasBreakpoint.name","Breakpoint on Line"),sound:En.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:v("accessibility.signals.lineHasBreakpoint","Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"}),qt.inlineSuggestion=qt.register({name:v("accessibilitySignals.lineHasInlineSuggestion.name","Inline Suggestion on Line"),sound:En.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"}),qt.terminalQuickFix=qt.register({name:v("accessibilitySignals.terminalQuickFix.name","Terminal Quick Fix"),sound:En.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:v("accessibility.signals.terminalQuickFix","Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"}),qt.onDebugBreak=qt.register({name:v("accessibilitySignals.onDebugBreak.name","Debugger Stopped on Breakpoint"),sound:En.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:v("accessibility.signals.onDebugBreak","Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"}),qt.noInlayHints=qt.register({name:v("accessibilitySignals.noInlayHints","No Inlay Hints on Line"),sound:En.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:v("accessibility.signals.noInlayHints","No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"}),qt.taskCompleted=qt.register({name:v("accessibilitySignals.taskCompleted","Task Completed"),sound:En.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:v("accessibility.signals.taskCompleted","Task Completed"),settingsKey:"accessibility.signals.taskCompleted"}),qt.taskFailed=qt.register({name:v("accessibilitySignals.taskFailed","Task Failed"),sound:En.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:v("accessibility.signals.taskFailed","Task Failed"),settingsKey:"accessibility.signals.taskFailed"}),qt.terminalCommandFailed=qt.register({name:v("accessibilitySignals.terminalCommandFailed","Terminal Command Failed"),sound:En.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:v("accessibility.signals.terminalCommandFailed","Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"}),qt.terminalCommandSucceeded=qt.register({name:v("accessibilitySignals.terminalCommandSucceeded","Terminal Command Succeeded"),sound:En.success,announcementMessage:v("accessibility.signals.terminalCommandSucceeded","Command Succeeded"),settingsKey:"accessibility.signals.terminalCommandSucceeded"}),qt.terminalBell=qt.register({name:v("accessibilitySignals.terminalBell","Terminal Bell"),sound:En.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:v("accessibility.signals.terminalBell","Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"}),qt.notebookCellCompleted=qt.register({name:v("accessibilitySignals.notebookCellCompleted","Notebook Cell Completed"),sound:En.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:v("accessibility.signals.notebookCellCompleted","Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"}),qt.notebookCellFailed=qt.register({name:v("accessibilitySignals.notebookCellFailed","Notebook Cell Failed"),sound:En.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:v("accessibility.signals.notebookCellFailed","Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"}),qt.diffLineInserted=qt.register({name:v("accessibilitySignals.diffLineInserted","Diff Line Inserted"),sound:En.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"}),qt.diffLineDeleted=qt.register({name:v("accessibilitySignals.diffLineDeleted","Diff Line Deleted"),sound:En.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"}),qt.diffLineModified=qt.register({name:v("accessibilitySignals.diffLineModified","Diff Line Modified"),sound:En.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"}),qt.chatRequestSent=qt.register({name:v("accessibilitySignals.chatRequestSent","Chat Request Sent"),sound:En.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:v("accessibility.signals.chatRequestSent","Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"}),qt.chatResponseReceived=qt.register({name:v("accessibilitySignals.chatResponseReceived","Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[En.chatResponseReceived1,En.chatResponseReceived2,En.chatResponseReceived3,En.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"}),qt.progress=qt.register({name:v("accessibilitySignals.progress","Progress"),sound:En.progress,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.progress",announcementMessage:v("accessibility.signals.progress","Progress"),settingsKey:"accessibility.signals.progress"}),qt.clear=qt.register({name:v("accessibilitySignals.clear","Clear"),sound:En.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:v("accessibility.signals.clear","Clear"),settingsKey:"accessibility.signals.clear"}),qt.save=qt.register({name:v("accessibilitySignals.save","Save"),sound:En.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:v("accessibility.signals.save","Save"),settingsKey:"accessibility.signals.save"}),qt.format=qt.register({name:v("accessibilitySignals.format","Format"),sound:En.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:v("accessibility.signals.format","Format"),settingsKey:"accessibility.signals.format"}),qt.voiceRecordingStarted=qt.register({name:v("accessibilitySignals.voiceRecordingStarted","Voice Recording Started"),sound:En.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"}),qt.voiceRecordingStopped=qt.register({name:v("accessibilitySignals.voiceRecordingStopped","Voice Recording Stopped"),sound:En.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"});let jl=qt;const Wwt={IconContribution:"base.contributions.icons"};var kde;(function(n){function e(t,i){let s=t.defaults;for(;ft.isThemeIcon(s);){const r=R0.getIcon(s.id);if(!r)return;s=r.defaults}return s}n.getDefinition=e})(kde||(kde={}));var Ide;(function(n){function e(i){return{weight:i.weight,style:i.style,src:i.src.map(s=>({format:s.format,location:s.location.toString()}))}}n.toJSONObject=e;function t(i){const s=r=>Da(r)?r:void 0;if(i&&Array.isArray(i.src)&&i.src.every(r=>Da(r.format)&&Da(r.location)))return{weight:s(i.weight),style:s(i.style),src:i.src.map(r=>({format:r.format,location:mt.parse(r.location)}))}}n.fromJSONObject=t})(Ide||(Ide={}));class Vwt{constructor(){this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:v("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:v("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${ft.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,s){const r=this.iconsById[e];if(r){if(i&&!r.description){r.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return r}const o={id:e,description:i,defaults:t,deprecationMessage:s};this.iconsById[e]=o;const a={$ref:"#/definitions/icons"};return s&&(a.deprecationMessage=s),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(r,o)=>r.id.localeCompare(o.id),t=r=>{for(;ft.isThemeIcon(r.defaults);)r=this.iconsById[r.defaults.id];return`codicon codicon-${r?r.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const s=Object.keys(this.iconsById).map(r=>this.iconsById[r]);for(const r of s.filter(o=>!!o.description).sort(e))i.push(`|<i class="${t(r)}"></i>|${r.id}|${ft.isThemeIcon(r.defaults)?r.defaults.id:r.id}|${r.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const r of s.filter(o=>!ft.isThemeIcon(o.defaults)).sort(e))i.push(`|<i class="${t(r)}"></i>|${r.id}|`);return i.join(` +`)}}const R0=new Vwt;Vn.add(Wwt.IconContribution,R0);function _n(n,e,t,i){return R0.registerIcon(n,e,t,i)}function oIe(){return R0}function Hwt(){const n=yLe();for(const e in n){const t="\\"+n[e].toString(16);R0.registerIcon(e,{fontCharacter:t})}}Hwt();const aIe="vscode://schemas/icons",lIe=Vn.as(QB.JSONContribution);lIe.registerSchema(aIe,R0.getIconSchema());const Tde=new ji(()=>lIe.notifySchemaChanged(aIe),200);R0.onDidChange(()=>{Tde.isScheduled()||Tde.schedule()});const cIe=_n("widget-close",Ne.close,v("widgetClose","Icon for the close action in widgets."));_n("goto-previous-location",Ne.arrowUp,v("previousChangeIcon","Icon for goto previous editor location."));_n("goto-next-location",Ne.arrowDown,v("nextChangeIcon","Icon for goto next editor location."));ft.modify(Ne.sync,"spin");ft.modify(Ne.loading,"spin");var nie=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sie=function(n,e){return function(t,i){e(t,i,n)}};const $wt=_n("diff-review-insert",Ne.add,v("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),zwt=_n("diff-review-remove",Ne.remove,v("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),Uwt=_n("diff-review-close",Ne.close,v("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer."));var cS;let ob=(cS=class extends ue{constructor(e,t,i,s,r,o,a,l,c){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=s,this._width=r,this._height=o,this._diffs=a,this._models=l,this._instantiationService=c,this._state=R_(this,(u,h)=>{const d=this._visible.read(u);if(this._parentNode.style.visibility=d?"visible":"hidden",!d)return null;const f=h.add(this._instantiationService.createInstance(BU,this._diffs,this._models,this._setVisible,this._canClose)),p=h.add(this._instantiationService.createInstance(WU,this._parentNode,f,this._width,this._height,this._models));return{model:f,view:p}}).recomputeInitiallyAndOnChange(this._store)}next(){Un(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){Un(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){Un(e=>{this._setVisible(!1,e)})}},cS._ttPolicy=tm("diffReview",{createHTML:e=>e}),cS);ob=nie([sie(8,ct)],ob);let BU=class extends ue{constructor(e,t,i,s,r){super(),this._diffs=e,this._models=t,this._setVisible=i,this.canClose=s,this._accessibilitySignalService=r,this._groups=Gt(this,[]),this._currentGroupIdx=Gt(this,0),this._currentElementIdx=Gt(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((o,a)=>this._groups.read(a)[o]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((o,a)=>{var l;return(l=this.currentGroup.read(a))==null?void 0:l.lines[o]}),this._register(Lt(o=>{const a=this._diffs.read(o);if(!a){this._groups.set([],void 0);return}const l=jwt(a,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());Un(c=>{const u=this._models.getModifiedPosition();if(u){const h=l.findIndex(d=>(u==null?void 0:u.lineNumber)<d.range.modified.endLineNumberExclusive);h!==-1&&this._currentGroupIdx.set(h,c)}this._groups.set(l,c)})})),this._register(Lt(o=>{const a=this.currentElement.read(o);(a==null?void 0:a.type)===Uo.Deleted?this._accessibilitySignalService.playSignal(jl.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(a==null?void 0:a.type)===Uo.Added&&this._accessibilitySignalService.playSignal(jl.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register(Lt(o=>{const a=this.currentElement.read(o);if(a&&a.type!==Uo.Header){const l=a.modifiedLineNumber??a.diff.modified.startLineNumber;this._models.modifiedSetSelection(O.fromPositions(new se(l,1)))}}))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||Yy(t,s=>{this._currentGroupIdx.set(Yt.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),s),this._currentElementIdx.set(0,s)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||Un(i=>{this._currentElementIdx.set(Yt.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);i!==-1&&Un(s=>{this._currentElementIdx.set(i,s)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===Uo.Deleted?this._models.originalReveal(O.fromPositions(new se(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==Uo.Header?O.fromPositions(new se(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};BU=nie([sie(4,F_)],BU);const fE=3;function jwt(n,e,t){const i=[];for(const s of Vee(n,(r,o)=>o.modified.startLineNumber-r.modified.endLineNumberExclusive<2*fE)){const r=[];r.push(new Kwt);const o=new xt(Math.max(1,s[0].original.startLineNumber-fE),Math.min(s[s.length-1].original.endLineNumberExclusive+fE,e+1)),a=new xt(Math.max(1,s[0].modified.startLineNumber-fE),Math.min(s[s.length-1].modified.endLineNumberExclusive+fE,t+1));PLe(s,(u,h)=>{const d=new xt(u?u.original.endLineNumberExclusive:o.startLineNumber,h?h.original.startLineNumber:o.endLineNumberExclusive),f=new xt(u?u.modified.endLineNumberExclusive:a.startLineNumber,h?h.modified.startLineNumber:a.endLineNumberExclusive);d.forEach(p=>{r.push(new Ywt(p,f.startLineNumber+(p-d.startLineNumber)))}),h&&(h.original.forEach(p=>{r.push(new Gwt(h,p))}),h.modified.forEach(p=>{r.push(new Xwt(h,p))}))});const l=s[0].modified.join(s[s.length-1].modified),c=s[0].original.join(s[s.length-1].original);i.push(new qwt(new Co(l,c),r))}return i}var Uo;(function(n){n[n.Header=0]="Header",n[n.Unchanged=1]="Unchanged",n[n.Deleted=2]="Deleted",n[n.Added=3]="Added"})(Uo||(Uo={}));class qwt{constructor(e,t){this.range=e,this.lines=t}}class Kwt{constructor(){this.type=Uo.Header}}class Gwt{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=Uo.Deleted,this.modifiedLineNumber=void 0}}class Xwt{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=Uo.Added,this.originalLineNumber=void 0}}class Ywt{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=Uo.Unchanged}}let WU=class extends ue{constructor(e,t,i,s,r,o){super(),this._element=e,this._model=t,this._width=i,this._height=s,this._models=r,this._languageService=o,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const a=document.createElement("div");a.className="diff-review-actions",this._actionBar=this._register(new uc(a)),this._register(Lt(l=>{this._actionBar.clear(),this._model.canClose.read(l)&&this._actionBar.push(new dl("diffreview.close",v("label.close","Close"),"close-diff-review "+ft.asClassName(Uwt),!0,async()=>t.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new ON(this._content,{})),Ir(this.domNode,this._scrollbar.getDomNode(),a),this._register(Lt(l=>{this._height.read(l),this._width.read(l),this._scrollbar.scanDomNode()})),this._register(lt(()=>{Ir(this.domNode)})),this._register(zg(this.domNode,{width:this._width,height:this._height})),this._register(zg(this._content,{width:this._width,height:this._height})),this._register(Na((l,c)=>{this._model.currentGroup.read(l),this._render(c)})),this._register(os(this.domNode,"keydown",l=>{(l.equals(18)||l.equals(2066)||l.equals(530))&&(l.preventDefault(),this._model.goToNextLine()),(l.equals(16)||l.equals(2064)||l.equals(528))&&(l.preventDefault(),this._model.goToPreviousLine()),(l.equals(9)||l.equals(2057)||l.equals(521)||l.equals(1033))&&(l.preventDefault(),this._model.close()),(l.equals(10)||l.equals(3))&&(l.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._models.getOriginalOptions(),i=this._models.getModifiedOptions(),s=document.createElement("div");s.className="diff-review-table",s.setAttribute("role","list"),s.setAttribute("aria-label",v("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),Tr(s,i.get(50)),Ir(this._content,s);const r=this._models.getOriginalModel(),o=this._models.getModifiedModel();if(!r||!o)return;const a=r.getOptions(),l=o.getOptions(),c=i.get(67),u=this._model.currentGroup.get();for(const h of(u==null?void 0:u.lines)||[]){if(!u)break;let d;if(h.type===Uo.Header){const p=document.createElement("div");p.className="diff-review-row",p.setAttribute("role","listitem");const g=u.range,m=this._model.currentGroupIndex.get(),_=this._model.groups.get().length,b=x=>x===0?v("no_lines_changed","no lines changed"):x===1?v("one_line_changed","1 line changed"):v("more_lines_changed","{0} lines changed",x),w=b(g.original.length),C=b(g.modified.length);p.setAttribute("aria-label",v({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",m+1,_,g.original.startLineNumber,w,g.modified.startLineNumber,C));const S=document.createElement("div");S.className="diff-review-cell diff-review-summary",S.appendChild(document.createTextNode(`${m+1}/${_}: @@ -${g.original.startLineNumber},${g.original.length} +${g.modified.startLineNumber},${g.modified.length} @@`)),p.appendChild(S),d=p}else d=this._createRow(h,c,this._width.get(),t,r,a,i,o,l);s.appendChild(d);const f=ot(p=>this._model.currentElement.read(p)===h);e.add(Lt(p=>{const g=f.read(p);d.tabIndex=g?0:-1,g&&d.focus()})),e.add(ge(d,"focus",()=>{this._model.goToLine(h)}))}this._scrollbar.scanDomNode()}_createRow(e,t,i,s,r,o,a,l,c){const u=s.get(146),h=u.glyphMarginWidth+u.lineNumbersWidth,d=a.get(146),f=10+d.glyphMarginWidth+d.lineNumbersWidth;let p="diff-review-row",g="";const m="diff-review-spacer";let _=null;switch(e.type){case Uo.Added:p="diff-review-row line-insert",g=" char-insert",_=$wt;break;case Uo.Deleted:p="diff-review-row line-delete",g=" char-delete",_=zwt;break}const b=document.createElement("div");b.style.minWidth=i+"px",b.className=p,b.setAttribute("role","listitem"),b.ariaLevel="";const w=document.createElement("div");w.className="diff-review-cell",w.style.height=`${t}px`,b.appendChild(w);const C=document.createElement("span");C.style.width=h+"px",C.style.minWidth=h+"px",C.className="diff-review-line-number"+g,e.originalLineNumber!==void 0?C.appendChild(document.createTextNode(String(e.originalLineNumber))):C.innerText=" ",w.appendChild(C);const S=document.createElement("span");S.style.width=f+"px",S.style.minWidth=f+"px",S.style.paddingRight="10px",S.className="diff-review-line-number"+g,e.modifiedLineNumber!==void 0?S.appendChild(document.createTextNode(String(e.modifiedLineNumber))):S.innerText=" ",w.appendChild(S);const x=document.createElement("span");if(x.className=m,_){const E=document.createElement("span");E.className=ft.asClassName(_),E.innerText="  ",x.appendChild(E)}else x.innerText="  ";w.appendChild(x);let k;if(e.modifiedLineNumber!==void 0){let E=this._getLineHtml(l,a,c.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);ob._ttPolicy&&(E=ob._ttPolicy.createHTML(E)),w.insertAdjacentHTML("beforeend",E),k=l.getLineContent(e.modifiedLineNumber)}else{let E=this._getLineHtml(r,s,o.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);ob._ttPolicy&&(E=ob._ttPolicy.createHTML(E)),w.insertAdjacentHTML("beforeend",E),k=r.getLineContent(e.originalLineNumber)}k.length===0&&(k=v("blankLine","blank"));let L="";switch(e.type){case Uo.Unchanged:e.originalLineNumber===e.modifiedLineNumber?L=v({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",k,e.originalLineNumber):L=v("equalLine","{0} original line {1} modified line {2}",k,e.originalLineNumber,e.modifiedLineNumber);break;case Uo.Added:L=v("insertLine","+ {0} modified line {1}",k,e.modifiedLineNumber);break;case Uo.Deleted:L=v("deleteLine","- {0} original line {1}",k,e.originalLineNumber);break}return b.setAttribute("aria-label",L),b}_getLineHtml(e,t,i,s,r){const o=e.getLineContent(s),a=t.get(50),l=Kr.createEmpty(o,r),c=pc.isBasicASCII(o,e.mightContainNonBasicASCII()),u=pc.containsRTL(o,c,e.mightContainRTL());return h8(new P_(a.isMonospace&&!t.get(33),a.canUseHalfwidthRightwardsArrow,o,!1,c,u,0,l,[],i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,t.get(118),t.get(100),t.get(95),t.get(51)!==c_.OFF,null)).html}};WU=nie([sie(5,Dn)],WU);class Zwt{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){return this.editors.modified.getPosition()??void 0}}U("diffEditor.move.border","#8b8b8b9c",v("diffEditor.move.border","The border color for text that got moved in the diff editor."));U("diffEditor.moveActive.border","#FFA500",v("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor."));U("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},v("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));const Qwt=_n("diff-insert",Ne.add,v("diffInsertIcon","Line decoration for inserts in the diff editor.")),uIe=_n("diff-remove",Ne.remove,v("diffRemoveIcon","Line decoration for removals in the diff editor.")),o4=At.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+ft.asClassName(Qwt),marginClassName:"gutter-insert"}),rD=At.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+ft.asClassName(uIe),marginClassName:"gutter-delete"}),Dde=At.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),Nde=At.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),a4=At.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),rie=At.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),oie=At.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),lx=At.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),aie=At.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),lie=At.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"}),lu=ri("editorWorkerService");var hIe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},VU=function(n,e){return function(t,i){e(t,i,n)}},bv;const GN=ri("diffProviderFactoryService");let HU=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance($U,e)}};HU=hIe([VU(0,ct)],HU);fi(GN,HU,1);var Rb;let $U=(Rb=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new oe,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;(e=this.diffAlgorithmOnDidChangeSubscription)==null||e.dispose()}async computeDiff(e,t,i,s){if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(e,t,i,s);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return t.getLineCount()===1&&t.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new hc(new xt(1,2),new xt(1,t.getLineCount()+1),[new Ul(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const r=JSON.stringify([e.uri.toString(),t.uri.toString()]),o=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),a=bv.diffCache.get(r);if(a&&a.context===o)return a.result;const l=Nr.create(),c=await this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),u=l.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:u,timedOut:(c==null?void 0:c.quitEarly)??!0,detectedMoves:i.computeMoves?(c==null?void 0:c.moves.length)??0:-1}),s.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!c)throw new Error("no diff result available");return bv.diffCache.size>10&&bv.diffCache.delete(bv.diffCache.keys().next().value),bv.diffCache.set(r,{result:c,context:o}),c}setOptions(e){var i;let t=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((i=this.diffAlgorithmOnDidChangeSubscription)==null||i.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),t=!0),t&&this.onDidChangeEventEmitter.fire()}},bv=Rb,Rb.diffCache=new Map,Rb);$U=bv=hIe([VU(1,lu),VU(2,Ro)],$U);function E8(){return cz&&!!cz.VSCODE_DEV}function dIe(n){if(E8()){const e=Jwt();return e.add(n),{dispose(){e.delete(n)}}}else return{dispose(){}}}function Jwt(){TP||(TP=new Set);const n=globalThis;return n.$hotReload_applyNewExports||(n.$hotReload_applyNewExports=e=>{const t={config:{mode:void 0},...e},i=[];for(const s of TP){const r=s(t);r&&i.push(r)}if(i.length>0)return s=>{let r=!1;for(const o of i)o(s)&&(r=!0);return r}}),TP}let TP;E8()&&dIe(({oldExports:n,newSrc:e,config:t})=>{if(t.mode==="patch-prototype")return i=>{var s,r;for(const o in i){const a=i[o];if(console.log(`[hot-reload] Patching prototype methods of '${o}'`,{exportedItem:a}),typeof a=="function"&&a.prototype){const l=n[o];if(l){for(const c of Object.getOwnPropertyNames(a.prototype)){const u=Object.getOwnPropertyDescriptor(a.prototype,c),h=Object.getOwnPropertyDescriptor(l.prototype,c);((s=u==null?void 0:u.value)==null?void 0:s.toString())!==((r=h==null?void 0:h.value)==null?void 0:r.toString())&&console.log(`[hot-reload] Patching prototype method '${o}.${c}'`),Object.defineProperty(l.prototype,c,u)}i[o]=l}}}return!0}});function el(n,e){return eCt([n],e),n}function eCt(n,e){E8()&&Vr("reload",i=>dIe(({oldExports:s})=>{if([...Object.values(s)].some(r=>n.includes(r)))return r=>(i(void 0),!0)})).read(e)}class xg{static trivial(e,t){return new xg([new Qs(Yt.ofLength(e.length),Yt.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new xg([new Qs(Yt.ofLength(e.length),Yt.ofLength(t.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}}class Qs{static invert(e,t){const i=[];return PLe(e,(s,r)=>{i.push(Qs.fromOffsetPairs(s?s.getEndExclusives():ag.zero,r?r.getStarts():new ag(t,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+t)))}),i}static fromOffsetPairs(e,t){return new Qs(new Yt(e.offset1,t.offset1),new Yt(e.offset2,t.offset2))}static assertSorted(e){let t;for(const i of e){if(t&&!(t.seq1Range.endExclusive<=i.seq1Range.start&&t.seq2Range.endExclusive<=i.seq2Range.start))throw new Li("Sequence diffs must be sorted");t=i}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new Qs(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new Qs(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new Qs(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new Qs(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new Qs(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(!(!t||!i))return new Qs(t,i)}getStarts(){return new ag(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new ag(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}const jv=class jv{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new jv(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}};jv.zero=new jv(0,0),jv.max=new jv(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let ag=jv;const I3=class I3{isValid(){return!0}};I3.instance=new I3;let oD=I3;class tCt{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new Li("timeout must be positive")}isValid(){if(!(Date.now()-this.startTime<this.timeout)&&this.valid){this.valid=!1;debugger}return this.valid}}class TW{constructor(e,t){this.width=e,this.height=t,this.array=[],this.array=new Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,i){this.array[e+t*this.width]=i}}function zU(n){return n===32||n===9}const mI=class mI{static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}constructor(e,t,i){this.range=e,this.lines=t,this.source=i,this.histogram=[];let s=0;for(let r=e.startLineNumber-1;r<e.endLineNumberExclusive-1;r++){const o=t[r];for(let l=0;l<o.length;l++){s++;const c=o[l],u=mI.getKey(c);this.histogram[u]=(this.histogram[u]||0)+1}s++;const a=mI.getKey(` +`);this.histogram[a]=(this.histogram[a]||0)+1}this.totalCount=s}computeSimilarity(e){let t=0;const i=Math.max(this.histogram.length,e.histogram.length);for(let s=0;s<i;s++)t+=Math.abs((this.histogram[s]??0)-(e.histogram[s]??0));return 1-t/(this.totalCount+e.totalCount)}};mI.chrKeys=new Map;let l4=mI;class iCt{compute(e,t,i=oD.instance,s){if(e.length===0||t.length===0)return xg.trivial(e,t);const r=new TW(e.length,t.length),o=new TW(e.length,t.length),a=new TW(e.length,t.length);for(let p=0;p<e.length;p++)for(let g=0;g<t.length;g++){if(!i.isValid())return xg.trivialTimedOut(e,t);const m=p===0?0:r.get(p-1,g),_=g===0?0:r.get(p,g-1);let b;e.getElement(p)===t.getElement(g)?(p===0||g===0?b=0:b=r.get(p-1,g-1),p>0&&g>0&&o.get(p-1,g-1)===3&&(b+=a.get(p-1,g-1)),b+=s?s(p,g):1):b=-1;const w=Math.max(m,_,b);if(w===b){const C=p>0&&g>0?a.get(p-1,g-1):0;a.set(p,g,C+1),o.set(p,g,3)}else w===m?(a.set(p,g,0),o.set(p,g,1)):w===_&&(a.set(p,g,0),o.set(p,g,2));r.set(p,g,w)}const l=[];let c=e.length,u=t.length;function h(p,g){(p+1!==c||g+1!==u)&&l.push(new Qs(new Yt(p+1,c),new Yt(g+1,u))),c=p,u=g}let d=e.length-1,f=t.length-1;for(;d>=0&&f>=0;)o.get(d,f)===3?(h(d,f),d--,f--):o.get(d,f)===1?d--:f--;return h(-1,-1),l.reverse(),new xg(l,!1)}}class fIe{compute(e,t,i=oD.instance){if(e.length===0||t.length===0)return xg.trivial(e,t);const s=e,r=t;function o(g,m){for(;g<s.length&&m<r.length&&s.getElement(g)===r.getElement(m);)g++,m++;return g}let a=0;const l=new nCt;l.set(0,o(0,0));const c=new sCt;c.set(0,l.get(0)===0?null:new Ade(null,0,0,l.get(0)));let u=0;e:for(;;){if(a++,!i.isValid())return xg.trivialTimedOut(s,r);const g=-Math.min(a,r.length+a%2),m=Math.min(a,s.length+a%2);for(u=g;u<=m;u+=2){const _=u===m?-1:l.get(u+1),b=u===g?-1:l.get(u-1)+1,w=Math.min(Math.max(_,b),s.length),C=w-u;if(w>s.length||C>r.length)continue;const S=o(w,C);l.set(u,S);const x=w===_?c.get(u+1):c.get(u-1);if(c.set(u,S!==w?new Ade(x,w,C,S-w):x),l.get(u)===s.length&&l.get(u)-u===r.length)break e}}let h=c.get(u);const d=[];let f=s.length,p=r.length;for(;;){const g=h?h.x+h.length:0,m=h?h.y+h.length:0;if((g!==f||m!==p)&&d.push(new Qs(new Yt(g,f),new Yt(m,p))),!h)break;f=h.x,p=h.y,h=h.prev}return d.reverse(),new xg(d,!1)}}class Ade{constructor(e,t,i,s){this.prev=e,this.x=t,this.y=i,this.length=s}}class nCt{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const i=this.negativeArr;this.negativeArr=new Int32Array(i.length*2),this.negativeArr.set(i)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const i=this.positiveArr;this.positiveArr=new Int32Array(i.length*2),this.positiveArr.set(i)}this.positiveArr[e]=t}}}class sCt{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}class c4{constructor(e,t,i){this.lines=e,this.range=t,this.considerWhitespaceChanges=i,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let s=this.range.startLineNumber;s<=this.range.endLineNumber;s++){let r=e[s-1],o=0;s===this.range.startLineNumber&&this.range.startColumn>1&&(o=this.range.startColumn-1,r=r.substring(o)),this.lineStartOffsets.push(o);let a=0;if(!i){const c=r.trimStart();a=r.length-c.length,r=c.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);const l=s===this.range.endLineNumber?Math.min(this.range.endColumn-1-o-a,r.length):r.length;for(let c=0;c<l;c++)this.elements.push(r.charCodeAt(c));s<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new Yt(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=Rde(e>0?this.elements[e-1]:-1),i=Rde(e<this.elements.length?this.elements[e]:-1);if(t===7&&i===8)return 0;if(t===8)return 150;let s=0;return t!==i&&(s+=10,t===0&&i===1&&(s+=1)),s+=Pde(t),s+=Pde(i),s}translateOffset(e,t="right"){const i=$T(this.firstElementOffsetByLineIdx,r=>r<=e),s=e-this.firstElementOffsetByLineIdx[i];return new se(this.range.startLineNumber+i,1+this.lineStartOffsets[i]+s+(s===0&&t==="left"?0:this.trimmedWsLengthsByLineIdx[i]))}translateRange(e){const t=this.translateOffset(e.start,"right"),i=this.translateOffset(e.endExclusive,"left");return i.isBefore(t)?O.fromPositions(i,i):O.fromPositions(t,i)}findWordContaining(e){if(e<0||e>=this.elements.length||!DW(this.elements[e]))return;let t=e;for(;t>0&&DW(this.elements[t-1]);)t--;let i=e;for(;i<this.elements.length&&DW(this.elements[i]);)i++;return new Yt(t,i)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){const t=nx(this.firstElementOffsetByLineIdx,s=>s<=e.start)??0,i=U1t(this.firstElementOffsetByLineIdx,s=>e.endExclusive<=s)??this.elements.length;return new Yt(t,i)}}function DW(n){return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57}const rCt={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function Pde(n){return rCt[n]}function Rde(n){return n===10?8:n===13?7:zU(n)?6:n>=97&&n<=122?0:n>=65&&n<=90?1:n>=48&&n<=57?2:n===-1?3:n===44||n===59?5:4}function oCt(n,e,t,i,s,r){let{moves:o,excludedChanges:a}=lCt(n,e,t,r);if(!r.isValid())return[];const l=n.filter(u=>!a.has(u)),c=cCt(l,i,s,e,t,r);return xz(o,c),o=uCt(o),o=o.filter(u=>{const h=u.original.toOffsetRange().slice(e).map(f=>f.trim());return h.join(` +`).length>=15&&aCt(h,f=>f.length>=2)>=2}),o=hCt(n,o),o}function aCt(n,e){let t=0;for(const i of n)e(i)&&t++;return t}function lCt(n,e,t,i){const s=[],r=n.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new l4(l.original,e,l)),o=new Set(n.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new l4(l.modified,t,l))),a=new Set;for(const l of r){let c=-1,u;for(const h of o){const d=l.computeSimilarity(h);d>c&&(c=d,u=h)}if(c>.9&&u&&(o.delete(u),s.push(new Co(l.range,u.range)),a.add(l.source),a.add(u.source)),!i.isValid())return{moves:s,excludedChanges:a}}return{moves:s,excludedChanges:a}}function cCt(n,e,t,i,s,r){const o=[],a=new Fee;for(const d of n)for(let f=d.original.startLineNumber;f<d.original.endLineNumberExclusive-2;f++){const p=`${e[f-1]}:${e[f+1-1]}:${e[f+2-1]}`;a.add(p,{range:new xt(f,f+3)})}const l=[];n.sort(Jo(d=>d.modified.startLineNumber,Ru));for(const d of n){let f=[];for(let p=d.modified.startLineNumber;p<d.modified.endLineNumberExclusive-2;p++){const g=`${t[p-1]}:${t[p+1-1]}:${t[p+2-1]}`,m=new xt(p,p+3),_=[];a.forEach(g,({range:b})=>{for(const C of f)if(C.originalLineRange.endLineNumberExclusive+1===b.endLineNumberExclusive&&C.modifiedLineRange.endLineNumberExclusive+1===m.endLineNumberExclusive){C.originalLineRange=new xt(C.originalLineRange.startLineNumber,b.endLineNumberExclusive),C.modifiedLineRange=new xt(C.modifiedLineRange.startLineNumber,m.endLineNumberExclusive),_.push(C);return}const w={modifiedLineRange:m,originalLineRange:b};l.push(w),_.push(w)}),f=_}if(!r.isValid())return[]}l.sort(OLe(Jo(d=>d.modifiedLineRange.length,Ru)));const c=new Oc,u=new Oc;for(const d of l){const f=d.modifiedLineRange.startLineNumber-d.originalLineRange.startLineNumber,p=c.subtractFrom(d.modifiedLineRange),g=u.subtractFrom(d.originalLineRange).getWithDelta(f),m=p.getIntersection(g);for(const _ of m.ranges){if(_.length<3)continue;const b=_,w=_.delta(-f);o.push(new Co(w,b)),c.addRange(b),u.addRange(w)}}o.sort(Jo(d=>d.original.startLineNumber,Ru));const h=new HF(n);for(let d=0;d<o.length;d++){const f=o[d],p=h.findLastMonotonous(x=>x.original.startLineNumber<=f.original.startLineNumber),g=nx(n,x=>x.modified.startLineNumber<=f.modified.startLineNumber),m=Math.max(f.original.startLineNumber-p.original.startLineNumber,f.modified.startLineNumber-g.modified.startLineNumber),_=h.findLastMonotonous(x=>x.original.startLineNumber<f.original.endLineNumberExclusive),b=nx(n,x=>x.modified.startLineNumber<f.modified.endLineNumberExclusive),w=Math.max(_.original.endLineNumberExclusive-f.original.endLineNumberExclusive,b.modified.endLineNumberExclusive-f.modified.endLineNumberExclusive);let C;for(C=0;C<m;C++){const x=f.original.startLineNumber-C-1,k=f.modified.startLineNumber-C-1;if(x>i.length||k>s.length||c.contains(k)||u.contains(x)||!Mde(i[x-1],s[k-1],r))break}C>0&&(u.addRange(new xt(f.original.startLineNumber-C,f.original.startLineNumber)),c.addRange(new xt(f.modified.startLineNumber-C,f.modified.startLineNumber)));let S;for(S=0;S<w;S++){const x=f.original.endLineNumberExclusive+S,k=f.modified.endLineNumberExclusive+S;if(x>i.length||k>s.length||c.contains(k)||u.contains(x)||!Mde(i[x-1],s[k-1],r))break}S>0&&(u.addRange(new xt(f.original.endLineNumberExclusive,f.original.endLineNumberExclusive+S)),c.addRange(new xt(f.modified.endLineNumberExclusive,f.modified.endLineNumberExclusive+S))),(C>0||S>0)&&(o[d]=new Co(new xt(f.original.startLineNumber-C,f.original.endLineNumberExclusive+S),new xt(f.modified.startLineNumber-C,f.modified.endLineNumberExclusive+S)))}return o}function Mde(n,e,t){if(n.trim()===e.trim())return!0;if(n.length>300&&e.length>300)return!1;const s=new fIe().compute(new c4([n],new O(1,1,1,n.length),!1),new c4([e],new O(1,1,1,e.length),!1),t);let r=0;const o=Qs.invert(s.diffs,n.length);for(const u of o)u.seq1Range.forEach(h=>{zU(n.charCodeAt(h))||r++});function a(u){let h=0;for(let d=0;d<n.length;d++)zU(u.charCodeAt(d))||h++;return h}const l=a(n.length>e.length?n:e);return r/l>.6&&l>10}function uCt(n){if(n.length===0)return n;n.sort(Jo(t=>t.original.startLineNumber,Ru));const e=[n[0]];for(let t=1;t<n.length;t++){const i=e[e.length-1],s=n[t],r=s.original.startLineNumber-i.original.endLineNumberExclusive,o=s.modified.startLineNumber-i.modified.endLineNumberExclusive;if(r>=0&&o>=0&&r+o<=2){e[e.length-1]=i.join(s);continue}e.push(s)}return e}function hCt(n,e){const t=new HF(n);return e=e.filter(i=>{const s=t.findLastMonotonous(a=>a.original.startLineNumber<i.original.endLineNumberExclusive)||new Co(new xt(1,1),new xt(1,1)),r=nx(n,a=>a.modified.startLineNumber<i.modified.endLineNumberExclusive);return s!==r}),e}function UU(n,e,t){let i=t;return i=Ode(n,e,i),i=Ode(n,e,i),i=dCt(n,e,i),i}function Ode(n,e,t){if(t.length===0)return t;const i=[];i.push(t[0]);for(let r=1;r<t.length;r++){const o=i[i.length-1];let a=t[r];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=a.seq1Range.start-o.seq1Range.endExclusive;let c;for(c=1;c<=l&&!(n.getElement(a.seq1Range.start-c)!==n.getElement(a.seq1Range.endExclusive-c)||e.getElement(a.seq2Range.start-c)!==e.getElement(a.seq2Range.endExclusive-c));c++);if(c--,c===l){i[i.length-1]=new Qs(new Yt(o.seq1Range.start,a.seq1Range.endExclusive-l),new Yt(o.seq2Range.start,a.seq2Range.endExclusive-l));continue}a=a.delta(-c)}i.push(a)}const s=[];for(let r=0;r<i.length-1;r++){const o=i[r+1];let a=i[r];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=o.seq1Range.start-a.seq1Range.endExclusive;let c;for(c=0;c<l&&!(!n.isStronglyEqual(a.seq1Range.start+c,a.seq1Range.endExclusive+c)||!e.isStronglyEqual(a.seq2Range.start+c,a.seq2Range.endExclusive+c));c++);if(c===l){i[r+1]=new Qs(new Yt(a.seq1Range.start+l,o.seq1Range.endExclusive),new Yt(a.seq2Range.start+l,o.seq2Range.endExclusive));continue}c>0&&(a=a.delta(c))}s.push(a)}return i.length>0&&s.push(i[i.length-1]),s}function dCt(n,e,t){if(!n.getBoundaryScore||!e.getBoundaryScore)return t;for(let i=0;i<t.length;i++){const s=i>0?t[i-1]:void 0,r=t[i],o=i+1<t.length?t[i+1]:void 0,a=new Yt(s?s.seq1Range.endExclusive+1:0,o?o.seq1Range.start-1:n.length),l=new Yt(s?s.seq2Range.endExclusive+1:0,o?o.seq2Range.start-1:e.length);r.seq1Range.isEmpty?t[i]=Fde(r,n,e,a,l):r.seq2Range.isEmpty&&(t[i]=Fde(r.swap(),e,n,l,a).swap())}return t}function Fde(n,e,t,i,s){let o=1;for(;n.seq1Range.start-o>=i.start&&n.seq2Range.start-o>=s.start&&t.isStronglyEqual(n.seq2Range.start-o,n.seq2Range.endExclusive-o)&&o<100;)o++;o--;let a=0;for(;n.seq1Range.start+a<i.endExclusive&&n.seq2Range.endExclusive+a<s.endExclusive&&t.isStronglyEqual(n.seq2Range.start+a,n.seq2Range.endExclusive+a)&&a<100;)a++;if(o===0&&a===0)return n;let l=0,c=-1;for(let u=-o;u<=a;u++){const h=n.seq2Range.start+u,d=n.seq2Range.endExclusive+u,f=n.seq1Range.start+u,p=e.getBoundaryScore(f)+t.getBoundaryScore(h)+t.getBoundaryScore(d);p>c&&(c=p,l=u)}return n.delta(l)}function fCt(n,e,t){const i=[];for(const s of t){const r=i[i.length-1];if(!r){i.push(s);continue}s.seq1Range.start-r.seq1Range.endExclusive<=2||s.seq2Range.start-r.seq2Range.endExclusive<=2?i[i.length-1]=new Qs(r.seq1Range.join(s.seq1Range),r.seq2Range.join(s.seq2Range)):i.push(s)}return i}function pCt(n,e,t){const i=Qs.invert(t,n.length),s=[];let r=new ag(0,0);function o(l,c){if(l.offset1<r.offset1||l.offset2<r.offset2)return;const u=n.findWordContaining(l.offset1),h=e.findWordContaining(l.offset2);if(!u||!h)return;let d=new Qs(u,h);const f=d.intersect(c);let p=f.seq1Range.length,g=f.seq2Range.length;for(;i.length>0;){const m=i[0];if(!(m.seq1Range.intersects(d.seq1Range)||m.seq2Range.intersects(d.seq2Range)))break;const b=n.findWordContaining(m.seq1Range.start),w=e.findWordContaining(m.seq2Range.start),C=new Qs(b,w),S=C.intersect(m);if(p+=S.seq1Range.length,g+=S.seq2Range.length,d=d.join(C),d.seq1Range.endExclusive>=m.seq1Range.endExclusive)i.shift();else break}p+g<(d.seq1Range.length+d.seq2Range.length)*2/3&&s.push(d),r=d.getEndExclusives()}for(;i.length>0;){const l=i.shift();l.seq1Range.isEmpty||(o(l.getStarts(),l),o(l.getEndExclusives().delta(-1),l))}return gCt(t,s)}function gCt(n,e){const t=[];for(;n.length>0||e.length>0;){const i=n[0],s=e[0];let r;i&&(!s||i.seq1Range.start<s.seq1Range.start)?r=n.shift():r=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=r.seq1Range.start?t[t.length-1]=t[t.length-1].join(r):t.push(r)}return t}function mCt(n,e,t){let i=t;if(i.length===0)return i;let s=0,r;do{r=!1;const o=[i[0]];for(let a=1;a<i.length;a++){let l=function(d,f){const p=new Yt(u.seq1Range.endExclusive,c.seq1Range.start);return n.getText(p).replace(/\s/g,"").length<=4&&(d.seq1Range.length+d.seq2Range.length>5||f.seq1Range.length+f.seq2Range.length>5)};const c=i[a],u=o[o.length-1];l(u,c)?(r=!0,o[o.length-1]=o[o.length-1].join(c)):o.push(c)}i=o}while(s++<10&&r);return i}function _Ct(n,e,t){let i=t;if(i.length===0)return i;let s=0,r;do{r=!1;const a=[i[0]];for(let l=1;l<i.length;l++){let c=function(f,p){const g=new Yt(h.seq1Range.endExclusive,u.seq1Range.start);if(n.countLinesIn(g)>5||g.length>500)return!1;const _=n.getText(g).trim();if(_.length>20||_.split(/\r\n|\r|\n/).length>1)return!1;const b=n.countLinesIn(f.seq1Range),w=f.seq1Range.length,C=e.countLinesIn(f.seq2Range),S=f.seq2Range.length,x=n.countLinesIn(p.seq1Range),k=p.seq1Range.length,L=e.countLinesIn(p.seq2Range),E=p.seq2Range.length,A=2*40+50;function I(T){return Math.min(T,A)}return Math.pow(Math.pow(I(b*40+w),1.5)+Math.pow(I(C*40+S),1.5),1.5)+Math.pow(Math.pow(I(x*40+k),1.5)+Math.pow(I(L*40+E),1.5),1.5)>(A**1.5)**1.5*1.3};const u=i[l],h=a[a.length-1];c(h,u)?(r=!0,a[a.length-1]=a[a.length-1].join(u)):a.push(u)}i=a}while(s++<10&&r);const o=[];return wht(i,(a,l,c)=>{let u=l;function h(_){return _.length>0&&_.trim().length<=3&&l.seq1Range.length+l.seq2Range.length>100}const d=n.extendToFullLines(l.seq1Range),f=n.getText(new Yt(d.start,l.seq1Range.start));h(f)&&(u=u.deltaStart(-f.length));const p=n.getText(new Yt(l.seq1Range.endExclusive,d.endExclusive));h(p)&&(u=u.deltaEnd(p.length));const g=Qs.fromOffsetPairs(a?a.getEndExclusives():ag.zero,c?c.getStarts():ag.max),m=u.intersect(g);o.length>0&&m.getStarts().equals(o[o.length-1].getEndExclusives())?o[o.length-1]=o[o.length-1].join(m):o.push(m)}),o}let Bde=class{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){const t=e===0?0:Wde(this.lines[e-1]),i=e===this.lines.length?0:Wde(this.lines[e]);return 1e3-(t+i)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(` +`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function Wde(n){let e=0;for(;e<n.length&&(n.charCodeAt(e)===32||n.charCodeAt(e)===9);)e++;return e}class vM{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class pIe{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}class gIe{constructor(){this.dynamicProgrammingDiffing=new iCt,this.myersDiffingAlgorithm=new fIe}computeDiff(e,t,i){if(e.length<=1&&In(e,t,(S,x)=>S===x))return new vM([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new vM([new hc(new xt(1,e.length+1),new xt(1,t.length+1),[new Ul(new O(1,1,e.length,e[e.length-1].length+1),new O(1,1,t.length,t[t.length-1].length+1))])],[],!1);const s=i.maxComputationTimeMs===0?oD.instance:new tCt(i.maxComputationTimeMs),r=!i.ignoreTrimWhitespace,o=new Map;function a(S){let x=o.get(S);return x===void 0&&(x=o.size,o.set(S,x)),x}const l=e.map(S=>a(S.trim())),c=t.map(S=>a(S.trim())),u=new Bde(l,e),h=new Bde(c,t),d=u.length+h.length<1700?this.dynamicProgrammingDiffing.compute(u,h,s,(S,x)=>e[S]===t[x]?t[x].length===0?.1:1+Math.log(1+t[x].length):.99):this.myersDiffingAlgorithm.compute(u,h,s);let f=d.diffs,p=d.hitTimeout;f=UU(u,h,f),f=mCt(u,h,f);const g=[],m=S=>{if(r)for(let x=0;x<S;x++){const k=_+x,L=b+x;if(e[k]!==t[L]){const E=this.refineDiff(e,t,new Qs(new Yt(k,k+1),new Yt(L,L+1)),s,r);for(const A of E.mappings)g.push(A);E.hitTimeout&&(p=!0)}}};let _=0,b=0;for(const S of f){Ky(()=>S.seq1Range.start-_===S.seq2Range.start-b);const x=S.seq1Range.start-_;m(x),_=S.seq1Range.endExclusive,b=S.seq2Range.endExclusive;const k=this.refineDiff(e,t,S,s,r);k.hitTimeout&&(p=!0);for(const L of k.mappings)g.push(L)}m(e.length-_);const w=Vde(g,e,t);let C=[];return i.computeMoves&&(C=this.computeMoves(w,e,t,l,c,s,r)),Ky(()=>{function S(k,L){if(k.lineNumber<1||k.lineNumber>L.length)return!1;const E=L[k.lineNumber-1];return!(k.column<1||k.column>E.length+1)}function x(k,L){return!(k.startLineNumber<1||k.startLineNumber>L.length+1||k.endLineNumberExclusive<1||k.endLineNumberExclusive>L.length+1)}for(const k of w){if(!k.innerChanges)return!1;for(const L of k.innerChanges)if(!(S(L.modifiedRange.getStartPosition(),t)&&S(L.modifiedRange.getEndPosition(),t)&&S(L.originalRange.getStartPosition(),e)&&S(L.originalRange.getEndPosition(),e)))return!1;if(!x(k.modified,t)||!x(k.original,e))return!1}return!0}),new vM(w,C,p)}computeMoves(e,t,i,s,r,o,a){return oCt(e,t,i,s,r,o).map(u=>{const h=this.refineDiff(t,i,new Qs(u.original.toOffsetRange(),u.modified.toOffsetRange()),o,a),d=Vde(h.mappings,t,i,!0);return new pIe(u,d)})}refineDiff(e,t,i,s,r){const a=bCt(i).toRangeMapping2(e,t),l=new c4(e,a.originalRange,r),c=new c4(t,a.modifiedRange,r),u=l.length+c.length<500?this.dynamicProgrammingDiffing.compute(l,c,s):this.myersDiffingAlgorithm.compute(l,c,s);let h=u.diffs;return h=UU(l,c,h),h=pCt(l,c,h),h=fCt(l,c,h),h=_Ct(l,c,h),{mappings:h.map(f=>new Ul(l.translateRange(f.seq1Range),c.translateRange(f.seq2Range))),hitTimeout:u.hitTimeout}}}function Vde(n,e,t,i=!1){const s=[];for(const r of Vee(n.map(o=>vCt(o,e,t)),(o,a)=>o.original.overlapOrTouch(a.original)||o.modified.overlapOrTouch(a.modified))){const o=r[0],a=r[r.length-1];s.push(new hc(o.original.join(a.original),o.modified.join(a.modified),r.map(l=>l.innerChanges[0])))}return Ky(()=>!i&&s.length>0&&(s[0].modified.startLineNumber!==s[0].original.startLineNumber||t.length-s[s.length-1].modified.endLineNumberExclusive!==e.length-s[s.length-1].original.endLineNumberExclusive)?!1:Pee(s,(r,o)=>o.original.startLineNumber-r.original.endLineNumberExclusive===o.modified.startLineNumber-r.modified.endLineNumberExclusive&&r.original.endLineNumberExclusive<o.original.startLineNumber&&r.modified.endLineNumberExclusive<o.modified.startLineNumber)),s}function vCt(n,e,t){let i=0,s=0;n.modifiedRange.endColumn===1&&n.originalRange.endColumn===1&&n.originalRange.startLineNumber+i<=n.originalRange.endLineNumber&&n.modifiedRange.startLineNumber+i<=n.modifiedRange.endLineNumber&&(s=-1),n.modifiedRange.startColumn-1>=t[n.modifiedRange.startLineNumber-1].length&&n.originalRange.startColumn-1>=e[n.originalRange.startLineNumber-1].length&&n.originalRange.startLineNumber<=n.originalRange.endLineNumber+s&&n.modifiedRange.startLineNumber<=n.modifiedRange.endLineNumber+s&&(i=1);const r=new xt(n.originalRange.startLineNumber+i,n.originalRange.endLineNumber+1+s),o=new xt(n.modifiedRange.startLineNumber+i,n.modifiedRange.endLineNumber+1+s);return new hc(r,o,[n])}function bCt(n){return new Co(new xt(n.seq1Range.start+1,n.seq1Range.endExclusive+1),new xt(n.seq2Range.start+1,n.seq2Range.endExclusive+1))}var yCt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},wCt=function(n,e){return function(t,i){e(t,i,n)}};let jU=class extends ue{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i){super(),this.model=e,this._options=t,this._diffProviderFactoryService=i,this._isDiffUpToDate=Gt(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=Gt(this,void 0),this.diff=this._diff,this._unchangedRegions=Gt(this,void 0),this.unchangedRegions=ot(this,a=>{var l;return this._options.hideUnchangedRegions.read(a)?((l=this._unchangedRegions.read(a))==null?void 0:l.regions)??[]:(Un(c=>{var u;for(const h of((u=this._unchangedRegions.get())==null?void 0:u.regions)||[])h.collapseAll(c)}),[])}),this.movedTextToCompare=Gt(this,void 0),this._activeMovedText=Gt(this,void 0),this._hoveredMovedText=Gt(this,void 0),this.activeMovedText=ot(this,a=>this.movedTextToCompare.read(a)??this._hoveredMovedText.read(a)??this._activeMovedText.read(a)),this._cancellationTokenSource=new Wn,this._diffProvider=ot(this,a=>{const l=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(a)}),c=Vr("onDidChange",l.onDidChange);return{diffProvider:l,onChangeSignal:c}}),this._register(lt(()=>this._cancellationTokenSource.cancel()));const s=vL("contentChangedSignal"),r=this._register(new ji(()=>s.trigger(void 0),200));this._register(Lt(a=>{const l=this._unchangedRegions.read(a);if(!l||l.regions.some(p=>p.isDragged.read(a)))return;const c=l.originalDecorationIds.map(p=>e.original.getDecorationRange(p)).map(p=>p?xt.fromRangeInclusive(p):void 0),u=l.modifiedDecorationIds.map(p=>e.modified.getDecorationRange(p)).map(p=>p?xt.fromRangeInclusive(p):void 0),h=l.regions.map((p,g)=>!c[g]||!u[g]?void 0:new h1(c[g].startLineNumber,u[g].startLineNumber,c[g].length,p.visibleLineCountTop.read(a),p.visibleLineCountBottom.read(a))).filter(Nf),d=[];let f=!1;for(const p of Vee(h,(g,m)=>g.getHiddenModifiedRange(a).endLineNumberExclusive===m.getHiddenModifiedRange(a).startLineNumber))if(p.length>1){f=!0;const g=p.reduce((_,b)=>_+b.lineCount,0),m=new h1(p[0].originalLineNumber,p[0].modifiedLineNumber,g,p[0].visibleLineCountTop.get(),p[p.length-1].visibleLineCountBottom.get());d.push(m)}else d.push(p[0]);if(f){const p=e.original.deltaDecorations(l.originalDecorationIds,d.map(m=>({range:m.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),g=e.modified.deltaDecorations(l.modifiedDecorationIds,d.map(m=>({range:m.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));Un(m=>{this._unchangedRegions.set({regions:d,originalDecorationIds:p,modifiedDecorationIds:g},m)})}}));const o=(a,l,c)=>{const u=h1.fromDiffs(a.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(c),this._options.hideUnchangedRegionsContextLineCount.read(c));let h;const d=this._unchangedRegions.get();if(d){const m=d.originalDecorationIds.map(C=>e.original.getDecorationRange(C)).map(C=>C?xt.fromRangeInclusive(C):void 0),_=d.modifiedDecorationIds.map(C=>e.modified.getDecorationRange(C)).map(C=>C?xt.fromRangeInclusive(C):void 0);let w=Rwt(d.regions.map((C,S)=>{if(!m[S]||!_[S])return;const x=m[S].length;return new h1(m[S].startLineNumber,_[S].startLineNumber,x,Math.min(C.visibleLineCountTop.get(),x),Math.min(C.visibleLineCountBottom.get(),x-C.visibleLineCountTop.get()))}).filter(Nf),(C,S)=>!S||C.modifiedLineNumber>=S.modifiedLineNumber+S.lineCount&&C.originalLineNumber>=S.originalLineNumber+S.lineCount).map(C=>new Co(C.getHiddenOriginalRange(c),C.getHiddenModifiedRange(c)));w=Co.clip(w,xt.ofLength(1,e.original.getLineCount()),xt.ofLength(1,e.modified.getLineCount())),h=Co.inverse(w,e.original.getLineCount(),e.modified.getLineCount())}const f=[];if(h)for(const m of u){const _=h.filter(b=>b.original.intersectsStrict(m.originalUnchangedRange)&&b.modified.intersectsStrict(m.modifiedUnchangedRange));f.push(...m.setVisibleRanges(_,l))}else f.push(...u);const p=e.original.deltaDecorations((d==null?void 0:d.originalDecorationIds)||[],f.map(m=>({range:m.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),g=e.modified.deltaDecorations((d==null?void 0:d.modifiedDecorationIds)||[],f.map(m=>({range:m.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:f,originalDecorationIds:p,modifiedDecorationIds:g},l)};this._register(e.modified.onDidChangeContent(a=>{if(this._diff.get()){const c=og.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),r.schedule()})),this._register(e.original.onDidChangeContent(a=>{if(this._diff.get()){const c=og.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),r.schedule()})),this._register(Na(async(a,l)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(a),this._options.hideUnchangedRegionsContextLineCount.read(a),r.cancel(),s.read(a);const c=this._diffProvider.read(a);c.onChangeSignal.read(a),el(gIe,a),el(UU,a),this._isDiffUpToDate.set(!1,void 0);let u=[];l.add(e.original.onDidChangeContent(f=>{const p=og.fromModelContentChanges(f.changes);u=KF(u,p)}));let h=[];l.add(e.modified.onDidChangeContent(f=>{const p=og.fromModelContentChanges(f.changes);h=KF(h,p)}));let d=await c.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(a),maxComputationTimeMs:this._options.maxComputationTimeMs.read(a),computeMoves:this._options.showMoves.read(a)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(d=CCt(d,e.original,e.modified),d=(e.original,e.modified,void 0)??d,d=(e.original,e.modified,void 0)??d,Un(f=>{o(d,f),this._lastDiff=d;const p=cie.fromDiffResult(d);this._diff.set(p,f),this._isDiffUpToDate.set(!0,f);const g=this.movedTextToCompare.get();this.movedTextToCompare.set(g?this._lastDiff.moves.find(m=>m.lineRangeMapping.modified.intersect(g.lineRangeMapping.modified)):void 0,f)}))}))}ensureModifiedLineIsVisible(e,t,i){var r,o;if(((r=this.diff.get())==null?void 0:r.mappings.length)===0)return;const s=((o=this._unchangedRegions.get())==null?void 0:o.regions)||[];for(const a of s)if(a.getHiddenModifiedRange(void 0).contains(e)){a.showModifiedLine(e,t,i);return}}ensureOriginalLineIsVisible(e,t,i){var r,o;if(((r=this.diff.get())==null?void 0:r.mappings.length)===0)return;const s=((o=this._unchangedRegions.get())==null?void 0:o.regions)||[];for(const a of s)if(a.getHiddenOriginalRange(void 0).contains(e)){a.showOriginalLine(e,t,i);return}}async waitForDiff(){await Mke(this.isDiffUpToDate,e=>e)}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:e==null?void 0:e.regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){var s;const t=(s=e.collapsedRegions)==null?void 0:s.map(r=>xt.deserialize(r.range)),i=this._unchangedRegions.get();!i||!t||Un(r=>{for(const o of i.regions)for(const a of t)if(o.modifiedUnchangedRange.intersect(a)){o.setHiddenModifiedRange(a,r);break}})}};jU=yCt([wCt(2,GN)],jU);function CCt(n,e,t){return{changes:n.changes.map(i=>new hc(i.original,i.modified,i.innerChanges?i.innerChanges.map(s=>SCt(s,e,t)):void 0)),moves:n.moves,identical:n.identical,quitEarly:n.quitEarly}}function SCt(n,e,t){let i=n.originalRange,s=n.modifiedRange;return i.startColumn===1&&s.startColumn===1&&(i.endColumn!==1||s.endColumn!==1)&&i.endColumn===e.getLineMaxColumn(i.endLineNumber)&&s.endColumn===t.getLineMaxColumn(s.endLineNumber)&&i.endLineNumber<e.getLineCount()&&s.endLineNumber<t.getLineCount()&&(i=i.setEndPosition(i.endLineNumber+1,1),s=s.setEndPosition(s.endLineNumber+1,1)),new Ul(i,s)}class cie{static fromDiffResult(e){return new cie(e.changes.map(t=>new mIe(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,s){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=s}}class mIe{constructor(e){this.lineRangeMapping=e}}class h1{static fromDiffs(e,t,i,s,r){const o=hc.inverse(e,t,i),a=[];for(const l of o){let c=l.original.startLineNumber,u=l.modified.startLineNumber,h=l.original.length;const d=c===1&&u===1,f=c+h===t+1&&u+h===i+1;(d||f)&&h>=r+s?(d&&!f&&(h-=r),f&&!d&&(c+=r,u+=r,h-=r),a.push(new h1(c,u,h,0,0))):h>=r*2+s&&(c+=r,u+=r,h-=r*2,a.push(new h1(c,u,h,0,0)))}return a}get originalUnchangedRange(){return xt.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return xt.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,s,r){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=Gt(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=Gt(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=ot(this,l=>this.visibleLineCountTop.read(l)+this.visibleLineCountBottom.read(l)===this.lineCount&&!this.isDragged.read(l)),this.isDragged=Gt(this,void 0);const o=Math.max(Math.min(s,this.lineCount),0),a=Math.max(Math.min(r,this.lineCount-s),0);yue(s===o),yue(r===a),this._visibleLineCountTop.set(o,void 0),this._visibleLineCountBottom.set(a,void 0)}setVisibleRanges(e,t){const i=[],s=new Oc(e.map(l=>l.modified)).subtractFrom(this.modifiedUnchangedRange);let r=this.originalLineNumber,o=this.modifiedLineNumber;const a=this.modifiedLineNumber+this.lineCount;if(s.ranges.length===0)this.showAll(t),i.push(this);else{let l=0;for(const c of s.ranges){const u=l===s.ranges.length-1;l++;const h=(u?a:c.endLineNumberExclusive)-o,d=new h1(r,o,h,0,0);d.setHiddenModifiedRange(c,t),i.push(d),r=d.originalUnchangedRange.endLineNumberExclusive,o=d.modifiedUnchangedRange.endLineNumberExclusive}}return i}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return xt.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return xt.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,s=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,s,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(e=10,t){const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,i){const s=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),r=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;t===0&&s<r||t===1?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+s,i):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+r,i)}showOriginalLine(e,t,i){const s=e-this.originalLineNumber,r=this.originalLineNumber+this.lineCount-e;t===0&&s<r||t===1?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+r-s,this.getMaxVisibleLineCountTop()),i):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+s-r,this.getMaxVisibleLineCountBottom()),i)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,i){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,i),this._visibleLineCountBottom.set(t,i)}}class xCt extends ue{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}constructor(e,t,i,s,r,o,a,l,c){super(),this._getViewZoneId=e,this._marginDomNode=t,this._modifiedEditor=i,this._diff=s,this._editor=r,this._viewLineCounts=o,this._originalTextModel=a,this._contextMenuService=l,this._clipboardService=c,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=ft.asClassName(Ne.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const u=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${u}px`,this._diffActions.style.lineHeight=`${u}px`,this._marginDomNode.appendChild(this._diffActions);let h=0;const d=i.getOption(128)&&!Gh,f=(p,g)=>{this._contextMenuService.showContextMenu({domForShadowRoot:d?i.getDomNode()??void 0:void 0,getAnchor:()=>({x:p,y:g}),getActions:()=>{const m=[],_=s.modified.isEmpty;return m.push(new dl("diff.clipboard.copyDeletedContent",_?s.original.length>1?v("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):v("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):s.original.length>1?v("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):v("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,async()=>{const w=this._originalTextModel.getValueInRange(s.original.toExclusiveRange());await this._clipboardService.writeText(w)})),s.original.length>1&&m.push(new dl("diff.clipboard.copyDeletedLineContent",_?v("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",s.original.startLineNumber+h):v("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",s.original.startLineNumber+h),void 0,!0,async()=>{let w=this._originalTextModel.getLineContent(s.original.startLineNumber+h);w===""&&(w=this._originalTextModel.getEndOfLineSequence()===0?` +`:`\r +`),await this._clipboardService.writeText(w)})),i.getOption(92)||m.push(new dl("diff.inline.revertChange",v("diff.inline.revertChange.label","Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),m},autoSelectFirstItem:!0})};this._register(os(this._diffActions,"mousedown",p=>{if(!p.leftButton)return;const{top:g,height:m}=ps(this._diffActions),_=Math.floor(u/3);p.preventDefault(),f(p.posx,g+m+_)})),this._register(i.onMouseMove(p=>{(p.target.type===8||p.target.type===5)&&p.target.detail.viewZoneId===this._getViewZoneId()?(h=this._updateLightBulbPosition(this._marginDomNode,p.event.browserEvent.y,u),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(p=>{p.event.leftButton&&(p.target.type===8||p.target.type===5)&&p.target.detail.viewZoneId===this._getViewZoneId()&&(p.event.preventDefault(),h=this._updateLightBulbPosition(this._marginDomNode,p.event.browserEvent.y,u),f(p.event.posx,p.event.posy+u))}))}_updateLightBulbPosition(e,t,i){const{top:s}=ps(e),r=t-s,o=Math.floor(r/i),a=o*i;if(this._diffActions.style.top=`${a}px`,this._viewLineCounts){let l=0;for(let c=0;c<this._viewLineCounts.length;c++)if(l+=this._viewLineCounts[c],o<l)return c}return o}}const Hde=tm("diffEditorWidget",{createHTML:n=>n});function LCt(n,e,t,i){Tr(i,e.fontInfo);const s=t.length>0,r=new uL(1e4);let o=0,a=0;const l=[];for(let d=0;d<n.lineTokens.length;d++){const f=d+1,p=n.lineTokens[d],g=n.lineBreakData[d],m=Xo.filter(t,f,1,Number.MAX_SAFE_INTEGER);if(g){let _=0;for(const b of g.breakOffsets){const w=p.sliceAndInflate(_,b,0);o=Math.max(o,$de(a,w,Xo.extractWrapped(m,_,b),s,n.mightContainNonBasicASCII,n.mightContainRTL,e,r)),a++,_=b}l.push(g.breakOffsets.length)}else l.push(1),o=Math.max(o,$de(a,p,m,s,n.mightContainNonBasicASCII,n.mightContainRTL,e,r)),a++}o+=e.scrollBeyondLastColumn;const c=r.build(),u=Hde?Hde.createHTML(c):c;i.innerHTML=u;const h=o*e.typicalHalfwidthCharacterWidth;return{heightInLines:a,minWidthInPx:h,viewLineCounts:l}}class ECt{constructor(e,t,i,s){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=i,this.mightContainRTL=s}}class uie{static fromEditor(e){var r;const t=e.getOptions(),i=t.get(50),s=t.get(146);return new uie(((r=e.getModel())==null?void 0:r.getOptions().tabSize)||0,i,t.get(33),i.typicalHalfwidthCharacterWidth,t.get(105),t.get(67),s.decorationsWidth,t.get(118),t.get(100),t.get(95),t.get(51))}constructor(e,t,i,s,r,o,a,l,c,u,h){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=i,this.typicalHalfwidthCharacterWidth=s,this.scrollBeyondLastColumn=r,this.lineHeight=o,this.lineDecorationsWidth=a,this.stopRenderingLineAfter=l,this.renderWhitespace=c,this.renderControlCharacters=u,this.fontLigatures=h}}function $de(n,e,t,i,s,r,o,a){a.appendString('<div class="view-line'),i||a.appendString(" char-delete"),a.appendString('" style="top:'),a.appendString(String(n*o.lineHeight)),a.appendString('px;width:1000000px;">');const l=e.getLineContent(),c=pc.isBasicASCII(l,s),u=pc.containsRTL(l,c,r),h=MN(new P_(o.fontInfo.isMonospace&&!o.disableMonospaceOptimizations,o.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,c,u,0,e,t,o.tabSize,0,o.fontInfo.spaceWidth,o.fontInfo.middotWidth,o.fontInfo.wsmiddotWidth,o.stopRenderingLineAfter,o.renderWhitespace,o.renderControlCharacters,o.fontLigatures!==c_.OFF,null),a);return a.appendString("</div>"),h.characterMapping.getHorizontalOffset(h.characterMapping.length)}const nm=ri("clipboardService"),sm=ri("contextViewService"),El=ri("contextMenuService");var kCt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},zde=function(n,e){return function(t,i){e(t,i,n)}};let qU=class extends ue{constructor(e,t,i,s,r,o,a,l,c,u){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=s,this._diffEditorWidget=r,this._canIgnoreViewZoneUpdateEvent=o,this._origViewZonesToIgnore=a,this._modViewZonesToIgnore=l,this._clipboardService=c,this._contextMenuService=u,this._originalTopPadding=Gt(this,0),this._originalScrollOffset=Gt(this,0),this._originalScrollOffsetAnimated=Cde(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=Gt(this,0),this._modifiedScrollOffset=Gt(this,0),this._modifiedScrollOffsetAnimated=Cde(this._targetWindow,this._modifiedScrollOffset,this._store);const h=Gt("invalidateAlignmentsState",0),d=this._register(new ji(()=>{h.set(h.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||d.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||d.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(w=>{(w.hasChanged(147)||w.hasChanged(67))&&d.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(w=>{(w.hasChanged(147)||w.hasChanged(67))&&d.schedule()}));const f=this._diffModel.map(w=>w?Vi(this,w.model.original.onDidChangeTokens,()=>w.model.original.tokenization.backgroundTokenizationState===2):void 0).map((w,C)=>w==null?void 0:w.read(C)),p=ot(w=>{const C=this._diffModel.read(w),S=C==null?void 0:C.diff.read(w);if(!C||!S)return null;h.read(w);const k=this._options.renderSideBySide.read(w);return Ude(this._editors.original,this._editors.modified,S.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,k)}),g=ot(w=>{var x;const C=(x=this._diffModel.read(w))==null?void 0:x.movedTextToCompare.read(w);if(!C)return null;h.read(w);const S=C.changes.map(k=>new mIe(k));return Ude(this._editors.original,this._editors.modified,S,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function m(){const w=document.createElement("div");return w.className="diagonal-fill",w}const _=this._register(new be);this.viewZones=R_(this,(w,C)=>{var Y,le,re,z;_.clear();const S=p.read(w)||[],x=[],k=[],L=this._modifiedTopPadding.read(w);L>0&&k.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:L,showInHiddenAreas:!0,suppressMouseDown:!0});const E=this._originalTopPadding.read(w);E>0&&x.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:E,showInHiddenAreas:!0,suppressMouseDown:!0});const A=this._options.renderSideBySide.read(w),I=A||(Y=this._editors.modified._getViewModel())==null?void 0:Y.createLineBreaksComputer();if(I){const K=this._editors.original.getModel();for(const Z of S)if(Z.diff)for(let j=Z.originalRange.startLineNumber;j<Z.originalRange.endLineNumberExclusive;j++){if(j>K.getLineCount())return{orig:x,mod:k};I==null||I.addRequest(K.getLineContent(j),null,null)}}const T=(I==null?void 0:I.finalize())??[];let N=0;const M=this._editors.modified.getOption(67),V=(le=this._diffModel.read(w))==null?void 0:le.movedTextToCompare.read(w),W=((re=this._editors.original.getModel())==null?void 0:re.mightContainNonBasicASCII())??!1,B=((z=this._editors.original.getModel())==null?void 0:z.mightContainRTL())??!1,$=uie.fromEditor(this._editors.modified);for(const K of S)if(K.diff&&!A&&(!this._options.useTrueInlineDiffRendering.read(w)||!hie(K.diff))){if(!K.originalRange.isEmpty){f.read(w);const j=document.createElement("div");j.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const ce=this._editors.original.getModel();if(K.originalRange.endLineNumberExclusive-1>ce.getLineCount())return{orig:x,mod:k};const ie=new ECt(K.originalRange.mapToLineArray(Ke=>ce.tokenization.getLineTokens(Ke)),K.originalRange.mapToLineArray(Ke=>T[N++]),W,B),de=[];for(const Ke of K.diff.innerChanges||[])de.push(new Rk(Ke.originalRange.delta(-(K.diff.original.startLineNumber-1)),lx.className,0));const Le=LCt(ie,$,de,j),Te=document.createElement("div");if(Te.className="inline-deleted-margin-view-zone",Tr(Te,$.fontInfo),this._options.renderIndicators.read(w))for(let Ke=0;Ke<Le.heightInLines;Ke++){const Q=document.createElement("div");Q.className=`delete-sign ${ft.asClassName(uIe)}`,Q.setAttribute("style",`position:absolute;top:${Ke*M}px;width:${$.lineDecorationsWidth}px;height:${M}px;right:0;`),Te.appendChild(Q)}let ve;_.add(new xCt(()=>i1(ve),Te,this._editors.modified,K.diff,this._diffEditorWidget,Le.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let Ke=0;Ke<Le.viewLineCounts.length;Ke++){const Q=Le.viewLineCounts[Ke];Q>1&&x.push({afterLineNumber:K.originalRange.startLineNumber+Ke,domNode:m(),heightInPx:(Q-1)*M,showInHiddenAreas:!0,suppressMouseDown:!0})}k.push({afterLineNumber:K.modifiedRange.startLineNumber-1,domNode:j,heightInPx:Le.heightInLines*M,minWidthInPx:Le.minWidthInPx,marginDomNode:Te,setZoneId(Ke){ve=Ke},showInHiddenAreas:!0,suppressMouseDown:!0})}const Z=document.createElement("div");Z.className="gutter-delete",x.push({afterLineNumber:K.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:K.modifiedHeightInPx,marginDomNode:Z,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const Z=K.modifiedHeightInPx-K.originalHeightInPx;if(Z>0){if(V!=null&&V.lineRangeMapping.original.delta(-1).deltaLength(2).contains(K.originalRange.endLineNumberExclusive-1))continue;x.push({afterLineNumber:K.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:Z,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let j=function(){const ie=document.createElement("div");return ie.className="arrow-revert-change "+ft.asClassName(Ne.arrowRight),C.add(ge(ie,"mousedown",de=>de.stopPropagation())),C.add(ge(ie,"click",de=>{de.stopPropagation(),r.revert(K.diff)})),Pe("div",{},ie)};if(V!=null&&V.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(K.modifiedRange.endLineNumberExclusive-1))continue;let ce;K.diff&&K.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(w)&&(ce=j()),k.push({afterLineNumber:K.modifiedRange.endLineNumberExclusive-1,domNode:m(),heightInPx:-Z,marginDomNode:ce,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const K of g.read(w)??[]){if(!(V!=null&&V.lineRangeMapping.original.intersect(K.originalRange))||!(V!=null&&V.lineRangeMapping.modified.intersect(K.modifiedRange)))continue;const Z=K.modifiedHeightInPx-K.originalHeightInPx;Z>0?x.push({afterLineNumber:K.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:Z,showInHiddenAreas:!0,suppressMouseDown:!0}):k.push({afterLineNumber:K.modifiedRange.endLineNumberExclusive-1,domNode:m(),heightInPx:-Z,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:x,mod:k}});let b=!1;this._register(this._editors.original.onDidScrollChange(w=>{w.scrollLeftChanged&&!b&&(b=!0,this._editors.modified.setScrollLeft(w.scrollLeft),b=!1)})),this._register(this._editors.modified.onDidScrollChange(w=>{w.scrollLeftChanged&&!b&&(b=!0,this._editors.original.setScrollLeft(w.scrollLeft),b=!1)})),this._originalScrollTop=Vi(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Vi(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Lt(w=>{const C=this._originalScrollTop.read(w)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(w))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(w));C!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(C,1)})),this._register(Lt(w=>{const C=this._modifiedScrollTop.read(w)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(w))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(w));C!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(C,1)})),this._register(Lt(w=>{var x;const C=(x=this._diffModel.read(w))==null?void 0:x.movedTextToCompare.read(w);let S=0;if(C){const k=this._editors.original.getTopForLineNumber(C.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();S=this._editors.modified.getTopForLineNumber(C.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-k}S>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(S,void 0)):S<0?(this._modifiedTopPadding.set(-S,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-S,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+S,void 0,!0)}))}};qU=kCt([zde(8,nm),zde(9,El)],qU);function Ude(n,e,t,i,s,r){const o=new Hg(jde(n,i)),a=new Hg(jde(e,s)),l=n.getOption(67),c=e.getOption(67),u=[];let h=0,d=0;function f(p,g){for(;;){let m=o.peek(),_=a.peek();if(m&&m.lineNumber>=p&&(m=void 0),_&&_.lineNumber>=g&&(_=void 0),!m&&!_)break;const b=m?m.lineNumber-h:Number.MAX_VALUE,w=_?_.lineNumber-d:Number.MAX_VALUE;b<w?(o.dequeue(),_={lineNumber:m.lineNumber-h+d,heightInPx:0}):b>w?(a.dequeue(),m={lineNumber:_.lineNumber-d+h,heightInPx:0}):(o.dequeue(),a.dequeue()),u.push({originalRange:xt.ofLength(m.lineNumber,1),modifiedRange:xt.ofLength(_.lineNumber,1),originalHeightInPx:l+m.heightInPx,modifiedHeightInPx:c+_.heightInPx,diff:void 0})}}for(const p of t){let g=function(C,S,x=!1){var I,T;if(C<w||S<b)return;if(_)_=!1;else if(!x&&(C===w||S===b))return;const k=new xt(w,C),L=new xt(b,S);if(k.isEmpty&&L.isEmpty)return;const E=((I=o.takeWhile(N=>N.lineNumber<C))==null?void 0:I.reduce((N,M)=>N+M.heightInPx,0))??0,A=((T=a.takeWhile(N=>N.lineNumber<S))==null?void 0:T.reduce((N,M)=>N+M.heightInPx,0))??0;u.push({originalRange:k,modifiedRange:L,originalHeightInPx:k.length*l+E,modifiedHeightInPx:L.length*c+A,diff:p.lineRangeMapping}),w=C,b=S};const m=p.lineRangeMapping;f(m.original.startLineNumber,m.modified.startLineNumber);let _=!0,b=m.modified.startLineNumber,w=m.original.startLineNumber;if(r)for(const C of m.innerChanges||[]){C.originalRange.startColumn>1&&C.modifiedRange.startColumn>1&&g(C.originalRange.startLineNumber,C.modifiedRange.startLineNumber);const S=n.getModel(),x=C.originalRange.endLineNumber<=S.getLineCount()?S.getLineMaxColumn(C.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;C.originalRange.endColumn<x&&g(C.originalRange.endLineNumber,C.modifiedRange.endLineNumber)}g(m.original.endLineNumberExclusive,m.modified.endLineNumberExclusive,!0),h=m.original.endLineNumberExclusive,d=m.modified.endLineNumberExclusive}return f(Number.MAX_VALUE,Number.MAX_VALUE),u}function jde(n,e){const t=[],i=[],s=n.getOption(147).wrappingColumn!==-1,r=n._getViewModel().coordinatesConverter,o=n.getOption(67);if(s)for(let l=1;l<=n.getModel().getLineCount();l++){const c=r.getModelLineViewLineCount(l);c>1&&i.push({lineNumber:l,heightInPx:o*(c-1)})}for(const l of n.getWhitespaces()){if(e.has(l.id))continue;const c=l.afterLineNumber===0?0:r.convertViewPositionToModelPosition(new se(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:c,heightInPx:l.height})}return Twt(t,i,l=>l.lineNumber,(l,c)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+c.heightInPx}))}function hie(n){return n.innerChanges?n.innerChanges.every(e=>qde(e.modifiedRange)&&qde(e.originalRange)):!1}function qde(n){return n.startLineNumber===n.endLineNumber}const _I=class _I extends ue{constructor(e,t,i,s,r){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=s,this._editors=r,this._originalScrollTop=Vi(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Vi(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=Vr("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=Gt(this,0),this._modifiedViewZonesChangedSignal=Vr("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=Vr("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=R_(this,(u,h)=>{var k;this._element.replaceChildren();const d=this._diffModel.read(u),f=(k=d==null?void 0:d.diff.read(u))==null?void 0:k.movedTexts;if(!f||f.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(u);const p=this._originalEditorLayoutInfo.read(u),g=this._modifiedEditorLayoutInfo.read(u);if(!p||!g){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(u),this._originalViewZonesChangedSignal.read(u);const m=f.map(L=>{function E($,Y){const le=Y.getTopForLineNumber($.startLineNumber,!0),re=Y.getTopForLineNumber($.endLineNumberExclusive,!0);return(le+re)/2}const A=E(L.lineRangeMapping.original,this._editors.original),I=this._originalScrollTop.read(u),T=E(L.lineRangeMapping.modified,this._editors.modified),N=this._modifiedScrollTop.read(u),M=A-I,V=T-N,W=Math.min(A,T),B=Math.max(A,T);return{range:new Yt(W,B),from:M,to:V,fromWithoutScroll:A,toWithoutScroll:T,move:L}});m.sort(Sht(Jo(L=>L.fromWithoutScroll>L.toWithoutScroll,xht),Jo(L=>L.fromWithoutScroll>L.toWithoutScroll?L.fromWithoutScroll:-L.toWithoutScroll,Ru)));const _=die.compute(m.map(L=>L.range)),b=10,w=p.verticalScrollbarWidth,C=(_.getTrackCount()-1)*10+b*2,S=w+C+(g.contentLeft-_I.movedCodeBlockPadding);let x=0;for(const L of m){const E=_.getTrack(x),A=w+b+E*10,I=15,T=15,N=S,M=g.glyphMarginWidth+g.lineNumbersWidth,V=18,W=document.createElementNS("http://www.w3.org/2000/svg","rect");W.classList.add("arrow-rectangle"),W.setAttribute("x",`${N-M}`),W.setAttribute("y",`${L.to-V/2}`),W.setAttribute("width",`${M}`),W.setAttribute("height",`${V}`),this._element.appendChild(W);const B=document.createElementNS("http://www.w3.org/2000/svg","g"),$=document.createElementNS("http://www.w3.org/2000/svg","path");$.setAttribute("d",`M 0 ${L.from} L ${A} ${L.from} L ${A} ${L.to} L ${N-T} ${L.to}`),$.setAttribute("fill","none"),B.appendChild($);const Y=document.createElementNS("http://www.w3.org/2000/svg","polygon");Y.classList.add("arrow"),h.add(Lt(le=>{$.classList.toggle("currentMove",L.move===d.activeMovedText.read(le)),Y.classList.toggle("currentMove",L.move===d.activeMovedText.read(le))})),Y.setAttribute("points",`${N-T},${L.to-I/2} ${N},${L.to} ${N-T},${L.to+I/2}`),B.appendChild(Y),this._element.appendChild(B),x++}this.width.set(C,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(lt(()=>this._element.remove())),this._register(Lt(u=>{const h=this._originalEditorLayoutInfo.read(u),d=this._modifiedEditorLayoutInfo.read(u);!h||!d||(this._element.style.left=`${h.width-h.verticalScrollbarWidth}px`,this._element.style.height=`${h.height}px`,this._element.style.width=`${h.verticalScrollbarWidth+h.contentLeft-_I.movedCodeBlockPadding+this.width.read(u)}px`)})),this._register(bL(this._state));const o=ot(u=>{const h=this._diffModel.read(u),d=h==null?void 0:h.diff.read(u);return d?d.movedTexts.map(f=>({move:f,original:new Zw(Uc(f.lineRangeMapping.original.startLineNumber-1),18),modified:new Zw(Uc(f.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(s4(this._editors.original,o.map(u=>u.map(h=>h.original)))),this._register(s4(this._editors.modified,o.map(u=>u.map(h=>h.modified)))),this._register(Na((u,h)=>{const d=o.read(u);for(const f of d)h.add(new Kde(this._editors.original,f.original,f.move,"original",this._diffModel.get())),h.add(new Kde(this._editors.modified,f.modified,f.move,"modified",this._diffModel.get()))}));const a=Vr("original.onDidFocusEditorWidget",u=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>u(void 0),0))),l=Vr("modified.onDidFocusEditorWidget",u=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>u(void 0),0)));let c="modified";this._register(zN({createEmptyChangeSummary:()=>{},handleChange:(u,h)=>(u.didChange(a)&&(c="original"),u.didChange(l)&&(c="modified"),!0)},u=>{a.read(u),l.read(u);const h=this._diffModel.read(u);if(!h)return;const d=h.diff.read(u);let f;if(d&&c==="original"){const p=this._editors.originalCursor.read(u);p&&(f=d.movedTexts.find(g=>g.lineRangeMapping.original.contains(p.lineNumber)))}if(d&&c==="modified"){const p=this._editors.modifiedCursor.read(u);p&&(f=d.movedTexts.find(g=>g.lineRangeMapping.modified.contains(p.lineNumber)))}f!==h.movedTextToCompare.get()&&h.movedTextToCompare.set(void 0,void 0),h.setActiveMovedText(f)}))}};_I.movedCodeBlockPadding=4;let ZC=_I;class die{static compute(e){const t=[],i=[];for(const s of e){let r=t.findIndex(o=>!o.intersectsStrict(s));r===-1&&(t.length>=6?r=K1t(t,Jo(a=>a.intersectWithRangeLength(s),Ru)):(r=t.length,t.push(new Ste))),t[r].addRange(s),i.push(r)}return new die(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class Kde extends tie{constructor(e,t,i,s,r){const o=Jt("div.diff-hidden-lines-widget");super(e,t,o.root),this._editor=e,this._move=i,this._kind=s,this._diffModel=r,this._nodes=Jt("div.diff-moved-code-block",{style:{marginRight:"4px"}},[Jt("div.text-content@textContent"),Jt("div.action-bar@actionBar")]),o.root.appendChild(this._nodes.root);const a=Vi(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(zg(this._nodes.root,{paddingRight:a.map(d=>d.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind==="original"?v("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind==="original"?v("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const c=this._register(new uc(this._nodes.actionBar,{highlightToggledItems:!0})),u=new dl("",l,"",!1);c.push(u,{icon:!1,label:!0});const h=new dl("","Compare",ft.asClassName(Ne.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(Lt(d=>{const f=this._diffModel.movedTextToCompare.read(d)===i;h.checked=f})),c.push(h,{icon:!1,label:!0})}}class ICt extends ue{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=ot(this,r=>{const o=this._diffModel.read(r),a=o==null?void 0:o.diff.read(r);if(!a)return null;const l=this._diffModel.read(r).movedTextToCompare.read(r),c=this._options.renderIndicators.read(r),u=this._options.showEmptyDecorations.read(r),h=[],d=[];if(!l)for(const p of a.mappings)if(p.lineRangeMapping.original.isEmpty||h.push({range:p.lineRangeMapping.original.toInclusiveRange(),options:c?rD:Nde}),p.lineRangeMapping.modified.isEmpty||d.push({range:p.lineRangeMapping.modified.toInclusiveRange(),options:c?o4:Dde}),p.lineRangeMapping.modified.isEmpty||p.lineRangeMapping.original.isEmpty)p.lineRangeMapping.original.isEmpty||h.push({range:p.lineRangeMapping.original.toInclusiveRange(),options:aie}),p.lineRangeMapping.modified.isEmpty||d.push({range:p.lineRangeMapping.modified.toInclusiveRange(),options:rie});else{const g=this._options.useTrueInlineDiffRendering.read(r)&&hie(p.lineRangeMapping);for(const m of p.lineRangeMapping.innerChanges||[])if(p.lineRangeMapping.original.contains(m.originalRange.startLineNumber)&&h.push({range:m.originalRange,options:m.originalRange.isEmpty()&&u?lie:lx}),p.lineRangeMapping.modified.contains(m.modifiedRange.startLineNumber)&&d.push({range:m.modifiedRange,options:m.modifiedRange.isEmpty()&&u&&!g?oie:a4}),g){const _=o.model.original.getValueInRange(m.originalRange);d.push({range:m.modifiedRange,options:{description:"deleted-text",before:{content:_,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(l)for(const p of l.changes){const g=p.original.toInclusiveRange();g&&h.push({range:g,options:c?rD:Nde});const m=p.modified.toInclusiveRange();m&&d.push({range:m,options:c?o4:Dde});for(const _ of p.innerChanges||[])h.push({range:_.originalRange,options:lx}),d.push({range:_.modifiedRange,options:a4})}const f=this._diffModel.read(r).activeMovedText.read(r);for(const p of a.movedTexts)h.push({range:p.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(p===f?" currentMove":""),blockPadding:[ZC.movedCodeBlockPadding,0,ZC.movedCodeBlockPadding,ZC.movedCodeBlockPadding]}}),d.push({range:p.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(p===f?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:h,modifiedDecorations:d}}),this._register(n4(this._editors.original,this._decorations.map(r=>(r==null?void 0:r.originalDecorations)||[]))),this._register(n4(this._editors.modified,this._decorations.map(r=>(r==null?void 0:r.modifiedDecorations)||[])))}}var yL=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r};const TCt=!1;var u4;(function(n){n.North="north",n.South="south",n.East="east",n.West="west"})(u4||(u4={}));let DCt=4;const NCt=new oe;let ACt=300;const PCt=new oe;class fie{constructor(e){this.el=e,this.disposables=new be}get onPointerMove(){return this.disposables.add(new li(ut(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new li(ut(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}yL([gs],fie.prototype,"onPointerMove",null);yL([gs],fie.prototype,"onPointerUp",null);class pie{get onPointerMove(){return this.disposables.add(new li(this.el,sn.Change)).event}get onPointerUp(){return this.disposables.add(new li(this.el,sn.End)).event}constructor(e){this.el=e,this.disposables=new be}dispose(){this.disposables.dispose()}}yL([gs],pie.prototype,"onPointerMove",null);yL([gs],pie.prototype,"onPointerUp",null);class h4{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}yL([gs],h4.prototype,"onPointerMove",null);yL([gs],h4.prototype,"onPointerUp",null);const Gde="pointer-events-disabled";class Qr extends ue{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",e===0),this.el.classList.toggle("minimum",e===1),this.el.classList.toggle("maximum",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=ke(this.el,Pe(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(lt(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new li(this._orthogonalStartDragHandle,"mouseenter")).event(()=>Qr.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new li(this._orthogonalStartDragHandle,"mouseleave")).event(()=>Qr.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=ke(this.el,Pe(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(lt(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new li(this._orthogonalEndDragHandle,"mouseenter")).event(()=>Qr.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new li(this._orthogonalEndDragHandle,"mouseleave")).event(()=>Qr.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=ACt,this.hoverDelayer=this._register(new $u(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new oe),this._onDidStart=this._register(new oe),this._onDidChange=this._register(new oe),this._onDidReset=this._register(new oe),this._onDidEnd=this._register(new oe),this.orthogonalStartSashDisposables=this._register(new be),this.orthogonalStartDragHandleDisposables=this._register(new be),this.orthogonalEndSashDisposables=this._register(new be),this.orthogonalEndDragHandleDisposables=this._register(new be),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=ke(e,Pe(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),ni&&this.el.classList.add("mac");const s=this._register(new li(this.el,"mousedown")).event;this._register(s(h=>this.onPointerStart(h,new fie(e)),this));const r=this._register(new li(this.el,"dblclick")).event;this._register(r(this.onPointerDoublePress,this));const o=this._register(new li(this.el,"mouseenter")).event;this._register(o(()=>Qr.onMouseEnter(this)));const a=this._register(new li(this.el,"mouseleave")).event;this._register(a(()=>Qr.onMouseLeave(this))),this._register(ao.addTarget(this.el));const l=this._register(new li(this.el,sn.Start)).event;this._register(l(h=>this.onPointerStart(h,new pie(this.el)),this));const c=this._register(new li(this.el,sn.Tap)).event;let u;this._register(c(h=>{if(u){clearTimeout(u),u=void 0,this.onPointerDoublePress(h);return}clearTimeout(u),u=setTimeout(()=>u=void 0,250)},this)),typeof i.size=="number"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=DCt,this._register(NCt.event(h=>{this.size=h,this.layout()}))),this._register(PCt.event(h=>this.hoverDelay=h)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",TCt),this.layout()}onPointerStart(e,t){ci.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const p=this.getOrthogonalSash(e);p&&(i=!0,e.__orthogonalSashEvent=!0,p.onPointerStart(e,new h4(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new h4(t))),!this.state)return;const s=this.el.ownerDocument.getElementsByTagName("iframe");for(const p of s)p.classList.add(Gde);const r=e.pageX,o=e.pageY,a=e.altKey,l={startX:r,currentX:r,startY:o,currentY:o,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const c=fc(this.el),u=()=>{let p="";i?p="all-scroll":this.orientation===1?this.state===1?p="s-resize":this.state===2?p="n-resize":p=ni?"row-resize":"ns-resize":this.state===1?p="e-resize":this.state===2?p="w-resize":p=ni?"col-resize":"ew-resize",c.textContent=`* { cursor: ${p} !important; }`},h=new be;u(),i||this.onDidEnablementChange.event(u,null,h);const d=p=>{ci.stop(p,!1);const g={startX:r,currentX:p.pageX,startY:o,currentY:p.pageY,altKey:a};this._onDidChange.fire(g)},f=p=>{ci.stop(p,!1),c.remove(),this.el.classList.remove("active"),this._onDidEnd.fire(),h.dispose();for(const g of s)g.classList.remove(Gde)};t.onPointerMove(d,null,h),t.onPointerUp(f,null,h),h.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger(()=>e.el.classList.add("hover"),e.hoverDelay).then(void 0,()=>{}),!t&&e.linkedSash&&Qr.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&Qr.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){Qr.onMouseLeave(this)}layout(){if(this.orientation===0){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){const t=e.initialTarget??e.target;if(!(!t||!ir(t))&&t.classList.contains("orthogonal-drag-handle"))return t.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}class RCt{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=HN(this,i=>{const s=this._sashRatio.read(i)??this._options.splitViewDefaultRatio.read(i);return this._computeSashLeft(s,i)},(i,s)=>{const r=this.dimensions.width.get();this._sashRatio.set(i/r,s)}),this._sashRatio=Gt(this,void 0)}_computeSashLeft(e,t){const i=this.dimensions.width.read(t),s=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),r=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):s,o=100;return i<=o*2?s:r<o?o:r>i-o?i-o:r}}class _Ie extends ue{constructor(e,t,i,s,r,o){super(),this._domNode=e,this._dimensions=t,this._enabled=i,this._boundarySashes=s,this.sashLeft=r,this._resetSash=o,this._sash=this._register(new Qr(this._domNode,{getVerticalSashTop:a=>0,getVerticalSashLeft:a=>this.sashLeft.get(),getVerticalSashHeight:a=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(a=>{this.sashLeft.set(this._startSashPosition+(a.currentX-a.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(Lt(a=>{const l=this._boundarySashes.read(a);l&&(this._sash.orthogonalEndSash=l.bottom)})),this._register(Lt(a=>{const l=this._enabled.read(a);this._sash.state=l?3:0,this.sashLeft.read(a),this._dimensions.height.read(a),this._sash.layout()}))}}class MCt extends ue{constructor(e,t,i){super(),this._editor=e,this._domNode=t,this.itemProvider=i,this.scrollTop=Vi(this,this._editor.onDidScrollChange,o=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(o=>o===0),this.modelAttached=Vi(this,this._editor.onDidChangeModel,o=>this._editor.hasModel()),this.editorOnDidChangeViewZones=Vr("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=Vr("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=vL("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const s=this._domNode.appendChild(Jt("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),r=new ResizeObserver(()=>{Un(o=>{this.domNodeSizeChanged.trigger(o)})});r.observe(this._domNode),this._register(lt(()=>r.disconnect())),this._register(Lt(o=>{s.className=this.isScrollTopZero.read(o)?"":"scroll-decoration"})),this._register(Lt(o=>this.render(o)))}dispose(){super.dispose(),Ir(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),i=this._editor.getVisibleRanges(),s=new Set(this.views.keys()),r=Yt.ofStartAndLength(0,this._domNode.clientHeight);if(!r.isEmpty)for(const o of i){const a=new xt(o.startLineNumber,o.endLineNumber+1),l=this.itemProvider.getIntersectingGutterItems(a,e);Un(c=>{for(const u of l){if(!u.range.intersect(a))continue;s.delete(u.id);let h=this.views.get(u.id);if(h)h.item.set(u,c);else{const g=document.createElement("div");this._domNode.appendChild(g);const m=Gt("item",u),_=this.itemProvider.createView(m,g);h=new OCt(m,_,g),this.views.set(u.id,h)}const d=u.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(u.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(u.range.startLineNumber-1,!1)-t,p=(u.range.isEmpty?d:this._editor.getBottomForLineNumber(u.range.endLineNumberExclusive-1,!0)-t)-d;h.domNode.style.top=`${d}px`,h.domNode.style.height=`${p}px`,h.gutterItemView.layout(Yt.ofStartAndLength(d,p),r)}})}for(const o of s){const a=this.views.get(o);a.gutterItemView.dispose(),a.domNode.remove(),this.views.delete(o)}}}class OCt{constructor(e,t,i){this.item=e,this.gutterItemView=t,this.domNode=i}}class vIe extends qy{constructor(e){super(),this._getContext=e}runAction(e,t){const i=this._getContext();return super.runAction(e,i)}}class Xde extends rIe{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new ju(e-1,t)}}class FCt extends qy{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new oe),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=ke(e,Pe(".monaco-dropdown")),this._label=ke(this._element,Pe(".dropdown-label"));let i=t.labelRenderer;i||(i=r=>(r.textContent=t.label||"",null));for(const r of[Ae.CLICK,Ae.MOUSE_DOWN,sn.Tap])this._register(ge(this.element,r,o=>ci.stop(o,!0)));for(const r of[Ae.MOUSE_DOWN,sn.Tap])this._register(ge(this._label,r,o=>{Dee(o)&&(o.detail>1||o.button!==0)||(this.visible?this.hide():this.show())}));this._register(ge(this._label,Ae.KEY_UP,r=>{const o=new Ji(r);(o.equals(3)||o.equals(10))&&(ci.stop(r,!0),this.visible?this.hide():this.show())}));const s=i(this._label);s&&this._register(s),this._register(ao.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class BCt extends FCt{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class d4 extends bh{constructor(e,t,i,s=Object.create(null)){super(null,e,s),this.actionItem=null,this._onDidChangeVisibility=this._register(new oe),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=s,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=r=>{this.element=ke(r,Pe("a.action-label"));let o=[];return typeof this.options.classNames=="string"?o=this.options.classNames.split(/\s+/g).filter(a=>!!a):this.options.classNames&&(o=this.options.classNames),o.find(a=>a==="icon")||o.push("codicon"),this.element.classList.add(...o),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register(_d().setupManagedHover(this.options.hoverDelegate??ua("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},i=Array.isArray(this.menuActionsOrProvider),s={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new BCt(e,s)),this._register(this.dropdownMenu.onDidChangeVisibility(r=>{var o;(o=this.element)==null||o.setAttribute("aria-expanded",`${r}`),this._onDidChangeVisibility.fire(r)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const r=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return r.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e??void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;(e=this.dropdownMenu)==null||e.show()}updateEnabled(){var t,i;const e=!this.action.enabled;(t=this.actionItem)==null||t.classList.toggle("disabled",e),(i=this.element)==null||i.classList.toggle("disabled",e)}}class WCt extends ue{constructor(e,t,i={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new Blt),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new be),i.hoverDelegate=i.hoverDelegate??this._register(rx()),this.options=i,this.toggleMenuAction=this._register(new aD(()=>{var s;return(s=this.toggleMenuActionViewItem)==null?void 0:s.show()},i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new uc(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(s,r)=>{if(s.id===aD.ID)return this.toggleMenuActionViewItem=new d4(s,s.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:ft.asClassNameArray(i.moreIcon??Ne.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const o=i.actionViewItemProvider(s,r);if(o)return o}if(s instanceof GS){const o=new d4(s,s.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:s.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return o.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(o),this.disposables.add(this._onDidChangeDropdownVisibility.add(o.onDidChangeVisibility)),o}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach(s=>{this.actionBar.push(s,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(s)})})}getKeybindingLabel(e){var i,s;const t=(s=(i=this.options).getKeyBinding)==null?void 0:s.call(i,e);return(t==null?void 0:t.getLabel())??void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}const T3=class T3 extends dl{constructor(e,t){t=t||v("moreActions","More Actions..."),super(T3.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}};T3.ID="toolbar.toggle.more";let aD=T3;function VCt(n,e){const t=[],i=[];for(const s of n)e.has(s)||t.push(s);for(const s of e)n.has(s)||i.push(s);return{removed:t,added:i}}function HCt(n,e){const t=new Set;for(const i of e)n.has(i)&&t.add(i);return t}class k8{constructor(e,t,i=t){this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=i}toLabel(e,t,i){if(t.length===0)return null;const s=[];for(let r=0,o=t.length;r<o;r++){const a=t[r],l=i(a);if(l===null)return null;s[r]=jCt(a,l,this.modifierLabels[e])}return s.join(" ")}}const gie=new k8({ctrlKey:"⌃",shiftKey:"⇧",altKey:"⌥",metaKey:"⌘",separator:""},{ctrlKey:v({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:v({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:v({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:v({key:"windowsKey",comment:["This is the short form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:v({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:v({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:v({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:v({key:"superKey",comment:["This is the short form for the Super key on the keyboard"]},"Super"),separator:"+"}),$Ct=new k8({ctrlKey:v({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:v({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:v({key:"optKey.long",comment:["This is the long form for the Alt/Option key on the keyboard"]},"Option"),metaKey:v({key:"cmdKey.long",comment:["This is the long form for the Command key on the keyboard"]},"Command"),separator:"+"},{ctrlKey:v({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:v({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:v({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:v({key:"windowsKey.long",comment:["This is the long form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:v({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:v({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:v({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:v({key:"superKey.long",comment:["This is the long form for the Super key on the keyboard"]},"Super"),separator:"+"}),zCt=new k8({ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Cmd",separator:"+"},{ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Super",separator:"+"}),UCt=new k8({ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"cmd",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"win",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"meta",separator:"+"});function jCt(n,e,t){if(e===null)return"";const i=[];return n.ctrlKey&&i.push(t.ctrlKey),n.shiftKey&&i.push(t.shiftKey),n.altKey&&i.push(t.altKey),n.metaKey&&i.push(t.metaKey),e!==""&&i.push(e),i.join(t.separator)}function qCt(n){return n&&typeof n=="object"&&typeof n.original=="string"&&typeof n.value=="string"}function KCt(n){return n?n.condition!==void 0:!1}var QC;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",n[n.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(QC||(QC={}));var Qw;(function(n){n[n.None=0]="None",n[n.Initialized=1]="Initialized",n[n.Closed=2]="Closed"})(Qw||(Qw={}));var Mb;let NW=(Mb=class extends ue{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new $y),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=Qw.None,this.cache=new Map,this.flushDelayer=this._register(new Rxe(Mb.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,i;this._onDidChangeStorage.pause();try{(t=e.changed)==null||t.forEach((s,r)=>this.acceptExternal(r,s)),(i=e.deleted)==null||i.forEach(s=>this.acceptExternal(s,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===Qw.Closed)return;let i=!1;Kl(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return Kl(i)?t:i}getBoolean(e,t){const i=this.get(e);return Kl(i)?t:i==="true"}getNumber(e,t){const i=this.get(e);return Kl(i)?t:parseInt(i,10)}async set(e,t,i=!1){if(this.state===Qw.Closed)return;if(Kl(t))return this.delete(e,i);const s=fr(t)||Array.isArray(t)?k0t(t):String(t);if(this.cache.get(e)!==s)return this.cache.set(e,s),this.pendingInserts.set(e,s),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()}async delete(e,t=!1){if(!(this.state===Qw.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())==null||t()})}async doFlush(e){return this.options.hint===QC.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}},Mb.DEFAULT_FLUSH_DELAY=100,Mb);class AW{constructor(){this.onDidChangeItemsExternal=Oe.None,this.items=new Map}async updateItems(e){var t,i;(t=e.insert)==null||t.forEach((s,r)=>this.items.set(r,s)),(i=e.delete)==null||i.forEach(s=>this.items.delete(s))}}const bM="__$__targetStorageMarker",Ju=ri("storageService");var lD;(function(n){n[n.NONE=0]="NONE",n[n.SHUTDOWN=1]="SHUTDOWN"})(lD||(lD={}));function GCt(n){const e=n.get(bM);if(e)try{return JSON.parse(e)}catch{}return Object.create(null)}const D3=class D3 extends ue{constructor(e={flushInterval:D3.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new $y),this._onDidChangeTarget=this._register(new $y),this._onWillSaveState=this._register(new oe),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return Oe.filter(this._onDidChangeValue.event,s=>s.scope===e&&(t===void 0||s.key===t),i)}emitDidChangeValue(e,t){const{key:i,external:s}=t;if(i===bM){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:s})}get(e,t,i){var s;return(s=this.getStorage(t))==null?void 0:s.get(e,i)}getBoolean(e,t,i){var s;return(s=this.getStorage(t))==null?void 0:s.getBoolean(e,i)}getNumber(e,t,i){var s;return(s=this.getStorage(t))==null?void 0:s.getNumber(e,i)}store(e,t,i,s,r=!1){if(Kl(t)){this.remove(e,i,r);return}this.withPausedEmitters(()=>{var o;this.updateKeyTarget(e,i,s),(o=this.getStorage(i))==null||o.set(e,t,r)})}remove(e,t,i=!1){this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,t,void 0),(s=this.getStorage(t))==null||s.delete(e,i)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i,s=!1){var o,a;const r=this.getKeyTargets(t);typeof i=="number"?r[e]!==i&&(r[e]=i,(o=this.getStorage(t))==null||o.set(bM,JSON.stringify(r),s)):typeof r[e]=="number"&&(delete r[e],(a=this.getStorage(t))==null||a.set(bM,JSON.stringify(r),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?GCt(t):Object.create(null)}};D3.DEFAULT_FLUSH_INTERVAL=60*1e3;let KU=D3;class XCt extends KU{constructor(){super(),this.applicationStorage=this._register(new NW(new AW,{hint:QC.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new NW(new AW,{hint:QC.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new NW(new AW,{hint:QC.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}function YCt(n,e){const t={...e};for(const i in n){const s=n[i];t[i]=s!==void 0?Ue(s):void 0}return t}const ZCt={keybindingLabelBackground:Ue(Ypt),keybindingLabelForeground:Ue(Zpt),keybindingLabelBorder:Ue(Qpt),keybindingLabelBottomBorder:Ue(Jpt),keybindingLabelShadow:Ue(pL)},QCt={buttonForeground:Ue(_Ee),buttonSeparator:Ue(Opt),buttonBackground:Ue(WE),buttonHoverBackground:Ue(Fpt),buttonSecondaryForeground:Ue(Wpt),buttonSecondaryBackground:Ue($z),buttonSecondaryHoverBackground:Ue(Vpt),buttonBorder:Ue(Bpt)},JCt={progressBarBackground:Ue(Yft)},f4={inputActiveOptionBorder:Ue(o8),inputActiveOptionForeground:Ue(a8),inputActiveOptionBackground:Ue(PN)};Ue(VE),Ue(Hpt),Ue($pt),Ue(zpt),Ue(Upt),Ue(jpt),Ue(qpt);Ue(Kpt),Ue(Xpt),Ue(Gpt);Ue($c),Ue(ite),Ue(pL),Ue(mi),Ue(_pt),Ue(vpt),Ue(bpt),Ue(Gft);const p4={inputBackground:Ue(Hz),inputForeground:Ue(gEe),inputBorder:Ue(mEe),inputValidationInfoBorder:Ue(Ipt),inputValidationInfoBackground:Ue(Ept),inputValidationInfoForeground:Ue(kpt),inputValidationWarningBorder:Ue(Npt),inputValidationWarningBackground:Ue(Tpt),inputValidationWarningForeground:Ue(Dpt),inputValidationErrorBorder:Ue(Rpt),inputValidationErrorBackground:Ue(Apt),inputValidationErrorForeground:Ue(Ppt)},eSt={listFilterWidgetBackground:Ue(dgt),listFilterWidgetOutline:Ue(fgt),listFilterWidgetNoMatchesOutline:Ue(pgt),listFilterWidgetShadow:Ue(ggt),inputBoxStyles:p4,toggleStyles:f4},bIe={badgeBackground:Ue(fM),badgeForeground:Ue(Xft),badgeBorder:Ue(mi)};Ue(gpt),Ue(ppt),Ue(Xue),Ue(Xue),Ue(mpt);const M0={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:Ue(egt),listFocusForeground:Ue(tgt),listFocusOutline:Ue(igt),listActiveSelectionBackground:Ue(JS),listActiveSelectionForeground:Ue(DF),listActiveSelectionIconForeground:Ue(vEe),listFocusAndSelectionOutline:Ue(ngt),listFocusAndSelectionBackground:Ue(JS),listFocusAndSelectionForeground:Ue(DF),listInactiveSelectionBackground:Ue(sgt),listInactiveSelectionIconForeground:Ue(ogt),listInactiveSelectionForeground:Ue(rgt),listInactiveFocusBackground:Ue(agt),listInactiveFocusOutline:Ue(lgt),listHoverBackground:Ue(bEe),listHoverForeground:Ue(yEe),listDropOverBackground:Ue(cgt),listDropBetweenBackground:Ue(ugt),listSelectionOutline:Ue(Cn),listHoverOutline:Ue(Cn),treeIndentGuidesStroke:Ue(wEe),treeInactiveIndentGuidesStroke:Ue(mgt),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:Ue(tte),tableColumnsBorder:Ue(_gt),tableOddRowsBackgroundColor:Ue(vgt)};function O0(n){return YCt(n,M0)}const tSt={selectBackground:Ue(l8),selectListBackground:Ue(Mpt),selectForeground:Ue(lte),decoratorRightForeground:Ue(CEe),selectBorder:Ue(cte),focusBorder:Ue(qf),listFocusBackground:Ue(AT),listInactiveSelectionIconForeground:Ue(ute),listFocusForeground:Ue(NT),listFocusOutline:$ft(Cn,Ce.transparent.toString()),listHoverBackground:Ue(bEe),listHoverForeground:Ue(yEe),listHoverOutline:Ue(Cn),selectListBorder:Ue(nte),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},iSt={shadowColor:Ue(pL),borderColor:Ue(bgt),foregroundColor:Ue(ygt),backgroundColor:Ue(wgt),selectionForegroundColor:Ue(Cgt),selectionBackgroundColor:Ue(Sgt),selectionBorderColor:Ue(xgt),separatorColor:Ue(Lgt),scrollbarShadow:Ue(tte),scrollbarSliderBackground:Ue(aEe),scrollbarSliderHoverBackground:Ue(lEe),scrollbarSliderActiveBackground:Ue(cEe)};var I8=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Ea=function(n,e){return function(t,i){e(t,i,n)}};function nSt(n,e,t,i){let s,r,o;if(Array.isArray(n))o=n,s=e,r=t;else{const c=e;o=n.getActions(c),s=t,r=i}const a=ng.getInstance(),l=a.keyStatus.altKey||(qr||ra)&&a.keyStatus.shiftKey;yIe(o,s,l,r?c=>c===r:c=>c==="navigation")}function T8(n,e,t,i,s,r){let o,a,l,c,u;if(Array.isArray(n))u=n,o=e,a=t,l=i,c=s;else{const d=e;u=n.getActions(d),o=t,a=i,l=s,c=r}yIe(u,o,!1,typeof a=="string"?d=>d===a:a,l,c)}function yIe(n,e,t,i=o=>o==="navigation",s=()=>!1,r=!1){let o,a;Array.isArray(e)?(o=e,a=e):(o=e.primary,a=e.secondary);const l=new Set;for(const[c,u]of n){let h;i(c)?(h=o,h.length>0&&r&&h.push(new nr)):(h=a,h.length>0&&h.push(new nr));for(let d of u){t&&(d=d instanceof fl&&d.alt?d.alt:d);const f=h.push(d);d instanceof GS&&l.add({group:c,action:d,index:f-1})}}for(const{group:c,action:u,index:h}of l){const d=i(c)?o:a,f=u.actions;s(u,c,d.length)&&d.splice(h,1,...f)}}let m_=class extends ax{constructor(e,t,i,s,r,o,a,l){super(void 0,e,{icon:!!(e.class||e.item.icon),label:!e.class&&!e.item.icon,draggable:t==null?void 0:t.draggable,keybinding:t==null?void 0:t.keybinding,hoverDelegate:t==null?void 0:t.hoverDelegate}),this._options=t,this._keybindingService=i,this._notificationService=s,this._contextKeyService=r,this._themeService=o,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new rr),this._altKey=ng.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(e){e.preventDefault(),e.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(e){if(super.render(e),e.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var r;const s=!!((r=this._menuItemAction.alt)!=null&&r.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);s!==this._wantsAltCommand&&(this._wantsAltCommand=s,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register(ge(e,"mouseleave",s=>{t=!1,i()})),this._register(ge(e,"mouseenter",s=>{t=!0,i()})),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var r;const e=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),t=e&&e.getLabel(),i=this._commandAction.tooltip||this._commandAction.label;let s=t?v("titleAndKb","{0} ({1})",i,t):i;if(!this._wantsAltCommand&&((r=this._menuItemAction.alt)!=null&&r.enabled)){const o=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,a=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),l=a&&a.getLabel(),c=l?v("titleAndKb","{0} ({1})",o,l):o;s=v("titleAndKbAndAlt",`{0} +[{1}] {2}`,s,gie.modifierLabels[cl].altKey,c)}return s}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const s=this._commandAction.checked&&KCt(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(s)if(ft.isThemeIcon(s)){const r=ft.asClassNameArray(s);i.classList.add(...r),this._itemClassDispose.value=lt(()=>{i.classList.remove(...r)})}else i.style.backgroundImage=ex(this._themeService.getColorTheme().type)?Wg(s.dark):Wg(s.light),i.classList.add("icon"),this._itemClassDispose.value=Pu(lt(()=>{i.style.backgroundImage="",i.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};m_=I8([Ea(2,Ni),Ea(3,ms),Ea(4,bt),Ea(5,Xs),Ea(6,El),Ea(7,xl)],m_);class mie extends m_{render(e){var t;this.options.label=!0,this.options.icon=!1,super.render(e),e.classList.add("text-only"),e.classList.toggle("use-comma",((t=this._options)==null?void 0:t.useComma)??!1)}updateLabel(){var t;const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const i=mie._symbolPrintEnter(e);(t=this._options)!=null&&t.conversational?this.label.textContent=v({key:"content2",comment:['A label with keybindg like "ESC to dismiss"']},"{1} to {0}",this._action.label,i):this.label.textContent=v({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",this._action.label,i)}}static _symbolPrintEnter(e){var t;return(t=e.getLabel())==null?void 0:t.replace(/\benter\b/gi,"⏎").replace(/\bEscape\b/gi,"Esc")}}let GU=class extends d4{constructor(e,t,i,s,r){const o={...t,menuAsChild:(t==null?void 0:t.menuAsChild)??!1,classNames:(t==null?void 0:t.classNames)??(ft.isThemeIcon(e.item.icon)?ft.asClassName(e.item.icon):void 0),keybindingProvider:(t==null?void 0:t.keybindingProvider)??(a=>i.lookupKeybinding(a.id))};super(e,{getActions:()=>e.actions},s,o),this._keybindingService=i,this._contextMenuService=s,this._themeService=r}render(e){super.render(e),yi(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!ft.isThemeIcon(i)){this.element.classList.add("icon");const s=()=>{this.element&&(this.element.style.backgroundImage=ex(this._themeService.getColorTheme().type)?Wg(i.dark):Wg(i.light))};s(),this._register(this._themeService.onDidColorThemeChange(()=>{s()}))}}};GU=I8([Ea(2,Ni),Ea(3,El),Ea(4,Xs)],GU);let XU=class extends bh{constructor(e,t,i,s,r,o,a,l){super(null,e),this._keybindingService=i,this._notificationService=s,this._contextMenuService=r,this._menuService=o,this._instaService=a,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;let c;const u=t!=null&&t.persistLastActionId?l.get(this._storageKey,1):void 0;u&&(c=e.actions.find(d=>u===d.id)),c||(c=e.actions[0]),this._defaultAction=this._instaService.createInstance(m_,c,{keybinding:this._getDefaultActionKeybindingLabel(c)});const h={keybindingProvider:d=>this._keybindingService.lookupKeybinding(d.id),...t,menuAsChild:(t==null?void 0:t.menuAsChild)??!0,classNames:(t==null?void 0:t.classNames)??["codicon","codicon-chevron-down"],actionRunner:(t==null?void 0:t.actionRunner)??new qy};this._dropdown=new d4(e,e.actions,this._contextMenuService,h),this._register(this._dropdown.actionRunner.onDidRun(d=>{d.action instanceof fl&&this.update(d.action)}))}update(e){var t;(t=this._options)!=null&&t.persistLastActionId&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(m_,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends qy{async runAction(i,s){await i.run(void 0)}},this._container&&this._defaultAction.render(Nee(this._container,Pe(".action-container")))}_getDefaultActionKeybindingLabel(e){var i;let t;if((i=this._options)!=null&&i.renderKeybindingWithDefaultActionLabel){const s=this._keybindingService.lookupKeybinding(e.id);s&&(t=`(${s.getLabel()})`)}return t}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=Pe(".action-container");this._defaultAction.render(ke(this._container,t)),this._register(ge(t,Ae.KEY_DOWN,s=>{const r=new Ji(s);r.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),r.stopPropagation())}));const i=Pe(".dropdown-action-container");this._dropdown.render(ke(this._container,i)),this._register(ge(i,Ae.KEY_DOWN,s=>{var o;const r=new Ji(s);r.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(o=this._defaultAction.element)==null||o.focus(),r.stopPropagation())}))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};XU=I8([Ea(2,Ni),Ea(3,ms),Ea(4,El),Ea(5,vc),Ea(6,ct),Ea(7,Ju)],XU);let YU=class extends Iwt{constructor(e,t){super(null,e,e.actions.map(i=>({text:i.id===nr.ID?"─────────":i.label,isDisabled:!i.enabled})),0,t,tSt,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex(i=>i.checked)))}render(e){super.render(e),e.style.borderColor=Ue(cte)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};YU=I8([Ea(1,sm)],YU);function wIe(n,e,t){return e instanceof fl?n.createInstance(m_,e,t):e instanceof BC?e.item.isSelection?n.createInstance(YU,e):e.item.rememberDefaultAction?n.createInstance(XU,e,{...t,persistLastActionId:!0}):n.createInstance(GU,e,t):void 0}var D8=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Pf=function(n,e){return function(t,i){e(t,i,n)}},Tw,KE;let ZU=class{constructor(e,t,i){this._commandService=e,this._keybindingService=t,this._hiddenStates=new QU(i)}createMenu(e,t,i){return new g4(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,this._keybindingService,t)}getMenuActions(e,t,i){const s=new g4(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,this._keybindingService,t),r=s.getActions(i);return s.dispose(),r}resetHiddenStates(e){this._hiddenStates.reset(e)}};ZU=D8([Pf(0,an),Pf(1,Ni),Pf(2,Ju)],ZU);var Ob;let QU=(Ob=class{constructor(e){this._storageService=e,this._disposables=new be,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(Tw._key,0,"{}");this._data=JSON.parse(t)}catch{this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,Tw._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const t=e.get(Tw._key,0,"{}");this._data=JSON.parse(t)}catch(t){console.log("FAILED to read storage after UPDATE",t)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){return this._hiddenByDefaultCache.get(`${e.id}/${t}`)??!1}setDefaultState(e,t,i){this._hiddenByDefaultCache.set(`${e.id}/${t}`,i)}isHidden(e,t){var r;const i=this._isHiddenByDefault(e,t),s=((r=this._data[e.id])==null?void 0:r.includes(t))??!1;return i?!s:s}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const r=this._data[e.id];if(i)r?r.indexOf(t)<0&&r.push(t):this._data[e.id]=[t];else if(r){const o=r.indexOf(t);o>=0&&bht(r,o),r.length===0&&delete this._data[e.id]}this._persist()}reset(e){if(e===void 0)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(Tw._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}},Tw=Ob,Ob._key="menu.hiddenCommands",Ob);QU=Tw=D8([Pf(0,Ju)],QU);class Kk{constructor(e,t){this._id=e,this._collectContextKeysForSubmenus=t,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=this._sort(pr.getMenuItems(this._id));let t;for(const i of e){const s=i.group||"";(!t||t[0]!==s)&&(t=[s,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_sort(e){return e}_collectContextKeys(e){if(Kk._fillInKbExprKeys(e.when,this._structureContextKeys),FC(e)){if(e.command.precondition&&Kk._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;Kk._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&pr.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}}let JU=KE=class extends Kk{constructor(e,t,i,s,r,o){super(e,i),this._hiddenStates=t,this._commandService=s,this._keybindingService=r,this._contextKeyService=o,this.refresh()}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[s,r]=i;let o;for(const a of r)if(this._contextKeyService.contextMatchesRules(a.when)){const l=FC(a);l&&this._hiddenStates.setDefaultState(this._id,a.command.id,!!a.isHiddenByDefault);const c=sSt(this._id,l?a.command:a,this._hiddenStates);if(l){const u=CIe(this._commandService,this._keybindingService,a.command.id,a.when);(o??(o=[])).push(new fl(a.command,a.alt,e,c,u,this._contextKeyService,this._commandService))}else{const u=new KE(a.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(e),h=nr.join(...u.map(d=>d[1]));h.length>0&&(o??(o=[])).push(new BC(a,c,h))}}o&&o.length>0&&t.push([s,o])}return t}_sort(e){return e.sort(KE._compareMenuItems)}static _compareMenuItems(e,t){const i=e.group,s=t.group;if(i!==s){if(i){if(!s)return-1}else return 1;if(i==="navigation")return-1;if(s==="navigation")return 1;const a=i.localeCompare(s);if(a!==0)return a}const r=e.order||0,o=t.order||0;return r<o?-1:r>o?1:KE._compareTitles(FC(e)?e.command.title:e.title,FC(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e=="string"?e:e.original,s=typeof t=="string"?t:t.original;return i.localeCompare(s)}};JU=KE=D8([Pf(3,an),Pf(4,Ni),Pf(5,bt)],JU);let g4=class{constructor(e,t,i,s,r,o){this._disposables=new be,this._menuInfo=new JU(e,t,i.emitEventsForSubmenuChanges,s,r,o);const a=new ji(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},i.eventDebounceDelay);this._disposables.add(a),this._disposables.add(pr.onDidChangeMenu(h=>{h.has(e)&&a.schedule()}));const l=this._disposables.add(new be),c=h=>{let d=!1,f=!1,p=!1;for(const g of h)if(d=d||g.isStructuralChange,f=f||g.isEnablementChange,p=p||g.isToggleChange,d&&f&&p)break;return{menu:this,isStructuralChange:d,isEnablementChange:f,isToggleChange:p}},u=()=>{l.add(o.onDidChangeContext(h=>{const d=h.affectsSome(this._menuInfo.structureContextKeys),f=h.affectsSome(this._menuInfo.preconditionContextKeys),p=h.affectsSome(this._menuInfo.toggledContextKeys);(d||f||p)&&this._onDidChange.fire({menu:this,isStructuralChange:d,isEnablementChange:f,isToggleChange:p})})),l.add(t.onDidChange(h=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new Nxe({onWillAddFirstListener:u,onDidRemoveLastListener:l.clear.bind(l),delay:i.eventDebounceDelay,merge:c}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};g4=D8([Pf(3,an),Pf(4,Ni),Pf(5,bt)],g4);function sSt(n,e,t){const i=Gut(e)?e.submenu.id:e.id,s=typeof e.title=="string"?e.title:e.title.value,r=yb({id:`hide/${n.id}/${i}`,label:v("hide.label","Hide '{0}'",s),run(){t.updateHidden(n,i,!0)}}),o=yb({id:`toggle/${n.id}/${i}`,label:s,get checked(){return!t.isHidden(n,i)},run(){t.updateHidden(n,i,!!this.checked)}});return{hide:r,toggle:o,get isHidden(){return!o.checked}}}function CIe(n,e,t,i=void 0,s=!0){return yb({id:`configureKeybinding/${t}`,label:v("configure keybinding","Configure Keybinding"),enabled:s,run(){const o=!!!e.lookupKeybinding(t)&&i?i.serialize():void 0;n.executeCommand("workbench.action.openGlobalKeybindings",`@command:${t}`+(o?` +when:${o}`:""))}})}var SIe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Lu=function(n,e){return function(t,i){e(t,i,n)}};let cD=class extends WCt{constructor(e,t,i,s,r,o,a,l){super(e,r,{getKeyBinding:u=>o.lookupKeybinding(u.id)??void 0,...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"}),this._options=t,this._menuService=i,this._contextKeyService=s,this._contextMenuService=r,this._keybindingService=o,this._commandService=a,this._sessionDisposables=this._store.add(new be);const c=t==null?void 0:t.telemetrySource;c&&this._store.add(this.actionBar.onDidRun(u=>l.publicLog2("workbenchActionExecuted",{id:u.action.id,from:c})))}setActions(e,t=[],i){var u,h,d;this._sessionDisposables.clear();const s=e.slice(),r=t.slice(),o=[];let a=0;const l=[];let c=!1;if(((u=this._options)==null?void 0:u.hiddenItemStrategy)!==-1)for(let f=0;f<s.length;f++){const p=s[f];!(p instanceof fl)&&!(p instanceof BC)||p.hideActions&&(o.push(p.hideActions.toggle),p.hideActions.toggle.checked&&a++,p.hideActions.isHidden&&(c=!0,s[f]=void 0,((h=this._options)==null?void 0:h.hiddenItemStrategy)!==0&&(l[f]=p)))}if(((d=this._options)==null?void 0:d.overflowBehavior)!==void 0){const f=HCt(new Set(this._options.overflowBehavior.exempted),hi.map(s,m=>m==null?void 0:m.id)),p=this._options.overflowBehavior.maxItems-f.size;let g=0;for(let m=0;m<s.length;m++){const _=s[m];_&&(g++,!f.has(_.id)&&g>=p&&(s[m]=void 0,l[m]=_))}}Eue(s),Eue(l),super.setActions(s,nr.join(l,r)),(o.length>0||s.length>0)&&this._sessionDisposables.add(ge(this.getElement(),"contextmenu",f=>{var b,w,C,S,x;const p=new Iu(ut(this.getElement()),f),g=this.getItemAction(p.target);if(!g)return;p.preventDefault(),p.stopPropagation();const m=[];if(g instanceof fl&&g.menuKeybinding)m.push(g.menuKeybinding);else if(!(g instanceof BC||g instanceof aD)){const k=!!this._keybindingService.lookupKeybinding(g.id);m.push(CIe(this._commandService,this._keybindingService,g.id,void 0,k))}if(o.length>0){let k=!1;if(a===1&&((b=this._options)==null?void 0:b.hiddenItemStrategy)===0){k=!0;for(let L=0;L<o.length;L++)if(o[L].checked){o[L]=yb({id:g.id,label:g.label,checked:!0,enabled:!1,run(){}});break}}if(!k&&(g instanceof fl||g instanceof BC)){if(!g.hideActions)return;m.push(g.hideActions.hide)}else m.push(yb({id:"label",label:v("hide","Hide"),enabled:!1,run(){}}))}const _=nr.join(m,o);(w=this._options)!=null&&w.resetMenu&&!i&&(i=[this._options.resetMenu]),c&&i&&(_.push(new nr),_.push(yb({id:"resetThisMenu",label:v("resetThisMenu","Reset Menu"),run:()=>this._menuService.resetHiddenStates(i)}))),_.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>p,getActions:()=>_,menuId:(C=this._options)==null?void 0:C.contextMenu,menuActionOptions:{renderShortTitle:!0,...(S=this._options)==null?void 0:S.menuOptions},skipTelemetry:typeof((x=this._options)==null?void 0:x.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};cD=SIe([Lu(2,vc),Lu(3,bt),Lu(4,El),Lu(5,Ni),Lu(6,an),Lu(7,Ro)],cD);let m4=class extends cD{constructor(e,t,i,s,r,o,a,l,c){super(e,{resetMenu:t,...i},s,r,o,a,l,c),this._onDidChangeMenuItems=this._store.add(new oe),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const u=this._store.add(s.createMenu(t,r,{emitEventsForSubmenuChanges:!0})),h=()=>{var p,g,m;const d=[],f=[];T8(u,i==null?void 0:i.menuOptions,{primary:d,secondary:f},(p=i==null?void 0:i.toolbarOptions)==null?void 0:p.primaryGroup,(g=i==null?void 0:i.toolbarOptions)==null?void 0:g.shouldInlineSubmenu,(m=i==null?void 0:i.toolbarOptions)==null?void 0:m.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",d.length===0&&f.length===0),super.setActions(d,f)};this._store.add(u.onDidChange(()=>{h(),this._onDidChangeMenuItems.fire(this)})),h()}setActions(){throw new Li("This toolbar is populated from a menu.")}};m4=SIe([Lu(3,vc),Lu(4,bt),Lu(5,El),Lu(6,Ni),Lu(7,an),Lu(8,Ro)],m4);var rSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Yde=function(n,e){return function(t,i){e(t,i,n)}};const rp=ri("hoverService");let cx=class extends ue{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(e,t,i={},s,r){super(),this.placement=e,this.instantHover=t,this.overrideOptions=i,this.configurationService=s,this.hoverService=r,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new be),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(o=>{o.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(e,t){const i=typeof this.overrideOptions=="function"?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const s=ir(e.target)?[e.target]:e.target.targetElements;for(const o of s)this.hoverDisposables.add(os(o,"keydown",a=>{a.equals(9)&&this.hoverService.hideHover()}));const r=ir(e.content)?void 0:e.content.toString();return this.hoverService.showHover({...e,...i,persistence:{hideOnKeyDown:!0,...i.persistence},id:r,appearance:{...e.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...i.appearance}},t)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTime<this.timeLimit}onDidHideHover(){this.hoverDisposables.clear(),this.instantHover&&(this.lastHoverHideTime=Date.now())}};cx=rSt([Yde(3,Xt),Yde(4,rp)],cx);var xIe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},yM=function(n,e){return function(t,i){e(t,i,n)}};const PW=[],DP=35;let ej=class extends ue{constructor(e,t,i,s,r,o,a,l,c){super(),this._diffModel=t,this._editors=i,this._options=s,this._sashLayout=r,this._boundarySashes=o,this._instantiationService=a,this._contextKeyService=l,this._menuService=c,this._menu=this._register(this._menuService.createMenu(et.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=Vi(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(u=>u.length>0),this._showSash=ot(this,u=>this._options.renderSideBySide.read(u)&&this._hasActions.read(u)),this.width=ot(this,u=>this._hasActions.read(u)?DP:0),this.elements=Jt("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:DP+"px"}},[]),this._currentDiff=ot(this,u=>{var p;const h=this._diffModel.read(u);if(!h)return;const d=(p=h.diff.read(u))==null?void 0:p.mappings,f=this._editors.modifiedCursor.read(u);if(f)return d==null?void 0:d.find(g=>g.lineRangeMapping.modified.contains(f.lineNumber))}),this._selectedDiffs=ot(this,u=>{const h=this._diffModel.read(u),d=h==null?void 0:h.diff.read(u);if(!d)return PW;const f=this._editors.modifiedSelections.read(u);if(f.every(_=>_.isEmpty()))return PW;const p=new Oc(f.map(_=>xt.fromRangeInclusive(_))),m=d.mappings.filter(_=>_.lineRangeMapping.innerChanges&&p.intersects(_.lineRangeMapping.modified)).map(_=>({mapping:_,rangeMappings:_.lineRangeMapping.innerChanges.filter(b=>f.some(w=>O.areIntersecting(b.modifiedRange,w)))}));return m.length===0||m.every(_=>_.rangeMappings.length===0)?PW:m}),this._register(Dwt(e,this.elements.root)),this._register(ge(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(zg(this.elements.root,{display:this._hasActions.map(u=>u?"block":"none")})),vo(this,u=>this._showSash.read(u)?new _Ie(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,HN(this,d=>this._sashLayout.sashLeft.read(d)-DP,(d,f)=>this._sashLayout.sashLeft.set(d+DP,f)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new MCt(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(u,h)=>{const d=this._diffModel.read(h);if(!d)return[];const f=d.diff.read(h);if(!f)return[];const p=this._selectedDiffs.read(h);if(p.length>0){const m=hc.fromRangeMappings(p.flatMap(_=>_.rangeMappings));return[new Zde(m,!0,et.DiffEditorSelectionToolbar,void 0,d.model.original.uri,d.model.modified.uri)]}const g=this._currentDiff.read(h);return f.mappings.map(m=>new Zde(m.lineRangeMapping.withInnerChangesFromLineRanges(),m.lineRangeMapping===(g==null?void 0:g.lineRangeMapping),et.DiffEditorHunkToolbar,void 0,d.model.original.uri,d.model.modified.uri))},createView:(u,h)=>this._instantiationService.createInstance(tj,u,h,this)})),this._register(ge(this.elements.gutter,Ae.MOUSE_WHEEL,u=>{this._editors.modified.getOption(104).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(u)},{passive:!1}))}computeStagedValue(e){const t=e.innerChanges??[],i=new Xde(this._editors.modifiedModel.get()),s=new Xde(this._editors.original.getModel());return new iie(t.map(a=>a.toTextEdit(i))).apply(s)}layout(e){this.elements.gutter.style.left=e+"px"}};ej=xIe([yM(6,ct),yM(7,bt),yM(8,vc)],ej);class Zde{constructor(e,t,i,s,r,o){this.mapping=e,this.showAlways=t,this.menuId=i,this.rangeOverride=s,this.originalUri=r,this.modifiedUri=o}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let tj=class extends ue{constructor(e,t,i,s){super(),this._item=e,this._elements=Jt("div.gutterItem",{style:{height:"20px",width:"34px"}},[Jt("div.background@background",{},[]),Jt("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,o=>o.showAlways),this._menuId=this._item.map(this,o=>o.menuId),this._isSmall=Gt(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const r=this._register(s.createInstance(cx,"element",!0,{position:{hoverPosition:1}}));this._register(Yw(t,this._elements.root)),this._register(Lt(o=>{const a=this._showAlways.read(o);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",a),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(Na((o,a)=>{this._elements.buttons.replaceChildren();const l=a.add(s.createInstance(m4,this._elements.buttons,this._menuId.read(o),{orientation:1,hoverDelegate:r,toolbarOptions:{primaryGroup:c=>c.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(o)?1:3},hiddenItemStrategy:0,actionRunner:new vIe(()=>{const c=this._item.get(),u=c.mapping;return{mapping:u,originalWithModifiedChanges:i.computeStagedValue(u),originalUri:c.originalUri,modifiedUri:c.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));a.add(l.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let i=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&e.length<30,void 0),i=this._elements.buttons.clientHeight;const s=e.length/2-i/2,r=i;let o=e.start+s;const a=Yt.tryCreate(r,t.endExclusive-r-i),l=Yt.tryCreate(e.start+r,e.endExclusive-i-r);l&&a&&l.start<l.endExclusive&&(o=a.clip(o),o=l.clip(o)),this._elements.buttons.style.top=`${o-e.start}px`}};tj=xIe([yM(3,ct)],tj);function ll(n){return ij.get(n)}const Wm=class Wm extends ue{static get(e){let t=Wm._map.get(e);if(!t){t=new Wm(e),Wm._map.set(e,t);const i=e.onDidDispose(()=>{const s=Wm._map.get(e);s&&(Wm._map.delete(e),s.dispose(),i.dispose())})}return t}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new _L(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const e=this._currentTransaction;this._currentTransaction=void 0,e.finish()}}constructor(e){var t;super(),this.editor=e,this._updateCounter=0,this._currentTransaction=void 0,this._model=Gt(this,this.editor.getModel()),this.model=this._model,this.isReadonly=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(92)),this._versionId=xU({owner:this,lazy:!0},((t=this.editor.getModel())==null?void 0:t.getVersionId())??null),this.versionId=this._versionId,this._selections=xU({owner:this,equalsFn:wU(JF(nt.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.isFocused=Vi(this,i=>{const s=this.editor.onDidFocusEditorWidget(i),r=this.editor.onDidBlurEditorWidget(i);return{dispose(){s.dispose(),r.dispose()}}},()=>this.editor.hasWidgetFocus()),this.value=HN(this,i=>{var s;return this.versionId.read(i),((s=this.model.read(i))==null?void 0:s.getValue())??""},(i,s)=>{const r=this.model.get();r!==null&&i!==r.getValue()&&r.setValue(i)}),this.valueIsEmpty=ot(this,i=>{var s;return this.versionId.read(i),((s=this.editor.getModel())==null?void 0:s.getValueLength())===0}),this.cursorSelection=Gl({owner:this,equalsFn:wU(nt.selectionsEqual)},i=>{var s;return((s=this.selections.read(i))==null?void 0:s[0])??null}),this.onDidType=vL(this),this.scrollTop=Vi(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=Vi(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=Vi(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(i=>i.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(i=>i.decorationsLeft),this.contentWidth=Vi(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this._overlayWidgetCounter=0,this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(i=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,i)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(i=>{var s;this._beginUpdate();try{this._versionId.set(((s=this.editor.getModel())==null?void 0:s.getVersionId())??null,this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(i=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}}))}forceUpdate(e){this._beginUpdate();try{return this._forceUpdate(),e?e(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){var e;this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(((e=this.editor.getModel())==null?void 0:e.getVersionId())??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(e){return Vi(this,t=>this.editor.onDidChangeConfiguration(i=>{i.hasChanged(e)&&t(void 0)}),()=>this.editor.getOption(e))}setDecorations(e){const t=new be,i=this.editor.createDecorationsCollection();return t.add($N({owner:this,debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const r=e.read(s);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}createOverlayWidget(e){const t="observableOverlayWidget"+this._overlayWidgetCounter++,i={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow,getMinContentWidthInPx:()=>e.minContentWidthInPx.get()};this.editor.addOverlayWidget(i);const s=Lt(r=>{e.position.read(r),e.minContentWidthInPx.read(r),this.editor.layoutOverlayWidget(i)});return lt(()=>{s.dispose(),this.editor.removeOverlayWidget(i)})}};Wm._map=new Map;let ij=Wm;function nj(n,e){return Ryt({createEmptyChangeSummary:()=>({deltas:[],didChange:!1}),handleChange:(t,i)=>{if(t.didChange(n)){const s=t.change;s!==void 0&&i.deltas.push(s),i.didChange=!0}return!0}},(t,i)=>{const s=n.read(t);i.didChange&&e(s,i.deltas)})}function oSt(n,e){const t=new be,i=nj(n,(s,r)=>{t.clear(),e(s,r,t)});return{dispose(){i.dispose(),t.dispose()}}}var aSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},lSt=function(n,e){return function(t,i){e(t,i,n)}},wM,Fb;let _4=(Fb=class extends ue{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=s,this._modifiedOutlineSource=vo(this,l=>{const c=this._editors.modifiedModel.read(l),u=wM._breadcrumbsSourceFactory.read(l);return!c||!u?void 0:u(c,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();Un(u=>{for(const h of this._editors.original.getSelections()||[])c==null||c.ensureOriginalLineIsVisible(h.getStartPosition().lineNumber,0,u),c==null||c.ensureOriginalLineIsVisible(h.getEndPosition().lineNumber,0,u)})})),this._register(this._editors.modified.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();Un(u=>{for(const h of this._editors.modified.getSelections()||[])c==null||c.ensureModifiedLineIsVisible(h.getStartPosition().lineNumber,0,u),c==null||c.ensureModifiedLineIsVisible(h.getEndPosition().lineNumber,0,u)})}));const r=this._diffModel.map((l,c)=>{var h;const u=(l==null?void 0:l.unchangedRegions.read(c))??[];return u.length===1&&u[0].modifiedLineNumber===1&&u[0].lineCount===((h=this._editors.modifiedModel.read(c))==null?void 0:h.getLineCount())?[]:u});this.viewZones=R_(this,(l,c)=>{const u=this._modifiedOutlineSource.read(l);if(!u)return{origViewZones:[],modViewZones:[]};const h=[],d=[],f=this._options.renderSideBySide.read(l),p=this._options.compactMode.read(l),g=r.read(l);for(let m=0;m<g.length;m++){const _=g[m];if(!_.shouldHideControls(l)&&!(p&&(m===0||m===g.length-1)))if(p){{const b=ot(this,C=>_.getHiddenOriginalRange(C).startLineNumber-1),w=new Zw(b,12);h.push(w),c.add(new Qde(this._editors.original,w,_,!f))}{const b=ot(this,C=>_.getHiddenModifiedRange(C).startLineNumber-1),w=new Zw(b,12);d.push(w),c.add(new Qde(this._editors.modified,w,_))}}else{{const b=ot(this,C=>_.getHiddenOriginalRange(C).startLineNumber-1),w=new Zw(b,24);h.push(w),c.add(new Jde(this._editors.original,w,_,_.originalUnchangedRange,!f,u,C=>this._diffModel.get().ensureModifiedLineIsVisible(C,2,void 0),this._options))}{const b=ot(this,C=>_.getHiddenModifiedRange(C).startLineNumber-1),w=new Zw(b,24);d.push(w),c.add(new Jde(this._editors.modified,w,_,_.modifiedUnchangedRange,!1,u,C=>this._diffModel.get().ensureModifiedLineIsVisible(C,2,void 0),this._options))}}}return{origViewZones:h,modViewZones:d}});const o={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},a={description:"Fold Unchanged",glyphMarginHoverMessage:new to(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(v("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+ft.asClassName(Ne.fold),zIndex:10001};this._register(n4(this._editors.original,ot(this,l=>{const c=r.read(l),u=c.map(h=>({range:h.originalUnchangedRange.toInclusiveRange(),options:o}));for(const h of c)h.shouldHideControls(l)&&u.push({range:O.fromPositions(new se(h.originalLineNumber,1)),options:a});return u}))),this._register(n4(this._editors.modified,ot(this,l=>{const c=r.read(l),u=c.map(h=>({range:h.modifiedUnchangedRange.toInclusiveRange(),options:o}));for(const h of c)h.shouldHideControls(l)&&u.push({range:xt.ofLength(h.modifiedLineNumber,1).toInclusiveRange(),options:a});return u}))),this._register(Lt(l=>{const c=r.read(l);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(c.map(u=>u.getHiddenOriginalRange(l).toInclusiveRange()).filter(Nf)),this._editors.modified.setHiddenAreas(c.map(u=>u.getHiddenModifiedRange(l).toInclusiveRange()).filter(Nf))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&((c=l.target.element)!=null&&c.className.includes("fold-unchanged"))){const u=l.target.position.lineNumber,h=this._diffModel.get();if(!h)return;const d=h.unchangedRegions.get().find(f=>f.modifiedUnchangedRange.includes(u));if(!d)return;d.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&((c=l.target.element)!=null&&c.className.includes("fold-unchanged"))){const u=l.target.position.lineNumber,h=this._diffModel.get();if(!h)return;const d=h.unchangedRegions.get().find(f=>f.originalUnchangedRange.includes(u));if(!d)return;d.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}}))}},wM=Fb,Fb._breadcrumbsSourceFactory=Gt(wM,()=>({dispose(){},getBreadcrumbItems(e,t){return[]}})),Fb);_4=wM=aSt([lSt(3,ct)],_4);class Qde extends tie{constructor(e,t,i,s=!1){const r=Jt("div.diff-hidden-lines-widget");super(e,t,r.root),this._unchangedRegion=i,this._hide=s,this._nodes=Jt("div.diff-hidden-lines-compact",[Jt("div.line-left",[]),Jt("div.text@text",[]),Jt("div.line-right",[])]),r.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register(Lt(o=>{if(!this._hide){const a=this._unchangedRegion.getHiddenModifiedRange(o).length,l=v("hiddenLines","{0} hidden lines",a);this._nodes.text.innerText=l}}))}}class Jde extends tie{constructor(e,t,i,s,r,o,a,l){const c=Jt("div.diff-hidden-lines-widget");super(e,t,c.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=s,this._hide=r,this._modifiedOutlineSource=o,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=Jt("div.diff-hidden-lines",[Jt("div.top@top",{title:v("diff.hiddenLines.top","Click or drag to show more above")}),Jt("div.center@content",{style:{display:"flex"}},[Jt("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[Pe("a",{title:v("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...L1("$(unfold)"))]),Jt("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),Jt("div.bottom@bottom",{title:v("diff.bottom","Click or drag to show more below"),role:"button"})]),c.root.appendChild(this._nodes.root),this._hide?Ir(this._nodes.first):this._register(zg(this._nodes.first,{width:ll(this._editor).layoutInfoContentLeft})),this._register(Lt(h=>{const d=this._unchangedRegion.visibleLineCountTop.read(h)+this._unchangedRegion.visibleLineCountBottom.read(h)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!d),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),this._nodes.top.classList.toggle("canMoveBottom",!d);const f=this._unchangedRegion.isDragged.read(h),p=this._editor.getDomNode();p&&(p.classList.toggle("draggingUnchangedRegion",!!f),f==="top"?(p.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),p.classList.toggle("canMoveBottom",!d)):f==="bottom"?(p.classList.toggle("canMoveTop",!d),p.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0)):(p.classList.toggle("canMoveTop",!1),p.classList.toggle("canMoveBottom",!1)))}));const u=this._editor;this._register(ge(this._nodes.top,"mousedown",h=>{if(h.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const d=h.clientY;let f=!1;const p=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const g=ut(this._nodes.top),m=ge(g,"mousemove",b=>{const C=b.clientY-d;f=f||Math.abs(C)>2;const S=Math.round(C/u.getOption(67)),x=Math.max(0,Math.min(p+S,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(x,void 0)}),_=ge(g,"mouseup",b=>{f||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),m.dispose(),_.dispose()})})),this._register(ge(this._nodes.bottom,"mousedown",h=>{if(h.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const d=h.clientY;let f=!1;const p=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const g=ut(this._nodes.bottom),m=ge(g,"mousemove",b=>{const C=b.clientY-d;f=f||Math.abs(C)>2;const S=Math.round(C/u.getOption(67)),x=Math.max(0,Math.min(p-S,this._unchangedRegion.getMaxVisibleLineCountBottom())),k=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(x,void 0);const L=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(L-k))}),_=ge(g,"mouseup",b=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!f){const w=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const C=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(C-w))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),m.dispose(),_.dispose()})})),this._register(Lt(h=>{const d=[];if(!this._hide){const f=i.getHiddenModifiedRange(h).length,p=v("hiddenLines","{0} hidden lines",f),g=Pe("span",{title:v("diff.hiddenLines.expandAll","Double click to unfold")},p);g.addEventListener("dblclick",b=>{b.button===0&&(b.preventDefault(),this._unchangedRegion.showAll(void 0))}),d.push(g);const m=this._unchangedRegion.getHiddenModifiedRange(h),_=this._modifiedOutlineSource.getBreadcrumbItems(m,h);if(_.length>0){d.push(Pe("span",void 0,"  |  "));for(let b=0;b<_.length;b++){const w=_[b],C=BF.toIcon(w.kind),S=Jt("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[Qy(C)," ",w.name,...b===_.length-1?[]:[Qy(Ne.chevronRight)]]).root;d.push(S),S.onclick=()=>{this._revealModifiedHiddenLine(w.startLineNumber)}}}}Ir(this._nodes.others,...d)}))}}var cSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},uSt=function(n,e){return function(t,i){e(t,i,n)}},rh,hg;let uD=(hg=class extends ue{constructor(e,t,i,s,r,o,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=s,this._rootHeight=r,this._modifiedEditorLayoutInfo=o,this._themeService=a,this.width=rh.ENTIRE_DIFF_OVERVIEW_WIDTH;const l=Vi(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),c=ot(d=>{const f=l.read(d),p=f.getColor(dpt)||(f.getColor(upt)||Mz).transparent(2),g=f.getColor(fpt)||(f.getColor(hpt)||Oz).transparent(2);return{insertColor:p,removeColor:g}}),u=Pi(document.createElement("div"));u.setClassName("diffViewport"),u.setPosition("absolute");const h=Jt("div.diffOverview",{style:{position:"absolute",top:"0px",width:rh.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(Yw(h,u.domNode)),this._register(os(h,Ae.POINTER_DOWN,d=>{this._editors.modified.delegateVerticalScrollbarPointerDown(d)})),this._register(ge(h,Ae.MOUSE_WHEEL,d=>{this._editors.modified.delegateScrollFromMouseWheelEvent(d)},{passive:!1})),this._register(Yw(this._rootElement,h)),this._register(Na((d,f)=>{const p=this._diffModel.read(d),g=this._editors.original.createOverviewRuler("original diffOverviewRuler");g&&(f.add(g),f.add(Yw(h,g.getDomNode())));const m=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(m&&(f.add(m),f.add(Yw(h,m.getDomNode()))),!g||!m)return;const _=Vr("viewZoneChanged",this._editors.original.onDidChangeViewZones),b=Vr("viewZoneChanged",this._editors.modified.onDidChangeViewZones),w=Vr("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),C=Vr("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);f.add(Lt(S=>{var I;_.read(S),b.read(S),w.read(S),C.read(S);const x=c.read(S),k=(I=p==null?void 0:p.diff.read(S))==null?void 0:I.mappings;function L(T,N,M){const V=M._getViewModel();return V?T.filter(W=>W.length>0).map(W=>{const B=V.coordinatesConverter.convertModelPositionToViewPosition(new se(W.startLineNumber,1)),$=V.coordinatesConverter.convertModelPositionToViewPosition(new se(W.endLineNumberExclusive,1)),Y=$.lineNumber-B.lineNumber;return new tke(B.lineNumber,$.lineNumber,Y,N.toString())}):[]}const E=L((k||[]).map(T=>T.lineRangeMapping.original),x.removeColor,this._editors.original),A=L((k||[]).map(T=>T.lineRangeMapping.modified),x.insertColor,this._editors.modified);g==null||g.setZones(E),m==null||m.setZones(A)})),f.add(Lt(S=>{const x=this._rootHeight.read(S),k=this._rootWidth.read(S),L=this._modifiedEditorLayoutInfo.read(S);if(L){const E=rh.ENTIRE_DIFF_OVERVIEW_WIDTH-2*rh.ONE_OVERVIEW_WIDTH;g.setLayout({top:0,height:x,right:E+rh.ONE_OVERVIEW_WIDTH,width:rh.ONE_OVERVIEW_WIDTH}),m.setLayout({top:0,height:x,right:0,width:rh.ONE_OVERVIEW_WIDTH});const A=this._editors.modifiedScrollTop.read(S),I=this._editors.modifiedScrollHeight.read(S),T=this._editors.modified.getOption(104),N=new ix(T.verticalHasArrows?T.arrowSize:0,T.verticalScrollbarSize,0,L.height,I,A);u.setTop(N.getSliderPosition()),u.setHeight(N.getSliderSize())}else u.setTop(0),u.setHeight(0);h.style.height=x+"px",h.style.left=k-rh.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",u.setWidth(rh.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}},rh=hg,hg.ONE_OVERVIEW_WIDTH=15,hg.ENTIRE_DIFF_OVERVIEW_WIDTH=hg.ONE_OVERVIEW_WIDTH*2,hg);uD=rh=cSt([uSt(6,Xs)],uD);const RW=[];class hSt extends ue{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=s,this._selectedDiffs=ot(this,r=>{const o=this._diffModel.read(r),a=o==null?void 0:o.diff.read(r);if(!a)return RW;const l=this._editors.modifiedSelections.read(r);if(l.every(d=>d.isEmpty()))return RW;const c=new Oc(l.map(d=>xt.fromRangeInclusive(d))),h=a.mappings.filter(d=>d.lineRangeMapping.innerChanges&&c.intersects(d.lineRangeMapping.modified)).map(d=>({mapping:d,rangeMappings:d.lineRangeMapping.innerChanges.filter(f=>l.some(p=>O.areIntersecting(f.modifiedRange,p)))}));return h.length===0||h.every(d=>d.rangeMappings.length===0)?RW:h}),this._register(Na((r,o)=>{if(!this._options.shouldRenderOldRevertArrows.read(r))return;const a=this._diffModel.read(r),l=a==null?void 0:a.diff.read(r);if(!a||!l||a.movedTextToCompare.read(r))return;const c=[],u=this._selectedDiffs.read(r),h=new Set(u.map(d=>d.mapping));if(u.length>0){const d=this._editors.modifiedSelections.read(r),f=o.add(new v4(d[d.length-1].positionLineNumber,this._widget,u.flatMap(p=>p.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}for(const d of l.mappings)if(!h.has(d)&&!d.lineRangeMapping.modified.isEmpty&&d.lineRangeMapping.innerChanges){const f=o.add(new v4(d.lineRangeMapping.modified.startLineNumber,this._widget,d.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}o.add(lt(()=>{for(const d of c)this._editors.modified.removeGlyphMarginWidget(d)}))}))}}const N3=class N3 extends ue{getId(){return this._id}constructor(e,t,i,s){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=s,this._id=`revertButton${N3.counter++}`,this._domNode=Jt("div.revertButton",{title:this._revertSelection?v("revertSelectedChanges","Revert Selected Changes"):v("revertChange","Revert Change")},[Qy(Ne.arrowRight)]).root,this._register(ge(this._domNode,Ae.MOUSE_DOWN,r=>{r.button!==2&&(r.stopPropagation(),r.preventDefault())})),this._register(ge(this._domNode,Ae.MOUSE_UP,r=>{r.stopPropagation(),r.preventDefault()})),this._register(ge(this._domNode,Ae.CLICK,r=>{this._diffs instanceof Co?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),r.stopPropagation(),r.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Uu.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}};N3.counter=0;let v4=N3;function dSt(n,e,t){return Oyt({debugName:()=>`Configuration Key "${n}"`},i=>t.onDidChangeConfiguration(s=>{s.affectsConfiguration(n)&&i(s)}),()=>t.getValue(n)??e)}function lh(n,e,t){const i=n.bindTo(e);return $N({debugName:()=>`Set Context Key "${n.key}"`},s=>{i.set(t(s))})}const LIe=ri("progressService"),Jne=class Jne{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}};Jne.None=Object.freeze({report(){}});let Rf=Jne;const B_=ri("editorProgressService");var fSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},efe=function(n,e){return function(t,i){e(t,i,n)}};let sj=class extends ue{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,s,r,o,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._argCodeEditorWidgetOptions=s,this._createInnerEditor=r,this._instantiationService=o,this._keybindingService=a,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new oe),this.modifiedScrollTop=Vi(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=Vi(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=ll(this.modified),this.originalObs=ll(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=Vi(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=Gl({owner:this,equalsFn:se.equals},l=>{var c;return((c=this.modifiedSelections.read(l)[0])==null?void 0:c.getPosition())??new se(1,1)}),this.originalCursor=Vi(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new se(1,1)),this._argCodeEditorWidgetOptions=null,this._register(zN({createEmptyChangeSummary:()=>({}),handleChange:(l,c)=>(l.didChange(i.editorOptions)&&Object.assign(c,l.change.changedOptions),!0)},(l,c)=>{i.editorOptions.read(l),this._options.renderSideBySide.read(l),this.modified.updateOptions(this._adjustOptionsForRightHandSide(l,c)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(l,c))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return s.setContextValue("isInDiffLeftEditor",!0),s}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return s.setContextValue("isInDiffRightEditor",!0),s}_constructInnerEditor(e,t,i,s){const r=this._createInnerEditor(e,t,i,s);return this._register(r.onDidContentSizeChange(o=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+uD.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:o.contentHeightChanged,contentWidthChanged:o.contentWidthChanged})})),r}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=gd.revealHorizontalRightPadding.defaultValue+uD.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var i;e||(e="");const t=v("diff-aria-navigation-tip"," use {0} to open the accessibility help.",(i=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))==null?void 0:i.getAriaLabel());return this._options.accessibilityVerbose.get()?e+t:e?e.replaceAll(t,""):""}};sj=fSt([efe(5,ct),efe(6,Ni)],sj);const A3=class A3 extends ue{constructor(){super(...arguments),this._id=++A3.idCounter,this._onDidDispose=this._register(new oe),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t="api"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t="api"){this._targetEditor.setSelection(e,t)}setSelections(e,t="api"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,s=!0){this._targetEditor.revealRange(e,t,i,s)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}};A3.idCounter=0;let rj=A3;const Pr={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0,useTrueInlineView:!1},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0,compactMode:!1};var pSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},gSt=function(n,e){return function(t,i){e(t,i,n)}};let oj=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=Gt(this,0),this._screenReaderMode=Vi(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=ot(this,s=>this._options.read(s).renderSideBySide&&this._diffEditorWidth.read(s)<=this._options.read(s).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=ot(this,s=>this._options.read(s).renderOverviewRuler),this.renderSideBySide=ot(this,s=>this.compactMode.read(s)&&this.shouldRenderInlineViewInSmartMode.read(s)?!1:this._options.read(s).renderSideBySide&&!(this._options.read(s).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(s)&&!this._screenReaderMode.read(s))),this.readOnly=ot(this,s=>this._options.read(s).readOnly),this.shouldRenderOldRevertArrows=ot(this,s=>!(!this._options.read(s).renderMarginRevertIcon||!this.renderSideBySide.read(s)||this.readOnly.read(s)||this.shouldRenderGutterMenu.read(s))),this.shouldRenderGutterMenu=ot(this,s=>this._options.read(s).renderGutterMenu),this.renderIndicators=ot(this,s=>this._options.read(s).renderIndicators),this.enableSplitViewResizing=ot(this,s=>this._options.read(s).enableSplitViewResizing),this.splitViewDefaultRatio=ot(this,s=>this._options.read(s).splitViewDefaultRatio),this.ignoreTrimWhitespace=ot(this,s=>this._options.read(s).ignoreTrimWhitespace),this.maxComputationTimeMs=ot(this,s=>this._options.read(s).maxComputationTime),this.showMoves=ot(this,s=>this._options.read(s).experimental.showMoves&&this.renderSideBySide.read(s)),this.isInEmbeddedEditor=ot(this,s=>this._options.read(s).isInEmbeddedEditor),this.diffWordWrap=ot(this,s=>this._options.read(s).diffWordWrap),this.originalEditable=ot(this,s=>this._options.read(s).originalEditable),this.diffCodeLens=ot(this,s=>this._options.read(s).diffCodeLens),this.accessibilityVerbose=ot(this,s=>this._options.read(s).accessibilityVerbose),this.diffAlgorithm=ot(this,s=>this._options.read(s).diffAlgorithm),this.showEmptyDecorations=ot(this,s=>this._options.read(s).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=ot(this,s=>this._options.read(s).onlyShowAccessibleDiffViewer),this.compactMode=ot(this,s=>this._options.read(s).compactMode),this.trueInlineDiffRenderingEnabled=ot(this,s=>this._options.read(s).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=ot(this,s=>!this.renderSideBySide.read(s)&&this.trueInlineDiffRenderingEnabled.read(s)),this.hideUnchangedRegions=ot(this,s=>this._options.read(s).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=ot(this,s=>this._options.read(s).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=ot(this,s=>this._options.read(s).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=ot(this,s=>this._options.read(s).hideUnchangedRegions.minimumLineCount),this._model=Gt(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,s=>Vyt(this,r=>{const o=s==null?void 0:s.diff.read(r);return o?mSt(o,this.trueInlineDiffRenderingEnabled.read(r)):void 0})).flatten().map(this,s=>!!s),this.inlineViewHideOriginalLineNumbers=this.compactMode;const i={...e,...tfe(e,Pr)};this._options=Gt(this,i)}updateOptions(e){const t=tfe(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}setModel(e){this._model.set(e,void 0)}};oj=pSt([gSt(1,xl)],oj);function mSt(n,e){return n.mappings.every(t=>_St(t.lineRangeMapping)||vSt(t.lineRangeMapping)||e&&hie(t.lineRangeMapping))}function _St(n){return n.original.length===0}function vSt(n){return n.modified.length===0}function tfe(n,e){var t,i,s,r,o,a,l,c;return{enableSplitViewResizing:at(n.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:Bdt(n.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:at(n.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:at(n.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:gv(n.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:gv(n.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:at(n.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:at(n.renderIndicators,e.renderIndicators),originalEditable:at(n.originalEditable,e.originalEditable),diffCodeLens:at(n.diffCodeLens,e.diffCodeLens),renderOverviewRuler:at(n.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:Kn(n.diffWordWrap,e.diffWordWrap,["off","on","inherit"]),diffAlgorithm:Kn(n.diffAlgorithm,e.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:at(n.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:at((t=n.experimental)==null?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:at((i=n.experimental)==null?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations),useTrueInlineView:at((s=n.experimental)==null?void 0:s.useTrueInlineView,e.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:at(((r=n.hideUnchangedRegions)==null?void 0:r.enabled)??((o=n.experimental)==null?void 0:o.collapseUnchangedRegions),e.hideUnchangedRegions.enabled),contextLineCount:gv((a=n.hideUnchangedRegions)==null?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:gv((l=n.hideUnchangedRegions)==null?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:gv((c=n.hideUnchangedRegions)==null?void 0:c.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:at(n.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:at(n.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:gv(n.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:at(n.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited),renderGutterMenu:at(n.renderGutterMenu,e.renderGutterMenu),compactMode:at(n.compactMode,e.compactMode)}}var bSt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},pE=function(n,e){return function(t,i){e(t,i,n)}};let Ug=class extends rj{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,s,r,o,a,l){super(),this._domElement=e,this._parentContextKeyService=s,this._parentInstantiationService=r,this._accessibilitySignalService=a,this._editorProgressService=l,this.elements=Jt("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[Jt("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),Jt("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),Jt("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register(JT(this,void 0)),this._diffModel=ot(this,C=>{var S;return(S=this._diffModelSrc.read(C))==null?void 0:S.object}),this.onDidChangeModel=Oe.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new VN([bt,this._contextKeyService]))),this._boundarySashes=Gt(this,void 0),this._accessibleDiffViewerShouldBeVisible=Gt(this,!1),this._accessibleDiffViewerVisible=ot(this,C=>this._options.onlyShowAccessibleDiffViewer.read(C)?!0:this._accessibleDiffViewerShouldBeVisible.read(C)),this._movedBlocksLinesPart=Gt(this,void 0),this._layoutInfo=ot(this,C=>{var B,$;const S=this._rootSizeObserver.width.read(C),x=this._rootSizeObserver.height.read(C);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=x+"px";const k=this._sash.read(C),L=this._gutter.read(C),E=(L==null?void 0:L.width.read(C))??0,A=((B=this._overviewRulerPart.read(C))==null?void 0:B.width)??0;let I,T,N,M,V;if(!!k){const Y=k.sashLeft.read(C),le=(($=this._movedBlocksLinesPart.read(C))==null?void 0:$.width.read(C))??0;I=0,T=Y-E-le,V=Y-E,N=Y,M=S-N-A}else{V=0;const Y=this._options.inlineViewHideOriginalLineNumbers.read(C);I=E,Y?T=0:T=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(C)),N=E+T,M=S-N-A}return this.elements.original.style.left=I+"px",this.elements.original.style.width=T+"px",this._editors.original.layout({width:T,height:x},!0),L==null||L.layout(V),this.elements.modified.style.left=N+"px",this.elements.modified.style.width=M+"px",this._editors.modified.layout({width:M,height:x},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((C,S)=>C==null?void 0:C.diff.read(S)),this.onDidUpdateDiff=Oe.fromObservableLight(this._diffValue),o.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(lt(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new sIe(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout(t.automaticLayout??!1),this._options=this._instantiationService.createInstance(oj,t),this._register(Lt(C=>{this._options.setWidth(this._rootSizeObserver.width.read(C))})),this._contextKeyService.createKey(H.isEmbeddedDiffEditor.key,!1),this._register(lh(H.isEmbeddedDiffEditor,this._contextKeyService,C=>this._options.isInEmbeddedEditor.read(C))),this._register(lh(H.comparingMovedCode,this._contextKeyService,C=>{var S;return!!((S=this._diffModel.read(C))!=null&&S.movedTextToCompare.read(C))})),this._register(lh(H.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,C=>this._options.couldShowInlineViewBecauseOfSize.read(C))),this._register(lh(H.diffEditorInlineMode,this._contextKeyService,C=>!this._options.renderSideBySide.read(C))),this._register(lh(H.hasChanges,this._contextKeyService,C=>{var S,x;return(((x=(S=this._diffModel.read(C))==null?void 0:S.diff.read(C))==null?void 0:x.mappings.length)??0)>0})),this._editors=this._register(this._instantiationService.createInstance(sj,this.elements.original,this.elements.modified,this._options,i,(C,S,x,k)=>this._createInnerEditor(C,S,x,k))),this._register(lh(H.diffEditorOriginalWritable,this._contextKeyService,C=>this._options.originalEditable.read(C))),this._register(lh(H.diffEditorModifiedWritable,this._contextKeyService,C=>!this._options.readOnly.read(C))),this._register(lh(H.diffEditorOriginalUri,this._contextKeyService,C=>{var S;return((S=this._diffModel.read(C))==null?void 0:S.model.original.uri.toString())??""})),this._register(lh(H.diffEditorModifiedUri,this._contextKeyService,C=>{var S;return((S=this._diffModel.read(C))==null?void 0:S.model.modified.uri.toString())??""})),this._overviewRulerPart=vo(this,C=>this._options.renderOverviewRuler.read(C)?this._instantiationService.createInstance(el(uD,C),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(S=>S.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const c={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((C,S)=>{var x;return C-(((x=this._overviewRulerPart.read(S))==null?void 0:x.width)??0)})};this._sashLayout=new RCt(this._options,c),this._sash=vo(this,C=>{const S=this._options.renderSideBySide.read(C);return this.elements.root.classList.toggle("side-by-side",S),S?new _Ie(this.elements.root,c,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const u=vo(this,C=>this._instantiationService.createInstance(el(_4,C),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);vo(this,C=>this._instantiationService.createInstance(el(ICt,C),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const h=new Set,d=new Set;let f=!1;const p=vo(this,C=>this._instantiationService.createInstance(el(qU,C),ut(this._domElement),this._editors,this._diffModel,this._options,this,()=>f||u.get().isUpdatingHiddenAreas,h,d)).recomputeInitiallyAndOnChange(this._store),g=ot(this,C=>{const S=p.read(C).viewZones.read(C).orig,x=u.read(C).viewZones.read(C).origViewZones;return S.concat(x)}),m=ot(this,C=>{const S=p.read(C).viewZones.read(C).mod,x=u.read(C).viewZones.read(C).modViewZones;return S.concat(x)});this._register(s4(this._editors.original,g,C=>{f=C},h));let _;this._register(s4(this._editors.modified,m,C=>{f=C,f?_=id.capture(this._editors.modified):(_==null||_.restore(this._editors.modified),_=void 0)},d)),this._accessibleDiffViewer=vo(this,C=>this._instantiationService.createInstance(el(ob,C),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(S,x)=>this._accessibleDiffViewerShouldBeVisible.set(S,x),this._options.onlyShowAccessibleDiffViewer.map(S=>!S),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((S,x)=>{var k;return(k=S==null?void 0:S.diff.read(x))==null?void 0:k.mappings.map(L=>L.lineRangeMapping)}),new Zwt(this._editors))).recomputeInitiallyAndOnChange(this._store);const b=this._accessibleDiffViewerVisible.map(C=>C?"hidden":"visible");this._register(zg(this.elements.modified,{visibility:b})),this._register(zg(this.elements.original,{visibility:b})),this._createDiffEditorContributions(),o.addDiffEditor(this),this._gutter=vo(this,C=>this._options.shouldRenderGutterMenu.read(C)?this._instantiationService.createInstance(el(ej,C),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(bL(this._layoutInfo)),vo(this,C=>new(el(ZC,C))(this.elements.root,this._diffModel,this._layoutInfo.map(S=>S.originalEditor),this._layoutInfo.map(S=>S.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,C=>{this._movedBlocksLinesPart.set(C,void 0)}),this._register(Oe.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,C=>this._handleCursorPositionChange(C,!0))),this._register(Oe.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,C=>this._handleCursorPositionChange(C,!1)));const w=this._diffModel.map(this,(C,S)=>{if(C)return C.diff.read(S)===void 0&&!C.isDiffUpToDate.read(S)});this._register(Na((C,S)=>{if(w.read(C)===!0){const x=this._editorProgressService.show(!0,1e3);S.add(lt(()=>x.done()))}})),this._register(Na((C,S)=>{S.add(new(el(hSt,C))(this._editors,this._diffModel,this._options,this))})),this._register(Na((C,S)=>{const x=this._diffModel.read(C);if(x)for(const k of[x.model.original,x.model.modified])S.add(k.onWillDispose(L=>{Nt(new Li("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register(Lt(C=>{this._options.setModel(this._diffModel.read(C))}))}_createInnerEditor(e,t,i,s){return e.createInstance(QT,t,i,s)}_createDiffEditorContributions(){const e=wb.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){Nt(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return WN.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var i;const e=this._editors.original.saveViewState(),t=this._editors.modified.saveViewState();return{original:e,modified:t,modelState:(i=this._diffModel.get())==null?void 0:i.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())==null||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(jU,e,this._options)}getModel(){var e;return((e=this._diffModel.get())==null?void 0:e.model)??null}setModel(e){const t=e?"model"in e?r4.create(e).createNewRef(this):r4.create(this.createViewModel(e),this):null;this.setDiffModel(t)}setDiffModel(e,t){const i=this._diffModel.get();!e&&i&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==(e==null?void 0:e.object)&&Yy(t,s=>{var a;const r=e==null?void 0:e.object;Vi.batchEventsGlobally(s,()=>{this._editors.original.setModel(r?r.model.original:null),this._editors.modified.setModel(r?r.model.modified:null)});const o=(a=this._diffModelSrc.get())==null?void 0:a.createNewRef(this);this._diffModelSrc.set(e==null?void 0:e.createNewRef(this),s),setTimeout(()=>{o==null||o.dispose()},0)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var t;const e=(t=this._diffModel.get())==null?void 0:t.diff.get();return e?ySt(e):null}revert(e){const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map(s=>({range:s.modifiedRange,text:t.model.original.getValueInRange(s.originalRange)}));this._editors.modified.executeEdits("diffEditor",i)}_goTo(e){this._editors.modified.setPosition(new se(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var r,o;const t=(o=(r=this._diffModel.get())==null?void 0:r.diff.get())==null?void 0:o.mappings;if(!t||t.length===0)return;const i=this._editors.modified.getPosition().lineNumber;let s;e==="next"?s=t.find(a=>a.lineRangeMapping.modified.startLineNumber>i)??t[0]:s=HT(t,a=>a.lineRangeMapping.modified.startLineNumber<i)??t[t.length-1],this._goTo(s),s.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(jl.diffLineDeleted,{source:"diffEditor.goToDiff"}):s.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(jl.diffLineInserted,{source:"diffEditor.goToDiff"}):s&&this._accessibilitySignalService.playSignal(jl.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){const e=this._diffModel.get();e&&this.waitForDiff().then(()=>{var i;const t=(i=e.diff.get())==null?void 0:i.mappings;!t||t.length===0||this._goTo(t[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var o,a;const e=this._editors.modified.hasWidgetFocus(),t=e?this._editors.modified:this._editors.original,i=e?this._editors.original:this._editors.modified;let s;const r=t.getSelection();if(r){const l=(a=(o=this._diffModel.get())==null?void 0:o.diff.get())==null?void 0:a.mappings.map(c=>e?c.lineRangeMapping.flip():c.lineRangeMapping);if(l){const c=Sde(r.getStartPosition(),l),u=Sde(r.getEndPosition(),l);s=O.plusRange(c,u)}}return{destination:i,destinationSelection:s}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&Un(i=>{for(const s of e)s.collapseAll(i)})}showAllUnchangedRegions(){var t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&Un(i=>{for(const s of e)s.showAll(i)})}_handleCursorPositionChange(e,t){var i,s;if((e==null?void 0:e.reason)===3){const r=(s=(i=this._diffModel.get())==null?void 0:i.diff.get())==null?void 0:s.mappings.find(o=>t?o.lineRangeMapping.modified.contains(e.position.lineNumber):o.lineRangeMapping.original.contains(e.position.lineNumber));r!=null&&r.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(jl.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):r!=null&&r.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(jl.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):r&&this._accessibilitySignalService.playSignal(jl.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};Ug=bSt([pE(3,bt),pE(4,ct),pE(5,wi),pE(6,F_),pE(7,B_)],Ug);function ySt(n){return n.mappings.map(e=>{const t=e.lineRangeMapping;let i,s,r,o,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,s=0,a=void 0):(i=t.original.startLineNumber,s=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(r=t.modified.startLineNumber-1,o=0,a=void 0):(r=t.modified.startLineNumber,o=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:s,modifiedStartLineNumber:r,modifiedEndLineNumber:o,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}class wSt extends ca{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Ct("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Ne.map,toggled:ye.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ye.has("isInDiffEditor"),menu:{when:ye.has("isInDiffEditor"),id:et.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Xt),s=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",s)}}class EIe extends ca{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Ct("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get(Xt),s=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",s)}}class kIe extends ca{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Ct("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get(Xt),s=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",s)}}const XN=Ct("diffEditor","Diff Editor");class CSt extends pd{constructor(){super({id:"diffEditor.switchSide",title:Ct("switchSide","Switch Side"),icon:Ne.arrowSwap,precondition:ye.has("isInDiffEditor"),f1:!0,category:XN})}runEditorCommand(e,t,i){const s=wL(e);if(s instanceof Ug){if(i&&i.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}class SSt extends pd{constructor(){super({id:"diffEditor.exitCompareMove",title:Ct("exitCompareMove","Exit Compare Move"),icon:Ne.close,precondition:H.comparingMovedCode,f1:!1,category:XN,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const s=wL(e);s instanceof Ug&&s.exitCompareMove()}}class xSt extends pd{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Ct("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Ne.fold,precondition:ye.has("isInDiffEditor"),f1:!0,category:XN})}runEditorCommand(e,t,...i){const s=wL(e);s instanceof Ug&&s.collapseAllUnchangedRegions()}}class LSt extends pd{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Ct("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Ne.unfold,precondition:ye.has("isInDiffEditor"),f1:!0,category:XN})}runEditorCommand(e,t,...i){const s=wL(e);s instanceof Ug&&s.showAllUnchangedRegions()}}class aj extends ca{constructor(){super({id:"diffEditor.revert",title:Ct("revert","Revert"),f1:!1,category:XN})}run(e,t){const i=ESt(e,t.originalUri,t.modifiedUri);i instanceof Ug&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const IIe=Ct("accessibleDiffViewer","Accessible Diff Viewer"),P3=class P3 extends ca{constructor(){super({id:P3.id,title:Ct("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:IIe,precondition:ye.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=wL(e);t==null||t.accessibleDiffViewerNext()}};P3.id="editor.action.accessibleDiffViewer.next";let hD=P3;const R3=class R3 extends ca{constructor(){super({id:R3.id,title:Ct("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:IIe,precondition:ye.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=wL(e);t==null||t.accessibleDiffViewerPrev()}};R3.id="editor.action.accessibleDiffViewer.prev";let b4=R3;function ESt(n,e,t){return n.get(wi).listDiffEditors().find(r=>{var l,c;const o=r.getModifiedEditor(),a=r.getOriginalEditor();return o&&((l=o.getModel())==null?void 0:l.uri.toString())===t.toString()&&a&&((c=a.getModel())==null?void 0:c.uri.toString())===e.toString()})||null}function wL(n){const t=n.get(wi).listDiffEditors(),i=zr();if(i)for(const s of t){const r=s.getContainerDomNode();if(kSt(r,i))return s}return null}function kSt(n,e){let t=e;for(;t;){if(t===n)return!0;t=t.parentElement}return!1}nn(wSt);nn(EIe);nn(kIe);pr.appendMenuItem(et.EditorTitle,{command:{id:new kIe().desc.id,title:v("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ye.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ye.has("isInDiffEditor")},order:11,group:"1_diff",when:ye.and(H.diffEditorRenderSideBySideInlineBreakpointReached,ye.has("isInDiffEditor"))});pr.appendMenuItem(et.EditorTitle,{command:{id:new EIe().desc.id,title:v("showMoves","Show Moved Code Blocks"),icon:Ne.move,toggled:aL.create("config.diffEditor.experimental.showMoves",!0),precondition:ye.has("isInDiffEditor")},order:10,group:"1_diff",when:ye.has("isInDiffEditor")});nn(aj);for(const n of[{icon:Ne.arrowRight,key:H.diffEditorInlineMode.toNegated()},{icon:Ne.discard,key:H.diffEditorInlineMode}])pr.appendMenuItem(et.DiffEditorHunkToolbar,{command:{id:new aj().desc.id,title:v("revertHunk","Revert Block"),icon:n.icon},when:ye.and(H.diffEditorModifiedWritable,n.key),order:5,group:"primary"}),pr.appendMenuItem(et.DiffEditorSelectionToolbar,{command:{id:new aj().desc.id,title:v("revertSelection","Revert Selection"),icon:n.icon},when:ye.and(H.diffEditorModifiedWritable,n.key),order:5,group:"primary"});nn(CSt);nn(SSt);nn(xSt);nn(LSt);pr.appendMenuItem(et.EditorTitle,{command:{id:hD.id,title:v("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ye.has("isInDiffEditor")},order:10,group:"2_diff",when:ye.and(H.accessibleDiffViewerVisible.negate(),ye.has("isInDiffEditor"))});di.registerCommandAlias("editor.action.diffReview.next",hD.id);nn(hD);di.registerCommandAlias("editor.action.diffReview.prev",b4.id);nn(b4);var ISt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},TSt=function(n,e){return function(t,i){e(t,i,n)}},lj;const N8=new $e("selectionAnchorSet",!1);var Bb;let __=(Bb=class{static get(e){return e.getContribution(lj.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=N8.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(nt.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new to().appendText(v("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),yl(v("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(nt.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},lj=Bb,Bb.ID="editor.contrib.selectionAnchorController",Bb);__=lj=ISt([TSt(1,bt)],__);class DSt extends Xe{constructor(){super({id:"editor.action.setSelectionAnchor",label:v("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2080),weight:100}})}async run(e,t){var i;(i=__.get(t))==null||i.setSelectionAnchor()}}class NSt extends Xe{constructor(){super({id:"editor.action.goToSelectionAnchor",label:v("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:N8})}async run(e,t){var i;(i=__.get(t))==null||i.goToSelectionAnchor()}}class ASt extends Xe{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:v("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:N8,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2089),weight:100}})}async run(e,t){var i;(i=__.get(t))==null||i.selectFromAnchorToCursor()}}class PSt extends Xe{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:v("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:N8,kbOpts:{kbExpr:H.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=__.get(t))==null||i.cancelSelectionAnchor()}}_i(__.ID,__,4);Ie(DSt);Ie(NSt);Ie(ASt);Ie(PSt);const RSt=U("editorOverviewRuler.bracketMatchForeground","#A0A0A0",v("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class MSt extends Xe{constructor(){super({id:"editor.action.jumpToBracket",label:v("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=e0.get(t))==null||i.jumpToBracket()}}class OSt extends Xe{constructor(){super({id:"editor.action.selectToBracket",label:v("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Ct("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var r;let s=!0;i&&i.selectBrackets===!1&&(s=!1),(r=e0.get(t))==null||r.selectToBracket(s)}}class FSt extends Xe{constructor(){super({id:"editor.action.removeBrackets",label:v("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=e0.get(t))==null||i.removeBrackets(this.id)}}class BSt{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Vm=class Vm extends ue{static get(e){return e.getContribution(Vm.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ji(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const s=i.getStartPosition(),r=e.bracketPairs.matchBracket(s);let o=null;if(r)r[0].containsPosition(s)&&!r[1].containsPosition(s)?o=r[1].getStartPosition():r[1].containsPosition(s)&&(o=r[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(s);if(a)o=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(s);l&&l.range&&(o=l.range.getStartPosition())}}return o?new nt(o.lineNumber,o.column,o.lineNumber,o.column):new nt(s.lineNumber,s.column,s.lineNumber,s.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(s=>{const r=s.getStartPosition();let o=t.bracketPairs.matchBracket(r);if(!o&&(o=t.bracketPairs.findEnclosingBrackets(r),!o)){const c=t.bracketPairs.findNextBracket(r);c&&c.range&&(o=t.bracketPairs.matchBracket(c.range.getStartPosition()))}let a=null,l=null;if(o){o.sort(O.compareRangesUsingStarts);const[c,u]=o;if(a=e?c.getStartPosition():c.getEndPosition(),l=e?u.getEndPosition():u.getStartPosition(),u.containsPosition(r)){const h=a;a=l,l=h}}a&&l&&i.push(new nt(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const s=i.getPosition();let r=t.bracketPairs.matchBracket(s);r||(r=t.bracketPairs.findEnclosingBrackets(s)),r&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:r[0],text:""},{range:r[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const s=i.brackets;s&&(e[t++]={range:s[0],options:i.options},e[t++]={range:s[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let s=[];this._lastVersionId===i&&(s=this._lastBracketsData);const r=[];let o=0;for(let h=0,d=e.length;h<d;h++){const f=e[h];f.isEmpty()&&(r[o++]=f.getStartPosition())}r.length>1&&r.sort(se.compare);const a=[];let l=0,c=0;const u=s.length;for(let h=0,d=r.length;h<d;h++){const f=r[h];for(;c<u&&s[c].position.isBefore(f);)c++;if(c<u&&s[c].position.equals(f))a[l++]=s[c];else{let p=t.bracketPairs.matchBracket(f,20),g=Vm._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!p&&this._matchBrackets==="always"&&(p=t.bracketPairs.findEnclosingBrackets(f,20),g=Vm._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new BSt(f,p,g)}}this._lastBracketsData=a,this._lastVersionId=i}};Vm.ID="editor.contrib.bracketMatchingController",Vm._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=At.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:Gn(RSt),position:cc.Center}}),Vm._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=At.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let e0=Vm;_i(e0.ID,e0,1);Ie(OSt);Ie(MSt);Ie(FSt);pr.appendMenuItem(et.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:v({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class WSt{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,s=this._selection.startColumn,r=this._selection.endColumn;if(!(this._isMovingLeft&&s===1)&&!(!this._isMovingLeft&&r===e.getLineMaxColumn(i)))if(this._isMovingLeft){const o=new O(i,s-1,i,s),a=e.getValueInRange(o);t.addEditOperation(o,null),t.addEditOperation(new O(i,r,i,r),a)}else{const o=new O(i,r,i,r+1),a=e.getValueInRange(o);t.addEditOperation(o,null),t.addEditOperation(new O(i,s,i,s),a)}}computeCursorState(e,t){return this._isMovingLeft?new nt(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new nt(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class TIe extends Xe{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],s=t.getSelections();for(const r of s)i.push(new WSt(r,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class VSt extends TIe{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:v("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:H.writable})}}class HSt extends TIe{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:v("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:H.writable})}}Ie(VSt);Ie(HSt);class $St extends Xe{constructor(){super({id:"editor.action.transposeLetters",label:v("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),s=[],r=t.getSelections();for(const o of r){if(!o.isEmpty())continue;const a=o.startLineNumber,l=o.startColumn,c=i.getLineMaxColumn(a);if(a===1&&(l===1||l===2&&c===2))continue;const u=l===c?o.getPosition():Bi.rightPosition(i,o.getPosition().lineNumber,o.getPosition().column),h=Bi.leftPosition(i,u),d=Bi.leftPosition(i,h),f=i.getValueInRange(O.fromPositions(d,h)),p=i.getValueInRange(O.fromPositions(h,u)),g=O.fromPositions(d,u);s.push(new Wr(g,p+f))}s.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop())}}Ie($St);const A8=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let n;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?n=crypto.getRandomValues.bind(crypto):n=function(i){for(let s=0;s<i.length;s++)i[s]=Math.floor(Math.random()*256);return i};const e=new Uint8Array(16),t=[];for(let i=0;i<256;i++)t.push(i.toString(16).padStart(2,"0"));return function(){n(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let s=0,r="";return r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r+="-",r+=t[e[s++]],r+=t[e[s++]],r+="-",r+=t[e[s++]],r+=t[e[s++]],r+="-",r+=t[e[s++]],r+=t[e[s++]],r+="-",r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r+=t[e[s++]],r}}();function _ie(n){return{asString:async()=>n,asFile:()=>{},value:typeof n=="string"?n:void 0}}function zSt(n,e,t){const i={id:A8(),name:n,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class DIe{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return hi.some(this,([i,s])=>s.asFile())&&t.push("files"),AIe(y4(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))==null?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return y4(e)}}function y4(n){return n.toLowerCase()}function NIe(n,e){return AIe(y4(n),e.map(y4))}function AIe(n,e){if(n==="*/*")return e.length>0;if(e.includes(n))return!0;const t=n.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,s,r]=t;return r==="*"?e.some(o=>o.startsWith(s+"/")):!1}const P8=Object.freeze({create:n=>Vg(n.map(e=>e.toString())).join(`\r +`),split:n=>n.split(`\r +`),parse:n=>P8.split(n).filter(e=>!e.startsWith("#"))}),Vd=class Vd{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+Vd.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Vd((this.value?[this.value,...e]:e).join(Vd.sep))}};Vd.sep=".",Vd.None=new Vd("@@none@@"),Vd.Empty=new Vd("");let kn=Vd;const ife={EDITORS:"CodeEditors",FILES:"CodeFiles"};class USt{}const jSt={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Vn.add(jSt.DragAndDropContribution,new USt);const vI=class vI{constructor(){}static getInstance(){return vI.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};vI.INSTANCE=new vI;let cj=vI;function PIe(n){const e=new DIe;for(const t of n.items){const i=t.type;if(t.kind==="string"){const s=new Promise(r=>t.getAsString(r));e.append(i,_ie(s))}else if(t.kind==="file"){const s=t.getAsFile();s&&e.append(i,qSt(s))}}return e}function qSt(n){const e=n.path?mt.parse(n.path):void 0;return zSt(n.name,e,async()=>new Uint8Array(await n.arrayBuffer()))}const KSt=Object.freeze([ife.EDITORS,ife.FILES,eD.RESOURCES,eD.INTERNAL_URI_LIST]);function RIe(n,e=!1){const t=PIe(n),i=t.get(eD.INTERNAL_URI_LIST);if(i)t.replace(rs.uriList,i);else if(e||!t.has(rs.uriList)){const s=[];for(const r of n.items){const o=r.getAsFile();if(o){const a=o.path;try{a?s.push(mt.file(a).toString()):s.push(mt.parse(o.name,!0).toString())}catch{}}}s.length&&t.replace(rs.uriList,_ie(P8.create(s)))}for(const s of KSt)t.delete(s);return t}const YN=ri("IWorkspaceEditService");class vie{constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(k1.is(t))return k1.lift(t);if(JC.is(t))return JC.lift(t);throw new Error("Unsupported edit")})}}class k1 extends vie{static is(e){return e instanceof k1?!0:fr(e)&&mt.isUri(e.resource)&&fr(e.textEdit)}static lift(e){return e instanceof k1?e:new k1(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,i=void 0,s){super(s),this.resource=e,this.textEdit=t,this.versionId=i}}class JC extends vie{static is(e){return e instanceof JC?!0:fr(e)&&(!!e.newResource||!!e.oldResource)}static lift(e){return e instanceof JC?e:new JC(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t,i={},s){super(s),this.oldResource=e,this.newResource=t,this.options=i}}class GSt{constructor(){this._value="",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos<this._value.length-1}cmp(e){const t=e.charCodeAt(0),i=this._value.charCodeAt(this._pos);return t-i}value(){return this._value[this._pos]}}class XSt{constructor(e=!0){this._caseSensitive=e}reset(e){return this._value=e,this._from=0,this._to=0,this.next()}hasNext(){return this._to<this._value.length}next(){this._from=this._to;let e=!0;for(;this._to<this._value.length;this._to++)if(this._value.charCodeAt(this._to)===46)if(e)this._from++;else break;else e=!1;return this}cmp(e){return this._caseSensitive?bee(e,this._value,0,e.length,this._from,this._to):kN(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class YSt{constructor(e=!0,t=!0){this._splitOnBackslash=e,this._caseSensitive=t}reset(e){this._from=0,this._to=0,this._value=e,this._valueLen=e.length;for(let t=e.length-1;t>=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let e=!0;for(;this._to<this._valueLen;this._to++){const t=this._value.charCodeAt(this._to);if(t===47||this._splitOnBackslash&&t===92)if(e)this._from++;else break;else e=!1}return this}cmp(e){return this._caseSensitive?bee(e,this._value,0,e.length,this._from,this._to):kN(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class ZSt{constructor(e,t){this._ignorePathCasing=e,this._ignoreQueryAndFragment=t,this._states=[],this._stateIdx=0}reset(e){return this._value=e,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new YSt(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(e)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(e){if(this._states[this._stateIdx]===1)return lz(e,this._value.scheme);if(this._states[this._stateIdx]===2)return lz(e,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(e);if(this._states[this._stateIdx]===4)return mT(e,this._value.query);if(this._states[this._stateIdx]===5)return mT(e,this._value.fragment);throw new Error}value(){if(this._states[this._stateIdx]===1)return this._value.scheme;if(this._states[this._stateIdx]===2)return this._value.authority;if(this._states[this._stateIdx]===3)return this._pathIterator.value();if(this._states[this._stateIdx]===4)return this._value.query;if(this._states[this._stateIdx]===5)return this._value.fragment;throw new Error}}class NP{constructor(){this.height=1}rotateLeft(){const e=this.right;return this.right=e.left,e.left=this,this.updateHeight(),e.updateHeight(),e}rotateRight(){const e=this.left;return this.left=e.right,e.right=this,this.updateHeight(),e.updateHeight(),e}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){var e;return((e=this.left)==null?void 0:e.height)??0}get heightRight(){var e;return((e=this.right)==null?void 0:e.height)??0}}class eS{static forUris(e=()=>!1,t=()=>!1){return new eS(new ZSt(e,t))}static forStrings(){return new eS(new GSt)}static forConfigKeys(){return new eS(new XSt)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let s;this._root||(this._root=new NP,this._root.segment=i.value());const r=[];for(s=this._root;;){const a=i.cmp(s.segment);if(a>0)s.left||(s.left=new NP,s.left.segment=i.value()),r.push([-1,s]),s=s.left;else if(a<0)s.right||(s.right=new NP,s.right.segment=i.value()),r.push([1,s]),s=s.right;else if(i.hasNext())i.next(),s.mid||(s.mid=new NP,s.mid.segment=i.value()),r.push([0,s]),s=s.mid;else break}const o=s.value;s.value=t,s.key=e;for(let a=r.length-1;a>=0;a--){const l=r[a][1];l.updateHeight();const c=l.balanceFactor();if(c<-1||c>1){const u=r[a][0],h=r[a+1][0];if(u===1&&h===1)r[a][1]=l.rotateLeft();else if(u===-1&&h===-1)r[a][1]=l.rotateRight();else if(u===1&&h===-1)l.right=r[a+1][1]=r[a+1][1].rotateRight(),r[a][1]=l.rotateLeft();else if(u===-1&&h===1)l.left=r[a+1][1]=r[a+1][1].rotateLeft(),r[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(r[a-1][0]){case-1:r[a-1][1].left=r[a][1];break;case 1:r[a-1][1].right=r[a][1];break;case 0:r[a-1][1].mid=r[a][1];break}else this._root=r[0][1]}}return o}get(e){var t;return(t=this._getNode(e))==null?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const s=t.cmp(i.segment);if(s>0)i=i.left;else if(s<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){const i=this._iter.reset(e),s=[];let r=this._root;for(;r;){const o=i.cmp(r.segment);if(o>0)s.push([-1,r]),r=r.left;else if(o<0)s.push([1,r]),r=r.right;else if(i.hasNext())i.next(),s.push([0,r]),r=r.mid;else break}if(r){if(t?(r.left=void 0,r.mid=void 0,r.right=void 0,r.height=1):(r.key=void 0,r.value=void 0),!r.mid&&!r.value)if(r.left&&r.right){const o=this._min(r.right);if(o.key){const{key:a,value:l,segment:c}=o;this._delete(o.key,!1),r.key=a,r.value=l,r.segment=c}}else{const o=r.left??r.right;if(s.length>0){const[a,l]=s[s.length-1];switch(a){case-1:l.left=o;break;case 0:l.mid=o;break;case 1:l.right=o;break}}else this._root=o}for(let o=s.length-1;o>=0;o--){const a=s[o][1];a.updateHeight();const l=a.balanceFactor();if(l>1?(a.right.balanceFactor()>=0||(a.right=a.right.rotateRight()),s[o][1]=a.rotateLeft()):l<-1&&(a.left.balanceFactor()<=0||(a.left=a.left.rotateLeft()),s[o][1]=a.rotateRight()),o>0)switch(s[o-1][0]){case-1:s[o-1][1].left=s[o][1];break;case 1:s[o-1][1].right=s[o][1];break;case 0:s[o-1][1].mid=s[o][1];break}else this._root=s[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,s;for(;i;){const r=t.cmp(i.segment);if(r>0)i=i.left;else if(r<0)i=i.right;else if(t.hasNext())t.next(),s=i.value||s,i=i.mid;else break}return i&&i.value||s}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let s=this._root;for(;s;){const r=i.cmp(s.segment);if(r>0)s=s.left;else if(r<0)s=s.right;else if(i.hasNext())i.next(),s=s.mid;else return s.mid?this._entries(s.mid):t?s.value:void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}const t0=ri("contextService");function uj(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&mt.isUri(e.uri)}function QSt(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&!uj(n)&&!txt(n)}const JSt={id:"empty-window"};function ext(n,e){if(typeof n=="string"||typeof n>"u")return typeof n=="string"?{id:S1(n)}:JSt;const t=n;return t.configuration?{id:t.id,configPath:t.configuration}:t.folders.length===1?{id:t.id,uri:t.folders[0].uri}:{id:t.id}}function txt(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&mt.isUri(e.configPath)}class ixt{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const hj="code-workspace";v("codeWorkspace","Code Workspace");const MIe="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function nxt(n){return n.id===MIe}var bie=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},dD=function(n,e){return function(t,i){e(t,i,n)}};class yie{async provideDocumentPasteEdits(e,t,i,s,r){const o=await this.getEdit(i,r);if(o)return{edits:[{insertText:o.insertText,title:o.title,kind:o.kind,handledMimeType:o.handledMimeType,yieldTo:o.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,i,s){const r=await this.getEdit(i,s);if(r)return{edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}],dispose(){}}}}const bI=class bI extends yie{constructor(){super(...arguments),this.kind=bI.kind,this.dropMimeTypes=[rs.text],this.pasteMimeTypes=[rs.text]}async getEdit(e,t){const i=e.get(rs.text);if(!i||e.has(rs.uriList))return;const s=await i.asString();return{handledMimeType:rs.text,title:v("text.label","Insert Plain Text"),insertText:s,kind:this.kind}}};bI.id="text",bI.kind=new kn("text.plain");let i0=bI;class OIe extends yie{constructor(){super(...arguments),this.kind=new kn("uri.absolute"),this.dropMimeTypes=[rs.uriList],this.pasteMimeTypes=[rs.uriList]}async getEdit(e,t){const i=await FIe(e);if(!i.length||t.isCancellationRequested)return;let s=0;const r=i.map(({uri:a,originalText:l})=>a.scheme===kt.file?a.fsPath:(s++,l)).join(" ");let o;return s>0?o=i.length>1?v("defaultDropProvider.uriList.uris","Insert Uris"):v("defaultDropProvider.uriList.uri","Insert Uri"):o=i.length>1?v("defaultDropProvider.uriList.paths","Insert Paths"):v("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:rs.uriList,insertText:r,title:o,kind:this.kind}}}let w4=class extends yie{constructor(e){super(),this._workspaceContextService=e,this.kind=new kn("uri.relative"),this.dropMimeTypes=[rs.uriList],this.pasteMimeTypes=[rs.uriList]}async getEdit(e,t){const i=await FIe(e);if(!i.length||t.isCancellationRequested)return;const s=Qh(i.map(({uri:r})=>{const o=this._workspaceContextService.getWorkspaceFolder(r);return o?pvt(o.uri,r):void 0}));if(s.length)return{handledMimeType:rs.uriList,insertText:s.join(" "),title:i.length>1?v("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):v("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}}};w4=bie([dD(0,t0)],w4);class sxt{constructor(){this.kind=new kn("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:rs.text}]}async provideDocumentPasteEdits(e,t,i,s,r){var l;if(s.triggerKind!==FT.PasteAs&&!((l=s.only)!=null&&l.contains(this.kind)))return;const o=i.get("text/html"),a=await(o==null?void 0:o.asString());if(!(!a||r.isCancellationRequested))return{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:v("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}}async function FIe(n){const e=n.get(rs.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const s of P8.parse(t))try{i.push({uri:mt.parse(s),originalText:s})}catch{}return i}let dj=class extends ue{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new i0)),this._register(e.documentDropEditProvider.register("*",new OIe)),this._register(e.documentDropEditProvider.register("*",new w4(t)))}};dj=bie([dD(0,Je),dD(1,t0)],dj);let fj=class extends ue{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new i0)),this._register(e.documentPasteEditProvider.register("*",new OIe)),this._register(e.documentPasteEditProvider.register("*",new w4(t))),this._register(e.documentPasteEditProvider.register("*",new sxt))}};fj=bie([dD(0,Je),dD(1,t0)],fj);const vu=class vu{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),s;if(s=vu._table[i],typeof s=="number")return this.pos+=1,{type:s,pos:e,len:1};if(vu.isDigitCharacter(i)){s=8;do t+=1,i=this.value.charCodeAt(e+t);while(vu.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}if(vu.isVariableCharacter(i)){s=9;do i=this.value.charCodeAt(e+ ++t);while(vu.isVariableCharacter(i)||vu.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}s=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof vu._table[i]>"u"&&!vu.isDigitCharacter(i)&&!vu.isVariableCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}};vu._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let pj=vu;class CL{constructor(){this._children=[]}appendChild(e){return e instanceof jo&&this._children[this._children.length-1]instanceof jo?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,s=i.children.indexOf(e),r=i.children.slice(0);r.splice(s,1,...t),i._children=r,function o(a,l){for(const c of a)c.parent=l,o(c.children,c)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof ZN)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}class jo extends CL{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new jo(this.value)}}class BIe extends CL{}class Ac extends BIe{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof SL?this._children[0]:void 0}clone(){const e=new Ac(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class SL extends CL{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof jo&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new SL;return this.options.forEach(e.appendChild,e),e}}class wie extends CL{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,s=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(r=>r instanceof ph&&!!r.elseValue)&&(s=this._replace([])),s}_replace(e){let t="";for(const i of this._children)if(i instanceof ph){let s=e[i.index]||"";s=i.resolve(s),t+=s}else t+=i.toString();return t}toString(){return""}clone(){const e=new wie;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class ph extends CL{constructor(e,t,i,s){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=s}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,s)=>s===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new ph(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class fD extends BIe{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new jo(t)],!0):!1}clone(){const e=new fD(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function nfe(n,e){const t=[...n];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class ZN extends CL{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Ac&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk(s=>s===e?(i=!0,!1):(t+=s.len(),!0)),i?t:-1}fullLen(e){let t=0;return nfe([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Ac&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof fD&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new ZN;return this._children=this.children.map(t=>t.clone()),e}walk(e){nfe(this.children,e)}}class n0{constructor(){this._scanner=new pj,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const s=new ZN;return this.parseFragment(e,s),this.ensureFinalTabstop(s,i??!1,t??!1),s}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const s=new Map,r=[];t.walk(l=>(l instanceof Ac&&(l.isFinalTabstop?s.set(0,void 0):!s.has(l.index)&&l.children.length>0?s.set(l.index,l.children):r.push(l)),!0));const o=(l,c)=>{const u=s.get(l.index);if(!u)return;const h=new Ac(l.index);h.transform=l.transform;for(const d of u){const f=d.clone();h.appendChild(f),f instanceof Ac&&s.has(f.index)&&!c.has(f.index)&&(c.add(f.index),o(f,c),c.delete(f.index))}t.replace(l,[h])},a=new Set;for(const l of r)o(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(r=>r.index===0)||e.appendChild(new Ac(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const s=this._scanner.next();if(s.type!==0&&s.type!==4&&s.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new jo(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new Ac(Number(t)):new fD(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const r=new Ac(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new jo("${"+t+":")),r.children.forEach(e.appendChild,e),!0}else if(r.index>0&&this._accept(7)){const o=new SL;for(;;){if(this._parseChoiceElement(o)){if(this._accept(2))continue;if(this._accept(7)&&(r.appendChild(o),this._accept(4)))return e.appendChild(r),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(r),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let s;if((s=this._accept(5,!0))?s=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||s:s=this._accept(void 0,!0),!s)return this._backTo(t),!1;i.push(s)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new jo(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const r=new fD(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new jo("${"+t+":")),r.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(r),!0):this._backTo(i)}_parseTransform(e){const t=new wie;let i="",s="";for(;!this._accept(6);){let r;if(r=this._accept(5,!0)){r=this._accept(6,!0)||r,i+=r;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let r;if(r=this._accept(5,!0)){r=this._accept(5,!0)||this._accept(6,!0)||r,t.appendChild(new jo(r));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){s+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,s)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const s=this._accept(8,!0);if(s)if(i){if(this._accept(4))return e.appendChild(new ph(Number(s))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new ph(Number(s))),!0;else return this._backTo(t),!1;if(this._accept(6)){const r=this._accept(9,!0);return!r||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new ph(Number(s),r)),!0)}else if(this._accept(11)){const r=this._until(4);if(r)return e.appendChild(new ph(Number(s),void 0,r,void 0)),!0}else if(this._accept(12)){const r=this._until(4);if(r)return e.appendChild(new ph(Number(s),void 0,void 0,r)),!0}else if(this._accept(13)){const r=this._until(1);if(r){const o=this._until(4);if(o)return e.appendChild(new ph(Number(s),void 0,r,o)),!0}}else{const r=this._until(4);if(r)return e.appendChild(new ph(Number(s),void 0,void 0,r)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new jo(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function WIe(n,e,t){var i,s;return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:((i=t.additionalEdit)==null?void 0:i.edits)??[]}:{edits:[...e.map(r=>new k1(n,{range:r,text:typeof t.insertText=="string"?n0.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((s=t.additionalEdit)==null?void 0:s.edits)??[]]}}function VIe(n){function e(o,a){return"mimeType"in o?o.mimeType===a.handledMimeType:!!a.kind&&o.kind.contains(a.kind)}const t=new Map;for(const o of n)for(const a of o.yieldTo??[])for(const l of n)if(l!==o&&e(a,l)){let c=t.get(o);c||(c=[],t.set(o,c)),c.push(l)}if(!t.size)return Array.from(n);const i=new Set,s=[];function r(o){if(!o.length)return[];const a=o[0];if(s.includes(a))return console.warn("Yield to cycle detected",a),o;if(i.has(a))return r(o.slice(1));let l=[];const c=t.get(a);return c&&(s.push(a),l=r(c),s.pop()),i.add(a),[...l,a,...r(o.slice(1))]}return r(Array.from(n))}const Cie=ri("IEditorCancelService"),HIe=new $e("cancellableOperation",!1,v("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));fi(Cie,class{constructor(){this._tokens=new WeakMap}add(n,e){let t=this._tokens.get(n);t||(t=n.invokeWithinContext(s=>{const r=HIe.bindTo(s.get(bt)),o=new Go;return{key:r,tokens:o}}),this._tokens.set(n,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(n){const e=this._tokens.get(n);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);class rxt extends Wn{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext(i=>i.get(Cie).add(e,this))}dispose(){this._unregister(),super.dispose()}}Ve(new class extends Gs{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:HIe})}runEditorCommand(n,e){n.get(Cie).cancel(e)}});let $Ie=class gj{constructor(e,t){if(this.flags=t,this.flags&1){const i=e.getModel();this.modelVersionId=i?zy("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=e.getPosition():this.position=null,this.flags&2?this.selection=e.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof gj))return!1;const t=e;return!(this.modelVersionId!==t.modelVersionId||this.scrollLeft!==t.scrollLeft||this.scrollTop!==t.scrollTop||!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position)||!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))}validate(e){return this._equals(new gj(e,this.flags))}};class v_ extends rxt{constructor(e,t,i,s){super(e,s),this._listener=new be,t&4&&this._listener.add(e.onDidChangeCursorPosition(r=>{(!i||!O.containsPosition(i,r.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(r=>{(!i||!O.containsRange(i,r.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(r=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(r=>this.cancel())),this._listener.add(e.onDidChangeModelContent(r=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class Sie extends Wn{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}var oxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},axt=function(n,e){return function(t,i){e(t,i,n)}};const lxt=At.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:Qxe,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),M3=class M3 extends ue{constructor(e,t,i,s,r){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=r,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=Pe(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=Pe("span.icon");this.domNode.append(t),t.classList.add(...ft.asClassNameArray(Ne.loading),"codicon-modifier-spin");const i=()=>{const s=this.editor.getOption(67);this.domNode.style.height=`${s}px`,this.domNode.style.width=`${Math.ceil(.8*s)}px`};i(),this._register(this.editor.onDidChangeConfiguration(s=>{(s.hasChanged(52)||s.hasChanged(67))&&i()})),this._register(ge(this.domNode,Ae.CLICK,s=>{this.delegate.cancel()}))}getId(){return M3.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}};M3.baseId="editor.widget.inlineProgressWidget";let mj=M3,C4=class extends ue{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new rr),this._currentWidget=this._register(new rr),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,i,s,r){const o=this._operationIdPool++;this._currentOperation=o,this.clear(),this._showPromise.value=n_(()=>{const a=O.fromPositions(e);this._currentDecorations.set([{range:a,options:lxt}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(mj,this.id,this._editor,a,t,s))},r??this._showDelay);try{return await i}finally{this._currentOperation===o&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};C4=oxt([axt(2,ct)],C4);const kl=ri("openerService");function cxt(n){let e;const t=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(n.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},n=n.with({fragment:""})),{selection:e,uri:n}}var uxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sfe=function(n,e){return function(t,i){e(t,i,n)}},_j,Wb;let jg=(Wb=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new oe,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e)return{element:document.createElement("span"),dispose:()=>{}};const s=new be,r=s.add(L8(e,{...this._getRenderOptions(e,s),...t},i));return r.element.classList.add("rendered-markdown"),{element:r.element,dispose:()=>s.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:async(i,s)=>{var l,c;let r;i?r=this._languageService.getLanguageIdByLanguageName(i):this._options.editor&&(r=(l=this._options.editor.getModel())==null?void 0:l.getLanguageId()),r||(r=ea);const o=await Vbt(this._languageService,s,r),a=document.createElement("span");if(a.innerHTML=((c=_j._ttpTokenizer)==null?void 0:c.createHTML(o))??o,this._options.editor){const u=this._options.editor.getOption(50);Tr(a,u)}else this._options.codeBlockFontFamily&&(a.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(a.style.fontSize=this._options.codeBlockFontSize),a},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>xie(this._openerService,i,e.isTrusted),disposables:t}}}},_j=Wb,Wb._ttpTokenizer=tm("tokenizeToString",{createHTML(e){return e}}),Wb);jg=_j=uxt([sfe(1,Dn),sfe(2,kl)],jg);async function xie(n,e,t){try{return await n.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:hxt(t)})}catch(i){return Nt(i),!1}}function hxt(n){return n===!0?!0:n&&Array.isArray(n.enabledCommands)?n.enabledCommands:!1}var dxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},rfe=function(n,e){return function(t,i){e(t,i,n)}},CM,A1;let pl=(A1=class{static get(e){return e.getContribution(CM.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new rr,this._messageListeners=new be,this._mouseOverMessage=!1,this._editor=e,this._visible=CM.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)==null||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){yl(zh(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=zh(e)?L8(e,{actionHandler:{callback:s=>{this.closeMessage(),xie(this._openerService,s,zh(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new ofe(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(Oe.debounce(this._editor.onDidBlurEditorText,(s,r)=>r,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&er(zr(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(ge(this._messageWidget.value.getDomNode(),Ae.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(ge(this._messageWidget.value.getDomNode(),Ae.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(s=>{s.target.position&&(i?i.containsPosition(s.target.position)||this.closeMessage():i=new O(t.lineNumber-3,1,s.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(ofe.fadeOut(this._messageWidget.value))}},CM=A1,A1.ID="editor.contrib.messageController",A1.MESSAGE_VISIBLE=new $e("messageVisible",!1,v("messageVisible","Whether the editor is currently showing an inline message")),A1);pl=CM=dxt([rfe(1,bt),rfe(2,kl)],pl);const fxt=Gs.bindToContribution(pl.get);Ve(new fxt({id:"leaveEditorMessage",precondition:pl.MESSAGE_VISIBLE,handler:n=>n.closeMessage(),kbOpts:{weight:130,primary:9}}));let ofe=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const r=document.createElement("div");r.classList.add("anchor","top"),this._domNode.appendChild(r);const o=document.createElement("div");typeof s=="string"?(o.classList.add("message"),o.textContent=s):(s.classList.add("message"),o.appendChild(s)),this._domNode.appendChild(o);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};_i(pl.ID,pl,4);const pxt={ctrlCmd:!1,alt:!1};var ux;(function(n){n[n.Blur=1]="Blur",n[n.Gesture=2]="Gesture",n[n.Other=3]="Other"})(ux||(ux={}));var gh;(function(n){n[n.NONE=0]="NONE",n[n.FIRST=1]="FIRST",n[n.SECOND=2]="SECOND",n[n.LAST=3]="LAST"})(gh||(gh={}));var dn;(function(n){n[n.First=1]="First",n[n.Second=2]="Second",n[n.Last=3]="Last",n[n.Next=4]="Next",n[n.Previous=5]="Previous",n[n.NextPage=6]="NextPage",n[n.PreviousPage=7]="PreviousPage",n[n.NextSeparator=8]="NextSeparator",n[n.PreviousSeparator=9]="PreviousSeparator"})(dn||(dn={}));var S4;(function(n){n[n.Title=1]="Title",n[n.Inline=2]="Inline"})(S4||(S4={}));const cu=ri("quickInputService");Ce.white.toString(),Ce.white.toString();class x4 extends ue{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new oe),this._onDidEscape=this._register(new oe),this.options=t,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,s=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=s||"",this._element.style.backgroundColor=i||"",t.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof t.title=="string"&&this.setTitle(t.title),typeof t.ariaLabel=="string"&&this._element.setAttribute("aria-label",t.ariaLabel),e.appendChild(this._element),this._register(ao.addTarget(this._element)),[Ae.CLICK,sn.Tap].forEach(r=>{this._register(ge(this._element,r,o=>{if(!this.enabled){ci.stop(o);return}this._onDidClick.fire(o)}))}),this._register(ge(this._element,Ae.KEY_DOWN,r=>{const o=new Ji(r);let a=!1;this.enabled&&(o.equals(3)||o.equals(10))?(this._onDidClick.fire(r),a=!0):o.equals(9)&&(this._onDidEscape.fire(r),this._element.blur(),a=!0),a&&ci.stop(o,!0)})),this._register(ge(this._element,Ae.MOUSE_OVER,r=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(ge(this._element,Ae.MOUSE_OUT,r=>{this.updateBackground(!1)})),this.focusTracker=this._register(Zh(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of L1(e))if(typeof i=="string"){if(i=i.trim(),i==="")continue;const s=document.createElement("span");s.textContent=i,t.push(s)}else t.push(i);return t}updateBackground(e){let t;this.options.secondary?t=e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t=e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var s;if(this._label===e||zh(this._label)&&zh(e)&&S0t(this._label,e))return;this._element.classList.add("monaco-text-button");const t=this.options.supportShortLabel?this._labelElement:this._element;if(zh(e)){const r=L8(e,{inline:!0});r.dispose();const o=(s=r.element.querySelector("p"))==null?void 0:s.innerHTML;if(o){const a=Hxe(o,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});t.innerHTML=a}else Ir(t)}else this.options.supportIcons?Ir(t,...this.getContentElements(e)):t.textContent=e;let i="";typeof this.options.title=="string"?i=this.options.title:this.options.title&&(i=A0t(e)),this.setTitle(i),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",i),this._label=e}get label(){return this._label}set icon(e){this._element.classList.add(...ft.asClassNameArray(e))}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(e){!this._hover&&e!==""?this._hover=this._register(_d().setupManagedHover(this.options.hoverDelegate??ua("mouse"),this._element,e)):this._hover&&this._hover.update(e)}}function MW(n,e){return e&&(n.stack||n.stacktrace)?v("stackTrace.format","{0}: {1}",lfe(n),afe(n.stack)||afe(n.stacktrace)):lfe(n)}function afe(n){return Array.isArray(n)?n.join(` +`):n}function lfe(n){return n.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${n.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof n.code=="string"&&typeof n.errno=="number"&&typeof n.syscall=="string"?v("nodeExceptionMessage","A system error occurred ({0})",n.message):n.message||v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function L4(n=null,e=!1){if(!n)return v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(n)){const t=Qh(n),i=L4(t[0],e);return t.length>1?v("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(Da(n))return n;if(n.detail){const t=n.detail;if(t.error)return MW(t.error,e);if(t.exception)return MW(t.exception,e)}return n.stack?MW(n,e):n.message?n.message:v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var zIe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},tS=function(n,e){return function(t,i){e(t,i,n)}},vj,Vb;let bj=(Vb=class extends ue{constructor(e,t,i,s,r,o,a,l,c,u){super(),this.typeId=e,this.editor=t,this.showCommand=s,this.range=r,this.edits=o,this.onSelectNewEdit=a,this._contextMenuService=l,this._keybindingService=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(c),this.visibleContext.set(!0),this._register(lt(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(lt(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(h=>{r.containsPosition(h.position)||this.dispose()})),this._register(Oe.runAndSubscribe(u.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var t;const e=(t=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(e?` (${e})`:"")}create(){this.domNode=Pe(".post-edit-widget"),this.button=this._register(new x4(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(ge(this.domNode,Ae.CLICK,()=>this.showSelector()))}getId(){return vj.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=ps(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>yb({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},vj=Vb,Vb.baseId="editor.widget.postEditWidget",Vb);bj=vj=zIe([tS(7,El),tS(8,bt),tS(9,Ni)],bj);let E4=class extends ue{constructor(e,t,i,s,r,o,a){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=s,this._instantiationService=r,this._bulkEditService=o,this._notificationService=a,this._currentWidget=this._register(new rr),this._register(Oe.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,s,r){const o=this._editor.getModel();if(!o||!e.length)return;const a=t.allEdits.at(t.activeEditIndex);if(!a)return;const l=async m=>{const _=this._editor.getModel();_&&(await _.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:m,allEdits:t.allEdits},i,s,r))},c=(m,_)=>{ou(m)||(this._notificationService.error(_),i&&this.show(e[0],t,l))};let u;try{u=await s(a,r)}catch(m){return c(m,v("resolveError",`Error resolving edit '{0}': +{1}`,a.title,L4(m)))}if(r.isCancellationRequested)return;const h=WIe(o.uri,e,u),d=e[0],f=o.deltaDecorations([],[{range:d,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let p,g;try{p=await this._bulkEditService.apply(h,{editor:this._editor,token:r}),g=o.getDecorationRange(f[0])}catch(m){return c(m,v("applyError",`Error applying edit '{0}': +{1}`,a.title,L4(m)))}finally{o.deltaDecorations(f,[])}r.isCancellationRequested||i&&p.isApplied&&t.allEdits.length>1&&this.show(g??d,t,l)}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(bj,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)==null||e.showSelector()}};E4=zIe([tS(4,ct),tS(5,YN),tS(6,ms)],E4);var gxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},cw=function(n,e){return function(t,i){e(t,i,n)}},yv;const UIe="editor.changePasteType",Lie=new $e("pasteWidgetVisible",!1,v("pasteWidgetVisible","Whether the paste widget is showing")),OW="application/vnd.code.copyMetadata";var Hb;let qg=(Hb=class extends ue{static get(e){return e.getContribution(yv.ID)}constructor(e,t,i,s,r,o,a){super(),this._bulkEditService=i,this._clipboardService=s,this._languageFeaturesService=r,this._quickInputService=o,this._progressService=a,this._editor=e;const l=e.getContainerDomNode();this._register(ge(l,"copy",c=>this.handleCopy(c))),this._register(ge(l,"cut",c=>this.handleCopy(c))),this._register(ge(l,"paste",c=>this.handlePaste(c),!0)),this._pasteProgressManager=this._register(new C4("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(E4,"pasteIntoEditor",e,Lie,{id:UIe,label:v("postPasteWidgetTitle","Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferred:e},oL().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(92)}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var g,m;if(!this._editor.hasTextFocus()||(N_&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled()))return;const t=this._editor.getModel(),i=this._editor.getSelections();if(!t||!(i!=null&&i.length))return;const s=this._editor.getOption(37);let r=i;const o=i.length===1&&i[0].isEmpty();if(o){if(!s)return;r=[new O(r[0].startLineNumber,1,r[0].startLineNumber,1+t.getLineLength(r[0].startLineNumber))]}const a=(g=this._editor._getViewModel())==null?void 0:g.getPlainTextToCopy(i,s,qr),c={multicursorText:Array.isArray(a)?a:null,pasteOnNewLine:o,mode:null},u=this._languageFeaturesService.documentPasteEditProvider.ordered(t).filter(_=>!!_.prepareDocumentPaste);if(!u.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:c});return}const h=PIe(e.clipboardData),d=u.flatMap(_=>_.copyMimeTypes??[]),f=A8();this.setCopyMetadata(e.clipboardData,{id:f,providerCopyMimeTypes:d,defaultPastePayload:c});const p=tr(async _=>{const b=Qh(await Promise.all(u.map(async w=>{try{return await w.prepareDocumentPaste(t,r,h,_)}catch(C){console.error(C);return}})));b.reverse();for(const w of b)for(const[C,S]of w)h.replace(C,S);return h});(m=yv._currentCopyOperation)==null||m.dataTransferPromise.cancel(),yv._currentCopyOperation={handle:f,dataTransferPromise:p}}async handlePaste(e){var l,c,u;if(!e.clipboardData||!this._editor.hasTextFocus())return;(l=pl.get(this._editor))==null||l.closeMessage(),(c=this._currentPasteOperation)==null||c.cancel(),this._currentPasteOperation=void 0;const t=this._editor.getModel(),i=this._editor.getSelections();if(!(i!=null&&i.length)||!t||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const s=this.fetchCopyMetadata(e),r=RIe(e.clipboardData);r.delete(OW);const o=[...e.clipboardData.types,...(s==null?void 0:s.providerCopyMimeTypes)??[],rs.uriList],a=this._languageFeaturesService.documentPasteEditProvider.ordered(t).filter(h=>{var f,p;const d=(f=this._pasteAsActionContext)==null?void 0:f.preferred;return d&&h.providedPasteEditKinds&&!this.providerMatchesPreference(h,d)?!1:(p=h.pasteMimeTypes)==null?void 0:p.some(g=>NIe(g,o))});if(!a.length){(u=this._pasteAsActionContext)!=null&&u.preferred&&this.showPasteAsNoEditMessage(i,this._pasteAsActionContext.preferred);return}e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,a,i,r,s):this.doPasteInline(a,i,r,s,e)}showPasteAsNoEditMessage(e,t){var i;(i=pl.get(this._editor))==null||i.showMessage(v("pasteAsError","No paste edits for '{0}' found",t instanceof kn?t.value:t.providerId),e[0].getStartPosition())}doPasteInline(e,t,i,s,r){const o=this._editor;if(!o.hasModel())return;const a=new v_(o,3,void 0),l=tr(async c=>{const u=this._editor;if(!u.hasModel())return;const h=u.getModel(),d=new be,f=d.add(new Wn(c));d.add(a.token.onCancellationRequested(()=>f.cancel()));const p=f.token;try{if(await this.mergeInDataFromCopy(i,s,p),p.isCancellationRequested)return;const g=e.filter(b=>this.isSupportedPasteProvider(b,i));if(!g.length||g.length===1&&g[0]instanceof i0)return this.applyDefaultPasteHandler(i,s,p,r);const m={triggerKind:FT.Automatic},_=await this.getPasteEdits(g,i,h,t,m,p);if(d.add(_),p.isCancellationRequested)return;if(_.edits.length===1&&_.edits[0].provider instanceof i0)return this.applyDefaultPasteHandler(i,s,p,r);if(_.edits.length){const b=u.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:_.edits},b,(w,C)=>new Promise((S,x)=>{(async()=>{var k,L;try{const E=(L=(k=w.provider).resolveDocumentPasteEdit)==null?void 0:L.call(k,w,C),A=new rL,I=E&&await this._pasteProgressManager.showWhile(t[0].getEndPosition(),v("resolveProcess","Resolving paste edit. Click to cancel"),Promise.race([A.p,E]),{cancel:()=>(A.cancel(),x(new Hu))},0);return I&&(w.additionalEdit=I.additionalEdit),S(w)}catch(E){return x(E)}})()}),p)}await this.applyDefaultPasteHandler(i,s,p,r)}finally{d.dispose(),this._currentPasteOperation===l&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),v("pasteIntoEditorProgress","Running paste handlers. Click to cancel and do basic paste"),l,{cancel:async()=>{try{if(l.cancel(),a.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(i,s,a.token,r)}finally{a.dispose()}}}).then(()=>{a.dispose()}),this._currentPasteOperation=l}showPasteAsPick(e,t,i,s,r){const o=tr(async a=>{const l=this._editor;if(!l.hasModel())return;const c=l.getModel(),u=new be,h=u.add(new v_(l,3,void 0,a));try{if(await this.mergeInDataFromCopy(s,r,h.token),h.token.isCancellationRequested)return;let d=t.filter(_=>this.isSupportedPasteProvider(_,s,e));e&&(d=d.filter(_=>this.providerMatchesPreference(_,e)));const f={triggerKind:FT.PasteAs,only:e&&e instanceof kn?e:void 0};let p=u.add(await this.getPasteEdits(d,s,c,i,f,h.token));if(h.token.isCancellationRequested)return;if(e&&(p={edits:p.edits.filter(_=>e instanceof kn?e.contains(_.kind):e.providerId===_.provider.id),dispose:p.dispose}),!p.edits.length){f.only&&this.showPasteAsNoEditMessage(i,f.only);return}let g;if(e)g=p.edits.at(0);else{const _=await this._quickInputService.pick(p.edits.map(b=>{var w;return{label:b.title,description:(w=b.kind)==null?void 0:w.value,edit:b}}),{placeHolder:v("pasteAsPickerPlaceholder","Select Paste Action")});g=_==null?void 0:_.edit}if(!g)return;const m=WIe(c.uri,i,g);await this._bulkEditService.apply(m,{editor:this._editor})}finally{u.dispose(),this._currentPasteOperation===o&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:v("pasteAsProgress","Running paste handlers")},()=>o)}setCopyMetadata(e,t){e.setData(OW,JSON.stringify(t))}fetchCopyMetadata(e){if(!e.clipboardData)return;const t=e.clipboardData.getData(OW);if(t)try{return JSON.parse(t)}catch{return}const[i,s]=Gz.getTextData(e.clipboardData);if(s)return{defaultPastePayload:{mode:s.mode,multicursorText:s.multicursorText??null,pasteOnNewLine:!!s.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,i){var s;if(t!=null&&t.id&&((s=yv._currentCopyOperation)==null?void 0:s.handle)===t.id){const r=await yv._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[o,a]of r)e.replace(o,a)}if(!e.has(rs.uriList)){const r=await this._clipboardService.readResources();if(i.isCancellationRequested)return;r.length&&e.append(rs.uriList,_ie(P8.create(r)))}}async getPasteEdits(e,t,i,s,r,o){const a=new be,l=await LN(Promise.all(e.map(async u=>{var h,d;try{const f=await((h=u.provideDocumentPasteEdits)==null?void 0:h.call(u,i,s,t,r,o));return f&&a.add(f),(d=f==null?void 0:f.edits)==null?void 0:d.map(p=>({...p,provider:u}))}catch(f){ou(f)||console.error(f);return}})),o),c=Qh(l??[]).flat().filter(u=>!r.only||r.only.contains(u.kind));return{edits:VIe(c),dispose:()=>a.dispose()}}async applyDefaultPasteHandler(e,t,i,s){const r=e.get(rs.text)??e.get("text"),o=await(r==null?void 0:r.asString())??"";if(i.isCancellationRequested)return;const a={clipboardEvent:s,text:o,pasteOnNewLine:(t==null?void 0:t.defaultPastePayload.pasteOnNewLine)??!1,multicursorText:(t==null?void 0:t.defaultPastePayload.multicursorText)??null,mode:null};this._editor.trigger("keyboard","paste",a)}isSupportedPasteProvider(e,t,i){var s;return(s=e.pasteMimeTypes)!=null&&s.some(r=>t.matches(r))?!i||this.providerMatchesPreference(e,i):!1}providerMatchesPreference(e,t){return t instanceof kn?e.providedPasteEditKinds?e.providedPasteEditKinds.some(i=>t.contains(i)):!0:e.id===t.providerId}},yv=Hb,Hb.ID="editor.contrib.copyPasteActionController",Hb);qg=yv=gxt([cw(1,ct),cw(2,YN),cw(3,nm),cw(4,Je),cw(5,cu),cw(6,LIe)],qg);const s0="9_cutcopypaste",mxt=Oh||document.queryCommandSupported("cut"),jIe=Oh||document.queryCommandSupported("copy"),_xt=typeof navigator.clipboard>"u"||tu?document.queryCommandSupported("paste"):!0;function Eie(n){return n.register(),n}const vxt=mxt?Eie(new lL({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Oh?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:et.MenubarEditMenu,group:"2_ccp",title:v({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:et.EditorContext,group:s0,title:v("actions.clipboard.cutLabel","Cut"),when:H.writable,order:1},{menuId:et.CommandPalette,group:"",title:v("actions.clipboard.cutLabel","Cut"),order:1},{menuId:et.SimpleEditorContext,group:s0,title:v("actions.clipboard.cutLabel","Cut"),when:H.writable,order:1}]})):void 0,bxt=jIe?Eie(new lL({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Oh?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:et.MenubarEditMenu,group:"2_ccp",title:v({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:et.EditorContext,group:s0,title:v("actions.clipboard.copyLabel","Copy"),order:2},{menuId:et.CommandPalette,group:"",title:v("actions.clipboard.copyLabel","Copy"),order:1},{menuId:et.SimpleEditorContext,group:s0,title:v("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;pr.appendMenuItem(et.MenubarEditMenu,{submenu:et.MenubarCopy,title:Ct("copy as","Copy As"),group:"2_ccp",order:3});pr.appendMenuItem(et.EditorContext,{submenu:et.EditorContextCopy,title:Ct("copy as","Copy As"),group:s0,order:3});pr.appendMenuItem(et.EditorContext,{submenu:et.EditorContextShare,title:Ct("share","Share"),group:"11_share",order:-1,when:ye.and(ye.notEquals("resourceScheme","output"),H.editorTextFocus)});pr.appendMenuItem(et.ExplorerContext,{submenu:et.ExplorerContextShare,title:Ct("share","Share"),group:"11_share",order:-1});const FW=_xt?Eie(new lL({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Oh?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:et.MenubarEditMenu,group:"2_ccp",title:v({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:et.EditorContext,group:s0,title:v("actions.clipboard.pasteLabel","Paste"),when:H.writable,order:4},{menuId:et.CommandPalette,group:"",title:v("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:et.SimpleEditorContext,group:s0,title:v("actions.clipboard.pasteLabel","Paste"),when:H.writable,order:4}]})):void 0;class yxt extends Xe{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:v("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:0,weight:100}})}run(e,t){!t.hasModel()||!t.getOption(37)&&t.getSelection().isEmpty()||(qz.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand("copy"),qz.forceCopyWithSyntaxHighlighting=!1)}}function qIe(n,e){n&&(n.addImplementation(1e4,"code-editor",(t,i)=>{const s=t.get(wi).getFocusedCodeEditor();if(s&&s.hasTextFocus()){const r=s.getOption(37),o=s.getSelection();return o&&o.isEmpty()&&!r||s.getContainerDomNode().ownerDocument.execCommand(e),!0}return!1}),n.addImplementation(0,"generic-dom",(t,i)=>(oL().execCommand(e),!0)))}qIe(vxt,"cut");qIe(bxt,"copy");FW&&(FW.addImplementation(1e4,"code-editor",(n,e)=>{var r;const t=n.get(wi),i=n.get(nm),s=t.getFocusedCodeEditor();return s&&s.hasTextFocus()?s.getContainerDomNode().ownerDocument.execCommand("paste")?((r=qg.get(s))==null?void 0:r.finishedPaste())??Promise.resolve():N_?(async()=>{const a=await i.readText();if(a!==""){const l=RT.INSTANCE.get(a);let c=!1,u=null,h=null;l&&(c=s.getOption(37)&&!!l.isFromEmptySelection,u=typeof l.multicursorText<"u"?l.multicursorText:null,h=l.mode),s.trigger("keyboard","paste",{text:a,pasteOnNewLine:c,multicursorText:u,mode:h})}})():!0:!1}),FW.addImplementation(0,"generic-dom",(n,e)=>(oL().execCommand("paste"),!0)));jIe&&Ie(yxt);const QN=Object.freeze({id:"editor",order:5,type:"object",title:v("editorConfigurationTitle","Editor"),scope:5}),k4={...QN,properties:{"editor.tabSize":{type:"number",default:eo.tabSize,minimum:1,markdownDescription:v("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:v("indentSize",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:eo.insertSpaces,markdownDescription:v("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:eo.detectIndentation,markdownDescription:v("detectIndentation","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:eo.trimAutoWhitespace,description:v("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:eo.largeFileOptimizations,description:v("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[v("wordBasedSuggestions.off","Turn off Word Based Suggestions."),v("wordBasedSuggestions.currentDocument","Only suggest words from the active document."),v("wordBasedSuggestions.matchingDocuments","Suggest words from all open documents of the same language."),v("wordBasedSuggestions.allDocuments","Suggest words from all open documents.")],description:v("wordBasedSuggestions","Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[v("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),v("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),v("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:v("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:v("stablePeek","Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:v("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenization","Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenizationLogging","Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenizationVerification","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:v("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:v("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:v("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:v("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:v("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:v("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:Pr.maxComputationTime,description:v("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:Pr.maxFileSize,description:v("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:Pr.renderSideBySide,description:v("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:Pr.renderSideBySideInlineBreakpoint,description:v("renderSideBySideInlineBreakpoint","If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:Pr.useInlineViewWhenSpaceIsLimited,description:v("useInlineViewWhenSpaceIsLimited","If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:Pr.renderMarginRevertIcon,description:v("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:Pr.renderGutterMenu,description:v("renderGutterMenu","When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:Pr.ignoreTrimWhitespace,description:v("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:Pr.renderIndicators,description:v("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:Pr.diffCodeLens,description:v("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:Pr.diffWordWrap,markdownEnumDescriptions:[v("wordWrap.off","Lines will never wrap."),v("wordWrap.on","Lines will wrap at the viewport width."),v("wordWrap.inherit","Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:Pr.diffAlgorithm,markdownEnumDescriptions:[v("diffAlgorithm.legacy","Uses the legacy diffing algorithm."),v("diffAlgorithm.advanced","Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:Pr.hideUnchangedRegions.enabled,markdownDescription:v("hideUnchangedRegions.enabled","Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:Pr.hideUnchangedRegions.revealLineCount,markdownDescription:v("hideUnchangedRegions.revealLineCount","Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:Pr.hideUnchangedRegions.minimumLineCount,markdownDescription:v("hideUnchangedRegions.minimumLineCount","Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:Pr.hideUnchangedRegions.contextLineCount,markdownDescription:v("hideUnchangedRegions.contextLineCount","Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:Pr.experimental.showMoves,markdownDescription:v("showMoves","Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:Pr.experimental.showEmptyDecorations,description:v("showEmptyDecorations","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:Pr.experimental.useTrueInlineView,description:v("useTrueInlineView","If enabled and the editor uses the inline view, word changes are rendered inline.")}}};function wxt(n){return typeof n.type<"u"||typeof n.anyOf<"u"}for(const n of zw){const e=n.schema;if(typeof e<"u")if(wxt(e))k4.properties[`editor.${n.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(k4.properties[t]=e[t])}let AP=null;function KIe(){return AP===null&&(AP=Object.create(null),Object.keys(k4.properties).forEach(n=>{AP[n]=!0})),AP}function Cxt(n){return KIe()[`editor.${n}`]||!1}function Sxt(n){return KIe()[`diffEditor.${n}`]||!1}const xxt=Vn.as(Qu.Configuration);xxt.registerConfiguration(k4);const yn=new class{constructor(){this.QuickFix=new kn("quickfix"),this.Refactor=new kn("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new kn("notebook"),this.Source=new kn("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var wl;(function(n){n.Refactor="refactor",n.RefactorPreview="refactor preview",n.Lightbulb="lightbulb",n.Default="other (default)",n.SourceAction="source action",n.QuickFix="quick fix action",n.FixAll="fix all",n.OrganizeImports="organize imports",n.AutoFix="auto fix",n.QuickFixHover="quick fix hover window",n.OnSave="save participants",n.ProblemsView="problems view"})(wl||(wl={}));function Lxt(n,e){return!(n.include&&!n.include.intersects(e)||n.excludes&&n.excludes.some(t=>GIe(e,t,n.include))||!n.includeSourceActions&&yn.Source.contains(e))}function Ext(n,e){const t=e.kind?new kn(e.kind):void 0;return!(n.include&&(!t||!n.include.contains(t))||n.excludes&&t&&n.excludes.some(i=>GIe(t,i,n.include))||!n.includeSourceActions&&t&&yn.Source.contains(t)||n.onlyIncludePreferredActions&&!e.isPreferred)}function GIe(n,e,t){return!(!e.contains(n)||t&&e.contains(t))}class lf{static fromUser(e,t){return!e||typeof e!="object"?new lf(t.kind,t.apply,!1):new lf(lf.getKindFromUser(e,t.kind),lf.getApplyFromUser(e,t.apply),lf.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply=="string"?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return typeof e.kind=="string"?new kn(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class kxt{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){var t;if((t=this.provider)!=null&&t.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,e)}catch(s){ls(s)}i&&(this.action.edit=i.edit)}return this}}const XIe="editor.action.codeAction",kie="editor.action.quickFix",YIe="editor.action.autoFix",ZIe="editor.action.refactor",QIe="editor.action.sourceAction",yj="editor.action.organizeImports",wj="editor.action.fixAll";class Gk extends ue{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:so(e.diagnostics)?so(t.diagnostics)?Gk.codeActionsPreferredComparator(e,t):-1:so(t.diagnostics)?1:Gk.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(Gk.codeActionsComparator),this.validActions=this.allActions.filter(({action:s})=>!s.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&yn.QuickFix.contains(new kn(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const cfe={actions:[],documentation:void 0};async function Xk(n,e,t,i,s,r){var g;const o=i.filter||{},a={...o,excludes:[...o.excludes||[],yn.Notebook]},l={only:(g=o.include)==null?void 0:g.value,trigger:i.type},c=new Sie(e,r),u=i.type===2,h=Ixt(n,e,u?a:o),d=new be,f=h.map(async m=>{try{s.report(m);const _=await m.provideCodeActions(e,t,l,c.token);if(_&&d.add(_),c.token.isCancellationRequested)return cfe;const b=((_==null?void 0:_.actions)||[]).filter(C=>C&&Ext(o,C)),w=Dxt(m,b,o.include);return{actions:b.map(C=>new kxt(C,m)),documentation:w}}catch(_){if(ou(_))throw _;return ls(_),cfe}}),p=n.onDidChange(()=>{const m=n.all(e);In(m,h)||c.cancel()});try{const m=await Promise.all(f),_=m.map(w=>w.actions).flat(),b=[...Qh(m.map(w=>w.documentation)),...Txt(n,e,i,_)];return new Gk(_,b,d)}finally{p.dispose(),c.dispose()}}function Ixt(n,e,t){return n.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(s=>Lxt(t,new kn(s))):!0)}function*Txt(n,e,t,i){var s,r,o;if(e&&i.length)for(const a of n.all(e))a._getAdditionalMenuItems&&(yield*(o=a._getAdditionalMenuItems)==null?void 0:o.call(a,{trigger:t.type,only:(r=(s=t.filter)==null?void 0:s.include)==null?void 0:r.value},i.map(l=>l.action)))}function Dxt(n,e,t){if(!n.documentation)return;const i=n.documentation.map(s=>({kind:new kn(s.kind),command:s.command}));if(t){let s;for(const r of i)r.kind.contains(t)&&(s?s.kind.contains(r.kind)&&(s=r):s=r);if(s)return s==null?void 0:s.command}for(const s of e)if(s.kind){for(const r of i)if(r.kind.contains(new kn(s.kind)))return r.command}}var ab;(function(n){n.OnSave="onSave",n.FromProblemsView="fromProblemsView",n.FromCodeActions="fromCodeActions",n.FromAILightbulb="fromAILightbulb"})(ab||(ab={}));async function Nxt(n,e,t,i,s=Vt.None){var c;const r=n.get(YN),o=n.get(an),a=n.get(Ro),l=n.get(ms);if(a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),await e.resolve(s),!s.isCancellationRequested&&!((c=e.action.edit)!=null&&c.edits.length&&!(await r.apply(e.action.edit,{editor:i==null?void 0:i.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==ab.OnSave,showPreview:i==null?void 0:i.preview})).isApplied)&&e.action.command)try{await o.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(u){const h=Axt(u);l.error(typeof h=="string"?h:v("applyCodeActionFailed","An unknown error occurred while applying the code action"))}}function Axt(n){return typeof n=="string"?n:n instanceof Error&&typeof n.message=="string"?n.message:void 0}di.registerCommand("_executeCodeActionProvider",async function(n,e,t,i,s){if(!(e instanceof mt))throw Gc();const{codeActionProvider:r}=n.get(Je),o=n.get(mn).getModel(e);if(!o)throw Gc();const a=nt.isISelection(t)?nt.liftSelection(t):O.isIRange(t)?o.validateRange(t):void 0;if(!a)throw Gc();const l=typeof i=="string"?new kn(i):void 0,c=await Xk(r,o,a,{type:1,triggerAction:wl.Default,filter:{includeSourceActions:!0,include:l}},Rf.None,Vt.None),u=[],h=Math.min(c.validActions.length,typeof s=="number"?s:0);for(let d=0;d<h;d++)u.push(c.validActions[d].resolve(Vt.None));try{return await Promise.all(u),c.validActions.map(d=>d.action)}finally{setTimeout(()=>c.dispose(),100)}});var Pxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Rxt=function(n,e){return function(t,i){e(t,i,n)}},Cj,$b;let Sj=($b=class{constructor(e){this.keybindingService=e}getResolver(){const e=new Yh(()=>this.keybindingService.getKeybindings().filter(t=>Cj.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===yj?i={kind:yn.SourceOrganizeImports.value}:t.command===wj&&(i={kind:yn.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...lf.fromUser(i,{kind:kn.None,apply:"never"})}}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return i==null?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new kn(e.kind);return t.filter(s=>s.kind.contains(i)).filter(s=>s.preferred?e.isPreferred:!0).reduceRight((s,r)=>s?s.kind.contains(r.kind)?r:s:r,void 0)}},Cj=$b,$b.codeActionCommands=[ZIe,XIe,QIe,yj,wj],$b);Sj=Cj=Pxt([Rxt(0,Ni)],Sj);U("symbolIcon.arrayForeground",Zt,v("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.booleanForeground",Zt,v("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.colorForeground",Zt,v("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.constantForeground",Zt,v("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.fileForeground",Zt,v("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.folderForeground",Zt,v("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.keyForeground",Zt,v("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.keywordForeground",Zt,v("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.moduleForeground",Zt,v("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.namespaceForeground",Zt,v("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.nullForeground",Zt,v("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.numberForeground",Zt,v("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.objectForeground",Zt,v("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.operatorForeground",Zt,v("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.packageForeground",Zt,v("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.propertyForeground",Zt,v("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.referenceForeground",Zt,v("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.snippetForeground",Zt,v("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.stringForeground",Zt,v("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.structForeground",Zt,v("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.textForeground",Zt,v("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.typeParameterForeground",Zt,v("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.unitForeground",Zt,v("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));U("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const JIe=Object.freeze({kind:kn.Empty,title:v("codeAction.widget.id.more","More Actions...")}),Mxt=Object.freeze([{kind:yn.QuickFix,title:v("codeAction.widget.id.quickfix","Quick Fix")},{kind:yn.RefactorExtract,title:v("codeAction.widget.id.extract","Extract"),icon:Ne.wrench},{kind:yn.RefactorInline,title:v("codeAction.widget.id.inline","Inline"),icon:Ne.wrench},{kind:yn.RefactorRewrite,title:v("codeAction.widget.id.convert","Rewrite"),icon:Ne.wrench},{kind:yn.RefactorMove,title:v("codeAction.widget.id.move","Move"),icon:Ne.wrench},{kind:yn.SurroundWith,title:v("codeAction.widget.id.surround","Surround With"),icon:Ne.surroundWith},{kind:yn.Source,title:v("codeAction.widget.id.source","Source Action"),icon:Ne.symbolFile},JIe]);function Oxt(n,e,t){if(!e)return n.map(r=>{var o;return{kind:"action",item:r,group:JIe,disabled:!!r.action.disabled,label:r.action.disabled||r.action.title,canPreview:!!((o=r.action.edit)!=null&&o.edits.length)}});const i=Mxt.map(r=>({group:r,actions:[]}));for(const r of n){const o=r.action.kind?new kn(r.action.kind):kn.None;for(const a of i)if(a.group.kind.contains(o)){a.actions.push(r);break}}const s=[];for(const r of i)if(r.actions.length){s.push({kind:"header",group:r.group});for(const o of r.actions){const a=r.group;s.push({kind:"action",item:o,group:o.action.isAI?{title:a.title,kind:a.kind,icon:Ne.sparkle}:a,label:o.action.title,disabled:!!o.action.disabled,keybinding:t(o.action)})}}return s}var Fxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Bxt=function(n,e){return function(t,i){e(t,i,n)}},Dw;const ufe=_n("gutter-lightbulb",Ne.lightBulb,v("gutterLightbulbWidget","Icon which spawns code actions menu from the gutter when there is no space in the editor.")),hfe=_n("gutter-lightbulb-auto-fix",Ne.lightbulbAutofix,v("gutterLightbulbAutoFixWidget","Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),dfe=_n("gutter-lightbulb-sparkle",Ne.lightbulbSparkle,v("gutterLightbulbAIFixWidget","Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),ffe=_n("gutter-lightbulb-aifix-auto-fix",Ne.lightbulbSparkleAutofix,v("gutterLightbulbAIFixAutoFixWidget","Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),pfe=_n("gutter-lightbulb-sparkle-filled",Ne.sparkleFilled,v("gutterLightbulbSparkleFilledWidget","Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available."));var ch;(function(n){n.Hidden={type:0};class e{constructor(i,s,r,o){this.actions=i,this.trigger=s,this.editorPosition=r,this.widgetPosition=o,this.type=1}}n.Showing=e})(ch||(ch={}));var dg;let pD=(dg=class extends ue{constructor(e,t){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new oe),this.onClick=this._onClick.event,this._state=ch.Hidden,this._gutterState=ch.Hidden,this._iconClasses=[],this.gutterDecoration=Dw.GUTTER_DECORATION,this._domNode=Pe("div.lightBulbWidget"),this._domNode.role="listbox",this._register(ao.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(i=>{const s=this._editor.getModel();(this.state.type!==1||!s||this.state.editorPosition.lineNumber>=s.getLineCount())&&this.hide(),(this.gutterState.type!==1||!s||this.gutterState.editorPosition.lineNumber>=s.getLineCount())&&this.gutterHide()})),this._register(aut(this._domNode,i=>{if(this.state.type!==1)return;this._editor.focus(),i.preventDefault();const{top:s,height:r}=ps(this._domNode),o=this._editor.getOption(67);let a=Math.floor(o/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(a+=o),this._onClick.fire({x:i.posx,y:s+r+a,actions:this.state.actions,trigger:this.state.trigger})})),this._register(ge(this._domNode,"mouseenter",i=>{(i.buttons&1)===1&&this.hide()})),this._register(Oe.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var i,s;this._preferredKbLabel=((i=this._keybindingService.lookupKeybinding(YIe))==null?void 0:i.getLabel())??void 0,this._quickFixKbLabel=((s=this._keybindingService.lookupKeybinding(kie))==null?void 0:s.getLabel())??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async i=>{const s=["codicon-"+ufe.id,"codicon-"+ffe.id,"codicon-"+hfe.id,"codicon-"+dfe.id,"codicon-"+pfe.id];if(!i.target.element||!s.some(c=>i.target.element&&i.target.element.classList.contains(c))||this.gutterState.type!==1)return;this._editor.focus();const{top:r,height:o}=ps(i.target.element),a=this._editor.getOption(67);let l=Math.floor(a/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber<this.gutterState.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:i.event.posx,y:r+o+l,actions:this.gutterState.actions,trigger:this.gutterState.trigger})}))}dispose(){super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,i){var b;if(e.validActions.length<=0)return this.gutterHide(),this.hide();if(!this._editor.getOptions().get(65).enabled)return this.gutterHide(),this.hide();const r=this._editor.getModel();if(!r)return this.gutterHide(),this.hide();const{lineNumber:o,column:a}=r.validatePosition(i),l=r.getOptions().tabSize,c=this._editor.getOptions().get(50),u=r.getLineContent(o),h=m8(u,l),d=c.spaceWidth*h>22,f=w=>w>2&&this._editor.getTopForLineNumber(w)===this._editor.getTopForLineNumber(w-1);let p=o,g=1;if(!d){const w=C=>{const S=r.getLineContent(C);return/^\s*$|^\s+/.test(S)||S.length<=g};if(o>1&&!f(o-1)){const C=r.getLineCount(),S=o===C,x=o>1&&w(o-1),k=!S&&w(o+1),L=w(o),E=!k&&!x;let A=!1;const I=this._editor.getLineDecorations(o);if(I)for(const T of I)(b=T.options.glyphMarginClassName)!=null&&b.includes(Ne.debugBreakpoint.id)&&(A=!0);if(!k&&!x&&!A)return this.gutterState=new ch.Showing(e,t,i,{position:{lineNumber:p,column:g},preference:Dw._posPref}),this.renderGutterLightbub(),this.hide();x||S||E&&!L?p-=1:(k||E&&L)&&(p+=1)}else{if(o===1&&(o===r.getLineCount()||!w(o+1)&&!w(o)))return this.gutterState=new ch.Showing(e,t,i,{position:{lineNumber:p,column:g},preference:Dw._posPref}),this.renderGutterLightbub(),this.hide();if(o<r.getLineCount()&&!f(o+1))p+=1;else if(a*c.spaceWidth<22)return this.hide()}g=/^\S\s*$/.test(r.getLineContent(p))?2:1}this.state=new ch.Showing(e,t,i,{position:{lineNumber:p,column:g},preference:Dw._posPref}),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());const m=e.validActions,_=e.validActions[0].action.kind;if(m.length!==1||!_){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this.state!==ch.Hidden&&(this.state=ch.Hidden,this._editor.layoutContentWidget(this))}gutterHide(){this.gutterState!==ch.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this.gutterState=ch.Hidden)}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}get gutterState(){return this._gutterState}set gutterState(e){this._gutterState=e,this._updateGutterLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],this.state.type!==1)return;let e,t=!1;this.state.actions.allAIFixes?(e=Ne.sparkleFilled,this.state.actions.validActions.length===1&&(t=!0)):this.state.actions.hasAutoFix?this.state.actions.hasAIFix?e=Ne.lightbulbSparkleAutofix:e=Ne.lightbulbAutofix:this.state.actions.hasAIFix?e=Ne.lightbulbSparkle:e=Ne.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,t),this._iconClasses=ft.asClassNameArray(e),this._domNode.classList.add(...this._iconClasses)}_updateGutterLightBulbTitleAndIcon(){if(this.gutterState.type!==1)return;let e,t=!1;this.gutterState.actions.allAIFixes?(e=pfe,this.gutterState.actions.validActions.length===1&&(t=!0)):this.gutterState.actions.hasAutoFix?this.gutterState.actions.hasAIFix?e=ffe:e=hfe:this.gutterState.actions.hasAIFix?e=dfe:e=ufe,this._updateLightbulbTitle(this.gutterState.actions.hasAutoFix,t);const i=At.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ft.asClassName(e),glyphMargin:{position:Uu.Left},stickiness:1});this.gutterDecoration=i}renderGutterLightbub(){const e=this._editor.getSelection();e&&(this._gutterDecorationID===void 0?this._addGutterDecoration(e.startLineNumber):this._updateGutterDecoration(this._gutterDecorationID,e.startLineNumber))}_addGutterDecoration(e){this._editor.changeDecorations(t=>{this._gutterDecorationID=t.addDecoration(new O(e,0,e,0),this.gutterDecoration)})}_removeGutterDecoration(e){this._editor.changeDecorations(t=>{t.removeDecoration(e),this._gutterDecorationID=void 0})}_updateGutterDecoration(e,t){this._editor.changeDecorations(i=>{i.changeDecoration(e,new O(t,0,t,0)),i.changeDecorationOptions(e,this.gutterDecoration)})}_updateLightbulbTitle(e,t){this.state.type===1&&(t?this.title=v("codeActionAutoRun","Run: {0}",this.state.actions.validActions[0].action.title):e&&this._preferredKbLabel?this.title=v("preferredcodeActionWithKb","Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!e&&this._quickFixKbLabel?this.title=v("codeActionWithKb","Show Code Actions ({0})",this._quickFixKbLabel):e||(this.title=v("codeAction","Show Code Actions")))}set title(e){this._domNode.title=e}},Dw=dg,dg.GUTTER_DECORATION=At.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ft.asClassName(Ne.lightBulb),glyphMargin:{position:Uu.Left},stickiness:1}),dg.ID="editor.contrib.lightbulbWidget",dg._posPref=[0],dg);pD=Dw=Fxt([Bxt(1,Ni)],pD);const PP=Pe,eTe={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class xL extends ue{constructor(e,t,i){super(),this.os=t,this.keyElements=new Set,this.options=i||Object.create(null);const s=this.options.keybindingLabelForeground;this.domNode=ke(e,PP(".monaco-keybinding")),s&&(this.domNode.style.color=s),this.hover=this._register(_d().setupManagedHover(ua("mouse"),this.domNode,"")),this.didEverRender=!1,e.appendChild(this.domNode)}get element(){return this.domNode}set(e,t){this.didEverRender&&this.keybinding===e&&xL.areSame(this.matches,t)||(this.keybinding=e,this.matches=t,this.render())}render(){if(this.clear(),this.keybinding){const e=this.keybinding.getChords();e[0]&&this.renderChord(this.domNode,e[0],this.matches?this.matches.firstPart:null);for(let i=1;i<e.length;i++)ke(this.domNode,PP("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderChord(this.domNode,e[i],this.matches?this.matches.chordPart:null);const t=this.options.disableTitle??!1?void 0:this.keybinding.getAriaLabel()||void 0;this.hover.update(t),this.domNode.setAttribute("aria-label",t||"")}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0}clear(){kr(this.domNode),this.keyElements.clear()}renderChord(e,t,i){const s=gie.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,s.ctrlKey,!!(i!=null&&i.ctrlKey),s.separator),t.shiftKey&&this.renderKey(e,s.shiftKey,!!(i!=null&&i.shiftKey),s.separator),t.altKey&&this.renderKey(e,s.altKey,!!(i!=null&&i.altKey),s.separator),t.metaKey&&this.renderKey(e,s.metaKey,!!(i!=null&&i.metaKey),s.separator);const r=t.keyLabel;r&&this.renderKey(e,r,!!(i!=null&&i.keyCode),"")}renderKey(e,t,i,s){ke(e,this.createKeyElement(t,i?".highlight":"")),s&&ke(e,PP("span.monaco-keybinding-key-separator",void 0,s))}renderUnbound(e){ke(e,this.createKeyElement(v("unbound","Unbound")))}createKeyElement(e,t=""){const i=PP("span.monaco-keybinding-key"+t,void 0,e);return this.keyElements.add(i),this.options.keybindingLabelBackground&&(i.style.backgroundColor=this.options.keybindingLabelBackground),this.options.keybindingLabelBorder&&(i.style.borderColor=this.options.keybindingLabelBorder),this.options.keybindingLabelBottomBorder&&(i.style.borderBottomColor=this.options.keybindingLabelBottomBorder),this.options.keybindingLabelShadow&&(i.style.boxShadow=`inset 0 -1px 0 ${this.options.keybindingLabelShadow}`),i}static areSame(e,t){return e===t||!e&&!t?!0:!!e&&!!t&&lc(e.firstPart,t.firstPart)&&lc(e.chordPart,t.chordPart)}}var tTe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},xj=function(n,e){return function(t,i){e(t,i,n)}};const iTe="acceptSelectedCodeAction",nTe="previewSelectedCodeAction";class Wxt{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var s;i.text.textContent=((s=e.group)==null?void 0:s.title)??""}disposeTemplate(e){}}let Lj=class{get templateId(){return"action"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);const s=new xL(e,cl);return{container:e,icon:t,text:i,keybinding:s}}renderElement(e,t,i){var o,a,l;if((o=e.group)!=null&&o.icon?(i.icon.className=ft.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=Ue(e.group.icon.color.id))):(i.icon.className=ft.asClassName(Ne.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;i.text.textContent=sTe(e.label),i.keybinding.set(e.keybinding),Cut(!!e.keybinding,i.keybinding.element);const s=(a=this._keybindingService.lookupKeybinding(iTe))==null?void 0:a.getLabel(),r=(l=this._keybindingService.lookupKeybinding(nTe))==null?void 0:l.getLabel();i.container.classList.toggle("option-disabled",e.disabled),e.disabled?i.container.title=e.label:s&&r?this._supportsPreview&&e.canPreview?i.container.title=v({key:"label-preview",comment:['placeholders are keybindings, e.g "F2 to Apply, Shift+F2 to Preview"']},"{0} to Apply, {1} to Preview",s,r):i.container.title=v({key:"label",comment:['placeholder is a keybinding, e.g "F2 to Apply"']},"{0} to Apply",s):i.container.title=""}disposeTemplate(e){e.keybinding.dispose()}};Lj=tTe([xj(1,Ni)],Lj);class Vxt extends UIEvent{constructor(){super("acceptSelectedAction")}}class gfe extends UIEvent{constructor(){super("previewSelectedAction")}}function Hxt(n){if(n.kind==="action")return n.label}let Ej=class extends ue{constructor(e,t,i,s,r,o){super(),this._delegate=s,this._contextViewService=r,this._keybindingService=o,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new Wn),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const a={getHeight:l=>l.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:l=>l.kind};this._list=this._register(new yc(e,this.domNode,a,[new Lj(t,this._keybindingService),new Wxt],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:Hxt},accessibilityProvider:{getAriaLabel:l=>{if(l.kind==="action"){let c=l.label?sTe(l==null?void 0:l.label):"";return l.disabled&&(c=v({key:"customQuickFixWidget.labels",comment:["Action widget labels for accessibility."]},"{0}, Disabled Reason: {1}",c,l.disabled)),c}return null},getWidgetAriaLabel:()=>v({key:"customQuickFixWidget",comment:["An action widget option"]},"Action Widget"),getRole:l=>l.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(M0),this._register(this._list.onMouseClick(l=>this.onListClick(l))),this._register(this._list.onMouseOver(l=>this.onListHover(l))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(l=>this.onListSelection(l))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind==="action"}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter(l=>l.kind==="header").length,s=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(s);let r=e;if(this._allMenuItems.length>=50)r=380;else{const l=this._allMenuItems.map((c,u)=>{const h=this.domNode.ownerDocument.getElementById(this._list.getElementID(u));if(h){h.style.width="auto";const d=h.getBoundingClientRect().width;return h.style.width="",d}return 0});r=Math.max(...l,e)}const a=Math.min(s,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(a,r),this.domNode.style.height=`${a}px`,this._list.domFocus(),r}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],s=this._list.element(i);if(!this.focusCondition(s))return;const r=e?new gfe:new Vxt;this._list.setSelection([i],r)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof gfe):this._list.setSelection([])}onFocus(){var s,r;const e=this._list.getFocus();if(e.length===0)return;const t=e[0],i=this._list.element(t);(r=(s=this._delegate).onFocus)==null||r.call(s,i.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind==="action"){const i=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=i?i.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index=="number"?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};Ej=tTe([xj(4,sm),xj(5,Ni)],Ej);function sTe(n){return n.replace(/\r\n|\r|\n/g," ")}var $xt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},BW=function(n,e){return function(t,i){e(t,i,n)}};U("actionBar.toggledBackground",PN,v("actionBar.toggledBackground","Background color for toggled action items in action bar."));const r0={Visible:new $e("codeActionMenuVisible",!1,v("codeActionMenuVisible","Whether the action widget list is visible"))},F0=ri("actionWidgetService");let o0=class extends ue{get isVisible(){return r0.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new rr)}show(e,t,i,s,r,o,a){const l=r0.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(Ej,e,t,i,s);this._contextViewService.showContextView({getAnchor:()=>r,render:u=>(l.set(!0),this._renderWidget(u,c,a??[])),onHide:u=>{l.reset(),this._onWidgetClosed(u)}},o,!1)}acceptSelected(e){var t;(t=this._list.value)==null||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)==null?void 0:e.value)==null||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)==null?void 0:e.value)==null||t.focusNext()}hide(e){var t;(t=this._list.value)==null||t.hide(e),this._list.clear()}_renderWidget(e,t,i){var f;const s=document.createElement("div");if(s.classList.add("action-widget"),e.appendChild(s),this._list.value=t,this._list.value)s.appendChild(this._list.value.domNode);else throw new Error("List has no value");const r=new be,o=document.createElement("div"),a=e.appendChild(o);a.classList.add("context-view-block"),r.add(ge(a,Ae.MOUSE_DOWN,p=>p.stopPropagation()));const l=document.createElement("div"),c=e.appendChild(l);c.classList.add("context-view-pointerBlock"),r.add(ge(c,Ae.POINTER_MOVE,()=>c.remove())),r.add(ge(c,Ae.MOUSE_DOWN,()=>c.remove()));let u=0;if(i.length){const p=this._createActionBar(".action-widget-action-bar",i);p&&(s.appendChild(p.getContainer().parentElement),r.add(p),u=p.getContainer().offsetWidth)}const h=(f=this._list.value)==null?void 0:f.layout(u);s.style.width=`${h}px`;const d=r.add(Zh(e));return r.add(d.onDidBlur(()=>this.hide(!0))),r}_createActionBar(e,t){if(!t.length)return;const i=Pe(e),s=new uc(i);return s.push(t,{icon:!1,label:!0}),s}_onWidgetClosed(e){var t;(t=this._list.value)==null||t.hide(e)}};o0=$xt([BW(0,sm),BW(1,bt),BW(2,ct)],o0);fi(F0,o0,1);const JN=1100;nn(class extends ca{constructor(){super({id:"hideCodeActionWidget",title:Ct("hideCodeActionWidget.title","Hide action widget"),precondition:r0.Visible,keybinding:{weight:JN,primary:9,secondary:[1033]}})}run(n){n.get(F0).hide(!0)}});nn(class extends ca{constructor(){super({id:"selectPrevCodeAction",title:Ct("selectPrevCodeAction.title","Select previous action"),precondition:r0.Visible,keybinding:{weight:JN,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(n){const e=n.get(F0);e instanceof o0&&e.focusPrevious()}});nn(class extends ca{constructor(){super({id:"selectNextCodeAction",title:Ct("selectNextCodeAction.title","Select next action"),precondition:r0.Visible,keybinding:{weight:JN,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(n){const e=n.get(F0);e instanceof o0&&e.focusNext()}});nn(class extends ca{constructor(){super({id:iTe,title:Ct("acceptSelected.title","Accept selected action"),precondition:r0.Visible,keybinding:{weight:JN,primary:3,secondary:[2137]}})}run(n){const e=n.get(F0);e instanceof o0&&e.acceptSelected()}});nn(class extends ca{constructor(){super({id:nTe,title:Ct("previewSelected.title","Preview selected action"),precondition:r0.Visible,keybinding:{weight:JN,primary:2051}})}run(n){const e=n.get(F0);e instanceof o0&&e.acceptSelected(!0)}});var Zn;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(Zn||(Zn={}));(function(n){function e(o,a){return a-o}n.compare=e;const t=Object.create(null);t[n.Error]=v("sev.error","Error"),t[n.Warning]=v("sev.warning","Warning"),t[n.Info]=v("sev.info","Info");function i(o){return t[o]||""}n.toString=i;function s(o){switch(o){case fs.Error:return n.Error;case fs.Warning:return n.Warning;case fs.Info:return n.Info;case fs.Ignore:return n.Hint}}n.fromSeverity=s;function r(o){switch(o){case n.Error:return fs.Error;case n.Warning:return fs.Warning;case n.Info:return fs.Info;case n.Hint:return fs.Ignore}}n.toSeverity=r})(Zn||(Zn={}));var I4;(function(n){const e="";function t(s){return i(s,!0)}n.makeKey=t;function i(s,r){const o=[e];return s.source?o.push(s.source.replace("¦","\\¦")):o.push(e),s.code?typeof s.code=="string"?o.push(s.code.replace("¦","\\¦")):o.push(s.code.value.replace("¦","\\¦")):o.push(e),s.severity!==void 0&&s.severity!==null?o.push(Zn.toString(s.severity)):o.push(e),s.message&&r?o.push(s.message.replace("¦","\\¦")):o.push(e),s.startLineNumber!==void 0&&s.startLineNumber!==null?o.push(s.startLineNumber.toString()):o.push(e),s.startColumn!==void 0&&s.startColumn!==null?o.push(s.startColumn.toString()):o.push(e),s.endLineNumber!==void 0&&s.endLineNumber!==null?o.push(s.endLineNumber.toString()):o.push(e),s.endColumn!==void 0&&s.endColumn!==null?o.push(s.endColumn.toString()):o.push(e),o.push(e),o.join("¦")}n.makeKeyOptionalMessage=i})(I4||(I4={}));const op=ri("markerService"),rTe=new $e("supportedCodeAction",""),mfe="_typescript.applyFixAllCodeAction";class zxt extends ue{constructor(e,t,i,s=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=s,this._autoTriggerTimer=this._register(new Zu),this._register(this._markerService.onMarkerChanged(r=>this._onMarkerChanges(r))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>Ite(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:wl.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(e.type===1)return t;const i=this._editor.getOption(65).enabled;if(i!==Su.Off){{if(i===Su.On)return t;if(i===Su.OnCode){if(!t.isEmpty())return t;const r=this._editor.getModel(),{lineNumber:o,column:a}=t.getPosition(),l=r.getLineContent(o);if(l.length===0)return;if(a===1){if(/\s/.test(l[0]))return}else if(a===r.getLineMaxColumn(o)){if(/\s/.test(l[l.length-1]))return}else if(/\s/.test(l[a-2])&&/\s/.test(l[a-1]))return}}return t}}}var Fv;(function(n){n.Empty={type:0};class e{constructor(i,s,r){this.trigger=i,this.position=s,this._cancellablePromise=r,this.type=1,this.actions=r.catch(o=>{if(ou(o))return oTe;throw o})}cancel(){this._cancellablePromise.cancel()}}n.Triggered=e})(Fv||(Fv={}));const oTe=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Uxt extends ue{constructor(e,t,i,s,r,o){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=r,this._configurationService=o,this._codeActionOracle=this._register(new rr),this._state=Fv.Empty,this._onDidChangeState=this._register(new oe),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=rTe.bindTo(s),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Fv.Empty,!0))}_settingEnabledNearbyQuickfixes(){var t;const e=(t=this._editor)==null?void 0:t.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:e==null?void 0:e.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Fv.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(92)){const t=this._registry.all(e).flatMap(i=>i.providedCodeActionKinds??[]);this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new zxt(this._editor,this._markerService,i=>{var l;if(!i){this.setState(Fv.Empty);return}const s=i.selection.getStartPosition(),r=tr(async c=>{var u,h,d,f,p,g,m,_,b,w;if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===wl.QuickFix||(h=(u=i.trigger.filter)==null?void 0:u.include)!=null&&h.contains(yn.QuickFix))){const C=await Xk(this._registry,e,i.selection,i.trigger,Rf.None,c),S=[...C.allActions];if(c.isCancellationRequested)return oTe;const x=(d=C.validActions)==null?void 0:d.some(L=>L.action.kind?yn.QuickFix.contains(new kn(L.action.kind)):!1),k=this._markerService.read({resource:e.uri});if(x){for(const L of C.validActions)(p=(f=L.action.command)==null?void 0:f.arguments)!=null&&p.some(E=>typeof E=="string"&&E.includes(mfe))&&(L.action.diagnostics=[...k.filter(E=>E.relatedInformation)]);return{validActions:C.validActions,allActions:S,documentation:C.documentation,hasAutoFix:C.hasAutoFix,hasAIFix:C.hasAIFix,allAIFixes:C.allAIFixes,dispose:()=>{C.dispose()}}}else if(!x&&k.length>0){const L=i.selection.getPosition();let E=L,A=Number.MAX_VALUE;const I=[...C.validActions];for(const N of k){const M=N.endColumn,V=N.endLineNumber,W=N.startLineNumber;if(V===L.lineNumber||W===L.lineNumber){E=new se(V,M);const B={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:(g=i.trigger.filter)!=null&&g.include?(m=i.trigger.filter)==null?void 0:m.include:yn.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:((_=i.trigger.context)==null?void 0:_.notAvailableMessage)||"",position:E}},$=new nt(E.lineNumber,E.column,E.lineNumber,E.column),Y=await Xk(this._registry,e,$,B,Rf.None,c);if(Y.validActions.length!==0){for(const le of Y.validActions)(w=(b=le.action.command)==null?void 0:b.arguments)!=null&&w.some(re=>typeof re=="string"&&re.includes(mfe))&&(le.action.diagnostics=[...k.filter(re=>re.relatedInformation)]);C.allActions.length===0&&S.push(...Y.allActions),Math.abs(L.column-M)<A?I.unshift(...Y.validActions):I.push(...Y.validActions)}A=Math.abs(L.column-M)}}const T=I.filter((N,M,V)=>V.findIndex(W=>W.action.title===N.action.title)===M);return T.sort((N,M)=>N.action.isPreferred&&!M.action.isPreferred?-1:!N.action.isPreferred&&M.action.isPreferred||N.action.isAI&&!M.action.isAI?1:!N.action.isAI&&M.action.isAI?-1:0),{validActions:T,allActions:S,documentation:C.documentation,hasAutoFix:C.hasAutoFix,hasAIFix:C.hasAIFix,allAIFixes:C.allAIFixes,dispose:()=>{C.dispose()}}}}return Xk(this._registry,e,i.selection,i.trigger,Rf.None,c)});i.trigger.type===1&&((l=this._progressService)==null||l.showWhile(r,250));const o=new Fv.Triggered(i.trigger,s,r);let a=!1;this._state.type===1&&(a=this._state.trigger.type===1&&o.type===1&&o.trigger.type===2&&this._state.position!==o.position),a?setTimeout(()=>{this.setState(o)},500):this.setState(o)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:wl.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;(t=this._codeActionOracle.value)==null||t.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var jxt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},gp=function(n,e){return function(t,i){e(t,i,n)}},Nw;const qxt="quickfix-edit-highlight";var P1;let hx=(P1=class extends ue{static get(e){return e.getContribution(Nw.ID)}constructor(e,t,i,s,r,o,a,l,c,u){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=c,this._instantiationService=u,this._activeCodeActions=this._register(new rr),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new Uxt(this._editor,r.codeActionProvider,t,i,o,l)),this._register(this._model.onDidChangeState(h=>this.update(h))),this._lightBulbWidget=new Yh(()=>{const h=this._editor.getContribution(pD.ID);return h&&this._register(h.onClick(d=>this.showCodeActionsFromLightbulb(d.actions,d))),h}),this._resolver=s.createInstance(Sj),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&e.validActions.length===1){const i=e.validActions[0],s=i.action.command;s&&s.id==="inlineChat.start"&&s.arguments&&s.arguments.length>=1&&(s.arguments[0]={...s.arguments[0],autoSend:!1}),await this._applyCodeAction(i,!1,!1,ab.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,s){var o;if(!this._editor.hasModel())return;(o=pl.get(this._editor))==null||o.closeMessage();const r=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:s,context:{notAvailableMessage:e,position:r}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,i,s){try{await this._instantiationService.invokeFunction(Nxt,e,s,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:wl.QuickFix,filter:{}})}}hideLightBulbWidget(){var e,t;(e=this._lightBulbWidget.rawValue)==null||e.hide(),(t=this._lightBulbWidget.rawValue)==null||t.gutterHide()}async update(e){var i,s,r,o,a;if(e.type!==1){this.hideLightBulbWidget();return}let t;try{t=await e.actions}catch(l){Nt(l);return}if(!this._disposed)if((i=this._lightBulbWidget.value)==null||i.update(t,e.trigger,e.position),e.trigger.type===1){if((s=e.trigger.filter)!=null&&s.include){const c=this.tryGetValidActionToApply(e.trigger,t);if(c){try{this.hideLightBulbWidget(),await this._applyCodeAction(c,!1,!1,ab.FromCodeActions)}finally{t.dispose()}return}if(e.trigger.context){const u=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,t);if(u&&u.action.disabled){(r=pl.get(this._editor))==null||r.showMessage(u.action.disabled,e.trigger.context.position),t.dispose();return}}}const l=!!((o=e.trigger.filter)!=null&&o.include);if(e.trigger.context&&(!t.allActions.length||!l&&!t.validActions.length)){(a=pl.get(this._editor))==null||a.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=t,t.dispose();return}this._activeCodeActions.value=t,this.showCodeActionList(t,this.toCoords(e.position),{includeDisabledActions:l,fromLightbulb:!1})}else this._actionWidgetService.isVisible?t.dispose():this._activeCodeActions.value=t}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply==="first"&&t.validActions.length===0||e.autoApply==="ifSingle"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply==="first"&&t.validActions.length>0||e.autoApply==="ifSingle"&&t.validActions.length===1))return t.validActions[0]}async showCodeActionList(e,t,i){const s=this._editor.createDecorationsCollection(),r=this._editor.getDomNode();if(!r)return;const o=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!o.length)return;const a=se.isIPosition(t)?this.toCoords(t):t,l={onSelect:async(c,u)=>{this._applyCodeAction(c,!0,!!u,i.fromLightbulb?ab.FromAILightbulb:ab.FromCodeActions),this._actionWidgetService.hide(!1),s.clear()},onHide:c=>{var u;(u=this._editor)==null||u.focus(),s.clear()},onHover:async(c,u)=>{var f;if(u.isCancellationRequested)return;let h=!1;const d=c.action.kind;if(d){const p=new kn(d);h=[yn.RefactorExtract,yn.RefactorInline,yn.RefactorRewrite,yn.RefactorMove,yn.Source].some(m=>m.contains(p))}return{canPreview:h||!!((f=c.action.edit)!=null&&f.edits.length)}},onFocus:c=>{var u,h;if(c&&c.action){const d=c.action.ranges,f=c.action.diagnostics;if(s.clear(),d&&d.length>0){const p=f&&(f==null?void 0:f.length)>1?f.map(g=>({range:g,options:Nw.DECORATION})):d.map(g=>({range:g,options:Nw.DECORATION}));s.set(p)}else if(f&&f.length>0){const p=f.map(m=>({range:m,options:Nw.DECORATION}));s.set(p);const g=f[0];if(g.startLineNumber&&g.startColumn){const m=(h=(u=this._editor.getModel())==null?void 0:u.getWordAtPosition({lineNumber:g.startLineNumber,column:g.startColumn}))==null?void 0:h.word;jf(v("editingNewSelection","Context: {0} at line {1} and column {2}.",m,g.startLineNumber,g.startColumn))}}}else s.clear()}};this._actionWidgetService.show("codeActionWidget",!0,Oxt(o,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,r,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=ps(this._editor.getDomNode()),s=i.left+t.left,r=i.top+t.top+t.height;return{x:s,y:r}}_shouldShowHeaders(){var t;const e=(t=this._editor)==null?void 0:t.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:e==null?void 0:e.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const s=e.documentation.map(r=>({id:r.id,label:r.title,tooltip:r.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(r.id,...r.arguments??[])}));return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&s.push(this._showDisabled?{id:"hideMoreActions",label:v("hideMoreActions","Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:v("showMoreActions","Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),s}},Nw=P1,P1.ID="editor.contrib.codeActionController",P1.DECORATION=At.register({description:"quickfix-highlight",className:qxt}),P1);hx=Nw=jxt([gp(1,op),gp(2,bt),gp(3,ct),gp(4,Je),gp(5,B_),gp(6,an),gp(7,Xt),gp(8,F0),gp(9,ct)],hx);au((n,e)=>{((s,r)=>{r&&e.addRule(`.monaco-editor ${s} { background-color: ${r}; }`)})(".quickfix-edit-highlight",n.getColor(sg));const i=n.getColor(o1);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Vh(n.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function eA(n){return ye.regex(rTe.keys()[0],new RegExp("(\\s|^)"+dc(n.value)+"\\b"))}const Iie={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:v("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:v("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[v("args.schema.apply.first","Always apply the first returned code action."),v("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),v("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:v("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};function B0(n,e,t,i,s=wl.Default){if(n.hasModel()){const r=hx.get(n);r==null||r.manualTriggerAtCurrentPosition(e,s,t,i)}}class Kxt extends Xe{constructor(){super({id:kie,label:v("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:ye.and(H.writable,H.hasCodeActionsProvider),kbOpts:{kbExpr:H.textInputFocus,primary:2137,weight:100}})}run(e,t){return B0(t,v("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,wl.QuickFix)}}class Gxt extends Gs{constructor(){super({id:XIe,precondition:ye.and(H.writable,H.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Iie}]}})}runEditorCommand(e,t,i){const s=lf.fromUser(i,{kind:kn.Empty,apply:"ifSingle"});return B0(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):v("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):s.preferred?v("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):v("editor.action.codeAction.noneMessage","No code actions available"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}class Xxt extends Xe{constructor(){super({id:ZIe,label:v("refactor.label","Refactor..."),alias:"Refactor...",precondition:ye.and(H.writable,H.hasCodeActionsProvider),kbOpts:{kbExpr:H.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:ye.and(H.writable,eA(yn.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Iie}]}})}run(e,t,i){const s=lf.fromUser(i,{kind:yn.Refactor,apply:"never"});return B0(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",i.kind):v("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",i.kind):s.preferred?v("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):v("editor.action.refactor.noneMessage","No refactorings available"),{include:yn.Refactor.contains(s.kind)?s.kind:kn.None,onlyIncludePreferredActions:s.preferred},s.apply,wl.Refactor)}}class Yxt extends Xe{constructor(){super({id:QIe,label:v("source.label","Source Action..."),alias:"Source Action...",precondition:ye.and(H.writable,H.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:ye.and(H.writable,eA(yn.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Iie}]}})}run(e,t,i){const s=lf.fromUser(i,{kind:yn.Source,apply:"never"});return B0(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):v("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):s.preferred?v("editor.action.source.noneMessage.preferred","No preferred source actions available"):v("editor.action.source.noneMessage","No source actions available"),{include:yn.Source.contains(s.kind)?s.kind:kn.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,wl.SourceAction)}}class Zxt extends Xe{constructor(){super({id:yj,label:v("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:ye.and(H.writable,eA(yn.SourceOrganizeImports)),kbOpts:{kbExpr:H.textInputFocus,primary:1581,weight:100}})}run(e,t){return B0(t,v("editor.action.organize.noneMessage","No organize imports action available"),{include:yn.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",wl.OrganizeImports)}}class Qxt extends Xe{constructor(){super({id:wj,label:v("fixAll.label","Fix All"),alias:"Fix All",precondition:ye.and(H.writable,eA(yn.SourceFixAll))})}run(e,t){return B0(t,v("fixAll.noneMessage","No fix all action available"),{include:yn.SourceFixAll,includeSourceActions:!0},"ifSingle",wl.FixAll)}}class Jxt extends Xe{constructor(){super({id:YIe,label:v("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:ye.and(H.writable,eA(yn.QuickFix)),kbOpts:{kbExpr:H.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return B0(t,v("editor.action.autoFix.noneMessage","No auto fixes available"),{include:yn.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",wl.AutoFix)}}_i(hx.ID,hx,3);_i(pD.ID,pD,4);Ie(Kxt);Ie(Xxt);Ie(Yxt);Ie(Zxt);Ie(Jxt);Ie(Qxt);Ve(new Gxt);Vn.as(Qu.Configuration).registerConfiguration({...QN,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:v("showCodeActionHeaders","Enable/disable showing group headers in the Code Action menu."),default:!0}}});Vn.as(Qu.Configuration).registerConfiguration({...QN,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:v("includeNearbyQuickFixes","Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});Vn.as(Qu.Configuration).registerConfiguration({...QN,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:5,markdownDescription:v("triggerOnFocusChange","Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});class kj{constructor(){this.lenses=[],this._disposables=new be}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}async function aTe(n,e,t){const i=n.ordered(e),s=new Map,r=new kj,o=i.map(async(a,l)=>{s.set(a,l);try{const c=await Promise.resolve(a.provideCodeLenses(e,t));c&&r.add(c,a)}catch(c){ls(c)}});return await Promise.all(o),r.lenses=r.lenses.sort((a,l)=>a.symbol.range.startLineNumber<l.symbol.range.startLineNumber?-1:a.symbol.range.startLineNumber>l.symbol.range.startLineNumber?1:s.get(a.provider)<s.get(l.provider)?-1:s.get(a.provider)>s.get(l.provider)?1:a.symbol.range.startColumn<l.symbol.range.startColumn?-1:a.symbol.range.startColumn>l.symbol.range.startColumn?1:0),r}di.registerCommand("_executeCodeLensProvider",function(n,...e){let[t,i]=e;yi(mt.isUri(t)),yi(typeof i=="number"||!i);const{codeLensProvider:s}=n.get(Je),r=n.get(mn).getModel(t);if(!r)throw Gc();const o=[],a=new be;return aTe(s,r,Vt.None).then(l=>{a.add(l);const c=[];for(const u of l.lenses)i==null||u.symbol.command?o.push(u.symbol):i-- >0&&u.provider.resolveCodeLens&&c.push(Promise.resolve(u.provider.resolveCodeLens(r,u.symbol,Vt.None)).then(h=>o.push(h||u.symbol)));return Promise.all(c)}).then(()=>o).finally(()=>{setTimeout(()=>a.dispose(),100)})});var eLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},tLt=function(n,e){return function(t,i){e(t,i,n)}};const lTe=ri("ICodeLensCache");class _fe{constructor(e,t){this.lineCount=e,this.data=t}}let Ij=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new np(20,.75);const t="codelens/cache";BE(Gi,()=>e.remove(t,1));const i="codelens/cache2",s=e.get(i,1,"{}");this._deserialize(s);const r=Oe.filter(e.onWillSaveState,o=>o.reason===lD.SHUTDOWN);Oe.once(r)(o=>{e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(o=>{var a;return{range:o.symbol.range,command:o.symbol.command&&{id:"",title:(a=o.symbol.command)==null?void 0:a.title}}}),s=new kj;s.add({lenses:i,dispose:()=>{}},this._fakeProvider);const r=new _fe(e.getLineCount(),s);this._cache.set(e.uri.toString(),r)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const s=new Set;for(const r of i.data.lenses)s.add(r.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...s.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const s=t[i],r=[];for(const a of s.lines)r.push({range:new O(a,1,a,11)});const o=new kj;o.add({lenses:r,dispose(){}},this._fakeProvider),this._cache.set(i,new _fe(s.lineCount,o))}}catch{}}};Ij=eLt([tLt(0,Ju)],Ij);fi(lTe,Ij,1);class iLt{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}const yI=class yI{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${yI._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let s=!1;for(let r=0;r<e.length;r++){const o=e[r];if(o&&(s=!0,o.command)){const a=L1(o.command.title.trim());if(o.command.id){const l=`c${yI._idPool++}`;i.push(Pe("a",{id:l,title:o.command.tooltip,role:"button"},...a)),this._commands.set(l,o.command)}else i.push(Pe("span",{title:o.command.tooltip},...a));r+1<e.length&&i.push(Pe("span",void 0," | "))}}s?(Ir(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):Ir(this._domNode,Pe("span",void 0,"no commands"))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}};yI._idPool=0;let Tj=yI;class WW{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,s=t.length;i<s;i++)this._addDecorationsCallbacks[i](t[i])}}const vfe=At.register({collapseOnReplaceEdit:!0,description:"codelens"});class bfe{constructor(e,t,i,s,r,o){this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];let a;const l=[];this._data.forEach((c,u)=>{c.symbol.command&&l.push(c.symbol),i.addDecoration({range:c.symbol.range,options:vfe},h=>this._decorationIds[u]=h),a?a=O.plusRange(a,c.symbol.range):a=O.lift(c.symbol.range)}),this._viewZone=new iLt(a.startLineNumber-1,r,o),this._viewZoneId=s.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new Tj(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t==null||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),s=this._data[t].symbol;return!!(i&&O.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:vfe},r=>this._decorationIds[s]=r)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=e.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const i=e[t];if(i){const{symbol:s}=this._data[t];s.command=i.command||s.command}}}getCommand(e){var t;return(t=this._contentWidget)==null?void 0:t.getCommand(e)}getLineNumber(){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){const t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}}const Tie=ri("environmentService");var nLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},yfe=function(n,e){return function(t,i){e(t,i,n)}};const wc=ri("ILanguageFeatureDebounceService");var T4;(function(n){const e=new WeakMap;let t=0;function i(s){let r=e.get(s);return r===void 0&&(r=++t,e.set(s,r)),r}n.of=i})(T4||(T4={}));class sLt{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class rLt{constructor(e,t,i,s,r,o){this._logService=e,this._name=t,this._registry=i,this._default=s,this._min=r,this._max=o,this._cache=new np(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>RB(T4.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?$o(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let s=this._cache.get(i);s||(s=new twt(6),this._cache.set(i,s));const r=$o(s.update(t),this._min,this._max);return Eee(e.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${r}ms`),r}_overall(){const e=new Yke;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return $o(e,this._min,this._max)}}let Dj=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){const s=(i==null?void 0:i.min)??50,r=(i==null?void 0:i.max)??s**2,o=(i==null?void 0:i.key)??void 0,a=`${T4.of(e)},${s}${o?","+o:""}`;let l=this._data.get(a);return l||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${t}] is disabled in developed mode`),l=new sLt(s*1.5)):l=new rLt(this._logService,t,e,this._overallAverage()|0||s*1.5,s,r),this._data.set(a,l)),l}_overallAverage(){const e=new Yke;for(const t of this._data.values())e.update(t.default());return e.value}};Dj=nLt([yfe(0,co),yfe(1,Tie)],Dj);fi(wc,Dj,1);var oLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},gE=function(n,e){return function(t,i){e(t,i,n)}},uS;let gD=(uS=class{constructor(e,t,i,s,r,o){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=r,this._codeLensCache=o,this._disposables=new be,this._localToDispose=new be,this._lenses=[],this._oldCodeLensModels=new be,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new ji(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(50)||a.hasChanged(19)||a.hasChanged(18))&&this._updateLensStyle(),a.hasChanged(17)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)==null||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),s=this._editor.getOption(50),{style:r}=this._editor.getContainerDomNode();r.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),r.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),r.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),i&&(r.setProperty("--vscode-editorCodeLens-fontFamily",i),r.setProperty("--vscode-editorCodeLens-fontFamilyDefault",ta.fontFamily)),this._editor.changeViewZones(o=>{for(const a of this._lenses)a.updateHeight(e,o)})}_localDispose(){var e,t,i;(e=this._getCodeLensModelPromise)==null||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)==null||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(i=this._currentCodeLensModel)==null||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&n_(()=>{const s=this._codeLensCache.get(e);t===s&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const s of this._languageFeaturesService.codeLensProvider.all(e))if(typeof s.onDidChange=="function"){const r=s.onDidChange(()=>i.schedule());this._localToDispose.add(r)}const i=new ji(()=>{var r;const s=Date.now();(r=this._getCodeLensModelPromise)==null||r.cancel(),this._getCodeLensModelPromise=tr(o=>aTe(this._languageFeaturesService.codeLensProvider,e,o)),this._getCodeLensModelPromise.then(o=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=o,this._codeLensCache.put(e,o);const a=this._provideCodeLensDebounce.update(e,Date.now()-s);i.delay=a,this._renderCodeLensSymbols(o),this._resolveCodeLensesInViewportSoon()},Nt)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(lt(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var s;this._editor.changeDecorations(r=>{this._editor.changeViewZones(o=>{const a=[];let l=-1;this._lenses.forEach(u=>{!u.isValid()||l===u.getLineNumber()?a.push(u):(u.update(o),l=u.getLineNumber())});const c=new WW;a.forEach(u=>{u.dispose(c,o),this._lenses.splice(this._lenses.indexOf(u),1)}),c.commit(r)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),(s=this._resolveCodeLensesPromise)==null||s.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(s=>{s.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(lt(()=>{if(this._editor.getModel()){const s=id.capture(this._editor);this._editor.changeDecorations(r=>{this._editor.changeViewZones(o=>{this._disposeAllLenses(r,o)})}),s.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(s=>{if(s.target.type!==9)return;let r=s.target.element;if((r==null?void 0:r.tagName)==="SPAN"&&(r=r.parentElement),(r==null?void 0:r.tagName)==="A")for(const o of this._lenses){const a=o.getCommand(r);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new WW;for(const s of this._lenses)s.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let s;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(s&&s[s.length-1].symbol.range.startLineNumber===l?s.push(a):(s=[a],i.push(s)))}if(!i.length&&!this._lenses.length)return;const r=id.capture(this._editor),o=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const c=new WW;let u=0,h=0;for(;h<i.length&&u<this._lenses.length;){const d=i[h][0].symbol.range.startLineNumber,f=this._lenses[u].getLineNumber();f<d?(this._lenses[u].dispose(c,l),this._lenses.splice(u,1)):f===d?(this._lenses[u].updateCodeLensSymbols(i[h],c),h++,u++):(this._lenses.splice(u,0,new bfe(i[h],this._editor,c,l,o.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),u++,h++)}for(;u<this._lenses.length;)this._lenses[u].dispose(c,l),this._lenses.splice(u,1);for(;h<i.length;)this._lenses.push(new bfe(i[h],this._editor,c,l,o.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),h++;c.commit(a)})}),r.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var o;(o=this._resolveCodeLensesPromise)==null||o.cancel(),this._resolveCodeLensesPromise=void 0;const e=this._editor.getModel();if(!e)return;const t=[],i=[];if(this._lenses.forEach(a=>{const l=a.computeIfNecessary(e);l&&(t.push(l),i.push(a))}),t.length===0)return;const s=Date.now(),r=tr(a=>{const l=t.map((c,u)=>{const h=new Array(c.length),d=c.map((f,p)=>!f.symbol.command&&typeof f.provider.resolveCodeLens=="function"?Promise.resolve(f.provider.resolveCodeLens(e,f.symbol,a)).then(g=>{h[p]=g},ls):(h[p]=f.symbol,Promise.resolve(void 0)));return Promise.all(d).then(()=>{!a.isCancellationRequested&&!i[u].isDisposed()&&i[u].updateCommands(h)})});return Promise.all(l)});this._resolveCodeLensesPromise=r,this._resolveCodeLensesPromise.then(()=>{const a=this._resolveCodeLensesDebounce.update(e,Date.now()-s);this._resolveCodeLensesScheduler.delay=a,this._currentCodeLensModel&&this._codeLensCache.put(e,this._currentCodeLensModel),this._oldCodeLensModels.clear(),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},a=>{Nt(a),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(e=this._currentCodeLensModel)!=null&&e.isDisposed?void 0:this._currentCodeLensModel}},uS.ID="css.editor.codeLens",uS);gD=oLt([gE(1,Je),gE(2,wc),gE(3,an),gE(4,ms),gE(5,lTe)],gD);_i(gD.ID,gD,1);Ie(class extends Xe{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:H.hasCodeLensProvider,label:v("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(e,t){if(!t.hasModel())return;const i=e.get(cu),s=e.get(an),r=e.get(ms),o=t.getSelection().positionLineNumber,a=t.getContribution(gD.ID);if(!a)return;const l=await a.getModel();if(!l)return;const c=[];for(const d of l.lenses)d.symbol.command&&d.symbol.range.startLineNumber===o&&c.push({label:d.symbol.command.title,command:d.symbol.command});if(c.length===0)return;const u=await i.pick(c,{canPickMany:!1,placeHolder:v("placeHolder","Select a command")});if(!u)return;let h=u.command;if(l.isDisposed){const d=await a.getModel(),f=d==null?void 0:d.lenses.find(p=>{var g;return p.symbol.range.startLineNumber===o&&((g=p.symbol.command)==null?void 0:g.title)===h.title});if(!f||!f.symbol.command)return;h=f.symbol.command}try{await s.executeCommand(h.id,...h.arguments||[])}catch(d){r.error(d)}}});const aLt="$initialize";let wfe=!1;function Nj(n){N_&&(wfe||(wfe=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(n.message))}class lLt{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.method=i,this.args=s,this.type=0}}class Cfe{constructor(e,t,i,s){this.vsWorker=e,this.seq=t,this.res=i,this.err=s,this.type=1}}class cLt{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=s,this.type=2}}class uLt{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class hLt{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class dLt{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((s,r)=>{this._pendingReplies[i]={resolve:s,reject:r},this._send(new lLt(this._workerId,i,e,t))})}listen(e,t){let i=null;const s=new oe({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,s),this._send(new cLt(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new hLt(this._workerId,i)),i=null}});return s.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq]){console.warn("Got reply to unknown seq");return}const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then(s=>{this._send(new Cfe(this._workerId,t,s,void 0))},s=>{s.detail instanceof Error&&(s.detail=Zce(s.detail)),this._send(new Cfe(this._workerId,t,void 0,Zce(s)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(s=>{this._send(new uLt(this._workerId,t,s))});this._pendingEvents.set(t,i)}_handleEventMessage(e){if(!this._pendingEmitters.has(e.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){if(!this._pendingEvents.has(e.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)}_send(e){const t=[];if(e.type===0)for(let i=0;i<e.args.length;i++)e.args[i]instanceof ArrayBuffer&&t.push(e.args[i]);else e.type===1&&e.res instanceof ArrayBuffer&&t.push(e.res);this._handler.sendMessage(e,t)}}class fLt extends ue{constructor(e,t,i){super();let s=null;this._worker=this._register(e.create("vs/base/common/worker/simpleWorker",u=>{this._protocol.handleMessage(u)},u=>{s==null||s(u)})),this._protocol=new dLt({sendMessage:(u,h)=>{this._worker.postMessage(u,h)},handleMessage:(u,h)=>{if(typeof i[u]!="function")return Promise.reject(new Error("Missing method "+u+" on main thread host."));try{return Promise.resolve(i[u].apply(i,h))}catch(d){return Promise.reject(d)}},handleEvent:(u,h)=>{if(uTe(u)){const d=i[u].call(i,h);if(typeof d!="function")throw new Error(`Missing dynamic event ${u} on main thread host.`);return d}if(cTe(u)){const d=i[u];if(typeof d!="function")throw new Error(`Missing event ${u} on main thread host.`);return d}throw new Error(`Malformed event name ${u}`)}}),this._protocol.setWorkerId(this._worker.getId());let r=null;const o=globalThis.require;typeof o<"u"&&typeof o.getConfig=="function"?r=o.getConfig():typeof globalThis.requirejs<"u"&&(r=globalThis.requirejs.s.contexts._.config);const a=Qee(i);this._onModuleLoaded=this._protocol.sendMessage(aLt,[this._worker.getId(),JSON.parse(JSON.stringify(r)),t,a]);const l=(u,h)=>this._request(u,h),c=(u,h)=>this._protocol.listen(u,h);this._lazyProxy=new Promise((u,h)=>{s=h,this._onModuleLoaded.then(d=>{u(pLt(d,l,c))},d=>{h(d),this._onError("Worker failed to load "+t,d)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,s)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,s)},s)})}_onError(e,t){console.error(e),console.info(t)}}function cTe(n){return n[0]==="o"&&n[1]==="n"&&Yd(n.charCodeAt(2))}function uTe(n){return/^onDynamic/.test(n)&&Yd(n.charCodeAt(9))}function pLt(n,e,t){const i=o=>function(){const a=Array.prototype.slice.call(arguments,0);return e(o,a)},s=o=>function(a){return t(o,a)},r={};for(const o of n){if(uTe(o)){r[o]=s(o);continue}if(cTe(o)){r[o]=t(o,void 0);continue}r[o]=i(o)}return r}let D4;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?D4=globalThis.workerttPolicy:D4=tm("defaultWorkerFactory",{createScriptURL:n=>n});function gLt(n){const e=globalThis.MonacoEnvironment;if(e){if(typeof e.getWorker=="function")return e.getWorker("workerMain.js",n);if(typeof e.getWorkerUrl=="function"){const t=e.getWorkerUrl("workerMain.js",n);return new Worker(D4?D4.createScriptURL(t):t,{name:n})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function mLt(n){return typeof n.then=="function"}class _Lt extends ue{constructor(e,t,i,s,r){super(),this.id=t,this.label=i;const o=gLt(i);mLt(o)?this.worker=o:this.worker=Promise.resolve(o),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){s(l.data)},a.onmessageerror=r,typeof a.addEventListener=="function"&&a.addEventListener("error",r)}),this._register(lt(()=>{var a;(a=this.worker)==null||a.then(l=>{l.onmessage=null,l.onmessageerror=null,l.removeEventListener("error",r),l.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(e,t){var i;(i=this.worker)==null||i.then(s=>{try{s.postMessage(e,t)}catch(r){Nt(r),Nt(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:r}))}})}}const O3=class O3{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const s=++O3.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new _Lt(e,s,this._label||"anonymous"+s,t,r=>{Nj(r),this._webWorkerFailedBeforeError=r,i(r)})}};O3.LAST_WORKER_ID=0;let Aj=O3;class Tm{constructor(e,t,i,s){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class Sfe{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,s=e.length;i<s;i++)t[i]=e.charCodeAt(i);return t}}function vLt(n,e,t){return new cf(new Sfe(n),new Sfe(e)).ComputeDiff(t).changes}class uw{static Assert(e,t){if(!e)throw new Error(t)}}class hw{static Copy(e,t,i,s,r){for(let o=0;o<r;o++)i[s+o]=e[t+o]}static Copy2(e,t,i,s,r){for(let o=0;o<r;o++)i[s+o]=e[t+o]}}class xfe{constructor(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}MarkNextChange(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new Tm(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class cf{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[s,r,o]=cf._getElements(e),[a,l,c]=cf._getElements(t);this._hasStrings=o&&c,this._originalStringElements=s,this._originalElementsOrHash=r,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const t=e.getElements();if(cf._isStringArray(t)){const i=new Int32Array(t.length);for(let s=0,r=t.length;s<r;s++)i[s]=kee(t[s],0);return[t,i,!0]}return t instanceof Int32Array?[[],t,!1]:[[],new Int32Array(t),!1]}ElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._modifiedStringElements[t]:!0}ElementsAreStrictEqual(e,t){if(!this.ElementsAreEqual(e,t))return!1;const i=cf._getStrictElement(this._originalSequence,e),s=cf._getStrictElement(this._modifiedSequence,t);return i===s}static _getStrictElement(e,t){return typeof e.getStrictElement=="function"?e.getStrictElement(t):null}OriginalElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._originalElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._originalStringElements[t]:!0}ModifiedElementsAreEqual(e,t){return this._modifiedElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._modifiedStringElements[e]===this._modifiedStringElements[t]:!0}ComputeDiff(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}_ComputeDiff(e,t,i,s,r){const o=[!1];let a=this.ComputeDiffRecursive(e,t,i,s,o);return r&&(a=this.PrettifyChanges(a)),{quitEarly:o[0],changes:a}}ComputeDiffRecursive(e,t,i,s,r){for(r[0]=!1;e<=t&&i<=s&&this.ElementsAreEqual(e,i);)e++,i++;for(;t>=e&&s>=i&&this.ElementsAreEqual(t,s);)t--,s--;if(e>t||i>s){let h;return i<=s?(uw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),h=[new Tm(e,0,i,s-i+1)]):e<=t?(uw.Assert(i===s+1,"modifiedStart should only be one more than modifiedEnd"),h=[new Tm(e,t-e+1,i,0)]):(uw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),uw.Assert(i===s+1,"modifiedStart should only be one more than modifiedEnd"),h=[]),h}const o=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,s,o,a,r),c=o[0],u=a[0];if(l!==null)return l;if(!r[0]){const h=this.ComputeDiffRecursive(e,c,i,u,r);let d=[];return r[0]?d=[new Tm(c+1,t-(c+1)+1,u+1,s-(u+1)+1)]:d=this.ComputeDiffRecursive(c+1,t,u+1,s,r),this.ConcatenateChanges(h,d)}return[new Tm(e,t-e+1,i,s-i+1)]}WALKTRACE(e,t,i,s,r,o,a,l,c,u,h,d,f,p,g,m,_,b){let w=null,C=null,S=new xfe,x=t,k=i,L=f[0]-m[0]-s,E=-1073741824,A=this.m_forwardHistory.length-1;do{const I=L+e;I===x||I<k&&c[I-1]<c[I+1]?(h=c[I+1],p=h-L-s,h<E&&S.MarkNextChange(),E=h,S.AddModifiedElement(h+1,p),L=I+1-e):(h=c[I-1]+1,p=h-L-s,h<E&&S.MarkNextChange(),E=h-1,S.AddOriginalElement(h,p+1),L=I-1-e),A>=0&&(c=this.m_forwardHistory[A],e=c[0],x=1,k=c.length-1)}while(--A>=-1);if(w=S.getReverseChanges(),b[0]){let I=f[0]+1,T=m[0]+1;if(w!==null&&w.length>0){const N=w[w.length-1];I=Math.max(I,N.getOriginalEnd()),T=Math.max(T,N.getModifiedEnd())}C=[new Tm(I,d-I+1,T,g-T+1)]}else{S=new xfe,x=o,k=a,L=f[0]-m[0]-l,E=1073741824,A=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const I=L+r;I===x||I<k&&u[I-1]>=u[I+1]?(h=u[I+1]-1,p=h-L-l,h>E&&S.MarkNextChange(),E=h+1,S.AddOriginalElement(h+1,p+1),L=I+1-r):(h=u[I-1],p=h-L-l,h>E&&S.MarkNextChange(),E=h,S.AddModifiedElement(h+1,p+1),L=I-1-r),A>=0&&(u=this.m_reverseHistory[A],r=u[0],x=1,k=u.length-1)}while(--A>=-1);C=S.getChanges()}return this.ConcatenateChanges(w,C)}ComputeRecursionPoint(e,t,i,s,r,o,a){let l=0,c=0,u=0,h=0,d=0,f=0;e--,i--,r[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const p=t-e+(s-i),g=p+1,m=new Int32Array(g),_=new Int32Array(g),b=s-i,w=t-e,C=e-i,S=t-s,k=(w-b)%2===0;m[b]=e,_[w]=t,a[0]=!1;for(let L=1;L<=p/2+1;L++){let E=0,A=0;u=this.ClipDiagonalBound(b-L,L,b,g),h=this.ClipDiagonalBound(b+L,L,b,g);for(let T=u;T<=h;T+=2){T===u||T<h&&m[T-1]<m[T+1]?l=m[T+1]:l=m[T-1]+1,c=l-(T-b)-C;const N=l;for(;l<t&&c<s&&this.ElementsAreEqual(l+1,c+1);)l++,c++;if(m[T]=l,l+c>E+A&&(E=l,A=c),!k&&Math.abs(T-w)<=L-1&&l>=_[T])return r[0]=l,o[0]=c,N<=_[T]&&L<=1448?this.WALKTRACE(b,u,h,C,w,d,f,S,m,_,l,t,r,c,s,o,k,a):null}const I=(E-e+(A-i)-L)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(E,I))return a[0]=!0,r[0]=E,o[0]=A,I>0&&L<=1448?this.WALKTRACE(b,u,h,C,w,d,f,S,m,_,l,t,r,c,s,o,k,a):(e++,i++,[new Tm(e,t-e+1,i,s-i+1)]);d=this.ClipDiagonalBound(w-L,L,w,g),f=this.ClipDiagonalBound(w+L,L,w,g);for(let T=d;T<=f;T+=2){T===d||T<f&&_[T-1]>=_[T+1]?l=_[T+1]-1:l=_[T-1],c=l-(T-w)-S;const N=l;for(;l>e&&c>i&&this.ElementsAreEqual(l,c);)l--,c--;if(_[T]=l,k&&Math.abs(T-b)<=L&&l<=m[T])return r[0]=l,o[0]=c,N>=m[T]&&L<=1448?this.WALKTRACE(b,u,h,C,w,d,f,S,m,_,l,t,r,c,s,o,k,a):null}if(L<=1447){let T=new Int32Array(h-u+2);T[0]=b-u+1,hw.Copy2(m,u,T,1,h-u+1),this.m_forwardHistory.push(T),T=new Int32Array(f-d+2),T[0]=w-d+1,hw.Copy2(_,d,T,1,f-d+1),this.m_reverseHistory.push(T)}}return this.WALKTRACE(b,u,h,C,w,d,f,S,m,_,l,t,r,c,s,o,k,a)}PrettifyChanges(e){for(let t=0;t<e.length;t++){const i=e[t],s=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,r=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,o=i.originalLength>0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength<s&&i.modifiedStart+i.modifiedLength<r&&(!o||this.OriginalElementsAreEqual(i.originalStart,i.originalStart+i.originalLength))&&(!a||this.ModifiedElementsAreEqual(i.modifiedStart,i.modifiedStart+i.modifiedLength));){const c=this.ElementsAreStrictEqual(i.originalStart,i.modifiedStart);if(this.ElementsAreStrictEqual(i.originalStart+i.originalLength,i.modifiedStart+i.modifiedLength)&&!c)break;i.originalStart++,i.modifiedStart++}const l=[null];if(t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],l)){e[t]=l[0],e.splice(t+1,1),t--;continue}}for(let t=e.length-1;t>=0;t--){const i=e[t];let s=0,r=0;if(t>0){const h=e[t-1];s=h.originalStart+h.originalLength,r=h.modifiedStart+h.modifiedLength}const o=i.originalLength>0,a=i.modifiedLength>0;let l=0,c=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let h=1;;h++){const d=i.originalStart-h,f=i.modifiedStart-h;if(d<s||f<r||o&&!this.OriginalElementsAreEqual(d,d+i.originalLength)||a&&!this.ModifiedElementsAreEqual(f,f+i.modifiedLength))break;const g=(d===s&&f===r?5:0)+this._boundaryScore(d,i.originalLength,f,i.modifiedLength);g>c&&(c=g,l=h)}i.originalStart-=l,i.modifiedStart-=l;const u=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],u)){e[t-1]=u[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t<i;t++){const s=e[t-1],r=e[t],o=r.originalStart-s.originalStart-s.originalLength,a=s.originalStart,l=r.originalStart+r.originalLength,c=l-a,u=s.modifiedStart,h=r.modifiedStart+r.modifiedLength,d=h-u;if(o<5&&c<20&&d<20){const f=this._findBetterContiguousSequence(a,c,u,d,o);if(f){const[p,g]=f;(p!==s.originalStart+s.originalLength||g!==s.modifiedStart+s.modifiedLength)&&(s.originalLength=p-s.originalStart,s.modifiedLength=g-s.modifiedStart,r.originalStart=p+o,r.modifiedStart=g+o,r.originalLength=l-r.originalStart,r.modifiedLength=h-r.modifiedStart)}}}return e}_findBetterContiguousSequence(e,t,i,s,r){if(t<r||s<r)return null;const o=e+t-r+1,a=i+s-r+1;let l=0,c=0,u=0;for(let h=e;h<o;h++)for(let d=i;d<a;d++){const f=this._contiguousSequenceScore(h,d,r);f>0&&f>l&&(l=f,c=h,u=d)}return l>0?[c,u]:null}_contiguousSequenceScore(e,t,i){let s=0;for(let r=0;r<i;r++){if(!this.ElementsAreEqual(e+r,t+r))return 0;s+=this._originalStringElements[e+r].length}return s}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,s){const r=this._OriginalRegionIsBoundary(e,t)?1:0,o=this._ModifiedRegionIsBoundary(i,s)?1:0;return r+o}ConcatenateChanges(e,t){const i=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const s=new Array(e.length+t.length-1);return hw.Copy(e,0,s,0,e.length-1),s[e.length-1]=i[0],hw.Copy(t,1,s,e.length,t.length-1),s}else{const s=new Array(e.length+t.length);return hw.Copy(e,0,s,0,e.length),hw.Copy(t,0,s,e.length,t.length),s}}ChangesOverlap(e,t,i){if(uw.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),uw.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const s=e.originalStart;let r=e.originalLength;const o=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(r=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new Tm(s,r,o,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,s){if(e>=0&&e<s)return e;const r=i,o=s-i-1,a=t%2===0;if(e<0){const l=r%2===0;return a===l?0:1}else{const l=o%2===0;return a===l?s-1:s-2}}}class bLt{constructor(e,t,i,s){this._uri=e,this._lines=t,this._eol=i,this._versionId=s,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const i of t)this._acceptDeleteRange(i.range),this._acceptInsertText(new se(i.range.startLineNumber,i.range.startColumn),i.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,i=new Uint32Array(t);for(let s=0;s<t;s++)i[s]=this._lines[s].length+e;this._lineStarts=new Zbt(i)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1));return}this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t){if(t.length===0)return;const i=ip(t);if(i.length===1){this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]+this._lines[e.lineNumber-1].substring(e.column-1));return}i[i.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]);const s=new Uint32Array(i.length-1);for(let r=1;r<i.length;r++)this._lines.splice(e.lineNumber+r-1,0,i[r]),s[r-1]=i[r].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,s)}}class yLt{constructor(e,t,i){const s=new Uint8Array(e*t);for(let r=0,o=e*t;r<o;r++)s[r]=i;this._data=s,this.rows=e,this.cols=t}get(e,t){return this._data[e*this.cols+t]}set(e,t,i){this._data[e*this.cols+t]=i}}class wLt{constructor(e){let t=0,i=0;for(let r=0,o=e.length;r<o;r++){const[a,l,c]=e[r];l>t&&(t=l),a>i&&(i=a),c>i&&(i=c)}t++,i++;const s=new yLt(i,t,0);for(let r=0,o=e.length;r<o;r++){const[a,l,c]=e[r];s.set(a,l,c)}this._states=s,this._maxCharCode=t}nextState(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}let VW=null;function CLt(){return VW===null&&(VW=new wLt([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),VW}let mE=null;function SLt(){if(mE===null){mE=new cL(0);const n=` <>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;for(let t=0;t<n.length;t++)mE.set(n.charCodeAt(t),1);const e=".,;:";for(let t=0;t<e.length;t++)mE.set(e.charCodeAt(t),2)}return mE}class N4{static _createLink(e,t,i,s,r){let o=r-1;do{const a=t.charCodeAt(o);if(e.get(a)!==2)break;o--}while(o>s);if(s>0){const a=t.charCodeAt(s-1),l=t.charCodeAt(o);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&o--}return{range:{startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:o+2},url:t.substring(s,o+1)}}static computeLinks(e,t=CLt()){const i=SLt(),s=[];for(let r=1,o=e.getLineCount();r<=o;r++){const a=e.getLineContent(r),l=a.length;let c=0,u=0,h=0,d=1,f=!1,p=!1,g=!1,m=!1;for(;c<l;){let _=!1;const b=a.charCodeAt(c);if(d===13){let w;switch(b){case 40:f=!0,w=0;break;case 41:w=f?0:1;break;case 91:g=!0,p=!0,w=0;break;case 93:g=!1,w=p?0:1;break;case 123:m=!0,w=0;break;case 125:w=m?0:1;break;case 39:case 34:case 96:h===b?w=1:h===39||h===34||h===96?w=0:w=1;break;case 42:w=h===42?1:0;break;case 124:w=h===124?1:0;break;case 32:w=g?0:1;break;default:w=i.get(b)}w===1&&(s.push(N4._createLink(i,a,r,u,c)),_=!0)}else if(d===12){let w;b===91?(p=!0,w=0):w=i.get(b),w===1?_=!0:d=13}else d=t.nextState(d,b),d===0&&(_=!0);_&&(d=1,f=!1,p=!1,m=!1,u=c+1,h=b),c++}d===13&&s.push(N4._createLink(i,a,r,u,l))}return s}}function xLt(n){return!n||typeof n.getLineCount!="function"||typeof n.getLineContent!="function"?[]:N4.computeLinks(n)}const F3=class F3{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(e,t,i,s,r){if(e&&t){const o=this.doNavigateValueSet(t,r);if(o)return{range:e,value:o}}if(i&&s){const o=this.doNavigateValueSet(s,r);if(o)return{range:i,value:o}}return null}doNavigateValueSet(e,t){const i=this.numberReplace(e,t);return i!==null?i:this.textReplace(e,t)}numberReplace(e,t){const i=Math.pow(10,e.length-(e.lastIndexOf(".")+1));let s=Number(e);const r=parseFloat(e);return!isNaN(s)&&!isNaN(r)&&s===r?s===0&&!t?null:(s=Math.floor(s*i),s+=t?i:-i,String(s/i)):null}textReplace(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}valueSetsReplace(e,t,i){let s=null;for(let r=0,o=e.length;s===null&&r<o;r++)s=this.valueSetReplace(e[r],t,i);return s}valueSetReplace(e,t,i){let s=e.indexOf(t);return s>=0?(s+=i?1:-1,s<0?s=e.length-1:s%=e.length,e[s]):null}};F3.INSTANCE=new F3;let Pj=F3;var Rj;(function(n){n[n.Unknown=0]="Unknown",n[n.Disabled=1]="Disabled",n[n.Enabled=2]="Enabled"})(Rj||(Rj={}));var Mj;(function(n){n[n.Invoke=1]="Invoke",n[n.Auto=2]="Auto"})(Mj||(Mj={}));var Oj;(function(n){n[n.None=0]="None",n[n.KeepWhitespace=1]="KeepWhitespace",n[n.InsertAsSnippet=4]="InsertAsSnippet"})(Oj||(Oj={}));var Fj;(function(n){n[n.Method=0]="Method",n[n.Function=1]="Function",n[n.Constructor=2]="Constructor",n[n.Field=3]="Field",n[n.Variable=4]="Variable",n[n.Class=5]="Class",n[n.Struct=6]="Struct",n[n.Interface=7]="Interface",n[n.Module=8]="Module",n[n.Property=9]="Property",n[n.Event=10]="Event",n[n.Operator=11]="Operator",n[n.Unit=12]="Unit",n[n.Value=13]="Value",n[n.Constant=14]="Constant",n[n.Enum=15]="Enum",n[n.EnumMember=16]="EnumMember",n[n.Keyword=17]="Keyword",n[n.Text=18]="Text",n[n.Color=19]="Color",n[n.File=20]="File",n[n.Reference=21]="Reference",n[n.Customcolor=22]="Customcolor",n[n.Folder=23]="Folder",n[n.TypeParameter=24]="TypeParameter",n[n.User=25]="User",n[n.Issue=26]="Issue",n[n.Snippet=27]="Snippet"})(Fj||(Fj={}));var Bj;(function(n){n[n.Deprecated=1]="Deprecated"})(Bj||(Bj={}));var Wj;(function(n){n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(Wj||(Wj={}));var Vj;(function(n){n[n.EXACT=0]="EXACT",n[n.ABOVE=1]="ABOVE",n[n.BELOW=2]="BELOW"})(Vj||(Vj={}));var Hj;(function(n){n[n.NotSet=0]="NotSet",n[n.ContentFlush=1]="ContentFlush",n[n.RecoverFromMarkers=2]="RecoverFromMarkers",n[n.Explicit=3]="Explicit",n[n.Paste=4]="Paste",n[n.Undo=5]="Undo",n[n.Redo=6]="Redo"})(Hj||(Hj={}));var $j;(function(n){n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})($j||($j={}));var zj;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(zj||(zj={}));var Uj;(function(n){n[n.None=0]="None",n[n.Keep=1]="Keep",n[n.Brackets=2]="Brackets",n[n.Advanced=3]="Advanced",n[n.Full=4]="Full"})(Uj||(Uj={}));var jj;(function(n){n[n.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",n[n.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",n[n.accessibilitySupport=2]="accessibilitySupport",n[n.accessibilityPageSize=3]="accessibilityPageSize",n[n.ariaLabel=4]="ariaLabel",n[n.ariaRequired=5]="ariaRequired",n[n.autoClosingBrackets=6]="autoClosingBrackets",n[n.autoClosingComments=7]="autoClosingComments",n[n.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",n[n.autoClosingDelete=9]="autoClosingDelete",n[n.autoClosingOvertype=10]="autoClosingOvertype",n[n.autoClosingQuotes=11]="autoClosingQuotes",n[n.autoIndent=12]="autoIndent",n[n.automaticLayout=13]="automaticLayout",n[n.autoSurround=14]="autoSurround",n[n.bracketPairColorization=15]="bracketPairColorization",n[n.guides=16]="guides",n[n.codeLens=17]="codeLens",n[n.codeLensFontFamily=18]="codeLensFontFamily",n[n.codeLensFontSize=19]="codeLensFontSize",n[n.colorDecorators=20]="colorDecorators",n[n.colorDecoratorsLimit=21]="colorDecoratorsLimit",n[n.columnSelection=22]="columnSelection",n[n.comments=23]="comments",n[n.contextmenu=24]="contextmenu",n[n.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",n[n.cursorBlinking=26]="cursorBlinking",n[n.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",n[n.cursorStyle=28]="cursorStyle",n[n.cursorSurroundingLines=29]="cursorSurroundingLines",n[n.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",n[n.cursorWidth=31]="cursorWidth",n[n.disableLayerHinting=32]="disableLayerHinting",n[n.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",n[n.domReadOnly=34]="domReadOnly",n[n.dragAndDrop=35]="dragAndDrop",n[n.dropIntoEditor=36]="dropIntoEditor",n[n.emptySelectionClipboard=37]="emptySelectionClipboard",n[n.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",n[n.extraEditorClassName=39]="extraEditorClassName",n[n.fastScrollSensitivity=40]="fastScrollSensitivity",n[n.find=41]="find",n[n.fixedOverflowWidgets=42]="fixedOverflowWidgets",n[n.folding=43]="folding",n[n.foldingStrategy=44]="foldingStrategy",n[n.foldingHighlight=45]="foldingHighlight",n[n.foldingImportsByDefault=46]="foldingImportsByDefault",n[n.foldingMaximumRegions=47]="foldingMaximumRegions",n[n.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",n[n.fontFamily=49]="fontFamily",n[n.fontInfo=50]="fontInfo",n[n.fontLigatures=51]="fontLigatures",n[n.fontSize=52]="fontSize",n[n.fontWeight=53]="fontWeight",n[n.fontVariations=54]="fontVariations",n[n.formatOnPaste=55]="formatOnPaste",n[n.formatOnType=56]="formatOnType",n[n.glyphMargin=57]="glyphMargin",n[n.gotoLocation=58]="gotoLocation",n[n.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",n[n.hover=60]="hover",n[n.inDiffEditor=61]="inDiffEditor",n[n.inlineSuggest=62]="inlineSuggest",n[n.inlineEdit=63]="inlineEdit",n[n.letterSpacing=64]="letterSpacing",n[n.lightbulb=65]="lightbulb",n[n.lineDecorationsWidth=66]="lineDecorationsWidth",n[n.lineHeight=67]="lineHeight",n[n.lineNumbers=68]="lineNumbers",n[n.lineNumbersMinChars=69]="lineNumbersMinChars",n[n.linkedEditing=70]="linkedEditing",n[n.links=71]="links",n[n.matchBrackets=72]="matchBrackets",n[n.minimap=73]="minimap",n[n.mouseStyle=74]="mouseStyle",n[n.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",n[n.mouseWheelZoom=76]="mouseWheelZoom",n[n.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",n[n.multiCursorModifier=78]="multiCursorModifier",n[n.multiCursorPaste=79]="multiCursorPaste",n[n.multiCursorLimit=80]="multiCursorLimit",n[n.occurrencesHighlight=81]="occurrencesHighlight",n[n.overviewRulerBorder=82]="overviewRulerBorder",n[n.overviewRulerLanes=83]="overviewRulerLanes",n[n.padding=84]="padding",n[n.pasteAs=85]="pasteAs",n[n.parameterHints=86]="parameterHints",n[n.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",n[n.placeholder=88]="placeholder",n[n.definitionLinkOpensInPeek=89]="definitionLinkOpensInPeek",n[n.quickSuggestions=90]="quickSuggestions",n[n.quickSuggestionsDelay=91]="quickSuggestionsDelay",n[n.readOnly=92]="readOnly",n[n.readOnlyMessage=93]="readOnlyMessage",n[n.renameOnType=94]="renameOnType",n[n.renderControlCharacters=95]="renderControlCharacters",n[n.renderFinalNewline=96]="renderFinalNewline",n[n.renderLineHighlight=97]="renderLineHighlight",n[n.renderLineHighlightOnlyWhenFocus=98]="renderLineHighlightOnlyWhenFocus",n[n.renderValidationDecorations=99]="renderValidationDecorations",n[n.renderWhitespace=100]="renderWhitespace",n[n.revealHorizontalRightPadding=101]="revealHorizontalRightPadding",n[n.roundedSelection=102]="roundedSelection",n[n.rulers=103]="rulers",n[n.scrollbar=104]="scrollbar",n[n.scrollBeyondLastColumn=105]="scrollBeyondLastColumn",n[n.scrollBeyondLastLine=106]="scrollBeyondLastLine",n[n.scrollPredominantAxis=107]="scrollPredominantAxis",n[n.selectionClipboard=108]="selectionClipboard",n[n.selectionHighlight=109]="selectionHighlight",n[n.selectOnLineNumbers=110]="selectOnLineNumbers",n[n.showFoldingControls=111]="showFoldingControls",n[n.showUnused=112]="showUnused",n[n.snippetSuggestions=113]="snippetSuggestions",n[n.smartSelect=114]="smartSelect",n[n.smoothScrolling=115]="smoothScrolling",n[n.stickyScroll=116]="stickyScroll",n[n.stickyTabStops=117]="stickyTabStops",n[n.stopRenderingLineAfter=118]="stopRenderingLineAfter",n[n.suggest=119]="suggest",n[n.suggestFontSize=120]="suggestFontSize",n[n.suggestLineHeight=121]="suggestLineHeight",n[n.suggestOnTriggerCharacters=122]="suggestOnTriggerCharacters",n[n.suggestSelection=123]="suggestSelection",n[n.tabCompletion=124]="tabCompletion",n[n.tabIndex=125]="tabIndex",n[n.unicodeHighlighting=126]="unicodeHighlighting",n[n.unusualLineTerminators=127]="unusualLineTerminators",n[n.useShadowDOM=128]="useShadowDOM",n[n.useTabStops=129]="useTabStops",n[n.wordBreak=130]="wordBreak",n[n.wordSegmenterLocales=131]="wordSegmenterLocales",n[n.wordSeparators=132]="wordSeparators",n[n.wordWrap=133]="wordWrap",n[n.wordWrapBreakAfterCharacters=134]="wordWrapBreakAfterCharacters",n[n.wordWrapBreakBeforeCharacters=135]="wordWrapBreakBeforeCharacters",n[n.wordWrapColumn=136]="wordWrapColumn",n[n.wordWrapOverride1=137]="wordWrapOverride1",n[n.wordWrapOverride2=138]="wordWrapOverride2",n[n.wrappingIndent=139]="wrappingIndent",n[n.wrappingStrategy=140]="wrappingStrategy",n[n.showDeprecated=141]="showDeprecated",n[n.inlayHints=142]="inlayHints",n[n.editorClassName=143]="editorClassName",n[n.pixelRatio=144]="pixelRatio",n[n.tabFocusMode=145]="tabFocusMode",n[n.layoutInfo=146]="layoutInfo",n[n.wrappingInfo=147]="wrappingInfo",n[n.defaultColorDecorators=148]="defaultColorDecorators",n[n.colorDecoratorsActivatedOn=149]="colorDecoratorsActivatedOn",n[n.inlineCompletionsAccessibilityVerbose=150]="inlineCompletionsAccessibilityVerbose"})(jj||(jj={}));var qj;(function(n){n[n.TextDefined=0]="TextDefined",n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(qj||(qj={}));var Kj;(function(n){n[n.LF=0]="LF",n[n.CRLF=1]="CRLF"})(Kj||(Kj={}));var Gj;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(Gj||(Gj={}));var Xj;(function(n){n[n.Increase=0]="Increase",n[n.Decrease=1]="Decrease"})(Xj||(Xj={}));var Yj;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(Yj||(Yj={}));var Zj;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(Zj||(Zj={}));var Qj;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(Qj||(Qj={}));var Jj;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(Jj||(Jj={}));var eq;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(eq||(eq={}));var tq;(function(n){n[n.DependsOnKbLayout=-1]="DependsOnKbLayout",n[n.Unknown=0]="Unknown",n[n.Backspace=1]="Backspace",n[n.Tab=2]="Tab",n[n.Enter=3]="Enter",n[n.Shift=4]="Shift",n[n.Ctrl=5]="Ctrl",n[n.Alt=6]="Alt",n[n.PauseBreak=7]="PauseBreak",n[n.CapsLock=8]="CapsLock",n[n.Escape=9]="Escape",n[n.Space=10]="Space",n[n.PageUp=11]="PageUp",n[n.PageDown=12]="PageDown",n[n.End=13]="End",n[n.Home=14]="Home",n[n.LeftArrow=15]="LeftArrow",n[n.UpArrow=16]="UpArrow",n[n.RightArrow=17]="RightArrow",n[n.DownArrow=18]="DownArrow",n[n.Insert=19]="Insert",n[n.Delete=20]="Delete",n[n.Digit0=21]="Digit0",n[n.Digit1=22]="Digit1",n[n.Digit2=23]="Digit2",n[n.Digit3=24]="Digit3",n[n.Digit4=25]="Digit4",n[n.Digit5=26]="Digit5",n[n.Digit6=27]="Digit6",n[n.Digit7=28]="Digit7",n[n.Digit8=29]="Digit8",n[n.Digit9=30]="Digit9",n[n.KeyA=31]="KeyA",n[n.KeyB=32]="KeyB",n[n.KeyC=33]="KeyC",n[n.KeyD=34]="KeyD",n[n.KeyE=35]="KeyE",n[n.KeyF=36]="KeyF",n[n.KeyG=37]="KeyG",n[n.KeyH=38]="KeyH",n[n.KeyI=39]="KeyI",n[n.KeyJ=40]="KeyJ",n[n.KeyK=41]="KeyK",n[n.KeyL=42]="KeyL",n[n.KeyM=43]="KeyM",n[n.KeyN=44]="KeyN",n[n.KeyO=45]="KeyO",n[n.KeyP=46]="KeyP",n[n.KeyQ=47]="KeyQ",n[n.KeyR=48]="KeyR",n[n.KeyS=49]="KeyS",n[n.KeyT=50]="KeyT",n[n.KeyU=51]="KeyU",n[n.KeyV=52]="KeyV",n[n.KeyW=53]="KeyW",n[n.KeyX=54]="KeyX",n[n.KeyY=55]="KeyY",n[n.KeyZ=56]="KeyZ",n[n.Meta=57]="Meta",n[n.ContextMenu=58]="ContextMenu",n[n.F1=59]="F1",n[n.F2=60]="F2",n[n.F3=61]="F3",n[n.F4=62]="F4",n[n.F5=63]="F5",n[n.F6=64]="F6",n[n.F7=65]="F7",n[n.F8=66]="F8",n[n.F9=67]="F9",n[n.F10=68]="F10",n[n.F11=69]="F11",n[n.F12=70]="F12",n[n.F13=71]="F13",n[n.F14=72]="F14",n[n.F15=73]="F15",n[n.F16=74]="F16",n[n.F17=75]="F17",n[n.F18=76]="F18",n[n.F19=77]="F19",n[n.F20=78]="F20",n[n.F21=79]="F21",n[n.F22=80]="F22",n[n.F23=81]="F23",n[n.F24=82]="F24",n[n.NumLock=83]="NumLock",n[n.ScrollLock=84]="ScrollLock",n[n.Semicolon=85]="Semicolon",n[n.Equal=86]="Equal",n[n.Comma=87]="Comma",n[n.Minus=88]="Minus",n[n.Period=89]="Period",n[n.Slash=90]="Slash",n[n.Backquote=91]="Backquote",n[n.BracketLeft=92]="BracketLeft",n[n.Backslash=93]="Backslash",n[n.BracketRight=94]="BracketRight",n[n.Quote=95]="Quote",n[n.OEM_8=96]="OEM_8",n[n.IntlBackslash=97]="IntlBackslash",n[n.Numpad0=98]="Numpad0",n[n.Numpad1=99]="Numpad1",n[n.Numpad2=100]="Numpad2",n[n.Numpad3=101]="Numpad3",n[n.Numpad4=102]="Numpad4",n[n.Numpad5=103]="Numpad5",n[n.Numpad6=104]="Numpad6",n[n.Numpad7=105]="Numpad7",n[n.Numpad8=106]="Numpad8",n[n.Numpad9=107]="Numpad9",n[n.NumpadMultiply=108]="NumpadMultiply",n[n.NumpadAdd=109]="NumpadAdd",n[n.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",n[n.NumpadSubtract=111]="NumpadSubtract",n[n.NumpadDecimal=112]="NumpadDecimal",n[n.NumpadDivide=113]="NumpadDivide",n[n.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",n[n.ABNT_C1=115]="ABNT_C1",n[n.ABNT_C2=116]="ABNT_C2",n[n.AudioVolumeMute=117]="AudioVolumeMute",n[n.AudioVolumeUp=118]="AudioVolumeUp",n[n.AudioVolumeDown=119]="AudioVolumeDown",n[n.BrowserSearch=120]="BrowserSearch",n[n.BrowserHome=121]="BrowserHome",n[n.BrowserBack=122]="BrowserBack",n[n.BrowserForward=123]="BrowserForward",n[n.MediaTrackNext=124]="MediaTrackNext",n[n.MediaTrackPrevious=125]="MediaTrackPrevious",n[n.MediaStop=126]="MediaStop",n[n.MediaPlayPause=127]="MediaPlayPause",n[n.LaunchMediaPlayer=128]="LaunchMediaPlayer",n[n.LaunchMail=129]="LaunchMail",n[n.LaunchApp2=130]="LaunchApp2",n[n.Clear=131]="Clear",n[n.MAX_VALUE=132]="MAX_VALUE"})(tq||(tq={}));var iq;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(iq||(iq={}));var nq;(function(n){n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated"})(nq||(nq={}));var sq;(function(n){n[n.Inline=1]="Inline",n[n.Gutter=2]="Gutter"})(sq||(sq={}));var rq;(function(n){n[n.Normal=1]="Normal",n[n.Underlined=2]="Underlined"})(rq||(rq={}));var oq;(function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.TEXTAREA=1]="TEXTAREA",n[n.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",n[n.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",n[n.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",n[n.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",n[n.CONTENT_TEXT=6]="CONTENT_TEXT",n[n.CONTENT_EMPTY=7]="CONTENT_EMPTY",n[n.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",n[n.CONTENT_WIDGET=9]="CONTENT_WIDGET",n[n.OVERVIEW_RULER=10]="OVERVIEW_RULER",n[n.SCROLLBAR=11]="SCROLLBAR",n[n.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",n[n.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(oq||(oq={}));var aq;(function(n){n[n.AIGenerated=1]="AIGenerated"})(aq||(aq={}));var lq;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(lq||(lq={}));var cq;(function(n){n[n.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",n[n.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",n[n.TOP_CENTER=2]="TOP_CENTER"})(cq||(cq={}));var uq;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(uq||(uq={}));var hq;(function(n){n[n.Word=0]="Word",n[n.Line=1]="Line",n[n.Suggest=2]="Suggest"})(hq||(hq={}));var dq;(function(n){n[n.Left=0]="Left",n[n.Right=1]="Right",n[n.None=2]="None",n[n.LeftOfInjectedText=3]="LeftOfInjectedText",n[n.RightOfInjectedText=4]="RightOfInjectedText"})(dq||(dq={}));var fq;(function(n){n[n.Off=0]="Off",n[n.On=1]="On",n[n.Relative=2]="Relative",n[n.Interval=3]="Interval",n[n.Custom=4]="Custom"})(fq||(fq={}));var pq;(function(n){n[n.None=0]="None",n[n.Text=1]="Text",n[n.Blocks=2]="Blocks"})(pq||(pq={}));var gq;(function(n){n[n.Smooth=0]="Smooth",n[n.Immediate=1]="Immediate"})(gq||(gq={}));var mq;(function(n){n[n.Auto=1]="Auto",n[n.Hidden=2]="Hidden",n[n.Visible=3]="Visible"})(mq||(mq={}));var _q;(function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"})(_q||(_q={}));var vq;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(vq||(vq={}));var bq;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(bq||(bq={}));var yq;(function(n){n[n.File=0]="File",n[n.Module=1]="Module",n[n.Namespace=2]="Namespace",n[n.Package=3]="Package",n[n.Class=4]="Class",n[n.Method=5]="Method",n[n.Property=6]="Property",n[n.Field=7]="Field",n[n.Constructor=8]="Constructor",n[n.Enum=9]="Enum",n[n.Interface=10]="Interface",n[n.Function=11]="Function",n[n.Variable=12]="Variable",n[n.Constant=13]="Constant",n[n.String=14]="String",n[n.Number=15]="Number",n[n.Boolean=16]="Boolean",n[n.Array=17]="Array",n[n.Object=18]="Object",n[n.Key=19]="Key",n[n.Null=20]="Null",n[n.EnumMember=21]="EnumMember",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter"})(yq||(yq={}));var wq;(function(n){n[n.Deprecated=1]="Deprecated"})(wq||(wq={}));var Cq;(function(n){n[n.Hidden=0]="Hidden",n[n.Blink=1]="Blink",n[n.Smooth=2]="Smooth",n[n.Phase=3]="Phase",n[n.Expand=4]="Expand",n[n.Solid=5]="Solid"})(Cq||(Cq={}));var Sq;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(Sq||(Sq={}));var xq;(function(n){n[n.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",n[n.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",n[n.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",n[n.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(xq||(xq={}));var Lq;(function(n){n[n.None=0]="None",n[n.Same=1]="Same",n[n.Indent=2]="Indent",n[n.DeepIndent=3]="DeepIndent"})(Lq||(Lq={}));var fg;let LLt=(fg=class{static chord(e,t){return Ts(e,t)}},fg.CtrlCmd=2048,fg.Shift=1024,fg.Alt=512,fg.WinCtrl=256,fg);function hTe(){return{editor:void 0,languages:void 0,CancellationTokenSource:Wn,Emitter:oe,KeyCode:tq,KeyMod:LLt,Position:se,Range:O,Selection:nt,SelectionDirection:_q,MarkerSeverity:iq,MarkerTag:nq,Uri:mt,Token:MT}}class Die{static computeUnicodeHighlights(e,t,i){const s=i?i.startLineNumber:1,r=i?i.endLineNumber:e.getLineCount(),o=new Lfe(t),a=o.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${ELt(Array.from(a))}`,"g");const c=new Gw(null,l),u=[];let h=!1,d,f=0,p=0,g=0;e:for(let m=s,_=r;m<=_;m++){const b=e.getLineContent(m),w=b.length;c.reset(0);do if(d=c.next(b),d){let C=d.index,S=d.index+d[0].length;if(C>0){const E=b.charCodeAt(C-1);Js(E)&&C--}if(S+1<w){const E=b.charCodeAt(S-1);Js(E)&&S++}const x=b.substring(C,S);let k=wT(C+1,Bee,b,0);k&&k.endColumn<=C+1&&(k=null);const L=o.shouldHighlightNonBasicASCII(x,k?k.word:null);if(L!==0){if(L===3?f++:L===2?p++:L===1?g++:qB(),u.length>=1e3){h=!0;break e}u.push(new O(m,C+1,m,S+1))}}while(d)}return{ranges:u,hasMore:h,ambiguousCharacterCount:f,invisibleCharacterCount:p,nonBasicAsciiCharacterCount:g}}static computeUnicodeHighlightReason(e,t){const i=new Lfe(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const r=e.codePointAt(0),o=i.ambiguousCharacters.getPrimaryConfusable(r),a=_T.getLocales().filter(l=>!_T.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(r));return{kind:0,confusableWith:String.fromCodePoint(o),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function ELt(n,e){return`[${dc(n.map(i=>String.fromCodePoint(i)).join(""))}]`}class Lfe{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=_T.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of bb.codePoints)Efe(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,r=!1;if(t)for(const o of t){const a=o.codePointAt(0),l=IN(o);s=s||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!bb.isInvisibleCharacter(a)&&(r=!0)}return!s&&r?0:this.options.invisibleCharacters&&!Efe(e)&&bb.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function Efe(n){return n===" "||n===` +`||n===" "}const kLt=3;class ILt{computeDiff(e,t,i){var l;const r=new NLt(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),o=[];let a=null;for(const c of r.changes){let u;c.originalEndLineNumber===0?u=new xt(c.originalStartLineNumber+1,c.originalStartLineNumber+1):u=new xt(c.originalStartLineNumber,c.originalEndLineNumber+1);let h;c.modifiedEndLineNumber===0?h=new xt(c.modifiedStartLineNumber+1,c.modifiedStartLineNumber+1):h=new xt(c.modifiedStartLineNumber,c.modifiedEndLineNumber+1);let d=new hc(u,h,(l=c.charChanges)==null?void 0:l.map(f=>new Ul(new O(f.originalStartLineNumber,f.originalStartColumn,f.originalEndLineNumber,f.originalEndColumn),new O(f.modifiedStartLineNumber,f.modifiedStartColumn,f.modifiedEndLineNumber,f.modifiedEndColumn))));a&&(a.modified.endLineNumberExclusive===d.modified.startLineNumber||a.original.endLineNumberExclusive===d.original.startLineNumber)&&(d=new hc(a.original.join(d.original),a.modified.join(d.modified),a.innerChanges&&d.innerChanges?a.innerChanges.concat(d.innerChanges):void 0),o.pop()),o.push(d),a=d}return Ky(()=>Pee(o,(c,u)=>u.original.startLineNumber-c.original.endLineNumberExclusive===u.modified.startLineNumber-c.modified.endLineNumberExclusive&&c.original.endLineNumberExclusive<u.original.startLineNumber&&c.modified.endLineNumberExclusive<u.modified.startLineNumber)),new vM(o,[],r.quitEarly)}}function dTe(n,e,t,i){return new cf(n,e,t).ComputeDiff(i)}class kfe{constructor(e){const t=[],i=[];for(let s=0,r=e.length;s<r;s++)t[s]=Eq(e[s],1),i[s]=kq(e[s],1);this.lines=e,this._startColumns=t,this._endColumns=i}getElements(){const e=[];for(let t=0,i=this.lines.length;t<i;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e}getStrictElement(e){return this.lines[e]}getStartLineNumber(e){return e+1}getEndLineNumber(e){return e+1}createCharSequence(e,t,i){const s=[],r=[],o=[];let a=0;for(let l=t;l<=i;l++){const c=this.lines[l],u=e?this._startColumns[l]:1,h=e?this._endColumns[l]:c.length+1;for(let d=u;d<h;d++)s[a]=c.charCodeAt(d-1),r[a]=l+1,o[a]=d,a++;!e&&l<i&&(s[a]=10,r[a]=l+1,o[a]=c.length+1,a++)}return new TLt(s,r,o)}}class TLt{constructor(e,t,i){this._charCodes=e,this._lineNumbers=t,this._columns=i}toString(){return"["+this._charCodes.map((e,t)=>(e===10?"\\n":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return e===-1?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),this._charCodes[e]===10?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return e===-1?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),this._charCodes[e]===10?1:this._columns[e]+1)}}class iS{constructor(e,t,i,s,r,o,a,l){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=s,this.modifiedStartLineNumber=r,this.modifiedStartColumn=o,this.modifiedEndLineNumber=a,this.modifiedEndColumn=l}static createFromDiffChange(e,t,i){const s=t.getStartLineNumber(e.originalStart),r=t.getStartColumn(e.originalStart),o=t.getEndLineNumber(e.originalStart+e.originalLength-1),a=t.getEndColumn(e.originalStart+e.originalLength-1),l=i.getStartLineNumber(e.modifiedStart),c=i.getStartColumn(e.modifiedStart),u=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),h=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new iS(s,r,o,a,l,c,u,h)}}function DLt(n){if(n.length<=1)return n;const e=[n[0]];let t=e[0];for(let i=1,s=n.length;i<s;i++){const r=n[i],o=r.originalStart-(t.originalStart+t.originalLength),a=r.modifiedStart-(t.modifiedStart+t.modifiedLength);Math.min(o,a)<kLt?(t.originalLength=r.originalStart+r.originalLength-t.originalStart,t.modifiedLength=r.modifiedStart+r.modifiedLength-t.modifiedStart):(e.push(r),t=r)}return e}class Yk{constructor(e,t,i,s,r){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=s,this.charChanges=r}static createFromDiffResult(e,t,i,s,r,o,a){let l,c,u,h,d;if(t.originalLength===0?(l=i.getStartLineNumber(t.originalStart)-1,c=0):(l=i.getStartLineNumber(t.originalStart),c=i.getEndLineNumber(t.originalStart+t.originalLength-1)),t.modifiedLength===0?(u=s.getStartLineNumber(t.modifiedStart)-1,h=0):(u=s.getStartLineNumber(t.modifiedStart),h=s.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),o&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&r()){const f=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),p=s.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(f.getElements().length>0&&p.getElements().length>0){let g=dTe(f,p,r,!0).changes;a&&(g=DLt(g)),d=[];for(let m=0,_=g.length;m<_;m++)d.push(iS.createFromDiffChange(g[m],f,p))}}return new Yk(l,c,u,h,d)}}class NLt{constructor(e,t,i){this.shouldComputeCharChanges=i.shouldComputeCharChanges,this.shouldPostProcessCharChanges=i.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=i.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=i.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new kfe(e),this.modified=new kfe(t),this.continueLineDiff=Ife(i.maxComputationTime),this.continueCharDiff=Ife(i.maxComputationTime===0?0:Math.min(i.maxComputationTime,5e3))}computeDiff(){if(this.original.lines.length===1&&this.original.lines[0].length===0)return this.modified.lines.length===1&&this.modified.lines[0].length===0?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:void 0}]};if(this.modified.lines.length===1&&this.modified.lines[0].length===0)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:void 0}]};const e=dTe(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,i=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){const a=[];for(let l=0,c=t.length;l<c;l++)a.push(Yk.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[l],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:i,changes:a}}const s=[];let r=0,o=0;for(let a=-1,l=t.length;a<l;a++){const c=a+1<l?t[a+1]:null,u=c?c.originalStart:this.originalLines.length,h=c?c.modifiedStart:this.modifiedLines.length;for(;r<u&&o<h;){const d=this.originalLines[r],f=this.modifiedLines[o];if(d!==f){{let p=Eq(d,1),g=Eq(f,1);for(;p>1&&g>1;){const m=d.charCodeAt(p-2),_=f.charCodeAt(g-2);if(m!==_)break;p--,g--}(p>1||g>1)&&this._pushTrimWhitespaceCharChange(s,r+1,1,p,o+1,1,g)}{let p=kq(d,1),g=kq(f,1);const m=d.length+1,_=f.length+1;for(;p<m&&g<_;){const b=d.charCodeAt(p-1),w=d.charCodeAt(g-1);if(b!==w)break;p++,g++}(p<m||g<_)&&this._pushTrimWhitespaceCharChange(s,r+1,p,m,o+1,g,_)}}r++,o++}c&&(s.push(Yk.createFromDiffResult(this.shouldIgnoreTrimWhitespace,c,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),r+=c.originalLength,o+=c.modifiedLength)}return{quitEarly:i,changes:s}}_pushTrimWhitespaceCharChange(e,t,i,s,r,o,a){if(this._mergeTrimWhitespaceCharChange(e,t,i,s,r,o,a))return;let l;this.shouldComputeCharChanges&&(l=[new iS(t,i,t,s,r,o,r,a)]),e.push(new Yk(t,t,r,r,l))}_mergeTrimWhitespaceCharChange(e,t,i,s,r,o,a){const l=e.length;if(l===0)return!1;const c=e[l-1];return c.originalEndLineNumber===0||c.modifiedEndLineNumber===0?!1:c.originalEndLineNumber===t&&c.modifiedEndLineNumber===r?(this.shouldComputeCharChanges&&c.charChanges&&c.charChanges.push(new iS(t,i,t,s,r,o,r,a)),!0):c.originalEndLineNumber+1===t&&c.modifiedEndLineNumber+1===r?(c.originalEndLineNumber=t,c.modifiedEndLineNumber=r,this.shouldComputeCharChanges&&c.charChanges&&c.charChanges.push(new iS(t,i,t,s,r,o,r,a)),!0):!1}}function Eq(n,e){const t=Io(n);return t===-1?e:t+1}function kq(n,e){const t=Fh(n);return t===-1?e:t+2}function Ife(n){if(n===0)return()=>!0;const e=Date.now();return()=>Date.now()-e<n}const Tfe={getLegacy:()=>new ILt,getDefault:()=>new gIe};function fTe(n){const e=[];for(const t of n){const i=Number(t);(i||i===0&&t.replace(/\s/g,"")!=="")&&e.push(i)}return e}function Nie(n,e,t,i){return{red:n/255,blue:t/255,green:e/255,alpha:i}}function _E(n,e){const t=e.index,i=e[0].length;if(!t)return;const s=n.positionAt(t);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+i}}function ALt(n,e){if(!n)return;const t=Ce.Format.CSS.parseHex(e);if(t)return{range:n,color:Nie(t.rgba.r,t.rgba.g,t.rgba.b,t.rgba.a)}}function Dfe(n,e,t){if(!n||e.length!==1)return;const s=e[0].values(),r=fTe(s);return{range:n,color:Nie(r[0],r[1],r[2],t?r[3]:1)}}function Nfe(n,e,t){if(!n||e.length!==1)return;const s=e[0].values(),r=fTe(s),o=new Ce(new xu(r[0],r[1]/100,r[2]/100,t?r[3]:1));return{range:n,color:Nie(o.rgba.r,o.rgba.g,o.rgba.b,o.rgba.a)}}function vE(n,e){return typeof n=="string"?[...n.matchAll(e)]:n.findMatches(e)}function PLt(n){const e=[],i=vE(n,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(i.length>0)for(const s of i){const r=s.filter(c=>c!==void 0),o=r[1],a=r[2];if(!a)continue;let l;if(o==="rgb"){const c=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;l=Dfe(_E(n,s),vE(a,c),!1)}else if(o==="rgba"){const c=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=Dfe(_E(n,s),vE(a,c),!0)}else if(o==="hsl"){const c=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;l=Nfe(_E(n,s),vE(a,c),!1)}else if(o==="hsla"){const c=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=Nfe(_E(n,s),vE(a,c),!0)}else o==="#"&&(l=ALt(_E(n,s),o+a));l&&e.push(l)}return e}function RLt(n){return!n||typeof n.getValue!="function"||typeof n.positionAt!="function"?[]:PLt(n)}const Afe=new RegExp("\\bMARK:\\s*(.*)$","d"),MLt=/^-+|-+$/g;function OLt(n,e){var i;let t=[];if(e.findRegionSectionHeaders&&((i=e.foldingRules)!=null&&i.markers)){const s=FLt(n,e);t=t.concat(s)}if(e.findMarkSectionHeaders){const s=BLt(n);t=t.concat(s)}return t}function FLt(n,e){const t=[],i=n.getLineCount();for(let s=1;s<=i;s++){const r=n.getLineContent(s),o=r.match(e.foldingRules.markers.start);if(o){const a={startLineNumber:s,startColumn:o[0].length+1,endLineNumber:s,endColumn:r.length+1};if(a.endColumn>a.startColumn){const l={range:a,...pTe(r.substring(o[0].length)),shouldBeInComments:!1};(l.text||l.hasSeparatorLine)&&t.push(l)}}}return t}function BLt(n){const e=[],t=n.getLineCount();for(let i=1;i<=t;i++){const s=n.getLineContent(i);WLt(s,i,e)}return e}function WLt(n,e,t){Afe.lastIndex=0;const i=Afe.exec(n);if(i){const s=i.indices[1][0]+1,r=i.indices[1][1]+1,o={startLineNumber:e,startColumn:s,endLineNumber:e,endColumn:r};if(o.endColumn>o.startColumn){const a={range:o,...pTe(i[1]),shouldBeInComments:!0};(a.text||a.hasSeparatorLine)&&t.push(a)}}}function pTe(n){n=n.trim();const e=n.startsWith("-");return n=n.replace(MLt,""),{text:n,hasSeparatorLine:e}}class VLt extends bLt{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;i<this._lines.length;i++){const s=this._lines[i],r=this.offsetAt(new se(i+1,1)),o=s.matchAll(e);for(const a of o)(a.index||a.index===0)&&(a.index=a.index+r),t.push(a)}return t}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const i=wT(e.column,Wee(t),this._lines[e.lineNumber-1],0);return i?new O(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn):null}words(e){const t=this._lines,i=this._wordenize.bind(this);let s=0,r="",o=0,a=[];return{*[Symbol.iterator](){for(;;)if(o<a.length){const l=r.substring(a[o].start,a[o].end);o+=1,yield l}else if(s<t.length)r=t[s],a=i(r,e),o=0,s+=1;else break}}}getLineWords(e,t){const i=this._lines[e-1],s=this._wordenize(i,t),r=[];for(const o of s)r.push({word:i.substring(o.start,o.end),startColumn:o.start+1,endColumn:o.end+1});return r}_wordenize(e,t){const i=[];let s;for(t.lastIndex=0;(s=t.exec(e))&&s[0].length!==0;)i.push({start:s.index,end:s.index+s[0].length});return i}getValueInRange(e){if(e=this._validateRange(e),e.startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);const t=this._eol,i=e.startLineNumber-1,s=e.endLineNumber-1,r=[];r.push(this._lines[i].substring(e.startColumn-1));for(let o=i+1;o<s;o++)r.push(this._lines[o]);return r.push(this._lines[s].substring(0,e.endColumn-1)),r.join(t)}offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.lineNumber-2)+(e.column-1)}positionAt(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();const t=this._lineStarts.getIndexOf(e),i=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,i)}}_validateRange(e){const t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),i=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||i.lineNumber!==e.endLineNumber||i.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:i.lineNumber,endColumn:i.column}:e}_validatePosition(e){if(!se.isIPosition(e))throw new Error("bad position");let{lineNumber:t,column:i}=e,s=!1;if(t<1)t=1,i=1,s=!0;else if(t>this._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,s=!0;else{const r=this._lines[t-1].length+1;i<1?(i=1,s=!0):i>r&&(i=r,s=!0)}return s?{lineNumber:t,column:i}:e}}const qv=class qv{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new VLt(mt.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}async computeUnicodeHighlights(e,t,i){const s=this._getModel(e);return s?Die.computeUnicodeHighlights(s,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async findSectionHeaders(e,t){const i=this._getModel(e);return i?OLt(i,t):[]}async computeDiff(e,t,i,s){const r=this._getModel(e),o=this._getModel(t);return!r||!o?null:qv.computeDiff(r,o,i,s)}static computeDiff(e,t,i,s){const r=s==="advanced"?Tfe.getDefault():Tfe.getLegacy(),o=e.getLinesContent(),a=t.getLinesContent(),l=r.computeDiff(o,a,i),c=l.changes.length>0?!1:this._modelsAreIdentical(e,t);function u(h){return h.map(d=>{var f;return[d.original.startLineNumber,d.original.endLineNumberExclusive,d.modified.startLineNumber,d.modified.endLineNumberExclusive,(f=d.innerChanges)==null?void 0:f.map(p=>[p.originalRange.startLineNumber,p.originalRange.startColumn,p.originalRange.endLineNumber,p.originalRange.endColumn,p.modifiedRange.startLineNumber,p.modifiedRange.startColumn,p.modifiedRange.endLineNumber,p.modifiedRange.endColumn])]})}return{identical:c,quitEarly:l.hitTimeout,changes:u(l.changes),moves:l.moves.map(h=>[h.lineRangeMapping.original.startLineNumber,h.lineRangeMapping.original.endLineNumberExclusive,h.lineRangeMapping.modified.startLineNumber,h.lineRangeMapping.modified.endLineNumberExclusive,u(h.changes)])}}static _modelsAreIdentical(e,t){const i=e.getLineCount(),s=t.getLineCount();if(i!==s)return!1;for(let r=1;r<=i;r++){const o=e.getLineContent(r),a=t.getLineContent(r);if(o!==a)return!1}return!0}async computeMoreMinimalEdits(e,t,i){const s=this._getModel(e);if(!s)return t;const r=[];let o;t=t.slice(0).sort((l,c)=>{if(l.range&&c.range)return O.compareRangesUsingStarts(l.range,c.range);const u=l.range?0:1,h=c.range?0:1;return u-h});let a=0;for(let l=1;l<t.length;l++)O.getEndPosition(t[a].range).equals(O.getStartPosition(t[l].range))?(t[a].range=O.fromPositions(O.getStartPosition(t[a].range),O.getEndPosition(t[l].range)),t[a].text+=t[l].text):(a++,t[a]=t[l]);t.length=a+1;for(let{range:l,text:c,eol:u}of t){if(typeof u=="number"&&(o=u),O.isEmpty(l)&&!c)continue;const h=s.getValueInRange(l);if(c=c.replace(/\r\n|\n|\r/g,s.eol),h===c)continue;if(Math.max(c.length,h.length)>qv._diffLimit){r.push({range:l,text:c});continue}const d=vLt(h,c,i),f=s.offsetAt(O.lift(l).getStartPosition());for(const p of d){const g=s.positionAt(f+p.originalStart),m=s.positionAt(f+p.originalStart+p.originalLength),_={text:c.substr(p.modifiedStart,p.modifiedLength),range:{startLineNumber:g.lineNumber,startColumn:g.column,endLineNumber:m.lineNumber,endColumn:m.column}};s.getValueInRange(_.range)!==_.text&&r.push(_)}}return typeof o=="number"&&r.push({eol:o,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),r}async computeLinks(e){const t=this._getModel(e);return t?xLt(t):null}async computeDefaultDocumentColors(e){const t=this._getModel(e);return t?RLt(t):null}async textualSuggest(e,t,i,s){const r=new Nr,o=new RegExp(i,s),a=new Set;e:for(const l of e){const c=this._getModel(l);if(c){for(const u of c.words(o))if(!(u===t||!isNaN(Number(u)))&&(a.add(u),a.size>qv._suggestionsLimit))break e}}return{words:Array.from(a),duration:r.elapsed()}}async computeWordRanges(e,t,i,s){const r=this._getModel(e);if(!r)return Object.create(null);const o=new RegExp(i,s),a=Object.create(null);for(let l=t.startLineNumber;l<t.endLineNumber;l++){const c=r.getLineWords(l,o);for(const u of c){if(!isNaN(Number(u.word)))continue;let h=a[u.word];h||(h=[],a[u.word]=h),h.push({startLineNumber:l,startColumn:u.startColumn,endLineNumber:l,endColumn:u.endColumn})}}return a}async navigateValueSet(e,t,i,s,r){const o=this._getModel(e);if(!o)return null;const a=new RegExp(s,r);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});const l=o.getValueInRange(t),c=o.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},a);if(!c)return null;const u=o.getValueInRange(c);return Pj.INSTANCE.navigateValueSet(t,l,c,u,i)}loadForeignModule(e,t,i){const o={host:Adt(i,(a,l)=>this._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(o,t),Promise.resolve(Qee(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}};qv._diffLimit=1e5,qv._suggestionsLimit=1e4;let A4=qv;typeof importScripts=="function"&&(globalThis.monaco=hTe());const Aie=ri("textResourceConfigurationService"),gTe=ri("textResourcePropertiesService");var HLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},bE=function(n,e){return function(t,i){e(t,i,n)}};const Pfe=60*1e3,Rfe=5*60*1e3;function Bv(n,e){const t=n.getModel(e);return!(!t||t.isTooLargeForSyncing())}let Iq=class extends ue{constructor(e,t,i,s,r){super(),this._modelService=e,this._workerManager=this._register(new zLt(this._modelService,s)),this._logService=i,this._register(r.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(o,a)=>Bv(this._modelService,o.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(o.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(r.completionProvider.register("*",new $Lt(this._workerManager,t,this._modelService,s)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return Bv(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(s=>s.computedUnicodeHighlights(e,t,i))}async computeDiff(e,t,i,s){const r=await this._workerManager.withWorker().then(l=>l.computeDiff(e,t,i,s));if(!r)return null;return{identical:r.identical,quitEarly:r.quitEarly,changes:a(r.changes),moves:r.moves.map(l=>new pIe(new Co(new xt(l[0],l[1]),new xt(l[2],l[3])),a(l[4])))};function a(l){return l.map(c=>{var u;return new hc(new xt(c[0],c[1]),new xt(c[2],c[3]),(u=c[4])==null?void 0:u.map(h=>new Ul(new O(h[0],h[1],h[2],h[3]),new O(h[4],h[5],h[6],h[7]))))})}}computeMoreMinimalEdits(e,t,i=!1){if(so(t)){if(!Bv(this._modelService,e))return Promise.resolve(t);const s=Nr.create(),r=this._workerManager.withWorker().then(o=>o.computeMoreMinimalEdits(e,t,i));return r.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),s.elapsed())),Promise.race([r,Uf(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return Bv(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(s=>s.navigateValueSet(e,t,i))}canComputeWordRanges(e){return Bv(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}findSectionHeaders(e,t){return this._workerManager.withWorker().then(i=>i.findSectionHeaders(e,t))}};Iq=HLt([bE(0,mn),bE(1,Aie),bE(2,co),bE(3,ln),bE(4,Je)],Iq);class $Lt{constructor(e,t,i,s){this.languageConfigurationService=s,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}async provideCompletionItems(e,t){const i=this._configurationService.getValue(e.uri,t,"editor");if(i.wordBasedSuggestions==="off")return;const s=[];if(i.wordBasedSuggestions==="currentDocument")Bv(this._modelService,e.uri)&&s.push(e.uri);else for(const h of this._modelService.getModels())Bv(this._modelService,h.uri)&&(h===e?s.unshift(h.uri):(i.wordBasedSuggestions==="allDocuments"||h.getLanguageId()===e.getLanguageId())&&s.push(h.uri));if(s.length===0)return;const r=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),o=e.getWordAtPosition(t),a=o?new O(t.lineNumber,o.startColumn,t.lineNumber,o.endColumn):O.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),u=await(await this._workerManager.withWorker()).textualSuggest(s,o==null?void 0:o.word,r);if(u)return{duration:u.duration,suggestions:u.words.map(h=>({kind:18,label:h,insertText:h,range:{insert:l,replace:a}}))}}}class zLt extends ue{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new Iee).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(Rfe/2),Gi),this._register(this._modelService.onModelRemoved(s=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>Rfe&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Pie(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class ULt extends ue{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const s=new vee;s.cancelAndSet(()=>this._checkStopModelSync(),Math.round(Pfe/2)),this._register(s)}}dispose(){for(const e in this._syncedModels)Yi(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const s=i.toString();this._syncedModels[s]||this._beginModelSync(i,t),this._syncedModels[s]&&(this._syncedModelsLastUsedTime[s]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>Pfe&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const s=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const r=new be;r.add(i.onDidChangeContent(o=>{this._proxy.acceptModelChanged(s.toString(),o)})),r.add(i.onWillDispose(()=>{this._stopModelSync(s)})),r.add(lt(()=>{this._proxy.acceptRemovedModel(s)})),this._syncedModels[s]=r}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],Yi(t)}}class Mfe{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class HW{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class Pie extends ue{constructor(e,t,i,s){super(),this.languageConfigurationService=s,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new Aj(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new fLt(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new HW(this)))}catch(e){Nj(e),this._worker=new Mfe(new A4(new HW(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(Nj(e),this._worker=new Mfe(new A4(new HW(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new ULt(e,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(e,t=!1){return this._disposed?Promise.reject(vlt()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,s){return this._withSyncedResources([e,t],!0).then(r=>r.computeDiff(e.toString(),t.toString(),i,s))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeMoreMinimalEdits(e.toString(),t,i))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then(t=>t.computeDefaultDocumentColors(e.toString()))}async textualSuggest(e,t,i){const s=await this._withSyncedResources(e),r=i.source,o=i.flags;return s.textualSuggest(e.map(a=>a.toString()),t,r,o)}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const s=this._modelService.getModel(e);if(!s)return Promise.resolve(null);const r=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId()).getWordDefinition(),o=r.source,a=r.flags;return i.computeWordRanges(e.toString(),t,o,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(s=>{const r=this._modelService.getModel(e);if(!r)return null;const o=this.languageConfigurationService.getLanguageConfiguration(r.getLanguageId()).getWordDefinition(),a=o.source,l=o.flags;return s.navigateValueSet(e.toString(),t,i,a,l)})}findSectionHeaders(e,t){return this._withSyncedResources([e]).then(i=>i.findSectionHeaders(e.toString(),t))}dispose(){super.dispose(),this._disposed=!0}}const mTe=[];function tA(n){mTe.push(n)}function jLt(){return mTe.slice(0)}var qLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},$W=function(n,e){return function(t,i){e(t,i,n)}};class Rie{constructor(e,t){this._editorWorkerClient=new Pie(e,!1,"editorWorkerService",t)}async provideDocumentColors(e,t){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const s=t.range,r=t.color,o=r.alpha,a=new Ce(new pi(Math.round(255*r.red),Math.round(255*r.green),Math.round(255*r.blue),o)),l=o?Ce.Format.CSS.formatRGB(a):Ce.Format.CSS.formatRGBA(a),c=o?Ce.Format.CSS.formatHSL(a):Ce.Format.CSS.formatHSLA(a),u=o?Ce.Format.CSS.formatHex(a):Ce.Format.CSS.formatHexA(a),h=[];return h.push({label:l,textEdit:{range:s,text:l}}),h.push({label:c,textEdit:{range:s,text:c}}),h.push({label:u,textEdit:{range:s,text:u}}),h}}let Tq=class extends ue{constructor(e,t,i){super(),this._register(i.colorProvider.register("*",new Rie(e,t)))}};Tq=qLt([$W(0,mn),$W(1,ln),$W(2,Je)],Tq);tA(Tq);async function _Te(n,e,t,i=!0){return Mie(new KLt,n,e,t,i)}function vTe(n,e,t,i){return Promise.resolve(t.provideColorPresentations(n,e,i))}class KLt{constructor(){}async compute(e,t,i,s){const r=await e.provideDocumentColors(t,i);if(Array.isArray(r))for(const o of r)s.push({colorInfo:o,provider:e});return Array.isArray(r)}}class GLt{constructor(){}async compute(e,t,i,s){const r=await e.provideDocumentColors(t,i);if(Array.isArray(r))for(const o of r)s.push({range:o.range,color:[o.color.red,o.color.green,o.color.blue,o.color.alpha]});return Array.isArray(r)}}class XLt{constructor(e){this.colorInfo=e}async compute(e,t,i,s){const r=await e.provideColorPresentations(t,this.colorInfo,Vt.None);return Array.isArray(r)&&s.push(...r),Array.isArray(r)}}async function Mie(n,e,t,i,s){let r=!1,o;const a=[],l=e.ordered(t);for(let c=l.length-1;c>=0;c--){const u=l[c];if(u instanceof Rie)o=u;else try{await n.compute(u,t,i,a)&&(r=!0)}catch(h){ls(h)}}return r?a:o&&s?(await n.compute(o,t,i,a),a):[]}function bTe(n,e){const{colorProvider:t}=n.get(Je),i=n.get(mn).getModel(e);if(!i)throw Gc();const s=n.get(Xt).getValue("editor.defaultColorDecorators",{resource:e});return{model:i,colorProviderRegistry:t,isDefaultColorDecoratorsEnabled:s}}di.registerCommand("_executeDocumentColorProvider",function(n,...e){const[t]=e;if(!(t instanceof mt))throw Gc();const{model:i,colorProviderRegistry:s,isDefaultColorDecoratorsEnabled:r}=bTe(n,t);return Mie(new GLt,s,i,Vt.None,r)});di.registerCommand("_executeColorPresentationProvider",function(n,...e){const[t,i]=e,{uri:s,range:r}=i;if(!(s instanceof mt)||!Array.isArray(t)||t.length!==4||!O.isIRange(r))throw Gc();const{model:o,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:l}=bTe(n,s),[c,u,h,d]=t;return Mie(new XLt({range:r,color:{red:c,green:u,blue:h,alpha:d}}),a,o,Vt.None,l)});var YLt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},zW=function(n,e){return function(t,i){e(t,i,n)}},Dq;const yTe=Object.create({});var R1;let dx=(R1=class extends ue{constructor(e,t,i,s){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new be),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new NF(this._editor),this._decoratorLimitReporter=new ZLt,this._colorDecorationClassRefs=this._register(new be),this._debounceInformation=s.for(i.colorProvider,"Document Colors",{min:Dq.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(r=>{const o=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148);const a=o!==this._isColorDecoratorsEnabled||r.hasChanged(21),l=r.hasChanged(148);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i=="object"){const s=i.colorDecorators;if(s&&s.enable!==void 0&&!s.enable)return s.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new Zu,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=tr(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new Nr(!1),s=await _Te(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),s});try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){Nt(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:At.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((s,r)=>this._colorDatas.set(s,e[r]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let r=0;r<e.length&&t.length<i;r++){const{red:o,green:a,blue:l,alpha:c}=e[r].colorInfo.color,u=new pi(Math.round(o*255),Math.round(a*255),Math.round(l*255),c),h=`rgba(${u.r}, ${u.g}, ${u.b}, ${u.a})`,d=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:h}));t.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:Qxe,inlineClassName:`${d.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:yTe}}})}const s=i<e.length?i:!1;this._decoratorLimitReporter.update(e.length,s),this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(O.fromPositions(e,e)).filter(s=>this._colorDatas.has(s.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}},Dq=R1,R1.ID="editor.contrib.colorDetector",R1.RECOMPUTE_TIME=1e3,R1);dx=Dq=YLt([zW(1,Xt),zW(2,Je),zW(3,wc)],dx);class ZLt{constructor(){this._onDidChange=new oe,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}_i(dx.ID,dx,1);class QLt{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new oe,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new oe,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new oe,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let s=0;s<this.colorPresentations.length;s++)if(t.toLowerCase()===this.colorPresentations[s].label){i=s;break}if(i===-1){const s=t.split("(")[0].toLowerCase();for(let r=0;r<this.colorPresentations.length;r++)if(this.colorPresentations[r].label.toLowerCase().startsWith(s)){i=r;break}}i!==-1&&i!==this.presentationIndex&&(this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}const Xl=Pe;class JLt extends ue{constructor(e,t,i,s=!1){super(),this.model=t,this.showingStandaloneColorPicker=s,this._closeButton=null,this._domNode=Xl(".colorpicker-header"),ke(e,this._domNode),this._pickedColorNode=ke(this._domNode,Xl(".picked-color")),ke(this._pickedColorNode,Xl("span.codicon.codicon-color-mode")),this._pickedColorPresentation=ke(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const r=v("clickToToggleColorOptions","Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",r),this._originalColorNode=ke(this._domNode,Xl(".original-color")),this._originalColorNode.style.backgroundColor=Ce.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(TF)||Ce.white,this._register(i.onDidColorThemeChange(o=>{this.backgroundColor=o.getColor(TF)||Ce.white})),this._register(ge(this._pickedColorNode,Ae.CLICK,()=>this.model.selectNextColorPresentation())),this._register(ge(this._originalColorNode,Ae.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=Ce.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new eEt(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=Ce.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class eEt extends ue{constructor(e){super(),this._onClicked=this._register(new oe),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),ke(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),ke(this._button,t),ke(t,Xl(".button"+ft.asCSSSelector(_n("color-picker-close",Ne.close,v("closeIcon","Icon to close the color picker"))))).classList.add("close-icon"),this._register(ge(this._button,Ae.CLICK,()=>{this._onClicked.fire()}))}}class tEt extends ue{constructor(e,t,i,s=!1){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=Xl(".colorpicker-body"),ke(e,this._domNode),this._saturationBox=new iEt(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new nEt(this._domNode,this.model,s),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new sEt(this._domNode,this.model,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s&&(this._insertButton=this._register(new rEt(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new Ce(new vf(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new Ce(new vf(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new Ce(new vf(i===360?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class iEt extends ue{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new oe,this.onColorFlushed=this._onColorFlushed.event,this._domNode=Xl(".saturation-wrap"),ke(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",ke(this._domNode,this._canvas),this.selection=Xl(".saturation-selection"),ke(this._domNode,this.selection),this.layout(),this._register(ge(this._domNode,Ae.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new fL);const t=ps(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,s=>this.onDidChangePosition(s.pageX-t.left,s.pageY-t.top),()=>null);const i=ge(e.target.ownerDocument,Ae.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),s=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,s),this._onDidChange.fire({s:i,v:s})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new Ce(new vf(e.h,1,1,1)),i=this._canvas.getContext("2d"),s=i.createLinearGradient(0,0,this._canvas.width,0);s.addColorStop(0,"rgba(255, 255, 255, 1)"),s.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),s.addColorStop(1,"rgba(255, 255, 255, 0)");const r=i.createLinearGradient(0,0,0,this._canvas.height);r.addColorStop(0,"rgba(0, 0, 0, 0)"),r.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=Ce.Format.CSS.format(t),i.fill(),i.fillStyle=s,i.fill(),i.fillStyle=r,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class wTe extends ue{constructor(e,t,i=!1){super(),this.model=t,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new oe,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=ke(e,Xl(".standalone-strip")),this.overlay=ke(this.domNode,Xl(".standalone-overlay"))):(this.domNode=ke(e,Xl(".strip")),this.overlay=ke(this.domNode,Xl(".overlay"))),this.slider=ke(this.domNode,Xl(".slider")),this.slider.style.top="0px",this._register(ge(this.domNode,Ae.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new fL),i=ps(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,r=>this.onDidChangeTop(r.pageY-i.top),()=>null);const s=ge(e.target.ownerDocument,Ae.POINTER_UP,()=>{this._onColorFlushed.fire(),s.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class nEt extends wTe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:s}=e.rgba,r=new Ce(new pi(t,i,s,1)),o=new Ce(new pi(t,i,s,0));this.overlay.style.background=`linear-gradient(to bottom, ${r} 0%, ${o} 100%)`}getValue(e){return e.hsva.a}}class sEt extends wTe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class rEt extends ue{constructor(e){super(),this._onClicked=this._register(new oe),this.onClicked=this._onClicked.event,this._button=ke(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(ge(this._button,Ae.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}class oEt extends bc{constructor(e,t,i,s,r=!1){super(),this.model=t,this.pixelRatio=i,this._register(LT.getInstance(ut(e)).onDidChange(()=>this.layout())),this._domNode=Xl(".colorpicker-widget"),e.appendChild(this._domNode),this.header=this._register(new JLt(this._domNode,this.model,s,r)),this.body=this._register(new tEt(this._domNode,this.model,this.pixelRatio,r))}layout(){this.body.layout()}get domNode(){return this._domNode}}class UW{constructor(e,t,i,s){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=s,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class SM{constructor(e,t,i,s,r,o){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=s,this.initialMousePosY=r,this.supportsMarkerHover=o,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}class a0{constructor(e){this.renderedHoverParts=e}dispose(){for(const e of this.renderedHoverParts)e.dispose()}}const W0=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};var CTe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},STe=function(n,e){return function(t,i){e(t,i,n)}};class aEt{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let mD=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return ec.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];const s=dx.get(this._editor);if(!s)return[];for(const r of t){if(!s.isColorDecoration(r))continue;const o=s.getColorData(r.range.getStartPosition());if(o)return[await xTe(this,this._editor.getModel(),o.colorInfo,o.provider)]}return[]}renderHoverParts(e,t){const i=LTe(this,this._editor,this._themeService,t,e);if(!i)return new a0([]);this._colorPicker=i.colorPicker;const s={hoverPart:i.hoverPart,hoverElement:this._colorPicker.domNode,dispose(){i.disposables.dispose()}};return new a0([s])}handleResize(){var e;(e=this._colorPicker)==null||e.layout()}isColorPickerVisible(){return!!this._colorPicker}};mD=CTe([STe(1,Xs)],mD);class lEt{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s}}let _D=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(e,t,i){if(!this._editor.hasModel()||!dx.get(this._editor))return null;const r=await _Te(i,this._editor.getModel(),Vt.None);let o=null,a=null;for(const h of r){const d=h.colorInfo;O.containsRange(d.range,e.range)&&(o=d,a=h.provider)}const l=o??e,c=a??t,u=!!o;return{colorHover:await xTe(this,this._editor.getModel(),l,c),foundInEditor:u}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new O(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await xM(this._editor.getModel(),t,this._color,i,e),i=ETe(this._editor,i,t))}renderHoverParts(e,t){return LTe(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};_D=CTe([STe(1,Xs)],_D);async function xTe(n,e,t,i){const s=e.getValueInRange(t.range),{red:r,green:o,blue:a,alpha:l}=t.color,c=new pi(Math.round(r*255),Math.round(o*255),Math.round(a*255),l),u=new Ce(c),h=await vTe(e,t,i,Vt.None),d=new QLt(u,[],0);return d.colorPresentations=h||[],d.guessColorPresentation(u,s),n instanceof mD?new aEt(n,O.lift(t.range),d,i):new lEt(n,O.lift(t.range),d,i)}function LTe(n,e,t,i,s){if(i.length===0||!e.hasModel())return;if(s.setMinimumDimensions){const d=e.getOption(67)+8;s.setMinimumDimensions(new Wi(302,d))}const r=new be,o=i[0],a=e.getModel(),l=o.model,c=r.add(new oEt(s.fragment,l,e.getOption(144),t,n instanceof _D));let u=!1,h=new O(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn);if(n instanceof _D){const d=o.model.color;n.color=d,xM(a,l,d,h,o),r.add(l.onColorFlushed(f=>{n.color=f}))}else r.add(l.onColorFlushed(async d=>{await xM(a,l,d,h,o),u=!0,h=ETe(e,h,l)}));return r.add(l.onDidChangeColor(d=>{xM(a,l,d,h,o)})),r.add(e.onDidChangeModelContent(d=>{u?u=!1:(s.hide(),e.focus())})),{hoverPart:o,colorPicker:c,disposables:r}}function ETe(n,e,t){const i=[],s=t.presentation.textEdit??{range:e,text:t.presentation.label,forceMoveMarkers:!1};i.push(s),t.presentation.additionalTextEdits&&i.push(...t.presentation.additionalTextEdits);const r=O.lift(s.range),o=n.getModel()._setTrackedRange(null,r,3);return n.executeEdits("colorpicker",i),n.pushUndoStop(),n.getModel()._getTrackedRange(o)??r}async function xM(n,e,t,i,s){const r=await vTe(n,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},s.provider,Vt.None);e.colorPresentations=r||[]}const kTe="editor.action.showHover",cEt="editor.action.showDefinitionPreviewHover",uEt="editor.action.scrollUpHover",hEt="editor.action.scrollDownHover",dEt="editor.action.scrollLeftHover",fEt="editor.action.scrollRightHover",pEt="editor.action.pageUpHover",gEt="editor.action.pageDownHover",mEt="editor.action.goToTopHover",_Et="editor.action.goToBottomHover",R8="editor.action.increaseHoverVerbosityLevel",vEt=v({key:"increaseHoverVerbosityLevel",comment:["Label for action that will increase the hover verbosity level."]},"Increase Hover Verbosity Level"),M8="editor.action.decreaseHoverVerbosityLevel",bEt=v({key:"decreaseHoverVerbosityLevel",comment:["Label for action that will decrease the hover verbosity level."]},"Decrease Hover Verbosity Level"),ITe="editor.action.inlineSuggest.commit",TTe="editor.action.inlineSuggest.showPrevious",DTe="editor.action.inlineSuggest.showNext";var Oie=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Eu=function(n,e){return function(t,i){e(t,i,n)}},LM;let Nq=class extends ue{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=ot(this,s=>{var l,c;const r=(l=this.model.read(s))==null?void 0:l.primaryGhostText.read(s);if(!this.alwaysShowToolbar.read(s)||!r||r.parts.length===0)return this.sessionPosition=void 0,null;const o=r.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==r.lineNumber&&(this.sessionPosition=void 0);const a=new se(r.lineNumber,Math.min(o,((c=this.sessionPosition)==null?void 0:c.column)??Number.MAX_SAFE_INTEGER));return this.sessionPosition=a,a}),this._register(Na((s,r)=>{const o=this.model.read(s);if(!o||!this.alwaysShowToolbar.read(s))return;const a=R_((c,u)=>{const h=u.add(this.instantiationService.createInstance(fx,this.editor,!0,this.position,o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.activeCommands));return e.addContentWidget(h),u.add(lt(()=>e.removeContentWidget(h))),u.add(Lt(d=>{this.position.read(d)&&o.lastTriggerKind.read(d)!==Hh.Explicit&&o.triggerExplicitly()})),h}),l=UN(this,(c,u)=>!!this.position.read(c)||!!u);r.add(Lt(c=>{l.read(c)&&a.read(c)}))}))}};Nq=Oie([Eu(2,ct)],Nq);const yEt=_n("inline-suggestion-hints-next",Ne.chevronRight,v("parameterHintsNextIcon","Icon for show next parameter hint.")),wEt=_n("inline-suggestion-hints-previous",Ne.chevronLeft,v("parameterHintsPreviousIcon","Icon for show previous parameter hint."));var M1;let fx=(M1=class extends ue{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const s=new dl(e,t,i,!0,()=>this._commandService.executeCommand(e)),r=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let o=t;return r&&(o=v({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",t,r.getLabel())),s.tooltip=o,s}constructor(e,t,i,s,r,o,a,l,c,u,h){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=s,this._suggestionCount=r,this._extraCommands=o,this._commandService=a,this.keybindingService=c,this._contextKeyService=u,this._menuService=h,this.id=`InlineSuggestionHintsContentWidget${LM.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Jt("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[Jt("div@toolBar")]),this.previousAction=this.createCommandAction(TTe,v("previous","Previous"),ft.asClassName(wEt)),this.availableSuggestionCountAction=new dl("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(DTe,v("next","Next"),ft.asClassName(yEt)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(et.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new ji(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new ji(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(l.createInstance(Aq,this.nodes.toolBar,et.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:d=>d.startsWith("primary")},actionViewItemProvider:(d,f)=>{if(d instanceof fl)return l.createInstance(SEt,d,void 0);if(d===this.availableSuggestionCountAction){const p=new CEt(void 0,d,{label:!0,icon:!1});return p.setClass("availableSuggestionCount"),p}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(d=>{LM._dropDownVisible=d})),this._register(Lt(d=>{this._position.read(d),this.editor.layoutContentWidget(this)})),this._register(Lt(d=>{const f=this._suggestionCount.read(d),p=this._currentSuggestionIdx.read(d);f!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${p+1}/${f}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),f!==void 0&&f>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Lt(d=>{const p=this._extraCommands.read(d).map(g=>({class:void 0,id:g.id,enabled:!0,tooltip:g.tooltip||"",label:g.title,run:m=>this._commandService.executeCommand(g.id)}));for(const[g,m]of this.inlineCompletionsActionsMenus.getActions())for(const _ of m)_ instanceof fl&&p.push(_);p.length>0&&p.unshift(new nr),this.toolBar.setAdditionalSecondaryActions(p)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},LM=M1,M1._dropDownVisible=!1,M1.id=0,M1);fx=LM=Oie([Eu(6,an),Eu(7,ct),Eu(8,Ni),Eu(9,bt),Eu(10,vc)],fx);class CEt extends ax{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}let SEt=class extends m_{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=Jt("div.keybinding").root;this._register(new xL(t,cl,{disableTitle:!0,...eTe})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}},Aq=class extends cD{constructor(e,t,i,s,r,o,a,l,c){super(e,{resetMenu:t,...i},s,r,o,a,l,c),this.menuId=t,this.options2=i,this.menuService=s,this.contextKeyService=r,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var i,s,r,o,a,l,c;const e=[],t=[];T8(this.menu,(i=this.options2)==null?void 0:i.menuOptions,{primary:e,secondary:t},(r=(s=this.options2)==null?void 0:s.toolbarOptions)==null?void 0:r.primaryGroup,(a=(o=this.options2)==null?void 0:o.toolbarOptions)==null?void 0:a.shouldInlineSubmenu,(c=(l=this.options2)==null?void 0:l.toolbarOptions)==null?void 0:c.useSeparatorsInPrimaryActions),t.push(...this.additionalActions),e.unshift(...this.prependedPrimaryActions),this.setActions(e,t)}setPrependedPrimaryActions(e){In(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){In(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};Aq=Oie([Eu(3,vc),Eu(4,bt),Eu(5,El),Eu(6,Ni),Eu(7,an),Eu(8,Ro)],Aq);class Fie{constructor(){this._onDidWillResize=new oe,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new oe,this.onDidResize=this._onDidResize.event,this._sashListener=new be,this._size=new Wi(0,0),this._minSize=new Wi(0,0),this._maxSize=new Wi(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new Qr(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new Qr(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new Qr(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:u4.North}),this._southSash=new Qr(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:u4.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(Oe.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(Oe.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(s=>{e&&(i=s.currentX-s.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(s=>{e&&(i=-(s.currentX-s.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(s=>{e&&(t=-(s.currentY-s.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(s=>{e&&(t=s.currentY-s.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(Oe.any(this._eastSash.onDidReset,this._westSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Oe.any(this._northSash.onDidReset,this._southSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,s){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=s?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:s}=this._minSize,{height:r,width:o}=this._maxSize;e=Math.max(i,Math.min(r,e)),t=Math.max(s,Math.min(o,t));const a=new Wi(t,e);Wi.equals(a,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=a,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}const xEt=30,LEt=24;class EEt extends ue{constructor(e,t=new Wi(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Fie),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Wi.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new Wi(i.dimension.width,i.dimension.height)),i.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return(e=this._contentPosition)!=null&&e.position?se.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:ps(t).top+i.top-xEt}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const s=ps(t),r=o_(t.ownerDocument.body),o=s.top+i.top+i.height;return r.height-o-LEt}_findPositionPreference(e,t){const i=Math.min(this._availableVerticalSpaceBelow(t)??1/0,e),s=Math.min(this._availableVerticalSpaceAbove(t)??1/0,e),r=Math.min(Math.max(s,i),e),o=Math.min(e,r);let a;return this._editor.getOption(60).above?a=o<=s?1:2:a=o<=i?2:1,a===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),a}_resize(e){this._resizableNode.layout(e.height,e.width)}}const RP=Pe;let Bie=class extends ue{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new ON(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}};class O8 extends ue{static render(e,t,i){return new O8(e,t,i)}constructor(e,t,i){super(),this.actionLabel=t.label,this.actionKeybindingLabel=i,this.actionContainer=ke(e,RP("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=ke(this.actionContainer,RP("a.action")),this.action.setAttribute("role","button"),t.iconClass&&ke(this.action,RP(`span.icon.${t.iconClass}`));const s=ke(this.action,RP("span"));s.textContent=i?`${t.label} (${i})`:t.label,this._store.add(new ATe(this.actionContainer,t.run)),this._store.add(new PTe(this.actionContainer,t.run,[3,10])),this.setEnabled(!0)}setEnabled(e){e?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function NTe(n,e){return n&&e?v("acessibleViewHint","Inspect this in the accessible view with {0}.",e):n?v("acessibleViewHintNoKbOpen","Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class ATe extends ue{constructor(e,t){super(),this._register(ge(e,Ae.CLICK,i=>{i.stopPropagation(),i.preventDefault(),t(e)}))}}class PTe extends ue{constructor(e,t,i){super(),this._register(ge(e,Ae.KEY_DOWN,s=>{const r=new Ji(s);i.some(o=>r.equals(o))&&(s.stopPropagation(),s.preventDefault(),t(e))}))}}var kEt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},MP=function(n,e){return function(t,i){e(t,i,n)}},Pd;const Ofe=30,IEt=6;var O1;let P4=(O1=class extends EEt{get isVisibleFromKeyboard(){var e;return((e=this._renderedHover)==null?void 0:e.source)===1}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(e,t,i,s,r){const o=e.getOption(67)+8,a=150,l=new Wi(a,o);super(e,l),this._configurationService=i,this._accessibilityService=s,this._keybindingService=r,this._hover=this._register(new Bie),this._onDidResize=this._register(new oe),this.onDidResize=this._onDidResize.event,this._minimumSize=l,this._hoverVisibleKey=H.hoverVisible.bindTo(t),this._hoverFocusedKey=H.hoverFocused.bindTo(t),ke(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(u=>{u.hasChanged(50)&&this._updateFont()}));const c=this._register(Zh(this._resizableNode.domNode));this._register(c.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(c.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._renderedHover)==null||e.dispose(),this._editor.removeContentWidget(this)}getId(){return Pd.ID}static _applyDimensions(e,t,i){const s=typeof t=="number"?`${t}px`:t,r=typeof i=="number"?`${i}px`:i;e.style.width=s,e.style.height=r}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return Pd._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return Pd._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const s=typeof t=="number"?`${t}px`:t,r=typeof i=="number"?`${i}px`:i;e.style.maxWidth=s,e.style.maxHeight=r}_setHoverWidgetMaxDimensions(e,t){Pd._applyMaxDimensions(this._hover.contentsDomNode,e,t),Pd._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?`${e}px`:e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i)}_updateResizableNodeMaxDimensions(){const e=this._findMaximumRenderingWidth()??1/0,t=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new Wi(e,t),this._setHoverWidgetMaxDimensions(e,t)}_resize(e){Pd._lastDimensions=new Wi(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){var t;const e=(t=this._renderedHover)==null?void 0:t.showAtPosition;if(e)return this._positionPreference===1?this._availableVerticalSpaceAbove(e):this._availableVerticalSpaceBelow(e)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=IEt;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>"u"?0:this._contentWidth-2;return e||this._hover.containerDomNode.clientWidth<t?o_(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(e,t){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=e,this._renderedHover.initialMousePosY=t,!1;const i=ps(this.getDomNode());this._renderedHover.closestMouseDistance===void 0&&(this._renderedHover.closestMouseDistance=Ffe(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,i.left,i.top,i.width,i.height));const s=Ffe(e,t,i.left,i.top,i.width,i.height);return s>this._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,s),!0)}_setRenderedHover(e){var t;(t=this._renderedHover)==null||t.dispose(),this._renderedHover=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(r=>this._editor.applyFontInfo(r))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,Pd._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,Pd._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e){this._setRenderedHover(e),this._updateFont(),this._updateContent(e.domNode),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(e){var o;if(!this._editor||!this._editor.hasModel())return;this._render(e);const t=ig(this._hover.containerDomNode),i=e.showAtPosition;this._positionPreference=this._findPositionPreference(t,i)??1,this.onContentsChanged(),e.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const r=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&NTe(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),((o=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:o.getAriaLabel())??"");r&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+r)}hide(){if(!this._renderedHover)return;const e=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new Wi(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto")}setMinimumDimensions(e){this._minimumSize=new Wi(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new Wi(e,this._minimumSize.height)}onContentsChanged(){var s;this._removeConstraintsRenderNormally();const e=this._hover.containerDomNode;let t=ig(e),i=Ja(e);if(this._resizableNode.layout(t,i),this._setHoverWidgetDimensions(i,t),t=ig(e),i=Ja(e),this._contentWidth=i,this._updateMinimumWidth(),this._resizableNode.layout(t,i),(s=this._renderedHover)!=null&&s.showAtPosition){const r=ig(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(r,this._renderedHover.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-Ofe})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+Ofe})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}},Pd=O1,O1.ID="editor.contrib.resizableContentHoverWidget",O1._lastDimensions=new Wi(0,0),O1);P4=Pd=kEt([MP(1,bt),MP(2,Xt),MP(3,xl),MP(4,Ni)],P4);function Ffe(n,e,t,i,s,r){const o=t+s/2,a=i+r/2,l=Math.max(Math.abs(n-o)-s/2,0),c=Math.max(Math.abs(e-a)-r/2,0);return Math.sqrt(l*l+c*c)}let TEt=class{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}};class RTe extends ue{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new oe),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new ji(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new ji(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new ji(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=Ult(e=>this._computer.computeAsync(e)),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(e){Nt(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new TEt(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class R4{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),s=t.range.startLineNumber;if(s>i.getLineCount())return[];const r=i.getLineMaxColumn(s);return e.getLineDecorations(s).filter(o=>{if(o.options.isWholeLine)return!0;const a=o.range.startLineNumber===s?o.range.startColumn:1,l=o.range.endLineNumber===s?o.range.endColumn:r;if(o.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return ec.EMPTY;const i=R4._getLineDecorations(this._editor,t);return ec.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(t,i,e):ec.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=R4._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return Qh(t)}}class MTe{constructor(e,t,i){this.anchor=e,this.hoverParts=t,this.isComplete=i}filter(e){const t=this.hoverParts.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.hoverParts.length?this:new DEt(this,this.anchor,t,this.isComplete)}}class DEt extends MTe{constructor(e,t,i,s){super(t,i,s),this.original=e}filter(e){return this.original.filter(e)}}var NEt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},AEt=function(n,e){return function(t,i){e(t,i,n)}};const Bfe=Pe;let M4=class extends ue{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this.actions=[],this._hasContent=!1,this.hoverElement=Bfe("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=ke(this.hoverElement,Bfe("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;this._hasContent=!0;const s=this._register(O8.render(this.actionsElement,e,i));return this.actions.push(s),s}append(e){const t=ke(this.actionsElement,e);return this._hasContent=!0,t}};M4=NEt([AEt(0,Ni)],M4);class PEt{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}async function REt(n,e,t,i,s){const r=await Promise.resolve(n.provideHover(t,i,s)).catch(ls);if(!(!r||!MEt(r)))return new PEt(n,r,e)}function Wie(n,e,t,i,s=!1){const o=n.ordered(e,s).map((a,l)=>REt(a,l,e,t,i));return ec.fromPromises(o).coalesce()}function OTe(n,e,t,i,s=!1){return Wie(n,e,t,i,s).map(r=>r.hover).toPromise()}Va("_executeHoverProvider",(n,e,t)=>{const i=n.get(Je);return OTe(i.hoverProvider,e,t,Vt.None)});Va("_executeHoverProvider_recursive",(n,e,t)=>{const i=n.get(Je);return OTe(i.hoverProvider,e,t,Vt.None,!0)});function MEt(n){const e=typeof n.range<"u",t=typeof n.contents<"u"&&n.contents&&n.contents.length>0;return e&&t}var OEt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sv=function(n,e){return function(t,i){e(t,i,n)}};const Jw=Pe,FEt=_n("hover-increase-verbosity",Ne.add,v("increaseHoverVerbosity","Icon for increaseing hover verbosity.")),BEt=_n("hover-decrease-verbosity",Ne.remove,v("decreaseHoverVerbosity","Icon for decreasing hover verbosity."));class ku{constructor(e,t,i,s,r,o=void 0){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=s,this.ordinal=r,this.source=o}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}class FTe{constructor(e,t,i){this.hover=e,this.hoverProvider=t,this.hoverPosition=i}supportsVerbosityAction(e){switch(e){case il.Increase:return this.hover.canIncreaseVerbosity??!1;case il.Decrease:return this.hover.canDecreaseVerbosity??!1}}}let vD=class{constructor(e,t,i,s,r,o,a,l){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=s,this._languageFeaturesService=r,this._keybindingService=o,this._hoverService=a,this._commandService=l,this.hoverOrdinal=3}createLoadingMessage(e){return new ku(this,e.range,[new to().appendText(v("modesContentHover.loading","Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,r=i.getLineMaxColumn(s),o=[];let a=1e3;const l=i.getLineLength(s),c=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),u=this._editor.getOption(118),h=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:c});let d=!1;u>=0&&l>u&&e.range.startColumn>=u&&(d=!0,o.push(new ku(this,e.range,[{value:v("stopped rendering","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,a++))),!d&&typeof h=="number"&&l>=h&&o.push(new ku(this,e.range,[{value:v("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,a++));let f=!1;for(const p of t){const g=p.range.startLineNumber===s?p.range.startColumn:1,m=p.range.endLineNumber===s?p.range.endColumn:r,_=p.options.hoverMessage;if(!_||ox(_))continue;p.options.beforeContentClassName&&(f=!0);const b=new O(e.range.startLineNumber,g,e.range.startLineNumber,m);o.push(new ku(this,b,$ee(_),f,a++))}return o}computeAsync(e,t,i){if(!this._editor.hasModel()||e.type!==1)return ec.EMPTY;const s=this._editor.getModel(),r=this._languageFeaturesService.hoverProvider;return r.has(s)?this._getMarkdownHovers(r,s,e,i):ec.EMPTY}_getMarkdownHovers(e,t,i,s){const r=i.range.getStartPosition();return Wie(e,t,r,s).filter(l=>!ox(l.hover.contents)).map(l=>{const c=l.hover.range?O.lift(l.hover.range):i.range,u=new FTe(l.hover,l.provider,r);return new ku(this,c,l.hover.contents,!1,l.ordinal,u)})}renderHoverParts(e,t){return this._renderedHoverParts=new WEt(t,e.fragment,this,this._editor,this._languageService,this._openerService,this._commandService,this._keybindingService,this._hoverService,this._configurationService,e.onContentsChanged),this._renderedHoverParts}updateMarkdownHoverVerbosityLevel(e,t,i){var s;return Promise.resolve((s=this._renderedHoverParts)==null?void 0:s.updateMarkdownHoverPartVerbosityLevel(e,t,i))}};vD=OEt([sv(1,Dn),sv(2,kl),sv(3,Xt),sv(4,Je),sv(5,Ni),sv(6,rp),sv(7,an)],vD);class OP{constructor(e,t,i){this.hoverPart=e,this.hoverElement=t,this.disposables=i}dispose(){this.disposables.dispose()}}class WEt{constructor(e,t,i,s,r,o,a,l,c,u,h){this._hoverParticipant=i,this._editor=s,this._languageService=r,this._openerService=o,this._commandService=a,this._keybindingService=l,this._hoverService=c,this._configurationService=u,this._onFinishedRendering=h,this._ongoingHoverOperations=new Map,this._disposables=new be,this.renderedHoverParts=this._renderHoverParts(e,t,this._onFinishedRendering),this._disposables.add(lt(()=>{this.renderedHoverParts.forEach(d=>{d.dispose()}),this._ongoingHoverOperations.forEach(d=>{d.tokenSource.dispose(!0)})}))}_renderHoverParts(e,t,i){return e.sort(Jo(s=>s.ordinal,Ru)),e.map(s=>{const r=this._renderHoverPart(s,i);return t.appendChild(r.hoverElement),r})}_renderHoverPart(e,t){const i=this._renderMarkdownHover(e,t),s=i.hoverElement,r=e.source,o=new be;if(o.add(i),!r)return new OP(e,s,o);const a=r.supportsVerbosityAction(il.Increase),l=r.supportsVerbosityAction(il.Decrease);if(!a&&!l)return new OP(e,s,o);const c=Jw("div.verbosity-actions");return s.prepend(c),o.add(this._renderHoverExpansionAction(c,il.Increase,a)),o.add(this._renderHoverExpansionAction(c,il.Decrease,l)),new OP(e,s,o)}_renderMarkdownHover(e,t){return BTe(this._editor,e,this._languageService,this._openerService,t)}_renderHoverExpansionAction(e,t,i){const s=new be,r=t===il.Increase,o=ke(e,Jw(ft.asCSSSelector(r?FEt:BEt)));o.tabIndex=0;const a=new cx("mouse",!1,{target:e,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(s.add(this._hoverService.setupManagedHover(a,o,HEt(this._keybindingService,t))),!i)return o.classList.add("disabled"),s;o.classList.add("enabled");const l=()=>this._commandService.executeCommand(t===il.Increase?R8:M8);return s.add(new ATe(o,l)),s.add(new PTe(o,l,[3,10])),s}async updateMarkdownHoverPartVerbosityLevel(e,t,i=!0){const s=this._editor.getModel();if(!s)return;const r=this._getRenderedHoverPartAtIndex(t),o=r==null?void 0:r.hoverPart.source;if(!r||!(o!=null&&o.supportsVerbosityAction(e)))return;const a=await this._fetchHover(o,s,e);if(!a)return;const l=new FTe(a,o.hoverProvider,o.hoverPosition),c=r.hoverPart,u=new ku(this._hoverParticipant,c.range,a.contents,c.isBeforeContent,c.ordinal,l),h=this._renderHoverPart(u,this._onFinishedRendering);return this._replaceRenderedHoverPartAtIndex(t,h,u),i&&this._focusOnHoverPartWithIndex(t),{hoverPart:u,hoverElement:h.hoverElement}}async _fetchHover(e,t,i){let s=i===il.Increase?1:-1;const r=e.hoverProvider,o=this._ongoingHoverOperations.get(r);o&&(o.tokenSource.cancel(),s+=o.verbosityDelta);const a=new Wn;this._ongoingHoverOperations.set(r,{verbosityDelta:s,tokenSource:a});const l={verbosityRequest:{verbosityDelta:s,previousHover:e.hover}};let c;try{c=await Promise.resolve(r.provideHover(t,e.hoverPosition,a.token,l))}catch(u){ls(u)}return a.dispose(),this._ongoingHoverOperations.delete(r),c}_replaceRenderedHoverPartAtIndex(e,t,i){if(e>=this.renderedHoverParts.length||e<0)return;const s=this.renderedHoverParts[e],r=s.hoverElement,o=t.hoverElement,a=Array.from(o.children);r.replaceChildren(...a);const l=new OP(i,r,t.disposables);r.focus(),s.dispose(),this.renderedHoverParts[e]=l}_focusOnHoverPartWithIndex(e){this.renderedHoverParts[e].hoverElement.focus()}_getRenderedHoverPartAtIndex(e){return this.renderedHoverParts[e]}dispose(){this._disposables.dispose()}}function VEt(n,e,t,i,s){e.sort(Jo(o=>o.ordinal,Ru));const r=[];for(const o of e)r.push(BTe(t,o,i,s,n.onContentsChanged));return new a0(r)}function BTe(n,e,t,i,s){const r=new be,o=Jw("div.hover-row"),a=Jw("div.hover-row-contents");o.appendChild(a);const l=e.contents;for(const u of l){if(ox(u))continue;const h=Jw("div.markdown-hover"),d=ke(h,Jw("div.hover-contents")),f=r.add(new jg({editor:n},t,i));r.add(f.onDidRenderAsync(()=>{d.className="hover-contents code-hover-contents",s()}));const p=r.add(f.render(u));d.appendChild(p.element),a.appendChild(h)}return{hoverPart:e,hoverElement:o,dispose(){r.dispose()}}}function HEt(n,e){switch(e){case il.Increase:{const t=n.lookupKeybinding(R8);return t?v("increaseVerbosityWithKb","Increase Hover Verbosity ({0})",t.getLabel()):v("increaseVerbosity","Increase Hover Verbosity")}case il.Decrease:{const t=n.lookupKeybinding(M8);return t?v("decreaseVerbosityWithKb","Decrease Hover Verbosity ({0})",t.getLabel()):v("decreaseVerbosity","Decrease Hover Verbosity")}}}class Fn{static insert(e,t){return{range:new O(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}function Pq(n,e){return!!n[e]}class jW{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=Pq(e.event,t.triggerModifier),this.hasSideBySideModifier=Pq(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class Wfe{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=Pq(e,t.triggerModifier)}}class FP{constructor(e,t,i,s){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=s}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function Vfe(n){return n==="altKey"?ni?new FP(57,"metaKey",6,"altKey"):new FP(5,"ctrlKey",6,"altKey"):ni?new FP(6,"altKey",57,"metaKey"):new FP(6,"altKey",5,"ctrlKey")}class F8 extends ue{constructor(e,t){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new oe),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new oe),this.onExecute=this._onExecute.event,this._onCancel=this._register(new oe),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=(t==null?void 0:t.extractLineNumberFromMouseEvent)??(i=>i.target.position?i.target.position.lineNumber:0),this._opts=Vfe(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(i=>{if(i.hasChanged(78)){const s=Vfe(this._editor.getOption(78));if(this._opts.equals(s))return;this._opts=s,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(i=>this._onEditorMouseMove(new jW(i,this._opts)))),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(new jW(i,this._opts)))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(new jW(i,this._opts)))),this._register(this._editor.onKeyDown(i=>this._onEditorKeyDown(new Wfe(i,this._opts)))),this._register(this._editor.onKeyUp(i=>this._onEditorKeyUp(new Wfe(i,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(i=>this._onDidChangeCursorSelection(i))),this._register(this._editor.onDidChangeModel(i=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(i=>{(i.scrollTopChanged||i.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class WTe{constructor(e,t){this.range=e,this.direction=t}}class Vie{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new Vie(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(e){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){try{const t=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t==null?void 0:t.tooltip)??this.hint.tooltip,this.hint.label=(t==null?void 0:t.label)??this.hint.label,this.hint.textEdits=(t==null?void 0:t.textEdits)??this.hint.textEdits,this._isResolved=!0}catch(t){ls(t),this._isResolved=!1}}}const _C=class _C{static async create(e,t,i,s){const r=[],o=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const c=await a.provideInlayHints(t,l,s);(c!=null&&c.hints.length||a.onDidChangeInlayHints)&&r.push([c??_C._emptyInlayHintList,a])}catch(c){ls(c)}}));if(await Promise.all(o.flat()),s.isCancellationRequested||t.isDisposed())throw new Hu;return new _C(i,r,t)}constructor(e,t,i){this._disposables=new be,this.ranges=e,this.provider=new Set;const s=[];for(const[r,o]of t){this._disposables.add(r),this.provider.add(o);for(const a of r.hints){const l=i.validatePosition(a.position);let c="before";const u=_C._getRangeAtPosition(i,l);let h;u.getStartPosition().isBefore(l)?(h=O.fromPositions(u.getStartPosition(),l),c="after"):(h=O.fromPositions(l,u.getEndPosition()),c="before"),s.push(new Vie(a,new WTe(h,c),o))}}this.items=s.sort((r,o)=>se.compare(r.hint.position,o.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,s=e.getWordAtPosition(t);if(s)return new O(i,s.startColumn,i,s.endColumn);e.tokenization.tokenizeIfCheap(i);const r=e.tokenization.getLineTokens(i),o=t.column-1,a=r.findTokenIndexAtOffset(o);let l=r.getStartOffset(a),c=r.getEndOffset(a);return c-l===1&&(l===o&&a>1?(l=r.getStartOffset(a-1),c=r.getEndOffset(a-1)):c===o&&a<r.getCount()-1&&(l=r.getStartOffset(a+1),c=r.getEndOffset(a+1))),new O(i,l+1,i,c+1)}};_C._emptyInlayHintList=Object.freeze({dispose(){},hints:[]});let O4=_C;function $Et(n){return mt.from({scheme:kt.command,path:n.id,query:n.arguments&&encodeURIComponent(JSON.stringify(n.arguments))}).toString()}function Yf(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===WN.ICodeEditor:!1}function Hie(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===WN.IDiffEditor:!1}function zEt(n){return!!n&&typeof n=="object"&&typeof n.onDidChangeActiveEditor=="function"}function VTe(n){return Yf(n)?n:Hie(n)?n.getModifiedEditor():zEt(n)&&Yf(n.activeCodeEditor)?n.activeCodeEditor:null}var UEt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},mp=function(n,e){return function(t,i){e(t,i,n)}};let Ku=class extends QT{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f){super(e,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},i,r,o,a,l,c,u,h,d,f),this._parentEditor=s,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration(p=>this._onParentConfigurationChanged(p)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){t8(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};Ku=UEt([mp(4,ct),mp(5,wi),mp(6,an),mp(7,bt),mp(8,Xs),mp(9,ms),mp(10,xl),mp(11,ln),mp(12,Je)],Ku);const Hfe=new Ce(new pi(0,122,204)),jEt={showArrow:!0,showFrame:!0,className:"",frameColor:Hfe,arrowColor:Hfe,keepEditorSelection:!1},qEt="vs.editor.contrib.zoneWidget";class KEt{constructor(e,t,i,s,r,o,a,l){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=s,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=r,this._onComputedHeight=o}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class GEt{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}const B3=class B3{constructor(e){this._editor=e,this._ruleName=B3._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),gz(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){gz(this._ruleName),pF(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:O.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}};B3._IdGenerator=new eie(".arrow-decoration-");let Rq=B3;class XEt{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new be,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Fp(t),t8(this.options,jEt,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(i=>{const s=this._getWidth(i);this.domNode.style.width=s+"px",this.domNode.style.left=this._getLeft(i)+"px",this._onWidth(s)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new Rq(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){var t;if(this.domNode.style.height=`${e}px`,this.container){const i=e-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const s=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(s))}(t=this._resizeSash)==null||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=O.isIRange(e)?O.lift(e):O.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:At.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones(t=>{this._viewZone&&t.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(e=this._arrow)==null||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(67);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=Math.round(e/9);t+=2*i}return t}_showImpl(e,t){const i=e.getStartPosition(),s=this.editor.getLayoutInfo(),r=this._getWidth(s);this.domNode.style.width=`${r}px`,this.domNode.style.left=this._getLeft(s)+"px";const o=document.createElement("div");o.style.overflow="hidden";const a=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const d=Math.max(12,this.editor.getLayoutInfo().height/a*.8);t=Math.min(t,d)}let l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(a/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(a/9)),this.editor.changeViewZones(d=>{this._viewZone&&d.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new KEt(o,i.lineNumber,i.column,t,f=>this._onViewZoneTop(f),f=>this._onViewZoneHeight(f),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=d.addZone(this._viewZone),this._overlayWidget=new GEt(qEt+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const d=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=d+"px",this.container.style.borderBottomWidth=d+"px"}const u=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=u+"px",this.container.style.overflow="hidden"),this._doLayout(u,r),this.options.keepEditorSelection||this.editor.setSelection(e);const h=this.editor.getModel();if(h){const d=h.validateRange(new O(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(d,d.startLineNumber===h.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new Qr(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(67),s=i<0?Math.ceil(i):Math.floor(i),r=e.heightInLines+s;r>5&&r<35&&this._relayout(r)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var HTe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},$Te=function(n,e){return function(t,i){e(t,i,n)}};const zTe=ri("IPeekViewService");fi(zTe,class{constructor(){this._widgets=new Map}addExclusiveWidget(n,e){const t=this._widgets.get(n);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const s=this._widgets.get(n);s&&s.widget===e&&(s.listener.dispose(),this._widgets.delete(n))};this._widgets.set(n,{widget:e,listener:e.onDidClose(i)})}},1);var Ma;(function(n){n.inPeekEditor=new $e("inReferenceSearchEditor",!0,v("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),n.notInPeekEditor=n.inPeekEditor.toNegated()})(Ma||(Ma={}));var hS;let F4=(hS=class{constructor(e,t){e instanceof Ku&&Ma.inPeekEditor.bindTo(t)}dispose(){}},hS.ID="editor.contrib.referenceController",hS);F4=HTe([$Te(1,bt)],F4);_i(F4.ID,F4,0);function YEt(n){const e=n.get(wi).getFocusedCodeEditor();return e instanceof Ku?e.getParentEditor():e}const ZEt={headerBackgroundColor:Ce.white,primaryHeadingColor:Ce.fromHex("#333333"),secondaryHeadingColor:Ce.fromHex("#6c6c6cb3")};let B4=class extends XEt{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new oe,this.onDidClose=this._onDidClose.event,t8(this.options,ZEt,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=Pe(".head"),this._bodyElement=Pe(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=Pe(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),os(this._titleElement,"click",r=>this._onTitleClick(r))),ke(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=Pe("span.filename"),this._secondaryHeading=Pe("span.dirname"),this._metaHeading=Pe("span.meta"),ke(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=Pe(".peekview-actions");ke(this._headElement,i);const s=this._getActionBarOptions();this._actionbarWidget=new uc(i,s),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new dl("peekview.close",v("label.close","Close"),ft.asClassName(Ne.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:wIe.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:kr(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,ol(this._metaHeading)):zo(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(67)*1.2),s=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(s,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};B4=HTe([$Te(2,ct)],B4);const QEt=U("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:Ce.black,hcLight:Ce.white},v("peekViewTitleBackground","Background color of the peek view title area.")),UTe=U("peekViewTitleLabel.foreground",{dark:Ce.white,light:Ce.black,hcDark:Ce.white,hcLight:sp},v("peekViewTitleForeground","Color of the peek view title.")),jTe=U("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},v("peekViewTitleInfoForeground","Color of the peek view title info.")),JEt=U("peekView.border",{dark:Kf,light:Kf,hcDark:mi,hcLight:mi},v("peekViewBorder","Color of the peek view borders and arrow.")),ekt=U("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:Ce.black,hcLight:Ce.white},v("peekViewResultsBackground","Background color of the peek view result list."));U("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:Ce.white,hcLight:sp},v("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list."));U("peekViewResult.fileForeground",{dark:Ce.white,light:"#1E1E1E",hcDark:Ce.white,hcLight:sp},v("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list."));U("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},v("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list."));U("peekViewResult.selectionForeground",{dark:Ce.white,light:"#6C6C6C",hcDark:Ce.white,hcLight:sp},v("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list."));const qTe=U("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:Ce.black,hcLight:Ce.white},v("peekViewEditorBackground","Background color of the peek view editor."));U("peekViewEditorGutter.background",qTe,v("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor."));U("peekViewEditorStickyScroll.background",qTe,v("peekViewEditorStickScrollBackground","Background color of sticky scroll in the peek view editor."));U("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},v("peekViewResultsMatchHighlight","Match highlight color in the peek view result list."));U("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},v("peekViewEditorMatchHighlight","Match highlight color in the peek view editor."));U("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Cn,hcLight:Cn},v("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."));class tkt{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:ue.None}}renderElement(e,t,i,s){var l;if((l=i.disposable)==null||l.dispose(),!i.data)return;const r=this.modelProvider();if(r.isResolved(e))return this.renderer.renderElement(r.get(e),e,i.data,s);const o=new Wn,a=r.resolve(e,o.token);i.disposable={dispose:()=>o.cancel()},this.renderer.renderPlaceholder(e,i.data),a.then(c=>this.renderer.renderElement(c,e,i.data,s))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class ikt{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}function nkt(n,e){return{...e,accessibilityProvider:e.accessibilityProvider&&new ikt(n,e.accessibilityProvider)}}class skt{constructor(e,t,i,s,r={}){const o=()=>this.model,a=s.map(l=>new tkt(l,o));this.list=new yc(e,t,i,a,nkt(o,r))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return Oe.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return Oe.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return Oe.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(s=>this._model.get(s)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,ya(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(e=>this.model.get(e))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}const rkt={separatorBorder:Ce.transparent};class KTe{set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(e,t){var i,s;if(e!==this.visible){e?(this.size=$o(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e);try{(s=(i=this.view).setVisible)==null||s.call(i,e)}catch(r){console.error("Splitview: Failed to set visible view"),console.error(r)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){return this.view.proportionalLayout??!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,s){this.container=e,this.view=t,this.disposable=s,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch(i){console.error("Splitview: Failed to layout view"),console.error(i)}}dispose(){this.disposable.dispose()}}class okt extends KTe{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class akt extends KTe{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var kp;(function(n){n[n.Idle=0]="Idle",n[n.Busy=1]="Busy"})(kp||(kp={}));var W4;(function(n){n.Distribute={type:"distribute"};function e(s){return{type:"split",index:s}}n.Split=e;function t(s){return{type:"auto",index:s}}n.Auto=t;function i(s){return{type:"invisible",cachedVisibleSize:s}}n.Invisible=i})(W4||(W4={}));class GTe extends ue{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e,t={}){super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=kp.Idle,this._onDidSashChange=this._register(new oe),this._onDidSashReset=this._register(new oe),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=t.orientation??0,this.inverseAltBehavior=t.inverseAltBehavior??!1,this.proportionalLayout=t.proportionalLayout??!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=ke(this.el,Pe(".sash-container")),this.viewContainer=Pe(".split-view-container"),this.scrollable=this._register(new gL({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:s=>bl(ut(this.el),s)})),this.scrollableElement=this._register(new d8(this.viewContainer,{vertical:this.orientation===0?t.scrollbarVisibility??1:2,horizontal:this.orientation===1?t.scrollbarVisibility??1:2},this.scrollable));const i=this._register(new li(this.viewContainer,"scroll")).event;this._register(i(s=>{const r=this.scrollableElement.getScrollPosition(),o=Math.abs(this.viewContainer.scrollLeft-r.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,a=Math.abs(this.viewContainer.scrollTop-r.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(o!==void 0||a!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:o,scrollTop:a})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(s=>{s.scrollTopChanged&&(this.viewContainer.scrollTop=s.scrollTop),s.scrollLeftChanged&&(this.viewContainer.scrollLeft=s.scrollLeft)})),ke(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||rkt),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((s,r)=>{const o=ko(s.visible)||s.visible?s.size:{type:"invisible",cachedVisibleSize:s.size},a=s.view;this.doAddView(a,o,r,!0)}),this._contentSize=this.viewItems.reduce((s,r)=>s+r.size,0),this.saveProportions())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,s){this.doAddView(e,t,i,s)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let s=0;for(let r=0;r<this.viewItems.length;r++){const o=this.viewItems[r],a=this.proportions[r];typeof a=="number"?s+=a:e-=o.size}for(let r=0;r<this.viewItems.length;r++){const o=this.viewItems[r],a=this.proportions[r];typeof a=="number"&&s>0&&(o.size=$o(Math.round(a*e/s),o.minimumSize,o.maximumSize))}}else{const s=ya(this.viewItems.length),r=s.filter(a=>this.viewItems[a].priority===1),o=s.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,r,o)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const s=this.sashItems.findIndex(a=>a.sash===e),r=Pu(ge(this.el.ownerDocument.body,"keydown",a=>o(this.sashDragState.current,a.altKey)),ge(this.el.ownerDocument.body,"keyup",()=>o(this.sashDragState.current,!1))),o=(a,l)=>{const c=this.viewItems.map(p=>p.size);let u=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(s===this.sashItems.length-1){const g=this.viewItems[s];u=(g.minimumSize-g.size)/2,h=(g.maximumSize-g.size)/2}else{const g=this.viewItems[s+1];u=(g.size-g.maximumSize)/2,h=(g.size-g.minimumSize)/2}let d,f;if(!l){const p=ya(s,-1),g=ya(s+1,this.viewItems.length),m=p.reduce((L,E)=>L+(this.viewItems[E].minimumSize-c[E]),0),_=p.reduce((L,E)=>L+(this.viewItems[E].viewMaximumSize-c[E]),0),b=g.length===0?Number.POSITIVE_INFINITY:g.reduce((L,E)=>L+(c[E]-this.viewItems[E].minimumSize),0),w=g.length===0?Number.NEGATIVE_INFINITY:g.reduce((L,E)=>L+(c[E]-this.viewItems[E].viewMaximumSize),0),C=Math.max(m,w),S=Math.min(b,_),x=this.findFirstSnapIndex(p),k=this.findFirstSnapIndex(g);if(typeof x=="number"){const L=this.viewItems[x],E=Math.floor(L.viewMinimumSize/2);d={index:x,limitDelta:L.visible?C-E:C+E,size:L.size}}if(typeof k=="number"){const L=this.viewItems[k],E=Math.floor(L.viewMinimumSize/2);f={index:k,limitDelta:L.visible?S+E:S-E,size:L.size}}}this.sashDragState={start:a,current:a,index:s,sizes:c,minDelta:u,maxDelta:h,alt:l,snapBefore:d,snapAfter:f,disposable:r}};o(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:s,alt:r,minDelta:o,maxDelta:a,snapBefore:l,snapAfter:c}=this.sashDragState;this.sashDragState.current=e;const u=e-i,h=this.resize(t,u,s,void 0,void 0,o,a,l,c);if(r){const d=t===this.sashItems.length-1,f=this.viewItems.map(w=>w.size),p=d?t:t+1,g=this.viewItems[p],m=g.size-g.maximumSize,_=g.size-g.minimumSize,b=d?t-1:t+1;this.resize(b,-h,f,void 0,void 0,m,_)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=$o(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==kp.Idle)throw new Error("Cant modify splitview");this.state=kp.Busy;try{const i=ya(this.viewItems.length).filter(a=>a!==e),s=[...i.filter(a=>this.viewItems[a].priority===1),e],r=i.filter(a=>this.viewItems[a].priority===2),o=this.viewItems[e];t=Math.round(t),t=$o(t,o.minimumSize,Math.min(o.maximumSize,this.size)),o.size=t,this.relayout(s,r)}finally{this.state=kp.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=$o(i,a.minimumSize,a.maximumSize);const s=ya(this.viewItems.length),r=s.filter(a=>this.viewItems[a].priority===1),o=s.filter(a=>this.viewItems[a].priority===2);this.relayout(r,o)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,s){if(this.state!==kp.Idle)throw new Error("Cant modify splitview");this.state=kp.Busy;try{const r=Pe(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(r):this.viewContainer.insertBefore(r,this.viewContainer.children.item(i));const o=e.onDidChange(d=>this.onViewChange(u,d)),a=lt(()=>r.remove()),l=Pu(o,a);let c;typeof t=="number"?c=t:(t.type==="auto"&&(this.areViewsDistributed()?t={type:"distribute"}:t={type:"split",index:t.index}),t.type==="split"?c=this.getViewSize(t.index)/2:t.type==="invisible"?c={cachedVisibleSize:t.cachedVisibleSize}:c=e.minimumSize);const u=this.orientation===0?new okt(r,e,c,l):new akt(r,e,c,l);if(this.viewItems.splice(i,0,u),this.viewItems.length>1){const d={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},f=this.orientation===0?new Qr(this.sashContainer,{getHorizontalSashTop:L=>this.getSashPosition(L),getHorizontalSashWidth:this.getSashOrthogonalSize},{...d,orientation:1}):new Qr(this.sashContainer,{getVerticalSashLeft:L=>this.getSashPosition(L),getVerticalSashHeight:this.getSashOrthogonalSize},{...d,orientation:0}),p=this.orientation===0?L=>({sash:f,start:L.startY,current:L.currentY,alt:L.altKey}):L=>({sash:f,start:L.startX,current:L.currentX,alt:L.altKey}),m=Oe.map(f.onDidStart,p)(this.onSashStart,this),b=Oe.map(f.onDidChange,p)(this.onSashChange,this),C=Oe.map(f.onDidEnd,()=>this.sashItems.findIndex(L=>L.sash===f))(this.onSashEnd,this),S=f.onDidReset(()=>{const L=this.sashItems.findIndex(N=>N.sash===f),E=ya(L,-1),A=ya(L+1,this.viewItems.length),I=this.findFirstSnapIndex(E),T=this.findFirstSnapIndex(A);typeof I=="number"&&!this.viewItems[I].visible||typeof T=="number"&&!this.viewItems[T].visible||this._onDidSashReset.fire(L)}),x=Pu(m,b,C,S,f),k={sash:f,disposable:x};this.sashItems.splice(i-1,0,k)}r.appendChild(e.element);let h;typeof t!="number"&&t.type==="split"&&(h=[t.index]),s||this.relayout([i],h),!s&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}finally{this.state=kp.Idle}}relayout(e,t){const i=this.viewItems.reduce((s,r)=>s+r.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map(u=>u.size),s,r,o=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,c){if(e<0||e>=this.viewItems.length)return 0;const u=ya(e,-1),h=ya(e+1,this.viewItems.length);if(r)for(const k of r)U7(u,k),U7(h,k);if(s)for(const k of s)hP(u,k),hP(h,k);const d=u.map(k=>this.viewItems[k]),f=u.map(k=>i[k]),p=h.map(k=>this.viewItems[k]),g=h.map(k=>i[k]),m=u.reduce((k,L)=>k+(this.viewItems[L].minimumSize-i[L]),0),_=u.reduce((k,L)=>k+(this.viewItems[L].maximumSize-i[L]),0),b=h.length===0?Number.POSITIVE_INFINITY:h.reduce((k,L)=>k+(i[L]-this.viewItems[L].minimumSize),0),w=h.length===0?Number.NEGATIVE_INFINITY:h.reduce((k,L)=>k+(i[L]-this.viewItems[L].maximumSize),0),C=Math.max(m,w,o),S=Math.min(b,_,a);let x=!1;if(l){const k=this.viewItems[l.index],L=t>=l.limitDelta;x=L!==k.visible,k.setVisible(L,l.size)}if(!x&&c){const k=this.viewItems[c.index],L=t<c.limitDelta;x=L!==k.visible,k.setVisible(L,c.size)}if(x)return this.resize(e,t,i,s,r,o,a);t=$o(t,C,S);for(let k=0,L=t;k<d.length;k++){const E=d[k],A=$o(f[k]+L,E.minimumSize,E.maximumSize),I=A-f[k];L-=I,E.size=A}for(let k=0,L=t;k<p.length;k++){const E=p[k],A=$o(g[k]-L,E.minimumSize,E.maximumSize),I=A-g[k];L+=I,E.size=A}return t}distributeEmptySpace(e){const t=this.viewItems.reduce((a,l)=>a+l.size,0);let i=this.size-t;const s=ya(this.viewItems.length-1,-1),r=s.filter(a=>this.viewItems[a].priority===1),o=s.filter(a=>this.viewItems[a].priority===2);for(const a of o)U7(s,a);for(const a of r)hP(s,a);typeof e=="number"&&hP(s,e);for(let a=0;i!==0&&a<s.length;a++){const l=this.viewItems[s[a]],c=$o(l.size+i,l.minimumSize,l.maximumSize),u=c-l.size;i-=u,l.size=c}}layoutViews(){this._contentSize=this.viewItems.reduce((t,i)=>t+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),s=[...this.viewItems].reverse();e=!1;const r=s.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const o=s.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l<this.sashItems.length;l++){const{sash:c}=this.sashItems[l],u=this.viewItems[l];a+=u.size;const h=!(t[l]&&o[l+1]),d=!(i[l]&&r[l+1]);if(h&&d){const f=ya(l,-1),p=ya(l+1,this.viewItems.length),g=this.findFirstSnapIndex(f),m=this.findFirstSnapIndex(p),_=typeof g=="number"&&!this.viewItems[g].visible,b=typeof m=="number"&&!this.viewItems[m].visible;_&&r[l]&&(a>0||this.startSnappingEnabled)?c.state=1:b&&t[l]&&(a<this._contentSize||this.endSnappingEnabled)?c.state=2:c.state=0}else h&&!d?c.state=1:!h&&d?c.state=2:c.state=3}}getSashPosition(e){let t=0;for(let i=0;i<this.sashItems.length;i++)if(t+=this.viewItems[i].size,this.sashItems[i].sash===e)return t;return 0}findFirstSnapIndex(e){for(const t of e){const i=this.viewItems[t];if(i.visible&&i.snap)return t}for(const t of e){const i=this.viewItems[t];if(i.visible&&i.maximumSize-i.minimumSize>0)return;if(!i.visible&&i.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=e===void 0?i.size:Math.min(e,i.size),t=t===void 0?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)==null||e.disposable.dispose(),Yi(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}const W3=class W3{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=W3.TemplateId,this.renderedTemplates=new Set;const s=new Map(t.map(r=>[r.templateId,r]));this.renderers=[];for(const r of e){const o=s.get(r.templateId);if(!o)throw new Error(`Table cell renderer for template id ${r.templateId} not found.`);this.renderers.push(o)}}renderTemplate(e){const t=ke(e,Pe(".monaco-table-tr")),i=[],s=[];for(let o=0;o<this.columns.length;o++){const a=this.renderers[o],l=ke(t,Pe(".monaco-table-td",{"data-col-index":o}));l.style.width=`${this.getColumnSize(o)}px`,i.push(l),s.push(a.renderTemplate(l))}const r={container:e,cellContainers:i,cellTemplateData:s};return this.renderedTemplates.add(r),r}renderElement(e,t,i,s){for(let r=0;r<this.columns.length;r++){const a=this.columns[r].project(e);this.renderers[r].renderElement(a,t,i.cellTemplateData[r],s)}}disposeElement(e,t,i,s){for(let r=0;r<this.columns.length;r++){const o=this.renderers[r];if(o.disposeElement){const l=this.columns[r].project(e);o.disposeElement(l,t,i.cellTemplateData[r],s)}}}disposeTemplate(e){for(let t=0;t<this.columns.length;t++)this.renderers[t].disposeTemplate(e.cellTemplateData[t]);kr(e.container),this.renderedTemplates.delete(e)}layoutColumn(e,t){for(const{cellContainers:i}of this.renderedTemplates)i[e].style.width=`${t}px`}};W3.TemplateId="row";let V4=W3;function lkt(n){return{getHeight(e){return n.getHeight(e)},getTemplateId(){return V4.TemplateId}}}class ckt extends ue{get minimumSize(){return this.column.minimumWidth??120}get maximumSize(){return this.column.maximumWidth??Number.POSITIVE_INFINITY}get onDidChange(){return this.column.onDidChangeWidthConstraints??Oe.None}constructor(e,t){super(),this.column=e,this.index=t,this._onDidLayout=new oe,this.onDidLayout=this._onDidLayout.event,this.element=Pe(".monaco-table-th",{"data-col-index":t},e.label),e.tooltip&&this._register(_d().setupManagedHover(ua("mouse"),this.element,e.tooltip))}layout(e){this._onDidLayout.fire([this.index,e])}}const V3=class V3{get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onDidScroll(){return this.list.onDidScroll}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}get scrollHeight(){return this.list.scrollHeight}get renderHeight(){return this.list.renderHeight}get onDidDispose(){return this.list.onDidDispose}constructor(e,t,i,s,r,o){this.virtualDelegate=i,this.domId=`table_id_${++V3.InstanceCount}`,this.disposables=new be,this.cachedWidth=0,this.cachedHeight=0,this.domNode=ke(t,Pe(`.monaco-table.${this.domId}`));const a=s.map((u,h)=>this.disposables.add(new ckt(u,h))),l={size:a.reduce((u,h)=>u+h.column.weight,0),views:a.map(u=>({size:u.column.weight,view:u}))};this.splitview=this.disposables.add(new GTe(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const c=new V4(s,r,u=>this.splitview.getViewSize(u));this.list=this.disposables.add(new yc(e,this.domNode,lkt(i),[c],o)),Oe.any(...a.map(u=>u.onDidLayout))(([u,h])=>c.layoutColumn(u,h),null,this.disposables),this.splitview.onDidSashReset(u=>{const h=s.reduce((f,p)=>f+p.weight,0),d=s[u].weight/h*this.cachedWidth;this.splitview.resizeView(u,d)},null,this.disposables),this.styleElement=fc(this.domNode),this.style(vwt)}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { + top: ${this.virtualDelegate.headerRowHeight+1}px; + height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); + }`),this.styleElement.textContent=t.join(` +`),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}};V3.InstanceCount=0;let Mq=V3;class LL extends bc{constructor(e){super(),this._onChange=this._register(new oe),this.onChange=this._onChange.event,this._onKeyDown=this._register(new oe),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const t=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,t.push(...ft.asClassNameArray(this._icon))),this._opts.actionClassName&&t.push(...this._opts.actionClassName.split(" ")),this._checked&&t.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register(_d().setupManagedHover(e.hoverDelegate??ua("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...t),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,i=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),i.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,i=>{if(i.keyCode===10||i.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),i.preventDefault(),i.stopPropagation();return}this._onKeyDown.fire(i)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}const ukt=v("caseDescription","Match Case"),hkt=v("wordsDescription","Match Whole Word"),dkt=v("regexDescription","Use Regular Expression");class XTe extends LL{constructor(e){super({icon:Ne.caseSensitive,title:ukt+e.appendTitle,isChecked:e.isChecked,hoverDelegate:e.hoverDelegate??ua("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class YTe extends LL{constructor(e){super({icon:Ne.wholeWord,title:hkt+e.appendTitle,isChecked:e.isChecked,hoverDelegate:e.hoverDelegate??ua("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class ZTe extends LL{constructor(e){super({icon:Ne.regex,title:dkt+e.appendTitle,isChecked:e.isChecked,hoverDelegate:e.hoverDelegate??ua("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class fkt{constructor(e,t=0,i=e.length,s=t-1){this.items=e,this.start=t,this.end=i,this.index=s}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class pkt{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new fkt(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const yE=Pe;let gkt=class extends bc{constructor(e,t,i){super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new oe),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=this.options.tooltip??(this.placeholder||""),this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=ke(e,yE(".monaco-inputbox.idle"));const s=this.options.flexibleHeight?"textarea":"input",r=ke(this.element,yE(".ibwrapper"));if(this.input=ke(r,yE(s+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=ke(r,yE("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new NEe(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),ke(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(l=>this.input.scrollTop=l.scrollTop));const o=this._register(new li(e.ownerDocument,"selectionchange")),a=Oe.filter(o.event,()=>{const l=e.ownerDocument.getSelection();return(l==null?void 0:l.anchorNode)===r});this._register(a(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new uc(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.hover?this.hover.update(e):this.hover=this._register(_d().setupManagedHover(ua("mouse"),this.input,e))}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:ig(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return FB(this.input)}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){const e=this.input.selectionStart;if(e===null)return null;const t=this.input.selectionEnd??e;return{start:e,end:t}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){if(this.state==="open"&&lc(this.message,e))return;this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${Cg(i.border,"transparent")}`,this.message.content&&(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),e==null?void 0:e.type}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=Ja(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:s=>{if(!this.message)return null;e=ke(s,yE(".monaco-inputbox-container")),t();const r={inline:!0,className:"monaco-inputbox-message"},o=this.message.formatContent?Kyt(this.message.content,r):qyt(this.message.content,r);o.classList.add(this.classForType(this.message.type));const a=this.stylesForType(this.message.type);return o.style.backgroundColor=a.background??"",o.style.color=a.foreground??"",o.style.border=a.border?`1px solid ${a.border}`:"",ke(e,o),null},onHide:()=>{this.state="closed"},layout:t});let i;this.message.type===3?i=v("alertErrorMessage","Error: {0}",this.message.content):this.message.type===2?i=v("alertWarningMessage","Warning: {0}",this.message.content):i=v("alertInfoMessage","Info: {0}",this.message.content),yl(i),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?" ":"";(e+i).replace(/\u000c/g,"")?this.mirror.textContent=e+i:this.mirror.innerText=" ",this.layout()}applyStyles(){const e=this.options.inputBoxStyles,t=e.inputBackground??"",i=e.inputForeground??"",s=e.inputBorder??"";this.element.style.backgroundColor=t,this.element.style.color=i,this.input.style.backgroundColor="inherit",this.input.style.color=i,this.element.style.border=`1px solid ${Cg(s,"transparent")}`}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=ig(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,s=t.selectionEnd,r=t.value;i!==null&&s!==null&&(this.value=r.substr(0,i)+e+r.substr(s),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)==null||e.dispose(),super.dispose()}};class QTe extends gkt{constructor(e,t,i){const s=v({key:"history.inputbox.hint.suffix.noparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field ends in a closing parenthesis ")", for example "Filter (e.g. text, !exclude)". The character inserted into the final string is ⇅ to represent the up and down arrow keys.']}," or {0} for history","⇅"),r=v({key:"history.inputbox.hint.suffix.inparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field does NOT end in a closing parenthesis (eg. "Find"). The character inserted into the final string is ⇅ to represent the up and down arrow keys.']}," ({0} for history)","⇅");super(e,t,i),this._onDidFocus=this._register(new oe),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new oe),this.onDidBlur=this._onDidBlur.event,this.history=new pkt(i.history,100);const o=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(r)&&this.history.getHistory().length){const a=this.placeholder.endsWith(")")?s:r,l=this.placeholder+a;i.showPlaceholderOnFocus&&!FB(this.input)?this.placeholder=l:this.setPlaceHolder(l)}};this.observer=new MutationObserver((a,l)=>{a.forEach(c=>{c.target.textContent||o()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>o()),this.onblur(this.input,()=>{const a=l=>{if(this.placeholder.endsWith(l)){const c=this.placeholder.slice(0,this.placeholder.length-l.length);return i.showPlaceholderOnFocus?this.placeholder=c:this.setPlaceHolder(c),!0}else return!1};a(r)||a(s)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=e??"",jf(this.value?this.value:v("clearedInput","Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,jf(this.value))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const mkt=v("defaultLabel","input");class JTe extends bc{constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new rr),this.additionalToggles=[],this._onDidOptionChange=this._register(new oe),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new oe),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new oe),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new oe),this._onKeyUp=this._register(new oe),this._onCaseSensitiveKeyDown=this._register(new oe),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new oe),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||mkt,this.showCommonFindToggles=!!i.showCommonFindToggles;const s=i.appendCaseSensitiveLabel||"",r=i.appendWholeWordsLabel||"",o=i.appendRegexLabel||"",a=i.history||[],l=!!i.flexibleHeight,c=!!i.flexibleWidth,u=i.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new QTe(this.domNode,t,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:i.showHistoryHint,flexibleHeight:l,flexibleWidth:c,flexibleMaxHeight:u,inputBoxStyles:i.inputBoxStyles}));const h=this._register(rx());if(this.showCommonFindToggles){this.regex=this._register(new ZTe({appendTitle:o,isChecked:!1,hoverDelegate:h,...i.toggleStyles})),this._register(this.regex.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(f=>{this._onRegexKeyDown.fire(f)})),this.wholeWords=this._register(new YTe({appendTitle:r,isChecked:!1,hoverDelegate:h,...i.toggleStyles})),this._register(this.wholeWords.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new XTe({appendTitle:s,isChecked:!1,hoverDelegate:h,...i.toggleStyles})),this._register(this.caseSensitive.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(f=>{this._onCaseSensitiveKeyDown.fire(f)}));const d=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,f=>{if(f.equals(15)||f.equals(17)||f.equals(9)){const p=d.indexOf(this.domNode.ownerDocument.activeElement);if(p>=0){let g=-1;f.equals(17)?g=(p+1)%d.length:f.equals(15)&&(p===0?g=d.length-1:g=p-1),f.equals(9)?(d[p].blur(),this.inputBox.focus()):g>=0&&d[g].focus(),ci.stop(f,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(i==null?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(ge(this.inputBox.inputElement,"compositionstart",d=>{this.imeSessionInProgress=!0})),this._register(ge(this.inputBox.inputElement,"compositionend",d=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,d=>this._onKeyDown.fire(d)),this.onkeyup(this.inputBox.inputElement,d=>this._onKeyUp.fire(d)),this.oninput(this.inputBox.inputElement,d=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,d=>this._onMouseDown.fire(d))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(e=this.regex)==null||e.enable(),(t=this.wholeWords)==null||t.enable(),(i=this.caseSensitive)==null||i.enable();for(const s of this.additionalToggles)s.enable()}disable(){var e,t,i;this.domNode.classList.add("disabled"),this.inputBox.disable(),(e=this.regex)==null||e.disable(),(t=this.wholeWords)==null||t.disable(),(i=this.caseSensitive)==null||i.disable();for(const s of this.additionalToggles)s.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new be;for(const t of e??[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(i=>{this._onDidOptionChange.fire(i),!i&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,i,s;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=(((t=this.caseSensitive)==null?void 0:t.width())??0)+(((i=this.wholeWords)==null?void 0:i.width())??0)+(((s=this.regex)==null?void 0:s.width())??0)+this.additionalToggles.reduce((r,o)=>r+o.width(),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e;return((e=this.caseSensitive)==null?void 0:e.checked)??!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e;return((e=this.wholeWords)==null?void 0:e.checked)??!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e;return((e=this.regex)==null?void 0:e.checked)??!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)==null||e.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}var Vl;(function(n){n[n.Expanded=0]="Expanded",n[n.Collapsed=1]="Collapsed",n[n.PreserveOrExpanded=2]="PreserveOrExpanded",n[n.PreserveOrCollapsed=3]="PreserveOrCollapsed"})(Vl||(Vl={}));var lb;(function(n){n[n.Unknown=0]="Unknown",n[n.Twistie=1]="Twistie",n[n.Element=2]="Element",n[n.Filter=3]="Filter"})(lb||(lb={}));class Yl extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class $ie{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}function zie(n){return typeof n=="object"&&"visibility"in n&&"data"in n}function bD(n){switch(n){case!0:return 1;case!1:return 0;default:return n}}function qW(n){return typeof n.collapsible=="boolean"}class _kt{constructor(e,t,i,s={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new xN,this._onDidChangeCollapseState=new oe,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new oe,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new oe,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new $u(Pxe),this.collapseByDefault=typeof s.collapseByDefault>"u"?!1:s.collapseByDefault,this.allowNonCollapsibleParents=s.allowNonCollapsibleParents??!1,this.filter=s.filter,this.autoExpandSingleChildren=typeof s.autoExpandSingleChildren>"u"?!1:s.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=hi.empty(),s={}){if(e.length===0)throw new Yl(this.user,"Invalid tree location");s.diffIdentityProvider?this.spliceSmart(s.diffIdentityProvider,e,t,i,s):this.spliceSimple(e,t,i,s)}spliceSmart(e,t,i,s=hi.empty(),r,o=r.diffDepth??0){const{parentNode:a}=this.getParentNodeWithListIndex(t);if(!a.lastDiffIds)return this.spliceSimple(t,i,s,r);const l=[...s],c=t[t.length-1],u=new cf({getElements:()=>a.lastDiffIds},{getElements:()=>[...a.children.slice(0,c),...l,...a.children.slice(c+i)].map(g=>e.getId(g.element).toString())}).ComputeDiff(!1);if(u.quitEarly)return a.lastDiffIds=void 0,this.spliceSimple(t,i,l,r);const h=t.slice(0,-1),d=(g,m,_)=>{if(o>0)for(let b=0;b<_;b++)g--,m--,this.spliceSmart(e,[...h,g,0],Number.MAX_SAFE_INTEGER,l[m].children,r,o-1)};let f=Math.min(a.children.length,c+i),p=l.length;for(const g of u.changes.sort((m,_)=>_.originalStart-m.originalStart))d(f,p,f-(g.originalStart+g.originalLength)),f=g.originalStart,p=g.modifiedStart-c,this.spliceSimple([...h,f],g.originalLength,hi.slice(l,p,p+g.modifiedLength),r);d(f,p,f)}spliceSimple(e,t,i=hi.empty(),{onDidCreateNode:s,onDidDeleteNode:r,diffIdentityProvider:o}){const{parentNode:a,listIndex:l,revealed:c,visible:u}=this.getParentNodeWithListIndex(e),h=[],d=hi.map(i,S=>this.createTreeNode(S,a,a.visible?1:0,c,h,s)),f=e[e.length-1];let p=0;for(let S=f;S>=0&&S<a.children.length;S--){const x=a.children[S];if(x.visible){p=x.visibleChildIndex;break}}const g=[];let m=0,_=0;for(const S of d)g.push(S),_+=S.renderNodeCount,S.visible&&(S.visibleChildIndex=p+m++);const b=kue(a.children,f,t,g);o?a.lastDiffIds?kue(a.lastDiffIds,f,t,g.map(S=>o.getId(S.element).toString())):a.lastDiffIds=a.children.map(S=>o.getId(S.element).toString()):a.lastDiffIds=void 0;let w=0;for(const S of b)S.visible&&w++;if(w!==0)for(let S=f+g.length;S<a.children.length;S++){const x=a.children[S];x.visible&&(x.visibleChildIndex-=w)}if(a.visibleChildrenCount+=m-w,c&&u){const S=b.reduce((x,k)=>x+(k.visible?k.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,_-S),this.list.splice(l,S,h)}if(b.length>0&&r){const S=x=>{r(x),x.children.forEach(S)};b.forEach(S)}this._onDidSplice.fire({insertedNodes:g,deletedNodes:b});let C=a;for(;C;){if(C.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}C=C.parent}}rerender(e){if(e.length===0)throw new Yl(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:s}=this.getTreeNodeWithListIndex(e);t.visible&&s&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:s}=this.getTreeNodeWithListIndex(e);return i&&s?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);typeof t>"u"&&(t=!i.collapsible);const s={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,s))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const s=this.getTreeNode(e);typeof t>"u"&&(t=!s.collapsed);const r={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,r))}_setCollapseState(e,t){const{node:i,listIndex:s,revealed:r}=this.getTreeNodeWithListIndex(e),o=this._setListNodeCollapseState(i,s,r,t);if(i!==this.root&&this.autoExpandSingleChildren&&o&&!qW(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l<i.children.length;l++)if(i.children[l].visible)if(a>-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return o}_setListNodeCollapseState(e,t,i,s){const r=this._setNodeCollapseState(e,s,!1);if(!i||!e.visible||!r)return r;const o=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=o-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),r}_setNodeCollapseState(e,t,i){let s;if(e===this.root?s=!1:(qW(t)?(s=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(s=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):s=!1,s&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!qW(t)&&t.recursive)for(const r of e.children)s=this._setNodeCollapseState(r,t,!0)||s;return s}expandTo(e){this.eventBufferer.bufferEvents(()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})})}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,s,r,o){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible=="boolean"?e.collapsible:typeof e.collapsed<"u",collapsed:typeof e.collapsed>"u"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,s&&r.push(a);const c=e.children||hi.empty(),u=s&&l!==0&&!a.collapsed;let h=0,d=1;for(const f of c){const p=this.createTreeNode(f,a,l,u,r,o);a.children.push(p),d+=p.renderNodeCount,p.visible&&(p.visibleChildIndex=h++)}return this.allowNonCollapsibleParents||(a.collapsible=a.collapsible||a.children.length>0),a.visibleChildrenCount=h,a.visible=l===2?h>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=d):(a.renderNodeCount=0,s&&r.pop()),o==null||o(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,s=!0){let r;if(e!==this.root){if(r=this._filterNode(e,t),r===0)return e.visible=!1,e.renderNodeCount=0,!1;s&&i.push(e)}const o=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||r!==0){let l=0;for(const c of e.children)a=this._updateNodeAfterFilterChange(c,r,i,s&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=r===2?a:r===1,e.visibility=r),e.visible?e.collapsed||(e.renderNodeCount+=i.length-o):(e.renderNodeCount=0,s&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return typeof i=="boolean"?(e.filterData=void 0,i?1:0):zie(i)?(e.filterData=i.data,bD(i.visibility)):(e.filterData=void 0,bD(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...s]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(s,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...s]=e;if(i<0||i>t.children.length)throw new Yl(this.user,"Invalid tree location");return this.getTreeNode(s,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:s,visible:r}=this.getParentNodeWithListIndex(e),o=e[e.length-1];if(o<0||o>t.children.length)throw new Yl(this.user,"Invalid tree location");const a=t.children[o];return{node:a,listIndex:i,revealed:s,visible:r&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,s=!0,r=!0){const[o,...a]=e;if(o<0||o>t.children.length)throw new Yl(this.user,"Invalid tree location");for(let l=0;l<o;l++)i+=t.children[l].renderNodeCount;return s=s&&!t.collapsed,r=r&&t.visible,a.length===0?{parentNode:t,listIndex:i,revealed:s,visible:r}:this.getParentNodeWithListIndex(a,t.children[o],i+1,s,r)}getNode(e=[]){return this.getTreeNode(e)}getNodeLocation(e){const t=[];let i=e;for(;i.parent;)t.push(i.parent.children.indexOf(i)),i=i.parent;return t.reverse()}getParentNodeLocation(e){if(e.length!==0)return e.length===1?[]:vht(e)[0]}getFirstElementChild(e){const t=this.getTreeNode(e);if(t.children.length!==0)return t.children[0].element}}class vkt extends qN{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function KW(n){return n instanceof qN?new vkt(n):n}class bkt{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=ue.None,this.disposables=new be}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)==null||s.call(i,KW(e),t)}onDragOver(e,t,i,s,r,o=!0){const a=this.dnd.onDragOver(KW(e),t&&t.element,i,s,r),l=this.autoExpandNode!==t;if(l&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>"u")return a;if(l&&typeof a!="boolean"&&a.autoExpand&&(this.autoExpandDisposable=n_(()=>{const f=this.modelProvider(),p=f.getNodeLocation(t);f.isCollapsed(p)&&f.setCollapsed(p,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof a=="boolean"||!a.accept||typeof a.bubble>"u"||a.feedback){if(!o){const f=typeof a=="boolean"?a:a.accept,p=typeof a=="boolean"?void 0:a.effect;return{accept:f,effect:p,feedback:[i]}}return a}if(a.bubble===1){const f=this.modelProvider(),p=f.getNodeLocation(t),g=f.getParentNodeLocation(p),m=f.getNode(g),_=g&&f.getListIndex(g);return this.onDragOver(e,m,_,s,r,!1)}const c=this.modelProvider(),u=c.getNodeLocation(t),h=c.getListIndex(u),d=c.getListRenderCount(u);return{...a,feedback:ya(h,h+d)}}drop(e,t,i,s,r){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(KW(e),t&&t.element,i,s,r)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)==null||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function ykt(n,e){return e&&{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new bkt(n,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element})},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})}},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getSetSize(t){const i=n(),s=i.getNodeLocation(t),r=i.getParentNodeLocation(s);return i.getNode(r).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}}}class Uie{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,s;(s=(i=this.delegate).setDynamicHeight)==null||s.call(i,e.element,t)}}var px;(function(n){n.None="none",n.OnHover="onHover",n.Always="always"})(px||(px={}));class wkt{get elements(){return this._elements}constructor(e,t=[]){this._elements=t,this.disposables=new be,this.onDidChange=Oe.forEach(e,i=>this._elements=i,this.disposables)}dispose(){this.disposables.dispose()}}const wI=class wI{constructor(e,t,i,s,r,o={}){var a;this.renderer=e,this.modelProvider=t,this.activeNodes=s,this.renderedIndentGuides=r,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=wI.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=ue.None,this.disposables=new be,this.templateId=e.templateId,this.updateOptions(o),Oe.map(i,l=>l.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(a=e.onDidChangeTwistieState)==null||a.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent<"u"){const t=$o(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[i,s]of this.renderedNodes)this.renderTreeElement(i,s)}}if(typeof e.renderIndentGuides<"u"){const t=e.renderIndentGuides!==px.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[i,s]of this.renderedNodes)this._renderIndentGuides(i,s);if(this.indentGuidesDisposable.dispose(),t){const i=new be;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=ke(e,Pe(".monaco-tl-row")),i=ke(t,Pe(".monaco-tl-indent")),s=ke(t,Pe(".monaco-tl-twistie")),r=ke(t,Pe(".monaco-tl-contents")),o=this.renderer.renderTemplate(r);return{container:e,indent:i,twistie:s,indentGuidesDisposable:ue.None,templateData:o}}renderElement(e,t,i,s){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,s)}disposeElement(e,t,i,s){var r,o;i.indentGuidesDisposable.dispose(),(o=(r=this.renderer).disposeElement)==null||o.call(r,e,t,i.templateData,s),typeof s=="number"&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=wI.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft=`${i}px`,t.indent.style.width=`${i+this.indent-16}px`,e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded"),t.twistie.classList.remove(...ft.asClassNameArray(Ne.treeItemExpanded));let s=!1;this.renderer.renderTwistie&&(s=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(s||t.twistie.classList.add(...ft.asClassNameArray(Ne.treeItemExpanded)),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if(kr(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new be,s=this.modelProvider();for(;;){const r=s.getNodeLocation(e),o=s.getParentNodeLocation(r);if(!o)break;const a=s.getNode(o),l=Pe(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add(lt(()=>this.renderedIndentGuides.delete(a,l))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(s=>{const r=i.getNodeLocation(s);try{const o=i.getParentNodeLocation(r);s.collapsible&&s.children.length>0&&!s.collapsed?t.add(s):o&&t.add(i.getNode(o))}catch{}}),this.activeIndentNodes.forEach(s=>{t.has(s)||this.renderedIndentGuides.forEach(s,r=>r.classList.remove("active"))}),t.forEach(s=>{this.activeIndentNodes.has(s)||this.renderedIndentGuides.forEach(s,r=>r.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),Yi(this.disposables)}};wI.DefaultIndent=8;let Oq=wI;class Ckt{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new be,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const o=this._filter.filter(e,t);if(typeof o=="boolean"?i=o?1:0:zie(o)?i=bD(o.visibility):i=o,i===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:$h.Default,visibility:i};const s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),r=Array.isArray(s)?s:[s];for(const o of r){const a=o&&o.toString();if(typeof a>"u")return{data:$h.Default,visibility:i};let l;if(this.tree.findMatchType===l0.Contiguous){const c=a.toLowerCase().indexOf(this._lowercasePattern);if(c>-1){l=[Number.MAX_SAFE_INTEGER,0];for(let u=this._lowercasePattern.length;u>0;u--)l.push(c+u-1)}}else l=Jy(this._pattern,this._lowercasePattern,0,a,a.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(l)return this._matchCount++,r.length===1?{data:l,visibility:i}:{data:{label:a,score:l},visibility:i}}return this.tree.findMode===lg.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:$h.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){Yi(this.disposables)}}var lg;(function(n){n[n.Highlight=0]="Highlight",n[n.Filter=1]="Filter"})(lg||(lg={}));var l0;(function(n){n[n.Fuzzy=0]="Fuzzy",n[n.Contiguous=1]="Contiguous"})(l0||(l0={}));let Skt=class{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,s,r,o={}){this.tree=e,this.view=i,this.filter=s,this.contextViewProvider=r,this.options=o,this._pattern="",this.width=0,this._onDidChangeMode=new oe,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new oe,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new oe,this._onDidChangeOpenState=new oe,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new be,this.disposables=new be,this._mode=e.options.defaultFindMode??lg.Highlight,this._matchType=e.options.defaultFindMatchType??l0.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var t,i,s;const e=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&e?this.tree.options.showNotFoundMessage??!0?(t=this.widget)==null||t.showMessage({type:2,content:v("not found","No elements found.")}):(i=this.widget)==null||i.showMessage({type:2}):(s=this.widget)==null||s.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!$h.isDefault(e.filterData)}layout(e){var t;this.width=e,(t=this.widget)==null||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}};function xkt(n,e){return n.position===e.position&&eDe(n,e)}function eDe(n,e){return n.node.element===e.node.element&&n.startIndex===e.startIndex&&n.height===e.height&&n.endIndex===e.endIndex}class Lkt{constructor(e=[]){this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return In(this.stickyNodes,e.stickyNodes,xkt)}lastNodePartiallyVisible(){if(this.count===0)return!1;const e=this.stickyNodes[this.count-1];if(this.count===1)return e.position!==0;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!In(this.stickyNodes,e.stickyNodes,eDe)||this.count===0)return!1;const t=this.stickyNodes[this.count-1],i=e.stickyNodes[e.count-1];return t.position!==i.position}}class Ekt{constrainStickyScrollNodes(e,t,i){for(let s=0;s<e.length;s++){const r=e[s];if(r.position+r.height>i||s>=t)return e.slice(0,s)}return e}}let $fe=class extends ue{constructor(e,t,i,s,r,o={}){super(),this.tree=e,this.model=t,this.view=i,this.treeDelegate=r,this.maxWidgetViewRatio=.4;const a=this.validateStickySettings(o);this.stickyScrollMaxItemCount=a.stickyScrollMaxItemCount,this.stickyScrollDelegate=o.stickyScrollDelegate??new Ekt,this._widget=this._register(new kkt(i.getScrollableElement(),i,e,s,r,o.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(i.onDidScroll(()=>this.update())),this._register(i.onDidChangeContentHeight(()=>this.update())),this._register(e.onDidChangeCollapseState(()=>this.update())),this.update()}get height(){return this._widget.height}getNodeAtHeight(e){let t;if(e===0?t=this.view.firstVisibleIndex:t=this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(0);if(!e||this.tree.scrollTop===0){this._widget.setState(void 0);return}const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let i=e,s=0,r=this.getNextStickyNode(i,void 0,s);for(;r&&(t.push(r),s+=r.height,!(t.length<=this.stickyScrollMaxItemCount&&(i=this.getNextVisibleNode(r),!i)));)r=this.getNextStickyNode(i,r.node,s);const o=this.constrainStickyNodes(t);return o.length?new Lkt(o):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,i){const s=this.getAncestorUnderPrevious(e,t);if(s&&!(s===e&&(!this.nodeIsUncollapsedParent(e)||this.nodeTopAlignsWithStickyNodesBottom(e,i))))return this.createStickyScrollNode(s,i)}nodeTopAlignsWithStickyNodesBottom(e,t){const i=this.getNodeIndex(e),s=this.view.getElementTop(i),r=t;return this.view.scrollTop===s-r}createStickyScrollNode(e,t){const i=this.treeDelegate.getHeight(e),{startIndex:s,endIndex:r}=this.getNodeRange(e),o=this.calculateStickyNodePosition(r,t,i);return{node:e,position:o,height:i,startIndex:s,endIndex:r}}getAncestorUnderPrevious(e,t=void 0){let i=e,s=this.getParentNode(i);for(;s;){if(s===t)return i;i=s,s=this.getParentNode(i)}if(t===void 0)return i}calculateStickyNodePosition(e,t,i){let s=this.view.getRelativeTop(e);if(s===null&&this.view.firstVisibleIndex===e&&e+1<this.view.length){const c=this.treeDelegate.getHeight(this.view.element(e)),u=this.view.getRelativeTop(e+1);s=u?u-c/this.view.renderHeight:null}if(s===null)return t;const r=this.view.element(e),o=this.treeDelegate.getHeight(r),l=s*this.view.renderHeight+o;return t+i>l&&t<=l?l-i:t}constrainStickyNodes(e){if(e.length===0)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,i=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&i.position+i.height<=t)return e;const s=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!s.length)return[];const r=s[s.length-1];if(s.length>this.stickyScrollMaxItemCount||r.position+r.height>t)throw new Error("stickyScrollDelegate violates constraints");return s}getParentNode(e){const t=this.model.getNodeLocation(e),i=this.model.getParentNodeLocation(t);return i?this.model.getNode(i):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),i=this.model.getListIndex(t);if(i<0)throw new Error("Node not found in tree");const s=this.model.getListRenderCount(t),r=i+s-1;return{startIndex:i,endIndex:r}}nodePositionTopBelowWidget(e){const t=[];let i=this.getParentNode(e);for(;i;)t.push(i),i=this.getParentNode(i);let s=0;for(let r=0;r<t.length&&r<this.stickyScrollMaxItemCount;r++)s+=this.treeDelegate.getHeight(t[r]);return s}domFocus(){this._widget.domFocus()}focusedLast(){return this._widget.focusedLast()}updateOptions(e={}){if(!e.stickyScrollMaxItemCount)return;const t=this.validateStickySettings(e);this.stickyScrollMaxItemCount!==t.stickyScrollMaxItemCount&&(this.stickyScrollMaxItemCount=t.stickyScrollMaxItemCount,this.update())}validateStickySettings(e){let t=7;return typeof e.stickyScrollMaxItemCount=="number"&&(t=Math.max(e.stickyScrollMaxItemCount,1)),{stickyScrollMaxItemCount:t}}},kkt=class{constructor(e,t,i,s,r,o){this.view=t,this.tree=i,this.treeRenderers=s,this.treeDelegate=r,this.accessibilityProvider=o,this._previousElements=[],this._previousStateDisposables=new be,this._rootDomNode=Pe(".monaco-tree-sticky-container.empty"),e.appendChild(this._rootDomNode);const a=Pe(".monaco-tree-sticky-container-shadow");this._rootDomNode.appendChild(a),this.stickyScrollFocus=new Ikt(this._rootDomNode,t),this.onDidChangeHasFocus=this.stickyScrollFocus.onDidChangeHasFocus,this.onContextMenu=this.stickyScrollFocus.onContextMenu}get height(){if(!this._previousState)return 0;const e=this._previousState.stickyNodes[this._previousState.count-1];return e.position+e.height}setState(e){const t=!!this._previousState&&this._previousState.count>0,i=!!e&&e.count>0;if(!t&&!i||t&&i&&this._previousState.equal(e))return;if(t!==i&&this.setVisible(i),!i){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const s=e.stickyNodes[e.count-1];if(this._previousState&&e.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${s.position}px`;else{this._previousStateDisposables.clear();const r=Array(e.count);for(let o=e.count-1;o>=0;o--){const a=e.stickyNodes[o],{element:l,disposable:c}=this.createElement(a,o,e.count);r[o]=l,this._rootDomNode.appendChild(l),this._previousStateDisposables.add(c)}this.stickyScrollFocus.updateElements(r,e),this._previousElements=r}this._previousState=e,this._rootDomNode.style.height=`${s.position+s.height}px`}createElement(e,t,i){const s=e.startIndex,r=document.createElement("div");r.style.top=`${e.position}px`,this.tree.options.setRowHeight!==!1&&(r.style.height=`${e.height}px`),this.tree.options.setRowLineHeight!==!1&&(r.style.lineHeight=`${e.height}px`),r.classList.add("monaco-tree-sticky-row"),r.classList.add("monaco-list-row"),r.setAttribute("data-index",`${s}`),r.setAttribute("data-parity",s%2===0?"even":"odd"),r.setAttribute("id",this.view.getElementID(s));const o=this.setAccessibilityAttributes(r,e.node.element,t,i),a=this.treeDelegate.getTemplateId(e.node),l=this.treeRenderers.find(d=>d.templateId===a);if(!l)throw new Error(`No renderer found for template id ${a}`);let c=e.node;c===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(c=new Proxy(e.node,{}));const u=l.renderTemplate(r);l.renderElement(c,e.startIndex,u,e.height);const h=lt(()=>{o.dispose(),l.disposeElement(c,e.startIndex,u,e.height),l.disposeTemplate(u),r.remove()});return{element:r,disposable:h}}setAccessibilityAttributes(e,t,i,s){if(!this.accessibilityProvider)return ue.None;this.accessibilityProvider.getSetSize&&e.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t,i,s))),this.accessibilityProvider.getPosInSet&&e.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t,i))),this.accessibilityProvider.getRole&&e.setAttribute("role",this.accessibilityProvider.getRole(t)??"treeitem");const r=this.accessibilityProvider.getAriaLabel(t),o=r&&typeof r!="string"?r:Uc(r),a=Lt(c=>{const u=c.readObservable(o);u?e.setAttribute("aria-label",u):e.removeAttribute("aria-label")});typeof r=="string"||r&&e.setAttribute("aria-label",r.get());const l=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);return typeof l=="number"&&e.setAttribute("aria-level",`${l}`),e.setAttribute("aria-selected",String(!1)),a}setVisible(e){this._rootDomNode.classList.toggle("empty",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class Ikt extends ue{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new oe,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new oe,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this._register(ge(this.container,"focus",()=>this.onFocus())),this._register(ge(this.container,"blur",()=>this.onBlur())),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(i=>this.onKeyDown(i))),this._register(this.view.onMouseDown(i=>this.onMouseDown(i))),this._register(this.view.onContextMenu(i=>this.handleContextMenu(i)))}handleContextMenu(e){const t=e.browserEvent.target;if(!sD(t)&&!qk(t)){this.focusedLast()&&this.view.domFocus();return}if(!Op(e.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const o=this.state.stickyNodes.findIndex(a=>{var l;return a.node.element===((l=e.element)==null?void 0:l.element)});if(o===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(o);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const s=this.state.stickyNodes[this.focusedIndex].node.element,r=this.elements[this.focusedIndex];this._onContextMenu.fire({element:s,anchor:r,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state){if(e.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if(e.key==="ArrowDown"||e.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const t=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([t]),this.scrollNodeUnderWidget(t,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}}onMouseDown(e){const t=e.browserEvent.target;!sD(t)&&!qk(t)||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&t.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(t&&t.count!==e.length)throw new Error("Sticky scroll focus received illigel state");const i=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const s=$o(i,0,t.count-1);this.setFocus(s)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(e),!(e<t.count-1)&&t.lastNodePartiallyVisible()){const i=t.stickyNodes[e];this.scrollNodeUnderWidget(i.endIndex+1,t)}}scrollNodeUnderWidget(e,t){const i=t.stickyNodes[t.count-1],s=t.count>1?t.stickyNodes[t.count-2]:void 0,r=this.view.getElementTop(e),o=s?s.position+s.height+i.height:i.height;this.view.scrollTop=r-o}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error("addFocus() can not remove focus");if(!this.state&&e>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&e>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){this.toggleElementActiveFocus(e,t&&this.domHasFocus),this.toggleElementPassiveFocus(e,t)}toggleCurrentElementActiveFocus(e){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],e)}toggleElementActiveFocus(e,t){e.classList.toggle("focused",t)}toggleElementPassiveFocus(e,t){e.classList.toggle("passive-focused",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",e)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function BP(n){let e=lb.Unknown;return F7(n.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?e=lb.Twistie:F7(n.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?e=lb.Element:F7(n.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(e=lb.Filter),{browserEvent:n.browserEvent,element:n.element?n.element.element:null,target:e}}function Tkt(n){const e=sD(n.browserEvent.target);return{element:n.element?n.element.element:null,browserEvent:n.browserEvent,anchor:n.anchor,isStickyScroll:e}}function EM(n,e){e(n),n.children.forEach(t=>EM(t,e))}class GW{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new oe,this.onDidChange=this._onDidChange.event}set(e,t){!(t!=null&&t.__forceEvent)&&In(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const s=this;this._onDidChange.fire({get elements(){return s.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const l=this.createNodeSet(),c=u=>l.delete(u);t.forEach(u=>EM(u,c)),this.set([...l.values()]);return}const i=new Set,s=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>EM(l,s));const r=new Map,o=l=>r.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>EM(l,o));const a=[];for(const l of this.nodes){const c=this.identityProvider.getId(l.element).toString();if(!i.has(c))a.push(l);else{const h=r.get(c);h&&h.visible&&a.push(h)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class Dkt extends tIe{constructor(e,t,i){super(e),this.tree=t,this.stickyScrollProvider=i}onViewPointer(e){if(Zke(e.browserEvent.target)||E1(e.browserEvent.target)||qE(e.browserEvent.target)||e.browserEvent.isHandledByList)return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,s=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,r=qk(e.browserEvent.target);let o=!1;if(r?o=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?o=this.tree.expandOnlyOnTwistieClick(t.element):o=!!this.tree.expandOnlyOnTwistieClick,r)this.handleStickyScrollMouseEvent(e,t);else{if(o&&!s&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e)}if(t.collapsible&&(!r||s)){const a=this.tree.getNodeLocation(t),l=e.browserEvent.altKey;if(this.tree.setFocus([a]),this.tree.toggleCollapsed(a,l),s){e.browserEvent.isHandledByList=!0;return}}r||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if(dwt(e.browserEvent.target)||fwt(e.browserEvent.target))return;const i=this.stickyScrollProvider();if(!i)throw new Error("Sticky scroll controller not found");const s=this.list.indexOf(t),r=this.list.getElementTop(s),o=i.nodePositionTopBelowWidget(t);this.tree.scrollTop=r-o,this.list.domFocus(),this.list.setFocus([s]),this.list.setSelection([s])}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}onMouseDown(e){const t=e.browserEvent.target;if(!sD(t)&&!qk(t)){super.onMouseDown(e);return}}onContextMenu(e){const t=e.browserEvent.target;if(!sD(t)&&!qk(t)){super.onContextMenu(e);return}}}class Nkt extends yc{constructor(e,t,i,s,r,o,a,l){super(e,t,i,s,l),this.focusTrait=r,this.selectionTrait=o,this.anchorTrait=a}createMouseController(e){return new Dkt(this,e.tree,e.stickyScrollProvider)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const s=[],r=[];let o;i.forEach((a,l)=>{this.focusTrait.has(a)&&s.push(e+l),this.selectionTrait.has(a)&&r.push(e+l),this.anchorTrait.has(a)&&(o=e+l)}),s.length>0&&super.setFocus(Vg([...super.getFocus(),...s])),r.length>0&&super.setSelection(Vg([...super.getSelection(),...r])),typeof o=="number"&&super.setAnchor(o)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(s=>this.element(s)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(s=>this.element(s)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class tDe{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return Oe.filter(Oe.map(this.view.onMouseDblClick,BP),e=>e.target!==lb.Filter)}get onMouseOver(){return Oe.map(this.view.onMouseOver,BP)}get onMouseOut(){return Oe.map(this.view.onMouseOut,BP)}get onContextMenu(){var e;return Oe.any(Oe.filter(Oe.map(this.view.onContextMenu,Tkt),t=>!t.isStickyScroll),((e=this.stickyScrollController)==null?void 0:e.onContextMenu)??Oe.None)}get onPointer(){return Oe.map(this.view.onPointer,BP)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return Oe.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e;return((e=this.findController)==null?void 0:e.mode)??lg.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e;return((e=this.findController)==null?void 0:e.matchType)??l0.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,s,r={}){this._user=e,this._options=r,this.eventBufferer=new xN,this.onDidChangeFindOpenState=Oe.None,this.onDidChangeStickyScrollFocused=Oe.None,this.disposables=new be,this._onWillRefilter=new oe,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new oe,this.treeDelegate=new Uie(i);const o=new Jce,a=new Jce,l=this.disposables.add(new wkt(a.event)),c=new Fee;this.renderers=s.map(p=>new Oq(p,()=>this.model,o.event,l,c,r));for(const p of this.renderers)this.disposables.add(p);let u;r.keyboardNavigationLabelProvider&&(u=new Ckt(this,r.keyboardNavigationLabelProvider,r.filter),r={...r,filter:u},this.disposables.add(u)),this.focus=new GW(()=>this.view.getFocusedElements()[0],r.identityProvider),this.selection=new GW(()=>this.view.getSelectedElements()[0],r.identityProvider),this.anchor=new GW(()=>this.view.getAnchorElement(),r.identityProvider),this.view=new Nkt(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...ykt(()=>this.model,r),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(e,this.view,r),o.input=this.model.onDidChangeCollapseState;const h=Oe.forEach(this.model.onDidSplice,p=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(p),this.selection.onDidModelSplice(p)})},this.disposables);h(()=>null,null,this.disposables);const d=this.disposables.add(new oe),f=this.disposables.add(new $u(0));if(this.disposables.add(Oe.any(h,this.focus.onDidChange,this.selection.onDidChange)(()=>{f.trigger(()=>{const p=new Set;for(const g of this.focus.getNodes())p.add(g);for(const g of this.selection.getNodes())p.add(g);d.fire([...p.values()])})})),a.input=d.event,r.keyboardSupport!==!1){const p=Oe.chain(this.view.onKeyDown,g=>g.filter(m=>!E1(m.target)).map(m=>new Ji(m)));Oe.chain(p,g=>g.filter(m=>m.keyCode===15))(this.onLeftArrow,this,this.disposables),Oe.chain(p,g=>g.filter(m=>m.keyCode===17))(this.onRightArrow,this,this.disposables),Oe.chain(p,g=>g.filter(m=>m.keyCode===10))(this.onSpace,this,this.disposables)}if((r.findWidgetEnabled??!0)&&r.keyboardNavigationLabelProvider&&r.contextViewProvider){const p=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new Skt(this,this.model,this.view,u,r.contextViewProvider,p),this.focusNavigationFilter=g=>this.findController.shouldAllowFocus(g),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=Oe.None,this.onDidChangeFindMatchType=Oe.None;r.enableStickyScroll&&(this.stickyScrollController=new $fe(this,this.model,this.view,this.renderers,this.treeDelegate,r),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=fc(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===px.Always)}updateOptions(e={}){var t;this._options={...this._options,...e};for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)==null||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===px.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new $fe(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=Oe.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(t=this.stickyScrollController)==null||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(e){this.view.ariaLabel=e}domFocus(){var e;(e=this.stickyScrollController)!=null&&e.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),t_(t)&&((i=this.findController)==null||i.layout(t))}style(e){const t=`.${this.view.domId}`,i=[];e.treeIndentGuidesStroke&&(i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeInactiveIndentGuidesStroke}; }`),i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`));const s=e.treeStickyScrollBackground??e.listBackground;s&&(i.push(`.monaco-list${t} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${s}; }`),i.push(`.monaco-list${t} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${s}; }`)),e.treeStickyScrollBorder&&i.push(`.monaco-list${t} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${e.treeStickyScrollBorder}; }`),e.treeStickyScrollShadow&&i.push(`.monaco-list${t} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${e.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),e.listFocusForeground&&(i.push(`.monaco-list${t}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),i.push(`.monaco-list${t}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const r=Cg(e.listFocusAndSelectionOutline,Cg(e.listSelectionOutline,e.listFocusOutline??""));r&&(i.push(`.monaco-list${t}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${r}; outline-offset: -1px;}`),i.push(`.monaco-list${t}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),e.listFocusOutline&&(i.push(`.monaco-list${t}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),i.push(`.monaco-list${t}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),i.push(`.monaco-workbench.context-menu-visible .monaco-list${t}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),i.push(`.monaco-workbench.context-menu-visible .monaco-list${t}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),i.push(`.monaco-workbench.context-menu-visible .monaco-list${t}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=i.join(` +`),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e,t=!1){return this.model.setCollapsed(e,void 0,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(r=>this.model.getNode(r));this.selection.set(i,t);const s=e.map(r=>this.model.getListIndex(r)).filter(r=>r>-1);this.view.setSelection(s,t,!0)})}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(r=>this.model.getNode(r));this.focus.set(i,t);const s=e.map(r=>this.model.getListIndex(r)).filter(r=>r>-1);this.view.setFocus(s,t,!0)})}focusNext(e=1,t=!1,i,s=Op(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(e,t,i,s)}focusPrevious(e=1,t=!1,i,s=Op(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(e,t,i,s)}focusNextPage(e,t=Op(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(e,t)}focusPreviousPage(e,t=Op(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(e,t,()=>{var i;return((i=this.stickyScrollController)==null?void 0:i.height)??0})}focusLast(e,t=Op(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusLast(e,t)}focusFirst(e,t=Op(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(e,t)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);if(i!==-1)if(!this.stickyScrollController)this.view.reveal(i,t);else{const s=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(i,t,s)}}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!0)){const o=this.model.getParentNodeLocation(s);if(!o)return;const a=this.model.getListIndex(o);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!1)){if(!i.children.some(l=>l.visible))return;const[o]=this.view.getFocus(),a=o+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i),r=e.browserEvent.altKey;this.model.setCollapsed(s,void 0,r)}dispose(){var e;Yi(this.disposables),(e=this.stickyScrollController)==null||e.dispose(),this.view.dispose()}}class jie{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new _kt(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(s,r){return i.sorter.compare(s.element,r.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=hi.empty(),i={}){const s=this.getElementLocation(e);this._setChildren(s,this.preserveCollapseState(t),i)}_setChildren(e,t=hi.empty(),i){const s=new Set,r=new Set,o=l=>{var u;if(l.element===null)return;const c=l;if(s.add(c.element),this.nodes.set(c.element,c),this.identityProvider){const h=this.identityProvider.getId(c.element).toString();r.add(h),this.nodesByIdentity.set(h,c)}(u=i.onDidCreateNode)==null||u.call(i,c)},a=l=>{var u;if(l.element===null)return;const c=l;if(s.has(c.element)||this.nodes.delete(c.element),this.identityProvider){const h=this.identityProvider.getId(c.element).toString();r.has(h)||this.nodesByIdentity.delete(h)}(u=i.onDidDeleteNode)==null||u.call(i,c)};this.model.splice([...e,0],Number.MAX_VALUE,t,{...i,onDidCreateNode:o,onDidDeleteNode:a})}preserveCollapseState(e=hi.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),hi.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const o=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(o)}if(!i){let o;return typeof t.collapsed>"u"?o=void 0:t.collapsed===Vl.Collapsed||t.collapsed===Vl.PreserveOrCollapsed?o=!0:t.collapsed===Vl.Expanded||t.collapsed===Vl.PreserveOrExpanded?o=!1:o=!!t.collapsed,{...t,children:this.preserveCollapseState(t.children),collapsed:o}}const s=typeof t.collapsible=="boolean"?t.collapsible:i.collapsible;let r;return typeof t.collapsed>"u"||t.collapsed===Vl.PreserveOrCollapsed||t.collapsed===Vl.PreserveOrExpanded?r=i.collapsed:t.collapsed===Vl.Collapsed?r=!0:t.collapsed===Vl.Expanded?r=!1:r=!!t.collapsed,{...t,collapsible:s,collapsed:r,children:this.preserveCollapseState(t.children)}})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getElementLocation(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new Yl(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new Yl(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new Yl(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),s=this.model.getParentNodeLocation(i);return this.model.getNode(s).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new Yl(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function kM(n){const e=[n.element],t=n.incompressible||!1;return{element:{elements:e,incompressible:t},children:hi.map(hi.from(n.children),kM),collapsible:n.collapsible,collapsed:n.collapsed}}function IM(n){const e=[n.element],t=n.incompressible||!1;let i,s;for(;[s,i]=hi.consume(hi.from(n.children),2),!(s.length!==1||s[0].incompressible);)n=s[0],e.push(n.element);return{element:{elements:e,incompressible:t},children:hi.map(hi.concat(s,i),IM),collapsible:n.collapsible,collapsed:n.collapsed}}function Fq(n,e=0){let t;return e<n.element.elements.length-1?t=[Fq(n,e+1)]:t=hi.map(hi.from(n.children),i=>Fq(i,0)),e===0&&n.element.incompressible?{element:n.element.elements[e],children:t,incompressible:!0,collapsible:n.collapsible,collapsed:n.collapsed}:{element:n.element.elements[e],children:t,collapsible:n.collapsible,collapsed:n.collapsed}}function zfe(n){return Fq(n,0)}function iDe(n,e,t){return n.element===e?{...n,children:t}:{...n,children:hi.map(hi.from(n.children),i=>iDe(i,e,t))}}const Akt=n=>({getId(e){return e.elements.map(t=>n.getId(t).toString()).join("\0")}});class Pkt{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new jie(e,t,i),this.enabled=typeof i.compressionEnabled>"u"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e,t=hi.empty(),i){const s=i.diffIdentityProvider&&Akt(i.diffIdentityProvider);if(e===null){const p=hi.map(t,this.enabled?IM:kM);this._setChildren(null,p,{diffIdentityProvider:s,diffDepth:1/0});return}const r=this.nodes.get(e);if(!r)throw new Yl(this.user,"Unknown compressed tree node");const o=this.model.getNode(r),a=this.model.getParentNodeLocation(r),l=this.model.getNode(a),c=zfe(o),u=iDe(c,e,t),h=(this.enabled?IM:kM)(u),d=i.diffIdentityProvider?(p,g)=>i.diffIdentityProvider.getId(p)===i.diffIdentityProvider.getId(g):void 0;if(In(h.element.elements,o.element.elements,d)){this._setChildren(r,h.children||hi.empty(),{diffIdentityProvider:s,diffDepth:1});return}const f=l.children.map(p=>p===o?h:p);this._setChildren(l.element,f,{diffIdentityProvider:s,diffDepth:o.depth-l.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,s=hi.map(i,zfe),r=hi.map(s,e?IM:kM);this._setChildren(null,r,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const s=new Set,r=a=>{for(const l of a.element.elements)s.add(l),this.nodes.set(l,a.element)},o=a=>{for(const l of a.element.elements)s.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,{...i,onDidCreateNode:r,onDidDeleteNode:o})}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(typeof e>"u")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getCompressedNode(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new Yl(this.user,`Tree element not found: ${e}`);return t}}const Rkt=n=>n[n.length-1];class qie{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new qie(this.unwrapper,e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e,t){this.unwrapper=e,this.node=t}}function Mkt(n,e){return{splice(t,i,s){e.splice(t,i,s.map(r=>n.map(r)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function Okt(n,e){return{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(n(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(n(t),i)}}}}class Fkt{get onDidSplice(){return Oe.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return Oe.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return Oe.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||Rkt;const s=r=>this.elementMapper(r.elements);this.nodeMapper=new $ie(r=>new qie(s,r)),this.model=new Pkt(e,Mkt(this.nodeMapper,t),Okt(s,i))}setChildren(e,t=hi.empty(),i={}){this.model.setChildren(e,t,i)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t>"u"?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var Bkt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r};class Kie extends tDe{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,s,r={}){super(e,t,i,s,r),this.user=e}setChildren(e,t=hi.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new jie(e,t,i)}}class nDe{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,i){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){let r=this.stickyScrollDelegate.getCompressedNode(e);r||(r=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),r.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,s)):(i.compressedTreeNode=r,this.renderer.renderCompressedElements(r,t,i.data,s))}disposeElement(e,t,i,s){var r,o,a,l;i.compressedTreeNode?(o=(r=this.renderer).disposeCompressedElements)==null||o.call(r,i.compressedTreeNode,t,i.data,s):(l=(a=this.renderer).disposeElement)==null||l.call(a,e,t,i.data,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}Bkt([gs],nDe.prototype,"compressedTreeNodeProvider",null);class Wkt{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,i){if(this.compressedStickyNodes.clear(),e.length===0)return[];for(let s=0;s<e.length;s++){const r=e[s],o=r.position+r.height;if(s+1<e.length&&o+e[s+1].height>i||s>=t-1&&t<e.length){const l=e.slice(0,s),c=e.slice(s),u=this.compressStickyNodes(c);return[...l,u]}}return e}compressStickyNodes(e){if(e.length===0)throw new Error("Can't compress empty sticky nodes");const t=this.modelProvider();if(!t.isCompressionEnabled())return e[0];const i=[];for(let c=0;c<e.length;c++){const u=e[c],h=t.getCompressedTreeNode(u.node.element);if(h.element){if(c!==0&&h.element.incompressible)break;i.push(...h.element.elements)}}if(i.length<2)return e[0];const s=e[e.length-1],r={elements:i,incompressible:!1},o={...s.node,children:[],element:r},a=new Proxy(e[0].node,{}),l={node:a,startIndex:e[0].startIndex,endIndex:s.endIndex,position:e[0].position,height:e[0].height};return this.compressedStickyNodes.set(a,o),l}}function Vkt(n,e){return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(t){let i;try{i=n().getCompressedTreeNode(t)}catch{return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t)}return i.element.elements.length===1?e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t):e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}}}class sDe extends Kie{constructor(e,t,i,s,r={}){const o=()=>this,a=new Wkt(()=>this.model),l=s.map(c=>new nDe(o,a,c));super(e,t,i,l,{...Vkt(o,r),stickyScrollDelegate:a})}setChildren(e,t=hi.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new Fkt(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<"u"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}function XW(n){return{...n,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function Bq(n,e){return e.parent?e.parent===n?!0:Bq(n,e.parent):!1}function Hkt(n,e){return n===e||Bq(n,e)||Bq(e,n)}class Gie{get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new Gie(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class $kt{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(...ft.asClassNameArray(Ne.treeItemLoading)),!0):(t.classList.remove(...ft.asClassNameArray(Ne.treeItemLoading)),!1)}disposeElement(e,t,i,s){var r,o;(o=(r=this.renderer).disposeElement)==null||o.call(r,this.nodeMapper.map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function Ufe(n){return{browserEvent:n.browserEvent,elements:n.elements.map(e=>e.element)}}function jfe(n){return{browserEvent:n.browserEvent,element:n.element&&n.element.element,target:n.target}}class zkt extends qN{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function YW(n){return n instanceof qN?new zkt(n):n}class Ukt{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)==null||s.call(i,YW(e),t)}onDragOver(e,t,i,s,r,o=!0){return this.dnd.onDragOver(YW(e),t&&t.element,i,s,r)}drop(e,t,i,s,r){this.dnd.drop(YW(e),t&&t.element,i,s,r)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)==null||i.call(t,e)}dispose(){this.dnd.dispose()}}function rDe(n){return n&&{...n,collapseByDefault:!0,identityProvider:n.identityProvider&&{getId(e){return n.identityProvider.getId(e.element)}},dnd:n.dnd&&new Ukt(n.dnd),multipleSelectionController:n.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return n.multipleSelectionController.isSelectionSingleChangeEvent({...e,element:e.element})},isSelectionRangeChangeEvent(e){return n.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})}},accessibilityProvider:n.accessibilityProvider&&{...n.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:n.accessibilityProvider.getRole?e=>n.accessibilityProvider.getRole(e.element):()=>"treeitem",isChecked:n.accessibilityProvider.isChecked?e=>{var t;return!!((t=n.accessibilityProvider)!=null&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return n.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return n.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:n.accessibilityProvider.getWidgetRole?()=>n.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:n.accessibilityProvider.getAriaLevel&&(e=>n.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:n.accessibilityProvider.getActiveDescendantId&&(e=>n.accessibilityProvider.getActiveDescendantId(e.element))},filter:n.filter&&{filter(e,t){return n.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:n.keyboardNavigationLabelProvider&&{...n.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(e){return n.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof n.expandOnlyOnTwistieClick>"u"?void 0:typeof n.expandOnlyOnTwistieClick!="function"?n.expandOnlyOnTwistieClick:e=>n.expandOnlyOnTwistieClick(e.element),defaultFindVisibility:e=>e.hasChildren&&e.stale?1:typeof n.defaultFindVisibility=="number"?n.defaultFindVisibility:typeof n.defaultFindVisibility>"u"?2:n.defaultFindVisibility(e.element)}}function Wq(n,e){e(n),n.children.forEach(t=>Wq(t,e))}class oDe{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return Oe.map(this.tree.onDidChangeFocus,Ufe)}get onDidChangeSelection(){return Oe.map(this.tree.onDidChangeSelection,Ufe)}get onMouseDblClick(){return Oe.map(this.tree.onMouseDblClick,jfe)}get onPointer(){return Oe.map(this.tree.onPointer,jfe)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,s,r,o={}){this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new oe,this._onDidChangeNodeSlowState=new oe,this.nodeMapper=new $ie(a=>new Gie(a)),this.disposables=new be,this.identityProvider=o.identityProvider,this.autoExpandSingleChildren=typeof o.autoExpandSingleChildren>"u"?!1:o.autoExpandSingleChildren,this.sorter=o.sorter,this.getDefaultCollapseState=a=>o.collapseByDefault?o.collapseByDefault(a)?Vl.PreserveOrCollapsed:Vl.PreserveOrExpanded:void 0,this.tree=this.createTree(e,t,i,s,o),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=XW({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(e,t,i,s,r){const o=new Uie(i),a=s.map(c=>new $kt(c,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=rDe(r)||{};return new Kie(e,t,o,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}async setInput(e,t){this.refreshPromises.forEach(s=>s.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)}async _updateChildren(e=this.root.element,t=!0,i=!1,s,r){if(typeof this.root.element>"u")throw new Yl(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Oe.toPromise(this._onDidRender.event));const o=this.getDataNode(e);if(await this.refreshAndRenderNode(o,t,s,r),i)try{this.tree.rerender(o)}catch{}}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}async expand(e,t=!1){if(typeof this.root.element>"u")throw new Yl(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Oe.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(await this.root.refreshPromise,await Oe.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i)))return!1;const s=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(await this.root.refreshPromise,await Oe.toPromise(this._onDidRender.event)),s}setSelection(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new Yl(this.user,`Data tree node not found: ${e}`);return t}async refreshAndRenderNode(e,t,i,s){await this.refreshNode(e,t,i),!this.disposables.isDisposed&&this.render(e,i,s)}async refreshNode(e,t,i){let s;if(this.subTreeRefreshPromises.forEach((r,o)=>{!s&&Hkt(o,e)&&(s=r.then(()=>this.refreshNode(e,t,i)))}),s)return s;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,this.setChildren(e,[],t,i);return}return this.doRefreshSubTree(e,t,i)}async doRefreshSubTree(e,t,i){let s;e.refreshPromise=new Promise(r=>s=r),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const r=await this.doRefreshNode(e,t,i);e.stale=!1,await rz.settled(r.map(o=>this.doRefreshSubTree(o,t,i)))}finally{s()}}async doRefreshNode(e,t,i){e.hasChildren=!!this.dataSource.hasChildren(e.element);let s;if(!e.hasChildren)s=Promise.resolve(hi.empty());else{const r=this.doGetChildren(e);if(Kce(r))s=Promise.resolve(r);else{const o=Uf(800);o.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),s=r.finally(()=>o.cancel())}}try{const r=await s;return this.setChildren(e,r,t,i)}catch(r){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),ou(r))return[];throw r}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return Kce(i)?this.processChildren(i):(t=tr(async()=>this.processChildren(await i)),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(Nt))}setChildren(e,t,i,s){const r=[...t];if(e.children.length===0&&r.length===0)return[];const o=new Map,a=new Map;for(const u of e.children)o.set(u.element,u),this.identityProvider&&a.set(u.id,{node:u,collapsed:this.tree.hasElement(u)&&this.tree.isCollapsed(u)});const l=[],c=r.map(u=>{const h=!!this.dataSource.hasChildren(u);if(!this.identityProvider){const g=XW({element:u,parent:e,hasChildren:h,defaultCollapseState:this.getDefaultCollapseState(u)});return h&&g.defaultCollapseState===Vl.PreserveOrExpanded&&l.push(g),g}const d=this.identityProvider.getId(u).toString(),f=a.get(d);if(f){const g=f.node;return o.delete(g.element),this.nodes.delete(g.element),this.nodes.set(u,g),g.element=u,g.hasChildren=h,i?f.collapsed?(g.children.forEach(m=>Wq(m,_=>this.nodes.delete(_.element))),g.children.splice(0,g.children.length),g.stale=!0):l.push(g):h&&!f.collapsed&&l.push(g),g}const p=XW({element:u,parent:e,id:d,hasChildren:h,defaultCollapseState:this.getDefaultCollapseState(u)});return s&&s.viewState.focus&&s.viewState.focus.indexOf(d)>-1&&s.focus.push(p),s&&s.viewState.selection&&s.viewState.selection.indexOf(d)>-1&&s.selection.push(p),(s&&s.viewState.expanded&&s.viewState.expanded.indexOf(d)>-1||h&&p.defaultCollapseState===Vl.PreserveOrExpanded)&&l.push(p),p});for(const u of o.values())Wq(u,h=>this.nodes.delete(h.element));for(const u of c)this.nodes.set(u.element,u);return e.children.splice(0,e.children.length,...c),e!==this.root&&this.autoExpandSingleChildren&&c.length===1&&l.length===0&&(c[0].forceExpanded=!0,l.push(c[0])),l}render(e,t,i){const s=e.children.map(o=>this.asTreeElement(o,t)),r=i&&{...i,diffIdentityProvider:i.diffIdentityProvider&&{getId(o){return i.diffIdentityProvider.getId(o.element)}}};this.tree.setChildren(e===this.root?null:e,s,r),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:e.forceExpanded?(i=!1,e.forceExpanded=!1):i=e.defaultCollapseState,{element:e,children:e.hasChildren?hi.map(e.children,s=>this.asTreeElement(s,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose(),this.tree.dispose()}}class Xie{get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new Xie(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class jkt{constructor(e,t,i,s){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=s,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderCompressedElements(e,t,i,s){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(...ft.asClassNameArray(Ne.treeItemLoading)),!0):(t.classList.remove(...ft.asClassNameArray(Ne.treeItemLoading)),!1)}disposeElement(e,t,i,s){var r,o;(o=(r=this.renderer).disposeElement)==null||o.call(r,this.nodeMapper.map(e),t,i.templateData,s)}disposeCompressedElements(e,t,i,s){var r,o;(o=(r=this.renderer).disposeCompressedElements)==null||o.call(r,this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=Yi(this.disposables)}}function qkt(n){const e=n&&rDe(n);return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(t){return n.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}}}}class Kkt extends oDe{constructor(e,t,i,s,r,o,a={}){super(e,t,i,r,o,a),this.compressionDelegate=s,this.compressibleNodeMapper=new $ie(l=>new Xie(l)),this.filter=a.filter}createTree(e,t,i,s,r){const o=new Uie(i),a=s.map(c=>new jkt(c,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=qkt(r)||{};return new sDe(e,t,o,a,l)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t,i){if(!this.identityProvider)return super.render(e,t);const s=f=>this.identityProvider.getId(f).toString(),r=f=>{const p=new Set;for(const g of f){const m=this.tree.getCompressedTreeNode(g===this.root?null:g);if(m.element)for(const _ of m.element.elements)p.add(s(_.element))}return p},o=r(this.tree.getSelection()),a=r(this.tree.getFocus());super.render(e,t,i);const l=this.getSelection();let c=!1;const u=this.getFocus();let h=!1;const d=f=>{const p=f.element;if(p)for(let g=0;g<p.elements.length;g++){const m=s(p.elements[g].element),_=p.elements[p.elements.length-1].element;o.has(m)&&l.indexOf(_)===-1&&(l.push(_),c=!0),a.has(m)&&u.indexOf(_)===-1&&(u.push(_),h=!0)}f.children.forEach(d)};d(this.tree.getCompressedTreeNode(e===this.root?null:e)),c&&this.setSelection(l),h&&this.setFocus(u)}processChildren(e){return this.filter&&(e=hi.filter(e,t=>{const i=this.filter.filter(t,1),s=Gkt(i);if(s===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return s===1})),super.processChildren(e)}}function Gkt(n){return typeof n=="boolean"?n?1:0:zie(n)?bD(n.visibility):bD(n)}class Xkt extends tDe{constructor(e,t,i,s,r,o={}){super(e,t,i,s,o),this.user=e,this.dataSource=r,this.identityProvider=o.identityProvider}createModel(e,t,i){return new jie(e,t,i)}}new $e("isMac",ni,v("isMac","Whether the operating system is macOS"));new $e("isLinux",ra,v("isLinux","Whether the operating system is Linux"));const B8=new $e("isWindows",qr,v("isWindows","Whether the operating system is Windows")),aDe=new $e("isWeb",N_,v("isWeb","Whether the platform is a web browser"));new $e("isMacNative",ni&&!N_,v("isMacNative","Whether the operating system is macOS on a non-browser platform"));new $e("isIOS",Gh,v("isIOS","Whether the operating system is iOS"));new $e("isMobile",xxe,v("isMobile","Whether the platform is a mobile web browser"));new $e("isDevelopment",!1,!0);new $e("productQualityType","",v("productQualityType","Quality type of VS Code"));const lDe="inputFocus",cDe=new $e(lDe,!1,v("inputFocus","Whether keyboard focus is inside an input box"));var rm=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},gn=function(n,e){return function(t,i){e(t,i,n)}};const uu=ri("listService");class Ykt{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new be,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)==null||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)==null||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new iIe(fc(),"").style(M0)),this.lists.some(s=>s.widget===e))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),FB(e.getHTMLElement())&&this.setLastFocusedList(e),Pu(e.onDidFocus(()=>this.setLastFocusedList(e)),lt(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(s=>s!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const yD=new $e("listScrollAtBoundary","none");ye.or(yD.isEqualTo("top"),yD.isEqualTo("both"));ye.or(yD.isEqualTo("bottom"),yD.isEqualTo("both"));const uDe=new $e("listFocus",!0),hDe=new $e("treestickyScrollFocused",!1),W8=new $e("listSupportsMultiselect",!0),dDe=ye.and(uDe,ye.not(lDe),hDe.negate()),Yie=new $e("listHasSelectionOrFocus",!1),Zie=new $e("listDoubleSelection",!1),Qie=new $e("listMultiSelection",!1),V8=new $e("listSelectionNavigation",!1),Zkt=new $e("listSupportsFind",!0),Jie=new $e("treeElementCanCollapse",!1),Qkt=new $e("treeElementHasParent",!1),ene=new $e("treeElementCanExpand",!1),Jkt=new $e("treeElementHasChild",!1),eIt=new $e("treeFindOpen",!1),fDe="listTypeNavigationMode",pDe="listAutomaticKeyboardNavigation";function H8(n,e){const t=n.createScoped(e.getHTMLElement());return uDe.bindTo(t),t}function $8(n,e){const t=yD.bindTo(n),i=()=>{const s=e.scrollTop===0,r=e.scrollHeight-e.renderHeight-e.scrollTop<1;s&&r?t.set("both"):s?t.set("top"):r?t.set("bottom"):t.set("none")};return i(),e.onDidScroll(i)}const V0="workbench.list.multiSelectModifier",TM="workbench.list.openMode",Yc="workbench.list.horizontalScrolling",tne="workbench.list.defaultFindMode",ine="workbench.list.typeNavigationMode",H4="workbench.list.keyboardNavigation",nd="workbench.list.scrollByPage",nne="workbench.list.defaultFindMatchType",wD="workbench.tree.indent",$4="workbench.tree.renderIndentGuides",sd="workbench.list.smoothScrolling",Zf="workbench.list.mouseWheelScrollSensitivity",Qf="workbench.list.fastScrollSensitivity",z4="workbench.tree.expandMode",U4="workbench.tree.enableStickyScroll",j4="workbench.tree.stickyScrollMaxItemCount";function Jf(n){return n.getValue(V0)==="alt"}class tIt extends ue{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=Jf(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(V0)&&(this.useAltAsMultipleSelectionModifier=Jf(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:Jke(e)}isSelectionRangeChangeEvent(e){return eIe(e)}}function z8(n,e){const t=n.get(Xt),i=n.get(Ni),s=new be;return[{...e,keyboardNavigationDelegate:{mightProducePrintableCharacter(o){return i.mightProducePrintableCharacter(o)}},smoothScrolling:!!t.getValue(sd),mouseWheelScrollSensitivity:t.getValue(Zf),fastScrollSensitivity:t.getValue(Qf),multipleSelectionController:e.multipleSelectionController??s.add(new tIt(t)),keyboardNavigationEventFilter:sIt(i),scrollByPage:!!t.getValue(nd)},s]}let qfe=class extends yc{constructor(e,t,i,s,r,o,a,l,c){const u=typeof r.horizontalScrolling<"u"?r.horizontalScrolling:!!l.getValue(Yc),[h,d]=c.invokeFunction(z8,r);super(e,t,i,s,{keyboardSupport:!1,...h,horizontalScrolling:u}),this.disposables.add(d),this.contextKeyService=H8(o,this),this.disposables.add($8(this.contextKeyService,this)),this.listSupportsMultiSelect=W8.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),V8.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this.listHasSelectionOrFocus=Yie.bindTo(this.contextKeyService),this.listDoubleSelection=Zie.bindTo(this.contextKeyService),this.listMultiSelection=Qie.bindTo(this.contextKeyService),this.horizontalScrolling=r.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Jf(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const p=this.getSelection(),g=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(p.length>0||g.length>0),this.listMultiSelection.set(p.length>1),this.listDoubleSelection.set(p.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const p=this.getSelection(),g=this.getFocus();this.listHasSelectionOrFocus.set(p.length>0||g.length>0)})),this.disposables.add(l.onDidChangeConfiguration(p=>{p.affectsConfiguration(V0)&&(this._useAltAsMultipleSelectionModifier=Jf(l));let g={};if(p.affectsConfiguration(Yc)&&this.horizontalScrolling===void 0){const m=!!l.getValue(Yc);g={...g,horizontalScrolling:m}}if(p.affectsConfiguration(nd)){const m=!!l.getValue(nd);g={...g,scrollByPage:m}}if(p.affectsConfiguration(sd)){const m=!!l.getValue(sd);g={...g,smoothScrolling:m}}if(p.affectsConfiguration(Zf)){const m=l.getValue(Zf);g={...g,mouseWheelScrollSensitivity:m}}if(p.affectsConfiguration(Qf)){const m=l.getValue(Qf);g={...g,fastScrollSensitivity:m}}Object.keys(g).length>0&&this.updateOptions(g)})),this.navigator=new gDe(this,{configurationService:l,...r}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?O0(e):M0)}};qfe=rm([gn(5,bt),gn(6,uu),gn(7,Xt),gn(8,ct)],qfe);let Kfe=class extends skt{constructor(e,t,i,s,r,o,a,l,c){const u=typeof r.horizontalScrolling<"u"?r.horizontalScrolling:!!l.getValue(Yc),[h,d]=c.invokeFunction(z8,r);super(e,t,i,s,{keyboardSupport:!1,...h,horizontalScrolling:u}),this.disposables=new be,this.disposables.add(d),this.contextKeyService=H8(o,this),this.disposables.add($8(this.contextKeyService,this.widget)),this.horizontalScrolling=r.horizontalScrolling,this.listSupportsMultiSelect=W8.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),V8.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this._useAltAsMultipleSelectionModifier=Jf(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(l.onDidChangeConfiguration(p=>{p.affectsConfiguration(V0)&&(this._useAltAsMultipleSelectionModifier=Jf(l));let g={};if(p.affectsConfiguration(Yc)&&this.horizontalScrolling===void 0){const m=!!l.getValue(Yc);g={...g,horizontalScrolling:m}}if(p.affectsConfiguration(nd)){const m=!!l.getValue(nd);g={...g,scrollByPage:m}}if(p.affectsConfiguration(sd)){const m=!!l.getValue(sd);g={...g,smoothScrolling:m}}if(p.affectsConfiguration(Zf)){const m=l.getValue(Zf);g={...g,mouseWheelScrollSensitivity:m}}if(p.affectsConfiguration(Qf)){const m=l.getValue(Qf);g={...g,fastScrollSensitivity:m}}Object.keys(g).length>0&&this.updateOptions(g)})),this.navigator=new gDe(this,{configurationService:l,...r}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?O0(e):M0)}dispose(){this.disposables.dispose(),super.dispose()}};Kfe=rm([gn(5,bt),gn(6,uu),gn(7,Xt),gn(8,ct)],Kfe);let Gfe=class extends Mq{constructor(e,t,i,s,r,o,a,l,c,u){const h=typeof o.horizontalScrolling<"u"?o.horizontalScrolling:!!c.getValue(Yc),[d,f]=u.invokeFunction(z8,o);super(e,t,i,s,r,{keyboardSupport:!1,...d,horizontalScrolling:h}),this.disposables.add(f),this.contextKeyService=H8(a,this),this.disposables.add($8(this.contextKeyService,this)),this.listSupportsMultiSelect=W8.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),V8.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this.listHasSelectionOrFocus=Yie.bindTo(this.contextKeyService),this.listDoubleSelection=Zie.bindTo(this.contextKeyService),this.listMultiSelection=Qie.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Jf(c),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const g=this.getSelection(),m=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(g.length>0||m.length>0),this.listMultiSelection.set(g.length>1),this.listDoubleSelection.set(g.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const g=this.getSelection(),m=this.getFocus();this.listHasSelectionOrFocus.set(g.length>0||m.length>0)})),this.disposables.add(c.onDidChangeConfiguration(g=>{g.affectsConfiguration(V0)&&(this._useAltAsMultipleSelectionModifier=Jf(c));let m={};if(g.affectsConfiguration(Yc)&&this.horizontalScrolling===void 0){const _=!!c.getValue(Yc);m={...m,horizontalScrolling:_}}if(g.affectsConfiguration(nd)){const _=!!c.getValue(nd);m={...m,scrollByPage:_}}if(g.affectsConfiguration(sd)){const _=!!c.getValue(sd);m={...m,smoothScrolling:_}}if(g.affectsConfiguration(Zf)){const _=c.getValue(Zf);m={...m,mouseWheelScrollSensitivity:_}}if(g.affectsConfiguration(Qf)){const _=c.getValue(Qf);m={...m,fastScrollSensitivity:_}}Object.keys(m).length>0&&this.updateOptions(m)})),this.navigator=new iIt(this,{configurationService:c,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?O0(e):M0)}dispose(){this.disposables.dispose(),super.dispose()}};Gfe=rm([gn(6,bt),gn(7,uu),gn(8,Xt),gn(9,ct)],Gfe);class sne extends ue{constructor(e,t){super(),this.widget=e,this._onDidOpen=this._register(new oe),this.onDidOpen=this._onDidOpen.event,this._register(Oe.filter(this.widget.onDidChangeSelection,i=>Op(i.browserEvent))(i=>this.onSelectionFromKeyboard(i))),this._register(this.widget.onPointer(i=>this.onPointer(i.element,i.browserEvent))),this._register(this.widget.onMouseDblClick(i=>this.onMouseDblClick(i.element,i.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!="boolean"&&(t!=null&&t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(TM))!=="doubleClick",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(i=>{i.affectsConfiguration(TM)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(TM))!=="doubleClick")}))):this.openOnSingleClick=(t==null?void 0:t.openOnSingleClick)??!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,s=typeof t.pinned=="boolean"?t.pinned:!i;this._open(this.getSelectedElement(),i,s,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const s=t.button===1,r=!0,o=s,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,r,o,a,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const r=!1,o=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,r,o,a,t)}_open(e,t,i,s,r){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:s,element:e,browserEvent:r})}}class gDe extends sne{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class iIt extends sne{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class nIt extends sne{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelection()[0]??void 0}}function sIt(n){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const i=n.softDispatch(t,t.target);return i.kind===1?(e=!0,!1):(e=!1,i.kind===0)}}let Vq=class extends Kie{constructor(e,t,i,s,r,o,a,l,c){const{options:u,getTypeNavigationMode:h,disposable:d}=o.invokeFunction(iA,r);super(e,t,i,s,u),this.disposables.add(d),this.internals=new c0(this,r,h,r.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Vq=rm([gn(5,ct),gn(6,bt),gn(7,uu),gn(8,Xt)],Vq);let Xfe=class extends sDe{constructor(e,t,i,s,r,o,a,l,c){const{options:u,getTypeNavigationMode:h,disposable:d}=o.invokeFunction(iA,r);super(e,t,i,s,u),this.disposables.add(d),this.internals=new c0(this,r,h,r.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Xfe=rm([gn(5,ct),gn(6,bt),gn(7,uu),gn(8,Xt)],Xfe);let Yfe=class extends Xkt{constructor(e,t,i,s,r,o,a,l,c,u){const{options:h,getTypeNavigationMode:d,disposable:f}=a.invokeFunction(iA,o);super(e,t,i,s,r,h),this.disposables.add(f),this.internals=new c0(this,o,d,o.overrideStyles,l,c,u),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles!==void 0&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Yfe=rm([gn(6,ct),gn(7,bt),gn(8,uu),gn(9,Xt)],Yfe);let Hq=class extends oDe{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,s,r,o,a,l,c,u){const{options:h,getTypeNavigationMode:d,disposable:f}=a.invokeFunction(iA,o);super(e,t,i,s,r,h),this.disposables.add(f),this.internals=new c0(this,o,d,o.overrideStyles,l,c,u),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Hq=rm([gn(6,ct),gn(7,bt),gn(8,uu),gn(9,Xt)],Hq);let Zfe=class extends Kkt{constructor(e,t,i,s,r,o,a,l,c,u,h){const{options:d,getTypeNavigationMode:f,disposable:p}=l.invokeFunction(iA,a);super(e,t,i,s,r,o,d),this.disposables.add(p),this.internals=new c0(this,a,f,a.overrideStyles,c,u,h),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Zfe=rm([gn(7,ct),gn(8,bt),gn(9,uu),gn(10,Xt)],Zfe);function mDe(n){const e=n.getValue(tne);if(e==="highlight")return lg.Highlight;if(e==="filter")return lg.Filter;const t=n.getValue(H4);if(t==="simple"||t==="highlight")return lg.Highlight;if(t==="filter")return lg.Filter}function _De(n){const e=n.getValue(nne);if(e==="fuzzy")return l0.Fuzzy;if(e==="contiguous")return l0.Contiguous}function iA(n,e){const t=n.get(Xt),i=n.get(sm),s=n.get(bt),r=n.get(ct),o=()=>{const d=s.getContextKeyValue(fDe);if(d==="automatic")return af.Automatic;if(d==="trigger"||s.getContextKeyValue(pDe)===!1)return af.Trigger;const p=t.getValue(ine);if(p==="automatic")return af.Automatic;if(p==="trigger")return af.Trigger},a=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!t.getValue(Yc),[l,c]=r.invokeFunction(z8,e),u=e.paddingBottom,h=e.renderIndentGuides!==void 0?e.renderIndentGuides:t.getValue($4);return{getTypeNavigationMode:o,disposable:c,options:{keyboardSupport:!1,...l,indent:typeof t.getValue(wD)=="number"?t.getValue(wD):void 0,renderIndentGuides:h,smoothScrolling:!!t.getValue(sd),defaultFindMode:mDe(t),defaultFindMatchType:_De(t),horizontalScrolling:a,scrollByPage:!!t.getValue(nd),paddingBottom:u,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:e.expandOnlyOnTwistieClick??t.getValue(z4)==="doubleClick",contextViewProvider:i,findWidgetStyles:eSt,enableStickyScroll:!!t.getValue(U4),stickyScrollMaxItemCount:Number(t.getValue(j4))}}}let c0=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,s,r,o,a){this.tree=e,this.disposables=[],this.contextKeyService=H8(r,e),this.disposables.push($8(this.contextKeyService,e)),this.listSupportsMultiSelect=W8.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),V8.bindTo(this.contextKeyService).set(!!t.selectionNavigation),this.listSupportFindWidget=Zkt.bindTo(this.contextKeyService),this.listSupportFindWidget.set(t.findWidgetEnabled??!0),this.hasSelectionOrFocus=Yie.bindTo(this.contextKeyService),this.hasDoubleSelection=Zie.bindTo(this.contextKeyService),this.hasMultiSelection=Qie.bindTo(this.contextKeyService),this.treeElementCanCollapse=Jie.bindTo(this.contextKeyService),this.treeElementHasParent=Qkt.bindTo(this.contextKeyService),this.treeElementCanExpand=ene.bindTo(this.contextKeyService),this.treeElementHasChild=Jkt.bindTo(this.contextKeyService),this.treeFindOpen=eIt.bindTo(this.contextKeyService),this.treeStickyScrollFocused=hDe.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Jf(a),this.updateStyleOverrides(s);const c=()=>{const h=e.getFocus()[0];if(!h)return;const d=e.getNode(h);this.treeElementCanCollapse.set(d.collapsible&&!d.collapsed),this.treeElementHasParent.set(!!e.getParentElement(h)),this.treeElementCanExpand.set(d.collapsible&&d.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(h))},u=new Set;u.add(fDe),u.add(pDe),this.disposables.push(this.contextKeyService,o.register(e),e.onDidChangeSelection(()=>{const h=e.getSelection(),d=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(h.length>0||d.length>0),this.hasMultiSelection.set(h.length>1),this.hasDoubleSelection.set(h.length===2)})}),e.onDidChangeFocus(()=>{const h=e.getSelection(),d=e.getFocus();this.hasSelectionOrFocus.set(h.length>0||d.length>0),c()}),e.onDidChangeCollapseState(c),e.onDidChangeModel(c),e.onDidChangeFindOpenState(h=>this.treeFindOpen.set(h)),e.onDidChangeStickyScrollFocused(h=>this.treeStickyScrollFocused.set(h)),a.onDidChangeConfiguration(h=>{let d={};if(h.affectsConfiguration(V0)&&(this._useAltAsMultipleSelectionModifier=Jf(a)),h.affectsConfiguration(wD)){const f=a.getValue(wD);d={...d,indent:f}}if(h.affectsConfiguration($4)&&t.renderIndentGuides===void 0){const f=a.getValue($4);d={...d,renderIndentGuides:f}}if(h.affectsConfiguration(sd)){const f=!!a.getValue(sd);d={...d,smoothScrolling:f}}if(h.affectsConfiguration(tne)||h.affectsConfiguration(H4)){const f=mDe(a);d={...d,defaultFindMode:f}}if(h.affectsConfiguration(ine)||h.affectsConfiguration(H4)){const f=i();d={...d,typeNavigationMode:f}}if(h.affectsConfiguration(nne)){const f=_De(a);d={...d,defaultFindMatchType:f}}if(h.affectsConfiguration(Yc)&&t.horizontalScrolling===void 0){const f=!!a.getValue(Yc);d={...d,horizontalScrolling:f}}if(h.affectsConfiguration(nd)){const f=!!a.getValue(nd);d={...d,scrollByPage:f}}if(h.affectsConfiguration(z4)&&t.expandOnlyOnTwistieClick===void 0&&(d={...d,expandOnlyOnTwistieClick:a.getValue(z4)==="doubleClick"}),h.affectsConfiguration(U4)){const f=a.getValue(U4);d={...d,enableStickyScroll:f}}if(h.affectsConfiguration(j4)){const f=Math.max(1,a.getValue(j4));d={...d,stickyScrollMaxItemCount:f}}if(h.affectsConfiguration(Zf)){const f=a.getValue(Zf);d={...d,mouseWheelScrollSensitivity:f}}if(h.affectsConfiguration(Qf)){const f=a.getValue(Qf);d={...d,fastScrollSensitivity:f}}Object.keys(d).length>0&&e.updateOptions(d)}),this.contextKeyService.onDidChangeContext(h=>{h.affectsSome(u)&&e.updateOptions({typeNavigationMode:i()})})),this.navigator=new nIt(e,{configurationService:a,...t}),this.disposables.push(this.navigator)}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?O0(e):M0)}dispose(){this.disposables=Yi(this.disposables)}};c0=rm([gn(4,bt),gn(5,uu),gn(6,Xt)],c0);const rIt=Vn.as(Qu.Configuration);rIt.registerConfiguration({id:"workbench",order:7,title:v("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[V0]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[v("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),v("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:v({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[TM]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:v({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[Yc]:{type:"boolean",default:!1,description:v("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[nd]:{type:"boolean",default:!1,description:v("list.scrollByPage","Controls whether clicks in the scrollbar scroll page by page.")},[wD]:{type:"number",default:8,minimum:4,maximum:40,description:v("tree indent setting","Controls tree indentation in pixels.")},[$4]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:v("render tree indent guides","Controls whether the tree should render indent guides.")},[sd]:{type:"boolean",default:!1,description:v("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[Zf]:{type:"number",default:1,markdownDescription:v("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[Qf]:{type:"number",default:5,markdownDescription:v("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[tne]:{type:"string",enum:["highlight","filter"],enumDescriptions:[v("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),v("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:v("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[H4]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[v("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),v("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),v("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:v("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:v("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[nne]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[v("defaultFindMatchTypeSettingKey.fuzzy","Use fuzzy matching when searching."),v("defaultFindMatchTypeSettingKey.contiguous","Use contiguous matching when searching.")],default:"fuzzy",description:v("defaultFindMatchTypeSettingKey","Controls the type of matching used when searching lists and trees in the workbench.")},[z4]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:v("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[U4]:{type:"boolean",default:!0,description:v("sticky scroll","Controls whether sticky scrolling is enabled in trees.")},[j4]:{type:"number",minimum:1,default:7,markdownDescription:v("sticky scroll maximum items","Controls the number of sticky elements displayed in the tree when {0} is enabled.","`#workbench.tree.enableStickyScroll#`")},[ine]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:v("typeNavigationMode2","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}});class b_{constructor(e,t,i,s){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=s,this.id=DU.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var t;const e=(t=this.parent.getPreview(this))==null?void 0:t.preview(this.range);return e?v({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"{0} in {1} on line {2} at column {3}",e.value,su(this.uri),this.range.startLineNumber,this.range.startColumn):v("aria.oneReference","in {0} on line {1} at column {2}",su(this.uri),this.range.startLineNumber,this.range.startColumn)}}class oIt{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:s,startColumn:r,endLineNumber:o,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:s,column:r-t}),c=new O(s,l.startColumn,s,r),u=new O(o,a,o,1073741824),h=i.getValueInRange(c).replace(/^\s+/,""),d=i.getValueInRange(e),f=i.getValueInRange(u).replace(/\s+$/,"");return{value:h+d+f,highlight:{start:h.length,end:h.length+d.length}}}}class CD{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new js}dispose(){Yi(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?v("aria.fileReferences.1","1 symbol in {0}, full path {1}",su(this.uri),this.uri.fsPath):v("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,su(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=await e.createModelReference(t.uri);this._previews.set(t.uri,new oIt(i))}catch(i){Nt(i)}return this}}class gl{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new oe,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(gl._compareReferences);let s;for(const r of e)if((!s||!Sn.isEqual(s.uri,r.uri,!0))&&(s=new CD(this,r.uri),this.groups.push(s)),s.children.length===0||gl._compareReferences(r,s.children[s.children.length-1])!==0){const o=new b_(i===r,s,r,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(o),s.children.push(o)}}dispose(){Yi(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new gl(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?v("aria.result.0","No results found"):this.references.length===1?v("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?v("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):v("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let s=i.children.indexOf(e);const r=i.children.length,o=i.parent.groups.length;return o===1||t&&s+1<r||!t&&s>0?(t?s=(s+1)%r:s=(s+r-1)%r,i.children[s]):(s=i.parent.groups.indexOf(i),t?(s=(s+1)%o,i.parent.groups[s].children[0]):(s=(s+o-1)%o,i.parent.groups[s].children[i.parent.groups[s].children.length-1]))}nearestReference(e,t){const i=this.references.map((s,r)=>({idx:r,prefixLen:s_(s.uri.toString(),e.toString()),offsetDist:Math.abs(s.range.startLineNumber-t.lineNumber)*100+Math.abs(s.range.startColumn-t.column)})).sort((s,r)=>s.prefixLen>r.prefixLen?-1:s.prefixLen<r.prefixLen?1:s.offsetDist<r.offsetDist?-1:s.offsetDist>r.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&O.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return Sn.compare(e.uri,t.uri)||O.compareRangesUsingStarts(e.range,t.range)}}class $q{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=ke(e,Pe(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){this.element.textContent=zy(this.countFormat,this.count),this.element.title=zy(this.titleFormat,this.count),this.element.style.backgroundColor=this.styles.badgeBackground??"",this.element.style.color=this.styles.badgeForeground??"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}class I1 extends ue{constructor(e,t){super(),this.options=t,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=(t==null?void 0:t.supportIcons)??!1,this.domNode=ke(e,Pe("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",s){e||(e=""),s&&(e=I1.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&lc(this.highlights,t))&&(this.text=e,this.title=i,this.highlights=t,this.render())}render(){var i,s,r;const e=[];let t=0;for(const o of this.highlights){if(o.end===o.start)continue;if(t<o.start){const c=this.text.substring(t,o.start);this.supportIcons?e.push(...L1(c)):e.push(c),t=o.start}const a=this.text.substring(t,o.end),l=Pe("span.highlight",void 0,...this.supportIcons?L1(a):[a]);o.extraClasses&&l.classList.add(...o.extraClasses),e.push(l),t=o.end}if(t<this.text.length){const o=this.text.substring(t);this.supportIcons?e.push(...L1(o)):e.push(o)}if(Ir(this.domNode,...e),(s=(i=this.options)==null?void 0:i.hoverDelegate)!=null&&s.showNativeHover)this.domNode.title=this.title;else if(!this.customHover&&this.title!==""){const o=((r=this.options)==null?void 0:r.hoverDelegate)??ua("mouse");this.customHover=this._register(_d().setupManagedHover(o,this.domNode,this.title))}else this.customHover&&this.customHover.update(this.title);this.didEverRender=!0}static escapeNewLines(e,t){let i=0,s=0;return e.replace(/\r\n|\r|\n/g,(r,o)=>{s=r===`\r +`?-1:0,o+=i;for(const a of t)a.end<=o||(a.start>=o&&(a.start+=s),a.end>=o&&(a.end+=s));return i+=s,"⏎"})}}class wE{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class q4 extends ue{constructor(e,t){super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new wE(ke(e,Pe(".monaco-icon-label")))),this.labelContainer=ke(this.domNode.element,Pe(".monaco-icon-label-container")),this.nameContainer=ke(this.labelContainer,Pe("span.monaco-icon-name-container")),t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=this._register(new cIt(this.nameContainer,!!t.supportIcons)):this.nameNode=new aIt(this.nameContainer),this.hoverDelegate=(t==null?void 0:t.hoverDelegate)??ua("mouse")}get element(){return this.domNode.element}setLabel(e,t,i){const s=["monaco-icon-label"],r=["monaco-icon-label-container"];let o="";i&&(i.extraClasses&&s.push(...i.extraClasses),i.italic&&s.push("italic"),i.strikethrough&&s.push("strikethrough"),i.disabledCommand&&r.push("disabled"),i.title&&(typeof i.title=="string"?o+=i.title:o+=e));const a=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(i!=null&&i.iconPath){let l;!a||!ir(a)?(l=Pe(".monaco-icon-label-iconpath"),this.domNode.element.prepend(l)):l=a,l.style.backgroundImage=Wg(i==null?void 0:i.iconPath)}else a&&a.remove();if(this.domNode.className=s.join(" "),this.domNode.element.setAttribute("aria-label",o),this.labelContainer.className=r.join(" "),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const l=this.getOrCreateDescriptionNode();l instanceof I1?(l.set(t||"",i?i.descriptionMatches:void 0,void 0,i==null?void 0:i.labelEscapeNewLines),this.setupHover(l.element,i==null?void 0:i.descriptionTitle)):(l.textContent=t&&(i!=null&&i.labelEscapeNewLines)?I1.escapeNewLines(t,[]):t||"",this.setupHover(l.element,(i==null?void 0:i.descriptionTitle)||""),l.empty=!t)}if(i!=null&&i.suffix||this.suffixNode){const l=this.getOrCreateSuffixNode();l.textContent=(i==null?void 0:i.suffix)??""}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)(function(r,o){Da(o)?r.title=Jte(o):o!=null&&o.markdownNotSupportedFallback?r.title=o.markdownNotSupportedFallback:r.removeAttribute("title")})(e,t);else{const s=_d().setupManagedHover(this.hoverDelegate,e,t);s&&this.customHovers.set(e,s)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new wE(yut(this.nameContainer,Pe("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new wE(ke(e.element,Pe("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new wE(ke(this.labelContainer,Pe("span.monaco-icon-description-container"))));(e=this.creationOptions)!=null&&e.supportDescriptionHighlights?this.descriptionNode=this._register(new I1(ke(t.element,Pe("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new wE(ke(t.element,Pe("span.label-description"))))}return this.descriptionNode}}class aIt{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&lc(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=ke(this.container,Pe("a.label-name",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let i=0;i<e.length;i++){const s=e[i],r=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${i}`;ke(this.container,Pe("a.label-name",{id:r,"data-icon-label-count":e.length,"data-icon-label-index":i,role:"treeitem"},s)),i<e.length-1&&ke(this.container,Pe("span.label-separator",void 0,(t==null?void 0:t.separator)||"/"))}}}}function lIt(n,e,t){if(!t)return;let i=0;return n.map(s=>{const r={start:i,end:i+s.length},o=t.map(a=>Zr.intersect(r,a)).filter(a=>!Zr.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=r.end+e.length,o})}class cIt extends ue{constructor(e,t){super(),this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&lc(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new I1(ke(this.container,Pe("a.label-name",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons}))),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||"/",s=lIt(e,i,t==null?void 0:t.matches);for(let r=0;r<e.length;r++){const o=e[r],a=s?s[r]:void 0,l=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${r}`,c=Pe("a.label-name",{id:l,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"});this._register(new I1(ke(this.container,c),{supportIcons:this.supportIcons})).set(o,a,void 0,t==null?void 0:t.labelEscapeNewLines),r<e.length-1&&ke(c,Pe("span.label-separator",void 0,i))}}}}const gx=ri("labelService");var U8=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},j8=function(n,e){return function(t,i){e(t,i,n)}},zq;let Uq=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof gl||e instanceof CD}getChildren(e){if(e instanceof gl)return e.groups;if(e instanceof CD)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};Uq=U8([j8(0,Wa)],Uq);class uIt{getHeight(){return 23}getTemplateId(e){return e instanceof CD?K4.id:G4.id}}let jq=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof b_){const i=(t=e.parent.getPreview(e))==null?void 0:t.preview(e.range);if(i)return i.value}return su(e.uri)}};jq=U8([j8(0,Ni)],jq);class hIt{getId(e){return e instanceof b_?e.id:e.uri}}let qq=class extends ue{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new q4(i,{supportHighlights:!0})),this.badge=new $q(ke(i,Pe(".count")),{},bIe),e.appendChild(i)}set(e,t){const i=_8(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const s=e.children.length;this.badge.setCount(s),s>1?this.badge.setTitleFormat(v("referencesCount","{0} references",s)):this.badge.setTitleFormat(v("referenceCount","{0} reference",s))}};qq=U8([j8(1,gx)],qq);var zb;let K4=(zb=class{constructor(e){this._instantiationService=e,this.templateId=zq.id}renderTemplate(e){return this._instantiationService.createInstance(qq,e)}renderElement(e,t,i){i.set(e.element,jN(e.filterData))}disposeTemplate(e){e.dispose()}},zq=zb,zb.id="FileReferencesRenderer",zb);K4=zq=U8([j8(0,ct)],K4);class dIt extends ue{constructor(e){super(),this.label=this._register(new I1(e))}set(e,t){var s;const i=(s=e.parent.getPreview(e))==null?void 0:s.preview(e.range);if(!i||!i.value)this.label.set(`${su(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:r,highlight:o}=i;t&&!$h.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(r,jN(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(r,[o]))}}}const H3=class H3{constructor(){this.templateId=H3.id}renderTemplate(e){return new dIt(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}};H3.id="OneReferenceRenderer";let G4=H3;class fIt{getWidgetAriaLabel(){return v("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var pIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},_p=function(n,e){return function(t,i){e(t,i,n)}};const $3=class $3{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new be,this._callOnModelChange=new be,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let s=0,r=e.children.length;s<r;s++){const o=e.children[s];this._decorationIgnoreSet.has(o.id)||o.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:o.range,options:$3.DecorationOptions}),i.push(s))}this._editor.changeDecorations(s=>{const r=s.deltaDecorations([],t);for(let o=0;o<r.length;o++)this._decorations.set(r[o],e.children[i[o]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,s]of this._decorations){const r=t.getDecorationRange(i);if(!r)continue;let o=!1;if(!O.equalsRange(r,s.range)){if(O.spansMultipleLines(r))o=!0;else{const a=s.range.endColumn-s.range.startColumn,l=r.endColumn-r.startColumn;a!==l&&(o=!0)}o?(this._decorationIgnoreSet.add(s.id),e.push(i)):s.range=r}}for(let i=0,s=e.length;i<s;i++)this._decorations.delete(e[i]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}};$3.DecorationOptions=At.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});let Kq=$3;class gIt{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,i;try{const s=JSON.parse(e);t=s.ratio,i=s.heightInLines}catch{}return{ratio:t||.7,heightInLines:i||18}}}class mIt extends Hq{}let Gq=class extends B4{constructor(e,t,i,s,r,o,a,l,c,u,h,d){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},o),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=r,this._instantiationService=o,this._peekViewService=a,this._uriLabel=l,this._undoRedoService=c,this._keybindingService=u,this._languageService=h,this._languageConfigurationService=d,this._disposeOnNewModel=new be,this._callOnDispose=new be,this._onDidSelectReference=new oe,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Wi(0,0),this._applyTheme(s.getColorTheme()),this._callOnDispose.add(s.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}dispose(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),Yi(this._preview),Yi(this._previewNotAvailableMessage),Yi(this._tree),Yi(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(JEt)||Ce.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(QEt)||Ce.transparent,primaryHeadingColor:e.getColor(UTe),secondaryHeadingColor:e.getColor(jTe)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}_fillBody(e){this.setCssClass("reference-zone-widget"),this._messageContainer=ke(e,Pe("div.messages")),zo(this._messageContainer),this._splitView=new GTe(e,{orientation:1}),this._previewContainer=ke(e,Pe("div.preview.inline"));const t={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(Ku,this._previewContainer,t,{},this.editor),zo(this._previewContainer),this._previewNotAvailableMessage=new Ah(v("missingPreviewMessage","no preview available"),ea,Ah.DEFAULT_CREATION_OPTIONS,null,this._undoRedoService,this._languageService,this._languageConfigurationService),this._treeContainer=ke(e,Pe("div.ref-tree.inline"));const i={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new fIt,keyboardNavigationLabelProvider:this._instantiationService.createInstance(jq),identityProvider:new hIt,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:ekt}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(os(this._treeContainer,"keydown",r=>{r.equals(9)&&(this._keybindingService.dispatchEvent(r,r.target),r.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(mIt,"ReferencesWidget",this._treeContainer,new uIt,[this._instantiationService.createInstance(K4),this._instantiationService.createInstance(G4)],this._instantiationService.createInstance(Uq),i),this._splitView.addView({onDidChange:Oe.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:r=>{this._preview.layout({height:this._dim.height,width:r})}},W4.Distribute),this._splitView.addView({onDidChange:Oe.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:r=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${r}px`,this._tree.layout(this._dim.height,r)}},W4.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const s=(r,o)=>{r instanceof b_&&(o==="show"&&this._revealReference(r,!1),this._onDidSelectReference.fire({element:r,kind:o,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(r=>{r.sideBySide?s(r.element,"side"):r.editorOptions.pinned?s(r.element,"goto"):s(r.element,"show")})),zo(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new Wi(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=v("noResults","No results"),ol(this._messageContainer),Promise.resolve(void 0)):(zo(this._messageContainer),this._decorationsManager=new Kq(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(t.detail!==2)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),ol(this._treeContainer),ol(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof b_)return e;if(e instanceof CD&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==kt.inMemory?this.setTitle(uvt(e.uri),this._uriLabel.getUriLabel(_8(e.uri))):this.setTitle(v("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const s=await i;if(!this._model){s.dispose();return}Yi(this._previewModelReference);const r=s.object;if(r){const o=this._preview.getModel()===r.textEditorModel?0:1,a=O.lift(e.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(r.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,o)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};Gq=pIt([_p(3,Xs),_p(4,Wa),_p(5,ct),_p(6,zTe),_p(7,gx),_p(8,b8),_p(9,Ni),_p(10,Dn),_p(11,ln)],Gq);var _It=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},dw=function(n,e){return function(t,i){e(t,i,n)}},DM;const H0=new $e("referenceSearchVisible",!1,v("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));var Ub;let u0=(Ub=class{static get(e){return e.getContribution(DM.ID)}constructor(e,t,i,s,r,o,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=s,this._notificationService=r,this._instantiationService=o,this._storageService=a,this._configurationService=l,this._disposables=new be,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=H0.bindTo(i)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)==null||e.dispose(),(t=this._model)==null||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&e.containsPosition(s))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const r="peekViewLayout",o=gIt.fromJSON(this._storageService.get(r,0,"{}"));this._widget=this._instantiationService.createInstance(Gq,this._editor,this._defaultTreeKeyboardSupport,o),this._widget.setTitle(v("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget&&(this._storageService.store(r,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(l=>{const{element:c,kind:u}=l;if(c)switch(u){case"open":(l.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(c,!1,!1);break;case"side":this.openReference(c,!0,!1);break;case"goto":i?this._gotoReference(c,!0):this.openReference(c,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{var c;if(a!==this._requestIdPool||!this._widget){l.dispose();return}return(c=this._model)==null||c.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(v("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const u=this._editor.getModel().uri,h=new se(e.startLineNumber,e.startColumn),d=this._model.nearestReference(u,h);if(d)return this._widget.setSelection(d).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const s=this._model.nextOrPreviousReference(i,e),r=this._editor.hasTextFocus(),o=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),r?this._editor.focus():this._widget&&o&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){var t,i;(t=this._widget)==null||t.dispose(),(i=this._model)==null||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var s;(s=this._widget)==null||s.hide(),this._ignoreModelChangeEvent=!0;const i=O.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:i,selectionSource:"code.jump",pinned:t}},this._editor).then(r=>{if(this._ignoreModelChangeEvent=!1,!r||!this._widget){this.closeWidget();return}if(this._editor===r)this._widget.show(i),this._widget.focusOnReferenceTree();else{const o=DM.get(r),a=this._model.clone();this.closeWidget(),r.focus(),o==null||o.toggleWidget(i,tr(l=>Promise.resolve(a)),this._peekMode??!1)}},r=>{this._ignoreModelChangeEvent=!1,Nt(r)})}openReference(e,t,i){t||this.closeWidget();const{uri:s,range:r}=e;this._editorService.openCodeEditor({resource:s,options:{selection:r,selectionSource:"code.jump",pinned:i}},this._editor,t)}},DM=Ub,Ub.ID="editor.contrib.referencesController",Ub);u0=DM=_It([dw(2,bt),dw(3,wi),dw(4,ms),dw(5,ct),dw(6,Ju),dw(7,Xt)],u0);function $0(n,e){const t=YEt(n);if(!t)return;const i=u0.get(t);i&&e(i)}aa.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Ts(2089,60),when:ye.or(H0,Ma.inPeekEditor),handler(n){$0(n,e=>{e.changeFocusBetweenPreviewAndReferences()})}});aa.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:ye.or(H0,Ma.inPeekEditor),handler(n){$0(n,e=>{e.goToNextOrPreviousReference(!0)})}});aa.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:ye.or(H0,Ma.inPeekEditor),handler(n){$0(n,e=>{e.goToNextOrPreviousReference(!1)})}});di.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");di.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");di.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");di.registerCommand("closeReferenceSearch",n=>$0(n,e=>e.closeWidget()));aa.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:ye.and(Ma.inPeekEditor,ye.not("config.editor.stablePeek"))});aa.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:ye.and(H0,ye.not("config.editor.stablePeek"),ye.or(H.editorTextFocus,cDe.negate()))});aa.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:ye.and(H0,dDe,Jie.negate(),ene.negate()),handler(n){var i;const t=(i=n.get(uu).lastFocusedList)==null?void 0:i.getFocus();Array.isArray(t)&&t[0]instanceof b_&&$0(n,s=>s.revealReference(t[0]))}});aa.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:ye.and(H0,dDe,Jie.negate(),ene.negate()),handler(n){var i;const t=(i=n.get(uu).lastFocusedList)==null?void 0:i.getFocus();Array.isArray(t)&&t[0]instanceof b_&&$0(n,s=>s.openReference(t[0],!0,!0))}});di.registerCommand("openReference",n=>{var i;const t=(i=n.get(uu).lastFocusedList)==null?void 0:i.getFocus();Array.isArray(t)&&t[0]instanceof b_&&$0(n,s=>s.openReference(t[0],!1,!0))});var vDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},GE=function(n,e){return function(t,i){e(t,i,n)}};const rne=new $e("hasSymbols",!1,v("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),q8=ri("ISymbolNavigationService");let Xq=class{constructor(e,t,i,s){this._editorService=t,this._notificationService=i,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=rne.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),(e=this._currentState)==null||e.dispose(),(t=this._currentMessage)==null||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new Yq(this._editorService),s=i.onDidChange(r=>{if(this._ignoreEditorChange)return;const o=this._editorService.getActiveCodeEditor();if(!o)return;const a=o.getModel(),l=o.getPosition();if(!a||!l)return;let c=!1,u=!1;for(const h of t.references)if(Ite(h.uri,a.uri))c=!0,u=u||O.containsPosition(h.range,l);else if(c)break;(!c||!u)&&this.reset()});this._currentState=Pu(i,s)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:O.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var i;(i=this._currentMessage)==null||i.dispose();const e=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),t=e?v("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,e.getLabel()):v("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)}};Xq=vDe([GE(0,bt),GE(1,wi),GE(2,ms),GE(3,Ni)],Xq);fi(q8,Xq,1);Ve(new class extends Gs{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:rne,kbOpts:{weight:100,primary:70}})}runEditorCommand(n,e){return n.get(q8).revealNext(e)}});aa.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:rne,primary:9,handler(n){n.get(q8).reset()}});let Yq=class{constructor(e){this._listener=new Map,this._disposables=new be,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),Yi(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,Pu(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){var t;(t=this._listener.get(e))==null||t.dispose(),this._listener.delete(e)}};Yq=vDe([GE(0,wi)],Yq);function Zq(n,e){return e.uri.scheme===n.uri.scheme?!0:!dz(e.uri,kt.walkThroughSnippet,kt.vscodeChatCodeBlock,kt.vscodeChatCodeCompareBlock,kt.vscodeCopilotBackingChatCodeBlock)}async function nA(n,e,t,i,s){const o=t.ordered(n,i).map(l=>Promise.resolve(s(l,n,e)).then(void 0,c=>{ls(c)})),a=await Promise.all(o);return Qh(a.flat()).filter(l=>Zq(n,l))}function sA(n,e,t,i,s){return nA(e,t,n,i,(r,o,a)=>r.provideDefinition(o,a,s))}function one(n,e,t,i,s){return nA(e,t,n,i,(r,o,a)=>r.provideDeclaration(o,a,s))}function ane(n,e,t,i,s){return nA(e,t,n,i,(r,o,a)=>r.provideImplementation(o,a,s))}function lne(n,e,t,i,s){return nA(e,t,n,i,(r,o,a)=>r.provideTypeDefinition(o,a,s))}function rA(n,e,t,i,s,r){return nA(e,t,n,s,async(o,a,l)=>{var h,d;const c=(h=await o.provideReferences(a,l,{includeDeclaration:!0},r))==null?void 0:h.filter(f=>Zq(a,f));if(!i||!c||c.length!==2)return c;const u=(d=await o.provideReferences(a,l,{includeDeclaration:!1},r))==null?void 0:d.filter(f=>Zq(a,f));return u&&u.length===1?u:c})}async function ap(n){const e=await n(),t=new gl(e,""),i=t.references.map(s=>s.link);return t.dispose(),i}Va("_executeDefinitionProvider",(n,e,t)=>{const i=n.get(Je),s=sA(i.definitionProvider,e,t,!1,Vt.None);return ap(()=>s)});Va("_executeDefinitionProvider_recursive",(n,e,t)=>{const i=n.get(Je),s=sA(i.definitionProvider,e,t,!0,Vt.None);return ap(()=>s)});Va("_executeTypeDefinitionProvider",(n,e,t)=>{const i=n.get(Je),s=lne(i.typeDefinitionProvider,e,t,!1,Vt.None);return ap(()=>s)});Va("_executeTypeDefinitionProvider_recursive",(n,e,t)=>{const i=n.get(Je),s=lne(i.typeDefinitionProvider,e,t,!0,Vt.None);return ap(()=>s)});Va("_executeDeclarationProvider",(n,e,t)=>{const i=n.get(Je),s=one(i.declarationProvider,e,t,!1,Vt.None);return ap(()=>s)});Va("_executeDeclarationProvider_recursive",(n,e,t)=>{const i=n.get(Je),s=one(i.declarationProvider,e,t,!0,Vt.None);return ap(()=>s)});Va("_executeReferenceProvider",(n,e,t)=>{const i=n.get(Je),s=rA(i.referenceProvider,e,t,!1,!1,Vt.None);return ap(()=>s)});Va("_executeReferenceProvider_recursive",(n,e,t)=>{const i=n.get(Je),s=rA(i.referenceProvider,e,t,!1,!0,Vt.None);return ap(()=>s)});Va("_executeImplementationProvider",(n,e,t)=>{const i=n.get(Je),s=ane(i.implementationProvider,e,t,!1,Vt.None);return ap(()=>s)});Va("_executeImplementationProvider_recursive",(n,e,t)=>{const i=n.get(Je),s=ane(i.implementationProvider,e,t,!0,Vt.None);return ap(()=>s)});pr.appendMenuItem(et.EditorContext,{submenu:et.EditorContextPeek,title:v("peek.submenu","Peek"),group:"navigation",order:100});class mx{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof mx||se.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}const bu=class bu extends pd{static all(){return bu._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of hi.wrap(t.menu))(i.id===et.EditorContext||i.id===et.EditorContextPeek)&&(i.when=ye.and(e.precondition,i.when));return t}constructor(e,t){super(bu._patchConfig(t)),this.configuration=e,bu._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,s){if(!t.hasModel())return Promise.resolve(void 0);const r=e.get(ms),o=e.get(wi),a=e.get(B_),l=e.get(q8),c=e.get(Je),u=e.get(ct),h=t.getModel(),d=t.getPosition(),f=mx.is(i)?i:new mx(h,d),p=new v_(t,5),g=LN(this._getLocationModel(c,f.model,f.position,p.token),p.token).then(async m=>{var w;if(!m||p.token.isCancellationRequested)return;yl(m.ariaMessage);let _;if(m.referenceAt(h.uri,d)){const C=this._getAlternativeCommand(t);!bu._activeAlternativeCommands.has(C)&&bu._allSymbolNavigationCommands.has(C)&&(_=bu._allSymbolNavigationCommands.get(C))}const b=m.references.length;if(b===0){if(!this.configuration.muteMessage){const C=h.getWordAtPosition(d);(w=pl.get(t))==null||w.showMessage(this._getNoResultFoundMessage(C),d)}}else if(b===1&&_)bu._activeAlternativeCommands.add(this.desc.id),u.invokeFunction(C=>_.runEditorCommand(C,t,i,s).finally(()=>{bu._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(o,l,t,m,s)},m=>{r.error(m)}).finally(()=>{p.dispose()});return a.showWhile(g,250),g}async _onResult(e,t,i,s,r){const o=this._getGoToPreference(i);if(!(i instanceof Ku)&&(this.configuration.openInPeek||o==="peek"&&s.references.length>1))this._openInPeek(i,s,r);else{const a=s.firstReference(),l=s.references.length>1&&o==="gotoAndPeek",c=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&c?this._openInPeek(c,s,r):s.dispose(),o==="goto"&&t.put(a)}}async _openReference(e,t,i,s,r){let o;if(g1t(i)&&(o=i.targetSelectionRange),o||(o=i.range),!o)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:O.collapseToStart(o),selectionRevealType:3,selectionSource:"code.jump"}},e,s);if(a){if(r){const l=a.getModel(),c=a.createDecorationsCollection([{range:o,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{a.getModel()===l&&c.clear()},350)}return a}}_openInPeek(e,t,i){const s=u0.get(e);s&&e.hasModel()?s.toggleWidget(i??e.getSelection(),tr(r=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}};bu._allSymbolNavigationCommands=new Map,bu._activeAlternativeCommands=new Set;let Kg=bu;class oA extends Kg{async _getLocationModel(e,t,i,s){return new gl(await sA(e.definitionProvider,t,i,!1,s),v("def.title","Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?v("noResultWord","No definition found for '{0}'",e.word):v("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}var F1;nn((F1=class extends oA{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:F1.id,title:{...Ct("actions.goToDecl.label","Go to Definition"),mnemonicTitle:v({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")},precondition:H.hasDefinitionProvider,keybinding:[{when:H.editorTextFocus,primary:70,weight:100},{when:ye.and(H.editorTextFocus,aDe),primary:2118,weight:100}],menu:[{id:et.EditorContext,group:"navigation",order:1.1},{id:et.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),di.registerCommandAlias("editor.action.goToDeclaration",F1.id)}},F1.id="editor.action.revealDefinition",F1));var B1;nn((B1=class extends oA{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:B1.id,title:Ct("actions.goToDeclToSide.label","Open Definition to the Side"),precondition:ye.and(H.hasDefinitionProvider,H.isInEmbeddedEditor.toNegated()),keybinding:[{when:H.editorTextFocus,primary:Ts(2089,70),weight:100},{when:ye.and(H.editorTextFocus,aDe),primary:Ts(2089,2118),weight:100}]}),di.registerCommandAlias("editor.action.openDeclarationToTheSide",B1.id)}},B1.id="editor.action.revealDefinitionAside",B1));var W1;nn((W1=class extends oA{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:W1.id,title:Ct("actions.previewDecl.label","Peek Definition"),precondition:ye.and(H.hasDefinitionProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),keybinding:{when:H.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:et.EditorContextPeek,group:"peek",order:2}}),di.registerCommandAlias("editor.action.previewDeclaration",W1.id)}},W1.id="editor.action.peekDefinition",W1));class bDe extends Kg{async _getLocationModel(e,t,i,s){return new gl(await one(e.declarationProvider,t,i,!1,s),v("decl.title","Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?v("decl.noResultWord","No declaration found for '{0}'",e.word):v("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}var jb;nn((jb=class extends bDe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:jb.id,title:{...Ct("actions.goToDeclaration.label","Go to Declaration"),mnemonicTitle:v({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")},precondition:ye.and(H.hasDeclarationProvider,H.isInEmbeddedEditor.toNegated()),menu:[{id:et.EditorContext,group:"navigation",order:1.3},{id:et.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?v("decl.noResultWord","No declaration found for '{0}'",e.word):v("decl.generic.noResults","No declaration found")}},jb.id="editor.action.revealDeclaration",jb));nn(class extends bDe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:Ct("actions.peekDecl.label","Peek Declaration"),precondition:ye.and(H.hasDeclarationProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),menu:{id:et.EditorContextPeek,group:"peek",order:3}})}});class yDe extends Kg{async _getLocationModel(e,t,i,s){return new gl(await lne(e.typeDefinitionProvider,t,i,!1,s),v("typedef.title","Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?v("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):v("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}var qb;nn((qb=class extends yDe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:qb.ID,title:{...Ct("actions.goToTypeDefinition.label","Go to Type Definition"),mnemonicTitle:v({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")},precondition:H.hasTypeDefinitionProvider,keybinding:{when:H.editorTextFocus,primary:0,weight:100},menu:[{id:et.EditorContext,group:"navigation",order:1.4},{id:et.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},qb.ID="editor.action.goToTypeDefinition",qb));var Kb;nn((Kb=class extends yDe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Kb.ID,title:Ct("actions.peekTypeDefinition.label","Peek Type Definition"),precondition:ye.and(H.hasTypeDefinitionProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),menu:{id:et.EditorContextPeek,group:"peek",order:4}})}},Kb.ID="editor.action.peekTypeDefinition",Kb));class wDe extends Kg{async _getLocationModel(e,t,i,s){return new gl(await ane(e.implementationProvider,t,i,!1,s),v("impl.title","Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?v("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):v("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}var Gb;nn((Gb=class extends wDe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Gb.ID,title:{...Ct("actions.goToImplementation.label","Go to Implementations"),mnemonicTitle:v({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},precondition:H.hasImplementationProvider,keybinding:{when:H.editorTextFocus,primary:2118,weight:100},menu:[{id:et.EditorContext,group:"navigation",order:1.45},{id:et.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},Gb.ID="editor.action.goToImplementation",Gb));var Xb;nn((Xb=class extends wDe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Xb.ID,title:Ct("actions.peekImplementation.label","Peek Implementations"),precondition:ye.and(H.hasImplementationProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),keybinding:{when:H.editorTextFocus,primary:3142,weight:100},menu:{id:et.EditorContextPeek,group:"peek",order:5}})}},Xb.ID="editor.action.peekImplementation",Xb));class CDe extends Kg{_getNoResultFoundMessage(e){return e?v("references.no","No references found for '{0}'",e.word):v("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}nn(class extends CDe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...Ct("goToReferences.label","Go to References"),mnemonicTitle:v({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")},precondition:ye.and(H.hasReferenceProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),keybinding:{when:H.editorTextFocus,primary:1094,weight:100},menu:[{id:et.EditorContext,group:"navigation",order:1.45},{id:et.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,s){return new gl(await rA(e.referenceProvider,t,i,!0,!1,s),v("ref.title","References"))}});nn(class extends CDe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:Ct("references.action.label","Peek References"),precondition:ye.and(H.hasReferenceProvider,Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated()),menu:{id:et.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,s){return new gl(await rA(e.referenceProvider,t,i,!1,!1,s),v("ref.title","References"))}});class vIt extends Kg{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:Ct("label.generic","Go to Any Symbol"),precondition:ye.and(Ma.notInPeekEditor,H.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,s){return new gl(this._references,v("generic.title","Locations"))}_getNoResultFoundMessage(e){return e&&v("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){return this._gotoMultipleBehaviour??e.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}di.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:mt},{name:"position",description:"The position at which to start",constraint:se.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(n,e,t,i,s,r,o)=>{yi(mt.isUri(e)),yi(se.isIPosition(t)),yi(Array.isArray(i)),yi(typeof s>"u"||typeof s=="string"),yi(typeof o>"u"||typeof o=="boolean");const a=n.get(wi),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(Yf(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(c=>{const u=new class extends vIt{_getNoResultFoundMessage(h){return r||super._getNoResultFoundMessage(h)}}({muteMessage:!r,openInPeek:!!o,openToSide:!1},i,s);c.get(ct).invokeFunction(u.run.bind(u),l)})}});di.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:mt},{name:"position",description:"The position at which to start",constraint:se.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(n,e,t,i,s)=>{n.get(an).executeCommand("editor.action.goToLocations",e,t,i,s,void 0,!0)}});di.registerCommand({id:"editor.action.findReferences",handler:(n,e,t)=>{yi(mt.isUri(e)),yi(se.isIPosition(t));const i=n.get(Je),s=n.get(wi);return s.openCodeEditor({resource:e},s.getFocusedCodeEditor()).then(r=>{if(!Yf(r)||!r.hasModel())return;const o=u0.get(r);if(!o)return;const a=tr(c=>rA(i.referenceProvider,r.getModel(),se.lift(t),!1,!1,c).then(u=>new gl(u,v("ref.title","References")))),l=new O(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(o.toggleWidget(l,a,!1))})}});di.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function bIt(n,e,t,i){const s=n.get(Wa),r=n.get(El),o=n.get(an),a=n.get(ct),l=n.get(ms);if(await i.item.resolve(Vt.None),!i.part.location)return;const c=i.part.location,u=[],h=new Set(pr.getMenuItems(et.EditorContext).map(f=>FC(f)?f.command.id:A8()));for(const f of Kg.all())h.has(f.desc.id)&&u.push(new dl(f.desc.id,fl.label(f.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const p=await s.createModelReference(c.uri);try{const g=new mx(p.object.textEditorModel,O.getStartPosition(c.range)),m=i.item.anchor.range;await a.invokeFunction(f.runEditorCommand.bind(f),e,g,m)}finally{p.dispose()}}));if(i.part.command){const{command:f}=i.part;u.push(new nr),u.push(new dl(f.id,f.title,void 0,!0,async()=>{try{await o.executeCommand(f.id,...f.arguments??[])}catch(p){l.notify({severity:y8.Error,source:i.item.provider.displayName,message:p})}}))}const d=e.getOption(128);r.showContextMenu({domForShadowRoot:d?e.getDomNode()??void 0:void 0,getAnchor:()=>{const f=ps(t);return{x:f.left,y:f.top+f.height+8}},getActions:()=>u,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function SDe(n,e,t,i){const r=await n.get(Wa).createModelReference(i.uri);await t.invokeWithinContext(async o=>{const a=e.hasSideBySideModifier,l=o.get(bt),c=Ma.inPeekEditor.getValue(l),u=!a&&t.getOption(89)&&!c;return new oA({openToSide:a,openInPeek:u,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(o,new mx(r.object.textEditorModel,O.getStartPosition(i.range)),O.lift(i.range))}),r.dispose()}var yIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},fw=function(n,e){return function(t,i){e(t,i,n)}},Aw;class X4{constructor(){this._entries=new np(50)}get(e){const t=X4._key(e);return this._entries.get(t)}set(e,t){const i=X4._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const xDe=ri("IInlayHintsCache");fi(xDe,X4,1);class Qq{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e=="string"?{label:e}:e[this.index]}}class wIt{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}var pg;let SD=(pg=class{static get(e){return e.getContribution(Aw.ID)??void 0}constructor(e,t,i,s,r,o,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=s,this._commandService=r,this._notificationService=o,this._instaService=a,this._disposables=new be,this._sessionDisposables=new be,this._decorationsMetadata=new Map,this._ruleFactory=new NF(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(142)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(142);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled==="on")this._activeRenderMode=0;else{let a,l;e.enabled==="onUnlessPressed"?(a=0,l=1):(a=1,l=0),this._activeRenderMode=a,this._sessionDisposables.add(ng.getInstance().event(c=>{if(!this._editor.hasModel())return;const u=c.altKey&&c.ctrlKey&&!(c.shiftKey||c.metaKey)?l:a;if(u!==this._activeRenderMode){this._activeRenderMode=u;const h=this._editor.getModel(),d=this._copyInlayHintsWithCurrentAnchor(h);this._updateHintsDecorators([h.getFullModelRange()],d),o.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(lt(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let s;const r=new Set,o=new ji(async()=>{const a=Date.now();s==null||s.dispose(!0),s=new Wn;const l=t.onWillDispose(()=>s==null?void 0:s.cancel());try{const c=s.token,u=await O4.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),c);if(o.delay=this._debounceInfo.update(t,Date.now()-a),c.isCancellationRequested){u.dispose();return}for(const h of u.provider)typeof h.onDidChangeInlayHints=="function"&&!r.has(h)&&(r.add(h),this._sessionDisposables.add(h.onDidChangeInlayHints(()=>{o.isScheduled()||o.schedule()})));this._sessionDisposables.add(u),this._updateHintsDecorators(u.ranges,u.items),this._cacheHintsForFastRestore(t)}catch(c){Nt(c)}finally{s.dispose(),l.dispose()}},this._debounceInfo.get(t));this._sessionDisposables.add(o),this._sessionDisposables.add(lt(()=>s==null?void 0:s.dispose(!0))),o.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(a=>{(a.scrollTopChanged||!o.isScheduled())&&o.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(a=>{s==null||s.cancel();const l=Math.max(o.delay,1250);o.schedule(l)})),this._sessionDisposables.add(this._installDblClickGesture(()=>o.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new be,t=e.add(new F8(this._editor)),i=new be;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(s=>{const[r]=s,o=this._getInlayHintLabelPart(r),a=this._editor.getModel();if(!o||!a){i.clear();return}const l=new Wn;i.add(lt(()=>l.dispose(!0))),o.item.resolve(l.token),this._activeInlayHintPart=o.part.command||o.part.location?new wIt(o,r.hasTriggerModifier):void 0;const c=a.validatePosition(o.item.hint.position).lineNumber,u=new O(c,1,c,a.getLineMaxColumn(c)),h=this._getInlineHintsForRange(u);this._updateHintsDecorators([u],h),i.add(lt(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([u],h)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(async s=>{const r=this._getInlayHintLabelPart(s);if(r){const o=r.part;o.location?this._instaService.invokeFunction(SDe,s,this._editor,o.location):Zz.is(o.command)&&await this._invokeCommand(o.command,r.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(Vt.None),so(i.item.hint.textEdits))){const s=i.item.hint.textEdits.map(r=>Fn.replace(O.lift(r.range),r.text));this._editor.executeEdits("inlayHint.default",s),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!ir(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(bIt,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){var i;if(e.target.type!==6)return;const t=(i=e.target.detail.injectedText)==null?void 0:i.options;if(t instanceof g_&&(t==null?void 0:t.attachedData)instanceof Qq)return t.attachedData}async _invokeCommand(e,t){try{await this._commandService.executeCommand(e.id,...e.arguments??[])}catch(i){this._notificationService.notify({severity:y8.Error,source:t.provider.displayName,message:i})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,s]of this._decorationsMetadata){if(t.has(s.item))continue;const r=e.getDecorationRange(i);if(r){const o=new WTe(r,s.item.anchor.direction),a=s.item.with({anchor:o});t.set(s.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),s=[];for(const r of i.sort(O.compareRangesUsingStarts)){const o=t.validateRange(new O(r.startLineNumber-30,r.startColumn,r.endLineNumber+30,r.endColumn));s.length===0||!O.areIntersectingOrTouching(s[s.length-1],o)?s.push(o):s[s.length-1]=O.plusRange(s[s.length-1],o)}return s}_updateHintsDecorators(e,t){var p,g;const i=[],s=(m,_,b,w,C)=>{const S={content:b,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:_.className,cursorStops:w,attachedData:C};i.push({item:m,classNameRef:_,decoration:{range:m.anchor.range,options:{description:"InlayHint",showIfCollapsed:m.anchor.range.isEmpty(),collapseOnReplaceEdit:!m.anchor.range.isEmpty(),stickiness:0,[m.anchor.direction]:this._activeRenderMode===0?S:void 0}}})},r=(m,_)=>{const b=this._ruleFactory.createClassNameRef({width:`${o/3|0}px`,display:"inline-block"});s(m,b," ",_?Tu.Right:Tu.None)},{fontSize:o,fontFamily:a,padding:l,isUniform:c}=this._getLayoutInfo(),u="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,a);let h={line:0,totalLen:0};for(const m of t){if(h.line!==m.anchor.range.startLineNumber&&(h={line:m.anchor.range.startLineNumber,totalLen:0}),h.totalLen>Aw._MAX_LABEL_LEN)continue;m.hint.paddingLeft&&r(m,!1);const _=typeof m.hint.label=="string"?[{label:m.hint.label}]:m.hint.label;for(let b=0;b<_.length;b++){const w=_[b],C=b===0,S=b===_.length-1,x={fontSize:`${o}px`,fontFamily:`var(${u}), ${ta.fontFamily}`,verticalAlign:c?"baseline":"middle",unicodeBidi:"isolate"};so(m.hint.textEdits)&&(x.cursor="default"),this._fillInColors(x,m.hint),(w.command||w.location)&&((p=this._activeInlayHintPart)==null?void 0:p.part.item)===m&&this._activeInlayHintPart.part.index===b&&(x.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(x.color=Gn(ept),x.cursor="pointer")),l&&(C&&S?(x.padding=`1px ${Math.max(1,o/4)|0}px`,x.borderRadius=`${o/4|0}px`):C?(x.padding=`1px 0 1px ${Math.max(1,o/4)|0}px`,x.borderRadius=`${o/4|0}px 0 0 ${o/4|0}px`):S?(x.padding=`1px ${Math.max(1,o/4)|0}px 1px 0`,x.borderRadius=`0 ${o/4|0}px ${o/4|0}px 0`):x.padding="1px 0 1px 0");let k=w.label;h.totalLen+=k.length;let L=!1;const E=h.totalLen-Aw._MAX_LABEL_LEN;if(E>0&&(k=k.slice(0,-E)+"…",L=!0),s(m,this._ruleFactory.createClassNameRef(x),CIt(k),S&&!m.hint.paddingRight?Tu.Right:Tu.None,new Qq(m,b)),L)break}if(m.hint.paddingRight&&r(m,!0),i.length>Aw._MAX_DECORATORS)break}const d=[];for(const[m,_]of this._decorationsMetadata){const b=(g=this._editor.getModel())==null?void 0:g.getDecorationRange(m);b&&e.some(w=>w.containsRange(b))&&(d.push(m),_.classNameRef.dispose(),this._decorationsMetadata.delete(m))}const f=id.capture(this._editor);this._editor.changeDecorations(m=>{const _=m.deltaDecorations(d,i.map(b=>b.decoration));for(let b=0;b<_.length;b++){const w=i[b];this._decorationsMetadata.set(_[b],w)}}),f.restore(this._editor)}_fillInColors(e,t){t.kind===WF.Parameter?(e.backgroundColor=Gn(lpt),e.color=Gn(apt)):t.kind===WF.Type?(e.backgroundColor=Gn(opt),e.color=Gn(rpt)):(e.backgroundColor=Gn(ote),e.color=Gn(rte))}_getLayoutInfo(){const e=this._editor.getOption(142),t=e.padding,i=this._editor.getOption(52),s=this._editor.getOption(49);let r=e.fontSize;(!r||r<5||r>i)&&(r=i);const o=e.fontFamily||s;return{fontSize:r,fontFamily:o,padding:t,isUniform:!t&&o===s&&r===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}},Aw=pg,pg.ID="editor.contrib.InlayHints",pg._MAX_DECORATORS=1500,pg._MAX_LABEL_LEN=43,pg);SD=Aw=yIt([fw(1,Je),fw(2,wc),fw(3,xDe),fw(4,an),fw(5,ms),fw(6,ct)],SD);function CIt(n){return n.replace(/[ \t]/g," ")}di.registerCommand("_executeInlayHintProvider",async(n,...e)=>{const[t,i]=e;yi(mt.isUri(t)),yi(O.isIRange(i));const{inlayHintsProvider:s}=n.get(Je),r=await n.get(Wa).createModelReference(t);try{const o=await O4.create(s,r.object.textEditorModel,[O.lift(i)],Vt.None),a=o.items.map(l=>l.hint);return setTimeout(()=>o.dispose(),0),a}finally{r.dispose()}});var SIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},vm=function(n,e){return function(t,i){e(t,i,n)}};class Qfe extends SM{constructor(e,t,i,s){super(10,t,e.item.anchor.range,i,s,!0),this.part=e}}let Y4=class extends vD{constructor(e,t,i,s,r,o,a,l,c){super(e,t,i,o,l,s,r,c),this._resolverService=a,this.hoverOrdinal=6}suggestHoverAnchor(e){var s;if(!SD.get(this._editor)||e.target.type!==6)return null;const i=(s=e.target.detail.injectedText)==null?void 0:s.options;return i instanceof g_&&i.attachedData instanceof Qq?new Qfe(i.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof Qfe?new ec(async s=>{const{part:r}=e;if(await r.item.resolve(i),i.isCancellationRequested)return;let o;typeof r.item.hint.tooltip=="string"?o=new to().appendText(r.item.hint.tooltip):r.item.hint.tooltip&&(o=r.item.hint.tooltip),o&&s.emitOne(new ku(this,e.range,[o],!1,0)),so(r.item.hint.textEdits)&&s.emitOne(new ku(this,e.range,[new to().appendText(v("hint.dbl","Double-click to insert"))],!1,10001));let a;if(typeof r.part.tooltip=="string"?a=new to().appendText(r.part.tooltip):r.part.tooltip&&(a=r.part.tooltip),a&&s.emitOne(new ku(this,e.range,[a],!1,1)),r.part.location||r.part.command){let c;const h=this._editor.getOption(78)==="altKey"?ni?v("links.navigate.kb.meta.mac","cmd + click"):v("links.navigate.kb.meta","ctrl + click"):ni?v("links.navigate.kb.alt.mac","option + click"):v("links.navigate.kb.alt","alt + click");r.part.location&&r.part.command?c=new to().appendText(v("hint.defAndCommand","Go to Definition ({0}), right click for more",h)):r.part.location?c=new to().appendText(v("hint.def","Go to Definition ({0})",h)):r.part.command&&(c=new to(`[${v("hint.cmd","Execute Command")}](${$Et(r.part.command)} "${r.part.command.title}") (${h})`,{isTrusted:!0})),c&&s.emitOne(new ku(this,e.range,[c],!1,1e4))}const l=await this._resolveInlayHintLabelPartHover(r,i);for await(const c of l)s.emitOne(c)}):ec.EMPTY}async _resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return ec.EMPTY;const{uri:i,range:s}=e.part.location,r=await this._resolverService.createModelReference(i);try{const o=r.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(o)?Wie(this._languageFeaturesService.hoverProvider,o,new se(s.startLineNumber,s.startColumn),t).filter(a=>!ox(a.hover.contents)).map(a=>new ku(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal)):ec.EMPTY}finally{r.dispose()}}};Y4=SIt([vm(1,Dn),vm(2,kl),vm(3,Ni),vm(4,rp),vm(5,Xt),vm(6,Wa),vm(7,Je),vm(8,an)],Y4);class cne extends ue{constructor(e,t,i,s,r,o){super();const a=t.anchor,l=t.hoverParts;this._renderedHoverParts=this._register(new Jq(e,i,l,o,r));const{showAtPosition:c,showAtSecondaryPosition:u}=cne.computeHoverPositions(e,a.range,l);this.shouldAppearBeforeContent=l.some(h=>h.isBeforeContent),this.showAtPosition=c,this.showAtSecondaryPosition=u,this.initialMousePosX=a.initialMousePosX,this.initialMousePosY=a.initialMousePosY,this.shouldFocus=s.shouldFocus,this.source=s.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}async updateHoverVerbosityLevel(e,t,i){this._renderedHoverParts.updateHoverVerbosityLevel(e,t,i)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(e,t,i){let s=1;if(e.hasModel()){const u=e._getViewModel(),h=u.coordinatesConverter,d=h.convertModelRangeToViewRange(t),f=u.getLineMinColumn(d.startLineNumber),p=new se(d.startLineNumber,f);s=h.convertViewPositionToModelPosition(p).column}const r=t.startLineNumber;let o=t.startColumn,a;for(const u of i){const h=u.range,d=h.startLineNumber===r,f=h.endLineNumber===r;if(d&&f){const g=h.startColumn,m=Math.min(o,g);o=Math.max(m,s)}u.forceShowAtRange&&(a=h)}let l,c;if(a){const u=a.getStartPosition();l=u,c=u}else l=t.getStartPosition(),c=new se(r,o);return{showAtPosition:l,showAtSecondaryPosition:c}}}class xIt{constructor(e,t){this._statusBar=t,e.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}const z3=class z3 extends ue{constructor(e,t,i,s,r){super(),this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=r,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(t,i,r,s)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(e,i)),this._updateMarkdownAndColorParticipantInfo(t)}_createEditorDecorations(e,t){if(t.length===0)return ue.None;let i=t[0].range;for(const r of t){const o=r.range;i=O.plusRange(i,o)}const s=e.createDecorationsCollection();return s.set([{range:i,options:z3._DECORATION_OPTIONS}]),lt(()=>{s.clear()})}_renderParts(e,t,i,s){const r=new M4(s),o={fragment:this._fragment,statusBar:r,...i},a=new be;for(const c of e){const u=this._renderHoverPartsForParticipant(t,c,o);a.add(u);for(const h of u.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:c,hoverPart:h.hoverPart,hoverElement:h.hoverElement})}const l=this._renderStatusBar(this._fragment,r);return l&&(a.add(l),this._renderedParts.push({type:"statusBar",hoverElement:l.hoverElement,actions:l.actions})),lt(()=>{a.dispose()})}_renderHoverPartsForParticipant(e,t,i){const s=e.filter(o=>o.owner===t);return s.length>0?t.renderHoverParts(i,s):new a0([])}_renderStatusBar(e,t){if(t.hasContent)return new xIt(e,t)}_registerListenersOnRenderedParts(){const e=new be;return this._renderedParts.forEach((t,i)=>{const s=t.hoverElement;s.tabIndex=0,e.add(ge(s,Ae.FOCUS_IN,r=>{r.stopPropagation(),this._focusedHoverPartIndex=i})),e.add(ge(s,Ae.FOCUS_OUT,r=>{r.stopPropagation(),this._focusedHoverPartIndex=-1}))}),e}_updateMarkdownAndColorParticipantInfo(e){const t=e.find(i=>i instanceof vD&&!(i instanceof Y4));t&&(this._markdownHoverParticipant=t),this._colorHoverParticipant=e.find(i=>i instanceof mD)}async updateHoverVerbosityLevel(e,t,i){if(!this._markdownHoverParticipant)return;const s=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,t);if(s===void 0)return;const r=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(e,s,i);r&&(this._renderedParts[t]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:r.hoverPart,hoverElement:r.hoverElement},this._context.onContentsChanged())}isColorPickerVisible(){var e;return((e=this._colorHoverParticipant)==null?void 0:e.isColorPickerVisible())??!1}_normalizedIndexToMarkdownHoverIndexRange(e,t){const i=this._renderedParts[t];if(!i||i.type!=="hoverPart"||!(i.participant===e))return;const r=this._renderedParts.findIndex(o=>o.type==="hoverPart"&&o.participant===e);if(r===-1)throw new Li;return t-r}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}};z3._DECORATION_OPTIONS=At.register({description:"content-hover-highlight",className:"hoverHighlight"});let Jq=z3;var LIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Jfe=function(n,e){return function(t,i){e(t,i,n)}};let eK=class extends ue{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._onContentsChanged=this._register(new oe),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(P4,this._editor)),this._participants=this._initializeHoverParticipants(),this._computer=new R4(this._editor,this._participants),this._hoverOperation=this._register(new RTe(this._editor,this._computer)),this._registerListeners()}_initializeHoverParticipants(){const e=[];for(const t of W0.getAll()){const i=this._instantiationService.createInstance(t,this._editor);e.push(i)}return e.sort((t,i)=>t.hoverOrdinal-i.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(t=>{var i;return(i=t.handleResize)==null?void 0:i.call(t)})})),e}_registerListeners(){this._register(this._hoverOperation.onResult(e=>{if(!this._computer.anchor)return;const t=e.hasLoadingMessage?this._addLoadingMessage(e.value):e.value;this._withResult(new MTe(this._computer.anchor,t,e.isComplete))})),this._register(os(this._contentHoverWidget.getDomNode(),"keydown",e=>{e.equals(9)&&this.hide()})),this._register(Xn.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(e,t,i,s,r){if(!(this._contentHoverWidget.position&&this._currentResult))return e?(this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):!1;const a=this._editor.getOption(60).sticky,l=r&&this._contentHoverWidget.isMouseGettingCloser(r.event.posx,r.event.posy);return a&&l?(e&&this._startHoverOperationIfNecessary(e,t,i,s,!0),!0):e?this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._contentHoverWidget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,s,r){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=s,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=r,this._hoverOperation.start(t))}_setCurrentResult(e){let t=e;if(this._currentResult===t)return;t&&t.hoverParts.length===0&&(t=null),this._currentResult=t,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(e){if(!this._computer.anchor)return e;for(const t of this._participants){if(!t.createLoadingMessage)continue;const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}return e}_withResult(e){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(e),!e.isComplete)return;const s=e.hoverParts.length===0,r=this._computer.insistOnKeepingHoverVisible;s&&r||this._setCurrentResult(e)}_showHover(e){const t=this._getHoverContext();this._renderedContentHover=new cne(this._editor,e,this._participants,this._computer,t,this._keybindingService),this._renderedContentHover.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover):this._renderedContentHover.dispose()}_hideHover(){this._contentHoverWidget.hide()}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._onContentsChanged.fire(),this._contentHoverWidget.onContentsChanged()},setMinimumDimensions:s=>{this._contentHoverWidget.setMinimumDimensions(s)}}}showsOrWillShow(e){if(this._contentHoverWidget.isResizing)return!0;const i=this._findHoverAnchorCandidates(e);if(!(i.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,e);const r=i[0];return this._startShowingOrUpdateHover(r,0,0,!1,e)}_findHoverAnchorCandidates(e){const t=[];for(const s of this._participants){if(!s.suggestHoverAnchor)continue;const r=s.suggestHoverAnchor(e);r&&t.push(r)}const i=e.target;switch(i.type){case 6:{t.push(new UW(0,i.range,e.event.posx,e.event.posy));break}case 7:{const s=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;if(!(!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToText<s))break;t.push(new UW(0,i.range,e.event.posx,e.event.posy));break}}return t.sort((s,r)=>r.priority-s.priority),t}startShowingAtRange(e,t,i,s){this._startShowingOrUpdateHover(new UW(0,e,void 0,void 0),t,i,s,null)}async updateHoverVerbosityLevel(e,t,i){var s;(s=this._renderedContentHover)==null||s.updateHoverVerbosityLevel(e,t,i)}focusedHoverPartIndex(){var e;return((e=this._renderedContentHover)==null?void 0:e.focusedHoverPartIndex)??-1}containsNode(e){return e?this._contentHoverWidget.getDomNode().contains(e):!1}focus(){this._contentHoverWidget.focus()}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){var e;return((e=this._renderedContentHover)==null?void 0:e.isColorPickerVisible())??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};eK=LIt([Jfe(1,ct),Jfe(2,Ni)],eK);class EIt{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(e){this._editor=e,this._lineNumber=-1,this._laneOrLine=Uu.Center}computeSync(){var r;const e=o=>({value:o}),t=this._editor.getLineDecorations(this._lineNumber),i=[],s=this._laneOrLine==="lineNo";if(!t)return i;for(const o of t){const a=((r=o.options.glyphMargin)==null?void 0:r.position)??Uu.Center;if(!s&&a!==this._laneOrLine)continue;const l=s?o.options.lineNumberHoverMessage:o.options.glyphMarginHoverMessage;!l||ox(l)||i.push(...$ee(l).map(e))}return i}}const epe=Pe,U3=class U3 extends ue{constructor(e,t,i){super(),this._renderDisposeables=this._register(new be),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new Bie),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new jg({editor:this._editor},t,i)),this._computer=new EIt(this._editor),this._hoverOperation=this._register(new RTe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(s=>{this._withResult(s.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return U3.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(e){const t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const s of t){const r=epe("div.hover-row.markdown-hover"),o=ke(r,epe("div.hover-contents")),a=this._renderDisposeables.add(this._markdownRenderer.render(s.value));o.appendChild(a.element),i.appendChild(r)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),s=this._editor.getScrollTop(),r=this._editor.getOption(67),o=this._hover.containerDomNode.clientHeight,a=i-s-(o-r)/2,l=t.glyphMarginLeft+t.glyphMarginWidth+(this._computer.lane==="lineNo"?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${l}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(a),0)}px`}};U3.ID="editor.contrib.modesGlyphHoverWidget";let Z4=U3;var kIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},tpe=function(n,e){return function(t,i){e(t,i,n)}},tK;const IIt=!1;var Yb;let Ao=(Yb=class extends ue{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._onHoverContentsChanged=this._register(new oe),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new be,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new ji(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(tK.ID)}_hookListeners(){const e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.delay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(e)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(e){return!!(this._isMouseOnContentHoverWidget(e)||this._isMouseOnMarginHoverWidget(e)||this._isContentWidgetResizing())}_isMouseOnMarginHoverWidget(e){const t=e.target;return t?t.type===12&&t.detail===Z4.ID:!1}_isMouseOnContentHoverWidget(e){const t=e.target;return t?t.type===9&&t.detail===P4.ID:!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldNotHideCurrentHoverWidget(e))||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(e){const t=this._hoverSettings.sticky,i=(a,l)=>{const c=this._isMouseOnMarginHoverWidget(a);return l&&c},s=(a,l)=>{const c=this._isMouseOnContentHoverWidget(a);return l&&c},r=a=>{var u;const l=this._isMouseOnContentHoverWidget(a),c=(u=this._contentWidget)==null?void 0:u.isColorPickerVisible;return l&&c},o=(a,l)=>{var c,u,h,d;return l&&((u=this._contentWidget)==null?void 0:u.containsNode((c=a.event.browserEvent.view)==null?void 0:c.document.activeElement))&&!((d=(h=a.event.browserEvent.view)==null?void 0:h.getSelection())!=null&&d.isCollapsed)};return!!(i(e,t)||s(e,t)||r(e)||o(e,t))}_onEditorMouseMove(e){var a,l,c,u;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=e,(a=this._contentWidget)!=null&&a.isFocused||(l=this._contentWidget)!=null&&l.isResizing))return;const t=this._hoverSettings.sticky;if(t&&((c=this._contentWidget)!=null&&c.isVisibleFromKeyboard))return;if(this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}const s=this._hoverSettings.hidingDelay;if(((u=this._contentWidget)==null?void 0:u.isVisible)&&t&&s>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(s);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var c;if(!e)return;const i=(c=e.target.element)==null?void 0:c.classList.contains("colorpicker-color-decoration"),s=this._editor.getOption(149),r=this._hoverSettings.enabled,o=this._hoverState.activatedByDecoratorClick;if(i&&(s==="click"&&!o||s==="hover"&&!r&&!IIt||s==="clickAndHover"&&!r&&!o)||!i&&!r&&!o){this._hideWidgets();return}this._tryShowHoverWidget(e,0)||this._tryShowHoverWidget(e,1)||this._hideWidgets()}_tryShowHoverWidget(e,t){const i=this._getOrCreateContentWidget(),s=this._getOrCreateGlyphWidget();let r,o;switch(t){case 0:r=i,o=s;break;case 1:r=s,o=i;break;default:throw new Error(`HoverWidgetType ${t} is unrecognized`)}const a=r.showsOrWillShow(e);return a&&o.hide(),a}_onKeyDown(e){var s;if(!this._editor.hasModel())return;const t=this._keybindingService.softDispatch(e,this._editor.getDomNode()),i=t.kind===1||t.kind===2&&(t.commandId===kTe||t.commandId===R8||t.commandId===M8)&&((s=this._contentWidget)==null?void 0:s.isVisible);e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||i||this._hideWidgets()}_hideWidgets(){var e,t,i;this._hoverState.mouseDown&&((e=this._contentWidget)!=null&&e.isColorPickerVisible)||fx.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,(t=this._glyphWidget)==null||t.hide(),(i=this._contentWidget)==null||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(eK,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(Z4,this._editor)),this._glyphWidget}showContentHover(e,t,i,s,r=!1){this._hoverState.activatedByDecoratorClick=r,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,s)}_isContentWidgetResizing(){var e;return((e=this._contentWidget)==null?void 0:e.widget.isResizing)||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(e,t,i){this._getOrCreateContentWidget().updateHoverVerbosityLevel(e,t,i)}focus(){var e;(e=this._contentWidget)==null||e.focus()}scrollUp(){var e;(e=this._contentWidget)==null||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)==null||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)==null||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)==null||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)==null||e.pageUp()}pageDown(){var e;(e=this._contentWidget)==null||e.pageDown()}goToTop(){var e;(e=this._contentWidget)==null||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)==null||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)==null?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)==null?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._glyphWidget)==null||e.dispose(),(t=this._contentWidget)==null||t.dispose()}},tK=Yb,Yb.ID="editor.contrib.hover",Yb);Ao=tK=kIt([tpe(1,ct),tpe(2,Ni)],Ao);const ese=class ese extends ue{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(149);if(t!=="click"&&t!=="clickAndHover")return;const i=e.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==yTe||!i.range)return;const s=this._editor.getContribution(Ao.ID);if(s&&!s.isColorPickerVisible){const r=new O(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);s.showContentHover(r,1,0,!1,!0)}}};ese.ID="editor.contrib.colorContribution";let Q4=ese;_i(Q4.ID,Q4,2);W0.register(mD);var LDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},yh=function(n,e){return function(t,i){e(t,i,n)}},iK,nK,Zb;let h0=(Zb=class extends ue{constructor(e,t,i,s,r,o,a){super(),this._editor=e,this._modelService=i,this._keybindingService=s,this._instantiationService=r,this._languageFeatureService=o,this._languageConfigurationService=a,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=H.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=H.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(e=this._standaloneColorPickerWidget)==null||e.focus():this._standaloneColorPickerWidget=new sK(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)==null||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)==null||e.updateEditor(),this.hide()}static get(e){return e.getContribution(iK.ID)}},iK=Zb,Zb.ID="editor.contrib.standaloneColorPickerController",Zb);h0=iK=LDe([yh(1,bt),yh(2,mn),yh(3,Ni),yh(4,ct),yh(5,Je),yh(6,ln)],h0);_i(h0.ID,h0,1);const ipe=8,TIt=22;var Qb;let sK=(Qb=class extends ue{constructor(e,t,i,s,r,o,a,l){var d;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=r,this._keybindingService=o,this._languageFeaturesService=a,this._languageConfigurationService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new oe),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(_D,this._editor),this._position=(d=this._editor._getViewModel())==null?void 0:d.getPrimaryCursorState().modelState.position;const c=this._editor.getSelection(),u=c?{startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(Zh(this._body));this._register(h.onDidBlur(f=>{this.hide()})),this._register(h.onDidFocus(f=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(f=>{var g;const p=(g=f.target.element)==null?void 0:g.classList;p&&p.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(f=>{this._render(f.value,f.foundInEditor)})),this._start(u),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return nK.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new DIt(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new Rie(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment(),s=this._register(new M4(this._keybindingService)),r={fragment:i,statusBar:s,onContentsChanged:()=>{},hide:()=>this.hide()};this._colorHover=e;const o=this._standaloneColorPickerParticipant.renderHoverParts(r,[e]);if(!o)return;this._register(o.disposables);const a=o.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),a.layout();const l=a.body,c=l.saturationBox.domNode.clientWidth,u=l.domNode.clientWidth-c-TIt-ipe,h=a.body.enterButton;h==null||h.onClicked(()=>{this.updateEditor(),this.hide()});const d=a.header,f=d.pickedColorNode;f.style.width=c+ipe+"px";const p=d.originalColorNode;p.style.width=u+"px";const g=a.header.closeButton;g==null||g.onClicked(()=>{this.hide()}),t&&(h&&(h.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}},nK=Qb,Qb.ID="editor.contrib.standaloneColorPickerWidget",Qb);sK=nK=LDe([yh(3,ct),yh(4,mn),yh(5,Ni),yh(6,Je),yh(7,ln)],sK);class DIt{constructor(e,t){this.value=e,this.foundInEditor=t}}class NIt extends pd{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...Ct("showOrFocusStandaloneColorPicker","Show or Focus Standalone Color Picker"),mnemonicTitle:v({key:"mishowOrFocusStandaloneColorPicker",comment:["&& denotes a mnemonic"]},"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:et.CommandPalette}],metadata:{description:Ct("showOrFocusStandaloneColorPickerDescription","Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(e,t){var i;(i=h0.get(t))==null||i.showOrFocus()}}class AIt extends Xe{constructor(){super({id:"editor.action.hideColorPicker",label:v({key:"hideColorPicker",comment:["Action that hides the color picker"]},"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:H.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:Ct("hideColorPickerDescription","Hide the standalone color picker.")}})}run(e,t){var i;(i=h0.get(t))==null||i.hide()}}class PIt extends Xe{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:v({key:"insertColorWithStandaloneColorPicker",comment:["Action that inserts color with standalone color picker"]},"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:H.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:Ct("insertColorWithStandaloneColorPickerDescription","Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(e,t){var i;(i=h0.get(t))==null||i.insertColor()}}Ie(AIt);Ie(PIt);nn(NIt);class d1{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const s=t.length,r=e.length;if(i+s>r)return!1;for(let o=0;o<s;o++){const a=e.charCodeAt(i+o),l=t.charCodeAt(o);if(a!==l&&!(a>=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,s,r,o){const a=e.startLineNumber,l=e.startColumn,c=e.endLineNumber,u=e.endColumn,h=r.getLineContent(a),d=r.getLineContent(c);let f=h.lastIndexOf(t,l-1+t.length),p=d.indexOf(i,u-1-i.length);if(f!==-1&&p!==-1)if(a===c)h.substring(f+t.length,p).indexOf(i)>=0&&(f=-1,p=-1);else{const m=h.substring(f+t.length),_=d.substring(0,p);(m.indexOf(i)>=0||_.indexOf(i)>=0)&&(f=-1,p=-1)}let g;f!==-1&&p!==-1?(s&&f+t.length<h.length&&h.charCodeAt(f+t.length)===32&&(t=t+" "),s&&p>0&&d.charCodeAt(p-1)===32&&(i=" "+i,p-=1),g=d1._createRemoveBlockCommentOperations(new O(a,f+t.length+1,c,p+1),t,i)):(g=d1._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=g.length===1?i:null);for(const m of g)o.addTrackedEditOperation(m.range,m.text)}static _createRemoveBlockCommentOperations(e,t,i){const s=[];return O.isEmpty(e)?s.push(Fn.delete(new O(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(s.push(Fn.delete(new O(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(Fn.delete(new O(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),s}static _createAddBlockCommentOperations(e,t,i,s){const r=[];return O.isEmpty(e)?r.push(Fn.replace(new O(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(r.push(Fn.insert(new se(e.startLineNumber,e.startColumn),t+(s?" ":""))),r.push(Fn.insert(new se(e.endLineNumber,e.endColumn),(s?" ":"")+i))),r}getEditOperations(e,t){const i=this._selection.startLineNumber,s=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const r=e.getLanguageIdAtPosition(i,s),o=this.languageConfigurationService.getLanguageConfiguration(r).comments;!o||!o.blockCommentStartToken||!o.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,o.blockCommentStartToken,o.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const s=i[0],r=i[1];return new nt(s.range.endLineNumber,s.range.endColumn,r.range.startLineNumber,r.range.startColumn)}else{const s=i[0].range,r=this._usedEndToken?-this._usedEndToken.length-1:0;return new nt(s.endLineNumber,s.endColumn+r,s.endLineNumber,s.endColumn+r)}}}class Ip{constructor(e,t,i,s,r,o,a){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=s,this._insertSpace=r,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,s){e.tokenization.tokenizeIfCheap(t);const r=e.getLanguageIdAtPosition(t,1),o=s.getLanguageConfiguration(r).comments,a=o?o.lineCommentToken:null;if(!a)return null;const l=[];for(let c=0,u=i-t+1;c<u;c++)l[c]={ignore:!1,commentStr:a,commentStrOffset:0,commentStrLength:a.length};return l}static _analyzeLines(e,t,i,s,r,o,a,l){let c=!0,u;e===0?u=!0:e===1?u=!1:u=!0;for(let h=0,d=s.length;h<d;h++){const f=s[h],p=r+h;if(p===r&&a){f.ignore=!0;continue}const g=i.getLineContent(p),m=Io(g);if(m===-1){f.ignore=o,f.commentStrOffset=g.length;continue}if(c=!1,f.ignore=!1,f.commentStrOffset=m,u&&!d1._haystackHasNeedleAtOffset(g,f.commentStr,m)&&(e===0?u=!1:e===1||(f.ignore=!0)),u&&t){const _=m+f.commentStrLength;_<g.length&&g.charCodeAt(_)===32&&(f.commentStrLength+=1)}}if(e===0&&c){u=!1;for(let h=0,d=s.length;h<d;h++)s[h].ignore=!1}return{supported:!0,shouldRemoveComments:u,lines:s}}static _gatherPreflightData(e,t,i,s,r,o,a,l){const c=Ip._gatherPreflightCommentStrings(i,s,r,l);return c===null?{supported:!1}:Ip._analyzeLines(e,t,i,c,s,o,a,l)}_executeLineComments(e,t,i,s){let r;i.shouldRemoveComments?r=Ip._createRemoveLineCommentsOperations(i.lines,s.startLineNumber):(Ip._normalizeInsertionPoint(e,i.lines,s.startLineNumber,this._indentSize),r=this._createAddLineCommentsOperations(i.lines,s.startLineNumber));const o=new se(s.positionLineNumber,s.positionColumn);for(let a=0,l=r.length;a<l;a++)t.addEditOperation(r[a].range,r[a].text),O.isEmpty(r[a].range)&&O.getStartPosition(r[a].range).equals(o)&&e.getLineContent(o.lineNumber).length+1===o.column&&(this._deltaColumn=(r[a].text||"").length);this._selectionId=t.trackSelection(s)}_attemptRemoveBlockComment(e,t,i,s){let r=t.startLineNumber,o=t.endLineNumber;const a=s.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(r).lastIndexOf(i,a-1),c=e.getLineContent(o).indexOf(s,t.endColumn-1-i.length);return l!==-1&&c===-1&&(c=e.getLineContent(r).indexOf(s,l+i.length),o=r),l===-1&&c!==-1&&(l=e.getLineContent(o).lastIndexOf(i,c),r=o),t.isEmpty()&&(l===-1||c===-1)&&(l=e.getLineContent(r).indexOf(i),l!==-1&&(c=e.getLineContent(r).indexOf(s,l+i.length))),l!==-1&&e.getLineContent(r).charCodeAt(l+i.length)===32&&(i+=" "),c!==-1&&e.getLineContent(o).charCodeAt(c-1)===32&&(s=" "+s,c-=1),l!==-1&&c!==-1?d1._createRemoveBlockCommentOperations(new O(r,l+i.length+1,o,c+1),i,s):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const s=e.getLanguageIdAtPosition(i.startLineNumber,1),r=this.languageConfigurationService.getLanguageConfiguration(s).comments;if(!r||!r.blockCommentStartToken||!r.blockCommentEndToken)return;const o=r.blockCommentStartToken,a=r.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,o,a);if(!l){if(i.isEmpty()){const c=e.getLineContent(i.startLineNumber);let u=Io(c);u===-1&&(u=c.length),l=d1._createAddBlockCommentOperations(new O(i.startLineNumber,u+1,i.startLineNumber,c.length+1),o,a,this._insertSpace)}else l=d1._createAddBlockCommentOperations(new O(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),o,a,this._insertSpace);l.length===1&&(this._deltaColumn=o.length+1)}this._selectionId=t.trackSelection(i);for(const c of l)t.addEditOperation(c.range,c.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine){t.addEditOperation(new O(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":` +`),this._selectionId=t.trackSelection(i);return}i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const s=Ip._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return s.supported?this._executeLineComments(e,t,s,i):this._executeBlockComment(e,t,i)}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),new nt(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let s=0,r=e.length;s<r;s++){const o=e[s];o.ignore||i.push(Fn.delete(new O(t+s,o.commentStrOffset+1,t+s,o.commentStrOffset+o.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],s=this._insertSpace?" ":"";for(let r=0,o=e.length;r<o;r++){const a=e[r];a.ignore||i.push(Fn.insert(new se(t+r,a.commentStrOffset+1),a.commentStr+s))}return i}static nextVisibleColumn(e,t,i,s){return i?e+(t-e%t):e+s}static _normalizeInsertionPoint(e,t,i,s){let r=1073741824,o,a;for(let l=0,c=t.length;l<c;l++){if(t[l].ignore)continue;const u=e.getLineContent(i+l);let h=0;for(let d=0,f=t[l].commentStrOffset;h<r&&d<f;d++)h=Ip.nextVisibleColumn(h,s,u.charCodeAt(d)===9,1);h<r&&(r=h)}r=Math.floor(r/s)*s;for(let l=0,c=t.length;l<c;l++){if(t[l].ignore)continue;const u=e.getLineContent(i+l);let h=0;for(o=0,a=t[l].commentStrOffset;h<r&&o<a;o++)h=Ip.nextVisibleColumn(h,s,u.charCodeAt(o)===9,1);h>r?t[l].commentStrOffset=o-1:t[l].commentStrOffset=o}}}class une extends Xe{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(ln);if(!t.hasModel())return;const s=t.getModel(),r=[],o=s.getOptions(),a=t.getOption(23),l=t.getSelections().map((u,h)=>({selection:u,index:h,ignoreFirstLine:!1}));l.sort((u,h)=>O.compareRangesUsingStarts(u.selection,h.selection));let c=l[0];for(let u=1;u<l.length;u++){const h=l[u];c.selection.endLineNumber===h.selection.startLineNumber&&(c.index<h.index?h.ignoreFirstLine=!0:(c.ignoreFirstLine=!0,c=h))}for(const u of l)r.push(new Ip(i,u.selection,o.indentSize,this._type,a.insertSpace,a.ignoreEmptyLines,u.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class RIt extends une{constructor(){super(0,{id:"editor.action.commentLine",label:v("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:et.MenubarEditMenu,group:"5_insert",title:v({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}}class MIt extends une{constructor(){super(1,{id:"editor.action.addCommentLine",label:v("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2081),weight:100}})}}class OIt extends une{constructor(){super(2,{id:"editor.action.removeCommentLine",label:v("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2099),weight:100}})}}class FIt extends Xe{constructor(){super({id:"editor.action.blockComment",label:v("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:et.MenubarEditMenu,group:"5_insert",title:v({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}run(e,t){const i=e.get(ln);if(!t.hasModel())return;const s=t.getOption(23),r=[],o=t.getSelections();for(const a of o)r.push(new d1(a,s.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}Ie(RIt);Ie(MIt);Ie(OIt);Ie(FIt);var BIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},rv=function(n,e){return function(t,i){e(t,i,n)}},rK,Jb;let _x=(Jb=class{static get(e){return e.getContribution(rK.ID)}constructor(e,t,i,s,r,o,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=s,this._keybindingService=r,this._menuService=o,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new be,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(c=>this._onContextMenu(c))),this._toDispose.add(this._editor.onMouseWheel(c=>{if(this._contextMenuIsBeingShownCount>0){const u=this._contextViewService.getContextViewElement(),h=c.srcElement;h.shadowRoot&&jy(u)===h.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(c=>{this._editor.getOption(24)&&c.keyCode===58&&(c.preventDefault(),c.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const s of this._editor.getSelections())if(s.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],s=this._menuService.getMenuActions(t,this._contextKeyService,{arg:e.uri});for(const r of s){const[,o]=r;let a=0;for(const l of o)if(l instanceof BC){const c=this._getMenuActions(e,l.item.submenu);c.length>0&&(i.push(new GS(l.id,l.label,c)),a++)}else i.push(l),a++;a&&i.push(new nr)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let s=t;if(!s){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const o=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=ps(this._editor.getDomNode()),l=a.left+o.left,c=a.top+o.top+o.height;s={x:l,y:c}}const r=this._editor.getOption(128)&&!Gh;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>e,getActionViewItem:o=>{const a=this._keybindingFor(o);if(a)return new ax(o,o,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=o;return typeof l.getActionViewItem=="function"?l.getActionViewItem():new ax(o,o,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:o=>this._keybindingFor(o),onHide:o=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||nxt(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(73);let i=0;const s=c=>({id:`menu-action-${++i}`,label:c.label,tooltip:"",class:void 0,enabled:typeof c.enabled>"u"?!0:c.enabled,checked:c.checked,run:c.run}),r=(c,u)=>new GS(`menu-action-${++i}`,c,u,void 0),o=(c,u,h,d,f)=>{if(!u)return s({label:c,enabled:u,run:()=>{}});const p=m=>()=>{this._configurationService.updateValue(h,m)},g=[];for(const m of f)g.push(s({label:m.label,checked:d===m.value,run:p(m.value)}));return r(c,g)},a=[];a.push(s({label:v("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new nr),a.push(s({label:v("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),a.push(o(v("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:v("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:v("context.minimap.size.fill","Fill"),value:"fill"},{label:v("context.minimap.size.fit","Fit"),value:"fit"}])),a.push(o(v("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:v("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:v("context.minimap.slider.always","Always"),value:"always"}]));const l=this._editor.getOption(128)&&!Gh;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:c=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}},rK=Jb,Jb.ID="editor.contrib.contextmenu",Jb);_x=rK=BIt([rv(1,El),rv(2,sm),rv(3,bt),rv(4,Ni),rv(5,vc),rv(6,Xt),rv(7,t0)],_x);class WIt extends Xe{constructor(){super({id:"editor.action.showContextMenu",label:v("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;(i=_x.get(t))==null||i.showContextMenu()}}_i(_x.ID,_x,2);Ie(WIt);class ZW{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let s=0;s<t;s++)if(!this.selections[s].equalsSelection(e.selections[s]))return!1;return!0}}class QW{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}const j3=class j3 extends ue{static get(e){return e.getContribution(j3.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new ZW(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new QW(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new QW(new ZW(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new QW(new ZW(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}};j3.ID="editor.contrib.cursorUndoRedoController";let vx=j3;class VIt extends Xe{constructor(){super({id:"cursorUndo",label:v("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var s;(s=vx.get(t))==null||s.cursorUndo()}}class HIt extends Xe{constructor(){super({id:"cursorRedo",label:v("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var s;(s=vx.get(t))==null||s.cursorRedo()}}_i(vx.ID,vx,0);Ie(VIt);Ie(HIt);class $It{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new O(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new nt(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new nt(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new nt(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new nt(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new nt(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(e,t){return this.targetSelection}}function pw(n){return ni?n.altKey:n.ctrlKey}const Hm=class Hm extends ue{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(pw(e)&&(this._modifierPressed=!0),this._mouseDown&&pw(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(pw(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===Hm.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(this._dragSelection===null){const s=(this._editor.getSelections()||[]).filter(r=>t.position&&r.containsPosition(t.position));if(s.length===1)this._dragSelection=s[0];else return}pw(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new se(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const s=this._editor.getSelection();if(s){const{selectionStartLineNumber:r,selectionStartColumn:o}=s;i=[new nt(r,o,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(s=>s.containsPosition(t)?new nt(t.lineNumber,t.column,t.lineNumber,t.column):s);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(pw(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(Hm.ID,new $It(this._dragSelection,t,pw(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new O(e.lineNumber,e.column,e.lineNumber,e.column),options:Hm._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}};Hm.ID="editor.contrib.dragAndDrop",Hm.TRIGGER_KEY_VALUE=ni?6:5,Hm._DECORATION_OPTIONS=At.register({description:"dnd-target",className:"dnd-target"});let J4=Hm;_i(J4.ID,J4,2);_i(qg.ID,qg,0);tA(fj);Ve(new class extends Gs{constructor(){super({id:UIe,precondition:Lie,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e){var t;return(t=qg.get(e))==null?void 0:t.changePasteType()}});Ve(new class extends Gs{constructor(){super({id:"editor.hidePasteWidget",precondition:Lie,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e){var t;(t=qg.get(e))==null||t.clearWidgets()}});var ey;Ie((ey=class extends Xe{constructor(){super({id:"editor.action.pasteAs",label:v("pasteAs","Paste As..."),alias:"Paste As...",precondition:H.writable,metadata:{description:"Paste as",args:[{name:"args",schema:ey.argsSchema}]}})}run(e,t,i){var r;let s=typeof(i==null?void 0:i.kind)=="string"?i.kind:void 0;return!s&&i&&(s=typeof i.id=="string"?i.id:void 0),(r=qg.get(t))==null?void 0:r.pasteAs(s?new kn(s):void 0)}},ey.argsSchema={type:"object",properties:{kind:{type:"string",description:v("pasteAs.kind","The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.")}}},ey));Ie(class extends Xe{constructor(){super({id:"editor.action.pasteAsText",label:v("pasteAsText","Paste as Text"),alias:"Paste as Text",precondition:H.writable})}run(n,e){var t;return(t=qg.get(e))==null?void 0:t.pasteAs({providerId:i0.id})}});class zIt{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class npe{constructor(e){this.identifier=e}}const EDe=ri("treeViewsDndService");fi(EDe,zIt,1);var UIt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},WP=function(n,e){return function(t,i){e(t,i,n)}},oK;const kDe="editor.experimental.dropIntoEditor.defaultProvider",IDe="editor.changeDropType",hne=new $e("dropWidgetVisible",!1,v("dropWidgetVisible","Whether the drop widget is showing"));var ty;let bx=(ty=class extends ue{static get(e){return e.getContribution(oK.ID)}constructor(e,t,i,s,r){super(),this._configService=i,this._languageFeaturesService=s,this._treeViewsDragAndDropService=r,this.treeItemsTransfer=cj.getInstance(),this._dropProgressManager=this._register(t.createInstance(C4,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(E4,"dropIntoEditor",e,hne,{id:IDe,label:v("postDropWidgetTitle","Show drop options...")})),this._register(e.onDropIntoEditor(o=>this.onDropIntoEditor(e,o.position,o.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){var r;if(!i.dataTransfer||!e.hasModel())return;(r=this._currentOperation)==null||r.cancel(),e.focus(),e.setPosition(t);const s=tr(async o=>{const a=new be,l=a.add(new v_(e,1,void 0,o));try{const c=await this.extractDataTransferData(i);if(c.size===0||l.token.isCancellationRequested)return;const u=e.getModel();if(!u)return;const h=this._languageFeaturesService.documentDropEditProvider.ordered(u).filter(f=>f.dropMimeTypes?f.dropMimeTypes.some(p=>c.matches(p)):!0),d=a.add(await this.getDropEdits(h,u,t,c,l));if(l.token.isCancellationRequested)return;if(d.edits.length){const f=this.getInitialActiveEditIndex(u,d.edits),p=e.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([O.fromPositions(t)],{activeEditIndex:f,allEdits:d.edits},p,async g=>g,o)}}finally{a.dispose(),this._currentOperation===s&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(t,v("dropIntoEditorProgress","Running drop handlers. Click to cancel"),s,{cancel:()=>s.cancel()}),this._currentOperation=s}async getDropEdits(e,t,i,s,r){const o=new be,a=await LN(Promise.all(e.map(async c=>{try{const u=await c.provideDocumentDropEdits(t,i,s,r.token);return u&&o.add(u),u==null?void 0:u.edits.map(h=>({...h,providerId:c.id}))}catch(u){console.error(u)}})),r.token),l=Qh(a??[]).flat();return{edits:VIe(l),dispose:()=>o.dispose()}}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(kDe,{resource:e.uri});for(const[s,r]of Object.entries(i)){const o=new kn(r),a=t.findIndex(l=>o.value===l.providerId&&l.handledMimeType&&NIe(s,[l.handledMimeType]));if(a>=0)return a}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new DIe;const t=RIe(e.dataTransfer);if(this.treeItemsTransfer.hasData(npe.prototype)){const i=this.treeItemsTransfer.getData(npe.prototype);if(Array.isArray(i))for(const s of i){const r=await this._treeViewsDragAndDropService.removeDragOperationTransfer(s.identifier);if(r)for(const[o,a]of r)t.replace(o,a)}}return t}},oK=ty,ty.ID="editor.contrib.dropIntoEditorController",ty);bx=oK=UIt([WP(1,ct),WP(2,Xt),WP(3,Je),WP(4,EDe)],bx);_i(bx.ID,bx,2);tA(dj);Ve(new class extends Gs{constructor(){super({id:IDe,precondition:hne,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){var i;(i=bx.get(e))==null||i.changeDropType()}});Ve(new class extends Gs{constructor(){super({id:"editor.hideDropWidget",precondition:hne,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e,t){var i;(i=bx.get(e))==null||i.clearWidgets()}});Vn.as(Qu.Configuration).registerConfiguration({...QN,properties:{[kDe]:{type:"object",scope:5,description:v("defaultProviderDescription","Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});const po=class po{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const s=i.options;if(s===po._FIND_MATCH_DECORATION||s===po._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let s=0,r=this._decorations.length;s<r;s++){const o=this._editor.getModel().getDecorationRange(this._decorations[s]);if(e.equalsRange(o)){t=this._decorations[s],i=s+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(s=>{if(this._highlightedDecorationId!==null&&(s.changeDecorationOptions(this._highlightedDecorationId,po._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,s.changeDecorationOptions(this._highlightedDecorationId,po._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(s.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let r=this._editor.getModel().getDecorationRange(t);if(r.startLineNumber!==r.endLineNumber&&r.endColumn===1){const o=r.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(o);r=new O(r.startLineNumber,r.startColumn,o,a)}this._rangeHighlightDecorationId=s.addDecoration(r,po._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let s=po._FIND_MATCH_DECORATION;const r=[];if(e.length>1e3){s=po._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/a,u=Math.max(2,Math.ceil(3/c));let h=e[0].range.startLineNumber,d=e[0].range.endLineNumber;for(let f=1,p=e.length;f<p;f++){const g=e[f].range;d+u>=g.startLineNumber?g.endLineNumber>d&&(d=g.endLineNumber):(r.push({range:new O(h,1,d,1),options:po._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),h=g.startLineNumber,d=g.endLineNumber)}r.push({range:new O(h,1,d,1),options:po._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const o=new Array(e.length);for(let a=0,l=e.length;a<l;a++)o[a]={range:e[a].range,options:s};this._decorations=i.deltaDecorations(this._decorations,o),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,r),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(a=>i.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,po._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],s=this._editor.getModel().getDecorationRange(i);if(!(!s||s.endLineNumber>e.lineNumber)){if(s.endLineNumber<e.lineNumber)return s;if(!(s.endColumn>e.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;t<i;t++){const s=this._decorations[t],r=this._editor.getModel().getDecorationRange(s);if(!(!r||r.startLineNumber<e.lineNumber)){if(r.startLineNumber>e.lineNumber)return r;if(!(r.startColumn<e.column))return r}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}};po._CURRENT_FIND_MATCH_DECORATION=At.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:Gn(Q7),position:cc.Center},minimap:{color:Gn(Vz),position:1}}),po._FIND_MATCH_DECORATION=At.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:Gn(Q7),position:cc.Center},minimap:{color:Gn(Vz),position:1}}),po._FIND_MATCH_NO_OVERVIEW_DECORATION=At.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0}),po._FIND_MATCH_ONLY_OVERVIEW_DECORATION=At.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:Gn(Q7),position:cc.Center}}),po._RANGE_HIGHLIGHT_DECORATION=At.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0}),po._FIND_SCOPE_DECORATION=At.register({description:"find-scope",className:"findScope",isWholeLine:!0});let aK=po;class jIt{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const i=[];for(let o=0;o<this._ranges.length;o++)i.push({range:this._ranges[o],text:this._replaceStrings[o]});i.sort((o,a)=>O.compareRangesUsingStarts(o.range,a.range));const s=[];let r=i[0];for(let o=1;o<i.length;o++)r.range.endLineNumber===i[o].range.startLineNumber&&r.range.endColumn===i[o].range.startColumn?(r.range=r.range.plusRange(i[o].range),r.text=r.text+i[o].text):(s.push(r),r=i[o]);s.push(r);for(const o of s)t.addEditOperation(o.range,o.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function TDe(n,e){if(n&&n[0]!==""){const t=spe(n,e,"-"),i=spe(n,e,"_");return t&&!i?rpe(n,e,"-"):!t&&i?rpe(n,e,"_"):n[0].toUpperCase()===n[0]?e.toUpperCase():n[0].toLowerCase()===n[0]?e.toLowerCase():xct(n[0][0])&&e.length>0?e[0].toUpperCase()+e.substr(1):n[0][0].toUpperCase()!==n[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function spe(n,e,t){return n[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&n[0].split(t).length===e.split(t).length}function rpe(n,e,t){const i=e.split(t),s=n[0].split(t);let r="";return i.forEach((o,a)=>{r+=TDe([s[a]],o)+t}),r.slice(0,-1)}class ope{constructor(e){this.staticValue=e,this.kind=0}}class qIt{constructor(e){this.pieces=e,this.kind=1}}class yx{static fromStaticValue(e){return new yx([Ib.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new ope(""):e.length===1&&e[0].staticValue!==null?this._state=new ope(e[0].staticValue):this._state=new qIt(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?TDe(e,this._state.staticValue):this._state.staticValue;let i="";for(let s=0,r=this._state.pieces.length;s<r;s++){const o=this._state.pieces[s];if(o.staticValue!==null){i+=o.staticValue;continue}let a=yx._substitute(o.matchIndex,e);if(o.caseOps!==null&&o.caseOps.length>0){const l=[],c=o.caseOps.length;let u=0;for(let h=0,d=a.length;h<d;h++){if(u>=c){l.push(a.slice(h));break}switch(o.caseOps[u]){case"U":l.push(a[h].toUpperCase());break;case"u":l.push(a[h].toUpperCase()),u++;break;case"L":l.push(a[h].toLowerCase());break;case"l":l.push(a[h].toLowerCase()),u++;break;default:l.push(a[h])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let i="";for(;e>0;){if(e<t.length)return(t[e]||"")+i;i=String(e%10)+i,e=Math.floor(e/10)}return"$"+i}}class Ib{static staticValue(e){return new Ib(e,-1,null)}static caseOps(e,t){return new Ib(null,e,t)}constructor(e,t,i){this.staticValue=e,this.matchIndex=t,!i||i.length===0?this.caseOps=null:this.caseOps=i.slice(0)}}class KIt{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Ib.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=Ib.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Ib.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new yx(this._result)}}function GIt(n){if(!n||n.length===0)return new yx(null);const e=[],t=new KIt(n);for(let i=0,s=n.length;i<s;i++){const r=n.charCodeAt(i);if(r===92){if(i++,i>=s)break;const o=n.charCodeAt(i);switch(o){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(` +`,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(o));break}continue}if(r===36){if(i++,i>=s)break;const o=n.charCodeAt(i);if(o===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(o===48||o===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=o&&o<=57){let a=o-48;if(i+1<s){const l=n.charCodeAt(i+1);if(48<=l&&l<=57){i++,a=a*10+(l-48),t.emitUnchanged(i-2),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}t.emitUnchanged(i-1),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}}return t.finalize()}const om=new $e("findWidgetVisible",!1);om.toNegated();const K8=new $e("findInputFocussed",!1),dne=new $e("replaceInputFocussed",!1),VP={primary:545,mac:{primary:2593}},HP={primary:565,mac:{primary:2613}},$P={primary:560,mac:{primary:2608}},zP={primary:554,mac:{primary:2602}},UP={primary:558,mac:{primary:2606}},fn={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",StartFindWithArgs:"editor.actions.findWithArgs",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",GoToMatchFindAction:"editor.action.goToMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},f1=19999,XIt=240;class Zk{constructor(e,t){this._toDispose=new be,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new Zu,this._decorations=new aK(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new ji(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Yi(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},XIt)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t<"u"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new O(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const s=this._findMatches(i,!1,f1);this._decorations.set(s,i);const r=this._editor.getSelection();let o=this._decorations.getCurrentMatchesPosition(r);if(o===0&&s.length>0){const a=zT(s.map(l=>l.range),l=>O.compareRangesUsingStarts(l,r)>=0);o=a>0?a-1+1:o}this._state.changeMatchInfo(o,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:s}=e;const r=this._editor.getModel();return t||s===1?(i===1?i=r.getLineCount():i--,s=r.getLineMaxColumn(i)):s--,new se(i,s)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const u=this._decorations.matchAfterPosition(e);u&&this._setCurrentFindMatch(u);return}if(this._decorations.getCount()<f1){let u=this._decorations.matchBeforePosition(e);u&&u.isEmpty()&&u.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),u=this._decorations.matchBeforePosition(e)),u&&this._setCurrentFindMatch(u);return}if(this._cannotFind())return;const i=this._decorations.getFindScope(),s=Zk._getSearchRange(this._editor.getModel(),i);s.getEndPosition().isBefore(e)&&(e=s.getEndPosition()),e.isBefore(s.getStartPosition())&&(e=s.getEndPosition());const{lineNumber:r,column:o}=e,a=this._editor.getModel();let l=new se(r,o),c=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1);if(c&&c.range.isEmpty()&&c.range.getStartPosition().equals(l)&&(l=this._prevSearchPosition(l),c=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1)),!!c){if(!t&&!s.containsRange(c.range))return this._moveToPrevMatch(c.range.getStartPosition(),!0);this._setCurrentFindMatch(c.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:s}=e;const r=this._editor.getModel();return t||s===r.getLineMaxColumn(i)?(i===r.getLineCount()?i=1:i++,s=1):s++,new se(i,s)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()<f1){let i=this._decorations.matchAfterPosition(e);i&&i.isEmpty()&&i.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),i=this._decorations.matchAfterPosition(e)),i&&this._setCurrentFindMatch(i);return}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i,s=!1){if(this._cannotFind())return null;const r=this._decorations.getFindScope(),o=Zk._getSearchRange(this._editor.getModel(),r);o.getEndPosition().isBefore(e)&&(e=o.getStartPosition()),e.isBefore(o.getStartPosition())&&(e=o.getStartPosition());const{lineNumber:a,column:l}=e,c=this._editor.getModel();let u=new se(a,l),h=c.findNextMatch(this._state.searchString,u,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,t);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(u)&&(u=this._nextSearchPosition(u),h=c.findNextMatch(this._state.searchString,u,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,t)),h?!s&&!o.containsRange(h.range)?this._getNextMatch(h.range.getEndPosition(),t,i,!0):h:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){const t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?GIt(this._state.replaceString):yx.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const s=e.buildReplaceString(i.matches,this._state.preserveCase),r=new Wr(t,s);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new se(t.startLineNumber,t.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const s=(e||[null]).map(r=>Zk._getSearchRange(this._editor.getModel(),r));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=f1?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new mv(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let h="mu";i.ignoreCase&&(h+="i"),i.global&&(h+="g"),i=new RegExp(i.source,h)}const s=this._editor.getModel(),r=s.getValue(1),o=s.getFullModelRange(),a=this._getReplacePattern();let l;const c=this._state.preserveCase;a.hasReplacementPatterns||c?l=r.replace(i,function(){return a.buildReplaceString(arguments,c)}):l=r.replace(i,a.buildReplaceString(null,c));const u=new Oee(o,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",u)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let o=0,a=i.length;o<a;o++)s[o]=t.buildReplaceString(i[o].matches,this._state.preserveCase);const r=new jIt(this._editor.getSelection(),i.map(o=>o.range),s);this._executeEditorCommand("replaceAll",r)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(r=>new nt(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn));const s=this._editor.getSelection();for(let r=0,o=i.length;r<o;r++)if(i[r].equalsRange(s)){i=[s].concat(i.slice(0,r)).concat(i.slice(r+1));break}this._editor.setSelections(i)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}const q3=class q3 extends bc{constructor(e,t,i){super(),this._hideSoon=this._register(new ji(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const s={inputActiveOptionBorder:Ue(o8),inputActiveOptionForeground:Ue(a8),inputActiveOptionBackground:Ue(PN)},r=this._register(rx());this.caseSensitive=this._register(new XTe({appendTitle:this._keybindingLabelFor(fn.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:r,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new YTe({appendTitle:this._keybindingLabelFor(fn.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:r,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new ZTe({appendTitle:this._keybindingLabelFor(fn.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:r,...s})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(o=>{let a=!1;o.isRegex&&(this.regex.checked=this._state.isRegex,a=!0),o.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,a=!0),o.matchCase&&(this.caseSensitive.checked=this._state.matchCase,a=!0),!this._state.isRevealed&&a&&this._revealTemporarily()})),this._register(ge(this._domNode,Ae.MOUSE_LEAVE,o=>this._onMouseLeave())),this._register(ge(this._domNode,"mouseover",o=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return q3.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}};q3.ID="editor.contrib.findOptionsWidget";let lK=q3;function jP(n,e){return n===1?!0:n===2?!1:e}class YIt extends ue{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return jP(this._isRegexOverride,this._isRegex)}get wholeWord(){return jP(this._wholeWordOverride,this._wholeWord)}get matchCase(){return jP(this._matchCaseOverride,this._matchCase)}get preserveCase(){return jP(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new oe),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const s={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let r=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,s.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,s.matchesCount=!0,r=!0),typeof i<"u"&&(O.equalsRange(this._currentMatch,i)||(this._currentMatch=i,s.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(s)}change(e,t,i=!0){var u;const s={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let r=!1;const o=this.isRegex,a=this.wholeWord,l=this.matchCase,c=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,s.searchString=!0,r=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,s.replaceString=!0,r=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,s.isRevealed=!0,r=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,s.isReplaceRevealed=!0,r=!0),typeof e.isRegex<"u"&&(this._isRegex=e.isRegex),typeof e.wholeWord<"u"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<"u"&&(this._matchCase=e.matchCase),typeof e.preserveCase<"u"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<"u"&&((u=e.searchScope)!=null&&u.every(h=>{var d;return(d=this._searchScope)==null?void 0:d.some(f=>!O.equalsRange(f,h))})||(this._searchScope=e.searchScope,s.searchScope=!0,r=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,s.loop=!0,r=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,s.isSearching=!0,r=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,s.filters=!0,r=!0),this._isRegexOverride=typeof e.isRegexOverride<"u"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<"u"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<"u"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<"u"?e.preserveCaseOverride:0,o!==this.isRegex&&(r=!0,s.isRegex=!0),a!==this.wholeWord&&(r=!0,s.wholeWord=!0),l!==this.matchCase&&(r=!0,s.matchCase=!0),c!==this.preserveCase&&(r=!0,s.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(s)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=f1}}const ZIt=v("defaultLabel","input"),QIt=v("label.preserveCaseToggle","Preserve Case");class JIt extends LL{constructor(e){super({icon:Ne.preserveCase,title:QIt+e.appendTitle,isChecked:e.isChecked,hoverDelegate:e.hoverDelegate??ua("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class eTt extends bc{constructor(e,t,i,s){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new oe),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new oe),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new oe),this._onInput=this._register(new oe),this._onKeyUp=this._register(new oe),this._onPreserveCaseKeyDown=this._register(new oe),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||ZIt;const r=s.appendPreserveCaseLabel||"",o=s.history||[],a=!!s.flexibleHeight,l=!!s.flexibleWidth,c=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new QTe(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:o,showHistoryHint:s.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:c,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new JIt({appendTitle:r,isChecked:!1,...s.toggleStyles})),this._register(this.preserveCase.onChange(d=>{this._onDidOptionChange.fire(d),!d&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(d=>{this._onPreserveCaseKeyDown.fire(d)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const u=[this.preserveCase.domNode];this.onkeydown(this.domNode,d=>{if(d.equals(15)||d.equals(17)||d.equals(9)){const f=u.indexOf(this.domNode.ownerDocument.activeElement);if(f>=0){let p=-1;d.equals(17)?p=(f+1)%u.length:d.equals(15)&&(f===0?p=u.length-1:p=f-1),d.equals(9)?(u[f].blur(),this.inputBox.focus()):p>=0&&u[p].focus(),ci.stop(d,!0)}}});const h=document.createElement("div");h.className="controls",h.style.display=this._showOptionButtons?"block":"none",h.appendChild(this.preserveCase.domNode),this.domNode.appendChild(h),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,d=>this._onKeyDown.fire(d)),this.onkeyup(this.inputBox.inputElement,d=>this._onKeyUp.fire(d)),this.oninput(this.inputBox.inputElement,d=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,d=>this._onMouseDown.fire(d))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;(e=this.inputBox)==null||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var DDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},NDe=function(n,e){return function(t,i){e(t,i,n)}};const fne=new $e("suggestWidgetVisible",!1,v("suggestWidgetVisible","Whether suggestion are visible")),pne="historyNavigationWidgetFocus",ADe="historyNavigationForwardsEnabled",PDe="historyNavigationBackwardsEnabled";let Lg;const qP=[];function RDe(n,e){if(qP.includes(e))throw new Error("Cannot register the same widget multiple times");qP.push(e);const t=new be,i=new $e(pne,!1).bindTo(n),s=new $e(ADe,!0).bindTo(n),r=new $e(PDe,!0).bindTo(n),o=()=>{i.set(!0),Lg=e},a=()=>{i.set(!1),Lg===e&&(Lg=void 0)};return FB(e.element)&&o(),t.add(e.onDidFocus(()=>o())),t.add(e.onDidBlur(()=>a())),t.add(lt(()=>{qP.splice(qP.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:r,dispose(){t.dispose()}}}let cK=class extends JTe{constructor(e,t,i,s){super(e,t,i);const r=this._register(s.createScoped(this.inputBox.element));this._register(RDe(r,this.inputBox))}};cK=DDe([NDe(3,bt)],cK);let uK=class extends eTt{constructor(e,t,i,s,r=!1){super(e,t,r,i);const o=this._register(s.createScoped(this.inputBox.element));this._register(RDe(o,this.inputBox))}};uK=DDe([NDe(3,bt)],uK);aa.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:ye.and(ye.has(pne),ye.equals(PDe,!0),ye.not("isComposing"),fne.isEqualTo(!1)),primary:16,secondary:[528],handler:n=>{Lg==null||Lg.showPreviousValue()}});aa.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:ye.and(ye.has(pne),ye.equals(ADe,!0),ye.not("isComposing"),fne.isEqualTo(!1)),primary:18,secondary:[530],handler:n=>{Lg==null||Lg.showNextValue()}});function ape(n){var e,t;return((e=n.lookupKeybinding("history.showPrevious"))==null?void 0:e.getElectronAccelerator())==="Up"&&((t=n.lookupKeybinding("history.showNext"))==null?void 0:t.getElectronAccelerator())==="Down"}const lpe=_n("find-collapsed",Ne.chevronRight,v("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),cpe=_n("find-expanded",Ne.chevronDown,v("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),tTt=_n("find-selection",Ne.selection,v("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),iTt=_n("find-replace",Ne.replace,v("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),nTt=_n("find-replace-all",Ne.replaceAll,v("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),sTt=_n("find-previous-match",Ne.arrowUp,v("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),rTt=_n("find-next-match",Ne.arrowDown,v("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),oTt=v("label.findDialog","Find / Replace"),aTt=v("label.find","Find"),lTt=v("placeholder.find","Find"),cTt=v("label.previousMatchButton","Previous Match"),uTt=v("label.nextMatchButton","Next Match"),hTt=v("label.toggleSelectionFind","Find in Selection"),dTt=v("label.closeButton","Close"),fTt=v("label.replace","Replace"),pTt=v("placeholder.replace","Replace"),gTt=v("label.replaceButton","Replace"),mTt=v("label.replaceAllButton","Replace All"),_Tt=v("label.toggleReplaceButton","Toggle Replace"),vTt=v("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",f1),bTt=v("label.matchesLocation","{0} of {1}"),upe=v("label.noResults","No results"),Ld=419,yTt=275,wTt=yTt-54;let CE=69;const CTt=33,hpe="ctrlEnterReplaceAll.windows.donotask",dpe=ni?256:2048;class JW{constructor(e){this.afterLineNumber=e,this.heightInPx=CTt,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function fpe(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){n.stopPropagation();return}}function ppe(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEnd<t.value.length){n.stopPropagation();return}}const K3=class K3 extends bc{constructor(e,t,i,s,r,o,a,l,c,u){super(),this._hoverService=u,this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=s,this._keybindingService=r,this._contextKeyService=o,this._storageService=l,this._notificationService=c,this._ctrlEnterReplaceAllWarningPrompted=!!l.getBoolean(hpe,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new $u(500),this._register(lt(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(h=>this._onStateChanged(h))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(h=>{if(h.hasChanged(92)&&(this._codeEditor.getOption(92)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),h.hasChanged(146)&&this._tryUpdateWidgetWidth(),h.hasChanged(2)&&this.updateAccessibilitySupport(),h.hasChanged(41)){const d=this._codeEditor.getOption(41).loop;this._state.change({loop:d},!1);const f=this._codeEditor.getOption(41).addExtraSpaceOnTop;f&&!this._viewZone&&(this._viewZone=new JW(0),this._showViewZone()),!f&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const h=await this._controller.getGlobalBufferTerm();h&&h!==this._state.searchString&&(this._state.change({searchString:h},!1),this._findInput.select())}})),this._findInputFocused=K8.bindTo(o),this._findFocusTracker=this._register(Zh(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=dne.bindTo(o),this._replaceFocusTracker=this._register(Zh(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new JW(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(h=>{if(h.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return K3.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(92)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Ja(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Nt)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){var t;this._matchesCount.style.minWidth=CE+"px",this._state.matchesCount>=f1?this._matchesCount.title=vTt:this._matchesCount.title="",(t=this._matchesCount.firstChild)==null||t.remove();let e;if(this._state.matchesCount>0){let i=String(this._state.matchesCount);this._state.matchesCount>=f1&&(i+="+");let s=String(this._state.matchesPosition);s==="0"&&(s="?"),e=zy(bTt,s,i)}else e=upe;this._matchesCount.appendChild(document.createTextNode(e)),yl(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),CE=Math.max(CE,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===upe)return i===""?v("ariaSearchNoResultEmpty","{0} found",e):v("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const s=v("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),r=this._codeEditor.getModel();return r&&t.startLineNumber<=r.getLineCount()&&t.startLineNumber>=1?`${r.getLineContent(t.startLineNumber)}, ${s}`:s}return v("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(92);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const s=ps(i),r=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),o=s.left+(r?r.left:0),a=r?r.top:0;if(this._viewZone&&a<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const l=uLe(this._domNode).left;o>l&&(t=!1);const c=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());s.left+(c?c.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(s=>{i.heightInPx=this._getHeight(),this._viewZoneId=s.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new JW(0));const i=this._viewZone;this._codeEditor.changeViewZones(s=>{if(this._viewZoneId!==void 0){const r=this._getHeight();if(r===i.heightInPx)return;const o=r-i.heightInPx;i.heightInPx=r,s.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o);return}else{let r=this._getHeight();if(r-=this._codeEditor.getOption(84).top,r<=0)return;i.heightInPx=r,this._viewZoneId=s.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,s=e.minimap.minimapWidth;let r=!1,o=!1,a=!1;if(this._resized&&Ja(this._domNode)>Ld){this._domNode.style.maxWidth=`${i-28-s-15}px`,this._replaceInput.width=Ja(this._findInput.domNode);return}if(Ld+28+s>=i&&(o=!0),Ld+28+s-CE>=i&&(a=!0),Ld+28+s-CE>=i+50&&(r=!0),this._domNode.classList.toggle("collapsed-find-widget",r),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",o),!a&&!r&&(this._domNode.style.maxWidth=`${i-28-s-15}px`),this._findInput.layout({collapsedFindWidget:r,narrowFindWidget:a,reducedFindWidget:o}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!O.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(dpe|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return fpe(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return ppe(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(dpe|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{qr&&Oh&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(v("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(hpe,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return fpe(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return ppe(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new cK(null,this._contextViewProvider,{width:wTt,label:aTt,placeholder:lTt,appendCaseSensitiveLabel:this._keybindingLabelFor(fn.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(fn.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(fn.ToggleRegexCommand),validation:u=>{if(u.length===0||!this._findInput.getRegex())return null;try{return new RegExp(u,"gu"),null}catch(h){return{content:h.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>ape(this._keybindingService),inputBoxStyles:p4,toggleStyles:f4},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(u=>this._onFindInputKeyDown(u))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(u=>{u.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),u.preventDefault())})),this._register(this._findInput.onRegexKeyDown(u=>{u.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),u.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(u=>{this._tryUpdateHeight()&&this._showViewZone()})),ra&&this._register(this._findInput.onMouseDown(u=>this._onFindInputMouseDown(u))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const i=this._register(rx());this._prevBtn=this._register(new gw({label:cTt+this._keybindingLabelFor(fn.PreviousMatchFindAction),icon:sTt,hoverDelegate:i,onTrigger:()=>{i1(this._codeEditor.getAction(fn.PreviousMatchFindAction)).run().then(void 0,Nt)}},this._hoverService)),this._nextBtn=this._register(new gw({label:uTt+this._keybindingLabelFor(fn.NextMatchFindAction),icon:rTt,hoverDelegate:i,onTrigger:()=>{i1(this._codeEditor.getAction(fn.NextMatchFindAction)).run().then(void 0,Nt)}},this._hoverService));const s=document.createElement("div");s.className="find-part",s.appendChild(this._findInput.domNode);const r=document.createElement("div");r.className="find-actions",s.appendChild(r),r.appendChild(this._matchesCount),r.appendChild(this._prevBtn.domNode),r.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new LL({icon:tTt,title:hTt+this._keybindingLabelFor(fn.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:i,inputActiveOptionBackground:Ue(PN),inputActiveOptionBorder:Ue(o8),inputActiveOptionForeground:Ue(a8)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let u=this._codeEditor.getSelections();u=u.map(h=>(h.endColumn===1&&h.endLineNumber>h.startLineNumber&&(h=h.setEndPosition(h.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(h.endLineNumber-1))),h.isEmpty()?null:h)).filter(h=>!!h),u.length&&this._state.change({searchScope:u},!0)}}else this._state.change({searchScope:null},!0)})),r.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new gw({label:dTt+this._keybindingLabelFor(fn.CloseFindWidgetCommand),icon:cIe,hoverDelegate:i,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:u=>{u.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),u.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new uK(null,void 0,{label:fTt,placeholder:pTt,appendPreserveCaseLabel:this._keybindingLabelFor(fn.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>ape(this._keybindingService),inputBoxStyles:p4,toggleStyles:f4},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(u=>this._onReplaceInputKeyDown(u))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(u=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(u=>{u.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),u.preventDefault())}));const o=this._register(rx());this._replaceBtn=this._register(new gw({label:gTt+this._keybindingLabelFor(fn.ReplaceOneAction),icon:iTt,hoverDelegate:o,onTrigger:()=>{this._controller.replace()},onKeyDown:u=>{u.equals(1026)&&(this._closeBtn.focus(),u.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new gw({label:mTt+this._keybindingLabelFor(fn.ReplaceAllAction),icon:nTt,hoverDelegate:o,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const a=document.createElement("div");a.className="replace-part",a.appendChild(this._replaceInput.domNode);const l=document.createElement("div");l.className="replace-actions",a.appendChild(l),l.appendChild(this._replaceBtn.domNode),l.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new gw({label:_Tt,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=oTt,this._domNode.role="dialog",this._domNode.style.width=`${Ld}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(s),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(a),this._resizeSash=this._register(new Qr(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let c=Ld;this._register(this._resizeSash.onDidStart(()=>{c=Ja(this._domNode)})),this._register(this._resizeSash.onDidChange(u=>{this._resized=!0;const h=c+u.startX-u.currentX;if(h<Ld)return;const d=parseFloat(OB(this._domNode).maxWidth)||0;h>d||(this._domNode.style.width=`${h}px`,this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const u=Ja(this._domNode);if(u<Ld)return;let h=Ld;if(!this._resized||u===Ld){const d=this._codeEditor.getLayoutInfo();h=d.width-28-d.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${h}px`,this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2)}};K3.ID="editor.contrib.findWidget";let hK=K3;class gw extends bc{constructor(e,t){super(),this._opts=e;let i="button";this._opts.className&&(i=i+" "+this._opts.className),this._opts.icon&&(i=i+" "+ft.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=i,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(t.setupManagedHover(e.hoverDelegate??ua("element"),this._domNode,this._opts.label)),this.onclick(this._domNode,s=>{this._opts.onTrigger(),s.preventDefault()}),this.onkeydown(this._domNode,s=>{var r,o;if(s.equals(10)||s.equals(3)){this._opts.onTrigger(),s.preventDefault();return}(o=(r=this._opts).onKeyDown)==null||o.call(r,s)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...ft.asClassNameArray(lpe)),this._domNode.classList.add(...ft.asClassNameArray(cpe))):(this._domNode.classList.remove(...ft.asClassNameArray(cpe)),this._domNode.classList.add(...ft.asClassNameArray(lpe)))}}au((n,e)=>{const t=n.getColor(o1);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${Vh(n.type)?"dotted":"solid"} ${t}; box-sizing: border-box; }`);const i=n.getColor(spt);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${Vh(n.type)?"dashed":"solid"} ${i}; }`);const s=n.getColor(mi);s&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${s}; }`);const r=n.getColor(ipt);r&&e.addRule(`.monaco-editor .findMatchInline { color: ${r}; }`);const o=n.getColor(npt);o&&e.addRule(`.monaco-editor .currentFindMatchInline { color: ${o}; }`)});var MDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Dc=function(n,e){return function(t,i){e(t,i,n)}},dK;const STt=524288;function fK(n,e="single",t=!1){if(!n.hasModel())return null;const i=n.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const s=n.getConfiguredWordAtPosition(i.getStartPosition());if(s&&t===!1)return s.word}else if(n.getModel().getValueLengthInRange(i)<STt)return n.getModel().getValueInRange(i)}return null}var iy;let Oa=(iy=class extends ue{get editor(){return this._editor}static get(e){return e.getContribution(dK.ID)}constructor(e,t,i,s,r,o){super(),this._editor=e,this._findWidgetVisible=om.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=s,this._notificationService=r,this._hoverService=o,this._updateHistoryDelayer=new $u(500),this._state=this._register(new YIt),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const a=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),a&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!K8.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=dc(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if(e.seedSearchStringFromSelection==="single"){const s=fK(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);s&&(this._state.isRegex?i.searchString=dc(s):i.searchString=s)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const s=fK(this._editor,e.seedSearchStringFromSelection);s&&(i.searchString=s)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const s=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;s&&(i.searchString=s)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const s=this._editor.getSelections();s.some(r=>!r.isEmpty())&&(i.searchScope=s)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new Zk(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var e;return this._model?(e=this._editor.getModel())!=null&&e.isTooLargeForHeapOperation()?(this._notificationService.warn(v("too.large.for.replaceall","The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}},dK=iy,iy.ID="editor.contrib.findController",iy);Oa=dK=MDe([Dc(1,bt),Dc(2,Ju),Dc(3,nm),Dc(4,ms),Dc(5,rp)],Oa);let pK=class extends Oa{constructor(e,t,i,s,r,o,a,l,c){super(e,i,a,l,o,c),this._contextViewService=t,this._keybindingService=s,this._themeService=r,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let s=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":{s=!!i&&i.startLineNumber!==i.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||s,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new hK(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new lK(this._editor,this._state,this._keybindingService))}};pK=MDe([Dc(1,sm),Dc(2,bt),Dc(3,Ni),Dc(4,Xs),Dc(5,ms),Dc(6,Ju),Dc(7,nm),Dc(8,rp)],pK);const xTt=kLe(new ELe({id:fn.StartFindAction,label:v("startFindAction","Find"),alias:"Find",precondition:ye.or(H.focus,ye.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:et.MenubarEditMenu,group:"3_find",title:v({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}}));xTt.addImplementation(0,(n,e,t)=>{const i=Oa.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop}):!1});const LTt={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class ETt extends Xe{constructor(){super({id:fn.StartFindWithArgs,label:v("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:LTt})}async run(e,t,i){const s=Oa.get(t);if(s){const r=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:s.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},r),s.setGlobalBufferTerm(s.getState().searchString)}}}class kTt extends Xe{constructor(){super({id:fn.StartFindWithSelection,label:v("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=Oa.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}class ODe extends Xe{async run(e,t){const i=Oa.get(t);i&&!this._run(i)&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class ITt extends ODe{constructor(){super({id:fn.NextMatchFindAction,label:v("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:H.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:ye.and(H.focus,K8),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class TTt extends ODe{constructor(){super({id:fn.PreviousMatchFindAction,label:v("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:H.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:ye.and(H.focus,K8),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class DTt extends Xe{constructor(){super({id:fn.GoToMatchFindAction,label:v("findMatchAction.goToMatch","Go to Match..."),alias:"Go to Match...",precondition:om}),this._highlightDecorations=[]}run(e,t,i){const s=Oa.get(t);if(!s)return;const r=s.getState().matchesCount;if(r<1){e.get(ms).notify({severity:y8.Warning,message:v("findMatchAction.noResults","No matches. Try searching for something else.")});return}const a=e.get(cu).createInputBox();a.placeholder=v("findMatchAction.inputPlaceHolder","Type a number to go to a specific match (between 1 and {0})",r);const l=u=>{const h=parseInt(u);if(isNaN(h))return;const d=s.getState().matchesCount;if(h>0&&h<=d)return h-1;if(h<0&&h>=-d)return d+h},c=u=>{const h=l(u);if(typeof h=="number"){a.validationMessage=void 0,s.goToMatch(h);const d=s.getState().currentMatch;d&&this.addDecorations(t,d)}else a.validationMessage=v("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",s.getState().matchesCount),this.clearDecorations(t)};a.onDidChangeValue(u=>{c(u)}),a.onDidAccept(()=>{const u=l(a.value);typeof u=="number"?(s.goToMatch(u),a.hide()):a.validationMessage=v("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",s.getState().matchesCount)}),a.onDidHide(()=>{this.clearDecorations(t),a.dispose()}),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:Gn(FEe),position:cc.Full}}}])})}}class FDe extends Xe{async run(e,t){const i=Oa.get(t);if(!i)return;const s=fK(t,"single",!1);s&&i.setSearchString(s),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class NTt extends FDe{constructor(){super({id:fn.NextSelectionMatchFindAction,label:v("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class ATt extends FDe{constructor(){super({id:fn.PreviousSelectionMatchFindAction,label:v("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const PTt=kLe(new ELe({id:fn.StartFindReplaceAction,label:v("startReplace","Replace"),alias:"Replace",precondition:ye.or(H.focus,ye.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:et.MenubarEditMenu,group:"3_find",title:v({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}}));PTt.addImplementation(0,(n,e,t)=>{if(!e.hasModel()||e.getOption(92))return!1;const i=Oa.get(e);if(!i)return!1;const s=e.getSelection(),r=i.isFindInputFocused(),o=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&e.getOption(41).seedSearchStringFromSelection!=="never"&&!r,a=r||o?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:o?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop})});_i(Oa.ID,pK,0);Ie(ETt);Ie(kTt);Ie(ITt);Ie(TTt);Ie(DTt);Ie(NTt);Ie(ATt);const vd=Gs.bindToContribution(Oa.get);Ve(new vd({id:fn.CloseFindWidgetCommand,precondition:om,handler:n=>n.closeFindWidget(),kbOpts:{weight:105,kbExpr:ye.and(H.focus,ye.not("isComposing")),primary:9,secondary:[1033]}}));Ve(new vd({id:fn.ToggleCaseSensitiveCommand,precondition:void 0,handler:n=>n.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:H.focus,primary:VP.primary,mac:VP.mac,win:VP.win,linux:VP.linux}}));Ve(new vd({id:fn.ToggleWholeWordCommand,precondition:void 0,handler:n=>n.toggleWholeWords(),kbOpts:{weight:105,kbExpr:H.focus,primary:HP.primary,mac:HP.mac,win:HP.win,linux:HP.linux}}));Ve(new vd({id:fn.ToggleRegexCommand,precondition:void 0,handler:n=>n.toggleRegex(),kbOpts:{weight:105,kbExpr:H.focus,primary:$P.primary,mac:$P.mac,win:$P.win,linux:$P.linux}}));Ve(new vd({id:fn.ToggleSearchScopeCommand,precondition:void 0,handler:n=>n.toggleSearchScope(),kbOpts:{weight:105,kbExpr:H.focus,primary:zP.primary,mac:zP.mac,win:zP.win,linux:zP.linux}}));Ve(new vd({id:fn.TogglePreserveCaseCommand,precondition:void 0,handler:n=>n.togglePreserveCase(),kbOpts:{weight:105,kbExpr:H.focus,primary:UP.primary,mac:UP.mac,win:UP.win,linux:UP.linux}}));Ve(new vd({id:fn.ReplaceOneAction,precondition:om,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:H.focus,primary:3094}}));Ve(new vd({id:fn.ReplaceOneAction,precondition:om,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:ye.and(H.focus,dne),primary:3}}));Ve(new vd({id:fn.ReplaceAllAction,precondition:om,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:H.focus,primary:2563}}));Ve(new vd({id:fn.ReplaceAllAction,precondition:om,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:ye.and(H.focus,dne),primary:void 0,mac:{primary:2051}}}));Ve(new vd({id:fn.SelectAllMatchesAction,precondition:om,handler:n=>n.selectAllMatches(),kbOpts:{weight:105,kbExpr:H.focus,primary:515}}));const RTt={0:" ",1:"u",2:"r"},gpe=65535,mh=16777215,mpe=4278190080;class eV{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<<i)!==0}set(e,t){const i=e/32|0,s=e%32,r=this._states[i];t?this._states[i]=r|1<<s:this._states[i]=r&~(1<<s)}}class ql{constructor(e,t,i){if(e.length!==t.length||e.length>gpe)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new eV(e.length),this._userDefinedStates=new eV(e.length),this._recoveredStates=new eV(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,s)=>{const r=e[e.length-1];return this.getStartLineNumber(r)<=i&&this.getEndLineNumber(r)>=s};for(let i=0,s=this._startIndexes.length;i<s;i++){const r=this._startIndexes[i],o=this._endIndexes[i];if(r>mh||o>mh)throw new Error("startLineNumber or endLineNumber must not exceed "+mh);for(;e.length>0&&!t(r,o);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=r+((a&255)<<24),this._endIndexes[i]=o+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&mh}getEndLineNumber(e){return this._endIndexes[e]&mh}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let s=0;s<this._types.length;s++)this._types[s]===e&&(this.setCollapsed(s,t),i=!0);return i}toRegion(e){return new MTt(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&mpe)>>>24)+((this._endIndexes[e]&mpe)>>>16);return t===gpe?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t<i;){const s=Math.floor((t+i)/2);e<this.getStartLineNumber(s)?i=s:t=s+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]=`[${RTt[this.getSource(t)]}${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&mh,endLineNumber:this._endIndexes[e]&mh,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),s=new Uint32Array(t);let r=[],o=!1;for(let l=0;l<t;l++){const c=e[l];i[l]=c.startLineNumber,s[l]=c.endLineNumber,r.push(c.type),c.type&&(o=!0)}o||(r=void 0);const a=new ql(i,s,r);for(let l=0;l<t;l++)e[l].isCollapsed&&a.setCollapsed(l,!0),a.setSource(l,e[l].source);return a}static sanitizeAndMerge(e,t,i){i=i??Number.MAX_VALUE;const s=(g,m)=>Array.isArray(g)?_=>_<m?g[_]:void 0:_=>_<m?g.toFoldRange(_):void 0,r=s(e,e.length),o=s(t,t.length);let a=0,l=0,c=r(0),u=o(0);const h=[];let d,f=0;const p=[];for(;c||u;){let g;if(u&&(!c||c.startLineNumber>=u.startLineNumber))c&&c.startLineNumber===u.startLineNumber?(u.source===1?g=u:(g=c,g.isCollapsed=u.isCollapsed&&c.endLineNumber===u.endLineNumber,g.source=0),c=r(++a)):(g=u,u.isCollapsed&&u.source===0&&(g.source=2)),u=o(++l);else{let m=l,_=u;for(;;){if(!_||_.startLineNumber>c.endLineNumber){g=c;break}if(_.source===1&&_.endLineNumber>c.endLineNumber)break;_=o(++m)}c=r(++a)}if(g){for(;d&&d.endLineNumber<g.startLineNumber;)d=h.pop();g.endLineNumber>g.startLineNumber&&g.startLineNumber>f&&g.endLineNumber<=i&&(!d||d.endLineNumber>=g.endLineNumber)&&(p.push(g),f=g.startLineNumber,d&&h.push(d),d=g)}}return p}}class MTt{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class OTt{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new oe,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new ql(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,s)=>i.regionIndex-s.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let s=0,r=-1,o=-1;const a=l=>{for(;s<l;){const c=this._regions.getEndLineNumber(s),u=this._regions.isCollapsed(s);if(c<=r){const h=this.regions.getSource(s)!==0;i.changeDecorationOptions(this._editorDecorationIds[s],this._decorationProvider.getDecorationOption(u,c<=o,h))}u&&c>o&&(o=c),s++}};for(const l of e){const c=l.regionIndex,u=this._editorDecorationIds[c];if(u&&!t[u]){t[u]=!0,a(c);const h=!this._regions.isCollapsed(c);this._regions.setCollapsed(c,h),r=Math.max(r,this._regions.getEndLineNumber(c))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=s=>{for(const r of e)if(!(r.startLineNumber>s.endLineNumber||s.startLineNumber>r.endLineNumber))return!0;return!1};for(let s=0;s<this._regions.length;s++){const r=this._regions.toFoldRange(s);(r.source===0||!i(r))&&t.push(r)}this.updatePost(ql.fromFoldRanges(t))}update(e,t=[]){const i=this._currentFoldedOrManualRanges(t),s=ql.sanitizeAndMerge(e,i,this._textModel.getLineCount());this.updatePost(ql.fromFoldRanges(s))}updatePost(e){const t=[];let i=-1;for(let s=0,r=e.length;s<r;s++){const o=e.getStartLineNumber(s),a=e.getEndLineNumber(s),l=e.isCollapsed(s),c=e.getSource(s)!==0,u={startLineNumber:o,startColumn:this._textModel.getLineMaxColumn(o),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:u,options:this._decorationProvider.getDecorationOption(l,a<=i,c)}),l&&a>i&&(i=a)}this._decorationProvider.changeDecorations(s=>this._editorDecorationIds=s.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(s,r)=>{for(const o of e)if(s<o&&o<=r)return!0;return!1},i=[];for(let s=0,r=this._regions.length;s<r;s++){let o=this.regions.isCollapsed(s);const a=this.regions.getSource(s);if(o||a!==0){const l=this._regions.toFoldRange(s),c=this._textModel.getDecorationRange(this._editorDecorationIds[s]);c&&(o&&t(c.startLineNumber,c.endLineNumber)&&(o=!1),i.push({startLineNumber:c.startLineNumber,endLineNumber:c.endLineNumber,type:l.type,isCollapsed:o,source:a}))}}return i}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],i=this._textModel.getLineCount();for(let s=0,r=e.length;s<r;s++){const o=e[s];if(o.startLineNumber>=o.endLineNumber||o.startLineNumber<1||o.endLineNumber>i)continue;const a=this._getLinesChecksum(o.startLineNumber+1,o.endLineNumber);t.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,isCollapsed:o.isCollapsed,source:o.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){if(!Array.isArray(e))return;const t=[],i=this._textModel.getLineCount();for(const r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>i)continue;const o=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);(!r.checksum||o===r.checksum)&&t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:r.isCollapsed??!0,source:r.source??0})}const s=ql.sanitizeAndMerge(this._regions,t,i);this.updatePost(ql.fromFoldRanges(s))}_getLinesChecksum(e,t){return PB(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let s=this._regions.findRange(e),r=1;for(;s>=0;){const o=this._regions.toRegion(s);(!t||t(o,r))&&i.push(o),r++,s=o.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],s=e?e.regionIndex+1:0,r=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const o=[];for(let a=s,l=this._regions.length;a<l;a++){const c=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<r){for(;o.length>0&&!c.containedBy(o[o.length-1]);)o.pop();o.push(c),t(c,o.length)&&i.push(c)}else break}}else for(let o=s,a=this._regions.length;o<a;o++){const l=this._regions.toRegion(o);if(this._regions.getStartLineNumber(o)<r)(!t||t(l))&&i.push(l);else break}return i}}function gne(n,e,t){const i=[];for(const s of t){const r=n.getRegionAtLine(s);if(r){const o=!r.isCollapsed;if(i.push(r),e>1){const a=n.getRegionsInside(r,(l,c)=>l.isCollapsed!==o&&c<e);i.push(...a)}}}n.toggleCollapseState(i)}function EL(n,e,t=Number.MAX_VALUE,i){const s=[];if(i&&i.length>0)for(const r of i){const o=n.getRegionAtLine(r);if(o&&(o.isCollapsed!==e&&s.push(o),t>1)){const a=n.getRegionsInside(o,(l,c)=>l.isCollapsed!==e&&c<t);s.push(...a)}}else{const r=n.getRegionsInside(null,(o,a)=>o.isCollapsed!==e&&a<t);s.push(...r)}n.toggleCollapseState(s)}function BDe(n,e,t,i){const s=[];for(const r of i){const o=n.getAllRegionsAtLine(r,(a,l)=>a.isCollapsed!==e&&l<=t);s.push(...o)}n.toggleCollapseState(s)}function FTt(n,e,t){const i=[];for(const s of t){const r=n.getAllRegionsAtLine(s,o=>o.isCollapsed!==e);r.length>0&&i.push(r[0])}n.toggleCollapseState(i)}function BTt(n,e,t,i){const s=(o,a)=>a===e&&o.isCollapsed!==t&&!i.some(l=>o.containsLine(l)),r=n.getRegionsInside(null,s);n.toggleCollapseState(r)}function WDe(n,e,t){const i=[];for(const o of t){const a=n.getAllRegionsAtLine(o,void 0);a.length>0&&i.push(a[0])}const s=o=>i.every(a=>!a.containedBy(o)&&!o.containedBy(a))&&o.isCollapsed!==e,r=n.getRegionsInside(null,s);n.toggleCollapseState(r)}function mne(n,e,t){const i=n.textModel,s=n.regions,r=[];for(let o=s.length-1;o>=0;o--)if(t!==s.isCollapsed(o)){const a=s.getStartLineNumber(o);e.test(i.getLineContent(a))&&r.push(s.toRegion(o))}n.toggleCollapseState(r)}function _ne(n,e,t){const i=n.regions,s=[];for(let r=i.length-1;r>=0;r--)t!==i.isCollapsed(r)&&e===i.getType(r)&&s.push(i.toRegion(r));n.toggleCollapseState(s)}function WTt(n,e){let t=null;const i=e.getRegionAtLine(n);if(i!==null&&(t=i.startLineNumber,n===t)){const s=i.parentIndex;s!==-1?t=e.regions.getStartLineNumber(s):t=null}return t}function VTt(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){if(n!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let s=0;for(i!==-1&&(s=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber<n)return t.startLineNumber;t.regionIndex>0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function HTt(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){const i=t.parentIndex;let s=0;if(i!==-1)s=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;s=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex<e.regions.length){if(t=e.regions.toRegion(t.regionIndex+1),t.startLineNumber>=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>n)return t.startLineNumber;t.regionIndex<e.regions.length?t=e.regions.toRegion(t.regionIndex+1):t=null}return null}class $Tt{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new oe,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange(t=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||d_(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,s=0,r=Number.MAX_VALUE,o=-1;const a=this._foldingModel.regions;for(;i<a.length;i++){if(!a.isCollapsed(i))continue;const l=a.getStartLineNumber(i)+1,c=a.getEndLineNumber(i);r<=l&&c<=o||(!e&&s<this._hiddenRanges.length&&this._hiddenRanges[s].startLineNumber===l&&this._hiddenRanges[s].endLineNumber===c?(t.push(this._hiddenRanges[s]),s++):(e=!0,t.push(new O(l,1,c,1))),r=l,o=c)}(this._hasLineChanges||e||s<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return _pe(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let s=null;const r=o=>((!s||!zTt(o,s))&&(s=_pe(this._hiddenRanges,o)),s?s.startLineNumber-1:null);for(let o=0,a=e.length;o<a;o++){let l=e[o];const c=r(l.startLineNumber);c&&(l=l.setStartPosition(c,i.getLineMaxColumn(c)),t=!0);const u=r(l.endLineNumber);u&&(l=l.setEndPosition(u,i.getLineMaxColumn(u)),t=!0),e[o]=l}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function zTt(n,e){return n>=e.startLineNumber&&n<=e.endLineNumber}function _pe(n,e){const t=zT(n,i=>e<i.startLineNumber)-1;return t>=0&&n[t].endLineNumber>=e?n[t]:null}const UTt=5e3,jTt="indent";class vne{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=jTt}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,s=t&&t.markers;return Promise.resolve(GTt(this.editorModel,i,s,this.foldingRangesLimit))}}let qTt=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>mh||t>mh)return;const s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),s=new Uint32Array(this._length);for(let r=this._length-1,o=0;r>=0;r--,o++)i[o]=this._startIndexes[r],s[o]=this._endIndexes[r];return new ql(i,s)}else{this._foldingRangesLimit.update(this._length,t);let i=0,s=this._indentOccurrences.length;for(let l=0;l<this._indentOccurrences.length;l++){const c=this._indentOccurrences[l];if(c){if(c+i>t){s=l;break}i+=c}}const r=e.getOptions().tabSize,o=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,c=0;l>=0;l--){const u=this._startIndexes[l],h=e.getLineContent(u),d=m8(h,r);(d<s||d===s&&i++<t)&&(o[c]=u,a[c]=this._endIndexes[l],c++)}return new ql(o,a)}}};const KTt={limit:UTt,update:()=>{}};function GTt(n,e,t,i=KTt){const s=n.getOptions().tabSize,r=new qTt(i);let o;t&&(o=new RegExp(`(${t.start.source})|(?:${t.end.source})`));const a=[],l=n.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let c=n.getLineCount();c>0;c--){const u=n.getLineContent(c),h=m8(u,s);let d=a[a.length-1];if(h===-1){e&&(d.endAbove=c);continue}let f;if(o&&(f=u.match(o)))if(f[1]){let p=a.length-1;for(;p>0&&a[p].indent!==-2;)p--;if(p>0){a.length=p+1,d=a[p],r.insertFirst(c,d.line,h),d.line=c,d.indent=h,d.endAbove=c;continue}}else{a.push({indent:-2,endAbove:c,line:c});continue}if(d.indent>h){do a.pop(),d=a[a.length-1];while(d.indent>h);const p=d.endAbove-1;p-c>=1&&r.insertFirst(c,p,h)}d.indent===h?d.endAbove=c:a.push({indent:h,endAbove:c,line:c})}return r.toIndentRanges(n)}const XTt=U("editor.foldBackground",{light:jt(r1,.3),dark:jt(r1,.3),hcDark:null,hcLight:null},v("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},v("collapsedTextColor","Color of the collapsed text after the first line of a folded range."));U("editorGutter.foldingControlForeground",IF,v("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));const e2=_n("folding-expanded",Ne.chevronDown,v("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),t2=_n("folding-collapsed",Ne.chevronRight,v("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),vpe=_n("folding-manual-collapsed",t2,v("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),bpe=_n("folding-manual-expanded",e2,v("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin.")),tV={color:Gn(XTt),position:1},mw=v("linesCollapsed","Click to expand the range."),KP=v("linesExpanded","Click to collapse the range."),ws=class ws{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?ws.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?ws.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:ws.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:ws.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?ws.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:ws.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?ws.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:ws.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?ws.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:ws.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?ws.MANUALLY_EXPANDED_VISUAL_DECORATION:ws.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}};ws.COLLAPSED_VISUAL_DECORATION=At.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:mw,firstLineDecorationClassName:ft.asClassName(t2)}),ws.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=At.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:tV,isWholeLine:!0,linesDecorationsTooltip:mw,firstLineDecorationClassName:ft.asClassName(t2)}),ws.MANUALLY_COLLAPSED_VISUAL_DECORATION=At.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:mw,firstLineDecorationClassName:ft.asClassName(vpe)}),ws.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=At.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:tV,isWholeLine:!0,linesDecorationsTooltip:mw,firstLineDecorationClassName:ft.asClassName(vpe)}),ws.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=At.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:mw}),ws.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=At.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:tV,isWholeLine:!0,linesDecorationsTooltip:mw}),ws.EXPANDED_VISUAL_DECORATION=At.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ft.asClassName(e2),linesDecorationsTooltip:KP}),ws.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=At.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:ft.asClassName(e2),linesDecorationsTooltip:KP}),ws.MANUALLY_EXPANDED_VISUAL_DECORATION=At.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ft.asClassName(bpe),linesDecorationsTooltip:KP}),ws.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=At.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:ft.asClassName(bpe),linesDecorationsTooltip:KP}),ws.NO_CONTROLS_EXPANDED_RANGE_DECORATION=At.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),ws.HIDDEN_RANGE_DECORATION=At.register({description:"folding-hidden-range-decoration",stickiness:1});let gK=ws;const YTt={},ZTt="syntax";class bne{constructor(e,t,i,s,r){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=s,this.fallbackRangeProvider=r,this.id=ZTt,this.disposables=new be,r&&this.disposables.add(r);for(const o of t)typeof o.onDidChange=="function"&&this.disposables.add(o.onDidChange(i))}compute(e){return QTt(this.providers,this.editorModel,e).then(t=>{var i;return t?eDt(t,this.foldingRangesLimit):((i=this.fallbackRangeProvider)==null?void 0:i.compute(e))??null})}dispose(){this.disposables.dispose()}}function QTt(n,e,t){let i=null;const s=n.map((r,o)=>Promise.resolve(r.provideFoldingRanges(e,YTt,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const c of a)c.start>0&&c.end>c.start&&c.end<=l&&i.push({start:c.start,end:c.end,rank:o,kind:c.kind})}},ls));return Promise.all(s).then(r=>i)}class JTt{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,s){if(e>mh||t>mh)return;const r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=s,this._types[r]=i,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=0;s<this._length;s++)t[s]=this._startIndexes[s],i[s]=this._endIndexes[s];return new ql(t,i,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._nestingLevelCounts.length;for(let a=0;a<this._nestingLevelCounts.length;a++){const l=this._nestingLevelCounts[a];if(l){if(l+t>e){i=a;break}t+=l}}const s=new Uint32Array(e),r=new Uint32Array(e),o=[];for(let a=0,l=0;a<this._length;a++){const c=this._nestingLevels[a];(c<i||c===i&&t++<e)&&(s[l]=this._startIndexes[a],r[l]=this._endIndexes[a],o[l]=this._types[a],l++)}return new ql(s,r,o)}}}function eDt(n,e){const t=n.sort((o,a)=>{let l=o.start-a.start;return l===0&&(l=o.rank-a.rank),l}),i=new JTt(e);let s;const r=[];for(const o of t)if(!s)s=o,i.add(o.start,o.end,o.kind&&o.kind.value,r.length);else if(o.start>s.start)if(o.end<=s.end)r.push(s),s=o,i.add(o.start,o.end,o.kind&&o.kind.value,r.length);else{if(o.start>s.end){do s=r.pop();while(s&&o.start>s.end);s&&r.push(s),s=o}i.add(o.start,o.end,o.kind&&o.kind.value,r.length)}return i.toIndentRanges()}var tDt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},SE=function(n,e){return function(t,i){e(t,i,n)}},wv;const Gr=new $e("foldingEnabled",!1);var ny;let y_=(ny=class extends ue{static get(e){return e.getContribution(wv.ID)}static getFoldingRangeProviders(e,t){var s;const i=e.foldingRangeProvider.ordered(t);return((s=wv._foldingRangeSelector)==null?void 0:s.call(wv,i,t))??i}constructor(e,t,i,s,r,o){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=o,this.localToDispose=this._register(new be),this.editor=e,this._foldingLimitReporter=new VDe(e);const a=this.editor.getOptions();this._isEnabled=a.get(43),this._useFoldingProviders=a.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=a.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(46),this.updateDebounceInfo=r.for(o.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new gK(e),this.foldingDecorationProvider.showFoldingControls=a.get(111),this.foldingDecorationProvider.showFoldingHighlights=a.get(45),this.foldingEnabled=Gr.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(47)&&this.onModelChanged(),l.hasChanged(111)||l.hasChanged(45)){const c=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=c.get(111),this.foldingDecorationProvider.showFoldingHighlights=c.get(45),this.triggerFoldingModelChanged()}l.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),l.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),l.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new OTt(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new $Tt(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new $u(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new ji(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)==null||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(i=this.rangeProvider)==null||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)==null||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new vne(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=wv.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new bne(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)==null||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;const t=new Nr,i=this.getRangeProvider(e.textModel),s=this.foldingRegionPromise=tr(r=>i.compute(r));return s.then(r=>{if(r&&s===this.foldingRegionPromise){let o;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const u=r.setCollapsedAllOfType(h_.Imports.value,!0);u&&(o=id.capture(this.editor),this._currentModelHasFoldedImports=u)}const a=this.editor.getSelections(),l=a?a.map(u=>u.startLineNumber):[];e.update(r,l),o==null||o.restore(this.editor);const c=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=c)}return e})}).then(void 0,e=>(Nt(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const s=[];for(const r of i){const o=r.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(o)&&s.push(...t.getAllRegionsAtLine(o,a=>a.isCollapsed&&o>a.startLineNumber))}s.length&&(t.toggleCollapseState(s),this.reveal(i[0].getPosition()))}}}).then(void 0,Nt)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const s=e.target.detail,r=e.target.element.offsetLeft;if(s.offsetX-r<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const s=this.editor.getModel();if(s&&t.startColumn===s.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,r=e.target.range;if(!r||r.startLineNumber!==i)return;if(s){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||r.startColumn!==a.getLineMaxColumn(i))return}const o=t.getRegionAtLine(i);if(o&&o.startLineNumber===i){const a=o.isCollapsed;if(s||a){const l=e.event.altKey;let c=[];if(l){const u=d=>!d.containedBy(o)&&!o.containedBy(d),h=t.getRegionsInside(null,u);for(const d of h)d.isCollapsed&&c.push(d);c.length===0&&(c=h)}else{const u=e.event.middleButton||e.event.shiftKey;if(u)for(const h of t.getRegionsInside(o))h.isCollapsed===a&&c.push(h);(a||!u||c.length===0)&&c.push(o)}t.toggleCollapseState(c),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}},wv=ny,ny.ID="editor.contrib.folding",ny);y_=wv=tDt([SE(1,bt),SE(2,ln),SE(3,ms),SE(4,wc),SE(5,Je)],y_);class VDe{constructor(e){this.editor=e,this._onDidChange=new oe,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class uo extends Xe{runEditorCommand(e,t,i){const s=e.get(ln),r=y_.get(t);if(!r)return;const o=r.getFoldingModel();if(o)return this.reportTelemetry(e,t),o.then(a=>{if(a){this.invoke(r,a,t,i,s);const l=t.getSelection();l&&r.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function HDe(n){if(!ko(n)){if(!fr(n))return!1;const e=n;if(!ko(e.levels)&&!t_(e.levels)||!ko(e.direction)&&!Da(e.direction)||!ko(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(t_)))return!1}return!0}class iDt extends uo{constructor(){super({id:"editor.unfold",label:v("unfoldAction.label","Unfold"),alias:"Unfold",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to unfold. If not set, defaults to 1. + * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. + `,constraint:HDe,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,s){const r=s&&s.levels||1,o=this.getLineNumbers(s,i);s&&s.direction==="up"?BDe(t,!1,r,o):EL(t,!1,r,o)}}class nDt extends uo{constructor(){super({id:"editor.unfoldRecursively",label:v("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2142),weight:100}})}invoke(e,t,i,s){EL(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class sDt extends uo{constructor(){super({id:"editor.fold",label:v("foldAction.label","Fold"),alias:"Fold",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to fold. + * 'direction': If 'up', folds given number of levels up otherwise folds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. + If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. + `,constraint:HDe,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,s){const r=this.getLineNumbers(s,i),o=s&&s.levels,a=s&&s.direction;typeof o!="number"&&typeof a!="string"?FTt(t,!0,r):a==="up"?BDe(t,!0,o||1,r):EL(t,!0,o||1,r)}}class rDt extends uo{constructor(){super({id:"editor.toggleFold",label:v("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2090),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);gne(t,1,s)}}class oDt extends uo{constructor(){super({id:"editor.foldRecursively",label:v("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2140),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);EL(t,!0,Number.MAX_VALUE,s)}}class aDt extends uo{constructor(){super({id:"editor.toggleFoldRecursively",label:v("toggleFoldRecursivelyAction.label","Toggle Fold Recursively"),alias:"Toggle Fold Recursively",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,3114),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);gne(t,Number.MAX_VALUE,s)}}class lDt extends uo{constructor(){super({id:"editor.foldAllBlockComments",label:v("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2138),weight:100}})}invoke(e,t,i,s,r){if(t.regions.hasTypes())_ne(t,h_.Comment.value,!0);else{const o=i.getModel();if(!o)return;const a=r.getLanguageConfiguration(o.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp("^\\s*"+dc(a.blockCommentStartToken));mne(t,l,!0)}}}}class cDt extends uo{constructor(){super({id:"editor.foldAllMarkerRegions",label:v("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2077),weight:100}})}invoke(e,t,i,s,r){if(t.regions.hasTypes())_ne(t,h_.Region.value,!0);else{const o=i.getModel();if(!o)return;const a=r.getLanguageConfiguration(o.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);mne(t,l,!0)}}}}class uDt extends uo{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:v("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2078),weight:100}})}invoke(e,t,i,s,r){if(t.regions.hasTypes())_ne(t,h_.Region.value,!1);else{const o=i.getModel();if(!o)return;const a=r.getLanguageConfiguration(o.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);mne(t,l,!1)}}}}class hDt extends uo{constructor(){super({id:"editor.foldAllExcept",label:v("foldAllExcept.label","Fold All Except Selected"),alias:"Fold All Except Selected",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2136),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);WDe(t,!0,s)}}class dDt extends uo{constructor(){super({id:"editor.unfoldAllExcept",label:v("unfoldAllExcept.label","Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2134),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);WDe(t,!1,s)}}class fDt extends uo{constructor(){super({id:"editor.foldAll",label:v("foldAllAction.label","Fold All"),alias:"Fold All",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2069),weight:100}})}invoke(e,t,i){EL(t,!0)}}class pDt extends uo{constructor(){super({id:"editor.unfoldAll",label:v("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2088),weight:100}})}invoke(e,t,i){EL(t,!1)}}const vC=class vC extends uo{getFoldingLevel(){return parseInt(this.id.substr(vC.ID_PREFIX.length))}invoke(e,t,i){BTt(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}};vC.ID_PREFIX="editor.foldLevel",vC.ID=e=>vC.ID_PREFIX+e;let i2=vC;class gDt extends uo{constructor(){super({id:"editor.gotoParentFold",label:v("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const r=WTt(s[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class mDt extends uo{constructor(){super({id:"editor.gotoPreviousFold",label:v("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const r=VTt(s[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class _Dt extends uo{constructor(){super({id:"editor.gotoNextFold",label:v("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const r=HTt(s[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class vDt extends uo{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:v("createManualFoldRange.label","Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2135),weight:100}})}invoke(e,t,i){var o;const s=[],r=i.getSelections();if(r){for(const a of r){let l=a.endLineNumber;a.endColumn===1&&--l,l>a.startLineNumber&&(s.push({startLineNumber:a.startLineNumber,endLineNumber:l,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:a.startLineNumber,startColumn:1,endLineNumber:a.startLineNumber,endColumn:1}))}if(s.length>0){s.sort((l,c)=>l.startLineNumber-c.startLineNumber);const a=ql.sanitizeAndMerge(t.regions,s,(o=i.getModel())==null?void 0:o.getLineCount());t.updatePost(ql.fromFoldRanges(a))}}}}class bDt extends uo{constructor(){super({id:"editor.removeManualFoldingRanges",label:v("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2137),weight:100}})}invoke(e,t,i){const s=i.getSelections();if(s){const r=[];for(const o of s){const{startLineNumber:a,endLineNumber:l}=o;r.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(r),e.triggerFoldingModelChanged()}}}_i(y_.ID,y_,0);Ie(iDt);Ie(nDt);Ie(sDt);Ie(oDt);Ie(aDt);Ie(fDt);Ie(pDt);Ie(lDt);Ie(cDt);Ie(uDt);Ie(hDt);Ie(dDt);Ie(rDt);Ie(gDt);Ie(mDt);Ie(_Dt);Ie(vDt);Ie(bDt);for(let n=1;n<=7;n++)Qut(new i2({id:i2.ID(n),label:v("foldLevelAction.label","Fold Level {0}",n),alias:`Fold Level ${n}`,precondition:Gr,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2048|21+n),weight:100}}));di.registerCommand("_executeFoldingRangeProvider",async function(n,...e){const[t]=e;if(!(t instanceof mt))throw Gc();const i=n.get(Je),s=n.get(mn).getModel(t);if(!s)throw Gc();const r=n.get(Xt);if(!r.getValue("editor.folding",{resource:t}))return[];const o=n.get(ln),a=r.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return r.getValue("editor.foldingMaximumRegions",{resource:t})},update:(f,p)=>{}},c=new vne(s,o,l);let u=c;if(a!=="indentation"){const f=y_.getFoldingRangeProviders(i,s);f.length&&(u=new bne(s,f,()=>{},l,c))}const h=await u.compute(Vt.None),d=[];try{if(h)for(let f=0;f<h.length;f++){const p=h.getType(f);d.push({start:h.getStartLineNumber(f),end:h.getEndLineNumber(f),kind:p?h_.fromValue(p):void 0})}return d}finally{u.dispose()}});class yDt extends Xe{constructor(){super({id:"editor.action.fontZoomIn",label:v("EditorFontZoomIn.label","Increase Editor Font Size"),alias:"Increase Editor Font Size",precondition:void 0})}run(e,t){Mc.setZoomLevel(Mc.getZoomLevel()+1)}}class wDt extends Xe{constructor(){super({id:"editor.action.fontZoomOut",label:v("EditorFontZoomOut.label","Decrease Editor Font Size"),alias:"Decrease Editor Font Size",precondition:void 0})}run(e,t){Mc.setZoomLevel(Mc.getZoomLevel()-1)}}class CDt extends Xe{constructor(){super({id:"editor.action.fontZoomReset",label:v("EditorFontZoomReset.label","Reset Editor Font Size"),alias:"Reset Editor Font Size",precondition:void 0})}run(e,t){Mc.setZoomLevel(0)}}Ie(yDt);Ie(wDt);Ie(CDt);class wx{static _handleEolEdits(e,t){let i;const s=[];for(const r of t)typeof r.eol=="number"&&(i=r.eol),r.range&&typeof r.text=="string"&&s.push(r);return typeof i=="number"&&e.hasModel()&&e.getModel().pushEOL(i),s}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),s=i.validateRange(t.range);return i.getFullModelRange().equalsRange(s)}static execute(e,t,i){i&&e.pushUndoStop();const s=id.capture(e),r=wx._handleEolEdits(e,t);r.length===1&&wx._isFullModelReplaceEdit(e,r[0])?e.executeEdits("formatEditsCommand",r.map(o=>Fn.replace(O.lift(o.range),o.text))):e.executeEdits("formatEditsCommand",r.map(o=>Fn.replaceMove(O.lift(o.range),o.text))),i&&e.pushUndoStop(),s.restoreRelativeVerticalPositionOfCursor(e)}}class ype{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class SDt{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(ype.toKey(e))}has(e){return this._set.has(ype.toKey(e))}}function $De(n,e,t){const i=[],s=new SDt,r=n.ordered(t);for(const a of r)i.push(a),a.extensionId&&s.add(a.extensionId);const o=e.ordered(t);for(const a of o){if(a.extensionId){if(s.has(a.extensionId))continue;s.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,c,u){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),c,u)}})}return i}const CI=class CI{static setFormatterSelector(e){return{dispose:CI._selectors.unshift(e)}}static async select(e,t,i,s){if(e.length===0)return;const r=hi.first(CI._selectors);if(r)return await r(e,t,i,s)}};CI._selectors=new Go;let xD=CI;async function zDe(n,e,t,i,s,r,o){const a=n.get(ct),{documentRangeFormattingEditProvider:l}=n.get(Je),c=Yf(e)?e.getModel():e,u=l.ordered(c),h=await xD.select(u,c,i,2);h&&(s.report(h),await a.invokeFunction(xDt,h,e,t,r,o))}async function xDt(n,e,t,i,s,r){var _,b;const o=n.get(lu),a=n.get(co),l=n.get(F_);let c,u;Yf(t)?(c=t.getModel(),u=new v_(t,5,void 0,s)):(c=t,u=new Sie(t,s));const h=[];let d=0;for(const w of $ee(i).sort(O.compareRangesUsingStarts))d>0&&O.areIntersectingOrTouching(h[d-1],w)?h[d-1]=O.fromPositions(h[d-1].getStartPosition(),w.getEndPosition()):d=h.push(w);const f=async w=>{var S,x;a.trace("[format][provideDocumentRangeFormattingEdits] (request)",(S=e.extensionId)==null?void 0:S.value,w);const C=await e.provideDocumentRangeFormattingEdits(c,w,c.getFormattingOptions(),u.token)||[];return a.trace("[format][provideDocumentRangeFormattingEdits] (response)",(x=e.extensionId)==null?void 0:x.value,C),C},p=(w,C)=>{if(!w.length||!C.length)return!1;const S=w.reduce((x,k)=>O.plusRange(x,k.range),w[0].range);if(!C.some(x=>O.intersectRanges(S,x.range)))return!1;for(const x of w)for(const k of C)if(O.intersectRanges(x.range,k.range))return!0;return!1},g=[],m=[];try{if(typeof e.provideDocumentRangesFormattingEdits=="function"){a.trace("[format][provideDocumentRangeFormattingEdits] (request)",(_=e.extensionId)==null?void 0:_.value,h);const w=await e.provideDocumentRangesFormattingEdits(c,h,c.getFormattingOptions(),u.token)||[];a.trace("[format][provideDocumentRangeFormattingEdits] (response)",(b=e.extensionId)==null?void 0:b.value,w),m.push(w)}else{for(const w of h){if(u.token.isCancellationRequested)return!0;m.push(await f(w))}for(let w=0;w<h.length;++w)for(let C=w+1;C<h.length;++C){if(u.token.isCancellationRequested)return!0;if(p(m[w],m[C])){const S=O.plusRange(h[w],h[C]),x=await f(S);h.splice(C,1),h.splice(w,1),h.push(S),m.splice(C,1),m.splice(w,1),m.push(x),w=0,C=0}}}for(const w of m){if(u.token.isCancellationRequested)return!0;const C=await o.computeMoreMinimalEdits(c.uri,w);C&&g.push(...C)}}finally{u.dispose()}if(g.length===0)return!1;if(Yf(t))wx.execute(t,g,!0),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:w}]=g,C=new nt(w.startLineNumber,w.startColumn,w.endLineNumber,w.endColumn);c.pushEditOperations([C],g.map(S=>({text:S.text,range:O.lift(S.range),forceMoveMarkers:!0})),S=>{for(const{range:x}of S)if(O.areIntersectingOrTouching(x,C))return[new nt(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn)];return null})}return l.playSignal(jl.format,{userGesture:r}),!0}async function LDt(n,e,t,i,s,r){const o=n.get(ct),a=n.get(Je),l=Yf(e)?e.getModel():e,c=$De(a.documentFormattingEditProvider,a.documentRangeFormattingEditProvider,l),u=await xD.select(c,l,t,1);u&&(i.report(u),await o.invokeFunction(EDt,u,e,t,s,r))}async function EDt(n,e,t,i,s,r){const o=n.get(lu),a=n.get(F_);let l,c;Yf(t)?(l=t.getModel(),c=new v_(t,5,void 0,s)):(l=t,c=new Sie(t,s));let u;try{const h=await e.provideDocumentFormattingEdits(l,l.getFormattingOptions(),c.token);if(u=await o.computeMoreMinimalEdits(l.uri,h),c.token.isCancellationRequested)return!0}finally{c.dispose()}if(!u||u.length===0)return!1;if(Yf(t))wx.execute(t,u,i!==2),i!==2&&t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:h}]=u,d=new nt(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn);l.pushEditOperations([d],u.map(f=>({text:f.text,range:O.lift(f.range),forceMoveMarkers:!0})),f=>{for(const{range:p}of f)if(O.areIntersectingOrTouching(p,d))return[new nt(p.startLineNumber,p.startColumn,p.endLineNumber,p.endColumn)];return null})}return a.playSignal(jl.format,{userGesture:r}),!0}async function kDt(n,e,t,i,s,r){const o=e.documentRangeFormattingEditProvider.ordered(t);for(const a of o){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,s,r)).catch(ls);if(so(l))return await n.computeMoreMinimalEdits(t.uri,l)}}async function IDt(n,e,t,i,s){const r=$De(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const o of r){const a=await Promise.resolve(o.provideDocumentFormattingEdits(t,i,s)).catch(ls);if(so(a))return await n.computeMoreMinimalEdits(t.uri,a)}}function UDe(n,e,t,i,s,r,o){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(s)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,s,r,o)).catch(ls).then(l=>n.computeMoreMinimalEdits(t.uri,l))}di.registerCommand("_executeFormatRangeProvider",async function(n,...e){const[t,i,s]=e;yi(mt.isUri(t)),yi(O.isIRange(i));const r=n.get(Wa),o=n.get(lu),a=n.get(Je),l=await r.createModelReference(t);try{return kDt(o,a,l.object.textEditorModel,O.lift(i),s,Vt.None)}finally{l.dispose()}});di.registerCommand("_executeFormatDocumentProvider",async function(n,...e){const[t,i]=e;yi(mt.isUri(t));const s=n.get(Wa),r=n.get(lu),o=n.get(Je),a=await s.createModelReference(t);try{return IDt(r,o,a.object.textEditorModel,i,Vt.None)}finally{a.dispose()}});di.registerCommand("_executeFormatOnTypeProvider",async function(n,...e){const[t,i,s,r]=e;yi(mt.isUri(t)),yi(se.isIPosition(i)),yi(typeof s=="string");const o=n.get(Wa),a=n.get(lu),l=n.get(Je),c=await o.createModelReference(t);try{return UDe(a,l,c.object.textEditorModel,se.lift(i),s,r,Vt.None)}finally{c.dispose()}});var jDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Qk=function(n,e){return function(t,i){e(t,i,n)}},dS;let n2=(dS=class{constructor(e,t,i,s){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=s,this._disposables=new be,this._sessionDisposables=new be,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(r=>{r.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new yF;for(const s of t.autoFormatTriggerCharacters)i.add(s.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(s=>{const r=s.charCodeAt(s.length-1);i.has(r)&&this._trigger(String.fromCharCode(r))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=new Wn,r=this._editor.onDidChangeModelContent(o=>{if(o.isFlush){s.cancel(),r.dispose();return}for(let a=0,l=o.changes.length;a<l;a++)if(o.changes[a].range.endLineNumber<=i.lineNumber){s.cancel(),r.dispose();return}});UDe(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),s.token).then(o=>{s.token.isCancellationRequested||so(o)&&(this._accessibilitySignalService.playSignal(jl.format,{userGesture:!1}),wx.execute(this._editor,o,!0))}).finally(()=>{r.dispose()})}},dS.ID="editor.contrib.autoFormat",dS);n2=jDe([Qk(1,Je),Qk(2,lu),Qk(3,F_)],n2);var fS;let s2=(fS=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new be,this._callOnModel=new be,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(zDe,this.editor,e,2,Rf.None,Vt.None,!1).catch(Nt))}},fS.ID="editor.contrib.formatOnPaste",fS);s2=jDe([Qk(1,Je),Qk(2,ct)],s2);class TDt extends Xe{constructor(){super({id:"editor.action.formatDocument",label:v("formatDocument.label","Format Document"),alias:"Format Document",precondition:ye.and(H.notInCompositeEditor,H.writable,H.hasDocumentFormattingProvider),kbOpts:{kbExpr:H.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(ct);await e.get(B_).showWhile(i.invokeFunction(LDt,t,1,Rf.None,Vt.None,!0),250)}}}class DDt extends Xe{constructor(){super({id:"editor.action.formatSelection",label:v("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:ye.and(H.writable,H.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2084),weight:100},contextMenuOpts:{when:H.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(ct),s=t.getModel(),r=t.getSelections().map(a=>a.isEmpty()?new O(a.startLineNumber,1,a.startLineNumber,s.getLineMaxColumn(a.startLineNumber)):a);await e.get(B_).showWhile(i.invokeFunction(zDe,t,r,1,Rf.None,Vt.None,!0),250)}}_i(n2.ID,n2,2);_i(s2.ID,s2,2);Ie(TDt);Ie(DDt);di.registerCommand("editor.action.format",async n=>{const e=n.get(wi).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=n.get(an);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var NDt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},iV=function(n,e){return function(t,i){e(t,i,n)}};class eC{remove(){var e;(e=this.parent)==null||e.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let s=i;for(let r=0;t.children.get(s)!==void 0;r++)s=`${i}_${r}`;return s}static empty(e){return e.children.size===0}}class mK extends eC{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class qDe extends eC{constructor(e,t,i,s){super(),this.id=e,this.parent=t,this.label=i,this.order=s,this.children=new Map}}class Vp extends eC{static create(e,t,i){const s=new Wn(i),r=new Vp(t.uri),o=e.ordered(t),a=o.map((c,u)=>{const h=eC.findId(`provider_${u}`,r),d=new qDe(h,r,c.displayName??"Unknown Outline Provider",u);return Promise.resolve(c.provideDocumentSymbols(t,s.token)).then(f=>{for(const p of f||[])Vp._makeOutlineElement(p,d);return d},f=>(ls(f),d)).then(f=>{eC.empty(f)?f.remove():r._groups.set(h,f)})}),l=e.onDidChange(()=>{const c=e.ordered(t);In(c,o)||s.cancel()});return Promise.all(a).then(()=>s.token.isCancellationRequested&&!i.isCancellationRequested?Vp.create(e,t,i):r._compact()).finally(()=>{s.dispose(),l.dispose(),s.dispose()})}static _makeOutlineElement(e,t){const i=eC.findId(e,t),s=new mK(i,t,e);if(e.children)for(const r of e.children)Vp._makeOutlineElement(r,s);t.children.set(s.id,s)}constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=hi.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof mK?e.push(t.symbol):e.push(...hi.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>O.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Vp._flattenDocumentSymbols(t,e,""),t.sort((i,s)=>se.compare(O.getStartPosition(i.range),O.getStartPosition(s.range))||se.compare(O.getEndPosition(s.range),O.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const s of t)e.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&Vp._flattenDocumentSymbols(e,s.children,s.name)}}const aA=ri("IOutlineModelService");let _K=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new be,this._cache=new np(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(s=>{this._cache.delete(s.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,s=i.ordered(e);let r=this._cache.get(e.id);if(!r||r.versionId!==e.getVersionId()||!In(r.provider,s)){const a=new Wn;r={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:a,promise:Vp.create(i,e,a.token),model:void 0},this._cache.set(e.id,r);const l=Date.now();r.promise.then(c=>{r.model=c,this._debounceInformation.update(e,Date.now()-l)}).catch(c=>{this._cache.delete(e.id)})}if(r.model)return r.model;r.promiseCnt+=1;const o=t.onCancellationRequested(()=>{--r.promiseCnt===0&&(r.source.cancel(),this._cache.delete(e.id))});try{return await r.promise}finally{o.dispose()}}};_K=NDt([iV(0,Je),iV(1,wc),iV(2,mn)],_K);fi(aA,_K,1);di.registerCommand("_executeDocumentSymbolProvider",async function(n,...e){const[t]=e;yi(mt.isUri(t));const i=n.get(aA),r=await n.get(Wa).createModelReference(t);try{return(await i.getOrCreate(r.object.textEditorModel,Vt.None)).getTopLevelSymbols()}finally{r.dispose()}});const Hd=class Hd extends ue{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=Hd.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=Hd.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=Hd.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=Hd.suppressSuggestions.bindTo(this.contextKeyService),this._register(Lt(i=>{const s=this.model.read(i),r=s==null?void 0:s.state.read(i),o=!!(r!=null&&r.inlineCompletion)&&(r==null?void 0:r.primaryGhostText)!==void 0&&!(r!=null&&r.primaryGhostText.isEmpty());this.inlineCompletionVisible.set(o),r!=null&&r.primaryGhostText&&(r!=null&&r.inlineCompletion)&&this.suppressSuggestions.set(r.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(Lt(i=>{const s=this.model.read(i);let r=!1,o=!0;const a=s==null?void 0:s.primaryGhostText.read(i);if(s!=null&&s.selectedSuggestItem&&a&&a.parts.length>0){const{column:l,lines:c}=a.parts[0],u=c[0],h=s.textModel.getLineIndentColumn(a.lineNumber);if(l<=h){let f=Io(u);f===-1&&(f=u.length-1),r=f>0;const p=s.textModel.getOptions().tabSize;o=Vs.visibleColumnFromColumn(u,f+1,p)<p}}this.inlineCompletionSuggestsIndentation.set(r),this.inlineCompletionSuggestsIndentationLessThanTabSize.set(o)}))}};Hd.inlineSuggestionVisible=new $e("inlineSuggestionVisible",!1,v("inlineSuggestionVisible","Whether an inline suggestion is visible")),Hd.inlineSuggestionHasIndentation=new $e("inlineSuggestionHasIndentation",!1,v("inlineSuggestionHasIndentation","Whether the inline suggestion starts with whitespace")),Hd.inlineSuggestionHasIndentationLessThanTabSize=new $e("inlineSuggestionHasIndentationLessThanTabSize",!0,v("inlineSuggestionHasIndentationLessThanTabSize","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),Hd.suppressSuggestions=new $e("inlineSuggestionSuppressSuggestions",void 0,v("suppressSuggestions","Whether suggestions should be suppressed for the current suggestion"));let ml=Hd;function ADt(n){const e=new be,t=e.add(pLe());return e.add(Lt(i=>{t.setStyle(n.read(i))})),e}class LD{constructor(e,t){this.lineNumber=e,this.parts=t}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,i)=>t.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return new iie([...this.parts.map(r=>new Xf(O.fromPositions(new se(1,r.column)),r.lines.join(` +`)))]).applyToString(i).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class r2{constructor(e,t,i){this.column=e,this.text=t,this.preview=i,this.lines=ip(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t===e.lines[i])}}class vK{constructor(e,t,i,s=0){this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=s,this.parts=[new r2(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=ip(this.text)}renderForScreenReader(e){return this.newLines.join(` +`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function wpe(n,e){return In(n,e,KDe)}function KDe(n,e){return n===e?!0:!n||!e?!1:n instanceof LD&&e instanceof LD||n instanceof vK&&e instanceof vK?n.equals(e):!1}const PDt=[];function RDt(){return PDt}class GDe{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new Li(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new O(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function XDe(n,e){const t=new be,i=n.createDecorationsCollection();return t.add($N({debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const r=e.read(s);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}function MDt(n,e){return new se(n.lineNumber+e.lineNumber-1,e.lineNumber===1?n.column+e.column-1:e.column)}function Cpe(n,e){return new se(n.lineNumber-e.lineNumber+1,n.lineNumber-e.lineNumber===0?n.column-e.column+1:n.column)}var ODt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},FDt=function(n,e){return function(t,i){e(t,i,n)}};const Spe="ghost-text";let bK=class extends ue{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=Gt(this,!1),this.currentTextModel=Vi(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=ot(this,s=>{if(this.isDisposed.read(s))return;const r=this.currentTextModel.read(s);if(r!==this.model.targetTextModel.read(s))return;const o=this.model.ghostText.read(s);if(!o)return;const a=o instanceof vK?o.columnRange:void 0,l=[],c=[];function u(g,m){if(c.length>0){const _=c[c.length-1];m&&_.decorations.push(new Xo(_.content.length+1,_.content.length+1+g[0].length,m,0)),_.content+=g[0],g=g.slice(1)}for(const _ of g)c.push({content:_,decorations:m?[new Xo(1,_.length+1,m,0)]:[]})}const h=r.getLineContent(o.lineNumber);let d,f=0;for(const g of o.parts){let m=g.lines;d===void 0?(l.push({column:g.column,text:m[0],preview:g.preview}),m=m.slice(1)):u([h.substring(f,g.column-1)],void 0),m.length>0&&(u(m,Spe),d===void 0&&g.column<=h.length&&(d=g.column)),f=g.column-1}d!==void 0&&u([h.substring(f)],void 0);const p=d!==void 0?new GDe(d,h.length+1):void 0;return{replacedRange:a,inlineTexts:l,additionalLines:c,hiddenRange:p,lineNumber:o.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:r}}),this.decorations=ot(this,s=>{const r=this.uiState.read(s);if(!r)return[];const o=[];r.replacedRange&&o.push({range:r.replacedRange.toRange(r.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),r.hiddenRange&&o.push({range:r.hiddenRange.toRange(r.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const a of r.inlineTexts)o.push({range:O.fromPositions(new se(r.lineNumber,a.column)),options:{description:Spe,after:{content:a.text,inlineClassName:a.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Tu.Left},showIfCollapsed:!0}});return o}),this.additionalLinesWidget=this._register(new BDt(this.editor,this.languageService.languageIdCodec,ot(s=>{const r=this.uiState.read(s);return r?{lineNumber:r.lineNumber,additionalLines:r.additionalLines,minReservedLineCount:r.additionalReservedLineCount,targetTextModel:r.targetTextModel}:void 0}))),this._register(lt(()=>{this.isDisposed.set(!0,void 0)})),this._register(XDe(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};bK=ODt([FDt(2,Dn)],bK);class BDt extends ue{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=Vr("editorOptionChanged",Oe.filter(this.editor.onDidChangeConfiguration,s=>s.hasChanged(33)||s.hasChanged(118)||s.hasChanged(100)||s.hasChanged(95)||s.hasChanged(51)||s.hasChanged(50)||s.hasChanged(67))),this._register(Lt(s=>{const r=this.lines.read(s);this.editorOptionsChanged.read(s),r?this.updateLines(r.lineNumber,r.additionalLines,r.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(e,t,i){const s=this.editor.getModel();if(!s)return;const{tabSize:r}=s.getOptions();this.editor.changeViewZones(o=>{this._viewZoneId&&(o.removeZone(this._viewZoneId),this._viewZoneId=void 0);const a=Math.max(t.length,i);if(a>0){const l=document.createElement("div");WDt(l,r,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=o.addZone({afterLineNumber:e,heightInLines:a,domNode:l,afterColumnAffinity:1})}})}}function WDt(n,e,t,i,s){const r=i.get(33),o=i.get(118),a="none",l=i.get(95),c=i.get(51),u=i.get(50),h=i.get(67),d=new uL(1e4);d.appendString('<div class="suggest-preview-text">');for(let g=0,m=t.length;g<m;g++){const _=t[g],b=_.content;d.appendString('<div class="view-line'),d.appendString('" style="top:'),d.appendString(String(g*h)),d.appendString('px;width:1000000px;">');const w=IN(b),C=KS(b),S=Kr.createEmpty(b,s);MN(new P_(u.isMonospace&&!r,u.canUseHalfwidthRightwardsArrow,b,!1,w,C,0,S,_.decorations,e,0,u.spaceWidth,u.middotWidth,u.wsmiddotWidth,o,a,l,c!==c_.OFF,null),d),d.appendString("</div>")}d.appendString("</div>"),Tr(n,u);const f=d.build(),p=xpe?xpe.createHTML(f):f;n.innerHTML=p}const xpe=tm("editorGhostText",{createHTML:n=>n});function VDt(n,e){const t=new rke,i=new ake(t,c=>e.getLanguageConfiguration(c)),s=new oke(new HDt([n]),i),r=aU(s,[],void 0,!0);let o="";const a=n.getLineContent();function l(c,u){if(c.kind===2)if(l(c.openingBracket,u),u=Yn(u,c.openingBracket.length),c.child&&(l(c.child,u),u=Yn(u,c.child.length)),c.closingBracket)l(c.closingBracket,u),u=Yn(u,c.closingBracket.length);else{const d=i.getSingleLanguageBracketTokens(c.openingBracket.languageId).findClosingTokenText(c.openingBracket.bracketIds);o+=d}else if(c.kind!==3){if(c.kind===0||c.kind===1)o+=a.substring(u,Yn(u,c.length));else if(c.kind===4)for(const h of c.children)l(h,u),u=Yn(u,h.length)}}return l(r,Yo),o}class HDt{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}async function YDe(n,e,t,i,s=Vt.None,r){const o=e instanceof se?UDt(e,t):e,a=n.all(t),l=new Fee;for(const _ of a)_.groupId&&l.add(_.groupId,_);function c(_){if(!_.yieldsToGroupIds)return[];const b=[];for(const w of _.yieldsToGroupIds||[]){const C=l.get(w);for(const S of C)b.push(S)}return b}const u=new Map,h=new Set;function d(_,b){if(b=[...b,_],h.has(_))return b;h.add(_);try{const w=c(_);for(const C of w){const S=d(C,b);if(S)return S}}finally{h.delete(_)}}function f(_){const b=u.get(_);if(b)return b;const w=d(_,[]);w&&ls(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${w.map(S=>S.toString?S.toString():""+S).join(" -> ")}`));const C=new rL;return u.set(_,C.p),(async()=>{var S;if(!w){const x=c(_);for(const k of x){const L=await f(k);if(L&&L.items.length>0)return}}try{return e instanceof se?await _.provideInlineCompletions(t,e,i,s):await((S=_.provideInlineEdits)==null?void 0:S.call(_,t,e,i,s))}catch(x){ls(x);return}})().then(S=>C.complete(S),S=>C.error(S)),C.p}const p=await Promise.all(a.map(async _=>({provider:_,completions:await f(_)}))),g=new Map,m=[];for(const _ of p){const b=_.completions;if(!b)continue;const w=new zDt(b,_.provider);m.push(w);for(const C of b.items){const S=o2.from(C,w,o,t,r);g.set(S.hash(),S)}}return new $Dt(Array.from(g.values()),new Set(g.keys()),m)}class $Dt{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class zDt{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class o2{static from(e,t,i,s,r){let o,a,l=e.range?O.lift(e.range):i;if(typeof e.insertText=="string"){if(o=e.insertText,r&&e.completeBracketPairs){o=Lpe(o,l.getStartPosition(),s,r);const c=o.length-e.insertText.length;c!==0&&(l=new O(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+c))}a=void 0}else if("snippet"in e.insertText){const c=e.insertText.snippet.length;if(r&&e.completeBracketPairs){e.insertText.snippet=Lpe(e.insertText.snippet,l.getStartPosition(),s,r);const h=e.insertText.snippet.length-c;h!==0&&(l=new O(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+h))}const u=new n0().parse(e.insertText.snippet);u.children.length===1&&u.children[0]instanceof jo?(o=u.children[0].value,a=void 0):(o=u.toString(),a={snippet:e.insertText.snippet,range:l})}else qB(e.insertText);return new o2(o,e.command,l,o,a,e.additionalTextEdits||RDt(),e,t)}constructor(e,t,i,s,r,o,a,l){this.filterText=e,this.command=t,this.range=i,this.insertText=s,this.snippetInfo=r,this.additionalTextEdits=o,this.sourceInlineCompletion=a,this.source=l,e=e.replace(/\r\n|\r/g,` +`),s=e.replace(/\r\n|\r/g,` +`)}withRange(e){return new o2(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}toSingleTextEdit(){return new Xf(this.range,this.insertText)}}function UDt(n,e){const t=e.getWordAtPosition(n),i=e.getLineMaxColumn(n.lineNumber);return t?new O(n.lineNumber,t.startColumn,n.lineNumber,i):O.fromPositions(n,n.with(void 0,i))}function Lpe(n,e,t,i){const r=t.getLineContent(e.lineNumber).substring(0,e.column-1)+n,o=t.tokenization.tokenizeLineWithEdit(e,r.length-(e.column-1),n),a=o==null?void 0:o.sliceAndInflate(e.column-1,r.length,0);return a?VDt(a,i):n}function Tb(n,e,t){const i=t?n.range.intersectRanges(t):n.range;if(!i)return n;const s=e.getValueInRange(i,1),r=s_(s,n.text),o=ju.ofText(s.substring(0,r)).addToPosition(n.range.getStartPosition()),a=n.text.substring(r),l=O.fromPositions(o,n.range.getEndPosition());return new Xf(l,a)}function ZDe(n,e){return n.text.startsWith(e.text)&&jDt(n.range,e.range)}function Epe(n,e,t,i,s=0){let r=Tb(n,e);if(r.range.endLineNumber!==r.range.startLineNumber)return;const o=e.getLineContent(r.range.startLineNumber),a=Xi(o).length;if(r.range.startColumn-1<=a){const p=Xi(r.text).length,g=o.substring(r.range.startColumn-1,a),[m,_]=[r.range.getStartPosition(),r.range.getEndPosition()],b=m.column+g.length<=_.column?m.delta(0,g.length):_,w=O.fromPositions(b,_),C=r.text.startsWith(g)?r.text.substring(g.length):r.text.substring(p);r=new Xf(w,C)}const c=e.getValueInRange(r.range),u=qDt(c,r.text);if(!u)return;const h=r.range.startLineNumber,d=new Array;if(t==="prefix"){const p=u.filter(g=>g.originalLength===0);if(p.length>1||p.length===1&&p[0].originalStart!==c.length)return}const f=r.text.length-s;for(const p of u){const g=r.range.startColumn+p.originalStart+p.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===r.range.startLineNumber&&g<i.column||p.originalLength>0)return;if(p.modifiedLength===0)continue;const m=p.modifiedStart+p.modifiedLength,_=Math.max(p.modifiedStart,Math.min(m,f)),b=r.text.substring(p.modifiedStart,_),w=r.text.substring(_,Math.max(p.modifiedStart,m));b.length>0&&d.push(new r2(g,b,!1)),w.length>0&&d.push(new r2(g,w,!0))}return new LD(h,d)}function jDt(n,e){return e.getStartPosition().equals(n.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(n.getEndPosition())}let Ed;function qDt(n,e){if((Ed==null?void 0:Ed.originalValue)===n&&(Ed==null?void 0:Ed.newValue)===e)return Ed==null?void 0:Ed.changes;{let t=Ipe(n,e,!0);if(t){const i=kpe(t);if(i>0){const s=Ipe(n,e,!1);s&&kpe(s)<i&&(t=s)}}return Ed={originalValue:n,newValue:e,changes:t},t}}function kpe(n){let e=0;for(const t of n)e+=t.originalLength;return e}function Ipe(n,e,t){if(n.length>5e3||e.length>5e3)return;function i(c){let u=0;for(let h=0,d=c.length;h<d;h++){const f=c.charCodeAt(h);f>u&&(u=f)}return u}const s=Math.max(i(n),i(e));function r(c){if(c<0)throw new Error("unexpected");return s+c+1}function o(c){let u=0,h=0;const d=new Int32Array(c.length);for(let f=0,p=c.length;f<p;f++)if(t&&c[f]==="("){const g=h*100+u;d[f]=r(2*g),u++}else if(t&&c[f]===")"){u=Math.max(u-1,0);const g=h*100+u;d[f]=r(2*g+1),u===0&&h++}else d[f]=c.charCodeAt(f);return d}const a=o(n),l=o(e);return new cf({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}var KDt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Tpe=function(n,e){return function(t,i){e(t,i,n)}};let yK=class extends ue{constructor(e,t,i,s,r){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=s,this.languageConfigurationService=r,this._updateOperation=this._register(new rr),this.inlineCompletions=JT("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=JT("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(e,t,i){var u,h;const s=new XDt(e,t,this.textModel.getVersionId()),r=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if((u=this._updateOperation.value)!=null&&u.request.satisfies(s))return this._updateOperation.value.promise;if((h=r.get())!=null&&h.request.satisfies(s))return Promise.resolve(!0);const o=!!this._updateOperation.value;this._updateOperation.clear();const a=new Wn,l=(async()=>{if((o||t.triggerKind===Hh.Automatic)&&await GDt(this._debounceValue.get(this.textModel),a.token),a.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==s.versionId)return!1;const f=new Date,p=await YDe(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,a.token,this.languageConfigurationService);if(a.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==s.versionId)return!1;const g=new Date;this._debounceValue.update(this.textModel,g.getTime()-f.getTime());const m=new ZDt(p,s,this.textModel,this.versionId);if(i){const _=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!p.has(_)&&m.prepend(i.inlineCompletion,_.range,!0)}return this._updateOperation.clear(),Un(_=>{r.set(m,_)}),!0})(),c=new YDt(s,a,l);return this._updateOperation.value=c,l}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;(t=this._updateOperation.value)!=null&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};yK=KDt([Tpe(3,Je),Tpe(4,ln)],yK);function GDt(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}class XDt{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&wU(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,Cyt())&&(e.context.triggerKind===Hh.Automatic||this.context.triggerKind===Hh.Explicit)&&this.versionId===e.versionId}}class YDt{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class ZDt{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,s){this.inlineCompletionProviderResult=e,this.request=t,this._textModel=i,this._versionId=s,this._refCount=1,this._prependedInlineCompletionItems=[];const r=i.deltaDecorations([],e.completions.map(o=>({range:o.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=e.completions.map((o,a)=>new Dpe(o,r[a],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const s=this._textModel.deltaDecorations([],[{range:t,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new Dpe(e,s,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(e)}}class Dpe{get forwardStable(){return this.inlineCompletion.source.inlineCompletions.enableForwardStability??!1}constructor(e,t,i,s){this.inlineCompletion=e,this.decorationId=t,this._textModel=i,this._modelVersion=s,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=Gl({owner:this,equalsFn:O.equalsRange},r=>(this._modelVersion.read(r),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(e){return this.inlineCompletion.withRange(this._updatedRange.read(e)??nV)}toSingleTextEdit(e){return new Xf(this._updatedRange.read(e)??nV,this.inlineCompletion.insertText)}isVisible(e,t,i){const s=Tb(this._toFilterTextReplacement(i),e),r=this._updatedRange.read(i);if(!r||!this.inlineCompletion.range.getStartPosition().equals(r.getStartPosition())||t.lineNumber!==s.range.startLineNumber)return!1;const o=e.getValueInRange(s.range,1),a=s.text,l=Math.max(0,t.column-s.range.startColumn);let c=a.substring(0,l),u=a.substring(l),h=o.substring(0,l),d=o.substring(l);const f=e.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=f&&(h=h.trimStart(),h.length===0&&(d=d.trimStart()),c=c.trimStart(),c.length===0&&(u=u.trimStart())),c.startsWith(h)&&!!Wke(d,u)}canBeReused(e,t){const i=this._updatedRange.read(void 0);return!!i&&i.containsPosition(t)&&this.isVisible(e,t,void 0)&&ju.ofRange(i).isGreaterThanOrEqualTo(ju.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(e){return new Xf(this._updatedRange.read(e)??nV,this.inlineCompletion.filterText)}}const nV=new O(1,1,1,1),zt={Visible:fne,HasFocusedSuggestion:new $e("suggestWidgetHasFocusedSuggestion",!1,v("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new $e("suggestWidgetDetailsVisible",!1,v("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new $e("suggestWidgetMultipleSuggestions",!1,v("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new $e("suggestionMakesTextEdit",!0,v("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new $e("acceptSuggestionOnEnter",!0,v("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new $e("suggestionHasInsertAndReplaceRange",!1,v("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new $e("suggestionInsertMode",void 0,{type:"string",description:v("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new $e("suggestionCanResolve",!1,v("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},T1=new et("suggestWidgetStatusBar");class QDt{constructor(e,t,i,s){var r;this.position=e,this.completion=t,this.container=i,this.provider=s,this.isInvalid=!1,this.score=$h.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:(r=t.label)==null?void 0:r.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,O.isIRange(t.range)?(this.editStart=new se(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new se(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new se(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||O.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new se(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new se(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new se(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||O.spansMultipleLines(t.range.insert)||O.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof s.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new Nr(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(s=>{Object.assign(this.completion,s),this._resolveDuration=i.elapsed()},s=>{ou(s)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}}const G3=class G3{constructor(e=2,t=new Set,i=new Set,s=new Map,r=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=s,this.showDeprecated=r}};G3.default=new G3;let ED=G3,JDt;function eNt(){return JDt}class tNt{constructor(e,t,i,s){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=s}}async function yne(n,e,t,i=ED.default,s={triggerKind:0},r=Vt.None){const o=new Nr;t=t.clone();const a=e.getWordAtPosition(t),l=a?new O(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):O.fromPositions(t),c={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},u=[],h=new be,d=[];let f=!1;const p=(m,_,b)=>{var C;let w=!1;if(!_)return w;for(const S of _.suggestions)if(!i.kindFilter.has(S.kind)){if(!i.showDeprecated&&((C=S==null?void 0:S.tags)!=null&&C.includes(1)))continue;S.range||(S.range=c),S.sortText||(S.sortText=typeof S.label=="string"?S.label:S.label.label),!f&&S.insertTextRules&&S.insertTextRules&4&&(f=n0.guessNeedsClipboard(S.insertText)),u.push(new QDt(t,S,_,m)),w=!0}return AB(_)&&h.add(_),d.push({providerName:m._debugDisplayName??"unknown_provider",elapsedProvider:_.duration??-1,elapsedOverall:b.elapsed()}),w},g=(async()=>{})();for(const m of n.orderedGroups(e)){let _=!1;if(await Promise.all(m.map(async b=>{if(i.providerItemsToReuse.has(b)){const w=i.providerItemsToReuse.get(b);w.forEach(C=>u.push(C)),_=_||w.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(b)))try{const w=new Nr,C=await b.provideCompletionItems(e,t,s,r);_=p(b,C,w)||_}catch(w){ls(w)}})),_||r.isCancellationRequested)break}return await g,r.isCancellationRequested?(h.dispose(),Promise.reject(new Hu)):new tNt(u.sort(sNt(i.snippetSortOrder)),f,{entries:d,elapsed:o.elapsed()},h)}function wne(n,e){if(n.sortTextLow&&e.sortTextLow){if(n.sortTextLow<e.sortTextLow)return-1;if(n.sortTextLow>e.sortTextLow)return 1}return n.textLabel<e.textLabel?-1:n.textLabel>e.textLabel?1:n.completion.kind-e.completion.kind}function iNt(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return-1;if(e.completion.kind===27)return 1}return wne(n,e)}function nNt(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return 1;if(e.completion.kind===27)return-1}return wne(n,e)}const G8=new Map;G8.set(0,iNt);G8.set(2,nNt);G8.set(1,wne);function sNt(n){return G8.get(n)}di.registerCommand("_executeCompletionItemProvider",async(n,...e)=>{const[t,i,s,r]=e;yi(mt.isUri(t)),yi(se.isIPosition(i)),yi(typeof s=="string"||!s),yi(typeof r=="number"||!r);const{completionProvider:o}=n.get(Je),a=await n.get(Wa).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},c=[],u=a.object.textEditorModel.validatePosition(i),h=await yne(o,a.object.textEditorModel,u,void 0,{triggerCharacter:s??void 0,triggerKind:s?1:0});for(const d of h.items)c.length<(r??0)&&c.push(d.resolve(Vt.None)),l.incomplete=l.incomplete||d.container.incomplete,l.suggestions.push(d.completion);try{return await Promise.all(c),l}finally{setTimeout(()=>h.disposable.dispose(),100)}}finally{a.dispose()}});function rNt(n,e){var t;(t=n.getContribution("editor.contrib.suggestController"))==null||t.triggerSuggest(new Set().add(e),void 0,!0)}class tC{static isAllOff(e){return e.other==="off"&&e.comments==="off"&&e.strings==="off"}static isAllOn(e){return e.other==="on"&&e.comments==="on"&&e.strings==="on"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}function Npe(n,e=qr){return lvt(n,e)?n.charAt(0).toUpperCase()+n.slice(1):n}var oNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},aNt=function(n,e){return function(t,i){e(t,i,n)}};class Ape{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class Ppe{constructor(e,t,i,s){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=s}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let i=this._model.getValueInRange(this._selection)||void 0,s=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const r=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);r&&(i=r.value,s=r.multiline)}if(i&&s&&e.snippet){const r=this._model.getLineContent(this._selection.startLineNumber),o=Xi(r,0,this._selection.startColumn-1);let a=o;e.snippet.walk(c=>c===e?!1:(c instanceof jo&&(a=Xi(ip(c.value).pop())),!0));const l=s_(a,o);i=i.replace(/(\r\n|\r|\n)(.*)/g,(c,u,h)=>`${u}${a.substr(l)}${h}`)}return i}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(t==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(t==="CURSOR_INDEX")return String(this._selectionIdx);if(t==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}class Rpe{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t==="TM_FILENAME")return S1(this._model.uri.fsPath);if(t==="TM_FILENAME_BASE"){const i=S1(this._model.uri.fsPath),s=i.lastIndexOf(".");return s<=0?i:i.slice(0,s)}else{if(t==="TM_DIRECTORY")return iLe(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(_8(this._model.uri));if(t==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(t==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class Mpe{constructor(e,t,i,s){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=s}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\r\n|\n|\r/).filter(s=>!jxe(s));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let a2=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(s){if(t==="LINE_COMMENT")return s.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return s.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return s.blockCommentEndToken||void 0}}};a2=oNt([aNt(2,ln)],a2);const $d=class $d{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if(t==="CURRENT_YEAR")return String(this._date.getFullYear());if(t==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(t==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(t==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(t==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(t==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(t==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(t==="CURRENT_DAY_NAME")return $d.dayNames[this._date.getDay()];if(t==="CURRENT_DAY_NAME_SHORT")return $d.dayNamesShort[this._date.getDay()];if(t==="CURRENT_MONTH_NAME")return $d.monthNames[this._date.getMonth()];if(t==="CURRENT_MONTH_NAME_SHORT")return $d.monthNamesShort[this._date.getMonth()];if(t==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(t==="CURRENT_TIMEZONE_OFFSET"){const i=this._date.getTimezoneOffset(),s=i>0?"-":"+",r=Math.trunc(Math.abs(i/60)),o=r<10?"0"+r:r,a=Math.abs(i)-r*60,l=a<10?"0"+a:a;return s+o+":"+l}}};$d.dayNames=[v("Sunday","Sunday"),v("Monday","Monday"),v("Tuesday","Tuesday"),v("Wednesday","Wednesday"),v("Thursday","Thursday"),v("Friday","Friday"),v("Saturday","Saturday")],$d.dayNamesShort=[v("SundayShort","Sun"),v("MondayShort","Mon"),v("TuesdayShort","Tue"),v("WednesdayShort","Wed"),v("ThursdayShort","Thu"),v("FridayShort","Fri"),v("SaturdayShort","Sat")],$d.monthNames=[v("January","January"),v("February","February"),v("March","March"),v("April","April"),v("May","May"),v("June","June"),v("July","July"),v("August","August"),v("September","September"),v("October","October"),v("November","November"),v("December","December")],$d.monthNamesShort=[v("JanuaryShort","Jan"),v("FebruaryShort","Feb"),v("MarchShort","Mar"),v("AprilShort","Apr"),v("MayShort","May"),v("JuneShort","Jun"),v("JulyShort","Jul"),v("AugustShort","Aug"),v("SeptemberShort","Sep"),v("OctoberShort","Oct"),v("NovemberShort","Nov"),v("DecemberShort","Dec")];let l2=$d;class Ope{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=ext(this._workspaceService.getWorkspace());if(!QSt(t)){if(e.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(t);if(e.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(uj(e))return S1(e.uri.path);let t=S1(e.configPath.path);return t.endsWith(hj)&&(t=t.substr(0,t.length-hj.length-1)),t}_resoveWorkspacePath(e){if(uj(e))return Npe(e.uri.fsPath);const t=S1(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?Npe(i):"/"}}class Fpe{resolve(e){const{name:t}=e;if(t==="RANDOM")return Math.random().toString().slice(-6);if(t==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(t==="UUID")return A8()}}var lNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},cNt=function(n,e){return function(t,i){e(t,i,n)}},oh;const yu=class yu{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=Lue(t.placeholders,Ac.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const s=this._snippet.offset(i),r=this._snippet.fullLen(i),o=O.fromPositions(e.getPositionAt(this._offset+s),e.getPositionAt(this._offset+s+r)),a=i.isFinalTabstop?yu._decor.inactiveFinal:yu._decor.inactive,l=t.addDecoration(o,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const s=[];for(const r of this._placeholderGroups[this._placeholderGroupsIdx])if(r.transform){const o=this._placeholderDecorations.get(r),a=this._editor.getModel().getDecorationRange(o),l=this._editor.getModel().getValueInRange(a),c=r.transform.resolve(l).split(/\r\n|\r|\n/);for(let u=1;u<c.length;u++)c[u]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+c[u]);s.push(Fn.replace(a,c.join(this._editor.getModel().getEOL())))}s.length>0&&this._editor.executeEdits("snippet.placeholderTransform",s)}let t=!1;e===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,t=!0):e===!1&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(s=>{const r=new Set,o=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx]){const l=this._placeholderDecorations.get(a),c=this._editor.getModel().getDecorationRange(l);o.push(new nt(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(a),s.changeDecorationOptions(l,a.isFinalTabstop?yu._decor.activeFinal:yu._decor.active),r.add(a);for(const u of this._snippet.enclosingPlaceholders(a)){const h=this._placeholderDecorations.get(u);s.changeDecorationOptions(h,u.isFinalTabstop?yu._decor.activeFinal:yu._decor.active),r.add(u)}}for(const[a,l]of this._placeholderDecorations)r.has(a)||s.changeDecorationOptions(l,a.isFinalTabstop?yu._decor.inactiveFinal:yu._decor.inactive);return o});return t?this.move(e):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Ac){const i=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(i).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const s of t){if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));const r=this._placeholderDecorations.get(s),o=this._editor.getModel().getDecorationRange(r);if(!o){e.delete(s.index);break}i.push(o)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(e!=null&&e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof SL,!e)),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const r=e.shift();console.assert(r._offset!==-1),console.assert(!r._placeholderDecorations);const o=r._snippet.placeholderInfo.last.index;for(const l of r._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=s.index+(o+1)/this._nestingLevel:l.index=s.index+l.index/this._nestingLevel;this._snippet.replace(s,r._snippet.children);const a=this._placeholderDecorations.get(s);i.removeDecoration(a),this._placeholderDecorations.delete(s);for(const l of r._snippet.placeholders){const c=r._snippet.offset(l),u=r._snippet.fullLen(l),h=O.fromPositions(t.getPositionAt(r._offset+c),t.getPositionAt(r._offset+c+u)),d=i.addDecoration(h,yu._decor.inactive);this._placeholderDecorations.set(l,d)}}this._placeholderGroups=Lue(this._snippet.placeholders,Ac.compareByIndex)})}};yu._decor={active:At.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:At.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:At.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:At.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};let c2=yu;const Bpe={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let u2=oh=class{static adjustWhitespace(e,t,i,s,r){const o=e.getLineContent(t.lineNumber),a=Xi(o,0,t.column-1);let l;return s.walk(c=>{if(!(c instanceof jo)||c.parent instanceof SL||r&&!r.has(c))return!0;const u=c.value.split(/\r\n|\r|\n/);if(i){const d=s.offset(c);if(d===0)u[0]=e.normalizeIndentation(u[0]);else{l=l??s.toString();const f=l.charCodeAt(d-1);(f===10||f===13)&&(u[0]=e.normalizeIndentation(a+u[0]))}for(let f=1;f<u.length;f++)u[f]=e.normalizeIndentation(a+u[f])}const h=u.join(e.getEOL());return h!==c.value&&(c.parent.replace(c,[new jo(h)]),l=void 0),!0}),a}static adjustSelection(e,t,i,s){if(i!==0||s!==0){const{positionLineNumber:r,positionColumn:o}=t,a=o-i,l=o+s,c=e.validateRange({startLineNumber:r,startColumn:a,endLineNumber:r,endColumn:l});t=nt.createWithDirection(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,s,r,o,a,l,c){const u=[],h=[];if(!e.hasModel())return{edits:u,snippets:h};const d=e.getModel(),f=e.invokeWithinContext(C=>C.get(t0)),p=e.invokeWithinContext(C=>new Rpe(C.get(gx),d)),g=()=>a,m=d.getValueInRange(oh.adjustSelection(d,e.getSelection(),i,0)),_=d.getValueInRange(oh.adjustSelection(d,e.getSelection(),0,s)),b=d.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),w=e.getSelections().map((C,S)=>({selection:C,idx:S})).sort((C,S)=>O.compareRangesUsingStarts(C.selection,S.selection));for(const{selection:C,idx:S}of w){let x=oh.adjustSelection(d,C,i,0),k=oh.adjustSelection(d,C,0,s);m!==d.getValueInRange(x)&&(x=C),_!==d.getValueInRange(k)&&(k=C);const L=C.setStartPosition(x.startLineNumber,x.startColumn).setEndPosition(k.endLineNumber,k.endColumn),E=new n0().parse(t,!0,r),A=L.getStartPosition(),I=oh.adjustWhitespace(d,A,o||S>0&&b!==d.getLineFirstNonWhitespaceColumn(C.positionLineNumber),E);E.resolveVariables(new Ape([p,new Mpe(g,S,w.length,e.getOption(79)==="spread"),new Ppe(d,C,S,l),new a2(d,C,c),new l2,new Ope(f),new Fpe])),u[S]=Fn.replace(L,E.toString()),u[S].identifier={major:S,minor:0},u[S]._isTracked=!0,h[S]=new c2(e,E,I)}return{edits:u,snippets:h}}static createEditsAndSnippetsFromEdits(e,t,i,s,r,o,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],c=e.getModel(),u=new n0,h=new ZN,d=new Ape([e.invokeWithinContext(p=>new Rpe(p.get(gx),c)),new Mpe(()=>r,0,e.getSelections().length,e.getOption(79)==="spread"),new Ppe(c,e.getSelection(),0,o),new a2(c,e.getSelection(),a),new l2,new Ope(e.invokeWithinContext(p=>p.get(t0))),new Fpe]);t=t.sort((p,g)=>O.compareRangesUsingStarts(p.range,g.range));let f=0;for(let p=0;p<t.length;p++){const{range:g,template:m}=t[p];if(p>0){const S=t[p-1].range,x=O.fromPositions(S.getEndPosition(),g.getStartPosition()),k=new jo(c.getValueInRange(x));h.appendChild(k),f+=k.value.length}const _=u.parseFragment(m,h);oh.adjustWhitespace(c,g.getStartPosition(),!0,h,new Set(_)),h.resolveVariables(d);const b=h.toString(),w=b.slice(f);f=b.length;const C=Fn.replace(g,w);C.identifier={major:p,minor:0},C._isTracked=!0,l.push(C)}return u.ensureFinalTabstop(h,i,!0),{edits:l,snippets:[new c2(e,h,"")]}}constructor(e,t,i=Bpe,s){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){Yi(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}=typeof this._template=="string"?oh.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):oh.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits("snippet",e,i=>{const s=i.filter(r=>!!r.identifier);for(let r=0;r<t.length;r++)t[r].initialize(s[r].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):s.map(r=>nt.fromPositions(r.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Bpe){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:s}=oh.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,r=>{const o=r.filter(l=>!!l.identifier);for(let l=0;l<s.length;l++)s[l].initialize(o[l].textChange);const a=s[0].isTrivialSnippet;if(!a){for(const l of this._snippets)l.merge(s);console.assert(s.length===0)}return this._snippets[0].hasPlaceholder&&!a?this._move(void 0):o.map(l=>nt.fromPositions(l.range.getEndPosition()))})}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const s=i.move(e);t.push(...s)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const s=i.computePossibleSelections();if(t.size===0)for(const[r,o]of s){o.sort(O.compareRangesUsingStarts);for(const a of e)if(o[0].containsRange(a)){t.set(r,[]);break}}if(t.size===0)return!1;t.forEach((r,o)=>{r.push(...s.get(o))})}e.sort(O.compareRangesUsingStarts);for(const[i,s]of t){if(s.length!==e.length){t.delete(i);continue}s.sort(O.compareRangesUsingStarts);for(let r=0;r<s.length;r++)if(!s[r].containsRange(e[r])){t.delete(i);continue}}return t.size>0}};u2=oh=lNt([cNt(3,ln)],u2);var uNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},GP=function(n,e){return function(t,i){e(t,i,n)}},Pw;const Wpe={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};var hf;let la=(hf=class{static get(e){return e.getContribution(Pw.ID)}constructor(e,t,i,s,r){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=r,this._snippetListener=new be,this._modelVersionId=-1,this._inSnippet=Pw.InSnippetMode.bindTo(s),this._hasNextTabstop=Pw.HasNextTabstop.bindTo(s),this._hasPrevTabstop=Pw.HasPrevTabstop.bindTo(s)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)==null||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?Wpe:{...Wpe,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!="string"&&this.cancel(),this._session?(yi(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new u2(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),(i=this._session)!=null&&i.hasChoice){const s={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(u,h)=>{if(!this._session||u!==this._editor.getModel()||!se.equals(this._editor.getPosition(),h))return;const{activeChoice:d}=this._session;if(!d||d.choice.options.length===0)return;const f=u.getValueInRange(d.range),p=!!d.choice.options.find(m=>m.value===f),g=[];for(let m=0;m<d.choice.options.length;m++){const _=d.choice.options[m];g.push({kind:13,label:_.value,insertText:_.value,sortText:"a".repeat(m+1),range:d.range,filterText:p?`${f}_${_.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:v("next","Go to next placeholder...")}})}return{suggestions:g}}},r=this._editor.getModel();let o,a=!1;const l=()=>{o==null||o.dispose(),a=!1},c=()=>{a||(o=this._languageFeaturesService.completionProvider.register({language:r.getLanguageId(),pattern:r.uri.fsPath,scheme:r.uri.scheme,exclusive:!0},s),this._snippetListener.add(o),a=!0)};this._choiceCompletions={provider:s,enable:c,disable:l}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(s=>s.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var t;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:e}=this._session;if(!e||!this._choiceCompletions){(t=this._choiceCompletions)==null||t.disable(),this._currentChoice=void 0;return}this._currentChoice!==e.choice&&(this._currentChoice=e.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{rNt(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)==null||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)==null||e.prev(),this._updateState()}next(){var e;(e=this._session)==null||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}},Pw=hf,hf.ID="snippetController2",hf.InSnippetMode=new $e("inSnippetMode",!1,v("inSnippetMode","Whether the editor in current in snippet mode")),hf.HasNextTabstop=new $e("hasNextTabstop",!1,v("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),hf.HasPrevTabstop=new $e("hasPrevTabstop",!1,v("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),hf);la=Pw=uNt([GP(1,co),GP(2,Je),GP(3,bt),GP(4,ln)],la);_i(la.ID,la,4);const X8=Gs.bindToContribution(la.get);Ve(new X8({id:"jumpToNextSnippetPlaceholder",precondition:ye.and(la.InSnippetMode,la.HasNextTabstop),handler:n=>n.next(),kbOpts:{weight:130,kbExpr:H.textInputFocus,primary:2}}));Ve(new X8({id:"jumpToPrevSnippetPlaceholder",precondition:ye.and(la.InSnippetMode,la.HasPrevTabstop),handler:n=>n.prev(),kbOpts:{weight:130,kbExpr:H.textInputFocus,primary:1026}}));Ve(new X8({id:"leaveSnippet",precondition:la.InSnippetMode,handler:n=>n.cancel(!0),kbOpts:{weight:130,kbExpr:H.textInputFocus,primary:9,secondary:[1033]}}));Ve(new X8({id:"acceptSnippet",precondition:la.InSnippetMode,handler:n=>n.finish()}));var hNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sV=function(n,e){return function(t,i){e(t,i,n)}};let wK=class extends ue{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,s,r,o,a,l,c,u,h,d){super(),this.textModel=e,this.selectedSuggestItem=t,this._textModelVersionId=i,this._positions=s,this._debounceValue=r,this._suggestPreviewEnabled=o,this._suggestPreviewMode=a,this._inlineSuggestMode=l,this._enabled=c,this._instantiationService=u,this._commandService=h,this._languageConfigurationService=d,this._source=this._register(this._instantiationService.createInstance(yK,this.textModel,this._textModelVersionId,this._debounceValue)),this._isActive=Gt(this,!1),this._forceUpdateExplicitlySignal=vL(this),this._selectedInlineCompletionId=Gt(this,void 0),this._primaryPosition=ot(this,p=>this._positions.read(p)[0]??new se(1,1)),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([Tp.Redo,Tp.Undo,Tp.AcceptWord]),this._fetchInlineCompletionsPromise=Pke({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Hh.Automatic}),handleChange:(p,g)=>(p.didChange(this._textModelVersionId)&&this._preserveCurrentCompletionReasons.has(this._getReason(p.change))?g.preserveCurrentCompletion=!0:p.didChange(this._forceUpdateExplicitlySignal)&&(g.inlineCompletionTriggerKind=Hh.Explicit),!0)},(p,g)=>{if(this._forceUpdateExplicitlySignal.read(p),!(this._enabled.read(p)&&this.selectedSuggestItem.read(p)||this._isActive.read(p))){this._source.cancelUpdate();return}this._textModelVersionId.read(p);const _=this._source.suggestWidgetInlineCompletions.get(),b=this.selectedSuggestItem.read(p);if(_&&!b){const k=this._source.inlineCompletions.get();Un(L=>{(!k||_.request.versionId>k.request.versionId)&&this._source.inlineCompletions.set(_.clone(),L),this._source.clearSuggestWidgetInlineCompletions(L)})}const w=this._primaryPosition.read(p),C={triggerKind:g.inlineCompletionTriggerKind,selectedSuggestionInfo:b==null?void 0:b.toSelectedSuggestionInfo()},S=this.selectedInlineCompletion.get(),x=g.preserveCurrentCompletion||S!=null&&S.forwardStable?S:void 0;return this._source.fetch(w,C,x)}),this._filteredInlineCompletionItems=Gl({owner:this,equalsFn:JF()},p=>{const g=this._source.inlineCompletions.read(p);if(!g)return[];const m=this._primaryPosition.read(p);return g.inlineCompletions.filter(b=>b.isVisible(this.textModel,m,p))}),this.selectedInlineCompletionIndex=ot(this,p=>{const g=this._selectedInlineCompletionId.read(p),m=this._filteredInlineCompletionItems.read(p),_=this._selectedInlineCompletionId===void 0?-1:m.findIndex(b=>b.semanticId===g);return _===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):_}),this.selectedInlineCompletion=ot(this,p=>{const g=this._filteredInlineCompletionItems.read(p),m=this.selectedInlineCompletionIndex.read(p);return g[m]}),this.activeCommands=Gl({owner:this,equalsFn:JF()},p=>{var g;return((g=this.selectedInlineCompletion.read(p))==null?void 0:g.inlineCompletion.source.inlineCompletions.commands)??[]}),this.lastTriggerKind=this._source.inlineCompletions.map(this,p=>p==null?void 0:p.request.context.triggerKind),this.inlineCompletionsCount=ot(this,p=>{if(this.lastTriggerKind.read(p)===Hh.Explicit)return this._filteredInlineCompletionItems.read(p).length}),this.state=Gl({owner:this,equalsFn:(p,g)=>!p||!g?p===g:wpe(p.ghostTexts,g.ghostTexts)&&p.inlineCompletion===g.inlineCompletion&&p.suggestItem===g.suggestItem},p=>{const g=this.textModel,m=this.selectedSuggestItem.read(p);if(m){const _=Tb(m.toSingleTextEdit(),g),b=this._computeAugmentation(_,p);if(!this._suggestPreviewEnabled.read(p)&&!b)return;const C=(b==null?void 0:b.edit)??_,S=b?b.edit.text.length-_.text.length:0,x=this._suggestPreviewMode.read(p),k=this._positions.read(p),L=[C,...rV(this.textModel,k,C)],E=L.map((I,T)=>Epe(I,g,x,k[T],S)).filter(Nf),A=E[0]??new LD(C.range.endLineNumber,[]);return{edits:L,primaryGhostText:A,ghostTexts:E,inlineCompletion:b==null?void 0:b.completion,suggestItem:m}}else{if(!this._isActive.read(p))return;const _=this.selectedInlineCompletion.read(p);if(!_)return;const b=_.toSingleTextEdit(p),w=this._inlineSuggestMode.read(p),C=this._positions.read(p),S=[b,...rV(this.textModel,C,b)],x=S.map((k,L)=>Epe(k,g,w,C[L],0)).filter(Nf);return x[0]?{edits:S,primaryGhostText:x[0],ghostTexts:x,inlineCompletion:_,suggestItem:void 0}:void 0}}),this.ghostTexts=Gl({owner:this,equalsFn:wpe},p=>{const g=this.state.read(p);if(g)return g.ghostTexts}),this.primaryGhostText=Gl({owner:this,equalsFn:KDe},p=>{const g=this.state.read(p);if(g)return g==null?void 0:g.primaryGhostText}),this._register(bL(this._fetchInlineCompletionsPromise));let f;this._register(Lt(p=>{var _,b;const g=this.state.read(p),m=g==null?void 0:g.inlineCompletion;if((m==null?void 0:m.semanticId)!==(f==null?void 0:f.semanticId)&&(f=m,m)){const w=m.inlineCompletion,C=w.source;(b=(_=C.provider).handleItemDidShow)==null||b.call(_,C.inlineCompletions,w.sourceInlineCompletion,w.insertText)}}))}_getReason(e){return e!=null&&e.isUndoing?Tp.Undo:e!=null&&e.isRedoing?Tp.Redo:this.isAcceptingPartially?Tp.AcceptWord:Tp.Other}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(e){Yy(e,t=>{this._isActive.set(!0,t),this._forceUpdateExplicitlySignal.trigger(t)}),await this._fetchInlineCompletionsPromise.get()}stop(e){Yy(e,t=>{this._isActive.set(!1,t),this._source.clear(t)})}_computeAugmentation(e,t){const i=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(t),r=s?s.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(Nf);return G1t(r,a=>{let l=a.toSingleTextEdit(t);return l=Tb(l,i,O.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),ZDe(l,e)?{completion:a,edit:l}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){var s;if(e.getModel()!==this.textModel)throw new Li;const t=this.state.get();if(!t||t.primaryGhostText.isEmpty()||!t.inlineCompletion)return;const i=t.inlineCompletion.toInlineCompletion(void 0);if(i.command&&i.source.addRef(),e.pushUndoStop(),i.snippetInfo)e.executeEdits("inlineSuggestion.accept",[Fn.replace(i.range,""),...i.additionalTextEdits]),e.setPosition(i.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),(s=la.get(e))==null||s.insert(i.snippetInfo.snippet,{undoStopBefore:!1});else{const r=t.edits,o=Vpe(r).map(a=>nt.fromPositions(a));e.executeEdits("inlineSuggestion.accept",[...r.map(a=>Fn.replace(a.range,a.text)),...i.additionalTextEdits]),e.setSelections(o,"inlineCompletionAccept")}this.stop(),i.command&&(await this._commandService.executeCommand(i.command.id,...i.command.arguments||[]).then(void 0,ls),i.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,(t,i)=>{const s=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),r=this._languageConfigurationService.getLanguageConfiguration(s),o=new RegExp(r.wordDefinition.source,r.wordDefinition.flags.replace("g","")),a=i.match(o);let l=0;a&&a.index!==void 0?a.index===0?l=a[0].length:l=a.index:l=i.length;const u=/\s+/g.exec(i);return u&&u.index!==void 0&&u.index+u[0].length<l&&(l=u.index+u[0].length),l},0)}async acceptNextLine(e){await this._acceptNext(e,(t,i)=>{const s=i.match(/\n/);return s&&s.index!==void 0?s.index+1:i.length},1)}async _acceptNext(e,t,i){if(e.getModel()!==this.textModel)throw new Li;const s=this.state.get();if(!s||s.primaryGhostText.isEmpty()||!s.inlineCompletion)return;const r=s.primaryGhostText,o=s.inlineCompletion.toInlineCompletion(void 0);if(o.snippetInfo||o.filterText!==o.insertText){await this.accept(e);return}const a=r.parts[0],l=new se(r.lineNumber,a.column),c=a.text,u=t(l,c);if(u===c.length&&r.parts.length===1){this.accept(e);return}const h=c.substring(0,u),d=this._positions.get(),f=d[0];o.source.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const p=O.fromPositions(f,l),g=e.getModel().getValueInRange(p)+h,m=new Xf(p,g),_=[m,...rV(this.textModel,d,m)],b=Vpe(_).map(w=>nt.fromPositions(w));e.executeEdits("inlineSuggestion.accept",_.map(w=>Fn.replace(w.range,w.text))),e.setSelections(b,"inlineCompletionPartialAccept"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(o.source.provider.handlePartialAccept){const p=O.fromPositions(o.range.getStartPosition(),ju.ofText(h).addToPosition(l)),g=e.getModel().getValueInRange(p,1);o.source.provider.handlePartialAccept(o.source.inlineCompletions,o.sourceInlineCompletion,g.length,{kind:i})}}finally{o.source.removeRef()}}handleSuggestAccepted(e){var r,o;const t=Tb(e.toSingleTextEdit(),this.textModel),i=this._computeAugmentation(t,void 0);if(!i)return;const s=i.completion.inlineCompletion;(o=(r=s.source.provider).handlePartialAccept)==null||o.call(r,s.source.inlineCompletions,s.sourceInlineCompletion,t.text.length,{kind:2})}};wK=hNt([sV(9,ct),sV(10,an),sV(11,ln)],wK);var Tp;(function(n){n[n.Undo=0]="Undo",n[n.Redo=1]="Redo",n[n.AcceptWord=2]="AcceptWord",n[n.Other=3]="Other"})(Tp||(Tp={}));function rV(n,e,t){if(e.length===1)return[];const i=e[0],s=e.slice(1),r=t.range.getStartPosition(),o=t.range.getEndPosition(),a=n.getValueInRange(O.fromPositions(i,o)),l=Cpe(i,r);if(l.lineNumber<1)return Nt(new Li(`positionWithinTextEdit line number should be bigger than 0. + Invalid subtraction between ${i.toString()} and ${r.toString()}`)),[];const c=dNt(t.text,l);return s.map(u=>{const h=MDt(Cpe(u,r),o),d=n.getValueInRange(O.fromPositions(u,h)),f=s_(a,d),p=O.fromPositions(u,u.delta(0,f));return new Xf(p,c)})}function dNt(n,e){let t="";const i=vct(n);for(let s=e.lineNumber-1;s<i.length;s++)t+=i[s].substring(s===e.lineNumber-1?e.column-1:0);return t}function Vpe(n){const e=CF.createSortPermutation(n,Jo(r=>r.range,O.compareRangesUsingStarts)),i=new iie(e.apply(n)).getNewRanges();return e.inverse().apply(i).map(r=>r.getEndPosition())}var fNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Hpe=function(n,e){return function(t,i){e(t,i,n)}},XE;class Cne{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const s=i[0].score[0];for(let r=0;r<i.length;r++){const{score:o,completion:a}=i[r];if(o[0]!==s)break;if(a.preselect)return r}return 0}}class $pe extends Cne{constructor(){super("first")}memorize(e,t,i){}toJSON(){}fromJSON(){}}class pNt extends Cne{constructor(){super("recentlyUsed"),this._cache=new np(300,.66),this._seq=0}memorize(e,t,i){const s=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(s,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(i.length===0)return 0;const s=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(s))return super.select(e,t,i);const r=i[0].score[0];let o=-1,a=-1,l=-1;for(let c=0;c<i.length&&i[c].score[0]===r;c++){const u=`${e.getLanguageId()}/${i[c].textLabel}`,h=this._cache.peek(u);if(h&&h.touch>l&&h.type===i[c].completion.kind&&h.insertText===i[c].completion.insertText&&(l=h.touch,a=c),i[c].completion.preselect&&o===-1)return o=c}return a!==-1?a:o!==-1?o:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,s]of e)s.touch=t,s.type=typeof s.type=="number"?s.type:OT.fromString(s.type),this._cache.set(i,s);this._seq=this._cache.size}}class gNt extends Cne{constructor(){super("recentlyUsedByPrefix"),this._trie=eS.forStrings(),this._seq=0}memorize(e,t,i){const{word:s}=e.getWordUntilPosition(t),r=`${e.getLanguageId()}/${s}`;this._trie.set(r,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:s}=e.getWordUntilPosition(t);if(!s)return super.select(e,t,i);const r=`${e.getLanguageId()}/${s}`;let o=this._trie.get(r);if(o||(o=this._trie.findSubstr(r)),o)for(let a=0;a<i.length;a++){const{kind:l,insertText:c}=i[a].completion;if(l===o.type&&c===o.insertText)return a}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach((t,i)=>e.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type=typeof i.type=="number"?i.type:OT.fromString(i.type),this._trie.set(t,i)}}}var V1;let CK=(V1=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new be,this._persistSoon=new ji(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===lD.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){var s;const i=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((s=this._strategy)==null?void 0:s.name)!==i){this._saveState();const r=XE._strategyCtors.get(i)||$pe;this._strategy=new r;try{const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,l=this._storageService.get(`${XE._storagePrefix}/${i}`,a);l&&this._strategy.fromJSON(JSON.parse(l))}catch{}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${XE._storagePrefix}/${this._strategy.name}`,i,t,1)}}},XE=V1,V1._strategyCtors=new Map([["recentlyUsedByPrefix",gNt],["recentlyUsed",pNt],["first",$pe]]),V1._storagePrefix="suggest/memories",V1);CK=XE=fNt([Hpe(0,Ju),Hpe(1,Xt)],CK);const Y8=ri("ISuggestMemories");fi(Y8,CK,1);var mNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},_Nt=function(n,e){return function(t,i){e(t,i,n)}},SK,sy;let h2=(sy=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=SK.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(124)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)==null||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(124)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),s=this._editor.getSelection(),r=i.getWordAtPosition(s.getStartPosition());if(!r){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(r.endColumn===s.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}},SK=sy,sy.AtEnd=new $e("atEndOfWord",!1),sy);h2=SK=mNt([_Nt(1,bt)],h2);var vNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},bNt=function(n,e){return function(t,i){e(t,i,n)}},YE,ry;let Cx=(ry=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=YE.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),(e=this._listener)==null||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(YE._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let s=i;for(let r=t.items.length;r>0&&(s=(s+t.items.length+(e?1:-1))%t.items.length,!(s===i||!t.items[s].completion.additionalTextEdits));r--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=YE._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}},YE=ry,ry.OtherSuggestions=new $e("hasOtherSuggestions",!1),ry);Cx=YE=vNt([bNt(1,bt)],Cx);class yNt{constructor(e,t,i,s){this._disposables=new be,this._disposables.add(i.onDidSuggest(r=>{r.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(r=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(r=>{if(this._active&&!t.isFrozen()&&i.state!==0){const o=r.charCodeAt(r.length-1);this._active.acceptCharacters.has(o)&&e.getOption(0)&&s(this._active.item)}}))}_onItem(e){if(!e||!so(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new yF;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}const Ec=class Ec{async provideSelectionRanges(e,t){const i=[];for(const s of t){const r=[];i.push(r);const o=new Map;await new Promise(a=>Ec._bracketsRightYield(a,0,e,s,o)),await new Promise(a=>Ec._bracketsLeftYield(a,0,e,s,o,r))}return i}static _bracketsRightYield(e,t,i,s,r){const o=new Map,a=Date.now();for(;;){if(t>=Ec._maxRounds){e();break}if(!s){e();break}const l=i.bracketPairs.findNextBracket(s);if(!l){e();break}if(Date.now()-a>Ec._maxDuration){setTimeout(()=>Ec._bracketsRightYield(e,t+1,i,s,r));break}if(l.bracketInfo.isOpeningBracket){const u=l.bracketInfo.bracketText,h=o.has(u)?o.get(u):0;o.set(u,h+1)}else{const u=l.bracketInfo.getOpeningBrackets()[0].bracketText;let h=o.has(u)?o.get(u):0;if(h-=1,o.set(u,Math.max(0,h)),h<0){let d=r.get(u);d||(d=new Go,r.set(u,d)),d.push(l.range)}}s=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,s,r,o){const a=new Map,l=Date.now();for(;;){if(t>=Ec._maxRounds&&r.size===0){e();break}if(!s){e();break}const c=i.bracketPairs.findPrevBracket(s);if(!c){e();break}if(Date.now()-l>Ec._maxDuration){setTimeout(()=>Ec._bracketsLeftYield(e,t+1,i,s,r,o));break}if(c.bracketInfo.isOpeningBracket){const h=c.bracketInfo.bracketText;let d=a.has(h)?a.get(h):0;if(d-=1,a.set(h,Math.max(0,d)),d<0){const f=r.get(h);if(f){const p=f.shift();f.size===0&&r.delete(h);const g=O.fromPositions(c.range.getEndPosition(),p.getStartPosition()),m=O.fromPositions(c.range.getStartPosition(),p.getEndPosition());o.push({range:g}),o.push({range:m}),Ec._addBracketLeading(i,m,o)}}}else{const h=c.bracketInfo.getOpeningBrackets()[0].bracketText,d=a.has(h)?a.get(h):0;a.set(h,d+1)}s=c.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(s);r!==0&&r!==t.startColumn&&(i.push({range:O.fromPositions(new se(s,r),t.getEndPosition())}),i.push({range:O.fromPositions(new se(s,1),t.getEndPosition())}));const o=s-1;if(o>0){const a=e.getLineFirstNonWhitespaceColumn(o);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(o)&&(i.push({range:O.fromPositions(new se(o,a),t.getEndPosition())}),i.push({range:O.fromPositions(new se(o,1),t.getEndPosition())}))}}};Ec._maxDuration=30,Ec._maxRounds=2;let d2=Ec;const zd=class zd{static async create(e,t){if(!t.getOption(119).localityBonus||!t.hasModel())return zd.None;const i=t.getModel(),s=t.getPosition();if(!e.canComputeWordRanges(i.uri))return zd.None;const[r]=await new d2().provideSelectionRanges(i,[s]);if(r.length===0)return zd.None;const o=await e.computeWordRanges(i.uri,r[0].range);if(!o)return zd.None;const a=i.getWordUntilPosition(s);return delete o[a.word],new class extends zd{distance(l,c){if(!s.equals(t.getPosition()))return 0;if(c.kind===17)return 2<<20;const u=typeof c.label=="string"?c.label:c.label.label,h=o[u];if(RLe(h))return 2<<20;const d=CT(h,O.fromPositions(l),O.compareRangesUsingStarts),f=d>=0?h[d]:h[Math.max(0,~d-1)];let p=r.length;for(const g of r){if(!O.containsRange(g.range,f))break;p-=1}return p}}}};zd.None=new class extends zd{distance(){return 0}};let f2=zd,zpe=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class Km{constructor(e,t,i,s,r,o,a=iD.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=Km._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=s,this._options=r,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,o==="top"?this._snippetCompareFn=Km._compareCompletionItemsSnippetsUp:o==="bottom"&&(this._snippetCompareFn=Km._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const e=new Set;for(const[t,i]of this.getItemsByProvider())i.length>0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let s="",r="";const o=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||o.length>2e3?Jy:f0t;for(let c=0;c<o.length;c++){const u=o[c];if(u.isInvalid)continue;const h=this._itemsByProvider.get(u.provider);h?h.push(u):this._itemsByProvider.set(u.provider,[u]);const d=u.position.column-u.editStart.column,f=d+i-(u.position.column-this._column);if(s.length!==f&&(s=f===0?"":t.slice(-f),r=s.toLowerCase()),u.word=s,f===0)u.score=$h.Default;else{let p=0;for(;p<d;){const g=s.charCodeAt(p);if(g===32||g===9)p+=1;else break}if(p>=f)u.score=$h.Default;else if(typeof u.completion.filterText=="string"){const g=l(s,r,p,u.completion.filterText,u.filterTextLow,0,this._fuzzyScoreOptions);if(!g)continue;lz(u.completion.filterText,u.textLabel)===0?u.score=g:(u.score=c0t(s,r,p,u.textLabel,u.labelLow,0),u.score[0]=g[0])}else{const g=l(s,r,p,u.textLabel,u.labelLow,0,this._fuzzyScoreOptions);if(!g)continue;u.score=g}}u.idx=c,u.distance=this._wordDistance.distance(u.position,u.completion),a.push(u),e.push(u.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?Sz(e.length-.85,e,(c,u)=>c-u):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return Km._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return Km._compareCompletionItems(e,t)}}var wNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},bm=function(n,e){return function(t,i){e(t,i,n)}},xK;class ov{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const s=t.getWordAtPosition(i);return!(!s||s.endColumn!==i.column&&s.startColumn+1!==i.column||!isNaN(Number(s.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}function CNt(n,e,t){if(!e.getContextKeyValue(ml.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(ml.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}function SNt(n,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(ml.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}let p2=xK=class{constructor(e,t,i,s,r,o,a,l,c){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=s,this._logService=r,this._contextKeyService=o,this._configurationService=a,this._languageFeaturesService=l,this._envService=c,this._toDispose=new be,this._triggerCharacterListener=new be,this._triggerQuickSuggest=new Zu,this._triggerState=void 0,this._completionDisposables=new be,this._onDidCancel=new oe,this._onDidTrigger=new oe,this._onDidSuggest=new oe,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new nt(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let u=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{u=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{u=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(h=>{u||this._onCursorChange(h)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!u&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){Yi(this._triggerCharacterListener),Yi([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(92)||!this._editor.hasModel()||!this._editor.getOption(122))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const s of i.triggerCharacters||[]){let r=e.get(s);r||(r=new Set,r.add(eNt()),e.set(s,r)),r.add(i)}const t=i=>{var o;if(!SNt(this._editor,this._contextKeyService,this._configurationService)||ov.shouldAutoTrigger(this._editor))return;if(!i){const a=this._editor.getPosition();i=this._editor.getModel().getLineContent(a.lineNumber).substr(0,a.column-1)}let s="";Uy(i.charCodeAt(i.length-1))?Js(i.charCodeAt(i.length-2))&&(s=i.substr(i.length-2)):s=i.charAt(i.length-1);const r=e.get(s);if(r){const a=new Map;if(this._completionModel)for(const[l,c]of this._completionModel.getItemsByProvider())r.has(l)||a.set(l,c);this.trigger({auto:!0,triggerKind:1,triggerCharacter:s,retrigger:!!this._completionModel,clipboardText:(o=this._completionModel)==null?void 0:o.clipboardText,completionOptions:{providerFilter:r,providerItemsToReuse:a}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){var t;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(t=this._requestToken)==null||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!=="keyboard"&&e.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;tC.isAllOff(this._editor.getOption(90))||this._editor.getOption(119).snippetsPreventQuickSuggestions&&((e=la.get(this._editor))!=null&&e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!ov.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=this._editor.getOption(90);if(!tC.isAllOff(s)){if(!tC.isAllOn(s)){t.tokenization.tokenizeIfCheap(i.lineNumber);const r=t.tokenization.getLineTokens(i.lineNumber),o=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if(tC.valueFor(s,o)!=="on")return}CNt(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(91)))}_refilterCompletionItems(){yi(this._editor.hasModel()),yi(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new ov(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){var d,f,p;if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=new ov(t,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:e.shy??!1,position:this._editor.getPosition()}),this._context=i;let s={triggerKind:e.triggerKind??0};e.triggerCharacter&&(s={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new Wn;const r=this._editor.getOption(113);let o=1;switch(r){case"top":o=0;break;case"bottom":o=2;break}const{itemKind:a,showDeprecated:l}=xK.createSuggestFilter(this._editor),c=new ED(o,((d=e.completionOptions)==null?void 0:d.kindFilter)??a,(f=e.completionOptions)==null?void 0:f.providerFilter,(p=e.completionOptions)==null?void 0:p.providerItemsToReuse,l),u=f2.create(this._editorWorkerService,this._editor),h=yne(this._languageFeaturesService.completionProvider,t,this._editor.getPosition(),c,s,this._requestToken.token);Promise.all([h,u]).then(async([g,m])=>{var S;if((S=this._requestToken)==null||S.dispose(),!this._editor.hasModel())return;let _=e==null?void 0:e.clipboardText;if(!_&&g.needsClipboard&&(_=await this._clipboardService.readText()),this._triggerState===void 0)return;const b=this._editor.getModel(),w=new ov(b,this._editor.getPosition(),e),C={...iD.default,firstMatchCanBeWeak:!this._editor.getOption(119).matchOnWordStartOnly};if(this._completionModel=new Km(g.items,this._context.column,{leadingLineContent:w.leadingLineContent,characterCountDelta:w.column-this._context.column},m,this._editor.getOption(119),this._editor.getOption(113),C,_),this._completionDisposables.add(g.disposable),this._onNewContext(w),this._reportDurationsTelemetry(g.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const x of g.items)x.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${x.provider._debugDisplayName}`,x.completion)}).catch(Nt)}_reportDurationsTelemetry(e){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)})}static createSuggestFilter(e){const t=new Set;e.getOption(113)==="none"&&t.add(27);const s=e.getOption(119);return s.showMethods||t.add(0),s.showFunctions||t.add(1),s.showConstructors||t.add(2),s.showFields||t.add(3),s.showVariables||t.add(4),s.showClasses||t.add(5),s.showStructs||t.add(6),s.showInterfaces||t.add(7),s.showModules||t.add(8),s.showProperties||t.add(9),s.showEvents||t.add(10),s.showOperators||t.add(11),s.showUnits||t.add(12),s.showValues||t.add(13),s.showConstants||t.add(14),s.showEnums||t.add(15),s.showEnumMembers||t.add(16),s.showKeywords||t.add(17),s.showWords||t.add(18),s.showColors||t.add(19),s.showFiles||t.add(20),s.showReferences||t.add(21),s.showColors||t.add(22),s.showFolders||t.add(23),s.showTypeParameters||t.add(24),s.showSnippets||t.add(27),s.showUsers||t.add(25),s.showIssues||t.add(26),{itemKind:t,showDeprecated:s.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(Xi(e.leadingLineContent)!==Xi(this._context.leadingLineContent)){this.cancel();return}if(e.column<this._context.column){e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(e.leadingWord.word.length!==0&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(ov.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[s,r]of this._completionModel.getItemsByProvider())r.length>0&&r[0].container.incomplete?i.add(s):t.set(s,r);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const s=ov.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(s&&this._context.leadingWord.endColumn<e.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};p2=xK=wNt([bm(1,lu),bm(2,nm),bm(3,Ro),bm(4,co),bm(5,bt),bm(6,Xt),bm(7,Je),bm(8,Tie)],p2);const X3=class X3{constructor(e,t){this._disposables=new be,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),s=i.length;let r=!1;for(let a=0;a<s;a++)if(!i[a].isEmpty()){r=!0;break}if(!r){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const o=e.getModel();for(let a=0;a<s;a++){const l=i[a];if(o.getValueLengthInRange(l)>X3._maxSelectionLength)return;this._lastOvertyped[a]={value:o.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}};X3._maxSelectionLength=51200;let LK=X3;var xNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},oV=function(n,e){return function(t,i){e(t,i,n)}};let EK=class{constructor(e,t,i,s,r){this._menuId=t,this._menuService=s,this._contextKeyService=r,this._menuDisposables=new be,this.element=ke(e,Pe(".suggest-status-bar"));const o=a=>a instanceof fl?i.createInstance(mie,a,{useComma:!0}):void 0;this._leftActions=new uc(this.element,{actionViewItemProvider:o}),this._rightActions=new uc(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],s=[];for(const[r,o]of e.getActions())r==="left"?i.push(...o):s.push(...o);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(s)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};EK=xNt([oV(2,ct),oV(3,vc),oV(4,bt)],EK);var LNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ENt=function(n,e){return function(t,i){e(t,i,n)}};function Sne(n){return!!n&&!!(n.completion.documentation||n.completion.detail&&n.completion.detail!==n.completion.label)}let kK=class{constructor(e,t){this._editor=e,this._onDidClose=new oe,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new oe,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new be,this._renderDisposeable=new be,this._borderWidth=1,this._size=new Wi(330,0),this.domNode=Pe(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(jg,{editor:e}),this._body=Pe(".body"),this._scrollbar=new ON(this._body,{alwaysConsumeMouseWheel:!0}),ke(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=ke(this._body,Pe(".header")),this._close=ke(this._header,Pe("span"+ft.asCSSSelector(Ne.close))),this._close.title=v("details.close","Close"),this._type=ke(this._header,Pe("p.type")),this._docs=ke(this._body,Pe("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),s=e.get(120)||t.fontSize,r=e.get(121)||t.lineHeight,o=t.fontWeight,a=`${s}px`,l=`${r}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${r/s}`,this.domNode.style.fontWeight=o,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(121)||this._editor.getOption(50).lineHeight,t=this._borderWidth,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=v("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){var r;this._renderDisposeable.clear();let{detail:i,documentation:s}=e.completion;if(t){let o="";o+=`score: ${e.score[0]} +`,o+=`prefix: ${e.word??"(no prefix)"} +`,o+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel} +`,o+=`distance: ${e.distance} (localityBonus-setting) +`,o+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"} +`,o+=`commit_chars: ${(r=e.completion.commitCharacters)==null?void 0:r.join("")} +`,s=new to().appendCodeblock("empty",o),i=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!Sne(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),i){const o=i.length>1e5?`${i.substr(0,1e5)}…`:i;this._type.textContent=o,this._type.title=o,ol(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(o))}else kr(this._type),this._type.title="",zo(this._type),this.domNode.classList.add("no-type");if(kr(this._docs),typeof s=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),kr(this._docs);const o=this._markdownRenderer.render(s);this._docs.appendChild(o.element),this._renderDisposeable.add(o),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=o=>{o.preventDefault(),o.stopPropagation()},this._close.onclick=o=>{o.preventDefault(),o.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(e,t){const i=new Wi(e,t);Wi.equals(i,this._size)||(this._size=i,cut(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};kK=LNt([ENt(1,ct)],kK);class kNt{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new be,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Fie,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,s,r=0,o=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,s=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&s){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(o=s.width-a.dimension.width,l=!0),a.north&&(r=s.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+r,left:i.left+o})}a.done&&(i=void 0,s=void 0,r=0,o=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){const i=e.getBoundingClientRect();this._anchorBox=i,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,t)}_placeAtAnchor(e,t,i){const s=o_(this.getDomNode().ownerDocument.body),r=this.widget.getLayoutInfo(),o=new Wi(220,2*r.lineHeight),a=e.top,l=function(){const S=s.width-(e.left+e.width+r.borderWidth+r.horizontalPadding),x=-r.borderWidth+e.left+e.width,k=new Wi(S,s.height-e.top-r.borderHeight-r.verticalPadding),L=k.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:a,left:x,fit:S-t.width,maxSizeTop:k,maxSizeBottom:L,minSize:o.with(Math.min(S,o.width))}}(),c=function(){const S=e.left-r.borderWidth-r.horizontalPadding,x=Math.max(r.horizontalPadding,e.left-t.width-r.borderWidth),k=new Wi(S,s.height-e.top-r.borderHeight-r.verticalPadding),L=k.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:a,left:x,fit:S-t.width,maxSizeTop:k,maxSizeBottom:L,minSize:o.with(Math.min(S,o.width))}}(),u=function(){const S=e.left,x=-r.borderWidth+e.top+e.height,k=new Wi(e.width-r.borderHeight,s.height-e.top-e.height-r.verticalPadding);return{top:x,left:S,fit:k.height-t.height,maxSizeBottom:k,maxSizeTop:k,minSize:o.with(k.width)}}(),h=[l,c,u],d=h.find(S=>S.fit>=0)??h.sort((S,x)=>x.fit-S.fit)[0],f=e.top+e.height-r.borderHeight;let p,g=t.height;const m=Math.max(d.maxSizeTop.height,d.maxSizeBottom.height);g>m&&(g=m);let _;i?g<=d.maxSizeTop.height?(p=!0,_=d.maxSizeTop):(p=!1,_=d.maxSizeBottom):g<=d.maxSizeBottom.height?(p=!1,_=d.maxSizeBottom):(p=!0,_=d.maxSizeTop);let{top:b,left:w}=d;!p&&g>e.height&&(b=f-g);const C=this._editor.getDomNode();if(C){const S=C.getBoundingClientRect();b-=S.top,w-=S.left}this._applyTopLeft({left:w,top:b}),this._resizable.enableSashes(!p,d===l,p,d!==l),this._resizable.minSize=d.minSize,this._resizable.maxSize=_,this._resizable.layout(g,Math.min(_.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}var bf;(function(n){n[n.FILE=0]="FILE",n[n.FOLDER=1]="FOLDER",n[n.ROOT_FOLDER=2]="ROOT_FOLDER"})(bf||(bf={}));const INt=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function XP(n,e,t,i,s){if(ft.isThemeIcon(s))return[`codicon-${s.id}`,"predefined-file-icon"];if(mt.isUri(s))return[];const r=i===bf.ROOT_FOLDER?["rootfolder-icon"]:i===bf.FOLDER?["folder-icon"]:["file-icon"];if(t){let o;if(t.scheme===kt.data)o=f_.parseMetaData(t).get(f_.META_DATA_LABEL);else{const a=t.path.match(INt);a?(o=YP(a[2].toLowerCase()),a[1]&&r.push(`${YP(a[1].toLowerCase())}-name-dir-icon`)):o=YP(t.authority.toLowerCase())}if(i===bf.ROOT_FOLDER)r.push(`${o}-root-name-folder-icon`);else if(i===bf.FOLDER)r.push(`${o}-name-folder-icon`);else{if(o){if(r.push(`${o}-name-file-icon`),r.push("name-file-icon"),o.length<=255){const l=o.split(".");for(let c=1;c<l.length;c++)r.push(`${l.slice(c).join(".")}-ext-file-icon`)}r.push("ext-file-icon")}const a=TNt(n,e,t);a&&r.push(`${YP(a)}-lang-file-icon`)}}return r}function TNt(n,e,t){if(!t)return null;let i=null;if(t.scheme===kt.data){const r=f_.parseMetaData(t).get(f_.META_DATA_MIME);r&&(i=e.getLanguageIdByMimeType(r))}else{const s=n.getModel(t);s&&(i=s.getLanguageId())}return i&&i!==ea?i:e.guessLanguageIdByFilepathOrFirstLine(t)}function YP(n){return n.replace(/[\x11\x12\x14\x15\x40]/g,"/")}var DNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},aV=function(n,e){return function(t,i){e(t,i,n)}};function QDe(n){return`suggest-aria-id:${n}`}const NNt=_n("suggest-more-info",Ne.chevronRight,v("suggestMoreInfoIcon","Icon for more information in the suggest widget."));var Ch;const ANt=new(Ch=class{extract(e,t){if(e.textLabel.match(Ch._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(Ch._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i=typeof e.completion.documentation=="string"?e.completion.documentation:e.completion.documentation.value,s=Ch._regexRelaxed.exec(i);if(s&&(s.index===0||s.index+s[0].length===i.length))return t[0]=s[0],!0}return!1}},Ch._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,Ch._regexStrict=new RegExp(`^${Ch._regexRelaxed.source}$`,"i"),Ch);let IK=class{constructor(e,t,i,s){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=s,this._onDidToggleDetails=new oe,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new be,i=e;i.classList.add("show-file-icons");const s=ke(e,Pe(".icon")),r=ke(s,Pe("span.colorspan")),o=ke(e,Pe(".contents")),a=ke(o,Pe(".main")),l=ke(a,Pe(".icon-label.codicon")),c=ke(a,Pe("span.left")),u=ke(a,Pe("span.right")),h=new q4(c,{supportHighlights:!0,supportIcons:!0});t.add(h);const d=ke(c,Pe("span.signature-label")),f=ke(c,Pe("span.qualifier-label")),p=ke(u,Pe("span.details-label")),g=ke(u,Pe("span.readMore"+ft.asCSSSelector(NNt)));return g.title=v("readMore","Read More"),{root:i,left:c,right:u,icon:s,colorspan:r,iconLabel:h,iconContainer:l,parametersLabel:d,qualifierLabel:f,detailsLabel:p,readMore:g,disposables:t,configureFont:()=>{const _=this._editor.getOptions(),b=_.get(50),w=b.getMassagedFontFamily(),C=b.fontFeatureSettings,S=_.get(120)||b.fontSize,x=_.get(121)||b.lineHeight,k=b.fontWeight,L=b.letterSpacing,E=`${S}px`,A=`${x}px`,I=`${L}px`;i.style.fontSize=E,i.style.fontWeight=k,i.style.letterSpacing=I,a.style.fontFamily=w,a.style.fontFeatureSettings=C,a.style.lineHeight=A,s.style.height=A,s.style.width=A,g.style.height=A,g.style.width=A}}}renderElement(e,t,i){i.configureFont();const{completion:s}=e;i.root.id=QDe(t),i.colorspan.style.backgroundColor="";const r={labelEscapeNewLines:!0,matches:jN(e.score)},o=[];if(s.kind===19&&ANt.extract(e,o))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=o[0];else if(s.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=XP(this._modelService,this._languageService,mt.from({scheme:"fake",path:e.textLabel}),bf.FILE),l=XP(this._modelService,this._languageService,mt.from({scheme:"fake",path:s.detail}),bf.FILE);r.extraClasses=a.length>l.length?a:l}else s.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",r.extraClasses=[XP(this._modelService,this._languageService,mt.from({scheme:"fake",path:e.textLabel}),bf.FOLDER),XP(this._modelService,this._languageService,mt.from({scheme:"fake",path:s.detail}),bf.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...ft.asClassNameArray(OT.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(r.extraClasses=(r.extraClasses||[]).concat(["deprecated"]),r.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,r),typeof s.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=lV(s.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=lV(s.label.detail||""),i.detailsLabel.textContent=lV(s.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(119).showInlineDetails?ol(i.detailsLabel):zo(i.detailsLabel),Sne(e)?(i.right.classList.add("can-expand-details"),ol(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),zo(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};IK=DNt([aV(1,mn),aV(2,Dn),aV(3,Xs)],IK);function lV(n){return n.replace(/\r\n|\r|\n/g,"")}var PNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ZP=function(n,e){return function(t,i){e(t,i,n)}},Rw;U("editorSuggestWidget.background",$c,v("editorSuggestWidgetBackground","Background color of the suggest widget."));U("editorSuggestWidget.border",nte,v("editorSuggestWidgetBorder","Border color of the suggest widget."));const RNt=U("editorSuggestWidget.foreground",sp,v("editorSuggestWidgetForeground","Foreground color of the suggest widget."));U("editorSuggestWidget.selectedForeground",NT,v("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget."));U("editorSuggestWidget.selectedIconForeground",ute,v("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget."));const MNt=U("editorSuggestWidget.selectedBackground",AT,v("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget."));U("editorSuggestWidget.highlightForeground",Uw,v("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget."));U("editorSuggestWidget.focusHighlightForeground",hgt,v("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused."));U("editorSuggestWidgetStatus.foreground",jt(RNt,.5),v("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class ONt{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof Ku}`}restore(){const e=this._service.get(this._key,0)??"";try{const t=JSON.parse(e);if(Wi.is(t))return Wi.lift(t)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}var H1;let TK=(H1=class{constructor(e,t,i,s,r){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new rr,this._pendingShowDetails=new rr,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Zu,this._disposables=new be,this._onDidSelect=new $y,this._onDidFocus=new $y,this._onDidHide=new oe,this._onDidShow=new oe,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new oe,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new Fie,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new FNt(this,e),this._persistedSize=new ONt(t,e);class o{constructor(f,p,g=!1,m=!1){this.persistedSize=f,this.currentSize=p,this.persistHeight=g,this.persistWidth=m}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new o(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(d=>{var f,p;if(this._resize(d.dimension.width,d.dimension.height),a&&(a.persistHeight=a.persistHeight||!!d.north||!!d.south,a.persistWidth=a.persistWidth||!!d.east||!!d.west),!!d.done){if(a){const{itemHeight:g,defaultSize:m}=this.getLayoutInfo(),_=Math.round(g/2);let{width:b,height:w}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-w)<=_)&&(w=((f=a.persistedSize)==null?void 0:f.height)??m.height),(!a.persistWidth||Math.abs(a.currentSize.width-b)<=_)&&(b=((p=a.persistedSize)==null?void 0:p.width)??m.width),this._persistedSize.store(new Wi(b,w))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=ke(this.element.domNode,Pe(".message")),this._listElement=ke(this.element.domNode,Pe(".tree"));const l=this._disposables.add(r.createInstance(kK,this.editor));l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new kNt(l,this.editor);const c=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(119).showIcons);c();const u=r.createInstance(IK,this.editor);this._disposables.add(u),this._disposables.add(u.onDidToggleDetails(()=>this.toggleDetails())),this._list=new yc("SuggestWidget",this._listElement,{getHeight:d=>this.getLayoutInfo().itemHeight,getTemplateId:d=>"suggestion"},[u],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>v("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:d=>{let f=d.textLabel;if(typeof d.completion.label!="string"){const{detail:_,description:b}=d.completion.label;_&&b?f=v("label.full","{0} {1}, {2}",f,_,b):_?f=v("label.detail","{0} {1}",f,_):b&&(f=v("label.desc","{0}, {1}",f,b))}if(!d.isResolved||!this._isDetailsVisible())return f;const{documentation:p,detail:g}=d.completion,m=zy("{0}{1}",g||"",p?typeof p=="string"?p:p.value:"");return v("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",f,m)}}}),this._list.style(O0({listInactiveFocusBackground:MNt,listInactiveFocusOutline:Cn})),this._status=r.createInstance(EK,this.element.domNode,T1);const h=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(119).showStatusBar);h(),this._disposables.add(s.onDidColorThemeChange(d=>this._onThemeChange(d))),this._onThemeChange(s.getColorTheme()),this._disposables.add(this._list.onMouseDown(d=>this._onListMouseDownOrTap(d))),this._disposables.add(this._list.onTap(d=>this._onListMouseDownOrTap(d))),this._disposables.add(this._list.onDidChangeSelection(d=>this._onListSelection(d))),this._disposables.add(this._list.onDidChangeFocus(d=>this._onListFocus(d))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(d=>{d.hasChanged(119)&&(h(),c()),this._completionModel&&(d.hasChanged(50)||d.hasChanged(120)||d.hasChanged(121))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=zt.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=zt.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=zt.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=zt.HasFocusedSuggestion.bindTo(i),this._disposables.add(os(this._details.widget.domNode,"keydown",d=>{this._onDetailsKeydown.fire(d)})),this._disposables.add(this.editor.onMouseDown(d=>this._onEditorMouseDown(d)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)==null||e.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>"u"||typeof e.index>"u"||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=Vh(e.type)?2:1}_onListFocus(e){var s;if(this._ignoreFocusEvents)return;if(!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const t=e.elements[0],i=e.indexes[0];t!==this._focusedItem&&((s=this._currentSuggestionDetails)==null||s.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=t,this._list.reveal(i),this._currentSuggestionDetails=tr(async r=>{const o=n_(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),a=r.onCancellationRequested(()=>o.dispose());try{return await t.resolve(r)}finally{o.dispose(),a.dispose()}}),this._currentSuggestionDetails.then(()=>{i>=this._list.length||t!==this._list.element(i)||(this._ignoreFocusEvents=!0,this._list.splice(i,1,[t]),this._list.setFocus([i]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:QDe(i)}))}).catch(Nt)),this._onDidFocus.fire({item:t,index:i,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",e===4),this.element.domNode.classList.remove("message"),e){case 0:zo(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=Rw.LOADING_MESSAGE,zo(this._listElement,this._status.element),ol(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,jf(Rw.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=Rw.NO_SUGGESTIONS_MESSAGE,zo(this._listElement,this._status.element),ol(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,jf(Rw.NO_SUGGESTIONS_MESSAGE);break;case 3:zo(this._messageElement),ol(this._listElement,this._status.element),this._show();break;case 4:zo(this._messageElement),ol(this._listElement,this._status.element),this._show();break;case 5:zo(this._messageElement),ol(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=n_(()=>this._setState(1),t)))}showSuggestions(e,t,i,s,r){var l,c;if(this._contentWidget.setPosition(this.editor.getPosition()),(l=this._loadingTimeout)==null||l.dispose(),(c=this._currentSuggestionDetails)==null||c.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const o=this._completionModel.items.length,a=o===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(o>1),a){this._setState(s?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(r?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=dF(ut(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(Sne(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._pendingShowDetails.value=dF(ut(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var i;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(i=this._loadingTimeout)==null||i.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const e=this._persistedSize.restore(),t=Math.ceil(this.getLayoutInfo().itemHeight*4.3);e&&e.height<t&&this._persistedSize.store(e.with(void 0,t))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(e){var o,a;if(!this.editor.hasModel()||!this.editor.getDomNode())return;const t=o_(this.element.domNode.ownerDocument.body),i=this.getLayoutInfo();e||(e=i.defaultSize);let s=e.height,r=e.width;if(this._status.element.style.height=`${i.itemHeight}px`,this._state===2||this._state===1)s=i.itemHeight+i.borderHeight,r=i.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Wi(r,s),this._contentWidget.setPreference(2);else{const l=t.width-i.borderHeight-2*i.horizontalPadding;r>l&&(r=l);const c=this._completionModel?this._completionModel.stats.pLabelLen*i.typicalHalfwidthCharacterWidth:r,u=i.statusBarHeight+this._list.contentHeight+i.borderHeight,h=i.itemHeight+i.statusBarHeight,d=ps(this.editor.getDomNode()),f=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=d.top+f.top+f.height,g=Math.min(t.height-p-i.verticalPadding,u),m=d.top+f.top-i.verticalPadding,_=Math.min(m,u);let b=Math.min(Math.max(_,g)+i.borderHeight,u);s===((o=this._cappedHeight)==null?void 0:o.capped)&&(s=this._cappedHeight.wanted),s<h&&(s=h),s>b&&(s=b),s>g||this._forceRenderingAbove&&m>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),b=_):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),b=g),this.element.preferredSize=new Wi(c,i.defaultSize.height),this.element.maxSize=new Wi(l,b),this.element.minSize=new Wi(220,h),this._cappedHeight=s===u?{wanted:((a=this._cappedHeight)==null?void 0:a.wanted)??e.height,capped:s}:void 0}this._resize(r,s)}_resize(e,t){const{width:i,height:s}=this.element.maxSize;e=Math.min(i,e),t=Math.min(s,t);const{statusBarHeight:r}=this.getLayoutInfo();this._list.layout(t-r,e),this._listElement.style.height=`${t-r}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((e=this._contentWidget.getPosition())==null?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(50),t=$o(this.editor.getOption(121)||e.lineHeight,8,1e3),i=!this.editor.getOption(119).showStatusBar||this._state===2||this._state===1?0:t,s=this._details.widget.borderWidth,r=2*s;return{itemHeight:t,statusBarHeight:i,borderWidth:s,borderHeight:r,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Wi(430,i+12*t+r)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}},Rw=H1,H1.LOADING_MESSAGE=v("suggestWidget.loading","Loading..."),H1.NO_SUGGESTIONS_MESSAGE=v("suggestWidget.noSuggestions","No suggestions."),H1);TK=Rw=PNt([ZP(1,Ju),ZP(2,bt),ZP(3,Xs),ZP(4,ct)],TK);class FNt{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:s}=this._widget.getLayoutInfo();return new Wi(t+2*i+s,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var BNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},_w=function(n,e){return function(t,i){e(t,i,n)}},DK;class WNt{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=At.register({description:"suggest-line-suffix",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const s=e.getOffsetAt(t),r=e.getPositionAt(s+1);e.changeDecorations(o=>{this._marker&&o.removeDecoration(this._marker),this._marker=o.addDecoration(O.fromPositions(t,r),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}var oy;let Du=(oy=class{static get(e){return e.getContribution(DK.ID)}constructor(e,t,i,s,r,o,a){this._memoryService=t,this._commandService=i,this._contextKeyService=s,this._instantiationService=r,this._logService=o,this._telemetryService=a,this._lineSuffix=new rr,this._toDispose=new be,this._selectors=new VNt(h=>h.priority),this._onWillInsertSuggestItem=new oe,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=r.createInstance(p2,this.editor),this._selectors.register({priority:0,select:(h,d,f)=>this._memoryService.select(h,d,f)});const l=zt.InsertMode.bindTo(s);l.set(e.getOption(119).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(119).insertMode))),this.widget=this._toDispose.add(new R7(ut(e.getDomNode()),()=>{const h=this._instantiationService.createInstance(TK,this.editor);this._toDispose.add(h),this._toDispose.add(h.onDidSelect(m=>this._insertSuggestion(m,0),this));const d=new yNt(this.editor,h,this.model,m=>this._insertSuggestion(m,2));this._toDispose.add(d);const f=zt.MakesTextEdit.bindTo(this._contextKeyService),p=zt.HasInsertAndReplaceRange.bindTo(this._contextKeyService),g=zt.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(lt(()=>{f.reset(),p.reset(),g.reset()})),this._toDispose.add(h.onDidFocus(({item:m})=>{const _=this.editor.getPosition(),b=m.editStart.column,w=_.column;let C=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!m.completion.additionalTextEdits&&!(m.completion.insertTextRules&4)&&w-b===m.completion.insertText.length&&(C=this.editor.getModel().getValueInRange({startLineNumber:_.lineNumber,startColumn:b,endLineNumber:_.lineNumber,endColumn:w})!==m.completion.insertText),f.set(C),p.set(!se.equals(m.editInsertEnd,m.editReplaceEnd)),g.set(!!m.provider.resolveCompletionItem||!!m.completion.documentation||m.completion.detail!==m.completion.label)})),this._toDispose.add(h.onDetailsKeyDown(m=>{if(m.toKeyCodeChord().equals(new Bg(!0,!1,!1,!1,33))||ni&&m.toKeyCodeChord().equals(new Bg(!1,!1,!1,!0,33))){m.stopPropagation();return}m.toKeyCodeChord().isModifierKey()||this.editor.focus()})),h})),this._overtypingCapturer=this._toDispose.add(new R7(ut(e.getDomNode()),()=>this._toDispose.add(new LK(this.editor,this.model)))),this._alternatives=this._toDispose.add(new R7(ut(e.getDomNode()),()=>this._toDispose.add(new Cx(this.editor,this._contextKeyService)))),this._toDispose.add(r.createInstance(h2,e)),this._toDispose.add(this.model.onDidTrigger(h=>{this.widget.value.showTriggered(h.auto,h.shy?250:50),this._lineSuffix.value=new WNt(this.editor.getModel(),h.position)})),this._toDispose.add(this.model.onDidSuggest(h=>{if(h.triggerOptions.shy)return;let d=-1;for(const p of this._selectors.itemsOrderedByPriorityDesc)if(d=p.select(this.editor.getModel(),this.editor.getPosition(),h.completionModel.items),d!==-1)break;if(d===-1&&(d=0),this.model.state===0)return;let f=!1;if(h.triggerOptions.auto){const p=this.editor.getOption(119);p.selectionMode==="never"||p.selectionMode==="always"?f=p.selectionMode==="never":p.selectionMode==="whenTriggerCharacter"?f=h.triggerOptions.triggerKind!==1:p.selectionMode==="whenQuickSuggestion"&&(f=h.triggerOptions.triggerKind===1&&!h.triggerOptions.refilter)}this.widget.value.showSuggestions(h.completionModel,d,h.isFrozen,h.triggerOptions.auto,f)})),this._toDispose.add(this.model.onDidCancel(h=>{h.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const c=zt.AcceptSuggestionsOnEnter.bindTo(s),u=()=>{const h=this.editor.getOption(1);c.set(h==="on"||h==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>u())),u()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=la.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const s=this.editor.getModel(),r=s.getAlternativeVersionId(),{item:o}=e,a=[],l=new Wn;t&1||this.editor.pushUndoStop();const c=this.getOverwriteInfo(o,!!(t&8));this._memoryService.memorize(s,this.editor.getPosition(),o);const u=o.isResolved;let h=-1,d=-1;if(Array.isArray(o.completion.additionalTextEdits)){this.model.cancel();const p=id.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map(g=>{let m=O.lift(g.range);if(m.startLineNumber===o.position.lineNumber&&m.startColumn>o.position.column){const _=this.editor.getPosition().column-o.position.column,b=_,w=O.spansMultipleLines(m)?0:_;m=new O(m.startLineNumber,m.startColumn+b,m.endLineNumber,m.endColumn+w)}return Fn.replaceMove(m,g.text)})),p.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!u){const p=new Nr;let g;const m=s.onDidChangeContent(C=>{if(C.isFlush){l.cancel(),m.dispose();return}for(const S of C.changes){const x=O.getEndPosition(S.range);(!g||se.isBefore(x,g))&&(g=x)}}),_=t;t|=2;let b=!1;const w=this.editor.onWillType(()=>{w.dispose(),b=!0,_&2||this.editor.pushUndoStop()});a.push(o.resolve(l.token).then(()=>{if(!o.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(g&&o.completion.additionalTextEdits.some(S=>se.isBefore(g,O.getStartPosition(S.range))))return!1;b&&this.editor.pushUndoStop();const C=id.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map(S=>Fn.replaceMove(O.lift(S.range),S.text))),C.restoreRelativeVerticalPositionOfCursor(this.editor),(b||!(_&2))&&this.editor.pushUndoStop(),!0}).then(C=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",p.elapsed(),C),d=C===!0?1:C===!1?0:-2}).finally(()=>{m.dispose(),w.dispose()}))}let{insertText:f}=o.completion;if(o.completion.insertTextRules&4||(f=n0.escape(f)),this.model.cancel(),i.insert(f,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(o.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),t&2||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===g2.id)this.model.trigger({auto:!0,retrigger:!0});else{const p=new Nr;a.push(this._commandService.executeCommand(o.completion.command.id,...o.completion.command.arguments?[...o.completion.command.arguments]:[]).catch(g=>{o.completion.extensionId?ls(g):Nt(g)}).finally(()=>{h=p.elapsed()}))}t&4&&this._alternatives.value.set(e,p=>{for(l.cancel();s.canUndo();){r!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(p,3|(t&8?8:0));break}}),this._alertCompletionItem(o),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(o,s,u,h,d),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,s,r){var o;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:((o=e.extensionId)==null?void 0:o.value)??"unknown",providerId:e.provider._debugDisplayName??"unknown",kind:e.completion.kind,basenameHash:PB(su(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:hvt(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:s,additionalEditsAsync:r})}getOverwriteInfo(e,t){yi(this.editor.hasModel());let i=this.editor.getOption(119).insertMode==="replace";t&&(i=!i);const s=e.position.column-e.editStart.column,r=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,o=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:s+o,overwriteAfter:r+a}}_alertCompletionItem(e){if(so(e.completion.additionalTextEdits)){const t=v("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);yl(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},s=r=>{if(r.completion.insertTextRules&4||r.completion.additionalTextEdits)return!0;const o=this.editor.getPosition(),a=r.editStart.column,l=o.column;return l-a!==r.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:o.lineNumber,startColumn:a,endLineNumber:o.lineNumber,endColumn:l})!==r.completion.insertText};Oe.once(this.model.onDidTrigger)(r=>{const o=[];Oe.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{Yi(o),i()},void 0,o),this.model.onDidSuggest(({completionModel:a})=>{if(Yi(o),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),c=a.items[l];if(!s(c)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:c,model:a},7)},void 0,o)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let s=0;e&&(s|=4),t&&(s|=8),this._insertSuggestion(i,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}},DK=oy,oy.ID="editor.contrib.suggestController",oy);Du=DK=BNt([_w(1,Y8),_w(2,an),_w(3,bt),_w(4,ct),_w(5,co),_w(6,Ro)],Du);class VNt{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error("Value is already registered");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}const Y3=class Y3 extends Xe{constructor(){super({id:Y3.id,label:v("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:ye.and(H.writable,H.hasCompletionItemProvider,zt.Visible.toNegated()),kbOpts:{kbExpr:H.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const s=Du.get(t);if(!s)return;let r;i&&typeof i=="object"&&i.auto===!0&&(r=!0),s.triggerSuggest(void 0,r,void 0)}};Y3.id="editor.action.triggerSuggest";let g2=Y3;_i(Du.ID,Du,2);Ie(g2);const mc=190,da=Gs.bindToContribution(Du.get);Ve(new da({id:"acceptSelectedSuggestion",precondition:ye.and(zt.Visible,zt.HasFocusedSuggestion),handler(n){n.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:ye.and(zt.Visible,H.textInputFocus),weight:mc},{primary:3,kbExpr:ye.and(zt.Visible,H.textInputFocus,zt.AcceptSuggestionsOnEnter,zt.MakesTextEdit),weight:mc}],menuOpts:[{menuId:T1,title:v("accept.insert","Insert"),group:"left",order:1,when:zt.HasInsertAndReplaceRange.toNegated()},{menuId:T1,title:v("accept.insert","Insert"),group:"left",order:1,when:ye.and(zt.HasInsertAndReplaceRange,zt.InsertMode.isEqualTo("insert"))},{menuId:T1,title:v("accept.replace","Replace"),group:"left",order:1,when:ye.and(zt.HasInsertAndReplaceRange,zt.InsertMode.isEqualTo("replace"))}]}));Ve(new da({id:"acceptAlternativeSelectedSuggestion",precondition:ye.and(zt.Visible,H.textInputFocus,zt.HasFocusedSuggestion),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:1027,secondary:[1026]},handler(n){n.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:T1,group:"left",order:2,when:ye.and(zt.HasInsertAndReplaceRange,zt.InsertMode.isEqualTo("insert")),title:v("accept.replace","Replace")},{menuId:T1,group:"left",order:2,when:ye.and(zt.HasInsertAndReplaceRange,zt.InsertMode.isEqualTo("replace")),title:v("accept.insert","Insert")}]}));di.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");Ve(new da({id:"hideSuggestWidget",precondition:zt.Visible,handler:n=>n.cancelSuggestWidget(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:9,secondary:[1033]}}));Ve(new da({id:"selectNextSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectNextSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));Ve(new da({id:"selectNextPageSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectNextPageSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:12,secondary:[2060]}}));Ve(new da({id:"selectLastSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectLastSuggestion()}));Ve(new da({id:"selectPrevSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));Ve(new da({id:"selectPrevPageSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevPageSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:11,secondary:[2059]}}));Ve(new da({id:"selectFirstSuggestion",precondition:ye.and(zt.Visible,ye.or(zt.MultipleSuggestions,zt.HasFocusedSuggestion.negate())),handler:n=>n.selectFirstSuggestion()}));Ve(new da({id:"focusSuggestion",precondition:ye.and(zt.Visible,zt.HasFocusedSuggestion.negate()),handler:n=>n.focusSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));Ve(new da({id:"focusAndAcceptSuggestion",precondition:ye.and(zt.Visible,zt.HasFocusedSuggestion.negate()),handler:n=>{n.focusSuggestion(),n.acceptSelectedSuggestion(!0,!1)}}));Ve(new da({id:"toggleSuggestionDetails",precondition:ye.and(zt.Visible,zt.HasFocusedSuggestion),handler:n=>n.toggleSuggestionDetails(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:T1,group:"right",order:1,when:ye.and(zt.DetailsVisible,zt.CanResolve),title:v("detail.more","show less")},{menuId:T1,group:"right",order:1,when:ye.and(zt.DetailsVisible.toNegated(),zt.CanResolve),title:v("detail.less","show more")}]}));Ve(new da({id:"toggleExplainMode",precondition:zt.Visible,handler:n=>n.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));Ve(new da({id:"toggleSuggestionFocus",precondition:zt.Visible,handler:n=>n.toggleSuggestionFocus(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:2570,mac:{primary:778}}}));Ve(new da({id:"insertBestCompletion",precondition:ye.and(H.textInputFocus,ye.equals("config.editor.tabCompletion","on"),h2.AtEnd,zt.Visible.toNegated(),Cx.OtherSuggestions.toNegated(),la.InSnippetMode.toNegated()),handler:(n,e)=>{n.triggerSuggestAndAcceptBest(fr(e)?{fallback:"tab",...e}:{fallback:"tab"})},kbOpts:{weight:mc,primary:2}}));Ve(new da({id:"insertNextSuggestion",precondition:ye.and(H.textInputFocus,ye.equals("config.editor.tabCompletion","on"),Cx.OtherSuggestions,zt.Visible.toNegated(),la.InSnippetMode.toNegated()),handler:n=>n.acceptNextSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:2}}));Ve(new da({id:"insertPrevSuggestion",precondition:ye.and(H.textInputFocus,ye.equals("config.editor.tabCompletion","on"),Cx.OtherSuggestions,zt.Visible.toNegated(),la.InSnippetMode.toNegated()),handler:n=>n.acceptPrevSuggestion(),kbOpts:{weight:mc,kbExpr:H.textInputFocus,primary:1026}}));Ie(class extends Xe{constructor(){super({id:"editor.action.resetSuggestSize",label:v("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(n,e){var t;(t=Du.get(e))==null||t.resetWidgetSize()}});class HNt extends ue{get selectedItem(){return this._currentSuggestItemInfo}constructor(e,t,i){super(),this.editor=e,this.suggestControllerPreselector=t,this.onWillAccept=i,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new oe),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(e.onKeyDown(r=>{r.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(r=>{r.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const s=Du.get(this.editor);if(s){this._register(s.registerSelector({priority:100,select:(a,l,c)=>{const u=this.editor.getModel();if(!u)return-1;const h=this.suggestControllerPreselector(),d=h?Tb(h,u):void 0;if(!d)return-1;const f=se.lift(l),p=c.map((m,_)=>{const b=Jk.fromSuggestion(s,u,f,m,this.isShiftKeyPressed),w=Tb(b.toSingleTextEdit(),u),C=ZDe(d,w);return{index:_,valid:C,prefixLength:w.text.length,suggestItem:m}}).filter(m=>m&&m.valid&&m.prefixLength>0),g=bte(p,Jo(m=>m.prefixLength,Ru));return g?g.index:-1}}));let r=!1;const o=()=>{r||(r=!0,this._register(s.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(s.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(s.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Oe.once(s.model.onDidTrigger)(a=>{o()})),this._register(s.onWillInsertSuggestItem(a=>{const l=this.editor.getPosition(),c=this.editor.getModel();if(!l||!c)return;const u=Jk.fromSuggestion(s,c,l,a.item,this.isShiftKeyPressed);this.onWillAccept(u)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!$Nt(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const e=Du.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),s=this.editor.getModel();if(!(!t||!i||!s))return Jk.fromSuggestion(e,s,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const e=Du.get(this.editor);e==null||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=Du.get(this.editor);e==null||e.forceRenderingAbove()}}class Jk{static fromSuggestion(e,t,i,s,r){let{insertText:o}=s.completion,a=!1;if(s.completion.insertTextRules&4){const c=new n0().parse(o);c.children.length<100&&u2.adjustWhitespace(t,i,!0,c),o=c.toString(),a=!0}const l=e.getOverwriteInfo(s,r);return new Jk(O.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),o,s.completion.kind,a)}constructor(e,t,i,s){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=s}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new UEe(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new Xf(this.range,this.insertText)}}function $Nt(n,e){return n===e?!0:!n||!e?!1:n.equals(e)}var zNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},vp=function(n,e){return function(t,i){e(t,i,n)}},NK,ay;let ru=(ay=class extends ue{static get(e){return e.getContribution(NK.ID)}constructor(e,t,i,s,r,o,a,l,c,u){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=s,this._commandService=r,this._debounceService=o,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=c,this._accessibilityService=u,this._editorObs=ll(this.editor),this._positions=ot(this,d=>{var f;return((f=this._editorObs.selections.read(d))==null?void 0:f.map(p=>p.getEndPosition()))??[new se(1,1)]}),this._suggestWidgetAdaptor=this._register(new HNt(this.editor,()=>{var d,f;return this._editorObs.forceUpdate(),(f=(d=this.model.get())==null?void 0:d.selectedInlineCompletion.get())==null?void 0:f.toSingleTextEdit(void 0)},d=>this._editorObs.forceUpdate(f=>{var p;(p=this.model.get())==null||p.handleSuggestAccepted(d)}))),this._suggestWidgetSelectedItem=Vi(this,d=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(f=>d(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem),this._enabledInConfig=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=Vi(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=Vi(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),this._enabled=ot(this,d=>this._enabledInConfig.read(d)&&(!this._isScreenReaderEnabled.read(d)||!this._editorDictationInProgress.read(d))),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model=vo(this,d=>{if(this._editorObs.isReadonly.read(d))return;const f=this._editorObs.model.read(d);return f?this._instantiationService.createInstance(wK,f,this._suggestWidgetSelectedItem,this._editorObs.versionId,this._positions,this._debounceValue,Vi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).preview),Vi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).previewMode),Vi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).mode),this._enabled):void 0}).recomputeInitiallyAndOnChange(this._store),this._ghostTexts=ot(this,d=>{const f=this.model.read(d);return(f==null?void 0:f.ghostTexts.read(d))??[]}),this._stablizedGhostTexts=UNt(this._ghostTexts,this._store),this._ghostTextWidgets=Wyt(this,this._stablizedGhostTexts,(d,f)=>f.add(this._instantiationService.createInstance(bK,this.editor,{ghostText:d,minReservedLineCount:Uc(0),targetTextModel:this.model.map(p=>p==null?void 0:p.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._playAccessibilitySignal=vL(this),this._fontFamily=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._register(new ml(this._contextKeyService,this.model)),this._register(nj(this._editorObs.onDidType,(d,f)=>{var p;this._enabled.get()&&((p=this.model.get())==null||p.trigger())})),this._register(this._commandService.onDidExecuteCommand(d=>{new Set([HC.Tab.id,HC.DeleteLeft.id,HC.DeleteRight.id,ITe,"acceptSelectedSuggestion"]).has(d.commandId)&&e.hasTextFocus()&&this._enabled.get()&&this._editorObs.forceUpdate(p=>{var g;(g=this.model.get())==null||g.trigger(p)})})),this._register(nj(this._editorObs.selections,(d,f)=>{var p;f.some(g=>g.reason===3||g.source==="api")&&((p=this.model.get())==null||p.stop())})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(62).keepOnBlur||fx.dropDownVisible||Un(d=>{var f;(f=this.model.get())==null||f.stop(d)})})),this._register(Lt(d=>{var p;const f=(p=this.model.read(d))==null?void 0:p.state.read(d);f!=null&&f.suggestItem?f.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(lt(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));const h=UN(this,(d,f)=>{var m;const p=this.model.read(d),g=p==null?void 0:p.state.read(d);return this._suggestWidgetSelectedItem.get()?f:(m=g==null?void 0:g.inlineCompletion)==null?void 0:m.semanticId});this._register(oSt(ot(d=>(this._playAccessibilitySignal.read(d),h.read(d),{})),async(d,f,p)=>{const g=this.model.get(),m=g==null?void 0:g.state.get();if(!m||!g)return;const _=g.textModel.getLineContent(m.primaryGhostText.lineNumber);await Uf(50,nz(p)),await Mke(this._suggestWidgetSelectedItem,ko,()=>!1,nz(p)),await this._accessibilitySignalService.playSignal(jl.inlineSuggestion),this.editor.getOption(8)&&this._provideScreenReaderUpdate(m.primaryGhostText.renderForScreenReader(_))})),this._register(new Nq(this.editor,this.model,this._instantiationService)),this._register(ADt(ot(d=>{const f=this._fontFamily.read(d);return f===""||f==="default"?"":` +.monaco-editor .ghost-text-decoration, +.monaco-editor .ghost-text-decoration-preview, +.monaco-editor .ghost-text { + font-family: ${f}; +}`}))),this._register(this._configurationService.onDidChangeConfiguration(d=>{d.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}_provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!t&&i&&this.editor.getOption(150)&&(s=v("showAccessibleViewHint","Inspect this in the accessible view ({0})",i.getAriaLabel())),yl(s?e+", "+s:e)}shouldShowHoverAt(e){var i;const t=(i=this.model.get())==null?void 0:i.primaryGhostText.get();return t?t.parts.some(s=>e.containsPosition(new se(t.lineNumber,s.column))):!1}shouldShowHoverAtViewZone(e){var t;return((t=this._ghostTextWidgets.get()[0])==null?void 0:t.ownsViewZone(e))??!1}},NK=ay,ay.ID="editor.contrib.inlineCompletionsController",ay);ru=NK=zNt([vp(1,ct),vp(2,bt),vp(3,Xt),vp(4,an),vp(5,wc),vp(6,Je),vp(7,F_),vp(8,Ni),vp(9,xl)],ru);function UNt(n,e){const t=Gt("result",[]),i=[];return e.add(Lt(s=>{const r=n.read(s);Un(o=>{if(r.length!==i.length){i.length=r.length;for(let a=0;a<i.length;a++)i[a]||(i[a]=Gt("item",r[a]));t.set([...i],o)}i.forEach((a,l)=>a.set(r[l],o))})})),t}const Z3=class Z3 extends Xe{constructor(){super({id:Z3.ID,label:v("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:ye.and(H.writable,ml.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var s;const i=ru.get(t);(s=i==null?void 0:i.model.get())==null||s.next()}};Z3.ID=DTe;let AK=Z3;const Q3=class Q3 extends Xe{constructor(){super({id:Q3.ID,label:v("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:ye.and(H.writable,ml.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var s;const i=ru.get(t);(s=i==null?void 0:i.model.get())==null||s.previous()}};Q3.ID=TTe;let PK=Q3;class jNt extends Xe{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:v("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:H.writable})}async run(e,t){const i=ru.get(t);await Ake(async s=>{var r;await((r=i==null?void 0:i.model.get())==null?void 0:r.triggerExplicitly(s)),i==null||i.playAccessibilitySignal(s)})}}class qNt extends Xe{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:v("action.inlineSuggest.acceptNextWord","Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:ye.and(H.writable,ml.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:ye.and(H.writable,ml.inlineSuggestionVisible)},menuOpts:[{menuId:et.InlineSuggestionToolbar,title:v("acceptWord","Accept Word"),group:"primary",order:2}]})}async run(e,t){var s;const i=ru.get(t);await((s=i==null?void 0:i.model.get())==null?void 0:s.acceptNextWord(i.editor))}}class KNt extends Xe{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:v("action.inlineSuggest.acceptNextLine","Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:ye.and(H.writable,ml.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:et.InlineSuggestionToolbar,title:v("acceptLine","Accept Line"),group:"secondary",order:2}]})}async run(e,t){var s;const i=ru.get(t);await((s=i==null?void 0:i.model.get())==null?void 0:s.acceptNextLine(i.editor))}}class GNt extends Xe{constructor(){super({id:ITe,label:v("action.inlineSuggest.accept","Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:ml.inlineSuggestionVisible,menuOpts:[{menuId:et.InlineSuggestionToolbar,title:v("accept","Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:ye.and(ml.inlineSuggestionVisible,H.tabMovesFocus.toNegated(),ml.inlineSuggestionHasIndentationLessThanTabSize,zt.Visible.toNegated(),H.hoverFocused.toNegated())}})}async run(e,t){var s;const i=ru.get(t);i&&((s=i.model.get())==null||s.accept(i.editor),i.editor.focus())}}const J3=class J3 extends Xe{constructor(){super({id:J3.ID,label:v("action.inlineSuggest.hide","Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:ml.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=ru.get(t);Un(s=>{var r;(r=i==null?void 0:i.model.get())==null||r.stop(s)})}};J3.ID="editor.action.inlineSuggest.hide";let RK=J3;const e5=class e5 extends ca{constructor(){super({id:e5.ID,title:v("action.inlineSuggest.alwaysShowToolbar","Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:et.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:ye.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e,t){const i=e.get(Xt),r=i.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",r)}};e5.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";let MK=e5;var XNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},xE=function(n,e){return function(t,i){e(t,i,n)}};class YNt{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let OK=class{constructor(e,t,i,s,r,o){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=s,this._instantiationService=r,this._telemetryService=o,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=ru.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId))return new SM(1e3,this,O.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),e.event.posx,e.event.posy,!1)}return i.type===7&&t.shouldShowHoverAt(i.range)?new SM(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new SM(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const i=ru.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new YNt(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new be,s=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&i.add(this.renderScreenReaderText(e,s));const r=s.controller.model.get(),o=this._instantiationService.createInstance(fx,this._editor,!1,Uc(null),r.selectedInlineCompletionIndex,r.inlineCompletionsCount,r.activeCommands),a=o.getDomNode();e.fragment.appendChild(a),r.triggerExplicitly(),i.add(o);const l={hoverPart:s,hoverElement:a,dispose(){i.dispose()}};return new a0([l])}renderScreenReaderText(e,t){const i=new be,s=Pe,r=s("div.hover-row.markdown-hover"),o=ke(r,s("div.hover-contents",{"aria-live":"assertive"})),a=i.add(new jg({editor:this._editor},this._languageService,this._openerService)),l=c=>{i.add(a.onDidRenderAsync(()=>{o.className="hover-contents code-hover-contents",e.onContentsChanged()}));const u=v("inlineSuggestionFollows","Suggestion:"),h=i.add(a.render(new to().appendText(u).appendCodeblock("text",c)));o.replaceChildren(h.element)};return i.add(Lt(c=>{var h;const u=(h=t.controller.model.read(c))==null?void 0:h.primaryGhostText.read(c);if(u){const d=this._editor.getModel().getLineContent(u.lineNumber);l(u.renderForScreenReader(d))}else Ir(o)})),e.fragment.appendChild(r),i}};OK=XNt([xE(1,Dn),xE(2,kl),xE(3,xl),xE(4,ct),xE(5,Ro)],OK);class ZNt{}const Z8=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{const t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1)}}}getImplementations(){return this._implementations}};_i(ru.ID,ru,3);Ie(jNt);Ie(AK);Ie(PK);Ie(qNt);Ie(KNt);Ie(GNt);Ie(RK);nn(MK);W0.register(OK);Z8.register(new ZNt);var QNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},cV=function(n,e){return function(t,i){e(t,i,n)}},ZE,$1;let kD=($1=class{constructor(e,t,i,s){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=s,this.toUnhook=new be,this.toUnhookForKeyboard=new be,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const r=new F8(e);this.toUnhook.add(r),this.toUnhook.add(r.onMouseMoveOrRelevantKeyDown(([o,a])=>{this.startFindDefinitionFromMouse(o,a??void 0)})),this.toUnhook.add(r.onExecute(o=>{this.isEnabled(o)&&this.gotoDefinition(o.target.position,o.hasSideBySideModifier).catch(a=>{Nt(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(r.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(ZE.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){var o;this.toUnhookForKeyboard.clear();const t=e?(o=this.editor.getModel())==null?void 0:o.getWordAtPosition(e):null;if(!t){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===t.startColumn&&this.currentWordAtPosition.endColumn===t.endColumn&&this.currentWordAtPosition.word===t.word)return;this.currentWordAtPosition=t;const i=new $Ie(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=tr(a=>this.findDefinition(e,a));let s;try{s=await this.previousPromise}catch(a){Nt(a);return}if(!s||!s.length||!i.validate(this.editor)){this.removeLinkDecorations();return}const r=s[0].originSelectionRange?O.lift(s[0].originSelectionRange):new O(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn);if(s.length>1){let a=r;for(const{originSelectionRange:l}of s)l&&(a=O.plusRange(a,l));this.addDecoration(a,new to().appendText(v("multipleResults","Click to show {0} definitions.",s.length)))}else{const a=s[0];if(!a.uri)return;this.textModelResolverService.createModelReference(a.uri).then(l=>{if(!l.object||!l.object.textEditorModel){l.dispose();return}const{object:{textEditorModel:c}}=l,{startLineNumber:u}=a.range;if(u<1||u>c.getLineCount()){l.dispose();return}const h=this.getPreviewValue(c,u,a),d=this.languageService.guessLanguageIdByFilepathOrFirstLine(c.uri);this.addDecoration(r,h?new to().appendCodeblock(d||"",h):void 0),l.dispose()})}}getPreviewValue(e,t,i){let s=i.range;return s.endLineNumber-s.startLineNumber>=ZE.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,s)}stripIndentationFromPreviewRange(e,t,i){let r=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a<i.endLineNumber;a++){const l=e.getLineFirstNonWhitespaceColumn(a);r=Math.min(r,l)}return e.getValueInRange(i).replace(new RegExp(`^\\s{${r-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),s=Math.min(e.getLineCount(),t+ZE.MAX_SOURCE_PREVIEW_LINES);let r=t+1;for(;r<s;r++){const o=e.getLineFirstNonWhitespaceColumn(r);if(i===o)break}return new O(t,1,r+1,1)}addDecoration(e,t){const i={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){var i;return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&e.target.type===6&&!(((i=e.target.detail.injectedText)==null?void 0:i.options)instanceof g_)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?sA(this.languageFeaturesService.definitionProvider,i,e,!1,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(i=>{const s=!t&&this.editor.getOption(89)&&!this.isInPeekEditor(i);return new oA({openToSide:t,openInPeek:s,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(bt);return Ma.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}},ZE=$1,$1.ID="editor.contrib.gotodefinitionatposition",$1.MAX_SOURCE_PREVIEW_LINES=8,$1);kD=ZE=QNt([cV(1,Wa),cV(2,Dn),cV(3,Je)],kD);_i(kD.ID,kD,2);var JDe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},m2=function(n,e){return function(t,i){e(t,i,n)}};class Upe{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let FK=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new oe,this.onDidChange=this._onDidChange.event,this._dispoables=new be,this._markers=[],this._nextIdx=-1,mt.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const s=this._configService.getValue("problems.sortOrder"),r=(a,l)=>{let c=mT(a.resource.toString(),l.resource.toString());return c===0&&(s==="position"?c=O.compareRangesUsingStarts(a,l)||Zn.compare(a.severity,l.severity):c=Zn.compare(a.severity,l.severity)||O.compareRangesUsingStarts(a,l)),c},o=()=>{this._markers=this._markerService.read({resource:mt.isUri(e)?e:void 0,severities:Zn.Error|Zn.Warning|Zn.Info}),typeof e=="function"&&(this._markers=this._markers.filter(a=>this._resourceFilter(a.resource))),this._markers.sort(r)};o(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&(o(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new Upe(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let s=!1,r=this._markers.findIndex(o=>o.resource.toString()===e.uri.toString());r<0&&(r=CT(this._markers,{resource:e.uri},(o,a)=>mT(o.resource.toString(),a.resource.toString())),r<0&&(r=~r));for(let o=r;o<this._markers.length;o++){let a=O.lift(this._markers[o]);if(a.isEmpty()){const l=e.getWordAtPosition(a.getStartPosition());l&&(a=new O(a.startLineNumber,l.startColumn,a.startLineNumber,l.endColumn))}if(t&&(a.containsPosition(t)||t.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=o,s=!0;break}if(this._markers[o].resource.toString()!==e.uri.toString())break}s||(this._nextIdx=i?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,i){if(this._markers.length===0)return!1;const s=this._nextIdx;return this._nextIdx===-1?this._initIdx(t,i,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),s!==this._nextIdx}find(e,t){let i=this._markers.findIndex(s=>s.resource.toString()===e.toString());if(!(i<0)){for(;i<this._markers.length;i++)if(O.containsPosition(this._markers[i],t))return new Upe(this._markers[i],i+1,this._markers.length)}}};FK=JDe([m2(1,op),m2(2,Xt)],FK);const eNe=ri("IMarkerNavigationService");let BK=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new Go}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new FK(e,this._markerService,this._configService)}};BK=JDe([m2(0,op),m2(1,Xt)],BK);fi(eNe,BK,1);var WK;(function(n){function e(t){switch(t){case fs.Ignore:return"severity-ignore "+ft.asClassName(Ne.info);case fs.Info:return ft.asClassName(Ne.info);case fs.Warning:return ft.asClassName(Ne.warning);case fs.Error:return ft.asClassName(Ne.error);default:return""}}n.className=e})(WK||(WK={}));var JNt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},vw=function(n,e){return function(t,i){e(t,i,n)}},VK;class eAt{constructor(e,t,i,s,r){this._openerService=s,this._labelService=r,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new be,this._editor=t;const o=document.createElement("div");o.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),o.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),o.appendChild(this._relatedBlock),this._disposables.add(os(this._relatedBlock,"click",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new NEe(o,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{o.style.left=`-${a.scrollLeft}px`,o.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){Yi(this._disposables)}update(e){const{source:t,message:i,relatedInformation:s,code:r}=e;let o=((t==null?void 0:t.length)||0)+2;r&&(typeof r=="string"?o+=r.length:o+=r.value.length);const a=ip(i);this._lines=a.length,this._longestLineLength=0;for(const d of a)this._longestLineLength=Math.max(d.length+o,this._longestLineLength);kr(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const d of a)l=document.createElement("div"),l.innerText=d,d===""&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||r){const d=document.createElement("span");if(d.classList.add("details"),l.appendChild(d),t){const f=document.createElement("span");f.innerText=t,f.classList.add("source"),d.appendChild(f)}if(r)if(typeof r=="string"){const f=document.createElement("span");f.innerText=`(${r})`,f.classList.add("code"),d.appendChild(f)}else{this._codeLink=Pe("a.code-link"),this._codeLink.setAttribute("href",`${r.target.toString()}`),this._codeLink.onclick=p=>{this._openerService.open(r.target,{allowCommands:!0}),p.preventDefault(),p.stopPropagation()};const f=ke(this._codeLink,Pe("span"));f.innerText=r.value,d.appendChild(this._codeLink)}}if(kr(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),so(s)){const d=this._relatedBlock.appendChild(document.createElement("div"));d.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const f of s){const p=document.createElement("div"),g=document.createElement("a");g.classList.add("filename"),g.innerText=`${this._labelService.getUriBasenameLabel(f.resource)}(${f.startLineNumber}, ${f.startColumn}): `,g.title=this._labelService.getUriLabel(f.resource),this._relatedDiagnostics.set(g,f);const m=document.createElement("span");m.innerText=f.message,p.appendChild(g),p.appendChild(m),this._lines+=1,d.appendChild(p)}}const c=this._editor.getOption(50),u=Math.ceil(c.typicalFullwidthCharacterWidth*this._longestLineLength*.75),h=c.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:u,scrollHeight:h})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case Zn.Error:t=v("Error","Error");break;case Zn.Warning:t=v("Warning","Warning");break;case Zn.Info:t=v("Info","Info");break;case Zn.Hint:t=v("Hint","Hint");break}let i=v("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const s=this._editor.getModel();return s&&e.startLineNumber<=s.getLineCount()&&e.startLineNumber>=1&&(i=`${s.getLineContent(e.startLineNumber)}, ${i}`),i}}var ly;let ID=(ly=class extends B4{constructor(e,t,i,s,r,o,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},r),this._themeService=t,this._openerService=i,this._menuService=s,this._contextKeyService=o,this._labelService=a,this._callOnDispose=new be,this._onDidSelectRelatedInformation=new oe,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Zn.Warning,this._backgroundColor=Ce.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(sAt);let t=HK,i=tAt;this._severity===Zn.Warning?(t=NM,i=iAt):this._severity===Zn.Info&&(t=$K,i=nAt);const s=e.getColor(t),r=e.getColor(i);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:r,primaryHeadingColor:e.getColor(UTe),secondaryHeadingColor:e.getColor(jTe)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(s=>this.editor.focus()));const t=[],i=this._menuService.getMenuActions(VK.TitleMenu,this._contextKeyService);T8(i,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0})}_fillTitleIcon(e){this._icon=ke(e,Pe(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new eAt(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const s=O.lift(e),r=this.editor.getPosition(),o=r&&s.containsPosition(r)?r:s.getStartPosition();super.show(o,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?v("problems","{0} of {1} problems",t,i):v("change","{0} of {1} problem",t,i);this.setTitle(su(a.uri),l)}this._icon.className=`codicon ${WK.className(Zn.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(o,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}},VK=ly,ly.TitleMenu=new et("gotoErrorTitleMenu"),ly);ID=VK=JNt([vw(1,Xs),vw(2,kl),vw(3,vc),vw(4,ct),vw(5,bt),vw(6,gx)],ID);const jpe=IT(s8,Zft),qpe=IT($g,TT),Kpe=IT(Kf,DT),HK=U("editorMarkerNavigationError.background",{dark:jpe,light:jpe,hcDark:mi,hcLight:mi},v("editorMarkerNavigationError","Editor marker navigation widget error color.")),tAt=U("editorMarkerNavigationError.headerBackground",{dark:jt(HK,.1),light:jt(HK,.1),hcDark:null,hcLight:null},v("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),NM=U("editorMarkerNavigationWarning.background",{dark:qpe,light:qpe,hcDark:mi,hcLight:mi},v("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),iAt=U("editorMarkerNavigationWarning.headerBackground",{dark:jt(NM,.1),light:jt(NM,.1),hcDark:"#0C141F",hcLight:jt(NM,.2)},v("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),$K=U("editorMarkerNavigationInfo.background",{dark:Kpe,light:Kpe,hcDark:mi,hcLight:mi},v("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),nAt=U("editorMarkerNavigationInfo.headerBackground",{dark:jt($K,.1),light:jt($K,.1),hcDark:null,hcLight:null},v("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),sAt=U("editorMarkerNavigation.background",Jh,v("editorMarkerNavigationBackground","Editor marker navigation widget background."));var rAt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},QP=function(n,e){return function(t,i){e(t,i,n)}},QE,cy;let d0=(cy=class{static get(e){return e.getContribution(QE.ID)}constructor(e,t,i,s,r){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=s,this._instantiationService=r,this._sessionDispoables=new be,this._editor=e,this._widgetVisible=tNe.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(ID,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(i=>{var s,r,o;(!((s=this._model)!=null&&s.selected)||!O.containsPosition((r=this._model)==null?void 0:r.selected.marker,i.position))&&((o=this._model)==null||o.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:O.lift(i).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new se(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}async nagivate(e,t){var i,s;if(this._editor.hasModel()){const r=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(r.move(e,this._editor.getModel(),this._editor.getPosition()),!r.selected)return;if(r.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const o=await this._editorService.openCodeEditor({resource:r.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:r.selected.marker}},this._editor);o&&((i=QE.get(o))==null||i.close(),(s=QE.get(o))==null||s.nagivate(e,t))}else this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total)}}},QE=cy,cy.ID="editor.contrib.markerController",cy);d0=QE=rAt([QP(1,eNe),QP(2,bt),QP(3,wi),QP(4,ct)],d0);class Q8 extends Xe{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){var i;t.hasModel()&&((i=d0.get(t))==null||i.nagivate(this._next,this._multiFile))}}const Kv=class Kv extends Q8{constructor(){super(!0,!1,{id:Kv.ID,label:Kv.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:578,weight:100},menuOpts:{menuId:ID.TitleMenu,title:Kv.LABEL,icon:_n("marker-navigation-next",Ne.arrowDown,v("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}};Kv.ID="editor.action.marker.next",Kv.LABEL=v("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");let _2=Kv;const Gv=class Gv extends Q8{constructor(){super(!1,!1,{id:Gv.ID,label:Gv.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:1602,weight:100},menuOpts:{menuId:ID.TitleMenu,title:Gv.LABEL,icon:_n("marker-navigation-previous",Ne.arrowUp,v("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}};Gv.ID="editor.action.marker.prev",Gv.LABEL=v("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");let zK=Gv;class oAt extends Q8{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:v("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:66,weight:100},menuOpts:{menuId:et.MenubarGoMenu,title:v({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}}class aAt extends Q8{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:v("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:1090,weight:100},menuOpts:{menuId:et.MenubarGoMenu,title:v({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}}_i(d0.ID,d0,4);Ie(_2);Ie(zK);Ie(oAt);Ie(aAt);const tNe=new $e("markersNavigationVisible",!1),lAt=Gs.bindToContribution(d0.get);Ve(new lAt({id:"closeMarkersNavigation",precondition:tNe,handler:n=>n.close(),kbOpts:{weight:150,kbExpr:H.focus,primary:9,secondary:[1033]}}));var uh;(function(n){n.NoAutoFocus="noAutoFocus",n.FocusIfVisible="focusIfVisible",n.AutoFocusImmediately="autoFocusImmediately"})(uh||(uh={}));class cAt extends Xe{constructor(){super({id:kTe,label:v({key:"showOrFocusHover",comment:["Label for action that will trigger the showing/focusing of a hover in the editor.","If the hover is not visible, it will show the hover.","This allows for users to show the hover without using the mouse."]},"Show or Focus Hover"),metadata:{description:Ct("showOrFocusHoverDescription","Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[uh.NoAutoFocus,uh.FocusIfVisible,uh.AutoFocusImmediately],enumDescriptions:[v("showOrFocusHover.focus.noAutoFocus","The hover will not automatically take focus."),v("showOrFocusHover.focus.focusIfVisible","The hover will take focus only if it is already visible."),v("showOrFocusHover.focus.autoFocusImmediately","The hover will automatically take focus when it appears.")],default:uh.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const s=Ao.get(t);if(!s)return;const r=i==null?void 0:i.focus;let o=uh.FocusIfVisible;Object.values(uh).includes(r)?o=r:typeof r=="boolean"&&r&&(o=uh.AutoFocusImmediately);const a=c=>{const u=t.getPosition(),h=new O(u.lineNumber,u.column,u.lineNumber,u.column);s.showContentHover(h,1,1,c)},l=t.getOption(2)===2;s.isHoverVisible?o!==uh.NoAutoFocus?s.focus():a(l):a(l||o===uh.AutoFocusImmediately)}}class uAt extends Xe{constructor(){super({id:cEt,label:v({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0,metadata:{description:Ct("showDefinitionPreviewHoverDescription","Show the definition preview hover in the editor.")}})}run(e,t){const i=Ao.get(t);if(!i)return;const s=t.getPosition();if(!s)return;const r=new O(s.lineNumber,s.column,s.lineNumber,s.column),o=kD.get(t);if(!o)return;o.startFindDefinitionFromCursor(s).then(()=>{i.showContentHover(r,1,1,!0)})}}class hAt extends Xe{constructor(){super({id:uEt,label:v({key:"scrollUpHover",comment:["Action that allows to scroll up in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:16,weight:100},metadata:{description:Ct("scrollUpHoverDescription","Scroll up the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.scrollUp()}}class dAt extends Xe{constructor(){super({id:hEt,label:v({key:"scrollDownHover",comment:["Action that allows to scroll down in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:18,weight:100},metadata:{description:Ct("scrollDownHoverDescription","Scroll down the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.scrollDown()}}class fAt extends Xe{constructor(){super({id:dEt,label:v({key:"scrollLeftHover",comment:["Action that allows to scroll left in the hover widget with the left arrow when the hover widget is focused."]},"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:15,weight:100},metadata:{description:Ct("scrollLeftHoverDescription","Scroll left the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.scrollLeft()}}class pAt extends Xe{constructor(){super({id:fEt,label:v({key:"scrollRightHover",comment:["Action that allows to scroll right in the hover widget with the right arrow when the hover widget is focused."]},"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:17,weight:100},metadata:{description:Ct("scrollRightHoverDescription","Scroll right the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.scrollRight()}}class gAt extends Xe{constructor(){super({id:pEt,label:v({key:"pageUpHover",comment:["Action that allows to page up in the hover widget with the page up command when the hover widget is focused."]},"Page Up Hover"),alias:"Page Up Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:Ct("pageUpHoverDescription","Page up the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.pageUp()}}class mAt extends Xe{constructor(){super({id:gEt,label:v({key:"pageDownHover",comment:["Action that allows to page down in the hover widget with the page down command when the hover widget is focused."]},"Page Down Hover"),alias:"Page Down Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:Ct("pageDownHoverDescription","Page down the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.pageDown()}}class _At extends Xe{constructor(){super({id:mEt,label:v({key:"goToTopHover",comment:["Action that allows to go to the top of the hover widget with the home command when the hover widget is focused."]},"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:Ct("goToTopHoverDescription","Go to the top of the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.goToTop()}}class vAt extends Xe{constructor(){super({id:_Et,label:v({key:"goToBottomHover",comment:["Action that allows to go to the bottom in the hover widget with the end command when the hover widget is focused."]},"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:H.hoverFocused,kbOpts:{kbExpr:H.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:Ct("goToBottomHoverDescription","Go to the bottom of the editor hover.")}})}run(e,t){const i=Ao.get(t);i&&i.goToBottom()}}class bAt extends Xe{constructor(){super({id:R8,label:vEt,alias:"Increase Hover Verbosity Level",precondition:H.hoverVisible})}run(e,t,i){const s=Ao.get(t);if(!s)return;const r=(i==null?void 0:i.index)!==void 0?i.index:s.focusedHoverPartIndex();s.updateHoverVerbosityLevel(il.Increase,r,i==null?void 0:i.focus)}}class yAt extends Xe{constructor(){super({id:M8,label:bEt,alias:"Decrease Hover Verbosity Level",precondition:H.hoverVisible})}run(e,t,i){var o;const s=Ao.get(t);if(!s)return;const r=(i==null?void 0:i.index)!==void 0?i.index:s.focusedHoverPartIndex();(o=Ao.get(t))==null||o.updateHoverVerbosityLevel(il.Decrease,r,i==null?void 0:i.focus)}}var wAt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},uV=function(n,e){return function(t,i){e(t,i,n)}};const fu=Pe;class CAt{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const Gpe={type:1,filter:{include:yn.QuickFix},triggerAction:wl.QuickFixHover};let UK=class{constructor(e,t,i,s){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,r=i.getLineMaxColumn(s),o=[];for(const a of t){const l=a.range.startLineNumber===s?a.range.startColumn:1,c=a.range.endLineNumber===s?a.range.endColumn:r,u=this._markerDecorationsService.getMarker(i.uri,a);if(!u)continue;const h=new O(e.range.startLineNumber,l,e.range.startLineNumber,c);o.push(new CAt(this,h,u))}return o}renderHoverParts(e,t){if(!t.length)return new a0([]);const i=new be,s=[];t.forEach(o=>{const a=this._renderMarkerHover(o);e.fragment.appendChild(a.hoverElement),s.push(a)});const r=t.length===1?t[0]:t.sort((o,a)=>Zn.compare(o.marker.severity,a.marker.severity))[0];return this.renderMarkerStatusbar(e,r,i),new a0(s)}_renderMarkerHover(e){const t=new be,i=fu("div.hover-row"),s=ke(i,fu("div.marker.hover-contents")),{source:r,message:o,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(s);const c=ke(s,fu("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=o,r||a)if(a&&typeof a!="string"){const h=fu("span");if(r){const g=ke(h,fu("span"));g.innerText=r}const d=ke(h,fu("a.code-link"));d.setAttribute("href",a.target.toString()),t.add(ge(d,"click",g=>{this._openerService.open(a.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()}));const f=ke(d,fu("span"));f.innerText=a.value;const p=ke(s,h);p.style.opacity="0.6",p.style.paddingLeft="6px"}else{const h=ke(s,fu("span"));h.style.opacity="0.6",h.style.paddingLeft="6px",h.innerText=r&&a?`${r}(${a})`:r||`(${a})`}if(so(l))for(const{message:h,resource:d,startLineNumber:f,startColumn:p}of l){const g=ke(s,fu("div"));g.style.marginTop="8px";const m=ke(g,fu("a"));m.innerText=`${su(d)}(${f}, ${p}): `,m.style.cursor="pointer",t.add(ge(m,"click",b=>{b.stopPropagation(),b.preventDefault(),this._openerService&&this._openerService.open(d,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:f,startColumn:p}}}).catch(Nt)}));const _=ke(g,fu("span"));_.innerText=h,this._editor.applyFontInfo(_)}return{hoverPart:e,hoverElement:i,dispose:()=>t.dispose()}}renderMarkerStatusbar(e,t,i){if(t.marker.severity===Zn.Error||t.marker.severity===Zn.Warning||t.marker.severity===Zn.Info){const s=d0.get(this._editor);s&&e.statusBar.addAction({label:v("view problem","View Problem"),commandId:_2.ID,run:()=>{e.hide(),s.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(92)){const s=e.statusBar.append(fu("div"));this.recentMarkerCodeActionsInfo&&(I4.makeKey(this.recentMarkerCodeActionsInfo.marker)===I4.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=v("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const r=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?ue.None:n_(()=>s.textContent=v("checkingForQuickFixes","Checking for quick fixes..."),200,i);s.textContent||(s.textContent=" ");const o=this.getCodeActions(t.marker);i.add(lt(()=>o.cancel())),o.then(a=>{if(r.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:a.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){a.dispose(),s.textContent=v("noQuickFixes","No quick fixes available");return}s.style.display="none";let l=!1;i.add(lt(()=>{l||a.dispose()})),e.statusBar.addAction({label:v("quick fixes","Quick Fix..."),commandId:kie,run:c=>{l=!0;const u=hx.get(this._editor),h=ps(c);e.hide(),u==null||u.showCodeActions(Gpe,a,{x:h.left,y:h.top,width:h.width,height:h.height})}})},Nt)}}getCodeActions(e){return tr(t=>Xk(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new O(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),Gpe,Rf.None,t))}};UK=wAt([uV(1,Zee),uV(2,kl),uV(3,Je)],UK);class SAt{}class xAt{}class LAt{}_i(Ao.ID,Ao,2);Ie(cAt);Ie(uAt);Ie(hAt);Ie(dAt);Ie(fAt);Ie(pAt);Ie(gAt);Ie(mAt);Ie(_At);Ie(vAt);Ie(bAt);Ie(yAt);W0.register(vD);W0.register(UK);au((n,e)=>{const t=n.getColor(hEe);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});Z8.register(new SAt);Z8.register(new xAt);Z8.register(new LAt);function Za(n,e){let t=0;for(let i=0;i<n.length;i++)n.charAt(i)===" "?t+=e:t++;return t}function eI(n,e,t){n=n<0?0:n;let i="";if(!t){const s=Math.floor(n/e);n=n%e;for(let r=0;r<s;r++)i+=" "}for(let s=0;s<n;s++)i+=" ";return i}function iNe(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return[];const s=e.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;if(!s)return[];const r=new jee(n,s,e);for(i=Math.min(i,n.getLineCount());t<=i&&r.shouldIgnore(t);)t++;if(t>i-1)return[];const{tabSize:o,indentSize:a,insertSpaces:l}=n.getOptions(),c=(g,m)=>(m=m||1,nu.shiftIndent(g,g.length+m,o,a,l)),u=(g,m)=>(m=m||1,nu.unshiftIndent(g,g.length+m,o,a,l)),h=[],d=n.getLineContent(t);let f=Xi(d),p=f;r.shouldIncrease(t)?(p=c(p),f=c(f)):r.shouldIndentNextLine(t)&&(p=c(p)),t++;for(let g=t;g<=i;g++){if(EAt(n,g))continue;const m=n.getLineContent(g),_=Xi(m),b=p;r.shouldDecrease(g,b)&&(p=u(p),f=u(f)),_!==p&&h.push(Fn.replaceMove(new nt(g,1,g,_.length+1),Mee(p,a,l))),!r.shouldIgnore(g)&&(r.shouldIncrease(g,b)?(f=c(f),p=f):r.shouldIndentNextLine(g,b)?p=c(p):p=f)}return h}function EAt(n,e){return n.tokenization.isCheapToTokenize(e)?n.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var kAt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},IAt=function(n,e){return function(t,i){e(t,i,n)}};const t5=class t5 extends Xe{constructor(){super({id:t5.ID,label:v("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:H.writable,metadata:{description:Ct("indentationToSpacesDescription","Convert the tab indentation to spaces.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),r=t.getSelection();if(!r)return;const o=new PAt(r,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}};t5.ID="editor.action.indentationToSpaces";let jK=t5;const i5=class i5 extends Xe{constructor(){super({id:i5.ID,label:v("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:H.writable,metadata:{description:Ct("indentationToTabsDescription","Convert the spaces indentation to tabs.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),r=t.getSelection();if(!r)return;const o=new RAt(r,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}};i5.ID="editor.action.indentationToTabs";let qK=i5;class xne extends Xe{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(cu),s=e.get(mn),r=t.getModel();if(!r)return;const o=s.getCreationOptions(r.getLanguageId(),r.uri,r.isForSimpleWidget),a=r.getOptions(),l=[1,2,3,4,5,6,7,8].map(u=>({id:u.toString(),label:u.toString(),description:u===o.tabSize&&u===a.tabSize?v("configuredTabSize","Configured Tab Size"):u===o.tabSize?v("defaultTabSize","Default Tab Size"):u===a.tabSize?v("currentTabSize","Current Tab Size"):void 0})),c=Math.min(r.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:v({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:l[c]}).then(u=>{if(u&&r&&!r.isDisposed()){const h=parseInt(u.label,10);this.displaySizeOnly?r.updateOptions({tabSize:h}):r.updateOptions({tabSize:h,indentSize:h,insertSpaces:this.insertSpaces})}})},50)}}const n5=class n5 extends xne{constructor(){super(!1,!1,{id:n5.ID,label:v("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0,metadata:{description:Ct("indentUsingTabsDescription","Use indentation with tabs.")}})}};n5.ID="editor.action.indentUsingTabs";let KK=n5;const s5=class s5 extends xne{constructor(){super(!0,!1,{id:s5.ID,label:v("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0,metadata:{description:Ct("indentUsingSpacesDescription","Use indentation with spaces.")}})}};s5.ID="editor.action.indentUsingSpaces";let GK=s5;const r5=class r5 extends xne{constructor(){super(!0,!0,{id:r5.ID,label:v("changeTabDisplaySize","Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0,metadata:{description:Ct("changeTabDisplaySizeDescription","Change the space size equivalent of the tab.")}})}};r5.ID="editor.action.changeTabDisplaySize";let XK=r5;const o5=class o5 extends Xe{constructor(){super({id:o5.ID,label:v("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0,metadata:{description:Ct("detectIndentationDescription","Detect the indentation from content.")}})}run(e,t){const i=e.get(mn),s=t.getModel();if(!s)return;const r=i.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(r.insertSpaces,r.tabSize)}};o5.ID="editor.action.detectIndentation";let YK=o5;class TAt extends Xe{constructor(){super({id:"editor.action.reindentlines",label:v("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:H.writable,metadata:{description:Ct("editor.reindentlinesDescription","Reindent the lines of the editor.")}})}run(e,t){const i=e.get(ln),s=t.getModel();if(!s)return;const r=iNe(s,i,1,s.getLineCount());r.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop())}}class DAt extends Xe{constructor(){super({id:"editor.action.reindentselectedlines",label:v("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:H.writable,metadata:{description:Ct("editor.reindentselectedlinesDescription","Reindent the selected lines of the editor.")}})}run(e,t){const i=e.get(ln),s=t.getModel();if(!s)return;const r=t.getSelections();if(r===null)return;const o=[];for(const a of r){let l=a.startLineNumber,c=a.endLineNumber;if(l!==c&&a.endColumn===1&&c--,l===1){if(l===c)continue}else l--;const u=iNe(s,i,l,c);o.push(...u)}o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class NAt{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text=="string"&&this._edits.push(i)}getEditOperations(e,t){for(const s of this._edits)t.addEditOperation(O.lift(s.range),s.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}var pS;let v2=(pS=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new be,this.callOnModel=new be,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||this.rangeContainsOnlyWhitespaceCharacters(i,e)||AAt(i,e)||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const r=this.editor.getOption(12),{tabSize:o,indentSize:a,insertSpaces:l}=i.getOptions(),c=[],u={shiftIndent:p=>nu.shiftIndent(p,p.length+1,o,a,l),unshiftIndent:p=>nu.unshiftIndent(p,p.length+1,o,a,l)};let h=e.startLineNumber;for(;h<=e.endLineNumber;){if(this.shouldIgnoreLine(i,h)){h++;continue}break}if(h>e.endLineNumber)return;let d=i.getLineContent(h);if(!/\S/.test(d.substring(0,e.startColumn-1))){const p=Dk(r,i,i.getLanguageId(),h,u,this._languageConfigurationService);if(p!==null){const g=Xi(d),m=Za(p,o),_=Za(g,o);if(m!==_){const b=eI(m,o,l);c.push({range:new O(h,1,h,g.length+1),text:b}),d=b+d.substring(g.length)}else{const b=XLe(i,h,this._languageConfigurationService);if(b===0||b===8)return}}}const f=h;for(;h<e.endLineNumber;){if(!/\S/.test(i.getLineContent(h+1))){h++;continue}break}if(h!==e.endLineNumber){const g=Dk(r,{tokenization:{getLineTokens:m=>i.tokenization.getLineTokens(m),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(m,_)=>i.getLanguageIdAtPosition(m,_)},getLineContent:m=>m===f?d:i.getLineContent(m)},i.getLanguageId(),h+1,u,this._languageConfigurationService);if(g!==null){const m=Za(g,o),_=Za(Xi(i.getLineContent(h+1)),o);if(m!==_){const b=m-_;for(let w=h+1;w<=e.endLineNumber;w++){const C=i.getLineContent(w),S=Xi(C),k=Za(S,o)+b,L=eI(k,o,l);L!==S&&c.push({range:new O(w,1,w,S.length+1),text:L})}}}}if(c.length>0){this.editor.pushUndoStop();const p=new NAt(c,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",p),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){const i=r=>r.trim().length===0;let s=!0;if(t.startLineNumber===t.endLineNumber){const o=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);s=i(o)}else for(let r=t.startLineNumber;r<=t.endLineNumber;r++){const o=e.getLineContent(r);if(r===t.startLineNumber){const a=o.substring(t.startColumn-1);s=i(a)}else if(r===t.endLineNumber){const a=o.substring(0,t.endColumn-1);s=i(a)}else s=e.getLineFirstNonWhitespaceColumn(r)===0;if(!s)break}return s}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(i===0)return!0;const s=e.tokenization.getLineTokens(t);if(s.getCount()>0){const r=s.findTokenIndexAtOffset(i);if(r>=0&&s.getStandardTokenType(r)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}},pS.ID="editor.contrib.autoIndentOnPaste",pS);v2=kAt([IAt(1,ln)],v2);function AAt(n,e){const t=i=>rdt(n,i)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function nNe(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let s="";for(let o=0;o<t;o++)s+=" ";const r=new RegExp(s,"gi");for(let o=1,a=n.getLineCount();o<=a;o++){let l=n.getLineFirstNonWhitespaceColumn(o);if(l===0&&(l=n.getLineMaxColumn(o)),l===1)continue;const c=new O(o,1,o,l),u=n.getValueInRange(c),h=i?u.replace(/\t/ig,s):u.replace(r," ");e.addEditOperation(c,h)}}class PAt{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),nNe(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class RAt{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),nNe(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}_i(v2.ID,v2,2);Ie(jK);Ie(qK);Ie(KK);Ie(GK);Ie(XK);Ie(YK);Ie(TAt);Ie(DAt);_i(SD.ID,SD,1);W0.register(Y4);class MAt{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new nt(s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn),s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn)):new nt(s.endLineNumber,s.endColumn-this._text.length,s.endLineNumber,s.endColumn)}}var OAt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},FAt=function(n,e){return function(t,i){e(t,i,n)}},AM,z1;let Sx=(z1=class{static get(e){return e.getContribution(AM.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var l;(l=this.currentRequest)==null||l.cancel();const i=this.editor.getSelection(),s=this.editor.getModel();if(!s||!i)return;let r=i;if(r.startLineNumber!==r.endLineNumber)return;const o=new $Ie(this.editor,5),a=s.uri;return this.editorWorkerService.canNavigateValueSet(a)?(this.currentRequest=tr(c=>this.editorWorkerService.navigateValueSet(a,r,t)),this.currentRequest.then(c=>{var p;if(!c||!c.range||!c.value||!o.validate(this.editor))return;const u=O.lift(c.range);let h=c.range;const d=c.value.length-(r.endColumn-r.startColumn);h={startLineNumber:h.startLineNumber,startColumn:h.startColumn,endLineNumber:h.endLineNumber,endColumn:h.startColumn+c.value.length},d>1&&(r=new nt(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn+d-1));const f=new MAt(u,r,c.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,f),this.editor.pushUndoStop(),this.decorations.set([{range:h,options:AM.DECORATION}]),(p=this.decorationRemover)==null||p.cancel(),this.decorationRemover=Uf(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(Nt)}).catch(Nt)):Promise.resolve(void 0)}},AM=z1,z1.ID="editor.contrib.inPlaceReplaceController",z1.DECORATION=At.register({description:"in-place-replace",className:"valueSetReplacement"}),z1);Sx=AM=OAt([FAt(1,lu)],Sx);class BAt extends Xe{constructor(){super({id:"editor.action.inPlaceReplace.up",label:v("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=Sx.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class WAt extends Xe{constructor(){super({id:"editor.action.inPlaceReplace.down",label:v("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=Sx.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}_i(Sx.ID,Sx,4);Ie(BAt);Ie(WAt);class VAt extends Xe{constructor(){super({id:"expandLineSelection",label:v("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:H.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const s=t._getViewModel();s.model.pushStackElement(),s.setCursorStates(i.source,3,br.expandLineSelection(s,s.getCursorStates())),s.revealAllCursors(i.source,!0)}}Ie(VAt);class HAt{constructor(e,t,i){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=i}getEditOperations(e,t){const i=$At(e,this._cursors,this._trimInRegexesAndStrings);for(let s=0,r=i.length;s<r;s++){const o=i[s];t.addEditOperation(o.range,o.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function $At(n,e,t){e.sort((a,l)=>a.lineNumber===l.lineNumber?a.column-l.column:a.lineNumber-l.lineNumber);for(let a=e.length-2;a>=0;a--)e[a].lineNumber===e[a+1].lineNumber&&e.splice(a,1);const i=[];let s=0,r=0;const o=e.length;for(let a=1,l=n.getLineCount();a<=l;a++){const c=n.getLineContent(a),u=c.length+1;let h=0;if(r<o&&e[r].lineNumber===a&&(h=e[r].column,r++,h===u)||c.length===0)continue;const d=Fh(c);let f=0;if(d===-1)f=1;else if(d!==c.length-1)f=d+2;else continue;if(!t){if(!n.tokenization.hasAccurateTokensForLine(a))continue;const p=n.tokenization.getLineTokens(a),g=p.getStandardTokenType(p.findTokenIndexAtOffset(f));if(g===2||g===3)continue}f=Math.max(h,f),i[s++]=Fn.delete(new O(a,f,a,u))}return i}class sNe{constructor(e,t,i){this._selection=e,this._isCopyingDown=t,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const s=[];for(let o=i.startLineNumber;o<=i.endLineNumber;o++)s.push(e.getLineContent(o));const r=s.join(` +`);r===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new O(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?"":` +`):this._isCopyingDown?t.addEditOperation(new O(i.startLineNumber,1,i.startLineNumber,1),r+` +`):t.addEditOperation(new O(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),` +`+r),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let s=i.startLineNumber,r=i.startColumn,o=i.endLineNumber,a=i.endColumn;this._startLineNumberDelta!==0&&(s=s+this._startLineNumberDelta,r=1),this._endLineNumberDelta!==0&&(o=o+this._endLineNumberDelta,a=1),i=nt.createWithDirection(s,r,o,a,this._selectionDirection)}return i}}var zAt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},UAt=function(n,e){return function(t,i){e(t,i,n)}};let ZK=class{constructor(e,t,i,s){this._languageConfigurationService=s,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=()=>e.getLanguageId(),s=(h,d)=>e.getLanguageIdAtPosition(h,d),r=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===r){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let o=this._selection;o.startLineNumber<o.endLineNumber&&o.endColumn===1&&(this._moveEndPositionDown=!0,o=o.setEndPosition(o.endLineNumber-1,e.getLineMaxColumn(o.endLineNumber-1)));const{tabSize:a,indentSize:l,insertSpaces:c}=e.getOptions(),u=this.buildIndentConverter(a,l,c);if(o.startLineNumber===o.endLineNumber&&e.getLineMaxColumn(o.startLineNumber)===1){const h=o.startLineNumber,d=this._isMovingDown?h+1:h-1;e.getLineMaxColumn(d)===1?t.addEditOperation(new O(1,1,1,1),null):(t.addEditOperation(new O(h,1,h,1),e.getLineContent(d)),t.addEditOperation(new O(d,1,d,e.getLineMaxColumn(d)),null)),o=new nt(d,1,d,1)}else{let h,d;if(this._isMovingDown){h=o.endLineNumber+1,d=e.getLineContent(h),t.addEditOperation(new O(h-1,e.getLineMaxColumn(h-1),h,e.getLineMaxColumn(h)),null);let f=d;if(this.shouldAutoIndent(e,o)){const p=this.matchEnterRule(e,u,a,h,o.startLineNumber-1);if(p!==null){const m=Xi(e.getLineContent(h)),_=p+Za(m,a);f=eI(_,a,c)+this.trimStart(d)}else{const m={tokenization:{getLineTokens:b=>b===o.startLineNumber?e.tokenization.getLineTokens(h):e.tokenization.getLineTokens(b),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:b=>b===o.startLineNumber?e.getLineContent(h):e.getLineContent(b)},_=Dk(this._autoIndent,m,e.getLanguageIdAtPosition(h,1),o.startLineNumber,u,this._languageConfigurationService);if(_!==null){const b=Xi(e.getLineContent(h)),w=Za(_,a),C=Za(b,a);w!==C&&(f=eI(w,a,c)+this.trimStart(d))}}t.addEditOperation(new O(o.startLineNumber,1,o.startLineNumber,1),f+` +`);const g=this.matchEnterRuleMovingDown(e,u,a,o.startLineNumber,h,f);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,o,a,c,g);else{const m={tokenization:{getLineTokens:b=>b===o.startLineNumber?e.tokenization.getLineTokens(h):b>=o.startLineNumber+1&&b<=o.endLineNumber+1?e.tokenization.getLineTokens(b-1):e.tokenization.getLineTokens(b),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:b=>b===o.startLineNumber?f:b>=o.startLineNumber+1&&b<=o.endLineNumber+1?e.getLineContent(b-1):e.getLineContent(b)},_=Dk(this._autoIndent,m,e.getLanguageIdAtPosition(h,1),o.startLineNumber+1,u,this._languageConfigurationService);if(_!==null){const b=Xi(e.getLineContent(o.startLineNumber)),w=Za(_,a),C=Za(b,a);if(w!==C){const S=w-C;this.getIndentEditsOfMovingBlock(e,t,o,a,c,S)}}}}else t.addEditOperation(new O(o.startLineNumber,1,o.startLineNumber,1),f+` +`)}else if(h=o.startLineNumber-1,d=e.getLineContent(h),t.addEditOperation(new O(h,1,h+1,1),null),t.addEditOperation(new O(o.endLineNumber,e.getLineMaxColumn(o.endLineNumber),o.endLineNumber,e.getLineMaxColumn(o.endLineNumber)),` +`+d),this.shouldAutoIndent(e,o)){const f={tokenization:{getLineTokens:g=>g===h?e.tokenization.getLineTokens(o.startLineNumber):e.tokenization.getLineTokens(g),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:g=>g===h?e.getLineContent(o.startLineNumber):e.getLineContent(g)},p=this.matchEnterRule(e,u,a,o.startLineNumber,o.startLineNumber-2);if(p!==null)p!==0&&this.getIndentEditsOfMovingBlock(e,t,o,a,c,p);else{const g=Dk(this._autoIndent,f,e.getLanguageIdAtPosition(o.startLineNumber,1),h,u,this._languageConfigurationService);if(g!==null){const m=Xi(e.getLineContent(o.startLineNumber)),_=Za(g,a),b=Za(m,a);if(_!==b){const w=_-b;this.getIndentEditsOfMovingBlock(e,t,o,a,c,w)}}}}}this._selectionId=t.trackSelection(o)}buildIndentConverter(e,t,i){return{shiftIndent:s=>nu.shiftIndent(s,s.length+1,e,t,i),unshiftIndent:s=>nu.unshiftIndent(s,s.length+1,e,t,i)}}parseEnterResult(e,t,i,s,r){if(r){let o=r.indentation;r.indentAction===ks.None||r.indentAction===ks.Indent?o=r.indentation+r.appendText:r.indentAction===ks.IndentOutdent?o=r.indentation:r.indentAction===ks.Outdent&&(o=t.unshiftIndent(r.indentation)+r.appendText);const a=e.getLineContent(s);if(this.trimStart(a).indexOf(this.trimStart(o))>=0){const l=Xi(e.getLineContent(s));let c=Xi(o);const u=XLe(e,s,this._languageConfigurationService);u!==null&&u&2&&(c=t.unshiftIndent(c));const h=Za(c,i),d=Za(l,i);return h-d}}return null}matchEnterRuleMovingDown(e,t,i,s,r,o){if(Fh(o)>=0){const a=e.getLineMaxColumn(r),l=VC(this._autoIndent,e,new O(r,a,r,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,l)}else{let a=s-1;for(;a>=1;){const u=e.getLineContent(a);if(Fh(u)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=VC(this._autoIndent,e,new O(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}}matchEnterRule(e,t,i,s,r,o){let a=r;for(;a>=1;){let u;if(a===r&&o!==void 0?u=o:u=e.getLineContent(a),Fh(u)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=VC(this._autoIndent,e,new O(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),s=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==s||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,s,r,o){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),c=Xi(l),h=Za(c,s)+o,d=eI(h,s,r);d!==c&&(t.addEditOperation(new O(a,1,a,c.length+1),d),a===i.endLineNumber&&i.endColumn<=c.length+1&&d===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber<i.endLineNumber&&(i=i.setEndPosition(i.endLineNumber,2)),i}};ZK=zAt([UAt(3,ln)],ZK);const bC=class bC{static getCollator(){return bC._COLLATOR||(bC._COLLATOR=new Intl.Collator),bC._COLLATOR}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const i=jAt(e,this.selection,this.descending);i&&t.addEditOperation(i.range,i.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,i){if(e===null)return!1;const s=rNe(e,t,i);if(!s)return!1;for(let r=0,o=s.before.length;r<o;r++)if(s.before[r]!==s.after[r])return!0;return!1}};bC._COLLATOR=null;let TD=bC;function rNe(n,e,t){const i=e.startLineNumber;let s=e.endLineNumber;if(e.endColumn===1&&s--,i>=s)return null;const r=[];for(let a=i;a<=s;a++)r.push(n.getLineContent(a));let o=r.slice(0);return o.sort(TD.getCollator().compare),t===!0&&(o=o.reverse()),{startLineNumber:i,endLineNumber:s,before:r,after:o}}function jAt(n,e,t){const i=rNe(n,e,t);return i?Fn.replace(new O(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber)),i.after.join(` +`)):null}class oNe extends Xe{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((o,a)=>({selection:o,index:a,ignore:!1}));i.sort((o,a)=>O.compareRangesUsingStarts(o.selection,a.selection));let s=i[0];for(let o=1;o<i.length;o++){const a=i[o];s.selection.endLineNumber===a.selection.startLineNumber&&(s.index<a.index?a.ignore=!0:(s.ignore=!0,s=a))}const r=[];for(const o of i)r.push(new sNe(o.selection,this.down,o.ignore));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class qAt extends oNe{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:v("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"2_line",title:v({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}}class KAt extends oNe{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:v("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"2_line",title:v({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}}class GAt extends Xe{constructor(){super({id:"editor.action.duplicateSelection",label:v("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:H.writable,menuOpts:{menuId:et.MenubarSelectionMenu,group:"2_line",title:v({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}run(e,t,i){if(!t.hasModel())return;const s=[],r=t.getSelections(),o=t.getModel();for(const a of r)if(a.isEmpty())s.push(new sNe(a,!0));else{const l=new nt(a.endLineNumber,a.endColumn,a.endLineNumber,a.endColumn);s.push(new lht(l,o.getValueInRange(a)))}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class aNe extends Xe{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(ln),s=[],r=t.getSelections()||[],o=t.getOption(12);for(const a of r)s.push(new ZK(a,this.down,o,i));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class XAt extends aNe{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:v("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"2_line",title:v({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}}class YAt extends aNe{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:v("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"2_line",title:v({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}}class lNe extends Xe{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;const i=t.getModel();let s=t.getSelections();s.length===1&&s[0].isEmpty()&&(s=[new nt(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))]);for(const o of s)if(!TD.canRun(t.getModel(),o,this.descending))return;const r=[];for(let o=0,a=s.length;o<a;o++)r[o]=new TD(s[o],this.descending);t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class ZAt extends lNe{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:v("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:H.writable})}}class QAt extends lNe{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:v("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:H.writable})}}class JAt extends Xe{constructor(){super({id:"editor.action.removeDuplicateLines",label:v("lines.deleteDuplicates","Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:H.writable})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;const s=[],r=[];let o=0,a=!0,l=t.getSelections();l.length===1&&l[0].isEmpty()&&(l=[new nt(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))],a=!1);for(const c of l){const u=new Set,h=[];for(let g=c.startLineNumber;g<=c.endLineNumber;g++){const m=i.getLineContent(g);u.has(m)||(h.push(m),u.add(m))}const d=new nt(c.startLineNumber,1,c.endLineNumber,i.getLineMaxColumn(c.endLineNumber)),f=c.startLineNumber-o,p=new nt(f,1,f+h.length-1,h[h.length-1].length);s.push(Fn.replace(d,h.join(` +`))),r.push(p),o+=c.endLineNumber-c.startLineNumber+1-h.length}t.pushUndoStop(),t.executeEdits(this.id,s,a?r:void 0),t.pushUndoStop()}}const a5=class a5 extends Xe{constructor(){super({id:a5.ID,label:v("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:Ts(2089,2102),weight:100}})}run(e,t,i){let s=[];i.reason==="auto-save"&&(s=(t.getSelections()||[]).map(u=>new se(u.positionLineNumber,u.positionColumn)));const r=t.getSelection();if(r===null)return;const o=e.get(Xt),a=t.getModel(),l=o.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:a==null?void 0:a.getLanguageId(),resource:a==null?void 0:a.uri}),c=new HAt(r,s,l);t.pushUndoStop(),t.executeCommands(this.id,[c]),t.pushUndoStop()}};a5.ID="editor.action.trimTrailingWhitespace";let QK=a5;class ePt extends Xe{constructor(){super({id:"editor.action.deleteLines",label:v("lines.delete","Delete Line"),alias:"Delete Line",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),s=t.getModel();if(s.getLineCount()===1&&s.getLineMaxColumn(1)===1)return;let r=0;const o=[],a=[];for(let l=0,c=i.length;l<c;l++){const u=i[l];let h=u.startLineNumber,d=u.endLineNumber,f=1,p=s.getLineMaxColumn(d);d<s.getLineCount()?(d+=1,p=1):h>1&&(h-=1,f=s.getLineMaxColumn(h)),o.push(Fn.replace(new nt(h,f,d,p),"")),a.push(new nt(h-r,u.positionColumn,h-r,u.positionColumn)),r+=u.endLineNumber-u.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,o,a),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(r=>{let o=r.endLineNumber;return r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(o-=1),{startLineNumber:r.startLineNumber,selectionStartColumn:r.selectionStartColumn,endLineNumber:o,positionColumn:r.positionColumn}});t.sort((r,o)=>r.startLineNumber===o.startLineNumber?r.endLineNumber-o.endLineNumber:r.startLineNumber-o.startLineNumber);const i=[];let s=t[0];for(let r=1;r<t.length;r++)s.endLineNumber+1>=t[r].startLineNumber?s.endLineNumber=t[r].endLineNumber:(i.push(s),s=t[r]);return i.push(s),i}}class tPt extends Xe{constructor(){super({id:"editor.action.indentLines",label:v("lines.indent","Indent Line"),alias:"Indent Line",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,zm.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class iPt extends Xe{constructor(){super({id:"editor.action.outdentLines",label:v("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:2140,weight:100}})}run(e,t){HC.Outdent.runEditorCommand(e,t,null)}}class nPt extends Xe{constructor(){super({id:"editor.action.insertLineBefore",label:v("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,JB.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class sPt extends Xe{constructor(){super({id:"editor.action.insertLineAfter",label:v("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,JB.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class cNe extends Xe{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),s=this._getRangesToDelete(t),r=[];for(let l=0,c=s.length-1;l<c;l++){const u=s[l],h=s[l+1];O.intersectRanges(u,h)===null?r.push(u):s[l+1]=O.plusRange(u,h)}r.push(s[s.length-1]);const o=this._getEndCursorState(i,r),a=r.map(l=>Fn.replace(l,""));t.pushUndoStop(),t.executeEdits(this.id,a,o),t.pushUndoStop()}}class rPt extends cNe{constructor(){super({id:"deleteAllLeft",label:v("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];let r=0;return t.forEach(o=>{let a;if(o.endColumn===1&&r>0){const l=o.startLineNumber-r;a=new nt(l,o.startColumn,l,o.startColumn)}else a=new nt(o.startLineNumber,o.startColumn,o.startLineNumber,o.startColumn);r+=o.endLineNumber-o.startLineNumber,o.intersectRanges(e)?i=a:s.push(a)}),i&&s.unshift(i),s}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const s=e.getModel();return s===null?[]:(i.sort(O.compareRangesUsingStarts),i=i.map(r=>{if(r.isEmpty())if(r.startColumn===1){const o=Math.max(1,r.startLineNumber-1),a=r.startLineNumber===1?1:s.getLineLength(o)+1;return new O(o,a,r.startLineNumber,1)}else return new O(r.startLineNumber,1,r.startLineNumber,r.startColumn);else return new O(r.startLineNumber,1,r.endLineNumber,r.endColumn)}),i)}}class oPt extends cNe{constructor(){super({id:"deleteAllRight",label:v("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];for(let r=0,o=t.length,a=0;r<o;r++){const l=t[r],c=new nt(l.startLineNumber-a,l.startColumn,l.startLineNumber-a,l.startColumn);l.intersectRanges(e)?i=c:s.push(c)}return i&&s.unshift(i),s}_getRangesToDelete(e){const t=e.getModel();if(t===null)return[];const i=e.getSelections();if(i===null)return[];const s=i.map(r=>{if(r.isEmpty()){const o=t.getLineMaxColumn(r.startLineNumber);return r.startColumn===o?new O(r.startLineNumber,r.startColumn,r.startLineNumber+1,1):new O(r.startLineNumber,r.startColumn,r.startLineNumber,o)}return r});return s.sort(O.compareRangesUsingStarts),s}}class aPt extends Xe{constructor(){super({id:"editor.action.joinLines",label:v("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:H.writable,kbOpts:{kbExpr:H.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(i===null)return;let s=t.getSelection();if(s===null)return;i.sort(O.compareRangesUsingStarts);const r=[],o=i.reduce((d,f)=>d.isEmpty()?d.endLineNumber===f.startLineNumber?(s.equalsSelection(d)&&(s=f),f):f.startLineNumber>d.endLineNumber+1?(r.push(d),f):new nt(d.startLineNumber,d.startColumn,f.endLineNumber,f.endColumn):f.startLineNumber>d.endLineNumber?(r.push(d),f):new nt(d.startLineNumber,d.startColumn,f.endLineNumber,f.endColumn));r.push(o);const a=t.getModel();if(a===null)return;const l=[],c=[];let u=s,h=0;for(let d=0,f=r.length;d<f;d++){const p=r[d],g=p.startLineNumber,m=1;let _=0,b,w;const C=a.getLineLength(p.endLineNumber)-p.endColumn;if(p.isEmpty()||p.startLineNumber===p.endLineNumber){const k=p.getStartPosition();k.lineNumber<a.getLineCount()?(b=g+1,w=a.getLineMaxColumn(b)):(b=k.lineNumber,w=a.getLineMaxColumn(k.lineNumber))}else b=p.endLineNumber,w=a.getLineMaxColumn(b);let S=a.getLineContent(g);for(let k=g+1;k<=b;k++){const L=a.getLineContent(k),E=a.getLineFirstNonWhitespaceColumn(k);if(E>=1){let A=!0;S===""&&(A=!1),A&&(S.charAt(S.length-1)===" "||S.charAt(S.length-1)===" ")&&(A=!1,S=S.replace(/[\s\uFEFF\xA0]+$/g," "));const I=L.substr(E-1);S+=(A?" ":"")+I,A?_=I.length+1:_=I.length}else _=0}const x=new O(g,m,b,w);if(!x.isEmpty()){let k;p.isEmpty()?(l.push(Fn.replace(x,S)),k=new nt(x.startLineNumber-h,S.length-_+1,g-h,S.length-_+1)):p.startLineNumber===p.endLineNumber?(l.push(Fn.replace(x,S)),k=new nt(p.startLineNumber-h,p.startColumn,p.endLineNumber-h,p.endColumn)):(l.push(Fn.replace(x,S)),k=new nt(p.startLineNumber-h,p.startColumn,p.startLineNumber-h,S.length-C)),O.intersectRanges(x,s)!==null?u=k:c.push(k)}h+=x.endLineNumber-x.startLineNumber}c.unshift(u),t.pushUndoStop(),t.executeEdits(this.id,l,c),t.pushUndoStop()}}class lPt extends Xe{constructor(){super({id:"editor.action.transpose",label:v("editor.transpose","Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:H.writable})}run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const r=[];for(let o=0,a=i.length;o<a;o++){const l=i[o];if(!l.isEmpty())continue;const c=l.getStartPosition(),u=s.getLineMaxColumn(c.lineNumber);if(c.column>=u){if(c.lineNumber===s.getLineCount())continue;const h=new O(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),d=s.getValueInRange(h).split("").reverse().join("");r.push(new Wr(new nt(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),d))}else{const h=new O(c.lineNumber,Math.max(1,c.column-1),c.lineNumber,c.column+1),d=s.getValueInRange(h).split("").reverse().join("");r.push(new Oee(h,d,new nt(c.lineNumber,c.column+1,c.lineNumber,c.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class z0 extends Xe{run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const r=t.getOption(132),o=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),c=t.getConfiguredWordAtPosition(l);if(!c)continue;const u=new O(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),h=s.getValueInRange(u);o.push(Fn.replace(u,this._modifyText(h,r)))}else{const l=s.getValueInRange(a);o.push(Fn.replace(a,this._modifyText(l,r)))}t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop()}}class cPt extends z0{constructor(){super({id:"editor.action.transformToUppercase",label:v("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:H.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}class uPt extends z0{constructor(){super({id:"editor.action.transformToLowercase",label:v("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:H.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}class Eg{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}const l5=class l5 extends z0{constructor(){super({id:"editor.action.transformToTitlecase",label:v("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:H.writable})}_modifyText(e,t){const i=l5.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,s=>s.toLocaleUpperCase()):e}};l5.titleBoundary=new Eg("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");let b2=l5;const yC=class yC extends z0{constructor(){super({id:"editor.action.transformToSnakecase",label:v("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:H.writable})}_modifyText(e,t){const i=yC.caseBoundary.get(),s=yC.singleLetters.get();return!i||!s?e:e.replace(i,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase()}};yC.caseBoundary=new Eg("(\\p{Ll})(\\p{Lu})","gmu"),yC.singleLetters=new Eg("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");let tI=yC;const c5=class c5 extends z0{constructor(){super({id:"editor.action.transformToCamelcase",label:v("editor.transformToCamelcase","Transform to Camel Case"),alias:"Transform to Camel Case",precondition:H.writable})}_modifyText(e,t){const i=c5.wordBoundary.get();if(!i)return e;const s=e.split(i);return s.shift()+s.map(o=>o.substring(0,1).toLocaleUpperCase()+o.substring(1)).join("")}};c5.wordBoundary=new Eg("[_\\s-]","gm");let y2=c5;const wC=class wC extends z0{constructor(){super({id:"editor.action.transformToPascalcase",label:v("editor.transformToPascalcase","Transform to Pascal Case"),alias:"Transform to Pascal Case",precondition:H.writable})}_modifyText(e,t){const i=wC.wordBoundary.get(),s=wC.wordBoundaryToMaintain.get();return!i||!s?e:e.split(s).map(a=>a.split(i)).flat().map(a=>a.substring(0,1).toLocaleUpperCase()+a.substring(1)).join("")}};wC.wordBoundary=new Eg("[_\\s-]","gm"),wC.wordBoundaryToMaintain=new Eg("(?<=\\.)","gm");let w2=wC;const $m=class $m extends z0{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:v("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:H.writable})}_modifyText(e,t){const i=$m.caseBoundary.get(),s=$m.singleLetters.get(),r=$m.underscoreBoundary.get();return!i||!s||!r?e:e.replace(r,"$1-$3").replace(i,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase()}};$m.caseBoundary=new Eg("(\\p{Ll})(\\p{Lu})","gmu"),$m.singleLetters=new Eg("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),$m.underscoreBoundary=new Eg("(\\S)(_)(\\S)","gm");let C2=$m;Ie(qAt);Ie(KAt);Ie(GAt);Ie(XAt);Ie(YAt);Ie(ZAt);Ie(QAt);Ie(JAt);Ie(QK);Ie(ePt);Ie(tPt);Ie(iPt);Ie(nPt);Ie(sPt);Ie(rPt);Ie(oPt);Ie(aPt);Ie(lPt);Ie(cPt);Ie(uPt);tI.caseBoundary.isSupported()&&tI.singleLetters.isSupported()&&Ie(tI);y2.wordBoundary.isSupported()&&Ie(y2);w2.wordBoundary.isSupported()&&Ie(w2);b2.titleBoundary.isSupported()&&Ie(b2);C2.isSupported()&&Ie(C2);var hPt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},JP=function(n,e){return function(t,i){e(t,i,n)}},PM;const uNe=new $e("LinkedEditingInputVisible",!1),dPt="linked-editing-decoration";var U1;let xx=(U1=class extends ue{static get(e){return e.getContribution(PM.ID)}constructor(e,t,i,s,r){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new be),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=uNe.bindTo(t),this._debounceInformation=r.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new be),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(o=>{(o.hasChanged(70)||o.hasChanged(94))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(70)||this._editor.getOption(94))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(Oe.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const s=new $u(this._debounceInformation.get(t)),r=()=>{this._rangeUpdateTriggerPromise=s.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(t))},o=new $u(0),a=l=>{this._rangeSyncTriggerPromise=o.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{r()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const c=this._currentDecorations.getRange(0);if(c&&l.changes.every(u=>c.intersectRanges(u.range))){a(this._syncRangesToken);return}}r()})),this._localToDispose.add({dispose:()=>{s.dispose(),o.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const s=t.getValueInRange(i);if(this._currentWordPattern){const o=s.match(this._currentWordPattern);if((o?o[0].length:0)!==s.length)return this.clearRanges()}const r=[];for(let o=1,a=this._currentDecorations.length;o<a;o++){const l=this._currentDecorations.getRange(o);if(l)if(l.startLineNumber!==l.endLineNumber)r.push({range:l,text:s});else{let c=t.getValueInRange(l),u=s,h=l.startColumn,d=l.endColumn;const f=s_(c,u);h+=f,c=c.substr(f),u=u.substr(f);const p=sF(c,u);d-=p,c=c.substr(0,c.length-p),u=u.substr(0,u.length-p),(h!==d||u.length!==0)&&r.push({range:new O(l.startLineNumber,h,l.endLineNumber,d),text:u})}}if(r.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const o=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",r),this._editor._getViewModel().setPrevEditOperationType(o)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(e=!1){if(!this._editor.hasModel()){this.clearRanges();return}const t=this._editor.getPosition();if(!this._enabled&&!e||this._editor.getSelections().length>1){this.clearRanges();return}const i=this._editor.getModel(),s=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const o=this._currentDecorations.getRange(0);if(o&&o.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=s;const r=this._currentRequestCts=new Wn;try{const o=new Nr(!1),a=await hNe(this._providers,i,t,r.token);if(this._debounceInformation.update(i,o.elapsed()),r!==this._currentRequestCts||(this._currentRequestCts=null,s!==i.getVersionId()))return;let l=[];a!=null&&a.ranges&&(l=a.ranges),this._currentWordPattern=(a==null?void 0:a.wordPattern)||this._languageWordPattern;let c=!1;for(let h=0,d=l.length;h<d;h++)if(O.containsPosition(l[h],t)){if(c=!0,h!==0){const f=l[h];l.splice(h,1),l.unshift(f)}break}if(!c){this.clearRanges();return}const u=l.map(h=>({range:h,options:PM.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(u),this._syncRangesToken++}catch(o){ou(o)||Nt(o),(this._currentRequestCts===r||!this._currentRequestCts)&&this.clearRanges()}}},PM=U1,U1.ID="editor.contrib.linkedEditing",U1.DECORATION=At.register({description:"linked-editing",stickiness:0,className:dPt}),U1);xx=PM=hPt([JP(1,bt),JP(2,Je),JP(3,ln),JP(4,wc)],xx);class fPt extends Xe{constructor(){super({id:"editor.action.linkedEditing",label:v("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:ye.and(H.writable,H.hasRenameProvider),kbOpts:{kbExpr:H.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(wi),[s,r]=Array.isArray(t)&&t||[void 0,void 0];return mt.isUri(s)&&se.isIPosition(r)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(o=>{o&&(o.setPosition(r),o.invokeWithinContext(a=>(this.reportTelemetry(a,o),this.run(a,o))))},Nt):super.runCommand(e,t)}run(e,t){const i=xx.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const pPt=Gs.bindToContribution(xx.get);Ve(new pPt({id:"cancelLinkedEditingInput",precondition:uNe,handler:n=>n.clearRanges(),kbOpts:{kbExpr:H.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function hNe(n,e,t,i){const s=n.ordered(e);return _ee(s.map(r=>async()=>{try{return await r.provideLinkedEditingRanges(e,t,i)}catch(o){ls(o);return}}),r=>!!r&&so(r==null?void 0:r.ranges))}U("editor.linkedEditingBackground",{dark:Ce.fromHex("#f00").transparent(.3),light:Ce.fromHex("#f00").transparent(.3),hcDark:Ce.fromHex("#f00").transparent(.3),hcLight:Ce.white},v("editorLinkedEditingBackground","Background color when the editor auto renames on type."));Va("_executeLinkedEditingProvider",(n,e,t)=>{const{linkedEditingRangeProvider:i}=n.get(Je);return hNe(i,e,t,Vt.None)});_i(xx.ID,xx,1);Ie(fPt);let gPt=class{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};class S2{constructor(e){this._disposables=new be;let t=[];for(const[i,s]of e){const r=i.links.map(o=>new gPt(o,s));t=S2._union(t,r),AB(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let s,r,o,a;for(s=0,o=0,r=e.length,a=t.length;s<r&&o<a;){const l=e[s],c=t[o];if(O.areIntersectingOrTouching(l.range,c.range)){s++;continue}O.compareRangesUsingStarts(l.range,c.range)<0?(i.push(l),s++):(i.push(c),o++)}for(;s<r;s++)i.push(e[s]);for(;o<a;o++)i.push(t[o]);return i}}function dNe(n,e,t){const i=[],s=n.ordered(e).reverse().map((r,o)=>Promise.resolve(r.provideLinks(e,t)).then(a=>{a&&(i[o]=[a,r])},ls));return Promise.all(s).then(()=>{const r=new S2(Qh(i));return t.isCancellationRequested?(r.dispose(),new S2([])):r})}di.registerCommand("_executeLinkProvider",async(n,...e)=>{let[t,i]=e;yi(t instanceof mt),typeof i!="number"&&(i=0);const{linkProvider:s}=n.get(Je),r=n.get(mn).getModel(t);if(!r)return[];const o=await dNe(s,r,Vt.None);if(!o)return[];for(let l=0;l<Math.min(i,o.links.length);l++)await o.links[l].resolve(Vt.None);const a=o.links.slice(0);return o.dispose(),a});var mPt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},eR=function(n,e){return function(t,i){e(t,i,n)}},JK,uy;let DD=(uy=class extends ue{static get(e){return e.getContribution(JK.ID)}constructor(e,t,i,s,r){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=s,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=r.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new ji(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const o=this._register(new F8(e));this._register(o.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(o.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(o.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=tr(t=>dNe(this.providers,e,t));try{const t=new Nr(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){Nt(t)}finally{this.computePromise=null}}}updateDecorations(e){const t=this.editor.getOption(78)==="altKey",i=[],s=Object.keys(this.currentOccurrences);for(const o of s){const a=this.currentOccurrences[o];i.push(a.decorationId)}const r=[];if(e)for(const o of e)r.push(nS.decoration(o,t));this.editor.changeDecorations(o=>{const a=o.deltaDecorations(i,r);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,c=a.length;l<c;l++){const u=new nS(e[l],a[l]);this.currentOccurrences[u.decorationId]=u}})}_onEditorMouseMove(e,t){const i=this.editor.getOption(78)==="altKey";if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const s=this.getLinkOccurrence(e.target.position);s&&this.editor.changeDecorations(r=>{s.activate(r,i),this.activeLinkDecorationId=s.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:s}=e;s.resolve(Vt.None).then(r=>{if(typeof r=="string"&&this.editor.hasModel()){const o=this.editor.getModel().uri;if(o.scheme===kt.file&&r.startsWith(`${kt.file}:`)){const a=mt.parse(r);if(a.scheme===kt.file){const l=Ad(a);let c=null;l.startsWith("/./")||l.startsWith("\\.\\")?c=`.${l.substr(1)}`:(l.startsWith("//./")||l.startsWith("\\\\.\\"))&&(c=`.${l.substr(2)}`),c&&(r=dvt(o,c))}}}return this.openerService.open(r,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},r=>{const o=r instanceof Error?r.message:r;o==="invalid"?this.notificationService.warn(v("invalid.url","Failed to open this link because it is not well-formed: {0}",s.url.toString())):o==="missing"?this.notificationService.warn(v("missing.url","Failed to open this link because its target is missing.")):Nt(r)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const s=this.currentOccurrences[i.id];if(s)return s}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)==null||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}},JK=uy,uy.ID="editor.linkDetector",uy);DD=JK=mPt([eR(1,kl),eR(2,ms),eR(3,Je),eR(4,wc)],DD);const Xpe={general:At.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:At.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class nS{static decoration(e,t){return{range:e.range,options:nS._getOptions(e,t,!1)}}static _getOptions(e,t,i){const s={...i?Xpe.active:Xpe.general};return s.hoverMessage=_Pt(e,t),s}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,nS._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,nS._getOptions(this.link,t,!1))}}function _Pt(n,e){const t=n.url&&/^command:/i.test(n.url.toString()),i=n.tooltip?n.tooltip:t?v("links.navigate.executeCmd","Execute command"):v("links.navigate.follow","Follow link"),s=e?ni?v("links.navigate.kb.meta.mac","cmd + click"):v("links.navigate.kb.meta","ctrl + click"):ni?v("links.navigate.kb.alt.mac","option + click"):v("links.navigate.kb.alt","alt + click");if(n.url){let r="";if(/^command:/i.test(n.url.toString())){const a=n.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];r=v("tooltip.explanation","Execute command {0}",l)}}return new to("",!0).appendLink(n.url.toString(!0).replace(/ /g,"%20"),i,r).appendMarkdown(` (${s})`)}else return new to().appendText(`${i} (${s})`)}class vPt extends Xe{constructor(){super({id:"editor.action.openLink",label:v("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=DD.get(t);if(!i||!t.hasModel())return;const s=t.getSelections();for(const r of s){const o=i.getLinkOccurrence(r.getEndPosition());o&&i.openLinkOccurrence(o,!1)}}}_i(DD.ID,DD,1);Ie(vPt);const tse=class tse extends ue{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(118);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};tse.ID="editor.contrib.longLinesHelper";let x2=tse;_i(x2.ID,x2,2);const bPt=U("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},v("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},v("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);U("editor.wordHighlightTextBackground",bPt,v("wordHighlightText","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const yPt=U("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Cn,hcLight:Cn},v("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable."));U("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Cn,hcLight:Cn},v("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable."));U("editor.wordHighlightTextBorder",yPt,v("wordHighlightTextBorder","Border color of a textual occurrence for a symbol."));const wPt=U("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",v("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),CPt=U("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",v("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),SPt=U("editorOverviewRuler.wordHighlightTextForeground",pEe,v("overviewRulerWordHighlightTextForeground","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),xPt=At.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:Gn(CPt),position:cc.Center},minimap:{color:Gn(r8),position:1}}),LPt=At.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:Gn(SPt),position:cc.Center},minimap:{color:Gn(r8),position:1}}),EPt=At.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:Gn(pEe),position:cc.Center},minimap:{color:Gn(r8),position:1}}),kPt=At.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),IPt=At.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:Gn(wPt),position:cc.Center},minimap:{color:Gn(r8),position:1}});function TPt(n){return n===BT.Write?xPt:n===BT.Text?LPt:IPt}function DPt(n){return n?kPt:EPt}au((n,e)=>{const t=n.getColor(ste);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var NPt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},APt=function(n,e){return function(t,i){e(t,i,n)}},eG;function W_(n,e){const t=e.filter(i=>!n.find(s=>s.equals(i)));if(t.length>=1){const i=t.map(r=>`line ${r.viewState.position.lineNumber} column ${r.viewState.position.column}`).join(", "),s=t.length===1?v("cursorAdded","Cursor added: {0}",i):v("cursorsAdded","Cursors added: {0}",i);jf(s)}}class PPt extends Xe{constructor(){super({id:"editor.action.insertCursorAbove",label:v("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();const o=r.getCursorStates();r.setCursorStates(i.source,3,br.addCursorUp(r,o,s)),r.revealTopMostCursor(i.source),W_(o,r.getCursorStates())}}class RPt extends Xe{constructor(){super({id:"editor.action.insertCursorBelow",label:v("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();const o=r.getCursorStates();r.setCursorStates(i.source,3,br.addCursorDown(r,o,s)),r.revealBottomMostCursor(i.source),W_(o,r.getCursorStates())}}class MPt extends Xe{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:v("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let s=e.startLineNumber;s<e.endLineNumber;s++){const r=t.getLineMaxColumn(s);i.push(new nt(s,r,s,r))}e.endColumn>1&&i.push(new nt(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),s=t.getSelections(),r=t._getViewModel(),o=r.getCursorStates(),a=[];s.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),W_(o,r.getCursorStates())}}class OPt extends Xe{constructor(){super({id:"editor.action.addCursorsToBottom",label:v("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=t.getModel().getLineCount(),r=[];for(let l=i[0].startLineNumber;l<=s;l++)r.push(new nt(l,i[0].startColumn,l,i[0].endColumn));const o=t._getViewModel(),a=o.getCursorStates();r.length>0&&t.setSelections(r),W_(a,o.getCursorStates())}}class FPt extends Xe{constructor(){super({id:"editor.action.addCursorsToTop",label:v("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=[];for(let a=i[0].startLineNumber;a>=1;a--)s.push(new nt(a,i[0].startColumn,a,i[0].endColumn));const r=t._getViewModel(),o=r.getCursorStates();s.length>0&&t.setSelections(s),W_(o,r.getCursorStates())}}class tR{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class ND{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new ND(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let s=!1,r,o;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(s=!0,r=!0,o=!0):(r=i.wholeWord,o=i.matchCase);const l=e.getSelection();let c,u=null;if(l.isEmpty()){const h=e.getConfiguredWordAtPosition(l.getStartPosition());if(!h)return null;c=h.word,u=new nt(l.startLineNumber,h.startColumn,l.startLineNumber,h.endColumn)}else c=e.getModel().getValueInRange(l).replace(/\r\n/g,` +`);return new ND(e,t,s,c,r,o,u)}constructor(e,t,i,s,r,o,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=s,this.wholeWord=r,this.matchCase=o,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new tR(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new tR(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return i?new nt(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new tR(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new tR(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return i?new nt(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824)}}const u5=class u5 extends ue{static get(e){return e.getContribution(u5.ID)}constructor(e){super(),this._sessionDispose=this._register(new be),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=ND.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(s=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(s=>{(s.matchCase||s.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new nt(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const s=e.getState().matchCase;if(!fNe(this._editor.getModel(),t,s)){const o=this._editor.getModel(),a=[];for(let l=0,c=t.length;l<c;l++)a[l]=this._expandEmptyToWord(o,t[l]);this._editor.setSelections(a);return}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null;const i=e.getState();if(i.isRevealed&&i.searchString.length>0&&i.isRegex){const s=this._editor.getModel();i.searchScope?t=s.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(132):null,!1,1073741824):t=s.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(132):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const s=this._editor.getSelection();for(let r=0,o=t.length;r<o;r++){const a=t[r];if(a.range.intersectRanges(s)){t[r]=t[0],t[0]=a;break}}this._setSelections(t.map(r=>new nt(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn)))}}};u5.ID="editor.contrib.multiCursorController";let Lx=u5;class kL extends Xe{run(e,t){const i=Lx.get(t);if(!i)return;const s=t._getViewModel();if(s){const r=s.getCursorStates(),o=Oa.get(t);if(o)this._run(i,o);else{const a=e.get(ct).createInstance(Oa,t);this._run(i,a),a.dispose()}W_(r,s.getCursorStates())}}}class BPt extends kL{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:v("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:2082,weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class WPt extends kL{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:v("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class VPt extends kL{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:v("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:Ts(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class HPt extends kL{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:v("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}class $Pt extends kL{constructor(){super({id:"editor.action.selectHighlights",label:v("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:3114,weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"3_multi",title:v({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class zPt extends kL{constructor(){super({id:"editor.action.changeAll",label:v("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:ye.and(H.writable,H.editorTextFocus),kbOpts:{kbExpr:H.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}class UPt{constructor(e,t,i,s,r){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=s,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,r&&this._model===r._model&&this._searchText===r._searchText&&this._matchCase===r._matchCase&&this._wordSeparators===r._wordSeparators&&this._modelVersionId===r._modelVersionId&&(this._cachedFindMatches=r._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(O.compareRangesUsingStarts)),this._cachedFindMatches}}var hy;let L2=(hy=class extends ue{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(109),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new ji(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(s=>{this._isEnabled=e.getOption(109)})),this._register(e.onDidChangeCursorSelection(s=>{this._isEnabled&&(s.selection.isEmpty()?s.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(s=>{this._setState(null)})),this._register(e.onDidChangeModelContent(s=>{this._isEnabled&&this.updateSoon.schedule()}));const i=Oa.get(e);i&&this._register(i.getState().onFindReplaceStateChange(s=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(eG._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t||!i.hasModel())return null;const s=i.getSelection();if(s.startLineNumber!==s.endLineNumber)return null;const r=Lx.get(i);if(!r)return null;const o=Oa.get(i);if(!o)return null;let a=r.getSession(o);if(!a){const u=i.getSelections();if(u.length>1){const d=o.getState().matchCase;if(!fNe(i.getModel(),u,d))return null}a=ND.create(i,o)}if(!a||a.currentMatch||/^[ \t]+$/.test(a.searchText)||a.searchText.length>200)return null;const l=o.getState(),c=l.matchCase;if(l.isRevealed){let u=l.searchString;c||(u=u.toLowerCase());let h=a.searchText;if(c||(h=h.toLowerCase()),u===h&&a.matchCase===l.matchCase&&a.wholeWord===l.wholeWord&&!l.isRegex)return null}return new UPt(i.getModel(),a.searchText,a.matchCase,a.wholeWord?i.getOption(132):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),s=this.editor.getSelections();s.sort(O.compareRangesUsingStarts);const r=[];for(let c=0,u=0,h=i.length,d=s.length;c<h;){const f=i[c];if(u>=d)r.push(f),c++;else{const p=O.compareRangesUsingStarts(f,s[u]);p<0?((s[u].isEmpty()||!O.areIntersecting(f,s[u]))&&r.push(f),c++):(p>0||c++,u++)}}const o=this.editor.getOption(81)!=="off",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&o,l=r.map(c=>({range:c,options:DPt(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}},eG=hy,hy.ID="editor.contrib.selectionHighlighter",hy);L2=eG=NPt([APt(1,Je)],L2);function fNe(n,e,t){const i=Ype(n,e[0],!t);for(let s=1,r=e.length;s<r;s++){const o=e[s];if(o.isEmpty())return!1;const a=Ype(n,o,!t);if(i!==a)return!1}return!0}function Ype(n,e,t){const i=n.getValueInRange(e);return t?i.toLowerCase():i}class jPt extends Xe{constructor(){super({id:"editor.action.focusNextCursor",label:v("mutlicursor.focusNextCursor","Focus Next Cursor"),metadata:{description:v("mutlicursor.focusNextCursor.description","Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const r=Array.from(s.getCursorStates()),o=r.shift();o&&(r.push(o),s.setCursorStates(i.source,3,r),s.revealPrimaryCursor(i.source,!0),W_(r,s.getCursorStates()))}}class qPt extends Xe{constructor(){super({id:"editor.action.focusPreviousCursor",label:v("mutlicursor.focusPreviousCursor","Focus Previous Cursor"),metadata:{description:v("mutlicursor.focusPreviousCursor.description","Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const r=Array.from(s.getCursorStates()),o=r.pop();o&&(r.unshift(o),s.setCursorStates(i.source,3,r),s.revealPrimaryCursor(i.source,!0),W_(r,s.getCursorStates()))}}_i(Lx.ID,Lx,4);_i(L2.ID,L2,1);Ie(PPt);Ie(RPt);Ie(MPt);Ie(BPt);Ie(WPt);Ie(VPt);Ie(HPt);Ie($Pt);Ie(zPt);Ie(OPt);Ie(FPt);Ie(jPt);Ie(qPt);const KPt="editor.action.inlineEdit.accept",GPt="editor.action.inlineEdit.reject",XPt="editor.action.inlineEdit.jumpTo",YPt="editor.action.inlineEdit.jumpBack";var ZPt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},QPt=function(n,e){return function(t,i){e(t,i,n)}};const hV="inline-edit";let tG=class extends ue{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=Gt(this,!1),this.currentTextModel=Vi(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=ot(this,s=>{var b;if(this.isDisposed.read(s))return;const r=this.currentTextModel.read(s);if(r!==this.model.targetTextModel.read(s))return;const o=this.model.ghostText.read(s);if(!o)return;let a=(b=this.model.range)==null?void 0:b.read(s);a&&a.startLineNumber===a.endLineNumber&&a.startColumn===a.endColumn&&(a=void 0);const l=(a?a.startLineNumber===a.endLineNumber:!0)&&o.parts.length===1&&o.parts[0].lines.length===1,c=o.parts.length===1&&o.parts[0].lines.every(w=>w.length===0),u=[],h=[];function d(w,C){if(h.length>0){const S=h[h.length-1];C&&S.decorations.push(new Xo(S.content.length+1,S.content.length+1+w[0].length,C,0)),S.content+=w[0],w=w.slice(1)}for(const S of w)h.push({content:S,decorations:C?[new Xo(1,S.length+1,C,0)]:[]})}const f=r.getLineContent(o.lineNumber);let p,g=0;if(!c&&(l||!a)){for(const w of o.parts){let C=w.lines;a&&!l&&(d(C,hV),C=[]),p===void 0?(u.push({column:w.column,text:C[0],preview:w.preview}),C=C.slice(1)):d([f.substring(g,w.column-1)],void 0),C.length>0&&(d(C,hV),p===void 0&&w.column<=f.length&&(p=w.column)),g=w.column-1}p!==void 0&&d([f.substring(g)],void 0)}const m=p!==void 0?new GDe(p,f.length+1):void 0,_=l||!a?o.lineNumber:a.endLineNumber-1;return{inlineTexts:u,additionalLines:h,hiddenRange:m,lineNumber:_,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:r,range:a,isSingleLine:l,isPureRemove:c}}),this.decorations=ot(this,s=>{const r=this.uiState.read(s);if(!r)return[];const o=[];if(r.hiddenRange&&o.push({range:r.hiddenRange.toRange(r.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),r.range){const a=[];if(r.isSingleLine)a.push(r.range);else if(!r.isPureRemove){const l=r.range.endLineNumber-r.range.startLineNumber;for(let c=0;c<l;c++){const u=r.range.startLineNumber+c,h=r.targetTextModel.getLineFirstNonWhitespaceColumn(u),d=r.targetTextModel.getLineLastNonWhitespaceColumn(u),f=new O(u,h,u,d);a.push(f)}}for(const l of a)o.push({range:l,options:lx})}if(r.range&&!r.isSingleLine&&r.isPureRemove){const a=new O(r.range.startLineNumber,1,r.range.endLineNumber-1,1);o.push({range:a,options:rD})}for(const a of r.inlineTexts)o.push({range:O.fromPositions(new se(r.lineNumber,a.column)),options:{description:hV,after:{content:a.text,inlineClassName:a.preview?"inline-edit-decoration-preview":"inline-edit-decoration",cursorStops:Tu.Left},showIfCollapsed:!0}});return o}),this._register(lt(()=>{this.isDisposed.set(!0,void 0)})),this._register(XDe(this.editor,this.decorations))}};tG=ZPt([QPt(2,Dn)],tG);var Lne=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Jd=function(n,e){return function(t,i){e(t,i,n)}},RM;let iG=class extends ue{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=ot(this,s=>{var l,c;const r=(l=this.model.read(s))==null?void 0:l.model.ghostText.read(s);if(!this.alwaysShowToolbar.read(s)||!r||r.parts.length===0)return this.sessionPosition=void 0,null;const o=r.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==r.lineNumber&&(this.sessionPosition=void 0);const a=new se(r.lineNumber,Math.min(o,((c=this.sessionPosition)==null?void 0:c.column)??Number.MAX_SAFE_INTEGER));return this.sessionPosition=a,a}),this._register(Na((s,r)=>{if(!this.model.read(s)||!this.alwaysShowToolbar.read(s))return;const a=r.add(this.instantiationService.createInstance(nG,this.editor,!0,this.position));e.addContentWidget(a),r.add(lt(()=>e.removeContentWidget(a)))}))}};iG=Lne([Jd(2,ct)],iG);var j1;let nG=(j1=class extends ue{constructor(e,t,i,s,r,o){super(),this.editor=e,this.withBorder=t,this._position=i,this._contextKeyService=r,this._menuService=o,this.id=`InlineEditHintsContentWidget${RM.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Jt("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[Jt("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(et.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(s.createInstance(sG,this.nodes.toolBar,this.editor,et.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:a=>a.startsWith("primary")},actionViewItemProvider:(a,l)=>{if(a instanceof fl)return s.createInstance(JPt,a,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(a=>{RM._dropDownVisible=a})),this._register(Lt(a=>{this._position.read(a),this.editor.layoutContentWidget(this)})),this._register(Lt(a=>{const l=[];for(const[c,u]of this.inlineCompletionsActionsMenus.getActions())for(const h of u)h instanceof fl&&l.push(h);l.length>0&&l.unshift(new nr),this.toolBar.setAdditionalSecondaryActions(l)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},RM=j1,j1._dropDownVisible=!1,j1.id=0,j1);nG=RM=Lne([Jd(3,ct),Jd(4,bt),Jd(5,vc)],nG);class JPt extends m_{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=Jt("div.keybinding").root;this._register(new xL(t,cl,{disableTitle:!0,...eTe})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let sG=class extends cD{constructor(e,t,i,s,r,o,a,l,c,u){super(e,{resetMenu:i,...s},r,o,a,l,c,u),this.editor=t,this.menuId=i,this.options2=s,this.menuService=r,this.contextKeyService=o,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var i,s,r,o,a,l,c;const e=[],t=[];T8(this.menu,(i=this.options2)==null?void 0:i.menuOptions,{primary:e,secondary:t},(r=(s=this.options2)==null?void 0:s.toolbarOptions)==null?void 0:r.primaryGroup,(a=(o=this.options2)==null?void 0:o.toolbarOptions)==null?void 0:a.shouldInlineSubmenu,(c=(l=this.options2)==null?void 0:l.toolbarOptions)==null?void 0:c.useSeparatorsInPrimaryActions),t.push(...this.additionalActions),e.unshift(...this.prependedPrimaryActions),this.setActions(e,t)}setAdditionalSecondaryActions(e){In(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};sG=Lne([Jd(4,vc),Jd(5,bt),Jd(6,El),Jd(7,Ni),Jd(8,an),Jd(9,Ro)],sG);var pNe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},MM=function(n,e){return function(t,i){e(t,i,n)}},JE,rG;function*eRt(n,e,t=1){e===void 0&&([e,n]=[n,0]);for(let i=n;i<e;i+=t)yield i}function dV(n){var i;const e=((i=n[0].match(/^\s*/))==null?void 0:i[0])??"",t=e.length;return{text:n.map(s=>s.replace(new RegExp("^"+e),"")),shift:t}}var dy;let oG=(dy=class extends ue{static _createUniqueUri(){return mt.from({scheme:"inline-edit-widget",path:new Date().toString()+String(JE._modelId++)})}constructor(e,t,i,s,r){super(),this._editor=e,this._model=t,this._instantiationService=i,this._diffProviderFactoryService=s,this._modelService=r,this._position=ot(this,o=>{const a=this._model.read(o);if(!a||a.text.length===0||a.range.startLineNumber===a.range.endLineNumber&&!(a.range.startColumn===a.range.endColumn&&a.range.startColumn===1))return null;const l=this._editor.getModel();if(!l)return null;const c=Array.from(eRt(a.range.startLineNumber,a.range.endLineNumber+1)),u=c.map(g=>l.getLineLastNonWhitespaceColumn(g)),h=Math.max(...u),d=c[u.indexOf(h)],f=new se(d,h);return{top:a.range.startLineNumber,left:f}}),this._text=ot(this,o=>{const a=this._model.read(o);if(!a)return{text:"",shift:0};const l=dV(a.text.split(` +`));return{text:l.text.join(` +`),shift:l.shift}}),this._originalModel=vo(()=>this._modelService.createModel("",null,JE._createUniqueUri())).keepObserved(this._store),this._modifiedModel=vo(()=>this._modelService.createModel("",null,JE._createUniqueUri())).keepObserved(this._store),this._diff=ot(this,o=>{var a,l;return(l=(a=this._diffPromise.read(o))==null?void 0:a.promiseResult.read(o))==null?void 0:l.data}),this._diffPromise=ot(this,o=>{const a=this._model.read(o);if(!a)return;const l=this._editor.getModel();if(!l)return;const c=dV(l.getValueInRange(a.range).split(` +`)).text.join(` +`),u=dV(a.text.split(` +`)).text.join(` +`);this._originalModel.get().setValue(c),this._modifiedModel.get().setValue(u);const h=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return C8.fromFn(async()=>{const d=await h.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},Vt.None);if(!d.identical)return d.changes})}),this._register(Na((o,a)=>{if(!this._model.read(o)||this._position.get()===null)return;const c=a.add(this._instantiationService.createInstance(aG,this._editor,this._position,this._text.map(u=>u.text),this._text.map(u=>u.shift),this._diff));e.addOverlayWidget(c),a.add(lt(()=>e.removeOverlayWidget(c)))}))}},JE=dy,dy._modelId=0,dy);oG=JE=pNe([MM(2,ct),MM(3,GN),MM(4,mn)],oG);var fy;let aG=(fy=class extends ue{constructor(e,t,i,s,r,o){var a;super(),this._editor=e,this._position=t,this._text=i,this._shift=s,this._diff=r,this._instantiationService=o,this.id=`InlineEditSideBySideContentWidget${rG.id++}`,this.allowEditorOverflow=!1,this._nodes=Pe("div.inlineEditSideBySide",void 0),this._scrollChanged=Vr("editor.onDidScrollChange",this._editor.onDidScrollChange),this._previewEditor=this._register(this._instantiationService.createInstance(Ku,this._nodes,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,scrollbar:{vertical:"hidden",horizontal:"hidden",alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off",wrappingIndent:"none",wrappingStrategy:void 0},{contributions:[],isSimpleWidget:!0},this._editor)),this._previewEditorObs=ll(this._previewEditor),this._editorObs=ll(this._editor),this._previewTextModel=this._register(this._instantiationService.createInstance(Ah,"",((a=this._editor.getModel())==null?void 0:a.getLanguageId())??ea,Ah.DEFAULT_CREATION_OPTIONS,null)),this._setText=ot(l=>{const c=this._text.read(l);c&&this._previewTextModel.setValue(c)}).recomputeInitiallyAndOnChange(this._store),this._decorations=ot(this,l=>{this._setText.read(l);const c=this._position.read(l);if(!c)return{org:[],mod:[]};const u=this._diff.read(l);if(!u)return{org:[],mod:[]};const h=[],d=[];if(u.length===1&&u[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return{org:[],mod:[]};const f=this._shift.get(),p=g=>new O(g.startLineNumber+c.top-1,g.startColumn+f,g.endLineNumber+c.top-1,g.endColumn+f);for(const g of u)if(g.original.isEmpty||h.push({range:p(g.original.toInclusiveRange()),options:rD}),g.modified.isEmpty||d.push({range:g.modified.toInclusiveRange(),options:o4}),g.modified.isEmpty||g.original.isEmpty)g.original.isEmpty||h.push({range:p(g.original.toInclusiveRange()),options:aie}),g.modified.isEmpty||d.push({range:g.modified.toInclusiveRange(),options:rie});else for(const m of g.innerChanges||[])g.original.contains(m.originalRange.startLineNumber)&&h.push({range:p(m.originalRange),options:m.originalRange.isEmpty()?lie:lx}),g.modified.contains(m.modifiedRange.startLineNumber)&&d.push({range:m.modifiedRange,options:m.modifiedRange.isEmpty()?oie:a4});return{org:h,mod:d}}),this._originalDecorations=ot(this,l=>this._decorations.read(l).org),this._modifiedDecorations=ot(this,l=>this._decorations.read(l).mod),this._previewEditor.setModel(this._previewTextModel),this._register(this._editorObs.setDecorations(this._originalDecorations)),this._register(this._previewEditorObs.setDecorations(this._modifiedDecorations)),this._register(Lt(l=>{const c=this._previewEditorObs.contentWidth.read(l),u=this._text.read(l).split(` +`).length-1,h=this._editor.getOption(67)*u;c<=0||this._previewEditor.layout({height:h,width:c})})),this._register(Lt(l=>{this._position.read(l),this._editor.layoutOverlayWidget(this)})),this._register(Lt(l=>{this._scrollChanged.read(l),this._position.read(l)&&this._editor.layoutOverlayWidget(this)}))}getId(){return this.id}getDomNode(){return this._nodes}getPosition(){const e=this._position.get();if(!e)return null;const t=this._editor.getLayoutInfo(),i=this._editor.getScrolledVisiblePosition(new se(e.top,1));if(!i)return null;const s=i.top-1,r=this._editor.getOffsetForColumn(e.left.lineNumber,e.left.column);return{preference:{left:t.contentLeft+r+10,top:s}}}},rG=fy,fy.id=0,fy);aG=rG=pNe([MM(5,ct)],aG);var tRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},av=function(n,e){return function(t,i){e(t,i,n)}},ek,Nc;let Zo=(Nc=class extends ue{static get(e){return e.getContribution(ek.ID)}constructor(e,t,i,s,r,o,a,l){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.languageFeaturesService=s,this._commandService=r,this._configurationService=o,this._diffProviderFactoryService=a,this._modelService=l,this._isVisibleContext=ek.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=ek.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=Gt(this,void 0),this._currentWidget=vo(this._currentEdit,p=>{const g=this._currentEdit.read(p);if(!g)return;const m=g.range.endLineNumber,_=g.range.endColumn,b=g.text.endsWith(` +`)&&!(g.range.startLineNumber===g.range.endLineNumber&&g.range.startColumn===g.range.endColumn)?g.text.slice(0,-1):g.text,w=new LD(m,[new r2(_,b,!1)]),C=g.range.startLineNumber===g.range.endLineNumber&&w.parts.length===1&&w.parts[0].lines.length===1,S=g.text==="";return!C&&!S?void 0:this.instantiationService.createInstance(tG,this.editor,{ghostText:Uc(w),minReservedLineCount:Uc(0),targetTextModel:Uc(this.editor.getModel()??void 0),range:Uc(g.range)})}),this._isAccepting=Gt(this,!1),this._enabled=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=Vi(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily);const c=Vr("InlineEditController.modelContentChangedSignal",e.onDidChangeModelContent);this._register(Lt(p=>{this._enabled.read(p)&&(c.read(p),!this._isAccepting.read(p)&&this.getInlineEdit(e,!0))}));const u=Vi(this,e.onDidChangeCursorPosition,()=>e.getPosition());this._register(Lt(p=>{if(!this._enabled.read(p))return;const g=u.read(p);g&&this.checkCursorPosition(g)})),this._register(Lt(p=>{const g=this._currentEdit.read(p);if(this._isCursorAtInlineEditContext.set(!1),!g){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const m=e.getPosition();m&&this.checkCursorPosition(m)}));const h=Vr("InlineEditController.editorBlurSignal",e.onDidBlurEditorWidget);this._register(Lt(async p=>{var g;this._enabled.read(p)&&(h.read(p),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||e.getOption(63).keepOnBlur)&&((g=this._currentRequestCts)==null||g.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));const d=Vr("InlineEditController.editorFocusSignal",e.onDidFocusEditorText);this._register(Lt(p=>{this._enabled.read(p)&&(d.read(p),this.getInlineEdit(e,!0))}));const f=this._register(pLe());this._register(Lt(p=>{const g=this._fontFamily.read(p);f.setStyle(g===""||g==="default"?"":` +.monaco-editor .inline-edit-decoration, +.monaco-editor .inline-edit-decoration-preview, +.monaco-editor .inline-edit { + font-family: ${g}; +}`)})),this._register(new iG(this.editor,this._currentWidget,this.instantiationService)),this._register(new oG(this.editor,this._currentEdit,this.instantiationService,this._diffProviderFactoryService,this._modelService))}checkCursorPosition(e){if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const t=this._currentEdit.get();if(!t){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(O.containsPosition(t.range,e))}validateInlineEdit(e,t){var i;if(t.text.includes(` +`)&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(t.range.startColumn!==1)return!1;const r=t.range.endLineNumber,o=t.range.endColumn,a=((i=e.getModel())==null?void 0:i.getLineLength(r))??0;if(o!==a+1)return!1}return!0}async fetchInlineEdit(e,t){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const i=e.getModel();if(!i)return;const s=i.getVersionId(),r=this.languageFeaturesService.inlineEditProvider.all(i);if(r.length===0)return;const o=r[0];this._currentRequestCts=new Wn;const a=this._currentRequestCts.token,l=t?VF.Automatic:VF.Invoke;if(t&&await iRt(50,a),a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)return;const u=await o.provideInlineEdit(i,{triggerKind:l},a);if(u&&!(a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)&&this.validateInlineEdit(e,u))return u}async getInlineEdit(e,t){this._isCursorAtInlineEditContext.set(!1),await this.clear();const i=await this.fetchInlineEdit(e,t);i&&this._currentEdit.set(i,void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){this._isAccepting.set(!0,void 0);const e=this._currentEdit.get();if(!e)return;let t=e.text;e.text.startsWith(` +`)&&(t=e.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[Fn.replace(O.lift(e.range),t)]),e.accepted&&await this._commandService.executeCommand(e.accepted.id,...e.accepted.arguments||[]).then(void 0,ls),this.freeEdit(e),Un(i=>{this._currentEdit.set(void 0,i),this._isAccepting.set(!1,i)})}jumpToCurrent(){var i;this._jumpBackPosition=(i=this.editor.getSelection())==null?void 0:i.getStartPosition();const e=this._currentEdit.get();if(!e)return;const t=se.lift({lineNumber:e.range.startLineNumber,column:e.range.startColumn});this.editor.setPosition(t),this.editor.revealPositionInCenterIfOutsideViewport(t)}async clear(e=!0){const t=this._currentEdit.get();t&&(t!=null&&t.rejected)&&e&&await this._commandService.executeCommand(t.rejected.id,...t.rejected.arguments||[]).then(void 0,ls),t&&this.freeEdit(t),this._currentEdit.set(void 0,void 0)}freeEdit(e){const t=this.editor.getModel();if(!t)return;const i=this.languageFeaturesService.inlineEditProvider.all(t);i.length!==0&&i[0].freeInlineEdit(e)}},ek=Nc,Nc.ID="editor.contrib.inlineEditController",Nc.inlineEditVisibleKey="inlineEditVisible",Nc.inlineEditVisibleContext=new $e(Nc.inlineEditVisibleKey,!1),Nc.cursorAtInlineEditKey="cursorAtInlineEdit",Nc.cursorAtInlineEditContext=new $e(Nc.cursorAtInlineEditKey,!1),Nc);Zo=ek=tRt([av(1,ct),av(2,bt),av(3,Je),av(4,an),av(5,Xt),av(6,GN),av(7,mn)],Zo);function iRt(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}let nRt=class extends Xe{constructor(){super({id:KPt,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:ye.and(H.writable,Zo.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:ye.and(H.writable,Zo.inlineEditVisibleContext,Zo.cursorAtInlineEditContext)}],menuOpts:[{menuId:et.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(e,t){const i=Zo.get(t);await(i==null?void 0:i.accept())}};class sRt extends Xe{constructor(){const e=ye.and(H.writable,ye.not(Zo.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e}})}async run(e,t){const i=Zo.get(t);i==null||i.trigger()}}class rRt extends Xe{constructor(){const e=ye.and(H.writable,Zo.inlineEditVisibleContext,ye.not(Zo.cursorAtInlineEditKey));super({id:XPt,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e},menuOpts:[{menuId:et.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:e}]})}async run(e,t){const i=Zo.get(t);i==null||i.jumpToCurrent()}}class oRt extends Xe{constructor(){const e=ye.and(H.writable,Zo.cursorAtInlineEditContext);super({id:YPt,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:e,kbOpts:{weight:110,primary:2646,kbExpr:e},menuOpts:[{menuId:et.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:e}]})}async run(e,t){const i=Zo.get(t);i==null||i.jumpBack()}}class aRt extends Xe{constructor(){const e=ye.and(H.writable,Zo.inlineEditVisibleContext);super({id:GPt,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:e,kbOpts:{weight:100,primary:9,kbExpr:e},menuOpts:[{menuId:et.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(e,t){const i=Zo.get(t);await(i==null?void 0:i.clear())}}Ie(nRt);Ie(aRt);Ie(rRt);Ie(oRt);Ie(sRt);_i(Zo.ID,Zo,3);const lRt="editor.action.inlineEdits.accept",cRt="editor.action.inlineEdits.showPrevious",uRt="editor.action.inlineEdits.showNext",Ex=new $e("inlineEditsVisible",!1,v("inlineEditsVisible","Whether an inline edit is visible")),hRt=new $e("inlineEditsIsPinned",!1,v("isPinned","Whether an inline edit is visible")),ise=class ise extends ue{constructor(e){super(),this._editor=e,this._editorObs=ll(this._editor),this._placeholderText=this._editorObs.getOption(88),this._state=Gl({owner:this,equalsFn:e4},t=>{const i=this._placeholderText.read(t);if(i&&this._editorObs.valueIsEmpty.read(t))return{placeholder:i}}),this._shouldViewBeAlive=dRt(this,t=>{var i;return((i=this._state.read(t))==null?void 0:i.placeholder)!==void 0}),this._view=R_((t,i)=>{if(!this._shouldViewBeAlive.read(t))return;const s=Jt("div.editorPlaceholder");i.add(Lt(r=>{const o=this._state.read(r),a=(o==null?void 0:o.placeholder)!==void 0;s.root.style.display=a?"block":"none",s.root.innerText=(o==null?void 0:o.placeholder)??""})),i.add(Lt(r=>{const o=this._editorObs.layoutInfo.read(r);s.root.style.left=`${o.contentLeft}px`,s.root.style.width=o.contentWidth-o.verticalScrollbarWidth+"px",s.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),i.add(Lt(r=>{s.root.style.fontFamily=this._editorObs.getOption(49).read(r),s.root.style.fontSize=this._editorObs.getOption(52).read(r)+"px",s.root.style.lineHeight=this._editorObs.getOption(67).read(r)+"px"})),i.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:Uc(0),position:Uc(null),domNode:s.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};ise.ID="editor.contrib.placeholderText";let AD=ise;function dRt(n,e){return UN(n,(t,i)=>i===!0?!0:e(t))}var fRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},pRt=function(n,e){return function(t,i){e(t,i,n)}};class gRt{constructor(e,t,i){this.range=e,this.newLines=t,this.changes=i}}let lG=class extends ue{constructor(e,t,i,s){super(),this._editor=e,this._edit=t,this._userPrompt=i,this._instantiationService=s,this._editorObs=ll(this._editor),this._elements=Jt("div.inline-edits-widget",{style:{position:"absolute",overflow:"visible",top:"0px",left:"0px"}},[Jt("div@editorContainer",{style:{position:"absolute",top:"0px",left:"0px",width:"500px",height:"500px"}},[Jt("div.toolbar@toolbar",{style:{position:"absolute",top:"-25px",left:"0px"}}),Jt("div.promptEditor@promptEditor",{style:{position:"absolute",top:"-25px",left:"80px",width:"300px",height:"22px"}}),Jt("div.preview@editor",{style:{position:"absolute",top:"0px",left:"0px"}})]),iw("svg",{style:{overflow:"visible",pointerEvents:"none"}},[iw("defs",[iw("linearGradient",{id:"Gradient2",x1:"0",y1:"0",x2:"1",y2:"0"},[iw("stop",{offset:"0%",class:"gradient-stop"}),iw("stop",{offset:"100%",class:"gradient-stop"})])]),iw("path@path",{d:"",fill:"url(#Gradient2)"})])]),this._previewTextModel=this._register(this._instantiationService.createInstance(Ah,"",ea,Ah.DEFAULT_CREATION_OPTIONS,null)),this._setText=ot(o=>{const a=this._edit.read(o);a&&this._previewTextModel.setValue(a.newLines.join(` +`))}).recomputeInitiallyAndOnChange(this._store),this._promptTextModel=this._register(this._instantiationService.createInstance(Ah,"",ea,Ah.DEFAULT_CREATION_OPTIONS,null)),this._promptEditor=this._register(this._instantiationService.createInstance(Ku,this._elements.promptEditor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,placeholder:"Describe the change you want...",fontFamily:eke},{contributions:wb.getSomeEditorContributions([Du.ID,AD.ID,_x.ID]),isSimpleWidget:!0},this._editor)),this._previewEditor=this._register(this._instantiationService.createInstance(Ku,this._elements.editor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0},{contributions:[]},this._editor)),this._previewEditorObs=ll(this._previewEditor),this._decorations=ot(this,o=>{var u;this._setText.read(o);const a=(u=this._edit.read(o))==null?void 0:u.changes;if(!a)return[];const l=[],c=[];if(a.length===1&&a[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return[];for(const h of a)if(h.original.isEmpty||l.push({range:h.original.toInclusiveRange(),options:rD}),h.modified.isEmpty||c.push({range:h.modified.toInclusiveRange(),options:o4}),h.modified.isEmpty||h.original.isEmpty)h.original.isEmpty||l.push({range:h.original.toInclusiveRange(),options:aie}),h.modified.isEmpty||c.push({range:h.modified.toInclusiveRange(),options:rie});else for(const d of h.innerChanges||[])h.original.contains(d.originalRange.startLineNumber)&&l.push({range:d.originalRange,options:d.originalRange.isEmpty()?lie:lx}),h.modified.contains(d.modifiedRange.startLineNumber)&&c.push({range:d.modifiedRange,options:d.modifiedRange.isEmpty()?oie:a4});return c}),this._layout1=ot(this,o=>{const a=this._editor.getModel(),l=this._edit.read(o);if(!l)return null;const c=l.range;let u=0;for(let f=c.startLineNumber;f<c.endLineNumberExclusive;f++){const p=a.getLineMaxColumn(f),g=this._editor.getOffsetForColumn(f,p);u=Math.max(u,g)}return{left:this._editor.getLayoutInfo().contentLeft+u}}),this._layout=ot(this,o=>{const a=this._edit.read(o);if(!a)return null;const l=a.range,c=this._editorObs.scrollLeft.read(o),u=this._layout1.read(o).left+20-c,h=this._editor.getTopForLineNumber(l.startLineNumber)-this._editorObs.scrollTop.read(o),d=this._editor.getTopForLineNumber(l.endLineNumberExclusive)-this._editorObs.scrollTop.read(o),f=new iC(u,h),p=new iC(u,d),g=d-h,m=50,_=this._editor.getOption(67)*a.newLines.length,b=g-_,w=new iC(u+m,h+b/2),C=new iC(u+m,d-b/2);return{topCode:f,bottomCode:p,codeHeight:g,topEdit:w,bottomEdit:C,editHeight:_}});const r=ot(this,o=>this._edit.read(o)!==void 0||this._userPrompt.read(o)!==void 0);this._register(zg(this._elements.root,{display:ot(this,o=>r.read(o)?"block":"none")})),this._register(Yw(this._editor.getDomNode(),this._elements.root)),this._register(ll(e).createOverlayWidget({domNode:this._elements.root,position:Uc(null),allowEditorOverflow:!1,minContentWidthInPx:ot(o=>{var c;const a=(c=this._layout1.read(o))==null?void 0:c.left;if(a===void 0)return 0;const l=this._previewEditorObs.contentWidth.read(o);return a+l})})),this._previewEditor.setModel(this._previewTextModel),this._register(this._previewEditorObs.setDecorations(this._decorations)),this._register(Lt(o=>{const a=this._layout.read(o);if(!a)return;const{topCode:l,bottomCode:c,topEdit:u,bottomEdit:h,editHeight:d}=a,f=10,p=0,g=40,m=new _Rt().moveTo(l).lineTo(l.deltaX(f)).curveTo(l.deltaX(f+g),u.deltaX(-g-p),u.deltaX(-p)).lineTo(u).lineTo(h).lineTo(h.deltaX(-p)).curveTo(h.deltaX(-g-p),c.deltaX(f+g),c.deltaX(f)).lineTo(c).build();this._elements.path.setAttribute("d",m),this._elements.editorContainer.style.top=`${u.y}px`,this._elements.editorContainer.style.left=`${u.x}px`,this._elements.editorContainer.style.height=`${d}px`;const _=this._previewEditorObs.contentWidth.read(o);this._previewEditor.layout({height:d,width:_})})),this._promptEditor.setModel(this._promptTextModel),this._promptEditor.layout(),this._register(vRt(mRt(this._userPrompt,o=>o??"",o=>o),ll(this._promptEditor).value)),this._register(Lt(o=>{const a=ll(this._promptEditor).isFocused.read(o);this._elements.root.classList.toggle("focused",a)}))}};lG=fRt([pRt(3,ct)],lG);function mRt(n,e,t){return HN(void 0,i=>e(n.read(i)),(i,s)=>n.set(t(i),s))}class iC{constructor(e,t){this.x=e,this.y=t}deltaX(e){return new iC(this.x+e,this.y)}}class _Rt{constructor(){this._data=""}moveTo(e){return this._data+=`M ${e.x} ${e.y} `,this}lineTo(e){return this._data+=`L ${e.x} ${e.y} `,this}curveTo(e,t,i){return this._data+=`C ${e.x} ${e.y} ${t.x} ${t.y} ${i.x} ${i.y} `,this}build(){return this._data}}function vRt(n,e){const t=new be;return t.add(Lt(i=>{const s=n.read(i);e.set(s,void 0)})),t.add(Lt(i=>{const s=e.read(i);n.set(s,void 0)})),t}var bRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},fV=function(n,e){return function(t,i){e(t,i,n)}},tk,py;let cG=(py=class extends ue{static _createUniqueUri(){return mt.from({scheme:"inline-edits",path:new Date().toString()+String(tk._modelId++)})}constructor(e,t,i,s,r,o,a){super(),this.textModel=e,this._textModelVersionId=t,this._selection=i,this._debounceValue=s,this.languageFeaturesService=r,this._diffProviderFactoryService=o,this._modelService=a,this._forceUpdateExplicitlySignal=vL(this),this._selectedInlineCompletionId=Gt(this,void 0),this._isActive=Gt(this,!1),this._originalModel=vo(()=>this._modelService.createModel("",null,tk._createUniqueUri())).keepObserved(this._store),this._modifiedModel=vo(()=>this._modelService.createModel("",null,tk._createUniqueUri())).keepObserved(this._store),this._pinnedRange=new wRt(this.textModel,this._textModelVersionId),this.isPinned=this._pinnedRange.range.map(l=>!!l),this.userPrompt=Gt(this,void 0),this.inlineEdit=ot(this,l=>{var c,u;return(u=(c=this._inlineEdit.read(l))==null?void 0:c.promiseResult.read(l))==null?void 0:u.data}),this._inlineEdit=ot(this,l=>{const c=this.selectedInlineEdit.read(l);if(!c)return;const u=c.inlineCompletion.range;if(c.inlineCompletion.insertText.trim()==="")return;let h=c.inlineCompletion.insertText.split(/\r\n|\r|\n/);function d(m){var b;const _=((b=m[0].match(/^\s*/))==null?void 0:b[0])??"";return m.map(w=>w.replace(new RegExp("^"+_),""))}h=d(h);let p=this.textModel.getValueInRange(u).split(/\r\n|\r|\n/);p=d(p),this._originalModel.get().setValue(p.join(` +`)),this._modifiedModel.get().setValue(h.join(` +`));const g=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return C8.fromFn(async()=>{const m=await g.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},Vt.None);if(!m.identical)return new gRt(xt.fromRangeInclusive(u),d(h),m.changes)})}),this._fetchStore=this._register(new be),this._inlineEditsFetchResult=JT(this,void 0),this._inlineEdits=Gl({owner:this,equalsFn:e4},l=>{var c;return((c=this._inlineEditsFetchResult.read(l))==null?void 0:c.completions.map(u=>new yRt(u)))??[]}),this._fetchInlineEditsPromise=Pke({owner:this,createEmptyChangeSummary:()=>({inlineCompletionTriggerKind:Hh.Automatic}),handleChange:(l,c)=>(l.didChange(this._forceUpdateExplicitlySignal)&&(c.inlineCompletionTriggerKind=Hh.Explicit),!0)},async(l,c)=>{this._fetchStore.clear(),this._forceUpdateExplicitlySignal.read(l),this._textModelVersionId.read(l);function u(g,m){return m(g)}const h=this._pinnedRange.range.read(l)??u(this._selection.read(l),g=>g.isEmpty()?void 0:g);if(!h){this._inlineEditsFetchResult.set(void 0,void 0),this.userPrompt.set(void 0,void 0);return}const d={triggerKind:c.inlineCompletionTriggerKind,selectedSuggestionInfo:void 0,userPrompt:this.userPrompt.read(l)},f=nz(this._fetchStore);await Uf(200,f);const p=await YDe(this.languageFeaturesService.inlineCompletionsProvider,h,this.textModel,d,f);f.isCancellationRequested||this._inlineEditsFetchResult.set(p,void 0)}),this._filteredInlineEditItems=Gl({owner:this,equalsFn:JF()},l=>this._inlineEdits.read(l)),this.selectedInlineCompletionIndex=ot(this,l=>{const c=this._selectedInlineCompletionId.read(l),u=this._filteredInlineEditItems.read(l),h=this._selectedInlineCompletionId===void 0?-1:u.findIndex(d=>d.semanticId===c);return h===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):h}),this.selectedInlineEdit=ot(this,l=>{const c=this._filteredInlineEditItems.read(l),u=this.selectedInlineCompletionIndex.read(l);return c[u]}),this._register(bL(this._fetchInlineEditsPromise))}async triggerExplicitly(e){Yy(e,t=>{this._isActive.set(!0,t),this._forceUpdateExplicitlySignal.trigger(t)}),await this._fetchInlineEditsPromise.get()}stop(e){Yy(e,t=>{this.userPrompt.set(void 0,t),this._isActive.set(!1,t),this._inlineEditsFetchResult.set(void 0,t),this._pinnedRange.setRange(void 0,t)})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineEditItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){if(e.getModel()!==this.textModel)throw new Li;const t=this.selectedInlineEdit.get();t&&(e.pushUndoStop(),e.executeEdits("inlineSuggestion.accept",[t.inlineCompletion.toSingleTextEdit().toSingleEditOperation()]),this.stop())}},tk=py,py._modelId=0,py);cG=tk=bRt([fV(4,Je),fV(5,GN),fV(6,mn)],cG);class yRt{constructor(e){this.inlineCompletion=e,this.semanticId=this.inlineCompletion.hash()}}class wRt extends ue{constructor(e,t){super(),this._textModel=e,this._versionId=t,this._decorations=Gt(this,[]),this.range=ot(this,i=>{this._versionId.read(i);const s=this._decorations.read(i)[0];return s?this._textModel.getDecorationRange(s)??null:null}),this._register(lt(()=>{this._textModel.deltaDecorations(this._decorations.get(),[])}))}setRange(e,t){this._decorations.set(this._textModel.deltaDecorations(this._decorations.get(),e?[{range:e,options:{description:"trackedRange"}}]:[]),t)}}var CRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},LE=function(n,e){return function(t,i){e(t,i,n)}},uG,gy;let Gg=(gy=class extends ue{static get(e){return e.getContribution(uG.ID)}constructor(e,t,i,s,r,o){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._debounceService=s,this._languageFeaturesService=r,this._configurationService=o,this._enabled=dSt("editor.inlineEdits.enabled",!1,this._configurationService),this._editorObs=ll(this.editor),this._selection=ot(this,a=>this._editorObs.cursorSelection.read(a)??new nt(1,1,1,1)),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineEditsDebounce",{min:50,max:50}),this.model=vo(this,a=>{if(!this._enabled.read(a)||this._editorObs.isReadonly.read(a))return;const l=this._editorObs.model.read(a);return l?this._instantiationService.createInstance(el(cG,a),l,this._editorObs.versionId,this._selection,this._debounceValue):void 0}),this._hadInlineEdit=UN(this,(a,l)=>{var c;return l||((c=this.model.read(a))==null?void 0:c.inlineEdit.read(a))!==void 0}),this._widget=vo(this,a=>{if(this._hadInlineEdit.read(a))return this._instantiationService.createInstance(el(lG,a),this.editor,this.model.map((l,c)=>l==null?void 0:l.inlineEdit.read(c)),SRt(l=>{var c;return((c=this.model.read(l))==null?void 0:c.userPrompt)??Gt("empty","")}))}),this._register(lh(Ex,this._contextKeyService,a=>{var l;return!!((l=this.model.read(a))!=null&&l.inlineEdit.read(a))})),this._register(lh(hRt,this._contextKeyService,a=>{var l;return!!((l=this.model.read(a))!=null&&l.isPinned.read(a))})),this.model.recomputeInitiallyAndOnChange(this._store),this._widget.recomputeInitiallyAndOnChange(this._store)}},uG=gy,gy.ID="editor.contrib.inlineEditsController",gy);Gg=uG=CRt([LE(1,ct),LE(2,bt),LE(3,wc),LE(4,Je),LE(5,Xt)],Gg);function SRt(n){return HN(void 0,e=>n(e).read(e),(e,t)=>{n(void 0).set(e,t)})}function lA(n){return{label:n.value,alias:n.original}}const h5=class h5 extends Xe{constructor(){super({id:h5.ID,...lA(Ct("action.inlineEdits.showNext","Show Next Inline Edit")),precondition:ye.and(H.writable,Ex),kbOpts:{weight:100,primary:606}})}async run(e,t){var s;const i=Gg.get(t);(s=i==null?void 0:i.model.get())==null||s.next()}};h5.ID=uRt;let hG=h5;const d5=class d5 extends Xe{constructor(){super({id:d5.ID,...lA(Ct("action.inlineEdits.showPrevious","Show Previous Inline Edit")),precondition:ye.and(H.writable,Ex),kbOpts:{weight:100,primary:604}})}async run(e,t){var s;const i=Gg.get(t);(s=i==null?void 0:i.model.get())==null||s.previous()}};d5.ID=cRt;let dG=d5;class xRt extends Xe{constructor(){super({id:"editor.action.inlineEdits.trigger",...lA(Ct("action.inlineEdits.trigger","Trigger Inline Edit")),precondition:H.writable})}async run(e,t){const i=Gg.get(t);await Ake(async s=>{var r;await((r=i==null?void 0:i.model.get())==null?void 0:r.triggerExplicitly(s))})}}class LRt extends Xe{constructor(){super({id:lRt,...lA(Ct("action.inlineEdits.accept","Accept Inline Edit")),precondition:Ex,menuOpts:{menuId:et.InlineEditsActions,title:v("inlineEditsActions","Accept Inline Edit"),group:"primary",order:1,icon:Ne.check},kbOpts:{primary:2058,weight:2e4,kbExpr:Ex}})}async run(e,t){var s;t instanceof Ku&&(t=t.getParentEditor());const i=Gg.get(t);i&&((s=i.model.get())==null||s.accept(i.editor),i.editor.focus())}}const f5=class f5 extends Xe{constructor(){super({id:f5.ID,...lA(Ct("action.inlineEdits.hide","Hide Inline Edit")),precondition:Ex,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=Gg.get(t);Un(s=>{var r;(r=i==null?void 0:i.model.get())==null||r.stop(s)})}};f5.ID="editor.action.inlineEdits.hide";let fG=f5;_i(Gg.ID,Gg,3);Ie(xRt);Ie(hG);Ie(dG);Ie(LRt);Ie(fG);const f0={Visible:new $e("parameterHintsVisible",!1),MultipleSignatures:new $e("parameterHintsMultipleSignatures",!1)};async function gNe(n,e,t,i,s){const r=n.ordered(e);for(const o of r)try{const a=await o.provideSignatureHelp(e,t,s,i);if(a)return a}catch(a){ls(a)}}di.registerCommand("_executeSignatureHelpProvider",async(n,...e)=>{const[t,i,s]=e;yi(mt.isUri(t)),yi(se.isIPosition(i)),yi(typeof s=="string"||!s);const r=n.get(Je),o=await n.get(Wa).createModelReference(t);try{const a=await gNe(r.signatureHelpProvider,o.object.textEditorModel,se.lift(i),{triggerKind:Af.Invoke,isRetrigger:!1,triggerCharacter:s},Vt.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{o.dispose()}});var Mm;(function(n){n.Default={type:0};class e{constructor(s,r){this.request=s,this.previouslyActiveHints=r,this.type=2}}n.Pending=e;class t{constructor(s){this.hints=s,this.type=1}}n.Active=t})(Mm||(Mm={}));const p5=class p5 extends ue{constructor(e,t,i=p5.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new oe),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Mm.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new rr),this.triggerChars=new yF,this.retriggerChars=new yF,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new $u(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(s=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(s=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(s=>this.onCursorChange(s))),this._register(this.editor.onDidChangeModelContent(s=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(s=>this.onDidType(s))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=Mm.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const s=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(s),t).catch(Nt)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new Mm.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const s=this._pendingTriggers.reduce(ERt);this._pendingTriggers=[];const r={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const o=this.editor.getModel(),a=this.editor.getPosition();this.state=new Mm.Pending(tr(l=>gNe(this.providers,o,a,r,l)),i);try{const l=await this.state.request;return e!==this.triggerId?(l==null||l.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l==null||l.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new Mm.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=Mm.Default),Nt(l),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const s=i.charCodeAt(0);this.triggerChars.add(s),this.retriggerChars.add(s)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:Af.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:Af.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Af.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};p5.DEFAULT_DELAY=120;let pG=p5;function ERt(n,e){switch(e.triggerKind){case Af.Invoke:return e;case Af.ContentChange:return n;case Af.TriggerCharacter:default:return e}}var kRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},iR=function(n,e){return function(t,i){e(t,i,n)}},gG;const Al=Pe,IRt=_n("parameter-hints-next",Ne.chevronDown,v("parameterHintsNextIcon","Icon for show next parameter hint.")),TRt=_n("parameter-hints-previous",Ne.chevronUp,v("parameterHintsPreviousIcon","Icon for show previous parameter hint."));var my;let mG=(my=class extends ue{constructor(e,t,i,s,r,o){super(),this.editor=e,this.model=t,this.telemetryService=o,this.renderDisposeables=this._register(new be),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new jg({editor:e},r,s)),this.keyVisible=f0.Visible.bindTo(i),this.keyMultipleSignatures=f0.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=Al(".editor-widget.parameter-hints-widget"),t=ke(e,Al(".phwrapper"));t.tabIndex=-1;const i=ke(t,Al(".controls")),s=ke(i,Al(".button"+ft.asCSSSelector(TRt))),r=ke(i,Al(".overloads")),o=ke(i,Al(".button"+ft.asCSSSelector(IRt)));this._register(ge(s,"click",d=>{ci.stop(d),this.previous()})),this._register(ge(o,"click",d=>{ci.stop(d),this.next()}));const a=Al(".body"),l=new ON(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const c=ke(a,Al(".signature")),u=ke(a,Al(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:c,overloads:r,docs:u,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(d=>{this.visible&&this.editor.layoutContentWidget(this)}));const h=()=>{if(!this.domNodes)return;const d=this.editor.getOption(50),f=this.domNodes.element;f.style.fontSize=`${d.fontSize}px`,f.style.lineHeight=`${d.lineHeight/d.fontSize}`,f.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",d.fontFamily),f.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",ta.fontFamily)};h(),this._register(Oe.chain(this.editor.onDidChangeConfiguration.bind(this.editor),d=>d.filter(f=>f.hasChanged(50)))(h)),this._register(this.editor.onDidLayoutChange(d=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var e;(e=this.domNodes)==null||e.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(e=this.domNodes)==null||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){if(this.renderDisposeables.clear(),!this.domNodes)return;const t=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",t),this.keyMultipleSignatures.set(t),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const i=e.signatures[e.activeSignature];if(!i)return;const s=ke(this.domNodes.signature,Al(".code")),r=i.parameters.length>0,o=i.activeParameter??e.activeParameter;if(r)this.renderParameters(s,i,o);else{const c=ke(s,Al("span"));c.textContent=i.label}const a=i.parameters[o];if(a!=null&&a.documentation){const c=Al("span.documentation");if(typeof a.documentation=="string")c.textContent=a.documentation;else{const u=this.renderMarkdownDocs(a.documentation);c.appendChild(u.element)}ke(this.domNodes.docs,Al("p",{},c))}if(i.documentation!==void 0)if(typeof i.documentation=="string")ke(this.domNodes.docs,Al("p",{},i.documentation));else{const c=this.renderMarkdownDocs(i.documentation);ke(this.domNodes.docs,c.element)}const l=this.hasDocs(i,a);if(this.domNodes.signature.classList.toggle("has-docs",l),this.domNodes.docs.classList.toggle("empty",!l),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,a){let c="";const u=i.parameters[o];Array.isArray(u.label)?c=i.label.substring(u.label[0],u.label[1]):c=u.label,u.documentation&&(c+=typeof u.documentation=="string"?`, ${u.documentation}`:`, ${u.documentation.value}`),i.documentation&&(c+=typeof i.documentation=="string"?`, ${i.documentation}`:`, ${i.documentation.value}`),this.announcedLabel!==c&&(yl(v("hint","{0}, hint",c)),this.announcedLabel=c)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=new Nr,i=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var r;(r=this.domNodes)==null||r.scrollbar.scanDomNode()}}));i.element.classList.add("markdown-docs");const s=t.elapsed();return s>300&&this.telemetryService.publicLog2("parameterHints.parseMarkdown",{renderDuration:s}),i}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&i1(t.documentation).length>0||t&&typeof t.documentation=="object"&&i1(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&i1(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&i1(e.documentation.value).length>0)}renderParameters(e,t,i){const[s,r]=this.getParameterLabelOffsets(t,i),o=document.createElement("span");o.textContent=t.label.substring(0,s);const a=document.createElement("span");a.textContent=t.label.substring(s,r),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(r),ke(e,o,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const s=new RegExp(`(\\W|^)${dc(i.label)}(?=\\W|$)`,"g");s.test(e.label);const r=s.lastIndex-i.label.length;return r>=0?[r,s.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return gG.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}},gG=my,my.ID="editor.widget.parameterHintsWidget",my);mG=gG=kRt([iR(2,bt),iR(3,kl),iR(4,Dn),iR(5,Ro)],mG);U("editorHoverWidget.highlightForeground",Uw,v("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var DRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Zpe=function(n,e){return function(t,i){e(t,i,n)}},_G,_y;let kx=(_y=class extends ue{static get(e){return e.getContribution(_G.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new pG(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(s=>{var r;s?(this.widget.value.show(),this.widget.value.render(s)):(r=this.widget.rawValue)==null||r.hide()})),this.widget=new Yh(()=>this._register(t.createInstance(mG,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var e;(e=this.widget.rawValue)==null||e.previous()}next(){var e;(e=this.widget.rawValue)==null||e.next()}trigger(e){this.model.trigger(e,0)}},_G=_y,_y.ID="editor.controller.parameterHints",_y);kx=_G=DRt([Zpe(1,ct),Zpe(2,Je)],kx);class NRt extends Xe{constructor(){super({id:"editor.action.triggerParameterHints",label:v("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:H.hasSignatureHelpProvider,kbOpts:{kbExpr:H.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=kx.get(t);i==null||i.trigger({triggerKind:Af.Invoke})}}_i(kx.ID,kx,2);Ie(NRt);const Ene=175,kne=Gs.bindToContribution(kx.get);Ve(new kne({id:"closeParameterHints",precondition:f0.Visible,handler:n=>n.cancel(),kbOpts:{weight:Ene,kbExpr:H.focus,primary:9,secondary:[1033]}}));Ve(new kne({id:"showPrevParameterHint",precondition:ye.and(f0.Visible,f0.MultipleSignatures),handler:n=>n.previous(),kbOpts:{weight:Ene,kbExpr:H.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));Ve(new kne({id:"showNextParameterHint",precondition:ye.and(f0.Visible,f0.MultipleSignatures),handler:n=>n.next(),kbOpts:{weight:Ene,kbExpr:H.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var ARt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},PRt=function(n,e){return function(t,i){e(t,i,n)}};class RRt{constructor(e){this.instantiationService=e}init(...e){}}function MRt(n,e){return class extends e{constructor(){super(...arguments),this._autorun=void 0}init(...i){this._autorun=Na((s,r)=>{const o=el(n(),s);r.add(this.instantiationService.createInstance(o,...i))})}dispose(){var i;(i=this._autorun)==null||i.dispose()}}}function ORt(n){return E8()?MRt(n,vG):n()}let vG=class extends RRt{constructor(e,t){super(t),this.init(e)}};vG=ARt([PRt(1,ct)],vG);_i(AD.ID,ORt(()=>AD),0);U("editor.placeholder.foreground",Xmt,v("placeholderForeground","Foreground color of the placeholder text in the editor."));var FRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},nR=function(n,e){return function(t,i){e(t,i,n)}};const IL=new $e("renameInputVisible",!1,v("renameInputVisible","Whether the rename input widget is visible"));new $e("renameInputFocused",!1,v("renameInputFocused","Whether the rename input widget is focused"));let bG=class{constructor(e,t,i,s,r,o){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=s,this._logService=o,this.allowEditorOverflow=!0,this._disposables=new be,this._visibleContextKey=IL.bindTo(r),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new Nr,this._inputWithButton=new BRt,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(50)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new Ine(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var e,t,i;((e=this._renameCandidateListView)==null?void 0:e.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((t=this._renameCandidateProvidersCts)==null?void 0:t.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(i=this._renameCandidateListView)==null||i.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){if(!this._domNode)return;const t=e.getColor(pL),i=e.getColor(dEe);this._domNode.style.backgroundColor=String(e.getColor($c)??""),this._domNode.style.boxShadow=t?` 0 0 8px 2px ${t}`:"",this._domNode.style.border=i?`1px solid ${i}`:"",this._domNode.style.color=String(e.getColor(gEe)??"");const s=e.getColor(mEe);this._inputWithButton.domNode.style.backgroundColor=String(e.getColor(Hz)??""),this._inputWithButton.input.style.backgroundColor=String(e.getColor(Hz)??""),this._inputWithButton.domNode.style.borderWidth=s?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=s?"solid":"none",this._inputWithButton.domNode.style.borderColor=(s==null?void 0:s.toString())??"none"}_updateFont(){if(this._domNode===void 0)return;yi(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const e=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(e.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=o_(this.getDomNode().ownerDocument.body),t=ps(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const s=this._editor.getOption(67),{totalHeight:r}=PD.getLayoutInfo({lineHeight:s}),o=this._nPxAvailableBelow>r*6?[2,1]:[1,2];return{position:this._position,preference:o}}beforeRender(){var i,s;const[e,t]=this._acceptKeybindings;return this._label.innerText=v({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",(i=this._keybindingService.lookupKeybinding(e))==null?void 0:i.getLabel(),(s=this._keybindingService.lookupKeybinding(t))==null?void 0:s.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(this._trace("invoking afterRender, position: ",e?"not null":"null"),e===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;yi(this._renameCandidateListView),yi(this._nPxAvailableAbove!==void 0),yi(this._nPxAvailableBelow!==void 0);const t=ig(this._inputWithButton.domNode),i=ig(this._label);let s;e===2?s=this._nPxAvailableBelow:s=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:s-i-t,width:Ja(this._inputWithButton.domNode)})}acceptInput(e){var t;this._trace("invoking acceptInput"),(t=this._currentAcceptInput)==null||t.call(this,e)}cancelInput(e,t){var i;this._trace(`invoking cancelInput, caller: ${t}, _currentCancelInput: ${this._currentAcceptInput?"not undefined":"undefined"}`),(i=this._currentCancelInput)==null||i.call(this,e)}focusNextRenameSuggestion(){var e;(e=this._renameCandidateListView)!=null&&e.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var e;(e=this._renameCandidateListView)!=null&&e.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(e,t,i,s,r){const{start:o,end:a}=this._getSelection(e,t);this._renameCts=r;const l=new be;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,s===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=s,this._requestRenameCandidates(t,!1),l.add(ge(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(t,!0))),l.add(ge(this._inputWithButton.button,Ae.KEY_DOWN,u=>{const h=new Ji(u);(h.equals(3)||h.equals(10))&&(h.stopPropagation(),h.preventDefault(),this._requestRenameCandidates(t,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",i),this._position=new se(e.startLineNumber,e.startColumn),this._currentName=t,this._inputWithButton.input.value=t,this._inputWithButton.input.setAttribute("selectionStart",o.toString()),this._inputWithButton.input.setAttribute("selectionEnd",a.toString()),this._inputWithButton.input.size=Math.max((e.endColumn-e.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),l.add(lt(()=>{this._renameCts=void 0,r.dispose(!0)})),l.add(lt(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),l.add(lt(()=>this._candidates.clear()));const c=new rL;return c.p.finally(()=>{l.dispose(),this._hide()}),this._currentCancelInput=u=>{var h;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(h=this._renameCandidateListView)==null||h.clearCandidates(),c.complete(u),!0},this._currentAcceptInput=u=>{this._trace("invoking _currentAcceptInput"),yi(this._renameCandidateListView!==void 0);const h=this._renameCandidateListView.nCandidates;let d,f;const p=this._renameCandidateListView.focusedCandidate;if(p!==void 0?(this._trace("using new name from renameSuggestion"),d=p,f={k:"renameSuggestion"}):(this._trace("using new name from inputField"),d=this._inputWithButton.input.value,f=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),d===t||d.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),c.complete({newName:d,wantsPreview:i&&u,stats:{source:f,nRenameSuggestions:h,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},l.add(r.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),l.add(this._editor.onDidBlurEditorWidget(()=>{var u;return this.cancelInput(!((u=this._domNode)!=null&&u.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),c.p}_requestRenameCandidates(e,t){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),yi(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new Wn;const i=t?WT.Invoke:WT.Automatic,s=this._requestRenameCandidatesOnce(i,this._renameCandidateProvidersCts.token);if(s.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(s,e,this._renameCts.token)}}_getSelection(e,t){yi(this._editor.hasModel());const i=this._editor.getSelection();let s=0,r=t.length;return!O.isEmpty(i)&&!O.spansMultipleLines(i)&&O.containsRange(e,i)&&(s=Math.max(0,i.startColumn-e.startColumn),r=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:s,end:r}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(e,t,i){const s=(...c)=>this._trace("_updateRenameCandidates",...c);s("start");const r=await LN(Promise.allSettled(e),i);if(this._inputWithButton.setSparkleButton(),r===void 0){s("returning early - received updateRenameCandidates results - undefined");return}const o=r.flatMap(c=>c.status==="fulfilled"&&Nf(c.value)?c.value:[]);s(`received updateRenameCandidates results - total (unfiltered) ${o.length} candidates.`);const a=Vg(o,c=>c.newSymbolName);s(`distinct candidates - ${a.length} candidates.`);const l=a.filter(({newSymbolName:c})=>c.trim().length>0&&c!==this._inputWithButton.input.value&&c!==t&&!this._candidates.has(c));if(s(`valid distinct candidates - ${o.length} candidates.`),l.forEach(c=>this._candidates.add(c.newSymbolName)),l.length<1){s("returning early - no valid distinct candidates");return}s("setting candidates"),this._renameCandidateListView.setCandidates(l),s("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace("RenameWidget",...e)}};bG=FRt([nR(2,Xs),nR(3,Ni),nR(4,bt),nR(5,co)],bG);class Ine{constructor(e,t){this._disposables=new be,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",e.appendChild(this._listContainer),this._listWidget=Ine._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._listWidget.onDidChangeFocus(i=>{i.elements.length===1&&t.onFocusChange(i.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(i=>{i.elements.length===1&&t.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(i=>{this._listWidget.setFocus([])})),this._listWidget.style(O0({listInactiveFocusForeground:NT,listInactiveFocusBackground:AT}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(this._listWidget.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height=`${t}px`,this._listContainer.style.width=`${i}px`,jf(v("renameSuggestionsReceivedAria","Received {0} rename suggestions",e.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}else{if(e[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=PD.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(s=>s.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const s=new class{getTemplateId(o){return"candidate"}getHeight(o){return t}},r=new class{constructor(){this.templateId="candidate"}renderTemplate(o){return new PD(o,i)}renderElement(o,a,l){l.populate(o)}disposeTemplate(o){o.dispose()}};return new yc("NewSymbolNameCandidates",e,s,[r],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class BRt{constructor(){this._onDidInputChange=new oe,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new be}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",v("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=v("generateRenameSuggestionsButton","Generate new name suggestions"),this._buttonCancelHoverText=v("cancelRenameSuggestionsButton","Cancel"),this._buttonHover=_d().setupManagedHover(ua("element"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(ge(this.input,Ae.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(ge(this.input,Ae.KEY_DOWN,e=>{const t=new Ji(e);(t.keyCode===15||t.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(ge(this.input,Ae.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(ge(this.input,Ae.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(ge(this.input,Ae.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return yi(this._inputNode),this._inputNode}get button(){return yi(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){var e;this._buttonState="sparkle",this._sparkleIcon??(this._sparkleIcon=Qy(Ne.sparkle)),kr(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),(e=this._buttonHover)==null||e.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){var e;this._buttonState="stop",this._stopIcon??(this._stopIcon=Qy(Ne.primitiveSquare)),kr(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),(e=this._buttonHover)==null||e.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}}const SI=class SI{constructor(e,t){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${t.lineHeight}px`,this._domNode.style.padding=`${SI._PADDING}px`;const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.width=i.style.height=`${t.lineHeight*.8}px`,this._domNode.appendChild(i),this._icon=Qy(Ne.sparkle),this._icon.style.display="none",i.appendChild(this._icon),this._label=document.createElement("div"),Tr(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){var i;const t=!!((i=e.tags)!=null&&i.includes(Yz.AIGenerated));this._icon.style.display=t?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+SI._PADDING*2}}dispose(){}};SI._PADDING=2;let PD=SI;var WRt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ym=function(n,e){return function(t,i){e(t,i,n)}},yG;class Tne{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const s=this._providers[this._providerRenameIdx];if(!s.resolveRenameLocation)break;const r=await s.resolveRenameLocation(this.model,this.position,e);if(r){if(r.rejectReason){t.push(r.rejectReason);continue}return r}}this._providerRenameIdx=0;const i=this.model.getWordAtPosition(this.position);return i?{range:new O(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join(` +`):void 0}:{range:O.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join(` +`):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,s){const r=this._providers[t];if(!r)return{edits:[],rejectReason:i.join(` +`)};const o=await r.provideRenameEdits(this.model,this.position,e,s);if(o){if(o.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(o.rejectReason),s)}else return this._provideRenameEdits(e,t+1,i.concat(v("no result","No result.")),s);return o}}async function VRt(n,e,t,i){const s=new Tne(e,t,n),r=await s.resolveRenameLocation(Vt.None);return r!=null&&r.rejectReason?{edits:[],rejectReason:r.rejectReason}:s.provideRenameEdits(i,Vt.None)}var vy;let w_=(vy=class{static get(e){return e.getContribution(yG.ID)}constructor(e,t,i,s,r,o,a,l,c){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=s,this._progressService=r,this._logService=o,this._configService=a,this._languageFeaturesService=l,this._telemetryService=c,this._disposableStore=new be,this._cts=new Wn,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(bG,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var p,g;const e=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Wn,!this.editor.hasModel()){e("editor has no model");return}const t=this.editor.getPosition(),i=new Tne(this.editor.getModel(),t,this._languageFeaturesService.renameProvider);if(!i.hasProvider()){e("skeleton has no provider");return}const s=new v_(this.editor,5,void 0,this._cts.token);let r;try{e("resolving rename location");const m=i.resolveRenameLocation(s.token);this._progressService.showWhile(m,250),r=await m,e("resolved rename location")}catch(m){m instanceof Hu?e("resolve rename location cancelled",JSON.stringify(m,null," ")):(e("resolve rename location failed",m instanceof Error?m:JSON.stringify(m,null," ")),(typeof m=="string"||zh(m))&&((p=pl.get(this.editor))==null||p.showMessage(m||v("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),t)));return}finally{s.dispose()}if(!r){e("returning early - no loc");return}if(r.rejectReason){e(`returning early - rejected with reason: ${r.rejectReason}`,r.rejectReason),(g=pl.get(this.editor))==null||g.showMessage(r.rejectReason,t);return}if(s.token.isCancellationRequested){e("returning early - cts1 cancelled");return}const o=new v_(this.editor,5,r.range,this._cts.token),a=this.editor.getModel(),l=this._languageFeaturesService.newSymbolNamesProvider.all(a),c=await Promise.all(l.map(async m=>[m,await m.supportsAutomaticNewSymbolNamesTriggerKind??!1])),u=(m,_)=>{let b=c.slice();return m===WT.Automatic&&(b=b.filter(([w,C])=>C)),b.map(([w])=>w.provideNewSymbolNames(a,r.range,m,_))};e("creating rename input field and awaiting its result");const h=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),d=await this._renameWidget.getInput(r.range,r.text,h,l.length>0?u:void 0,o);if(e("received response from rename input field"),l.length>0&&this._reportTelemetry(l.length,a.getLanguageId(),d),typeof d=="boolean"){e(`returning early - rename input field response - ${d}`),d&&this.editor.focus(),o.dispose();return}this.editor.focus(),e("requesting rename edits");const f=LN(i.provideRenameEdits(d.newName,o.token),o.token).then(async m=>{if(!m){e("returning early - no rename edits result");return}if(!this.editor.hasModel()){e("returning early - no model after rename edits are provided");return}if(m.rejectReason){e(`returning early - rejected with reason: ${m.rejectReason}`),this._notificationService.info(m.rejectReason);return}this.editor.setSelection(O.fromPositions(this.editor.getSelection().getPosition())),e("applying edits"),this._bulkEditService.apply(m,{editor:this.editor,showPreview:d.wantsPreview,label:v("label","Renaming '{0}' to '{1}'",r==null?void 0:r.text,d.newName),code:"undoredo.rename",quotableLabel:v("quotableLabel","Renaming {0} to {1}",r==null?void 0:r.text,d.newName),respectAutoSaveConfig:!0}).then(_=>{e("edits applied"),_.ariaSummary&&yl(v("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",r.text,d.newName,_.ariaSummary))}).catch(_=>{e(`error when applying edits ${JSON.stringify(_,null," ")}`),this._notificationService.error(v("rename.failedApply","Rename failed to apply edits")),this._logService.error(_)})},m=>{e("error when providing rename edits",JSON.stringify(m,null," ")),this._notificationService.error(v("rename.failed","Rename failed to compute edits")),this._logService.error(m)}).finally(()=>{o.dispose()});return e("returning rename operation"),this._progressService.showWhile(f,250),f}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,i){const s=typeof i=="boolean"?{kind:"cancelled",languageId:t,nRenameSuggestionProviders:e}:{kind:"accepted",languageId:t,nRenameSuggestionProviders:e,source:i.stats.source.k,nRenameSuggestions:i.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:i.stats.timeBeforeFirstInputFieldEdit,wantsPreview:i.wantsPreview,nRenameSuggestionsInvocations:i.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:i.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",s)}},yG=vy,vy.ID="editor.contrib.renameController",vy);w_=yG=WRt([ym(1,ct),ym(2,ms),ym(3,YN),ym(4,B_),ym(5,co),ym(6,Aie),ym(7,Je),ym(8,Ro)],w_);class HRt extends Xe{constructor(){super({id:"editor.action.rename",label:v("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ye.and(H.writable,H.hasRenameProvider),kbOpts:{kbExpr:H.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(wi),[s,r]=Array.isArray(t)&&t||[void 0,void 0];return mt.isUri(s)&&se.isIPosition(r)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(o=>{o&&(o.setPosition(r),o.invokeWithinContext(a=>(this.reportTelemetry(a,o),this.run(a,o))))},Nt):super.runCommand(e,t)}run(e,t){const i=e.get(co),s=w_.get(t);return s?(i.trace("[RenameAction] got controller, running..."),s.run()):(i.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}_i(w_.ID,w_,4);Ie(HRt);const Dne=Gs.bindToContribution(w_.get);Ve(new Dne({id:"acceptRenameInput",precondition:IL,handler:n=>n.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:ye.and(H.focus,ye.not("isComposing")),primary:3}}));Ve(new Dne({id:"acceptRenameInputWithPreview",precondition:ye.and(IL,ye.has("config.editor.rename.enablePreview")),handler:n=>n.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:ye.and(H.focus,ye.not("isComposing")),primary:2051}}));Ve(new Dne({id:"cancelRenameInput",precondition:IL,handler:n=>n.cancelRenameInput(),kbOpts:{weight:199,kbExpr:H.focus,primary:9,secondary:[1033]}}));nn(class extends ca{constructor(){super({id:"focusNextRenameSuggestion",title:{...Ct("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:IL,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get(wi).getFocusedCodeEditor();if(!t)return;const i=w_.get(t);i&&i.focusNextRenameSuggestion()}});nn(class extends ca{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...Ct("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:IL,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get(wi).getFocusedCodeEditor();if(!t)return;const i=w_.get(t);i&&i.focusPreviousRenameSuggestion()}});Va("_executeDocumentRenameProvider",function(n,e,t,...i){const[s]=i;yi(typeof s=="string");const{renameProvider:r}=n.get(Je);return VRt(r,e,t,s)});Va("_executePrepareRename",async function(n,e,t){const{renameProvider:i}=n.get(Je),r=await new Tne(e,t,i).resolveRenameLocation(Vt.None);if(r!=null&&r.rejectReason)throw new Error(r.rejectReason);return r});Vn.as(Qu.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:v("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var $Rt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Qpe=function(n,e){return function(t,i){e(t,i,n)}},gS;let E2=(gS=class extends ue{constructor(e,t,i){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(s=>{var o;const r=(o=this.editor.getModel())==null?void 0:o.getLanguageId();r&&s.affects(r)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(s=>{this.options&&!s.hasChanged(73)||(this.options=this.createOptions(e.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(s=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(s=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new ji(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const i=this.languageConfigurationService.getLanguageConfiguration(t).comments,s=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!i&&!(s!=null&&s.markers)))return{foldingRules:s,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){var i,s;if(!this.editor.hasModel()||!((i=this.options)!=null&&i.findMarkSectionHeaders)&&!((s=this.options)!=null&&s.findRegionSectionHeaders))return;const e=this.editor.getModel();if(e.isDisposed()||e.isTooLargeForSyncing())return;const t=e.getVersionId();this.editorWorkerService.findSectionHeaders(e.uri,this.options).then(r=>{e.isDisposed()||e.getVersionId()!==t||this.updateDecorations(r)})}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter(r=>{if(!r.shouldBeInComments)return!0;const o=t.validateRange(r.range),a=t.tokenization.getLineTokens(o.startLineNumber),l=a.findTokenIndexAtOffset(o.startColumn-1),c=a.getStandardTokenType(l);return a.getLanguageId(l)===t.getLanguageId()&&c===1}));const i=Object.values(this.currentOccurrences).map(r=>r.decorationId),s=e.map(r=>zRt(r));this.editor.changeDecorations(r=>{const o=r.deltaDecorations(i,s);this.currentOccurrences={};for(let a=0,l=o.length;a<l;a++){const c={sectionHeader:e[a],decorationId:o[a]};this.currentOccurrences[c.decorationId]=c}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}},gS.ID="editor.sectionHeaderDetector",gS);E2=$Rt([Qpe(1,ln),Qpe(2,lu)],E2);function zRt(n){return{range:n.range,options:At.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:n.hasSeparatorLine?2:1,sectionHeaderText:n.text}})}}_i(E2.ID,E2,1);class iI{static create(e,t){return new iI(e,new k2(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e&&new O(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[s,r,o]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new iI(this._startLineNumber,s),new iI(this._startLineNumber+o,r)]}applyEdit(e,t){const[i,s,r]=d_(t);this.acceptEdit(e,i,s,r,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,s,r){this._acceptDeleteRange(e),this._acceptInsertText(new se(e.startLineNumber,e.startColumn),t,i,s,r),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const r=i-t;this._startLineNumber-=r;return}const s=this._tokens.getMaxDeltaLine();if(!(t>=s+1)){if(t<0&&i>=s+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const r=-t;this._startLineNumber-=r,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,s,r){if(t===0&&i===0)return;const o=e.lineNumber-this._startLineNumber;if(o<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();o>=a+1||this._tokens.acceptInsertText(o,e.column-1,t,i,s,r)}}class k2{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;i<this._tokenCount;i++)t.push(`(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);return`[${t.join(",")}]`}getMaxDeltaLine(){const e=this._getTokenCount();return e===0?-1:this._getDeltaLine(e-1)}getRange(){const e=this._getTokenCount();if(e===0)return null;const t=this._getStartCharacter(0),i=this._getDeltaLine(e-1),s=this._getEndCharacter(e-1);return new O(0,t+1,i,s+1)}_getTokenCount(){return this._tokenCount}_getDeltaLine(e){return this._tokens[4*e]}_getStartCharacter(e){return this._tokens[4*e+1]}_getEndCharacter(e){return this._tokens[4*e+2]}isEmpty(){return this._getTokenCount()===0}getLineTokens(e){let t=0,i=this._getTokenCount()-1;for(;t<i;){const s=t+Math.floor((i-t)/2),r=this._getDeltaLine(s);if(r<e)t=s+1;else if(r>e)i=s-1;else{let o=s;for(;o>t&&this._getDeltaLine(o-1)===e;)o--;let a=s;for(;a<i&&this._getDeltaLine(a+1)===e;)a++;return new Jpe(this._tokens.subarray(4*o,4*a+4))}}return this._getDeltaLine(t)===e?new Jpe(this._tokens.subarray(4*t,4*t+4)):null}clear(){this._tokenCount=0}removeTokens(e,t,i,s){const r=this._tokens,o=this._tokenCount;let a=0,l=!1,c=0;for(let u=0;u<o;u++){const h=4*u,d=r[h],f=r[h+1],p=r[h+2],g=r[h+3];if((d>e||d===e&&p>=t)&&(d<i||d===i&&f<=s))l=!0;else{if(a===0&&(c=d),l){const m=4*a;r[m]=d-c,r[m+1]=f,r[m+2]=p,r[m+3]=g}a++}}return this._tokenCount=a,c}split(e,t,i,s){const r=this._tokens,o=this._tokenCount,a=[],l=[];let c=a,u=0,h=0;for(let d=0;d<o;d++){const f=4*d,p=r[f],g=r[f+1],m=r[f+2],_=r[f+3];if(p>e||p===e&&m>=t){if(p<i||p===i&&g<=s)continue;c!==l&&(c=l,u=0,h=p)}c[u++]=p-h,c[u++]=g,c[u++]=m,c[u++]=_}return[new k2(new Uint32Array(a)),new k2(new Uint32Array(l)),h]}acceptDeleteRange(e,t,i,s,r){const o=this._tokens,a=this._tokenCount,l=s-t;let c=0,u=!1;for(let h=0;h<a;h++){const d=4*h;let f=o[d],p=o[d+1],g=o[d+2];const m=o[d+3];if(f<t||f===t&&g<=i){c++;continue}else if(f===t&&p<i)f===s&&g>r?g-=r-i:g=i;else if(f===t&&p===i)if(f===s&&g>r)g-=r-i;else{u=!0;continue}else if(f<s||f===s&&p<r)if(f===s&&g>r)f=t,p=i,g=p+(g-r);else{u=!0;continue}else if(f>s){if(l===0&&!u){c=a;break}f-=l}else if(f===s&&p>=r)e&&f===0&&(p+=e,g+=e),f-=l,p-=r-i,g-=r-i;else throw new Error("Not possible!");const _=4*c;o[_]=f,o[_+1]=p,o[_+2]=g,o[_+3]=m,c++}this._tokenCount=c}acceptInsertText(e,t,i,s,r,o){const a=i===0&&s===1&&(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122),l=this._tokens,c=this._tokenCount;for(let u=0;u<c;u++){const h=4*u;let d=l[h],f=l[h+1],p=l[h+2];if(!(d<e||d===e&&p<t)){if(d===e&&p===t)if(a)p+=1;else continue;else if(d===e&&f<t&&t<p)i===0?p+=s:p=t;else{if(d===e&&f===t&&a)continue;if(d===e)if(d+=i,i===0)f+=s,p+=s;else{const g=p-f;f=r+(f-t),p=f+g}else d+=i}l[h]=d,l[h+1]=f,l[h+2]=p}}}}class Jpe{constructor(e){this._tokens=e}getCount(){return this._tokens.length/4}getStartCharacter(e){return this._tokens[4*e+1]}getEndCharacter(e){return this._tokens[4*e+2]}getMetadata(e){return this._tokens[4*e+3]}}var URt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},pV=function(n,e){return function(t,i){e(t,i,n)}};let wG=class{constructor(e,t,i,s){this._legend=e,this._themeService=t,this._languageService=i,this._logService=s,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new CG}getMetadata(e,t,i){const s=this._languageService.languageIdCodec.encodeLanguageId(i),r=this._hashTable.get(e,t,s);let o;if(r)o=r.metadata;else{let a=this._legend.tokenTypes[e];const l=[];if(a){let c=t;for(let h=0;c>0&&h<this._legend.tokenModifiers.length;h++)c&1&&l.push(this._legend.tokenModifiers[h]),c=c>>1;const u=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);if(typeof u>"u")o=2147483647;else{if(o=0,typeof u.italic<"u"){const h=(u.italic?1:0)<<11;o|=h|1}if(typeof u.bold<"u"){const h=(u.bold?2:0)<<11;o|=h|2}if(typeof u.underline<"u"){const h=(u.underline?4:0)<<11;o|=h|4}if(typeof u.strikethrough<"u"){const h=(u.strikethrough?8:0)<<11;o|=h|8}if(u.foreground){const h=u.foreground<<15;o|=h|16}o===0&&(o=2147483647)}}else o=2147483647,a="not-in-legend";this._hashTable.add(e,t,s,o)}return o}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,s,r){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${s} is outside the previous data (length ${r}).`))}};wG=URt([pV(1,Xs),pV(2,Dn),pV(3,co)],wG);function mNe(n,e,t){const i=n.data,s=n.data.length/5|0,r=Math.max(Math.ceil(s/1024),400),o=[];let a=0,l=1,c=0;for(;a<s;){const u=a;let h=Math.min(u+r,s);if(h<s){let b=h;for(;b-1>u&&i[5*b]===0;)b--;if(b-1===u){let w=h;for(;w+1<s&&i[5*w]===0;)w++;h=w}else h=b}let d=new Uint32Array((h-u)*4),f=0,p=0,g=0,m=0;for(;a<h;){const b=5*a,w=i[b],C=i[b+1],S=l+w|0,x=w===0?c+C|0:C,k=i[b+2],L=x+k|0,E=i[b+3],A=i[b+4];if(L<=x)e.warnInvalidLengthSemanticTokens(S,x+1);else if(g===S&&m>x)e.warnOverlappingSemanticTokens(S,x+1);else{const I=e.getMetadata(E,A,t);I!==2147483647&&(p===0&&(p=S),d[f]=S-p,d[f+1]=x,d[f+2]=L,d[f+3]=I,f+=4,g=S,m=L)}l=S,c=x,a++}f!==d.length&&(d=d.subarray(0,f));const _=iI.create(p,d);o.push(_)}return o}class jRt{constructor(e,t,i,s){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=s,this.next=null}}const Rp=class Rp{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Rp._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Rp._SIZES.length?2/3*this._currentLength:0),this._elements=[],Rp._nullOutEntries(this._elements,this._currentLength)}static _nullOutEntries(e,t){for(let i=0;i<t;i++)e[i]=null}_hash2(e,t){return(e<<5)-e+t|0}_hashFunc(e,t,i){return this._hash2(this._hash2(e,t),i)%this._currentLength}get(e,t,i){const s=this._hashFunc(e,t,i);let r=this._elements[s];for(;r;){if(r.tokenTypeIndex===e&&r.tokenModifierSet===t&&r.languageId===i)return r;r=r.next}return null}add(e,t,i,s){if(this._elementsCount++,this._growCount!==0&&this._elementsCount>=this._growCount){const r=this._elements;this._currentLengthIndex++,this._currentLength=Rp._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Rp._SIZES.length?2/3*this._currentLength:0),this._elements=[],Rp._nullOutEntries(this._elements,this._currentLength);for(const o of r){let a=o;for(;a;){const l=a.next;a.next=null,this._add(a),a=l}}}this._add(new jRt(e,t,i,s))}_add(e){const t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}};Rp._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143];let CG=Rp;function qRt(n){for(let e=0,t=n.length;e<t;e+=4){const i=n[e+0],s=n[e+1],r=n[e+2],o=n[e+3];n[e+0]=o,n[e+1]=r,n[e+2]=s,n[e+3]=i}}function KRt(n){const e=new Uint8Array(n.buffer,n.byteOffset,n.length*4);return Exe()||qRt(e),YB.wrap(e)}function _Ne(n){const e=new Uint32Array(GRt(n));let t=0;if(e[t++]=n.id,n.type==="full")e[t++]=1,e[t++]=n.data.length,e.set(n.data,t),t+=n.data.length;else{e[t++]=2,e[t++]=n.deltas.length;for(const i of n.deltas)e[t++]=i.start,e[t++]=i.deleteCount,i.data?(e[t++]=i.data.length,e.set(i.data,t),t+=i.data.length):e[t++]=0}return KRt(e)}function GRt(n){let e=0;if(e+=2,n.type==="full")e+=1+n.data.length;else{e+=1,e+=3*n.deltas.length;for(const t of n.deltas)t.data&&(e+=t.data.length)}return e}function J8(n){return n&&!!n.data}function vNe(n){return n&&Array.isArray(n.edits)}class XRt{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function bNe(n,e){return n.has(e)}function YRt(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function yNe(n,e,t,i,s){const r=YRt(n,e),o=await Promise.all(r.map(async a=>{let l,c=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,s)}catch(u){c=u,l=null}return(!l||!J8(l)&&!vNe(l))&&(l=null),new XRt(a,l,c)}));for(const a of o){if(a.error)throw a.error;if(a.tokens)return a}return o.length>0?o[0]:null}function ZRt(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:null}class QRt{constructor(e,t){this.provider=e,this.tokens=t}}function JRt(n,e){return n.has(e)}function wNe(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function Nne(n,e,t,i){const s=wNe(n,e),r=await Promise.all(s.map(async o=>{let a;try{a=await o.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){ls(l),a=null}return(!a||!J8(a))&&(a=null),new QRt(o,a)}));for(const o of r)if(o.tokens)return o;return r.length>0?r[0]:null}di.registerCommand("_provideDocumentSemanticTokensLegend",async(n,...e)=>{const[t]=e;yi(t instanceof mt);const i=n.get(mn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Je),r=ZRt(s,i);return r?r[0].getLegend():n.get(an).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)});di.registerCommand("_provideDocumentSemanticTokens",async(n,...e)=>{const[t]=e;yi(t instanceof mt);const i=n.get(mn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Je);if(!bNe(s,i))return n.get(an).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const r=await yNe(s,i,null,null,Vt.None);if(!r)return;const{provider:o,tokens:a}=r;if(!a||!J8(a))return;const l=_Ne({id:0,type:"full",data:a.data});return a.resultId&&o.releaseDocumentSemanticTokens(a.resultId),l});di.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(n,...e)=>{const[t,i]=e;yi(t instanceof mt);const s=n.get(mn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:r}=n.get(Je),o=wNe(r,s);if(o.length===0)return;if(o.length===1)return o[0].getLegend();if(!i||!O.isIRange(i))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),o[0].getLegend();const a=await Nne(r,s,O.lift(i),Vt.None);if(a)return a.provider.getLegend()});di.registerCommand("_provideDocumentRangeSemanticTokens",async(n,...e)=>{const[t,i]=e;yi(t instanceof mt),yi(O.isIRange(i));const s=n.get(mn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:r}=n.get(Je),o=await Nne(r,s,O.lift(i),Vt.None);if(!(!o||!o.tokens))return _Ne({id:0,type:"full",data:o.tokens.data})});const e9=ri("semanticTokensStylingService"),Ane="editor.semanticHighlighting";function OM(n,e,t){var s;const i=(s=t.getValue(Ane,{overrideIdentifier:n.getLanguageId(),resource:n.uri}))==null?void 0:s.enabled;return typeof i=="boolean"?i:e.getColorTheme().semanticHighlighting}var CNe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ef=function(n,e){return function(t,i){e(t,i,n)}},Dm;let SG=class extends ue{constructor(e,t,i,s,r,o){super(),this._watchers=Object.create(null);const a=u=>{this._watchers[u.uri.toString()]=new xG(u,e,i,r,o)},l=(u,h)=>{h.dispose(),delete this._watchers[u.uri.toString()]},c=()=>{for(const u of t.getModels()){const h=this._watchers[u.uri.toString()];OM(u,i,s)?h||a(u):h&&l(u,h)}};t.getModels().forEach(u=>{OM(u,i,s)&&a(u)}),this._register(t.onModelAdded(u=>{OM(u,i,s)&&a(u)})),this._register(t.onModelRemoved(u=>{const h=this._watchers[u.uri.toString()];h&&l(u,h)})),this._register(s.onDidChangeConfiguration(u=>{u.affectsConfiguration(Ane)&&c()})),this._register(i.onDidColorThemeChange(c))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};SG=CNe([ef(0,e9),ef(1,mn),ef(2,Xs),ef(3,Xt),ef(4,wc),ef(5,Je)],SG);var q1;let xG=(q1=class extends ue{constructor(e,t,i,s,r){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=r.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:Dm.REQUEST_MIN_DELAY,max:Dm.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new ji(()=>this._fetchDocumentSemanticTokensNow(),Dm.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const o=()=>{Yi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange=="function"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};o(),this._register(this._provider.onDidChange(()=>{o(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),Yi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!bNe(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new Wn,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,s=yNe(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const r=[],o=this._model.onDidChangeContent(l=>{r.push(l)}),a=new Nr(!1);s.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,o.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,r);else{const{provider:c,tokens:u}=l,h=this._semanticTokensStylingService.getStyling(c);this._setDocumentSemanticTokens(c,u||null,h,r)}},l=>{l&&(ou(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||Nt(l),this._currentDocumentRequestCancellationTokenSource=null,o.dispose(),(r.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,s,r){r=Math.min(r,i.length-s,e.length-t);for(let o=0;o<r;o++)i[s+o]=e[t+o]}_setDocumentSemanticTokens(e,t,i,s){const r=this._currentDocumentResponse,o=()=>{(s.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),o();return}if(vNe(t)){if(!r){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:r.data};else{let a=0;for(const d of t.edits)a+=(d.data?d.data.length:0)-d.deleteCount;const l=r.data,c=new Uint32Array(l.length+a);let u=l.length,h=c.length;for(let d=t.edits.length-1;d>=0;d--){const f=t.edits[d];if(f.start>l.length){i.warnInvalidEditStart(r.resultId,t.resultId,d,f.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const p=u-(f.start+f.deleteCount);p>0&&(Dm._copy(l,u-p,c,h-p,p),h-=p),f.data&&(Dm._copy(f.data,0,c,h-f.data.length,f.data.length),h-=f.data.length),u=f.start}u>0&&Dm._copy(l,0,c,0,u),t={resultId:t.resultId,data:c}}}if(J8(t)){this._currentDocumentResponse=new eMt(e,t.resultId,t.data);const a=mNe(t,i,this._model.getLanguageId());if(s.length>0)for(const l of s)for(const c of a)for(const u of l.changes)c.applyEdit(u.range,u.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);o()}},Dm=q1,q1.REQUEST_MIN_DELAY=300,q1.REQUEST_MAX_DELAY=2e3,q1);xG=Dm=CNe([ef(1,e9),ef(2,Xs),ef(3,wc),ef(4,Je)],xG);class eMt{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}tA(SG);var tMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},EE=function(n,e){return function(t,i){e(t,i,n)}},mS;let I2=(mS=class extends ue{constructor(e,t,i,s,r,o){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=s,this._editor=e,this._provider=o.documentRangeSemanticTokensProvider,this._debounceInformation=r.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new ji(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(l=>{this._cancelAll(),a()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration(Ane)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;t<i;t++)if(this._outstandingRequests[t]===e){this._outstandingRequests.splice(t,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!OM(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!JRt(this._provider,e)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map(i=>this._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),s=tr(o=>Promise.resolve(Nne(this._provider,e,t,o))),r=new Nr(!1);return s.then(o=>{if(this._debounceInformation.update(e,r.elapsed()),!o||!o.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=o,c=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,mNe(l,c,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(s),()=>this._removeOutstandingRequest(s)),s}},mS.ID="editor.contrib.viewportSemanticTokens",mS);I2=tMt([EE(1,e9),EE(2,Xs),EE(3,Xt),EE(4,wc),EE(5,Je)],I2);_i(I2.ID,I2,1);class iMt{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const s of t){const r=[];i.push(r),this.selectSubwords&&this._addInWordRanges(r,e,s),this._addWordRanges(r,e,s),this._addWhitespaceLine(r,e,s),r.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const s=t.getWordAtPosition(i);if(!s)return;const{word:r,startColumn:o}=s,a=i.column-o;let l=a,c=a,u=0;for(;l>=0;l--){const h=r.charCodeAt(l);if(l!==a&&(h===95||h===45))break;if(n1(h)&&Yd(u))break;u=h}for(l+=1;c<r.length;c++){const h=r.charCodeAt(c);if(Yd(h)&&n1(u))break;if(h===95||h===45)break;u=h}l<c&&e.push({range:new O(i.lineNumber,o+l,i.lineNumber,o+c)})}_addWordRanges(e,t,i){const s=t.getWordAtPosition(i);s&&e.push({range:new O(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new O(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var nMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sMt=function(n,e){return function(t,i){e(t,i,n)}},LG;class Pne{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new Pne(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}var by;let RD=(by=class{static get(e){return e.getContribution(LG.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;(e=this._selectionListener)==null||e.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await xNe(this._languageFeaturesService.selectionRangeProvider,i,t.map(r=>r.getPosition()),this._editor.getOption(114),Vt.None).then(r=>{var o;if(!(!so(r)||r.length!==t.length)&&!(!this._editor.hasModel()||!In(this._editor.getSelections(),t,(a,l)=>a.equalsSelection(l)))){for(let a=0;a<r.length;a++)r[a]=r[a].filter(l=>l.containsPosition(t[a].getStartPosition())&&l.containsPosition(t[a].getEndPosition())),r[a].unshift(t[a]);this._state=r.map(a=>new Pne(0,a)),(o=this._selectionListener)==null||o.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var a;this._ignoreSelection||((a=this._selectionListener)==null||a.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(r=>r.mov(e));const s=this._state.map(r=>nt.fromPositions(r.ranges[r.index].getStartPosition(),r.ranges[r.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}},LG=by,by.ID="editor.contrib.smartSelectController",by);RD=LG=nMt([sMt(1,Je)],RD);class SNe extends Xe{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=RD.get(t);i&&await i.run(this._forward)}}class rMt extends SNe{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:v("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"1_basic",title:v({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}}di.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class oMt extends SNe{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:v("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:H.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:et.MenubarSelectionMenu,group:"1_basic",title:v({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}}_i(RD.ID,RD,4);Ie(rMt);Ie(oMt);async function xNe(n,e,t,i,s){const r=n.all(e).concat(new iMt(i.selectSubwords));r.length===1&&r.unshift(new d2);const o=[],a=[];for(const l of r)o.push(Promise.resolve(l.provideSelectionRanges(e,t,s)).then(c=>{if(so(c)&&c.length===t.length)for(let u=0;u<t.length;u++){a[u]||(a[u]=[]);for(const h of c[u])O.isIRange(h.range)&&O.containsPosition(h.range,t[u])&&a[u].push(O.lift(h.range))}},ls));return await Promise.all(o),a.map(l=>{if(l.length===0)return[];l.sort((d,f)=>se.isBefore(d.getStartPosition(),f.getStartPosition())?1:se.isBefore(f.getStartPosition(),d.getStartPosition())||se.isBefore(d.getEndPosition(),f.getEndPosition())?-1:se.isBefore(f.getEndPosition(),d.getEndPosition())?1:0);const c=[];let u;for(const d of l)(!u||O.containsRange(d,u)&&!O.equalsRange(d,u))&&(c.push(d),u=d);if(!i.selectLeadingAndTrailingWhitespace)return c;const h=[c[0]];for(let d=1;d<c.length;d++){const f=c[d-1],p=c[d];if(p.startLineNumber!==f.startLineNumber||p.endLineNumber!==f.endLineNumber){const g=new O(f.startLineNumber,e.getLineFirstNonWhitespaceColumn(f.startLineNumber),f.endLineNumber,e.getLineLastNonWhitespaceColumn(f.endLineNumber));g.containsRange(f)&&!g.equalsRange(f)&&p.containsRange(g)&&!p.equalsRange(g)&&h.push(g);const m=new O(f.startLineNumber,1,f.endLineNumber,e.getLineMaxColumn(f.endLineNumber));m.containsRange(f)&&!m.equalsRange(g)&&p.containsRange(m)&&!p.equalsRange(m)&&h.push(m)}h.push(p)}return h})}di.registerCommand("_executeSelectionRangeProvider",async function(n,...e){const[t,i]=e;yi(mt.isUri(t));const s=n.get(Je).selectionRangeProvider,r=await n.get(Wa).createModelReference(t);try{return xNe(s,r.object.textEditorModel,i,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Vt.None)}finally{r.dispose()}});const aMt=Object.freeze({View:Ct("view","View"),Help:Ct("help","Help"),Test:Ct("test","Test"),File:Ct("file","File"),Preferences:Ct("preferences","Preferences"),Developer:Ct({key:"developer",comment:["A developer on Code itself or someone diagnosing issues in Code"]},"Developer")});class nI{constructor(e,t,i,s=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=s}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&In(this.startLineNumbers,e.startLineNumbers)&&In(this.endLineNumbers,e.endLineNumbers)}static get Empty(){return new nI([],[],0)}}const ege=tm("stickyScrollViewLayer",{createHTML:n=>n}),gV="data-sticky-line-index",tge="data-sticky-is-line",lMt="data-sticky-is-line-number",ige="data-sticky-is-folding-icon";class cMt extends ue{constructor(e){super(),this._editor=e,this._foldingIconStore=new be,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",e instanceof Ku),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(116)&&t(),i.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i){if(i===void 0&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;const s=this._isWidgetHeightZero(e),r=s?void 0:e,o=s?0:this._findLineToRebuildWidgetFrom(e,i);this._renderRootNode(r,t,o),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;const t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const i=[...e.startLineNumbers];e.showEndForLine!==null&&(i[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];return t===0}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(t!==void 0)return t;const i=this._previousState,s=e.startLineNumbers.findIndex(r=>!i.startLineNumbers.includes(r));return s===-1?0:s}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;t<this._renderedStickyLines.length;t++){const i=this._renderedStickyLines[t];i.lineNumberDomNode.remove(),i.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,e),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${e?.5:0}s`)}_setFoldingIconsVisibility(e){for(const t of this._renderedStickyLines){const i=t.foldingIcon;i&&i.setVisible(e?!0:i.isCollapsed)}}async _renderRootNode(e,t,i){if(this._clearStickyLinesFromLine(i),!e)return;for(const a of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(a);const s=this._editor.getLayoutInfo(),r=this._lineNumbers.slice(i);for(const[a,l]of r.entries()){const c=this._renderChildNode(a+i,l,t,s);c&&(this._linesDomNode.appendChild(c.lineDomNode),this._lineNumbersDomNode.appendChild(c.lineNumberDomNode),this._renderedStickyLines.push(c))}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const o=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${o}px`,this._linesDomNodeScrollable.style.height=`${o}px`,this._rootDomNode.style.height=`${o}px`,this._rootDomNode.style.marginLeft="0px",this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(a=>a.scrollWidth))+s.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)==="mouseover"&&(this._foldingIconStore.add(ge(this._lineNumbersDomNode,Ae.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(ge(this._lineNumbersDomNode,Ae.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,s){const r=this._editor._getViewModel();if(!r)return;const o=r.coordinatesConverter.convertModelPositionToViewPosition(new se(t,1)).lineNumber,a=r.getViewLineRenderingData(o),l=this._editor.getOption(68);let c;try{c=Xo.filter(a.inlineDecorations,o,a.minColumn,a.maxColumn)}catch{c=[]}const u=new P_(!0,!0,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,0,a.tokens,c,a.tabSize,a.startVisibleColumn,1,1,1,500,"none",!0,!0,null),h=new uL(2e3),d=MN(u,h);let f;ege?f=ege.createHTML(h.build()):f=h.build();const p=document.createElement("span");p.setAttribute(gV,String(e)),p.setAttribute(tge,""),p.setAttribute("role","listitem"),p.tabIndex=0,p.className="sticky-line-content",p.classList.add(`stickyLine${t}`),p.style.lineHeight=`${this._lineHeight}px`,p.innerHTML=f;const g=document.createElement("span");g.setAttribute(gV,String(e)),g.setAttribute(lMt,""),g.className="sticky-line-number",g.style.lineHeight=`${this._lineHeight}px`;const m=s.contentLeft;g.style.width=`${m}px`;const _=document.createElement("span");l.renderType===1||l.renderType===3&&t%10===0?_.innerText=t.toString():l.renderType===2&&(_.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),_.className="sticky-line-number-inner",_.style.lineHeight=`${this._lineHeight}px`,_.style.width=`${s.lineNumbersWidth}px`,_.style.paddingLeft=`${s.lineNumbersLeft}px`,g.appendChild(_);const b=this._renderFoldingIconForLine(i,t);b&&g.appendChild(b.domNode),this._editor.applyFontInfo(p),this._editor.applyFontInfo(_),g.style.lineHeight=`${this._lineHeight}px`,p.style.lineHeight=`${this._lineHeight}px`,g.style.height=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`;const w=new uMt(e,t,p,g,b,d.characterMapping,p.scrollWidth);return this._updateTopAndZIndexOfStickyLine(w)}_updateTopAndZIndexOfStickyLine(e){var u;const t=e.index,i=e.lineDomNode,s=e.lineNumberDomNode,r=t===this._lineNumbers.length-1,o="0",a="1";i.style.zIndex=r?o:a,s.style.zIndex=r?o:a;const l=`${t*this._lineHeight+this._lastLineRelativePosition+((u=e.foldingIcon)!=null&&u.isCollapsed?1:0)}px`,c=`${t*this._lineHeight}px`;return i.style.top=r?l:c,s.style.top=r?l:c,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(111);if(!e||i==="never")return;const s=e.regions,r=s.findRange(t),o=s.getStartLineNumber(r);if(!(t===o))return;const l=s.isCollapsed(r),c=new hMt(l,o,s.getEndLineNumber(r),this._lineHeight);return c.setVisible(this._isOnGlyphMargin?!0:l||i==="always"),c.domNode.setAttribute(ige,""),c}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=fte(t.characterMapping,e,0);return new se(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t;return((t=this._getRenderedStickyLineFromChildDomNode(e))==null?void 0:t.lineNumber)??null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,gV);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,tge)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,ige)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class uMt{constructor(e,t,i,s,r,o,a){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=s,this.foldingIcon=r,this.characterMapping=o,this.scrollWidth=a}}class hMt{constructor(e,t,i,s){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=s,this.domNode=document.createElement("div"),this.domNode.style.width=`${s}px`,this.domNode.style.height=`${s}px`,this.domNode.className=ft.asClassName(e?t2:e2)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class sI{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class T2{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class LNe{constructor(e,t,i,s){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=s}}var t9=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},MD=function(n,e){return function(t,i){e(t,i,n)}},rI;(function(n){n.OUTLINE_MODEL="outlineModel",n.FOLDING_PROVIDER_MODEL="foldingProviderModel",n.INDENTATION_MODEL="indentationModel"})(rI||(rI={}));var p1;(function(n){n[n.VALID=0]="VALID",n[n.INVALID=1]="INVALID",n[n.CANCELED=2]="CANCELED"})(p1||(p1={}));let EG=class extends ue{constructor(e,t,i,s){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new $u(300)),this._updateOperation=this._register(new be),this._editor.getOption(116).defaultModel){case rI.OUTLINE_MODEL:this._modelProviders.push(new kG(this._editor,s));case rI.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new TG(this._editor,t,s));case rI.INDENTATION_MODEL:this._modelProviders.push(new IG(this._editor,i));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const t of this._modelProviders){const{statusPromise:i,modelPromise:s}=t.computeStickyModel(e);this._modelPromise=s;const r=await i;if(this._modelPromise!==s)return null;switch(r){case p1.CANCELED:return this._updateOperation.clear(),null;case p1.VALID:return t.stickyModel}}return null}).catch(t=>(Nt(t),null))}};EG=t9([MD(2,ct),MD(3,Je)],EG);class ENe extends ue{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,p1.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=tr(i=>this.createModelFromProvider(i));return{statusPromise:t.then(i=>this.isModelValid(i)?e.isCancellationRequested?p1.CANCELED:(this._stickyModel=this.createStickyModel(e,i),p1.VALID):this._invalid()).then(void 0,i=>(Nt(i),p1.CANCELED)),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let kG=class extends ENe{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Vp.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){var o;const{stickyOutlineElement:i,providerID:s}=this._stickyModelFromOutlineModel(t,(o=this._stickyModel)==null?void 0:o.outlineProviderId),r=this._editor.getModel();return new LNe(r.uri,r.getVersionId(),i,s)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(hi.first(e.children.values())instanceof qDe){const a=hi.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l="",c=-1,u;for(const[h,d]of e.children.entries()){const f=this._findSumOfRangesOfGroup(d);f>c&&(u=d,c=f,l=d.id)}t=l,i=u.children}}else i=e.children;const s=[],r=Array.from(i.values()).sort((a,l)=>{const c=new sI(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),u=new sI(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(c,u)});for(const a of r)s.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new T2(void 0,s,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const r of e.children.values())if(r.symbol.selectionRange.startLineNumber!==r.symbol.range.endLineNumber)if(r.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(r,r.symbol.selectionRange.startLineNumber));else for(const o of r.children.values())i.push(this._stickyModelFromOutlineElement(o,r.symbol.selectionRange.startLineNumber));i.sort((r,o)=>this._comparator(r.range,o.range));const s=new sI(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new T2(s,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof mK?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};kG=t9([MD(1,Je)],kG);class kNe extends ENe{constructor(e){super(e),this._foldingLimitReporter=new VDe(e)}createStickyModel(e,t){const i=this._fromFoldingRegions(t),s=this._editor.getModel();return new LNe(s.uri,s.getVersionId(),i,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],s=new T2(void 0,[],void 0);for(let r=0;r<t;r++){const o=e.getParentIndex(r);let a;o!==-1?a=i[o]:a=s;const l=new T2(new sI(e.getStartLineNumber(r),e.getEndLineNumber(r)+1),[],a);a.children.push(l),i.push(l)}return s}}let IG=class extends kNe{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new vne(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};IG=t9([MD(1,ln)],IG);let TG=class extends kNe{constructor(e,t,i){super(e),this._languageFeaturesService=i;const s=y_.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());s.length>0&&(this.provider=this._register(new bne(e.getModel(),s,t,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){var t;return((t=this.provider)==null?void 0:t.compute(e))??null}};TG=t9([MD(2,Je)],TG);var dMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},nge=function(n,e){return function(t,i){e(t,i,n)}};class fMt{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let DG=class extends ue{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new oe),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new be),this._updateSoon=this._register(new ji(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(lt(()=>{var t;(t=this._stickyModelProvider)==null||t.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var e;return(e=this._model)==null?void 0:e.version}updateStickyModelProvider(){var t;(t=this._stickyModelProvider)==null||t.dispose(),this._stickyModelProvider=null;const e=this._editor;e.hasModel()&&(this._stickyModelProvider=new EG(e,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var e;(e=this._cts)==null||e.dispose(!0),this._cts=new Wn,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,s,r){if(t.children.length===0)return;let o=r;const a=[];for(let u=0;u<t.children.length;u++){const h=t.children[u];h.range&&a.push(h.range.startLineNumber)}const l=this.updateIndex(CT(a,e.startLineNumber,(u,h)=>u-h)),c=this.updateIndex(CT(a,e.startLineNumber+s,(u,h)=>u-h));for(let u=l;u<=c;u++){const h=t.children[u];if(!h)return;if(h.range){const d=h.range.startLineNumber,f=h.range.endLineNumber;e.startLineNumber<=f+1&&d-1<=e.endLineNumber&&d!==o&&(o=d,i.push(new fMt(d,f-1,s+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,h,i,s+1,d))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,h,i,s,r)}}getCandidateStickyLinesIntersecting(e){var s,r;if(!((s=this._model)!=null&&s.element))return[];let t=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,t,0,-1);const i=(r=this._editor._getViewModel())==null?void 0:r.getHiddenAreas();if(i)for(const o of i)t=t.filter(a=>!(a.startLineNumber>=o.startLineNumber&&a.endLineNumber<=o.endLineNumber+1));return t}};DG=dMt([nge(1,Je),nge(2,ln)],DG);var pMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},bw=function(n,e){return function(t,i){e(t,i,n)}},NG,yy;let Xg=(yy=class extends ue{constructor(e,t,i,s,r,o,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=s,this._contextKeyService=a,this._sessionStore=new be,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new cMt(this._editor),this._stickyLineCandidateProvider=new DG(this._editor,i,r),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=nI.Empty,this._onDidResize(),this._readConfiguration();const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(u=>{this._readConfigurationChange(u)})),this._register(ge(l,Ae.CONTEXT_MENU,async u=>{this._onContextMenu(ut(l),u)})),this._stickyScrollFocusedContextKey=H.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=H.stickyScrollVisible.bindTo(this._contextKeyService);const c=this._register(Zh(l));this._register(c.onDidBlur(u=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(c.onDidFocus(u=>{this.focus()})),this._registerMouseListeners(),this._register(ge(l,Ae.MOUSE_DOWN,u=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(NG.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)==null||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new be,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(O.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new be),t=this._register(new F8(this._editor,{extractLineNumberFromMouseEvent:r=>{const o=this._stickyScrollWidget.getEditorPositionFromNode(r.target.element);return o?o.lineNumber:0}})),i=r=>{if(!this._editor.hasModel()||r.target.type!==12||r.target.detail!==this._stickyScrollWidget.getId())return null;const o=r.target.element;if(!o||o.innerText!==o.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(o);return a?{range:new O(a.lineNumber,a.column,a.lineNumber,a.column+o.innerText.length),textElement:o}:null},s=this._stickyScrollWidget.getDomNode();this._register(os(s,Ae.CLICK,r=>{if(r.ctrlKey||r.altKey||r.metaKey||!r.leftButton)return;if(r.shiftKey){const c=this._stickyScrollWidget.getLineIndexFromChildDomNode(r.target);if(c===null)return;const u=new se(this._endLineNumbers[c],1);this._revealLineInCenterIfOutsideViewport(u);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(r.target)){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(r.target);this._toggleFoldingRegionForLine(c);return}if(!this._stickyScrollWidget.isInStickyLine(r.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(r.target);if(!l){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(r.target);if(c===null)return;l=new se(c,1)}this._revealPosition(l)})),this._register(os(s,Ae.MOUSE_MOVE,r=>{if(r.shiftKey){const o=this._stickyScrollWidget.getLineIndexFromChildDomNode(r.target);if(o===null||this._showEndForLine!==null&&this._showEndForLine===o)return;this._showEndForLine=o,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(ge(s,Ae.MOUSE_LEAVE,r=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([r,o])=>{const a=i(r);if(!a||!r.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:c}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(c.style.textDecoration==="underline")return;const u=new Wn;e.add(lt(()=>u.dispose(!0)));let h;sA(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new se(l.startLineNumber,l.startColumn+1),!1,u.token).then(d=>{if(!u.token.isCancellationRequested)if(d.length!==0){this._candidateDefinitionsLength=d.length;const f=c;h!==f?(e.clear(),h=f,h.style.textDecoration="underline",e.add(lt(()=>{h.style.textDecoration="none"}))):h||(h=f,h.style.textDecoration="underline",e.add(lt(()=>{h.style.textDecoration="none"})))}else e.clear()})})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async r=>{if(r.target.type!==12||r.target.detail!==this._stickyScrollWidget.getId())return;const o=this._stickyScrollWidget.getEditorPositionFromNode(r.target.element);o&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:o.lineNumber,column:1})),this._instaService.invokeFunction(SDe,r,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new Iu(e,t);this._contextMenuService.showContextMenu({menuId:et.StickyScrollContext,getAnchor:()=>i})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=t==null?void 0:t.foldingIcon;if(!i)return;gne(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const s=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(116);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(e){(e.hasChanged(116)||e.hasChanged(73)||e.hasChanged(67)||e.hasChanged(111)||e.hasChanged(68))&&this._readConfiguration(),e.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const s of e.ranges)if(i>=s.fromLineNumber&&i<=s.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(t*.25)}async _renderStickyScroll(e){const t=this._editor.getModel();if(!t||t.isTooLargeForTokenization()){this._resetState();return}const i=this._updateAndGetMinRebuildFromLine(e),s=this._stickyLineCandidateProvider.getVersionId();if(s===void 0||s===t.getVersionId())if(!this._focused)await this._updateState(i);else if(this._focusedStickyElementIndex===-1)await this._updateState(i),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const o=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(i),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(o)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(e){if(e!==void 0){const t=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(e,t)}return this._minRebuildFromLine}async _updateState(e){var i;this._minRebuildFromLine=void 0,this._foldingModel=await((i=y_.get(this._editor))==null?void 0:i.getFoldingModel())??void 0,this._widgetState=this.findScrollWidgetState();const t=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(t),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=nI.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),i=this._editor.getScrollTop();let s=0;const r=[],o=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new sI(a[0].startLineNumber,a[a.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const u of c){const h=u.startLineNumber,d=u.endLineNumber,f=u.nestingDepth;if(d-h>0){const p=(f-1)*e,g=f*e,m=this._editor.getBottomForLineNumber(h)-i,_=this._editor.getTopForLineNumber(d)-i,b=this._editor.getBottomForLineNumber(d)-i;if(p>_&&p<=b){r.push(h),o.push(d+1),s=b-g;break}else g>m&&g<=b&&(r.push(h),o.push(d+1));if(r.length===t)break}}}return this._endLineNumbers=o,new nI(r,o,s,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},NG=yy,yy.ID="store.contrib.stickyScrollController",yy);Xg=NG=pMt([bw(1,El),bw(2,Je),bw(3,ct),bw(4,ln),bw(5,wc),bw(6,bt)],Xg);class gMt extends ca{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...Ct("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:v({key:"mitoggleStickyScroll",comment:["&& denotes a mnemonic"]},"&&Toggle Editor Sticky Scroll")},metadata:{description:Ct("toggleEditorStickyScroll.description","Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:aMt.View,toggled:{condition:ye.equals("config.editor.stickyScroll.enabled",!0),title:v("stickyScroll","Sticky Scroll"),mnemonicTitle:v({key:"miStickyScroll",comment:["&& denotes a mnemonic"]},"&&Sticky Scroll")},menu:[{id:et.CommandPalette},{id:et.MenubarAppearanceMenu,group:"4_editor",order:3},{id:et.StickyScrollContext}]})}async run(e){const t=e.get(Xt),i=!t.getValue("editor.stickyScroll.enabled");return t.updateValue("editor.stickyScroll.enabled",i)}}const i9=100;class mMt extends pd{constructor(){super({id:"editor.action.focusStickyScroll",title:{...Ct("focusStickyScroll","Focus on the editor sticky scroll"),mnemonicTitle:v({key:"mifocusStickyScroll",comment:["&& denotes a mnemonic"]},"&&Focus Sticky Scroll")},precondition:ye.and(ye.has("config.editor.stickyScroll.enabled"),H.stickyScrollVisible),menu:[{id:et.CommandPalette}]})}runEditorCommand(e,t){var i;(i=Xg.get(t))==null||i.focus()}}class _Mt extends pd{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:Ct("selectNextStickyScrollLine.title","Select the next editor sticky scroll line"),precondition:H.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:i9,primary:18}})}runEditorCommand(e,t){var i;(i=Xg.get(t))==null||i.focusNext()}}class vMt extends pd{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:Ct("selectPreviousStickyScrollLine.title","Select the previous sticky scroll line"),precondition:H.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:i9,primary:16}})}runEditorCommand(e,t){var i;(i=Xg.get(t))==null||i.focusPrevious()}}class bMt extends pd{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:Ct("goToFocusedStickyScrollLine.title","Go to the focused sticky scroll line"),precondition:H.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:i9,primary:3}})}runEditorCommand(e,t){var i;(i=Xg.get(t))==null||i.goToFocused()}}class yMt extends pd{constructor(){super({id:"editor.action.selectEditor",title:Ct("selectEditor.title","Select Editor"),precondition:H.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:i9,primary:9}})}runEditorCommand(e,t){var i;(i=Xg.get(t))==null||i.selectEditor()}}_i(Xg.ID,Xg,1);nn(gMt);nn(mMt);nn(vMt);nn(_Mt);nn(bMt);nn(yMt);var INe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ik=function(n,e){return function(t,i){e(t,i,n)}};class wMt{constructor(e,t,i,s,r,o){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=s,this.command=r,this.completion=o}}let AG=class extends Tlt{constructor(e,t,i,s,r,o){super(r.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=s,this._suggestMemoryService=o}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){const e=[],{items:t}=this.completionModel,i=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},t),s=hi.slice(t,i),r=hi.slice(t,0,i);let o=5;for(const a of hi.concat(s,r)){if(a.score===$h.Default)continue;const l=new O(a.editStart.lineNumber,a.editStart.column,a.editInsertEnd.lineNumber,a.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),c=a.completion.insertTextRules&&a.completion.insertTextRules&4?{snippet:a.completion.insertText}:a.completion.insertText;e.push(new wMt(l,c,a.filterTextLow??a.labelLow,a.completion.additionalTextEdits,a.completion.command,a)),o-->=0&&a.resolve(Vt.None)}return e}};AG=INe([ik(5,Y8)],AG);let PG=class extends ue{constructor(e,t,i,s){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=s,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,s){var f;if(i.selectedSuggestionInfo)return;let r;for(const p of this._editorService.listCodeEditors())if(p.getModel()===e){r=p;break}if(!r)return;const o=r.getOption(90);if(tC.isAllOff(o))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const a=e.tokenization.getLineTokens(t.lineNumber),l=a.getStandardTokenType(a.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(tC.valueFor(o,l)!=="inline")return;let c=e.getWordAtPosition(t),u;if(c!=null&&c.word||(u=this._getTriggerCharacterInfo(e,t)),!(c!=null&&c.word)&&!u||(c||(c=e.getWordUntilPosition(t)),c.endColumn!==t.column))return;let h;const d=e.getValueInRange(new O(t.lineNumber,1,t.lineNumber,t.column));if(!u&&((f=this._lastResult)!=null&&f.canBeReused(e,t.lineNumber,c))){const p=new zpe(d,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=p,this._lastResult.acquire(),h=this._lastResult}else{const p=await yne(this._languageFeatureService.completionProvider,e,t,new ED(void 0,p2.createSuggestFilter(r).itemKind,u==null?void 0:u.providers),u&&{triggerKind:1,triggerCharacter:u.ch},s);let g;p.needsClipboard&&(g=await this._clipboardService.readText());const m=new Km(p.items,t.column,new zpe(d,0),f2.None,r.getOption(119),r.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},g);h=new AG(e,t.lineNumber,c,m,p,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(Vt.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var r;const i=e.getValueInRange(O.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),s=new Set;for(const o of this._languageFeatureService.completionProvider.all(e))(r=o.triggerCharacters)!=null&&r.includes(i)&&s.add(o);if(s.size!==0)return{providers:s,ch:i}}};PG=INe([ik(0,Je),ik(1,nm),ik(2,Y8),ik(3,wi)],PG);tA(PG);class CMt extends Xe{constructor(){super({id:"editor.action.forceRetokenize",label:v("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const s=new Nr;i.tokenization.forceTokenization(i.getLineCount()),s.stop(),console.log(`tokenization took ${s.elapsed()}`)}}Ie(CMt);const g5=class g5 extends ca{constructor(){super({id:g5.ID,title:Ct({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:Ct("tabMovesFocusDescriptions","Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const t=!YS.getTabFocusMode();YS.setTabFocusMode(t),yl(t?v("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):v("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}};g5.ID="editor.action.toggleTabFocusMode";let RG=g5;nn(RG);var SMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sge=function(n,e){return function(t,i){e(t,i,n)}};let MG=class extends ue{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}constructor(e,t,i={},s,r){super(),this._link=t,this._hoverService=s,this._enabled=!0,this.el=ke(e,Pe("a.monaco-link",{tabIndex:t.tabIndex??0,href:t.href},t.label)),this.hoverDelegate=i.hoverDelegate??ua("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const o=this._register(new li(this.el,"click")),a=this._register(new li(this.el,"keypress")),l=Oe.chain(a.event,h=>h.map(d=>new Ji(d)).filter(d=>d.keyCode===3)),c=this._register(new li(this.el,sn.Tap)).event;this._register(ao.addTarget(this.el));const u=Oe.any(o.event,l,c);this._register(u(h=>{this.enabled&&(ci.stop(h,!0),i!=null&&i.opener?i.opener(this._link.href):r.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){this.hoverDelegate.showNativeHover?this.el.title=e??"":!this.hover&&e?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};MG=SMt([sge(3,rp),sge(4,kl)],MG);var TNe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},DNe=function(n,e){return function(t,i){e(t,i,n)}};const xMt=26;let OG=class extends ue{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(FG))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{var t;this.hide(),(t=e.onClose)==null||t.call(e)}}),this._editor.setBanner(this.banner.element,xMt)}};OG=TNe([DNe(1,ct)],OG);let FG=class extends ue{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(jg,{}),this.element=Pe("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message=="string")return e.message}getBannerMessage(e){if(typeof e=="string"){const t=Pe("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){kr(this.element)}show(e){kr(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=ke(this.element,Pe("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild(Pe(`div${ft.asCSSSelector(e.icon)}`));const s=ke(this.element,Pe("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=ke(this.element,Pe("div.message-actions-container")),e.actions)for(const o of e.actions)this._register(this.instantiationService.createInstance(MG,this.messageActionsContainer,{...o,tabIndex:-1},{}));const r=ke(this.element,Pe("div.action-container"));this.actionBar=this._register(new uc(r)),this.actionBar.push(this._register(new dl("banner.close","Close Banner",ft.asClassName(cIe),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};FG=TNe([DNe(0,ct)],FG);const NNe=ri("workspaceTrustManagementService");var Rne=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},sS=function(n,e){return function(t,i){e(t,i,n)}};const LMt=_n("extensions-warning-message",Ne.warning,v("warningIcon","Icon shown with a warning message in the extensions editor."));var _S;let OD=(_S=class extends ue{constructor(e,t,i,s){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=r=>{if(r&&r.hasMore){if(this._bannerClosed)return;const o=Math.max(r.ambiguousCharacterCount,r.nonBasicAsciiCharacterCount,r.invisibleCharacterCount);let a;if(r.nonBasicAsciiCharacterCount>=o)a={message:v("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new BD};else if(r.ambiguousCharacterCount>=o)a={message:v("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new p0};else if(r.invisibleCharacterCount>=o)a={message:v("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new FD};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:LMt,actions:[{label:a.command.shortLabel,href:`command:${a.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(OG,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(126),this._register(i.onDidChangeTrust(r=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(r=>{r.hasChanged(126)&&(this._options=e.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=EMt(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i==="_os"?new Intl.NumberFormat().resolvedOptions().locale:i==="_vscode"?clt:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new BG(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new kMt(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}},_S.ID="editor.contrib.unicodeHighlighter",_S);OD=Rne([sS(1,lu),sS(2,NNe),sS(3,ct)],OD);function EMt(n,e){return{nonBasicASCII:e.nonBasicASCII===Fl?!n:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===Fl?!n:e.includeComments,includeStrings:e.includeStrings===Fl?!n:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let BG=class extends ue{constructor(e,t,i,s){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new ji(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const s of t.ranges)i.push({range:s,options:D2.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!Vte(t,e))return null;const i=t.getValueInRange(e.range);return{reason:PNe(i,this._options),inComment:Hte(t,e),inString:$te(t,e)}}};BG=Rne([sS(3,lu)],BG);class kMt extends ue{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new ji(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const s of e){const r=Die.computeUnicodeHighlights(this._model,this._options,s);for(const o of r.ranges)i.ranges.push(o);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||r.hasMore}if(!i.hasMore)for(const s of i.ranges)t.push({range:s,options:D2.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return Vte(t,e)?{reason:PNe(i,this._options),inComment:Hte(t,e),inString:$te(t,e)}:null}}const ANe=v("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");let WG=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=this._editor.getContribution(OD.ID);if(!s)return[];const r=[],o=new Set;let a=300;for(const l of t){const c=s.getDecorationInfo(l);if(!c)continue;const h=i.getValueInRange(l.range).codePointAt(0),d=mV(h);let f;switch(c.reason.kind){case 0:{IN(c.reason.confusableWith)?f=v("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",d,mV(c.reason.confusableWith.codePointAt(0))):f=v("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",d,mV(c.reason.confusableWith.codePointAt(0)));break}case 1:f=v("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",d);break;case 2:f=v("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",d);break}if(o.has(f))continue;o.add(f);const p={codePoint:h,reason:c.reason,inComment:c.inComment,inString:c.inString},g=v("unicodeHighlight.adjustSettings","Adjust settings"),m=`command:${N2.ID}?${encodeURIComponent(JSON.stringify(p))}`,_=new to("",!0).appendMarkdown(f).appendText(" ").appendLink(m,g,ANe);r.push(new ku(this,l.range,[_],!1,a++))}return r}renderHoverParts(e,t){return VEt(e,t,this._editor,this._languageService,this._openerService)}};WG=Rne([sS(1,Dn),sS(2,kl)],WG);function VG(n){return`U+${n.toString(16).padStart(4,"0")}`}function mV(n){let e=`\`${VG(n)}\``;return bb.isInvisibleCharacter(n)||(e+=` "${`${IMt(n)}`}"`),e}function IMt(n){return n===96?"`` ` ``":"`"+String.fromCodePoint(n)+"`"}function PNe(n,e){return Die.computeUnicodeHighlightReason(n,e)}const m5=class m5{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let s=this.map.get(i);return s||(s=At.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,s)),s}};m5.instance=new m5;let D2=m5;class TMt extends Xe{constructor(){super({id:p0.ID,label:v("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(e,t,i){const s=e==null?void 0:e.get(Xt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Ca.includeComments,!1,2)}}class DMt extends Xe{constructor(){super({id:p0.ID,label:v("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(e,t,i){const s=e==null?void 0:e.get(Xt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Ca.includeStrings,!1,2)}}const _5=class _5 extends Xe{constructor(){super({id:_5.ID,label:v("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(Xt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Ca.ambiguousCharacters,!1,2)}};_5.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let p0=_5;const v5=class v5 extends Xe{constructor(){super({id:v5.ID,label:v("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(Xt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Ca.invisibleCharacters,!1,2)}};v5.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let FD=v5;const b5=class b5 extends Xe{constructor(){super({id:b5.ID,label:v("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(Xt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Ca.nonBasicASCII,!1,2)}};b5.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let BD=b5;const y5=class y5 extends Xe{constructor(){super({id:y5.ID,label:v("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(e,t,i){const{codePoint:s,reason:r,inString:o,inComment:a}=i,l=String.fromCodePoint(s),c=e.get(cu),u=e.get(Xt);function h(p){return bb.isInvisibleCharacter(p)?v("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",VG(p)):v("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${VG(p)} "${l}"`)}const d=[];if(r.kind===0)for(const p of r.notAmbiguousInLocales)d.push({label:v("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',p),run:async()=>{AMt(u,[p])}});if(d.push({label:h(s),run:()=>NMt(u,[s])}),a){const p=new TMt;d.push({label:p.label,run:async()=>p.runAction(u)})}else if(o){const p=new DMt;d.push({label:p.label,run:async()=>p.runAction(u)})}if(r.kind===0){const p=new p0;d.push({label:p.label,run:async()=>p.runAction(u)})}else if(r.kind===1){const p=new FD;d.push({label:p.label,run:async()=>p.runAction(u)})}else if(r.kind===2){const p=new BD;d.push({label:p.label,run:async()=>p.runAction(u)})}else PMt(r);const f=await c.pick(d,{title:ANe});f&&await f.run()}};y5.ID="editor.action.unicodeHighlight.showExcludeOptions";let N2=y5;async function NMt(n,e){const t=n.getValue(Ca.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const s of e)i[String.fromCodePoint(s)]=!0;await n.updateValue(Ca.allowedCharacters,i,2)}async function AMt(n,e){var s;const t=(s=n.inspect(Ca.allowedLocales).user)==null?void 0:s.value;let i;typeof t=="object"&&t?i=Object.assign({},t):i={};for(const r of e)i[r]=!0;await n.updateValue(Ca.allowedLocales,i,2)}function PMt(n){throw new Error(`Unexpected value: ${n}`)}Ie(p0);Ie(FD);Ie(BD);Ie(N2);_i(OD.ID,OD,1);W0.register(WG);const cA=ri("dialogService");var RMt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},rge=function(n,e){return function(t,i){e(t,i,n)}};const RNe="ignoreUnusualLineTerminators";function MMt(n,e,t){n.setModelProperty(e.uri,RNe,t)}function OMt(n,e){return n.getModelProperty(e.uri,RNe)}var vS;let A2=(vS=class extends ue{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(127),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(s=>{s.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||OMt(this._codeEditorService,e)===!0||this._editor.getOption(92))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:v("unusualLineTerminators.title","Unusual Line Terminators"),message:v("unusualLineTerminators.message","Detected unusual line terminators"),detail:v("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",su(e.uri)),primaryButton:v({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:v("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){MMt(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}},vS.ID="editor.contrib.unusualLineTerminatorsDetector",vS);A2=RMt([rge(1,cA),rge(2,wi)],A2);_i(A2.ID,A2,1);const sR="**",oge="/",FM="[/\\\\]",BM="[^/\\\\]",FMt=/\//g;function age(n,e){switch(n){case 0:return"";case 1:return`${BM}*?`;default:return`(?:${FM}|${BM}+${FM}${e?`|${FM}${BM}+`:""})*?`}}function lge(n,e){if(!n)return[];const t=[];let i=!1,s=!1,r="";for(const o of n){switch(o){case e:if(!i&&!s){t.push(r),r="";continue}break;case"{":i=!0;break;case"}":i=!1;break;case"[":s=!0;break;case"]":s=!1;break}r+=o}return r&&t.push(r),t}function MNe(n){if(!n)return"";let e="";const t=lge(n,oge);if(t.every(i=>i===sR))e=".*";else{let i=!1;t.forEach((s,r)=>{if(s===sR){if(i)return;e+=age(2,r===t.length-1)}else{let o=!1,a="",l=!1,c="";for(const u of s){if(u!=="}"&&o){a+=u;continue}if(l&&(u!=="]"||!c)){let h;u==="-"?h=u:(u==="^"||u==="!")&&!c?h="^":u===oge?h="":h=dc(u),c+=h;continue}switch(u){case"{":o=!0;continue;case"[":l=!0;continue;case"}":{const d=`(?:${lge(a,",").map(f=>MNe(f)).join("|")})`;e+=d,o=!1,a="";break}case"]":{e+="["+c+"]",l=!1,c="";break}case"?":e+=BM;continue;case"*":e+=age(1);continue;default:e+=dc(u)}}r<t.length-1&&(t[r+1]!==sR||r+2<t.length)&&(e+=FM)}i=s===sR})}return e}const BMt=/^\*\*\/\*\.[\w\.-]+$/,WMt=/^\*\*\/([\w\.-]+)\/?$/,VMt=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,HMt=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,$Mt=/^\*\*((\/[\w\.-]+)+)\/?$/,zMt=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,cge=new np(1e4),uge=function(){return!1},Mf=function(){return null};function Mne(n,e){if(!n)return Mf;let t;typeof n!="string"?t=n.pattern:t=n,t=t.trim();const i=`${t}_${!!e.trimForExclusions}`;let s=cge.get(i);if(s)return hge(s,n);let r;return BMt.test(t)?s=UMt(t.substr(4),t):(r=WMt.exec(_V(t,e)))?s=jMt(r[1],t):(e.trimForExclusions?HMt:VMt).test(t)?s=qMt(t,e):(r=$Mt.exec(_V(t,e)))?s=dge(r[1].substr(1),t,!0):(r=zMt.exec(_V(t,e)))?s=dge(r[1],t,!1):s=KMt(t),cge.set(i,s),hge(s,n)}function hge(n,e){if(typeof e=="string")return n;const t=function(i,s){return uU(i,e.base,!ra)?n(EN(i.substr(e.base.length),Bh),s):null};return t.allBasenames=n.allBasenames,t.allPaths=n.allPaths,t.basenames=n.basenames,t.patterns=n.patterns,t}function _V(n,e){return e.trimForExclusions&&n.endsWith("/**")?n.substr(0,n.length-2):n}function UMt(n,e){return function(t,i){return typeof t=="string"&&t.endsWith(n)?e:null}}function jMt(n,e){const t=`/${n}`,i=`\\${n}`,s=function(o,a){return typeof o!="string"?null:a?a===n?e:null:o===n||o.endsWith(t)||o.endsWith(i)?e:null},r=[n];return s.basenames=r,s.patterns=[e],s.allBasenames=r,s}function qMt(n,e){const t=FNe(n.slice(1,-1).split(",").map(a=>Mne(a,e)).filter(a=>a!==Mf),n),i=t.length;if(!i)return Mf;if(i===1)return t[0];const s=function(a,l){for(let c=0,u=t.length;c<u;c++)if(t[c](a,l))return n;return null},r=t.find(a=>!!a.allBasenames);r&&(s.allBasenames=r.allBasenames);const o=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return o.length&&(s.allPaths=o),s}function dge(n,e,t){const i=Bh===Es.sep,s=i?n:n.replace(FMt,Bh),r=Bh+s,o=Es.sep+n;let a;return t?a=function(l,c){return typeof l=="string"&&(l===s||l.endsWith(r)||!i&&(l===n||l.endsWith(o)))?e:null}:a=function(l,c){return typeof l=="string"&&(l===s||!i&&l===n)?e:null},a.allPaths=[(t?"*/":"./")+n],a}function KMt(n){try{const e=new RegExp(`^${MNe(n)}$`);return function(t){return e.lastIndex=0,typeof t=="string"&&e.test(t)?n:null}}catch{return Mf}}function GMt(n,e,t){return!n||typeof e!="string"?!1:ONe(n)(e,void 0,t)}function ONe(n,e={}){if(!n)return uge;if(typeof n=="string"||XMt(n)){const t=Mne(n,e);if(t===Mf)return uge;const i=function(s,r){return!!t(s,r)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return YMt(n,e)}function XMt(n){const e=n;return e?typeof e.base=="string"&&typeof e.pattern=="string":!1}function YMt(n,e){const t=FNe(Object.getOwnPropertyNames(n).map(a=>ZMt(a,n[a],e)).filter(a=>a!==Mf)),i=t.length;if(!i)return Mf;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(u,h){let d;for(let f=0,p=t.length;f<p;f++){const g=t[f](u,h);if(typeof g=="string")return g;sz(g)&&(d||(d=[]),d.push(g))}return d?(async()=>{for(const f of d){const p=await f;if(typeof p=="string")return p}return null})():null},l=t.find(u=>!!u.allBasenames);l&&(a.allBasenames=l.allBasenames);const c=t.reduce((u,h)=>h.allPaths?u.concat(h.allPaths):u,[]);return c.length&&(a.allPaths=c),a}const s=function(a,l,c){let u,h;for(let d=0,f=t.length;d<f;d++){const p=t[d];p.requiresSiblings&&c&&(l||(l=S1(a)),u||(u=l.substr(0,l.length-Vct(a).length)));const g=p(a,l,u,c);if(typeof g=="string")return g;sz(g)&&(h||(h=[]),h.push(g))}return h?(async()=>{for(const d of h){const f=await d;if(typeof f=="string")return f}return null})():null},r=t.find(a=>!!a.allBasenames);r&&(s.allBasenames=r.allBasenames);const o=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return o.length&&(s.allPaths=o),s}function ZMt(n,e,t){if(e===!1)return Mf;const i=Mne(n,t);if(i===Mf)return Mf;if(typeof e=="boolean")return i;if(e){const s=e.when;if(typeof s=="string"){const r=(o,a,l,c)=>{if(!c||!i(o,a))return null;const u=s.replace("$(basename)",()=>l),h=c(u);return sz(h)?h.then(d=>d?n:null):h?n:null};return r.requiresSiblings=!0,r}}return i}function FNe(n,e){const t=n.filter(a=>!!a.basenames);if(t.length<2)return n;const i=t.reduce((a,l)=>{const c=l.basenames;return c?a.concat(c):a},[]);let s;if(e){s=[];for(let a=0,l=i.length;a<l;a++)s.push(e)}else s=t.reduce((a,l)=>{const c=l.patterns;return c?a.concat(c):a},[]);const r=function(a,l){if(typeof a!="string")return null;if(!l){let u;for(u=a.length;u>0;u--){const h=a.charCodeAt(u-1);if(h===47||h===92)break}l=a.substr(u)}const c=i.indexOf(l);return c!==-1?s[c]:null};r.basenames=i,r.patterns=s,r.allBasenames=i;const o=n.filter(a=>!a.basenames);return o.push(r),o}function One(n,e,t,i,s,r){if(Array.isArray(n)){let o=0;for(const a of n){const l=One(a,e,t,i,s,r);if(l===10)return l;l>o&&(o=l)}return o}else{if(typeof n=="string")return i?n==="*"?5:n===t?10:0:0;if(n){const{language:o,pattern:a,scheme:l,hasAccessToAllModels:c,notebookType:u}=n;if(!i&&!c)return 0;u&&s&&(e=s);let h=0;if(l)if(l===e.scheme)h=10;else if(l==="*")h=5;else return 0;if(o)if(o===t)h=10;else if(o==="*")h=Math.max(h,5);else return 0;if(u)if(u===r)h=10;else if(u==="*"&&r!==void 0)h=Math.max(h,5);else return 0;if(a){let d;if(typeof a=="string"?d=a:d={...a,base:tLe(a.base)},d===e.fsPath||GMt(d,e.fsPath))h=10;else return 0}return h}else return 0}}var BNe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},WM=function(n,e){return function(t,i){e(t,i,n)}},Bs,HG;const n9=new $e("hasWordHighlights",!1);function WNe(n,e,t,i){const s=n.ordered(e);return _ee(s.map(r=>()=>Promise.resolve(r.provideDocumentHighlights(e,t,i)).then(void 0,ls)),so).then(r=>{if(r){const o=new js;return o.set(e.uri,r),o}return new js})}function QMt(n,e,t,i,s,r){const o=n.ordered(e);return _ee(o.map(a=>()=>{const l=r.filter(c=>XEe(c)).filter(c=>One(a.selector,c.uri,c.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(e,t,l,s)).then(void 0,ls)}),a=>a instanceof js&&a.size>0)}class Fne{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=tr(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new O(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const s=t.startLineNumber,r=t.startColumn,o=t.endColumn,a=this._getCurrentWordRange(e,t);let l=!!(this._wordRange&&this._wordRange.equalsRange(a));for(let c=0,u=i.length;!l&&c<u;c++){const h=i.getRange(c);h&&h.startLineNumber===s&&h.startColumn<=r&&h.endColumn>=o&&(l=!0)}return l}cancel(){this.result.cancel()}}class JMt extends Fne{constructor(e,t,i,s){super(e,t,i),this._providers=s}_compute(e,t,i,s){return WNe(this._providers,e,t.getPosition(),s).then(r=>r||new js)}}class eOt extends Fne{constructor(e,t,i,s,r){super(e,t,i),this._providers=s,this._otherModels=r}_compute(e,t,i,s){return QMt(this._providers,e,t.getPosition(),i,s,this._otherModels).then(r=>r||new js)}}class VNe extends Fne{constructor(e,t,i,s,r){super(e,t,s),this._otherModels=r,this._selectionIsEmpty=t.isEmpty(),this._word=i}_compute(e,t,i,s){return Uf(250,s).then(()=>{const r=new js;let o;if(this._word?o=this._word:o=e.getWordAtPosition(t.getPosition()),!o)return new js;const a=[e,...this._otherModels];for(const l of a){if(l.isDisposed())continue;const u=l.findMatches(o.word,!0,!1,!0,i,!1).map(h=>({range:h.range,kind:BT.Text}));u&&r.set(l.uri,u)}return r})}isValid(e,t,i){const s=t.isEmpty();return this._selectionIsEmpty!==s?!1:super.isValid(e,t,i)}}function tOt(n,e,t,i,s){return n.has(e)?new JMt(e,t,s,n):new VNe(e,t,i,s,[])}function iOt(n,e,t,i,s,r){return n.has(e)?new eOt(e,t,s,n,r):new VNe(e,t,i,s,r)}Va("_executeDocumentHighlights",async(n,e,t)=>{const i=n.get(Je),s=await WNe(i.documentHighlightProvider,e,t,Vt.None);return s==null?void 0:s.get(e.uri)});var K1;let $G=(K1=class{constructor(e,t,i,s,r){this.toUnhook=new be,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new js,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=r,this._hasWordHighlights=n9.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(o=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this._onPositionChanged(o)})),this.toUnhook.add(e.onDidFocusEditorText(o=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this._run())})),this.toUnhook.add(e.onDidChangeModelContent(o=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(o=>{!o.newModelUrl&&o.oldModelUrl?this._stopSingular():Bs.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(o=>{const a=this.editor.getOption(81);this.occurrencesHighlight!==a&&(this.occurrencesHighlight=a,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Bs.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(O.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(r=>r.containsPosition(this.editor.getPosition()))+1)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const r=this._getWord();if(r){const o=this.editor.getModel().getLineContent(s.startLineNumber);yl(`${o}, ${i+1} of ${e.length} for '${r.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(r=>r.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const r=this._getWord();if(r){const o=this.editor.getModel().getLineContent(s.startLineNumber);yl(`${o}, ${i+1} of ${e.length} for '${r.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Bs.storedDecorations.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Bs.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const e=this.codeEditorService.listCodeEditors(),t=[];for(const i of e){if(!i.hasModel())continue;const s=Bs.storedDecorations.get(i.getModel().uri);if(!s)continue;i.removeDecorations(s),t.push(i.getModel().uri);const r=C_.get(i);r!=null&&r.wordHighlighter&&r.wordHighlighter.decorations.length>0&&(r.wordHighlighter.decorations.clear(),r.wordHighlighter.workerRequest=null,r.wordHighlighter._hasWordHighlights.set(!1))}for(const i of t)Bs.storedDecorations.delete(i)}_stopSingular(){var e,t,i,s;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((e=this.editor.getModel())==null?void 0:e.uri.scheme)!==kt.vscodeNotebookCell&&((i=(t=Bs.query)==null?void 0:t.modelInfo)==null?void 0:i.model.uri.scheme)!==kt.vscodeNotebookCell?(Bs.query=null,this._run()):(s=Bs.query)!=null&&s.modelInfo&&(Bs.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var t;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(e.reason!==3&&((t=this.editor.getModel())==null?void 0:t.uri.scheme)!==kt.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===kt.vscodeNotebookCell){const r=[],o=this.codeEditorService.listCodeEditors();for(const a of o){const l=a.getModel();l&&l!==e&&l.uri.scheme===kt.vscodeNotebookCell&&r.push(l)}return r}const i=[],s=this.codeEditorService.listCodeEditors();for(const r of s){if(!Hie(r))continue;const o=r.getModel();o&&e===o.modified&&i.push(o.modified)}if(i.length)return i;if(this.occurrencesHighlight==="singleFile")return[];for(const r of s){const o=r.getModel();o&&o!==e&&i.push(o)}return i}_run(){var i;let e;if(this.editor.hasTextFocus()){const s=this.editor.getSelection();if(!s||s.startLineNumber!==s.endLineNumber){Bs.query=null,this._stopAll();return}const r=s.startColumn,o=s.endColumn,a=this._getWord();if(!a||a.startColumn>r||a.endColumn<o){Bs.query=null,this._stopAll();return}e=this.workerRequest&&this.workerRequest.isValid(this.model,s,this.decorations),Bs.query={modelInfo:{model:this.model,selection:s},word:a}}else if(!Bs.query)return;if(this.lastCursorPositionChangeTime=new Date().getTime(),e)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();const s=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const r=this.getOtherModelsToHighlight(this.editor.getModel());if(!Bs.query.modelInfo||Bs.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(Bs.query.modelInfo.model,Bs.query.modelInfo.selection,Bs.query.word,r),(i=this.workerRequest)==null||i.result.then(o=>{s===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=o||[],this._beginRenderDecorations())},Nt)}}computeWithModel(e,t,i,s){return s.length?iOt(this.multiDocumentProviders,e,t,i,this.editor.getOption(132),s):tOt(this.providers,e,t,i,this.editor.getOption(132))}_beginRenderDecorations(){const e=new Date().getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){var t,i,s;this.renderDecorationsTimer=-1;const e=this.codeEditorService.listCodeEditors();for(const r of e){const o=C_.get(r);if(!o)continue;const a=[],l=(t=r.getModel())==null?void 0:t.uri;if(l&&this.workerRequestValue.has(l)){const c=Bs.storedDecorations.get(l),u=this.workerRequestValue.get(l);if(u)for(const d of u)d.range&&a.push({range:d.range,options:TPt(d.kind)});let h=[];r.changeDecorations(d=>{h=d.deltaDecorations(c??[],a)}),Bs.storedDecorations=Bs.storedDecorations.set(l,h),a.length>0&&((i=o.wordHighlighter)==null||i.decorations.set(a),(s=o.wordHighlighter)==null||s._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}},Bs=K1,K1.storedDecorations=new js,K1.query=null,K1);$G=Bs=BNe([WM(4,wi)],$G);var wy;let C_=(wy=class extends ue{static get(e){return e.getContribution(HG.ID)}constructor(e,t,i,s){super(),this._wordHighlighter=null;const r=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new $G(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,s))};this._register(e.onDidChangeModel(o=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),r()})),r()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var e;(e=this._wordHighlighter)==null||e.moveNext()}moveBack(){var e;(e=this._wordHighlighter)==null||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},HG=wy,wy.ID="editor.contrib.wordHighlighter",wy);C_=HG=BNe([WM(1,bt),WM(2,Je),WM(3,wi)],C_);class HNe extends Xe{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=C_.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class nOt extends HNe{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:v("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:n9,kbOpts:{kbExpr:H.editorTextFocus,primary:65,weight:100}})}}class sOt extends HNe{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:v("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:n9,kbOpts:{kbExpr:H.editorTextFocus,primary:1089,weight:100}})}}class rOt extends Xe{constructor(){super({id:"editor.action.wordHighlight.trigger",label:v("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:n9.toNegated(),kbOpts:{kbExpr:H.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const s=C_.get(t);s&&s.restoreViewState(!0)}}_i(C_.ID,C_,0);Ie(nOt);Ie(sOt);Ie(rOt);class s9 extends Gs{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const s=iu(t.getOption(132),t.getOption(131)),r=t.getModel(),o=t.getSelections(),a=o.length>1,l=o.map(c=>{const u=new se(c.positionLineNumber,c.positionColumn),h=this._move(s,r,u,this._wordNavigationType,a);return this._moveTo(c,h,this._inSelectionMode)});if(r.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,l.map(c=>bi.fromModelSelection(c))),l.length===1){const c=new se(l[0].positionLineNumber,l[0].positionColumn);t.revealPosition(c,0)}}_moveTo(e,t,i){return i?new nt(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new nt(t.lineNumber,t.column,t.lineNumber,t.column)}}class V_ extends s9{_move(e,t,i,s,r){return Ai.moveWordLeft(e,t,i,s,r)}}class H_ extends s9{_move(e,t,i,s,r){return Ai.moveWordRight(e,t,i,s)}}class oOt extends V_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class aOt extends V_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class lOt extends V_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ye.and(H.textInputFocus,(e=ye.and(AN,B8))==null?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}class cOt extends V_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class uOt extends V_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class hOt extends V_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ye.and(H.textInputFocus,(e=ye.and(AN,B8))==null?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class dOt extends V_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,s,r){return super._move(iu(gd.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s,r)}}class fOt extends V_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,s,r){return super._move(iu(gd.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s,r)}}class pOt extends H_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class gOt extends H_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ye.and(H.textInputFocus,(e=ye.and(AN,B8))==null?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}class mOt extends H_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class _Ot extends H_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class vOt extends H_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ye.and(H.textInputFocus,(e=ye.and(AN,B8))==null?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class bOt extends H_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class yOt extends H_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,s,r){return super._move(iu(gd.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s,r)}}class wOt extends H_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,s,r){return super._move(iu(gd.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s,r)}}class r9 extends Gs{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const s=e.get(ln);if(!t.hasModel())return;const r=iu(t.getOption(132),t.getOption(131)),o=t.getModel(),a=t.getSelections(),l=t.getOption(6),c=t.getOption(11),u=s.getLanguageConfiguration(o.getLanguageId()).getAutoClosingPairs(),h=t._getViewModel(),d=a.map(f=>{const p=this._delete({wordSeparators:r,model:o,selection:f,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:l,autoClosingQuotes:c,autoClosingPairs:u,autoClosedCharacters:h.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Wr(p,"")});t.pushUndoStop(),t.executeCommands(this.id,d),t.pushUndoStop()}}class Bne extends r9{_delete(e,t){const i=Ai.deleteWordLeft(e,t);return i||new O(1,1,1,1)}}class Wne extends r9{_delete(e,t){const i=Ai.deleteWordRight(e,t);if(i)return i;const s=e.model.getLineCount(),r=e.model.getLineMaxColumn(s);return new O(s,r,s,r)}}class COt extends Bne{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:H.writable})}}class SOt extends Bne{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:H.writable})}}class xOt extends Bne{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class LOt extends Wne{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:H.writable})}}class EOt extends Wne{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:H.writable})}}class kOt extends Wne{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class IOt extends Xe{constructor(){super({id:"deleteInsideWord",precondition:H.writable,label:v("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const s=iu(t.getOption(132),t.getOption(131)),r=t.getModel(),a=t.getSelections().map(l=>{const c=Ai.deleteInsideWord(s,r,l);return new Wr(c,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}Ve(new oOt);Ve(new aOt);Ve(new lOt);Ve(new cOt);Ve(new uOt);Ve(new hOt);Ve(new pOt);Ve(new gOt);Ve(new mOt);Ve(new _Ot);Ve(new vOt);Ve(new bOt);Ve(new dOt);Ve(new fOt);Ve(new yOt);Ve(new wOt);Ve(new COt);Ve(new SOt);Ve(new xOt);Ve(new LOt);Ve(new EOt);Ve(new kOt);Ie(IOt);class TOt extends r9{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=GB.deleteWordPartLeft(e);return i||new O(1,1,1,1)}}class DOt extends r9{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:H.writable,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=GB.deleteWordPartRight(e);if(i)return i;const s=e.model.getLineCount(),r=e.model.getLineMaxColumn(s);return new O(s,r,s,r)}}class $Ne extends s9{_move(e,t,i,s,r){return GB.moveWordPartLeft(e,t,i,r)}}class NOt extends $Ne{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}di.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class AOt extends $Ne{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}di.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class zNe extends s9{_move(e,t,i,s,r){return GB.moveWordPartRight(e,t,i)}}class POt extends zNe{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class ROt extends zNe{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:H.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}Ve(new TOt);Ve(new DOt);Ve(new NOt);Ve(new AOt);Ve(new POt);Ve(new ROt);const nse=class nse extends ue{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=pl.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(93);t||(this.editor.isSimpleWidget?t=new to(v("editor.simple.readonly","Cannot edit in read-only input")):t=new to(v("editor.readonly","Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}};nse.ID="editor.contrib.readOnlyMessageController";let P2=nse;_i(P2.ID,P2,2);var MOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},fge=function(n,e){return function(t,i){e(t,i,n)}};let zG=class extends ue{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=Gt(this,void 0);const s=Vr("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),r=Vr("_textModel.onDidChangeContent",Oe.debounce(o=>this._textModel.onDidChangeContent(o),()=>{},100));this._register(Na(async(o,a)=>{s.read(o),r.read(o);const l=a.add(new Awt),c=await this._outlineModelService.getOrCreate(this._textModel,l.token);a.isDisposed||this._currentModel.set(c,void 0)}))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(r=>e.contains(r.range.startLineNumber)&&!e.contains(r.range.endLineNumber));return s.sort(OLe(Jo(r=>r.range.endLineNumber-r.range.startLineNumber,Ru))),s.map(r=>({name:r.name,kind:r.kind,startLineNumber:r.range.startLineNumber}))}};zG=MOt([fge(1,Je),fge(2,aA)],zG);_4.setBreadcrumbsSourceFactory((n,e)=>e.createInstance(zG,n));var UG;(function(n){n.inspectTokensAction=v("inspectTokens","Developer: Inspect Tokens")})(UG||(UG={}));var R2;(function(n){n.gotoLineActionLabel=v("gotoLineActionLabel","Go to Line/Column...")})(R2||(R2={}));var jG;(function(n){n.helpQuickAccessActionLabel=v("helpQuickAccess","Show all Quick Access Providers")})(jG||(jG={}));var M2;(function(n){n.quickCommandActionLabel=v("quickCommandActionLabel","Command Palette"),n.quickCommandHelp=v("quickCommandActionHelp","Show And Run Commands")})(M2||(M2={}));var WD;(function(n){n.quickOutlineActionLabel=v("quickOutlineActionLabel","Go to Symbol..."),n.quickOutlineByCategoryActionLabel=v("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")})(WD||(WD={}));var O2;(function(n){n.editorViewAccessibleLabel=v("editorViewAccessibleLabel","Editor content"),n.accessibilityHelpMessage=v("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")})(O2||(O2={}));var qG;(function(n){n.toggleHighContrast=v("toggleHighContrast","Toggle High Contrast Theme")})(qG||(qG={}));var KG;(function(n){n.bulkEditServiceSummary=v("bulkEditServiceSummary","Made {0} edits in {1} files")})(KG||(KG={}));const sse=class sse extends ue{constructor(e){super(),this.editor=e,this.widget=null,Gh&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(92);!this.widget&&e?this.widget=new GG(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};sse.ID="editor.contrib.iPadShowKeyboard";let F2=sse;const w5=class w5 extends ue{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(ge(this._domNode,"touchstart",t=>{this.editor.focus()})),this._register(ge(this._domNode,"focus",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return w5.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};w5.ID="editor.contrib.ShowKeyboardWidget";let GG=w5;_i(F2.ID,F2,3);const Cc=ri("themeService");var OOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},pge=function(n,e){return function(t,i){e(t,i,n)}},XG,Cy;let VD=(Cy=class extends ue{static get(e){return e.getContribution(XG.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(s=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(s=>this.stop())),this._register(Xn.onDidChange(s=>this.stop())),this._register(this._editor.onKeyUp(s=>s.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new YG(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},XG=Cy,Cy.ID="editor.contrib.inspectTokens",Cy);VD=XG=OOt([pge(1,Cc),pge(2,Dn)],VD);class FOt extends Xe{constructor(){super({id:"editor.action.inspectTokens",label:UG.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=VD.get(t);i==null||i.launch()}}function BOt(n){let e="";for(let t=0,i=n.length;t<i;t++){const s=n.charCodeAt(t);switch(s){case 9:e+="→";break;case 32:e+="·";break;default:e+=String.fromCharCode(s)}}return e}function WOt(n,e){const t=Xn.get(e);if(t)return t;const i=n.encodeLanguageId(e);return{getInitialState:()=>sx,tokenize:(s,r,o)=>Rte(e,o),tokenizeEncoded:(s,r,o)=>v8(i,o)}}const C5=class C5 extends ue{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=WOt(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(i=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return C5._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let l=t.tokens1.length-1;l>=0;l--){const c=t.tokens1[l];if(e.column-1>=c.offset){i=l;break}}let s=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){s=l;break}const r=this._model.getLineContent(e.lineNumber);let o="";if(i<t.tokens1.length){const l=t.tokens1[i].offset,c=i+1<t.tokens1.length?t.tokens1[i+1].offset:r.length;o=r.substring(l,c)}Ir(this._domNode,Pe("h2.tm-token",void 0,BOt(o),Pe("span.tm-token-length",void 0,`${o.length} ${o.length===1?"char":"chars"}`))),ke(this._domNode,Pe("hr.tokens-inspect-separator",{style:"clear:both"}));const a=(s<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(s<<1)+1]):null;ke(this._domNode,Pe("table.tm-metadata-table",void 0,Pe("tbody",void 0,Pe("tr",void 0,Pe("td.tm-metadata-key",void 0,"language"),Pe("td.tm-metadata-value",void 0,`${a?a.languageId:"-?-"}`)),Pe("tr",void 0,Pe("td.tm-metadata-key",void 0,"token type"),Pe("td.tm-metadata-value",void 0,`${a?this._tokenTypeToString(a.tokenType):"-?-"}`)),Pe("tr",void 0,Pe("td.tm-metadata-key",void 0,"font style"),Pe("td.tm-metadata-value",void 0,`${a?this._fontStyleToString(a.fontStyle):"-?-"}`)),Pe("tr",void 0,Pe("td.tm-metadata-key",void 0,"foreground"),Pe("td.tm-metadata-value",void 0,`${a?Ce.Format.CSS.formatHex(a.foreground):"-?-"}`)),Pe("tr",void 0,Pe("td.tm-metadata-key",void 0,"background"),Pe("td.tm-metadata-value",void 0,`${a?Ce.Format.CSS.formatHex(a.background):"-?-"}`))))),ke(this._domNode,Pe("hr.tokens-inspect-separator")),i<t.tokens1.length&&ke(this._domNode,Pe("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=Xn.getColorMap(),i=La.getLanguageId(e),s=La.getTokenType(e),r=La.getFontStyle(e),o=La.getForeground(e),a=La.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:s,fontStyle:r,foreground:t[o],background:t[a]}}_tokenTypeToString(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(e){let t="";return e&1&&(t+="italic "),e&2&&(t+="bold "),e&4&&(t+="underline "),e&8&&(t+="strikethrough "),t.length===0&&(t="---"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),s=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:s.tokens,endState:i.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let i=1;i<e;i++)t=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,t).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};C5._ID="editor.contrib.inspectTokensWidget";let YG=C5;_i(VD.ID,VD,4);Ie(FOt);var ZG;(function(n){n[n.PRESERVE=0]="PRESERVE",n[n.LAST=1]="LAST"})(ZG||(ZG={}));const U0={Quickaccess:"workbench.contributions.quickaccess"};class VOt{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),lt(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return Qh([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}Vn.add(U0.Quickaccess,new VOt);var HOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},gge=function(n,e){return function(t,i){e(t,i,n)}},nk,Sy;let QG=(Sy=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=Vn.as(U0.Quickaccess)}provide(e){const t=new be;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const s=this.registry.getQuickAccessProvider(i.substr(nk.PREFIX.length));s&&s.prefix&&s.prefix!==nk.PREFIX&&this.quickInputService.quickAccess.show(s.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==nk.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((t,i)=>t.prefix.localeCompare(i.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,s=i||"…";return{prefix:i,label:s,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:v("helpPickAriaLabel","{0}, {1}",s,t.description),description:t.description}})}},nk=Sy,Sy.PREFIX="?",Sy);QG=nk=HOt([gge(0,cu),gge(1,Ni)],QG);Vn.as(U0.Quickaccess).registerQuickAccessProvider({ctor:QG,prefix:"",helpEntries:[{description:jG.helpQuickAccessActionLabel}]});class UNe{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,i){var o;const s=new be;e.canAcceptInBackground=!!((o=this.options)!=null&&o.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const r=s.add(new rr);return r.value=this.doProvide(e,t,i),s.add(this.onDidActiveTextEditorControlChange(()=>{r.value=void 0,r.value=this.doProvide(e,t)})),s}doProvide(e,t,i){const s=new be,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){const o={editor:r},a=VTe(r);if(a){let l=r.saveViewState()??void 0;s.add(a.onDidChangeCursorPosition(()=>{l=r.saveViewState()??void 0})),o.restoreViewState=()=>{l&&r===this.activeTextEditorControl&&r.restoreViewState(l)},s.add(i_(t.onCancellationRequested)(()=>{var c;return(c=o.restoreViewState)==null?void 0:c.call(o)}))}s.add(lt(()=>this.clearDecorations(r))),s.add(this.provideWithTextEditor(o,e,t,i))}else s.add(this.provideWithoutTextEditor(e,t));return s}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,"code.jump"),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const i=e.getModel();i&&"getLineContent"in i&&jf(`${i.getLineContent(t.range.startLineNumber)}`)}getModel(e){var t;return Hie(e)?(t=e.getModel())==null?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(i=>{const s=[];this.rangeHighlightDecorationId&&(s.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),s.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const r=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:Gn(FEe),position:cc.Full}}}],[o,a]=i.deltaDecorations(s,r);this.rangeHighlightDecorationId={rangeHighlightId:o,overviewRulerDecorationId:a}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(i=>{i.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}const S5=class S5 extends UNe{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=v("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,ue.None}provideWithTextEditor(e,t,i){const s=e.editor,r=new be;r.add(t.onDidAccept(l=>{const[c]=t.selectedItems;if(c){if(!this.isValidLineNumber(s,c.lineNumber))return;this.gotoLocation(e,{range:this.toRange(c.lineNumber,c.column),keyMods:t.keyMods,preserveFocus:l.inBackground}),l.inBackground||t.hide()}}));const o=()=>{const l=this.parsePosition(s,t.value.trim().substr(S5.PREFIX.length)),c=this.getPickLabel(s,l.lineNumber,l.column);if(t.items=[{lineNumber:l.lineNumber,column:l.column,label:c}],t.ariaLabel=c,!this.isValidLineNumber(s,l.lineNumber)){this.clearDecorations(s);return}const u=this.toRange(l.lineNumber,l.column);s.revealRangeInCenter(u,0),this.addDecorations(s,u)};o(),r.add(t.onDidChangeValue(()=>o()));const a=VTe(s);return a&&a.getOptions().get(68).renderType===2&&(a.updateOptions({lineNumbers:"on"}),r.add(lt(()=>a.updateOptions({lineNumbers:"relative"})))),r}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map(r=>parseInt(r,10)).filter(r=>!isNaN(r)),s=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:s+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?v("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):v("gotoLineLabel","Go to line {0}.",t);const s=e.getPosition()||{lineNumber:1,column:1},r=this.lineCount(e);return r>1?v("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",s.lineNumber,s.column,r):v("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",s.lineNumber,s.column)}isValidLineNumber(e,t){return!t||typeof t!="number"?!1:t>0&&t<=this.lineCount(e)}isValidColumn(e,t,i){if(!i||typeof i!="number")return!1;const s=this.getModel(e);if(!s)return!1;const r={lineNumber:t,column:i};return s.validatePosition(r).equals(r)}lineCount(e){var t;return((t=this.getModel(e))==null?void 0:t.getLineCount())??0}};S5.PREFIX=":";let JG=S5;var $Ot=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},zOt=function(n,e){return function(t,i){e(t,i,n)}};let HD=class extends JG{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=Oe.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};HD=$Ot([zOt(0,wi)],HD);var xy;let jNe=(xy=class extends Xe{constructor(){super({id:xy.ID,label:R2.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(cu).quickAccess.show(HD.PREFIX)}},xy.ID="editor.action.gotoLine",xy);Ie(jNe);Vn.as(U0.Quickaccess).registerQuickAccessProvider({ctor:HD,prefix:HD.PREFIX,helpEntries:[{description:R2.gotoLineActionLabel,commandId:jNe.ID}]});const qNe=[void 0,[]];function vV(n,e,t=0,i=0){const s=e;return s.values&&s.values.length>1?UOt(n,s.values,t,i):KNe(n,e,t,i)}function UOt(n,e,t,i){let s=0;const r=[];for(const o of e){const[a,l]=KNe(n,o,t,i);if(typeof a!="number")return qNe;s+=a,r.push(...l)}return[s,jOt(r)]}function KNe(n,e,t,i){const s=Jy(e.original,e.originalLowercase,t,n,n.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return s?[s[0],jN(s)]:qNe}function jOt(n){const e=n.sort((s,r)=>s.start-r.start),t=[];let i;for(const s of e)!i||!qOt(i,s)?(i=s,t.push(s)):(i.start=Math.min(i.start,s.start),i.end=Math.max(i.end,s.end));return t}function qOt(n,e){return!(n.end<e.start||e.end<n.start)}function mge(n){return n.startsWith('"')&&n.endsWith('"')}const GNe=" ";function eX(n){typeof n!="string"&&(n="");const e=n.toLowerCase(),{pathNormalized:t,normalized:i,normalizedLowercase:s}=_ge(n),r=t.indexOf(Bh)>=0,o=mge(n);let a;const l=n.split(GNe);if(l.length>1)for(const c of l){const u=mge(c),{pathNormalized:h,normalized:d,normalizedLowercase:f}=_ge(c);d&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:h,normalized:d,normalizedLowercase:f,expectContiguousMatch:u}))}return{original:n,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:s,values:a,containsPathSeparator:r,expectContiguousMatch:o}}function _ge(n){let e;qr?e=n.replace(/\//g,Bh):e=n.replace(/\\/g,Bh);const t=mct(e).replace(/\s|"/g,"");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function vge(n){return Array.isArray(n)?eX(n.map(e=>e.original).join(GNe)):eX(n.original)}var KOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},bge=function(n,e){return function(t,i){e(t,i,n)}},VM,Sh;let Db=(Sh=class extends UNe{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,v("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),ue.None}provideWithTextEditor(e,t,i,s){const r=e.editor,o=this.getModel(r);return o?this._languageFeaturesService.documentSymbolProvider.has(o)?this.doProvideWithEditorSymbols(e,o,t,i,s):this.doProvideWithoutEditorSymbols(e,o,t,i):ue.None}doProvideWithoutEditorSymbols(e,t,i,s){const r=new be;return this.provideLabelPick(i,v("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(t,r)||s.isCancellationRequested||r.add(this.doProvideWithEditorSymbols(e,t,i,s)))(),r}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new rL,s=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(s.dispose(),i.complete(!0))}));return t.add(lt(()=>i.complete(!1))),i.p}doProvideWithEditorSymbols(e,t,i,s,r){var h;const o=e.editor,a=new be;a.add(i.onDidAccept(d=>{var p;const[f]=i.selectedItems;f&&f.range&&(this.gotoLocation(e,{range:f.range.selection,keyMods:i.keyMods,preserveFocus:d.inBackground}),(p=r==null?void 0:r.handleAccept)==null||p.call(r,f),d.inBackground||i.hide())})),a.add(i.onDidTriggerItemButton(({item:d})=>{d&&d.range&&(this.gotoLocation(e,{range:d.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())}));const l=this.getDocumentSymbols(t,s);let c;const u=async d=>{c==null||c.dispose(!0),i.busy=!1,c=new Wn(s),i.busy=!0;try{const f=eX(i.value.substr(VM.PREFIX.length).trim()),p=await this.doGetSymbolPicks(l,f,void 0,c.token,t);if(s.isCancellationRequested)return;if(p.length>0){if(i.items=p,d&&f.original.length===0){const g=HT(p,m=>!!(m.type!=="separator"&&m.range&&O.containsPosition(m.range.decoration,d)));g&&(i.activeItems=[g])}}else f.original.length>0?this.provideLabelPick(i,v("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,v("noSymbolResults","No editor symbols"))}finally{s.isCancellationRequested||(i.busy=!1)}};return a.add(i.onDidChangeValue(()=>u(void 0))),u((h=o.getSelection())==null?void 0:h.getPosition()),a.add(i.onDidChangeActive(()=>{const[d]=i.activeItems;d&&d.range&&(o.revealRangeInCenter(d.range.selection,0),this.addDecorations(o,d.range.decoration))})),a}async doGetSymbolPicks(e,t,i,s,r){var m,_;const o=await e;if(s.isCancellationRequested)return[];const a=t.original.indexOf(VM.SCOPE_PREFIX)===0,l=a?1:0;let c,u;t.values&&t.values.length>1?(c=vge(t.values[0]),u=vge(t.values.slice(1))):c=t;let h;const d=(_=(m=this.options)==null?void 0:m.openSideBySideDirection)==null?void 0:_.call(m);d&&(h=[{iconClass:d==="right"?ft.asClassName(Ne.splitHorizontal):ft.asClassName(Ne.splitVertical),tooltip:d==="right"?v("openToSide","Open to the Side"):v("openToBottom","Open to the Bottom")}]);const f=[];for(let b=0;b<o.length;b++){const w=o[b],C=pct(w.name),S=`$(${BF.toIcon(w.kind).id}) ${C}`,x=S.length-C.length;let k=w.containerName;i!=null&&i.extraContainerLabel&&(k?k=`${i.extraContainerLabel} • ${k}`:k=i.extraContainerLabel);let L,E,A,I;if(t.original.length>l){let N=!1;if(c!==t&&([L,E]=vV(S,{...t,values:void 0},l,x),typeof L=="number"&&(N=!0)),typeof L!="number"&&([L,E]=vV(S,c,l,x),typeof L!="number"))continue;if(!N&&u){if(k&&u.original.length>0&&([A,I]=vV(k,u)),typeof A!="number")continue;typeof L=="number"&&(L+=A)}}const T=w.tags&&w.tags.indexOf(1)>=0;f.push({index:b,kind:w.kind,score:L,label:S,ariaLabel:_1t(w.name,w.kind),description:k,highlights:T?void 0:{label:E,description:I},range:{selection:O.collapseToStart(w.selectionRange),decoration:w.range},uri:r.uri,symbolName:C,strikethrough:T,buttons:h})}const p=f.sort((b,w)=>a?this.compareByKindAndScore(b,w):this.compareByScore(b,w));let g=[];if(a){let b=function(){C&&typeof w=="number"&&S>0&&(C.label=zy(yV[w]||bV,S))},w,C,S=0;for(const x of p)w!==x.kind?(b(),w=x.kind,S=1,C={type:"separator"},g.push(C)):S++,g.push(x);b()}else p.length>0&&(g=[{label:v("symbols","symbols ({0})",f.length),type:"separator"},...p]);return g}compareByScore(e,t){if(typeof e.score!="number"&&typeof t.score=="number")return 1;if(typeof e.score=="number"&&typeof t.score!="number")return-1;if(typeof e.score=="number"&&typeof t.score=="number"){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}compareByKindAndScore(e,t){const i=yV[e.kind]||bV,s=yV[t.kind]||bV,r=i.localeCompare(s);return r===0?this.compareByScore(e,t):r}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}},VM=Sh,Sh.PREFIX="@",Sh.SCOPE_PREFIX=":",Sh.PREFIX_BY_CATEGORY=`${Sh.PREFIX}${Sh.SCOPE_PREFIX}`,Sh);Db=VM=KOt([bge(0,Je),bge(1,aA)],Db);const bV=v("property","properties ({0})"),yV={5:v("method","methods ({0})"),11:v("function","functions ({0})"),8:v("_constructor","constructors ({0})"),12:v("variable","variables ({0})"),4:v("class","classes ({0})"),22:v("struct","structs ({0})"),23:v("event","events ({0})"),24:v("operator","operators ({0})"),10:v("interface","interfaces ({0})"),2:v("namespace","namespaces ({0})"),3:v("package","packages ({0})"),25:v("typeParameter","type parameters ({0})"),1:v("modules","modules ({0})"),6:v("property","properties ({0})"),9:v("enum","enumerations ({0})"),21:v("enumMember","enumeration members ({0})"),14:v("string","strings ({0})"),0:v("file","files ({0})"),17:v("array","arrays ({0})"),15:v("number","numbers ({0})"),16:v("boolean","booleans ({0})"),18:v("object","objects ({0})"),19:v("key","keys ({0})"),7:v("field","fields ({0})"),13:v("constant","constants ({0})")};var GOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},wV=function(n,e){return function(t,i){e(t,i,n)}};let tX=class extends Db{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Oe.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};tX=GOt([wV(0,wi),wV(1,Je),wV(2,aA)],tX);const x5=class x5 extends Xe{constructor(){super({id:x5.ID,label:WD.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:H.hasDocumentSymbolProvider,kbOpts:{kbExpr:H.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(cu).quickAccess.show(Db.PREFIX,{itemActivation:gh.NONE})}};x5.ID="editor.action.quickOutline";let B2=x5;Ie(B2);Vn.as(U0.Quickaccess).registerQuickAccessProvider({ctor:tX,prefix:Db.PREFIX,helpEntries:[{description:WD.quickOutlineActionLabel,prefix:Db.PREFIX,commandId:B2.ID},{description:WD.quickOutlineByCategoryActionLabel,prefix:Db.PREFIX_BY_CATEGORY}]});function XOt(n){const e=new Map;for(const t of n)e.set(t,(e.get(t)??0)+1);return e}class oI{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),s=new Map,r=[];for(const[o,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const c=this.computeSimilarityScore(l,i,s);c>0&&r.push({key:o,score:c})}}return r}static termFrequencies(e){return XOt(oI.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield t(i);const s=i.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(s.length>1)for(const r of s)r.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(r)&&(yield t(r))}}updateDocuments(e){for(const{key:t}of e)this.deleteDocument(t);for(const t of e){const i=[];for(const s of t.textChunks){const r=oI.termFrequencies(s);for(const o of r.keys())this.chunkOccurrences.set(o,(this.chunkOccurrences.get(o)??0)+1);i.push({text:s,tf:r})}this.chunkCount+=i.length,this.documents.set(t.key,{chunks:i})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const i of t.chunks)for(const s of i.tf.keys()){const r=this.chunkOccurrences.get(s);if(typeof r=="number"){const o=r-1;o<=0?this.chunkOccurrences.delete(s):this.chunkOccurrences.set(s,o)}}}}computeSimilarityScore(e,t,i){let s=0;for(const[r,o]of Object.entries(t)){const a=e.tf.get(r);if(!a)continue;let l=i.get(r);typeof l!="number"&&(l=this.computeIdf(r),i.set(r,l));const c=a*l;s+=c*o}return s}computeEmbedding(e){const t=oI.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){const t=this.chunkOccurrences.get(e)??0;return t>0?Math.log((this.chunkCount+1)/t):0}computeTfidf(e){const t=Object.create(null);for(const[i,s]of e){const r=this.computeIdf(i);r>0&&(t[i]=s*r)}return t}}function YOt(n){var i;const e=n.slice(0);e.sort((s,r)=>r.score-s.score);const t=((i=e[0])==null?void 0:i.score)??0;if(t>0)for(const s of e)s.score/=t;return e}var nC;(function(n){n[n.NO_ACTION=0]="NO_ACTION",n[n.CLOSE_PICKER=1]="CLOSE_PICKER",n[n.REFRESH_PICKER=2]="REFRESH_PICKER",n[n.REMOVE_ITEM=3]="REMOVE_ITEM"})(nC||(nC={}));function CV(n){const e=n;return Array.isArray(e.items)}function yge(n){const e=n;return!!e.picks&&e.additionalPicks instanceof Promise}class ZOt extends ue{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){var c;const s=new be;e.canAcceptInBackground=!!((c=this.options)!=null&&c.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let r;const o=s.add(new rr),a=async()=>{var m;const u=o.value=new be;r==null||r.dispose(!0),e.busy=!1,r=new Wn(t);const h=r.token;let d=e.value.substring(this.prefix.length);(m=this.options)!=null&&m.shouldSkipTrimPickFilter||(d=d.trim());const f=this._getPicks(d,u,h,i),p=(_,b)=>{var S;let w,C;if(CV(_)?(w=_.items,C=_.active):w=_,w.length===0){if(b)return!1;(d.length>0||e.hideInput)&&((S=this.options)!=null&&S.noResultsPick)&&(gT(this.options.noResultsPick)?w=[this.options.noResultsPick(d)]:w=[this.options.noResultsPick])}return e.items=w,C&&(e.activeItems=[C]),!0},g=async _=>{let b=!1,w=!1;await Promise.all([(async()=>{typeof _.mergeDelay=="number"&&(await Uf(_.mergeDelay),h.isCancellationRequested)||w||(b=p(_.picks,!0))})(),(async()=>{e.busy=!0;try{const C=await _.additionalPicks;if(h.isCancellationRequested)return;let S,x;CV(_.picks)?(S=_.picks.items,x=_.picks.active):S=_.picks;let k,L;if(CV(C)?(k=C.items,L=C.active):k=C,k.length>0||!b){let E;if(!x&&!L){const A=e.activeItems[0];A&&S.indexOf(A)!==-1&&(E=A)}p({items:[...S,...k],active:x||L||E})}}finally{h.isCancellationRequested||(e.busy=!1),w=!0}})()])};if(f!==null)if(yge(f))await g(f);else if(!(f instanceof Promise))p(f);else{e.busy=!0;try{const _=await f;if(h.isCancellationRequested)return;yge(_)?await g(_):p(_)}finally{h.isCancellationRequested||(e.busy=!1)}}};s.add(e.onDidChangeValue(()=>a())),a(),s.add(e.onDidAccept(u=>{var d;if(i!=null&&i.handleAccept){u.inBackground||e.hide(),(d=i.handleAccept)==null||d.call(i,e.activeItems[0]);return}const[h]=e.selectedItems;typeof(h==null?void 0:h.accept)=="function"&&(u.inBackground||e.hide(),h.accept(e.keyMods,u))}));const l=async(u,h)=>{var f;if(typeof h.trigger!="function")return;const d=((f=h.buttons)==null?void 0:f.indexOf(u))??-1;if(d>=0){const p=h.trigger(d,e.keyMods),g=typeof p=="number"?p:await p;if(t.isCancellationRequested)return;switch(g){case nC.NO_ACTION:break;case nC.CLOSE_PICKER:e.hide();break;case nC.REFRESH_PICKER:a();break;case nC.REMOVE_ITEM:{const m=e.items.indexOf(h);if(m!==-1){const _=e.items.slice(),b=_.splice(m,1),w=e.activeItems.filter(S=>S!==b[0]),C=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=_,w&&(e.activeItems=w),e.keepScrollPosition=C}break}}}};return s.add(e.onDidTriggerItemButton(({button:u,item:h})=>l(u,h))),s.add(e.onDidTriggerSeparatorButton(({button:u,separator:h})=>l(u,h))),s}}var XNe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Gm=function(n,e){return function(t,i){e(t,i,n)}},Cv,Ns,df;let iX=(df=class extends ZOt{constructor(e,t,i,s,r,o){super(Cv.PREFIX,e),this.instantiationService=t,this.keybindingService=i,this.commandService=s,this.telemetryService=r,this.dialogService=o,this.commandsHistory=this._register(this.instantiationService.createInstance(nX)),this.options=e}async _getPicks(e,t,i,s){var f,p;const r=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const o=i_(()=>{const g=new oI;g.updateDocuments(r.map(_=>({key:_.commandId,textChunks:[this.getTfIdfChunk(_)]})));const m=g.calculateScores(e,i);return YOt(m).filter(_=>_.score>Cv.TFIDF_THRESHOLD).slice(0,Cv.TFIDF_MAX_RESULTS)}),a=[];for(const g of r){const m=Cv.WORD_FILTER(e,g.label)??void 0,_=g.commandAlias?Cv.WORD_FILTER(e,g.commandAlias)??void 0:void 0;if(m||_)g.highlights={label:m,detail:this.options.showAlias?_:void 0},a.push(g);else if(e===g.commandId)a.push(g);else if(e.length>=3){const b=o();if(i.isCancellationRequested)return[];const w=b.find(C=>C.key===g.commandId);w&&(g.tfIdfScore=w.score,a.push(g))}}const l=new Map;for(const g of a){const m=l.get(g.label);m?(g.description=g.commandId,m.description=m.commandId):l.set(g.label,g)}a.sort((g,m)=>{if(g.tfIdfScore&&m.tfIdfScore)return g.tfIdfScore===m.tfIdfScore?g.label.localeCompare(m.label):m.tfIdfScore-g.tfIdfScore;if(g.tfIdfScore)return 1;if(m.tfIdfScore)return-1;const _=this.commandsHistory.peek(g.commandId),b=this.commandsHistory.peek(m.commandId);if(_&&b)return _>b?-1:1;if(_)return-1;if(b)return 1;if(this.options.suggestedCommandIds){const w=this.options.suggestedCommandIds.has(g.commandId),C=this.options.suggestedCommandIds.has(m.commandId);if(w&&C)return 0;if(w)return-1;if(C)return 1}return g.label.localeCompare(m.label)});const c=[];let u=!1,h=!0,d=!!this.options.suggestedCommandIds;for(let g=0;g<a.length;g++){const m=a[g];g===0&&this.commandsHistory.peek(m.commandId)&&(c.push({type:"separator",label:v("recentlyUsed","recently used")}),u=!0),h&&m.tfIdfScore!==void 0&&(c.push({type:"separator",label:v("suggested","similar commands")}),h=!1),d&&m.tfIdfScore===void 0&&!this.commandsHistory.peek(m.commandId)&&((f=this.options.suggestedCommandIds)!=null&&f.has(m.commandId))&&(c.push({type:"separator",label:v("commonlyUsed","commonly used")}),u=!0,d=!1),u&&m.tfIdfScore===void 0&&!this.commandsHistory.peek(m.commandId)&&!((p=this.options.suggestedCommandIds)!=null&&p.has(m.commandId))&&(c.push({type:"separator",label:v("morecCommands","other commands")}),u=!1),c.push(this.toCommandPick(m,s))}return this.hasAdditionalCommandPicks(e,i)?{picks:c,additionalPicks:(async()=>{var _;const g=await this.getAdditionalCommandPicks(r,a,e,i);if(i.isCancellationRequested)return[];const m=g.map(b=>this.toCommandPick(b,s));return h&&((_=m[0])==null?void 0:_.type)!=="separator"&&m.unshift({type:"separator",label:v("suggested","similar commands")}),m})()}:c}toCommandPick(e,t){if(e.type==="separator")return e;const i=this.keybindingService.lookupKeybinding(e.commandId),s=i?v("commandPickAriaLabelWithKeybinding","{0}, {1}",e.label,i.getAriaLabel()):e.label;return{...e,ariaLabel:s,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,accept:async()=>{var r;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:(t==null?void 0:t.from)??"quick open"});try{(r=e.args)!=null&&r.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(o){ou(o)||this.dialogService.error(v("canNotRun","Command '{0}' resulted in an error",e.label),L4(o))}}}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:i}){let s=e;return t&&t!==e&&(s+=` - ${t}`),i&&i.value!==e&&(s+=` - ${i.value===i.original?i.value:`${i.value} (${i.original})`}`),s}},Cv=df,df.PREFIX=">",df.TFIDF_THRESHOLD=.5,df.TFIDF_MAX_RESULTS=5,df.WORD_FILTER=Kte(tD,r0t,Bke),df);iX=Cv=XNe([Gm(1,ct),Gm(2,Ni),Gm(3,an),Gm(4,Ro),Gm(5,cA)],iX);var xh;let nX=(xh=class extends ue{constructor(e,t,i){super(),this.storageService=e,this.configurationService=t,this.logService=i,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===lD.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=Ns.getConfiguredCommandHistoryLength(this.configurationService),Ns.cache&&Ns.cache.limit!==this.configuredCommandsHistoryLength&&(Ns.cache.limit=this.configuredCommandsHistoryLength,Ns.hasChanges=!0))}load(){const e=this.storageService.get(Ns.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(s){this.logService.error(`[CommandsHistory] invalid data: ${s}`)}const i=Ns.cache=new np(this.configuredCommandsHistoryLength,1);if(t){let s;t.usesLRU?s=t.entries:s=t.entries.sort((r,o)=>r.value-o.value),s.forEach(r=>i.set(r.key,r.value))}Ns.counter=this.storageService.getNumber(Ns.PREF_KEY_COUNTER,0,Ns.counter)}push(e){Ns.cache&&(Ns.cache.set(e,Ns.counter++),Ns.hasChanges=!0)}peek(e){var t;return(t=Ns.cache)==null?void 0:t.peek(e)}saveState(){if(!Ns.cache||!Ns.hasChanges)return;const e={usesLRU:!0,entries:[]};Ns.cache.forEach((t,i)=>e.entries.push({key:i,value:t})),this.storageService.store(Ns.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(Ns.PREF_KEY_COUNTER,Ns.counter,0,0),Ns.hasChanges=!1}static getConfiguredCommandHistoryLength(e){var s,r;const i=(r=(s=e.getValue().workbench)==null?void 0:s.commandPalette)==null?void 0:r.history;return typeof i=="number"?i:Ns.DEFAULT_COMMANDS_HISTORY_LENGTH}},Ns=xh,xh.DEFAULT_COMMANDS_HISTORY_LENGTH=50,xh.PREF_KEY_CACHE="commandPalette.mru.cache",xh.PREF_KEY_COUNTER="commandPalette.mru.counter",xh.counter=1,xh.hasChanges=!1,xh);nX=Ns=XNe([Gm(0,Ju),Gm(1,Xt),Gm(2,co)],nX);class QOt extends iX{constructor(e,t,i,s,r,o){super(e,t,i,s,r,o)}getCodeEditorCommandPicks(){var i;const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const s of e.getSupportedActions()){let r;(i=s.metadata)!=null&&i.description&&(qCt(s.metadata.description)?r=s.metadata.description:r={original:s.metadata.description,value:s.metadata.description}),t.push({commandId:s.id,commandAlias:s.alias,commandDescription:r,label:Jte(s.label)||s.id})}return t}}var JOt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},yw=function(n,e){return function(t,i){e(t,i,n)}};let $D=class extends QOt{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(e,t,i,s,r,o){super({showAlias:!1},e,i,s,r,o),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};$D=JOt([yw(0,ct),yw(1,wi),yw(2,Ni),yw(3,an),yw(4,Ro),yw(5,cA)],$D);const L5=class L5 extends Xe{constructor(){super({id:L5.ID,label:M2.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(cu).quickAccess.show($D.PREFIX)}};L5.ID="editor.action.quickCommand";let W2=L5;Ie(W2);Vn.as(U0.Quickaccess).registerQuickAccessProvider({ctor:$D,prefix:$D.PREFIX,helpEntries:[{description:M2.quickCommandHelp,commandId:W2.ID}]});var eFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},ww=function(n,e){return function(t,i){e(t,i,n)}};let sX=class extends u0{constructor(e,t,i,s,r,o,a){super(!0,e,t,i,s,r,o,a)}};sX=eFt([ww(1,bt),ww(2,wi),ww(3,ms),ww(4,ct),ww(5,Ju),ww(6,Xt)],sX);_i(u0.ID,sX,4);class tFt{constructor(e,t,i,s,r){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=s,this.background=r}}function iFt(n){if(!n||!Array.isArray(n))return[];const e=[];let t=0;for(let i=0,s=n.length;i<s;i++){const r=n[i];let o=-1;if(typeof r.fontStyle=="string"){o=0;const c=r.fontStyle.split(" ");for(let u=0,h=c.length;u<h;u++)switch(c[u]){case"italic":o=o|1;break;case"bold":o=o|2;break;case"underline":o=o|4;break;case"strikethrough":o=o|8;break}}let a=null;typeof r.foreground=="string"&&(a=r.foreground);let l=null;typeof r.background=="string"&&(l=r.background),e[t++]=new tFt(r.token||"",i,o,a,l)}return e}function nFt(n,e){n.sort((u,h)=>{const d=lFt(u.token,h.token);return d!==0?d:u.index-h.index});let t=0,i="000000",s="ffffff";for(;n.length>=1&&n[0].token==="";){const u=n.shift();u.fontStyle!==-1&&(t=u.fontStyle),u.foreground!==null&&(i=u.foreground),u.background!==null&&(s=u.background)}const r=new rFt;for(const u of e)r.getId(u);const o=r.getId(i),a=r.getId(s),l=new Vne(t,o,a),c=new Hne(l);for(let u=0,h=n.length;u<h;u++){const d=n[u];c.insert(d.token,d.fontStyle,r.getId(d.foreground),r.getId(d.background))}return new YNe(r,c)}const sFt=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class rFt{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(e===null)return 0;const t=e.match(sFt);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();let i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=Ce.fromHex("#"+e),i)}getColorMap(){return this._id2color.slice(0)}}class YNe{static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(iFt(e),t)}static createFromParsedTokenTheme(e,t){return nFt(e,t)}constructor(e,t){this._colorMap=e,this._root=t,this._cache=new Map}getColorMap(){return this._colorMap.getColorMap()}_match(e){return this._root.match(e)}match(e,t){let i=this._cache.get(t);if(typeof i>"u"){const s=this._match(t),r=aFt(t);i=(s.metadata|r<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const oFt=/\b(comment|string|regex|regexp)\b/;function aFt(n){const e=n.match(oFt);if(!e)return 0;switch(e[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function lFt(n,e){return n<e?-1:n>e?1:0}class Vne{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new Vne(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class Hne{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e==="")return this._mainRule;const t=e.indexOf(".");let i,s;t===-1?(i=e,s=""):(i=e.substring(0,t),s=e.substring(t+1));const r=this._children.get(i);return typeof r<"u"?r.match(s):this._mainRule}insert(e,t,i,s){if(e===""){this._mainRule.acceptOverwrite(t,i,s);return}const r=e.indexOf(".");let o,a;r===-1?(o=e,a=""):(o=e.substring(0,r),a=e.substring(r+1));let l=this._children.get(o);typeof l>"u"&&(l=new Hne(this._mainRule.clone()),this._children.set(o,l)),l.insert(a,t,i,s)}}function cFt(n){const e=[];for(let t=1,i=n.length;t<i;t++){const s=n[t];e[t]=`.mtk${t} { color: ${s}; }`}return e.push(".mtki { font-style: italic; }"),e.push(".mtkb { font-weight: bold; }"),e.push(".mtku { text-decoration: underline; text-underline-position: under; }"),e.push(".mtks { text-decoration: line-through; }"),e.push(".mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }"),e.join(` +`)}const uFt={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[Jh]:"#FFFFFE",[sp]:"#000000",[uEe]:"#E5EBF1",[FN]:"#D3D3D3",[BN]:"#939393",[ste]:"#ADD6FF4D"}},hFt={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[Jh]:"#1E1E1E",[sp]:"#D4D4D4",[uEe]:"#3A3D41",[FN]:"#404040",[BN]:"#707070",[ste]:"#ADD6FF26"}},dFt={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[Jh]:"#000000",[sp]:"#FFFFFF",[FN]:"#FFFFFF",[BN]:"#FFFFFF"}},fFt={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[Jh]:"#FFFFFF",[sp]:"#292929",[FN]:"#292929",[BN]:"#292929"}};function pFt(n){const e=new be,t=e.add(new oe),i=oIe();return e.add(i.onDidChange(()=>t.fire())),n&&e.add(n.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const s=n?n.getProductIconTheme():new ZNe,r={},o=[],a=[];for(const l of i.getIcons()){const c=s.getIcon(l);if(!c)continue;const u=c.font,h=`--vscode-icon-${l.id}-font-family`,d=`--vscode-icon-${l.id}-content`;u?(r[u.id]=u.definition,a.push(`${h}: ${W7(u.id)};`,`${d}: '${c.fontCharacter}';`),o.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; font-family: ${W7(u.id)}; }`)):(a.push(`${d}: '${c.fontCharacter}'; ${h}: 'codicon';`),o.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; }`))}for(const l in r){const c=r[l],u=c.weight?`font-weight: ${c.weight};`:"",h=c.style?`font-style: ${c.style};`:"",d=c.src.map(f=>`${Wg(f.location)} format('${f.format}')`).join(", ");o.push(`@font-face { src: ${d}; font-family: ${W7(l)};${u}${h} font-display: block; }`)}return o.push(`:root { ${a.join(" ")} }`),o.join(` +`)}}}class ZNe{getIcon(e){const t=oIe();let i=e.defaults;for(;ft.isThemeIcon(i);){const s=t.getIcon(i.id);if(!s)return;i=s.defaults}return i}}const Gp="vs",rS="vs-dark",Nb="hc-black",Ab="hc-light",QNe=Vn.as(sEe.ColorContribution),gFt=Vn.as(AEe.ThemingContribution);class JNe{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(HM(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,Ce.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=rX(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,Ce.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=QNe.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case Gp:return zc.LIGHT;case Nb:return zc.HIGH_CONTRAST_DARK;case Ab:return zc.HIGH_CONTRAST_LIGHT;default:return zc.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const r=rX(this.themeData.base);e=r.rules,r.encodedTokensColors&&(t=r.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],s=this.themeData.colors["editor.background"];if(i||s){const r={token:""};i&&(r.foreground=i),s&&(r.background=s),e.push(r)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=YNe.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const r=this.tokenTheme._match([e].concat(t).join(".")).metadata,o=La.getForeground(r),a=La.getFontStyle(r);return{foreground:o,italic:!!(a&1),bold:!!(a&2),underline:!!(a&4),strikethrough:!!(a&8)}}}function HM(n){return n===Gp||n===rS||n===Nb||n===Ab}function rX(n){switch(n){case Gp:return uFt;case rS:return hFt;case Nb:return dFt;case Ab:return fFt}}function rR(n){const e=rX(n);return new JNe(n,e)}class mFt extends ue{constructor(){super(),this._onColorThemeChange=this._register(new oe),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new oe),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new ZNe,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(Gp,rR(Gp)),this._knownThemes.set(rS,rR(rS)),this._knownThemes.set(Nb,rR(Nb)),this._knownThemes.set(Ab,rR(Ab));const e=this._register(pFt(this));this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(Gp),this._onOSSchemeChanged(),this._register(e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),bxe(Gi,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(e){return fF(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=fc(void 0,e=>{e.className="monaco-colors",e.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),ue.None}_registerShadowDomContainer(e){const t=fc(e,i=>{i.className="monaco-colors",i.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let i=0;i<this._styleElements.length;i++)if(this._styleElements[i]===t){this._styleElements.splice(i,1);return}}}}defineTheme(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!HM(t.base)&&!HM(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new JNe(e,t)),HM(e)&&this._knownThemes.forEach(i=>{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(Gp),this._updateActualTheme(t)}_updateActualTheme(e){!e||this._theme===e||(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=Gi.matchMedia("(forced-colors: active)").matches;if(e!==Vh(this._theme.type)){let t;ex(this._theme.type)?t=e?Nb:rS:t=e?Ab:Gp,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:o=>{t[o]||(e.push(o),t[o]=!0)}};gFt.getThemingParticipants().forEach(o=>o(this._theme,i,this._environment));const s=[];for(const o of QNe.getColors()){const a=this._theme.getColor(o.id,!0);a&&s.push(`${ete(o.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${s.join(` +`)} }`);const r=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(cFt(r)),this._themeCSS=e.join(` +`),this._updateCSS(),Xn.setColorMap(r),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}class _Ft extends Xe{constructor(){super({id:"editor.action.toggleHighContrast",label:qG.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(Cc),s=i.getColorTheme();Vh(s.type)?(i.setTheme(this._originalThemeName||(ex(s.type)?rS:Gp)),this._originalThemeName=null):(i.setTheme(ex(s.type)?Nb:Ab),this._originalThemeName=s.themeName)}}Ie(_Ft);function vFt(n,e,t){return new bFt(n,e,t)}class bFt extends Pie{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!="function")return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?Qee(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const s=(a,l)=>e.fmr(a,l),r=(a,l)=>function(){const c=Array.prototype.slice.call(arguments,0);return l(a,c)},o={};for(const a of i)o[a]=r(a,s);return o})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}function yFt(n){return Array.isArray(n)}function wFt(n){return!yFt(n)}function eAe(n){return typeof n=="string"}function wge(n){return!eAe(n)}function Wv(n){return!n}function kg(n,e){return n.ignoreCase&&e?e.toLowerCase():e}function Cge(n){return n.replace(/[&<>'"_]/g,"-")}function CFt(n,e){console.log(`${n.languageId}: ${e}`)}function bn(n,e){return new Error(`${n.languageId}: ${e}`)}function Xm(n,e,t,i,s){const r=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let o=null;return e.replace(r,function(a,l,c,u,h,d,f,p,g){return Wv(c)?Wv(u)?!Wv(h)&&h<i.length?kg(n,i[h]):!Wv(f)&&n&&typeof n[f]=="string"?n[f]:(o===null&&(o=s.split("."),o.unshift(s)),!Wv(d)&&d<o.length?kg(n,o[d]):""):kg(n,t):"$"})}function SFt(n,e,t){const i=/\$[sS](\d\d?)/g;let s=null;return e.replace(i,function(r,o){return s===null&&(s=t.split("."),s.unshift(t)),!Wv(o)&&o<s.length?kg(n,s[o]):""})}function oR(n,e){let t=e;for(;t&&t.length>0;){const i=n.tokenizer[t];if(i)return i;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return null}function xFt(n,e){let t=e;for(;t&&t.length>0;){if(n.stateNames[t])return!0;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return!1}var LFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},EFt=function(n,e){return function(t,i){e(t,i,n)}},oX;const tAe=5,E5=class E5{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new oS(e,t);let i=oS.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let s=this._entries[i];return s||(s=new oS(e,t),this._entries[i]=s,s)}};E5._INSTANCE=new E5(tAe);let zD=E5;class oS{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;e!==null;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return oS._equals(this,e)}push(e){return zD.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return zD.create(this.parent,e)}}class sC{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new sC(this.languageId,this.state)}}const k5=class k5{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(t!==null)return new aI(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new aI(e,t);const i=oS.getStackElementId(e);let s=this._entries[i];return s||(s=new aI(e,null),this._entries[i]=s,s)}};k5._INSTANCE=new k5(tAe);let Ym=k5;class aI{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:Ym.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof aI)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class kFt{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new MT(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,s){const r=i.languageId,o=i.state,a=Xn.get(r);if(!a)return this.enterLanguage(r),this.emit(s,""),o;const l=a.tokenize(e,t,o);if(s!==0)for(const c of l.tokens)this._tokens.push(new MT(c.offset+s,c.type,c.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new vte(this._tokens,e)}}class V2{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const s=e!==null?e.length:0,r=t.length,o=i!==null?i.length:0;if(s===0&&r===0&&o===0)return new Uint32Array(0);if(s===0&&r===0)return i;if(r===0&&o===0)return e;const a=new Uint32Array(s+r+o);e!==null&&a.set(e);for(let l=0;l<r;l++)a[s+l]=t[l];return i!==null&&a.set(i,s+r),a}nestedLanguageTokenize(e,t,i,s){const r=i.languageId,o=i.state,a=Xn.get(r);if(!a)return this.enterLanguage(r),this.emit(s,""),o;const l=a.tokenizeEncoded(e,t,o);if(s!==0)for(let c=0,u=l.tokens.length;c<u;c+=2)l.tokens[c]+=s;return this._prependTokens=V2._merge(this._prependTokens,this._tokens,l.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,l.endState}finalize(e){return new p8(V2._merge(this._prependTokens,this._tokens,null),e)}}let UD=oX=class extends ue{constructor(e,t,i,s,r){super(),this._configurationService=r,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=s,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let o=!1;this._register(Xn.onDidChange(a=>{if(o)return;let l=!1;for(let c=0,u=a.changedLanguages.length;c<u;c++){const h=a.changedLanguages[c];if(this._embeddedLanguages[h]){l=!0;break}}l&&(o=!0,Xn.handleChange([this._languageId]),o=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}),this._register(this._configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=Xn.get(t);if(i){if(i instanceof oX){const s=i.getLoadStatus();s.loaded===!1&&e.push(s.promise)}continue}Xn.isResolved(t)||e.push(Xn.getOrCreate(t))}return e.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(t=>{})}}getInitialState(){const e=zD.create(null,this._lexer.start);return Ym.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return Rte(this._languageId,i);const s=new kFt,r=this._tokenize(e,t,i,s);return s.finalize(r)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return v8(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const s=new V2(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),r=this._tokenize(e,t,i,s);return s.finalize(r)}_tokenize(e,t,i,s){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,s):this._myTokenize(e,t,i,0,s)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=oR(this._lexer,t.stack.state),!i))throw bn(this._lexer,"tokenizer state is not defined: "+t.stack.state);let s=-1,r=!1;for(const o of i){if(!wge(o.action)||o.action.nextEmbedded!=="@pop")continue;r=!0;let a=o.resolveRegex(t.stack.state);const l=a.source;if(l.substr(0,4)==="^(?:"&&l.substr(l.length-1,1)===")"){const u=(a.ignoreCase?"i":"")+(a.unicode?"u":"");a=new RegExp(l.substr(4,l.length-5),u)}const c=e.search(a);c===-1||c!==0&&o.matchOnlyAtLineStart||(s===-1||c<s)&&(s=c)}if(!r)throw bn(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return s}_nestedTokenize(e,t,i,s,r){const o=this._findLeavingNestedLanguageOffset(e,i);if(o===-1){const c=r.nestedLanguageTokenize(e,t,i.embeddedLanguageData,s);return Ym.create(i.stack,new sC(i.embeddedLanguageData.languageId,c))}const a=e.substring(0,o);a.length>0&&r.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,s);const l=e.substring(o);return this._myTokenize(l,t,i,s+o,r)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,s,r){r.enterLanguage(this._languageId);const o=e.length,a=t&&this._lexer.includeLF?e+` +`:e,l=a.length;let c=i.embeddedLanguageData,u=i.stack,h=0,d=null,f=!0;for(;f||h<l;){const p=h,g=u.depth,m=d?d.groups.length:0,_=u.state;let b=null,w=null,C=null,S=null,x=null;if(d){b=d.matches;const E=d.groups.shift();w=E.matched,C=E.action,S=d.rule,d.groups.length===0&&(d=null)}else{if(!f&&h>=l)break;f=!1;let E=this._lexer.tokenizer[_];if(!E&&(E=oR(this._lexer,_),!E))throw bn(this._lexer,"tokenizer state is not defined: "+_);const A=a.substr(h);for(const I of E)if((h===0||!I.matchOnlyAtLineStart)&&(b=A.match(I.resolveRegex(_)),b)){w=b[0],C=I.action;break}}if(b||(b=[""],w=""),C||(h<l&&(b=[a.charAt(h)],w=b[0]),C=this._lexer.defaultToken),w===null)break;for(h+=w.length;wFt(C)&&wge(C)&&C.test;)C=C.test(w,b,_,h===l);let k=null;if(typeof C=="string"||Array.isArray(C))k=C;else if(C.group)k=C.group;else if(C.token!==null&&C.token!==void 0){if(C.tokenSubst?k=Xm(this._lexer,C.token,w,b,_):k=C.token,C.nextEmbedded)if(C.nextEmbedded==="@pop"){if(!c)throw bn(this._lexer,"cannot pop embedded language if not inside one");c=null}else{if(c)throw bn(this._lexer,"cannot enter embedded language from within an embedded language");x=Xm(this._lexer,C.nextEmbedded,w,b,_)}if(C.goBack&&(h=Math.max(0,h-C.goBack)),C.switchTo&&typeof C.switchTo=="string"){let E=Xm(this._lexer,C.switchTo,w,b,_);if(E[0]==="@"&&(E=E.substr(1)),oR(this._lexer,E))u=u.switchTo(E);else throw bn(this._lexer,"trying to switch to a state '"+E+"' that is undefined in rule: "+this._safeRuleName(S))}else{if(C.transform&&typeof C.transform=="function")throw bn(this._lexer,"action.transform not supported");if(C.next)if(C.next==="@push"){if(u.depth>=this._lexer.maxStack)throw bn(this._lexer,"maximum tokenizer stack size reached: ["+u.state+","+u.parent.state+",...]");u=u.push(_)}else if(C.next==="@pop"){if(u.depth<=1)throw bn(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(S));u=u.pop()}else if(C.next==="@popall")u=u.popall();else{let E=Xm(this._lexer,C.next,w,b,_);if(E[0]==="@"&&(E=E.substr(1)),oR(this._lexer,E))u=u.push(E);else throw bn(this._lexer,"trying to set a next state '"+E+"' that is undefined in rule: "+this._safeRuleName(S))}}C.log&&typeof C.log=="string"&&CFt(this._lexer,this._lexer.languageId+": "+Xm(this._lexer,C.log,w,b,_))}if(k===null)throw bn(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(S));const L=E=>{const A=this._languageService.getLanguageIdByLanguageName(E)||this._languageService.getLanguageIdByMimeType(E)||E,I=this._getNestedEmbeddedLanguageData(A);if(h<l){const T=e.substr(h);return this._nestedTokenize(T,t,Ym.create(u,I),s+h,r)}else return Ym.create(u,I)};if(Array.isArray(k)){if(d&&d.groups.length>0)throw bn(this._lexer,"groups cannot be nested: "+this._safeRuleName(S));if(b.length!==k.length+1)throw bn(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(S));let E=0;for(let A=1;A<b.length;A++)E+=b[A].length;if(E!==w.length)throw bn(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(S));d={rule:S,matches:b,groups:[]};for(let A=0;A<k.length;A++)d.groups[A]={action:k[A],matched:b[A+1]};h-=w.length;continue}else{if(k==="@rematch"&&(h-=w.length,w="",b=null,k="",x!==null))return L(x);if(w.length===0){if(l===0||g!==u.depth||_!==u.state||(d?d.groups.length:0)!==m)continue;throw bn(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(S))}let E=null;if(eAe(k)&&k.indexOf("@brackets")===0){const A=k.substr(9),I=IFt(this._lexer,w);if(!I)throw bn(this._lexer,"@brackets token returned but no bracket defined as: "+w);E=Cge(I.token+A)}else{const A=k===""?"":k+this._lexer.tokenPostfix;E=Cge(A)}p<o&&r.emit(p+s,E)}if(x!==null)return L(x)}return Ym.create(u,c)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new sC(e,sx);e!==this._languageId&&(this._languageService.requestBasicLanguageFeatures(e),Xn.getOrCreate(e),this._embeddedLanguages[e]=!0);const t=Xn.get(e);return t?new sC(e,t.getInitialState()):new sC(e,sx)}};UD=oX=LFt([EFt(4,Xt)],UD);function IFt(n,e){if(!e)return null;e=kg(n,e);const t=n.brackets;for(const i of t){if(i.open===e)return{token:i.token,bracketType:1};if(i.close===e)return{token:i.token,bracketType:-1}}return null}const SV=tm("standaloneColorizer",{createHTML:n=>n});class $ne{static colorizeElement(e,t,i,s){s=s||{};const r=s.theme||"vs",o=s.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!o)return console.error("Mode not detected"),Promise.resolve();const a=t.getLanguageIdByMimeType(o)||o;e.setTheme(r);const l=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+r;const c=u=>{const h=(SV==null?void 0:SV.createHTML(u))??u;i.innerHTML=h};return this.colorize(t,l||"",a,s).then(c,u=>console.error(u))}static async colorize(e,t,i,s){const r=e.languageIdCodec;let o=4;s&&typeof s.tabSize=="number"&&(o=s.tabSize),Lee(t)&&(t=t.substr(1));const a=ip(t);if(!e.isRegisteredLanguageId(i))return Sge(a,o,r);const l=await Xn.getOrCreate(i);return l?TFt(a,o,l,r):Sge(a,o,r)}static colorizeLine(e,t,i,s,r=4){const o=pc.isBasicASCII(e,t),a=pc.containsRTL(e,o,i);return h8(new P_(!1,!0,e,!1,o,a,0,s,[],r,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const s=e.getLineContent(t);e.tokenization.forceTokenization(t);const o=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(s,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,i)}}function TFt(n,e,t,i){return new Promise((s,r)=>{const o=()=>{const a=DFt(n,e,t,i);if(t instanceof UD){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(o,r);return}}s(a)};o()})}function Sge(n,e,t){let i=[];const r=new Uint32Array(2);r[0]=0,r[1]=33587200;for(let o=0,a=n.length;o<a;o++){const l=n[o];r[0]=l.length;const c=new Kr(r,l,t),u=pc.isBasicASCII(l,!0),h=pc.containsRTL(l,u,!0),d=h8(new P_(!1,!0,l,!1,u,h,0,c,[],e,0,0,0,0,-1,"none",!1,!1,null));i=i.concat(d.html),i.push("<br/>")}return i.join("")}function DFt(n,e,t,i){let s=[],r=t.getInitialState();for(let o=0,a=n.length;o<a;o++){const l=n[o],c=t.tokenizeEncoded(l,!0,r);Kr.convertToEndOffset(c.tokens,l.length);const u=new Kr(c.tokens,l,i),h=pc.isBasicASCII(l,!0),d=pc.containsRTL(l,h,!0),f=h8(new P_(!1,!0,l,!1,h,d,0,u.inflate(),[],e,0,0,0,0,-1,"none",!1,!1,null));s=s.concat(f.html),s.push("<br/>"),r=c.endState}return s.join("")}var NFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},AFt=function(n,e){return function(t,i){e(t,i,n)}};let aX=class extends ue{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new oe),this._onCodeEditorAdd=this._register(new oe),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new oe),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new oe),this._onDiffEditorAdd=this._register(new oe),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new oe),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new Go,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorationsByType(e))))}setModelProperty(e,t,i){const s=e.toString();let r;this._modelProperties.has(s)?r=this._modelProperties.get(s):(r=new Map,this._modelProperties.set(s,r)),r.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}async openCodeEditor(e,t,i){for(const s of this._codeEditorOpenHandlers){const r=await s(e,t,i);if(r!==null)return r}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return lt(t)}};aX=NFt([AFt(0,Xs)],aX);var PFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},xge=function(n,e){return function(t,i){e(t,i,n)}};let H2=class extends aX{constructor(e,t){super(t),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(i,s,r)=>s?this.doOpenEditor(s,i):null))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const r=t.resource.scheme;if(r===kt.http||r===kt.https)return vLe(t.resource.toString()),e}return null}const s=t.options?t.options.selection:null;if(s)if(typeof s.endLineNumber=="number"&&typeof s.endColumn=="number")e.setSelection(s),e.revealRangeInCenter(s,1);else{const r={lineNumber:s.startLineNumber,column:s.startColumn};e.setPosition(r),e.revealPositionInCenter(r,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};H2=PFt([xge(0,bt),xge(1,Xs)],H2);fi(wi,H2,0);const $_=ri("layoutService");var iAe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},nAe=function(n,e){return function(t,i){e(t,i,n)}};let $2=class{get mainContainer(){var e;return((e=Hee(this._codeEditorService.listCodeEditors()))==null?void 0:e.getContainerDomNode())??Gi.document.body}get activeContainer(){const e=this._codeEditorService.getFocusedCodeEditor()??this._codeEditorService.getActiveCodeEditor();return(e==null?void 0:e.getContainerDomNode())??this.mainContainer}get mainContainerDimension(){return o_(this.mainContainer)}get activeContainerDimension(){return o_(this.activeContainer)}get containers(){return Qh(this._codeEditorService.listCodeEditors().map(e=>e.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())==null||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=Oe.None,this.onDidLayoutActiveContainer=Oe.None,this.onDidLayoutContainer=Oe.None,this.onDidChangeActiveContainer=Oe.None,this.onDidAddContainer=Oe.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};$2=iAe([nAe(0,wi)],$2);let lX=class extends $2{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};lX=iAe([nAe(1,wi)],lX);fi($_,$2,1);var RFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Lge=function(n,e){return function(t,i){e(t,i,n)}};function aR(n){return n.scheme===kt.file?n.fsPath:n.path}let sAe=0;class lR{constructor(e,t,i,s,r,o,a){this.id=++sAe,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=s,this.groupOrder=r,this.sourceId=o,this.sourceOrder=a,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class Ege{constructor(e,t){this.resourceLabel=e,this.reason=t}}class kge{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,s]of this.elements)(s.reason===0?e:t).push(s.resourceLabel);const i=[];return e.length>0&&i.push(v({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(v({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join(` +`)}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class MFt{constructor(e,t,i,s,r,o,a){this.id=++sAe,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=s,this.groupOrder=r,this.sourceId=o,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,i){this.removedResources||(this.removedResources=new kge),this.removedResources.has(t)||this.removedResources.set(t,new Ege(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new kge),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new Ege(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class rAe{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push(`* ${this.strResource}:`);for(let t=0;t<this._past.length;t++)e.push(` * [UNDO] ${this._past[t]}`);for(let t=this._future.length-1;t>=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join(` +`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,s=this._past.length;i<s;i++)t.push(this._past[i].id);for(let i=this._future.length-1;i>=0;i--)t.push(this._future[i].id);return new Cke(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,s=0,r=-1;for(let a=0,l=this._past.length;a<l;a++,s++){const c=this._past[a];i&&(s>=t||c.id!==e.elements[s])&&(i=!1,r=0),!i&&c.type===1&&c.removeResource(this.resourceLabel,this.strResource,0)}let o=-1;for(let a=this._future.length-1;a>=0;a--,s++){const l=this._future[a];i&&(s>=t||l.id!==e.elements[s])&&(i=!1,o=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}r!==-1&&(this._past=this._past.slice(0,r)),o!==-1&&(this._future=this._future.slice(o+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class xV{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;t<i;t++)this._versionIds[t]=this.editStacks[t].versionId}isValid(){for(let e=0,t=this.editStacks.length;e<t;e++)if(this._versionIds[e]!==this.editStacks[e].versionId)return!1;return!0}}const oAe=new rAe("","");oAe.locked=!0;let cX=class{constructor(e,t){this._dialogService=e,this._notificationService=t,this._editStacks=new Map,this._uriComparisonKeyComputers=[]}getUriComparisonKey(e){for(const t of this._uriComparisonKeyComputers)if(t[0]===e.scheme)return t[1].getComparisonKey(e);return e.toString()}_print(e){console.log("------------------------------------"),console.log(`AFTER ${e}: `);const t=[];for(const i of this._editStacks)t.push(i[1].toString());console.log(t.join(` +`))}pushElement(e,t=gU.None,i=Ov.None){if(e.type===0){const s=aR(e.resource),r=this.getUriComparisonKey(e.resource);this._pushElement(new lR(e,s,r,t.id,t.nextOrder(),i.id,i.nextOrder()))}else{const s=new Set,r=[],o=[];for(const a of e.resources){const l=aR(a),c=this.getUriComparisonKey(a);s.has(c)||(s.add(c),r.push(l),o.push(c))}r.length===1?this._pushElement(new lR(e,r[0],o[0],t.id,t.nextOrder(),i.id,i.nextOrder())):this._pushElement(new MFt(e,r,o,t.id,t.nextOrder(),i.id,i.nextOrder()))}}_pushElement(e){for(let t=0,i=e.strResources.length;t<i;t++){const s=e.resourceLabels[t],r=e.strResources[t];let o;this._editStacks.has(r)?o=this._editStacks.get(r):(o=new rAe(s,r),this._editStacks.set(r,o)),o.pushElement(e)}}getLastElement(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){const i=this._editStacks.get(t);if(i.hasFutureElements())return null;const s=i.getClosestPastElement();return s?s.actual:null}return null}_splitPastWorkspaceElement(e,t){const i=e.actual.split(),s=new Map;for(const r of i){const o=aR(r.resource),a=this.getUriComparisonKey(r.resource),l=new lR(r,o,a,0,0,0,0);s.set(l.strResource,l)}for(const r of e.strResources){if(t&&t.has(r))continue;this._editStacks.get(r).splitPastWorkspaceElement(e,s)}}_splitFutureWorkspaceElement(e,t){const i=e.actual.split(),s=new Map;for(const r of i){const o=aR(r.resource),a=this.getUriComparisonKey(r.resource),l=new lR(r,o,a,0,0,0,0);s.set(l.strResource,l)}for(const r of e.strResources){if(t&&t.has(r))continue;this._editStacks.get(r).splitFutureWorkspaceElement(e,s)}}removeElements(e){const t=typeof e=="string"?e:this.getUriComparisonKey(e);this._editStacks.has(t)&&(this._editStacks.get(t).dispose(),this._editStacks.delete(t))}setElementsValidFlag(e,t,i){const s=this.getUriComparisonKey(e);this._editStacks.has(s)&&this._editStacks.get(s).setElementsValidFlag(t,i)}createSnapshot(e){const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).createSnapshot(e):new Cke(e,[])}restoreSnapshot(e){const t=this.getUriComparisonKey(e.resource);if(this._editStacks.has(t)){const i=this._editStacks.get(t);i.restoreSnapshot(e),!i.hasPastElements()&&!i.hasFutureElements()&&(i.dispose(),this._editStacks.delete(t))}}getElements(e){const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).getElements():{past:[],future:[]}}_findClosestUndoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[s,r]of this._editStacks){const o=r.getClosestPastElement();o&&o.sourceId===e&&(!t||o.sourceOrder>t.sourceOrder)&&(t=o,i=s)}return[t,i]}canUndo(e){if(e instanceof Ov){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){Nt(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,s,r){const o=this._acquireLocks(i);let a;try{a=t()}catch(l){return o(),s.dispose(),this._onError(l,e)}return a?a.then(()=>(o(),s.dispose(),r()),l=>(o(),s.dispose(),this._onError(l,e))):(o(),s.dispose(),r())}async _invokeWorkspacePrepare(e){if(typeof e.actual.prepareUndoRedo>"u")return ue.None;const t=e.actual.prepareUndoRedo();return typeof t>"u"?ue.None:t}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>"u")return t(ue.None);const i=e.actual.prepareUndoRedo();return i?AB(i)?t(i):i.then(s=>t(s)):t(ue.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||oAe);return new xV(t)}_tryToSplitAndUndo(e,t,i,s){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(s),new cR(this._undo(e,0,!0));for(const r of t.strResources)this.removeElements(r);return this._notificationService.warn(s),new cR}_checkWorkspaceUndo(e,t,i,s){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,v({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,v({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const r=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&r.push(a.resourceLabel);if(r.length>0)return this._tryToSplitAndUndo(e,t,null,v({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,r.join(", ")));const o=[];for(const a of i.editStacks)a.locked&&o.push(a.resourceLabel);return o.length>0?this._tryToSplitAndUndo(e,t,null,v({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,o.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,v({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,i){const s=this._getAffectedEditStacks(t),r=this._checkWorkspaceUndo(e,t,s,!1);return r?r.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,s,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const s=t.getSecondClosestPastElement();if(s&&s.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,i,s){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let a;(function(u){u[u.All=0]="All",u[u.This=1]="This",u[u.Cancel=2]="Cancel"})(a||(a={}));const{result:l}=await this._dialogService.prompt({type:fs.Info,message:v("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),buttons:[{label:v({key:"ok",comment:["{0} denotes a number that is > 1, && denotes a mnemonic"]},"&&Undo in {0} Files",i.editStacks.length),run:()=>a.All},{label:v({key:"nok",comment:["&& denotes a mnemonic"]},"Undo this &&File"),run:()=>a.This}],cancelButton:{run:()=>a.Cancel}});if(l===a.Cancel)return;if(l===a.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const c=this._checkWorkspaceUndo(e,t,i,!1);if(c)return c.returnValue;s=!0}let r;try{r=await this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const o=this._checkWorkspaceUndo(e,t,i,!0);if(o)return r.dispose(),o.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,r,()=>this._continueUndoInGroup(t.groupId,s))}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const s=v({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(s);return}return this._invokeResourcePrepare(t,s=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new xV([e]),s,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,r]of this._editStacks){const o=r.getClosestPastElement();o&&o.groupId===e&&(!t||o.groupOrder>t.groupOrder)&&(t=o,i=s)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof Ov){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e=="string"?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const s=this._editStacks.get(e),r=s.getClosestPastElement();if(!r)return;if(r.groupId){const[a,l]=this._findClosestUndoElementInGroup(r.groupId);if(r!==a&&l)return this._undo(l,t,i)}if((r.sourceId!==t||r.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,r);try{return r.type===1?this._workspaceUndo(e,r,i):this._resourceUndo(s,r,i)}finally{}}async _confirmAndContinueUndo(e,t,i){if((await this._dialogService.confirm({message:v("confirmDifferentSource","Would you like to undo '{0}'?",i.label),primaryButton:v({key:"confirmDifferentSource.yes",comment:["&& denotes a mnemonic"]},"&&Yes"),cancelButton:v("confirmDifferentSource.no","No")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[s,r]of this._editStacks){const o=r.getClosestFutureElement();o&&o.sourceId===e&&(!t||o.sourceOrder<t.sourceOrder)&&(t=o,i=s)}return[t,i]}canRedo(e){if(e instanceof Ov){const[,i]=this._findClosestRedoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasFutureElements():!1}_tryToSplitAndRedo(e,t,i,s){if(t.canSplit())return this._splitFutureWorkspaceElement(t,i),this._notificationService.warn(s),new cR(this._redo(e));for(const r of t.strResources)this.removeElements(r);return this._notificationService.warn(s),new cR}_checkWorkspaceRedo(e,t,i,s){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,v({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,v({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const r=[];for(const a of i.editStacks)a.getClosestFutureElement()!==t&&r.push(a.resourceLabel);if(r.length>0)return this._tryToSplitAndRedo(e,t,null,v({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,r.join(", ")));const o=[];for(const a of i.editStacks)a.locked&&o.push(a.resourceLabel);return o.length>0?this._tryToSplitAndRedo(e,t,null,v({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,o.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,v({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),s=this._checkWorkspaceRedo(e,t,i,!1);return s?s.returnValue:this._executeWorkspaceRedo(e,t,i)}async _executeWorkspaceRedo(e,t,i){let s;try{s=await this._invokeWorkspacePrepare(t)}catch(o){return this._onError(o,t)}const r=this._checkWorkspaceRedo(e,t,i,!0);if(r)return s.dispose(),r.returnValue;for(const o of i.editStacks)o.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,s,()=>this._continueRedoInGroup(t.groupId))}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=v({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new xV([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,r]of this._editStacks){const o=r.getClosestFutureElement();o&&o.groupId===e&&(!t||o.groupOrder<t.groupOrder)&&(t=o,i=s)}return[t,i]}_continueRedoInGroup(e){if(!e)return;const[,t]=this._findClosestRedoElementInGroup(e);if(t)return this._redo(t)}redo(e){if(e instanceof Ov){const[,t]=this._findClosestRedoElementWithSource(e.id);return t?this._redo(t):void 0}return typeof e=="string"?this._redo(e):this._redo(this.getUriComparisonKey(e))}_redo(e){if(!this._editStacks.has(e))return;const t=this._editStacks.get(e),i=t.getClosestFutureElement();if(i){if(i.groupId){const[s,r]=this._findClosestRedoElementInGroup(i.groupId);if(i!==s&&r)return this._redo(r)}try{return i.type===1?this._workspaceRedo(e,i):this._resourceRedo(t,i)}finally{}}}};cX=RFt([Lge(0,cA),Lge(1,ms)],cX);class cR{constructor(e){this.returnValue=e}}fi(b8,cX,1);var OFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},LV=function(n,e){return function(t,i){e(t,i,n)}};let uX=class extends ue{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new wG(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};uX=OFt([LV(0,Xs),LV(1,co),LV(2,Dn)],uX);fi(e9,uX,1);function aAe(n){return typeof n=="string"?!1:Array.isArray(n)?n.every(aAe):!!n.exclusive}class Ige{constructor(e,t,i,s,r){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=s,this.recursive=r}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)==null?void 0:t.toString())===((i=e.notebookUri)==null?void 0:i.toString())&&this.recursive===e.recursive}}class Nn{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new oe,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),lt(()=>{if(i){const s=this._entries.indexOf(i);s>=0&&(this._entries.splice(s,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e,!1);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e,t=!1){const i=[];return this._orderedForEach(e,t,s=>i.push(s.provider)),i}orderedGroups(e){const t=[];let i,s;return this._orderedForEach(e,!1,r=>{i&&s===r._score?i.push(r.provider):(s=r._score,i=[r.provider],t.push(i))}),t}_orderedForEach(e,t,i){this._updateScores(e,t);for(const s of this._entries)s._score>0&&i(s)}_updateScores(e,t){var r,o;const i=(r=this._notebookInfoResolver)==null?void 0:r.call(this,e.uri),s=i?new Ige(e.uri,e.getLanguageId(),i.uri,i.type,t):new Ige(e.uri,e.getLanguageId(),void 0,void 0,t);if(!((o=this._lastCandidate)!=null&&o.equals(s))){this._lastCandidate=s;for(const a of this._entries)if(a._score=One(a.selector,s.uri,s.languageId,XEe(e),s.notebookUri,s.notebookType),aAe(a.selector)&&a._score>0)if(t)a._score=0;else{for(const l of this._entries)l._score=0;a._score=1e3;break}this._entries.sort(Nn._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._score<t._score?1:e._score>t._score?-1:sk(e.selector)&&!sk(t.selector)?1:!sk(e.selector)&&sk(t.selector)?-1:e._time<t._time?1:e._time>t._time?-1:0}}function sk(n){return typeof n=="string"?!1:Array.isArray(n)?n.some(sk):!!n.isBuiltin}class FFt{constructor(){this.referenceProvider=new Nn(this._score.bind(this)),this.renameProvider=new Nn(this._score.bind(this)),this.newSymbolNamesProvider=new Nn(this._score.bind(this)),this.codeActionProvider=new Nn(this._score.bind(this)),this.definitionProvider=new Nn(this._score.bind(this)),this.typeDefinitionProvider=new Nn(this._score.bind(this)),this.declarationProvider=new Nn(this._score.bind(this)),this.implementationProvider=new Nn(this._score.bind(this)),this.documentSymbolProvider=new Nn(this._score.bind(this)),this.inlayHintsProvider=new Nn(this._score.bind(this)),this.colorProvider=new Nn(this._score.bind(this)),this.codeLensProvider=new Nn(this._score.bind(this)),this.documentFormattingEditProvider=new Nn(this._score.bind(this)),this.documentRangeFormattingEditProvider=new Nn(this._score.bind(this)),this.onTypeFormattingEditProvider=new Nn(this._score.bind(this)),this.signatureHelpProvider=new Nn(this._score.bind(this)),this.hoverProvider=new Nn(this._score.bind(this)),this.documentHighlightProvider=new Nn(this._score.bind(this)),this.multiDocumentHighlightProvider=new Nn(this._score.bind(this)),this.selectionRangeProvider=new Nn(this._score.bind(this)),this.foldingRangeProvider=new Nn(this._score.bind(this)),this.linkProvider=new Nn(this._score.bind(this)),this.inlineCompletionsProvider=new Nn(this._score.bind(this)),this.inlineEditProvider=new Nn(this._score.bind(this)),this.completionProvider=new Nn(this._score.bind(this)),this.linkedEditingRangeProvider=new Nn(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new Nn(this._score.bind(this)),this.documentSemanticTokensProvider=new Nn(this._score.bind(this)),this.documentDropEditProvider=new Nn(this._score.bind(this)),this.documentPasteEditProvider=new Nn(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)==null?void 0:t.call(this,e)}}fi(Je,FFt,1);var BFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},kE=function(n,e){return function(t,i){e(t,i,n)}};const kd=Pe;let hX=class extends bc{get _targetWindow(){return ut(this._target.targetElements[0])}get _targetDocumentElement(){return ut(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(e,t,i,s,r,o){var d,f,p,g,m,_,b;super(),this._keybindingService=t,this._configurationService=i,this._openerService=s,this._instantiationService=r,this._accessibilityService=o,this._messageListeners=new be,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new oe),this._onRequestLayout=this._register(new oe),this._linkHandler=e.linkHandler||(w=>xie(this._openerService,w,zh(e.content)?e.content.isTrusted:void 0)),this._target="targetElements"in e.target?e.target:new WFt(e.target),this._hoverPointer=(d=e.appearance)!=null&&d.showPointer?kd("div.workbench-hover-pointer"):void 0,this._hover=this._register(new Bie),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),(f=e.appearance)!=null&&f.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),(p=e.appearance)!=null&&p.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),(g=e.position)!=null&&g.forcePosition&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=((m=e.position)==null?void 0:m.hoverPosition)??3,this.onmousedown(this._hover.containerDomNode,w=>w.stopPropagation()),this.onkeydown(this._hover.containerDomNode,w=>{w.equals(9)&&this.dispose()}),this._register(ge(this._targetWindow,"blur",()=>this.dispose()));const a=kd("div.hover-row.markdown-hover"),l=kd("div.hover-contents");if(typeof e.content=="string")l.textContent=e.content,l.style.whiteSpace="pre-wrap";else if(ir(e.content))l.appendChild(e.content),l.classList.add("html-hover-contents");else{const w=e.content,C=this._instantiationService.createInstance(jg,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||ta.fontFamily}),{element:S}=C.render(w,{actionHandler:{callback:x=>this._linkHandler(x),disposables:this._messageListeners},asyncRenderCallback:()=>{l.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});l.appendChild(S)}if(a.appendChild(l),this._hover.contentsDomNode.appendChild(a),e.actions&&e.actions.length>0){const w=kd("div.hover-row.status-bar"),C=kd("div.actions");e.actions.forEach(S=>{const x=this._keybindingService.lookupKeybinding(S.commandId),k=x?x.getLabel():null;O8.render(C,{label:S.label,commandId:S.commandId,run:L=>{S.run(L),this.dispose()},iconClass:S.iconClass},k)}),w.appendChild(C),this._hover.containerDomNode.appendChild(w)}this._hoverContainer=kd("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let c;if(e.actions&&e.actions.length>0?c=!1:((_=e.persistence)==null?void 0:_.hideOnHover)===void 0?c=typeof e.content=="string"||zh(e.content)&&!e.content.value.includes("](")&&!e.content.value.includes("</a>"):c=e.persistence.hideOnHover,c&&((b=e.appearance)!=null&&b.showHoverHint)){const w=kd("div.hover-row.status-bar"),C=kd("div.info");C.textContent=v("hoverhint","Hold {0} key to mouse over",ni?"Option":"Alt"),w.appendChild(C),this._hover.containerDomNode.appendChild(w)}const u=[...this._target.targetElements];c||u.push(this._hoverContainer);const h=this._register(new Tge(u));if(this._register(h.onMouseOut(()=>{this._isLocked||this.dispose()})),c){const w=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new Tge(w)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=h}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const i=Nee(this._hoverContainer,kd("div")),s=ke(this._hoverContainer,kd("div"));i.tabIndex=0,s.tabIndex=0,this._register(ge(s,"focus",r=>{e.focus(),r.preventDefault()})),this._register(ge(i,"focus",r=>{t.focus(),r.preventDefault()}))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t<e.childNodes.length;t++){const i=e.childNodes.item(e.childNodes.length-t-1);if(i.nodeType===i.ELEMENT_NODE){const r=i;if(typeof r.tabIndex=="number"&&r.tabIndex>=0)return r}const s=this.findLastFocusableChild(i);if(s)return s}}render(e){var s;e.appendChild(this._hoverContainer);const i=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&NTe(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(s=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:s.getAriaLabel());i&&jf(i),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const e=u=>{const h=hLe(u),d=u.getBoundingClientRect();return{top:d.top*h,bottom:d.bottom*h,right:d.right*h,left:d.left*h}},t=this._target.targetElements.map(u=>e(u)),{top:i,right:s,bottom:r,left:o}=t[0],a=s-o,l=r-i,c={top:i,right:s,bottom:r,left:o,width:a,height:l,center:{x:o+a/2,y:i+l/2}};if(this.adjustHorizontalHoverPosition(c),this.adjustVerticalHoverPosition(c),this.adjustHoverMaxHeight(c),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:c.left+=3,c.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:c.left-=3,c.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:c.top+=3,c.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:c.top-=3,c.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}c.center.x=c.left+a/2,c.center.y=c.top+l/2}this.computeXCordinate(c),this.computeYCordinate(c),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(c)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=e.right:this._hoverPosition===0?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._x<this._targetDocumentElement.clientLeft&&(this._x=e.left+2)}computeYCordinate(e){this._target.y!==void 0?this._y=this._target.y:this._hoverPosition===3?this._y=e.top:this._hoverPosition===2?this._y=e.bottom-2:this._hoverPointer?this._y=e.center.y+this._hover.containerDomNode.clientHeight/2:this._y=e.bottom,this._y>this._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(this._target.x!==void 0)return;const t=this._hoverPointer?3:0;if(this._forcePosition){const i=t+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-e.right-i}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${e.left-i}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-e.right<this._hover.containerDomNode.clientWidth+t&&(e.left>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(e.left<this._hover.containerDomNode.clientWidth+t&&(this._targetDocumentElement.clientWidth-e.right>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=1:this._hoverPosition=2),e.left-this._hover.containerDomNode.clientWidth-t<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(e){if(this._target.y!==void 0||this._forcePosition)return;const t=this._hoverPointer?3:0;this._hoverPosition===3?e.top-this._hover.containerDomNode.clientHeight-t<0&&(this._hoverPosition=2):this._hoverPosition===2&&e.bottom+this._hover.containerDomNode.clientHeight+t>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight/2;if(this._forcePosition){const i=(this._hoverPointer?3:0)+2;this._hoverPosition===3?t=Math.min(t,e.top-i):this._hoverPosition===2&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-i))}if(this._hover.containerDomNode.style.maxHeight=`${t}px`,this._hover.contentsDomNode.clientHeight<this._hover.contentsDomNode.scrollHeight){const i=`${this._hover.scrollbar.options.verticalScrollbarSize}px`;this._hover.contentsDomNode.style.paddingRight!==i&&(this._hover.contentsDomNode.style.paddingRight=i)}}setHoverPointerPosition(e){if(this._hoverPointer)switch(this._hoverPosition){case 0:case 1:{this._hoverPointer.classList.add(this._hoverPosition===0?"right":"left");const t=this._hover.containerDomNode.clientHeight;t>e.height?this._hoverPointer.style.top=`${e.center.y-(this._y-t)-3}px`:this._hoverPointer.style.top=`${Math.round(t/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const t=this._hover.containerDomNode.clientWidth;let i=Math.round(t/2)-3;const s=this._x+i;(s<e.left||s>e.right)&&(i=e.center.x-this._x-3),this._hoverPointer.style.left=`${i}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};hX=BFt([kE(1,Ni),kE(2,Xt),kE(3,kl),kE(4,ct),kE(5,xl)],hX);class Tge extends bc{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e){super(),this._elements=e,this._isMouseIn=!0,this._onMouseOut=this._register(new oe),this._elements.forEach(t=>this.onmouseover(t,()=>this._onTargetMouseOver(t))),this._elements.forEach(t=>this.onmouseleave(t,()=>this._onTargetMouseLeave(t)))}_onTargetMouseOver(e){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(e)}_onTargetMouseLeave(e){this._isMouseIn=!1,this._evaluateMouseState(e)}_evaluateMouseState(e){this._clearEvaluateMouseStateTimeout(e),this._mouseTimeout=ut(e).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(e){this._mouseTimeout&&(ut(e).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class WFt{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}function VFt(n){const e=n;return!!e&&typeof e.x=="number"&&typeof e.y=="number"}var g1;(function(n){n[n.AVOID=0]="AVOID",n[n.ALIGN=1]="ALIGN"})(g1||(g1={}));function rC(n,e,t){const i=t.mode===g1.ALIGN?t.offset:t.offset+t.size,s=t.mode===g1.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=n-i?i:e<=s?s-e:Math.max(n-e,0):e<=s?s-e:e<=n-i?i:0}const CC=class CC extends ue{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=ue.None,this.toDisposeOnSetContainer=ue.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=Pe(".context-view"),zo(this.view),this.setContainer(e,t),this._register(lt(()=>this.setContainer(null,1)))}setContainer(e,t){var s;this.useFixedPosition=t!==1;const i=this.useShadowDOM;if(this.useShadowDOM=t===3,!(e===this.container&&i===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.view.remove(),this.shadowRoot&&(this.shadowRoot=null,(s=this.shadowRootHostElement)==null||s.remove(),this.shadowRootHostElement=null),this.container=null),e)){if(this.container=e,this.useShadowDOM){this.shadowRootHostElement=Pe(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const o=document.createElement("style");o.textContent=HFt,this.shadowRoot.appendChild(o),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(Pe("slot"))}else this.container.appendChild(this.view);const r=new be;CC.BUBBLE_UP_EVENTS.forEach(o=>{r.add(os(this.container,o,a=>{this.onDOMEvent(a,!1)}))}),CC.BUBBLE_DOWN_EVENTS.forEach(o=>{r.add(os(this.container,o,a=>{this.onDOMEvent(a,!0)},!0))}),this.toDisposeOnSetContainer=r}}show(e){var t,i;this.isVisible()&&this.hide(),kr(this.view),this.view.className="context-view monaco-component",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex=`${2575+(e.layer??0)}`,this.view.style.position=this.useFixedPosition?"fixed":"absolute",ol(this.view),this.toDisposeOnClean=e.render(this.view)||ue.None,this.delegate=e,this.doLayout(),(i=(t=this.delegate).focus)==null||i.call(t)}getViewElement(){return this.view}layout(){var e,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(Gh&&hee.pointerEvents)){this.hide();return}(t=(e=this.delegate)==null?void 0:e.layout)==null||t.call(e),this.doLayout()}}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(ir(e)){const d=ps(e),f=hLe(e);t={top:d.top*f,left:d.left*f,width:d.width*f,height:d.height*f}}else VFt(e)?t={top:e.y,left:e.x,width:e.width||1,height:e.height||2}:t={top:e.posy,left:e.posx,width:2,height:2};const i=Ja(this.view),s=ig(this.view),r=this.delegate.anchorPosition||0,o=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,c;const u=oM();if(a===0){const d={offset:t.top-u.pageYOffset,size:t.height,position:r===0?0:1},f={offset:t.left,size:t.width,position:o===0?0:1,mode:g1.ALIGN};l=rC(u.innerHeight,s,d)+u.pageYOffset,Zr.intersects({start:l,end:l+s},{start:d.offset,end:d.offset+d.size})&&(f.mode=g1.AVOID),c=rC(u.innerWidth,i,f)}else{const d={offset:t.left,size:t.width,position:o===0?0:1},f={offset:t.top,size:t.height,position:r===0?0:1,mode:g1.ALIGN};c=rC(u.innerWidth,i,d),Zr.intersects({start:c,end:c+i},{start:d.offset,end:d.offset+d.size})&&(f.mode=g1.AVOID),l=rC(u.innerHeight,s,f)+u.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(r===0?"bottom":"top"),this.view.classList.add(o===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const h=ps(this.container);this.view.style.top=`${l-(this.useFixedPosition?ps(this.view).top:h.top)}px`,this.view.style.left=`${c-(this.useFixedPosition?ps(this.view).left:h.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),zo(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,ut(e).document.activeElement):t&&!er(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}};CC.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],CC.BUBBLE_DOWN_EVENTS=["click"];let dX=CC;const HFt=` + :host { + all: initial; /* 1st rule so subsequent properties are reset. */ + } + + .codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + } + + :host { + font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; + } + + :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } + :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } + :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } + :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } + :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } + + :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } + :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } + :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } + :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } + :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } + + :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } + :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } +`;var $Ft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},zFt=function(n,e){return function(t,i){e(t,i,n)}};let z2=class extends ue{constructor(e){super(),this.layoutService=e,this.contextView=this._register(new dX(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer(()=>this.layout()))}showContextView(e,t,i){let s;t?t===this.layoutService.getContainer(ut(t))?s=1:i?s=3:s=2:s=1,this.contextView.setContainer(t??this.layoutService.activeContainer,s),this.contextView.show(e);const r={close:()=>{this.openContextView===r&&this.hideContextView()}};return this.openContextView=r,r}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e),this.openContextView=void 0}};z2=$Ft([zFt(0,$_)],z2);class UFt extends z2{getContextViewElement(){return this.contextView.getViewElement()}}class jFt{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}async update(e,t,i){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let s;if(e===void 0||Da(e)||ir(e))s=e;else if(!gT(e.markdown))s=e.markdown??e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(v("iconLabel.loading","Loading..."),t,i),this._cancellationTokenSource=new Wn;const r=this._cancellationTokenSource.token;if(s=await e.markdown(r),s===void 0&&(s=e.markdownNotSupportedFallback),this.isDisposed||r.isCancellationRequested)return}this.show(s,t,i)}show(e,t,i){const s=this._hoverWidget;if(this.hasContent(e)){const r={content:e,target:this.target,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!s},position:{hoverPosition:2},...i};this._hoverWidget=this.hoverDelegate.showHover(r,t)}s==null||s.dispose()}hasContent(e){return e?zh(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)==null?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)==null||e.dispose(),(t=this._cancellationTokenSource)==null||t.dispose(!0),this._cancellationTokenSource=void 0}}var qFt=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},IE=function(n,e){return function(t,i){e(t,i,n)}};let fX=class extends ue{constructor(e,t,i,s,r){super(),this._instantiationService=e,this._keybindingService=i,this._layoutService=s,this._accessibilityService=r,this._managedHovers=new Map,t.onDidShowContextMenu(()=>this.hideHover()),this._contextViewHandler=this._register(new z2(this._layoutService))}showHover(e,t,i){var l,c,u,h;if(Dge(this._currentHoverOptions)===Dge(e)||this._currentHover&&((c=(l=this._currentHoverOptions)==null?void 0:l.persistence)!=null&&c.sticky))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const s=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),r=zr();i||(s&&r?r.classList.contains("monaco-hover")||(this._lastFocusedElementBeforeOpen=r):this._lastFocusedElementBeforeOpen=void 0);const o=new be,a=this._instantiationService.createInstance(hX,e);if((u=e.persistence)!=null&&u.sticky&&(a.isLocked=!0),a.onDispose(()=>{var f,p;((f=this._currentHover)==null?void 0:f.domNode)&&fLe(this._currentHover.domNode)&&((p=this._lastFocusedElementBeforeOpen)==null||p.focus()),this._currentHoverOptions===e&&(this._currentHoverOptions=void 0),o.dispose()},void 0,o),!e.container){const d=ir(e.target)?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer(ut(d))}if(this._contextViewHandler.showContextView(new KFt(a,t),e.container),a.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,o),(h=e.persistence)!=null&&h.sticky)o.add(ge(ut(e.container).document,Ae.MOUSE_DOWN,d=>{er(d.target,a.domNode)||this.doHideHover()}));else{if("targetElements"in e.target)for(const f of e.target.targetElements)o.add(ge(f,Ae.CLICK,()=>this.hideHover()));else o.add(ge(e.target,Ae.CLICK,()=>this.hideHover()));const d=zr();if(d){const f=ut(d).document;o.add(ge(d,Ae.KEY_DOWN,p=>{var g;return this._keyDown(p,a,!!((g=e.persistence)!=null&&g.hideOnKeyDown))})),o.add(ge(f,Ae.KEY_DOWN,p=>{var g;return this._keyDown(p,a,!!((g=e.persistence)!=null&&g.hideOnKeyDown))})),o.add(ge(d,Ae.KEY_UP,p=>this._keyUp(p,a))),o.add(ge(f,Ae.KEY_UP,p=>this._keyUp(p,a)))}}if("IntersectionObserver"in Gi){const d=new IntersectionObserver(p=>this._intersectionChange(p,a),{threshold:0}),f="targetElements"in e.target?e.target.targetElements[0]:e.target;d.observe(f),o.add(lt(()=>d.disconnect()))}return this._currentHover=a,a}hideHover(){var e;(e=this._currentHover)!=null&&e.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showHover(this._lastHoverOptions,!0,!0)}_keyDown(e,t,i){var o,a;if(e.key==="Alt"){t.isLocked=!0;return}const s=new Ji(e);this._keybindingService.resolveKeyboardEvent(s).getSingleModifierDispatchChords().some(l=>!!l)||this._keybindingService.softDispatch(s,s.target).kind!==0||i&&(!((o=this._currentHoverOptions)!=null&&o.trapFocus)||e.key!=="Tab")&&(this.hideHover(),(a=this._lastFocusedElementBeforeOpen)==null||a.focus())}_keyUp(e,t){var i;e.key==="Alt"&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),(i=this._lastFocusedElementBeforeOpen)==null||i.focus()))}setupManagedHover(e,t,i,s){t.setAttribute("custom-hover","true"),t.title!==""&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",t.title),t.title="");let r,o;const a=(w,C)=>{var x;const S=o!==void 0;w&&(o==null||o.dispose(),o=void 0),C&&(r==null||r.dispose(),r=void 0),S&&((x=e.onDidHideHover)==null||x.call(e),o=void 0)},l=(w,C,S,x)=>new Zu(async()=>{(!o||o.isDisposed)&&(o=new jFt(e,S||t,w>0),await o.update(typeof i=="function"?i():i,C,{...s,trapFocus:x}))},w);let c=!1;const u=ge(t,Ae.MOUSE_DOWN,()=>{c=!0,a(!0,!0)},!0),h=ge(t,Ae.MOUSE_UP,()=>{c=!1},!0),d=ge(t,Ae.MOUSE_LEAVE,w=>{c=!1,a(!1,w.fromElement===t)},!0),f=w=>{if(r)return;const C=new be,S={targetElements:[t],dispose:()=>{}};if(e.placement===void 0||e.placement==="mouse"){const x=k=>{S.x=k.x+10,ir(k.target)&&Nge(k.target,t)!==t&&a(!0,!0)};C.add(ge(t,Ae.MOUSE_MOVE,x,!0))}r=C,!(ir(w.target)&&Nge(w.target,t)!==t)&&C.add(l(e.delay,!1,S))},p=ge(t,Ae.MOUSE_OVER,f,!0),g=()=>{if(c||r)return;const w={targetElements:[t],dispose:()=>{}},C=new be,S=()=>a(!0,!0);C.add(ge(t,Ae.BLUR,S,!0)),C.add(l(e.delay,!1,w)),r=C};let m;const _=t.tagName.toLowerCase();_!=="input"&&_!=="textarea"&&(m=ge(t,Ae.FOCUS,g,!0));const b={show:w=>{a(!1,!0),l(0,w,void 0,w)},hide:()=>{a(!0,!0)},update:async(w,C)=>{i=w,await(o==null?void 0:o.update(i,void 0,C))},dispose:()=>{this._managedHovers.delete(t),p.dispose(),d.dispose(),u.dispose(),h.dispose(),m==null||m.dispose(),a(!0,!0)}};return this._managedHovers.set(t,b),b}showManagedHover(e){const t=this._managedHovers.get(e);t&&t.show(!0)}dispose(){this._managedHovers.forEach(e=>e.dispose()),super.dispose()}};fX=qFt([IE(0,ct),IE(1,El),IE(2,Ni),IE(3,$_),IE(4,xl)],fX);function Dge(n){if(n!==void 0)return(n==null?void 0:n.id)??n}class KFt{get anchorPosition(){return this._hover.anchor}constructor(e,t=!1){this._hover=e,this._focus=t,this.layer=1}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function Nge(n,e){for(e=e??ut(n).document.body;!n.hasAttribute("custom-hover")&&n!==e;)n=n.parentElement;return n}fi(rp,fX,1);au((n,e)=>{const t=n.getColor(hEe);t&&(e.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`))});function uR(n){return Object.isFrozen(n)?n:Ddt(n)}class xr{static createEmptyModel(e){return new xr({},[],[],void 0,e)}constructor(e,t,i,s,r){this._contents=e,this._keys=t,this._overrides=i,this.raw=s,this.logService=r,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if((e=this.raw)!=null&&e.length){const t=this.raw.map(i=>{if(i instanceof xr)return i;const s=new GFt("",this.logService);return s.parseRaw(i),s.configurationModel});this._rawConfiguration=t.reduce((i,s)=>s===i?s:i.merge(s),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?Nue(this.contents,e):this.contents}inspect(e,t){const i=this;return{get value(){return uR(i.rawConfiguration.getValue(e))},get override(){return t?uR(i.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return uR(t?i.rawConfiguration.override(t).getValue(e):i.rawConfiguration.getValue(e))},get overrides(){const s=[];for(const{contents:r,identifiers:o,keys:a}of i.rawConfiguration.overrides){const l=new xr(r,a,[],void 0,i.logService).getValue(e);l!==void 0&&s.push({identifiers:o,value:l})}return s.length?uR(s):void 0}}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?Nue(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){var o,a;const t=Fp(this.contents),i=Fp(this.overrides),s=[...this.keys],r=(o=this.raw)!=null&&o.length?[...this.raw]:[this];for(const l of e)if(r.push(...(a=l.raw)!=null&&a.length?l.raw:[l]),!l.isEmpty()){this.mergeContents(t,l.contents);for(const c of l.overrides){const[u]=i.filter(h=>In(h.identifiers,c.identifiers));u?(this.mergeContents(u.contents,c.contents),u.keys.push(...c.keys),u.keys=Vg(u.keys)):i.push(Fp(c))}for(const c of l.keys)s.indexOf(c)===-1&&s.push(c)}return new xr(t,s,i,r.every(l=>l instanceof xr)?void 0:r,this.logService)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;const i={};for(const s of Vg([...Object.keys(this.contents),...Object.keys(t)])){let r=this.contents[s];const o=t[s];o&&(typeof r=="object"&&typeof o=="object"?(r=Fp(r),this.mergeContents(r,o)):r=o),i[s]=r}return new xr(i,this.keys,this.overrides,void 0,this.logService)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&fr(e[i])&&fr(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Fp(t[i])}}getContentsForOverrideIdentifer(e){let t=null,i=null;const s=r=>{r&&(i?this.mergeContents(i,r):i=Fp(r))};for(const r of this.overrides)r.identifiers.length===1&&r.identifiers[0]===e?t=r.contents:r.identifiers.includes(e)&&s(r.contents);return s(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);t!==-1&&(this.keys.splice(t,1),Wht(this.contents,e),l_.test(e)&&this.overrides.splice(this.overrides.findIndex(i=>In(i.identifiers,xF(e))),1))}updateValue(e,t,i){if(HLe(this.contents,e,t,s=>this.logService.error(s)),i=i||this.keys.indexOf(e)===-1,i&&this.keys.push(e),l_.test(e)){const s=xF(e),r={identifiers:s,keys:Object.keys(this.contents[e]),contents:Lz(this.contents[e],a=>this.logService.error(a))},o=this.overrides.findIndex(a=>In(a.identifiers,s));o!==-1?this.overrides[o]=r:this.overrides.push(r)}}}class GFt{constructor(e,t){this._name=e,this.logService=t,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||xr.createEmptyModel(this.logService)}parseRaw(e,t){this._raw=e;const{contents:i,keys:s,overrides:r,restricted:o,hasExcludedProperties:a}=this.doParseRaw(e,t);this._configurationModel=new xr(i,s,r,a?[e]:void 0,this.logService),this._restrictedConfigurations=o||[]}doParseRaw(e,t){const i=Vn.as(Qu.Configuration).getConfigurationProperties(),s=this.filter(e,i,!0,t);e=s.raw;const r=Lz(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`)),o=Object.keys(e),a=this.toOverrides(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`));return{contents:r,keys:o,overrides:a,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(e,t,i,s){var l,c,u;let r=!1;if(!(s!=null&&s.scopes)&&!(s!=null&&s.skipRestricted)&&!((l=s==null?void 0:s.exclude)!=null&&l.length))return{raw:e,restricted:[],hasExcludedProperties:r};const o={},a=[];for(const h in e)if(l_.test(h)&&i){const d=this.filter(e[h],t,!1,s);o[h]=d.raw,r=r||d.hasExcludedProperties,a.push(...d.restricted)}else{const d=t[h],f=d?typeof d.scope<"u"?d.scope:3:void 0;d!=null&&d.restricted&&a.push(h),!((c=s.exclude)!=null&&c.includes(h))&&((u=s.include)!=null&&u.includes(h)||(f===void 0||s.scopes===void 0||s.scopes.includes(f))&&!(s.skipRestricted&&(d!=null&&d.restricted)))?o[h]=e[h]:r=!0}return{raw:o,restricted:a,hasExcludedProperties:r}}toOverrides(e,t){const i=[];for(const s of Object.keys(e))if(l_.test(s)){const r={};for(const o in e[s])r[o]=e[s][o];i.push({identifiers:xF(s),keys:Object.keys(r),contents:Lz(r,t)})}return i}}class XFt{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=s,this.defaultConfiguration=r,this.policyConfiguration=o,this.applicationConfiguration=a,this.userConfiguration=l,this.localUserConfiguration=c,this.remoteUserConfiguration=u,this.workspaceConfiguration=h,this.folderConfigurationModel=d,this.memoryConfigurationModel=f}toInspectValue(e){return(e==null?void 0:e.value)!==void 0||(e==null?void 0:e.override)!==void 0||(e==null?void 0:e.overrides)!==void 0?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class o9{constructor(e,t,i,s,r,o,a,l,c,u){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=s,this._remoteUserConfiguration=r,this._workspaceConfiguration=o,this._folderConfigurations=a,this._memoryConfiguration=l,this._memoryConfigurationByResource=c,this.logService=u,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new js,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let s;i.resource?(s=this._memoryConfigurationByResource.get(i.resource),s||(s=xr.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(i.resource,s))):s=this._memoryConfiguration,t===void 0?s.removeValue(e):s.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const s=this.getConsolidatedConfigurationModel(e,t,i),r=this.getFolderConfigurationModelForResource(t.resource,i),o=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(const l of s.overrides)for(const c of l.identifiers)s.getOverrideValue(e,c)!==void 0&&a.add(c);return new XFt(e,t,s.getValue(e),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,r||void 0,o)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let s=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(s=s.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0&&(s=s.merge(this._policyConfiguration)),s}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const s=t.getFolder(e);s&&(i=this.getFolderConsolidatedConfiguration(s.uri)||i);const r=this._memoryConfigurationByResource.get(e);r&&(i=i.merge(r))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(e);s?(t=i.merge(s),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:s,keys:r}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:s,keys:r}]),e},[])}}static parse(e,t){const i=this.parseConfigurationModel(e.defaults,t),s=this.parseConfigurationModel(e.policy,t),r=this.parseConfigurationModel(e.application,t),o=this.parseConfigurationModel(e.user,t),a=this.parseConfigurationModel(e.workspace,t),l=e.folders.reduce((c,u)=>(c.set(mt.revive(u[0]),this.parseConfigurationModel(u[1],t)),c),new js);return new o9(i,s,r,o,xr.createEmptyModel(t),a,l,xr.createEmptyModel(t),new js,t)}static parseConfigurationModel(e,t){return new xr(e.contents,e.keys,e.overrides,void 0,t)}}class YFt{constructor(e,t,i,s,r){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=s,this.logService=r,this._marker=` +`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const o of e.keys)this.affectedKeys.add(o);for(const[,o]of e.overrides)for(const a of o)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(const o of this.affectedKeys)this._affectsConfigStr+=o+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=o9.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(e,t){var a;const i=this._marker+e,s=this._affectsConfigStr.indexOf(i);if(s<0)return!1;const r=s+i.length;if(r>=this._affectsConfigStr.length)return!1;const o=this._affectsConfigStr.charCodeAt(r);if(o!==this._markerCode1&&o!==this._markerCode2)return!1;if(t){const l=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(a=this.previous)==null?void 0:a.workspace):void 0,c=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!lc(l,c)}return!0}}const U2={kind:0},ZFt={kind:1};function QFt(n,e,t){return{kind:2,commandId:n,commandArgs:e,isBubble:t}}class lI{constructor(e,t,i){var s;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const r of e){const o=r.command;o&&o.charAt(0)!=="-"&&this._defaultBoundCommands.set(o,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=lI.handleRemovals([].concat(e).concat(t));for(let r=0,o=this._keybindings.length;r<o;r++){const a=this._keybindings[r];if(a.chords.length===0)continue;const l=(s=a.when)==null?void 0:s.substituteConstants();l&&l.type===0||this._addKeyPress(a.chords[0],a)}}static _isTargetedForRemoval(e,t,i){if(t){for(let s=0;s<t.length;s++)if(t[s]!==e.chords[s])return!1}return!(i&&i.type!==1&&(!e.when||!zut(i,e.when)))}static handleRemovals(e){const t=new Map;for(let s=0,r=e.length;s<r;s++){const o=e[s];if(o.command&&o.command.charAt(0)==="-"){const a=o.command.substring(1);t.has(a)?t.get(a).push(o):t.set(a,[o])}}if(t.size===0)return e;const i=[];for(let s=0,r=e.length;s<r;s++){const o=e[s];if(!o.command||o.command.length===0){i.push(o);continue}if(o.command.charAt(0)==="-")continue;const a=t.get(o.command);if(!a||!o.isDefault){i.push(o);continue}let l=!1;for(const c of a){const u=c.when;if(this._isTargetedForRemoval(o,c.chords,u)){l=!0;break}}if(!l){i.push(o);continue}}return i}_addKeyPress(e,t){const i=this._map.get(e);if(typeof i>"u"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let s=i.length-1;s>=0;s--){const r=i[s];if(r.command===t.command)continue;let o=!0;for(let a=1;a<r.chords.length&&a<t.chords.length;a++)if(r.chords[a]!==t.chords[a]){o=!1;break}o&&lI.whenIsEntirelyIncluded(r.when,t.when)&&this._removeFromLookupMap(r)}i.push(t),this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);typeof t>"u"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(!(typeof t>"u")){for(let i=0,s=t.length;i<s;i++)if(t[i]===e){t.splice(i,1);return}}}static whenIsEntirelyIncluded(e,t){return!t||t.type===1?!0:!e||e.type===1?!1:wz(e,t)}getKeybindings(){return this._keybindings}lookupPrimaryKeybinding(e,t){const i=this._lookupMap.get(e);if(typeof i>"u"||i.length===0)return null;if(i.length===1)return i[0];for(let s=i.length-1;s>=0;s--){const r=i[s];if(t.contextMatchesRules(r.when))return r}return i[i.length-1]}resolve(e,t,i){const s=[...t,i];this._log(`| Resolving ${s}`);const r=this._map.get(s[0]);if(r===void 0)return this._log("\\ No keybinding entries."),U2;let o=null;if(s.length<2)o=r;else{o=[];for(let l=0,c=r.length;l<c;l++){const u=r[l];if(s.length>u.chords.length)continue;let h=!0;for(let d=1;d<s.length;d++)if(u.chords[d]!==s[d]){h=!1;break}h&&o.push(u)}}const a=this._findCommand(e,o);return a?s.length<a.chords.length?(this._log(`\\ From ${o.length} keybinding entries, awaiting ${a.chords.length-s.length} more chord(s), when: ${Age(a.when)}, source: ${Pge(a)}.`),ZFt):(this._log(`\\ From ${o.length} keybinding entries, matched ${a.command}, when: ${Age(a.when)}, source: ${Pge(a)}.`),QFt(a.command,a.commandArgs,a.bubble)):(this._log(`\\ From ${o.length} keybinding entries, no when clauses matched the context.`),U2)}_findCommand(e,t){for(let i=t.length-1;i>=0;i--){const s=t[i];if(lI._contextMatchesRules(e,s.when))return s}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function Age(n){return n?`${n.serialize()}`:"no when condition"}function Pge(n){return n.extensionId?n.isBuiltinExtension?`built-in extension ${n.extensionId}`:`user extension ${n.extensionId}`:n.isDefault?"built-in":"user"}const JFt=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class e4t extends ue{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:Oe.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,s,r){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=s,this._logService=r,this._onDidUpdateKeybindings=this._register(new oe),this._currentChords=[],this._currentChordChecker=new vee,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=oC.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new Zu,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),U2;const[s]=i.getDispatchChords();if(s===null)return this._log("\\ Keyboard event cannot be dispatched"),U2;const r=this._contextKeyService.getContext(t),o=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(r,o,s)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-e>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw pee("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(v("first.chord","({0}) was pressed. Waiting for second key of chord...",t));break;default:{const i=this._currentChords.map(({label:s})=>s).join(", ");this._currentChordStatusMessage=this._notificationService.status(v("next.chord","({0}) was pressed. Waiting for next key of chord...",i))}}this._scheduleLeaveChordMode(),Ak.enabled&&Ak.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],Ak.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[s]=i.getSingleModifierDispatchChords();if(s)return this._ignoreSingleModifiers.has(s)?(this._log(`+ Ignoring single modifier ${s} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=oC.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=oC.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${s}.`),this._currentSingleModifier=s,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):s===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${s} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[r]=i.getChords();return this._ignoreSingleModifiers=new oC(r),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){let s=!1;if(e.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let r=null,o=null;if(i){const[u]=e.getSingleModifierDispatchChords();r=u,o=u?[u]:[]}else[r]=e.getDispatchChords(),o=this._currentChords.map(({keypress:u})=>u);if(r===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),s;const a=this._contextKeyService.getContext(t),l=e.getLabel(),c=this._getResolver().resolve(a,o,r);switch(c.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",l,"[ No matching keybinding ]"),this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${u}, ${l}".`),this._notificationService.status(v("missing.chord","The key combination ({0}, {1}) is not a command.",u,l),{hideAfter:10*1e3}),this._leaveChordMode(),s=!0}return s}case 1:return this._logService.trace("KeybindingService#dispatch",l,"[ Several keybindings match - more chords needed ]"),s=!0,this._expectAnotherChord(r,l),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),s;case 2:{if(this._logService.trace("KeybindingService#dispatch",l,`[ Will dispatch command ${c.commandId} ]`),c.commandId===null||c.commandId===""){if(this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${u}, ${l}".`),this._notificationService.status(v("missing.chord","The key combination ({0}, {1}) is not a command.",u,l),{hideAfter:10*1e3}),this._leaveChordMode(),s=!0}}else{this.inChordMode&&this._leaveChordMode(),c.isBubble||(s=!0),this._log(`+ Invoking command ${c.commandId}.`),this._currentlyDispatchingCommandId=c.commandId;try{typeof c.commandArgs>"u"?this._commandService.executeCommand(c.commandId).then(void 0,u=>this._notificationService.warn(u)):this._commandService.executeCommand(c.commandId,c.commandArgs).then(void 0,u=>this._notificationService.warn(u))}finally{this._currentlyDispatchingCommandId=null}JFt.test(c.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:c.commandId,from:"keybinding",detail:e.getUserSettingsLabel()??void 0})}return s}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}const I5=class I5{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}};I5.EMPTY=new I5(null);let oC=I5;class Rge{constructor(e,t,i,s,r,o,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?pX(e.getDispatchChords()):[],e&&this.chords.length===0&&(this.chords=pX(e.getSingleModifierDispatchChords())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=s,this.isDefault=r,this.extensionId=o,this.isBuiltinExtension=a}}function pX(n){const e=[];for(let t=0,i=n.length;t<i;t++){const s=n[t];if(!s)return[];e.push(s)}return e}class t4t extends wlt{constructor(e,t){if(super(),t.length===0)throw Gc("chords");this._os=e,this._chords=t}getLabel(){return gie.toLabel(this._os,this._chords,e=>this._getLabel(e))}getAriaLabel(){return $Ct.toLabel(this._os,this._chords,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:zCt.toLabel(this._os,this._chords,e=>this._getElectronAccelerator(e))}getUserSettingsLabel(){return UCt.toLabel(this._os,this._chords,e=>this._getUserSettingsLabel(e))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(e=>this._getChord(e))}_getChord(e){return new ylt(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map(e=>this._getChordDispatch(e))}getSingleModifierDispatchChords(){return this._chords.map(e=>this._getSingleModifierChordDispatch(e))}}class jD extends t4t{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return Up.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":Up.toString(e.keyCode)}_getElectronAccelerator(e){return Up.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return"";const t=Up.toUserSettingsUS(e.keyCode);return t&&t.toLowerCase()}_getChordDispatch(e){return jD.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=Up.toString(e.keyCode),t}_getSingleModifierChordDispatch(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?"ctrl":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?"shift":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?"alt":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?"meta":null}static _scanCodeToKeyCode(e){const t=fee[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof Bg)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new Bg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=pX(e.chords.map(s=>this._toKeyCodeChord(s)));return i.length>0?[new jD(i,t)]:[]}}let Ix=[],zne=[],lAe=[];function hR(n,e=!1){i4t(n,!1,e)}function i4t(n,e,t){const i=n4t(n,e);Ix.push(i),i.userConfigured?lAe.push(i):zne.push(i),t&&!i.userConfigured&&Ix.forEach(s=>{s.mime===i.mime||s.userConfigured||(i.extension&&s.extension===i.extension&&console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`),i.filename&&s.filename===i.filename&&console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`),i.filepattern&&s.filepattern===i.filepattern&&console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`),i.firstline&&s.firstline===i.firstline&&console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))})}function n4t(n,e){return{id:n.id,mime:n.mime,filename:n.filename,extension:n.extension,filepattern:n.filepattern,firstline:n.firstline,userConfigured:e,filenameLowercase:n.filename?n.filename.toLowerCase():void 0,extensionLowercase:n.extension?n.extension.toLowerCase():void 0,filepatternLowercase:n.filepattern?ONe(n.filepattern.toLowerCase()):void 0,filepatternOnPath:n.filepattern?n.filepattern.indexOf(Es.sep)>=0:!1}}function s4t(){Ix=Ix.filter(n=>n.userConfigured),zne=[]}function r4t(n,e){return o4t(n,e).map(t=>t.id)}function o4t(n,e){let t;if(n)switch(n.scheme){case kt.file:t=n.fsPath;break;case kt.data:{t=f_.parseMetaData(n).get(f_.META_DATA_LABEL);break}case kt.vscodeNotebookCell:t=void 0;break;default:t=n.path}if(!t)return[{id:"unknown",mime:rs.unknown}];t=t.toLowerCase();const i=S1(t),s=Mge(t,i,lAe);if(s)return[s,{id:ea,mime:rs.text}];const r=Mge(t,i,zne);if(r)return[r,{id:ea,mime:rs.text}];if(e){const o=a4t(e);if(o)return[o,{id:ea,mime:rs.text}]}return[{id:"unknown",mime:rs.unknown}]}function Mge(n,e,t){var o;let i,s,r;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){i=l;break}if(l.filepattern&&(!s||l.filepattern.length>s.filepattern.length)){const c=l.filepatternOnPath?n:e;(o=l.filepatternLowercase)!=null&&o.call(l,c)&&(s=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&e.endsWith(l.extensionLowercase)&&(r=l)}if(i)return i;if(s)return s;if(r)return r}function a4t(n){if(Lee(n)&&(n=n.substr(1)),n.length>0)for(let e=Ix.length-1;e>=0;e--){const t=Ix[e];if(!t.firstline)continue;const i=n.match(t.firstline);if(i&&i.length>0)return t}}const dR=Object.prototype.hasOwnProperty,Oge="vs.editor.nullLanguage";class l4t{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(Oge,0),this._register(ea,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||Oge}}const xI=class xI extends ue{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new oe),this.onDidChange=this._onDidChange.event,xI.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new l4t,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(XS.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){xI.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},s4t();const e=[].concat(XS.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(s=>{this._lowercaseNameMap[s.toLowerCase()]=i.identifier}),i.mimetypes.forEach(s=>{this._mimeTypesMap[s]=i.identifier})}),Vn.as(Qu.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;dR.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let s=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),s=t.mimetypes[0]),s||(s=`text/x-${i}`,e.mimetypes.push(s)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const a of t.extensions)hR({id:i,mime:s,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)hR({id:i,mime:s,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)hR({id:i,mime:s,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!=="^"&&(a="^"+a);try{const l=new RegExp(a);_ct(l)||hR({id:i,mime:s,firstline:l},this._warnOnOverwrite)}catch(l){console.warn(`[${t.id}]: Invalid regular expression \`${a}\`: `,l)}}e.aliases.push(i);let r=null;if(typeof t.aliases<"u"&&Array.isArray(t.aliases)&&(t.aliases.length===0?r=[null]:r=t.aliases),r!==null)for(const a of r)!a||a.length===0||e.aliases.push(a);const o=r!==null&&r.length>0;if(!(o&&r[0]===null)){const a=(o?r[0]:null)||i;(o||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?dR.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return dR.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&dR.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:r4t(e,t)}};xI.instanceCount=0;let gX=xI;const LI=class LI extends ue{constructor(e=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new oe),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new oe),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new oe({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,LI.instanceCount++,this._registry=this._register(new gX(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){LI.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return Hee(i,null)}createById(e){return new Fge(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new Fge(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=ea),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),Xn.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}};LI.instanceCount=0;let mX=LI;class Fge{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new oe({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var t;const e=this._selector();e!==this.languageId&&(this.languageId=e,(t=this._emitter)==null||t.fire(this.languageId))}}const _X=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,EV=/(&)?(&)([^\s&])/g;var j2;(function(n){n[n.Right=0]="Right",n[n.Left=1]="Left"})(j2||(j2={}));var vX;(function(n){n[n.Above=0]="Above",n[n.Below=1]="Below"})(vX||(vX={}));class aS extends uc{constructor(e,t,i,s){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const r=document.createElement("div");r.classList.add("monaco-menu"),r.setAttribute("role","presentation"),super(r,{orientation:1,actionViewItemProvider:c=>this.doGetActionViewItem(c,i,o),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...ni||ra?[10]:[]],keyDown:!0}}),this.menuStyles=s,this.menuElement=r,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,s),this._register(ao.addTarget(r)),this._register(ge(r,Ae.KEY_DOWN,c=>{new Ji(c).equals(2)&&c.preventDefault()})),i.enableMnemonics&&this._register(ge(r,Ae.KEY_DOWN,c=>{const u=c.key.toLocaleLowerCase();if(this.mnemonics.has(u)){ci.stop(c,!0);const h=this.mnemonics.get(u);if(h.length===1&&(h[0]instanceof Bge&&h[0].container&&this.focusItemByElement(h[0].container),h[0].onClick(c)),h.length>1){const d=h.shift();d&&d.container&&(this.focusItemByElement(d.container),h.push(d)),this.mnemonics.set(u,h)}}})),ra&&this._register(ge(r,Ae.KEY_DOWN,c=>{const u=new Ji(c);u.equals(14)||u.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),ci.stop(c,!0)):(u.equals(13)||u.equals(12))&&(this.focusedItem=0,this.focusPrevious(),ci.stop(c,!0))})),this._register(ge(this.domNode,Ae.MOUSE_OUT,c=>{const u=c.relatedTarget;er(u,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),c.stopPropagation())})),this._register(ge(this.actionsList,Ae.MOUSE_OVER,c=>{let u=c.target;if(!(!u||!er(u,this.actionsList)||u===this.actionsList)){for(;u.parentElement!==this.actionsList&&u.parentElement!==null;)u=u.parentElement;if(u.classList.contains("action-item")){const h=this.focusedItem;this.setFocusedItem(u),h!==this.focusedItem&&this.updateFocus()}}})),this._register(ao.addTarget(this.actionsList)),this._register(ge(this.actionsList,sn.Tap,c=>{let u=c.initialTarget;if(!(!u||!er(u,this.actionsList)||u===this.actionsList)){for(;u.parentElement!==this.actionsList&&u.parentElement!==null;)u=u.parentElement;if(u.classList.contains("action-item")){const h=this.focusedItem;this.setFocusedItem(u),h!==this.focusedItem&&this.updateFocus()}}}));const o={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new ON(r,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const a=this.scrollableElement.getDomNode();a.style.position="",this.styleScrollElement(a,s),this._register(ge(r,sn.Change,c=>{ci.stop(c,!0);const u=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:u-c.translationY})})),this._register(ge(a,Ae.MOUSE_UP,c=>{c.preventDefault()}));const l=ut(e);r.style.maxHeight=`${Math.max(10,l.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter((c,u)=>{var h;return(h=i.submenuIds)!=null&&h.has(c.id)?(console.warn(`Found submenu cycle: ${c.id}`),!1):!(c instanceof nr&&(u===t.length-1||u===0||t[u-1]instanceof nr))}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(c=>!(c instanceof Wge)).forEach((c,u,h)=>{c.updatePositionInSet(u+1,h.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(fF(e)?this.styleSheet=fc(e):(aS.globalStyleSheet||(aS.globalStyleSheet=fc()),this.styleSheet=aS.globalStyleSheet)),this.styleSheet.textContent=u4t(t,fF(e))}styleScrollElement(e,t){const i=t.foregroundColor??"",s=t.backgroundColor??"",r=t.borderColor?`1px solid ${t.borderColor}`:"",o="5px",a=t.shadowColor?`0 2px 8px ${t.shadowColor}`:"";e.style.outline=r,e.style.borderRadius=o,e.style.color=i,e.style.backgroundColor=s,e.style.boxShadow=a}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t<this.actionsList.children.length;t++){const i=this.actionsList.children[t];if(e===i){this.focusedItem=t;break}}}updateFocus(e){super.updateFocus(e,!0,!0),typeof this.focusedItem<"u"&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}doGetActionViewItem(e,t,i){if(e instanceof nr)return new Wge(t.context,e,{icon:!0},this.menuStyles);if(e instanceof GS){const s=new Bge(e,e.actions,i,{...t,submenuIds:new Set([...t.submenuIds||[],e.id])},this.menuStyles);if(t.enableMnemonics){const r=s.getMnemonic();if(r&&s.isEnabled()){let o=[];this.mnemonics.has(r)&&(o=this.mnemonics.get(r)),o.push(s),this.mnemonics.set(r,o)}}return s}else{const s={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){const o=t.getKeyBinding(e);if(o){const a=o.getLabel();a&&(s.keybinding=a)}}const r=new cAe(t.context,e,s,this.menuStyles);if(t.enableMnemonics){const o=r.getMnemonic();if(o&&r.isEnabled()){let a=[];this.mnemonics.has(o)&&(a=this.mnemonics.get(o)),a.push(r),this.mnemonics.set(o,a)}}return r}}}class cAe extends bh{constructor(e,t,i,s){if(i.isMenu=!0,super(t,t,i),this.menuStyle=s,this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass="",this.options.label&&i.enableMnemonics){const r=this.action.label;if(r){const o=_X.exec(r);o&&(this.mnemonic=(o[1]?o[1]:o[3]).toLocaleLowerCase())}}this.runOnceToEnableMouseUp=new ji(()=>{this.element&&(this._register(ge(this.element,Ae.MOUSE_UP,r=>{if(ci.stop(r,!0),tu){if(new Iu(ut(this.element),r).rightButton)return;this.onClick(r)}else setTimeout(()=>{this.onClick(r)},0)})),this._register(ge(this.element,Ae.CONTEXT_MENU,r=>{ci.stop(r,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=ke(this.element,Pe("a.action-menu-item")),this._action.id===nr.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=ke(this.item,Pe("span.menu-item-check"+ft.asCSSSelector(Ne.menuSelection))),this.check.setAttribute("role","none"),this.label=ke(this.item,Pe("span.action-label")),this.options.label&&this.options.keybinding&&(ke(this.item,Pe("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),(e=this.item)==null||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){kr(this.label);let t=Jte(this.action.label);if(t){const i=c4t(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const s=_X.exec(t);if(s){t=Ik(t),EV.lastIndex=0;let r=EV.exec(t);for(;r&&r[1];)r=EV.exec(t);const o=a=>a.replace(/&&/g,"&");r?this.label.append(EN(o(t.substr(0,r.index))," "),Pe("u",{"aria-hidden":"true"},r[3]),qxe(o(t.substr(r.index+r[0].length))," ")):this.label.innerText=o(t).trim(),(e=this.item)==null||e.setAttribute("aria-keyshortcuts",(s[1]?s[1]:s[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle("checked",!!e),e!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,s=e&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",r=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t??"",this.item.style.backgroundColor=i??"",this.item.style.outline=s,this.item.style.outlineOffset=r),this.check&&(this.check.style.color=t??"")}}class Bge extends cAe{constructor(e,t,i,s,r){super(e,e,s,r),this.submenuActions=t,this.parentData=i,this.submenuOptions=s,this.mysubmenu=null,this.submenuDisposables=this._register(new be),this.mouseOver=!1,this.expandDirection=s&&s.expandDirection!==void 0?s.expandDirection:{horizontal:j2.Right,vertical:vX.Below},this.showScheduler=new ji(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new ji(()=>{this.element&&!er(zr(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=ke(this.item,Pe("span.submenu-indicator"+ft.asCSSSelector(Ne.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(ge(this.element,Ae.KEY_UP,t=>{const i=new Ji(t);(i.equals(17)||i.equals(3))&&(ci.stop(t,!0),this.createSubmenu(!0))})),this._register(ge(this.element,Ae.KEY_DOWN,t=>{const i=new Ji(t);zr()===this.item&&(i.equals(17)||i.equals(3))&&ci.stop(t,!0)})),this._register(ge(this.element,Ae.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(ge(this.element,Ae.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(ge(this.element,Ae.FOCUS_OUT,t=>{this.element&&!er(zr(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(e){ci.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,s){const r={top:0,left:0};return r.left=rC(e.width,t.width,{position:s.horizontal===j2.Right?0:1,offset:i.left,size:i.width}),r.left>=i.left&&r.left<i.left+i.width&&(i.left+10+t.width<=e.width&&(r.left=i.left+10),i.top+=10,i.height=0),r.top=rC(e.height,t.height,{position:0,offset:i.top,size:0}),r.top+t.height===i.top&&r.top+i.height+t.height<=e.height&&(r.top+=i.height),r}createSubmenu(e=!0){if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=ke(this.element,Pe("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");const t=ut(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode),i=parseFloat(t.paddingTop||"0")||0;this.submenuContainer.style.zIndex="1",this.submenuContainer.style.position="fixed",this.submenuContainer.style.top="0",this.submenuContainer.style.left="0",this.parentData.submenu=new aS(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new vz],this.submenuOptions,this.menuStyle);const s=this.element.getBoundingClientRect(),r={top:s.top-i,left:s.left,height:s.height+2*i,width:s.width},o=this.submenuContainer.getBoundingClientRect(),a=ut(this.element),{top:l,left:c}=this.calculateSubmenuMenuLayout(new Wi(a.innerWidth,a.innerHeight),Wi.lift(o),r,this.expandDirection);this.submenuContainer.style.left=`${c-o.left}px`,this.submenuContainer.style.top=`${l-o.top}px`,this.submenuDisposables.add(ge(this.submenuContainer,Ae.KEY_UP,u=>{new Ji(u).equals(15)&&(ci.stop(u,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(ge(this.submenuContainer,Ae.KEY_DOWN,u=>{new Ji(u).equals(15)&&ci.stop(u,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&((t=this.item)==null||t.setAttribute("aria-expanded",e))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class Wge extends ax{constructor(e,t,i,s){super(e,t,i),this.menuStyles=s}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function c4t(n){const e=_X,t=e.exec(n);if(!t)return n;const i=!t[1];return n.replace(e,i?"$2$3":"").trim()}function Vge(n){const e=yLe()[n.id];return`.codicon-${n.id}:before { content: '\\${e.toString(16)}'; }`}function u4t(n,e){let t=` +.monaco-menu { + font-size: 13px; + border-radius: 5px; + min-width: 160px; +} + +${Vge(Ne.menuSelection)} +${Vge(Ne.menuSubmenu)} + +.monaco-menu .monaco-action-bar { + text-align: right; + overflow: hidden; + white-space: nowrap; +} + +.monaco-menu .monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + width: 100%; + justify-content: flex-end; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: inline-block; +} + +.monaco-menu .monaco-action-bar.reverse .actions-container { + flex-direction: row-reverse; +} + +.monaco-menu .monaco-action-bar .action-item { + cursor: pointer; + display: inline-block; + transition: transform 50ms ease; + position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ +} + +.monaco-menu .monaco-action-bar .action-item.disabled { + cursor: default; +} + +.monaco-menu .monaco-action-bar .action-item .icon, +.monaco-menu .monaco-action-bar .action-item .codicon { + display: inline-block; +} + +.monaco-menu .monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar .action-label { + font-size: 11px; + margin-right: 4px; +} + +.monaco-menu .monaco-action-bar .action-item.disabled .action-label, +.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { + color: var(--vscode-disabledForeground); +} + +/* Vertical actions */ + +.monaco-menu .monaco-action-bar.vertical { + text-align: left; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid var(--vscode-menu-separatorBackground); + padding-top: 1px; + padding: 30px; +} + +.monaco-menu .secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} + +/* Action Items */ +.monaco-menu .monaco-action-bar .action-item.select-container { + overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.monaco-menu .monaco-action-bar.vertical { + margin-left: 0; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + padding: 0; + transform: none; + display: flex; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.active { + transform: none; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + flex: 1 1 auto; + display: flex; + height: 2em; + align-items: center; + position: relative; + margin: 0 4px; + border-radius: 4px; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { + opacity: unset; +} + +.monaco-menu .monaco-action-bar.vertical .action-label { + flex: 1 1 auto; + text-decoration: none; + padding: 0 1em; + background: none; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .keybinding, +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + display: inline-block; + flex: 2 1 auto; + padding: 0 1em; + text-align: right; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { + font-size: 16px !important; + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { + margin-left: auto; + margin-right: -20px; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { + opacity: 0.4; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { + display: inline-block; + box-sizing: border-box; + margin: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + position: static; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { + position: absolute; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + width: 100%; + height: 0px !important; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { + padding: 0.7em 1em 0.1em 1em; + font-weight: bold; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:hover { + color: inherit; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + position: absolute; + visibility: hidden; + width: 1em; + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { + visibility: visible; + display: flex; + align-items: center; + justify-content: center; +} + +/* Context Menu */ + +.context-view.monaco-menu-container { + outline: 0; + border: none; + animation: fadeIn 0.083s linear; + -webkit-app-region: no-drag; +} + +.context-view.monaco-menu-container :focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { + outline: 0; +} + +.hc-black .context-view.monaco-menu-container, +.hc-light .context-view.monaco-menu-container, +:host-context(.hc-black) .context-view.monaco-menu-container, +:host-context(.hc-light) .context-view.monaco-menu-container { + box-shadow: none; +} + +.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, +.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { + background: none; +} + +/* Vertical Action Bar Styles */ + +.monaco-menu .monaco-action-bar.vertical { + padding: 4px 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + height: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), +.monaco-menu .monaco-action-bar.vertical .keybinding { + font-size: inherit; + padding: 0 2em; + max-height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + font-size: inherit; + width: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + font-size: inherit; + margin: 5px 0 !important; + padding: 0; + border-radius: 0; +} + +.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { + margin-left: 0; + margin-right: 0; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + font-size: 60%; + padding: 0 1.8em; +} + +.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; + mask-size: 10px 10px; + -webkit-mask-size: 10px 10px; +} + +.monaco-menu .action-item { + cursor: default; +}`;if(e){t+=` + /* Arrows */ + .monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; + } + + .monaco-scrollable-element > .visible { + opacity: 1; + + /* Background rule added for IE9 - to allow clicks on dom node */ + background:rgba(0,0,0,0); + + transition: opacity 100ms linear; + } + .monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; + } + .monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; + } + + /* Scrollable Content Inset Shadow */ + .monaco-scrollable-element > .shadow { + position: absolute; + display: none; + } + .monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + } + .monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + } + .monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; + } + `;const i=n.scrollbarShadow;i&&(t+=` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${i} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${i} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${i} 6px 6px 6px -6px inset; + } + `);const s=n.scrollbarSliderBackground;s&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${s}; + } + `);const r=n.scrollbarSliderHoverBackground;r&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${r}; + } + `);const o=n.scrollbarSliderActiveBackground;o&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${o}; + } + `)}return t}class h4t{constructor(e,t,i,s){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=s,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=zr();let i;const s=ir(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:r=>{var u;this.lastContainer=r;const o=e.getMenuClassName?e.getMenuClassName():"";o&&(r.className+=" "+o),this.options.blockMouse&&(this.block=r.appendChild(Pe(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(u=this.blockDisposable)==null||u.dispose(),this.blockDisposable=ge(this.block,Ae.MOUSE_DOWN,h=>h.stopPropagation()));const a=new be,l=e.actionRunner||new qy;l.onWillRun(h=>this.onActionRun(h,!e.skipTelemetry),this,a),l.onDidRun(this.onDidActionRun,this,a),i=new aS(r,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:l,getKeyBinding:e.getKeyBinding?e.getKeyBinding:h=>this.keybindingService.lookupKeybinding(h.id)},iSt),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,a),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,a);const c=ut(r);return a.add(ge(c,Ae.BLUR,()=>this.contextViewService.hideContextView(!0))),a.add(ge(c,Ae.MOUSE_DOWN,h=>{if(h.defaultPrevented)return;const d=new Iu(c,h);let f=d.target;if(!d.rightButton){for(;f;){if(f===r)return;f=f.parentElement}this.contextViewService.hideContextView(!0)}})),Pu(a,i)},focus:()=>{i==null||i.focus(!!e.autoSelectFirstItem)},onHide:r=>{var o,a,l;(o=e.onHide)==null||o.call(e,!!r),this.block&&(this.block.remove(),this.block=null),(a=this.blockDisposable)==null||a.dispose(),this.blockDisposable=null,this.lastContainer&&(zr()===this.lastContainer||er(zr(),this.lastContainer))&&((l=this.focusToReturn)==null||l.focus()),this.lastContainer=null}},s,!!s)}onActionRun(e,t){t&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!ou(e.error)&&this.notificationService.error(e.error)}}var d4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Cw=function(n,e){return function(t,i){e(t,i,n)}};let bX=class extends ue{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new h4t(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,s,r,o){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=s,this.menuService=r,this.contextKeyService=o,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new oe),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new oe)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=yX.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var i;(i=e.onHide)==null||i.call(e,t),this._onDidHideContextMenu.fire()}}),ng.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};bX=d4t([Cw(0,Ro),Cw(1,ms),Cw(2,sm),Cw(3,Ni),Cw(4,vc),Cw(5,bt)],bX);var yX;(function(n){function e(i){return i&&i.menuId instanceof et}function t(i,s,r){if(!e(i))return i;const{menuId:o,menuActionOptions:a,contextKeyService:l}=i;return{...i,getActions:()=>{const c=[];if(o){const u=s.getMenuActions(o,l??r,a);nSt(u,c)}return i.getActions?nr.join(i.getActions(),c):c}}}n.transform=t})(yX||(yX={}));var q2;(function(n){n[n.API=0]="API",n[n.USER=1]="USER"})(q2||(q2={}));var Une=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},K2=function(n,e){return function(t,i){e(t,i,n)}};let wX=class{constructor(e){this._commandService=e}async open(e,t){if(!Eee(e,kt.command))return!1;if(!(t!=null&&t.allowCommands)||(typeof e=="string"&&(e=mt.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path)))return!0;let i=[];try{i=NU(decodeURIComponent(e.query))}catch{try{i=NU(e.query)}catch{}}return Array.isArray(i)||(i=[i]),await this._commandService.executeCommand(e.path,...i),!0}};wX=Une([K2(0,an)],wX);let CX=class{constructor(e){this._editorService=e}async open(e,t){typeof e=="string"&&(e=mt.parse(e));const{selection:i,uri:s}=cxt(e);return e=s,e.scheme===kt.file&&(e=fvt(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:i,source:t!=null&&t.fromUserGesture?q2.USER:q2.API,...t==null?void 0:t.editorOptions}},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0}};CX=Une([K2(0,wi)],CX);let SX=class{constructor(e,t){this._openers=new Go,this._validators=new Go,this._resolvers=new Go,this._resolvedUriTargets=new js(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new Go,this._defaultExternalOpener={openExternal:async i=>(dz(i,kt.http,kt.https)?vLe(i):Gi.location.href=i,!0)},this._openers.push({open:async(i,s)=>s!=null&&s.openExternal||dz(i,kt.mailto,kt.http,kt.https,kt.vsls)?(await this._doOpenExternal(i,s),!0):!1}),this._openers.push(new wX(t)),this._openers.push(new CX(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){const i=typeof e=="string"?mt.parse(e):e,s=this._resolvedUriTargets.get(i)??e;for(const r of this._validators)if(!await r.shouldOpen(s,t))return!1;for(const r of this._openers)if(await r.open(e,t))return!0;return!1}async resolveExternalUri(e,t){for(const i of this._resolvers)try{const s=await i.resolveExternalUri(e,t);if(s)return this._resolvedUriTargets.has(s.resolved)||this._resolvedUriTargets.set(s.resolved,e),s}catch{}throw new Error("Could not resolve external URI: "+e.toString())}async _doOpenExternal(e,t){const i=typeof e=="string"?mt.parse(e):e;let s;try{s=(await this.resolveExternalUri(i,t)).resolved}catch{s=i}let r;if(typeof e=="string"&&i.toString()===s.toString()?r=e:r=encodeURI(s.toString(!0)),t!=null&&t.allowContributedOpeners){const o=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(await a.openExternal(r,{sourceUri:i,preferredOpenerId:o},Vt.None))return!0}return this._defaultExternalOpener.openExternal(r,{sourceUri:i},Vt.None)}dispose(){this._validators.clear()}};SX=Une([K2(0,wi),K2(1,an)],SX);var f4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Hge=function(n,e){return function(t,i){e(t,i,n)}};let xX=class extends ue{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new oe),this._markerDecorations=new js,e.getModels().forEach(i=>this._onModelAdded(i)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new p4t(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var i;const t=this._markerDecorations.get(e.uri);t&&(t.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===kt.inMemory||e.uri.scheme===kt.internal||e.uri.scheme===kt.vscode)&&((i=this._markerService)==null||i.read({resource:e.uri}).map(s=>s.owner).forEach(s=>this._markerService.remove(s,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};xX=f4t([Hge(0,mn),Hge(1,op)],xX);class p4t extends ue{constructor(e){super(),this.model=e,this._map=new fht,this._register(lt(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(e){const{added:t,removed:i}=VCt(new Set(this._map.keys()),new Set(e));if(t.length===0&&i.length===0)return!1;const s=i.map(a=>this._map.get(a)),r=t.map(a=>({range:this._createDecorationRange(this.model,a),options:this._createDecorationOption(a)})),o=this.model.deltaDecorations(s,r);for(const a of i)this._map.delete(a);for(let a=0;a<o.length;a++)this._map.set(t[a],o[a]);return!0}getMarker(e){return this._map.getKey(e.id)}_createDecorationRange(e,t){let i=O.lift(t);if(t.severity===Zn.Hint&&!this._hasMarkerTag(t,1)&&!this._hasMarkerTag(t,2)&&(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),i=e.validateRange(i),i.isEmpty()){const s=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);if(s===1||i.endColumn>=s)return i;const r=e.getWordAtPosition(i.getStartPosition());r&&(i=new O(i.startLineNumber,r.startColumn,i.endLineNumber,r.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){const s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s<i.endColumn&&(i=new O(i.startLineNumber,s,i.endLineNumber,i.endColumn),t.startColumn=s)}return i}_createDecorationOption(e){let t,i,s,r,o;switch(e.severity){case Zn.Hint:this._hasMarkerTag(e,2)?t=void 0:this._hasMarkerTag(e,1)?t="squiggly-unnecessary":t="squiggly-hint",s=0;break;case Zn.Info:t="squiggly-info",i=Gn(Jmt),s=10,o={color:Gn(ypt),position:1};break;case Zn.Warning:t="squiggly-warning",i=Gn(Qmt),s=20,o={color:Gn(wpt),position:1};break;case Zn.Error:default:t="squiggly-error",i=Gn(Zmt),s=30,o={color:Gn(Cpt),position:1};break}return e.tags&&(e.tags.indexOf(1)!==-1&&(r="squiggly-inline-unnecessary"),e.tags.indexOf(2)!==-1&&(r="squiggly-inline-deprecated")),{description:"marker-decoration",stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:i,position:cc.Right},minimap:o,zIndex:s,inlineClassName:r}}_hasMarkerTag(e,t){return e.tags?e.tags.indexOf(t)>=0:!1}}var g4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},TE=function(n,e){return function(t,i){e(t,i,n)}},Mw;function lv(n){return n.toString()}class m4t{constructor(e,t,i){this.model=e,this._modelEventListeners=new be,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(s=>i(e,s)))}dispose(){this._modelEventListeners.dispose()}}const _4t=ra||ni?1:2;class v4t{constructor(e,t,i,s,r,o,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=s,this.heapSize=r,this.sha1=o,this.versionId=a,this.alternativeVersionId=l}}var Ly;let LX=(Ly=class extends ue{constructor(e,t,i,s,r){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=s,this._languageConfigurationService=r,this._onModelAdded=this._register(new oe),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new oe),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new oe),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(o=>this._updateModelOptions(o))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var d;let i=eo.tabSize;if(e.editor&&typeof e.editor.tabSize<"u"){const f=parseInt(e.editor.tabSize,10);isNaN(f)||(i=f),i<1&&(i=1)}let s="tabSize";if(e.editor&&typeof e.editor.indentSize<"u"&&e.editor.indentSize!=="tabSize"){const f=parseInt(e.editor.indentSize,10);isNaN(f)||(s=Math.max(f,1))}let r=eo.insertSpaces;e.editor&&typeof e.editor.insertSpaces<"u"&&(r=e.editor.insertSpaces==="false"?!1:!!e.editor.insertSpaces);let o=_4t;const a=e.eol;a===`\r +`?o=2:a===` +`&&(o=1);let l=eo.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<"u"&&(l=e.editor.trimAutoWhitespace==="false"?!1:!!e.editor.trimAutoWhitespace);let c=eo.detectIndentation;e.editor&&typeof e.editor.detectIndentation<"u"&&(c=e.editor.detectIndentation==="false"?!1:!!e.editor.detectIndentation);let u=eo.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<"u"&&(u=e.editor.largeFileOptimizations==="false"?!1:!!e.editor.largeFileOptimizations);let h=eo.bracketPairColorizationOptions;return(d=e.editor)!=null&&d.bracketPairColorization&&typeof e.editor.bracketPairColorization=="object"&&(h={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:i,indentSize:s,insertSpaces:r,detectIndentation:c,defaultEOL:o,trimAutoWhitespace:l,largeFileOptimizations:u,bracketPairColorizationOptions:h}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&typeof i=="string"&&i!=="auto"?i:cl===3||cl===2?` +`:`\r +`}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,i){const s=typeof e=="string"?e:e.languageId;let r=this._modelCreationOptionsByLanguageAndResource[s+t];if(!r){const o=this._configurationService.getValue("editor",{overrideIdentifier:s,resource:t}),a=this._getEOL(t,s);r=Mw._readModelOptions({editor:o,eol:a},i),this._modelCreationOptionsByLanguageAndResource[s+t]=r}return r}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let s=0,r=i.length;s<r;s++){const o=i[s],a=this._models[o],l=a.model.getLanguageId(),c=a.model.uri;if(e&&!e.affectsConfiguration("editor",{overrideIdentifier:l,resource:c})&&!e.affectsConfiguration("files.eol",{overrideIdentifier:l,resource:c}))continue;const u=t[l+c],h=this.getCreationOptions(l,c,a.model.isForSimpleWidget);Mw._setModelOptionsForModel(a.model,h,u)}}static _setModelOptionsForModel(e,t,i){i&&i.defaultEOL!==t.defaultEOL&&e.getLineCount()===1&&e.setEOL(t.defaultEOL===1?0:1),!(i&&i.detectIndentation===t.detectIndentation&&i.insertSpaces===t.insertSpaces&&i.tabSize===t.tabSize&&i.indentSize===t.indentSize&&i.trimAutoWhitespace===t.trimAutoWhitespace&&lc(i.bracketPairColorizationOptions,t.bracketPairColorizationOptions))&&(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions}))}_insertDisposedModel(e){this._disposedModels.set(lv(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(lv(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(lv(e)),t}_ensureDisposedModelsHeapSize(e){if(this._disposedModelsHeapSize>e){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,s)=>i.time-s.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,s){const r=this.getCreationOptions(t,i,s),o=new Ah(e,t,r,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(lv(i))){const c=this._removeDisposedModel(i),u=this._undoRedoService.getElements(i),h=this._getSHA1Computer(),d=h.canComputeSHA1(o)?h.computeSHA1(o)===c.sha1:!1;if(d||c.sharesUndoRedoStack){for(const f of u.past)Wp(f)&&f.matchesResource(i)&&f.setModel(o);for(const f of u.future)Wp(f)&&f.matchesResource(i)&&f.setModel(o);this._undoRedoService.setElementsValidFlag(i,!0,f=>Wp(f)&&f.matchesResource(i)),d&&(o._overwriteVersionId(c.versionId),o._overwriteAlternativeVersionId(c.alternativeVersionId),o._overwriteInitialUndoRedoSnapshot(c.initialUndoRedoSnapshot))}else c.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(c.initialUndoRedoSnapshot)}const a=lv(o.uri);if(this._models[a])throw new Error("ModelService: Cannot add model because it already exists!");const l=new m4t(o,c=>this._onWillDispose(c),(c,u)=>this._onDidChangeLanguage(c,u));return this._models[a]=l,l}createModel(e,t,i,s=!1){let r;return t?r=this._createModelData(e,t,i,s):r=this._createModelData(e,ea,i,s),this._onModelAdded.fire(r.model),r.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,s=t.length;i<s;i++){const r=t[i];e.push(this._models[r].model)}return e}getModel(e){const t=lv(e),i=this._models[t];return i?i.model:null}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===kt.file||e.scheme===kt.vscodeRemote||e.scheme===kt.vscodeUserData||e.scheme===kt.vscodeNotebookCell||e.scheme==="fake-fs"}_onWillDispose(e){const t=lv(e.uri),i=this._models[t],s=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let r=!1,o=0;if(s||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(e.uri)){const c=this._undoRedoService.getElements(e.uri);if(c.past.length>0||c.future.length>0){for(const u of c.past)Wp(u)&&u.matchesResource(e.uri)&&(r=!0,o+=u.heapSize(e.uri),u.setModel(e.uri));for(const u of c.future)Wp(u)&&u.matchesResource(e.uri)&&(r=!0,o+=u.heapSize(e.uri),u.setModel(e.uri))}}const a=Mw.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,l=this._getSHA1Computer();if(r)if(!s&&(o>a||!l.canComputeSHA1(e))){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}else this._ensureDisposedModelsHeapSize(a-o),this._undoRedoService.setElementsValidFlag(e.uri,!1,c=>Wp(c)&&c.matchesResource(e.uri)),this._insertDisposedModel(new v4t(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),s,o,l.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!s){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,s=e.getLanguageId(),r=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),o=this.getCreationOptions(s,e.uri,e.isForSimpleWidget);Mw._setModelOptionsForModel(e,o,r),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new EX}},Mw=Ly,Ly.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024,Ly);LX=Mw=g4t([TE(0,Xt),TE(1,gTe),TE(2,b8),TE(3,Dn),TE(4,ln)],LX);const T5=class T5{canComputeSHA1(e){return e.getValueLength()<=T5.MAX_MODEL_SIZE}computeSHA1(e){const t=new pz,i=e.createSnapshot();let s;for(;s=i.read();)t.update(s);return t.digest()}};T5.MAX_MODEL_SIZE=10*1024*1024;let EX=T5;var b4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},$ge=function(n,e){return function(t,i){e(t,i,n)}};let kX=class extends ue{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Vn.as(U0.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var p,g;const[s,r]=this.getOrInstantiateProvider(e,i==null?void 0:i.enabledProviderPrefixes),o=this.visibleQuickAccess,a=o==null?void 0:o.descriptor;if(o&&r&&a===r){e!==r.prefix&&!(i!=null&&i.preserveValue)&&(o.picker.value=e),this.adjustValueSelection(o.picker,r,i);return}if(r&&!(i!=null&&i.preserveValue)){let m;if(o&&a&&a!==r){const _=o.value.substr(a.prefix.length);_&&(m=`${r.prefix}${_}`)}if(!m){const _=s==null?void 0:s.defaultFilterValue;_===ZG.LAST?m=this.lastAcceptedPickerValues.get(r):typeof _=="string"&&(m=`${r.prefix}${_}`)}typeof m=="string"&&(e=m)}const l=(p=o==null?void 0:o.picker)==null?void 0:p.valueSelection,c=(g=o==null?void 0:o.picker)==null?void 0:g.value,u=new be,h=u.add(this.quickInputService.createQuickPick());h.value=e,this.adjustValueSelection(h,r,i),h.placeholder=(i==null?void 0:i.placeholder)??(r==null?void 0:r.placeholder),h.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,h.hideInput=!!h.quickNavigate&&!o,(typeof(i==null?void 0:i.itemActivation)=="number"||i!=null&&i.quickNavigateConfiguration)&&(h.itemActivation=(i==null?void 0:i.itemActivation)??gh.SECOND),h.contextKey=r==null?void 0:r.contextKey,h.filterValue=m=>m.substring(r?r.prefix.length:0);let d;t&&(d=new rL,u.add(Oe.once(h.onWillAccept)(m=>{m.veto(),h.hide()}))),u.add(this.registerPickerListeners(h,s,r,e,i));const f=u.add(new Wn);if(s&&u.add(s.provide(h,f.token,i==null?void 0:i.providerOptions)),Oe.once(h.onDidHide)(()=>{h.selectedItems.length===0&&f.cancel(),u.dispose(),d==null||d.complete(h.selectedItems.slice(0))}),h.show(),l&&c===e&&(h.valueSelection=l),t)return d==null?void 0:d.p}adjustValueSelection(e,t,i){let s;i!=null&&i.preserveValue?s=[e.value.length,e.value.length]:s=[(t==null?void 0:t.prefix.length)??0,e.value.length],e.valueSelection=s}registerPickerListeners(e,t,i,s,r){const o=new be,a=this.visibleQuickAccess={picker:e,descriptor:i,value:s};return o.add(lt(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),o.add(e.onDidChangeValue(l=>{const[c]=this.getOrInstantiateProvider(l,r==null?void 0:r.enabledProviderPrefixes);c!==t?this.show(l,{enabledProviderPrefixes:r==null?void 0:r.enabledProviderPrefixes,preserveValue:!0,providerOptions:r==null?void 0:r.providerOptions}):a.value=l})),i&&o.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),o}getOrInstantiateProvider(e,t){const i=this.registry.getQuickAccessProvider(e);if(!i||t&&!(t!=null&&t.includes(i.prefix)))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(i);return s||(s=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,s)),[s,i]}};kX=b4t([$ge(0,cu),$ge(1,ct)],kX);var y4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r};class uAe{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e=="string"?e:e.label).join("")}}y4t([gs],uAe.prototype,"toString",null);const w4t=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function C4t(n){const e=[];let t=0,i;for(;i=w4t.exec(n);){i.index-t>0&&e.push(n.substring(t,i.index));const[,s,r,,o]=i;o?e.push({label:s,href:r,title:o}):e.push({label:s,href:r}),t=i.index+i[0].length}return t<n.length&&e.push(n.substring(t)),new uAe(e)}const kV={},S4t=new eie("quick-input-button-icon-");function x4t(n){if(!n)return;let e;const t=n.dark.toString();return kV[t]?e=kV[t]:(e=S4t.nextId(),pF(`.${e}, .hc-light .${e}`,`background-image: ${Wg(n.light||n.dark)}`),pF(`.vs-dark .${e}, .hc-black .${e}`,`background-image: ${Wg(n.dark)}`),kV[t]=e),e}function cI(n,e,t){let i=n.iconClass||x4t(n.iconPath);return n.alwaysVisible&&(i=i?`${i} always-visible`:"always-visible"),{id:e,label:"",tooltip:n.tooltip||"",class:i,enabled:!0,run:t}}function L4t(n,e,t){Ir(e);const i=C4t(n);let s=0;for(const r of i.nodes)if(typeof r=="string")e.append(...L1(r));else{let o=r.title;!o&&r.href.startsWith("command:")?o=v("executeCommand","Click to execute command '{0}'",r.href.substring(8)):o||(o=r.href);const a=Pe("a",{href:r.href,title:o,tabIndex:s++},r.label);a.style.textDecoration="underline";const l=f=>{_ut(f)&&ci.stop(f,!0),t.callback(r.href)},c=t.disposables.add(new li(a,Ae.CLICK)).event,u=t.disposables.add(new li(a,Ae.KEY_DOWN)).event,h=Oe.chain(u,f=>f.filter(p=>{const g=new Ji(p);return g.equals(10)||g.equals(3)}));t.disposables.add(ao.addTarget(a));const d=t.disposables.add(new li(a,sn.Tap)).event;Oe.any(c,d,h)(l,null,t.disposables),e.appendChild(a)}}var E4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},zge=function(n,e){return function(t,i){e(t,i,n)}};const hAe="inQuickInput",k4t=new $e(hAe,!1,v("inQuickInput","Whether keyboard focus is inside the quick input control")),I4t=ye.has(hAe),dAe="quickInputType",T4t=new $e(dAe,void 0,v("quickInputType","The type of the currently visible quick input")),fAe="cursorAtEndOfQuickInputBox",D4t=new $e(fAe,!1,v("cursorAtEndOfQuickInputBox","Whether the cursor in the quick input is at the end of the input box")),N4t=ye.has(fAe),IX={iconClass:ft.asClassName(Ne.quickInputBack),tooltip:v("quickInput.back","Back"),handle:-1},D5=class D5 extends ue{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._leftButtons=[],this._rightButtons=[],this._inlineButtons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=D5.noPromptMessage,this._severity=fs.Ignore,this.onDidTriggerButtonEmitter=this._register(new oe),this.onDidHideEmitter=this._register(new oe),this.onWillHideEmitter=this._register(new oe),this.onDisposeEmitter=this._register(new oe),this.visibleDisposables=this._register(new be),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!Gh;this._ignoreFocusOut=e&&!Gh,t&&this.update()}get titleButtons(){return this._leftButtons.length?[...this._leftButtons,this._rightButtons]:this._rightButtons}get buttons(){return[...this._leftButtons,...this._rightButtons,...this._inlineButtons]}set buttons(e){this._leftButtons=e.filter(t=>t===IX),this._rightButtons=e.filter(t=>t!==IX&&t.location!==S4.Inline),this._inlineButtons=e.filter(t=>t.location===S4.Inline),this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{this.buttons.indexOf(e)!==-1&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=ux.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}willHide(e=ux.Other){this.onWillHideEmitter.fire({reason:e})}update(){var s;if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:!e&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText=" ");const t=this.getDescription();if(this.ui.description1.textContent!==t&&(this.ui.description1.textContent=t),this.ui.description2.textContent!==t&&(this.ui.description2.textContent=t),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?Ir(this.ui.widget,this._widget):Ir(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new Zu,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const r=this._leftButtons.map((l,c)=>cI(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.leftActionBar.push(r,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const o=this._rightButtons.map((l,c)=>cI(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.rightActionBar.push(o,{icon:!0,label:!1}),this.ui.inlineActionBar.clear();const a=this._inlineButtons.map((l,c)=>cI(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.inlineActionBar.push(a,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const r=((s=this.toggles)==null?void 0:s.filter(o=>o instanceof LL))??[];this.ui.inputBox.toggles=r}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const i=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==i&&(this._lastValidationMessage=i,Ir(this.ui.message),L4t(i,this.ui.message,{callback:r=>{this.ui.linkOpenerDelegate(r)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?v("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==fs.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}};D5.noPromptMessage=v("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");let G2=D5;const N5=class N5 extends G2{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new oe),this.onWillAcceptEmitter=this._register(new oe),this.onDidAcceptEmitter=this._register(new oe),this.onDidCustomEmitter=this._register(new oe),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=gh.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new oe),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new oe),this.onDidTriggerItemButtonEmitter=this._register(new oe),this.onDidTriggerSeparatorButtonEmitter=this._register(new oe),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this._focusEventBufferer=new xN,this.type="quickPick",this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?pxt:this.ui.keyMods}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(dn.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(e,t)=>t)(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&In(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&In(e,this._selectedItems,(i,s)=>i===s)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(Dee(t)&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{!this.canSelectMany||!this.visible||this.selectedItemsToConfirm!==this._selectedItems&&In(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(e=>this.onDidTriggerSeparatorButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return ge(this.ui.container,Ae.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new Ji(e),i=t.keyCode;this._quickNavigate.keybindings.some(o=>{const a=o.getChords();return a.length>1?!1:a[0].shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a[0].altKey&&i===6||a[0].ctrlKey&&i===5||a[0].metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.titleButtons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let s=this.ariaLabel;!s&&i.inputBox&&(s=this.placeholder||N5.DEFAULT_ARIA_LABEL,this.title&&(s+=` - ${this.title}`)),this.ui.list.ariaLabel!==s&&(this.ui.list.ariaLabel=s??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this._itemActivation){case gh.NONE:this._itemActivation=gh.FIRST;break;case gh.SECOND:this.ui.list.focus(dn.Second),this._itemActivation=gh.FIRST;break;case gh.LAST:this.ui.list.focus(dn.Last),this._itemActivation=gh.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(dn.First)),this.keepScrollPosition&&(this.scrollTop=e)}focus(e){this.ui.list.focus(e),this.canSelectMany&&this.ui.list.domFocus()}accept(e){e&&!this._canAcceptInBackground||this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(e??!1))}};N5.DEFAULT_ARIA_LABEL=v("quickInputBox.ariaLabel","Type to narrow down results.");let X2=N5;class A4t extends G2{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new oe),this.onDidAcceptEmitter=this._register(new oe),this.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.titleButtons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}let TX=class extends cx{constructor(e,t){super("element",!1,i=>this.getOverrideOptions(i),e,t)}getOverrideOptions(e){const t=(ir(e.content)?e.content.textContent??"":typeof e.content=="string"?e.content:e.content.value).includes(` +`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:t,skipFadeInAnimation:!0}}}};TX=E4t([zge(0,Xt),zge(1,rp)],TX);const Uge="done",jge="active",IV="infinite",TV="infinite-long-running",qge="discrete",A5=class A5 extends ue{constructor(e,t){super(),this.progressSignal=this._register(new rr),this.workedVal=0,this.showDelayedScheduler=this._register(new ji(()=>ol(this.element),0)),this.longRunningScheduler=this._register(new ji(()=>this.infiniteLongRunning(),A5.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=(t==null?void 0:t.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(jge,IV,TV,qge),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(Uge),this.element.classList.contains(IV)?(this.bit.style.opacity="0",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(qge,Uge,TV),this.element.classList.add(jge,IV),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(TV)}getContainer(){return this.element}};A5.LONG_RUNNING_INFINITE_THRESHOLD=1e4;let DX=A5;const P4t=Pe;class R4t extends ue{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=r=>os(this.findInput.inputBox.inputElement,Ae.KEY_DOWN,r),this.onDidChange=r=>this.findInput.onDidChange(r),this.container=ke(this.parent,P4t(".quick-input-box")),this.findInput=this._register(new JTe(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:i}));const s=this.findInput.inputBox.inputElement;s.role="combobox",s.ariaHasPopup="menu",s.ariaAutoComplete="list",s.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(e){this.findInput.inputBox.inputElement.type=e?"password":"text"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===fs.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===fs.Info?1:e===fs.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===fs.Info?1:e===fs.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}const Kge=new Yh(()=>{const n=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:n,collatorIsNumeric:n.resolvedOptions().numeric}});function M4t(n,e,t=!1){const i=n||"",s=e||"",r=Kge.value.collator.compare(i,s);return Kge.value.collatorIsNumeric&&r===0&&i!==s?i<s?-1:1:r}function O4t(n,e,t){const i=n.toLowerCase(),s=e.toLowerCase(),r=F4t(n,e,t);if(r)return r;const o=i.endsWith(t),a=s.endsWith(t);if(o!==a)return o?-1:1;const l=M4t(i,s);return l!==0?l:i.localeCompare(s)}function F4t(n,e,t){const i=n.toLowerCase(),s=e.toLowerCase(),r=i.startsWith(t),o=s.startsWith(t);if(r!==o)return r?-1:1;if(r&&o){if(i.length<s.length)return-1;if(i.length>s.length)return 1}return 0}var a9=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},NX=function(n,e){return function(t,i){e(t,i,n)}},AX;const ah=Pe;class pAe{constructor(e,t,i){this.index=e,this.hasCheckbox=t,this._hidden=!1,this._init=new Yh(()=>{const s=i.label??"",r=jE(s).text.trim(),o=i.ariaLabel||[s,this.saneDescription,this.saneDetail].map(a=>C0t(a)).filter(a=>!!a).join(", ");return{saneLabel:s,saneSortLabel:r,saneAriaLabel:o}}),this._saneDescription=i.description,this._saneTooltip=i.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get saneDescription(){return this._saneDescription}set saneDescription(e){this._saneDescription=e}get saneDetail(){return this._saneDetail}set saneDetail(e){this._saneDetail=e}get saneTooltip(){return this._saneTooltip}set saneTooltip(e){this._saneTooltip=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class vr extends pAe{constructor(e,t,i,s,r,o){var a,l,c;super(e,t,r),this.fireButtonTriggered=i,this._onChecked=s,this.item=r,this._separator=o,this._checked=!1,this.onChecked=t?Oe.map(Oe.filter(this._onChecked.event,u=>u.element===this),u=>u.checked):Oe.None,this._saneDetail=r.detail,this._labelHighlights=(a=r.highlights)==null?void 0:a.label,this._descriptionHighlights=(l=r.highlights)==null?void 0:l.description,this._detailHighlights=(c=r.highlights)==null?void 0:c.detail}get separator(){return this._separator}set separator(e){this._separator=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({element:this,checked:e}))}get checkboxDisabled(){return!!this.item.disabled}}var qd;(function(n){n[n.NONE=0]="NONE",n[n.MOUSE_HOVER=1]="MOUSE_HOVER",n[n.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(qd||(qd={}));class Sv extends pAe{constructor(e,t,i){super(e,!1,i),this.fireSeparatorButtonTriggered=t,this.separator=i,this.children=new Array,this.focusInsideSeparator=qd.NONE}}class B4t{getHeight(e){return e instanceof Sv?30:e.saneDetail?44:22}getTemplateId(e){return e instanceof vr?Y2.ID:Z2.ID}}class W4t{getWidgetAriaLabel(){return v("quickInput","Quick Input")}getAriaLabel(e){var t;return(t=e.separator)!=null&&t.label?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(!(!e.hasCheckbox||!(e instanceof vr)))return{get value(){return e.checked},onDidChange:t=>e.onChecked(()=>t())}}}class gAe{constructor(e){this.hoverDelegate=e}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=new be,t.toDisposeTemplate=new be,t.entry=ke(e,ah(".quick-input-list-entry"));const i=ke(t.entry,ah("label.quick-input-list-label"));t.toDisposeTemplate.add(os(i,Ae.CLICK,c=>{t.checkbox.offsetParent||c.preventDefault()})),t.checkbox=ke(i,ah("input.quick-input-list-checkbox")),t.checkbox.type="checkbox";const s=ke(i,ah(".quick-input-list-rows")),r=ke(s,ah(".quick-input-list-row")),o=ke(s,ah(".quick-input-list-row"));t.label=new q4(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.label),t.icon=Nee(t.label.element,ah(".quick-input-list-icon"));const a=ke(r,ah(".quick-input-list-entry-keybinding"));t.keybinding=new xL(a,cl),t.toDisposeTemplate.add(t.keybinding);const l=ke(o,ah(".quick-input-list-label-meta"));return t.detail=new q4(l,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.detail),t.separator=ke(t.entry,ah(".quick-input-list-separator")),t.actionBar=new uc(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.add(t.actionBar),t}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}disposeElement(e,t,i){i.toDisposeElement.clear(),i.actionBar.clear()}}var Ey;let Y2=(Ey=class extends gAe{constructor(e,t){super(e),this.themeService=t,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return AX.ID}renderTemplate(e){const t=super.renderTemplate(e);return t.toDisposeTemplate.add(os(t.checkbox,Ae.CHANGE,i=>{t.element.checked=t.checkbox.checked})),t}renderElement(e,t,i){var d;const s=e.element;i.element=s,s.element=i.entry??void 0;const r=s.item;i.checkbox.checked=s.checked,i.toDisposeElement.add(s.onChecked(f=>i.checkbox.checked=f)),i.checkbox.disabled=s.checkboxDisabled;const{labelHighlights:o,descriptionHighlights:a,detailHighlights:l}=s;if(r.iconPath){const f=ex(this.themeService.getColorTheme().type)?r.iconPath.dark:r.iconPath.light??r.iconPath.dark,p=mt.revive(f);i.icon.className="quick-input-list-icon",i.icon.style.backgroundImage=Wg(p)}else i.icon.style.backgroundImage="",i.icon.className=r.iconClass?`quick-input-list-icon ${r.iconClass}`:"";let c;!s.saneTooltip&&s.saneDescription&&(c={markdown:{value:s.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDescription});const u={matches:o||[],descriptionTitle:c,descriptionMatches:a||[],labelEscapeNewLines:!0};if(u.extraClasses=r.iconClasses,u.italic=r.italic,u.strikethrough=r.strikethrough,i.entry.classList.remove("quick-input-list-separator-as-item"),i.label.setLabel(s.saneLabel,s.saneDescription,u),i.keybinding.set(r.keybinding),s.saneDetail){let f;s.saneTooltip||(f={markdown:{value:s.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(s.saneDetail,void 0,{matches:l,title:f,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";(d=s.separator)!=null&&d.label?(i.separator.textContent=s.separator.label,i.separator.style.display="",this.addItemWithSeparator(s)):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!s.separator);const h=r.buttons;h&&h.length?(i.actionBar.push(h.map((f,p)=>cI(f,`id-${p}`,()=>s.fireButtonTriggered({button:f,item:s.item}))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){this.removeItemWithSeparator(e.element),super.disposeElement(e,t,i)}isItemWithSeparatorVisible(e){return this._itemsWithSeparatorsFrequency.has(e)}addItemWithSeparator(e){this._itemsWithSeparatorsFrequency.set(e,(this._itemsWithSeparatorsFrequency.get(e)||0)+1)}removeItemWithSeparator(e){const t=this._itemsWithSeparatorsFrequency.get(e)||0;t>1?this._itemsWithSeparatorsFrequency.set(e,t-1):this._itemsWithSeparatorsFrequency.delete(e)}},AX=Ey,Ey.ID="quickpickitem",Ey);Y2=AX=a9([NX(1,Xs)],Y2);const P5=class P5 extends gAe{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return P5.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(e){return this._visibleSeparatorsFrequency.has(e)}renderElement(e,t,i){const s=e.element;i.element=s,s.element=i.entry??void 0,s.element.classList.toggle("focus-inside",!!s.focusInsideSeparator);const r=s.separator,{labelHighlights:o,descriptionHighlights:a,detailHighlights:l}=s;i.icon.style.backgroundImage="",i.icon.className="";let c;!s.saneTooltip&&s.saneDescription&&(c={markdown:{value:s.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDescription});const u={matches:o||[],descriptionTitle:c,descriptionMatches:a||[],labelEscapeNewLines:!0};if(i.entry.classList.add("quick-input-list-separator-as-item"),i.label.setLabel(s.saneLabel,s.saneDescription,u),s.saneDetail){let d;s.saneTooltip||(d={markdown:{value:s.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(s.saneDetail,void 0,{matches:l,title:d,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";i.separator.style.display="none",i.entry.classList.add("quick-input-list-separator-border");const h=r.buttons;h&&h.length?(i.actionBar.push(h.map((d,f)=>cI(d,`id-${f}`,()=>s.fireSeparatorButtonTriggered({button:d,separator:s.separator}))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions"),this.addSeparator(s)}disposeElement(e,t,i){var s;this.removeSeparator(e.element),this.isSeparatorVisible(e.element)||(s=e.element.element)==null||s.classList.remove("focus-inside"),super.disposeElement(e,t,i)}addSeparator(e){this._visibleSeparatorsFrequency.set(e,(this._visibleSeparatorsFrequency.get(e)||0)+1)}removeSeparator(e){const t=this._visibleSeparatorsFrequency.get(e)||0;t>1?this._visibleSeparatorsFrequency.set(e,t-1):this._visibleSeparatorsFrequency.delete(e)}};P5.ID="quickpickseparator";let Z2=P5,qD=class extends ue{constructor(e,t,i,s,r,o){super(),this.parent=e,this.hoverDelegate=t,this.linkOpenerDelegate=i,this.accessibilityService=o,this._onKeyDown=new oe,this._onLeave=new oe,this.onLeave=this._onLeave.event,this._visibleCountObservable=Gt("VisibleCount",0),this.onChangedVisibleCount=Oe.fromObservable(this._visibleCountObservable,this._store),this._allVisibleCheckedObservable=Gt("AllVisibleChecked",!1),this.onChangedAllVisibleChecked=Oe.fromObservable(this._allVisibleCheckedObservable,this._store),this._checkedCountObservable=Gt("CheckedCount",0),this.onChangedCheckedCount=Oe.fromObservable(this._checkedCountObservable,this._store),this._checkedElementsObservable=xU({equalsFn:In},new Array),this.onChangedCheckedElements=Oe.fromObservable(this._checkedElementsObservable,this._store),this._onButtonTriggered=new oe,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new oe,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new oe,this._elementCheckedEventBufferer=new xN,this._hasCheckboxes=!1,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new be),this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=ke(this.parent,ah(".quick-input-list")),this._separatorRenderer=new Z2(t),this._itemRenderer=r.createInstance(Y2,t),this._tree=this._register(r.createInstance(Vq,"QuickInput",this._container,new B4t,[this._itemRenderer,this._separatorRenderer],{accessibilityProvider:new W4t,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:px.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=s,this._registerListeners()}get onDidChangeFocus(){return Oe.map(this._tree.onDidChangeFocus,e=>e.elements.filter(t=>t instanceof vr).map(t=>t.item),this._store)}get onDidChangeSelection(){return Oe.map(this._tree.onDidChangeSelection,e=>({items:e.elements.filter(t=>t instanceof vr).map(t=>t.item),event:e.browserEvent}),this._store)}get displayed(){return this._container.style.display!=="none"}set displayed(e){this._container.style.display=e?"":"none"}get scrollTop(){return this._tree.scrollTop}set scrollTop(e){this._tree.scrollTop=e}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(e){this._tree.ariaLabel=e??""}set enabled(e){this._tree.getHTMLElement().style.pointerEvents=e?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}get shouldLoop(){return this._shouldLoop}set shouldLoop(e){this._shouldLoop=e}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnTreeModelChanged(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(e=>{const t=new Ji(e);switch(t.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(t)}))}_registerOnContainerClick(){this._register(ge(this._container,Ae.CLICK,e=>{(e.x||e.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(ge(this._container,Ae.AUXCLICK,e=>{e.button===1&&this._onLeave.fire()}))}_registerOnTreeModelChanged(){this._register(this._tree.onDidChangeModel(()=>{const e=this._itemElements.filter(t=>!t.hidden).length;this._visibleCountObservable.set(e,void 0),this._hasCheckboxes&&this._updateCheckedObservables()}))}_registerOnElementChecked(){this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event,(e,t)=>t)(e=>this._updateCheckedObservables()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(e=>{e.element&&(e.browserEvent.preventDefault(),this._tree.setSelection([e.element]))}))}_registerHoverListeners(){const e=this._register(new Rxe(this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async t=>{var i;if(pue(t.browserEvent.target)){e.cancel();return}if(!(!pue(t.browserEvent.relatedTarget)&&er(t.browserEvent.relatedTarget,(i=t.element)==null?void 0:i.element)))try{await e.trigger(async()=>{t.element instanceof vr&&this.showHover(t.element)})}catch(s){if(!ou(s))throw s}})),this._register(this._tree.onMouseOut(t=>{var i;er(t.browserEvent.relatedTarget,(i=t.element)==null?void 0:i.element)||e.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(e=>{const t=e.elements[0]?this._tree.getParentElement(e.elements[0]):null;for(const i of this._separatorRenderer.visibleSeparators){const s=i===t;!!(i.focusInsideSeparator&qd.ACTIVE_ITEM)!==s&&(s?i.focusInsideSeparator|=qd.ACTIVE_ITEM:i.focusInsideSeparator&=~qd.ACTIVE_ITEM,this._tree.rerender(i))}})),this._register(this._tree.onMouseOver(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&qd.MOUSE_HOVER)||(i.focusInsideSeparator|=qd.MOUSE_HOVER,this._tree.rerender(i))}})),this._register(this._tree.onMouseOut(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&qd.MOUSE_HOVER)&&(i.focusInsideSeparator&=~qd.MOUSE_HOVER,this._tree.rerender(i))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(e=>{const t=e.elements.filter(i=>i instanceof vr);t.length!==e.elements.length&&(e.elements.length===1&&e.elements[0]instanceof Sv&&(this._tree.setFocus([e.elements[0].children[0]]),this._tree.reveal(e.elements[0],0)),this._tree.setSelection(t))}))}setAllVisibleChecked(e){this._elementCheckedEventBufferer.bufferEvents(()=>{this._itemElements.forEach(t=>{!t.hidden&&!t.checkboxDisabled&&(t.checked=e)})})}setElements(e){this._elementDisposable.clear(),this._inputElements=e,this._hasCheckboxes=this.parent.classList.contains("show-checkboxes");let t;this._itemElements=new Array,this._elementTree=e.reduce((i,s,r)=>{let o;if(s.type==="separator"){if(!s.buttons)return i;t=new Sv(r,a=>this._onSeparatorButtonTriggered.fire(a),s),o=t}else{const a=r>0?e[r-1]:void 0;let l;a&&a.type==="separator"&&!a.buttons&&(t=void 0,l=a);const c=new vr(r,this._hasCheckboxes,u=>this._onButtonTriggered.fire(u),this._elementChecked,s,l);if(this._itemElements.push(c),t)return t.children.push(c),i;o=c}return i.push(o),i},new Array),this._setElementsToTree(this._elementTree),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const i=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),s=i==null?void 0:i.parentNode;if(i&&s){const r=i.nextSibling;i.remove(),s.insertBefore(i,r)}},0)}setFocusedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i).filter(i=>!i.hidden);if(this._tree.setFocus(t),e.length>0){const i=this._tree.getFocus()[0];i&&this._tree.reveal(i)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i);this._tree.setSelection(t)}getCheckedElements(){return this._itemElements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){this._elementCheckedEventBufferer.bufferEvents(()=>{const t=new Set;for(const i of e)t.add(i);for(const i of this._itemElements)i.checked=t.has(i.item)})}focus(e){var t;if(this._itemElements.length)switch(e===dn.Second&&this._itemElements.length<2&&(e=dn.First),e){case dn.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,i=>i.element instanceof vr);break;case dn.Second:{this._tree.scrollTop=0;let i=!1;this._tree.focusFirst(void 0,s=>s.element instanceof vr?i?!0:(i=!i,!1):!1);break}case dn.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,i=>i.element instanceof vr);break;case dn.Next:{const i=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,r=>r.element instanceof vr?(this._tree.reveal(r.element),!0):!1);const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}case dn.Previous:{const i=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,r=>{if(!(r.element instanceof vr))return!1;const o=this._tree.getParentElement(r.element);return o===null||o.children[0]!==r.element?this._tree.reveal(r.element):this._tree.reveal(o),!0});const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[0]&&this._onLeave.fire();break}case dn.NextPage:this._tree.focusNextPage(void 0,i=>i.element instanceof vr?(this._tree.reveal(i.element),!0):!1);break;case dn.PreviousPage:this._tree.focusPreviousPage(void 0,i=>{if(!(i.element instanceof vr))return!1;const s=this._tree.getParentElement(i.element);return s===null||s.children[0]!==i.element?this._tree.reveal(i.element):this._tree.reveal(s),!0});break;case dn.NextSeparator:{let i=!1;const s=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,o=>{if(i)return!0;if(o.element instanceof Sv)i=!0,this._separatorRenderer.isSeparatorVisible(o.element)?this._tree.reveal(o.element.children[0]):this._tree.reveal(o.element,0);else if(o.element instanceof vr){if(o.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(o.element)?this._tree.reveal(o.element):this._tree.reveal(o.element,0),!0;if(o.element===this._elementTree[0])return this._tree.reveal(o.element,0),!0}return!1});const r=this._tree.getFocus()[0];s===r&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,o=>o.element instanceof vr));break}case dn.PreviousSeparator:{let i,s=!!((t=this._tree.getFocus()[0])!=null&&t.separator);this._tree.focusPrevious(void 0,!0,void 0,r=>{if(r.element instanceof Sv)s?i||(this._separatorRenderer.isSeparatorVisible(r.element)?this._tree.reveal(r.element):this._tree.reveal(r.element,0),i=r.element.children[0]):s=!0;else if(r.element instanceof vr&&!i){if(r.element.separator)this._itemRenderer.isItemWithSeparatorVisible(r.element)?this._tree.reveal(r.element):this._tree.reveal(r.element,0),i=r.element;else if(r.element===this._elementTree[0])return this._tree.reveal(r.element,0),!0}return!1}),i&&this._tree.setFocus([i]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?`${Math.floor(e/44)*44+6}px`:"",this._tree.layout()}filter(e){if(!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(o=>{o.labelHighlights=void 0,o.descriptionHighlights=void 0,o.detailHighlights=void 0,o.hidden=!1;const a=o.index&&this._inputElements[o.index-1];o.item&&(o.separator=a&&a.type==="separator"&&!a.buttons?a:void 0)});else{let o;this._elementTree.forEach(a=>{let l;this.matchOnLabelMode==="fuzzy"?l=this.matchOnLabel?xW(e,jE(a.saneLabel))??void 0:void 0:l=this.matchOnLabel?V4t(t,jE(a.saneLabel))??void 0:void 0;const c=this.matchOnDescription?xW(e,jE(a.saneDescription||""))??void 0:void 0,u=this.matchOnDetail?xW(e,jE(a.saneDetail||""))??void 0:void 0;if(l||c||u?(a.labelHighlights=l,a.descriptionHighlights=c,a.detailHighlights=u,a.hidden=!1):(a.labelHighlights=void 0,a.descriptionHighlights=void 0,a.detailHighlights=void 0,a.hidden=a.item?!a.item.alwaysShow:!0),a.item?a.separator=void 0:a.separator&&(a.hidden=!0),!this.sortByLabel){const h=a.index&&this._inputElements[a.index-1];o=h&&h.type==="separator"?h:o,o&&!a.hidden&&(a.separator=o,o=void 0)}})}const i=this._elementTree.filter(o=>!o.hidden);if(this.sortByLabel&&e){const o=e.toLowerCase();i.sort((a,l)=>H4t(a,l,o))}let s;const r=i.reduce((o,a,l)=>(a instanceof vr?s?s.children.push(a):o.push(a):a instanceof Sv&&(a.children=[],s=a,o.push(a)),o),new Array);return this._setElementsToTree(r),this._tree.layout(),!0}toggleCheckbox(){this._elementCheckedEventBufferer.bufferEvents(()=>{const e=this._tree.getFocus().filter(i=>i instanceof vr),t=this._allVisibleChecked(e);for(const i of e)i.checkboxDisabled||(i.checked=!t)})}style(e){this._tree.style(e)}toggleHover(){const e=this._tree.getFocus()[0];if(!(e!=null&&e.saneTooltip)||!(e instanceof vr))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(e);const t=new be;t.add(this._tree.onDidChangeFocus(i=>{i.elements[0]instanceof vr&&this.showHover(i.elements[0])})),this._lastHover&&t.add(this._lastHover),this._elementDisposable.add(t)}_setElementsToTree(e){const t=new Array;for(const i of e)i instanceof Sv?t.push({element:i,collapsible:!1,collapsed:!1,children:i.children.map(s=>({element:s,collapsible:!1,collapsed:!1}))}):t.push({element:i,collapsible:!1,collapsed:!1});this._tree.setChildren(null,t)}_allVisibleChecked(e,t=!0){for(let i=0,s=e.length;i<s;i++){const r=e[i];if(!r.hidden)if(r.checked)t=!0;else return!1}return t}_updateCheckedObservables(){this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements,!1),void 0);const e=this._itemElements.filter(t=>t.checked).length;this._checkedCountObservable.set(e,void 0),this._checkedElementsObservable.set(this.getCheckedElements(),void 0)}showHover(e){var t,i,s;this._lastHover&&!this._lastHover.isDisposed&&((i=(t=this.hoverDelegate).onDidHideHover)==null||i.call(t),(s=this._lastHover)==null||s.dispose()),!(!e.element||!e.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:e.saneTooltip,target:e.element,linkHandler:r=>{this.linkOpenerDelegate(r)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};a9([gs],qD.prototype,"onDidChangeFocus",null);a9([gs],qD.prototype,"onDidChangeSelection",null);qD=a9([NX(4,ct),NX(5,xl)],qD);function V4t(n,e){const{text:t,iconOffsets:i}=e;if(!i||i.length===0)return Gge(n,t);const s=EN(t," "),r=t.length-s.length,o=Gge(n,s);if(o)for(const a of o){const l=i[a.start+r]+r;a.start+=l,a.end+=l}return o}function Gge(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t!==-1?[{start:t,end:t+n.length}]:null}function H4t(n,e,t){const i=n.labelHighlights||[],s=e.labelHighlights||[];return i.length&&!s.length?-1:!i.length&&s.length?1:i.length===0&&s.length===0?0:O4t(n.saneSortLabel,e.saneSortLabel,t)}const mAe={weight:200,when:ye.and(ye.equals(dAe,"quickPick"),I4t),metadata:{description:v("quickPick","Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")}};function tl(n,e={}){aa.registerCommandAndKeybindingRule({...mAe,...n,secondary:$4t(n.primary,n.secondary??[],e)})}const Q2=ni?256:2048;function $4t(n,e,t={}){return t.withAltMod&&e.push(512+n),t.withCtrlMod&&(e.push(Q2+n),t.withAltMod&&e.push(512+Q2+n)),t.withCmdMod&&ni&&(e.push(2048+n),t.withCtrlMod&&e.push(2304+n),t.withAltMod&&(e.push(2560+n),t.withCtrlMod&&e.push(2816+n))),e}function Hl(n,e){return t=>{const i=t.get(cu).currentQuickInput;if(i)return e&&i.quickNavigate?i.focus(e):i.focus(n)}}tl({id:"quickInput.pageNext",primary:12,handler:Hl(dn.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});tl({id:"quickInput.pagePrevious",primary:11,handler:Hl(dn.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});tl({id:"quickInput.first",primary:Q2+14,handler:Hl(dn.First)},{withAltMod:!0,withCmdMod:!0});tl({id:"quickInput.last",primary:Q2+13,handler:Hl(dn.Last)},{withAltMod:!0,withCmdMod:!0});tl({id:"quickInput.next",primary:18,handler:Hl(dn.Next)},{withCtrlMod:!0});tl({id:"quickInput.previous",primary:16,handler:Hl(dn.Previous)},{withCtrlMod:!0});const Xge=v("quickInput.nextSeparatorWithQuickAccessFallback","If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),Yge=v("quickInput.previousSeparatorWithQuickAccessFallback","If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");ni?(tl({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:Hl(dn.NextSeparator,dn.Next),metadata:{description:Xge}}),tl({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:Hl(dn.NextSeparator)},{withCtrlMod:!0}),tl({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:Hl(dn.PreviousSeparator,dn.Previous),metadata:{description:Yge}}),tl({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:Hl(dn.PreviousSeparator)},{withCtrlMod:!0})):(tl({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:Hl(dn.NextSeparator,dn.Next),metadata:{description:Xge}}),tl({id:"quickInput.nextSeparator",primary:2578,handler:Hl(dn.NextSeparator)}),tl({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:Hl(dn.PreviousSeparator,dn.Previous),metadata:{description:Yge}}),tl({id:"quickInput.previousSeparator",primary:2576,handler:Hl(dn.PreviousSeparator)}));tl({id:"quickInput.acceptInBackground",when:ye.and(mAe.when,ye.or(cDe.negate(),N4t)),primary:17,weight:250,handler:n=>{const e=n.get(cu).currentQuickInput;e==null||e.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});var z4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},DV=function(n,e){return function(t,i){e(t,i,n)}},PX;const Ka=Pe;var ky;let RX=(ky=class extends ue{get currentQuickInput(){return this.controller??void 0}get container(){return this._container}constructor(e,t,i,s){super(),this.options=e,this.layoutService=t,this.instantiationService=i,this.contextKeyService=s,this.enabled=!0,this.onDidAcceptEmitter=this._register(new oe),this.onDidCustomEmitter=this._register(new oe),this.onDidTriggerButtonEmitter=this._register(new oe),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new oe),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new oe),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=k4t.bindTo(this.contextKeyService),this.quickInputTypeContext=T4t.bindTo(this.contextKeyService),this.endOfQuickInputBoxContext=D4t.bindTo(this.contextKeyService),this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(Oe.runAndSubscribe(MB,({window:r,disposables:o})=>this.registerKeyModsListeners(r,o),{window:Gi,disposables:this._store})),this._register(nut(r=>{this.ui&&ut(this.ui.container)===r&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(e,t){const i=s=>{this.keyMods.ctrlCmd=s.ctrlKey||s.metaKey,this.keyMods.alt=s.altKey};for(const s of[Ae.KEY_DOWN,Ae.KEY_UP,Ae.MOUSE_DOWN])t.add(ge(e,s,i,!0))}getUI(e){if(this.ui)return e&&ut(this._container)!==ut(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=ke(this._container,Ka(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";const i=fc(t),s=ke(t,Ka(".quick-input-titlebar")),r=this._register(new uc(s,{hoverDelegate:this.options.hoverDelegate}));r.domNode.classList.add("quick-input-left-action-bar");const o=ke(s,Ka(".quick-input-title")),a=this._register(new uc(s,{hoverDelegate:this.options.hoverDelegate}));a.domNode.classList.add("quick-input-right-action-bar");const l=ke(t,Ka(".quick-input-header")),c=ke(l,Ka("input.quick-input-check-all"));c.type="checkbox",c.setAttribute("aria-label",v("quickInput.checkAll","Toggle all checkboxes")),this._register(os(c,Ae.CHANGE,M=>{const V=c.checked;T.setAllVisibleChecked(V)})),this._register(ge(c,Ae.CLICK,M=>{(M.x||M.y)&&f.setFocus()}));const u=ke(l,Ka(".quick-input-description")),h=ke(l,Ka(".quick-input-and-message")),d=ke(h,Ka(".quick-input-filter")),f=this._register(new R4t(d,this.styles.inputBox,this.styles.toggle));f.setAttribute("aria-describedby",`${this.idPrefix}message`);const p=ke(d,Ka(".quick-input-visible-count"));p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true");const g=new $q(p,{countFormat:v({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")},this.styles.countBadge),m=ke(d,Ka(".quick-input-count"));m.setAttribute("aria-live","polite");const _=new $q(m,{countFormat:v({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")},this.styles.countBadge),b=this._register(new uc(l,{hoverDelegate:this.options.hoverDelegate}));b.domNode.classList.add("quick-input-inline-action-bar");const w=ke(l,Ka(".quick-input-action")),C=this._register(new x4(w,this.styles.button));C.label=v("ok","OK"),this._register(C.onDidClick(M=>{this.onDidAcceptEmitter.fire()}));const S=ke(l,Ka(".quick-input-action")),x=this._register(new x4(S,{...this.styles.button,supportIcons:!0}));x.label=v("custom","Custom"),this._register(x.onDidClick(M=>{this.onDidCustomEmitter.fire()}));const k=ke(h,Ka(`#${this.idPrefix}message.quick-input-message`)),L=this._register(new DX(t,this.styles.progressBar));L.getContainer().classList.add("quick-input-progress");const E=ke(t,Ka(".quick-input-html-widget"));E.tabIndex=-1;const A=ke(t,Ka(".quick-input-description")),I=this.idPrefix+"list",T=this._register(this.instantiationService.createInstance(qD,t,this.options.hoverDelegate,this.options.linkOpenerDelegate,I));f.setAttribute("aria-controls",I),this._register(T.onDidChangeFocus(()=>{f.setAttribute("aria-activedescendant",T.getActiveDescendant()??"")})),this._register(T.onChangedAllVisibleChecked(M=>{c.checked=M})),this._register(T.onChangedVisibleCount(M=>{g.setCount(M)})),this._register(T.onChangedCheckedCount(M=>{_.setCount(M)})),this._register(T.onLeave(()=>{setTimeout(()=>{this.controller&&(f.setFocus(),this.controller instanceof X2&&this.controller.canSelectMany&&T.clearFocus())},0)}));const N=Zh(t);return this._register(N),this._register(ge(t,Ae.FOCUS,M=>{const V=this.getUI();if(er(M.relatedTarget,V.inputContainer)){const W=V.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==W&&this.endOfQuickInputBoxContext.set(W)}er(M.relatedTarget,V.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=ir(M.relatedTarget)?M.relatedTarget:void 0)},!0)),this._register(N.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(ux.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(f.onKeyDown(M=>{const V=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==V&&this.endOfQuickInputBoxContext.set(V)})),this._register(ge(t,Ae.FOCUS,M=>{f.setFocus()})),this._register(os(t,Ae.KEY_DOWN,M=>{if(!er(M.target,E))switch(M.keyCode){case 3:ci.stop(M,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:ci.stop(M,!0),this.hide(ux.Gesture);break;case 2:if(!M.altKey&&!M.ctrlKey&&!M.metaKey){const V=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(t.classList.contains("show-checkboxes")?V.push("input"):V.push("input[type=text]"),this.getUI().list.displayed&&V.push(".monaco-list"),this.getUI().message&&V.push(".quick-input-message a"),this.getUI().widget){if(er(M.target,this.getUI().widget))break;V.push(".quick-input-html-widget")}const W=t.querySelectorAll(V.join(", "));M.shiftKey&&M.target===W[0]?(ci.stop(M,!0),T.clearFocus()):!M.shiftKey&&er(M.target,W[W.length-1])&&(ci.stop(M,!0),W[0].focus())}break;case 10:M.ctrlKey&&(ci.stop(M,!0),this.getUI().list.toggleHover());break}})),this.ui={container:t,styleSheet:i,leftActionBar:r,titleBar:s,title:o,description1:A,description2:u,widget:E,rightActionBar:a,inlineActionBar:b,checkAll:c,inputContainer:h,filterContainer:d,inputBox:f,visibleCountContainer:p,visibleCount:g,countContainer:m,count:_,okContainer:w,ok:C,message:k,customButtonContainer:S,customButton:x,list:T,progressBar:L,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:M=>this.show(M),hide:()=>this.hide(),setVisibilities:M=>this.setVisibilities(M),setEnabled:M=>this.setEnabled(M),setContextKey:M=>this.options.setContextKey(M),linkOpenerDelegate:M=>this.options.linkOpenerDelegate(M)},this.updateStyles(),this.ui}reparentUI(e){this.ui&&(this._container=e,ke(this._container,this.ui.container))}pick(e,t={},i=Vt.None){return new Promise((s,r)=>{let o=u=>{var h;o=s,(h=t.onKeyMods)==null||h.call(t,a.keyMods),s(u)};if(i.isCancellationRequested){o(void 0);return}const a=this.createQuickPick();let l;const c=[a,a.onDidAccept(()=>{if(a.canSelectMany)o(a.selectedItems.slice()),a.hide();else{const u=a.activeItems[0];u&&(o(u),a.hide())}}),a.onDidChangeActive(u=>{const h=u[0];h&&t.onDidFocus&&t.onDidFocus(h)}),a.onDidChangeSelection(u=>{if(!a.canSelectMany){const h=u[0];h&&(o(h),a.hide())}}),a.onDidTriggerItemButton(u=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...u,removeItem:()=>{const h=a.items.indexOf(u.item);if(h!==-1){const d=a.items.slice(),f=d.splice(h,1),p=a.activeItems.filter(m=>m!==f[0]),g=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=d,p&&(a.activeItems=p),a.keepScrollPosition=g}}})),a.onDidTriggerSeparatorButton(u=>{var h;return(h=t.onDidTriggerSeparatorButton)==null?void 0:h.call(t,u)}),a.onDidChangeValue(u=>{l&&!u&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{Yi(c),o(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([u,h])=>{l=h,a.busy=!1,a.items=u,a.canSelectMany&&(a.selectedItems=u.filter(d=>d.type!=="separator"&&d.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,u=>{r(u),a.hide()})})}createQuickPick(){const e=this.getUI(!0);return new X2(e)}createInputBox(){const e=this.getUI(!0);return new A4t(e)}show(e){const t=this.getUI(!0);this.onShowEmitter.fire();const i=this.controller;this.controller=e,i==null||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",Ir(t.widget),t.rightActionBar.clear(),t.inlineActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(fs.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),Ir(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,t.inputBox.toggles=void 0;const s=this.options.backKeybindingLabel();IX.tooltip=s?v("quickInput.backWithKeybinding","Back ({0})",s):v("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus(),this.quickInputTypeContext.set(e.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=e.description&&!(e.inputBox||e.checkAll)?"":"none",t.checkAll.style.display=e.checkAll?"":"none",t.inputContainer.style.display=e.inputBox?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.displayed=!!e.list,t.container.classList.toggle("show-checkboxes",!!e.checkBox),t.container.classList.toggle("hidden-input",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var r;const t=this.controller;if(!t)return;t.willHide(e);const i=(r=this.ui)==null?void 0:r.container,s=i&&!fLe(i);if(this.controller=null,this.onHideEmitter.fire(),i&&(i.style.display="none"),!s){let o=this.previousFocusElement;for(;o&&!o.offsetParent;)o=o.parentElement??void 0;o!=null&&o.offsetParent?(o.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}t.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,PX.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:s,widgetShadow:r}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e??"",this.ui.container.style.backgroundColor=t??"",this.ui.container.style.color=i??"",this.ui.container.style.border=s?`1px solid ${s}`:"",this.ui.container.style.boxShadow=r?`0 0 8px 2px ${r}`:"",this.ui.list.style(this.styles.list);const o=[];this.styles.pickerGroup.pickerGroupBorder&&o.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&o.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&o.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(o.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&o.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&o.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&o.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&o.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&o.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),o.push("}"));const a=o.join(` +`);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}},PX=ky,ky.MAX_WIDTH=600,ky);RX=PX=z4t([DV(1,$_),DV(2,ct),DV(3,bt)],RX);var U4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},DE=function(n,e){return function(t,i){e(t,i,n)}};let MX=class extends Imt{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(kX))),this._quickAccess}constructor(e,t,i,s,r){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=s,this.configurationService=r,this._onShow=this._register(new oe),this._onHide=this._register(new oe),this.contexts=new Map}createController(e=this.layoutService,t){const i={idPrefix:"quickInput_",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:r=>this.setContextKey(r),linkOpenerDelegate:r=>{this.instantiationService.invokeFunction(o=>{o.get(kl).open(r,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(TX))},s=this._register(this.instantiationService.createInstance(RX,{...i,...t}));return s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer(r=>{ut(e.activeContainer)===ut(s.container)&&s.layout(r,e.activeContainerOffset.quickPickTop)})),this._register(e.onDidChangeActiveContainer(()=>{s.isVisible()||s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)})),this._register(s.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(s.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),s}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new $e(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t==null||t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=Vt.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:Ue(ehe),quickInputForeground:Ue(Egt),quickInputTitleBackground:Ue(kgt),widgetBorder:Ue(dEe),widgetShadow:Ue(pL)},inputBox:p4,toggle:f4,countBadge:bIe,button:QCt,progressBar:JCt,keybindingLabel:ZCt,list:O0({listBackground:ehe,listFocusBackground:AT,listFocusForeground:NT,listInactiveFocusForeground:NT,listInactiveSelectionIconForeground:ute,listInactiveFocusBackground:AT,listFocusOutline:Cn,listInactiveFocusOutline:Cn}),pickerGroup:{pickerGroupBorder:Ue(Igt),pickerGroupForeground:Ue(CEe)}}}};MX=U4t([DE(0,ct),DE(1,bt),DE(2,Xs),DE(3,$_),DE(4,Xt)],MX);var _Ae=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Vv=function(n,e){return function(t,i){e(t,i,n)}};let OX=class extends MX{constructor(e,t,i,s,r,o){super(t,i,s,new lX(e.getContainerDomNode(),r),o),this.host=void 0;const a=KD.get(e);if(a){const l=a.widget;this.host={_serviceBrand:void 0,get mainContainer(){return l.getDomNode()},getContainer(){return l.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[l.getDomNode()]},get activeContainer(){return l.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return Oe.map(e.onDidLayoutChange,c=>({container:l.getDomNode(),dimension:c}))},get onDidChangeActiveContainer(){return Oe.None},get onDidAddContainer(){return Oe.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};OX=_Ae([Vv(1,ct),Vv(2,bt),Vv(3,Xs),Vv(4,wi),Vv(5,Xt)],OX);let FX=class{get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(OX,e);this.mapEditorToService.set(e,t),i_(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t={},i=Vt.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};FX=_Ae([Vv(0,ct),Vv(1,wi)],FX);const R5=class R5{static get(e){return e.getContribution(R5.ID)}constructor(e){this.editor=e,this.widget=new BX(this.editor)}dispose(){this.widget.dispose()}};R5.ID="editor.controller.quickInput";let KD=R5;const M5=class M5{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return M5.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}};M5.ID="editor.contrib.quickInputWidget";let BX=M5;_i(KD.ID,KD,4);var j4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},NV=function(n,e){return function(t,i){e(t,i,n)}};let WX=class extends ue{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new oe,this._onDidChangeReducedMotion=new oe,this._onDidChangeLinkUnderline=new oe,this._accessibilityModeEnabledContext=AN.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(o=>{o.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),o.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const r=Gi.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=r.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(r),this.initLinkUnderlineListeners()}initReducedMotionListeners(e){this._register(ge(e,"change",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",i),this._layoutService.mainContainer.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(t=>{if(t.affectsConfiguration("accessibility.underlineLinks")){const i=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=i,this._onDidChangeLinkUnderline.fire()}}));const e=()=>{const t=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",t)};e(),this._register(this.onDidChangeLinkUnderlines(()=>e()))}onDidChangeLinkUnderlines(e){return this._onDidChangeLinkUnderline.event(e)}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return e==="on"||e==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return e==="on"||e==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};WX=j4t([NV(0,bt),NV(1,$_),NV(2,Xt)],WX);var q4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Zge=function(n,e){return function(t,i){e(t,i,n)}},VX,Iy;let HX=(Iy=class extends ue{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(Fg||yxe)&&this.installWebKitWriteTextWorkaround(),this._register(Oe.runAndSubscribe(MB,({window:i,disposables:s})=>{s.add(ge(i.document,"copy",()=>this.clearResources()))},{window:Gi,disposables:this._store}))}installWebKitWriteTextWorkaround(){const e=()=>{const t=new rL;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,oM().navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(async i=>{(!(i instanceof Error)||i.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(i)})};this._register(Oe.runAndSubscribe(this.layoutService.onDidAddContainer,({container:t,disposables:i})=>{i.add(ge(t,"click",e)),i.add(ge(t,"keydown",e))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.writeResources([]),t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return await oM().navigator.clipboard.writeText(e)}catch(i){console.error(i)}this.fallbackWriteText(e)}fallbackWriteText(e){const t=oL(),i=t.activeElement,s=t.body.appendChild(Pe("textarea",{"aria-hidden":!0}));s.style.height="1px",s.style.width="1px",s.style.position="absolute",s.value=e,s.focus(),s.select(),t.execCommand("copy"),ir(i)&&i.focus(),s.remove()}async readText(e){if(e)return this.mapTextToType.get(e)||"";try{return await oM().navigator.clipboard.readText()}catch(t){console.error(t)}return""}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async writeResources(e){e.length===0?this.clearResources():(this.resources=e,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const e=await this.readText();return PB(e.substring(0,VX.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}},VX=Iy,Iy.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,Iy);HX=VX=q4t([Zge(0,$_),Zge(1,co)],HX);var K4t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},G4t=function(n,e){return function(t,i){e(t,i,n)}};const uI="data-keybinding-context";class jne{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...this._value}}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t>"u"&&this._parent?this._parent.getValue(e):t}}const O5=class O5 extends jne{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}};O5.INSTANCE=new O5;let Tx=O5;const EI=class EI extends jne{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=eS.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(s=>{if(s.source===7){const r=Array.from(this._values,([o])=>o);this._values.clear(),i.fire(new Jge(r))}else{const r=[];for(const o of s.affectedKeys){const a=`config.${o}`,l=this._values.findSuperstr(a);l!==void 0&&(r.push(...hi.map(l,([c])=>c)),this._values.deleteSuperstr(a)),this._values.has(a)&&(r.push(a),this._values.delete(a))}i.fire(new Jge(r))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(EI._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(EI._keyPrefix.length),i=this._configurationService.getValue(t);let s;switch(typeof i){case"number":case"boolean":case"string":s=i;break;default:Array.isArray(i)?s=JSON.stringify(i):s=i}return this._values.set(e,s),s}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}};EI._keyPrefix="config.";let $X=EI;class X4t{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class Qge{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class Jge{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every(t=>e.has(t))}}class Y4t{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every(t=>t.allKeysContainedIn(e))}}function Z4t(n,e){return n.allKeysContainedIn(new Set(Object.keys(e)))}class vAe extends ue{constructor(e){super(),this._onDidChangeContext=this._register(new $y({merge:t=>new Y4t(t)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new X4t(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Q4t(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new Qge(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new Qge(e))}getContext(e){return this._isDisposed?Tx.INSTANCE:this.getContextValuesContainer(J4t(e))}dispose(){super.dispose(),this._isDisposed=!0}}let zX=class extends vAe{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new $X(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?Tx.INSTANCE:this._contexts.get(e)||Tx.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new jne(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};zX=K4t([G4t(0,Xt)],zX);class Q4t extends vAe{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new rr),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(uI)){let i="";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${i?": "+i:""}`)}this._domNode.setAttribute(uI,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const i=this._parent.getContextValuesContainer(this._myContextId).value;Z4t(e,i)||this._onDidChangeContext.fire(e)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(uI),super.dispose())}getContextValuesContainer(e){return this._isDisposed?Tx.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}function J4t(n){for(;n;){if(n.hasAttribute(uI)){const e=n.getAttribute(uI);return e?parseInt(e,10):NaN}n=n.parentElement}return 0}function e2t(n,e,t){n.get(bt).createKey(String(e),t2t(t))}function t2t(n){return eEe(n,e=>{if(typeof e=="object"&&e.$mid===1)return mt.revive(e).toString();if(e instanceof mt)return e.toString()})}di.registerCommand("_setContext",e2t);di.registerCommand({id:"getContextKeyInfo",handler(){return[...$e.all()].sort((n,e)=>n.key.localeCompare(e.key))},metadata:{description:v("getContextKeyInfo","A command that returns information about context keys"),args:[]}});di.registerCommand("_generateContextKeyInfo",function(){const n=[],e=new Set;for(const t of $e.all())e.has(t.key)||(e.add(t.key),n.push(t));n.sort((t,i)=>t.key.localeCompare(i.key)),console.log(JSON.stringify(n,void 0,2))});let i2t=class{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}};class eme{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),s=this.lookupOrInsertNode(t);i.outgoing.set(s.key,s),s.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new i2t(t,e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t} + (-> incoming)[${[...i.incoming.keys()].join(", ")}] + (outgoing ->)[${[...i.outgoing.keys()].join(",")}] +`);return e.join(` +`)}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),s=this._findCycle(t,i);if(s)return s}}_findCycle(e,t){for(const[i,s]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const r=this._findCycle(s,t);if(r)return r;t.delete(i)}}}const n2t=!1;class tme extends Error{constructor(e){super("cyclic dependency between services"),this.message=e.findCycleSlow()??`UNABLE to detect cycle, dumping graph: +${e.toString()}`}}class J2{constructor(e=new VN,t=!1,i,s=n2t){this._services=e,this._strict=t,this._parent=i,this._enableTracing=s,this._isDisposed=!1,this._servicesToMaybeDispose=new Set,this._children=new Set,this._activeInstantiations=new Set,this._services.set(ct,this),this._globalGraph=s?(i==null?void 0:i._globalGraph)??new eme(r=>r):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,Yi(this._children),this._children.clear();for(const e of this._servicesToMaybeDispose)AB(e)&&e.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(e,t){this._throwIfDisposed();const i=this,s=new class extends J2{dispose(){i._children.delete(s),super.dispose()}}(e,this._strict,this,this._enableTracing);return this._children.add(s),t==null||t.add(s),s}invokeFunction(e,...t){this._throwIfDisposed();const i=hI.traceInvocation(this._enableTracing,e);let s=!1;try{return e({get:o=>{if(s)throw pee("service accessor is only valid during the invocation of its target method");const a=this._getOrCreateServiceInstance(o,i);if(!a)throw new Error(`[invokeFunction] unknown service '${o}'`);return a}},...t)}finally{s=!0,i.stop()}}createInstance(e,...t){this._throwIfDisposed();let i,s;return e instanceof Zd?(i=hI.traceCreation(this._enableTracing,e.ctor),s=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=hI.traceCreation(this._enableTracing,e),s=this._createInstance(e,t,i)),i.stop(),s}_createInstance(e,t=[],i){const s=Nh.getServiceDependencies(e).sort((a,l)=>a.index-l.index),r=[];for(const a of s){const l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),r.push(l)}const o=s.length>0?s[0].index:t.length;if(t.length!==o){console.trace(`[createInstance] First service dependency of ${e.name} at position ${o+1} conflicts with ${t.length} static arguments`);const a=o-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,o)}return Reflect.construct(e,t.concat(r))}_setCreatedServiceInstance(e,t){if(this._services.get(e)instanceof Zd)this._services.set(e,t);else if(this._parent)this._parent._setCreatedServiceInstance(e,t);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof Zd?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){var l;const s=new eme(c=>c.id.toString());let r=0;const o=[{id:e,desc:t,_trace:i}],a=new Set;for(;o.length;){const c=o.pop();if(!a.has(String(c.id))){if(a.add(String(c.id)),s.lookupOrInsertNode(c),r++>1e3)throw new tme(s);for(const u of Nh.getServiceDependencies(c.desc.ctor)){const h=this._getServiceInstanceOrDescriptor(u.id);if(h||this._throwIfStrict(`[createInstance] ${e} depends on ${u.id} which is NOT registered.`,!0),(l=this._globalGraph)==null||l.insertEdge(String(c.id),String(u.id)),h instanceof Zd){const d={id:u.id,desc:h,_trace:c._trace.branch(u.id,!0)};s.insertEdge(c,d),o.push(d)}}}}for(;;){const c=s.roots();if(c.length===0){if(!s.isEmpty())throw new tme(s);break}for(const{data:u}of c){if(this._getServiceInstanceOrDescriptor(u.id)instanceof Zd){const d=this._createServiceInstanceWithOwner(u.id,u.desc.ctor,u.desc.staticArguments,u.desc.supportsDelayedInstantiation,u._trace);this._setCreatedServiceInstance(u.id,d)}s.removeNode(u)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],s,r){if(this._services.get(e)instanceof Zd)return this._createServiceInstance(e,t,i,s,r,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,s,r);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t,i=[],s,r,o){if(s){const a=new J2(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(e);const l=new Map,c=new $lt(()=>{const u=a._createInstance(t,i,r);for(const[h,d]of l){const f=u[h];if(typeof f=="function")for(const p of d)p.disposable=f.apply(u,p.listener)}return l.clear(),o.add(u),u});return new Proxy(Object.create(null),{get(u,h){if(!c.isInitialized&&typeof h=="string"&&(h.startsWith("onDid")||h.startsWith("onWill"))){let p=l.get(h);return p||(p=new Go,l.set(h,p)),(m,_,b)=>{if(c.isInitialized)return c.value[h](m,_,b);{const w={listener:[m,_,b],disposable:void 0},C=p.push(w);return lt(()=>{var x;C(),(x=w.disposable)==null||x.dispose()})}}}if(h in u)return u[h];const d=c.value;let f=d[h];return typeof f!="function"||(f=f.bind(d),u[h]=f),f},set(u,h,d){return c.value[h]=d,!0},getPrototypeOf(u){return t.prototype}})}else{const a=this._createInstance(t,i,r);return o.add(a),a}}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}const Ml=class Ml{static traceInvocation(e,t){return e?new Ml(2,t.name||new Error().stack.split(` +`).slice(3,4).join(` +`)):Ml._None}static traceCreation(e,t){return e?new Ml(1,t.name):Ml._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Ml(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Ml._totals+=e;let t=!1;function i(r,o){const a=[],l=new Array(r+1).join(" ");for(const[c,u,h]of o._dep)if(u&&h){t=!0,a.push(`${l}CREATES -> ${c}`);const d=i(r+1,h);d&&a.push(d)}else a.push(`${l}uses -> ${c}`);return a.join(` +`)}const s=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Ml._totals.toFixed(2)}ms)`];(e>2||t)&&Ml.all.add(s.join(` +`))}};Ml.all=new Set,Ml._None=new class extends Ml{constructor(){super(0,null)}stop(){}branch(){return this}},Ml._totals=0;let hI=Ml;const s2t=new Set([kt.inMemory,kt.vscodeSourceControl,kt.walkThrough,kt.walkThroughSnippet,kt.vscodeChatCodeBlock,kt.vscodeCopilotBackingChatCodeBlock]);class r2t{constructor(){this._byResource=new js,this._byOwner=new Map}set(e,t,i){let s=this._byResource.get(e);s||(s=new Map,this._byResource.set(e,s)),s.set(t,i);let r=this._byOwner.get(t);r||(r=new js,this._byOwner.set(t,r)),r.set(e,i)}get(e,t){const i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,s=!1;const r=this._byResource.get(e);r&&(i=r.delete(t));const o=this._byOwner.get(t);if(o&&(s=o.delete(e)),i!==s)throw new Error("illegal state");return i&&s}values(e){var t,i;return typeof e=="string"?((t=this._byOwner.get(e))==null?void 0:t.values())??hi.empty():mt.isUri(e)?((i=this._byResource.get(e))==null?void 0:i.values())??hi.empty():hi.map(hi.concat(...this._byOwner.values()),s=>s[1])}}class o2t{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new js,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const s=this._resourceStats(t);this._add(s),this._data.set(t,s)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(s2t.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===Zn.Error?t.errors+=1:i===Zn.Warning?t.warnings+=1:i===Zn.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class Om{constructor(){this._onMarkerChanged=new Nxe({delay:0,merge:Om._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new r2t,this._stats=new o2t(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if(RLe(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const s=[];for(const r of i){const o=Om._toMarker(e,t,r);o&&s.push(o)}this._data.set(t,e,s),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:s,severity:r,message:o,source:a,startLineNumber:l,startColumn:c,endLineNumber:u,endColumn:h,relatedInformation:d,tags:f}=i;if(o)return l=l>0?l:1,c=c>0?c:1,u=u>=l?u:l,h=h>0?h:c,{resource:t,owner:e,code:s,severity:r,message:o,source:a,startLineNumber:l,startColumn:c,endLineNumber:u,endColumn:h,relatedInformation:d,tags:f}}changeAll(e,t){const i=[],s=this._data.values(e);if(s)for(const r of s){const o=hi.first(r);o&&(i.push(o.resource),this._data.delete(o.resource,e))}if(so(t)){const r=new js;for(const{resource:o,marker:a}of t){const l=Om._toMarker(e,o,a);if(!l)continue;const c=r.get(o);c?c.push(l):(r.set(o,[l]),i.push(o))}for(const[o,a]of r)this._data.set(o,e,a)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:s,take:r}=e;if((!r||r<0)&&(r=-1),t&&i){const o=this._data.get(i,t);if(o){const a=[];for(const l of o)if(Om._accept(l,s)){const c=a.push(l);if(r>0&&c===r)break}return a}else return[]}else if(!t&&!i){const o=[];for(const a of this._data.values())for(const l of a)if(Om._accept(l,s)){const c=o.push(l);if(r>0&&c===r)return o}return o}else{const o=this._data.values(i??t),a=[];for(const l of o)for(const c of l)if(Om._accept(c,s)){const u=a.push(c);if(r>0&&u===r)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new js;for(const i of e)for(const s of i)t.set(s,!0);return Array.from(t.keys())}}class a2t extends ue{get configurationModel(){return this._configurationModel}constructor(e){super(),this.logService=e,this._configurationModel=xr.createEmptyModel(this.logService)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=xr.createEmptyModel(this.logService);const e=Vn.as(Qu.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const s of e){const r=i[s],o=t[s];r!==void 0?this._configurationModel.setValue(s,r):o?this._configurationModel.setValue(s,o.default):this._configurationModel.removeValue(s)}}}class l2t extends ue{constructor(e,t=[]){super(),this.logger=new Yut([e,...t]),this._register(e.onDidChangeLogLevel(i=>this.setLevel(i)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}}var am=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},dr=function(n,e){return function(t,i){e(t,i,n)}};class c2t{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new oe}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let UX=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new Dlt(new c2t(t))):Promise.reject(new Error("Model not found"))}};UX=am([dr(0,mn)],UX);const F5=class F5{show(){return F5.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}};F5.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};let jX=F5;class u2t{withProgress(e,t,i){return t({report:()=>{}})}}class h2t{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class d2t{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let i=e;return t&&(i=i+` + +`+t),Gi.confirm(i)}async prompt(e){var s;let t;if(this.doConfirm(e.message,e.detail)){const r=[...e.buttons??[]];e.cancelButton&&typeof e.cancelButton!="string"&&typeof e.cancelButton!="boolean"&&r.push(e.cancelButton),t=await((s=r[0])==null?void 0:s.run({checkboxChecked:!1}))}return{result:t}}async error(e,t){await this.prompt({type:fs.Error,message:e,detail:t})}}const kI=class kI{info(e){return this.notify({severity:fs.Info,message:e})}warn(e){return this.notify({severity:fs.Warning,message:e})}error(e){return this.notify({severity:fs.Error,message:e})}notify(e){switch(e.severity){case fs.Error:console.error(e.message);break;case fs.Warning:console.warn(e.message);break;default:console.log(e.message);break}return kI.NO_OP}prompt(e,t,i,s){return kI.NO_OP}status(e,t){return ue.None}};kI.NO_OP=new cyt;let qX=kI,KX=class{constructor(e){this._onWillExecuteCommand=new oe,this._onDidExecuteCommand=new oe,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=di.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const s=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(s)}catch(s){return Promise.reject(s)}}};KX=am([dr(0,ct)],KX);let Dx=class extends e4t{constructor(e,t,i,s,r,o){super(e,t,i,s,r),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=f=>{const p=new be;p.add(ge(f,Ae.KEY_DOWN,g=>{const m=new Ji(g);this._dispatch(m,m.target)&&(m.preventDefault(),m.stopPropagation())})),p.add(ge(f,Ae.KEY_UP,g=>{const m=new Ji(g);this._singleModifierDispatch(m,m.target)&&m.preventDefault()})),this._domNodeListeners.push(new f2t(f,p))},l=f=>{for(let p=0;p<this._domNodeListeners.length;p++){const g=this._domNodeListeners[p];g.domNode===f&&(this._domNodeListeners.splice(p,1),g.dispose())}},c=f=>{f.getOption(61)||a(f.getContainerDomNode())},u=f=>{f.getOption(61)||l(f.getContainerDomNode())};this._register(o.onCodeEditorAdd(c)),this._register(o.onCodeEditorRemove(u)),o.listCodeEditors().forEach(c);const h=f=>{a(f.getContainerDomNode())},d=f=>{l(f.getContainerDomNode())};this._register(o.onDiffEditorAdd(h)),this._register(o.onDiffEditorRemove(d)),o.listDiffEditors().forEach(h)}addDynamicKeybinding(e,t,i,s){return Pu(di.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:s}]))}addDynamicKeybindings(e){const t=e.map(i=>({keybinding:ez(i.keybinding,cl),command:i.command??null,commandArgs:i.commandArgs,when:i.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),lt(()=>{for(let i=0;i<this._dynamicKeybindings.length;i++)if(this._dynamicKeybindings[i]===t[0]){this._dynamicKeybindings.splice(i,t.length),this.updateResolver();return}})}updateResolver(){this._cachedResolver=null,this._onDidUpdateKeybindings.fire()}_getResolver(){if(!this._cachedResolver){const e=this._toNormalizedKeybindingItems(aa.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new lI(e,t,i=>this._log(i))}return this._cachedResolver}_documentHasFocus(){return Gi.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let s=0;for(const r of e){const o=r.when||void 0,a=r.keybinding;if(!a)i[s++]=new Rge(void 0,r.command,r.commandArgs,o,t,null,!1);else{const l=jD.resolveKeybinding(a,cl);for(const c of l)i[s++]=new Rge(c,r.command,r.commandArgs,o,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new Bg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new jD([t],cl)}};Dx=am([dr(0,bt),dr(1,an),dr(2,Ro),dr(3,ms),dr(4,co),dr(5,wi)],Dx);class f2t extends ue{constructor(e,t){super(),this.domNode=e,this._register(t)}}function ime(n){return n&&typeof n=="object"&&(!n.overrideIdentifier||typeof n.overrideIdentifier=="string")&&(!n.resource||n.resource instanceof mt)}let e3=class{constructor(e){this.logService=e,this._onDidChangeConfiguration=new oe,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const t=new a2t(e);this._configuration=new o9(t.reload(),xr.createEmptyModel(e),xr.createEmptyModel(e),xr.createEmptyModel(e),xr.createEmptyModel(e),xr.createEmptyModel(e),new js,xr.createEmptyModel(e),new js,e),t.dispose()}getValue(e,t){const i=typeof e=="string"?e:void 0,s=ime(e)?e:ime(t)?t:{};return this._configuration.getValue(i,s,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const s of e){const[r,o]=s;this.getValue(r)!==o&&(this._configuration.updateValue(r,o),i.push(r))}if(i.length>0){const s=new YFt({keys:i,overrides:[]},t,this._configuration,void 0,this.logService);s.source=8,this._onDidChangeConfiguration.fire(s)}return Promise.resolve()}updateValue(e,t,i,s){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}};e3=am([dr(0,co)],e3);let GX=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new oe,this.configurationService.onDidChangeConfiguration(s=>{this._onDidChangeConfiguration.fire({affectedKeys:s.affectedKeys,affectsConfiguration:(r,o)=>s.affectsConfiguration(o)})})}getValue(e,t,i){const s=se.isIPosition(t)?t:null,r=s?typeof i=="string"?i:void 0:typeof t=="string"?t:void 0,o=e?this.getLanguage(e,s):void 0;return typeof r>"u"?this.configurationService.getValue({resource:e,overrideIdentifier:o}):this.configurationService.getValue(r,{resource:e,overrideIdentifier:o})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};GX=am([dr(0,Xt),dr(1,mn),dr(2,Dn)],GX);let XX=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&typeof i=="string"&&i!=="auto"?i:ra||ni?` +`:`\r +`}};XX=am([dr(0,Xt)],XX);class p2t{publicLog2(){}}const II=class II{constructor(){const e=mt.from({scheme:II.SCHEME,authority:"model",path:"/"});this.workspace={id:MIe,folders:[new ixt({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===II.SCHEME?this.workspace.folders[0]:null}};II.SCHEME="inmemory";let YX=II;function t3(n,e,t){if(!e||!(n instanceof e3))return;const i=[];Object.keys(e).forEach(s=>{Cxt(s)&&i.push([`editor.${s}`,e[s]]),t&&Sxt(s)&&i.push([`diffEditor.${s}`,e[s]])}),i.length>0&&n.updateValues(i)}let ZX=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:vie.convert(e),s=new Map;for(const a of i){if(!(a instanceof k1))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(Fn.replaceMove(O.lift(a.textEdit.range),a.textEdit.text))}let r=0,o=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),o+=1,r+=l.length;return{ariaSummary:zy(KG.bulkEditServiceSummary,r,o),isApplied:r>0}}};ZX=am([dr(0,mn)],ZX);class g2t{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return su(e)}}let QX=class extends UFt{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,i)}};QX=am([dr(0,$_),dr(1,wi)],QX);class m2t{constructor(){this._neverEmitter=new oe,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class _2t extends mX{constructor(){super()}}class v2t extends l2t{constructor(){super(new Xut)}}let JX=class extends bX{constructor(e,t,i,s,r,o){super(e,t,i,s,r,o),this.configure({blockMouse:!1})}};JX=am([dr(0,Ro),dr(1,ms),dr(2,sm),dr(3,Ni),dr(4,vc),dr(5,bt)],JX);class b2t{async playSignal(e,t){}}fi(co,v2t,0);fi(Xt,e3,0);fi(Aie,GX,0);fi(gTe,XX,0);fi(t0,YX,0);fi(gx,g2t,0);fi(Ro,p2t,0);fi(cA,d2t,0);fi(Tie,h2t,0);fi(ms,qX,0);fi(op,Om,0);fi(Dn,_2t,0);fi(Cc,mFt,0);fi(mn,LX,0);fi(Zee,xX,0);fi(bt,zX,0);fi(LIe,u2t,0);fi(B_,jX,0);fi(Ju,XCt,0);fi(lu,Iq,0);fi(YN,ZX,0);fi(NNe,m2t,0);fi(Wa,UX,0);fi(xl,WX,0);fi(uu,Ykt,0);fi(an,KX,0);fi(Ni,Dx,0);fi(cu,FX,0);fi(sm,QX,0);fi(kl,SX,0);fi(nm,HX,0);fi(El,JX,0);fi(vc,ZU,0);fi(F_,b2t,0);var yt;(function(n){const e=new VN;for(const[l,c]of Aue())e.set(l,c);const t=new J2(e,!0);e.set(ct,t);function i(l){s||o({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof Zd?t.invokeFunction(u=>u.get(l)):c}n.get=i;let s=!1;const r=new oe;function o(l){if(s)return t;s=!0;for(const[u,h]of Aue())e.get(u)||e.set(u,h);for(const u in l)if(l.hasOwnProperty(u)){const h=ri(u);e.get(h)instanceof Zd&&e.set(h,l[u])}const c=jLt();for(const u of c)try{t.createInstance(u)}catch(h){Nt(h)}return r.fire(),t}n.initialize=o;function a(l){if(s)return l();const c=new be,u=c.add(r.event(()=>{u.dispose(),c.add(l())}));return c}n.withServices=a})(yt||(yt={}));var qne=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},hn=function(n,e){return function(t,i){e(t,i,n)}};let y2t=0,nme=!1;function w2t(n){if(!n){if(nme)return;nme=!0}kut(n||Gi.document.body)}let i3=class extends QT{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f){const p={...t};p.ariaLabel=p.ariaLabel||O2.editorViewAccessibleLabel,p.ariaLabel=p.ariaLabel+";"+O2.accessibilityHelpMessage,super(e,p,{},i,s,r,o,c,u,h,d,f),l instanceof Dx?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,w2t(p.ariaContainerElement),jyt((g,m)=>i.createInstance(cx,g,m,{})),J0t(a)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++y2t,r=ye.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,r),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ue.None;const t=e.id,i=e.label,s=ye.and(ye.equals("editorId",this.getId()),ye.deserialize(e.precondition)),r=e.keybindings,o=ye.and(s,ye.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...p)=>Promise.resolve(e.run(this,...p)),u=new be,h=this.getId()+":"+t;if(u.add(di.registerCommand(h,c)),a){const f={command:{id:h,title:i},when:s,group:a,order:l};u.add(pr.appendMenuItem(et.EditorContext,f))}if(Array.isArray(r))for(const f of r)u.add(this._standaloneKeybindingService.addDynamicKeybinding(h,f,c,o));const d=new nke(h,i,i,void 0,s,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,d),u.add(lt(()=>{this._actions.delete(t)})),u}_triggerCommand(e,t){if(this._codeEditorService instanceof H2)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};i3=qne([hn(2,ct),hn(3,wi),hn(4,an),hn(5,bt),hn(6,rp),hn(7,Ni),hn(8,Xs),hn(9,ms),hn(10,xl),hn(11,ln),hn(12,Je)],i3);let eY=class extends i3{constructor(e,t,i,s,r,o,a,l,c,u,h,d,f,p,g,m){const _={...t};t3(h,_,!1);const b=c.registerEditorContainer(e);typeof _.theme=="string"&&c.setTheme(_.theme),typeof _.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!_.autoDetectHighContrast);const w=_.model;delete _.model,super(e,_,i,s,r,o,a,l,c,u,d,g,m),this._configurationService=h,this._standaloneThemeService=c,this._register(b);let C;if(typeof w>"u"){const S=p.getLanguageIdByMimeType(_.language)||_.language||ea;C=bAe(f,p,_.value||"",S,void 0),this._ownsModel=!0}else C=w,this._ownsModel=!1;if(this._attachModel(C),C){const S={oldModelUrl:null,newModelUrl:C.uri};this._onDidChangeModel.fire(S)}}dispose(){super.dispose()}updateOptions(e){t3(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};eY=qne([hn(2,ct),hn(3,wi),hn(4,an),hn(5,bt),hn(6,rp),hn(7,Ni),hn(8,Cc),hn(9,ms),hn(10,Xt),hn(11,xl),hn(12,mn),hn(13,Dn),hn(14,ln),hn(15,Je)],eY);let tY=class extends Ug{constructor(e,t,i,s,r,o,a,l,c,u,h,d){const f={...t};t3(l,f,!0);const p=o.registerEditorContainer(e);typeof f.theme=="string"&&o.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&o.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},s,i,r,d,u),this._configurationService=l,this._standaloneThemeService=o,this._register(p)}dispose(){super.dispose()}updateOptions(e){t3(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(i3,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};tY=qne([hn(2,ct),hn(3,bt),hn(4,wi),hn(5,Cc),hn(6,ms),hn(7,Xt),hn(8,El),hn(9,B_),hn(10,nm),hn(11,F_)],tY);function bAe(n,e,t,i,s){if(t=t||"",!i){const r=t.indexOf(` +`);let o=t;return r!==-1&&(o=t.substring(0,r)),sme(n,t,e.createByFilepathOrFirstLine(s||null,o),s)}return sme(n,t,e.createById(i),s)}function sme(n,e,t,i){return n.createModel(e,t,i)}var C2t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},S2t=function(n,e){return function(t,i){e(t,i,n)}};class x2t{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let n3=class extends ue{constructor(e,t,i,s){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=s,this._viewModel=Gt(this,void 0),this._collapsed=ot(this,o=>{var a;return(a=this._viewModel.read(o))==null?void 0:a.collapsed.read(o)}),this._editorContentHeight=Gt(this,500),this.contentHeight=ot(this,o=>(this._collapsed.read(o)?0:this._editorContentHeight.read(o))+this._outerEditorHeight),this._modifiedContentWidth=Gt(this,0),this._modifiedWidth=Gt(this,0),this._originalContentWidth=Gt(this,0),this._originalWidth=Gt(this,0),this.maxScroll=ot(this,o=>{const a=this._modifiedContentWidth.read(o)-this._modifiedWidth.read(o),l=this._originalContentWidth.read(o)-this._originalWidth.read(o);return a>l?{maxScroll:a,width:this._modifiedWidth.read(o)}:{maxScroll:l,width:this._originalWidth.read(o)}}),this._elements=Jt("div.multiDiffEntry",[Jt("div.header@header",[Jt("div.header-content",[Jt("div.collapse-button@collapseButton"),Jt("div.file-path",[Jt("div.title.modified.show-file-icons@primaryPath",[]),Jt("div.status.deleted@status",["R"]),Jt("div.title.original.show-file-icons@secondaryPath",[])]),Jt("div.actions@actions")])]),Jt("div.editorParent",[Jt("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Ug,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=ll(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=ll(this.editor.getOriginalEditor()).isFocused,this.isFocused=ot(this,o=>this.isModifedFocused.read(o)||this.isOriginalFocused.read(o)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new be,this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const r=new x4(this._elements.collapseButton,{});this._register(Lt(o=>{r.element.className="",r.icon=this._collapsed.read(o)?Ne.chevronRight:Ne.chevronDown})),this._register(r.onDidClick(()=>{var o;(o=this._viewModel.get())==null||o.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Lt(o=>{this._elements.editor.style.display=this._collapsed.read(o)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(o=>{const a=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(a,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(o=>{const a=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(a,void 0)})),this._register(this.editor.onDidContentSizeChange(o=>{UE(a=>{this._editorContentHeight.set(o.contentHeight,a),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),a),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),a)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(o=>{if(this._isSettingScrollTop||!o.scrollTopChanged||!this._data)return;const a=o.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(a)})),this._register(Lt(o=>{var l;const a=(l=this._viewModel.read(o))==null?void 0:l.isActive.read(o);this._elements.root.classList.toggle("active",a)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(m4,this._elements.actions,et.MultiDiffEditorFileToolbar,{actionRunner:this._register(new vIe(()=>{var o;return(o=this._viewModel.get())==null?void 0:o.modifiedUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:o=>o.startsWith("navigation")},actionViewItemProvider:(o,a)=>wIe(s,o,a)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){UE(s=>{this._viewModel.set(void 0,s),this.editor.setDiffModel(null,s),this._dataStore.clear()});return}const i=e.viewModel.documentDiffItem;UE(s=>{var c,u;(c=this._resourceLabel)==null||c.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let r=!1,o=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",r=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",o=!0),this._elements.status.classList.toggle("renamed",r),this._elements.status.classList.toggle("deleted",o),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,(u=this._resourceLabel2)==null||u.setUri(r?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,s),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,s=>{s||this.setData(void 0)})}render(e,t,i,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const r=e.length-this._headerHeight,o=Math.max(0,Math.min(s.start-e.start,r));this._elements.header.style.transform=`translateY(${o}px)`,UE(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",o>0||i>0),this._elements.header.classList.toggle("collapsed",o===r)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};n3=C2t([S2t(3,ct)],n3);class L2t{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const i=[...this._unused.values()];t=i.find(s=>this._itemData.get(s).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var E2t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},rme=function(n,e){return function(t,i){e(t,i,n)}};let iY=class extends ue{constructor(e,t,i,s,r,o){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=s,this._parentContextKeyService=r,this._parentInstantiationService=o,this._scrollableElements=Jt("div.scrollContent",[Jt("div@content",{style:{overflow:"hidden"}}),Jt("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new gL({forceIntegerValues:!1,scheduleAtNextAnimationFrame:l=>bl(ut(this._element),l),smoothScrollDuration:100})),this._scrollableElement=this._register(new d8(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=Jt("div.monaco-component.multiDiffEditor",{},[Jt("div",{},[this._scrollableElement.getDomNode()]),Jt("div.placeholder@placeholder",{},[Jt("div",[v("noChangedFiles","No Changed Files")])])]),this._sizeObserver=this._register(new sIe(this._element,void 0)),this._objectPool=this._register(new L2t(l=>{const c=this._instantiationService.createInstance(n3,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return c.setData(l),c})),this.scrollTop=Vi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Vi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=R_(this,(l,c)=>{const u=this._viewModel.read(l);if(!u)return{items:[],getItem:p=>{throw new Li}};const h=u.items.read(l),d=new Map;return{items:h.map(p=>{var _;const g=c.add(new k2t(p,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),m=(_=this._lastDocStates)==null?void 0:_[g.getKey()];return m&&Un(b=>{g.setViewState(m,b)}),d.set(p,g),g}),getItem:p=>d.get(p)}}),this._viewItems=this._viewItemsInfo.map(this,l=>l.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(l,c)=>l.reduce((u,h)=>u+h.contentHeight.read(c)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new VN([bt,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(H.inMultiDiffEditor.key,!0),this._register(Na((l,c)=>{const u=this._viewModel.read(l);if(u&&u.contextKeys)for(const[h,d]of Object.entries(u.contextKeys)){const f=this._contextKeyService.createKey(h,void 0);f.set(d),c.add(lt(()=>f.reset()))}}));const a=this._parentContextKeyService.createKey(H.multiDiffEditorAllCollapsed.key,!1);this._register(Lt(l=>{const c=this._viewModel.read(l);if(c){const u=c.items.read(l).every(h=>h.collapsed.read(l));a.set(u)}})),this._register(Lt(l=>{const c=this._dimension.read(l);this._sizeObserver.observe(c)})),this._register(Lt(l=>{const c=this._viewItems.read(l);this._elements.placeholder.classList.toggle("visible",c.length===0)})),this._scrollableElements.content.style.position="relative",this._register(Lt(l=>{const c=this._sizeObserver.height.read(l);this._scrollableElements.root.style.height=`${c}px`;const u=this._totalHeight.read(l);this._scrollableElements.content.style.height=`${u}px`;const h=this._sizeObserver.width.read(l);let d=h;const f=this._viewItems.read(l),p=bte(f,Jo(g=>g.maxScroll.read(l).maxScroll,Ru));if(p){const g=p.maxScroll.read(l);d=h+g.maxScroll}this._scrollableElement.setScrollDimensions({width:h,height:c,scrollHeight:u,scrollWidth:d})})),e.replaceChildren(this._elements.root),this._register(lt(()=>{e.replaceChildren()})),this._register(this._register(Lt(l=>{UE(c=>{this.render(l)})})))}render(e){const t=this.scrollTop.read(e);let i=0,s=0,r=0;const o=this._sizeObserver.height.read(e),a=Yt.ofStartAndLength(t,o),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const u=c.contentHeight.read(e),h=Math.min(u,o),d=Yt.ofStartAndLength(s,h),f=Yt.ofStartAndLength(r,u);if(f.isBefore(a))i-=u-h,c.hide();else if(f.isAfter(a))c.hide();else{const p=Math.max(0,Math.min(a.start-f.start,u-h));i-=p;const g=Yt.ofStartAndLength(t+i,o);c.render(d,p,l,g)}s+=h+this._spaceBetweenPx,r+=u+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};iY=E2t([rme(4,bt),rme(5,ct)],iY);class k2t extends ue{constructor(e,t,i,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=s,this._templateRef=this._register(JT(this,void 0)),this.contentHeight=ot(this,r=>{var o,a;return((a=(o=this._templateRef.read(r))==null?void 0:o.object.contentHeight)==null?void 0:a.read(r))??this.viewModel.lastTemplateData.read(r).contentHeight}),this.maxScroll=ot(this,r=>{var o;return((o=this._templateRef.read(r))==null?void 0:o.object.maxScroll.read(r))??{maxScroll:0,scrollWidth:0}}),this.template=ot(this,r=>{var o;return(o=this._templateRef.read(r))==null?void 0:o.object}),this._isHidden=Gt(this,!1),this._isFocused=ot(this,r=>{var o;return((o=this.template.read(r))==null?void 0:o.isFocused.read(r))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Lt(r=>{var a;const o=this._scrollLeft.read(r);(a=this._templateRef.read(r))==null||a.object.setScrollLeft(o)})),this._register(Lt(r=>{const o=this._templateRef.read(r);!o||!this._isHidden.read(r)||o.object.isFocused.read(r)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.documentDiffItem.modified)==null?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var o;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const i=this.viewModel.lastTemplateData.get(),s=(o=e.selections)==null?void 0:o.map(nt.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:s},t);const r=this._templateRef.get();r&&s&&r.object.editor.setSelections(s)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&Un(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,s){this._isHidden.set(!1,void 0);let r=this._templateRef.get();if(!r){r=this._objectPool.getUnusedObj(new x2t(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(r,void 0);const o=this.viewModel.lastTemplateData.get().selections;o&&r.object.editor.setSelections(o)}r.object.render(e,i,t,s)}}U("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},v("multiDiffEditor.headerBackground","The background color of the diff editor's header"));U("multiDiffEditor.background","editorBackground",v("multiDiffEditor.background","The background color of the multi file diff editor"));U("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},v("multiDiffEditor.border","The border color of the multi file diff editor"));var I2t=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},T2t=function(n,e){return function(t,i){e(t,i,n)}};let nY=class extends ue{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=Gt(this,void 0),this._viewModel=Gt(this,void 0),this._widgetImpl=R_(this,(s,r)=>(el(n3,s),r.add(this._instantiationService.createInstance(el(iY,s),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register(bL(this._widgetImpl))}};nY=I2t([T2t(2,ct)],nY);function D2t(n,e,t){return yt.initialize(t||{}).createInstance(eY,n,e)}function N2t(n){return yt.get(wi).onCodeEditorAdd(t=>{n(t)})}function A2t(n){return yt.get(wi).onDiffEditorAdd(t=>{n(t)})}function P2t(){return yt.get(wi).listCodeEditors()}function R2t(){return yt.get(wi).listDiffEditors()}function M2t(n,e,t){return yt.initialize(t||{}).createInstance(tY,n,e)}function O2t(n,e){const t=yt.initialize(e||{});return new nY(n,{},t)}function F2t(n){if(typeof n.id!="string"||typeof n.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return di.registerCommand(n.id,n.run)}function B2t(n){if(typeof n.id!="string"||typeof n.label!="string"||typeof n.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=ye.deserialize(n.precondition),t=(s,...r)=>Gs.runEditorCommand(s,r,e,(o,a,l)=>Promise.resolve(n.run(a,...l))),i=new be;if(i.add(di.registerCommand(n.id,t)),n.contextMenuGroupId){const s={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(pr.appendMenuItem(et.EditorContext,s))}if(Array.isArray(n.keybindings)){const s=yt.get(Ni);if(!(s instanceof Dx))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const r=ye.and(e,ye.deserialize(n.keybindingContext));i.add(s.addDynamicKeybindings(n.keybindings.map(o=>({keybinding:o,command:n.id,when:r}))))}}return i}function W2t(n){return yAe([n])}function yAe(n){const e=yt.get(Ni);return e instanceof Dx?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:ye.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ue.None)}function V2t(n,e,t){const i=yt.get(Dn),s=i.getLanguageIdByMimeType(e)||e;return bAe(yt.get(mn),i,n,s,t)}function H2t(n,e){const t=yt.get(Dn),i=t.getLanguageIdByMimeType(e)||e||ea;n.setLanguage(t.createById(i))}function $2t(n,e,t){n&&yt.get(op).changeOne(e,n.uri,t)}function z2t(n){yt.get(op).changeAll(n,[])}function U2t(n){return yt.get(op).read(n)}function j2t(n){return yt.get(op).onMarkerChanged(n)}function q2t(n){return yt.get(mn).getModel(n)}function K2t(){return yt.get(mn).getModels()}function G2t(n){return yt.get(mn).onModelAdded(n)}function X2t(n){return yt.get(mn).onModelRemoved(n)}function Y2t(n){return yt.get(mn).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function Z2t(n){return vFt(yt.get(mn),yt.get(ln),n)}function Q2t(n,e){const t=yt.get(Dn),i=yt.get(Cc);return $ne.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function J2t(n,e,t){const i=yt.get(Dn);return yt.get(Cc).registerEditorContainer(Gi.document.body),$ne.colorize(i,n,e,t)}function e3t(n,e,t=4){return yt.get(Cc).registerEditorContainer(Gi.document.body),$ne.colorizeModelLine(n,e,t)}function t3t(n){const e=Xn.get(n);return e||{getInitialState:()=>sx,tokenize:(t,i,s)=>Rte(n,s)}}function i3t(n,e){Xn.getOrCreate(e);const t=t3t(e),i=ip(n),s=[];let r=t.getInitialState();for(let o=0,a=i.length;o<a;o++){const l=i[o],c=t.tokenize(l,!0,r);s[o]=c.tokens,r=c.endState}return s}function n3t(n,e){yt.get(Cc).defineTheme(n,e)}function s3t(n){yt.get(Cc).setTheme(n)}function r3t(){Pz.clearAllFontInfos()}function o3t(n,e){return di.registerCommand({id:n,handler:e})}function a3t(n){return yt.get(kl).registerOpener({async open(t){return typeof t=="string"&&(t=mt.parse(t)),n.open(t)}})}function l3t(n){return yt.get(wi).registerCodeEditorOpenHandler(async(t,i,s)=>{var a;if(!i)return null;const r=(a=t.options)==null?void 0:a.selection;let o;return r&&typeof r.endLineNumber=="number"&&typeof r.endColumn=="number"?o=r:r&&(o={lineNumber:r.startLineNumber,column:r.startColumn}),await n.openCodeEditor(i,t.resource,o)?i:null})}function c3t(){return{create:D2t,getEditors:P2t,getDiffEditors:R2t,onDidCreateEditor:N2t,onDidCreateDiffEditor:A2t,createDiffEditor:M2t,addCommand:F2t,addEditorAction:B2t,addKeybindingRule:W2t,addKeybindingRules:yAe,createModel:V2t,setModelLanguage:H2t,setModelMarkers:$2t,getModelMarkers:U2t,removeAllMarkers:z2t,onDidChangeMarkers:j2t,getModels:K2t,getModel:q2t,onDidCreateModel:G2t,onWillDisposeModel:X2t,onDidChangeModelLanguage:Y2t,createWebWorker:Z2t,colorizeElement:Q2t,colorize:J2t,colorizeModelLine:e3t,tokenize:i3t,defineTheme:n3t,setTheme:s3t,remeasureFonts:r3t,registerCommand:o3t,registerLinkOpener:a3t,registerEditorOpener:l3t,AccessibilitySupport:Rj,ContentWidgetPositionPreference:Vj,CursorChangeReason:Hj,DefaultEndOfLine:$j,EditorAutoIndentStrategy:Uj,EditorOption:jj,EndOfLinePreference:qj,EndOfLineSequence:Kj,MinimapPosition:sq,MinimapSectionHeaderStyle:rq,MouseTargetType:oq,OverlayWidgetPositionPreference:cq,OverviewRulerLane:uq,GlyphMarginLane:Gj,RenderLineNumbersType:fq,RenderMinimap:pq,ScrollbarVisibility:mq,ScrollType:gq,TextEditorCursorBlinkingStyle:Cq,TextEditorCursorStyle:Sq,TrackedRangeStickiness:xq,WrappingIndent:Lq,InjectedTextCursorStops:Zj,PositionAffinity:dq,ShowLightbulbIconMode:vq,ConfigurationChangedEvent:iEe,BareFontInfo:Sb,FontInfo:Az,TextModelResolvedOptions:gM,FindMatch:VT,ApplyUpdateResult:Nk,EditorZoom:Mc,createMultiFileDiffEditor:O2t,EditorType:WN,EditorOptions:gd}}function u3t(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function fR(n,e){return typeof n=="boolean"?n:e}function ome(n,e){return typeof n=="string"?n:e}function h3t(n){const e={};for(const t of n)e[t]=!0;return e}function ame(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=h3t(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function sY(n,e,t){e=e.replace(/@@/g,"");let i=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(o,a){s=!0;let l="";if(typeof n[a]=="string")l=n[a];else if(n[a]&&n[a]instanceof RegExp)l=n[a].source;else throw n[a]===void 0?bn(n,"language definition does not contain attribute '"+a+"', used at: "+e):bn(n,"attribute reference '"+a+"' must be a string, used at: "+e);return Wv(l)?"":"(?:"+l+")"}),i++;while(s&&i<5);e=e.replace(/\x01/g,"@");const r=(n.ignoreCase?"i":"")+(n.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(SFt(n,e,c),r)),l)}return new RegExp(e,r)}function d3t(n,e,t,i){if(i<0)return n;if(i<e.length)return e[i];if(i>=100){i=i-100;const s=t.split(".");if(s.unshift(t),i<s.length)return s[i]}return null}function f3t(n,e,t,i){let s=-1,r=t,o=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);o&&(o[3]&&(s=parseInt(o[3]),o[2]&&(s=s+100)),r=o[4]);let a="~",l=r;!r||r.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(o=r.match(/^(@|!@|~|!~|==|!=)(.*)$/),o&&(a=o[1],l=o[2]));let c;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const u=ame(l.split("|"),n.ignoreCase);c=function(h){return a==="~"?u(h):!u(h)}}else if(a==="@"||a==="!@"){const u=n[l];if(!u)throw bn(n,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!u3t(function(d){return typeof d=="string"},u))throw bn(n,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const h=ame(u,n.ignoreCase);c=function(d){return a==="@"?h(d):!h(d)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const u=sY(n,"^"+l+"$",!1);c=function(h){return a==="~"?u.test(h):!u.test(h)}}else c=function(u,h,d,f){return sY(n,"^"+Xm(n,l,h,d,f)+"$",!1).test(u)};else if(l.indexOf("$")<0){const u=kg(n,l);c=function(h){return a==="=="?h===u:h!==u}}else{const u=kg(n,l);c=function(h,d,f,p,g){const m=Xm(n,u,d,f,p);return a==="=="?h===m:h!==m}}return s===-1?{name:t,value:i,test:function(u,h,d,f){return c(u,u,h,d,f)}}:{name:t,value:i,test:function(u,h,d,f){const p=d3t(u,h,d,s);return c(p||"",u,h,d,f)}}}function rY(n,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw bn(n,"a 'token' attribute must be of type string, in rule: "+e);{const i={token:t.token};if(t.token.indexOf("$")>=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw bn(n,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw bn(n,"the next state must be a string value in rule: "+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!xFt(n,Xm(n,s,"",[],""))))throw bn(n,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=s}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let s=0,r=t.length;s<r;s++)i[s]=rY(n,e,t[s]);return{group:i}}else if(t.cases){const i=[];for(const r in t.cases)if(t.cases.hasOwnProperty(r)){const o=rY(n,e,t.cases[r]);r==="@default"||r==="@"||r===""?i.push({test:void 0,value:o,name:r}):r==="@eos"?i.push({test:function(a,l,c,u){return u},value:o,name:r}):i.push(f3t(n,e,r,o))}const s=n.defaultToken;return{test:function(r,o,a,l){for(const c of i)if(!c.test||c.test(r,o,a,l))return c.value;return s}}}else throw bn(n,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class p3t{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if(typeof t=="string")i=t;else if(t instanceof RegExp)i=t.source;else throw bn(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]==="^",this.name=this.name+": "+i,this.regex=sY(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=rY(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function wAe(n,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:n,includeLF:fR(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:fR(e.ignoreCase,!1),unicode:fR(e.unicode,!1),tokenPostfix:ome(e.tokenPostfix,"."+n),defaultToken:ome(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function s(o,a,l){for(const c of l){let u=c.include;if(u){if(typeof u!="string")throw bn(t,"an 'include' attribute must be a string at: "+o);if(u[0]==="@"&&(u=u.substr(1)),!e.tokenizer[u])throw bn(t,"include target '"+u+"' is not defined at: "+o);s(o+"."+u,a,e.tokenizer[u])}else{const h=new p3t(o);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(h.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")h.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const d=c[1];d.next=c[2],h.setAction(i,d)}else throw bn(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+o);else h.setAction(i,c[1]);else{if(!c.regex)throw bn(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+o);c.name&&typeof c.name=="string"&&(h.name=c.name),c.matchOnlyAtStart&&(h.matchOnlyAtLineStart=fR(c.matchOnlyAtLineStart,!1)),h.setRegex(i,c.regex),h.setAction(i,c.action)}a.push(h)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw bn(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const o in e.tokenizer)if(e.tokenizer.hasOwnProperty(o)){t.start||(t.start=o);const a=e.tokenizer[o];t.tokenizer[o]=new Array,s("tokenizer."+o,t.tokenizer[o],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw bn(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const r=[];for(const o of e.brackets){let a=o;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw bn(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:kg(t,a.open),close:kg(t,a.close)});else throw bn(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function g3t(n){XS.registerLanguage(n)}function m3t(){let n=[];return n=n.concat(XS.getLanguages()),n}function _3t(n){return yt.get(Dn).languageIdCodec.encodeLanguageId(n)}function v3t(n,e){return yt.withServices(()=>{const i=yt.get(Dn).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function b3t(n,e){return yt.withServices(()=>{const i=yt.get(Dn).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function y3t(n,e){if(!yt.get(Dn).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return yt.get(ln).register(n,e,100)}class w3t{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return GD.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new p8(s.tokens,s.endState)}}class GD{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<s&&(l=s),i[r]=new MT(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const r=t.tokenize(i,s),o=GD._toClassicTokens(r.tokens,e);let a;return r.endState.equals(s)?a=s:a=r.endState,new vte(o,a)}tokenize(e,t,i){return GD.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let c=0,u=t.length;c<u;c++){const h=t[c],d=s.match(i,h.scopes)|1024;if(o>0&&r[o-1]===d)continue;let f=h.startIndex;c===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=d,a=f}const l=new Uint32Array(o);for(let c=0;c<o;c++)l[c]=r[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let o;return s.endState.equals(i)?o=i:o=s.endState,new p8(r,o)}}function C3t(n){return typeof n.getInitialState=="function"}function S3t(n){return"tokenizeEncoded"in n}function CAe(n){return n&&typeof n.then=="function"}function x3t(n){const e=yt.get(Cc);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=Ce.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function SAe(n,e){return S3t(e)?new w3t(n,e):new GD(n,e,yt.get(Dn),yt.get(Cc))}function Kne(n,e){const t=new v1t(async()=>{const i=await Promise.resolve(e.create());return i?C3t(i)?SAe(n,i):new UD(yt.get(Dn),yt.get(Cc),n,wAe(n,i),yt.get(Xt)):null});return Xn.registerFactory(n,t)}function L3t(n,e){if(!yt.get(Dn).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return CAe(e)?Kne(n,{create:()=>e}):Xn.register(n,SAe(n,e))}function E3t(n,e){const t=i=>new UD(yt.get(Dn),yt.get(Cc),n,wAe(n,i),yt.get(Xt));return CAe(e)?Kne(n,{create:()=>e}):Xn.register(n,t(e))}function k3t(n,e){return yt.get(Je).referenceProvider.register(n,e)}function I3t(n,e){return yt.get(Je).renameProvider.register(n,e)}function T3t(n,e){return yt.get(Je).newSymbolNamesProvider.register(n,e)}function D3t(n,e){return yt.get(Je).signatureHelpProvider.register(n,e)}function N3t(n,e){return yt.get(Je).hoverProvider.register(n,{provideHover:async(i,s,r,o)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new O(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new O(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function A3t(n,e){return yt.get(Je).documentSymbolProvider.register(n,e)}function P3t(n,e){return yt.get(Je).documentHighlightProvider.register(n,e)}function R3t(n,e){return yt.get(Je).linkedEditingRangeProvider.register(n,e)}function M3t(n,e){return yt.get(Je).definitionProvider.register(n,e)}function O3t(n,e){return yt.get(Je).implementationProvider.register(n,e)}function F3t(n,e){return yt.get(Je).typeDefinitionProvider.register(n,e)}function B3t(n,e){return yt.get(Je).codeLensProvider.register(n,e)}function W3t(n,e,t){return yt.get(Je).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,r,o,a)=>{const c=yt.get(op).read({resource:s.uri}).filter(u=>O.areIntersectingOrTouching(u,r));return e.provideCodeActions(s,r,{markers:c,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function V3t(n,e){return yt.get(Je).documentFormattingEditProvider.register(n,e)}function H3t(n,e){return yt.get(Je).documentRangeFormattingEditProvider.register(n,e)}function $3t(n,e){return yt.get(Je).onTypeFormattingEditProvider.register(n,e)}function z3t(n,e){return yt.get(Je).linkProvider.register(n,e)}function U3t(n,e){return yt.get(Je).completionProvider.register(n,e)}function j3t(n,e){return yt.get(Je).colorProvider.register(n,e)}function q3t(n,e){return yt.get(Je).foldingRangeProvider.register(n,e)}function K3t(n,e){return yt.get(Je).declarationProvider.register(n,e)}function G3t(n,e){return yt.get(Je).selectionRangeProvider.register(n,e)}function X3t(n,e){return yt.get(Je).documentSemanticTokensProvider.register(n,e)}function Y3t(n,e){return yt.get(Je).documentRangeSemanticTokensProvider.register(n,e)}function Z3t(n,e){return yt.get(Je).inlineCompletionsProvider.register(n,e)}function Q3t(n,e){return yt.get(Je).inlineEditProvider.register(n,e)}function J3t(n,e){return yt.get(Je).inlayHintsProvider.register(n,e)}function e5t(){return{register:g3t,getLanguages:m3t,onLanguage:v3t,onLanguageEncountered:b3t,getEncodedLanguageId:_3t,setLanguageConfiguration:y3t,setColorMap:x3t,registerTokensProviderFactory:Kne,setTokensProvider:L3t,setMonarchTokensProvider:E3t,registerReferenceProvider:k3t,registerRenameProvider:I3t,registerNewSymbolNameProvider:T3t,registerCompletionItemProvider:U3t,registerSignatureHelpProvider:D3t,registerHoverProvider:N3t,registerDocumentSymbolProvider:A3t,registerDocumentHighlightProvider:P3t,registerLinkedEditingRangeProvider:R3t,registerDefinitionProvider:M3t,registerImplementationProvider:O3t,registerTypeDefinitionProvider:F3t,registerCodeLensProvider:B3t,registerCodeActionProvider:W3t,registerDocumentFormattingEditProvider:V3t,registerDocumentRangeFormattingEditProvider:H3t,registerOnTypeFormattingEditProvider:$3t,registerLinkProvider:z3t,registerColorProvider:j3t,registerFoldingRangeProvider:q3t,registerDeclarationProvider:K3t,registerSelectionRangeProvider:G3t,registerDocumentSemanticTokensProvider:X3t,registerDocumentRangeSemanticTokensProvider:Y3t,registerInlineCompletionsProvider:Z3t,registerInlineEditProvider:Q3t,registerInlayHintsProvider:J3t,DocumentHighlightKind:zj,CompletionItemKind:Fj,CompletionItemTag:Bj,CompletionItemInsertTextRule:Oj,SymbolKind:yq,SymbolTag:wq,IndentAction:Yj,CompletionTriggerKind:Wj,SignatureHelpTriggerKind:bq,InlayHintKind:Qj,InlineCompletionTriggerKind:Jj,InlineEditTriggerKind:eq,CodeActionTriggerType:Mj,NewSymbolNameTag:aq,NewSymbolNameTriggerKind:lq,PartialAcceptTriggerKind:hq,HoverVerbosityAction:Xj,FoldingRangeKind:h_,SelectedSuggestionInfo:UEe}}gd.wrappingIndent.defaultValue=0;gd.glyphMargin.defaultValue=!1;gd.autoIndent.defaultValue=3;gd.overviewRulerLanes.defaultValue=2;xD.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const fa=hTe();fa.editor=c3t();fa.languages=e5t();const u7t=fa.CancellationTokenSource,h7t=fa.Emitter,t5t=fa.KeyCode,i5t=fa.KeyMod,d7t=fa.Position,f7t=fa.Range,p7t=fa.Selection,g7t=fa.SelectionDirection,m7t=fa.MarkerSeverity,_7t=fa.MarkerTag,XD=fa.Uri,v7t=fa.Token,Of=fa.editor,xs=fa.languages,AV=globalThis.MonacoEnvironment;(AV!=null&&AV.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=fa);typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var xAe;(()=>{var n={470:s=>{function r(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function o(l,c){for(var u,h="",d=0,f=-1,p=0,g=0;g<=l.length;++g){if(g<l.length)u=l.charCodeAt(g);else{if(u===47)break;u=47}if(u===47){if(!(f===g-1||p===1))if(f!==g-1&&p===2){if(h.length<2||d!==2||h.charCodeAt(h.length-1)!==46||h.charCodeAt(h.length-2)!==46){if(h.length>2){var m=h.lastIndexOf("/");if(m!==h.length-1){m===-1?(h="",d=0):d=(h=h.slice(0,m)).length-1-h.lastIndexOf("/"),f=g,p=0;continue}}else if(h.length===2||h.length===1){h="",d=0,f=g,p=0;continue}}c&&(h.length>0?h+="/..":h="..",d=2)}else h.length>0?h+="/"+l.slice(f+1,g):h=l.slice(f+1,g),d=g-f-1;f=g,p=0}else u===46&&p!==-1?++p:p=-1}return h}var a={resolve:function(){for(var l,c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var d;h>=0?d=arguments[h]:(l===void 0&&(l=process.cwd()),d=l),r(d),d.length!==0&&(c=d+"/"+c,u=d.charCodeAt(0)===47)}return c=o(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(r(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=o(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return r(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c<arguments.length;++c){var u=arguments[c];r(u),u.length>0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":a.normalize(l)},relative:function(l,c){if(r(l),r(c),l===c||(l=a.resolve(l))===(c=a.resolve(c)))return"";for(var u=1;u<l.length&&l.charCodeAt(u)===47;++u);for(var h=l.length,d=h-u,f=1;f<c.length&&c.charCodeAt(f)===47;++f);for(var p=c.length-f,g=d<p?d:p,m=-1,_=0;_<=g;++_){if(_===g){if(p>g){if(c.charCodeAt(f+_)===47)return c.slice(f+_+1);if(_===0)return c.slice(f+_)}else d>g&&(l.charCodeAt(u+_)===47?m=_:_===0&&(m=0));break}var b=l.charCodeAt(u+_);if(b!==c.charCodeAt(f+_))break;b===47&&(m=_)}var w="";for(_=u+m+1;_<=h;++_)_!==h&&l.charCodeAt(_)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+c.slice(f+m):(f+=m,c.charCodeAt(f)===47&&++f,c.slice(f))},_makeLong:function(l){return l},dirname:function(l){if(r(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,h=-1,d=!0,f=l.length-1;f>=1;--f)if((c=l.charCodeAt(f))===47){if(!d){h=f;break}}else d=!1;return h===-1?u?"/":".":u&&h===1?"//":l.slice(0,h)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');r(l);var u,h=0,d=-1,f=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var p=c.length-1,g=-1;for(u=l.length-1;u>=0;--u){var m=l.charCodeAt(u);if(m===47){if(!f){h=u+1;break}}else g===-1&&(f=!1,g=u+1),p>=0&&(m===c.charCodeAt(p)?--p==-1&&(d=u):(p=-1,d=g))}return h===d?d=g:d===-1&&(d=l.length),l.slice(h,d)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!f){h=u+1;break}}else d===-1&&(f=!1,d=u+1);return d===-1?"":l.slice(h,d)},extname:function(l){r(l);for(var c=-1,u=0,h=-1,d=!0,f=0,p=l.length-1;p>=0;--p){var g=l.charCodeAt(p);if(g!==47)h===-1&&(d=!1,h=p+1),g===46?c===-1?c=p:f!==1&&(f=1):c!==-1&&(f=-1);else if(!d){u=p+1;break}}return c===-1||h===-1||f===0||f===1&&c===h-1&&c===u+1?"":l.slice(c,h)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(c,u){var h=u.dir||u.root,d=u.base||(u.name||"")+(u.ext||"");return h?h===u.root?h+d:h+"/"+d:d}(0,l)},parse:function(l){r(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,h=l.charCodeAt(0),d=h===47;d?(c.root="/",u=1):u=0;for(var f=-1,p=0,g=-1,m=!0,_=l.length-1,b=0;_>=u;--_)if((h=l.charCodeAt(_))!==47)g===-1&&(m=!1,g=_+1),h===46?f===-1?f=_:b!==1&&(b=1):f!==-1&&(b=-1);else if(!m){p=_+1;break}return f===-1||g===-1||b===0||b===1&&f===g-1&&f===p+1?g!==-1&&(c.base=c.name=p===0&&d?l.slice(1,g):l.slice(p,g)):(p===0&&d?(c.name=l.slice(1,f),c.base=l.slice(1,g)):(c.name=l.slice(p,f),c.base=l.slice(p,g)),c.ext=l.slice(f,g)),p>0?c.dir=l.slice(0,p-1):d&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,s.exports=a}},e={};function t(s){var r=e[s];if(r!==void 0)return r.exports;var o=e[s]={exports:{}};return n[s](o,o.exports,t),o.exports}t.d=(s,r)=>{for(var o in r)t.o(r,o)&&!t.o(s,o)&&Object.defineProperty(s,o,{enumerable:!0,get:r[o]})},t.o=(s,r)=>Object.prototype.hasOwnProperty.call(s,r),t.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var i={};(()=>{let s;t.r(i),t.d(i,{URI:()=>d,Utils:()=>A}),typeof process=="object"?s=process.platform==="win32":typeof navigator=="object"&&(s=navigator.userAgent.indexOf("Windows")>=0);const r=/^\w[\w\d+.-]*$/,o=/^\//,a=/^\/\//;function l(I,T){if(!I.scheme&&T)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${I.authority}", path: "${I.path}", query: "${I.query}", fragment: "${I.fragment}"}`);if(I.scheme&&!r.test(I.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(I.path){if(I.authority){if(!o.test(I.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(I.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const c="",u="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{constructor(T,N,M,V,W,B=!1){lm(this,"scheme");lm(this,"authority");lm(this,"path");lm(this,"query");lm(this,"fragment");typeof T=="object"?(this.scheme=T.scheme||c,this.authority=T.authority||c,this.path=T.path||c,this.query=T.query||c,this.fragment=T.fragment||c):(this.scheme=function($,Y){return $||Y?$:"file"}(T,B),this.authority=N||c,this.path=function($,Y){switch($){case"https":case"http":case"file":Y?Y[0]!==u&&(Y=u+Y):Y=u}return Y}(this.scheme,M||c),this.query=V||c,this.fragment=W||c,l(this,B))}static isUri(T){return T instanceof d||!!T&&typeof T.authority=="string"&&typeof T.fragment=="string"&&typeof T.path=="string"&&typeof T.query=="string"&&typeof T.scheme=="string"&&typeof T.fsPath=="string"&&typeof T.with=="function"&&typeof T.toString=="function"}get fsPath(){return b(this)}with(T){if(!T)return this;let{scheme:N,authority:M,path:V,query:W,fragment:B}=T;return N===void 0?N=this.scheme:N===null&&(N=c),M===void 0?M=this.authority:M===null&&(M=c),V===void 0?V=this.path:V===null&&(V=c),W===void 0?W=this.query:W===null&&(W=c),B===void 0?B=this.fragment:B===null&&(B=c),N===this.scheme&&M===this.authority&&V===this.path&&W===this.query&&B===this.fragment?this:new p(N,M,V,W,B)}static parse(T,N=!1){const M=h.exec(T);return M?new p(M[2]||c,x(M[4]||c),x(M[5]||c),x(M[7]||c),x(M[9]||c),N):new p(c,c,c,c,c)}static file(T){let N=c;if(s&&(T=T.replace(/\\/g,u)),T[0]===u&&T[1]===u){const M=T.indexOf(u,2);M===-1?(N=T.substring(2),T=u):(N=T.substring(2,M),T=T.substring(M)||u)}return new p("file",N,T,c,c)}static from(T){const N=new p(T.scheme,T.authority,T.path,T.query,T.fragment);return l(N,!0),N}toString(T=!1){return w(this,T)}toJSON(){return this}static revive(T){if(T){if(T instanceof d)return T;{const N=new p(T);return N._formatted=T.external,N._fsPath=T._sep===f?T.fsPath:null,N}}return T}}const f=s?1:void 0;class p extends d{constructor(){super(...arguments);lm(this,"_formatted",null);lm(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=b(this)),this._fsPath}toString(N=!1){return N?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){const N={$mid:1};return this._fsPath&&(N.fsPath=this._fsPath,N._sep=f),this._formatted&&(N.external=this._formatted),this.path&&(N.path=this.path),this.scheme&&(N.scheme=this.scheme),this.authority&&(N.authority=this.authority),this.query&&(N.query=this.query),this.fragment&&(N.fragment=this.fragment),N}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function m(I,T,N){let M,V=-1;for(let W=0;W<I.length;W++){const B=I.charCodeAt(W);if(B>=97&&B<=122||B>=65&&B<=90||B>=48&&B<=57||B===45||B===46||B===95||B===126||T&&B===47||N&&B===91||N&&B===93||N&&B===58)V!==-1&&(M+=encodeURIComponent(I.substring(V,W)),V=-1),M!==void 0&&(M+=I.charAt(W));else{M===void 0&&(M=I.substr(0,W));const $=g[B];$!==void 0?(V!==-1&&(M+=encodeURIComponent(I.substring(V,W)),V=-1),M+=$):V===-1&&(V=W)}}return V!==-1&&(M+=encodeURIComponent(I.substring(V))),M!==void 0?M:I}function _(I){let T;for(let N=0;N<I.length;N++){const M=I.charCodeAt(N);M===35||M===63?(T===void 0&&(T=I.substr(0,N)),T+=g[M]):T!==void 0&&(T+=I[N])}return T!==void 0?T:I}function b(I,T){let N;return N=I.authority&&I.path.length>1&&I.scheme==="file"?`//${I.authority}${I.path}`:I.path.charCodeAt(0)===47&&(I.path.charCodeAt(1)>=65&&I.path.charCodeAt(1)<=90||I.path.charCodeAt(1)>=97&&I.path.charCodeAt(1)<=122)&&I.path.charCodeAt(2)===58?I.path[1].toLowerCase()+I.path.substr(2):I.path,s&&(N=N.replace(/\//g,"\\")),N}function w(I,T){const N=T?_:m;let M="",{scheme:V,authority:W,path:B,query:$,fragment:Y}=I;if(V&&(M+=V,M+=":"),(W||V==="file")&&(M+=u,M+=u),W){let le=W.indexOf("@");if(le!==-1){const re=W.substr(0,le);W=W.substr(le+1),le=re.lastIndexOf(":"),le===-1?M+=N(re,!1,!1):(M+=N(re.substr(0,le),!1,!1),M+=":",M+=N(re.substr(le+1),!1,!0)),M+="@"}W=W.toLowerCase(),le=W.lastIndexOf(":"),le===-1?M+=N(W,!1,!0):(M+=N(W.substr(0,le),!1,!0),M+=W.substr(le))}if(B){if(B.length>=3&&B.charCodeAt(0)===47&&B.charCodeAt(2)===58){const le=B.charCodeAt(1);le>=65&&le<=90&&(B=`/${String.fromCharCode(le+32)}:${B.substr(3)}`)}else if(B.length>=2&&B.charCodeAt(1)===58){const le=B.charCodeAt(0);le>=65&&le<=90&&(B=`${String.fromCharCode(le+32)}:${B.substr(2)}`)}M+=N(B,!0,!1)}return $&&(M+="?",M+=N($,!1,!1)),Y&&(M+="#",M+=T?Y:m(Y,!1,!1)),M}function C(I){try{return decodeURIComponent(I)}catch{return I.length>3?I.substr(0,3)+C(I.substr(3)):I}}const S=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function x(I){return I.match(S)?I.replace(S,T=>C(T)):I}var k=t(470);const L=k.posix||k,E="/";var A;(function(I){I.joinPath=function(T,...N){return T.with({path:L.join(T.path,...N)})},I.resolvePath=function(T,...N){let M=T.path,V=!1;M[0]!==E&&(M=E+M,V=!0);let W=L.resolve(M,...N);return V&&W[0]===E&&!T.authority&&(W=W.substring(1)),T.with({path:W})},I.dirname=function(T){if(T.path.length===0||T.path===E)return T;let N=L.dirname(T.path);return N.length===1&&N.charCodeAt(0)===46&&(N=""),T.with({path:N})},I.basename=function(T){return L.basename(T.path)},I.extname=function(T){return L.extname(T.path)}})(A||(A={}))})(),xAe=i})();const{URI:yf,Utils:b7t}=xAe;function n5t(n){return n===4?1:n===3?2:n===2?4:8}function s5t(n){return n}function pR(n){return{start:{line:n.startLineNumber-1,character:n.startColumn-1},end:{line:n.endLineNumber-1,character:n.endColumn-1}}}function Er(n){return{startLineNumber:n.start.line+1,startColumn:n.start.character+1,endLineNumber:n.end.line+1,endColumn:n.end.character+1}}function r5t(n){return{...Er(n.location.range),message:n.message,resource:yf.parse(n.location.uri)}}function LAe(n){const e={...Er(n.range),message:n.message,severity:n.severity?n5t(n.severity):8};return n.code!=null&&(e.code=n.codeDescription==null?String(n.code):{value:String(n.code),target:yf.parse(n.codeDescription.href)}),n.relatedInformation&&(e.relatedInformation=n.relatedInformation.map(r5t)),n.tags&&(e.tags=n.tags.map(s5t)),n.source!=null&&(e.source=n.source),e}function D1(n){return{range:Er(n.range),text:n.newText}}function o5t(n){const e={};return n.ignoreIfExists!=null&&(e.ignoreIfExists=n.ignoreIfExists),n.ignoreIfNotExists!=null&&(e.ignoreIfNotExists=n.ignoreIfNotExists),n.overwrite!=null&&(e.overwrite=n.overwrite),n.recursive!=null&&(e.recursive=n.recursive),e}function a5t(n){const e=n.kind==="create"?{newResource:yf.parse(n.uri)}:n.kind==="delete"?{oldResource:yf.parse(n.uri)}:{oldResource:yf.parse(n.oldUri),newResource:yf.parse(n.newUri)};return n.options&&(e.options=o5t(n.options)),e}function lme(n,e,t){return{resource:yf.parse(e),versionId:t,textEdit:D1(n)}}function EAe(n){var e;const t=[];if(n.changes)for(const[i,s]of Object.entries(n.changes))for(const r of s)t.push(lme(r,i));if(n.documentChanges)for(const i of n.documentChanges)if("textDocument"in i)for(const s of i.edits)t.push(lme(s,i.textDocument.uri,(e=i.textDocument.version)!==null&&e!==void 0?e:void 0));else t.push(a5t(i));return{edits:t}}function cme(n){const e={title:n.title,isPreferred:n.isPreferred};return n.diagnostics&&(e.diagnostics=n.diagnostics.map(LAe)),n.disabled&&(e.disabled=n.disabled.reason),n.edit&&(e.edit=EAe(n.edit)),n.isPreferred!=null&&(e.isPreferred=n.isPreferred),n.kind&&(e.kind=n.kind),e}function Gne(n){const e={title:n.title,id:n.command};return n.arguments&&(e.arguments=n.arguments),e}function ume(n){const e={range:Er(n.range)};return n.command&&(e.command=Gne(n.command)),e}function l5t(n){return{red:n.red,blue:n.blue,green:n.green,alpha:n.alpha}}function c5t(n){return{range:Er(n.range),color:l5t(n.color)}}function u5t(n){const e={label:n.label};return n.textEdit&&(e.textEdit=D1(n.textEdit)),n.additionalTextEdits&&(e.additionalTextEdits=n.additionalTextEdits.map(D1)),e}function h5t(n){return n===0?1:n===1?2:3}function d5t(n){const e={triggerKind:h5t(n.triggerKind)};return n.triggerCharacter!=null&&(e.triggerCharacter=n.triggerCharacter),e}function f5t(n){return n===1?18:n===2?0:n===3?1:n===4?2:n===5?3:n===6?4:n===7?5:n===8?7:n===9?8:n===10?9:n===11?12:n===12?13:n===13?15:n===14?17:n===15?27:n===16?19:n===17?20:n===18?21:n===19?23:n===20?16:n===21?14:n===22?6:n===23?10:n===24?11:24}function p5t(n){return n}function kAe(n){return{kind:"markdown",value:n.value}}function TL(n){return{value:n.value}}function g5t(n){return{range:Er(n.range),text:n.newText}}function m5t(n){return"range"in n?Er(n.range):"insert"in n&&"replace"in n?{insert:Er(n.insert),replace:Er(n.replace)}:Er(n)}function IAe(n,e){var t,i,s,r,o;const a=(t=e.itemDefaults)!==null&&t!==void 0?t:{},l=(i=n.textEdit)!==null&&i!==void 0?i:a.editRange,c=(s=n.commitCharacters)!==null&&s!==void 0?s:a.commitCharacters,u=(r=n.insertTextFormat)!==null&&r!==void 0?r:a.insertTextFormat,h=(o=n.insertTextMode)!==null&&o!==void 0?o:a.insertTextMode;let d=n.insertText,f;l?(f=m5t(l),"newText"in l&&(d=l.newText)):f={...e.range};const p={insertText:d??n.label,kind:n.kind==null?18:f5t(n.kind),label:n.label,range:f};return n.additionalTextEdits&&(p.additionalTextEdits=n.additionalTextEdits.map(g5t)),n.command&&(p.command=Gne(n.command)),c&&(p.commitCharacters=c),n.detail!=null&&(p.detail=n.detail),typeof n.documentation=="string"?p.documentation=n.documentation:n.documentation&&(p.documentation=TL(n.documentation)),n.filterText!=null&&(p.filterText=n.filterText),u===2?p.insertTextRules=4:h===2&&(p.insertTextRules=1),n.preselect!=null&&(p.preselect=n.preselect),n.sortText!=null&&(p.sortText=n.sortText),n.tags&&(p.tags=n.tags.map(p5t)),p}function _5t(n,e){return{incomplete:!!n.isIncomplete,suggestions:n.items.map(t=>IAe(t,{range:e.range,itemDefaults:n.itemDefaults}))}}function TAe(n){return{range:Er(n.range),uri:yf.parse(n.uri)}}function v5t(n){return n===2?1:n===3?2:0}function b5t(n){const e={range:Er(n.range)};return n.kind!=null&&(e.kind=v5t(n.kind)),e}function y5t(n){return n===1?0:n===2?1:n===3?2:n===4?3:n===5?4:n===6?5:n===7?6:n===8?7:n===9?8:n===10?9:n===11?10:n===12?11:n===13?12:n===14?13:n===15?14:n===16?15:n===17?16:n===18?17:n===19?18:n===20?19:n===21?20:n===22?21:n===23?22:n===24?23:n===25?24:25}function w5t(n){return n}function DAe(n){var e,t,i;const s={detail:(e=n.detail)!==null&&e!==void 0?e:"",kind:y5t(n.kind),name:n.name,range:Er(n.range),selectionRange:Er(n.selectionRange),tags:(i=(t=n.tags)===null||t===void 0?void 0:t.map(w5t))!==null&&i!==void 0?i:[]};return n.children&&(s.children=n.children.map(DAe)),s}function C5t(n){const e={start:n.startLine+1,end:n.endLine+1};return n.kind!=null&&(e.kind={value:n.kind}),e}function PV(n){return{insertSpaces:n.insertSpaces,tabSize:n.tabSize}}function hme(n){return typeof n=="string"?{value:n}:{value:`\`\`\`${n.language} +${n.value} +\`\`\``}}function S5t(n){return typeof n=="string"||"language"in n?[hme(n)]:Array.isArray(n)?n.map(hme):[TL(n)]}function x5t(n){const e={contents:S5t(n.contents)};return n.range&&(e.range=Er(n.range)),e}function L5t(n){const e={label:n.value};return n.command&&(e.command=Gne(n.command)),n.location&&(e.location=TAe(n.location)),typeof n.tooltip=="string"?e.tooltip=n.tooltip:n.tooltip&&(e.tooltip=TL(n.tooltip)),e}function _a(n){return{character:n.column-1,line:n.lineNumber-1}}function E5t(n){return{lineNumber:n.line+1,column:n.character+1}}function dme(n){const e={label:typeof n.label=="string"?n.label:n.label.map(L5t),position:E5t(n.position)};return n.kind!=null&&(e.kind=n.kind),n.paddingLeft!=null&&(e.paddingLeft=n.paddingLeft),n.paddingRight!=null&&(e.paddingRight=n.paddingRight),n.textEdits&&(e.textEdits=n.textEdits.map(D1)),typeof n.tooltip=="string"?e.tooltip=n.tooltip:n.tooltip&&(e.tooltip=TL(n.tooltip)),e}function fme(n){const e={range:Er(n.range)};return n.tooltip!=null&&(e.tooltip=n.tooltip),n.target!=null&&(e.url=yf.parse(n.target)),e}function k5t(n){const e={ranges:n.ranges.map(Er)};return n.wordPattern!=null&&(e.wordPattern=new RegExp(n.wordPattern)),e}function gR(n){const e={range:Er(n.targetRange),targetSelectionRange:Er(n.targetSelectionRange),uri:yf.parse(n.targetUri)};return n.originSelectionRange&&(e.originSelectionRange=Er(n.originSelectionRange)),e}function I5t(n){const e={label:n.label};return typeof n.documentation=="string"?e.documentation=n.documentation:n.documentation&&(e.documentation=kAe(n.documentation)),e}function T5t(n){const e={label:n.label};return typeof n.documentation=="string"?e.documentation=n.documentation:n.documentation&&(e.documentation=TL(n.documentation)),e}function D5t(n){const e=[];let t=n;for(;t;)e.push({range:Er(t.range)}),t=t.parent;return e}function pme(n){const e={data:Uint32Array.from(n.data)};return n.resultId!=null&&(e.resultId=n.resultId),e}function N5t(n){const e={label:n.label,parameters:n.parameters.map(I5t)};return typeof n.documentation=="string"?e.documentation=n.documentation:n.documentation&&(e.documentation=kAe(n.documentation)),n.activeParameter!=null&&(e.activeParameter=n.activeParameter),e}function A5t(n){var e,t;const i={label:n.label,parameters:(t=(e=n.parameters)===null||e===void 0?void 0:e.map(T5t))!==null&&t!==void 0?t:[]};return typeof n.documentation=="string"?i.documentation=n.documentation:n.documentation&&(i.documentation=TL(n.documentation)),n.activeParameter!=null&&(i.activeParameter=n.activeParameter),i}function P5t(n){return{activeParameter:n.activeParameter,activeSignature:n.activeSignature,signatures:n.signatures.map(N5t)}}function R5t(n){var e,t;return{activeParameter:(e=n.activeParameter)!==null&&e!==void 0?e:0,activeSignature:(t=n.activeSignature)!==null&&t!==void 0?t:0,signatures:n.signatures.map(A5t)}}function M5t(n){const e={isRetrigger:n.isRetrigger,triggerKind:n.triggerKind};return n.triggerCharacter!=null&&(e.triggerCharacter=n.triggerCharacter),n.activeSignatureHelp&&(e.activeSignatureHelp=P5t(n.activeSignatureHelp)),e}const NAe=new WeakMap,gme=new WeakMap;function An(n,e){const t=(gme.get(e)??0)+1;return gme.set(e,t),n.onCancellationRequested(()=>e.cancelRequest(t)),t}function O5t(n,e,t,i,s){const r=[],o=new Map;r.push(s.onDidCreateModel(u=>l(u)),s.onWillDisposeModel(a),s.onDidChangeModelLanguage(u=>{a(u.model),l(u.model)}),{dispose:()=>{for(const u of s.getModels())a(u)}});for(const u of s.getModels())l(u);return{dispose:()=>r.forEach(u=>u.dispose())};function a(u){var d;s.setModelMarkers(u,t,[]);const h=u.uri.toString();o.has(h)&&((d=o.get(h))==null||d.dispose(),o.delete(h))}function l(u){var p,g;if(!e.includes(((p=u.getLanguageId)==null?void 0:p.call(u))??((g=u.getModeId)==null?void 0:g.call(u))))return;let h;const d=u.onDidChangeContent(()=>{clearTimeout(h),h=setTimeout(()=>c(u),250)}),f=u.onDidChangeAttached(()=>{u.isAttachedToEditor()?c(u):s.setModelMarkers(u,t,[])});o.set(u.uri.toString(),{dispose:()=>{d.dispose(),f.dispose(),clearTimeout(h)}}),c(u)}async function c(u){if(u.isDisposed()||!u.isAttachedToEditor())return;const h=await n.withSyncedResources(i()),d=AAe(u),f=await h.getDiagnostics(An(d.token,h),u.uri);if(d.dispose(),d.token.isCancellationRequested)return;const p=f.map(g=>{const m=LAe(g);return NAe.set(m,g),m});s.setModelMarkers(u,t,p)}}function F5t(n,e,t,i){const s=[],r=new Map;let o;s.push(i.onDidCreateModel(u=>l(u)),i.onWillDisposeModel(a),i.onDidChangeModelLanguage(u=>{a(u.model),l(u.model)}),{dispose:()=>{for(const u of r.values())u.dispose();r.clear()}});for(const u of i.getModels())l(u);return{dispose:()=>s.forEach(u=>u.dispose())};function a(u){var h;r.has(u)&&((h=r.get(u))==null||h.dispose(),r.delete(u))}function l(u){var h,d;e.includes(((h=u.getLanguageId)==null?void 0:h.call(u))??((d=u.getModeId)==null?void 0:d.call(u)))&&r.set(u,u.onDidChangeContent(f=>{if(u.isDisposed()||!u.isAttachedToEditor()||f.changes.length===0||f.isUndoing||f.isRedoing)return;const p=f.changes[f.changes.length-1];c(u,p)}))}async function c(u,h){o&&(clearTimeout(o),o=void 0);const d=u.getVersionId();o=setTimeout(()=>{(async()=>{var _;if(u.getVersionId()!==d)return;const f=await n.withSyncedResources(t()),p=AAe(u),g=await f.getAutoInsertSnippet(An(p.token,f),u.uri,_a({lineNumber:h.range.startLineNumber,column:h.range.startColumn+h.text.length}),{text:h.text,rangeOffset:h.rangeOffset,rangeLength:h.rangeLength});if(p.dispose(),p.token.isCancellationRequested)return;const m=i.getEditors().find(b=>b.getModel()===u);m&&g&&u.getVersionId()===d&&(typeof g=="string"?(_=m==null?void 0:m.getContribution("snippetController2"))==null||_.insert(g):u.pushEditOperations([],[D1(g)],()=>[]))})(),o=void 0},100)}}function AAe(n){const e=n.getVersionId();let t;return{token:{get isCancellationRequested(){return n.getVersionId()!==e},onCancellationRequested(s){const r=n.onDidChangeContent(()=>{s(void 0),r.dispose(),t==null||t.delete(r)});return t??(t=new Set),t.add(r),{dispose(){r.dispose(),t==null||t.delete(r)}}}},dispose(){if(t){for(const s of t)s.dispose();t.clear()}}}}async function B5t(n,e){const t=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,o=new WeakMap,a=new WeakMap,l=await n.getProxy(),c=await l.getSemanticTokenLegend();return{triggerCharacters:await l.getTriggerCharacters(),autoFormatTriggerCharacters:await l.getAutoFormatTriggerCharacters(),signatureHelpTriggerCharacters:await l.getSignatureHelpTriggerCharacters(),signatureHelpRetriggerCharacters:await l.getSignatureHelpRetriggerCharacters(),getLegend(){return c},async provideDocumentSemanticTokens(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getSemanticTokens(An(d,f),u.uri,void 0,c);if(p)return pme(p)},async provideDocumentRangeSemanticTokens(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getSemanticTokens(An(d,f),u.uri,pR(h),c);if(p)return pme(p)},releaseDocumentSemanticTokens(){},async provideDocumentSymbols(u,h){const d=await n.withSyncedResources(e()),f=await d.getDocumentSymbols(An(h,d),u.uri);if(f)return f.map(DAe)},async provideDocumentHighlights(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getDocumentHighlights(An(d,f),u.uri,_a(h));if(p)return p.map(b5t)},async provideLinkedEditingRanges(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getLinkedEditingRanges(An(d,f),u.uri,_a(h));if(p)return k5t(p)},async provideDefinition(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getDefinition(An(d,f),u.uri,_a(h));if(p)return p.map(gR)},async provideImplementation(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getImplementations(An(d,f),u.uri,_a(h));if(p)return p.map(gR)},async provideTypeDefinition(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getTypeDefinition(An(d,f),u.uri,_a(h));if(p)return p.map(gR)},async provideCodeLenses(u,h){const d=await n.withSyncedResources(e()),f=await d.getCodeLenses(An(h,d),u.uri);if(f){const p=f.map(ume);for(let g=0;g<p.length;g++)i.set(p[g],f[g]);return{lenses:p,dispose:()=>{}}}},async resolveCodeLens(u,h,d){let f=i.get(h);if(f){const p=await n.withSyncedResources(e());f=await p.resolveCodeLens(An(d,p),f),f&&(h=ume(f),i.set(h,f))}return h},async provideCodeActions(u,h,d,f){const p=[];for(const _ of d.markers){const b=NAe.get(_);b&&p.push(b)}const g=await n.withSyncedResources(e()),m=await g.getCodeActions(An(f,g),u.uri,pR(h),{diagnostics:p,only:d.only?[d.only]:void 0});if(m){const _=m.map(cme);for(let b=0;b<_.length;b++)s.set(_[b],m[b]);return{actions:_,dispose:()=>{}}}},async resolveCodeAction(u,h){let d=s.get(u);if(d){const f=await n.withSyncedResources(e());d=await f.resolveCodeAction(An(h,f),d),d&&(u=cme(d),s.set(u,d))}return u},async provideDocumentFormattingEdits(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getDocumentFormattingEdits(An(d,f),u.uri,PV(h),void 0,void 0);if(p)return p.map(D1)},async provideDocumentRangeFormattingEdits(u,h,d,f){const p=await n.withSyncedResources(e()),g=await p.getDocumentFormattingEdits(An(f,p),u.uri,PV(d),pR(h),void 0);if(g)return g.map(D1)},async provideOnTypeFormattingEdits(u,h,d,f,p){const g=await n.withSyncedResources(e()),m=await g.getDocumentFormattingEdits(An(p,g),u.uri,PV(f),void 0,{ch:d,position:_a(h)});if(m)return m.map(D1)},async provideLinks(u,h){const d=await n.withSyncedResources(e()),f=await d.getDocumentLinks(An(h,d),u.uri);if(f)return{links:f.map(p=>{const g=fme(p);return o.set(g,p),g})}},async resolveLink(u,h){let d=o.get(u);return d?(d=await l.resolveDocumentLink(An(h,l),d),fme(d)):u},async provideCompletionItems(u,h,d,f){const p=await n.withSyncedResources(e()),g=await p.getCompletionItems(An(f,p),u.uri,_a(h),d5t(d)),m=u.getWordUntilPosition(h),_=_5t(g,{range:{startColumn:m.startColumn,startLineNumber:h.lineNumber,endColumn:h.column,endLineNumber:h.lineNumber}});for(let b=0;b<g.items.length;b++)t.set(_.suggestions[b],g.items[b]);return _},async resolveCompletionItem(u,h){let d=t.get(u);if(d){const f=await n.withSyncedResources(e());d=await f.resolveCompletionItem(An(h,f),d),u=IAe(d,{range:"replace"in u.range?u.range.replace:u.range}),t.set(u,d)}return u},async provideDocumentColors(u,h){const d=await n.withSyncedResources(e()),f=await d.getDocumentColors(An(h,d),u.uri);if(f)return f.map(c5t)},async provideColorPresentations(u,h,d){const f=await n.withSyncedResources(e()),p=r.get(h);if(p){const g=await f.getColorPresentations(An(d,f),u.uri,p.color,{start:_a(u.getPositionAt(0)),end:_a(u.getPositionAt(u.getValueLength()))});if(g)return g.map(u5t)}},async provideFoldingRanges(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getFoldingRanges(An(d,f),u.uri);if(p)return p.map(C5t)},async provideDeclaration(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getDefinition(An(d,f),u.uri,_a(h));if(p)return p.map(gR)},async provideSelectionRanges(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getSelectionRanges(An(d,f),u.uri,h.map(_a));return p==null?void 0:p.map(D5t)},async provideSignatureHelp(u,h,d,f){const p=await n.withSyncedResources(e()),g=await p.getSignatureHelp(An(d,p),u.uri,_a(h),M5t(f));if(g)return{value:R5t(g),dispose:()=>{}}},async provideRenameEdits(u,h,d,f){const p=await n.withSyncedResources(e()),g=await p.getRenameEdits(An(f,p),u.uri,_a(h),d);if(g)return EAe(g)},async provideReferences(u,h,d,f){const p=await n.withSyncedResources(e()),g=await p.getReferences(An(f,p),u.uri,_a(h),d);if(g)return g.map(TAe)},async provideInlayHints(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getInlayHints(An(d,f),u.uri,pR(h));if(p)return{hints:p.map(g=>{const m=dme(g);return a.set(m,g),m}),dispose:()=>{}}},async resolveInlayHint(u,h){const d=await n.withSyncedResources(e()),f=a.get(u);if(f){const p=await d.resolveInlayHint(An(h,d),f);return dme(p)}return u},async provideHover(u,h,d){const f=await n.withSyncedResources(e()),p=await f.getHover(An(d,f),u.uri,_a(h));if(p)return x5t(p)}}}async function W5t(n,e,t,i){const s=await B5t(n,t),r=[i.registerHoverProvider(e,s),i.registerReferenceProvider(e,s),i.registerRenameProvider(e,s),i.registerSignatureHelpProvider(e,s),i.registerDocumentSymbolProvider(e,s),i.registerDocumentHighlightProvider(e,s),i.registerLinkedEditingRangeProvider(e,s),i.registerDefinitionProvider(e,s),i.registerImplementationProvider(e,s),i.registerTypeDefinitionProvider(e,s),i.registerCodeLensProvider(e,s),i.registerCodeActionProvider(e,s),i.registerDocumentFormattingEditProvider(e,s),i.registerDocumentRangeFormattingEditProvider(e,s),i.registerOnTypeFormattingEditProvider(e,s),i.registerLinkProvider(e,s),i.registerCompletionItemProvider(e,s),i.registerColorProvider(e,s),i.registerFoldingRangeProvider(e,s),i.registerDeclarationProvider(e,s),i.registerSelectionRangeProvider(e,s),i.registerInlayHintsProvider(e,s),i.registerDocumentSemanticTokensProvider(e,s),i.registerDocumentRangeSemanticTokensProvider(e,s)];return{dispose:()=>r.forEach(o=>o.dispose())}}function V5t(n){return new Worker(""+new URL("/assets/editor.worker-BKc5bLP3-BO8eobv4.js",import.meta.url).href,{type:"module",name:n==null?void 0:n.name})}function Xne(n,e,t){const i=Of.getModel(n);return i?(i.setValue(t),i):Of.createModel(t,e,n)}function H5t(n){return new Worker(""+new URL("/assets/vue.worker-BFJTGBis-BLY2_Qu9.js",import.meta.url).href,{type:"module",name:n==null?void 0:n.name})}const $5t={comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"'",close:"'"},{open:'"',close:'"'},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}},indentationRules:{increaseIndentPattern:new RegExp("(^.*\\{[^}]*$)"),decreaseIndentPattern:new RegExp("^\\s*\\}")},wordPattern:new RegExp("(#?-?\\d*\\.\\d\\w*%?)|(::?[\\w-]*(?=[^,{;]*[,{]))|(([@#.!])?[\\w-?]+%?|[@#!.])")},z5t={comments:{blockComment:["<!--","-->"]},brackets:[["<!--","-->"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"<!--",close:"-->",notIn:["comment","string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],autoCloseBefore:`;:.,=}])><\`'" + `,surroundingPairs:[{open:"'",close:"'"},{open:'"',close:'"'},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{markers:{start:/^\s*<!--\s*#region\b.*-->/,end:/^\s*<!--\s*#endregion\b.*-->/}},wordPattern:/(-?\d*\.\d\w*)|([^\`\@\~\!\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/,onEnterRules:[{beforeText:/<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr|script|style))([_:\w][_:\w-.\d]*)(?:(?:[^'"/>]|"[^"]*"|'[^']*')*?(?!\/)>)[^<]*$/i,afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>/i,action:{indentAction:xs.IndentAction.IndentOutdent}},{beforeText:/<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr|script|style))([_:\w][_:\w-.\d]*)(?:(?:[^'"/>]|"[^"]*"|'[^']*')*?(?!\/)>)[^<]*$/i,action:{indentAction:xs.IndentAction.Indent}}],indentationRules:{increaseIndentPattern:/<(?!\?|(?:area|base|br|col|frame|hr|html|img|input|keygen|link|menuitem|meta|param|source|track|wbr|script|style)\b|[^>]*\/>)([-_\.A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!\s*\()(?!.*<\/\1>)|<!--(?!.*-->)|\{[^}"']*$/i,decreaseIndentPattern:/^\s*(<\/(?!html)[-_\.A-Za-z0-9]+\b[^>]*>|-->|\})/}},U5t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["${","}"],["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"'",close:"'"},{open:'"',close:'"'},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"`",close:"`"}],autoCloseBefore:";:.,=}])>` \n ",folding:{markers:{start:/^\s*\/\/\s*#?region\b/,end:/^\s*\/\/\s*#?endregion\b/}},wordPattern:/(-?\d*\.\d\w*)|([^\`\~\@\!\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/,indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]].*$/,increaseIndentPattern:/^((?!\/\/).)*(\{([^}"'`/]*|(\t|[ ])*\/\/.*)|\([^)"'`/]*|\[[^\]"'`/]*)$/,unIndentedLinePattern:/^(\t|[ ])*[ ]\*[^/]*\*\/\s*$|^(\t|[ ])*[ ]\*\/\s*$|^(\t|[ ])*[ ]\*([ ]([^\*]|\*(?!\/))*)?$/},onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:xs.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:xs.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|[ ])*[ ]\*([ ]([^\*]|\*(?!\/))*)?$/,previousLineText:/(?=^(\s*(\/\*\*|\*)).*)(?=(?!(\s*\*\/)))/,action:{indentAction:xs.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|[ ])*[ ]\*\/\s*$/,action:{indentAction:xs.IndentAction.None,removeText:1}},{beforeText:/^(\t|[ ])*[ ]\*[^/]*\*\/\s*$/,action:{indentAction:xs.IndentAction.None,removeText:1}},{beforeText:/^\s*(\bcase\s.+:|\bdefault:)$/,afterText:/^(?!\s*(\bcase\b|\bdefault\b))/,action:{indentAction:xs.IndentAction.Indent}},{previousLineText:/^\s*(((else ?)?if|for|while)\s*\(.*\)\s*|else\s*)$/,beforeText:/^\s+([^{i\s]|i(?!f\b))/,action:{indentAction:xs.IndentAction.Outdent}}]},j5t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["${","}"],["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"'",close:"'"},{open:'"',close:'"'},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"`",close:"`"}],colorizedBracketPairs:[["(",")"],["[","]"],["{","}"],["<",">"]],autoCloseBefore:";:.,=}])>` \n ",folding:{markers:{start:/^\s*\/\/\s*#?region\b/,end:/^\s*\/\/\s*#?endregion\b/}},wordPattern:/(-?\d*\.\d\w*)|([^\`\~\@\!\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/,indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]].*$/,increaseIndentPattern:/^((?!\/\/).)*(\{([^}"'`/]*|(\t|[ ])*\/\/.*)|\([^)"'`/]*|\[[^\]"'`/]*)$/,unIndentedLinePattern:/^(\t|[ ])*[ ]\*[^/]*\*\/\s*$|^(\t|[ ])*[ ]\*\/\s*$|^(\t|[ ])*[ ]\*([ ]([^\*]|\*(?!\/))*)?$/},onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:xs.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:xs.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|[ ])*[ ]\*([ ]([^\*]|\*(?!\/))*)?$/,previousLineText:/(?=^(\s*(\/\*\*|\*)).*)(?=(?!(\s*\*\/)))/,action:{indentAction:xs.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|[ ])*[ ]\*\/\s*$/,action:{indentAction:xs.IndentAction.None,removeText:1}},{beforeText:/^(\t|[ ])*[ ]\*[^/]*\*\/\s*$/,action:{indentAction:xs.IndentAction.None,removeText:1}},{beforeText:/^\s*(\bcase\s.+:|\bdefault:)$/,afterText:/^(?!\s*(\bcase\b|\bdefault\b))/,action:{indentAction:xs.IndentAction.Indent}},{previousLineText:/^\s*(((else ?)?if|for|while)\s*\(.*\)\s*|else\s*)$/,beforeText:/^\s+([^{i\s]|i(?!f\b))/,action:{indentAction:xs.IndentAction.Outdent}}]};let mme=!1;function q5t(n){mme||(X5t(n),g0(()=>{for(const e in n.files){const t=n.files[e];Of.getModel(XD.parse(`file:///${e}`))||Xne(XD.parse(`file:///${e}`),t.language,t.code)}for(const e of Of.getModels()){const t=e.uri.toString();n.files[t.substring(8)]||t.startsWith("file:///node_modules")||t.startsWith("inmemory://")||e.dispose()}}),mme=!0)}class K5t{onFetchCdnFile(e,t){Xne(XD.parse(e),void 0,t)}}let mR;async function G5t(n){var l;mR==null||mR();let e={...n.dependencyVersion};n.vueVersion&&(e={...e,vue:n.vueVersion,"@vue/compiler-core":n.vueVersion,"@vue/compiler-dom":n.vueVersion,"@vue/compiler-sfc":n.vueVersion,"@vue/compiler-ssr":n.vueVersion,"@vue/reactivity":n.vueVersion,"@vue/runtime-core":n.vueVersion,"@vue/runtime-dom":n.vueVersion,"@vue/shared":n.vueVersion}),n.typescriptVersion&&(e={...e,typescript:n.typescriptVersion});const t=Of.createWebWorker({moduleId:"vs/language/vue/vueWorker",label:"vue",host:new K5t,createData:{tsconfig:((l=n.getTsConfig)==null?void 0:l.call(n))||{},dependencies:e}}),i=["vue","javascript","typescript"],s=()=>Object.keys(n.files).map(c=>XD.parse(`file:///${c}`)),{dispose:r}=O5t(t,i,"vue",s,Of),{dispose:o}=F5t(t,i,s,Of),{dispose:a}=await W5t(t,i,s,xs);mR=()=>{r(),o(),a()}}function X5t(n){self.MonacoEnvironment={async getWorker(t,i){if(i==="vue"){const s=new H5t;return await new Promise(o=>{s.addEventListener("message",a=>{a.data==="inited"&&o()}),s.postMessage({event:"init",tsVersion:n.typescriptVersion,tsLocale:n.locale})}),s}return new V5t}},xs.register({id:"vue",extensions:[".vue"]}),xs.register({id:"javascript",extensions:[".js"]}),xs.register({id:"typescript",extensions:[".ts"]}),xs.register({id:"css",extensions:[".css"]}),xs.setLanguageConfiguration("vue",z5t),xs.setLanguageConfiguration("javascript",U5t),xs.setLanguageConfiguration("typescript",j5t),xs.setLanguageConfiguration("css",$5t);let e;n.reloadLanguageTools=rbe(async()=>{(e||(e=G5t(n))).finally(()=>{e=void 0})},250),xs.onLanguage("vue",()=>n.reloadLanguageTools()),Of.registerEditorOpener({openCodeEditor(t,i){if(i.toString().startsWith("file:///node_modules"))return!0;const s=i.path;if(/^\//.test(s)){const r=s.replace("/","");if(r!==n.activeFile.filename)return n.setActive(r),!0}return!1}})}const Y5t=["onKeydown"],Z5t=Et({__name:"Monaco",props:{filename:{},value:{default:""},readonly:{type:Boolean,default:!1},mode:{default:void 0}},emits:["change"],setup(n,{emit:e}){const t=n,i=e,s=Nx("container"),r=je(!1),o=mg(),{store:a,autoSave:l,theme:c,editorOptions:u}=Si(b0);q5t(a.value);const h=Ee(()=>t.mode==="css"?"css":"javascript");let d;function f(){i("change",d.getValue())}return or(async()=>{const p=await S6(()=>import("./highlight-bGyCOtsB-CbqxkUwA.js"),[]).then(m=>m.registerHighlighter());if(r.value=!0,await Hs(),!s.value)throw new Error("Cannot find containerRef");d=Of.create(s.value,{...t.readonly?{value:t.value,language:h.value}:{model:null},fontSize:13,tabSize:2,theme:c.value==="light"?p.light:p.dark,readOnly:t.readonly,automaticLayout:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},inlineSuggest:{enabled:!1},fixedOverflowWidgets:!0,...u.value.monacoOptions}),o.value=d;const g=d._themeService._theme;g.semanticHighlighting=!0,g.getTokenStyleMetadata=(m,_,b)=>{const w=_.includes("readonly");switch(m){case"function":case"method":return{foreground:12};case"class":return{foreground:11};case"variable":case"property":return{foreground:w?19:9};default:return{foreground:0}}},Pt(()=>t.value,m=>{d.getValue()!==m&&d.setValue(m||"")},{immediate:!0}),Pt(h,m=>Of.setModelLanguage(d.getModel(),m)),t.readonly||Pt(()=>t.filename,(m,_)=>{if(!d)return;const b=a.value.files[t.filename];if(!b)return null;const w=Xne(XD.parse(`file:///${t.filename}`),b.language,b.code),C=_?a.value.files[_]:null;C&&(C.editorViewState=d.saveViewState()),d.setModel(w),b.editorViewState&&(d.restoreViewState(b.editorViewState),d.focus())},{immediate:!0}),d.addCommand(i5t.CtrlCmd|t5t.KeyS,()=>{}),Pt(l,m=>{if(m){const _=d.onDidChangeModelContent(f);Yme(()=>_.dispose())}},{immediate:!0}),Pt(c,m=>{d.updateOptions({theme:m==="light"?p.light:p.dark})})}),Fa(()=>{var p;(p=o.value)==null||p.dispose()}),(p,g)=>(Qe(),St("div",{ref:"container",class:"editor",onKeydown:[$p(wr(f,["ctrl","prevent"]),["s"]),$p(wr(f,["meta","prevent"]),["s"])]},null,40,Y5t))}}),Q5t=Et({editorType:"monaco",__name:"MonacoEditor",props:{value:{},filename:{},readonly:{type:Boolean},mode:{}},emits:["change"],setup(n,{emit:e}){const t=e,i=s=>{t("change",s)};return(s,r)=>(Qe(),Mi(Z5t,{filename:s.filename,value:s.value,readonly:s.readonly,mode:s.mode,onChange:i},null,8,["filename","value","readonly","mode"]))}});function J5t(n){return btoa(unescape(encodeURIComponent(n)))}function e6t(n){return decodeURIComponent(escape(atob(n)))}const t6t=`import ElementPlus from 'element-plus' +import { getCurrentInstance } from 'vue' + +let installed = false +await loadStyle() + +export function setupElementPlus() { + if (installed) return + const instance = getCurrentInstance() + instance.appContext.app.use(ElementPlus) + installed = true +} + +export function loadStyle() { + const styles = ['#STYLE#', '#DARKSTYLE#'].map((style) => { + return new Promise((resolve, reject) => { + const link = document.createElement('link') + link.rel = 'stylesheet' + link.href = style + link.addEventListener('load', resolve) + link.addEventListener('error', reject) + document.body.append(link) + }) + }) + return Promise.allSettled(styles) +} +`,i6t=`<script setup> +import App from './App.vue' +import { setupElementPlus } from './element-plus.js' +setupElementPlus() +<\/script> + +<template> + <App /> +</template> +`,n6t=`{ + "compilerOptions": { + "target": "ESNext", + "jsx": "preserve", + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["element-plus/global.d.ts"], + "allowImportingTsExtensions": true, + "allowJs": true, + "checkJs": true + }, + "vueCompilerOptions": { + "target": 3.3 + } +} +`,s6t=`<script setup lang="ts"> +import { ElementPlus } from '@element-plus/icons-vue' +import { version as epVersion } from 'element-plus' +import { ref, version as vueVersion } from 'vue' + +const msg = ref('Hello World!') +<\/script> + +<template> + <h1>{{ msg }}</h1> + <el-input v-model="msg" /> + + <p> + <el-icon color="var(--el-color-primary)"><ElementPlus /></el-icon> + Element Plus {{ epVersion }} + Vue {{ vueVersion }} + </p> +</template> +`,_me="src/PlaygroundMain.vue",RV="src/App.vue",Sw="src/element-plus.js",r6t="src/import_map.json",_R="import-map.json",NE="tsconfig.json",o6t=n=>{var w,C;const e=n.serializedState?p(n.serializedState):void 0,t=new URLSearchParams(location.search).get("pr")||((C=(w=e==null?void 0:e._o)==null?void 0:w.styleSource)==null?void 0:C.split("-",2)[1]),i=ia({vue:"latest",elementPlus:t?"preview":"latest",typescript:"latest"}),s=t?{showHidden:!0,styleSource:`https://preview-${t}-element-plus.surge.sh/bundle/dist/index.css`}:{},r=!s.showHidden,[o,a]=$ve(!1),l=Ee(()=>{let S=JHe(i,o.value);return t&&(S=JO(S,{imports:{"element-plus":`https://preview-${t}-element-plus.surge.sh/bundle/dist/index.full.min.mjs`,"element-plus/":"unsupported"}})),S}),c=Yg(ia({files:g(),mainFile:_me,activeFilename:RV,vueVersion:Ee(()=>i.vue),typescriptVersion:i.typescript,builtinImportMap:l,template:{welcomeSFC:i6t},sfcOptions:{script:{propsDestructure:!0}}})),u=gxe(c);u.files[Sw].hidden=r,u.files[_me].hidden=r,m(i.vue).then(()=>{var S;(S=n.initialized)==null||S.call(n)}),Pt(()=>i.elementPlus,S=>{u.files[Sw].code=h(S,s.styleSource).trim(),tb(u,u.files[Sw]).then(x=>u.errors=x)}),Pt(l,S=>{const x=JSON.parse(u.files[_R].code);u.files[_R].code=JSON.stringify(JO(x,S),void 0,2)},{deep:!0});function h(S,x){const k=x?x.replace("#VERSION#",S):gZ(o.value?"@element-plus/nightly":"element-plus",S,"/dist/index.css"),L=k.replace("/dist/index.css","/theme-chalk/dark/css-vars.css");return t6t.replace("#STYLE#",k).replace("#DARKSTYLE#",L)}function d(){g0(()=>{tb(u,u.activeFile).then(S=>u.errors=S)});for(const[S,x]of Object.entries(u.files))S!==u.activeFilename&&tb(u,x).then(k=>u.errors.push(...k));Pt(()=>{var S;return[(S=u.files[NE])==null?void 0:S.code,u.typescriptVersion,u.locale,u.dependencyVersion,u.vueVersion]},MHe(()=>{var S;return(S=u.reloadLanguageTools)==null?void 0:S.call(u)},300),{deep:!0})}function f(){const S={...u.getFiles()};return S._o=s,J5t(JSON.stringify(S))}function p(S){return JSON.parse(e6t(S))}function g(){const S=Object.create(null);if(e)for(let[x,k]of Object.entries(PHe(e,["_o"])))![_R,NE].includes(x)&&!x.startsWith("src/")&&(x=`src/${x}`),x===r6t&&(x=_R),S[x]=new t1(x,k);else S[RV]=new t1(RV,s6t);return S[Sw]||(S[Sw]=new t1(Sw,h(i.elementPlus,s.styleSource))),S[NE]||(S[NE]=new t1(NE,n6t)),S}async function m(S){u.compiler=await import(QHe(S)),i.vue=S}async function _(S,x){switch(S){case"vue":await m(x);break;case"elementPlus":i.elementPlus=x;break;case"typescript":u.typescriptVersion=x;break}}return Object.assign(u,{versions:i,pr:t,setVersion:_,toggleNightly:a,serialize:f,init:d}),u},a6t={key:0,antialiased:""},l6t={key:1,"h-100vh":""},vme="auto-save-state",c6t=Et({__name:"App",setup(n){const e=je(!0),t=je();function i(){return JSON.parse(localStorage.getItem(vme)||"true")}function s(d){localStorage.setItem(vme,JSON.stringify(d))}const r=je(i()),o={headHTML:` + <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime"><\/script> + <script> + window.__unocss = { + rules: [], + presets: [], + } + <\/script> + `},a=Kve();new URLSearchParams(location.search).get("theme")==="dark"&&(a.value=!0);const c=o6t({serializedState:location.hash.slice(1),initialized:()=>{e.value=!1}});console.log("Store:",c);const u=d=>{if((d.ctrlKey||d.metaKey)&&d.code==="KeyS"){d.preventDefault();return}};g0(()=>history.replaceState({},"",`${location.origin}${location.pathname}#${c.serialize()}`));const h=()=>{var d;(d=t.value)==null||d.reload()};return Pt(r,s),(d,f)=>{const p=Xat,g=S7e;return ae(e)?$r((Qe(),St("div",l6t,null,512)),[[g,{text:"Loading..."}]]):(Qe(),St("div",a6t,[Kt(p,{store:ae(c),onRefresh:h},null,8,["store"]),Kt(ae($at),{modelValue:ae(r),"onUpdate:modelValue":f[0]||(f[0]=m=>jn(r)?r.value=m:null),ref_key:"replRef",ref:t,theme:ae(a)?"dark":"light","preview-theme":!0,store:ae(c),editor:ae(Q5t),"preview-options":o,"clear-console":!1,onKeydown:u},null,8,["modelValue","theme","store","editor"])]))}}});window.VUE_DEVTOOLS_CONFIG={defaultSelectedAppId:"repl"};Q1e(c6t).mount("#app");export{u7t as C,h7t as E,t5t as K,m7t as M,d7t as P,f7t as R,p7t as S,v7t as T,XD as U,S6 as _,i5t as a,_7t as b,qh as c,g7t as d,Of as e,git as g,xs as l}; diff --git a/assets/jsx-_qJgh1vg-DcxuIahC.js b/assets/jsx-_qJgh1vg-DcxuIahC.js new file mode 100644 index 0000000..32af6e9 --- /dev/null +++ b/assets/jsx-_qJgh1vg-DcxuIahC.js @@ -0,0 +1,1029 @@ +import{c as Hc,g as fye}from"./index-Np15b6TM.js";var ra={},hk={exports:{}};(function(n,t){(function(a,i){i(t)})(Hc,function(a){var i=Object.freeze({__proto__:null,get _call(){return r0},get _getQueueContexts(){return j9},get _resyncKey(){return A9},get _resyncList(){return I9},get _resyncParent(){return P9},get _resyncRemoved(){return SK},get call(){return t0},get isDenylisted(){return w9},get popContext(){return C9},get pushContext(){return a0},get requeue(){return TK},get requeueComputedKeyAndDecorators(){return Rh},get resync(){return Uo},get setContext(){return EK},get setKey(){return xh},get setScope(){return bh},get setup(){return n0},get skip(){return bK},get skipKey(){return xK},get stop(){return RK},get visit(){return vK}}),d=Object.freeze({__proto__:null,get DEFAULT_EXTENSIONS(){return Z$e},get File(){return Oh},get buildExternalHelpers(){return LH},get createConfigItem(){return E$e},get createConfigItemAsync(){return R$e},get createConfigItemSync(){return DX},get getEnv(){return UH},get loadOptions(){return x$e},get loadOptionsAsync(){return b$e},get loadOptionsSync(){return fS},get loadPartialConfig(){return v$e},get loadPartialConfigAsync(){return g$e},get loadPartialConfigSync(){return NX},get parse(){return J$e},get parseAsync(){return Q$e},get parseSync(){return Y$e},get resolvePlugin(){return dMe},get resolvePreset(){return pMe},get template(){return xt},get tokTypes(){return LU},get transform(){return V$e},get transformAsync(){return W$e},get transformFile(){return G$e},get transformFileAsync(){return H$e},get transformFileSync(){return K$e},get transformFromAst(){return z$e},get transformFromAstAsync(){return X$e},get transformFromAstSync(){return tJ},get transformSync(){return eJ},get traverse(){return $a},get types(){return aE},get version(){return Uh}});function p(e,r){(r==null||r>e.length)&&(r=e.length);for(var s=0,l=Array(r);s<r;s++)l[s]=e[s];return l}function y(e){if(Array.isArray(e))return e}function b(e){if(Array.isArray(e))return p(e)}function v(e,r,s,l,u,o,c){try{var f=e[o](c),h=f.value}catch(m){return void s(m)}f.done?r(h):Promise.resolve(h).then(l,u)}function E(e){return function(){var r=this,s=arguments;return new Promise(function(l,u){var o=e.apply(r,s);function c(h){v(o,l,u,c,f,"next",h)}function f(h){v(o,l,u,c,f,"throw",h)}c(void 0)})}}function S(e,r,s){if(z())return Reflect.construct.apply(null,arguments);var l=[null];l.push.apply(l,r);var u=new(e.bind.apply(e,l));return s&&Ae(u,s.prototype),u}function A(e,r){for(var s=0;s<r.length;s++){var l=r[s];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(e,Qt(l.key),l)}}function _(e,r,s){return r&&A(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,r){var s=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(s)return(s=s.call(e)).next.bind(s);if(Array.isArray(e)||(s=mt(e))||r){s&&(e=s);var l=0;return function(){return l>=e.length?{done:!0}:{done:!1,value:e[l++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function q(e){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},q(e)}function M(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&Ae(e,r)}function W(e){try{return Function.toString.call(e).indexOf("[native code]")!==-1}catch{return typeof e=="function"}}function z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(z=function(){return!!e})()}function Y(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Z(e,r){var s=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(s!=null){var l,u,o,c,f=[],h=!0,m=!1;try{if(o=(s=s.call(e)).next,r===0){if(Object(s)!==s)return;h=!1}else for(;!(h=(l=o.call(s)).done)&&(f.push(l.value),f.length!==r);h=!0);}catch(g){m=!0,u=g}finally{try{if(!h&&s.return!=null&&(c=s.return(),Object(c)!==c))return}finally{if(m)throw u}}return f}}function ce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ge(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ge(e,r){if(e==null)return{};var s,l,u=Je(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)s=o[l],r.includes(s)||{}.propertyIsEnumerable.call(e,s)&&(u[s]=e[s])}return u}function Je(e,r){if(e==null)return{};var s={};for(var l in e)if({}.hasOwnProperty.call(e,l)){if(r.includes(l))continue;s[l]=e[l]}return s}function re(){re=function(){return r};var e,r={},s=Object.prototype,l=s.hasOwnProperty,u=Object.defineProperty||function(te,ae,J){te[ae]=J.value},o=typeof Symbol=="function"?Symbol:{},c=o.iterator||"@@iterator",f=o.asyncIterator||"@@asyncIterator",h=o.toStringTag||"@@toStringTag";function m(te,ae,J){return Object.defineProperty(te,ae,{value:J,enumerable:!0,configurable:!0,writable:!0}),te[ae]}try{m({},"")}catch{m=function(ae,J,xe){return ae[J]=xe}}function g(te,ae,J,xe){var de=ae&&ae.prototype instanceof O?ae:O,$e=Object.create(de.prototype),Ve=new oe(xe||[]);return u($e,"_invoke",{value:K(te,J,Ve)}),$e}function x(te,ae,J){try{return{type:"normal",arg:te.call(ae,J)}}catch(xe){return{type:"throw",arg:xe}}}r.wrap=g;var R="suspendedStart",w="suspendedYield",T="executing",I="completed",P={};function O(){}function j(){}function D(){}var k={};m(k,c,function(){return this});var B=Object.getPrototypeOf,F=B&&B(B(he([])));F&&F!==s&&l.call(F,c)&&(k=F);var L=D.prototype=O.prototype=Object.create(k);function V(te){["next","throw","return"].forEach(function(ae){m(te,ae,function(J){return this._invoke(ae,J)})})}function H(te,ae){function J(de,$e,Ve,Ie){var ke=x(te[de],te,$e);if(ke.type!=="throw"){var Le=ke.arg,Ze=Le.value;return Ze&&typeof Ze=="object"&&l.call(Ze,"__await")?ae.resolve(Ze.__await).then(function(at){J("next",at,Ve,Ie)},function(at){J("throw",at,Ve,Ie)}):ae.resolve(Ze).then(function(at){Le.value=at,Ve(Le)},function(at){return J("throw",at,Ve,Ie)})}Ie(ke.arg)}var xe;u(this,"_invoke",{value:function(de,$e){function Ve(){return new ae(function(Ie,ke){J(de,$e,Ie,ke)})}return xe=xe?xe.then(Ve,Ve):Ve()}})}function K(te,ae,J){var xe=R;return function(de,$e){if(xe===T)throw Error("Generator is already running");if(xe===I){if(de==="throw")throw $e;return{value:e,done:!0}}for(J.method=de,J.arg=$e;;){var Ve=J.delegate;if(Ve){var Ie=G(Ve,J);if(Ie){if(Ie===P)continue;return Ie}}if(J.method==="next")J.sent=J._sent=J.arg;else if(J.method==="throw"){if(xe===R)throw xe=I,J.arg;J.dispatchException(J.arg)}else J.method==="return"&&J.abrupt("return",J.arg);xe=T;var ke=x(te,ae,J);if(ke.type==="normal"){if(xe=J.done?I:w,ke.arg===P)continue;return{value:ke.arg,done:J.done}}ke.type==="throw"&&(xe=I,J.method="throw",J.arg=ke.arg)}}}function G(te,ae){var J=ae.method,xe=te.iterator[J];if(xe===e)return ae.delegate=null,J==="throw"&&te.iterator.return&&(ae.method="return",ae.arg=e,G(te,ae),ae.method==="throw")||J!=="return"&&(ae.method="throw",ae.arg=new TypeError("The iterator does not provide a '"+J+"' method")),P;var de=x(xe,te.iterator,ae.arg);if(de.type==="throw")return ae.method="throw",ae.arg=de.arg,ae.delegate=null,P;var $e=de.arg;return $e?$e.done?(ae[te.resultName]=$e.value,ae.next=te.nextLoc,ae.method!=="return"&&(ae.method="next",ae.arg=e),ae.delegate=null,P):$e:(ae.method="throw",ae.arg=new TypeError("iterator result is not an object"),ae.delegate=null,P)}function X(te){var ae={tryLoc:te[0]};1 in te&&(ae.catchLoc=te[1]),2 in te&&(ae.finallyLoc=te[2],ae.afterLoc=te[3]),this.tryEntries.push(ae)}function ue(te){var ae=te.completion||{};ae.type="normal",delete ae.arg,te.completion=ae}function oe(te){this.tryEntries=[{tryLoc:"root"}],te.forEach(X,this),this.reset(!0)}function he(te){if(te||te===""){var ae=te[c];if(ae)return ae.call(te);if(typeof te.next=="function")return te;if(!isNaN(te.length)){var J=-1,xe=function de(){for(;++J<te.length;)if(l.call(te,J))return de.value=te[J],de.done=!1,de;return de.value=e,de.done=!0,de};return xe.next=xe}}throw new TypeError(typeof te+" is not iterable")}return j.prototype=D,u(L,"constructor",{value:D,configurable:!0}),u(D,"constructor",{value:j,configurable:!0}),j.displayName=m(D,h,"GeneratorFunction"),r.isGeneratorFunction=function(te){var ae=typeof te=="function"&&te.constructor;return!!ae&&(ae===j||(ae.displayName||ae.name)==="GeneratorFunction")},r.mark=function(te){return Object.setPrototypeOf?Object.setPrototypeOf(te,D):(te.__proto__=D,m(te,h,"GeneratorFunction")),te.prototype=Object.create(L),te},r.awrap=function(te){return{__await:te}},V(H.prototype),m(H.prototype,f,function(){return this}),r.AsyncIterator=H,r.async=function(te,ae,J,xe,de){de===void 0&&(de=Promise);var $e=new H(g(te,ae,J,xe),de);return r.isGeneratorFunction(ae)?$e:$e.next().then(function(Ve){return Ve.done?Ve.value:$e.next()})},V(L),m(L,h,"Generator"),m(L,c,function(){return this}),m(L,"toString",function(){return"[object Generator]"}),r.keys=function(te){var ae=Object(te),J=[];for(var xe in ae)J.push(xe);return J.reverse(),function de(){for(;J.length;){var $e=J.pop();if($e in ae)return de.value=$e,de.done=!1,de}return de.done=!0,de}},r.values=he,oe.prototype={constructor:oe,reset:function(te){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(ue),!te)for(var ae in this)ae.charAt(0)==="t"&&l.call(this,ae)&&!isNaN(+ae.slice(1))&&(this[ae]=e)},stop:function(){this.done=!0;var te=this.tryEntries[0].completion;if(te.type==="throw")throw te.arg;return this.rval},dispatchException:function(te){if(this.done)throw te;var ae=this;function J(ke,Le){return $e.type="throw",$e.arg=te,ae.next=ke,Le&&(ae.method="next",ae.arg=e),!!Le}for(var xe=this.tryEntries.length-1;xe>=0;--xe){var de=this.tryEntries[xe],$e=de.completion;if(de.tryLoc==="root")return J("end");if(de.tryLoc<=this.prev){var Ve=l.call(de,"catchLoc"),Ie=l.call(de,"finallyLoc");if(Ve&&Ie){if(this.prev<de.catchLoc)return J(de.catchLoc,!0);if(this.prev<de.finallyLoc)return J(de.finallyLoc)}else if(Ve){if(this.prev<de.catchLoc)return J(de.catchLoc,!0)}else{if(!Ie)throw Error("try statement without catch or finally");if(this.prev<de.finallyLoc)return J(de.finallyLoc)}}}},abrupt:function(te,ae){for(var J=this.tryEntries.length-1;J>=0;--J){var xe=this.tryEntries[J];if(xe.tryLoc<=this.prev&&l.call(xe,"finallyLoc")&&this.prev<xe.finallyLoc){var de=xe;break}}de&&(te==="break"||te==="continue")&&de.tryLoc<=ae&&ae<=de.finallyLoc&&(de=null);var $e=de?de.completion:{};return $e.type=te,$e.arg=ae,de?(this.method="next",this.next=de.finallyLoc,P):this.complete($e)},complete:function(te,ae){if(te.type==="throw")throw te.arg;return te.type==="break"||te.type==="continue"?this.next=te.arg:te.type==="return"?(this.rval=this.arg=te.arg,this.method="return",this.next="end"):te.type==="normal"&&ae&&(this.next=ae),P},finish:function(te){for(var ae=this.tryEntries.length-1;ae>=0;--ae){var J=this.tryEntries[ae];if(J.finallyLoc===te)return this.complete(J.completion,J.afterLoc),ue(J),P}},catch:function(te){for(var ae=this.tryEntries.length-1;ae>=0;--ae){var J=this.tryEntries[ae];if(J.tryLoc===te){var xe=J.completion;if(xe.type==="throw"){var de=xe.arg;ue(J)}return de}}throw Error("illegal catch attempt")},delegateYield:function(te,ae,J){return this.delegate={iterator:he(te),resultName:ae,nextLoc:J},this.method==="next"&&(this.arg=e),P}},r}function Ae(e,r){return Ae=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(s,l){return s.__proto__=l,s},Ae(e,r)}function je(e,r){return y(e)||Z(e,r)||mt(e,r)||ce()}function se(e,r){return r||(r=e.slice(0)),e.raw=r,e}function fe(e){return b(e)||Y(e)||mt(e)||ge()}function kt(e,r){if(typeof e!="object"||!e)return e;var s=e[Symbol.toPrimitive];if(s!==void 0){var l=s.call(e,r);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Qt(e){var r=kt(e,"string");return typeof r=="symbol"?r:r+""}function mt(e,r){if(e){if(typeof e=="string")return p(e,r);var s={}.toString.call(e).slice(8,-1);return s==="Object"&&e.constructor&&(s=e.constructor.name),s==="Map"||s==="Set"?Array.from(e):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?p(e,r):void 0}}function Tt(e){var r=typeof Map=="function"?new Map:void 0;return Tt=function(s){if(s===null||!W(s))return s;if(typeof s!="function")throw new TypeError("Super expression must either be null or a function");if(r!==void 0){if(r.has(s))return r.get(s);r.set(s,l)}function l(){return S(s,arguments,q(this).constructor)}return l.prototype=Object.create(s.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),Ae(l,s)},Tt(e)}function ne(e,r){for(var s=Object.keys(r),l=0,u=s;l<u.length;l++){var o=u[l];if(e[o]!==r[o])return!1}return!0}var Zt=new Set;function pt(e,r,s){if(s===void 0&&(s=""),!Zt.has(e)){Zt.add(e);var l=bt(1,2),u=l.internal,o=l.trace;u||console.warn(s+"`"+e+"` has been deprecated, please migrate to `"+r+"`\n"+o)}}function bt(e,r){var s=Error.stackTraceLimit,l=Error.prepareStackTrace,u;if(Error.stackTraceLimit=1+e+r,Error.prepareStackTrace=function(c,f){u=f},new Error().stack,Error.stackTraceLimit=s,Error.prepareStackTrace=l,!u)return{internal:!1,trace:""};var o=u.slice(1+e,1+e+r);return{internal:/[\\/]@babel[\\/]/.test(o[1].getFileName()),trace:o.map(function(c){return" at "+c}).join(` +`)}}function ht(e,r){return!e||e.type!=="ArrayExpression"?!1:r==null||ne(e,r)}function Se(e,r){return!e||e.type!=="AssignmentExpression"?!1:r==null||ne(e,r)}function Me(e,r){return!e||e.type!=="BinaryExpression"?!1:r==null||ne(e,r)}function le(e,r){return!e||e.type!=="InterpreterDirective"?!1:r==null||ne(e,r)}function Oe(e,r){return!e||e.type!=="Directive"?!1:r==null||ne(e,r)}function Ke(e,r){return!e||e.type!=="DirectiveLiteral"?!1:r==null||ne(e,r)}function Ue(e,r){return!e||e.type!=="BlockStatement"?!1:r==null||ne(e,r)}function ot(e,r){return!e||e.type!=="BreakStatement"?!1:r==null||ne(e,r)}function ct(e,r){return!e||e.type!=="CallExpression"?!1:r==null||ne(e,r)}function Pt(e,r){return!e||e.type!=="CatchClause"?!1:r==null||ne(e,r)}function Ut(e,r){return!e||e.type!=="ConditionalExpression"?!1:r==null||ne(e,r)}function ur(e,r){return!e||e.type!=="ContinueStatement"?!1:r==null||ne(e,r)}function kr(e,r){return!e||e.type!=="DebuggerStatement"?!1:r==null||ne(e,r)}function ir(e,r){return!e||e.type!=="DoWhileStatement"?!1:r==null||ne(e,r)}function Jr(e,r){return!e||e.type!=="EmptyStatement"?!1:r==null||ne(e,r)}function Ea(e,r){return!e||e.type!=="ExpressionStatement"?!1:r==null||ne(e,r)}function Ua(e,r){return!e||e.type!=="File"?!1:r==null||ne(e,r)}function da(e,r){return!e||e.type!=="ForInStatement"?!1:r==null||ne(e,r)}function Rt(e,r){return!e||e.type!=="ForStatement"?!1:r==null||ne(e,r)}function ja(e,r){return!e||e.type!=="FunctionDeclaration"?!1:r==null||ne(e,r)}function va(e,r){return!e||e.type!=="FunctionExpression"?!1:r==null||ne(e,r)}function Dt(e,r){return!e||e.type!=="Identifier"?!1:r==null||ne(e,r)}function on(e,r){return!e||e.type!=="IfStatement"?!1:r==null||ne(e,r)}function rt(e,r){return!e||e.type!=="LabeledStatement"?!1:r==null||ne(e,r)}function nt(e,r){return!e||e.type!=="StringLiteral"?!1:r==null||ne(e,r)}function Yt(e,r){return!e||e.type!=="NumericLiteral"?!1:r==null||ne(e,r)}function or(e,r){return!e||e.type!=="NullLiteral"?!1:r==null||ne(e,r)}function pr(e,r){return!e||e.type!=="BooleanLiteral"?!1:r==null||ne(e,r)}function Hr(e,r){return!e||e.type!=="RegExpLiteral"?!1:r==null||ne(e,r)}function $r(e,r){return!e||e.type!=="LogicalExpression"?!1:r==null||ne(e,r)}function lr(e,r){return!e||e.type!=="MemberExpression"?!1:r==null||ne(e,r)}function Qr(e,r){return!e||e.type!=="NewExpression"?!1:r==null||ne(e,r)}function Va(e,r){return!e||e.type!=="Program"?!1:r==null||ne(e,r)}function Mt(e,r){return!e||e.type!=="ObjectExpression"?!1:r==null||ne(e,r)}function Kn(e,r){return!e||e.type!=="ObjectMethod"?!1:r==null||ne(e,r)}function Sn(e,r){return!e||e.type!=="ObjectProperty"?!1:r==null||ne(e,r)}function hn(e,r){return!e||e.type!=="RestElement"?!1:r==null||ne(e,r)}function As(e,r){return!e||e.type!=="ReturnStatement"?!1:r==null||ne(e,r)}function li(e,r){return!e||e.type!=="SequenceExpression"?!1:r==null||ne(e,r)}function uf(e,r){return!e||e.type!=="ParenthesizedExpression"?!1:r==null||ne(e,r)}function Cx(e,r){return!e||e.type!=="SwitchCase"?!1:r==null||ne(e,r)}function jx(e,r){return!e||e.type!=="SwitchStatement"?!1:r==null||ne(e,r)}function Xs(e,r){return!e||e.type!=="ThisExpression"?!1:r==null||ne(e,r)}function Ox(e,r){return!e||e.type!=="ThrowStatement"?!1:r==null||ne(e,r)}function _x(e,r){return!e||e.type!=="TryStatement"?!1:r==null||ne(e,r)}function Lu(e,r){return!e||e.type!=="UnaryExpression"?!1:r==null||ne(e,r)}function hd(e,r){return!e||e.type!=="UpdateExpression"?!1:r==null||ne(e,r)}function Ja(e,r){return!e||e.type!=="VariableDeclaration"?!1:r==null||ne(e,r)}function ag(e,r){return!e||e.type!=="VariableDeclarator"?!1:r==null||ne(e,r)}function Nx(e,r){return!e||e.type!=="WhileStatement"?!1:r==null||ne(e,r)}function kx(e,r){return!e||e.type!=="WithStatement"?!1:r==null||ne(e,r)}function Nl(e,r){return!e||e.type!=="AssignmentPattern"?!1:r==null||ne(e,r)}function ng(e,r){return!e||e.type!=="ArrayPattern"?!1:r==null||ne(e,r)}function md(e,r){return!e||e.type!=="ArrowFunctionExpression"?!1:r==null||ne(e,r)}function cf(e,r){return!e||e.type!=="ClassBody"?!1:r==null||ne(e,r)}function df(e,r){return!e||e.type!=="ClassExpression"?!1:r==null||ne(e,r)}function Io(e,r){return!e||e.type!=="ClassDeclaration"?!1:r==null||ne(e,r)}function yd(e,r){return!e||e.type!=="ExportAllDeclaration"?!1:r==null||ne(e,r)}function pf(e,r){return!e||e.type!=="ExportDefaultDeclaration"?!1:r==null||ne(e,r)}function gd(e,r){return!e||e.type!=="ExportNamedDeclaration"?!1:r==null||ne(e,r)}function ff(e,r){return!e||e.type!=="ExportSpecifier"?!1:r==null||ne(e,r)}function hf(e,r){return!e||e.type!=="ForOfStatement"?!1:r==null||ne(e,r)}function vd(e,r){return!e||e.type!=="ImportDeclaration"?!1:r==null||ne(e,r)}function bd(e,r){return!e||e.type!=="ImportDefaultSpecifier"?!1:r==null||ne(e,r)}function mf(e,r){return!e||e.type!=="ImportNamespaceSpecifier"?!1:r==null||ne(e,r)}function yf(e,r){return!e||e.type!=="ImportSpecifier"?!1:r==null||ne(e,r)}function Dx(e,r){return!e||e.type!=="ImportExpression"?!1:r==null||ne(e,r)}function gf(e,r){return!e||e.type!=="MetaProperty"?!1:r==null||ne(e,r)}function Mu(e,r){return!e||e.type!=="ClassMethod"?!1:r==null||ne(e,r)}function vf(e,r){return!e||e.type!=="ObjectPattern"?!1:r==null||ne(e,r)}function mn(e,r){return!e||e.type!=="SpreadElement"?!1:r==null||ne(e,r)}function Js(e,r){return!e||e.type!=="Super"?!1:r==null||ne(e,r)}function bf(e,r){return!e||e.type!=="TaggedTemplateExpression"?!1:r==null||ne(e,r)}function Lx(e,r){return!e||e.type!=="TemplateElement"?!1:r==null||ne(e,r)}function Di(e,r){return!e||e.type!=="TemplateLiteral"?!1:r==null||ne(e,r)}function xf(e,r){return!e||e.type!=="YieldExpression"?!1:r==null||ne(e,r)}function sg(e,r){return!e||e.type!=="AwaitExpression"?!1:r==null||ne(e,r)}function Rf(e,r){return!e||e.type!=="Import"?!1:r==null||ne(e,r)}function ig(e,r){return!e||e.type!=="BigIntLiteral"?!1:r==null||ne(e,r)}function Ef(e,r){return!e||e.type!=="ExportNamespaceSpecifier"?!1:r==null||ne(e,r)}function Co(e,r){return!e||e.type!=="OptionalMemberExpression"?!1:r==null||ne(e,r)}function Bu(e,r){return!e||e.type!=="OptionalCallExpression"?!1:r==null||ne(e,r)}function Qi(e,r){return!e||e.type!=="ClassProperty"?!1:r==null||ne(e,r)}function Mx(e,r){return!e||e.type!=="ClassAccessorProperty"?!1:r==null||ne(e,r)}function Sf(e,r){return!e||e.type!=="ClassPrivateProperty"?!1:r==null||ne(e,r)}function Bx(e,r){return!e||e.type!=="ClassPrivateMethod"?!1:r==null||ne(e,r)}function Li(e,r){return!e||e.type!=="PrivateName"?!1:r==null||ne(e,r)}function kl(e,r){return!e||e.type!=="StaticBlock"?!1:r==null||ne(e,r)}function Tf(e,r){return!e||e.type!=="AnyTypeAnnotation"?!1:r==null||ne(e,r)}function xd(e,r){return!e||e.type!=="ArrayTypeAnnotation"?!1:r==null||ne(e,r)}function og(e,r){return!e||e.type!=="BooleanTypeAnnotation"?!1:r==null||ne(e,r)}function Fx(e,r){return!e||e.type!=="BooleanLiteralTypeAnnotation"?!1:r==null||ne(e,r)}function $x(e,r){return!e||e.type!=="NullLiteralTypeAnnotation"?!1:r==null||ne(e,r)}function qx(e,r){return!e||e.type!=="ClassImplements"?!1:r==null||ne(e,r)}function Ux(e,r){return!e||e.type!=="DeclareClass"?!1:r==null||ne(e,r)}function Vx(e,r){return!e||e.type!=="DeclareFunction"?!1:r==null||ne(e,r)}function Wx(e,r){return!e||e.type!=="DeclareInterface"?!1:r==null||ne(e,r)}function Gx(e,r){return!e||e.type!=="DeclareModule"?!1:r==null||ne(e,r)}function Kx(e,r){return!e||e.type!=="DeclareModuleExports"?!1:r==null||ne(e,r)}function Hx(e,r){return!e||e.type!=="DeclareTypeAlias"?!1:r==null||ne(e,r)}function zx(e,r){return!e||e.type!=="DeclareOpaqueType"?!1:r==null||ne(e,r)}function Xx(e,r){return!e||e.type!=="DeclareVariable"?!1:r==null||ne(e,r)}function lg(e,r){return!e||e.type!=="DeclareExportDeclaration"?!1:r==null||ne(e,r)}function Jx(e,r){return!e||e.type!=="DeclareExportAllDeclaration"?!1:r==null||ne(e,r)}function Yx(e,r){return!e||e.type!=="DeclaredPredicate"?!1:r==null||ne(e,r)}function Qx(e,r){return!e||e.type!=="ExistsTypeAnnotation"?!1:r==null||ne(e,r)}function Zx(e,r){return!e||e.type!=="FunctionTypeAnnotation"?!1:r==null||ne(e,r)}function e4(e,r){return!e||e.type!=="FunctionTypeParam"?!1:r==null||ne(e,r)}function wf(e,r){return!e||e.type!=="GenericTypeAnnotation"?!1:r==null||ne(e,r)}function t4(e,r){return!e||e.type!=="InferredPredicate"?!1:r==null||ne(e,r)}function r4(e,r){return!e||e.type!=="InterfaceExtends"?!1:r==null||ne(e,r)}function a4(e,r){return!e||e.type!=="InterfaceDeclaration"?!1:r==null||ne(e,r)}function n4(e,r){return!e||e.type!=="InterfaceTypeAnnotation"?!1:r==null||ne(e,r)}function s4(e,r){return!e||e.type!=="IntersectionTypeAnnotation"?!1:r==null||ne(e,r)}function ug(e,r){return!e||e.type!=="MixedTypeAnnotation"?!1:r==null||ne(e,r)}function cg(e,r){return!e||e.type!=="EmptyTypeAnnotation"?!1:r==null||ne(e,r)}function i4(e,r){return!e||e.type!=="NullableTypeAnnotation"?!1:r==null||ne(e,r)}function o4(e,r){return!e||e.type!=="NumberLiteralTypeAnnotation"?!1:r==null||ne(e,r)}function dg(e,r){return!e||e.type!=="NumberTypeAnnotation"?!1:r==null||ne(e,r)}function l4(e,r){return!e||e.type!=="ObjectTypeAnnotation"?!1:r==null||ne(e,r)}function u4(e,r){return!e||e.type!=="ObjectTypeInternalSlot"?!1:r==null||ne(e,r)}function c4(e,r){return!e||e.type!=="ObjectTypeCallProperty"?!1:r==null||ne(e,r)}function d4(e,r){return!e||e.type!=="ObjectTypeIndexer"?!1:r==null||ne(e,r)}function p4(e,r){return!e||e.type!=="ObjectTypeProperty"?!1:r==null||ne(e,r)}function f4(e,r){return!e||e.type!=="ObjectTypeSpreadProperty"?!1:r==null||ne(e,r)}function h4(e,r){return!e||e.type!=="OpaqueType"?!1:r==null||ne(e,r)}function m4(e,r){return!e||e.type!=="QualifiedTypeIdentifier"?!1:r==null||ne(e,r)}function y4(e,r){return!e||e.type!=="StringLiteralTypeAnnotation"?!1:r==null||ne(e,r)}function pg(e,r){return!e||e.type!=="StringTypeAnnotation"?!1:r==null||ne(e,r)}function g4(e,r){return!e||e.type!=="SymbolTypeAnnotation"?!1:r==null||ne(e,r)}function v4(e,r){return!e||e.type!=="ThisTypeAnnotation"?!1:r==null||ne(e,r)}function fg(e,r){return!e||e.type!=="TupleTypeAnnotation"?!1:r==null||ne(e,r)}function b4(e,r){return!e||e.type!=="TypeofTypeAnnotation"?!1:r==null||ne(e,r)}function x4(e,r){return!e||e.type!=="TypeAlias"?!1:r==null||ne(e,r)}function hg(e,r){return!e||e.type!=="TypeAnnotation"?!1:r==null||ne(e,r)}function Pf(e,r){return!e||e.type!=="TypeCastExpression"?!1:r==null||ne(e,r)}function R4(e,r){return!e||e.type!=="TypeParameter"?!1:r==null||ne(e,r)}function E4(e,r){return!e||e.type!=="TypeParameterDeclaration"?!1:r==null||ne(e,r)}function S4(e,r){return!e||e.type!=="TypeParameterInstantiation"?!1:r==null||ne(e,r)}function Af(e,r){return!e||e.type!=="UnionTypeAnnotation"?!1:r==null||ne(e,r)}function T4(e,r){return!e||e.type!=="Variance"?!1:r==null||ne(e,r)}function mg(e,r){return!e||e.type!=="VoidTypeAnnotation"?!1:r==null||ne(e,r)}function w4(e,r){return!e||e.type!=="EnumDeclaration"?!1:r==null||ne(e,r)}function P4(e,r){return!e||e.type!=="EnumBooleanBody"?!1:r==null||ne(e,r)}function A4(e,r){return!e||e.type!=="EnumNumberBody"?!1:r==null||ne(e,r)}function I4(e,r){return!e||e.type!=="EnumStringBody"?!1:r==null||ne(e,r)}function C4(e,r){return!e||e.type!=="EnumSymbolBody"?!1:r==null||ne(e,r)}function j4(e,r){return!e||e.type!=="EnumBooleanMember"?!1:r==null||ne(e,r)}function O4(e,r){return!e||e.type!=="EnumNumberMember"?!1:r==null||ne(e,r)}function _4(e,r){return!e||e.type!=="EnumStringMember"?!1:r==null||ne(e,r)}function N4(e,r){return!e||e.type!=="EnumDefaultedMember"?!1:r==null||ne(e,r)}function yg(e,r){return!e||e.type!=="IndexedAccessType"?!1:r==null||ne(e,r)}function k4(e,r){return!e||e.type!=="OptionalIndexedAccessType"?!1:r==null||ne(e,r)}function Fu(e,r){return!e||e.type!=="JSXAttribute"?!1:r==null||ne(e,r)}function D4(e,r){return!e||e.type!=="JSXClosingElement"?!1:r==null||ne(e,r)}function gg(e,r){return!e||e.type!=="JSXElement"?!1:r==null||ne(e,r)}function vg(e,r){return!e||e.type!=="JSXEmptyExpression"?!1:r==null||ne(e,r)}function $u(e,r){return!e||e.type!=="JSXExpressionContainer"?!1:r==null||ne(e,r)}function L4(e,r){return!e||e.type!=="JSXSpreadChild"?!1:r==null||ne(e,r)}function Is(e,r){return!e||e.type!=="JSXIdentifier"?!1:r==null||ne(e,r)}function qu(e,r){return!e||e.type!=="JSXMemberExpression"?!1:r==null||ne(e,r)}function Rd(e,r){return!e||e.type!=="JSXNamespacedName"?!1:r==null||ne(e,r)}function M4(e,r){return!e||e.type!=="JSXOpeningElement"?!1:r==null||ne(e,r)}function Uu(e,r){return!e||e.type!=="JSXSpreadAttribute"?!1:r==null||ne(e,r)}function bg(e,r){return!e||e.type!=="JSXText"?!1:r==null||ne(e,r)}function B4(e,r){return!e||e.type!=="JSXFragment"?!1:r==null||ne(e,r)}function F4(e,r){return!e||e.type!=="JSXOpeningFragment"?!1:r==null||ne(e,r)}function $4(e,r){return!e||e.type!=="JSXClosingFragment"?!1:r==null||ne(e,r)}function q4(e,r){return!e||e.type!=="Noop"?!1:r==null||ne(e,r)}function xg(e,r){return!e||e.type!=="Placeholder"?!1:r==null||ne(e,r)}function U4(e,r){return!e||e.type!=="V8IntrinsicIdentifier"?!1:r==null||ne(e,r)}function V4(e,r){return!e||e.type!=="ArgumentPlaceholder"?!1:r==null||ne(e,r)}function Rg(e,r){return!e||e.type!=="BindExpression"?!1:r==null||ne(e,r)}function W4(e,r){return!e||e.type!=="ImportAttribute"?!1:r==null||ne(e,r)}function Eg(e,r){return!e||e.type!=="Decorator"?!1:r==null||ne(e,r)}function G4(e,r){return!e||e.type!=="DoExpression"?!1:r==null||ne(e,r)}function Ed(e,r){return!e||e.type!=="ExportDefaultSpecifier"?!1:r==null||ne(e,r)}function Sg(e,r){return!e||e.type!=="RecordExpression"?!1:r==null||ne(e,r)}function Tg(e,r){return!e||e.type!=="TupleExpression"?!1:r==null||ne(e,r)}function K4(e,r){return!e||e.type!=="DecimalLiteral"?!1:r==null||ne(e,r)}function H4(e,r){return!e||e.type!=="ModuleExpression"?!1:r==null||ne(e,r)}function wg(e,r){return!e||e.type!=="TopicReference"?!1:r==null||ne(e,r)}function Pg(e,r){return!e||e.type!=="PipelineTopicExpression"?!1:r==null||ne(e,r)}function z4(e,r){return!e||e.type!=="PipelineBareFunction"?!1:r==null||ne(e,r)}function X4(e,r){return!e||e.type!=="PipelinePrimaryTopicReference"?!1:r==null||ne(e,r)}function J4(e,r){return!e||e.type!=="TSParameterProperty"?!1:r==null||ne(e,r)}function Y4(e,r){return!e||e.type!=="TSDeclareFunction"?!1:r==null||ne(e,r)}function Q4(e,r){return!e||e.type!=="TSDeclareMethod"?!1:r==null||ne(e,r)}function Z4(e,r){return!e||e.type!=="TSQualifiedName"?!1:r==null||ne(e,r)}function e7(e,r){return!e||e.type!=="TSCallSignatureDeclaration"?!1:r==null||ne(e,r)}function t7(e,r){return!e||e.type!=="TSConstructSignatureDeclaration"?!1:r==null||ne(e,r)}function r7(e,r){return!e||e.type!=="TSPropertySignature"?!1:r==null||ne(e,r)}function a7(e,r){return!e||e.type!=="TSMethodSignature"?!1:r==null||ne(e,r)}function n7(e,r){return!e||e.type!=="TSIndexSignature"?!1:r==null||ne(e,r)}function Ag(e,r){return!e||e.type!=="TSAnyKeyword"?!1:r==null||ne(e,r)}function s7(e,r){return!e||e.type!=="TSBooleanKeyword"?!1:r==null||ne(e,r)}function i7(e,r){return!e||e.type!=="TSBigIntKeyword"?!1:r==null||ne(e,r)}function o7(e,r){return!e||e.type!=="TSIntrinsicKeyword"?!1:r==null||ne(e,r)}function l7(e,r){return!e||e.type!=="TSNeverKeyword"?!1:r==null||ne(e,r)}function u7(e,r){return!e||e.type!=="TSNullKeyword"?!1:r==null||ne(e,r)}function c7(e,r){return!e||e.type!=="TSNumberKeyword"?!1:r==null||ne(e,r)}function d7(e,r){return!e||e.type!=="TSObjectKeyword"?!1:r==null||ne(e,r)}function p7(e,r){return!e||e.type!=="TSStringKeyword"?!1:r==null||ne(e,r)}function f7(e,r){return!e||e.type!=="TSSymbolKeyword"?!1:r==null||ne(e,r)}function h7(e,r){return!e||e.type!=="TSUndefinedKeyword"?!1:r==null||ne(e,r)}function m7(e,r){return!e||e.type!=="TSUnknownKeyword"?!1:r==null||ne(e,r)}function y7(e,r){return!e||e.type!=="TSVoidKeyword"?!1:r==null||ne(e,r)}function g7(e,r){return!e||e.type!=="TSThisType"?!1:r==null||ne(e,r)}function v7(e,r){return!e||e.type!=="TSFunctionType"?!1:r==null||ne(e,r)}function b7(e,r){return!e||e.type!=="TSConstructorType"?!1:r==null||ne(e,r)}function If(e,r){return!e||e.type!=="TSTypeReference"?!1:r==null||ne(e,r)}function x7(e,r){return!e||e.type!=="TSTypePredicate"?!1:r==null||ne(e,r)}function R7(e,r){return!e||e.type!=="TSTypeQuery"?!1:r==null||ne(e,r)}function E7(e,r){return!e||e.type!=="TSTypeLiteral"?!1:r==null||ne(e,r)}function Ig(e,r){return!e||e.type!=="TSArrayType"?!1:r==null||ne(e,r)}function S7(e,r){return!e||e.type!=="TSTupleType"?!1:r==null||ne(e,r)}function T7(e,r){return!e||e.type!=="TSOptionalType"?!1:r==null||ne(e,r)}function w7(e,r){return!e||e.type!=="TSRestType"?!1:r==null||ne(e,r)}function P7(e,r){return!e||e.type!=="TSNamedTupleMember"?!1:r==null||ne(e,r)}function Q(e,r){return!e||e.type!=="TSUnionType"?!1:r==null||ne(e,r)}function Fe(e,r){return!e||e.type!=="TSIntersectionType"?!1:r==null||ne(e,r)}function At(e,r){return!e||e.type!=="TSConditionalType"?!1:r==null||ne(e,r)}function Rr(e,r){return!e||e.type!=="TSInferType"?!1:r==null||ne(e,r)}function an(e,r){return!e||e.type!=="TSParenthesizedType"?!1:r==null||ne(e,r)}function jo(e,r){return!e||e.type!=="TSTypeOperator"?!1:r==null||ne(e,r)}function Cf(e,r){return!e||e.type!=="TSIndexedAccessType"?!1:r==null||ne(e,r)}function A7(e,r){return!e||e.type!=="TSMappedType"?!1:r==null||ne(e,r)}function Qbe(e,r){return!e||e.type!=="TSLiteralType"?!1:r==null||ne(e,r)}function Zbe(e,r){return!e||e.type!=="TSExpressionWithTypeArguments"?!1:r==null||ne(e,r)}function e2e(e,r){return!e||e.type!=="TSInterfaceDeclaration"?!1:r==null||ne(e,r)}function KB(e,r){return!e||e.type!=="TSInterfaceBody"?!1:r==null||ne(e,r)}function t2e(e,r){return!e||e.type!=="TSTypeAliasDeclaration"?!1:r==null||ne(e,r)}function r2e(e,r){return!e||e.type!=="TSInstantiationExpression"?!1:r==null||ne(e,r)}function HB(e,r){return!e||e.type!=="TSAsExpression"?!1:r==null||ne(e,r)}function zB(e,r){return!e||e.type!=="TSSatisfiesExpression"?!1:r==null||ne(e,r)}function XB(e,r){return!e||e.type!=="TSTypeAssertion"?!1:r==null||ne(e,r)}function JB(e,r){return!e||e.type!=="TSEnumDeclaration"?!1:r==null||ne(e,r)}function a2e(e,r){return!e||e.type!=="TSEnumMember"?!1:r==null||ne(e,r)}function n2e(e,r){return!e||e.type!=="TSModuleDeclaration"?!1:r==null||ne(e,r)}function YB(e,r){return!e||e.type!=="TSModuleBlock"?!1:r==null||ne(e,r)}function s2e(e,r){return!e||e.type!=="TSImportType"?!1:r==null||ne(e,r)}function i2e(e,r){return!e||e.type!=="TSImportEqualsDeclaration"?!1:r==null||ne(e,r)}function o2e(e,r){return!e||e.type!=="TSExternalModuleReference"?!1:r==null||ne(e,r)}function QB(e,r){return!e||e.type!=="TSNonNullExpression"?!1:r==null||ne(e,r)}function l2e(e,r){return!e||e.type!=="TSExportAssignment"?!1:r==null||ne(e,r)}function u2e(e,r){return!e||e.type!=="TSNamespaceExportDeclaration"?!1:r==null||ne(e,r)}function I7(e,r){return!e||e.type!=="TSTypeAnnotation"?!1:r==null||ne(e,r)}function c2e(e,r){return!e||e.type!=="TSTypeParameterInstantiation"?!1:r==null||ne(e,r)}function d2e(e,r){return!e||e.type!=="TSTypeParameterDeclaration"?!1:r==null||ne(e,r)}function p2e(e,r){return!e||e.type!=="TSTypeParameter"?!1:r==null||ne(e,r)}function f2e(e,r){if(!e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"InterpreterDirective":case"Directive":case"DirectiveLiteral":case"BlockStatement":case"BreakStatement":case"CallExpression":case"CatchClause":case"ConditionalExpression":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"File":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Identifier":case"IfStatement":case"LabeledStatement":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"Program":case"ObjectExpression":case"ObjectMethod":case"ObjectProperty":case"RestElement":case"ReturnStatement":case"SequenceExpression":case"ParenthesizedExpression":case"SwitchCase":case"SwitchStatement":case"ThisExpression":case"ThrowStatement":case"TryStatement":case"UnaryExpression":case"UpdateExpression":case"VariableDeclaration":case"VariableDeclarator":case"WhileStatement":case"WithStatement":case"AssignmentPattern":case"ArrayPattern":case"ArrowFunctionExpression":case"ClassBody":case"ClassExpression":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportSpecifier":case"ForOfStatement":case"ImportDeclaration":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ImportExpression":case"MetaProperty":case"ClassMethod":case"ObjectPattern":case"SpreadElement":case"Super":case"TaggedTemplateExpression":case"TemplateElement":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"ExportNamespaceSpecifier":case"OptionalMemberExpression":case"OptionalCallExpression":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":case"StaticBlock":break;case"Placeholder":switch(e.expectedNode){case"Identifier":case"StringLiteral":case"BlockStatement":case"ClassBody":break;default:return!1}break;default:return!1}return r==null||ne(e,r)}function Zi(e,r){if(!e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ParenthesizedExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":case"ArrowFunctionExpression":case"ClassExpression":case"ImportExpression":case"MetaProperty":case"Super":case"TaggedTemplateExpression":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"OptionalMemberExpression":case"OptionalCallExpression":case"TypeCastExpression":case"JSXElement":case"JSXFragment":case"BindExpression":case"DoExpression":case"RecordExpression":case"TupleExpression":case"DecimalLiteral":case"ModuleExpression":case"TopicReference":case"PipelineTopicExpression":case"PipelineBareFunction":case"PipelinePrimaryTopicReference":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Expression":case"Identifier":case"StringLiteral":break;default:return!1}break;default:return!1}return r==null||ne(e,r)}function C7(e,r){if(!e)return!1;switch(e.type){case"BinaryExpression":case"LogicalExpression":break;default:return!1}return r==null||ne(e,r)}function ZB(e,r){if(!e)return!1;switch(e.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ClassExpression":case"ClassDeclaration":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if(e.expectedNode==="BlockStatement")break;default:return!1}return r==null||ne(e,r)}function h2e(e,r){if(!e)return!1;switch(e.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if(e.expectedNode==="BlockStatement")break;default:return!1}return r==null||ne(e,r)}function m2e(e,r){if(!e)return!1;switch(e.type){case"BlockStatement":case"Program":case"TSModuleBlock":break;case"Placeholder":if(e.expectedNode==="BlockStatement")break;default:return!1}return r==null||ne(e,r)}function ui(e,r){if(!e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ForOfStatement":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":case"TSImportEqualsDeclaration":case"TSExportAssignment":case"TSNamespaceExportDeclaration":break;case"Placeholder":switch(e.expectedNode){case"Statement":case"Declaration":case"BlockStatement":break;default:return!1}break;default:return!1}return r==null||ne(e,r)}function y2e(e,r){if(!e)return!1;switch(e.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":case"YieldExpression":case"AwaitExpression":break;default:return!1}return r==null||ne(e,r)}function g2e(e,r){if(!e)return!1;switch(e.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":break;default:return!1}return r==null||ne(e,r)}function v2e(e,r){if(!e)return!1;switch(e.type){case"ConditionalExpression":case"IfStatement":break;default:return!1}return r==null||ne(e,r)}function b2e(e,r){if(!e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":case"ForOfStatement":break;default:return!1}return r==null||ne(e,r)}function x2e(e,r){if(!e)return!1;switch(e.type){case"DoWhileStatement":case"WhileStatement":break;default:return!1}return r==null||ne(e,r)}function R2e(e,r){if(!e)return!1;switch(e.type){case"ExpressionStatement":case"ParenthesizedExpression":case"TypeCastExpression":break;default:return!1}return r==null||ne(e,r)}function eF(e,r){if(!e)return!1;switch(e.type){case"ForInStatement":case"ForStatement":case"ForOfStatement":break;default:return!1}return r==null||ne(e,r)}function jf(e,r){if(!e)return!1;switch(e.type){case"ForInStatement":case"ForOfStatement":break;default:return!1}return r==null||ne(e,r)}function Cs(e,r){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return r==null||ne(e,r)}function E2e(e,r){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;default:return!1}return r==null||ne(e,r)}function Cg(e,r){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"ArrowFunctionExpression":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if(e.expectedNode==="StringLiteral")break;default:return!1}return r==null||ne(e,r)}function j7(e,r){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"VariableDeclaration":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":break;case"Placeholder":if(e.expectedNode==="Declaration")break;default:return!1}return r==null||ne(e,r)}function S2e(e,r){if(!e)return!1;switch(e.type){case"Identifier":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return r==null||ne(e,r)}function T2e(e,r){if(!e)return!1;switch(e.type){case"Identifier":case"MemberExpression":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"TSParameterProperty":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return r==null||ne(e,r)}function w2e(e,r){if(!e)return!1;switch(e.type){case"Identifier":case"TSQualifiedName":break;case"Placeholder":if(e.expectedNode==="Identifier")break;default:return!1}return r==null||ne(e,r)}function yn(e,r){if(!e)return!1;switch(e.type){case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"TemplateLiteral":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if(e.expectedNode==="StringLiteral")break;default:return!1}return r==null||ne(e,r)}function P2e(e,r){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ObjectProperty":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":break;default:return!1}return r==null||ne(e,r)}function Sd(e,r){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return r==null||ne(e,r)}function A2e(e,r){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ObjectProperty":break;default:return!1}return r==null||ne(e,r)}function tF(e,r){if(!e)return!1;switch(e.type){case"ObjectProperty":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":break;default:return!1}return r==null||ne(e,r)}function I2e(e,r){if(!e)return!1;switch(e.type){case"UnaryExpression":case"SpreadElement":break;default:return!1}return r==null||ne(e,r)}function js(e,r){if(!e)return!1;switch(e.type){case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":break;case"Placeholder":if(e.expectedNode==="Pattern")break;default:return!1}return r==null||ne(e,r)}function Td(e,r){if(!e)return!1;switch(e.type){case"ClassExpression":case"ClassDeclaration":break;default:return!1}return r==null||ne(e,r)}function rF(e,r){if(!e)return!1;switch(e.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":break;default:return!1}return r==null||ne(e,r)}function Of(e,r){if(!e)return!1;switch(e.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":break;default:return!1}return r==null||ne(e,r)}function aF(e,r){if(!e)return!1;switch(e.type){case"ExportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":break;default:return!1}return r==null||ne(e,r)}function C2e(e,r){if(!e)return!1;switch(e.type){case"ClassAccessorProperty":break;default:return!1}return r==null||ne(e,r)}function nF(e,r){if(!e)return!1;switch(e.type){case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":break;default:return!1}return r==null||ne(e,r)}function O7(e,r){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ClassImplements":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"DeclaredPredicate":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"FunctionTypeParam":case"GenericTypeAnnotation":case"InferredPredicate":case"InterfaceExtends":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":case"OpaqueType":case"QualifiedTypeIdentifier":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"TypeAlias":case"TypeAnnotation":case"TypeCastExpression":case"TypeParameter":case"TypeParameterDeclaration":case"TypeParameterInstantiation":case"UnionTypeAnnotation":case"Variance":case"VoidTypeAnnotation":case"EnumDeclaration":case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return r==null||ne(e,r)}function sF(e,r){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"UnionTypeAnnotation":case"VoidTypeAnnotation":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return r==null||ne(e,r)}function _7(e,r){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"BooleanTypeAnnotation":case"NullLiteralTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NumberTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"VoidTypeAnnotation":break;default:return!1}return r==null||ne(e,r)}function j2e(e,r){if(!e)return!1;switch(e.type){case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":break;default:return!1}return r==null||ne(e,r)}function O2e(e,r){if(!e)return!1;switch(e.type){case"DeclaredPredicate":case"InferredPredicate":break;default:return!1}return r==null||ne(e,r)}function _2e(e,r){if(!e)return!1;switch(e.type){case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":break;default:return!1}return r==null||ne(e,r)}function N2e(e,r){if(!e)return!1;switch(e.type){case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":break;default:return!1}return r==null||ne(e,r)}function k2e(e,r){if(!e)return!1;switch(e.type){case"JSXAttribute":case"JSXClosingElement":case"JSXElement":case"JSXEmptyExpression":case"JSXExpressionContainer":case"JSXSpreadChild":case"JSXIdentifier":case"JSXMemberExpression":case"JSXNamespacedName":case"JSXOpeningElement":case"JSXSpreadAttribute":case"JSXText":case"JSXFragment":case"JSXOpeningFragment":case"JSXClosingFragment":break;default:return!1}return r==null||ne(e,r)}function D2e(e,r){if(!e)return!1;switch(e.type){case"Noop":case"Placeholder":case"V8IntrinsicIdentifier":break;default:return!1}return r==null||ne(e,r)}function iF(e,r){if(!e)return!1;switch(e.type){case"TSParameterProperty":case"TSDeclareFunction":case"TSDeclareMethod":case"TSQualifiedName":case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSNamedTupleMember":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSInterfaceDeclaration":case"TSInterfaceBody":case"TSTypeAliasDeclaration":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSEnumDeclaration":case"TSEnumMember":case"TSModuleDeclaration":case"TSModuleBlock":case"TSImportType":case"TSImportEqualsDeclaration":case"TSExternalModuleReference":case"TSNonNullExpression":case"TSExportAssignment":case"TSNamespaceExportDeclaration":case"TSTypeAnnotation":case"TSTypeParameterInstantiation":case"TSTypeParameterDeclaration":case"TSTypeParameter":break;default:return!1}return r==null||ne(e,r)}function L2e(e,r){if(!e)return!1;switch(e.type){case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":break;default:return!1}return r==null||ne(e,r)}function oF(e,r){if(!e)return!1;switch(e.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSImportType":break;default:return!1}return r==null||ne(e,r)}function lF(e,r){if(!e)return!1;switch(e.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSLiteralType":break;default:return!1}return r==null||ne(e,r)}function M2e(e,r){return pt("isNumberLiteral","isNumericLiteral"),!e||e.type!=="NumberLiteral"?!1:r==null||ne(e,r)}function B2e(e,r){return pt("isRegexLiteral","isRegExpLiteral"),!e||e.type!=="RegexLiteral"?!1:r==null||ne(e,r)}function F2e(e,r){return pt("isRestProperty","isRestElement"),!e||e.type!=="RestProperty"?!1:r==null||ne(e,r)}function $2e(e,r){return pt("isSpreadProperty","isSpreadElement"),!e||e.type!=="SpreadProperty"?!1:r==null||ne(e,r)}function q2e(e,r){return pt("isModuleDeclaration","isImportOrExportDeclaration"),rF(e,r)}function _f(e,r,s){if(!lr(e))return!1;var l=Array.isArray(r)?r:r.split("."),u=[],o;for(o=e;lr(o);o=o.object)u.push(o.property);if(u.push(o),u.length<l.length||!s&&u.length>l.length)return!1;for(var c=0,f=u.length-1;c<l.length;c++,f--){var h=u[f],m=void 0;if(Dt(h))m=h.name;else if(nt(h))m=h.value;else if(Xs(h))m="this";else return!1;if(l[c]!==m)return!1}return!0}function jg(e,r){var s=e.split(".");return function(l){return _f(l,s,r)}}var U2e=jg("React.Component");function V2e(e){return!!e&&/^[a-z]/.test(e)}var Oo=typeof Hc<"u"?Hc:typeof self<"u"?self:typeof window<"u"?window:{};function uF(){throw new Error("setTimeout has not been defined")}function cF(){throw new Error("clearTimeout has not been defined")}var Dl=uF,Ll=cF;typeof Oo.setTimeout=="function"&&(Dl=setTimeout),typeof Oo.clearTimeout=="function"&&(Ll=clearTimeout);function dF(e){if(Dl===setTimeout)return setTimeout(e,0);if((Dl===uF||!Dl)&&setTimeout)return Dl=setTimeout,setTimeout(e,0);try{return Dl(e,0)}catch{try{return Dl.call(null,e,0)}catch{return Dl.call(this,e,0)}}}function W2e(e){if(Ll===clearTimeout)return clearTimeout(e);if((Ll===cF||!Ll)&&clearTimeout)return Ll=clearTimeout,clearTimeout(e);try{return Ll(e)}catch{try{return Ll.call(null,e)}catch{return Ll.call(this,e)}}}var _o=[],wd=!1,Vu,Og=-1;function G2e(){!wd||!Vu||(wd=!1,Vu.length?_o=Vu.concat(_o):Og=-1,_o.length&&pF())}function pF(){if(!wd){var e=dF(G2e);wd=!0;for(var r=_o.length;r;){for(Vu=_o,_o=[];++Og<r;)Vu&&Vu[Og].run();Og=-1,r=_o.length}Vu=null,wd=!1,W2e(e)}}function K2e(e){var r=new Array(arguments.length-1);if(arguments.length>1)for(var s=1;s<arguments.length;s++)r[s-1]=arguments[s];_o.push(new fF(e,r)),_o.length===1&&!wd&&dF(pF)}function fF(e,r){this.fun=e,this.array=r}fF.prototype.run=function(){this.fun.apply(null,this.array)};var H2e="browser",z2e="browser",X2e=!0,J2e={},Y2e=[],Q2e="",Z2e={},e6e={},t6e={};function Wu(){}var r6e=Wu,a6e=Wu,n6e=Wu,s6e=Wu,i6e=Wu,o6e=Wu,l6e=Wu;function u6e(e){throw new Error("process.binding is not supported")}function c6e(){return"/"}function d6e(e){throw new Error("process.chdir is not supported")}function p6e(){return 0}var Pd=Oo.performance||{},f6e=Pd.now||Pd.mozNow||Pd.msNow||Pd.oNow||Pd.webkitNow||function(){return new Date().getTime()};function h6e(e){var r=f6e.call(Pd)*.001,s=Math.floor(r),l=Math.floor(r%1*1e9);return e&&(s=s-e[0],l=l-e[1],l<0&&(s--,l+=1e9)),[s,l]}var m6e=new Date;function y6e(){var e=new Date,r=e-m6e;return r/1e3}var er={nextTick:K2e,title:H2e,browser:X2e,env:J2e,argv:Y2e,version:Q2e,versions:Z2e,on:r6e,addListener:a6e,once:n6e,off:s6e,removeListener:i6e,removeAllListeners:o6e,emit:l6e,binding:u6e,cwd:c6e,chdir:d6e,umask:p6e,hrtime:h6e,platform:z2e,release:e6e,config:t6e,uptime:y6e},ci=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof Hc<"u"?Hc:typeof self<"u"?self:{};function Gu(e){if(e.__esModule)return e;var r=e.default;if(typeof r=="function"){var s=function l(){return this instanceof l?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};s.prototype=r.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(l){var u=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(s,l,u.get?u:{enumerable:!0,get:function(){return e[l]}})}),s}var N7,hF;function mF(){if(hF)return N7;hF=1;var e=null;function r(s){if(e!==null&&typeof e.property){var l=e;return e=r.prototype=null,l}return e=r.prototype=s??Object.create(null),new r}return r(),N7=function(l){return r(l)},N7}function g6e(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var Ml=(g6e(er.env.BABEL_8_BREAKING),mF());function _g(e,r){if(e===r)return!0;if(e==null||Nf[r])return!1;var s=xr[r];if(s){if(s[0]===e)return!0;for(var l=C(s),u;!(u=l()).done;){var o=u.value;if(e===o)return!0}}return!1}function yF(e,r){if(e===r)return!0;var s=Id[e];if(s)for(var l=C(s),u;!(u=l()).done;){var o=u.value;if(r===o)return!0}return!1}function gn(e,r,s){if(!r)return!1;var l=_g(r.type,e);return l?typeof s>"u"?!0:ne(r,s):!s&&r.type==="Placeholder"&&e in xr?yF(r.expectedNode,e):!1}var k7="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",gF="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・",v6e=new RegExp("["+k7+"]"),b6e=new RegExp("["+k7+gF+"]");k7=gF=null;var vF=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],x6e=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];function D7(e,r){for(var s=65536,l=0,u=r.length;l<u;l+=2){if(s+=r[l],s>e)return!1;if(s+=r[l+1],s>=e)return!0}return!1}function eo(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&v6e.test(String.fromCharCode(e)):D7(e,vF)}function Bl(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&b6e.test(String.fromCharCode(e)):D7(e,vF)||D7(e,x6e)}function L7(e){for(var r=!0,s=0;s<e.length;s++){var l=e.charCodeAt(s);if((l&64512)===55296&&s+1<e.length){var u=e.charCodeAt(++s);(u&64512)===56320&&(l=65536+((l&1023)<<10)+(u&1023))}if(r){if(r=!1,!eo(l))return!1}else if(!Bl(l))return!1}return!r}var M7={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},R6e=new Set(M7.keyword),E6e=new Set(M7.strict),S6e=new Set(M7.strictBind);function B7(e,r){return r&&e==="await"||e==="enum"}function Ng(e,r){return B7(e,r)||E6e.has(e)}function bF(e){return S6e.has(e)}function xF(e,r){return Ng(e,r)||bF(e)}function kg(e){return R6e.has(e)}function Fl(e,r){return r===void 0&&(r=!0),typeof e!="string"||r&&(kg(e)||Ng(e,!0))?!1:L7(e)}var T6e=function(r){return r>=48&&r<=57},RF={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},Dg={bin:function(r){return r===48||r===49},oct:function(r){return r>=48&&r<=55},dec:function(r){return r>=48&&r<=57},hex:function(r){return r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102}};function F7(e,r,s,l,u,o){for(var c=s,f=l,h=u,m="",g=null,x=s,R=r.length;;){if(s>=R){o.unterminated(c,f,h),m+=r.slice(x,s);break}var w=r.charCodeAt(s);if(w6e(e,w,r,s)){m+=r.slice(x,s);break}if(w===92){m+=r.slice(x,s);var T=P6e(r,s,l,u,e==="template",o);T.ch===null&&!g?g={pos:s,lineStart:l,curLine:u}:m+=T.ch,s=T.pos,l=T.lineStart,u=T.curLine,x=s}else w===8232||w===8233?(++s,++u,l=s):w===10||w===13?e==="template"?(m+=r.slice(x,s)+` +`,++s,w===13&&r.charCodeAt(s)===10&&++s,++u,x=l=s):o.unterminated(c,f,h):++s}return{pos:s,str:m,firstInvalidLoc:g,lineStart:l,curLine:u,containsInvalid:!!g}}function w6e(e,r,s,l){return e==="template"?r===96||r===36&&s.charCodeAt(l+1)===123:r===(e==="double"?34:39)}function P6e(e,r,s,l,u,o){var c=!u;r++;var f=function(D){return{pos:r,ch:D,lineStart:s,curLine:l}},h=e.charCodeAt(r++);switch(h){case 110:return f(` +`);case 114:return f("\r");case 120:{var m,g=$7(e,r,s,l,2,!1,c,o);return m=g.code,r=g.pos,f(m===null?null:String.fromCharCode(m))}case 117:{var x,R=SF(e,r,s,l,c,o);return x=R.code,r=R.pos,f(x===null?null:String.fromCodePoint(x))}case 116:return f(" ");case 98:return f("\b");case 118:return f("\v");case 102:return f("\f");case 13:e.charCodeAt(r)===10&&++r;case 10:s=r,++l;case 8232:case 8233:return f("");case 56:case 57:if(u)return f(null);o.strictNumericEscape(r-1,s,l);default:if(h>=48&&h<=55){var w=r-1,T=/^[0-7]+/.exec(e.slice(w,r+2)),I=T[0],P=parseInt(I,8);P>255&&(I=I.slice(0,-1),P=parseInt(I,8)),r+=I.length-1;var O=e.charCodeAt(r);if(I!=="0"||O===56||O===57){if(u)return f(null);o.strictNumericEscape(w,s,l)}return f(String.fromCharCode(P))}return f(String.fromCharCode(h))}}function $7(e,r,s,l,u,o,c,f){var h=r,m,g=EF(e,r,s,l,16,u,o,!1,f,!c);return m=g.n,r=g.pos,m===null&&(c?f.invalidEscapeSequence(h,s,l):r=h-1),{code:m,pos:r}}function EF(e,r,s,l,u,o,c,f,h,m){for(var g=r,x=u===16?RF.hex:RF.decBinOct,R=u===16?Dg.hex:u===10?Dg.dec:u===8?Dg.oct:Dg.bin,w=!1,T=0,I=0,P=o??1/0;I<P;++I){var O=e.charCodeAt(r),j=void 0;if(O===95&&f!=="bail"){var D=e.charCodeAt(r-1),k=e.charCodeAt(r+1);if(f){if(Number.isNaN(k)||!R(k)||x.has(D)||x.has(k)){if(m)return{n:null,pos:r};h.unexpectedNumericSeparator(r,s,l)}}else{if(m)return{n:null,pos:r};h.numericSeparatorInEscapeSequence(r,s,l)}++r;continue}if(O>=97?j=O-97+10:O>=65?j=O-65+10:T6e(O)?j=O-48:j=1/0,j>=u){if(j<=9&&m)return{n:null,pos:r};if(j<=9&&h.invalidDigit(r,s,l,u))j=0;else if(c)j=0,w=!0;else break}++r,T=T*u+j}return r===g||o!=null&&r-g!==o||w?{n:null,pos:r}:{n:T,pos:r}}function SF(e,r,s,l,u,o){var c=e.charCodeAt(r),f;if(c===123){++r;var h=$7(e,r,s,l,e.indexOf("}",r)-r,!0,u,o);if(f=h.code,r=h.pos,++r,f!==null&&f>1114111)if(u)o.invalidCodePoint(r,s,l);else return{code:null,pos:r}}else{var m=$7(e,r,s,l,4,!1,u,o);f=m.code,r=m.pos}return{code:f,pos:r}}var TF=["consequent","body","alternate"],A6e=["body","expressions"],I6e=["left","init"],q7=["leadingComments","trailingComments","innerComments"],Ku=["||","&&","??"],wF=["++","--"],U7=[">","<",">=","<="],V7=["==","===","!=","!=="],PF=[].concat(V7,["in","instanceof"]),W7=[].concat(fe(PF),U7),Lg=["-","/","%","*","**","&","|",">>",">>>","<<","^"],AF=["+"].concat(Lg,fe(W7),["|>"]),IF=["=","+="].concat(fe(Lg.map(function(e){return e+"="})),fe(Ku.map(function(e){return e+"="}))),G7=["delete","!"],K7=["+","-","~"],H7=["typeof"],CF=["void","throw"].concat(G7,K7,H7),z7={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},Mg=Symbol.for("var used to be block scoped"),jF=Symbol.for("should not be considered a local binding"),Ys={},Nf={},xr={},Hu={},Bg={},kf={},X7={};function Fg(e){return Array.isArray(e)?"array":e===null?"null":typeof e}function ba(e){return{validate:e}}function J7(e){return typeof e=="string"?qe(e):qe.apply(void 0,fe(e))}function Wt(e){return ba(J7(e))}function Fa(e){return{validate:e,optional:!0}}function Zr(e){return{validate:J7(e),optional:!0}}function C6e(e){return yr(wt("array"),Lr(e))}function Ln(e){return C6e(J7(e))}function di(e){return ba(Ln(e))}function Lr(e){function r(s,l,u){if(Array.isArray(u))for(var o=0;o<u.length;o++){var c=l+"["+o+"]",f=u[o];e(s,c,f),er.env.BABEL_TYPES_8_BREAKING&&Ug(s,c,f)}}return r.each=e,r}function pa(){for(var e=arguments.length,r=new Array(e),s=0;s<e;s++)r[s]=arguments[s];function l(u,o,c){if(!r.includes(c))throw new TypeError("Property "+o+" expected value to be one of "+JSON.stringify(r)+" but got "+JSON.stringify(c))}return l.oneOf=r,l}function qe(){for(var e=arguments.length,r=new Array(e),s=0;s<e;s++)r[s]=arguments[s];function l(u,o,c){for(var f=C(r),h;!(h=f()).done;){var m=h.value;if(gn(m,c)){Ug(u,o,c);return}}throw new TypeError("Property "+o+" of "+u.type+" expected node to be of a type "+JSON.stringify(r)+" but instead got "+JSON.stringify(c==null?void 0:c.type))}return l.oneOfNodeTypes=r,l}function OF(){for(var e=arguments.length,r=new Array(e),s=0;s<e;s++)r[s]=arguments[s];function l(u,o,c){for(var f=C(r),h;!(h=f()).done;){var m=h.value;if(Fg(c)===m||gn(m,c)){Ug(u,o,c);return}}throw new TypeError("Property "+o+" of "+u.type+" expected node to be of a type "+JSON.stringify(r)+" but instead got "+JSON.stringify(c==null?void 0:c.type))}return l.oneOfNodeOrValueTypes=r,l}function wt(e){function r(s,l,u){var o=Fg(u)===e;if(!o)throw new TypeError("Property "+l+" expected type of "+e+" but got "+Fg(u))}return r.type=e,r}function j6e(e){function r(s,l,u){for(var o=[],c=0,f=Object.keys(e);c<f.length;c++){var h=f[c];try{VF(s,h,u[h],e[h])}catch(m){if(m instanceof TypeError){o.push(m.message);continue}throw m}}if(o.length)throw new TypeError("Property "+l+" of "+s.type+` expected to have the following: +`+o.join(` +`))}return r.shapeOf=e,r}function _F(){function e(r){for(var s,l=r;r;){var u=l,o=u.type;if(o==="OptionalCallExpression"){if(l.optional)return;l=l.callee;continue}if(o==="OptionalMemberExpression"){if(l.optional)return;l=l.object;continue}break}throw new TypeError("Non-optional "+r.type+" must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from "+((s=l)==null?void 0:s.type))}return e}function yr(){for(var e=arguments.length,r=new Array(e),s=0;s<e;s++)r[s]=arguments[s];function l(){for(var u=C(r),o;!(o=u()).done;){var c=o.value;c.apply(void 0,arguments)}}if(l.chainOf=r,r.length>=2&&"type"in r[0]&&r[0].type==="array"&&!("each"in r[1]))throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');return l}var O6e=["aliases","builder","deprecatedAlias","fields","inherits","visitor","validate"],_6e=["default","optional","deprecated","validate"],Y7={};function Df(){for(var e=arguments.length,r=new Array(e),s=0;s<e;s++)r[s]=arguments[s];return function(l,u){var o;u===void 0&&(u={});var c=u.aliases;if(!c){var f,h;u.inherits&&(c=(f=Y7[u.inherits].aliases)==null?void 0:f.slice()),(h=c)!=null||(c=[]),u.aliases=c}var m=r.filter(function(g){return!c.includes(g)});(o=c).unshift.apply(o,fe(m)),ns(l,u)}}function ns(e,r){r===void 0&&(r={});var s=r.inherits&&Y7[r.inherits]||{},l=r.fields;if(!l&&(l={},s.fields))for(var u=Object.getOwnPropertyNames(s.fields),o=C(u),c;!(c=o()).done;){var f=c.value,h=s.fields[f],m=h.default;if(Array.isArray(m)?m.length>0:m&&typeof m=="object")throw new Error("field defaults can only be primitives or empty arrays currently");l[f]={default:Array.isArray(m)?[]:m,optional:h.optional,deprecated:h.deprecated,validate:h.validate}}for(var g=r.visitor||s.visitor||[],x=r.aliases||s.aliases||[],R=r.builder||s.builder||r.visitor||[],w=0,T=Object.keys(r);w<T.length;w++){var I=T[w];if(!O6e.includes(I))throw new Error('Unknown type option "'+I+'" on '+e)}r.deprecatedAlias&&(kf[r.deprecatedAlias]=e);for(var P=C(g.concat(R)),O;!(O=P()).done;){var j=O.value;l[j]=l[j]||{}}for(var D=0,k=Object.keys(l);D<k.length;D++){var B=k[D],F=l[B];F.default!==void 0&&!R.includes(B)&&(F.optional=!0),F.default===void 0?F.default=null:!F.validate&&F.default!=null&&(F.validate=wt(Fg(F.default)));for(var L=0,V=Object.keys(F);L<V.length;L++){var H=V[L];if(!_6e.includes(H))throw new Error('Unknown field key "'+H+'" on '+e+"."+B)}}Ys[e]=r.visitor=g,Bg[e]=r.builder=R,Hu[e]=r.fields=l,Nf[e]=r.aliases=x,x.forEach(function(K){xr[K]=xr[K]||[],xr[K].push(e)}),r.validate&&(X7[e]=r.validate),Y7[e]=r}var zt=Df("Standardized");zt("ArrayExpression",{fields:{elements:{validate:yr(wt("array"),Lr(OF("null","Expression","SpreadElement"))),default:er.env.BABEL_TYPES_8_BREAKING?void 0:[]}},visitor:["elements"],aliases:["Expression"]}),zt("AssignmentExpression",{fields:{operator:{validate:function(){if(!er.env.BABEL_TYPES_8_BREAKING)return wt("string");var e=pa.apply(void 0,fe(IF)),r=pa("=");return function(s,l,u){var o=gn("Pattern",s.left)?r:e;o(s,l,u)}}()},left:{validate:er.env.BABEL_TYPES_8_BREAKING?qe("Identifier","MemberExpression","OptionalMemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qe("LVal","OptionalMemberExpression")},right:{validate:qe("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),zt("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:pa.apply(void 0,fe(AF))},left:{validate:function(){var e=qe("Expression"),r=qe("Expression","PrivateName"),s=Object.assign(function(l,u,o){var c=l.operator==="in"?r:e;c(l,u,o)},{oneOfNodeTypes:["Expression","PrivateName"]});return s}()},right:{validate:qe("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),zt("InterpreterDirective",{builder:["value"],fields:{value:{validate:wt("string")}}}),zt("Directive",{visitor:["value"],fields:{value:{validate:qe("DirectiveLiteral")}}}),zt("DirectiveLiteral",{builder:["value"],fields:{value:{validate:wt("string")}}}),zt("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:yr(wt("array"),Lr(qe("Directive"))),default:[]},body:{validate:yr(wt("array"),Lr(qe("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),zt("BreakStatement",{visitor:["label"],fields:{label:{validate:qe("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),zt("CallExpression",{visitor:["callee","arguments","typeParameters","typeArguments"],builder:["callee","arguments"],aliases:["Expression"],fields:Object.assign({callee:{validate:qe("Expression","Super","V8IntrinsicIdentifier")},arguments:{validate:yr(wt("array"),Lr(qe("Expression","SpreadElement","ArgumentPlaceholder")))}},er.env.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:pa(!0,!1),optional:!0}},{typeArguments:{validate:qe("TypeParameterInstantiation"),optional:!0},typeParameters:{validate:qe("TSTypeParameterInstantiation"),optional:!0}})}),zt("CatchClause",{visitor:["param","body"],fields:{param:{validate:qe("Identifier","ArrayPattern","ObjectPattern"),optional:!0},body:{validate:qe("BlockStatement")}},aliases:["Scopable","BlockParent"]}),zt("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:qe("Expression")},consequent:{validate:qe("Expression")},alternate:{validate:qe("Expression")}},aliases:["Expression","Conditional"]}),zt("ContinueStatement",{visitor:["label"],fields:{label:{validate:qe("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),zt("DebuggerStatement",{aliases:["Statement"]}),zt("DoWhileStatement",{builder:["test","body"],visitor:["body","test"],fields:{test:{validate:qe("Expression")},body:{validate:qe("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),zt("EmptyStatement",{aliases:["Statement"]}),zt("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:qe("Expression")}},aliases:["Statement","ExpressionWrapper"]}),zt("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:qe("Program")},comments:{validate:er.env.BABEL_TYPES_8_BREAKING?Lr(qe("CommentBlock","CommentLine")):Object.assign(function(){},{each:{oneOfNodeTypes:["CommentBlock","CommentLine"]}}),optional:!0},tokens:{validate:Lr(Object.assign(function(){},{type:"any"})),optional:!0}}}),zt("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:er.env.BABEL_TYPES_8_BREAKING?qe("VariableDeclaration","Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qe("VariableDeclaration","LVal")},right:{validate:qe("Expression")},body:{validate:qe("Statement")}}}),zt("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:qe("VariableDeclaration","Expression"),optional:!0},test:{validate:qe("Expression"),optional:!0},update:{validate:qe("Expression"),optional:!0},body:{validate:qe("Statement")}}});var Lf=function(){return{params:{validate:yr(wt("array"),Lr(qe("Identifier","Pattern","RestElement")))},generator:{default:!1},async:{default:!1}}},Ad=function(){return{returnType:{validate:qe("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:qe("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0}}},NF=function(){return Object.assign({},Lf(),{declare:{validate:wt("boolean"),optional:!0},id:{validate:qe("Identifier"),optional:!0}})};zt("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","typeParameters","params","returnType","body"],fields:Object.assign({},NF(),Ad(),{body:{validate:qe("BlockStatement")},predicate:{validate:qe("DeclaredPredicate","InferredPredicate"),optional:!0}}),aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"],validate:function(){if(!er.env.BABEL_TYPES_8_BREAKING)return function(){};var e=qe("Identifier");return function(r,s,l){gn("ExportDefaultDeclaration",r)||e(l,"id",l.id)}}()}),zt("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},Lf(),Ad(),{id:{validate:qe("Identifier"),optional:!0},body:{validate:qe("BlockStatement")},predicate:{validate:qe("DeclaredPredicate","InferredPredicate"),optional:!0}})});var Mf=function(){return{typeAnnotation:{validate:qe("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},optional:{validate:wt("boolean"),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0}}};zt("Identifier",{builder:["name"],visitor:["typeAnnotation","decorators"],aliases:["Expression","PatternLike","LVal","TSEntityName"],fields:Object.assign({},Mf(),{name:{validate:yr(wt("string"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&!Fl(s,!1))throw new TypeError('"'+s+'" is not a valid identifier name')},{type:"string"}))}}),validate:function(r,s,l){if(er.env.BABEL_TYPES_8_BREAKING){var u=/\.(\w+)$/.exec(s);if(u){var o=je(u,2),c=o[1],f={computed:!1};if(c==="property"){if(gn("MemberExpression",r,f)||gn("OptionalMemberExpression",r,f))return}else if(c==="key"){if(gn("Property",r,f)||gn("Method",r,f))return}else if(c==="exported"){if(gn("ExportSpecifier",r))return}else if(c==="imported"){if(gn("ImportSpecifier",r,{imported:l}))return}else if(c==="meta"&&gn("MetaProperty",r,{meta:l}))return;if((kg(l.name)||B7(l.name,!1))&&l.name!=="this")throw new TypeError('"'+l.name+'" is not a valid identifier')}}}}),zt("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:qe("Expression")},consequent:{validate:qe("Statement")},alternate:{optional:!0,validate:qe("Statement")}}}),zt("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:qe("Identifier")},body:{validate:qe("Statement")}}}),zt("StringLiteral",{builder:["value"],fields:{value:{validate:wt("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),zt("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:yr(wt("number"),Object.assign(function(e,r,s){},{type:"number"}))}},aliases:["Expression","Pureish","Literal","Immutable"]}),zt("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),zt("BooleanLiteral",{builder:["value"],fields:{value:{validate:wt("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),zt("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Pureish","Literal"],fields:{pattern:{validate:wt("string")},flags:{validate:yr(wt("string"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING){var l=/[^gimsuy]/.exec(s);if(l)throw new TypeError('"'+l[0]+'" is not a valid RegExp flag')}},{type:"string"})),default:""}}}),zt("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:pa.apply(void 0,fe(Ku))},left:{validate:qe("Expression")},right:{validate:qe("Expression")}}}),zt("MemberExpression",{builder:["object","property","computed"].concat(fe(er.env.BABEL_TYPES_8_BREAKING?[]:["optional"])),visitor:["object","property"],aliases:["Expression","LVal"],fields:Object.assign({object:{validate:qe("Expression","Super")},property:{validate:function(){var e=qe("Identifier","PrivateName"),r=qe("Expression"),s=function(u,o,c){var f=u.computed?r:e;f(u,o,c)};return s.oneOfNodeTypes=["Expression","Identifier","PrivateName"],s}()},computed:{default:!1}},er.env.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:pa(!0,!1),optional:!0}})}),zt("NewExpression",{inherits:"CallExpression"}),zt("Program",{visitor:["directives","body"],builder:["body","directives","sourceType","interpreter"],fields:{sourceType:{validate:pa("script","module"),default:"script"},interpreter:{validate:qe("InterpreterDirective"),default:null,optional:!0},directives:{validate:yr(wt("array"),Lr(qe("Directive"))),default:[]},body:{validate:yr(wt("array"),Lr(qe("Statement")))}},aliases:["Scopable","BlockParent","Block"]}),zt("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:yr(wt("array"),Lr(qe("ObjectMethod","ObjectProperty","SpreadElement")))}}}),zt("ObjectMethod",{builder:["kind","key","params","body","computed","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"],fields:Object.assign({},Lf(),Ad(),{kind:Object.assign({validate:pa("method","get","set")},er.env.BABEL_TYPES_8_BREAKING?{}:{default:"method"}),computed:{default:!1},key:{validate:function(){var e=qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),r=qe("Expression"),s=function(u,o,c){var f=u.computed?r:e;f(u,o,c)};return s.oneOfNodeTypes=["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral"],s}()},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},body:{validate:qe("BlockStatement")}}),aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),zt("ObjectProperty",{builder:["key","value","computed","shorthand"].concat(fe(er.env.BABEL_TYPES_8_BREAKING?[]:["decorators"])),fields:{computed:{default:!1},key:{validate:function(){var e=qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"),r=qe("Expression"),s=Object.assign(function(l,u,o){var c=l.computed?r:e;c(l,u,o)},{oneOfNodeTypes:["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"]});return s}()},value:{validate:qe("Expression","PatternLike")},shorthand:{validate:yr(wt("boolean"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&s&&e.computed)throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true")},{type:"boolean"}),function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&s&&!gn("Identifier",e.key))throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier")}),default:!1},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"],validate:function(){var e=qe("Identifier","Pattern","TSAsExpression","TSSatisfiesExpression","TSNonNullExpression","TSTypeAssertion"),r=qe("Expression");return function(s,l,u){if(er.env.BABEL_TYPES_8_BREAKING){var o=gn("ObjectPattern",s)?e:r;o(u,"value",u.value)}}}()}),zt("RestElement",{visitor:["argument","typeAnnotation"],builder:["argument"],aliases:["LVal","PatternLike"],deprecatedAlias:"RestProperty",fields:Object.assign({},Mf(),{argument:{validate:er.env.BABEL_TYPES_8_BREAKING?qe("Identifier","ArrayPattern","ObjectPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qe("LVal")}}),validate:function(r,s){if(er.env.BABEL_TYPES_8_BREAKING){var l=/(\w+)\[(\d+)\]/.exec(s);if(!l)throw new Error("Internal Babel error: malformed key.");var u=l,o=je(u,3),c=o[1],f=o[2];if(r[c].length>+f+1)throw new TypeError("RestElement must be last element of "+c)}}}),zt("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:qe("Expression"),optional:!0}}}),zt("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:yr(wt("array"),Lr(qe("Expression")))}},aliases:["Expression"]}),zt("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:qe("Expression")}}}),zt("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:qe("Expression"),optional:!0},consequent:{validate:yr(wt("array"),Lr(qe("Statement")))}}}),zt("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:qe("Expression")},cases:{validate:yr(wt("array"),Lr(qe("SwitchCase")))}}}),zt("ThisExpression",{aliases:["Expression"]}),zt("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:qe("Expression")}}}),zt("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{block:{validate:yr(qe("BlockStatement"),Object.assign(function(e){if(er.env.BABEL_TYPES_8_BREAKING&&!e.handler&&!e.finalizer)throw new TypeError("TryStatement expects either a handler or finalizer, or both")},{oneOfNodeTypes:["BlockStatement"]}))},handler:{optional:!0,validate:qe("CatchClause")},finalizer:{optional:!0,validate:qe("BlockStatement")}}}),zt("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:qe("Expression")},operator:{validate:pa.apply(void 0,fe(CF))}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),zt("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:er.env.BABEL_TYPES_8_BREAKING?qe("Identifier","MemberExpression"):qe("Expression")},operator:{validate:pa.apply(void 0,fe(wF))}},visitor:["argument"],aliases:["Expression"]}),zt("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{declare:{validate:wt("boolean"),optional:!0},kind:{validate:pa("var","let","const","using","await using")},declarations:{validate:yr(wt("array"),Lr(qe("VariableDeclarator")))}},validate:function(r,s,l){if(er.env.BABEL_TYPES_8_BREAKING&&gn("ForXStatement",r,{left:l})&&l.declarations.length!==1)throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a "+r.type)}}),zt("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:function(){if(!er.env.BABEL_TYPES_8_BREAKING)return qe("LVal");var e=qe("Identifier","ArrayPattern","ObjectPattern"),r=qe("Identifier");return function(s,l,u){var o=s.init?e:r;o(s,l,u)}}()},definite:{optional:!0,validate:wt("boolean")},init:{optional:!0,validate:qe("Expression")}}}),zt("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:qe("Expression")},body:{validate:qe("Statement")}}}),zt("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{validate:qe("Expression")},body:{validate:qe("Statement")}}}),zt("AssignmentPattern",{visitor:["left","right","decorators"],builder:["left","right"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},Mf(),{left:{validate:qe("Identifier","ObjectPattern","ArrayPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression")},right:{validate:qe("Expression")},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0}})}),zt("ArrayPattern",{visitor:["elements","typeAnnotation"],builder:["elements"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},Mf(),{elements:{validate:yr(wt("array"),Lr(OF("null","PatternLike","LVal")))}})}),zt("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["typeParameters","params","returnType","body"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},Lf(),Ad(),{expression:{validate:wt("boolean")},body:{validate:qe("BlockStatement","Expression")},predicate:{validate:qe("DeclaredPredicate","InferredPredicate"),optional:!0}})}),zt("ClassBody",{visitor:["body"],fields:{body:{validate:yr(wt("array"),Lr(qe("ClassMethod","ClassPrivateMethod","ClassProperty","ClassPrivateProperty","ClassAccessorProperty","TSDeclareMethod","TSIndexSignature","StaticBlock")))}}}),zt("ClassExpression",{builder:["id","superClass","body","decorators"],visitor:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body"],aliases:["Scopable","Class","Expression"],fields:{id:{validate:qe("Identifier"),optional:!0},typeParameters:{validate:qe("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:qe("ClassBody")},superClass:{optional:!0,validate:qe("Expression")},superTypeParameters:{validate:qe("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},implements:{validate:yr(wt("array"),Lr(qe("TSExpressionWithTypeArguments","ClassImplements"))),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},mixins:{validate:qe("InterfaceExtends"),optional:!0}}}),zt("ClassDeclaration",{inherits:"ClassExpression",aliases:["Scopable","Class","Statement","Declaration"],fields:{id:{validate:qe("Identifier"),optional:!0},typeParameters:{validate:qe("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:qe("ClassBody")},superClass:{optional:!0,validate:qe("Expression")},superTypeParameters:{validate:qe("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},implements:{validate:yr(wt("array"),Lr(qe("TSExpressionWithTypeArguments","ClassImplements"))),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},mixins:{validate:qe("InterfaceExtends"),optional:!0},declare:{validate:wt("boolean"),optional:!0},abstract:{validate:wt("boolean"),optional:!0}},validate:function(){var e=qe("Identifier");return function(r,s,l){er.env.BABEL_TYPES_8_BREAKING&&(gn("ExportDefaultDeclaration",r)||e(l,"id",l.id))}}()}),zt("ExportAllDeclaration",{builder:["source"],visitor:["source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{source:{validate:qe("StringLiteral")},exportKind:Fa(pa("type","value")),attributes:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))},assertions:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))}}}),zt("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{declaration:{validate:qe("TSDeclareFunction","FunctionDeclaration","ClassDeclaration","Expression")},exportKind:Fa(pa("value"))}}),zt("ExportNamedDeclaration",{builder:["declaration","specifiers","source"],visitor:["declaration","specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{declaration:{optional:!0,validate:yr(qe("Declaration"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&s&&e.specifiers.length)throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration")},{oneOfNodeTypes:["Declaration"]}),function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&s&&e.source)throw new TypeError("Cannot export a declaration from a source")})},attributes:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))},assertions:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))},specifiers:{default:[],validate:yr(wt("array"),Lr(function(){var e=qe("ExportSpecifier","ExportDefaultSpecifier","ExportNamespaceSpecifier"),r=qe("ExportSpecifier");return er.env.BABEL_TYPES_8_BREAKING?function(s,l,u){var o=s.source?e:r;o(s,l,u)}:e}()))},source:{validate:qe("StringLiteral"),optional:!0},exportKind:Fa(pa("type","value"))}}),zt("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:qe("Identifier")},exported:{validate:qe("Identifier","StringLiteral")},exportKind:{validate:pa("type","value"),optional:!0}}}),zt("ForOfStatement",{visitor:["left","right","body"],builder:["left","right","body","await"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:function(){if(!er.env.BABEL_TYPES_8_BREAKING)return qe("VariableDeclaration","LVal");var e=qe("VariableDeclaration"),r=qe("Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression");return function(s,l,u){gn("VariableDeclaration",u)?e(s,l,u):r(s,l,u)}}()},right:{validate:qe("Expression")},body:{validate:qe("Statement")},await:{default:!1}}}),zt("ImportDeclaration",{builder:["specifiers","source"],visitor:["specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration"],fields:{attributes:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))},assertions:{optional:!0,validate:yr(wt("array"),Lr(qe("ImportAttribute")))},module:{optional:!0,validate:wt("boolean")},phase:{default:null,validate:pa("source","defer")},specifiers:{validate:yr(wt("array"),Lr(qe("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:qe("StringLiteral")},importKind:{validate:pa("type","typeof","value"),optional:!0}}}),zt("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:qe("Identifier")}}}),zt("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:qe("Identifier")}}}),zt("ImportSpecifier",{visitor:["imported","local"],builder:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:qe("Identifier")},imported:{validate:qe("Identifier","StringLiteral")},importKind:{validate:pa("type","typeof","value"),optional:!0}}}),zt("ImportExpression",{visitor:["source","options"],aliases:["Expression"],fields:{phase:{default:null,validate:pa("source","defer")},source:{validate:qe("Expression")},options:{validate:qe("Expression"),optional:!0}}}),zt("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:yr(qe("Identifier"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING){var l;switch(s.name){case"function":l="sent";break;case"new":l="target";break;case"import":l="meta";break}if(!gn("Identifier",e.property,{name:l}))throw new TypeError("Unrecognised MetaProperty")}},{oneOfNodeTypes:["Identifier"]}))},property:{validate:qe("Identifier")}}});var Q7=function(){return{abstract:{validate:wt("boolean"),optional:!0},accessibility:{validate:pa("public","private","protected"),optional:!0},static:{default:!1},override:{default:!1},computed:{default:!1},optional:{validate:wt("boolean"),optional:!0},key:{validate:yr(function(){var r=qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),s=qe("Expression");return function(l,u,o){var c=l.computed?s:r;c(l,u,o)}}(),qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression"))}}},Z7=function(){return Object.assign({},Lf(),Q7(),{params:{validate:yr(wt("array"),Lr(qe("Identifier","Pattern","RestElement","TSParameterProperty")))},kind:{validate:pa("get","set","method","constructor"),default:"method"},access:{validate:yr(wt("string"),pa("public","private","protected")),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0}})};zt("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"],fields:Object.assign({},Z7(),Ad(),{body:{validate:qe("BlockStatement")}})}),zt("ObjectPattern",{visitor:["properties","typeAnnotation","decorators"],builder:["properties"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},Mf(),{properties:{validate:yr(wt("array"),Lr(qe("RestElement","ObjectProperty")))}})}),zt("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],deprecatedAlias:"SpreadProperty",fields:{argument:{validate:qe("Expression")}}}),zt("Super",{aliases:["Expression"]}),zt("TaggedTemplateExpression",{visitor:["tag","typeParameters","quasi"],builder:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:qe("Expression")},quasi:{validate:qe("TemplateLiteral")},typeParameters:{validate:qe("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0}}}),zt("TemplateElement",{builder:["value","tail"],fields:{value:{validate:yr(j6e({raw:{validate:wt("string")},cooked:{validate:wt("string"),optional:!0}}),function(r){var s=r.value.raw,l=!1,u=function(){throw new Error("Internal @babel/types error.")},o=F7("template",s,0,0,0,{unterminated:function(){l=!0},strictNumericEscape:u,invalidEscapeSequence:u,numericSeparatorInEscapeSequence:u,unexpectedNumericSeparator:u,invalidDigit:u,invalidCodePoint:u}),c=o.str,f=o.firstInvalidLoc;if(!l)throw new Error("Invalid raw");r.value.cooked=f?null:c})},tail:{default:!1}}}),zt("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:yr(wt("array"),Lr(qe("TemplateElement")))},expressions:{validate:yr(wt("array"),Lr(qe("Expression","TSType")),function(e,r,s){if(e.quasis.length!==s.length+1)throw new TypeError("Number of "+e.type+` quasis should be exactly one more than the number of expressions. +Expected `+(s.length+1)+" quasis but got "+e.quasis.length)})}}}),zt("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:yr(wt("boolean"),Object.assign(function(e,r,s){if(er.env.BABEL_TYPES_8_BREAKING&&s&&!e.argument)throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument")},{type:"boolean"})),default:!1},argument:{optional:!0,validate:qe("Expression")}}}),zt("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:qe("Expression")}}}),zt("Import",{aliases:["Expression"]}),zt("BigIntLiteral",{builder:["value"],fields:{value:{validate:wt("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),zt("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:qe("Identifier")}}}),zt("OptionalMemberExpression",{builder:["object","property","computed","optional"],visitor:["object","property"],aliases:["Expression"],fields:{object:{validate:qe("Expression")},property:{validate:function(){var e=qe("Identifier"),r=qe("Expression"),s=Object.assign(function(l,u,o){var c=l.computed?r:e;c(l,u,o)},{oneOfNodeTypes:["Expression","Identifier"]});return s}()},computed:{default:!1},optional:{validate:er.env.BABEL_TYPES_8_BREAKING?yr(wt("boolean"),_F()):wt("boolean")}}}),zt("OptionalCallExpression",{visitor:["callee","arguments","typeParameters","typeArguments"],builder:["callee","arguments","optional"],aliases:["Expression"],fields:{callee:{validate:qe("Expression")},arguments:{validate:yr(wt("array"),Lr(qe("Expression","SpreadElement","ArgumentPlaceholder")))},optional:{validate:er.env.BABEL_TYPES_8_BREAKING?yr(wt("boolean"),_F()):wt("boolean")},typeArguments:{validate:qe("TypeParameterInstantiation"),optional:!0},typeParameters:{validate:qe("TSTypeParameterInstantiation"),optional:!0}}}),zt("ClassProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property"],fields:Object.assign({},Q7(),{value:{validate:qe("Expression"),optional:!0},definite:{validate:wt("boolean"),optional:!0},typeAnnotation:{validate:qe("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},readonly:{validate:wt("boolean"),optional:!0},declare:{validate:wt("boolean"),optional:!0},variance:{validate:qe("Variance"),optional:!0}})}),zt("ClassAccessorProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property","Accessor"],fields:Object.assign({},Q7(),{key:{validate:yr(function(){var e=qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","PrivateName"),r=qe("Expression");return function(s,l,u){var o=s.computed?r:e;o(s,l,u)}}(),qe("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression","PrivateName"))},value:{validate:qe("Expression"),optional:!0},definite:{validate:wt("boolean"),optional:!0},typeAnnotation:{validate:qe("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},readonly:{validate:wt("boolean"),optional:!0},declare:{validate:wt("boolean"),optional:!0},variance:{validate:qe("Variance"),optional:!0}})}),zt("ClassPrivateProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","decorators","static"],aliases:["Property","Private"],fields:{key:{validate:qe("PrivateName")},value:{validate:qe("Expression"),optional:!0},typeAnnotation:{validate:qe("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0},static:{validate:wt("boolean"),default:!1},readonly:{validate:wt("boolean"),optional:!0},definite:{validate:wt("boolean"),optional:!0},variance:{validate:qe("Variance"),optional:!0}}}),zt("ClassPrivateMethod",{builder:["kind","key","params","body","static"],visitor:["decorators","key","typeParameters","params","returnType","body"],aliases:["Function","Scopable","BlockParent","FunctionParent","Method","Private"],fields:Object.assign({},Z7(),Ad(),{kind:{validate:pa("get","set","method"),default:"method"},key:{validate:qe("PrivateName")},body:{validate:qe("BlockStatement")}})}),zt("PrivateName",{visitor:["id"],aliases:["Private"],fields:{id:{validate:qe("Identifier")}}}),zt("StaticBlock",{visitor:["body"],fields:{body:{validate:yr(wt("array"),Lr(qe("Statement")))}},aliases:["Scopable","BlockParent","FunctionParent"]});var gr=Df("Flow"),eR=function(r){var s=r==="DeclareClass";gr(r,{builder:["id","typeParameters","extends","body"],visitor:["id","typeParameters","extends"].concat(fe(s?["mixins","implements"]:[]),["body"]),aliases:["FlowDeclaration","Statement","Declaration"],fields:Object.assign({id:Wt("Identifier"),typeParameters:Zr("TypeParameterDeclaration"),extends:Fa(Ln("InterfaceExtends"))},s?{mixins:Fa(Ln("InterfaceExtends")),implements:Fa(Ln("ClassImplements"))}:{},{body:Wt("ObjectTypeAnnotation")})})};gr("AnyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["FlowType"],fields:{elementType:Wt("FlowType")}}),gr("BooleanTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("BooleanLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:ba(wt("boolean"))}}),gr("NullLiteralTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("ClassImplements",{visitor:["id","typeParameters"],fields:{id:Wt("Identifier"),typeParameters:Zr("TypeParameterInstantiation")}}),eR("DeclareClass"),gr("DeclareFunction",{visitor:["id"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier"),predicate:Zr("DeclaredPredicate")}}),eR("DeclareInterface"),gr("DeclareModule",{builder:["id","body","kind"],visitor:["id","body"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt(["Identifier","StringLiteral"]),body:Wt("BlockStatement"),kind:Fa(pa("CommonJS","ES"))}}),gr("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{typeAnnotation:Wt("TypeAnnotation")}}),gr("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier"),typeParameters:Zr("TypeParameterDeclaration"),right:Wt("FlowType")}}),gr("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier"),typeParameters:Zr("TypeParameterDeclaration"),supertype:Zr("FlowType"),impltype:Zr("FlowType")}}),gr("DeclareVariable",{visitor:["id"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier")}}),gr("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{declaration:Zr("Flow"),specifiers:Fa(Ln(["ExportSpecifier","ExportNamespaceSpecifier"])),source:Zr("StringLiteral"),default:Fa(wt("boolean"))}}),gr("DeclareExportAllDeclaration",{visitor:["source"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{source:Wt("StringLiteral"),exportKind:Fa(pa("type","value"))}}),gr("DeclaredPredicate",{visitor:["value"],aliases:["FlowPredicate"],fields:{value:Wt("Flow")}}),gr("ExistsTypeAnnotation",{aliases:["FlowType"]}),gr("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["FlowType"],fields:{typeParameters:Zr("TypeParameterDeclaration"),params:ba(Ln("FunctionTypeParam")),rest:Zr("FunctionTypeParam"),this:Zr("FunctionTypeParam"),returnType:Wt("FlowType")}}),gr("FunctionTypeParam",{visitor:["name","typeAnnotation"],fields:{name:Zr("Identifier"),typeAnnotation:Wt("FlowType"),optional:Fa(wt("boolean"))}}),gr("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["FlowType"],fields:{id:Wt(["Identifier","QualifiedTypeIdentifier"]),typeParameters:Zr("TypeParameterInstantiation")}}),gr("InferredPredicate",{aliases:["FlowPredicate"]}),gr("InterfaceExtends",{visitor:["id","typeParameters"],fields:{id:Wt(["Identifier","QualifiedTypeIdentifier"]),typeParameters:Zr("TypeParameterInstantiation")}}),eR("InterfaceDeclaration"),gr("InterfaceTypeAnnotation",{visitor:["extends","body"],aliases:["FlowType"],fields:{extends:Fa(Ln("InterfaceExtends")),body:Wt("ObjectTypeAnnotation")}}),gr("IntersectionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:ba(Ln("FlowType"))}}),gr("MixedTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("EmptyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["FlowType"],fields:{typeAnnotation:Wt("FlowType")}}),gr("NumberLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:ba(wt("number"))}}),gr("NumberTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties","internalSlots"],aliases:["FlowType"],builder:["properties","indexers","callProperties","internalSlots","exact"],fields:{properties:ba(Ln(["ObjectTypeProperty","ObjectTypeSpreadProperty"])),indexers:{validate:Ln("ObjectTypeIndexer"),optional:!0,default:[]},callProperties:{validate:Ln("ObjectTypeCallProperty"),optional:!0,default:[]},internalSlots:{validate:Ln("ObjectTypeInternalSlot"),optional:!0,default:[]},exact:{validate:wt("boolean"),default:!1},inexact:Fa(wt("boolean"))}}),gr("ObjectTypeInternalSlot",{visitor:["id","value"],builder:["id","value","optional","static","method"],aliases:["UserWhitespacable"],fields:{id:Wt("Identifier"),value:Wt("FlowType"),optional:ba(wt("boolean")),static:ba(wt("boolean")),method:ba(wt("boolean"))}}),gr("ObjectTypeCallProperty",{visitor:["value"],aliases:["UserWhitespacable"],fields:{value:Wt("FlowType"),static:ba(wt("boolean"))}}),gr("ObjectTypeIndexer",{visitor:["variance","id","key","value"],builder:["id","key","value","variance"],aliases:["UserWhitespacable"],fields:{id:Zr("Identifier"),key:Wt("FlowType"),value:Wt("FlowType"),static:ba(wt("boolean")),variance:Zr("Variance")}}),gr("ObjectTypeProperty",{visitor:["key","value","variance"],aliases:["UserWhitespacable"],fields:{key:Wt(["Identifier","StringLiteral"]),value:Wt("FlowType"),kind:ba(pa("init","get","set")),static:ba(wt("boolean")),proto:ba(wt("boolean")),optional:ba(wt("boolean")),variance:Zr("Variance"),method:ba(wt("boolean"))}}),gr("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["UserWhitespacable"],fields:{argument:Wt("FlowType")}}),gr("OpaqueType",{visitor:["id","typeParameters","supertype","impltype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier"),typeParameters:Zr("TypeParameterDeclaration"),supertype:Zr("FlowType"),impltype:Wt("FlowType")}}),gr("QualifiedTypeIdentifier",{visitor:["qualification","id"],builder:["id","qualification"],fields:{id:Wt("Identifier"),qualification:Wt(["Identifier","QualifiedTypeIdentifier"])}}),gr("StringLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:ba(wt("string"))}}),gr("StringTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("SymbolTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("ThisTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("TupleTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:ba(Ln("FlowType"))}}),gr("TypeofTypeAnnotation",{visitor:["argument"],aliases:["FlowType"],fields:{argument:Wt("FlowType")}}),gr("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Wt("Identifier"),typeParameters:Zr("TypeParameterDeclaration"),right:Wt("FlowType")}}),gr("TypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:Wt("FlowType")}}),gr("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["ExpressionWrapper","Expression"],fields:{expression:Wt("Expression"),typeAnnotation:Wt("TypeAnnotation")}}),gr("TypeParameter",{visitor:["bound","default","variance"],fields:{name:ba(wt("string")),bound:Zr("TypeAnnotation"),default:Zr("FlowType"),variance:Zr("Variance")}}),gr("TypeParameterDeclaration",{visitor:["params"],fields:{params:ba(Ln("TypeParameter"))}}),gr("TypeParameterInstantiation",{visitor:["params"],fields:{params:ba(Ln("FlowType"))}}),gr("UnionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:ba(Ln("FlowType"))}}),gr("Variance",{builder:["kind"],fields:{kind:ba(pa("minus","plus"))}}),gr("VoidTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),gr("EnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:{id:Wt("Identifier"),body:Wt(["EnumBooleanBody","EnumNumberBody","EnumStringBody","EnumSymbolBody"])}}),gr("EnumBooleanBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:ba(wt("boolean")),members:di("EnumBooleanMember"),hasUnknownMembers:ba(wt("boolean"))}}),gr("EnumNumberBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:ba(wt("boolean")),members:di("EnumNumberMember"),hasUnknownMembers:ba(wt("boolean"))}}),gr("EnumStringBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:ba(wt("boolean")),members:di(["EnumStringMember","EnumDefaultedMember"]),hasUnknownMembers:ba(wt("boolean"))}}),gr("EnumSymbolBody",{aliases:["EnumBody"],visitor:["members"],fields:{members:di("EnumDefaultedMember"),hasUnknownMembers:ba(wt("boolean"))}}),gr("EnumBooleanMember",{aliases:["EnumMember"],visitor:["id"],fields:{id:Wt("Identifier"),init:Wt("BooleanLiteral")}}),gr("EnumNumberMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:Wt("Identifier"),init:Wt("NumericLiteral")}}),gr("EnumStringMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:Wt("Identifier"),init:Wt("StringLiteral")}}),gr("EnumDefaultedMember",{aliases:["EnumMember"],visitor:["id"],fields:{id:Wt("Identifier")}}),gr("IndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:Wt("FlowType"),indexType:Wt("FlowType")}}),gr("OptionalIndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:Wt("FlowType"),indexType:Wt("FlowType"),optional:ba(wt("boolean"))}});var ss=Df("JSX");ss("JSXAttribute",{visitor:["name","value"],aliases:["Immutable"],fields:{name:{validate:qe("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:qe("JSXElement","JSXFragment","StringLiteral","JSXExpressionContainer")}}}),ss("JSXClosingElement",{visitor:["name"],aliases:["Immutable"],fields:{name:{validate:qe("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")}}}),ss("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["Immutable","Expression"],fields:Object.assign({openingElement:{validate:qe("JSXOpeningElement")},closingElement:{optional:!0,validate:qe("JSXClosingElement")},children:{validate:yr(wt("array"),Lr(qe("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")))}},{selfClosing:{validate:wt("boolean"),optional:!0}})}),ss("JSXEmptyExpression",{}),ss("JSXExpressionContainer",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:qe("Expression","JSXEmptyExpression")}}}),ss("JSXSpreadChild",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:qe("Expression")}}}),ss("JSXIdentifier",{builder:["name"],fields:{name:{validate:wt("string")}}}),ss("JSXMemberExpression",{visitor:["object","property"],fields:{object:{validate:qe("JSXMemberExpression","JSXIdentifier")},property:{validate:qe("JSXIdentifier")}}}),ss("JSXNamespacedName",{visitor:["namespace","name"],fields:{namespace:{validate:qe("JSXIdentifier")},name:{validate:qe("JSXIdentifier")}}}),ss("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["Immutable"],fields:{name:{validate:qe("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")},selfClosing:{default:!1},attributes:{validate:yr(wt("array"),Lr(qe("JSXAttribute","JSXSpreadAttribute")))},typeParameters:{validate:qe("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0}}}),ss("JSXSpreadAttribute",{visitor:["argument"],fields:{argument:{validate:qe("Expression")}}}),ss("JSXText",{aliases:["Immutable"],builder:["value"],fields:{value:{validate:wt("string")}}}),ss("JSXFragment",{builder:["openingFragment","closingFragment","children"],visitor:["openingFragment","children","closingFragment"],aliases:["Immutable","Expression"],fields:{openingFragment:{validate:qe("JSXOpeningFragment")},closingFragment:{validate:qe("JSXClosingFragment")},children:{validate:yr(wt("array"),Lr(qe("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")))}}}),ss("JSXOpeningFragment",{aliases:["Immutable"]}),ss("JSXClosingFragment",{aliases:["Immutable"]});for(var tR=["Identifier","StringLiteral","Expression","Statement","Declaration","BlockStatement","ClassBody","Pattern"],Id={Declaration:["Statement"],Pattern:["PatternLike","LVal"]},rR=0,kF=tR;rR<kF.length;rR++){var DF=kF[rR],aR=Nf[DF];aR!=null&&aR.length&&(Id[DF]=aR)}var Bf={};Object.keys(Id).forEach(function(e){Id[e].forEach(function(r){hasOwnProperty.call(Bf,r)||(Bf[r]=[]),Bf[r].push(e)})});var nR=Df("Miscellaneous");nR("Noop",{visitor:[]}),nR("Placeholder",{visitor:[],builder:["expectedNode","name"],fields:{name:{validate:qe("Identifier")},expectedNode:{validate:pa.apply(void 0,fe(tR))}}}),nR("V8IntrinsicIdentifier",{builder:["name"],fields:{name:{validate:wt("string")}}}),ns("ArgumentPlaceholder",{}),ns("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:er.env.BABEL_TYPES_8_BREAKING?{object:{validate:qe("Expression")},callee:{validate:qe("Expression")}}:{object:{validate:Object.assign(function(){},{oneOfNodeTypes:["Expression"]})},callee:{validate:Object.assign(function(){},{oneOfNodeTypes:["Expression"]})}}}),ns("ImportAttribute",{visitor:["key","value"],fields:{key:{validate:qe("Identifier","StringLiteral")},value:{validate:qe("StringLiteral")}}}),ns("Decorator",{visitor:["expression"],fields:{expression:{validate:qe("Expression")}}}),ns("DoExpression",{visitor:["body"],builder:["body","async"],aliases:["Expression"],fields:{body:{validate:qe("BlockStatement")},async:{validate:wt("boolean"),default:!1}}}),ns("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:qe("Identifier")}}}),ns("RecordExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:yr(wt("array"),Lr(qe("ObjectProperty","SpreadElement")))}}}),ns("TupleExpression",{fields:{elements:{validate:yr(wt("array"),Lr(qe("Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),ns("DecimalLiteral",{builder:["value"],fields:{value:{validate:wt("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),ns("ModuleExpression",{visitor:["body"],fields:{body:{validate:qe("Program")}},aliases:["Expression"]}),ns("TopicReference",{aliases:["Expression"]}),ns("PipelineTopicExpression",{builder:["expression"],visitor:["expression"],fields:{expression:{validate:qe("Expression")}},aliases:["Expression"]}),ns("PipelineBareFunction",{builder:["callee"],visitor:["callee"],fields:{callee:{validate:qe("Expression")}},aliases:["Expression"]}),ns("PipelinePrimaryTopicReference",{aliases:["Expression"]});var Dr=Df("TypeScript"),Os=wt("boolean"),LF=function(){return{returnType:{validate:qe("TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:qe("TSTypeParameterDeclaration","Noop"),optional:!0}}};Dr("TSParameterProperty",{aliases:["LVal"],visitor:["parameter"],fields:{accessibility:{validate:pa("public","private","protected"),optional:!0},readonly:{validate:wt("boolean"),optional:!0},parameter:{validate:qe("Identifier","AssignmentPattern")},override:{validate:wt("boolean"),optional:!0},decorators:{validate:yr(wt("array"),Lr(qe("Decorator"))),optional:!0}}}),Dr("TSDeclareFunction",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","params","returnType"],fields:Object.assign({},NF(),LF())}),Dr("TSDeclareMethod",{visitor:["decorators","key","typeParameters","params","returnType"],fields:Object.assign({},Z7(),LF())}),Dr("TSQualifiedName",{aliases:["TSEntityName"],visitor:["left","right"],fields:{left:Wt("TSEntityName"),right:Wt("Identifier")}});var $g=function(){var r;return r={typeParameters:Zr("TSTypeParameterDeclaration")},r.parameters=di(["ArrayPattern","Identifier","ObjectPattern","RestElement"]),r.typeAnnotation=Zr("TSTypeAnnotation"),r},MF={aliases:["TSTypeElement"],visitor:["typeParameters","parameters","typeAnnotation"],fields:$g()};Dr("TSCallSignatureDeclaration",MF),Dr("TSConstructSignatureDeclaration",MF);var BF=function(){return{key:Wt("Expression"),computed:{default:!1},optional:Fa(Os)}};Dr("TSPropertySignature",{aliases:["TSTypeElement"],visitor:["key","typeAnnotation"],fields:Object.assign({},BF(),{readonly:Fa(Os),typeAnnotation:Zr("TSTypeAnnotation"),kind:{validate:pa("get","set")}})}),Dr("TSMethodSignature",{aliases:["TSTypeElement"],visitor:["key","typeParameters","parameters","typeAnnotation"],fields:Object.assign({},$g(),BF(),{kind:{validate:pa("method","get","set")}})}),Dr("TSIndexSignature",{aliases:["TSTypeElement"],visitor:["parameters","typeAnnotation"],fields:{readonly:Fa(Os),static:Fa(Os),parameters:di("Identifier"),typeAnnotation:Zr("TSTypeAnnotation")}});for(var N6e=["TSAnyKeyword","TSBooleanKeyword","TSBigIntKeyword","TSIntrinsicKeyword","TSNeverKeyword","TSNullKeyword","TSNumberKeyword","TSObjectKeyword","TSStringKeyword","TSSymbolKeyword","TSUndefinedKeyword","TSUnknownKeyword","TSVoidKeyword"],sR=0,FF=N6e;sR<FF.length;sR++){var k6e=FF[sR];Dr(k6e,{aliases:["TSType","TSBaseType"],visitor:[],fields:{}})}Dr("TSThisType",{aliases:["TSType","TSBaseType"],visitor:[],fields:{}});var $F={aliases:["TSType"],visitor:["typeParameters","parameters","typeAnnotation"]};Dr("TSFunctionType",Object.assign({},$F,{fields:$g()})),Dr("TSConstructorType",Object.assign({},$F,{fields:Object.assign({},$g(),{abstract:Fa(Os)})})),Dr("TSTypeReference",{aliases:["TSType"],visitor:["typeName","typeParameters"],fields:{typeName:Wt("TSEntityName"),typeParameters:Zr("TSTypeParameterInstantiation")}}),Dr("TSTypePredicate",{aliases:["TSType"],visitor:["parameterName","typeAnnotation"],builder:["parameterName","typeAnnotation","asserts"],fields:{parameterName:Wt(["Identifier","TSThisType"]),typeAnnotation:Zr("TSTypeAnnotation"),asserts:Fa(Os)}}),Dr("TSTypeQuery",{aliases:["TSType"],visitor:["exprName","typeParameters"],fields:{exprName:Wt(["TSEntityName","TSImportType"]),typeParameters:Zr("TSTypeParameterInstantiation")}}),Dr("TSTypeLiteral",{aliases:["TSType"],visitor:["members"],fields:{members:di("TSTypeElement")}}),Dr("TSArrayType",{aliases:["TSType"],visitor:["elementType"],fields:{elementType:Wt("TSType")}}),Dr("TSTupleType",{aliases:["TSType"],visitor:["elementTypes"],fields:{elementTypes:di(["TSType","TSNamedTupleMember"])}}),Dr("TSOptionalType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Wt("TSType")}}),Dr("TSRestType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Wt("TSType")}}),Dr("TSNamedTupleMember",{visitor:["label","elementType"],builder:["label","elementType","optional"],fields:{label:Wt("Identifier"),optional:{validate:Os,default:!1},elementType:Wt("TSType")}});var qF={aliases:["TSType"],visitor:["types"],fields:{types:di("TSType")}};Dr("TSUnionType",qF),Dr("TSIntersectionType",qF),Dr("TSConditionalType",{aliases:["TSType"],visitor:["checkType","extendsType","trueType","falseType"],fields:{checkType:Wt("TSType"),extendsType:Wt("TSType"),trueType:Wt("TSType"),falseType:Wt("TSType")}}),Dr("TSInferType",{aliases:["TSType"],visitor:["typeParameter"],fields:{typeParameter:Wt("TSTypeParameter")}}),Dr("TSParenthesizedType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Wt("TSType")}}),Dr("TSTypeOperator",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{operator:ba(wt("string")),typeAnnotation:Wt("TSType")}}),Dr("TSIndexedAccessType",{aliases:["TSType"],visitor:["objectType","indexType"],fields:{objectType:Wt("TSType"),indexType:Wt("TSType")}}),Dr("TSMappedType",{aliases:["TSType"],visitor:["typeParameter","nameType","typeAnnotation"],builder:["typeParameter","typeAnnotation","nameType"],fields:Object.assign({},{typeParameter:Wt("TSTypeParameter")},{readonly:Fa(pa(!0,!1,"+","-")),optional:Fa(pa(!0,!1,"+","-")),typeAnnotation:Zr("TSType"),nameType:Zr("TSType")})}),Dr("TSLiteralType",{aliases:["TSType","TSBaseType"],visitor:["literal"],fields:{literal:{validate:function(){var e=qe("NumericLiteral","BigIntLiteral"),r=pa("-"),s=qe("NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral");function l(u,o,c){gn("UnaryExpression",c)?(r(c,"operator",c.operator),e(c,"argument",c.argument)):s(u,o,c)}return l.oneOfNodeTypes=["NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral","UnaryExpression"],l}()}}}),Dr("TSExpressionWithTypeArguments",{aliases:["TSType"],visitor:["expression","typeParameters"],fields:{expression:Wt("TSEntityName"),typeParameters:Zr("TSTypeParameterInstantiation")}}),Dr("TSInterfaceDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","extends","body"],fields:{declare:Fa(Os),id:Wt("Identifier"),typeParameters:Zr("TSTypeParameterDeclaration"),extends:Fa(Ln("TSExpressionWithTypeArguments")),body:Wt("TSInterfaceBody")}}),Dr("TSInterfaceBody",{visitor:["body"],fields:{body:di("TSTypeElement")}}),Dr("TSTypeAliasDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","typeAnnotation"],fields:{declare:Fa(Os),id:Wt("Identifier"),typeParameters:Zr("TSTypeParameterDeclaration"),typeAnnotation:Wt("TSType")}}),Dr("TSInstantiationExpression",{aliases:["Expression"],visitor:["expression","typeParameters"],fields:{expression:Wt("Expression"),typeParameters:Zr("TSTypeParameterInstantiation")}});var UF={aliases:["Expression","LVal","PatternLike"],visitor:["expression","typeAnnotation"],fields:{expression:Wt("Expression"),typeAnnotation:Wt("TSType")}};Dr("TSAsExpression",UF),Dr("TSSatisfiesExpression",UF),Dr("TSTypeAssertion",{aliases:["Expression","LVal","PatternLike"],visitor:["typeAnnotation","expression"],fields:{typeAnnotation:Wt("TSType"),expression:Wt("Expression")}}),Dr("TSEnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","members"],fields:{declare:Fa(Os),const:Fa(Os),id:Wt("Identifier"),members:di("TSEnumMember"),initializer:Zr("Expression")}}),Dr("TSEnumMember",{visitor:["id","initializer"],fields:{id:Wt(["Identifier","StringLiteral"]),initializer:Zr("Expression")}}),Dr("TSModuleDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:{declare:Fa(Os),global:Fa(Os),id:Wt(["Identifier","StringLiteral"]),body:Wt(["TSModuleBlock","TSModuleDeclaration"])}}),Dr("TSModuleBlock",{aliases:["Scopable","Block","BlockParent","FunctionParent"],visitor:["body"],fields:{body:di("Statement")}}),Dr("TSImportType",{aliases:["TSType"],visitor:["argument","qualifier","typeParameters"],fields:{argument:Wt("StringLiteral"),qualifier:Zr("TSEntityName"),typeParameters:Zr("TSTypeParameterInstantiation"),options:{validate:qe("Expression"),optional:!0}}}),Dr("TSImportEqualsDeclaration",{aliases:["Statement"],visitor:["id","moduleReference"],fields:{isExport:ba(Os),id:Wt("Identifier"),moduleReference:Wt(["TSEntityName","TSExternalModuleReference"]),importKind:{validate:pa("type","value"),optional:!0}}}),Dr("TSExternalModuleReference",{visitor:["expression"],fields:{expression:Wt("StringLiteral")}}),Dr("TSNonNullExpression",{aliases:["Expression","LVal","PatternLike"],visitor:["expression"],fields:{expression:Wt("Expression")}}),Dr("TSExportAssignment",{aliases:["Statement"],visitor:["expression"],fields:{expression:Wt("Expression")}}),Dr("TSNamespaceExportDeclaration",{aliases:["Statement"],visitor:["id"],fields:{id:Wt("Identifier")}}),Dr("TSTypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:{validate:qe("TSType")}}}),Dr("TSTypeParameterInstantiation",{visitor:["params"],fields:{params:{validate:yr(wt("array"),Lr(qe("TSType")))}}}),Dr("TSTypeParameterDeclaration",{visitor:["params"],fields:{params:{validate:yr(wt("array"),Lr(qe("TSTypeParameter")))}}}),Dr("TSTypeParameter",{builder:["constraint","default","name"],visitor:["constraint","default"],fields:{name:{validate:wt("string")},in:{validate:wt("boolean"),optional:!0},out:{validate:wt("boolean"),optional:!0},const:{validate:wt("boolean"),optional:!0},constraint:{validate:qe("TSType"),optional:!0},default:{validate:qe("TSType"),optional:!0}}});var qg={ModuleDeclaration:"ImportOrExportDeclaration"};Object.keys(qg).forEach(function(e){xr[e]=xr[qg[e]]}),Ml(Ys),Ml(Nf),Ml(xr),Ml(Hu),Ml(Bg),Ml(kf),Ml(Id),Ml(Bf);var Ff=[].concat(Object.keys(Ys),Object.keys(xr),Object.keys(kf));function $f(e,r,s){if(e){var l=Hu[e.type];if(l){var u=l[r];VF(e,r,s,u),Ug(e,r,s)}}}function VF(e,r,s,l){l!=null&&l.validate&&(l.optional&&s==null||l.validate(e,r,s))}function Ug(e,r,s){if(s!=null){var l=X7[s.type];l&&l(e,r,s)}}function Ye(e){for(var r=Bg[e.type],s=C(r),l;!(l=s()).done;){var u=l.value;$f(e,u,e[u])}return e}function Ra(e){return e===void 0&&(e=[]),Ye({type:"ArrayExpression",elements:e})}function tr(e,r,s){return Ye({type:"AssignmentExpression",operator:e,left:r,right:s})}function nn(e,r,s){return Ye({type:"BinaryExpression",operator:e,left:r,right:s})}function iR(e){return Ye({type:"InterpreterDirective",value:e})}function Cd(e){return Ye({type:"Directive",value:e})}function jd(e){return Ye({type:"DirectiveLiteral",value:e})}function ea(e,r){return r===void 0&&(r=[]),Ye({type:"BlockStatement",body:e,directives:r})}function WF(e){return e===void 0&&(e=null),Ye({type:"BreakStatement",label:e})}function ft(e,r){return Ye({type:"CallExpression",callee:e,arguments:r})}function GF(e,r){return e===void 0&&(e=null),Ye({type:"CatchClause",param:e,body:r})}function Qs(e,r,s){return Ye({type:"ConditionalExpression",test:e,consequent:r,alternate:s})}function KF(e){return e===void 0&&(e=null),Ye({type:"ContinueStatement",label:e})}function HF(){return{type:"DebuggerStatement"}}function zF(e,r){return Ye({type:"DoWhileStatement",test:e,body:r})}function oR(){return{type:"EmptyStatement"}}function Xt(e){return Ye({type:"ExpressionStatement",expression:e})}function lR(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"File",program:e,comments:r,tokens:s})}function XF(e,r,s){return Ye({type:"ForInStatement",left:e,right:r,body:s})}function uR(e,r,s,l){return e===void 0&&(e=null),r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"ForStatement",init:e,test:r,update:s,body:l})}function Vg(e,r,s,l,u){return e===void 0&&(e=null),l===void 0&&(l=!1),u===void 0&&(u=!1),Ye({type:"FunctionDeclaration",id:e,params:r,body:s,generator:l,async:u})}function Mn(e,r,s,l,u){return e===void 0&&(e=null),l===void 0&&(l=!1),u===void 0&&(u=!1),Ye({type:"FunctionExpression",id:e,params:r,body:s,generator:l,async:u})}function Ne(e){return Ye({type:"Identifier",name:e})}function JF(e,r,s){return s===void 0&&(s=null),Ye({type:"IfStatement",test:e,consequent:r,alternate:s})}function Od(e,r){return Ye({type:"LabeledStatement",label:e,body:r})}function Jt(e){return Ye({type:"StringLiteral",value:e})}function Wr(e){return Ye({type:"NumericLiteral",value:e})}function Bn(){return{type:"NullLiteral"}}function un(e){return Ye({type:"BooleanLiteral",value:e})}function Wg(e,r){return r===void 0&&(r=""),Ye({type:"RegExpLiteral",pattern:e,flags:r})}function pi(e,r,s){return Ye({type:"LogicalExpression",operator:e,left:r,right:s})}function Vt(e,r,s,l){return s===void 0&&(s=!1),l===void 0&&(l=null),Ye({type:"MemberExpression",object:e,property:r,computed:s,optional:l})}function qf(e,r){return Ye({type:"NewExpression",callee:e,arguments:r})}function cR(e,r,s,l){return r===void 0&&(r=[]),s===void 0&&(s="script"),l===void 0&&(l=null),Ye({type:"Program",body:e,directives:r,sourceType:s,interpreter:l})}function Oa(e){return Ye({type:"ObjectExpression",properties:e})}function dR(e,r,s,l,u,o,c){return e===void 0&&(e="method"),u===void 0&&(u=!1),o===void 0&&(o=!1),c===void 0&&(c=!1),Ye({type:"ObjectMethod",kind:e,key:r,params:s,body:l,computed:u,generator:o,async:c})}function sn(e,r,s,l,u){return s===void 0&&(s=!1),l===void 0&&(l=!1),u===void 0&&(u=null),Ye({type:"ObjectProperty",key:e,value:r,computed:s,shorthand:l,decorators:u})}function No(e){return Ye({type:"RestElement",argument:e})}function ln(e){return e===void 0&&(e=null),Ye({type:"ReturnStatement",argument:e})}function Mr(e){return Ye({type:"SequenceExpression",expressions:e})}function pR(e){return Ye({type:"ParenthesizedExpression",expression:e})}function YF(e,r){return e===void 0&&(e=null),Ye({type:"SwitchCase",test:e,consequent:r})}function QF(e,r){return Ye({type:"SwitchStatement",discriminant:e,cases:r})}function qr(){return{type:"ThisExpression"}}function fR(e){return Ye({type:"ThrowStatement",argument:e})}function ZF(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TryStatement",block:e,handler:r,finalizer:s})}function vn(e,r,s){return s===void 0&&(s=!0),Ye({type:"UnaryExpression",operator:e,argument:r,prefix:s})}function Gg(e,r,s){return s===void 0&&(s=!1),Ye({type:"UpdateExpression",operator:e,argument:r,prefix:s})}function Br(e,r){return Ye({type:"VariableDeclaration",kind:e,declarations:r})}function Sr(e,r){return r===void 0&&(r=null),Ye({type:"VariableDeclarator",id:e,init:r})}function e$(e,r){return Ye({type:"WhileStatement",test:e,body:r})}function t$(e,r){return Ye({type:"WithStatement",object:e,body:r})}function r$(e,r){return Ye({type:"AssignmentPattern",left:e,right:r})}function $l(e){return Ye({type:"ArrayPattern",elements:e})}function fi(e,r,s){return s===void 0&&(s=!1),Ye({type:"ArrowFunctionExpression",params:e,body:r,async:s,expression:null})}function a$(e){return Ye({type:"ClassBody",body:e})}function hR(e,r,s,l){return e===void 0&&(e=null),r===void 0&&(r=null),l===void 0&&(l=null),Ye({type:"ClassExpression",id:e,superClass:r,body:s,decorators:l})}function n$(e,r,s,l){return e===void 0&&(e=null),r===void 0&&(r=null),l===void 0&&(l=null),Ye({type:"ClassDeclaration",id:e,superClass:r,body:s,decorators:l})}function s$(e){return Ye({type:"ExportAllDeclaration",source:e})}function i$(e){return Ye({type:"ExportDefaultDeclaration",declaration:e})}function Zs(e,r,s){return e===void 0&&(e=null),r===void 0&&(r=[]),s===void 0&&(s=null),Ye({type:"ExportNamedDeclaration",declaration:e,specifiers:r,source:s})}function hi(e,r){return Ye({type:"ExportSpecifier",local:e,exported:r})}function o$(e,r,s,l){return l===void 0&&(l=!1),Ye({type:"ForOfStatement",left:e,right:r,body:s,await:l})}function Kg(e,r){return Ye({type:"ImportDeclaration",specifiers:e,source:r})}function mR(e){return Ye({type:"ImportDefaultSpecifier",local:e})}function Hg(e){return Ye({type:"ImportNamespaceSpecifier",local:e})}function Uf(e,r){return Ye({type:"ImportSpecifier",local:e,imported:r})}function l$(e,r){return r===void 0&&(r=null),Ye({type:"ImportExpression",source:e,options:r})}function yR(e,r){return Ye({type:"MetaProperty",meta:e,property:r})}function zu(e,r,s,l,u,o,c,f){return e===void 0&&(e="method"),u===void 0&&(u=!1),o===void 0&&(o=!1),c===void 0&&(c=!1),f===void 0&&(f=!1),Ye({type:"ClassMethod",kind:e,key:r,params:s,body:l,computed:u,static:o,generator:c,async:f})}function Vf(e){return Ye({type:"ObjectPattern",properties:e})}function Xu(e){return Ye({type:"SpreadElement",argument:e})}function Wf(){return{type:"Super"}}function u$(e,r){return Ye({type:"TaggedTemplateExpression",tag:e,quasi:r})}function zg(e,r){return r===void 0&&(r=!1),Ye({type:"TemplateElement",value:e,tail:r})}function gR(e,r){return Ye({type:"TemplateLiteral",quasis:e,expressions:r})}function _d(e,r){return e===void 0&&(e=null),r===void 0&&(r=!1),Ye({type:"YieldExpression",argument:e,delegate:r})}function to(e){return Ye({type:"AwaitExpression",argument:e})}function c$(){return{type:"Import"}}function d$(e){return Ye({type:"BigIntLiteral",value:e})}function p$(e){return Ye({type:"ExportNamespaceSpecifier",exported:e})}function Xg(e,r,s,l){return s===void 0&&(s=!1),Ye({type:"OptionalMemberExpression",object:e,property:r,computed:s,optional:l})}function Nd(e,r,s){return Ye({type:"OptionalCallExpression",callee:e,arguments:r,optional:s})}function Gf(e,r,s,l,u,o){return r===void 0&&(r=null),s===void 0&&(s=null),l===void 0&&(l=null),u===void 0&&(u=!1),o===void 0&&(o=!1),Ye({type:"ClassProperty",key:e,value:r,typeAnnotation:s,decorators:l,computed:u,static:o})}function f$(e,r,s,l,u,o){return r===void 0&&(r=null),s===void 0&&(s=null),l===void 0&&(l=null),u===void 0&&(u=!1),o===void 0&&(o=!1),Ye({type:"ClassAccessorProperty",key:e,value:r,typeAnnotation:s,decorators:l,computed:u,static:o})}function Jg(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),l===void 0&&(l=!1),Ye({type:"ClassPrivateProperty",key:e,value:r,decorators:s,static:l})}function Ju(e,r,s,l,u){return e===void 0&&(e="method"),u===void 0&&(u=!1),Ye({type:"ClassPrivateMethod",kind:e,key:r,params:s,body:l,static:u})}function vR(e){return Ye({type:"PrivateName",id:e})}function kd(e){return Ye({type:"StaticBlock",body:e})}function Kf(){return{type:"AnyTypeAnnotation"}}function bR(e){return Ye({type:"ArrayTypeAnnotation",elementType:e})}function Yg(){return{type:"BooleanTypeAnnotation"}}function h$(e){return Ye({type:"BooleanLiteralTypeAnnotation",value:e})}function xR(){return{type:"NullLiteralTypeAnnotation"}}function m$(e,r){return r===void 0&&(r=null),Ye({type:"ClassImplements",id:e,typeParameters:r})}function y$(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"DeclareClass",id:e,typeParameters:r,extends:s,body:l})}function g$(e){return Ye({type:"DeclareFunction",id:e})}function v$(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"DeclareInterface",id:e,typeParameters:r,extends:s,body:l})}function b$(e,r,s){return s===void 0&&(s=null),Ye({type:"DeclareModule",id:e,body:r,kind:s})}function x$(e){return Ye({type:"DeclareModuleExports",typeAnnotation:e})}function R$(e,r,s){return r===void 0&&(r=null),Ye({type:"DeclareTypeAlias",id:e,typeParameters:r,right:s})}function E$(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"DeclareOpaqueType",id:e,typeParameters:r,supertype:s})}function S$(e){return Ye({type:"DeclareVariable",id:e})}function T$(e,r,s){return e===void 0&&(e=null),r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"DeclareExportDeclaration",declaration:e,specifiers:r,source:s})}function w$(e){return Ye({type:"DeclareExportAllDeclaration",source:e})}function P$(e){return Ye({type:"DeclaredPredicate",value:e})}function A$(){return{type:"ExistsTypeAnnotation"}}function I$(e,r,s,l){return e===void 0&&(e=null),s===void 0&&(s=null),Ye({type:"FunctionTypeAnnotation",typeParameters:e,params:r,rest:s,returnType:l})}function C$(e,r){return e===void 0&&(e=null),Ye({type:"FunctionTypeParam",name:e,typeAnnotation:r})}function Dd(e,r){return r===void 0&&(r=null),Ye({type:"GenericTypeAnnotation",id:e,typeParameters:r})}function j$(){return{type:"InferredPredicate"}}function O$(e,r){return r===void 0&&(r=null),Ye({type:"InterfaceExtends",id:e,typeParameters:r})}function _$(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"InterfaceDeclaration",id:e,typeParameters:r,extends:s,body:l})}function N$(e,r){return e===void 0&&(e=null),Ye({type:"InterfaceTypeAnnotation",extends:e,body:r})}function k$(e){return Ye({type:"IntersectionTypeAnnotation",types:e})}function D$(){return{type:"MixedTypeAnnotation"}}function L$(){return{type:"EmptyTypeAnnotation"}}function M$(e){return Ye({type:"NullableTypeAnnotation",typeAnnotation:e})}function B$(e){return Ye({type:"NumberLiteralTypeAnnotation",value:e})}function Hf(){return{type:"NumberTypeAnnotation"}}function F$(e,r,s,l,u){return r===void 0&&(r=[]),s===void 0&&(s=[]),l===void 0&&(l=[]),u===void 0&&(u=!1),Ye({type:"ObjectTypeAnnotation",properties:e,indexers:r,callProperties:s,internalSlots:l,exact:u})}function $$(e,r,s,l,u){return Ye({type:"ObjectTypeInternalSlot",id:e,value:r,optional:s,static:l,method:u})}function q$(e){return Ye({type:"ObjectTypeCallProperty",value:e,static:null})}function U$(e,r,s,l){return e===void 0&&(e=null),l===void 0&&(l=null),Ye({type:"ObjectTypeIndexer",id:e,key:r,value:s,variance:l,static:null})}function V$(e,r,s){return s===void 0&&(s=null),Ye({type:"ObjectTypeProperty",key:e,value:r,variance:s,kind:null,method:null,optional:null,proto:null,static:null})}function W$(e){return Ye({type:"ObjectTypeSpreadProperty",argument:e})}function G$(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"OpaqueType",id:e,typeParameters:r,supertype:s,impltype:l})}function K$(e,r){return Ye({type:"QualifiedTypeIdentifier",id:e,qualification:r})}function H$(e){return Ye({type:"StringLiteralTypeAnnotation",value:e})}function zf(){return{type:"StringTypeAnnotation"}}function z$(){return{type:"SymbolTypeAnnotation"}}function X$(){return{type:"ThisTypeAnnotation"}}function RR(e){return Ye({type:"TupleTypeAnnotation",types:e})}function J$(e){return Ye({type:"TypeofTypeAnnotation",argument:e})}function Y$(e,r,s){return r===void 0&&(r=null),Ye({type:"TypeAlias",id:e,typeParameters:r,right:s})}function Q$(e){return Ye({type:"TypeAnnotation",typeAnnotation:e})}function Z$(e,r){return Ye({type:"TypeCastExpression",expression:e,typeAnnotation:r})}function eq(e,r,s){return e===void 0&&(e=null),r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TypeParameter",bound:e,default:r,variance:s,name:null})}function tq(e){return Ye({type:"TypeParameterDeclaration",params:e})}function rq(e){return Ye({type:"TypeParameterInstantiation",params:e})}function Qg(e){return Ye({type:"UnionTypeAnnotation",types:e})}function aq(e){return Ye({type:"Variance",kind:e})}function Ld(){return{type:"VoidTypeAnnotation"}}function nq(e,r){return Ye({type:"EnumDeclaration",id:e,body:r})}function sq(e){return Ye({type:"EnumBooleanBody",members:e,explicitType:null,hasUnknownMembers:null})}function iq(e){return Ye({type:"EnumNumberBody",members:e,explicitType:null,hasUnknownMembers:null})}function oq(e){return Ye({type:"EnumStringBody",members:e,explicitType:null,hasUnknownMembers:null})}function lq(e){return Ye({type:"EnumSymbolBody",members:e,hasUnknownMembers:null})}function uq(e){return Ye({type:"EnumBooleanMember",id:e,init:null})}function cq(e,r){return Ye({type:"EnumNumberMember",id:e,init:r})}function dq(e,r){return Ye({type:"EnumStringMember",id:e,init:r})}function pq(e){return Ye({type:"EnumDefaultedMember",id:e})}function fq(e,r){return Ye({type:"IndexedAccessType",objectType:e,indexType:r})}function hq(e,r){return Ye({type:"OptionalIndexedAccessType",objectType:e,indexType:r,optional:null})}function Yu(e,r){return r===void 0&&(r=null),Ye({type:"JSXAttribute",name:e,value:r})}function ER(e){return Ye({type:"JSXClosingElement",name:e})}function SR(e,r,s,l){return r===void 0&&(r=null),l===void 0&&(l=null),Ye({type:"JSXElement",openingElement:e,closingElement:r,children:s,selfClosing:l})}function TR(){return{type:"JSXEmptyExpression"}}function ro(e){return Ye({type:"JSXExpressionContainer",expression:e})}function wR(e){return Ye({type:"JSXSpreadChild",expression:e})}function ao(e){return Ye({type:"JSXIdentifier",name:e})}function Zg(e,r){return Ye({type:"JSXMemberExpression",object:e,property:r})}function PR(e,r){return Ye({type:"JSXNamespacedName",namespace:e,name:r})}function AR(e,r,s){return s===void 0&&(s=!1),Ye({type:"JSXOpeningElement",name:e,attributes:r,selfClosing:s})}function IR(e){return Ye({type:"JSXSpreadAttribute",argument:e})}function CR(e){return Ye({type:"JSXText",value:e})}function jR(e,r,s){return Ye({type:"JSXFragment",openingFragment:e,closingFragment:r,children:s})}function OR(){return{type:"JSXOpeningFragment"}}function _R(){return{type:"JSXClosingFragment"}}function mq(){return{type:"Noop"}}function yq(e,r){return Ye({type:"Placeholder",expectedNode:e,name:r})}function gq(e){return Ye({type:"V8IntrinsicIdentifier",name:e})}function vq(){return{type:"ArgumentPlaceholder"}}function bq(e,r){return Ye({type:"BindExpression",object:e,callee:r})}function xq(e,r){return Ye({type:"ImportAttribute",key:e,value:r})}function Rq(e){return Ye({type:"Decorator",expression:e})}function Eq(e,r){return r===void 0&&(r=!1),Ye({type:"DoExpression",body:e,async:r})}function Sq(e){return Ye({type:"ExportDefaultSpecifier",exported:e})}function Tq(e){return Ye({type:"RecordExpression",properties:e})}function wq(e){return e===void 0&&(e=[]),Ye({type:"TupleExpression",elements:e})}function Pq(e){return Ye({type:"DecimalLiteral",value:e})}function Aq(e){return Ye({type:"ModuleExpression",body:e})}function Iq(){return{type:"TopicReference"}}function Cq(e){return Ye({type:"PipelineTopicExpression",expression:e})}function jq(e){return Ye({type:"PipelineBareFunction",callee:e})}function Oq(){return{type:"PipelinePrimaryTopicReference"}}function NR(e){return Ye({type:"TSParameterProperty",parameter:e})}function kR(e,r,s,l){return e===void 0&&(e=null),r===void 0&&(r=null),l===void 0&&(l=null),Ye({type:"TSDeclareFunction",id:e,typeParameters:r,params:s,returnType:l})}function DR(e,r,s,l,u){return e===void 0&&(e=null),s===void 0&&(s=null),u===void 0&&(u=null),Ye({type:"TSDeclareMethod",decorators:e,key:r,typeParameters:s,params:l,returnType:u})}function LR(e,r){return Ye({type:"TSQualifiedName",left:e,right:r})}function MR(e,r,s){return e===void 0&&(e=null),s===void 0&&(s=null),Ye({type:"TSCallSignatureDeclaration",typeParameters:e,parameters:r,typeAnnotation:s})}function BR(e,r,s){return e===void 0&&(e=null),s===void 0&&(s=null),Ye({type:"TSConstructSignatureDeclaration",typeParameters:e,parameters:r,typeAnnotation:s})}function FR(e,r){return r===void 0&&(r=null),Ye({type:"TSPropertySignature",key:e,typeAnnotation:r,kind:null})}function $R(e,r,s,l){return r===void 0&&(r=null),l===void 0&&(l=null),Ye({type:"TSMethodSignature",key:e,typeParameters:r,parameters:s,typeAnnotation:l,kind:null})}function qR(e,r){return r===void 0&&(r=null),Ye({type:"TSIndexSignature",parameters:e,typeAnnotation:r})}function UR(){return{type:"TSAnyKeyword"}}function VR(){return{type:"TSBooleanKeyword"}}function WR(){return{type:"TSBigIntKeyword"}}function GR(){return{type:"TSIntrinsicKeyword"}}function KR(){return{type:"TSNeverKeyword"}}function HR(){return{type:"TSNullKeyword"}}function zR(){return{type:"TSNumberKeyword"}}function XR(){return{type:"TSObjectKeyword"}}function JR(){return{type:"TSStringKeyword"}}function YR(){return{type:"TSSymbolKeyword"}}function QR(){return{type:"TSUndefinedKeyword"}}function ZR(){return{type:"TSUnknownKeyword"}}function e8(){return{type:"TSVoidKeyword"}}function t8(){return{type:"TSThisType"}}function r8(e,r,s){return e===void 0&&(e=null),s===void 0&&(s=null),Ye({type:"TSFunctionType",typeParameters:e,parameters:r,typeAnnotation:s})}function a8(e,r,s){return e===void 0&&(e=null),s===void 0&&(s=null),Ye({type:"TSConstructorType",typeParameters:e,parameters:r,typeAnnotation:s})}function n8(e,r){return r===void 0&&(r=null),Ye({type:"TSTypeReference",typeName:e,typeParameters:r})}function s8(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TSTypePredicate",parameterName:e,typeAnnotation:r,asserts:s})}function i8(e,r){return r===void 0&&(r=null),Ye({type:"TSTypeQuery",exprName:e,typeParameters:r})}function o8(e){return Ye({type:"TSTypeLiteral",members:e})}function l8(e){return Ye({type:"TSArrayType",elementType:e})}function u8(e){return Ye({type:"TSTupleType",elementTypes:e})}function c8(e){return Ye({type:"TSOptionalType",typeAnnotation:e})}function d8(e){return Ye({type:"TSRestType",typeAnnotation:e})}function p8(e,r,s){return s===void 0&&(s=!1),Ye({type:"TSNamedTupleMember",label:e,elementType:r,optional:s})}function e1(e){return Ye({type:"TSUnionType",types:e})}function f8(e){return Ye({type:"TSIntersectionType",types:e})}function h8(e,r,s,l){return Ye({type:"TSConditionalType",checkType:e,extendsType:r,trueType:s,falseType:l})}function m8(e){return Ye({type:"TSInferType",typeParameter:e})}function y8(e){return Ye({type:"TSParenthesizedType",typeAnnotation:e})}function g8(e){return Ye({type:"TSTypeOperator",typeAnnotation:e,operator:null})}function v8(e,r){return Ye({type:"TSIndexedAccessType",objectType:e,indexType:r})}function b8(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TSMappedType",typeParameter:e,typeAnnotation:r,nameType:s})}function x8(e){return Ye({type:"TSLiteralType",literal:e})}function R8(e,r){return r===void 0&&(r=null),Ye({type:"TSExpressionWithTypeArguments",expression:e,typeParameters:r})}function E8(e,r,s,l){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TSInterfaceDeclaration",id:e,typeParameters:r,extends:s,body:l})}function S8(e){return Ye({type:"TSInterfaceBody",body:e})}function T8(e,r,s){return r===void 0&&(r=null),Ye({type:"TSTypeAliasDeclaration",id:e,typeParameters:r,typeAnnotation:s})}function w8(e,r){return r===void 0&&(r=null),Ye({type:"TSInstantiationExpression",expression:e,typeParameters:r})}function P8(e,r){return Ye({type:"TSAsExpression",expression:e,typeAnnotation:r})}function A8(e,r){return Ye({type:"TSSatisfiesExpression",expression:e,typeAnnotation:r})}function I8(e,r){return Ye({type:"TSTypeAssertion",typeAnnotation:e,expression:r})}function C8(e,r){return Ye({type:"TSEnumDeclaration",id:e,members:r})}function j8(e,r){return r===void 0&&(r=null),Ye({type:"TSEnumMember",id:e,initializer:r})}function O8(e,r){return Ye({type:"TSModuleDeclaration",id:e,body:r})}function _8(e){return Ye({type:"TSModuleBlock",body:e})}function N8(e,r,s){return r===void 0&&(r=null),s===void 0&&(s=null),Ye({type:"TSImportType",argument:e,qualifier:r,typeParameters:s})}function k8(e,r){return Ye({type:"TSImportEqualsDeclaration",id:e,moduleReference:r,isExport:null})}function D8(e){return Ye({type:"TSExternalModuleReference",expression:e})}function L8(e){return Ye({type:"TSNonNullExpression",expression:e})}function M8(e){return Ye({type:"TSExportAssignment",expression:e})}function B8(e){return Ye({type:"TSNamespaceExportDeclaration",id:e})}function F8(e){return Ye({type:"TSTypeAnnotation",typeAnnotation:e})}function $8(e){return Ye({type:"TSTypeParameterInstantiation",params:e})}function q8(e){return Ye({type:"TSTypeParameterDeclaration",params:e})}function U8(e,r,s){return e===void 0&&(e=null),r===void 0&&(r=null),Ye({type:"TSTypeParameter",constraint:e,default:r,name:s})}function _q(e){return pt("NumberLiteral","NumericLiteral","The node type "),Wr(e)}function Nq(e,r){return r===void 0&&(r=""),pt("RegexLiteral","RegExpLiteral","The node type "),Wg(e,r)}function kq(e){return pt("RestProperty","RestElement","The node type "),No(e)}function Dq(e){return pt("SpreadProperty","SpreadElement","The node type "),Xu(e)}function D6e(e,r){for(var s=e.value.split(/\r\n|\n|\r/),l=0,u=0;u<s.length;u++)/[^ \t]/.exec(s[u])&&(l=u);for(var o="",c=0;c<s.length;c++){var f=s[c],h=c===0,m=c===s.length-1,g=c===l,x=f.replace(/\t/g," ");h||(x=x.replace(/^ +/,"")),m||(x=x.replace(/ +$/,"")),x&&(g||(x+=" "),o+=x)}o&&r.push(Na(Jt(o),e))}function L6e(e){for(var r=[],s=0;s<e.children.length;s++){var l=e.children[s];if(bg(l)){D6e(l,r);continue}$u(l)&&(l=l.expression),!vg(l)&&r.push(l)}return r}function Lq(e){return!!(e&&Ys[e.type])}function M6e(e){if(!Lq(e)){var r,s=(r=e==null?void 0:e.type)!=null?r:JSON.stringify(e);throw new TypeError('Not a valid node of type "'+s+'"')}}function Te(e,r,s){if(!gn(e,r,s))throw new Error('Expected type "'+e+'" with option '+JSON.stringify(s)+", "+('but instead got "'+r.type+'".'))}function B6e(e,r){Te("ArrayExpression",e,r)}function F6e(e,r){Te("AssignmentExpression",e,r)}function $6e(e,r){Te("BinaryExpression",e,r)}function q6e(e,r){Te("InterpreterDirective",e,r)}function U6e(e,r){Te("Directive",e,r)}function V6e(e,r){Te("DirectiveLiteral",e,r)}function W6e(e,r){Te("BlockStatement",e,r)}function G6e(e,r){Te("BreakStatement",e,r)}function K6e(e,r){Te("CallExpression",e,r)}function H6e(e,r){Te("CatchClause",e,r)}function z6e(e,r){Te("ConditionalExpression",e,r)}function X6e(e,r){Te("ContinueStatement",e,r)}function J6e(e,r){Te("DebuggerStatement",e,r)}function Y6e(e,r){Te("DoWhileStatement",e,r)}function Q6e(e,r){Te("EmptyStatement",e,r)}function Mq(e,r){Te("ExpressionStatement",e,r)}function Z6e(e,r){Te("File",e,r)}function exe(e,r){Te("ForInStatement",e,r)}function txe(e,r){Te("ForStatement",e,r)}function rxe(e,r){Te("FunctionDeclaration",e,r)}function axe(e,r){Te("FunctionExpression",e,r)}function V8(e,r){Te("Identifier",e,r)}function nxe(e,r){Te("IfStatement",e,r)}function sxe(e,r){Te("LabeledStatement",e,r)}function ixe(e,r){Te("StringLiteral",e,r)}function oxe(e,r){Te("NumericLiteral",e,r)}function lxe(e,r){Te("NullLiteral",e,r)}function uxe(e,r){Te("BooleanLiteral",e,r)}function cxe(e,r){Te("RegExpLiteral",e,r)}function dxe(e,r){Te("LogicalExpression",e,r)}function pxe(e,r){Te("MemberExpression",e,r)}function fxe(e,r){Te("NewExpression",e,r)}function hxe(e,r){Te("Program",e,r)}function mxe(e,r){Te("ObjectExpression",e,r)}function yxe(e,r){Te("ObjectMethod",e,r)}function gxe(e,r){Te("ObjectProperty",e,r)}function Bq(e,r){Te("RestElement",e,r)}function vxe(e,r){Te("ReturnStatement",e,r)}function bxe(e,r){Te("SequenceExpression",e,r)}function xxe(e,r){Te("ParenthesizedExpression",e,r)}function Rxe(e,r){Te("SwitchCase",e,r)}function Exe(e,r){Te("SwitchStatement",e,r)}function Sxe(e,r){Te("ThisExpression",e,r)}function Txe(e,r){Te("ThrowStatement",e,r)}function wxe(e,r){Te("TryStatement",e,r)}function Pxe(e,r){Te("UnaryExpression",e,r)}function Axe(e,r){Te("UpdateExpression",e,r)}function Ixe(e,r){Te("VariableDeclaration",e,r)}function Cxe(e,r){Te("VariableDeclarator",e,r)}function jxe(e,r){Te("WhileStatement",e,r)}function Oxe(e,r){Te("WithStatement",e,r)}function _xe(e,r){Te("AssignmentPattern",e,r)}function Nxe(e,r){Te("ArrayPattern",e,r)}function kxe(e,r){Te("ArrowFunctionExpression",e,r)}function Dxe(e,r){Te("ClassBody",e,r)}function Lxe(e,r){Te("ClassExpression",e,r)}function Mxe(e,r){Te("ClassDeclaration",e,r)}function Bxe(e,r){Te("ExportAllDeclaration",e,r)}function Fxe(e,r){Te("ExportDefaultDeclaration",e,r)}function $xe(e,r){Te("ExportNamedDeclaration",e,r)}function qxe(e,r){Te("ExportSpecifier",e,r)}function Uxe(e,r){Te("ForOfStatement",e,r)}function Vxe(e,r){Te("ImportDeclaration",e,r)}function Wxe(e,r){Te("ImportDefaultSpecifier",e,r)}function Gxe(e,r){Te("ImportNamespaceSpecifier",e,r)}function Kxe(e,r){Te("ImportSpecifier",e,r)}function Hxe(e,r){Te("ImportExpression",e,r)}function zxe(e,r){Te("MetaProperty",e,r)}function Xxe(e,r){Te("ClassMethod",e,r)}function Jxe(e,r){Te("ObjectPattern",e,r)}function Yxe(e,r){Te("SpreadElement",e,r)}function Qxe(e,r){Te("Super",e,r)}function Zxe(e,r){Te("TaggedTemplateExpression",e,r)}function e4e(e,r){Te("TemplateElement",e,r)}function t4e(e,r){Te("TemplateLiteral",e,r)}function r4e(e,r){Te("YieldExpression",e,r)}function a4e(e,r){Te("AwaitExpression",e,r)}function n4e(e,r){Te("Import",e,r)}function s4e(e,r){Te("BigIntLiteral",e,r)}function i4e(e,r){Te("ExportNamespaceSpecifier",e,r)}function o4e(e,r){Te("OptionalMemberExpression",e,r)}function l4e(e,r){Te("OptionalCallExpression",e,r)}function u4e(e,r){Te("ClassProperty",e,r)}function c4e(e,r){Te("ClassAccessorProperty",e,r)}function d4e(e,r){Te("ClassPrivateProperty",e,r)}function p4e(e,r){Te("ClassPrivateMethod",e,r)}function f4e(e,r){Te("PrivateName",e,r)}function h4e(e,r){Te("StaticBlock",e,r)}function m4e(e,r){Te("AnyTypeAnnotation",e,r)}function y4e(e,r){Te("ArrayTypeAnnotation",e,r)}function g4e(e,r){Te("BooleanTypeAnnotation",e,r)}function v4e(e,r){Te("BooleanLiteralTypeAnnotation",e,r)}function b4e(e,r){Te("NullLiteralTypeAnnotation",e,r)}function x4e(e,r){Te("ClassImplements",e,r)}function R4e(e,r){Te("DeclareClass",e,r)}function E4e(e,r){Te("DeclareFunction",e,r)}function S4e(e,r){Te("DeclareInterface",e,r)}function T4e(e,r){Te("DeclareModule",e,r)}function w4e(e,r){Te("DeclareModuleExports",e,r)}function P4e(e,r){Te("DeclareTypeAlias",e,r)}function A4e(e,r){Te("DeclareOpaqueType",e,r)}function I4e(e,r){Te("DeclareVariable",e,r)}function C4e(e,r){Te("DeclareExportDeclaration",e,r)}function j4e(e,r){Te("DeclareExportAllDeclaration",e,r)}function O4e(e,r){Te("DeclaredPredicate",e,r)}function _4e(e,r){Te("ExistsTypeAnnotation",e,r)}function N4e(e,r){Te("FunctionTypeAnnotation",e,r)}function k4e(e,r){Te("FunctionTypeParam",e,r)}function D4e(e,r){Te("GenericTypeAnnotation",e,r)}function L4e(e,r){Te("InferredPredicate",e,r)}function M4e(e,r){Te("InterfaceExtends",e,r)}function B4e(e,r){Te("InterfaceDeclaration",e,r)}function F4e(e,r){Te("InterfaceTypeAnnotation",e,r)}function $4e(e,r){Te("IntersectionTypeAnnotation",e,r)}function q4e(e,r){Te("MixedTypeAnnotation",e,r)}function U4e(e,r){Te("EmptyTypeAnnotation",e,r)}function V4e(e,r){Te("NullableTypeAnnotation",e,r)}function W4e(e,r){Te("NumberLiteralTypeAnnotation",e,r)}function G4e(e,r){Te("NumberTypeAnnotation",e,r)}function K4e(e,r){Te("ObjectTypeAnnotation",e,r)}function H4e(e,r){Te("ObjectTypeInternalSlot",e,r)}function z4e(e,r){Te("ObjectTypeCallProperty",e,r)}function X4e(e,r){Te("ObjectTypeIndexer",e,r)}function J4e(e,r){Te("ObjectTypeProperty",e,r)}function Y4e(e,r){Te("ObjectTypeSpreadProperty",e,r)}function Q4e(e,r){Te("OpaqueType",e,r)}function Z4e(e,r){Te("QualifiedTypeIdentifier",e,r)}function e7e(e,r){Te("StringLiteralTypeAnnotation",e,r)}function t7e(e,r){Te("StringTypeAnnotation",e,r)}function r7e(e,r){Te("SymbolTypeAnnotation",e,r)}function a7e(e,r){Te("ThisTypeAnnotation",e,r)}function n7e(e,r){Te("TupleTypeAnnotation",e,r)}function s7e(e,r){Te("TypeofTypeAnnotation",e,r)}function i7e(e,r){Te("TypeAlias",e,r)}function o7e(e,r){Te("TypeAnnotation",e,r)}function l7e(e,r){Te("TypeCastExpression",e,r)}function u7e(e,r){Te("TypeParameter",e,r)}function c7e(e,r){Te("TypeParameterDeclaration",e,r)}function d7e(e,r){Te("TypeParameterInstantiation",e,r)}function p7e(e,r){Te("UnionTypeAnnotation",e,r)}function f7e(e,r){Te("Variance",e,r)}function h7e(e,r){Te("VoidTypeAnnotation",e,r)}function m7e(e,r){Te("EnumDeclaration",e,r)}function y7e(e,r){Te("EnumBooleanBody",e,r)}function g7e(e,r){Te("EnumNumberBody",e,r)}function v7e(e,r){Te("EnumStringBody",e,r)}function b7e(e,r){Te("EnumSymbolBody",e,r)}function x7e(e,r){Te("EnumBooleanMember",e,r)}function R7e(e,r){Te("EnumNumberMember",e,r)}function E7e(e,r){Te("EnumStringMember",e,r)}function S7e(e,r){Te("EnumDefaultedMember",e,r)}function T7e(e,r){Te("IndexedAccessType",e,r)}function w7e(e,r){Te("OptionalIndexedAccessType",e,r)}function P7e(e,r){Te("JSXAttribute",e,r)}function A7e(e,r){Te("JSXClosingElement",e,r)}function I7e(e,r){Te("JSXElement",e,r)}function C7e(e,r){Te("JSXEmptyExpression",e,r)}function j7e(e,r){Te("JSXExpressionContainer",e,r)}function O7e(e,r){Te("JSXSpreadChild",e,r)}function _7e(e,r){Te("JSXIdentifier",e,r)}function N7e(e,r){Te("JSXMemberExpression",e,r)}function k7e(e,r){Te("JSXNamespacedName",e,r)}function D7e(e,r){Te("JSXOpeningElement",e,r)}function L7e(e,r){Te("JSXSpreadAttribute",e,r)}function M7e(e,r){Te("JSXText",e,r)}function B7e(e,r){Te("JSXFragment",e,r)}function F7e(e,r){Te("JSXOpeningFragment",e,r)}function $7e(e,r){Te("JSXClosingFragment",e,r)}function q7e(e,r){Te("Noop",e,r)}function U7e(e,r){Te("Placeholder",e,r)}function V7e(e,r){Te("V8IntrinsicIdentifier",e,r)}function W7e(e,r){Te("ArgumentPlaceholder",e,r)}function G7e(e,r){Te("BindExpression",e,r)}function K7e(e,r){Te("ImportAttribute",e,r)}function H7e(e,r){Te("Decorator",e,r)}function z7e(e,r){Te("DoExpression",e,r)}function X7e(e,r){Te("ExportDefaultSpecifier",e,r)}function J7e(e,r){Te("RecordExpression",e,r)}function Y7e(e,r){Te("TupleExpression",e,r)}function Q7e(e,r){Te("DecimalLiteral",e,r)}function Z7e(e,r){Te("ModuleExpression",e,r)}function eRe(e,r){Te("TopicReference",e,r)}function tRe(e,r){Te("PipelineTopicExpression",e,r)}function rRe(e,r){Te("PipelineBareFunction",e,r)}function aRe(e,r){Te("PipelinePrimaryTopicReference",e,r)}function nRe(e,r){Te("TSParameterProperty",e,r)}function sRe(e,r){Te("TSDeclareFunction",e,r)}function iRe(e,r){Te("TSDeclareMethod",e,r)}function oRe(e,r){Te("TSQualifiedName",e,r)}function lRe(e,r){Te("TSCallSignatureDeclaration",e,r)}function uRe(e,r){Te("TSConstructSignatureDeclaration",e,r)}function cRe(e,r){Te("TSPropertySignature",e,r)}function dRe(e,r){Te("TSMethodSignature",e,r)}function pRe(e,r){Te("TSIndexSignature",e,r)}function fRe(e,r){Te("TSAnyKeyword",e,r)}function hRe(e,r){Te("TSBooleanKeyword",e,r)}function mRe(e,r){Te("TSBigIntKeyword",e,r)}function yRe(e,r){Te("TSIntrinsicKeyword",e,r)}function gRe(e,r){Te("TSNeverKeyword",e,r)}function vRe(e,r){Te("TSNullKeyword",e,r)}function bRe(e,r){Te("TSNumberKeyword",e,r)}function xRe(e,r){Te("TSObjectKeyword",e,r)}function RRe(e,r){Te("TSStringKeyword",e,r)}function ERe(e,r){Te("TSSymbolKeyword",e,r)}function SRe(e,r){Te("TSUndefinedKeyword",e,r)}function TRe(e,r){Te("TSUnknownKeyword",e,r)}function wRe(e,r){Te("TSVoidKeyword",e,r)}function PRe(e,r){Te("TSThisType",e,r)}function ARe(e,r){Te("TSFunctionType",e,r)}function IRe(e,r){Te("TSConstructorType",e,r)}function CRe(e,r){Te("TSTypeReference",e,r)}function jRe(e,r){Te("TSTypePredicate",e,r)}function ORe(e,r){Te("TSTypeQuery",e,r)}function _Re(e,r){Te("TSTypeLiteral",e,r)}function NRe(e,r){Te("TSArrayType",e,r)}function kRe(e,r){Te("TSTupleType",e,r)}function DRe(e,r){Te("TSOptionalType",e,r)}function LRe(e,r){Te("TSRestType",e,r)}function MRe(e,r){Te("TSNamedTupleMember",e,r)}function BRe(e,r){Te("TSUnionType",e,r)}function FRe(e,r){Te("TSIntersectionType",e,r)}function $Re(e,r){Te("TSConditionalType",e,r)}function qRe(e,r){Te("TSInferType",e,r)}function URe(e,r){Te("TSParenthesizedType",e,r)}function VRe(e,r){Te("TSTypeOperator",e,r)}function WRe(e,r){Te("TSIndexedAccessType",e,r)}function GRe(e,r){Te("TSMappedType",e,r)}function KRe(e,r){Te("TSLiteralType",e,r)}function HRe(e,r){Te("TSExpressionWithTypeArguments",e,r)}function zRe(e,r){Te("TSInterfaceDeclaration",e,r)}function XRe(e,r){Te("TSInterfaceBody",e,r)}function JRe(e,r){Te("TSTypeAliasDeclaration",e,r)}function YRe(e,r){Te("TSInstantiationExpression",e,r)}function QRe(e,r){Te("TSAsExpression",e,r)}function ZRe(e,r){Te("TSSatisfiesExpression",e,r)}function e8e(e,r){Te("TSTypeAssertion",e,r)}function t8e(e,r){Te("TSEnumDeclaration",e,r)}function r8e(e,r){Te("TSEnumMember",e,r)}function a8e(e,r){Te("TSModuleDeclaration",e,r)}function n8e(e,r){Te("TSModuleBlock",e,r)}function s8e(e,r){Te("TSImportType",e,r)}function i8e(e,r){Te("TSImportEqualsDeclaration",e,r)}function o8e(e,r){Te("TSExternalModuleReference",e,r)}function l8e(e,r){Te("TSNonNullExpression",e,r)}function u8e(e,r){Te("TSExportAssignment",e,r)}function c8e(e,r){Te("TSNamespaceExportDeclaration",e,r)}function d8e(e,r){Te("TSTypeAnnotation",e,r)}function p8e(e,r){Te("TSTypeParameterInstantiation",e,r)}function f8e(e,r){Te("TSTypeParameterDeclaration",e,r)}function h8e(e,r){Te("TSTypeParameter",e,r)}function m8e(e,r){Te("Standardized",e,r)}function Fq(e,r){Te("Expression",e,r)}function y8e(e,r){Te("Binary",e,r)}function g8e(e,r){Te("Scopable",e,r)}function v8e(e,r){Te("BlockParent",e,r)}function b8e(e,r){Te("Block",e,r)}function x8e(e,r){Te("Statement",e,r)}function R8e(e,r){Te("Terminatorless",e,r)}function E8e(e,r){Te("CompletionStatement",e,r)}function S8e(e,r){Te("Conditional",e,r)}function T8e(e,r){Te("Loop",e,r)}function w8e(e,r){Te("While",e,r)}function P8e(e,r){Te("ExpressionWrapper",e,r)}function A8e(e,r){Te("For",e,r)}function I8e(e,r){Te("ForXStatement",e,r)}function C8e(e,r){Te("Function",e,r)}function j8e(e,r){Te("FunctionParent",e,r)}function O8e(e,r){Te("Pureish",e,r)}function _8e(e,r){Te("Declaration",e,r)}function N8e(e,r){Te("PatternLike",e,r)}function k8e(e,r){Te("LVal",e,r)}function D8e(e,r){Te("TSEntityName",e,r)}function L8e(e,r){Te("Literal",e,r)}function M8e(e,r){Te("Immutable",e,r)}function B8e(e,r){Te("UserWhitespacable",e,r)}function F8e(e,r){Te("Method",e,r)}function $8e(e,r){Te("ObjectMember",e,r)}function q8e(e,r){Te("Property",e,r)}function U8e(e,r){Te("UnaryLike",e,r)}function V8e(e,r){Te("Pattern",e,r)}function W8e(e,r){Te("Class",e,r)}function G8e(e,r){Te("ImportOrExportDeclaration",e,r)}function K8e(e,r){Te("ExportDeclaration",e,r)}function H8e(e,r){Te("ModuleSpecifier",e,r)}function z8e(e,r){Te("Accessor",e,r)}function X8e(e,r){Te("Private",e,r)}function J8e(e,r){Te("Flow",e,r)}function Y8e(e,r){Te("FlowType",e,r)}function Q8e(e,r){Te("FlowBaseAnnotation",e,r)}function Z8e(e,r){Te("FlowDeclaration",e,r)}function eEe(e,r){Te("FlowPredicate",e,r)}function tEe(e,r){Te("EnumBody",e,r)}function rEe(e,r){Te("EnumMember",e,r)}function aEe(e,r){Te("JSX",e,r)}function nEe(e,r){Te("Miscellaneous",e,r)}function sEe(e,r){Te("TypeScript",e,r)}function iEe(e,r){Te("TSTypeElement",e,r)}function oEe(e,r){Te("TSType",e,r)}function lEe(e,r){Te("TSBaseType",e,r)}function uEe(e,r){pt("assertNumberLiteral","assertNumericLiteral"),Te("NumberLiteral",e,r)}function cEe(e,r){pt("assertRegexLiteral","assertRegExpLiteral"),Te("RegexLiteral",e,r)}function dEe(e,r){pt("assertRestProperty","assertRestElement"),Te("RestProperty",e,r)}function pEe(e,r){pt("assertSpreadProperty","assertSpreadElement"),Te("SpreadProperty",e,r)}function fEe(e,r){pt("assertModuleDeclaration","assertImportOrExportDeclaration"),Te("ModuleDeclaration",e,r)}function $q(e){switch(e){case"string":return zf();case"number":return Hf();case"undefined":return Ld();case"boolean":return Yg();case"function":return Dd(Ne("Function"));case"object":return Dd(Ne("Object"));case"symbol":return Dd(Ne("Symbol"));case"bigint":return Kf()}throw new Error("Invalid typeof value: "+e)}function qq(e){return Dt(e)?e.name:e.id.name+"."+qq(e.qualification)}function W8(e){for(var r=Array.from(e),s=new Map,l=new Map,u=new Set,o=[],c=0;c<r.length;c++){var f=r[c];if(f&&!o.includes(f)){if(Tf(f))return[f];if(_7(f)){l.set(f.type,f);continue}if(Af(f)){u.has(f.types)||(r.push.apply(r,fe(f.types)),u.add(f.types));continue}if(wf(f)){var h=qq(f.id);if(s.has(h)){var m=s.get(h);if(m.typeParameters){if(f.typeParameters){var g;(g=m.typeParameters.params).push.apply(g,fe(f.typeParameters.params)),m.typeParameters.params=W8(m.typeParameters.params)}}else m=f.typeParameters}else s.set(h,f);continue}o.push(f)}}for(var x=C(l),R;!(R=x()).done;){var w=je(R.value,2),T=w[1];o.push(T)}for(var I=C(s),P;!(P=I()).done;){var O=je(P.value,2),j=O[1];o.push(j)}return o}function t1(e){var r=W8(e);return r.length===1?r[0]:Qg(r)}function Uq(e){return Dt(e)?e.name:e.right.name+"."+Uq(e.left)}function Vq(e){for(var r=Array.from(e),s=new Map,l=new Map,u=new Set,o=[],c=0;c<r.length;c++){var f=r[c];if(f&&!o.includes(f)){if(Ag(f))return[f];if(lF(f)){l.set(f.type,f);continue}if(Q(f)){u.has(f.types)||(r.push.apply(r,fe(f.types)),u.add(f.types));continue}if(If(f)&&f.typeParameters){var h=Uq(f.typeName);if(s.has(h)){var m=s.get(h);if(m.typeParameters){if(f.typeParameters){var g;(g=m.typeParameters.params).push.apply(g,fe(f.typeParameters.params)),m.typeParameters.params=Vq(m.typeParameters.params)}}else m=f.typeParameters}else s.set(h,f);continue}o.push(f)}}for(var x=C(l),R;!(R=x()).done;){var w=je(R.value,2),T=w[1];o.push(T)}for(var I=C(s),P;!(P=I()).done;){var O=je(P.value,2),j=O[1];o.push(j)}return o}function Wq(e){var r=e.map(function(l){return I7(l)?l.typeAnnotation:l}),s=Vq(r);return s.length===1?s[0]:e1(s)}function Qu(){return vn("void",Wr(0),!0)}var hEe={hasOwn:Function.call.bind(Object.prototype.hasOwnProperty)},no=hEe.hasOwn;function Gq(e,r,s,l){return e&&typeof e.type=="string"?Kq(e,r,s,l):e}function G8(e,r,s,l){return Array.isArray(e)?e.map(function(u){return Gq(u,r,s,l)}):Gq(e,r,s,l)}function me(e,r,s){return r===void 0&&(r=!0),s===void 0&&(s=!1),Kq(e,r,s,new Map)}function Kq(e,r,s,l){if(r===void 0&&(r=!0),s===void 0&&(s=!1),!e)return e;var u=e.type,o={type:e.type};if(Dt(e))o.name=e.name,no(e,"optional")&&typeof e.optional=="boolean"&&(o.optional=e.optional),no(e,"typeAnnotation")&&(o.typeAnnotation=r?G8(e.typeAnnotation,!0,s,l):e.typeAnnotation),no(e,"decorators")&&(o.decorators=r?G8(e.decorators,!0,s,l):e.decorators);else if(no(Hu,u))for(var c=0,f=Object.keys(Hu[u]);c<f.length;c++){var h=f[c];no(e,h)&&(r?o[h]=Ua(e)&&h==="comments"?r1(e.comments,r,s,l):G8(e[h],!0,s,l):o[h]=e[h])}else throw new Error('Unknown node type: "'+u+'"');return no(e,"loc")&&(s?o.loc=null:o.loc=e.loc),no(e,"leadingComments")&&(o.leadingComments=r1(e.leadingComments,r,s,l)),no(e,"innerComments")&&(o.innerComments=r1(e.innerComments,r,s,l)),no(e,"trailingComments")&&(o.trailingComments=r1(e.trailingComments,r,s,l)),no(e,"extra")&&(o.extra=Object.assign({},e.extra)),o}function r1(e,r,s,l){return!e||!r?e:e.map(function(u){var o=l.get(u);if(o)return o;var c=u.type,f=u.value,h=u.loc,m={type:c,value:f,loc:h};return s&&(m.loc=null),l.set(u,m),m})}function Hq(e){return me(e,!1)}function mEe(e){return me(e)}function yEe(e){return me(e,!0,!0)}function gEe(e){return me(e,!1,!0)}function K8(e,r,s){if(!s||!e)return e;var l=r+"Comments";if(e[l])if(r==="leading")e[l]=s.concat(e[l]);else{var u;(u=e[l]).push.apply(u,fe(s))}else e[l]=s;return e}function Xf(e,r,s,l){return K8(e,r,[{type:l?"CommentLine":"CommentBlock",value:s}])}function H8(e,r,s){r&&s&&(r[e]=Array.from(new Set([].concat(r[e],s[e]).filter(Boolean))))}function z8(e,r){H8("innerComments",e,r)}function a1(e,r){H8("leadingComments",e,r)}function X8(e,r){H8("trailingComments",e,r)}function ql(e,r){return X8(e,r),a1(e,r),z8(e,r),e}function J8(e){return q7.forEach(function(r){e[r]=null}),e}var vEe=xr.Standardized,bEe=xr.Expression,xEe=xr.Binary,REe=xr.Scopable,EEe=xr.BlockParent,SEe=xr.Block,TEe=xr.Statement,wEe=xr.Terminatorless,PEe=xr.CompletionStatement,AEe=xr.Conditional,IEe=xr.Loop,CEe=xr.While,jEe=xr.ExpressionWrapper,OEe=xr.For,_Ee=xr.ForXStatement,zq=xr.Function,NEe=xr.FunctionParent,kEe=xr.Pureish,DEe=xr.Declaration,LEe=xr.PatternLike,MEe=xr.LVal,BEe=xr.TSEntityName,FEe=xr.Literal,$Ee=xr.Immutable,qEe=xr.UserWhitespacable,UEe=xr.Method,VEe=xr.ObjectMember,WEe=xr.Property,GEe=xr.UnaryLike,KEe=xr.Pattern,HEe=xr.Class,Xq=xr.ImportOrExportDeclaration,zEe=xr.ExportDeclaration,XEe=xr.ModuleSpecifier,JEe=xr.Accessor,YEe=xr.Private,QEe=xr.Flow,ZEe=xr.FlowType,e9e=xr.FlowBaseAnnotation,t9e=xr.FlowDeclaration,r9e=xr.FlowPredicate,a9e=xr.EnumBody,n9e=xr.EnumMember,s9e=xr.JSX,i9e=xr.Miscellaneous,o9e=xr.TypeScript,l9e=xr.TSTypeElement,u9e=xr.TSType,c9e=xr.TSBaseType,d9e=Xq;function n1(e,r){if(Ue(e))return e;var s=[];return Jr(e)?s=[]:(ui(e)||(Cs(r)?e=ln(e):e=Xt(e)),s=[e]),ea(s)}function p9e(e,r){r===void 0&&(r="body");var s=n1(e[r],e);return e[r]=s,s}function Md(e){e=e+"";for(var r="",s=C(e),l;!(l=s()).done;){var u=l.value;r+=Bl(u.codePointAt(0))?u:"-"}return r=r.replace(/^[-0-9]+/,""),r=r.replace(/[-\s]+(.)?/g,function(o,c){return c?c.toUpperCase():""}),Fl(r)||(r="_"+r),r||"_"}function Jq(e){return e=Md(e),(e==="eval"||e==="arguments")&&(e="_"+e),e}function ko(e,r){return r===void 0&&(r=e.key||e.property),!e.computed&&Dt(r)&&(r=Jt(r.name)),r}function An(e){if(Ea(e)&&(e=e.expression),Zi(e))return e;if(Td(e)?e.type="ClassExpression":Cs(e)&&(e.type="FunctionExpression"),!Zi(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function Ul(e,r,s){if(e){var l=Ys[e.type];if(l){s=s||{},r(e,s);for(var u=C(l),o;!(o=u()).done;){var c=o.value,f=e[c];if(Array.isArray(f))for(var h=C(f),m;!(m=h()).done;){var g=m.value;Ul(g,r,s)}else Ul(f,r,s)}}}}var Yq=["tokens","start","end","loc","raw","rawValue"],f9e=[].concat(fe(q7),["comments"],Yq);function Y8(e,r){r===void 0&&(r={});for(var s=r.preserveComments?Yq:f9e,l=C(s),u;!(u=l()).done;){var o=u.value;e[o]!=null&&(e[o]=void 0)}for(var c=0,f=Object.keys(e);c<f.length;c++){var h=f[c];h[0]==="_"&&e[h]!=null&&(e[h]=void 0)}for(var m=Object.getOwnPropertySymbols(e),g=C(m),x;!(x=g()).done;){var R=x.value;e[R]=null}}function Q8(e,r){return Ul(e,Y8,r),e}function Vl(e,r){r===void 0&&(r=e.key);var s;return e.kind==="method"?Vl.increment()+"":(Dt(r)?s=r.name:nt(r)?s=JSON.stringify(r.value):s=JSON.stringify(Q8(me(r))),e.computed&&(s="["+s+"]"),e.static&&(s="static:"+s),s)}Vl.uid=0,Vl.increment=function(){return Vl.uid>=Number.MAX_SAFE_INTEGER?Vl.uid=0:Vl.uid++};function Qq(e,r){if(ui(e))return e;var s=!1,l;if(Td(e))s=!0,l="ClassDeclaration";else if(Cs(e))s=!0,l="FunctionDeclaration";else if(Se(e))return Xt(e);if(s&&!e.id&&(l=!1),!l){if(r)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=l,e}var h9e=Function.call.bind(Object.prototype.toString);function m9e(e){return h9e(e)==="[object RegExp]"}function y9e(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;var r=Object.getPrototypeOf(e);return r===null||Object.getPrototypeOf(r)===null}function Jf(e){if(e===void 0)return Ne("undefined");if(e===!0||e===!1)return un(e);if(e===null)return Bn();if(typeof e=="string")return Jt(e);if(typeof e=="number"){var r;if(Number.isFinite(e))r=Wr(Math.abs(e));else{var s;Number.isNaN(e)?s=Wr(0):s=Wr(1),r=nn("/",s,Wr(0))}return(e<0||Object.is(e,-0))&&(r=vn("-",r)),r}if(m9e(e)){var l=e.source,u=/\/([a-z]*)$/.exec(e.toString())[1];return Wg(l,u)}if(Array.isArray(e))return Ra(e.map(Jf));if(y9e(e)){for(var o=[],c=0,f=Object.keys(e);c<f.length;c++){var h=f[c],m=void 0;Fl(h)?m=Ne(h):m=Jt(h),o.push(sn(m,Jf(e[h])))}return Oa(o)}throw new Error("don't know how to turn this value into a node")}function g9e(e,r,s){return s===void 0&&(s=!1),e.object=Vt(e.object,e.property,e.computed),e.property=r,e.computed=!!s,e}function Na(e,r){if(!e||!r)return e;for(var s=C(z7.optional),l;!(l=s()).done;){var u=l.value;e[u]==null&&(e[u]=r[u])}for(var o=0,c=Object.keys(r);o<c.length;o++){var f=c[o];f[0]==="_"&&f!=="__clone"&&(e[f]=r[f])}for(var h=C(z7.force),m;!(m=h()).done;){var g=m.value;e[g]=r[g]}return ql(e,r),e}function v9e(e,r){if(Js(e.object))throw new Error("Cannot prepend node to super property access (`super.foo`).");return e.object=Vt(r,e.object),e}function Z8(e){for(var r=[].concat(e),s=Object.create(null);r.length;){var l=r.pop();if(l)switch(l.type){case"ArrayPattern":r.push.apply(r,fe(l.elements));break;case"AssignmentExpression":case"AssignmentPattern":case"ForInStatement":case"ForOfStatement":r.push(l.left);break;case"ObjectPattern":r.push.apply(r,fe(l.properties));break;case"ObjectProperty":r.push(l.value);break;case"RestElement":case"UpdateExpression":r.push(l.argument);break;case"UnaryExpression":l.operator==="delete"&&r.push(l.argument);break;case"Identifier":s[l.name]=l;break}}return s}function _s(e,r,s,l){for(var u=[].concat(e),o=Object.create(null);u.length;){var c=u.shift();if(c&&!(l&&(Se(c)||Lu(c)||hd(c)))){if(Dt(c)){if(r){var f=o[c.name]=o[c.name]||[];f.push(c)}else o[c.name]=c;continue}if(Of(c)&&!yd(c)){j7(c.declaration)&&u.push(c.declaration);continue}if(s){if(ja(c)){u.push(c.id);continue}if(va(c))continue}var h=_s.keys[c.type];if(h)for(var m=0;m<h.length;m++){var g=h[m],x=c[g];x&&(Array.isArray(x)?u.push.apply(u,fe(x)):u.push(x))}}}return o}var b9e={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],DeclareInterface:["id"],DeclareTypeAlias:["id"],DeclareOpaqueType:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ArrowFunctionExpression:["params"],ObjectMethod:["params"],ClassMethod:["params"],ClassPrivateMethod:["params"],ForInStatement:["left"],ForOfStatement:["left"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]};_s.keys=b9e;function s1(e,r){return _s(e,r,!0)}function x9e(e){return or(e)?"null":Hr(e)?"/"+e.pattern+"/"+e.flags:Di(e)?e.quasis.map(function(r){return r.value.raw}).join(""):e.value!==void 0?String(e.value):null}function Zq(e){if(!e.computed||yn(e.key))return e.key}function eU(e,r){if("id"in e&&e.id)return{name:e.id.name,originalNode:e.id};var s="",l;if(Sn(r,{value:e})?l=Zq(r):Kn(e)||Mu(e)?(l=Zq(e),e.kind==="get"?s="get ":e.kind==="set"&&(s="set ")):ag(r,{init:e})?l=r.id:Se(r,{operator:"=",right:e})&&(l=r.left),!l)return null;var u=yn(l)?x9e(l):Dt(l)?l.name:Li(l)?l.id.name:null;return u==null?null:{name:s+u,originalNode:l}}function eE(e,r,s){typeof r=="function"&&(r={enter:r});var l=r,u=l.enter,o=l.exit;tE(e,u,o,s,[])}function tE(e,r,s,l,u){var o=Ys[e.type];if(o){r&&r(e,u,l);for(var c=C(o),f;!(f=c()).done;){var h=f.value,m=e[h];if(Array.isArray(m))for(var g=0;g<m.length;g++){var x=m[g];x&&(u.push({node:e,key:h,index:g}),tE(x,r,s,l,u),u.pop())}else m&&(u.push({node:e,key:h}),tE(m,r,s,l,u),u.pop())}s&&s(e,u,l)}}function tU(e,r,s){if(s&&e.type==="Identifier"&&r.type==="ObjectProperty"&&s.type==="ObjectExpression")return!1;var l=_s.keys[r.type];if(l)for(var u=0;u<l.length;u++){var o=l[u],c=r[o];if(Array.isArray(c)){if(c.includes(e))return!0}else if(c===e)return!0}return!1}function rU(e){return Ja(e)&&(e.kind!=="var"||e[Mg])}function aU(e){return ja(e)||Io(e)||rU(e)}function R9e(e){return _g(e.type,"Immutable")?!0:Dt(e)?e.name==="undefined":!1}function rE(e,r){if(typeof e!="object"||typeof r!="object"||e==null||r==null)return e===r;if(e.type!==r.type)return!1;for(var s=Object.keys(Hu[e.type]||e.type),l=Ys[e.type],u=0,o=s;u<o.length;u++){var c=o[u],f=e[c],h=r[c];if(typeof f!=typeof h)return!1;if(!(f==null&&h==null)){if(f==null||h==null)return!1;if(Array.isArray(f)){if(!Array.isArray(h)||f.length!==h.length)return!1;for(var m=0;m<f.length;m++)if(!rE(f[m],h[m]))return!1;continue}if(typeof f=="object"&&!(l!=null&&l.includes(c))){for(var g=0,x=Object.keys(f);g<x.length;g++){var R=x[g];if(f[R]!==h[R])return!1}continue}if(!rE(f,h))return!1}}return!0}function Bd(e,r,s){switch(r.type){case"MemberExpression":case"OptionalMemberExpression":return r.property===e?!!r.computed:r.object===e;case"JSXMemberExpression":return r.object===e;case"VariableDeclarator":return r.init===e;case"ArrowFunctionExpression":return r.body===e;case"PrivateName":return!1;case"ClassMethod":case"ClassPrivateMethod":case"ObjectMethod":return r.key===e?!!r.computed:!1;case"ObjectProperty":return r.key===e?!!r.computed:!s||s.type!=="ObjectPattern";case"ClassProperty":case"ClassAccessorProperty":return r.key===e?!!r.computed:!0;case"ClassPrivateProperty":return r.key!==e;case"ClassDeclaration":case"ClassExpression":return r.superClass===e;case"AssignmentExpression":return r.right===e;case"AssignmentPattern":return r.right===e;case"LabeledStatement":return!1;case"CatchClause":return!1;case"RestElement":return!1;case"BreakStatement":case"ContinueStatement":return!1;case"FunctionDeclaration":case"FunctionExpression":return!1;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"ExportSpecifier":return s!=null&&s.source?!1:r.local===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ImportAttribute":return!1;case"JSXAttribute":return!1;case"ObjectPattern":case"ArrayPattern":return!1;case"MetaProperty":return!1;case"ObjectTypeProperty":return r.key!==e;case"TSEnumMember":return r.id!==e;case"TSPropertySignature":return r.key===e?!!r.computed:!0}return!0}function nU(e,r){return Ue(e)&&(Cs(r)||Pt(r))?!1:js(e)&&(Cs(r)||Pt(r))?!0:ZB(e)}function E9e(e){return bd(e)||Dt(e.imported||e.exported,{name:"default"})}var S9e=new Set(["abstract","boolean","byte","char","double","enum","final","float","goto","implements","int","interface","long","native","package","private","protected","public","short","static","synchronized","throws","transient","volatile"]);function i1(e){return Fl(e)&&!S9e.has(e)}function sU(e){return Ja(e,{kind:"var"})&&!e[Mg]}var Mi={isReactComponent:U2e,isCompatTag:V2e,buildChildren:L6e},aE=Object.freeze({__proto__:null,ACCESSOR_TYPES:JEe,ALIAS_KEYS:Nf,ASSIGNMENT_OPERATORS:IF,AnyTypeAnnotation:Kf,ArgumentPlaceholder:vq,ArrayExpression:Ra,ArrayPattern:$l,ArrayTypeAnnotation:bR,ArrowFunctionExpression:fi,AssignmentExpression:tr,AssignmentPattern:r$,AwaitExpression:to,BINARY_OPERATORS:AF,BINARY_TYPES:xEe,BLOCKPARENT_TYPES:EEe,BLOCK_SCOPED_SYMBOL:Mg,BLOCK_TYPES:SEe,BOOLEAN_BINARY_OPERATORS:W7,BOOLEAN_NUMBER_BINARY_OPERATORS:U7,BOOLEAN_UNARY_OPERATORS:G7,BUILDER_KEYS:Bg,BigIntLiteral:d$,BinaryExpression:nn,BindExpression:bq,BlockStatement:ea,BooleanLiteral:un,BooleanLiteralTypeAnnotation:h$,BooleanTypeAnnotation:Yg,BreakStatement:WF,CLASS_TYPES:HEe,COMMENT_KEYS:q7,COMPARISON_BINARY_OPERATORS:PF,COMPLETIONSTATEMENT_TYPES:PEe,CONDITIONAL_TYPES:AEe,CallExpression:ft,CatchClause:GF,ClassAccessorProperty:f$,ClassBody:a$,ClassDeclaration:n$,ClassExpression:hR,ClassImplements:m$,ClassMethod:zu,ClassPrivateMethod:Ju,ClassPrivateProperty:Jg,ClassProperty:Gf,ConditionalExpression:Qs,ContinueStatement:KF,DECLARATION_TYPES:DEe,DEPRECATED_ALIASES:qg,DEPRECATED_KEYS:kf,DebuggerStatement:HF,DecimalLiteral:Pq,DeclareClass:y$,DeclareExportAllDeclaration:w$,DeclareExportDeclaration:T$,DeclareFunction:g$,DeclareInterface:v$,DeclareModule:b$,DeclareModuleExports:x$,DeclareOpaqueType:E$,DeclareTypeAlias:R$,DeclareVariable:S$,DeclaredPredicate:P$,Decorator:Rq,Directive:Cd,DirectiveLiteral:jd,DoExpression:Eq,DoWhileStatement:zF,ENUMBODY_TYPES:a9e,ENUMMEMBER_TYPES:n9e,EQUALITY_BINARY_OPERATORS:V7,EXPORTDECLARATION_TYPES:zEe,EXPRESSIONWRAPPER_TYPES:jEe,EXPRESSION_TYPES:bEe,EmptyStatement:oR,EmptyTypeAnnotation:L$,EnumBooleanBody:sq,EnumBooleanMember:uq,EnumDeclaration:nq,EnumDefaultedMember:pq,EnumNumberBody:iq,EnumNumberMember:cq,EnumStringBody:oq,EnumStringMember:dq,EnumSymbolBody:lq,ExistsTypeAnnotation:A$,ExportAllDeclaration:s$,ExportDefaultDeclaration:i$,ExportDefaultSpecifier:Sq,ExportNamedDeclaration:Zs,ExportNamespaceSpecifier:p$,ExportSpecifier:hi,ExpressionStatement:Xt,FLATTENABLE_KEYS:A6e,FLIPPED_ALIAS_KEYS:xr,FLOWBASEANNOTATION_TYPES:e9e,FLOWDECLARATION_TYPES:t9e,FLOWPREDICATE_TYPES:r9e,FLOWTYPE_TYPES:ZEe,FLOW_TYPES:QEe,FORXSTATEMENT_TYPES:_Ee,FOR_INIT_KEYS:I6e,FOR_TYPES:OEe,FUNCTIONPARENT_TYPES:NEe,FUNCTION_TYPES:zq,File:lR,ForInStatement:XF,ForOfStatement:o$,ForStatement:uR,FunctionDeclaration:Vg,FunctionExpression:Mn,FunctionTypeAnnotation:I$,FunctionTypeParam:C$,GenericTypeAnnotation:Dd,IMMUTABLE_TYPES:$Ee,IMPORTOREXPORTDECLARATION_TYPES:Xq,INHERIT_KEYS:z7,Identifier:Ne,IfStatement:JF,Import:c$,ImportAttribute:xq,ImportDeclaration:Kg,ImportDefaultSpecifier:mR,ImportExpression:l$,ImportNamespaceSpecifier:Hg,ImportSpecifier:Uf,IndexedAccessType:fq,InferredPredicate:j$,InterfaceDeclaration:_$,InterfaceExtends:O$,InterfaceTypeAnnotation:N$,InterpreterDirective:iR,IntersectionTypeAnnotation:k$,JSXAttribute:Yu,JSXClosingElement:ER,JSXClosingFragment:_R,JSXElement:SR,JSXEmptyExpression:TR,JSXExpressionContainer:ro,JSXFragment:jR,JSXIdentifier:ao,JSXMemberExpression:Zg,JSXNamespacedName:PR,JSXOpeningElement:AR,JSXOpeningFragment:OR,JSXSpreadAttribute:IR,JSXSpreadChild:wR,JSXText:CR,JSX_TYPES:s9e,LITERAL_TYPES:FEe,LOGICAL_OPERATORS:Ku,LOOP_TYPES:IEe,LVAL_TYPES:MEe,LabeledStatement:Od,LogicalExpression:pi,METHOD_TYPES:UEe,MISCELLANEOUS_TYPES:i9e,MODULEDECLARATION_TYPES:d9e,MODULESPECIFIER_TYPES:XEe,MemberExpression:Vt,MetaProperty:yR,MixedTypeAnnotation:D$,ModuleExpression:Aq,NODE_FIELDS:Hu,NODE_PARENT_VALIDATIONS:X7,NOT_LOCAL_BINDING:jF,NUMBER_BINARY_OPERATORS:Lg,NUMBER_UNARY_OPERATORS:K7,NewExpression:qf,Noop:mq,NullLiteral:Bn,NullLiteralTypeAnnotation:xR,NullableTypeAnnotation:M$,NumberLiteral:_q,NumberLiteralTypeAnnotation:B$,NumberTypeAnnotation:Hf,NumericLiteral:Wr,OBJECTMEMBER_TYPES:VEe,ObjectExpression:Oa,ObjectMethod:dR,ObjectPattern:Vf,ObjectProperty:sn,ObjectTypeAnnotation:F$,ObjectTypeCallProperty:q$,ObjectTypeIndexer:U$,ObjectTypeInternalSlot:$$,ObjectTypeProperty:V$,ObjectTypeSpreadProperty:W$,OpaqueType:G$,OptionalCallExpression:Nd,OptionalIndexedAccessType:hq,OptionalMemberExpression:Xg,PATTERNLIKE_TYPES:LEe,PATTERN_TYPES:KEe,PLACEHOLDERS:tR,PLACEHOLDERS_ALIAS:Id,PLACEHOLDERS_FLIPPED_ALIAS:Bf,PRIVATE_TYPES:YEe,PROPERTY_TYPES:WEe,PUREISH_TYPES:kEe,ParenthesizedExpression:pR,PipelineBareFunction:jq,PipelinePrimaryTopicReference:Oq,PipelineTopicExpression:Cq,Placeholder:yq,PrivateName:vR,Program:cR,QualifiedTypeIdentifier:K$,RecordExpression:Tq,RegExpLiteral:Wg,RegexLiteral:Nq,RestElement:No,RestProperty:kq,ReturnStatement:ln,SCOPABLE_TYPES:REe,STANDARDIZED_TYPES:vEe,STATEMENT_OR_BLOCK_KEYS:TF,STATEMENT_TYPES:TEe,STRING_UNARY_OPERATORS:H7,SequenceExpression:Mr,SpreadElement:Xu,SpreadProperty:Dq,StaticBlock:kd,StringLiteral:Jt,StringLiteralTypeAnnotation:H$,StringTypeAnnotation:zf,Super:Wf,SwitchCase:YF,SwitchStatement:QF,SymbolTypeAnnotation:z$,TERMINATORLESS_TYPES:wEe,TSAnyKeyword:UR,TSArrayType:l8,TSAsExpression:P8,TSBASETYPE_TYPES:c9e,TSBigIntKeyword:WR,TSBooleanKeyword:VR,TSCallSignatureDeclaration:MR,TSConditionalType:h8,TSConstructSignatureDeclaration:BR,TSConstructorType:a8,TSDeclareFunction:kR,TSDeclareMethod:DR,TSENTITYNAME_TYPES:BEe,TSEnumDeclaration:C8,TSEnumMember:j8,TSExportAssignment:M8,TSExpressionWithTypeArguments:R8,TSExternalModuleReference:D8,TSFunctionType:r8,TSImportEqualsDeclaration:k8,TSImportType:N8,TSIndexSignature:qR,TSIndexedAccessType:v8,TSInferType:m8,TSInstantiationExpression:w8,TSInterfaceBody:S8,TSInterfaceDeclaration:E8,TSIntersectionType:f8,TSIntrinsicKeyword:GR,TSLiteralType:x8,TSMappedType:b8,TSMethodSignature:$R,TSModuleBlock:_8,TSModuleDeclaration:O8,TSNamedTupleMember:p8,TSNamespaceExportDeclaration:B8,TSNeverKeyword:KR,TSNonNullExpression:L8,TSNullKeyword:HR,TSNumberKeyword:zR,TSObjectKeyword:XR,TSOptionalType:c8,TSParameterProperty:NR,TSParenthesizedType:y8,TSPropertySignature:FR,TSQualifiedName:LR,TSRestType:d8,TSSatisfiesExpression:A8,TSStringKeyword:JR,TSSymbolKeyword:YR,TSTYPEELEMENT_TYPES:l9e,TSTYPE_TYPES:u9e,TSThisType:t8,TSTupleType:u8,TSTypeAliasDeclaration:T8,TSTypeAnnotation:F8,TSTypeAssertion:I8,TSTypeLiteral:o8,TSTypeOperator:g8,TSTypeParameter:U8,TSTypeParameterDeclaration:q8,TSTypeParameterInstantiation:$8,TSTypePredicate:s8,TSTypeQuery:i8,TSTypeReference:n8,TSUndefinedKeyword:QR,TSUnionType:e1,TSUnknownKeyword:ZR,TSVoidKeyword:e8,TYPES:Ff,TYPESCRIPT_TYPES:o9e,TaggedTemplateExpression:u$,TemplateElement:zg,TemplateLiteral:gR,ThisExpression:qr,ThisTypeAnnotation:X$,ThrowStatement:fR,TopicReference:Iq,TryStatement:ZF,TupleExpression:wq,TupleTypeAnnotation:RR,TypeAlias:Y$,TypeAnnotation:Q$,TypeCastExpression:Z$,TypeParameter:eq,TypeParameterDeclaration:tq,TypeParameterInstantiation:rq,TypeofTypeAnnotation:J$,UNARYLIKE_TYPES:GEe,UNARY_OPERATORS:CF,UPDATE_OPERATORS:wF,USERWHITESPACABLE_TYPES:qEe,UnaryExpression:vn,UnionTypeAnnotation:Qg,UpdateExpression:Gg,V8IntrinsicIdentifier:gq,VISITOR_KEYS:Ys,VariableDeclaration:Br,VariableDeclarator:Sr,Variance:aq,VoidTypeAnnotation:Ld,WHILE_TYPES:CEe,WhileStatement:e$,WithStatement:t$,YieldExpression:_d,__internal__deprecationWarning:pt,addComment:Xf,addComments:K8,anyTypeAnnotation:Kf,appendToMemberExpression:g9e,argumentPlaceholder:vq,arrayExpression:Ra,arrayPattern:$l,arrayTypeAnnotation:bR,arrowFunctionExpression:fi,assertAccessor:z8e,assertAnyTypeAnnotation:m4e,assertArgumentPlaceholder:W7e,assertArrayExpression:B6e,assertArrayPattern:Nxe,assertArrayTypeAnnotation:y4e,assertArrowFunctionExpression:kxe,assertAssignmentExpression:F6e,assertAssignmentPattern:_xe,assertAwaitExpression:a4e,assertBigIntLiteral:s4e,assertBinary:y8e,assertBinaryExpression:$6e,assertBindExpression:G7e,assertBlock:b8e,assertBlockParent:v8e,assertBlockStatement:W6e,assertBooleanLiteral:uxe,assertBooleanLiteralTypeAnnotation:v4e,assertBooleanTypeAnnotation:g4e,assertBreakStatement:G6e,assertCallExpression:K6e,assertCatchClause:H6e,assertClass:W8e,assertClassAccessorProperty:c4e,assertClassBody:Dxe,assertClassDeclaration:Mxe,assertClassExpression:Lxe,assertClassImplements:x4e,assertClassMethod:Xxe,assertClassPrivateMethod:p4e,assertClassPrivateProperty:d4e,assertClassProperty:u4e,assertCompletionStatement:E8e,assertConditional:S8e,assertConditionalExpression:z6e,assertContinueStatement:X6e,assertDebuggerStatement:J6e,assertDecimalLiteral:Q7e,assertDeclaration:_8e,assertDeclareClass:R4e,assertDeclareExportAllDeclaration:j4e,assertDeclareExportDeclaration:C4e,assertDeclareFunction:E4e,assertDeclareInterface:S4e,assertDeclareModule:T4e,assertDeclareModuleExports:w4e,assertDeclareOpaqueType:A4e,assertDeclareTypeAlias:P4e,assertDeclareVariable:I4e,assertDeclaredPredicate:O4e,assertDecorator:H7e,assertDirective:U6e,assertDirectiveLiteral:V6e,assertDoExpression:z7e,assertDoWhileStatement:Y6e,assertEmptyStatement:Q6e,assertEmptyTypeAnnotation:U4e,assertEnumBody:tEe,assertEnumBooleanBody:y7e,assertEnumBooleanMember:x7e,assertEnumDeclaration:m7e,assertEnumDefaultedMember:S7e,assertEnumMember:rEe,assertEnumNumberBody:g7e,assertEnumNumberMember:R7e,assertEnumStringBody:v7e,assertEnumStringMember:E7e,assertEnumSymbolBody:b7e,assertExistsTypeAnnotation:_4e,assertExportAllDeclaration:Bxe,assertExportDeclaration:K8e,assertExportDefaultDeclaration:Fxe,assertExportDefaultSpecifier:X7e,assertExportNamedDeclaration:$xe,assertExportNamespaceSpecifier:i4e,assertExportSpecifier:qxe,assertExpression:Fq,assertExpressionStatement:Mq,assertExpressionWrapper:P8e,assertFile:Z6e,assertFlow:J8e,assertFlowBaseAnnotation:Q8e,assertFlowDeclaration:Z8e,assertFlowPredicate:eEe,assertFlowType:Y8e,assertFor:A8e,assertForInStatement:exe,assertForOfStatement:Uxe,assertForStatement:txe,assertForXStatement:I8e,assertFunction:C8e,assertFunctionDeclaration:rxe,assertFunctionExpression:axe,assertFunctionParent:j8e,assertFunctionTypeAnnotation:N4e,assertFunctionTypeParam:k4e,assertGenericTypeAnnotation:D4e,assertIdentifier:V8,assertIfStatement:nxe,assertImmutable:M8e,assertImport:n4e,assertImportAttribute:K7e,assertImportDeclaration:Vxe,assertImportDefaultSpecifier:Wxe,assertImportExpression:Hxe,assertImportNamespaceSpecifier:Gxe,assertImportOrExportDeclaration:G8e,assertImportSpecifier:Kxe,assertIndexedAccessType:T7e,assertInferredPredicate:L4e,assertInterfaceDeclaration:B4e,assertInterfaceExtends:M4e,assertInterfaceTypeAnnotation:F4e,assertInterpreterDirective:q6e,assertIntersectionTypeAnnotation:$4e,assertJSX:aEe,assertJSXAttribute:P7e,assertJSXClosingElement:A7e,assertJSXClosingFragment:$7e,assertJSXElement:I7e,assertJSXEmptyExpression:C7e,assertJSXExpressionContainer:j7e,assertJSXFragment:B7e,assertJSXIdentifier:_7e,assertJSXMemberExpression:N7e,assertJSXNamespacedName:k7e,assertJSXOpeningElement:D7e,assertJSXOpeningFragment:F7e,assertJSXSpreadAttribute:L7e,assertJSXSpreadChild:O7e,assertJSXText:M7e,assertLVal:k8e,assertLabeledStatement:sxe,assertLiteral:L8e,assertLogicalExpression:dxe,assertLoop:T8e,assertMemberExpression:pxe,assertMetaProperty:zxe,assertMethod:F8e,assertMiscellaneous:nEe,assertMixedTypeAnnotation:q4e,assertModuleDeclaration:fEe,assertModuleExpression:Z7e,assertModuleSpecifier:H8e,assertNewExpression:fxe,assertNode:M6e,assertNoop:q7e,assertNullLiteral:lxe,assertNullLiteralTypeAnnotation:b4e,assertNullableTypeAnnotation:V4e,assertNumberLiteral:uEe,assertNumberLiteralTypeAnnotation:W4e,assertNumberTypeAnnotation:G4e,assertNumericLiteral:oxe,assertObjectExpression:mxe,assertObjectMember:$8e,assertObjectMethod:yxe,assertObjectPattern:Jxe,assertObjectProperty:gxe,assertObjectTypeAnnotation:K4e,assertObjectTypeCallProperty:z4e,assertObjectTypeIndexer:X4e,assertObjectTypeInternalSlot:H4e,assertObjectTypeProperty:J4e,assertObjectTypeSpreadProperty:Y4e,assertOpaqueType:Q4e,assertOptionalCallExpression:l4e,assertOptionalIndexedAccessType:w7e,assertOptionalMemberExpression:o4e,assertParenthesizedExpression:xxe,assertPattern:V8e,assertPatternLike:N8e,assertPipelineBareFunction:rRe,assertPipelinePrimaryTopicReference:aRe,assertPipelineTopicExpression:tRe,assertPlaceholder:U7e,assertPrivate:X8e,assertPrivateName:f4e,assertProgram:hxe,assertProperty:q8e,assertPureish:O8e,assertQualifiedTypeIdentifier:Z4e,assertRecordExpression:J7e,assertRegExpLiteral:cxe,assertRegexLiteral:cEe,assertRestElement:Bq,assertRestProperty:dEe,assertReturnStatement:vxe,assertScopable:g8e,assertSequenceExpression:bxe,assertSpreadElement:Yxe,assertSpreadProperty:pEe,assertStandardized:m8e,assertStatement:x8e,assertStaticBlock:h4e,assertStringLiteral:ixe,assertStringLiteralTypeAnnotation:e7e,assertStringTypeAnnotation:t7e,assertSuper:Qxe,assertSwitchCase:Rxe,assertSwitchStatement:Exe,assertSymbolTypeAnnotation:r7e,assertTSAnyKeyword:fRe,assertTSArrayType:NRe,assertTSAsExpression:QRe,assertTSBaseType:lEe,assertTSBigIntKeyword:mRe,assertTSBooleanKeyword:hRe,assertTSCallSignatureDeclaration:lRe,assertTSConditionalType:$Re,assertTSConstructSignatureDeclaration:uRe,assertTSConstructorType:IRe,assertTSDeclareFunction:sRe,assertTSDeclareMethod:iRe,assertTSEntityName:D8e,assertTSEnumDeclaration:t8e,assertTSEnumMember:r8e,assertTSExportAssignment:u8e,assertTSExpressionWithTypeArguments:HRe,assertTSExternalModuleReference:o8e,assertTSFunctionType:ARe,assertTSImportEqualsDeclaration:i8e,assertTSImportType:s8e,assertTSIndexSignature:pRe,assertTSIndexedAccessType:WRe,assertTSInferType:qRe,assertTSInstantiationExpression:YRe,assertTSInterfaceBody:XRe,assertTSInterfaceDeclaration:zRe,assertTSIntersectionType:FRe,assertTSIntrinsicKeyword:yRe,assertTSLiteralType:KRe,assertTSMappedType:GRe,assertTSMethodSignature:dRe,assertTSModuleBlock:n8e,assertTSModuleDeclaration:a8e,assertTSNamedTupleMember:MRe,assertTSNamespaceExportDeclaration:c8e,assertTSNeverKeyword:gRe,assertTSNonNullExpression:l8e,assertTSNullKeyword:vRe,assertTSNumberKeyword:bRe,assertTSObjectKeyword:xRe,assertTSOptionalType:DRe,assertTSParameterProperty:nRe,assertTSParenthesizedType:URe,assertTSPropertySignature:cRe,assertTSQualifiedName:oRe,assertTSRestType:LRe,assertTSSatisfiesExpression:ZRe,assertTSStringKeyword:RRe,assertTSSymbolKeyword:ERe,assertTSThisType:PRe,assertTSTupleType:kRe,assertTSType:oEe,assertTSTypeAliasDeclaration:JRe,assertTSTypeAnnotation:d8e,assertTSTypeAssertion:e8e,assertTSTypeElement:iEe,assertTSTypeLiteral:_Re,assertTSTypeOperator:VRe,assertTSTypeParameter:h8e,assertTSTypeParameterDeclaration:f8e,assertTSTypeParameterInstantiation:p8e,assertTSTypePredicate:jRe,assertTSTypeQuery:ORe,assertTSTypeReference:CRe,assertTSUndefinedKeyword:SRe,assertTSUnionType:BRe,assertTSUnknownKeyword:TRe,assertTSVoidKeyword:wRe,assertTaggedTemplateExpression:Zxe,assertTemplateElement:e4e,assertTemplateLiteral:t4e,assertTerminatorless:R8e,assertThisExpression:Sxe,assertThisTypeAnnotation:a7e,assertThrowStatement:Txe,assertTopicReference:eRe,assertTryStatement:wxe,assertTupleExpression:Y7e,assertTupleTypeAnnotation:n7e,assertTypeAlias:i7e,assertTypeAnnotation:o7e,assertTypeCastExpression:l7e,assertTypeParameter:u7e,assertTypeParameterDeclaration:c7e,assertTypeParameterInstantiation:d7e,assertTypeScript:sEe,assertTypeofTypeAnnotation:s7e,assertUnaryExpression:Pxe,assertUnaryLike:U8e,assertUnionTypeAnnotation:p7e,assertUpdateExpression:Axe,assertUserWhitespacable:B8e,assertV8IntrinsicIdentifier:V7e,assertVariableDeclaration:Ixe,assertVariableDeclarator:Cxe,assertVariance:f7e,assertVoidTypeAnnotation:h7e,assertWhile:w8e,assertWhileStatement:jxe,assertWithStatement:Oxe,assertYieldExpression:r4e,assignmentExpression:tr,assignmentPattern:r$,awaitExpression:to,bigIntLiteral:d$,binaryExpression:nn,bindExpression:bq,blockStatement:ea,booleanLiteral:un,booleanLiteralTypeAnnotation:h$,booleanTypeAnnotation:Yg,breakStatement:WF,buildMatchMemberExpression:jg,buildUndefinedNode:Qu,callExpression:ft,catchClause:GF,classAccessorProperty:f$,classBody:a$,classDeclaration:n$,classExpression:hR,classImplements:m$,classMethod:zu,classPrivateMethod:Ju,classPrivateProperty:Jg,classProperty:Gf,clone:Hq,cloneDeep:mEe,cloneDeepWithoutLoc:yEe,cloneNode:me,cloneWithoutLoc:gEe,conditionalExpression:Qs,continueStatement:KF,createFlowUnionType:t1,createTSUnionType:Wq,createTypeAnnotationBasedOnTypeof:$q,createUnionTypeAnnotation:t1,debuggerStatement:HF,decimalLiteral:Pq,declareClass:y$,declareExportAllDeclaration:w$,declareExportDeclaration:T$,declareFunction:g$,declareInterface:v$,declareModule:b$,declareModuleExports:x$,declareOpaqueType:E$,declareTypeAlias:R$,declareVariable:S$,declaredPredicate:P$,decorator:Rq,directive:Cd,directiveLiteral:jd,doExpression:Eq,doWhileStatement:zF,emptyStatement:oR,emptyTypeAnnotation:L$,ensureBlock:p9e,enumBooleanBody:sq,enumBooleanMember:uq,enumDeclaration:nq,enumDefaultedMember:pq,enumNumberBody:iq,enumNumberMember:cq,enumStringBody:oq,enumStringMember:dq,enumSymbolBody:lq,existsTypeAnnotation:A$,exportAllDeclaration:s$,exportDefaultDeclaration:i$,exportDefaultSpecifier:Sq,exportNamedDeclaration:Zs,exportNamespaceSpecifier:p$,exportSpecifier:hi,expressionStatement:Xt,file:lR,forInStatement:XF,forOfStatement:o$,forStatement:uR,functionDeclaration:Vg,functionExpression:Mn,functionTypeAnnotation:I$,functionTypeParam:C$,genericTypeAnnotation:Dd,getAssignmentIdentifiers:Z8,getBindingIdentifiers:_s,getFunctionName:eU,getOuterBindingIdentifiers:s1,identifier:Ne,ifStatement:JF,import:c$,importAttribute:xq,importDeclaration:Kg,importDefaultSpecifier:mR,importExpression:l$,importNamespaceSpecifier:Hg,importSpecifier:Uf,indexedAccessType:fq,inferredPredicate:j$,inheritInnerComments:z8,inheritLeadingComments:a1,inheritTrailingComments:X8,inherits:Na,inheritsComments:ql,interfaceDeclaration:_$,interfaceExtends:O$,interfaceTypeAnnotation:N$,interpreterDirective:iR,intersectionTypeAnnotation:k$,is:gn,isAccessor:C2e,isAnyTypeAnnotation:Tf,isArgumentPlaceholder:V4,isArrayExpression:ht,isArrayPattern:ng,isArrayTypeAnnotation:xd,isArrowFunctionExpression:md,isAssignmentExpression:Se,isAssignmentPattern:Nl,isAwaitExpression:sg,isBigIntLiteral:ig,isBinary:C7,isBinaryExpression:Me,isBindExpression:Rg,isBinding:tU,isBlock:m2e,isBlockParent:h2e,isBlockScoped:aU,isBlockStatement:Ue,isBooleanLiteral:pr,isBooleanLiteralTypeAnnotation:Fx,isBooleanTypeAnnotation:og,isBreakStatement:ot,isCallExpression:ct,isCatchClause:Pt,isClass:Td,isClassAccessorProperty:Mx,isClassBody:cf,isClassDeclaration:Io,isClassExpression:df,isClassImplements:qx,isClassMethod:Mu,isClassPrivateMethod:Bx,isClassPrivateProperty:Sf,isClassProperty:Qi,isCompletionStatement:g2e,isConditional:v2e,isConditionalExpression:Ut,isContinueStatement:ur,isDebuggerStatement:kr,isDecimalLiteral:K4,isDeclaration:j7,isDeclareClass:Ux,isDeclareExportAllDeclaration:Jx,isDeclareExportDeclaration:lg,isDeclareFunction:Vx,isDeclareInterface:Wx,isDeclareModule:Gx,isDeclareModuleExports:Kx,isDeclareOpaqueType:zx,isDeclareTypeAlias:Hx,isDeclareVariable:Xx,isDeclaredPredicate:Yx,isDecorator:Eg,isDirective:Oe,isDirectiveLiteral:Ke,isDoExpression:G4,isDoWhileStatement:ir,isEmptyStatement:Jr,isEmptyTypeAnnotation:cg,isEnumBody:_2e,isEnumBooleanBody:P4,isEnumBooleanMember:j4,isEnumDeclaration:w4,isEnumDefaultedMember:N4,isEnumMember:N2e,isEnumNumberBody:A4,isEnumNumberMember:O4,isEnumStringBody:I4,isEnumStringMember:_4,isEnumSymbolBody:C4,isExistsTypeAnnotation:Qx,isExportAllDeclaration:yd,isExportDeclaration:Of,isExportDefaultDeclaration:pf,isExportDefaultSpecifier:Ed,isExportNamedDeclaration:gd,isExportNamespaceSpecifier:Ef,isExportSpecifier:ff,isExpression:Zi,isExpressionStatement:Ea,isExpressionWrapper:R2e,isFile:Ua,isFlow:O7,isFlowBaseAnnotation:_7,isFlowDeclaration:j2e,isFlowPredicate:O2e,isFlowType:sF,isFor:eF,isForInStatement:da,isForOfStatement:hf,isForStatement:Rt,isForXStatement:jf,isFunction:Cs,isFunctionDeclaration:ja,isFunctionExpression:va,isFunctionParent:E2e,isFunctionTypeAnnotation:Zx,isFunctionTypeParam:e4,isGenericTypeAnnotation:wf,isIdentifier:Dt,isIfStatement:on,isImmutable:R9e,isImport:Rf,isImportAttribute:W4,isImportDeclaration:vd,isImportDefaultSpecifier:bd,isImportExpression:Dx,isImportNamespaceSpecifier:mf,isImportOrExportDeclaration:rF,isImportSpecifier:yf,isIndexedAccessType:yg,isInferredPredicate:t4,isInterfaceDeclaration:a4,isInterfaceExtends:r4,isInterfaceTypeAnnotation:n4,isInterpreterDirective:le,isIntersectionTypeAnnotation:s4,isJSX:k2e,isJSXAttribute:Fu,isJSXClosingElement:D4,isJSXClosingFragment:$4,isJSXElement:gg,isJSXEmptyExpression:vg,isJSXExpressionContainer:$u,isJSXFragment:B4,isJSXIdentifier:Is,isJSXMemberExpression:qu,isJSXNamespacedName:Rd,isJSXOpeningElement:M4,isJSXOpeningFragment:F4,isJSXSpreadAttribute:Uu,isJSXSpreadChild:L4,isJSXText:bg,isLVal:T2e,isLabeledStatement:rt,isLet:rU,isLiteral:yn,isLogicalExpression:$r,isLoop:b2e,isMemberExpression:lr,isMetaProperty:gf,isMethod:Sd,isMiscellaneous:D2e,isMixedTypeAnnotation:ug,isModuleDeclaration:q2e,isModuleExpression:H4,isModuleSpecifier:aF,isNewExpression:Qr,isNode:Lq,isNodesEquivalent:rE,isNoop:q4,isNullLiteral:or,isNullLiteralTypeAnnotation:$x,isNullableTypeAnnotation:i4,isNumberLiteral:M2e,isNumberLiteralTypeAnnotation:o4,isNumberTypeAnnotation:dg,isNumericLiteral:Yt,isObjectExpression:Mt,isObjectMember:A2e,isObjectMethod:Kn,isObjectPattern:vf,isObjectProperty:Sn,isObjectTypeAnnotation:l4,isObjectTypeCallProperty:c4,isObjectTypeIndexer:d4,isObjectTypeInternalSlot:u4,isObjectTypeProperty:p4,isObjectTypeSpreadProperty:f4,isOpaqueType:h4,isOptionalCallExpression:Bu,isOptionalIndexedAccessType:k4,isOptionalMemberExpression:Co,isParenthesizedExpression:uf,isPattern:js,isPatternLike:S2e,isPipelineBareFunction:z4,isPipelinePrimaryTopicReference:X4,isPipelineTopicExpression:Pg,isPlaceholder:xg,isPlaceholderType:yF,isPrivate:nF,isPrivateName:Li,isProgram:Va,isProperty:tF,isPureish:Cg,isQualifiedTypeIdentifier:m4,isRecordExpression:Sg,isReferenced:Bd,isRegExpLiteral:Hr,isRegexLiteral:B2e,isRestElement:hn,isRestProperty:F2e,isReturnStatement:As,isScopable:ZB,isScope:nU,isSequenceExpression:li,isSpecifierDefault:E9e,isSpreadElement:mn,isSpreadProperty:$2e,isStandardized:f2e,isStatement:ui,isStaticBlock:kl,isStringLiteral:nt,isStringLiteralTypeAnnotation:y4,isStringTypeAnnotation:pg,isSuper:Js,isSwitchCase:Cx,isSwitchStatement:jx,isSymbolTypeAnnotation:g4,isTSAnyKeyword:Ag,isTSArrayType:Ig,isTSAsExpression:HB,isTSBaseType:lF,isTSBigIntKeyword:i7,isTSBooleanKeyword:s7,isTSCallSignatureDeclaration:e7,isTSConditionalType:At,isTSConstructSignatureDeclaration:t7,isTSConstructorType:b7,isTSDeclareFunction:Y4,isTSDeclareMethod:Q4,isTSEntityName:w2e,isTSEnumDeclaration:JB,isTSEnumMember:a2e,isTSExportAssignment:l2e,isTSExpressionWithTypeArguments:Zbe,isTSExternalModuleReference:o2e,isTSFunctionType:v7,isTSImportEqualsDeclaration:i2e,isTSImportType:s2e,isTSIndexSignature:n7,isTSIndexedAccessType:Cf,isTSInferType:Rr,isTSInstantiationExpression:r2e,isTSInterfaceBody:KB,isTSInterfaceDeclaration:e2e,isTSIntersectionType:Fe,isTSIntrinsicKeyword:o7,isTSLiteralType:Qbe,isTSMappedType:A7,isTSMethodSignature:a7,isTSModuleBlock:YB,isTSModuleDeclaration:n2e,isTSNamedTupleMember:P7,isTSNamespaceExportDeclaration:u2e,isTSNeverKeyword:l7,isTSNonNullExpression:QB,isTSNullKeyword:u7,isTSNumberKeyword:c7,isTSObjectKeyword:d7,isTSOptionalType:T7,isTSParameterProperty:J4,isTSParenthesizedType:an,isTSPropertySignature:r7,isTSQualifiedName:Z4,isTSRestType:w7,isTSSatisfiesExpression:zB,isTSStringKeyword:p7,isTSSymbolKeyword:f7,isTSThisType:g7,isTSTupleType:S7,isTSType:oF,isTSTypeAliasDeclaration:t2e,isTSTypeAnnotation:I7,isTSTypeAssertion:XB,isTSTypeElement:L2e,isTSTypeLiteral:E7,isTSTypeOperator:jo,isTSTypeParameter:p2e,isTSTypeParameterDeclaration:d2e,isTSTypeParameterInstantiation:c2e,isTSTypePredicate:x7,isTSTypeQuery:R7,isTSTypeReference:If,isTSUndefinedKeyword:h7,isTSUnionType:Q,isTSUnknownKeyword:m7,isTSVoidKeyword:y7,isTaggedTemplateExpression:bf,isTemplateElement:Lx,isTemplateLiteral:Di,isTerminatorless:y2e,isThisExpression:Xs,isThisTypeAnnotation:v4,isThrowStatement:Ox,isTopicReference:wg,isTryStatement:_x,isTupleExpression:Tg,isTupleTypeAnnotation:fg,isType:_g,isTypeAlias:x4,isTypeAnnotation:hg,isTypeCastExpression:Pf,isTypeParameter:R4,isTypeParameterDeclaration:E4,isTypeParameterInstantiation:S4,isTypeScript:iF,isTypeofTypeAnnotation:b4,isUnaryExpression:Lu,isUnaryLike:I2e,isUnionTypeAnnotation:Af,isUpdateExpression:hd,isUserWhitespacable:P2e,isV8IntrinsicIdentifier:U4,isValidES3Identifier:i1,isValidIdentifier:Fl,isVar:sU,isVariableDeclaration:Ja,isVariableDeclarator:ag,isVariance:T4,isVoidTypeAnnotation:mg,isWhile:x2e,isWhileStatement:Nx,isWithStatement:kx,isYieldExpression:xf,jSXAttribute:Yu,jSXClosingElement:ER,jSXClosingFragment:_R,jSXElement:SR,jSXEmptyExpression:TR,jSXExpressionContainer:ro,jSXFragment:jR,jSXIdentifier:ao,jSXMemberExpression:Zg,jSXNamespacedName:PR,jSXOpeningElement:AR,jSXOpeningFragment:OR,jSXSpreadAttribute:IR,jSXSpreadChild:wR,jSXText:CR,jsxAttribute:Yu,jsxClosingElement:ER,jsxClosingFragment:_R,jsxElement:SR,jsxEmptyExpression:TR,jsxExpressionContainer:ro,jsxFragment:jR,jsxIdentifier:ao,jsxMemberExpression:Zg,jsxNamespacedName:PR,jsxOpeningElement:AR,jsxOpeningFragment:OR,jsxSpreadAttribute:IR,jsxSpreadChild:wR,jsxText:CR,labeledStatement:Od,logicalExpression:pi,matchesPattern:_f,memberExpression:Vt,metaProperty:yR,mixedTypeAnnotation:D$,moduleExpression:Aq,newExpression:qf,noop:mq,nullLiteral:Bn,nullLiteralTypeAnnotation:xR,nullableTypeAnnotation:M$,numberLiteral:_q,numberLiteralTypeAnnotation:B$,numberTypeAnnotation:Hf,numericLiteral:Wr,objectExpression:Oa,objectMethod:dR,objectPattern:Vf,objectProperty:sn,objectTypeAnnotation:F$,objectTypeCallProperty:q$,objectTypeIndexer:U$,objectTypeInternalSlot:$$,objectTypeProperty:V$,objectTypeSpreadProperty:W$,opaqueType:G$,optionalCallExpression:Nd,optionalIndexedAccessType:hq,optionalMemberExpression:Xg,parenthesizedExpression:pR,pipelineBareFunction:jq,pipelinePrimaryTopicReference:Oq,pipelineTopicExpression:Cq,placeholder:yq,prependToMemberExpression:v9e,privateName:vR,program:cR,qualifiedTypeIdentifier:K$,react:Mi,recordExpression:Tq,regExpLiteral:Wg,regexLiteral:Nq,removeComments:J8,removeProperties:Y8,removePropertiesDeep:Q8,removeTypeDuplicates:W8,restElement:No,restProperty:kq,returnStatement:ln,sequenceExpression:Mr,shallowEqual:ne,spreadElement:Xu,spreadProperty:Dq,staticBlock:kd,stringLiteral:Jt,stringLiteralTypeAnnotation:H$,stringTypeAnnotation:zf,super:Wf,switchCase:YF,switchStatement:QF,symbolTypeAnnotation:z$,tSAnyKeyword:UR,tSArrayType:l8,tSAsExpression:P8,tSBigIntKeyword:WR,tSBooleanKeyword:VR,tSCallSignatureDeclaration:MR,tSConditionalType:h8,tSConstructSignatureDeclaration:BR,tSConstructorType:a8,tSDeclareFunction:kR,tSDeclareMethod:DR,tSEnumDeclaration:C8,tSEnumMember:j8,tSExportAssignment:M8,tSExpressionWithTypeArguments:R8,tSExternalModuleReference:D8,tSFunctionType:r8,tSImportEqualsDeclaration:k8,tSImportType:N8,tSIndexSignature:qR,tSIndexedAccessType:v8,tSInferType:m8,tSInstantiationExpression:w8,tSInterfaceBody:S8,tSInterfaceDeclaration:E8,tSIntersectionType:f8,tSIntrinsicKeyword:GR,tSLiteralType:x8,tSMappedType:b8,tSMethodSignature:$R,tSModuleBlock:_8,tSModuleDeclaration:O8,tSNamedTupleMember:p8,tSNamespaceExportDeclaration:B8,tSNeverKeyword:KR,tSNonNullExpression:L8,tSNullKeyword:HR,tSNumberKeyword:zR,tSObjectKeyword:XR,tSOptionalType:c8,tSParameterProperty:NR,tSParenthesizedType:y8,tSPropertySignature:FR,tSQualifiedName:LR,tSRestType:d8,tSSatisfiesExpression:A8,tSStringKeyword:JR,tSSymbolKeyword:YR,tSThisType:t8,tSTupleType:u8,tSTypeAliasDeclaration:T8,tSTypeAnnotation:F8,tSTypeAssertion:I8,tSTypeLiteral:o8,tSTypeOperator:g8,tSTypeParameter:U8,tSTypeParameterDeclaration:q8,tSTypeParameterInstantiation:$8,tSTypePredicate:s8,tSTypeQuery:i8,tSTypeReference:n8,tSUndefinedKeyword:QR,tSUnionType:e1,tSUnknownKeyword:ZR,tSVoidKeyword:e8,taggedTemplateExpression:u$,templateElement:zg,templateLiteral:gR,thisExpression:qr,thisTypeAnnotation:X$,throwStatement:fR,toBindingIdentifierName:Jq,toBlock:n1,toComputedKey:ko,toExpression:An,toIdentifier:Md,toKeyAlias:Vl,toStatement:Qq,topicReference:Iq,traverse:eE,traverseFast:Ul,tryStatement:ZF,tsAnyKeyword:UR,tsArrayType:l8,tsAsExpression:P8,tsBigIntKeyword:WR,tsBooleanKeyword:VR,tsCallSignatureDeclaration:MR,tsConditionalType:h8,tsConstructSignatureDeclaration:BR,tsConstructorType:a8,tsDeclareFunction:kR,tsDeclareMethod:DR,tsEnumDeclaration:C8,tsEnumMember:j8,tsExportAssignment:M8,tsExpressionWithTypeArguments:R8,tsExternalModuleReference:D8,tsFunctionType:r8,tsImportEqualsDeclaration:k8,tsImportType:N8,tsIndexSignature:qR,tsIndexedAccessType:v8,tsInferType:m8,tsInstantiationExpression:w8,tsInterfaceBody:S8,tsInterfaceDeclaration:E8,tsIntersectionType:f8,tsIntrinsicKeyword:GR,tsLiteralType:x8,tsMappedType:b8,tsMethodSignature:$R,tsModuleBlock:_8,tsModuleDeclaration:O8,tsNamedTupleMember:p8,tsNamespaceExportDeclaration:B8,tsNeverKeyword:KR,tsNonNullExpression:L8,tsNullKeyword:HR,tsNumberKeyword:zR,tsObjectKeyword:XR,tsOptionalType:c8,tsParameterProperty:NR,tsParenthesizedType:y8,tsPropertySignature:FR,tsQualifiedName:LR,tsRestType:d8,tsSatisfiesExpression:A8,tsStringKeyword:JR,tsSymbolKeyword:YR,tsThisType:t8,tsTupleType:u8,tsTypeAliasDeclaration:T8,tsTypeAnnotation:F8,tsTypeAssertion:I8,tsTypeLiteral:o8,tsTypeOperator:g8,tsTypeParameter:U8,tsTypeParameterDeclaration:q8,tsTypeParameterInstantiation:$8,tsTypePredicate:s8,tsTypeQuery:i8,tsTypeReference:n8,tsUndefinedKeyword:QR,tsUnionType:e1,tsUnknownKeyword:ZR,tsVoidKeyword:e8,tupleExpression:wq,tupleTypeAnnotation:RR,typeAlias:Y$,typeAnnotation:Q$,typeCastExpression:Z$,typeParameter:eq,typeParameterDeclaration:tq,typeParameterInstantiation:rq,typeofTypeAnnotation:J$,unaryExpression:vn,unionTypeAnnotation:Qg,updateExpression:Gg,v8IntrinsicIdentifier:gq,validate:$f,valueToNode:Jf,variableDeclaration:Br,variableDeclarator:Sr,variance:aq,voidTypeAnnotation:Ld,whileStatement:e$,withStatement:t$,yieldExpression:_d}),T9e=Mq;function nE(e){return{code:function(s){return`/* @babel/template */; +`+s},validate:function(){},unwrap:function(s){return e(s.program.body.slice(1))}}}var w9e=nE(function(e){return e.length>1?e:e[0]}),P9e=nE(function(e){return e}),A9e=nE(function(e){if(e.length===0)throw new Error("Found nothing to return.");if(e.length>1)throw new Error("Found multiple statements but wanted one");return e[0]}),iU={code:function(r){return`( +`+r+` +)`},validate:function(r){if(r.program.body.length>1)throw new Error("Found multiple statements but wanted one");if(iU.unwrap(r).start===0)throw new Error("Parse result included parens.")},unwrap:function(r){var s=r.program,l=je(s.body,1),u=l[0];return T9e(u),u.expression}},I9e={code:function(r){return r},validate:function(){},unwrap:function(r){return r.program}},C9e=["placeholderWhitelist","placeholderPattern","preserveComments","syntacticPlaceholders"];function Yf(e,r){var s=r.placeholderWhitelist,l=s===void 0?e.placeholderWhitelist:s,u=r.placeholderPattern,o=u===void 0?e.placeholderPattern:u,c=r.preserveComments,f=c===void 0?e.preserveComments:c,h=r.syntacticPlaceholders,m=h===void 0?e.syntacticPlaceholders:h;return{parser:Object.assign({},e.parser,r.parser),placeholderWhitelist:l,placeholderPattern:o,preserveComments:f,syntacticPlaceholders:m}}function Qf(e){if(e!=null&&typeof e!="object")throw new Error("Unknown template options.");var r=e||{},s=r.placeholderWhitelist,l=r.placeholderPattern,u=r.preserveComments,o=r.syntacticPlaceholders,c=Je(r,C9e);if(s!=null&&!(s instanceof Set))throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");if(l!=null&&!(l instanceof RegExp)&&l!==!1)throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");if(u!=null&&typeof u!="boolean")throw new Error("'.preserveComments' must be a boolean, null, or undefined");if(o!=null&&typeof o!="boolean")throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");if(o===!0&&(s!=null||l!=null))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");return{parser:c,placeholderWhitelist:s||void 0,placeholderPattern:l??void 0,preserveComments:u??void 0,syntacticPlaceholders:o??void 0}}function oU(e){if(Array.isArray(e))return e.reduce(function(r,s,l){return r["$"+l]=s,r},{});if(typeof e=="object"||e==null)return e||void 0;throw new Error("Template replacements must be an array, object, null, or undefined")}var Wl=_(function(r,s,l){this.line=void 0,this.column=void 0,this.index=void 0,this.line=r,this.column=s,this.index=l}),o1=_(function(r,s){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=r,this.end=s});function is(e,r){var s=e.line,l=e.column,u=e.index;return new Wl(s,l+r,u+r)}var lU="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",j9e={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:lU},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:lU}},uU={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},l1=function(r){return r.type==="UpdateExpression"?uU.UpdateExpression[""+r.prefix]:uU[r.type]},O9e={AccessorIsGenerator:function(r){var s=r.kind;return"A "+s+"ter cannot be a generator."},ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:function(r){var s=r.kind;return"Missing initializer in "+s+" declaration."},DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:function(r){var s=r.exportName;return"`"+s+"` has already been exported. Exported identifiers must be unique."},DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:function(r){var s=r.phase;return"'import."+s+"(...)' can only be parsed when using the 'createImportExpressions' option."},ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:function(r){var s=r.localName,l=r.exportName;return"A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '"+s+"' as '"+l+"' } from 'some-module'`?"},ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:function(r){var s=r.type;return"'"+(s==="ForInStatement"?"for-in":"for-of")+"' loop variable declaration may not have an initializer."},ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:function(r){var s=r.type;return"Unsyntactic "+(s==="BreakStatement"?"break":"continue")+"."},IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",ImportBindingIsString:function(r){var s=r.importName;return'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'+s+'" as foo }`?'},ImportCallArgumentTrailingComma:"Trailing comma is disallowed inside import(...) arguments.",ImportCallArity:function(r){var s=r.maxArgumentCount;return"`import()` requires exactly "+(s===1?"one argument":"one or two arguments")+"."},ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:function(r){var s=r.radix;return"Expected number in radix "+s+"."},InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:function(r){var s=r.reservedWord;return"Escape sequence in keyword "+s+"."},InvalidIdentifier:function(r){var s=r.identifierName;return"Invalid identifier "+s+"."},InvalidLhs:function(r){var s=r.ancestor;return"Invalid left-hand side in "+l1(s)+"."},InvalidLhsBinding:function(r){var s=r.ancestor;return"Binding invalid left-hand side in "+l1(s)+"."},InvalidLhsOptionalChaining:function(r){var s=r.ancestor;return"Invalid optional chaining in the left-hand side of "+l1(s)+"."},InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:function(r){var s=r.unexpected;return"Unexpected character '"+s+"'."},InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:function(r){var s=r.identifierName;return"Private name #"+s+" is not defined."},InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:function(r){var s=r.labelName;return"Label '"+s+"' is already declared."},LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:function(r){var s=r.missingPlugin;return"This experimental syntax requires enabling the parser plugin: "+s.map(function(l){return JSON.stringify(l)}).join(", ")+"."},MissingOneOfPlugins:function(r){var s=r.missingPlugin;return"This experimental syntax requires enabling one of the following parser plugin(s): "+s.map(function(l){return JSON.stringify(l)}).join(", ")+"."},MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:function(r){var s=r.key;return'Duplicate key "'+s+'" is not allowed in module attributes.'},ModuleExportNameHasLoneSurrogate:function(r){var s=r.surrogateCharCode;return"An export name cannot include a lone surrogate, found '\\u"+s.toString(16)+"'."},ModuleExportUndefined:function(r){var s=r.localName;return"Export '"+s+"' is not defined."},MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:function(r){var s=r.identifierName;return"Private names are only allowed in property accesses (`obj.#"+s+"`) or in `in` expressions (`#"+s+" in obj`)."},PrivateNameRedeclaration:function(r){var s=r.identifierName;return"Duplicate private name #"+s+"."},RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:function(r){var s=r.keyword;return"Unexpected keyword '"+s+"'."},UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:function(r){var s=r.reservedWord;return"Unexpected reserved word '"+s+"'."},UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:function(r){var s=r.expected,l=r.unexpected;return"Unexpected token"+(l?" '"+l+"'.":"")+(s?', expected "'+s+'"':"")},UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:function(r){var s=r.target,l=r.onlyValidPropertyName;return"The only valid meta property for "+s+" is "+s+"."+l+"."},UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:function(r){var s=r.identifierName;return"Identifier '"+s+"' has already been declared."},YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},_9e={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:function(r){var s=r.referenceName;return"Assigning to '"+s+"' in strict mode."},StrictEvalArgumentsBinding:function(r){var s=r.bindingName;return"Binding '"+s+"' in strict mode."},StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."},N9e=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),k9e={PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:function(r){var s=r.token;return"Invalid topic token "+s+". In order to use "+s+' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "'+s+'" }.'},PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:function(r){var s=r.type;return"Hack-style pipe body cannot be an unparenthesized "+l1({type:s})+"; please wrap it in parentheses."},PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'},cU,D9e=["message"];function dU(e,r,s){Object.defineProperty(e,r,{enumerable:!1,configurable:!0,value:s})}function L9e(e){var r=e.toMessage,s=e.code,l=e.reasonCode,u=e.syntaxPlugin,o=l==="MissingPlugin"||l==="MissingOneOfPlugins";{var c={AccessorCannotDeclareThisParameter:"AccesorCannotDeclareThisParameter",AccessorCannotHaveTypeParameters:"AccesorCannotHaveTypeParameters",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",SetAccessorCannotHaveOptionalParameter:"SetAccesorCannotHaveOptionalParameter",SetAccessorCannotHaveRestParameter:"SetAccesorCannotHaveRestParameter",SetAccessorCannotHaveReturnType:"SetAccesorCannotHaveReturnType"};c[l]&&(l=c[l])}return function f(h,m){var g=new SyntaxError;return g.code=s,g.reasonCode=l,g.loc=h,g.pos=h.index,g.syntaxPlugin=u,o&&(g.missingPlugin=m.missingPlugin),dU(g,"clone",function(R){var w;R===void 0&&(R={});var T=(w=R.loc)!=null?w:h,I=T.line,P=T.column,O=T.index;return f(new Wl(I,P,O),Object.assign({},m,R.details))}),dU(g,"details",m),Object.defineProperty(g,"message",{configurable:!0,get:function(){var R=r(m)+" ("+h.line+":"+h.column+")";return this.message=R,R},set:function(R){Object.defineProperty(this,"message",{value:R,writable:!0})}}),g}}function Do(e,r){if(Array.isArray(e))return function(c){return Do(c,e[0])};for(var s={},l=function(){var f=o[u],h=e[f],m=typeof h=="string"?{message:function(){return h}}:typeof h=="function"?{message:h}:h,g=m.message,x=Je(m,D9e),R=typeof g=="string"?function(){return g}:g;s[f]=L9e(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:f,toMessage:R},r?{syntaxPlugin:r}:{},x))},u=0,o=Object.keys(e);u<o.length;u++)l();return s}var He=Object.assign({},Do(j9e),Do(O9e),Do(_9e),Do(cU||(cU=se(["pipelineOperator"])))(k9e)),M9e=Object.defineProperty,pU=function(r,s){r&&M9e(r,s,{enumerable:!1,value:r[s]})};function Zf(e){return pU(e.loc.start,"index"),pU(e.loc.end,"index"),e}var B9e=function(e){return function(r){function s(){return r.apply(this,arguments)||this}M(s,r);var l=s.prototype;return l.parse=function(){var o=Zf(r.prototype.parse.call(this));return this.options.tokens&&(o.tokens=o.tokens.map(Zf)),o},l.parseRegExpLiteral=function(o){var c=o.pattern,f=o.flags,h=null;try{h=new RegExp(c,f)}catch{}var m=this.estreeParseLiteral(h);return m.regex={pattern:c,flags:f},m},l.parseBigIntLiteral=function(o){var c;try{c=BigInt(o)}catch{c=null}var f=this.estreeParseLiteral(c);return f.bigint=String(f.value||o),f},l.parseDecimalLiteral=function(o){var c=null,f=this.estreeParseLiteral(c);return f.decimal=String(f.value||o),f},l.estreeParseLiteral=function(o){return this.parseLiteral(o,"Literal")},l.parseStringLiteral=function(o){return this.estreeParseLiteral(o)},l.parseNumericLiteral=function(o){return this.estreeParseLiteral(o)},l.parseNullLiteral=function(){return this.estreeParseLiteral(null)},l.parseBooleanLiteral=function(o){return this.estreeParseLiteral(o)},l.directiveToStmt=function(o){var c=o.value;delete o.value,c.type="Literal",c.raw=c.extra.raw,c.value=c.extra.expressionValue;var f=o;return f.type="ExpressionStatement",f.expression=c,f.directive=c.extra.rawValue,delete c.extra,f},l.initFunction=function(o,c){r.prototype.initFunction.call(this,o,c),o.expression=!1},l.checkDeclaration=function(o){o!=null&&this.isObjectProperty(o)?this.checkDeclaration(o.value):r.prototype.checkDeclaration.call(this,o)},l.getObjectOrClassMethodParams=function(o){return o.value.params},l.isValidDirective=function(o){var c;return o.type==="ExpressionStatement"&&o.expression.type==="Literal"&&typeof o.expression.value=="string"&&!((c=o.expression.extra)!=null&&c.parenthesized)},l.parseBlockBody=function(o,c,f,h,m){var g=this;r.prototype.parseBlockBody.call(this,o,c,f,h,m);var x=o.directives.map(function(R){return g.directiveToStmt(R)});o.body=x.concat(o.body),delete o.directives},l.pushClassMethod=function(o,c,f,h,m,g){this.parseMethod(c,f,h,m,g,"ClassMethod",!0),c.typeParameters&&(c.value.typeParameters=c.typeParameters,delete c.typeParameters),o.body.push(c)},l.parsePrivateName=function(){var o=r.prototype.parsePrivateName.call(this);return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(o):o},l.convertPrivateNameToPrivateIdentifier=function(o){var c=r.prototype.getPrivateNameSV.call(this,o);return o=o,delete o.id,o.name=c,o.type="PrivateIdentifier",o},l.isPrivateName=function(o){return this.getPluginOption("estree","classFeatures")?o.type==="PrivateIdentifier":r.prototype.isPrivateName.call(this,o)},l.getPrivateNameSV=function(o){return this.getPluginOption("estree","classFeatures")?o.name:r.prototype.getPrivateNameSV.call(this,o)},l.parseLiteral=function(o,c){var f=r.prototype.parseLiteral.call(this,o,c);return f.raw=f.extra.raw,delete f.extra,f},l.parseFunctionBody=function(o,c,f){f===void 0&&(f=!1),r.prototype.parseFunctionBody.call(this,o,c,f),o.expression=o.body.type!=="BlockStatement"},l.parseMethod=function(o,c,f,h,m,g,x){x===void 0&&(x=!1);var R=this.startNode();return R.kind=o.kind,R=r.prototype.parseMethod.call(this,R,c,f,h,m,g,x),R.type="FunctionExpression",delete R.kind,o.value=R,g==="ClassPrivateMethod"&&(o.computed=!1),this.finishNode(o,"MethodDefinition")},l.nameIsConstructor=function(o){return o.type==="Literal"?o.value==="constructor":r.prototype.nameIsConstructor.call(this,o)},l.parseClassProperty=function(){for(var o,c=arguments.length,f=new Array(c),h=0;h<c;h++)f[h]=arguments[h];var m=(o=r.prototype.parseClassProperty).call.apply(o,[this].concat(f));return this.getPluginOption("estree","classFeatures")&&(m.type="PropertyDefinition"),m},l.parseClassPrivateProperty=function(){for(var o,c=arguments.length,f=new Array(c),h=0;h<c;h++)f[h]=arguments[h];var m=(o=r.prototype.parseClassPrivateProperty).call.apply(o,[this].concat(f));return this.getPluginOption("estree","classFeatures")&&(m.type="PropertyDefinition",m.computed=!1),m},l.parseObjectMethod=function(o,c,f,h,m){var g=r.prototype.parseObjectMethod.call(this,o,c,f,h,m);return g&&(g.type="Property",g.kind==="method"&&(g.kind="init"),g.shorthand=!1),g},l.parseObjectProperty=function(o,c,f,h){var m=r.prototype.parseObjectProperty.call(this,o,c,f,h);return m&&(m.kind="init",m.type="Property"),m},l.isValidLVal=function(o,c,f){return o==="Property"?"value":r.prototype.isValidLVal.call(this,o,c,f)},l.isAssignable=function(o,c){return o!=null&&this.isObjectProperty(o)?this.isAssignable(o.value,c):r.prototype.isAssignable.call(this,o,c)},l.toAssignable=function(o,c){if(c===void 0&&(c=!1),o!=null&&this.isObjectProperty(o)){var f=o.key,h=o.value;this.isPrivateName(f)&&this.classScope.usePrivateName(this.getPrivateNameSV(f),f.loc.start),this.toAssignable(h,c)}else r.prototype.toAssignable.call(this,o,c)},l.toAssignableObjectExpressionProp=function(o,c,f){o.type==="Property"&&(o.kind==="get"||o.kind==="set")?this.raise(He.PatternHasAccessor,o.key):o.type==="Property"&&o.method?this.raise(He.PatternHasMethod,o.key):r.prototype.toAssignableObjectExpressionProp.call(this,o,c,f)},l.finishCallExpression=function(o,c){var f=r.prototype.finishCallExpression.call(this,o,c);if(f.callee.type==="Import"){if(f.type="ImportExpression",f.source=f.arguments[0],this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")){var h,m;f.options=(h=f.arguments[1])!=null?h:null,f.attributes=(m=f.arguments[1])!=null?m:null}delete f.arguments,delete f.callee}return f},l.toReferencedArguments=function(o){o.type!=="ImportExpression"&&r.prototype.toReferencedArguments.call(this,o)},l.parseExport=function(o,c){var f=this.state.lastTokStartLoc,h=r.prototype.parseExport.call(this,o,c);switch(h.type){case"ExportAllDeclaration":h.exported=null;break;case"ExportNamedDeclaration":h.specifiers.length===1&&h.specifiers[0].type==="ExportNamespaceSpecifier"&&(h.type="ExportAllDeclaration",h.exported=h.specifiers[0].exported,delete h.specifiers);case"ExportDefaultDeclaration":{var m,g=h.declaration;(g==null?void 0:g.type)==="ClassDeclaration"&&((m=g.decorators)==null?void 0:m.length)>0&&g.start===h.start&&this.resetStartLocation(h,f)}break}return h},l.parseSubscript=function(o,c,f,h){var m=r.prototype.parseSubscript.call(this,o,c,f,h);if(h.optionalChainMember){if((m.type==="OptionalMemberExpression"||m.type==="OptionalCallExpression")&&(m.type=m.type.substring(8)),h.stop){var g=this.startNodeAtNode(m);return g.expression=m,this.finishNode(g,"ChainExpression")}}else(m.type==="MemberExpression"||m.type==="CallExpression")&&(m.optional=!1);return m},l.isOptionalMemberExpression=function(o){return o.type==="ChainExpression"?o.expression.type==="MemberExpression":r.prototype.isOptionalMemberExpression.call(this,o)},l.hasPropertyAsPrivateName=function(o){return o.type==="ChainExpression"&&(o=o.expression),r.prototype.hasPropertyAsPrivateName.call(this,o)},l.isObjectProperty=function(o){return o.type==="Property"&&o.kind==="init"&&!o.method},l.isObjectMethod=function(o){return o.type==="Property"&&(o.method||o.kind==="get"||o.kind==="set")},l.finishNodeAt=function(o,c,f){return Zf(r.prototype.finishNodeAt.call(this,o,c,f))},l.resetStartLocation=function(o,c){r.prototype.resetStartLocation.call(this,o,c),Zf(o)},l.resetEndLocation=function(o,c){c===void 0&&(c=this.state.lastTokEndLoc),r.prototype.resetEndLocation.call(this,o,c),Zf(o)},_(s)}(e)},eh=_(function(r,s){this.token=void 0,this.preserveSpace=void 0,this.token=r,this.preserveSpace=!!s}),ka={brace:new eh("{"),j_oTag:new eh("<tag"),j_cTag:new eh("</tag"),j_expr:new eh("<tag>...</tag>",!0)};ka.template=new eh("`",!0);var sa=!0,ar=!0,sE=!0,th=!0,Gl=!0,F9e=!0,fU=_(function(r,s){s===void 0&&(s={}),this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=r,this.keyword=s.keyword,this.beforeExpr=!!s.beforeExpr,this.startsExpr=!!s.startsExpr,this.rightAssociative=!!s.rightAssociative,this.isLoop=!!s.isLoop,this.isAssign=!!s.isAssign,this.prefix=!!s.prefix,this.postfix=!!s.postfix,this.binop=s.binop!=null?s.binop:null,this.updateContext=null}),iE=new Map;function fa(e,r){r===void 0&&(r={}),r.keyword=e;var s=wr(e,r);return iE.set(e,s),s}function os(e,r){return wr(e,{beforeExpr:sa,binop:r})}var rh=-1,Lo=[],oE=[],lE=[],uE=[],cE=[],dE=[];function wr(e,r){var s,l,u,o;return r===void 0&&(r={}),++rh,oE.push(e),lE.push((s=r.binop)!=null?s:-1),uE.push((l=r.beforeExpr)!=null?l:!1),cE.push((u=r.startsExpr)!=null?u:!1),dE.push((o=r.prefix)!=null?o:!1),Lo.push(new fU(e,r)),rh}function ia(e,r){var s,l,u,o;return r===void 0&&(r={}),++rh,iE.set(e,rh),oE.push(e),lE.push((s=r.binop)!=null?s:-1),uE.push((l=r.beforeExpr)!=null?l:!1),cE.push((u=r.startsExpr)!=null?u:!1),dE.push((o=r.prefix)!=null?o:!1),Lo.push(new fU("name",r)),rh}var $9e={bracketL:wr("[",{beforeExpr:sa,startsExpr:ar}),bracketHashL:wr("#[",{beforeExpr:sa,startsExpr:ar}),bracketBarL:wr("[|",{beforeExpr:sa,startsExpr:ar}),bracketR:wr("]"),bracketBarR:wr("|]"),braceL:wr("{",{beforeExpr:sa,startsExpr:ar}),braceBarL:wr("{|",{beforeExpr:sa,startsExpr:ar}),braceHashL:wr("#{",{beforeExpr:sa,startsExpr:ar}),braceR:wr("}"),braceBarR:wr("|}"),parenL:wr("(",{beforeExpr:sa,startsExpr:ar}),parenR:wr(")"),comma:wr(",",{beforeExpr:sa}),semi:wr(";",{beforeExpr:sa}),colon:wr(":",{beforeExpr:sa}),doubleColon:wr("::",{beforeExpr:sa}),dot:wr("."),question:wr("?",{beforeExpr:sa}),questionDot:wr("?."),arrow:wr("=>",{beforeExpr:sa}),template:wr("template"),ellipsis:wr("...",{beforeExpr:sa}),backQuote:wr("`",{startsExpr:ar}),dollarBraceL:wr("${",{beforeExpr:sa,startsExpr:ar}),templateTail:wr("...`",{startsExpr:ar}),templateNonTail:wr("...${",{beforeExpr:sa,startsExpr:ar}),at:wr("@"),hash:wr("#",{startsExpr:ar}),interpreterDirective:wr("#!..."),eq:wr("=",{beforeExpr:sa,isAssign:th}),assign:wr("_=",{beforeExpr:sa,isAssign:th}),slashAssign:wr("_=",{beforeExpr:sa,isAssign:th}),xorAssign:wr("_=",{beforeExpr:sa,isAssign:th}),moduloAssign:wr("_=",{beforeExpr:sa,isAssign:th}),incDec:wr("++/--",{prefix:Gl,postfix:F9e,startsExpr:ar}),bang:wr("!",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),tilde:wr("~",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),doubleCaret:wr("^^",{startsExpr:ar}),doubleAt:wr("@@",{startsExpr:ar}),pipeline:os("|>",0),nullishCoalescing:os("??",1),logicalOR:os("||",1),logicalAND:os("&&",2),bitwiseOR:os("|",3),bitwiseXOR:os("^",4),bitwiseAND:os("&",5),equality:os("==/!=/===/!==",6),lt:os("</>/<=/>=",7),gt:os("</>/<=/>=",7),relational:os("</>/<=/>=",7),bitShift:os("<</>>/>>>",8),bitShiftL:os("<</>>/>>>",8),bitShiftR:os("<</>>/>>>",8),plusMin:wr("+/-",{beforeExpr:sa,binop:9,prefix:Gl,startsExpr:ar}),modulo:wr("%",{binop:10,startsExpr:ar}),star:wr("*",{binop:10}),slash:os("/",10),exponent:wr("**",{beforeExpr:sa,binop:11,rightAssociative:!0}),_in:fa("in",{beforeExpr:sa,binop:7}),_instanceof:fa("instanceof",{beforeExpr:sa,binop:7}),_break:fa("break"),_case:fa("case",{beforeExpr:sa}),_catch:fa("catch"),_continue:fa("continue"),_debugger:fa("debugger"),_default:fa("default",{beforeExpr:sa}),_else:fa("else",{beforeExpr:sa}),_finally:fa("finally"),_function:fa("function",{startsExpr:ar}),_if:fa("if"),_return:fa("return",{beforeExpr:sa}),_switch:fa("switch"),_throw:fa("throw",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),_try:fa("try"),_var:fa("var"),_const:fa("const"),_with:fa("with"),_new:fa("new",{beforeExpr:sa,startsExpr:ar}),_this:fa("this",{startsExpr:ar}),_super:fa("super",{startsExpr:ar}),_class:fa("class",{startsExpr:ar}),_extends:fa("extends",{beforeExpr:sa}),_export:fa("export"),_import:fa("import",{startsExpr:ar}),_null:fa("null",{startsExpr:ar}),_true:fa("true",{startsExpr:ar}),_false:fa("false",{startsExpr:ar}),_typeof:fa("typeof",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),_void:fa("void",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),_delete:fa("delete",{beforeExpr:sa,prefix:Gl,startsExpr:ar}),_do:fa("do",{isLoop:sE,beforeExpr:sa}),_for:fa("for",{isLoop:sE}),_while:fa("while",{isLoop:sE}),_as:ia("as",{startsExpr:ar}),_assert:ia("assert",{startsExpr:ar}),_async:ia("async",{startsExpr:ar}),_await:ia("await",{startsExpr:ar}),_defer:ia("defer",{startsExpr:ar}),_from:ia("from",{startsExpr:ar}),_get:ia("get",{startsExpr:ar}),_let:ia("let",{startsExpr:ar}),_meta:ia("meta",{startsExpr:ar}),_of:ia("of",{startsExpr:ar}),_sent:ia("sent",{startsExpr:ar}),_set:ia("set",{startsExpr:ar}),_source:ia("source",{startsExpr:ar}),_static:ia("static",{startsExpr:ar}),_using:ia("using",{startsExpr:ar}),_yield:ia("yield",{startsExpr:ar}),_asserts:ia("asserts",{startsExpr:ar}),_checks:ia("checks",{startsExpr:ar}),_exports:ia("exports",{startsExpr:ar}),_global:ia("global",{startsExpr:ar}),_implements:ia("implements",{startsExpr:ar}),_intrinsic:ia("intrinsic",{startsExpr:ar}),_infer:ia("infer",{startsExpr:ar}),_is:ia("is",{startsExpr:ar}),_mixins:ia("mixins",{startsExpr:ar}),_proto:ia("proto",{startsExpr:ar}),_require:ia("require",{startsExpr:ar}),_satisfies:ia("satisfies",{startsExpr:ar}),_keyof:ia("keyof",{startsExpr:ar}),_readonly:ia("readonly",{startsExpr:ar}),_unique:ia("unique",{startsExpr:ar}),_abstract:ia("abstract",{startsExpr:ar}),_declare:ia("declare",{startsExpr:ar}),_enum:ia("enum",{startsExpr:ar}),_module:ia("module",{startsExpr:ar}),_namespace:ia("namespace",{startsExpr:ar}),_interface:ia("interface",{startsExpr:ar}),_type:ia("type",{startsExpr:ar}),_opaque:ia("opaque",{startsExpr:ar}),name:wr("name",{startsExpr:ar}),string:wr("string",{startsExpr:ar}),num:wr("num",{startsExpr:ar}),bigint:wr("bigint",{startsExpr:ar}),decimal:wr("decimal",{startsExpr:ar}),regexp:wr("regexp",{startsExpr:ar}),privateName:wr("#name",{startsExpr:ar}),eof:wr("eof"),jsxName:wr("jsxName"),jsxText:wr("jsxText",{beforeExpr:!0}),jsxTagStart:wr("jsxTagStart",{startsExpr:!0}),jsxTagEnd:wr("jsxTagEnd"),placeholder:wr("%%",{startsExpr:!0})};function Sa(e){return e>=93&&e<=132}function q9e(e){return e<=92}function Bi(e){return e>=58&&e<=132}function hU(e){return e>=58&&e<=136}function U9e(e){return uE[e]}function pE(e){return cE[e]}function V9e(e){return e>=29&&e<=33}function mU(e){return e>=129&&e<=131}function W9e(e){return e>=90&&e<=92}function fE(e){return e>=58&&e<=92}function G9e(e){return e>=39&&e<=59}function K9e(e){return e===34}function H9e(e){return dE[e]}function z9e(e){return e>=121&&e<=123}function X9e(e){return e>=124&&e<=130}function Kl(e){return oE[e]}function u1(e){return lE[e]}function J9e(e){return e===57}function c1(e){return e>=24&&e<=25}function Mo(e){return Lo[e]}Lo[8].updateContext=function(e){e.pop()},Lo[5].updateContext=Lo[7].updateContext=Lo[23].updateContext=function(e){e.push(ka.brace)},Lo[22].updateContext=function(e){e[e.length-1]===ka.template?e.pop():e.push(ka.template)},Lo[142].updateContext=function(e){e.push(ka.j_expr,ka.j_oTag)};function Y9e(e,r,s){return e===64&&r===64&&eo(s)}var Q9e=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Z9e(e){return Q9e.has(e)}var Ur={OTHER:0,PROGRAM:1,FUNCTION:2,ARROW:4,SIMPLE_CATCH:8,SUPER:16,DIRECT_SUPER:32,CLASS:64,STATIC_BLOCK:128,TS_MODULE:256,VAR:387},Pr={KIND_VALUE:1,KIND_TYPE:2,SCOPE_VAR:4,SCOPE_LEXICAL:8,SCOPE_FUNCTION:16,SCOPE_OUTSIDE:32,FLAG_NONE:64,FLAG_CLASS:128,FLAG_TS_ENUM:256,FLAG_TS_CONST_ENUM:512,FLAG_TS_EXPORT_ONLY:1024,FLAG_FLOW_DECLARE_FN:2048,FLAG_TS_IMPORT:4096,FLAG_NO_LET_IN_LEXICAL:8192,TYPE_CLASS:8331,TYPE_LEXICAL:8201,TYPE_CATCH_PARAM:9,TYPE_VAR:5,TYPE_FUNCTION:17,TYPE_TS_INTERFACE:130,TYPE_TS_TYPE:2,TYPE_TS_ENUM:8459,TYPE_TS_AMBIENT:1024,TYPE_NONE:64,TYPE_OUTSIDE:65,TYPE_TS_CONST_ENUM:8971,TYPE_TS_NAMESPACE:1024,TYPE_TS_TYPE_IMPORT:4098,TYPE_TS_VALUE_IMPORT:4096,TYPE_FLOW_DECLARE_FN:2048},mi={OTHER:0,FLAG_STATIC:4,KIND_GETTER:2,KIND_SETTER:1,KIND_ACCESSOR:3,STATIC_GETTER:6,STATIC_SETTER:5,INSTANCE_GETTER:2,INSTANCE_SETTER:1},so={Var:1,Lexical:2,Function:4},hE=_(function(r){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=r}),mE=function(){function e(s,l){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=s,this.inModule=l}var r=e.prototype;return r.createScope=function(l){return new hE(l)},r.enter=function(l){this.scopeStack.push(this.createScope(l))},r.exit=function(){var l=this.scopeStack.pop();return l.flags},r.treatFunctionsAsVarInScope=function(l){return!!(l.flags&(Ur.FUNCTION|Ur.STATIC_BLOCK)||!this.parser.inModule&&l.flags&Ur.PROGRAM)},r.declareName=function(l,u,o){var c=this.currentScope();if(u&Pr.SCOPE_LEXICAL||u&Pr.SCOPE_FUNCTION){this.checkRedeclarationInScope(c,l,u,o);var f=c.names.get(l)||0;u&Pr.SCOPE_FUNCTION?f=f|so.Function:(c.firstLexicalName||(c.firstLexicalName=l),f=f|so.Lexical),c.names.set(l,f),u&Pr.SCOPE_LEXICAL&&this.maybeExportDefined(c,l)}else if(u&Pr.SCOPE_VAR)for(var h=this.scopeStack.length-1;h>=0&&(c=this.scopeStack[h],this.checkRedeclarationInScope(c,l,u,o),c.names.set(l,(c.names.get(l)||0)|so.Var),this.maybeExportDefined(c,l),!(c.flags&Ur.VAR));--h);this.parser.inModule&&c.flags&Ur.PROGRAM&&this.undefinedExports.delete(l)},r.maybeExportDefined=function(l,u){this.parser.inModule&&l.flags&Ur.PROGRAM&&this.undefinedExports.delete(u)},r.checkRedeclarationInScope=function(l,u,o,c){this.isRedeclaredInScope(l,u,o)&&this.parser.raise(He.VarRedeclaration,c,{identifierName:u})},r.isRedeclaredInScope=function(l,u,o){if(!(o&Pr.KIND_VALUE))return!1;if(o&Pr.SCOPE_LEXICAL)return l.names.has(u);var c=l.names.get(u);return o&Pr.SCOPE_FUNCTION?(c&so.Lexical)>0||!this.treatFunctionsAsVarInScope(l)&&(c&so.Var)>0:(c&so.Lexical)>0&&!(l.flags&Ur.SIMPLE_CATCH&&l.firstLexicalName===u)||!this.treatFunctionsAsVarInScope(l)&&(c&so.Function)>0},r.checkLocalExport=function(l){var u=l.name,o=this.scopeStack[0];o.names.has(u)||this.undefinedExports.set(u,l.loc.start)},r.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},r.currentVarScopeFlags=function(){for(var l=this.scopeStack.length-1;;l--){var u=this.scopeStack[l].flags;if(u&Ur.VAR)return u}},r.currentThisScopeFlags=function(){for(var l=this.scopeStack.length-1;;l--){var u=this.scopeStack[l].flags;if(u&(Ur.VAR|Ur.CLASS)&&!(u&Ur.ARROW))return u}},_(e,[{key:"inTopLevel",get:function(){return(this.currentScope().flags&Ur.PROGRAM)>0}},{key:"inFunction",get:function(){return(this.currentVarScopeFlags()&Ur.FUNCTION)>0}},{key:"allowSuper",get:function(){return(this.currentThisScopeFlags()&Ur.SUPER)>0}},{key:"allowDirectSuper",get:function(){return(this.currentThisScopeFlags()&Ur.DIRECT_SUPER)>0}},{key:"inClass",get:function(){return(this.currentThisScopeFlags()&Ur.CLASS)>0}},{key:"inClassAndNotInNonArrowFunction",get:function(){var l=this.currentThisScopeFlags();return(l&Ur.CLASS)>0&&(l&Ur.FUNCTION)===0}},{key:"inStaticBlock",get:function(){for(var l=this.scopeStack.length-1;;l--){var u=this.scopeStack[l].flags;if(u&Ur.STATIC_BLOCK)return!0;if(u&(Ur.VAR|Ur.CLASS))return!1}}},{key:"inNonArrowFunction",get:function(){return(this.currentThisScopeFlags()&Ur.FUNCTION)>0}},{key:"treatFunctionsAsVar",get:function(){return this.treatFunctionsAsVarInScope(this.currentScope())}}])}(),e5e=function(e){function r(){for(var s,l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return s=e.call.apply(e,[this].concat(u))||this,s.declareFunctions=new Set,s}return M(r,e),_(r)}(hE),t5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.createScope=function(u){return new e5e(u)},s.declareName=function(u,o,c){var f=this.currentScope();if(o&Pr.FLAG_FLOW_DECLARE_FN){this.checkRedeclarationInScope(f,u,o,c),this.maybeExportDefined(f,u),f.declareFunctions.add(u);return}e.prototype.declareName.call(this,u,o,c)},s.isRedeclaredInScope=function(u,o,c){if(e.prototype.isRedeclaredInScope.call(this,u,o,c))return!0;if(c&Pr.FLAG_FLOW_DECLARE_FN&&!u.declareFunctions.has(o)){var f=u.names.get(o);return(f&so.Function)>0||(f&so.Lexical)>0}return!1},s.checkLocalExport=function(u){this.scopeStack[0].declareFunctions.has(u.name)||e.prototype.checkLocalExport.call(this,u)},_(r)}(mE),r5e=function(){function e(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}var r=e.prototype;return r.hasPlugin=function(l){if(typeof l=="string")return this.plugins.has(l);var u=l[0],o=l[1];if(!this.hasPlugin(u))return!1;for(var c=this.plugins.get(u),f=0,h=Object.keys(o);f<h.length;f++){var m=h[f];if((c==null?void 0:c[m])!==o[m])return!1}return!0},r.getPluginOption=function(l,u){var o;return(o=this.plugins.get(l))==null?void 0:o[u]},_(e)}();function yU(e,r){if(e.trailingComments===void 0)e.trailingComments=r;else{var s;(s=e.trailingComments).unshift.apply(s,r)}}function a5e(e,r){if(e.leadingComments===void 0)e.leadingComments=r;else{var s;(s=e.leadingComments).unshift.apply(s,r)}}function ah(e,r){if(e.innerComments===void 0)e.innerComments=r;else{var s;(s=e.innerComments).unshift.apply(s,r)}}function nh(e,r,s){for(var l=null,u=r.length;l===null&&u>0;)l=r[--u];l===null||l.start>s.start?ah(e,s.comments):yU(l,s.comments)}var n5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.addComment=function(u){this.filename&&(u.loc.filename=this.filename);var o=this.state.commentsLen;this.comments.length!==o&&(this.comments.length=o),this.comments.push(u),this.state.commentsLen++},s.processComment=function(u){var o=this.state.commentStack,c=o.length;if(c!==0){var f=c-1,h=o[f];h.start===u.end&&(h.leadingNode=u,f--);for(var m=u.start;f>=0;f--){var g=o[f],x=g.end;if(x>m)g.containingNode=u,this.finalizeComment(g),o.splice(f,1);else{x===m&&(g.trailingNode=u);break}}}},s.finalizeComment=function(u){var o=u.comments;if(u.leadingNode!==null||u.trailingNode!==null)u.leadingNode!==null&&yU(u.leadingNode,o),u.trailingNode!==null&&a5e(u.trailingNode,o);else{var c=u.containingNode,f=u.start;if(this.input.charCodeAt(f-1)===44)switch(c.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":nh(c,c.properties,u);break;case"CallExpression":case"OptionalCallExpression":nh(c,c.arguments,u);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":nh(c,c.params,u);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":nh(c,c.elements,u);break;case"ExportNamedDeclaration":case"ImportDeclaration":nh(c,c.specifiers,u);break;default:ah(c,o)}else ah(c,o)}},s.finalizeRemainingComments=function(){for(var u=this.state.commentStack,o=u.length-1;o>=0;o--)this.finalizeComment(u[o]);this.state.commentStack=[]},s.resetPreviousNodeTrailingComments=function(u){var o=this.state.commentStack,c=o.length;if(c!==0){var f=o[c-1];f.leadingNode===u&&(f.leadingNode=null)}},s.resetPreviousIdentifierLeadingComments=function(u){var o=this.state.commentStack,c=o.length;c!==0&&(o[c-1].trailingNode===u?o[c-1].trailingNode=null:c>=2&&o[c-2].trailingNode===u&&(o[c-2].trailingNode=null))},s.takeSurroundingComments=function(u,o,c){var f=this.state.commentStack,h=f.length;if(h!==0)for(var m=h-1;m>=0;m--){var g=f[m],x=g.end,R=g.start;if(R===c)g.leadingNode=u;else if(x===o)g.trailingNode=u;else if(x<o)break}},_(r)}(r5e),s5e=/\r\n|[\r\n\u2028\u2029]/,d1=new RegExp(s5e.source,"g");function Fd(e){switch(e){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function gU(e,r,s){for(var l=r;l<s;l++)if(Fd(e.charCodeAt(l)))return!0;return!1}var yE=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,gE=/(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;function i5e(e){switch(e){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}var sh={Loop:1,Switch:2},o5e=function(){function e(){this.flags=1024,this.curLine=void 0,this.lineStart=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.labels=[],this.commentsLen=0,this.commentStack=[],this.pos=0,this.type=139,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.context=[ka.brace],this.firstInvalidTemplateEscapePos=null,this.strictErrors=new Map,this.tokensLength=0}var r=e.prototype;return r.init=function(l){var u=l.strictMode,o=l.sourceType,c=l.startLine,f=l.startColumn;this.strict=u===!1?!1:u===!0?!0:o==="module",this.curLine=c,this.lineStart=-f,this.startLoc=this.endLoc=new Wl(c,f,0)},r.curPosition=function(){return new Wl(this.curLine,this.pos-this.lineStart,this.pos)},r.clone=function(){var l=new e;return l.flags=this.flags,l.curLine=this.curLine,l.lineStart=this.lineStart,l.startLoc=this.startLoc,l.endLoc=this.endLoc,l.errors=this.errors.slice(),l.potentialArrowAt=this.potentialArrowAt,l.noArrowAt=this.noArrowAt.slice(),l.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),l.topicContext=this.topicContext,l.labels=this.labels.slice(),l.commentsLen=this.commentsLen,l.commentStack=this.commentStack.slice(),l.pos=this.pos,l.type=this.type,l.value=this.value,l.start=this.start,l.end=this.end,l.lastTokEndLoc=this.lastTokEndLoc,l.lastTokStartLoc=this.lastTokStartLoc,l.context=this.context.slice(),l.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,l.strictErrors=this.strictErrors,l.tokensLength=this.tokensLength,l},_(e,[{key:"strict",get:function(){return(this.flags&1)>0},set:function(l){l?this.flags|=1:this.flags&=-2}},{key:"maybeInArrowParameters",get:function(){return(this.flags&2)>0},set:function(l){l?this.flags|=2:this.flags&=-3}},{key:"inType",get:function(){return(this.flags&4)>0},set:function(l){l?this.flags|=4:this.flags&=-5}},{key:"noAnonFunctionType",get:function(){return(this.flags&8)>0},set:function(l){l?this.flags|=8:this.flags&=-9}},{key:"hasFlowComment",get:function(){return(this.flags&16)>0},set:function(l){l?this.flags|=16:this.flags&=-17}},{key:"isAmbientContext",get:function(){return(this.flags&32)>0},set:function(l){l?this.flags|=32:this.flags&=-33}},{key:"inAbstractClass",get:function(){return(this.flags&64)>0},set:function(l){l?this.flags|=64:this.flags&=-65}},{key:"inDisallowConditionalTypesContext",get:function(){return(this.flags&128)>0},set:function(l){l?this.flags|=128:this.flags&=-129}},{key:"soloAwait",get:function(){return(this.flags&256)>0},set:function(l){l?this.flags|=256:this.flags&=-257}},{key:"inFSharpPipelineDirectBody",get:function(){return(this.flags&512)>0},set:function(l){l?this.flags|=512:this.flags&=-513}},{key:"canStartJSXElement",get:function(){return(this.flags&1024)>0},set:function(l){l?this.flags|=1024:this.flags&=-1025}},{key:"containsEsc",get:function(){return(this.flags&2048)>0},set:function(l){l?this.flags|=2048:this.flags&=-2049}},{key:"hasTopLevelAwait",get:function(){return(this.flags&4096)>0},set:function(l){l?this.flags|=4096:this.flags&=-4097}}])}();function ih(e,r,s){return new Wl(s,e-r,e)}var l5e=new Set([103,109,115,105,121,117,100,118]),Hl=_(function(r){this.type=r.type,this.value=r.value,this.start=r.start,this.end=r.end,this.loc=new o1(r.startLoc,r.endLoc)}),u5e=function(e){function r(l,u){var o;return o=e.call(this)||this,o.isLookahead=void 0,o.tokens=[],o.errorHandlers_readInt={invalidDigit:function(f,h,m,g){return o.options.errorRecovery?(o.raise(He.InvalidDigit,ih(f,h,m),{radix:g}),!0):!1},numericSeparatorInEscapeSequence:o.errorBuilder(He.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:o.errorBuilder(He.UnexpectedNumericSeparator)},o.errorHandlers_readCodePoint=Object.assign({},o.errorHandlers_readInt,{invalidEscapeSequence:o.errorBuilder(He.InvalidEscapeSequence),invalidCodePoint:o.errorBuilder(He.InvalidCodePoint)}),o.errorHandlers_readStringContents_string=Object.assign({},o.errorHandlers_readCodePoint,{strictNumericEscape:function(f,h,m){o.recordStrictModeErrors(He.StrictNumericEscape,ih(f,h,m))},unterminated:function(f,h,m){throw o.raise(He.UnterminatedString,ih(f-1,h,m))}}),o.errorHandlers_readStringContents_template=Object.assign({},o.errorHandlers_readCodePoint,{strictNumericEscape:o.errorBuilder(He.StrictNumericEscape),unterminated:function(f,h,m){throw o.raise(He.UnterminatedTemplate,ih(f,h,m))}}),o.state=new o5e,o.state.init(l),o.input=u,o.length=u.length,o.comments=[],o.isLookahead=!1,o}M(r,e);var s=r.prototype;return s.pushToken=function(u){this.tokens.length=this.state.tokensLength,this.tokens.push(u),++this.state.tokensLength},s.next=function(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new Hl(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},s.eat=function(u){return this.match(u)?(this.next(),!0):!1},s.match=function(u){return this.state.type===u},s.createLookaheadState=function(u){return{pos:u.pos,value:null,type:u.type,start:u.start,end:u.end,context:[this.curContext()],inType:u.inType,startLoc:u.startLoc,lastTokEndLoc:u.lastTokEndLoc,curLine:u.curLine,lineStart:u.lineStart,curPosition:u.curPosition}},s.lookahead=function(){var u=this.state;this.state=this.createLookaheadState(u),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;var o=this.state;return this.state=u,o},s.nextTokenStart=function(){return this.nextTokenStartSince(this.state.pos)},s.nextTokenStartSince=function(u){return yE.lastIndex=u,yE.test(this.input)?yE.lastIndex:u},s.lookaheadCharCode=function(){return this.input.charCodeAt(this.nextTokenStart())},s.nextTokenInLineStart=function(){return this.nextTokenInLineStartSince(this.state.pos)},s.nextTokenInLineStartSince=function(u){return gE.lastIndex=u,gE.test(this.input)?gE.lastIndex:u},s.lookaheadInLineCharCode=function(){return this.input.charCodeAt(this.nextTokenInLineStart())},s.codePointAtPos=function(u){var o=this.input.charCodeAt(u);if((o&64512)===55296&&++u<this.input.length){var c=this.input.charCodeAt(u);(c&64512)===56320&&(o=65536+((o&1023)<<10)+(c&1023))}return o},s.setStrict=function(u){var o=this;this.state.strict=u,u&&(this.state.strictErrors.forEach(function(c){var f=c[0],h=c[1];return o.raise(f,h)}),this.state.strictErrors.clear())},s.curContext=function(){return this.state.context[this.state.context.length-1]},s.nextToken=function(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(139);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))},s.skipBlockComment=function(u){var o;this.isLookahead||(o=this.state.curPosition());var c=this.state.pos,f=this.input.indexOf(u,c+2);if(f===-1)throw this.raise(He.UnterminatedComment,this.state.curPosition());for(this.state.pos=f+u.length,d1.lastIndex=c+2;d1.test(this.input)&&d1.lastIndex<=f;)++this.state.curLine,this.state.lineStart=d1.lastIndex;if(!this.isLookahead){var h={type:"CommentBlock",value:this.input.slice(c+2,f),start:c,end:f+u.length,loc:new o1(o,this.state.curPosition())};return this.options.tokens&&this.pushToken(h),h}},s.skipLineComment=function(u){var o=this.state.pos,c;this.isLookahead||(c=this.state.curPosition());var f=this.input.charCodeAt(this.state.pos+=u);if(this.state.pos<this.length)for(;!Fd(f)&&++this.state.pos<this.length;)f=this.input.charCodeAt(this.state.pos);if(!this.isLookahead){var h=this.state.pos,m=this.input.slice(o+u,h),g={type:"CommentLine",value:m,start:o,end:h,loc:new o1(c,this.state.curPosition())};return this.options.tokens&&this.pushToken(g),g}},s.skipSpace=function(){var u=this.state.pos,o=[];e:for(;this.state.pos<this.length;){var c=this.input.charCodeAt(this.state.pos);switch(c){case 32:case 160:case 9:++this.state.pos;break;case 13:this.input.charCodeAt(this.state.pos+1)===10&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:{var f=this.skipBlockComment("*/");f!==void 0&&(this.addComment(f),this.options.attachComment&&o.push(f));break}case 47:{var h=this.skipLineComment(2);h!==void 0&&(this.addComment(h),this.options.attachComment&&o.push(h));break}default:break e}break;default:if(i5e(c))++this.state.pos;else if(c===45&&!this.inModule&&this.options.annexB){var m=this.state.pos;if(this.input.charCodeAt(m+1)===45&&this.input.charCodeAt(m+2)===62&&(u===0||this.state.lineStart>u)){var g=this.skipLineComment(3);g!==void 0&&(this.addComment(g),this.options.attachComment&&o.push(g))}else break e}else if(c===60&&!this.inModule&&this.options.annexB){var x=this.state.pos;if(this.input.charCodeAt(x+1)===33&&this.input.charCodeAt(x+2)===45&&this.input.charCodeAt(x+3)===45){var R=this.skipLineComment(4);R!==void 0&&(this.addComment(R),this.options.attachComment&&o.push(R))}else break e}else break e}}if(o.length>0){var w=this.state.pos,T={start:u,end:w,comments:o,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(T)}},s.finishToken=function(u,o){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var c=this.state.type;this.state.type=u,this.state.value=o,this.isLookahead||this.updateContext(c)},s.replaceToken=function(u){this.state.type=u,this.updateContext()},s.readToken_numberSign=function(){if(!(this.state.pos===0&&this.readToken_interpreter())){var u=this.state.pos+1,o=this.codePointAtPos(u);if(o>=48&&o<=57)throw this.raise(He.UnexpectedDigitAfterHash,this.state.curPosition());if(o===123||o===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(o===123?He.RecordExpressionHashIncorrectStartSyntaxType:He.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,o===123?this.finishToken(7):this.finishToken(1)}else eo(o)?(++this.state.pos,this.finishToken(138,this.readWord1(o))):o===92?(++this.state.pos,this.finishToken(138,this.readWord1())):this.finishOp(27,1)}},s.readToken_dot=function(){var u=this.input.charCodeAt(this.state.pos+1);if(u>=48&&u<=57){this.readNumber(!0);return}u===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))},s.readToken_slash=function(){var u=this.input.charCodeAt(this.state.pos+1);u===61?this.finishOp(31,2):this.finishOp(56,1)},s.readToken_interpreter=function(){if(this.state.pos!==0||this.length<2)return!1;var u=this.input.charCodeAt(this.state.pos+1);if(u!==33)return!1;var o=this.state.pos;for(this.state.pos+=1;!Fd(u)&&++this.state.pos<this.length;)u=this.input.charCodeAt(this.state.pos);var c=this.input.slice(o+2,this.state.pos);return this.finishToken(28,c),!0},s.readToken_mult_modulo=function(u){var o=u===42?55:54,c=1,f=this.input.charCodeAt(this.state.pos+1);u===42&&f===42&&(c++,f=this.input.charCodeAt(this.state.pos+2),o=57),f===61&&!this.state.inType&&(c++,o=u===37?33:30),this.finishOp(o,c)},s.readToken_pipe_amp=function(u){var o=this.input.charCodeAt(this.state.pos+1);if(o===u){this.input.charCodeAt(this.state.pos+2)===61?this.finishOp(30,3):this.finishOp(u===124?41:42,2);return}if(u===124){if(o===62){this.finishOp(39,2);return}if(this.hasPlugin("recordAndTuple")&&o===125){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(He.RecordExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(9);return}if(this.hasPlugin("recordAndTuple")&&o===93){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(He.TupleExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(4);return}}if(o===61){this.finishOp(30,2);return}this.finishOp(u===124?43:45,1)},s.readToken_caret=function(){var u=this.input.charCodeAt(this.state.pos+1);if(u===61&&!this.state.inType)this.finishOp(32,2);else if(u===94&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"^^"}])){this.finishOp(37,2);var o=this.input.codePointAt(this.state.pos);o===94&&this.unexpected()}else this.finishOp(44,1)},s.readToken_atSign=function(){var u=this.input.charCodeAt(this.state.pos+1);u===64&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"@@"}])?this.finishOp(38,2):this.finishOp(26,1)},s.readToken_plus_min=function(u){var o=this.input.charCodeAt(this.state.pos+1);if(o===u){this.finishOp(34,2);return}o===61?this.finishOp(30,2):this.finishOp(53,1)},s.readToken_lt=function(){var u=this.state.pos,o=this.input.charCodeAt(u+1);if(o===60){if(this.input.charCodeAt(u+2)===61){this.finishOp(30,3);return}this.finishOp(51,2);return}if(o===61){this.finishOp(49,2);return}this.finishOp(47,1)},s.readToken_gt=function(){var u=this.state.pos,o=this.input.charCodeAt(u+1);if(o===62){var c=this.input.charCodeAt(u+2)===62?3:2;if(this.input.charCodeAt(u+c)===61){this.finishOp(30,c+1);return}this.finishOp(52,c);return}if(o===61){this.finishOp(49,2);return}this.finishOp(48,1)},s.readToken_eq_excl=function(u){var o=this.input.charCodeAt(this.state.pos+1);if(o===61){this.finishOp(46,this.input.charCodeAt(this.state.pos+2)===61?3:2);return}if(u===61&&o===62){this.state.pos+=2,this.finishToken(19);return}this.finishOp(u===61?29:35,1)},s.readToken_question=function(){var u=this.input.charCodeAt(this.state.pos+1),o=this.input.charCodeAt(this.state.pos+2);u===63?o===61?this.finishOp(30,3):this.finishOp(40,2):u===46&&!(o>=48&&o<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))},s.getTokenFromCode=function(u){switch(u){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(He.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(He.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{var o=this.input.charCodeAt(this.state.pos+1);if(o===120||o===88){this.readRadixNumber(16);return}if(o===111||o===79){this.readRadixNumber(8);return}if(o===98||o===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(u);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(u);return;case 124:case 38:this.readToken_pipe_amp(u);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(u);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(u);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(eo(u)){this.readWord(u);return}}throw this.raise(He.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(u)})},s.finishOp=function(u,o){var c=this.input.slice(this.state.pos,this.state.pos+o);this.state.pos+=o,this.finishToken(u,c)},s.readRegexp=function(){for(var u=this.state.startLoc,o=this.state.start+1,c,f,h=this.state.pos;;++h){if(h>=this.length)throw this.raise(He.UnterminatedRegExp,is(u,1));var m=this.input.charCodeAt(h);if(Fd(m))throw this.raise(He.UnterminatedRegExp,is(u,1));if(c)c=!1;else{if(m===91)f=!0;else if(m===93&&f)f=!1;else if(m===47&&!f)break;c=m===92}}var g=this.input.slice(o,h);++h;for(var x="",R=function(){return is(u,h+2-o)};h<this.length;){var w=this.codePointAtPos(h),T=String.fromCharCode(w);if(l5e.has(w))w===118?x.includes("u")&&this.raise(He.IncompatibleRegExpUVFlags,R()):w===117&&x.includes("v")&&this.raise(He.IncompatibleRegExpUVFlags,R()),x.includes(T)&&this.raise(He.DuplicateRegExpFlags,R());else if(Bl(w)||w===92)this.raise(He.MalformedRegExpFlags,R());else break;++h,x+=T}this.state.pos=h,this.finishToken(137,{pattern:g,flags:x})},s.readInt=function(u,o,c,f){c===void 0&&(c=!1),f===void 0&&(f=!0);var h=EF(this.input,this.state.pos,this.state.lineStart,this.state.curLine,u,o,c,f,this.errorHandlers_readInt,!1),m=h.n,g=h.pos;return this.state.pos=g,m},s.readRadixNumber=function(u){var o=this.state.curPosition(),c=!1;this.state.pos+=2;var f=this.readInt(u);f==null&&this.raise(He.InvalidDigit,is(o,2),{radix:u});var h=this.input.charCodeAt(this.state.pos);if(h===110)++this.state.pos,c=!0;else if(h===109)throw this.raise(He.InvalidDecimal,o);if(eo(this.codePointAtPos(this.state.pos)))throw this.raise(He.NumberIdentifier,this.state.curPosition());if(c){var m=this.input.slice(o.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(135,m);return}this.finishToken(134,f)},s.readNumber=function(u){var o=this.state.pos,c=this.state.curPosition(),f=!1,h=!1,m=!1,g=!1,x=!1;!u&&this.readInt(10)===null&&this.raise(He.InvalidNumber,this.state.curPosition());var R=this.state.pos-o>=2&&this.input.charCodeAt(o)===48;if(R){var w=this.input.slice(o,this.state.pos);if(this.recordStrictModeErrors(He.StrictOctalLiteral,c),!this.state.strict){var T=w.indexOf("_");T>0&&this.raise(He.ZeroDigitNumericSeparator,is(c,T))}x=R&&!/[89]/.test(w)}var I=this.input.charCodeAt(this.state.pos);if(I===46&&!x&&(++this.state.pos,this.readInt(10),f=!0,I=this.input.charCodeAt(this.state.pos)),(I===69||I===101)&&!x&&(I=this.input.charCodeAt(++this.state.pos),(I===43||I===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(He.InvalidOrMissingExponent,c),f=!0,g=!0,I=this.input.charCodeAt(this.state.pos)),I===110&&((f||R)&&this.raise(He.InvalidBigIntLiteral,c),++this.state.pos,h=!0),I===109&&(this.expectPlugin("decimal",this.state.curPosition()),(g||R)&&this.raise(He.InvalidDecimal,c),++this.state.pos,m=!0),eo(this.codePointAtPos(this.state.pos)))throw this.raise(He.NumberIdentifier,this.state.curPosition());var P=this.input.slice(o,this.state.pos).replace(/[_mn]/g,"");if(h){this.finishToken(135,P);return}if(m){this.finishToken(136,P);return}var O=x?parseInt(P,8):parseFloat(P);this.finishToken(134,O)},s.readCodePoint=function(u){var o=SF(this.input,this.state.pos,this.state.lineStart,this.state.curLine,u,this.errorHandlers_readCodePoint),c=o.code,f=o.pos;return this.state.pos=f,c},s.readString=function(u){var o=F7(u===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string),c=o.str,f=o.pos,h=o.curLine,m=o.lineStart;this.state.pos=f+1,this.state.lineStart=m,this.state.curLine=h,this.finishToken(133,c)},s.readTemplateContinuation=function(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()},s.readTemplateToken=function(){var u=this.input[this.state.pos],o=F7("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template),c=o.str,f=o.firstInvalidLoc,h=o.pos,m=o.curLine,g=o.lineStart;this.state.pos=h+1,this.state.lineStart=g,this.state.curLine=m,f&&(this.state.firstInvalidTemplateEscapePos=new Wl(f.curLine,f.pos-f.lineStart,f.pos)),this.input.codePointAt(h)===96?this.finishToken(24,f?null:u+c+"`"):(this.state.pos++,this.finishToken(25,f?null:u+c+"${"))},s.recordStrictModeErrors=function(u,o){var c=o.index;this.state.strict&&!this.state.strictErrors.has(c)?this.raise(u,o):this.state.strictErrors.set(c,[u,o])},s.readWord1=function(u){this.state.containsEsc=!1;var o="",c=this.state.pos,f=this.state.pos;for(u!==void 0&&(this.state.pos+=u<=65535?1:2);this.state.pos<this.length;){var h=this.codePointAtPos(this.state.pos);if(Bl(h))this.state.pos+=h<=65535?1:2;else if(h===92){this.state.containsEsc=!0,o+=this.input.slice(f,this.state.pos);var m=this.state.curPosition(),g=this.state.pos===c?eo:Bl;if(this.input.charCodeAt(++this.state.pos)!==117){this.raise(He.MissingUnicodeEscape,this.state.curPosition()),f=this.state.pos-1;continue}++this.state.pos;var x=this.readCodePoint(!0);x!==null&&(g(x)||this.raise(He.EscapedCharNotAnIdentifier,m),o+=String.fromCodePoint(x)),f=this.state.pos}else break}return o+this.input.slice(f,this.state.pos)},s.readWord=function(u){var o=this.readWord1(u),c=iE.get(o);c!==void 0?this.finishToken(c,Kl(c)):this.finishToken(132,o)},s.checkKeywordEscapes=function(){var u=this.state.type;fE(u)&&this.state.containsEsc&&this.raise(He.InvalidEscapedReservedWord,this.state.startLoc,{reservedWord:Kl(u)})},s.raise=function(u,o,c){c===void 0&&(c={});var f=o instanceof Wl?o:o.loc.start,h=u(f,c);if(!this.options.errorRecovery)throw h;return this.isLookahead||this.state.errors.push(h),h},s.raiseOverwrite=function(u,o,c){c===void 0&&(c={});for(var f=o instanceof Wl?o:o.loc.start,h=f.index,m=this.state.errors,g=m.length-1;g>=0;g--){var x=m[g];if(x.loc.index===h)return m[g]=u(f,c);if(x.loc.index<h)break}return this.raise(u,o,c)},s.updateContext=function(u){},s.unexpected=function(u,o){throw this.raise(He.UnexpectedToken,u??this.state.startLoc,{expected:o?Kl(o):null})},s.expectPlugin=function(u,o){if(this.hasPlugin(u))return!0;throw this.raise(He.MissingPlugin,o??this.state.startLoc,{missingPlugin:[u]})},s.expectOnePlugin=function(u){var o=this;if(!u.some(function(c){return o.hasPlugin(c)}))throw this.raise(He.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:u})},s.errorBuilder=function(u){var o=this;return function(c,f,h){o.raise(u,ih(c,f,h))}},_(r)}(n5e),c5e=_(function(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}),d5e=function(){function e(s){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=s}var r=e.prototype;return r.current=function(){return this.stack[this.stack.length-1]},r.enter=function(){this.stack.push(new c5e)},r.exit=function(){for(var l=this.stack.pop(),u=this.current(),o=0,c=Array.from(l.undefinedPrivateNames);o<c.length;o++){var f=c[o],h=f[0],m=f[1];u?u.undefinedPrivateNames.has(h)||u.undefinedPrivateNames.set(h,m):this.parser.raise(He.InvalidPrivateFieldResolution,m,{identifierName:h})}},r.declarePrivateName=function(l,u,o){var c=this.current(),f=c.privateNames,h=c.loneAccessors,m=c.undefinedPrivateNames,g=f.has(l);if(u&mi.KIND_ACCESSOR){var x=g&&h.get(l);if(x){var R=x&mi.FLAG_STATIC,w=u&mi.FLAG_STATIC,T=x&mi.KIND_ACCESSOR,I=u&mi.KIND_ACCESSOR;g=T===I||R!==w,g||h.delete(l)}else g||h.set(l,u)}g&&this.parser.raise(He.PrivateNameRedeclaration,o,{identifierName:l}),f.add(l),m.delete(l)},r.usePrivateName=function(l,u){for(var o,c=0,f=this.stack;c<f.length;c++)if(o=f[c],o.privateNames.has(l))return;o?o.undefinedPrivateNames.set(l,u):this.parser.raise(He.InvalidPrivateFieldResolution,u,{identifierName:l})},_(e)}(),p1=function(){function e(s){s===void 0&&(s=0),this.type=s}var r=e.prototype;return r.canBeArrowParameterDeclaration=function(){return this.type===2||this.type===1},r.isCertainlyParameterDeclaration=function(){return this.type===3},_(e)}(),vU=function(e){function r(l){var u;return u=e.call(this,l)||this,u.declarationErrors=new Map,u}M(r,e);var s=r.prototype;return s.recordDeclarationError=function(u,o){var c=o.index;this.declarationErrors.set(c,[u,o])},s.clearDeclarationError=function(u){this.declarationErrors.delete(u)},s.iterateErrors=function(u){this.declarationErrors.forEach(u)},_(r)}(p1),p5e=function(){function e(s){this.parser=void 0,this.stack=[new p1],this.parser=s}var r=e.prototype;return r.enter=function(l){this.stack.push(l)},r.exit=function(){this.stack.pop()},r.recordParameterInitializerError=function(l,u){for(var o=u.loc.start,c=this.stack,f=c.length-1,h=c[f];!h.isCertainlyParameterDeclaration();){if(h.canBeArrowParameterDeclaration())h.recordDeclarationError(l,o);else return;h=c[--f]}this.parser.raise(l,o)},r.recordArrowParameterBindingError=function(l,u){var o=this.stack,c=o[o.length-1],f=u.loc.start;if(c.isCertainlyParameterDeclaration())this.parser.raise(l,f);else if(c.canBeArrowParameterDeclaration())c.recordDeclarationError(l,f);else return},r.recordAsyncArrowParametersError=function(l){for(var u=this.stack,o=u.length-1,c=u[o];c.canBeArrowParameterDeclaration();)c.type===2&&c.recordDeclarationError(He.AwaitBindingIdentifier,l),c=u[--o]},r.validateAsPattern=function(){var l=this,u=this.stack,o=u[u.length-1];o.canBeArrowParameterDeclaration()&&o.iterateErrors(function(c){var f=c[0],h=c[1];l.parser.raise(f,h);for(var m=u.length-2,g=u[m];g.canBeArrowParameterDeclaration();)g.clearDeclarationError(h.index),g=u[--m]})},_(e)}();function f5e(){return new p1(3)}function h5e(){return new vU(1)}function m5e(){return new vU(2)}function bU(){return new p1}var bn={PARAM:0,PARAM_YIELD:1,PARAM_AWAIT:2,PARAM_RETURN:4,PARAM_IN:8},y5e=function(){function e(){this.stacks=[]}var r=e.prototype;return r.enter=function(l){this.stacks.push(l)},r.exit=function(){this.stacks.pop()},r.currentFlags=function(){return this.stacks[this.stacks.length-1]},_(e,[{key:"hasAwait",get:function(){return(this.currentFlags()&bn.PARAM_AWAIT)>0}},{key:"hasYield",get:function(){return(this.currentFlags()&bn.PARAM_YIELD)>0}},{key:"hasReturn",get:function(){return(this.currentFlags()&bn.PARAM_RETURN)>0}},{key:"hasIn",get:function(){return(this.currentFlags()&bn.PARAM_IN)>0}}])}();function f1(e,r){return(e?bn.PARAM_AWAIT:0)|(r?bn.PARAM_YIELD:0)}var g5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.addExtra=function(u,o,c,f){if(f===void 0&&(f=!0),!!u){var h=u.extra;h==null&&(h={},u.extra=h),f?h[o]=c:Object.defineProperty(h,o,{enumerable:f,value:c})}},s.isContextual=function(u){return this.state.type===u&&!this.state.containsEsc},s.isUnparsedContextual=function(u,o){var c=u+o.length;if(this.input.slice(u,c)===o){var f=this.input.charCodeAt(c);return!(Bl(f)||(f&64512)===55296)}return!1},s.isLookaheadContextual=function(u){var o=this.nextTokenStart();return this.isUnparsedContextual(o,u)},s.eatContextual=function(u){return this.isContextual(u)?(this.next(),!0):!1},s.expectContextual=function(u,o){if(!this.eatContextual(u)){if(o!=null)throw this.raise(o,this.state.startLoc);this.unexpected(null,u)}},s.canInsertSemicolon=function(){return this.match(139)||this.match(8)||this.hasPrecedingLineBreak()},s.hasPrecedingLineBreak=function(){return gU(this.input,this.state.lastTokEndLoc.index,this.state.start)},s.hasFollowingLineBreak=function(){return gU(this.input,this.state.end,this.nextTokenStart())},s.isLineTerminator=function(){return this.eat(13)||this.canInsertSemicolon()},s.semicolon=function(u){u===void 0&&(u=!0),!(u?this.isLineTerminator():this.eat(13))&&this.raise(He.MissingSemicolon,this.state.lastTokEndLoc)},s.expect=function(u,o){this.eat(u)||this.unexpected(o,u)},s.tryParse=function(u,o){o===void 0&&(o=this.state.clone());var c={node:null};try{var f=u(function(g){throw g===void 0&&(g=null),c.node=g,c});if(this.state.errors.length>o.errors.length){var h=this.state;return this.state=o,this.state.tokensLength=h.tokensLength,{node:f,error:h.errors[o.errors.length],thrown:!1,aborted:!1,failState:h}}return{node:f,error:null,thrown:!1,aborted:!1,failState:null}}catch(g){var m=this.state;if(this.state=o,g instanceof SyntaxError)return{node:null,error:g,thrown:!0,aborted:!1,failState:m};if(g===c)return{node:c.node,error:null,thrown:!1,aborted:!0,failState:m};throw g}},s.checkExpressionErrors=function(u,o){if(!u)return!1;var c=u.shorthandAssignLoc,f=u.doubleProtoLoc,h=u.privateKeyLoc,m=u.optionalParametersLoc,g=!!c||!!f||!!m||!!h;if(!o)return g;c!=null&&this.raise(He.InvalidCoverInitializedName,c),f!=null&&this.raise(He.DuplicateProto,f),h!=null&&this.raise(He.UnexpectedPrivateField,h),m!=null&&this.unexpected(m)},s.isLiteralPropertyName=function(){return hU(this.state.type)},s.isPrivateName=function(u){return u.type==="PrivateName"},s.getPrivateNameSV=function(u){return u.id.name},s.hasPropertyAsPrivateName=function(u){return(u.type==="MemberExpression"||u.type==="OptionalMemberExpression")&&this.isPrivateName(u.property)},s.isObjectProperty=function(u){return u.type==="ObjectProperty"},s.isObjectMethod=function(u){return u.type==="ObjectMethod"},s.initializeScopes=function(u){var o=this;u===void 0&&(u=this.options.sourceType==="module");var c=this.state.labels;this.state.labels=[];var f=this.exportedIdentifiers;this.exportedIdentifiers=new Set;var h=this.inModule;this.inModule=u;var m=this.scope,g=this.getScopeHandler();this.scope=new g(this,u);var x=this.prodParam;this.prodParam=new y5e;var R=this.classScope;this.classScope=new d5e(this);var w=this.expressionScope;return this.expressionScope=new p5e(this),function(){o.state.labels=c,o.exportedIdentifiers=f,o.inModule=h,o.scope=m,o.prodParam=x,o.classScope=R,o.expressionScope=w}},s.enterInitialScopes=function(){var u=bn.PARAM;this.inModule&&(u|=bn.PARAM_AWAIT),this.scope.enter(Ur.PROGRAM),this.prodParam.enter(u)},s.checkDestructuringPrivate=function(u){var o=u.privateKeyLoc;o!==null&&this.expectPlugin("destructuringPrivate",o)},_(r)}(u5e),h1=_(function(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}),m1=_(function(r,s,l){this.type="",this.start=s,this.end=0,this.loc=new o1(l),r!=null&&r.options.ranges&&(this.range=[s,0]),r!=null&&r.filename&&(this.loc.filename=r.filename)}),vE=m1.prototype;vE.__clone=function(){for(var e=new m1(void 0,this.start,this.loc.start),r=Object.keys(this),s=0,l=r.length;s<l;s++){var u=r[s];u!=="leadingComments"&&u!=="trailingComments"&&u!=="innerComments"&&(e[u]=this[u])}return e};function v5e(e){return Bo(e)}function Bo(e){var r=e.type,s=e.start,l=e.end,u=e.loc,o=e.range,c=e.extra,f=e.name,h=Object.create(vE);return h.type=r,h.start=s,h.end=l,h.loc=u,h.range=o,h.extra=c,h.name=f,r==="Placeholder"&&(h.expectedNode=e.expectedNode),h}function b5e(e){var r=e.type,s=e.start,l=e.end,u=e.loc,o=e.range,c=e.extra;if(r==="Placeholder")return v5e(e);var f=Object.create(vE);return f.type=r,f.start=s,f.end=l,f.loc=u,f.range=o,e.raw!==void 0?f.raw=e.raw:f.extra=c,f.value=e.value,f}var x5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.startNode=function(){var u=this.state.startLoc;return new m1(this,u.index,u)},s.startNodeAt=function(u){return new m1(this,u.index,u)},s.startNodeAtNode=function(u){return this.startNodeAt(u.loc.start)},s.finishNode=function(u,o){return this.finishNodeAt(u,o,this.state.lastTokEndLoc)},s.finishNodeAt=function(u,o,c){return u.type=o,u.end=c.index,u.loc.end=c,this.options.ranges&&(u.range[1]=c.index),this.options.attachComment&&this.processComment(u),u},s.resetStartLocation=function(u,o){u.start=o.index,u.loc.start=o,this.options.ranges&&(u.range[0]=o.index)},s.resetEndLocation=function(u,o){o===void 0&&(o=this.state.lastTokEndLoc),u.end=o.index,u.loc.end=o,this.options.ranges&&(u.range[1]=o.index)},s.resetStartLocationFromNode=function(u,o){this.resetStartLocation(u,o.loc.start)},_(r)}(g5e),xU,R5e=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),jr=Do(xU||(xU=se(["flow"])))({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:function(r){var s=r.reservedType;return"Cannot overwrite reserved type "+s+"."},DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:function(r){var s=r.memberName,l=r.enumName;return"Boolean enum members need to be initialized. Use either `"+s+" = true,` or `"+s+" = false,` in enum `"+l+"`."},EnumDuplicateMemberName:function(r){var s=r.memberName,l=r.enumName;return"Enum member names need to be unique, but the name `"+s+"` has already been used before in enum `"+l+"`."},EnumInconsistentMemberValues:function(r){var s=r.enumName;return"Enum `"+s+"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."},EnumInvalidExplicitType:function(r){var s=r.invalidEnumType,l=r.enumName;return"Enum type `"+s+"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `"+l+"`."},EnumInvalidExplicitTypeUnknownSupplied:function(r){var s=r.enumName;return"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `"+s+"`."},EnumInvalidMemberInitializerPrimaryType:function(r){var s=r.enumName,l=r.memberName,u=r.explicitType;return"Enum `"+s+"` has type `"+u+"`, so the initializer of `"+l+"` needs to be a "+u+" literal."},EnumInvalidMemberInitializerSymbolType:function(r){var s=r.enumName,l=r.memberName;return"Symbol enum members cannot be initialized. Use `"+l+",` in enum `"+s+"`."},EnumInvalidMemberInitializerUnknownType:function(r){var s=r.enumName,l=r.memberName;return"The enum member initializer for `"+l+"` needs to be a literal (either a boolean, number, or string) in enum `"+s+"`."},EnumInvalidMemberName:function(r){var s=r.enumName,l=r.memberName,u=r.suggestion;return"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `"+l+"`, consider using `"+u+"`, in enum `"+s+"`."},EnumNumberMemberNotInitialized:function(r){var s=r.enumName,l=r.memberName;return"Number enum members need to be initialized, e.g. `"+l+" = 1` in enum `"+s+"`."},EnumStringMemberInconsistentlyInitialized:function(r){var s=r.enumName;return"String enum members need to consistently either all use initializers, or use no initializers, in enum `"+s+"`."},GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:function(r){var s=r.reservedType;return"Unexpected reserved type "+s+"."},UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",UnsupportedDeclareExportKind:function(r){var s=r.unsupportedExportKind,l=r.suggestion;return"`declare export "+s+"` is not supported. Use `"+l+"` instead."},UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function E5e(e){return e.type==="DeclareExportAllDeclaration"||e.type==="DeclareExportDeclaration"&&(!e.declaration||e.declaration.type!=="TypeAlias"&&e.declaration.type!=="InterfaceDeclaration")}function RU(e){return e.importKind==="type"||e.importKind==="typeof"}var S5e={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function T5e(e,r){for(var s=[],l=[],u=0;u<e.length;u++)(r(e[u],u,e)?s:l).push(e[u]);return[s,l]}var w5e=/\*?\s*@((?:no)?flow)\b/,P5e=function(e){return function(r){function s(){for(var u,o=arguments.length,c=new Array(o),f=0;f<o;f++)c[f]=arguments[f];return u=r.call.apply(r,[this].concat(c))||this,u.flowPragma=void 0,u}M(s,r);var l=s.prototype;return l.getScopeHandler=function(){return t5e},l.shouldParseTypes=function(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"},l.shouldParseEnums=function(){return!!this.getPluginOption("flow","enums")},l.finishToken=function(o,c){o!==133&&o!==13&&o!==28&&this.flowPragma===void 0&&(this.flowPragma=null),r.prototype.finishToken.call(this,o,c)},l.addComment=function(o){if(this.flowPragma===void 0){var c=w5e.exec(o.value);if(c)if(c[1]==="flow")this.flowPragma="flow";else if(c[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}r.prototype.addComment.call(this,o)},l.flowParseTypeInitialiser=function(o){var c=this.state.inType;this.state.inType=!0,this.expect(o||14);var f=this.flowParseType();return this.state.inType=c,f},l.flowParsePredicate=function(){var o=this.startNode(),c=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>c.index+1&&this.raise(jr.UnexpectedSpaceBetweenModuloChecks,c),this.eat(10)?(o.value=r.prototype.parseExpression.call(this),this.expect(11),this.finishNode(o,"DeclaredPredicate")):this.finishNode(o,"InferredPredicate")},l.flowParseTypeAndPredicateInitialiser=function(){var o=this.state.inType;this.state.inType=!0,this.expect(14);var c=null,f=null;return this.match(54)?(this.state.inType=o,f=this.flowParsePredicate()):(c=this.flowParseType(),this.state.inType=o,this.match(54)&&(f=this.flowParsePredicate())),[c,f]},l.flowParseDeclareClass=function(o){return this.next(),this.flowParseInterfaceish(o,!0),this.finishNode(o,"DeclareClass")},l.flowParseDeclareFunction=function(o){this.next();var c=o.id=this.parseIdentifier(),f=this.startNode(),h=this.startNode();this.match(47)?f.typeParameters=this.flowParseTypeParameterDeclaration():f.typeParameters=null,this.expect(10);var m=this.flowParseFunctionTypeParams();f.params=m.params,f.rest=m.rest,f.this=m._this,this.expect(11);var g=this.flowParseTypeAndPredicateInitialiser();return f.returnType=g[0],o.predicate=g[1],h.typeAnnotation=this.finishNode(f,"FunctionTypeAnnotation"),c.typeAnnotation=this.finishNode(h,"TypeAnnotation"),this.resetEndLocation(c),this.semicolon(),this.scope.declareName(o.id.name,Pr.TYPE_FLOW_DECLARE_FN,o.id.loc.start),this.finishNode(o,"DeclareFunction")},l.flowParseDeclare=function(o,c){if(this.match(80))return this.flowParseDeclareClass(o);if(this.match(68))return this.flowParseDeclareFunction(o);if(this.match(74))return this.flowParseDeclareVariable(o);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(o):(c&&this.raise(jr.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(o));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(o);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(o);if(this.isContextual(129))return this.flowParseDeclareInterface(o);if(this.match(82))return this.flowParseDeclareExportDeclaration(o,c);this.unexpected()},l.flowParseDeclareVariable=function(o){return this.next(),o.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(o.id.name,Pr.TYPE_VAR,o.id.loc.start),this.semicolon(),this.finishNode(o,"DeclareVariable")},l.flowParseDeclareModule=function(o){var c=this;this.scope.enter(Ur.OTHER),this.match(133)?o.id=r.prototype.parseExprAtom.call(this):o.id=this.parseIdentifier();var f=o.body=this.startNode(),h=f.body=[];for(this.expect(5);!this.match(8);){var m=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(jr.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),r.prototype.parseImport.call(this,m)):(this.expectContextual(125,jr.UnsupportedStatementInDeclareModule),m=this.flowParseDeclare(m,!0)),h.push(m)}this.scope.exit(),this.expect(8),this.finishNode(f,"BlockStatement");var g=null,x=!1;return h.forEach(function(R){E5e(R)?(g==="CommonJS"&&c.raise(jr.AmbiguousDeclareModuleKind,R),g="ES"):R.type==="DeclareModuleExports"&&(x&&c.raise(jr.DuplicateDeclareModuleExports,R),g==="ES"&&c.raise(jr.AmbiguousDeclareModuleKind,R),g="CommonJS",x=!0)}),o.kind=g||"CommonJS",this.finishNode(o,"DeclareModule")},l.flowParseDeclareExportDeclaration=function(o,c){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?o.declaration=this.flowParseDeclare(this.startNode()):(o.declaration=this.flowParseType(),this.semicolon()),o.default=!0,this.finishNode(o,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!c){var f=this.state.value;throw this.raise(jr.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:f,suggestion:S5e[f]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return o.declaration=this.flowParseDeclare(this.startNode()),o.default=!1,this.finishNode(o,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return o=this.parseExport(o,null),o.type==="ExportNamedDeclaration"&&(o.type="ExportDeclaration",o.default=!1,delete o.exportKind),o.type="Declare"+o.type,o;this.unexpected()},l.flowParseDeclareModuleExports=function(o){return this.next(),this.expectContextual(111),o.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(o,"DeclareModuleExports")},l.flowParseDeclareTypeAlias=function(o){this.next();var c=this.flowParseTypeAlias(o);return c.type="DeclareTypeAlias",c},l.flowParseDeclareOpaqueType=function(o){this.next();var c=this.flowParseOpaqueType(o,!0);return c.type="DeclareOpaqueType",c},l.flowParseDeclareInterface=function(o){return this.next(),this.flowParseInterfaceish(o,!1),this.finishNode(o,"DeclareInterface")},l.flowParseInterfaceish=function(o,c){if(o.id=this.flowParseRestrictedIdentifier(!c,!0),this.scope.declareName(o.id.name,c?Pr.TYPE_FUNCTION:Pr.TYPE_LEXICAL,o.id.loc.start),this.match(47)?o.typeParameters=this.flowParseTypeParameterDeclaration():o.typeParameters=null,o.extends=[],this.eat(81))do o.extends.push(this.flowParseInterfaceExtends());while(!c&&this.eat(12));if(c){if(o.implements=[],o.mixins=[],this.eatContextual(117))do o.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do o.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}o.body=this.flowParseObjectType({allowStatic:c,allowExact:!1,allowSpread:!1,allowProto:c,allowInexact:!1})},l.flowParseInterfaceExtends=function(){var o=this.startNode();return o.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?o.typeParameters=this.flowParseTypeParameterInstantiation():o.typeParameters=null,this.finishNode(o,"InterfaceExtends")},l.flowParseInterface=function(o){return this.flowParseInterfaceish(o,!1),this.finishNode(o,"InterfaceDeclaration")},l.checkNotUnderscore=function(o){o==="_"&&this.raise(jr.UnexpectedReservedUnderscore,this.state.startLoc)},l.checkReservedType=function(o,c,f){R5e.has(o)&&this.raise(f?jr.AssignReservedType:jr.UnexpectedReservedType,c,{reservedType:o})},l.flowParseRestrictedIdentifier=function(o,c){return this.checkReservedType(this.state.value,this.state.startLoc,c),this.parseIdentifier(o)},l.flowParseTypeAlias=function(o){return o.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(o.id.name,Pr.TYPE_LEXICAL,o.id.loc.start),this.match(47)?o.typeParameters=this.flowParseTypeParameterDeclaration():o.typeParameters=null,o.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(o,"TypeAlias")},l.flowParseOpaqueType=function(o,c){return this.expectContextual(130),o.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(o.id.name,Pr.TYPE_LEXICAL,o.id.loc.start),this.match(47)?o.typeParameters=this.flowParseTypeParameterDeclaration():o.typeParameters=null,o.supertype=null,this.match(14)&&(o.supertype=this.flowParseTypeInitialiser(14)),o.impltype=null,c||(o.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(o,"OpaqueType")},l.flowParseTypeParameter=function(o){o===void 0&&(o=!1);var c=this.state.startLoc,f=this.startNode(),h=this.flowParseVariance(),m=this.flowParseTypeAnnotatableIdentifier();return f.name=m.name,f.variance=h,f.bound=m.typeAnnotation,this.match(29)?(this.eat(29),f.default=this.flowParseType()):o&&this.raise(jr.MissingTypeParamDefault,c),this.finishNode(f,"TypeParameter")},l.flowParseTypeParameterDeclaration=function(){var o=this.state.inType,c=this.startNode();c.params=[],this.state.inType=!0,this.match(47)||this.match(142)?this.next():this.unexpected();var f=!1;do{var h=this.flowParseTypeParameter(f);c.params.push(h),h.default&&(f=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=o,this.finishNode(c,"TypeParameterDeclaration")},l.flowParseTypeParameterInstantiation=function(){var o=this.startNode(),c=this.state.inType;o.params=[],this.state.inType=!0,this.expect(47);var f=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)o.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=f,this.expect(48),this.state.inType=c,this.finishNode(o,"TypeParameterInstantiation")},l.flowParseTypeParameterInstantiationCallOrNew=function(){var o=this.startNode(),c=this.state.inType;for(o.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)o.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=c,this.finishNode(o,"TypeParameterInstantiation")},l.flowParseInterfaceType=function(){var o=this.startNode();if(this.expectContextual(129),o.extends=[],this.eat(81))do o.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return o.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(o,"InterfaceTypeAnnotation")},l.flowParseObjectPropertyKey=function(){return this.match(134)||this.match(133)?r.prototype.parseExprAtom.call(this):this.parseIdentifier(!0)},l.flowParseObjectTypeIndexer=function(o,c,f){return o.static=c,this.lookahead().type===14?(o.id=this.flowParseObjectPropertyKey(),o.key=this.flowParseTypeInitialiser()):(o.id=null,o.key=this.flowParseType()),this.expect(3),o.value=this.flowParseTypeInitialiser(),o.variance=f,this.finishNode(o,"ObjectTypeIndexer")},l.flowParseObjectTypeInternalSlot=function(o,c){return o.static=c,o.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(o.method=!0,o.optional=!1,o.value=this.flowParseObjectTypeMethodish(this.startNodeAt(o.loc.start))):(o.method=!1,this.eat(17)&&(o.optional=!0),o.value=this.flowParseTypeInitialiser()),this.finishNode(o,"ObjectTypeInternalSlot")},l.flowParseObjectTypeMethodish=function(o){for(o.params=[],o.rest=null,o.typeParameters=null,o.this=null,this.match(47)&&(o.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(o.this=this.flowParseFunctionTypeParam(!0),o.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)o.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(o.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),o.returnType=this.flowParseTypeInitialiser(),this.finishNode(o,"FunctionTypeAnnotation")},l.flowParseObjectTypeCallProperty=function(o,c){var f=this.startNode();return o.static=c,o.value=this.flowParseObjectTypeMethodish(f),this.finishNode(o,"ObjectTypeCallProperty")},l.flowParseObjectType=function(o){var c=o.allowStatic,f=o.allowExact,h=o.allowSpread,m=o.allowProto,g=o.allowInexact,x=this.state.inType;this.state.inType=!0;var R=this.startNode();R.callProperties=[],R.properties=[],R.indexers=[],R.internalSlots=[];var w,T,I=!1;for(f&&this.match(6)?(this.expect(6),w=9,T=!0):(this.expect(5),w=8,T=!1),R.exact=T;!this.match(w);){var P=!1,O=null,j=null,D=this.startNode();if(m&&this.isContextual(118)){var k=this.lookahead();k.type!==14&&k.type!==17&&(this.next(),O=this.state.startLoc,c=!1)}if(c&&this.isContextual(106)){var B=this.lookahead();B.type!==14&&B.type!==17&&(this.next(),P=!0)}var F=this.flowParseVariance();if(this.eat(0))O!=null&&this.unexpected(O),this.eat(0)?(F&&this.unexpected(F.loc.start),R.internalSlots.push(this.flowParseObjectTypeInternalSlot(D,P))):R.indexers.push(this.flowParseObjectTypeIndexer(D,P,F));else if(this.match(10)||this.match(47))O!=null&&this.unexpected(O),F&&this.unexpected(F.loc.start),R.callProperties.push(this.flowParseObjectTypeCallProperty(D,P));else{var L="init";if(this.isContextual(99)||this.isContextual(104)){var V=this.lookahead();hU(V.type)&&(L=this.state.value,this.next())}var H=this.flowParseObjectTypeProperty(D,P,O,F,L,h,g??!T);H===null?(I=!0,j=this.state.lastTokStartLoc):R.properties.push(H)}this.flowObjectTypeSemicolon(),j&&!this.match(8)&&!this.match(9)&&this.raise(jr.UnexpectedExplicitInexactInObject,j)}this.expect(w),h&&(R.inexact=I);var K=this.finishNode(R,"ObjectTypeAnnotation");return this.state.inType=x,K},l.flowParseObjectTypeProperty=function(o,c,f,h,m,g,x){if(this.eat(21)){var R=this.match(12)||this.match(13)||this.match(8)||this.match(9);return R?(g?x||this.raise(jr.InexactInsideExact,this.state.lastTokStartLoc):this.raise(jr.InexactInsideNonObject,this.state.lastTokStartLoc),h&&this.raise(jr.InexactVariance,h),null):(g||this.raise(jr.UnexpectedSpreadType,this.state.lastTokStartLoc),f!=null&&this.unexpected(f),h&&this.raise(jr.SpreadVariance,h),o.argument=this.flowParseType(),this.finishNode(o,"ObjectTypeSpreadProperty"))}else{o.key=this.flowParseObjectPropertyKey(),o.static=c,o.proto=f!=null,o.kind=m;var w=!1;return this.match(47)||this.match(10)?(o.method=!0,f!=null&&this.unexpected(f),h&&this.unexpected(h.loc.start),o.value=this.flowParseObjectTypeMethodish(this.startNodeAt(o.loc.start)),(m==="get"||m==="set")&&this.flowCheckGetterSetterParams(o),!g&&o.key.name==="constructor"&&o.value.this&&this.raise(jr.ThisParamBannedInConstructor,o.value.this)):(m!=="init"&&this.unexpected(),o.method=!1,this.eat(17)&&(w=!0),o.value=this.flowParseTypeInitialiser(),o.variance=h),o.optional=w,this.finishNode(o,"ObjectTypeProperty")}},l.flowCheckGetterSetterParams=function(o){var c=o.kind==="get"?0:1,f=o.value.params.length+(o.value.rest?1:0);o.value.this&&this.raise(o.kind==="get"?jr.GetterMayNotHaveThisParam:jr.SetterMayNotHaveThisParam,o.value.this),f!==c&&this.raise(o.kind==="get"?He.BadGetterArity:He.BadSetterArity,o),o.kind==="set"&&o.value.rest&&this.raise(He.BadSetterRestParameter,o)},l.flowObjectTypeSemicolon=function(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()},l.flowParseQualifiedTypeIdentifier=function(o,c){var f;(f=o)!=null||(o=this.state.startLoc);for(var h=c||this.flowParseRestrictedIdentifier(!0);this.eat(16);){var m=this.startNodeAt(o);m.qualification=h,m.id=this.flowParseRestrictedIdentifier(!0),h=this.finishNode(m,"QualifiedTypeIdentifier")}return h},l.flowParseGenericType=function(o,c){var f=this.startNodeAt(o);return f.typeParameters=null,f.id=this.flowParseQualifiedTypeIdentifier(o,c),this.match(47)&&(f.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(f,"GenericTypeAnnotation")},l.flowParseTypeofType=function(){var o=this.startNode();return this.expect(87),o.argument=this.flowParsePrimaryType(),this.finishNode(o,"TypeofTypeAnnotation")},l.flowParseTupleType=function(){var o=this.startNode();for(o.types=[],this.expect(0);this.state.pos<this.length&&!this.match(3)&&(o.types.push(this.flowParseType()),!this.match(3));)this.expect(12);return this.expect(3),this.finishNode(o,"TupleTypeAnnotation")},l.flowParseFunctionTypeParam=function(o){var c=null,f=!1,h=null,m=this.startNode(),g=this.lookahead(),x=this.state.type===78;return g.type===14||g.type===17?(x&&!o&&this.raise(jr.ThisParamMustBeFirst,m),c=this.parseIdentifier(x),this.eat(17)&&(f=!0,x&&this.raise(jr.ThisParamMayNotBeOptional,m)),h=this.flowParseTypeInitialiser()):h=this.flowParseType(),m.name=c,m.optional=f,m.typeAnnotation=h,this.finishNode(m,"FunctionTypeParam")},l.reinterpretTypeAsFunctionTypeParam=function(o){var c=this.startNodeAt(o.loc.start);return c.name=null,c.optional=!1,c.typeAnnotation=o,this.finishNode(c,"FunctionTypeParam")},l.flowParseFunctionTypeParams=function(o){o===void 0&&(o=[]);var c=null,f=null;for(this.match(78)&&(f=this.flowParseFunctionTypeParam(!0),f.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)o.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(c=this.flowParseFunctionTypeParam(!1)),{params:o,rest:c,_this:f}},l.flowIdentToTypeAnnotation=function(o,c,f){switch(f.name){case"any":return this.finishNode(c,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(c,"BooleanTypeAnnotation");case"mixed":return this.finishNode(c,"MixedTypeAnnotation");case"empty":return this.finishNode(c,"EmptyTypeAnnotation");case"number":return this.finishNode(c,"NumberTypeAnnotation");case"string":return this.finishNode(c,"StringTypeAnnotation");case"symbol":return this.finishNode(c,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(f.name),this.flowParseGenericType(o,f)}},l.flowParsePrimaryType=function(){var o=this.state.startLoc,c=this.startNode(),f,h,m=!1,g=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,h=this.flowParseTupleType(),this.state.noAnonFunctionType=g,h;case 47:{var x=this.startNode();return x.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),f=this.flowParseFunctionTypeParams(),x.params=f.params,x.rest=f.rest,x.this=f._this,this.expect(11),this.expect(19),x.returnType=this.flowParseType(),this.finishNode(x,"FunctionTypeAnnotation")}case 10:{var R=this.startNode();if(this.next(),!this.match(11)&&!this.match(21))if(Sa(this.state.type)||this.match(78)){var w=this.lookahead().type;m=w!==17&&w!==14}else m=!0;if(m){if(this.state.noAnonFunctionType=!1,h=this.flowParseType(),this.state.noAnonFunctionType=g,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),h;this.eat(12)}return h?f=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(h)]):f=this.flowParseFunctionTypeParams(),R.params=f.params,R.rest=f.rest,R.this=f._this,this.expect(11),this.expect(19),R.returnType=this.flowParseType(),R.typeParameters=null,this.finishNode(R,"FunctionTypeAnnotation")}case 133:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return c.value=this.match(85),this.next(),this.finishNode(c,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(134))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",c);if(this.match(135))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",c);throw this.raise(jr.UnexpectedSubtractionOperand,this.state.startLoc)}this.unexpected();return;case 134:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 135:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(c,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(c,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(c,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(c,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(fE(this.state.type)){var T=Kl(this.state.type);return this.next(),r.prototype.createIdentifier.call(this,c,T)}else if(Sa(this.state.type))return this.isContextual(129)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(o,c,this.parseIdentifier())}this.unexpected()},l.flowParsePostfixType=function(){for(var o=this.state.startLoc,c=this.flowParsePrimaryType(),f=!1;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){var h=this.startNodeAt(o),m=this.eat(18);f=f||m,this.expect(0),!m&&this.match(3)?(h.elementType=c,this.next(),c=this.finishNode(h,"ArrayTypeAnnotation")):(h.objectType=c,h.indexType=this.flowParseType(),this.expect(3),f?(h.optional=m,c=this.finishNode(h,"OptionalIndexedAccessType")):c=this.finishNode(h,"IndexedAccessType"))}return c},l.flowParsePrefixType=function(){var o=this.startNode();return this.eat(17)?(o.typeAnnotation=this.flowParsePrefixType(),this.finishNode(o,"NullableTypeAnnotation")):this.flowParsePostfixType()},l.flowParseAnonFunctionWithoutParens=function(){var o=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){var c=this.startNodeAt(o.loc.start);return c.params=[this.reinterpretTypeAsFunctionTypeParam(o)],c.rest=null,c.this=null,c.returnType=this.flowParseType(),c.typeParameters=null,this.finishNode(c,"FunctionTypeAnnotation")}return o},l.flowParseIntersectionType=function(){var o=this.startNode();this.eat(45);var c=this.flowParseAnonFunctionWithoutParens();for(o.types=[c];this.eat(45);)o.types.push(this.flowParseAnonFunctionWithoutParens());return o.types.length===1?c:this.finishNode(o,"IntersectionTypeAnnotation")},l.flowParseUnionType=function(){var o=this.startNode();this.eat(43);var c=this.flowParseIntersectionType();for(o.types=[c];this.eat(43);)o.types.push(this.flowParseIntersectionType());return o.types.length===1?c:this.finishNode(o,"UnionTypeAnnotation")},l.flowParseType=function(){var o=this.state.inType;this.state.inType=!0;var c=this.flowParseUnionType();return this.state.inType=o,c},l.flowParseTypeOrImplicitInstantiation=function(){if(this.state.type===132&&this.state.value==="_"){var o=this.state.startLoc,c=this.parseIdentifier();return this.flowParseGenericType(o,c)}else return this.flowParseType()},l.flowParseTypeAnnotation=function(){var o=this.startNode();return o.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(o,"TypeAnnotation")},l.flowParseTypeAnnotatableIdentifier=function(o){var c=o?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(c.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(c)),c},l.typeCastToParameter=function(o){return o.expression.typeAnnotation=o.typeAnnotation,this.resetEndLocation(o.expression,o.typeAnnotation.loc.end),o.expression},l.flowParseVariance=function(){var o=null;return this.match(53)?(o=this.startNode(),this.state.value==="+"?o.kind="plus":o.kind="minus",this.next(),this.finishNode(o,"Variance")):o},l.parseFunctionBody=function(o,c,f){var h=this;if(f===void 0&&(f=!1),c){this.forwardNoArrowParamsConversionAt(o,function(){return r.prototype.parseFunctionBody.call(h,o,!0,f)});return}r.prototype.parseFunctionBody.call(this,o,!1,f)},l.parseFunctionBodyAndFinish=function(o,c,f){if(f===void 0&&(f=!1),this.match(14)){var h=this.startNode(),m=this.flowParseTypeAndPredicateInitialiser();h.typeAnnotation=m[0],o.predicate=m[1],o.returnType=h.typeAnnotation?this.finishNode(h,"TypeAnnotation"):null}return r.prototype.parseFunctionBodyAndFinish.call(this,o,c,f)},l.parseStatementLike=function(o){if(this.state.strict&&this.isContextual(129)){var c=this.lookahead();if(Bi(c.type)){var f=this.startNode();return this.next(),this.flowParseInterface(f)}}else if(this.shouldParseEnums()&&this.isContextual(126)){var h=this.startNode();return this.next(),this.flowParseEnumDeclaration(h)}var m=r.prototype.parseStatementLike.call(this,o);return this.flowPragma===void 0&&!this.isValidDirective(m)&&(this.flowPragma=null),m},l.parseExpressionStatement=function(o,c,f){if(c.type==="Identifier"){if(c.name==="declare"){if(this.match(80)||Sa(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(o)}else if(Sa(this.state.type)){if(c.name==="interface")return this.flowParseInterface(o);if(c.name==="type")return this.flowParseTypeAlias(o);if(c.name==="opaque")return this.flowParseOpaqueType(o,!1)}}return r.prototype.parseExpressionStatement.call(this,o,c,f)},l.shouldParseExportDeclaration=function(){var o=this.state.type;return mU(o)||this.shouldParseEnums()&&o===126?!this.state.containsEsc:r.prototype.shouldParseExportDeclaration.call(this)},l.isExportDefaultSpecifier=function(){var o=this.state.type;return mU(o)||this.shouldParseEnums()&&o===126?this.state.containsEsc:r.prototype.isExportDefaultSpecifier.call(this)},l.parseExportDefaultExpression=function(){if(this.shouldParseEnums()&&this.isContextual(126)){var o=this.startNode();return this.next(),this.flowParseEnumDeclaration(o)}return r.prototype.parseExportDefaultExpression.call(this)},l.parseConditional=function(o,c,f){var h=this;if(!this.match(17))return o;if(this.state.maybeInArrowParameters){var m=this.lookaheadCharCode();if(m===44||m===61||m===58||m===41)return this.setOptionalParametersError(f),o}this.expect(17);var g=this.state.clone(),x=this.state.noArrowAt,R=this.startNodeAt(c),w=this.tryParseConditionalConsequent(),T=w.consequent,I=w.failed,P=this.getArrowLikeExpressions(T),O=P[0],j=P[1];if(I||j.length>0){var D=[].concat(x);if(j.length>0){this.state=g,this.state.noArrowAt=D;for(var k=0;k<j.length;k++)D.push(j[k].start);var B=this.tryParseConditionalConsequent();T=B.consequent,I=B.failed;var F=this.getArrowLikeExpressions(T);O=F[0],j=F[1]}if(I&&O.length>1&&this.raise(jr.AmbiguousConditionalArrow,g.startLoc),I&&O.length===1){this.state=g,D.push(O[0].start),this.state.noArrowAt=D;var L=this.tryParseConditionalConsequent();T=L.consequent,I=L.failed}}return this.getArrowLikeExpressions(T,!0),this.state.noArrowAt=x,this.expect(14),R.test=o,R.consequent=T,R.alternate=this.forwardNoArrowParamsConversionAt(R,function(){return h.parseMaybeAssign(void 0,void 0)}),this.finishNode(R,"ConditionalExpression")},l.tryParseConditionalConsequent=function(){this.state.noArrowParamsConversionAt.push(this.state.start);var o=this.parseMaybeAssignAllowIn(),c=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:o,failed:c}},l.getArrowLikeExpressions=function(o,c){for(var f=this,h=[o],m=[];h.length!==0;){var g=h.pop();g.type==="ArrowFunctionExpression"&&g.body.type!=="BlockStatement"?(g.typeParameters||!g.returnType?this.finishArrowValidation(g):m.push(g),h.push(g.body)):g.type==="ConditionalExpression"&&(h.push(g.consequent),h.push(g.alternate))}return c?(m.forEach(function(x){return f.finishArrowValidation(x)}),[m,[]]):T5e(m,function(x){return x.params.every(function(R){return f.isAssignable(R,!0)})})},l.finishArrowValidation=function(o){var c;this.toAssignableList(o.params,(c=o.extra)==null?void 0:c.trailingCommaLoc,!1),this.scope.enter(Ur.FUNCTION|Ur.ARROW),r.prototype.checkParams.call(this,o,!1,!0),this.scope.exit()},l.forwardNoArrowParamsConversionAt=function(o,c){var f;return this.state.noArrowParamsConversionAt.includes(o.start)?(this.state.noArrowParamsConversionAt.push(this.state.start),f=c(),this.state.noArrowParamsConversionAt.pop()):f=c(),f},l.parseParenItem=function(o,c){var f=r.prototype.parseParenItem.call(this,o,c);if(this.eat(17)&&(f.optional=!0,this.resetEndLocation(o)),this.match(14)){var h=this.startNodeAt(c);return h.expression=f,h.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(h,"TypeCastExpression")}return f},l.assertModuleNodeAllowed=function(o){o.type==="ImportDeclaration"&&(o.importKind==="type"||o.importKind==="typeof")||o.type==="ExportNamedDeclaration"&&o.exportKind==="type"||o.type==="ExportAllDeclaration"&&o.exportKind==="type"||r.prototype.assertModuleNodeAllowed.call(this,o)},l.parseExportDeclaration=function(o){if(this.isContextual(130)){o.exportKind="type";var c=this.startNode();return this.next(),this.match(5)?(o.specifiers=this.parseExportSpecifiers(!0),r.prototype.parseExportFrom.call(this,o),null):this.flowParseTypeAlias(c)}else if(this.isContextual(131)){o.exportKind="type";var f=this.startNode();return this.next(),this.flowParseOpaqueType(f,!1)}else if(this.isContextual(129)){o.exportKind="type";var h=this.startNode();return this.next(),this.flowParseInterface(h)}else if(this.shouldParseEnums()&&this.isContextual(126)){o.exportKind="value";var m=this.startNode();return this.next(),this.flowParseEnumDeclaration(m)}else return r.prototype.parseExportDeclaration.call(this,o)},l.eatExportStar=function(o){return r.prototype.eatExportStar.call(this,o)?!0:this.isContextual(130)&&this.lookahead().type===55?(o.exportKind="type",this.next(),this.next(),!0):!1},l.maybeParseExportNamespaceSpecifier=function(o){var c=this.state.startLoc,f=r.prototype.maybeParseExportNamespaceSpecifier.call(this,o);return f&&o.exportKind==="type"&&this.unexpected(c),f},l.parseClassId=function(o,c,f){r.prototype.parseClassId.call(this,o,c,f),this.match(47)&&(o.typeParameters=this.flowParseTypeParameterDeclaration())},l.parseClassMember=function(o,c,f){var h=this.state.startLoc;if(this.isContextual(125)){if(r.prototype.parseClassMemberFromModifier.call(this,o,c))return;c.declare=!0}r.prototype.parseClassMember.call(this,o,c,f),c.declare&&(c.type!=="ClassProperty"&&c.type!=="ClassPrivateProperty"&&c.type!=="PropertyDefinition"?this.raise(jr.DeclareClassElement,h):c.value&&this.raise(jr.DeclareClassFieldInitializer,c.value))},l.isIterator=function(o){return o==="iterator"||o==="asyncIterator"},l.readIterator=function(){var o=r.prototype.readWord1.call(this),c="@@"+o;(!this.isIterator(o)||!this.state.inType)&&this.raise(He.InvalidIdentifier,this.state.curPosition(),{identifierName:c}),this.finishToken(132,c)},l.getTokenFromCode=function(o){var c=this.input.charCodeAt(this.state.pos+1);o===123&&c===124?this.finishOp(6,2):this.state.inType&&(o===62||o===60)?this.finishOp(o===62?48:47,1):this.state.inType&&o===63?c===46?this.finishOp(18,2):this.finishOp(17,1):Y9e(o,c,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):r.prototype.getTokenFromCode.call(this,o)},l.isAssignable=function(o,c){return o.type==="TypeCastExpression"?this.isAssignable(o.expression,c):r.prototype.isAssignable.call(this,o,c)},l.toAssignable=function(o,c){c===void 0&&(c=!1),!c&&o.type==="AssignmentExpression"&&o.left.type==="TypeCastExpression"&&(o.left=this.typeCastToParameter(o.left)),r.prototype.toAssignable.call(this,o,c)},l.toAssignableList=function(o,c,f){for(var h=0;h<o.length;h++){var m=o[h];(m==null?void 0:m.type)==="TypeCastExpression"&&(o[h]=this.typeCastToParameter(m))}r.prototype.toAssignableList.call(this,o,c,f)},l.toReferencedList=function(o,c){for(var f=0;f<o.length;f++){var h,m=o[f];m&&m.type==="TypeCastExpression"&&!((h=m.extra)!=null&&h.parenthesized)&&(o.length>1||!c)&&this.raise(jr.TypeCastInPattern,m.typeAnnotation)}return o},l.parseArrayLike=function(o,c,f,h){var m=r.prototype.parseArrayLike.call(this,o,c,f,h);return c&&!this.state.maybeInArrowParameters&&this.toReferencedList(m.elements),m},l.isValidLVal=function(o,c,f){return o==="TypeCastExpression"||r.prototype.isValidLVal.call(this,o,c,f)},l.parseClassProperty=function(o){return this.match(14)&&(o.typeAnnotation=this.flowParseTypeAnnotation()),r.prototype.parseClassProperty.call(this,o)},l.parseClassPrivateProperty=function(o){return this.match(14)&&(o.typeAnnotation=this.flowParseTypeAnnotation()),r.prototype.parseClassPrivateProperty.call(this,o)},l.isClassMethod=function(){return this.match(47)||r.prototype.isClassMethod.call(this)},l.isClassProperty=function(){return this.match(14)||r.prototype.isClassProperty.call(this)},l.isNonstaticConstructor=function(o){return!this.match(14)&&r.prototype.isNonstaticConstructor.call(this,o)},l.pushClassMethod=function(o,c,f,h,m,g){if(c.variance&&this.unexpected(c.variance.loc.start),delete c.variance,this.match(47)&&(c.typeParameters=this.flowParseTypeParameterDeclaration()),r.prototype.pushClassMethod.call(this,o,c,f,h,m,g),c.params&&m){var x=c.params;x.length>0&&this.isThisParam(x[0])&&this.raise(jr.ThisParamBannedInConstructor,c)}else if(c.type==="MethodDefinition"&&m&&c.value.params){var R=c.value.params;R.length>0&&this.isThisParam(R[0])&&this.raise(jr.ThisParamBannedInConstructor,c)}},l.pushClassPrivateMethod=function(o,c,f,h){c.variance&&this.unexpected(c.variance.loc.start),delete c.variance,this.match(47)&&(c.typeParameters=this.flowParseTypeParameterDeclaration()),r.prototype.pushClassPrivateMethod.call(this,o,c,f,h)},l.parseClassSuper=function(o){if(r.prototype.parseClassSuper.call(this,o),o.superClass&&this.match(47)&&(o.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(113)){this.next();var c=o.implements=[];do{var f=this.startNode();f.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?f.typeParameters=this.flowParseTypeParameterInstantiation():f.typeParameters=null,c.push(this.finishNode(f,"ClassImplements"))}while(this.eat(12))}},l.checkGetterSetterParams=function(o){r.prototype.checkGetterSetterParams.call(this,o);var c=this.getObjectOrClassMethodParams(o);if(c.length>0){var f=c[0];this.isThisParam(f)&&o.kind==="get"?this.raise(jr.GetterMayNotHaveThisParam,f):this.isThisParam(f)&&this.raise(jr.SetterMayNotHaveThisParam,f)}},l.parsePropertyNamePrefixOperator=function(o){o.variance=this.flowParseVariance()},l.parseObjPropValue=function(o,c,f,h,m,g,x){o.variance&&this.unexpected(o.variance.loc.start),delete o.variance;var R;this.match(47)&&!g&&(R=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());var w=r.prototype.parseObjPropValue.call(this,o,c,f,h,m,g,x);return R&&((w.value||w).typeParameters=R),w},l.parseAssignableListItemTypes=function(o){return this.eat(17)&&(o.type!=="Identifier"&&this.raise(jr.PatternIsOptional,o),this.isThisParam(o)&&this.raise(jr.ThisParamMayNotBeOptional,o),o.optional=!0),this.match(14)?o.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(o)&&this.raise(jr.ThisParamAnnotationRequired,o),this.match(29)&&this.isThisParam(o)&&this.raise(jr.ThisParamNoDefault,o),this.resetEndLocation(o),o},l.parseMaybeDefault=function(o,c){var f=r.prototype.parseMaybeDefault.call(this,o,c);return f.type==="AssignmentPattern"&&f.typeAnnotation&&f.right.start<f.typeAnnotation.start&&this.raise(jr.TypeBeforeInitializer,f.typeAnnotation),f},l.checkImportReflection=function(o){r.prototype.checkImportReflection.call(this,o),o.module&&o.importKind!=="value"&&this.raise(jr.ImportReflectionHasImportType,o.specifiers[0].loc.start)},l.parseImportSpecifierLocal=function(o,c,f){c.local=RU(o)?this.flowParseRestrictedIdentifier(!0,!0):this.parseIdentifier(),o.specifiers.push(this.finishImportSpecifier(c,f))},l.isPotentialImportPhase=function(o){if(r.prototype.isPotentialImportPhase.call(this,o))return!0;if(this.isContextual(130)){if(!o)return!0;var c=this.lookaheadCharCode();return c===123||c===42}return!o&&this.isContextual(87)},l.applyImportPhase=function(o,c,f,h){if(r.prototype.applyImportPhase.call(this,o,c,f,h),c){if(!f&&this.match(65))return;o.exportKind=f==="type"?f:"value"}else f==="type"&&this.match(55)&&this.unexpected(),o.importKind=f==="type"||f==="typeof"?f:"value"},l.parseImportSpecifier=function(o,c,f,h,m){var g=o.imported,x=null;g.type==="Identifier"&&(g.name==="type"?x="type":g.name==="typeof"&&(x="typeof"));var R=!1;if(this.isContextual(93)&&!this.isLookaheadContextual("as")){var w=this.parseIdentifier(!0);x!==null&&!Bi(this.state.type)?(o.imported=w,o.importKind=x,o.local=Bo(w)):(o.imported=g,o.importKind=null,o.local=this.parseIdentifier())}else{if(x!==null&&Bi(this.state.type))o.imported=this.parseIdentifier(!0),o.importKind=x;else{if(c)throw this.raise(He.ImportBindingIsString,o,{importName:g.value});o.imported=g,o.importKind=null}this.eatContextual(93)?o.local=this.parseIdentifier():(R=!0,o.local=Bo(o.imported))}var T=RU(o);return f&&T&&this.raise(jr.ImportTypeShorthandOnlyInPureImport,o),(f||T)&&this.checkReservedType(o.local.name,o.local.loc.start,!0),R&&!f&&!T&&this.checkReservedWord(o.local.name,o.loc.start,!0,!0),this.finishImportSpecifier(o,"ImportSpecifier")},l.parseBindingAtom=function(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return r.prototype.parseBindingAtom.call(this)}},l.parseFunctionParams=function(o,c){var f=o.kind;f!=="get"&&f!=="set"&&this.match(47)&&(o.typeParameters=this.flowParseTypeParameterDeclaration()),r.prototype.parseFunctionParams.call(this,o,c)},l.parseVarId=function(o,c){r.prototype.parseVarId.call(this,o,c),this.match(14)&&(o.id.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(o.id))},l.parseAsyncArrowFromCallExpression=function(o,c){if(this.match(14)){var f=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,o.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=f}return r.prototype.parseAsyncArrowFromCallExpression.call(this,o,c)},l.shouldParseAsyncArrow=function(){return this.match(14)||r.prototype.shouldParseAsyncArrow.call(this)},l.parseMaybeAssign=function(o,c){var f=this,h,m=null,g;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(m=this.state.clone(),g=this.tryParse(function(){return r.prototype.parseMaybeAssign.call(f,o,c)},m),!g.error)return g.node;var x=this.state.context,R=x[x.length-1];(R===ka.j_oTag||R===ka.j_expr)&&x.pop()}if((h=g)!=null&&h.error||this.match(47)){var w,T;m=m||this.state.clone();var I,P=this.tryParse(function(j){var D;I=f.flowParseTypeParameterDeclaration();var k=f.forwardNoArrowParamsConversionAt(I,function(){var F=r.prototype.parseMaybeAssign.call(f,o,c);return f.resetStartLocationFromNode(F,I),F});(D=k.extra)!=null&&D.parenthesized&&j();var B=f.maybeUnwrapTypeCastExpression(k);return B.type!=="ArrowFunctionExpression"&&j(),B.typeParameters=I,f.resetStartLocationFromNode(B,I),k},m),O=null;if(P.node&&this.maybeUnwrapTypeCastExpression(P.node).type==="ArrowFunctionExpression"){if(!P.error&&!P.aborted)return P.node.async&&this.raise(jr.UnexpectedTypeParameterBeforeAsyncArrowFunction,I),P.node;O=P.node}if((w=g)!=null&&w.node)return this.state=g.failState,g.node;if(O)return this.state=P.failState,O;throw(T=g)!=null&&T.thrown?g.error:P.thrown?P.error:this.raise(jr.UnexpectedTokenAfterTypeParameter,I)}return r.prototype.parseMaybeAssign.call(this,o,c)},l.parseArrow=function(o){var c=this;if(this.match(14)){var f=this.tryParse(function(){var h=c.state.noAnonFunctionType;c.state.noAnonFunctionType=!0;var m=c.startNode(),g=c.flowParseTypeAndPredicateInitialiser();return m.typeAnnotation=g[0],o.predicate=g[1],c.state.noAnonFunctionType=h,c.canInsertSemicolon()&&c.unexpected(),c.match(19)||c.unexpected(),m});if(f.thrown)return null;f.error&&(this.state=f.failState),o.returnType=f.node.typeAnnotation?this.finishNode(f.node,"TypeAnnotation"):null}return r.prototype.parseArrow.call(this,o)},l.shouldParseArrow=function(o){return this.match(14)||r.prototype.shouldParseArrow.call(this,o)},l.setArrowFunctionParameters=function(o,c){this.state.noArrowParamsConversionAt.includes(o.start)?o.params=c:r.prototype.setArrowFunctionParameters.call(this,o,c)},l.checkParams=function(o,c,f,h){if(h===void 0&&(h=!0),!(f&&this.state.noArrowParamsConversionAt.includes(o.start))){for(var m=0;m<o.params.length;m++)this.isThisParam(o.params[m])&&m>0&&this.raise(jr.ThisParamMustBeFirst,o.params[m]);r.prototype.checkParams.call(this,o,c,f,h)}},l.parseParenAndDistinguishExpression=function(o){return r.prototype.parseParenAndDistinguishExpression.call(this,o&&!this.state.noArrowAt.includes(this.state.start))},l.parseSubscripts=function(o,c,f){var h=this;if(o.type==="Identifier"&&o.name==="async"&&this.state.noArrowAt.includes(c.index)){this.next();var m=this.startNodeAt(c);m.callee=o,m.arguments=r.prototype.parseCallExpressionArguments.call(this,11,!1),o=this.finishNode(m,"CallExpression")}else if(o.type==="Identifier"&&o.name==="async"&&this.match(47)){var g=this.state.clone(),x=this.tryParse(function(w){return h.parseAsyncArrowWithTypeParameters(c)||w()},g);if(!x.error&&!x.aborted)return x.node;var R=this.tryParse(function(){return r.prototype.parseSubscripts.call(h,o,c,f)},g);if(R.node&&!R.error)return R.node;if(x.node)return this.state=x.failState,x.node;if(R.node)return this.state=R.failState,R.node;throw x.error||R.error}return r.prototype.parseSubscripts.call(this,o,c,f)},l.parseSubscript=function(o,c,f,h){var m=this;if(this.match(18)&&this.isLookaheadToken_lt()){if(h.optionalChainMember=!0,f)return h.stop=!0,o;this.next();var g=this.startNodeAt(c);return g.callee=o,g.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),g.arguments=this.parseCallExpressionArguments(11,!1),g.optional=!0,this.finishCallExpression(g,!0)}else if(!f&&this.shouldParseTypes()&&this.match(47)){var x=this.startNodeAt(c);x.callee=o;var R=this.tryParse(function(){return x.typeArguments=m.flowParseTypeParameterInstantiationCallOrNew(),m.expect(10),x.arguments=r.prototype.parseCallExpressionArguments.call(m,11,!1),h.optionalChainMember&&(x.optional=!1),m.finishCallExpression(x,h.optionalChainMember)});if(R.node)return R.error&&(this.state=R.failState),R.node}return r.prototype.parseSubscript.call(this,o,c,f,h)},l.parseNewCallee=function(o){var c=this;r.prototype.parseNewCallee.call(this,o);var f=null;this.shouldParseTypes()&&this.match(47)&&(f=this.tryParse(function(){return c.flowParseTypeParameterInstantiationCallOrNew()}).node),o.typeArguments=f},l.parseAsyncArrowWithTypeParameters=function(o){var c=this.startNodeAt(o);if(this.parseFunctionParams(c,!1),!!this.parseArrow(c))return r.prototype.parseArrowExpression.call(this,c,void 0,!0)},l.readToken_mult_modulo=function(o){var c=this.input.charCodeAt(this.state.pos+1);if(o===42&&c===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}r.prototype.readToken_mult_modulo.call(this,o)},l.readToken_pipe_amp=function(o){var c=this.input.charCodeAt(this.state.pos+1);if(o===124&&c===125){this.finishOp(9,2);return}r.prototype.readToken_pipe_amp.call(this,o)},l.parseTopLevel=function(o,c){var f=r.prototype.parseTopLevel.call(this,o,c);return this.state.hasFlowComment&&this.raise(jr.UnterminatedFlowComment,this.state.curPosition()),f},l.skipBlockComment=function(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(jr.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();var o=this.skipFlowComment();o&&(this.state.pos+=o,this.state.hasFlowComment=!0);return}return r.prototype.skipBlockComment.call(this,this.state.hasFlowComment?"*-/":"*/")},l.skipFlowComment=function(){for(var o=this.state.pos,c=2;[32,9].includes(this.input.charCodeAt(o+c));)c++;var f=this.input.charCodeAt(c+o),h=this.input.charCodeAt(c+o+1);return f===58&&h===58?c+2:this.input.slice(c+o,c+o+12)==="flow-include"?c+12:f===58&&h!==58?c:!1},l.hasFlowCommentCompletion=function(){var o=this.input.indexOf("*/",this.state.pos);if(o===-1)throw this.raise(He.UnterminatedComment,this.state.curPosition())},l.flowEnumErrorBooleanMemberNotInitialized=function(o,c){var f=c.enumName,h=c.memberName;this.raise(jr.EnumBooleanMemberNotInitialized,o,{memberName:h,enumName:f})},l.flowEnumErrorInvalidMemberInitializer=function(o,c){return this.raise(c.explicitType?c.explicitType==="symbol"?jr.EnumInvalidMemberInitializerSymbolType:jr.EnumInvalidMemberInitializerPrimaryType:jr.EnumInvalidMemberInitializerUnknownType,o,c)},l.flowEnumErrorNumberMemberNotInitialized=function(o,c){this.raise(jr.EnumNumberMemberNotInitialized,o,c)},l.flowEnumErrorStringMemberInconsistentlyInitialized=function(o,c){this.raise(jr.EnumStringMemberInconsistentlyInitialized,o,c)},l.flowEnumMemberInit=function(){var o=this,c=this.state.startLoc,f=function(){return o.match(12)||o.match(8)};switch(this.state.type){case 134:{var h=this.parseNumericLiteral(this.state.value);return f()?{type:"number",loc:h.loc.start,value:h}:{type:"invalid",loc:c}}case 133:{var m=this.parseStringLiteral(this.state.value);return f()?{type:"string",loc:m.loc.start,value:m}:{type:"invalid",loc:c}}case 85:case 86:{var g=this.parseBooleanLiteral(this.match(85));return f()?{type:"boolean",loc:g.loc.start,value:g}:{type:"invalid",loc:c}}default:return{type:"invalid",loc:c}}},l.flowEnumMemberRaw=function(){var o=this.state.startLoc,c=this.parseIdentifier(!0),f=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:o};return{id:c,init:f}},l.flowEnumCheckExplicitTypeMismatch=function(o,c,f){var h=c.explicitType;h!==null&&h!==f&&this.flowEnumErrorInvalidMemberInitializer(o,c)},l.flowEnumMembers=function(o){for(var c=o.enumName,f=o.explicitType,h=new Set,m={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},g=!1;!this.match(8);){if(this.eat(21)){g=!0;break}var x=this.startNode(),R=this.flowEnumMemberRaw(),w=R.id,T=R.init,I=w.name;if(I!==""){/^[a-z]/.test(I)&&this.raise(jr.EnumInvalidMemberName,w,{memberName:I,suggestion:I[0].toUpperCase()+I.slice(1),enumName:c}),h.has(I)&&this.raise(jr.EnumDuplicateMemberName,w,{memberName:I,enumName:c}),h.add(I);var P={enumName:c,explicitType:f,memberName:I};switch(x.id=w,T.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(T.loc,P,"boolean"),x.init=T.value,m.booleanMembers.push(this.finishNode(x,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(T.loc,P,"number"),x.init=T.value,m.numberMembers.push(this.finishNode(x,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(T.loc,P,"string"),x.init=T.value,m.stringMembers.push(this.finishNode(x,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(T.loc,P);case"none":switch(f){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(T.loc,P);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(T.loc,P);break;default:m.defaultedMembers.push(this.finishNode(x,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}}return{members:m,hasUnknownMembers:g}},l.flowEnumStringMembers=function(o,c,f){var h=f.enumName;if(o.length===0)return c;if(c.length===0)return o;if(c.length>o.length){for(var m=0;m<o.length;m++){var g=o[m];this.flowEnumErrorStringMemberInconsistentlyInitialized(g,{enumName:h})}return c}else{for(var x=0;x<c.length;x++){var R=c[x];this.flowEnumErrorStringMemberInconsistentlyInitialized(R,{enumName:h})}return o}},l.flowEnumParseExplicitType=function(o){var c=o.enumName;if(!this.eatContextual(102))return null;if(!Sa(this.state.type))throw this.raise(jr.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:c});var f=this.state.value;return this.next(),f!=="boolean"&&f!=="number"&&f!=="string"&&f!=="symbol"&&this.raise(jr.EnumInvalidExplicitType,this.state.startLoc,{enumName:c,invalidEnumType:f}),f},l.flowEnumBody=function(o,c){var f=this,h=c.name,m=c.loc.start,g=this.flowEnumParseExplicitType({enumName:h});this.expect(5);var x=this.flowEnumMembers({enumName:h,explicitType:g}),R=x.members,w=x.hasUnknownMembers;switch(o.hasUnknownMembers=w,g){case"boolean":return o.explicitType=!0,o.members=R.booleanMembers,this.expect(8),this.finishNode(o,"EnumBooleanBody");case"number":return o.explicitType=!0,o.members=R.numberMembers,this.expect(8),this.finishNode(o,"EnumNumberBody");case"string":return o.explicitType=!0,o.members=this.flowEnumStringMembers(R.stringMembers,R.defaultedMembers,{enumName:h}),this.expect(8),this.finishNode(o,"EnumStringBody");case"symbol":return o.members=R.defaultedMembers,this.expect(8),this.finishNode(o,"EnumSymbolBody");default:{var T=function(){return o.members=[],f.expect(8),f.finishNode(o,"EnumStringBody")};o.explicitType=!1;var I=R.booleanMembers.length,P=R.numberMembers.length,O=R.stringMembers.length,j=R.defaultedMembers.length;if(!I&&!P&&!O&&!j)return T();if(!I&&!P)return o.members=this.flowEnumStringMembers(R.stringMembers,R.defaultedMembers,{enumName:h}),this.expect(8),this.finishNode(o,"EnumStringBody");if(!P&&!O&&I>=j){for(var D=0,k=R.defaultedMembers;D<k.length;D++){var B=k[D];this.flowEnumErrorBooleanMemberNotInitialized(B.loc.start,{enumName:h,memberName:B.id.name})}return o.members=R.booleanMembers,this.expect(8),this.finishNode(o,"EnumBooleanBody")}else if(!I&&!O&&P>=j){for(var F=0,L=R.defaultedMembers;F<L.length;F++){var V=L[F];this.flowEnumErrorNumberMemberNotInitialized(V.loc.start,{enumName:h,memberName:V.id.name})}return o.members=R.numberMembers,this.expect(8),this.finishNode(o,"EnumNumberBody")}else return this.raise(jr.EnumInconsistentMemberValues,m,{enumName:h}),T()}}},l.flowParseEnumDeclaration=function(o){var c=this.parseIdentifier();return o.id=c,o.body=this.flowEnumBody(this.startNode(),c),this.finishNode(o,"EnumDeclaration")},l.isLookaheadToken_lt=function(){var o=this.nextTokenStart();if(this.input.charCodeAt(o)===60){var c=this.input.charCodeAt(o+1);return c!==60&&c!==61}return!1},l.maybeUnwrapTypeCastExpression=function(o){return o.type==="TypeCastExpression"?o.expression:o},_(s)}(e)},A5e={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},EU,Zu=Do(EU||(EU=se(["jsx"])))({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:function(r){var s=r.openingTagName;return"Expected corresponding JSX closing tag for <"+s+">."},MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:function(r){var s=r.unexpected,l=r.HTMLEntity;return"Unexpected token `"+s+"`. Did you mean `"+l+"` or `{'"+s+"'}`?"},UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"});function zl(e){return e?e.type==="JSXOpeningFragment"||e.type==="JSXClosingFragment":!1}function $d(e){if(e.type==="JSXIdentifier")return e.name;if(e.type==="JSXNamespacedName")return e.namespace.name+":"+e.name.name;if(e.type==="JSXMemberExpression")return $d(e.object)+"."+$d(e.property);throw new Error("Node had unexpected type: "+e.type)}var I5e=function(e){return function(r){function s(){return r.apply(this,arguments)||this}M(s,r);var l=s.prototype;return l.jsxReadToken=function(){for(var o="",c=this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(Zu.UnterminatedJsxContent,this.state.startLoc);var f=this.input.charCodeAt(this.state.pos);switch(f){case 60:case 123:if(this.state.pos===this.state.start){f===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(142)):r.prototype.getTokenFromCode.call(this,f);return}o+=this.input.slice(c,this.state.pos),this.finishToken(141,o);return;case 38:o+=this.input.slice(c,this.state.pos),o+=this.jsxReadEntity(),c=this.state.pos;break;case 62:case 125:default:Fd(f)?(o+=this.input.slice(c,this.state.pos),o+=this.jsxReadNewLine(!0),c=this.state.pos):++this.state.pos}}},l.jsxReadNewLine=function(o){var c=this.input.charCodeAt(this.state.pos),f;return++this.state.pos,c===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,f=o?` +`:`\r +`):f=String.fromCharCode(c),++this.state.curLine,this.state.lineStart=this.state.pos,f},l.jsxReadString=function(o){for(var c="",f=++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(He.UnterminatedString,this.state.startLoc);var h=this.input.charCodeAt(this.state.pos);if(h===o)break;h===38?(c+=this.input.slice(f,this.state.pos),c+=this.jsxReadEntity(),f=this.state.pos):Fd(h)?(c+=this.input.slice(f,this.state.pos),c+=this.jsxReadNewLine(!1),f=this.state.pos):++this.state.pos}c+=this.input.slice(f,this.state.pos++),this.finishToken(133,c)},l.jsxReadEntity=function(){var o=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;var c=10;this.codePointAtPos(this.state.pos)===120&&(c=16,++this.state.pos);var f=this.readInt(c,void 0,!1,"bail");if(f!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(f)}else{for(var h=0,m=!1;h++<10&&this.state.pos<this.length&&!(m=this.codePointAtPos(this.state.pos)===59);)++this.state.pos;if(m){var g=this.input.slice(o,this.state.pos),x=A5e[g];if(++this.state.pos,x)return x}}return this.state.pos=o,"&"},l.jsxReadWord=function(){var o,c=this.state.pos;do o=this.input.charCodeAt(++this.state.pos);while(Bl(o)||o===45);this.finishToken(140,this.input.slice(c,this.state.pos))},l.jsxParseIdentifier=function(){var o=this.startNode();return this.match(140)?o.name=this.state.value:fE(this.state.type)?o.name=Kl(this.state.type):this.unexpected(),this.next(),this.finishNode(o,"JSXIdentifier")},l.jsxParseNamespacedName=function(){var o=this.state.startLoc,c=this.jsxParseIdentifier();if(!this.eat(14))return c;var f=this.startNodeAt(o);return f.namespace=c,f.name=this.jsxParseIdentifier(),this.finishNode(f,"JSXNamespacedName")},l.jsxParseElementName=function(){var o=this.state.startLoc,c=this.jsxParseNamespacedName();if(c.type==="JSXNamespacedName")return c;for(;this.eat(16);){var f=this.startNodeAt(o);f.object=c,f.property=this.jsxParseIdentifier(),c=this.finishNode(f,"JSXMemberExpression")}return c},l.jsxParseAttributeValue=function(){var o;switch(this.state.type){case 5:return o=this.startNode(),this.setContext(ka.brace),this.next(),o=this.jsxParseExpressionContainer(o,ka.j_oTag),o.expression.type==="JSXEmptyExpression"&&this.raise(Zu.AttributeIsEmpty,o),o;case 142:case 133:return this.parseExprAtom();default:throw this.raise(Zu.UnsupportedJsxValue,this.state.startLoc)}},l.jsxParseEmptyExpression=function(){var o=this.startNodeAt(this.state.lastTokEndLoc);return this.finishNodeAt(o,"JSXEmptyExpression",this.state.startLoc)},l.jsxParseSpreadChild=function(o){return this.next(),o.expression=this.parseExpression(),this.setContext(ka.j_expr),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(o,"JSXSpreadChild")},l.jsxParseExpressionContainer=function(o,c){if(this.match(8))o.expression=this.jsxParseEmptyExpression();else{var f=this.parseExpression();o.expression=f}return this.setContext(c),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(o,"JSXExpressionContainer")},l.jsxParseAttribute=function(){var o=this.startNode();return this.match(5)?(this.setContext(ka.brace),this.next(),this.expect(21),o.argument=this.parseMaybeAssignAllowIn(),this.setContext(ka.j_oTag),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(o,"JSXSpreadAttribute")):(o.name=this.jsxParseNamespacedName(),o.value=this.eat(29)?this.jsxParseAttributeValue():null,this.finishNode(o,"JSXAttribute"))},l.jsxParseOpeningElementAt=function(o){var c=this.startNodeAt(o);return this.eat(143)?this.finishNode(c,"JSXOpeningFragment"):(c.name=this.jsxParseElementName(),this.jsxParseOpeningElementAfterName(c))},l.jsxParseOpeningElementAfterName=function(o){for(var c=[];!this.match(56)&&!this.match(143);)c.push(this.jsxParseAttribute());return o.attributes=c,o.selfClosing=this.eat(56),this.expect(143),this.finishNode(o,"JSXOpeningElement")},l.jsxParseClosingElementAt=function(o){var c=this.startNodeAt(o);return this.eat(143)?this.finishNode(c,"JSXClosingFragment"):(c.name=this.jsxParseElementName(),this.expect(143),this.finishNode(c,"JSXClosingElement"))},l.jsxParseElementAt=function(o){var c=this.startNodeAt(o),f=[],h=this.jsxParseOpeningElementAt(o),m=null;if(!h.selfClosing){e:for(;;)switch(this.state.type){case 142:if(o=this.state.startLoc,this.next(),this.eat(56)){m=this.jsxParseClosingElementAt(o);break e}f.push(this.jsxParseElementAt(o));break;case 141:f.push(this.parseLiteral(this.state.value,"JSXText"));break;case 5:{var g=this.startNode();this.setContext(ka.brace),this.next(),this.match(21)?f.push(this.jsxParseSpreadChild(g)):f.push(this.jsxParseExpressionContainer(g,ka.j_expr));break}default:this.unexpected()}zl(h)&&!zl(m)&&m!==null?this.raise(Zu.MissingClosingTagFragment,m):!zl(h)&&zl(m)?this.raise(Zu.MissingClosingTagElement,m,{openingTagName:$d(h.name)}):!zl(h)&&!zl(m)&&$d(m.name)!==$d(h.name)&&this.raise(Zu.MissingClosingTagElement,m,{openingTagName:$d(h.name)})}if(zl(h)?(c.openingFragment=h,c.closingFragment=m):(c.openingElement=h,c.closingElement=m),c.children=f,this.match(47))throw this.raise(Zu.UnwrappedAdjacentJSXElements,this.state.startLoc);return zl(h)?this.finishNode(c,"JSXFragment"):this.finishNode(c,"JSXElement")},l.jsxParseElement=function(){var o=this.state.startLoc;return this.next(),this.jsxParseElementAt(o)},l.setContext=function(o){var c=this.state.context;c[c.length-1]=o},l.parseExprAtom=function(o){return this.match(142)?this.jsxParseElement():this.match(47)&&this.input.charCodeAt(this.state.pos)!==33?(this.replaceToken(142),this.jsxParseElement()):r.prototype.parseExprAtom.call(this,o)},l.skipSpace=function(){var o=this.curContext();o.preserveSpace||r.prototype.skipSpace.call(this)},l.getTokenFromCode=function(o){var c=this.curContext();if(c===ka.j_expr){this.jsxReadToken();return}if(c===ka.j_oTag||c===ka.j_cTag){if(eo(o)){this.jsxReadWord();return}if(o===62){++this.state.pos,this.finishToken(143);return}if((o===34||o===39)&&c===ka.j_oTag){this.jsxReadString(o);return}}if(o===60&&this.state.canStartJSXElement&&this.input.charCodeAt(this.state.pos+1)!==33){++this.state.pos,this.finishToken(142);return}r.prototype.getTokenFromCode.call(this,o)},l.updateContext=function(o){var c=this.state,f=c.context,h=c.type;if(h===56&&o===142)f.splice(-2,2,ka.j_cTag),this.state.canStartJSXElement=!1;else if(h===142)f.push(ka.j_oTag);else if(h===143){var m=f[f.length-1];m===ka.j_oTag&&o===56||m===ka.j_cTag?(f.pop(),this.state.canStartJSXElement=f[f.length-1]===ka.j_expr):(this.setContext(ka.j_expr),this.state.canStartJSXElement=!0)}else this.state.canStartJSXElement=U9e(h)},_(s)}(e)},C5e=function(e){function r(){for(var s,l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return s=e.call.apply(e,[this].concat(u))||this,s.tsNames=new Map,s}return M(r,e),_(r)}(hE),j5e=function(e){function r(){for(var l,u=arguments.length,o=new Array(u),c=0;c<u;c++)o[c]=arguments[c];return l=e.call.apply(e,[this].concat(o))||this,l.importsStack=[],l}M(r,e);var s=r.prototype;return s.createScope=function(u){return this.importsStack.push(new Set),new C5e(u)},s.enter=function(u){u===Ur.TS_MODULE&&this.importsStack.push(new Set),e.prototype.enter.call(this,u)},s.exit=function(){var u=e.prototype.exit.call(this);return u===Ur.TS_MODULE&&this.importsStack.pop(),u},s.hasImport=function(u,o){var c=this.importsStack.length;if(this.importsStack[c-1].has(u))return!0;if(!o&&c>1){for(var f=0;f<c-1;f++)if(this.importsStack[f].has(u))return!0}return!1},s.declareName=function(u,o,c){if(o&Pr.FLAG_TS_IMPORT){this.hasImport(u,!0)&&this.parser.raise(He.VarRedeclaration,c,{identifierName:u}),this.importsStack[this.importsStack.length-1].add(u);return}var f=this.currentScope(),h=f.tsNames.get(u)||0;if(o&Pr.FLAG_TS_EXPORT_ONLY){this.maybeExportDefined(f,u),f.tsNames.set(u,h|16);return}e.prototype.declareName.call(this,u,o,c),o&Pr.KIND_TYPE&&(o&Pr.KIND_VALUE||(this.checkRedeclarationInScope(f,u,o,c),this.maybeExportDefined(f,u)),h=h|1),o&Pr.FLAG_TS_ENUM&&(h=h|2),o&Pr.FLAG_TS_CONST_ENUM&&(h=h|4),o&Pr.FLAG_CLASS&&(h=h|8),h&&f.tsNames.set(u,h)},s.isRedeclaredInScope=function(u,o,c){var f=u.tsNames.get(o);if((f&2)>0){if(c&Pr.FLAG_TS_ENUM){var h=!!(c&Pr.FLAG_TS_CONST_ENUM),m=(f&4)>0;return h!==m}return!0}return c&Pr.FLAG_CLASS&&(f&8)>0?u.names.get(o)&so.Lexical?!!(c&Pr.KIND_VALUE):!1:c&Pr.KIND_TYPE&&(f&1)>0?!0:e.prototype.isRedeclaredInScope.call(this,u,o,c)},s.checkLocalExport=function(u){var o=u.name;if(!this.hasImport(o)){for(var c=this.scopeStack.length,f=c-1;f>=0;f--){var h=this.scopeStack[f],m=h.tsNames.get(o);if((m&1)>0||(m&16)>0)return}e.prototype.checkLocalExport.call(this,u)}},_(r)}(mE),SU=function(r){return r.type==="ParenthesizedExpression"?SU(r.expression):r},Xl={ALLOW_EMPTY:1,IS_FUNCTION_PARAMS:2,IS_CONSTRUCTOR_PARAMS:4},O5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.toAssignable=function(u,o){var c,f;o===void 0&&(o=!1);var h=void 0;switch((u.type==="ParenthesizedExpression"||(c=u.extra)!=null&&c.parenthesized)&&(h=SU(u),o?h.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(He.InvalidParenthesizedAssignment,u):h.type!=="MemberExpression"&&!this.isOptionalMemberExpression(h)&&this.raise(He.InvalidParenthesizedAssignment,u):this.raise(He.InvalidParenthesizedAssignment,u)),u.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":u.type="ObjectPattern";for(var m=0,g=u.properties.length,x=g-1;m<g;m++){var R,w=u.properties[m],T=m===x;this.toAssignableObjectExpressionProp(w,T,o),T&&w.type==="RestElement"&&(R=u.extra)!=null&&R.trailingCommaLoc&&this.raise(He.RestTrailingComma,u.extra.trailingCommaLoc)}break;case"ObjectProperty":{var I=u.key,P=u.value;this.isPrivateName(I)&&this.classScope.usePrivateName(this.getPrivateNameSV(I),I.loc.start),this.toAssignable(P,o);break}case"SpreadElement":throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");case"ArrayExpression":u.type="ArrayPattern",this.toAssignableList(u.elements,(f=u.extra)==null?void 0:f.trailingCommaLoc,o);break;case"AssignmentExpression":u.operator!=="="&&this.raise(He.MissingEqInAssignment,u.left.loc.end),u.type="AssignmentPattern",delete u.operator,this.toAssignable(u.left,o);break;case"ParenthesizedExpression":this.toAssignable(h,o);break}},s.toAssignableObjectExpressionProp=function(u,o,c){if(u.type==="ObjectMethod")this.raise(u.kind==="get"||u.kind==="set"?He.PatternHasAccessor:He.PatternHasMethod,u.key);else if(u.type==="SpreadElement"){u.type="RestElement";var f=u.argument;this.checkToRestConversion(f,!1),this.toAssignable(f,c),o||this.raise(He.RestTrailingComma,u)}else this.toAssignable(u,c)},s.toAssignableList=function(u,o,c){for(var f=u.length-1,h=0;h<=f;h++){var m=u[h];if(m){if(m.type==="SpreadElement"){m.type="RestElement";var g=m.argument;this.checkToRestConversion(g,!0),this.toAssignable(g,c)}else this.toAssignable(m,c);m.type==="RestElement"&&(h<f?this.raise(He.RestTrailingComma,m):o&&this.raise(He.RestTrailingComma,o))}}},s.isAssignable=function(u,o){var c=this;switch(u.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":return!0;case"ObjectExpression":{var f=u.properties.length-1;return u.properties.every(function(h,m){return h.type!=="ObjectMethod"&&(m===f||h.type!=="SpreadElement")&&c.isAssignable(h)})}case"ObjectProperty":return this.isAssignable(u.value);case"SpreadElement":return this.isAssignable(u.argument);case"ArrayExpression":return u.elements.every(function(h){return h===null||c.isAssignable(h)});case"AssignmentExpression":return u.operator==="=";case"ParenthesizedExpression":return this.isAssignable(u.expression);case"MemberExpression":case"OptionalMemberExpression":return!o;default:return!1}},s.toReferencedList=function(u,o){return u},s.toReferencedListDeep=function(u,o){this.toReferencedList(u,o);for(var c=0;c<u.length;c++){var f=u[c];(f==null?void 0:f.type)==="ArrayExpression"&&this.toReferencedListDeep(f.elements)}},s.parseSpread=function(u){var o=this.startNode();return this.next(),o.argument=this.parseMaybeAssignAllowIn(u,void 0),this.finishNode(o,"SpreadElement")},s.parseRestBinding=function(){var u=this.startNode();return this.next(),u.argument=this.parseBindingAtom(),this.finishNode(u,"RestElement")},s.parseBindingAtom=function(){switch(this.state.type){case 0:{var u=this.startNode();return this.next(),u.elements=this.parseBindingList(3,93,Xl.ALLOW_EMPTY),this.finishNode(u,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()},s.parseBindingList=function(u,o,c){for(var f=c&Xl.ALLOW_EMPTY,h=[],m=!0;!this.eat(u);)if(m?m=!1:this.expect(12),f&&this.match(12))h.push(null);else{if(this.eat(u))break;if(this.match(21)){if(h.push(this.parseAssignableListItemTypes(this.parseRestBinding(),c)),!this.checkCommaAfterRest(o)){this.expect(u);break}}else{var g=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(He.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)g.push(this.parseDecorator());h.push(this.parseAssignableListItem(c,g))}}return h},s.parseBindingRestProperty=function(u){return this.next(),u.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(u,"RestElement")},s.parseBindingProperty=function(){var u=this.state,o=u.type,c=u.startLoc;if(o===21)return this.parseBindingRestProperty(this.startNode());var f=this.startNode();return o===138?(this.expectPlugin("destructuringPrivate",c),this.classScope.usePrivateName(this.state.value,c),f.key=this.parsePrivateName()):this.parsePropertyName(f),f.method=!1,this.parseObjPropValue(f,c,!1,!1,!0,!1)},s.parseAssignableListItem=function(u,o){var c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c,u);var f=this.parseMaybeDefault(c.loc.start,c);return o.length&&(c.decorators=o),f},s.parseAssignableListItemTypes=function(u,o){return u},s.parseMaybeDefault=function(u,o){var c,f;if((c=u)!=null||(u=this.state.startLoc),o=(f=o)!=null?f:this.parseBindingAtom(),!this.eat(29))return o;var h=this.startNodeAt(u);return h.left=o,h.right=this.parseMaybeAssignAllowIn(),this.finishNode(h,"AssignmentPattern")},s.isValidLVal=function(u,o,c){switch(u){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1},s.isOptionalMemberExpression=function(u){return u.type==="OptionalMemberExpression"},s.checkLVal=function(u,o,c,f,h,m){var g;c===void 0&&(c=Pr.TYPE_NONE),f===void 0&&(f=!1),h===void 0&&(h=!1),m===void 0&&(m=!1);var x=u.type;if(!this.isObjectMethod(u)){var R=this.isOptionalMemberExpression(u);if(R||x==="MemberExpression"){R&&(this.expectPlugin("optionalChainingAssign",u.loc.start),o.type!=="AssignmentExpression"&&this.raise(He.InvalidLhsOptionalChaining,u,{ancestor:o})),c!==Pr.TYPE_NONE&&this.raise(He.InvalidPropertyBindingPattern,u);return}if(x==="Identifier"){this.checkIdentifier(u,c,h);var w=u.name;f&&(f.has(w)?this.raise(He.ParamDupe,u):f.add(w));return}var T=this.isValidLVal(x,!(m||(g=u.extra)!=null&&g.parenthesized)&&o.type==="AssignmentExpression",c);if(T!==!0){if(T===!1){var I=c===Pr.TYPE_NONE?He.InvalidLhs:He.InvalidLhsBinding;this.raise(I,u,{ancestor:o});return}var P,O;typeof T=="string"?(P=T,O=x==="ParenthesizedExpression"):(P=T[0],O=T[1]);var j=x==="ArrayPattern"||x==="ObjectPattern"?{type:x}:o,D=u[P];if(Array.isArray(D))for(var k=0;k<D.length;k++){var B=D[k];B&&this.checkLVal(B,j,c,f,h,O)}else D&&this.checkLVal(D,j,c,f,h,O)}}},s.checkIdentifier=function(u,o,c){c===void 0&&(c=!1),this.state.strict&&(c?xF(u.name,this.inModule):bF(u.name))&&(o===Pr.TYPE_NONE?this.raise(He.StrictEvalArguments,u,{referenceName:u.name}):this.raise(He.StrictEvalArgumentsBinding,u,{bindingName:u.name})),o&Pr.FLAG_NO_LET_IN_LEXICAL&&u.name==="let"&&this.raise(He.LetInLexicalBinding,u),o&Pr.TYPE_NONE||this.declareNameFromIdentifier(u,o)},s.declareNameFromIdentifier=function(u,o){this.scope.declareName(u.name,o,u.loc.start)},s.checkToRestConversion=function(u,o){switch(u.type){case"ParenthesizedExpression":this.checkToRestConversion(u.expression,o);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(o)break;default:this.raise(He.InvalidRestAssignmentPattern,u)}},s.checkCommaAfterRest=function(u){return this.match(12)?(this.raise(this.lookaheadCharCode()===u?He.RestTrailingComma:He.ElementAfterRest,this.state.startLoc),!0):!1},_(r)}(x5e),TU;function _5e(e){if(e==null)throw new Error("Unexpected "+e+" value.");return e}function wU(e){if(!e)throw new Error("Assert fail")}var fr=Do(TU||(TU=se(["typescript"])))({AbstractMethodHasImplementation:function(r){var s=r.methodName;return"Method '"+s+"' cannot have an implementation because it is marked abstract."},AbstractPropertyHasInitializer:function(r){var s=r.propertyName;return"Property '"+s+"' cannot have an initializer because it is marked abstract."},AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",AccessorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccessorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:function(r){var s=r.kind;return"'declare' is not allowed in "+s+"ters."},DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:function(r){return r.modifier,"Accessibility modifier already seen."},DuplicateModifier:function(r){var s=r.modifier;return"Duplicate modifier: '"+s+"'."},EmptyHeritageClauseType:function(r){var s=r.token;return"'"+s+"' list cannot be empty."},EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:function(r){var s=r.modifiers;return"'"+s[0]+"' modifier cannot be used with '"+s[1]+"' modifier."},IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:function(r){var s=r.modifier;return"Index signatures cannot have an accessibility modifier ('"+s+"')."},IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:function(r){var s=r.modifier;return"'"+s+"' modifier cannot appear on a type member."},InvalidModifierOnTypeParameter:function(r){var s=r.modifier;return"'"+s+"' modifier cannot appear on a type parameter."},InvalidModifierOnTypeParameterPositions:function(r){var s=r.modifier;return"'"+s+"' modifier can only appear on a type parameter of a class, interface or type alias."},InvalidModifiersOrder:function(r){var s=r.orderedModifiers;return"'"+s[0]+"' modifier must precede '"+s[1]+"' modifier."},InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:function(r){var s=r.modifier;return"Private elements cannot have an accessibility modifier ('"+s+"')."},ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccessorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccessorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccessorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:function(r){var s=r.typeParameterName;return"Single type parameter "+s+" should have a trailing comma. Example usage: <"+s+",>."},StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:function(r){var s=r.type;return"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got "+s+"."}});function N5e(e){switch(e){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function PU(e){return e==="private"||e==="public"||e==="protected"}function k5e(e){return e==="in"||e==="out"}var D5e=function(e){return function(r){function s(){for(var u,o=arguments.length,c=new Array(o),f=0;f<o;f++)c[f]=arguments[f];return u=r.call.apply(r,[this].concat(c))||this,u.tsParseInOutModifiers=u.tsParseModifiers.bind(u,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:fr.InvalidModifierOnTypeParameter}),u.tsParseConstModifier=u.tsParseModifiers.bind(u,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:fr.InvalidModifierOnTypeParameterPositions}),u.tsParseInOutConstModifiers=u.tsParseModifiers.bind(u,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:fr.InvalidModifierOnTypeParameter}),u}M(s,r);var l=s.prototype;return l.getScopeHandler=function(){return j5e},l.tsIsIdentifier=function(){return Sa(this.state.type)},l.tsTokenCanFollowModifier=function(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(138)||this.isLiteralPropertyName()},l.tsNextTokenOnSameLineAndCanFollowModifier=function(){return this.next(),this.hasPrecedingLineBreak()?!1:this.tsTokenCanFollowModifier()},l.tsNextTokenCanFollowModifier=function(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()},l.tsParseModifier=function(o,c){if(!(!Sa(this.state.type)&&this.state.type!==58&&this.state.type!==75)){var f=this.state.value;if(o.includes(f)){if(c&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return f}}},l.tsParseModifiers=function(o,c){for(var f=this,h=o.allowedModifiers,m=o.disallowedModifiers,g=o.stopOnStartOfClassStaticBlock,x=o.errorTemplate,R=x===void 0?fr.InvalidModifierOnTypeMember:x,w=function(j,D,k,B){D===k&&c[B]&&f.raise(fr.InvalidModifiersOrder,j,{orderedModifiers:[k,B]})},T=function(j,D,k,B){(c[k]&&D===B||c[B]&&D===k)&&f.raise(fr.IncompatibleModifiers,j,{modifiers:[k,B]})};;){var I=this.state.startLoc,P=this.tsParseModifier(h.concat(m??[]),g);if(!P)break;PU(P)?c.accessibility?this.raise(fr.DuplicateAccessibilityModifier,I,{modifier:P}):(w(I,P,P,"override"),w(I,P,P,"static"),w(I,P,P,"readonly"),c.accessibility=P):k5e(P)?(c[P]&&this.raise(fr.DuplicateModifier,I,{modifier:P}),c[P]=!0,w(I,P,"in","out")):(hasOwnProperty.call(c,P)?this.raise(fr.DuplicateModifier,I,{modifier:P}):(w(I,P,"static","readonly"),w(I,P,"static","override"),w(I,P,"override","readonly"),w(I,P,"abstract","override"),T(I,P,"declare","override"),T(I,P,"static","abstract")),c[P]=!0),m!=null&&m.includes(P)&&this.raise(R,I,{modifier:P})}},l.tsIsListTerminator=function(o){switch(o){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}},l.tsParseList=function(o,c){for(var f=[];!this.tsIsListTerminator(o);)f.push(c());return f},l.tsParseDelimitedList=function(o,c,f){return _5e(this.tsParseDelimitedListWorker(o,c,!0,f))},l.tsParseDelimitedListWorker=function(o,c,f,h){for(var m=[],g=-1;!this.tsIsListTerminator(o);){g=-1;var x=c();if(x==null)return;if(m.push(x),this.eat(12)){g=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(o))break;f&&this.expect(12);return}return h&&(h.value=g),m},l.tsParseBracketedList=function(o,c,f,h,m){h||(f?this.expect(0):this.expect(47));var g=this.tsParseDelimitedList(o,c,m);return f?this.expect(3):this.expect(48),g},l.tsParseImportType=function(){var o=this.startNode();return this.expect(83),this.expect(10),this.match(133)||this.raise(fr.UnsupportedImportTypeArgument,this.state.startLoc),o.argument=r.prototype.parseExprAtom.call(this),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(o.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(o.options=r.prototype.parseMaybeAssignAllowIn.call(this),this.eat(12))),this.expect(11),this.eat(16)&&(o.qualifier=this.tsParseEntityName()),this.match(47)&&(o.typeParameters=this.tsParseTypeArguments()),this.finishNode(o,"TSImportType")},l.tsParseEntityName=function(o){o===void 0&&(o=!0);for(var c=this.parseIdentifier(o);this.eat(16);){var f=this.startNodeAtNode(c);f.left=c,f.right=this.parseIdentifier(o),c=this.finishNode(f,"TSQualifiedName")}return c},l.tsParseTypeReference=function(){var o=this.startNode();return o.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(o.typeParameters=this.tsParseTypeArguments()),this.finishNode(o,"TSTypeReference")},l.tsParseThisTypePredicate=function(o){this.next();var c=this.startNodeAtNode(o);return c.parameterName=o,c.typeAnnotation=this.tsParseTypeAnnotation(!1),c.asserts=!1,this.finishNode(c,"TSTypePredicate")},l.tsParseThisTypeNode=function(){var o=this.startNode();return this.next(),this.finishNode(o,"TSThisType")},l.tsParseTypeQuery=function(){var o=this.startNode();return this.expect(87),this.match(83)?o.exprName=this.tsParseImportType():o.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(o.typeParameters=this.tsParseTypeArguments()),this.finishNode(o,"TSTypeQuery")},l.tsParseTypeParameter=function(o){var c=this.startNode();return o(c),c.name=this.tsParseTypeParameterName(),c.constraint=this.tsEatThenParseType(81),c.default=this.tsEatThenParseType(29),this.finishNode(c,"TSTypeParameter")},l.tsTryParseTypeParameters=function(o){if(this.match(47))return this.tsParseTypeParameters(o)},l.tsParseTypeParameters=function(o){var c=this.startNode();this.match(47)||this.match(142)?this.next():this.unexpected();var f={value:-1};return c.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,o),!1,!0,f),c.params.length===0&&this.raise(fr.EmptyTypeParameters,c),f.value!==-1&&this.addExtra(c,"trailingComma",f.value),this.finishNode(c,"TSTypeParameterDeclaration")},l.tsFillSignature=function(o,c){var f=o===19,h="parameters",m="typeAnnotation";c.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),c[h]=this.tsParseBindingListForSignature(),f?c[m]=this.tsParseTypeOrTypePredicateAnnotation(o):this.match(o)&&(c[m]=this.tsParseTypeOrTypePredicateAnnotation(o))},l.tsParseBindingListForSignature=function(){for(var o=r.prototype.parseBindingList.call(this,11,41,Xl.IS_FUNCTION_PARAMS),c=0;c<o.length;c++){var f=o[c],h=f.type;(h==="AssignmentPattern"||h==="TSParameterProperty")&&this.raise(fr.UnsupportedSignatureParameterKind,f,{type:h})}return o},l.tsParseTypeMemberSemicolon=function(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)},l.tsParseSignatureMember=function(o,c){return this.tsFillSignature(14,c),this.tsParseTypeMemberSemicolon(),this.finishNode(c,o)},l.tsIsUnambiguouslyIndexSignature=function(){return this.next(),Sa(this.state.type)?(this.next(),this.match(14)):!1},l.tsTryParseIndexSignature=function(o){if(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))){this.expect(0);var c=this.parseIdentifier();c.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(c),this.expect(3),o.parameters=[c];var f=this.tsTryParseTypeAnnotation();return f&&(o.typeAnnotation=f),this.tsParseTypeMemberSemicolon(),this.finishNode(o,"TSIndexSignature")}},l.tsParsePropertyOrMethodSignature=function(o,c){this.eat(17)&&(o.optional=!0);var f=o;if(this.match(10)||this.match(47)){c&&this.raise(fr.ReadonlyForMethodSignature,o);var h=f;h.kind&&this.match(47)&&this.raise(fr.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,h),this.tsParseTypeMemberSemicolon();var m="parameters",g="typeAnnotation";if(h.kind==="get")h[m].length>0&&(this.raise(He.BadGetterArity,this.state.curPosition()),this.isThisParam(h[m][0])&&this.raise(fr.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if(h.kind==="set"){if(h[m].length!==1)this.raise(He.BadSetterArity,this.state.curPosition());else{var x=h[m][0];this.isThisParam(x)&&this.raise(fr.AccessorCannotDeclareThisParameter,this.state.curPosition()),x.type==="Identifier"&&x.optional&&this.raise(fr.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),x.type==="RestElement"&&this.raise(fr.SetAccessorCannotHaveRestParameter,this.state.curPosition())}h[g]&&this.raise(fr.SetAccessorCannotHaveReturnType,h[g])}else h.kind="method";return this.finishNode(h,"TSMethodSignature")}else{var R=f;c&&(R.readonly=!0);var w=this.tsTryParseTypeAnnotation();return w&&(R.typeAnnotation=w),this.tsParseTypeMemberSemicolon(),this.finishNode(R,"TSPropertySignature")}},l.tsParseTypeMember=function(){var o=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",o);if(this.match(77)){var c=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",o):(o.key=this.createIdentifier(c,"new"),this.tsParsePropertyOrMethodSignature(o,!1))}this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},o);var f=this.tsTryParseIndexSignature(o);return f||(r.prototype.parsePropertyName.call(this,o),!o.computed&&o.key.type==="Identifier"&&(o.key.name==="get"||o.key.name==="set")&&this.tsTokenCanFollowModifier()&&(o.kind=o.key.name,r.prototype.parsePropertyName.call(this,o)),this.tsParsePropertyOrMethodSignature(o,!!o.readonly))},l.tsParseTypeLiteral=function(){var o=this.startNode();return o.members=this.tsParseObjectTypeMembers(),this.finishNode(o,"TSTypeLiteral")},l.tsParseObjectTypeMembers=function(){this.expect(5);var o=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),o},l.tsIsStartOfMappedType=function(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))},l.tsParseMappedType=function(){var o=this.startNode();this.expect(5),this.match(53)?(o.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(o.readonly=!0),this.expect(0);{var c=this.startNode();c.name=this.tsParseTypeParameterName(),c.constraint=this.tsExpectThenParseType(58),o.typeParameter=this.finishNode(c,"TSTypeParameter")}return o.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(o.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(o.optional=!0),o.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(o,"TSMappedType")},l.tsParseTupleType=function(){var o=this,c=this.startNode();c.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);var f=!1;return c.elementTypes.forEach(function(h){var m=h.type;f&&m!=="TSRestType"&&m!=="TSOptionalType"&&!(m==="TSNamedTupleMember"&&h.optional)&&o.raise(fr.OptionalTypeBeforeRequired,h),f||(f=m==="TSNamedTupleMember"&&h.optional||m==="TSOptionalType")}),this.finishNode(c,"TSTupleType")},l.tsParseTupleElementType=function(){var o=this.state.startLoc,c=this.eat(21),f,h,m,g,x=Bi(this.state.type),R=x?this.lookaheadCharCode():null;if(R===58)f=!0,m=!1,h=this.parseIdentifier(!0),this.expect(14),g=this.tsParseType();else if(R===63){m=!0;var w=this.state.startLoc,T=this.state.value,I=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(f=!0,h=this.createIdentifier(this.startNodeAt(w),T),this.expect(17),this.expect(14),g=this.tsParseType()):(f=!1,g=I,this.expect(17))}else g=this.tsParseType(),m=this.eat(17),f=this.eat(14);if(f){var P;h?(P=this.startNodeAtNode(h),P.optional=m,P.label=h,P.elementType=g,this.eat(17)&&(P.optional=!0,this.raise(fr.TupleOptionalAfterType,this.state.lastTokStartLoc))):(P=this.startNodeAtNode(g),P.optional=m,this.raise(fr.InvalidTupleMemberLabel,g),P.label=g,P.elementType=this.tsParseType()),g=this.finishNode(P,"TSNamedTupleMember")}else if(m){var O=this.startNodeAtNode(g);O.typeAnnotation=g,g=this.finishNode(O,"TSOptionalType")}if(c){var j=this.startNodeAt(o);j.typeAnnotation=g,g=this.finishNode(j,"TSRestType")}return g},l.tsParseParenthesizedType=function(){var o=this.startNode();return this.expect(10),o.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(o,"TSParenthesizedType")},l.tsParseFunctionOrConstructorType=function(o,c){var f=this,h=this.startNode();return o==="TSConstructorType"&&(h.abstract=!!c,c&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(function(){return f.tsFillSignature(19,h)}),this.finishNode(h,o)},l.tsParseLiteralTypeNode=function(){var o=this.startNode();switch(this.state.type){case 134:case 135:case 133:case 85:case 86:o.literal=r.prototype.parseExprAtom.call(this);break;default:this.unexpected()}return this.finishNode(o,"TSLiteralType")},l.tsParseTemplateLiteralType=function(){var o=this.startNode();return o.literal=r.prototype.parseTemplate.call(this,!1),this.finishNode(o,"TSLiteralType")},l.parseTemplateSubstitution=function(){return this.state.inType?this.tsParseType():r.prototype.parseTemplateSubstitution.call(this)},l.tsParseThisTypeOrThisTypePredicate=function(){var o=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(o):o},l.tsParseNonArrayType=function(){switch(this.state.type){case 133:case 134:case 135:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){var o=this.startNode(),c=this.lookahead();return c.type!==134&&c.type!==135&&this.unexpected(),o.literal=this.parseMaybeUnary(),this.finishNode(o,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{var f=this.state.type;if(Sa(f)||f===88||f===84){var h=f===88?"TSVoidKeyword":f===84?"TSNullKeyword":N5e(this.state.value);if(h!==void 0&&this.lookaheadCharCode()!==46){var m=this.startNode();return this.next(),this.finishNode(m,h)}return this.tsParseTypeReference()}}}this.unexpected()},l.tsParseArrayTypeOrHigher=function(){for(var o=this.tsParseNonArrayType();!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){var c=this.startNodeAtNode(o);c.elementType=o,this.expect(3),o=this.finishNode(c,"TSArrayType")}else{var f=this.startNodeAtNode(o);f.objectType=o,f.indexType=this.tsParseType(),this.expect(3),o=this.finishNode(f,"TSIndexedAccessType")}return o},l.tsParseTypeOperator=function(){var o=this.startNode(),c=this.state.value;return this.next(),o.operator=c,o.typeAnnotation=this.tsParseTypeOperatorOrHigher(),c==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(o),this.finishNode(o,"TSTypeOperator")},l.tsCheckTypeAnnotationForReadOnly=function(o){switch(o.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(fr.UnexpectedReadonly,o)}},l.tsParseInferType=function(){var o=this,c=this.startNode();this.expectContextual(115);var f=this.startNode();return f.name=this.tsParseTypeParameterName(),f.constraint=this.tsTryParse(function(){return o.tsParseConstraintForInferType()}),c.typeParameter=this.finishNode(f,"TSTypeParameter"),this.finishNode(c,"TSInferType")},l.tsParseConstraintForInferType=function(){var o=this;if(this.eat(81)){var c=this.tsInDisallowConditionalTypesContext(function(){return o.tsParseType()});if(this.state.inDisallowConditionalTypesContext||!this.match(17))return c}},l.tsParseTypeOperatorOrHigher=function(){var o=this,c=z9e(this.state.type)&&!this.state.containsEsc;return c?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(function(){return o.tsParseArrayTypeOrHigher()})},l.tsParseUnionOrIntersectionType=function(o,c,f){var h=this.startNode(),m=this.eat(f),g=[];do g.push(c());while(this.eat(f));return g.length===1&&!m?g[0]:(h.types=g,this.finishNode(h,o))},l.tsParseIntersectionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)},l.tsParseUnionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)},l.tsIsStartOfFunctionType=function(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))},l.tsSkipParameterStart=function(){if(Sa(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){var o=this.state.errors,c=o.length;try{return this.parseObjectLike(8,!0),o.length===c}catch{return!1}}if(this.match(0)){this.next();var f=this.state.errors,h=f.length;try{return r.prototype.parseBindingList.call(this,3,93,Xl.ALLOW_EMPTY),f.length===h}catch{return!1}}return!1},l.tsIsUnambiguouslyStartOfFunctionType=function(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))},l.tsParseTypeOrTypePredicateAnnotation=function(o){var c=this;return this.tsInType(function(){var f=c.startNode();c.expect(o);var h=c.startNode(),m=!!c.tsTryParse(c.tsParseTypePredicateAsserts.bind(c));if(m&&c.match(78)){var g=c.tsParseThisTypeOrThisTypePredicate();return g.type==="TSThisType"?(h.parameterName=g,h.asserts=!0,h.typeAnnotation=null,g=c.finishNode(h,"TSTypePredicate")):(c.resetStartLocationFromNode(g,h),g.asserts=!0),f.typeAnnotation=g,c.finishNode(f,"TSTypeAnnotation")}var x=c.tsIsIdentifier()&&c.tsTryParse(c.tsParseTypePredicatePrefix.bind(c));if(!x)return m?(h.parameterName=c.parseIdentifier(),h.asserts=m,h.typeAnnotation=null,f.typeAnnotation=c.finishNode(h,"TSTypePredicate"),c.finishNode(f,"TSTypeAnnotation")):c.tsParseTypeAnnotation(!1,f);var R=c.tsParseTypeAnnotation(!1);return h.parameterName=x,h.typeAnnotation=R,h.asserts=m,f.typeAnnotation=c.finishNode(h,"TSTypePredicate"),c.finishNode(f,"TSTypeAnnotation")})},l.tsTryParseTypeOrTypePredicateAnnotation=function(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)},l.tsTryParseTypeAnnotation=function(){if(this.match(14))return this.tsParseTypeAnnotation()},l.tsTryParseType=function(){return this.tsEatThenParseType(14)},l.tsParseTypePredicatePrefix=function(){var o=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),o},l.tsParseTypePredicateAsserts=function(){if(this.state.type!==109)return!1;var o=this.state.containsEsc;return this.next(),!Sa(this.state.type)&&!this.match(78)?!1:(o&&this.raise(He.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)},l.tsParseTypeAnnotation=function(o,c){var f=this;return o===void 0&&(o=!0),c===void 0&&(c=this.startNode()),this.tsInType(function(){o&&f.expect(14),c.typeAnnotation=f.tsParseType()}),this.finishNode(c,"TSTypeAnnotation")},l.tsParseType=function(){var o=this;wU(this.state.inType);var c=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return c;var f=this.startNodeAtNode(c);return f.checkType=c,f.extendsType=this.tsInDisallowConditionalTypesContext(function(){return o.tsParseNonConditionalType()}),this.expect(17),f.trueType=this.tsInAllowConditionalTypesContext(function(){return o.tsParseType()}),this.expect(14),f.falseType=this.tsInAllowConditionalTypesContext(function(){return o.tsParseType()}),this.finishNode(f,"TSConditionalType")},l.isAbstractConstructorSignature=function(){return this.isContextual(124)&&this.lookahead().type===77},l.tsParseNonConditionalType=function(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()},l.tsParseTypeAssertion=function(){var o=this;this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(fr.ReservedTypeAssertion,this.state.startLoc);var c=this.startNode();return c.typeAnnotation=this.tsInType(function(){return o.next(),o.match(75)?o.tsParseTypeReference():o.tsParseType()}),this.expect(48),c.expression=this.parseMaybeUnary(),this.finishNode(c,"TSTypeAssertion")},l.tsParseHeritageClause=function(o){var c=this,f=this.state.startLoc,h=this.tsParseDelimitedList("HeritageClauseElement",function(){var m=c.startNode();return m.expression=c.tsParseEntityName(),c.match(47)&&(m.typeParameters=c.tsParseTypeArguments()),c.finishNode(m,"TSExpressionWithTypeArguments")});return h.length||this.raise(fr.EmptyHeritageClauseType,f,{token:o}),h},l.tsParseInterfaceDeclaration=function(o,c){if(c===void 0&&(c={}),this.hasFollowingLineBreak())return null;this.expectContextual(129),c.declare&&(o.declare=!0),Sa(this.state.type)?(o.id=this.parseIdentifier(),this.checkIdentifier(o.id,Pr.TYPE_TS_INTERFACE)):(o.id=null,this.raise(fr.MissingInterfaceName,this.state.startLoc)),o.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(o.extends=this.tsParseHeritageClause("extends"));var f=this.startNode();return f.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),o.body=this.finishNode(f,"TSInterfaceBody"),this.finishNode(o,"TSInterfaceDeclaration")},l.tsParseTypeAliasDeclaration=function(o){var c=this;return o.id=this.parseIdentifier(),this.checkIdentifier(o.id,Pr.TYPE_TS_TYPE),o.typeAnnotation=this.tsInType(function(){if(o.typeParameters=c.tsTryParseTypeParameters(c.tsParseInOutModifiers),c.expect(29),c.isContextual(114)&&c.lookahead().type!==16){var f=c.startNode();return c.next(),c.finishNode(f,"TSIntrinsicKeyword")}return c.tsParseType()}),this.semicolon(),this.finishNode(o,"TSTypeAliasDeclaration")},l.tsInNoContext=function(o){var c=this.state.context;this.state.context=[c[0]];try{return o()}finally{this.state.context=c}},l.tsInType=function(o){var c=this.state.inType;this.state.inType=!0;try{return o()}finally{this.state.inType=c}},l.tsInDisallowConditionalTypesContext=function(o){var c=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return o()}finally{this.state.inDisallowConditionalTypesContext=c}},l.tsInAllowConditionalTypesContext=function(o){var c=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return o()}finally{this.state.inDisallowConditionalTypesContext=c}},l.tsEatThenParseType=function(o){if(this.match(o))return this.tsNextThenParseType()},l.tsExpectThenParseType=function(o){var c=this;return this.tsInType(function(){return c.expect(o),c.tsParseType()})},l.tsNextThenParseType=function(){var o=this;return this.tsInType(function(){return o.next(),o.tsParseType()})},l.tsParseEnumMember=function(){var o=this.startNode();return o.id=this.match(133)?r.prototype.parseStringLiteral.call(this,this.state.value):this.parseIdentifier(!0),this.eat(29)&&(o.initializer=r.prototype.parseMaybeAssignAllowIn.call(this)),this.finishNode(o,"TSEnumMember")},l.tsParseEnumDeclaration=function(o,c){return c===void 0&&(c={}),c.const&&(o.const=!0),c.declare&&(o.declare=!0),this.expectContextual(126),o.id=this.parseIdentifier(),this.checkIdentifier(o.id,o.const?Pr.TYPE_TS_CONST_ENUM:Pr.TYPE_TS_ENUM),this.expect(5),o.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(o,"TSEnumDeclaration")},l.tsParseModuleBlock=function(){var o=this.startNode();return this.scope.enter(Ur.OTHER),this.expect(5),r.prototype.parseBlockOrModuleBlockBody.call(this,o.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(o,"TSModuleBlock")},l.tsParseModuleOrNamespaceDeclaration=function(o,c){if(c===void 0&&(c=!1),o.id=this.parseIdentifier(),c||this.checkIdentifier(o.id,Pr.TYPE_TS_NAMESPACE),this.eat(16)){var f=this.startNode();this.tsParseModuleOrNamespaceDeclaration(f,!0),o.body=f}else this.scope.enter(Ur.TS_MODULE),this.prodParam.enter(bn.PARAM),o.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(o,"TSModuleDeclaration")},l.tsParseAmbientExternalModuleDeclaration=function(o){return this.isContextual(112)?(o.global=!0,o.id=this.parseIdentifier()):this.match(133)?o.id=r.prototype.parseStringLiteral.call(this,this.state.value):this.unexpected(),this.match(5)?(this.scope.enter(Ur.TS_MODULE),this.prodParam.enter(bn.PARAM),o.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(o,"TSModuleDeclaration")},l.tsParseImportEqualsDeclaration=function(o,c,f){o.isExport=f||!1,o.id=c||this.parseIdentifier(),this.checkIdentifier(o.id,Pr.TYPE_TS_VALUE_IMPORT),this.expect(29);var h=this.tsParseModuleReference();return o.importKind==="type"&&h.type!=="TSExternalModuleReference"&&this.raise(fr.ImportAliasHasImportType,h),o.moduleReference=h,this.semicolon(),this.finishNode(o,"TSImportEqualsDeclaration")},l.tsIsExternalModuleReference=function(){return this.isContextual(119)&&this.lookaheadCharCode()===40},l.tsParseModuleReference=function(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)},l.tsParseExternalModuleReference=function(){var o=this.startNode();return this.expectContextual(119),this.expect(10),this.match(133)||this.unexpected(),o.expression=r.prototype.parseExprAtom.call(this),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(o,"TSExternalModuleReference")},l.tsLookAhead=function(o){var c=this.state.clone(),f=o();return this.state=c,f},l.tsTryParseAndCatch=function(o){var c=this.tryParse(function(f){return o()||f()});if(!(c.aborted||!c.node))return c.error&&(this.state=c.failState),c.node},l.tsTryParse=function(o){var c=this.state.clone(),f=o();if(f!==void 0&&f!==!1)return f;this.state=c},l.tsTryParseDeclare=function(o){var c=this;if(!this.isLineTerminator()){var f=this.state.type,h;return this.isContextual(100)&&(f=74,h="let"),this.tsInAmbientContext(function(){switch(f){case 68:return o.declare=!0,r.prototype.parseFunctionStatement.call(c,o,!1,!1);case 80:return o.declare=!0,c.parseClass(o,!0,!1);case 126:return c.tsParseEnumDeclaration(o,{declare:!0});case 112:return c.tsParseAmbientExternalModuleDeclaration(o);case 75:case 74:return!c.match(75)||!c.isLookaheadContextual("enum")?(o.declare=!0,c.parseVarStatement(o,h||c.state.value,!0)):(c.expect(75),c.tsParseEnumDeclaration(o,{const:!0,declare:!0}));case 129:{var m=c.tsParseInterfaceDeclaration(o,{declare:!0});if(m)return m}default:if(Sa(f))return c.tsParseDeclaration(o,c.state.value,!0,null)}})}},l.tsTryParseExportDeclaration=function(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)},l.tsParseExpressionStatement=function(o,c,f){switch(c.name){case"declare":{var h=this.tsTryParseDeclare(o);return h&&(h.declare=!0),h}case"global":if(this.match(5)){this.scope.enter(Ur.TS_MODULE),this.prodParam.enter(bn.PARAM);var m=o;return m.global=!0,m.id=c,m.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(m,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(o,c.name,!1,f)}},l.tsParseDeclaration=function(o,c,f,h){switch(c){case"abstract":if(this.tsCheckLineTerminator(f)&&(this.match(80)||Sa(this.state.type)))return this.tsParseAbstractDeclaration(o,h);break;case"module":if(this.tsCheckLineTerminator(f)){if(this.match(133))return this.tsParseAmbientExternalModuleDeclaration(o);if(Sa(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(o)}break;case"namespace":if(this.tsCheckLineTerminator(f)&&Sa(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(o);break;case"type":if(this.tsCheckLineTerminator(f)&&Sa(this.state.type))return this.tsParseTypeAliasDeclaration(o);break}},l.tsCheckLineTerminator=function(o){return o?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()},l.tsTryParseGenericAsyncArrowFunction=function(o){var c=this;if(this.match(47)){var f=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;var h=this.tsTryParseAndCatch(function(){var m=c.startNodeAt(o);return m.typeParameters=c.tsParseTypeParameters(c.tsParseConstModifier),r.prototype.parseFunctionParams.call(c,m),m.returnType=c.tsTryParseTypeOrTypePredicateAnnotation(),c.expect(19),m});if(this.state.maybeInArrowParameters=f,!!h)return r.prototype.parseArrowExpression.call(this,h,null,!0)}},l.tsParseTypeArgumentsInExpression=function(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()},l.tsParseTypeArguments=function(){var o=this,c=this.startNode();return c.params=this.tsInType(function(){return o.tsInNoContext(function(){return o.expect(47),o.tsParseDelimitedList("TypeParametersOrArguments",o.tsParseType.bind(o))})}),c.params.length===0?this.raise(fr.EmptyTypeArguments,c):!this.state.inType&&this.curContext()===ka.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(c,"TSTypeParameterInstantiation")},l.tsIsDeclarationStart=function(){return X9e(this.state.type)},l.isExportDefaultSpecifier=function(){return this.tsIsDeclarationStart()?!1:r.prototype.isExportDefaultSpecifier.call(this)},l.parseAssignableListItem=function(o,c){var f=this.state.startLoc,h={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},h);var m=h.accessibility,g=h.override,x=h.readonly;!(o&Xl.IS_CONSTRUCTOR_PARAMS)&&(m||x||g)&&this.raise(fr.UnexpectedParameterModifier,f);var R=this.parseMaybeDefault();this.parseAssignableListItemTypes(R,o);var w=this.parseMaybeDefault(R.loc.start,R);if(m||x||g){var T=this.startNodeAt(f);return c.length&&(T.decorators=c),m&&(T.accessibility=m),x&&(T.readonly=x),g&&(T.override=g),w.type!=="Identifier"&&w.type!=="AssignmentPattern"&&this.raise(fr.UnsupportedParameterPropertyKind,T),T.parameter=w,this.finishNode(T,"TSParameterProperty")}return c.length&&(R.decorators=c),w},l.isSimpleParameter=function(o){return o.type==="TSParameterProperty"&&r.prototype.isSimpleParameter.call(this,o.parameter)||r.prototype.isSimpleParameter.call(this,o)},l.tsDisallowOptionalPattern=function(o){for(var c=0,f=o.params;c<f.length;c++){var h=f[c];h.type!=="Identifier"&&h.optional&&!this.state.isAmbientContext&&this.raise(fr.PatternIsOptional,h)}},l.setArrowFunctionParameters=function(o,c,f){r.prototype.setArrowFunctionParameters.call(this,o,c,f),this.tsDisallowOptionalPattern(o)},l.parseFunctionBodyAndFinish=function(o,c,f){f===void 0&&(f=!1),this.match(14)&&(o.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));var h=c==="FunctionDeclaration"?"TSDeclareFunction":c==="ClassMethod"||c==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return h&&!this.match(5)&&this.isLineTerminator()?this.finishNode(o,h):h==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(fr.DeclareFunctionHasImplementation,o),o.declare)?r.prototype.parseFunctionBodyAndFinish.call(this,o,h,f):(this.tsDisallowOptionalPattern(o),r.prototype.parseFunctionBodyAndFinish.call(this,o,c,f))},l.registerFunctionStatementId=function(o){!o.body&&o.id?this.checkIdentifier(o.id,Pr.TYPE_TS_AMBIENT):r.prototype.registerFunctionStatementId.call(this,o)},l.tsCheckForInvalidTypeCasts=function(o){var c=this;o.forEach(function(f){(f==null?void 0:f.type)==="TSTypeCastExpression"&&c.raise(fr.UnexpectedTypeAnnotation,f.typeAnnotation)})},l.toReferencedList=function(o,c){return this.tsCheckForInvalidTypeCasts(o),o},l.parseArrayLike=function(o,c,f,h){var m=r.prototype.parseArrayLike.call(this,o,c,f,h);return m.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(m.elements),m},l.parseSubscript=function(o,c,f,h){var m=this;if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();var g=this.startNodeAt(c);return g.expression=o,this.finishNode(g,"TSNonNullExpression")}var x=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(f)return h.stop=!0,o;h.optionalChainMember=x=!0,this.next()}if(this.match(47)||this.match(51)){var R,w=this.tsTryParseAndCatch(function(){if(!f&&m.atPossibleAsyncArrow(o)){var T=m.tsTryParseGenericAsyncArrowFunction(c);if(T)return T}var I=m.tsParseTypeArgumentsInExpression();if(I){if(x&&!m.match(10)){R=m.state.curPosition();return}if(c1(m.state.type)){var P=r.prototype.parseTaggedTemplateExpression.call(m,o,c,h);return P.typeParameters=I,P}if(!f&&m.eat(10)){var O=m.startNodeAt(c);return O.callee=o,O.arguments=m.parseCallExpressionArguments(11,!1),m.tsCheckForInvalidTypeCasts(O.arguments),O.typeParameters=I,h.optionalChainMember&&(O.optional=x),m.finishCallExpression(O,h.optionalChainMember)}var j=m.state.type;if(!(j===48||j===52||j!==10&&pE(j)&&!m.hasPrecedingLineBreak())){var D=m.startNodeAt(c);return D.expression=o,D.typeParameters=I,m.finishNode(D,"TSInstantiationExpression")}}});if(R&&this.unexpected(R,10),w)return w.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(fr.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),w}return r.prototype.parseSubscript.call(this,o,c,f,h)},l.parseNewCallee=function(o){var c;r.prototype.parseNewCallee.call(this,o);var f=o.callee;f.type==="TSInstantiationExpression"&&!((c=f.extra)!=null&&c.parenthesized)&&(o.typeParameters=f.typeParameters,o.callee=f.expression)},l.parseExprOp=function(o,c,f){var h=this,m;if(u1(58)>f&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(m=this.isContextual(120)))){var g=this.startNodeAt(c);return g.expression=o,g.typeAnnotation=this.tsInType(function(){return h.next(),h.match(75)?(m&&h.raise(He.UnexpectedKeyword,h.state.startLoc,{keyword:"const"}),h.tsParseTypeReference()):h.tsParseType()}),this.finishNode(g,m?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(g,c,f)}return r.prototype.parseExprOp.call(this,o,c,f)},l.checkReservedWord=function(o,c,f,h){this.state.isAmbientContext||r.prototype.checkReservedWord.call(this,o,c,f,h)},l.checkImportReflection=function(o){r.prototype.checkImportReflection.call(this,o),o.module&&o.importKind!=="value"&&this.raise(fr.ImportReflectionHasImportType,o.specifiers[0].loc.start)},l.checkDuplicateExports=function(){},l.isPotentialImportPhase=function(o){if(r.prototype.isPotentialImportPhase.call(this,o))return!0;if(this.isContextual(130)){var c=this.lookaheadCharCode();return o?c===123||c===42:c!==61}return!o&&this.isContextual(87)},l.applyImportPhase=function(o,c,f,h){r.prototype.applyImportPhase.call(this,o,c,f,h),c?o.exportKind=f==="type"?"type":"value":o.importKind=f==="type"||f==="typeof"?f:"value"},l.parseImport=function(o){if(this.match(133))return o.importKind="value",r.prototype.parseImport.call(this,o);var c;if(Sa(this.state.type)&&this.lookaheadCharCode()===61)return o.importKind="value",this.tsParseImportEqualsDeclaration(o);if(this.isContextual(130)){var f=this.parseMaybeImportPhase(o,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(o,f);c=r.prototype.parseImportSpecifiersAndAfter.call(this,o,f)}else c=r.prototype.parseImport.call(this,o);return c.importKind==="type"&&c.specifiers.length>1&&c.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(fr.TypeImportCannotSpecifyDefaultAndNamed,c),c},l.parseExport=function(o,c){if(this.match(83)){this.next();var f=o,h=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?h=this.parseMaybeImportPhase(f,!1):f.importKind="value",this.tsParseImportEqualsDeclaration(f,h,!0)}else if(this.eat(29)){var m=o;return m.expression=r.prototype.parseExpression.call(this),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(m,"TSExportAssignment")}else if(this.eatContextual(93)){var g=o;return this.expectContextual(128),g.id=this.parseIdentifier(),this.semicolon(),this.finishNode(g,"TSNamespaceExportDeclaration")}else return r.prototype.parseExport.call(this,o,c)},l.isAbstractClass=function(){return this.isContextual(124)&&this.lookahead().type===80},l.parseExportDefaultExpression=function(){if(this.isAbstractClass()){var o=this.startNode();return this.next(),o.abstract=!0,this.parseClass(o,!0,!0)}if(this.match(129)){var c=this.tsParseInterfaceDeclaration(this.startNode());if(c)return c}return r.prototype.parseExportDefaultExpression.call(this)},l.parseVarStatement=function(o,c,f){f===void 0&&(f=!1);var h=this.state.isAmbientContext,m=r.prototype.parseVarStatement.call(this,o,c,f||h);if(!h)return m;for(var g=0,x=m.declarations;g<x.length;g++){var R=x[g],w=R.id,T=R.init;T&&(c!=="const"||w.typeAnnotation?this.raise(fr.InitializerNotAllowedInAmbientContext,T):M5e(T,this.hasPlugin("estree"))||this.raise(fr.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,T))}return m},l.parseStatementContent=function(o,c){if(this.match(75)&&this.isLookaheadContextual("enum")){var f=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(f,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){var h=this.tsParseInterfaceDeclaration(this.startNode());if(h)return h}return r.prototype.parseStatementContent.call(this,o,c)},l.parseAccessModifier=function(){return this.tsParseModifier(["public","protected","private"])},l.tsHasSomeModifiers=function(o,c){return c.some(function(f){return PU(f)?o.accessibility===f:!!o[f]})},l.tsIsStartOfStaticBlocks=function(){return this.isContextual(106)&&this.lookaheadCharCode()===123},l.parseClassMember=function(o,c,f){var h=this,m=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:m,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:fr.InvalidModifierOnTypeParameterPositions},c);var g=function(){h.tsIsStartOfStaticBlocks()?(h.next(),h.next(),h.tsHasSomeModifiers(c,m)&&h.raise(fr.StaticBlockCannotHaveModifier,h.state.curPosition()),r.prototype.parseClassStaticBlock.call(h,o,c)):h.parseClassMemberWithIsStatic(o,c,f,!!c.static)};c.declare?this.tsInAmbientContext(g):g()},l.parseClassMemberWithIsStatic=function(o,c,f,h){var m=this.tsTryParseIndexSignature(c);if(m){o.body.push(m),c.abstract&&this.raise(fr.IndexSignatureHasAbstract,c),c.accessibility&&this.raise(fr.IndexSignatureHasAccessibility,c,{modifier:c.accessibility}),c.declare&&this.raise(fr.IndexSignatureHasDeclare,c),c.override&&this.raise(fr.IndexSignatureHasOverride,c);return}!this.state.inAbstractClass&&c.abstract&&this.raise(fr.NonAbstractClassHasAbstractMethod,c),c.override&&(f.hadSuperClass||this.raise(fr.OverrideNotInSubClass,c)),r.prototype.parseClassMemberWithIsStatic.call(this,o,c,f,h)},l.parsePostMemberNameModifiers=function(o){var c=this.eat(17);c&&(o.optional=!0),o.readonly&&this.match(10)&&this.raise(fr.ClassMethodHasReadonly,o),o.declare&&this.match(10)&&this.raise(fr.ClassMethodHasDeclare,o)},l.parseExpressionStatement=function(o,c,f){var h=c.type==="Identifier"?this.tsParseExpressionStatement(o,c,f):void 0;return h||r.prototype.parseExpressionStatement.call(this,o,c,f)},l.shouldParseExportDeclaration=function(){return this.tsIsDeclarationStart()?!0:r.prototype.shouldParseExportDeclaration.call(this)},l.parseConditional=function(o,c,f){var h=this;if(!this.state.maybeInArrowParameters||!this.match(17))return r.prototype.parseConditional.call(this,o,c,f);var m=this.tryParse(function(){return r.prototype.parseConditional.call(h,o,c)});return m.node?(m.error&&(this.state=m.failState),m.node):(m.error&&r.prototype.setOptionalParametersError.call(this,f,m.error),o)},l.parseParenItem=function(o,c){var f=r.prototype.parseParenItem.call(this,o,c);if(this.eat(17)&&(f.optional=!0,this.resetEndLocation(o)),this.match(14)){var h=this.startNodeAt(c);return h.expression=o,h.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(h,"TSTypeCastExpression")}return o},l.parseExportDeclaration=function(o){var c=this;if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(function(){return c.parseExportDeclaration(o)});var f=this.state.startLoc,h=this.eatContextual(125);if(h&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(fr.ExpectedAmbientAfterExportDeclare,this.state.startLoc);var m=Sa(this.state.type),g=m&&this.tsTryParseExportDeclaration()||r.prototype.parseExportDeclaration.call(this,o);return g?((g.type==="TSInterfaceDeclaration"||g.type==="TSTypeAliasDeclaration"||h)&&(o.exportKind="type"),h&&(this.resetStartLocation(g,f),g.declare=!0),g):null},l.parseClassId=function(o,c,f,h){if(!((!c||f)&&this.isContextual(113))){r.prototype.parseClassId.call(this,o,c,f,o.declare?Pr.TYPE_TS_AMBIENT:Pr.TYPE_CLASS);var m=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);m&&(o.typeParameters=m)}},l.parseClassPropertyAnnotation=function(o){o.optional||(this.eat(35)?o.definite=!0:this.eat(17)&&(o.optional=!0));var c=this.tsTryParseTypeAnnotation();c&&(o.typeAnnotation=c)},l.parseClassProperty=function(o){if(this.parseClassPropertyAnnotation(o),this.state.isAmbientContext&&!(o.readonly&&!o.typeAnnotation)&&this.match(29)&&this.raise(fr.DeclareClassFieldHasInitializer,this.state.startLoc),o.abstract&&this.match(29)){var c=o.key;this.raise(fr.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:c.type==="Identifier"&&!o.computed?c.name:"["+this.input.slice(c.start,c.end)+"]"})}return r.prototype.parseClassProperty.call(this,o)},l.parseClassPrivateProperty=function(o){return o.abstract&&this.raise(fr.PrivateElementHasAbstract,o),o.accessibility&&this.raise(fr.PrivateElementHasAccessibility,o,{modifier:o.accessibility}),this.parseClassPropertyAnnotation(o),r.prototype.parseClassPrivateProperty.call(this,o)},l.parseClassAccessorProperty=function(o){return this.parseClassPropertyAnnotation(o),o.optional&&this.raise(fr.AccessorCannotBeOptional,o),r.prototype.parseClassAccessorProperty.call(this,o)},l.pushClassMethod=function(o,c,f,h,m,g){var x=this.tsTryParseTypeParameters(this.tsParseConstModifier);x&&m&&this.raise(fr.ConstructorHasTypeParameters,x);var R=c.declare,w=R===void 0?!1:R,T=c.kind;w&&(T==="get"||T==="set")&&this.raise(fr.DeclareAccessor,c,{kind:T}),x&&(c.typeParameters=x),r.prototype.pushClassMethod.call(this,o,c,f,h,m,g)},l.pushClassPrivateMethod=function(o,c,f,h){var m=this.tsTryParseTypeParameters(this.tsParseConstModifier);m&&(c.typeParameters=m),r.prototype.pushClassPrivateMethod.call(this,o,c,f,h)},l.declareClassPrivateMethodInScope=function(o,c){o.type!=="TSDeclareMethod"&&(o.type==="MethodDefinition"&&!hasOwnProperty.call(o.value,"body")||r.prototype.declareClassPrivateMethodInScope.call(this,o,c))},l.parseClassSuper=function(o){r.prototype.parseClassSuper.call(this,o),o.superClass&&(this.match(47)||this.match(51))&&(o.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(o.implements=this.tsParseHeritageClause("implements"))},l.parseObjPropValue=function(o,c,f,h,m,g,x){var R=this.tsTryParseTypeParameters(this.tsParseConstModifier);return R&&(o.typeParameters=R),r.prototype.parseObjPropValue.call(this,o,c,f,h,m,g,x)},l.parseFunctionParams=function(o,c){var f=this.tsTryParseTypeParameters(this.tsParseConstModifier);f&&(o.typeParameters=f),r.prototype.parseFunctionParams.call(this,o,c)},l.parseVarId=function(o,c){r.prototype.parseVarId.call(this,o,c),o.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(o.definite=!0);var f=this.tsTryParseTypeAnnotation();f&&(o.id.typeAnnotation=f,this.resetEndLocation(o.id))},l.parseAsyncArrowFromCallExpression=function(o,c){return this.match(14)&&(o.returnType=this.tsParseTypeAnnotation()),r.prototype.parseAsyncArrowFromCallExpression.call(this,o,c)},l.parseMaybeAssign=function(o,c){var f=this,h,m,g,x,R,w,T,I;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(w=this.state.clone(),T=this.tryParse(function(){return r.prototype.parseMaybeAssign.call(f,o,c)},w),!T.error)return T.node;var P=this.state.context,O=P[P.length-1];(O===ka.j_oTag||O===ka.j_expr)&&P.pop()}if(!((h=T)!=null&&h.error)&&!this.match(47))return r.prototype.parseMaybeAssign.call(this,o,c);(!w||w===this.state)&&(w=this.state.clone());var j,D=this.tryParse(function(k){var B,F;j=f.tsParseTypeParameters(f.tsParseConstModifier);var L=r.prototype.parseMaybeAssign.call(f,o,c);return(L.type!=="ArrowFunctionExpression"||(B=L.extra)!=null&&B.parenthesized)&&k(),((F=j)==null?void 0:F.params.length)!==0&&f.resetStartLocationFromNode(L,j),L.typeParameters=j,L},w);if(!D.error&&!D.aborted)return j&&this.reportReservedArrowTypeParam(j),D.node;if(!T&&(wU(!this.hasPlugin("jsx")),I=this.tryParse(function(){return r.prototype.parseMaybeAssign.call(f,o,c)},w),!I.error))return I.node;if((m=T)!=null&&m.node)return this.state=T.failState,T.node;if(D.node)return this.state=D.failState,j&&this.reportReservedArrowTypeParam(j),D.node;if((g=I)!=null&&g.node)return this.state=I.failState,I.node;throw((x=T)==null?void 0:x.error)||D.error||((R=I)==null?void 0:R.error)},l.reportReservedArrowTypeParam=function(o){var c;o.params.length===1&&!o.params[0].constraint&&!((c=o.extra)!=null&&c.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(fr.ReservedArrowTypeParam,o)},l.parseMaybeUnary=function(o,c){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():r.prototype.parseMaybeUnary.call(this,o,c)},l.parseArrow=function(o){var c=this;if(this.match(14)){var f=this.tryParse(function(h){var m=c.tsParseTypeOrTypePredicateAnnotation(14);return(c.canInsertSemicolon()||!c.match(19))&&h(),m});if(f.aborted)return;f.thrown||(f.error&&(this.state=f.failState),o.returnType=f.node)}return r.prototype.parseArrow.call(this,o)},l.parseAssignableListItemTypes=function(o,c){if(!(c&Xl.IS_FUNCTION_PARAMS))return o;this.eat(17)&&(o.optional=!0);var f=this.tsTryParseTypeAnnotation();return f&&(o.typeAnnotation=f),this.resetEndLocation(o),o},l.isAssignable=function(o,c){switch(o.type){case"TSTypeCastExpression":return this.isAssignable(o.expression,c);case"TSParameterProperty":return!0;default:return r.prototype.isAssignable.call(this,o,c)}},l.toAssignable=function(o,c){switch(c===void 0&&(c=!1),o.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(o,c);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":c?this.expressionScope.recordArrowParameterBindingError(fr.UnexpectedTypeCastInParameter,o):this.raise(fr.UnexpectedTypeCastInParameter,o),this.toAssignable(o.expression,c);break;case"AssignmentExpression":!c&&o.left.type==="TSTypeCastExpression"&&(o.left=this.typeCastToParameter(o.left));default:r.prototype.toAssignable.call(this,o,c)}},l.toAssignableParenthesizedExpression=function(o,c){switch(o.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(o.expression,c);break;default:r.prototype.toAssignable.call(this,o,c)}},l.checkToRestConversion=function(o,c){switch(o.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(o.expression,!1);break;default:r.prototype.checkToRestConversion.call(this,o,c)}},l.isValidLVal=function(o,c,f){switch(o){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(f!==Pr.TYPE_NONE||!c)&&["expression",!0];default:return r.prototype.isValidLVal.call(this,o,c,f)}},l.parseBindingAtom=function(){return this.state.type===78?this.parseIdentifier(!0):r.prototype.parseBindingAtom.call(this)},l.parseMaybeDecoratorArguments=function(o){if(this.match(47)||this.match(51)){var c=this.tsParseTypeArgumentsInExpression();if(this.match(10)){var f=r.prototype.parseMaybeDecoratorArguments.call(this,o);return f.typeParameters=c,f}this.unexpected(null,10)}return r.prototype.parseMaybeDecoratorArguments.call(this,o)},l.checkCommaAfterRest=function(o){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===o?(this.next(),!1):r.prototype.checkCommaAfterRest.call(this,o)},l.isClassMethod=function(){return this.match(47)||r.prototype.isClassMethod.call(this)},l.isClassProperty=function(){return this.match(35)||this.match(14)||r.prototype.isClassProperty.call(this)},l.parseMaybeDefault=function(o,c){var f=r.prototype.parseMaybeDefault.call(this,o,c);return f.type==="AssignmentPattern"&&f.typeAnnotation&&f.right.start<f.typeAnnotation.start&&this.raise(fr.TypeAnnotationAfterAssign,f.typeAnnotation),f},l.getTokenFromCode=function(o){if(this.state.inType){if(o===62){this.finishOp(48,1);return}if(o===60){this.finishOp(47,1);return}}r.prototype.getTokenFromCode.call(this,o)},l.reScan_lt_gt=function(){var o=this.state.type;o===47?(this.state.pos-=1,this.readToken_lt()):o===48&&(this.state.pos-=1,this.readToken_gt())},l.reScan_lt=function(){var o=this.state.type;return o===51?(this.state.pos-=2,this.finishOp(47,1),47):o},l.toAssignableList=function(o,c,f){for(var h=0;h<o.length;h++){var m=o[h];(m==null?void 0:m.type)==="TSTypeCastExpression"&&(o[h]=this.typeCastToParameter(m))}r.prototype.toAssignableList.call(this,o,c,f)},l.typeCastToParameter=function(o){return o.expression.typeAnnotation=o.typeAnnotation,this.resetEndLocation(o.expression,o.typeAnnotation.loc.end),o.expression},l.shouldParseArrow=function(o){var c=this;return this.match(14)?o.every(function(f){return c.isAssignable(f,!0)}):r.prototype.shouldParseArrow.call(this,o)},l.shouldParseAsyncArrow=function(){return this.match(14)||r.prototype.shouldParseAsyncArrow.call(this)},l.canHaveLeadingDecorator=function(){return r.prototype.canHaveLeadingDecorator.call(this)||this.isAbstractClass()},l.jsxParseOpeningElementAfterName=function(o){var c=this;if(this.match(47)||this.match(51)){var f=this.tsTryParseAndCatch(function(){return c.tsParseTypeArgumentsInExpression()});f&&(o.typeParameters=f)}return r.prototype.jsxParseOpeningElementAfterName.call(this,o)},l.getGetterSetterExpectedParamCount=function(o){var c=r.prototype.getGetterSetterExpectedParamCount.call(this,o),f=this.getObjectOrClassMethodParams(o),h=f[0],m=h&&this.isThisParam(h);return m?c+1:c},l.parseCatchClauseParam=function(){var o=r.prototype.parseCatchClauseParam.call(this),c=this.tsTryParseTypeAnnotation();return c&&(o.typeAnnotation=c,this.resetEndLocation(o)),o},l.tsInAmbientContext=function(o){var c=this.state,f=c.isAmbientContext,h=c.strict;this.state.isAmbientContext=!0,this.state.strict=!1;try{return o()}finally{this.state.isAmbientContext=f,this.state.strict=h}},l.parseClass=function(o,c,f){var h=this.state.inAbstractClass;this.state.inAbstractClass=!!o.abstract;try{return r.prototype.parseClass.call(this,o,c,f)}finally{this.state.inAbstractClass=h}},l.tsParseAbstractDeclaration=function(o,c){if(this.match(80))return o.abstract=!0,this.maybeTakeDecorators(c,this.parseClass(o,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return o.abstract=!0,this.raise(fr.NonClassMethodPropertyHasAbstractModifer,o),this.tsParseInterfaceDeclaration(o)}else this.unexpected(null,80)},l.parseMethod=function(o,c,f,h,m,g,x){var R=r.prototype.parseMethod.call(this,o,c,f,h,m,g,x);if(R.abstract){var w=this.hasPlugin("estree")?!!R.value.body:!!R.body;if(w){var T=R.key;this.raise(fr.AbstractMethodHasImplementation,R,{methodName:T.type==="Identifier"&&!R.computed?T.name:"["+this.input.slice(T.start,T.end)+"]"})}}return R},l.tsParseTypeParameterName=function(){var o=this.parseIdentifier();return o.name},l.shouldParseAsAmbientContext=function(){return!!this.getPluginOption("typescript","dts")},l.parse=function(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),r.prototype.parse.call(this)},l.getExpression=function(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),r.prototype.getExpression.call(this)},l.parseExportSpecifier=function(o,c,f,h){return!c&&h?(this.parseTypeOnlyImportExportSpecifier(o,!1,f),this.finishNode(o,"ExportSpecifier")):(o.exportKind="value",r.prototype.parseExportSpecifier.call(this,o,c,f,h))},l.parseImportSpecifier=function(o,c,f,h,m){return!c&&h?(this.parseTypeOnlyImportExportSpecifier(o,!0,f),this.finishNode(o,"ImportSpecifier")):(o.importKind="value",r.prototype.parseImportSpecifier.call(this,o,c,f,h,f?Pr.TYPE_TS_TYPE_IMPORT:Pr.TYPE_TS_VALUE_IMPORT))},l.parseTypeOnlyImportExportSpecifier=function(o,c,f){var h=c?"imported":"local",m=c?"local":"exported",g=o[h],x,R=!1,w=!0,T=g.loc.start;if(this.isContextual(93)){var I=this.parseIdentifier();if(this.isContextual(93)){var P=this.parseIdentifier();Bi(this.state.type)?(R=!0,g=I,x=c?this.parseIdentifier():this.parseModuleExportName(),w=!1):(x=P,w=!1)}else Bi(this.state.type)?(w=!1,x=c?this.parseIdentifier():this.parseModuleExportName()):(R=!0,g=I)}else Bi(this.state.type)&&(R=!0,c?(g=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(g.name,g.loc.start,!0,!0)):g=this.parseModuleExportName());R&&f&&this.raise(c?fr.TypeModifierIsUsedInTypeImports:fr.TypeModifierIsUsedInTypeExports,T),o[h]=g,o[m]=x;var O=c?"importKind":"exportKind";o[O]=R?"type":"value",w&&this.eatContextual(93)&&(o[m]=c?this.parseIdentifier():this.parseModuleExportName()),o[m]||(o[m]=Bo(o[h])),c&&this.checkIdentifier(o[m],R?Pr.TYPE_TS_TYPE_IMPORT:Pr.TYPE_TS_VALUE_IMPORT)},_(s)}(e)};function L5e(e){if(e.type!=="MemberExpression")return!1;var r=e.computed,s=e.property;return r&&s.type!=="StringLiteral"&&(s.type!=="TemplateLiteral"||s.expressions.length>0)?!1:IU(e.object)}function M5e(e,r){var s,l=e.type;if((s=e.extra)!=null&&s.parenthesized)return!1;if(r){if(l==="Literal"){var u=e.value;if(typeof u=="string"||typeof u=="boolean")return!0}}else if(l==="StringLiteral"||l==="BooleanLiteral")return!0;return!!(AU(e,r)||B5e(e,r)||l==="TemplateLiteral"&&e.expressions.length===0||L5e(e))}function AU(e,r){return r?e.type==="Literal"&&(typeof e.value=="number"||"bigint"in e):e.type==="NumericLiteral"||e.type==="BigIntLiteral"}function B5e(e,r){if(e.type==="UnaryExpression"){var s=e.operator,l=e.argument;if(s==="-"&&AU(l,r))return!0}return!1}function IU(e){return e.type==="Identifier"?!0:e.type!=="MemberExpression"||e.computed?!1:IU(e.object)}var CU,jU=Do(CU||(CU=se(["placeholders"])))({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."}),F5e=function(e){return function(r){function s(){return r.apply(this,arguments)||this}M(s,r);var l=s.prototype;return l.parsePlaceholder=function(o){if(this.match(144)){var c=this.startNode();return this.next(),this.assertNoSpace(),c.name=r.prototype.parseIdentifier.call(this,!0),this.assertNoSpace(),this.expect(144),this.finishPlaceholder(c,o)}},l.finishPlaceholder=function(o,c){var f=o;return(!f.expectedNode||!f.type)&&(f=this.finishNode(f,"Placeholder")),f.expectedNode=c,f},l.getTokenFromCode=function(o){o===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(144,2):r.prototype.getTokenFromCode.call(this,o)},l.parseExprAtom=function(o){return this.parsePlaceholder("Expression")||r.prototype.parseExprAtom.call(this,o)},l.parseIdentifier=function(o){return this.parsePlaceholder("Identifier")||r.prototype.parseIdentifier.call(this,o)},l.checkReservedWord=function(o,c,f,h){o!==void 0&&r.prototype.checkReservedWord.call(this,o,c,f,h)},l.parseBindingAtom=function(){return this.parsePlaceholder("Pattern")||r.prototype.parseBindingAtom.call(this)},l.isValidLVal=function(o,c,f){return o==="Placeholder"||r.prototype.isValidLVal.call(this,o,c,f)},l.toAssignable=function(o,c){o&&o.type==="Placeholder"&&o.expectedNode==="Expression"?o.expectedNode="Pattern":r.prototype.toAssignable.call(this,o,c)},l.chStartsBindingIdentifier=function(o,c){if(r.prototype.chStartsBindingIdentifier.call(this,o,c))return!0;var f=this.lookahead();return f.type===144},l.verifyBreakContinue=function(o,c){o.label&&o.label.type==="Placeholder"||r.prototype.verifyBreakContinue.call(this,o,c)},l.parseExpressionStatement=function(o,c){var f;if(c.type!=="Placeholder"||(f=c.extra)!=null&&f.parenthesized)return r.prototype.parseExpressionStatement.call(this,o,c);if(this.match(14)){var h=o;return h.label=this.finishPlaceholder(c,"Identifier"),this.next(),h.body=r.prototype.parseStatementOrSloppyAnnexBFunctionDeclaration.call(this),this.finishNode(h,"LabeledStatement")}this.semicolon();var m=o;return m.name=c.name,this.finishPlaceholder(m,"Statement")},l.parseBlock=function(o,c,f){return this.parsePlaceholder("BlockStatement")||r.prototype.parseBlock.call(this,o,c,f)},l.parseFunctionId=function(o){return this.parsePlaceholder("Identifier")||r.prototype.parseFunctionId.call(this,o)},l.parseClass=function(o,c,f){var h=c?"ClassDeclaration":"ClassExpression";this.next();var m=this.state.strict,g=this.parsePlaceholder("Identifier");if(g)if(this.match(81)||this.match(144)||this.match(5))o.id=g;else{if(f||!c)return o.id=null,o.body=this.finishPlaceholder(g,"ClassBody"),this.finishNode(o,h);throw this.raise(jU.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(o,c,f);return r.prototype.parseClassSuper.call(this,o),o.body=this.parsePlaceholder("ClassBody")||r.prototype.parseClassBody.call(this,!!o.superClass,m),this.finishNode(o,h)},l.parseExport=function(o,c){var f=this.parsePlaceholder("Identifier");if(!f)return r.prototype.parseExport.call(this,o,c);var h=o;if(!this.isContextual(98)&&!this.match(12))return h.specifiers=[],h.source=null,h.declaration=this.finishPlaceholder(f,"Declaration"),this.finishNode(h,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");var m=this.startNode();return m.exported=f,h.specifiers=[this.finishNode(m,"ExportDefaultSpecifier")],r.prototype.parseExport.call(this,h,c)},l.isExportDefaultSpecifier=function(){if(this.match(65)){var o=this.nextTokenStart();if(this.isUnparsedContextual(o,"from")&&this.input.startsWith(Kl(144),this.nextTokenStartSince(o+4)))return!0}return r.prototype.isExportDefaultSpecifier.call(this)},l.maybeParseExportDefaultSpecifier=function(o,c){var f;return(f=o.specifiers)!=null&&f.length?!0:r.prototype.maybeParseExportDefaultSpecifier.call(this,o,c)},l.checkExport=function(o){var c=o.specifiers;c!=null&&c.length&&(o.specifiers=c.filter(function(f){return f.exported.type==="Placeholder"})),r.prototype.checkExport.call(this,o),o.specifiers=c},l.parseImport=function(o){var c=this.parsePlaceholder("Identifier");if(!c)return r.prototype.parseImport.call(this,o);if(o.specifiers=[],!this.isContextual(98)&&!this.match(12))return o.source=this.finishPlaceholder(c,"StringLiteral"),this.semicolon(),this.finishNode(o,"ImportDeclaration");var f=this.startNodeAtNode(c);if(f.local=c,o.specifiers.push(this.finishNode(f,"ImportDefaultSpecifier")),this.eat(12)){var h=this.maybeParseStarImportSpecifier(o);h||this.parseNamedImportSpecifiers(o)}return this.expectContextual(98),o.source=this.parseImportSource(),this.semicolon(),this.finishNode(o,"ImportDeclaration")},l.parseImportSource=function(){return this.parsePlaceholder("StringLiteral")||r.prototype.parseImportSource.call(this)},l.assertNoSpace=function(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(jU.UnexpectedSpace,this.state.lastTokEndLoc)},_(s)}(e)},$5e=function(e){return function(r){function s(){return r.apply(this,arguments)||this}M(s,r);var l=s.prototype;return l.parseV8Intrinsic=function(){if(this.match(54)){var o=this.state.startLoc,c=this.startNode();if(this.next(),Sa(this.state.type)){var f=this.parseIdentifierName(),h=this.createIdentifier(c,f);if(h.type="V8IntrinsicIdentifier",this.match(10))return h}this.unexpected(o)}},l.parseExprAtom=function(o){return this.parseV8Intrinsic()||r.prototype.parseExprAtom.call(this,o)},_(s)}(e)},OU=["minimal","fsharp","hack","smart"],_U=["^^","@@","^","%","#"];function q5e(e){if(e.has("decorators")){if(e.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");var r=e.get("decorators").decoratorsBeforeExport;if(r!=null&&typeof r!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");var s=e.get("decorators").allowCallParenthesized;if(s!=null&&typeof s!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(e.has("flow")&&e.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(e.has("placeholders")&&e.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(e.has("pipelineOperator")){var l,u=e.get("pipelineOperator").proposal;if(!OU.includes(u)){var o=OU.map(function(w){return'"'+w+'"'}).join(", ");throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '+o+".")}var c=((l=e.get("recordAndTuple"))==null?void 0:l.syntaxType)==="hash";if(u==="hack"){if(e.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(e.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");var f=e.get("pipelineOperator").topicToken;if(!_U.includes(f)){var h=_U.map(function(w){return'"'+w+'"'}).join(", ");throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '+h+".")}if(f==="#"&&c)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `'+JSON.stringify(["recordAndTuple",e.get("recordAndTuple")])+"`.")}else if(u==="smart"&&c)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `'+JSON.stringify(["recordAndTuple",e.get("recordAndTuple")])+"`.")}if(e.has("moduleAttributes")){if(e.has("importAttributes")||e.has("importAssertions"))throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");var m=e.get("moduleAttributes").version;if(m!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(e.has("importAttributes")&&e.has("importAssertions"))throw new Error("Cannot combine importAssertions and importAttributes plugins.");if(e.has("recordAndTuple")){var g=e.get("recordAndTuple").syntaxType;if(g!=null){var x=["hash","bar"];if(!x.includes(g))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+x.map(function(w){return"'"+w+"'"}).join(", "))}}if(e.has("asyncDoExpressions")&&!e.has("doExpressions")){var R=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw R.missingPlugins="doExpressions",R}if(e.has("optionalChainingAssign")&&e.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}var NU={estree:B9e,jsx:I5e,flow:P5e,typescript:D5e,v8intrinsic:$5e,placeholders:F5e},kU=Object.keys(NU),bE={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0};function U5e(e){if(e==null)return Object.assign({},bE);if(e.annexB!=null&&e.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");for(var r={},s=0,l=Object.keys(bE);s<l.length;s++){var u,o=l[s];r[o]=(u=e[o])!=null?u:bE[o]}return r}var V5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.checkProto=function(u,o,c,f){if(!(u.type==="SpreadElement"||this.isObjectMethod(u)||u.computed||u.shorthand)){var h=u.key,m=h.type==="Identifier"?h.name:h.value;if(m==="__proto__"){if(o){this.raise(He.RecordNoProto,h);return}c.used&&(f?f.doubleProtoLoc===null&&(f.doubleProtoLoc=h.loc.start):this.raise(He.DuplicateProto,h)),c.used=!0}}},s.shouldExitDescending=function(u,o){return u.type==="ArrowFunctionExpression"&&u.start===o},s.getExpression=function(){this.enterInitialScopes(),this.nextToken();var u=this.parseExpression();return this.match(139)||this.unexpected(),this.finalizeRemainingComments(),u.comments=this.comments,u.errors=this.state.errors,this.options.tokens&&(u.tokens=this.tokens),u},s.parseExpression=function(u,o){var c=this;return u?this.disallowInAnd(function(){return c.parseExpressionBase(o)}):this.allowInAnd(function(){return c.parseExpressionBase(o)})},s.parseExpressionBase=function(u){var o=this.state.startLoc,c=this.parseMaybeAssign(u);if(this.match(12)){var f=this.startNodeAt(o);for(f.expressions=[c];this.eat(12);)f.expressions.push(this.parseMaybeAssign(u));return this.toReferencedList(f.expressions),this.finishNode(f,"SequenceExpression")}return c},s.parseMaybeAssignDisallowIn=function(u,o){var c=this;return this.disallowInAnd(function(){return c.parseMaybeAssign(u,o)})},s.parseMaybeAssignAllowIn=function(u,o){var c=this;return this.allowInAnd(function(){return c.parseMaybeAssign(u,o)})},s.setOptionalParametersError=function(u,o){var c;u.optionalParametersLoc=(c=o==null?void 0:o.loc)!=null?c:this.state.startLoc},s.parseMaybeAssign=function(u,o){var c=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){var f=this.parseYield();return o&&(f=o.call(this,f,c)),f}var h;u?h=!1:(u=new h1,h=!0);var m=this.state.type;(m===10||Sa(m))&&(this.state.potentialArrowAt=this.state.start);var g=this.parseMaybeConditional(u);if(o&&(g=o.call(this,g,c)),V9e(this.state.type)){var x=this.startNodeAt(c),R=this.state.value;if(x.operator=R,this.match(29)){this.toAssignable(g,!0),x.left=g;var w=c.index;u.doubleProtoLoc!=null&&u.doubleProtoLoc.index>=w&&(u.doubleProtoLoc=null),u.shorthandAssignLoc!=null&&u.shorthandAssignLoc.index>=w&&(u.shorthandAssignLoc=null),u.privateKeyLoc!=null&&u.privateKeyLoc.index>=w&&(this.checkDestructuringPrivate(u),u.privateKeyLoc=null)}else x.left=g;return this.next(),x.right=this.parseMaybeAssign(),this.checkLVal(g,this.finishNode(x,"AssignmentExpression")),x}else h&&this.checkExpressionErrors(u,!0);return g},s.parseMaybeConditional=function(u){var o=this.state.startLoc,c=this.state.potentialArrowAt,f=this.parseExprOps(u);return this.shouldExitDescending(f,c)?f:this.parseConditional(f,o,u)},s.parseConditional=function(u,o,c){if(this.eat(17)){var f=this.startNodeAt(o);return f.test=u,f.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),f.alternate=this.parseMaybeAssign(),this.finishNode(f,"ConditionalExpression")}return u},s.parseMaybeUnaryOrPrivate=function(u){return this.match(138)?this.parsePrivateName():this.parseMaybeUnary(u)},s.parseExprOps=function(u){var o=this.state.startLoc,c=this.state.potentialArrowAt,f=this.parseMaybeUnaryOrPrivate(u);return this.shouldExitDescending(f,c)?f:this.parseExprOp(f,o,-1)},s.parseExprOp=function(u,o,c){if(this.isPrivateName(u)){var f=this.getPrivateNameSV(u);(c>=u1(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(He.PrivateInExpectedIn,u,{identifierName:f}),this.classScope.usePrivateName(f,u.loc.start)}var h=this.state.type;if(G9e(h)&&(this.prodParam.hasIn||!this.match(58))){var m=u1(h);if(m>c){if(h===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return u;this.checkPipelineAtInfixOperator(u,o)}var g=this.startNodeAt(o);g.left=u,g.operator=this.state.value;var x=h===41||h===42,R=h===40;if(R&&(m=u1(42)),this.next(),h===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(He.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);g.right=this.parseExprOpRightExpr(h,m);var w=this.finishNode(g,x||R?"LogicalExpression":"BinaryExpression"),T=this.state.type;if(R&&(T===41||T===42)||x&&T===40)throw this.raise(He.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(w,o,c)}}return u},s.parseExprOpRightExpr=function(u,o){var c=this,f=this.state.startLoc;switch(u){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(function(){return c.parseHackPipeBody()});case"smart":return this.withTopicBindingContext(function(){if(c.prodParam.hasYield&&c.isContextual(108))throw c.raise(He.PipeBodyIsTighter,c.state.startLoc);return c.parseSmartPipelineBodyInStyle(c.parseExprOpBaseRightExpr(u,o),f)});case"fsharp":return this.withSoloAwaitPermittingContext(function(){return c.parseFSharpPipelineBody(o)})}default:return this.parseExprOpBaseRightExpr(u,o)}},s.parseExprOpBaseRightExpr=function(u,o){var c=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),c,J9e(u)?o-1:o)},s.parseHackPipeBody=function(){var u,o=this.state.startLoc,c=this.parseMaybeAssign(),f=N9e.has(c.type);return f&&!((u=c.extra)!=null&&u.parenthesized)&&this.raise(He.PipeUnparenthesizedBody,o,{type:c.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(He.PipeTopicUnused,o),c},s.checkExponentialAfterUnary=function(u){this.match(57)&&this.raise(He.UnexpectedTokenUnaryExponentiation,u.argument)},s.parseMaybeUnary=function(u,o){var c=this.state.startLoc,f=this.isContextual(96);if(f&&this.recordAwaitIfAllowed()){this.next();var h=this.parseAwait(c);return o||this.checkExponentialAfterUnary(h),h}var m=this.match(34),g=this.startNode();if(H9e(this.state.type)){g.operator=this.state.value,g.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");var x=this.match(89);if(this.next(),g.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(u,!0),this.state.strict&&x){var R=g.argument;R.type==="Identifier"?this.raise(He.StrictDelete,g):this.hasPropertyAsPrivateName(R)&&this.raise(He.DeletePrivateField,g)}if(!m)return o||this.checkExponentialAfterUnary(g),this.finishNode(g,"UnaryExpression")}var w=this.parseUpdate(g,m,u);if(f){var T=this.state.type,I=this.hasPlugin("v8intrinsic")?pE(T):pE(T)&&!this.match(54);if(I&&!this.isAmbiguousAwait())return this.raiseOverwrite(He.AwaitNotInAsyncContext,c),this.parseAwait(c)}return w},s.parseUpdate=function(u,o,c){if(o){var f=u;return this.checkLVal(f.argument,this.finishNode(f,"UpdateExpression")),u}var h=this.state.startLoc,m=this.parseExprSubscripts(c);if(this.checkExpressionErrors(c,!1))return m;for(;K9e(this.state.type)&&!this.canInsertSemicolon();){var g=this.startNodeAt(h);g.operator=this.state.value,g.prefix=!1,g.argument=m,this.next(),this.checkLVal(m,m=this.finishNode(g,"UpdateExpression"))}return m},s.parseExprSubscripts=function(u){var o=this.state.startLoc,c=this.state.potentialArrowAt,f=this.parseExprAtom(u);return this.shouldExitDescending(f,c)?f:this.parseSubscripts(f,o)},s.parseSubscripts=function(u,o,c){var f={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(u),stop:!1};do u=this.parseSubscript(u,o,c,f),f.maybeAsyncArrow=!1;while(!f.stop);return u},s.parseSubscript=function(u,o,c,f){var h=this.state.type;if(!c&&h===15)return this.parseBind(u,o,c,f);if(c1(h))return this.parseTaggedTemplateExpression(u,o,f);var m=!1;if(h===18){if(c&&(this.raise(He.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return f.stop=!0,u;f.optionalChainMember=m=!0,this.next()}if(!c&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(u,o,f,m);var g=this.eat(0);return g||m||this.eat(16)?this.parseMember(u,o,f,g,m):(f.stop=!0,u)},s.parseMember=function(u,o,c,f,h){var m=this.startNodeAt(o);return m.object=u,m.computed=f,f?(m.property=this.parseExpression(),this.expect(3)):this.match(138)?(u.type==="Super"&&this.raise(He.SuperPrivateField,o),this.classScope.usePrivateName(this.state.value,this.state.startLoc),m.property=this.parsePrivateName()):m.property=this.parseIdentifier(!0),c.optionalChainMember?(m.optional=h,this.finishNode(m,"OptionalMemberExpression")):this.finishNode(m,"MemberExpression")},s.parseBind=function(u,o,c,f){var h=this.startNodeAt(o);return h.object=u,this.next(),h.callee=this.parseNoCallExpr(),f.stop=!0,this.parseSubscripts(this.finishNode(h,"BindExpression"),o,c)},s.parseCoverCallAndAsyncArrowHead=function(u,o,c,f){var h=this.state.maybeInArrowParameters,m=null;this.state.maybeInArrowParameters=!0,this.next();var g=this.startNodeAt(o);g.callee=u;var x=c.maybeAsyncArrow,R=c.optionalChainMember;x&&(this.expressionScope.enter(m5e()),m=new h1),R&&(g.optional=f),f?g.arguments=this.parseCallExpressionArguments(11):g.arguments=this.parseCallExpressionArguments(11,u.type==="Import",u.type!=="Super",g,m);var w=this.finishCallExpression(g,R);return x&&this.shouldParseAsyncArrow()&&!f?(c.stop=!0,this.checkDestructuringPrivate(m),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),w=this.parseAsyncArrowFromCallExpression(this.startNodeAt(o),w)):(x&&(this.checkExpressionErrors(m,!0),this.expressionScope.exit()),this.toReferencedArguments(w)),this.state.maybeInArrowParameters=h,w},s.toReferencedArguments=function(u,o){this.toReferencedListDeep(u.arguments,o)},s.parseTaggedTemplateExpression=function(u,o,c){var f=this.startNodeAt(o);return f.tag=u,f.quasi=this.parseTemplate(!0),c.optionalChainMember&&this.raise(He.OptionalChainingNoTemplate,o),this.finishNode(f,"TaggedTemplateExpression")},s.atPossibleAsyncArrow=function(u){return u.type==="Identifier"&&u.name==="async"&&this.state.lastTokEndLoc.index===u.end&&!this.canInsertSemicolon()&&u.end-u.start===5&&u.start===this.state.potentialArrowAt},s.expectImportAttributesPlugin=function(){this.hasPlugin("importAssertions")||this.expectPlugin("importAttributes")},s.finishCallExpression=function(u,o){if(u.callee.type==="Import")if(u.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectImportAttributesPlugin()),u.arguments.length===0||u.arguments.length>2)this.raise(He.ImportCallArity,u,{maxArgumentCount:this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(var c=0,f=u.arguments;c<f.length;c++){var h=f[c];h.type==="SpreadElement"&&this.raise(He.ImportCallSpreadArgument,h)}return this.finishNode(u,o?"OptionalCallExpression":"CallExpression")},s.parseCallExpressionArguments=function(u,o,c,f,h){var m=[],g=!0,x=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(u);){if(g)g=!1;else if(this.expect(12),this.match(u)){o&&!this.hasPlugin("importAttributes")&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(He.ImportCallArgumentTrailingComma,this.state.lastTokStartLoc),f&&this.addTrailingCommaExtraToNode(f),this.next();break}m.push(this.parseExprListItem(!1,h,c))}return this.state.inFSharpPipelineDirectBody=x,m},s.shouldParseAsyncArrow=function(){return this.match(19)&&!this.canInsertSemicolon()},s.parseAsyncArrowFromCallExpression=function(u,o){var c;return this.resetPreviousNodeTrailingComments(o),this.expect(19),this.parseArrowExpression(u,o.arguments,!0,(c=o.extra)==null?void 0:c.trailingCommaLoc),o.innerComments&&ah(u,o.innerComments),o.callee.trailingComments&&ah(u,o.callee.trailingComments),u},s.parseNoCallExpr=function(){var u=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),u,!0)},s.parseExprAtom=function(u){var o,c=null,f=this.state.type;switch(f){case 79:return this.parseSuper();case 83:return o=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(o):this.match(10)?this.options.createImportExpressions?this.parseImportCall(o):this.finishNode(o,"Import"):(this.raise(He.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(o,"Import"));case 78:return o=this.startNode(),this.next(),this.finishNode(o,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 134:return this.parseNumericLiteral(this.state.value);case 135:return this.parseBigIntLiteral(this.state.value);case 136:return this.parseDecimalLiteral(this.state.value);case 133:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{var h=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(h)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,u);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,u);case 68:return this.parseFunctionOrFunctionSent();case 26:c=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(c,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{o=this.startNode(),this.next(),o.object=null;var m=o.callee=this.parseNoCallExpr();if(m.type==="MemberExpression")return this.finishNode(o,"BindExpression");throw this.raise(He.UnsupportedBind,m)}case 138:return this.raise(He.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{var g=this.getPluginOption("pipelineOperator","proposal");if(g)return this.parseTopicReference(g);this.unexpected();break}case 47:{var x=this.input.codePointAt(this.nextTokenStart());eo(x)||x===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(Sa(f)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();var R=this.state.potentialArrowAt===this.state.start,w=this.state.containsEsc,T=this.parseIdentifier();if(!w&&T.name==="async"&&!this.canInsertSemicolon()){var I=this.state.type;if(I===68)return this.resetPreviousNodeTrailingComments(T),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(T));if(Sa(I))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(T)):T;if(I===90)return this.resetPreviousNodeTrailingComments(T),this.parseDo(this.startNodeAtNode(T),!0)}return R&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(T),[T],!1)):T}else this.unexpected()}},s.parseTopicReferenceThenEqualsSign=function(u,o){var c=this.getPluginOption("pipelineOperator","proposal");if(c)return this.state.type=u,this.state.value=o,this.state.pos--,this.state.end--,this.state.endLoc=is(this.state.endLoc,-1),this.parseTopicReference(c);this.unexpected()},s.parseTopicReference=function(u){var o=this.startNode(),c=this.state.startLoc,f=this.state.type;return this.next(),this.finishTopicReference(o,c,u,f)},s.finishTopicReference=function(u,o,c,f){if(this.testTopicReferenceConfiguration(c,o,f)){var h=c==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(c==="smart"?He.PrimaryTopicNotAllowed:He.PipeTopicUnbound,o),this.registerTopicReference(),this.finishNode(u,h)}else throw this.raise(He.PipeTopicUnconfiguredToken,o,{token:Kl(f)})},s.testTopicReferenceConfiguration=function(u,o,c){switch(u){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Kl(c)}]);case"smart":return c===27;default:throw this.raise(He.PipeTopicRequiresHackPipes,o)}},s.parseAsyncArrowUnaryFunction=function(u){this.prodParam.enter(f1(!0,this.prodParam.hasYield));var o=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(He.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(u,o,!0)},s.parseDo=function(u,o){this.expectPlugin("doExpressions"),o&&this.expectPlugin("asyncDoExpressions"),u.async=o,this.next();var c=this.state.labels;return this.state.labels=[],o?(this.prodParam.enter(bn.PARAM_AWAIT),u.body=this.parseBlock(),this.prodParam.exit()):u.body=this.parseBlock(),this.state.labels=c,this.finishNode(u,"DoExpression")},s.parseSuper=function(){var u=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(He.SuperNotAllowed,u):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(He.UnexpectedSuper,u),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(He.UnsupportedSuper,u),this.finishNode(u,"Super")},s.parsePrivateName=function(){var u=this.startNode(),o=this.startNodeAt(is(this.state.startLoc,1)),c=this.state.value;return this.next(),u.id=this.createIdentifier(o,c),this.finishNode(u,"PrivateName")},s.parseFunctionOrFunctionSent=function(){var u=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){var o=this.createIdentifier(this.startNodeAtNode(u),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(u,o,"sent")}return this.parseFunction(u)},s.parseMetaProperty=function(u,o,c){u.meta=o;var f=this.state.containsEsc;return u.property=this.parseIdentifier(!0),(u.property.name!==c||f)&&this.raise(He.UnsupportedMetaProperty,u.property,{target:o.name,onlyValidPropertyName:c}),this.finishNode(u,"MetaProperty")},s.parseImportMetaProperty=function(u){var o=this.createIdentifier(this.startNodeAtNode(u),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(He.ImportMetaOutsideModule,o),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){var c=this.isContextual(105);if(c||this.unexpected(),this.expectPlugin(c?"sourcePhaseImports":"deferredImportEvaluation"),!this.options.createImportExpressions)throw this.raise(He.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),u.phase=c?"source":"defer",this.parseImportCall(u)}return this.parseMetaProperty(u,o,"meta")},s.parseLiteralAtNode=function(u,o,c){return this.addExtra(c,"rawValue",u),this.addExtra(c,"raw",this.input.slice(c.start,this.state.end)),c.value=u,this.next(),this.finishNode(c,o)},s.parseLiteral=function(u,o){var c=this.startNode();return this.parseLiteralAtNode(u,o,c)},s.parseStringLiteral=function(u){return this.parseLiteral(u,"StringLiteral")},s.parseNumericLiteral=function(u){return this.parseLiteral(u,"NumericLiteral")},s.parseBigIntLiteral=function(u){return this.parseLiteral(u,"BigIntLiteral")},s.parseDecimalLiteral=function(u){return this.parseLiteral(u,"DecimalLiteral")},s.parseRegExpLiteral=function(u){var o=this.startNode();return this.addExtra(o,"raw",this.input.slice(o.start,this.state.end)),o.pattern=u.pattern,o.flags=u.flags,this.next(),this.finishNode(o,"RegExpLiteral")},s.parseBooleanLiteral=function(u){var o=this.startNode();return o.value=u,this.next(),this.finishNode(o,"BooleanLiteral")},s.parseNullLiteral=function(){var u=this.startNode();return this.next(),this.finishNode(u,"NullLiteral")},s.parseParenAndDistinguishExpression=function(u){var o=this.state.startLoc,c;this.next(),this.expressionScope.enter(h5e());var f=this.state.maybeInArrowParameters,h=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;for(var m=this.state.startLoc,g=[],x=new h1,R=!0,w,T;!this.match(11);){if(R)R=!1;else if(this.expect(12,x.optionalParametersLoc===null?null:x.optionalParametersLoc),this.match(11)){T=this.state.startLoc;break}if(this.match(21)){var I=this.state.startLoc;if(w=this.state.startLoc,g.push(this.parseParenItem(this.parseRestBinding(),I)),!this.checkCommaAfterRest(41))break}else g.push(this.parseMaybeAssignAllowIn(x,this.parseParenItem))}var P=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=f,this.state.inFSharpPipelineDirectBody=h;var O=this.startNodeAt(o);return u&&this.shouldParseArrow(g)&&(O=this.parseArrow(O))?(this.checkDestructuringPrivate(x),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(O,g,!1),O):(this.expressionScope.exit(),g.length||this.unexpected(this.state.lastTokStartLoc),T&&this.unexpected(T),w&&this.unexpected(w),this.checkExpressionErrors(x,!0),this.toReferencedListDeep(g,!0),g.length>1?(c=this.startNodeAt(m),c.expressions=g,this.finishNode(c,"SequenceExpression"),this.resetEndLocation(c,P)):c=g[0],this.wrapParenthesis(o,c))},s.wrapParenthesis=function(u,o){if(!this.options.createParenthesizedExpressions)return this.addExtra(o,"parenthesized",!0),this.addExtra(o,"parenStart",u.index),this.takeSurroundingComments(o,u.index,this.state.lastTokEndLoc.index),o;var c=this.startNodeAt(u);return c.expression=o,this.finishNode(c,"ParenthesizedExpression")},s.shouldParseArrow=function(u){return!this.canInsertSemicolon()},s.parseArrow=function(u){if(this.eat(19))return u},s.parseParenItem=function(u,o){return u},s.parseNewOrNewTarget=function(){var u=this.startNode();if(this.next(),this.match(16)){var o=this.createIdentifier(this.startNodeAtNode(u),"new");this.next();var c=this.parseMetaProperty(u,o,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!this.options.allowNewTargetOutsideFunction&&this.raise(He.UnexpectedNewTarget,c),c}return this.parseNew(u)},s.parseNew=function(u){if(this.parseNewCallee(u),this.eat(10)){var o=this.parseExprList(11);this.toReferencedList(o),u.arguments=o}else u.arguments=[];return this.finishNode(u,"NewExpression")},s.parseNewCallee=function(u){var o=this.match(83),c=this.parseNoCallExpr();u.callee=c,o&&(c.type==="Import"||c.type==="ImportExpression")&&this.raise(He.ImportCallNotNewExpression,c)},s.parseTemplateElement=function(u){var o=this.state,c=o.start,f=o.startLoc,h=o.end,m=o.value,g=c+1,x=this.startNodeAt(is(f,1));m===null&&(u||this.raise(He.InvalidEscapeSequenceTemplate,is(this.state.firstInvalidTemplateEscapePos,1)));var R=this.match(24),w=R?-1:-2,T=h+w;x.value={raw:this.input.slice(g,T).replace(/\r\n?/g,` +`),cooked:m===null?null:m.slice(1,w)},x.tail=R,this.next();var I=this.finishNode(x,"TemplateElement");return this.resetEndLocation(I,is(this.state.lastTokEndLoc,w)),I},s.parseTemplate=function(u){for(var o=this.startNode(),c=this.parseTemplateElement(u),f=[c],h=[];!c.tail;)h.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),f.push(c=this.parseTemplateElement(u));return o.expressions=h,o.quasis=f,this.finishNode(o,"TemplateLiteral")},s.parseTemplateSubstitution=function(){return this.parseExpression()},s.parseObjectLike=function(u,o,c,f){c&&this.expectPlugin("recordAndTuple");var h=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;var m=Object.create(null),g=!0,x=this.startNode();for(x.properties=[],this.next();!this.match(u);){if(g)g=!1;else if(this.expect(12),this.match(u)){this.addTrailingCommaExtraToNode(x);break}var R=void 0;o?R=this.parseBindingProperty():(R=this.parsePropertyDefinition(f),this.checkProto(R,c,m,f)),c&&!this.isObjectProperty(R)&&R.type!=="SpreadElement"&&this.raise(He.InvalidRecordProperty,R),R.shorthand&&this.addExtra(R,"shorthand",!0),x.properties.push(R)}this.next(),this.state.inFSharpPipelineDirectBody=h;var w="ObjectExpression";return o?w="ObjectPattern":c&&(w="RecordExpression"),this.finishNode(x,w)},s.addTrailingCommaExtraToNode=function(u){this.addExtra(u,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(u,"trailingCommaLoc",this.state.lastTokStartLoc,!1)},s.maybeAsyncOrAccessorProp=function(u){return!u.computed&&u.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))},s.parsePropertyDefinition=function(u){var o=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(He.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)o.push(this.parseDecorator());var c=this.startNode(),f=!1,h=!1,m;if(this.match(21))return o.length&&this.unexpected(),this.parseSpread();o.length&&(c.decorators=o,o=[]),c.method=!1,u&&(m=this.state.startLoc);var g=this.eat(55);this.parsePropertyNamePrefixOperator(c);var x=this.state.containsEsc;if(this.parsePropertyName(c,u),!g&&!x&&this.maybeAsyncOrAccessorProp(c)){var R=c.key,w=R.name;w==="async"&&!this.hasPrecedingLineBreak()&&(f=!0,this.resetPreviousNodeTrailingComments(R),g=this.eat(55),this.parsePropertyName(c)),(w==="get"||w==="set")&&(h=!0,this.resetPreviousNodeTrailingComments(R),c.kind=w,this.match(55)&&(g=!0,this.raise(He.AccessorIsGenerator,this.state.curPosition(),{kind:w}),this.next()),this.parsePropertyName(c))}return this.parseObjPropValue(c,m,g,f,!1,h,u)},s.getGetterSetterExpectedParamCount=function(u){return u.kind==="get"?0:1},s.getObjectOrClassMethodParams=function(u){return u.params},s.checkGetterSetterParams=function(u){var o,c=this.getGetterSetterExpectedParamCount(u),f=this.getObjectOrClassMethodParams(u);f.length!==c&&this.raise(u.kind==="get"?He.BadGetterArity:He.BadSetterArity,u),u.kind==="set"&&((o=f[f.length-1])==null?void 0:o.type)==="RestElement"&&this.raise(He.BadSetterRestParameter,u)},s.parseObjectMethod=function(u,o,c,f,h){if(h){var m=this.parseMethod(u,o,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(m),m}if(c||o||this.match(10))return f&&this.unexpected(),u.kind="method",u.method=!0,this.parseMethod(u,o,c,!1,!1,"ObjectMethod")},s.parseObjectProperty=function(u,o,c,f){if(u.shorthand=!1,this.eat(14))return u.value=c?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(f),this.finishNode(u,"ObjectProperty");if(!u.computed&&u.key.type==="Identifier"){if(this.checkReservedWord(u.key.name,u.key.loc.start,!0,!1),c)u.value=this.parseMaybeDefault(o,Bo(u.key));else if(this.match(29)){var h=this.state.startLoc;f!=null?f.shorthandAssignLoc===null&&(f.shorthandAssignLoc=h):this.raise(He.InvalidCoverInitializedName,h),u.value=this.parseMaybeDefault(o,Bo(u.key))}else u.value=Bo(u.key);return u.shorthand=!0,this.finishNode(u,"ObjectProperty")}},s.parseObjPropValue=function(u,o,c,f,h,m,g){var x=this.parseObjectMethod(u,c,f,h,m)||this.parseObjectProperty(u,o,h,g);return x||this.unexpected(),x},s.parsePropertyName=function(u,o){if(this.eat(0))u.computed=!0,u.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{var c=this.state,f=c.type,h=c.value,m;if(Bi(f))m=this.parseIdentifier(!0);else switch(f){case 134:m=this.parseNumericLiteral(h);break;case 133:m=this.parseStringLiteral(h);break;case 135:m=this.parseBigIntLiteral(h);break;case 136:m=this.parseDecimalLiteral(h);break;case 138:{var g=this.state.startLoc;o!=null?o.privateKeyLoc===null&&(o.privateKeyLoc=g):this.raise(He.UnexpectedPrivateField,g),m=this.parsePrivateName();break}default:this.unexpected()}u.key=m,f!==138&&(u.computed=!1)}},s.initFunction=function(u,o){u.id=null,u.generator=!1,u.async=o},s.parseMethod=function(u,o,c,f,h,m,g){g===void 0&&(g=!1),this.initFunction(u,c),u.generator=o,this.scope.enter(Ur.FUNCTION|Ur.SUPER|(g?Ur.CLASS:0)|(h?Ur.DIRECT_SUPER:0)),this.prodParam.enter(f1(c,u.generator)),this.parseFunctionParams(u,f);var x=this.parseFunctionBodyAndFinish(u,m,!0);return this.prodParam.exit(),this.scope.exit(),x},s.parseArrayLike=function(u,o,c,f){c&&this.expectPlugin("recordAndTuple");var h=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;var m=this.startNode();return this.next(),m.elements=this.parseExprList(u,!c,f,m),this.state.inFSharpPipelineDirectBody=h,this.finishNode(m,c?"TupleExpression":"ArrayExpression")},s.parseArrowExpression=function(u,o,c,f){this.scope.enter(Ur.FUNCTION|Ur.ARROW);var h=f1(c,!1);!this.match(5)&&this.prodParam.hasIn&&(h|=bn.PARAM_IN),this.prodParam.enter(h),this.initFunction(u,c);var m=this.state.maybeInArrowParameters;return o&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(u,o,f)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(u,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=m,this.finishNode(u,"ArrowFunctionExpression")},s.setArrowFunctionParameters=function(u,o,c){this.toAssignableList(o,c,!1),u.params=o},s.parseFunctionBodyAndFinish=function(u,o,c){return c===void 0&&(c=!1),this.parseFunctionBody(u,!1,c),this.finishNode(u,o)},s.parseFunctionBody=function(u,o,c){var f=this;c===void 0&&(c=!1);var h=o&&!this.match(5);if(this.expressionScope.enter(bU()),h)u.body=this.parseMaybeAssign(),this.checkParams(u,!1,o,!1);else{var m=this.state.strict,g=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|bn.PARAM_RETURN),u.body=this.parseBlock(!0,!1,function(x){var R=!f.isSimpleParamList(u.params);x&&R&&f.raise(He.IllegalLanguageModeDirective,(u.kind==="method"||u.kind==="constructor")&&u.key?u.key.loc.end:u);var w=!m&&f.state.strict;f.checkParams(u,!f.state.strict&&!o&&!c&&!R,o,w),f.state.strict&&u.id&&f.checkIdentifier(u.id,Pr.TYPE_OUTSIDE,w)}),this.prodParam.exit(),this.state.labels=g}this.expressionScope.exit()},s.isSimpleParameter=function(u){return u.type==="Identifier"},s.isSimpleParamList=function(u){for(var o=0,c=u.length;o<c;o++)if(!this.isSimpleParameter(u[o]))return!1;return!0},s.checkParams=function(u,o,c,f){f===void 0&&(f=!0);for(var h=!o&&new Set,m={type:"FormalParameters"},g=0,x=u.params;g<x.length;g++){var R=x[g];this.checkLVal(R,m,Pr.TYPE_VAR,h,f)}},s.parseExprList=function(u,o,c,f){for(var h=[],m=!0;!this.eat(u);){if(m)m=!1;else if(this.expect(12),this.match(u)){f&&this.addTrailingCommaExtraToNode(f),this.next();break}h.push(this.parseExprListItem(o,c))}return h},s.parseExprListItem=function(u,o,c){var f;if(this.match(12))u||this.raise(He.UnexpectedToken,this.state.curPosition(),{unexpected:","}),f=null;else if(this.match(21)){var h=this.state.startLoc;f=this.parseParenItem(this.parseSpread(o),h)}else if(this.match(17)){this.expectPlugin("partialApplication"),c||this.raise(He.UnexpectedArgumentPlaceholder,this.state.startLoc);var m=this.startNode();this.next(),f=this.finishNode(m,"ArgumentPlaceholder")}else f=this.parseMaybeAssignAllowIn(o,this.parseParenItem);return f},s.parseIdentifier=function(u){var o=this.startNode(),c=this.parseIdentifierName(u);return this.createIdentifier(o,c)},s.createIdentifier=function(u,o){return u.name=o,u.loc.identifierName=o,this.finishNode(u,"Identifier")},s.parseIdentifierName=function(u){var o,c=this.state,f=c.startLoc,h=c.type;Bi(h)?o=this.state.value:this.unexpected();var m=q9e(h);return u?m&&this.replaceToken(132):this.checkReservedWord(o,f,m,!1),this.next(),o},s.checkReservedWord=function(u,o,c,f){if(!(u.length>10)&&Z9e(u)){if(c&&kg(u)){this.raise(He.UnexpectedKeyword,o,{keyword:u});return}var h=this.state.strict?f?xF:Ng:B7;if(h(u,this.inModule)){this.raise(He.UnexpectedReservedWord,o,{reservedWord:u});return}else if(u==="yield"){if(this.prodParam.hasYield){this.raise(He.YieldBindingIdentifier,o);return}}else if(u==="await"){if(this.prodParam.hasAwait){this.raise(He.AwaitBindingIdentifier,o);return}if(this.scope.inStaticBlock){this.raise(He.AwaitBindingIdentifierInStaticBlock,o);return}this.expressionScope.recordAsyncArrowParametersError(o)}else if(u==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(He.ArgumentsInClass,o);return}}},s.recordAwaitIfAllowed=function(){var u=this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction;return u&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),u},s.parseAwait=function(u){var o=this.startNodeAt(u);return this.expressionScope.recordParameterInitializerError(He.AwaitExpressionFormalParameter,o),this.eat(55)&&this.raise(He.ObsoleteAwaitStar,o),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(o.argument=this.parseMaybeUnary(null,!0)),this.finishNode(o,"AwaitExpression")},s.isAmbiguousAwait=function(){if(this.hasPrecedingLineBreak())return!0;var u=this.state.type;return u===53||u===10||u===0||c1(u)||u===102&&!this.state.containsEsc||u===137||u===56||this.hasPlugin("v8intrinsic")&&u===54},s.parseYield=function(){var u=this.startNode();this.expressionScope.recordParameterInitializerError(He.YieldInParameter,u),this.next();var o=!1,c=null;if(!this.hasPrecedingLineBreak())switch(o=this.eat(55),this.state.type){case 13:case 139:case 8:case 11:case 3:case 9:case 14:case 12:if(!o)break;default:c=this.parseMaybeAssign()}return u.delegate=o,u.argument=c,this.finishNode(u,"YieldExpression")},s.parseImportCall=function(u){return this.next(),u.source=this.parseMaybeAssignAllowIn(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(u.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(u.options=this.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.finishNode(u,"ImportExpression")},s.checkPipelineAtInfixOperator=function(u,o){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&u.type==="SequenceExpression"&&this.raise(He.PipelineHeadSequenceExpression,o)},s.parseSmartPipelineBodyInStyle=function(u,o){if(this.isSimpleReference(u)){var c=this.startNodeAt(o);return c.callee=u,this.finishNode(c,"PipelineBareFunction")}else{var f=this.startNodeAt(o);return this.checkSmartPipeTopicBodyEarlyErrors(o),f.expression=u,this.finishNode(f,"PipelineTopicExpression")}},s.isSimpleReference=function(u){switch(u.type){case"MemberExpression":return!u.computed&&this.isSimpleReference(u.object);case"Identifier":return!0;default:return!1}},s.checkSmartPipeTopicBodyEarlyErrors=function(u){if(this.match(19))throw this.raise(He.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(He.PipelineTopicUnused,u)},s.withTopicBindingContext=function(u){var o=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return u()}finally{this.state.topicContext=o}},s.withSmartMixTopicForbiddingContext=function(u){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){var o=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return u()}finally{this.state.topicContext=o}}else return u()},s.withSoloAwaitPermittingContext=function(u){var o=this.state.soloAwait;this.state.soloAwait=!0;try{return u()}finally{this.state.soloAwait=o}},s.allowInAnd=function(u){var o=this.prodParam.currentFlags(),c=bn.PARAM_IN&~o;if(c){this.prodParam.enter(o|bn.PARAM_IN);try{return u()}finally{this.prodParam.exit()}}return u()},s.disallowInAnd=function(u){var o=this.prodParam.currentFlags(),c=bn.PARAM_IN&o;if(c){this.prodParam.enter(o&~bn.PARAM_IN);try{return u()}finally{this.prodParam.exit()}}return u()},s.registerTopicReference=function(){this.state.topicContext.maxTopicIndex=0},s.topicReferenceIsAllowedInCurrentContext=function(){return this.state.topicContext.maxNumOfResolvableTopics>=1},s.topicReferenceWasUsedInCurrentContext=function(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0},s.parseFSharpPipelineBody=function(u){var o=this.state.startLoc;this.state.potentialArrowAt=this.state.start;var c=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;var f=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),o,u);return this.state.inFSharpPipelineDirectBody=c,f},s.parseModuleExpression=function(){this.expectPlugin("moduleBlocks");var u=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);var o=this.startNodeAt(this.state.endLoc);this.next();var c=this.initializeScopes(!0);this.enterInitialScopes();try{u.body=this.parseProgram(o,8,"module")}finally{c()}return this.finishNode(u,"ModuleExpression")},s.parsePropertyNamePrefixOperator=function(u){},_(r)}(O5e),xE={kind:sh.Loop},W5e={kind:sh.Switch},Ns={Expression:0,Declaration:1,HangingDeclaration:2,NullableId:4,Async:8},ls={StatementOnly:0,AllowImportExport:1,AllowDeclaration:2,AllowFunctionDeclaration:4,AllowLabeledFunction:8},G5e=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,RE=new RegExp("in(?:stanceof)?","y");function K5e(e,r){for(var s=0;s<e.length;s++){var l=e[s],u=l.type;if(typeof u=="number"){{if(u===138){var o=l.loc,c=l.start,f=l.value,h=l.end,m=c+1,g=is(o.start,1);e.splice(s,1,new Hl({type:Mo(27),value:"#",start:c,end:m,startLoc:o.start,endLoc:g}),new Hl({type:Mo(132),value:f,start:m,end:h,startLoc:g,endLoc:o.end})),s++;continue}if(c1(u)){var x=l.loc,R=l.start,w=l.value,T=l.end,I=R+1,P=is(x.start,1),O=void 0;r.charCodeAt(R)===96?O=new Hl({type:Mo(22),value:"`",start:R,end:I,startLoc:x.start,endLoc:P}):O=new Hl({type:Mo(8),value:"}",start:R,end:I,startLoc:x.start,endLoc:P});var j=void 0,D=void 0,k=void 0,B=void 0;u===24?(D=T-1,k=is(x.end,-1),j=w===null?null:w.slice(1,-1),B=new Hl({type:Mo(22),value:"`",start:D,end:T,startLoc:k,endLoc:x.end})):(D=T-2,k=is(x.end,-2),j=w===null?null:w.slice(1,-2),B=new Hl({type:Mo(23),value:"${",start:D,end:T,startLoc:k,endLoc:x.end})),e.splice(s,1,O,new Hl({type:Mo(20),value:j,start:I,end:D,startLoc:P,endLoc:k}),B),s+=2;continue}}l.type=Mo(u)}}return e}var H5e=function(e){function r(){return e.apply(this,arguments)||this}M(r,e);var s=r.prototype;return s.parseTopLevel=function(u,o){return u.program=this.parseProgram(o),u.comments=this.comments,this.options.tokens&&(u.tokens=K5e(this.tokens,this.input)),this.finishNode(u,"File")},s.parseProgram=function(u,o,c){if(o===void 0&&(o=139),c===void 0&&(c=this.options.sourceType),u.sourceType=c,u.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(u,!0,!0,o),this.inModule){if(!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(var f=0,h=Array.from(this.scope.undefinedExports);f<h.length;f++){var m=h[f],g=m[0],x=m[1];this.raise(He.ModuleExportUndefined,x,{localName:g})}this.addExtra(u,"topLevelAwait",this.state.hasTopLevelAwait)}var R;return o===139?R=this.finishNode(u,"Program"):R=this.finishNodeAt(u,"Program",is(this.state.startLoc,-1)),R},s.stmtToDirective=function(u){var o=u;o.type="Directive",o.value=o.expression,delete o.expression;var c=o.value,f=c.value,h=this.input.slice(c.start,c.end),m=c.value=h.slice(1,-1);return this.addExtra(c,"raw",h),this.addExtra(c,"rawValue",m),this.addExtra(c,"expressionValue",f),c.type="DirectiveLiteral",o},s.parseInterpreterDirective=function(){if(!this.match(28))return null;var u=this.startNode();return u.value=this.state.value,this.next(),this.finishNode(u,"InterpreterDirective")},s.isLet=function(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1},s.chStartsBindingIdentifier=function(u,o){if(eo(u)){if(RE.lastIndex=o,RE.test(this.input)){var c=this.codePointAtPos(RE.lastIndex);if(!Bl(c)&&c!==92)return!1}return!0}else return u===92},s.chStartsBindingPattern=function(u){return u===91||u===123},s.hasFollowingBindingAtom=function(){var u=this.nextTokenStart(),o=this.codePointAtPos(u);return this.chStartsBindingPattern(o)||this.chStartsBindingIdentifier(o,u)},s.hasInLineFollowingBindingIdentifierOrBrace=function(){var u=this.nextTokenInLineStart(),o=this.codePointAtPos(u);return o===123||this.chStartsBindingIdentifier(o,u)},s.startsUsingForOf=function(){var u=this.lookahead(),o=u.type,c=u.containsEsc;if(o===102&&!c)return!1;if(Sa(o)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0},s.startsAwaitUsing=function(){var u=this.nextTokenInLineStart();if(this.isUnparsedContextual(u,"using")){u=this.nextTokenInLineStartSince(u+5);var o=this.codePointAtPos(u);if(this.chStartsBindingIdentifier(o,u))return this.expectPlugin("explicitResourceManagement"),!0}return!1},s.parseModuleItem=function(){return this.parseStatementLike(ls.AllowImportExport|ls.AllowDeclaration|ls.AllowFunctionDeclaration|ls.AllowLabeledFunction)},s.parseStatementListItem=function(){return this.parseStatementLike(ls.AllowDeclaration|ls.AllowFunctionDeclaration|(!this.options.annexB||this.state.strict?0:ls.AllowLabeledFunction))},s.parseStatementOrSloppyAnnexBFunctionDeclaration=function(u){u===void 0&&(u=!1);var o=ls.StatementOnly;return this.options.annexB&&!this.state.strict&&(o|=ls.AllowFunctionDeclaration,u&&(o|=ls.AllowLabeledFunction)),this.parseStatementLike(o)},s.parseStatement=function(){return this.parseStatementLike(ls.StatementOnly)},s.parseStatementLike=function(u){var o=null;return this.match(26)&&(o=this.parseDecorators(!0)),this.parseStatementContent(u,o)},s.parseStatementContent=function(u,o){var c=this.state.type,f=this.startNode(),h=!!(u&ls.AllowDeclaration),m=!!(u&ls.AllowFunctionDeclaration),g=u&ls.AllowImportExport;switch(c){case 60:return this.parseBreakContinueStatement(f,!0);case 63:return this.parseBreakContinueStatement(f,!1);case 64:return this.parseDebuggerStatement(f);case 90:return this.parseDoWhileStatement(f);case 91:return this.parseForStatement(f);case 68:if(this.lookaheadCharCode()===46)break;return m||this.raise(this.state.strict?He.StrictFunction:this.options.annexB?He.SloppyFunctionAnnexB:He.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(f,!1,!h&&m);case 80:return h||this.unexpected(),this.parseClass(this.maybeTakeDecorators(o,f),!0);case 69:return this.parseIfStatement(f);case 70:return this.parseReturnStatement(f);case 71:return this.parseSwitchStatement(f);case 72:return this.parseThrowStatement(f);case 73:return this.parseTryStatement(f);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?h||this.raise(He.UnexpectedLexicalDeclaration,f):this.raise(He.AwaitUsingNotInAsyncContext,f),this.next(),this.parseVarStatement(f,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(He.UnexpectedUsingDeclaration,this.state.startLoc):h||this.raise(He.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(f,"using");case 100:{if(this.state.containsEsc)break;var x=this.nextTokenStart(),R=this.codePointAtPos(x);if(R!==91&&(!h&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(R,x)&&R!==123))break}case 75:h||this.raise(He.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{var w=this.state.value;return this.parseVarStatement(f,w)}case 92:return this.parseWhileStatement(f);case 76:return this.parseWithStatement(f);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(f);case 83:{var T=this.lookaheadCharCode();if(T===40||T===46)break}case 82:{!this.options.allowImportExportEverywhere&&!g&&this.raise(He.UnexpectedImportExport,this.state.startLoc),this.next();var I;return c===83?(I=this.parseImport(f),I.type==="ImportDeclaration"&&(!I.importKind||I.importKind==="value")&&(this.sawUnambiguousESM=!0)):(I=this.parseExport(f,o),(I.type==="ExportNamedDeclaration"&&(!I.exportKind||I.exportKind==="value")||I.type==="ExportAllDeclaration"&&(!I.exportKind||I.exportKind==="value")||I.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(I),I}default:if(this.isAsyncFunction())return h||this.raise(He.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(f,!0,!h&&m)}var P=this.state.value,O=this.parseExpression();return Sa(c)&&O.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(f,P,O,u):this.parseExpressionStatement(f,O,o)},s.assertModuleNodeAllowed=function(u){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(He.ImportOutsideModule,u)},s.decoratorsEnabledBeforeExport=function(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1},s.maybeTakeDecorators=function(u,o,c){if(u){if(o.decorators&&o.decorators.length>0){var f;typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(He.DecoratorsBeforeAfterExport,o.decorators[0]),(f=o.decorators).unshift.apply(f,u)}else o.decorators=u;this.resetStartLocationFromNode(o,u[0]),c&&this.resetStartLocationFromNode(c,o)}return o},s.canHaveLeadingDecorator=function(){return this.match(80)},s.parseDecorators=function(u){var o=[];do o.push(this.parseDecorator());while(this.match(26));if(this.match(82))u||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(He.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(He.UnexpectedLeadingDecorator,this.state.startLoc);return o},s.parseDecorator=function(){this.expectOnePlugin(["decorators","decorators-legacy"]);var u=this.startNode();if(this.next(),this.hasPlugin("decorators")){var o=this.state.startLoc,c;if(this.match(10)){var f=this.state.startLoc;this.next(),c=this.parseExpression(),this.expect(11),c=this.wrapParenthesis(f,c);var h=this.state.startLoc;u.expression=this.parseMaybeDecoratorArguments(c),this.getPluginOption("decorators","allowCallParenthesized")===!1&&u.expression!==c&&this.raise(He.DecoratorArgumentsOutsideParentheses,h)}else{for(c=this.parseIdentifier(!1);this.eat(16);){var m=this.startNodeAt(o);m.object=c,this.match(138)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),m.property=this.parsePrivateName()):m.property=this.parseIdentifier(!0),m.computed=!1,c=this.finishNode(m,"MemberExpression")}u.expression=this.parseMaybeDecoratorArguments(c)}}else u.expression=this.parseExprSubscripts();return this.finishNode(u,"Decorator")},s.parseMaybeDecoratorArguments=function(u){if(this.eat(10)){var o=this.startNodeAtNode(u);return o.callee=u,o.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(o.arguments),this.finishNode(o,"CallExpression")}return u},s.parseBreakContinueStatement=function(u,o){return this.next(),this.isLineTerminator()?u.label=null:(u.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(u,o),this.finishNode(u,o?"BreakStatement":"ContinueStatement")},s.verifyBreakContinue=function(u,o){var c;for(c=0;c<this.state.labels.length;++c){var f=this.state.labels[c];if((u.label==null||f.name===u.label.name)&&(f.kind!=null&&(o||f.kind===sh.Loop)||u.label&&o))break}if(c===this.state.labels.length){var h=o?"BreakStatement":"ContinueStatement";this.raise(He.IllegalBreakContinue,u,{type:h})}},s.parseDebuggerStatement=function(u){return this.next(),this.semicolon(),this.finishNode(u,"DebuggerStatement")},s.parseHeaderExpression=function(){this.expect(10);var u=this.parseExpression();return this.expect(11),u},s.parseDoWhileStatement=function(u){var o=this;return this.next(),this.state.labels.push(xE),u.body=this.withSmartMixTopicForbiddingContext(function(){return o.parseStatement()}),this.state.labels.pop(),this.expect(92),u.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(u,"DoWhileStatement")},s.parseForStatement=function(u){this.next(),this.state.labels.push(xE);var o=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(o=this.state.startLoc,this.next()),this.scope.enter(Ur.OTHER),this.expect(10),this.match(13))return o!==null&&this.unexpected(o),this.parseFor(u,null);var c=this.isContextual(100);{var f=this.isContextual(96)&&this.startsAwaitUsing(),h=f||this.isContextual(107)&&this.startsUsingForOf(),m=c&&this.hasFollowingBindingAtom()||h;if(this.match(74)||this.match(75)||m){var g=this.startNode(),x;f?(x="await using",this.recordAwaitIfAllowed()||this.raise(He.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):x=this.state.value,this.next(),this.parseVar(g,!0,x);var R=this.finishNode(g,"VariableDeclaration"),w=this.match(58);return w&&h&&this.raise(He.ForInUsing,R),(w||this.isContextual(102))&&R.declarations.length===1?this.parseForIn(u,R,o):(o!==null&&this.unexpected(o),this.parseFor(u,R))}}var T=this.isContextual(95),I=new h1,P=this.parseExpression(!0,I),O=this.isContextual(102);if(O&&(c&&this.raise(He.ForOfLet,P),o===null&&T&&P.type==="Identifier"&&this.raise(He.ForOfAsync,P)),O||this.match(58)){this.checkDestructuringPrivate(I),this.toAssignable(P,!0);var j=O?"ForOfStatement":"ForInStatement";return this.checkLVal(P,{type:j}),this.parseForIn(u,P,o)}else this.checkExpressionErrors(I,!0);return o!==null&&this.unexpected(o),this.parseFor(u,P)},s.parseFunctionStatement=function(u,o,c){return this.next(),this.parseFunction(u,Ns.Declaration|(c?Ns.HangingDeclaration:0)|(o?Ns.Async:0))},s.parseIfStatement=function(u){return this.next(),u.test=this.parseHeaderExpression(),u.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),u.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(u,"IfStatement")},s.parseReturnStatement=function(u){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(He.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?u.argument=null:(u.argument=this.parseExpression(),this.semicolon()),this.finishNode(u,"ReturnStatement")},s.parseSwitchStatement=function(u){this.next(),u.discriminant=this.parseHeaderExpression();var o=u.cases=[];this.expect(5),this.state.labels.push(W5e),this.scope.enter(Ur.OTHER);for(var c,f;!this.match(8);)if(this.match(61)||this.match(65)){var h=this.match(61);c&&this.finishNode(c,"SwitchCase"),o.push(c=this.startNode()),c.consequent=[],this.next(),h?c.test=this.parseExpression():(f&&this.raise(He.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),f=!0,c.test=null),this.expect(14)}else c?c.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),c&&this.finishNode(c,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(u,"SwitchStatement")},s.parseThrowStatement=function(u){return this.next(),this.hasPrecedingLineBreak()&&this.raise(He.NewlineAfterThrow,this.state.lastTokEndLoc),u.argument=this.parseExpression(),this.semicolon(),this.finishNode(u,"ThrowStatement")},s.parseCatchClauseParam=function(){var u=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&u.type==="Identifier"?Ur.SIMPLE_CATCH:0),this.checkLVal(u,{type:"CatchClause"},Pr.TYPE_CATCH_PARAM),u},s.parseTryStatement=function(u){var o=this;if(this.next(),u.block=this.parseBlock(),u.handler=null,this.match(62)){var c=this.startNode();this.next(),this.match(10)?(this.expect(10),c.param=this.parseCatchClauseParam(),this.expect(11)):(c.param=null,this.scope.enter(Ur.OTHER)),c.body=this.withSmartMixTopicForbiddingContext(function(){return o.parseBlock(!1,!1)}),this.scope.exit(),u.handler=this.finishNode(c,"CatchClause")}return u.finalizer=this.eat(67)?this.parseBlock():null,!u.handler&&!u.finalizer&&this.raise(He.NoCatchOrFinally,u),this.finishNode(u,"TryStatement")},s.parseVarStatement=function(u,o,c){return c===void 0&&(c=!1),this.next(),this.parseVar(u,!1,o,c),this.semicolon(),this.finishNode(u,"VariableDeclaration")},s.parseWhileStatement=function(u){var o=this;return this.next(),u.test=this.parseHeaderExpression(),this.state.labels.push(xE),u.body=this.withSmartMixTopicForbiddingContext(function(){return o.parseStatement()}),this.state.labels.pop(),this.finishNode(u,"WhileStatement")},s.parseWithStatement=function(u){var o=this;return this.state.strict&&this.raise(He.StrictWith,this.state.startLoc),this.next(),u.object=this.parseHeaderExpression(),u.body=this.withSmartMixTopicForbiddingContext(function(){return o.parseStatement()}),this.finishNode(u,"WithStatement")},s.parseEmptyStatement=function(u){return this.next(),this.finishNode(u,"EmptyStatement")},s.parseLabeledStatement=function(u,o,c,f){for(var h=0,m=this.state.labels;h<m.length;h++){var g=m[h];g.name===o&&this.raise(He.LabelRedeclaration,c,{labelName:o})}for(var x=W9e(this.state.type)?sh.Loop:this.match(71)?sh.Switch:null,R=this.state.labels.length-1;R>=0;R--){var w=this.state.labels[R];if(w.statementStart===u.start)w.statementStart=this.state.start,w.kind=x;else break}return this.state.labels.push({name:o,kind:x,statementStart:this.state.start}),u.body=f&ls.AllowLabeledFunction?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),u.label=c,this.finishNode(u,"LabeledStatement")},s.parseExpressionStatement=function(u,o,c){return u.expression=o,this.semicolon(),this.finishNode(u,"ExpressionStatement")},s.parseBlock=function(u,o,c){u===void 0&&(u=!1),o===void 0&&(o=!0);var f=this.startNode();return u&&this.state.strictErrors.clear(),this.expect(5),o&&this.scope.enter(Ur.OTHER),this.parseBlockBody(f,u,!1,8,c),o&&this.scope.exit(),this.finishNode(f,"BlockStatement")},s.isValidDirective=function(u){return u.type==="ExpressionStatement"&&u.expression.type==="StringLiteral"&&!u.expression.extra.parenthesized},s.parseBlockBody=function(u,o,c,f,h){var m=u.body=[],g=u.directives=[];this.parseBlockOrModuleBlockBody(m,o?g:void 0,c,f,h)},s.parseBlockOrModuleBlockBody=function(u,o,c,f,h){for(var m=this.state.strict,g=!1,x=!1;!this.match(f);){var R=c?this.parseModuleItem():this.parseStatementListItem();if(o&&!x){if(this.isValidDirective(R)){var w=this.stmtToDirective(R);o.push(w),!g&&w.value.value==="use strict"&&(g=!0,this.setStrict(!0));continue}x=!0,this.state.strictErrors.clear()}u.push(R)}h==null||h.call(this,g),m||this.setStrict(!1),this.next()},s.parseFor=function(u,o){var c=this;return u.init=o,this.semicolon(!1),u.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),u.update=this.match(11)?null:this.parseExpression(),this.expect(11),u.body=this.withSmartMixTopicForbiddingContext(function(){return c.parseStatement()}),this.scope.exit(),this.state.labels.pop(),this.finishNode(u,"ForStatement")},s.parseForIn=function(u,o,c){var f=this,h=this.match(58);return this.next(),h?c!==null&&this.unexpected(c):u.await=c!==null,o.type==="VariableDeclaration"&&o.declarations[0].init!=null&&(!h||!this.options.annexB||this.state.strict||o.kind!=="var"||o.declarations[0].id.type!=="Identifier")&&this.raise(He.ForInOfLoopInitializer,o,{type:h?"ForInStatement":"ForOfStatement"}),o.type==="AssignmentPattern"&&this.raise(He.InvalidLhs,o,{ancestor:{type:"ForStatement"}}),u.left=o,u.right=h?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),u.body=this.withSmartMixTopicForbiddingContext(function(){return f.parseStatement()}),this.scope.exit(),this.state.labels.pop(),this.finishNode(u,h?"ForInStatement":"ForOfStatement")},s.parseVar=function(u,o,c,f){f===void 0&&(f=!1);var h=u.declarations=[];for(u.kind=c;;){var m=this.startNode();if(this.parseVarId(m,c),m.init=this.eat(29)?o?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,m.init===null&&!f&&(m.id.type!=="Identifier"&&!(o&&(this.match(58)||this.isContextual(102)))?this.raise(He.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(c==="const"||c==="using"||c==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(He.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:c})),h.push(this.finishNode(m,"VariableDeclarator")),!this.eat(12))break}return u},s.parseVarId=function(u,o){var c=this.parseBindingAtom();(o==="using"||o==="await using")&&(c.type==="ArrayPattern"||c.type==="ObjectPattern")&&this.raise(He.UsingDeclarationHasBindingPattern,c.loc.start),this.checkLVal(c,{type:"VariableDeclarator"},o==="var"?Pr.TYPE_VAR:Pr.TYPE_LEXICAL),u.id=c},s.parseAsyncFunctionExpression=function(u){return this.parseFunction(u,Ns.Async)},s.parseFunction=function(u,o){var c=this;o===void 0&&(o=Ns.Expression);var f=o&Ns.HangingDeclaration,h=!!(o&Ns.Declaration),m=h&&!(o&Ns.NullableId),g=!!(o&Ns.Async);this.initFunction(u,g),this.match(55)&&(f&&this.raise(He.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),u.generator=!0),h&&(u.id=this.parseFunctionId(m));var x=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(Ur.FUNCTION),this.prodParam.enter(f1(g,u.generator)),h||(u.id=this.parseFunctionId()),this.parseFunctionParams(u,!1),this.withSmartMixTopicForbiddingContext(function(){c.parseFunctionBodyAndFinish(u,h?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),h&&!f&&this.registerFunctionStatementId(u),this.state.maybeInArrowParameters=x,u},s.parseFunctionId=function(u){return u||Sa(this.state.type)?this.parseIdentifier():null},s.parseFunctionParams=function(u,o){this.expect(10),this.expressionScope.enter(f5e()),u.params=this.parseBindingList(11,41,Xl.IS_FUNCTION_PARAMS|(o?Xl.IS_CONSTRUCTOR_PARAMS:0)),this.expressionScope.exit()},s.registerFunctionStatementId=function(u){u.id&&this.scope.declareName(u.id.name,!this.options.annexB||this.state.strict||u.generator||u.async?this.scope.treatFunctionsAsVar?Pr.TYPE_VAR:Pr.TYPE_LEXICAL:Pr.TYPE_FUNCTION,u.id.loc.start)},s.parseClass=function(u,o,c){this.next();var f=this.state.strict;return this.state.strict=!0,this.parseClassId(u,o,c),this.parseClassSuper(u),u.body=this.parseClassBody(!!u.superClass,f),this.finishNode(u,o?"ClassDeclaration":"ClassExpression")},s.isClassProperty=function(){return this.match(29)||this.match(13)||this.match(8)},s.isClassMethod=function(){return this.match(10)},s.nameIsConstructor=function(u){return u.type==="Identifier"&&u.name==="constructor"||u.type==="StringLiteral"&&u.value==="constructor"},s.isNonstaticConstructor=function(u){return!u.computed&&!u.static&&this.nameIsConstructor(u.key)},s.parseClassBody=function(u,o){var c=this;this.classScope.enter();var f={hadConstructor:!1,hadSuperClass:u},h=[],m=this.startNode();if(m.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(function(){for(;!c.match(8);){if(c.eat(13)){if(h.length>0)throw c.raise(He.DecoratorSemicolon,c.state.lastTokEndLoc);continue}if(c.match(26)){h.push(c.parseDecorator());continue}var g=c.startNode();h.length&&(g.decorators=h,c.resetStartLocationFromNode(g,h[0]),h=[]),c.parseClassMember(m,g,f),g.kind==="constructor"&&g.decorators&&g.decorators.length>0&&c.raise(He.DecoratorConstructor,g)}}),this.state.strict=o,this.next(),h.length)throw this.raise(He.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(m,"ClassBody")},s.parseClassMemberFromModifier=function(u,o){var c=this.parseIdentifier(!0);if(this.isClassMethod()){var f=o;return f.kind="method",f.computed=!1,f.key=c,f.static=!1,this.pushClassMethod(u,f,!1,!1,!1,!1),!0}else if(this.isClassProperty()){var h=o;return h.computed=!1,h.key=c,h.static=!1,u.body.push(this.parseClassProperty(h)),!0}return this.resetPreviousNodeTrailingComments(c),!1},s.parseClassMember=function(u,o,c){var f=this.isContextual(106);if(f){if(this.parseClassMemberFromModifier(u,o))return;if(this.eat(5)){this.parseClassStaticBlock(u,o);return}}this.parseClassMemberWithIsStatic(u,o,c,f)},s.parseClassMemberWithIsStatic=function(u,o,c,f){var h=o,m=o,g=o,x=o,R=o,w=h,T=h;if(o.static=f,this.parsePropertyNamePrefixOperator(o),this.eat(55)){w.kind="method";var I=this.match(138);if(this.parseClassElementName(w),I){this.pushClassPrivateMethod(u,m,!0,!1);return}this.isNonstaticConstructor(h)&&this.raise(He.ConstructorIsGenerator,h.key),this.pushClassMethod(u,h,!0,!1,!1,!1);return}var P=!this.state.containsEsc&&Sa(this.state.type),O=this.parseClassElementName(o),j=P?O.name:null,D=this.isPrivateName(O),k=this.state.startLoc;if(this.parsePostMemberNameModifiers(T),this.isClassMethod()){if(w.kind="method",D){this.pushClassPrivateMethod(u,m,!1,!1);return}var B=this.isNonstaticConstructor(h),F=!1;B&&(h.kind="constructor",c.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(He.DuplicateConstructor,O),B&&this.hasPlugin("typescript")&&o.override&&this.raise(He.OverrideOnConstructor,O),c.hadConstructor=!0,F=c.hadSuperClass),this.pushClassMethod(u,h,!1,!1,B,F)}else if(this.isClassProperty())D?this.pushClassPrivateProperty(u,x):this.pushClassProperty(u,g);else if(j==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(O);var L=this.eat(55);T.optional&&this.unexpected(k),w.kind="method";var V=this.match(138);this.parseClassElementName(w),this.parsePostMemberNameModifiers(T),V?this.pushClassPrivateMethod(u,m,L,!0):(this.isNonstaticConstructor(h)&&this.raise(He.ConstructorIsAsync,h.key),this.pushClassMethod(u,h,L,!0,!1,!1))}else if((j==="get"||j==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(O),w.kind=j;var H=this.match(138);this.parseClassElementName(h),H?this.pushClassPrivateMethod(u,m,!1,!1):(this.isNonstaticConstructor(h)&&this.raise(He.ConstructorIsAccessor,h.key),this.pushClassMethod(u,h,!1,!1,!1,!1)),this.checkGetterSetterParams(h)}else if(j==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(O);var K=this.match(138);this.parseClassElementName(g),this.pushClassAccessorProperty(u,R,K)}else this.isLineTerminator()?D?this.pushClassPrivateProperty(u,x):this.pushClassProperty(u,g):this.unexpected()},s.parseClassElementName=function(u){var o=this.state,c=o.type,f=o.value;if((c===132||c===133)&&u.static&&f==="prototype"&&this.raise(He.StaticPrototype,this.state.startLoc),c===138){f==="constructor"&&this.raise(He.ConstructorClassPrivateField,this.state.startLoc);var h=this.parsePrivateName();return u.key=h,h}return this.parsePropertyName(u),u.key},s.parseClassStaticBlock=function(u,o){var c;this.scope.enter(Ur.CLASS|Ur.STATIC_BLOCK|Ur.SUPER);var f=this.state.labels;this.state.labels=[],this.prodParam.enter(bn.PARAM);var h=o.body=[];this.parseBlockOrModuleBlockBody(h,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=f,u.body.push(this.finishNode(o,"StaticBlock")),(c=o.decorators)!=null&&c.length&&this.raise(He.DecoratorStaticBlock,o)},s.pushClassProperty=function(u,o){!o.computed&&this.nameIsConstructor(o.key)&&this.raise(He.ConstructorClassField,o.key),u.body.push(this.parseClassProperty(o))},s.pushClassPrivateProperty=function(u,o){var c=this.parseClassPrivateProperty(o);u.body.push(c),this.classScope.declarePrivateName(this.getPrivateNameSV(c.key),mi.OTHER,c.key.loc.start)},s.pushClassAccessorProperty=function(u,o,c){!c&&!o.computed&&this.nameIsConstructor(o.key)&&this.raise(He.ConstructorClassField,o.key);var f=this.parseClassAccessorProperty(o);u.body.push(f),c&&this.classScope.declarePrivateName(this.getPrivateNameSV(f.key),mi.OTHER,f.key.loc.start)},s.pushClassMethod=function(u,o,c,f,h,m){u.body.push(this.parseMethod(o,c,f,h,m,"ClassMethod",!0))},s.pushClassPrivateMethod=function(u,o,c,f){var h=this.parseMethod(o,c,f,!1,!1,"ClassPrivateMethod",!0);u.body.push(h);var m=h.kind==="get"?h.static?mi.STATIC_GETTER:mi.INSTANCE_GETTER:h.kind==="set"?h.static?mi.STATIC_SETTER:mi.INSTANCE_SETTER:mi.OTHER;this.declareClassPrivateMethodInScope(h,m)},s.declareClassPrivateMethodInScope=function(u,o){this.classScope.declarePrivateName(this.getPrivateNameSV(u.key),o,u.key.loc.start)},s.parsePostMemberNameModifiers=function(u){},s.parseClassPrivateProperty=function(u){return this.parseInitializer(u),this.semicolon(),this.finishNode(u,"ClassPrivateProperty")},s.parseClassProperty=function(u){return this.parseInitializer(u),this.semicolon(),this.finishNode(u,"ClassProperty")},s.parseClassAccessorProperty=function(u){return this.parseInitializer(u),this.semicolon(),this.finishNode(u,"ClassAccessorProperty")},s.parseInitializer=function(u){this.scope.enter(Ur.CLASS|Ur.SUPER),this.expressionScope.enter(bU()),this.prodParam.enter(bn.PARAM),u.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()},s.parseClassId=function(u,o,c,f){if(f===void 0&&(f=Pr.TYPE_CLASS),Sa(this.state.type))u.id=this.parseIdentifier(),o&&this.declareNameFromIdentifier(u.id,f);else if(c||!o)u.id=null;else throw this.raise(He.MissingClassName,this.state.startLoc)},s.parseClassSuper=function(u){u.superClass=this.eat(81)?this.parseExprSubscripts():null},s.parseExport=function(u,o){var c=this.parseMaybeImportPhase(u,!0),f=this.maybeParseExportDefaultSpecifier(u,c),h=!f||this.eat(12),m=h&&this.eatExportStar(u),g=m&&this.maybeParseExportNamespaceSpecifier(u),x=h&&(!g||this.eat(12)),R=f||m;if(m&&!g){if(f&&this.unexpected(),o)throw this.raise(He.UnsupportedDecoratorExport,u);return this.parseExportFrom(u,!0),this.finishNode(u,"ExportAllDeclaration")}var w=this.maybeParseExportNamedSpecifiers(u);f&&h&&!m&&!w&&this.unexpected(null,5),g&&x&&this.unexpected(null,98);var T;if(R||w){if(T=!1,o)throw this.raise(He.UnsupportedDecoratorExport,u);this.parseExportFrom(u,R)}else T=this.maybeParseExportDeclaration(u);if(R||w||T){var I,P=u;if(this.checkExport(P,!0,!1,!!P.source),((I=P.declaration)==null?void 0:I.type)==="ClassDeclaration")this.maybeTakeDecorators(o,P.declaration,P);else if(o)throw this.raise(He.UnsupportedDecoratorExport,u);return this.finishNode(P,"ExportNamedDeclaration")}if(this.eat(65)){var O=u,j=this.parseExportDefaultExpression();if(O.declaration=j,j.type==="ClassDeclaration")this.maybeTakeDecorators(o,j,O);else if(o)throw this.raise(He.UnsupportedDecoratorExport,u);return this.checkExport(O,!0,!0),this.finishNode(O,"ExportDefaultDeclaration")}this.unexpected(null,5)},s.eatExportStar=function(u){return this.eat(55)},s.maybeParseExportDefaultSpecifier=function(u,o){if(o||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",o==null?void 0:o.loc.start);var c=o||this.parseIdentifier(!0),f=this.startNodeAtNode(c);return f.exported=c,u.specifiers=[this.finishNode(f,"ExportDefaultSpecifier")],!0}return!1},s.maybeParseExportNamespaceSpecifier=function(u){if(this.isContextual(93)){var o,c;(c=(o=u).specifiers)!=null||(o.specifiers=[]);var f=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),f.exported=this.parseModuleExportName(),u.specifiers.push(this.finishNode(f,"ExportNamespaceSpecifier")),!0}return!1},s.maybeParseExportNamedSpecifiers=function(u){if(this.match(5)){var o,c=u;c.specifiers||(c.specifiers=[]);var f=c.exportKind==="type";return(o=c.specifiers).push.apply(o,this.parseExportSpecifiers(f)),c.source=null,c.declaration=null,this.hasPlugin("importAssertions")&&(c.assertions=[]),!0}return!1},s.maybeParseExportDeclaration=function(u){return this.shouldParseExportDeclaration()?(u.specifiers=[],u.source=null,this.hasPlugin("importAssertions")&&(u.assertions=[]),u.declaration=this.parseExportDeclaration(u),!0):!1},s.isAsyncFunction=function(){if(!this.isContextual(95))return!1;var u=this.nextTokenInLineStart();return this.isUnparsedContextual(u,"function")},s.parseExportDefaultExpression=function(){var u=this.startNode();if(this.match(68))return this.next(),this.parseFunction(u,Ns.Declaration|Ns.NullableId);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(u,Ns.Declaration|Ns.NullableId|Ns.Async);if(this.match(80))return this.parseClass(u,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(He.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(He.UnsupportedDefaultExport,this.state.startLoc);var o=this.parseMaybeAssignAllowIn();return this.semicolon(),o},s.parseExportDeclaration=function(u){if(this.match(80)){var o=this.parseClass(this.startNode(),!0,!1);return o}return this.parseStatementListItem()},s.isExportDefaultSpecifier=function(){var u=this.state.type;if(Sa(u)){if(u===95&&!this.state.containsEsc||u===100)return!1;if((u===130||u===129)&&!this.state.containsEsc){var o=this.lookahead(),c=o.type;if(Sa(c)&&c!==98||c===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;var f=this.nextTokenStart(),h=this.isUnparsedContextual(f,"from");if(this.input.charCodeAt(f)===44||Sa(this.state.type)&&h)return!0;if(this.match(65)&&h){var m=this.input.charCodeAt(this.nextTokenStartSince(f+4));return m===34||m===39}return!1},s.parseExportFrom=function(u,o){this.eatContextual(98)?(u.source=this.parseImportSource(),this.checkExport(u),this.maybeParseImportAttributes(u),this.checkJSONModuleImport(u)):o&&this.unexpected(),this.semicolon()},s.shouldParseExportDeclaration=function(){var u=this.state.type;return u===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(He.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(He.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(He.UsingDeclarationExport,this.state.startLoc),!0):u===74||u===75||u===68||u===80||this.isLet()||this.isAsyncFunction()},s.checkExport=function(u,o,c,f){if(o){var h;if(c){if(this.checkDuplicateExports(u,"default"),this.hasPlugin("exportDefaultFrom")){var m,g=u.declaration;g.type==="Identifier"&&g.name==="from"&&g.end-g.start===4&&!((m=g.extra)!=null&&m.parenthesized)&&this.raise(He.ExportDefaultFromAsIdentifier,g)}}else if((h=u.specifiers)!=null&&h.length)for(var x=0,R=u.specifiers;x<R.length;x++){var w=R[x],T=w.exported,I=T.type==="Identifier"?T.name:T.value;if(this.checkDuplicateExports(w,I),!f&&w.local){var P=w.local;P.type!=="Identifier"?this.raise(He.ExportBindingIsString,w,{localName:P.value,exportName:I}):(this.checkReservedWord(P.name,P.loc.start,!0,!1),this.scope.checkLocalExport(P))}}else if(u.declaration){var O=u.declaration;if(O.type==="FunctionDeclaration"||O.type==="ClassDeclaration"){var j=O.id;if(!j)throw new Error("Assertion failure");this.checkDuplicateExports(u,j.name)}else if(O.type==="VariableDeclaration")for(var D=0,k=O.declarations;D<k.length;D++){var B=k[D];this.checkDeclaration(B.id)}}}},s.checkDeclaration=function(u){if(u.type==="Identifier")this.checkDuplicateExports(u,u.name);else if(u.type==="ObjectPattern")for(var o=0,c=u.properties;o<c.length;o++){var f=c[o];this.checkDeclaration(f)}else if(u.type==="ArrayPattern")for(var h=0,m=u.elements;h<m.length;h++){var g=m[h];g&&this.checkDeclaration(g)}else u.type==="ObjectProperty"?this.checkDeclaration(u.value):u.type==="RestElement"?this.checkDeclaration(u.argument):u.type==="AssignmentPattern"&&this.checkDeclaration(u.left)},s.checkDuplicateExports=function(u,o){this.exportedIdentifiers.has(o)&&(o==="default"?this.raise(He.DuplicateDefaultExport,u):this.raise(He.DuplicateExport,u,{exportName:o})),this.exportedIdentifiers.add(o)},s.parseExportSpecifiers=function(u){var o=[],c=!0;for(this.expect(5);!this.eat(8);){if(c)c=!1;else if(this.expect(12),this.eat(8))break;var f=this.isContextual(130),h=this.match(133),m=this.startNode();m.local=this.parseModuleExportName(),o.push(this.parseExportSpecifier(m,h,u,f))}return o},s.parseExportSpecifier=function(u,o,c,f){return this.eatContextual(93)?u.exported=this.parseModuleExportName():o?u.exported=b5e(u.local):u.exported||(u.exported=Bo(u.local)),this.finishNode(u,"ExportSpecifier")},s.parseModuleExportName=function(){if(this.match(133)){var u=this.parseStringLiteral(this.state.value),o=G5e.exec(u.value);return o&&this.raise(He.ModuleExportNameHasLoneSurrogate,u,{surrogateCharCode:o[0].charCodeAt(0)}),u}return this.parseIdentifier(!0)},s.isJSONModuleImport=function(u){return u.assertions!=null?u.assertions.some(function(o){var c=o.key,f=o.value;return f.value==="json"&&(c.type==="Identifier"?c.name==="type":c.value==="type")}):!1},s.checkImportReflection=function(u){var o=u.specifiers,c=o.length===1?o[0].type:null;if(u.phase==="source")c!=="ImportDefaultSpecifier"&&this.raise(He.SourcePhaseImportRequiresDefault,o[0].loc.start);else if(u.phase==="defer")c!=="ImportNamespaceSpecifier"&&this.raise(He.DeferImportRequiresNamespace,o[0].loc.start);else if(u.module){var f;c!=="ImportDefaultSpecifier"&&this.raise(He.ImportReflectionNotBinding,o[0].loc.start),((f=u.assertions)==null?void 0:f.length)>0&&this.raise(He.ImportReflectionHasAssertion,o[0].loc.start)}},s.checkJSONModuleImport=function(u){if(this.isJSONModuleImport(u)&&u.type!=="ExportAllDeclaration"){var o=u.specifiers;if(o!=null){var c=o.find(function(f){var h;if(f.type==="ExportSpecifier"?h=f.local:f.type==="ImportSpecifier"&&(h=f.imported),h!==void 0)return h.type==="Identifier"?h.name!=="default":h.value!=="default"});c!==void 0&&this.raise(He.ImportJSONBindingNotDefault,c.loc.start)}}},s.isPotentialImportPhase=function(u){return u?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)},s.applyImportPhase=function(u,o,c,f){o||(c==="module"?(this.expectPlugin("importReflection",f),u.module=!0):this.hasPlugin("importReflection")&&(u.module=!1),c==="source"?(this.expectPlugin("sourcePhaseImports",f),u.phase="source"):c==="defer"?(this.expectPlugin("deferredImportEvaluation",f),u.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(u.phase=null))},s.parseMaybeImportPhase=function(u,o){if(!this.isPotentialImportPhase(o))return this.applyImportPhase(u,o,null),null;var c=this.parseIdentifier(!0),f=this.state.type,h=Bi(f)?f!==98||this.lookaheadCharCode()===102:f!==12;return h?(this.resetPreviousIdentifierLeadingComments(c),this.applyImportPhase(u,o,c.name,c.loc.start),null):(this.applyImportPhase(u,o,null),c)},s.isPrecedingIdImportPhase=function(u){var o=this.state.type;return Sa(o)?o!==98||this.lookaheadCharCode()===102:o!==12},s.parseImport=function(u){return this.match(133)?this.parseImportSourceAndAttributes(u):this.parseImportSpecifiersAndAfter(u,this.parseMaybeImportPhase(u,!1))},s.parseImportSpecifiersAndAfter=function(u,o){u.specifiers=[];var c=this.maybeParseDefaultImportSpecifier(u,o),f=!c||this.eat(12),h=f&&this.maybeParseStarImportSpecifier(u);return f&&!h&&this.parseNamedImportSpecifiers(u),this.expectContextual(98),this.parseImportSourceAndAttributes(u)},s.parseImportSourceAndAttributes=function(u){var o;return(o=u.specifiers)!=null||(u.specifiers=[]),u.source=this.parseImportSource(),this.maybeParseImportAttributes(u),this.checkImportReflection(u),this.checkJSONModuleImport(u),this.semicolon(),this.finishNode(u,"ImportDeclaration")},s.parseImportSource=function(){return this.match(133)||this.unexpected(),this.parseExprAtom()},s.parseImportSpecifierLocal=function(u,o,c){o.local=this.parseIdentifier(),u.specifiers.push(this.finishImportSpecifier(o,c))},s.finishImportSpecifier=function(u,o,c){return c===void 0&&(c=Pr.TYPE_LEXICAL),this.checkLVal(u.local,{type:o},c),this.finishNode(u,o)},s.parseImportAttributes=function(){this.expect(5);var u=[],o=new Set;do{if(this.match(8))break;var c=this.startNode(),f=this.state.value;if(o.has(f)&&this.raise(He.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:f}),o.add(f),this.match(133)?c.key=this.parseStringLiteral(f):c.key=this.parseIdentifier(!0),this.expect(14),!this.match(133))throw this.raise(He.ModuleAttributeInvalidValue,this.state.startLoc);c.value=this.parseStringLiteral(this.state.value),u.push(this.finishNode(c,"ImportAttribute"))}while(this.eat(12));return this.expect(8),u},s.parseModuleAttributes=function(){var u=[],o=new Set;do{var c=this.startNode();if(c.key=this.parseIdentifier(!0),c.key.name!=="type"&&this.raise(He.ModuleAttributeDifferentFromType,c.key),o.has(c.key.name)&&this.raise(He.ModuleAttributesWithDuplicateKeys,c.key,{key:c.key.name}),o.add(c.key.name),this.expect(14),!this.match(133))throw this.raise(He.ModuleAttributeInvalidValue,this.state.startLoc);c.value=this.parseStringLiteral(this.state.value),u.push(this.finishNode(c,"ImportAttribute"))}while(this.eat(12));return u},s.maybeParseImportAttributes=function(u){var o,c=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?o=this.parseModuleAttributes():(this.expectImportAttributesPlugin(),o=this.parseImportAttributes()),c=!0}else if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.hasPlugin("importAttributes")?(this.getPluginOption("importAttributes","deprecatedAssertSyntax")!==!0&&this.raise(He.ImportAttributesUseAssert,this.state.startLoc),this.addExtra(u,"deprecatedAssertSyntax",!0)):this.expectOnePlugin(["importAttributes","importAssertions"]),this.next(),o=this.parseImportAttributes();else if(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))o=[];else if(this.hasPlugin("moduleAttributes"))o=[];else return;!c&&this.hasPlugin("importAssertions")?u.assertions=o:u.attributes=o},s.maybeParseDefaultImportSpecifier=function(u,o){if(o){var c=this.startNodeAtNode(o);return c.local=o,u.specifiers.push(this.finishImportSpecifier(c,"ImportDefaultSpecifier")),!0}else if(Bi(this.state.type))return this.parseImportSpecifierLocal(u,this.startNode(),"ImportDefaultSpecifier"),!0;return!1},s.maybeParseStarImportSpecifier=function(u){if(this.match(55)){var o=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(u,o,"ImportNamespaceSpecifier"),!0}return!1},s.parseNamedImportSpecifiers=function(u){var o=!0;for(this.expect(5);!this.eat(8);){if(o)o=!1;else{if(this.eat(14))throw this.raise(He.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}var c=this.startNode(),f=this.match(133),h=this.isContextual(130);c.imported=this.parseModuleExportName();var m=this.parseImportSpecifier(c,f,u.importKind==="type"||u.importKind==="typeof",h,void 0);u.specifiers.push(m)}},s.parseImportSpecifier=function(u,o,c,f,h){if(this.eatContextual(93))u.local=this.parseIdentifier();else{var m=u.imported;if(o)throw this.raise(He.ImportBindingIsString,u,{importName:m.value});this.checkReservedWord(m.name,u.loc.start,!0,!0),u.local||(u.local=Bo(m))}return this.finishImportSpecifier(u,"ImportSpecifier",h)},s.isThisParam=function(u){return u.type==="Identifier"&&u.name==="this"},_(r)}(V5e),DU=function(e){function r(l,u,o){var c;return l=U5e(l),c=e.call(this,l,u)||this,c.options=l,c.initializeScopes(),c.plugins=o,c.filename=l.sourceFilename,c}M(r,e);var s=r.prototype;return s.getScopeHandler=function(){return mE},s.parse=function(){this.enterInitialScopes();var u=this.startNode(),o=this.startNode();return this.nextToken(),u.errors=null,this.parseTopLevel(u,o),u.errors=this.state.errors,u.comments.length=this.state.commentsLen,u},_(r)}(H5e);function oh(e,r){var s;if(((s=r)==null?void 0:s.sourceType)==="unambiguous"){r=Object.assign({},r);try{r.sourceType="module";var l=lh(r,e),u=l.parse();if(l.sawUnambiguousESM)return u;if(l.ambiguousScriptDifferentAst)try{return r.sourceType="script",lh(r,e).parse()}catch{}else u.program.sourceType="script";return u}catch(o){try{return r.sourceType="script",lh(r,e).parse()}catch{}throw o}}else return lh(r,e).parse()}function z5e(e,r){var s=lh(r,e);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()}function X5e(e){for(var r={},s=0,l=Object.keys(e);s<l.length;s++){var u=l[s];r[u]=Mo(e[u])}return r}var LU=X5e($9e);function lh(e,r){var s=DU,l=new Map;if(e!=null&&e.plugins){for(var u=0,o=e.plugins;u<o.length;u++){var c=o[u],f=void 0,h=void 0;typeof c=="string"?f=c:(f=c[0],h=c[1]),l.has(f)||l.set(f,h||{})}q5e(l),s=J5e(l)}return new s(e,r,l)}var MU=new Map;function J5e(e){for(var r=[],s=0;s<kU.length;s++){var l=kU[s];e.has(l)&&r.push(l)}var u=r.join("|"),o=MU.get(u);if(!o){o=DU;for(var c=0;c<r.length;c++){var f=r[c];o=NU[f](o)}MU.set(u,o)}return o}var Y5e=Object.freeze({__proto__:null,parse:oh,parseExpression:z5e,tokTypes:LU}),uh={},BU;function FU(){return BU||(BU=1,Object.defineProperty(uh,"__esModule",{value:!0}),uh.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,uh.matchToToken=function(e){var r={type:"invalid",value:e[0],closed:void 0};return e[1]?(r.type="string",r.closed=!!(e[3]||e[4])):e[5]?r.type="comment":e[6]?(r.type="comment",r.closed=!!e[7]):e[8]?r.type="regex":e[9]?r.type="number":e[10]?r.type="name":e[11]?r.type="punctuator":e[12]&&(r.type="whitespace"),r}),uh}function Q5e(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var $U=(Q5e(er.env.BABEL_8_BREAKING),FU()),EE={exports:{}},Ha=String,qU=function(){return{isColorSupported:!1,reset:Ha,bold:Ha,dim:Ha,italic:Ha,underline:Ha,inverse:Ha,hidden:Ha,strikethrough:Ha,black:Ha,red:Ha,green:Ha,yellow:Ha,blue:Ha,magenta:Ha,cyan:Ha,white:Ha,gray:Ha,bgBlack:Ha,bgRed:Ha,bgGreen:Ha,bgYellow:Ha,bgBlue:Ha,bgMagenta:Ha,bgCyan:Ha,bgWhite:Ha}};EE.exports=qU();var y1=EE.exports.createColors=qU,UU=EE.exports,VU=typeof er=="object"&&(er.env.FORCE_COLOR==="0"||er.env.FORCE_COLOR==="false")?y1(!1):UU,WU=function(r,s){return function(l){return r(s(l))}},Z5e=new Set(["as","async","from","get","of","set"]);function eSe(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:WU(WU(e.white,e.bgRed),e.bold)}}var tSe=/\r\n|[\n\r\u2028\u2029]/,rSe=/^[()[\]{}]$/,GU;{var aSe=/^[a-z][\w-]*$/i,nSe=function(r,s,l){if(r.type==="name"){if(kg(r.value)||Ng(r.value,!0)||Z5e.has(r.value))return"keyword";if(aSe.test(r.value)&&(l[s-1]==="<"||l.slice(s-2,s)==="</"))return"jsxIdentifier";if(r.value[0]!==r.value[0].toLowerCase())return"capitalized"}return r.type==="punctuator"&&rSe.test(r.value)?"bracket":r.type==="invalid"&&(r.value==="@"||r.value==="#")?"punctuator":r.type};GU=re().mark(function e(r){var s,l;return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(!(s=$U.default.exec(r))){o.next=6;break}return l=$U.matchToToken(s),o.next=4,{type:nSe(l,s.index,r),value:l.value};case 4:o.next=0;break;case 6:case"end":return o.stop()}},e)})}function sSe(e,r){for(var s="",l=function(){var f=o.value,h=f.type,m=f.value,g=e[h];g?s+=m.split(tSe).map(function(x){return g(x)}).join(` +`):s+=m},u=C(GU(r)),o;!(o=u()).done;)l();return s}function KU(e){return VU.isColorSupported||e.forceColor}var SE=void 0;function iSe(e){if(e){var r;return(r=SE)!=null||(SE=y1(!0)),SE}return VU}function oSe(e,r){if(r===void 0&&(r={}),e!==""&&KU(r)){var s=eSe(iSe(r.forceColor));return sSe(s,e)}else return e}var lSe=typeof er=="object"&&(er.env.FORCE_COLOR==="0"||er.env.FORCE_COLOR==="false")?y1(!1):UU,HU=function(r,s){return function(l){return r(s(l))}},TE=void 0;function uSe(e){if(e){var r;return(r=TE)!=null||(TE=y1(!0)),TE}return lSe}function cSe(e){return{gutter:e.gray,marker:HU(e.red,e.bold),message:HU(e.red,e.bold)}}var zU=/\r\n|[\n\r\u2028\u2029]/;function dSe(e,r,s){var l=Object.assign({column:0,line:-1},e.start),u=Object.assign({},l,e.end),o=s||{},c=o.linesAbove,f=c===void 0?2:c,h=o.linesBelow,m=h===void 0?3:h,g=l.line,x=l.column,R=u.line,w=u.column,T=Math.max(g-(f+1),0),I=Math.min(r.length,R+m);g===-1&&(T=0),R===-1&&(I=r.length);var P=R-g,O={};if(P)for(var j=0;j<=P;j++){var D=j+g;if(!x)O[D]=!0;else if(j===0){var k=r[D-1].length;O[D]=[x,k-x+1]}else if(j===P)O[D]=[0,w];else{var B=r[D-j].length;O[D]=[0,B]}}else x===w?x?O[g]=[x,0]:O[g]=!0:O[g]=[x,w-x];return{start:T,end:I,markerLines:O}}function g1(e,r,s){s===void 0&&(s={});var l=(s.highlightCode||s.forceColor)&&KU(s),u=uSe(s.forceColor),o=cSe(u),c=function(O,j){return l?O(j):j},f=e.split(zU),h=dSe(r,f,s),m=h.start,g=h.end,x=h.markerLines,R=r.start&&typeof r.start.column=="number",w=String(g).length,T=l?oSe(e,s):e,I=T.split(zU,g).slice(m,g).map(function(P,O){var j=m+1+O,D=(" "+j).slice(-w),k=" "+D+" |",B=x[j],F=!x[j+1];if(B){var L="";if(Array.isArray(B)){var V=P.slice(0,Math.max(B[0]-1,0)).replace(/[^\t]/g," "),H=B[1]||1;L=[` + `,c(o.gutter,k.replace(/\d/g," "))," ",V,c(o.marker,"^").repeat(H)].join(""),F&&s.message&&(L+=" "+c(o.message,s.message))}return[c(o.marker,">"),c(o.gutter,k),P.length>0?" "+P:"",L].join("")}else return" "+c(o.gutter,k)+(P.length>0?" "+P:"")}).join(` +`);return s.message&&!R&&(I=""+" ".repeat(w+1)+s.message+` +`+I),l?u.reset(I):I}var pSe=ct,fSe=Ea,hSe=Cs,mSe=Dt,ySe=Is,gSe=Qr,v1=xg,vSe=ui,XU=nt,bSe=Q8,xSe=eE,RSe=/^[_$A-Z0-9]+$/;function JU(e,r,s){var l=s.placeholderWhitelist,u=s.placeholderPattern,o=s.preserveComments,c=s.syntacticPlaceholders,f=TSe(r,s.parser,c);bSe(f,{preserveComments:o}),e.validate(f);var h={syntactic:{placeholders:[],placeholderNames:new Set},legacy:{placeholders:[],placeholderNames:new Set},placeholderWhitelist:l,placeholderPattern:u,syntacticPlaceholders:c};return xSe(f,ESe,h),Object.assign({ast:f},h.syntactic.placeholders.length?h.syntactic:h.legacy)}function ESe(e,r,s){var l,u,o=s.syntactic.placeholders.length>0;if(v1(e)){if(s.syntacticPlaceholders===!1)throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");u=e.name.name,o=!0}else{if(o||s.syntacticPlaceholders)return;if(mSe(e)||ySe(e))u=e.name;else if(XU(e))u=e.value;else return}if(o&&(s.placeholderPattern!=null||s.placeholderWhitelist!=null))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");if(!(!o&&(s.placeholderPattern===!1||!(s.placeholderPattern||RSe).test(u))&&!((l=s.placeholderWhitelist)!=null&&l.has(u)))){r=r.slice();var c=r[r.length-1],f=c.node,h=c.key,m;XU(e)||v1(e,{expectedNode:"StringLiteral"})?m="string":gSe(f)&&h==="arguments"||pSe(f)&&h==="arguments"||hSe(f)&&h==="params"?m="param":fSe(f)&&!v1(e)?(m="statement",r=r.slice(0,-1)):vSe(e)&&v1(e)?m="statement":m="other";var g=o?s.syntactic:s.legacy,x=g.placeholders,R=g.placeholderNames;x.push({name:u,type:m,resolve:function(T){return SSe(T,r)},isDuplicate:R.has(u)}),R.add(u)}}function SSe(e,r){for(var s=e,l=0;l<r.length-1;l++){var u=r[l],o=u.key,c=u.index;c===void 0?s=s[o]:s=s[o][c]}var f=r[r.length-1],h=f.key,m=f.index;return{parent:s,key:h,index:m}}function TSe(e,r,s){var l=(r.plugins||[]).slice();s!==!1&&l.push("placeholders"),r=Object.assign({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,sourceType:"module"},r,{plugins:l});try{return oh(e,r)}catch(o){var u=o.loc;throw u&&(o.message+=` +`+g1(e,{start:u}),o.code="BABEL_TEMPLATE_PARSE_ERROR"),o}}var wSe=ea,wE=me,PSe=oR,PE=Xt,b1=Ne,YU=ui,ASe=nt,ISe=Jt,QU=$f;function ZU(e,r){var s=wE(e.ast);return r&&(e.placeholders.forEach(function(l){if(!hasOwnProperty.call(r,l.name)){var u=l.name;throw new Error('Error: No substitution given for "'+u+`". If this is not meant to be a + placeholder you may want to consider passing one of the following options to @babel/template: + - { placeholderPattern: false, placeholderWhitelist: new Set(['`+u+`'])} + - { placeholderPattern: /^`+u+"$/ }")}}),Object.keys(r).forEach(function(l){if(!e.placeholderNames.has(l))throw new Error('Unknown substitution "'+l+'" given')})),e.placeholders.slice().reverse().forEach(function(l){try{CSe(l,s,r&&r[l.name]||null)}catch(u){throw u.message='@babel/template placeholder "'+l.name+'": '+u.message,u}}),s}function CSe(e,r,s){e.isDuplicate&&(Array.isArray(s)?s=s.map(function(m){return wE(m)}):typeof s=="object"&&(s=wE(s)));var l=e.resolve(r),u=l.parent,o=l.key,c=l.index;if(e.type==="string"){if(typeof s=="string"&&(s=ISe(s)),!s||!ASe(s))throw new Error("Expected string substitution")}else if(e.type==="statement")c===void 0?s?Array.isArray(s)?s=wSe(s):typeof s=="string"?s=PE(b1(s)):YU(s)||(s=PE(s)):s=PSe():s&&!Array.isArray(s)&&(typeof s=="string"&&(s=b1(s)),YU(s)||(s=PE(s)));else if(e.type==="param"){if(typeof s=="string"&&(s=b1(s)),c===void 0)throw new Error("Assertion failure.")}else if(typeof s=="string"&&(s=b1(s)),Array.isArray(s))throw new Error("Cannot replace single expression with an array.");function f(m,g,x){var R=m[g];m[g]=x,R.type==="Identifier"&&(R.typeAnnotation&&(x.typeAnnotation=R.typeAnnotation),R.optional&&(x.optional=R.optional),R.decorators&&(x.decorators=R.decorators))}if(c===void 0)QU(u,o,s),f(u,o,s);else{var h=u[o].slice();e.type==="statement"||e.type==="param"?s==null?h.splice(c,1):Array.isArray(s)?h.splice.apply(h,[c,1].concat(fe(s))):f(h,c,s):f(h,c,s),QU(u,o,h),u[o]=h}}function eV(e,r,s){r=e.code(r);var l;return function(u){var o=oU(u);return l||(l=JU(e,r,s)),e.unwrap(ZU(l,o))}}function tV(e,r,s){var l=jSe(e,r,s),u=l.metadata,o=l.names;return function(c){var f={};return c.forEach(function(h,m){f[o[m]]=h}),function(h){var m=oU(h);return m&&Object.keys(m).forEach(function(g){if(hasOwnProperty.call(f,g))throw new Error("Unexpected replacement overlap.")}),e.unwrap(ZU(u,m?Object.assign(m,f):f))}}}function jSe(e,r,s){var l="BABEL_TPL$",u=r.join("");do l="$$"+l;while(u.includes(l));var o=OSe(r,l),c=o.names,f=o.code,h=JU(e,e.code(f),{parser:s.parser,placeholderWhitelist:new Set(c.concat(s.placeholderWhitelist?Array.from(s.placeholderWhitelist):[])),placeholderPattern:s.placeholderPattern,preserveComments:s.preserveComments,syntacticPlaceholders:s.syntacticPlaceholders});return{metadata:h,names:c}}function OSe(e,r){for(var s=[],l=e[0],u=1;u<e.length;u++){var o=""+r+(u-1);s.push(o),l+=o+e[u]}return{names:s,code:l}}var rV=Qf({placeholderPattern:!1});function qd(e,r){var s=new WeakMap,l=new WeakMap,u=r||Qf(null);return Object.assign(function(o){for(var c=arguments.length,f=new Array(c>1?c-1:0),h=1;h<c;h++)f[h-1]=arguments[h];if(typeof o=="string"){if(f.length>1)throw new Error("Unexpected extra params.");return aV(eV(e,o,Yf(u,Qf(f[0]))))}else if(Array.isArray(o)){var m=s.get(o);return m||(m=tV(e,o,u),s.set(o,m)),aV(m(f))}else if(typeof o=="object"&&o){if(f.length>0)throw new Error("Unexpected extra params.");return qd(e,Yf(u,Qf(o)))}throw new Error("Unexpected template param "+typeof o)},{ast:function(c){for(var f=arguments.length,h=new Array(f>1?f-1:0),m=1;m<f;m++)h[m-1]=arguments[m];if(typeof c=="string"){if(h.length>1)throw new Error("Unexpected extra params.");return eV(e,c,Yf(Yf(u,Qf(h[0])),rV))()}else if(Array.isArray(c)){var g=l.get(c);return g||(g=tV(e,c,Yf(u,rV)),l.set(c,g)),g(h)()}throw new Error("Unexpected template param "+typeof c)}})}function aV(e){var r="";try{throw new Error}catch(s){s.stack&&(r=s.stack.split(` +`).slice(3).join(` +`))}return function(s){try{return e(s)}catch(l){throw l.stack+=` + ============= +`+r,l}}}var x1=qd(w9e),nV=qd(A9e),sV=qd(P9e),iV=qd(iU),oV=qd(I9e),xt=Object.assign(x1.bind(void 0),{smart:x1,statement:nV,statements:sV,expression:iV,program:oV,ast:x1.ast}),_Se=Object.freeze({__proto__:null,default:xt,expression:iV,program:oV,smart:x1,statement:nV,statements:sV});function _t(e,r,s){return Object.freeze({minVersion:e,ast:function(){return xt.program.ast(r,{preserveComments:!0})},metadata:s})}var AE={__proto__:null,OverloadYield:_t("7.18.14","function _OverloadYield(e,d){this.v=e,this.k=d}",{globals:[],locals:{_OverloadYield:["body.0.id"]},exportBindingAssignments:[],exportName:"_OverloadYield",dependencies:{}}),applyDecoratedDescriptor:_t("7.0.0-beta.0",'function _applyDecoratedDescriptor(i,e,r,n,l){var a={};return Object.keys(n).forEach((function(i){a[i]=n[i]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=r.slice().reverse().reduce((function(r,n){return n(i,e,r)||r}),a),l&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(l):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(i,e,a),null):a}',{globals:["Object"],locals:{_applyDecoratedDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_applyDecoratedDescriptor",dependencies:{}}),applyDecs2311:_t("7.24.0",'function applyDecs2311(e,t,n,r,o,i){var a,c,u,s,f,l,p,d=Symbol.metadata||Symbol.for("Symbol.metadata"),m=Object.defineProperty,h=Object.create,y=[h(null),h(null)],v=t.length;function g(t,n,r){return function(o,i){n&&(i=o,o=e);for(var a=0;a<t.length;a++)i=t[a].apply(o,r?[i]:[]);return r?i:o}}function b(e,t,n,r){if("function"!=typeof e&&(r||void 0!==e))throw new TypeError(t+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return e}function applyDec(e,t,n,r,o,i,u,s,f,l,p){function d(e){if(!p(e))throw new TypeError("Attempted to access private element on non-instance")}var h=[].concat(t[0]),v=t[3],w=!u,D=1===o,S=3===o,j=4===o,E=2===o;function I(t,n,r){return function(o,i){return n&&(i=o,o=e),r&&r(o),P[t].call(o,i)}}if(!w){var P={},k=[],F=S?"get":j||D?"set":"value";if(f?(l||D?P={get:setFunctionName((function(){return v(this)}),r,"get"),set:function(e){t[4](this,e)}}:P[F]=v,l||setFunctionName(P[F],r,E?"":F)):l||(P=Object.getOwnPropertyDescriptor(e,r)),!l&&!f){if((c=y[+s][r])&&7!=(c^o))throw Error("Decorating two elements with the same name ("+P[F].name+") is not supported yet");y[+s][r]=o<3?1:o}}for(var N=e,O=h.length-1;O>=0;O-=n?2:1){var T=b(h[O],"A decorator","be",!0),z=n?h[O-1]:void 0,A={},H={kind:["field","accessor","method","getter","setter","class"][o],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");b(t,"An initializer","be",!0),i.push(t)}.bind(null,A)};if(w)c=T.call(z,N,H),A.v=1,b(c,"class decorators","return")&&(N=c);else if(H.static=s,H.private=f,c=H.access={has:f?p.bind():function(e){return r in e}},j||(c.get=f?E?function(e){return d(e),P.value}:I("get",0,d):function(e){return e[r]}),E||S||(c.set=f?I("set",0,d):function(e,t){e[r]=t}),N=T.call(z,D?{get:P.get,set:P.set}:P[F],H),A.v=1,D){if("object"==typeof N&&N)(c=b(N.get,"accessor.get"))&&(P.get=c),(c=b(N.set,"accessor.set"))&&(P.set=c),(c=b(N.init,"accessor.init"))&&k.unshift(c);else if(void 0!==N)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(N,(l?"field":"method")+" decorators","return")&&(l?k.unshift(N):P[F]=N)}return o<2&&u.push(g(k,s,1),g(i,s,0)),l||w||(f?D?u.splice(-1,0,I("get",s),I("set",s)):u.push(E?P[F]:b.call.bind(P[F])):m(e,r,P)),N}function w(e){return m(e,d,{configurable:!0,enumerable:!0,value:a})}return void 0!==i&&(a=i[d]),a=h(null==a?null:a),f=[],l=function(e){e&&f.push(g(e))},p=function(t,r){for(var i=0;i<n.length;i++){var a=n[i],c=a[1],l=7&c;if((8&c)==t&&!l==r){var p=a[2],d=!!a[3],m=16&c;applyDec(t?e:e.prototype,a,m,d?"#"+p:toPropertyKey(p),l,l<2?[]:t?s=s||[]:u=u||[],f,!!t,d,r,t&&d?function(t){return checkInRHS(t)===e}:o)}}},p(8,0),p(0,0),p(8,1),p(0,1),l(u),l(s),c=f,v||w(e),{e:c,get c(){var n=[];return v&&[w(e=applyDec(e,[t],r,e.name,5,n)),g(n,1)]}}}',{globals:["Symbol","Object","TypeError","Error"],locals:{applyDecs2311:["body.0.id"]},exportBindingAssignments:[],exportName:"applyDecs2311",dependencies:{checkInRHS:["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.10.consequent.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.0.consequent.right.properties.0.value.callee","body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.1.right.callee"],toPropertyKey:["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.3.alternate.callee"]}}),arrayLikeToArray:_t("7.9.0","function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}",{globals:["Array"],locals:{_arrayLikeToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayLikeToArray",dependencies:{}}),arrayWithHoles:_t("7.0.0-beta.0","function _arrayWithHoles(r){if(Array.isArray(r))return r}",{globals:["Array"],locals:{_arrayWithHoles:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayWithHoles",dependencies:{}}),arrayWithoutHoles:_t("7.0.0-beta.0","function _arrayWithoutHoles(r){if(Array.isArray(r))return arrayLikeToArray(r)}",{globals:["Array"],locals:{_arrayWithoutHoles:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayWithoutHoles",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.argument.callee"]}}),assertClassBrand:_t("7.24.0",'function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}',{globals:["TypeError"],locals:{_assertClassBrand:["body.0.id"]},exportBindingAssignments:[],exportName:"_assertClassBrand",dependencies:{}}),assertThisInitialized:_t("7.0.0-beta.0",`function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}`,{globals:["ReferenceError"],locals:{_assertThisInitialized:["body.0.id"]},exportBindingAssignments:[],exportName:"_assertThisInitialized",dependencies:{}}),asyncGeneratorDelegate:_t("7.0.0-beta.0",'function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}',{globals:["Promise","Symbol"],locals:{_asyncGeneratorDelegate:["body.0.id"]},exportBindingAssignments:[],exportName:"_asyncGeneratorDelegate",dependencies:{OverloadYield:["body.0.body.body.1.body.body.0.argument.expressions.2.properties.1.value.callee"]}}),asyncIterator:_t("7.15.9",'function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',{globals:["Symbol","TypeError","Object","Promise"],locals:{_asyncIterator:["body.0.id"],AsyncFromSyncIterator:["body.1.id","body.0.body.body.1.body.body.1.consequent.argument.callee","body.1.body.body.1.argument.expressions.1.left.object","body.1.body.body.1.argument.expressions.2.callee","body.1.body.body.1.argument.expressions.0.left"]},exportBindingAssignments:[],exportName:"_asyncIterator",dependencies:{}}),asyncToGenerator:_t("7.0.0-beta.0",'function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise((function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)}))}}',{globals:["Promise"],locals:{asyncGeneratorStep:["body.0.id","body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.1.body.body.0.expression.callee","body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.2.body.body.0.expression.callee"],_asyncToGenerator:["body.1.id"]},exportBindingAssignments:[],exportName:"_asyncToGenerator",dependencies:{}}),awaitAsyncGenerator:_t("7.0.0-beta.0","function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}",{globals:[],locals:{_awaitAsyncGenerator:["body.0.id"]},exportBindingAssignments:[],exportName:"_awaitAsyncGenerator",dependencies:{OverloadYield:["body.0.body.body.0.argument.callee"]}}),callSuper:_t("7.23.8","function _callSuper(t,o,e){return o=getPrototypeOf(o),possibleConstructorReturn(t,isNativeReflectConstruct()?Reflect.construct(o,e||[],getPrototypeOf(t).constructor):o.apply(t,e))}",{globals:["Reflect"],locals:{_callSuper:["body.0.id"]},exportBindingAssignments:[],exportName:"_callSuper",dependencies:{getPrototypeOf:["body.0.body.body.0.argument.expressions.0.right.callee","body.0.body.body.0.argument.expressions.1.arguments.1.consequent.arguments.2.object.callee"],isNativeReflectConstruct:["body.0.body.body.0.argument.expressions.1.arguments.1.test.callee"],possibleConstructorReturn:["body.0.body.body.0.argument.expressions.1.callee"]}}),checkInRHS:_t("7.20.5",`function _checkInRHS(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e}`,{globals:["Object","TypeError"],locals:{_checkInRHS:["body.0.id"]},exportBindingAssignments:[],exportName:"_checkInRHS",dependencies:{}}),checkPrivateRedeclaration:_t("7.14.1",'function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}',{globals:["TypeError"],locals:{_checkPrivateRedeclaration:["body.0.id"]},exportBindingAssignments:[],exportName:"_checkPrivateRedeclaration",dependencies:{}}),classCallCheck:_t("7.0.0-beta.0",'function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}',{globals:["TypeError"],locals:{_classCallCheck:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCallCheck",dependencies:{}}),classNameTDZError:_t("7.0.0-beta.0",`function _classNameTDZError(e){throw new ReferenceError('Class "'+e+'" cannot be referenced in computed property keys.')}`,{globals:["ReferenceError"],locals:{_classNameTDZError:["body.0.id"]},exportBindingAssignments:[],exportName:"_classNameTDZError",dependencies:{}}),classPrivateFieldGet2:_t("7.24.0","function _classPrivateFieldGet2(s,a){return s.get(assertClassBrand(s,a))}",{globals:[],locals:{_classPrivateFieldGet2:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldGet2",dependencies:{assertClassBrand:["body.0.body.body.0.argument.arguments.0.callee"]}}),classPrivateFieldInitSpec:_t("7.14.1","function _classPrivateFieldInitSpec(e,t,a){checkPrivateRedeclaration(e,t),t.set(e,a)}",{globals:[],locals:{_classPrivateFieldInitSpec:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldInitSpec",dependencies:{checkPrivateRedeclaration:["body.0.body.body.0.expression.expressions.0.callee"]}}),classPrivateFieldLooseBase:_t("7.0.0-beta.0",'function _classPrivateFieldBase(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}',{globals:["TypeError"],locals:{_classPrivateFieldBase:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldBase",dependencies:{}}),classPrivateFieldLooseKey:_t("7.0.0-beta.0",'var id=0;function _classPrivateFieldKey(e){return"__private_"+id+++"_"+e}',{globals:[],locals:{id:["body.0.declarations.0.id","body.1.body.body.0.argument.left.left.right.argument","body.1.body.body.0.argument.left.left.right.argument"],_classPrivateFieldKey:["body.1.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldKey",dependencies:{}}),classPrivateFieldSet2:_t("7.24.0","function _classPrivateFieldSet2(s,a,r){return s.set(assertClassBrand(s,a),r),r}",{globals:[],locals:{_classPrivateFieldSet2:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldSet2",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]}}),classPrivateGetter:_t("7.24.0","function _classPrivateGetter(s,r,a){return a(assertClassBrand(s,r))}",{globals:[],locals:{_classPrivateGetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateGetter",dependencies:{assertClassBrand:["body.0.body.body.0.argument.arguments.0.callee"]}}),classPrivateMethodInitSpec:_t("7.14.1","function _classPrivateMethodInitSpec(e,a){checkPrivateRedeclaration(e,a),a.add(e)}",{globals:[],locals:{_classPrivateMethodInitSpec:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodInitSpec",dependencies:{checkPrivateRedeclaration:["body.0.body.body.0.expression.expressions.0.callee"]}}),classPrivateSetter:_t("7.24.0","function _classPrivateSetter(s,r,a,t){return r(assertClassBrand(s,a),t),t}",{globals:[],locals:{_classPrivateSetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateSetter",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]}}),classStaticPrivateMethodGet:_t("7.3.2","function _classStaticPrivateMethodGet(s,a,t){return assertClassBrand(a,s),t}",{globals:[],locals:{_classStaticPrivateMethodGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateMethodGet",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"]}}),construct:_t("7.0.0-beta.0","function _construct(t,e,r){if(isNativeReflectConstruct())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,e);var p=new(t.bind.apply(t,o));return r&&setPrototypeOf(p,r.prototype),p}",{globals:["Reflect"],locals:{_construct:["body.0.id"]},exportBindingAssignments:[],exportName:"_construct",dependencies:{isNativeReflectConstruct:["body.0.body.body.0.test.callee"],setPrototypeOf:["body.0.body.body.4.argument.expressions.0.right.callee"]}}),createClass:_t("7.0.0-beta.0",'function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}',{globals:["Object"],locals:{_defineProperties:["body.0.id","body.1.body.body.0.argument.expressions.0.right.callee","body.1.body.body.0.argument.expressions.1.right.callee"],_createClass:["body.1.id"]},exportBindingAssignments:[],exportName:"_createClass",dependencies:{toPropertyKey:["body.0.body.body.0.body.body.1.expression.expressions.3.arguments.1.callee"]}}),createForOfIteratorHelper:_t("7.9.0",'function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,F=function(){};return{s:F,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}',{globals:["Symbol","Array","TypeError"],locals:{_createForOfIteratorHelper:["body.0.id"]},exportBindingAssignments:[],exportName:"_createForOfIteratorHelper",dependencies:{unsupportedIterableToArray:["body.0.body.body.1.consequent.body.0.test.left.right.right.callee"]}}),createForOfIteratorHelperLoose:_t("7.9.0",'function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["Symbol","Array","TypeError"],locals:{_createForOfIteratorHelperLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_createForOfIteratorHelperLoose",dependencies:{unsupportedIterableToArray:["body.0.body.body.2.test.left.right.right.callee"]}}),createSuper:_t("7.9.0","function _createSuper(t){var r=isNativeReflectConstruct();return function(){var e,o=getPrototypeOf(t);if(r){var s=getPrototypeOf(this).constructor;e=Reflect.construct(o,arguments,s)}else e=o.apply(this,arguments);return possibleConstructorReturn(this,e)}}",{globals:["Reflect"],locals:{_createSuper:["body.0.id"]},exportBindingAssignments:[],exportName:"_createSuper",dependencies:{getPrototypeOf:["body.0.body.body.1.argument.body.body.0.declarations.1.init.callee","body.0.body.body.1.argument.body.body.1.consequent.body.0.declarations.0.init.object.callee"],isNativeReflectConstruct:["body.0.body.body.0.declarations.0.init.callee"],possibleConstructorReturn:["body.0.body.body.1.argument.body.body.2.argument.callee"]}}),decorate:_t("7.1.5",`function _decorate(e,r,t,i){var o=_getDecoratorsApi();if(i)for(var n=0;n<i.length;n++)o=i[n](o);var s=r((function(e){o.initializeInstanceElements(e,a.elements)}),t),a=o.decorateClass(_coalesceClassElements(s.d.map(_createElementDescriptor)),e);return o.initializeClassElements(s.F,a.elements),o.runClassFinishers(s.F,a.finishers)}function _getDecoratorsApi(){_getDecoratorsApi=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,r){["method","field"].forEach((function(t){r.forEach((function(r){r.kind===t&&"own"===r.placement&&this.defineClassElement(e,r)}),this)}),this)},initializeClassElements:function(e,r){var t=e.prototype;["method","field"].forEach((function(i){r.forEach((function(r){var o=r.placement;if(r.kind===i&&("static"===o||"prototype"===o)){var n="static"===o?e:t;this.defineClassElement(n,r)}}),this)}),this)},defineClassElement:function(e,r){var t=r.descriptor;if("field"===r.kind){var i=r.initializer;t={enumerable:t.enumerable,writable:t.writable,configurable:t.configurable,value:void 0===i?void 0:i.call(e)}}Object.defineProperty(e,r.key,t)},decorateClass:function(e,r){var t=[],i=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!_hasDecorators(e))return t.push(e);var r=this.decorateElement(e,o);t.push(r.element),t.push.apply(t,r.extras),i.push.apply(i,r.finishers)}),this),!r)return{elements:t,finishers:i};var n=this.decorateConstructor(t,r);return i.push.apply(i,n.finishers),n.finishers=i,n},addElementPlacement:function(e,r,t){var i=r[e.placement];if(!t&&-1!==i.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");i.push(e.key)},decorateElement:function(e,r){for(var t=[],i=[],o=e.decorators,n=o.length-1;n>=0;n--){var s=r[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,o[n])(a)||a);e=l.element,this.addElementPlacement(e,r),l.finisher&&i.push(l.finisher);var c=l.extras;if(c){for(var p=0;p<c.length;p++)this.addElementPlacement(c[p],r);t.push.apply(t,c)}}return{element:e,finishers:i,extras:t}},decorateConstructor:function(e,r){for(var t=[],i=r.length-1;i>=0;i--){var o=this.fromClassDescriptor(e),n=this.toClassDescriptor((0,r[i])(o)||o);if(void 0!==n.finisher&&t.push(n.finisher),void 0!==n.elements){e=n.elements;for(var s=0;s<e.length-1;s++)for(var a=s+1;a<e.length;a++)if(e[s].key===e[a].key&&e[s].placement===e[a].placement)throw new TypeError("Duplicated element ("+e[s].key+")")}}return{elements:e,finishers:t}},fromElementDescriptor:function(e){var r={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(r.initializer=e.initializer),r},toElementDescriptors:function(e){if(void 0!==e)return toArray(e).map((function(e){var r=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),r}),this)},toElementDescriptor:function(e){var r=e.kind+"";if("method"!==r&&"field"!==r)throw new TypeError('An element descriptor\\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+r+'"');var t=toPropertyKey(e.key),i=e.placement+"";if("static"!==i&&"prototype"!==i&&"own"!==i)throw new TypeError('An element descriptor\\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+i+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var n={kind:r,key:t,placement:i,descriptor:Object.assign({},o)};return"field"!==r?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),n.initializer=e.initializer),n},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:_optionalCallableProperty(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var r={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),r},toClassDescriptor:function(e){var r=e.kind+"";if("class"!==r)throw new TypeError('A class descriptor\\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+r+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var t=_optionalCallableProperty(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:t}},runClassFinishers:function(e,r){for(var t=0;t<r.length;t++){var i=(0,r[t])(e);if(void 0!==i){if("function"!=typeof i)throw new TypeError("Finishers must return a constructor.");e=i}}return e},disallowProperty:function(e,r,t){if(void 0!==e[r])throw new TypeError(t+" can't have a ."+r+" property.")}};return e}function _createElementDescriptor(e){var r,t=toPropertyKey(e.key);"method"===e.kind?r={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?r={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?r={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(r={configurable:!0,writable:!0,enumerable:!0});var i={kind:"field"===e.kind?"field":"method",key:t,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:r};return e.decorators&&(i.decorators=e.decorators),"field"===e.kind&&(i.initializer=e.value),i}function _coalesceGetterSetter(e,r){void 0!==e.descriptor.get?r.descriptor.get=e.descriptor.get:r.descriptor.set=e.descriptor.set}function _coalesceClassElements(e){for(var r=[],isSameElement=function(e){return"method"===e.kind&&e.key===o.key&&e.placement===o.placement},t=0;t<e.length;t++){var i,o=e[t];if("method"===o.kind&&(i=r.find(isSameElement)))if(_isDataDescriptor(o.descriptor)||_isDataDescriptor(i.descriptor)){if(_hasDecorators(o)||_hasDecorators(i))throw new ReferenceError("Duplicated methods ("+o.key+") can't be decorated.");i.descriptor=o.descriptor}else{if(_hasDecorators(o)){if(_hasDecorators(i))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+o.key+").");i.decorators=o.decorators}_coalesceGetterSetter(o,i)}else r.push(o)}return r}function _hasDecorators(e){return e.decorators&&e.decorators.length}function _isDataDescriptor(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function _optionalCallableProperty(e,r){var t=e[r];if(void 0!==t&&"function"!=typeof t)throw new TypeError("Expected '"+r+"' to be a function");return t}`,{globals:["Object","TypeError","Symbol","ReferenceError"],locals:{_decorate:["body.0.id"],_getDecoratorsApi:["body.1.id","body.0.body.body.0.declarations.0.init.callee","body.1.body.body.0.expression.left"],_createElementDescriptor:["body.2.id","body.0.body.body.2.declarations.1.init.arguments.0.arguments.0.arguments.0"],_coalesceGetterSetter:["body.3.id","body.4.body.body.0.body.body.1.consequent.alternate.body.1.expression.callee"],_coalesceClassElements:["body.4.id","body.0.body.body.2.declarations.1.init.arguments.0.callee"],_hasDecorators:["body.5.id","body.1.body.body.1.declarations.0.init.properties.4.value.body.body.1.test.expressions.1.arguments.0.body.body.0.test.argument.callee","body.4.body.body.0.body.body.1.consequent.consequent.body.0.test.left.callee","body.4.body.body.0.body.body.1.consequent.consequent.body.0.test.right.callee","body.4.body.body.0.body.body.1.consequent.alternate.body.0.test.callee","body.4.body.body.0.body.body.1.consequent.alternate.body.0.consequent.body.0.test.callee"],_isDataDescriptor:["body.6.id","body.4.body.body.0.body.body.1.consequent.test.left.callee","body.4.body.body.0.body.body.1.consequent.test.right.callee"],_optionalCallableProperty:["body.7.id","body.1.body.body.1.declarations.0.init.properties.11.value.body.body.0.argument.properties.1.value.callee","body.1.body.body.1.declarations.0.init.properties.13.value.body.body.3.declarations.0.init.callee"]},exportBindingAssignments:[],exportName:"_decorate",dependencies:{toArray:["body.1.body.body.1.declarations.0.init.properties.9.value.body.body.0.consequent.argument.callee.object.callee"],toPropertyKey:["body.1.body.body.1.declarations.0.init.properties.10.value.body.body.2.declarations.0.init.callee","body.2.body.body.0.declarations.1.init.callee"]}}),defaults:_t("7.0.0-beta.0","function _defaults(e,r){for(var t=Object.getOwnPropertyNames(r),o=0;o<t.length;o++){var n=t[o],a=Object.getOwnPropertyDescriptor(r,n);a&&a.configurable&&void 0===e[n]&&Object.defineProperty(e,n,a)}return e}",{globals:["Object"],locals:{_defaults:["body.0.id"]},exportBindingAssignments:[],exportName:"_defaults",dependencies:{}}),defineAccessor:_t("7.20.7","function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}",{globals:["Object"],locals:{_defineAccessor:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineAccessor",dependencies:{}}),defineProperty:_t("7.0.0-beta.0","function _defineProperty(e,r,t){return(r=toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}",{globals:["Object"],locals:{_defineProperty:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineProperty",dependencies:{toPropertyKey:["body.0.body.body.0.argument.expressions.0.test.left.right.callee"]}}),extends:_t("7.0.0-beta.0","function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}",{globals:["Object"],locals:{_extends:["body.0.id","body.0.body.body.0.argument.expressions.1.callee.object","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_extends",dependencies:{}}),get:_t("7.0.0-beta.0",'function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_get.apply(null,arguments)}',{globals:["Reflect","Object"],locals:{_get:["body.0.id","body.0.body.body.0.argument.expressions.1.callee.object","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_get",dependencies:{superPropBase:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.0.init.callee"]}}),getPrototypeOf:_t("7.0.0-beta.0","function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}",{globals:["Object"],locals:{_getPrototypeOf:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_getPrototypeOf",dependencies:{}}),identity:_t("7.17.0","function _identity(t){return t}",{globals:[],locals:{_identity:["body.0.id"]},exportBindingAssignments:[],exportName:"_identity",dependencies:{}}),importDeferProxy:_t("7.23.0","function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}",{globals:["Proxy","Reflect"],locals:{_importDeferProxy:["body.0.id"]},exportBindingAssignments:[],exportName:"_importDeferProxy",dependencies:{}}),inherits:_t("7.0.0-beta.0",'function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&setPrototypeOf(t,e)}',{globals:["TypeError","Object"],locals:{_inherits:["body.0.id"]},exportBindingAssignments:[],exportName:"_inherits",dependencies:{setPrototypeOf:["body.0.body.body.1.expression.expressions.2.right.callee"]}}),inheritsLoose:_t("7.0.0-beta.0","function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,setPrototypeOf(t,o)}",{globals:["Object"],locals:{_inheritsLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_inheritsLoose",dependencies:{setPrototypeOf:["body.0.body.body.0.expression.expressions.2.callee"]}}),initializerDefineProperty:_t("7.0.0-beta.0","function _initializerDefineProperty(e,i,r,l){r&&Object.defineProperty(e,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}",{globals:["Object"],locals:{_initializerDefineProperty:["body.0.id"]},exportBindingAssignments:[],exportName:"_initializerDefineProperty",dependencies:{}}),initializerWarningHelper:_t("7.0.0-beta.0",'function _initializerWarningHelper(r,e){throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.")}',{globals:["Error"],locals:{_initializerWarningHelper:["body.0.id"]},exportBindingAssignments:[],exportName:"_initializerWarningHelper",dependencies:{}}),instanceof:_t("7.0.0-beta.0",'function _instanceof(n,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](n):n instanceof e}',{globals:["Symbol"],locals:{_instanceof:["body.0.id"]},exportBindingAssignments:[],exportName:"_instanceof",dependencies:{}}),interopRequireDefault:_t("7.0.0-beta.0","function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}",{globals:[],locals:{_interopRequireDefault:["body.0.id"]},exportBindingAssignments:[],exportName:"_interopRequireDefault",dependencies:{}}),interopRequireWildcard:_t("7.14.0",'function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}',{globals:["WeakMap","Object"],locals:{_getRequireWildcardCache:["body.0.id","body.1.body.body.2.declarations.0.init.callee","body.0.body.body.2.argument.callee.left"],_interopRequireWildcard:["body.1.id"]},exportBindingAssignments:[],exportName:"_interopRequireWildcard",dependencies:{}}),isNativeFunction:_t("7.0.0-beta.0",'function _isNativeFunction(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(n){return"function"==typeof t}}',{globals:["Function"],locals:{_isNativeFunction:["body.0.id"]},exportBindingAssignments:[],exportName:"_isNativeFunction",dependencies:{}}),isNativeReflectConstruct:_t("7.9.0","function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}",{globals:["Boolean","Reflect"],locals:{_isNativeReflectConstruct:["body.0.id","body.0.body.body.1.argument.callee.left"]},exportBindingAssignments:["body.0.body.body.1.argument.callee"],exportName:"_isNativeReflectConstruct",dependencies:{}}),iterableToArray:_t("7.0.0-beta.0",'function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}',{globals:["Symbol","Array"],locals:{_iterableToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_iterableToArray",dependencies:{}}),iterableToArrayLimit:_t("7.0.0-beta.0",'function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',{globals:["Symbol","Object"],locals:{_iterableToArrayLimit:["body.0.id"]},exportBindingAssignments:[],exportName:"_iterableToArrayLimit",dependencies:{}}),jsx:_t("7.0.0-beta.0",'var REACT_ELEMENT_TYPE;function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:""+E,ref:null,props:r,_owner:null}}',{globals:["Symbol","Array"],locals:{REACT_ELEMENT_TYPE:["body.0.declarations.0.id","body.1.body.body.0.expression.left","body.1.body.body.4.argument.properties.0.value","body.1.body.body.0.expression.right.left"],_createRawReactElement:["body.1.id"]},exportBindingAssignments:[],exportName:"_createRawReactElement",dependencies:{}}),maybeArrayLike:_t("7.9.0",'function _maybeArrayLike(r,a,e){if(a&&!Array.isArray(a)&&"number"==typeof a.length){var y=a.length;return arrayLikeToArray(a,void 0!==e&&e<y?e:y)}return r(a,e)}',{globals:["Array"],locals:{_maybeArrayLike:["body.0.id"]},exportBindingAssignments:[],exportName:"_maybeArrayLike",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.body.1.argument.callee"]}}),newArrowCheck:_t("7.0.0-beta.0",'function _newArrowCheck(n,r){if(n!==r)throw new TypeError("Cannot instantiate an arrow function")}',{globals:["TypeError"],locals:{_newArrowCheck:["body.0.id"]},exportBindingAssignments:[],exportName:"_newArrowCheck",dependencies:{}}),nonIterableRest:_t("7.0.0-beta.0",'function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["TypeError"],locals:{_nonIterableRest:["body.0.id"]},exportBindingAssignments:[],exportName:"_nonIterableRest",dependencies:{}}),nonIterableSpread:_t("7.0.0-beta.0",'function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["TypeError"],locals:{_nonIterableSpread:["body.0.id"]},exportBindingAssignments:[],exportName:"_nonIterableSpread",dependencies:{}}),nullishReceiverError:_t("7.22.6",'function _nullishReceiverError(r){throw new TypeError("Cannot set property of null or undefined.")}',{globals:["TypeError"],locals:{_nullishReceiverError:["body.0.id"]},exportBindingAssignments:[],exportName:"_nullishReceiverError",dependencies:{}}),objectDestructuringEmpty:_t("7.0.0-beta.0",'function _objectDestructuringEmpty(t){if(null==t)throw new TypeError("Cannot destructure "+t)}',{globals:["TypeError"],locals:{_objectDestructuringEmpty:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectDestructuringEmpty",dependencies:{}}),objectSpread2:_t("7.5.0","function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}",{globals:["Object"],locals:{ownKeys:["body.0.id","body.1.body.body.0.body.body.1.expression.consequent.callee.object.callee","body.1.body.body.0.body.body.1.expression.alternate.alternate.callee.object.callee"],_objectSpread2:["body.1.id"]},exportBindingAssignments:[],exportName:"_objectSpread2",dependencies:{defineProperty:["body.1.body.body.0.body.body.1.expression.consequent.arguments.0.body.body.0.expression.callee"]}}),objectWithoutProperties:_t("7.0.0-beta.0","function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)o=s[r],t.includes(o)||{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}",{globals:["Object"],locals:{_objectWithoutProperties:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectWithoutProperties",dependencies:{objectWithoutPropertiesLoose:["body.0.body.body.1.declarations.2.init.callee"]}}),objectWithoutPropertiesLoose:_t("7.0.0-beta.0","function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(e.includes(n))continue;t[n]=r[n]}return t}",{globals:[],locals:{_objectWithoutPropertiesLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectWithoutPropertiesLoose",dependencies:{}}),possibleConstructorReturn:_t("7.0.0-beta.0",'function _possibleConstructorReturn(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return assertThisInitialized(t)}',{globals:["TypeError"],locals:{_possibleConstructorReturn:["body.0.id"]},exportBindingAssignments:[],exportName:"_possibleConstructorReturn",dependencies:{assertThisInitialized:["body.0.body.body.2.argument.callee"]}}),readOnlyError:_t("7.0.0-beta.0",`function _readOnlyError(r){throw new TypeError('"'+r+'" is read-only')}`,{globals:["TypeError"],locals:{_readOnlyError:["body.0.id"]},exportBindingAssignments:[],exportName:"_readOnlyError",dependencies:{}}),regeneratorRuntime:_t("7.18.0",`function _regeneratorRuntime(){"use strict"; +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){invoke("next",t,i,a)}),(function(t){invoke("throw",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke("throw",t,i,a)}))}a(c.arg)}var r;o(this,"_invoke",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+" is not iterable")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,(function(){return this})),define(g,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}`,{globals:["Object","Symbol","Error","TypeError","isNaN","Promise"],locals:{_regeneratorRuntime:["body.0.id","body.0.body.body.0.expression.left"]},exportBindingAssignments:["body.0.body.body.0.expression"],exportName:"_regeneratorRuntime",dependencies:{}}),set:_t("7.0.0-beta.0",'function set(e,r,t,o){return set="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(e,r,t,o){var f,i=superPropBase(e,r);if(i){if((f=Object.getOwnPropertyDescriptor(i,r)).set)return f.set.call(o,t),!0;if(!f.writable)return!1}if(f=Object.getOwnPropertyDescriptor(o,r)){if(!f.writable)return!1;f.value=t,Object.defineProperty(o,r,f)}else defineProperty(o,r,t);return!0},set(e,r,t,o)}function _set(e,r,t,o,f){if(!set(e,r,t,o||e)&&f)throw new TypeError("failed to set property");return t}',{globals:["Reflect","Object","TypeError"],locals:{set:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.1.body.body.0.test.left.argument.callee","body.0.body.body.0.argument.expressions.0.left"],_set:["body.1.id"]},exportBindingAssignments:[],exportName:"_set",dependencies:{superPropBase:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.1.init.callee"],defineProperty:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.2.alternate.expression.callee"]}}),setFunctionName:_t("7.23.6",'function setFunctionName(e,t,n){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}',{globals:["Object"],locals:{setFunctionName:["body.0.id"]},exportBindingAssignments:[],exportName:"setFunctionName",dependencies:{}}),setPrototypeOf:_t("7.0.0-beta.0","function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}",{globals:["Object"],locals:{_setPrototypeOf:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_setPrototypeOf",dependencies:{}}),skipFirstGeneratorNext:_t("7.0.0-beta.0","function _skipFirstGeneratorNext(t){return function(){var r=t.apply(this,arguments);return r.next(),r}}",{globals:[],locals:{_skipFirstGeneratorNext:["body.0.id"]},exportBindingAssignments:[],exportName:"_skipFirstGeneratorNext",dependencies:{}}),slicedToArray:_t("7.0.0-beta.0","function _slicedToArray(r,e){return arrayWithHoles(r)||iterableToArrayLimit(r,e)||unsupportedIterableToArray(r,e)||nonIterableRest()}",{globals:[],locals:{_slicedToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_slicedToArray",dependencies:{arrayWithHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArrayLimit:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableRest:["body.0.body.body.0.argument.right.callee"]}}),superPropBase:_t("7.0.0-beta.0","function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=getPrototypeOf(t)););return t}",{globals:[],locals:{_superPropBase:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropBase",dependencies:{getPrototypeOf:["body.0.body.body.0.test.right.right.right.callee"]}}),superPropGet:_t("7.25.0",'function _superPropertyGet(t,e,o,r){var p=get(getPrototypeOf(1&r?t.prototype:t),e,o);return 2&r&&"function"==typeof p?function(t){return p.apply(o,t)}:p}',{globals:[],locals:{_superPropertyGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropertyGet",dependencies:{get:["body.0.body.body.0.declarations.0.init.callee"],getPrototypeOf:["body.0.body.body.0.declarations.0.init.arguments.0.callee"]}}),superPropSet:_t("7.25.0","function _superPropertySet(t,e,o,r,p,f){return set(getPrototypeOf(f?t.prototype:t),e,o,r,p)}",{globals:[],locals:{_superPropertySet:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropertySet",dependencies:{set:["body.0.body.body.0.argument.callee"],getPrototypeOf:["body.0.body.body.0.argument.arguments.0.callee"]}}),taggedTemplateLiteral:_t("7.0.0-beta.0","function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}",{globals:["Object"],locals:{_taggedTemplateLiteral:["body.0.id"]},exportBindingAssignments:[],exportName:"_taggedTemplateLiteral",dependencies:{}}),taggedTemplateLiteralLoose:_t("7.0.0-beta.0","function _taggedTemplateLiteralLoose(e,t){return t||(t=e.slice(0)),e.raw=t,e}",{globals:[],locals:{_taggedTemplateLiteralLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_taggedTemplateLiteralLoose",dependencies:{}}),tdz:_t("7.5.5",'function _tdzError(e){throw new ReferenceError(e+" is not defined - temporal dead zone")}',{globals:["ReferenceError"],locals:{_tdzError:["body.0.id"]},exportBindingAssignments:[],exportName:"_tdzError",dependencies:{}}),temporalRef:_t("7.0.0-beta.0","function _temporalRef(r,e){return r===undef?err(e):r}",{globals:[],locals:{_temporalRef:["body.0.id"]},exportBindingAssignments:[],exportName:"_temporalRef",dependencies:{temporalUndefined:["body.0.body.body.0.argument.test.right"],tdz:["body.0.body.body.0.argument.consequent.callee"]}}),temporalUndefined:_t("7.0.0-beta.0","function _temporalUndefined(){}",{globals:[],locals:{_temporalUndefined:["body.0.id"]},exportBindingAssignments:[],exportName:"_temporalUndefined",dependencies:{}}),toArray:_t("7.0.0-beta.0","function _toArray(r){return arrayWithHoles(r)||iterableToArray(r)||unsupportedIterableToArray(r)||nonIterableRest()}",{globals:[],locals:{_toArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_toArray",dependencies:{arrayWithHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArray:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableRest:["body.0.body.body.0.argument.right.callee"]}}),toConsumableArray:_t("7.0.0-beta.0","function _toConsumableArray(r){return arrayWithoutHoles(r)||iterableToArray(r)||unsupportedIterableToArray(r)||nonIterableSpread()}",{globals:[],locals:{_toConsumableArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_toConsumableArray",dependencies:{arrayWithoutHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArray:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableSpread:["body.0.body.body.0.argument.right.callee"]}}),toPrimitive:_t("7.1.5",'function toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}',{globals:["Symbol","TypeError","String","Number"],locals:{toPrimitive:["body.0.id"]},exportBindingAssignments:[],exportName:"toPrimitive",dependencies:{}}),toPropertyKey:_t("7.1.5",'function toPropertyKey(t){var i=toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}',{globals:[],locals:{toPropertyKey:["body.0.id"]},exportBindingAssignments:[],exportName:"toPropertyKey",dependencies:{toPrimitive:["body.0.body.body.0.declarations.0.init.callee"]}}),toSetter:_t("7.24.0",'function _toSetter(t,e,n){e||(e=[]);var r=e.length++;return Object.defineProperty({},"_",{set:function(o){e[r]=o,t.apply(n,e)}})}',{globals:["Object"],locals:{_toSetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_toSetter",dependencies:{}}),typeof:_t("7.0.0-beta.0",'function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}',{globals:["Symbol"],locals:{_typeof:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_typeof",dependencies:{}}),unsupportedIterableToArray:_t("7.9.0",'function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?arrayLikeToArray(r,a):void 0}}',{globals:["Array"],locals:{_unsupportedIterableToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_unsupportedIterableToArray",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.body.0.consequent.argument.callee","body.0.body.body.0.consequent.body.2.argument.expressions.1.alternate.consequent.callee"]}}),usingCtx:_t("7.23.9",'function _usingCtx(){var r="function"==typeof SuppressedError?SuppressedError:function(r,e){var n=Error();return n.name="SuppressedError",n.error=r,n.suppressed=e,n},e={},n=[];function using(r,e){if(null!=e){if(Object(e)!==e)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(r)var o=e[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(void 0===o&&(o=e[Symbol.dispose||Symbol.for("Symbol.dispose")],r))var t=o;if("function"!=typeof o)throw new TypeError("Object is not disposable.");t&&(o=function(){try{t.call(e)}catch(r){return Promise.reject(r)}}),n.push({v:e,d:o,a:r})}else r&&n.push({d:e,a:r});return e}return{e:e,u:using.bind(null,!1),a:using.bind(null,!0),d:function(){var o,t=this.e,s=0;function next(){for(;o=n.pop();)try{if(!o.a&&1===s)return s=0,n.push(o),Promise.resolve().then(next);if(o.d){var r=o.d.call(o.v);if(o.a)return s|=2,Promise.resolve(r).then(next,err)}else s|=1}catch(r){return err(r)}if(1===s)return t!==e?Promise.reject(t):Promise.resolve();if(t!==e)throw t}function err(n){return t=t!==e?new r(n,t):n,next()}return next()}}}',{globals:["SuppressedError","Error","Object","TypeError","Symbol","Promise"],locals:{_usingCtx:["body.0.id"]},exportBindingAssignments:[],exportName:"_usingCtx",dependencies:{}}),wrapAsyncGenerator:_t("7.0.0-beta.0",'function _wrapAsyncGenerator(e){return function(){return new AsyncGenerator(e.apply(this,arguments))}}function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i="return"===r?"return":"next";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?"return":"normal",t)}),(function(e){resume("throw",e)}))}catch(e){settle("throw",e)}}function settle(e,n){switch(e){case"return":r.resolve({value:n,done:!0});break;case"throw":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},"function"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke("next",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke("throw",e)},AsyncGenerator.prototype.return=function(e){return this._invoke("return",e)};',{globals:["Promise","Symbol"],locals:{_wrapAsyncGenerator:["body.0.id"],AsyncGenerator:["body.1.id","body.0.body.body.0.argument.body.body.0.argument.callee","body.2.expression.expressions.0.left.object.object","body.2.expression.expressions.1.left.object.object","body.2.expression.expressions.2.left.object.object","body.2.expression.expressions.3.left.object.object"]},exportBindingAssignments:[],exportName:"_wrapAsyncGenerator",dependencies:{OverloadYield:["body.1.body.body.1.body.body.0.block.body.0.declarations.2.init.right"]}}),wrapNativeSuper:_t("7.0.0-beta.0",'function _wrapNativeSuper(t){var r="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function(t){if(null===t||!isNativeFunction(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,Wrapper)}function Wrapper(){return construct(t,arguments,getPrototypeOf(this).constructor)}return Wrapper.prototype=Object.create(t.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),setPrototypeOf(Wrapper,t)},_wrapNativeSuper(t)}',{globals:["Map","TypeError","Object"],locals:{_wrapNativeSuper:["body.0.id","body.0.body.body.1.argument.expressions.1.callee","body.0.body.body.1.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.1.argument.expressions.0"],exportName:"_wrapNativeSuper",dependencies:{getPrototypeOf:["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.arguments.2.object.callee"],setPrototypeOf:["body.0.body.body.1.argument.expressions.0.right.body.body.4.argument.expressions.1.callee"],isNativeFunction:["body.0.body.body.1.argument.expressions.0.right.body.body.0.test.right.argument.callee"],construct:["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.callee"]}}),wrapRegExp:_t("7.19.0",'function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if("number"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if("string"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\$<([^>]+)>/g,(function(e,r){var t=o[r];return"$"+(Array.isArray(t)?t.join("$"):t)})))}if("function"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',{globals:["RegExp","WeakMap","Object","Symbol","Array"],locals:{_wrapRegExp:["body.0.id","body.0.body.body.4.argument.expressions.3.callee.object","body.0.body.body.0.expression.left"]},exportBindingAssignments:["body.0.body.body.0.expression"],exportName:"_wrapRegExp",dependencies:{setPrototypeOf:["body.0.body.body.2.body.body.1.argument.expressions.1.callee"],inherits:["body.0.body.body.4.argument.expressions.0.callee"]}}),writeOnlyError:_t("7.12.13",`function _writeOnlyError(r){throw new TypeError('"'+r+'" is write-only')}`,{globals:["TypeError"],locals:{_writeOnlyError:["body.0.id"]},exportBindingAssignments:[],exportName:"_writeOnlyError",dependencies:{}})};Object.assign(AE,{AwaitValue:_t("7.0.0-beta.0","function _AwaitValue(t){this.wrapped=t}",{globals:[],locals:{_AwaitValue:["body.0.id"]},exportBindingAssignments:[],exportName:"_AwaitValue",dependencies:{}}),applyDecs:_t("7.17.8",'function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,"getMetadata"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,"constructor"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,"setMetadata"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for("Symbol.metadata")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for("Symbol.metadata")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,"addInitializer"),old_assertCallable(a,"An initializer"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var d,u,f={kind:c,name:l?"#"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw Error("attempted to call "+t+" after decoration was finished")}function old_assertMetadataKey(e){if("symbol"!=typeof e)throw new TypeError("Metadata keys must be symbols, received: "+e)}function old_assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if("object"!==a||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&old_assertCallable(t.get,"accessor.get"),void 0!==t.set&&old_assertCallable(t.set,"accessor.set"),void 0!==t.init&&old_assertCallable(t.init,"accessor.init"),void 0!==t.initializer&&old_assertCallable(t.initializer,"accessor.initializer")}else if("function"!==a)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&void 0!==console&&console.warn(".initializer has been renamed to .init as of March 2022"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u="get"):3===o?(c={get:a[3]},u="get"):4===o?(c={set:a[3]},u="set"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],"#"+r,"set"),setFunctionName(a[3],"#"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),"function"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:"function"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:"class",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',{globals:["Object","Map","Symbol","Array","Error","TypeError","console"],locals:{old_createMetadataMethodsForProperty:["body.0.id","body.3.body.body.4.block.body.0.argument.arguments.1.arguments.1.callee","body.12.body.body.0.consequent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.1.callee"],old_convertMetadataMapToFinal:["body.1.id","body.13.body.body.1.argument.expressions.1.callee","body.13.body.body.1.argument.expressions.3.callee"],old_createAddInitializerMethod:["body.2.id","body.3.body.body.3.test.expressions.0.right.right.callee","body.12.body.body.0.consequent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.0.properties.2.value.callee"],old_memberDec:["body.3.id","body.9.body.body.1.consequent.expression.left.right.right.callee","body.9.body.body.1.alternate.body.body.1.expression.left.right.right.callee"],old_assertNotFinished:["body.4.id","body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.0.callee","body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.0.callee","body.2.body.body.0.argument.body.body.0.expression.expressions.0.callee"],old_assertMetadataKey:["body.5.id","body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.1.callee","body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.1.callee"],old_assertCallable:["body.6.id","body.2.body.body.0.argument.body.body.0.expression.expressions.1.callee","body.7.body.body.1.consequent.body.1.expression.expressions.0.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.1.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.2.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.3.right.callee"],old_assertValidReturnValue:["body.7.id","body.9.body.body.1.consequent.expression.right.expressions.0.callee","body.9.body.body.1.alternate.body.body.1.expression.right.expressions.0.callee","body.12.body.body.0.consequent.body.0.body.body.2.expression.right.expressions.0.callee"],old_getInit:["body.8.id","body.9.body.body.1.consequent.expression.right.expressions.1.alternate.consequent.expressions.0.right.callee","body.9.body.body.1.alternate.body.body.1.expression.right.expressions.1.alternate.consequent.expressions.0.right.callee"],old_applyMemberDec:["body.9.id","body.10.body.body.0.body.body.1.consequent.body.2.expression.callee"],old_applyMemberDecs:["body.10.id","body.13.body.body.1.argument.expressions.0.callee"],old_pushInitializers:["body.11.id","body.10.body.body.1.expression.expressions.0.callee","body.10.body.body.1.expression.expressions.1.callee"],old_applyClassDecs:["body.12.id","body.13.body.body.1.argument.expressions.2.callee"],applyDecs:["body.13.id"]},exportBindingAssignments:[],exportName:"applyDecs",dependencies:{setFunctionName:["body.9.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.9.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.3.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]}}),applyDecs2203:_t("7.19.0",'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2203Factory:["body.0.id","body.2.body.body.0.argument.callee.right.right.callee"],applyDecs2203Impl:["body.1.declarations.0.id","body.2.body.body.0.argument.callee.right.left","body.2.body.body.0.argument.callee.left"],applyDecs2203:["body.2.id"]},exportBindingAssignments:[],exportName:"applyDecs2203",dependencies:{}}),applyDecs2203R:_t("7.20.0",'function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:o?"#"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u="get"):3===a?(c={get:r[3]},u="get"):4===a?(c={set:r[3]},u="set"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],"#"+n,"set"),setFunctionName(r[3],"#"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),"function"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:"function"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2203RFactory:["body.0.id","body.1.body.body.0.argument.callee.right.callee"],applyDecs2203R:["body.1.id","body.1.body.body.0.argument.callee.left"]},exportBindingAssignments:["body.1.body.body.0.argument.callee"],exportName:"applyDecs2203R",dependencies:{setFunctionName:["body.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.0.body.body.1.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]}}),applyDecs2301:_t("7.21.0",'function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var l,f,p={kind:u,name:s?"#"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f="get"):3===a?(u={get:r[3]},f="get"):4===a?(u={set:r[3]},f="set"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,"#"+n,"set"),setFunctionName(u[f||"value"],"#"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),"function"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:"function"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2301Factory:["body.0.id","body.1.body.body.0.argument.callee.right.callee"],applyDecs2301:["body.1.id","body.1.body.body.0.argument.callee.left"]},exportBindingAssignments:["body.1.body.body.0.argument.callee"],exportName:"applyDecs2301",dependencies:{checkInRHS:["body.0.body.body.7.body.body.0.body.body.1.consequent.body.1.test.expressions.0.consequent.expressions.2.right.right.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.0.body.body.2.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]}}),applyDecs2305:_t("7.21.0",'function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var y,v=t[0],g=t[3],b=!u;if(!b){r||Array.isArray(v)||(v=[v]);var w={},S=[],A=3===o?"get":4===o||d?"set":"value";f?(p||d?w={get:setFunctionName((function(){return g(this)}),n,"get"),set:function(e){t[4](this,e)}}:w[A]=g,p||setFunctionName(w[A],n,2===o?"":A)):p||(w=Object.getOwnPropertyDescriptor(e,n))}for(var P=e,j=v.length-1;j>=0;j-=r?2:1){var D=v[j],E=r?v[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(null,I)};try{if(b)(y=s(D.call(E,P,O),"class decorators","return"))&&(P=y);else{var k,F;O.static=l,O.private=f,f?2===o?k=function(e){return m(e),w.value}:(o<4&&(k=i(w,"get",m)),3!==o&&(F=i(w,"set",m))):(k=function(e){return e[n]},(o<2||4===o)&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),P=D.call(E,d?{get:w.get,set:w.set}:w[A],O),d){if("object"==typeof P&&P)(y=s(P.get,"accessor.get"))&&(w.get=y),(y=s(P.set,"accessor.set"))&&(w.set=y),(y=s(P.init,"accessor.init"))&&S.push(y);else if(void 0!==P)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(P,(p?"field":"method")+" decorators","return")&&(p?S.push(P):w[A]=P)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=S.length-1;r>=0;r--)t=S[r].call(e,t);return t})),p||b||(f?d?u.push(i(w,"get"),i(w,"set")):u.push(2===o?w[A]:i.call.bind(w[A])):Object.defineProperty(e,n,w)),P}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(applyDec(e,[r],n,e.name,5,f,t),f),c.bind(null,t,e)]}}}',{globals:["TypeError","Array","Object","Error","Symbol","Map"],locals:{applyDecs2305:["body.0.id"]},exportBindingAssignments:[],exportName:"applyDecs2305",dependencies:{checkInRHS:["body.0.body.body.6.declarations.1.init.callee.body.body.0.declarations.3.init.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.0.consequent.right.properties.0.value.callee","body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.1.right.callee"],toPropertyKey:["body.0.body.body.6.declarations.1.init.callee.body.body.2.body.body.1.consequent.body.2.expression.arguments.3.alternate.callee"]}}),classApplyDescriptorDestructureSet:_t("7.13.10",'function _classApplyDescriptorDestructureSet(e,t){if(t.set)return"__destrObj"in t||(t.__destrObj={set value(r){t.set.call(e,r)}}),t.__destrObj;if(!t.writable)throw new TypeError("attempted to set read only private field");return t}',{globals:["TypeError"],locals:{_classApplyDescriptorDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorDestructureSet",dependencies:{}}),classApplyDescriptorGet:_t("7.13.10","function _classApplyDescriptorGet(e,t){return t.get?t.get.call(e):t.value}",{globals:[],locals:{_classApplyDescriptorGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorGet",dependencies:{}}),classApplyDescriptorSet:_t("7.13.10",'function _classApplyDescriptorSet(e,t,l){if(t.set)t.set.call(e,l);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=l}}',{globals:["TypeError"],locals:{_classApplyDescriptorSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorSet",dependencies:{}}),classCheckPrivateStaticAccess:_t("7.13.10","function _classCheckPrivateStaticAccess(s,a,r){return assertClassBrand(a,s,r)}",{globals:[],locals:{_classCheckPrivateStaticAccess:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCheckPrivateStaticAccess",dependencies:{assertClassBrand:["body.0.body.body.0.argument.callee"]}}),classCheckPrivateStaticFieldDescriptor:_t("7.13.10",'function _classCheckPrivateStaticFieldDescriptor(t,e){if(void 0===t)throw new TypeError("attempted to "+e+" private static field before its declaration")}',{globals:["TypeError"],locals:{_classCheckPrivateStaticFieldDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCheckPrivateStaticFieldDescriptor",dependencies:{}}),classExtractFieldDescriptor:_t("7.13.10","function _classExtractFieldDescriptor(e,t){return classPrivateFieldGet2(t,e)}",{globals:[],locals:{_classExtractFieldDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_classExtractFieldDescriptor",dependencies:{classPrivateFieldGet2:["body.0.body.body.0.argument.callee"]}}),classPrivateFieldDestructureSet:_t("7.4.4","function _classPrivateFieldDestructureSet(e,t){var r=classPrivateFieldGet2(t,e);return classApplyDescriptorDestructureSet(e,r)}",{globals:[],locals:{_classPrivateFieldDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldDestructureSet",dependencies:{classApplyDescriptorDestructureSet:["body.0.body.body.1.argument.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]}}),classPrivateFieldGet:_t("7.0.0-beta.0","function _classPrivateFieldGet(e,t){var r=classPrivateFieldGet2(t,e);return classApplyDescriptorGet(e,r)}",{globals:[],locals:{_classPrivateFieldGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldGet",dependencies:{classApplyDescriptorGet:["body.0.body.body.1.argument.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]}}),classPrivateFieldSet:_t("7.0.0-beta.0","function _classPrivateFieldSet(e,t,r){var s=classPrivateFieldGet2(t,e);return classApplyDescriptorSet(e,s,r),r}",{globals:[],locals:{_classPrivateFieldSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldSet",dependencies:{classApplyDescriptorSet:["body.0.body.body.1.argument.expressions.0.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]}}),classPrivateMethodGet:_t("7.1.6","function _classPrivateMethodGet(s,a,r){return assertClassBrand(a,s),r}",{globals:[],locals:{_classPrivateMethodGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodGet",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"]}}),classPrivateMethodSet:_t("7.1.6",'function _classPrivateMethodSet(){throw new TypeError("attempted to reassign private method")}',{globals:["TypeError"],locals:{_classPrivateMethodSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodSet",dependencies:{}}),classStaticPrivateFieldDestructureSet:_t("7.13.10",'function _classStaticPrivateFieldDestructureSet(t,r,s){return assertClassBrand(r,t),classCheckPrivateStaticFieldDescriptor(s,"set"),classApplyDescriptorDestructureSet(t,s)}',{globals:[],locals:{_classStaticPrivateFieldDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldDestructureSet",dependencies:{classApplyDescriptorDestructureSet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]}}),classStaticPrivateFieldSpecGet:_t("7.0.2",'function _classStaticPrivateFieldSpecGet(t,s,r){return assertClassBrand(s,t),classCheckPrivateStaticFieldDescriptor(r,"get"),classApplyDescriptorGet(t,r)}',{globals:[],locals:{_classStaticPrivateFieldSpecGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldSpecGet",dependencies:{classApplyDescriptorGet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]}}),classStaticPrivateFieldSpecSet:_t("7.0.2",'function _classStaticPrivateFieldSpecSet(s,t,r,e){return assertClassBrand(t,s),classCheckPrivateStaticFieldDescriptor(r,"set"),classApplyDescriptorSet(s,r,e),e}',{globals:[],locals:{_classStaticPrivateFieldSpecSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldSpecSet",dependencies:{classApplyDescriptorSet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]}}),classStaticPrivateMethodSet:_t("7.3.2",'function _classStaticPrivateMethodSet(){throw new TypeError("attempted to set read only static private field")}',{globals:["TypeError"],locals:{_classStaticPrivateMethodSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateMethodSet",dependencies:{}}),defineEnumerableProperties:_t("7.0.0-beta.0",'function _defineEnumerableProperties(e,r){for(var t in r){var n=r[t];n.configurable=n.enumerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,t,n)}if(Object.getOwnPropertySymbols)for(var a=Object.getOwnPropertySymbols(r),b=0;b<a.length;b++){var i=a[b];(n=r[i]).configurable=n.enumerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i,n)}return e}',{globals:["Object"],locals:{_defineEnumerableProperties:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineEnumerableProperties",dependencies:{}}),dispose:_t("7.22.0",'function dispose_SuppressedError(r,e){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=e,this.error=r,this.stack=Error().stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(e,r):r,s=!0,next()}return next()}',{globals:["SuppressedError","Error","Object","Promise"],locals:{dispose_SuppressedError:["body.0.id","body.0.body.body.0.argument.expressions.0.alternate.expressions.1.left.object","body.0.body.body.0.argument.expressions.0.alternate.expressions.1.right.arguments.1.properties.0.value.properties.0.value","body.0.body.body.0.argument.expressions.1.callee","body.1.body.body.1.body.body.0.argument.expressions.0.right.consequent.callee","body.0.body.body.0.argument.expressions.0.consequent.left","body.0.body.body.0.argument.expressions.0.alternate.expressions.0.left"],_dispose:["body.1.id"]},exportBindingAssignments:[],exportName:"_dispose",dependencies:{}}),objectSpread:_t("7.0.0-beta.0",'function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?Object(arguments[r]):{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach((function(r){defineProperty(e,r,t[r])}))}return e}',{globals:["Object"],locals:{_objectSpread:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectSpread",dependencies:{defineProperty:["body.0.body.body.0.body.body.1.expression.expressions.1.arguments.0.body.body.0.expression.callee"]}}),using:_t("7.22.0",'function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(e)var r=n[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(null==r&&(r=n[Symbol.dispose||Symbol.for("Symbol.dispose")]),"function"!=typeof r)throw new TypeError("Property [Symbol.dispose] is not a function.");return o.push({v:n,d:r,a:e}),n}',{globals:["Object","TypeError","Symbol"],locals:{_using:["body.0.id"]},exportBindingAssignments:[],exportName:"_using",dependencies:{}})});var NSe=me,lV=Ne;function R1(e,r,s){try{for(var l=r.split("."),u=l.shift();l.length>0;)e=e[u],u=l.shift();if(arguments.length>2)e[u]=s;else return e[u]}catch(o){throw o.message+=" (when accessing "+r+")",o}}function kSe(e,r,s,l,u,o){var c=r.locals,f=r.dependencies,h=r.exportBindingAssignments,m=r.exportName,g=new Set(l||[]);s&&g.add(s);for(var x=0,R=(Object.entries||function(ue){return Object.keys(ue).map(function(oe){return[oe,ue[oe]]})})(c);x<R.length;x++){var w=je(R[x],2),T=w[0],I=w[1],P=T;if(s&&T===m)P=s;else for(;g.has(P);)P="_"+P;if(P!==T)for(var O=C(I),j;!(j=O()).done;){var D=j.value;R1(e,D,lV(P))}}for(var k=0,B=(Object.entries||function(ue){return Object.keys(ue).map(function(oe){return[oe,ue[oe]]})})(f);k<B.length;k++)for(var F=je(B[k],2),L=F[0],V=F[1],H=typeof u=="function"&&u(L)||lV(L),K=C(V),G;!(G=K()).done;){var X=G.value;R1(e,X,NSe(H))}o==null||o(e,m,function(ue){h.forEach(function(oe){return R1(e,oe,ue(R1(e,oe)))})})}var IE=Object.create(null);function E1(e){if(!IE[e]){var r=AE[e];if(!r)throw Object.assign(new ReferenceError("Unknown helper "+e),{code:"BABEL_HELPER_UNKNOWN",helper:e});IE[e]={minVersion:r.minVersion,build:function(l,u,o,c){var f=r.ast();return kSe(f,r.metadata,u,o,l,c),{nodes:f.body,globals:r.metadata.globals}},getDependencies:function(){return Object.keys(r.metadata.dependencies)}}}return IE[e]}function uV(e,r,s,l,u){if(typeof s=="object"){var o=s;(o==null?void 0:o.type)==="Identifier"?s=o.name:s=void 0}return E1(e).build(r,s,l,u)}function cV(e){return E1(e).minVersion}function DSe(e){return E1(e).getDependencies()}a.ensure=function(e){E1(e)};var LSe=Object.keys(AE).map(function(e){return e.replace(/^_/,"")}),MSe=["Identifier","JSXIdentifier"],BSe=["MemberExpression"],FSe=["Identifier"],$Se=["Statement"],qSe=["Expression"],USe=["Scopable","Pattern"],VSe=null,WSe=null,GSe=["VariableDeclaration"],KSe=null,HSe=null,zSe=null,XSe=["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],JSe=["RestElement"],YSe=["RestElement"],QSe=["ExistsTypeAnnotation"],ZSe=["NumberLiteralTypeAnnotation"],eTe=["ForOfStatement"],CE=Object.freeze({__proto__:null,BindingIdentifier:FSe,BlockScoped:WSe,ExistentialTypeParam:QSe,Expression:qSe,Flow:XSe,ForAwaitStatement:eTe,Generated:HSe,NumericLiteralTypeAnnotation:ZSe,Pure:zSe,Referenced:VSe,ReferencedIdentifier:MSe,ReferencedMemberExpression:BSe,RestProperty:JSe,Scope:USe,SpreadProperty:YSe,Statement:$Se,User:KSe,Var:GSe}),jE={exports:{}},OE,dV;function tTe(){if(dV)return OE;dV=1;var e=1e3,r=e*60,s=r*60,l=s*24,u=l*7,o=l*365.25;OE=function(x,R){R=R||{};var w=typeof x;if(w==="string"&&x.length>0)return c(x);if(w==="number"&&isFinite(x))return R.long?h(x):f(x);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(x))};function c(g){if(g=String(g),!(g.length>100)){var x=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(g);if(x){var R=parseFloat(x[1]),w=(x[2]||"ms").toLowerCase();switch(w){case"years":case"year":case"yrs":case"yr":case"y":return R*o;case"weeks":case"week":case"w":return R*u;case"days":case"day":case"d":return R*l;case"hours":case"hour":case"hrs":case"hr":case"h":return R*s;case"minutes":case"minute":case"mins":case"min":case"m":return R*r;case"seconds":case"second":case"secs":case"sec":case"s":return R*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return R;default:return}}}}function f(g){var x=Math.abs(g);return x>=l?Math.round(g/l)+"d":x>=s?Math.round(g/s)+"h":x>=r?Math.round(g/r)+"m":x>=e?Math.round(g/e)+"s":g+"ms"}function h(g){var x=Math.abs(g);return x>=l?m(g,x,l,"day"):x>=s?m(g,x,s,"hour"):x>=r?m(g,x,r,"minute"):x>=e?m(g,x,e,"second"):g+" ms"}function m(g,x,R,w){var T=x>=R*1.5;return Math.round(g/R)+" "+w+(T?"s":"")}return OE}function rTe(e){s.debug=s,s.default=s,s.coerce=h,s.disable=o,s.enable=u,s.enabled=c,s.humanize=tTe(),s.destroy=m,Object.keys(e).forEach(function(g){s[g]=e[g]}),s.names=[],s.skips=[],s.formatters={};function r(g){for(var x=0,R=0;R<g.length;R++)x=(x<<5)-x+g.charCodeAt(R),x|=0;return s.colors[Math.abs(x)%s.colors.length]}s.selectColor=r;function s(g){var x,R=null,w,T;function I(){for(var P=arguments.length,O=new Array(P),j=0;j<P;j++)O[j]=arguments[j];if(I.enabled){var D=I,k=Number(new Date),B=k-(x||k);D.diff=B,D.prev=x,D.curr=k,x=k,O[0]=s.coerce(O[0]),typeof O[0]!="string"&&O.unshift("%O");var F=0;O[0]=O[0].replace(/%([a-zA-Z%])/g,function(V,H){if(V==="%%")return"%";F++;var K=s.formatters[H];if(typeof K=="function"){var G=O[F];V=K.call(D,G),O.splice(F,1),F--}return V}),s.formatArgs.call(D,O);var L=D.log||s.log;L.apply(D,O)}}return I.namespace=g,I.useColors=s.useColors(),I.color=s.selectColor(g),I.extend=l,I.destroy=s.destroy,Object.defineProperty(I,"enabled",{enumerable:!0,configurable:!1,get:function(){return R!==null?R:(w!==s.namespaces&&(w=s.namespaces,T=s.enabled(g)),T)},set:function(O){R=O}}),typeof s.init=="function"&&s.init(I),I}function l(g,x){var R=s(this.namespace+(typeof x>"u"?":":x)+g);return R.log=this.log,R}function u(g){s.save(g),s.namespaces=g,s.names=[],s.skips=[];var x,R=(typeof g=="string"?g:"").split(/[\s,]+/),w=R.length;for(x=0;x<w;x++)R[x]&&(g=R[x].replace(/\*/g,".*?"),g[0]==="-"?s.skips.push(new RegExp("^"+g.slice(1)+"$")):s.names.push(new RegExp("^"+g+"$")))}function o(){var g=[].concat(fe(s.names.map(f)),fe(s.skips.map(f).map(function(x){return"-"+x}))).join(",");return s.enable(""),g}function c(g){if(g[g.length-1]==="*")return!0;var x,R;for(x=0,R=s.skips.length;x<R;x++)if(s.skips[x].test(g))return!1;for(x=0,R=s.names.length;x<R;x++)if(s.names[x].test(g))return!0;return!1}function f(g){return g.toString().substring(2,g.toString().length-2).replace(/\.\*\?$/,"*")}function h(g){return g instanceof Error?g.stack||g.message:g}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return s.enable(s.load()),s}var aTe=rTe;(function(e,r){r.formatArgs=l,r.save=u,r.load=o,r.useColors=s,r.storage=c(),r.destroy=function(){var h=!1;return function(){h||(h=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}}(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function s(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function l(h){if(h[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+h[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!!this.useColors){var m="color: "+this.color;h.splice(1,0,m,"color: inherit");var g=0,x=0;h[0].replace(/%[a-zA-Z%]/g,function(R){R!=="%%"&&(g++,R==="%c"&&(x=g))}),h.splice(x,0,m)}}r.log=console.debug||console.log||function(){};function u(h){try{h?r.storage.setItem("debug",h):r.storage.removeItem("debug")}catch{}}function o(){var h;try{h=r.storage.getItem("debug")}catch{}return!h&&typeof er<"u"&&"env"in er&&(h=er.env.DEBUG),h}function c(){try{return localStorage}catch{}}e.exports=aTe(r);var f=e.exports.formatters;f.j=function(h){try{return JSON.stringify(h)}catch(m){return"[UnexpectedJSONParseError]: "+m.message}}})(jE,jE.exports);var _E=jE.exports,nTe=tU,sTe=aU,iTe=Of,oTe=Zi,lTe=O7,uTe=Rt,cTe=jf,pV=Dt,dTe=vd,pTe=yf,fTe=Is,hTe=qu,mTe=lr,fV=hn,NE=Bd,yTe=nU,gTe=ui,vTe=sU,bTe=Ja,xTe=Mi,RTe=hf,ETe=xTe.isCompatTag;function STe(e){var r=this.node,s=this.parent;if(!pV(r,e)&&!hTe(s,e))if(fTe(r,e)){if(ETe(r.name))return!1}else return!1;return NE(r,s,this.parentPath.parent)}function TTe(){var e=this.node,r=this.parent;return mTe(e)&&NE(e,r)}function wTe(){var e=this.node,r=this.parent,s=this.parentPath.parent;return pV(e)&&nTe(e,r,s)}function PTe(){var e=this.node,r=this.parent;return gTe(e)?!(bTe(e)&&(cTe(r,{left:e})||uTe(r,{init:e}))):!1}function ATe(){return this.isIdentifier()?this.isReferencedIdentifier():oTe(this.node)}function ITe(){return yTe(this.node,this.parent)}function CTe(){return NE(this.node,this.parent)}function jTe(){return sTe(this.node)}function OTe(){return vTe(this.node)}function _Te(){return this.node&&!!this.node.loc}function NTe(){return!this.isUser()}function kTe(e){return this.scope.isPure(this.node,e)}function DTe(){var e=this.node;return lTe(e)?!0:dTe(e)?e.importKind==="type"||e.importKind==="typeof":iTe(e)?e.exportKind==="type":pTe(e)?e.importKind==="type"||e.importKind==="typeof":!1}function LTe(){var e;return fV(this.node)&&((e=this.parentPath)==null?void 0:e.isObjectPattern())}function MTe(){var e;return fV(this.node)&&((e=this.parentPath)==null?void 0:e.isObjectExpression())}function BTe(){return RTe(this.node,{await:!0})}a.isExistentialTypeParam=function(){throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.")},a.isNumericLiteralTypeAnnotation=function(){throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.")};var hV=Object.freeze({__proto__:null,isBindingIdentifier:wTe,isBlockScoped:jTe,isExpression:ATe,isFlow:DTe,isForAwaitStatement:BTe,isGenerated:NTe,isPure:kTe,isReferenced:CTe,isReferencedIdentifier:STe,isReferencedMemberExpression:TTe,isRestProperty:LTe,isScope:ITe,isSpreadProperty:MTe,isStatement:PTe,isUser:_Te,isVar:OTe}),mV=kf,yV=qg,gV=xr,FTe=Ff,vV=pt;function $Te(e){return e in CE}function kE(e){return e==null?void 0:e._exploded}function ch(e){if(kE(e))return e;e._exploded=!0;for(var r=0,s=Object.keys(e);r<s.length;r++){var l=s[r];if(!ec(l)){var u=l.split("|");if(u.length!==1){var o=e[l];delete e[l];for(var c=C(u),f;!(f=c()).done;){var h=f.value;e[h]=o}}}}DE(e),delete e.__esModule,qTe(e),EV(e);for(var m=0,g=Object.keys(e);m<g.length;m++){var x=g[m];if(!ec(x)&&$Te(x)){for(var R=e[x],w=0,T=Object.keys(R);w<T.length;w++){var I=T[w];R[I]=UTe(x,R[I])}delete e[x];var P=CE[x];if(P!==null)for(var O=C(P),j;!(j=O()).done;){var D=j.value;e[D]?dh(e[D],R):e[D]=R}else dh(e,R)}}for(var k=0,B=Object.keys(e);k<B.length;k++){var F=B[k];if(!ec(F)){var L=gV[F];if(F in mV){var V=mV[F];vV(F,V,"Visitor "),L=[V]}else if(F in yV){var H=yV[F];vV(F,H,"Visitor "),L=gV[H]}if(L){var K=e[F];delete e[F];for(var G=C(L),X;!(X=G()).done;){var ue=X.value,oe=e[ue];oe?dh(oe,K):e[ue]=Object.assign({},K)}}}}for(var he=0,te=Object.keys(e);he<te.length;he++){var ae=te[he];ec(ae)||EV(e[ae])}return e}function DE(e){if(!e._verified){if(typeof e=="function")throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?");for(var r=0,s=Object.keys(e);r<s.length;r++){var l=s[r];if((l==="enter"||l==="exit")&&bV(l,e[l]),!ec(l)){if(!FTe.includes(l))throw new Error("You gave us a visitor for the node type "+l+" but it's not a valid type in @babel/traverse 7.25.6");var u=e[l];if(typeof u=="object")for(var o=0,c=Object.keys(u);o<c.length;o++){var f=c[o];if(f==="enter"||f==="exit")bV(l+"."+f,u[f]);else throw new Error("You passed `traverse()` a visitor object with the property "+(l+" that has the invalid property "+f))}}}e._verified=!0}}function bV(e,r){for(var s=[].concat(r),l=C(s),u;!(u=l()).done;){var o=u.value;if(typeof o!="function")throw new TypeError("Non-function found defined in "+e+" with type "+typeof o)}}function xV(e,r,s){r===void 0&&(r=[]);var l={_verified:!0,_exploded:!0};Object.defineProperty(l,"_exploded",{enumerable:!1}),Object.defineProperty(l,"_verified",{enumerable:!1});for(var u=0;u<e.length;u++){var o=ch(e[u]),c=r[u],f=o;(c||s)&&(f=RV(f,c,s)),dh(l,f);for(var h=0,m=Object.keys(o);h<m.length;h++){var g=m[h];if(!ec(g)){var x=o[g];(c||s)&&(x=RV(x,c,s));var R=l[g]||(l[g]={});dh(R,x)}}}return l}function RV(e,r,s){for(var l={},u=function(){var h=c[o],m=e[h];if(!Array.isArray(m))return 1;m=m.map(function(g){var x=g;return r&&(x=function(w){g.call(r,w,r)}),s&&(x=s(r==null?void 0:r.key,h,x)),x!==g&&(x.toString=function(){return g.toString()}),x}),l[h]=m},o=0,c=["enter","exit"];o<c.length;o++)u();return l}function qTe(e){for(var r=0,s=Object.keys(e);r<s.length;r++){var l=s[r];if(!ec(l)){var u=e[l];typeof u=="function"&&(e[l]={enter:u})}}}function EV(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function UTe(e,r){var s="is"+e,l=hV[s],u=function(c){if(l.call(c))return r.apply(this,arguments)};return u.toString=function(){return r.toString()},u}function ec(e){return e[0]==="_"||e==="enter"||e==="exit"||e==="shouldSkip"||e==="denylist"||e==="noScope"||e==="skipKeys"||e==="blacklist"}function dh(e,r){for(var s=0,l=["enter","exit"];s<l.length;s++){var u=l[s];r[u]&&(e[u]=[].concat(e[u]||[],r[u]))}}var VTe={FunctionParent:function(r){r.isArrowFunctionExpression()||(r.skip(),r.isMethod()&&(r.requeueComputedKeyAndDecorators?r.requeueComputedKeyAndDecorators():Rh.call(r)))},Property:function(r){r.isObjectProperty()||(r.skip(),r.requeueComputedKeyAndDecorators?r.requeueComputedKeyAndDecorators():Rh.call(r))}};function Fn(e){return xV([VTe,e])}var SV=Object.freeze({__proto__:null,environmentVisitor:Fn,explode:ch,isExplodedVisitor:kE,merge:xV,verify:DE}),WTe=Z8,GTe={ReferencedIdentifier:function(r,s){var l=r.node;l.name===s.oldName&&(l.name=s.newName)},Scope:function(r,s){r.scope.bindingIdentifierEquals(s.oldName,s.binding.identifier)||(r.skip(),r.isMethod()&&(r.requeueComputedKeyAndDecorators?r.requeueComputedKeyAndDecorators():Rh.call(r)))},ObjectProperty:function(r,s){var l=r.node,u=r.scope,o=l.key,c=o.name;if(l.shorthand&&(c===s.oldName||c===s.newName)&&u.getBindingIdentifier(c)===s.binding.identifier){l.shorthand=!1;{var f;(f=l.extra)!=null&&f.shorthand&&(l.extra.shorthand=!1)}}},"AssignmentExpression|Declaration|VariableDeclarator":function(r,s){if(!r.isVariableDeclaration()){var l=r.isAssignmentExpression()?WTe(r.node):r.getOuterBindingIdentifiers();for(var u in l)u===s.oldName&&(l[u].name=s.newName)}}},KTe=function(){function e(s,l,u){this.newName=u,this.oldName=l,this.binding=s}var r=e.prototype;return r.maybeConvertFromExportDeclaration=function(l){var u=l.parentPath;if(u.isExportDeclaration()){if(u.isExportDefaultDeclaration()){var o=u.node.declaration;if(j7(o)&&!o.id)return}u.isExportAllDeclaration()||u.splitExportDeclaration()}},r.maybeConvertFromClassFunctionDeclaration=function(l){return l},r.maybeConvertFromClassFunctionExpression=function(l){return l},r.rename=function(){var l=this.binding,u=this.oldName,o=this.newName,c=l.scope,f=l.path,h=f.find(function(R){return R.isDeclaration()||R.isFunctionExpression()||R.isClassExpression()});if(h){var m=h.getOuterBindingIdentifiers();m[u]===l.identifier&&this.maybeConvertFromExportDeclaration(h)}var g=arguments[0]||c.block,x={discriminant:!0};Sd(g)&&(g.computed&&(x.key=!0),Kn(g)||(x.decorators=!0)),e0(g,ch(GTe),c,this,c.path,x),arguments[0]||(c.removeOwnBinding(u),c.bindings[o]=l,this.binding.identifier.name=o),h&&(this.maybeConvertFromClassFunctionDeclaration(f),this.maybeConvertFromClassFunctionExpression(f))},_(e)}(),HTe=function(){function e(s){var l=s.identifier,u=s.scope,o=s.path,c=s.kind;this.identifier=void 0,this.scope=void 0,this.path=void 0,this.kind=void 0,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.identifier=l,this.scope=u,this.path=o,this.kind=c,(c==="var"||c==="hoisted")&&zTe(o)&&this.reassign(o),this.clearValue()}var r=e.prototype;return r.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},r.setValue=function(l){this.hasDeoptedValue||(this.hasValue=!0,this.value=l)},r.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},r.reassign=function(l){this.constant=!1,!this.constantViolations.includes(l)&&this.constantViolations.push(l)},r.reference=function(l){this.referencePaths.includes(l)||(this.referenced=!0,this.references++,this.referencePaths.push(l))},r.dereference=function(){this.references--,this.referenced=!!this.references},_(e)}();function zTe(e){for(var r=e.parentPath,s=e.key;r;l=r,r=l.parentPath,s=l.key,l){var l;if(r.isFunctionParent())return!1;if(r.isWhile()||r.isForXStatement()||r.isForStatement()&&s==="body")return!0}return!1}var XTe={Array:!1,ArrayBuffer:!1,Atomics:!1,BigInt:!1,BigInt64Array:!1,BigUint64Array:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,globalThis:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,SharedArrayBuffer:!1,String:!1,Symbol:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},JTe={Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},YTe={Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},QTe={Array:!1,ArrayBuffer:!1,Atomics:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,SharedArrayBuffer:!1,String:!1,Symbol:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},ZTe={AbortController:!1,AbortSignal:!1,addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AudioScheduledSourceNode:!1,"AudioWorkletGlobalScope ":!1,AudioWorkletNode:!1,AudioWorkletProcessor:!1,BarProp:!1,BaseAudioContext:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,BlobEvent:!1,blur:!1,BroadcastChannel:!1,btoa:!1,BudgetService:!1,ByteLengthQueuingStrategy:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasCaptureMediaStreamTrack:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConstantSourceNode:!1,ConvolverNode:!1,CountQueuingStrategy:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSConditionRule:!1,CSSFontFaceRule:!1,CSSGroupingRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSNamespaceRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CustomElementRegistry:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,defaultstatus:!1,defaultStatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMMatrix:!1,DOMMatrixReadOnly:!1,DOMParser:!1,DOMPoint:!1,DOMPointReadOnly:!1,DOMQuad:!1,DOMRect:!1,DOMRectReadOnly:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,fetch:!1,File:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FontFaceSetLoadEvent:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLLabelElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSlotElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTimeElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,IdleDeadline:!1,IIRFilterNode:!1,Image:!1,ImageBitmap:!1,ImageBitmapRenderingContext:!1,ImageCapture:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,isSecureContext:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!0,Location:!1,locationbar:!1,matchMedia:!1,MediaDeviceInfo:!1,MediaDevices:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyMessageEvent:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaRecorder:!1,MediaSettingsRange:!1,MediaSource:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,MediaStreamTrackEvent:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,NavigationPreloadManager:!1,navigator:!1,Navigator:!1,NetworkInformation:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,OffscreenCanvas:!0,onabort:!0,onafterprint:!0,onanimationend:!0,onanimationiteration:!0,onanimationstart:!0,onappinstalled:!0,onauxclick:!0,onbeforeinstallprompt:!0,onbeforeprint:!0,onbeforeunload:!0,onblur:!0,oncancel:!0,oncanplay:!0,oncanplaythrough:!0,onchange:!0,onclick:!0,onclose:!0,oncontextmenu:!0,oncuechange:!0,ondblclick:!0,ondevicemotion:!0,ondeviceorientation:!0,ondeviceorientationabsolute:!0,ondrag:!0,ondragend:!0,ondragenter:!0,ondragleave:!0,ondragover:!0,ondragstart:!0,ondrop:!0,ondurationchange:!0,onemptied:!0,onended:!0,onerror:!0,onfocus:!0,ongotpointercapture:!0,onhashchange:!0,oninput:!0,oninvalid:!0,onkeydown:!0,onkeypress:!0,onkeyup:!0,onlanguagechange:!0,onload:!0,onloadeddata:!0,onloadedmetadata:!0,onloadstart:!0,onlostpointercapture:!0,onmessage:!0,onmessageerror:!0,onmousedown:!0,onmouseenter:!0,onmouseleave:!0,onmousemove:!0,onmouseout:!0,onmouseover:!0,onmouseup:!0,onmousewheel:!0,onoffline:!0,ononline:!0,onpagehide:!0,onpageshow:!0,onpause:!0,onplay:!0,onplaying:!0,onpointercancel:!0,onpointerdown:!0,onpointerenter:!0,onpointerleave:!0,onpointermove:!0,onpointerout:!0,onpointerover:!0,onpointerup:!0,onpopstate:!0,onprogress:!0,onratechange:!0,onrejectionhandled:!0,onreset:!0,onresize:!0,onscroll:!0,onsearch:!0,onseeked:!0,onseeking:!0,onselect:!0,onstalled:!0,onstorage:!0,onsubmit:!0,onsuspend:!0,ontimeupdate:!0,ontoggle:!0,ontransitionend:!0,onunhandledrejection:!0,onunload:!0,onvolumechange:!0,onwaiting:!0,onwheel:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,origin:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,PannerNode:!1,parent:!1,Path2D:!1,PaymentAddress:!1,PaymentRequest:!1,PaymentRequestUpdateEvent:!1,PaymentResponse:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceLongTaskTiming:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceNavigationTiming:!1,PerformanceObserver:!1,PerformanceObserverEntryList:!1,PerformancePaintTiming:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,PhotoCapabilities:!1,Plugin:!1,PluginArray:!1,PointerEvent:!1,PopStateEvent:!1,postMessage:!1,Presentation:!1,PresentationAvailability:!1,PresentationConnection:!1,PresentationConnectionAvailableEvent:!1,PresentationConnectionCloseEvent:!1,PresentationConnectionList:!1,PresentationReceiver:!1,PresentationRequest:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,PushSubscriptionOptions:!1,queueMicrotask:!1,RadioNodeList:!1,Range:!1,ReadableStream:!1,registerProcessor:!1,RemotePlayback:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,ResizeObserver:!1,ResizeObserverEntry:!1,resizeTo:!1,Response:!1,RTCCertificate:!1,RTCDataChannel:!1,RTCDataChannelEvent:!1,RTCDtlsTransport:!1,RTCIceCandidate:!1,RTCIceGatherer:!1,RTCIceTransport:!1,RTCPeerConnection:!1,RTCPeerConnectionIceEvent:!1,RTCRtpContributingSource:!1,RTCRtpReceiver:!1,RTCRtpSender:!1,RTCSctpTransport:!1,RTCSessionDescription:!1,RTCStatsReport:!1,RTCTrackEvent:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedWorker:!1,SourceBuffer:!1,SourceBufferList:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,StaticRange:!1,status:!1,statusbar:!1,StereoPannerNode:!1,stop:!1,Storage:!1,StorageEvent:!1,StorageManager:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAngle:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGComponentTransferFunctionElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGElement:!1,SVGEllipseElement:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGImageElement:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPathElement:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGViewElement:!1,TaskAttributionTiming:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,visualViewport:!1,VisualViewport:!1,VTTCue:!1,WaveShaperNode:!1,WebAssembly:!1,WebGL2RenderingContext:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLQuery:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLSampler:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLSync:!1,WebGLTexture:!1,WebGLTransformFeedback:!1,WebGLUniformLocation:!1,WebGLVertexArrayObject:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,WritableStream:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathExpression:!1,XPathResult:!1,XSLTProcessor:!1},e3e={addEventListener:!1,applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,queueMicrotask:!1,removeEventListener:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,WorkerGlobalScope:!1,XMLHttpRequest:!1},t3e={__dirname:!1,__filename:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,global:!1,Intl:!1,module:!1,process:!1,queueMicrotask:!1,require:!1,setImmediate:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1},r3e={exports:!0,global:!1,module:!1,require:!1},a3e={define:!1,require:!1},n3e={after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},s3e={afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},i3e={afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fdescribe:!1,fit:!1,it:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},o3e={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},l3e={console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},u3e={emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},c3e={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},d3e={__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,java:!1,Java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},p3e={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},f3e={$:!1,jQuery:!1},h3e={YAHOO:!1,YAHOO_config:!1,YUI:!1,YUI_config:!1},m3e={cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ln:!1,ls:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},y3e={$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},g3e={_:!1,$:!1,Accounts:!1,AccountsClient:!1,AccountsCommon:!1,AccountsServer:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPRateLimiter:!1,DDPServer:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},v3e={_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},b3e={$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},x3e={addEventListener:!1,applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,clearInterval:!1,clearTimeout:!1,Client:!1,clients:!1,Clients:!1,close:!0,console:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,fetch:!1,FetchEvent:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!1,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onfetch:!0,oninstall:!0,onlanguagechange:!0,onmessage:!0,onmessageerror:!0,onnotificationclick:!0,onnotificationclose:!0,onoffline:!0,ononline:!0,onpush:!0,onpushsubscriptionchange:!0,onrejectionhandled:!0,onsync:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,queueMicrotask:!1,registration:!1,removeEventListener:!1,Request:!1,Response:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,skipWaiting:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,WindowClient:!1,Worker:!1,WorkerGlobalScope:!1,XMLHttpRequest:!1},R3e={advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},E3e={andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findAll:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1,wait:!1},S3e={$:!1,$$:!1,browser:!1,by:!1,By:!1,DartObject:!1,element:!1,protractor:!1},T3e={browser:!1,chrome:!1,opr:!1},w3e={cloneInto:!1,createObjectIn:!1,exportFunction:!1,GM:!1,GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1},P3e={$:!1,$_:!1,$$:!1,$0:!1,$1:!1,$2:!1,$3:!1,$4:!1,$x:!1,chrome:!1,clear:!1,copy:!1,debug:!1,dir:!1,dirxml:!1,getEventListeners:!1,inspect:!1,keys:!1,monitor:!1,monitorEvents:!1,profile:!1,profileEnd:!1,queryObjects:!1,table:!1,undebug:!1,unmonitor:!1,unmonitorEvents:!1,values:!1},A3e={builtin:XTe,es5:JTe,es2015:YTe,es2017:QTe,browser:ZTe,worker:e3e,node:t3e,commonjs:r3e,amd:a3e,mocha:n3e,jasmine:s3e,jest:i3e,qunit:o3e,phantomjs:l3e,couch:u3e,rhino:c3e,nashorn:d3e,wsh:p3e,jquery:f3e,yui:h3e,shelljs:m3e,prototypejs:y3e,meteor:g3e,mongo:v3e,applescript:b3e,serviceworker:x3e,atomtest:R3e,embertest:E3e,protractor:S3e,"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1,URL:!1,URLSearchParams:!1},webextensions:T3e,greasemonkey:w3e,devtools:P3e},LE,TV;function S1(){return TV||(TV=1,LE=A3e),LE}function I3e(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var C3e=(I3e(er.env.BABEL_8_BREAKING),S1()),ph=new WeakMap,T1=new WeakMap;function j3e(){wV(),PV()}function wV(){ph=new WeakMap}function PV(){T1=new WeakMap}var ME=Object.freeze({});function fh(e,r){var s,l;return e=null,(s=ph.get((l=e)!=null?l:ME))==null?void 0:s.get(r)}function AV(e,r){var s,l;e=null;var u=ph.get((s=e)!=null?s:ME);u||ph.set((l=e)!=null?l:ME,u=new WeakMap);var o=u.get(r);return o||u.set(r,o=new Map),o}var O3e=Object.freeze({__proto__:null,clear:j3e,clearPath:wV,clearScope:PV,getCachedPaths:fh,getOrCreateCachedPaths:AV,get path(){return ph},get scope(){return T1}}),IV=jF,_3e=tr,CV=ft,jV=me,OV=_s,tc=Ne,_V=ht,N3e=C7,NV=ct,k3e=Td,D3e=cf,L3e=Io,kV=yd,M3e=pf,BE=gd,B3e=ja,rc=Dt,FE=vd,F3e=yn,$3e=lr,q3e=Sd,U3e=aF,V3e=or,W3e=Mt,G3e=tF,K3e=Cg,H3e=Hr,z3e=Js,X3e=bf,DV=Di,LV=Xs,J3e=Lu,Y3e=Ja,Q3e=Xt,MV=_f,$E=Vt,Z3e=Wr,ewe=Md,twe=Br,rwe=Sr,awe=Sg,nwe=Tg,swe=Sn,BV=wg,iwe=gf,owe=Li,lwe=Of,uwe=Qu,cwe=Mr;function Wa(e,r){switch(e==null?void 0:e.type){default:if(FE(e)||lwe(e)){var s;if((kV(e)||BE(e)||FE(e))&&e.source)Wa(e.source,r);else if((BE(e)||FE(e))&&(s=e.specifiers)!=null&&s.length)for(var l=C(e.specifiers),u;!(u=l()).done;){var o=u.value;Wa(o,r)}else(M3e(e)||BE(e))&&e.declaration&&Wa(e.declaration,r)}else U3e(e)?Wa(e.local,r):F3e(e)&&!V3e(e)&&!H3e(e)&&!DV(e)&&r.push(e.value);break;case"MemberExpression":case"OptionalMemberExpression":case"JSXMemberExpression":Wa(e.object,r),Wa(e.property,r);break;case"Identifier":case"JSXIdentifier":r.push(e.name);break;case"CallExpression":case"OptionalCallExpression":case"NewExpression":Wa(e.callee,r);break;case"ObjectExpression":case"ObjectPattern":for(var c=C(e.properties),f;!(f=c()).done;){var h=f.value;Wa(h,r)}break;case"SpreadElement":case"RestElement":Wa(e.argument,r);break;case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":case"ClassPrivateProperty":case"ClassPrivateMethod":Wa(e.key,r);break;case"ThisExpression":r.push("this");break;case"Super":r.push("super");break;case"Import":r.push("import");break;case"DoExpression":r.push("do");break;case"YieldExpression":r.push("yield"),Wa(e.argument,r);break;case"AwaitExpression":r.push("await"),Wa(e.argument,r);break;case"AssignmentExpression":Wa(e.left,r);break;case"VariableDeclarator":Wa(e.id,r);break;case"FunctionExpression":case"FunctionDeclaration":case"ClassExpression":case"ClassDeclaration":Wa(e.id,r);break;case"PrivateName":Wa(e.id,r);break;case"ParenthesizedExpression":Wa(e.expression,r);break;case"UnaryExpression":case"UpdateExpression":Wa(e.argument,r);break;case"MetaProperty":Wa(e.meta,r),Wa(e.property,r);break;case"JSXElement":Wa(e.openingElement,r);break;case"JSXOpeningElement":Wa(e.name,r);break;case"JSXFragment":Wa(e.openingFragment,r);break;case"JSXOpeningFragment":r.push("Fragment");break;case"JSXNamespacedName":Wa(e.namespace,r),Wa(e.name,r);break}}var w1={ForStatement:function(r){var s=r.get("init");if(s.isVar()){var l=r.scope,u=l.getFunctionParent()||l.getProgramParent();u.registerBinding("var",s)}},Declaration:function(r){if(!r.isBlockScoped()&&!r.isImportDeclaration()&&!r.isExportDeclaration()){var s=r.scope.getFunctionParent()||r.scope.getProgramParent();s.registerDeclaration(r)}},ImportDeclaration:function(r){var s=r.scope.getBlockParent();s.registerDeclaration(r)},ReferencedIdentifier:function(r,s){s.references.push(r)},ForXStatement:function(r,s){var l=r.get("left");if(l.isPattern()||l.isIdentifier())s.constantViolations.push(r);else if(l.isVar()){var u=r.scope,o=u.getFunctionParent()||u.getProgramParent();o.registerBinding("var",l)}},ExportDeclaration:{exit:function(r){var s=r.node,l=r.scope;if(!kV(s)){var u=s.declaration;if(L3e(u)||B3e(u)){var o=u.id;if(!o)return;var c=l.getBinding(o.name);c==null||c.reference(r)}else if(Y3e(u))for(var f=C(u.declarations),h;!(h=f()).done;)for(var m=h.value,g=0,x=Object.keys(OV(m));g<x.length;g++){var R=x[g],w=l.getBinding(R);w==null||w.reference(r)}}}},LabeledStatement:function(r){r.scope.getBlockParent().registerDeclaration(r)},AssignmentExpression:function(r,s){s.assignments.push(r)},UpdateExpression:function(r,s){s.constantViolations.push(r)},UnaryExpression:function(r,s){r.node.operator==="delete"&&s.constantViolations.push(r)},BlockScoped:function(r){var s=r.scope;s.path===r&&(s=s.parent);var l=s.getBlockParent();if(l.registerDeclaration(r),r.isClassDeclaration()&&r.node.id){var u=r.node.id,o=u.name;r.scope.bindings[o]=r.scope.parent.getBinding(o)}},CatchClause:function(r){r.scope.registerBinding("let",r)},Function:function(r){for(var s=r.get("params"),l=C(s),u;!(u=l()).done;){var o=u.value;r.scope.registerBinding("param",o)}r.isFunctionExpression()&&r.node.id&&!r.node.id[IV]&&r.scope.registerBinding("local",r.get("id"),r)},ClassExpression:function(r){r.node.id&&!r.node.id[IV]&&r.scope.registerBinding("local",r.get("id"),r)},TSTypeAnnotation:function(r){r.skip()}},dwe=0,P1=function(){function e(s){this.uid=void 0,this.path=void 0,this.block=void 0,this.labels=void 0,this.inited=void 0,this.bindings=void 0,this.references=void 0,this.globals=void 0,this.uids=void 0,this.data=void 0,this.crawling=void 0;var l=s.node,u=T1.get(l);if((u==null?void 0:u.path)===s)return u;T1.set(l,this),this.uid=dwe++,this.block=l,this.path=s,this.labels=new Map,this.inited=!1}var r=e.prototype;return r.traverse=function(l,u,o){$a(l,u,this,o,this.path)},r.generateDeclaredUidIdentifier=function(l){var u=this.generateUidIdentifier(l);return this.push({id:u}),jV(u)},r.generateUidIdentifier=function(l){return tc(this.generateUid(l))},r.generateUid=function(l){l===void 0&&(l="temp"),l=ewe(l).replace(/^_+/,"").replace(/\d+$/g,"");var u,o=1;do u=this._generateUid(l,o),o++;while(this.hasLabel(u)||this.hasBinding(u)||this.hasGlobal(u)||this.hasReference(u));var c=this.getProgramParent();return c.references[u]=!0,c.uids[u]=!0,u},r._generateUid=function(l,u){var o=l;return u>1&&(o+=u),"_"+o},r.generateUidBasedOnNode=function(l,u){var o=[];Wa(l,o);var c=o.join("$");return c=c.replace(/^_/,"")||u||"ref",this.generateUid(c.slice(0,20))},r.generateUidIdentifierBasedOnNode=function(l,u){return tc(this.generateUidBasedOnNode(l,u))},r.isStatic=function(l){if(LV(l)||z3e(l)||BV(l))return!0;if(rc(l)){var u=this.getBinding(l.name);return u?u.constant:this.hasBinding(l.name)}return!1},r.maybeGenerateMemoised=function(l,u){if(this.isStatic(l))return null;var o=this.generateUidIdentifierBasedOnNode(l);return u?o:(this.push({id:o}),jV(o))},r.checkBlockScopedCollisions=function(l,u,o,c){if(u!=="param"&&l.kind!=="local"){var f=u==="let"||l.kind==="let"||l.kind==="const"||l.kind==="module"||l.kind==="param"&&u==="const";if(f)throw this.hub.buildError(c,'Duplicate declaration "'+o+'"',TypeError)}},r.rename=function(l,u){var o=this.getBinding(l);if(o){u||(u=this.generateUidIdentifier(l).name);var c=new KTe(o,l,u);c.rename(arguments[2])}},r._renameFromMap=function(l,u,o,c){l[u]&&(l[o]=c,l[u]=null)},r.dump=function(){var l="-".repeat(60);console.log(l);var u=this;do{console.log("#",u.block.type);for(var o=0,c=Object.keys(u.bindings);o<c.length;o++){var f=c[o],h=u.bindings[f];console.log(" -",f,{constant:h.constant,references:h.references,violations:h.constantViolations.length,kind:h.kind})}}while(u=u.parent);console.log(l)},r.toArray=function(l,u,o){if(rc(l)){var c=this.getBinding(l.name);if(c!=null&&c.constant&&c.path.isGenericType("Array"))return l}if(_V(l))return l;if(rc(l,{name:"arguments"}))return CV($E($E($E(tc("Array"),tc("prototype")),tc("slice")),tc("call")),[l]);var f,h=[l];return u===!0?f="toConsumableArray":typeof u=="number"?(h.push(Z3e(u)),f="slicedToArray"):f="toArray",o&&(h.unshift(this.hub.addHelper(f)),f="maybeArrayLike"),CV(this.hub.addHelper(f),h)},r.hasLabel=function(l){return!!this.getLabel(l)},r.getLabel=function(l){return this.labels.get(l)},r.registerLabel=function(l){this.labels.set(l.node.label.name,l)},r.registerDeclaration=function(l){if(l.isLabeledStatement())this.registerLabel(l);else if(l.isFunctionDeclaration())this.registerBinding("hoisted",l.get("id"),l);else if(l.isVariableDeclaration())for(var u=l.get("declarations"),o=l.node.kind,c=C(u),f;!(f=c()).done;){var h=f.value;this.registerBinding(o==="using"||o==="await using"?"const":o,h)}else if(l.isClassDeclaration()){if(l.node.declare)return;this.registerBinding("let",l)}else if(l.isImportDeclaration())for(var m=l.node.importKind==="type"||l.node.importKind==="typeof",g=l.get("specifiers"),x=C(g),R;!(R=x()).done;){var w=R.value,T=m||w.isImportSpecifier()&&(w.node.importKind==="type"||w.node.importKind==="typeof");this.registerBinding(T?"unknown":"module",w)}else if(l.isExportDeclaration()){var I=l.get("declaration");(I.isClassDeclaration()||I.isFunctionDeclaration()||I.isVariableDeclaration())&&this.registerDeclaration(I)}else this.registerBinding("unknown",l)},r.buildUndefinedNode=function(){return uwe()},r.registerConstantViolation=function(l){for(var u=l.getAssignmentIdentifiers(),o=0,c=Object.keys(u);o<c.length;o++){var f,h=c[o];(f=this.getBinding(h))==null||f.reassign(l)}},r.registerBinding=function(l,u,o){if(o===void 0&&(o=u),!l)throw new ReferenceError("no `kind`");if(u.isVariableDeclaration()){for(var c=u.get("declarations"),f=C(c),h;!(h=f()).done;){var m=h.value;this.registerBinding(l,m)}return}for(var g=this.getProgramParent(),x=u.getOuterBindingIdentifiers(!0),R=0,w=Object.keys(x);R<w.length;R++){var T=w[R];g.references[T]=!0;for(var I=C(x[T]),P;!(P=I()).done;){var O=P.value,j=this.getOwnBinding(T);if(j){if(j.identifier===O)continue;this.checkBlockScopedCollisions(j,l,T,O)}j?j.reassign(o):this.bindings[T]=new HTe({identifier:O,scope:this,path:o,kind:l})}}},r.addGlobal=function(l){this.globals[l.name]=l},r.hasUid=function(l){var u=this;do if(u.uids[l])return!0;while(u=u.parent);return!1},r.hasGlobal=function(l){var u=this;do if(u.globals[l])return!0;while(u=u.parent);return!1},r.hasReference=function(l){return!!this.getProgramParent().references[l]},r.isPure=function(l,u){if(rc(l)){var o=this.getBinding(l.name);return o?u?o.constant:!0:!1}else{if(LV(l)||iwe(l)||BV(l)||owe(l))return!0;if(k3e(l)){var c;return l.superClass&&!this.isPure(l.superClass,u)||((c=l.decorators)==null?void 0:c.length)>0?!1:this.isPure(l.body,u)}else if(D3e(l)){for(var f=C(l.body),h;!(h=f()).done;){var m=h.value;if(!this.isPure(m,u))return!1}return!0}else{if(N3e(l))return this.isPure(l.left,u)&&this.isPure(l.right,u);if(_V(l)||nwe(l)){for(var g=C(l.elements),x;!(x=g()).done;){var R=x.value;if(R!==null&&!this.isPure(R,u))return!1}return!0}else if(W3e(l)||awe(l)){for(var w=C(l.properties),T;!(T=w()).done;){var I=T.value;if(!this.isPure(I,u))return!1}return!0}else if(q3e(l)){var P;return!(l.computed&&!this.isPure(l.key,u)||((P=l.decorators)==null?void 0:P.length)>0)}else if(G3e(l)){var O;return!(l.computed&&!this.isPure(l.key,u)||((O=l.decorators)==null?void 0:O.length)>0||(swe(l)||l.static)&&l.value!==null&&!this.isPure(l.value,u))}else{if(J3e(l))return this.isPure(l.argument,u);if(DV(l)){for(var j=C(l.expressions),D;!(D=j()).done;){var k=D.value;if(!this.isPure(k,u))return!1}return!0}else return X3e(l)?MV(l.tag,"String.raw")&&!this.hasBinding("String",{noGlobals:!0})&&this.isPure(l.quasi,u):$3e(l)?!l.computed&&rc(l.object)&&l.object.name==="Symbol"&&rc(l.property)&&l.property.name!=="for"&&!this.hasBinding("Symbol",{noGlobals:!0}):NV(l)?MV(l.callee,"Symbol.for")&&!this.hasBinding("Symbol",{noGlobals:!0})&&l.arguments.length===1&&nt(l.arguments[0]):K3e(l)}}}},r.setData=function(l,u){return this.data[l]=u},r.getData=function(l){var u=this;do{var o=u.data[l];if(o!=null)return o}while(u=u.parent)},r.removeData=function(l){var u=this;do{var o=u.data[l];o!=null&&(u.data[l]=null)}while(u=u.parent)},r.init=function(){this.inited||(this.inited=!0,this.crawl())},r.crawl=function(){var l=this.path;this.references=Object.create(null),this.bindings=Object.create(null),this.globals=Object.create(null),this.uids=Object.create(null),this.data=Object.create(null);var u=this.getProgramParent();if(!u.crawling){var o={references:[],constantViolations:[],assignments:[]};if(this.crawling=!0,l.type!=="Program"&&kE(w1)){for(var c=C(w1.enter),f;!(f=c()).done;){var h=f.value;h.call(o,l,o)}var m=w1[l.type];if(m)for(var g=C(m.enter),x;!(x=g()).done;){var R=x.value;R.call(o,l,o)}}l.traverse(w1,o),this.crawling=!1;for(var w=C(o.assignments),T;!(T=w()).done;){for(var I=T.value,P=I.getAssignmentIdentifiers(),O=0,j=Object.keys(P);O<j.length;O++){var D=j[O];I.scope.getBinding(D)||u.addGlobal(P[D])}I.scope.registerConstantViolation(I)}for(var k=C(o.references),B;!(B=k()).done;){var F=B.value,L=F.scope.getBinding(F.node.name);L?L.reference(F):u.addGlobal(F.node)}for(var V=C(o.constantViolations),H;!(H=V()).done;){var K=H.value;K.scope.registerConstantViolation(K)}}},r.push=function(l){var u=this.path;u.isPattern()?u=this.getPatternParent().path:!u.isBlockStatement()&&!u.isProgram()&&(u=this.getBlockParent().path),u.isSwitchStatement()&&(u=(this.getFunctionParent()||this.getProgramParent()).path);var o=l.init,c=l.unique,f=l.kind,h=f===void 0?"var":f,m=l.id;if(!o&&!c&&(h==="var"||h==="let")&&u.isFunction()&&!u.node.name&&NV(u.parent,{callee:u.node})&&u.parent.arguments.length<=u.node.params.length&&rc(m)){u.pushContainer("params",m),u.scope.registerBinding("param",u.get("params")[u.node.params.length-1]);return}(u.isLoop()||u.isCatchClause()||u.isFunction())&&(u.ensureBlock(),u=u.get("body"));var g=l._blockHoist==null?2:l._blockHoist,x="declaration:"+h+":"+g,R=!c&&u.getData(x);if(!R){var w=twe(h,[]);w._blockHoist=g;var T=u.unshiftContainer("body",[w]),I=je(T,1);R=I[0],c||u.setData(x,R)}var P=rwe(m,o),O=R.node.declarations.push(P);u.scope.registerBinding(h,R.get("declarations")[O-1])},r.getProgramParent=function(){var l=this;do if(l.path.isProgram())return l;while(l=l.parent);throw new Error("Couldn't find a Program")},r.getFunctionParent=function(){var l=this;do if(l.path.isFunctionParent())return l;while(l=l.parent);return null},r.getBlockParent=function(){var l=this;do if(l.path.isBlockParent())return l;while(l=l.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},r.getPatternParent=function(){var l=this;do if(!l.path.isPattern())return l.getBlockParent();while(l=l.parent.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},r.getAllBindings=function(){var l=Object.create(null),u=this;do{for(var o=0,c=Object.keys(u.bindings);o<c.length;o++){var f=c[o];f in l||(l[f]=u.bindings[f])}u=u.parent}while(u);return l},r.getAllBindingsOfKind=function(){for(var l=Object.create(null),u=arguments.length,o=new Array(u),c=0;c<u;c++)o[c]=arguments[c];for(var f=0,h=o;f<h.length;f++){var m=h[f],g=this;do{for(var x=0,R=Object.keys(g.bindings);x<R.length;x++){var w=R[x],T=g.bindings[w];T.kind===m&&(l[w]=T)}g=g.parent}while(g)}return l},r.bindingIdentifierEquals=function(l,u){return this.getBindingIdentifier(l)===u},r.getBinding=function(l){var u=this,o;do{var c=u.getOwnBinding(l);if(c){var f;if(!((f=o)!=null&&f.isPattern()&&c.kind!=="param"&&c.kind!=="local"))return c}else if(!c&&l==="arguments"&&u.path.isFunction()&&!u.path.isArrowFunctionExpression())break;o=u.path}while(u=u.parent)},r.getOwnBinding=function(l){return this.bindings[l]},r.getBindingIdentifier=function(l){var u;return(u=this.getBinding(l))==null?void 0:u.identifier},r.getOwnBindingIdentifier=function(l){var u=this.bindings[l];return u==null?void 0:u.identifier},r.hasOwnBinding=function(l){return!!this.getOwnBinding(l)},r.hasBinding=function(l,u){if(!l)return!1;var o=this;do if(o.hasOwnBinding(l))return!0;while(o=o.parent);var c,f;return typeof u=="object"?(c=u.noGlobals,f=u.noUids):typeof u=="boolean"&&(c=u),!!(!f&&this.hasUid(l)||!c&&e.globals.includes(l)||!c&&e.contextVariables.includes(l))},r.parentHasBinding=function(l,u){var o;return(o=this.parent)==null?void 0:o.hasBinding(l,u)},r.moveBindingTo=function(l,u){var o=this.getBinding(l);o&&(o.scope.removeOwnBinding(l),o.scope=u,u.bindings[l]=o)},r.removeOwnBinding=function(l){delete this.bindings[l]},r.removeBinding=function(l){var u;(u=this.getBinding(l))==null||u.scope.removeOwnBinding(l);var o=this;do o.uids[l]&&(o.uids[l]=!1);while(o=o.parent)},r.hoistVariables=function(l){var u=this;l===void 0&&(l=function(H){return u.push({id:H})}),this.crawl();for(var o=new Set,c=0,f=Object.keys(this.bindings);c<f.length;c++){var h=f[c],m=this.bindings[h];if(m){var g=m.path;if(g.isVariableDeclarator()){var x=g.parent,R=g.parentPath;if(!(x.kind!=="var"||o.has(x))){o.add(g.parent);for(var w=void 0,T=[],I=C(x.declarations),P;!(P=I()).done;){var O,j=P.value;(O=w)!=null||(w=j.id),j.init&&T.push(_3e("=",j.id,j.init));for(var D=Object.keys(OV(j,!1,!0,!0)),k=0,B=D;k<B.length;k++){var F=B[k];l(tc(F),j.init!=null)}}if(R.parentPath.isFor({left:x}))R.replaceWith(w);else if(T.length===0)R.remove();else{var L=T.length===1?T[0]:cwe(T);R.parentPath.isForStatement({init:x})?R.replaceWith(L):R.replaceWith(Q3e(L))}}}}}},_(e,[{key:"parent",get:function(){var l,u,o=this.path;do{var c,f=o.key==="key"||o.listKey==="decorators";o=o.parentPath,f&&o.isMethod()&&(o=o.parentPath),(c=o)!=null&&c.isScope()&&(u=o)}while(o&&!u);return(l=u)==null?void 0:l.scope}},{key:"parentBlock",get:function(){return this.path.parent}},{key:"hub",get:function(){return this.path.hub}}])}();P1.globals=Object.keys(C3e.builtin),P1.contextVariables=["arguments","undefined","Infinity","NaN"];var qE={exports:{}},A1={exports:{}},FV;function $V(){return FV||(FV=1,function(e,r){(function(s,l){l(r)})(ci,function(s){var l=_(function(){this._indexes={__proto__:null},this.array=[]});function u(m){return m}function o(m,g){return m._indexes[g]}function c(m,g){var x=o(m,g);if(x!==void 0)return x;var R=m,w=R.array,T=R._indexes,I=w.push(g);return T[g]=I-1}function f(m){var g=m,x=g.array,R=g._indexes;if(x.length!==0){var w=x.pop();R[w]=void 0}}function h(m,g){var x=o(m,g);if(x!==void 0){for(var R=m,w=R.array,T=R._indexes,I=x+1;I<w.length;I++){var P=w[I];w[I-1]=P,T[P]--}T[g]=void 0,w.pop()}}s.SetArray=l,s.get=o,s.pop=f,s.put=c,s.remove=h,Object.defineProperty(s,"__esModule",{value:!0})})}(A1,A1.exports)),A1.exports}var io=[],yi=[],pwe=typeof Uint8Array<"u"?Uint8Array:Array,UE=!1;function qV(){UE=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,s=e.length;r<s;++r)io[r]=e[r],yi[e.charCodeAt(r)]=r;yi[45]=62,yi[95]=63}function fwe(e){UE||qV();var r,s,l,u,o,c,f=e.length;if(f%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o=e[f-2]==="="?2:e[f-1]==="="?1:0,c=new pwe(f*3/4-o),l=o>0?f-4:f;var h=0;for(r=0,s=0;r<l;r+=4,s+=3)u=yi[e.charCodeAt(r)]<<18|yi[e.charCodeAt(r+1)]<<12|yi[e.charCodeAt(r+2)]<<6|yi[e.charCodeAt(r+3)],c[h++]=u>>16&255,c[h++]=u>>8&255,c[h++]=u&255;return o===2?(u=yi[e.charCodeAt(r)]<<2|yi[e.charCodeAt(r+1)]>>4,c[h++]=u&255):o===1&&(u=yi[e.charCodeAt(r)]<<10|yi[e.charCodeAt(r+1)]<<4|yi[e.charCodeAt(r+2)]>>2,c[h++]=u>>8&255,c[h++]=u&255),c}function hwe(e){return io[e>>18&63]+io[e>>12&63]+io[e>>6&63]+io[e&63]}function mwe(e,r,s){for(var l,u=[],o=r;o<s;o+=3)l=(e[o]<<16)+(e[o+1]<<8)+e[o+2],u.push(hwe(l));return u.join("")}function UV(e){UE||qV();for(var r,s=e.length,l=s%3,u="",o=[],c=16383,f=0,h=s-l;f<h;f+=c)o.push(mwe(e,f,f+c>h?h:f+c));return l===1?(r=e[s-1],u+=io[r>>2],u+=io[r<<4&63],u+="=="):l===2&&(r=(e[s-2]<<8)+e[s-1],u+=io[r>>10],u+=io[r>>4&63],u+=io[r<<2&63],u+="="),o.push(u),o.join("")}function I1(e,r,s,l,u){var o,c,f=u*8-l-1,h=(1<<f)-1,m=h>>1,g=-7,x=s?u-1:0,R=s?-1:1,w=e[r+x];for(x+=R,o=w&(1<<-g)-1,w>>=-g,g+=f;g>0;o=o*256+e[r+x],x+=R,g-=8);for(c=o&(1<<-g)-1,o>>=-g,g+=l;g>0;c=c*256+e[r+x],x+=R,g-=8);if(o===0)o=1-m;else{if(o===h)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,l),o=o-m}return(w?-1:1)*c*Math.pow(2,o-l)}function VV(e,r,s,l,u,o){var c,f,h,m=o*8-u-1,g=(1<<m)-1,x=g>>1,R=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=l?0:o-1,T=l?1:-1,I=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(f=isNaN(r)?1:0,c=g):(c=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-c))<1&&(c--,h*=2),c+x>=1?r+=R/h:r+=R*Math.pow(2,1-x),r*h>=2&&(c++,h/=2),c+x>=g?(f=0,c=g):c+x>=1?(f=(r*h-1)*Math.pow(2,u),c=c+x):(f=r*Math.pow(2,x-1)*Math.pow(2,u),c=0));u>=8;e[s+w]=f&255,w+=T,f/=256,u-=8);for(c=c<<u|f,m+=u;m>0;e[s+w]=c&255,w+=T,c/=256,m-=8);e[s+w-T]|=I*128}var ywe={}.toString,WV=Array.isArray||function(e){return ywe.call(e)=="[object Array]"};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */var gwe=50;Nt.TYPED_ARRAY_SUPPORT=Oo.TYPED_ARRAY_SUPPORT!==void 0?Oo.TYPED_ARRAY_SUPPORT:!0,C1();function C1(){return Nt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Fo(e,r){if(C1()<r)throw new RangeError("Invalid typed array length");return Nt.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(r),e.__proto__=Nt.prototype):(e===null&&(e=new Nt(r)),e.length=r),e}function Nt(e,r,s){if(!Nt.TYPED_ARRAY_SUPPORT&&!(this instanceof Nt))return new Nt(e,r,s);if(typeof e=="number"){if(typeof r=="string")throw new Error("If encoding is specified then the first argument must be a string");return VE(this,e)}return GV(this,e,r,s)}Nt.poolSize=8192,Nt._augment=function(e){return e.__proto__=Nt.prototype,e};function GV(e,r,s,l){if(typeof r=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer?xwe(e,r,s,l):typeof r=="string"?bwe(e,r,s):Rwe(e,r)}Nt.from=function(e,r,s){return GV(null,e,r,s)},Nt.TYPED_ARRAY_SUPPORT&&(Nt.prototype.__proto__=Uint8Array.prototype,Nt.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&Nt[Symbol.species]);function KV(e){if(typeof e!="number")throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function vwe(e,r,s,l){return KV(r),r<=0?Fo(e,r):s!==void 0?typeof l=="string"?Fo(e,r).fill(s,l):Fo(e,r).fill(s):Fo(e,r)}Nt.alloc=function(e,r,s){return vwe(null,e,r,s)};function VE(e,r){if(KV(r),e=Fo(e,r<0?0:GE(r)|0),!Nt.TYPED_ARRAY_SUPPORT)for(var s=0;s<r;++s)e[s]=0;return e}Nt.allocUnsafe=function(e){return VE(null,e)},Nt.allocUnsafeSlow=function(e){return VE(null,e)};function bwe(e,r,s){if((typeof s!="string"||s==="")&&(s="utf8"),!Nt.isEncoding(s))throw new TypeError('"encoding" must be a valid string encoding');var l=HV(r,s)|0;e=Fo(e,l);var u=e.write(r,s);return u!==l&&(e=e.slice(0,u)),e}function WE(e,r){var s=r.length<0?0:GE(r.length)|0;e=Fo(e,s);for(var l=0;l<s;l+=1)e[l]=r[l]&255;return e}function xwe(e,r,s,l){if(r.byteLength,s<0||r.byteLength<s)throw new RangeError("'offset' is out of bounds");if(r.byteLength<s+(l||0))throw new RangeError("'length' is out of bounds");return s===void 0&&l===void 0?r=new Uint8Array(r):l===void 0?r=new Uint8Array(r,s):r=new Uint8Array(r,s,l),Nt.TYPED_ARRAY_SUPPORT?(e=r,e.__proto__=Nt.prototype):e=WE(e,r),e}function Rwe(e,r){if(oo(r)){var s=GE(r.length)|0;return e=Fo(e,s),e.length===0||r.copy(e,0,0,s),e}if(r){if(typeof ArrayBuffer<"u"&&r.buffer instanceof ArrayBuffer||"length"in r)return typeof r.length!="number"||$we(r.length)?Fo(e,0):WE(e,r);if(r.type==="Buffer"&&WV(r.data))return WE(e,r.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function GE(e){if(e>=C1())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+C1().toString(16)+" bytes");return e|0}Nt.isBuffer=Ud;function oo(e){return!!(e!=null&&e._isBuffer)}Nt.compare=function(r,s){if(!oo(r)||!oo(s))throw new TypeError("Arguments must be Buffers");if(r===s)return 0;for(var l=r.length,u=s.length,o=0,c=Math.min(l,u);o<c;++o)if(r[o]!==s[o]){l=r[o],u=s[o];break}return l<u?-1:u<l?1:0},Nt.isEncoding=function(r){switch(String(r).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Nt.concat=function(r,s){if(!WV(r))throw new TypeError('"list" argument must be an Array of Buffers');if(r.length===0)return Nt.alloc(0);var l;if(s===void 0)for(s=0,l=0;l<r.length;++l)s+=r[l].length;var u=Nt.allocUnsafe(s),o=0;for(l=0;l<r.length;++l){var c=r[l];if(!oo(c))throw new TypeError('"list" argument must be an Array of Buffers');c.copy(u,o),o+=c.length}return u};function HV(e,r){if(oo(e))return e.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var s=e.length;if(s===0)return 0;for(var l=!1;;)switch(r){case"ascii":case"latin1":case"binary":return s;case"utf8":case"utf-8":case void 0:return _1(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s*2;case"hex":return s>>>1;case"base64":return rW(e).length;default:if(l)return _1(e).length;r=(""+r).toLowerCase(),l=!0}}Nt.byteLength=HV;function Ewe(e,r,s){var l=!1;if((r===void 0||r<0)&&(r=0),r>this.length||((s===void 0||s>this.length)&&(s=this.length),s<=0)||(s>>>=0,r>>>=0,s<=r))return"";for(e||(e="utf8");;)switch(e){case"hex":return _we(this,r,s);case"utf8":case"utf-8":return YV(this,r,s);case"ascii":return jwe(this,r,s);case"latin1":case"binary":return Owe(this,r,s);case"base64":return Iwe(this,r,s);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Nwe(this,r,s);default:if(l)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),l=!0}}Nt.prototype._isBuffer=!0;function ac(e,r,s){var l=e[r];e[r]=e[s],e[s]=l}Nt.prototype.swap16=function(){var r=this.length;if(r%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var s=0;s<r;s+=2)ac(this,s,s+1);return this},Nt.prototype.swap32=function(){var r=this.length;if(r%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var s=0;s<r;s+=4)ac(this,s,s+3),ac(this,s+1,s+2);return this},Nt.prototype.swap64=function(){var r=this.length;if(r%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var s=0;s<r;s+=8)ac(this,s,s+7),ac(this,s+1,s+6),ac(this,s+2,s+5),ac(this,s+3,s+4);return this},Nt.prototype.toString=function(){var r=this.length|0;return r===0?"":arguments.length===0?YV(this,0,r):Ewe.apply(this,arguments)},Nt.prototype.equals=function(r){if(!oo(r))throw new TypeError("Argument must be a Buffer");return this===r?!0:Nt.compare(this,r)===0},Nt.prototype.inspect=function(){var r="",s=gwe;return this.length>0&&(r=this.toString("hex",0,s).match(/.{2}/g).join(" "),this.length>s&&(r+=" ... ")),"<Buffer "+r+">"},Nt.prototype.compare=function(r,s,l,u,o){if(!oo(r))throw new TypeError("Argument must be a Buffer");if(s===void 0&&(s=0),l===void 0&&(l=r?r.length:0),u===void 0&&(u=0),o===void 0&&(o=this.length),s<0||l>r.length||u<0||o>this.length)throw new RangeError("out of range index");if(u>=o&&s>=l)return 0;if(u>=o)return-1;if(s>=l)return 1;if(s>>>=0,l>>>=0,u>>>=0,o>>>=0,this===r)return 0;for(var c=o-u,f=l-s,h=Math.min(c,f),m=this.slice(u,o),g=r.slice(s,l),x=0;x<h;++x)if(m[x]!==g[x]){c=m[x],f=g[x];break}return c<f?-1:f<c?1:0};function zV(e,r,s,l,u){if(e.length===0)return-1;if(typeof s=="string"?(l=s,s=0):s>2147483647?s=2147483647:s<-2147483648&&(s=-2147483648),s=+s,isNaN(s)&&(s=u?0:e.length-1),s<0&&(s=e.length+s),s>=e.length){if(u)return-1;s=e.length-1}else if(s<0)if(u)s=0;else return-1;if(typeof r=="string"&&(r=Nt.from(r,l)),oo(r))return r.length===0?-1:XV(e,r,s,l,u);if(typeof r=="number")return r=r&255,Nt.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?u?Uint8Array.prototype.indexOf.call(e,r,s):Uint8Array.prototype.lastIndexOf.call(e,r,s):XV(e,[r],s,l,u);throw new TypeError("val must be string, number or Buffer")}function XV(e,r,s,l,u){var o=1,c=e.length,f=r.length;if(l!==void 0&&(l=String(l).toLowerCase(),l==="ucs2"||l==="ucs-2"||l==="utf16le"||l==="utf-16le")){if(e.length<2||r.length<2)return-1;o=2,c/=2,f/=2,s/=2}function h(w,T){return o===1?w[T]:w.readUInt16BE(T*o)}var m;if(u){var g=-1;for(m=s;m<c;m++)if(h(e,m)===h(r,g===-1?0:m-g)){if(g===-1&&(g=m),m-g+1===f)return g*o}else g!==-1&&(m-=m-g),g=-1}else for(s+f>c&&(s=c-f),m=s;m>=0;m--){for(var x=!0,R=0;R<f;R++)if(h(e,m+R)!==h(r,R)){x=!1;break}if(x)return m}return-1}Nt.prototype.includes=function(r,s,l){return this.indexOf(r,s,l)!==-1},Nt.prototype.indexOf=function(r,s,l){return zV(this,r,s,l,!0)},Nt.prototype.lastIndexOf=function(r,s,l){return zV(this,r,s,l,!1)};function Swe(e,r,s,l){s=Number(s)||0;var u=e.length-s;l?(l=Number(l),l>u&&(l=u)):l=u;var o=r.length;if(o%2!==0)throw new TypeError("Invalid hex string");l>o/2&&(l=o/2);for(var c=0;c<l;++c){var f=parseInt(r.substr(c*2,2),16);if(isNaN(f))return c;e[s+c]=f}return c}function Twe(e,r,s,l){return N1(_1(r,e.length-s),e,s,l)}function JV(e,r,s,l){return N1(Bwe(r),e,s,l)}function wwe(e,r,s,l){return JV(e,r,s,l)}function Pwe(e,r,s,l){return N1(rW(r),e,s,l)}function Awe(e,r,s,l){return N1(Fwe(r,e.length-s),e,s,l)}Nt.prototype.write=function(r,s,l,u){if(s===void 0)u="utf8",l=this.length,s=0;else if(l===void 0&&typeof s=="string")u=s,l=this.length,s=0;else if(isFinite(s))s=s|0,isFinite(l)?(l=l|0,u===void 0&&(u="utf8")):(u=l,l=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o=this.length-s;if((l===void 0||l>o)&&(l=o),r.length>0&&(l<0||s<0)||s>this.length)throw new RangeError("Attempt to write outside buffer bounds");u||(u="utf8");for(var c=!1;;)switch(u){case"hex":return Swe(this,r,s,l);case"utf8":case"utf-8":return Twe(this,r,s,l);case"ascii":return JV(this,r,s,l);case"latin1":case"binary":return wwe(this,r,s,l);case"base64":return Pwe(this,r,s,l);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Awe(this,r,s,l);default:if(c)throw new TypeError("Unknown encoding: "+u);u=(""+u).toLowerCase(),c=!0}},Nt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Iwe(e,r,s){return r===0&&s===e.length?UV(e):UV(e.slice(r,s))}function YV(e,r,s){s=Math.min(e.length,s);for(var l=[],u=r;u<s;){var o=e[u],c=null,f=o>239?4:o>223?3:o>191?2:1;if(u+f<=s){var h,m,g,x;switch(f){case 1:o<128&&(c=o);break;case 2:h=e[u+1],(h&192)===128&&(x=(o&31)<<6|h&63,x>127&&(c=x));break;case 3:h=e[u+1],m=e[u+2],(h&192)===128&&(m&192)===128&&(x=(o&15)<<12|(h&63)<<6|m&63,x>2047&&(x<55296||x>57343)&&(c=x));break;case 4:h=e[u+1],m=e[u+2],g=e[u+3],(h&192)===128&&(m&192)===128&&(g&192)===128&&(x=(o&15)<<18|(h&63)<<12|(m&63)<<6|g&63,x>65535&&x<1114112&&(c=x))}}c===null?(c=65533,f=1):c>65535&&(c-=65536,l.push(c>>>10&1023|55296),c=56320|c&1023),l.push(c),u+=f}return Cwe(l)}var QV=4096;function Cwe(e){var r=e.length;if(r<=QV)return String.fromCharCode.apply(String,e);for(var s="",l=0;l<r;)s+=String.fromCharCode.apply(String,e.slice(l,l+=QV));return s}function jwe(e,r,s){var l="";s=Math.min(e.length,s);for(var u=r;u<s;++u)l+=String.fromCharCode(e[u]&127);return l}function Owe(e,r,s){var l="";s=Math.min(e.length,s);for(var u=r;u<s;++u)l+=String.fromCharCode(e[u]);return l}function _we(e,r,s){var l=e.length;(!r||r<0)&&(r=0),(!s||s<0||s>l)&&(s=l);for(var u="",o=r;o<s;++o)u+=Mwe(e[o]);return u}function Nwe(e,r,s){for(var l=e.slice(r,s),u="",o=0;o<l.length;o+=2)u+=String.fromCharCode(l[o]+l[o+1]*256);return u}Nt.prototype.slice=function(r,s){var l=this.length;r=~~r,s=s===void 0?l:~~s,r<0?(r+=l,r<0&&(r=0)):r>l&&(r=l),s<0?(s+=l,s<0&&(s=0)):s>l&&(s=l),s<r&&(s=r);var u;if(Nt.TYPED_ARRAY_SUPPORT)u=this.subarray(r,s),u.__proto__=Nt.prototype;else{var o=s-r;u=new Nt(o,void 0);for(var c=0;c<o;++c)u[c]=this[c+r]}return u};function In(e,r,s){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+r>s)throw new RangeError("Trying to access beyond buffer length")}Nt.prototype.readUIntLE=function(r,s,l){r=r|0,s=s|0,l||In(r,s,this.length);for(var u=this[r],o=1,c=0;++c<s&&(o*=256);)u+=this[r+c]*o;return u},Nt.prototype.readUIntBE=function(r,s,l){r=r|0,s=s|0,l||In(r,s,this.length);for(var u=this[r+--s],o=1;s>0&&(o*=256);)u+=this[r+--s]*o;return u},Nt.prototype.readUInt8=function(r,s){return s||In(r,1,this.length),this[r]},Nt.prototype.readUInt16LE=function(r,s){return s||In(r,2,this.length),this[r]|this[r+1]<<8},Nt.prototype.readUInt16BE=function(r,s){return s||In(r,2,this.length),this[r]<<8|this[r+1]},Nt.prototype.readUInt32LE=function(r,s){return s||In(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+this[r+3]*16777216},Nt.prototype.readUInt32BE=function(r,s){return s||In(r,4,this.length),this[r]*16777216+(this[r+1]<<16|this[r+2]<<8|this[r+3])},Nt.prototype.readIntLE=function(r,s,l){r=r|0,s=s|0,l||In(r,s,this.length);for(var u=this[r],o=1,c=0;++c<s&&(o*=256);)u+=this[r+c]*o;return o*=128,u>=o&&(u-=Math.pow(2,8*s)),u},Nt.prototype.readIntBE=function(r,s,l){r=r|0,s=s|0,l||In(r,s,this.length);for(var u=s,o=1,c=this[r+--u];u>0&&(o*=256);)c+=this[r+--u]*o;return o*=128,c>=o&&(c-=Math.pow(2,8*s)),c},Nt.prototype.readInt8=function(r,s){return s||In(r,1,this.length),this[r]&128?(255-this[r]+1)*-1:this[r]},Nt.prototype.readInt16LE=function(r,s){s||In(r,2,this.length);var l=this[r]|this[r+1]<<8;return l&32768?l|4294901760:l},Nt.prototype.readInt16BE=function(r,s){s||In(r,2,this.length);var l=this[r+1]|this[r]<<8;return l&32768?l|4294901760:l},Nt.prototype.readInt32LE=function(r,s){return s||In(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},Nt.prototype.readInt32BE=function(r,s){return s||In(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},Nt.prototype.readFloatLE=function(r,s){return s||In(r,4,this.length),I1(this,r,!0,23,4)},Nt.prototype.readFloatBE=function(r,s){return s||In(r,4,this.length),I1(this,r,!1,23,4)},Nt.prototype.readDoubleLE=function(r,s){return s||In(r,8,this.length),I1(this,r,!0,52,8)},Nt.prototype.readDoubleBE=function(r,s){return s||In(r,8,this.length),I1(this,r,!1,52,8)};function ks(e,r,s,l,u,o){if(!oo(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>u||r<o)throw new RangeError('"value" argument is out of bounds');if(s+l>e.length)throw new RangeError("Index out of range")}Nt.prototype.writeUIntLE=function(r,s,l,u){if(r=+r,s=s|0,l=l|0,!u){var o=Math.pow(2,8*l)-1;ks(this,r,s,l,o,0)}var c=1,f=0;for(this[s]=r&255;++f<l&&(c*=256);)this[s+f]=r/c&255;return s+l},Nt.prototype.writeUIntBE=function(r,s,l,u){if(r=+r,s=s|0,l=l|0,!u){var o=Math.pow(2,8*l)-1;ks(this,r,s,l,o,0)}var c=l-1,f=1;for(this[s+c]=r&255;--c>=0&&(f*=256);)this[s+c]=r/f&255;return s+l},Nt.prototype.writeUInt8=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,1,255,0),Nt.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[s]=r&255,s+1};function j1(e,r,s,l){r<0&&(r=65535+r+1);for(var u=0,o=Math.min(e.length-s,2);u<o;++u)e[s+u]=(r&255<<8*(l?u:1-u))>>>(l?u:1-u)*8}Nt.prototype.writeUInt16LE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,2,65535,0),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r&255,this[s+1]=r>>>8):j1(this,r,s,!0),s+2},Nt.prototype.writeUInt16BE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,2,65535,0),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r>>>8,this[s+1]=r&255):j1(this,r,s,!1),s+2};function O1(e,r,s,l){r<0&&(r=4294967295+r+1);for(var u=0,o=Math.min(e.length-s,4);u<o;++u)e[s+u]=r>>>(l?u:3-u)*8&255}Nt.prototype.writeUInt32LE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,4,4294967295,0),Nt.TYPED_ARRAY_SUPPORT?(this[s+3]=r>>>24,this[s+2]=r>>>16,this[s+1]=r>>>8,this[s]=r&255):O1(this,r,s,!0),s+4},Nt.prototype.writeUInt32BE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,4,4294967295,0),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r>>>24,this[s+1]=r>>>16,this[s+2]=r>>>8,this[s+3]=r&255):O1(this,r,s,!1),s+4},Nt.prototype.writeIntLE=function(r,s,l,u){if(r=+r,s=s|0,!u){var o=Math.pow(2,8*l-1);ks(this,r,s,l,o-1,-o)}var c=0,f=1,h=0;for(this[s]=r&255;++c<l&&(f*=256);)r<0&&h===0&&this[s+c-1]!==0&&(h=1),this[s+c]=(r/f>>0)-h&255;return s+l},Nt.prototype.writeIntBE=function(r,s,l,u){if(r=+r,s=s|0,!u){var o=Math.pow(2,8*l-1);ks(this,r,s,l,o-1,-o)}var c=l-1,f=1,h=0;for(this[s+c]=r&255;--c>=0&&(f*=256);)r<0&&h===0&&this[s+c+1]!==0&&(h=1),this[s+c]=(r/f>>0)-h&255;return s+l},Nt.prototype.writeInt8=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,1,127,-128),Nt.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[s]=r&255,s+1},Nt.prototype.writeInt16LE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,2,32767,-32768),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r&255,this[s+1]=r>>>8):j1(this,r,s,!0),s+2},Nt.prototype.writeInt16BE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,2,32767,-32768),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r>>>8,this[s+1]=r&255):j1(this,r,s,!1),s+2},Nt.prototype.writeInt32LE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,4,2147483647,-2147483648),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r&255,this[s+1]=r>>>8,this[s+2]=r>>>16,this[s+3]=r>>>24):O1(this,r,s,!0),s+4},Nt.prototype.writeInt32BE=function(r,s,l){return r=+r,s=s|0,l||ks(this,r,s,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),Nt.TYPED_ARRAY_SUPPORT?(this[s]=r>>>24,this[s+1]=r>>>16,this[s+2]=r>>>8,this[s+3]=r&255):O1(this,r,s,!1),s+4};function ZV(e,r,s,l,u,o){if(s+l>e.length)throw new RangeError("Index out of range");if(s<0)throw new RangeError("Index out of range")}function eW(e,r,s,l,u){return u||ZV(e,r,s,4),VV(e,r,s,l,23,4),s+4}Nt.prototype.writeFloatLE=function(r,s,l){return eW(this,r,s,!0,l)},Nt.prototype.writeFloatBE=function(r,s,l){return eW(this,r,s,!1,l)};function tW(e,r,s,l,u){return u||ZV(e,r,s,8),VV(e,r,s,l,52,8),s+8}Nt.prototype.writeDoubleLE=function(r,s,l){return tW(this,r,s,!0,l)},Nt.prototype.writeDoubleBE=function(r,s,l){return tW(this,r,s,!1,l)},Nt.prototype.copy=function(r,s,l,u){if(l||(l=0),!u&&u!==0&&(u=this.length),s>=r.length&&(s=r.length),s||(s=0),u>0&&u<l&&(u=l),u===l||r.length===0||this.length===0)return 0;if(s<0)throw new RangeError("targetStart out of bounds");if(l<0||l>=this.length)throw new RangeError("sourceStart out of bounds");if(u<0)throw new RangeError("sourceEnd out of bounds");u>this.length&&(u=this.length),r.length-s<u-l&&(u=r.length-s+l);var o=u-l,c;if(this===r&&l<s&&s<u)for(c=o-1;c>=0;--c)r[c+s]=this[c+l];else if(o<1e3||!Nt.TYPED_ARRAY_SUPPORT)for(c=0;c<o;++c)r[c+s]=this[c+l];else Uint8Array.prototype.set.call(r,this.subarray(l,l+o),s);return o},Nt.prototype.fill=function(r,s,l,u){if(typeof r=="string"){if(typeof s=="string"?(u=s,s=0,l=this.length):typeof l=="string"&&(u=l,l=this.length),r.length===1){var o=r.charCodeAt(0);o<256&&(r=o)}if(u!==void 0&&typeof u!="string")throw new TypeError("encoding must be a string");if(typeof u=="string"&&!Nt.isEncoding(u))throw new TypeError("Unknown encoding: "+u)}else typeof r=="number"&&(r=r&255);if(s<0||this.length<s||this.length<l)throw new RangeError("Out of range index");if(l<=s)return this;s=s>>>0,l=l===void 0?this.length:l>>>0,r||(r=0);var c;if(typeof r=="number")for(c=s;c<l;++c)this[c]=r;else{var f=oo(r)?r:_1(new Nt(r,u).toString()),h=f.length;for(c=0;c<l-s;++c)this[c+s]=f[c%h]}return this};var kwe=/[^+\/0-9A-Za-z-_]/g;function Dwe(e){if(e=Lwe(e).replace(kwe,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function Lwe(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Mwe(e){return e<16?"0"+e.toString(16):e.toString(16)}function _1(e,r){r=r||1/0;for(var s,l=e.length,u=null,o=[],c=0;c<l;++c){if(s=e.charCodeAt(c),s>55295&&s<57344){if(!u){if(s>56319){(r-=3)>-1&&o.push(239,191,189);continue}else if(c+1===l){(r-=3)>-1&&o.push(239,191,189);continue}u=s;continue}if(s<56320){(r-=3)>-1&&o.push(239,191,189),u=s;continue}s=(u-55296<<10|s-56320)+65536}else u&&(r-=3)>-1&&o.push(239,191,189);if(u=null,s<128){if((r-=1)<0)break;o.push(s)}else if(s<2048){if((r-=2)<0)break;o.push(s>>6|192,s&63|128)}else if(s<65536){if((r-=3)<0)break;o.push(s>>12|224,s>>6&63|128,s&63|128)}else if(s<1114112){if((r-=4)<0)break;o.push(s>>18|240,s>>12&63|128,s>>6&63|128,s&63|128)}else throw new Error("Invalid code point")}return o}function Bwe(e){for(var r=[],s=0;s<e.length;++s)r.push(e.charCodeAt(s)&255);return r}function Fwe(e,r){for(var s,l,u,o=[],c=0;c<e.length&&!((r-=2)<0);++c)s=e.charCodeAt(c),l=s>>8,u=s%256,o.push(u),o.push(l);return o}function rW(e){return fwe(Dwe(e))}function N1(e,r,s,l){for(var u=0;u<l&&!(u+s>=r.length||u>=e.length);++u)r[u+s]=e[u];return u}function $we(e){return e!==e}function Ud(e){return e!=null&&(!!e._isBuffer||aW(e)||qwe(e))}function aW(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function qwe(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&aW(e.slice(0,0))}var k1={exports:{}},nW;function KE(){return nW||(nW=1,function(e,r){(function(s,l){l(r)})(ci,function(s){for(var l=44,u=59,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=new Uint8Array(64),f=new Uint8Array(128),h=0;h<o.length;h++){var m=o.charCodeAt(h);c[h]=m,f[m]=h}var g=typeof TextDecoder<"u"?new TextDecoder:typeof Nt<"u"?{decode:function(k){var B=Nt.from(k.buffer,k.byteOffset,k.byteLength);return B.toString()}}:{decode:function(k){for(var B="",F=0;F<k.length;F++)B+=String.fromCharCode(k[F]);return B}};function x(D){var k=new Int32Array(5),B=[],F=0;do{var L=R(D,F),V=[],H=!0,K=0;k[0]=0;for(var G=F;G<L;G++){var X=void 0;G=w(D,G,k,0);var ue=k[0];ue<K&&(H=!1),K=ue,T(D,G,L)?(G=w(D,G,k,1),G=w(D,G,k,2),G=w(D,G,k,3),T(D,G,L)?(G=w(D,G,k,4),X=[ue,k[1],k[2],k[3],k[4]]):X=[ue,k[1],k[2],k[3]]):X=[ue],V.push(X)}H||I(V),B.push(V),F=L+1}while(F<=D.length);return B}function R(D,k){var B=D.indexOf(";",k);return B===-1?D.length:B}function w(D,k,B,F){var L=0,V=0,H=0;do{var K=D.charCodeAt(k++);H=f[K],L|=(H&31)<<V,V+=5}while(H&32);var G=L&1;return L>>>=1,G&&(L=-2147483648|-L),B[F]+=L,k}function T(D,k,B){return k>=B?!1:D.charCodeAt(k)!==l}function I(D){D.sort(P)}function P(D,k){return D[0]-k[0]}function O(D){for(var k=new Int32Array(5),B=1024*16,F=B-36,L=new Uint8Array(B),V=L.subarray(0,F),H=0,K="",G=0;G<D.length;G++){var X=D[G];if(G>0&&(H===B&&(K+=g.decode(L),H=0),L[H++]=u),X.length!==0){k[0]=0;for(var ue=0;ue<X.length;ue++){var oe=X[ue];H>F&&(K+=g.decode(V),L.copyWithin(0,F,H),H-=F),ue>0&&(L[H++]=l),H=j(L,H,k,oe,0),oe.length!==1&&(H=j(L,H,k,oe,1),H=j(L,H,k,oe,2),H=j(L,H,k,oe,3),oe.length!==4&&(H=j(L,H,k,oe,4)))}}}return K+g.decode(L.subarray(0,H))}function j(D,k,B,F,L){var V=F[L],H=V-B[L];B[L]=V,H=H<0?-H<<1|1:H<<1;do{var K=H&31;H>>>=5,H>0&&(K|=32),D[k++]=c[K]}while(H>0);return k}s.decode=x,s.encode=O,Object.defineProperty(s,"__esModule",{value:!0})})}(k1,k1.exports)),k1.exports}var HE={exports:{}},zE={exports:{}},sW;function Uwe(){return sW||(sW=1,function(e,r){(function(s,l){e.exports=l()})(ci,function(){var s=/^[\w+.-]+:\/\//,l=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,u=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function o(j){return s.test(j)}function c(j){return j.startsWith("//")}function f(j){return j.startsWith("/")}function h(j){return j.startsWith("file:")}function m(j){return/^[.?#]/.test(j)}function g(j){var D=l.exec(j);return R(D[1],D[2]||"",D[3],D[4]||"",D[5]||"/",D[6]||"",D[7]||"")}function x(j){var D=u.exec(j),k=D[2];return R("file:","",D[1]||"","",f(k)?k:"/"+k,D[3]||"",D[4]||"")}function R(j,D,k,B,F,L,V){return{scheme:j,user:D,host:k,port:B,path:F,query:L,hash:V,type:7}}function w(j){if(c(j)){var D=g("http:"+j);return D.scheme="",D.type=6,D}if(f(j)){var k=g("http://foo.com"+j);return k.scheme="",k.host="",k.type=5,k}if(h(j))return x(j);if(o(j))return g(j);var B=g("http://foo.com/"+j);return B.scheme="",B.host="",B.type=j?j.startsWith("?")?3:j.startsWith("#")?2:4:1,B}function T(j){if(j.endsWith("/.."))return j;var D=j.lastIndexOf("/");return j.slice(0,D+1)}function I(j,D){P(D,D.type),j.path==="/"?j.path=D.path:j.path=T(D.path)+j.path}function P(j,D){for(var k=D<=4,B=j.path.split("/"),F=1,L=0,V=!1,H=1;H<B.length;H++){var K=B[H];if(!K){V=!0;continue}if(V=!1,K!=="."){if(K===".."){L?(V=!0,L--,F--):k&&(B[F++]=K);continue}B[F++]=K,L++}}for(var G="",X=1;X<F;X++)G+="/"+B[X];(!G||V&&!G.endsWith("/.."))&&(G+="/"),j.path=G}function O(j,D){if(!j&&!D)return"";var k=w(j),B=k.type;if(D&&B!==7){var F=w(D),L=F.type;switch(B){case 1:k.hash=F.hash;case 2:k.query=F.query;case 3:case 4:I(k,F);case 5:k.user=F.user,k.host=F.host,k.port=F.port;case 6:k.scheme=F.scheme}L>B&&(B=L)}P(k,B);var V=k.query+k.hash;switch(B){case 2:case 3:return V;case 4:{var H=k.path.slice(1);return H?m(D||j)&&!m(H)?"./"+H+V:H+V:V||"."}case 5:return k.path+V;default:return k.scheme+"//"+k.user+k.host+k.port+k.path+V}}return O})}(zE)),zE.exports}(function(e,r){(function(s,l){l(r,KE(),Uwe())})(ci,function(s,l,u){function o(De,Qe){return Qe&&!Qe.endsWith("/")&&(Qe+="/"),u(De,Qe)}function c(De){if(!De)return"";var Qe=De.lastIndexOf("/");return De.slice(0,Qe+1)}var f=0,h=1,m=2,g=3,x=4,R=1,w=2;function T(De,Qe){var yt=I(De,0);if(yt===De.length)return De;Qe||(De=De.slice());for(var jt=yt;jt<De.length;jt=I(De,jt+1))De[jt]=O(De[jt],Qe);return De}function I(De,Qe){for(var yt=Qe;yt<De.length;yt++)if(!P(De[yt]))return yt;return De.length}function P(De){for(var Qe=1;Qe<De.length;Qe++)if(De[Qe][f]<De[Qe-1][f])return!1;return!0}function O(De,Qe){return Qe||(De=De.slice()),De.sort(j)}function j(De,Qe){return De[f]-Qe[f]}var D=!1;function k(De,Qe,yt,jt){for(;yt<=jt;){var Kt=yt+(jt-yt>>1),Ht=De[Kt][f]-Qe;if(Ht===0)return D=!0,Kt;Ht<0?yt=Kt+1:jt=Kt-1}return D=!1,yt-1}function B(De,Qe,yt){for(var jt=yt+1;jt<De.length&&De[jt][f]===Qe;yt=jt++);return yt}function F(De,Qe,yt){for(var jt=yt-1;jt>=0&&De[jt][f]===Qe;yt=jt--);return yt}function L(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function V(De,Qe,yt,jt){var Kt=yt.lastKey,Ht=yt.lastNeedle,Cr=yt.lastIndex,Yr=0,Or=De.length-1;if(jt===Kt){if(Qe===Ht)return D=Cr!==-1&&De[Cr][f]===Qe,Cr;Qe>=Ht?Yr=Cr===-1?0:Cr:Or=Cr}return yt.lastKey=jt,yt.lastNeedle=Qe,yt.lastIndex=k(De,Qe,Yr,Or)}function H(De,Qe){for(var yt=Qe.map(G),jt=0;jt<De.length;jt++)for(var Kt=De[jt],Ht=0;Ht<Kt.length;Ht++){var Cr=Kt[Ht];if(Cr.length!==1){var Yr=Cr[h],Or=Cr[m],Gr=Cr[g],qa=yt[Yr],cr=qa[Or]||(qa[Or]=[]),na=Qe[Yr],N=B(cr,Gr,V(cr,Gr,na,Or));na.lastIndex=++N,K(cr,N,[Gr,jt,Cr[f]])}}return yt}function K(De,Qe,yt){for(var jt=De.length;jt>Qe;jt--)De[jt]=De[jt-1];De[Qe]=yt}function G(){return{__proto__:null}}var X=function(Qe,yt){var jt=ue(Qe);if(!("sections"in jt))return new Ve(jt,yt);var Kt=[],Ht=[],Cr=[],Yr=[],Or=[];oe(jt,yt,Kt,Ht,Cr,Yr,Or,0,0,1/0,1/0);var Gr={version:3,file:jt.file,names:Yr,sources:Ht,sourcesContent:Cr,mappings:Kt,ignoreList:Or};return $t(Gr)};function ue(De){return typeof De=="string"?JSON.parse(De):De}function oe(De,Qe,yt,jt,Kt,Ht,Cr,Yr,Or,Gr,qa){for(var cr=De.sections,na=0;na<cr.length;na++){var N=cr[na],$=N.map,U=N.offset,pe=Gr,_e=qa;if(na+1<cr.length){var We=cr[na+1].offset;pe=Math.min(Gr,Yr+We.line),pe===Gr?_e=Math.min(qa,Or+We.column):pe<Gr&&(_e=Or+We.column)}he($,Qe,yt,jt,Kt,Ht,Cr,Yr+U.line,Or+U.column,pe,_e)}}function he(De,Qe,yt,jt,Kt,Ht,Cr,Yr,Or,Gr,qa){var cr=ue(De);if("sections"in cr)return oe.apply(void 0,arguments);var na=new Ve(cr,Qe),N=jt.length,$=Ht.length,U=Le(na),pe=na.resolvedSources,_e=na.sourcesContent,We=na.ignoreList;if(te(jt,pe),te(Ht,na.names),_e)te(Kt,_e);else for(var Ce=0;Ce<pe.length;Ce++)Kt.push(null);if(We)for(var Ct=0;Ct<We.length;Ct++)Cr.push(We[Ct]+N);for(var ie=0;ie<U.length;ie++){var st=Yr+ie;if(st>Gr)return;for(var dt=ae(yt,st),St=ie===0?Or:0,Gt=U[ie],zr=0;zr<Gt.length;zr++){var cn=Gt[zr],ti=St+cn[f];if(st===Gr&&ti>=qa)return;if(cn.length===1){dt.push([ti]);continue}var sb=N+cn[h],ib=cn[m],wm=cn[g];dt.push(cn.length===4?[ti,sb,ib,wm]:[ti,sb,ib,wm,$+cn[x]])}}}function te(De,Qe){for(var yt=0;yt<Qe.length;yt++)De.push(Qe[yt])}function ae(De,Qe){for(var yt=De.length;yt<=Qe;yt++)De[yt]=[];return De[Qe]}var J="`line` must be greater than 0 (lines start at line 1)",xe="`column` must be greater than or equal to 0 (columns start at column 0)",de=-1,$e=1,Ve=_(function(Qe,yt){var jt=typeof Qe=="string";if(!jt&&Qe._decodedMemo)return Qe;var Kt=jt?JSON.parse(Qe):Qe,Ht=Kt.version,Cr=Kt.file,Yr=Kt.names,Or=Kt.sourceRoot,Gr=Kt.sources,qa=Kt.sourcesContent;this.version=Ht,this.file=Cr,this.names=Yr||[],this.sourceRoot=Or,this.sources=Gr,this.sourcesContent=qa,this.ignoreList=Kt.ignoreList||Kt.x_google_ignoreList||void 0;var cr=o(Or||"",c(yt));this.resolvedSources=Gr.map(function(N){return o(N||"",cr)});var na=Kt.mappings;typeof na=="string"?(this._encoded=na,this._decoded=void 0):(this._encoded=void 0,this._decoded=T(na,jt)),this._decodedMemo=L(),this._bySources=void 0,this._bySourceMemos=void 0});function Ie(De){return De}function ke(De){var Qe,yt;return(Qe=(yt=De)._encoded)!==null&&Qe!==void 0?Qe:yt._encoded=l.encode(De._decoded)}function Le(De){var Qe;return(Qe=De)._decoded||(Qe._decoded=l.decode(De._encoded))}function Ze(De,Qe,yt){var jt=Le(De);if(Qe>=jt.length)return null;var Kt=jt[Qe],Ht=it(Kt,De._decodedMemo,Qe,yt,$e);return Ht===-1?null:Kt[Ht]}function at(De,Qe){var yt=Qe.line,jt=Qe.column,Kt=Qe.bias;if(yt--,yt<0)throw new Error(J);if(jt<0)throw new Error(xe);var Ht=Le(De);if(yt>=Ht.length)return Be(null,null,null,null);var Cr=Ht[yt],Yr=it(Cr,De._decodedMemo,yt,jt,Kt||$e);if(Yr===-1)return Be(null,null,null,null);var Or=Cr[Yr];if(Or.length===1)return Be(null,null,null,null);var Gr=De.names,qa=De.resolvedSources;return Be(qa[Or[h]],Or[m]+1,Or[g],Or.length===5?Gr[Or[x]]:null)}function lt(De,Qe){var yt=Qe.source,jt=Qe.line,Kt=Qe.column,Ht=Qe.bias;return Ot(De,yt,jt,Kt,Ht||$e,!1)}function gt(De,Qe){var yt=Qe.source,jt=Qe.line,Kt=Qe.column,Ht=Qe.bias;return Ot(De,yt,jt,Kt,Ht||de,!0)}function It(De,Qe){for(var yt=Le(De),jt=De.names,Kt=De.resolvedSources,Ht=0;Ht<yt.length;Ht++)for(var Cr=yt[Ht],Yr=0;Yr<Cr.length;Yr++){var Or=Cr[Yr],Gr=Ht+1,qa=Or[0],cr=null,na=null,N=null,$=null;Or.length!==1&&(cr=Kt[Or[1]],na=Or[2]+1,N=Or[3]),Or.length===5&&($=jt[Or[4]]),Qe({generatedLine:Gr,generatedColumn:qa,source:cr,originalLine:na,originalColumn:N,name:$})}}function tt(De,Qe){var yt=De.sources,jt=De.resolvedSources,Kt=yt.indexOf(Qe);return Kt===-1&&(Kt=jt.indexOf(Qe)),Kt}function Ft(De,Qe){var yt=De.sourcesContent;if(yt==null)return null;var jt=tt(De,Qe);return jt===-1?null:yt[jt]}function rr(De,Qe){var yt=De.ignoreList;if(yt==null)return!1;var jt=tt(De,Qe);return jt===-1?!1:yt.includes(jt)}function $t(De,Qe){var yt=new Ve(Re(De,[]),Qe);return yt._decoded=De.mappings,yt}function Et(De){return Re(De,Le(De))}function Lt(De){return Re(De,ke(De))}function Re(De,Qe){return{version:De.version,file:De.file,names:De.names,sourceRoot:De.sourceRoot,sources:De.sources,sourcesContent:De.sourcesContent,mappings:Qe,ignoreList:De.ignoreList||De.x_google_ignoreList}}function Be(De,Qe,yt,jt){return{source:De,line:Qe,column:yt,name:jt}}function et(De,Qe){return{line:De,column:Qe}}function it(De,Qe,yt,jt,Kt){var Ht=V(De,jt,Qe,yt);return D?Ht=(Kt===de?B:F)(De,jt,Ht):Kt===de&&Ht++,Ht===-1||Ht===De.length?-1:Ht}function vt(De,Qe,yt,jt,Kt){var Ht=it(De,Qe,yt,jt,$e);if(!D&&Kt===de&&Ht++,Ht===-1||Ht===De.length)return[];var Cr=D?jt:De[Ht][f];D||(Ht=F(De,Cr,Ht));for(var Yr=B(De,Cr,Ht),Or=[];Ht<=Yr;Ht++){var Gr=De[Ht];Or.push(et(Gr[R]+1,Gr[w]))}return Or}function Ot(De,Qe,yt,jt,Kt,Ht){var Cr;if(yt--,yt<0)throw new Error(J);if(jt<0)throw new Error(xe);var Yr=De.sources,Or=De.resolvedSources,Gr=Yr.indexOf(Qe);if(Gr===-1&&(Gr=Or.indexOf(Qe)),Gr===-1)return Ht?[]:et(null,null);var qa=(Cr=De)._bySources||(Cr._bySources=H(Le(De),De._bySourceMemos=Yr.map(L))),cr=qa[Gr][yt];if(cr==null)return Ht?[]:et(null,null);var na=De._bySourceMemos[Gr];if(Ht)return vt(cr,na,yt,jt,Kt);var N=it(cr,na,yt,jt,Kt);if(N===-1)return et(null,null);var $=cr[N];return et($[R]+1,$[w])}s.AnyMap=X,s.GREATEST_LOWER_BOUND=$e,s.LEAST_UPPER_BOUND=de,s.TraceMap=Ve,s.allGeneratedPositionsFor=gt,s.decodedMap=Et,s.decodedMappings=Le,s.eachMapping=It,s.encodedMap=Lt,s.encodedMappings=ke,s.generatedPositionFor=lt,s.isIgnored=rr,s.originalPositionFor=at,s.presortedDecodedMap=$t,s.sourceContentFor=Ft,s.traceSegment=Ze})})(HE,HE.exports);var Jl=HE.exports;(function(e,r){(function(s,l){l(r,$V(),KE(),Jl)})(ci,function(s,l,u,o){var c=0,f=1,h=2,m=3,g=4,x=-1,R=_(function(J){var xe=J===void 0?{}:J,de=xe.file,$e=xe.sourceRoot;this._names=new l.SetArray,this._sources=new l.SetArray,this._sourcesContent=[],this._mappings=[],this.file=de,this.sourceRoot=$e,this._ignoreList=new l.SetArray});function w(ae){return ae}function T(ae,J,xe,de,$e,Ve,Ie,ke){return V(!1,ae,J,xe,de,$e,Ve,Ie,ke)}function I(ae,J){return te(!1,ae,J)}var P=function(J,xe,de,$e,Ve,Ie,ke,Le){return V(!0,J,xe,de,$e,Ve,Ie,ke,Le)},O=function(J,xe){return te(!0,J,xe)};function j(ae,J,xe){var de=ae,$e=de._sources,Ve=de._sourcesContent,Ie=l.put($e,J);Ve[Ie]=xe}function D(ae,J,xe){xe===void 0&&(xe=!0);var de=ae,$e=de._sources,Ve=de._sourcesContent,Ie=de._ignoreList,ke=l.put($e,J);ke===Ve.length&&(Ve[ke]=null),xe?l.put(Ie,ke):l.remove(Ie,ke)}function k(ae){var J=ae,xe=J._mappings,de=J._sources,$e=J._sourcesContent,Ve=J._names,Ie=J._ignoreList;return X(xe),{version:3,file:ae.file||void 0,names:Ve.array,sourceRoot:ae.sourceRoot||void 0,sources:de.array,sourcesContent:$e,mappings:xe,ignoreList:Ie.array}}function B(ae){var J=k(ae);return Object.assign(Object.assign({},J),{mappings:u.encode(J.mappings)})}function F(ae){var J=new o.TraceMap(ae),xe=new R({file:J.file,sourceRoot:J.sourceRoot});return ue(xe._names,J.names),ue(xe._sources,J.sources),xe._sourcesContent=J.sourcesContent||J.sources.map(function(){return null}),xe._mappings=o.decodedMappings(J),J.ignoreList&&ue(xe._ignoreList,J.ignoreList),xe}function L(ae){for(var J=[],xe=ae,de=xe._mappings,$e=xe._sources,Ve=xe._names,Ie=0;Ie<de.length;Ie++)for(var ke=de[Ie],Le=0;Le<ke.length;Le++){var Ze=ke[Le],at={line:Ie+1,column:Ze[c]},lt=void 0,gt=void 0,It=void 0;Ze.length!==1&&(lt=$e.array[Ze[f]],gt={line:Ze[h]+1,column:Ze[m]},Ze.length===5&&(It=Ve.array[Ze[g]])),J.push({generated:at,source:lt,original:gt,name:It})}return J}function V(ae,J,xe,de,$e,Ve,Ie,ke,Le){var Ze=J,at=Ze._mappings,lt=Ze._sources,gt=Ze._sourcesContent,It=Ze._names,tt=H(at,xe),Ft=K(tt,de);if(!$e)return ae&&oe(tt,Ft)?void 0:G(tt,Ft,[de]);var rr=l.put(lt,$e),$t=ke?l.put(It,ke):x;if(rr===gt.length&&(gt[rr]=Le??null),!(ae&&he(tt,Ft,rr,Ve,Ie,$t)))return G(tt,Ft,ke?[de,rr,Ve,Ie,$t]:[de,rr,Ve,Ie])}function H(ae,J){for(var xe=ae.length;xe<=J;xe++)ae[xe]=[];return ae[J]}function K(ae,J){for(var xe=ae.length,de=xe-1;de>=0;xe=de--){var $e=ae[de];if(J>=$e[c])break}return xe}function G(ae,J,xe){for(var de=ae.length;de>J;de--)ae[de]=ae[de-1];ae[J]=xe}function X(ae){for(var J=ae.length,xe=J,de=xe-1;de>=0&&!(ae[de].length>0);xe=de,de--);xe<J&&(ae.length=xe)}function ue(ae,J){for(var xe=0;xe<J.length;xe++)l.put(ae,J[xe])}function oe(ae,J){if(J===0)return!0;var xe=ae[J-1];return xe.length===1}function he(ae,J,xe,de,$e,Ve){if(J===0)return!1;var Ie=ae[J-1];return Ie.length===1?!1:xe===Ie[f]&&de===Ie[h]&&$e===Ie[m]&&Ve===(Ie.length===5?Ie[g]:x)}function te(ae,J,xe){var de=xe.generated,$e=xe.source,Ve=xe.original,Ie=xe.name,ke=xe.content;return $e?V(ae,J,de.line-1,de.column,$e,Ve.line-1,Ve.column,Ie,ke):V(ae,J,de.line-1,de.column,null,null,null,null,null)}s.GenMapping=R,s.addMapping=I,s.addSegment=T,s.allMappings=L,s.fromMap=F,s.maybeAddMapping=O,s.maybeAddSegment=P,s.setIgnore=D,s.setSourceContent=j,s.toDecodedMap=k,s.toEncodedMap=B,Object.defineProperty(s,"__esModule",{value:!0})})})(qE,qE.exports);var Yl=qE.exports,iW=function(){function e(s,l){var u;this._map=void 0,this._rawMappings=void 0,this._sourceFileName=void 0,this._lastGenLine=0,this._lastSourceLine=0,this._lastSourceColumn=0,this._inputMap=void 0;var o=this._map=new Yl.GenMapping({sourceRoot:s.sourceRoot});if(this._sourceFileName=(u=s.sourceFileName)==null?void 0:u.replace(/\\/g,"/"),this._rawMappings=void 0,s.inputSourceMap){this._inputMap=new Jl.TraceMap(s.inputSourceMap);var c=this._inputMap.resolvedSources;if(c.length)for(var f=0;f<c.length;f++){var h;Yl.setSourceContent(o,c[f],(h=this._inputMap.sourcesContent)==null?void 0:h[f])}}if(typeof l=="string"&&!s.inputSourceMap)Yl.setSourceContent(o,this._sourceFileName,l);else if(typeof l=="object")for(var m=0,g=Object.keys(l);m<g.length;m++){var x=g[m];Yl.setSourceContent(o,x.replace(/\\/g,"/"),l[x])}}var r=e.prototype;return r.get=function(){return Yl.toEncodedMap(this._map)},r.getDecoded=function(){return Yl.toDecodedMap(this._map)},r.getRawMappings=function(){return this._rawMappings||(this._rawMappings=Yl.allMappings(this._map))},r.mark=function(l,u,o,c,f,h){var m;this._rawMappings=void 0;var g;if(u!=null)if(this._inputMap){if(g=Jl.originalPositionFor(this._inputMap,{line:u,column:o}),!g.name&&f){var x=Jl.originalPositionFor(this._inputMap,f);x.name&&(c=x.name)}}else g={source:(h==null?void 0:h.replace(/\\/g,"/"))||this._sourceFileName,line:u,column:o};Yl.maybeAddMapping(this._map,{name:c,generated:l,source:(m=g)==null?void 0:m.source,original:g})},_(e)}(),Vwe=function(){function e(s,l){this._map=null,this._buf="",this._str="",this._appendCount=0,this._last=0,this._queue=[],this._queueCursor=0,this._canMarkIdName=!0,this._indentChar="",this._fastIndentations=[],this._position={line:1,column:0},this._sourcePosition={identifierName:void 0,identifierNamePos:void 0,line:void 0,column:void 0,filename:void 0},this._map=s,this._indentChar=l;for(var u=0;u<64;u++)this._fastIndentations.push(l.repeat(u));this._allocQueue()}var r=e.prototype;return r._allocQueue=function(){for(var l=this._queue,u=0;u<16;u++)l.push({char:0,repeat:1,line:void 0,column:void 0,identifierName:void 0,identifierNamePos:void 0,filename:""})},r._pushQueue=function(l,u,o,c,f){var h=this._queueCursor;h===this._queue.length&&this._allocQueue();var m=this._queue[h];m.char=l,m.repeat=u,m.line=o,m.column=c,m.filename=f,this._queueCursor++},r._popQueue=function(){if(this._queueCursor===0)throw new Error("Cannot pop from empty queue");return this._queue[--this._queueCursor]},r.get=function(){this._flush();var l=this._map,u={code:(this._buf+this._str).trimRight(),decodedMap:l==null?void 0:l.getDecoded(),get __mergedMap(){return this.map},get map(){var o=l?l.get():null;return u.map=o,o},set map(o){Object.defineProperty(u,"map",{value:o,writable:!0})},get rawMappings(){var o=l==null?void 0:l.getRawMappings();return u.rawMappings=o,o},set rawMappings(o){Object.defineProperty(u,"rawMappings",{value:o,writable:!0})}};return u},r.append=function(l,u){this._flush(),this._append(l,this._sourcePosition,u)},r.appendChar=function(l){this._flush(),this._appendChar(l,1,this._sourcePosition)},r.queue=function(l){if(l===10)for(;this._queueCursor!==0;){var u=this._queue[this._queueCursor-1].char;if(u!==32&&u!==9)break;this._queueCursor--}var o=this._sourcePosition;this._pushQueue(l,1,o.line,o.column,o.filename)},r.queueIndentation=function(l){l!==0&&this._pushQueue(-1,l,void 0,void 0,void 0)},r._flush=function(){for(var l=this._queueCursor,u=this._queue,o=0;o<l;o++){var c=u[o];this._appendChar(c.char,c.repeat,c)}this._queueCursor=0},r._appendChar=function(l,u,o){if(this._last=l,l===-1){var c=this._fastIndentations[u];c!==void 0?this._str+=c:this._str+=u>1?this._indentChar.repeat(u):this._indentChar}else this._str+=u>1?String.fromCharCode(l).repeat(u):String.fromCharCode(l);l!==10?(this._mark(o.line,o.column,o.identifierName,o.identifierNamePos,o.filename),this._position.column+=u):(this._position.line++,this._position.column=0),this._canMarkIdName&&(o.identifierName=void 0,o.identifierNamePos=void 0)},r._append=function(l,u,o){var c=l.length,f=this._position;if(this._last=l.charCodeAt(c-1),++this._appendCount>4096?(+this._str,this._buf+=this._str,this._str=l,this._appendCount=0):this._str+=l,!o&&!this._map){f.column+=c;return}var h=u.column,m=u.identifierName,g=u.identifierNamePos,x=u.filename,R=u.line;(m!=null||g!=null)&&this._canMarkIdName&&(u.identifierName=void 0,u.identifierNamePos=void 0);var w=l.indexOf(` +`),T=0;for(w!==0&&this._mark(R,h,m,g,x);w!==-1;)f.line++,f.column=0,T=w+1,T<c&&R!==void 0&&this._mark(++R,0,null,null,x),w=l.indexOf(` +`,T);f.column+=c-T},r._mark=function(l,u,o,c,f){var h;(h=this._map)==null||h.mark(this._position,l,u,o,c,f)},r.removeTrailingNewline=function(){var l=this._queueCursor;l!==0&&this._queue[l-1].char===10&&this._queueCursor--},r.removeLastSemicolon=function(){var l=this._queueCursor;l!==0&&this._queue[l-1].char===59&&this._queueCursor--},r.getLastChar=function(){var l=this._queueCursor;return l!==0?this._queue[l-1].char:this._last},r.getNewlineCount=function(){var l=this._queueCursor,u=0;if(l===0)return this._last===10?1:0;for(var o=l-1;o>=0&&this._queue[o].char===10;o--)u++;return u===l&&this._last===10?u+1:u},r.endsWithCharAndNewline=function(){var l=this._queue,u=this._queueCursor;if(u!==0){var o=l[u-1].char;return o!==10?void 0:u>1?l[u-2].char:this._last}},r.hasContent=function(){return this._queueCursor!==0||!!this._last},r.exactSource=function(l,u){if(!this._map){u();return}this.source("start",l);var o=l.identifierName,c=this._sourcePosition;o&&(this._canMarkIdName=!1,c.identifierName=o),u(),o&&(this._canMarkIdName=!0,c.identifierName=void 0,c.identifierNamePos=void 0),this.source("end",l)},r.source=function(l,u){this._map&&this._normalizePosition(l,u,0)},r.sourceWithOffset=function(l,u,o){this._map&&this._normalizePosition(l,u,o)},r._normalizePosition=function(l,u,o){var c=u[l],f=this._sourcePosition;c&&(f.line=c.line,f.column=Math.max(c.column+o,0),f.filename=u.filename)},r.getCurrentColumn=function(){for(var l=this._queue,u=this._queueCursor,o=-1,c=0,f=0;f<u;f++){var h=l[f];h.char===10&&(o=c),c+=h.repeat}return o===-1?this._position.column+c:c-1-o},r.getCurrentLine=function(){for(var l=0,u=this._queue,o=0;o<this._queueCursor;o++)u[o].char===10&&l++;return this._position.line+l},_(e)}(),Wwe=xr,Gwe=ht,oW=Se,lW=C7,Kwe=Ue,uW=ct,hh=Cs,D1=Dt,Hwe=yn,XE=lr,zwe=Mt,Xwe=Bu,Jwe=Co,Ywe=nt;function Vd(e,r){return e&&(XE(e)||Jwe(e)?(Vd(e.object,r),e.computed&&Vd(e.property,r)):lW(e)||oW(e)?(Vd(e.left,r),Vd(e.right,r)):uW(e)||Xwe(e)?(r.hasCall=!0,Vd(e.callee,r)):hh(e)?r.hasFunction=!0:D1(e)&&(r.hasHelper=r.hasHelper||e.callee&&$o(e.callee))),r}function cW(e){return Vd(e,{hasCall:!1,hasFunction:!1,hasHelper:!1})}function $o(e){return e?XE(e)?$o(e.object)||$o(e.property):D1(e)?e.name==="require"||e.name.charCodeAt(0)===95:uW(e)?$o(e.callee):lW(e)||oW(e)?D1(e.left)&&$o(e.left)||$o(e.right):!1:!1}function Qwe(e){return Hwe(e)||zwe(e)||Gwe(e)||D1(e)||XE(e)}var Ql={AssignmentExpression:function(r){var s=cW(r.right);if(s.hasCall&&s.hasHelper||s.hasFunction)return s.hasFunction?3:2},SwitchCase:function(r,s){return(r.consequent.length||s.cases[0]===r?1:0)|(!r.consequent.length&&s.cases[s.cases.length-1]===r?2:0)},LogicalExpression:function(r){if(hh(r.left)||hh(r.right))return 2},Literal:function(r){if(Ywe(r)&&r.value==="use strict")return 2},CallExpression:function(r){if(hh(r.callee)||$o(r))return 3},OptionalCallExpression:function(r){if(hh(r.callee))return 3},VariableDeclaration:function(r){for(var s=0;s<r.declarations.length;s++){var l=r.declarations[s],u=$o(l.id)&&!Qwe(l.init);if(!u&&l.init){var o=cW(l.init);u=$o(l.init)&&o.hasCall||o.hasFunction}if(u)return 3}},IfStatement:function(r){if(Kwe(r.consequent))return 3}};Ql.ObjectProperty=Ql.ObjectTypeProperty=Ql.ObjectMethod=function(e,r){if(r.properties[0]===e)return 1},Ql.ObjectTypeCallProperty=function(e,r){var s;if(r.callProperties[0]===e&&!((s=r.properties)!=null&&s.length))return 1},Ql.ObjectTypeIndexer=function(e,r){var s,l;if(r.indexers[0]===e&&!((s=r.properties)!=null&&s.length)&&!((l=r.callProperties)!=null&&l.length))return 1},Ql.ObjectTypeInternalSlot=function(e,r){var s,l,u;if(r.internalSlots[0]===e&&!((s=r.properties)!=null&&s.length)&&!((l=r.callProperties)!=null&&l.length)&&!((u=r.indexers)!=null&&u.length))return 1},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var r=je(e,2),s=r[0],l=r[1];[s].concat(Wwe[s]||[]).forEach(function(u){var o=l?3:0;Ql[u]=function(){return o}})});var Zwe=xd,ePe=Me,tPe=ct,rPe=hf,aPe=yg,dW=lr,nPe=vf,sPe=Co,iPe=xf,oPe=ui,pW=new Map([["||",0],["??",0],["|>",0],["&&",1],["|",2],["^",3],["&",4],["==",5],["===",5],["!=",5],["!==",5],["<",6],[">",6],["<=",6],[">=",6],["in",6],["instanceof",6],[">>",7],["<<",7],[">>>",7],["+",8],["-",8],["*",9],["/",9],["%",9],["**",10]]);function fW(e,r){if(r==="BinaryExpression"||r==="LogicalExpression")return pW.get(e.operator);if(r==="TSAsExpression"||r==="TSSatisfiesExpression")return pW.get("in")}function JE(e){return e==="TSAsExpression"||e==="TSSatisfiesExpression"||e==="TSTypeAssertion"}var L1=function(r,s){var l=s.type;return(l==="ClassDeclaration"||l==="ClassExpression")&&s.superClass===r},M1=function(r,s){var l=s.type;return(l==="MemberExpression"||l==="OptionalMemberExpression")&&s.object===r||(l==="CallExpression"||l==="OptionalCallExpression"||l==="NewExpression")&&s.callee===r||l==="TaggedTemplateExpression"&&s.tag===r||l==="TSNonNullExpression"};function lPe(e,r){return Zwe(r)}function uPe(e,r,s){var l=r.type;return l==="UnionTypeAnnotation"||l==="IntersectionTypeAnnotation"||l==="ArrayTypeAnnotation"||!!(s&Tn.arrowFlowReturnType)}function cPe(e,r){return M1(e,r)||L1(e,r)}function hW(e){return!!(e&(Tn.expressionStatement|Tn.arrowBody))}function dPe(e,r,s){return hW(s)}function pPe(e,r,s){return!e.async&&!!(s&Tn.expressionStatement)}function mW(e,r){var s=r.type;if(e.type==="BinaryExpression"&&e.operator==="**"&&s==="BinaryExpression"&&r.operator==="**")return r.left===e;if(L1(e,r)||M1(e,r)||s==="UnaryExpression"||s==="SpreadElement"||s==="AwaitExpression")return!0;var l=fW(r,s);if(l!=null){var u=fW(e,e.type);if(l===u&&s==="BinaryExpression"&&r.right===e||l>u)return!0}}function yW(e,r){var s=r.type;return s==="ArrayTypeAnnotation"||s==="NullableTypeAnnotation"||s==="IntersectionTypeAnnotation"||s==="UnionTypeAnnotation"}function fPe(e,r){return aPe(r)&&r.objectType===e}function gW(e,r){return(r.type==="AssignmentExpression"||r.type==="AssignmentPattern")&&r.left===e||r.type==="BinaryExpression"&&(r.operator==="|"||r.operator==="&")&&e===r.left?!0:mW(e,r)}function vW(e,r){var s=r.type;return s==="TSArrayType"||s==="TSOptionalType"||s==="TSIntersectionType"||s==="TSRestType"}function hPe(e,r){var s=r.type;return s==="TSArrayType"||s==="TSOptionalType"}function mPe(e,r){var s=r.type;return(s==="CallExpression"||s==="OptionalCallExpression"||s==="NewExpression"||s==="TSInstantiationExpression")&&!!r.typeParameters}function yPe(e,r,s,l){return e.operator==="in"&&l}function gPe(e,r){var s=r.type;return s==="SequenceExpression"||s==="ParenthesizedExpression"||s==="MemberExpression"&&r.property===e||s==="OptionalMemberExpression"&&r.property===e||s==="TemplateLiteral"?!1:s==="ClassDeclaration"?!0:s==="ForOfStatement"?r.right===e:s==="ExportDefaultDeclaration"?!0:!oPe(r)}function bW(e,r){var s=r.type;return s==="BinaryExpression"||s==="LogicalExpression"||s==="UnaryExpression"||s==="SpreadElement"||M1(e,r)||s==="AwaitExpression"&&iPe(e)||s==="ConditionalExpression"&&e===r.test||L1(e,r)||JE(s)}function vPe(e,r,s){return!!(s&(Tn.expressionStatement|Tn.exportDefault))}function YE(e,r){return M1(e,r)||ePe(r)&&r.operator==="**"&&r.left===e||L1(e,r)}function bPe(e,r,s){return!!(s&(Tn.expressionStatement|Tn.exportDefault))}function QE(e,r){var s=r.type;return s==="UnaryExpression"||s==="SpreadElement"||s==="BinaryExpression"||s==="LogicalExpression"||s==="ConditionalExpression"&&r.test===e||s==="AwaitExpression"||JE(s)?!0:YE(e,r)}function xW(e,r){return tPe(r)&&r.callee===e||dW(r)&&r.object===e}function xPe(e,r,s){return hW(s)&&nPe(e.left)?!0:QE(e,r)}function RPe(e,r){var s=r.type;if(JE(s))return!0;if(s!=="LogicalExpression")return!1;switch(e.operator){case"||":return r.operator==="??"||r.operator==="&&";case"&&":return r.operator==="??";case"??":return r.operator!=="??"}}function EPe(e,r,s){var l,u=r.type;if((l=e.extra)!=null&&l.parenthesized&&u==="AssignmentExpression"&&r.left===e){var o=r.right.type;if((o==="FunctionExpression"||o==="ClassExpression")&&r.right.id==null)return!0}if(e.name==="let"){var c=dW(r,{object:e,computed:!0})||sPe(r,{object:e,computed:!0,optional:!1});return c&&s&(Tn.expressionStatement|Tn.forHead|Tn.forInHead)?!0:!!(s&Tn.forOfHead)}return e.name==="async"&&rPe(r,{left:e,await:!1})}var SPe=Object.freeze({__proto__:null,ArrowFunctionExpression:QE,AssignmentExpression:xPe,AwaitExpression:bW,Binary:mW,BinaryExpression:yPe,ClassExpression:vPe,ConditionalExpression:QE,DoExpression:pPe,FunctionExpression:bPe,FunctionTypeAnnotation:uPe,Identifier:EPe,IntersectionTypeAnnotation:yW,LogicalExpression:RPe,NullableTypeAnnotation:lPe,ObjectExpression:dPe,OptionalCallExpression:xW,OptionalIndexedAccessType:fPe,OptionalMemberExpression:xW,SequenceExpression:gPe,TSAsExpression:gW,TSInferType:hPe,TSInstantiationExpression:mPe,TSIntersectionType:vW,TSSatisfiesExpression:gW,TSTypeAssertion:YE,TSUnionType:vW,UnaryLike:YE,UnionTypeAnnotation:yW,UpdateExpression:cPe,YieldExpression:bW}),TPe=xr,RW=ct,wPe=Eg,PPe=lr,APe=Qr,IPe=uf,Tn={expressionStatement:1,arrowBody:2,exportDefault:4,forHead:8,forInHead:16,forOfHead:32,arrowFlowReturnType:64};function EW(e){var r=new Map;function s(g,x){var R=r.get(g);r.set(g,R?function(w,T,I,P){var O;return(O=R(w,T,I,P))!=null?O:x(w,T,I,P)}:x)}for(var l=0,u=Object.keys(e);l<u.length;l++){var o=u[l],c=TPe[o];if(c)for(var f=C(c),h;!(h=f()).done;){var m=h.value;s(m,e[o])}else s(o,e[o])}return r}var CPe=EW(SPe);EW(Ql);function SW(e){return RW(e)?!0:PPe(e)&&SW(e.object)}function jPe(e,r,s,l){var u;return r?APe(r)&&r.callee===e&&SW(e)?!0:wPe(r)?!ZE(e)&&!(RW(e)&&ZE(e.callee))&&!IPe(e):(u=CPe.get(e.type))==null?void 0:u(e,r,s,l):!1}function ZE(e){switch(e.type){case"Identifier":return!0;case"MemberExpression":return!e.computed&&e.property.type==="Identifier"&&ZE(e.object);default:return!1}}function OPe(e){this.print(e.tag),this.print(e.typeParameters),this.print(e.quasi)}function _Pe(){throw new Error("TemplateElement printing is handled in TemplateLiteral")}function NPe(e){for(var r=e.quasis,s="`",l=0;l<r.length;l++)s+=r[l].value.raw,l+1<r.length&&(this.token(s+"${",!0),this.print(e.expressions[l]),s="}");this.token(s+"`",!0)}var kPe=ct,TW=yn,e9=lr,DPe=Qr;function LPe(e){var r=e.operator;r==="void"||r==="delete"||r==="typeof"||r==="throw"?(this.word(r),this.space()):this.token(r),this.print(e.argument)}function MPe(e){e.async&&(this.word("async",!0),this.space()),this.word("do"),this.space(),this.print(e.body)}function BPe(e){this.tokenChar(40),this.print(e.expression),this.rightParens(e)}function FPe(e){e.prefix?(this.token(e.operator),this.print(e.argument)):(this.printTerminatorless(e.argument,!0),this.token(e.operator))}function $Pe(e){this.print(e.test),this.space(),this.tokenChar(63),this.space(),this.print(e.consequent),this.space(),this.tokenChar(58),this.space(),this.print(e.alternate)}function qPe(e,r){if(this.word("new"),this.space(),this.print(e.callee),!(this.format.minified&&e.arguments.length===0&&!e.optional&&!kPe(r,{callee:e})&&!e9(r)&&!DPe(r))){this.print(e.typeArguments),this.print(e.typeParameters),e.optional&&this.token("?."),this.tokenChar(40);var s=this.enterForStatementInit(!1);this.printList(e.arguments),s(),this.rightParens(e)}}function UPe(e){this.printList(e.expressions)}function VPe(){this.word("this")}function WPe(){this.word("super")}function GPe(e){return typeof this.format.decoratorsBeforeExport=="boolean"?this.format.decoratorsBeforeExport:typeof e.start=="number"&&e.start===e.declaration.start}function KPe(e){this.tokenChar(64),this.print(e.expression),this.newline()}function HPe(e){var r=e.computed,s=e.optional,l=e.property;if(this.print(e.object),!r&&e9(l))throw new TypeError("Got a MemberExpression for MemberExpression property");TW(l)&&typeof l.value=="number"&&(r=!0),s&&this.token("?."),r?(this.tokenChar(91),this.print(l),this.tokenChar(93)):(s||this.tokenChar(46),this.print(l))}function zPe(e){this.print(e.callee),this.print(e.typeParameters),e.optional&&this.token("?."),this.print(e.typeArguments),this.tokenChar(40);var r=this.enterForStatementInit(!1);this.printList(e.arguments),r(),this.rightParens(e)}function XPe(e){this.print(e.callee),this.print(e.typeArguments),this.print(e.typeParameters),this.tokenChar(40);var r=this.enterForStatementInit(!1);this.printList(e.arguments),r(),this.rightParens(e)}function JPe(){this.word("import")}function YPe(e){this.word("await"),e.argument&&(this.space(),this.printTerminatorless(e.argument,!1))}function QPe(e){this.word("yield",!0),e.delegate?(this.tokenChar(42),e.argument&&(this.space(),this.print(e.argument))):e.argument&&(this.space(),this.printTerminatorless(e.argument,!1))}function ZPe(){this.semicolon(!0)}function eAe(e){this.tokenContext|=Tn.expressionStatement,this.print(e.expression),this.semicolon()}function tAe(e){this.print(e.left),e.left.type==="Identifier"&&(e.left.optional&&this.tokenChar(63),this.print(e.left.typeAnnotation)),this.space(),this.tokenChar(61),this.space(),this.print(e.right)}function t9(e){this.print(e.left),this.space(),e.operator==="in"||e.operator==="instanceof"?this.word(e.operator):(this.token(e.operator),this._endsWithDiv=e.operator==="/"),this.space(),this.print(e.right)}function rAe(e){this.print(e.object),this.token("::"),this.print(e.callee)}function aAe(e){if(this.print(e.object),!e.computed&&e9(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var r=e.computed;if(TW(e.property)&&typeof e.property.value=="number"&&(r=!0),r){var s=this.enterForStatementInit(!1);this.tokenChar(91),this.print(e.property),this.tokenChar(93),s()}else this.tokenChar(46),this.print(e.property)}function nAe(e){this.print(e.meta),this.tokenChar(46),this.print(e.property)}function sAe(e){this.tokenChar(35),this.print(e.id)}function iAe(e){this.tokenChar(37),this.word(e.name)}function oAe(e){this.word("module",!0),this.space(),this.tokenChar(123),this.indent();var r=e.body;(r.body.length||r.directives.length)&&this.newline(),this.print(r),this.dedent(),this.rightBrace(e)}var wW=eF,lAe=Rt,uAe=on,cAe=ui;function dAe(e){this.word("with"),this.space(),this.tokenChar(40),this.print(e.object),this.tokenChar(41),this.printBlock(e)}function pAe(e){this.word("if"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.space();var r=e.alternate&&uAe(PW(e.consequent));r&&(this.tokenChar(123),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent),r&&(this.dedent(),this.newline(),this.tokenChar(125)),e.alternate&&(this.endsWith(125)&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate))}function PW(e){var r=e.body;return cAe(r)===!1?e:PW(r)}function fAe(e){this.word("for"),this.space(),this.tokenChar(40);{var r=this.enterForStatementInit(!0);this.tokenContext|=Tn.forHead,this.print(e.init),r()}this.tokenChar(59),e.test&&(this.space(),this.print(e.test)),this.tokenChar(59),e.update&&(this.space(),this.print(e.update)),this.tokenChar(41),this.printBlock(e)}function hAe(e){this.word("while"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.printBlock(e)}function AW(e){this.word("for"),this.space();var r=e.type==="ForOfStatement";r&&e.await&&(this.word("await"),this.space()),this.noIndentInnerCommentsHere(),this.tokenChar(40);{var s=r?null:this.enterForStatementInit(!0);this.tokenContext|=r?Tn.forOfHead:Tn.forInHead,this.print(e.left),s==null||s()}this.space(),this.word(r?"of":"in"),this.space(),this.print(e.right),this.tokenChar(41),this.printBlock(e)}var mAe=AW,yAe=AW;function gAe(e){this.word("do"),this.space(),this.print(e.body),this.space(),this.word("while"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.semicolon()}function B1(e,r,s){r&&(e.space(),e.printTerminatorless(r,s)),e.semicolon()}function vAe(e){this.word("break"),B1(this,e.label,!0)}function bAe(e){this.word("continue"),B1(this,e.label,!0)}function xAe(e){this.word("return"),B1(this,e.argument,!1)}function RAe(e){this.word("throw"),B1(this,e.argument,!1)}function EAe(e){this.print(e.label),this.tokenChar(58),this.space(),this.print(e.body)}function SAe(e){this.word("try"),this.space(),this.print(e.block),this.space(),e.handlers?this.print(e.handlers[0]):this.print(e.handler),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer))}function TAe(e){this.word("catch"),this.space(),e.param&&(this.tokenChar(40),this.print(e.param),this.print(e.param.typeAnnotation),this.tokenChar(41),this.space()),this.print(e.body)}function wAe(e){this.word("switch"),this.space(),this.tokenChar(40),this.print(e.discriminant),this.tokenChar(41),this.space(),this.tokenChar(123),this.printSequence(e.cases,{indent:!0,addNewlines:function(s,l){if(!s&&e.cases[e.cases.length-1]===l)return-1}}),this.rightBrace(e)}function PAe(e){e.test?(this.word("case"),this.space(),this.print(e.test),this.tokenChar(58)):(this.word("default"),this.tokenChar(58)),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,{indent:!0}))}function AAe(){this.word("debugger"),this.semicolon()}function IAe(e,r){e.declare&&(this.word("declare"),this.space());var s=e.kind;s==="await using"?(this.word("await"),this.space(),this.word("using",!0)):this.word(s,s==="using"),this.space();var l=!1;if(!wW(r))for(var u=C(e.declarations),o;!(o=u()).done;){var c=o.value;c.init&&(l=!0)}if(this.printList(e.declarations,{separator:l?function(){this.tokenChar(44),this.newline()}:void 0,indent:e.declarations.length>1}),wW(r)){if(lAe(r)){if(r.init===e)return}else if(r.left===e)return}this.semicolon()}function CAe(e){this.print(e.id),e.definite&&this.tokenChar(33),this.print(e.id.typeAnnotation),e.init&&(this.space(),this.tokenChar(61),this.space(),this.print(e.init))}var jAe=pf,OAe=gd;function IW(e,r){var s=jAe(r)||OAe(r);(!s||!this._shouldPrintDecoratorsBeforeExport(r))&&this.printJoin(e.decorators),e.declare&&(this.word("declare"),this.space()),e.abstract&&(this.word("abstract"),this.space()),this.word("class"),e.id&&(this.space(),this.print(e.id)),this.print(e.typeParameters),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass),this.print(e.superTypeParameters)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements)),this.space(),this.print(e.body)}function _Ae(e){if(this.tokenChar(123),e.body.length===0)this.tokenChar(125);else{this.newline();var r=this.enterForStatementInit(!1);this.printSequence(e.body,{indent:!0}),r(),this.endsWith(10)||this.newline(),this.rightBrace(e)}}function NAe(e){var r;this.printJoin(e.decorators);var s=(r=e.key.loc)==null||(r=r.end)==null?void 0:r.line;s&&this.catchUp(s),this.tsPrintClassMemberModifiers(e),e.computed?(this.tokenChar(91),this.print(e.key),this.tokenChar(93)):(this._variance(e),this.print(e.key)),e.optional&&this.tokenChar(63),e.definite&&this.tokenChar(33),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()}function kAe(e){var r;this.printJoin(e.decorators);var s=(r=e.key.loc)==null||(r=r.end)==null?void 0:r.line;s&&this.catchUp(s),this.tsPrintClassMemberModifiers(e),this.word("accessor",!0),this.space(),e.computed?(this.tokenChar(91),this.print(e.key),this.tokenChar(93)):(this._variance(e),this.print(e.key)),e.optional&&this.tokenChar(63),e.definite&&this.tokenChar(33),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()}function DAe(e){this.printJoin(e.decorators),e.static&&(this.word("static"),this.space()),this.print(e.key),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()}function LAe(e){this._classMethodHead(e),this.space(),this.print(e.body)}function MAe(e){this._classMethodHead(e),this.space(),this.print(e.body)}function BAe(e){var r;this.printJoin(e.decorators);var s=(r=e.key.loc)==null||(r=r.end)==null?void 0:r.line;s&&this.catchUp(s),this.tsPrintClassMemberModifiers(e),this._methodHead(e)}function FAe(e){this.word("static"),this.space(),this.tokenChar(123),e.body.length===0?this.tokenChar(125):(this.newline(),this.printSequence(e.body,{indent:!0}),this.rightBrace(e))}var $Ae=Dt;function qAe(e,r,s){this.print(e.typeParameters);var l=XAe.call(this,r,s);l&&this.sourceIdentifierName(l.name,l.pos),this.tokenChar(40),this._parameters(e.params),this.tokenChar(41);var u=e.type==="ArrowFunctionExpression";this.print(e.returnType,u),this._noLineTerminator=u}function UAe(e){for(var r=this.enterForStatementInit(!1),s=e.length,l=0;l<s;l++)this._param(e[l]),l<e.length-1&&(this.tokenChar(44),this.space());r()}function VAe(e){this.printJoin(e.decorators),this.print(e),e.optional&&this.tokenChar(63),this.print(e.typeAnnotation)}function WAe(e){var r=e.kind,s=e.key;(r==="get"||r==="set")&&(this.word(r),this.space()),e.async&&(this.word("async",!0),this.space()),(r==="method"||r==="init")&&e.generator&&this.tokenChar(42),e.computed?(this.tokenChar(91),this.print(s),this.tokenChar(93)):this.print(s),e.optional&&this.tokenChar(63),this._params(e,e.computed&&e.key.type!=="StringLiteral"?void 0:e.key,void 0)}function GAe(e,r){e.predicate&&(e.returnType||this.tokenChar(58),this.space(),this.print(e.predicate,r))}function KAe(e,r){e.async&&(this.word("async"),this._endsWithInnerRaw=!1,this.space()),this.word("function"),e.generator&&(this._endsWithInnerRaw=!1,this.tokenChar(42)),this.space(),e.id&&this.print(e.id),this._params(e,e.id,r),e.type!=="TSDeclareFunction"&&this._predicate(e)}function CW(e,r){this._functionHead(e,r),this.space(),this.print(e.body)}function HAe(e,r){e.async&&(this.word("async",!0),this.space());var s;!this.format.retainLines&&e.params.length===1&&$Ae(s=e.params[0])&&!zAe(e,s)?this.print(s,!0):this._params(e,void 0,r),this._predicate(e,!0),this.space(),this.printInnerComments(),this.token("=>"),this.space(),this.tokenContext|=Tn.arrowBody,this.print(e.body)}function zAe(e,r){var s,l;return!!(e.typeParameters||e.returnType||e.predicate||r.typeAnnotation||r.optional||(s=r.leadingComments)!=null&&s.length||(l=r.trailingComments)!=null&&l.length)}function XAe(e,r){var s=e;if(!s&&r){var l=r.type;l==="VariableDeclarator"?s=r.id:l==="AssignmentExpression"||l==="AssignmentPattern"?s=r.left:l==="ObjectProperty"||l==="ClassProperty"?(!r.computed||r.key.type==="StringLiteral")&&(s=r.key):(l==="ClassPrivateProperty"||l==="ClassAccessorProperty")&&(s=r.key)}if(s){var u;if(s.type==="Identifier"){var o,c;u={pos:(o=s.loc)==null?void 0:o.start,name:((c=s.loc)==null?void 0:c.identifierName)||s.name}}else if(s.type==="PrivateName"){var f;u={pos:(f=s.loc)==null?void 0:f.start,name:"#"+s.id.name}}else if(s.type==="StringLiteral"){var h;u={pos:(h=s.loc)==null?void 0:h.start,name:s.value}}return u}}var JAe=Io,YAe=Ed,QAe=Ef,ZAe=bd,eIe=mf,jW=ui;function tIe(e){(e.importKind==="type"||e.importKind==="typeof")&&(this.word(e.importKind),this.space()),this.print(e.imported),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local))}function rIe(e){this.print(e.local)}function aIe(e){this.print(e.exported)}function nIe(e){e.exportKind==="type"&&(this.word("type"),this.space()),this.print(e.local),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported))}function sIe(e){this.tokenChar(42),this.space(),this.word("as"),this.space(),this.print(e.exported)}var OW=!1;function iIe(e){var r=this.format.importAttributesKeyword,s=e.attributes,l=e.assertions;s&&!r&&!OW&&(OW=!0,console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specify the "importAttributesKeyword" generator option, whose value can be one of:\n - "with" : `import { a } from "b" with { type: "json" };`\n - "assert" : `import { a } from "b" assert { type: "json" };`\n - "with-legacy" : `import { a } from "b" with type: "json";`\n'));var u=r==="assert"||!r&&l;if(this.word(u?"assert":"with"),this.space(),!u&&r!=="with"){this.printList(s||l);return}this.tokenChar(123),this.space(),this.printList(s||l),this.space(),this.tokenChar(125)}function _W(e){var r,s;this.word("export"),this.space(),e.exportKind==="type"&&(this.word("type"),this.space()),this.tokenChar(42),this.space(),this.word("from"),this.space(),(r=e.attributes)!=null&&r.length||(s=e.assertions)!=null&&s.length?(this.print(e.source,!0),this.space(),this._printAttributes(e)):this.print(e.source),this.semicolon()}function NW(e,r){JAe(r.declaration)&&e._shouldPrintDecoratorsBeforeExport(r)&&e.printJoin(r.declaration.decorators)}function oIe(e){if(NW(this,e),this.word("export"),this.space(),e.declaration){var r=e.declaration;this.print(r),jW(r)||this.semicolon()}else{e.exportKind==="type"&&(this.word("type"),this.space());for(var s=e.specifiers.slice(0),l=!1;;){var u=s[0];if(YAe(u)||QAe(u))l=!0,this.print(s.shift()),s.length&&(this.tokenChar(44),this.space());else break}if((s.length||!s.length&&!l)&&(this.tokenChar(123),s.length&&(this.space(),this.printList(s),this.space()),this.tokenChar(125)),e.source){var o,c;this.space(),this.word("from"),this.space(),(o=e.attributes)!=null&&o.length||(c=e.assertions)!=null&&c.length?(this.print(e.source,!0),this.space(),this._printAttributes(e)):this.print(e.source)}this.semicolon()}}function lIe(e){NW(this,e),this.word("export"),this.noIndentInnerCommentsHere(),this.space(),this.word("default"),this.space(),this.tokenContext|=Tn.exportDefault;var r=e.declaration;this.print(r),jW(r)||this.semicolon()}function uIe(e){var r,s;this.word("import"),this.space();var l=e.importKind==="type"||e.importKind==="typeof";l?(this.noIndentInnerCommentsHere(),this.word(e.importKind),this.space()):e.module?(this.noIndentInnerCommentsHere(),this.word("module"),this.space()):e.phase&&(this.noIndentInnerCommentsHere(),this.word(e.phase),this.space());for(var u=e.specifiers.slice(0),o=!!u.length;o;){var c=u[0];if(ZAe(c)||eIe(c))this.print(u.shift()),u.length&&(this.tokenChar(44),this.space());else break}u.length?(this.tokenChar(123),this.space(),this.printList(u),this.space(),this.tokenChar(125)):l&&!o&&(this.tokenChar(123),this.tokenChar(125)),(o||l)&&(this.space(),this.word("from"),this.space()),(r=e.attributes)!=null&&r.length||(s=e.assertions)!=null&&s.length?(this.print(e.source,!0),this.space(),this._printAttributes(e)):this.print(e.source),this.semicolon()}function cIe(e){this.print(e.key),this.tokenChar(58),this.space(),this.print(e.value)}function dIe(e){this.tokenChar(42),this.space(),this.word("as"),this.space(),this.print(e.local)}function pIe(e){this.word("import"),e.phase&&(this.tokenChar(46),this.word(e.phase)),this.tokenChar(40),this.print(e.source),e.options!=null&&(this.tokenChar(44),this.space(),this.print(e.options)),this.tokenChar(41)}var r9,kW;function DW(){if(kW)return r9;kW=1;var e={},r=e.hasOwnProperty,s=function(k,B){for(var F in k)r.call(k,F)&&B(F,k[F])},l=function(k,B){return B&&s(B,function(F,L){k[F]=L}),k},u=function(k,B){for(var F=k.length,L=-1;++L<F;)B(k[L])},o=e.toString,c=Array.isArray,f=Nt.isBuffer,h=function(k){return o.call(k)=="[object Object]"},m=function(k){return typeof k=="string"||o.call(k)=="[object String]"},g=function(k){return typeof k=="number"||o.call(k)=="[object Number]"},x=function(k){return typeof k=="function"},R=function(k){return o.call(k)=="[object Map]"},w=function(k){return o.call(k)=="[object Set]"},T={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},I=/["'\\\b\f\n\r\t]/,P=/[0-9]/,O=/[ !#-&\(-\[\]-_a-~]/,j=function(k,B){var F=function(){ue=X,++B.indentLevel,X=B.indent.repeat(B.indentLevel)},L={escapeEverything:!1,minimal:!1,isScriptContext:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:" ",indentLevel:0,__inline1__:!1,__inline2__:!1},V=B&&B.json;V&&(L.quotes="double",L.wrap=!0),B=l(L,B),B.quotes!="single"&&B.quotes!="double"&&B.quotes!="backtick"&&(B.quotes="single");var H=B.quotes=="double"?'"':B.quotes=="backtick"?"`":"'",K=B.compact,G=B.lowercaseHex,X=B.indent.repeat(B.indentLevel),ue="",oe=B.__inline1__,he=B.__inline2__,te=K?"":` +`,ae,J=!0,xe=B.numbers=="binary",de=B.numbers=="octal",$e=B.numbers=="decimal",Ve=B.numbers=="hexadecimal";if(V&&k&&x(k.toJSON)&&(k=k.toJSON()),!m(k)){if(R(k))return k.size==0?"new Map()":(K||(B.__inline1__=!0,B.__inline2__=!1),"new Map("+j(Array.from(k),B)+")");if(w(k))return k.size==0?"new Set()":"new Set("+j(Array.from(k),B)+")";if(f(k))return k.length==0?"Buffer.from([])":"Buffer.from("+j(Array.from(k),B)+")";if(c(k))return ae=[],B.wrap=!0,oe&&(B.__inline1__=!1,B.__inline2__=!0),he||F(),u(k,function(Lt){J=!1,he&&(B.__inline2__=!1),ae.push((K||he?"":X)+j(Lt,B))}),J?"[]":he?"["+ae.join(", ")+"]":"["+te+ae.join(","+te)+te+(K?"":ue)+"]";if(g(k)){if(V)return JSON.stringify(k);if($e)return String(k);if(Ve){var Ie=k.toString(16);return G||(Ie=Ie.toUpperCase()),"0x"+Ie}if(xe)return"0b"+k.toString(2);if(de)return"0o"+k.toString(8)}else return h(k)?(ae=[],B.wrap=!0,F(),s(k,function(Lt,Re){J=!1,ae.push((K?"":X)+j(Lt,B)+":"+(K?"":" ")+j(Re,B))}),J?"{}":"{"+te+ae.join(","+te)+te+(K?"":ue)+"}"):V?JSON.stringify(k)||"null":String(k)}var ke=k,Le=-1,Ze=ke.length;for(ae="";++Le<Ze;){var at=ke.charAt(Le);if(B.es6){var lt=ke.charCodeAt(Le);if(lt>=55296&<<=56319&&Ze>Le+1){var gt=ke.charCodeAt(Le+1);if(gt>=56320&><=57343){var It=(lt-55296)*1024+gt-56320+65536,tt=It.toString(16);G||(tt=tt.toUpperCase()),ae+="\\u{"+tt+"}",++Le;continue}}}if(!B.escapeEverything){if(O.test(at)){ae+=at;continue}if(at=='"'){ae+=H==at?'\\"':at;continue}if(at=="`"){ae+=H==at?"\\`":at;continue}if(at=="'"){ae+=H==at?"\\'":at;continue}}if(at=="\0"&&!V&&!P.test(ke.charAt(Le+1))){ae+="\\0";continue}if(I.test(at)){ae+=T[at];continue}var Ft=at.charCodeAt(0);if(B.minimal&&Ft!=8232&&Ft!=8233){ae+=at;continue}var rr=Ft.toString(16);G||(rr=rr.toUpperCase());var $t=rr.length>2||V,Et="\\"+($t?"u":"x")+("0000"+rr).slice($t?-4:-2);ae+=Et}return B.wrap&&(ae=H+ae+H),H=="`"&&(ae=ae.replace(/\$\{/g,"\\${")),B.isScriptContext?ae.replace(/<\/(script|style)/gi,"<\\/$1").replace(/<!--/g,V?"\\u003C!--":"\\x3C!--"):ae};return j.version="2.5.2",r9=j,r9}function fIe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var LW=(fIe(er.env.BABEL_8_BREAKING),DW()),hIe=Nl,a9=Dt;function mIe(e){var r;this.sourceIdentifierName(((r=e.loc)==null?void 0:r.identifierName)||e.name),this.word(e.name)}function yIe(){this.tokenChar(63)}function MW(e){this.token("..."),this.print(e.argument)}function BW(e){var r=e.properties;if(this.tokenChar(123),r.length){var s=this.enterForStatementInit(!1);this.space(),this.printList(r,{indent:!0,statement:!0}),this.space(),s()}this.sourceWithOffset("end",e.loc,-1),this.tokenChar(125)}function gIe(e){this.printJoin(e.decorators),this._methodHead(e),this.space(),this.print(e.body)}function vIe(e){if(this.printJoin(e.decorators),e.computed)this.tokenChar(91),this.print(e.key),this.tokenChar(93);else{if(hIe(e.value)&&a9(e.key)&&e.key.name===e.value.left.name){this.print(e.value);return}if(this.print(e.key),e.shorthand&&a9(e.key)&&a9(e.value)&&e.key.name===e.value.name)return}this.tokenChar(58),this.space(),this.print(e.value)}function FW(e){var r=e.elements,s=r.length;this.tokenChar(91);for(var l=this.enterForStatementInit(!1),u=0;u<r.length;u++){var o=r[u];o?(u>0&&this.space(),this.print(o),u<s-1&&this.tokenChar(44)):this.tokenChar(44)}l(),this.tokenChar(93)}function bIe(e){var r=e.properties,s,l;if(this.format.recordAndTupleSyntaxType==="bar")s="{|",l="|}";else{if(this.format.recordAndTupleSyntaxType!=="hash"&&this.format.recordAndTupleSyntaxType!=null)throw new Error('The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" ('+JSON.stringify(this.format.recordAndTupleSyntaxType)+" received).");s="#{",l="}"}this.token(s),r.length&&(this.space(),this.printList(r,{indent:!0,statement:!0}),this.space()),this.token(l)}function xIe(e){var r=e.elements,s=r.length,l,u;if(this.format.recordAndTupleSyntaxType==="bar")l="[|",u="|]";else if(this.format.recordAndTupleSyntaxType==="hash")l="#[",u="]";else throw new Error(this.format.recordAndTupleSyntaxType+" is not a valid recordAndTuple syntax type");this.token(l);for(var o=0;o<r.length;o++){var c=r[o];c&&(o>0&&this.space(),this.print(c),o<s-1&&this.tokenChar(44))}this.token(u)}function RIe(e){this.word("/"+e.pattern+"/"+e.flags)}function EIe(e){this.word(e.value?"true":"false")}function SIe(){this.word("null")}function $W(e){var r=this.getPossibleRaw(e),s=this.format.jsescOption,l=e.value,u=l+"";s.numbers?this.number(LW(l,s),l):r==null?this.number(u,l):this.format.minified?this.number(r.length<u.length?r:u,l):this.number(r,l)}function qW(e){var r=this.getPossibleRaw(e);if(!this.format.minified&&r!==void 0){this.token(r);return}var s=LW(e.value,this.format.jsescOption);this.token(s)}function TIe(e){var r=this.getPossibleRaw(e);if(!this.format.minified&&r!==void 0){this.word(r);return}this.word(e.value+"n")}function wIe(e){var r=this.getPossibleRaw(e);if(!this.format.minified&&r!==void 0){this.word(r);return}this.word(e.value+"m")}var UW=new Set(["^^","@@","^","%","#"]);function PIe(){var e=this.format.topicToken;if(UW.has(e))this.token(e);else{var r=JSON.stringify(e),s=Array.from(UW,function(l){return JSON.stringify(l)});throw new Error('The "topicToken" generator option must be one of '+(s.join(", ")+" ("+r+" received instead)."))}}function AIe(e){this.print(e.expression)}function IIe(e){this.print(e.callee)}function CIe(){this.tokenChar(35)}var F1=lg,jIe=ui;function OIe(){this.word("any")}function _Ie(e){this.print(e.elementType,!0),this.tokenChar(91),this.tokenChar(93)}function NIe(){this.word("boolean")}function kIe(e){this.word(e.value?"true":"false")}function DIe(){this.word("null")}function LIe(e,r){F1(r)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)}function MIe(e,r){F1(r)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id),this.print(e.id.typeAnnotation.typeAnnotation),e.predicate&&(this.space(),this.print(e.predicate)),this.semicolon()}function BIe(){this.tokenChar(37),this.word("checks")}function FIe(e){this.tokenChar(37),this.word("checks"),this.tokenChar(40),this.print(e.value),this.tokenChar(41)}function $Ie(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function qIe(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id),this.space(),this.print(e.body)}function UIe(e){this.word("declare"),this.space(),this.word("module"),this.tokenChar(46),this.word("exports"),this.print(e.typeAnnotation)}function VIe(e){this.word("declare"),this.space(),this.TypeAlias(e)}function WIe(e,r){F1(r)||(this.word("declare"),this.space()),this.OpaqueType(e)}function GIe(e,r){F1(r)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id),this.print(e.id.typeAnnotation),this.semicolon()}function KIe(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),aCe.call(this,e)}function HIe(e){this.word("declare"),this.space(),_W.call(this,e)}function zIe(e){var r=e.id,s=e.body;this.word("enum"),this.space(),this.print(r),this.print(s)}function $1(e,r,s){s&&(e.space(),e.word("of"),e.space(),e.word(r)),e.space()}function q1(e,r){var s=r.members;e.token("{"),e.indent(),e.newline();for(var l=C(s),u;!(u=l()).done;){var o=u.value;e.print(o),e.newline()}r.hasUnknownMembers&&(e.token("..."),e.newline()),e.dedent(),e.token("}")}function XIe(e){var r=e.explicitType;$1(this,"boolean",r),q1(this,e)}function JIe(e){var r=e.explicitType;$1(this,"number",r),q1(this,e)}function YIe(e){var r=e.explicitType;$1(this,"string",r),q1(this,e)}function QIe(e){$1(this,"symbol",!0),q1(this,e)}function ZIe(e){var r=e.id;this.print(r),this.tokenChar(44)}function n9(e,r){e.print(r.id),e.space(),e.token("="),e.space(),e.print(r.init),e.token(",")}function eCe(e){n9(this,e)}function tCe(e){n9(this,e)}function rCe(e){n9(this,e)}function aCe(e){if(e.declaration){var r=e.declaration;this.print(r),jIe(r)||this.semicolon()}else this.tokenChar(123),e.specifiers.length&&(this.space(),this.printList(e.specifiers),this.space()),this.tokenChar(125),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source)),this.semicolon()}function nCe(){this.tokenChar(42)}function sCe(e,r){this.print(e.typeParameters),this.tokenChar(40),e.this&&(this.word("this"),this.tokenChar(58),this.space(),this.print(e.this.typeAnnotation),(e.params.length||e.rest)&&(this.tokenChar(44),this.space())),this.printList(e.params),e.rest&&(e.params.length&&(this.tokenChar(44),this.space()),this.token("..."),this.print(e.rest)),this.tokenChar(41);var s=r==null?void 0:r.type;s!=null&&(s==="ObjectTypeCallProperty"||s==="ObjectTypeInternalSlot"||s==="DeclareFunction"||s==="ObjectTypeProperty"&&r.method)?this.tokenChar(58):(this.space(),this.token("=>")),this.space(),this.print(e.returnType)}function iCe(e){this.print(e.name),e.optional&&this.tokenChar(63),e.name&&(this.tokenChar(58),this.space()),this.print(e.typeAnnotation)}function s9(e){this.print(e.id),this.print(e.typeParameters,!0)}function oCe(e){var r;if(this.print(e.id),this.print(e.typeParameters),(r=e.extends)!=null&&r.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends)),e.type==="DeclareClass"){var s,l;(s=e.mixins)!=null&&s.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins)),(l=e.implements)!=null&&l.length&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements))}this.space(),this.print(e.body)}function lCe(e){var r,s=(r=e.variance)==null?void 0:r.kind;s!=null&&(s==="plus"?this.tokenChar(43):s==="minus"&&this.tokenChar(45))}function uCe(e){this.word("interface"),this.space(),this._interfaceish(e)}function cCe(){this.space(),this.tokenChar(38),this.space()}function dCe(e){var r;this.word("interface"),(r=e.extends)!=null&&r.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends)),this.space(),this.print(e.body)}function pCe(e){this.printJoin(e.types,{separator:cCe})}function fCe(){this.word("mixed")}function hCe(){this.word("empty")}function mCe(e){this.tokenChar(63),this.print(e.typeAnnotation)}function yCe(){this.word("number")}function gCe(){this.word("string")}function vCe(){this.word("this")}function bCe(e){this.tokenChar(91),this.printList(e.types),this.tokenChar(93)}function xCe(e){this.word("typeof"),this.space(),this.print(e.argument)}function RCe(e){this.word("type"),this.space(),this.print(e.id),this.print(e.typeParameters),this.space(),this.tokenChar(61),this.space(),this.print(e.right),this.semicolon()}function ECe(e,r){this.tokenChar(58),this.space(),r.type==="ArrowFunctionExpression"?this.tokenContext|=Tn.arrowFlowReturnType:e.optional&&this.tokenChar(63),this.print(e.typeAnnotation)}function VW(e){this.tokenChar(60),this.printList(e.params,{}),this.tokenChar(62)}function SCe(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound),e.default&&(this.space(),this.tokenChar(61),this.space(),this.print(e.default))}function TCe(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id),this.print(e.typeParameters),e.supertype&&(this.tokenChar(58),this.space(),this.print(e.supertype)),e.impltype&&(this.space(),this.tokenChar(61),this.space(),this.print(e.impltype)),this.semicolon()}function wCe(e){var r=this;e.exact?this.token("{|"):this.tokenChar(123);var s=[].concat(fe(e.properties),fe(e.callProperties||[]),fe(e.indexers||[]),fe(e.internalSlots||[]));s.length&&(this.newline(),this.space(),this.printJoin(s,{addNewlines:function(u){if(u&&!s[0])return 1},indent:!0,statement:!0,iterator:function(){(s.length!==1||e.inexact)&&(r.token(","),r.space())}}),this.space()),e.inexact&&(this.indent(),this.token("..."),s.length&&this.newline(),this.dedent()),e.exact?this.token("|}"):this.tokenChar(125)}function PCe(e){e.static&&(this.word("static"),this.space()),this.tokenChar(91),this.tokenChar(91),this.print(e.id),this.tokenChar(93),this.tokenChar(93),e.optional&&this.tokenChar(63),e.method||(this.tokenChar(58),this.space()),this.print(e.value)}function ACe(e){e.static&&(this.word("static"),this.space()),this.print(e.value)}function ICe(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.tokenChar(91),e.id&&(this.print(e.id),this.tokenChar(58),this.space()),this.print(e.key),this.tokenChar(93),this.tokenChar(58),this.space(),this.print(e.value)}function CCe(e){e.proto&&(this.word("proto"),this.space()),e.static&&(this.word("static"),this.space()),(e.kind==="get"||e.kind==="set")&&(this.word(e.kind),this.space()),this._variance(e),this.print(e.key),e.optional&&this.tokenChar(63),e.method||(this.tokenChar(58),this.space()),this.print(e.value)}function jCe(e){this.token("..."),this.print(e.argument)}function OCe(e){this.print(e.qualification),this.tokenChar(46),this.print(e.id)}function _Ce(){this.word("symbol")}function NCe(){this.space(),this.tokenChar(124),this.space()}function kCe(e){this.printJoin(e.types,{separator:NCe})}function DCe(e){this.tokenChar(40),this.print(e.expression),this.print(e.typeAnnotation),this.tokenChar(41)}function LCe(e){e.kind==="plus"?this.tokenChar(43):this.tokenChar(45)}function MCe(){this.word("void")}function BCe(e){this.print(e.objectType,!0),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)}function FCe(e){this.print(e.objectType),e.optional&&this.token("?."),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)}function $Ce(e){e.program&&this.print(e.program.interpreter),this.print(e.program)}function qCe(e){var r;this.noIndentInnerCommentsHere(),this.printInnerComments();var s=(r=e.directives)==null?void 0:r.length;if(s){var l,u=e.body.length?2:1;this.printSequence(e.directives,{trailingCommentsLineOffset:u}),(l=e.directives[s-1].trailingComments)!=null&&l.length||this.newline(u)}this.printSequence(e.body)}function UCe(e){var r;this.tokenChar(123);var s=(r=e.directives)==null?void 0:r.length;if(s){var l,u=e.body.length?2:1;this.printSequence(e.directives,{indent:!0,trailingCommentsLineOffset:u}),(l=e.directives[s-1].trailingComments)!=null&&l.length||this.newline(u)}var o=this.enterForStatementInit(!1);this.printSequence(e.body,{indent:!0}),o(),this.rightBrace(e)}function VCe(e){this.print(e.value),this.semicolon()}var WCe=/(?:^|[^\\])(?:\\\\)*'/,GCe=/(?:^|[^\\])(?:\\\\)*"/;function KCe(e){var r=this.getPossibleRaw(e);if(!this.format.minified&&r!==void 0){this.token(r);return}var s=e.value;if(!GCe.test(s))this.token('"'+s+'"');else if(!WCe.test(s))this.token("'"+s+"'");else throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.")}function HCe(e){this.token("#!"+e.value),this.newline(1,!0)}function zCe(e){this.token("%%"),this.print(e.name),this.token("%%"),e.expectedNode==="Statement"&&this.semicolon()}function XCe(e){this.print(e.name),e.value&&(this.tokenChar(61),this.print(e.value))}function JCe(e){this.word(e.name)}function YCe(e){this.print(e.namespace),this.tokenChar(58),this.print(e.name)}function QCe(e){this.print(e.object),this.tokenChar(46),this.print(e.property)}function ZCe(e){this.tokenChar(123),this.token("..."),this.print(e.argument),this.rightBrace(e)}function eje(e){this.tokenChar(123),this.print(e.expression),this.rightBrace(e)}function tje(e){this.tokenChar(123),this.token("..."),this.print(e.expression),this.rightBrace(e)}function rje(e){var r=this.getPossibleRaw(e);r!==void 0?this.token(r,!0):this.token(e.value,!0)}function aje(e){var r=e.openingElement;if(this.print(r),!r.selfClosing){this.indent();for(var s=C(e.children),l;!(l=s()).done;){var u=l.value;this.print(u)}this.dedent(),this.print(e.closingElement)}}function nje(){this.space()}function sje(e){this.tokenChar(60),this.print(e.name),this.print(e.typeParameters),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,{separator:nje})),e.selfClosing?(this.space(),this.token("/>")):this.tokenChar(62)}function ije(e){this.token("</"),this.print(e.name),this.tokenChar(62)}function oje(){this.printInnerComments()}function lje(e){this.print(e.openingFragment),this.indent();for(var r=C(e.children),s;!(s=r()).done;){var l=s.value;this.print(l)}this.dedent(),this.print(e.closingFragment)}function uje(){this.tokenChar(60),this.tokenChar(62)}function cje(){this.token("</"),this.tokenChar(62)}function dje(e){this.tokenChar(58),this.space(),e.optional&&this.tokenChar(63),this.print(e.typeAnnotation)}function WW(e,r){this.tokenChar(60),this.printList(e.params,{}),r.type==="ArrowFunctionExpression"&&e.params.length===1&&this.tokenChar(44),this.tokenChar(62)}function pje(e){e.in&&(this.word("in"),this.space()),e.out&&(this.word("out"),this.space()),this.word(e.name),e.constraint&&(this.space(),this.word("extends"),this.space(),this.print(e.constraint)),e.default&&(this.space(),this.tokenChar(61),this.space(),this.print(e.default))}function fje(e){e.accessibility&&(this.word(e.accessibility),this.space()),e.readonly&&(this.word("readonly"),this.space()),this._param(e.parameter)}function hje(e,r){e.declare&&(this.word("declare"),this.space()),this._functionHead(e,r),this.semicolon()}function mje(e){this._classMethodHead(e),this.semicolon()}function yje(e){this.print(e.left),this.tokenChar(46),this.print(e.right)}function gje(e){this.tsPrintSignatureDeclarationBase(e),this.semicolon()}function vje(e){this.word("new"),this.space(),this.tsPrintSignatureDeclarationBase(e),this.semicolon()}function bje(e){var r=e.readonly;r&&(this.word("readonly"),this.space()),this.tsPrintPropertyOrMethodName(e),this.print(e.typeAnnotation),this.semicolon()}function xje(e){e.computed&&this.tokenChar(91),this.print(e.key),e.computed&&this.tokenChar(93),e.optional&&this.tokenChar(63)}function Rje(e){var r=e.kind;(r==="set"||r==="get")&&(this.word(r),this.space()),this.tsPrintPropertyOrMethodName(e),this.tsPrintSignatureDeclarationBase(e),this.semicolon()}function Eje(e){var r=e.readonly,s=e.static;s&&(this.word("static"),this.space()),r&&(this.word("readonly"),this.space()),this.tokenChar(91),this._parameters(e.parameters),this.tokenChar(93),this.print(e.typeAnnotation),this.semicolon()}function Sje(){this.word("any")}function Tje(){this.word("bigint")}function wje(){this.word("unknown")}function Pje(){this.word("number")}function Aje(){this.word("object")}function Ije(){this.word("boolean")}function Cje(){this.word("string")}function jje(){this.word("symbol")}function Oje(){this.word("void")}function _je(){this.word("undefined")}function Nje(){this.word("null")}function kje(){this.word("never")}function Dje(){this.word("intrinsic")}function Lje(){this.word("this")}function Mje(e){this.tsPrintFunctionOrConstructorType(e)}function Bje(e){e.abstract&&(this.word("abstract"),this.space()),this.word("new"),this.space(),this.tsPrintFunctionOrConstructorType(e)}function Fje(e){var r=e.typeParameters,s=e.parameters;this.print(r),this.tokenChar(40),this._parameters(s),this.tokenChar(41),this.space(),this.token("=>"),this.space();var l=e.typeAnnotation;this.print(l.typeAnnotation)}function $je(e){this.print(e.typeName,!0),this.print(e.typeParameters,!0)}function qje(e){e.asserts&&(this.word("asserts"),this.space()),this.print(e.parameterName),e.typeAnnotation&&(this.space(),this.word("is"),this.space(),this.print(e.typeAnnotation.typeAnnotation))}function Uje(e){this.word("typeof"),this.space(),this.print(e.exprName),e.typeParameters&&this.print(e.typeParameters)}function Vje(e){this.tsPrintTypeLiteralOrInterfaceBody(e.members,e)}function Wje(e,r){i9(this,e,r)}function i9(e,r,s){if(e.token("{"),r.length){e.indent(),e.newline();for(var l=C(r),u;!(u=l()).done;){var o=u.value;e.print(o),e.newline()}e.dedent()}e.rightBrace(s)}function Gje(e){this.print(e.elementType,!0),this.tokenChar(91),this.tokenChar(93)}function Kje(e){this.tokenChar(91),this.printList(e.elementTypes),this.tokenChar(93)}function Hje(e){this.print(e.typeAnnotation),this.tokenChar(63)}function zje(e){this.token("..."),this.print(e.typeAnnotation)}function Xje(e){this.print(e.label),e.optional&&this.tokenChar(63),this.tokenChar(58),this.space(),this.print(e.elementType)}function Jje(e){GW(this,e,"|")}function Yje(e){GW(this,e,"&")}function GW(e,r,s){e.printJoin(r.types,{separator:function(){this.space(),this.token(s),this.space()}})}function Qje(e){this.print(e.checkType),this.space(),this.word("extends"),this.space(),this.print(e.extendsType),this.space(),this.tokenChar(63),this.space(),this.print(e.trueType),this.space(),this.tokenChar(58),this.space(),this.print(e.falseType)}function Zje(e){this.token("infer"),this.space(),this.print(e.typeParameter)}function eOe(e){this.tokenChar(40),this.print(e.typeAnnotation),this.tokenChar(41)}function tOe(e){this.word(e.operator),this.space(),this.print(e.typeAnnotation)}function rOe(e){this.print(e.objectType,!0),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)}function aOe(e){var r=e.nameType,s=e.optional,l=e.readonly,u=e.typeAnnotation;this.tokenChar(123),this.space(),l&&(KW(this,l),this.word("readonly"),this.space()),this.tokenChar(91),this.word(e.typeParameter.name),this.space(),this.word("in"),this.space(),this.print(e.typeParameter.constraint),r&&(this.space(),this.word("as"),this.space(),this.print(r)),this.tokenChar(93),s&&(KW(this,s),this.tokenChar(63)),u&&(this.tokenChar(58),this.space(),this.print(u)),this.space(),this.tokenChar(125)}function KW(e,r){r!==!0&&e.token(r)}function nOe(e){this.print(e.literal)}function sOe(e){this.print(e.expression),this.print(e.typeParameters)}function iOe(e){var r=e.declare,s=e.id,l=e.typeParameters,u=e.extends,o=e.body;r&&(this.word("declare"),this.space()),this.word("interface"),this.space(),this.print(s),this.print(l),u!=null&&u.length&&(this.space(),this.word("extends"),this.space(),this.printList(u)),this.space(),this.print(o)}function oOe(e){this.tsPrintTypeLiteralOrInterfaceBody(e.body,e)}function lOe(e){var r=e.declare,s=e.id,l=e.typeParameters,u=e.typeAnnotation;r&&(this.word("declare"),this.space()),this.word("type"),this.space(),this.print(s),this.print(l),this.space(),this.tokenChar(61),this.space(),this.print(u),this.semicolon()}function HW(e){var r,s=e.type,l=e.expression,u=e.typeAnnotation,o=(r=l.trailingComments)==null?void 0:r.some(function(c){return c.type==="CommentLine"||/[\r\n\u2028\u2029]/.test(c.value)});this.print(l,!0,void 0,o),this.space(),this.word(s==="TSAsExpression"?"as":"satisfies"),this.space(),this.print(u)}function uOe(e){var r=e.typeAnnotation,s=e.expression;this.tokenChar(60),this.print(r),this.tokenChar(62),this.space(),this.print(s)}function cOe(e){this.print(e.expression),this.print(e.typeParameters)}function dOe(e){var r=e.declare,s=e.const,l=e.id,u=e.members;r&&(this.word("declare"),this.space()),s&&(this.word("const"),this.space()),this.word("enum"),this.space(),this.print(l),this.space(),i9(this,u,e)}function pOe(e){var r=e.id,s=e.initializer;this.print(r),s&&(this.space(),this.tokenChar(61),this.space(),this.print(s)),this.tokenChar(44)}function fOe(e){var r=e.declare,s=e.id;if(r&&(this.word("declare"),this.space()),e.global||(this.word(s.type==="Identifier"?"namespace":"module"),this.space()),this.print(s),!e.body){this.semicolon();return}for(var l=e.body;l.type==="TSModuleDeclaration";)this.tokenChar(46),this.print(l.id),l=l.body;this.space(),this.print(l)}function hOe(e){i9(this,e.body,e)}function mOe(e){var r=e.argument,s=e.qualifier,l=e.typeParameters;this.word("import"),this.tokenChar(40),this.print(r),this.tokenChar(41),s&&(this.tokenChar(46),this.print(s)),l&&this.print(l)}function yOe(e){var r=e.isExport,s=e.id,l=e.moduleReference;r&&(this.word("export"),this.space()),this.word("import"),this.space(),this.print(s),this.space(),this.tokenChar(61),this.space(),this.print(l),this.semicolon()}function gOe(e){this.token("require("),this.print(e.expression),this.tokenChar(41)}function vOe(e){this.print(e.expression),this.tokenChar(33)}function bOe(e){this.word("export"),this.space(),this.tokenChar(61),this.space(),this.print(e.expression),this.semicolon()}function xOe(e){this.word("export"),this.space(),this.word("as"),this.space(),this.word("namespace"),this.space(),this.print(e.id),this.semicolon()}function ROe(e){var r=e.typeParameters,s=e.parameters;this.print(r),this.tokenChar(40),this._parameters(s),this.tokenChar(41);var l=e.typeAnnotation;this.print(l)}function EOe(e){var r=e.type==="ClassAccessorProperty"||e.type==="ClassProperty";r&&e.declare&&(this.word("declare"),this.space()),e.accessibility&&(this.word(e.accessibility),this.space()),e.static&&(this.word("static"),this.space()),e.override&&(this.word("override"),this.space()),e.abstract&&(this.word("abstract"),this.space()),r&&e.readonly&&(this.word("readonly"),this.space())}var SOe=Object.freeze({__proto__:null,AnyTypeAnnotation:OIe,ArgumentPlaceholder:yIe,ArrayExpression:FW,ArrayPattern:FW,ArrayTypeAnnotation:_Ie,ArrowFunctionExpression:HAe,AssignmentExpression:t9,AssignmentPattern:tAe,AwaitExpression:YPe,BigIntLiteral:TIe,BinaryExpression:t9,BindExpression:rAe,BlockStatement:UCe,BooleanLiteral:EIe,BooleanLiteralTypeAnnotation:kIe,BooleanTypeAnnotation:NIe,BreakStatement:vAe,CallExpression:XPe,CatchClause:TAe,ClassAccessorProperty:kAe,ClassBody:_Ae,ClassDeclaration:IW,ClassExpression:IW,ClassImplements:s9,ClassMethod:LAe,ClassPrivateMethod:MAe,ClassPrivateProperty:DAe,ClassProperty:NAe,ConditionalExpression:$Pe,ContinueStatement:bAe,DebuggerStatement:AAe,DecimalLiteral:wIe,DeclareClass:LIe,DeclareExportAllDeclaration:HIe,DeclareExportDeclaration:KIe,DeclareFunction:MIe,DeclareInterface:$Ie,DeclareModule:qIe,DeclareModuleExports:UIe,DeclareOpaqueType:WIe,DeclareTypeAlias:VIe,DeclareVariable:GIe,DeclaredPredicate:FIe,Decorator:KPe,Directive:VCe,DirectiveLiteral:KCe,DoExpression:MPe,DoWhileStatement:gAe,EmptyStatement:ZPe,EmptyTypeAnnotation:hCe,EnumBooleanBody:XIe,EnumBooleanMember:eCe,EnumDeclaration:zIe,EnumDefaultedMember:ZIe,EnumNumberBody:JIe,EnumNumberMember:tCe,EnumStringBody:YIe,EnumStringMember:rCe,EnumSymbolBody:QIe,ExistsTypeAnnotation:nCe,ExportAllDeclaration:_W,ExportDefaultDeclaration:lIe,ExportDefaultSpecifier:aIe,ExportNamedDeclaration:oIe,ExportNamespaceSpecifier:sIe,ExportSpecifier:nIe,ExpressionStatement:eAe,File:$Ce,ForInStatement:mAe,ForOfStatement:yAe,ForStatement:fAe,FunctionDeclaration:CW,FunctionExpression:CW,FunctionTypeAnnotation:sCe,FunctionTypeParam:iCe,GenericTypeAnnotation:s9,Identifier:mIe,IfStatement:pAe,Import:JPe,ImportAttribute:cIe,ImportDeclaration:uIe,ImportDefaultSpecifier:rIe,ImportExpression:pIe,ImportNamespaceSpecifier:dIe,ImportSpecifier:tIe,IndexedAccessType:BCe,InferredPredicate:BIe,InterfaceDeclaration:uCe,InterfaceExtends:s9,InterfaceTypeAnnotation:dCe,InterpreterDirective:HCe,IntersectionTypeAnnotation:pCe,JSXAttribute:XCe,JSXClosingElement:ije,JSXClosingFragment:cje,JSXElement:aje,JSXEmptyExpression:oje,JSXExpressionContainer:eje,JSXFragment:lje,JSXIdentifier:JCe,JSXMemberExpression:QCe,JSXNamespacedName:YCe,JSXOpeningElement:sje,JSXOpeningFragment:uje,JSXSpreadAttribute:ZCe,JSXSpreadChild:tje,JSXText:rje,LabeledStatement:EAe,LogicalExpression:t9,MemberExpression:aAe,MetaProperty:nAe,MixedTypeAnnotation:fCe,ModuleExpression:oAe,NewExpression:qPe,NullLiteral:SIe,NullLiteralTypeAnnotation:DIe,NullableTypeAnnotation:mCe,NumberLiteralTypeAnnotation:$W,NumberTypeAnnotation:yCe,NumericLiteral:$W,ObjectExpression:BW,ObjectMethod:gIe,ObjectPattern:BW,ObjectProperty:vIe,ObjectTypeAnnotation:wCe,ObjectTypeCallProperty:ACe,ObjectTypeIndexer:ICe,ObjectTypeInternalSlot:PCe,ObjectTypeProperty:CCe,ObjectTypeSpreadProperty:jCe,OpaqueType:TCe,OptionalCallExpression:zPe,OptionalIndexedAccessType:FCe,OptionalMemberExpression:HPe,ParenthesizedExpression:BPe,PipelineBareFunction:IIe,PipelinePrimaryTopicReference:CIe,PipelineTopicExpression:AIe,Placeholder:zCe,PrivateName:sAe,Program:qCe,QualifiedTypeIdentifier:OCe,RecordExpression:bIe,RegExpLiteral:RIe,RestElement:MW,ReturnStatement:xAe,SequenceExpression:UPe,SpreadElement:MW,StaticBlock:FAe,StringLiteral:qW,StringLiteralTypeAnnotation:qW,StringTypeAnnotation:gCe,Super:WPe,SwitchCase:PAe,SwitchStatement:wAe,SymbolTypeAnnotation:_Ce,TSAnyKeyword:Sje,TSArrayType:Gje,TSAsExpression:HW,TSBigIntKeyword:Tje,TSBooleanKeyword:Ije,TSCallSignatureDeclaration:gje,TSConditionalType:Qje,TSConstructSignatureDeclaration:vje,TSConstructorType:Bje,TSDeclareFunction:hje,TSDeclareMethod:mje,TSEnumDeclaration:dOe,TSEnumMember:pOe,TSExportAssignment:bOe,TSExpressionWithTypeArguments:sOe,TSExternalModuleReference:gOe,TSFunctionType:Mje,TSImportEqualsDeclaration:yOe,TSImportType:mOe,TSIndexSignature:Eje,TSIndexedAccessType:rOe,TSInferType:Zje,TSInstantiationExpression:cOe,TSInterfaceBody:oOe,TSInterfaceDeclaration:iOe,TSIntersectionType:Yje,TSIntrinsicKeyword:Dje,TSLiteralType:nOe,TSMappedType:aOe,TSMethodSignature:Rje,TSModuleBlock:hOe,TSModuleDeclaration:fOe,TSNamedTupleMember:Xje,TSNamespaceExportDeclaration:xOe,TSNeverKeyword:kje,TSNonNullExpression:vOe,TSNullKeyword:Nje,TSNumberKeyword:Pje,TSObjectKeyword:Aje,TSOptionalType:Hje,TSParameterProperty:fje,TSParenthesizedType:eOe,TSPropertySignature:bje,TSQualifiedName:yje,TSRestType:zje,TSSatisfiesExpression:HW,TSStringKeyword:Cje,TSSymbolKeyword:jje,TSThisType:Lje,TSTupleType:Kje,TSTypeAliasDeclaration:lOe,TSTypeAnnotation:dje,TSTypeAssertion:uOe,TSTypeLiteral:Vje,TSTypeOperator:tOe,TSTypeParameter:pje,TSTypeParameterDeclaration:WW,TSTypeParameterInstantiation:WW,TSTypePredicate:qje,TSTypeQuery:Uje,TSTypeReference:$je,TSUndefinedKeyword:_je,TSUnionType:Jje,TSUnknownKeyword:wje,TSVoidKeyword:Oje,TaggedTemplateExpression:OPe,TemplateElement:_Pe,TemplateLiteral:NPe,ThisExpression:VPe,ThisTypeAnnotation:vCe,ThrowStatement:RAe,TopicReference:PIe,TryStatement:SAe,TupleExpression:xIe,TupleTypeAnnotation:bCe,TypeAlias:RCe,TypeAnnotation:ECe,TypeCastExpression:DCe,TypeParameter:SCe,TypeParameterDeclaration:VW,TypeParameterInstantiation:VW,TypeofTypeAnnotation:xCe,UnaryExpression:LPe,UnionTypeAnnotation:kCe,UpdateExpression:FPe,V8IntrinsicIdentifier:iAe,VariableDeclaration:IAe,VariableDeclarator:CAe,Variance:LCe,VoidTypeAnnotation:MCe,WhileStatement:hAe,WithStatement:dAe,YieldExpression:QPe,_classMethodHead:BAe,_functionHead:KAe,_interfaceish:oCe,_methodHead:WAe,_param:VAe,_parameters:UAe,_params:qAe,_predicate:GAe,_printAttributes:iIe,_shouldPrintDecoratorsBeforeExport:GPe,_variance:lCe,tsPrintClassMemberModifiers:EOe,tsPrintFunctionOrConstructorType:Fje,tsPrintPropertyOrMethodName:xje,tsPrintSignatureDeclarationBase:ROe,tsPrintTypeLiteralOrInterfaceBody:Wje}),TOe=Cs,wOe=ui,POe=cf,AOe=KB,IOe=JB,COe=/e/i,jOe=/\.0+$/,zW=/[\n\r\u2028\u2029]/,OOe=/[\n\r\u2028\u2029]|\*\//,_Oe=jPe,U1=function(){function e(s,l){this.inForStatementInit=!1,this.tokenContext=0,this._currentNode=null,this._indent=0,this._indentRepeat=0,this._insideAux=!1,this._parenPushNewlineState=null,this._noLineTerminator=!1,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new Set,this._endsWithInteger=!1,this._endsWithWord=!1,this._endsWithDiv=!1,this._lastCommentLine=0,this._endsWithInnerRaw=!1,this._indentInnerComments=!0,this.format=s,this._indentRepeat=s.indent.style.length,this._inputMap=l==null?void 0:l._inputMap,this._buf=new Vwe(l,s.indent.style[0])}var r=e.prototype;return r.enterForStatementInit=function(l){var u=this,o=this.inForStatementInit;return o===l?function(){}:(this.inForStatementInit=l,function(){u.inForStatementInit=o})},r.generate=function(l){return this.print(l),this._maybeAddAuxComment(),this._buf.get()},r.indent=function(){this.format.compact||this.format.concise||this._indent++},r.dedent=function(){this.format.compact||this.format.concise||this._indent--},r.semicolon=function(l){l===void 0&&(l=!1),this._maybeAddAuxComment(),l?this._appendChar(59):this._queue(59),this._noLineTerminator=!1},r.rightBrace=function(l){this.format.minified&&this._buf.removeLastSemicolon(),this.sourceWithOffset("end",l.loc,-1),this.tokenChar(125)},r.rightParens=function(l){this.sourceWithOffset("end",l.loc,-1),this.tokenChar(41)},r.space=function(l){if(l===void 0&&(l=!1),!this.format.compact){if(l)this._space();else if(this._buf.hasContent()){var u=this.getLastChar();u!==32&&u!==10&&this._space()}}},r.word=function(l,u){u===void 0&&(u=!1),this.tokenContext=0,this._maybePrintInnerComments(),(this._endsWithWord||this._endsWithDiv&&l.charCodeAt(0)===47)&&this._space(),this._maybeAddAuxComment(),this._append(l,!1),this._endsWithWord=!0,this._noLineTerminator=u},r.number=function(l,u){function o(c){if(c.length>2&&c.charCodeAt(0)===48){var f=c.charCodeAt(1);return f===98||f===111||f===120}return!1}this.word(l),this._endsWithInteger=Number.isInteger(u)&&!o(l)&&!COe.test(l)&&!jOe.test(l)&&l.charCodeAt(l.length-1)!==46},r.token=function(l,u){u===void 0&&(u=!1),this.tokenContext=0,this._maybePrintInnerComments();var o=this.getLastChar(),c=l.charCodeAt(0);(o===33&&(l==="--"||c===61)||c===43&&o===43||c===45&&o===45||c===46&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(l,u),this._noLineTerminator=!1},r.tokenChar=function(l){this.tokenContext=0,this._maybePrintInnerComments();var u=this.getLastChar();(l===43&&u===43||l===45&&u===45||l===46&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._appendChar(l),this._noLineTerminator=!1},r.newline=function(l,u){if(l===void 0&&(l=1),!(l<=0)){if(!u){if(this.format.retainLines||this.format.compact)return;if(this.format.concise){this.space();return}}l>2&&(l=2),l-=this._buf.getNewlineCount();for(var o=0;o<l;o++)this._newline()}},r.endsWith=function(l){return this.getLastChar()===l},r.getLastChar=function(){return this._buf.getLastChar()},r.endsWithCharAndNewline=function(){return this._buf.endsWithCharAndNewline()},r.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},r.exactSource=function(l,u){if(!l){u();return}this._catchUp("start",l),this._buf.exactSource(l,u)},r.source=function(l,u){u&&(this._catchUp(l,u),this._buf.source(l,u))},r.sourceWithOffset=function(l,u,o){u&&(this._catchUp(l,u),this._buf.sourceWithOffset(l,u,o))},r.sourceIdentifierName=function(l,u){if(this._buf._canMarkIdName){var o=this._buf._sourcePosition;o.identifierNamePos=u,o.identifierName=l}},r._space=function(){this._queue(32)},r._newline=function(){this._queue(10)},r._append=function(l,u){this._maybeAddParen(l),this._maybeIndent(l.charCodeAt(0)),this._buf.append(l,u),this._endsWithWord=!1,this._endsWithInteger=!1,this._endsWithDiv=!1},r._appendChar=function(l){this._maybeAddParenChar(l),this._maybeIndent(l),this._buf.appendChar(l),this._endsWithWord=!1,this._endsWithInteger=!1,this._endsWithDiv=!1},r._queue=function(l){this._maybeAddParenChar(l),this._maybeIndent(l),this._buf.queue(l),this._endsWithWord=!1,this._endsWithInteger=!1},r._maybeIndent=function(l){this._indent&&l!==10&&this.endsWith(10)&&this._buf.queueIndentation(this._getIndent())},r._shouldIndent=function(l){if(this._indent&&l!==10&&this.endsWith(10))return!0},r._maybeAddParenChar=function(l){var u=this._parenPushNewlineState;if(u&&l!==32){if(l!==10){this._parenPushNewlineState=null;return}this.tokenChar(40),this.indent(),u.printed=!0}},r._maybeAddParen=function(l){var u=this._parenPushNewlineState;if(u){var o=l.length,c;for(c=0;c<o&&l.charCodeAt(c)===32;c++);if(c!==o){var f=l.charCodeAt(c);if(f!==10){if(f!==47||c+1===o){this._parenPushNewlineState=null;return}var h=l.charCodeAt(c+1);if(h===42)return;if(h!==47){this._parenPushNewlineState=null;return}}this.tokenChar(40),this.indent(),u.printed=!0}}},r.catchUp=function(l){if(this.format.retainLines)for(var u=l-this._buf.getCurrentLine(),o=0;o<u;o++)this._newline()},r._catchUp=function(l,u){var o;if(this.format.retainLines){var c=u==null||(o=u[l])==null?void 0:o.line;if(c!=null)for(var f=c-this._buf.getCurrentLine(),h=0;h<f;h++)this._newline()}},r._getIndent=function(){return this._indentRepeat*this._indent},r.printTerminatorless=function(l,u){if(u)this._noLineTerminator=!0,this.print(l);else{var o={printed:!1};this._parenPushNewlineState=o,this.print(l),o.printed&&(this.dedent(),this.newline(),this.tokenChar(41))}},r.print=function(l,u,o,c){var f,h;if(l){this._endsWithInnerRaw=!1;var m=l.type,g=this.format,x=g.concise;l._compact&&(g.concise=!0);var R=this[m];if(R===void 0)throw new ReferenceError("unknown node of type "+JSON.stringify(m)+" with constructor "+JSON.stringify(l.constructor.name));var w=this._currentNode;this._currentNode=l;var T=this._insideAux;this._insideAux=l.loc==null,this._maybeAddAuxComment(this._insideAux&&!T);var I=(f=l.extra)==null?void 0:f.parenthesized,P=c||I&&g.retainFunctionParens&&m==="FunctionExpression"||_Oe(l,w,this.tokenContext,this.inForStatementInit);if(!P&&I&&(h=l.leadingComments)!=null&&h.length&&l.leadingComments[0].type==="CommentBlock"){var O=w==null?void 0:w.type;switch(O){case"ExpressionStatement":case"VariableDeclarator":case"AssignmentExpression":case"ReturnStatement":break;case"CallExpression":case"OptionalCallExpression":case"NewExpression":if(w.callee!==l)break;default:P=!0}}var j;P&&(this.tokenChar(40),this._endsWithInnerRaw=!1,j=this.enterForStatementInit(!1)),this._lastCommentLine=0,this._printLeadingComments(l,w);var D=m==="Program"||m==="File"?null:l.loc;this.exactSource(D,R.bind(this,l,w)),P?(this._printTrailingComments(l,w),this.tokenChar(41),this._noLineTerminator=u,j()):u&&!this._noLineTerminator?(this._noLineTerminator=!0,this._printTrailingComments(l,w)):this._printTrailingComments(l,w,o),this._currentNode=w,g.concise=x,this._insideAux=T,this._endsWithInnerRaw=!1}},r._maybeAddAuxComment=function(l){l&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},r._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var l=this.format.auxiliaryCommentBefore;l&&this._printComment({type:"CommentBlock",value:l},0)}},r._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var l=this.format.auxiliaryCommentAfter;l&&this._printComment({type:"CommentBlock",value:l},0)}},r.getPossibleRaw=function(l){var u=l.extra;if((u==null?void 0:u.raw)!=null&&u.rawValue!=null&&l.value===u.rawValue)return u.raw},r.printJoin=function(l,u){if(u===void 0&&(u={}),!!(l!=null&&l.length)){var o=u,c=o.indent;if(c==null&&this.format.retainLines){var f,h=(f=l[0].loc)==null?void 0:f.start.line;h!=null&&h!==this._buf.getCurrentLine()&&(c=!0)}c&&this.indent();for(var m={addNewlines:u.addNewlines,nextNodeStartLine:0},g=u.separator?u.separator.bind(this):null,x=l.length,R=0;R<x;R++){var w=l[R];if(w&&(u.statement&&this._printNewline(R===0,m),this.print(w,void 0,u.trailingCommentsLineOffset||0),u.iterator==null||u.iterator(w,R),R<x-1&&(g==null||g()),u.statement)){var T;if((T=w.trailingComments)!=null&&T.length||(this._lastCommentLine=0),R+1===x)this.newline(1);else{var I,P=l[R+1];m.nextNodeStartLine=((I=P.loc)==null?void 0:I.start.line)||0,this._printNewline(!0,m)}}}c&&this.dedent()}},r.printAndIndentOnComments=function(l){var u=l.leadingComments&&l.leadingComments.length>0;u&&this.indent(),this.print(l),u&&this.dedent()},r.printBlock=function(l){var u=l.body;u.type!=="EmptyStatement"&&this.space(),this.print(u)},r._printTrailingComments=function(l,u,o){var c=l.innerComments,f=l.trailingComments;c!=null&&c.length&&this._printComments(2,c,l,u,o),f!=null&&f.length&&this._printComments(2,f,l,u,o)},r._printLeadingComments=function(l,u){var o=l.leadingComments;o!=null&&o.length&&this._printComments(0,o,l,u)},r._maybePrintInnerComments=function(){this._endsWithInnerRaw&&this.printInnerComments(),this._endsWithInnerRaw=!0,this._indentInnerComments=!0},r.printInnerComments=function(){var l=this._currentNode,u=l.innerComments;if(u!=null&&u.length){var o=this.endsWith(32),c=this._indentInnerComments,f=this._printedComments.size;c&&this.indent(),this._printComments(1,u,l),o&&f!==this._printedComments.size&&this.space(),c&&this.dedent()}},r.noIndentInnerCommentsHere=function(){this._indentInnerComments=!1},r.printSequence=function(l,u){var o,c;u===void 0&&(u={}),u.statement=!0,(c=(o=u).indent)!=null||(o.indent=!1),this.printJoin(l,u)},r.printList=function(l,u){u===void 0&&(u={}),u.separator==null&&(u.separator=NOe),this.printJoin(l,u)},r._printNewline=function(l,u){var o=this.format;if(!(o.retainLines||o.compact)){if(o.concise){this.space();return}if(l){var c=u.nextNodeStartLine,f=this._lastCommentLine;if(c>0&&f>0){var h=c-f;if(h>=0){this.newline(h||1);return}}this._buf.hasContent()&&this.newline(1)}}},r._shouldPrintComment=function(l){return l.ignore||this._printedComments.has(l)?0:this._noLineTerminator&&OOe.test(l.value)?2:(this._printedComments.add(l),this.format.shouldPrintComment(l.value)?1:0)},r._printComment=function(l,u){var o=this._noLineTerminator,c=l.type==="CommentBlock",f=c&&u!==1&&!this._noLineTerminator;f&&this._buf.hasContent()&&u!==2&&this.newline(1);var h=this.getLastChar();h!==91&&h!==123&&h!==40&&this.space();var m;if(c){var g=this._parenPushNewlineState;if((g==null?void 0:g.printed)===!1&&zW.test(l.value)&&(this.tokenChar(40),this.indent(),g.printed=!0),m="/*"+l.value+"*/",this.format.indent.adjustMultilineComment){var x,R=(x=l.loc)==null?void 0:x.start.column;if(R){var w=new RegExp("\\n\\s{1,"+R+"}","g");m=m.replace(w,` +`)}if(this.format.concise)m=m.replace(/\n(?!$)/g,` +`);else{var T=this.format.retainLines?0:this._buf.getCurrentColumn();(this._shouldIndent(47)||this.format.retainLines)&&(T+=this._getIndent()),m=m.replace(/\n(?!$)/g,` +`+" ".repeat(T))}}}else o?m="/*"+l.value+"*/":m="//"+l.value;this._endsWithDiv&&this._space(),this.source("start",l.loc),this._append(m,c),!c&&!o&&this.newline(1,!0),f&&u!==3&&this.newline(1)},r._printComments=function(l,u,o,c,f){f===void 0&&(f=0);for(var h=o.loc,m=u.length,g=!!h,x=g?h.start.line:0,R=g?h.end.line:0,w=0,T=0,I=this._noLineTerminator?function(){}:this.newline.bind(this),P=0;P<m;P++){var O=u[P],j=this._shouldPrintComment(O);if(j===2){g=!1;break}if(g&&O.loc&&j===1){var D=O.loc.start.line,k=O.loc.end.line;if(l===0){var B=0;P===0?this._buf.hasContent()&&(O.type==="CommentLine"||D!==k)&&(B=T=1):B=D-w,w=k,I(B),this._printComment(O,1),P+1===m&&(I(Math.max(x-w,T)),w=x)}else if(l===1){var F=D-(P===0?x:w);w=k,I(F),this._printComment(O,1),P+1===m&&(I(Math.min(1,R-w)),w=R)}else{var L=D-(P===0?R-f:w);w=k,I(L),this._printComment(O,1)}}else{if(g=!1,j!==1)continue;if(m===1){var V=O.loc?O.loc.start.line===O.loc.end.line:!zW.test(O.value),H=V&&!wOe(o)&&!POe(c)&&!AOe(c)&&!IOe(c);l===0?this._printComment(O,H&&o.type!=="ObjectExpression"||V&&TOe(c,{body:o})?1:0):H&&l===2?this._printComment(O,1):this._printComment(O,0)}else l===1&&!(o.type==="ObjectExpression"&&o.properties.length>1)&&o.type!=="ClassBody"&&o.type!=="TSInterfaceBody"?this._printComment(O,P===0?2:P===m-1?3:0):this._printComment(O,0)}}l===2&&g&&w&&(this._lastCommentLine=w)},_(e)}();Object.assign(U1.prototype,SOe),U1.prototype.Noop=function(){};function NOe(){this.tokenChar(44),this.space()}function XW(e,r){var s={auxiliaryCommentBefore:r.auxiliaryCommentBefore,auxiliaryCommentAfter:r.auxiliaryCommentAfter,shouldPrintComment:r.shouldPrintComment,retainLines:r.retainLines,retainFunctionParens:r.retainFunctionParens,comments:r.comments==null||r.comments,compact:r.compact,minified:r.minified,concise:r.concise,indent:{adjustMultilineComment:!0,style:" "},jsescOption:Object.assign({quotes:"double",wrap:!0,minimal:!1},r.jsescOption),topicToken:r.topicToken,importAttributesKeyword:r.importAttributesKeyword};{var l;s.decoratorsBeforeExport=r.decoratorsBeforeExport,s.jsescOption.json=r.jsonCompatibleStrings,s.recordAndTupleSyntaxType=(l=r.recordAndTupleSyntaxType)!=null?l:"hash"}s.minified?(s.compact=!0,s.shouldPrintComment=s.shouldPrintComment||function(){return s.comments}):s.shouldPrintComment=s.shouldPrintComment||function(f){return s.comments||f.includes("@license")||f.includes("@preserve")},s.compact==="auto"&&(s.compact=typeof e=="string"&&e.length>5e5,s.compact&&console.error("[BABEL] Note: The code generator has deoptimised the styling of "+(r.filename+" as it exceeds the max of 500KB."))),s.compact&&(s.indent.adjustMultilineComment=!1);var u=s.auxiliaryCommentBefore,o=s.auxiliaryCommentAfter,c=s.shouldPrintComment;return u&&!c(u)&&(s.auxiliaryCommentBefore=void 0),o&&!c(o)&&(s.auxiliaryCommentAfter=void 0),s}a.CodeGenerator=function(){function e(s,l,u){l===void 0&&(l={}),this._ast=void 0,this._format=void 0,this._map=void 0,this._ast=s,this._format=XW(u,l),this._map=l.sourceMaps?new iW(l,u):null}var r=e.prototype;return r.generate=function(){var l=new U1(this._format,this._map);return l.generate(this._ast)},_(e)}();function Wd(e,r,s){r===void 0&&(r={});var l=XW(s,r),u=r.sourceMaps?new iW(r,s):null,o=new U1(l,u);return o.generate(e)}var kOe=Object.freeze({__proto__:null,default:Wd}),DOe=Ys;function LOe(e){for(var r=this;r=r.parentPath;)if(e(r))return r;return null}function MOe(e){var r=this;do if(e(r))return r;while(r=r.parentPath);return null}function BOe(){return this.findParent(function(e){return e.isFunction()})}function FOe(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e}function $Oe(e){return this.getDeepestCommonAncestorFrom(e,function(r,s,l){for(var u,o=DOe[r.type],c=C(l),f;!(f=c()).done;){var h=f.value,m=h[s+1];if(!u){u=m;continue}if(m.listKey&&u.listKey===m.listKey&&m.key<u.key){u=m;continue}var g=o.indexOf(u.parentKey),x=o.indexOf(m.parentKey);g>x&&(u=m)}return u})}function qOe(e,r){var s=this;if(!e.length)return this;if(e.length===1)return e[0];var l=1/0,u,o,c=e.map(function(w){var T=[];do T.unshift(w);while((w=w.parentPath)&&w!==s);return T.length<l&&(l=T.length),T}),f=c[0];e:for(var h=0;h<l;h++){for(var m=f[h],g=C(c),x;!(x=g()).done;){var R=x.value;if(R[h]!==m)break e}u=h,o=m}if(o)return r?r(o,u,c):o;throw new Error("Couldn't find intersection")}function UOe(){var e=this,r=[];do r.push(e);while(e=e.parentPath);return r}function VOe(e){return e.isDescendant(this)}function WOe(e){return!!this.findParent(function(r){return r===e})}function GOe(){for(var e=this,r=arguments.length,s=new Array(r),l=0;l<r;l++)s[l]=arguments[l];for(;e;){for(var u=C(s),o;!(o=u()).done;){var c=o.value;if(e.node.type===c)return!0}e=e.parentPath}return!1}var JW=t1,YW=Wq,KOe=t1,HOe=sF,zOe=oF;function V1(e){{if(e.every(function(r){return HOe(r)}))return JW?JW(e):KOe(e);if(e.every(function(r){return zOe(r)})&&YW)return YW(e)}}var XOe=U7,JOe=$q,QW=Hf,YOe=Ld;function QOe(e){if(this.isReferenced()){var r=this.scope.getBinding(e.name);if(r)return r.identifier.typeAnnotation?r.identifier.typeAnnotation:ZOe(r,this,e.name);if(e.name==="undefined")return YOe();if(e.name==="NaN"||e.name==="Infinity")return QW();e.name}}function ZOe(e,r,s){var l=[],u=[],o=ZW(e,r,u),c=eG(e,r,s);if(c){var f=ZW(e,c.ifStatement);o=o.filter(function(R){return!f.includes(R)}),l.push(c.typeAnnotation)}if(o.length){var h;(h=o).push.apply(h,u);for(var m=C(o),g;!(g=m()).done;){var x=g.value;l.push(x.getTypeAnnotation())}}if(l.length)return V1(l)}function ZW(e,r,s){var l=e.constantViolations.slice();return l.unshift(e.path),l.filter(function(u){u=u.resolve();var o=u._guessExecutionStatusRelativeTo(r);return s&&o==="unknown"&&s.push(u),o==="before"})}function e_e(e,r){var s=r.node.operator,l=r.get("right").resolve(),u=r.get("left").resolve(),o;if(u.isIdentifier({name:e})?o=l:l.isIdentifier({name:e})&&(o=u),o)return s==="==="?o.getTypeAnnotation():XOe.includes(s)?QW():void 0;if(!(s!=="==="&&s!=="==")){var c,f;if(u.isUnaryExpression({operator:"typeof"})?(c=u,f=l):l.isUnaryExpression({operator:"typeof"})&&(c=l,f=u),!!c&&c.get("argument").isIdentifier({name:e})&&(f=f.resolve(),!!f.isLiteral())){var h=f.node.value;if(typeof h=="string")return JOe(h)}}}function t_e(e,r,s){for(var l;l=r.parentPath;){if(l.isIfStatement()||l.isConditionalExpression())return r.key==="test"?void 0:l;if(l.isFunction()&&l.parentPath.scope.getBinding(s)!==e)return;r=l}}function eG(e,r,s){var l=t_e(e,r,s);if(l){for(var u=l.get("test"),o=[u],c=[],f=0;f<o.length;f++){var h=o[f];if(h.isLogicalExpression())h.node.operator==="&&"&&(o.push(h.get("left")),o.push(h.get("right")));else if(h.isBinaryExpression()){var m=e_e(s,h);m&&c.push(m)}}return c.length?{typeAnnotation:V1(c),ifStatement:l}:eG(e,l,s)}}var r_e=W7,a_e=G7,n_e=Lg,s_e=K7,i_e=H7,tG=Kf,o9=bR,l9=Yg,W1=jg,Zl=Dd,nc=Ne,o_e=xR,Gd=Hf,sc=zf,l_e=RR,u_e=Qg,c_e=Ld,d_e=Dt;function p_e(){if(this.get("id").isIdentifier())return this.get("init").getTypeAnnotation()}function rG(e){return e.typeAnnotation}rG.validParent=!0;function aG(e){return e.typeAnnotation}aG.validParent=!0;function f_e(){return this.get("expression").getTypeAnnotation()}function h_e(e){if(e.callee.type==="Identifier")return Zl(e.callee)}function m_e(){return sc()}function y_e(e){var r=e.operator;if(r==="void")return c_e();if(s_e.includes(r))return Gd();if(i_e.includes(r))return sc();if(a_e.includes(r))return l9()}function g_e(e){var r=e.operator;if(n_e.includes(r))return Gd();if(r_e.includes(r))return l9();if(r==="+"){var s=this.get("right"),l=this.get("left");return l.isBaseType("number")&&s.isBaseType("number")?Gd():l.isBaseType("string")||s.isBaseType("string")?sc():u_e([sc(),Gd()])}}function v_e(){var e=[this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()];return V1(e)}function b_e(){var e=[this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()];return V1(e)}function x_e(){return this.get("expressions").pop().getTypeAnnotation()}function R_e(){return this.get("expression").getTypeAnnotation()}function E_e(){return this.get("right").getTypeAnnotation()}function S_e(e){var r=e.operator;if(r==="++"||r==="--")return Gd()}function T_e(){return sc()}function w_e(){return Gd()}function P_e(){return l9()}function A_e(){return o_e()}function I_e(){return Zl(nc("RegExp"))}function C_e(){return Zl(nc("Object"))}function nG(){return Zl(nc("Array"))}function sG(){return nG()}sG.validParent=!0;function mh(){return Zl(nc("Function"))}var j_e=W1("Array.from"),O_e=W1("Object.keys"),__e=W1("Object.values"),N_e=W1("Object.entries");function k_e(){var e=this.node.callee;return O_e(e)?o9(sc()):j_e(e)||__e(e)||d_e(e,{name:"Array"})?o9(tG()):N_e(e)?o9(l_e([sc(),tG()])):iG(this.get("callee"))}function D_e(){return iG(this.get("tag"))}function iG(e){if(e=e.resolve(),e.isFunction()){var r=e,s=r.node;if(s.async)return s.generator?Zl(nc("AsyncIterator")):Zl(nc("Promise"));if(s.generator)return Zl(nc("Iterator"));if(e.node.returnType)return e.node.returnType}}var oG=Object.freeze({__proto__:null,ArrayExpression:nG,ArrowFunctionExpression:mh,AssignmentExpression:E_e,BinaryExpression:g_e,BooleanLiteral:P_e,CallExpression:k_e,ClassDeclaration:mh,ClassExpression:mh,ConditionalExpression:b_e,FunctionDeclaration:mh,FunctionExpression:mh,Identifier:QOe,LogicalExpression:v_e,NewExpression:h_e,NullLiteral:A_e,NumericLiteral:w_e,ObjectExpression:C_e,ParenthesizedExpression:R_e,RegExpLiteral:I_e,RestElement:sG,SequenceExpression:x_e,StringLiteral:T_e,TSAsExpression:aG,TSNonNullExpression:f_e,TaggedTemplateExpression:D_e,TemplateLiteral:m_e,TypeCastExpression:rG,UnaryExpression:y_e,UpdateExpression:S_e,VariableDeclarator:p_e}),lG=Kf,G1=Tf,L_e=xd,M_e=og,B_e=cg,F_e=_7,$_e=wf,uG=Dt,q_e=ug,U_e=dg,V_e=pg,W_e=Ig,G_e=I7,K_e=If,H_e=fg,z_e=hg,X_e=Af,J_e=mg,Y_e=zf,Q_e=Ld;function Z_e(){var e=this.getData("typeAnnotation");return e!=null||(e=cG.call(this)||lG(),(z_e(e)||G_e(e))&&(e=e.typeAnnotation),this.setData("typeAnnotation",e)),e}var u9=new WeakSet;function cG(){var e=this.node;if(!e)if(this.key==="init"&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,s=r.parentPath;return r.key==="left"&&s.isForInStatement()?Y_e():r.key==="left"&&s.isForOfStatement()?lG():Q_e()}else return;if(e.typeAnnotation)return e.typeAnnotation;if(!u9.has(e)){u9.add(e);try{var l,u=oG[e.type];if(u)return u.call(this,e);if(u=oG[this.parentPath.type],(l=u)!=null&&l.validParent)return this.parentPath.getTypeAnnotation()}finally{u9.delete(e)}}}function eNe(e,r){return c9(e,this.getTypeAnnotation(),r)}function c9(e,r,s){if(e==="string")return V_e(r);if(e==="number")return U_e(r);if(e==="boolean")return M_e(r);if(e==="any")return G1(r);if(e==="mixed")return q_e(r);if(e==="empty")return B_e(r);if(e==="void")return J_e(r);if(s)return!1;throw new Error("Unknown base type "+e)}function tNe(e){var r=this.getTypeAnnotation();if(G1(r))return!0;if(X_e(r)){for(var s=C(r.types),l;!(l=s()).done;){var u=l.value;if(G1(u)||c9(e,u,!0))return!0}return!1}else return c9(e,r,!0)}function rNe(e){var r=this.getTypeAnnotation(),s=e.getTypeAnnotation();return!G1(r)&&F_e(r)?s.type===r.type:!1}function aNe(e){var r=this.getTypeAnnotation();return e==="Array"&&(W_e(r)||L_e(r)||H_e(r))?!0:$_e(r)&&uG(r.id,{name:e})||K_e(r)&&uG(r.typeName,{name:e})}var nNe=Mi,sNe=me,iNe=ro,oNe=Br,lNe=Sr,uNe={ReferencedIdentifier:function(r,s){if(!(r.isJSXIdentifier()&&nNe.isCompatTag(r.node.name)&&!r.parentPath.isJSXMemberExpression())){if(r.node.name==="this"){var l=r.scope;do if(l.path.isFunction()&&!l.path.isArrowFunctionExpression())break;while(l=l.parent);l&&s.breakOnScopePaths.push(l.path)}var u=r.scope.getBinding(r.node.name);if(u){for(var o=C(u.constantViolations),c;!(c=o()).done;){var f=c.value;if(f.scope!==u.path.scope){s.mutableBinding=!0,r.stop();return}}u===s.scope.getBinding(r.node.name)&&(s.bindings[r.node.name]=u)}}}},cNe=function(){function e(s,l){this.breakOnScopePaths=void 0,this.bindings=void 0,this.mutableBinding=void 0,this.scopes=void 0,this.scope=void 0,this.path=void 0,this.attachAfter=void 0,this.breakOnScopePaths=[],this.bindings={},this.mutableBinding=!1,this.scopes=[],this.scope=l,this.path=s,this.attachAfter=!1}var r=e.prototype;return r.isCompatibleScope=function(l){for(var u=0,o=Object.keys(this.bindings);u<o.length;u++){var c=o[u],f=this.bindings[c];if(!l.bindingIdentifierEquals(c,f.identifier))return!1}return!0},r.getCompatibleScopes=function(){var l=this.path.scope;do{if(this.isCompatibleScope(l))this.scopes.push(l);else break;if(this.breakOnScopePaths.includes(l.path))break}while(l=l.parent)},r.getAttachmentPath=function(){var l=this._getAttachmentPath();if(l){var u=l.scope;if(u.path===l&&(u=l.scope.parent),u.path.isProgram()||u.path.isFunction())for(var o=0,c=Object.keys(this.bindings);o<c.length;o++){var f=c[o];if(u.hasOwnBinding(f)){var h=this.bindings[f];if(!(h.kind==="param"||h.path.parentKey==="params")){var m=this.getAttachmentParentForPath(h.path);if(m.key>=l.key){this.attachAfter=!0,l=h.path;for(var g=C(h.constantViolations),x;!(x=g()).done;){var R=x.value;this.getAttachmentParentForPath(R).key>l.key&&(l=R)}}}}}return l}},r._getAttachmentPath=function(){var l=this.scopes,u=l.pop();if(u){if(u.path.isFunction())if(this.hasOwnParamBindings(u)){if(this.scope===u)return;for(var o=u.path.get("body").get("body"),c=0;c<o.length;c++)if(!o[c].node._blockHoist)return o[c]}else return this.getNextScopeAttachmentParent();else if(u.path.isProgram())return this.getNextScopeAttachmentParent()}},r.getNextScopeAttachmentParent=function(){var l=this.scopes.pop();if(l)return this.getAttachmentParentForPath(l.path)},r.getAttachmentParentForPath=function(l){do if(!l.parentPath||Array.isArray(l.container)&&l.isStatement())return l;while(l=l.parentPath)},r.hasOwnParamBindings=function(l){for(var u=0,o=Object.keys(this.bindings);u<o.length;u++){var c=o[u];if(l.hasOwnBinding(c)){var f=this.bindings[c];if(f.kind==="param"&&f.constant)return!0}}return!1},r.run=function(){if(this.path.traverse(uNe,this),!this.mutableBinding){this.getCompatibleScopes();var l=this.getAttachmentPath();if(l&&l.getFunctionParent()!==this.path.getFunctionParent()){var u=l.scope.generateUidIdentifier("ref"),o=lNe(u,this.path.node),c=this.attachAfter?"insertAfter":"insertBefore",f=l[c]([l.isVariableDeclarator()?o:oNe("var",[o])]),h=je(f,1),m=h[0],g=this.path.parentPath;return g.isJSXElement()&&this.path.container===g.node.children&&(u=iNe(u)),this.path.replaceWith(sNe(u)),l.isVariableDeclarator()?m.get("init"):m.get("declarations.0.init")}}},_(e)}(),dNe=[function(e,r){var s=e.key==="test"&&(r.isWhile()||r.isSwitchCase())||e.key==="declaration"&&r.isExportDeclaration()||e.key==="body"&&r.isLabeledStatement()||e.listKey==="declarations"&&r.isVariableDeclaration()&&r.node.declarations.length===1||e.key==="expression"&&r.isExpressionStatement();if(s)return r.remove(),!0},function(e,r){if(r.isSequenceExpression()&&r.node.expressions.length===1)return r.replaceWith(r.node.expressions[0]),!0},function(e,r){if(r.isBinary())return e.key==="left"?r.replaceWith(r.node.right):r.replaceWith(r.node.left),!0},function(e,r){if(r.isIfStatement()&&e.key==="consequent"||e.key==="body"&&(r.isLoop()||r.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}],pNe=_s;function fNe(){var e;if(Kd.call(this),Uo.call(this),pG.call(this)){K1.call(this);return}(e=this.opts)!=null&&e.noScope||dG.call(this),this.shareCommentsWithSiblings(),fG.call(this),K1.call(this)}function dG(){var e=this,r=pNe(this.node,!1,!1,!0);Object.keys(r).forEach(function(s){return e.scope.removeBinding(s)})}function pG(){if(this.parentPath)for(var e=C(dNe),r;!(r=e()).done;){var s=r.value;if(s(this,this.parentPath))return!0}}function fG(){Array.isArray(this.container)?(this.container.splice(this.key,1),J1.call(this,this.key,-1)):m9.call(this,null)}function K1(){this._traverseFlags|=hK|wDe,this.parent&&fh(this.hub,this.parent).delete(this.node),this.node=null}function Kd(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}var hNe=fi,mNe=Fq,yNe=tr,hG=ea,gNe=ft,d9=me,p9=Xt,vNe=Se,bNe=ct,mG=gd,xNe=Zi,RNe=Dt,ENe=li,SNe=Js,TNe=qr;function yG(e){Kd.call(this);var r=eu.call(this,e),s=this.parentPath,l=this.parent;if(s.isExpressionStatement()||s.isLabeledStatement()||mG(l)||s.isExportDefaultDeclaration()&&this.isDeclaration())return s.insertBefore(r);if(this.isNodeType("Expression")&&!this.isJSXElement()||s.isForStatement()&&this.key==="init")return this.node&&r.push(this.node),this.replaceExpressionWithStatements(r);if(Array.isArray(this.container))return z1.call(this,r);if(this.isStatementOrBlock()){var u=this.node,o=u&&(!this.isExpressionStatement()||u.expression!=null);return this.replaceWith(hG(o?[u]:[])),this.unshiftContainer("body",r)}else throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")}function H1(e,r){var s;J1.call(this,e,r.length);var l=[];(s=this.container).splice.apply(s,[e,0].concat(fe(r)));for(var u=0;u<r.length;u++){var o,c=e+u,f=this.getSibling(c);l.push(f),(o=this.context)!=null&&o.queue&&a0.call(f,this.context)}for(var h=j9.call(this),m=0,g=l;m<g.length;m++){var x=g[m];bh.call(x),x.debug("Inserted.");for(var R=C(h),w;!(w=R()).done;){var T=w.value;T.maybeQueue(x,!0)}}return l}function z1(e){return H1.call(this,this.key,e)}function X1(e){return H1.call(this,this.key+1,e)}var gG=function(r){return r[r.length-1]};function vG(e){return ENe(e.parent)&&(gG(e.parent.expressions)!==e.node||vG(e.parentPath))}function wNe(e,r){if(!vNe(e)||!RNe(e.left))return!1;var s=r.getBlockParent();return s.hasOwnBinding(e.left.name)&&s.getOwnBinding(e.left.name).constantViolations.length<=1}function bG(e){if(Kd.call(this),this.isSequenceExpression())return gG(this.get("expressions")).insertAfter(e);var r=eu.call(this,e),s=this.parentPath,l=this.parent;if(s.isExpressionStatement()||s.isLabeledStatement()||mG(l)||s.isExportDefaultDeclaration()&&this.isDeclaration())return s.insertAfter(r.map(function(g){return xNe(g)?p9(g):g}));if(this.isNodeType("Expression")&&!this.isJSXElement()&&!s.isJSXElement()||s.isForStatement()&&this.key==="init"){var u=this;if(u.node){var o=u.node,c=this.scope;if(c.path.isPattern())return mNe(o),u.replaceWith(gNe(hNe([],o),[])),u.get("callee.body").insertAfter(r),[u];if(vG(u))r.unshift(o);else if(bNe(o)&&SNe(o.callee))r.unshift(o),r.push(TNe());else if(wNe(o,c))r.unshift(o),r.push(d9(o.left));else if(c.isPure(o,!0))r.push(o);else{s.isMethod({computed:!0,key:o})&&(c=c.parent);var f=c.generateDeclaredUidIdentifier();r.unshift(p9(yNe("=",d9(f),o))),r.push(p9(d9(f)))}}return this.replaceExpressionWithStatements(r)}else{if(Array.isArray(this.container))return X1.call(this,r);if(this.isStatementOrBlock()){var h=this.node,m=h&&(!this.isExpressionStatement()||h.expression!=null);return this.replaceWith(hG(m?[h]:[])),this.pushContainer("body",r)}else throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")}}function J1(e,r){if(this.parent)for(var s=fh(this.hub,this.parent)||[],l=C(s),u;!(u=l()).done;){var o=je(u.value,2),c=o[1];typeof c.key=="number"&&c.key>=e&&(c.key+=r)}}function eu(e){if(!e)return[];Array.isArray(e)||(e=[e]);for(var r=0;r<e.length;r++){var s=e[r],l=void 0;if(s?typeof s!="object"?l="contains a non-object node":s.type?s instanceof wn&&(l="has a NodePath when it expected a raw object"):l="without a type":l="has falsy node",l){var u=Array.isArray(s)?"array":typeof s;throw new Error("Node list "+l+" with the index of "+r+" and type of "+u)}}return e}function xG(e,r){Kd.call(this),r=eu.call(this,r);var s=wn.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).setContext(this.context);return z1.call(s,r)}function RG(e,r){Kd.call(this);var s=eu.call(this,r),l=this.node[e],u=wn.get({parentPath:this,parent:this.node,container:l,listKey:e,key:l.length}).setContext(this.context);return u.replaceWithMultiple(s)}a.hoist=function(r){r===void 0&&(r=this.scope);var s=new cNe(this,r);return s.run()};var PNe=Object.freeze({__proto__:null,_containerInsert:H1,_containerInsertAfter:X1,_containerInsertBefore:z1,_verifyNodeList:eu,insertAfter:bG,insertBefore:yG,pushContainer:RG,unshiftContainer:xG,updateSiblingKeys:J1}),EG=zq,ANe=fi,SG=tr,INe=to,CNe=ea,f9=Qu,jNe=ft,h9=me,ONe=Qs,_Ne=Xt,NNe=_s,kNe=Ne,DNe=a1,LNe=X8,MNe=ql,BNe=Ue,TG=Jr,wG=Zi,FNe=Ea,$Ne=on,qNe=Va,UNe=ui,VNe=Ja,WNe=J8,PG=ln,GNe=Mr,AG=$f,KNe=_d;function HNe(e){var r;Uo.call(this),e=eu.call(this,e),DNe(e[0],this.node),LNe(e[e.length-1],this.node),(r=fh(this.hub,this.parent))==null||r.delete(this.node),this.node=this.container[this.key]=null;var s=this.insertAfter(e);return this.node?this.requeue():this.remove(),s}function zNe(e){Uo.call(this);var r;try{e="("+e+")",r=oh(e)}catch(u){var s=u.loc;throw s&&(u.message+=` - make sure this is an expression. +`+g1(e,{start:{line:s.line,column:s.column+1}}),u.code="BABEL_REPLACE_SOURCE_ERROR"),u}var l=r.program.body[0].expression;return $a.removeProperties(l),this.replaceWith(l)}function XNe(e){if(Uo.call(this),this.removed)throw new Error("You can't replace this node, we've already removed it");var r=e instanceof wn?e.node:e;if(!r)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node===r)return[this];if(this.isProgram()&&!qNe(r))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(r))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if(typeof r=="string")throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");var s="";if(this.isNodeType("Statement")&&wG(r)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(r)&&!this.parentPath.isExportDefaultDeclaration()&&(r=_Ne(r),s="expression"),this.isNodeType("Expression")&&UNe(r)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(r))return this.replaceExpressionWithStatements([r]);var l=this.node;return l&&(MNe(r,l),WNe(l)),m9.call(this,r),this.type=r.type,bh.call(this),this.requeue(),[s?this.get(s):this]}function m9(e){var r;if(!this.container)throw new ReferenceError("Container is falsy");this.inList?AG(this.parent,this.key,[e]):AG(this.parent,this.key,e),this.debug("Replace with "+(e==null?void 0:e.type)),(r=fh(this.hub,this.parent))==null||r.set(e,this).delete(this.node),this.node=this.container[this.key]=e}function JNe(e){var r=this;Uo.call(this);var s=[],l=Y1(e,s);if(l){for(var u=C(s),o;!(o=u()).done;){var c=o.value;this.scope.push({id:c})}return this.replaceWith(l)[0].get("expressions")}var f=this.getFunctionParent(),h=f==null?void 0:f.node.async,m=f==null?void 0:f.node.generator,g=ANe([],CNe(e));this.replaceWith(jNe(g,[]));var x=this.get("callee");x.get("body").scope.hoistVariables(function(B){return r.scope.push({id:B})});for(var R=x.getCompletionRecords(),w=C(R),T;!(T=w()).done;){var I=T.value;if(I.isExpressionStatement()){var P=I.findParent(function(B){return B.isLoop()});if(P){var O=P.getData("expressionReplacementReturnUid");O?O=kNe(O.name):(O=x.scope.generateDeclaredUidIdentifier("ret"),x.get("body").pushContainer("body",PG(h9(O))),P.setData("expressionReplacementReturnUid",O)),I.get("expression").replaceWith(SG("=",h9(O),I.node.expression))}else I.replaceWith(PG(I.node.expression))}}x.arrowFunctionToExpression();var j=x,D=h&&$a.hasType(this.get("callee.body").node,"AwaitExpression",EG),k=m&&$a.hasType(this.get("callee.body").node,"YieldExpression",EG);return D&&(j.set("async",!0),k||this.replaceWith(INe(this.node))),k&&(j.set("generator",!0),this.replaceWith(KNe(this.node,!0))),j.get("body.body")}function Y1(e,r){for(var s=[],l=!0,u=C(e),o;!(o=u()).done;){var c=o.value;if(TG(c)||(l=!1),wG(c))s.push(c);else if(FNe(c))s.push(c.expression);else if(VNe(c)){if(c.kind!=="var")return;for(var f=C(c.declarations),h;!(h=f()).done;){for(var m=h.value,g=NNe(m),x=0,R=Object.keys(g);x<R.length;x++){var w=R[x];r.push(h9(g[w]))}m.init&&s.push(SG("=",m.id,m.init))}l=!0}else if($Ne(c)){var T=c.consequent?Y1([c.consequent],r):f9(),I=c.alternate?Y1([c.alternate],r):f9();if(!T||!I)return;s.push(ONe(c.test,T,I))}else if(BNe(c)){var P=Y1(c.body,r);if(!P)return;s.push(P)}else if(TG(c))e.indexOf(c)===0&&(l=!0);else return}return l&&s.push(f9()),s.length===1?s[0]:GNe(s)}function YNe(e){if(Uo.call(this),Array.isArray(e))if(Array.isArray(this.container)){e=eu.call(this,e);var r=X1.call(this,e);return this.remove(),r}else return this.replaceWithMultiple(e);else return this.replaceWith(e)}var QNe=["Number","String","Math"],ZNe=["isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent",null,null],eke=["random"];function IG(e){return QNe.includes(e)}function tke(e){return ZNe.includes(e)}function rke(e){return eke.includes(e)}function ake(){var e=this.evaluate();if(e.confident)return!!e.value}function qo(e,r){r.confident&&(r.deoptPath=e,r.confident=!1)}var CG=new Map([["undefined",void 0],["Infinity",1/0],["NaN",NaN]]);function us(e,r){var s=e.node,l=r.seen;if(l.has(s)){var u=l.get(s);if(u.resolved)return u.value;qo(e,r);return}else{var o={resolved:!1};l.set(s,o);var c=nke(e,r);return r.confident&&(o.resolved=!0,o.value=c),c}}function nke(e,r){if(r.confident){if(e.isSequenceExpression()){var s=e.get("expressions");return us(s[s.length-1],r)}if(e.isStringLiteral()||e.isNumericLiteral()||e.isBooleanLiteral())return e.node.value;if(e.isNullLiteral())return null;if(e.isTemplateLiteral())return jG(e,e.node.quasis,r);if(e.isTaggedTemplateExpression()&&e.get("tag").isMemberExpression()){var l=e.get("tag.object"),u=l.node.name,o=e.get("tag.property");if(l.isIdentifier()&&u==="String"&&!e.scope.getBinding(u)&&o.isIdentifier()&&o.node.name==="raw")return jG(e,e.node.quasi.quasis,r,!0)}if(e.isConditionalExpression()){var c=us(e.get("test"),r);return r.confident?us(c?e.get("consequent"):e.get("alternate"),r):void 0}if(e.isExpressionWrapper())return us(e.get("expression"),r);if(e.isMemberExpression()&&!e.parentPath.isCallExpression({callee:e.node})){var f=e.get("property"),h=e.get("object");if(h.isLiteral()){var m=h.node.value,g=typeof m,x=null;if(e.node.computed){if(x=us(f,r),!r.confident)return}else f.isIdentifier()&&(x=f.node.name);if((g==="number"||g==="string")&&x!=null&&(typeof x=="number"||typeof x=="string"))return m[x]}}if(e.isReferencedIdentifier()){var R=e.scope.getBinding(e.node.name);if(R){if(R.constantViolations.length>0||e.node.start<R.path.node.end){qo(R.path,r);return}if(R.hasValue)return R.value}var w=e.node.name;if(CG.has(w)){if(!R)return CG.get(w);qo(R.path,r);return}var T=e.resolve();if(T===e){qo(e,r);return}else return us(T,r)}if(e.isUnaryExpression({prefix:!0})){if(e.node.operator==="void")return;var I=e.get("argument");if(e.node.operator==="typeof"&&(I.isFunction()||I.isClass()))return"function";var P=us(I,r);if(!r.confident)return;switch(e.node.operator){case"!":return!P;case"+":return+P;case"-":return-P;case"~":return~P;case"typeof":return typeof P}}if(e.isArrayExpression()){for(var O=[],j=e.get("elements"),D=C(j),k;!(k=D()).done;){var B=k.value,F=B.evaluate();if(F.confident)O.push(F.value);else{qo(F.deopt,r);return}}return O}if(e.isObjectExpression()){for(var L={},V=e.get("properties"),H=C(V),K;!(K=H()).done;){var G=K.value;if(G.isObjectMethod()||G.isSpreadElement()){qo(G,r);return}var X=G.get("key"),ue=void 0;if(G.node.computed){if(ue=X.evaluate(),!ue.confident){qo(ue.deopt,r);return}ue=ue.value}else X.isIdentifier()?ue=X.node.name:ue=X.node.value;var oe=G.get("value"),he=oe.evaluate();if(!he.confident){qo(he.deopt,r);return}he=he.value,L[ue]=he}return L}if(e.isLogicalExpression()){var te=r.confident,ae=us(e.get("left"),r),J=r.confident;r.confident=te;var xe=us(e.get("right"),r),de=r.confident;switch(e.node.operator){case"||":return r.confident=J&&(!!ae||de),r.confident?ae||xe:void 0;case"&&":return r.confident=J&&(!ae||de),r.confident?ae&&xe:void 0;case"??":return r.confident=J&&(ae!=null||de),r.confident?ae??xe:void 0}}if(e.isBinaryExpression()){var $e=us(e.get("left"),r);if(!r.confident)return;var Ve=us(e.get("right"),r);if(!r.confident)return;switch(e.node.operator){case"-":return $e-Ve;case"+":return $e+Ve;case"/":return $e/Ve;case"*":return $e*Ve;case"%":return $e%Ve;case"**":return Math.pow($e,Ve);case"<":return $e<Ve;case">":return $e>Ve;case"<=":return $e<=Ve;case">=":return $e>=Ve;case"==":return $e==Ve;case"!=":return $e!=Ve;case"===":return $e===Ve;case"!==":return $e!==Ve;case"|":return $e|Ve;case"&":return $e&Ve;case"^":return $e^Ve;case"<<":return $e<<Ve;case">>":return $e>>Ve;case">>>":return $e>>>Ve}}if(e.isCallExpression()){var Ie=e.get("callee"),ke,Le;if(Ie.isIdentifier()&&!e.scope.getBinding(Ie.node.name)&&(IG(Ie.node.name)||tke(Ie.node.name))&&(Le=Oo[Ie.node.name]),Ie.isMemberExpression()){var Ze=Ie.get("object"),at=Ie.get("property");if(Ze.isIdentifier()&&at.isIdentifier()&&IG(Ze.node.name)&&!rke(at.node.name)){ke=Oo[Ze.node.name];var lt=at.node.name;hasOwnProperty.call(ke,lt)&&(Le=ke[lt])}if(Ze.isLiteral()&&at.isIdentifier()){var gt=typeof Ze.node.value;(gt==="string"||gt==="number")&&(ke=Ze.node.value,Le=ke[at.node.name])}}if(Le){var It=e.get("arguments").map(function(tt){return us(tt,r)});return r.confident?Le.apply(ke,It):void 0}}qo(e,r)}}function jG(e,r,s,l){l===void 0&&(l=!1);for(var u="",o=0,c=e.isTemplateLiteral()?e.get("expressions"):e.get("quasi.expressions"),f=C(r),h;!(h=f()).done;){var m=h.value;if(!s.confident)break;u+=l?m.value.raw:m.value.cooked;var g=c[o++];g&&(u+=String(us(g,s)))}if(s.confident)return u}function ske(){var e={confident:!0,deoptPath:null,seen:new Map},r=us(this,e);return e.confident||(r=void 0),{confident:e.confident,deopt:e.deoptPath,value:r}}var OG,y9=fi,ic=tr,g9=nn,ike=ea,Hd=ft,oke=Qs,_G=Xt,Da=Ne,lke=Dt,uke=ao,cke=pi,dke=Ku,Fi=Vt,pke=yR,fke=Wr,hke=Oa,mke=No,yke=ln,gke=Mr,vke=Xu,NG=Jt,v9=Wf,yh=qr,kG=An,bke=vn,xke=Jq,Rke=Cs,Eke=Nl,Ske=hn,Tke=eU,oc=me,wke=Br,Pke=Sr,DG=Zs,LG=hi,Ake=Na;function MG(){var e;if(this.isMemberExpression())e=this.node.property;else if(this.isProperty()||this.isMethod())e=this.node.key;else throw new ReferenceError("todo");return this.node.computed||lke(e)&&(e=NG(e.name)),e}function BG(){var e=this.get("body"),r=e.node;if(Array.isArray(e))throw new Error("Can't convert array path to a block statement");if(!r)throw new Error("Can't convert node without a body");if(e.isBlockStatement())return r;var s=[],l="body",u,o;e.isStatement()?(o="body",u=0,s.push(e.node)):(l+=".body.0",this.isFunction()?(u="argument",s.push(yke(e.node))):(u="expression",s.push(_G(e.node)))),this.node.body=ike(s);var c=this.get(l);return n0.call(e,c,o?c.node[o]:c.node,o,u),this.node}a.arrowFunctionToShadowed=function(){this.isArrowFunctionExpression()&&this.arrowFunctionToExpression()};function FG(){if(!this.isArrowFunctionExpression()&&!this.isFunctionExpression()&&!this.isFunctionDeclaration())throw this.buildCodeFrameError("Can only unwrap the environment of a function.");qG(this)}function Ike(e,r){e.node.type=r}function $G(e){var r,s=e===void 0?{}:e,l=s.allowInsertArrow,u=l===void 0?!0:l,o=s.allowInsertArrowWithRest,c=o===void 0?u:o,f=s.noNewArrows,h=f===void 0?!((r=arguments[0])!=null&&r.specCompliant):f;if(!this.isArrowFunctionExpression())throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");var m=this;if(!h){var g;m=(g=m.ensureFunctionName(!1))!=null?g:m}var x=qG(m,h,u,c),R=x.thisBinding,w=x.fnPath;if(w.ensureBlock(),Ike(w,"FunctionExpression"),!h){var T=R?null:w.scope.generateUidIdentifier("arrowCheckId");return T&&w.parentPath.scope.push({id:T,init:hke([])}),w.get("body").unshiftContainer("body",_G(Hd(this.hub.addHelper("newArrowCheck"),[yh(),Da(T?T.name:R)]))),w.replaceWith(Hd(Fi(w.node,Da("bind")),[T?Da(T.name):yh()])),w.get("callee.object")}return w}var Cke=Fn({CallExpression:function(r,s){var l=s.allSuperCalls;r.get("callee").isSuper()&&l.push(r)}});function qG(e,r,s,l){r===void 0&&(r=!0),s===void 0&&(s=!0),l===void 0&&(l=!0);var u,o=e.findParent(function(D){if(D.isArrowFunctionExpression()){var k;return(k=u)!=null||(u=D),!1}return D.isFunction()||D.isProgram()||D.isClassProperty({static:!1})||D.isClassPrivateProperty({static:!1})}),c=o.isClassMethod({kind:"constructor"});if(o.isClassProperty()||o.isClassPrivateProperty())if(u)o=u;else if(s)e.replaceWith(Hd(y9([],kG(e.node)),[])),o=e.get("callee"),e=o.get("body");else throw e.buildCodeFrameError("Unable to transform arrow inside class property");var f=Mke(e),h=f.thisPaths,m=f.argumentsPaths,g=f.newTargetPaths,x=f.superProps,R=f.superCalls;if(c&&R.length>0){if(!s)throw R[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");if(!l)throw R[0].buildCodeFrameError("When using '@babel/plugin-transform-parameters', it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var w=[];o.traverse(Cke,{allSuperCalls:w});var T=kke(o);w.forEach(function(D){var k=Da(T);k.loc=D.node.callee.loc,D.get("callee").replaceWith(k)})}if(m.length>0){var I=gh(o,"arguments",function(){var D=function(){return Da("arguments")};return o.scope.path.isProgram()?oke(g9("===",bke("typeof",D()),NG("undefined")),o.scope.buildUndefinedNode(),D()):D()});m.forEach(function(D){var k=Da(I);k.loc=D.node.loc,D.replaceWith(k)})}if(g.length>0){var P=gh(o,"newtarget",function(){return pke(Da("new"),Da("target"))});g.forEach(function(D){var k=Da(P);k.loc=D.node.loc,D.replaceWith(k)})}if(x.length>0){if(!s)throw x[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var O=x.reduce(function(D,k){return D.concat(Oke(k))},[]);O.forEach(function(D){var k=D.node.computed?"":D.get("property").node.name,B=D.parentPath,F=B.isAssignmentExpression({left:D.node}),L=B.isCallExpression({callee:D.node}),V=B.isTaggedTemplateExpression({tag:D.node}),H=Dke(o,F,k),K=[];if(D.node.computed&&K.push(D.get("property").node),F){var G=B.node.right;K.push(G)}var X=Hd(Da(H),K);L?(B.unshiftContainer("arguments",yh()),D.replaceWith(Fi(X,Da("call"))),h.push(B.get("arguments.0"))):F?B.replaceWith(X):V?(D.replaceWith(Hd(Fi(X,Da("bind"),!1),[yh()])),h.push(D.get("arguments.0"))):D.replaceWith(X)})}var j;return(h.length>0||!r)&&(j=Nke(o,c),(r||c&&UG(o))&&(h.forEach(function(D){var k=D.isJSX()?uke(j):Da(j);k.loc=D.node.loc,D.replaceWith(k)}),r||(j=null))),{thisBinding:j,fnPath:e}}function jke(e){return dke.includes(e)}function Oke(e){if(e.parentPath.isAssignmentExpression()&&e.parentPath.node.operator!=="="){var r=e.parentPath,s=r.node.operator.slice(0,-1),l=r.node.right,u=jke(s);if(e.node.computed){var o=e.scope.generateDeclaredUidIdentifier("tmp"),c=e.node.object,f=e.node.property;r.get("left").replaceWith(Fi(c,ic("=",o,f),!0)),r.get("right").replaceWith(P(u?"=":s,Fi(c,Da(o.name),!0),l))}else{var h=e.node.object,m=e.node.property;r.get("left").replaceWith(Fi(h,m)),r.get("right").replaceWith(P(u?"=":s,Fi(h,Da(m.name)),l))}return u?r.replaceWith(cke(s,r.node.left,r.node.right)):r.node.operator="=",[r.get("left"),r.get("right").get("left")]}else if(e.parentPath.isUpdateExpression()){var g=e.parentPath,x=e.scope.generateDeclaredUidIdentifier("tmp"),R=e.node.computed?e.scope.generateDeclaredUidIdentifier("prop"):null,w=[ic("=",x,Fi(e.node.object,R?ic("=",R,e.node.property):e.node.property,e.node.computed)),ic("=",Fi(e.node.object,R?Da(R.name):e.node.property,e.node.computed),g9(e.parentPath.node.operator[0],Da(x.name),fke(1)))];e.parentPath.node.prefix||w.push(Da(x.name)),g.replaceWith(gke(w));var T=g.get("expressions.0.right"),I=g.get("expressions.1.left");return[T,I]}return[e];function P(O,j,D){return O==="="?ic("=",j,D):g9(O,j,D)}}function UG(e){return e.isClassMethod()&&!!e.parentPath.parentPath.node.superClass}var _ke=Fn({CallExpression:function(r,s){var l=s.supers,u=s.thisBinding;r.get("callee").isSuper()&&(l.has(r.node)||(l.add(r.node),r.replaceWithMultiple([r.node,ic("=",Da(u),Da("this"))])))}});function Nke(e,r){return gh(e,"this",function(s){if(!r||!UG(e))return yh();e.traverse(_ke,{supers:new WeakSet,thisBinding:s})})}function kke(e){return gh(e,"supercall",function(){var r=e.scope.generateUidIdentifier("args");return y9([mke(r)],Hd(v9(),[vke(Da(r.name))]))})}function Dke(e,r,s){var l=r?"set":"get";return gh(e,"superprop_"+l+":"+(s||""),function(){var u=[],o;if(s)o=Fi(v9(),Da(s));else{var c=e.scope.generateUidIdentifier("prop");u.unshift(c),o=Fi(v9(),Da(c.name),!0)}if(r){var f=e.scope.generateUidIdentifier("value");u.push(f),o=ic("=",o,Da(f.name))}return y9(u,o)})}function gh(e,r,s){var l="binding:"+r,u=e.getData(l);if(!u){var o=e.scope.generateUidIdentifier(r);u=o.name,e.setData(l,u),e.scope.push({id:o,init:s(u)})}return u}var Lke=Fn({ThisExpression:function(r,s){var l=s.thisPaths;l.push(r)},JSXIdentifier:function(r,s){var l=s.thisPaths;r.node.name==="this"&&(!r.parentPath.isJSXMemberExpression({object:r.node})&&!r.parentPath.isJSXOpeningElement({name:r.node})||l.push(r))},CallExpression:function(r,s){var l=s.superCalls;r.get("callee").isSuper()&&l.push(r)},MemberExpression:function(r,s){var l=s.superProps;r.get("object").isSuper()&&l.push(r)},Identifier:function(r,s){var l=s.argumentsPaths;if(r.isReferencedIdentifier({name:"arguments"})){var u=r.scope;do{if(u.hasOwnBinding("arguments")){u.rename("arguments");return}if(u.path.isFunction()&&!u.path.isArrowFunctionExpression())break}while(u=u.parent);l.push(r)}},MetaProperty:function(r,s){var l=s.newTargetPaths;r.get("meta").isIdentifier({name:"new"})&&r.get("property").isIdentifier({name:"target"})&&l.push(r)}});function Mke(e){var r=[],s=[],l=[],u=[],o=[];return e.traverse(Lke,{thisPaths:r,argumentsPaths:s,newTargetPaths:l,superProps:u,superCalls:o}),{thisPaths:r,argumentsPaths:s,newTargetPaths:l,superProps:u,superCalls:o}}function VG(){if(!this.isExportDeclaration()||this.isExportAllDeclaration())throw new Error("Only default and named export declarations can be split.");if(this.isExportNamedDeclaration()&&this.get("specifiers").length>0)throw new Error("It doesn't make sense to split exported specifiers.");var e=this.get("declaration");if(this.isExportDefaultDeclaration()){var r=e.isFunctionDeclaration()||e.isClassDeclaration(),s=e.isFunctionExpression()||e.isClassExpression(),l=e.isScope()?e.scope.parent:e.scope,u=e.node.id,o=!1;u?s&&l.hasBinding(u.name)&&(o=!0,u=l.generateUidIdentifier(u.name)):(o=!0,u=l.generateUidIdentifier("default"),(r||s)&&(e.node.id=oc(u)));var c=r?e.node:wke("var",[Pke(oc(u),e.node)]),f=DG(null,[LG(oc(u),Da("default"))]);return this.insertAfter(f),this.replaceWith(c),o&&l.registerDeclaration(this),this}else if(this.get("specifiers").length>0)throw new Error("It doesn't make sense to split exported specifiers.");var h=e.getOuterBindingIdentifiers(),m=Object.keys(h).map(function(x){return LG(Da(x),Da(x))}),g=DG(null,m);return this.insertAfter(g),this.replaceWith(e.node),this}var Bke={"ReferencedIdentifier|BindingIdentifier":function(r,s){r.node.name===s.name&&(s.needsRename=!0,r.stop())},Scope:function(r,s){r.scope.hasOwnBinding(s.name)&&r.skip()}};function WG(e){if(this.node.id)return this;var r=Tke(this.node,this.parent);if(r==null)return this;var s=r.name;if(!e&&/[\uD800-\uDFFF]/.test(s)||s.startsWith("get ")||s.startsWith("set "))return null;s=xke(s.replace(/[/ ]/g,"_"));var l=Da(s);Ake(l,r.originalNode);var u={needsRename:!1,name:s},o=this.scope,c=o.getOwnBinding(s);if(c?c.kind==="param"&&(u.needsRename=!0):(o.parent.hasBinding(s)||o.hasGlobal(s))&&this.traverse(Bke,u),!u.needsRename)return this.node.id=l,o.getProgramParent().references[l.name]=!0,this;if(o.hasBinding(l.name)&&!o.hasGlobal(l.name))return o.rename(l.name),this.node.id=l,o.getProgramParent().references[l.name]=!0,this;if(!Rke(this.node))return null;for(var f=o.generateUidIdentifier(l.name),h=[],m=0,g=Fke(this.node);m<g;m++)h.push(o.generateUidIdentifier("x"));var x=xt.expression.ast(OG||(OG=se([` + (function (`,`) { + function `,"(",`) { + return `,`.apply(this, arguments); + } + + `,`.toString = function () { + return `,`.toString(); + } + + return `,`; + })(`,`) + `])),f,l,h,oc(f),oc(l),oc(f),oc(l),kG(this.node));return this.replaceWith(x)[0].get("arguments.0")}function Fke(e){var r=e.params.findIndex(function(s){return Eke(s)||Ske(s)});return r===-1?e.params.length:r}var $ke=Object.freeze({__proto__:null,arrowFunctionToExpression:$G,ensureBlock:BG,ensureFunctionName:WG,splitExportDeclaration:VG,toComputedKey:MG,unwrapFunctionEnvironment:FG}),qke=TF,Uke=Ys,GG=Ue,Vke=Zi,Wke=Dt,Gke=yn,Kke=nt,Hke=_g,zke=_f;function KG(e,r){return zke(this.node,e,r)}a.has=function(r){var s,l=(s=this.node)==null?void 0:s[r];return l&&Array.isArray(l)?!!l.length:!!l};function HG(){return this.scope.isStatic(this.node)}a.is=a.has,a.isnt=function(r){return!this.has(r)},a.equals=function(r,s){return this.node[r]===s};function zG(e){return Hke(this.type,e)}function XG(){return(this.key==="init"||this.key==="left")&&this.parentPath.isFor()}function JG(e){return this.key!=="body"||!this.parentPath.isArrowFunctionExpression()?!1:this.isExpression()?GG(e):this.isBlockStatement()?Vke(e):!1}function YG(e){var r=this,s=!0;do{var l=r,u=l.type,o=l.container;if(!s&&(r.isFunction()||u==="StaticBlock"))return!!e;if(s=!1,Array.isArray(o)&&r.key!==o.length-1)return!1}while((r=r.parentPath)&&!r.isProgram()&&!r.isDoExpression());return!0}function QG(){return this.parentPath.isLabeledStatement()||GG(this.container)?!1:qke.includes(this.key)}function ZG(e,r){if(!this.isReferencedIdentifier()){if(this.isJSXMemberExpression()&&this.node.property.name===r||(this.isMemberExpression()||this.isOptionalMemberExpression())&&(this.node.computed?Kke(this.node.property,{value:r}):this.node.property.name===r)){var s=this.get("object");return s.isReferencedIdentifier()&&s.referencesImport(e,"*")}return!1}var l=this.scope.getBinding(this.node.name);if(!l||l.kind!=="module")return!1;var u=l.path,o=u.parentPath;if(!o.isImportDeclaration())return!1;if(o.node.source.value===e){if(!r)return!0}else return!1;return!!(u.isImportDefaultSpecifier()&&r==="default"||u.isImportNamespaceSpecifier()&&r==="*"||u.isImportSpecifier()&&Wke(u.node.imported,{name:r}))}function eK(){var e=this.node;if(e.end){var r=this.hub.getCode();if(r)return r.slice(e.start,e.end)}return""}function tK(e){return this._guessExecutionStatusRelativeTo(e)!=="after"}function rK(e){return e.isProgram()?e:(e.parentPath.scope.getFunctionParent()||e.parentPath.scope.getProgramParent()).path}function Xke(e,r){switch(e){case"LogicalExpression":return r==="right";case"ConditionalExpression":case"IfStatement":return r==="consequent"||r==="alternate";case"WhileStatement":case"DoWhileStatement":case"ForInStatement":case"ForOfStatement":return r==="body";case"ForStatement":return r==="body"||r==="update";case"SwitchStatement":return r==="cases";case"TryStatement":return r==="handler";case"AssignmentPattern":return r==="right";case"OptionalMemberExpression":return r==="property";case"OptionalCallExpression":return r==="arguments";default:return!1}}function aK(e,r){for(var s=0;s<r;s++){var l=e[s];if(Xke(l.parent.type,l.parentKey))return!0}return!1}var nK=Symbol();function Q1(e){return b9(this,e,new Map)}function b9(e,r,s){var l={this:rK(e),target:rK(r)};if(l.target.node!==l.this.node)return Yke(e,l.target,s);var u={target:r.getAncestry(),this:e.getAncestry()};if(u.target.includes(e))return"after";if(u.this.includes(r))return"before";for(var o,c={target:0,this:0};!o&&c.this<u.this.length;){var f=u.this[c.this];c.target=u.target.indexOf(f),c.target>=0?o=f:c.this++}if(!o)throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");if(aK(u.this,c.this-1)||aK(u.target,c.target-1))return"unknown";var h={this:u.this[c.this-1],target:u.target[c.target-1]};if(h.target.listKey&&h.this.listKey&&h.target.container===h.this.container)return h.target.key>h.this.key?"before":"after";var m=Uke[o.type],g={this:m.indexOf(h.this.parentKey),target:m.indexOf(h.target.parentKey)};return g.target>g.this?"before":"after"}function Jke(e,r,s){if(r.isFunctionDeclaration()){if(r.parentPath.isExportDeclaration())return"unknown"}else return b9(e,r,s)==="before"?"before":"unknown";var l=r.scope.getBinding(r.node.id.name);if(!l.references)return"before";for(var u=l.referencePaths,o,c=C(u),f;!(f=c()).done;){var h=f.value,m=!!h.find(function(x){return x.node===r.node});if(!m){if(h.key!=="callee"||!h.parentPath.isCallExpression())return"unknown";var g=b9(e,h,s);if(o&&o!==g)return"unknown";o=g}}return o}function Yke(e,r,s){var l=s.get(e.node),u;if(!l)s.set(e.node,l=new Map);else if(u=l.get(r.node))return u===nK?"unknown":u;l.set(r.node,nK);var o=Jke(e,r,s);return l.set(r.node,o),o}function sK(e,r){return x9.call(this,e,r)||this}function x9(e,r){var s;if(!((s=r)!=null&&s.includes(this)))if(r=r||[],r.push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,r)}else if(this.isReferencedIdentifier()){var l=this.scope.getBinding(this.node.name);if(!l||!l.constant||l.kind==="module")return;if(l.path!==this){var u=l.path.resolve(e,r);return this.find(function(P){return P.node===u.node})?void 0:u}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,r);if(e&&this.isMemberExpression()){var o=this.toComputedKey();if(!Gke(o))return;var c=o.value,f=this.get("object").resolve(e,r);if(f.isObjectExpression())for(var h=f.get("properties"),m=0,g=h;m<g.length;m++){var x=g[m];if(x.isProperty()){var R=x.get("key"),w=x.isnt("computed")&&R.isIdentifier({name:c});if(w=w||R.isLiteral({value:c}),w)return x.get("value").resolve(e,r)}}else if(f.isArrayExpression()&&!isNaN(+c)){var T=f.get("elements"),I=T[c];if(I)return I.resolve(e,r)}}}}function iK(){if(this.isIdentifier()){var e=this.scope.getBinding(this.node.name);return e?e.constant:!1}if(this.isLiteral())return this.isRegExpLiteral()?!1:this.isTemplateLiteral()?this.get("expressions").every(function(s){return s.isConstantExpression()}):!0;if(this.isUnaryExpression())return this.node.operator!=="void"?!1:this.get("argument").isConstantExpression();if(this.isBinaryExpression()){var r=this.node.operator;return r!=="in"&&r!=="instanceof"&&this.get("left").isConstantExpression()&&this.get("right").isConstantExpression()}return this.isMemberExpression()?!this.node.computed&&this.get("object").isIdentifier({name:"Symbol"})&&!this.scope.hasBinding("Symbol",{noGlobals:!0}):this.isCallExpression()?this.node.arguments.length===1&&this.get("callee").matchesPattern("Symbol.for")&&!this.scope.hasBinding("Symbol",{noGlobals:!0})&&this.get("arguments")[0].isStringLiteral():!1}function oK(){var e=this.isProgram()?this:this.parentPath,r=e.find(function(s){if(s.isProgram({sourceType:"module"})||s.isClass())return!0;if(s.isArrowFunctionExpression()&&!s.get("body").isBlockStatement())return!1;var l;if(s.isFunction())l=s.node.body;else if(s.isProgram())l=s.node;else return!1;for(var u=C(l.directives),o;!(o=u()).done;){var c=o.value;if(c.value.value==="use strict")return!0}});return!!r}var Z1=Object.freeze({__proto__:null,_guessExecutionStatusRelativeTo:Q1,_resolve:x9,canHaveVariableDeclarationOrExpression:XG,canSwapBetweenExpressionAndStatement:JG,getSource:eK,isCompletionRecord:YG,isConstantExpression:iK,isInStrictMode:oK,isNodeType:zG,isStatementOrBlock:QG,isStatic:HG,matchesPattern:KG,referencesImport:ZG,resolve:sK,willIMaybeExecuteBefore:tK}),Qke=Z8,lK=_s,Zke=s1,eDe=Wr,tDe=vn,R9=0,vh=1;function rDe(e){return{type:R9,path:e}}function aDe(e){return{type:vh,path:e}}function nDe(){return this.key==="left"?this.getSibling("right"):this.key==="right"?this.getSibling("left"):null}function zd(e,r,s){return e&&r.push.apply(r,fe(Xd(e,s))),r}function sDe(e,r,s){for(var l=[],u=0;u<e.length;u++){for(var o=e[u],c=Xd(o,s),f=[],h=[],m=0,g=c;m<g.length;m++){var x=g[m];x.type===R9&&f.push(x),x.type===vh&&h.push(x)}f.length&&(l=f),r.push.apply(r,h)}return r.push.apply(r,fe(l)),r}function iDe(e){e.forEach(function(r){r.type=vh})}function E9(e,r){e.forEach(function(s){s.path.isBreakStatement({label:null})&&(r?s.path.replaceWith(tDe("void",eDe(0))):s.path.remove())})}function uK(e,r){var s=[];if(r.canHaveBreak)for(var l=[],u=0;u<e.length;u++){var o=e[u],c=Object.assign({},r,{inCaseClause:!1});o.isBlockStatement()&&(r.inCaseClause||r.shouldPopulateBreak)?c.shouldPopulateBreak=!0:c.shouldPopulateBreak=!1;var f=Xd(o,c);if(f.length>0&&f.every(function(R){return R.type===vh})){l.length>0&&f.every(function(R){return R.path.isBreakStatement({label:null})})?(iDe(l),s.push.apply(s,fe(l)),l.some(function(R){return R.path.isDeclaration()})&&(s.push.apply(s,f),E9(f,!0)),E9(f,!1)):(s.push.apply(s,f),r.shouldPopulateBreak||E9(f,!0));break}if(u===e.length-1)s.push.apply(s,f);else{l=[];for(var h=0;h<f.length;h++){var m=f[h];m.type===vh&&s.push(m),m.type===R9&&l.push(m)}}}else if(e.length)for(var g=e.length-1;g>=0;g--){var x=Xd(e[g],r);if(x.length>1||x.length===1&&!x[0].path.isVariableDeclaration()){s.push.apply(s,x);break}}return s}function Xd(e,r){var s=[];if(e.isIfStatement())s=zd(e.get("consequent"),s,r),s=zd(e.get("alternate"),s,r);else{if(e.isDoExpression()||e.isFor()||e.isWhile()||e.isLabeledStatement())return zd(e.get("body"),s,r);if(e.isProgram()||e.isBlockStatement())return uK(e.get("body"),r);if(e.isFunction())return Xd(e.get("body"),r);if(e.isTryStatement())s=zd(e.get("block"),s,r),s=zd(e.get("handler"),s,r);else{if(e.isCatchClause())return zd(e.get("body"),s,r);if(e.isSwitchStatement())return sDe(e.get("cases"),s,r);if(e.isSwitchCase())return uK(e.get("consequent"),{canHaveBreak:!0,shouldPopulateBreak:!1,inCaseClause:!0});e.isBreakStatement()?s.push(aDe(e)):s.push(rDe(e))}}return s}function oDe(){var e=Xd(this,{canHaveBreak:!1,shouldPopulateBreak:!1,inCaseClause:!1});return e.map(function(r){return r.path})}function lDe(e){return wn.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e}).setContext(this.context)}function uDe(){return this.getSibling(this.key-1)}function cDe(){return this.getSibling(this.key+1)}function dDe(){for(var e=this.key,r=this.getSibling(++e),s=[];r.node;)s.push(r),r=this.getSibling(++e);return s}function pDe(){for(var e=this.key,r=this.getSibling(--e),s=[];r.node;)s.push(r),r=this.getSibling(--e);return s}function fDe(e,r){r===void 0&&(r=!0),r===!0&&(r=this.context);var s=e.split(".");return s.length===1?cK.call(this,e,r):dK.call(this,s,r)}function cK(e,r){var s=this,l=this.node,u=l[e];return Array.isArray(u)?u.map(function(o,c){return wn.get({listKey:e,parentPath:s,parent:l,container:u,key:c}).setContext(r)}):wn.get({parentPath:this,parent:l,container:l,key:e}).setContext(r)}function dK(e,r){for(var s=this,l=C(e),u;!(u=l()).done;){var o=u.value;o==="."?s=s.parentPath:Array.isArray(s)?s=s[o]:s=s.get(o,r)}return s}function hDe(){return Qke(this.node)}function mDe(e){return lK(this.node,e)}function yDe(e){return Zke(this.node,e)}function gDe(e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);for(var s=this,l=[s],u=Object.create(null);l.length;){var o=l.shift();if(o&&o.node){var c=lK.keys[o.node.type];if(o.isIdentifier()){if(e){var f=u[o.node.name]=u[o.node.name]||[];f.push(o)}else u[o.node.name]=o;continue}if(o.isExportDeclaration()){var h=o.get("declaration");h.isDeclaration()&&l.push(h);continue}if(r){if(o.isFunctionDeclaration()){l.push(o.get("id"));continue}if(o.isFunctionExpression())continue}if(c)for(var m=0;m<c.length;m++){var g=c[m],x=o.get(g);Array.isArray(x)?l.push.apply(l,fe(x)):x.node&&l.push(x)}}}return u}function vDe(e){return e===void 0&&(e=!1),this.getBindingIdentifierPaths(e,!0)}var bDe=Xf,xDe=K8;function RDe(){if(typeof this.key!="string"){var e=this.node;if(e){var r=e.trailingComments,s=e.leadingComments;if(!(!r&&!s)){var l=this.getSibling(this.key-1),u=this.getSibling(this.key+1),o=!!l.node,c=!!u.node;o&&(s&&l.addComments("trailing",pK(s,l.node.trailingComments)),r&&!c&&l.addComments("trailing",r)),c&&(r&&u.addComments("leading",pK(r,u.node.leadingComments)),s&&!o&&u.addComments("leading",s))}}}}function pK(e,r){if(!(r!=null&&r.length))return e;var s=new Set(r);return e.filter(function(l){return!s.has(l)})}function EDe(e,r,s){bDe(this.node,e,r,s)}function SDe(e,r){xDe(this.node,e,r)}var TDe=$f,fK=_E("babel"),wDe=1,PDe=2,hK=4,wn=function(){function e(s,l){this.contexts=[],this.state=null,this.opts=null,this._traverseFlags=0,this.skipKeys=null,this.parentPath=null,this.container=null,this.listKey=null,this.key=null,this.node=null,this.type=null,this.parent=l,this.hub=s,this.data=null,this.context=null,this.scope=null}e.get=function(l){var u=l.hub,o=l.parentPath,c=l.parent,f=l.container,h=l.listKey,m=l.key;if(!u&&o&&(u=o.hub),!c)throw new Error("To get a node path the parent needs to exist");var g=f[m],x=AV(u,c),R=x.get(g);return R||(R=new e(u,c),g&&x.set(g,R)),n0.call(R,o,f,h,m),R};var r=e.prototype;return r.getScope=function(l){return this.isScope()?new P1(this):l},r.setData=function(l,u){return this.data==null&&(this.data=Object.create(null)),this.data[l]=u},r.getData=function(l,u){this.data==null&&(this.data=Object.create(null));var o=this.data[l];return o===void 0&&u!==void 0&&(o=this.data[l]=u),o},r.hasNode=function(){return this.node!=null},r.buildCodeFrameError=function(l,u){return u===void 0&&(u=SyntaxError),this.hub.buildError(this.node,l,u)},r.traverse=function(l,u){$a(this.node,l,this.scope,u,this)},r.set=function(l,u){TDe(this.node,l,u),this.node[l]=u},r.getPathLocation=function(){var l=[],u=this;do{var o=u.key;u.inList&&(o=u.listKey+"["+o+"]"),l.unshift(o)}while(u=u.parentPath);return l.join(".")},r.debug=function(l){fK.enabled&&fK(this.getPathLocation()+" "+this.type+": "+l)},r.toString=function(){return Wd(this.node).code},_(e,[{key:"removed",get:function(){return(this._traverseFlags&1)>0},set:function(l){l?this._traverseFlags|=1:this._traverseFlags&=-2}},{key:"shouldStop",get:function(){return(this._traverseFlags&2)>0},set:function(l){l?this._traverseFlags|=2:this._traverseFlags&=-3}},{key:"shouldSkip",get:function(){return(this._traverseFlags&4)>0},set:function(l){l?this._traverseFlags|=4:this._traverseFlags&=-5}},{key:"inList",get:function(){return!!this.listKey},set:function(l){l||(this.listKey=null)}},{key:"parentKey",get:function(){return this.listKey||this.key}}])}(),ADe={findParent:LOe,find:MOe,getFunctionParent:BOe,getStatementParent:FOe,getEarliestCommonAncestorFrom:$Oe,getDeepestCommonAncestorFrom:qOe,getAncestry:UOe,isAncestor:VOe,isDescendant:WOe,inType:GOe,getTypeAnnotation:Z_e,isBaseType:eNe,couldBeBaseType:tNe,baseTypeStrictlyMatches:rNe,isGenericType:aNe,replaceWithMultiple:HNe,replaceWithSourceString:zNe,replaceWith:XNe,replaceExpressionWithStatements:JNe,replaceInline:YNe,evaluateTruthy:ake,evaluate:ske,toComputedKey:MG,ensureBlock:BG,unwrapFunctionEnvironment:FG,arrowFunctionToExpression:$G,splitExportDeclaration:VG,ensureFunctionName:WG,matchesPattern:KG,isStatic:HG,isNodeType:zG,canHaveVariableDeclarationOrExpression:XG,canSwapBetweenExpressionAndStatement:JG,isCompletionRecord:YG,isStatementOrBlock:QG,referencesImport:ZG,getSource:eK,willIMaybeExecuteBefore:tK,_guessExecutionStatusRelativeTo:Q1,resolve:sK,isConstantExpression:iK,isInStrictMode:oK,isDenylisted:w9,visit:vK,skip:bK,skipKey:xK,stop:RK,setContext:EK,requeue:TK,requeueComputedKeyAndDecorators:Rh,remove:fNe,insertBefore:yG,insertAfter:bG,unshiftContainer:xG,pushContainer:RG,getOpposite:nDe,getCompletionRecords:oDe,getSibling:lDe,getPrevSibling:uDe,getNextSibling:cDe,getAllNextSiblings:dDe,getAllPrevSiblings:pDe,get:fDe,getAssignmentIdentifiers:hDe,getBindingIdentifiers:mDe,getOuterBindingIdentifiers:yDe,getBindingIdentifierPaths:gDe,getOuterBindingIdentifierPaths:vDe,shareCommentsWithSiblings:RDe,addComment:EDe,addComments:SDe};Object.assign(wn.prototype,ADe),wn.prototype.arrowFunctionToShadowed=$ke.arrowFunctionToShadowed,Object.assign(wn.prototype,{has:Z1.has,is:Z1.is,isnt:Z1.isnt,equals:Z1.equals,hoist:PNe.hoist,updateSiblingKeys:J1,call:t0,isBlacklisted:i.isBlacklisted,setScope:bh,resync:Uo,popContext:C9,pushContext:a0,setup:n0,setKey:xh}),wn.prototype._guessExecutionStatusRelativeToDifferentFunctions=Q1,wn.prototype._guessExecutionStatusRelativeToDifferentFunctions=Q1,Object.assign(wn.prototype,{_getTypeAnnotation:cG,_replaceWith:m9,_resolve:x9,_call:r0,_resyncParent:P9,_resyncKey:A9,_resyncList:I9,_resyncRemoved:SK,_getQueueContexts:j9,_removeFromScope:dG,_callRemovalHooks:pG,_remove:fG,_markRemoved:K1,_assertUnremoved:Kd,_containerInsert:H1,_containerInsertBefore:z1,_containerInsertAfter:X1,_verifyNodeList:eu,_getKey:cK,_getPattern:dK});for(var IDe=function(){var r=mK.value,s="is"+r,l=aE[s];wn.prototype[s]=function(u){return l(this.node,u)},wn.prototype["assert"+r]=function(u){if(!l(this.node,u))throw new TypeError("Expected node path of type "+r)}},CDe=C(Ff),mK;!(mK=CDe()).done;)IDe();Object.assign(wn.prototype,hV);for(var S9=0,yK=Object.keys(CE);S9<yK.length;S9++){var T9=yK[S9];T9[0]!=="_"&&(Ff.includes(T9)||Ff.push(T9))}var jDe=Ys,ODe=function(){function e(s,l,u,o){this.queue=null,this.priorityQueue=null,this.parentPath=o,this.scope=s,this.state=u,this.opts=l}var r=e.prototype;return r.shouldVisit=function(l){var u=this.opts;if(u.enter||u.exit||u[l.type])return!0;var o=jDe[l.type];if(!(o!=null&&o.length))return!1;for(var c=C(o),f;!(f=c()).done;){var h=f.value;if(l[h])return!0}return!1},r.create=function(l,u,o,c){return wn.get({parentPath:this.parentPath,parent:l,container:u,key:o,listKey:c})},r.maybeQueue=function(l,u){this.queue&&(u?this.queue.push(l):this.priorityQueue.push(l))},r.visitMultiple=function(l,u,o){if(l.length===0)return!1;for(var c=[],f=0;f<l.length;f++){var h=l[f];h&&this.shouldVisit(h)&&c.push(this.create(u,l,f,o))}return this.visitQueue(c)},r.visitSingle=function(l,u){return this.shouldVisit(l[u])?this.visitQueue([this.create(l,l,u)]):!1},r.visitQueue=function(l){this.queue=l,this.priorityQueue=[];for(var u=new WeakSet,o=!1,c=0;c<l.length;){var f=l[c];if(c++,Uo.call(f),(f.contexts.length===0||f.contexts[f.contexts.length-1]!==this)&&a0.call(f,this),f.key!==null){var h=f.node;if(!u.has(h)){if(h&&u.add(h),f.visit()){o=!0;break}if(this.priorityQueue.length&&(o=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=l,o))break}}}for(var m=0;m<c;m++)C9.call(l[m]);return this.queue=null,o},r.visit=function(l,u){var o=l[u];return o?Array.isArray(o)?this.visitMultiple(o,l,u):this.visitSingle(l,u):!1},_(e)}(),_De=Ys;function e0(e,r,s,l,u,o,c){var f=_De[e.type];if(!f)return!1;var h=new ODe(s,r,l,u);if(c)return o!=null&&o[u.parentKey]?!1:h.visitQueue([u]);for(var m=C(f),g;!(g=m()).done;){var x=g.value;if(!(o!=null&&o[x])&&h.visit(e,x))return!0}return!1}function t0(e){var r=this.opts;if(this.debug(e),this.node&&r0.call(this,r[e]))return!0;if(this.node){var s;return r0.call(this,(s=r[this.node.type])==null?void 0:s[e])}return!1}function r0(e){if(!e)return!1;for(var r=C(e),s;!(s=r()).done;){var l=s.value;if(l){var u=this.node;if(!u)return!0;var o=l.call(this.state,this,this.state);if(o&&typeof o=="object"&&typeof o.then=="function")throw new Error("You appear to be using a plugin with an async traversal visitor, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");if(o)throw new Error("Unexpected return value from visitor method "+l);if(this.node!==u||this._traverseFlags>0)return!0}}return!1}function w9(){var e,r=(e=this.opts.denylist)!=null?e:this.opts.blacklist;return r&&r.indexOf(this.node.type)>-1}a.isBlacklisted=w9;function gK(e,r){e.context!==r&&(e.context=r,e.state=r.state,e.opts=r.opts)}function vK(){var e,r;if(!this.node||this.isDenylisted()||(e=(r=this.opts).shouldSkip)!=null&&e.call(r,this))return!1;var s=this.context;return this.shouldSkip||t0.call(this,"enter")?(this.debug("Skip..."),this.shouldStop):(gK(this,s),this.debug("Recursing into..."),this.shouldStop=e0(this.node,this.opts,this.scope,this.state,this,this.skipKeys),gK(this,s),t0.call(this,"exit"),this.shouldStop)}function bK(){this.shouldSkip=!0}function xK(e){this.skipKeys==null&&(this.skipKeys={}),this.skipKeys[e]=!0}function RK(){this._traverseFlags|=hK|PDe}function bh(){var e,r;if(!((e=this.opts)!=null&&e.noScope)){var s=this.parentPath;((this.key==="key"||this.listKey==="decorators")&&s.isMethod()||this.key==="discriminant"&&s.isSwitchStatement())&&(s=s.parentPath);for(var l;s&&!l;){var u;if((u=s.opts)!=null&&u.noScope)return;l=s.scope,s=s.parentPath}this.scope=this.getScope(l),(r=this.scope)==null||r.init()}}function EK(e){return this.skipKeys!=null&&(this.skipKeys={}),this._traverseFlags=0,e&&(this.context=e,this.state=e.state,this.opts=e.opts),bh.call(this),this}function Uo(){this.removed||(P9.call(this),I9.call(this),A9.call(this))}function P9(){this.parentPath&&(this.parent=this.parentPath.node)}function A9(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node){xh.call(this,e);return}}else for(var r=0,s=Object.keys(this.container);r<s.length;r++){var l=s[r];if(this.container[l]===this.node){xh.call(this,l);return}}this.key=null}}function I9(){if(!(!this.parent||!this.inList)){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function SK(){(this.key==null||!this.container||this.container[this.key]!==this.node)&&K1.call(this)}function C9(){this.contexts.pop(),this.contexts.length>0?this.setContext(this.contexts[this.contexts.length-1]):this.setContext(void 0)}function a0(e){this.contexts.push(e),this.setContext(e)}function n0(e,r,s,l){this.listKey=s,this.container=r,this.parentPath=e||this.parentPath,xh.call(this,l)}function xh(e){var r;this.key=e,this.node=this.container[this.key],this.type=(r=this.node)==null?void 0:r.type}function TK(e){if(e===void 0&&(e=this),!e.removed)for(var r=this.contexts,s=C(r),l;!(l=s()).done;){var u=l.value;u.maybeQueue(e)}}function Rh(){var e=this.context,r=this.node;if(!nF(r)&&r.computed&&e.maybeQueue(this.get("key")),r.decorators)for(var s=C(this.get("decorators")),l;!(l=s()).done;){var u=l.value;e.maybeQueue(u)}}function j9(){for(var e=this,r=this.contexts;!r.length&&(e=e.parentPath,!!e);)r=e.contexts;return r}var NDe=function(){function e(){}var r=e.prototype;return r.getCode=function(){},r.getScope=function(){},r.addHelper=function(){throw new Error("Helpers are not supported by the default hub.")},r.buildError=function(l,u,o){return o===void 0&&(o=TypeError),new o(u)},_(e)}(),kDe=Ys,DDe=Y8,wK=Ul;function $a(e,r,s,l,u,o){if(r===void 0&&(r={}),!!e){if(!r.noScope&&!s&&e.type!=="Program"&&e.type!=="File")throw new Error("You must pass a scope and parentPath unless traversing a Program/File. "+("Instead of that you tried to traverse a "+e.type+" node without ")+"passing scope and parentPath.");if(!u&&o)throw new Error("visitSelf can only be used when providing a NodePath.");kDe[e.type]&&(ch(r),e0(e,r,s,l,u,null,o))}}$a.visitors=SV,$a.verify=DE,$a.explode=ch,$a.cheap=function(e,r){wK(e,r)},$a.node=function(e,r,s,l,u,o){e0(e,r,s,l,u,o)},$a.clearNode=function(e,r){DDe(e,r)},$a.removeProperties=function(e,r){return wK(e,$a.clearNode,r),e};function LDe(e,r){e.node.type===r.type&&(r.has=!0,e.stop())}$a.hasType=function(e,r,s){if(s!=null&&s.includes(e.type))return!1;if(e.type===r)return!0;var l={has:!1,type:r};return $a(e,{noScope:!0,denylist:s,enter:LDe},null,l),l.has},$a.cache=O3e;var MDe=Object.freeze({__proto__:null,Hub:NDe,NodePath:wn,Scope:P1,default:$a,visitors:SV}),s0={exports:{}},PK;function gi(){return PK||(PK=1,function(e,r){r=e.exports=L;var s;typeof er=="object"&&er.env&&er.env.NODE_DEBUG&&/\bsemver\b/i.test(er.env.NODE_DEBUG)?s=function(){var $=Array.prototype.slice.call(arguments,0);$.unshift("SEMVER"),console.log.apply(console,$)}:s=function(){},r.SEMVER_SPEC_VERSION="2.0.0";var l=256,u=Number.MAX_SAFE_INTEGER||9007199254740991,o=16,c=l-6,f=r.re=[],h=r.safeRe=[],m=r.src=[],g=r.tokens={},x=0;function R(N){g[N]=x++}var w="[a-zA-Z0-9-]",T=[["\\s",1],["\\d",l],[w,c]];function I(N){for(var $=0;$<T.length;$++){var U=T[$][0],pe=T[$][1];N=N.split(U+"*").join(U+"{0,"+pe+"}").split(U+"+").join(U+"{1,"+pe+"}")}return N}R("NUMERICIDENTIFIER"),m[g.NUMERICIDENTIFIER]="0|[1-9]\\d*",R("NUMERICIDENTIFIERLOOSE"),m[g.NUMERICIDENTIFIERLOOSE]="\\d+",R("NONNUMERICIDENTIFIER"),m[g.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+w+"*",R("MAINVERSION"),m[g.MAINVERSION]="("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")",R("MAINVERSIONLOOSE"),m[g.MAINVERSIONLOOSE]="("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")",R("PRERELEASEIDENTIFIER"),m[g.PRERELEASEIDENTIFIER]="(?:"+m[g.NUMERICIDENTIFIER]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASEIDENTIFIERLOOSE"),m[g.PRERELEASEIDENTIFIERLOOSE]="(?:"+m[g.NUMERICIDENTIFIERLOOSE]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASE"),m[g.PRERELEASE]="(?:-("+m[g.PRERELEASEIDENTIFIER]+"(?:\\."+m[g.PRERELEASEIDENTIFIER]+")*))",R("PRERELEASELOOSE"),m[g.PRERELEASELOOSE]="(?:-?("+m[g.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+m[g.PRERELEASEIDENTIFIERLOOSE]+")*))",R("BUILDIDENTIFIER"),m[g.BUILDIDENTIFIER]=w+"+",R("BUILD"),m[g.BUILD]="(?:\\+("+m[g.BUILDIDENTIFIER]+"(?:\\."+m[g.BUILDIDENTIFIER]+")*))",R("FULL"),R("FULLPLAIN"),m[g.FULLPLAIN]="v?"+m[g.MAINVERSION]+m[g.PRERELEASE]+"?"+m[g.BUILD]+"?",m[g.FULL]="^"+m[g.FULLPLAIN]+"$",R("LOOSEPLAIN"),m[g.LOOSEPLAIN]="[v=\\s]*"+m[g.MAINVERSIONLOOSE]+m[g.PRERELEASELOOSE]+"?"+m[g.BUILD]+"?",R("LOOSE"),m[g.LOOSE]="^"+m[g.LOOSEPLAIN]+"$",R("GTLT"),m[g.GTLT]="((?:<|>)?=?)",R("XRANGEIDENTIFIERLOOSE"),m[g.XRANGEIDENTIFIERLOOSE]=m[g.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",R("XRANGEIDENTIFIER"),m[g.XRANGEIDENTIFIER]=m[g.NUMERICIDENTIFIER]+"|x|X|\\*",R("XRANGEPLAIN"),m[g.XRANGEPLAIN]="[v=\\s]*("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:"+m[g.PRERELEASE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGEPLAINLOOSE"),m[g.XRANGEPLAINLOOSE]="[v=\\s]*("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:"+m[g.PRERELEASELOOSE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGE"),m[g.XRANGE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAIN]+"$",R("XRANGELOOSE"),m[g.XRANGELOOSE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAINLOOSE]+"$",R("COERCE"),m[g.COERCE]="(^|[^\\d])(\\d{1,"+o+"})(?:\\.(\\d{1,"+o+"}))?(?:\\.(\\d{1,"+o+"}))?(?:$|[^\\d])",R("COERCERTL"),f[g.COERCERTL]=new RegExp(m[g.COERCE],"g"),h[g.COERCERTL]=new RegExp(I(m[g.COERCE]),"g"),R("LONETILDE"),m[g.LONETILDE]="(?:~>?)",R("TILDETRIM"),m[g.TILDETRIM]="(\\s*)"+m[g.LONETILDE]+"\\s+",f[g.TILDETRIM]=new RegExp(m[g.TILDETRIM],"g"),h[g.TILDETRIM]=new RegExp(I(m[g.TILDETRIM]),"g");var P="$1~";R("TILDE"),m[g.TILDE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAIN]+"$",R("TILDELOOSE"),m[g.TILDELOOSE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAINLOOSE]+"$",R("LONECARET"),m[g.LONECARET]="(?:\\^)",R("CARETTRIM"),m[g.CARETTRIM]="(\\s*)"+m[g.LONECARET]+"\\s+",f[g.CARETTRIM]=new RegExp(m[g.CARETTRIM],"g"),h[g.CARETTRIM]=new RegExp(I(m[g.CARETTRIM]),"g");var O="$1^";R("CARET"),m[g.CARET]="^"+m[g.LONECARET]+m[g.XRANGEPLAIN]+"$",R("CARETLOOSE"),m[g.CARETLOOSE]="^"+m[g.LONECARET]+m[g.XRANGEPLAINLOOSE]+"$",R("COMPARATORLOOSE"),m[g.COMPARATORLOOSE]="^"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+")$|^$",R("COMPARATOR"),m[g.COMPARATOR]="^"+m[g.GTLT]+"\\s*("+m[g.FULLPLAIN]+")$|^$",R("COMPARATORTRIM"),m[g.COMPARATORTRIM]="(\\s*)"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+"|"+m[g.XRANGEPLAIN]+")",f[g.COMPARATORTRIM]=new RegExp(m[g.COMPARATORTRIM],"g"),h[g.COMPARATORTRIM]=new RegExp(I(m[g.COMPARATORTRIM]),"g");var j="$1$2$3";R("HYPHENRANGE"),m[g.HYPHENRANGE]="^\\s*("+m[g.XRANGEPLAIN]+")\\s+-\\s+("+m[g.XRANGEPLAIN]+")\\s*$",R("HYPHENRANGELOOSE"),m[g.HYPHENRANGELOOSE]="^\\s*("+m[g.XRANGEPLAINLOOSE]+")\\s+-\\s+("+m[g.XRANGEPLAINLOOSE]+")\\s*$",R("STAR"),m[g.STAR]="(<|>)?=?\\s*\\*";for(var D=0;D<x;D++)s(D,m[D]),f[D]||(f[D]=new RegExp(m[D]),h[D]=new RegExp(I(m[D])));r.parse=k;function k(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L)return N;if(typeof N!="string"||N.length>l)return null;var U=$.loose?h[g.LOOSE]:h[g.FULL];if(!U.test(N))return null;try{return new L(N,$)}catch{return null}}r.valid=B;function B(N,$){var U=k(N,$);return U?U.version:null}r.clean=F;function F(N,$){var U=k(N.trim().replace(/^[=v]+/,""),$);return U?U.version:null}r.SemVer=L;function L(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L){if(N.loose===$.loose)return N;N=N.version}else if(typeof N!="string")throw new TypeError("Invalid Version: "+N);if(N.length>l)throw new TypeError("version is longer than "+l+" characters");if(!(this instanceof L))return new L(N,$);s("SemVer",N,$),this.options=$,this.loose=!!$.loose;var U=N.trim().match($.loose?h[g.LOOSE]:h[g.FULL]);if(!U)throw new TypeError("Invalid Version: "+N);if(this.raw=N,this.major=+U[1],this.minor=+U[2],this.patch=+U[3],this.major>u||this.major<0)throw new TypeError("Invalid major version");if(this.minor>u||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>u||this.patch<0)throw new TypeError("Invalid patch version");U[4]?this.prerelease=U[4].split(".").map(function(pe){if(/^[0-9]+$/.test(pe)){var _e=+pe;if(_e>=0&&_e<u)return _e}return pe}):this.prerelease=[],this.build=U[5]?U[5].split("."):[],this.format()}L.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},L.prototype.toString=function(){return this.version},L.prototype.compare=function(N){return s("SemVer.compare",this.version,this.options,N),N instanceof L||(N=new L(N,this.options)),this.compareMain(N)||this.comparePre(N)},L.prototype.compareMain=function(N){return N instanceof L||(N=new L(N,this.options)),G(this.major,N.major)||G(this.minor,N.minor)||G(this.patch,N.patch)},L.prototype.comparePre=function(N){if(N instanceof L||(N=new L(N,this.options)),this.prerelease.length&&!N.prerelease.length)return-1;if(!this.prerelease.length&&N.prerelease.length)return 1;if(!this.prerelease.length&&!N.prerelease.length)return 0;var $=0;do{var U=this.prerelease[$],pe=N.prerelease[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.compareBuild=function(N){N instanceof L||(N=new L(N,this.options));var $=0;do{var U=this.build[$],pe=N.build[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.inc=function(N,$){switch(N){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",$);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",$);break;case"prepatch":this.prerelease.length=0,this.inc("patch",$),this.inc("pre",$);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",$),this.inc("pre",$);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var U=this.prerelease.length;--U>=0;)typeof this.prerelease[U]=="number"&&(this.prerelease[U]++,U=-2);U===-1&&this.prerelease.push(0)}$&&(this.prerelease[0]===$?isNaN(this.prerelease[1])&&(this.prerelease=[$,0]):this.prerelease=[$,0]);break;default:throw new Error("invalid increment argument: "+N)}return this.format(),this.raw=this.version,this},r.inc=V;function V(N,$,U,pe){typeof U=="string"&&(pe=U,U=void 0);try{return new L(N,U).inc($,pe).version}catch{return null}}r.diff=H;function H(N,$){if(ke(N,$))return null;var U=k(N),pe=k($),_e="";if(U.prerelease.length||pe.prerelease.length){_e="pre";var We="prerelease"}for(var Ce in U)if((Ce==="major"||Ce==="minor"||Ce==="patch")&&U[Ce]!==pe[Ce])return _e+Ce;return We}r.compareIdentifiers=G;var K=/^[0-9]+$/;function G(N,$){var U=K.test(N),pe=K.test($);return U&&pe&&(N=+N,$=+$),N===$?0:U&&!pe?-1:pe&&!U?1:N<$?-1:1}r.rcompareIdentifiers=X;function X(N,$){return G($,N)}r.major=ue;function ue(N,$){return new L(N,$).major}r.minor=oe;function oe(N,$){return new L(N,$).minor}r.patch=he;function he(N,$){return new L(N,$).patch}r.compare=te;function te(N,$,U){return new L(N,U).compare(new L($,U))}r.compareLoose=ae;function ae(N,$){return te(N,$,!0)}r.compareBuild=J;function J(N,$,U){var pe=new L(N,U),_e=new L($,U);return pe.compare(_e)||pe.compareBuild(_e)}r.rcompare=xe;function xe(N,$,U){return te($,N,U)}r.sort=de;function de(N,$){return N.sort(function(U,pe){return r.compareBuild(U,pe,$)})}r.rsort=$e;function $e(N,$){return N.sort(function(U,pe){return r.compareBuild(pe,U,$)})}r.gt=Ve;function Ve(N,$,U){return te(N,$,U)>0}r.lt=Ie;function Ie(N,$,U){return te(N,$,U)<0}r.eq=ke;function ke(N,$,U){return te(N,$,U)===0}r.neq=Le;function Le(N,$,U){return te(N,$,U)!==0}r.gte=Ze;function Ze(N,$,U){return te(N,$,U)>=0}r.lte=at;function at(N,$,U){return te(N,$,U)<=0}r.cmp=lt;function lt(N,$,U,pe){switch($){case"===":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N===U;case"!==":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N!==U;case"":case"=":case"==":return ke(N,U,pe);case"!=":return Le(N,U,pe);case">":return Ve(N,U,pe);case">=":return Ze(N,U,pe);case"<":return Ie(N,U,pe);case"<=":return at(N,U,pe);default:throw new TypeError("Invalid operator: "+$)}}r.Comparator=gt;function gt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof gt){if(N.loose===!!$.loose)return N;N=N.value}if(!(this instanceof gt))return new gt(N,$);N=N.trim().split(/\s+/).join(" "),s("comparator",N,$),this.options=$,this.loose=!!$.loose,this.parse(N),this.semver===It?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}var It={};gt.prototype.parse=function(N){var $=this.options.loose?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],U=N.match($);if(!U)throw new TypeError("Invalid comparator: "+N);this.operator=U[1]!==void 0?U[1]:"",this.operator==="="&&(this.operator=""),U[2]?this.semver=new L(U[2],this.options.loose):this.semver=It},gt.prototype.toString=function(){return this.value},gt.prototype.test=function(N){if(s("Comparator.test",N,this.options.loose),this.semver===It||N===It)return!0;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}return lt(N,this.operator,this.semver,this.options)},gt.prototype.intersects=function(N,$){if(!(N instanceof gt))throw new TypeError("a Comparator is required");(!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1});var U;if(this.operator==="")return this.value===""?!0:(U=new tt(N.value,$),yt(this.value,U,$));if(N.operator==="")return N.value===""?!0:(U=new tt(this.value,$),yt(N.semver,U,$));var pe=(this.operator===">="||this.operator===">")&&(N.operator===">="||N.operator===">"),_e=(this.operator==="<="||this.operator==="<")&&(N.operator==="<="||N.operator==="<"),We=this.semver.version===N.semver.version,Ce=(this.operator===">="||this.operator==="<=")&&(N.operator===">="||N.operator==="<="),Ct=lt(this.semver,"<",N.semver,$)&&(this.operator===">="||this.operator===">")&&(N.operator==="<="||N.operator==="<"),ie=lt(this.semver,">",N.semver,$)&&(this.operator==="<="||this.operator==="<")&&(N.operator===">="||N.operator===">");return pe||_e||We&&Ce||Ct||ie},r.Range=tt;function tt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof tt)return N.loose===!!$.loose&&N.includePrerelease===!!$.includePrerelease?N:new tt(N.raw,$);if(N instanceof gt)return new tt(N.value,$);if(!(this instanceof tt))return new tt(N,$);if(this.options=$,this.loose=!!$.loose,this.includePrerelease=!!$.includePrerelease,this.raw=N.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(U){return this.parseRange(U.trim())},this).filter(function(U){return U.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}tt.prototype.format=function(){return this.range=this.set.map(function(N){return N.join(" ").trim()}).join("||").trim(),this.range},tt.prototype.toString=function(){return this.range},tt.prototype.parseRange=function(N){var $=this.options.loose,U=$?h[g.HYPHENRANGELOOSE]:h[g.HYPHENRANGE];N=N.replace(U,De),s("hyphen replace",N),N=N.replace(h[g.COMPARATORTRIM],j),s("comparator trim",N,h[g.COMPARATORTRIM]),N=N.replace(h[g.TILDETRIM],P),N=N.replace(h[g.CARETTRIM],O),N=N.split(/\s+/).join(" ");var pe=$?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],_e=N.split(" ").map(function(We){return $t(We,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(_e=_e.filter(function(We){return!!We.match(pe)})),_e=_e.map(function(We){return new gt(We,this.options)},this),_e},tt.prototype.intersects=function(N,$){if(!(N instanceof tt))throw new TypeError("a Range is required");return this.set.some(function(U){return Ft(U,$)&&N.set.some(function(pe){return Ft(pe,$)&&U.every(function(_e){return pe.every(function(We){return _e.intersects(We,$)})})})})};function Ft(N,$){for(var U=!0,pe=N.slice(),_e=pe.pop();U&&pe.length;)U=pe.every(function(We){return _e.intersects(We,$)}),_e=pe.pop();return U}r.toComparators=rr;function rr(N,$){return new tt(N,$).set.map(function(U){return U.map(function(pe){return pe.value}).join(" ").trim().split(" ")})}function $t(N,$){return s("comp",N,$),N=Be(N,$),s("caret",N),N=Lt(N,$),s("tildes",N),N=it(N,$),s("xrange",N),N=Ot(N,$),s("stars",N),N}function Et(N){return!N||N.toLowerCase()==="x"||N==="*"}function Lt(N,$){return N.trim().split(/\s+/).map(function(U){return Re(U,$)}).join(" ")}function Re(N,$){var U=$.loose?h[g.TILDELOOSE]:h[g.TILDE];return N.replace(U,function(pe,_e,We,Ce,Ct){s("tilde",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":Ct?(s("replaceTilde pr",Ct),ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0"):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0",s("tilde return",ie),ie})}function Be(N,$){return N.trim().split(/\s+/).map(function(U){return et(U,$)}).join(" ")}function et(N,$){s("caret",N,$);var U=$.loose?h[g.CARETLOOSE]:h[g.CARET];return N.replace(U,function(pe,_e,We,Ce,Ct){s("caret",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?_e==="0"?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+".0 <"+(+_e+1)+".0.0":Ct?(s("replaceCaret pr",Ct),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+(+_e+1)+".0.0"):(s("no pr"),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+" <"+(+_e+1)+".0.0"),s("caret return",ie),ie})}function it(N,$){return s("replaceXRanges",N,$),N.split(/\s+/).map(function(U){return vt(U,$)}).join(" ")}function vt(N,$){N=N.trim();var U=$.loose?h[g.XRANGELOOSE]:h[g.XRANGE];return N.replace(U,function(pe,_e,We,Ce,Ct,ie){s("xRange",N,pe,_e,We,Ce,Ct,ie);var st=Et(We),dt=st||Et(Ce),St=dt||Et(Ct),Gt=St;return _e==="="&&Gt&&(_e=""),ie=$.includePrerelease?"-0":"",st?_e===">"||_e==="<"?pe="<0.0.0-0":pe="*":_e&&Gt?(dt&&(Ce=0),Ct=0,_e===">"?(_e=">=",dt?(We=+We+1,Ce=0,Ct=0):(Ce=+Ce+1,Ct=0)):_e==="<="&&(_e="<",dt?We=+We+1:Ce=+Ce+1),pe=_e+We+"."+Ce+"."+Ct+ie):dt?pe=">="+We+".0.0"+ie+" <"+(+We+1)+".0.0"+ie:St&&(pe=">="+We+"."+Ce+".0"+ie+" <"+We+"."+(+Ce+1)+".0"+ie),s("xRange return",pe),pe})}function Ot(N,$){return s("replaceStars",N,$),N.trim().replace(h[g.STAR],"")}function De(N,$,U,pe,_e,We,Ce,Ct,ie,st,dt,St,Gt){return Et(U)?$="":Et(pe)?$=">="+U+".0.0":Et(_e)?$=">="+U+"."+pe+".0":$=">="+$,Et(ie)?Ct="":Et(st)?Ct="<"+(+ie+1)+".0.0":Et(dt)?Ct="<"+ie+"."+(+st+1)+".0":St?Ct="<="+ie+"."+st+"."+dt+"-"+St:Ct="<="+Ct,($+" "+Ct).trim()}tt.prototype.test=function(N){if(!N)return!1;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}for(var $=0;$<this.set.length;$++)if(Qe(this.set[$],N,this.options))return!0;return!1};function Qe(N,$,U){for(var pe=0;pe<N.length;pe++)if(!N[pe].test($))return!1;if($.prerelease.length&&!U.includePrerelease){for(pe=0;pe<N.length;pe++)if(s(N[pe].semver),N[pe].semver!==It&&N[pe].semver.prerelease.length>0){var _e=N[pe].semver;if(_e.major===$.major&&_e.minor===$.minor&&_e.patch===$.patch)return!0}return!1}return!0}r.satisfies=yt;function yt(N,$,U){try{$=new tt($,U)}catch{return!1}return $.test(N)}r.maxSatisfying=jt;function jt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===-1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minSatisfying=Kt;function Kt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minVersion=Ht;function Ht(N,$){N=new tt(N,$);var U=new L("0.0.0");if(N.test(U)||(U=new L("0.0.0-0"),N.test(U)))return U;U=null;for(var pe=0;pe<N.set.length;++pe){var _e=N.set[pe];_e.forEach(function(We){var Ce=new L(We.semver.version);switch(We.operator){case">":Ce.prerelease.length===0?Ce.patch++:Ce.prerelease.push(0),Ce.raw=Ce.format();case"":case">=":(!U||Ve(U,Ce))&&(U=Ce);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+We.operator)}})}return U&&N.test(U)?U:null}r.validRange=Cr;function Cr(N,$){try{return new tt(N,$).range||"*"}catch{return null}}r.ltr=Yr;function Yr(N,$,U){return Gr(N,$,"<",U)}r.gtr=Or;function Or(N,$,U){return Gr(N,$,">",U)}r.outside=Gr;function Gr(N,$,U,pe){N=new L(N,pe),$=new tt($,pe);var _e,We,Ce,Ct,ie;switch(U){case">":_e=Ve,We=at,Ce=Ie,Ct=">",ie=">=";break;case"<":_e=Ie,We=Ze,Ce=Ve,Ct="<",ie="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(yt(N,$,pe))return!1;for(var st=0;st<$.set.length;++st){var dt=$.set[st],St=null,Gt=null;if(dt.forEach(function(zr){zr.semver===It&&(zr=new gt(">=0.0.0")),St=St||zr,Gt=Gt||zr,_e(zr.semver,St.semver,pe)?St=zr:Ce(zr.semver,Gt.semver,pe)&&(Gt=zr)}),St.operator===Ct||St.operator===ie||(!Gt.operator||Gt.operator===Ct)&&We(N,Gt.semver))return!1;if(Gt.operator===ie&&Ce(N,Gt.semver))return!1}return!0}r.prerelease=qa;function qa(N,$){var U=k(N,$);return U&&U.prerelease.length?U.prerelease:null}r.intersects=cr;function cr(N,$,U){return N=new tt(N,U),$=new tt($,U),N.intersects($)}r.coerce=na;function na(N,$){if(N instanceof L)return N;if(typeof N=="number"&&(N=String(N)),typeof N!="string")return null;$=$||{};var U=null;if(!$.rtl)U=N.match(h[g.COERCE]);else{for(var pe;(pe=h[g.COERCERTL].exec(N))&&(!U||U.index+U[0].length!==N.length);)(!U||pe.index+pe[0].length!==U.index+U[0].length)&&(U=pe),h[g.COERCERTL].lastIndex=pe.index+pe[1].length+pe[2].length;h[g.COERCERTL].lastIndex=-1}return U===null?null:k(U[2]+"."+(U[3]||"0")+"."+(U[4]||"0"),$)}}(s0,s0.exports)),s0.exports}function BDe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var i0=(BDe(er.env.BABEL_8_BREAKING),gi()),Eh;typeof Object.create=="function"?Eh=function(r,s){r.super_=s,r.prototype=Object.create(s.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}})}:Eh=function(r,s){r.super_=s;var l=function(){};l.prototype=s.prototype,r.prototype=new l,r.prototype.constructor=r};var AK=Object.getOwnPropertyDescriptors||function(r){for(var s=Object.keys(r),l={},u=0;u<s.length;u++)l[s[u]]=Object.getOwnPropertyDescriptor(r,s[u]);return l},FDe=/%[sdj%]/g;function o0(e){if(!Th(e)){for(var r=[],s=0;s<arguments.length;s++)r.push($i(arguments[s]));return r.join(" ")}for(var s=1,l=arguments,u=l.length,o=String(e).replace(FDe,function(f){if(f==="%%")return"%";if(s>=u)return f;switch(f){case"%s":return String(l[s++]);case"%d":return Number(l[s++]);case"%j":try{return JSON.stringify(l[s++])}catch{return"[Circular]"}default:return f}}),c=l[s];s<u;c=l[++s])Sh(c)||!uc(c)?o+=" "+c:o+=" "+$i(c);return o}function O9(e,r){if(lo(Oo.process))return function(){return O9(e,r).apply(this,arguments)};if(er.noDeprecation===!0)return e;var s=!1;function l(){if(!s){if(er.throwDeprecation)throw new Error(r);er.traceDeprecation?console.trace(r):console.error(r),s=!0}return e.apply(this,arguments)}return l}var l0={},_9;function IK(e){if(lo(_9)&&(_9=er.env.NODE_DEBUG||""),e=e.toUpperCase(),!l0[e])if(new RegExp("\\b"+e+"\\b","i").test(_9)){var r=0;l0[e]=function(){var s=o0.apply(null,arguments);console.error("%s %d: %s",e,r,s)}}else l0[e]=function(){};return l0[e]}function $i(e,r){var s={seen:[],stylize:qDe};return arguments.length>=3&&(s.depth=arguments[2]),arguments.length>=4&&(s.colors=arguments[3]),c0(r)?s.showHidden=r:r&&F9(s,r),lo(s.showHidden)&&(s.showHidden=!1),lo(s.depth)&&(s.depth=2),lo(s.colors)&&(s.colors=!1),lo(s.customInspect)&&(s.customInspect=!0),s.colors&&(s.stylize=$De),u0(s,e,s.depth)}$i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},$i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function $De(e,r){var s=$i.styles[r];return s?"\x1B["+$i.colors[s][0]+"m"+e+"\x1B["+$i.colors[s][1]+"m":e}function qDe(e,r){return e}function UDe(e){var r={};return e.forEach(function(s,l){r[s]=!0}),r}function u0(e,r,s){if(e.customInspect&&r&&cc(r.inspect)&&r.inspect!==$i&&!(r.constructor&&r.constructor.prototype===r)){var l=r.inspect(s,e);return Th(l)||(l=u0(e,l,s)),l}var u=VDe(e,r);if(u)return u;var o=Object.keys(r),c=UDe(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),Yd(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return N9(r);if(o.length===0){if(cc(r)){var f=r.name?": "+r.name:"";return e.stylize("[Function"+f+"]","special")}if(lc(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(Jd(r))return e.stylize(Date.prototype.toString.call(r),"date");if(Yd(r))return N9(r)}var h="",m=!1,g=["{","}"];if(D9(r)&&(m=!0,g=["[","]"]),cc(r)){var x=r.name?": "+r.name:"";h=" [Function"+x+"]"}if(lc(r)&&(h=" "+RegExp.prototype.toString.call(r)),Jd(r)&&(h=" "+Date.prototype.toUTCString.call(r)),Yd(r)&&(h=" "+N9(r)),o.length===0&&(!m||r.length==0))return g[0]+h+g[1];if(s<0)return lc(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var R;return m?R=WDe(e,r,s,c,o):R=o.map(function(w){return k9(e,r,s,c,w,m)}),e.seen.pop(),GDe(R,h,g)}function VDe(e,r){if(lo(r))return e.stylize("undefined","undefined");if(Th(r)){var s="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(s,"string")}if(L9(r))return e.stylize(""+r,"number");if(c0(r))return e.stylize(""+r,"boolean");if(Sh(r))return e.stylize("null","null")}function N9(e){return"["+Error.prototype.toString.call(e)+"]"}function WDe(e,r,s,l,u){for(var o=[],c=0,f=r.length;c<f;++c)NK(r,String(c))?o.push(k9(e,r,s,l,String(c),!0)):o.push("");return u.forEach(function(h){h.match(/^\d+$/)||o.push(k9(e,r,s,l,h,!0))}),o}function k9(e,r,s,l,u,o){var c,f,h;if(h=Object.getOwnPropertyDescriptor(r,u)||{value:r[u]},h.get?h.set?f=e.stylize("[Getter/Setter]","special"):f=e.stylize("[Getter]","special"):h.set&&(f=e.stylize("[Setter]","special")),NK(l,u)||(c="["+u+"]"),f||(e.seen.indexOf(h.value)<0?(Sh(s)?f=u0(e,h.value,null):f=u0(e,h.value,s-1),f.indexOf(` +`)>-1&&(o?f=f.split(` +`).map(function(m){return" "+m}).join(` +`).substr(2):f=` +`+f.split(` +`).map(function(m){return" "+m}).join(` +`))):f=e.stylize("[Circular]","special")),lo(c)){if(o&&u.match(/^\d+$/))return f;c=JSON.stringify(""+u),c.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(c=c.substr(1,c.length-2),c=e.stylize(c,"name")):(c=c.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),c=e.stylize(c,"string"))}return c+": "+f}function GDe(e,r,s){var l=e.reduce(function(u,o){return o.indexOf(` +`)>=0,u+o.replace(/\u001b\[\d\d?m/g,"").length+1},0);return l>60?s[0]+(r===""?"":r+` + `)+" "+e.join(`, + `)+" "+s[1]:s[0]+r+" "+e.join(", ")+" "+s[1]}function D9(e){return Array.isArray(e)}function c0(e){return typeof e=="boolean"}function Sh(e){return e===null}function CK(e){return e==null}function L9(e){return typeof e=="number"}function Th(e){return typeof e=="string"}function jK(e){return typeof e=="symbol"}function lo(e){return e===void 0}function lc(e){return uc(e)&&M9(e)==="[object RegExp]"}function uc(e){return typeof e=="object"&&e!==null}function Jd(e){return uc(e)&&M9(e)==="[object Date]"}function Yd(e){return uc(e)&&(M9(e)==="[object Error]"||e instanceof Error)}function cc(e){return typeof e=="function"}function d0(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e>"u"}function OK(e){return Nt.isBuffer(e)}function M9(e){return Object.prototype.toString.call(e)}function B9(e){return e<10?"0"+e.toString(10):e.toString(10)}var KDe=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function HDe(){var e=new Date,r=[B9(e.getHours()),B9(e.getMinutes()),B9(e.getSeconds())].join(":");return[e.getDate(),KDe[e.getMonth()],r].join(" ")}function _K(){console.log("%s - %s",HDe(),o0.apply(null,arguments))}function F9(e,r){if(!r||!uc(r))return e;for(var s=Object.keys(r),l=s.length;l--;)e[s[l]]=r[s[l]];return e}function NK(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var dc=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function $9(e){if(typeof e!="function")throw new TypeError('The "original" argument must be of type Function');if(dc&&e[dc]){var r=e[dc];if(typeof r!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(r,dc,{value:r,enumerable:!1,writable:!1,configurable:!0}),r}function r(){for(var s,l,u=new Promise(function(f,h){s=f,l=h}),o=[],c=0;c<arguments.length;c++)o.push(arguments[c]);o.push(function(f,h){f?l(f):s(h)});try{e.apply(this,o)}catch(f){l(f)}return u}return Object.setPrototypeOf(r,Object.getPrototypeOf(e)),dc&&Object.defineProperty(r,dc,{value:r,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(r,AK(e))}$9.custom=dc;function zDe(e,r){if(!e){var s=new Error("Promise was rejected with a falsy value");s.reason=e,e=s}return r(e)}function kK(e){if(typeof e!="function")throw new TypeError('The "original" argument must be of type Function');function r(){for(var s=[],l=0;l<arguments.length;l++)s.push(arguments[l]);var u=s.pop();if(typeof u!="function")throw new TypeError("The last argument must be of type Function");var o=this,c=function(){return u.apply(o,arguments)};e.apply(this,s).then(function(f){er.nextTick(c.bind(null,null,f))},function(f){er.nextTick(zDe.bind(null,f,c))})}return Object.setPrototypeOf(r,Object.getPrototypeOf(e)),Object.defineProperties(r,AK(e)),r}var XDe={inherits:Eh,_extend:F9,log:_K,isBuffer:OK,isPrimitive:d0,isFunction:cc,isError:Yd,isDate:Jd,isObject:uc,isRegExp:lc,isUndefined:lo,isSymbol:jK,isString:Th,isNumber:L9,isNullOrUndefined:CK,isNull:Sh,isBoolean:c0,isArray:D9,inspect:$i,deprecate:O9,format:o0,debuglog:IK,promisify:$9,callbackify:kK},JDe=Object.freeze({__proto__:null,_extend:F9,callbackify:kK,debuglog:IK,default:XDe,deprecate:O9,format:o0,inherits:Eh,inspect:$i,isArray:D9,isBoolean:c0,isBuffer:OK,isDate:Jd,isError:Yd,isFunction:cc,isNull:Sh,isNullOrUndefined:CK,isNumber:L9,isObject:uc,isPrimitive:d0,isRegExp:lc,isString:Th,isSymbol:jK,isUndefined:lo,log:_K,promisify:$9});function DK(e,r){if(e===r)return 0;for(var s=e.length,l=r.length,u=0,o=Math.min(s,l);u<o;++u)if(e[u]!==r[u]){s=e[u],l=r[u];break}return s<l?-1:l<s?1:0}var YDe=Object.prototype.hasOwnProperty,LK=Object.keys||function(e){var r=[];for(var s in e)YDe.call(e,s)&&r.push(s);return r},MK=Array.prototype.slice,q9;function BK(){return typeof q9<"u"?q9:q9=function(){return(function(){}).name==="foo"}()}function FK(e){return Object.prototype.toString.call(e)}function $K(e){return Ud(e)||typeof Oo.ArrayBuffer!="function"?!1:typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e?!!(e instanceof DataView||e.buffer&&e.buffer instanceof ArrayBuffer):!1}function Pa(e,r){e||cs(e,!0,r,"==",wh)}var QDe=/\s*function\s+([^\(\s]*)\s*/;function qK(e){if(cc(e)){if(BK())return e.name;var r=e.toString(),s=r.match(QDe);return s&&s[1]}}Pa.AssertionError=p0;function p0(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=ZDe(this),this.generatedMessage=!0);var r=e.stackStartFunction||cs;if(Error.captureStackTrace)Error.captureStackTrace(this,r);else{var s=new Error;if(s.stack){var l=s.stack,u=qK(r),o=l.indexOf(` +`+u);if(o>=0){var c=l.indexOf(` +`,o+1);l=l.substring(c+1)}this.stack=l}}}Eh(p0,Error);function UK(e,r){return typeof e=="string"?e.length<r?e:e.slice(0,r):e}function VK(e){if(BK()||!cc(e))return $i(e);var r=qK(e),s=r?": "+r:"";return"[Function"+s+"]"}function ZDe(e){return UK(VK(e.actual),128)+" "+e.operator+" "+UK(VK(e.expected),128)}function cs(e,r,s,l,u){throw new p0({message:s,actual:e,expected:r,operator:l,stackStartFunction:u})}Pa.fail=cs;function wh(e,r){e||cs(e,!0,r,"==",wh)}Pa.ok=wh,Pa.equal=U9;function U9(e,r,s){e!=r&&cs(e,r,s,"==",U9)}Pa.notEqual=V9;function V9(e,r,s){e==r&&cs(e,r,s,"!=",V9)}Pa.deepEqual=W9;function W9(e,r,s){Qd(e,r,!1)||cs(e,r,s,"deepEqual",W9)}Pa.deepStrictEqual=G9;function G9(e,r,s){Qd(e,r,!0)||cs(e,r,s,"deepStrictEqual",G9)}function Qd(e,r,s,l){if(e===r)return!0;if(Ud(e)&&Ud(r))return DK(e,r)===0;if(Jd(e)&&Jd(r))return e.getTime()===r.getTime();if(lc(e)&&lc(r))return e.source===r.source&&e.global===r.global&&e.multiline===r.multiline&&e.lastIndex===r.lastIndex&&e.ignoreCase===r.ignoreCase;if((e===null||typeof e!="object")&&(r===null||typeof r!="object"))return s?e===r:e==r;if($K(e)&&$K(r)&&FK(e)===FK(r)&&!(e instanceof Float32Array||e instanceof Float64Array))return DK(new Uint8Array(e.buffer),new Uint8Array(r.buffer))===0;if(Ud(e)!==Ud(r))return!1;l=l||{actual:[],expected:[]};var u=l.actual.indexOf(e);return u!==-1&&u===l.expected.indexOf(r)?!0:(l.actual.push(e),l.expected.push(r),eLe(e,r,s,l))}function WK(e){return Object.prototype.toString.call(e)=="[object Arguments]"}function eLe(e,r,s,l){if(e==null||r===null||r===void 0)return!1;if(d0(e)||d0(r))return e===r;if(s&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(r))return!1;var u=WK(e),o=WK(r);if(u&&!o||!u&&o)return!1;if(u)return e=MK.call(e),r=MK.call(r),Qd(e,r,s);var c=LK(e),f=LK(r),h,m;if(c.length!==f.length)return!1;for(c.sort(),f.sort(),m=c.length-1;m>=0;m--)if(c[m]!==f[m])return!1;for(m=c.length-1;m>=0;m--)if(h=c[m],!Qd(e[h],r[h],s,l))return!1;return!0}Pa.notDeepEqual=K9;function K9(e,r,s){Qd(e,r,!1)&&cs(e,r,s,"notDeepEqual",K9)}Pa.notDeepStrictEqual=H9;function H9(e,r,s){Qd(e,r,!0)&&cs(e,r,s,"notDeepStrictEqual",H9)}Pa.strictEqual=z9;function z9(e,r,s){e!==r&&cs(e,r,s,"===",z9)}Pa.notStrictEqual=X9;function X9(e,r,s){e===r&&cs(e,r,s,"!==",X9)}function GK(e,r){if(!e||!r)return!1;if(Object.prototype.toString.call(r)=="[object RegExp]")return r.test(e);try{if(e instanceof r)return!0}catch{}return Error.isPrototypeOf(r)?!1:r.call({},e)===!0}function tLe(e){var r;try{e()}catch(s){r=s}return r}function KK(e,r,s,l){var u;if(typeof r!="function")throw new TypeError('"block" argument must be a function');typeof s=="string"&&(l=s,s=null),u=tLe(r),l=(s&&s.name?" ("+s.name+").":".")+(l?" "+l:"."),e&&!u&&cs(u,s,"Missing expected exception"+l);var o=typeof l=="string",c=!e&&Yd(u),f=!e&&u&&!s;if((c&&o&&GK(u,s)||f)&&cs(u,s,"Got unwanted exception"+l),e&&u&&s&&!GK(u,s)||!e&&u)throw u}Pa.throws=HK;function HK(e,r,s){KK(!0,e,r,s)}Pa.doesNotThrow=zK;function zK(e,r,s){KK(!1,e,r,s)}Pa.ifError=XK;function XK(e){if(e)throw e}var rLe=Object.freeze({__proto__:null,AssertionError:p0,assert:wh,deepEqual:W9,deepStrictEqual:G9,default:Pa,doesNotThrow:zK,equal:U9,fail:cs,ifError:XK,notDeepEqual:K9,notDeepStrictEqual:H9,notEqual:V9,notStrictEqual:X9,ok:wh,strictEqual:z9,throws:HK}),J9=ft,f0=me,JK=Xt,Ph=Ne,aLe=Kg,nLe=mR,sLe=Hg,iLe=Uf,Y9=Vt,YK=Jt,oLe=Br,lLe=Sr,uLe=function(){function e(s,l,u){this._statements=[],this._resultName=null,this._importedSource=void 0,this._scope=l,this._hub=u,this._importedSource=s}var r=e.prototype;return r.done=function(){return{statements:this._statements,resultName:this._resultName}},r.import=function(){return this._statements.push(aLe([],YK(this._importedSource))),this},r.require=function(){return this._statements.push(JK(J9(Ph("require"),[YK(this._importedSource)]))),this},r.namespace=function(l){l===void 0&&(l="namespace");var u=this._scope.generateUidIdentifier(l),o=this._statements[this._statements.length-1];return Pa(o.type==="ImportDeclaration"),Pa(o.specifiers.length===0),o.specifiers=[sLe(u)],this._resultName=f0(u),this},r.default=function(l){var u=this._scope.generateUidIdentifier(l),o=this._statements[this._statements.length-1];return Pa(o.type==="ImportDeclaration"),Pa(o.specifiers.length===0),o.specifiers=[nLe(u)],this._resultName=f0(u),this},r.named=function(l,u){if(u==="default")return this.default(l);var o=this._scope.generateUidIdentifier(l),c=this._statements[this._statements.length-1];return Pa(c.type==="ImportDeclaration"),Pa(c.specifiers.length===0),c.specifiers=[iLe(o,Ph(u))],this._resultName=f0(o),this},r.var=function(l){var u=this._scope.generateUidIdentifier(l),o=this._statements[this._statements.length-1];return o.type!=="ExpressionStatement"&&(Pa(this._resultName),o=JK(this._resultName),this._statements.push(o)),this._statements[this._statements.length-1]=oLe("var",[lLe(u,o.expression)]),this._resultName=f0(u),this},r.defaultInterop=function(){return this._interop(this._hub.addHelper("interopRequireDefault"))},r.wildcardInterop=function(){return this._interop(this._hub.addHelper("interopRequireWildcard"))},r._interop=function(l){var u=this._statements[this._statements.length-1];return u.type==="ExpressionStatement"?u.expression=J9(l,[u.expression]):u.type==="VariableDeclaration"?(Pa(u.declarations.length===1),u.declarations[0].init=J9(l,[u.declarations[0].init])):Pa.fail("Unexpected type."),this},r.prop=function(l){var u=this._statements[this._statements.length-1];return u.type==="ExpressionStatement"?u.expression=Y9(u.expression,Ph(l)):u.type==="VariableDeclaration"?(Pa(u.declarations.length===1),u.declarations[0].init=Y9(u.declarations[0].init,Ph(l))):Pa.fail("Unexpected type:"+u.type),this},r.read=function(l){this._resultName=Y9(this._resultName,Ph(l))},_(e)}();function uo(e){return e.node.sourceType==="module"}var cLe=Ne,dLe=Uf,pLe=Wr,fLe=Mr,QK=vd,Q9=function(){function e(s,l,u){this._defaultOpts={importedSource:null,importedType:"commonjs",importedInterop:"babel",importingInterop:"babel",ensureLiveReference:!1,ensureNoContext:!1,importPosition:"before"};var o=s.find(function(c){return c.isProgram()});this._programPath=o,this._programScope=o.scope,this._hub=o.hub,this._defaultOpts=this._applyDefaults(l,u,!0)}var r=e.prototype;return r.addDefault=function(l,u){return this.addNamed("default",l,u)},r.addNamed=function(l,u,o){return Pa(typeof l=="string"),this._generateImport(this._applyDefaults(u,o),l)},r.addNamespace=function(l,u){return this._generateImport(this._applyDefaults(l,u),null)},r.addSideEffect=function(l,u){return this._generateImport(this._applyDefaults(l,u),void 0)},r._applyDefaults=function(l,u,o){o===void 0&&(o=!1);var c;return typeof l=="string"?c=Object.assign({},this._defaultOpts,{importedSource:l},u):(Pa(!u,"Unexpected secondary arguments."),c=Object.assign({},this._defaultOpts,l)),!o&&u&&(u.nameHint!==void 0&&(c.nameHint=u.nameHint),u.blockHoist!==void 0&&(c.blockHoist=u.blockHoist)),c},r._generateImport=function(l,u){var o=u==="default",c=!!u&&!o,f=u===null,h=l.importedSource,m=l.importedType,g=l.importedInterop,x=l.importingInterop,R=l.ensureLiveReference,w=l.ensureNoContext,T=l.nameHint,I=l.importPosition,P=l.blockHoist,O=T||u,j=uo(this._programPath),D=j&&x==="node",k=j&&x==="babel";if(I==="after"&&!j)throw new Error('"importPosition": "after" is only supported in modules');var B=new uLe(h,this._programScope,this._hub);if(m==="es6"){if(!D&&!k)throw new Error("Cannot import an ES6 module from CommonJS");B.import(),f?B.namespace(T||h):(o||c)&&B.named(O,u)}else{if(m!=="commonjs")throw new Error('Unexpected interopType "'+m+'"');if(g==="babel")if(D){O=O!=="default"?O:h;var F=h+"$es6Default";B.import(),f?B.default(F).var(O||h).wildcardInterop():o?R?B.default(F).var(O||h).defaultInterop().read("default"):B.default(F).var(O).defaultInterop().prop(u):c&&B.default(F).read(u)}else k?(B.import(),f?B.namespace(O||h):(o||c)&&B.named(O,u)):(B.require(),f?B.var(O||h).wildcardInterop():(o||c)&&R?o?(O=O!=="default"?O:h,B.var(O).read(u),B.defaultInterop()):B.var(h).read(u):o?B.var(O).defaultInterop().prop(u):c&&B.var(O).prop(u));else if(g==="compiled")D?(B.import(),f?B.default(O||h):(o||c)&&B.default(h).read(O)):k?(B.import(),f?B.namespace(O||h):(o||c)&&B.named(O,u)):(B.require(),f?B.var(O||h):(o||c)&&(R?B.var(h).read(O):B.prop(u).var(O)));else if(g==="uncompiled"){if(o&&R)throw new Error("No live reference for commonjs default");D?(B.import(),f?B.default(O||h):o?B.default(O):c&&B.default(h).read(O)):k?(B.import(),f?B.default(O||h):o?B.default(O):c&&B.named(O,u)):(B.require(),f?B.var(O||h):o?B.var(O):c&&(R?B.var(h).read(O):B.var(O).prop(u)))}else throw new Error('Unknown importedInterop "'+g+'".')}var L=B.done(),V=L.statements,H=L.resultName;return this._insertStatements(V,I,P),(o||c)&&w&&H.type!=="Identifier"?fLe([pLe(0),H]):H},r._insertStatements=function(l,u,o){if(u===void 0&&(u="before"),o===void 0&&(o=3),u==="after"){if(this._insertStatementsAfter(l))return}else if(this._insertStatementsBefore(l,o))return;this._programPath.unshiftContainer("body",l)},r._insertStatementsBefore=function(l,u){if(l.length===1&&QK(l[0])&&h0(l[0])){var o=this._programPath.get("body").find(function(f){return f.isImportDeclaration()&&h0(f.node)});if((o==null?void 0:o.node.source.value)===l[0].source.value&&tH(o.node,l[0]))return!0}l.forEach(function(f){f._blockHoist=u});var c=this._programPath.get("body").find(function(f){var h=f.node._blockHoist;return Number.isFinite(h)&&h<4});return c?(c.insertBefore(l),!0):!1},r._insertStatementsAfter=function(l){for(var u=new Set(l),o=new Map,c=C(l),f;!(f=c()).done;){var h=f.value;if(QK(h)&&h0(h)){var m=h.source.value;o.has(m)||o.set(m,[]),o.get(m).push(h)}}for(var g=null,x=C(this._programPath.get("body")),R;!(R=x()).done;){var w=R.value;if(w.isImportDeclaration()&&h0(w.node)){g=w;var T=w.node.source.value,I=o.get(T);if(!I)continue;for(var P=C(I),O;!(O=P()).done;){var j=O.value;u.has(j)&&tH(w.node,j)&&u.delete(j)}}}return u.size===0?!0:(g&&g.insertAfter(Array.from(u)),!!g)},_(e)}();function h0(e){return e.importKind!=="type"&&e.importKind!=="typeof"}function ZK(e){return e.specifiers.length===1&&e.specifiers[0].type==="ImportNamespaceSpecifier"||e.specifiers.length===2&&e.specifiers[1].type==="ImportNamespaceSpecifier"}function eH(e){return e.specifiers.length>0&&e.specifiers[0].type==="ImportDefaultSpecifier"}function tH(e,r){var s;return e.specifiers.length?r.specifiers.length?ZK(e)||ZK(r)?!1:(eH(r)&&(eH(e)?r.specifiers[0]=dLe(r.specifiers[0].local,cLe("default")):e.specifiers.unshift(r.specifiers.shift())),(s=e.specifiers).push.apply(s,fe(r.specifiers)),!0):!0:(e.specifiers=r.specifiers,!0)}function hLe(e,r,s){return new Q9(e).addDefault(r,s)}function m0(e,r,s,l){return new Q9(e).addNamed(r,s,l)}function mLe(e,r,s){return new Q9(e).addNamespace(r,s)}var y0;function Z9(e){y0||(y0=Fn({ThisExpression:function(s){s.replaceWith(vn("void",Wr(0),!0))}}),y0.noScope=!0),$a(e.node,y0)}var yLe=Ku,Ah=tr,e5=nn,t5=me,g0=Ne,gLe=pi,r5=Wr,vLe=Mr,rH=vn,aH={AssignmentExpression:{exit:function(r){var s=this.scope,l=this.seen,u=this.bindingNames;if(r.node.operator!=="="&&!l.has(r.node)){l.add(r.node);var o=r.get("left");if(o.isIdentifier()){var c=o.node.name;if(u.has(c)&&s.getBinding(c)===r.scope.getBinding(c)){var f=r.node.operator.slice(0,-1);yLe.includes(f)?r.replaceWith(gLe(f,r.node.left,Ah("=",t5(r.node.left),r.node.right))):(r.node.right=e5(f,t5(r.node.left),r.node.right),r.node.operator="=")}}}}}};aH.UpdateExpression={exit:function(r){if(this.includeUpdateExpression){var s=this.scope,l=this.bindingNames,u=r.get("argument");if(u.isIdentifier()){var o=u.node.name;if(l.has(o)&&s.getBinding(o)===r.scope.getBinding(o))if(r.parentPath.isExpressionStatement()&&!r.isCompletionRecord()){var c=r.node.operator==="++"?"+=":"-=";r.replaceWith(Ah(c,u.node,r5(1)))}else if(r.node.prefix)r.replaceWith(Ah("=",g0(o),e5(r.node.operator[0],rH("+",u.node),r5(1))));else{var f=r.scope.generateUidIdentifierBasedOnNode(u.node,"old"),h=f.name;r.scope.push({id:f});var m=e5(r.node.operator[0],g0(h),r5(1));r.replaceWith(vLe([Ah("=",g0(h),rH("+",u.node)),Ah("=",t5(u.node),m),g0(h)]))}}}}};function nH(e,r){{var s;e.traverse(aH,{scope:e.scope,bindingNames:r,seen:new WeakSet,includeUpdateExpression:(s=arguments[2])!=null?s:!0})}}var sH;function bLe(e){do switch(e.parent.type){case"TSTypeAnnotation":case"TSTypeAliasDeclaration":case"TSTypeReference":case"TypeAnnotation":case"TypeAlias":return!0;case"ExportSpecifier":return e.parentPath.parent.exportKind==="type";default:if(e.parentPath.isStatement()||e.parentPath.isExpression())return!1}while(e=e.parentPath)}function xLe(e,r,s){for(var l=new Map,u=new Map,o=function(oe){e.requeue(oe)},c=C(r.source),f;!(f=c()).done;){for(var h=je(f.value,2),m=h[0],g=h[1],x=C(g.imports),R;!(R=x()).done;){var w=je(R.value,2),T=w[0],I=w[1];l.set(T,[m,I,null])}for(var P=C(g.importsNamespace),O;!(O=P()).done;){var j=O.value;l.set(j,[m,null,j])}}for(var D=C(r.local),k;!(k=D()).done;){var B,F=je(k.value,2),L=F[0],V=F[1],H=u.get(L);H||(H=[],u.set(L,H)),(B=H).push.apply(B,fe(V.names))}var K={metadata:r,requeueInParent:o,scope:e.scope,exported:u};e.traverse(RLe,K);var G=new Set([].concat(fe(Array.from(l.keys())),fe(Array.from(u.keys()))));nH(e,G,!1);var X={seen:new WeakSet,metadata:r,requeueInParent:o,scope:e.scope,imported:l,exported:u,buildImportReference:function(oe,he){var te=je(oe,3),ae=te[0],J=te[1],xe=te[2],de=r.source.get(ae);if(de.referenced=!0,xe){if(de.wrap){var $e;he=($e=s(he,de.wrap))!=null?$e:he}return he}var Ve=Ne(de.name);if(de.wrap){var Ie;Ve=(Ie=s(Ve,de.wrap))!=null?Ie:Ve}if(J==="default"&&de.interop==="node-default")return Ve;var ke=r.stringSpecifiers.has(J);return Vt(Ve,ke?Jt(J):Ne(J),ke)}};e.traverse(ELe,X)}var RLe={Scope:function(r){r.skip()},ClassDeclaration:function(r){var s=this.requeueInParent,l=this.exported,u=this.metadata,o=r.node.id;if(!o)throw new Error("Expected class to have a name");var c=o.name,f=l.get(c)||[];if(f.length>0){var h=Xt(pc(u,f,Ne(c),r.scope));h._blockHoist=r.node._blockHoist,s(r.insertAfter(h)[0])}},VariableDeclaration:function(r){for(var s=this.requeueInParent,l=this.exported,u=this.metadata,o=r.node.kind==="var",c=C(r.get("declarations")),f;!(f=c()).done;){var h=f.value,m=h.node.id,g=h.node.init;if(Dt(m)&&l.has(m.name)&&!md(g)&&(!va(g)||g.id)&&(!df(g)||g.id)){if(!g){if(o)continue;g=r.scope.buildUndefinedNode()}h.node.init=pc(u,l.get(m.name),g,r.scope),s(h.get("init"))}else for(var x=0,R=Object.keys(h.getOuterBindingIdentifiers());x<R.length;x++){var w=R[x];if(l.has(w)){var T=Xt(pc(u,l.get(w),Ne(w),r.scope));T._blockHoist=r.node._blockHoist,s(r.insertAfter(T)[0])}}}}},pc=function(r,s,l,u){for(var o=r.exportName,c=u;c!=null;c=c.parent)c.hasOwnBinding(o)&&c.rename(o);return(s||[]).reduce(function(f,h){var m=r.stringSpecifiers,g=m.has(h);return tr("=",Vt(Ne(o),g?Jt(h):Ne(h),g),f)},l)},v0=function(r){return xt.expression.ast(sH||(sH=se([` + (function() { + throw new Error('"' + '`,`' + '" is read-only.'); + })() + `])),r)},ELe={ReferencedIdentifier:function(r){var s=this.seen,l=this.buildImportReference,u=this.scope,o=this.imported,c=this.requeueInParent;if(!s.has(r.node)){s.add(r.node);var f=r.node.name,h=o.get(f);if(h){if(bLe(r))throw r.buildCodeFrameError('Cannot transform the imported binding "'+f+`" since it's also used in a type annotation. Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`);var m=r.scope.getBinding(f),g=u.getBinding(f);if(g!==m)return;var x=l(h,r.node);if(x.loc=r.node.loc,(r.parentPath.isCallExpression({callee:r.node})||r.parentPath.isOptionalCallExpression({callee:r.node})||r.parentPath.isTaggedTemplateExpression({tag:r.node}))&&lr(x))r.replaceWith(Mr([Wr(0),x]));else if(r.isJSXIdentifier()&&lr(x)){var R=x.object,w=x.property;r.replaceWith(Zg(ao(R.name),ao(w.name)))}else r.replaceWith(x);c(r),r.skip()}}},UpdateExpression:function(r){var s=this.scope,l=this.seen,u=this.imported,o=this.exported,c=this.requeueInParent,f=this.buildImportReference;if(!l.has(r.node)){l.add(r.node);var h=r.get("argument");if(!h.isMemberExpression()){var m=r.node;if(h.isIdentifier()){var g=h.node.name;if(s.getBinding(g)!==r.scope.getBinding(g))return;var x=o.get(g),R=u.get(g);if((x==null?void 0:x.length)>0||R)if(R)r.replaceWith(tr(m.operator[0]+"=",f(R,h.node),v0(g)));else if(m.prefix)r.replaceWith(pc(this.metadata,x,me(m),r.scope));else{var w=s.generateDeclaredUidIdentifier(g);r.replaceWith(Mr([tr("=",me(w),me(m)),pc(this.metadata,x,Ne(g),r.scope),me(w)]))}}c(r),r.skip()}}},AssignmentExpression:{exit:function(r){var s=this,l=this.scope,u=this.seen,o=this.imported,c=this.exported,f=this.requeueInParent,h=this.buildImportReference;if(!u.has(r.node)){u.add(r.node);var m=r.get("left");if(!m.isMemberExpression())if(m.isIdentifier()){var g=m.node.name;if(l.getBinding(g)!==r.scope.getBinding(g))return;var x=c.get(g),R=o.get(g);if((x==null?void 0:x.length)>0||R){Pa(r.node.operator==="=","Path was not simplified");var w=r.node;R&&(w.left=h(R,m.node),w.right=Mr([w.right,v0(g)])),r.replaceWith(pc(this.metadata,x,w,r.scope)),f(r)}}else{var T=m.getOuterBindingIdentifiers(),I=Object.keys(T).filter(function(k){return l.getBinding(k)===r.scope.getBinding(k)}),P=I.find(function(k){return o.has(k)});P&&(r.node.right=Mr([r.node.right,v0(P)]));var O=[];if(I.forEach(function(k){var B=c.get(k)||[];B.length>0&&O.push(pc(s.metadata,B,Ne(k),r.scope))}),O.length>0){var j=Mr(O);r.parentPath.isExpressionStatement()&&(j=Xt(j),j._blockHoist=r.parentPath.node._blockHoist);var D=r.insertAfter(j)[0];f(D)}}}}},"ForOfStatement|ForInStatement":function(r){var s=r.scope,l=r.node,u=l.left,o=this.exported,c=this.imported,f=this.scope;if(!Ja(u)){for(var h=!1,m,g=r.get("body").scope,x=0,R=Object.keys(s1(u));x<R.length;x++){var w=R[x];f.getBinding(w)===s.getBinding(w)&&(o.has(w)&&(h=!0,g.hasOwnBinding(w)&&g.rename(w)),c.has(w)&&!m&&(m=w))}if(!h&&!m)return;r.ensureBlock();var T=r.get("body"),I=s.generateUidIdentifierBasedOnNode(u);r.get("left").replaceWith(Br("let",[Sr(me(I))])),s.registerDeclaration(r.get("left")),h&&T.unshiftContainer("body",Xt(tr("=",u,I))),m&&T.unshiftContainer("body",Xt(v0(m)))}}};function iH(e,r){for(var s=0,l=e.length-1;l>=0;l--){var u=e[l];u==="."?e.splice(l,1):u===".."?(e.splice(l,1),s++):s&&(e.splice(l,1),s--)}if(r)for(;s--;s)e.unshift("..");return e}var SLe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,a5=function(e){return SLe.exec(e).slice(1)};function b0(){for(var e="",r=!1,s=arguments.length-1;s>=-1&&!r;s--){var l=s>=0?arguments[s]:"/";if(typeof l!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!l)continue;e=l+"/"+e,r=l.charAt(0)==="/"}return e=iH(i5(e.split("/"),function(u){return!!u}),!r).join("/"),(r?"/":"")+e||"."}function n5(e){var r=s5(e),s=TLe(e,-1)==="/";return e=iH(i5(e.split("/"),function(l){return!!l}),!r).join("/"),!e&&!r&&(e="."),e&&s&&(e+="/"),(r?"/":"")+e}function s5(e){return e.charAt(0)==="/"}function oH(){var e=Array.prototype.slice.call(arguments,0);return n5(i5(e,function(r,s){if(typeof r!="string")throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))}function lH(e,r){e=b0(e).substr(1),r=b0(r).substr(1);function s(m){for(var g=0;g<m.length&&m[g]==="";g++);for(var x=m.length-1;x>=0&&m[x]==="";x--);return g>x?[]:m.slice(g,x-g+1)}for(var l=s(e.split("/")),u=s(r.split("/")),o=Math.min(l.length,u.length),c=o,f=0;f<o;f++)if(l[f]!==u[f]){c=f;break}for(var h=[],f=c;f<l.length;f++)h.push("..");return h=h.concat(u.slice(c)),h.join("/")}var uH="/",cH=":";function dH(e){var r=a5(e),s=r[0],l=r[1];return!s&&!l?".":(l&&(l=l.substr(0,l.length-1)),s+l)}function Ih(e,r){var s=a5(e)[2];return r&&s.substr(-1*r.length)===r&&(s=s.substr(0,s.length-r.length)),s}function Ch(e){return a5(e)[3]}var Cn={extname:Ch,basename:Ih,dirname:dH,sep:uH,delimiter:cH,relative:lH,join:oH,isAbsolute:s5,normalize:n5,resolve:b0};function i5(e,r){if(e.filter)return e.filter(r);for(var s=[],l=0;l<e.length;l++)r(e[l],l,e)&&s.push(e[l]);return s}var TLe="ab".substr(-1)==="b"?function(e,r,s){return e.substr(r,s)}:function(e,r,s){return r<0&&(r=e.length+r),e.substr(r,s)},wLe=Object.freeze({__proto__:null,basename:Ih,default:Cn,delimiter:cH,dirname:dH,extname:Ch,isAbsolute:s5,join:oH,normalize:n5,relative:lH,resolve:b0,sep:uH});function x0(e){return e.hasExports}function Zd(e){return e.imports.size===0&&e.importsNamespace.size===0&&e.reexports.size===0&&e.reexportNamespace.size===0&&!e.reexportAll}function pH(e){if(typeof e!="function"&&e!=="none"&&e!=="babel"&&e!=="node")throw new Error('.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received '+e+").");return e}function PLe(e,r,s){return typeof e=="function"?pH(e(r,s)):e}function ALe(e,r,s){var l=s.importInterop,u=s.initializeReexports,o=u===void 0?!1:u,c=s.getWrapperPayload,f=s.esNamespaceOnly,h=f===void 0?!1:f,m=s.filename;r||(r=e.scope.generateUidIdentifier("exports").name);var g=new Set;jLe(e);var x=ILe(e,{initializeReexports:o,getWrapperPayload:c},g),R=x.local,w=x.sources,T=x.hasExports;OLe(e);for(var I=C(w),P;!(P=I()).done;){var O=je(P.value,2),j=O[0],D=O[1],k=D.importsNamespace,B=D.imports;if(k.size>0&&B.size===0){var F=je(k,1),L=F[0];D.name=L}var V=PLe(l,j,m);V==="none"?D.interop="none":V==="node"&&D.interop==="namespace"?D.interop="node-namespace":V==="node"&&D.interop==="default"?D.interop="node-default":h&&D.interop==="namespace"&&(D.interop="default")}return{exportName:r,exportNameListName:null,hasExports:T,local:R,source:w,stringSpecifiers:g}}function R0(e,r){if(e.isIdentifier())return e.node.name;if(e.isStringLiteral()){var s=e.node.value;return L7(s)||r.add(s),s}else throw new Error("Expected export specifier to be either Identifier or StringLiteral, got "+e.node.type)}function fH(e){if(!e.isExportSpecifier())throw e.isExportNamespaceSpecifier()?e.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`."):e.buildCodeFrameError("Unexpected export specifier type")}function ILe(e,r,s){var l=r.getWrapperPayload,u=r.initializeReexports,o=CLe(e,u,s),c=new Map,f=new Map,h=function(G,X){var ue=G.value,oe=f.get(ue);return oe?c.get(ue).push(X):(oe={name:e.scope.generateUidIdentifier(Ih(ue,Ch(ue))).name,interop:"none",loc:null,imports:new Map,importsNamespace:new Set,reexports:new Map,reexportNamespace:new Set,reexportAll:null,wrap:null,get lazy(){return this.wrap==="lazy"},referenced:!1},f.set(ue,oe),c.set(ue,[X])),oe},m=!1;e.get("body").forEach(function(K){if(K.isImportDeclaration()){var G=h(K.node.source,K.node);G.loc||(G.loc=K.node.loc),K.get("specifiers").forEach(function(oe){if(oe.isImportDefaultSpecifier()){var he=oe.get("local").node.name;G.imports.set(he,"default");var te=o.get(he);te&&(o.delete(he),te.names.forEach(function(Ve){G.reexports.set(Ve,"default")}),G.referenced=!0)}else if(oe.isImportNamespaceSpecifier()){var ae=oe.get("local").node.name;G.importsNamespace.add(ae);var J=o.get(ae);J&&(o.delete(ae),J.names.forEach(function(Ve){G.reexportNamespace.add(Ve)}),G.referenced=!0)}else if(oe.isImportSpecifier()){var xe=R0(oe.get("imported"),s),de=oe.get("local").node.name;G.imports.set(de,xe);var $e=o.get(de);$e&&(o.delete(de),$e.names.forEach(function(Ve){G.reexports.set(Ve,xe)}),G.referenced=!0)}})}else if(K.isExportAllDeclaration()){m=!0;var X=h(K.node.source,K.node);X.loc||(X.loc=K.node.loc),X.reexportAll={loc:K.node.loc},X.referenced=!0}else if(K.isExportNamedDeclaration()&&K.node.source){m=!0;var ue=h(K.node.source,K.node);ue.loc||(ue.loc=K.node.loc),K.get("specifiers").forEach(function(oe){fH(oe);var he=R0(oe.get("local"),s),te=R0(oe.get("exported"),s);if(ue.reexports.set(te,he),ue.referenced=!0,te==="__esModule")throw oe.get("exported").buildCodeFrameError('Illegal export "__esModule".')})}else(K.isExportNamedDeclaration()||K.isExportDefaultDeclaration())&&(m=!0)});for(var g=C(f.values()),x;!(x=g()).done;){var R=x.value,w=!1,T=!1;R.importsNamespace.size>0&&(w=!0,T=!0),R.reexportAll&&(T=!0);for(var I=C(R.imports.values()),P;!(P=I()).done;){var O=P.value;O==="default"?w=!0:T=!0}for(var j=C(R.reexports.values()),D;!(D=j()).done;){var k=D.value;k==="default"?w=!0:T=!0}w&&T?R.interop="namespace":w&&(R.interop="default")}if(l)for(var B=C(f),F;!(F=B()).done;){var L=je(F.value,2),V=L[0],H=L[1];H.wrap=l(V,H,c.get(V))}return{hasExports:m,local:o,sources:f}}function CLe(e,r,s){var l=new Map;e.get("body").forEach(function(c){var f;if(c.isImportDeclaration())f="import";else{if(c.isExportDefaultDeclaration()&&(c=c.get("declaration")),c.isExportNamedDeclaration()){if(c.node.declaration)c=c.get("declaration");else if(r&&c.node.source&&c.get("source").isStringLiteral()){c.get("specifiers").forEach(function(h){fH(h),l.set(h.get("local").node.name,"block")});return}}if(c.isFunctionDeclaration())f="hoisted";else if(c.isClassDeclaration())f="block";else if(c.isVariableDeclaration({kind:"var"}))f="var";else if(c.isVariableDeclaration())f="block";else return}Object.keys(c.getOuterBindingIdentifiers()).forEach(function(h){l.set(h,f)})});var u=new Map,o=function(f){var h=f.node.name,m=u.get(h);if(!m){var g=l.get(h);if(g===void 0)throw f.buildCodeFrameError('Exporting local "'+h+'", which is not declared.');m={names:[],kind:g},u.set(h,m)}return m};return e.get("body").forEach(function(c){if(c.isExportNamedDeclaration()&&(r||!c.node.source))if(c.node.declaration){var f=c.get("declaration"),h=f.getOuterBindingIdentifierPaths();Object.keys(h).forEach(function(g){if(g==="__esModule")throw f.buildCodeFrameError('Illegal export "__esModule".');o(h[g]).names.push(g)})}else c.get("specifiers").forEach(function(g){var x=g.get("local"),R=g.get("exported"),w=o(x),T=R0(R,s);if(T==="__esModule")throw R.buildCodeFrameError('Illegal export "__esModule".');w.names.push(T)});else if(c.isExportDefaultDeclaration()){var m=c.get("declaration");if(m.isFunctionDeclaration()||m.isClassDeclaration())o(m.get("id")).names.push("default");else throw m.buildCodeFrameError("Unexpected default expression export.")}}),u}function jLe(e){e.get("body").forEach(function(r){r.isExportDefaultDeclaration()&&r.splitExportDeclaration()})}function OLe(e){e.get("body").forEach(function(r){if(r.isImportDeclaration())r.remove();else if(r.isExportNamedDeclaration())r.node.declaration?(r.node.declaration._blockHoist=r.node._blockHoist,r.replaceWith(r.node.declaration)):r.remove();else if(r.isExportDefaultDeclaration()){var s=r.get("declaration");if(s.isFunctionDeclaration()||s.isClassDeclaration())s._blockHoist=r.node._blockHoist,r.replaceWith(s);else throw s.buildCodeFrameError("Unexpected default expression export.")}else r.isExportAllDeclaration()&&r.remove()})}function _Le(e){return function(r,s){if(e===!1||Zd(s)||s.reexportAll)return null;if(e===!0)return r.includes(".")?null:"lazy";if(Array.isArray(e))return e.includes(r)?"lazy":null;if(typeof e=="function")return e(r)?"lazy":null;throw new Error(".lazy must be a boolean, string array, or function")}}function hH(e,r){return r==="lazy"?ft(e,[]):null}var mH,yH,gH,vH;function E0(e,r,s,l){var u=ct(e)?e.arguments[0]:e.source;if(nt(u)||Di(u)&&u.quasis.length===0)return r?xt.expression.ast(mH||(mH=se([` + Promise.resolve().then(() => `,`) + `])),l(u)):l(u);var o=Di(u)?Ne("specifier"):gR([zg({raw:""}),zg({raw:""})],[Ne("specifier")]);return r?xt.expression.ast(yH||(yH=se([` + (specifier => + new Promise(r => r(`,`)) + .then(s => `,`) + )(`,`) + `])),o,l(Ne("s")),u):s?xt.expression.ast(gH||(gH=se([` + (specifier => + new Promise(r => r(`,`)) + )(`,`) + `])),l(o),u):xt.expression.ast(vH||(vH=se([` + (specifier => `,")(",`) + `])),l(o),u)}{var NLe=fc;fc=function(r,s){var l,u,o,c;return NLe(r,{moduleId:(l=s.moduleId)!=null?l:r.moduleId,moduleIds:(u=s.moduleIds)!=null?u:r.moduleIds,getModuleId:(o=s.getModuleId)!=null?o:r.getModuleId,moduleRoot:(c=s.moduleRoot)!=null?c:r.moduleRoot})}}function fc(e,r){var s=e.filename,l=e.filenameRelative,u=l===void 0?s:l,o=e.sourceRoot,c=o===void 0?r.moduleRoot:o,f=r.moduleId,h=r.moduleIds,m=h===void 0?!!f:h,g=r.getModuleId,x=r.moduleRoot,R=x===void 0?c:x;if(!m)return null;if(f!=null&&!g)return f;var w=R!=null?R+"/":"";if(u){var T=c!=null?new RegExp("^"+c+"/?"):"";w+=u.replace(T,"").replace(/\.\w*$/,"")}return w=w.replace(/\\/g,"/"),g&&g(w)||w}var bH,xH,RH,EH,SH,TH,wH,PH,AH,IH,CH,jH,OH,_H;function S0(e,r){var s=r.exportName,l=r.strict,u=r.allowTopLevelThis,o=r.strictMode,c=r.noInterop,f=r.importInterop,h=f===void 0?c?"none":"babel":f,m=r.lazy,g=r.getWrapperPayload,x=g===void 0?_Le(m??!1):g,R=r.wrapReference,w=R===void 0?hH:R,T=r.esNamespaceOnly,I=r.filename,P=r.constantReexports,O=P===void 0?arguments[1].loose:P,j=r.enumerableModuleMeta,D=j===void 0?arguments[1].loose:j,k=r.noIncompleteNsImportDetection;pH(h),Pa(uo(e),"Cannot process module statements in a script"),e.node.sourceType="script";var B=ALe(e,s,{importInterop:h,initializeReexports:O,getWrapperPayload:x,esNamespaceOnly:T,filename:I});if(u||Z9(e),xLe(e,B,w),o!==!1){var F=e.node.directives.some(function(H){return H.value.value==="use strict"});F||e.unshiftContainer("directives",Cd(jd("use strict")))}var L=[];x0(B)&&!l&&L.push(kLe(B,D));var V=LLe(e,B);return V&&(B.exportNameListName=V.name,L.push(V.statement)),L.push.apply(L,fe(MLe(e,B,w,O,k))),{meta:B,headers:L}}function T0(e){e.forEach(function(r){r._blockHoist=3})}function jh(e,r,s){if(s==="none")return null;if(s==="node-namespace")return ft(e.hub.addHelper("interopRequireWildcard"),[r,un(!0)]);if(s==="node-default")return null;var l;if(s==="default")l="interopRequireDefault";else if(s==="namespace")l="interopRequireWildcard";else throw new Error("Unknown interop: "+s);return ft(e.hub.addHelper(l),[r])}function w0(e,r,s,l){var u;s===void 0&&(s=!1),l===void 0&&(l=hH);for(var o=[],c=Ne(r.name),f=C(r.importsNamespace),h;!(h=f()).done;){var m=h.value;m!==r.name&&o.push(xt.statement(bH||(bH=se(["var NAME = SOURCE;"])))({NAME:m,SOURCE:me(c)}))}var g=(u=l(c,r.wrap))!=null?u:c;s&&o.push.apply(o,fe(NH(e,r,!0,l)));for(var x=C(r.reexportNamespace),R;!(R=x()).done;){var w=R.value;o.push((Dt(g)?xt.statement(RH||(RH=se(["EXPORTS.NAME = NAMESPACE;"]))):xt.statement(xH||(xH=se([` + Object.defineProperty(EXPORTS, "NAME", { + enumerable: true, + get: function() { + return NAMESPACE; + } + }); + `]))))({EXPORTS:e.exportName,NAME:w,NAMESPACE:me(g)}))}if(r.reexportAll){var T=DLe(e,me(g),s);T.loc=r.reexportAll.loc,o.push(T)}return o}var o5={constant:function(r){var s=r.exports,l=r.exportName,u=r.namespaceImport;return xt.statement.ast(EH||(EH=se([` + `,"."," = ",`; + `])),s,l,u)},constantComputed:function(r){var s=r.exports,l=r.exportName,u=r.namespaceImport;return xt.statement.ast(SH||(SH=se([` + `,'["','"] = ',`; + `])),s,l,u)},spec:function(r){var s=r.exports,l=r.exportName,u=r.namespaceImport;return xt.statement.ast(TH||(TH=se([` + Object.defineProperty(`,', "',`", { + enumerable: true, + get: function() { + return `,`; + }, + }); + `])),s,l,u)}};function NH(e,r,s,l){var u,o=Ne(r.name);o=(u=l(o,r.wrap))!=null?u:o;var c=e.stringSpecifiers;return Array.from(r.reexports,function(f){var h=je(f,2),m=h[0],g=h[1],x=me(o);g==="default"&&r.interop==="node-default"||(c.has(g)?x=Vt(x,Jt(g),!0):x=Vt(x,Ne(g)));var R={exports:e.exportName,exportName:m,namespaceImport:x};return s||Dt(x)?c.has(m)?o5.constantComputed(R):o5.constant(R):o5.spec(R)})}function kLe(e,r){return r===void 0&&(r=!1),(r?xt.statement(wH||(wH=se([` + EXPORTS.__esModule = true; + `]))):xt.statement(PH||(PH=se([` + Object.defineProperty(EXPORTS, "__esModule", { + value: true, + }); + `]))))({EXPORTS:e.exportName})}function DLe(e,r,s){return(s?xt.statement(AH||(AH=se([` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + EXPORTS[key] = NAMESPACE[key]; + }); + `]))):xt.statement(IH||(IH=se([` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + Object.defineProperty(EXPORTS, key, { + enumerable: true, + get: function() { + return NAMESPACE[key]; + }, + }); + }); + `]))))({NAMESPACE:r,EXPORTS:e.exportName,VERIFY_NAME_LIST:e.exportNameListName?xt(CH||(CH=se([` + if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return; + `])))({EXPORTS_LIST:e.exportNameListName}):null})}function LLe(e,r){for(var s=Object.create(null),l=C(r.local.values()),u;!(u=l()).done;)for(var o=u.value,c=C(o.names),f;!(f=c()).done;){var h=f.value;s[h]=!0}for(var m=!1,g=C(r.source.values()),x;!(x=g()).done;){for(var R=x.value,w=C(R.reexports.keys()),T;!(T=w()).done;){var I=T.value;s[I]=!0}for(var P=C(R.reexportNamespace),O;!(O=P()).done;){var j=O.value;s[j]=!0}m=m||!!R.reexportAll}if(!m||Object.keys(s).length===0)return null;var D=e.scope.generateUidIdentifier("exportNames");return delete s.default,{name:D.name,statement:Br("var",[Sr(D,Jf(s))])}}function MLe(e,r,s,l,u){l===void 0&&(l=!1),u===void 0&&(u=!1);for(var o=[],c=C(r.local),f;!(f=c()).done;){var h=je(f.value,2),m=h[0],g=h[1];if(g.kind!=="import"){if(g.kind==="hoisted")o.push([g.names[0],u5(r,g.names,Ne(m))]);else if(!u)for(var x=C(g.names),R;!(R=x()).done;){var w=R.value;o.push([w,null])}}}for(var T=C(r.source.values()),I;!(I=T()).done;){var P=I.value;if(!l)for(var O=NH(r,P,!1,s),j=fe(P.reexports.keys()),D=0;D<O.length;D++)o.push([j[D],O[D]]);if(!u)for(var k=C(P.reexportNamespace),B;!(B=k()).done;){var F=B.value;o.push([F,null])}}o.sort(function(xe,de){var $e=je(xe,1),Ve=$e[0],Ie=je(de,1),ke=Ie[0];return Ve<ke?-1:ke<Ve?1:0});var L=[];if(u)for(var V=C(o),H;!(H=V()).done;){var K=je(H.value,2),G=K[1];L.push(G)}else for(var X=100,ue=0;ue<o.length;ue+=X){for(var oe=[],he=0;he<X&&ue+he<o.length;he++){var te=je(o[ue+he],2),ae=te[0],J=te[1];J!==null?(oe.length>0&&(L.push(u5(r,oe,e.scope.buildUndefinedNode())),oe=[]),L.push(J)):oe.push(ae)}oe.length>0&&L.push(u5(r,oe,e.scope.buildUndefinedNode()))}return L}var l5={computed:function(r){var s=r.exports,l=r.name,u=r.value;return xt.expression.ast(jH||(jH=se(["",'["','"] = ',""])),s,l,u)},default:function(r){var s=r.exports,l=r.name,u=r.value;return xt.expression.ast(OH||(OH=se(["","."," = ",""])),s,l,u)},define:function(r){var s=r.exports,l=r.name,u=r.value;return xt.expression.ast(_H||(_H=se([` + Object.defineProperty(`,', "',`", { + enumerable: true, + value: void 0, + writable: true + })["`,'"] = ',""])),s,l,l,u)}};function u5(e,r,s){var l=e.stringSpecifiers,u=e.exportName;return Xt(r.reduce(function(o,c){var f={exports:u,name:c,value:o};return c==="__proto__"?l5.define(f):l.has(c)?l5.computed(f):l5.default(f)},s))}var BLe=Object.freeze({__proto__:null,buildDynamicImport:E0,buildNamespaceInitStatements:w0,ensureStatementsHoisted:T0,getModuleName:fc,hasExports:x0,isModule:uo,isSideEffectImport:Zd,rewriteModuleStatementsAndPrepareHeader:S0,rewriteThis:Z9,wrapInterop:jh}),FLe=Gu(BLe),$Le=function(){return FLe.getModuleName},qLe=me,ULe=iR,VLe={enter:function(r,s){var l=r.node.loc;l&&(s.loc=l,r.stop())}},Oh=function(){function e(s,l){var u=this,o=l.code,c=l.ast,f=l.inputMap;this._map=new Map,this.opts=void 0,this.declarations={},this.path=void 0,this.ast=void 0,this.scope=void 0,this.metadata={},this.code="",this.inputMap=void 0,this.hub={file:this,getCode:function(){return u.code},getScope:function(){return u.scope},addHelper:this.addHelper.bind(this),buildError:this.buildCodeFrameError.bind(this)},this.opts=s,this.code=o,this.ast=c,this.inputMap=f,this.path=wn.get({hub:this.hub,parentPath:null,parent:this.ast,container:this.ast,key:"program"}).setContext(),this.scope=this.path.scope}var r=e.prototype;return r.set=function(l,u){if(l==="helpersNamespace")throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.If you are using @babel/plugin-external-helpers you will need to use a newer version than the one you currently have installed. If you have your own implementation, you'll want to explore using 'helperGenerator' alongside 'file.availableHelper()'.");this._map.set(l,u)},r.get=function(l){return this._map.get(l)},r.has=function(l){return this._map.has(l)},r.availableHelper=function(l,u){var o;try{o=cV(l)}catch(c){if(c.code!=="BABEL_HELPER_UNKNOWN")throw c;return!1}return typeof u!="string"?!0:(i0.valid(u)&&(u="^"+u),!i0.intersects("<"+o,u)&&!i0.intersects(">=8.0.0",u))},r.addHelper=function(l){var u=this,o=this.declarations[l];if(o)return qLe(o);var c=this.get("helperGenerator");if(c){var f=c(l);if(f)return f}cV(l);for(var h=this.declarations[l]=this.scope.generateUidIdentifier(l),m={},g=C(DSe(l)),x;!(x=g()).done;){var R=x.value;m[R]=this.addHelper(R)}var w=uV(l,function(k){return m[k]},h.name,Object.keys(this.scope.getAllBindings())),T=w.nodes,I=w.globals;I.forEach(function(k){u.path.scope.hasBinding(k,!0)&&u.path.scope.rename(k)}),T.forEach(function(k){k._compact=!0});for(var P=this.path.unshiftContainer("body",T),O=C(P),j;!(j=O()).done;){var D=j.value;D.isVariableDeclaration()&&this.scope.registerDeclaration(D)}return h},r.buildCodeFrameError=function(l,u,o){o===void 0&&(o=SyntaxError);var c=l==null?void 0:l.loc;if(!c&&l){var f={loc:null};$a(l,VLe,this.scope,f),c=f.loc;var h="This is an error on an internal node. Probably an internal error.";c&&(h+=" Location has been estimated."),u+=" ("+h+")"}if(c){var m=this.opts.highlightCode,g=m===void 0?!0:m;u+=` +`+g1(this.code,{start:{line:c.start.line,column:c.start.column+1},end:c.end&&c.start.line===c.end.line?{line:c.end.line,column:c.end.column+1}:void 0},{highlightCode:g})}return new o(u)},_(e,[{key:"shebang",get:function(){var l=this.path.node.interpreter;return l?l.value:""},set:function(l){l?this.path.get("interpreter").replaceWith(ULe(l)):this.path.get("interpreter").remove()}}])}();Oh.prototype.addImport=function(){throw new Error("This API has been removed. If you're looking for this functionality in Babel 7, you should import the '@babel/helper-module-imports' module and use the functions exposed from that module, such as 'addNamed' or 'addDefault'.")},Oh.prototype.addTemplateObject=function(){throw new Error("This function has been moved into the template literal transform itself.")},Oh.prototype.getModuleName=function(){return $Le()(this.opts,this.opts)};var kH,WLe=Ra,P0=tr,GLe=nn,KLe=ea,HLe=ft,zLe=me,XLe=Qs,JLe=Zs,YLe=hi,c5=Xt,QLe=Mn,$n=Ne,d5=Vt,p5=Oa,A0=cR,DH=Jt,ZLe=vn,f5=Br,h5=Sr,eMe=function(r){return xt.statement(kH||(kH=se([` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); + `])))(r)};function tMe(e){var r=$n("babelHelpers"),s=[],l=QLe(null,[$n("global")],KLe(s)),u=A0([c5(HLe(l,[XLe(GLe("===",ZLe("typeof",$n("global")),DH("undefined")),$n("self"),$n("global"))]))]);return s.push(f5("var",[h5(r,P0("=",d5($n("global"),r),p5([])))])),I0(s,r,e),u}function rMe(e){var r=[],s=I0(r,null,e);return r.unshift(JLe(null,Object.keys(s).map(function(l){return YLe(zLe(s[l]),$n(l))}))),A0(r,[],"module")}function aMe(e){var r=$n("babelHelpers"),s=[];return s.push(f5("var",[h5(r,$n("global"))])),I0(s,r,e),A0([eMe({FACTORY_PARAMETERS:$n("global"),BROWSER_ARGUMENTS:P0("=",d5($n("root"),r),p5([])),COMMON_ARGUMENTS:$n("exports"),AMD_ARGUMENTS:WLe([DH("exports")]),FACTORY_BODY:s,UMD_ROOT:$n("this")})])}function nMe(e){var r=$n("babelHelpers"),s=[];s.push(f5("var",[h5(r,p5([]))]));var l=A0(s);return I0(s,r,e),s.push(c5(r)),l}function I0(e,r,s){var l=function(c){return r?d5(r,$n(c)):$n("_"+c)},u={};return LSe.forEach(function(o){if(!(s&&!s.includes(o))){var c=u[o]=l(o),f=uV(o,l,r?null:"_"+o,[],r?function(m,g,x){x(function(R){return P0("=",c,R)}),m.body.push(c5(P0("=",c,$n(g))))}:null),h=f.nodes;e.push.apply(e,fe(h))}}),u}function LH(e,r){r===void 0&&(r="global");var s,l={global:tMe,module:rMe,umd:aMe,var:nMe}[r];if(l)s=l(e);else throw new Error("Unsupported output type "+r);return Wd(s).code}var sMe=re().mark(BH),iMe=re().mark(FH),oMe=re().mark($H),lMe=re().mark(m5),uMe=re().mark(qH);function MH(e){return null}function BH(e){return re().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return s.abrupt("return",{filepath:e,directories:[],pkg:null,isPackage:!1});case 1:case"end":return s.stop()}},sMe)}function FH(e,r,s){return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.abrupt("return",{config:null,ignore:null});case 1:case"end":return u.stop()}},iMe)}function $H(e,r,s){return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.abrupt("return",null);case 1:case"end":return u.stop()}},oMe)}function m5(e,r,s,l){return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:throw new Error("Cannot load "+e+" relative to "+r+" in a browser");case 1:case"end":return o.stop()}},lMe)}function qH(e){return re().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return s.abrupt("return",null);case 1:case"end":return s.stop()}},uMe)}var cMe=[];function dMe(e,r){return null}function pMe(e,r){return null}function fMe(e,r){throw new Error("Cannot load plugin "+e+" relative to "+r+" in a browser")}function hMe(e,r){throw new Error("Cannot load preset "+e+" relative to "+r+" in a browser")}function UH(e){return er.env.BABEL_ENV||"production"}var VH=Symbol.for("gensync:v1:start"),WH=Symbol.for("gensync:v1:suspend"),mMe="GENSYNC_EXPECTED_START",yMe="GENSYNC_EXPECTED_SUSPEND",GH="GENSYNC_OPTIONS_ERROR",KH="GENSYNC_RACE_NONEMPTY",gMe="GENSYNC_ERRBACK_NO_CALLBACK",qn=Object.assign(function(r){var s=r;return typeof r!="function"?s=bMe(r):s=xMe(r),Object.assign(s,vMe(s))},{all:y5({name:"all",arity:1,sync:function(r){var s=Array.from(r[0]);return s.map(function(l){return g5(l)})},async:function(r,s,l){var u=Array.from(r[0]);if(u.length===0){Promise.resolve().then(function(){return s([])});return}var o=0,c=u.map(function(){});u.forEach(function(f,h){C0(f,function(m){c[h]=m,o+=1,o===c.length&&s(c)},l)})}}),race:y5({name:"race",arity:1,sync:function(r){var s=Array.from(r[0]);if(s.length===0)throw hc("Must race at least 1 item",KH);return g5(s[0])},async:function(r,s,l){var u=Array.from(r[0]);if(u.length===0)throw hc("Must race at least 1 item",KH);for(var o=0,c=u;o<c.length;o++){var f=c[o];C0(f,s,l)}}})});function vMe(e){var r={sync:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return g5(e.apply(this,u))},async:function(){for(var l=this,u=arguments.length,o=new Array(u),c=0;c<u;c++)o[c]=arguments[c];return new Promise(function(f,h){C0(e.apply(l,o),f,h)})},errback:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];var c=u.pop();if(typeof c!="function")throw hc("Asynchronous function called without callback",gMe);var f;try{f=e.apply(this,u)}catch(h){c(h);return}C0(f,function(h){return c(void 0,h)},function(h){return c(h)})}};return r}function _h(e,r,s,l){if(!(typeof s===e||l&&typeof s>"u")){var u;throw l?u="Expected opts."+r+" to be either a "+e+", or undefined.":u="Expected opts."+r+" to be a "+e+".",hc(u,GH)}}function hc(e,r){return Object.assign(new Error(e),{code:r})}function bMe(e){var r=e.name,s=e.arity,l=e.sync,u=e.async,o=e.errback;if(_h("string","name",r,!0),_h("number","arity",s,!0),_h("function","sync",l),_h("function","async",u,!0),_h("function","errback",o,!0),u&&o)throw hc("Expected one of either opts.async or opts.errback, but got _both_.",GH);if(typeof r!="string"){var c;o&&o.name&&o.name!=="errback"&&(c=o.name),u&&u.name&&u.name!=="async"&&(c=u.name.replace(/Async$/,"")),l&&l.name&&l.name!=="sync"&&(c=l.name.replace(/Sync$/,"")),typeof c=="string"&&(r=c)}return typeof s!="number"&&(s=l.length),y5({name:r,arity:s,sync:function(h){return l.apply(this,h)},async:function(h,m,g){u?u.apply(this,h).then(m,g):o?o.call.apply(o,[this].concat(fe(h),[function(x,R){x==null?m(R):g(x)}])):m(l.apply(this,h))}})}function xMe(e){return XH(e.name,e.length,function(){for(var r=arguments.length,s=new Array(r),l=0;l<r;l++)s[l]=arguments[l];return e.apply(this,s)})}function y5(e){var r=e.name,s=e.arity,l=e.sync,u=e.async;return XH(r,s,re().mark(function o(){var c,f,h,m,g,x,R=arguments;return re().wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return T.next=2,VH;case 2:for(c=T.sent,f=R.length,h=new Array(f),m=0;m<f;m++)h[m]=R[m];if(c){T.next=7;break}return g=l.call(this,h),T.abrupt("return",g);case 7:try{u.call(this,h,function(I){x||(x={value:I},c())},function(I){x||(x={err:I},c())})}catch(I){x={err:I},c()}return T.next=10,WH;case 10:if(!x.hasOwnProperty("err")){T.next=12;break}throw x.err;case 12:return T.abrupt("return",x.value);case 13:case"end":return T.stop()}},o,this)}))}function g5(e){for(var r;!(s=e.next(),r=s.value,s).done;){var s;HH(r,e)}return r}function C0(e,r,s){(function l(){try{for(var u,o=function(){HH(u,e);var m=!0,g=!1,x=e.next(function(){m?g=!0:l()});if(m=!1,RMe(x,e),!g)return{v:void 0}},c;!(f=e.next(),u=f.value,f).done;){var f;if(c=o(),c)return c.v}return r(u)}catch(h){return s(h)}})()}function HH(e,r){e!==VH&&zH(r,hc("Got unexpected yielded value in gensync generator: "+JSON.stringify(e)+". Did you perhaps mean to use 'yield*' instead of 'yield'?",mMe))}function RMe(e,r){var s=e.value,l=e.done;!l&&s===WH||zH(r,hc(l?"Unexpected generator completion. If you get this, it is probably a gensync bug.":"Expected GENSYNC_SUSPEND, got "+JSON.stringify(s)+". If you get this, it is probably a gensync bug.",yMe))}function zH(e,r){throw e.throw&&e.throw(r),r}function XH(e,r,s){if(typeof e=="string"){var l=Object.getOwnPropertyDescriptor(s,"name");(!l||l.configurable)&&Object.defineProperty(s,"name",Object.assign(l||{},{configurable:!0,value:e}))}if(typeof r=="number"){var u=Object.getOwnPropertyDescriptor(s,"length");(!u||u.configurable)&&Object.defineProperty(s,"length",Object.assign(u||{},{configurable:!0,value:r}))}return s}var JH=qn(re().mark(function e(r){return re().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return l.delegateYield(r,"t0",1);case 1:return l.abrupt("return",l.t0);case 2:case"end":return l.stop()}},e)})),YH=qn({sync:function(){return!1},errback:function(r){return r(null,!0)}});function QH(e,r){return qn({sync:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];var c=e.apply(this,u);if(j0(c))throw new Error(r);return c},async:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return Promise.resolve(e.apply(this,u))}})}var EMe=qn({sync:function(r){return r("sync")},async:function(){var e=E(re().mark(function s(l){return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",l("async"));case 1:case"end":return o.stop()}},s)}));function r(s){return e.apply(this,arguments)}return r}()});function SMe(e,r){var s=qn(e);return EMe(function(l){var u=s[l];return r(u)})}var TMe=qn({name:"onFirstPause",arity:2,sync:function(r){return JH.sync(r)},errback:function(r,s,l){var u=!1;JH.errback(r,function(o,c){u=!0,l(o,c)}),u||s()}}),ZH=qn({sync:function(r){return r},async:function(){var e=E(re().mark(function s(l){return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",l);case 1:case"end":return o.stop()}},s)}));function r(s){return e.apply(this,arguments)}return r}()});function j0(e){return!!e&&(typeof e=="object"||typeof e=="function")&&!!e.then&&typeof e.then=="function"}function v5(e,r){for(var s=0,l=Object.keys(r);s<l.length;s++){var u=l[s];if((u==="parserOpts"||u==="generatorOpts"||u==="assumptions")&&r[u]){var o=r[u],c=e[u]||(e[u]={});wMe(c,o)}else{var f=r[u];f!==void 0&&(e[u]=f)}}}function wMe(e,r){for(var s=0,l=Object.keys(r);s<l.length;s++){var u=l[s],o=r[u];o!==void 0&&(e[u]=o)}}function PMe(e){return!!e&&typeof e.next=="function"&&typeof e[Symbol.iterator]=="function"}function O0(e){return Object.freeze(e)}function AMe(e){for(var r=new Set,s=[e];s.length>0;)for(var l=C(s.pop()),u;!(u=l()).done;){var o=u.value;Array.isArray(o)?s.push(o):r.add(o)}return r}var _0=_(function(r,s,l,u){u===void 0&&(u=O0([])),this.key=void 0,this.manipulateOptions=void 0,this.post=void 0,this.pre=void 0,this.visitor=void 0,this.parserOverride=void 0,this.generatorOverride=void 0,this.options=void 0,this.externalDependencies=void 0,this.key=r.name||l,this.manipulateOptions=r.manipulateOptions,this.post=r.post,this.pre=r.pre,this.visitor=r.visitor||{},this.parserOverride=r.parserOverride,this.generatorOverride=r.generatorOverride,this.options=s,this.externalDependencies=u});function ez(e){var r,s,l=!1;return re().mark(function u(){var o,c;return re().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:if(r){h.next=32;break}if(!s){h.next=5;break}return l=!0,h.delegateYield(ZH(s),"t0",4);case 4:return h.abrupt("return",h.t0);case 5:return h.delegateYield(YH(),"t1",6);case 6:if(h.t1){h.next=18;break}return h.prev=7,h.delegateYield(e(),"t2",9);case 9:h.t3=h.t2,r={ok:!0,value:h.t3},h.next=16;break;case 13:h.prev=13,h.t4=h.catch(7),r={ok:!1,value:h.t4};case 16:h.next=32;break;case 18:return s=new Promise(function(m,g){o=m,c=g}),h.prev=19,h.delegateYield(e(),"t5",21);case 21:h.t6=h.t5,r={ok:!0,value:h.t6},s=null,l&&o(r.value),h.next=32;break;case 27:h.prev=27,h.t7=h.catch(19),r={ok:!1,value:h.t7},s=null,l&&c(h.t7);case 32:if(!r.ok){h.next=36;break}return h.abrupt("return",r.value);case 36:throw r.value;case 37:case"end":return h.stop()}},u,null,[[7,13],[19,27]])})}var IMe=re().mark(rz),CMe=re().mark(R5),jMe=re().mark(nz),tz=function(r){return qn(r).sync};function rz(){return re().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",!0);case 1:case"end":return r.stop()}},IMe)}function b5(e){return az(WeakMap,e)}function Ds(e){return tz(b5(e))}function x5(e){return az(Map,e)}function Vo(e){return tz(x5(e))}function az(e,r){var s=new e,l=new e,u=new e;return re().mark(function o(c,f){var h,m,g,x,R,w,T;return re().wrap(function(P){for(;;)switch(P.prev=P.next){case 0:return P.delegateYield(YH(),"t0",1);case 1:return h=P.t0,m=h?l:s,P.delegateYield(nz(h,m,u,c,f),"t1",4);case 4:if(g=P.t1,!g.valid){P.next=7;break}return P.abrupt("return",g.value);case 7:if(x=new _Me(f),R=r(c,x),!PMe(R)){P.next=14;break}return P.delegateYield(TMe(R,function(){w=OMe(x,u,c)}),"t2",11);case 11:T=P.t2,P.next=15;break;case 14:T=R;case 15:return sz(m,x,c,T),w&&(u.delete(c),w.release(T)),P.abrupt("return",T);case 18:case"end":return P.stop()}},o)})}function R5(e,r,s){var l,u,o,c,f,h;return re().wrap(function(g){for(;;)switch(g.prev=g.next){case 0:if(l=e.get(r),!l){g.next=10;break}u=C(l);case 3:if((o=u()).done){g.next=10;break}return c=o.value,f=c.value,h=c.valid,g.delegateYield(h(s),"t0",6);case 6:if(!g.t0){g.next=8;break}return g.abrupt("return",{valid:!0,value:f});case 8:g.next=3;break;case 10:return g.abrupt("return",{valid:!1,value:null});case 11:case"end":return g.stop()}},CMe)}function nz(e,r,s,l,u){var o,c,f;return re().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return m.delegateYield(R5(r,l,u),"t0",1);case 1:if(o=m.t0,!o.valid){m.next=4;break}return m.abrupt("return",o);case 4:if(!e){m.next=11;break}return m.delegateYield(R5(s,l,u),"t1",6);case 6:if(c=m.t1,!c.valid){m.next=11;break}return m.delegateYield(ZH(c.value.promise),"t2",9);case 9:return f=m.t2,m.abrupt("return",{valid:!0,value:f});case 11:return m.abrupt("return",{valid:!1,value:null});case 12:case"end":return m.stop()}},jMe)}function OMe(e,r,s){var l=new kMe;return sz(r,e,s,l),l}function sz(e,r,s,l){r.configured()||r.forever();var u=e.get(s);switch(r.deactivate(),r.mode()){case"forever":u=[{value:l,valid:rz}],e.set(s,u);break;case"invalidate":u=[{value:l,valid:r.validator()}],e.set(s,u);break;case"valid":u?u.push({value:l,valid:r.validator()}):(u=[{value:l,valid:r.validator()}],e.set(s,u))}}var _Me=function(){function e(s){this._active=!0,this._never=!1,this._forever=!1,this._invalidate=!1,this._configured=!1,this._pairs=[],this._data=void 0,this._data=s}var r=e.prototype;return r.simple=function(){return NMe(this)},r.mode=function(){return this._never?"never":this._forever?"forever":this._invalidate?"invalidate":"valid"},r.forever=function(){if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._never)throw new Error("Caching has already been configured with .never()");this._forever=!0,this._configured=!0},r.never=function(){if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._forever)throw new Error("Caching has already been configured with .forever()");this._never=!0,this._configured=!0},r.using=function(l){var u=this;if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._never||this._forever)throw new Error("Caching has already been configured with .never or .forever()");this._configured=!0;var o=l(this._data),c=QH(l,"You appear to be using an async cache handler, but Babel has been called synchronously");return j0(o)?o.then(function(f){return u._pairs.push([f,c]),f}):(this._pairs.push([o,c]),o)},r.invalidate=function(l){return this._invalidate=!0,this.using(l)},r.validator=function(){var l=this._pairs;return re().mark(function u(o){var c,f,h,m,g;return re().wrap(function(R){for(;;)switch(R.prev=R.next){case 0:c=C(l);case 1:if((f=c()).done){R.next=10;break}return h=je(f.value,2),m=h[0],g=h[1],R.t0=m,R.delegateYield(g(o),"t1",5);case 5:if(R.t2=R.t1,R.t0===R.t2){R.next=8;break}return R.abrupt("return",!1);case 8:R.next=1;break;case 10:return R.abrupt("return",!0);case 11:case"end":return R.stop()}},u)})},r.deactivate=function(){this._active=!1},r.configured=function(){return this._configured},_(e)}();function NMe(e){function r(s){if(typeof s=="boolean"){s?e.forever():e.never();return}return e.using(function(){return Nh(s())})}return r.forever=function(){return e.forever()},r.never=function(){return e.never()},r.using=function(s){return e.using(function(){return Nh(s())})},r.invalidate=function(s){return e.invalidate(function(){return Nh(s())})},r}function Nh(e){if(j0(e))throw new Error("You appear to be using an async cache handler, which your current version of Babel does not support. We may add support for this in the future, but if you're on the most recent version of @babel/core and still seeing this error, then you'll need to synchronously handle your caching logic.");if(e!=null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number")throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");return e}var kMe=function(){function e(){var s=this;this.released=!1,this.promise=void 0,this._resolve=void 0,this.promise=new Promise(function(l){s._resolve=l})}var r=e.prototype;return r.release=function(l){this.released=!0,this._resolve(l)},_(e)}(),DMe=[{name:"nodejs",version:"0.2.0",date:"2011-08-26",lts:!1,security:!1,v8:"2.3.8.0"},{name:"nodejs",version:"0.3.0",date:"2011-08-26",lts:!1,security:!1,v8:"2.5.1.0"},{name:"nodejs",version:"0.4.0",date:"2011-08-26",lts:!1,security:!1,v8:"3.1.2.0"},{name:"nodejs",version:"0.5.0",date:"2011-08-26",lts:!1,security:!1,v8:"3.1.8.25"},{name:"nodejs",version:"0.6.0",date:"2011-11-04",lts:!1,security:!1,v8:"3.6.6.6"},{name:"nodejs",version:"0.7.0",date:"2012-01-17",lts:!1,security:!1,v8:"3.8.6.0"},{name:"nodejs",version:"0.8.0",date:"2012-06-22",lts:!1,security:!1,v8:"3.11.10.10"},{name:"nodejs",version:"0.9.0",date:"2012-07-20",lts:!1,security:!1,v8:"3.11.10.15"},{name:"nodejs",version:"0.10.0",date:"2013-03-11",lts:!1,security:!1,v8:"3.14.5.8"},{name:"nodejs",version:"0.11.0",date:"2013-03-28",lts:!1,security:!1,v8:"3.17.13.0"},{name:"nodejs",version:"0.12.0",date:"2015-02-06",lts:!1,security:!1,v8:"3.28.73.0"},{name:"nodejs",version:"4.0.0",date:"2015-09-08",lts:!1,security:!1,v8:"4.5.103.30"},{name:"nodejs",version:"4.1.0",date:"2015-09-17",lts:!1,security:!1,v8:"4.5.103.33"},{name:"nodejs",version:"4.2.0",date:"2015-10-12",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.3.0",date:"2016-02-09",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.4.0",date:"2016-03-08",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.5.0",date:"2016-08-16",lts:"Argon",security:!1,v8:"4.5.103.37"},{name:"nodejs",version:"4.6.0",date:"2016-09-27",lts:"Argon",security:!0,v8:"4.5.103.37"},{name:"nodejs",version:"4.7.0",date:"2016-12-06",lts:"Argon",security:!1,v8:"4.5.103.43"},{name:"nodejs",version:"4.8.0",date:"2017-02-21",lts:"Argon",security:!1,v8:"4.5.103.45"},{name:"nodejs",version:"4.9.0",date:"2018-03-28",lts:"Argon",security:!0,v8:"4.5.103.53"},{name:"nodejs",version:"5.0.0",date:"2015-10-29",lts:!1,security:!1,v8:"4.6.85.28"},{name:"nodejs",version:"5.1.0",date:"2015-11-17",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.2.0",date:"2015-12-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.3.0",date:"2015-12-15",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.4.0",date:"2016-01-06",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.5.0",date:"2016-01-21",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.6.0",date:"2016-02-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.7.0",date:"2016-02-23",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.8.0",date:"2016-03-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.9.0",date:"2016-03-16",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.10.0",date:"2016-04-01",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.11.0",date:"2016-04-21",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.12.0",date:"2016-06-23",lts:!1,security:!1,v8:"4.6.85.32"},{name:"nodejs",version:"6.0.0",date:"2016-04-26",lts:!1,security:!1,v8:"5.0.71.35"},{name:"nodejs",version:"6.1.0",date:"2016-05-05",lts:!1,security:!1,v8:"5.0.71.35"},{name:"nodejs",version:"6.2.0",date:"2016-05-17",lts:!1,security:!1,v8:"5.0.71.47"},{name:"nodejs",version:"6.3.0",date:"2016-07-06",lts:!1,security:!1,v8:"5.0.71.52"},{name:"nodejs",version:"6.4.0",date:"2016-08-12",lts:!1,security:!1,v8:"5.0.71.60"},{name:"nodejs",version:"6.5.0",date:"2016-08-26",lts:!1,security:!1,v8:"5.1.281.81"},{name:"nodejs",version:"6.6.0",date:"2016-09-14",lts:!1,security:!1,v8:"5.1.281.83"},{name:"nodejs",version:"6.7.0",date:"2016-09-27",lts:!1,security:!0,v8:"5.1.281.83"},{name:"nodejs",version:"6.8.0",date:"2016-10-12",lts:!1,security:!1,v8:"5.1.281.84"},{name:"nodejs",version:"6.9.0",date:"2016-10-18",lts:"Boron",security:!1,v8:"5.1.281.84"},{name:"nodejs",version:"6.10.0",date:"2017-02-21",lts:"Boron",security:!1,v8:"5.1.281.93"},{name:"nodejs",version:"6.11.0",date:"2017-06-06",lts:"Boron",security:!1,v8:"5.1.281.102"},{name:"nodejs",version:"6.12.0",date:"2017-11-06",lts:"Boron",security:!1,v8:"5.1.281.108"},{name:"nodejs",version:"6.13.0",date:"2018-02-10",lts:"Boron",security:!1,v8:"5.1.281.111"},{name:"nodejs",version:"6.14.0",date:"2018-03-28",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"6.15.0",date:"2018-11-27",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"6.16.0",date:"2018-12-26",lts:"Boron",security:!1,v8:"5.1.281.111"},{name:"nodejs",version:"6.17.0",date:"2019-02-28",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"7.0.0",date:"2016-10-25",lts:!1,security:!1,v8:"5.4.500.36"},{name:"nodejs",version:"7.1.0",date:"2016-11-08",lts:!1,security:!1,v8:"5.4.500.36"},{name:"nodejs",version:"7.2.0",date:"2016-11-22",lts:!1,security:!1,v8:"5.4.500.43"},{name:"nodejs",version:"7.3.0",date:"2016-12-20",lts:!1,security:!1,v8:"5.4.500.45"},{name:"nodejs",version:"7.4.0",date:"2017-01-04",lts:!1,security:!1,v8:"5.4.500.45"},{name:"nodejs",version:"7.5.0",date:"2017-01-31",lts:!1,security:!1,v8:"5.4.500.48"},{name:"nodejs",version:"7.6.0",date:"2017-02-21",lts:!1,security:!1,v8:"5.5.372.40"},{name:"nodejs",version:"7.7.0",date:"2017-02-28",lts:!1,security:!1,v8:"5.5.372.41"},{name:"nodejs",version:"7.8.0",date:"2017-03-29",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"7.9.0",date:"2017-04-11",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"7.10.0",date:"2017-05-02",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"8.0.0",date:"2017-05-30",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.1.0",date:"2017-06-08",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.2.0",date:"2017-07-19",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.3.0",date:"2017-08-08",lts:!1,security:!1,v8:"6.0.286.52"},{name:"nodejs",version:"8.4.0",date:"2017-08-15",lts:!1,security:!1,v8:"6.0.286.52"},{name:"nodejs",version:"8.5.0",date:"2017-09-12",lts:!1,security:!1,v8:"6.0.287.53"},{name:"nodejs",version:"8.6.0",date:"2017-09-26",lts:!1,security:!1,v8:"6.0.287.53"},{name:"nodejs",version:"8.7.0",date:"2017-10-11",lts:!1,security:!1,v8:"6.1.534.42"},{name:"nodejs",version:"8.8.0",date:"2017-10-24",lts:!1,security:!1,v8:"6.1.534.42"},{name:"nodejs",version:"8.9.0",date:"2017-10-31",lts:"Carbon",security:!1,v8:"6.1.534.46"},{name:"nodejs",version:"8.10.0",date:"2018-03-06",lts:"Carbon",security:!1,v8:"6.2.414.50"},{name:"nodejs",version:"8.11.0",date:"2018-03-28",lts:"Carbon",security:!0,v8:"6.2.414.50"},{name:"nodejs",version:"8.12.0",date:"2018-09-10",lts:"Carbon",security:!1,v8:"6.2.414.66"},{name:"nodejs",version:"8.13.0",date:"2018-11-20",lts:"Carbon",security:!1,v8:"6.2.414.72"},{name:"nodejs",version:"8.14.0",date:"2018-11-27",lts:"Carbon",security:!0,v8:"6.2.414.72"},{name:"nodejs",version:"8.15.0",date:"2018-12-26",lts:"Carbon",security:!1,v8:"6.2.414.75"},{name:"nodejs",version:"8.16.0",date:"2019-04-16",lts:"Carbon",security:!1,v8:"6.2.414.77"},{name:"nodejs",version:"8.17.0",date:"2019-12-17",lts:"Carbon",security:!0,v8:"6.2.414.78"},{name:"nodejs",version:"9.0.0",date:"2017-10-31",lts:!1,security:!1,v8:"6.2.414.32"},{name:"nodejs",version:"9.1.0",date:"2017-11-07",lts:!1,security:!1,v8:"6.2.414.32"},{name:"nodejs",version:"9.2.0",date:"2017-11-14",lts:!1,security:!1,v8:"6.2.414.44"},{name:"nodejs",version:"9.3.0",date:"2017-12-12",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.4.0",date:"2018-01-10",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.5.0",date:"2018-01-31",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.6.0",date:"2018-02-21",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.7.0",date:"2018-03-01",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.8.0",date:"2018-03-07",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.9.0",date:"2018-03-21",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.10.0",date:"2018-03-28",lts:!1,security:!0,v8:"6.2.414.46"},{name:"nodejs",version:"9.11.0",date:"2018-04-04",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"10.0.0",date:"2018-04-24",lts:!1,security:!1,v8:"6.6.346.24"},{name:"nodejs",version:"10.1.0",date:"2018-05-08",lts:!1,security:!1,v8:"6.6.346.27"},{name:"nodejs",version:"10.2.0",date:"2018-05-23",lts:!1,security:!1,v8:"6.6.346.32"},{name:"nodejs",version:"10.3.0",date:"2018-05-29",lts:!1,security:!1,v8:"6.6.346.32"},{name:"nodejs",version:"10.4.0",date:"2018-06-06",lts:!1,security:!1,v8:"6.7.288.43"},{name:"nodejs",version:"10.5.0",date:"2018-06-20",lts:!1,security:!1,v8:"6.7.288.46"},{name:"nodejs",version:"10.6.0",date:"2018-07-04",lts:!1,security:!1,v8:"6.7.288.46"},{name:"nodejs",version:"10.7.0",date:"2018-07-18",lts:!1,security:!1,v8:"6.7.288.49"},{name:"nodejs",version:"10.8.0",date:"2018-08-01",lts:!1,security:!1,v8:"6.7.288.49"},{name:"nodejs",version:"10.9.0",date:"2018-08-15",lts:!1,security:!1,v8:"6.8.275.24"},{name:"nodejs",version:"10.10.0",date:"2018-09-06",lts:!1,security:!1,v8:"6.8.275.30"},{name:"nodejs",version:"10.11.0",date:"2018-09-19",lts:!1,security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.12.0",date:"2018-10-10",lts:!1,security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.13.0",date:"2018-10-30",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.14.0",date:"2018-11-27",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.15.0",date:"2018-12-26",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.16.0",date:"2019-05-28",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.17.0",date:"2019-10-22",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.18.0",date:"2019-12-17",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.19.0",date:"2020-02-05",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.20.0",date:"2020-03-26",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.21.0",date:"2020-06-02",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.22.0",date:"2020-07-21",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.23.0",date:"2020-10-27",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.24.0",date:"2021-02-23",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"11.0.0",date:"2018-10-23",lts:!1,security:!1,v8:"7.0.276.28"},{name:"nodejs",version:"11.1.0",date:"2018-10-30",lts:!1,security:!1,v8:"7.0.276.32"},{name:"nodejs",version:"11.2.0",date:"2018-11-15",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.3.0",date:"2018-11-27",lts:!1,security:!0,v8:"7.0.276.38"},{name:"nodejs",version:"11.4.0",date:"2018-12-07",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.5.0",date:"2018-12-18",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.6.0",date:"2018-12-26",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.7.0",date:"2019-01-17",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.8.0",date:"2019-01-24",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.9.0",date:"2019-01-30",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.10.0",date:"2019-02-14",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.11.0",date:"2019-03-05",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.12.0",date:"2019-03-14",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.13.0",date:"2019-03-28",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.14.0",date:"2019-04-10",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.15.0",date:"2019-04-30",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"12.0.0",date:"2019-04-23",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.1.0",date:"2019-04-29",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.2.0",date:"2019-05-07",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.3.0",date:"2019-05-21",lts:!1,security:!1,v8:"7.4.288.27"},{name:"nodejs",version:"12.4.0",date:"2019-06-04",lts:!1,security:!1,v8:"7.4.288.27"},{name:"nodejs",version:"12.5.0",date:"2019-06-26",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.6.0",date:"2019-07-03",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.7.0",date:"2019-07-23",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.8.0",date:"2019-08-06",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.9.0",date:"2019-08-20",lts:!1,security:!1,v8:"7.6.303.29"},{name:"nodejs",version:"12.10.0",date:"2019-09-04",lts:!1,security:!1,v8:"7.6.303.29"},{name:"nodejs",version:"12.11.0",date:"2019-09-25",lts:!1,security:!1,v8:"7.7.299.11"},{name:"nodejs",version:"12.12.0",date:"2019-10-11",lts:!1,security:!1,v8:"7.7.299.13"},{name:"nodejs",version:"12.13.0",date:"2019-10-21",lts:"Erbium",security:!1,v8:"7.7.299.13"},{name:"nodejs",version:"12.14.0",date:"2019-12-17",lts:"Erbium",security:!0,v8:"7.7.299.13"},{name:"nodejs",version:"12.15.0",date:"2020-02-05",lts:"Erbium",security:!0,v8:"7.7.299.13"},{name:"nodejs",version:"12.16.0",date:"2020-02-11",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.17.0",date:"2020-05-26",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.18.0",date:"2020-06-02",lts:"Erbium",security:!0,v8:"7.8.279.23"},{name:"nodejs",version:"12.19.0",date:"2020-10-06",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.20.0",date:"2020-11-24",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.21.0",date:"2021-02-23",lts:"Erbium",security:!0,v8:"7.8.279.23"},{name:"nodejs",version:"12.22.0",date:"2021-03-30",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"13.0.0",date:"2019-10-22",lts:!1,security:!1,v8:"7.8.279.17"},{name:"nodejs",version:"13.1.0",date:"2019-11-05",lts:!1,security:!1,v8:"7.8.279.17"},{name:"nodejs",version:"13.2.0",date:"2019-11-21",lts:!1,security:!1,v8:"7.9.317.23"},{name:"nodejs",version:"13.3.0",date:"2019-12-03",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.4.0",date:"2019-12-17",lts:!1,security:!0,v8:"7.9.317.25"},{name:"nodejs",version:"13.5.0",date:"2019-12-18",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.6.0",date:"2020-01-07",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.7.0",date:"2020-01-21",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.8.0",date:"2020-02-05",lts:!1,security:!0,v8:"7.9.317.25"},{name:"nodejs",version:"13.9.0",date:"2020-02-18",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.10.0",date:"2020-03-04",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.11.0",date:"2020-03-12",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.12.0",date:"2020-03-26",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.13.0",date:"2020-04-14",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.14.0",date:"2020-04-29",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"14.0.0",date:"2020-04-21",lts:!1,security:!1,v8:"8.1.307.30"},{name:"nodejs",version:"14.1.0",date:"2020-04-29",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.2.0",date:"2020-05-05",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.3.0",date:"2020-05-19",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.4.0",date:"2020-06-02",lts:!1,security:!0,v8:"8.1.307.31"},{name:"nodejs",version:"14.5.0",date:"2020-06-30",lts:!1,security:!1,v8:"8.3.110.9"},{name:"nodejs",version:"14.6.0",date:"2020-07-20",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.7.0",date:"2020-07-29",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.8.0",date:"2020-08-11",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.9.0",date:"2020-08-27",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.10.0",date:"2020-09-08",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.11.0",date:"2020-09-15",lts:!1,security:!0,v8:"8.4.371.19"},{name:"nodejs",version:"14.12.0",date:"2020-09-22",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.13.0",date:"2020-09-29",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.14.0",date:"2020-10-15",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.15.0",date:"2020-10-27",lts:"Fermium",security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.16.0",date:"2021-02-23",lts:"Fermium",security:!0,v8:"8.4.371.19"},{name:"nodejs",version:"14.17.0",date:"2021-05-11",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.18.0",date:"2021-09-28",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.19.0",date:"2022-02-01",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.20.0",date:"2022-07-07",lts:"Fermium",security:!0,v8:"8.4.371.23"},{name:"nodejs",version:"14.21.0",date:"2022-11-01",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"15.0.0",date:"2020-10-20",lts:!1,security:!1,v8:"8.6.395.16"},{name:"nodejs",version:"15.1.0",date:"2020-11-04",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.2.0",date:"2020-11-10",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.3.0",date:"2020-11-24",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.4.0",date:"2020-12-09",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.5.0",date:"2020-12-22",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.6.0",date:"2021-01-14",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.7.0",date:"2021-01-25",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.8.0",date:"2021-02-02",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.9.0",date:"2021-02-18",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.10.0",date:"2021-02-23",lts:!1,security:!0,v8:"8.6.395.17"},{name:"nodejs",version:"15.11.0",date:"2021-03-03",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.12.0",date:"2021-03-17",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.13.0",date:"2021-03-31",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.14.0",date:"2021-04-06",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"16.0.0",date:"2021-04-20",lts:!1,security:!1,v8:"9.0.257.17"},{name:"nodejs",version:"16.1.0",date:"2021-05-04",lts:!1,security:!1,v8:"9.0.257.24"},{name:"nodejs",version:"16.2.0",date:"2021-05-19",lts:!1,security:!1,v8:"9.0.257.25"},{name:"nodejs",version:"16.3.0",date:"2021-06-03",lts:!1,security:!1,v8:"9.0.257.25"},{name:"nodejs",version:"16.4.0",date:"2021-06-23",lts:!1,security:!1,v8:"9.1.269.36"},{name:"nodejs",version:"16.5.0",date:"2021-07-14",lts:!1,security:!1,v8:"9.1.269.38"},{name:"nodejs",version:"16.6.0",date:"2021-07-29",lts:!1,security:!0,v8:"9.2.230.21"},{name:"nodejs",version:"16.7.0",date:"2021-08-18",lts:!1,security:!1,v8:"9.2.230.21"},{name:"nodejs",version:"16.8.0",date:"2021-08-25",lts:!1,security:!1,v8:"9.2.230.21"},{name:"nodejs",version:"16.9.0",date:"2021-09-07",lts:!1,security:!1,v8:"9.3.345.16"},{name:"nodejs",version:"16.10.0",date:"2021-09-22",lts:!1,security:!1,v8:"9.3.345.19"},{name:"nodejs",version:"16.11.0",date:"2021-10-08",lts:!1,security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.12.0",date:"2021-10-20",lts:!1,security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.13.0",date:"2021-10-26",lts:"Gallium",security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.14.0",date:"2022-02-08",lts:"Gallium",security:!1,v8:"9.4.146.24"},{name:"nodejs",version:"16.15.0",date:"2022-04-26",lts:"Gallium",security:!1,v8:"9.4.146.24"},{name:"nodejs",version:"16.16.0",date:"2022-07-07",lts:"Gallium",security:!0,v8:"9.4.146.24"},{name:"nodejs",version:"16.17.0",date:"2022-08-16",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.18.0",date:"2022-10-12",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.19.0",date:"2022-12-13",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.20.0",date:"2023-03-28",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"17.0.0",date:"2021-10-19",lts:!1,security:!1,v8:"9.5.172.21"},{name:"nodejs",version:"17.1.0",date:"2021-11-09",lts:!1,security:!1,v8:"9.5.172.25"},{name:"nodejs",version:"17.2.0",date:"2021-11-30",lts:!1,security:!1,v8:"9.6.180.14"},{name:"nodejs",version:"17.3.0",date:"2021-12-17",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.4.0",date:"2022-01-18",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.5.0",date:"2022-02-10",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.6.0",date:"2022-02-22",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.7.0",date:"2022-03-09",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.8.0",date:"2022-03-22",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.9.0",date:"2022-04-07",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"18.0.0",date:"2022-04-18",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.1.0",date:"2022-05-03",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.2.0",date:"2022-05-17",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.3.0",date:"2022-06-02",lts:!1,security:!1,v8:"10.2.154.4"},{name:"nodejs",version:"18.4.0",date:"2022-06-16",lts:!1,security:!1,v8:"10.2.154.4"},{name:"nodejs",version:"18.5.0",date:"2022-07-06",lts:!1,security:!0,v8:"10.2.154.4"},{name:"nodejs",version:"18.6.0",date:"2022-07-13",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.7.0",date:"2022-07-26",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.8.0",date:"2022-08-24",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.9.0",date:"2022-09-07",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.10.0",date:"2022-09-28",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.11.0",date:"2022-10-13",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.12.0",date:"2022-10-25",lts:"Hydrogen",security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.13.0",date:"2023-01-05",lts:"Hydrogen",security:!1,v8:"10.2.154.23"},{name:"nodejs",version:"18.14.0",date:"2023-02-01",lts:"Hydrogen",security:!1,v8:"10.2.154.23"},{name:"nodejs",version:"18.15.0",date:"2023-03-05",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.16.0",date:"2023-04-12",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.17.0",date:"2023-07-18",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.18.0",date:"2023-09-18",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.19.0",date:"2023-11-29",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"19.0.0",date:"2022-10-17",lts:!1,security:!1,v8:"10.7.193.13"},{name:"nodejs",version:"19.1.0",date:"2022-11-14",lts:!1,security:!1,v8:"10.7.193.20"},{name:"nodejs",version:"19.2.0",date:"2022-11-29",lts:!1,security:!1,v8:"10.8.168.20"},{name:"nodejs",version:"19.3.0",date:"2022-12-14",lts:!1,security:!1,v8:"10.8.168.21"},{name:"nodejs",version:"19.4.0",date:"2023-01-05",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.5.0",date:"2023-01-24",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.6.0",date:"2023-02-01",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.7.0",date:"2023-02-21",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.8.0",date:"2023-03-14",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.9.0",date:"2023-04-10",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"20.0.0",date:"2023-04-17",lts:!1,security:!1,v8:"11.3.244.4"},{name:"nodejs",version:"20.1.0",date:"2023-05-03",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.2.0",date:"2023-05-16",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.3.0",date:"2023-06-08",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.4.0",date:"2023-07-04",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.5.0",date:"2023-07-19",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.6.0",date:"2023-08-23",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.7.0",date:"2023-09-18",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.8.0",date:"2023-09-28",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.9.0",date:"2023-10-24",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.10.0",date:"2023-11-22",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"21.0.0",date:"2023-10-17",lts:!1,security:!1,v8:"11.8.172.13"},{name:"nodejs",version:"21.1.0",date:"2023-10-24",lts:!1,security:!1,v8:"11.8.172.15"},{name:"nodejs",version:"21.2.0",date:"2023-11-14",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.3.0",date:"2023-11-30",lts:!1,security:!1,v8:"11.8.172.17"}],iz={},oz={},LMe={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"};oz.browsers=LMe;var lz={},MMe={0:"25",1:"112",2:"113",3:"114",4:"115",5:"116",6:"117",7:"118",8:"119",9:"120",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"80",I:"126",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"20",w:"21",x:"22",y:"23",z:"24",AB:"121",BB:"122",CB:"123",DB:"124",EB:"125",FB:"5",GB:"19",HB:"26",IB:"27",JB:"28",KB:"29",LB:"30",MB:"31",NB:"32",OB:"33",PB:"34",QB:"35",RB:"36",SB:"37",TB:"38",UB:"39",VB:"40",WB:"41",XB:"42",YB:"43",ZB:"44",aB:"45",bB:"46",cB:"47",dB:"48",eB:"49",fB:"50",gB:"51",hB:"52",iB:"53",jB:"54",kB:"55",lB:"56",mB:"57",nB:"58",oB:"60",pB:"62",qB:"63",rB:"64",sB:"65",tB:"66",uB:"67",vB:"68",wB:"69",xB:"70",yB:"71",zB:"72","0B":"73","1B":"74","2B":"75","3B":"76","4B":"77","5B":"78","6B":"127","7B":"11.1","8B":"12.1","9B":"15.5",AC:"16.0",BC:"17.0",CC:"18.0",DC:"3",EC:"59",FC:"61",GC:"82",HC:"128",IC:"129",JC:"3.2",KC:"10.1",LC:"15.2-15.3",MC:"15.4",NC:"16.1",OC:"16.2",PC:"16.3",QC:"16.4",RC:"16.5",SC:"17.1",TC:"17.2",UC:"17.3",VC:"17.4",WC:"17.5",XC:"17.6",YC:"11.5",ZC:"4.2-4.3",aC:"5.5",bC:"2",cC:"130",dC:"3.5",eC:"3.6",fC:"3.1",gC:"5.1",hC:"6.1",iC:"7.1",jC:"9.1",kC:"13.1",lC:"14.1",mC:"15.1",nC:"15.6",oC:"16.6",pC:"TP",qC:"9.5-9.6",rC:"10.0-10.1",sC:"10.5",tC:"10.6",uC:"11.6",vC:"4.0-4.1",wC:"5.0-5.1",xC:"6.0-6.1",yC:"7.0-7.1",zC:"8.1-8.4","0C":"9.0-9.2","1C":"9.3","2C":"10.0-10.2","3C":"10.3","4C":"11.0-11.2","5C":"11.3-11.4","6C":"12.0-12.1","7C":"12.2-12.5","8C":"13.0-13.1","9C":"13.2",AD:"13.3",BD:"13.4-13.7",CD:"14.0-14.4",DD:"14.5-14.8",ED:"15.0-15.1",FD:"15.6-15.8",GD:"16.6-16.7",HD:"all",ID:"2.1",JD:"2.2",KD:"2.3",LD:"4.1",MD:"4.4",ND:"4.4.3-4.4.4",OD:"5.0-5.4",PD:"6.2-6.4",QD:"7.2-7.4",RD:"8.2",SD:"9.2",TD:"11.1-11.2",UD:"12.0",VD:"13.0",WD:"14.0",XD:"15.0",YD:"19.0",ZD:"14.9",aD:"13.52",bD:"2.5",cD:"3.0-3.1"};lz.browserVersions=MMe;var BMe={A:{A:{K:0,D:0,E:.0271533,F:.0678831,A:0,B:.529489,aC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","aC","K","D","E","F","A","B","","",""],E:"IE",F:{aC:962323200,K:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968e3}},B:{A:{1:.00757,2:.011355,3:.01514,4:.00757,5:.00757,6:.011355,7:.00757,8:.01514,9:.034065,C:0,L:0,M:0,G:0,N:0,O:.003785,P:.041635,Q:0,H:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.011355,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:.003785,r:.00757,s:.064345,t:.003785,u:.00757,AB:.026495,BB:.064345,CB:.16654,DB:2.88417,EB:1.57834,I:.00757},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","G","N","O","P","Q","H","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","I","","",""],E:"Edge",F:{1:1680825600,2:1683158400,3:1685664e3,4:1689897600,5:1692576e3,6:1694649600,7:1697155200,8:1698969600,9:1701993600,C:1438128e3,L:1447286400,M:1470096e3,G:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,H:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152e3,DB:1713398400,EB:1715990400,I:1718841600},D:{C:"ms",L:"ms",M:"ms",G:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:0,2:.011355,3:0,4:.397425,5:0,6:.00757,7:.079485,8:0,9:.00757,bC:0,DC:0,J:.003785,FB:0,K:0,D:0,E:0,F:0,A:0,B:.018925,C:0,L:0,M:0,G:0,N:0,O:0,P:0,GB:0,v:0,w:0,x:0,y:0,z:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:.00757,ZB:.00757,aB:.00757,bB:0,cB:0,dB:0,eB:0,fB:.00757,gB:0,hB:.05299,iB:.003785,jB:.003785,kB:0,lB:.02271,mB:0,nB:0,EC:.003785,oB:0,FC:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":.01514,Q:0,H:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:.011355,Y:0,Z:0,a:0,b:0,c:0,d:.003785,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:.011355,m:.011355,n:0,o:0,p:0,q:0,r:.003785,s:.00757,t:0,u:0,AB:.00757,BB:.011355,CB:.01514,DB:.06813,EB:.844055,I:.738075,"6B":.003785,HC:0,IC:0,cC:0,dC:0,eC:0},B:"moz",C:["bC","DC","dC","eC","J","FB","K","D","E","F","A","B","C","L","M","G","N","O","P","GB","v","w","x","y","z","0","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","EC","oB","FC","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","Q","H","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","I","6B","HC","IC","cC"],E:"Firefox",F:{0:1379376e3,1:1681171200,2:1683590400,3:1686009600,4:1688428800,5:1690848e3,6:1693267200,7:1695686400,8:1698105600,9:1700524800,bC:1161648e3,DC:1213660800,dC:124632e4,eC:1264032e3,J:1300752e3,FB:1308614400,K:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,G:1342483200,N:1346112e3,O:1349740800,P:1353628800,GB:1357603200,v:1361232e3,w:1364860800,x:1368489600,y:1372118400,z:1375747200,HB:1386633600,IB:1391472e3,JB:1395100800,KB:1398729600,LB:1402358400,MB:1405987200,NB:1409616e3,OB:1413244800,PB:1417392e3,QB:1421107200,RB:1424736e3,SB:1428278400,TB:1431475200,UB:1435881600,VB:1439251200,WB:144288e4,XB:1446508800,YB:1450137600,ZB:1453852800,aB:1457395200,bB:1461628800,cB:1465257600,dB:1470096e3,eB:1474329600,fB:1479168e3,gB:1485216e3,hB:1488844800,iB:149256e4,jB:1497312e3,kB:1502150400,lB:1506556800,mB:1510617600,nB:1516665600,EC:1520985600,oB:1525824e3,FC:1529971200,pB:1536105600,qB:1540252800,rB:1544486400,sB:154872e4,tB:1552953600,uB:1558396800,vB:1562630400,wB:1567468800,xB:1571788800,yB:1575331200,zB:1578355200,"0B":1581379200,"1B":1583798400,"2B":1586304e3,"3B":1588636800,"4B":1591056e3,"5B":1593475200,Q:1595894400,H:1598313600,R:1600732800,GC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,AB:1702944e3,BB:1705968e3,CB:1708387200,DB:1710806400,EB:1713225600,I:1715644800,"6B":1718064e3,HC:null,IC:null,cC:null}},D:{A:{0:0,1:.041635,2:.09841,3:.109765,4:.04542,5:.230885,6:.102195,7:.08327,8:.09084,9:.185465,J:0,FB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,GB:0,v:0,w:0,x:0,y:0,z:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:.00757,QB:0,RB:0,SB:0,TB:.01514,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:.003785,bB:0,cB:.003785,dB:.02271,eB:.026495,fB:.011355,gB:0,hB:.003785,iB:.003785,jB:0,kB:0,lB:.011355,mB:0,nB:.003785,EC:0,oB:0,FC:.003785,pB:0,qB:.003785,rB:0,sB:0,tB:.02271,uB:.00757,vB:0,wB:.03028,xB:.064345,yB:.003785,zB:.003785,"0B":.011355,"1B":.00757,"2B":.00757,"3B":.00757,"4B":.00757,"5B":.01514,Q:.12112,H:.011355,R:.02271,S:.041635,T:.00757,U:.011355,V:.049205,W:.06813,X:.01514,Y:.011355,Z:.011355,a:.03785,b:.018925,c:.03028,d:.041635,e:.011355,f:.011355,g:.01514,h:.071915,i:.034065,j:.04542,k:.06813,l:.049205,m:.170325,n:.094625,o:.03028,p:.03785,q:.03028,r:.04542,s:1.49507,t:.026495,u:.03785,AB:.389855,BB:.29523,CB:1.11279,DB:12.6116,EB:4.62527,I:.018925,"6B":.00757,HC:0,IC:0},B:"webkit",C:["","","","","","","J","FB","K","D","E","F","A","B","C","L","M","G","N","O","P","GB","v","w","x","y","z","0","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","EC","oB","FC","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","Q","H","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","I","6B","HC","IC"],E:"Chrome",F:{0:1357862400,1:1680566400,2:1682985600,3:1685404800,4:1689724800,5:1692057600,6:1694476800,7:1696896e3,8:1698710400,9:1701993600,J:1264377600,FB:1274745600,K:1283385600,D:1287619200,E:1291248e3,F:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,G:1316131200,N:1319500800,O:1323734400,P:1328659200,GB:1332892800,v:133704e4,w:1340668800,x:1343692800,y:1348531200,z:1352246400,HB:1361404800,IB:1364428800,JB:1369094400,KB:1374105600,LB:1376956800,MB:1384214400,NB:1389657600,OB:1392940800,PB:1397001600,QB:1400544e3,RB:1405468800,SB:1409011200,TB:141264e4,UB:1416268800,VB:1421798400,WB:1425513600,XB:1429401600,YB:143208e4,ZB:1437523200,aB:1441152e3,bB:1444780800,cB:1449014400,dB:1453248e3,eB:1456963200,fB:1460592e3,gB:1464134400,hB:1469059200,iB:1472601600,jB:1476230400,kB:1480550400,lB:1485302400,mB:1489017600,nB:149256e4,EC:1496707200,oB:1500940800,FC:1504569600,pB:1508198400,qB:1512518400,rB:1516752e3,sB:1520294400,tB:1523923200,uB:1527552e3,vB:1532390400,wB:1536019200,xB:1539648e3,yB:1543968e3,zB:154872e4,"0B":1552348800,"1B":1555977600,"2B":1559606400,"3B":1564444800,"4B":1568073600,"5B":1571702400,Q:1575936e3,H:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,AB:1705968e3,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,I:1718064e3,"6B":null,HC:null,IC:null}},E:{A:{J:0,FB:0,K:0,D:0,E:.01514,F:.003785,A:0,B:0,C:0,L:.00757,M:.034065,G:.00757,fC:0,JC:0,gC:0,hC:0,iC:0,jC:0,KC:0,"7B":.00757,"8B":.01514,kC:.064345,lC:.09084,mC:.034065,LC:.011355,MC:.026495,"9B":.034065,nC:.246025,AC:.03028,NC:.049205,OC:.03785,PC:.09841,QC:.03028,RC:.06056,oC:.34065,BC:.03785,SC:.06813,TC:.08327,UC:.09841,VC:1.5405,WC:.185465,XC:0,CC:0,pC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fC","JC","J","FB","gC","K","hC","D","iC","E","F","jC","A","KC","B","7B","C","8B","L","kC","M","lC","G","mC","LC","MC","9B","nC","AC","NC","OC","PC","QC","RC","oC","BC","SC","TC","UC","VC","WC","XC","CC","pC"],E:"Safari",F:{fC:1205798400,JC:1226534400,J:1244419200,FB:1275868800,gC:131112e4,K:1343174400,hC:13824e5,D:13824e5,iC:1410998400,E:1413417600,F:1443657600,jC:1458518400,A:1474329600,KC:1490572800,B:1505779200,"7B":1522281600,C:1537142400,"8B":1553472e3,L:1568851200,kC:1585008e3,M:1600214400,lC:1619395200,G:1632096e3,mC:1635292800,LC:1639353600,MC:1647216e3,"9B":1652745600,nC:1658275200,AC:1662940800,NC:1666569600,OC:1670889600,PC:1674432e3,QC:1679875200,RC:1684368e3,oC:1690156800,BC:1695686400,SC:1698192e3,TC:1702252800,UC:1705881600,VC:1709596800,WC:1715558400,XC:null,CC:null,pC:null}},F:{A:{0:0,F:0,B:0,C:0,G:0,N:0,O:0,P:0,GB:0,v:0,w:0,x:0,y:0,z:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:.01514,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,Q:0,H:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.041635,f:0,g:0,h:0,i:0,j:0,k:0,l:.071915,m:0,n:0,o:0,p:.00757,q:.185465,r:.01514,s:.738075,t:.04542,u:0,qC:0,rC:0,sC:0,tC:0,"7B":0,YC:0,uC:0,"8B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","F","qC","rC","sC","tC","B","7B","YC","uC","C","8B","G","N","O","P","GB","v","w","x","y","z","0","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","Q","H","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","","",""],E:"Opera",F:{0:1413331200,F:1150761600,qC:1223424e3,rC:1251763200,sC:1267488e3,tC:1277942400,B:1292457600,"7B":1302566400,YC:1309219200,uC:1323129600,C:1323129600,"8B":1352073600,G:1372723200,N:1377561600,O:1381104e3,P:1386288e3,GB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616e3,HB:1417132800,IB:1422316800,JB:1425945600,KB:1430179200,LB:1433808e3,MB:1438646400,NB:1442448e3,OB:1445904e3,PB:1449100800,QB:1454371200,RB:1457308800,SB:146232e4,TB:1465344e3,UB:1470096e3,VB:1474329600,WB:1477267200,XB:1481587200,YB:1486425600,ZB:1490054400,aB:1494374400,bB:1498003200,cB:1502236800,dB:1506470400,eB:1510099200,fB:1515024e3,gB:1517961600,hB:1521676800,iB:1525910400,jB:1530144e3,kB:1534982400,lB:1537833600,mB:1543363200,nB:1548201600,oB:1554768e3,pB:1561593600,qB:1566259200,rB:1570406400,sB:1573689600,tB:1578441600,uB:1583971200,vB:1587513600,wB:1592956800,xB:1595894400,yB:1600128e3,zB:1603238400,"0B":161352e4,"1B":1612224e3,"2B":1616544e3,"3B":1619568e3,"4B":1623715200,"5B":1627948800,Q:1631577600,H:1633392e3,R:1635984e3,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600},D:{F:"o",B:"o",C:"o",qC:"o",rC:"o",sC:"o",tC:"o","7B":"o",YC:"o",uC:"o","8B":"o"}},G:{A:{E:0,JC:0,vC:0,ZC:.00289868,wC:.00289868,xC:.00724669,yC:.0115947,zC:.00289868,"0C":.00724669,"1C":.0333348,"2C":.00579735,"3C":.0521762,"4C":.0768149,"5C":.0144934,"6C":.00869603,"7C":.210154,"8C":.00434801,"9C":.0217401,AD:.0101454,BD:.0463788,CD:.100004,DD:.123194,ED:.0594229,LC:.0652202,MC:.0739162,"9B":.0927576,FD:.83192,AC:.189863,NC:.389872,OC:.189863,PC:.329,QC:.0695682,RC:.140586,GD:1.11744,BC:.121744,SC:.198559,TC:.207255,UC:.382625,VC:8.67429,WC:.61307,XC:0,CC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JC","vC","ZC","wC","xC","yC","E","zC","0C","1C","2C","3C","4C","5C","6C","7C","8C","9C","AD","BD","CD","DD","ED","LC","MC","9B","FD","AC","NC","OC","PC","QC","RC","GD","BC","SC","TC","UC","VC","WC","XC","CC",""],E:"Safari on iOS",F:{JC:1270252800,vC:1283904e3,ZC:1299628800,wC:1331078400,xC:1359331200,yC:1394409600,E:1410912e3,zC:1413763200,"0C":1442361600,"1C":1458518400,"2C":1473724800,"3C":1490572800,"4C":1505779200,"5C":1522281600,"6C":1537142400,"7C":1553472e3,"8C":1568851200,"9C":1572220800,AD:1580169600,BD:1585008e3,CD:1600214400,DD:1619395200,ED:1632096e3,LC:1639353600,MC:1647216e3,"9B":1652659200,FD:1658275200,AC:1662940800,NC:1666569600,OC:1670889600,PC:1674432e3,QC:1679875200,RC:1684368e3,GD:1690156800,BC:1694995200,SC:1698192e3,TC:1702252800,UC:1705881600,VC:1709596800,WC:1715558400,XC:null,CC:null}},H:{A:{HD:.1},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","HD","","",""],E:"Opera Mini",F:{HD:1426464e3}},I:{A:{DC:0,J:65879e-9,I:.656352,ID:0,JD:0,KD:0,LD:131758e-9,ZC:395274e-9,MD:0,ND:.00144934},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ID","JD","KD","DC","J","LD","ZC","MD","ND","I","","",""],E:"Android Browser",F:{ID:1256515200,JD:1274313600,KD:1291593600,DC:1298332800,J:1318896e3,LD:1341792e3,ZC:1374624e3,MD:1386547200,ND:1401667200,I:1718064e3}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,H:1.2238,"7B":0,YC:0,"8B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","7B","YC","C","8B","H","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,"7B":1314835200,YC:1318291200,C:1330300800,"8B":1349740800,H:1709769600},D:{H:"webkit"}},L:{A:{I:42.0636},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","","",""],E:"Chrome for Android",F:{I:1718064e3}},M:{A:{"6B":.31075},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","6B","","",""],E:"Firefox for Android",F:{"6B":1718064e3}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{"9B":.913605},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","","",""],E:"UC Browser for Android",F:{"9B":1710115200},D:{"9B":"webkit"}},P:{A:{0:1.98584,J:.141071,v:.0217032,w:.0542579,x:.0651095,y:.119367,z:.227883,OD:.0108516,PD:0,QD:.0325548,RD:0,SD:0,KC:0,TD:.0108516,UD:0,VD:.0108516,WD:0,XD:0,AC:0,BC:.0217032,CC:.0108516,YD:.0217032},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","OD","PD","QD","RD","SD","KC","TD","UD","VD","WD","XD","AC","BC","CC","YD","v","w","x","y","z","0","","",""],E:"Samsung Internet",F:{0:1715126400,J:1461024e3,OD:1481846400,PD:1509408e3,QD:1528329600,RD:1546128e3,SD:1554163200,KC:1567900800,TD:1582588800,UD:1593475200,VD:1605657600,WD:1618531200,XD:1629072e3,AC:1640736e3,BC:1651708800,CC:1659657600,YD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{ZD:.292105},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ZD","","",""],E:"QQ Browser",F:{ZD:1710288e3}},R:{A:{aD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","aD","","",""],E:"Baidu Browser",F:{aD:1710201600}},S:{A:{bD:.08701,cD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bD","cD","","",""],E:"KaiOS Browser",F:{bD:1527811200,cD:1631664e3}}},FMe=oz.browsers,E5=lz.browserVersions,uz=BMe;function cz(e){return Object.keys(e).reduce(function(r,s){return r[E5[s]]=e[s],r},{})}iz.agents=Object.keys(uz).reduce(function(e,r){var s=uz[r];return e[FMe[r]]=Object.keys(s).reduce(function(l,u){return u==="A"?l.usage_global=cz(s[u]):u==="C"?l.versions=s[u].reduce(function(o,c){return c===""?o.push(null):o.push(E5[c]),o},[]):u==="D"?l.prefix_exceptions=cz(s[u]):u==="E"?l.browser=s[u]:u==="F"?l.release_date=Object.keys(s[u]).reduce(function(o,c){return o[E5[c]]=s[u][c],o},{}):l.prefix=s[u],l},{}),e},{});var $Me={start:"2015-09-08",lts:"2015-10-12",maintenance:"2017-04-01",end:"2018-04-30",codename:"Argon"},qMe={start:"2015-10-29",maintenance:"2016-04-30",end:"2016-06-30"},UMe={start:"2016-04-26",lts:"2016-10-18",maintenance:"2018-04-30",end:"2019-04-30",codename:"Boron"},VMe={start:"2016-10-25",maintenance:"2017-04-30",end:"2017-06-30"},WMe={start:"2017-05-30",lts:"2017-10-31",maintenance:"2019-01-01",end:"2019-12-31",codename:"Carbon"},GMe={start:"2017-10-01",maintenance:"2018-04-01",end:"2018-06-30"},KMe={start:"2018-04-24",lts:"2018-10-30",maintenance:"2020-05-19",end:"2021-04-30",codename:"Dubnium"},HMe={start:"2018-10-23",maintenance:"2019-04-22",end:"2019-06-01"},zMe={start:"2019-04-23",lts:"2019-10-21",maintenance:"2020-11-30",end:"2022-04-30",codename:"Erbium"},XMe={start:"2019-10-22",maintenance:"2020-04-01",end:"2020-06-01"},JMe={start:"2020-04-21",lts:"2020-10-27",maintenance:"2021-10-19",end:"2023-04-30",codename:"Fermium"},YMe={start:"2020-10-20",maintenance:"2021-04-01",end:"2021-06-01"},QMe={start:"2021-04-20",lts:"2021-10-26",maintenance:"2022-10-18",end:"2023-09-11",codename:"Gallium"},ZMe={start:"2021-10-19",maintenance:"2022-04-01",end:"2022-06-01"},eBe={start:"2022-04-19",lts:"2022-10-25",maintenance:"2023-10-18",end:"2025-04-30",codename:"Hydrogen"},tBe={start:"2022-10-18",maintenance:"2023-04-01",end:"2023-06-01"},rBe={start:"2023-04-18",lts:"2023-10-24",maintenance:"2024-10-22",end:"2026-04-30",codename:"Iron"},aBe={start:"2023-10-17",maintenance:"2024-04-01",end:"2024-06-01"},nBe={start:"2024-04-23",lts:"2024-10-29",maintenance:"2025-10-21",end:"2027-04-30",codename:""},sBe={start:"2024-10-15",maintenance:"2025-04-01",end:"2025-06-01"},iBe={start:"2025-04-22",lts:"2025-10-28",maintenance:"2026-10-20",end:"2028-04-30",codename:""},oBe={"v0.8":{start:"2012-06-25",end:"2014-07-31"},"v0.10":{start:"2013-03-11",end:"2016-10-31"},"v0.12":{start:"2015-02-06",end:"2016-12-31"},v4:$Me,v5:qMe,v6:UMe,v7:VMe,v8:WMe,v9:GMe,v10:KMe,v11:HMe,v12:zMe,v13:XMe,v14:JMe,v15:YMe,v16:QMe,v17:ZMe,v18:eBe,v19:tBe,v20:rBe,v21:aBe,v22:nBe,v23:sBe,v24:iBe},lBe=Gu(wLe),uBe={"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","18.1":"100","18.2":"100","18.3":"100","19.0":"102","19.1":"102","20.0":"104","20.1":"104","20.2":"104","20.3":"104","21.0":"106","21.1":"106","21.2":"106","21.3":"106","21.4":"106","22.0":"108","22.1":"108","22.2":"108","22.3":"108","23.0":"110","23.1":"110","23.2":"110","23.3":"110","24.0":"112","24.1":"112","24.2":"112","24.3":"112","24.4":"112","24.5":"112","24.6":"112","24.7":"112","24.8":"112","25.0":"114","25.1":"114","25.2":"114","25.3":"114","25.4":"114","25.5":"114","25.6":"114","25.7":"114","25.8":"114","25.9":"114","26.0":"116","26.1":"116","26.2":"116","26.3":"116","26.4":"116","26.5":"116","26.6":"116","27.0":"118","27.1":"118","27.2":"118","27.3":"118","28.0":"120","28.1":"120","28.2":"120","28.3":"120","29.0":"122","29.1":"122","29.2":"122","29.3":"122","29.4":"122","30.0":"124","30.1":"124","31.0":"126","31.1":"126","32.0":"127"};function S5(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,S5)}S5.prototype=Error.prototype;var dz=S5,pz=/^\s+and\s+(.*)/i,fz=/^(?:,\s*|\s+or\s+)(.*)/i;function hz(e){return Array.isArray(e)?e.reduce(function(r,s){return r.concat(hz(s))},[]):[e]}function cBe(e,r){for(var s=1,l=e.length;s<=l;s++){var u=e.substr(-s,s);if(r(u,s,l))return e.slice(0,-s)}return""}function T5(e,r){var s={query:r};r.indexOf("not ")===0&&(s.not=!0,r=r.slice(4));for(var l in e){var u=e[l],o=r.match(u.regexp);if(o){s.type=l;for(var c=0;c<u.matches.length;c++)s[u.matches[c]]=o[c+1];return s}}return s.type="unknown",s}function dBe(e,r,s){var l;return cBe(r,function(u,o,c){return pz.test(u)?(l=T5(e,u.match(pz)[1]),l.compose="and",s.unshift(l),!0):fz.test(u)?(l=T5(e,u.match(fz)[1]),l.compose="or",s.unshift(l),!0):o===c?(l=T5(e,u.trim()),l.compose="or",s.unshift(l),!0):!1})}var pBe=function(r,s){return Array.isArray(s)||(s=[s]),hz(s.map(function(l){var u=[];do l=dBe(r,l,u);while(l);return u}))},N0=dz;function kh(){}var fBe={loadQueries:function(){throw new N0("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(r){return r.stats},loadConfig:function(r){if(r.config)throw new N0("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new N0("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new N0("Supports queries are not available in client-side build of Browserslist")},currentNode:function(r,s){return r(["maintained node versions"],s)[0]},parseConfig:kh,readConfig:kh,findConfig:kh,clearCaches:kh,oldDataWarning:kh,env:{}},hBe=DMe,Wo=iz.agents,w5=oBe,k0=lBe,qi=uBe,Ls=dz,mz=pBe,Hn=fBe,mBe=365.259641*24*60*60*1e3,yz="37",yBe=14;function gz(e,r){return(e+".").indexOf(r+".")===0}function gBe(e){var r=e.slice(1);return Er.nodeVersions.some(function(s){return gz(s,r)})}function vz(e){return e.filter(function(r){return typeof r=="string"})}function D0(e){var r=e;return e.split(".").length===3&&(r=e.split(".").slice(0,-1).join(".")),r}function tu(e){return function(s){return e+" "+s}}function P5(e){return parseInt(e.split(".")[0])}function L0(e,r){if(e.length===0)return[];var s=bz(e.map(P5)),l=s[s.length-r];if(!l)return e;for(var u=[],o=e.length-1;o>=0&&!(l>P5(e[o]));o--)u.unshift(e[o]);return u}function bz(e){for(var r=[],s=0;s<e.length;s++)r.indexOf(e[s])===-1&&r.push(e[s]);return r}function M0(e,r,s){for(var l in s)e[r+" "+l]=s[l]}function xz(e,r){return r=parseFloat(r),e===">"?function(s){return parseFloat(s)>r}:e===">="?function(s){return parseFloat(s)>=r}:e==="<"?function(s){return parseFloat(s)<r}:function(s){return parseFloat(s)<=r}}function vBe(e,r){return r=r.split(".").map(ru),r[1]=r[1]||0,r[2]=r[2]||0,e===">"?function(s){return s=s.split(".").map(ru),Dh(s,r)>0}:e===">="?function(s){return s=s.split(".").map(ru),Dh(s,r)>=0}:e==="<"?function(s){return s=s.split(".").map(ru),Dh(r,s)>0}:function(s){return s=s.split(".").map(ru),Dh(r,s)>=0}}function ru(e){return parseInt(e)}function B0(e,r){return e<r?-1:e>r?1:0}function Dh(e,r){return B0(parseInt(e[0]),parseInt(r[0]))||B0(parseInt(e[1]||"0"),parseInt(r[1]||"0"))||B0(parseInt(e[2]||"0"),parseInt(r[2]||"0"))}function Rz(e,r){switch(r=r.split(".").map(ru),typeof r[1]>"u"&&(r[1]="x"),e){case"<=":return function(s){return s=s.split(".").map(ru),Ez(s,r)<=0};case">=":default:return function(s){return s=s.split(".").map(ru),Ez(s,r)>=0}}}function Ez(e,r){return e[0]!==r[0]?e[0]<r[0]?-1:1:r[1]==="x"?0:e[1]!==r[1]?e[1]<r[1]?-1:1:0}function bBe(e,r){return e.versions.indexOf(r)!==-1?r:Er.versionAliases[e.name][r]?Er.versionAliases[e.name][r]:!1}function F0(e,r){var s=bBe(e,r);return s||(e.versions.length===1?e.versions[0]:!1)}function Sz(e,r){return e=e/1e3,Object.keys(Wo).reduce(function(s,l){var u=au(l,r);if(!u)return s;var o=Object.keys(u.releaseDate).filter(function(c){var f=u.releaseDate[c];return f!==null&&f>=e});return s.concat(o.map(tu(u.name)))},[])}function Tz(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function au(e,r){if(e=e.toLowerCase(),e=Er.aliases[e]||e,r.mobileToDesktop&&Er.desktopNames[e]){var s=Er.data[Er.desktopNames[e]];if(e==="android")return RBe(Tz(Er.data[e]),s);var l=Tz(s);return l.name=e,l}return Er.data[e]}function wz(e,r){var s=r.indexOf(yz);return e.filter(function(l){return/^(?:[2-4]\.|[34]$)/.test(l)}).concat(r.slice(s))}function xBe(e){var r={};for(var s in e)r[s]=e[s];return r}function RBe(e,r){return e.released=wz(e.released,r.released),e.versions=wz(e.versions,r.versions),e.releaseDate=xBe(e.releaseDate),e.released.forEach(function(s){e.releaseDate[s]===void 0&&(e.releaseDate[s]=r.releaseDate[s])}),e}function ep(e,r){var s=au(e,r);if(!s)throw new Ls("Unknown browser "+e);return s}function EBe(e){return new Ls("Unknown browser query `"+e+"`. Maybe you are using old Browserslist or made typo in query.")}function $0(e,r,s,l){var u=1;switch(r){case"android":if(l.mobileToDesktop)return e;var o=Er.data.chrome.released;u=o.length-o.indexOf(yz);break;case"op_mob":var c=Er.data.op_mob.released.slice(-1)[0];u=P5(c)-yBe+1;break;default:return e}return s<=u?e.slice(-1):e.slice(u-1-s)}function Pz(e,r){return typeof e=="string"&&(e.indexOf("y")>=0||r&&e.indexOf("a")>=0)}function tp(e,r){return mz(j5,e).reduce(function(s,l,u){if(l.not&&u===0)throw new Ls("Write any browsers query (for instance, `defaults`) before `"+l.query+"`");var o=j5[l.type],c=o.select.call(Er,r,l).map(function(h){var m=h.split(" ");return m[1]==="0"?m[0]+" "+au(m[0],r).versions[0]:h});if(l.compose==="and")return l.not?s.filter(function(h){return c.indexOf(h)===-1}):s.filter(function(h){return c.indexOf(h)!==-1});if(l.not){var f={};return c.forEach(function(h){f[h]=!0}),s.filter(function(h){return!f[h]})}return s.concat(c)},[])}function Az(e){return typeof e>"u"&&(e={}),typeof e.path>"u"&&(e.path=k0.resolve?k0.resolve("."):"."),e}function Iz(e,r){if(typeof e>"u"||e===null){var s=Er.loadConfig(r);s?e=s:e=Er.defaults}return e}function Cz(e){if(!(typeof e=="string"||Array.isArray(e)))throw new Ls("Browser queries must be an array or string. Got "+typeof e+".")}var A5={};function Er(e,r){r=Az(r),e=Iz(e,r),Cz(e);var s={ignoreUnknownVersions:r.ignoreUnknownVersions,dangerousExtend:r.dangerousExtend,mobileToDesktop:r.mobileToDesktop,path:r.path,env:r.env};Hn.oldDataWarning(Er.data);var l=Hn.getStat(r,Er.data);if(l){s.customUsage={};for(var u in l)M0(s.customUsage,u,l[u])}var o=JSON.stringify([e,s]);if(A5[o])return A5[o];var c=bz(tp(e,s)).sort(function(f,h){if(f=f.split(" "),h=h.split(" "),f[0]===h[0]){var m=f[1].split("-")[0],g=h[1].split("-")[0];return Dh(g.split("."),m.split("."))}else return B0(f[0],h[0])});return Hn.env.BROWSERSLIST_DISABLE_CACHE||(A5[o]=c),c}Er.parse=function(e,r){return r=Az(r),e=Iz(e,r),Cz(e),mz(j5,e)},Er.cache={},Er.data={},Er.usage={global:{},custom:null},Er.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],Er.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},Er.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},Er.versionAliases={},Er.clearCaches=Hn.clearCaches,Er.parseConfig=Hn.parseConfig,Er.readConfig=Hn.readConfig,Er.findConfig=Hn.findConfig,Er.loadConfig=Hn.loadConfig,Er.coverage=function(e,r){var s;if(typeof r>"u")s=Er.usage.global;else if(r==="my stats"){var l={};l.path=k0.resolve?k0.resolve("."):".";var u=Hn.getStat(l);if(!u)throw new Ls("Custom usage statistics was not provided");s={};for(var o in u)M0(s,o,u[o])}else if(typeof r=="string")r.length>2?r=r.toLowerCase():r=r.toUpperCase(),Hn.loadCountry(Er.usage,r,Er.data),s=Er.usage[r];else{"dataByBrowser"in r&&(r=r.dataByBrowser),s={};for(var c in r)for(var f in r[c])s[c+" "+f]=r[c][f]}return e.reduce(function(h,m){var g=s[m];return g===void 0&&(g=s[m.replace(/ \S+$/," 0")]),h+(g||0)},0)};function I5(e,r){var s=Er.nodeVersions.filter(function(l){return gz(l,r.version)});if(s.length===0){if(e.ignoreUnknownVersions)return[];throw new Ls("Unknown version "+r.version+" of Node.js")}return["node "+s[s.length-1]]}function C5(e,r){var s=parseInt(r.year),l=parseInt(r.month||"01")-1,u=parseInt(r.day||"01");return Sz(Date.UTC(s,l,u,0,0,0),e)}function jz(e,r){var s=parseFloat(r.coverage),l=Er.usage.global;if(r.place)if(r.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new Ls("Custom usage statistics was not provided");l=e.customUsage}else{var u;r.place.length===2?u=r.place.toUpperCase():u=r.place.toLowerCase(),Hn.loadCountry(Er.usage,u,Er.data),l=Er.usage[u]}for(var o=Object.keys(l).sort(function(g,x){return l[x]-l[g]}),c=0,f=[],h,m=0;m<o.length&&(h=o[m],!(l[h]===0||(c+=l[h],f.push(h),c>=s)));m++);return f}var j5={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(r,s){return Object.keys(Wo).reduce(function(l,u){var o=au(u,r);if(!o)return l;var c=L0(o.released,s.versions);return c=c.map(tu(o.name)),c=$0(c,o.name,s.versions,r),l.concat(c)},[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(r,s){return Object.keys(Wo).reduce(function(l,u){var o=au(u,r);if(!o)return l;var c=o.released.slice(-s.versions);return c=c.map(tu(o.name)),c=$0(c,o.name,s.versions,r),l.concat(c)},[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(r,s){var l=L0(Object.keys(qi),s.versions);return l.map(function(u){return"chrome "+qi[u]})}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(r,s){return L0(Er.nodeVersions,s.versions).map(function(l){return"node "+l})}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(r,s){var l=ep(s.browser,r),u=L0(l.released,s.versions),o=u.map(tu(l.name));return o=$0(o,l.name,s.versions,r),o}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(r,s){return Object.keys(qi).slice(-s.versions).map(function(l){return"chrome "+qi[l]})}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(r,s){return Er.nodeVersions.slice(-s.versions).map(function(l){return"node "+l})}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(r,s){var l=ep(s.browser,r),u=l.released.slice(-s.versions).map(tu(l.name));return u=$0(u,l.name,s.versions,r),u}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(r){return Object.keys(Wo).reduce(function(s,l){var u=au(l,r);if(!u)return s;var o=u.versions.filter(function(c){return u.released.indexOf(c)===-1});return o=o.map(tu(u.name)),s.concat(o)},[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(r,s){var l=ep(s.browser,r);return l.versions.filter(function(u){return l.released.indexOf(u)===-1}).map(tu(l.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(r,s){return Sz(Date.now()-mBe*s.years,r)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:C5},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:C5},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:C5},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(r,s){var l=parseFloat(s.popularity),u=Er.usage.global;return Object.keys(u).reduce(function(o,c){return s.sign===">"?u[c]>l&&o.push(c):s.sign==="<"?u[c]<l&&o.push(c):s.sign==="<="?u[c]<=l&&o.push(c):u[c]>=l&&o.push(c),o},[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(r,s){var l=parseFloat(s.popularity);if(!r.customUsage)throw new Ls("Custom usage statistics was not provided");var u=r.customUsage;return Object.keys(u).reduce(function(o,c){var f=u[c];return f==null||(s.sign===">"?f>l&&o.push(c):s.sign==="<"?f<l&&o.push(c):s.sign==="<="?f<=l&&o.push(c):f>=l&&o.push(c)),o},[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(r,s){var l=parseFloat(s.popularity),u=Hn.loadStat(r,s.config,Er.data);if(u){r.customUsage={};for(var o in u)M0(r.customUsage,o,u[o])}if(!r.customUsage)throw new Ls("Custom usage statistics was not provided");var c=r.customUsage;return Object.keys(c).reduce(function(f,h){var m=c[h];return m==null||(s.sign===">"?m>l&&f.push(h):s.sign==="<"?m<l&&f.push(h):s.sign==="<="?m<=l&&f.push(h):m>=l&&f.push(h)),f},[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(r,s){var l=parseFloat(s.popularity),u=s.place;u.length===2?u=u.toUpperCase():u=u.toLowerCase(),Hn.loadCountry(Er.usage,u,Er.data);var o=Er.usage[u];return Object.keys(o).reduce(function(c,f){var h=o[f];return h==null||(s.sign===">"?h>l&&c.push(f):s.sign==="<"?h<l&&c.push(f):s.sign==="<="?h<=l&&c.push(f):h>=l&&c.push(f)),c},[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:jz},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:jz},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(r,s){Hn.loadFeature(Er.cache,s.feature);var l=s.supportType!=="fully",u=Er.cache[s.feature],o=[];for(var c in u){for(var f=au(c,r),h=f.released.length-1;h>=0&&!(f.released[h]in u[c]);)h--;var m=r.mobileToDesktop&&c in Er.desktopNames&&Pz(u[c][f.released[h]],l);f.versions.forEach(function(g){var x=u[c][g];x===void 0&&m&&(x=u[Er.desktopNames[c]][g]),Pz(x,l)&&o.push(c+" "+g)})}return o}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(r,s){var l=D0(s.from),u=D0(s.to),o=parseFloat(s.from),c=parseFloat(s.to);if(!qi[l])throw new Ls("Unknown version "+o+" of electron");if(!qi[u])throw new Ls("Unknown version "+c+" of electron");return Object.keys(qi).filter(function(f){var h=parseFloat(f);return h>=o&&h<=c}).map(function(f){return"chrome "+qi[f]})}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(r,s){return Er.nodeVersions.filter(Rz(">=",s.from)).filter(Rz("<=",s.to)).map(function(l){return"node "+l})}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(r,s){var l=ep(s.browser,r),u=parseFloat(F0(l,s.from)||s.from),o=parseFloat(F0(l,s.to)||s.to);function c(f){var h=parseFloat(f);return h>=u&&h<=o}return l.released.filter(c).map(tu(l.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(r,s){var l=D0(s.version);return Object.keys(qi).filter(xz(s.sign,l)).map(function(u){return"chrome "+qi[u]})}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(r,s){return Er.nodeVersions.filter(vBe(s.sign,s.version)).map(function(l){return"node "+l})}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(r,s){var l=s.version,u=ep(s.browser,r),o=Er.versionAliases[u.name][l];return o&&(l=o),u.released.filter(xz(s.sign,l)).map(function(c){return u.name+" "+c})}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 115"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(r,s){var l=D0(s.version),u=qi[l];if(!u)throw new Ls("Unknown version "+s.version+" of electron");return["chrome "+u]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:I5},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:I5},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:I5},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(r){return[Hn.currentNode(tp,r)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(r){var s=Date.now(),l=Object.keys(w5).filter(function(u){return s<Date.parse(w5[u].end)&&s>Date.parse(w5[u].start)&&gBe(u)}).map(function(u){return"node "+u.slice(1)});return tp(l,r)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(r,s){var l=s.version;/^tp$/i.test(l)&&(l="TP");var u=ep(s.browser,r),o=F0(u,l);if(o)l=o;else if(l.indexOf(".")===-1?o=l+".0":o=l.replace(/\.0$/,""),o=F0(u,o),o)l=o;else{if(r.ignoreUnknownVersions)return[];throw new Ls("Unknown version "+l+" of "+s.browser)}return[u.name+" "+l]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(r){return Er(void 0,r)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(r,s){return tp(Hn.loadQueries(r,s.config),r)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(r){return tp(Er.defaults,r)}},dead:{matches:[],regexp:/^dead$/i,select:function(r){var s=["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"];return tp(s,r)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(r,s){throw au(s.query,r)?new Ls("Specify versions in Browserslist query for browser "+s.query):EBe(s.query)}}};(function(){for(var e in Wo){var r=Wo[e];Er.data[e]={name:e,versions:vz(Wo[e].versions),released:vz(Wo[e].versions.slice(0,-3)),releaseDate:Wo[e].release_date},M0(Er.usage.global,e,r.usage_global),Er.versionAliases[e]={};for(var s=0;s<r.versions.length;s++){var l=r.versions[s];if(l&&l.indexOf("-")!==-1)for(var u=l.split("-"),o=0;o<u.length;o++)Er.versionAliases[e][u[o]]=l}}Er.nodeVersions=hBe.map(function(c){return c.version})})();var Oz=Er,_z=Math.min;function SBe(e,r){var s=[],l=[],u,o,c=e.length,f=r.length;if(!c)return f;if(!f)return c;for(o=0;o<=f;o++)s[o]=o;for(u=1;u<=c;u++){for(l=[u],o=1;o<=f;o++)l[o]=e[u-1]===r[o-1]?s[o-1]:_z(s[o-1],s[o],l[o-1])+1;s=l}return l[f]}function Nz(e,r){var s=r.map(function(l){return SBe(l,e)});return r[s.indexOf(_z.apply(void 0,fe(s)))]}var nu=function(){function e(s){this.descriptor=s}var r=e.prototype;return r.validateTopLevelOptions=function(l,u){for(var o=Object.keys(u),c=0,f=Object.keys(l);c<f.length;c++){var h=f[c];if(!o.includes(h))throw new Error(this.formatMessage("'"+h+`' is not a valid top-level option. +- Did you mean '`+Nz(h,o)+"'?"))}},r.validateBooleanOption=function(l,u,o){return u===void 0?o:(this.invariant(typeof u=="boolean","'"+l+"' option must be a boolean."),u)},r.validateStringOption=function(l,u,o){return u===void 0?o:(this.invariant(typeof u=="string","'"+l+"' option must be a string."),u)},r.invariant=function(l,u){if(!l)throw new Error(this.formatMessage(u))},r.formatMessage=function(l){return this.descriptor+": "+l},_(e)}(),TBe={"es6.module":{chrome:"61",and_chr:"61",edge:"16",firefox:"60",and_ff:"60",node:"13.2.0",opera:"48",op_mob:"45",safari:"10.1",ios:"10.3",samsung:"8.2",android:"61",electron:"2.0",ios_saf:"10.3"}},wBe=TBe,O5,kz;function PBe(){return kz||(kz=1,O5=function(r){r.prototype[Symbol.iterator]=re().mark(function s(){var l;return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:l=this.head;case 1:if(!l){o.next=7;break}return o.next=4,l.value;case 4:l=l.next,o.next=1;break;case 7:case"end":return o.stop()}},s,this)})}),O5}var _5,Dz;function ABe(){if(Dz)return _5;Dz=1,_5=e,e.Node=u,e.create=e;function e(o){var c=this;if(c instanceof e||(c=new e),c.tail=null,c.head=null,c.length=0,o&&typeof o.forEach=="function")o.forEach(function(m){c.push(m)});else if(arguments.length>0)for(var f=0,h=arguments.length;f<h;f++)c.push(arguments[f]);return c}e.prototype.removeNode=function(o){if(o.list!==this)throw new Error("removing node which does not belong to this list");var c=o.next,f=o.prev;return c&&(c.prev=f),f&&(f.next=c),o===this.head&&(this.head=c),o===this.tail&&(this.tail=f),o.list.length--,o.next=null,o.prev=null,o.list=null,c},e.prototype.unshiftNode=function(o){if(o!==this.head){o.list&&o.list.removeNode(o);var c=this.head;o.list=this,o.next=c,c&&(c.prev=o),this.head=o,this.tail||(this.tail=o),this.length++}},e.prototype.pushNode=function(o){if(o!==this.tail){o.list&&o.list.removeNode(o);var c=this.tail;o.list=this,o.prev=c,c&&(c.next=o),this.tail=o,this.head||(this.head=o),this.length++}},e.prototype.push=function(){for(var o=0,c=arguments.length;o<c;o++)s(this,arguments[o]);return this.length},e.prototype.unshift=function(){for(var o=0,c=arguments.length;o<c;o++)l(this,arguments[o]);return this.length},e.prototype.pop=function(){if(this.tail){var o=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,o}},e.prototype.shift=function(){if(this.head){var o=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,o}},e.prototype.forEach=function(o,c){c=c||this;for(var f=this.head,h=0;f!==null;h++)o.call(c,f.value,h,this),f=f.next},e.prototype.forEachReverse=function(o,c){c=c||this;for(var f=this.tail,h=this.length-1;f!==null;h--)o.call(c,f.value,h,this),f=f.prev},e.prototype.get=function(o){for(var c=0,f=this.head;f!==null&&c<o;c++)f=f.next;if(c===o&&f!==null)return f.value},e.prototype.getReverse=function(o){for(var c=0,f=this.tail;f!==null&&c<o;c++)f=f.prev;if(c===o&&f!==null)return f.value},e.prototype.map=function(o,c){c=c||this;for(var f=new e,h=this.head;h!==null;)f.push(o.call(c,h.value,this)),h=h.next;return f},e.prototype.mapReverse=function(o,c){c=c||this;for(var f=new e,h=this.tail;h!==null;)f.push(o.call(c,h.value,this)),h=h.prev;return f},e.prototype.reduce=function(o,c){var f,h=this.head;if(arguments.length>1)f=c;else if(this.head)h=this.head.next,f=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var m=0;h!==null;m++)f=o(f,h.value,m),h=h.next;return f},e.prototype.reduceReverse=function(o,c){var f,h=this.tail;if(arguments.length>1)f=c;else if(this.tail)h=this.tail.prev,f=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var m=this.length-1;h!==null;m--)f=o(f,h.value,m),h=h.prev;return f},e.prototype.toArray=function(){for(var o=new Array(this.length),c=0,f=this.head;f!==null;c++)o[c]=f.value,f=f.next;return o},e.prototype.toArrayReverse=function(){for(var o=new Array(this.length),c=0,f=this.tail;f!==null;c++)o[c]=f.value,f=f.prev;return o},e.prototype.slice=function(o,c){c=c||this.length,c<0&&(c+=this.length),o=o||0,o<0&&(o+=this.length);var f=new e;if(c<o||c<0)return f;o<0&&(o=0),c>this.length&&(c=this.length);for(var h=0,m=this.head;m!==null&&h<o;h++)m=m.next;for(;m!==null&&h<c;h++,m=m.next)f.push(m.value);return f},e.prototype.sliceReverse=function(o,c){c=c||this.length,c<0&&(c+=this.length),o=o||0,o<0&&(o+=this.length);var f=new e;if(c<o||c<0)return f;o<0&&(o=0),c>this.length&&(c=this.length);for(var h=this.length,m=this.tail;m!==null&&h>c;h--)m=m.prev;for(;m!==null&&h>o;h--,m=m.prev)f.push(m.value);return f},e.prototype.splice=function(o,c){o>this.length&&(o=this.length-1),o<0&&(o=this.length+o);for(var f=0,h=this.head;h!==null&&f<o;f++)h=h.next;for(var m=[],f=0;h&&f<c;f++)m.push(h.value),h=this.removeNode(h);h===null&&(h=this.tail),h!==this.head&&h!==this.tail&&(h=h.prev);for(var f=2;f<arguments.length;f++)h=r(this,h,arguments[f]);return m},e.prototype.reverse=function(){for(var o=this.head,c=this.tail,f=o;f!==null;f=f.prev){var h=f.prev;f.prev=f.next,f.next=h}return this.head=c,this.tail=o,this};function r(o,c,f){var h=c===o.head?new u(f,null,c,o):new u(f,c,c.next,o);return h.next===null&&(o.tail=h),h.prev===null&&(o.head=h),o.length++,h}function s(o,c){o.tail=new u(c,o.tail,null,o),o.head||(o.head=o.tail),o.length++}function l(o,c){o.head=new u(c,null,o.head,o),o.tail||(o.tail=o.head),o.length++}function u(o,c,f,h){if(!(this instanceof u))return new u(o,c,f,h);this.list=h,this.value=o,c?(c.next=this,this.prev=c):this.prev=null,f?(f.prev=this,this.next=f):this.next=null}try{PBe()(e)}catch{}return _5}var N5,Lz;function Mz(){if(Lz)return N5;Lz=1;var e=ABe(),r=Symbol("max"),s=Symbol("length"),l=Symbol("lengthCalculator"),u=Symbol("allowStale"),o=Symbol("maxAge"),c=Symbol("dispose"),f=Symbol("noDisposeOnSet"),h=Symbol("lruList"),m=Symbol("cache"),g=Symbol("updateAgeOnGet"),x=function(){return 1},R=function(){function D(B){if(typeof B=="number"&&(B={max:B}),B||(B={}),B.max&&(typeof B.max!="number"||B.max<0))throw new TypeError("max must be a non-negative number");this[r]=B.max||1/0;var F=B.length||x;if(this[l]=typeof F!="function"?x:F,this[u]=B.stale||!1,B.maxAge&&typeof B.maxAge!="number")throw new TypeError("maxAge must be a number");this[o]=B.maxAge||0,this[c]=B.dispose,this[f]=B.noDisposeOnSet||!1,this[g]=B.updateAgeOnGet||!1,this.reset()}var k=D.prototype;return k.rforEach=function(F,L){L=L||this;for(var V=this[h].tail;V!==null;){var H=V.prev;j(this,F,V,L),V=H}},k.forEach=function(F,L){L=L||this;for(var V=this[h].head;V!==null;){var H=V.next;j(this,F,V,L),V=H}},k.keys=function(){return this[h].toArray().map(function(F){return F.key})},k.values=function(){return this[h].toArray().map(function(F){return F.value})},k.reset=function(){var F=this;this[c]&&this[h]&&this[h].length&&this[h].forEach(function(L){return F[c](L.key,L.value)}),this[m]=new Map,this[h]=new e,this[s]=0},k.dump=function(){var F=this;return this[h].map(function(L){return T(F,L)?!1:{k:L.key,v:L.value,e:L.now+(L.maxAge||0)}}).toArray().filter(function(L){return L})},k.dumpLru=function(){return this[h]},k.set=function(F,L,V){if(V=V||this[o],V&&typeof V!="number")throw new TypeError("maxAge must be a number");var H=V?Date.now():0,K=this[l](L,F);if(this[m].has(F)){if(K>this[r])return P(this,this[m].get(F)),!1;var G=this[m].get(F),X=G.value;return this[c]&&(this[f]||this[c](F,X.value)),X.now=H,X.maxAge=V,X.value=L,this[s]+=K-X.length,X.length=K,this.get(F),I(this),!0}var ue=new O(F,L,K,H,V);return ue.length>this[r]?(this[c]&&this[c](F,L),!1):(this[s]+=ue.length,this[h].unshift(ue),this[m].set(F,this[h].head),I(this),!0)},k.has=function(F){if(!this[m].has(F))return!1;var L=this[m].get(F).value;return!T(this,L)},k.get=function(F){return w(this,F,!0)},k.peek=function(F){return w(this,F,!1)},k.pop=function(){var F=this[h].tail;return F?(P(this,F),F.value):null},k.del=function(F){P(this,this[m].get(F))},k.load=function(F){this.reset();for(var L=Date.now(),V=F.length-1;V>=0;V--){var H=F[V],K=H.e||0;if(K===0)this.set(H.k,H.v);else{var G=K-L;G>0&&this.set(H.k,H.v,G)}}},k.prune=function(){var F=this;this[m].forEach(function(L,V){return w(F,V,!1)})},_(D,[{key:"max",get:function(){return this[r]},set:function(F){if(typeof F!="number"||F<0)throw new TypeError("max must be a non-negative number");this[r]=F||1/0,I(this)}},{key:"allowStale",get:function(){return this[u]},set:function(F){this[u]=!!F}},{key:"maxAge",get:function(){return this[o]},set:function(F){if(typeof F!="number")throw new TypeError("maxAge must be a non-negative number");this[o]=F,I(this)}},{key:"lengthCalculator",get:function(){return this[l]},set:function(F){var L=this;typeof F!="function"&&(F=x),F!==this[l]&&(this[l]=F,this[s]=0,this[h].forEach(function(V){V.length=L[l](V.value,V.key),L[s]+=V.length})),I(this)}},{key:"length",get:function(){return this[s]}},{key:"itemCount",get:function(){return this[h].length}}])}(),w=function(k,B,F){var L=k[m].get(B);if(L){var V=L.value;if(T(k,V)){if(P(k,L),!k[u])return}else F&&(k[g]&&(L.value.now=Date.now()),k[h].unshiftNode(L));return V.value}},T=function(k,B){if(!B||!B.maxAge&&!k[o])return!1;var F=Date.now()-B.now;return B.maxAge?F>B.maxAge:k[o]&&F>k[o]},I=function(k){if(k[s]>k[r])for(var B=k[h].tail;k[s]>k[r]&&B!==null;){var F=B.prev;P(k,B),B=F}},P=function(k,B){if(B){var F=B.value;k[c]&&k[c](F.key,F.value),k[s]-=F.length,k[m].delete(F.key),k[h].removeNode(B)}},O=_(function(k,B,F,L,V){this.key=k,this.value=B,this.length=F,this.now=L,this.maxAge=V||0}),j=function(k,B,F,L){var V=F.value;T(k,V)&&(P(k,F),k[u]||(V=void 0)),V&&B.call(L,V.value,V.key,k)};return N5=R,N5}function IBe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var CBe=(IBe(er.env.BABEL_8_BREAKING),Mz());function jBe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var rp=(jBe(er.env.BABEL_8_BREAKING),gi()),q0={safari:"tp"},OBe={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",deno:"deno",op_mob:"opera_mobile",opera:"opera",safari:"safari",samsung:"samsung"},_Be=/^(?:\d+|\d(?:\d?[^\d\n\r\u2028\u2029]\d+|\d{2,}(?:[^\d\n\r\u2028\u2029]\d+)?))$/,NBe=new nu("@babel/helper-compilation-targets");function Bz(e,r){return e&&rp.lt(e,r)?e:r}function mc(e){if(typeof e=="string"&&rp.valid(e))return e;NBe.invariant(typeof e=="number"||typeof e=="string"&&_Be.test(e),"'"+e+"' is not a valid version"),e=e.toString();for(var r=0,s=0;(r=e.indexOf(".",r+1))>0;)s++;return e+".0".repeat(2-s)}function yc(e,r){var s=q0[r];return!!s&&s===e.toString().toLowerCase()}function Fz(e,r,s){var l=q0[s];return e===l?r:r===l?e:Bz(e,r)}function kBe(e,r,s){return Fz(e,r,s)===e?r:e}function $z(e,r){var s=e[r];return!s&&r==="android"?e.chrome:s}var Lh={node:"node",deno:"deno",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino",opera_mobile:"opera_mobile"};function k5(e){if(typeof e!="string")return e;var r=rp.parse(e),s=r.major,l=r.minor,u=r.patch,o=[s];return(l||u)&&o.push(l),u&&o.push(u),o.join(".")}function D5(e){return Object.keys(e).reduce(function(r,s){var l=e[s],u=q0[s];return typeof l=="string"&&u!==l&&(l=k5(l)),r[s]=l,r},{})}function L5(e,r,s){var l=s[e]||{};return Object.keys(r).reduce(function(u,o){var c=$z(l,o),f=r[o];if(!c)u[o]=k5(f);else{var h=yc(c,o),m=yc(f,o);!m&&(h||rp.lt(f.toString(),mc(c)))&&(u[o]=k5(f))}return u},{})}var DBe={"transform-duplicate-named-capturing-groups-regex":{chrome:"126",opera:"112",edge:"126",firefox:"129",safari:"17.4",electron:"31.0"},"transform-unicode-sets-regex":{chrome:"112",opera:"98",edge:"112",firefox:"116",safari:"17",node:"20",deno:"1.32",ios:"17",opera_mobile:"75",electron:"24.0"},"bugfix/transform-v8-static-class-fields-redefine-readonly":{chrome:"98",opera:"84",edge:"98",firefox:"75",safari:"15",node:"12",deno:"1.18",ios:"15",samsung:"11",opera_mobile:"52",electron:"17.0"},"bugfix/transform-firefox-class-in-computed-class-key":{chrome:"74",opera:"62",edge:"79",safari:"16",node:"12",deno:"1",ios:"16",samsung:"11",opera_mobile:"53",electron:"6.0"},"bugfix/transform-safari-class-field-initializer-scope":{chrome:"74",opera:"62",edge:"79",firefox:"69",safari:"16",node:"12",deno:"1",ios:"16",samsung:"11",opera_mobile:"53",electron:"6.0"},"transform-class-static-block":{chrome:"94",opera:"80",edge:"94",firefox:"93",safari:"16.4",node:"16.11",deno:"1.14",ios:"16.4",samsung:"17",opera_mobile:"66",electron:"15.0"},"proposal-class-static-block":{chrome:"94",opera:"80",edge:"94",firefox:"93",safari:"16.4",node:"16.11",deno:"1.14",ios:"16.4",samsung:"17",opera_mobile:"66",electron:"15.0"},"transform-private-property-in-object":{chrome:"91",opera:"77",edge:"91",firefox:"90",safari:"15",node:"16.9",deno:"1.9",ios:"15",samsung:"16",opera_mobile:"64",electron:"13.0"},"proposal-private-property-in-object":{chrome:"91",opera:"77",edge:"91",firefox:"90",safari:"15",node:"16.9",deno:"1.9",ios:"15",samsung:"16",opera_mobile:"64",electron:"13.0"},"transform-class-properties":{chrome:"74",opera:"62",edge:"79",firefox:"90",safari:"14.1",node:"12",deno:"1",ios:"14.5",samsung:"11",opera_mobile:"53",electron:"6.0"},"proposal-class-properties":{chrome:"74",opera:"62",edge:"79",firefox:"90",safari:"14.1",node:"12",deno:"1",ios:"14.5",samsung:"11",opera_mobile:"53",electron:"6.0"},"transform-private-methods":{chrome:"84",opera:"70",edge:"84",firefox:"90",safari:"15",node:"14.6",deno:"1",ios:"15",samsung:"14",opera_mobile:"60",electron:"10.0"},"proposal-private-methods":{chrome:"84",opera:"70",edge:"84",firefox:"90",safari:"15",node:"14.6",deno:"1",ios:"15",samsung:"14",opera_mobile:"60",electron:"10.0"},"transform-numeric-separator":{chrome:"75",opera:"62",edge:"79",firefox:"70",safari:"13",node:"12.5",deno:"1",ios:"13",samsung:"11",rhino:"1.7.14",opera_mobile:"54",electron:"6.0"},"proposal-numeric-separator":{chrome:"75",opera:"62",edge:"79",firefox:"70",safari:"13",node:"12.5",deno:"1",ios:"13",samsung:"11",rhino:"1.7.14",opera_mobile:"54",electron:"6.0"},"transform-logical-assignment-operators":{chrome:"85",opera:"71",edge:"85",firefox:"79",safari:"14",node:"15",deno:"1.2",ios:"14",samsung:"14",opera_mobile:"60",electron:"10.0"},"proposal-logical-assignment-operators":{chrome:"85",opera:"71",edge:"85",firefox:"79",safari:"14",node:"15",deno:"1.2",ios:"14",samsung:"14",opera_mobile:"60",electron:"10.0"},"transform-nullish-coalescing-operator":{chrome:"80",opera:"67",edge:"80",firefox:"72",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",opera_mobile:"57",electron:"8.0"},"proposal-nullish-coalescing-operator":{chrome:"80",opera:"67",edge:"80",firefox:"72",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",opera_mobile:"57",electron:"8.0"},"transform-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"proposal-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"transform-json-strings":{chrome:"66",opera:"53",edge:"79",firefox:"62",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.14",opera_mobile:"47",electron:"3.0"},"proposal-json-strings":{chrome:"66",opera:"53",edge:"79",firefox:"62",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.14",opera_mobile:"47",electron:"3.0"},"transform-optional-catch-binding":{chrome:"66",opera:"53",edge:"79",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"proposal-optional-catch-binding":{chrome:"66",opera:"53",edge:"79",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-parameters":{chrome:"49",opera:"36",edge:"18",firefox:"53",safari:"16.3",node:"6",deno:"1",ios:"16.3",samsung:"5",opera_mobile:"36",electron:"0.37"},"transform-async-generator-functions":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"proposal-async-generator-functions":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"transform-object-rest-spread":{chrome:"60",opera:"47",edge:"79",firefox:"55",safari:"11.1",node:"8.3",deno:"1",ios:"11.3",samsung:"8",opera_mobile:"44",electron:"2.0"},"proposal-object-rest-spread":{chrome:"60",opera:"47",edge:"79",firefox:"55",safari:"11.1",node:"8.3",deno:"1",ios:"11.3",samsung:"8",opera_mobile:"44",electron:"2.0"},"transform-dotall-regex":{chrome:"62",opera:"49",edge:"79",firefox:"78",safari:"11.1",node:"8.10",deno:"1",ios:"11.3",samsung:"8",rhino:"1.7.15",opera_mobile:"46",electron:"3.0"},"transform-unicode-property-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"proposal-unicode-property-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-named-capturing-groups-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-async-to-generator":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"11",node:"7.6",deno:"1",ios:"11",samsung:"6",opera_mobile:"42",electron:"1.6"},"transform-exponentiation-operator":{chrome:"52",opera:"39",edge:"14",firefox:"52",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.3"},"transform-template-literals":{chrome:"41",opera:"28",edge:"13",firefox:"34",safari:"13",node:"4",deno:"1",ios:"13",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-literals":{chrome:"44",opera:"31",edge:"12",firefox:"53",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.15",opera_mobile:"32",electron:"0.30"},"transform-function-name":{chrome:"51",opera:"38",edge:"79",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-arrow-functions":{chrome:"47",opera:"34",edge:"13",firefox:"43",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"34",electron:"0.36"},"transform-block-scoped-functions":{chrome:"41",opera:"28",edge:"12",firefox:"46",safari:"10",node:"4",deno:"1",ie:"11",ios:"10",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-classes":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-object-super":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-shorthand-properties":{chrome:"43",opera:"30",edge:"12",firefox:"33",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.14",opera_mobile:"30",electron:"0.27"},"transform-duplicate-keys":{chrome:"42",opera:"29",edge:"12",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",opera_mobile:"29",electron:"0.25"},"transform-computed-properties":{chrome:"44",opera:"31",edge:"12",firefox:"34",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"4",opera_mobile:"32",electron:"0.30"},"transform-for-of":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-sticky-regex":{chrome:"49",opera:"36",edge:"13",firefox:"3",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"36",electron:"0.37"},"transform-unicode-escapes":{chrome:"44",opera:"31",edge:"12",firefox:"53",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.15",opera_mobile:"32",electron:"0.30"},"transform-unicode-regex":{chrome:"50",opera:"37",edge:"13",firefox:"46",safari:"12",node:"6",deno:"1",ios:"12",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-spread":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-destructuring":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-block-scoping":{chrome:"50",opera:"37",edge:"14",firefox:"53",safari:"11",node:"6",deno:"1",ios:"11",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-typeof-symbol":{chrome:"38",opera:"25",edge:"12",firefox:"36",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"transform-new-target":{chrome:"46",opera:"33",edge:"14",firefox:"41",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-regenerator":{chrome:"50",opera:"37",edge:"13",firefox:"53",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-member-expression-literals":{chrome:"7",opera:"12",edge:"12",firefox:"2",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"transform-property-literals":{chrome:"7",opera:"12",edge:"12",firefox:"2",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"transform-reserved-words":{chrome:"13",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.6",deno:"1",ie:"9",android:"4.4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"transform-export-namespace-from":{chrome:"72",deno:"1.0",edge:"79",firefox:"80",node:"13.2",opera:"60",opera_mobile:"51",safari:"14.1",ios:"14.5",samsung:"11.0",android:"72",electron:"5.0"},"proposal-export-namespace-from":{chrome:"72",deno:"1.0",edge:"79",firefox:"80",node:"13.2",opera:"60",opera_mobile:"51",safari:"14.1",ios:"14.5",samsung:"11.0",android:"72",electron:"5.0"}},M5=DBe;function LBe(e,r){var s=Object.keys(e);if(s.length===0)return!1;var l=s.filter(function(u){var o=$z(r,u);if(!o)return!0;var c=e[u];if(yc(c,u))return!1;if(yc(o,u))return!0;if(!rp.valid(c.toString()))throw new Error('Invalid version passed for target "'+u+'": "'+c+'". Versions must be in semver format (major.minor.patch)');return rp.gt(mc(o),c.toString())});return l.length===0}function Go(e,r,s){var l=s===void 0?{}:s,u=l.compatData,o=u===void 0?M5:u,c=l.includes,f=l.excludes;return f!=null&&f.has(e)?!1:c!=null&&c.has(e)?!0:!LBe(r,o[e])}function qz(e,r,s,l,u,o,c){var f=new Set,h={compatData:e,includes:r,excludes:s};for(var m in e)if(Go(m,l,h))f.add(m);else if(c){var g=c.get(m);g&&f.add(g)}return u==null||u.forEach(function(x){return!s.has(x)&&f.add(x)}),o==null||o.forEach(function(x){return!r.has(x)&&f.delete(x)}),f}var B5=wBe["es6.module"],F5=new nu("@babel/helper-compilation-targets");function MBe(e){for(var r=Object.keys(Lh),s=0,l=Object.keys(e);s<l.length;s++){var u=l[s];if(!(u in Lh))throw new Error(F5.formatMessage("'"+u+`' is not a valid target +- Did you mean '`+Nz(u,r)+"'?"))}return e}function U0(e){return typeof e=="string"||Array.isArray(e)&&e.every(function(r){return typeof r=="string"})}function BBe(e){return F5.invariant(e===void 0||U0(e),"'"+String(e)+"' is not a valid browserslist query"),e}function FBe(e){return e.reduce(function(r,s){var l=s.split(" "),u=je(l,2),o=u[0],c=u[1],f=OBe[o];if(!f)return r;try{var h=c.split("-")[0].toLowerCase(),m=yc(h,f);if(!r[f])return r[f]=m?h:mc(h),r;var g=r[f],x=yc(g,f);if(x&&m)r[f]=Fz(g,h,f);else if(x)r[f]=mc(h);else if(!x&&!m){var R=mc(h);r[f]=Bz(g,R)}}catch{}return r},{})}function $Be(e){e.length&&(console.warn(`Warning, the following targets are using a decimal version: +`),e.forEach(function(r){var s=r.target,l=r.value;return console.warn(" "+s+": "+l)}),console.warn(` +We recommend using a string for minor/patch versions to avoid numbers like 6.10 +getting parsed as 6.1, which can lead to unexpected behavior. +`))}function Uz(e,r){try{return mc(r)}catch{throw new Error(F5.formatMessage("'"+r+"' is not a valid value for 'targets."+e+"'."))}}function qBe(e){var r=e===!0||e==="current"?er.versions.node:Uz("node",e);return["node",r]}function UBe(e,r){var s=yc(r,e)?r.toLowerCase():Uz(e,r);return[e,s]}function VBe(e){var r=Object.assign({},e);return delete r.esmodules,delete r.browsers,r}function WBe(e,r){var s=Oz(e,{mobileToDesktop:!0,env:r});return FBe(s)}var Vz=new CBe({max:64});function GBe(e,r){var s=typeof e=="string"?e:e.join()+r,l=Vz.get(s);return l||(l=WBe(e,r),Vz.set(s,l)),Object.assign({},l)}function Mh(e,r){var s,l;e===void 0&&(e={}),r===void 0&&(r={});var u=e,o=u.browsers,c=u.esmodules,f=r,h=f.configPath,m=h===void 0?".":h;BBe(o);var g=VBe(e),x=MBe(g),R=!!o,w=R||Object.keys(x).length>0,T=!r.ignoreBrowserslistConfig&&!w;if(!o&&T&&(o=Oz.loadConfig({config:r.configFile,path:m,env:r.browserslistEnv}),o==null&&(o=[])),c&&(c!=="intersect"||!((s=o)!=null&&s.length))&&(o=Object.keys(B5).map(function(he){return he+" >= "+B5[he]}).join(", "),c=!1),(l=o)!=null&&l.length){var I=GBe(o,r.browserslistEnv);if(c==="intersect")for(var P=0,O=Object.keys(I);P<O.length;P++){var j=O[P];if(j!=="deno"&&j!=="ie"){var D=B5[j==="opera_mobile"?"op_mob":j];if(D){var k=I[j];I[j]=kBe(k,mc(D),j)}else delete I[j]}else delete I[j]}x=Object.assign(I,x)}for(var B={},F=[],L=0,V=Object.keys(x).sort();L<V.length;L++){var H=V[L],K=x[H];typeof K=="number"&&K%1!==0&&F.push({target:H,value:K});var G=H==="node"?qBe(K):UBe(H,K),X=je(G,2),ue=X[0],oe=X[1];oe&&(B[ue]=oe)}return $Be(F),B}var KBe=Object.freeze({__proto__:null,TargetNames:Lh,default:Mh,filterItems:qz,getInclusionReasons:L5,isBrowsersQueryValid:U0,isRequired:Go,prettifyTargets:D5,unreleasedLabels:q0});function Jwt(e,r){}function HBe(e,r){var s=e.targets,l;return typeof s=="string"||Array.isArray(s)?l={browsers:s}:s&&("esmodules"in s?l=Object.assign({},s,{esmodules:"intersect"}):l=s),Mh(l,{ignoreBrowserslistConfig:!0,browserslistEnv:e.browserslistEnv})}var zBe=re().mark($5),XBe=re().mark(q5),JBe=re().mark(U5),YBe=re().mark(V5);function QBe(e,r){var s,l,u,o;return e.name===r.name&&e.value===r.value&&e.options===r.options&&e.dirname===r.dirname&&e.alias===r.alias&&e.ownPass===r.ownPass&&((s=e.file)==null?void 0:s.request)===((l=r.file)==null?void 0:l.request)&&((u=e.file)==null?void 0:u.resolved)===((o=r.file)==null?void 0:o.resolved)}function $5(e){return re().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return s.abrupt("return",e);case 1:case"end":return s.stop()}},zBe)}function Wz(e,r){return typeof e.browserslistConfigFile=="string"&&(e.browserslistConfigFile=(e.browserslistConfigFile,void 0)),e}function V0(e,r,s){var l=r.plugins,u=r.presets,o=r.passPerPreset;return{options:Wz(r),plugins:l?function(){return rFe(l,e)(s)}:function(){return $5([])},presets:u?function(){return eFe(u,e)(s)(!!o)}:function(){return $5([])}}}function su(e,r,s){return{options:Wz(r),plugins:ez(function(){return U5(r.plugins||[],e,s)}),presets:ez(function(){return q5(r.presets||[],e,s,!!r.passPerPreset)})}}var ZBe=new WeakMap,eFe=Ds(function(e,r){var s=r.using(function(l){return l});return Vo(function(l){return x5(re().mark(function u(o){var c;return re().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return h.delegateYield(q5(e,s,l,o),"t0",1);case 1:return c=h.t0,h.abrupt("return",c.map(function(m){return Gz(ZBe,m)}));case 3:case"end":return h.stop()}},u)}))})}),tFe=new WeakMap,rFe=Ds(function(e,r){var s=r.using(function(l){return l});return x5(re().mark(function l(u){var o;return re().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:return f.delegateYield(U5(e,s,u),"t0",1);case 1:return o=f.t0,f.abrupt("return",o.map(function(h){return Gz(tFe,h)}));case 3:case"end":return f.stop()}},l)}))}),aFe={};function Gz(e,r){var s=r.value,l=r.options,u=l===void 0?aFe:l;if(u===!1)return r;var o=e.get(s);o||(o=new WeakMap,e.set(s,o));var c=o.get(u);if(c||(c=[],o.set(u,c)),!c.includes(r)){var f=c.filter(function(h){return QBe(h,r)});if(f.length>0)return f[0];c.push(r)}return r}function q5(e,r,s,l){return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.delegateYield(V5("preset",e,r,s,l),"t0",1);case 1:return o.abrupt("return",o.t0);case 2:case"end":return o.stop()}},XBe)}function U5(e,r,s){return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.delegateYield(V5("plugin",e,r,s),"t0",1);case 1:return u.abrupt("return",u.t0);case 2:case"end":return u.stop()}},JBe)}function V5(e,r,s,l,u){var o;return re().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:return f.delegateYield(qn.all(r.map(function(h,m){return Kz(h,s,{type:e,alias:l+"$"+m,ownPass:!!u})})),"t0",1);case 1:return o=f.t0,nFe(o),f.abrupt("return",o);case 4:case"end":return f.stop()}},YBe)}function Kz(e,r,s){var l=s.type,u=s.alias,o=s.ownPass;return re().mark(function c(){var f,h,m,g,x,R,w,T,I,P,O,j,D;return re().wrap(function(B){for(;;)switch(B.prev=B.next){case 0:if(f=Hz(e),!f){B.next=3;break}return B.abrupt("return",f);case 3:if(g=e,Array.isArray(g)&&(g.length===3?(x=g,R=je(x,3),g=R[0],m=R[1],h=R[2]):(w=g,T=je(w,2),g=T[0],m=T[1])),I=void 0,P=null,typeof g!="string"){B.next=17;break}if(typeof l=="string"){B.next=10;break}throw new Error("To resolve a string-based item, the type of item must be given");case 10:return O=l==="plugin"?fMe:hMe,j=g,B.delegateYield(O(g,r),"t0",13);case 13:D=B.t0,P=D.filepath,g=D.value,I={request:j,resolved:P};case 17:if(g){B.next=19;break}throw new Error("Unexpected falsy value: "+String(g));case 19:if(!(typeof g=="object"&&g.__esModule)){B.next=25;break}if(!g.default){B.next=24;break}g=g.default,B.next=25;break;case 24:throw new Error("Must export a default export when using ES6 modules.");case 25:if(!(typeof g!="object"&&typeof g!="function")){B.next=27;break}throw new Error("Unsupported format: "+typeof g+". Expected an object or a function.");case 27:if(!(P!==null&&typeof g=="object"&&g)){B.next=29;break}throw new Error("Plugin/Preset files are not allowed to export objects, only functions. In "+P);case 29:return B.abrupt("return",{name:h,alias:P||u,value:g,options:m,dirname:r,ownPass:o,file:I});case 30:case"end":return B.stop()}},c)})()}function nFe(e){for(var r=new Map,s=function(){var c=u.value;if(typeof c.value!="function")return 1;var f=r.get(c.value);if(f||(f=new Set,r.set(c.value,f)),f.has(c.name)){var h=e.filter(function(m){return m.value===c.value});throw new Error(["Duplicate plugin/preset detected.","If you'd like to use two separate instances of a plugin,","they need separate names, e.g.",""," plugins: ["," ['some-plugin', {}],"," ['some-plugin', {}, 'some unique name'],"," ]","","Duplicates detected are:",""+JSON.stringify(h,null,2)].join(` +`))}f.add(c.name)},l=C(e),u;!(u=l()).done;)s()}function W5(e){return new zz(e)}function sFe(e,r){var s=r===void 0?{}:r,l=s.dirname,u=l===void 0?".":l,o=s.type;return re().mark(function c(){var f;return re().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return m.delegateYield(Kz(e,Cn.resolve(u),{type:o,alias:"programmatic item"}),"t0",1);case 1:return f=m.t0,m.abrupt("return",W5(f));case 3:case"end":return m.stop()}},c)})()}var G5=Symbol.for("@babel/core@7 - ConfigItem");function Hz(e){if(e!=null&&e[G5])return e._descriptor}var zz=_(function(r){this._descriptor=void 0,this[G5]=!0,this.value=void 0,this.options=void 0,this.dirname=void 0,this.name=void 0,this.file=void 0,this._descriptor=r,Object.defineProperty(this,"_descriptor",{enumerable:!1}),Object.defineProperty(this,G5,{enumerable:!1}),this.value=this._descriptor.value,this.options=this._descriptor.options,this.dirname=this._descriptor.dirname,this.name=this._descriptor.name,this.file=this._descriptor.file?{request:this._descriptor.file.request,resolved:this._descriptor.file.resolved}:void 0,Object.freeze(this)});Object.freeze(zz.prototype);var Xz={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin. Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"The `sourceMapName` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"},resolveModuleSource:{version:6,message:"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options"},metadata:{version:6,message:"Generated plugin metadata is always included in the output result"},sourceMapTarget:{version:6,message:"The `sourceMapTarget` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."}};function Xr(e){switch(e.type){case"root":return"";case"env":return Xr(e.parent)+'.env["'+e.name+'"]';case"overrides":return Xr(e.parent)+".overrides["+e.index+"]";case"option":return Xr(e.parent)+"."+e.name;case"access":return Xr(e.parent)+"["+JSON.stringify(e.name)+"]";default:throw new Error("Assertion failure: Unknown type "+e.type)}}function Ms(e,r){return{type:"access",name:r,parent:e}}function iFe(e,r){if(r!==void 0&&r!=="root"&&r!=="upward"&&r!=="upward-optional")throw new Error(Xr(e)+' must be a "root", "upward", "upward-optional" or undefined');return r}function Jz(e,r){if(r!==void 0&&typeof r!="boolean"&&r!=="inline"&&r!=="both")throw new Error(Xr(e)+' must be a boolean, "inline", "both", or undefined');return r}function oFe(e,r){if(r!==void 0&&typeof r!="boolean"&&r!=="auto")throw new Error(Xr(e)+' must be a boolean, "auto", or undefined');return r}function lFe(e,r){if(r!==void 0&&r!=="module"&&r!=="script"&&r!=="unambiguous")throw new Error(Xr(e)+' must be "module", "script", "unambiguous", or undefined');return r}function uFe(e,r){var s=gc(e,r);if(s){if(typeof s.name!="string")throw new Error(Xr(e)+' set but does not contain "name" property string');for(var l=0,u=Object.keys(s);l<u.length;l++){var o=u[l],c=Ms(e,o),f=s[o];if(f!=null&&typeof f!="boolean"&&typeof f!="string"&&typeof f!="number")throw new Error(Xr(c)+" must be null, undefined, a boolean, a string, or a number.")}}return r}function cFe(e,r){if(r!==void 0&&typeof r!="boolean"&&(typeof r!="object"||!r))throw new Error(Xr(e)+" must be a boolean, object, or undefined");return r}function Bs(e,r){if(r!==void 0&&typeof r!="string")throw new Error(Xr(e)+" must be a string, or undefined");return r}function Ko(e,r){if(r!==void 0&&typeof r!="function")throw new Error(Xr(e)+" must be a function, or undefined");return r}function vi(e,r){if(r!==void 0&&typeof r!="boolean")throw new Error(Xr(e)+" must be a boolean, or undefined");return r}function gc(e,r){if(r!==void 0&&(typeof r!="object"||Array.isArray(r)||!r))throw new Error(Xr(e)+" must be an object, or undefined");return r}function K5(e,r){if(r!=null&&!Array.isArray(r))throw new Error(Xr(e)+" must be an array, or undefined");return r}function Yz(e,r){var s=K5(e,r);return s==null||s.forEach(function(l,u){return dFe(Ms(e,u),l)}),s}function dFe(e,r){if(typeof r!="string"&&typeof r!="function"&&!(r instanceof RegExp))throw new Error(Xr(e)+" must be an array of string/Function/RegExp values, or undefined");return r}function H5(e,r){if(r===void 0)return r;if(Array.isArray(r))r.forEach(function(s,l){if(!W0(s))throw new Error(Xr(Ms(e,l))+" must be a string/Function/RegExp.")});else if(!W0(r))throw new Error(Xr(e)+" must be a string/Function/RegExp, or an array of those");return r}function W0(e){return typeof e=="string"||typeof e=="function"||e instanceof RegExp}function Qz(e,r){if(r!==void 0&&typeof r!="boolean"&&typeof r!="string")throw new Error(Xr(e)+" must be a undefined, a boolean, a string, "+("got "+JSON.stringify(r)));return r}function pFe(e,r){if(r===void 0||typeof r=="boolean")return r;if(Array.isArray(r))r.forEach(function(s,l){if(!W0(s))throw new Error(Xr(Ms(e,l))+" must be a string/Function/RegExp.")});else if(!W0(r))throw new Error(Xr(e)+" must be a undefined, a boolean, a string/Function/RegExp "+("or an array of those, got "+JSON.stringify(r)));return r}function Zz(e,r){var s=K5(e,r);return s&&s.forEach(function(l,u){return fFe(Ms(e,u),l)}),s}function fFe(e,r){if(Array.isArray(r)){if(r.length===0)throw new Error(Xr(e)+" must include an object");if(r.length>3)throw new Error(Xr(e)+" may only be a two-tuple or three-tuple");if(eX(Ms(e,0),r[0]),r.length>1){var s=r[1];if(s!==void 0&&s!==!1&&(typeof s!="object"||Array.isArray(s)||s===null))throw new Error(Xr(Ms(e,1))+" must be an object, false, or undefined")}if(r.length===3){var l=r[2];if(l!==void 0&&typeof l!="string")throw new Error(Xr(Ms(e,2))+" must be a string, or undefined")}}else eX(e,r);return r}function eX(e,r){if((typeof r!="object"||!r)&&typeof r!="string"&&typeof r!="function")throw new Error(Xr(e)+" must be a string, object, function");return r}function hFe(e,r){if(U0(r))return r;if(typeof r!="object"||!r||Array.isArray(r))throw new Error(Xr(e)+" must be a string, an array of strings or an object");var s=Ms(e,"browsers"),l=Ms(e,"esmodules");tX(s,r.browsers),vi(l,r.esmodules);for(var u=0,o=Object.keys(r);u<o.length;u++){var c=o[u],f=r[c],h=Ms(e,c);if(c==="esmodules")vi(h,f);else if(c==="browsers")tX(h,f);else if(hasOwnProperty.call(Lh,c))mFe(h,f);else{var m=Object.keys(Lh).join(", ");throw new Error(Xr(h)+" is not a valid target. Supported targets are "+m)}}return r}function tX(e,r){if(r!==void 0&&!U0(r))throw new Error(Xr(e)+" must be undefined, a string or an array of strings")}function mFe(e,r){if(!(typeof r=="number"&&Math.round(r)===r)&&typeof r!="string")throw new Error(Xr(e)+" must be a string or an integer number")}function yFe(e,r){if(r!==void 0){if(typeof r!="object"||r===null)throw new Error(Xr(e)+" must be an object or undefined.");var s=e;do s=s.parent;while(s.type!=="root");for(var l=s.source==="preset",u=0,o=Object.keys(r);u<o.length;u++){var c=o[u],f=Ms(e,c);if(!SFe.has(c))throw new Error(Xr(f)+" is not a supported assumption.");if(typeof r[c]!="boolean")throw new Error(Xr(f)+" must be a boolean.");if(l&&r[c]===!1)throw new Error(Xr(f)+" cannot be set to 'false' inside presets.")}return r}}var rX,aX=Function.call.bind(Error.prototype.toString),G0=!!Error.captureStackTrace&&((rX=Object.getOwnPropertyDescriptor(Error,"stackTraceLimit"))==null?void 0:rX.writable)===!0,nX="startHiding - secret - don't use this - v1",sX="stopHiding - secret - don't use this - v1",iX=new WeakSet,K0=new WeakMap;function gFe(e){return Object.create({isNative:function(){return!1},isConstructor:function(){return!1},isToplevel:function(){return!0},getFileName:function(){return e},getLineNumber:function(){},getColumnNumber:function(){},getFunctionName:function(){},getMethodName:function(){},getTypeName:function(){},toString:function(){return e}})}function vFe(e,r){if(G0){var s=K0.get(e);return s||K0.set(e,s=[]),s.push(gFe(r)),e}}function bFe(e){if(G0)return iX.add(e),e}function Ya(e){return G0?Object.defineProperty(function(){return oX(),e.apply(void 0,arguments)},"name",{value:sX}):e}function xFe(e){return G0?Object.defineProperty(function(){return e.apply(void 0,arguments)},"name",{value:nX}):e}function oX(){oX=function(){};var e=Error.prepareStackTrace,r=e===void 0?RFe:e,s=50;Error.stackTraceLimit&&(Error.stackTraceLimit=Math.max(Error.stackTraceLimit,s)),Error.prepareStackTrace=function(u,o){for(var c=[],f=iX.has(u),h=f?"hiding":"unknown",m=0;m<o.length;m++){var g=o[m].getFunctionName();if(g===nX)h="hiding";else if(g===sX){if(h==="hiding"){if(h="showing",K0.has(u)){var x;(x=c).unshift.apply(x,fe(K0.get(u)))}}else if(h==="unknown"){c=o;break}}else h!=="hiding"&&c.push(o[m])}return r(u,c)}}function RFe(e,r){return r.length===0?aX(e):aX(e)+` + at `+r.join(` + at `)}var z5=function(e){function r(s,l){var u;return u=e.call(this,s)||this,bFe(u),l&&vFe(u,l),u}return M(r,e),_(r)}(Tt(Error)),lX={cwd:Bs,root:Bs,rootMode:iFe,configFile:Qz,caller:uFe,filename:Bs,filenameRelative:Bs,code:vi,ast:vi,cloneInputAst:vi,envName:Bs},uX={babelrc:vi,babelrcRoots:pFe},cX={extends:Bs,ignore:Yz,only:Yz,targets:hFe,browserslistConfigFile:Qz,browserslistEnv:Bs},dX={inputSourceMap:cFe,presets:Zz,plugins:Zz,passPerPreset:vi,assumptions:yFe,env:PFe,overrides:AFe,test:H5,include:H5,exclude:H5,retainLines:vi,comments:vi,shouldPrintComment:Ko,compact:oFe,minified:vi,auxiliaryCommentBefore:Bs,auxiliaryCommentAfter:Bs,sourceType:lFe,wrapPluginVisitorMethod:Ko,highlightCode:vi,sourceMaps:Jz,sourceMap:Jz,sourceFileName:Bs,sourceRoot:Bs,parserOpts:gc,generatorOpts:gc};Object.assign(dX,{getModuleId:Ko,moduleRoot:Bs,moduleIds:vi,moduleId:Bs});var EFe=["arrayLikeIsIterable","constantReexports","constantSuper","enumerableModuleMeta","ignoreFunctionLength","ignoreToPrimitiveHint","iterableIsArray","mutableTemplateObject","noClassCalls","noDocumentAll","noIncompleteNsImportDetection","noNewArrows","noUninitializedPrivateFieldAccess","objectRestNoSymbols","privateFieldsAsSymbols","privateFieldsAsProperties","pureGetters","setClassMethods","setComputedProperties","setPublicClassFields","setSpreadProperties","skipForOfIteratorClosing","superIsCallableConstructor"],SFe=new Set(EFe);function pX(e){return e.type==="root"?e.source:pX(e.parent)}function Bh(e,r,s){try{return X5({type:"root",source:e},r)}catch(u){var l=new z5(u.message,s);throw u.code&&(l.code=u.code),l}}function X5(e,r){var s=pX(e);return wFe(r),Object.keys(r).forEach(function(l){var u={type:"option",name:l,parent:e};if(s==="preset"&&cX[l])throw new Error(Xr(u)+" is not allowed in preset options");if(s!=="arguments"&&lX[l])throw new Error(Xr(u)+" is only allowed in root programmatic options");if(s!=="arguments"&&s!=="configfile"&&uX[l])throw s==="babelrcfile"||s==="extendsfile"?new Error(Xr(u)+' is not allowed in .babelrc or "extends"ed files, only in root programmatic options, or babel.config.js/config file options'):new Error(Xr(u)+" is only allowed in root programmatic options, or babel.config.js/config file options");var o=dX[l]||cX[l]||uX[l]||lX[l]||TFe;o(u,r[l])}),r}function TFe(e){var r=e.name;if(Xz[r]){var s=Xz[r],l=s.message,u=s.version,o=u===void 0?5:u;throw new Error("Using removed Babel "+o+" option: "+Xr(e)+" - "+l)}else{var c=new Error("Unknown option: "+Xr(e)+". Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.");throw c.code="BABEL_UNKNOWN_OPTION",c}}function wFe(e){if(hasOwnProperty.call(e,"sourceMap")&&hasOwnProperty.call(e,"sourceMaps"))throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both")}function PFe(e,r){if(e.parent.type==="env")throw new Error(Xr(e)+" is not allowed inside of another .env block");var s=e.parent,l=gc(e,r);if(l)for(var u=0,o=Object.keys(l);u<o.length;u++){var c=o[u],f=gc(Ms(e,c),l[c]);if(f){var h={type:"env",name:c,parent:s};X5(h,f)}}return l}function AFe(e,r){if(e.parent.type==="env")throw new Error(Xr(e)+" is not allowed inside an .env block");if(e.parent.type==="overrides")throw new Error(Xr(e)+" is not allowed inside an .overrides block");var s=e.parent,l=K5(e,r);if(l)for(var u=C(l.entries()),o;!(o=u()).done;){var c=je(o.value,2),f=c[0],h=c[1],m=Ms(e,f),g=gc(m,h);if(!g)throw new Error(Xr(m)+" must be an object");var x={type:"overrides",index:f,parent:s};X5(x,g)}return l}function fX(e,r,s,l){if(r!==0){var u=e[r-1],o=e[r];u.file&&u.options===void 0&&typeof o.value=="object"&&(l.message+=` +- Maybe you meant to use +`+('"'+s+`s": [ + ["`+u.file.request+'", '+JSON.stringify(o.value,void 0,2)+`] +] +`)+("To be a valid "+s+", its name and options should be wrapped in a pair of brackets"))}}var Fh="\\"+Cn.sep,J5="(?:"+Fh+"|$)",Y5="[^"+Fh+"]+",Q5="(?:"+Y5+Fh+")",hX="(?:"+Y5+J5+")",IFe=Q5+"*?",CFe=Q5+"*?"+hX+"?";function mX(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function yX(e,r){var s=Cn.resolve(r,e).split(Cn.sep);return new RegExp(["^"].concat(fe(s.map(function(l,u){var o=u===s.length-1;return l==="**"?o?CFe:IFe:l==="*"?o?hX:Q5:l.indexOf("*.")===0?Y5+mX(l.slice(1))+(o?J5:Fh):mX(l)+(o?J5:Fh)}))).join(""))}var Z5={Programmatic:0,Config:1},eS={title:function(r,s,l){var u="";return r===Z5.Programmatic?(u="programmatic options",s&&(u+=" from "+s)):u="config "+l,u},loc:function(r,s){var l="";return r!=null&&(l+=".overrides["+r+"]"),s!=null&&(l+='.env["'+s+'"]'),l},optionsAndDescriptors:re().mark(function e(r){var s,l,u;return re().wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return s=Object.assign({},r.options),delete s.overrides,delete s.env,c.t0=fe,c.delegateYield(r.plugins(),"t1",5);case 5:return c.t2=c.t1,l=(0,c.t0)(c.t2),l.length&&(s.plugins=l.map(function(f){return gX(f)})),c.t3=fe,c.delegateYield(r.presets(),"t4",10);case 10:return c.t5=c.t4,u=(0,c.t3)(c.t5),u.length&&(s.presets=fe(u).map(function(f){return gX(f)})),c.abrupt("return",JSON.stringify(s,void 0,2));case 14:case"end":return c.stop()}},e)})};function gX(e){var r,s=(r=e.file)==null?void 0:r.request;return s==null&&(typeof e.value=="object"?s=e.value:typeof e.value=="function"&&(s="[Function: "+e.value.toString().slice(0,50)+" ... ]")),s==null&&(s="[Unknown]"),e.options===void 0?s:e.name==null?[s,e.options]:[s,e.options,e.name]}var tS=function(){function e(){this._stack=[]}var r=e.prototype;return r.configure=function(l,u,o){var c=this,f=o.callerName,h=o.filepath;return l?function(m,g,x){c._stack.push({type:u,callerName:f,filepath:h,content:m,index:g,envName:x})}:function(){}},e.format=re().mark(function s(l){var u,o,c;return re().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return u=eS.title(l.type,l.callerName,l.filepath),o=eS.loc(l.index,l.envName),o&&(u+=" "+o),h.delegateYield(eS.optionsAndDescriptors(l.content),"t0",4);case 4:return c=h.t0,h.abrupt("return",u+` +`+c);case 6:case"end":return h.stop()}},s)}),r.output=re().mark(function s(){var l;return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(this._stack.length!==0){o.next=2;break}return o.abrupt("return","");case 2:return o.delegateYield(qn.all(this._stack.map(function(c){return e.format(c)})),"t0",3);case 3:return l=o.t0,o.abrupt("return",l.join(` + +`));case 5:case"end":return o.stop()}},s,this)}),_(e)}(),jFe=re().mark(bX),OFe=re().mark(xX),_Fe=re().mark(H0),NFe=re().mark(RX),vX=_E("babel:config:config-chain");function bX(e,r){var s;return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.delegateYield(kFe(e,r),"t0",1);case 1:if(s=u.t0,s){u.next=4;break}return u.abrupt("return",null);case 4:return u.abrupt("return",{plugins:X0(s.plugins),presets:X0(s.presets),options:s.options.map(function(o){return EX(o)}),files:new Set});case 5:case"end":return u.stop()}},jFe)}var kFe=iS({root:function(r){return DFe(r)},env:function(r,s){return LFe(r)(s)},overrides:function(r,s){return MFe(r)(s)},overridesEnv:function(r,s,l){return BFe(r)(s)(l)},createLogger:function(){return function(){}}}),DFe=Ds(function(e){return rS(e,e.alias,su)}),LFe=Ds(function(e){return Vo(function(r){return aS(e,e.alias,su,r)})}),MFe=Ds(function(e){return Vo(function(r){return nS(e,e.alias,su,r)})}),BFe=Ds(function(e){return Vo(function(r){return Vo(function(s){return sS(e,e.alias,su,r,s)})})});function xX(e,r){var s,l,u,o,c,f,h,m,g,x,R,w,T,I,P,O,j,D,k,B,F,L,V;return re().wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return u=new tS,K.delegateYield(VFe({options:e,dirname:r.cwd},r,void 0,u),"t0",2);case 2:if(o=K.t0,o){K.next=5;break}return K.abrupt("return",null);case 5:return K.delegateYield(u.output(),"t1",6);case 6:if(c=K.t1,typeof e.configFile!="string"){K.next=12;break}return K.delegateYield(m5(e.configFile,r.cwd,r.envName,r.caller),"t2",9);case 9:f=K.t2,K.next=15;break;case 12:if(e.configFile===!1){K.next=15;break}return K.delegateYield($H(r.root,r.envName,r.caller),"t3",14);case 14:f=K.t3;case 15:if(h=e.babelrc,m=e.babelrcRoots,g=r.cwd,x=z0(),R=new tS,!f){K.next=30;break}return w=$Fe(f),K.delegateYield(H0(w,r,void 0,R),"t4",22);case 22:if(T=K.t4,T){K.next=25;break}return K.abrupt("return",null);case 25:return K.delegateYield(R.output(),"t5",26);case 26:s=K.t5,h===void 0&&(h=w.options.babelrc),m===void 0&&(g=w.dirname,m=w.options.babelrcRoots),ap(x,T);case 30:if(O=!1,j=z0(),!((h===!0||h===void 0)&&typeof r.filename=="string")){K.next=55;break}return K.delegateYield(BH(r.filename),"t6",34);case 34:if(D=K.t6,!(D&&FFe(r,D,m,g))){K.next=55;break}return K.delegateYield(FH(D,r.envName,r.caller),"t7",37);case 37:if(k=K.t7,I=k.ignore,P=k.config,I&&j.files.add(I.filepath),I&&TX(r,I.ignore,null,I.dirname)&&(O=!0),!(P&&!O)){K.next=54;break}return B=qFe(P),F=new tS,K.delegateYield(H0(B,r,void 0,F),"t8",46);case 46:if(L=K.t8,L){K.next=51;break}O=!0,K.next=54;break;case 51:return K.delegateYield(F.output(),"t9",52);case 52:l=K.t9,ap(j,L);case 54:P&&O&&j.files.add(P.filepath);case 55:return r.showConfig&&console.log('Babel configs on "'+r.filename+`" (ascending priority): +`+[s,l,c].filter(function(G){return!!G}).join(` + +`)+` +-----End Babel configs-----`),V=ap(ap(ap(z0(),x),j),o),K.abrupt("return",{plugins:O?[]:X0(V.plugins),presets:O?[]:X0(V.presets),options:O?[]:V.options.map(function(G){return EX(G)}),fileHandling:O?"ignored":"transpile",ignore:I||void 0,babelrc:P||void 0,config:f||void 0,files:V.files});case 58:case"end":return K.stop()}},OFe)}function FFe(e,r,s,l){if(typeof s=="boolean")return s;var u=e.root;if(s===void 0)return r.directories.includes(u);var o=s;return Array.isArray(o)||(o=[o]),o=o.map(function(c){return typeof c=="string"?Cn.resolve(l,c):c}),o.length===1&&o[0]===u?r.directories.includes(u):o.some(function(c){return typeof c=="string"&&(c=yX(c,l)),r.directories.some(function(f){return wX(c,l,f,e)})})}var $Fe=Ds(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Bh("configfile",e.options,e.filepath)}}),qFe=Ds(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Bh("babelrcfile",e.options,e.filepath)}}),UFe=Ds(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Bh("extendsfile",e.options,e.filepath)}}),VFe=iS({root:function(r){return rS(r,"base",V0)},env:function(r,s){return aS(r,"base",V0,s)},overrides:function(r,s){return nS(r,"base",V0,s)},overridesEnv:function(r,s,l){return sS(r,"base",V0,s,l)},createLogger:function(r,s,l){return JFe(r,s,l)}}),WFe=iS({root:function(r){return GFe(r)},env:function(r,s){return KFe(r)(s)},overrides:function(r,s){return HFe(r)(s)},overridesEnv:function(r,s,l){return zFe(r)(s)(l)},createLogger:function(r,s,l){return XFe(r.filepath,s,l)}});function H0(e,r,s,l){var u;return re().wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return c.delegateYield(WFe(e,r,s,l),"t0",1);case 1:return u=c.t0,u==null||u.files.add(e.filepath),c.abrupt("return",u);case 4:case"end":return c.stop()}},_Fe)}var GFe=Ds(function(e){return rS(e,e.filepath,su)}),KFe=Ds(function(e){return Vo(function(r){return aS(e,e.filepath,su,r)})}),HFe=Ds(function(e){return Vo(function(r){return nS(e,e.filepath,su,r)})}),zFe=Ds(function(e){return Vo(function(r){return Vo(function(s){return sS(e,e.filepath,su,r,s)})})});function XFe(e,r,s){return s?s.configure(r.showConfig,Z5.Config,{filepath:e}):function(){}}function rS(e,r,s){var l=e.dirname,u=e.options;return s(l,u,r)}function JFe(e,r,s){var l;return s?s.configure(r.showConfig,Z5.Programmatic,{callerName:(l=r.caller)==null?void 0:l.name}):function(){}}function aS(e,r,s,l){var u,o=e.dirname,c=e.options,f=(u=c.env)==null?void 0:u[l];return f?s(o,f,r+'.env["'+l+'"]'):null}function nS(e,r,s,l){var u,o=e.dirname,c=e.options,f=(u=c.overrides)==null?void 0:u[l];if(!f)throw new Error("Assertion failure - missing override");return s(o,f,r+".overrides["+l+"]")}function sS(e,r,s,l,u){var o,c,f=e.dirname,h=e.options,m=(o=h.overrides)==null?void 0:o[l];if(!m)throw new Error("Assertion failure - missing override");var g=(c=m.env)==null?void 0:c[u];return g?s(f,g,r+".overrides["+l+'].env["'+u+'"]'):null}function iS(e){var r=e.root,s=e.env,l=e.overrides,u=e.overridesEnv,o=e.createLogger;return function(f,h,m,g){return m===void 0&&(m=new Set),re().mark(function x(){var R,w,T,I,P,O,j,D,k,B,F,L;return re().wrap(function(H){for(;;)switch(H.prev=H.next){case 0:if(R=f.dirname,w=[],T=r(f),J0(T,R,h,f.filepath)&&(w.push({config:T,envName:void 0,index:void 0}),I=s(f,h.envName),I&&J0(I,R,h,f.filepath)&&w.push({config:I,envName:h.envName,index:void 0}),(T.options.overrides||[]).forEach(function(K,G){var X=l(f,G);if(J0(X,R,h,f.filepath)){w.push({config:X,index:G,envName:void 0});var ue=u(f,G,h.envName);ue&&J0(ue,R,h,f.filepath)&&w.push({config:ue,index:G,envName:h.envName})}})),!w.some(function(K){var G=K.config.options,X=G.ignore,ue=G.only;return TX(h,X,ue,R)})){H.next=6;break}return H.abrupt("return",null);case 6:P=z0(),O=o(f,h,g),j=0,D=w;case 9:if(!(j<D.length)){H.next=19;break}return k=D[j],B=k.config,F=k.index,L=k.envName,H.delegateYield(RX(P,B.options,R,h,m,g),"t0",12);case 12:if(H.t0){H.next=14;break}return H.abrupt("return",null);case 14:return O(B,F,L),H.delegateYield(YFe(P,B),"t1",16);case 16:j++,H.next=9;break;case 19:return H.abrupt("return",P);case 20:case"end":return H.stop()}},x)})()}}function RX(e,r,s,l,u,o){var c,f;return re().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(r.extends!==void 0){m.next=2;break}return m.abrupt("return",!0);case 2:return m.delegateYield(m5(r.extends,s,l.envName,l.caller),"t0",3);case 3:if(c=m.t0,!u.has(c)){m.next=6;break}throw new Error("Configuration cycle detected loading "+c.filepath+`. +File already loaded following the config chain: +`+Array.from(u,function(g){return" - "+g.filepath}).join(` +`));case 6:return u.add(c),m.delegateYield(H0(UFe(c),l,u,o),"t1",8);case 8:if(f=m.t1,u.delete(c),f){m.next=12;break}return m.abrupt("return",!1);case 12:return ap(e,f),m.abrupt("return",!0);case 14:case"end":return m.stop()}},NFe)}function ap(e,r){var s,l,u;(s=e.options).push.apply(s,fe(r.options)),(l=e.plugins).push.apply(l,fe(r.plugins)),(u=e.presets).push.apply(u,fe(r.presets));for(var o=C(r.files),c;!(c=o()).done;){var f=c.value;e.files.add(f)}return e}function YFe(e,r){var s=r.options,l=r.plugins,u=r.presets;return re().mark(function o(c,f){return re().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return e.options.push(s),m.t0=(c=e.plugins).push,m.t1=c,m.t2=fe,m.delegateYield(l(),"t3",5);case 5:return m.t4=m.t3,m.t5=(0,m.t2)(m.t4),m.t0.apply.call(m.t0,m.t1,m.t5),m.t6=(f=e.presets).push,m.t7=f,m.t8=fe,m.delegateYield(u(),"t9",12);case 12:return m.t10=m.t9,m.t11=(0,m.t8)(m.t10),m.t6.apply.call(m.t6,m.t7,m.t11),m.abrupt("return",e);case 16:case"end":return m.stop()}},o)})()}function z0(){return{options:[],presets:[],plugins:[],files:new Set}}function EX(e){var r=Object.assign({},e);return delete r.extends,delete r.env,delete r.overrides,delete r.plugins,delete r.presets,delete r.passPerPreset,delete r.ignore,delete r.only,delete r.test,delete r.include,delete r.exclude,hasOwnProperty.call(r,"sourceMap")&&(r.sourceMaps=r.sourceMap,delete r.sourceMap),r}function X0(e){for(var r=new Map,s=[],l=C(e),u;!(u=l()).done;){var o=u.value;if(typeof o.value=="function"){var c=o.value,f=r.get(c);f||(f=new Map,r.set(c,f));var h=f.get(o.name);h?h.value=o:(h={value:o},s.push(h),o.ownPass||f.set(o.name,h))}else s.push({value:o})}return s.reduce(function(m,g){return m.push(g.value),m},[])}function J0(e,r,s,l){var u=e.options;return(u.test===void 0||oS(s,u.test,r,l))&&(u.include===void 0||oS(s,u.include,r,l))&&(u.exclude===void 0||!oS(s,u.exclude,r,l))}function oS(e,r,s,l){var u=Array.isArray(r)?r:[r];return lS(e,u,s,l)}function SX(e,r){return r instanceof RegExp?String(r):r}function TX(e,r,s,l){if(r&&lS(e,r,l)){var u,o='No config is applied to "'+((u=e.filename)!=null?u:"(unknown)")+'" because it matches one of `ignore: '+JSON.stringify(r,SX)+'` from "'+l+'"';return vX(o),e.showConfig&&console.log(o),!0}if(s&&!lS(e,s,l)){var c,f='No config is applied to "'+((c=e.filename)!=null?c:"(unknown)")+'" because it fails to match one of `only: '+JSON.stringify(s,SX)+'` from "'+l+'"';return vX(f),e.showConfig&&console.log(f),!0}return!1}function lS(e,r,s,l){return r.some(function(u){return wX(u,s,e.filename,e,l)})}function wX(e,r,s,l,u){if(typeof e=="function")return!!xFe(e)(s,{dirname:r,envName:l.envName,caller:l.caller});if(typeof s!="string")throw new z5("Configuration contains string/RegExp pattern, but no filename was passed to Babel",u);return typeof e=="string"&&(e=yX(e,r)),e.test(s)}var QFe={name:Bs,manipulateOptions:Ko,pre:Ko,post:Ko,inherits:Ko,visitor:ZFe,parserOverride:Ko,generatorOverride:Ko};function ZFe(e,r){var s=gc(e,r);if(s&&(Object.keys(s).forEach(function(l){l!=="_exploded"&&l!=="_verified"&&e$e(l,s[l])}),s.enter||s.exit))throw new Error(Xr(e)+' cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.');return s}function e$e(e,r){if(r&&typeof r=="object")Object.keys(r).forEach(function(s){if(s!=="enter"&&s!=="exit")throw new Error('.visitor["'+e+'"] may only have .enter and/or .exit handlers.')});else if(typeof r!="function")throw new Error('.visitor["'+e+'"] must be a function')}function t$e(e){var r={type:"root",source:"plugin"};return Object.keys(e).forEach(function(s){var l=QFe[s];if(l){var u={type:"option",name:s,parent:r};l(u,e[s])}else{var o=new Error("."+s+" is not a valid Plugin property");throw o.code="BABEL_UNKNOWN_PLUGIN_PROPERTY",o}}),e}function r$e(e){var r=function(u){return e.using(function(o){return typeof u>"u"?o.envName:typeof u=="function"?Nh(u(o.envName)):(Array.isArray(u)?u:[u]).some(function(c){if(typeof c!="string")throw new Error("Unexpected non-string value");return c===o.envName})})},s=function(u){return e.using(function(o){return Nh(u(o.caller))})};return{version:Uh,cache:e.simple(),env:r,async:function(){return!1},caller:s,assertVersion:n$e}}function PX(e,r){var s=function(){return JSON.parse(e.using(function(o){return JSON.stringify(o.targets)}))},l=function(o){r.push(o)};return Object.assign({},r$e(e),{targets:s,addExternalDependency:l})}function a$e(e,r){var s=function(u){return e.using(function(o){return o.assumptions[u]})};return Object.assign({},PX(e,r),{assumption:s})}function n$e(e){if(typeof e=="number"){if(!Number.isInteger(e))throw new Error("Expected string or integer value.");e="^"+e+".0.0-0"}if(typeof e!="string")throw new Error("Expected string or integer value.");if(!(e==="*"||i0.satisfies(Uh,e))){var r=Error.stackTraceLimit;typeof r=="number"&&r<25&&(Error.stackTraceLimit=25);var s=new Error('Requires Babel "'+e+'", but was loaded with "'+Uh+`". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.`);throw typeof r=="number"&&(Error.stackTraceLimit=r),Object.assign(s,{code:"BABEL_VERSION_UNSUPPORTED",version:Uh,range:e})}}var s$e=["showIgnoredFiles"],i$e=re().mark(uS),o$e=re().mark(AX);function l$e(e,r){switch(r){case"root":return e;case"upward-optional":{var s=MH();return s===null?e:s}case"upward":{var l=MH();if(l!==null)return l;throw Object.assign(new Error('Babel was run with rootMode:"upward" but a root could not '+('be found when searching upward from "'+e+`". +`)+"One of the following config files must be in the directory tree: "+('"'+cMe.join(", ")+'".')),{code:"BABEL_ROOT_NOT_FOUND",dirname:e})}default:throw new Error("Assertion failure - unknown rootMode value.")}}function uS(e){var r,s,l,u,o,c,f,h,m,g,x,R,w,T,I,P,O,j,D,k;return re().wrap(function(F){for(;;)switch(F.prev=F.next){case 0:if(!(e!=null&&(typeof e!="object"||Array.isArray(e)))){F.next=2;break}throw new Error("Babel options must be an object, null, or undefined");case 2:return r=e?Bh("arguments",e):{},s=r.envName,l=s===void 0?UH():s,u=r.cwd,o=u===void 0?".":u,c=r.root,f=c===void 0?".":c,h=r.rootMode,m=h===void 0?"root":h,g=r.caller,x=r.cloneInputAst,R=x===void 0?!0:x,w=Cn.resolve(o),T=l$e(Cn.resolve(w,f),m),I=typeof r.filename=="string"?Cn.resolve(o,r.filename):void 0,F.delegateYield(qH(),"t0",8);case 8:return P=F.t0,O={filename:I,cwd:w,root:T,envName:l,caller:g,showConfig:P===I},F.delegateYield(xX(r,O),"t1",11);case 11:if(j=F.t1,j){F.next=14;break}return F.abrupt("return",null);case 14:return D={assumptions:{}},j.options.forEach(function(L){v5(D,L)}),k=Object.assign({},D,{targets:HBe(D),cloneInputAst:R,babelrc:!1,configFile:!1,browserslistConfigFile:!1,passPerPreset:!1,envName:O.envName,cwd:O.cwd,root:O.root,rootMode:"root",filename:typeof O.filename=="string"?O.filename:void 0,plugins:j.plugins.map(function(L){return W5(L)}),presets:j.presets.map(function(L){return W5(L)})}),F.abrupt("return",{options:k,context:O,fileHandling:j.fileHandling,ignore:j.ignore,babelrc:j.babelrc,config:j.config,files:j.files});case 18:case"end":return F.stop()}},i$e)}function AX(e){var r,s,l,u,o,c,f,h,m;return re().wrap(function(x){for(;;)switch(x.prev=x.next){case 0:return r=!1,typeof e=="object"&&e!==null&&!Array.isArray(e)&&(s=e,r=s.showIgnoredFiles,e=Je(s,s$e)),x.delegateYield(uS(e),"t0",3);case 3:if(l=x.t0,l){x.next=6;break}return x.abrupt("return",null);case 6:if(u=l.options,o=l.babelrc,c=l.ignore,f=l.config,h=l.fileHandling,m=l.files,!(h==="ignored"&&!r)){x.next=9;break}return x.abrupt("return",null);case 9:return(u.plugins||[]).forEach(function(R){if(R.value instanceof _0)throw new Error("Passing cached plugin instances is not supported in babel.loadPartialConfig()")}),x.abrupt("return",new IX(u,o?o.filepath:void 0,c?c.filepath:void 0,f?f.filepath:void 0,h,m));case 11:case"end":return x.stop()}},o$e)}var IX=function(){function e(s,l,u,o,c,f){this.options=void 0,this.babelrc=void 0,this.babelignore=void 0,this.config=void 0,this.fileHandling=void 0,this.files=void 0,this.options=s,this.babelignore=u,this.babelrc=l,this.config=o,this.fileHandling=c,this.files=f,Object.freeze(this)}var r=e.prototype;return r.hasFilesystemConfig=function(){return this.babelrc!==void 0||this.config!==void 0},_(e)}();Object.freeze(IX.prototype);var u$e=re().mark(cS),c$e=re().mark(_X),Y0=qn(re().mark(function e(r){var s,l,u,o,c,f,h,m,g,x,R,w,T,I,P,O,j,D;return re().wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return B.delegateYield(uS(r),"t0",1);case 1:if(l=B.t0,l){B.next=4;break}return B.abrupt("return",null);case 4:if(u=l.options,o=l.context,c=l.fileHandling,c!=="ignored"){B.next=7;break}return B.abrupt("return",null);case 7:if(f={},h=u.plugins,m=u.presets,!(!h||!m)){B.next=11;break}throw new Error("Assertion failure - plugins and presets exist");case 11:return g=Object.assign({},o,{targets:u.targets}),x=function(L){var V=Hz(L);if(!V)throw new Error("Assertion failure - must be config item");return V},R=m.map(x),w=h.map(x),T=[[]],I=[],P=[],B.delegateYield(CX(o,re().mark(function F(L,V){var H,K,G,X,ue,oe,he,te,ae,J;return re().wrap(function(de){for(;;)switch(de.prev=de.next){case 0:H=[],K=0;case 2:if(!(K<L.length)){de.next=19;break}if(G=L[K],G.options===!1){de.next=16;break}return de.prev=5,de.delegateYield(_X(G,g),"t0",7);case 7:X=de.t0,de.next=14;break;case 10:throw de.prev=10,de.t1=de.catch(5),de.t1.code==="BABEL_UNKNOWN_OPTION"&&fX(L,K,"preset",de.t1),de.t1;case 14:P.push(X.externalDependencies),G.ownPass?H.push({preset:X.chain,pass:[]}):H.unshift({preset:X.chain,pass:V});case 16:K++,de.next=2;break;case 19:if(!(H.length>0)){de.next=34;break}T.splice.apply(T,[1,0].concat(fe(H.map(function($e){return $e.pass}).filter(function($e){return $e!==V})))),ue=C(H);case 22:if((oe=ue()).done){de.next=34;break}if(he=oe.value,te=he.preset,ae=he.pass,te){de.next=26;break}return de.abrupt("return",!0);case 26:return ae.push.apply(ae,fe(te.plugins)),de.delegateYield(F(te.presets,ae),"t2",28);case 28:if(J=de.t2,!J){de.next=31;break}return de.abrupt("return",!0);case 31:te.options.forEach(function($e){v5(f,$e)});case 32:de.next=22;break;case 34:case"end":return de.stop()}},F,null,[[5,10]])}))(R,T[0]),"t1",19);case 19:if(O=B.t1,!O){B.next=22;break}return B.abrupt("return",null);case 22:return j=f,v5(j,u),D=Object.assign({},g,{assumptions:(s=j.assumptions)!=null?s:{}}),B.delegateYield(CX(o,re().mark(function F(){var L,V,H,K,G,X,ue,oe;return re().wrap(function(te){for(;;)switch(te.prev=te.next){case 0:(L=T[0]).unshift.apply(L,fe(w)),V=0,H=T;case 2:if(!(V<H.length)){te.next=27;break}K=H[V],G=[],I.push(G),X=0;case 7:if(!(X<K.length)){te.next=24;break}if(ue=K[X],ue.options===!1){te.next=21;break}return te.prev=10,te.delegateYield(cS(ue,D),"t0",12);case 12:oe=te.t0,te.next=19;break;case 15:throw te.prev=15,te.t1=te.catch(10),te.t1.code==="BABEL_UNKNOWN_PLUGIN_PROPERTY"&&fX(K,X,"plugin",te.t1),te.t1;case 19:G.push(oe),P.push(oe.externalDependencies);case 21:X++,te.next=7;break;case 24:V++,te.next=2;break;case 27:case"end":return te.stop()}},F,null,[[10,15]])}))(),"t2",26);case 26:return j.plugins=I[0],j.presets=I.slice(1).filter(function(F){return F.length>0}).map(function(F){return{plugins:F}}),j.passPerPreset=j.presets.length>0,B.abrupt("return",{options:j,passes:I,externalDependencies:O0(P)});case 30:case"end":return B.stop()}},e)}));function CX(e,r){return re().mark(function s(l,u){var o;return re().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:return f.prev=0,f.delegateYield(r(l,u),"t0",2);case 2:return f.abrupt("return",f.t0);case 5:throw f.prev=5,f.t1=f.catch(0),/^\[BABEL\]/.test(f.t1.message)||(f.t1.message="[BABEL] "+((o=e.filename)!=null?o:"unknown file")+": "+f.t1.message),f.t1;case 9:case"end":return f.stop()}},s,null,[[0,5]])})}var jX=function(r){return b5(function(s,l){var u=s.value,o=s.options,c=s.dirname,f=s.alias;return re().mark(function h(){var m,g,x,R,w;return re().wrap(function(I){for(;;)switch(I.prev=I.next){case 0:if(o!==!1){I.next=2;break}throw new Error("Assertion failure");case 2:if(o=o||{},m=[],g=u,typeof u!="function"){I.next=17;break}return x=QH(u,"You appear to be using an async plugin/preset, but Babel has been called synchronously"),R=Object.assign({},d,r(l,m)),I.prev=8,I.delegateYield(x(R,o,c),"t0",10);case 10:g=I.t0,I.next=17;break;case 13:throw I.prev=13,I.t1=I.catch(8),f&&(I.t1.message+=" (While processing: "+JSON.stringify(f)+")"),I.t1;case 17:if(!(!g||typeof g!="object")){I.next=19;break}throw new Error("Plugin/Preset did not return an object.");case 19:if(!j0(g)){I.next=22;break}return I.delegateYield([],"t2",21);case 21:throw new Error(`You appear to be using a promise as a plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version. As an alternative, you can prefix the promise with "await". `+("(While processing: "+JSON.stringify(f)+")"));case 22:if(!(m.length>0&&(!l.configured()||l.mode()==="forever"))){I.next=27;break}throw w="A plugin/preset has external untracked dependencies "+("("+m[0]+"), but the cache "),l.configured()?w+=" has been configured to never be invalidated. ":w+="has not been configured to be invalidated when the external dependencies change. ",w+="Plugins/presets should configure their cache to be invalidated when the external dependencies change, for example using `api.cache.invalidate(() => statSync(filepath).mtimeMs)` or `api.cache.never()`\n"+("(While processing: "+JSON.stringify(f)+")"),new Error(w);case 27:return I.abrupt("return",{value:g,options:o,dirname:c,alias:f,externalDependencies:O0(m)});case 28:case"end":return I.stop()}},h,null,[[8,13]])})()})},d$e=jX(a$e),p$e=jX(PX),f$e=b5(function(e,r){var s=e.value,l=e.options,u=e.dirname,o=e.alias,c=e.externalDependencies;return re().mark(function f(){var h,m,g,x;return re().wrap(function(w){for(;;)switch(w.prev=w.next){case 0:if(h=t$e(s),m=Object.assign({},h),m.visitor&&(m.visitor=$a.explode(Object.assign({},m.visitor))),!m.inherits){w.next=12;break}return g={name:void 0,alias:o+"$inherits",value:m.inherits,options:l,dirname:u},w.delegateYield(SMe(cS,function(T){return r.invalidate(function(I){return T(g,I)})}),"t0",6);case 6:x=w.t0,m.pre=pS(x.pre,m.pre),m.post=pS(x.post,m.post),m.manipulateOptions=pS(x.manipulateOptions,m.manipulateOptions),m.visitor=$a.visitors.merge([x.visitor||{},m.visitor||{}]),x.externalDependencies.length>0&&(c.length===0?c=x.externalDependencies:c=O0([c,x.externalDependencies]));case 12:return w.abrupt("return",new _0(m,l,o,c));case 13:case"end":return w.stop()}},f)})()});function cS(e,r){return re().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:if(!(e.value instanceof _0)){l.next=4;break}if(!e.options){l.next=3;break}throw new Error("Passed options to an existing Plugin instance will not work.");case 3:return l.abrupt("return",e.value);case 4:return l.t0=f$e,l.delegateYield(d$e(e,r),"t1",6);case 6:return l.t2=l.t1,l.t3=r,l.delegateYield((0,l.t0)(l.t2,l.t3),"t4",9);case 9:return l.abrupt("return",l.t4);case 10:case"end":return l.stop()}},u$e)}var dS=function(r){return r&&typeof r!="function"},OX=function(r,s){if(dS(r.test)||dS(r.include)||dS(r.exclude)){var l=s.name?'"'+s.name+'"':"/* your preset */";throw new z5(["Preset "+l+" requires a filename to be set when babel is called directly,","```","babel.transformSync(code, { filename: 'file.ts', presets: ["+l+"] });","```","See https://babeljs.io/docs/en/options#filename for more information."].join(` +`))}},h$e=function(r,s,l){if(!s.filename){var u,o=r.options;OX(o,l),(u=o.overrides)==null||u.forEach(function(c){return OX(c,l)})}},m$e=Ds(function(e){var r=e.value,s=e.dirname,l=e.alias,u=e.externalDependencies;return{options:Bh("preset",r),alias:l,dirname:s,externalDependencies:u}});function _X(e,r){var s;return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.t0=m$e,u.delegateYield(p$e(e,r),"t1",2);case 2:return u.t2=u.t1,s=(0,u.t0)(u.t2),h$e(s,r,e),u.delegateYield(bX(s,r),"t3",6);case 6:return u.t4=u.t3,u.t5=s.externalDependencies,u.abrupt("return",{chain:u.t4,externalDependencies:u.t5});case 9:case"end":return u.stop()}},c$e)}function pS(e,r){var s=[e,r].filter(Boolean);return s.length<=1?s[0]:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];for(var c=C(s),f;!(f=c()).done;){var h=f.value;h.apply(this,u)}}}var y$e=re().mark(kX),Q0=qn(AX);function g$e(){return Ya(Q0.async).apply(void 0,arguments)}function NX(){return Ya(Q0.sync).apply(void 0,arguments)}function v$e(e,r){if(r!==void 0)Ya(Q0.errback)(e,r);else if(typeof e=="function")Ya(Q0.errback)(void 0,e);else return NX(e)}function kX(e){var r,s;return re().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.delegateYield(Y0(e),"t0",1);case 1:return s=u.t0,u.abrupt("return",(r=s==null?void 0:s.options)!=null?r:null);case 3:case"end":return u.stop()}},y$e)}var Z0=qn(kX);function b$e(){return Ya(Z0.async).apply(void 0,arguments)}function fS(){return Ya(Z0.sync).apply(void 0,arguments)}function x$e(e,r){if(r!==void 0)Ya(Z0.errback)(e,r);else if(typeof e=="function")Ya(Z0.errback)(void 0,e);else return fS(e)}var ev=qn(sFe);function R$e(){return Ya(ev.async).apply(void 0,arguments)}function DX(){return Ya(ev.sync).apply(void 0,arguments)}function E$e(e,r,s){if(s!==void 0)Ya(ev.errback)(e,r,s);else if(typeof r=="function")Ya(ev.errback)(e,void 0,s);else return DX(e,r)}var hS=function(){function e(s,l,u){this._map=new Map,this.key=void 0,this.file=void 0,this.opts=void 0,this.cwd=void 0,this.filename=void 0,this.key=l,this.file=s,this.opts=u||{},this.cwd=s.opts.cwd,this.filename=s.opts.filename}var r=e.prototype;return r.set=function(l,u){this._map.set(l,u)},r.get=function(l){return this._map.get(l)},r.availableHelper=function(l,u){return this.file.availableHelper(l,u)},r.addHelper=function(l){return this.file.addHelper(l)},r.buildCodeFrameError=function(l,u,o){return this.file.buildCodeFrameError(l,u,o)},_(e)}();hS.prototype.getModuleName=function(){return this.file.getModuleName()},hS.prototype.addImport=function(){this.file.addImport()};var mS,LX={name:"internal.blockHoist",visitor:{Block:{exit:function(r){var s=r.node;s.body=MX(s.body)}},SwitchCase:{exit:function(r){var s=r.node;s.consequent=MX(s.consequent)}}}};function MX(e){for(var r=Math.pow(2,30)-1,s=!1,l=0;l<e.length;l++){var u=e[l],o=BX(u);if(o>r){s=!0;break}r=o}return s?T$e(e.slice()):e}function S$e(){return mS||(mS=new _0(Object.assign({},LX,{visitor:$a.explode(LX.visitor)}),{})),mS}function BX(e){var r=e==null?void 0:e._blockHoist;return r==null?1:r===!0?2:r}function T$e(e){for(var r=Object.create(null),s=0;s<e.length;s++){var l=e[s],u=BX(l),o=r[u]||(r[u]=[]);o.push(l)}for(var c=Object.keys(r).map(function(I){return+I}).sort(function(I,P){return P-I}),f=0,h=C(c),m;!(m=h()).done;)for(var g=m.value,x=r[g],R=C(x),w;!(w=R()).done;){var T=w.value;e[f++]=T}return e}function FX(e){for(var r=e.options,s=r.filename,l=r.cwd,u=r.filenameRelative,o=u===void 0?typeof s=="string"?Cn.relative(l,s):"unknown":u,c=r.sourceType,f=c===void 0?"module":c,h=r.inputSourceMap,m=r.sourceMaps,g=m===void 0?!!h:m,x=r.sourceRoot,R=x===void 0?e.options.moduleRoot:x,w=r.sourceFileName,T=w===void 0?Cn.basename(o):w,I=r.comments,P=I===void 0?!0:I,O=r.compact,j=O===void 0?"auto":O,D=e.options,k=Object.assign({},D,{parserOpts:Object.assign({sourceType:Cn.extname(o)===".mjs"?"module":f,sourceFileName:s,plugins:[]},D.parserOpts),generatorOpts:Object.assign({filename:s,auxiliaryCommentBefore:D.auxiliaryCommentBefore,auxiliaryCommentAfter:D.auxiliaryCommentAfter,retainLines:D.retainLines,comments:P,shouldPrintComment:D.shouldPrintComment,compact:j,minified:D.minified,sourceMaps:g,sourceRoot:R,sourceFileName:T},D.generatorOpts)}),B=C(e.passes),F;!(F=B()).done;)for(var L=F.value,V=C(L),H;!(H=V()).done;){var K=H.value;K.manipulateOptions&&K.manipulateOptions(k,k.parserOpts)}return k}var w$e={},$h={};(function(e){Object.defineProperty(e,"commentRegex",{get:function(){return/^\s*?\/[\/\*][@#]\s+?sourceMappingURL=data:(((?:application|text)\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/mg}}),Object.defineProperty(e,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+?sourceMappingURL=([^\s'"`]+?)[ \t]*?$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*?(?:\*\/){1}[ \t]*?$)/mg}});var r;typeof Nt<"u"?typeof Nt.from=="function"?r=s:r=l:r=u;function s(R){return Nt.from(R,"base64").toString()}function l(R){if(typeof value=="number")throw new TypeError("The value to decode must not be of type number.");return new Nt(R,"base64").toString()}function u(R){return decodeURIComponent(escape(atob(R)))}function o(R){return R.split(",").pop()}function c(R,w){var T=e.mapFileCommentRegex.exec(R),I=T[1]||T[2];try{var R=w(I);return R!=null&&typeof R.catch=="function"?R.catch(P):R}catch(O){P(O)}function P(O){throw new Error("An error occurred while trying to read the map file at "+I+` +`+O.stack)}}function f(R,w){w=w||{},w.hasComment&&(R=o(R)),w.encoding==="base64"?R=r(R):w.encoding==="uri"&&(R=decodeURIComponent(R)),(w.isJSON||w.encoding)&&(R=JSON.parse(R)),this.sourcemap=R}f.prototype.toJSON=function(R){return JSON.stringify(this.sourcemap,null,R)},typeof Nt<"u"?typeof Nt.from=="function"?f.prototype.toBase64=h:f.prototype.toBase64=m:f.prototype.toBase64=g;function h(){var R=this.toJSON();return Nt.from(R,"utf8").toString("base64")}function m(){var R=this.toJSON();if(typeof R=="number")throw new TypeError("The json to encode must not be of type number.");return new Nt(R,"utf8").toString("base64")}function g(){var R=this.toJSON();return btoa(unescape(encodeURIComponent(R)))}f.prototype.toURI=function(){var R=this.toJSON();return encodeURIComponent(R)},f.prototype.toComment=function(R){var w,T,I;return R!=null&&R.encoding==="uri"?(w="",T=this.toURI()):(w=";base64",T=this.toBase64()),I="sourceMappingURL=data:application/json;charset=utf-8"+w+","+T,R!=null&&R.multiline?"/*# "+I+" */":"//# "+I},f.prototype.toObject=function(){return JSON.parse(this.toJSON())},f.prototype.addProperty=function(R,w){if(this.sourcemap.hasOwnProperty(R))throw new Error('property "'+R+'" already exists on the sourcemap, use set property instead');return this.setProperty(R,w)},f.prototype.setProperty=function(R,w){return this.sourcemap[R]=w,this},f.prototype.getProperty=function(R){return this.sourcemap[R]},e.fromObject=function(R){return new f(R)},e.fromJSON=function(R){return new f(R,{isJSON:!0})},e.fromURI=function(R){return new f(R,{encoding:"uri"})},e.fromBase64=function(R){return new f(R,{encoding:"base64"})},e.fromComment=function(R){var w,T;return R=R.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),w=e.commentRegex.exec(R),T=w&&w[4]||"uri",new f(R,{encoding:T,hasComment:!0})};function x(R){return new f(R,{isJSON:!0})}e.fromMapFileComment=function(R,w){if(typeof w=="string")throw new Error("String directory paths are no longer supported with `fromMapFileComment`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading");var T=c(R,w);return T!=null&&typeof T.then=="function"?T.then(x):x(T)},e.fromSource=function(R){var w=R.match(e.commentRegex);return w?e.fromComment(w.pop()):null},e.fromMapFileSource=function(R,w){if(typeof w=="string")throw new Error("String directory paths are no longer supported with `fromMapFileSource`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading");var T=R.match(e.mapFileCommentRegex);return T?e.fromMapFileComment(T.pop(),w):null},e.removeComments=function(R){return R.replace(e.commentRegex,"")},e.removeMapFileComments=function(R){return R.replace(e.mapFileCommentRegex,"")},e.generateMapFileComment=function(R,w){var T="sourceMappingURL="+R;return w&&w.multiline?"/*# "+T+" */":"//# "+T}})($h);var $X={asyncDoExpressions:{syntax:{name:"@babel/plugin-syntax-async-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions"}},decimal:{syntax:{name:"@babel/plugin-syntax-decimal",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal"}},decorators:{syntax:{name:"@babel/plugin-syntax-decorators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators"},transform:{name:"@babel/plugin-proposal-decorators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators"}},doExpressions:{syntax:{name:"@babel/plugin-syntax-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions"},transform:{name:"@babel/plugin-proposal-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions"}},exportDefaultFrom:{syntax:{name:"@babel/plugin-syntax-export-default-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from"},transform:{name:"@babel/plugin-proposal-export-default-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from"}},flow:{syntax:{name:"@babel/plugin-syntax-flow",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow"},transform:{name:"@babel/preset-flow",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-flow"}},functionBind:{syntax:{name:"@babel/plugin-syntax-function-bind",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind"},transform:{name:"@babel/plugin-proposal-function-bind",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind"}},functionSent:{syntax:{name:"@babel/plugin-syntax-function-sent",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent"},transform:{name:"@babel/plugin-proposal-function-sent",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent"}},jsx:{syntax:{name:"@babel/plugin-syntax-jsx",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx"},transform:{name:"@babel/preset-react",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-react"}},importAttributes:{syntax:{name:"@babel/plugin-syntax-import-attributes",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes"}},pipelineOperator:{syntax:{name:"@babel/plugin-syntax-pipeline-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator"},transform:{name:"@babel/plugin-proposal-pipeline-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator"}},recordAndTuple:{syntax:{name:"@babel/plugin-syntax-record-and-tuple",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple"}},throwExpressions:{syntax:{name:"@babel/plugin-syntax-throw-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions"},transform:{name:"@babel/plugin-proposal-throw-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions"}},typescript:{syntax:{name:"@babel/plugin-syntax-typescript",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript"},transform:{name:"@babel/preset-typescript",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript"}}};Object.assign($X,{asyncGenerators:{syntax:{name:"@babel/plugin-syntax-async-generators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators"},transform:{name:"@babel/plugin-transform-async-generator-functions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions"}},classProperties:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties"}},classPrivateProperties:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties"}},classPrivateMethods:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-private-methods",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods"}},classStaticBlock:{syntax:{name:"@babel/plugin-syntax-class-static-block",url:"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block"},transform:{name:"@babel/plugin-transform-class-static-block",url:"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block"}},dynamicImport:{syntax:{name:"@babel/plugin-syntax-dynamic-import",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import"}},exportNamespaceFrom:{syntax:{name:"@babel/plugin-syntax-export-namespace-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from"},transform:{name:"@babel/plugin-transform-export-namespace-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from"}},importAssertions:{syntax:{name:"@babel/plugin-syntax-import-assertions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions"}},importMeta:{syntax:{name:"@babel/plugin-syntax-import-meta",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta"}},logicalAssignment:{syntax:{name:"@babel/plugin-syntax-logical-assignment-operators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators"},transform:{name:"@babel/plugin-transform-logical-assignment-operators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators"}},moduleStringNames:{syntax:{name:"@babel/plugin-syntax-module-string-names",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names"}},numericSeparator:{syntax:{name:"@babel/plugin-syntax-numeric-separator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator"},transform:{name:"@babel/plugin-transform-numeric-separator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator"}},nullishCoalescingOperator:{syntax:{name:"@babel/plugin-syntax-nullish-coalescing-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator"},transform:{name:"@babel/plugin-transform-nullish-coalescing-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator"}},objectRestSpread:{syntax:{name:"@babel/plugin-syntax-object-rest-spread",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread"},transform:{name:"@babel/plugin-transform-object-rest-spread",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread"}},optionalCatchBinding:{syntax:{name:"@babel/plugin-syntax-optional-catch-binding",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding"},transform:{name:"@babel/plugin-transform-optional-catch-binding",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding"}},optionalChaining:{syntax:{name:"@babel/plugin-syntax-optional-chaining",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining"},transform:{name:"@babel/plugin-transform-optional-chaining",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining"}},privateIn:{syntax:{name:"@babel/plugin-syntax-private-property-in-object",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object"},transform:{name:"@babel/plugin-transform-private-property-in-object",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object"}},regexpUnicodeSets:{syntax:{name:"@babel/plugin-syntax-unicode-sets-regex",url:"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md"},transform:{name:"@babel/plugin-transform-unicode-sets-regex",url:"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md"}}});var qX=function(r){var s=r.name,l=r.url;return s+" ("+l+")"};function P$e(e,r,s,l){var u="Support for the experimental syntax '"+e+"' isn't currently enabled "+("("+r.line+":"+(r.column+1)+`): + +`)+s,o=$X[e];if(o){var c=o.syntax,f=o.transform;if(c){var h=qX(c);if(f){var m=qX(f),g=f.name.startsWith("@babel/plugin")?"plugins":"presets";u+=` + +Add `+m+" to the '"+g+`' section of your Babel config to enable transformation. +If you want to leave it as-is, add `+h+" to the 'plugins' section to enable parsing."}else u+=` + +Add `+h+" to the 'plugins' section of your Babel config to enable parsing."}}var x=l==="unknown"?"<name of the input file>":l;return u+=` + +If you already added the plugin for this syntax to your config, it's possible that your config isn't being loaded. +You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration: + npx cross-env BABEL_SHOW_CONFIG_FOR=`+x+` <your build command> +See https://babeljs.io/docs/configuration#print-effective-configs for more info. +`,u}function UX(e,r,s){var l=r.parserOpts,u=r.highlightCode,o=u===void 0?!0:u,c=r.filename,f=c===void 0?"unknown":c;return re().mark(function h(){var m,g,x,R,w,T,I,P,O,j,D,k;return re().wrap(function(F){for(;;)switch(F.prev=F.next){case 0:for(F.prev=0,m=[],g=C(e);!(x=g()).done;)for(R=x.value,w=C(R);!(T=w()).done;)I=T.value,P=I.parserOverride,P&&(O=P(s,l,oh),O!==void 0&&m.push(O));if(m.length!==0){F.next=7;break}return F.abrupt("return",oh(s,l));case 7:if(m.length!==1){F.next=12;break}return F.delegateYield([],"t0",9);case 9:if(typeof m[0].then!="function"){F.next=11;break}throw new Error("You appear to be using an async parser plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");case 11:return F.abrupt("return",m[0]);case 12:throw new Error("More than one plugin attempted to override parsing.");case 15:throw F.prev=15,F.t1=F.catch(0),F.t1.code==="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"&&(F.t1.message+=` +Consider renaming the file to '.mjs', or setting sourceType:module or sourceType:unambiguous in your Babel config for this file.`),j=F.t1.loc,D=F.t1.missingPlugin,j&&(k=g1(s,{start:{line:j.line,column:j.column+1}},{highlightCode:o}),D?F.t1.message=f+": "+P$e(D[0],j,k,f):F.t1.message=f+": "+F.t1.message+` + +`+k,F.t1.code="BABEL_PARSE_ERROR"),F.t1;case 21:case"end":return F.stop()}},h,null,[[0,15]])})()}function yS(e,r){if(e!==null){if(r.has(e))return r.get(e);var s;if(Array.isArray(e)){s=new Array(e.length),r.set(e,s);for(var l=0;l<e.length;l++)s[l]=typeof e[l]!="object"?e[l]:yS(e[l],r)}else{s={},r.set(e,s);for(var u=Object.keys(e),o=0;o<u.length;o++){var c=u[o];s[c]=typeof e[c]!="object"?e[c]:yS(e[c],r)}}return s}return e}function A$e(e){return typeof e!="object"?e:yS(e,new Map)}var I$e=re().mark(WX),C$e=lR,j$e=Ul,gS=_E("babel:transform:file"),O$e=/^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,.*$/,VX=/^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/;function WX(e,r,s,l){var u,o,c,f,h;return re().wrap(function(g){for(;;)switch(g.prev=g.next){case 0:if(s=""+(s||""),!l){g.next=11;break}if(l.type!=="Program"){g.next=6;break}l=C$e(l,[],[]),g.next=8;break;case 6:if(l.type==="File"){g.next=8;break}throw new Error("AST root must be a Program or File node");case 8:r.cloneInputAst&&(l=A$e(l)),g.next=13;break;case 11:return g.delegateYield(UX(e,r,s),"t0",12);case 12:l=g.t0;case 13:if(u=null,r.inputSourceMap!==!1){if(typeof r.inputSourceMap=="object"&&(u=$h.fromObject(r.inputSourceMap)),!u&&(o=GX(O$e,l),o))try{u=$h.fromComment("//"+o)}catch{gS("discarding unknown inline input sourcemap")}if(!u)if(c=GX(VX,l),typeof r.filename=="string"&&c)try{f=VX.exec(c),h=w$e.readFileSync(Cn.resolve(Cn.dirname(r.filename),f[1]),"utf8"),u=$h.fromJSON(h)}catch(x){gS("discarding unknown file input sourcemap",x)}else c&&gS("discarding un-loadable file input sourcemap")}return g.abrupt("return",new Oh(r,{code:s,ast:l,inputMap:u}));case 16:case"end":return g.stop()}},I$e)}function vS(e,r,s){return r&&(r=r.filter(function(l){var u=l.value;return e.test(u)?(s=u,!1):!0})),[r,s]}function GX(e,r){var s=null;return j$e(r,function(l){var u=vS(e,l.leadingComments,s),o=je(u,2);l.leadingComments=o[0],s=o[1];var c=vS(e,l.innerComments,s),f=je(c,2);l.innerComments=f[0],s=f[1];var h=vS(e,l.trailingComments,s),m=je(h,2);l.trailingComments=m[0],s=m[1]}),s}var bS={exports:{}};(function(e,r){(function(s,l){l(r,$V(),KE())})(ci,function(s,l,u){s.addSegment=void 0,s.addMapping=void 0,s.setSourceContent=void 0,s.decodedMap=void 0,s.encodedMap=void 0,s.allMappings=void 0;var o=_(function(R){var w=R===void 0?{}:R,T=w.file,I=w.sourceRoot;this._names=new l.SetArray,this._sources=new l.SetArray,this._sourcesContent=[],this._mappings=[],this.file=T,this.sourceRoot=I});(function(){s.addSegment=function(x,R,w,T,I,P,O){var j=x._mappings,D=x._sources,k=x._sourcesContent,B=x._names,F=c(j,R);if(T==null){var L=[w],V=f(F,w,L);return g(F,V,L)}var H=l.put(D,T),K=O?[w,H,I,P,l.put(B,O)]:[w,H,I,P],G=f(F,w,K);H===k.length&&(k[H]=null),g(F,G,K)},s.addMapping=function(x,R){var w=R.generated,T=R.source,I=R.original,P=R.name;return s.addSegment(x,w.line-1,w.column,T,I==null?void 0:I.line-1,I==null?void 0:I.column,P)},s.setSourceContent=function(x,R,w){var T=x._sources,I=x._sourcesContent;I[l.put(T,R)]=w},s.decodedMap=function(x){var R=x.file,w=x.sourceRoot,T=x._mappings,I=x._sources,P=x._sourcesContent,O=x._names;return{version:3,file:R,names:O.array,sourceRoot:w||void 0,sources:I.array,sourcesContent:P,mappings:T}},s.encodedMap=function(x){var R=s.decodedMap(x);return Object.assign(Object.assign({},R),{mappings:u.encode(R.mappings)})},s.allMappings=function(x){for(var R=[],w=x._mappings,T=x._sources,I=x._names,P=0;P<w.length;P++)for(var O=w[P],j=0;j<O.length;j++){var D=O[j],k={line:P+1,column:D[0]},B=void 0,F=void 0,L=void 0;D.length!==1&&(B=T.array[D[1]],F={line:D[2]+1,column:D[3]},D.length===5&&(L=I.array[D[4]])),R.push({generated:k,source:B,original:F,name:L})}return R}})();function c(x,R){for(var w=x.length;w<=R;w++)x[w]=[];return x[R]}function f(x,R,w){for(var T=x.length,I=T-1;I>=0;I--,T--){var P=x[I],O=P[0];if(!(O>R)){if(O<R)break;var j=h(P,w);if(j===0)return T;if(j<0)break}}return T}function h(x,R){var w=m(x.length,R.length);return w!==0?w:x.length===1?0:(w=m(x[1],R[1]),w!==0||(w=m(x[2],R[2]),w!==0)||(w=m(x[3],R[3]),w!==0)?w:x.length===4?0:m(x[4],R[4]))}function m(x,R){return x-R}function g(x,R,w){if(R!==-1){for(var T=x.length;T>R;T--)x[T]=x[T-1];x[R]=w}}s.GenMapping=o,Object.defineProperty(s,"__esModule",{value:!0})})})(bS,bS.exports);var qh=bS.exports,KX={source:null,column:null,line:null,name:null,content:null},_$e=[];function HX(e,r,s,l){return{map:e,sources:r,source:s,content:l}}function zX(e,r){return HX(e,r,"",null)}function N$e(e,r){return HX(null,_$e,e,r)}function k$e(e){for(var r=new qh.GenMapping({file:e.map.file}),s=e.sources,l=e.map,u=l.names,o=Jl.decodedMappings(l),c=0;c<o.length;c++)for(var f=o[c],h=null,m=null,g=null,x=0;x<f.length;x++){var R=f[x],w=R[0],T=KX;if(R.length!==1){var I=s[R[1]];if(T=XX(I,R[2],R[3],R.length===5?u[R[4]]:""),T==null)continue}var P=T,O=P.column,j=P.line,D=P.name,k=P.content,B=P.source;j===m&&O===g&&B===h||(m=j,g=O,h=B,qh.addSegment(r,c,w,B,j,O,D),k!=null&&qh.setSourceContent(r,B,k))}return r}function XX(e,r,s,l){if(!e.map)return{column:s,line:r,name:l,source:e.source,content:e.content};var u=Jl.traceSegment(e.map,r,s);return u==null?null:u.length===1?KX:XX(e.sources[u[1]],u[2],u[3],u.length===5?e.map.names[u[4]]:l)}function D$e(e){return Array.isArray(e)?e:[e]}function L$e(e,r){for(var s=D$e(e).map(function(f){return new Jl.TraceMap(f,"")}),l=s.pop(),u=0;u<s.length;u++)if(s[u].sources.length>1)throw new Error("Transformation map "+u+` must have exactly one source file. +Did you specify these with the most recent transformation maps first?`);for(var o=JX(l,r,"",0),c=s.length-1;c>=0;c--)o=zX(s[c],[o]);return o}function JX(e,r,s,l){var u=e.resolvedSources,o=e.sourcesContent,c=l+1,f=u.map(function(h,m){var g={importer:s,depth:c,source:h||"",content:void 0},x=r(g.source,g),R=g.source,w=g.content;if(x)return JX(new Jl.TraceMap(x,R),r,R,c);var T=w!==void 0?w:o?o[m]:null;return N$e(R,T)});return zX(e,f)}var M$e=function(){function e(s,l){var u=l.decodedMappings?qh.decodedMap(s):qh.encodedMap(s);this.version=u.version,this.file=u.file,this.mappings=u.mappings,this.names=u.names,this.sourceRoot=u.sourceRoot,this.sources=u.sources,l.excludeContent||(this.sourcesContent=u.sourcesContent)}var r=e.prototype;return r.toString=function(){return JSON.stringify(this)},_(e)}();function B$e(e,r,s){var l={excludeContent:!!s,decodedMappings:!1},u=L$e(e,r);return new M$e(k$e(u),l)}function F$e(e,r,s){var l=s.replace(/\\/g,"/"),u=!1,o=B$e(YX(r),function(c,f){return c===l&&!u?(u=!0,f.source="",YX(e)):null});return typeof e.sourceRoot=="string"&&(o.sourceRoot=e.sourceRoot),Object.assign({},o)}function YX(e){return Object.assign({},e,{sourceRoot:null})}function $$e(e,r){var s=r.opts,l=r.ast,u=r.code,o=r.inputMap,c=s.generatorOpts;c.inputSourceMap=o==null?void 0:o.toObject();for(var f=[],h=C(e),m;!(m=h()).done;)for(var g=m.value,x=C(g),R;!(R=x()).done;){var w=R.value,T=w.generatorOverride;if(T){var I=T(l,c,u,Wd);I!==void 0&&f.push(I)}}var P;if(f.length===0)P=Wd(l,c,u);else if(f.length===1){if(P=f[0],typeof P.then=="function")throw new Error("You appear to be using an async codegen plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.")}else throw new Error("More than one plugin attempted to override codegen.");var O=P,j=O.code,D=O.decodedMap,k=D===void 0?P.map:D;return P.__mergedMap?k=Object.assign({},P.map):k&&(o?k=F$e(o.toObject(),k,c.sourceFileName):k=P.map),(s.sourceMaps==="inline"||s.sourceMaps==="both")&&(j+=` +`+$h.fromObject(k).toComment()),s.sourceMaps==="inline"&&(k=null),{outputCode:j,outputMap:k}}var q$e=re().mark(xS),U$e=re().mark(QX);function xS(e,r,s){var l,u,o,c,f,h,m;return re().wrap(function(x){for(;;)switch(x.prev=x.next){case 0:return x.delegateYield(WX(e.passes,FX(e),r,s),"t0",1);case 1:return l=x.t0,u=l.opts,x.prev=3,x.delegateYield(QX(l,e.passes),"t1",5);case 5:x.next=12;break;case 7:throw x.prev=7,x.t2=x.catch(3),x.t2.message=((o=u.filename)!=null?o:"unknown file")+": "+x.t2.message,x.t2.code||(x.t2.code="BABEL_TRANSFORM_ERROR"),x.t2;case 12:x.prev=12,u.code!==!1&&(h=$$e(e.passes,l),c=h.outputCode,f=h.outputMap),x.next=21;break;case 16:throw x.prev=16,x.t3=x.catch(12),x.t3.message=((m=u.filename)!=null?m:"unknown file")+": "+x.t3.message,x.t3.code||(x.t3.code="BABEL_GENERATE_ERROR"),x.t3;case 21:return x.abrupt("return",{metadata:l.metadata,options:u,ast:u.ast===!0?l.ast:null,code:c===void 0?null:c,map:f===void 0?null:f,sourceType:l.ast.program.sourceType,externalDependencies:AMe(e.externalDependencies)});case 22:case"end":return x.stop()}},q$e,null,[[3,7],[12,16]])}function QX(e,r){var s,l,u,o,c,f,h,m,g,x,R,w,T,I,P,O,j,D,k,B,F,L,V,H,K;return re().wrap(function(X){for(;;)switch(X.prev=X.next){case 0:s=C(r);case 1:if((l=s()).done){X.next=35;break}for(u=l.value,o=[],c=[],f=[],h=C(u.concat([S$e()]));!(m=h()).done;)g=m.value,x=new hS(e,g.key,g.options),o.push([g,x]),c.push(x),f.push(g.visitor);R=0,w=o;case 8:if(!(R<w.length)){X.next=19;break}if(T=je(w[R],2),I=T[0],P=T[1],O=I.pre,!O){X.next=16;break}return j=O.call(P,e),X.delegateYield([],"t0",14);case 14:if(!ZX(j)){X.next=16;break}throw new Error("You appear to be using an plugin with an async .pre, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");case 16:R++,X.next=8;break;case 19:D=$a.visitors.merge(f,c,e.opts.wrapPluginVisitorMethod),$a(e.ast,D,e.scope),k=0,B=o;case 22:if(!(k<B.length)){X.next=33;break}if(F=je(B[k],2),L=F[0],V=F[1],H=L.post,!H){X.next=30;break}return K=H.call(V,e),X.delegateYield([],"t1",28);case 28:if(!ZX(K)){X.next=30;break}throw new Error("You appear to be using an plugin with an async .post, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");case 30:k++,X.next=22;break;case 33:X.next=1;break;case 35:case"end":return X.stop()}},U$e)}function ZX(e){return!!e&&(typeof e=="object"||typeof e=="function")&&!!e.then&&typeof e.then=="function"}var tv=qn(re().mark(function e(r,s){var l;return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.delegateYield(Y0(s),"t0",1);case 1:if(l=o.t0,l!==null){o.next=4;break}return o.abrupt("return",null);case 4:return o.delegateYield(xS(l,r),"t1",5);case 5:return o.abrupt("return",o.t1);case 6:case"end":return o.stop()}},e)})),V$e=function(r,s,l){var u,o;if(typeof s=="function"?(o=s,u=void 0):(u=s,o=l),o===void 0)return Ya(tv.sync)(r,u);Ya(tv.errback)(r,u,o)};function eJ(){return Ya(tv.sync).apply(void 0,arguments)}function W$e(){return Ya(tv.async).apply(void 0,arguments)}var G$e=function(r,s,l){typeof s=="function"&&(l=s),l(new Error("Transforming files is not supported in browsers"),null)};function K$e(){throw new Error("Transforming files is not supported in browsers")}function H$e(){return Promise.reject(new Error("Transforming files is not supported in browsers"))}var rv=qn(re().mark(function e(r,s,l){var u;return re().wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return c.delegateYield(Y0(l),"t0",1);case 1:if(u=c.t0,u!==null){c.next=4;break}return c.abrupt("return",null);case 4:if(r){c.next=6;break}throw new Error("No AST given");case 6:return c.delegateYield(xS(u,s,r),"t1",7);case 7:return c.abrupt("return",c.t1);case 8:case"end":return c.stop()}},e)})),z$e=function(r,s,l,u){var o,c;if(typeof l=="function"?(c=l,o=void 0):(o=l,c=u),c===void 0)return Ya(rv.sync)(r,s,o);Ya(rv.errback)(r,s,o,c)};function tJ(){return Ya(rv.sync).apply(void 0,arguments)}function X$e(){return Ya(rv.async).apply(void 0,arguments)}var av=qn(re().mark(function e(r,s){var l;return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.delegateYield(Y0(s),"t0",1);case 1:if(l=o.t0,l!==null){o.next=4;break}return o.abrupt("return",null);case 4:return o.delegateYield(UX(l.passes,FX(l),r),"t1",5);case 5:return o.abrupt("return",o.t1);case 6:case"end":return o.stop()}},e)})),J$e=function(r,s,l){if(typeof s=="function"&&(l=s,s=void 0),l===void 0)return Ya(av.sync)(r,s);Ya(av.errback)(r,s,l)};function Y$e(){return Ya(av.sync).apply(void 0,arguments)}function Q$e(){return Ya(av.async).apply(void 0,arguments)}var Uh="7.25.2",Z$e=Object.freeze([".js",".jsx",".es6",".es",".mjs",".cjs"]);a.OptionManager=function(){function e(){}var r=e.prototype;return r.init=function(l){return fS(l)},_(e)}(),a.Plugin=function(r){throw new Error("The ("+r+") Babel 5 plugin is being run with an unsupported Babel version.")};function vc(){var e;return(e=function(){return{}}).default=e}function rJ(e){return e}var eqe=Object.freeze({__proto__:null,declare:rJ,declarePreset:rJ}),tqe=function(e,r){e.assertVersion("*");var s=r.helperVersion,l=s===void 0?"7.0.0-beta.0":s,u=r.whitelist,o=u===void 0?!1:u;if(o!==!1&&(!Array.isArray(o)||o.some(function(f){return typeof f!="string"})))throw new Error(".whitelist must be undefined, false, or an array of strings");var c=o?new Set(o):null;return{name:"external-helpers",pre:function(h){h.set("helperGenerator",function(m){if(!(h.availableHelper&&!h.availableHelper(m,l))&&!(c&&!c.has(m)))return Vt(Ne("babelHelpers"),Ne(m))})}}},aJ=function(e){return e.assertVersion("*"),{name:"syntax-decimal",manipulateOptions:function(s,l){l.plugins.push("decimal")}}},RS=function(e,r){e.assertVersion("*");var s=r.version;{var l=r.legacy;if(l!==void 0){if(typeof l!="boolean")throw new Error(".legacy must be a boolean.");if(s!==void 0)throw new Error("You can either use the .legacy or the .version option, not both.")}if(s===void 0)s=l?"legacy":"2018-09";else if(s!=="2023-11"&&s!=="2023-05"&&s!=="2023-01"&&s!=="2022-03"&&s!=="2021-12"&&s!=="2018-09"&&s!=="legacy")throw new Error("Unsupported decorators version: "+s);var u=r.decoratorsBeforeExport;if(u===void 0){if(s==="2021-12"||s==="2022-03")u=!1;else if(s==="2018-09")throw new Error("The decorators plugin, when .version is '2018-09' or not specified, requires a 'decoratorsBeforeExport' option, whose value must be a boolean.")}else{if(s==="legacy"||s==="2022-03"||s==="2023-01")throw new Error("'decoratorsBeforeExport' can't be used with "+s+" decorators.");if(typeof u!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean.")}}return{name:"syntax-decorators",manipulateOptions:function(c,f){var h=c.generatorOpts;s==="legacy"?f.plugins.push("decorators-legacy"):s==="2023-01"||s==="2023-05"||s==="2023-11"?f.plugins.push(["decorators",{allowCallParenthesized:!1}],"decoratorAutoAccessors"):s==="2022-03"?f.plugins.push(["decorators",{decoratorsBeforeExport:!1,allowCallParenthesized:!1}],"decoratorAutoAccessors"):s==="2021-12"?(f.plugins.push(["decorators",{decoratorsBeforeExport:u}],"decoratorAutoAccessors"),h.decoratorsBeforeExport=u):s==="2018-09"&&(f.plugins.push(["decorators",{decoratorsBeforeExport:u}]),h.decoratorsBeforeExport=u)}}},nJ=function(e){return e.assertVersion("*"),{name:"syntax-destructuring-private",manipulateOptions:function(s,l){l.plugins.push("destructuringPrivate")}}},sJ=function(e){return e.assertVersion("*"),{name:"syntax-do-expressions",manipulateOptions:function(s,l){l.plugins.push("doExpressions")}}},iJ=function(e){return e.assertVersion("*"),{name:"syntax-explicit-resource-management",manipulateOptions:function(s,l){l.plugins.push("explicitResourceManagement")}}},oJ=function(e){return e.assertVersion("*"),{name:"syntax-export-default-from",manipulateOptions:function(s,l){l.plugins.push("exportDefaultFrom")}}},ES=function(e,r){e.assertVersion("*");var s=r.all,l=r.enums;if(typeof s!="boolean"&&typeof s<"u")throw new Error(".all must be a boolean, or undefined");if(typeof l!="boolean"&&typeof l<"u")throw new Error(".enums must be a boolean, or undefined");return{name:"syntax-flow",manipulateOptions:function(o,c){c.plugins.some(function(f){return(Array.isArray(f)?f[0]:f)==="typescript"})||c.plugins.push(["flow",{all:s,enums:l}])}}},lJ=function(e){return e.assertVersion("*"),{name:"syntax-function-bind",manipulateOptions:function(s,l){l.plugins.push("functionBind")}}},uJ=function(e){return e.assertVersion("*"),{name:"syntax-function-sent",manipulateOptions:function(s,l){l.plugins.push("functionSent")}}},cJ=function(e){return e.assertVersion("*"),{name:"syntax-import-assertions",manipulateOptions:function(s,l){for(var u=l.plugins,o=0;o<u.length;o++){var c=u[o];if(c==="importAttributes"){u[o]=["importAttributes",{deprecatedAssertSyntax:!0}];return}if(Array.isArray(c)&&c[0]==="importAttributes"){c.length<2&&u[o].push({}),c[1].deprecatedAssertSyntax=!0;return}}u.push("importAssertions")}}},nv=function(e,r){var s=r.deprecatedAssertSyntax;if(e.assertVersion("*"),s!=null&&typeof s!="boolean")throw new Error("'deprecatedAssertSyntax' must be a boolean, if specified.");return{name:"syntax-import-attributes",manipulateOptions:function(u){var o,c=u.parserOpts,f=u.generatorOpts;(o=f.importAttributesKeyword)!=null||(f.importAttributesKeyword="with");var h=c.plugins.indexOf("importAssertions");h!==-1&&(c.plugins.splice(h,1),s=!0),c.plugins.push(["importAttributes",{deprecatedAssertSyntax:!!s}])}}},dJ=function(e){return e.assertVersion("*"),{name:"syntax-import-reflection",manipulateOptions:function(s,l){l.plugins.push("importReflection")}}},pJ=function(e){return e.assertVersion("*"),{name:"syntax-jsx",manipulateOptions:function(s,l){l.plugins.some(function(u){return(Array.isArray(u)?u[0]:u)==="typescript"})||l.plugins.push("jsx")}}},fJ=function(e){return e.assertVersion("*"),{name:"syntax-module-blocks",manipulateOptions:function(s,l){l.plugins.push("moduleBlocks")}}},hJ=new nu("@babel/plugin-syntax-optional-chaining-assign"),mJ=function(e,r){e.assertVersion("*"),hJ.validateTopLevelOptions(r,{version:"version"});var s=r.version;return hJ.invariant(s==="2023-07","'.version' option required, representing the last proposal update. Currently, the only supported value is '2023-07'."),{name:"syntax-optional-chaining-assign",manipulateOptions:function(u,o){o.plugins.push(["optionalChainingAssign",{version:s}])}}},yJ=["minimal","fsharp","hack","smart"],gJ=["^^","@@","^","%","#"],vJ="https://babeljs.io/docs/en/babel-plugin-proposal-pipeline-operator",bJ=function(e,r){var s=r.proposal,l=r.topicToken;if(e.assertVersion("*"),typeof s!="string"||!yJ.includes(s)){var u=yJ.map(function(c){return'"'+c+'"'}).join(", ");throw new Error('The pipeline plugin requires a "proposal" option. "proposal" must be one of: '+u+". See <"+vJ+">.")}if(s==="hack"&&!gJ.includes(l)){var o=gJ.map(function(c){return'"'+c+'"'}).join(", ");throw new Error('The pipeline plugin in "proposal": "hack" mode also requires a "topicToken" option. "topicToken" must be one of: '+o+". See <"+vJ+">.")}return{name:"syntax-pipeline-operator",manipulateOptions:function(f,h){h.plugins.push(["pipelineOperator",{proposal:s,topicToken:l}]),f.generatorOpts.topicToken=l}}},xJ=function(e,r){return e.assertVersion("*"),{name:"syntax-record-and-tuple",manipulateOptions:function(l,u){l.generatorOpts.recordAndTupleSyntaxType=r.syntaxType,u.plugins.push(["recordAndTuple",{syntaxType:r.syntaxType}])}}},RJ=function(r,s){var l=[];r.forEach(function(f,h){var m=Array.isArray(f)?f[0]:f;m===s&&l.unshift(h)});for(var u=0,o=l;u<o.length;u++){var c=o[u];r.splice(c,1)}},EJ=function(e,r){e.assertVersion("*");var s=r.disallowAmbiguousJSXLike,l=r.dts,u=r.isTSX;return{name:"syntax-typescript",manipulateOptions:function(c,f){{var h=f.plugins;RJ(h,"flow"),RJ(h,"jsx"),h.push("objectRestSpread","classProperties"),u&&h.push("jsx")}f.plugins.push(["typescript",{disallowAmbiguousJSXLike:s,dts:l}])}}},rqe=ea,SS=ft,aqe=Mn,nqe=Nl,sqe=ja,iqe=hn,oqe=ln,lqe=ct,uqe=xt.expression(` + (function () { + var REF = FUNCTION; + return function NAME(PARAMS) { + return REF.apply(this, arguments); + }; + })() +`),cqe=xt.expression(` + (function () { + var REF = FUNCTION; + function NAME(PARAMS) { + return REF.apply(this, arguments); + } + return NAME; + })() +`),dqe=xt.statements(` + function NAME(PARAMS) { return REF.apply(this, arguments); } + function REF() { + REF = FUNCTION; + return REF.apply(this, arguments); + } +`);function pqe(e,r){var s=e.node,l=s.body,u=aqe(null,[],rqe(l.body),!0);l.body=[oqe(SS(SS(r,[u]),[]))],s.async=!1,s.generator=!1,e.get("body.body.0.argument.callee.arguments.0").unwrapFunctionEnvironment()}function fqe(e,r,s,l,u){var o=e,c,f=null,h=e.node.params;if(o.isArrowFunctionExpression()){{var m;o=(m=o.arrowFunctionToExpression({noNewArrows:s}))!=null?m:o}c=o.node}else c=o.node;var g=sqe(c),x=c;lqe(c)||(f=c.id,c.id=null,c.type="FunctionExpression",x=SS(r,[c]));for(var R=[],w=C(h),T;!(T=w()).done;){var I=T.value;if(nqe(I)||iqe(I))break;R.push(o.scope.generateUidIdentifier("x"))}var P={NAME:f||null,REF:o.scope.generateUidIdentifier(u?f.name:"ref"),FUNCTION:x,PARAMS:R};if(g){var O=dqe(P);o.replaceWith(O[0]),o.insertAfter(O[1])}else{var j;u?j=cqe(P):j=uqe(P),f||!l&&R.length?o.replaceWith(j):o.replaceWith(x)}}function SJ(e,r,s,l){if(s===void 0&&(s=!0),l===void 0&&(l=!1),e.isMethod())pqe(e,r);else{var u="id"in e.node&&!!e.node.id;e=e.ensureFunctionName(!1),fqe(e,r,s,l,u)}}var hqe=Xf,mqe="#__PURE__",yqe=function(r){var s=r.leadingComments;return!!s&&s.some(function(l){return/[@#]__PURE__/.test(l.value)})};function Ui(e){var r=e.node||e;yqe(r)||hqe(r,"leading",mqe)}var gqe=ft,TJ=me,vqe=Dt,bqe=Xs,xqe=_d,Rqe=Fn({ArrowFunctionExpression:function(r){r.skip()},AwaitExpression:function(r,s){var l=s.wrapAwait,u=r.get("argument");r.replaceWith(xqe(l?gqe(TJ(l),[u.node]):u.node))}});function TS(e,r,s,l){e.traverse(Rqe,{wrapAwait:r.wrapAwait});var u=c(e);e.node.async=!1,e.node.generator=!0,SJ(e,TJ(r.wrapAsync),s,l);var o=e.isObjectMethod()||e.isClassMethod()||e.parentPath.isObjectProperty()||e.parentPath.isClassProperty();!o&&!u&&e.isExpression()&&Ui(e);function c(f){if(f.parentPath.isCallExpression({callee:f.node}))return!0;var h=f.parentPath;if(h.isMemberExpression()&&vqe(h.node.property,{name:"bind"})){var m=h.parentPath;return m.isCallExpression()&&m.node.arguments.length===1&&bqe(m.node.arguments[0])&&m.parentPath.isCallExpression({callee:m.node})}return!1}}var Eqe=xt(` + async function wrapper() { + var ITERATOR_ABRUPT_COMPLETION = false; + var ITERATOR_HAD_ERROR_KEY = false; + var ITERATOR_ERROR_KEY; + try { + for ( + var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY; + ITERATOR_ABRUPT_COMPLETION = !(STEP_KEY = await ITERATOR_KEY.next()).done; + ITERATOR_ABRUPT_COMPLETION = false + ) { + } + } catch (err) { + ITERATOR_HAD_ERROR_KEY = true; + ITERATOR_ERROR_KEY = err; + } finally { + try { + if (ITERATOR_ABRUPT_COMPLETION && ITERATOR_KEY.return != null) { + await ITERATOR_KEY.return(); + } + } finally { + if (ITERATOR_HAD_ERROR_KEY) { + throw ITERATOR_ERROR_KEY; + } + } + } + } +`);function Sqe(e,r){var s=r.getAsyncIterator,l=e.node,u=e.scope,o=e.parent,c=u.generateUidIdentifier("step"),f=Vt(c,Ne("value")),h=l.left,m;Dt(h)||js(h)||lr(h)?m=Xt(tr("=",h,f)):Ja(h)&&(m=Br(h.kind,[Sr(h.declarations[0].id,f)]));var g=Eqe({ITERATOR_HAD_ERROR_KEY:u.generateUidIdentifier("didIteratorError"),ITERATOR_ABRUPT_COMPLETION:u.generateUidIdentifier("iteratorAbruptCompletion"),ITERATOR_ERROR_KEY:u.generateUidIdentifier("iteratorError"),ITERATOR_KEY:u.generateUidIdentifier("iterator"),GET_ITERATOR:s,OBJECT:l.right,STEP_KEY:me(c)});g=g.body.body;var x=rt(o),R=g[3].block.body,w=R[0];return x&&(R[0]=Od(o.label,w)),{replaceParent:x,node:g,declar:m,loop:w}}var wJ=function(e){e.assertVersion("*");var r=Fn({ArrowFunctionExpression:function(o){o.skip()},YieldExpression:function(o,c){var f=o.node;if(f.delegate){var h=ft(c.addHelper("asyncIterator"),[f.argument]);f.argument=ft(c.addHelper("asyncGeneratorDelegate"),[h,c.addHelper("awaitAsyncGenerator")])}}}),s=Fn({ArrowFunctionExpression:function(o){o.skip()},ForOfStatement:function(o,c){var f=c.file,h=o.node;if(h.await){var m=Sqe(o,{getAsyncIterator:f.addHelper("asyncIterator")}),g=m.declar,x=m.loop,R=x.body;if(o.ensureBlock(),g)R.body.push(g),o.node.body.body.length&&R.body.push(ea(o.node.body.body));else{var w;(w=R.body).push.apply(w,fe(o.node.body.body))}Na(x,h),Na(x.body,h.body);var T=m.replaceParent?o.parentPath:o;T.replaceWithMultiple(m.node),T.scope.parent.crawl()}}}),l={Function:function(o,c){o.node.async&&(o.traverse(s,c),o.node.generator&&(o.traverse(r,c),TS(o,{wrapAsync:c.addHelper("wrapAsyncGenerator"),wrapAwait:c.addHelper("awaitAsyncGenerator")})))}};return{name:"transform-async-generator-functions",inherits:void 0,visitor:{Program:function(o,c){o.traverse(l,c)}}}};function wS(e){var r=e,s=r.node,l=r.parentPath;if(l.isLogicalExpression()){var u=l.node,o=u.operator,c=u.right;if(o==="&&"||o==="||"||o==="??"&&s===c)return wS(l)}if(l.isSequenceExpression()){var f=l.node.expressions;return f[f.length-1]===s?wS(l):!0}return l.isConditional({test:s})||l.isUnaryExpression({operator:"!"})||l.isLoop({test:s})}var Tqe=Ku,PJ=fi,np=tr,bc=nn,wqe=un,sv=ft,bi=me,Pqe=Qs,AJ=Ne,Aqe=lr,Iqe=Bu,IJ=Co,Cqe=hd,iv=pi,CJ=Vt,ov=Bn,jqe=Nd,Oqe=Xg,PS=Mr,jJ=Gg,_qe=function(){function e(){this._map=void 0,this._map=new WeakMap}var r=e.prototype;return r.has=function(l){return this._map.has(l)},r.get=function(l){if(this.has(l)){var u=this._map.get(l),o=u.value;return u.count--,u.count===0?np("=",o,l):o}},r.set=function(l,u,o){return this._map.set(l,{count:o,value:u})},_(e)}();function OJ(e,r){var s=e.node;if(IJ(s))return CJ(r,s.property,s.computed);if(e.isOptionalCallExpression()){var l=e.get("callee");if(e.node.optional&&l.isOptionalMemberExpression()){var u=l.node.object,o=e.scope.maybeGenerateMemoised(u);return l.get("object").replaceWith(np("=",o,u)),sv(CJ(r,AJ("call")),[o].concat(fe(e.node.arguments)))}return sv(r,e.node.arguments)}return e.node}function Nqe(e){for(;e&&!e.isProgram();){var r=e,s=r.parentPath,l=r.container,u=r.listKey,o=s.node;if(u){if(l!==o[u])return!0}else if(l!==o)return!0;e=s}return!1}var kqe={memoise:function(){},handle:function(r,s){var l=r.node,u=r.parent,o=r.parentPath,c=r.scope;if(r.isOptionalMemberExpression()){if(Nqe(r))return;var f=r.find(function(Ve){var Ie=Ve.node,ke=Ve.parent;return IJ(ke)?ke.optional||ke.object!==Ie:Iqe(ke)?Ie!==r.node&&ke.optional||ke.callee!==Ie:!0});if(c.path.isPattern()){f.replaceWith(sv(PJ([],f.node),[]));return}var h=wS(f),m=f.parentPath;if(m.isUpdateExpression({argument:l}))throw r.buildCodeFrameError("can't handle update expression");var g=m.isAssignmentExpression({left:f.node}),x=m.isUnaryExpression({operator:"delete"});if(x&&f.isOptionalMemberExpression()&&f.get("property").isPrivateName())throw r.buildCodeFrameError("can't delete a private class element");for(var R=r;;){if(R.isOptionalMemberExpression()){if(R.node.optional)break;R=R.get("object");continue}else if(R.isOptionalCallExpression()){if(R.node.optional)break;R=R.get("callee");continue}throw new Error("Internal error: unexpected "+R.node.type)}var w=R.isOptionalMemberExpression()?R.node.object:R.node.callee,T=c.maybeGenerateMemoised(w),I=T??w,P=o.isOptionalCallExpression({callee:l}),O=function(Ie){return P},j=o.isCallExpression({callee:l});R.replaceWith(OJ(R,I)),O(u)?u.optional?o.replaceWith(this.optionalCall(r,u.arguments)):o.replaceWith(this.call(r,u.arguments)):j?r.replaceWith(this.boundGet(r)):this.delete&&o.isUnaryExpression({operator:"delete"})?o.replaceWith(this.delete(r)):o.isAssignmentExpression()?_J(this,r,o):r.replaceWith(this.get(r));for(var D=r.node,k=r;k!==f;){var B=k.parentPath;if(B===f&&O(u)&&u.optional){D=B.node;break}D=OJ(B,D),k=B}var F,L=f.parentPath;if(Aqe(D)&&L.isOptionalCallExpression({callee:f.node,optional:!0})){var V=D,H=V.object;F=r.scope.maybeGenerateMemoised(H),F&&(D.object=np("=",F,H))}var K=f;(x||g)&&(K=L,D=L.node);var G=T?np("=",bi(I),bi(w)):bi(I);if(h){var X;s?X=bc("!=",G,ov()):X=iv("&&",bc("!==",G,ov()),bc("!==",bi(I),c.buildUndefinedNode())),K.replaceWith(iv("&&",X,D))}else{var ue;s?ue=bc("==",G,ov()):ue=iv("||",bc("===",G,ov()),bc("===",bi(I),c.buildUndefinedNode())),K.replaceWith(Pqe(ue,x?wqe(!0):c.buildUndefinedNode(),D))}if(F){var oe=L.node;L.replaceWith(jqe(Oqe(oe.callee,AJ("call"),!1,!0),[bi(F)].concat(fe(oe.arguments)),!1))}return}if(Cqe(u,{argument:l})){if(this.simpleSet){r.replaceWith(this.simpleSet(r));return}var he=u.operator,te=u.prefix;this.memoise(r,2);var ae=c.generateUidIdentifierBasedOnNode(l);c.push({id:ae});var J=[np("=",bi(ae),this.get(r))];if(te){J.push(jJ(he,bi(ae),te));var xe=PS(J);o.replaceWith(this.set(r,xe));return}else{var de=c.generateUidIdentifierBasedOnNode(l);c.push({id:de}),J.push(np("=",bi(de),jJ(he,bi(ae),te)),bi(ae));var $e=PS(J);o.replaceWith(PS([this.set(r,$e),bi(de)]));return}}if(o.isAssignmentExpression({left:l})){_J(this,r,o);return}if(o.isCallExpression({callee:l})){o.replaceWith(this.call(r,o.node.arguments));return}if(o.isOptionalCallExpression({callee:l})){if(c.path.isPattern()){o.replaceWith(sv(PJ([],o.node),[]));return}o.replaceWith(this.optionalCall(r,o.node.arguments));return}if(this.delete&&o.isUnaryExpression({operator:"delete"})){o.replaceWith(this.delete(r));return}if(o.isForXStatement({left:l})||o.isObjectProperty({value:l})&&o.parentPath.isObjectPattern()||o.isAssignmentPattern({left:l})&&o.parentPath.isObjectProperty({value:u})&&o.parentPath.parentPath.isObjectPattern()||o.isArrayPattern()||o.isAssignmentPattern({left:l})&&o.parentPath.isArrayPattern()||o.isRestElement()){r.replaceWith(this.destructureSet(r));return}o.isTaggedTemplateExpression()?r.replaceWith(this.boundGet(r)):r.replaceWith(this.get(r))}};function _J(e,r,s){if(e.simpleSet){r.replaceWith(e.simpleSet(r));return}var l=s.node,u=l.operator,o=l.right;if(u==="=")s.replaceWith(e.set(r,o));else{var c=u.slice(0,-1);Tqe.includes(c)?(e.memoise(r,1),s.replaceWith(iv(c,e.get(r),e.set(r,o)))):(e.memoise(r,2),s.replaceWith(e.set(r,bc(c,e.get(r),o))))}}function NJ(e,r,s){e.traverse(r,Object.assign({},kqe,s,{memoiser:new _qe}))}var kJ=ft,lv=Ne,Dqe=Dt,Lqe=mn,DJ=Vt,LJ=Nd,MJ=Xg;function sp(e,r,s,l){return s.length===1&&Lqe(s[0])&&Dqe(s[0].argument,{name:"arguments"})?l?LJ(MJ(e,lv("apply"),!1,!0),[r,s[0].argument],!1):kJ(DJ(e,lv("apply")),[r,s[0].argument]):l?LJ(MJ(e,lv("call"),!1,!0),[r].concat(fe(s)),!1):kJ(DJ(e,lv("call")),[r].concat(fe(s)))}var BJ,FJ,$J,qJ,Mqe=tr,Ho=ft,Un=me,ip=Ne,xc=Vt,Rc=Mr,UJ=Jt,zn=qr,VJ=Fn({Super:function(r,s){var l=r.node,u=r.parentPath;u.isMemberExpression({object:l})&&s.handle(u)}}),Bqe=Fn({Scopable:function(r,s){var l=s.refName,u=r.scope.getOwnBinding(l);u&&u.identifier.name===l&&r.scope.rename(l)}}),WJ={memoise:function(r,s){var l=r.scope,u=r.node,o=u.computed,c=u.property;if(o){var f=l.maybeGenerateMemoised(c);f&&this.memoiser.set(c,f,s)}},prop:function(r){var s=r.node,l=s.computed,u=s.property;return this.memoiser.has(u)?Un(this.memoiser.get(u)):l?Un(u):UJ(u.name)},_getPrototypeOfExpression:function(){var r=Un(this.getObjectRef()),s=this.isStatic||this.isPrivateMethod?r:xc(r,ip("prototype"));return Ho(this.file.addHelper("getPrototypeOf"),[s])},get:function(r){var s=Un(this.getObjectRef());return Ho(this.file.addHelper("superPropGet"),[this.isDerivedConstructor?Rc([zn(),s]):s,this.prop(r),zn()].concat(fe(this.isStatic||this.isPrivateMethod?[]:[Wr(1)])))},_call:function(r,s,l){var u=Un(this.getObjectRef()),o;s.length===1&&mn(s[0])&&(Dt(s[0].argument)||ht(s[0].argument))?o=s[0].argument:o=Ra(s);var c=ft(this.file.addHelper("superPropGet"),[this.isDerivedConstructor?Rc([zn(),u]):u,this.prop(r),zn(),Wr(2|(this.isStatic||this.isPrivateMethod?0:1))]);return l?Nd(c,[o],!0):Ho(c,[o])},set:function(r,s){var l=Un(this.getObjectRef());return Ho(this.file.addHelper("superPropSet"),[this.isDerivedConstructor?Rc([zn(),l]):l,this.prop(r),s,zn(),Wr(r.isInStrictMode()?1:0)].concat(fe(this.isStatic||this.isPrivateMethod?[]:[Wr(1)])))},destructureSet:function(r){throw r.buildCodeFrameError("Destructuring to a super field is not supported yet.")},call:function(r,s){return this._call(r,s,!1)},optionalCall:function(r,s){return this._call(r,s,!0)},delete:function(r){return r.node.computed?Rc([Ho(this.file.addHelper("toPropertyKey"),[Un(r.node.property)]),xt.expression.ast(BJ||(BJ=se([` + function () { throw new ReferenceError("'delete super[expr]' is invalid"); }() + `])))]):xt.expression.ast(FJ||(FJ=se([` + function () { throw new ReferenceError("'delete super.prop' is invalid"); }() + `])))}},Fqe={memoise:function(r,s){var l=r.scope,u=r.node,o=u.computed,c=u.property;if(o){var f=l.maybeGenerateMemoised(c);f&&this.memoiser.set(c,f,s)}},prop:function(r){var s=r.node,l=s.computed,u=s.property;return this.memoiser.has(u)?Un(this.memoiser.get(u)):l?Un(u):UJ(u.name)},_getPrototypeOfExpression:function(){var r=Un(this.getObjectRef()),s=this.isStatic||this.isPrivateMethod?r:xc(r,ip("prototype"));return Ho(this.file.addHelper("getPrototypeOf"),[s])},get:function(r){return this._get(r)},_get:function(r){var s=this._getPrototypeOfExpression();return Ho(this.file.addHelper("get"),[this.isDerivedConstructor?Rc([zn(),s]):s,this.prop(r),zn()])},set:function(r,s){var l=this._getPrototypeOfExpression();return Ho(this.file.addHelper("set"),[this.isDerivedConstructor?Rc([zn(),l]):l,this.prop(r),s,zn(),un(r.isInStrictMode())])},destructureSet:function(r){throw r.buildCodeFrameError("Destructuring to a super field is not supported yet.")},call:function(r,s){return sp(this._get(r),zn(),s,!1)},optionalCall:function(r,s){return sp(this._get(r),Un(zn()),s,!0)},delete:function(r){return r.node.computed?Rc([Ho(this.file.addHelper("toPropertyKey"),[Un(r.node.property)]),xt.expression.ast($J||($J=se([` + function () { throw new ReferenceError("'delete super[expr]' is invalid"); }() + `])))]):xt.expression.ast(qJ||(qJ=se([` + function () { throw new ReferenceError("'delete super.prop' is invalid"); }() + `])))}},$qe=Object.assign({},WJ,{prop:function(r){var s=r.node.property;return this.memoiser.has(s)?Un(this.memoiser.get(s)):Un(s)},get:function(r){var s=this.isStatic,l=this.getSuperRef,u=r.node.computed,o=this.prop(r),c;if(s){var f;c=(f=l())!=null?f:xc(ip("Function"),ip("prototype"))}else{var h;c=xc((h=l())!=null?h:ip("Object"),ip("prototype"))}return xc(c,o,u)},set:function(r,s){var l=r.node.computed,u=this.prop(r);return Mqe("=",xc(zn(),u,l),s)},destructureSet:function(r){var s=r.node.computed,l=this.prop(r);return xc(zn(),l,s)},call:function(r,s){return sp(this.get(r),zn(),s,!1)},optionalCall:function(r,s){return sp(this.get(r),zn(),s,!0)}}),op=function(){function e(s){var l,u=s.methodPath;this.methodPath=u,this.isDerivedConstructor=u.isClassMethod({kind:"constructor"})&&!!s.superRef,this.isStatic=u.isObjectMethod()||u.node.static||(u.isStaticBlock==null?void 0:u.isStaticBlock()),this.isPrivateMethod=u.isPrivate()&&u.isMethod(),this.file=s.file,this.constantSuper=(l=s.constantSuper)!=null?l:s.isLoose,this.opts=s}var r=e.prototype;return r.getObjectRef=function(){return Un(this.opts.objectRef||this.opts.getObjectRef())},r.getSuperRef=function(){if(this.opts.superRef)return Un(this.opts.superRef);if(this.opts.getSuperRef)return Un(this.opts.getSuperRef())},r.replace=function(){var l=this.methodPath;this.opts.refToPreserve&&l.traverse(Bqe,{refName:this.opts.refToPreserve.name});var u=this.constantSuper?$qe:this.file.availableHelper("superPropSet")?WJ:Fqe;VJ.shouldSkip=function(o){if(o.parentPath===l&&(o.parentKey==="decorators"||o.parentKey==="key"))return!0},NJ(l,VJ,Object.assign({file:this.file,scope:this.methodPath.scope,isDerivedConstructor:this.isDerivedConstructor,isStatic:this.isStatic,isPrivateMethod:this.isPrivateMethod,getObjectRef:this.getObjectRef.bind(this),getSuperRef:this.getSuperRef.bind(this),boundGet:u.get},u))},_(e)}(),qqe=uf,Uqe=HB,Vqe=QB,Wqe=zB,Gqe=XB,Kqe=Pf;function AS(e){return Uqe(e)||Wqe(e)||Gqe(e)||Vqe(e)||Kqe(e)||qqe(e)}function ds(e){for(;AS(e.node);)e=e.get("expression");return e}function lp(e){for(;AS(e);)e=e.expression;return e}function GJ(e){if(e.node.declare)throw e.buildCodeFrameError(`TypeScript 'declare' fields must first be transformed by @babel/plugin-transform-typescript. +If you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before any plugin related to additional class features: + - @babel/plugin-transform-class-properties + - @babel/plugin-transform-private-methods + - @babel/plugin-proposal-decorators`)}var KJ,HJ,zJ,XJ,JJ,YJ,QJ,ZJ,eY,tY,rY,aY,nY,sY,iY,oY,lY,uY,cY,dY,pY,fY,ps=function(r){return r.availableHelper("classPrivateFieldGet2")};function Hqe(e,r,s,l){for(var u=new Map,o,c=C(s),f;!(f=c()).done;){var h=f.value;if(h.isPrivate()){var m=h.node.key.id.name,g=u.get(m);if(!g){var x=!h.isProperty(),R=h.node.static,w=!1,T=void 0;if(!r&&ps(l)&&x&&!R){var I;w=!!o,(I=o)!=null||(o=h.scope.generateUidIdentifier(e+"_brand")),T=o}else T=h.scope.generateUidIdentifier(m);g={id:T,static:R,method:x,initAdded:w},u.set(m,g)}if(h.isClassPrivateMethod())if(h.node.kind==="get"){var P=h.node.body.body,O=void 0;P.length===1&&As(O=P[0])&&ct(O=O.argument)&&O.arguments.length===1&&Xs(O.arguments[0])&&Dt(O=O.callee)?(g.getId=me(O),g.getterDeclared=!0):g.getId=h.scope.generateUidIdentifier("get_"+m)}else if(h.node.kind==="set"){var j=h.node.params,D=h.node.body.body,k=void 0;D.length===1&&Ea(k=D[0])&&ct(k=k.expression)&&k.arguments.length===2&&Xs(k.arguments[0])&&Dt(k.arguments[1],{name:j[0].name})&&Dt(k=k.callee)?(g.setId=me(k),g.setterDeclared=!0):g.setId=h.scope.generateUidIdentifier("set_"+m)}else h.node.kind==="method"&&(g.methodId=h.scope.generateUidIdentifier(m));u.set(m,g)}}return u}function zqe(e,r,s,l){for(var u=[],o=new Set,c=C(e),f;!(f=c()).done;){var h=je(f.value,2),m=h[0],g=h[1],x=g.static,R=g.method,w=g.getId,T=g.setId,I=w||T,P=me(g.id),O=void 0;if(r)O=ft(l.addHelper("classPrivateFieldLooseKey"),[Jt(m)]);else if(s)O=ft(Ne("Symbol"),[Jt(m)]);else if(!x){if(o.has(P.name))continue;o.add(P.name),O=qf(Ne(R&&(!I||ps(l))?"WeakSet":"WeakMap"),[])}O&&(s||Ui(O),u.push(xt.statement.ast(KJ||(KJ=se(["var "," = ",""])),P,O)))}return u}function uv(e){var r=Fn(Object.assign({},e)),s=Object.assign({},e,{Class:function(u){for(var o=this.privateNamesMap,c=u.get("body.body"),f=new Map(o),h=[],m=C(c),g;!(g=m()).done;){var x=g.value;if(x.isPrivate()){var R=x.node.key.id.name;f.delete(R),h.push(R)}}h.length&&(u.get("body").traverse(r,Object.assign({},this,{redeclared:h})),u.traverse(s,Object.assign({},this,{privateNamesMap:f})),u.skipKey("body"))}});return s}var Xqe=uv({PrivateName:function(r,s){var l=s.noDocumentAll,u=this.privateNamesMap,o=this.redeclared,c=r.node,f=r.parentPath;if(!(!f.isMemberExpression({property:c})&&!f.isOptionalMemberExpression({property:c}))){var h=c.id.name;u.has(h)&&(o!=null&&o.includes(h)||this.handle(f,l))}}});function hY(e,r,s){for(;(l=r)!=null&&l.hasBinding(e)&&!r.bindingIdentifierEquals(e,s);){var l;r.rename(e),r=r.parent}}function up(e,r,s){return r.availableHelper!=null&&r.availableHelper("checkInRHS")?ft(r.addHelper("checkInRHS"),[e]):e}var Jqe=uv({BinaryExpression:function(r,s){var l=s.file,u=r.node,o=u.operator,c=u.left,f=u.right;if(o==="in"&&Li(c)){var h=this.privateFieldsAsProperties,m=this.privateNamesMap,g=this.redeclared,x=c.id.name;if(m.has(x)&&!(g!=null&&g.includes(x))){if(hY(this.classRef.name,r.scope,this.innerBinding),h){var R=m.get(x),w=R.id;r.replaceWith(xt.expression.ast(HJ||(HJ=se([` + Object.prototype.hasOwnProperty.call(`,", ",`) + `])),up(f,l),me(w)));return}var T=m.get(x),I=T.id,P=T.static;if(P){r.replaceWith(xt.expression.ast(zJ||(zJ=se([""," === ",""])),up(f,l),me(this.classRef)));return}r.replaceWith(xt.expression.ast(XJ||(XJ=se(["",".has(",")"])),me(I),up(f,l)))}}}});function cv(e,r){return ft(e.addHelper("readOnlyError"),[Jt("#"+r)])}function Yqe(e,r){return e.availableHelper("writeOnlyError")?ft(e.addHelper("writeOnlyError"),[Jt("#"+r)]):(console.warn("@babel/helpers is outdated, update it to silence this warning."),Qu())}function IS(e,r){return r?e:Vt(e,Ne("_"))}function mY(e){return function(r){return Na(e.apply(this,arguments),r.node)}}var Qqe={memoise:function(r,s){var l=r.scope,u=r.node,o=u.object,c=l.maybeGenerateMemoised(o);c&&this.memoiser.set(o,c,s)},receiver:function(r){var s=r.node,l=s.object;return this.memoiser.has(l)?me(this.memoiser.get(l)):me(l)},get:mY(function(e){var r=this.classRef,s=this.privateNamesMap,l=this.file,u=this.innerBinding,o=this.noUninitializedPrivateFieldAccess,c=e.node.property,f=c.id.name,h=s.get(f),m=h.id,g=h.static,x=h.method,R=h.methodId,w=h.getId,T=h.setId,I=w||T,P=function(F){return Na(me(F),c)};if(g){if(hY(r.name,e.scope,u),!ps(l)){var O=x&&!I?"classStaticPrivateMethodGet":"classStaticPrivateFieldSpecGet";return ft(l.addHelper(O),[this.receiver(e),me(r),P(m)])}var j=this.receiver(e),D=Dt(j)&&j.name===r.name;if(!x)return IS(D?P(m):ft(l.addHelper("assertClassBrand"),[me(r),j,P(m)]),o);if(w)return D?ft(P(w),[j]):ft(l.addHelper("classPrivateGetter"),[me(r),j,P(w)]);if(T){var k=Qu();return D?k:Mr([ft(l.addHelper("assertClassBrand"),[me(r),j]),k])}return D?P(m):ft(l.addHelper("assertClassBrand"),[me(r),j,P(m)])}return x?I?w?ps(l)?ft(l.addHelper("classPrivateGetter"),[me(m),this.receiver(e),P(w)]):ft(l.addHelper("classPrivateFieldGet"),[this.receiver(e),P(m)]):Mr([this.receiver(e),Yqe(l,f)]):ps(l)?ft(l.addHelper("assertClassBrand"),[me(m),this.receiver(e),P(R)]):ft(l.addHelper("classPrivateMethodGet"),[this.receiver(e),me(m),P(R)]):ps(l)?ft(l.addHelper("classPrivateFieldGet2"),[P(m),this.receiver(e)]):ft(l.addHelper("classPrivateFieldGet"),[this.receiver(e),P(m)])}),boundGet:function(r){return this.memoise(r,1),ft(Vt(this.get(r),Ne("bind")),[this.receiver(r)])},set:mY(function(e,r){var s=this.classRef,l=this.privateNamesMap,u=this.file,o=this.noUninitializedPrivateFieldAccess,c=e.node.property,f=c.id.name,h=l.get(f),m=h.id,g=h.static,x=h.method,R=h.setId,w=h.getId,T=w||R,I=function(B){return Na(me(B),c)};if(g){if(!ps(u)){var P=x&&!T?"classStaticPrivateMethodSet":"classStaticPrivateFieldSpecSet";return ft(u.addHelper(P),[this.receiver(e),me(s),I(m),r])}var O=this.receiver(e),j=Dt(O)&&O.name===s.name;if(x&&!R){var D=cv(u,f);return Mr(j?[r,D]:[r,ft(u.addHelper("assertClassBrand"),[me(s),O]),cv(u,f)])}return R?j?ft(me(R),[O,r]):ft(u.addHelper("classPrivateSetter"),[me(s),I(R),O,r]):tr("=",IS(I(m),o),j?r:ft(u.addHelper("assertClassBrand"),[me(s),O,r]))}return x?R?ps(u)?ft(u.addHelper("classPrivateSetter"),[me(m),I(R),this.receiver(e),r]):ft(u.addHelper("classPrivateFieldSet"),[this.receiver(e),I(m),r]):Mr([this.receiver(e),r,cv(u,f)]):ps(u)?ft(u.addHelper("classPrivateFieldSet2"),[I(m),this.receiver(e),r]):ft(u.addHelper("classPrivateFieldSet"),[this.receiver(e),I(m),r])}),destructureSet:function(r){var s=this.classRef,l=this.privateNamesMap,u=this.file,o=this.noUninitializedPrivateFieldAccess,c=r.node.property,f=c.id.name,h=l.get(f),m=h.id,g=h.static,x=h.method,R=h.setId,w=function(k){return Na(me(k),c)};if(!ps(u)){if(g){try{var T=u.addHelper("classStaticPrivateFieldDestructureSet")}catch{throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \nplease update @babel/helpers to the latest version.")}return Vt(ft(T,[this.receiver(r),me(s),w(m)]),Ne("value"))}return Vt(ft(u.addHelper("classPrivateFieldDestructureSet"),[this.receiver(r),w(m)]),Ne("value"))}if(x&&!R)return Vt(Mr([r.node.object,cv(u,f)]),Ne("_"));if(g&&!x){var I=this.get(r);if(!o||!ct(I))return I;var P=I.arguments.pop();return I.arguments.push(xt.expression.ast(JJ||(JJ=se(["(_) => "," = _"])),P)),Vt(ft(u.addHelper("toSetter"),[I]),Ne("_"))}var O=this.set(r,Ne("_"));if(!ct(O)||!Dt(O.arguments[O.arguments.length-1],{name:"_"}))throw r.buildCodeFrameError("Internal Babel error while compiling this code. This is a Babel bug. Please report it at https://github.com/babel/babel/issues.");var j;return lr(O.callee,{computed:!1})&&Dt(O.callee.property)&&O.callee.property.name==="call"?j=[O.callee.object,Ra(O.arguments.slice(1,-1)),O.arguments[0]]:j=[O.callee,Ra(O.arguments.slice(0,-1))],Vt(ft(u.addHelper("toSetter"),j),Ne("_"))},call:function(r,s){return this.memoise(r,1),sp(this.get(r),this.receiver(r),s,!1)},optionalCall:function(r,s){return this.memoise(r,1),sp(this.get(r),this.receiver(r),s,!0)},delete:function(){throw new Error("Internal Babel error: deleting private elements is a parsing error.")}},Zqe={get:function(r){var s=this.privateNamesMap,l=this.file,u=r.node.object,o=r.node.property.id.name;return xt.expression(YJ||(YJ=se(["BASE(REF, PROP)[PROP]"])))({BASE:l.addHelper("classPrivateFieldLooseBase"),REF:me(u),PROP:me(s.get(o).id)})},set:function(){throw new Error("private name handler with loose = true don't need set()")},boundGet:function(r){return ft(Vt(this.get(r),Ne("bind")),[me(r.node.object)])},simpleSet:function(r){return this.get(r)},destructureSet:function(r){return this.get(r)},call:function(r,s){return ft(this.get(r),s)},optionalCall:function(r,s){return Nd(this.get(r),s,!0)},delete:function(){throw new Error("Internal Babel error: deleting private elements is a parsing error.")}};function eUe(e,r,s,l,u){var o=l.privateFieldsAsProperties,c=l.noUninitializedPrivateFieldAccess,f=l.noDocumentAll,h=l.innerBinding;if(s.size){var m=r.get("body"),g=o?Zqe:Qqe;NJ(m,Xqe,Object.assign({privateNamesMap:s,classRef:e,file:u},g,{noDocumentAll:f,noUninitializedPrivateFieldAccess:c,innerBinding:h})),m.traverse(Jqe,{privateNamesMap:s,classRef:e,file:u,privateFieldsAsProperties:o,innerBinding:h})}}function yY(e,r,s){var l=s.get(r.node.key.id.name),u=l.id,o=r.node.value||r.scope.buildUndefinedNode();return jn(xt.statement.ast(QJ||(QJ=se([` + Object.defineProperty(`,", ",`, { + // configurable is false by default + // enumerable is false by default + writable: true, + value: `,` + }); + `])),e,me(u),o),r)}function tUe(e,r,s,l){var u=s.get(r.node.key.id.name),o=u.id,c=r.node.value||r.scope.buildUndefinedNode();if(!l.availableHelper("classPrivateFieldInitSpec"))return jn(xt.statement.ast(ZJ||(ZJ=se(["",".set(",`, { + // configurable is always false for private elements + // enumerable is always false for private elements + writable: true, + value: `,`, + })`])),me(o),e,c),r);var f=l.addHelper("classPrivateFieldInitSpec");return CS(jn(Xt(ft(f,[qr(),CS(me(o),r.node.key),ps(l)?c:xt.expression.ast(eY||(eY=se(["{ writable: true, value: "," }"])),c)])),r),r.node)}function rUe(e,r,s){var l=r.get(e.node.key.id.name),u=s?e.node.value:xt.expression.ast(tY||(tY=se([`{ + _: `,` + }`])),e.node.value||Qu());return jn(Br("var",[Sr(me(l.id),u)]),e)}var gY=function(r,s){var l=s.get(r.node.key.id.name),u=l.id,o=l.getId,c=l.setId,f=l.initAdded,h=o||c;if(!(!r.isProperty()&&(f||!h))){if(h)return s.set(r.node.key.id.name,Object.assign({},l,{initAdded:!0})),jn(xt.statement.ast(rY||(rY=se([` + var `,` = { + // configurable is false by default + // enumerable is false by default + // writable is false by default + get: `,`, + set: `,` + } + `])),me(u),o?o.name:r.scope.buildUndefinedNode(),c?c.name:r.scope.buildUndefinedNode()),r);var m=r.node.value||r.scope.buildUndefinedNode();return jn(xt.statement.ast(aY||(aY=se([` + var `,` = { + // configurable is false by default + // enumerable is false by default + writable: true, + value: `,` + }; + `])),me(u),m),r)}};function aUe(e,r,s){var l=s.get(r.node.key.id.name),u=l.methodId,o=l.id,c=l.getId,f=l.setId,h=l.initAdded;if(!h){if(u)return jn(xt.statement.ast(nY||(nY=se([` + Object.defineProperty(`,", ",`, { + // configurable is false by default + // enumerable is false by default + // writable is false by default + value: `,` + }); + `])),e,o,u.name),r);var m=c||f;if(m)return s.set(r.node.key.id.name,Object.assign({},l,{initAdded:!0})),jn(xt.statement.ast(sY||(sY=se([` + Object.defineProperty(`,", ",`, { + // configurable is false by default + // enumerable is false by default + // writable is false by default + get: `,`, + set: `,` + }); + `])),e,o,c?c.name:r.scope.buildUndefinedNode(),f?f.name:r.scope.buildUndefinedNode()),r)}}function nUe(e,r,s,l){var u=s.get(r.node.key.id.name);if(!u.initAdded){if(!ps(l)){var o=u.getId||u.setId;if(o)return sUe(e,r,s,l)}return iUe(e,r,s,l)}}function sUe(e,r,s,l){var u=s.get(r.node.key.id.name),o=u.id,c=u.getId,f=u.setId;if(s.set(r.node.key.id.name,Object.assign({},u,{initAdded:!0})),!l.availableHelper("classPrivateFieldInitSpec"))return jn(xt.statement.ast(iY||(iY=se([` + `,".set(",`, { + get: `,`, + set: `,` + }); + `])),o,e,c?c.name:r.scope.buildUndefinedNode(),f?f.name:r.scope.buildUndefinedNode()),r);var h=l.addHelper("classPrivateFieldInitSpec");return CS(jn(xt.statement.ast(oY||(oY=se(["",`( + `,`, + `,`, + { + get: `,`, + set: `,` + }, + )`])),h,qr(),me(o),c?c.name:r.scope.buildUndefinedNode(),f?f.name:r.scope.buildUndefinedNode()),r),r.node)}function iUe(e,r,s,l){var u=s.get(r.node.key.id.name),o=u.id;if(!l.availableHelper("classPrivateMethodInitSpec"))return jn(xt.statement.ast(lY||(lY=se(["",".add(",")"])),o,e),r);var c=l.addHelper("classPrivateMethodInitSpec");return jn(xt.statement.ast(uY||(uY=se(["",`( + `,`, + `,` + )`])),c,qr(),me(o)),r)}function vY(e,r){var s=r.node,l=s.key,u=s.computed,o=r.node.value||r.scope.buildUndefinedNode();return jn(Xt(tr("=",Vt(e,l,u||yn(l)),o)),r)}function bY(e,r,s){var l=r.node,u=l.key,o=l.computed,c=r.node.value||r.scope.buildUndefinedNode();return jn(Xt(ft(s.addHelper("defineProperty"),[e,o||yn(u)?u:Jt(u.name),c])),r)}function oUe(e,r,s,l){var u=l.get(r.node.key.id.name),o=u.id,c=u.methodId,f=u.getId,h=u.setId,m=u.initAdded;if(!m){var g=f||h;return g?(l.set(r.node.key.id.name,Object.assign({},u,{initAdded:!0})),jn(xt.statement.ast(cY||(cY=se([` + Object.defineProperty(`,", ",`, { + // configurable is false by default + // enumerable is false by default + // writable is false by default + get: `,`, + set: `,` + }) + `])),e,o,f?f.name:r.scope.buildUndefinedNode(),h?h.name:r.scope.buildUndefinedNode()),r)):jn(xt.statement.ast(dY||(dY=se([` + Object.defineProperty(`,", ",`, { + // configurable is false by default + // enumerable is false by default + // writable is false by default + value: `,` + }); + `])),e,o,c.name),r)}}function dv(e,r,s,l){l===void 0&&(l=!1);var u=s.get(r.node.key.id.name),o=u.id,c=u.methodId,f=u.getId,h=u.setId,m=u.getterDeclared,g=u.setterDeclared,x=u.static,R=r.node,w=R.params,T=R.body,I=R.generator,P=R.async,O=f&&w.length===0,j=h&&w.length>0;if(O&&m||j&&g)return s.set(r.node.key.id.name,Object.assign({},u,{initAdded:!0})),null;if(ps(e)&&(O||j)&&!l){var D=r.get("body").scope,k=D.generateUidIdentifier("this"),B={thisRef:k,argumentsPath:[]};if(r.traverse(xY,B),B.argumentsPath.length){var F=D.generateUidIdentifier("arguments");D.push({id:F,init:xt.expression.ast(pY||(pY=se(["[].slice.call(arguments, 1)"])))});for(var L=C(B.argumentsPath),V;!(V=L()).done;){var H=V.value;H.replaceWith(me(F))}}w.unshift(me(k))}var K=c;return O?(s.set(r.node.key.id.name,Object.assign({},u,{getterDeclared:!0,initAdded:!0})),K=f):j?(s.set(r.node.key.id.name,Object.assign({},u,{setterDeclared:!0,initAdded:!0})),K=h):x&&!l&&(K=o),jn(Vg(me(K),w,T,I,P),r)}var xY=Fn({Identifier:function(r,s){s.argumentsPath&&r.node.name==="arguments"&&s.argumentsPath.push(r)},UnaryExpression:function(r){var s=r.node;if(s.operator==="delete"){var l=lp(s.argument);Xs(l)&&r.replaceWith(un(!0))}},ThisExpression:function(r,s){s.needsClassRef=!0,r.replaceWith(me(s.thisRef))},MetaProperty:function(r){var s=r.node,l=r.scope;s.meta.name==="new"&&s.property.name==="target"&&r.replaceWith(l.buildUndefinedNode())}}),lUe={ReferencedIdentifier:function(r,s){r.scope.bindingIdentifierEquals(r.node.name,s.innerBinding)&&(s.needsClassRef=!0,r.node.name=s.thisRef.name)}};function uUe(e,r,s){var l,u={thisRef:r,needsClassRef:!1,innerBinding:s};return e.isMethod()||e.traverse(xY,u),s!=null&&(l=u.thisRef)!=null&&l.name&&u.thisRef.name!==s.name&&e.traverse(lUe,u),u.needsClassRef}function cUe(e){var r=e.key,s=e.computed;return r.type==="Identifier"?!s&&(r.name==="name"||r.name==="length"):r.type==="StringLiteral"?r.value==="name"||r.value==="length":!1}function jn(e,r){return a1(e,r.node),z8(e,r.node),e}function CS(e,r){return e.start=r.start,e.end=r.end,e.loc=r.loc,e}function dUe(e,r,s,l,u,o,c,f,h,m){var g,x,R=0,w,T=[],I=[],P=!1,O=[],j=null,D=Dt(r)?function(){return r}:function(){var V;return(V=w)!=null||(w=s[0].scope.generateUidIdentifierBasedOnNode(r)),w},k=(g=e)!=null?g:s[0].scope.generateUidIdentifier((m==null?void 0:m.name)||"Class");(x=e)!=null||(e=me(m));for(var B=function(){var H=L.value;H.isClassProperty()&&GJ(H);var K=!(kl!=null&&kl(H.node))&&H.node.static,G=!K,X=H.isPrivate(),ue=!X,oe=H.isProperty(),he=!oe,te=H.isStaticBlock==null?void 0:H.isStaticBlock();if(K&&(R|=1),K||he&&X||te){new op({methodPath:H,constantSuper:h,file:u,refToPreserve:m,getSuperRef:D,getObjectRef:function(){return R|=2,K||te?k:Vt(k,Ne("prototype"))}}).replace();var ae=uUe(H,k,m);ae&&(R|=2)}switch(P=!1,!0){case te:{var J=H.node.body;J.length===1&&Ea(J[0])?T.push(jn(J[0],H)):T.push(ql(xt.statement.ast(fY||(fY=se(["(() => { "," })()"])),J),H.node));break}case(K&&X&&oe&&c):T.push(yY(me(e),H,l));break;case(K&&X&&oe&&!c):ps(u)?T.push(rUe(H,l,f)):T.push(gY(H,l));break;case(K&&ue&&oe&&o):if(!cUe(H.node)){T.push(vY(me(e),H));break}case(K&&ue&&oe&&!o):T.push(bY(me(e),H,u));break;case(G&&X&&oe&&c):I.push(yY(qr(),H,l));break;case(G&&X&&oe&&!c):I.push(tUe(qr(),H,l,u));break;case(G&&X&&he&&c):I.unshift(aUe(qr(),H,l)),O.push(dv(u,H,l,c));break;case(G&&X&&he&&!c):I.unshift(nUe(qr(),H,l,u)),O.push(dv(u,H,l,c));break;case(K&&X&&he&&!c):ps(u)||T.unshift(gY(H,l)),O.push(dv(u,H,l,c));break;case(K&&X&&he&&c):T.unshift(oUe(me(e),H,u,l)),O.push(dv(u,H,l,c));break;case(G&&ue&&oe&&o):I.push(vY(qr(),H));break;case(G&&ue&&oe&&!o):P=!0,I.push(bY(qr(),H,u));break;default:throw new Error("Unreachable.")}},F=C(s),L;!(L=F()).done;)B();return R&2&&m!=null&&(j=Xt(tr("=",me(k),me(m)))),{staticNodes:T.filter(Boolean),instanceNodes:I.filter(Boolean),lastInstanceNodeReturnsThis:P,pureStaticNodes:O.filter(Boolean),classBindingNode:j,wrapClass:function(H){for(var K=C(s),G;!(G=K()).done;){var X=G.value;X.node.leadingComments=null,X.remove()}return w&&(H.scope.push({id:me(w)}),H.set("superClass",tr("=",w,H.node.superClass))),R!==0&&(H.isClassExpression()?(H.scope.push({id:e}),H.replaceWith(tr("=",me(e),H.node))):(m==null&&(H.node.id=e),j!=null&&H.scope.push({id:k}))),H}}}var RY,pUe=Fn({Super:function(r){var s=r.node,l=r.parentPath;l.isCallExpression({callee:s})&&this.push(l)}}),fUe={"TSTypeAnnotation|TypeAnnotation":function(r){r.skip()},ReferencedIdentifier:function(r,s){var l=s.scope;l.hasOwnBinding(r.node.name)&&(l.rename(r.node.name),r.skip())}};function EY(e,r){if(r.classBinding&&r.classBinding===e.scope.getBinding(e.node.name)){var s=r.file.addHelper("classNameTDZError"),l=ft(s,[Jt(e.node.name)]);e.replaceWith(Mr([l,e.node])),e.skip()}}var hUe={ReferencedIdentifier:EY};function jS(e,r,s,l,u){if(s.length){var o=!!e.node.superClass;if(!r){var c=zu("constructor",Ne("constructor"),[],ea([]));o&&(c.params=[No(Ne("args"))],c.body.body.push(xt.statement.ast(RY||(RY=se(["super(...args)"])))));var f=e.get("body").unshiftContainer("body",c),h=je(f,1);r=h[0]}if(l&&l(fUe,{scope:r.scope}),o){var m=[];r.traverse(pUe,m);for(var g=!0,x=0,R=m;x<R.length;x++){var w=R[x];if(g?g=!1:s=s.map(function(I){return me(I)}),w.parentPath.isExpressionStatement())w.insertAfter(s);else{var T=[w.node].concat(fe(s.map(function(I){return An(I)})));u||T.push(qr()),w.replaceWith(Mr(T))}}}else r.get("body").unshiftContainer("body",s)}}function Vh(e,r,s){var l=Dt(e)&&r.hasUid(e.name);if(!l){var u=Se(e,{operator:"="})&&Dt(e.left)&&r.hasUid(e.left.name);if(u)return me(e);var o=Ne(s);return r.push({id:o,kind:"let"}),tr("=",me(o),e)}}function mUe(e,r,s){for(var l=e.scope,u=[],o={classBinding:e.node.id&&l.getBinding(e.node.id.name),file:s},c=C(r),f;!(f=c()).done;){var h=f.value,m=h.get("key");m.isReferencedIdentifier()?EY(m,o):m.traverse(hUe,o);var g=h.node;if(!m.isConstantExpression()){var x=Vh(m.node,l,l.generateUidBasedOnNode(m.node));x&&(u.push(Xt(x)),g.key=me(x.left))}}return u}var SY,TY,wY,PY,AY;function IY(e,r){if(r===void 0&&(r=e.length-1),r===-1){e.unshift(65);return}var s=e[r];s===90?e[r]=97:s===122?(e[r]=65,IY(e,r-1)):e[r]=s+1}function yUe(e){var r=[],s=new Set;return e.traverse({PrivateName:function(u){s.add(u.node.id.name)}}),function(){var l;do IY(r),l=String.fromCharCode.apply(String,r);while(s.has(l));return vR(Ne(l))}}function gUe(e){var r;return function(){return r||(r=yUe(e)),r()}}function vUe(e,r){var s=e.node.id,l=e.scope;if(e.type==="ClassDeclaration"){var u=s.name,o=l.generateUidIdentifierBasedOnNode(s),c=Ne(u);return l.rename(u,o.name),e.get("id").replaceWith(c),{id:me(o),path:e}}else{var f;s?(r=s.name,f=ei(l.parent,r),l.rename(r,f.name)):f=ei(l.parent,typeof r=="string"?r:"decorated_class");var h=hR(typeof r=="string"?Ne(r):null,e.node.superClass,e.node.body),m=e.replaceWith(Mr([h,f])),g=je(m,1),x=g[0];return{id:me(f),path:x.get("expressions.0")}}}function CY(e,r,s){return e.type==="PrivateName"?Jg(e,r,void 0,s):Gf(e,r,void 0,void 0,s)}function OS(e,r){e.node.id||(e.node.id=typeof r=="string"?Ne(r):e.scope.generateUidIdentifier("Class"))}function jY(e,r,s,l,u,o,c,f){var h=(f==="2023-11"||f==="2023-05")&&c?e:qr(),m=ea([ln(Vt(me(h),me(u)))]),g=ea([Xt(tr("=",Vt(me(h),me(u)),Ne("v")))]),x,R;s.type==="PrivateName"?(x=Ju("get",s,[],m,c),R=Ju("set",l,[Ne("v")],g,c)):(x=zu("get",s,[],m,o,c),R=zu("set",l,[Ne("v")],g,o,c)),r.insertAfter(R),r.insertAfter(x)}function OY(e,r){return r!=="2023-11"&&r!=="2023-05"&&r!=="2023-01"?[xt.expression.ast(SY||(SY=se([` + function () { + return this.`,`; + } + `])),me(e)),xt.expression.ast(TY||(TY=se([` + function (value) { + this.`,` = value; + } + `])),me(e))]:[xt.expression.ast(wY||(wY=se([` + o => o.`,` + `])),me(e)),xt.expression.ast(PY||(PY=se([` + (o, v) => o.`,` = v + `])),me(e))]}function _S(e){if(e=ds(e),e.isSequenceExpression()){var r=e.get("expressions");return _S(r[r.length-1])}return e}function bUe(e){var r=_S(e);if(r.isConstantExpression())return me(e.node);if(r.isIdentifier()&&e.scope.hasUid(r.node.name))return me(e.node);if(r.isAssignmentExpression()&&r.get("left").isIdentifier())return me(r.node.left);throw new Error("Internal Error: the computed key "+e.toString()+" has not yet been memoised.")}function Wh(e,r){var s=r.get("key");s.isSequenceExpression()?e.push.apply(e,fe(s.node.expressions)):e.push(s.node),s.replaceWith(ou(e))}function xUe(e,r){var s=r.get("key"),l=_S(s);if(l.isConstantExpression())Wh(e,r);else{var u=s.scope.parent,o=Vh(l.node,u,u.generateUid("computedKey"));if(!o)Wh(e,r);else{var c=[].concat(fe(e),[me(o.left)]),f=l.parentPath;f.isSequenceExpression()?f.pushContainer("expressions",c):l.replaceWith(ou([me(o)].concat(fe(c))))}}}function NS(e,r){var s=r.get("value");s.node?e.push(s.node):e.length>0&&(e[e.length-1]=vn("void",e[e.length-1])),s.replaceWith(ou(e))}function RUe(e,r){r.unshiftContainer("body",Xt(ou(e)))}function EUe(e,r){r.node.body.body.unshift(Xt(ou(e)))}function _Y(e,r){return ct(e)&&Dt(e.callee,{name:r.name})}function SUe(e,r){if(r){if(e.length>=2&&_Y(e[1],r)){var s=ft(me(r),[e[0]]);e.splice(0,2,s)}e.length>=2&&Xs(e[e.length-1])&&_Y(e[e.length-2],r)&&e.splice(e.length-1,1)}return ou(e)}function TUe(e,r,s){r.traverse({CallExpression:{exit:function(u){if(u.get("callee").isSuper()){var o=[u.node].concat(fe(e.map(function(c){return me(c)})));u.isCompletionRecord()&&o.push(qr()),u.replaceWith(SUe(o,s)),u.skip()}}},ClassMethod:function(u){u.node.kind==="constructor"&&u.skip()}})}function NY(e,r){var s=[Xt(ou(e))];return r&&s.unshift(Xt(ft(Wf(),[Xu(Ne("args"))]))),zu("constructor",Ne("constructor"),r?[No(Ne("args"))]:[],ea(s))}function kY(e){return kd([Xt(ou(e))])}var Ec=0,iu=1,wUe=2,DY=3,pv=4,PUe=5,AUe=8,IUe=16;function CUe(e){switch(e.node.type){case"ClassProperty":case"ClassPrivateProperty":return Ec;case"ClassAccessorProperty":return iu;case"ClassMethod":case"ClassPrivateMethod":return e.node.kind==="get"?DY:e.node.kind==="set"?pv:wUe}}function jUe(e){return[].concat(fe(e.filter(function(r){return r.isStatic&&r.kind>=iu&&r.kind<=pv})),fe(e.filter(function(r){return!r.isStatic&&r.kind>=iu&&r.kind<=pv})),fe(e.filter(function(r){return r.isStatic&&r.kind===Ec})),fe(e.filter(function(r){return!r.isStatic&&r.kind===Ec})))}function LY(e,r,s){for(var l=e.length,u=r.some(Boolean),o=[],c=0;c<l;c++)(s==="2023-11"||s==="2023-05")&&u&&o.push(r[c]||vn("void",Wr(0))),o.push(e[c].expression);return{haveThis:u,decs:o}}function OUe(e,r){return Ra(e.map(function(s){var l=s.kind;return s.isStatic&&(l+=r==="2023-11"||r==="2023-05"?AUe:PUe),s.decoratorsHaveThis&&(l+=IUe),Ra([s.decoratorsArray,Wr(l),s.name].concat(fe(s.privateMethods||[])))}))}function _Ue(e){for(var r=[],s=C(e),l;!(l=s()).done;){var u=l.value,o=u.locals;Array.isArray(o)?r.push.apply(r,fe(o)):o!==void 0&&r.push(o)}return r}function NUe(e,r,s,l,u,o){r.insertAfter(Ju("get",me(s),[],ea([ln(ft(me(l),e==="2023-11"&&o?[]:[qr()]))]),o)),r.insertAfter(Ju("set",me(s),[Ne("v")],ea([Xt(ft(me(u),e==="2023-11"&&o?[Ne("v")]:[qr(),Ne("v")]))]),o))}function kUe(e,r,s,l){var u,o;e.node.kind==="set"?(u=[Ne("v")],o=[Xt(ft(s,[qr(),Ne("v")]))]):(u=[],o=[ln(ft(s,[qr()]))]),e.replaceWith(Ju(e.node.kind,me(r),u,ea(o),l))}function MY(e){var r=e.type;return r!=="TSDeclareMethod"&&r!=="TSIndexSignature"&&r!=="StaticBlock"}function DUe(e){return ft(fi([],ea(e.body)),[])}function LUe(e){return Mn(null,[],ea(e.body))}function MUe(e){return Mn(null,[],ea([ln(e)]))}function ou(e){return e.length===0?vn("void",Wr(0)):e.length===1?e[0]:Mr(e)}function BY(e){var r=e.params,s=e.body,l=e.generator,u=e.async;return Mn(void 0,r,s,l,u)}function FY(e,r){return ft(e.addHelper("setFunctionName"),[qr(),r])}function kS(e,r){return ft(e.addHelper("toPropertyKey"),[r])}function DS(e){return fi([Ne("_")],nn("in",me(e),Ne("_")))}function BUe(e){try{return Ul(e,function(r){if(Li(r))throw null}),!1}catch{return!0}}function FUe(e){var r=e.node;r.computed=!0,Dt(r.key)&&(r.key=Jt(r.key.name))}function LS(e,r){var s=!1;if(r.length>0){for(var l=uv({PrivateName:function(m,g){g.privateNamesMap.has(m.node.id.name)&&(s=!0,m.stop())}}),u=new Map,o=C(r),c;!(c=o()).done;){var f=c.value;u.set(f,null)}e.traverse(l,{privateNamesMap:u})}return s}function $Ue(e,r){for(var s=uv({PrivateName:function(h,m){if(m.privateNamesMap.has(h.node.id.name)){var g=h.parentPath,x=g.parentPath;if(x.node.type==="AssignmentExpression"&&x.node.left===g.node||x.node.type==="UpdateExpression"||x.node.type==="RestElement"||x.node.type==="ArrayPattern"||x.node.type==="ObjectProperty"&&x.node.value===g.node&&x.parentPath.type==="ObjectPattern"||x.node.type==="ForOfStatement"&&x.node.left===g.node)throw h.buildCodeFrameError('Decorated private methods are read-only, but "#'+h.node.id.name+'" is updated via this expression.')}}}),l=new Map,u=C(r),o;!(o=u()).done;){var c=o.value;l.set(c,null)}e.traverse(s,{privateNamesMap:l})}function qUe(e,r,s,l,u,o,c){for(var f,h,m=e.get("body.body"),g=e.node.decorators,x=!1,R=!1,w=!1,T=gUe(e),I=[],P=e.scope.parent,O=function(nl,Pn,xp){var Rp=ei(P,Pn);return xp.push(tr("=",Rp,nl)),me(Rp)},j,D,k=(f=e.node.id)==null?void 0:f.name,B=typeof u=="object"?u:void 0,F=function(nl){try{return Ul(nl,function(Pn){if(Xs(Pn)||Js(Pn)||xf(Pn)||sg(Pn)||Dt(Pn,{name:"arguments"})||k&&Dt(Pn,{name:k})||gf(Pn)&&Pn.meta.name!=="import")throw null}),!1}catch{return!0}},L=[],V=C(m),H;!(H=V()).done;){var K=H.value;if(MY(K)){var G=K.node;if(!G.static&&Li(G.key)&&L.push(G.key.id.name),Gh(G)){switch(G.type){case"ClassProperty":o.ClassProperty(K,r);break;case"ClassPrivateProperty":o.ClassPrivateProperty(K,r);break;case"ClassAccessorProperty":if(o.ClassAccessorProperty(K,r),c==="2023-11")break;default:if(G.static){var X;(X=D)!=null||(D=ei(P,"initStatic"))}else{var ue;(ue=j)!=null||(j=ei(P,"initProto"))}break}x=!0,w||(w=G.decorators.some(F))}else if(G.type==="ClassAccessorProperty"){o.ClassAccessorProperty(K,r);var oe=G.key,he=G.value,te=G.static,ae=G.computed,J=T(),xe=CY(J,he,te),de=K.get("key"),$e=K.replaceWith(xe),Ve=je($e,1),Ie=Ve[0],ke=void 0,Le=void 0;ae&&!de.isConstantExpression()?(ke=Vh(kS(r,oe),P,P.generateUid("computedKey")),Le=me(ke.left)):(ke=me(oe),Le=me(oe)),OS(e,u),jY(e.node.id,Ie,ke,Le,J,ae,te,c)}"computed"in K.node&&K.node.computed&&(R||(R=!P.isStatic(K.node.key)))}}if(!g&&!x){!e.node.id&&typeof u=="string"&&(e.node.id=Ne(u)),B&&e.node.body.body.unshift(kY([FY(r,B)]));return}var Ze=[],at,lt=new Set,gt,It,tt=null;function Ft(xa){for(var nl=!1,Pn=!1,xp=[],Rp=C(xa),Om;!(Om=Rp()).done;){var hb=Om.value,sl=hb.expression,mb=void 0;if((c==="2023-11"||c==="2023-05")&&lr(sl))if(Js(sl.object))mb=qr();else if(P.isStatic(sl.object))mb=me(sl.object);else{var Zde;(Zde=tt)!=null||(tt=ei(P,"obj")),mb=tr("=",me(tt),sl.object),sl.object=me(tt)}xp.push(mb),nl||(nl=!P.isStatic(sl)),Pn||(Pn=F(hb))}return{hasSideEffects:nl,usesFnContext:Pn,decoratorsThis:xp}}var rr=R||w||c!=="2023-11",$t=!1,Et=0,Lt=[],Re,Be=[];if(g){gt=ei(P,"initClass"),$t=e.isClassDeclaration();var et=vUe(e,u);It=et.id,e=et.path,e.node.decorators=null;var it=g.some(BUe),vt=Ft(g),Ot=vt.hasSideEffects,De=vt.usesFnContext,Qe=vt.decoratorsThis,yt=LY(g,Qe,c),jt=yt.haveThis,Kt=yt.decs;if(Et=jt?1:0,Lt=Kt,(De||Ot&&rr||it)&&(Re=O(Ra(Lt),"classDecs",I)),!x)for(var Ht=C(e.get("body.body")),Cr;!(Cr=Ht()).done;){var Yr=Cr.value,Or=Yr.node,Gr="computed"in Or&&Or.computed;if(Gr)if(Yr.isClassProperty({static:!0})){if(!Yr.get("key").isConstantExpression()){var qa=Or.key,cr=Vh(qa,P,P.generateUid("computedKey"));cr!=null&&(Or.key=me(cr.left),Be.push(cr))}}else Be.length>0&&(Wh(Be,Yr),Be=[])}}else OS(e,u),It=me(e.node.id);var na,N=!1,$=[],U=[];if(x){if(j){var pe=ft(me(j),[qr()]);$.push(pe)}for(var _e=C(m),We;!(We=_e()).done;){var Ce=We.value;if(!MY(Ce)){U.length>0&&Ce.isStaticBlock()&&(RUe(U,Ce),U=[]);continue}var Ct=Ce.node,ie=Ct.decorators,st=!!(ie!=null&&ie.length),dt="computed"in Ct&&Ct.computed,St="computedKey";Ct.key.type==="PrivateName"?St=Ct.key.id.name:!dt&&Ct.key.type==="Identifier"&&(St=Ct.key.name);var Gt=void 0,zr=void 0;if(st){var cn=Ft(ie),ti=cn.hasSideEffects,sb=cn.usesFnContext,ib=cn.decoratorsThis,wm=LY(ie,ib,c),L_=wm.decs,vnt=wm.haveThis;zr=vnt,Gt=L_.length===1?L_[0]:Ra(L_),(sb||ti&&rr)&&(Gt=O(Gt,St+"Decs",Be))}if(dt&&!Ce.get("key").isConstantExpression()){var Ode=Ct.key,ob=Vh(st?kS(r,Ode):Ode,P,P.generateUid("computedKey"));ob!=null&&(g&&Ce.isClassProperty({static:!0})?(Ct.key=me(ob.left),Be.push(ob)):Ct.key=ob)}var Jn=Ct.key,wi=Ct.static,lb=Jn.type==="PrivateName",Pi=CUe(Ce);lb&&!wi&&(st&&(N=!0),(Sf(Ct)||!na)&&(na=Jn)),Ce.isClassMethod({kind:"constructor"})&&(at=Ce);var vp=void 0;if(st){var ub=void 0,Pm=void 0;if(dt?Pm=bUe(Ce.get("key")):Jn.type==="PrivateName"?Pm=Jt(Jn.id.name):Jn.type==="Identifier"?Pm=Jt(Jn.name):Pm=me(Jn),Pi===iu){var bnt=Ce.node,_de=bnt.value,Nde=c==="2023-11"&&wi?[]:[qr()];_de&&Nde.push(me(_de));var M_=T(),B_=ei(P,"init_"+St),xnt=ft(me(B_),Nde),Rnt=CY(M_,xnt,wi),Ent=Ce.replaceWith(Rnt),Snt=je(Ent,1),kde=Snt[0];if(lb){ub=OY(M_,c);var Dde=ei(P,"get_"+St),Lde=ei(P,"set_"+St);NUe(c,kde,Jn,Dde,Lde,wi),vp=[B_,Dde,Lde]}else OS(e,u),jY(e.node.id,kde,me(Jn),Se(Jn)?me(Jn.left):me(Jn),M_,dt,wi,c),vp=[B_]}else if(Pi===Ec){var Mde=ei(P,"init_"+St),F_=Ce.get("value"),Bde=c==="2023-11"&&wi?[]:[qr()];F_.node&&Bde.push(F_.node),F_.replaceWith(ft(me(Mde),Bde)),vp=[Mde],lb&&(ub=OY(Jn,c))}else if(lb){var $_=ei(P,"call_"+St);vp=[$_];var Tnt=new op({constantSuper:s,methodPath:Ce,objectRef:It,superRef:e.node.superClass,file:r.file,refToPreserve:It});if(Tnt.replace(),ub=[BY(Ce.node)],Pi===DY||Pi===pv)kUe(Ce,me(Jn),me($_),wi);else{var wnt=Ce.node;e.node.body.body.unshift(Jg(Jn,me($_),[],wnt.static)),lt.add(Jn.id.name),Ce.remove()}}Ze.push({kind:Pi,decoratorsArray:Gt,decoratorsHaveThis:zr,name:Pm,isStatic:wi,privateMethods:ub,locals:vp}),Ce.node&&(Ce.node.decorators=null)}if(dt&&Be.length>0&&(g&&Ce.isClassProperty({static:!0})||(Wh(Be,Pi===iu?Ce.getNextSibling():Ce),Be=[])),$.length>0&&!wi&&(Pi===Ec||Pi===iu)&&(NS($,Ce),$=[]),U.length>0&&wi&&(Pi===Ec||Pi===iu)&&(NS(U,Ce),U=[]),st&&c==="2023-11"&&(Pi===Ec||Pi===iu)){var Fde=ei(P,"init_extra_"+St);vp.push(Fde);var $de=ft(me(Fde),wi?[]:[qr()]);wi?U.push($de):$.push($de)}}}if(Be.length>0){for(var qde=e.get("body.body"),q_,U_=qde.length-1;U_>=0;U_--){var Ude=qde[U_],Vde=Ude.node;if(Vde.computed){if(g&&Qi(Vde,{static:!0}))continue;q_=Ude;break}}q_!=null&&(xUe(Be,q_),Be=[])}if($.length>0){var Wde=!!e.node.superClass;at?Wde?TUe($,at,j):EUe($,at):e.node.body.body.unshift(NY($,Wde)),$=[]}U.length>0&&(e.node.body.body.push(kY(U)),U=[]);var Gde=jUe(Ze),Pnt=OUe(c==="2023-11"?Ze:Gde,c),V_=_Ue(Gde);j&&V_.push(j),D&&V_.push(D);var Kde=[],Hde=!1,cb=gt&&ft(me(gt),[]),zde=e,Am=e.node,Im=[];if(g){Kde.push(It,gt);var db=[];if(e.get("body.body").forEach(function(xa){if(xa.isStaticBlock()){if(LS(xa,L)){var nl=O(LUe(xa.node),"staticBlock",Im);U.push(ft(Vt(nl,Ne("call")),[qr()]))}else U.push(DUe(xa.node));xa.remove();return}if((xa.isClassProperty()||xa.isClassPrivateProperty())&&xa.node.static){var Pn=xa.get("value");if(LS(Pn,L)){var xp=O(MUe(Pn.node),"fieldValue",Im);Pn.replaceWith(ft(Vt(xp,Ne("call")),[qr()]))}U.length>0&&(NS(U,xa),U=[]),xa.node.static=!1,db.push(xa.node),xa.remove()}else if(xa.isClassPrivateMethod({static:!0})){if(LS(xa,L)){var Rp=new op({constantSuper:s,methodPath:xa,objectRef:It,superRef:e.node.superClass,file:r.file,refToPreserve:It});Rp.replace();var Om=O(BY(xa.node),xa.get("key.id").node.name,Im);l?(xa.node.params=[No(Ne("arg"))],xa.node.body=ea([ln(ft(Vt(Om,Ne("apply")),[qr(),Ne("arg")]))])):(xa.node.params=xa.node.params.map(function(hb,sl){return hn(hb)?No(Ne("arg")):Ne("_"+sl)}),xa.node.body=ea([ln(ft(Vt(Om,Ne("apply")),[qr(),Ne("arguments")]))]))}xa.node.static=!1,db.push(xa.node),xa.remove()}}),db.length>0||U.length>0){var W_=xt.expression.ast(AY||(AY=se([` + class extends `,` {} + `])),r.addHelper("identity"));W_.body.body=[Gf(An(Am),void 0,void 0,void 0,!0,!0)].concat(db);var bp=[],Xde=qf(W_,[]);U.length>0&&bp.push.apply(bp,fe(U)),cb&&(Hde=!0,bp.push(cb)),bp.length>0?(bp.unshift(ft(Wf(),[me(It)])),W_.body.body.push(NY(bp,!1))):Xde.arguments.push(me(It));var Ant=e.replaceWith(Xde),Int=je(Ant,1),Cnt=Int[0];zde=Cnt.get("callee").get("body").get("body.0.key")}}!Hde&&cb&&e.node.body.body.push(kd([Xt(cb)]));var Cm=Am.superClass;if(Cm&&(c==="2023-11"||c==="2023-05")){var G_=e.scope.maybeGenerateMemoised(Cm);G_&&(Am.superClass=tr("=",G_,Cm),Cm=G_)}var Jde=kd([]);Am.body.body.unshift(Jde);var jm=Jde.body;if(Be.length>0){for(var jnt=zde.get("body.body"),pb,Ont=C(jnt),Yde;!(Yde=Ont()).done;){var fb=Yde.value;if((fb.isClassProperty()||fb.isClassMethod())&&fb.node.kind!=="constructor"){pb=fb;break}}pb!=null?(FUe(pb),Wh(Be,pb)):(Am.body.body.unshift(Gf(Mr([].concat(fe(Be),[Jt("_")])),void 0,void 0,void 0,!0,!0)),jm.push(Xt(vn("delete",Vt(qr(),Ne("_")))))),Be=[]}if(jm.push(Xt(UUe(V_,Kde,Pnt,(h=Re)!=null?h:Ra(Lt),Wr(Et),N?na:null,B,me(Cm),r,c))),D&&jm.push(Xt(ft(me(D),[qr()]))),Im.length>0&&jm.push.apply(jm,fe(Im.map(function(xa){return Xt(xa)}))),e.insertBefore(I.map(function(xa){return Xt(xa)})),$t){var _nt=P.getBinding(It.name);if(!_nt.constantViolations.length)e.insertBefore(Br("let",[Sr(me(It))]));else{var K_=P.generateUidIdentifier("t"+It.name),Qde=It;e.replaceWithMultiple([Br("let",[Sr(me(Qde)),Sr(K_)]),ea([Br("let",[Sr(me(It))]),e.node,Xt(tr("=",me(K_),me(It)))]),Xt(tr("=",me(Qde),me(K_)))])}}return lt.size>0&&$Ue(e,lt),e.scope.crawl(),e}function UUe(e,r,s,l,u,o,c,f,h,m){var g,x,R=[c?FY(h,c):qr(),l,s];{if(m!=="2023-11"&&R.splice(1,2,s,l),m==="2021-12"||m==="2022-03"&&!h.availableHelper("applyDecs2203R"))return g=$l([].concat(fe(e),fe(r))),x=ft(h.addHelper(m==="2021-12"?"applyDecs":"applyDecs2203"),R),tr("=",g,x);m==="2022-03"?x=ft(h.addHelper("applyDecs2203R"),R):m==="2023-01"?(o&&R.push(DS(o)),x=ft(h.addHelper("applyDecs2301"),R)):m==="2023-05"&&((o||f||u.value!==0)&&R.push(u),o?R.push(DS(o)):f&&R.push(vn("void",Wr(0))),f&&R.push(f),x=ft(h.addHelper("applyDecs2305"),R))}return m==="2023-11"&&((o||f||u.value!==0)&&R.push(u),o?R.push(DS(o)):f&&R.push(vn("void",Wr(0))),f&&R.push(f),x=ft(h.addHelper("applyDecs2311"),R)),e.length>0?r.length>0?g=Vf([sn(Ne("e"),$l(e)),sn(Ne("c"),$l(r))]):(g=$l(e),x=Vt(x,Ne("e"),!1,!1)):(g=$l(r),x=Vt(x,Ne("c"),!1,!1)),tr("=",g,x)}function VUe(e){return e.type==="Identifier"?e.name==="__proto__":e.value==="__proto__"}function Gh(e){return e.decorators&&e.decorators.length>0}function WUe(e){switch(e.type){case"ClassAccessorProperty":return!0;case"ClassMethod":case"ClassProperty":case"ClassPrivateMethod":case"ClassPrivateProperty":return Gh(e);default:return!1}}function GUe(e){return Gh(e)||e.body.body.some(WUe)}function KUe(e,r){function s(l,u,o){switch(u.type){case"StringLiteral":return Jt(u.value);case"NumericLiteral":case"BigIntLiteral":{var c=u.value+"";return l.get("key").replaceWith(Jt(c)),Jt(c)}default:{var f=l.scope.maybeGenerateMemoised(u);return l.get("key").replaceWith(tr("=",f,kS(o,u))),me(f)}}}return{VariableDeclarator:function(u,o){var c=u.node.id;if(c.type==="Identifier"){var f=ds(u.get("init"));if(e(f)){var h=c.name;r(f,o,h)}}},AssignmentExpression:function(u,o){var c=u.node.left;if(c.type==="Identifier"){var f=ds(u.get("right"));if(e(f))switch(u.node.operator){case"=":case"&&=":case"||=":case"??=":r(f,o,c.name)}}},AssignmentPattern:function(u,o){var c=u.node.left;if(c.type==="Identifier"){var f=ds(u.get("right"));if(e(f)){var h=c.name;r(f,o,h)}}},ObjectExpression:function(u,o){for(var c=C(u.get("properties")),f;!(f=c()).done;){var h=f.value;if(h.isObjectProperty()){var m=h.node,g=m.key,x=ds(h.get("value"));if(e(x)){if(m.computed){var w=s(h,g,o);r(x,o,w)}else if(!VUe(g))if(g.type==="Identifier")r(x,o,g.name);else{var R=Jt(g.value+"");r(x,o,R)}}}}},ClassPrivateProperty:function(u,o){var c=u.node,f=ds(u.get("value"));if(e(f)){var h=Jt("#"+c.key.id.name);r(f,o,h)}},ClassAccessorProperty:function(u,o){var c=u.node,f=c.key,h=ds(u.get("value"));if(e(h))if(c.computed){var x=s(u,f,o);r(h,o,x)}else if(f.type==="Identifier")r(h,o,f.name);else if(f.type==="PrivateName"){var m=Jt("#"+f.id.name);r(h,o,m)}else{var g=Jt(f.value+"");r(h,o,g)}},ClassProperty:function(u,o){var c=u.node,f=c.key,h=ds(u.get("value"));if(e(h))if(c.computed){var g=s(u,f,o);r(h,o,g)}else if(f.type==="Identifier")r(h,o,f.name);else{var m=Jt(f.value+"");r(h,o,m)}}}}function HUe(e){return e.isClassExpression({id:null})&&GUe(e.node)}function ei(e,r){var s=e.generateUidIdentifier(r);return e.push({id:s,kind:"let"}),me(s)}function zUe(e,r,s,l){var u,o,c=e.assertVersion,f=e.assumption,h=r.loose;c("*");var m=new WeakSet,g=(u=f("constantSuper"))!=null?u:h,x=(o=f("ignoreFunctionLength"))!=null?o:h,R=KUe(HUe,w);function w(T,I,P){var O,j;if(!m.has(T)){var D=T.node;(O=P)!=null||(P=(j=D.id)==null?void 0:j.name);var k=qUe(T,I,g,x,P,R,s);if(k){m.add(k);return}m.add(T)}}return{name:"proposal-decorators",inherits:l,visitor:Object.assign({ExportDefaultDeclaration:function(I,P){var O=I.node.declaration;if((O==null?void 0:O.type)==="ClassDeclaration"&&Gh(O)){var j=!O.id,D=I.splitExportDeclaration();j&&w(D,P,Jt("default"))}},ExportNamedDeclaration:function(I){var P=I.node.declaration;(P==null?void 0:P.type)==="ClassDeclaration"&&Gh(P)&&I.splitExportDeclaration()},Class:function(I,P){w(I,P,void 0)}},R)}}function XUe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var JUe=(XUe(er.env.BABEL_8_BREAKING),gi()),$Y,qY,UY,VY;function fv(e){var r;return!!((r=e.decorators)!=null&&r.length)}function WY(e){return fv(e)||e.body.body.some(fv)}function cp(e,r){return r?sn(Ne(e),r):null}function YUe(e,r){return dR("method",Ne(e),[],ea(r))}function GY(e){var r;return e.decorators&&e.decorators.length>0&&(r=Ra(e.decorators.map(function(s){return s.expression}))),e.decorators=void 0,r}function QUe(e){return e.computed?e.key:Dt(e.key)?Jt(e.key.name):Jt(String(e.key.value))}function ZUe(e,r,s,l){var u=l.isClassMethod();if(l.isPrivate())throw l.buildCodeFrameError("Private "+(u?"methods":"fields")+" in decorated classes are not supported yet.");if(l.node.type==="ClassAccessorProperty")throw l.buildCodeFrameError('Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');if(l.node.type==="StaticBlock")throw l.buildCodeFrameError('Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');var o=l,c=o.node,f=o.scope;l.isTSDeclareMethod()||new op({methodPath:l,objectRef:r,superRef:s,file:e,refToPreserve:r}).replace();var h=[cp("kind",Jt(Mu(c)?c.kind:"field")),cp("decorators",GY(c)),cp("static",c.static&&un(!0)),cp("key",QUe(c))].filter(Boolean);return u?(l.ensureFunctionName(!1),h.push(cp("value",An(l.node)))):Qi(c)&&c.value?h.push(YUe("value",xt.statements.ast($Y||($Y=se(["return ",""])),c.value))):h.push(cp("value",f.buildUndefinedNode())),l.remove(),Oa(h)}function eVe(e){return e.addHelper("decorate")}function tVe(e,r,s,l){var u=r.node,o=r.scope,c=o.generateUidIdentifier("initialize"),f=u.id&&r.isDeclaration(),h=r.isInStrictMode(),m=u.superClass;u.type="ClassDeclaration",u.id||(u.id=me(e));var g;m&&(g=o.generateUidIdentifierBasedOnNode(u.superClass,"super"),u.superClass=g);var x=GY(u),R=Ra(s.filter(function(P){return!P.node.abstract&&P.node.type!=="TSIndexSignature"}).map(function(P){return ZUe(l,u.id,g,P)})),w=xt.expression.ast(qY||(qY=se([` + `,`( + `,`, + function (`,", ",`) { + `,` + return { F: `,", d: ",` }; + }, + `,` + ) + `])),eVe(l),x||Bn(),c,m?me(g):null,u,me(u.id),R,m);h||w.arguments[1].body.directives.push(Cd(jd("use strict")));var T=w,I="arguments.1.body.body.0";return f&&(T=xt.statement.ast(UY||(UY=se(["let "," = ",""])),e,w),I="declarations.0.init."+I),{instanceNodes:[xt.statement.ast(VY||(VY=se([` + `,`(this) + `])),me(c))],wrapClass:function(O){return O.replaceWith(T),O.get(I)}}}var fs=Object.freeze({fields:2,privateMethods:4,decorators:8,privateIn:16,staticBlocks:32}),KY=new Map([[fs.fields,"@babel/plugin-transform-class-properties"],[fs.privateMethods,"@babel/plugin-transform-private-methods"],[fs.privateIn,"@babel/plugin-transform-private-property-in-object"]]),MS="@babel/plugin-class-features/featuresKey",Kh="@babel/plugin-class-features/looseKey",Sc="@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing",HY=function(r,s){return!!(r.get(Sc)&s)};function BS(e,r,s){(!zo(e,r)||HY(e,r))&&(e.set(MS,e.get(MS)|r),s==="#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error"?(hv(e,r,!0),e.set(Sc,e.get(Sc)|r)):s==="#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"?(hv(e,r,!1),e.set(Sc,e.get(Sc)|r)):hv(e,r,s));for(var l,u=C(KY),o;!(o=u()).done;){var c=je(o.value,2),f=c[0],h=c[1];if(zo(e,f)&&!HY(e,f)){var m=FS(e,f);if(l===!m)throw new Error(`'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled). + +`+zY(e));l=m;var g=h}}if(l!==void 0)for(var x=C(KY),R;!(R=x()).done;){var w=je(R.value,2),T=w[0],I=w[1];zo(e,T)&&FS(e,T)!==l&&(hv(e,T,l),console.warn('Though the "loose" option was set to "'+!l+'" in your @babel/preset-env '+("config, it will not be used for "+I+' since the "loose" mode option was set to ')+('"'+l+'" for '+g+`. +The "loose" option must be the `)+`same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding +`+(' ["'+I+'", { "loose": '+l+` }] +`)+`to the "plugins" section of your Babel config. + +`+zY(e)))}}function zY(e){var r=e.opts.filename;return(!r||r==="unknown")&&(r="[name of the input file]"),`If you already set the same 'loose' mode for these plugins in your config, it's possible that they are enabled multiple times with different options. +You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration: + npx cross-env BABEL_SHOW_CONFIG_FOR=`+r+` <your build command> +See https://babeljs.io/docs/configuration#print-effective-configs for more info.`}function zo(e,r){return!!(e.get(MS)&r)}function FS(e,r){return!!(e.get(Kh)&r)}function hv(e,r,s){s?e.set(Kh,e.get(Kh)|r):e.set(Kh,e.get(Kh)&~r),e.set(Sc,e.get(Sc)&~r)}function rVe(e,r){var s=null,l=null,u=null,o=null,c=null;fv(e.node)&&(s=e.get("decorators.0"));for(var f=C(e.get("body.body")),h;!(h=f()).done;){var m=h.value;!s&&fv(m.node)&&(s=m.get("decorators.0")),!l&&m.isClassProperty()&&(l=m),!u&&m.isClassPrivateProperty()&&(u=m),!o&&m.isClassPrivateMethod!=null&&m.isClassPrivateMethod()&&(o=m),!c&&m.isStaticBlock!=null&&m.isStaticBlock()&&(c=m)}if(s&&u)throw u.buildCodeFrameError("Private fields in decorated classes are not supported yet.");if(s&&o)throw o.buildCodeFrameError("Private methods in decorated classes are not supported yet.");if(s&&!zo(r,fs.decorators))throw e.buildCodeFrameError(`Decorators are not enabled. +If you are using ["@babel/plugin-proposal-decorators", { "version": "legacy" }], make sure it comes *before* "@babel/plugin-transform-class-properties" and enable loose mode, like so: + ["@babel/plugin-proposal-decorators", { "version": "legacy" }] + ["@babel/plugin-transform-class-properties", { "loose": true }]`);if(o&&!zo(r,fs.privateMethods))throw o.buildCodeFrameError("Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.");if((l||u)&&!zo(r,fs.fields)&&!zo(r,fs.privateMethods))throw e.buildCodeFrameError("Class fields are not enabled. Please add `@babel/plugin-transform-class-properties` to your configuration.");if(c&&!zo(r,fs.staticBlocks))throw e.buildCodeFrameError("Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block` to your configuration.");return!!(s||o||c||(l||u)&&zo(r,fs.fields))}var Tc="@babel/plugin-class-features/version";function $S(e){var r,s=e.name,l=e.feature,u=e.loose,o=e.manipulateOptions,c=e.api,f=e.inherits,h=e.decoratorVersion;if(l&fs.decorators&&(h==="2023-11"||h==="2023-05"||h==="2023-01"||h==="2022-03"||h==="2021-12"))return zUe(c,{loose:u},h,f);{var m;(m=c)!=null||(c={assumption:function(){}})}var g=c.assumption("setPublicClassFields"),x=c.assumption("privateFieldsAsSymbols"),R=c.assumption("privateFieldsAsProperties"),w=(r=c.assumption("noUninitializedPrivateFieldAccess"))!=null?r:!1,T=c.assumption("constantSuper"),I=c.assumption("noDocumentAll");if(R&&x)throw new Error('Cannot enable both the "privateFieldsAsProperties" and "privateFieldsAsSymbols" assumptions as the same time.');var P=R||x;if(u===!0){var O=[];g!==void 0&&O.push('"setPublicClassFields"'),R!==void 0&&O.push('"privateFieldsAsProperties"'),x!==void 0&&O.push('"privateFieldsAsSymbols"'),O.length!==0&&console.warn("["+s+']: You are using the "loose: true" option and you are'+(" explicitly setting a value for the "+O.join(" and "))+(" assumption"+(O.length>1?"s":"")+'. The "loose" option')+` can cause incompatibilities with the other class features plugins, so it's recommended that you replace it with the following top-level option: + "assumptions": { + "setPublicClassFields": true, + "privateFieldsAsSymbols": true + }`)}return{name:s,manipulateOptions:o,inherits:f,pre:function(D){if(BS(D,l,u),typeof D.get(Tc)=="number"){D.set(Tc,"7.25.4");return}(!D.get(Tc)||JUe.lt(D.get(Tc),"7.25.4"))&&D.set(Tc,"7.25.4")},visitor:{Class:function(D,k){var B,F=k.file;if(F.get(Tc)==="7.25.4"&&rVe(D,F)){var L=D.isClassDeclaration();L&&GJ(D);for(var V=FS(F,l),H,K=WY(D.node),G=[],X=[],ue=[],oe=new Set,he=D.get("body"),te=C(he.get("body")),ae;!(ae=te()).done;){var J=ae.value;if((J.isClassProperty()||J.isClassMethod())&&J.node.computed&&ue.push(J),J.isPrivate()){var xe=J.node.key.id.name,de="get "+xe,$e="set "+xe;if(J.isClassPrivateMethod()){if(J.node.kind==="get"){if(oe.has(de)||oe.has(xe)&&!oe.has($e))throw J.buildCodeFrameError("Duplicate private field");oe.add(de).add(xe)}else if(J.node.kind==="set"){if(oe.has($e)||oe.has(xe)&&!oe.has(de))throw J.buildCodeFrameError("Duplicate private field");oe.add($e).add(xe)}}else{if(oe.has(xe)&&!oe.has(de)&&!oe.has($e)||oe.has(xe)&&(oe.has(de)||oe.has($e)))throw J.buildCodeFrameError("Duplicate private field");oe.add(xe)}}J.isClassMethod({kind:"constructor"})?H=J:(X.push(J),(J.isProperty()||J.isPrivate()||J.isStaticBlock!=null&&J.isStaticBlock())&&G.push(J))}if(!(!G.length&&!K)){var Ve=D.node.id,Ie;(!Ve||!L)&&(D.ensureFunctionName(!1),Ie=D.scope.generateUidIdentifier((Ve==null?void 0:Ve.name)||"Class"));var ke=(B=Ie)!=null?B:me(Ve),Le=Hqe(ke.name,P??V,G,F),Ze=zqe(Le,R??V,x??!1,F);eUe(ke,D,Le,{privateFieldsAsProperties:P??V,noUninitializedPrivateFieldAccess:w,noDocumentAll:I,innerBinding:Ve},F);var at,lt,gt,It,tt,Ft,rr;if(K){lt=tt=at=[];var $t=tVe(ke,D,X,F);gt=$t.instanceNodes,rr=$t.wrapClass}else{at=mUe(D,ue,F);var Et=dUe(Ie,D.node.superClass,G,Le,F,g??V,P??V,w,T??V,Ve);lt=Et.staticNodes,tt=Et.pureStaticNodes,gt=Et.instanceNodes,It=Et.lastInstanceNodeReturnsThis,Ft=Et.classBindingNode,rr=Et.wrapClass}gt.length>0&&jS(D,H,gt,function(Re,Be){if(!K)for(var et=C(G),it;!(it=et()).done;){var vt=it.value;kl!=null&&kl(vt.node)||vt.node.static||vt.traverse(Re,Be)}},It);var Lt=rr(D);Lt.insertBefore([].concat(fe(Ze),fe(at))),lt.length>0&&Lt.insertAfter(lt),tt.length>0&&Lt.find(function(Re){return Re.isStatement()||Re.isDeclaration()}).insertAfter(tt),Ft!=null&&L&&Lt.insertAfter(Ft)}}},ExportDefaultDeclaration:function(D,k){var B=k.file;{if(B.get(Tc)!=="7.25.4")return;var F=D.get("declaration");F.isClassDeclaration()&&WY(F.node)&&(F.node.id?D.splitExportDeclaration():F.node.type="ClassExpression")}}}}}var qS=function(e,r){return e.assertVersion("*"),$S({name:"transform-class-properties",api:e,feature:fs.fields,loose:r.loose,manipulateOptions:function(l,u){u.plugins.push("classProperties","classPrivateProperties")}})},XY;function aVe(e,r){var s="",l,u=1;do l=e._generateUid(s,u),u++;while(r.has(l));return l}var US=function(e){var r=e.types,s=e.template,l=e.assertVersion;return e.version,l("*"),{name:"transform-class-static-block",inherits:void 0,pre:function(){BS(this.file,fs.staticBlocks,!1)},visitor:{ClassBody:function(o){for(var c=o.scope,f=new Set,h=o.get("body"),m=C(h),g;!(g=m()).done;){var x=g.value;x.isPrivate()&&f.add(x.get("key.id").node.name)}for(var R=C(h),w;!(w=R()).done;){var T=w.value;if(T.isStaticBlock()){var I=aVe(c,f);f.add(I);var P=r.privateName(r.identifier(I)),O=void 0,j=T.node.body;j.length===1&&r.isExpressionStatement(j[0])?O=r.inheritsComments(j[0].expression,j[0]):O=s.expression.ast(XY||(XY=se(["(() => { "," })()"])),j),T.replaceWith(r.classPrivateProperty(P,O,[],!0))}}}}}},nVe=xt.statement(` + DECORATOR(CLASS_REF = INNER) || CLASS_REF; +`),sVe=xt(` + CLASS_REF.prototype; +`),iVe=xt(` + Object.getOwnPropertyDescriptor(TARGET, PROPERTY); +`),oVe=xt(` + (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), { + enumerable: true, + configurable: true, + writable: true, + initializer: function(){ + return TEMP; + } + }) +`),VS=new WeakSet;function JY(e){var r=(e.isClass()?[e].concat(fe(e.get("body.body"))):e.get("properties")).reduce(function(l,u){return l.concat(u.node.decorators||[])},[]),s=r.filter(function(l){return!Dt(l.expression)});if(s.length!==0)return Mr(s.map(function(l){var u=l.expression,o=l.expression=e.scope.generateDeclaredUidIdentifier("dec");return tr("=",o,u)}).concat([e.node]))}function lVe(e){if(YY(e.node)){var r=e.node.decorators||[];e.node.decorators=null;var s=e.scope.generateDeclaredUidIdentifier("class");return r.map(function(l){return l.expression}).reverse().reduce(function(l,u){return nVe({CLASS_REF:me(s),DECORATOR:me(u),INNER:l}).expression},e.node)}}function YY(e){var r;return!!((r=e.decorators)!=null&&r.length)}function uVe(e,r){if(WS(e.node.body.body))return QY(e,r,e.node.body.body)}function WS(e){return e.some(function(r){var s;return(s=r.decorators)==null?void 0:s.length})}function cVe(e,r){if(WS(e.node.properties))return QY(e,r,e.node.properties.filter(function(s){return s.type!=="SpreadElement"}))}function QY(e,r,s){var l=e.scope.generateDeclaredUidIdentifier(e.isClass()?"class":"obj"),u=s.reduce(function(o,c){var f=[];if(c.decorators!=null&&(f=c.decorators,c.decorators=null),f.length===0)return o;if(c.computed)throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");var h=yn(c.key)?c.key:Jt(c.key.name),m=e.isClass()&&!c.static?sVe({CLASS_REF:l}).expression:l;if(Qi(c,{static:!1})){var g=e.scope.generateDeclaredUidIdentifier("descriptor"),x=c.value?Mn(null,[],ea([ln(c.value)])):Bn();c.value=ft(r.addHelper("initializerWarningHelper"),[g,qr()]),VS.add(c.value),o.push(tr("=",me(g),ft(r.addHelper("applyDecoratedDescriptor"),[me(m),me(h),Ra(f.map(function(R){return me(R.expression)})),Oa([sn(Ne("configurable"),un(!0)),sn(Ne("enumerable"),un(!0)),sn(Ne("writable"),un(!0)),sn(Ne("initializer"),x)])])))}else o.push(ft(r.addHelper("applyDecoratedDescriptor"),[me(m),me(h),Ra(f.map(function(R){return me(R.expression)})),Sn(c)||Qi(c,{static:!0})?oVe({TEMP:e.scope.generateDeclaredUidIdentifier("init"),TARGET:me(m),PROPERTY:me(h)}).expression:iVe({TARGET:me(m),PROPERTY:me(h)}).expression,me(m)]));return o},[]);return Mr([tr("=",me(l),e.node),Mr(u),me(l)])}function ZY(e){var r=e.node,s=e.scope;if(!(!YY(r)&&!WS(r.body.body))){var l=r.id?me(r.id):s.generateUidIdentifier("class");return Br("let",[Sr(l,An(r))])}}var dVe={ExportDefaultDeclaration:function(r){var s=r.get("declaration");if(s.isClassDeclaration()){var l=ZY(s);if(l){var u=r.replaceWithMultiple([l,Zs(null,[hi(me(l.declarations[0].id),Ne("default"))])]),o=je(u,1),c=o[0];s.node.id||r.scope.registerDeclaration(c)}}},ClassDeclaration:function(r){var s=ZY(r);if(s){var l=r.replaceWith(s),u=je(l,1),o=u[0],c=o.get("declarations.0"),f=c.node.id,h=r.scope.getOwnBinding(f.name);h.identifier=f,h.path=c}},ClassExpression:function(r,s){var l=JY(r)||lVe(r)||uVe(r,s);l&&r.replaceWith(l)},ObjectExpression:function(r,s){var l=JY(r)||cVe(r,s);l&&r.replaceWith(l)},AssignmentExpression:function(r,s){VS.has(r.node.right)&&r.replaceWith(ft(s.addHelper("initializerDefineProperty"),[me(r.get("left.object").node),Jt(r.get("left.property").node.name||r.get("left.property").node.value),me(r.get("right.arguments")[0].node),me(r.get("right.arguments")[1].node)]))},CallExpression:function(r,s){r.node.arguments.length===3&&VS.has(r.node.arguments[2])&&r.node.callee.name===s.addHelper("defineProperty").name&&r.replaceWith(ft(s.addHelper("initializerDefineProperty"),[me(r.get("arguments")[0].node),me(r.get("arguments")[1].node),me(r.get("arguments.2.arguments")[0].node),me(r.get("arguments.2.arguments")[1].node)]))}},eQ=function(e,r){e.assertVersion("*");var s=r.legacy,l=r.version;if(s||l==="legacy")return{name:"proposal-decorators",inherits:RS,visitor:dVe};if(!l||l==="2018-09"||l==="2021-12"||l==="2022-03"||l==="2023-01"||l==="2023-05"||l==="2023-11")return e.assertVersion("*"),$S({name:"proposal-decorators",api:e,feature:fs.decorators,inherits:RS,decoratorVersion:l});throw new Error("The '.version' option must be one of 'legacy', '2023-11', '2023-05', '2023-01', '2022-03', or '2021-12'.")};function tQ(e){return Lu(e)&&e.operator==="void"&&Cg(e.argument)}function mv(e,r){e.ensureBlock();var s=e.scope,l=e.node,u=e.get("body").scope.bindings,o=Object.keys(u).some(function(f){return s.hasBinding(f)});if(o)l.body=ea([].concat(fe(r),[l.body]));else{var c;(c=l.body.body).unshift.apply(c,fe(r))}}function rQ(e){return e.elements.some(function(r){return hn(r)})}function pVe(e){return e.properties.some(function(r){return hn(r)})}var aQ={},fVe=function(r,s,l){if(s.length&&Dt(r)&&Bd(r,s[s.length-1].node)&&l.bindings[r.name])throw l.deopt=!0,aQ},yv=function(){function e(s){this.blockHoist=void 0,this.operator=void 0,this.arrayRefSet=void 0,this.nodes=void 0,this.scope=void 0,this.kind=void 0,this.iterableIsArray=void 0,this.arrayLikeIsIterable=void 0,this.objectRestNoSymbols=void 0,this.useBuiltIns=void 0,this.addHelper=void 0,this.blockHoist=s.blockHoist,this.operator=s.operator,this.arrayRefSet=new Set,this.nodes=s.nodes||[],this.scope=s.scope,this.kind=s.kind,this.iterableIsArray=s.iterableIsArray,this.arrayLikeIsIterable=s.arrayLikeIsIterable,this.objectRestNoSymbols=s.objectRestNoSymbols,this.useBuiltIns=s.useBuiltIns,this.addHelper=s.addHelper}var r=e.prototype;return r.getExtendsHelper=function(){return this.useBuiltIns?Vt(Ne("Object"),Ne("assign")):this.addHelper("extends")},r.buildVariableAssignment=function(l,u){var o=this.operator;(lr(l)||Co(l))&&(o="=");var c;if(o)c=Xt(tr(o,l,me(u)||this.scope.buildUndefinedNode()));else{var f;(this.kind==="const"||this.kind==="using")&&u===null?f=this.scope.buildUndefinedNode():f=me(u),c=Br(this.kind,[Sr(l,f)])}return c._blockHoist=this.blockHoist,c},r.buildVariableDeclaration=function(l,u){var o=Br("var",[Sr(me(l),me(u))]);return o._blockHoist=this.blockHoist,o},r.push=function(l,u){var o=me(u);vf(l)?this.pushObjectPattern(l,o):ng(l)?this.pushArrayPattern(l,o):Nl(l)?this.pushAssignmentPattern(l,o):this.nodes.push(this.buildVariableAssignment(l,o))},r.toArray=function(l,u){return this.iterableIsArray||Dt(l)&&this.arrayRefSet.has(l.name)?l:this.scope.toArray(l,u,this.arrayLikeIsIterable)},r.pushAssignmentPattern=function(l,u){var o=l.left,c=l.right;if(tQ(u)){this.push(o,c);return}var f=this.scope.generateUidIdentifierBasedOnNode(u);this.nodes.push(this.buildVariableDeclaration(f,u));var h=Qs(nn("===",me(f),this.scope.buildUndefinedNode()),c,me(f));if(js(o)){var m,g;this.kind==="const"||this.kind==="let"||this.kind==="using"?(m=this.scope.generateUidIdentifier(f.name),g=this.buildVariableDeclaration(m,h)):(m=f,g=Xt(tr("=",me(f),h))),this.nodes.push(g),this.push(o,m)}else this.nodes.push(this.buildVariableAssignment(o,h))},r.pushObjectRest=function(l,u,o,c){var f=this,h=nQ(l.properties.slice(0,c),u,this.scope,function(m){return f.addHelper(m)},this.objectRestNoSymbols,this.useBuiltIns);this.nodes.push(this.buildVariableAssignment(o.argument,h))},r.pushObjectProperty=function(l,u){yn(l.key)&&(l.computed=!0);var o=l.value,c=Vt(me(u),l.key,l.computed);js(o)?this.push(o,c):this.nodes.push(this.buildVariableAssignment(o,c))},r.pushObjectPattern=function(l,u){if(!l.properties.length){this.nodes.push(Xt(ft(this.addHelper("objectDestructuringEmpty"),tQ(u)?[]:[u])));return}if(l.properties.length>1&&!this.scope.isStatic(u)){var o=this.scope.generateUidIdentifierBasedOnNode(u);this.nodes.push(this.buildVariableDeclaration(o,u)),u=o}if(pVe(l))for(var c,f=0;f<l.properties.length;f++){var h=l.properties[f];if(hn(h))break;var m=h.key;if(h.computed&&!this.scope.isPure(m)){var g=this.scope.generateUidIdentifierBasedOnNode(m);this.nodes.push(this.buildVariableDeclaration(g,m)),c||(c=l=Object.assign({},l,{properties:l.properties.slice()})),c.properties[f]=Object.assign({},h,{key:g})}}for(var x=0;x<l.properties.length;x++){var R=l.properties[x];hn(R)?this.pushObjectRest(l,u,R,x):this.pushObjectProperty(R,u)}},r.canUnpackArrayPattern=function(l,u){if(!ht(u))return!1;if(!(l.elements.length>u.elements.length)){if(l.elements.length<u.elements.length&&!rQ(l))return!1;for(var o=C(l.elements),c;!(c=o()).done;){var f=c.value;if(!f||lr(f))return!1}for(var h=C(u.elements),m;!(m=h()).done;){var g=m.value;if(mn(g)||ct(g)||lr(g))return!1}var x=_s(l),R={deopt:!1,bindings:x};try{eE(u,fVe,R)}catch(w){if(w!==aQ)throw w}return!R.deopt}},r.pushUnpackedArrayPattern=function(l,u){for(var o=this,c=function(g){return g??o.scope.buildUndefinedNode()},f=0;f<l.elements.length;f++){var h=l.elements[f];hn(h)?this.push(h.argument,Ra(u.elements.slice(f).map(c))):this.push(h,c(u.elements[f]))}},r.pushArrayPattern=function(l,u){if(u===null){this.nodes.push(Xt(ft(this.addHelper("objectDestructuringEmpty"),[])));return}if(l.elements){if(this.canUnpackArrayPattern(l,u)){this.pushUnpackedArrayPattern(l,u);return}var o=!rQ(l)&&l.elements.length,c=this.toArray(u,o);Dt(c)?u=c:(u=this.scope.generateUidIdentifierBasedOnNode(u),this.arrayRefSet.add(u.name),this.nodes.push(this.buildVariableDeclaration(u,c)));for(var f=0;f<l.elements.length;f++){var h=l.elements[f];if(h){var m=void 0;hn(h)?(m=this.toArray(u),m=ft(Vt(m,Ne("slice")),[Wr(f)]),this.push(h.argument,m)):(m=Vt(u,Wr(f),!0),this.push(h,m))}}}},r.init=function(l,u){if(!ht(u)&&!lr(u)){var o=this.scope.maybeGenerateMemoised(u,!0);o&&(this.nodes.push(this.buildVariableDeclaration(o,me(u))),u=o)}return this.push(l,u),this.nodes},_(e)}();function nQ(e,r,s,l,u,o){for(var c=[],f=!0,h=!1,m=0;m<e.length;m++){var g=e[m],x=g.key;Dt(x)&&!g.computed?c.push(Jt(x.name)):Di(x)?(c.push(me(x)),h=!0):yn(x)?c.push(Jt(String(x.value))):Li(x)||(c.push(me(x)),f=!1)}var R;if(c.length===0){var w=o?Vt(Ne("Object"),Ne("assign")):l("extends");R=ft(w,[Oa([]),Mr([ft(l("objectDestructuringEmpty"),[me(r)]),me(r)])])}else{var T=Ra(c);if(!f)T=ft(Vt(T,Ne("map")),[l("toPropertyKey")]);else if(!h&&!Va(s.block)){var I=s.getProgramParent(),P=I.generateUidIdentifier("excluded");I.push({id:P,init:T,kind:"const"}),T=me(P)}R=ft(l("objectWithoutProperties"+(u?"Loose":"")),[me(r),T])}return R}function hVe(e,r,s,l,u,o){for(var c=e.node,f=e.scope,h=c.kind,m=c.loc,g=[],x=0;x<c.declarations.length;x++){var R=c.declarations[x],w=R.init,T=R.id,I=new yv({blockHoist:c._blockHoist,nodes:g,scope:f,kind:c.kind,iterableIsArray:l,arrayLikeIsIterable:s,useBuiltIns:o,objectRestNoSymbols:u,addHelper:r});js(T)?(I.init(T,w),+x!==c.declarations.length-1&&Na(g[g.length-1],R)):g.push(Na(I.buildVariableAssignment(T,w),R))}for(var P=null,O=[],j=0,D=g;j<D.length;j++){var k=D[j];if(Ja(k))if(P!==null){var B;(B=P.declarations).push.apply(B,fe(k.declarations));continue}else k.kind=h,P=k;else P=null;k.loc||(k.loc=m),O.push(k)}if(O.length===2&&Ja(O[0])&&Ea(O[1])&&ct(O[1].expression)&&O[0].declarations.length===1){var F=O[1].expression;F.arguments=[O[0].declarations[0].init],O=[F]}else if(Rt(e.parent,{init:c})&&!O.some(function(H){return Ja(H)}))for(var L=0;L<O.length;L++){var V=O[L];Ea(V)&&(O[L]=V.expression)}O.length===1?e.replaceWith(O[0]):e.replaceWithMultiple(O),f.crawl()}function mVe(e,r,s,l,u,o){var c=e.node,f=e.scope,h=e.parentPath,m=[],g=new yv({operator:c.operator,scope:f,nodes:m,arrayLikeIsIterable:s,iterableIsArray:l,objectRestNoSymbols:u,useBuiltIns:o,addHelper:r}),x;(!h.isExpressionStatement()&&!h.isSequenceExpression()||e.isCompletionRecord())&&(x=f.generateUidIdentifierBasedOnNode(c.right,"ref"),m.push(Br("var",[Sr(x,c.right)])),ht(c.right)&&g.arrayRefSet.add(x.name)),g.init(c.left,x||c.right),x&&(h.isArrowFunctionExpression()?(e.replaceWith(ea([])),m.push(ln(me(x)))):m.push(Xt(me(x)))),e.replaceWithMultiple(m),f.crawl()}function sQ(e){for(var r=C(e.declarations),s;!(s=r()).done;){var l=s.value;if(js(l.id))return!0}return!1}var GS=function(e,r){var s,l,u,o,c,f;e.assertVersion("*");var h=r.useBuiltIns,m=h===void 0?!1:h,g=(s=(l=e.assumption("iterableIsArray"))!=null?l:r.loose)!=null?s:!1,x=(u=(o=r.allowArrayLike)!=null?o:e.assumption("arrayLikeIsIterable"))!=null?u:!1,R=(c=(f=e.assumption("objectRestNoSymbols"))!=null?f:r.loose)!=null?c:!1;return{name:"transform-destructuring",visitor:{ExportNamedDeclaration:function(T){var I=T.get("declaration");if(I.isVariableDeclaration()&&sQ(I.node)){for(var P=[],O=0,j=Object.keys(T.getOuterBindingIdentifiers());O<j.length;O++){var D=j[O];P.push(hi(Ne(D),Ne(D)))}T.replaceWith(I.node),T.insertAfter(Zs(null,P)),T.scope.crawl()}},ForXStatement:function(T){var I=this,P=T.node,O=T.scope,j=P.left;if(js(j)){var D=O.generateUidIdentifier("ref");P.left=Br("var",[Sr(D)]),T.ensureBlock();var k=T.node.body.body,B=[];k.length===0&&T.isCompletionRecord()&&B.unshift(Xt(O.buildUndefinedNode())),B.unshift(Xt(tr("=",j,me(D)))),mv(T,B),O.crawl();return}if(Ja(j)){var F=j.declarations[0].id;if(js(F)){var L=O.generateUidIdentifier("ref");P.left=Br(j.kind,[Sr(L,null)]);var V=[],H=new yv({kind:j.kind,scope:O,nodes:V,arrayLikeIsIterable:x,iterableIsArray:g,objectRestNoSymbols:R,useBuiltIns:m,addHelper:function(G){return I.addHelper(G)}});H.init(F,L),mv(T,V),O.crawl()}}},CatchClause:function(T){var I=this,P=T.node,O=T.scope,j=P.param;if(js(j)){var D=O.generateUidIdentifier("ref");P.param=D;var k=[],B=new yv({kind:"let",scope:O,nodes:k,arrayLikeIsIterable:x,iterableIsArray:g,objectRestNoSymbols:R,useBuiltIns:m,addHelper:function(L){return I.addHelper(L)}});B.init(j,D),P.body.body=[].concat(k,fe(P.body.body)),O.crawl()}},AssignmentExpression:function(w){function T(I,P){return w.apply(this,arguments)}return T.toString=function(){return w.toString()},T}(function(w,T){js(w.node.left)&&mVe(w,function(I){return T.addHelper(I)},x,g,R,m)}),VariableDeclaration:function(T,I){var P=T.node,O=T.parent;jf(O)||!O||!T.container||sQ(P)&&hVe(T,function(j){return I.addHelper(j)},x,g,R,m)}}}},yVe=re().mark(zS),gVe=re().mark(cQ),vVe=re().mark(XS),bVe=tr,xVe=nn,RVe=Qs,Xo=me,iQ=Sn,KS=Li,EVe=Vt,SVe=Wr,oQ=Vf,TVe=No,wVe=Sr,PVe=Br,AVe=vn;function IVe(){return AVe("void",SVe(0))}function lQ(e,r){return RVe(xVe("===",Xo(r),IVe()),e,Xo(r))}function HS(e){if(e.type==="ObjectPattern"){var r=e.properties;if(r[r.length-1].type==="RestElement")return[]}return null}function CVe(e,r,s){if(e!==null)for(var l=C(r),u;!(u=l()).done;){var o=u.value,c=o.key;if(o.computed&&!s.isStatic(c)){var f=s.generateDeclaredUidIdentifier("m");o.key=bVe("=",f,c),e.push({key:f,computed:!0})}else c.type!=="PrivateName"&&e.push(o)}}function jVe(e,r){var s=uQ(e,r,!1),l=s.elements,u=s.transformed;return{params:l,variableDeclaration:PVe("var",u.map(function(o){var c=o.left,f=o.right;return wVe(c,f)}))}}function uQ(e,r,s){for(var l=[],u=[],o=C(e),c;!(c=o()).done;){var f=c.value;if(f===null){l.push(null),u.push(null);continue}var h=r.generateUidIdentifier("p");s&&r.push({id:Xo(h)}),f.type==="RestElement"?(l.push(TVe(h)),f=f.argument):l.push(h),f.type==="AssignmentPattern"?u.push({left:f.left,right:lQ(f.right,h)}):u.push({left:f,right:Xo(h)})}return{elements:l,transformed:u}}function zS(e,r){var s,l,u,o,c,f,h,m,g,x;return re().wrap(function(w){for(;;)switch(w.prev=w.next){case 0:s=[],s.push({node:e,index:0,depth:0});case 2:if((l=s.pop())===void 0){w.next=25;break}if(u=l,o=u.node,c=u.index,o!==null){w.next=6;break}return w.abrupt("continue",2);case 6:return w.delegateYield(r(o,c,l.depth),"t0",7);case 7:f=l.depth+1,w.t1=o.type,w.next=w.t1==="AssignmentPattern"?11:w.t1==="ObjectProperty"?13:w.t1==="RestElement"?15:w.t1==="ObjectPattern"?17:w.t1==="ArrayPattern"?19:w.t1==="TSParameterProperty"||w.t1==="TSAsExpression"||w.t1==="TSTypeAssertion"||w.t1==="TSNonNullExpression"?21:22;break;case 11:return s.push({node:o.left,index:0,depth:f}),w.abrupt("break",23);case 13:return s.push({node:o.value,index:c,depth:l.depth}),w.abrupt("break",23);case 15:return s.push({node:o.argument,index:0,depth:f}),w.abrupt("break",23);case 17:for(h=o.properties,m=h.length-1;m>=0;m--)s.push({node:h[m],index:m,depth:f});return w.abrupt("break",23);case 19:for(g=o.elements,x=g.length-1;x>=0;x--)s.push({node:g[x],index:x,depth:f});return w.abrupt("break",23);case 21:throw new Error(`TypeScript features must first be transformed by @babel/plugin-transform-typescript. +If you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before @babel/plugin-proposal-destructuring-private.`);case 22:return w.abrupt("break",23);case 23:w.next=2;break;case 25:case"end":return w.stop()}},yVe)}function dp(e){var r=!1;return zS(e,re().mark(function s(l){return re().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(!(iQ(l)&&KS(l.key))){o.next=4;break}r=!0,o.next=4;return;case 4:case"end":return o.stop()}},s)})).next(),r}function OVe(e){return e.body.some(function(r){return KS(r.key)})}function cQ(e){var r;return re().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return r=[],l.delegateYield(zS(e,re().mark(function u(o,c,f){return re().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(r[f]=c,!(iQ(o)&&KS(o.key))){m.next=4;break}return m.next=4,r.slice(1,f+1);case 4:case"end":return m.stop()}},u)})),"t0",2);case 2:case"end":return l.stop()}},gVe)}function _Ve(e){switch(e.type){case"Identifier":case"ArrayPattern":return!0;case"ObjectPattern":return e.properties.length===1;default:return!1}}function XS(e,r,s,l,u,o,c,f){var h,m,g,x,R,w,T,I,P,O,j,D,k,B,F,L,V,H,K,G,X,ue,oe,he,te,ae,J,xe,de,$e;return re().wrap(function(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:h=[],m=r,h.push({left:e,right:r,restExcludingKeys:HS(e)});case 3:if((g=h.pop())===void 0){Ie.next=65;break}if(x=g,R=x.restExcludingKeys,w=g,T=w.left,I=w.right,P=cQ(T).next(),!P.done){Ie.next=19;break}if(!((R==null?void 0:R.length)>0)){Ie.next=15;break}return O=T,j=O.properties,j.length===1&&(T=j[0].argument),Ie.next=13,{left:T,right:nQ(R,I,s,o,c,f)};case 13:Ie.next=17;break;case 15:return Ie.next=17,{left:T,right:I};case 17:Ie.next=63;break;case 19:D=P.value,k=0;case 21:if(!(k<D.length&&(B=D[k])!==void 0||T.type==="AssignmentPattern")){Ie.next=62;break}if(F=!(u&&I===m)&&(_Ve(T)||s.isStatic(I)),F){Ie.next=29;break}return L=s.generateUidIdentifier("m"),l&&s.push({id:Xo(L)}),Ie.next=28,{left:L,right:I};case 28:I=Xo(L);case 29:Ie.t0=T.type,Ie.next=Ie.t0==="ObjectPattern"?32:Ie.t0==="AssignmentPattern"?44:Ie.t0==="ArrayPattern"?47:58;break;case 32:if(V=T,H=V.properties,!(B>0)){Ie.next=37;break}return K=H.slice(0,B),Ie.next=37,{left:oQ(K),right:Xo(I)};case 37:return B<H.length-1&&(G=k===0?R:HS(T),CVe(G,H.slice(0,B+1),s),h.push({left:oQ(H.slice(B+1)),right:Xo(I),restExcludingKeys:G})),X=H[B],T=X.value,ue=X.key,oe=X.computed||ue.type!=="Identifier"&&ue.type!=="PrivateName",I=EVe(I,ue,oe),Ie.abrupt("break",59);case 44:return I=lQ(T.right,I),T=T.left,Ie.abrupt("break",59);case 47:return he=T.elements,te=he.splice(B),ae=uQ(te,s,l),J=ae.elements,xe=ae.transformed,he.push.apply(he,fe(J)),Ie.next=53,{left:T,right:Xo(I)};case 53:for(de=xe.length-1;de>0;de--)xe[de]!==null&&h.push(xe[de]);return $e=xe[0],T=$e.left,I=$e.right,Ie.abrupt("break",59);case 58:return Ie.abrupt("break",59);case 59:k++,Ie.next=21;break;case 62:h.push({left:T,right:I,restExcludingKeys:HS(T)});case 63:Ie.next=3;break;case 65:case"end":return Ie.stop()}},vVe)}var dQ={"ReferencedIdentifier|BindingIdentifier":function(r,s){var l=r.scope,u=r.node,o=u.name;(o==="eval"||l.getBinding(o)===s.scope.parent.getBinding(o)&&s.scope.hasOwnBinding(o))&&(s.needsOuterBinding=!0,r.stop())},"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration":function(r){return r.skip()}};function pQ(e,r,s){for(var l=0,u=Object.keys(e.getBindingIdentifiers());l<u.length;l++){var o,c=u[l],f=(o=r.bindings[c])==null?void 0:o.constantViolations;if(f)for(var h=C(f),m;!(m=h()).done;){var g=m.value,x=g.node;switch(x.type){case"VariableDeclarator":{if(x.init===null){var R=g.parentPath;if(!R.parentPath.isFor()||R.parentPath.get("body")===R){g.remove();break}}s.add(c);break}case"FunctionDeclaration":s.add(c);break}}}}function fQ(e,r){for(var s=[],l=[],u=C(e),o;!(o=u()).done;){var c=o.value;s.push(Ne(c)),l.push(Ne(c))}return ln(ft(fi(l,r),s))}var hQ,NVe=xt.statement(` + let VARIABLE_NAME = + arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ? + arguments[ARGUMENT_KEY] + : + DEFAULT_VALUE; +`),kVe=xt.statement(` + if (ASSIGNMENT_IDENTIFIER === UNDEFINED) { + ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE; + } +`),DVe=xt.statement(` + let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ; +`),LVe=xt.statement(` + let $0 = arguments.length > $1 ? arguments[$1] : undefined; +`);function JS(e,r,s,l){var u=e.get("params"),o=u.every(function(ke){return ke.isIdentifier()});if(o)return!1;for(var c=e.node,f=e.scope,h=[],m=new Set,g=C(u),x;!(x=g()).done;){var R=x.value;pQ(R,f,m)}var w={needsOuterBinding:!1,scope:f};if(m.size===0)for(var T=C(u),I;!(I=T()).done;){var P=I.value;if(P.isIdentifier()||P.traverse(dQ,w),w.needsOuterBinding)break}for(var O=null,j=0;j<u.length;j++){var D=u[j];if(!(s&&!s(j))){var k=[];l&&l(e,D,k);var B=D.isAssignmentPattern();if(B&&(r||Sd(c,{kind:"set"}))){var F=D.get("left"),L=D.get("right"),V=f.buildUndefinedNode();if(F.isIdentifier())h.push(kVe({ASSIGNMENT_IDENTIFIER:me(F.node),DEFAULT_VALUE:L.node,UNDEFINED:V})),D.replaceWith(F.node);else if(F.isObjectPattern()||F.isArrayPattern()){var H=f.generateUidIdentifier();h.push(DVe({ASSIGNMENT_IDENTIFIER:F.node,DEFAULT_VALUE:L.node,PARAMETER_NAME:me(H),UNDEFINED:V})),D.replaceWith(H)}}else if(B){O===null&&(O=j);var K=D.get("left"),G=D.get("right"),X=NVe({VARIABLE_NAME:K.node,DEFAULT_VALUE:G.node,ARGUMENT_KEY:Wr(j)});h.push(X)}else if(O!==null){var ue=LVe([D.node,Wr(j)]);h.push(ue)}else if(D.isObjectPattern()||D.isArrayPattern()){var oe=e.scope.generateUidIdentifier("ref");oe.typeAnnotation=D.node.typeAnnotation;var he=Br("let",[Sr(D.node,oe)]);h.push(he),D.replaceWith(me(oe))}if(k)for(var te=C(k),ae;!(ae=te()).done;){var J=ae.value;h.push(J)}}}O!==null&&(c.params=c.params.slice(0,O)),e.ensureBlock();var xe=e,de=c.async,$e=c.generator;if($e||w.needsOuterBinding||m.size>0){h.push(fQ(m,xe.node.body)),e.set("body",ea(h));var Ve=xe.get("body.body"),Ie=Ve[Ve.length-1].get("argument.callee");Ie.arrowFunctionToExpression(),Ie.node.generator=$e,Ie.node.async=de,c.generator=!1,c.async=!1,de&&(xe.node.body=xt.statement.ast(hQ||(hQ=se([`{ + try { + `,` + } catch (e) { + return Promise.reject(e); + } + }`])),xe.node.body.body))}else xe.get("body").unshiftContainer("body",h);return!0}var MVe=xt.statement(` + for (var LEN = ARGUMENTS.length, + ARRAY = new Array(ARRAY_LEN), + KEY = START; + KEY < LEN; + KEY++) { + ARRAY[ARRAY_KEY] = ARGUMENTS[KEY]; + } +`),BVe=xt.expression(` + (INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX] +`),FVe=xt.expression(` + REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF] +`),$Ve=xt.expression(` + ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET +`);function mQ(e,r){return e.node.name===r.name?e.scope.bindingIdentifierEquals(r.name,r.outerBinding):!1}var yQ={Scope:function(r,s){r.scope.bindingIdentifierEquals(s.name,s.outerBinding)||r.skip()},Flow:function(r){r.isTypeCastExpression()||r.skip()},Function:function(r,s){var l=s.noOptimise;s.noOptimise=!0,r.traverse(yQ,s),s.noOptimise=l,r.skip()},ReferencedIdentifier:function(r,s){var l=r.node;if(l.name==="arguments"&&(s.deopted=!0),!!mQ(r,s))if(s.noOptimise)s.deopted=!0;else{var u=r.parentPath;if(u.listKey==="params"&&u.key<s.offset)return;if(u.isMemberExpression({object:l})){var o=u.parentPath,c=!s.deopted&&!(o.isAssignmentExpression()&&u.node===o.node.left||o.isLVal()||o.isForXStatement()||o.isUpdateExpression()||o.isUnaryExpression({operator:"delete"})||(o.isCallExpression()||o.isNewExpression())&&u.node===o.node.callee);if(c){if(u.node.computed){if(u.get("property").isBaseType("number")){s.candidates.push({cause:"indexGetter",path:r});return}}else if(u.node.property.name==="length"){s.candidates.push({cause:"lengthGetter",path:r});return}}}if(s.offset===0&&u.isSpreadElement()){var f=u.parentPath;if(f.isCallExpression()&&f.node.arguments.length===1){s.candidates.push({cause:"argSpread",path:r});return}}s.references.push(r)}},BindingIdentifier:function(r,s){mQ(r,s)&&(s.deopted=!0)}};function qVe(e){var r=e.params.length;return r>0&&Dt(e.params[0],{name:"this"})&&(r-=1),r}function UVe(e){var r=e.params.length;return r>0&&hn(e.params[r-1])}function VVe(e,r,s){var l=Wr(s),u,o=e.parent;Yt(o.property)?u=Wr(o.property.value+s):s===0?u=o.property:u=nn("+",o.property,me(l));var c=e.scope,f=e.parentPath;if(c.isPure(u)){f.replaceWith(BVe({ARGUMENTS:r,OFFSET:l,INDEX:u}));var m=f,g=m.get("test"),x=g.get("left").evaluate();x.confident&&(x.value===!0?m.replaceWith(c.buildUndefinedNode()):g.replaceWith(g.get("right")))}else{var h=c.generateUidIdentifierBasedOnNode(u);c.push({id:h,kind:"var"}),f.replaceWith(FVe({ARGUMENTS:r,OFFSET:l,INDEX:u,REF:me(h)}))}}function WVe(e,r,s){s?e.parentPath.replaceWith($Ve({ARGUMENTS:r,OFFSET:Wr(s)})):e.replaceWith(r)}function GVe(e){var r,s=e.node,l=e.scope;if(!UVe(s))return!1;var u=e.get("params."+(s.params.length-1)+".argument");if(!u.isIdentifier()){var o=new Set;pQ(u,e.scope,o);var c=o.size>0;if(!c){var f={needsOuterBinding:!1,scope:l};u.traverse(dQ,f),c=f.needsOuterBinding}c&&(e.ensureBlock(),e.set("body",ea([fQ(o,e.node.body)])))}var h=u.node;if(s.params.pop(),js(h)){var m=h;h=l.generateUidIdentifier("ref");var g=Br("let",[Sr(m,h)]);e.ensureBlock(),s.body.body.unshift(g)}else h.name==="arguments"&&l.rename(h.name);var x=Ne("arguments"),R=qVe(s),w={references:[],offset:R,argumentsNode:x,outerBinding:l.getBindingIdentifier(h.name),candidates:[],name:h.name,deopted:!1};if(e.traverse(yQ,w),!w.deopted&&!w.references.length){for(var T=C(w.candidates),I;!(I=T()).done;){var P=I.value,O=P.path,j=P.cause,D=me(x);switch(j){case"indexGetter":VVe(O,D,w.offset);break;case"lengthGetter":WVe(O,D,w.offset);break;default:O.replaceWith(D)}}return!0}(r=w.references).push.apply(r,fe(w.candidates.map(function(G){var X=G.path;return X})));var k=Wr(R),B=l.generateUidIdentifier("key"),F=l.generateUidIdentifier("len"),L,V;R?(L=nn("-",me(B),me(k)),V=Qs(nn(">",me(F),me(k)),nn("-",me(F),me(k)),Wr(0))):(L=Ne(B.name),V=Ne(F.name));var H=MVe({ARGUMENTS:x,ARRAY_KEY:L,ARRAY_LEN:V,START:k,ARRAY:h,KEY:B,LEN:F});if(w.deopted)s.body.body.unshift(H);else{var K=e.getEarliestCommonAncestorFrom(w.references).getStatementParent();K.findParent(function(G){if(G.isLoop())K=G;else return G.isFunction()}),K.insertBefore(H)}return!0}var YS=function(e,r){var s,l;e.assertVersion("*");var u=(s=e.assumption("ignoreFunctionLength"))!=null?s:r.loose,o=(l=e.assumption("noNewArrows"))!=null?l:!0;return{name:"transform-parameters",visitor:{Function:function(f){if(!(f.isArrowFunctionExpression()&&f.get("params").some(function(g){return g.isRestElement()||g.isAssignmentPattern()})&&(f.arrowFunctionToExpression({allowInsertArrowWithRest:!1,noNewArrows:o}),!f.isFunctionExpression()))){var h=GVe(f),m=JS(f,u);(h||m)&&f.scope.crawl()}}}}},gQ=function(e){var r=e.assertVersion,s=e.assumption,l=e.types;r("*");var u=l.assignmentExpression,o=l.assignmentPattern,c=l.cloneNode,f=l.expressionStatement,h=l.isExpressionStatement,m=l.isIdentifier,g=l.isSequenceExpression,x=l.sequenceExpression,R=l.variableDeclaration,w=l.variableDeclarator,T=s("ignoreFunctionLength"),I=s("objectRestNoSymbols"),P={Function:function(D){var k=D.node.params.findIndex(function(ue){return dp(ue)});if(k!==-1){JS(D,T,function(){return!1});var B=D.node,F=D.scope,L=B.params,V=T?-1:L.findIndex(function(ue){return ue.type==="AssignmentPattern"}),H=L.splice(k),K=jVe(H,F),G=K.params,X=K.variableDeclaration;D.get("body").unshiftContainer("body",X),L.push.apply(L,fe(G)),V>=k&&(L[V]=o(L[V],F.buildUndefinedNode())),F.crawl()}},CatchClause:function(D){var k=D.node,B=D.scope;if(dp(k.param)){var F=B.generateUidIdentifier("e");D.get("body").unshiftContainer("body",R("let",[w(k.param,F)])),k.param=c(F),B.crawl()}},ForXStatement:function(D){var k=D.node,B=D.scope,F=D.get("left");if(F.isVariableDeclaration()){var L=F.node;if(!dp(L.declarations[0].id))return;var V=B.generateUidIdentifier("ref");k.left=R(L.kind,[w(V,null)]),L.declarations[0].init=c(V),mv(D,[L]),B.crawl()}else if(F.isPattern()){if(!dp(F.node))return;var H=B.generateUidIdentifier("ref");k.left=R("const",[w(H,null)]);var K=f(u("=",F.node,c(H)));mv(D,[K]),B.crawl()}},VariableDeclaration:function(D,k){var B=D.scope,F=D.node,L=F.declarations;if(L.some(function(ae){return dp(ae.id)})){for(var V=[],H=C(L),K;!(K=H()).done;)for(var G=K.value,X=C(XS(G.id,G.init,B,!1,!1,function(ae){return k.addHelper(ae)},I,!0)),ue;!(ue=X()).done;){var oe=ue.value,he=oe.left,te=oe.right;V.push(w(he,te))}F.declarations=V,B.crawl()}},AssignmentExpression:function(D,k){var B=D.node,F=D.scope,L=D.parent;if(dp(B.left)){for(var V=[],H=!h(L)&&!g(L)||D.isCompletionRecord(),K=C(XS(B.left,B.right,F,!0,H,function(xe){return k.addHelper(xe)},I,!0)),G;!(G=K()).done;){var X=G.value,ue=X.left,oe=X.right;V.push(u("=",ue,oe))}if(H){var he=V[0],te=he.left,ae=he.right;if(m(te)&&ae===B.right)m(V[V.length-1].right,{name:te.name})||V.push(c(te));else{var J=F.generateDeclaredUidIdentifier("m");V.unshift(u("=",J,c(B.right))),V.push(c(J))}}D.replaceWith(x(V)),F.crawl()}}},O={Class:function(D,k){OVe(D.node.body)&&D.traverse(P,k)}};return{name:"proposal-destructuring-private",inherits:nJ,visitor:O}},vQ=function(e){return e.assertVersion("*"),{name:"proposal-do-expressions",inherits:sJ,visitor:{DoExpression:{exit:function(s){var l=s.node;if(!l.async){var u=l.body.body;u.length?s.replaceExpressionWithStatements(u):s.replaceWith(s.scope.buildUndefinedNode())}}}}}},QS={},gv={exports:{}};gv.exports,function(e,r){(function(s){var l=r,u=e&&e.exports==l&&e,o=typeof ci=="object"&&ci;(o.global===o||o.window===o)&&(s=o);var c={rangeOrder:"A range’s `stop` value must be greater than or equal to the `start` value.",codePointRange:"Invalid code point value. Code points range from U+000000 to U+10FFFF."},f=55296,h=56319,m=56320,g=57343,x=/\\x00([^0123456789]|$)/g,R={},w=R.hasOwnProperty,T=function(Re,Be){var et;for(et in Be)w.call(Be,et)&&(Re[et]=Be[et]);return Re},I=function(Re,Be){for(var et=-1,it=Re.length;++et<it;)Be(Re[et],et)},P=R.toString,O=function(Re){return P.call(Re)=="[object Array]"},j=function(Re){return typeof Re=="number"||P.call(Re)=="[object Number]"},D="0000",k=function(Re,Be){var et=String(Re);return et.length<Be?(D+et).slice(-Be):et},B=function(Re){return Number(Re).toString(16).toUpperCase()},F=[].slice,L=function(Re){for(var Be=-1,et=Re.length,it=et-1,vt=[],Ot=!0,De,Qe=0;++Be<et;)if(De=Re[Be],Ot)vt.push(De),Qe=De,Ot=!1;else if(De==Qe+1)if(Be!=it){Qe=De;continue}else Ot=!0,vt.push(De+1);else vt.push(Qe+1,De),Qe=De;return Ot||vt.push(De+1),vt},V=function(Re,Be){for(var et=0,it,vt,Ot=Re.length;et<Ot;){if(it=Re[et],vt=Re[et+1],Be>=it&&Be<vt)return Be==it?vt==it+1?(Re.splice(et,2),Re):(Re[et]=Be+1,Re):Be==vt-1?(Re[et+1]=Be,Re):(Re.splice(et,2,it,Be,Be+1,vt),Re);et+=2}return Re},H=function(Re,Be,et){if(et<Be)throw Error(c.rangeOrder);for(var it=0,vt,Ot;it<Re.length;){if(vt=Re[it],Ot=Re[it+1]-1,vt>et)return Re;if(Be<=vt&&et>=Ot){Re.splice(it,2);continue}if(Be>=vt&&et<Ot)return Be==vt?(Re[it]=et+1,Re[it+1]=Ot+1,Re):(Re.splice(it,2,vt,Be,et+1,Ot+1),Re);if(Be>=vt&&Be<=Ot)Re[it+1]=Be;else if(et>=vt&&et<=Ot)return Re[it]=et+1,Re;it+=2}return Re},K=function(Re,Be){var et=0,it,vt,Ot=null,De=Re.length;if(Be<0||Be>1114111)throw RangeError(c.codePointRange);for(;et<De;){if(it=Re[et],vt=Re[et+1],Be>=it&&Be<vt)return Re;if(Be==it-1)return Re[et]=Be,Re;if(it>Be)return Re.splice(Ot!=null?Ot+2:0,0,Be,Be+1),Re;if(Be==vt)return Be+1==Re[et+2]?(Re.splice(et,4,it,Re[et+3]),Re):(Re[et+1]=Be+1,Re);Ot=et,et+=2}return Re.push(Be,Be+1),Re},G=function(Re,Be){for(var et=0,it,vt,Ot=Re.slice(),De=Be.length;et<De;)it=Be[et],vt=Be[et+1]-1,it==vt?Ot=K(Ot,it):Ot=ue(Ot,it,vt),et+=2;return Ot},X=function(Re,Be){for(var et=0,it,vt,Ot=Re.slice(),De=Be.length;et<De;)it=Be[et],vt=Be[et+1]-1,it==vt?Ot=V(Ot,it):Ot=H(Ot,it,vt),et+=2;return Ot},ue=function(Re,Be,et){if(et<Be)throw Error(c.rangeOrder);if(Be<0||Be>1114111||et<0||et>1114111)throw RangeError(c.codePointRange);for(var it=0,vt,Ot,De=!1,Qe=Re.length;it<Qe;){if(vt=Re[it],Ot=Re[it+1],De){if(vt==et+1)return Re.splice(it-1,2),Re;if(vt>et)return Re;vt>=Be&&vt<=et&&(Ot>Be&&Ot-1<=et?(Re.splice(it,2),it-=2):(Re.splice(it-1,2),it-=2))}else{if(vt==et+1||vt==et)return Re[it]=Be,Re;if(vt>et)return Re.splice(it,0,Be,et+1),Re;if(Be>=vt&&Be<Ot&&et+1<=Ot)return Re;Be>=vt&&Be<Ot||Ot==Be?(Re[it+1]=et+1,De=!0):Be<=vt&&et+1>=Ot&&(Re[it]=Be,Re[it+1]=et+1,De=!0)}it+=2}return De||Re.push(Be,et+1),Re},oe=function(Re,Be){var et=0,it=Re.length,vt=Re[et],Ot=Re[it-1];if(it>=2&&(Be<vt||Be>Ot))return!1;for(;et<it;){if(vt=Re[et],Ot=Re[et+1],Be>=vt&&Be<Ot)return!0;et+=2}return!1},he=function(Re,Be){for(var et=0,it=Be.length,vt,Ot=[];et<it;)vt=Be[et],oe(Re,vt)&&Ot.push(vt),++et;return L(Ot)},te=function(Re){return!Re.length},ae=function(Re){return Re.length==2&&Re[0]+1==Re[1]},J=function(Re){for(var Be=0,et,it,vt=[],Ot=Re.length;Be<Ot;){for(et=Re[Be],it=Re[Be+1];et<it;)vt.push(et),++et;Be+=2}return vt},xe=Math.floor,de=function(Re){return parseInt(xe((Re-65536)/1024)+f,10)},$e=function(Re){return parseInt((Re-65536)%1024+m,10)},Ve=String.fromCharCode,Ie=function(Re){var Be;return Re==9?Be="\\t":Re==10?Be="\\n":Re==12?Be="\\f":Re==13?Be="\\r":Re==45?Be="\\x2D":Re==92?Be="\\\\":Re==36||Re>=40&&Re<=43||Re==46||Re==47||Re==63||Re>=91&&Re<=94||Re>=123&&Re<=125?Be="\\"+Ve(Re):Re>=32&&Re<=126?Be=Ve(Re):Re<=255?Be="\\x"+k(B(Re),2):Be="\\u"+k(B(Re),4),Be},ke=function(Re){return Re<=65535?Ie(Re):"\\u{"+Re.toString(16).toUpperCase()+"}"},Le=function(Re){var Be=Re.length,et=Re.charCodeAt(0),it;return et>=f&&et<=h&&Be>1?(it=Re.charCodeAt(1),(et-f)*1024+it-m+65536):et},Ze=function(Re){var Be="",et=0,it,vt,Ot=Re.length;if(ae(Re))return Ie(Re[0]);for(;et<Ot;)it=Re[et],vt=Re[et+1]-1,it==vt?Be+=Ie(it):it+1==vt?Be+=Ie(it)+Ie(vt):Be+=Ie(it)+"-"+Ie(vt),et+=2;return"["+Be+"]"},at=function(Re){var Be="",et=0,it,vt,Ot=Re.length;if(ae(Re))return ke(Re[0]);for(;et<Ot;)it=Re[et],vt=Re[et+1]-1,it==vt?Be+=ke(it):it+1==vt?Be+=ke(it)+ke(vt):Be+=ke(it)+"-"+ke(vt),et+=2;return"["+Be+"]"},lt=function(Re){for(var Be=[],et=[],it=[],vt=[],Ot=0,De,Qe,yt=Re.length;Ot<yt;)De=Re[Ot],Qe=Re[Ot+1]-1,De<f?(Qe<f&&it.push(De,Qe+1),Qe>=f&&Qe<=h&&(it.push(De,f),Be.push(f,Qe+1)),Qe>=m&&Qe<=g&&(it.push(De,f),Be.push(f,h+1),et.push(m,Qe+1)),Qe>g&&(it.push(De,f),Be.push(f,h+1),et.push(m,g+1),Qe<=65535?it.push(g+1,Qe+1):(it.push(g+1,65536),vt.push(65536,Qe+1)))):De>=f&&De<=h?(Qe>=f&&Qe<=h&&Be.push(De,Qe+1),Qe>=m&&Qe<=g&&(Be.push(De,h+1),et.push(m,Qe+1)),Qe>g&&(Be.push(De,h+1),et.push(m,g+1),Qe<=65535?it.push(g+1,Qe+1):(it.push(g+1,65536),vt.push(65536,Qe+1)))):De>=m&&De<=g?(Qe>=m&&Qe<=g&&et.push(De,Qe+1),Qe>g&&(et.push(De,g+1),Qe<=65535?it.push(g+1,Qe+1):(it.push(g+1,65536),vt.push(65536,Qe+1)))):De>g&&De<=65535?Qe<=65535?it.push(De,Qe+1):(it.push(De,65536),vt.push(65536,Qe+1)):vt.push(De,Qe+1),Ot+=2;return{loneHighSurrogates:Be,loneLowSurrogates:et,bmp:it,astral:vt}},gt=function(Re){for(var Be=[],et=[],it=!1,vt,Ot,De,Qe,yt,jt,Kt=-1,Ht=Re.length;++Kt<Ht;){if(vt=Re[Kt],Ot=Re[Kt+1],!Ot){Be.push(vt);continue}for(De=vt[0],Qe=vt[1],yt=Ot[0],jt=Ot[1],et=Qe;yt&&De[0]==yt[0]&&De[1]==yt[1];)ae(jt)?et=K(et,jt[0]):et=ue(et,jt[0],jt[1]-1),++Kt,vt=Re[Kt],De=vt[0],Qe=vt[1],Ot=Re[Kt+1],yt=Ot&&Ot[0],jt=Ot&&Ot[1],it=!0;Be.push([De,it?et:Qe]),it=!1}return It(Be)},It=function(Re){if(Re.length==1)return Re;for(var Be=-1,et=-1;++Be<Re.length;){var it=Re[Be],vt=it[1],Ot=vt[0],De=vt[1];for(et=Be;++et<Re.length;){var Qe=Re[et],yt=Qe[1],jt=yt[0],Kt=yt[1];Ot==jt&&De==Kt&&yt.length===2&&(ae(Qe[0])?it[0]=K(it[0],Qe[0][0]):it[0]=ue(it[0],Qe[0][0],Qe[0][1]-1),Re.splice(et,1),--et)}}return Re},tt=function(Re){if(!Re.length)return[];for(var Be=0,et,it,vt,Ot,De,Qe,yt=[],jt=Re.length;Be<jt;){et=Re[Be],it=Re[Be+1]-1,vt=de(et),Ot=$e(et),De=de(it),Qe=$e(it);var Kt=Ot==m,Ht=Qe==g,Cr=!1;vt==De||Kt&&Ht?(yt.push([[vt,De+1],[Ot,Qe+1]]),Cr=!0):yt.push([[vt,vt+1],[Ot,g+1]]),!Cr&&vt+1<De&&(Ht?(yt.push([[vt+1,De+1],[m,Qe+1]]),Cr=!0):yt.push([[vt+1,De],[m,g+1]])),Cr||yt.push([[De,De+1],[m,Qe+1]]),Be+=2}return gt(yt)},Ft=function(Re){var Be=[];return I(Re,function(et){var it=et[0],vt=et[1];Be.push(Ze(it)+Ze(vt))}),Be.join("|")},rr=function(Re,Be,et){if(et)return at(Re);var it=[],vt=lt(Re),Ot=vt.loneHighSurrogates,De=vt.loneLowSurrogates,Qe=vt.bmp,yt=vt.astral,jt=!te(Ot),Kt=!te(De),Ht=tt(yt);return Be&&(Qe=G(Qe,Ot),jt=!1,Qe=G(Qe,De),Kt=!1),te(Qe)||it.push(Ze(Qe)),Ht.length&&it.push(Ft(Ht)),jt&&it.push(Ze(Ot)+"(?![\\uDC00-\\uDFFF])"),Kt&&it.push("(?:[^\\uD800-\\uDBFF]|^)"+Ze(De)),it.join("|")},$t=function(Re){return arguments.length>1&&(Re=F.call(arguments)),this instanceof $t?(this.data=[],Re?this.add(Re):this):new $t().add(Re)};$t.version="1.4.2";var Et=$t.prototype;T(Et,{add:function(Re){var Be=this;return Re==null?Be:Re instanceof $t?(Be.data=G(Be.data,Re.data),Be):(arguments.length>1&&(Re=F.call(arguments)),O(Re)?(I(Re,function(et){Be.add(et)}),Be):(Be.data=K(Be.data,j(Re)?Re:Le(Re)),Be))},remove:function(Re){var Be=this;return Re==null?Be:Re instanceof $t?(Be.data=X(Be.data,Re.data),Be):(arguments.length>1&&(Re=F.call(arguments)),O(Re)?(I(Re,function(et){Be.remove(et)}),Be):(Be.data=V(Be.data,j(Re)?Re:Le(Re)),Be))},addRange:function(Re,Be){var et=this;return et.data=ue(et.data,j(Re)?Re:Le(Re),j(Be)?Be:Le(Be)),et},removeRange:function(Re,Be){var et=this,it=j(Re)?Re:Le(Re),vt=j(Be)?Be:Le(Be);return et.data=H(et.data,it,vt),et},intersection:function(Re){var Be=this,et=Re instanceof $t?J(Re.data):Re;return Be.data=he(Be.data,et),Be},contains:function(Re){return oe(this.data,j(Re)?Re:Le(Re))},clone:function(){var Re=new $t;return Re.data=this.data.slice(0),Re},toString:function(Re){var Be=rr(this.data,Re?Re.bmpOnly:!1,Re?Re.hasUnicodeFlag:!1);return Be?Be.replace(x,"\\0$1"):"[]"},toRegExp:function(Re){var Be=this.toString(Re&&Re.indexOf("u")!=-1?{hasUnicodeFlag:!0}:null);return RegExp(Be,Re||"")},valueOf:function(){return J(this.data)}}),Et.toArray=Et.valueOf,l&&!l.nodeType?u?u.exports=$t:l.regenerate=$t:s.regenerate=$t})(ci)}(gv,gv.exports);var ee=gv.exports,bQ;function KVe(){if(bQ)return QS;bQ=1;var e=ee(170,181,186,748,750,837,895,902,908,1369,1471,1479,1791,2042,2482,2510,2519,2556,2641,2654,2768,2929,2972,3024,3031,3165,3406,3517,3542,3661,3716,3749,3782,3789,3840,4152,4295,4301,4696,4800,6103,6108,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43205,43259,43471,43712,43714,64318,67592,67644,69415,69826,70006,70106,70108,70199,70280,70480,70487,70855,71232,71236,71352,71945,72161,72349,72768,73018,73027,73112,73648,94179,110898,110933,113822,119970,119995,120134,123023,123214,125255,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1456,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1623).addRange(1625,1631).addRange(1646,1747).addRange(1749,1756).addRange(1761,1768).addRange(1773,1775).addRange(1786,1788).addRange(1808,1855).addRange(1869,1969).addRange(1994,2026).addRange(2036,2037).addRange(2048,2071).addRange(2074,2092).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2260,2271).addRange(2275,2281).addRange(2288,2363).addRange(2365,2380).addRange(2382,2384).addRange(2389,2403).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472),e.addRange(2474,2480).addRange(2486,2489).addRange(2493,2500).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2531).addRange(2544,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2636).addRange(2649,2652).addRange(2672,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2757).addRange(2759,2761).addRange(2763,2764).addRange(2784,2787).addRange(2809,2812).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2877,2884).addRange(2887,2888).addRange(2891,2892).addRange(2902,2903).addRange(2908,2909).addRange(2911,2915).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970),e.addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3020).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3133,3140).addRange(3142,3144).addRange(3146,3148).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3268).addRange(3270,3272).addRange(3274,3276).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3386).addRange(3389,3396).addRange(3398,3400).addRange(3402,3404).addRange(3412,3415).addRange(3423,3427).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3585,3642).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722),e.addRange(3724,3747).addRange(3751,3769).addRange(3771,3773).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3953,3971).addRange(3976,3991).addRange(3993,4028).addRange(4096,4150).addRange(4155,4159).addRange(4176,4239).addRange(4250,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5907).addRange(5919,5939).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6067).addRange(6070,6088).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443),e.addRange(6448,6456).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6683).addRange(6688,6750).addRange(6753,6772).addRange(6847,6848).addRange(6860,6862).addRange(6912,6963).addRange(6965,6979).addRange(6981,6988).addRange(7040,7081).addRange(7084,7087).addRange(7098,7141).addRange(7143,7153).addRange(7168,7222).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7655,7668).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584),e.addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42612,42619).addRange(42623,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43013).addRange(43015,43047).addRange(43072,43123).addRange(43136,43203).addRange(43250,43255).addRange(43261,43263).addRange(43274,43306).addRange(43312,43346).addRange(43360,43388),e.addRange(43392,43442).addRange(43444,43455).addRange(43488,43503).addRange(43514,43518).addRange(43520,43574).addRange(43584,43597).addRange(43616,43638).addRange(43642,43710).addRange(43739,43741).addRange(43744,43759).addRange(43762,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629),e.addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324),e.addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69632,69701).addRange(69745,69749).addRange(69760,69816).addRange(69840,69864).addRange(69888,69938).addRange(69956,69959).addRange(69968,70002).addRange(70016,70079).addRange(70081,70084).addRange(70094,70095).addRange(70144,70161).addRange(70163,70196).addRange(70206,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70376).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70461,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70656,70721).addRange(70723,70725).addRange(70727,70730).addRange(70751,70753).addRange(70784,70849).addRange(70852,70853),e.addRange(71040,71093).addRange(71096,71102).addRange(71128,71133).addRange(71168,71230).addRange(71296,71349).addRange(71424,71450).addRange(71453,71466).addRange(71488,71494).addRange(71680,71736).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,71996).addRange(71999,72002).addRange(72096,72103).addRange(72106,72151).addRange(72154,72159).addRange(72163,72164).addRange(72192,72242).addRange(72245,72254).addRange(72272,72343).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72766).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73025).addRange(73030,73031).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73110).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73536).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895),e.addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628),e.addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093),e.addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),QS.characters=e,QS}var ZS={},xQ;function HVe(){if(xQ)return ZS;xQ=1;var e=ee();return e.addRange(0,1114111),ZS.characters=e,ZS}var eT={},RQ;function zVe(){if(RQ)return eT;RQ=1;var e=ee();return e.addRange(48,57).addRange(65,70).addRange(97,102),eT.characters=e,eT}var tT={},EQ;function XVe(){if(EQ)return tT;EQ=1;var e=ee();return e.addRange(0,127),tT.characters=e,tT}var rT={},SQ;function JVe(){if(SQ)return rT;SQ=1;var e=ee(908,2142,2482,2519,2620,2641,2654,2768,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,4295,4301,4696,4800,6464,8025,8027,8029,11559,11565,42963,64318,64975,65279,65952,67592,67644,67903,69837,70280,70480,70487,71945,73018,73648,110898,110933,119970,119995,120134,123023,123647,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,917505);return e.addRange(0,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(1536,1805).addRange(1807,1866).addRange(1869,1969).addRange(1984,2042).addRange(2045,2093).addRange(2096,2110).addRange(2112,2139).addRange(2144,2154).addRange(2160,2190).addRange(2192,2193).addRange(2200,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736),e.addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257),e.addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(3585,3642).addRange(3647,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4058).addRange(4096,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805),e.addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5909).addRange(5919,5942).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6683).addRange(6686,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829).addRange(6832,6862).addRange(6912,6988).addRange(6992,7038).addRange(7040,7155).addRange(7164,7223).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7376,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013),e.addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8292).addRange(8294,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8400,8432).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12351).addRange(12353,12438).addRange(12441,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12783,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42743).addRange(42752,42954).addRange(42960,42961).addRange(42965,42969),e.addRange(42994,43052).addRange(43056,43065).addRange(43072,43127).addRange(43136,43205).addRange(43214,43225).addRange(43232,43347).addRange(43359,43388).addRange(43392,43469).addRange(43471,43481).addRange(43486,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43714).addRange(43739,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(55296,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65049).addRange(65056,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533),e.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66045).addRange(66176,66204).addRange(66208,66256).addRange(66272,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897),e.addRange(67968,68023).addRange(68028,68047).addRange(68050,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68326).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68903).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297).addRange(69373,69415).addRange(69424,69465).addRange(69488,69513).addRange(69552,69579).addRange(69600,69622).addRange(69632,69709).addRange(69714,69749).addRange(69759,69826).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69959).addRange(69968,70006).addRange(70016,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70378).addRange(70384,70393),e.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70747).addRange(70749,70753).addRange(70784,70855).addRange(70864,70873).addRange(71040,71093).addRange(71096,71133).addRange(71168,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71353).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71494).addRange(71680,71739).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164).addRange(72192,72263).addRange(72272,72354).addRange(72368,72440).addRange(72448,72457).addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812).addRange(72816,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),e.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73464).addRange(73472,73488).addRange(73490,73530).addRange(73534,73561).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78933).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92917).addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355),e.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827).addRange(118528,118573).addRange(118576,118598).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119274).addRange(119296,119365).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121483).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153),e.addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125142).addRange(125184,125259).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886).addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159),e.addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743).addRange(917536,917631).addRange(917760,917999).addRange(983040,1048573).addRange(1048576,1114109),rT.characters=e,rT}var aT={},TQ;function YVe(){if(TQ)return aT;TQ=1;var e=ee(1564);return e.addRange(8206,8207).addRange(8234,8238).addRange(8294,8297),aT.characters=e,aT}var nT={},wQ;function QVe(){if(wQ)return nT;wQ=1;var e=ee(60,62,91,93,123,125,171,187,8512,8721,8740,8742,8761,8802,8856,10176,10680,10697,10721,10788,10790,10793,10972,10974,10995,11005,11262,65308,65310,65339,65341,65371,65373,120539,120597,120655,120713,120771);return e.addRange(40,41).addRange(3898,3901).addRange(5787,5788).addRange(8249,8250).addRange(8261,8262).addRange(8317,8318).addRange(8333,8334).addRange(8705,8708).addRange(8712,8717).addRange(8725,8726).addRange(8730,8733).addRange(8735,8738).addRange(8747,8755).addRange(8763,8780).addRange(8786,8789).addRange(8799,8800).addRange(8804,8811).addRange(8814,8844).addRange(8847,8850).addRange(8866,8867).addRange(8870,8888).addRange(8894,8895).addRange(8905,8909).addRange(8912,8913).addRange(8918,8941).addRange(8944,8959).addRange(8968,8971).addRange(8992,8993).addRange(9001,9002).addRange(10088,10101).addRange(10179,10182).addRange(10184,10185).addRange(10187,10189).addRange(10195,10198).addRange(10204,10206).addRange(10210,10223).addRange(10627,10648).addRange(10651,10656).addRange(10658,10671).addRange(10688,10693).addRange(10702,10706).addRange(10708,10709).addRange(10712,10716).addRange(10723,10725).addRange(10728,10729).addRange(10740,10745).addRange(10748,10749).addRange(10762,10780).addRange(10782,10785).addRange(10795,10798).addRange(10804,10805),e.addRange(10812,10814).addRange(10839,10840).addRange(10852,10853).addRange(10858,10861).addRange(10863,10864).addRange(10867,10868).addRange(10873,10915).addRange(10918,10925).addRange(10927,10966).addRange(10978,10982).addRange(10988,10990).addRange(10999,11003).addRange(11778,11781).addRange(11785,11786).addRange(11788,11789).addRange(11804,11805).addRange(11808,11817).addRange(11861,11868).addRange(12296,12305).addRange(12308,12315).addRange(65113,65118).addRange(65124,65125).addRange(65288,65289).addRange(65375,65376).addRange(65378,65379),nT.characters=e,nT}var sT={},PQ;function ZVe(){if(PQ)return sT;PQ=1;var e=ee(39,46,58,94,96,168,173,175,180,890,903,1369,1375,1471,1479,1524,1564,1600,1648,1807,1809,2042,2045,2184,2362,2364,2381,2417,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3782,3893,3895,3897,4038,4226,4237,4253,4348,6086,6103,6109,6211,6313,6450,6683,6742,6752,6754,6783,6823,6964,6972,6978,7142,7149,7405,7412,7544,8125,8228,8231,8305,8319,11631,11647,11823,12293,12347,40981,42508,42623,42864,43010,43014,43019,43052,43263,43443,43471,43587,43596,43632,43644,43696,43713,43741,43766,44005,44008,44013,64286,65043,65106,65109,65279,65287,65294,65306,65342,65344,65392,65507,66045,66272,68159,69633,69744,69821,69826,69837,70003,70095,70196,70206,70209,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,73536,73538,94031,121461,121476,123023,123566,917505);return e.addRange(183,184).addRange(688,879).addRange(884,885).addRange(900,901).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1536,1541).addRange(1552,1562).addRange(1611,1631).addRange(1750,1757).addRange(1759,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2070,2093).addRange(2137,2139).addRange(2192,2193).addRange(2200,2207).addRange(2249,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),e.addRange(3538,3540).addRange(3636,3642).addRange(3654,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6159).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7288,7293).addRange(7376,7378).addRange(7380,7392),e.addRange(7394,7400).addRange(7416,7417).addRange(7468,7530).addRange(7579,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8203,8207).addRange(8216,8217).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(8336,8348).addRange(8400,8432).addRange(11388,11389).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12337,12341).addRange(12441,12446).addRange(12540,12542).addRange(42232,42237).addRange(42607,42610).addRange(42612,42621).addRange(42652,42655).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(42994,42996).addRange(43e3,43001).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43493,43494).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(43763,43764).addRange(43867,43871).addRange(43881,43883),e.addRange(64434,64450).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(65529,65531).addRange(66422,66426).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461),e.addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530).addRange(78896,78912).addRange(78919,78933).addRange(92912,92916).addRange(92976,92982).addRange(92992,92995).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(113821,113822).addRange(113824,113827).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119155,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886),e.addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123184,123197).addRange(123628,123631).addRange(124139,124143).addRange(125136,125142).addRange(125252,125259).addRange(127995,127999).addRange(917536,917631).addRange(917760,917999),sT.characters=e,sT}var iT={},AQ;function eWe(){if(AQ)return iT;AQ=1;var e=ee(170,181,186,837,895,902,908,4295,4301,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,67456,119970,119995,120134);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(880,883).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521),e.addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42653).addRange(42786,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,42998).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43881).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084),e.addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(122928,122989).addRange(125184,125251).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),iT.characters=e,iT}var oT={},IQ;function tWe(){if(IQ)return oT;IQ=1;var e=ee(181,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,837,880,882,886,895,902,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);return e.addRange(65,90).addRange(192,214).addRange(216,223).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,977).addRange(981,982).addRange(1008,1009).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116),e.addRange(8119,8124).addRange(8130,8132).addRange(8135,8140).addRange(8152,8155).addRange(8168,8172).addRange(8178,8180).addRange(8183,8188).addRange(8490,8491).addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),oT.characters=e,oT}var lT={},CQ;function rWe(){if(CQ)return lT;CQ=1;var e=ee(181,447,601,611,623,629,637,640,658,837,895,902,908,4295,4301,7545,7549,7566,7838,8025,8027,8029,8126,8486,8498,8526,11559,11565,43859);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,311).addRange(313,396).addRange(398,410).addRange(412,425).addRange(428,441).addRange(444,445).addRange(452,544).addRange(546,563).addRange(570,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,977).addRange(981,1013).addRange(1015,1019).addRange(1021,1153).addRange(1162,1327).addRange(1329,1366).addRange(1377,1415).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7680,7835).addRange(7840,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124),e.addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8490,8491).addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11376).addRange(11378,11379).addRange(11381,11382).addRange(11390,11491).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42799).addRange(42802,42863).addRange(42873,42887).addRange(42891,42893).addRange(42896,42900).addRange(42902,42926).addRange(42928,42954).addRange(42960,42961).addRange(42966,42969).addRange(42997,42998).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(125184,125251),lT.characters=e,lT}var uT={},jQ;function aWe(){if(jQ)return uT;jQ=1;var e=ee(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8072,8079).addRange(8088,8095).addRange(8104,8111).addRange(8120,8124).addRange(8136,8140).addRange(8152,8155).addRange(8168,8172).addRange(8184,8188).addRange(8490,8491),e.addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),uT.characters=e,uT}var cT={},OQ;function nWe(){if(OQ)return cT;OQ=1;var e=ee(160,168,170,173,175,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,310,313,315,317,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,847,880,882,884,886,890,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,1564,2527,2611,2614,2654,3635,3763,3852,3907,3917,3922,3927,3932,3945,3955,3969,3987,3997,4002,4007,4012,4025,4295,4301,4348,7544,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8049,8051,8053,8055,8057,8059,8061,8147,8163,8209,8215,8252,8254,8279,8360,8484,8486,8488,8579,8585,10764,10972,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,11631,11935,12019,12288,12342,12447,12543,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42864,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,43881,64016,64018,64032,64034,64285,64318,65140,65279,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,127376);return e.addRange(65,90).addRange(178,181).addRange(184,186).addRange(188,190).addRange(192,214).addRange(216,223).addRange(306,308).addRange(319,321).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,461).addRange(497,500).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(688,696).addRange(728,733).addRange(736,740).addRange(832,833).addRange(835,837).addRange(894,895).addRange(900,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,982).addRange(1008,1010).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(1653,1656).addRange(2392,2399).addRange(2524,2525).addRange(2649,2651).addRange(2908,2909).addRange(3804,3805),e.addRange(3957,3961).addRange(4256,4293).addRange(4447,4448).addRange(5112,5117).addRange(6068,6069).addRange(6155,6159).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7468,7470).addRange(7472,7482).addRange(7484,7501).addRange(7503,7530).addRange(7579,7615).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116).addRange(8119,8132).addRange(8135,8143).addRange(8152,8155).addRange(8157,8159).addRange(8168,8175).addRange(8178,8180).addRange(8183,8190).addRange(8192,8207).addRange(8228,8230).addRange(8234,8239).addRange(8243,8244).addRange(8246,8247).addRange(8263,8265).addRange(8287,8305).addRange(8308,8334).addRange(8336,8348).addRange(8448,8451).addRange(8453,8455).addRange(8457,8467).addRange(8469,8470).addRange(8473,8477).addRange(8480,8482).addRange(8490,8493).addRange(8495,8505).addRange(8507,8512).addRange(8517,8521).addRange(8528,8575).addRange(8748,8749),e.addRange(8751,8752).addRange(9001,9002).addRange(9312,9450).addRange(10868,10870).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11388,11392).addRange(12032,12245).addRange(12344,12346).addRange(12443,12444).addRange(12593,12686).addRange(12690,12703).addRange(12800,12830).addRange(12832,12871).addRange(12880,12926).addRange(12928,13311).addRange(42652,42653).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42994,42997).addRange(43e3,43001).addRange(43868,43871).addRange(43888,43967).addRange(63744,64013).addRange(64021,64030).addRange(64037,64038).addRange(64042,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65020).addRange(65024,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65138).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479),e.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65520,65528).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(67457,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(113824,113827).addRange(119134,119140).addRange(119155,119162).addRange(119227,119232).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(122928,122989).addRange(125184,125217).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570),e.addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127232,127242).addRange(127248,127278).addRange(127280,127311).addRange(127338,127340).addRange(127488,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(130032,130041).addRange(194560,195101).addRange(917504,921599),cT.characters=e,cT}var dT={},_Q;function sWe(){if(_Q)return dT;_Q=1;var e=ee(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,452,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(454,455).addRange(457,458).addRange(476,477).addRange(495,497).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167).addRange(8178,8180),e.addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),dT.characters=e,dT}var pT={},NQ;function iWe(){if(NQ)return pT;NQ=1;var e=ee(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8124,8126,8140,8188,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(453,454).addRange(456,457).addRange(459,460).addRange(476,477).addRange(495,496).addRange(498,499).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167),e.addRange(8178,8180).addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),pT.characters=e,pT}var fT={},kQ;function oWe(){if(kQ)return fT;kQ=1;var e=ee(45,1418,1470,5120,6150,8275,8315,8331,8722,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);return e.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),fT.characters=e,fT}var hT={},DQ;function lWe(){if(DQ)return hT;DQ=1;var e=ee(173,847,1564,12644,65279,65440);return e.addRange(4447,4448).addRange(6068,6069).addRange(6155,6159).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(65024,65039).addRange(65520,65528).addRange(113824,113827).addRange(119155,119162).addRange(917504,921599),hT.characters=e,hT}var mT={},LQ;function uWe(){if(LQ)return mT;LQ=1;var e=ee(329,1651,3959,3961,917505);return e.addRange(6051,6052).addRange(8298,8303).addRange(9001,9002),mT.characters=e,mT}var yT={},MQ;function cWe(){if(MQ)return yT;MQ=1;var e=ee(94,96,168,175,180,890,1369,1471,1476,2364,2381,2417,2492,2509,2620,2637,2748,2765,2876,2893,2901,3021,3132,3149,3260,3277,3405,3530,3662,3770,3893,3895,3897,4038,4151,4239,6109,6783,6964,6980,7405,7412,8125,11823,12540,42607,42623,43204,43347,43443,43456,43493,43766,64286,65342,65344,65392,65507,66272,69702,69744,70003,70080,70460,70477,70722,70726,71231,71467,72003,72160,72244,72263,72345,72767,73026,73111,123566);return e.addRange(183,184).addRange(688,846).addRange(848,855).addRange(861,866).addRange(884,885).addRange(900,901).addRange(1155,1159).addRange(1425,1441).addRange(1443,1469).addRange(1473,1474).addRange(1611,1618).addRange(1623,1624).addRange(1759,1760).addRange(1765,1766).addRange(1770,1772).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2072,2073).addRange(2200,2207).addRange(2249,2258).addRange(2275,2302).addRange(2385,2388).addRange(2813,2815).addRange(3387,3388).addRange(3655,3660).addRange(3784,3788).addRange(3864,3865).addRange(3902,3903).addRange(3970,3972).addRange(3974,3975).addRange(4153,4154).addRange(4195,4196).addRange(4201,4205).addRange(4231,4237).addRange(4250,4251).addRange(4957,4959).addRange(5908,5909).addRange(6089,6099).addRange(6457,6459).addRange(6773,6780).addRange(6832,6846).addRange(6849,6859).addRange(7019,7027).addRange(7082,7083).addRange(7222,7223).addRange(7288,7293).addRange(7376,7400).addRange(7415,7417).addRange(7468,7530).addRange(7620,7631),e.addRange(7669,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(11503,11505).addRange(12330,12335).addRange(12441,12444).addRange(42620,42621).addRange(42652,42653).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(43e3,43001).addRange(43232,43249).addRange(43307,43310).addRange(43643,43645).addRange(43711,43714).addRange(43867,43871).addRange(43881,43883).addRange(44012,44013).addRange(65056,65071).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68325,68326).addRange(68898,68903).addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69817,69818).addRange(69939,69940).addRange(70090,70092).addRange(70197,70198).addRange(70377,70378).addRange(70502,70508).addRange(70512,70516).addRange(70850,70851).addRange(71103,71104).addRange(71350,71351).addRange(71737,71738).addRange(71997,71998).addRange(73028,73029).addRange(78919,78933).addRange(92912,92916).addRange(92976,92982).addRange(94095,94111).addRange(94192,94193).addRange(110576,110579),e.addRange(110581,110587).addRange(110589,110590).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(122928,122989).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125254).addRange(125256,125258),yT.characters=e,yT}var gT={},BQ;function dWe(){if(BQ)return gT;BQ=1;var e=ee(35,42,8205,8419,65039);return e.addRange(48,57).addRange(127462,127487).addRange(127995,127999).addRange(129456,129459).addRange(917536,917631),gT.characters=e,gT}var vT={},FQ;function pWe(){if(FQ)return vT;FQ=1;var e=ee(9757,9977,127877,127943,128124,128143,128145,128170,128378,128400,128675,128704,128716,129292,129295,129318,129399,129467);return e.addRange(9994,9997).addRange(127938,127940).addRange(127946,127948).addRange(128066,128067).addRange(128070,128080).addRange(128102,128120).addRange(128129,128131).addRange(128133,128135).addRange(128372,128373).addRange(128405,128406).addRange(128581,128583).addRange(128587,128591).addRange(128692,128694).addRange(129304,129311).addRange(129328,129337).addRange(129340,129342).addRange(129461,129462).addRange(129464,129465).addRange(129485,129487).addRange(129489,129501).addRange(129731,129733).addRange(129776,129784),vT.characters=e,vT}var bT={},$Q;function fWe(){if($Q)return bT;$Q=1;var e=ee();return e.addRange(127995,127999),bT.characters=e,bT}var xT={},qQ;function hWe(){if(qQ)return xT;qQ=1;var e=ee(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127462,127487).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),xT.characters=e,xT}var RT={},UQ;function mWe(){if(UQ)return RT;UQ=1;var e=ee(35,42,169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127183,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745,128752,129008);return e.addRange(48,57).addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127462,127487).addRange(127489,127490).addRange(127538,127546).addRange(127568,127569).addRange(127744,127777).addRange(127780,127891).addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,128253),e.addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128727).addRange(128732,128741).addRange(128747,128748).addRange(128755,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),RT.characters=e,RT}var ET={},VQ;function yWe(){if(VQ)return ET;VQ=1;var e=ee(169,174,8252,8265,8482,8505,9e3,9096,9167,9410,9654,9664,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,127279,127374,127514,127535);return e.addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9733).addRange(9735,9746).addRange(9748,9861).addRange(9872,9989).addRange(9992,10002).addRange(10035,10036).addRange(10067,10069).addRange(10083,10087).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(126976,127231).addRange(127245,127247).addRange(127340,127345).addRange(127358,127359).addRange(127377,127386).addRange(127405,127461).addRange(127489,127503).addRange(127538,127546).addRange(127548,127551).addRange(127561,127994).addRange(128e3,128317).addRange(128326,128591).addRange(128640,128767).addRange(128884,128895).addRange(128981,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129279).addRange(129292,129338).addRange(129340,129349).addRange(129351,129791).addRange(130048,131069),ET.characters=e,ET}var ST={},WQ;function gWe(){if(WQ)return ST;WQ=1;var e=ee(183,1600,2042,2901,3654,3782,6154,6211,6823,7222,7291,12293,40981,42508,43471,43494,43632,43741,65392,70493,72344,94179);return e.addRange(720,721).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(43763,43764).addRange(67457,67458).addRange(71110,71112).addRange(92994,92995).addRange(94176,94177).addRange(123196,123197).addRange(125252,125254),ST.characters=e,ST}var TT={},GQ;function vWe(){if(GQ)return TT;GQ=1;var e=ee(908,1470,1472,1475,1478,1563,1758,1769,1808,1969,2074,2084,2088,2142,2363,2482,2493,2510,2563,2654,2678,2691,2761,2768,2809,2877,2880,2947,2972,3007,3024,3133,3165,3389,3517,3716,3749,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,5909,6070,6314,6464,6743,6753,6971,7082,7143,7150,7379,7393,7418,8025,8027,8029,11559,11565,42611,42963,43597,43697,43712,43714,64285,64318,64975,65952,67592,67644,67903,69293,69632,69749,69932,70197,70280,70461,70463,70480,70725,70749,70841,70846,70849,71102,71230,71340,71350,71462,71736,71739,71945,71997,72192,72272,72343,72766,72873,72881,72884,73030,73110,73112,73537,73648,92917,110898,110933,113820,113823,119142,119365,119970,119995,120134,123647,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008);return e.addRange(32,126).addRange(160,172).addRange(174,767).addRange(880,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1154).addRange(1162,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1488,1514).addRange(1519,1524).addRange(1542,1551).addRange(1565,1610).addRange(1632,1647).addRange(1649,1749).addRange(1765,1766).addRange(1774,1805).addRange(1810,1839).addRange(1869,1957).addRange(1984,2026).addRange(2036,2042).addRange(2046,2069).addRange(2096,2110).addRange(2112,2136).addRange(2144,2154).addRange(2160,2190).addRange(2208,2249).addRange(2307,2361).addRange(2365,2368).addRange(2377,2380).addRange(2382,2384).addRange(2392,2401).addRange(2404,2432).addRange(2434,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2495,2496).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2529).addRange(2534,2557).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600),e.addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2624).addRange(2649,2652).addRange(2662,2671).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2752).addRange(2763,2764).addRange(2784,2785).addRange(2790,2801).addRange(2818,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2887,2888).addRange(2891,2892).addRange(2908,2909).addRange(2911,2913).addRange(2918,2935).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3046,3066).addRange(3073,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3137,3140).addRange(3160,3162).addRange(3168,3169).addRange(3174,3183),e.addRange(3191,3200).addRange(3202,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3262).addRange(3264,3265).addRange(3267,3268).addRange(3271,3272).addRange(3274,3275).addRange(3293,3294).addRange(3296,3297).addRange(3302,3311).addRange(3313,3315).addRange(3330,3340).addRange(3342,3344).addRange(3346,3386).addRange(3391,3392).addRange(3398,3400).addRange(3402,3404).addRange(3406,3407).addRange(3412,3414).addRange(3416,3425).addRange(3430,3455).addRange(3458,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3536,3537).addRange(3544,3550).addRange(3558,3567).addRange(3570,3572).addRange(3585,3632).addRange(3634,3635).addRange(3647,3654).addRange(3663,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3792,3801).addRange(3804,3807).addRange(3840,3863).addRange(3866,3892).addRange(3898,3911).addRange(3913,3948).addRange(3976,3980),e.addRange(4030,4037).addRange(4039,4044).addRange(4046,4058).addRange(4096,4140).addRange(4155,4156).addRange(4159,4183).addRange(4186,4189).addRange(4193,4208).addRange(4213,4225).addRange(4227,4228).addRange(4231,4236).addRange(4238,4252).addRange(4254,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4960,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5905).addRange(5919,5937).addRange(5940,5942).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6078,6085).addRange(6087,6088).addRange(6100,6108).addRange(6112,6121).addRange(6128,6137).addRange(6144,6154).addRange(6160,6169).addRange(6176,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389),e.addRange(6400,6430).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6678).addRange(6681,6682).addRange(6686,6741).addRange(6755,6756).addRange(6765,6770).addRange(6784,6793).addRange(6800,6809).addRange(6816,6829).addRange(6916,6963).addRange(6973,6977).addRange(6979,6988).addRange(6992,7018).addRange(7028,7038).addRange(7042,7073).addRange(7078,7079).addRange(7086,7141).addRange(7146,7148).addRange(7154,7155).addRange(7164,7211).addRange(7220,7221).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190),e.addRange(8192,8202).addRange(8208,8231).addRange(8239,8287).addRange(8304,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11502).addRange(11506,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11776,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12329).addRange(12336,12351).addRange(12353,12438).addRange(12443,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12783,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42606).addRange(42622,42653).addRange(42656,42735).addRange(42738,42743).addRange(42752,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018),e.addRange(43020,43044).addRange(43047,43051).addRange(43056,43065).addRange(43072,43127).addRange(43136,43203).addRange(43214,43225).addRange(43250,43262).addRange(43264,43301).addRange(43310,43334).addRange(43346,43347).addRange(43359,43388).addRange(43395,43442).addRange(43444,43445).addRange(43450,43451).addRange(43454,43469).addRange(43471,43481).addRange(43486,43492).addRange(43494,43518).addRange(43520,43560).addRange(43567,43568).addRange(43571,43572).addRange(43584,43586).addRange(43588,43595).addRange(43600,43609).addRange(43612,43643).addRange(43645,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43755).addRange(43758,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44004).addRange(44006,44007).addRange(44009,44012).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324),e.addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66044).addRange(66176,66204).addRange(66208,66256).addRange(66273,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977),e.addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68096).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68160,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68324).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68899).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69296,69297).addRange(69376,69415).addRange(69424,69445).addRange(69457,69465).addRange(69488,69505).addRange(69510,69513).addRange(69552,69579).addRange(69600,69622),e.addRange(69634,69687).addRange(69703,69709).addRange(69714,69743).addRange(69745,69746).addRange(69762,69810).addRange(69815,69816).addRange(69819,69820).addRange(69822,69825).addRange(69840,69864).addRange(69872,69881).addRange(69891,69926).addRange(69942,69959).addRange(69968,70002).addRange(70004,70006).addRange(70018,70069).addRange(70079,70088).addRange(70093,70094).addRange(70096,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70190).addRange(70194,70195).addRange(70200,70205).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70366).addRange(70368,70370).addRange(70384,70393).addRange(70402,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70656,70711).addRange(70720,70721).addRange(70727,70747).addRange(70751,70753).addRange(70784,70831).addRange(70833,70834).addRange(70843,70844).addRange(70852,70855).addRange(70864,70873),e.addRange(71040,71086).addRange(71088,71089).addRange(71096,71099).addRange(71105,71131).addRange(71168,71218).addRange(71227,71228).addRange(71233,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71338).addRange(71342,71343).addRange(71352,71353).addRange(71360,71369).addRange(71424,71450).addRange(71456,71457).addRange(71472,71494).addRange(71680,71726).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(71985,71989).addRange(71991,71992).addRange(71999,72002).addRange(72004,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72147).addRange(72156,72159).addRange(72161,72164).addRange(72203,72242).addRange(72249,72250).addRange(72255,72262).addRange(72279,72280).addRange(72284,72329).addRange(72346,72354).addRange(72368,72440).addRange(72448,72457).addRange(72704,72712).addRange(72714,72751).addRange(72768,72773).addRange(72784,72812).addRange(72816,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102),e.addRange(73107,73108).addRange(73120,73129).addRange(73440,73458).addRange(73461,73464).addRange(73474,73488).addRange(73490,73525).addRange(73534,73535).addRange(73539,73561).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78895).addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92928,92975).addRange(92983,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94032,94087).addRange(94099,94111).addRange(94176,94179).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(118608,118723).addRange(118784,119029),e.addRange(119040,119078).addRange(119081,119140).addRange(119146,119149).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121483).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123565).addRange(123584,123627).addRange(123632,123641).addRange(124112,124139).addRange(124144,124153).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125135),e.addRange(125184,125251).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886).addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672),e.addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),TT.characters=e,TT}var wT={},KQ;function bWe(){if(KQ)return wT;KQ=1;var e=ee(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2494,2509,2519,2558,2620,2641,2677,2748,2765,2817,2876,2893,2946,3006,3008,3021,3031,3072,3076,3132,3201,3260,3263,3266,3270,3390,3405,3415,3457,3530,3535,3542,3551,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6972,6978,7142,7149,7405,7412,8204,11647,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70209,70367,70462,70464,70487,70726,70750,70832,70842,70845,71087,71229,71339,71341,71351,71984,71998,72003,72160,72263,72767,73018,73031,73109,73111,73536,73538,78912,94031,94180,119141,121461,121476,123023,123566);return e.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2878,2879).addRange(2881,2884).addRange(2901,2903).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388),e.addRange(3393,3396).addRange(3426,3427).addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6964,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378),e.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017),e.addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530).addRange(78919,78933).addRange(92912,92916),e.addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119150,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(125136,125142).addRange(125252,125258).addRange(917536,917631).addRange(917760,917999),wT.characters=e,wT}var PT={},HQ;function xWe(){if(HQ)return PT;HQ=1;var e=ee();return e.addRange(48,57).addRange(65,70).addRange(97,102).addRange(65296,65305).addRange(65313,65318).addRange(65345,65350),PT.characters=e,PT}var AT={},zQ;function RWe(){if(zQ)return AT;zQ=1;var e=ee(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,110898,110933,119970,119995,120134,121461,121476,123023,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(890,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),e.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),e.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),e.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),e.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8204,8205).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412),e.addRange(8421,8432).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12447).addRange(12449,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255).addRange(43261,43309),e.addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65136,65140).addRange(65142,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65381,65470).addRange(65474,65479),e.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023),e.addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69373,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70206,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412),e.addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),e.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73538).addRange(73552,73561).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78912,78933).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951),e.addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913),e.addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743).addRange(917760,917999),AT.characters=e,AT}var IT={},XQ;function EWe(){if(XQ)return IT;XQ=1;var e=ee(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),e.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312),e.addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670),e.addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12443,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586),e.addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204),e.addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),e.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103),e.addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964),e.addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588),e.addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),IT.characters=e,IT}var CT={},JQ;function SWe(){if(JQ)return CT;JQ=1;var e=ee(94180);return e.addRange(12294,12295).addRange(12321,12329).addRange(12344,12346).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110960,111355).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),CT.characters=e,CT}var jT={},YQ;function TWe(){if(YQ)return jT;YQ=1;var e=ee(12783);return e.addRange(12272,12273).addRange(12276,12285),jT.characters=e,jT}var OT={},QQ;function wWe(){if(QQ)return OT;QQ=1;var e=ee();return e.addRange(12274,12275),OT.characters=e,OT}var _T={},ZQ;function PWe(){if(ZQ)return _T;ZQ=1;var e=ee();return e.addRange(8204,8205),_T.characters=e,_T}var NT={},eZ;function AWe(){if(eZ)return NT;eZ=1;var e=ee(6586,43705);return e.addRange(3648,3652).addRange(3776,3780).addRange(6581,6583).addRange(43701,43702).addRange(43707,43708),NT.characters=e,NT}var kT={},tZ;function IWe(){if(tZ)return kT;tZ=1;var e=ee(170,181,186,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8305,8319,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,67456,119995,120779);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(890,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4348,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7615).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),e.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8336,8348).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11492).addRange(11520,11557).addRange(42651,42653).addRange(42799,42801).addRange(42863,42872).addRange(42899,42901).addRange(42994,42996).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43881).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275),e.addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(122928,122989).addRange(125218,125251),kT.characters=e,kT}var DT={},rZ;function CWe(){if(rZ)return DT;rZ=1;var e=ee(43,94,124,126,172,177,215,247,981,8214,8256,8260,8274,8417,8450,8455,8469,8484,8523,8669,9084,9143,9168,9698,9700,9792,9794,64297,65128,65291,65340,65342,65372,65374,65506,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(60,62).addRange(976,978).addRange(1008,1009).addRange(1012,1014).addRange(1542,1544).addRange(8242,8244).addRange(8289,8292).addRange(8314,8318).addRange(8330,8334).addRange(8400,8412).addRange(8421,8422).addRange(8427,8431).addRange(8458,8467).addRange(8472,8477).addRange(8488,8489).addRange(8492,8493).addRange(8495,8497).addRange(8499,8504).addRange(8508,8521).addRange(8592,8615).addRange(8617,8622).addRange(8624,8625).addRange(8630,8631).addRange(8636,8667).addRange(8676,8677).addRange(8692,8959).addRange(8968,8971).addRange(8992,8993).addRange(9115,9141).addRange(9180,9186).addRange(9632,9633).addRange(9646,9655).addRange(9660,9665).addRange(9670,9671).addRange(9674,9675).addRange(9679,9683).addRange(9703,9708).addRange(9720,9727).addRange(9733,9734).addRange(9824,9827).addRange(9837,9839).addRange(10176,10239).addRange(10496,11007).addRange(11056,11076).addRange(11079,11084).addRange(65121,65126).addRange(65308,65310).addRange(65513,65516).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),e.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),DT.characters=e,DT}var LT={},aZ;function jWe(){if(aZ)return LT;aZ=1;var e=ee();return e.addRange(64976,65007).addRange(65534,65535).addRange(131070,131071).addRange(196606,196607).addRange(262142,262143).addRange(327678,327679).addRange(393214,393215).addRange(458750,458751).addRange(524286,524287).addRange(589822,589823).addRange(655358,655359).addRange(720894,720895).addRange(786430,786431).addRange(851966,851967).addRange(917502,917503).addRange(983038,983039).addRange(1048574,1048575).addRange(1114110,1114111),LT.characters=e,LT}var MT={},nZ;function OWe(){if(nZ)return MT;nZ=1;var e=ee(96,169,174,182,187,191,215,247,12336);return e.addRange(33,47).addRange(58,64).addRange(91,94).addRange(123,126).addRange(161,167).addRange(171,172).addRange(176,177).addRange(8208,8231).addRange(8240,8254).addRange(8257,8275).addRange(8277,8286).addRange(8592,9311).addRange(9472,10101).addRange(10132,11263).addRange(11776,11903).addRange(12289,12291).addRange(12296,12320).addRange(64830,64831).addRange(65093,65094),MT.characters=e,MT}var BT={},sZ;function _We(){if(sZ)return BT;sZ=1;var e=ee(32,133);return e.addRange(9,13).addRange(8206,8207).addRange(8232,8233),BT.characters=e,BT}var FT={},iZ;function NWe(){if(iZ)return FT;iZ=1;var e=ee(34,39,171,187,11842,65282,65287);return e.addRange(8216,8223).addRange(8249,8250).addRange(12300,12303).addRange(12317,12319).addRange(65089,65092).addRange(65378,65379),FT.characters=e,FT}var $T={},oZ;function kWe(){if(oZ)return $T;oZ=1;var e=ee();return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245),$T.characters=e,$T}var qT={},lZ;function DWe(){if(lZ)return qT;lZ=1;var e=ee();return e.addRange(127462,127487),qT.characters=e,qT}var UT={},uZ;function LWe(){if(uZ)return UT;uZ=1;var e=ee(33,46,63,1417,1748,2041,2103,2105,4962,5742,6147,6153,11822,11836,12290,42239,42739,42743,43311,44011,65106,65281,65294,65311,65377,70093,70313,72004,72006,92917,92996,93848,113823,121480);return e.addRange(1565,1567).addRange(1792,1794).addRange(2109,2110).addRange(2404,2405).addRange(4170,4171).addRange(4967,4968).addRange(5941,5942).addRange(6100,6101).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7006,7007).addRange(7037,7038).addRange(7227,7228).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11859,11860).addRange(42510,42511).addRange(43126,43127).addRange(43214,43215).addRange(43464,43465).addRange(43613,43615).addRange(43760,43761).addRange(65110,65111).addRange(68182,68183).addRange(69461,69465).addRange(69510,69513).addRange(69703,69704).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70201).addRange(70203,70204).addRange(70731,70732).addRange(71106,71107).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72769,72770).addRange(73463,73464).addRange(73539,73540).addRange(92782,92783).addRange(92983,92984),UT.characters=e,UT}var VT={},cZ;function MWe(){if(cZ)return VT;cZ=1;var e=ee(303,585,616,669,690,1011,1110,1112,7522,7574,7588,7592,7725,7883,8305,11388,122650,122984);return e.addRange(105,106).addRange(8520,8521).addRange(119842,119843).addRange(119894,119895).addRange(119946,119947).addRange(119998,119999).addRange(120050,120051).addRange(120102,120103).addRange(120154,120155).addRange(120206,120207).addRange(120258,120259).addRange(120310,120311).addRange(120362,120363).addRange(120414,120415).addRange(120466,120467).addRange(122956,122957),VT.characters=e,VT}var WT={},dZ;function BWe(){if(dZ)return WT;dZ=1;var e=ee(33,44,46,63,894,903,1417,1475,1548,1563,1748,1804,2142,3848,5742,6106,11822,11836,11841,11852,43311,43743,44011,65281,65292,65294,65311,65377,65380,66463,66512,67671,67871,70093,70313,72004,72006,72817,92917,92996,113823);return e.addRange(58,59).addRange(1565,1567).addRange(1792,1802).addRange(2040,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3853,3858).addRange(4170,4171).addRange(4961,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6146,6149).addRange(6152,6153).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7005,7007).addRange(7037,7038).addRange(7227,7231).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11854,11855).addRange(11859,11860).addRange(12289,12290).addRange(42238,42239).addRange(42509,42511).addRange(42739,42743).addRange(43126,43127).addRange(43214,43215).addRange(43463,43465).addRange(43613,43615).addRange(43760,43761).addRange(65104,65106).addRange(65108,65111).addRange(65306,65307).addRange(68182,68183).addRange(68336,68341).addRange(68410,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70204).addRange(70731,70733),e.addRange(70746,70747).addRange(71106,71109).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72353,72354).addRange(72769,72771).addRange(73463,73464).addRange(73539,73540).addRange(74864,74868).addRange(92782,92783).addRange(92983,92985).addRange(93847,93848).addRange(121479,121482),WT.characters=e,WT}var GT={},pZ;function FWe(){if(pZ)return GT;pZ=1;var e=ee(64017,64031,64033);return e.addRange(13312,19903).addRange(19968,40959).addRange(64014,64015).addRange(64019,64020).addRange(64035,64036).addRange(64039,64041).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(196608,201546).addRange(201552,205743),GT.characters=e,GT}var KT={},fZ;function $We(){if(fZ)return KT;fZ=1;var e=ee(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(8544,8559),e.addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),KT.characters=e,KT}var HT={},hZ;function qWe(){if(hZ)return HT;hZ=1;var e=ee(6159);return e.addRange(6155,6157).addRange(65024,65039).addRange(917760,917999),HT.characters=e,HT}var zT={},mZ;function UWe(){if(mZ)return zT;mZ=1;var e=ee(32,133,160,5760,8239,8287,12288);return e.addRange(9,13).addRange(8192,8202).addRange(8232,8233),zT.characters=e,zT}var XT={},yZ;function VWe(){if(yZ)return XT;yZ=1;var e=ee(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65137,65139,65143,65145,65147,65149,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,110898,110933,119970,119995,120134,121461,121476,123023,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(891,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),e.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),e.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),e.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),e.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8204,8205).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412),e.addRange(8421,8432).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12442).addRange(12445,12447).addRange(12449,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255),e.addRange(43261,43309).addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65151,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65381,65470),e.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897),e.addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69373,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70206,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403),e.addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886),e.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73538).addRange(73552,73561).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78912,78933).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930),e.addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904),e.addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743).addRange(917760,917999),XT.characters=e,XT}var JT={},gZ;function WWe(){if(gZ)return JT;gZ=1;var e=ee(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3634,3716,3749,3762,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,65137,65139,65143,65145,65147,65149,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),e.addRange(3585,3632).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312).addRange(6320,6389).addRange(6400,6430),e.addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694),e.addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43638),e.addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65151,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256),e.addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786),e.addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),e.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),e.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601),e.addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),JT.characters=e,JT}var YT={},vZ;function GWe(){if(vZ)return YT;vZ=1;var e=ee(181,895,902,908,4295,4301,8025,8027,8029,8126,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,43002,119970,119995,120134);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,687).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580),e.addRange(11264,11387).addRange(11390,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42863).addRange(42865,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144),e.addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(125184,125251),YT.characters=e,YT}var QT={},bZ;function KWe(){if(bZ)return QT;bZ=1;var e=ee(41,93,125,3899,3901,5788,8262,8318,8334,8969,8971,9002,10089,10091,10093,10095,10097,10099,10101,10182,10215,10217,10219,10221,10223,10628,10630,10632,10634,10636,10638,10640,10642,10644,10646,10648,10713,10715,10749,11811,11813,11815,11817,11862,11864,11866,11868,12297,12299,12301,12303,12305,12309,12311,12313,12315,64830,65048,65078,65080,65082,65084,65086,65088,65090,65092,65096,65114,65116,65118,65289,65341,65373,65376,65379);return e.addRange(12318,12319),QT.characters=e,QT}var ZT={},xZ;function HWe(){if(xZ)return ZT;xZ=1;var e=ee(95,8276,65343);return e.addRange(8255,8256).addRange(65075,65076).addRange(65101,65103),ZT.characters=e,ZT}var e3={},RZ;function zWe(){if(RZ)return e3;RZ=1;var e=ee();return e.addRange(0,31).addRange(127,159),e3.characters=e,e3}var t3={},EZ;function XWe(){if(EZ)return t3;EZ=1;var e=ee(36,1423,1547,2555,2801,3065,3647,6107,43064,65020,65129,65284,123647,126128);return e.addRange(162,165).addRange(2046,2047).addRange(2546,2547).addRange(8352,8384).addRange(65504,65505).addRange(65509,65510).addRange(73693,73696),t3.characters=e,t3}var r3={},SZ;function JWe(){if(SZ)return r3;SZ=1;var e=ee(45,1418,1470,5120,6150,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);return e.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),r3.characters=e,r3}var a3={},TZ;function YWe(){if(TZ)return a3;TZ=1;var e=ee();return e.addRange(48,57).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(3046,3055).addRange(3174,3183).addRange(3302,3311).addRange(3430,3439).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3881).addRange(4160,4169).addRange(4240,4249).addRange(6112,6121).addRange(6160,6169).addRange(6470,6479).addRange(6608,6617).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(42528,42537).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(66720,66729).addRange(68912,68921).addRange(69734,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71481).addRange(71904,71913).addRange(72016,72025),e.addRange(72784,72793).addRange(73040,73049).addRange(73120,73129).addRange(73552,73561).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(124144,124153).addRange(125264,125273).addRange(130032,130041),a3.characters=e,a3}var n3={},wZ;function QWe(){if(wZ)return n3;wZ=1;var e=ee(6846);return e.addRange(1160,1161).addRange(8413,8416).addRange(8418,8420).addRange(42608,42610),n3.characters=e,n3}var s3={},PZ;function ZWe(){if(PZ)return s3;PZ=1;var e=ee(187,8217,8221,8250,11779,11781,11786,11789,11805,11809);return s3.characters=e,s3}var i3={},AZ;function eGe(){if(AZ)return i3;AZ=1;var e=ee(173,1564,1757,1807,2274,6158,65279,69821,69837,917505);return e.addRange(1536,1541).addRange(2192,2193).addRange(8203,8207).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(65529,65531).addRange(78896,78911).addRange(113824,113827).addRange(119155,119162).addRange(917536,917631),i3.characters=e,i3}var o3={},IZ;function tGe(){if(IZ)return o3;IZ=1;var e=ee(171,8216,8223,8249,11778,11780,11785,11788,11804,11808);return e.addRange(8219,8220),o3.characters=e,o3}var l3={},CZ;function rGe(){if(CZ)return l3;CZ=1;var e=ee(12295,66369,66378);return e.addRange(5870,5872).addRange(8544,8578).addRange(8581,8584).addRange(12321,12329).addRange(12344,12346).addRange(42726,42735).addRange(65856,65908).addRange(66513,66517).addRange(74752,74862),l3.characters=e,l3}var u3={},jZ;function aGe(){if(jZ)return u3;jZ=1;var e=ee(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),e.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6276),e.addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557),e.addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12294).addRange(12337,12341).addRange(12347,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42725).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560),e.addRange(43584,43586).addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204),e.addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),e.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103),e.addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),e.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601),e.addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),u3.characters=e,u3}var c3={},OZ;function nGe(){if(OZ)return c3;OZ=1;var e=ee(8232);return c3.characters=e,c3}var d3={},_Z;function sGe(){if(_Z)return d3;_Z=1;var e=ee(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,43002,119995,120779);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,687).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),e.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11387).addRange(11491,11492).addRange(11520,11557).addRange(42799,42801).addRange(42865,42872).addRange(42899,42901).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654),e.addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(125218,125251),d3.characters=e,d3}var p3={},NZ;function iGe(){if(NZ)return p3;NZ=1;var e=ee(1471,1479,1648,1809,2045,2492,2519,2558,2620,2641,2677,2748,2876,2946,3031,3132,3260,3315,3415,3530,3542,3633,3761,3893,3895,3897,4038,4239,6109,6159,6313,6783,7405,7412,11647,43010,43014,43019,43052,43263,43493,43587,43696,43713,64286,66045,66272,68159,69744,69826,70003,70206,70209,70487,70750,72e3,72164,72263,73018,73031,73475,78912,94031,94180,121461,121476,123023,123566);return e.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2307).addRange(2362,2364).addRange(2366,2383).addRange(2385,2391).addRange(2402,2403).addRange(2433,2435).addRange(2494,2500).addRange(2503,2504).addRange(2507,2509).addRange(2530,2531).addRange(2561,2563).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2691).addRange(2750,2757).addRange(2759,2761).addRange(2763,2765).addRange(2786,2787).addRange(2810,2815).addRange(2817,2819).addRange(2878,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2914,2915).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021),e.addRange(3072,3076).addRange(3134,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3201,3203).addRange(3262,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3331).addRange(3387,3388).addRange(3390,3396).addRange(3398,3400).addRange(3402,3405).addRange(3426,3427).addRange(3457,3459).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3902,3903).addRange(3953,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4139,4158).addRange(4182,4185).addRange(4190,4192).addRange(4194,4196).addRange(4199,4205).addRange(4209,4212).addRange(4226,4237).addRange(4250,4253).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6443).addRange(6448,6459).addRange(6679,6683),e.addRange(6741,6750).addRange(6752,6780).addRange(6832,6862).addRange(6912,6916).addRange(6964,6980).addRange(7019,7027).addRange(7040,7042).addRange(7073,7085).addRange(7142,7155).addRange(7204,7223).addRange(7376,7378).addRange(7380,7400).addRange(7415,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43043,43047).addRange(43136,43137).addRange(43188,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43347).addRange(43392,43395).addRange(43443,43456).addRange(43561,43574).addRange(43596,43597).addRange(43643,43645).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43755,43759).addRange(43765,43766).addRange(44003,44010).addRange(44012,44013).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292),e.addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69632,69634).addRange(69688,69702).addRange(69747,69748).addRange(69759,69762).addRange(69808,69818).addRange(69888,69890).addRange(69927,69940).addRange(69957,69958).addRange(70016,70018).addRange(70067,70080).addRange(70089,70092).addRange(70094,70095).addRange(70188,70199).addRange(70367,70378).addRange(70400,70403).addRange(70459,70460).addRange(70462,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70502,70508).addRange(70512,70516).addRange(70709,70726).addRange(70832,70851).addRange(71087,71093).addRange(71096,71104).addRange(71132,71133).addRange(71216,71232).addRange(71339,71351).addRange(71453,71467).addRange(71724,71738).addRange(71984,71989).addRange(71991,71992).addRange(71995,71998).addRange(72002,72003).addRange(72145,72151).addRange(72154,72160).addRange(72193,72202).addRange(72243,72249).addRange(72251,72254).addRange(72273,72283).addRange(72330,72345).addRange(72751,72758).addRange(72760,72767).addRange(72850,72871).addRange(72873,72886).addRange(73009,73014).addRange(73020,73021),e.addRange(73023,73029).addRange(73098,73102).addRange(73104,73105).addRange(73107,73111).addRange(73459,73462).addRange(73472,73473).addRange(73524,73530).addRange(73534,73538).addRange(78919,78933).addRange(92912,92916).addRange(92976,92982).addRange(94033,94087).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),p3.characters=e,p3}var f3={},kZ;function oGe(){if(kZ)return f3;kZ=1;var e=ee(43,124,126,172,177,215,247,1014,8260,8274,8472,8523,8608,8611,8614,8622,8658,8660,9084,9655,9665,9839,64297,65122,65291,65372,65374,65506,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771);return e.addRange(60,62).addRange(1542,1544).addRange(8314,8316).addRange(8330,8332).addRange(8512,8516).addRange(8592,8596).addRange(8602,8603).addRange(8654,8655).addRange(8692,8959).addRange(8992,8993).addRange(9115,9139).addRange(9180,9185).addRange(9720,9727).addRange(10176,10180).addRange(10183,10213).addRange(10224,10239).addRange(10496,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11007).addRange(11056,11076).addRange(11079,11084).addRange(65124,65126).addRange(65308,65310).addRange(65513,65516).addRange(126704,126705),f3.characters=e,f3}var h3={},DZ;function lGe(){if(DZ)return h3;DZ=1;var e=ee(748,750,884,890,1369,1600,2042,2074,2084,2088,2249,2417,3654,3782,4348,6103,6211,6823,7544,8305,8319,11631,11823,12293,12347,40981,42508,42623,42864,42888,43471,43494,43632,43741,43881,65392,94179,124139,125259);return e.addRange(688,705).addRange(710,721).addRange(736,740).addRange(1765,1766).addRange(2036,2037).addRange(7288,7293).addRange(7468,7530).addRange(7579,7615).addRange(8336,8348).addRange(11388,11389).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(42232,42237).addRange(42652,42653).addRange(42775,42783).addRange(42994,42996).addRange(43e3,43001).addRange(43763,43764).addRange(43868,43871).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(92992,92995).addRange(94099,94111).addRange(94176,94177).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(122928,122989).addRange(123191,123197),h3.characters=e,h3}var m3={},LZ;function uGe(){if(LZ)return m3;LZ=1;var e=ee(94,96,168,175,180,184,749,885,2184,8125,43867,65342,65344,65507);return e.addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(12443,12444).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43882,43883).addRange(64434,64450).addRange(127995,127999),m3.characters=e,m3}var y3={},MZ;function cGe(){if(MZ)return y3;MZ=1;var e=ee(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6964,6972,6978,7142,7149,7405,7412,8417,11647,42607,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70209,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,73536,73538,78912,94031,94180,121461,121476,123023,123566);return e.addRange(768,879).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),e.addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6845).addRange(6847,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378).addRange(7380,7392),e.addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8412).addRange(8421,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12441,12442).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092),e.addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530).addRange(78919,78933).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098),e.addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),y3.characters=e,y3}var g3={},BZ;function dGe(){if(BZ)return g3;BZ=1;var e=ee(185,8304,11517,12295,66369,66378);return e.addRange(48,57).addRange(178,179).addRange(188,190).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2548,2553).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(2930,2935).addRange(3046,3058).addRange(3174,3183).addRange(3192,3198).addRange(3302,3311).addRange(3416,3422).addRange(3430,3448).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3891).addRange(4160,4169).addRange(4240,4249).addRange(4969,4988).addRange(5870,5872).addRange(6112,6121).addRange(6128,6137).addRange(6160,6169).addRange(6470,6479).addRange(6608,6618).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(8308,8313).addRange(8320,8329).addRange(8528,8578).addRange(8581,8585).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12321,12329).addRange(12344,12346).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895),e.addRange(12928,12937).addRange(12977,12991).addRange(42528,42537).addRange(42726,42735).addRange(43056,43061).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(65799,65843).addRange(65856,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(66513,66517).addRange(66720,66729).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(68912,68921).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70113,70132).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71483),e.addRange(71904,71922).addRange(72016,72025).addRange(72784,72812).addRange(73040,73049).addRange(73120,73129).addRange(73552,73561).addRange(73664,73684).addRange(74752,74862).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93019,93025).addRange(93824,93846).addRange(119488,119507).addRange(119520,119539).addRange(119648,119672).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(124144,124153).addRange(125127,125135).addRange(125264,125273).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244).addRange(130032,130041),g3.characters=e,g3}var v3={},FZ;function pGe(){if(FZ)return v3;FZ=1;var e=ee(40,91,123,3898,3900,5787,8218,8222,8261,8317,8333,8968,8970,9001,10088,10090,10092,10094,10096,10098,10100,10181,10214,10216,10218,10220,10222,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10712,10714,10748,11810,11812,11814,11816,11842,11861,11863,11865,11867,12296,12298,12300,12302,12304,12308,12310,12312,12314,12317,64831,65047,65077,65079,65081,65083,65085,65087,65089,65091,65095,65113,65115,65117,65288,65339,65371,65375,65378);return v3.characters=e,v3}var b3={},$Z;function fGe(){if($Z)return b3;$Z=1;var e=ee(170,186,443,660,1749,1791,1808,1969,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3840,4159,4193,4238,4696,4800,6108,6314,7418,12294,12348,12447,12543,42606,42895,42999,43259,43642,43697,43712,43714,43762,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,110898,110933,122634,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(448,451).addRange(1488,1514).addRange(1519,1522).addRange(1568,1599).addRange(1601,1610).addRange(1646,1647).addRange(1649,1747).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2248).addRange(2308,2361).addRange(2392,2401).addRange(2418,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873),e.addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3653).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198),e.addRange(4206,4208).addRange(4213,4225).addRange(4352,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6210).addRange(6212,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7287).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414),e.addRange(8501,8504).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12353,12438).addRange(12449,12538).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,40980).addRange(40982,42124).addRange(42192,42231).addRange(42240,42507).addRange(42512,42527).addRange(42538,42539).addRange(42656,42725).addRange(43003,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43495,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43631).addRange(43633,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43740).addRange(43744,43754).addRange(43777,43782),e.addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43968,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65382,65391).addRange(65393,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66640,66717).addRange(66816,66855).addRange(66864,66915).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),e.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440),e.addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(93027,93047).addRange(93053,93071).addRange(93952,94026),e.addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(123136,123180).addRange(123536,123565).addRange(123584,123627).addRange(124112,124138).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),b3.characters=e,b3}var x3={},qZ;function hGe(){if(qZ)return x3;qZ=1;var e=ee(185,6618,8304,8585,11517);return e.addRange(178,179).addRange(188,190).addRange(2548,2553).addRange(2930,2935).addRange(3056,3058).addRange(3192,3198).addRange(3416,3422).addRange(3440,3448).addRange(3882,3891).addRange(4969,4988).addRange(6128,6137).addRange(8308,8313).addRange(8320,8329).addRange(8528,8543).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895).addRange(12928,12937).addRange(12977,12991).addRange(43056,43061).addRange(65799,65843).addRange(65909,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69733).addRange(70113,70132),e.addRange(71482,71483).addRange(71914,71922).addRange(72794,72812).addRange(73664,73684).addRange(93019,93025).addRange(93824,93846).addRange(119488,119507).addRange(119520,119539).addRange(119648,119672).addRange(125127,125135).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244),x3.characters=e,x3}var R3={},UZ;function mGe(){if(UZ)return R3;UZ=1;var e=ee(42,44,92,161,167,191,894,903,1417,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5742,7379,8275,11632,11787,11803,11841,12349,12539,42611,42622,43260,43359,44011,65049,65072,65128,65290,65292,65340,65377,66463,66512,66927,67671,67871,67903,68223,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);return e.addRange(33,35).addRange(37,39).addRange(46,47).addRange(58,59).addRange(63,64).addRange(182,183).addRange(1370,1375).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6149).addRange(6151,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8214,8215).addRange(8224,8231).addRange(8240,8248).addRange(8251,8254).addRange(8257,8259).addRange(8263,8273).addRange(8277,8286).addRange(11513,11516).addRange(11518,11519).addRange(11776,11777).addRange(11782,11784).addRange(11790,11798).addRange(11800,11801),e.addRange(11806,11807).addRange(11818,11822).addRange(11824,11833).addRange(11836,11839).addRange(11843,11855).addRange(11858,11860).addRange(12289,12291).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(65040,65046).addRange(65093,65094).addRange(65097,65100).addRange(65104,65106).addRange(65108,65111).addRange(65119,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65287).addRange(65294,65295).addRange(65306,65307).addRange(65311,65312).addRange(65380,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205).addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235),e.addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72448,72457).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(73539,73551).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),R3.characters=e,R3}var E3={},VZ;function yGe(){if(VZ)return E3;VZ=1;var e=ee(166,169,174,176,1154,1758,1769,2038,2554,2928,3066,3199,3407,3449,3859,3892,3894,3896,5741,6464,8468,8485,8487,8489,8494,8522,8527,8659,12292,12320,12783,12880,43065,64975,65508,65512,65952,68296,71487,92997,113820,119365,123215,126124,126254,129008);return e.addRange(1421,1422).addRange(1550,1551).addRange(1789,1790).addRange(3059,3064).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8471).addRange(8478,8483).addRange(8506,8507).addRange(8524,8525).addRange(8586,8587).addRange(8597,8601).addRange(8604,8607).addRange(8609,8610).addRange(8612,8613).addRange(8615,8621).addRange(8623,8653).addRange(8656,8657).addRange(8661,8691).addRange(8960,8967).addRange(8972,8991).addRange(8994,9e3).addRange(9003,9083).addRange(9085,9114).addRange(9140,9179).addRange(9186,9254).addRange(9280,9290).addRange(9372,9449).addRange(9472,9654).addRange(9656,9664).addRange(9666,9719).addRange(9728,9838).addRange(9840,10087).addRange(10132,10175).addRange(10240,10495).addRange(11008,11055).addRange(11077,11078).addRange(11085,11123),e.addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12287).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(43048,43051).addRange(43062,43063).addRange(43639,43641).addRange(64832,64847).addRange(65021,65023).addRange(65517,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73692).addRange(73697,73713).addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475),e.addRange(121477,121478).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,127994).addRange(128e3,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886).addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938).addRange(129940,129994),E3.characters=e,E3}var S3={},WZ;function gGe(){if(WZ)return S3;WZ=1;var e=ee(173,907,909,930,1328,1424,1564,1757,2111,2143,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6158,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69821,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129726,129939);return e.addRange(0,31).addRange(127,159).addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1541).addRange(1806,1807).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2191,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957),e.addRange(2966,2968).addRange(2976,2978).addRange(2981,2983).addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791),e.addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279).addRange(9291,9311),e.addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12772,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135),e.addRange(65277,65280).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65531).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191),e.addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69372).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295),e.addRange(71354,71359).addRange(71370,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73471).addRange(73531,73533).addRange(73562,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78896,78911).addRange(78934,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094),e.addRange(94112,94175).addRange(94181,94191).addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113824,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119155,119162).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111),e.addRange(124154,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128731).addRange(128749,128751).addRange(128765,128767).addRange(128887,128890).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129661,129663).addRange(129673,129679).addRange(129734,129741).addRange(129756,129759).addRange(129769,129775).addRange(129785,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177978,177983),e.addRange(178206,178207).addRange(183970,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(205744,917759).addRange(918e3,1114111),S3.characters=e,S3}var T3={},GZ;function vGe(){if(GZ)return T3;GZ=1;var e=ee(8233);return T3.characters=e,T3}var w3={},KZ;function bGe(){if(KZ)return w3;KZ=1;var e=ee();return e.addRange(57344,63743).addRange(983040,1048573).addRange(1048576,1114109),w3.characters=e,w3}var P3={},HZ;function xGe(){if(HZ)return P3;HZ=1;var e=ee(95,123,125,161,167,171,187,191,894,903,1470,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5120,5742,7379,11632,12336,12349,12448,12539,42611,42622,43260,43359,44011,65123,65128,65343,65371,65373,66463,66512,66927,67671,67871,67903,68223,69293,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);return e.addRange(33,35).addRange(37,42).addRange(44,47).addRange(58,59).addRange(63,64).addRange(91,93).addRange(182,183).addRange(1370,1375).addRange(1417,1418).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(3898,3901).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5787,5788).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8208,8231).addRange(8240,8259).addRange(8261,8273).addRange(8275,8286).addRange(8317,8318).addRange(8333,8334).addRange(8968,8971).addRange(9001,9002).addRange(10088,10101).addRange(10181,10182),e.addRange(10214,10223).addRange(10627,10648).addRange(10712,10715).addRange(10748,10749).addRange(11513,11516).addRange(11518,11519).addRange(11776,11822).addRange(11824,11855).addRange(11858,11869).addRange(12289,12291).addRange(12296,12305).addRange(12308,12319).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65290).addRange(65292,65295).addRange(65306,65307).addRange(65311,65312).addRange(65339,65341).addRange(65375,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205),e.addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72448,72457).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(73539,73551).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),P3.characters=e,P3}var A3={},zZ;function RGe(){if(zZ)return A3;zZ=1;var e=ee(32,160,5760,8239,8287,12288);return e.addRange(8192,8202).addRange(8232,8233),A3.characters=e,A3}var I3={},XZ;function EGe(){if(XZ)return I3;XZ=1;var e=ee(32,160,5760,8239,8287,12288);return e.addRange(8192,8202),I3.characters=e,I3}var C3={},JZ;function SGe(){if(JZ)return C3;JZ=1;var e=ee(2307,2363,2519,2563,2691,2761,2878,2880,2903,3031,3262,3315,3415,3967,4145,4152,4239,5909,5940,6070,6741,6743,6753,6916,6965,6971,7042,7073,7082,7143,7150,7393,7415,43047,43395,43597,43643,43645,43755,43765,44012,69632,69634,69762,69932,70018,70094,70197,70487,70725,70841,70849,71102,71230,71340,71350,71462,71736,71997,72e3,72002,72164,72249,72343,72751,72766,72873,72881,72884,73110,73475,73537);return e.addRange(2366,2368).addRange(2377,2380).addRange(2382,2383).addRange(2434,2435).addRange(2494,2496).addRange(2503,2504).addRange(2507,2508).addRange(2622,2624).addRange(2750,2752).addRange(2763,2764).addRange(2818,2819).addRange(2887,2888).addRange(2891,2892).addRange(3006,3007).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3073,3075).addRange(3137,3140).addRange(3202,3203).addRange(3264,3268).addRange(3271,3272).addRange(3274,3275).addRange(3285,3286).addRange(3330,3331).addRange(3390,3392).addRange(3398,3400).addRange(3402,3404).addRange(3458,3459).addRange(3535,3537).addRange(3544,3551).addRange(3570,3571).addRange(3902,3903).addRange(4139,4140).addRange(4155,4156).addRange(4182,4183).addRange(4194,4196).addRange(4199,4205).addRange(4227,4228).addRange(4231,4236).addRange(4250,4252).addRange(6078,6085).addRange(6087,6088).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6681,6682).addRange(6755,6756).addRange(6765,6770).addRange(6973,6977),e.addRange(6979,6980).addRange(7078,7079).addRange(7146,7148).addRange(7154,7155).addRange(7204,7211).addRange(7220,7221).addRange(12334,12335).addRange(43043,43044).addRange(43136,43137).addRange(43188,43203).addRange(43346,43347).addRange(43444,43445).addRange(43450,43451).addRange(43454,43456).addRange(43567,43568).addRange(43571,43572).addRange(43758,43759).addRange(44003,44004).addRange(44006,44007).addRange(44009,44010).addRange(69808,69810).addRange(69815,69816).addRange(69957,69958).addRange(70067,70069).addRange(70079,70080).addRange(70188,70190).addRange(70194,70195).addRange(70368,70370).addRange(70402,70403).addRange(70462,70463).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70709,70711).addRange(70720,70721).addRange(70832,70834).addRange(70843,70846).addRange(71087,71089).addRange(71096,71099).addRange(71216,71218).addRange(71227,71228).addRange(71342,71343).addRange(71456,71457).addRange(71724,71726).addRange(71984,71989).addRange(71991,71992).addRange(72145,72147).addRange(72156,72159).addRange(72279,72280).addRange(73098,73102),e.addRange(73107,73108).addRange(73461,73462).addRange(73524,73525).addRange(73534,73535).addRange(94033,94087).addRange(94192,94193).addRange(119141,119142).addRange(119149,119154),C3.characters=e,C3}var j3={},YZ;function TGe(){if(YZ)return j3;YZ=1;var e=ee();return e.addRange(55296,57343),j3.characters=e,j3}var O3={},QZ;function wGe(){if(QZ)return O3;QZ=1;var e=ee(36,43,94,96,124,126,172,180,184,215,247,749,885,1014,1154,1547,1758,1769,2038,2184,2801,2928,3199,3407,3449,3647,3859,3892,3894,3896,5741,6107,6464,8125,8260,8274,8468,8485,8487,8489,8494,8527,12292,12320,12783,12880,43867,64297,64975,65122,65129,65284,65291,65342,65344,65372,65374,65952,68296,71487,92997,113820,119365,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771,123215,123647,126124,126128,126254,129008);return e.addRange(60,62).addRange(162,166).addRange(168,169).addRange(174,177).addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(1421,1423).addRange(1542,1544).addRange(1550,1551).addRange(1789,1790).addRange(2046,2047).addRange(2546,2547).addRange(2554,2555).addRange(3059,3066).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8314,8316).addRange(8330,8332).addRange(8352,8384).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8472).addRange(8478,8483).addRange(8506,8507).addRange(8512,8516).addRange(8522,8525).addRange(8586,8587).addRange(8592,8967).addRange(8972,9e3).addRange(9003,9254).addRange(9280,9290).addRange(9372,9449),e.addRange(9472,10087).addRange(10132,10180).addRange(10183,10213).addRange(10224,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11123).addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12287).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12443,12444).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43048,43051).addRange(43062,43065).addRange(43639,43641).addRange(43882,43883).addRange(64434,64450).addRange(64832,64847).addRange(65020,65023).addRange(65124,65126).addRange(65308,65310).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73713),e.addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886).addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938),e.addRange(129940,129994),O3.characters=e,O3}var _3={},ZZ;function PGe(){if(ZZ)return _3;ZZ=1;var e=ee(453,456,459,498,8124,8140,8188);return e.addRange(8072,8079).addRange(8088,8095).addRange(8104,8111),_3.characters=e,_3}var N3={},eee;function AGe(){if(eee)return N3;eee=1;var e=ee(907,909,930,1328,1424,1806,2111,2143,2191,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129726,129939);return e.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),e.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951),e.addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646),e.addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12772,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,55295).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503),e.addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471),e.addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69372).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679),e.addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73471).addRange(73531,73533).addRange(73562,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78934,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575),e.addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111).addRange(124154,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208),e.addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128731).addRange(128749,128751).addRange(128765,128767).addRange(128887,128890).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129661,129663).addRange(129673,129679).addRange(129734,129741).addRange(129756,129759).addRange(129769,129775).addRange(129785,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177978,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(205744,917504),e.addRange(917506,917535).addRange(917632,917759).addRange(918e3,983039).addRange(1048574,1048575).addRange(1114110,1114111),N3.characters=e,N3}var k3={},tee;function IGe(){if(tee)return k3;tee=1;var e=ee(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(11264,11311),e.addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217),k3.characters=e,k3}var D3,ree;function CGe(){return ree||(ree=1,D3=new Map([["General_Category",["Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Number","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Symbol","Titlecase_Letter","Unassigned","Uppercase_Letter"]],["Script",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kawi","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nag_Mundari","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Script_Extensions",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kawi","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nag_Mundari","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Binary_Property",["ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]],["Property_of_Strings",["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji","RGI_Emoji_Flag_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence"]]])),D3}var vv={},aee;function jGe(){if(aee)return vv;aee=1;var e=ee(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),vv.characters=e,vv.strings=["©️","®️","‼️","⁉️","™️","ℹ️","↔️","↕️","↖️","↗️","↘️","↙️","↩️","↪️","⌨️","⏏️","⏭️","⏮️","⏯️","⏱️","⏲️","⏸️","⏹️","⏺️","Ⓜ️","▪️","▫️","▶️","◀️","◻️","◼️","☀️","☁️","☂️","☃️","☄️","☎️","☑️","☘️","☝️","☠️","☢️","☣️","☦️","☪️","☮️","☯️","☸️","☹️","☺️","♀️","♂️","♟️","♠️","♣️","♥️","♦️","♨️","♻️","♾️","⚒️","⚔️","⚕️","⚖️","⚗️","⚙️","⚛️","⚜️","⚠️","⚧️","⚰️","⚱️","⛈️","⛏️","⛑️","⛓️","⛩️","⛰️","⛱️","⛴️","⛷️","⛸️","⛹️","✂️","✈️","✉️","✌️","✍️","✏️","✒️","✔️","✖️","✝️","✡️","✳️","✴️","❄️","❇️","❣️","❤️","➡️","⤴️","⤵️","⬅️","⬆️","⬇️","〰️","〽️","㊗️","㊙️","🅰️","🅱️","🅾️","🅿️","🈂️","🈷️","🌡️","🌤️","🌥️","🌦️","🌧️","🌨️","🌩️","🌪️","🌫️","🌬️","🌶️","🍽️","🎖️","🎗️","🎙️","🎚️","🎛️","🎞️","🎟️","🏋️","🏌️","🏍️","🏎️","🏔️","🏕️","🏖️","🏗️","🏘️","🏙️","🏚️","🏛️","🏜️","🏝️","🏞️","🏟️","🏳️","🏵️","🏷️","🐿️","👁️","📽️","🕉️","🕊️","🕯️","🕰️","🕳️","🕴️","🕵️","🕶️","🕷️","🕸️","🕹️","🖇️","🖊️","🖋️","🖌️","🖍️","🖐️","🖥️","🖨️","🖱️","🖲️","🖼️","🗂️","🗃️","🗄️","🗑️","🗒️","🗓️","🗜️","🗝️","🗞️","🗡️","🗣️","🗨️","🗯️","🗳️","🗺️","🛋️","🛍️","🛎️","🛏️","🛠️","🛡️","🛢️","🛣️","🛤️","🛥️","🛩️","🛰️","🛳️"],vv}var bv={},nee;function OGe(){if(nee)return bv;nee=1;var e=ee();return bv.characters=e,bv.strings=["#️⃣","*️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣"],bv}var xv={},see;function _Ge(){if(see)return xv;see=1;var e=ee();return xv.characters=e,xv.strings=["🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼"],xv}var Rv={},iee;function NGe(){if(iee)return Rv;iee=1;var e=ee();return Rv.characters=e,Rv.strings=["☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","🎅🏻","🎅🏼","🎅🏽","🎅🏾","🎅🏿","🏂🏻","🏂🏼","🏂🏽","🏂🏾","🏂🏿","🏃🏻","🏃🏼","🏃🏽","🏃🏾","🏃🏿","🏄🏻","🏄🏼","🏄🏽","🏄🏾","🏄🏿","🏇🏻","🏇🏼","🏇🏽","🏇🏾","🏇🏿","🏊🏻","🏊🏼","🏊🏽","🏊🏾","🏊🏿","🏋🏻","🏋🏼","🏋🏽","🏋🏾","🏋🏿","🏌🏻","🏌🏼","🏌🏽","🏌🏾","🏌🏿","👂🏻","👂🏼","👂🏽","👂🏾","👂🏿","👃🏻","👃🏼","👃🏽","👃🏾","👃🏿","👆🏻","👆🏼","👆🏽","👆🏾","👆🏿","👇🏻","👇🏼","👇🏽","👇🏾","👇🏿","👈🏻","👈🏼","👈🏽","👈🏾","👈🏿","👉🏻","👉🏼","👉🏽","👉🏾","👉🏿","👊🏻","👊🏼","👊🏽","👊🏾","👊🏿","👋🏻","👋🏼","👋🏽","👋🏾","👋🏿","👌🏻","👌🏼","👌🏽","👌🏾","👌🏿","👍🏻","👍🏼","👍🏽","👍🏾","👍🏿","👎🏻","👎🏼","👎🏽","👎🏾","👎🏿","👏🏻","👏🏼","👏🏽","👏🏾","👏🏿","👐🏻","👐🏼","👐🏽","👐🏾","👐🏿","👦🏻","👦🏼","👦🏽","👦🏾","👦🏿","👧🏻","👧🏼","👧🏽","👧🏾","👧🏿","👨🏻","👨🏼","👨🏽","👨🏾","👨🏿","👩🏻","👩🏼","👩🏽","👩🏾","👩🏿","👫🏻","👫🏼","👫🏽","👫🏾","👫🏿","👬🏻","👬🏼","👬🏽","👬🏾","👬🏿","👭🏻","👭🏼","👭🏽","👭🏾","👭🏿","👮🏻","👮🏼","👮🏽","👮🏾","👮🏿","👰🏻","👰🏼","👰🏽","👰🏾","👰🏿","👱🏻","👱🏼","👱🏽","👱🏾","👱🏿","👲🏻","👲🏼","👲🏽","👲🏾","👲🏿","👳🏻","👳🏼","👳🏽","👳🏾","👳🏿","👴🏻","👴🏼","👴🏽","👴🏾","👴🏿","👵🏻","👵🏼","👵🏽","👵🏾","👵🏿","👶🏻","👶🏼","👶🏽","👶🏾","👶🏿","👷🏻","👷🏼","👷🏽","👷🏾","👷🏿","👸🏻","👸🏼","👸🏽","👸🏾","👸🏿","👼🏻","👼🏼","👼🏽","👼🏾","👼🏿","💁🏻","💁🏼","💁🏽","💁🏾","💁🏿","💂🏻","💂🏼","💂🏽","💂🏾","💂🏿","💃🏻","💃🏼","💃🏽","💃🏾","💃🏿","💅🏻","💅🏼","💅🏽","💅🏾","💅🏿","💆🏻","💆🏼","💆🏽","💆🏾","💆🏿","💇🏻","💇🏼","💇🏽","💇🏾","💇🏿","💏🏻","💏🏼","💏🏽","💏🏾","💏🏿","💑🏻","💑🏼","💑🏽","💑🏾","💑🏿","💪🏻","💪🏼","💪🏽","💪🏾","💪🏿","🕴🏻","🕴🏼","🕴🏽","🕴🏾","🕴🏿","🕵🏻","🕵🏼","🕵🏽","🕵🏾","🕵🏿","🕺🏻","🕺🏼","🕺🏽","🕺🏾","🕺🏿","🖐🏻","🖐🏼","🖐🏽","🖐🏾","🖐🏿","🖕🏻","🖕🏼","🖕🏽","🖕🏾","🖕🏿","🖖🏻","🖖🏼","🖖🏽","🖖🏾","🖖🏿","🙅🏻","🙅🏼","🙅🏽","🙅🏾","🙅🏿","🙆🏻","🙆🏼","🙆🏽","🙆🏾","🙆🏿","🙇🏻","🙇🏼","🙇🏽","🙇🏾","🙇🏿","🙋🏻","🙋🏼","🙋🏽","🙋🏾","🙋🏿","🙌🏻","🙌🏼","🙌🏽","🙌🏾","🙌🏿","🙍🏻","🙍🏼","🙍🏽","🙍🏾","🙍🏿","🙎🏻","🙎🏼","🙎🏽","🙎🏾","🙎🏿","🙏🏻","🙏🏼","🙏🏽","🙏🏾","🙏🏿","🚣🏻","🚣🏼","🚣🏽","🚣🏾","🚣🏿","🚴🏻","🚴🏼","🚴🏽","🚴🏾","🚴🏿","🚵🏻","🚵🏼","🚵🏽","🚵🏾","🚵🏿","🚶🏻","🚶🏼","🚶🏽","🚶🏾","🚶🏿","🛀🏻","🛀🏼","🛀🏽","🛀🏾","🛀🏿","🛌🏻","🛌🏼","🛌🏽","🛌🏾","🛌🏿","🤌🏻","🤌🏼","🤌🏽","🤌🏾","🤌🏿","🤏🏻","🤏🏼","🤏🏽","🤏🏾","🤏🏿","🤘🏻","🤘🏼","🤘🏽","🤘🏾","🤘🏿","🤙🏻","🤙🏼","🤙🏽","🤙🏾","🤙🏿","🤚🏻","🤚🏼","🤚🏽","🤚🏾","🤚🏿","🤛🏻","🤛🏼","🤛🏽","🤛🏾","🤛🏿","🤜🏻","🤜🏼","🤜🏽","🤜🏾","🤜🏿","🤝🏻","🤝🏼","🤝🏽","🤝🏾","🤝🏿","🤞🏻","🤞🏼","🤞🏽","🤞🏾","🤞🏿","🤟🏻","🤟🏼","🤟🏽","🤟🏾","🤟🏿","🤦🏻","🤦🏼","🤦🏽","🤦🏾","🤦🏿","🤰🏻","🤰🏼","🤰🏽","🤰🏾","🤰🏿","🤱🏻","🤱🏼","🤱🏽","🤱🏾","🤱🏿","🤲🏻","🤲🏼","🤲🏽","🤲🏾","🤲🏿","🤳🏻","🤳🏼","🤳🏽","🤳🏾","🤳🏿","🤴🏻","🤴🏼","🤴🏽","🤴🏾","🤴🏿","🤵🏻","🤵🏼","🤵🏽","🤵🏾","🤵🏿","🤶🏻","🤶🏼","🤶🏽","🤶🏾","🤶🏿","🤷🏻","🤷🏼","🤷🏽","🤷🏾","🤷🏿","🤸🏻","🤸🏼","🤸🏽","🤸🏾","🤸🏿","🤹🏻","🤹🏼","🤹🏽","🤹🏾","🤹🏿","🤽🏻","🤽🏼","🤽🏽","🤽🏾","🤽🏿","🤾🏻","🤾🏼","🤾🏽","🤾🏾","🤾🏿","🥷🏻","🥷🏼","🥷🏽","🥷🏾","🥷🏿","🦵🏻","🦵🏼","🦵🏽","🦵🏾","🦵🏿","🦶🏻","🦶🏼","🦶🏽","🦶🏾","🦶🏿","🦸🏻","🦸🏼","🦸🏽","🦸🏾","🦸🏿","🦹🏻","🦹🏼","🦹🏽","🦹🏾","🦹🏿","🦻🏻","🦻🏼","🦻🏽","🦻🏾","🦻🏿","🧍🏻","🧍🏼","🧍🏽","🧍🏾","🧍🏿","🧎🏻","🧎🏼","🧎🏽","🧎🏾","🧎🏿","🧏🏻","🧏🏼","🧏🏽","🧏🏾","🧏🏿","🧑🏻","🧑🏼","🧑🏽","🧑🏾","🧑🏿","🧒🏻","🧒🏼","🧒🏽","🧒🏾","🧒🏿","🧓🏻","🧓🏼","🧓🏽","🧓🏾","🧓🏿","🧔🏻","🧔🏼","🧔🏽","🧔🏾","🧔🏿","🧕🏻","🧕🏼","🧕🏽","🧕🏾","🧕🏿","🧖🏻","🧖🏼","🧖🏽","🧖🏾","🧖🏿","🧗🏻","🧗🏼","🧗🏽","🧗🏾","🧗🏿","🧘🏻","🧘🏼","🧘🏽","🧘🏾","🧘🏿","🧙🏻","🧙🏼","🧙🏽","🧙🏾","🧙🏿","🧚🏻","🧚🏼","🧚🏽","🧚🏾","🧚🏿","🧛🏻","🧛🏼","🧛🏽","🧛🏾","🧛🏿","🧜🏻","🧜🏼","🧜🏽","🧜🏾","🧜🏿","🧝🏻","🧝🏼","🧝🏽","🧝🏾","🧝🏿","🫃🏻","🫃🏼","🫃🏽","🫃🏾","🫃🏿","🫄🏻","🫄🏼","🫄🏽","🫄🏾","🫄🏿","🫅🏻","🫅🏼","🫅🏽","🫅🏾","🫅🏿","🫰🏻","🫰🏼","🫰🏽","🫰🏾","🫰🏿","🫱🏻","🫱🏼","🫱🏽","🫱🏾","🫱🏿","🫲🏻","🫲🏼","🫲🏽","🫲🏾","🫲🏿","🫳🏻","🫳🏼","🫳🏽","🫳🏾","🫳🏿","🫴🏻","🫴🏼","🫴🏽","🫴🏾","🫴🏿","🫵🏻","🫵🏼","🫵🏽","🫵🏾","🫵🏿","🫶🏻","🫶🏼","🫶🏽","🫶🏾","🫶🏿","🫷🏻","🫷🏼","🫷🏽","🫷🏾","🫷🏿","🫸🏻","🫸🏼","🫸🏽","🫸🏾","🫸🏿"],Rv}var Ev={},oee;function kGe(){if(oee)return Ev;oee=1;var e=ee();return Ev.characters=e,Ev.strings=["🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴󠁧󠁢󠁳󠁣󠁴󠁿","🏴󠁧󠁢󠁷󠁬󠁳󠁿"],Ev}var Sv={},lee;function DGe(){if(lee)return Sv;lee=1;var e=ee();return Sv.characters=e,Sv.strings=["👨‍❤️‍👨","👨‍❤️‍💋‍👨","👨‍👦","👨‍👦‍👦","👨‍👧","👨‍👧‍👦","👨‍👧‍👧","👨‍👨‍👦","👨‍👨‍👦‍👦","👨‍👨‍👧","👨‍👨‍👧‍👦","👨‍👨‍👧‍👧","👨‍👩‍👦","👨‍👩‍👦‍👦","👨‍👩‍👧","👨‍👩‍👧‍👦","👨‍👩‍👧‍👧","👨🏻‍❤️‍👨🏻","👨🏻‍❤️‍👨🏼","👨🏻‍❤️‍👨🏽","👨🏻‍❤️‍👨🏾","👨🏻‍❤️‍👨🏿","👨🏻‍❤️‍💋‍👨🏻","👨🏻‍❤️‍💋‍👨🏼","👨🏻‍❤️‍💋‍👨🏽","👨🏻‍❤️‍💋‍👨🏾","👨🏻‍❤️‍💋‍👨🏿","👨🏻‍🤝‍👨🏼","👨🏻‍🤝‍👨🏽","👨🏻‍🤝‍👨🏾","👨🏻‍🤝‍👨🏿","👨🏼‍❤️‍👨🏻","👨🏼‍❤️‍👨🏼","👨🏼‍❤️‍👨🏽","👨🏼‍❤️‍👨🏾","👨🏼‍❤️‍👨🏿","👨🏼‍❤️‍💋‍👨🏻","👨🏼‍❤️‍💋‍👨🏼","👨🏼‍❤️‍💋‍👨🏽","👨🏼‍❤️‍💋‍👨🏾","👨🏼‍❤️‍💋‍👨🏿","👨🏼‍🤝‍👨🏻","👨🏼‍🤝‍👨🏽","👨🏼‍🤝‍👨🏾","👨🏼‍🤝‍👨🏿","👨🏽‍❤️‍👨🏻","👨🏽‍❤️‍👨🏼","👨🏽‍❤️‍👨🏽","👨🏽‍❤️‍👨🏾","👨🏽‍❤️‍👨🏿","👨🏽‍❤️‍💋‍👨🏻","👨🏽‍❤️‍💋‍👨🏼","👨🏽‍❤️‍💋‍👨🏽","👨🏽‍❤️‍💋‍👨🏾","👨🏽‍❤️‍💋‍👨🏿","👨🏽‍🤝‍👨🏻","👨🏽‍🤝‍👨🏼","👨🏽‍🤝‍👨🏾","👨🏽‍🤝‍👨🏿","👨🏾‍❤️‍👨🏻","👨🏾‍❤️‍👨🏼","👨🏾‍❤️‍👨🏽","👨🏾‍❤️‍👨🏾","👨🏾‍❤️‍👨🏿","👨🏾‍❤️‍💋‍👨🏻","👨🏾‍❤️‍💋‍👨🏼","👨🏾‍❤️‍💋‍👨🏽","👨🏾‍❤️‍💋‍👨🏾","👨🏾‍❤️‍💋‍👨🏿","👨🏾‍🤝‍👨🏻","👨🏾‍🤝‍👨🏼","👨🏾‍🤝‍👨🏽","👨🏾‍🤝‍👨🏿","👨🏿‍❤️‍👨🏻","👨🏿‍❤️‍👨🏼","👨🏿‍❤️‍👨🏽","👨🏿‍❤️‍👨🏾","👨🏿‍❤️‍👨🏿","👨🏿‍❤️‍💋‍👨🏻","👨🏿‍❤️‍💋‍👨🏼","👨🏿‍❤️‍💋‍👨🏽","👨🏿‍❤️‍💋‍👨🏾","👨🏿‍❤️‍💋‍👨🏿","👨🏿‍🤝‍👨🏻","👨🏿‍🤝‍👨🏼","👨🏿‍🤝‍👨🏽","👨🏿‍🤝‍👨🏾","👩‍❤️‍👨","👩‍❤️‍👩","👩‍❤️‍💋‍👨","👩‍❤️‍💋‍👩","👩‍👦","👩‍👦‍👦","👩‍👧","👩‍👧‍👦","👩‍👧‍👧","👩‍👩‍👦","👩‍👩‍👦‍👦","👩‍👩‍👧","👩‍👩‍👧‍👦","👩‍👩‍👧‍👧","👩🏻‍❤️‍👨🏻","👩🏻‍❤️‍👨🏼","👩🏻‍❤️‍👨🏽","👩🏻‍❤️‍👨🏾","👩🏻‍❤️‍👨🏿","👩🏻‍❤️‍👩🏻","👩🏻‍❤️‍👩🏼","👩🏻‍❤️‍👩🏽","👩🏻‍❤️‍👩🏾","👩🏻‍❤️‍👩🏿","👩🏻‍❤️‍💋‍👨🏻","👩🏻‍❤️‍💋‍👨🏼","👩🏻‍❤️‍💋‍👨🏽","👩🏻‍❤️‍💋‍👨🏾","👩🏻‍❤️‍💋‍👨🏿","👩🏻‍❤️‍💋‍👩🏻","👩🏻‍❤️‍💋‍👩🏼","👩🏻‍❤️‍💋‍👩🏽","👩🏻‍❤️‍💋‍👩🏾","👩🏻‍❤️‍💋‍👩🏿","👩🏻‍🤝‍👨🏼","👩🏻‍🤝‍👨🏽","👩🏻‍🤝‍👨🏾","👩🏻‍🤝‍👨🏿","👩🏻‍🤝‍👩🏼","👩🏻‍🤝‍👩🏽","👩🏻‍🤝‍👩🏾","👩🏻‍🤝‍👩🏿","👩🏼‍❤️‍👨🏻","👩🏼‍❤️‍👨🏼","👩🏼‍❤️‍👨🏽","👩🏼‍❤️‍👨🏾","👩🏼‍❤️‍👨🏿","👩🏼‍❤️‍👩🏻","👩🏼‍❤️‍👩🏼","👩🏼‍❤️‍👩🏽","👩🏼‍❤️‍👩🏾","👩🏼‍❤️‍👩🏿","👩🏼‍❤️‍💋‍👨🏻","👩🏼‍❤️‍💋‍👨🏼","👩🏼‍❤️‍💋‍👨🏽","👩🏼‍❤️‍💋‍👨🏾","👩🏼‍❤️‍💋‍👨🏿","👩🏼‍❤️‍💋‍👩🏻","👩🏼‍❤️‍💋‍👩🏼","👩🏼‍❤️‍💋‍👩🏽","👩🏼‍❤️‍💋‍👩🏾","👩🏼‍❤️‍💋‍👩🏿","👩🏼‍🤝‍👨🏻","👩🏼‍🤝‍👨🏽","👩🏼‍🤝‍👨🏾","👩🏼‍🤝‍👨🏿","👩🏼‍🤝‍👩🏻","👩🏼‍🤝‍👩🏽","👩🏼‍🤝‍👩🏾","👩🏼‍🤝‍👩🏿","👩🏽‍❤️‍👨🏻","👩🏽‍❤️‍👨🏼","👩🏽‍❤️‍👨🏽","👩🏽‍❤️‍👨🏾","👩🏽‍❤️‍👨🏿","👩🏽‍❤️‍👩🏻","👩🏽‍❤️‍👩🏼","👩🏽‍❤️‍👩🏽","👩🏽‍❤️‍👩🏾","👩🏽‍❤️‍👩🏿","👩🏽‍❤️‍💋‍👨🏻","👩🏽‍❤️‍💋‍👨🏼","👩🏽‍❤️‍💋‍👨🏽","👩🏽‍❤️‍💋‍👨🏾","👩🏽‍❤️‍💋‍👨🏿","👩🏽‍❤️‍💋‍👩🏻","👩🏽‍❤️‍💋‍👩🏼","👩🏽‍❤️‍💋‍👩🏽","👩🏽‍❤️‍💋‍👩🏾","👩🏽‍❤️‍💋‍👩🏿","👩🏽‍🤝‍👨🏻","👩🏽‍🤝‍👨🏼","👩🏽‍🤝‍👨🏾","👩🏽‍🤝‍👨🏿","👩🏽‍🤝‍👩🏻","👩🏽‍🤝‍👩🏼","👩🏽‍🤝‍👩🏾","👩🏽‍🤝‍👩🏿","👩🏾‍❤️‍👨🏻","👩🏾‍❤️‍👨🏼","👩🏾‍❤️‍👨🏽","👩🏾‍❤️‍👨🏾","👩🏾‍❤️‍👨🏿","👩🏾‍❤️‍👩🏻","👩🏾‍❤️‍👩🏼","👩🏾‍❤️‍👩🏽","👩🏾‍❤️‍👩🏾","👩🏾‍❤️‍👩🏿","👩🏾‍❤️‍💋‍👨🏻","👩🏾‍❤️‍💋‍👨🏼","👩🏾‍❤️‍💋‍👨🏽","👩🏾‍❤️‍💋‍👨🏾","👩🏾‍❤️‍💋‍👨🏿","👩🏾‍❤️‍💋‍👩🏻","👩🏾‍❤️‍💋‍👩🏼","👩🏾‍❤️‍💋‍👩🏽","👩🏾‍❤️‍💋‍👩🏾","👩🏾‍❤️‍💋‍👩🏿","👩🏾‍🤝‍👨🏻","👩🏾‍🤝‍👨🏼","👩🏾‍🤝‍👨🏽","👩🏾‍🤝‍👨🏿","👩🏾‍🤝‍👩🏻","👩🏾‍🤝‍👩🏼","👩🏾‍🤝‍👩🏽","👩🏾‍🤝‍👩🏿","👩🏿‍❤️‍👨🏻","👩🏿‍❤️‍👨🏼","👩🏿‍❤️‍👨🏽","👩🏿‍❤️‍👨🏾","👩🏿‍❤️‍👨🏿","👩🏿‍❤️‍👩🏻","👩🏿‍❤️‍👩🏼","👩🏿‍❤️‍👩🏽","👩🏿‍❤️‍👩🏾","👩🏿‍❤️‍👩🏿","👩🏿‍❤️‍💋‍👨🏻","👩🏿‍❤️‍💋‍👨🏼","👩🏿‍❤️‍💋‍👨🏽","👩🏿‍❤️‍💋‍👨🏾","👩🏿‍❤️‍💋‍👨🏿","👩🏿‍❤️‍💋‍👩🏻","👩🏿‍❤️‍💋‍👩🏼","👩🏿‍❤️‍💋‍👩🏽","👩🏿‍❤️‍💋‍👩🏾","👩🏿‍❤️‍💋‍👩🏿","👩🏿‍🤝‍👨🏻","👩🏿‍🤝‍👨🏼","👩🏿‍🤝‍👨🏽","👩🏿‍🤝‍👨🏾","👩🏿‍🤝‍👩🏻","👩🏿‍🤝‍👩🏼","👩🏿‍🤝‍👩🏽","👩🏿‍🤝‍👩🏾","🧑‍🤝‍🧑","🧑‍🧑‍🧒","🧑‍🧑‍🧒‍🧒","🧑‍🧒","🧑‍🧒‍🧒","🧑🏻‍❤️‍💋‍🧑🏼","🧑🏻‍❤️‍💋‍🧑🏽","🧑🏻‍❤️‍💋‍🧑🏾","🧑🏻‍❤️‍💋‍🧑🏿","🧑🏻‍❤️‍🧑🏼","🧑🏻‍❤️‍🧑🏽","🧑🏻‍❤️‍🧑🏾","🧑🏻‍❤️‍🧑🏿","🧑🏻‍🤝‍🧑🏻","🧑🏻‍🤝‍🧑🏼","🧑🏻‍🤝‍🧑🏽","🧑🏻‍🤝‍🧑🏾","🧑🏻‍🤝‍🧑🏿","🧑🏼‍❤️‍💋‍🧑🏻","🧑🏼‍❤️‍💋‍🧑🏽","🧑🏼‍❤️‍💋‍🧑🏾","🧑🏼‍❤️‍💋‍🧑🏿","🧑🏼‍❤️‍🧑🏻","🧑🏼‍❤️‍🧑🏽","🧑🏼‍❤️‍🧑🏾","🧑🏼‍❤️‍🧑🏿","🧑🏼‍🤝‍🧑🏻","🧑🏼‍🤝‍🧑🏼","🧑🏼‍🤝‍🧑🏽","🧑🏼‍🤝‍🧑🏾","🧑🏼‍🤝‍🧑🏿","🧑🏽‍❤️‍💋‍🧑🏻","🧑🏽‍❤️‍💋‍🧑🏼","🧑🏽‍❤️‍💋‍🧑🏾","🧑🏽‍❤️‍💋‍🧑🏿","🧑🏽‍❤️‍🧑🏻","🧑🏽‍❤️‍🧑🏼","🧑🏽‍❤️‍🧑🏾","🧑🏽‍❤️‍🧑🏿","🧑🏽‍🤝‍🧑🏻","🧑🏽‍🤝‍🧑🏼","🧑🏽‍🤝‍🧑🏽","🧑🏽‍🤝‍🧑🏾","🧑🏽‍🤝‍🧑🏿","🧑🏾‍❤️‍💋‍🧑🏻","🧑🏾‍❤️‍💋‍🧑🏼","🧑🏾‍❤️‍💋‍🧑🏽","🧑🏾‍❤️‍💋‍🧑🏿","🧑🏾‍❤️‍🧑🏻","🧑🏾‍❤️‍🧑🏼","🧑🏾‍❤️‍🧑🏽","🧑🏾‍❤️‍🧑🏿","🧑🏾‍🤝‍🧑🏻","🧑🏾‍🤝‍🧑🏼","🧑🏾‍🤝‍🧑🏽","🧑🏾‍🤝‍🧑🏾","🧑🏾‍🤝‍🧑🏿","🧑🏿‍❤️‍💋‍🧑🏻","🧑🏿‍❤️‍💋‍🧑🏼","🧑🏿‍❤️‍💋‍🧑🏽","🧑🏿‍❤️‍💋‍🧑🏾","🧑🏿‍❤️‍🧑🏻","🧑🏿‍❤️‍🧑🏼","🧑🏿‍❤️‍🧑🏽","🧑🏿‍❤️‍🧑🏾","🧑🏿‍🤝‍🧑🏻","🧑🏿‍🤝‍🧑🏼","🧑🏿‍🤝‍🧑🏽","🧑🏿‍🤝‍🧑🏾","🧑🏿‍🤝‍🧑🏿","🫱🏻‍🫲🏼","🫱🏻‍🫲🏽","🫱🏻‍🫲🏾","🫱🏻‍🫲🏿","🫱🏼‍🫲🏻","🫱🏼‍🫲🏽","🫱🏼‍🫲🏾","🫱🏼‍🫲🏿","🫱🏽‍🫲🏻","🫱🏽‍🫲🏼","🫱🏽‍🫲🏾","🫱🏽‍🫲🏿","🫱🏾‍🫲🏻","🫱🏾‍🫲🏼","🫱🏾‍🫲🏽","🫱🏾‍🫲🏿","🫱🏿‍🫲🏻","🫱🏿‍🫲🏼","🫱🏿‍🫲🏽","🫱🏿‍🫲🏾","🏃‍➡️","🏃🏻‍➡️","🏃🏼‍➡️","🏃🏽‍➡️","🏃🏾‍➡️","🏃🏿‍➡️","👨‍⚕️","👨‍⚖️","👨‍✈️","👨‍🌾","👨‍🍳","👨‍🍼","👨‍🎓","👨‍🎤","👨‍🎨","👨‍🏫","👨‍🏭","👨‍💻","👨‍💼","👨‍🔧","👨‍🔬","👨‍🚀","👨‍🚒","👨‍🦯","👨‍🦯‍➡️","👨‍🦼","👨‍🦼‍➡️","👨‍🦽","👨‍🦽‍➡️","👨🏻‍⚕️","👨🏻‍⚖️","👨🏻‍✈️","👨🏻‍🌾","👨🏻‍🍳","👨🏻‍🍼","👨🏻‍🎓","👨🏻‍🎤","👨🏻‍🎨","👨🏻‍🏫","👨🏻‍🏭","👨🏻‍💻","👨🏻‍💼","👨🏻‍🔧","👨🏻‍🔬","👨🏻‍🚀","👨🏻‍🚒","👨🏻‍🦯","👨🏻‍🦯‍➡️","👨🏻‍🦼","👨🏻‍🦼‍➡️","👨🏻‍🦽","👨🏻‍🦽‍➡️","👨🏼‍⚕️","👨🏼‍⚖️","👨🏼‍✈️","👨🏼‍🌾","👨🏼‍🍳","👨🏼‍🍼","👨🏼‍🎓","👨🏼‍🎤","👨🏼‍🎨","👨🏼‍🏫","👨🏼‍🏭","👨🏼‍💻","👨🏼‍💼","👨🏼‍🔧","👨🏼‍🔬","👨🏼‍🚀","👨🏼‍🚒","👨🏼‍🦯","👨🏼‍🦯‍➡️","👨🏼‍🦼","👨🏼‍🦼‍➡️","👨🏼‍🦽","👨🏼‍🦽‍➡️","👨🏽‍⚕️","👨🏽‍⚖️","👨🏽‍✈️","👨🏽‍🌾","👨🏽‍🍳","👨🏽‍🍼","👨🏽‍🎓","👨🏽‍🎤","👨🏽‍🎨","👨🏽‍🏫","👨🏽‍🏭","👨🏽‍💻","👨🏽‍💼","👨🏽‍🔧","👨🏽‍🔬","👨🏽‍🚀","👨🏽‍🚒","👨🏽‍🦯","👨🏽‍🦯‍➡️","👨🏽‍🦼","👨🏽‍🦼‍➡️","👨🏽‍🦽","👨🏽‍🦽‍➡️","👨🏾‍⚕️","👨🏾‍⚖️","👨🏾‍✈️","👨🏾‍🌾","👨🏾‍🍳","👨🏾‍🍼","👨🏾‍🎓","👨🏾‍🎤","👨🏾‍🎨","👨🏾‍🏫","👨🏾‍🏭","👨🏾‍💻","👨🏾‍💼","👨🏾‍🔧","👨🏾‍🔬","👨🏾‍🚀","👨🏾‍🚒","👨🏾‍🦯","👨🏾‍🦯‍➡️","👨🏾‍🦼","👨🏾‍🦼‍➡️","👨🏾‍🦽","👨🏾‍🦽‍➡️","👨🏿‍⚕️","👨🏿‍⚖️","👨🏿‍✈️","👨🏿‍🌾","👨🏿‍🍳","👨🏿‍🍼","👨🏿‍🎓","👨🏿‍🎤","👨🏿‍🎨","👨🏿‍🏫","👨🏿‍🏭","👨🏿‍💻","👨🏿‍💼","👨🏿‍🔧","👨🏿‍🔬","👨🏿‍🚀","👨🏿‍🚒","👨🏿‍🦯","👨🏿‍🦯‍➡️","👨🏿‍🦼","👨🏿‍🦼‍➡️","👨🏿‍🦽","👨🏿‍🦽‍➡️","👩‍⚕️","👩‍⚖️","👩‍✈️","👩‍🌾","👩‍🍳","👩‍🍼","👩‍🎓","👩‍🎤","👩‍🎨","👩‍🏫","👩‍🏭","👩‍💻","👩‍💼","👩‍🔧","👩‍🔬","👩‍🚀","👩‍🚒","👩‍🦯","👩‍🦯‍➡️","👩‍🦼","👩‍🦼‍➡️","👩‍🦽","👩‍🦽‍➡️","👩🏻‍⚕️","👩🏻‍⚖️","👩🏻‍✈️","👩🏻‍🌾","👩🏻‍🍳","👩🏻‍🍼","👩🏻‍🎓","👩🏻‍🎤","👩🏻‍🎨","👩🏻‍🏫","👩🏻‍🏭","👩🏻‍💻","👩🏻‍💼","👩🏻‍🔧","👩🏻‍🔬","👩🏻‍🚀","👩🏻‍🚒","👩🏻‍🦯","👩🏻‍🦯‍➡️","👩🏻‍🦼","👩🏻‍🦼‍➡️","👩🏻‍🦽","👩🏻‍🦽‍➡️","👩🏼‍⚕️","👩🏼‍⚖️","👩🏼‍✈️","👩🏼‍🌾","👩🏼‍🍳","👩🏼‍🍼","👩🏼‍🎓","👩🏼‍🎤","👩🏼‍🎨","👩🏼‍🏫","👩🏼‍🏭","👩🏼‍💻","👩🏼‍💼","👩🏼‍🔧","👩🏼‍🔬","👩🏼‍🚀","👩🏼‍🚒","👩🏼‍🦯","👩🏼‍🦯‍➡️","👩🏼‍🦼","👩🏼‍🦼‍➡️","👩🏼‍🦽","👩🏼‍🦽‍➡️","👩🏽‍⚕️","👩🏽‍⚖️","👩🏽‍✈️","👩🏽‍🌾","👩🏽‍🍳","👩🏽‍🍼","👩🏽‍🎓","👩🏽‍🎤","👩🏽‍🎨","👩🏽‍🏫","👩🏽‍🏭","👩🏽‍💻","👩🏽‍💼","👩🏽‍🔧","👩🏽‍🔬","👩🏽‍🚀","👩🏽‍🚒","👩🏽‍🦯","👩🏽‍🦯‍➡️","👩🏽‍🦼","👩🏽‍🦼‍➡️","👩🏽‍🦽","👩🏽‍🦽‍➡️","👩🏾‍⚕️","👩🏾‍⚖️","👩🏾‍✈️","👩🏾‍🌾","👩🏾‍🍳","👩🏾‍🍼","👩🏾‍🎓","👩🏾‍🎤","👩🏾‍🎨","👩🏾‍🏫","👩🏾‍🏭","👩🏾‍💻","👩🏾‍💼","👩🏾‍🔧","👩🏾‍🔬","👩🏾‍🚀","👩🏾‍🚒","👩🏾‍🦯","👩🏾‍🦯‍➡️","👩🏾‍🦼","👩🏾‍🦼‍➡️","👩🏾‍🦽","👩🏾‍🦽‍➡️","👩🏿‍⚕️","👩🏿‍⚖️","👩🏿‍✈️","👩🏿‍🌾","👩🏿‍🍳","👩🏿‍🍼","👩🏿‍🎓","👩🏿‍🎤","👩🏿‍🎨","👩🏿‍🏫","👩🏿‍🏭","👩🏿‍💻","👩🏿‍💼","👩🏿‍🔧","👩🏿‍🔬","👩🏿‍🚀","👩🏿‍🚒","👩🏿‍🦯","👩🏿‍🦯‍➡️","👩🏿‍🦼","👩🏿‍🦼‍➡️","👩🏿‍🦽","👩🏿‍🦽‍➡️","🚶‍➡️","🚶🏻‍➡️","🚶🏼‍➡️","🚶🏽‍➡️","🚶🏾‍➡️","🚶🏿‍➡️","🧎‍➡️","🧎🏻‍➡️","🧎🏼‍➡️","🧎🏽‍➡️","🧎🏾‍➡️","🧎🏿‍➡️","🧑‍⚕️","🧑‍⚖️","🧑‍✈️","🧑‍🌾","🧑‍🍳","🧑‍🍼","🧑‍🎄","🧑‍🎓","🧑‍🎤","🧑‍🎨","🧑‍🏫","🧑‍🏭","🧑‍💻","🧑‍💼","🧑‍🔧","🧑‍🔬","🧑‍🚀","🧑‍🚒","🧑‍🦯","🧑‍🦯‍➡️","🧑‍🦼","🧑‍🦼‍➡️","🧑‍🦽","🧑‍🦽‍➡️","🧑🏻‍⚕️","🧑🏻‍⚖️","🧑🏻‍✈️","🧑🏻‍🌾","🧑🏻‍🍳","🧑🏻‍🍼","🧑🏻‍🎄","🧑🏻‍🎓","🧑🏻‍🎤","🧑🏻‍🎨","🧑🏻‍🏫","🧑🏻‍🏭","🧑🏻‍💻","🧑🏻‍💼","🧑🏻‍🔧","🧑🏻‍🔬","🧑🏻‍🚀","🧑🏻‍🚒","🧑🏻‍🦯","🧑🏻‍🦯‍➡️","🧑🏻‍🦼","🧑🏻‍🦼‍➡️","🧑🏻‍🦽","🧑🏻‍🦽‍➡️","🧑🏼‍⚕️","🧑🏼‍⚖️","🧑🏼‍✈️","🧑🏼‍🌾","🧑🏼‍🍳","🧑🏼‍🍼","🧑🏼‍🎄","🧑🏼‍🎓","🧑🏼‍🎤","🧑🏼‍🎨","🧑🏼‍🏫","🧑🏼‍🏭","🧑🏼‍💻","🧑🏼‍💼","🧑🏼‍🔧","🧑🏼‍🔬","🧑🏼‍🚀","🧑🏼‍🚒","🧑🏼‍🦯","🧑🏼‍🦯‍➡️","🧑🏼‍🦼","🧑🏼‍🦼‍➡️","🧑🏼‍🦽","🧑🏼‍🦽‍➡️","🧑🏽‍⚕️","🧑🏽‍⚖️","🧑🏽‍✈️","🧑🏽‍🌾","🧑🏽‍🍳","🧑🏽‍🍼","🧑🏽‍🎄","🧑🏽‍🎓","🧑🏽‍🎤","🧑🏽‍🎨","🧑🏽‍🏫","🧑🏽‍🏭","🧑🏽‍💻","🧑🏽‍💼","🧑🏽‍🔧","🧑🏽‍🔬","🧑🏽‍🚀","🧑🏽‍🚒","🧑🏽‍🦯","🧑🏽‍🦯‍➡️","🧑🏽‍🦼","🧑🏽‍🦼‍➡️","🧑🏽‍🦽","🧑🏽‍🦽‍➡️","🧑🏾‍⚕️","🧑🏾‍⚖️","🧑🏾‍✈️","🧑🏾‍🌾","🧑🏾‍🍳","🧑🏾‍🍼","🧑🏾‍🎄","🧑🏾‍🎓","🧑🏾‍🎤","🧑🏾‍🎨","🧑🏾‍🏫","🧑🏾‍🏭","🧑🏾‍💻","🧑🏾‍💼","🧑🏾‍🔧","🧑🏾‍🔬","🧑🏾‍🚀","🧑🏾‍🚒","🧑🏾‍🦯","🧑🏾‍🦯‍➡️","🧑🏾‍🦼","🧑🏾‍🦼‍➡️","🧑🏾‍🦽","🧑🏾‍🦽‍➡️","🧑🏿‍⚕️","🧑🏿‍⚖️","🧑🏿‍✈️","🧑🏿‍🌾","🧑🏿‍🍳","🧑🏿‍🍼","🧑🏿‍🎄","🧑🏿‍🎓","🧑🏿‍🎤","🧑🏿‍🎨","🧑🏿‍🏫","🧑🏿‍🏭","🧑🏿‍💻","🧑🏿‍💼","🧑🏿‍🔧","🧑🏿‍🔬","🧑🏿‍🚀","🧑🏿‍🚒","🧑🏿‍🦯","🧑🏿‍🦯‍➡️","🧑🏿‍🦼","🧑🏿‍🦼‍➡️","🧑🏿‍🦽","🧑🏿‍🦽‍➡️","⛹🏻‍♀️","⛹🏻‍♂️","⛹🏼‍♀️","⛹🏼‍♂️","⛹🏽‍♀️","⛹🏽‍♂️","⛹🏾‍♀️","⛹🏾‍♂️","⛹🏿‍♀️","⛹🏿‍♂️","⛹️‍♀️","⛹️‍♂️","🏃‍♀️","🏃‍♀️‍➡️","🏃‍♂️","🏃‍♂️‍➡️","🏃🏻‍♀️","🏃🏻‍♀️‍➡️","🏃🏻‍♂️","🏃🏻‍♂️‍➡️","🏃🏼‍♀️","🏃🏼‍♀️‍➡️","🏃🏼‍♂️","🏃🏼‍♂️‍➡️","🏃🏽‍♀️","🏃🏽‍♀️‍➡️","🏃🏽‍♂️","🏃🏽‍♂️‍➡️","🏃🏾‍♀️","🏃🏾‍♀️‍➡️","🏃🏾‍♂️","🏃🏾‍♂️‍➡️","🏃🏿‍♀️","🏃🏿‍♀️‍➡️","🏃🏿‍♂️","🏃🏿‍♂️‍➡️","🏄‍♀️","🏄‍♂️","🏄🏻‍♀️","🏄🏻‍♂️","🏄🏼‍♀️","🏄🏼‍♂️","🏄🏽‍♀️","🏄🏽‍♂️","🏄🏾‍♀️","🏄🏾‍♂️","🏄🏿‍♀️","🏄🏿‍♂️","🏊‍♀️","🏊‍♂️","🏊🏻‍♀️","🏊🏻‍♂️","🏊🏼‍♀️","🏊🏼‍♂️","🏊🏽‍♀️","🏊🏽‍♂️","🏊🏾‍♀️","🏊🏾‍♂️","🏊🏿‍♀️","🏊🏿‍♂️","🏋🏻‍♀️","🏋🏻‍♂️","🏋🏼‍♀️","🏋🏼‍♂️","🏋🏽‍♀️","🏋🏽‍♂️","🏋🏾‍♀️","🏋🏾‍♂️","🏋🏿‍♀️","🏋🏿‍♂️","🏋️‍♀️","🏋️‍♂️","🏌🏻‍♀️","🏌🏻‍♂️","🏌🏼‍♀️","🏌🏼‍♂️","🏌🏽‍♀️","🏌🏽‍♂️","🏌🏾‍♀️","🏌🏾‍♂️","🏌🏿‍♀️","🏌🏿‍♂️","🏌️‍♀️","🏌️‍♂️","👮‍♀️","👮‍♂️","👮🏻‍♀️","👮🏻‍♂️","👮🏼‍♀️","👮🏼‍♂️","👮🏽‍♀️","👮🏽‍♂️","👮🏾‍♀️","👮🏾‍♂️","👮🏿‍♀️","👮🏿‍♂️","👯‍♀️","👯‍♂️","👰‍♀️","👰‍♂️","👰🏻‍♀️","👰🏻‍♂️","👰🏼‍♀️","👰🏼‍♂️","👰🏽‍♀️","👰🏽‍♂️","👰🏾‍♀️","👰🏾‍♂️","👰🏿‍♀️","👰🏿‍♂️","👱‍♀️","👱‍♂️","👱🏻‍♀️","👱🏻‍♂️","👱🏼‍♀️","👱🏼‍♂️","👱🏽‍♀️","👱🏽‍♂️","👱🏾‍♀️","👱🏾‍♂️","👱🏿‍♀️","👱🏿‍♂️","👳‍♀️","👳‍♂️","👳🏻‍♀️","👳🏻‍♂️","👳🏼‍♀️","👳🏼‍♂️","👳🏽‍♀️","👳🏽‍♂️","👳🏾‍♀️","👳🏾‍♂️","👳🏿‍♀️","👳🏿‍♂️","👷‍♀️","👷‍♂️","👷🏻‍♀️","👷🏻‍♂️","👷🏼‍♀️","👷🏼‍♂️","👷🏽‍♀️","👷🏽‍♂️","👷🏾‍♀️","👷🏾‍♂️","👷🏿‍♀️","👷🏿‍♂️","💁‍♀️","💁‍♂️","💁🏻‍♀️","💁🏻‍♂️","💁🏼‍♀️","💁🏼‍♂️","💁🏽‍♀️","💁🏽‍♂️","💁🏾‍♀️","💁🏾‍♂️","💁🏿‍♀️","💁🏿‍♂️","💂‍♀️","💂‍♂️","💂🏻‍♀️","💂🏻‍♂️","💂🏼‍♀️","💂🏼‍♂️","💂🏽‍♀️","💂🏽‍♂️","💂🏾‍♀️","💂🏾‍♂️","💂🏿‍♀️","💂🏿‍♂️","💆‍♀️","💆‍♂️","💆🏻‍♀️","💆🏻‍♂️","💆🏼‍♀️","💆🏼‍♂️","💆🏽‍♀️","💆🏽‍♂️","💆🏾‍♀️","💆🏾‍♂️","💆🏿‍♀️","💆🏿‍♂️","💇‍♀️","💇‍♂️","💇🏻‍♀️","💇🏻‍♂️","💇🏼‍♀️","💇🏼‍♂️","💇🏽‍♀️","💇🏽‍♂️","💇🏾‍♀️","💇🏾‍♂️","💇🏿‍♀️","💇🏿‍♂️","🕵🏻‍♀️","🕵🏻‍♂️","🕵🏼‍♀️","🕵🏼‍♂️","🕵🏽‍♀️","🕵🏽‍♂️","🕵🏾‍♀️","🕵🏾‍♂️","🕵🏿‍♀️","🕵🏿‍♂️","🕵️‍♀️","🕵️‍♂️","🙅‍♀️","🙅‍♂️","🙅🏻‍♀️","🙅🏻‍♂️","🙅🏼‍♀️","🙅🏼‍♂️","🙅🏽‍♀️","🙅🏽‍♂️","🙅🏾‍♀️","🙅🏾‍♂️","🙅🏿‍♀️","🙅🏿‍♂️","🙆‍♀️","🙆‍♂️","🙆🏻‍♀️","🙆🏻‍♂️","🙆🏼‍♀️","🙆🏼‍♂️","🙆🏽‍♀️","🙆🏽‍♂️","🙆🏾‍♀️","🙆🏾‍♂️","🙆🏿‍♀️","🙆🏿‍♂️","🙇‍♀️","🙇‍♂️","🙇🏻‍♀️","🙇🏻‍♂️","🙇🏼‍♀️","🙇🏼‍♂️","🙇🏽‍♀️","🙇🏽‍♂️","🙇🏾‍♀️","🙇🏾‍♂️","🙇🏿‍♀️","🙇🏿‍♂️","🙋‍♀️","🙋‍♂️","🙋🏻‍♀️","🙋🏻‍♂️","🙋🏼‍♀️","🙋🏼‍♂️","🙋🏽‍♀️","🙋🏽‍♂️","🙋🏾‍♀️","🙋🏾‍♂️","🙋🏿‍♀️","🙋🏿‍♂️","🙍‍♀️","🙍‍♂️","🙍🏻‍♀️","🙍🏻‍♂️","🙍🏼‍♀️","🙍🏼‍♂️","🙍🏽‍♀️","🙍🏽‍♂️","🙍🏾‍♀️","🙍🏾‍♂️","🙍🏿‍♀️","🙍🏿‍♂️","🙎‍♀️","🙎‍♂️","🙎🏻‍♀️","🙎🏻‍♂️","🙎🏼‍♀️","🙎🏼‍♂️","🙎🏽‍♀️","🙎🏽‍♂️","🙎🏾‍♀️","🙎🏾‍♂️","🙎🏿‍♀️","🙎🏿‍♂️","🚣‍♀️","🚣‍♂️","🚣🏻‍♀️","🚣🏻‍♂️","🚣🏼‍♀️","🚣🏼‍♂️","🚣🏽‍♀️","🚣🏽‍♂️","🚣🏾‍♀️","🚣🏾‍♂️","🚣🏿‍♀️","🚣🏿‍♂️","🚴‍♀️","🚴‍♂️","🚴🏻‍♀️","🚴🏻‍♂️","🚴🏼‍♀️","🚴🏼‍♂️","🚴🏽‍♀️","🚴🏽‍♂️","🚴🏾‍♀️","🚴🏾‍♂️","🚴🏿‍♀️","🚴🏿‍♂️","🚵‍♀️","🚵‍♂️","🚵🏻‍♀️","🚵🏻‍♂️","🚵🏼‍♀️","🚵🏼‍♂️","🚵🏽‍♀️","🚵🏽‍♂️","🚵🏾‍♀️","🚵🏾‍♂️","🚵🏿‍♀️","🚵🏿‍♂️","🚶‍♀️","🚶‍♀️‍➡️","🚶‍♂️","🚶‍♂️‍➡️","🚶🏻‍♀️","🚶🏻‍♀️‍➡️","🚶🏻‍♂️","🚶🏻‍♂️‍➡️","🚶🏼‍♀️","🚶🏼‍♀️‍➡️","🚶🏼‍♂️","🚶🏼‍♂️‍➡️","🚶🏽‍♀️","🚶🏽‍♀️‍➡️","🚶🏽‍♂️","🚶🏽‍♂️‍➡️","🚶🏾‍♀️","🚶🏾‍♀️‍➡️","🚶🏾‍♂️","🚶🏾‍♂️‍➡️","🚶🏿‍♀️","🚶🏿‍♀️‍➡️","🚶🏿‍♂️","🚶🏿‍♂️‍➡️","🤦‍♀️","🤦‍♂️","🤦🏻‍♀️","🤦🏻‍♂️","🤦🏼‍♀️","🤦🏼‍♂️","🤦🏽‍♀️","🤦🏽‍♂️","🤦🏾‍♀️","🤦🏾‍♂️","🤦🏿‍♀️","🤦🏿‍♂️","🤵‍♀️","🤵‍♂️","🤵🏻‍♀️","🤵🏻‍♂️","🤵🏼‍♀️","🤵🏼‍♂️","🤵🏽‍♀️","🤵🏽‍♂️","🤵🏾‍♀️","🤵🏾‍♂️","🤵🏿‍♀️","🤵🏿‍♂️","🤷‍♀️","🤷‍♂️","🤷🏻‍♀️","🤷🏻‍♂️","🤷🏼‍♀️","🤷🏼‍♂️","🤷🏽‍♀️","🤷🏽‍♂️","🤷🏾‍♀️","🤷🏾‍♂️","🤷🏿‍♀️","🤷🏿‍♂️","🤸‍♀️","🤸‍♂️","🤸🏻‍♀️","🤸🏻‍♂️","🤸🏼‍♀️","🤸🏼‍♂️","🤸🏽‍♀️","🤸🏽‍♂️","🤸🏾‍♀️","🤸🏾‍♂️","🤸🏿‍♀️","🤸🏿‍♂️","🤹‍♀️","🤹‍♂️","🤹🏻‍♀️","🤹🏻‍♂️","🤹🏼‍♀️","🤹🏼‍♂️","🤹🏽‍♀️","🤹🏽‍♂️","🤹🏾‍♀️","🤹🏾‍♂️","🤹🏿‍♀️","🤹🏿‍♂️","🤼‍♀️","🤼‍♂️","🤽‍♀️","🤽‍♂️","🤽🏻‍♀️","🤽🏻‍♂️","🤽🏼‍♀️","🤽🏼‍♂️","🤽🏽‍♀️","🤽🏽‍♂️","🤽🏾‍♀️","🤽🏾‍♂️","🤽🏿‍♀️","🤽🏿‍♂️","🤾‍♀️","🤾‍♂️","🤾🏻‍♀️","🤾🏻‍♂️","🤾🏼‍♀️","🤾🏼‍♂️","🤾🏽‍♀️","🤾🏽‍♂️","🤾🏾‍♀️","🤾🏾‍♂️","🤾🏿‍♀️","🤾🏿‍♂️","🦸‍♀️","🦸‍♂️","🦸🏻‍♀️","🦸🏻‍♂️","🦸🏼‍♀️","🦸🏼‍♂️","🦸🏽‍♀️","🦸🏽‍♂️","🦸🏾‍♀️","🦸🏾‍♂️","🦸🏿‍♀️","🦸🏿‍♂️","🦹‍♀️","🦹‍♂️","🦹🏻‍♀️","🦹🏻‍♂️","🦹🏼‍♀️","🦹🏼‍♂️","🦹🏽‍♀️","🦹🏽‍♂️","🦹🏾‍♀️","🦹🏾‍♂️","🦹🏿‍♀️","🦹🏿‍♂️","🧍‍♀️","🧍‍♂️","🧍🏻‍♀️","🧍🏻‍♂️","🧍🏼‍♀️","🧍🏼‍♂️","🧍🏽‍♀️","🧍🏽‍♂️","🧍🏾‍♀️","🧍🏾‍♂️","🧍🏿‍♀️","🧍🏿‍♂️","🧎‍♀️","🧎‍♀️‍➡️","🧎‍♂️","🧎‍♂️‍➡️","🧎🏻‍♀️","🧎🏻‍♀️‍➡️","🧎🏻‍♂️","🧎🏻‍♂️‍➡️","🧎🏼‍♀️","🧎🏼‍♀️‍➡️","🧎🏼‍♂️","🧎🏼‍♂️‍➡️","🧎🏽‍♀️","🧎🏽‍♀️‍➡️","🧎🏽‍♂️","🧎🏽‍♂️‍➡️","🧎🏾‍♀️","🧎🏾‍♀️‍➡️","🧎🏾‍♂️","🧎🏾‍♂️‍➡️","🧎🏿‍♀️","🧎🏿‍♀️‍➡️","🧎🏿‍♂️","🧎🏿‍♂️‍➡️","🧏‍♀️","🧏‍♂️","🧏🏻‍♀️","🧏🏻‍♂️","🧏🏼‍♀️","🧏🏼‍♂️","🧏🏽‍♀️","🧏🏽‍♂️","🧏🏾‍♀️","🧏🏾‍♂️","🧏🏿‍♀️","🧏🏿‍♂️","🧔‍♀️","🧔‍♂️","🧔🏻‍♀️","🧔🏻‍♂️","🧔🏼‍♀️","🧔🏼‍♂️","🧔🏽‍♀️","🧔🏽‍♂️","🧔🏾‍♀️","🧔🏾‍♂️","🧔🏿‍♀️","🧔🏿‍♂️","🧖‍♀️","🧖‍♂️","🧖🏻‍♀️","🧖🏻‍♂️","🧖🏼‍♀️","🧖🏼‍♂️","🧖🏽‍♀️","🧖🏽‍♂️","🧖🏾‍♀️","🧖🏾‍♂️","🧖🏿‍♀️","🧖🏿‍♂️","🧗‍♀️","🧗‍♂️","🧗🏻‍♀️","🧗🏻‍♂️","🧗🏼‍♀️","🧗🏼‍♂️","🧗🏽‍♀️","🧗🏽‍♂️","🧗🏾‍♀️","🧗🏾‍♂️","🧗🏿‍♀️","🧗🏿‍♂️","🧘‍♀️","🧘‍♂️","🧘🏻‍♀️","🧘🏻‍♂️","🧘🏼‍♀️","🧘🏼‍♂️","🧘🏽‍♀️","🧘🏽‍♂️","🧘🏾‍♀️","🧘🏾‍♂️","🧘🏿‍♀️","🧘🏿‍♂️","🧙‍♀️","🧙‍♂️","🧙🏻‍♀️","🧙🏻‍♂️","🧙🏼‍♀️","🧙🏼‍♂️","🧙🏽‍♀️","🧙🏽‍♂️","🧙🏾‍♀️","🧙🏾‍♂️","🧙🏿‍♀️","🧙🏿‍♂️","🧚‍♀️","🧚‍♂️","🧚🏻‍♀️","🧚🏻‍♂️","🧚🏼‍♀️","🧚🏼‍♂️","🧚🏽‍♀️","🧚🏽‍♂️","🧚🏾‍♀️","🧚🏾‍♂️","🧚🏿‍♀️","🧚🏿‍♂️","🧛‍♀️","🧛‍♂️","🧛🏻‍♀️","🧛🏻‍♂️","🧛🏼‍♀️","🧛🏼‍♂️","🧛🏽‍♀️","🧛🏽‍♂️","🧛🏾‍♀️","🧛🏾‍♂️","🧛🏿‍♀️","🧛🏿‍♂️","🧜‍♀️","🧜‍♂️","🧜🏻‍♀️","🧜🏻‍♂️","🧜🏼‍♀️","🧜🏼‍♂️","🧜🏽‍♀️","🧜🏽‍♂️","🧜🏾‍♀️","🧜🏾‍♂️","🧜🏿‍♀️","🧜🏿‍♂️","🧝‍♀️","🧝‍♂️","🧝🏻‍♀️","🧝🏻‍♂️","🧝🏼‍♀️","🧝🏼‍♂️","🧝🏽‍♀️","🧝🏽‍♂️","🧝🏾‍♀️","🧝🏾‍♂️","🧝🏿‍♀️","🧝🏿‍♂️","🧞‍♀️","🧞‍♂️","🧟‍♀️","🧟‍♂️","👨‍🦰","👨‍🦱","👨‍🦲","👨‍🦳","👨🏻‍🦰","👨🏻‍🦱","👨🏻‍🦲","👨🏻‍🦳","👨🏼‍🦰","👨🏼‍🦱","👨🏼‍🦲","👨🏼‍🦳","👨🏽‍🦰","👨🏽‍🦱","👨🏽‍🦲","👨🏽‍🦳","👨🏾‍🦰","👨🏾‍🦱","👨🏾‍🦲","👨🏾‍🦳","👨🏿‍🦰","👨🏿‍🦱","👨🏿‍🦲","👨🏿‍🦳","👩‍🦰","👩‍🦱","👩‍🦲","👩‍🦳","👩🏻‍🦰","👩🏻‍🦱","👩🏻‍🦲","👩🏻‍🦳","👩🏼‍🦰","👩🏼‍🦱","👩🏼‍🦲","👩🏼‍🦳","👩🏽‍🦰","👩🏽‍🦱","👩🏽‍🦲","👩🏽‍🦳","👩🏾‍🦰","👩🏾‍🦱","👩🏾‍🦲","👩🏾‍🦳","👩🏿‍🦰","👩🏿‍🦱","👩🏿‍🦲","👩🏿‍🦳","🧑‍🦰","🧑‍🦱","🧑‍🦲","🧑‍🦳","🧑🏻‍🦰","🧑🏻‍🦱","🧑🏻‍🦲","🧑🏻‍🦳","🧑🏼‍🦰","🧑🏼‍🦱","🧑🏼‍🦲","🧑🏼‍🦳","🧑🏽‍🦰","🧑🏽‍🦱","🧑🏽‍🦲","🧑🏽‍🦳","🧑🏾‍🦰","🧑🏾‍🦱","🧑🏾‍🦲","🧑🏾‍🦳","🧑🏿‍🦰","🧑🏿‍🦱","🧑🏿‍🦲","🧑🏿‍🦳","⛓️‍💥","❤️‍🔥","❤️‍🩹","🍄‍🟫","🍋‍🟩","🏳️‍⚧️","🏳️‍🌈","🏴‍☠️","🐈‍⬛","🐕‍🦺","🐦‍⬛","🐦‍🔥","🐻‍❄️","👁️‍🗨️","😮‍💨","😵‍💫","😶‍🌫️","🙂‍↔️","🙂‍↕️"],Sv}var Tv={},uee;function LGe(){if(uee)return Tv;uee=1;var e=ee(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),Tv.characters=e,Tv.strings=["#️⃣","*️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣","©️","®️","‼️","⁉️","™️","ℹ️","↔️","↕️","↖️","↗️","↘️","↙️","↩️","↪️","⌨️","⏏️","⏭️","⏮️","⏯️","⏱️","⏲️","⏸️","⏹️","⏺️","Ⓜ️","▪️","▫️","▶️","◀️","◻️","◼️","☀️","☁️","☂️","☃️","☄️","☎️","☑️","☘️","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","☝️","☠️","☢️","☣️","☦️","☪️","☮️","☯️","☸️","☹️","☺️","♀️","♂️","♟️","♠️","♣️","♥️","♦️","♨️","♻️","♾️","⚒️","⚔️","⚕️","⚖️","⚗️","⚙️","⚛️","⚜️","⚠️","⚧️","⚰️","⚱️","⛈️","⛏️","⛑️","⛓️","⛓️‍💥","⛩️","⛰️","⛱️","⛴️","⛷️","⛸️","⛹🏻","⛹🏻‍♀️","⛹🏻‍♂️","⛹🏼","⛹🏼‍♀️","⛹🏼‍♂️","⛹🏽","⛹🏽‍♀️","⛹🏽‍♂️","⛹🏾","⛹🏾‍♀️","⛹🏾‍♂️","⛹🏿","⛹🏿‍♀️","⛹🏿‍♂️","⛹️","⛹️‍♀️","⛹️‍♂️","✂️","✈️","✉️","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✌️","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","✍️","✏️","✒️","✔️","✖️","✝️","✡️","✳️","✴️","❄️","❇️","❣️","❤️","❤️‍🔥","❤️‍🩹","➡️","⤴️","⤵️","⬅️","⬆️","⬇️","〰️","〽️","㊗️","㊙️","🅰️","🅱️","🅾️","🅿️","🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼","🈂️","🈷️","🌡️","🌤️","🌥️","🌦️","🌧️","🌨️","🌩️","🌪️","🌫️","🌬️","🌶️","🍄‍🟫","🍋‍🟩","🍽️","🎅🏻","🎅🏼","🎅🏽","🎅🏾","🎅🏿","🎖️","🎗️","🎙️","🎚️","🎛️","🎞️","🎟️","🏂🏻","🏂🏼","🏂🏽","🏂🏾","🏂🏿","🏃‍♀️","🏃‍♀️‍➡️","🏃‍♂️","🏃‍♂️‍➡️","🏃‍➡️","🏃🏻","🏃🏻‍♀️","🏃🏻‍♀️‍➡️","🏃🏻‍♂️","🏃🏻‍♂️‍➡️","🏃🏻‍➡️","🏃🏼","🏃🏼‍♀️","🏃🏼‍♀️‍➡️","🏃🏼‍♂️","🏃🏼‍♂️‍➡️","🏃🏼‍➡️","🏃🏽","🏃🏽‍♀️","🏃🏽‍♀️‍➡️","🏃🏽‍♂️","🏃🏽‍♂️‍➡️","🏃🏽‍➡️","🏃🏾","🏃🏾‍♀️","🏃🏾‍♀️‍➡️","🏃🏾‍♂️","🏃🏾‍♂️‍➡️","🏃🏾‍➡️","🏃🏿","🏃🏿‍♀️","🏃🏿‍♀️‍➡️","🏃🏿‍♂️","🏃🏿‍♂️‍➡️","🏃🏿‍➡️","🏄‍♀️","🏄‍♂️","🏄🏻","🏄🏻‍♀️","🏄🏻‍♂️","🏄🏼","🏄🏼‍♀️","🏄🏼‍♂️","🏄🏽","🏄🏽‍♀️","🏄🏽‍♂️","🏄🏾","🏄🏾‍♀️","🏄🏾‍♂️","🏄🏿","🏄🏿‍♀️","🏄🏿‍♂️","🏇🏻","🏇🏼","🏇🏽","🏇🏾","🏇🏿","🏊‍♀️","🏊‍♂️","🏊🏻","🏊🏻‍♀️","🏊🏻‍♂️","🏊🏼","🏊🏼‍♀️","🏊🏼‍♂️","🏊🏽","🏊🏽‍♀️","🏊🏽‍♂️","🏊🏾","🏊🏾‍♀️","🏊🏾‍♂️","🏊🏿","🏊🏿‍♀️","🏊🏿‍♂️","🏋🏻","🏋🏻‍♀️","🏋🏻‍♂️","🏋🏼","🏋🏼‍♀️","🏋🏼‍♂️","🏋🏽","🏋🏽‍♀️","🏋🏽‍♂️","🏋🏾","🏋🏾‍♀️","🏋🏾‍♂️","🏋🏿","🏋🏿‍♀️","🏋🏿‍♂️","🏋️","🏋️‍♀️","🏋️‍♂️","🏌🏻","🏌🏻‍♀️","🏌🏻‍♂️","🏌🏼","🏌🏼‍♀️","🏌🏼‍♂️","🏌🏽","🏌🏽‍♀️","🏌🏽‍♂️","🏌🏾","🏌🏾‍♀️","🏌🏾‍♂️","🏌🏿","🏌🏿‍♀️","🏌🏿‍♂️","🏌️","🏌️‍♀️","🏌️‍♂️","🏍️","🏎️","🏔️","🏕️","🏖️","🏗️","🏘️","🏙️","🏚️","🏛️","🏜️","🏝️","🏞️","🏟️","🏳️","🏳️‍⚧️","🏳️‍🌈","🏴‍☠️","🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴󠁧󠁢󠁳󠁣󠁴󠁿","🏴󠁧󠁢󠁷󠁬󠁳󠁿","🏵️","🏷️","🐈‍⬛","🐕‍🦺","🐦‍⬛","🐦‍🔥","🐻‍❄️","🐿️","👁️","👁️‍🗨️","👂🏻","👂🏼","👂🏽","👂🏾","👂🏿","👃🏻","👃🏼","👃🏽","👃🏾","👃🏿","👆🏻","👆🏼","👆🏽","👆🏾","👆🏿","👇🏻","👇🏼","👇🏽","👇🏾","👇🏿","👈🏻","👈🏼","👈🏽","👈🏾","👈🏿","👉🏻","👉🏼","👉🏽","👉🏾","👉🏿","👊🏻","👊🏼","👊🏽","👊🏾","👊🏿","👋🏻","👋🏼","👋🏽","👋🏾","👋🏿","👌🏻","👌🏼","👌🏽","👌🏾","👌🏿","👍🏻","👍🏼","👍🏽","👍🏾","👍🏿","👎🏻","👎🏼","👎🏽","👎🏾","👎🏿","👏🏻","👏🏼","👏🏽","👏🏾","👏🏿","👐🏻","👐🏼","👐🏽","👐🏾","👐🏿","👦🏻","👦🏼","👦🏽","👦🏾","👦🏿","👧🏻","👧🏼","👧🏽","👧🏾","👧🏿","👨‍⚕️","👨‍⚖️","👨‍✈️","👨‍❤️‍👨","👨‍❤️‍💋‍👨","👨‍🌾","👨‍🍳","👨‍🍼","👨‍🎓","👨‍🎤","👨‍🎨","👨‍🏫","👨‍🏭","👨‍👦","👨‍👦‍👦","👨‍👧","👨‍👧‍👦","👨‍👧‍👧","👨‍👨‍👦","👨‍👨‍👦‍👦","👨‍👨‍👧","👨‍👨‍👧‍👦","👨‍👨‍👧‍👧","👨‍👩‍👦","👨‍👩‍👦‍👦","👨‍👩‍👧","👨‍👩‍👧‍👦","👨‍👩‍👧‍👧","👨‍💻","👨‍💼","👨‍🔧","👨‍🔬","👨‍🚀","👨‍🚒","👨‍🦯","👨‍🦯‍➡️","👨‍🦰","👨‍🦱","👨‍🦲","👨‍🦳","👨‍🦼","👨‍🦼‍➡️","👨‍🦽","👨‍🦽‍➡️","👨🏻","👨🏻‍⚕️","👨🏻‍⚖️","👨🏻‍✈️","👨🏻‍❤️‍👨🏻","👨🏻‍❤️‍👨🏼","👨🏻‍❤️‍👨🏽","👨🏻‍❤️‍👨🏾","👨🏻‍❤️‍👨🏿","👨🏻‍❤️‍💋‍👨🏻","👨🏻‍❤️‍💋‍👨🏼","👨🏻‍❤️‍💋‍👨🏽","👨🏻‍❤️‍💋‍👨🏾","👨🏻‍❤️‍💋‍👨🏿","👨🏻‍🌾","👨🏻‍🍳","👨🏻‍🍼","👨🏻‍🎓","👨🏻‍🎤","👨🏻‍🎨","👨🏻‍🏫","👨🏻‍🏭","👨🏻‍💻","👨🏻‍💼","👨🏻‍🔧","👨🏻‍🔬","👨🏻‍🚀","👨🏻‍🚒","👨🏻‍🤝‍👨🏼","👨🏻‍🤝‍👨🏽","👨🏻‍🤝‍👨🏾","👨🏻‍🤝‍👨🏿","👨🏻‍🦯","👨🏻‍🦯‍➡️","👨🏻‍🦰","👨🏻‍🦱","👨🏻‍🦲","👨🏻‍🦳","👨🏻‍🦼","👨🏻‍🦼‍➡️","👨🏻‍🦽","👨🏻‍🦽‍➡️","👨🏼","👨🏼‍⚕️","👨🏼‍⚖️","👨🏼‍✈️","👨🏼‍❤️‍👨🏻","👨🏼‍❤️‍👨🏼","👨🏼‍❤️‍👨🏽","👨🏼‍❤️‍👨🏾","👨🏼‍❤️‍👨🏿","👨🏼‍❤️‍💋‍👨🏻","👨🏼‍❤️‍💋‍👨🏼","👨🏼‍❤️‍💋‍👨🏽","👨🏼‍❤️‍💋‍👨🏾","👨🏼‍❤️‍💋‍👨🏿","👨🏼‍🌾","👨🏼‍🍳","👨🏼‍🍼","👨🏼‍🎓","👨🏼‍🎤","👨🏼‍🎨","👨🏼‍🏫","👨🏼‍🏭","👨🏼‍💻","👨🏼‍💼","👨🏼‍🔧","👨🏼‍🔬","👨🏼‍🚀","👨🏼‍🚒","👨🏼‍🤝‍👨🏻","👨🏼‍🤝‍👨🏽","👨🏼‍🤝‍👨🏾","👨🏼‍🤝‍👨🏿","👨🏼‍🦯","👨🏼‍🦯‍➡️","👨🏼‍🦰","👨🏼‍🦱","👨🏼‍🦲","👨🏼‍🦳","👨🏼‍🦼","👨🏼‍🦼‍➡️","👨🏼‍🦽","👨🏼‍🦽‍➡️","👨🏽","👨🏽‍⚕️","👨🏽‍⚖️","👨🏽‍✈️","👨🏽‍❤️‍👨🏻","👨🏽‍❤️‍👨🏼","👨🏽‍❤️‍👨🏽","👨🏽‍❤️‍👨🏾","👨🏽‍❤️‍👨🏿","👨🏽‍❤️‍💋‍👨🏻","👨🏽‍❤️‍💋‍👨🏼","👨🏽‍❤️‍💋‍👨🏽","👨🏽‍❤️‍💋‍👨🏾","👨🏽‍❤️‍💋‍👨🏿","👨🏽‍🌾","👨🏽‍🍳","👨🏽‍🍼","👨🏽‍🎓","👨🏽‍🎤","👨🏽‍🎨","👨🏽‍🏫","👨🏽‍🏭","👨🏽‍💻","👨🏽‍💼","👨🏽‍🔧","👨🏽‍🔬","👨🏽‍🚀","👨🏽‍🚒","👨🏽‍🤝‍👨🏻","👨🏽‍🤝‍👨🏼","👨🏽‍🤝‍👨🏾","👨🏽‍🤝‍👨🏿","👨🏽‍🦯","👨🏽‍🦯‍➡️","👨🏽‍🦰","👨🏽‍🦱","👨🏽‍🦲","👨🏽‍🦳","👨🏽‍🦼","👨🏽‍🦼‍➡️","👨🏽‍🦽","👨🏽‍🦽‍➡️","👨🏾","👨🏾‍⚕️","👨🏾‍⚖️","👨🏾‍✈️","👨🏾‍❤️‍👨🏻","👨🏾‍❤️‍👨🏼","👨🏾‍❤️‍👨🏽","👨🏾‍❤️‍👨🏾","👨🏾‍❤️‍👨🏿","👨🏾‍❤️‍💋‍👨🏻","👨🏾‍❤️‍💋‍👨🏼","👨🏾‍❤️‍💋‍👨🏽","👨🏾‍❤️‍💋‍👨🏾","👨🏾‍❤️‍💋‍👨🏿","👨🏾‍🌾","👨🏾‍🍳","👨🏾‍🍼","👨🏾‍🎓","👨🏾‍🎤","👨🏾‍🎨","👨🏾‍🏫","👨🏾‍🏭","👨🏾‍💻","👨🏾‍💼","👨🏾‍🔧","👨🏾‍🔬","👨🏾‍🚀","👨🏾‍🚒","👨🏾‍🤝‍👨🏻","👨🏾‍🤝‍👨🏼","👨🏾‍🤝‍👨🏽","👨🏾‍🤝‍👨🏿","👨🏾‍🦯","👨🏾‍🦯‍➡️","👨🏾‍🦰","👨🏾‍🦱","👨🏾‍🦲","👨🏾‍🦳","👨🏾‍🦼","👨🏾‍🦼‍➡️","👨🏾‍🦽","👨🏾‍🦽‍➡️","👨🏿","👨🏿‍⚕️","👨🏿‍⚖️","👨🏿‍✈️","👨🏿‍❤️‍👨🏻","👨🏿‍❤️‍👨🏼","👨🏿‍❤️‍👨🏽","👨🏿‍❤️‍👨🏾","👨🏿‍❤️‍👨🏿","👨🏿‍❤️‍💋‍👨🏻","👨🏿‍❤️‍💋‍👨🏼","👨🏿‍❤️‍💋‍👨🏽","👨🏿‍❤️‍💋‍👨🏾","👨🏿‍❤️‍💋‍👨🏿","👨🏿‍🌾","👨🏿‍🍳","👨🏿‍🍼","👨🏿‍🎓","👨🏿‍🎤","👨🏿‍🎨","👨🏿‍🏫","👨🏿‍🏭","👨🏿‍💻","👨🏿‍💼","👨🏿‍🔧","👨🏿‍🔬","👨🏿‍🚀","👨🏿‍🚒","👨🏿‍🤝‍👨🏻","👨🏿‍🤝‍👨🏼","👨🏿‍🤝‍👨🏽","👨🏿‍🤝‍👨🏾","👨🏿‍🦯","👨🏿‍🦯‍➡️","👨🏿‍🦰","👨🏿‍🦱","👨🏿‍🦲","👨🏿‍🦳","👨🏿‍🦼","👨🏿‍🦼‍➡️","👨🏿‍🦽","👨🏿‍🦽‍➡️","👩‍⚕️","👩‍⚖️","👩‍✈️","👩‍❤️‍👨","👩‍❤️‍👩","👩‍❤️‍💋‍👨","👩‍❤️‍💋‍👩","👩‍🌾","👩‍🍳","👩‍🍼","👩‍🎓","👩‍🎤","👩‍🎨","👩‍🏫","👩‍🏭","👩‍👦","👩‍👦‍👦","👩‍👧","👩‍👧‍👦","👩‍👧‍👧","👩‍👩‍👦","👩‍👩‍👦‍👦","👩‍👩‍👧","👩‍👩‍👧‍👦","👩‍👩‍👧‍👧","👩‍💻","👩‍💼","👩‍🔧","👩‍🔬","👩‍🚀","👩‍🚒","👩‍🦯","👩‍🦯‍➡️","👩‍🦰","👩‍🦱","👩‍🦲","👩‍🦳","👩‍🦼","👩‍🦼‍➡️","👩‍🦽","👩‍🦽‍➡️","👩🏻","👩🏻‍⚕️","👩🏻‍⚖️","👩🏻‍✈️","👩🏻‍❤️‍👨🏻","👩🏻‍❤️‍👨🏼","👩🏻‍❤️‍👨🏽","👩🏻‍❤️‍👨🏾","👩🏻‍❤️‍👨🏿","👩🏻‍❤️‍👩🏻","👩🏻‍❤️‍👩🏼","👩🏻‍❤️‍👩🏽","👩🏻‍❤️‍👩🏾","👩🏻‍❤️‍👩🏿","👩🏻‍❤️‍💋‍👨🏻","👩🏻‍❤️‍💋‍👨🏼","👩🏻‍❤️‍💋‍👨🏽","👩🏻‍❤️‍💋‍👨🏾","👩🏻‍❤️‍💋‍👨🏿","👩🏻‍❤️‍💋‍👩🏻","👩🏻‍❤️‍💋‍👩🏼","👩🏻‍❤️‍💋‍👩🏽","👩🏻‍❤️‍💋‍👩🏾","👩🏻‍❤️‍💋‍👩🏿","👩🏻‍🌾","👩🏻‍🍳","👩🏻‍🍼","👩🏻‍🎓","👩🏻‍🎤","👩🏻‍🎨","👩🏻‍🏫","👩🏻‍🏭","👩🏻‍💻","👩🏻‍💼","👩🏻‍🔧","👩🏻‍🔬","👩🏻‍🚀","👩🏻‍🚒","👩🏻‍🤝‍👨🏼","👩🏻‍🤝‍👨🏽","👩🏻‍🤝‍👨🏾","👩🏻‍🤝‍👨🏿","👩🏻‍🤝‍👩🏼","👩🏻‍🤝‍👩🏽","👩🏻‍🤝‍👩🏾","👩🏻‍🤝‍👩🏿","👩🏻‍🦯","👩🏻‍🦯‍➡️","👩🏻‍🦰","👩🏻‍🦱","👩🏻‍🦲","👩🏻‍🦳","👩🏻‍🦼","👩🏻‍🦼‍➡️","👩🏻‍🦽","👩🏻‍🦽‍➡️","👩🏼","👩🏼‍⚕️","👩🏼‍⚖️","👩🏼‍✈️","👩🏼‍❤️‍👨🏻","👩🏼‍❤️‍👨🏼","👩🏼‍❤️‍👨🏽","👩🏼‍❤️‍👨🏾","👩🏼‍❤️‍👨🏿","👩🏼‍❤️‍👩🏻","👩🏼‍❤️‍👩🏼","👩🏼‍❤️‍👩🏽","👩🏼‍❤️‍👩🏾","👩🏼‍❤️‍👩🏿","👩🏼‍❤️‍💋‍👨🏻","👩🏼‍❤️‍💋‍👨🏼","👩🏼‍❤️‍💋‍👨🏽","👩🏼‍❤️‍💋‍👨🏾","👩🏼‍❤️‍💋‍👨🏿","👩🏼‍❤️‍💋‍👩🏻","👩🏼‍❤️‍💋‍👩🏼","👩🏼‍❤️‍💋‍👩🏽","👩🏼‍❤️‍💋‍👩🏾","👩🏼‍❤️‍💋‍👩🏿","👩🏼‍🌾","👩🏼‍🍳","👩🏼‍🍼","👩🏼‍🎓","👩🏼‍🎤","👩🏼‍🎨","👩🏼‍🏫","👩🏼‍🏭","👩🏼‍💻","👩🏼‍💼","👩🏼‍🔧","👩🏼‍🔬","👩🏼‍🚀","👩🏼‍🚒","👩🏼‍🤝‍👨🏻","👩🏼‍🤝‍👨🏽","👩🏼‍🤝‍👨🏾","👩🏼‍🤝‍👨🏿","👩🏼‍🤝‍👩🏻","👩🏼‍🤝‍👩🏽","👩🏼‍🤝‍👩🏾","👩🏼‍🤝‍👩🏿","👩🏼‍🦯","👩🏼‍🦯‍➡️","👩🏼‍🦰","👩🏼‍🦱","👩🏼‍🦲","👩🏼‍🦳","👩🏼‍🦼","👩🏼‍🦼‍➡️","👩🏼‍🦽","👩🏼‍🦽‍➡️","👩🏽","👩🏽‍⚕️","👩🏽‍⚖️","👩🏽‍✈️","👩🏽‍❤️‍👨🏻","👩🏽‍❤️‍👨🏼","👩🏽‍❤️‍👨🏽","👩🏽‍❤️‍👨🏾","👩🏽‍❤️‍👨🏿","👩🏽‍❤️‍👩🏻","👩🏽‍❤️‍👩🏼","👩🏽‍❤️‍👩🏽","👩🏽‍❤️‍👩🏾","👩🏽‍❤️‍👩🏿","👩🏽‍❤️‍💋‍👨🏻","👩🏽‍❤️‍💋‍👨🏼","👩🏽‍❤️‍💋‍👨🏽","👩🏽‍❤️‍💋‍👨🏾","👩🏽‍❤️‍💋‍👨🏿","👩🏽‍❤️‍💋‍👩🏻","👩🏽‍❤️‍💋‍👩🏼","👩🏽‍❤️‍💋‍👩🏽","👩🏽‍❤️‍💋‍👩🏾","👩🏽‍❤️‍💋‍👩🏿","👩🏽‍🌾","👩🏽‍🍳","👩🏽‍🍼","👩🏽‍🎓","👩🏽‍🎤","👩🏽‍🎨","👩🏽‍🏫","👩🏽‍🏭","👩🏽‍💻","👩🏽‍💼","👩🏽‍🔧","👩🏽‍🔬","👩🏽‍🚀","👩🏽‍🚒","👩🏽‍🤝‍👨🏻","👩🏽‍🤝‍👨🏼","👩🏽‍🤝‍👨🏾","👩🏽‍🤝‍👨🏿","👩🏽‍🤝‍👩🏻","👩🏽‍🤝‍👩🏼","👩🏽‍🤝‍👩🏾","👩🏽‍🤝‍👩🏿","👩🏽‍🦯","👩🏽‍🦯‍➡️","👩🏽‍🦰","👩🏽‍🦱","👩🏽‍🦲","👩🏽‍🦳","👩🏽‍🦼","👩🏽‍🦼‍➡️","👩🏽‍🦽","👩🏽‍🦽‍➡️","👩🏾","👩🏾‍⚕️","👩🏾‍⚖️","👩🏾‍✈️","👩🏾‍❤️‍👨🏻","👩🏾‍❤️‍👨🏼","👩🏾‍❤️‍👨🏽","👩🏾‍❤️‍👨🏾","👩🏾‍❤️‍👨🏿","👩🏾‍❤️‍👩🏻","👩🏾‍❤️‍👩🏼","👩🏾‍❤️‍👩🏽","👩🏾‍❤️‍👩🏾","👩🏾‍❤️‍👩🏿","👩🏾‍❤️‍💋‍👨🏻","👩🏾‍❤️‍💋‍👨🏼","👩🏾‍❤️‍💋‍👨🏽","👩🏾‍❤️‍💋‍👨🏾","👩🏾‍❤️‍💋‍👨🏿","👩🏾‍❤️‍💋‍👩🏻","👩🏾‍❤️‍💋‍👩🏼","👩🏾‍❤️‍💋‍👩🏽","👩🏾‍❤️‍💋‍👩🏾","👩🏾‍❤️‍💋‍👩🏿","👩🏾‍🌾","👩🏾‍🍳","👩🏾‍🍼","👩🏾‍🎓","👩🏾‍🎤","👩🏾‍🎨","👩🏾‍🏫","👩🏾‍🏭","👩🏾‍💻","👩🏾‍💼","👩🏾‍🔧","👩🏾‍🔬","👩🏾‍🚀","👩🏾‍🚒","👩🏾‍🤝‍👨🏻","👩🏾‍🤝‍👨🏼","👩🏾‍🤝‍👨🏽","👩🏾‍🤝‍👨🏿","👩🏾‍🤝‍👩🏻","👩🏾‍🤝‍👩🏼","👩🏾‍🤝‍👩🏽","👩🏾‍🤝‍👩🏿","👩🏾‍🦯","👩🏾‍🦯‍➡️","👩🏾‍🦰","👩🏾‍🦱","👩🏾‍🦲","👩🏾‍🦳","👩🏾‍🦼","👩🏾‍🦼‍➡️","👩🏾‍🦽","👩🏾‍🦽‍➡️","👩🏿","👩🏿‍⚕️","👩🏿‍⚖️","👩🏿‍✈️","👩🏿‍❤️‍👨🏻","👩🏿‍❤️‍👨🏼","👩🏿‍❤️‍👨🏽","👩🏿‍❤️‍👨🏾","👩🏿‍❤️‍👨🏿","👩🏿‍❤️‍👩🏻","👩🏿‍❤️‍👩🏼","👩🏿‍❤️‍👩🏽","👩🏿‍❤️‍👩🏾","👩🏿‍❤️‍👩🏿","👩🏿‍❤️‍💋‍👨🏻","👩🏿‍❤️‍💋‍👨🏼","👩🏿‍❤️‍💋‍👨🏽","👩🏿‍❤️‍💋‍👨🏾","👩🏿‍❤️‍💋‍👨🏿","👩🏿‍❤️‍💋‍👩🏻","👩🏿‍❤️‍💋‍👩🏼","👩🏿‍❤️‍💋‍👩🏽","👩🏿‍❤️‍💋‍👩🏾","👩🏿‍❤️‍💋‍👩🏿","👩🏿‍🌾","👩🏿‍🍳","👩🏿‍🍼","👩🏿‍🎓","👩🏿‍🎤","👩🏿‍🎨","👩🏿‍🏫","👩🏿‍🏭","👩🏿‍💻","👩🏿‍💼","👩🏿‍🔧","👩🏿‍🔬","👩🏿‍🚀","👩🏿‍🚒","👩🏿‍🤝‍👨🏻","👩🏿‍🤝‍👨🏼","👩🏿‍🤝‍👨🏽","👩🏿‍🤝‍👨🏾","👩🏿‍🤝‍👩🏻","👩🏿‍🤝‍👩🏼","👩🏿‍🤝‍👩🏽","👩🏿‍🤝‍👩🏾","👩🏿‍🦯","👩🏿‍🦯‍➡️","👩🏿‍🦰","👩🏿‍🦱","👩🏿‍🦲","👩🏿‍🦳","👩🏿‍🦼","👩🏿‍🦼‍➡️","👩🏿‍🦽","👩🏿‍🦽‍➡️","👫🏻","👫🏼","👫🏽","👫🏾","👫🏿","👬🏻","👬🏼","👬🏽","👬🏾","👬🏿","👭🏻","👭🏼","👭🏽","👭🏾","👭🏿","👮‍♀️","👮‍♂️","👮🏻","👮🏻‍♀️","👮🏻‍♂️","👮🏼","👮🏼‍♀️","👮🏼‍♂️","👮🏽","👮🏽‍♀️","👮🏽‍♂️","👮🏾","👮🏾‍♀️","👮🏾‍♂️","👮🏿","👮🏿‍♀️","👮🏿‍♂️","👯‍♀️","👯‍♂️","👰‍♀️","👰‍♂️","👰🏻","👰🏻‍♀️","👰🏻‍♂️","👰🏼","👰🏼‍♀️","👰🏼‍♂️","👰🏽","👰🏽‍♀️","👰🏽‍♂️","👰🏾","👰🏾‍♀️","👰🏾‍♂️","👰🏿","👰🏿‍♀️","👰🏿‍♂️","👱‍♀️","👱‍♂️","👱🏻","👱🏻‍♀️","👱🏻‍♂️","👱🏼","👱🏼‍♀️","👱🏼‍♂️","👱🏽","👱🏽‍♀️","👱🏽‍♂️","👱🏾","👱🏾‍♀️","👱🏾‍♂️","👱🏿","👱🏿‍♀️","👱🏿‍♂️","👲🏻","👲🏼","👲🏽","👲🏾","👲🏿","👳‍♀️","👳‍♂️","👳🏻","👳🏻‍♀️","👳🏻‍♂️","👳🏼","👳🏼‍♀️","👳🏼‍♂️","👳🏽","👳🏽‍♀️","👳🏽‍♂️","👳🏾","👳🏾‍♀️","👳🏾‍♂️","👳🏿","👳🏿‍♀️","👳🏿‍♂️","👴🏻","👴🏼","👴🏽","👴🏾","👴🏿","👵🏻","👵🏼","👵🏽","👵🏾","👵🏿","👶🏻","👶🏼","👶🏽","👶🏾","👶🏿","👷‍♀️","👷‍♂️","👷🏻","👷🏻‍♀️","👷🏻‍♂️","👷🏼","👷🏼‍♀️","👷🏼‍♂️","👷🏽","👷🏽‍♀️","👷🏽‍♂️","👷🏾","👷🏾‍♀️","👷🏾‍♂️","👷🏿","👷🏿‍♀️","👷🏿‍♂️","👸🏻","👸🏼","👸🏽","👸🏾","👸🏿","👼🏻","👼🏼","👼🏽","👼🏾","👼🏿","💁‍♀️","💁‍♂️","💁🏻","💁🏻‍♀️","💁🏻‍♂️","💁🏼","💁🏼‍♀️","💁🏼‍♂️","💁🏽","💁🏽‍♀️","💁🏽‍♂️","💁🏾","💁🏾‍♀️","💁🏾‍♂️","💁🏿","💁🏿‍♀️","💁🏿‍♂️","💂‍♀️","💂‍♂️","💂🏻","💂🏻‍♀️","💂🏻‍♂️","💂🏼","💂🏼‍♀️","💂🏼‍♂️","💂🏽","💂🏽‍♀️","💂🏽‍♂️","💂🏾","💂🏾‍♀️","💂🏾‍♂️","💂🏿","💂🏿‍♀️","💂🏿‍♂️","💃🏻","💃🏼","💃🏽","💃🏾","💃🏿","💅🏻","💅🏼","💅🏽","💅🏾","💅🏿","💆‍♀️","💆‍♂️","💆🏻","💆🏻‍♀️","💆🏻‍♂️","💆🏼","💆🏼‍♀️","💆🏼‍♂️","💆🏽","💆🏽‍♀️","💆🏽‍♂️","💆🏾","💆🏾‍♀️","💆🏾‍♂️","💆🏿","💆🏿‍♀️","💆🏿‍♂️","💇‍♀️","💇‍♂️","💇🏻","💇🏻‍♀️","💇🏻‍♂️","💇🏼","💇🏼‍♀️","💇🏼‍♂️","💇🏽","💇🏽‍♀️","💇🏽‍♂️","💇🏾","💇🏾‍♀️","💇🏾‍♂️","💇🏿","💇🏿‍♀️","💇🏿‍♂️","💏🏻","💏🏼","💏🏽","💏🏾","💏🏿","💑🏻","💑🏼","💑🏽","💑🏾","💑🏿","💪🏻","💪🏼","💪🏽","💪🏾","💪🏿","📽️","🕉️","🕊️","🕯️","🕰️","🕳️","🕴🏻","🕴🏼","🕴🏽","🕴🏾","🕴🏿","🕴️","🕵🏻","🕵🏻‍♀️","🕵🏻‍♂️","🕵🏼","🕵🏼‍♀️","🕵🏼‍♂️","🕵🏽","🕵🏽‍♀️","🕵🏽‍♂️","🕵🏾","🕵🏾‍♀️","🕵🏾‍♂️","🕵🏿","🕵🏿‍♀️","🕵🏿‍♂️","🕵️","🕵️‍♀️","🕵️‍♂️","🕶️","🕷️","🕸️","🕹️","🕺🏻","🕺🏼","🕺🏽","🕺🏾","🕺🏿","🖇️","🖊️","🖋️","🖌️","🖍️","🖐🏻","🖐🏼","🖐🏽","🖐🏾","🖐🏿","🖐️","🖕🏻","🖕🏼","🖕🏽","🖕🏾","🖕🏿","🖖🏻","🖖🏼","🖖🏽","🖖🏾","🖖🏿","🖥️","🖨️","🖱️","🖲️","🖼️","🗂️","🗃️","🗄️","🗑️","🗒️","🗓️","🗜️","🗝️","🗞️","🗡️","🗣️","🗨️","🗯️","🗳️","🗺️","😮‍💨","😵‍💫","😶‍🌫️","🙂‍↔️","🙂‍↕️","🙅‍♀️","🙅‍♂️","🙅🏻","🙅🏻‍♀️","🙅🏻‍♂️","🙅🏼","🙅🏼‍♀️","🙅🏼‍♂️","🙅🏽","🙅🏽‍♀️","🙅🏽‍♂️","🙅🏾","🙅🏾‍♀️","🙅🏾‍♂️","🙅🏿","🙅🏿‍♀️","🙅🏿‍♂️","🙆‍♀️","🙆‍♂️","🙆🏻","🙆🏻‍♀️","🙆🏻‍♂️","🙆🏼","🙆🏼‍♀️","🙆🏼‍♂️","🙆🏽","🙆🏽‍♀️","🙆🏽‍♂️","🙆🏾","🙆🏾‍♀️","🙆🏾‍♂️","🙆🏿","🙆🏿‍♀️","🙆🏿‍♂️","🙇‍♀️","🙇‍♂️","🙇🏻","🙇🏻‍♀️","🙇🏻‍♂️","🙇🏼","🙇🏼‍♀️","🙇🏼‍♂️","🙇🏽","🙇🏽‍♀️","🙇🏽‍♂️","🙇🏾","🙇🏾‍♀️","🙇🏾‍♂️","🙇🏿","🙇🏿‍♀️","🙇🏿‍♂️","🙋‍♀️","🙋‍♂️","🙋🏻","🙋🏻‍♀️","🙋🏻‍♂️","🙋🏼","🙋🏼‍♀️","🙋🏼‍♂️","🙋🏽","🙋🏽‍♀️","🙋🏽‍♂️","🙋🏾","🙋🏾‍♀️","🙋🏾‍♂️","🙋🏿","🙋🏿‍♀️","🙋🏿‍♂️","🙌🏻","🙌🏼","🙌🏽","🙌🏾","🙌🏿","🙍‍♀️","🙍‍♂️","🙍🏻","🙍🏻‍♀️","🙍🏻‍♂️","🙍🏼","🙍🏼‍♀️","🙍🏼‍♂️","🙍🏽","🙍🏽‍♀️","🙍🏽‍♂️","🙍🏾","🙍🏾‍♀️","🙍🏾‍♂️","🙍🏿","🙍🏿‍♀️","🙍🏿‍♂️","🙎‍♀️","🙎‍♂️","🙎🏻","🙎🏻‍♀️","🙎🏻‍♂️","🙎🏼","🙎🏼‍♀️","🙎🏼‍♂️","🙎🏽","🙎🏽‍♀️","🙎🏽‍♂️","🙎🏾","🙎🏾‍♀️","🙎🏾‍♂️","🙎🏿","🙎🏿‍♀️","🙎🏿‍♂️","🙏🏻","🙏🏼","🙏🏽","🙏🏾","🙏🏿","🚣‍♀️","🚣‍♂️","🚣🏻","🚣🏻‍♀️","🚣🏻‍♂️","🚣🏼","🚣🏼‍♀️","🚣🏼‍♂️","🚣🏽","🚣🏽‍♀️","🚣🏽‍♂️","🚣🏾","🚣🏾‍♀️","🚣🏾‍♂️","🚣🏿","🚣🏿‍♀️","🚣🏿‍♂️","🚴‍♀️","🚴‍♂️","🚴🏻","🚴🏻‍♀️","🚴🏻‍♂️","🚴🏼","🚴🏼‍♀️","🚴🏼‍♂️","🚴🏽","🚴🏽‍♀️","🚴🏽‍♂️","🚴🏾","🚴🏾‍♀️","🚴🏾‍♂️","🚴🏿","🚴🏿‍♀️","🚴🏿‍♂️","🚵‍♀️","🚵‍♂️","🚵🏻","🚵🏻‍♀️","🚵🏻‍♂️","🚵🏼","🚵🏼‍♀️","🚵🏼‍♂️","🚵🏽","🚵🏽‍♀️","🚵🏽‍♂️","🚵🏾","🚵🏾‍♀️","🚵🏾‍♂️","🚵🏿","🚵🏿‍♀️","🚵🏿‍♂️","🚶‍♀️","🚶‍♀️‍➡️","🚶‍♂️","🚶‍♂️‍➡️","🚶‍➡️","🚶🏻","🚶🏻‍♀️","🚶🏻‍♀️‍➡️","🚶🏻‍♂️","🚶🏻‍♂️‍➡️","🚶🏻‍➡️","🚶🏼","🚶🏼‍♀️","🚶🏼‍♀️‍➡️","🚶🏼‍♂️","🚶🏼‍♂️‍➡️","🚶🏼‍➡️","🚶🏽","🚶🏽‍♀️","🚶🏽‍♀️‍➡️","🚶🏽‍♂️","🚶🏽‍♂️‍➡️","🚶🏽‍➡️","🚶🏾","🚶🏾‍♀️","🚶🏾‍♀️‍➡️","🚶🏾‍♂️","🚶🏾‍♂️‍➡️","🚶🏾‍➡️","🚶🏿","🚶🏿‍♀️","🚶🏿‍♀️‍➡️","🚶🏿‍♂️","🚶🏿‍♂️‍➡️","🚶🏿‍➡️","🛀🏻","🛀🏼","🛀🏽","🛀🏾","🛀🏿","🛋️","🛌🏻","🛌🏼","🛌🏽","🛌🏾","🛌🏿","🛍️","🛎️","🛏️","🛠️","🛡️","🛢️","🛣️","🛤️","🛥️","🛩️","🛰️","🛳️","🤌🏻","🤌🏼","🤌🏽","🤌🏾","🤌🏿","🤏🏻","🤏🏼","🤏🏽","🤏🏾","🤏🏿","🤘🏻","🤘🏼","🤘🏽","🤘🏾","🤘🏿","🤙🏻","🤙🏼","🤙🏽","🤙🏾","🤙🏿","🤚🏻","🤚🏼","🤚🏽","🤚🏾","🤚🏿","🤛🏻","🤛🏼","🤛🏽","🤛🏾","🤛🏿","🤜🏻","🤜🏼","🤜🏽","🤜🏾","🤜🏿","🤝🏻","🤝🏼","🤝🏽","🤝🏾","🤝🏿","🤞🏻","🤞🏼","🤞🏽","🤞🏾","🤞🏿","🤟🏻","🤟🏼","🤟🏽","🤟🏾","🤟🏿","🤦‍♀️","🤦‍♂️","🤦🏻","🤦🏻‍♀️","🤦🏻‍♂️","🤦🏼","🤦🏼‍♀️","🤦🏼‍♂️","🤦🏽","🤦🏽‍♀️","🤦🏽‍♂️","🤦🏾","🤦🏾‍♀️","🤦🏾‍♂️","🤦🏿","🤦🏿‍♀️","🤦🏿‍♂️","🤰🏻","🤰🏼","🤰🏽","🤰🏾","🤰🏿","🤱🏻","🤱🏼","🤱🏽","🤱🏾","🤱🏿","🤲🏻","🤲🏼","🤲🏽","🤲🏾","🤲🏿","🤳🏻","🤳🏼","🤳🏽","🤳🏾","🤳🏿","🤴🏻","🤴🏼","🤴🏽","🤴🏾","🤴🏿","🤵‍♀️","🤵‍♂️","🤵🏻","🤵🏻‍♀️","🤵🏻‍♂️","🤵🏼","🤵🏼‍♀️","🤵🏼‍♂️","🤵🏽","🤵🏽‍♀️","🤵🏽‍♂️","🤵🏾","🤵🏾‍♀️","🤵🏾‍♂️","🤵🏿","🤵🏿‍♀️","🤵🏿‍♂️","🤶🏻","🤶🏼","🤶🏽","🤶🏾","🤶🏿","🤷‍♀️","🤷‍♂️","🤷🏻","🤷🏻‍♀️","🤷🏻‍♂️","🤷🏼","🤷🏼‍♀️","🤷🏼‍♂️","🤷🏽","🤷🏽‍♀️","🤷🏽‍♂️","🤷🏾","🤷🏾‍♀️","🤷🏾‍♂️","🤷🏿","🤷🏿‍♀️","🤷🏿‍♂️","🤸‍♀️","🤸‍♂️","🤸🏻","🤸🏻‍♀️","🤸🏻‍♂️","🤸🏼","🤸🏼‍♀️","🤸🏼‍♂️","🤸🏽","🤸🏽‍♀️","🤸🏽‍♂️","🤸🏾","🤸🏾‍♀️","🤸🏾‍♂️","🤸🏿","🤸🏿‍♀️","🤸🏿‍♂️","🤹‍♀️","🤹‍♂️","🤹🏻","🤹🏻‍♀️","🤹🏻‍♂️","🤹🏼","🤹🏼‍♀️","🤹🏼‍♂️","🤹🏽","🤹🏽‍♀️","🤹🏽‍♂️","🤹🏾","🤹🏾‍♀️","🤹🏾‍♂️","🤹🏿","🤹🏿‍♀️","🤹🏿‍♂️","🤼‍♀️","🤼‍♂️","🤽‍♀️","🤽‍♂️","🤽🏻","🤽🏻‍♀️","🤽🏻‍♂️","🤽🏼","🤽🏼‍♀️","🤽🏼‍♂️","🤽🏽","🤽🏽‍♀️","🤽🏽‍♂️","🤽🏾","🤽🏾‍♀️","🤽🏾‍♂️","🤽🏿","🤽🏿‍♀️","🤽🏿‍♂️","🤾‍♀️","🤾‍♂️","🤾🏻","🤾🏻‍♀️","🤾🏻‍♂️","🤾🏼","🤾🏼‍♀️","🤾🏼‍♂️","🤾🏽","🤾🏽‍♀️","🤾🏽‍♂️","🤾🏾","🤾🏾‍♀️","🤾🏾‍♂️","🤾🏿","🤾🏿‍♀️","🤾🏿‍♂️","🥷🏻","🥷🏼","🥷🏽","🥷🏾","🥷🏿","🦵🏻","🦵🏼","🦵🏽","🦵🏾","🦵🏿","🦶🏻","🦶🏼","🦶🏽","🦶🏾","🦶🏿","🦸‍♀️","🦸‍♂️","🦸🏻","🦸🏻‍♀️","🦸🏻‍♂️","🦸🏼","🦸🏼‍♀️","🦸🏼‍♂️","🦸🏽","🦸🏽‍♀️","🦸🏽‍♂️","🦸🏾","🦸🏾‍♀️","🦸🏾‍♂️","🦸🏿","🦸🏿‍♀️","🦸🏿‍♂️","🦹‍♀️","🦹‍♂️","🦹🏻","🦹🏻‍♀️","🦹🏻‍♂️","🦹🏼","🦹🏼‍♀️","🦹🏼‍♂️","🦹🏽","🦹🏽‍♀️","🦹🏽‍♂️","🦹🏾","🦹🏾‍♀️","🦹🏾‍♂️","🦹🏿","🦹🏿‍♀️","🦹🏿‍♂️","🦻🏻","🦻🏼","🦻🏽","🦻🏾","🦻🏿","🧍‍♀️","🧍‍♂️","🧍🏻","🧍🏻‍♀️","🧍🏻‍♂️","🧍🏼","🧍🏼‍♀️","🧍🏼‍♂️","🧍🏽","🧍🏽‍♀️","🧍🏽‍♂️","🧍🏾","🧍🏾‍♀️","🧍🏾‍♂️","🧍🏿","🧍🏿‍♀️","🧍🏿‍♂️","🧎‍♀️","🧎‍♀️‍➡️","🧎‍♂️","🧎‍♂️‍➡️","🧎‍➡️","🧎🏻","🧎🏻‍♀️","🧎🏻‍♀️‍➡️","🧎🏻‍♂️","🧎🏻‍♂️‍➡️","🧎🏻‍➡️","🧎🏼","🧎🏼‍♀️","🧎🏼‍♀️‍➡️","🧎🏼‍♂️","🧎🏼‍♂️‍➡️","🧎🏼‍➡️","🧎🏽","🧎🏽‍♀️","🧎🏽‍♀️‍➡️","🧎🏽‍♂️","🧎🏽‍♂️‍➡️","🧎🏽‍➡️","🧎🏾","🧎🏾‍♀️","🧎🏾‍♀️‍➡️","🧎🏾‍♂️","🧎🏾‍♂️‍➡️","🧎🏾‍➡️","🧎🏿","🧎🏿‍♀️","🧎🏿‍♀️‍➡️","🧎🏿‍♂️","🧎🏿‍♂️‍➡️","🧎🏿‍➡️","🧏‍♀️","🧏‍♂️","🧏🏻","🧏🏻‍♀️","🧏🏻‍♂️","🧏🏼","🧏🏼‍♀️","🧏🏼‍♂️","🧏🏽","🧏🏽‍♀️","🧏🏽‍♂️","🧏🏾","🧏🏾‍♀️","🧏🏾‍♂️","🧏🏿","🧏🏿‍♀️","🧏🏿‍♂️","🧑‍⚕️","🧑‍⚖️","🧑‍✈️","🧑‍🌾","🧑‍🍳","🧑‍🍼","🧑‍🎄","🧑‍🎓","🧑‍🎤","🧑‍🎨","🧑‍🏫","🧑‍🏭","🧑‍💻","🧑‍💼","🧑‍🔧","🧑‍🔬","🧑‍🚀","🧑‍🚒","🧑‍🤝‍🧑","🧑‍🦯","🧑‍🦯‍➡️","🧑‍🦰","🧑‍🦱","🧑‍🦲","🧑‍🦳","🧑‍🦼","🧑‍🦼‍➡️","🧑‍🦽","🧑‍🦽‍➡️","🧑‍🧑‍🧒","🧑‍🧑‍🧒‍🧒","🧑‍🧒","🧑‍🧒‍🧒","🧑🏻","🧑🏻‍⚕️","🧑🏻‍⚖️","🧑🏻‍✈️","🧑🏻‍❤️‍💋‍🧑🏼","🧑🏻‍❤️‍💋‍🧑🏽","🧑🏻‍❤️‍💋‍🧑🏾","🧑🏻‍❤️‍💋‍🧑🏿","🧑🏻‍❤️‍🧑🏼","🧑🏻‍❤️‍🧑🏽","🧑🏻‍❤️‍🧑🏾","🧑🏻‍❤️‍🧑🏿","🧑🏻‍🌾","🧑🏻‍🍳","🧑🏻‍🍼","🧑🏻‍🎄","🧑🏻‍🎓","🧑🏻‍🎤","🧑🏻‍🎨","🧑🏻‍🏫","🧑🏻‍🏭","🧑🏻‍💻","🧑🏻‍💼","🧑🏻‍🔧","🧑🏻‍🔬","🧑🏻‍🚀","🧑🏻‍🚒","🧑🏻‍🤝‍🧑🏻","🧑🏻‍🤝‍🧑🏼","🧑🏻‍🤝‍🧑🏽","🧑🏻‍🤝‍🧑🏾","🧑🏻‍🤝‍🧑🏿","🧑🏻‍🦯","🧑🏻‍🦯‍➡️","🧑🏻‍🦰","🧑🏻‍🦱","🧑🏻‍🦲","🧑🏻‍🦳","🧑🏻‍🦼","🧑🏻‍🦼‍➡️","🧑🏻‍🦽","🧑🏻‍🦽‍➡️","🧑🏼","🧑🏼‍⚕️","🧑🏼‍⚖️","🧑🏼‍✈️","🧑🏼‍❤️‍💋‍🧑🏻","🧑🏼‍❤️‍💋‍🧑🏽","🧑🏼‍❤️‍💋‍🧑🏾","🧑🏼‍❤️‍💋‍🧑🏿","🧑🏼‍❤️‍🧑🏻","🧑🏼‍❤️‍🧑🏽","🧑🏼‍❤️‍🧑🏾","🧑🏼‍❤️‍🧑🏿","🧑🏼‍🌾","🧑🏼‍🍳","🧑🏼‍🍼","🧑🏼‍🎄","🧑🏼‍🎓","🧑🏼‍🎤","🧑🏼‍🎨","🧑🏼‍🏫","🧑🏼‍🏭","🧑🏼‍💻","🧑🏼‍💼","🧑🏼‍🔧","🧑🏼‍🔬","🧑🏼‍🚀","🧑🏼‍🚒","🧑🏼‍🤝‍🧑🏻","🧑🏼‍🤝‍🧑🏼","🧑🏼‍🤝‍🧑🏽","🧑🏼‍🤝‍🧑🏾","🧑🏼‍🤝‍🧑🏿","🧑🏼‍🦯","🧑🏼‍🦯‍➡️","🧑🏼‍🦰","🧑🏼‍🦱","🧑🏼‍🦲","🧑🏼‍🦳","🧑🏼‍🦼","🧑🏼‍🦼‍➡️","🧑🏼‍🦽","🧑🏼‍🦽‍➡️","🧑🏽","🧑🏽‍⚕️","🧑🏽‍⚖️","🧑🏽‍✈️","🧑🏽‍❤️‍💋‍🧑🏻","🧑🏽‍❤️‍💋‍🧑🏼","🧑🏽‍❤️‍💋‍🧑🏾","🧑🏽‍❤️‍💋‍🧑🏿","🧑🏽‍❤️‍🧑🏻","🧑🏽‍❤️‍🧑🏼","🧑🏽‍❤️‍🧑🏾","🧑🏽‍❤️‍🧑🏿","🧑🏽‍🌾","🧑🏽‍🍳","🧑🏽‍🍼","🧑🏽‍🎄","🧑🏽‍🎓","🧑🏽‍🎤","🧑🏽‍🎨","🧑🏽‍🏫","🧑🏽‍🏭","🧑🏽‍💻","🧑🏽‍💼","🧑🏽‍🔧","🧑🏽‍🔬","🧑🏽‍🚀","🧑🏽‍🚒","🧑🏽‍🤝‍🧑🏻","🧑🏽‍🤝‍🧑🏼","🧑🏽‍🤝‍🧑🏽","🧑🏽‍🤝‍🧑🏾","🧑🏽‍🤝‍🧑🏿","🧑🏽‍🦯","🧑🏽‍🦯‍➡️","🧑🏽‍🦰","🧑🏽‍🦱","🧑🏽‍🦲","🧑🏽‍🦳","🧑🏽‍🦼","🧑🏽‍🦼‍➡️","🧑🏽‍🦽","🧑🏽‍🦽‍➡️","🧑🏾","🧑🏾‍⚕️","🧑🏾‍⚖️","🧑🏾‍✈️","🧑🏾‍❤️‍💋‍🧑🏻","🧑🏾‍❤️‍💋‍🧑🏼","🧑🏾‍❤️‍💋‍🧑🏽","🧑🏾‍❤️‍💋‍🧑🏿","🧑🏾‍❤️‍🧑🏻","🧑🏾‍❤️‍🧑🏼","🧑🏾‍❤️‍🧑🏽","🧑🏾‍❤️‍🧑🏿","🧑🏾‍🌾","🧑🏾‍🍳","🧑🏾‍🍼","🧑🏾‍🎄","🧑🏾‍🎓","🧑🏾‍🎤","🧑🏾‍🎨","🧑🏾‍🏫","🧑🏾‍🏭","🧑🏾‍💻","🧑🏾‍💼","🧑🏾‍🔧","🧑🏾‍🔬","🧑🏾‍🚀","🧑🏾‍🚒","🧑🏾‍🤝‍🧑🏻","🧑🏾‍🤝‍🧑🏼","🧑🏾‍🤝‍🧑🏽","🧑🏾‍🤝‍🧑🏾","🧑🏾‍🤝‍🧑🏿","🧑🏾‍🦯","🧑🏾‍🦯‍➡️","🧑🏾‍🦰","🧑🏾‍🦱","🧑🏾‍🦲","🧑🏾‍🦳","🧑🏾‍🦼","🧑🏾‍🦼‍➡️","🧑🏾‍🦽","🧑🏾‍🦽‍➡️","🧑🏿","🧑🏿‍⚕️","🧑🏿‍⚖️","🧑🏿‍✈️","🧑🏿‍❤️‍💋‍🧑🏻","🧑🏿‍❤️‍💋‍🧑🏼","🧑🏿‍❤️‍💋‍🧑🏽","🧑🏿‍❤️‍💋‍🧑🏾","🧑🏿‍❤️‍🧑🏻","🧑🏿‍❤️‍🧑🏼","🧑🏿‍❤️‍🧑🏽","🧑🏿‍❤️‍🧑🏾","🧑🏿‍🌾","🧑🏿‍🍳","🧑🏿‍🍼","🧑🏿‍🎄","🧑🏿‍🎓","🧑🏿‍🎤","🧑🏿‍🎨","🧑🏿‍🏫","🧑🏿‍🏭","🧑🏿‍💻","🧑🏿‍💼","🧑🏿‍🔧","🧑🏿‍🔬","🧑🏿‍🚀","🧑🏿‍🚒","🧑🏿‍🤝‍🧑🏻","🧑🏿‍🤝‍🧑🏼","🧑🏿‍🤝‍🧑🏽","🧑🏿‍🤝‍🧑🏾","🧑🏿‍🤝‍🧑🏿","🧑🏿‍🦯","🧑🏿‍🦯‍➡️","🧑🏿‍🦰","🧑🏿‍🦱","🧑🏿‍🦲","🧑🏿‍🦳","🧑🏿‍🦼","🧑🏿‍🦼‍➡️","🧑🏿‍🦽","🧑🏿‍🦽‍➡️","🧒🏻","🧒🏼","🧒🏽","🧒🏾","🧒🏿","🧓🏻","🧓🏼","🧓🏽","🧓🏾","🧓🏿","🧔‍♀️","🧔‍♂️","🧔🏻","🧔🏻‍♀️","🧔🏻‍♂️","🧔🏼","🧔🏼‍♀️","🧔🏼‍♂️","🧔🏽","🧔🏽‍♀️","🧔🏽‍♂️","🧔🏾","🧔🏾‍♀️","🧔🏾‍♂️","🧔🏿","🧔🏿‍♀️","🧔🏿‍♂️","🧕🏻","🧕🏼","🧕🏽","🧕🏾","🧕🏿","🧖‍♀️","🧖‍♂️","🧖🏻","🧖🏻‍♀️","🧖🏻‍♂️","🧖🏼","🧖🏼‍♀️","🧖🏼‍♂️","🧖🏽","🧖🏽‍♀️","🧖🏽‍♂️","🧖🏾","🧖🏾‍♀️","🧖🏾‍♂️","🧖🏿","🧖🏿‍♀️","🧖🏿‍♂️","🧗‍♀️","🧗‍♂️","🧗🏻","🧗🏻‍♀️","🧗🏻‍♂️","🧗🏼","🧗🏼‍♀️","🧗🏼‍♂️","🧗🏽","🧗🏽‍♀️","🧗🏽‍♂️","🧗🏾","🧗🏾‍♀️","🧗🏾‍♂️","🧗🏿","🧗🏿‍♀️","🧗🏿‍♂️","🧘‍♀️","🧘‍♂️","🧘🏻","🧘🏻‍♀️","🧘🏻‍♂️","🧘🏼","🧘🏼‍♀️","🧘🏼‍♂️","🧘🏽","🧘🏽‍♀️","🧘🏽‍♂️","🧘🏾","🧘🏾‍♀️","🧘🏾‍♂️","🧘🏿","🧘🏿‍♀️","🧘🏿‍♂️","🧙‍♀️","🧙‍♂️","🧙🏻","🧙🏻‍♀️","🧙🏻‍♂️","🧙🏼","🧙🏼‍♀️","🧙🏼‍♂️","🧙🏽","🧙🏽‍♀️","🧙🏽‍♂️","🧙🏾","🧙🏾‍♀️","🧙🏾‍♂️","🧙🏿","🧙🏿‍♀️","🧙🏿‍♂️","🧚‍♀️","🧚‍♂️","🧚🏻","🧚🏻‍♀️","🧚🏻‍♂️","🧚🏼","🧚🏼‍♀️","🧚🏼‍♂️","🧚🏽","🧚🏽‍♀️","🧚🏽‍♂️","🧚🏾","🧚🏾‍♀️","🧚🏾‍♂️","🧚🏿","🧚🏿‍♀️","🧚🏿‍♂️","🧛‍♀️","🧛‍♂️","🧛🏻","🧛🏻‍♀️","🧛🏻‍♂️","🧛🏼","🧛🏼‍♀️","🧛🏼‍♂️","🧛🏽","🧛🏽‍♀️","🧛🏽‍♂️","🧛🏾","🧛🏾‍♀️","🧛🏾‍♂️","🧛🏿","🧛🏿‍♀️","🧛🏿‍♂️","🧜‍♀️","🧜‍♂️","🧜🏻","🧜🏻‍♀️","🧜🏻‍♂️","🧜🏼","🧜🏼‍♀️","🧜🏼‍♂️","🧜🏽","🧜🏽‍♀️","🧜🏽‍♂️","🧜🏾","🧜🏾‍♀️","🧜🏾‍♂️","🧜🏿","🧜🏿‍♀️","🧜🏿‍♂️","🧝‍♀️","🧝‍♂️","🧝🏻","🧝🏻‍♀️","🧝🏻‍♂️","🧝🏼","🧝🏼‍♀️","🧝🏼‍♂️","🧝🏽","🧝🏽‍♀️","🧝🏽‍♂️","🧝🏾","🧝🏾‍♀️","🧝🏾‍♂️","🧝🏿","🧝🏿‍♀️","🧝🏿‍♂️","🧞‍♀️","🧞‍♂️","🧟‍♀️","🧟‍♂️","🫃🏻","🫃🏼","🫃🏽","🫃🏾","🫃🏿","🫄🏻","🫄🏼","🫄🏽","🫄🏾","🫄🏿","🫅🏻","🫅🏼","🫅🏽","🫅🏾","🫅🏿","🫰🏻","🫰🏼","🫰🏽","🫰🏾","🫰🏿","🫱🏻","🫱🏻‍🫲🏼","🫱🏻‍🫲🏽","🫱🏻‍🫲🏾","🫱🏻‍🫲🏿","🫱🏼","🫱🏼‍🫲🏻","🫱🏼‍🫲🏽","🫱🏼‍🫲🏾","🫱🏼‍🫲🏿","🫱🏽","🫱🏽‍🫲🏻","🫱🏽‍🫲🏼","🫱🏽‍🫲🏾","🫱🏽‍🫲🏿","🫱🏾","🫱🏾‍🫲🏻","🫱🏾‍🫲🏼","🫱🏾‍🫲🏽","🫱🏾‍🫲🏿","🫱🏿","🫱🏿‍🫲🏻","🫱🏿‍🫲🏼","🫱🏿‍🫲🏽","🫱🏿‍🫲🏾","🫲🏻","🫲🏼","🫲🏽","🫲🏾","🫲🏿","🫳🏻","🫳🏼","🫳🏽","🫳🏾","🫳🏿","🫴🏻","🫴🏼","🫴🏽","🫴🏾","🫴🏿","🫵🏻","🫵🏼","🫵🏽","🫵🏾","🫵🏿","🫶🏻","🫶🏼","🫶🏽","🫶🏾","🫶🏿","🫷🏻","🫷🏼","🫷🏽","🫷🏾","🫷🏿","🫸🏻","🫸🏼","🫸🏽","🫸🏾","🫸🏿"],Tv}var L3={},cee;function MGe(){if(cee)return L3;cee=1;var e=ee(1567,1600);return e.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),L3.characters=e,L3}var M3={},dee;function BGe(){if(dee)return M3;dee=1;var e=ee();return e.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),M3.characters=e,M3}var B3={},pee;function FGe(){if(pee)return B3;pee=1;var e=ee();return e.addRange(82944,83526),B3.characters=e,B3}var F3={},fee;function $Ge(){if(fee)return F3;fee=1;var e=ee(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(1536,1540).addRange(1542,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(66272,66299).addRange(69216,69246).addRange(69373,69375).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),F3.characters=e,F3}var $3={},hee;function qGe(){if(hee)return $3;hee=1;var e=ee();return e.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),$3.characters=e,$3}var q3={},mee;function UGe(){if(mee)return q3;mee=1;var e=ee();return e.addRange(68352,68405).addRange(68409,68415),q3.characters=e,q3}var U3={},yee;function VGe(){if(yee)return U3;yee=1;var e=ee();return e.addRange(6912,6988).addRange(6992,7038),U3.characters=e,U3}var V3={},gee;function WGe(){if(gee)return V3;gee=1;var e=ee();return e.addRange(42656,42743).addRange(92160,92728),V3.characters=e,V3}var W3={},vee;function GGe(){if(vee)return W3;vee=1;var e=ee();return e.addRange(92880,92909).addRange(92912,92917),W3.characters=e,W3}var G3={},bee;function KGe(){if(bee)return G3;bee=1;var e=ee();return e.addRange(7104,7155).addRange(7164,7167),G3.characters=e,G3}var K3={},xee;function HGe(){if(xee)return K3;xee=1;var e=ee(2482,2519,7376,7378,7384,7393,7402,7405,7410,43249);return e.addRange(2385,2386).addRange(2404,2405).addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(7381,7382).addRange(7413,7415),K3.characters=e,K3}var H3={},Ree;function zGe(){if(Ree)return H3;Ree=1;var e=ee();return e.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),H3.characters=e,H3}var z3={},Eee;function XGe(){if(Eee)return z3;Eee=1;var e=ee(12336,12343,12539);return e.addRange(746,747).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12330,12333).addRange(12549,12591).addRange(12704,12735).addRange(65093,65094).addRange(65377,65381),z3.characters=e,z3}var X3={},See;function JGe(){if(See)return X3;See=1;var e=ee(69759);return e.addRange(69632,69709).addRange(69714,69749),X3.characters=e,X3}var J3={},Tee;function YGe(){if(Tee)return J3;Tee=1;var e=ee();return e.addRange(10240,10495),J3.characters=e,J3}var Y3={},wee;function QGe(){if(wee)return Y3;wee=1;var e=ee(43471);return e.addRange(6656,6683).addRange(6686,6687),Y3.characters=e,Y3}var Q3={},Pee;function ZGe(){if(Pee)return Q3;Pee=1;var e=ee();return e.addRange(5941,5942).addRange(5952,5971),Q3.characters=e,Q3}var Z3={},Aee;function eKe(){if(Aee)return Z3;Aee=1;var e=ee();return e.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),Z3.characters=e,Z3}var ew={},Iee;function tKe(){if(Iee)return ew;Iee=1;var e=ee();return e.addRange(66208,66256),ew.characters=e,ew}var tw={},Cee;function rKe(){if(Cee)return tw;Cee=1;var e=ee(66927);return e.addRange(66864,66915),tw.characters=e,tw}var rw={},jee;function aKe(){if(jee)return rw;jee=1;var e=ee();return e.addRange(2534,2543).addRange(4160,4169).addRange(69888,69940).addRange(69942,69959),rw.characters=e,rw}var aw={},Oee;function nKe(){if(Oee)return aw;Oee=1;var e=ee();return e.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),aw.characters=e,aw}var nw={},_ee;function sKe(){if(_ee)return nw;_ee=1;var e=ee();return e.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),nw.characters=e,nw}var sw={},Nee;function iKe(){if(Nee)return sw;Nee=1;var e=ee();return e.addRange(69552,69579),sw.characters=e,sw}var iw={},kee;function oKe(){if(kee)return iw;kee=1;var e=ee(215,247,884,894,901,903,1541,1757,2274,3647,12292,12306,12320,12342,12783,12927,13311,43867,65279,119970,119995,120134,129008,917505);return e.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(4053,4056).addRange(5867,5869).addRange(8192,8203).addRange(8206,8238).addRange(8240,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11842).addRange(11844,11869).addRange(12272,12288).addRange(12872,12895).addRange(12977,12991).addRange(13004,13007).addRange(13169,13178).addRange(13184,13279).addRange(19904,19967).addRange(42760,42785).addRange(42888,42890).addRange(43882,43883).addRange(65040,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65376).addRange(65504,65510).addRange(65512,65518),e.addRange(65529,65533).addRange(65936,65948).addRange(66e3,66044).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119666,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127584,127589).addRange(127744,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886),e.addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),iw.characters=e,iw}var ow={},Dee;function lKe(){if(Dee)return ow;Dee=1;var e=ee();return e.addRange(994,1007).addRange(11392,11507).addRange(11513,11519).addRange(66272,66299),ow.characters=e,ow}var lw={},Lee;function uKe(){if(Lee)return lw;Lee=1;var e=ee();return e.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),lw.characters=e,lw}var uw={},Mee;function cKe(){if(Mee)return uw;Mee=1;var e=ee(67592,67644,67647);return e.addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),uw.characters=e,uw}var cw={},Bee;function dKe(){if(Bee)return cw;Bee=1;var e=ee();return e.addRange(65792,65793).addRange(77712,77810),cw.characters=e,cw}var dw={},Fee;function pKe(){if(Fee)return dw;Fee=1;var e=ee(7467,7544,7672,11843,123023);return e.addRange(1024,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071).addRange(122928,122989),dw.characters=e,dw}var pw={},$ee;function fKe(){if($ee)return pw;$ee=1;var e=ee();return e.addRange(66560,66639),pw.characters=e,pw}var fw={},qee;function hKe(){if(qee)return fw;qee=1;var e=ee(8432);return e.addRange(2304,2386).addRange(2389,2431).addRange(7376,7414).addRange(7416,7417).addRange(43056,43065).addRange(43232,43263).addRange(72448,72457),fw.characters=e,fw}var hw={},Uee;function mKe(){if(Uee)return hw;Uee=1;var e=ee(71945);return e.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),hw.characters=e,hw}var mw={},Vee;function yKe(){if(Vee)return mw;Vee=1;var e=ee();return e.addRange(2404,2415).addRange(43056,43065).addRange(71680,71739),mw.characters=e,mw}var yw={},Wee;function gKe(){if(Wee)return yw;Wee=1;var e=ee();return e.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827),yw.characters=e,yw}var gw={},Gee;function vKe(){if(Gee)return gw;Gee=1;var e=ee();return e.addRange(77824,78933),gw.characters=e,gw}var vw={},Kee;function bKe(){if(Kee)return vw;Kee=1;var e=ee();return e.addRange(66816,66855),vw.characters=e,vw}var bw={},Hee;function xKe(){if(Hee)return bw;Hee=1;var e=ee();return e.addRange(69600,69622),bw.characters=e,bw}var xw={},zee;function RKe(){if(zee)return xw;zee=1;var e=ee(4696,4800);return e.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),xw.characters=e,xw}var Rw={},Xee;function EKe(){if(Xee)return Rw;Xee=1;var e=ee(4295,4301,11559,11565);return e.addRange(4256,4293).addRange(4304,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),Rw.characters=e,Rw}var Ew={},Jee;function SKe(){if(Jee)return Ew;Jee=1;var e=ee(1156,1159,11843,42607);return e.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),Ew.characters=e,Ew}var Sw={},Yee;function TKe(){if(Yee)return Sw;Yee=1;var e=ee();return e.addRange(66352,66378),Sw.characters=e,Sw}var Tw={},Qee;function wKe(){if(Qee)return Tw;Qee=1;var e=ee(7376,8432,70480,70487,73683);return e.addRange(2385,2386).addRange(2404,2405).addRange(3046,3059).addRange(7378,7379).addRange(7410,7412).addRange(7416,7417).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(73680,73681),Tw.characters=e,Tw}var ww={},Zee;function PKe(){if(Zee)return ww;Zee=1;var e=ee(834,837,895,900,902,908,8025,8027,8029,8486,43877,65952);return e.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7615,7617).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),ww.characters=e,ww}var Pw={},ete;function AKe(){if(ete)return Pw;ete=1;var e=ee(2768);return e.addRange(2385,2386).addRange(2404,2405).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(43056,43065),Pw.characters=e,Pw}var Aw={},tte;function IKe(){if(tte)return Aw;tte=1;var e=ee();return e.addRange(2404,2405).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),Aw.characters=e,Aw}var Iw={},rte;function CKe(){if(rte)return Iw;rte=1;var e=ee(2620,2641,2654);return e.addRange(2385,2386).addRange(2404,2405).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(43056,43065),Iw.characters=e,Iw}var Cw={},ate;function jKe(){if(ate)return Cw;ate=1;var e=ee(12336,12539,13055);return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12289,12291).addRange(12293,12305).addRange(12307,12319).addRange(12321,12333).addRange(12343,12351).addRange(12688,12703).addRange(12736,12771).addRange(12832,12871).addRange(12928,12976).addRange(12992,13003).addRange(13144,13168).addRange(13179,13183).addRange(13280,13310).addRange(13312,19903).addRange(19968,40959).addRange(42752,42759).addRange(63744,64109).addRange(64112,64217).addRange(65093,65094).addRange(65377,65381).addRange(94178,94179).addRange(94192,94193).addRange(119648,119665).addRange(127568,127569).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),Cw.characters=e,Cw}var jw={},nte;function OKe(){if(nte)return jw;nte=1;var e=ee(12343,12539);return e.addRange(4352,4607).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12334,12336).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65093,65094).addRange(65377,65381).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),jw.characters=e,jw}var Ow={},ste;function _Ke(){if(ste)return Ow;ste=1;var e=ee(1548,1563,1567,1600,1748);return e.addRange(68864,68903).addRange(68912,68921),Ow.characters=e,Ow}var _w={},ite;function NKe(){if(ite)return _w;ite=1;var e=ee();return e.addRange(5920,5942),_w.characters=e,_w}var Nw={},ote;function kKe(){if(ote)return Nw;ote=1;var e=ee();return e.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),Nw.characters=e,Nw}var kw={},lte;function DKe(){if(lte)return kw;lte=1;var e=ee(64318);return e.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),kw.characters=e,kw}var Dw={},ute;function LKe(){if(ute)return Dw;ute=1;var e=ee(12343,65392,110898,127488);return e.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12353,12438).addRange(12441,12448).addRange(12539,12540).addRange(65093,65094).addRange(65377,65381).addRange(65438,65439).addRange(110593,110879).addRange(110928,110930),Dw.characters=e,Dw}var Lw={},cte;function MKe(){if(cte)return Lw;cte=1;var e=ee();return e.addRange(67648,67669).addRange(67671,67679),Lw.characters=e,Lw}var Mw={},dte;function BKe(){if(dte)return Mw;dte=1;var e=ee(7673,66045);return e.addRange(768,833).addRange(835,836).addRange(838,866).addRange(2387,2388).addRange(6832,6862).addRange(7618,7671).addRange(7675,7679).addRange(8204,8205).addRange(8400,8431).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),Mw.characters=e,Mw}var Bw={},pte;function FKe(){if(pte)return Bw;pte=1;var e=ee();return e.addRange(68448,68466).addRange(68472,68479),Bw.characters=e,Bw}var Fw={},fte;function $Ke(){if(fte)return Fw;fte=1;var e=ee();return e.addRange(68416,68437).addRange(68440,68447),Fw.characters=e,Fw}var $w={},hte;function qKe(){if(hte)return $w;hte=1;var e=ee();return e.addRange(43392,43469).addRange(43471,43481).addRange(43486,43487),$w.characters=e,$w}var qw={},mte;function UKe(){if(mte)return qw;mte=1;var e=ee(69837);return e.addRange(2406,2415).addRange(43056,43065).addRange(69760,69826),qw.characters=e,qw}var Uw={},yte;function VKe(){if(yte)return Uw;yte=1;var e=ee(7376,7378,7386,7410,7412);return e.addRange(2385,2386).addRange(2404,2405).addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(43056,43061),Uw.characters=e,Uw}var Vw={},gte;function WKe(){if(gte)return Vw;gte=1;var e=ee(12343,110592,110933);return e.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12441,12444).addRange(12448,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65093,65094).addRange(65377,65439).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),Vw.characters=e,Vw}var Ww={},vte;function GKe(){if(vte)return Ww;vte=1;var e=ee();return e.addRange(73472,73488).addRange(73490,73530).addRange(73534,73561),Ww.characters=e,Ww}var Gw={},bte;function KKe(){if(bte)return Gw;bte=1;var e=ee();return e.addRange(43264,43311),Gw.characters=e,Gw}var Kw={},xte;function HKe(){if(xte)return Kw;xte=1;var e=ee();return e.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),Kw.characters=e,Kw}var Hw={},Rte;function zKe(){if(Rte)return Hw;Rte=1;var e=ee(94180);return e.addRange(101120,101589),Hw.characters=e,Hw}var zw={},Ete;function XKe(){if(Ete)return zw;Ete=1;var e=ee();return e.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),zw.characters=e,zw}var Xw={},Ste;function JKe(){if(Ste)return Xw;Ste=1;var e=ee();return e.addRange(2790,2799).addRange(43056,43065).addRange(70144,70161).addRange(70163,70209),Xw.characters=e,Xw}var Jw={},Tte;function YKe(){if(Tte)return Jw;Tte=1;var e=ee();return e.addRange(2404,2405).addRange(43056,43065).addRange(70320,70378).addRange(70384,70393),Jw.characters=e,Jw}var Yw={},wte;function QKe(){if(wte)return Yw;wte=1;var e=ee(3716,3749,3782);return e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807),Yw.characters=e,Yw}var Qw={},Pte;function ZKe(){if(Pte)return Qw;Pte=1;var e=ee(170,186,4347,8239,8305,8319,8432,8498,8526,42963,43310);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(867,879).addRange(1157,1158).addRange(2385,2386).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42752,42759).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654).addRange(122661,122666),Qw.characters=e,Qw}var Zw={},Ate;function eHe(){if(Ate)return Zw;Ate=1;var e=ee();return e.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),Zw.characters=e,Zw}var eP={},Ite;function tHe(){if(Ite)return eP;Ite=1;var e=ee(2405,6464);return e.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),eP.characters=e,eP}var tP={},Cte;function rHe(){if(Cte)return tP;Cte=1;var e=ee();return e.addRange(65799,65843).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),tP.characters=e,tP}var rP={},jte;function aHe(){if(jte)return rP;jte=1;var e=ee();return e.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855),rP.characters=e,rP}var aP={},Ote;function nHe(){if(Ote)return aP;Ote=1;var e=ee(73648);return e.addRange(42192,42239),aP.characters=e,aP}var nP={},_te;function sHe(){if(_te)return nP;_te=1;var e=ee();return e.addRange(66176,66204),nP.characters=e,nP}var sP={},Nte;function iHe(){if(Nte)return sP;Nte=1;var e=ee(67903);return e.addRange(67872,67897),sP.characters=e,sP}var iP={},kte;function oHe(){if(kte)return iP;kte=1;var e=ee();return e.addRange(2404,2415).addRange(43056,43065).addRange(69968,70006),iP.characters=e,iP}var oP={},Dte;function lHe(){if(Dte)return oP;Dte=1;var e=ee();return e.addRange(73440,73464),oP.characters=e,oP}var lP={},Lte;function uHe(){if(Lte)return lP;Lte=1;var e=ee(7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(43056,43058),lP.characters=e,lP}var uP={},Mte;function cHe(){if(Mte)return uP;Mte=1;var e=ee(1600,2142);return e.addRange(2112,2139),uP.characters=e,uP}var cP={},Bte;function dHe(){if(Bte)return cP;Bte=1;var e=ee(1600);return e.addRange(68288,68326).addRange(68331,68342),cP.characters=e,cP}var dP={},Fte;function pHe(){if(Fte)return dP;Fte=1;var e=ee();return e.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),dP.characters=e,dP}var pP={},$te;function fHe(){if($te)return pP;$te=1;var e=ee(73018);return e.addRange(2404,2405).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),pP.characters=e,pP}var fP={},qte;function hHe(){if(qte)return fP;qte=1;var e=ee();return e.addRange(93760,93850),fP.characters=e,fP}var hP={},Ute;function mHe(){if(Ute)return hP;Ute=1;var e=ee();return e.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),hP.characters=e,hP}var mP={},Vte;function yHe(){if(Vte)return mP;Vte=1;var e=ee();return e.addRange(124928,125124).addRange(125127,125142),mP.characters=e,mP}var yP={},Wte;function gHe(){if(Wte)return yP;Wte=1;var e=ee();return e.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),yP.characters=e,yP}var gP={},Gte;function vHe(){if(Gte)return gP;Gte=1;var e=ee();return e.addRange(67968,67999),gP.characters=e,gP}var vP={},Kte;function bHe(){if(Kte)return vP;Kte=1;var e=ee();return e.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),vP.characters=e,vP}var bP={},Hte;function xHe(){if(Hte)return bP;Hte=1;var e=ee();return e.addRange(43056,43065).addRange(71168,71236).addRange(71248,71257),bP.characters=e,bP}var xP={},zte;function RHe(){if(zte)return xP;zte=1;var e=ee(8239);return e.addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),xP.characters=e,xP}var RP={},Xte;function EHe(){if(Xte)return RP;Xte=1;var e=ee();return e.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),RP.characters=e,RP}var EP={},Jte;function SHe(){if(Jte)return EP;Jte=1;var e=ee(70280);return e.addRange(2662,2671).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),EP.characters=e,EP}var SP={},Yte;function THe(){if(Yte)return SP;Yte=1;var e=ee(43310);return e.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),SP.characters=e,SP}var TP={},Qte;function wHe(){if(Qte)return TP;Qte=1;var e=ee();return e.addRange(67712,67742).addRange(67751,67759),TP.characters=e,TP}var wP={},Zte;function PHe(){if(Zte)return wP;Zte=1;var e=ee();return e.addRange(124112,124153),wP.characters=e,wP}var PP={},ere;function AHe(){if(ere)return PP;ere=1;var e=ee(7401,7410,7418);return e.addRange(2404,2405).addRange(3302,3311).addRange(43056,43061).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),PP.characters=e,PP}var AP={},tre;function IHe(){if(tre)return AP;tre=1;var e=ee();return e.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),AP.characters=e,AP}var IP={},rre;function CHe(){if(rre)return IP;rre=1;var e=ee();return e.addRange(70656,70747).addRange(70749,70753),IP.characters=e,IP}var CP={},are;function jHe(){if(are)return CP;are=1;var e=ee(1548,1563,1567);return e.addRange(1984,2042).addRange(2045,2047).addRange(64830,64831),CP.characters=e,CP}var jP={},nre;function OHe(){if(nre)return jP;nre=1;var e=ee(94177);return e.addRange(110960,111355),jP.characters=e,jP}var OP={},sre;function _He(){if(sre)return OP;sre=1;var e=ee();return e.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),OP.characters=e,OP}var _P={},ire;function NHe(){if(ire)return _P;ire=1;var e=ee();return e.addRange(5760,5788),_P.characters=e,_P}var NP={},ore;function kHe(){if(ore)return NP;ore=1;var e=ee();return e.addRange(7248,7295),NP.characters=e,NP}var kP={},lre;function DHe(){if(lre)return kP;lre=1;var e=ee();return e.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),kP.characters=e,kP}var DP={},ure;function LHe(){if(ure)return DP;ure=1;var e=ee();return e.addRange(66304,66339).addRange(66349,66351),DP.characters=e,DP}var LP={},cre;function MHe(){if(cre)return LP;cre=1;var e=ee();return e.addRange(68224,68255),LP.characters=e,LP}var MP={},dre;function BHe(){if(dre)return MP;dre=1;var e=ee(1155);return e.addRange(66384,66426),MP.characters=e,MP}var BP={},pre;function FHe(){if(pre)return BP;pre=1;var e=ee();return e.addRange(66464,66499).addRange(66504,66517),BP.characters=e,BP}var FP={},fre;function $He(){if(fre)return FP;fre=1;var e=ee();return e.addRange(69376,69415),FP.characters=e,FP}var $P={},hre;function qHe(){if(hre)return $P;hre=1;var e=ee();return e.addRange(68192,68223),$P.characters=e,$P}var qP={},mre;function UHe(){if(mre)return qP;mre=1;var e=ee();return e.addRange(68608,68680),qP.characters=e,qP}var UP={},yre;function VHe(){if(yre)return UP;yre=1;var e=ee(1600,68338);return e.addRange(69488,69513),UP.characters=e,UP}var VP={},gre;function WHe(){if(gre)return VP;gre=1;var e=ee(7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),VP.characters=e,VP}var WP={},vre;function GHe(){if(vre)return WP;vre=1;var e=ee();return e.addRange(66736,66771).addRange(66776,66811),WP.characters=e,WP}var GP={},bre;function KHe(){if(bre)return GP;bre=1;var e=ee();return e.addRange(66688,66717).addRange(66720,66729),GP.characters=e,GP}var KP={},xre;function HHe(){if(xre)return KP;xre=1;var e=ee();return e.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),KP.characters=e,KP}var HP={},Rre;function zHe(){if(Rre)return HP;Rre=1;var e=ee();return e.addRange(67680,67711),HP.characters=e,HP}var zP={},Ere;function XHe(){if(Ere)return zP;Ere=1;var e=ee();return e.addRange(72384,72440),zP.characters=e,zP}var XP={},Sre;function JHe(){if(Sre)return XP;Sre=1;var e=ee(6149);return e.addRange(6146,6147).addRange(43072,43127),XP.characters=e,XP}var JP={},Tre;function YHe(){if(Tre)return JP;Tre=1;var e=ee(67871);return e.addRange(67840,67867),JP.characters=e,JP}var YP={},wre;function QHe(){if(wre)return YP;wre=1;var e=ee(1600);return e.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),YP.characters=e,YP}var QP={},Pre;function ZHe(){if(Pre)return QP;Pre=1;var e=ee(43359);return e.addRange(43312,43347),QP.characters=e,QP}var ZP={},Are;function eze(){if(Are)return ZP;Are=1;var e=ee();return e.addRange(5792,5866).addRange(5870,5880),ZP.characters=e,ZP}var eA={},Ire;function tze(){if(Ire)return eA;Ire=1;var e=ee();return e.addRange(2048,2093).addRange(2096,2110),eA.characters=e,eA}var tA={},Cre;function rze(){if(Cre)return tA;Cre=1;var e=ee();return e.addRange(43136,43205).addRange(43214,43225),tA.characters=e,tA}var rA={},jre;function aze(){if(jre)return rA;jre=1;var e=ee(2385,7383,7385,7392,43064);return e.addRange(7388,7389).addRange(43056,43061).addRange(70016,70111),rA.characters=e,rA}var aA={},Ore;function nze(){if(Ore)return aA;Ore=1;var e=ee();return e.addRange(66640,66687),aA.characters=e,aA}var nA={},_re;function sze(){if(_re)return nA;_re=1;var e=ee();return e.addRange(71040,71093).addRange(71096,71133),nA.characters=e,nA}var sA={},Nre;function ize(){if(Nre)return sA;Nre=1;var e=ee();return e.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),sA.characters=e,sA}var iA={},kre;function oze(){if(kre)return iA;kre=1;var e=ee(3517,3530,3542,7410);return e.addRange(2404,2405).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),iA.characters=e,iA}var oA={},Dre;function lze(){if(Dre)return oA;Dre=1;var e=ee(1600);return e.addRange(69424,69465),oA.characters=e,oA}var lA={},Lre;function uze(){if(Lre)return lA;Lre=1;var e=ee();return e.addRange(69840,69864).addRange(69872,69881),lA.characters=e,lA}var uA={},Mre;function cze(){if(Mre)return uA;Mre=1;var e=ee();return e.addRange(72272,72354),uA.characters=e,uA}var cA={},Bre;function dze(){if(Bre)return cA;Bre=1;var e=ee();return e.addRange(7040,7103).addRange(7360,7367),cA.characters=e,cA}var dA={},Fre;function pze(){if(Fre)return dA;Fre=1;var e=ee();return e.addRange(2404,2405).addRange(2534,2543).addRange(43008,43052),dA.characters=e,dA}var pA={},$re;function fze(){if($re)return pA;$re=1;var e=ee(1548,1567,1600,1648,7672,7674);return e.addRange(1563,1564).addRange(1611,1621).addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),pA.characters=e,pA}var fA={},qre;function hze(){if(qre)return fA;qre=1;var e=ee(5919);return e.addRange(5888,5909).addRange(5941,5942),fA.characters=e,fA}var hA={},Ure;function mze(){if(Ure)return hA;Ure=1;var e=ee();return e.addRange(5941,5942).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),hA.characters=e,hA}var mA={},Vre;function yze(){if(Vre)return mA;Vre=1;var e=ee();return e.addRange(4160,4169).addRange(6480,6509).addRange(6512,6516),mA.characters=e,mA}var yA={},Wre;function gze(){if(Wre)return yA;Wre=1;var e=ee();return e.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),yA.characters=e,yA}var gA={},Gre;function vze(){if(Gre)return gA;Gre=1;var e=ee();return e.addRange(43648,43714).addRange(43739,43743),gA.characters=e,gA}var vA={},Kre;function bze(){if(Kre)return vA;Kre=1;var e=ee();return e.addRange(2404,2405).addRange(43056,43065).addRange(71296,71353).addRange(71360,71369),vA.characters=e,vA}var bA={},Hre;function xze(){if(Hre)return bA;Hre=1;var e=ee(2972,3024,3031,7386,43251,70401,70403,73727);return e.addRange(2385,2386).addRange(2404,2405).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(70459,70460).addRange(73664,73713),bA.characters=e,bA}var xA={},zre;function Rze(){if(zre)return xA;zre=1;var e=ee();return e.addRange(92784,92862).addRange(92864,92873),xA.characters=e,xA}var RA={},Xre;function Eze(){if(Xre)return RA;Xre=1;var e=ee(94176);return e.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),RA.characters=e,RA}var EA={},Jre;function Sze(){if(Jre)return EA;Jre=1;var e=ee(3165,7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),EA.characters=e,EA}var SA={},Yre;function Tze(){if(Yre)return SA;Yre=1;var e=ee(1548,1567,65010,65021);return e.addRange(1563,1564).addRange(1632,1641).addRange(1920,1969),SA.characters=e,SA}var TA={},Qre;function wze(){if(Qre)return TA;Qre=1;var e=ee();return e.addRange(3585,3642).addRange(3648,3675),TA.characters=e,TA}var wA={},Zre;function Pze(){if(Zre)return wA;Zre=1;var e=ee();return e.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),wA.characters=e,wA}var PA={},eae;function Aze(){if(eae)return PA;eae=1;var e=ee(11647);return e.addRange(11568,11623).addRange(11631,11632),PA.characters=e,PA}var AA={},tae;function Ize(){if(tae)return AA;tae=1;var e=ee(7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(43056,43065).addRange(70784,70855).addRange(70864,70873),AA.characters=e,AA}var IA={},rae;function Cze(){if(rae)return IA;rae=1;var e=ee();return e.addRange(123536,123566),IA.characters=e,IA}var CA={},aae;function jze(){if(aae)return CA;aae=1;var e=ee(66463);return e.addRange(66432,66461),CA.characters=e,CA}var jA={},nae;function Oze(){if(nae)return jA;nae=1;var e=ee();return e.addRange(42240,42539),jA.characters=e,jA}var OA={},sae;function _ze(){if(sae)return OA;sae=1;var e=ee();return e.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),OA.characters=e,OA}var _A={},iae;function Nze(){if(iae)return _A;iae=1;var e=ee(123647);return e.addRange(123584,123641),_A.characters=e,_A}var NA={},oae;function kze(){if(oae)return NA;oae=1;var e=ee(71935);return e.addRange(71840,71922),NA.characters=e,NA}var kA={},lae;function Dze(){if(lae)return kA;lae=1;var e=ee(1548,1563,1567);return e.addRange(1632,1641).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),kA.characters=e,kA}var DA={},uae;function Lze(){if(uae)return DA;uae=1;var e=ee(12539);return e.addRange(12289,12290).addRange(12296,12305).addRange(12308,12315).addRange(40960,42124).addRange(42128,42182).addRange(65377,65381),DA.characters=e,DA}var LA={},cae;function Mze(){if(cae)return LA;cae=1;var e=ee();return e.addRange(72192,72263),LA.characters=e,LA}var MA={},dae;function Bze(){if(dae)return MA;dae=1;var e=ee();return e.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),MA.characters=e,MA}var BA={},pae;function Fze(){if(pae)return BA;pae=1;var e=ee();return e.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),BA.characters=e,BA}var FA={},fae;function $ze(){if(fae)return FA;fae=1;var e=ee();return e.addRange(82944,83526),FA.characters=e,FA}var $A={},hae;function qze(){if(hae)return $A;hae=1;var e=ee(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(1536,1540).addRange(1542,1547).addRange(1549,1562).addRange(1564,1566).addRange(1568,1599).addRange(1601,1610).addRange(1622,1647).addRange(1649,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64829).addRange(64832,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(69216,69246).addRange(69373,69375).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),$A.characters=e,$A}var qA={},mae;function Uze(){if(mae)return qA;mae=1;var e=ee();return e.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),qA.characters=e,qA}var UA={},yae;function Vze(){if(yae)return UA;yae=1;var e=ee();return e.addRange(68352,68405).addRange(68409,68415),UA.characters=e,UA}var VA={},gae;function Wze(){if(gae)return VA;gae=1;var e=ee();return e.addRange(6912,6988).addRange(6992,7038),VA.characters=e,VA}var WA={},vae;function Gze(){if(vae)return WA;vae=1;var e=ee();return e.addRange(42656,42743).addRange(92160,92728),WA.characters=e,WA}var GA={},bae;function Kze(){if(bae)return GA;bae=1;var e=ee();return e.addRange(92880,92909).addRange(92912,92917),GA.characters=e,GA}var KA={},xae;function Hze(){if(xae)return KA;xae=1;var e=ee();return e.addRange(7104,7155).addRange(7164,7167),KA.characters=e,KA}var HA={},Rae;function zze(){if(Rae)return HA;Rae=1;var e=ee(2482,2519);return e.addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558),HA.characters=e,HA}var zA={},Eae;function Xze(){if(Eae)return zA;Eae=1;var e=ee();return e.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),zA.characters=e,zA}var XA={},Sae;function Jze(){if(Sae)return XA;Sae=1;var e=ee();return e.addRange(746,747).addRange(12549,12591).addRange(12704,12735),XA.characters=e,XA}var JA={},Tae;function Yze(){if(Tae)return JA;Tae=1;var e=ee(69759);return e.addRange(69632,69709).addRange(69714,69749),JA.characters=e,JA}var YA={},wae;function Qze(){if(wae)return YA;wae=1;var e=ee();return e.addRange(10240,10495),YA.characters=e,YA}var QA={},Pae;function Zze(){if(Pae)return QA;Pae=1;var e=ee();return e.addRange(6656,6683).addRange(6686,6687),QA.characters=e,QA}var ZA={},Aae;function eXe(){if(Aae)return ZA;Aae=1;var e=ee();return e.addRange(5952,5971),ZA.characters=e,ZA}var eI={},Iae;function tXe(){if(Iae)return eI;Iae=1;var e=ee();return e.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),eI.characters=e,eI}var tI={},Cae;function rXe(){if(Cae)return tI;Cae=1;var e=ee();return e.addRange(66208,66256),tI.characters=e,tI}var rI={},jae;function aXe(){if(jae)return rI;jae=1;var e=ee(66927);return e.addRange(66864,66915),rI.characters=e,rI}var aI={},Oae;function nXe(){if(Oae)return aI;Oae=1;var e=ee();return e.addRange(69888,69940).addRange(69942,69959),aI.characters=e,aI}var nI={},_ae;function sXe(){if(_ae)return nI;_ae=1;var e=ee();return e.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),nI.characters=e,nI}var sI={},Nae;function iXe(){if(Nae)return sI;Nae=1;var e=ee();return e.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),sI.characters=e,sI}var iI={},kae;function oXe(){if(kae)return iI;kae=1;var e=ee();return e.addRange(69552,69579),iI.characters=e,iI}var oI={},Dae;function lXe(){if(Dae)return oI;Dae=1;var e=ee(215,247,884,894,901,903,1541,1548,1563,1567,1600,1757,2274,3647,4347,6149,7379,7393,7418,12294,12448,12783,13055,43310,43471,43867,65279,65392,119970,119995,120134,129008,917505);return e.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(2404,2405).addRange(4053,4056).addRange(5867,5869).addRange(5941,5942).addRange(6146,6147).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(8192,8203).addRange(8206,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11869).addRange(12272,12292).addRange(12296,12320).addRange(12336,12343).addRange(12348,12351).addRange(12443,12444).addRange(12539,12540).addRange(12688,12703).addRange(12736,12771).addRange(12832,12895).addRange(12927,13007).addRange(13144,13311).addRange(19904,19967).addRange(42752,42785).addRange(42888,42890).addRange(43056,43065).addRange(43882,43883),e.addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65381).addRange(65438,65439).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(65936,65948).addRange(66e3,66044).addRange(66273,66299).addRange(113824,113827).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269),e.addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128732,128748).addRange(128752,128764).addRange(128768,128886).addRange(128891,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),oI.characters=e,oI}var lI={},Lae;function uXe(){if(Lae)return lI;Lae=1;var e=ee();return e.addRange(994,1007).addRange(11392,11507).addRange(11513,11519),lI.characters=e,lI}var uI={},Mae;function cXe(){if(Mae)return uI;Mae=1;var e=ee();return e.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),uI.characters=e,uI}var cI={},Bae;function dXe(){if(Bae)return cI;Bae=1;var e=ee(67592,67644,67647);return e.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),cI.characters=e,cI}var dI={},Fae;function pXe(){if(Fae)return dI;Fae=1;var e=ee();return e.addRange(77712,77810),dI.characters=e,dI}var pI={},$ae;function fXe(){if($ae)return pI;$ae=1;var e=ee(7467,7544,123023);return e.addRange(1024,1156).addRange(1159,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071).addRange(122928,122989),pI.characters=e,pI}var fI={},qae;function hXe(){if(qae)return fI;qae=1;var e=ee();return e.addRange(66560,66639),fI.characters=e,fI}var hI={},Uae;function mXe(){if(Uae)return hI;Uae=1;var e=ee();return e.addRange(2304,2384).addRange(2389,2403).addRange(2406,2431).addRange(43232,43263).addRange(72448,72457),hI.characters=e,hI}var mI={},Vae;function yXe(){if(Vae)return mI;Vae=1;var e=ee(71945);return e.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),mI.characters=e,mI}var yI={},Wae;function gXe(){if(Wae)return yI;Wae=1;var e=ee();return e.addRange(71680,71739),yI.characters=e,yI}var gI={},Gae;function vXe(){if(Gae)return gI;Gae=1;var e=ee();return e.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113823),gI.characters=e,gI}var vI={},Kae;function bXe(){if(Kae)return vI;Kae=1;var e=ee();return e.addRange(77824,78933),vI.characters=e,vI}var bI={},Hae;function xXe(){if(Hae)return bI;Hae=1;var e=ee();return e.addRange(66816,66855),bI.characters=e,bI}var xI={},zae;function RXe(){if(zae)return xI;zae=1;var e=ee();return e.addRange(69600,69622),xI.characters=e,xI}var RI={},Xae;function EXe(){if(Xae)return RI;Xae=1;var e=ee(4696,4800);return e.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),RI.characters=e,RI}var EI={},Jae;function SXe(){if(Jae)return EI;Jae=1;var e=ee(4295,4301,11559,11565);return e.addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),EI.characters=e,EI}var SI={},Yae;function TXe(){if(Yae)return SI;Yae=1;var e=ee();return e.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),SI.characters=e,SI}var TI={},Qae;function wXe(){if(Qae)return TI;Qae=1;var e=ee();return e.addRange(66352,66378),TI.characters=e,TI}var wI={},Zae;function PXe(){if(Zae)return wI;Zae=1;var e=ee(70480,70487);return e.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70460,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516),wI.characters=e,wI}var PI={},ene;function AXe(){if(ene)return PI;ene=1;var e=ee(895,900,902,908,7615,8025,8027,8029,8486,43877,65952);return e.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),PI.characters=e,PI}var AI={},tne;function IXe(){if(tne)return AI;tne=1;var e=ee(2768);return e.addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815),AI.characters=e,AI}var II={},rne;function CXe(){if(rne)return II;rne=1;var e=ee();return e.addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),II.characters=e,II}var CI={},ane;function jXe(){if(ane)return CI;ane=1;var e=ee(2620,2641,2654);return e.addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678),CI.characters=e,CI}var jI={},nne;function OXe(){if(nne)return jI;nne=1;var e=ee(12293,12295);return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12321,12329).addRange(12344,12347).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94178,94179).addRange(94192,94193).addRange(131072,173791).addRange(173824,177977).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,205743),jI.characters=e,jI}var OI={},sne;function _Xe(){if(sne)return OI;sne=1;var e=ee();return e.addRange(4352,4607).addRange(12334,12335).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),OI.characters=e,OI}var _I={},ine;function NXe(){if(ine)return _I;ine=1;var e=ee();return e.addRange(68864,68903).addRange(68912,68921),_I.characters=e,_I}var NI={},one;function kXe(){if(one)return NI;one=1;var e=ee();return e.addRange(5920,5940),NI.characters=e,NI}var kI={},lne;function DXe(){if(lne)return kI;lne=1;var e=ee();return e.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),kI.characters=e,kI}var DI={},une;function LXe(){if(une)return DI;une=1;var e=ee(64318);return e.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),DI.characters=e,DI}var LI={},cne;function MXe(){if(cne)return LI;cne=1;var e=ee(110898,127488);return e.addRange(12353,12438).addRange(12445,12447).addRange(110593,110879).addRange(110928,110930),LI.characters=e,LI}var MI={},dne;function BXe(){if(dne)return MI;dne=1;var e=ee();return e.addRange(67648,67669).addRange(67671,67679),MI.characters=e,MI}var BI={},pne;function FXe(){if(pne)return BI;pne=1;var e=ee(1648,7405,7412,66045,66272,70459);return e.addRange(768,879).addRange(1157,1158).addRange(1611,1621).addRange(2385,2388).addRange(6832,6862).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8204,8205).addRange(8400,8432).addRange(12330,12333).addRange(12441,12442).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),BI.characters=e,BI}var FI={},fne;function $Xe(){if(fne)return FI;fne=1;var e=ee();return e.addRange(68448,68466).addRange(68472,68479),FI.characters=e,FI}var $I={},hne;function qXe(){if(hne)return $I;hne=1;var e=ee();return e.addRange(68416,68437).addRange(68440,68447),$I.characters=e,$I}var qI={},mne;function UXe(){if(mne)return qI;mne=1;var e=ee();return e.addRange(43392,43469).addRange(43472,43481).addRange(43486,43487),qI.characters=e,qI}var UI={},yne;function VXe(){if(yne)return UI;yne=1;var e=ee(69837);return e.addRange(69760,69826),UI.characters=e,UI}var VI={},gne;function WXe(){if(gne)return VI;gne=1;var e=ee();return e.addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315),VI.characters=e,VI}var WI={},vne;function GXe(){if(vne)return WI;vne=1;var e=ee(110592,110933);return e.addRange(12449,12538).addRange(12541,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65382,65391).addRange(65393,65437).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),WI.characters=e,WI}var GI={},bne;function KXe(){if(bne)return GI;bne=1;var e=ee();return e.addRange(73472,73488).addRange(73490,73530).addRange(73534,73561),GI.characters=e,GI}var KI={},xne;function HXe(){if(xne)return KI;xne=1;var e=ee(43311);return e.addRange(43264,43309),KI.characters=e,KI}var HI={},Rne;function zXe(){if(Rne)return HI;Rne=1;var e=ee();return e.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),HI.characters=e,HI}var zI={},Ene;function XXe(){if(Ene)return zI;Ene=1;var e=ee(94180);return e.addRange(101120,101589),zI.characters=e,zI}var XI={},Sne;function JXe(){if(Sne)return XI;Sne=1;var e=ee();return e.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),XI.characters=e,XI}var JI={},Tne;function YXe(){if(Tne)return JI;Tne=1;var e=ee();return e.addRange(70144,70161).addRange(70163,70209),JI.characters=e,JI}var YI={},wne;function QXe(){if(wne)return YI;wne=1;var e=ee();return e.addRange(70320,70378).addRange(70384,70393),YI.characters=e,YI}var QI={},Pne;function ZXe(){if(Pne)return QI;Pne=1;var e=ee(3716,3749,3782);return e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807),QI.characters=e,QI}var ZI={},Ane;function eJe(){if(Ane)return ZI;Ane=1;var e=ee(170,186,8305,8319,8498,8526,42963);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654).addRange(122661,122666),ZI.characters=e,ZI}var eC={},Ine;function tJe(){if(Ine)return eC;Ine=1;var e=ee();return e.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),eC.characters=e,eC}var tC={},Cne;function rJe(){if(Cne)return tC;Cne=1;var e=ee(6464);return e.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),tC.characters=e,tC}var rC={},jne;function aJe(){if(jne)return rC;jne=1;var e=ee();return e.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),rC.characters=e,rC}var aC={},One;function nJe(){if(One)return aC;One=1;var e=ee();return e.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),aC.characters=e,aC}var nC={},_ne;function sJe(){if(_ne)return nC;_ne=1;var e=ee(73648);return e.addRange(42192,42239),nC.characters=e,nC}var sC={},Nne;function iJe(){if(Nne)return sC;Nne=1;var e=ee();return e.addRange(66176,66204),sC.characters=e,sC}var iC={},kne;function oJe(){if(kne)return iC;kne=1;var e=ee(67903);return e.addRange(67872,67897),iC.characters=e,iC}var oC={},Dne;function lJe(){if(Dne)return oC;Dne=1;var e=ee();return e.addRange(69968,70006),oC.characters=e,oC}var lC={},Lne;function uJe(){if(Lne)return lC;Lne=1;var e=ee();return e.addRange(73440,73464),lC.characters=e,lC}var uC={},Mne;function cJe(){if(Mne)return uC;Mne=1;var e=ee();return e.addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455),uC.characters=e,uC}var cC={},Bne;function dJe(){if(Bne)return cC;Bne=1;var e=ee(2142);return e.addRange(2112,2139),cC.characters=e,cC}var dC={},Fne;function pJe(){if(Fne)return dC;Fne=1;var e=ee();return e.addRange(68288,68326).addRange(68331,68342),dC.characters=e,dC}var pC={},$ne;function fJe(){if($ne)return pC;$ne=1;var e=ee();return e.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),pC.characters=e,pC}var fC={},qne;function hJe(){if(qne)return fC;qne=1;var e=ee(73018);return e.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),fC.characters=e,fC}var hC={},Une;function mJe(){if(Une)return hC;Une=1;var e=ee();return e.addRange(93760,93850),hC.characters=e,hC}var mC={},Vne;function yJe(){if(Vne)return mC;Vne=1;var e=ee();return e.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),mC.characters=e,mC}var yC={},Wne;function gJe(){if(Wne)return yC;Wne=1;var e=ee();return e.addRange(124928,125124).addRange(125127,125142),yC.characters=e,yC}var gC={},Gne;function vJe(){if(Gne)return gC;Gne=1;var e=ee();return e.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),gC.characters=e,gC}var vC={},Kne;function bJe(){if(Kne)return vC;Kne=1;var e=ee();return e.addRange(67968,67999),vC.characters=e,vC}var bC={},Hne;function xJe(){if(Hne)return bC;Hne=1;var e=ee();return e.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),bC.characters=e,bC}var xC={},zne;function RJe(){if(zne)return xC;zne=1;var e=ee();return e.addRange(71168,71236).addRange(71248,71257),xC.characters=e,xC}var RC={},Xne;function EJe(){if(Xne)return RC;Xne=1;var e=ee(6148);return e.addRange(6144,6145).addRange(6150,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),RC.characters=e,RC}var EC={},Jne;function SJe(){if(Jne)return EC;Jne=1;var e=ee();return e.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),EC.characters=e,EC}var SC={},Yne;function TJe(){if(Yne)return SC;Yne=1;var e=ee(70280);return e.addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),SC.characters=e,SC}var TC={},Qne;function wJe(){if(Qne)return TC;Qne=1;var e=ee();return e.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),TC.characters=e,TC}var wC={},Zne;function PJe(){if(Zne)return wC;Zne=1;var e=ee();return e.addRange(67712,67742).addRange(67751,67759),wC.characters=e,wC}var PC={},ese;function AJe(){if(ese)return PC;ese=1;var e=ee();return e.addRange(124112,124153),PC.characters=e,PC}var AC={},tse;function IJe(){if(tse)return AC;tse=1;var e=ee();return e.addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),AC.characters=e,AC}var IC={},rse;function CJe(){if(rse)return IC;rse=1;var e=ee();return e.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),IC.characters=e,IC}var CC={},ase;function jJe(){if(ase)return CC;ase=1;var e=ee();return e.addRange(70656,70747).addRange(70749,70753),CC.characters=e,CC}var jC={},nse;function OJe(){if(nse)return jC;nse=1;var e=ee();return e.addRange(1984,2042).addRange(2045,2047),jC.characters=e,jC}var OC={},sse;function _Je(){if(sse)return OC;sse=1;var e=ee(94177);return e.addRange(110960,111355),OC.characters=e,OC}var _C={},ise;function NJe(){if(ise)return _C;ise=1;var e=ee();return e.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),_C.characters=e,_C}var NC={},ose;function kJe(){if(ose)return NC;ose=1;var e=ee();return e.addRange(5760,5788),NC.characters=e,NC}var kC={},lse;function DJe(){if(lse)return kC;lse=1;var e=ee();return e.addRange(7248,7295),kC.characters=e,kC}var DC={},use;function LJe(){if(use)return DC;use=1;var e=ee();return e.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),DC.characters=e,DC}var LC={},cse;function MJe(){if(cse)return LC;cse=1;var e=ee();return e.addRange(66304,66339).addRange(66349,66351),LC.characters=e,LC}var MC={},dse;function BJe(){if(dse)return MC;dse=1;var e=ee();return e.addRange(68224,68255),MC.characters=e,MC}var BC={},pse;function FJe(){if(pse)return BC;pse=1;var e=ee();return e.addRange(66384,66426),BC.characters=e,BC}var FC={},fse;function $Je(){if(fse)return FC;fse=1;var e=ee();return e.addRange(66464,66499).addRange(66504,66517),FC.characters=e,FC}var $C={},hse;function qJe(){if(hse)return $C;hse=1;var e=ee();return e.addRange(69376,69415),$C.characters=e,$C}var qC={},mse;function UJe(){if(mse)return qC;mse=1;var e=ee();return e.addRange(68192,68223),qC.characters=e,qC}var UC={},yse;function VJe(){if(yse)return UC;yse=1;var e=ee();return e.addRange(68608,68680),UC.characters=e,UC}var VC={},gse;function WJe(){if(gse)return VC;gse=1;var e=ee();return e.addRange(69488,69513),VC.characters=e,VC}var WC={},vse;function GJe(){if(vse)return WC;vse=1;var e=ee();return e.addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),WC.characters=e,WC}var GC={},bse;function KJe(){if(bse)return GC;bse=1;var e=ee();return e.addRange(66736,66771).addRange(66776,66811),GC.characters=e,GC}var KC={},xse;function HJe(){if(xse)return KC;xse=1;var e=ee();return e.addRange(66688,66717).addRange(66720,66729),KC.characters=e,KC}var HC={},Rse;function zJe(){if(Rse)return HC;Rse=1;var e=ee();return e.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),HC.characters=e,HC}var zC={},Ese;function XJe(){if(Ese)return zC;Ese=1;var e=ee();return e.addRange(67680,67711),zC.characters=e,zC}var XC={},Sse;function JJe(){if(Sse)return XC;Sse=1;var e=ee();return e.addRange(72384,72440),XC.characters=e,XC}var JC={},Tse;function YJe(){if(Tse)return JC;Tse=1;var e=ee();return e.addRange(43072,43127),JC.characters=e,JC}var YC={},wse;function QJe(){if(wse)return YC;wse=1;var e=ee(67871);return e.addRange(67840,67867),YC.characters=e,YC}var QC={},Pse;function ZJe(){if(Pse)return QC;Pse=1;var e=ee();return e.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),QC.characters=e,QC}var ZC={},Ase;function eYe(){if(Ase)return ZC;Ase=1;var e=ee(43359);return e.addRange(43312,43347),ZC.characters=e,ZC}var ej={},Ise;function tYe(){if(Ise)return ej;Ise=1;var e=ee();return e.addRange(5792,5866).addRange(5870,5880),ej.characters=e,ej}var tj={},Cse;function rYe(){if(Cse)return tj;Cse=1;var e=ee();return e.addRange(2048,2093).addRange(2096,2110),tj.characters=e,tj}var rj={},jse;function aYe(){if(jse)return rj;jse=1;var e=ee();return e.addRange(43136,43205).addRange(43214,43225),rj.characters=e,rj}var aj={},Ose;function nYe(){if(Ose)return aj;Ose=1;var e=ee();return e.addRange(70016,70111),aj.characters=e,aj}var nj={},_se;function sYe(){if(_se)return nj;_se=1;var e=ee();return e.addRange(66640,66687),nj.characters=e,nj}var sj={},Nse;function iYe(){if(Nse)return sj;Nse=1;var e=ee();return e.addRange(71040,71093).addRange(71096,71133),sj.characters=e,sj}var ij={},kse;function oYe(){if(kse)return ij;kse=1;var e=ee();return e.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),ij.characters=e,ij}var oj={},Dse;function lYe(){if(Dse)return oj;Dse=1;var e=ee(3517,3530,3542);return e.addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),oj.characters=e,oj}var lj={},Lse;function uYe(){if(Lse)return lj;Lse=1;var e=ee();return e.addRange(69424,69465),lj.characters=e,lj}var uj={},Mse;function cYe(){if(Mse)return uj;Mse=1;var e=ee();return e.addRange(69840,69864).addRange(69872,69881),uj.characters=e,uj}var cj={},Bse;function dYe(){if(Bse)return cj;Bse=1;var e=ee();return e.addRange(72272,72354),cj.characters=e,cj}var dj={},Fse;function pYe(){if(Fse)return dj;Fse=1;var e=ee();return e.addRange(7040,7103).addRange(7360,7367),dj.characters=e,dj}var pj={},$se;function fYe(){if($se)return pj;$se=1;var e=ee();return e.addRange(43008,43052),pj.characters=e,pj}var fj={},qse;function hYe(){if(qse)return fj;qse=1;var e=ee();return e.addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),fj.characters=e,fj}var hj={},Use;function mYe(){if(Use)return hj;Use=1;var e=ee(5919);return e.addRange(5888,5909),hj.characters=e,hj}var mj={},Vse;function yYe(){if(Vse)return mj;Vse=1;var e=ee();return e.addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),mj.characters=e,mj}var yj={},Wse;function gYe(){if(Wse)return yj;Wse=1;var e=ee();return e.addRange(6480,6509).addRange(6512,6516),yj.characters=e,yj}var gj={},Gse;function vYe(){if(Gse)return gj;Gse=1;var e=ee();return e.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),gj.characters=e,gj}var vj={},Kse;function bYe(){if(Kse)return vj;Kse=1;var e=ee();return e.addRange(43648,43714).addRange(43739,43743),vj.characters=e,vj}var bj={},Hse;function xYe(){if(Hse)return bj;Hse=1;var e=ee();return e.addRange(71296,71353).addRange(71360,71369),bj.characters=e,bj}var xj={},zse;function RYe(){if(zse)return xj;zse=1;var e=ee(2972,3024,3031,73727);return e.addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(73664,73713),xj.characters=e,xj}var Rj={},Xse;function EYe(){if(Xse)return Rj;Xse=1;var e=ee();return e.addRange(92784,92862).addRange(92864,92873),Rj.characters=e,Rj}var Ej={},Jse;function SYe(){if(Jse)return Ej;Jse=1;var e=ee(94176);return e.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),Ej.characters=e,Ej}var Sj={},Yse;function TYe(){if(Yse)return Sj;Yse=1;var e=ee(3165);return e.addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),Sj.characters=e,Sj}var Tj={},Qse;function wYe(){if(Qse)return Tj;Qse=1;var e=ee();return e.addRange(1920,1969),Tj.characters=e,Tj}var wj={},Zse;function PYe(){if(Zse)return wj;Zse=1;var e=ee();return e.addRange(3585,3642).addRange(3648,3675),wj.characters=e,wj}var Pj={},eie;function AYe(){if(eie)return Pj;eie=1;var e=ee();return e.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),Pj.characters=e,Pj}var Aj={},tie;function IYe(){if(tie)return Aj;tie=1;var e=ee(11647);return e.addRange(11568,11623).addRange(11631,11632),Aj.characters=e,Aj}var Ij={},rie;function CYe(){if(rie)return Ij;rie=1;var e=ee();return e.addRange(70784,70855).addRange(70864,70873),Ij.characters=e,Ij}var Cj={},aie;function jYe(){if(aie)return Cj;aie=1;var e=ee();return e.addRange(123536,123566),Cj.characters=e,Cj}var jj={},nie;function OYe(){if(nie)return jj;nie=1;var e=ee(66463);return e.addRange(66432,66461),jj.characters=e,jj}var Oj={},sie;function _Ye(){if(sie)return Oj;sie=1;var e=ee();return e.addRange(42240,42539),Oj.characters=e,Oj}var _j={},iie;function NYe(){if(iie)return _j;iie=1;var e=ee();return e.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),_j.characters=e,_j}var Nj={},oie;function kYe(){if(oie)return Nj;oie=1;var e=ee(123647);return e.addRange(123584,123641),Nj.characters=e,Nj}var kj={},lie;function DYe(){if(lie)return kj;lie=1;var e=ee(71935);return e.addRange(71840,71922),kj.characters=e,kj}var Dj={},uie;function LYe(){if(uie)return Dj;uie=1;var e=ee();return e.addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),Dj.characters=e,Dj}var Lj={},cie;function MYe(){if(cie)return Lj;cie=1;var e=ee();return e.addRange(40960,42124).addRange(42128,42182),Lj.characters=e,Lj}var Mj={},die;function BYe(){if(die)return Mj;die=1;var e=ee();return e.addRange(72192,72263),Mj.characters=e,Mj}var Bj,pie;function FYe(){return pie||(pie=1,Bj="15.1.0"),Bj}var fie;function hie(){return fie||(fie={"/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js":KVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Any.js":HVe,"/node_modules/regenerate-unicode-properties/Binary_Property/ASCII_Hex_Digit.js":zVe,"/node_modules/regenerate-unicode-properties/Binary_Property/ASCII.js":XVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js":JVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Control.js":YVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js":QVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js":ZVe,"/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js":eWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js":tWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js":rWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js":aWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js":nWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js":sWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js":iWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js":oWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Default_Ignorable_Code_Point.js":lWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Deprecated.js":uWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js":cWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Component.js":dWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Modifier_Base.js":pWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Modifier.js":fWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js":hWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js":mWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Extended_Pictographic.js":yWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js":gWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js":vWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js":bWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Hex_Digit.js":xWe,"/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js":RWe,"/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js":EWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js":SWe,"/node_modules/regenerate-unicode-properties/Binary_Property/IDS_Binary_Operator.js":TWe,"/node_modules/regenerate-unicode-properties/Binary_Property/IDS_Trinary_Operator.js":wWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Join_Control.js":PWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Logical_Order_Exception.js":AWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js":IWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Math.js":CWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Noncharacter_Code_Point.js":jWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Pattern_Syntax.js":OWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Pattern_White_Space.js":_We,"/node_modules/regenerate-unicode-properties/Binary_Property/Quotation_Mark.js":NWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Radical.js":kWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Regional_Indicator.js":DWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js":LWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Soft_Dotted.js":MWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js":BWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Unified_Ideograph.js":FWe,"/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js":$We,"/node_modules/regenerate-unicode-properties/Binary_Property/Variation_Selector.js":qWe,"/node_modules/regenerate-unicode-properties/Binary_Property/White_Space.js":UWe,"/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js":VWe,"/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js":WWe,"/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js":GWe,"/node_modules/regenerate-unicode-properties/General_Category/Close_Punctuation.js":KWe,"/node_modules/regenerate-unicode-properties/General_Category/Connector_Punctuation.js":HWe,"/node_modules/regenerate-unicode-properties/General_Category/Control.js":zWe,"/node_modules/regenerate-unicode-properties/General_Category/Currency_Symbol.js":XWe,"/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js":JWe,"/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js":YWe,"/node_modules/regenerate-unicode-properties/General_Category/Enclosing_Mark.js":QWe,"/node_modules/regenerate-unicode-properties/General_Category/Final_Punctuation.js":ZWe,"/node_modules/regenerate-unicode-properties/General_Category/Format.js":eGe,"/node_modules/regenerate-unicode-properties/General_Category/Initial_Punctuation.js":tGe,"/node_modules/regenerate-unicode-properties/General_Category/Letter_Number.js":rGe,"/node_modules/regenerate-unicode-properties/General_Category/Letter.js":aGe,"/node_modules/regenerate-unicode-properties/General_Category/Line_Separator.js":nGe,"/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js":sGe,"/node_modules/regenerate-unicode-properties/General_Category/Mark.js":iGe,"/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js":oGe,"/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js":lGe,"/node_modules/regenerate-unicode-properties/General_Category/Modifier_Symbol.js":uGe,"/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js":cGe,"/node_modules/regenerate-unicode-properties/General_Category/Number.js":dGe,"/node_modules/regenerate-unicode-properties/General_Category/Open_Punctuation.js":pGe,"/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js":fGe,"/node_modules/regenerate-unicode-properties/General_Category/Other_Number.js":hGe,"/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js":mGe,"/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js":yGe,"/node_modules/regenerate-unicode-properties/General_Category/Other.js":gGe,"/node_modules/regenerate-unicode-properties/General_Category/Paragraph_Separator.js":vGe,"/node_modules/regenerate-unicode-properties/General_Category/Private_Use.js":bGe,"/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js":xGe,"/node_modules/regenerate-unicode-properties/General_Category/Separator.js":RGe,"/node_modules/regenerate-unicode-properties/General_Category/Space_Separator.js":EGe,"/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js":SGe,"/node_modules/regenerate-unicode-properties/General_Category/Surrogate.js":TGe,"/node_modules/regenerate-unicode-properties/General_Category/Symbol.js":wGe,"/node_modules/regenerate-unicode-properties/General_Category/Titlecase_Letter.js":PGe,"/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js":AGe,"/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js":IGe,"/node_modules/regenerate-unicode-properties/index.js":CGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js":jGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/Emoji_Keycap_Sequence.js":OGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js":_Ge,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Modifier_Sequence.js":NGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Tag_Sequence.js":kGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js":DGe,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js":LGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js":MGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ahom.js":BGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Anatolian_Hieroglyphs.js":FGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js":$Ge,"/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js":qGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js":UGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js":VGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bamum.js":WGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bassa_Vah.js":GGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Batak.js":KGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js":HGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bhaiksuki.js":zGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js":XGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Brahmi.js":JGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Braille.js":YGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Buginese.js":QGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Buhid.js":ZGe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Canadian_Aboriginal.js":eKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js":tKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js":rKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Chakma.js":aKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cham.js":nKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js":sKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Chorasmian.js":iKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js":oKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js":lKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cuneiform.js":uKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cypriot.js":cKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cypro_Minoan.js":dKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js":pKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Deseret.js":fKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js":hKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Dives_Akuru.js":mKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Dogra.js":yKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js":gKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js":vKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js":bKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Elymaic.js":xKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js":RKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js":EKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js":SKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js":TKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Grantha.js":wKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js":PKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gujarati.js":AKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js":IKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gurmukhi.js":CKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js":jKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hangul.js":OKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hanifi_Rohingya.js":_Ke,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hanunoo.js":NKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hatran.js":kKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js":DKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hiragana.js":LKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Imperial_Aramaic.js":MKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js":BKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inscriptional_Pahlavi.js":FKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inscriptional_Parthian.js":$Ke,"/node_modules/regenerate-unicode-properties/Script_Extensions/Javanese.js":qKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js":UKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js":VKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js":WKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js":GKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kayah_Li.js":KKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kharoshthi.js":HKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js":zKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khmer.js":XKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khojki.js":JKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khudawadi.js":YKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lao.js":QKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js":ZKe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lepcha.js":eHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Limbu.js":tHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Linear_A.js":rHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Linear_B.js":aHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js":nHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js":sHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js":iHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js":oHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Makasar.js":lHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Malayalam.js":uHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mandaic.js":cHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Manichaean.js":dHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Marchen.js":pHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Masaram_Gondi.js":fHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Medefaidrin.js":hHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meetei_Mayek.js":mHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mende_Kikakui.js":yHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Cursive.js":gHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js":vHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Miao.js":bHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Modi.js":xHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js":RHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mro.js":EHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Multani.js":SHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js":THe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nabataean.js":wHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nag_Mundari.js":PHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nandinagari.js":AHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/New_Tai_Lue.js":IHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Newa.js":CHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nko.js":jHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nushu.js":OHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nyiakeng_Puachue_Hmong.js":_He,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ogham.js":NHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ol_Chiki.js":kHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js":DHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Italic.js":LHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_North_Arabian.js":MHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js":BHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Persian.js":FHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Sogdian.js":$He,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_South_Arabian.js":qHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js":UHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Uyghur.js":VHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Oriya.js":WHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js":GHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Osmanya.js":KHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Pahawh_Hmong.js":HHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Palmyrene.js":zHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Pau_Cin_Hau.js":XHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js":JHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Phoenician.js":YHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Psalter_Pahlavi.js":QHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Rejang.js":ZHe,"/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js":eze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js":tze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Saurashtra.js":rze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sharada.js":aze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js":nze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Siddham.js":sze,"/node_modules/regenerate-unicode-properties/Script_Extensions/SignWriting.js":ize,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sinhala.js":oze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sogdian.js":lze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sora_Sompeng.js":uze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Soyombo.js":cze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sundanese.js":dze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Syloti_Nagri.js":pze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js":fze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tagalog.js":hze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tagbanwa.js":mze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js":yze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Tham.js":gze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Viet.js":vze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Takri.js":bze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tamil.js":xze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tangsa.js":Rze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js":Eze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Telugu.js":Sze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Thaana.js":Tze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js":wze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js":Pze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js":Aze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tirhuta.js":Ize,"/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js":Cze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ugaritic.js":jze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Vai.js":Oze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Vithkuqi.js":_ze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Wancho.js":Nze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Warang_Citi.js":kze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Yezidi.js":Dze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Yi.js":Lze,"/node_modules/regenerate-unicode-properties/Script_Extensions/Zanabazar_Square.js":Mze,"/node_modules/regenerate-unicode-properties/Script/Adlam.js":Bze,"/node_modules/regenerate-unicode-properties/Script/Ahom.js":Fze,"/node_modules/regenerate-unicode-properties/Script/Anatolian_Hieroglyphs.js":$ze,"/node_modules/regenerate-unicode-properties/Script/Arabic.js":qze,"/node_modules/regenerate-unicode-properties/Script/Armenian.js":Uze,"/node_modules/regenerate-unicode-properties/Script/Avestan.js":Vze,"/node_modules/regenerate-unicode-properties/Script/Balinese.js":Wze,"/node_modules/regenerate-unicode-properties/Script/Bamum.js":Gze,"/node_modules/regenerate-unicode-properties/Script/Bassa_Vah.js":Kze,"/node_modules/regenerate-unicode-properties/Script/Batak.js":Hze,"/node_modules/regenerate-unicode-properties/Script/Bengali.js":zze,"/node_modules/regenerate-unicode-properties/Script/Bhaiksuki.js":Xze,"/node_modules/regenerate-unicode-properties/Script/Bopomofo.js":Jze,"/node_modules/regenerate-unicode-properties/Script/Brahmi.js":Yze,"/node_modules/regenerate-unicode-properties/Script/Braille.js":Qze,"/node_modules/regenerate-unicode-properties/Script/Buginese.js":Zze,"/node_modules/regenerate-unicode-properties/Script/Buhid.js":eXe,"/node_modules/regenerate-unicode-properties/Script/Canadian_Aboriginal.js":tXe,"/node_modules/regenerate-unicode-properties/Script/Carian.js":rXe,"/node_modules/regenerate-unicode-properties/Script/Caucasian_Albanian.js":aXe,"/node_modules/regenerate-unicode-properties/Script/Chakma.js":nXe,"/node_modules/regenerate-unicode-properties/Script/Cham.js":sXe,"/node_modules/regenerate-unicode-properties/Script/Cherokee.js":iXe,"/node_modules/regenerate-unicode-properties/Script/Chorasmian.js":oXe,"/node_modules/regenerate-unicode-properties/Script/Common.js":lXe,"/node_modules/regenerate-unicode-properties/Script/Coptic.js":uXe,"/node_modules/regenerate-unicode-properties/Script/Cuneiform.js":cXe,"/node_modules/regenerate-unicode-properties/Script/Cypriot.js":dXe,"/node_modules/regenerate-unicode-properties/Script/Cypro_Minoan.js":pXe,"/node_modules/regenerate-unicode-properties/Script/Cyrillic.js":fXe,"/node_modules/regenerate-unicode-properties/Script/Deseret.js":hXe,"/node_modules/regenerate-unicode-properties/Script/Devanagari.js":mXe,"/node_modules/regenerate-unicode-properties/Script/Dives_Akuru.js":yXe,"/node_modules/regenerate-unicode-properties/Script/Dogra.js":gXe,"/node_modules/regenerate-unicode-properties/Script/Duployan.js":vXe,"/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js":bXe,"/node_modules/regenerate-unicode-properties/Script/Elbasan.js":xXe,"/node_modules/regenerate-unicode-properties/Script/Elymaic.js":RXe,"/node_modules/regenerate-unicode-properties/Script/Ethiopic.js":EXe,"/node_modules/regenerate-unicode-properties/Script/Georgian.js":SXe,"/node_modules/regenerate-unicode-properties/Script/Glagolitic.js":TXe,"/node_modules/regenerate-unicode-properties/Script/Gothic.js":wXe,"/node_modules/regenerate-unicode-properties/Script/Grantha.js":PXe,"/node_modules/regenerate-unicode-properties/Script/Greek.js":AXe,"/node_modules/regenerate-unicode-properties/Script/Gujarati.js":IXe,"/node_modules/regenerate-unicode-properties/Script/Gunjala_Gondi.js":CXe,"/node_modules/regenerate-unicode-properties/Script/Gurmukhi.js":jXe,"/node_modules/regenerate-unicode-properties/Script/Han.js":OXe,"/node_modules/regenerate-unicode-properties/Script/Hangul.js":_Xe,"/node_modules/regenerate-unicode-properties/Script/Hanifi_Rohingya.js":NXe,"/node_modules/regenerate-unicode-properties/Script/Hanunoo.js":kXe,"/node_modules/regenerate-unicode-properties/Script/Hatran.js":DXe,"/node_modules/regenerate-unicode-properties/Script/Hebrew.js":LXe,"/node_modules/regenerate-unicode-properties/Script/Hiragana.js":MXe,"/node_modules/regenerate-unicode-properties/Script/Imperial_Aramaic.js":BXe,"/node_modules/regenerate-unicode-properties/Script/Inherited.js":FXe,"/node_modules/regenerate-unicode-properties/Script/Inscriptional_Pahlavi.js":$Xe,"/node_modules/regenerate-unicode-properties/Script/Inscriptional_Parthian.js":qXe,"/node_modules/regenerate-unicode-properties/Script/Javanese.js":UXe,"/node_modules/regenerate-unicode-properties/Script/Kaithi.js":VXe,"/node_modules/regenerate-unicode-properties/Script/Kannada.js":WXe,"/node_modules/regenerate-unicode-properties/Script/Katakana.js":GXe,"/node_modules/regenerate-unicode-properties/Script/Kawi.js":KXe,"/node_modules/regenerate-unicode-properties/Script/Kayah_Li.js":HXe,"/node_modules/regenerate-unicode-properties/Script/Kharoshthi.js":zXe,"/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js":XXe,"/node_modules/regenerate-unicode-properties/Script/Khmer.js":JXe,"/node_modules/regenerate-unicode-properties/Script/Khojki.js":YXe,"/node_modules/regenerate-unicode-properties/Script/Khudawadi.js":QXe,"/node_modules/regenerate-unicode-properties/Script/Lao.js":ZXe,"/node_modules/regenerate-unicode-properties/Script/Latin.js":eJe,"/node_modules/regenerate-unicode-properties/Script/Lepcha.js":tJe,"/node_modules/regenerate-unicode-properties/Script/Limbu.js":rJe,"/node_modules/regenerate-unicode-properties/Script/Linear_A.js":aJe,"/node_modules/regenerate-unicode-properties/Script/Linear_B.js":nJe,"/node_modules/regenerate-unicode-properties/Script/Lisu.js":sJe,"/node_modules/regenerate-unicode-properties/Script/Lycian.js":iJe,"/node_modules/regenerate-unicode-properties/Script/Lydian.js":oJe,"/node_modules/regenerate-unicode-properties/Script/Mahajani.js":lJe,"/node_modules/regenerate-unicode-properties/Script/Makasar.js":uJe,"/node_modules/regenerate-unicode-properties/Script/Malayalam.js":cJe,"/node_modules/regenerate-unicode-properties/Script/Mandaic.js":dJe,"/node_modules/regenerate-unicode-properties/Script/Manichaean.js":pJe,"/node_modules/regenerate-unicode-properties/Script/Marchen.js":fJe,"/node_modules/regenerate-unicode-properties/Script/Masaram_Gondi.js":hJe,"/node_modules/regenerate-unicode-properties/Script/Medefaidrin.js":mJe,"/node_modules/regenerate-unicode-properties/Script/Meetei_Mayek.js":yJe,"/node_modules/regenerate-unicode-properties/Script/Mende_Kikakui.js":gJe,"/node_modules/regenerate-unicode-properties/Script/Meroitic_Cursive.js":vJe,"/node_modules/regenerate-unicode-properties/Script/Meroitic_Hieroglyphs.js":bJe,"/node_modules/regenerate-unicode-properties/Script/Miao.js":xJe,"/node_modules/regenerate-unicode-properties/Script/Modi.js":RJe,"/node_modules/regenerate-unicode-properties/Script/Mongolian.js":EJe,"/node_modules/regenerate-unicode-properties/Script/Mro.js":SJe,"/node_modules/regenerate-unicode-properties/Script/Multani.js":TJe,"/node_modules/regenerate-unicode-properties/Script/Myanmar.js":wJe,"/node_modules/regenerate-unicode-properties/Script/Nabataean.js":PJe,"/node_modules/regenerate-unicode-properties/Script/Nag_Mundari.js":AJe,"/node_modules/regenerate-unicode-properties/Script/Nandinagari.js":IJe,"/node_modules/regenerate-unicode-properties/Script/New_Tai_Lue.js":CJe,"/node_modules/regenerate-unicode-properties/Script/Newa.js":jJe,"/node_modules/regenerate-unicode-properties/Script/Nko.js":OJe,"/node_modules/regenerate-unicode-properties/Script/Nushu.js":_Je,"/node_modules/regenerate-unicode-properties/Script/Nyiakeng_Puachue_Hmong.js":NJe,"/node_modules/regenerate-unicode-properties/Script/Ogham.js":kJe,"/node_modules/regenerate-unicode-properties/Script/Ol_Chiki.js":DJe,"/node_modules/regenerate-unicode-properties/Script/Old_Hungarian.js":LJe,"/node_modules/regenerate-unicode-properties/Script/Old_Italic.js":MJe,"/node_modules/regenerate-unicode-properties/Script/Old_North_Arabian.js":BJe,"/node_modules/regenerate-unicode-properties/Script/Old_Permic.js":FJe,"/node_modules/regenerate-unicode-properties/Script/Old_Persian.js":$Je,"/node_modules/regenerate-unicode-properties/Script/Old_Sogdian.js":qJe,"/node_modules/regenerate-unicode-properties/Script/Old_South_Arabian.js":UJe,"/node_modules/regenerate-unicode-properties/Script/Old_Turkic.js":VJe,"/node_modules/regenerate-unicode-properties/Script/Old_Uyghur.js":WJe,"/node_modules/regenerate-unicode-properties/Script/Oriya.js":GJe,"/node_modules/regenerate-unicode-properties/Script/Osage.js":KJe,"/node_modules/regenerate-unicode-properties/Script/Osmanya.js":HJe,"/node_modules/regenerate-unicode-properties/Script/Pahawh_Hmong.js":zJe,"/node_modules/regenerate-unicode-properties/Script/Palmyrene.js":XJe,"/node_modules/regenerate-unicode-properties/Script/Pau_Cin_Hau.js":JJe,"/node_modules/regenerate-unicode-properties/Script/Phags_Pa.js":YJe,"/node_modules/regenerate-unicode-properties/Script/Phoenician.js":QJe,"/node_modules/regenerate-unicode-properties/Script/Psalter_Pahlavi.js":ZJe,"/node_modules/regenerate-unicode-properties/Script/Rejang.js":eYe,"/node_modules/regenerate-unicode-properties/Script/Runic.js":tYe,"/node_modules/regenerate-unicode-properties/Script/Samaritan.js":rYe,"/node_modules/regenerate-unicode-properties/Script/Saurashtra.js":aYe,"/node_modules/regenerate-unicode-properties/Script/Sharada.js":nYe,"/node_modules/regenerate-unicode-properties/Script/Shavian.js":sYe,"/node_modules/regenerate-unicode-properties/Script/Siddham.js":iYe,"/node_modules/regenerate-unicode-properties/Script/SignWriting.js":oYe,"/node_modules/regenerate-unicode-properties/Script/Sinhala.js":lYe,"/node_modules/regenerate-unicode-properties/Script/Sogdian.js":uYe,"/node_modules/regenerate-unicode-properties/Script/Sora_Sompeng.js":cYe,"/node_modules/regenerate-unicode-properties/Script/Soyombo.js":dYe,"/node_modules/regenerate-unicode-properties/Script/Sundanese.js":pYe,"/node_modules/regenerate-unicode-properties/Script/Syloti_Nagri.js":fYe,"/node_modules/regenerate-unicode-properties/Script/Syriac.js":hYe,"/node_modules/regenerate-unicode-properties/Script/Tagalog.js":mYe,"/node_modules/regenerate-unicode-properties/Script/Tagbanwa.js":yYe,"/node_modules/regenerate-unicode-properties/Script/Tai_Le.js":gYe,"/node_modules/regenerate-unicode-properties/Script/Tai_Tham.js":vYe,"/node_modules/regenerate-unicode-properties/Script/Tai_Viet.js":bYe,"/node_modules/regenerate-unicode-properties/Script/Takri.js":xYe,"/node_modules/regenerate-unicode-properties/Script/Tamil.js":RYe,"/node_modules/regenerate-unicode-properties/Script/Tangsa.js":EYe,"/node_modules/regenerate-unicode-properties/Script/Tangut.js":SYe,"/node_modules/regenerate-unicode-properties/Script/Telugu.js":TYe,"/node_modules/regenerate-unicode-properties/Script/Thaana.js":wYe,"/node_modules/regenerate-unicode-properties/Script/Thai.js":PYe,"/node_modules/regenerate-unicode-properties/Script/Tibetan.js":AYe,"/node_modules/regenerate-unicode-properties/Script/Tifinagh.js":IYe,"/node_modules/regenerate-unicode-properties/Script/Tirhuta.js":CYe,"/node_modules/regenerate-unicode-properties/Script/Toto.js":jYe,"/node_modules/regenerate-unicode-properties/Script/Ugaritic.js":OYe,"/node_modules/regenerate-unicode-properties/Script/Vai.js":_Ye,"/node_modules/regenerate-unicode-properties/Script/Vithkuqi.js":NYe,"/node_modules/regenerate-unicode-properties/Script/Wancho.js":kYe,"/node_modules/regenerate-unicode-properties/Script/Warang_Citi.js":DYe,"/node_modules/regenerate-unicode-properties/Script/Yezidi.js":LYe,"/node_modules/regenerate-unicode-properties/Script/Yi.js":MYe,"/node_modules/regenerate-unicode-properties/Script/Zanabazar_Square.js":BYe,"/node_modules/regenerate-unicode-properties/unicode-version.js":FYe})}function $Ye(e){function r(s){var l=mie(s,e);if(l!==null)return hie()[l]();throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}return r.resolve=function(s){var l=mie(s,e);return l!==null?l:require.resolve(s)},r}function mie(e,r){var s=qYe(e);e=wv(e);var l;e[0]==="/"&&(r="");for(var u=hie(),o=["",".js",".json"];s?l=wv(r+"/node_modules/"+e):l=wv(r+"/"+e),!l.endsWith("/..");){for(var c=0;c<o.length;c++){var f=l+o[c];if(u[f])return f}if(!s)break;var h=wv(r+"/..");if(h===r)break;r=h}return null}function qYe(e){var r=e[0];if(r==="/"||r==="\\")return!1;var s=e[1],l=e[2];return!(r==="."&&(!s||s==="/"||s==="\\")||r==="."&&s==="."&&(!l||l==="/"||l==="\\")||s===":"&&(l==="/"||l==="\\"))}function wv(e){e=e.replace(/\\/g,"/");for(var r=e.split("/"),s=r[0]==="",l=1;l<r.length;l++)(r[l]==="."||r[l]==="")&&r.splice(l--,1);for(var l=1;l<r.length;l++)r[l]===".."&&l>0&&r[l-1]!==".."&&r[l-1]!=="."&&(r.splice(--l,2),l--);return e=r.join("/"),s&&e[0]!=="/"?e="/"+e:e.length===0&&(e="."),e}var Pv={exports:{}};Pv.exports,function(e,r){(function(){var s={function:!0,object:!0},l=s[typeof window]&&window||this,u=r&&!r.nodeType&&r,o=e&&!e.nodeType,c=u&&o&&typeof ci=="object"&&ci;c&&(c.global===c||c.window===c||c.self===c)&&(l=c);var f=Object.prototype.hasOwnProperty;function h(){var J=Number(arguments[0]);if(!isFinite(J)||J<0||J>1114111||Math.floor(J)!=J)throw RangeError("Invalid code point: "+J);if(J<=65535)return String.fromCharCode(J);J-=65536;var xe=(J>>10)+55296,de=J%1024+56320;return String.fromCharCode(xe,de)}var m={};function g(J,xe){if(xe.indexOf("|")==-1){if(J==xe)return;throw Error("Invalid node type: "+J+"; expected type: "+xe)}if(xe=f.call(m,xe)?m[xe]:m[xe]=RegExp("^(?:"+xe+")$"),!xe.test(J))throw Error("Invalid node type: "+J+"; expected types: "+xe)}function x(J){var xe=J.type;if(f.call(te,xe))return te[xe](J);throw Error("Invalid node type: "+xe)}function R(J,xe,de){for(var $e=-1,Ve=xe.length,Ie="",ke;++$e<Ve;){if(ke=xe[$e],de&&$e>0&&(Ie+=de),$e+1<Ve&&xe[$e].type=="value"&&xe[$e].kind=="null"&&xe[$e+1].type=="value"&&xe[$e+1].kind=="symbol"&&xe[$e+1].codePoint>=48&&xe[$e+1].codePoint<=57){Ie+="\\000";continue}Ie+=J(ke)}return Ie}function w(J){return g(J.type,"alternative"),R(ue,J.body)}function T(J){switch(g(J.type,"anchor"),J.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}var I="anchor|characterClass|characterClassEscape|dot|group|reference|unicodePropertyEscape|value";function P(J){return g(J.type,I),x(J)}function O(J){g(J.type,"characterClass");var xe=J.kind,de=xe==="intersection"?"&&":xe==="subtraction"?"--":"";return"["+(J.negative?"^":"")+R(k,J.body,de)+"]"}function j(J){return g(J.type,"characterClassEscape"),"\\"+J.value}function D(J){g(J.type,"characterClassRange");var xe=J.min,de=J.max;if(xe.type=="characterClassRange"||de.type=="characterClassRange")throw Error("Invalid character class range");return k(xe)+"-"+k(de)}function k(J){return g(J.type,"anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings"),x(J)}function B(J){return g(J.type,"classStrings"),"\\q{"+R(F,J.strings,"|")+"}"}function F(J){return g(J.type,"classString"),R(x,J.characters)}function L(J){return g(J.type,"disjunction"),R(x,J.body,"|")}function V(J){return g(J.type,"dot"),"."}function H(J){g(J.type,"group");var xe="";switch(J.behavior){case"normal":J.name&&(xe+="?<"+K(J.name)+">");break;case"ignore":J.modifierFlags?(xe+="?",J.modifierFlags.enabling&&(xe+=J.modifierFlags.enabling),J.modifierFlags.disabling&&(xe+="-"+J.modifierFlags.disabling),xe+=":"):xe+="?:";break;case"lookahead":xe+="?=";break;case"negativeLookahead":xe+="?!";break;case"lookbehind":xe+="?<=";break;case"negativeLookbehind":xe+="?<!";break;default:throw Error("Invalid behaviour: "+J.behaviour)}return xe+=R(x,J.body),"("+xe+")"}function K(J){return g(J.type,"identifier"),J.value}function G(J){g(J.type,"quantifier");var xe="",de=J.min,$e=J.max;return $e==null?de==0?xe="*":de==1?xe="+":xe="{"+de+",}":de==$e?xe="{"+de+"}":de==0&&$e==1?xe="?":xe="{"+de+","+$e+"}",J.greedy||(xe+="?"),P(J.body[0])+xe}function X(J){if(g(J.type,"reference"),J.matchIndex)return"\\"+J.matchIndex;if(J.name)return"\\k<"+K(J.name)+">";throw new Error("Unknown reference type")}function ue(J){return g(J.type,I+"|empty|quantifier"),x(J)}function oe(J){return g(J.type,"unicodePropertyEscape"),"\\"+(J.negative?"P":"p")+"{"+J.value+"}"}function he(J){g(J.type,"value");var xe=J.kind,de=J.codePoint;if(typeof de!="number")throw new Error("Invalid code point: "+de);switch(xe){case"controlLetter":return"\\c"+h(de+64);case"hexadecimalEscape":return"\\x"+("00"+de.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+h(de);case"null":return"\\"+de;case"octal":return"\\"+("000"+de.toString(8)).slice(-3);case"singleEscape":switch(de){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+de)}case"symbol":return h(de);case"unicodeEscape":return"\\u"+("0000"+de.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+de.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+xe)}}var te={alternative:w,anchor:T,characterClass:O,characterClassEscape:j,characterClassRange:D,classStrings:B,disjunction:L,dot:V,group:H,quantifier:G,reference:X,unicodePropertyEscape:oe,value:he},ae={generate:x};u&&o?u.generate=x:l.regjsgen=ae}).call(ci)}(Pv,Pv.exports);var UYe=Pv.exports,yie={exports:{}};(function(e){(function(){var r=String.fromCodePoint||function(){var u=String.fromCharCode,o=Math.floor;return function(){var f=16384,h=[],m,g,x=-1,R=arguments.length;if(!R)return"";for(var w="";++x<R;){var T=Number(arguments[x]);if(!isFinite(T)||T<0||T>1114111||o(T)!=T)throw RangeError("Invalid code point: "+T);T<=65535?h.push(T):(T-=65536,m=(T>>10)+55296,g=T%1024+56320,h.push(m,g)),(x+1==R||h.length>f)&&(w+=u.apply(null,h),h.length=0)}return w}}();function s(u,o,c){c||(c={});function f(ie){return ie.raw=u.substring(ie.range[0],ie.range[1]),ie}function h(ie,st){return ie.range[0]=st,f(ie)}function m(ie,st){return f({type:"anchor",kind:ie,range:[Ce-st,Ce]})}function g(ie,st,dt,St){return f({type:"value",kind:ie,codePoint:st,range:[dt,St]})}function x(ie,st,dt,St){return St=St||0,g(ie,st,Ce-(dt.length+St),Ce)}function R(ie){var st=ie[0],dt=st.charCodeAt(0);if(We){var St;if(st.length===1&&dt>=55296&&dt<=56319&&(St=ue().charCodeAt(0),St>=56320&&St<=57343))return Ce++,g("symbol",(dt-55296)*1024+St-56320+65536,Ce-2,Ce)}return g("symbol",dt,Ce-1,Ce)}function w(ie,st,dt){return f({type:"disjunction",body:ie,range:[st,dt]})}function T(){return f({type:"dot",range:[Ce-1,Ce]})}function I(ie){return f({type:"characterClassEscape",value:ie,range:[Ce-2,Ce]})}function P(ie){return f({type:"reference",matchIndex:parseInt(ie,10),range:[Ce-1-ie.length,Ce]})}function O(ie){return f({type:"reference",name:ie,range:[ie.range[0]-3,Ce]})}function j(ie,st,dt,St){return f({type:"group",behavior:ie,body:st,range:[dt,St]})}function D(ie,st,dt,St,Gt){return St==null&&(dt=Ce-1,St=Ce),f({type:"quantifier",min:ie,max:st,greedy:!0,body:null,symbol:Gt,range:[dt,St]})}function k(ie,st,dt){return f({type:"alternative",body:ie,range:[st,dt]})}function B(ie,st,dt,St){return f({type:"characterClass",kind:ie.kind,body:ie.body,negative:st,range:[dt,St]})}function F(ie,st,dt,St){return ie.codePoint>st.codePoint&&cr("invalid range in character class",ie.raw+"-"+st.raw,dt,St),f({type:"characterClassRange",min:ie,max:st,range:[dt,St]})}function L(ie,st,dt){return f({type:"classStrings",strings:ie,range:[st,dt]})}function V(ie,st,dt){return f({type:"classString",characters:ie,range:[st,dt]})}function H(ie){return ie.type==="alternative"?ie.body:[ie]}function K(ie){ie=ie||1;var st=u.substring(Ce,Ce+ie);return Ce+=ie||1,st}function G(ie){X(ie)||cr("character",ie)}function X(ie){if(u.indexOf(ie,Ce)===Ce)return K(ie.length)}function ue(){return u[Ce]}function oe(ie){return u.indexOf(ie,Ce)===Ce}function he(ie){return u[Ce+1]===ie}function te(ie){var st=u.substring(Ce),dt=st.match(ie);return dt&&(dt.range=[],dt.range[0]=Ce,K(dt[0].length),dt.range[1]=Ce),dt}function ae(){var ie=[],st=Ce;for(ie.push(J());X("|");)ie.push(J());return ie.length===1?ie[0]:w(ie,st,Ce)}function J(){for(var ie=[],st=Ce,dt;dt=xe();)ie.push(dt);return ie.length===1?ie[0]:k(ie,st,Ce)}function xe(){if(Ce>=u.length||oe("|")||oe(")"))return null;var ie=Ve();if(ie)return ie;var st=ke(),dt;if(!st){var St=Ce;dt=Ie()||!1,dt&&(Ce=St,cr("Expected atom"));var Gt;!We&&(Gt=te(/^{/))?st=R(Gt):cr("Expected atom")}return dt=Ie()||!1,dt?(dt.body=H(st),h(dt,st.range[0]),dt):st}function de(ie,st,dt,St){var Gt=null,zr=Ce;if(X(ie))Gt=st;else if(X(dt))Gt=St;else return!1;return $e(Gt,zr)}function $e(ie,st){var dt=ae();dt||cr("Expected disjunction"),G(")");var St=j(ie,H(dt),st,Ce);return ie=="normal"&&$&&N++,St}function Ve(){return X("^")?m("start",1):X("$")?m("end",1):X("\\b")?m("boundary",2):X("\\B")?m("not-boundary",2):de("(?=","lookahead","(?!","negativeLookahead")}function Ie(){var ie,st=Ce,dt,St,Gt;return X("*")?dt=D(0,void 0,void 0,void 0,"*"):X("+")?dt=D(1,void 0,void 0,void 0,"+"):X("?")?dt=D(0,1,void 0,void 0,"?"):(ie=te(/^\{([0-9]+)\}/))?(St=parseInt(ie[1],10),dt=D(St,St,ie.range[0],ie.range[1])):(ie=te(/^\{([0-9]+),\}/))?(St=parseInt(ie[1],10),dt=D(St,void 0,ie.range[0],ie.range[1])):(ie=te(/^\{([0-9]+),([0-9]+)\}/))&&(St=parseInt(ie[1],10),Gt=parseInt(ie[2],10),St>Gt&&cr("numbers out of order in {} quantifier","",st,Ce),dt=D(St,Gt,ie.range[0],ie.range[1])),(St&&!Number.isSafeInteger(St)||Gt&&!Number.isSafeInteger(Gt))&&cr("iterations outside JS safe integer range in quantifier","",st,Ce),dt&&X("?")&&(dt.greedy=!1,dt.range[1]+=1),dt}function ke(){var ie;if(ie=te(/^[^^$\\.*+?()[\]{}|]/))return R(ie);if(!We&&(ie=te(/^(?:]|})/)))return R(ie);if(X("."))return T();if(X("\\")){if(ie=lt(),!ie){if(!We&&ue()=="c")return g("symbol",92,Ce-1,Ce);cr("atomEscape")}return ie}else{if(ie=it())return ie;if(c.lookbehind&&(ie=de("(?<=","lookbehind","(?<!","negativeLookbehind")))return ie;if(c.namedGroups&&X("(?<")){var st=Lt();G(">");var dt=$e("normal",st.range[0]-3);return dt.name=st,dt}else return c.modifiers&&u.indexOf("(?")==Ce&&u[Ce+2]!=":"?Le():de("(?:","ignore","(","normal")}}function Le(){function ie(cn){for(var ti=0;ti<cn.length;){if(cn.indexOf(cn[ti],ti+1)!=-1)return!0;ti++}return!1}var st=Ce;K(2);var dt=te(/^[sim]+/),St;X("-")?(St=te(/^[sim]+/),St||cr("Invalid flags for modifiers group")):dt||cr("Invalid flags for modifiers group"),dt=dt?dt[0]:"",St=St?St[0]:"";var Gt=dt+St;(Gt.length>3||ie(Gt))&&cr("flags cannot be duplicated for modifiers group"),G(":");var zr=$e("ignore",st);return zr.modifierFlags={enabling:dt,disabling:St},zr}function Ze(ie){if(We){var st,dt;if(ie.kind=="unicodeEscape"&&(st=ie.codePoint)>=55296&&st<=56319&&oe("\\")&&he("u")){var St=Ce;Ce++;var Gt=at();Gt.kind=="unicodeEscape"&&(dt=Gt.codePoint)>=56320&&dt<=57343?(ie.range[1]=Gt.range[1],ie.codePoint=(st-55296)*1024+dt-56320+65536,ie.type="value",ie.kind="unicodeCodePointEscape",f(ie)):Ce=St}}return ie}function at(){return lt(!0)}function lt(ie){var st,dt=Ce;if(st=gt(ie)||Ft(),st)return st;if(ie){if(X("b"))return x("singleEscape",8,"\\b");if(X("B"))cr("\\B not possible inside of CharacterClass","",dt);else{if(!We&&(st=te(/^c([0-9])/)))return x("controlLetter",st[1]+16,st[1],2);if(!We&&(st=te(/^c_/)))return x("controlLetter",31,"_",2)}if(We&&X("-"))return x("singleEscape",45,"\\-")}return st=tt()||$t(),st}function gt(ie){var st,dt,St=Ce;if(st=te(/^(?!0)\d+/)){dt=st[0];var Gt=parseInt(st[0],10);return Gt<=N&&!ie?P(st[0]):(na.push(Gt),$?U=!0:It(St,Ce),K(-st[0].length),(st=te(/^[0-7]{1,3}/))?x("octal",parseInt(st[0],8),st[0],1):(st=R(te(/^[89]/)),h(st,st.range[0]-1)))}else if(st=te(/^[0-7]{1,3}/))return dt=st[0],dt!=="0"&&It(St,Ce),/^0{1,3}$/.test(dt)?x("null",0,"0",dt.length):x("octal",parseInt(dt,8),dt,1);return!1}function It(ie,st){We&&cr("Invalid decimal escape in unicode mode",null,ie,st)}function tt(){var ie;return(ie=te(/^[dDsSwW]/))?I(ie[0]):c.unicodePropertyEscape&&We&&(ie=te(/^([pP])\{([^\}]+)\}/))?f({type:"unicodePropertyEscape",negative:ie[1]==="P",value:ie[2],range:[ie.range[0]-1,ie.range[1]],raw:ie[0]}):c.unicodeSet&&_e&&X("q{")?Gr():!1}function Ft(){if(c.namedGroups&&te(/^k<(?=.*?>)/)){var ie=Lt();return G(">"),O(ie)}}function rr(){var ie;if(ie=te(/^u([0-9a-fA-F]{4})/))return Ze(x("unicodeEscape",parseInt(ie[1],16),ie[1],2));if(We&&(ie=te(/^u\{([0-9a-fA-F]+)\}/)))return x("unicodeCodePointEscape",parseInt(ie[1],16),ie[1],4)}function $t(){var ie,st=Ce;if(ie=te(/^[fnrtv]/)){var dt=0;switch(ie[0]){case"t":dt=9;break;case"n":dt=10;break;case"v":dt=11;break;case"f":dt=12;break;case"r":dt=13;break}return x("singleEscape",dt,"\\"+ie[0])}else return(ie=te(/^c([a-zA-Z])/))?x("controlLetter",ie[1].charCodeAt(0)%32,ie[1],2):(ie=te(/^x([0-9a-fA-F]{2})/))?x("hexadecimalEscape",parseInt(ie[1],16),ie[1],2):(ie=rr())?((!ie||ie.codePoint>1114111)&&cr("Invalid escape sequence",null,st,Ce),ie):et()}function Et(ie){var st=ue(),dt=Ce;if(st==="\\"){K();var St=rr();return(!St||!ie(St.codePoint))&&cr("Invalid escape sequence",null,dt,Ce),r(St.codePoint)}var Gt=st.charCodeAt(0);if(Gt>=55296&&Gt<=56319){st+=u[Ce+1];var zr=st.charCodeAt(1);zr>=56320&&zr<=57343&&(Gt=(Gt-55296)*1024+zr-56320+65536)}if(ie(Gt))return K(),Gt>65535&&K(),st}function Lt(){var ie=Ce,st=Et(Re);st||cr("Invalid identifier");for(var dt;dt=Et(Be);)st+=dt;return f({type:"identifier",value:st,range:[ie,Ce]})}function Re(ie){var st=/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;return ie===36||ie===95||ie>=65&&ie<=90||ie>=97&&ie<=122||ie>=128&&st.test(r(ie))}function Be(ie){var st=/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/;return Re(ie)||ie>=48&&ie<=57||ie>=128&&st.test(r(ie))}function et(){var ie,st=ue();return We&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(st)||!We&&st!=="c"?st==="k"&&c.lookbehind?null:(ie=K(),x("identifier",ie.charCodeAt(0),ie,1)):null}function it(){var ie,st=Ce;return(ie=te(/^\[\^/))?(ie=vt(),G("]"),B(ie,!0,st,Ce)):X("[")?(ie=vt(),G("]"),B(ie,!1,st,Ce)):null}function vt(){var ie;return oe("]")?{kind:"union",body:[]}:_e?Kt():(ie=De(),ie||cr("nonEmptyClassRanges"),{kind:"union",body:ie})}function Ot(ie){var st,dt,St,Gt,zr;if(oe("-")&&!he("]")){st=ie.range[0],zr=R(X("-")),Gt=yt(),Gt||cr("classAtom"),dt=Ce;var cn=vt();return cn||cr("classRanges"),!("codePoint"in ie)||!("codePoint"in Gt)?We?cr("invalid character class"):St=[ie,zr,Gt]:St=[F(ie,Gt,st,dt)],cn.type==="empty"?St:St.concat(cn.body)}return St=Qe(),St||cr("nonEmptyClassRangesNoDash"),[ie].concat(St)}function De(){var ie=yt();return ie||cr("classAtom"),oe("]")?[ie]:Ot(ie)}function Qe(){var ie=yt();return ie||cr("classAtom"),oe("]")?ie:Ot(ie)}function yt(){return X("-")?R("-"):jt()}function jt(){var ie;if(ie=te(/^[^\\\]-]/))return R(ie[0]);if(X("\\"))return ie=at(),ie||cr("classEscape"),Ze(ie)}function Kt(){var ie=[],st,dt=Ht(!0);for(ie.push(dt),dt.type==="classRange"?st="union":oe("&")?st="intersection":oe("-")?st="subtraction":st="union";!oe("]");)st==="intersection"?(G("&"),G("&"),oe("&")&&cr("&& cannot be followed by &. Wrap it in brackets: &&[&].")):st==="subtraction"&&(G("-"),G("-")),dt=Ht(st==="union"),ie.push(dt);return{kind:st,body:ie}}function Ht(ie){var st=Ce,dt,St;if(X("\\"))if(St=at())dt=St;else{if(St=Or())return St;cr("Invalid escape","\\"+ue(),st)}else if(St=Yr())dt=St;else{if(St=it())return St;cr("Invalid character",ue())}if(ie&&oe("-")&&!he("-")){if(G("-"),St=Cr())return F(dt,St,st,Ce);cr("Invalid range end",ue())}return dt}function Cr(){if(X("\\")){var ie,st=Ce;if(ie=Or())return ie;cr("Invalid escape","\\"+ue(),st)}return Yr()}function Yr(){var ie;if(ie=te(/^[^()[\]{}/\-\\|]/))return R(ie)}function Or(){var ie;if(X("b"))return x("singleEscape",8,"\\b");if(X("B"))cr("\\B not possible inside of ClassContents","",Ce-2);else return(ie=te(/^[&\-!#%,:;<=>@_`~]/))?x("identifier",ie[0].codePointAt(0),ie[0]):(ie=$t())?ie:null}function Gr(){var ie=Ce-3,st=[];do st.push(qa());while(X("|"));return G("}"),L(st,ie,Ce)}function qa(){for(var ie=[],st=Ce,dt;dt=Cr();)ie.push(dt);return V(ie,st,Ce)}function cr(ie,st,dt,St){dt=dt??Ce,St=St??dt;var Gt=Math.max(0,dt-10),zr=Math.min(St+10,u.length),cn=" "+u.substring(Gt,zr),ti=" "+new Array(dt-Gt+1).join(" ")+"^";throw SyntaxError(ie+" at position "+dt+(st?": "+st:"")+` +`+cn+` +`+ti)}var na=[],N=0,$=!0,U=!1,pe=(o||"").indexOf("u")!==-1,_e=(o||"").indexOf("v")!==-1,We=pe||_e,Ce=0;if(_e&&!c.unicodeSet)throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.');if(pe&&_e)throw new Error('The "u" and "v" flags are mutually exclusive.');u=String(u),u===""&&(u="(?:)");var Ct=ae();return Ct.range[1]!==u.length&&cr("Could not parse entire input - got stuck","",Ct.range[1]),U=U||na.some(function(ie){return ie<=N}),U?(Ce=0,$=!1,ae()):Ct}var l={parse:s};e.exports?e.exports=l:window.regjsparser=l})()})(yie);var VYe=yie.exports,WYe=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]),GYe=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]]),KYe=WYe,gie=GYe,HYe=function(r){if(KYe.has(r))return r;if(gie.has(r))return gie.get(r);throw new Error("Unknown property: "+r)},zYe=HYe,XYe=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Kawi","Kawi"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nagm","Nag_Mundari"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nag_Mundari","Nag_Mundari"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Kawi","Kawi"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nagm","Nag_Mundari"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nag_Mundari","Nag_Mundari"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]]),JYe=XYe,YYe=function(r,s){var l=JYe.get(r);if(!l)throw new Error("Unknown property `"+r+"`.");var u=l.get(s);if(u)return u;throw new Error("Unknown value `"+s+"` for property `"+r+"`.")},QYe=YYe,ZYe=new Map([[75,8490],[83,383],[107,8490],[115,383],[181,924],[197,8491],[223,7838],[229,8491],[383,83],[452,453],[453,452],[455,456],[456,455],[458,459],[459,458],[497,498],[498,497],[837,8126],[914,976],[917,1013],[920,1012],[921,8126],[922,1008],[924,181],[928,982],[929,1009],[931,962],[934,981],[937,8486],[952,1012],[962,931],[969,8486],[976,914],[977,1012],[981,934],[982,928],[1008,922],[1009,929],[1012,[920,977,952]],[1013,917],[1042,7296],[1044,7297],[1054,7298],[1057,7299],[1058,7301],[1066,7302],[1122,7303],[7296,1042],[7297,1044],[7298,1054],[7299,1057],[7300,7301],[7301,[1058,7300]],[7302,1066],[7303,1122],[7304,42570],[7776,7835],[7835,7776],[7838,223],[8064,8072],[8065,8073],[8066,8074],[8067,8075],[8068,8076],[8069,8077],[8070,8078],[8071,8079],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8080,8088],[8081,8089],[8082,8090],[8083,8091],[8084,8092],[8085,8093],[8086,8094],[8087,8095],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8096,8104],[8097,8105],[8098,8106],[8099,8107],[8100,8108],[8101,8109],[8102,8110],[8103,8111],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8115,8124],[8124,8115],[8126,[837,921]],[8131,8140],[8140,8131],[8179,8188],[8188,8179],[8486,[937,969]],[8490,75],[8491,[197,229]],[42570,7304],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66600,66560],[66601,66561],[66602,66562],[66603,66563],[66604,66564],[66605,66565],[66606,66566],[66607,66567],[66608,66568],[66609,66569],[66610,66570],[66611,66571],[66612,66572],[66613,66573],[66614,66574],[66615,66575],[66616,66576],[66617,66577],[66618,66578],[66619,66579],[66620,66580],[66621,66581],[66622,66582],[66623,66583],[66624,66584],[66625,66585],[66626,66586],[66627,66587],[66628,66588],[66629,66589],[66630,66590],[66631,66591],[66632,66592],[66633,66593],[66634,66594],[66635,66595],[66636,66596],[66637,66597],[66638,66598],[66639,66599],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66776,66736],[66777,66737],[66778,66738],[66779,66739],[66780,66740],[66781,66741],[66782,66742],[66783,66743],[66784,66744],[66785,66745],[66786,66746],[66787,66747],[66788,66748],[66789,66749],[66790,66750],[66791,66751],[66792,66752],[66793,66753],[66794,66754],[66795,66755],[66796,66756],[66797,66757],[66798,66758],[66799,66759],[66800,66760],[66801,66761],[66802,66762],[66803,66763],[66804,66764],[66805,66765],[66806,66766],[66807,66767],[66808,66768],[66809,66769],[66810,66770],[66811,66771],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[66967,66928],[66968,66929],[66969,66930],[66970,66931],[66971,66932],[66972,66933],[66973,66934],[66974,66935],[66975,66936],[66976,66937],[66977,66938],[66979,66940],[66980,66941],[66981,66942],[66982,66943],[66983,66944],[66984,66945],[66985,66946],[66986,66947],[66987,66948],[66988,66949],[66989,66950],[66990,66951],[66991,66952],[66992,66953],[66993,66954],[66995,66956],[66996,66957],[66997,66958],[66998,66959],[66999,66960],[67e3,66961],[67001,66962],[67003,66964],[67004,66965],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68800,68736],[68801,68737],[68802,68738],[68803,68739],[68804,68740],[68805,68741],[68806,68742],[68807,68743],[68808,68744],[68809,68745],[68810,68746],[68811,68747],[68812,68748],[68813,68749],[68814,68750],[68815,68751],[68816,68752],[68817,68753],[68818,68754],[68819,68755],[68820,68756],[68821,68757],[68822,68758],[68823,68759],[68824,68760],[68825,68761],[68826,68762],[68827,68763],[68828,68764],[68829,68765],[68830,68766],[68831,68767],[68832,68768],[68833,68769],[68834,68770],[68835,68771],[68836,68772],[68837,68773],[68838,68774],[68839,68775],[68840,68776],[68841,68777],[68842,68778],[68843,68779],[68844,68780],[68845,68781],[68846,68782],[68847,68783],[68848,68784],[68849,68785],[68850,68786],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[71872,71840],[71873,71841],[71874,71842],[71875,71843],[71876,71844],[71877,71845],[71878,71846],[71879,71847],[71880,71848],[71881,71849],[71882,71850],[71883,71851],[71884,71852],[71885,71853],[71886,71854],[71887,71855],[71888,71856],[71889,71857],[71890,71858],[71891,71859],[71892,71860],[71893,71861],[71894,71862],[71895,71863],[71896,71864],[71897,71865],[71898,71866],[71899,71867],[71900,71868],[71901,71869],[71902,71870],[71903,71871],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93792,93760],[93793,93761],[93794,93762],[93795,93763],[93796,93764],[93797,93765],[93798,93766],[93799,93767],[93800,93768],[93801,93769],[93802,93770],[93803,93771],[93804,93772],[93805,93773],[93806,93774],[93807,93775],[93808,93776],[93809,93777],[93810,93778],[93811,93779],[93812,93780],[93813,93781],[93814,93782],[93815,93783],[93816,93784],[93817,93785],[93818,93786],[93819,93787],[93820,93788],[93821,93789],[93822,93790],[93823,93791],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251],[125218,125184],[125219,125185],[125220,125186],[125221,125187],[125222,125188],[125223,125189],[125224,125190],[125225,125191],[125226,125192],[125227,125193],[125228,125194],[125229,125195],[125230,125196],[125231,125197],[125232,125198],[125233,125199],[125234,125200],[125235,125201],[125236,125202],[125237,125203],[125238,125204],[125239,125205],[125240,125206],[125241,125207],[125242,125208],[125243,125209],[125244,125210],[125245,125211],[125246,125212],[125247,125213],[125248,125214],[125249,125215],[125250,125216],[125251,125217]]),Av={},On=ee;Av.REGULAR=new Map([["d",On().addRange(48,57)],["D",On().addRange(0,47).addRange(58,65535)],["s",On(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",On().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535)],["w",On(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",On(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)]]),Av.UNICODE=new Map([["d",On().addRange(48,57)],["D",On().addRange(0,47).addRange(58,1114111)],["s",On(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",On().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",On(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",On(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)]]),Av.UNICODE_IGNORE_CASE=new Map([["d",On().addRange(48,57)],["D",On().addRange(0,47).addRange(58,1114111)],["s",On(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",On().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",On(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122)],["W",On(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,382).addRange(384,8489).addRange(8491,1114111)]]);var vie=UYe.generate,bie=VYe.parse,xi=ee,xie=zYe,Rie=QYe,eQe=ZYe,Fj=Av;function tQe(e,r){var s=[];return e.forEach(function(l){var u=r(l);Array.isArray(u)?s.push.apply(s,u):s.push(u)}),s}var rQe=/([\\^$.*+?()[\]{}|])/g,lu=xi().addRange(0,1114111),Eie=xi().addRange(65536,1114111),$j=xi().add(10,13,8232,8233),aQe=lu.clone().remove($j),Sie=function(r,s,l){return s?l?Fj.UNICODE_IGNORE_CASE.get(r):Fj.UNICODE.get(r):Fj.REGULAR.get(r)},nQe=function(r){return r?lu:aQe},Iv=function(r,s){var l=s?r+"/"+s:"Binary_Property/"+r;try{return $Ye("/node_modules/regexpu-core")("regenerate-unicode-properties/"+l+".js")}catch{throw new Error("Failed to recognize value `"+s+"` for property "+("`"+r+"`."))}},sQe=function(r){try{var s="General_Category",l=Rie(s,r);return Iv(s,l)}catch{}try{return Iv("Property_of_Strings",r)}catch{}var u=xie(r);return Iv(u)},iQe=function(r,s){var l=r.split("="),u=l[0],o;if(l.length==1)o=sQe(u);else{var c=xie(u),f=Rie(c,l[1]);o=Iv(c,f)}if(s){if(o.strings)throw new Error("Cannot negate Unicode property of strings");return{characters:lu.clone().remove(o.characters),strings:new Set}}return{characters:o.characters.clone(),strings:o.strings?new Set(o.strings.map(function(h){return h.replace(rQe,"\\$1")})):new Set}},Tie=function(r,s){var l=iQe(r,s),u=Uj();return u.singleChars=l.characters,l.strings.size>0&&(u.longStrings=l.strings,u.maybeIncludesStrings=!0),u};function Hh(){return!!Tr.modifiersData.i}function zh(){return Tr.modifiersData.i===!1||!Tr.transform.unicodeFlag?!1:!!(Tr.modifiersData.i||Tr.flags.ignoreCase)}xi.prototype.iuAddRange=function(e,r){var s=this;do{var l=qj(e,Hh(),zh());l&&s.add(l)}while(++e<=r);return s},xi.prototype.iuRemoveRange=function(e,r){var s=this;do{var l=qj(e,Hh(),zh());l&&s.remove(l)}while(++e<=r);return s};var Ri=function(r,s){var l=bie(s,Tr.useUnicodeFlag?"u":"",{lookbehind:!0,namedGroups:!0,unicodePropertyEscape:!0,unicodeSet:!0,modifiers:!0});switch(l.type){case"characterClass":case"group":case"value":break;default:l=oQe(l,s)}Object.assign(r,l)},oQe=function(r,s){return{type:"group",behavior:"ignore",body:[r],raw:"(?:"+s+")"}},qj=function(r,s,l){var u=(l?eQe.get(r):void 0)||[];return typeof u=="number"&&(u=[u]),s&&(r>=65&&r<=90?u.push(r+32):r>=97&&r<=122&&u.push(r-32)),u.length==0?!1:u},pp=function(r){switch(r){case"union":return{single:function(c,f){c.singleChars.add(f)},regSet:function(c,f){c.singleChars.add(f)},range:function(c,f,h){c.singleChars.addRange(f,h)},iuRange:function(c,f,h){c.singleChars.iuAddRange(f,h)},nested:function(c,f){c.singleChars.add(f.singleChars);for(var h=C(f.longStrings),m;!(m=h()).done;){var g=m.value;c.longStrings.add(g)}f.maybeIncludesStrings&&(c.maybeIncludesStrings=!0)}};case"union-negative":{var s=function(c,f){c.singleChars=lu.clone().remove(f).add(c.singleChars)};return{single:function(c,f){var h=lu.clone();c.singleChars=c.singleChars.contains(f)?h:h.remove(f)},regSet:s,range:function(c,f,h){c.singleChars=lu.clone().removeRange(f,h).add(c.singleChars)},iuRange:function(c,f,h){c.singleChars=lu.clone().iuRemoveRange(f,h).add(c.singleChars)},nested:function(c,f){if(s(c,f.singleChars),f.maybeIncludesStrings)throw new Error("ASSERTION ERROR")}}}case"intersection":{var l=function(c,f){c.first?c.singleChars=f:c.singleChars.intersection(f)};return{single:function(c,f){c.singleChars=c.first||c.singleChars.contains(f)?xi(f):xi(),c.longStrings.clear(),c.maybeIncludesStrings=!1},regSet:function(c,f){l(c,f),c.longStrings.clear(),c.maybeIncludesStrings=!1},range:function(c,f,h){c.first?c.singleChars.addRange(f,h):c.singleChars.intersection(xi().addRange(f,h)),c.longStrings.clear(),c.maybeIncludesStrings=!1},iuRange:function(c,f,h){c.first?c.singleChars.iuAddRange(f,h):c.singleChars.intersection(xi().iuAddRange(f,h)),c.longStrings.clear(),c.maybeIncludesStrings=!1},nested:function(c,f){if(l(c,f.singleChars),c.first)c.longStrings=f.longStrings,c.maybeIncludesStrings=f.maybeIncludesStrings;else{for(var h=C(c.longStrings),m;!(m=h()).done;){var g=m.value;f.longStrings.has(g)||c.longStrings.delete(g)}f.maybeIncludesStrings||(c.maybeIncludesStrings=!1)}}}}case"subtraction":{var u=function(c,f){c.first?c.singleChars.add(f):c.singleChars.remove(f)};return{single:function(c,f){c.first?c.singleChars.add(f):c.singleChars.remove(f)},regSet:u,range:function(c,f,h){c.first?c.singleChars.addRange(f,h):c.singleChars.removeRange(f,h)},iuRange:function(c,f,h){c.first?c.singleChars.iuAddRange(f,h):c.singleChars.iuRemoveRange(f,h)},nested:function(c,f){if(u(c,f.singleChars),c.first)c.longStrings=f.longStrings,c.maybeIncludesStrings=f.maybeIncludesStrings;else for(var h=C(c.longStrings),m;!(m=h()).done;){var g=m.value;f.longStrings.has(g)&&c.longStrings.delete(g)}}}}default:throw new Error("Unknown set action: "+characterClassItem.kind)}},Uj=function(){return{transformed:Tr.transform.unicodeFlag,singleChars:xi(),longStrings:new Set,hasEmptyString:!1,first:!0,maybeIncludesStrings:!1}},Cv=function(r){var s=Hh(),l=zh();if(s||l){var u=qj(r,s,l);if(u)return[r,u]}return[r]},lQe=function(r,s){for(var l=Uj(),u=Hh(),o=zh(),c=C(r.strings),f;!(f=c()).done;){var h=f.value;if(h.characters.length===1)Cv(h.characters[0].codePoint).forEach(function(I){l.singleChars.add(I)});else{var m=void 0;if(o||u){m="";for(var g=C(h.characters),x;!(x=g()).done;){var R=x.value,w=xi(R.codePoint),T=Cv(R.codePoint);T&&w.add(T),m+=w.toString(s)}}else m=h.characters.map(function(I){return vie(I)}).join("");l.longStrings.add(m),l.maybeIncludesStrings=!0}}return l},wie=function(r,s){var l=Uj(),u,o;switch(r.kind){case"union":u=pp("union"),o=pp("union-negative");break;case"intersection":u=pp("intersection"),o=pp("subtraction");break;case"subtraction":u=pp("subtraction"),o=pp("intersection");break;default:throw new Error("Unknown character class kind: "+r.kind)}for(var c=Hh(),f=zh(),h=C(r.body),m;!(m=h()).done;){var g=m.value;switch(g.type){case"value":Cv(g.codePoint).forEach(function(P){u.single(l,P)});break;case"characterClassRange":var x=g.min.codePoint,R=g.max.codePoint;u.range(l,x,R),(c||f)&&(u.iuRange(l,x,R),l.transformed=!0);break;case"characterClassEscape":u.regSet(l,Sie(g.value,Tr.flags.unicode,Tr.flags.ignoreCase));break;case"unicodePropertyEscape":var w=Tie(g.value,g.negative);u.nested(l,w),l.transformed=l.transformed||Tr.transform.unicodePropertyEscapes||Tr.transform.unicodeSetsFlag&&w.maybeIncludesStrings;break;case"characterClass":var T=g.negative?o:u,I=wie(g,s);T.nested(l,I),l.transformed=!0;break;case"classStrings":u.nested(l,lQe(g,s)),l.transformed=!0;break;default:throw new Error("Unknown term type: "+g.type)}l.first=!1}if(r.negative&&l.maybeIncludesStrings)throw new SyntaxError("Cannot negate set containing strings");return l},Pie=function(r,s,l){l===void 0&&(l=wie(r,s));var u=r.negative,o=l,c=o.singleChars,f=o.transformed,h=o.longStrings;if(f){var m=c.toString(s);if(u)if(Tr.useUnicodeFlag)Ri(r,"[^"+(m[0]==="["?m.slice(1,-1):m)+"]");else if(Tr.flags.unicode)if(Tr.flags.ignoreCase){var g=c.clone().intersection(Eie),x=c.clone().remove(g).addRange(55296,57343).toString({bmpOnly:!0}),R=Eie.clone().remove(g).toString(s);Ri(r,"(?!"+x+")[\\s\\S]|"+R)}else Ri(r,lu.clone().remove(c).toString(s));else Ri(r,"(?!"+m+")[\\s\\S]");else{var w=h.has(""),T=Array.from(h).sort(function(I,P){return P.length-I.length});(m!=="[]"||h.size===0)&&T.splice(T.length-(w?1:0),0,m),Ri(r,T.join("|"))}}return r},uQe=function(r){var s=Object.keys(r.unmatchedReferences);if(s.length>0)throw new Error("Unknown group names: "+s)},cQe=function(r,s,l){var u=r.modifierFlags.enabling,o=r.modifierFlags.disabling;delete r.modifierFlags,r.behavior="ignore";var c=Object.assign({},Tr.modifiersData);return u.split("").forEach(function(f){Tr.modifiersData[f]=!0}),o.split("").forEach(function(f){Tr.modifiersData[f]=!1}),r.body=r.body.map(function(f){return Xh(f,s,l)}),Tr.modifiersData=c,r},Xh=function(r,s,l){switch(r.type){case"dot":Tr.transform.unicodeFlag?Ri(r,nQe(Tr.flags.dotAll||Tr.modifiersData.s).toString(s)):(Tr.transform.dotAllFlag||Tr.modifiersData.s)&&Ri(r,"[\\s\\S]");break;case"characterClass":r=Pie(r,s);break;case"unicodePropertyEscape":var u=Tie(r.value,r.negative);if(u.maybeIncludesStrings){if(!Tr.flags.unicodeSets)throw new Error("Properties of strings are only supported when using the unicodeSets (v) flag.");Tr.transform.unicodeSetsFlag&&(u.transformed=!0,r=Pie(r,s,u))}else Tr.transform.unicodePropertyEscapes&&Ri(r,u.singleChars.toString(s));break;case"characterClassEscape":Tr.transform.unicodeFlag&&Ri(r,Sie(r.value,!0,Tr.flags.ignoreCase).toString(s));break;case"group":if(r.behavior=="normal"&&l.lastIndex++,r.name){var o=r.name.value;if(l.namesConflicts[o])throw new Error("Group '"+o+"' has already been defined in this context.");l.namesConflicts[o]=!0,Tr.transform.namedGroups&&delete r.name;var c=l.lastIndex;l.names[o]||(l.names[o]=[]),l.names[o].push(c),l.onNamedGroup&&l.onNamedGroup.call(null,o,c),l.unmatchedReferences[o]&&delete l.unmatchedReferences[o]}if(r.modifierFlags&&Tr.transform.modifiers)return cQe(r,s,l);case"quantifier":r.body=r.body.map(function(T){return Xh(T,s,l)});break;case"disjunction":var f=l.namesConflicts;r.body=r.body.map(function(T){return l.namesConflicts=Object.create(f),Xh(T,s,l)});break;case"alternative":r.body=tQe(r.body,function(T){var I=Xh(T,s,l);return I.type==="alternative"?I.body:I});break;case"value":var h=r.codePoint,m=xi(h),g=Cv(h);m.add(g),Ri(r,m.toString(s));break;case"reference":if(r.name){var x=r.name.value,R=l.names[x];if(R||(l.unmatchedReferences[x]=!0),Tr.transform.namedGroups){if(R){var w=R.map(function(T){return{type:"reference",matchIndex:T,raw:"\\"+T}});return w.length===1?w[0]:{type:"alternative",body:w,raw:w.map(function(T){return T.raw}).join("")}}return{type:"group",behavior:"ignore",body:[],raw:"(?:)"}}}break;case"anchor":Tr.modifiersData.m&&(r.kind=="start"?Ri(r,"(?:^|(?<="+$j.toString()+"))"):r.kind=="end"&&Ri(r,"(?:$|(?="+$j.toString()+"))"));case"empty":break;default:throw new Error("Unknown term type: "+r.type)}return r},Tr={flags:{ignoreCase:!1,unicode:!1,unicodeSets:!1,dotAll:!1,multiline:!1},transform:{dotAllFlag:!1,unicodeFlag:!1,unicodeSetsFlag:!1,unicodePropertyEscapes:!1,namedGroups:!1,modifiers:!1},modifiersData:{i:void 0,s:void 0,m:void 0},get useUnicodeFlag(){return(this.flags.unicode||this.flags.unicodeSets)&&!this.transform.unicodeFlag}},dQe=function(r){if(r)for(var s=0,l=Object.keys(r);s<l.length;s++){var u=l[s],o=r[u];switch(u){case"dotAllFlag":case"unicodeFlag":case"unicodePropertyEscapes":case"namedGroups":if(o!=null&&o!==!1&&o!=="transform")throw new Error("."+u+" must be false (default) or 'transform'.");break;case"modifiers":case"unicodeSetsFlag":if(o!=null&&o!==!1&&o!=="parse"&&o!=="transform")throw new Error("."+u+" must be false (default), 'parse' or 'transform'.");break;case"onNamedGroup":case"onNewFlags":if(o!=null&&typeof o!="function")throw new Error("."+u+" must be a function.");break;default:throw new Error("."+u+" is not a valid regexpu-core option.")}}},Jh=function(r,s){return r?r.includes(s):!1},wc=function(r,s){return r?r[s]==="transform":!1},pQe=function(r,s,l){dQe(l),Tr.flags.unicode=Jh(s,"u"),Tr.flags.unicodeSets=Jh(s,"v"),Tr.flags.ignoreCase=Jh(s,"i"),Tr.flags.dotAll=Jh(s,"s"),Tr.flags.multiline=Jh(s,"m"),Tr.transform.dotAllFlag=Tr.flags.dotAll&&wc(l,"dotAllFlag"),Tr.transform.unicodeFlag=(Tr.flags.unicode||Tr.flags.unicodeSets)&&wc(l,"unicodeFlag"),Tr.transform.unicodeSetsFlag=Tr.flags.unicodeSets&&wc(l,"unicodeSetsFlag"),Tr.transform.unicodePropertyEscapes=Tr.flags.unicode&&(wc(l,"unicodeFlag")||wc(l,"unicodePropertyEscapes")),Tr.transform.namedGroups=wc(l,"namedGroups"),Tr.transform.modifiers=wc(l,"modifiers"),Tr.modifiersData.i=void 0,Tr.modifiersData.s=void 0,Tr.modifiersData.m=void 0;var u={unicodeSet:!!(l&&l.unicodeSetsFlag),modifiers:!!(l&&l.modifiers),unicodePropertyEscape:!0,namedGroups:!0,lookbehind:!0},o={hasUnicodeFlag:Tr.useUnicodeFlag,bmpOnly:!Tr.flags.unicode},c={onNamedGroup:l&&l.onNamedGroup,lastIndex:0,names:Object.create(null),namesConflicts:Object.create(null),unmatchedReferences:Object.create(null)},f=bie(r,s,u);if(Tr.transform.modifiers&&/\(\?[a-z]*-[a-z]+:/.test(r)){for(var h=Object.create(null),m=[f],g;g=m.pop(),g!=null;)if(Array.isArray(g))Array.prototype.push.apply(m,g);else if(typeof g=="object"&&g!=null)for(var x=0,R=Object.keys(g);x<R.length;x++){var w=R[x],T=g[w];w=="modifierFlags"?T.disabling.length>0&&T.disabling.split("").forEach(function(k){h[k]=!0}):typeof T=="object"&&T!=null&&m.push(T)}for(var I=0,P=Object.keys(h);I<P.length;I++){var O=P[I];Tr.modifiersData[O]=!0}}Xh(f,o,c),uQe(c);var j=l&&l.onNewFlags;if(j){var D=s.split("").filter(function(k){return!Tr.modifiersData[k]}).join("");Tr.transform.unicodeSetsFlag&&(D=D.replace("v","u")),Tr.transform.unicodeFlag&&(D=D.replace("u","")),Tr.transform.dotAllFlag==="transform"&&(D=D.replace("s","")),j(D)}return vie(f)},fQe=pQe;function hQe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var mQe=(hQe(er.env.BABEL_8_BREAKING),gi()),jv=Object.freeze({unicodeFlag:1,dotAllFlag:2,unicodePropertyEscape:4,namedCaptureGroups:8,unicodeSetsFlag_syntax:16,unicodeSetsFlag:32,duplicateNamedCaptureGroups:64,modifiers:128}),Vj="@babel/plugin-regexp-features/featuresKey",fp="@babel/plugin-regexp-features/runtimeKey";function Aie(e,r){return e|r}function Iie(e,r){return!!(e&r)}function yQe(e,r){var s=function(o,c){return c===void 0&&(c="transform"),Iie(r,jv[o])?c:!1},l=function(){if(!s("duplicateNamedCaptureGroups"))return!1;for(var o=/\(\?<([^>]+)>/g,c=new Set,f;f=o.exec(e);c.add(f[1]))if(c.has(f[1]))return"transform";return!1};return{unicodeFlag:s("unicodeFlag"),unicodeSetsFlag:s("unicodeSetsFlag")||"parse",dotAllFlag:s("dotAllFlag"),unicodePropertyEscapes:s("unicodePropertyEscape"),namedGroups:s("namedCaptureGroups")||l(),onNamedGroup:function(){},modifiers:s("modifiers")}}function gQe(e,r){var s=e.flags,l=e.pattern;return!(s.includes("v")&&r.unicodeSetsFlag==="transform"||s.includes("u")&&(r.unicodeFlag==="transform"||r.unicodePropertyEscapes==="transform"&&/\\p\{/i.test(l))||s.includes("s")&&r.dotAllFlag==="transform"||r.namedGroups==="transform"&&/\(\?<(?![=!])/.test(l)||r.modifiers==="transform"&&/\(\?[\w-]+:/.test(l))}function vQe(e,r){return e.unicodeSetsFlag==="transform"&&(r=r.replace("v","u")),e.unicodeFlag==="transform"&&(r=r.replace("u","")),e.dotAllFlag==="transform"&&(r=r.replace("s","")),r}var Yh="@babel/plugin-regexp-features/version";function Pc(e){var r=e.name,s=e.feature,l=e.options,u=l===void 0?{}:l,o=e.manipulateOptions,c=o===void 0?function(){}:o;return{name:r,manipulateOptions:c,pre:function(){var h,m=this.file,g=(h=m.get(Vj))!=null?h:0,x=Aie(g,jv[s]),R=u.useUnicodeFlag,w=u.runtime;if(R===!1&&(x=Aie(x,jv.unicodeFlag)),x!==g&&m.set(Vj,x),w!==void 0){if(m.has(fp)&&m.get(fp)!==w&&Iie(x,jv.duplicateNamedCaptureGroups))throw new Error("The 'runtime' option must be the same for '@babel/plugin-transform-named-capturing-groups-regex' and '@babel/plugin-transform-duplicate-named-capturing-groups-regex'.");s==="namedCaptureGroups"?(!w||!m.has(fp))&&m.set(fp,w):m.set(fp,w)}if(typeof m.get(Yh)=="number"){m.set(Yh,"7.25.2");return}(!m.get(Yh)||mQe.lt(m.get(Yh),"7.25.2"))&&m.set(Yh,"7.25.2")},visitor:{RegExpLiteral:function(h){var m,g,x=h.node,R=this.file,w=R.get(Vj),T=(m=R.get(fp))!=null?m:!0,I=yQe(x.pattern,w);if(!gQe(x,I)){var P={__proto__:null};I.namedGroups==="transform"&&(I.onNamedGroup=function(D,k){var B=P[D];typeof B=="number"?P[D]=[B,k]:Array.isArray(B)?B.push(k):P[D]=k});var O;if(I.modifiers==="transform"&&(I.onNewFlags=function(D){O=D}),x.pattern=fQe(x.pattern,x.flags,I),I.namedGroups==="transform"&&Object.keys(P).length>0&&T&&!bQe(h)){var j=ft(this.addHelper("wrapRegExp"),[x,Jf(P)]);Ui(j),h.replaceWith(j)}x.flags=vQe(I,(g=O)!=null?g:x.flags)}}}}}function bQe(e){return e.parentPath.isMemberExpression({object:e.node,computed:!1})&&e.parentPath.get("property").isIdentifier({name:"test"})}var Wj=function(e,r){e.assertVersion("*");var s=r.runtime;if(s!==void 0&&typeof s!="boolean")throw new Error("The 'runtime' option must be boolean");return Pc({name:"transform-duplicate-named-capturing-groups-regex",feature:"duplicateNamedCaptureGroups",options:{runtime:s}})},xQe=["commonjs","amd","systemjs"],RQe=`@babel/plugin-transform-dynamic-import depends on a modules +transform plugin. Supported plugins are: + - @babel/plugin-transform-modules-commonjs ^7.4.0 + - @babel/plugin-transform-modules-amd ^7.4.0 + - @babel/plugin-transform-modules-systemjs ^7.4.0 + +If you are using Webpack or Rollup and thus don't want +Babel to transpile your imports and exports, you can use +the @babel/plugin-syntax-dynamic-import plugin and let your +bundler handle dynamic imports. +`,Cie=function(e){return e.assertVersion("*"),{name:"transform-dynamic-import",inherits:void 0,pre:function(){this.file.set("@babel/plugin-proposal-dynamic-import","7.24.7")},visitor:{Program:function(){var s=this.file.get("@babel/plugin-transform-modules-*");if(!xQe.includes(s))throw new Error(RQe)}}}},jie=function(e){return e.assertVersion("*"),{name:"proposal-export-default-from",inherits:oJ,visitor:{ExportNamedDeclaration:function(s){var l=s.node,u=l.specifiers,o=l.source;if(Ed(u[0])){var c=u.shift(),f=c.exported;if(u.every(function(h){return ff(h)})){u.unshift(hi(Ne("default"),f));return}s.insertBefore(Zs(null,[hi(Ne("default"),f)],me(o)))}}}}},Gj=function(e){return e.assertVersion("*"),{name:"transform-export-namespace-from",inherits:void 0,visitor:{ExportNamedDeclaration:function(s){var l,u=s.node,o=s.scope,c=u.specifiers,f=Ed(c[0])?1:0;if(Ef(c[f])){var h=[];f===1&&h.push(Zs(null,[c.shift()],u.source));var m=c.shift(),g=m.exported,x=o.generateUidIdentifier((l=g.name)!=null?l:g.value);h.push(Kg([Hg(x)],me(u.source)),Zs(null,[hi(me(x),g)])),u.specifiers.length>=1&&h.push(u);var R=s.replaceWithMultiple(h),w=je(R,1),T=w[0];s.scope.registerDeclaration(T)}}}}},Oie=function(e){e.assertVersion("*");function r(o){var c=o.path.getData("functionBind");return c?me(c):(c=o.generateDeclaredUidIdentifier("context"),o.path.setData("functionBind",c))}function s(o){return Zi(o.object)?o.object:o.callee.object}function l(o,c){var f=s(o);return c.isStatic(f)&&(Js(f)?qr():f)}function u(o,c){var f=l(o,c);if(f)return me(f);var h=r(c);return o.object?o.callee=Mr([tr("=",h,o.object),o.callee]):lr(o.callee)&&(o.callee.object=tr("=",h,o.callee.object)),me(h)}return{name:"proposal-function-bind",inherits:lJ,visitor:{CallExpression:function(c){var f=c.node,h=c.scope,m=f.callee;if(Rg(m)){var g=u(m,h);f.callee=Vt(m.callee,Ne("call")),f.arguments.unshift(g)}},BindExpression:function(c){var f=c.node,h=c.scope,m=u(f,h);c.replaceWith(ft(Vt(f.callee,Ne("bind")),[m]))}}}},_ie=function(e){e.assertVersion("*");var r=function(o){return Dt(o.meta,{name:"function"})&&Dt(o.property,{name:"sent"})},s=function(o,c){return Se(o)&&Dt(o.left,{name:c})},l={Function:function(o){o.skip()},YieldExpression:function(o){s(o.parent,this.sentId)||o.replaceWith(tr("=",Ne(this.sentId),o.node))},MetaProperty:function(o){r(o.node)&&o.replaceWith(Ne(this.sentId))}};return{name:"proposal-function-sent",inherits:uJ,visitor:{MetaProperty:function(o,c){if(r(o.node)){var f=o.getFunctionParent();if(!f.node.generator)throw new Error("Parent generator function not found");var h=o.scope.generateUid("function.sent");f.traverse(l,{sentId:h}),f.node.body.body.unshift(Br("let",[Sr(Ne(h),_d())])),SJ(f,c.addHelper("skipFirstGeneratorNext"))}}}}},Kj=function(e){e.assertVersion("*");var r=/(\\*)([\u2028\u2029])/g;function s(l,u,o){var c=u.length%2===1;return c?l:u+"\\u"+o.charCodeAt(0).toString(16)}return{name:"transform-json-strings",inherits:void 0,visitor:{"DirectiveLiteral|StringLiteral":function(u){var o=u.node,c=o.extra;c!=null&&c.raw&&(c.raw=c.raw.replace(r,s))}}}},Hj=function(e){return e.assertVersion("*"),{name:"transform-logical-assignment-operators",inherits:void 0,visitor:{AssignmentExpression:function(s){var l=s.node,u=s.scope,o=l.operator,c=l.left,f=l.right,h=o.slice(0,-1);if(Ku.includes(h)){var m=me(c);if(lr(c)){var g=c.object,x=c.property,R=c.computed,w=u.maybeGenerateMemoised(g);if(w&&(c.object=w,m.object=tr("=",me(w),g)),R){var T=u.maybeGenerateMemoised(x);T&&(c.property=T,m.property=tr("=",me(T),x))}}s.replaceWith(pi(h,m,tr("=",c,f)))}}}}},Nie,zj=function(e,r){var s,l=r.loose,u=l===void 0?!1:l;e.assertVersion("*");var o=(s=e.assumption("noDocumentAll"))!=null?s:u;return{name:"transform-nullish-coalescing-operator",inherits:void 0,visitor:{LogicalExpression:function(f){var h=f.node,m=f.scope;if(h.operator==="??"){var g,x;if(m.isStatic(h.left))g=h.left,x=me(h.left);else if(m.path.isPattern()){f.replaceWith(xt.statement.ast(Nie||(Nie=se(["(() => ",")()"])),f.node));return}else g=m.generateUidIdentifierBasedOnNode(h.left),m.push({id:me(g)}),x=tr("=",g,h.left);f.replaceWith(Qs(o?nn("!=",x,Bn()):pi("&&",nn("!==",x,Bn()),nn("!==",me(g),m.buildUndefinedNode())),me(g),h.right))}}}}};function kie(e){var r,s=e.node,l=s.extra;l!=null&&(r=l.raw)!=null&&r.includes("_")&&(l.raw=l.raw.replace(/_/g,""))}var Xj=function(e){return e.assertVersion("*"),{name:"transform-numeric-separator",inherits:void 0,visitor:{NumericLiteral:kie,BigIntLiteral:kie}}};function hp(e){if(!e)return!1;if(e.type==="ArrayPattern"){var r=e.elements.filter(function(u){return u!==null});return r.length>1?!0:hp(r[0])}else if(e.type==="ObjectPattern"){var s=e.properties;if(s.length>1)return!0;if(s.length===0)return!1;var l=s[0];return l.type==="ObjectProperty"?hp(l.value):hp(l)}else return e.type==="AssignmentPattern"?hp(e.left):e.type==="RestElement"?e.argument.type==="Identifier"?!0:hp(e.argument):!1}var EQe={"Object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"}},SQe=Nl,TQe=Sn,Die=Ne("a"),Lie=sn(Ne("key"),Die),wQe=Vf([Lie]),PQe=Bd(Die,Lie,wQe)?1:0,Mie=function(e,r){var s,l,u,o;e.assertVersion("*");var c=e.targets(),f=!Go("Object.assign",c,{compatData:EQe}),h=r.useBuiltIns,m=h===void 0?f:h,g=r.loose,x=g===void 0?!1:g;if(typeof x!="boolean")throw new Error(".loose must be a boolean, or undefined");var R=(s=e.assumption("ignoreFunctionLength"))!=null?s:x,w=(l=e.assumption("objectRestNoSymbols"))!=null?l:x,T=(u=e.assumption("pureGetters"))!=null?u:x,I=(o=e.assumption("setSpreadProperties"))!=null?o:x;function P(K){return m?Vt(Ne("Object"),Ne("assign")):K.addHelper("extends")}function O(K){var G=!1;return D(K,function(X){G=!0,X.stop()}),G}function j(K){var G=!1;return D(K,function(X){X.parentPath.isObjectPattern()&&(G=!0,X.stop())}),G}function D(K,G){K.traverse({Expression:function(ue){var oe=ue.parent,he=ue.key;(SQe(oe)&&he==="right"||TQe(oe)&&oe.computed&&he==="key")&&ue.skip()},RestElement:G})}function k(K){for(var G=C(K.properties),X;!(X=G()).done;){var ue=X.value;if(mn(ue))return!0}return!1}function B(K){for(var G=K.properties,X=[],ue=!0,oe=!1,he=C(G),te;!(te=he()).done;){var ae=te.value,J=ae.key;Dt(J)&&!ae.computed?X.push(Jt(J.name)):Di(J)?(X.push(me(J)),oe=!0):yn(J)?X.push(Jt(String(J.value))):(X.push(me(J)),lr(J,{computed:!1})&&Dt(J.object,{name:"Symbol"})||ct(J)&&_f(J.callee,"Symbol.for")||(ue=!1))}return{keys:X,allPrimitives:ue,hasTemplateLiteral:oe}}function F(K,G){for(var X=[],ue=C(K),oe;!(oe=ue()).done;){var he=oe.value,te=he.get("key");if(he.node.computed&&!te.isPure()){var ae=G.generateUidBasedOnNode(te.node),J=Sr(Ne(ae),te.node);X.push(J),te.replaceWith(Ne(ae))}}return X}function L(K){var G=K.getOuterBindingIdentifierPaths();Object.keys(G).forEach(function(X){var ue=G[X].parentPath;K.scope.getBinding(X).references>PQe||!ue.isObjectProperty()||ue.remove()})}function V(K,G,X){var ue=K.get("properties"),oe=ue[ue.length-1];Bq(oe.node);var he=me(oe.node);oe.remove();var te=F(K.get("properties"),K.scope),ae=B(K.node),J=ae.keys,xe=ae.allPrimitives,de=ae.hasTemplateLiteral;if(J.length===0)return[te,he.argument,ft(P(G),[Oa([]),Mr([ft(G.addHelper("objectDestructuringEmpty"),[me(X)]),me(X)])])];var $e;if(!xe)$e=ft(Vt(Ra(J),Ne("map")),[G.addHelper("toPropertyKey")]);else if($e=Ra(J),!de&&!Va(K.scope.block)){var Ve=K.findParent(function(ke){return ke.isProgram()}),Ie=K.scope.generateUidIdentifier("excluded");Ve.scope.push({id:Ie,init:$e,kind:"const"}),$e=me(Ie)}return[te,he.argument,ft(G.addHelper("objectWithoutProperties"+(w?"Loose":"")),[me(X),$e])]}function H(K,G,X){if(G.isAssignmentPattern()){H(K,G.get("left"),X);return}if(G.isArrayPattern()&&O(G))for(var ue=G.get("elements"),oe=0;oe<ue.length;oe++)H(K,ue[oe],X);if(G.isObjectPattern()&&O(G)){var he=K.scope.generateUidIdentifier("ref"),te=Br("let",[Sr(G.node,he)]);X?X.push(te):(K.ensureBlock(),K.get("body").unshiftContainer("body",te)),G.replaceWith(me(he))}}return{name:"transform-object-rest-spread",inherits:void 0,visitor:{Function:function(G){for(var X=G.get("params"),ue=new Set,oe=new Set,he=0;he<X.length;++he){var te=X[he];if(O(te)){ue.add(he);for(var ae=0,J=Object.keys(te.getBindingIdentifiers());ae<J.length;ae++){var xe=J[ae];oe.add(xe)}}}var de=!1,$e=function(lt,gt){var It=lt.node.name;lt.scope.getBinding(It)===gt.getBinding(It)&&oe.has(It)&&(de=!0,lt.stop())},Ve;for(Ve=0;Ve<X.length&&!de;++Ve){var Ie=X[Ve];ue.has(Ve)||(Ie.isReferencedIdentifier()||Ie.isBindingIdentifier()?$e(Ie,G.scope):Ie.traverse({"Scope|TypeAnnotation|TSTypeAnnotation":function(lt){return lt.skip()},"ReferencedIdentifier|BindingIdentifier":$e},G.scope))}if(de){var Ze=function(lt){return lt>=Ve-1||ue.has(lt)};JS(G,R,Ze,H)}else for(var ke=0;ke<X.length;++ke){var Le=X[ke];ue.has(ke)&&H(G,Le)}},VariableDeclarator:function(K){function G(X,ue){return K.apply(this,arguments)}return G.toString=function(){return K.toString()},G}(function(K,G){if(K.get("id").isObjectPattern()){var X=K,ue=K;D(K.get("id"),function(oe){if(oe.parentPath.isObjectPattern()){if(hp(ue.node.id)&&!Dt(ue.node.init)){var he=oe.scope.generateUidIdentifierBasedOnNode(ue.node.init,"ref");ue.insertBefore(Sr(he,ue.node.init)),ue.replaceWith(Sr(ue.node.id,me(he)));return}var te=ue.node.init,ae=[],J;oe.findParent(function(Ze){if(Ze.isObjectProperty())ae.unshift(Ze);else if(Ze.isVariableDeclarator())return J=Ze.parentPath.node.kind,!0});var xe=F(ae,oe.scope);ae.forEach(function(Ze){var at=Ze.node;te=Vt(te,me(at.key),at.computed||yn(at.key))});var de=oe.findParent(function(Ze){return Ze.isObjectPattern()}),$e=V(de,G,te),Ve=je($e,3),Ie=Ve[0],ke=Ve[1],Le=Ve[2];T&&L(de),V8(ke),X.insertBefore(Ie),X.insertBefore(xe),X=X.insertAfter(Sr(ke,Le))[0],oe.scope.registerBinding(J,X),de.node.properties.length===0&&de.findParent(function(Ze){return Ze.isObjectProperty()||Ze.isVariableDeclarator()}).remove()}})}}),ExportNamedDeclaration:function(G){var X=G.get("declaration");if(X.isVariableDeclaration()){var ue=X.get("declarations").some(function(J){return j(J.get("id"))});if(ue){for(var oe=[],he=0,te=Object.keys(G.getOuterBindingIdentifiers(!0));he<te.length;he++){var ae=te[he];oe.push(hi(Ne(ae),Ne(ae)))}G.replaceWith(X.node),G.insertAfter(Zs(null,oe))}}},CatchClause:function(G){var X=G.get("param");H(G,X)},AssignmentExpression:function(G,X){var ue=G.get("left");if(ue.isObjectPattern()&&O(ue)){var oe=[],he=G.scope.generateUidBasedOnNode(G.node.right,"ref");oe.push(Br("var",[Sr(Ne(he),G.node.right)]));var te=V(ue,X,Ne(he)),ae=je(te,3),J=ae[0],xe=ae[1],de=ae[2];J.length>0&&oe.push(Br("var",J));var $e=me(G.node);$e.right=Ne(he),oe.push(Xt($e)),oe.push(Xt(tr("=",xe,de))),oe.push(Xt(Ne(he))),G.replaceWithMultiple(oe)}},ForXStatement:function(G){var X=G.node,ue=G.scope,oe=G.get("left"),he=X.left;if(j(oe))if(Ja(he)){var J=he.declarations[0].id,xe=ue.generateUidIdentifier("ref");X.left=Br(he.kind,[Sr(xe,null)]),G.ensureBlock();var de=X.body;de.body.unshift(Br(X.left.kind,[Sr(J,me(xe))]))}else{var te=ue.generateUidIdentifier("ref");X.left=Br("var",[Sr(te)]),G.ensureBlock();var ae=G.node.body;ae.body.length===0&&G.isCompletionRecord()&&ae.body.unshift(Xt(ue.buildUndefinedNode())),ae.body.unshift(Xt(tr("=",he,me(te))))}},ArrayPattern:function(G){var X=[];if(D(G,function(te){if(te.parentPath.isObjectPattern()){var ae=te.parentPath,J=te.scope.generateUidIdentifier("ref");X.push(Sr(ae.node,J)),ae.replaceWith(me(J)),te.skip()}}),X.length>0){var ue=G.getStatementParent(),oe=ue.node,he=oe.type==="VariableDeclaration"?oe.kind:"var";ue.insertAfter(Br(he,X))}},ObjectExpression:function(G,X){if(!k(G.node))return;var ue;if(I)ue=P(X);else try{ue=X.addHelper("objectSpread2")}catch{this.file.declarations.objectSpread2=null,ue=X.addHelper("objectSpread")}var oe=null,he=[];function te(){var de=he.length>0,$e=Oa(he);if(he=[],!oe){oe=ft(ue,[$e]);return}if(T){de&&oe.arguments.push($e);return}oe=ft(me(ue),[oe].concat(fe(de?[Oa([]),$e]:[])))}for(var ae=C(G.node.properties),J;!(J=ae()).done;){var xe=J.value;mn(xe)?(te(),oe.arguments.push(xe.argument)):he.push(xe)}he.length&&te(),G.replaceWith(oe)}}}},Bie=function(e){return e.assertVersion("*"),{name:"transform-optional-catch-binding",inherits:void 0,visitor:{CatchClause:function(s){if(!s.node.param){var l=s.scope.generateUidIdentifier("unused"),u=s.get("param");u.replaceWith(l)}}}}};function Jj(e){var r=Fie(e),s=r.node,l=r.parentPath;if(l.isLogicalExpression()){var u=l.node,o=u.operator,c=u.right;if(o==="&&"||o==="||"||o==="??"&&s===c)return Jj(l)}if(l.isSequenceExpression()){var f=l.node.expressions;return f[f.length-1]===s?Jj(l):!0}return l.isConditional({test:s})||l.isUnaryExpression({operator:"!"})||l.isLoop({test:s})}function Fie(e){var r=e;return e.findParent(function(s){if(!AS(s.node))return!0;r=s}),r}var $ie,AQe=function(r){return r[r.length-1]};function Ov(e){return e=lp(e),Dt(e)||Js(e)||lr(e)&&!e.computed&&Ov(e.object)}function IQe(e){for(var r=e,s=e.scope;r.isOptionalMemberExpression()||r.isOptionalCallExpression();){var l=r,u=l.node,o=ds(r.isOptionalMemberExpression()?r.get("object"):r.get("callee"));if(u.optional)return!s.isStatic(o.node);r=o}}var CQe=xt.expression("%%check%% === null || %%ref%% === void 0"),jQe=xt.expression("%%check%% == null"),OQe=xt.expression("%%check%% !== null && %%ref%% !== void 0"),_Qe=xt.expression("%%check%% != null");function Yj(e,r,s,l,u){var o=r.pureGetters,c=r.noDocumentAll,f=e.scope;if(f.path.isPattern()&&IQe(e)){s.replaceWith(xt.expression.ast($ie||($ie=se(["(() => ",")()"])),s.node));return}for(var h=[],m=e;m.isOptionalMemberExpression()||m.isOptionalCallExpression();){var g=m,x=g.node;x.optional&&h.push(x),m.isOptionalMemberExpression()?(m.node.type="MemberExpression",m=ds(m.get("object"))):m.isOptionalCallExpression()&&(m.node.type="CallExpression",m=ds(m.get("callee")))}if(h.length!==0){for(var R=[],w,T=h.length-1;T>=0;T--){var I=h[T],P=ct(I),O=P?I.callee:I.object,j=lp(O),D=void 0,k=void 0;if(P&&Dt(j,{name:"eval"})?(k=D=j,I.callee=Mr([Wr(0),D])):o&&P&&Ov(j)?k=D=I.callee:f.isStatic(j)?k=D=O:((!w||P)&&(w=f.generateUidIdentifierBasedOnNode(j),f.push({id:me(w)})),D=w,k=tr("=",me(w),O),P?I.callee=D:I.object=D),P&&lr(j))if(o&&Ov(j))I.callee=O;else{var B=j.object,F=void 0;if(Js(B))F=qr();else{var L=f.maybeGenerateMemoised(B);L?(F=L,j.object=tr("=",L,B)):F=B}I.arguments.unshift(me(F)),I.callee=Vt(I.callee,Ne("call"))}var V={check:me(k),ref:me(D)};Object.defineProperty(V,"ref",{enumerable:!1}),R.push(V)}var H=s.node;u&&(H=u(H));var K=pr(l),G=K&&l.value===!1,X=!K&&Lu(l,{operator:"void"}),ue=Ea(s.parent)&&!s.isCompletionRecord()||li(s.parent)&&AQe(s.parent.expressions)!==s.node,oe=G?c?_Qe:OQe:c?jQe:CQe,he=G?"&&":"||",te=R.map(oe).reduce(function(ae,J){return pi(he,ae,J)});s.replaceWith(K||X&&ue?pi(he,te,H):Qs(te,l,H))}}function qie(e,r){var s=e.scope,l=Fie(e),u=l.parentPath;if(u.isUnaryExpression({operator:"delete"}))Yj(e,r,u,un(!0));else{var o;u.isCallExpression({callee:l.node})&&e.isOptionalMemberExpression()&&(o=function(f){var h,m=lp(f.object),g;return(!r.pureGetters||!Ov(m))&&(g=s.maybeGenerateMemoised(m),g&&(f.object=tr("=",g,m))),ft(Vt(f,Ne("bind")),[me((h=g)!=null?h:m)])}),Yj(e,r,e,Jj(l)?un(!1):s.buildUndefinedNode(),o)}}var Qj=function(e,r){var s,l;e.assertVersion("*");var u=r.loose,o=u===void 0?!1:u,c=(s=e.assumption("noDocumentAll"))!=null?s:o,f=(l=e.assumption("pureGetters"))!=null?l:o;return{name:"transform-optional-chaining",inherits:void 0,visitor:{"OptionalCallExpression|OptionalMemberExpression":function(m){qie(m,{noDocumentAll:c,pureGetters:f})}}}},Uie=function(e){var r,s;e.assertVersion("*");var l={noDocumentAll:(r=e.assumption("noDocumentAll"))!=null?r:!1,pureGetters:(s=e.assumption("pureGetters"))!=null?s:!1},u=e.types;return{name:"transform-optional-chaining-assign",inherits:mJ,visitor:{AssignmentExpression:function(c,f){var h,m=c.get("left");if(m.isExpression()){var g=((h=m.node.extra)==null?void 0:h.parenthesized)||u.isParenthesizedExpression(m.node);if(m=ds(m),!!m.isOptionalMemberExpression()){var x=c.scope.buildUndefinedNode();g&&(x=u.callExpression(f.addHelper("nullishReceiverError"),[]),c.node.operator==="="&&(x=u.sequenceExpression([u.cloneNode(c.node.right),x]))),Yj(m,l,c,x)}}}}}};function NQe(e){return md(e)&&Zi(e.body)&&!e.async}var Vie=function(r){var s=r.call,l=r.path,u=r.placeholder,o=s.callee,c=l.node.left,f=tr("=",me(u),c),h=NQe(o);if(h){var m,g=!0,x=o.params;if(x.length===1&&Dt(x[0])?m=x[0]:x.length>0&&(g=!1),g&&!m)return Mr([c,o.body]);if(m)return l.scope.push({id:me(u)}),l.get("right").scope.rename(m.name,u.name),Mr([f,o.body])}else if(Dt(o,{name:"eval"})){var R=Mr([Wr(0),o]);s.callee=R}return l.scope.push({id:me(u)}),Mr([f,s])},kQe={BinaryExpression:function(e){function r(s){return e.apply(this,arguments)}return r.toString=function(){return e.toString()},r}(function(e){var r=e.scope,s=e.node,l=s.operator,u=s.left,o=s.right;if(l==="|>"){var c=r.generateUidIdentifierBasedOnNode(u),f=ft(o,[me(c)]);e.replaceWith(Vie({placeholder:c,call:f,path:e}))}})},DQe={exit:function(r,s){r.isTopicReference()?s.topicReferences.push(r):s.topicReferences.length===0&&!s.sideEffectsBeforeFirstTopicReference&&!r.isPure()&&(s.sideEffectsBeforeFirstTopicReference=!0)},"ClassBody|Function":function(r,s){s.topicReferences.length===0&&(s.sideEffectsBeforeFirstTopicReference=!0)}},LQe={BinaryExpression:{exit:function(r){var s=r.scope,l=r.node;if(l.operator==="|>"){var u=r.get("right");if(u.node.type==="TopicReference"){r.replaceWith(l.left);return}var o={topicReferences:[],sideEffectsBeforeFirstTopicReference:u.isFunction()};if(u.traverse(DQe,o),o.topicReferences.length===1&&(!o.sideEffectsBeforeFirstTopicReference||r.scope.isPure(l.left,!0))){o.topicReferences[0].replaceWith(l.left),r.replaceWith(l.right);return}var c=s.generateUidIdentifierBasedOnNode(l);s.push({id:c}),o.topicReferences.forEach(function(f){return f.replaceWith(me(c))}),r.replaceWith(Mr([tr("=",me(c),l.left),l.right]))}}}},MQe={BinaryExpression:function(e){function r(s){return e.apply(this,arguments)}return r.toString=function(){return e.toString()},r}(function(e){var r=e.scope,s=e.node,l=s.operator,u=s.left,o=s.right;if(l==="|>"){var c=r.generateUidIdentifierBasedOnNode(u),f=o.type==="AwaitExpression"?to(me(c)):ft(o,[me(c)]),h=Vie({placeholder:c,call:f,path:e});e.replaceWith(h)}})},BQe={PipelinePrimaryTopicReference:function(r){r.replaceWith(me(this.topicId))},PipelineTopicExpression:function(r){r.skip()}},FQe={BinaryExpression:function(r){var s=r.scope,l=r.node,u=l.operator,o=l.left,c=l.right;if(u==="|>"){var f=s.generateUidIdentifierBasedOnNode(o);s.push({id:f});var h;if(Pg(c))r.get("right").traverse(BQe,{topicId:f}),h=c.expression;else{var m=c.callee;Dt(m,{name:"eval"})&&(m=Mr([Wr(0),m])),h=ft(m,[me(f)])}r.replaceWith(Mr([tr("=",me(f),o),h]))}}},$Qe={minimal:kQe,hack:LQe,fsharp:MQe,smart:FQe},Wie=function(e,r){e.assertVersion("*");var s=r.proposal;return s==="smart"&&console.warn('The smart-mix pipe operator is deprecated. Use "proposal": "hack" instead.'),{name:"proposal-pipeline-operator",inherits:bJ,visitor:$Qe[r.proposal]}},Zj=function(e,r){return e.assertVersion("*"),$S({name:"transform-private-methods",api:e,feature:fs.privateMethods,loose:r.loose,manipulateOptions:function(l,u){u.plugins.push("classPrivateMethods")}})},Gie,Kie,Hie,zie,Xie,Jie,eO=function(e,r){e.assertVersion("*");var s=e.types,l=e.template,u=r.loose,o=new WeakMap,c=new WeakMap;function f(x,R,w){for(;w!==R;)w.hasOwnBinding(x)&&w.rename(x),w=w.parent}function h(x,R,w){if(w===void 0&&(w=!1),x.node.value){var T=x.get("value");w?T.insertBefore(R):T.insertAfter(R)}else x.set("value",s.unaryExpression("void",R))}function m(x,R){for(var w,T,I=C(x.get("body.body")),P;!(P=I()).done;){var O=P.value;if((O.isClassProperty()||O.isClassPrivateProperty())&&!O.node.static){w=O;break}!T&&O.isClassMethod({kind:"constructor"})&&(T=O)}w?h(w,R,!0):jS(x,T,[s.expressionStatement(R)])}function g(x,R,w,T,I){T===void 0&&(T="");var P=x.get(w.node);if(!P){P=R.scope.generateUidIdentifier((T||"")+" brandCheck"),x.set(w.node,P),I(w,l.expression.ast(Gie||(Gie=se(["",".add(this)"])),s.cloneNode(P)));var O=s.newExpression(s.identifier("WeakSet"),[]);Ui(O),R.insertBefore(l.ast(Kie||(Kie=se(["var "," = ",""])),P,O))}return s.cloneNode(P)}return{name:"transform-private-property-in-object",inherits:void 0,pre:function(){BS(this.file,fs.privateIn,u)},visitor:{BinaryExpression:function(R,w){var T=R.node,I=w.file;if(T.operator==="in"&&s.isPrivateName(T.left)){var P=T.left.id.name,O,j=R.findParent(function(F){return F.isClass()?(O=F.get("body.body").find(function(L){var V=L.node;return s.isPrivate(V)&&V.key.id.name===P}),!!O):!1});if(j.parentPath.scope.path.isPattern()){j.replaceWith(l.ast(Hie||(Hie=se(["(() => ",")()"])),j.node));return}if(O.node.type==="ClassPrivateMethod")if(O.node.static)j.node.id?f(j.node.id.name,j.scope,R.scope):j.set("id",R.scope.generateUidIdentifier("class")),R.replaceWith(l.expression.ast(zie||(zie=se([` + `," === ",` + `])),s.cloneNode(j.node.id),up(T.right,I)));else{var D,k=g(o,j,j,(D=j.node.id)==null?void 0:D.name,m);R.replaceWith(l.expression.ast(Xie||(Xie=se(["",".has(",")"])),k,up(T.right,I)))}else{var B=g(c,j,O,O.node.key.id.name,h);R.replaceWith(l.expression.ast(Jie||(Jie=se(["",".has(",")"])),B,up(T.right,I)))}}}}}},Yie=new nu("@babel/plugin-proposal-record-and-tuple"),Qie=function(e,r){e.assertVersion("*");var s=Yie.validateStringOption("polyfillModuleName",r.polyfillModuleName,"@bloomberg/record-tuple-polyfill"),l=Yie.validateBooleanOption("importPolyfill",r.importPolyfill,!!r.polyfillModuleName),u=new WeakMap;function o(f,h,m){var g=f.get(h);return g||f.set(h,g=m()),g}function c(f,h){if(!l)return Ne(f);if(!h)throw new Error("Internal error: unable to find the Program node.");var m=f+":"+uo(h),g=o(u,h.node,function(){return new Map}),x=o(g,m,function(){return m0(h,f,s,{importedInterop:"uncompiled"}).name});return Ne(x)}return{name:"proposal-record-and-tuple",inherits:xJ,visitor:{Program:function(h,m){m.programPath=h},RecordExpression:function(h,m){var g=c("Record",m.programPath),x=Oa(h.node.properties),R=ft(g,[x]);h.replaceWith(R)},TupleExpression:function(h,m){var g=c("Tuple",m.programPath),x=ft(g,h.node.elements);h.replaceWith(x)}}}},Zie=function(e){return e.assertVersion("*"),Pc({name:"proposal-regexp-modifiers",feature:"modifiers"})},qQe=function(e){return e.assertVersion("*"),{name:"syntax-throw-expressions",manipulateOptions:function(s,l){l.plugins.push("throwExpressions")}}},eoe=function(e){return e.assertVersion("*"),{name:"proposal-throw-expressions",inherits:qQe,visitor:{UnaryExpression:function(s){var l=s.node,u=l.operator,o=l.argument;if(u==="throw"){var c=Mn(null,[Ne("e")],ea([fR(Ne("e"))]));s.replaceWith(ft(c,[o]))}}}}},toe=function(e,r){e.assertVersion("*");var s=r.useUnicodeFlag,l=s===void 0?!0:s;if(typeof l!="boolean")throw new Error(".useUnicodeFlag must be a boolean, or undefined");return Pc({name:"transform-unicode-property-regex",feature:"unicodePropertyEscape",options:{useUnicodeFlag:l}})},tO=function(e){return e.assertVersion("*"),Pc({name:"transform-unicode-sets-regex",feature:"unicodeSetsFlag",manipulateOptions:function(s,l){l.plugins.push("regexpUnicodeSets")}})},roe=function(e,r){var s,l;e.assertVersion("*");var u=r.method,o=r.module,c=(s=e.assumption("noNewArrows"))!=null?s:!0,f=(l=e.assumption("ignoreFunctionLength"))!=null?l:!1;return u&&o?{name:"transform-async-to-generator",visitor:{Function:function(m,g){if(!(!m.node.async||m.node.generator)){var x=g.methodWrapper;x?x=me(x):x=g.methodWrapper=m0(m,u,o),TS(m,{wrapAsync:x},c,f)}}}}:{name:"transform-async-to-generator",visitor:{Function:function(m,g){!m.node.async||m.node.generator||TS(m,{wrapAsync:g.addHelper("asyncToGenerator")},c,f)}}}},rO=function(e,r){var s;e.assertVersion("*");var l=(s=e.assumption("noNewArrows"))!=null?s:!r.spec;return{name:"transform-arrow-functions",visitor:{ArrowFunctionExpression:function(o){o.isArrowFunctionExpression()&&o.arrowFunctionToExpression({allowInsertArrow:!1,noNewArrows:l,specCompliant:!l})}}}},aO=function(e){e.assertVersion("*");function r(s){for(var l=C(s),u;!(u=l()).done;){var o=u.value;if(o.isFunctionDeclaration()){var c=o.node,f=Br("let",[Sr(c.id,An(c))]);f._blockHoist=2,c.id=null,o.replaceWith(f)}}}return{name:"transform-block-scoped-functions",visitor:{BlockStatement:function(l){var u=l.node,o=l.parent;Cs(o,{body:u})||Of(o)||r(l.get("body"))},SwitchCase:function(l){r(l.get("consequent"))}}}},aoe,noe,soe,ioe,UQe={"Expression|Declaration|Loop":function(r){r.skip()},Scope:function(r,s){r.isFunctionParent()&&r.skip();for(var l=r.scope.bindings,u=0,o=Object.keys(l);u<o.length;u++){var c=o[u],f=l[c];(f.kind==="let"||f.kind==="const"||f.kind==="hoisted")&&s.blockScoped.push(f)}}};function VQe(e){var r={blockScoped:[]};return e.traverse(UQe,r),r.blockScoped}function ooe(e,r){var s=new WeakSet,l=!1,u=coe(e.constantViolations,function(c){var f=loe(c,r),h=f.inBody,m=f.inClosure;if(!h)return null;l||(l=m);var g=c.isUpdateExpression()?c.get("argument"):c.isAssignmentExpression()?c.get("left"):null;return g&&s.add(g.node),g}),o=coe(e.referencePaths,function(c){if(s.has(c.node))return null;var f=loe(c,r),h=f.inBody,m=f.inClosure;return h?(l||(l=m),c):null});return{capturedInClosure:l,hasConstantViolations:u.length>0,usages:o.concat(u)}}function loe(e,r){for(var s=r.get("body"),l=!1,u=e;u;u=u.parentPath){if((u.isFunction()||u.isClass()||u.isMethod())&&(l=!0),u===s)return{inBody:!0,inClosure:l};if(u===r)return{inBody:!1,inClosure:l}}throw new Error("Internal Babel error: path is not in loop. Please report this as a bug.")}var WQe={Function:function(r){r.skip()},LabeledStatement:{enter:function(r,s){var l=r.node;s.labelsStack.push(l.label.name)},exit:function(r,s){var l=r.node,u=s.labelsStack.pop();if(u!==l.label.name)throw new Error("Assertion failure. Please report this bug to Babel.")}},Loop:{enter:function(r,s){s.labellessContinueTargets++,s.labellessBreakTargets++},exit:function(r,s){s.labellessContinueTargets--,s.labellessBreakTargets--}},SwitchStatement:{enter:function(r,s){s.labellessBreakTargets++},exit:function(r,s){s.labellessBreakTargets--}},"BreakStatement|ContinueStatement":function(r,s){var l=r.node.label;if(l){if(s.labelsStack.includes(l.name))return}else if(r.isBreakStatement()?s.labellessBreakTargets>0:s.labellessContinueTargets>0)return;s.breaksContinues.push(r)},ReturnStatement:function(r,s){s.returns.push(r)},VariableDeclaration:function(r,s){r.parent===s.loopNode&&uoe(r)||r.node.kind==="var"&&s.vars.push(r)}};function GQe(e,r,s){var l=e.node,u={breaksContinues:[],returns:[],labelsStack:[],labellessBreakTargets:0,labellessContinueTargets:0,vars:[],loopNode:l};e.traverse(WQe,u);for(var o=[],c=[],f=[],h=C(s),m;!(m=h()).done;){var g=je(m.value,2),x=g[0],R=g[1];o.push(Ne(x));var w=e.scope.generateUid(x);c.push(Ne(w)),f.push(tr("=",Ne(x),Ne(w)));for(var T=C(R),I;!(I=T()).done;){var P=I.value;P.replaceWith(Ne(w))}}for(var O=C(r),j;!(j=O()).done;){var D=j.value;s.has(D)||(o.push(Ne(D)),c.push(Ne(D)))}var k=e.scope.generateUid("loop"),B=Mn(null,c,n1(l.body)),F=ft(Ne(k),o),L=e.findParent(function(Cr){return Cr.isFunction()});if(L){var V=L.node,H=V.async,K=V.generator;B.async=H,B.generator=K,K?F=_d(F,!0):H&&(F=to(F))}var G=f.length>0?Xt(Mr(f)):null;G&&B.body.body.push(G);for(var X=e.insertBefore(Br("var",[Sr(Ne(k),B)])),ue=je(X,1),oe=ue[0],he=[],te=[],ae=C(u.vars),J;!(J=ae()).done;){for(var xe=J.value,de=[],$e=C(xe.node.declarations),Ve;!(Ve=$e()).done;){var Ie=Ve.value;te.push.apply(te,fe(Object.keys(_s(Ie.id)))),Ie.init?de.push(tr("=",Ie.id,Ie.init)):jf(xe.parent,{left:xe.node})&&de.push(Ie.id)}if(de.length>0){var ke=de.length===1?de[0]:Mr(de);xe.replaceWith(ke)}else xe.remove()}te.length&&oe.pushContainer("declarations",te.map(function(Cr){return Sr(Ne(Cr))}));var Le=u.breaksContinues.length,Ze=u.returns.length;if(Le+Ze===0)he.push(Xt(F));else if(Le===1&&Ze===0)for(var at=C(u.breaksContinues),lt;!(lt=at()).done;){var gt=lt.value,It=gt.node,tt=It.type,Ft=It.label,rr=tt==="BreakStatement"?"break":"continue";Ft&&(rr+=" "+Ft.name),gt.replaceWith(Xf(ln(Wr(1)),"trailing"," "+rr,!0)),G&>.insertBefore(me(G)),he.push(xt.statement.ast(aoe||(aoe=se([` + if (`,") ",` + `])),F,It))}else{var $t=e.scope.generateUid("ret");oe.isVariableDeclaration()?(oe.pushContainer("declarations",[Sr(Ne($t))]),he.push(Xt(tr("=",Ne($t),F)))):he.push(Br("var",[Sr(Ne($t),F)]));for(var Et=[],Lt=C(u.breaksContinues),Re;!(Re=Lt()).done;){var Be=Re.value,et=Be.node,it=et.type,vt=et.label,Ot=it==="BreakStatement"?"break":"continue";vt&&(Ot+=" "+vt.name);var De=Et.indexOf(Ot),Qe=De!==-1;Qe||(Et.push(Ot),De=Et.length-1),Be.replaceWith(Xf(ln(Wr(De)),"trailing"," "+Ot,!0)),G&&Be.insertBefore(me(G)),!Qe&&he.push(xt.statement.ast(ioe||(ioe=se([` + if (`," === ",") ",` + `])),Ne($t),Wr(De),et))}if(Ze){for(var yt=C(u.returns),jt;!(jt=yt()).done;){var Kt=jt.value,Ht=Kt.node.argument||Kt.scope.buildUndefinedNode();Kt.replaceWith(xt.statement.ast(soe||(soe=se([` + return { v: `,` }; + `])),Ht))}he.push(xt.statement.ast(noe||(noe=se([` + if (`,") return ",`.v; + `])),Ne($t),Ne($t)))}}return l.body=ea(he),oe}function uoe(e){return Rt(e.parent)?e.key==="init":jf(e.parent)?e.key==="left":!1}function coe(e,r){for(var s=[],l=C(e),u;!(u=l()).done;){var o=u.value,c=r(o);c&&s.push(c)}return s}function KQe(e,r,s){for(var l=[],u=0,o=Object.keys(e.getBindingIdentifiers());u<o.length;u++){var c=o[u],f=e.scope.getBinding(c);f&&(s&&JQe(f,r)&&l.push(c),e.node.kind==="const"&&HQe(c,f,r))}return l}function HQe(e,r,s){for(var l=C(r.constantViolations),u;!(u=l()).done;){var o=u.value,c=s.addHelper("readOnlyError"),f=ft(c,[Jt(e)]);if(o.isAssignmentExpression()){var h=o.node,m=h.operator,g=h.left,x=h.right;if(m==="="){var R=[x];R.push(f),o.replaceWith(Mr(R))}else["&&=","||=","??="].includes(m)?o.replaceWith(pi(m.slice(0,-1),g,Mr([x,f]))):o.replaceWith(Mr([nn(m.slice(0,-1),g,x),f]))}else o.isUpdateExpression()?o.replaceWith(Mr([vn("+",o.get("argument").node),f])):o.isForXStatement()&&(o.ensureBlock(),o.get("left").replaceWith(Br("var",[Sr(o.scope.generateUidIdentifier(e))])),o.node.body.body.unshift(Xt(f)))}}function zQe(e,r){var s=r._guessExecutionStatusRelativeTo(e);return s==="before"?"outside":s==="after"?"inside":"maybe"}var Qh=new WeakSet;function XQe(e,r,s){if(e==="maybe"){var l=me(r);return Qh.add(l),ft(s.addHelper("temporalRef"),[l,Jt(r.name)])}else return ft(s.addHelper("tdz"),[Jt(r.name)])}function nO(e,r,s){var l;if(s===void 0&&(s=e.node),!Qh.has(s)){Qh.add(s);var u=(l=e.scope.getBinding(s.name))==null?void 0:l.path;if(!(!u||u.isFunctionDeclaration())){var o=zQe(e,u);if(o!=="outside")return o==="maybe"&&(u.parent._tdzThis=!0),{status:o,node:XQe(o,s,r)}}}}function JQe(e,r){var s=new Set(e.referencePaths);e.constantViolations.forEach(s.add,s);for(var l=!1,u=C(e.constantViolations),o;!(o=u()).done;){var c=o.value,f=c.node;if(!Qh.has(f)){if(Qh.add(f),c.isUpdateExpression()){var h=c.get("argument"),m=nO(c,r,h.node);if(!m)continue;m.status==="maybe"?(l=!0,c.insertBefore(m.node)):c.replaceWith(m.node)}else if(c.isAssignmentExpression()){for(var g=[],x=c.getBindingIdentifiers(),R=0,w=Object.keys(x);R<w.length;R++){var T=w[R],I=nO(c,r,x[T]);if(I){if(g.push(Xt(I.node)),I.status==="inside")break;I.status==="maybe"&&(l=!0)}}g.length>0&&c.insertBefore(g)}}}for(var P=0,O=e.referencePaths;P<O.length;P++){var j=O[P];if(!j.parentPath.isUpdateExpression()&&!j.parentPath.isFor({left:j.node})){var D=nO(j,r);D&&(D.status==="maybe"&&(l=!0),j.replaceWith(D.node))}}return l}var YQe={VariableDeclaration:function(r){if(!iO(r)&&r.node.kind==="var"){var s=r.scope.getFunctionParent()||r.scope.getProgramParent();s.path.traverse(QQe,{names:Object.keys(r.getBindingIdentifiers())})}},BlockStatement:function(r){iO(r)||Cs(r.parent,{body:r.node})||doe(r.get("body"))},SwitchCase:function(r){iO(r)||doe(r.get("consequent"))}};function doe(e){e:for(var r=C(e),s;!(s=r()).done;){var l=s.value;if(l.isFunctionDeclaration()){if(l.node.async||l.node.generator)return;var u=l.parentPath.scope;if(sO(u))return;var o=l.node.id.name,c=u;do{if(c.parent.hasOwnBinding(o))continue e;c=c.parent}while(!sO(c));poe(l)}}}function poe(e){var r=e.node,s=e.parentPath.scope,l=r.id;s.removeOwnBinding(l.name),r.id=null;var u=Br("var",[Sr(l,An(r))]);u._blockHoist=2;var o=e.replaceWith(u),c=je(o,1),f=c[0];s.registerDeclaration(f)}var QQe={Scope:function(r,s){for(var l=s.names,u=C(l),o;!(o=u()).done;){var c=o.value,f=r.scope.getOwnBinding(c);f&&f.kind==="hoisted"&&poe(f.path)}},"Expression|Declaration":function(r){r.skip()}};function sO(e){return e.path.isFunctionParent()||e.path.isProgram()}function iO(e){return!!e.find(function(r){var s,l=r.node;if(Va(l)){if(l.sourceType==="module")return!0}else{if(Td(l))return!0;if(!Ue(l))return!1}return(s=l.directives)==null?void 0:s.some(function(u){return u.value.value==="use strict"})})}var oO=function(e,r){e.assertVersion("*");var s=r.throwIfClosureRequired,l=s===void 0?!1:s,u=r.tdz,o=u===void 0?!1:u;if(typeof l!="boolean")throw new Error(".throwIfClosureRequired must be a boolean, or undefined");if(typeof o!="boolean")throw new Error(".tdz must be a boolean, or undefined");return{name:"transform-block-scoping",visitor:$a.visitors.merge([YQe,{Loop:function(f,h){var m=f.isForStatement(),g=m?f.get("init"):f.isForXStatement()?f.get("left"):null,x=!1,R=function(){if(l)throw f.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");x=!0},w=f.get("body"),T;w.isBlockStatement()&&(T=w.scope);for(var I=VQe(f),P=C(I),O;!(O=P()).done;){var j=O.value,D=ooe(j,f),k=D.capturedInClosure;k&&R()}var B=[],F=new Map;if(g&&moe(g.node))for(var L=Object.keys(g.getBindingIdentifiers()),V=g.scope,H=0,K=L;H<K.length;H++){var G,X=K[H];if(!((G=T)!=null&&G.hasOwnBinding(X))){var ue=V.getOwnBinding(X);ue||(V.crawl(),ue=V.getOwnBinding(X));var oe=ooe(ue,f),he=oe.usages,te=oe.capturedInClosure,ae=oe.hasConstantViolations;if(V.parent.hasBinding(X)||V.parent.hasGlobal(X)){var J=V.generateUid(X);V.rename(X,J),X=J}te&&(R(),B.push(X)),m&&ae&&F.set(X,he)}}if(x){var xe=GQe(f,B,F);g!=null&&g.isVariableDeclaration()&&foe(g,h,o),xe.get("declarations.0.init").unwrapFunctionEnvironment()}},VariableDeclaration:function(f,h){foe(f,h,o)},ClassDeclaration:function(f){var h=f.node.id;if(h){var m=f.parentPath.scope;!sO(m)&&m.parent.hasBinding(h.name,{noUids:!0})&&f.scope.rename(h.name)}}}])}},ZQe={Scope:function(r,s){for(var l=s.names,u=C(l),o;!(o=u()).done;){var c=o.value,f=r.scope.getOwnBinding(c);f&&f.kind==="hoisted"&&r.scope.rename(c)}},"Expression|Declaration":function(r){r.skip()}};function foe(e,r,s){if(moe(e.node)){var l=KQe(e,r,s);e.node.kind="var";for(var u=Object.keys(e.getBindingIdentifiers()),o=0,c=u;o<c.length;o++){var f=c[o],h=e.scope.getOwnBinding(f);h&&(h.kind="var")}if(hoe(e)&&!uoe(e)||l.length>0)for(var m=C(e.node.declarations),g;!(g=m()).done;){var x,R=g.value;(x=R.init)!=null||(R.init=e.scope.buildUndefinedNode())}var w=e.scope,T=w.getFunctionParent()||w.getProgramParent();if(T!==w)for(var I=C(u),P;!(P=I()).done;){var O=P.value,j=O;(w.parent.hasBinding(O,{noUids:!0})||w.parent.hasGlobal(O))&&(j=w.generateUid(O),w.rename(O,j)),w.moveBindingTo(j,T)}w.path.traverse(ZQe,{names:u});for(var D=C(l),k;!(k=D()).done;){var B=k.value;e.scope.push({id:Ne(B),init:r.addHelper("temporalUndefined")})}}}function eZe(e){return e==="let"||e==="const"}function hoe(e){return e.parentPath?e.parentPath.isLoop()?!0:e.parentPath.isFunctionParent()?!1:hoe(e.parentPath):!1}function moe(e){return Ja(e)?e[Mg]?!0:!(!eZe(e.kind)&&e.kind!=="using"):!1}function tZe(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var rZe=(tZe(er.env.BABEL_8_BREAKING),S1()),yoe,aZe=xt.statement(yoe||(yoe=se([` + function CALL_SUPER( + _this, + derived, + args, + ) { + function isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + + // core-js@3 + if (Reflect.construct.sham) return false; + + // Proxy can't be polyfilled. Every browser implemented + // proxies before or at the same time as Reflect.construct, + // so if they support Proxy they also support Reflect.construct. + if (typeof Proxy === "function") return true; + + // Since Reflect.construct can't be properly polyfilled, some + // implementations (e.g. core-js@2) don't set the correct internal slots. + // Those polyfills don't allow us to subclass built-ins, so we need to + // use our fallback implementation. + try { + // If the internal slots aren't set, this throws an error similar to + // TypeError: this is not a Boolean object. + return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),); + } catch (e) { + return false; + } + } + + // Super + derived = GET_PROTOTYPE_OF(derived); + return POSSIBLE_CONSTRUCTOR_RETURN( + _this, + isNativeReflectConstruct() + ? // NOTE: This doesn't work if this.__proto__.constructor has been modified. + Reflect.construct( + derived, + args || [], + GET_PROTOTYPE_OF(_this).constructor, + ) + : derived.apply(_this, args), + ); + } +`]))),lO=new WeakMap;function nZe(e){if(lO.has(e))return(me||Hq)(lO.get(e));try{return e.addHelper("callSuper")}catch{}var r=e.scope.generateUidIdentifier("callSuper");lO.set(e,r);var s=aZe({CALL_SUPER:r,GET_PROTOTYPE_OF:e.addHelper("getPrototypeOf"),POSSIBLE_CONSTRUCTOR_RETURN:e.addHelper("possibleConstructorReturn")});return e.path.unshiftContainer("body",[s]),e.scope.registerDeclaration(e.path.get("body.0")),me(r)}var goe;function sZe(e,r,s){var l=Vg(me(e),[],r);return Na(l,s),l}function iZe(e,r,s,l,u,o){var c={parent:void 0,scope:void 0,node:void 0,path:void 0,file:void 0,classId:void 0,classRef:void 0,superName:null,superReturns:[],isDerived:!1,extendsNative:!1,construct:void 0,constructorBody:void 0,userConstructor:void 0,userConstructorPath:void 0,hasConstructor:!1,body:[],superThises:[],pushedInherits:!1,pushedCreateClass:!1,protoAlias:null,isLoose:!1,dynamicKeys:new Map,methods:{instance:{hasComputed:!1,list:[],map:new Map},static:{hasComputed:!1,list:[],map:new Map}}},f=function(H){Object.assign(c,H)},h=Fn({ThisExpression:function(H){c.superThises.push(H)}});function m(V){return ft(c.file.addHelper("createClass"),V)}function g(){for(var V=c.path.get("body"),H=C(V.get("body")),K;!(K=H()).done;){var G=K.value;if(G.isClassMethod({kind:"constructor"}))return}var X,ue;if(c.isDerived){var oe=xt.expression.ast(goe||(goe=se([` + (function () { + super(...arguments); + }) + `])));X=oe.params,ue=oe.body}else X=[],ue=ea([]);V.unshiftContainer("body",zu("constructor",Ne("constructor"),X,ue))}function x(){if(g(),R(),I(),c.userConstructor){var V,H=c.constructorBody,K=c.userConstructor,G=c.construct;(V=H.body).push.apply(V,fe(K.body.body)),Na(G,K),Na(H,K.body)}w()}function R(){for(var V=c.path.get("body.body"),H=function(){var ue=G.value,oe=ue.node;if(ue.isClassProperty()||ue.isClassPrivateProperty())throw ue.buildCodeFrameError("Missing class properties transform.");if(oe.decorators)throw ue.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(Mu(oe)){var he=oe.kind==="constructor",te=new op({methodPath:ue,objectRef:c.classRef,superRef:c.superName,constantSuper:u.constantSuper,file:c.file,refToPreserve:c.classRef});te.replace();var ae=[];if(ue.traverse(Fn({ReturnStatement:function(de){de.getFunctionParent().isArrowFunctionExpression()||ae.push(de)}})),he)D(ae,oe,ue);else{ue.ensureFunctionName(o);var J;oe!==ue.node&&(J=ue.node,ue.replaceWith(oe)),P(oe,J)}}},K=C(V),G;!(G=K()).done;)H()}function w(){k();for(var V=c.body,H={instance:null,static:null},K=C(["static","instance"]),G;!(G=K()).done;){var X=G.value;c.methods[X].list.length&&(H[X]=c.methods[X].list.map(function(te){for(var ae=Oa([sn(Ne("key"),te.key)]),J=C(["get","set","value"]),xe;!(xe=J()).done;){var de=xe.value;te[de]!=null&&ae.properties.push(sn(Ne(de),te[de]))}return ae}))}if(H.instance||H.static){for(var ue=[me(c.classRef),H.instance?Ra(H.instance):Bn(),H.static?Ra(H.static):Bn()],oe=0,he=0;he<ue.length;he++)or(ue[he])||(oe=he);ue=ue.slice(0,oe+1),V.push(ln(m(ue))),c.pushedCreateClass=!0}}function T(V,H,K,G){var X=V.node,ue;if(u.superIsCallableConstructor)X.arguments.unshift(qr()),X.arguments.length===2&&mn(X.arguments[1])&&Dt(X.arguments[1].argument,{name:"arguments"})?(X.arguments[1]=X.arguments[1].argument,X.callee=Vt(me(H),Ne("apply"))):X.callee=Vt(me(H),Ne("call")),ue=pi("||",X,qr());else{var oe,he=[qr(),me(c.classRef)];if((oe=X.arguments)!=null&&oe.length){var te=X.arguments;te.length===1&&mn(te[0])&&Dt(te[0].argument,{name:"arguments"})?he.push(te[0].argument):he.push(Ra(te))}ue=ft(nZe(c.file),he)}V.parentPath.isExpressionStatement()&&V.parentPath.container===G.node.body&&G.node.body.length-1===V.parentPath.key?(c.superThises.length&&(ue=tr("=",K(),ue)),V.parentPath.replaceWith(ln(ue))):V.replaceWith(tr("=",K(),ue))}function I(){if(c.isDerived){var V=c.userConstructorPath,H=V.get("body"),K=V.get("body"),G=K.node.body.length;V.traverse(h);var X=function(){var gt=V.scope.generateDeclaredUidIdentifier("this");return G++,X=function(){return me(gt)},gt},ue=function(){return ft(c.file.addHelper("assertThisInitialized"),[X()])},oe=[];V.traverse(Fn({Super:function(gt){var It=gt.node,tt=gt.parentPath;tt.isCallExpression({callee:It})&&oe.unshift(tt)}}));for(var he=function(){var gt=ae[te];if(T(gt,c.superName,X,H),G>=0){var It;gt.find(function(tt){if(tt===K)return G=Math.min(G,It.key),!0;if(tt.isLoop()||tt.isConditional()||tt.isArrowFunctionExpression())return G=-1,!0;It=tt})}},te=0,ae=oe;te<ae.length;te++)he();for(var J=new Set,xe=function(){var gt=$e.value,It=gt.node,tt=gt.parentPath;if(tt.isMemberExpression({object:It}))return gt.replaceWith(X()),1;var Ft;gt.find(function($t){if($t.parentPath===K)return Ft=$t.key,!0});var rr=gt.parentPath.isSequenceExpression()?gt.parentPath:gt;rr.listKey==="arguments"&&(rr.parentPath.isCallExpression()||rr.parentPath.isOptionalCallExpression())?rr=rr.parentPath:rr=null,G!==-1&&Ft>G||J.has(rr)?gt.replaceWith(X()):(rr&&J.add(rr),gt.replaceWith(ue()))},de=C(c.superThises),$e;!($e=de()).done;)xe();var Ve;c.isLoose?Ve=function(gt){var It=ue();return gt?pi("||",gt,It):It}:Ve=function(gt){var It=[X()];return gt!=null&&It.push(gt),ft(c.file.addHelper("possibleConstructorReturn"),It)};var Ie=H.get("body"),ke=G!==-1&&G<Ie.length;(!Ie.length||!Ie.pop().isReturnStatement())&&H.pushContainer("body",ln(ke?X():ue()));for(var Le=C(c.superReturns),Ze;!(Ze=Le()).done;){var at=Ze.value;at.get("argument").replaceWith(Ve(at.node.argument))}}}function P(V,H){if(!(V.kind==="method"&&O(V))){var K=V.static?"static":"instance",G=c.methods[K],X=V.kind==="method"?"value":V.kind,ue=Yt(V.key)||ig(V.key)?Jt(String(V.key.value)):ko(V);G.hasComputed=!nt(ue);var oe=H??An(V),he;if(!G.hasComputed&&G.map.has(ue.value))he=G.map.get(ue.value),he[X]=oe,X==="value"?(he.get=null,he.set=null):he.value=null;else{var te;he=(te={key:ue},te[X]=oe,te),G.list.push(he),G.hasComputed||G.map.set(ue.value,he)}}}function O(V){if(u.setClassMethods&&!V.decorators){var H=c.classRef;V.static||(j(),H=c.protoAlias);var K=Vt(me(H),V.key,V.computed||yn(V.key)),G=Mn(V.id,V.params,V.body,V.generator,V.async);Na(G,V);var X=Xt(tr("=",K,G));return ql(X,V),c.body.push(X),!0}return!1}function j(){if(c.protoAlias===null){f({protoAlias:c.scope.generateUidIdentifier("proto")});var V=Vt(c.classRef,Ne("prototype")),H=Br("var",[Sr(c.protoAlias,V)]);c.body.push(H)}}function D(V,H,K){f({userConstructorPath:K,userConstructor:H,hasConstructor:!0,superReturns:V});var G=c.construct;ql(G,H),G.params=H.params,Na(G.body,H.body),G.body.directives=H.body.directives,(c.hasInstanceDescriptors||c.hasStaticDescriptors)&&w(),k()}function k(){!c.isDerived||c.pushedInherits||(c.pushedInherits=!0,c.body.unshift(Xt(ft(c.file.addHelper(c.isLoose?"inheritsLoose":"inherits"),[me(c.classRef),me(c.superName)]))))}function B(){for(var V=c.dynamicKeys,H=c.node,K=c.scope,G=C(H.body.body),X;!(X=G()).done;){var ue=X.value;if(!(!Mu(ue)||!ue.computed)&&!K.isPure(ue.key,!0)){var oe=K.generateUidIdentifierBasedOnNode(ue.key);V.set(oe.name,ue.key),ue.key=oe}}}function F(){var V=c.superName,H=c.dynamicKeys,K=[],G=[];if(c.isDerived){var X=me(V);c.extendsNative&&(X=ft(c.file.addHelper("wrapNativeSuper"),[X]),Ui(X));var ue=c.scope.generateUidIdentifierBasedOnNode(V);K.push(ue),G.push(X),f({superName:me(ue)})}for(var oe=C(H),he;!(he=oe()).done;){var te=je(he.value,2),ae=te[0],J=te[1];K.push(Ne(ae)),G.push(J)}return{closureParams:K,closureArgs:G}}function L(V,H,K,G){f({parent:V.parent,scope:V.scope,node:V.node,path:V,file:H,isLoose:G}),f({classId:c.node.id,classRef:c.node.id?Ne(c.node.id.name):c.scope.generateUidIdentifier("class"),superName:c.node.superClass,isDerived:!!c.node.superClass,constructorBody:ea([])}),f({extendsNative:Dt(c.superName)&&K.has(c.superName.name)&&!c.scope.hasBinding(c.superName.name,!0)});var X=c.classRef,ue=c.node,oe=c.constructorBody;f({construct:sZe(X,oe,ue)}),B();var he=c.body,te=F(),ae=te.closureParams,J=te.closureArgs;x(),u.noClassCalls||oe.body.unshift(Xt(ft(c.file.addHelper("classCallCheck"),[qr(),me(c.classRef)])));var xe=V.isInStrictMode(),de=he.length===0;if(de&&!xe)for(var $e=C(c.construct.params),Ve;!(Ve=$e()).done;){var Ie=Ve.value;if(!Dt(Ie)){de=!1;break}}var ke=de?c.construct.body.directives:[];if(xe||ke.push(Cd(jd("use strict"))),de){var Le=An(c.construct);return c.isLoose?Le:m([Le])}c.pushedCreateClass||he.push(ln(c.isLoose?me(c.classRef):m([me(c.classRef)]))),he.unshift(c.construct);var Ze=fi(ae,ea(he,ke));return ft(Ze,J)}return L(e,r,s,l)}var voe=function(r){return Object.keys(rZe[r]).filter(function(s){return/^[A-Z]/.test(s)})},oZe=new Set([].concat(fe(voe("builtin")),fe(voe("browser")))),uO=function(e,r){var s,l,u,o;e.assertVersion("*");var c=r.loose,f=c===void 0?!1:c,h=(s=e.assumption("setClassMethods"))!=null?s:f,m=(l=e.assumption("constantSuper"))!=null?l:f,g=(u=e.assumption("superIsCallableConstructor"))!=null?u:f,x=(o=e.assumption("noClassCalls"))!=null?o:f,R=!Go("transform-unicode-escapes",e.targets()),w=new WeakSet;return{name:"transform-classes",visitor:{ExportDefaultDeclaration:function(I){I.get("declaration").isClassDeclaration()&&I.splitExportDeclaration()},ClassDeclaration:function(I){var P=I.node,O=P.id||I.scope.generateUidIdentifier("class");I.replaceWith(Br("let",[Sr(O,An(P))]))},ClassExpression:function(I,P){var O=I.node;if(!w.has(O)){var j=I.ensureFunctionName(R);if(!(j&&j.node!==O)){w.add(O);var D=I.replaceWith(iZe(I,P.file,oZe,f,{setClassMethods:h,constantSuper:m,superIsCallableConstructor:g,noClassCalls:x},R)),k=je(D,1),B=k[0];if(B.isCallExpression()){Ui(B);var F=B.get("callee");F.isArrowFunctionExpression()&&F.arrowFunctionToExpression()}}}}}}},boe;{var xoe=xt.expression.ast(boe||(boe=se([` + function (type, obj, key, fn) { + var desc = { configurable: true, enumerable: true }; + desc[type] = fn; + return Object.defineProperty(obj, key, desc); + } + `])));xoe._compact=!0}var cO=function(e,r){var s;e.assertVersion("*");var l=(s=e.assumption("setComputedProperties"))!=null?s:r.loose,u=l?h:m;function o(g,x,R){var w=R.kind,T=!R.computed&&Dt(R.key)?Jt(R.key.name):R.key,I=c(R);{var P;if(g.availableHelper("defineAccessor"))P=g.addHelper("defineAccessor");else{var O=g.file;if(P=O.get("fallbackDefineAccessorHelper"),!P){var j=O.scope.generateUidIdentifier("defineAccessor");O.scope.push({id:j,init:xoe}),O.set("fallbackDefineAccessorHelper",P=j)}P=me(P)}return ft(P,[Jt(w),x,T,I])}}function c(g){if(Sn(g))return g.value;if(Kn(g))return Mn(null,g.params,g.body,g.generator,g.async)}function f(g,x,R){R.push(Xt(tr("=",Vt(me(g),x.key,x.computed||yn(x.key)),c(x))))}function h(g){for(var x=g.computedProps,R=g.state,w=g.initPropExpression,T=g.objId,I=g.body,P=C(x),O;!(O=P()).done;){var j=O.value;if(Kn(j)&&(j.kind==="get"||j.kind==="set")){if(x.length===1)return o(R,w,j);I.push(Xt(o(R,me(T),j)))}else f(me(T),j,I)}}function m(g){for(var x=g.objId,R=g.body,w=g.computedProps,T=g.state,I=10,P=null,O=[],j=C(w),D;!(D=j()).done;){var k=D.value;(!P||P.length===I)&&(P=[],O.push(P)),P.push(k)}for(var B=0,F=O;B<F.length;B++){for(var L=F[B],V=O.length===1,H=V?g.initPropExpression:me(x),K=C(L),G;!(G=K()).done;){var X=G.value;Kn(X)&&(X.kind==="get"||X.kind==="set")?H=o(g.state,H,X):H=ft(T.addHelper("defineProperty"),[H,ko(X),c(X)])}if(V)return H;R.push(Xt(H))}}return{name:"transform-computed-properties",visitor:{ObjectExpression:{exit:function(x,R){for(var w=x.node,T=x.parent,I=x.scope,P=!1,O=C(w.properties),j;!(j=O()).done;){var D=j.value;if(P=D.computed===!0,P)break}if(P){for(var k=[],B=[],F=!1,L=C(w.properties),V;!(V=L()).done;){var H=V.value;mn(H)||(H.computed&&(F=!0),F?B.push(H):k.push(H))}var K=I.generateUidIdentifierBasedOnNode(T),G=Oa(k),X=[];X.push(Br("var",[Sr(K,G)]));var ue=u({scope:I,objId:K,body:X,computedProps:B,initPropExpression:G,state:R});ue?x.replaceWith(ue):(l&&X.push(Xt(me(K))),x.replaceWithMultiple(X))}}}}}},Roe=function(e){return e.assertVersion("*"),Pc({name:"transform-dotall-regex",feature:"dotAllFlag"})};function lZe(e){return Dt(e)?e.name:e.value.toString()}var dO=function(e){return e.assertVersion("*"),{name:"transform-duplicate-keys",visitor:{ObjectExpression:function(s){for(var l=s.node,u=l.properties.filter(function(w){return!mn(w)&&!w.computed}),o=Object.create(null),c=Object.create(null),f=Object.create(null),h=C(u),m;!(m=h()).done;){var g=m.value,x=lZe(g.key),R=!1;switch(g.kind){case"get":(o[x]||c[x])&&(R=!0),c[x]=!0;break;case"set":(o[x]||f[x])&&(R=!0),f[x]=!0;break;default:(o[x]||c[x]||f[x])&&(R=!0),o[x]=!0}R&&(g.computed=!0,g.key=Jt(x))}}}}},Eoe=tr,Jo=me,pO=Dt,Soe=yn,uZe=lr,cZe=Li,dZe=Cg,pZe=Js,Toe=Vt,fZe=ko;function hZe(e,r,s){var l;if(pO(e)){if(s.hasBinding(e.name))return e;l=e}else if(uZe(e)){if(l=e.object,pZe(l)||pO(l)&&s.hasBinding(l.name))return l}else throw new Error("We can't explode this node type "+e.type);var u=s.generateUidIdentifierBasedOnNode(l);return s.push({id:u}),r.push(Eoe("=",Jo(u),Jo(l))),u}function mZe(e,r,s){var l=e.property;if(cZe(l))throw new Error("We can't generate property ref for private name, please install `@babel/plugin-transform-class-properties`");var u=fZe(e,l);if(Soe(u)&&dZe(u))return u;var o=s.generateUidIdentifierBasedOnNode(l);return s.push({id:o}),r.push(Eoe("=",Jo(o),Jo(l))),o}function yZe(e,r,s){var l=hZe(e,r,s),u,o;if(pO(e))u=Jo(e),o=l;else{var c=mZe(e,r,s),f=e.computed||Soe(c);o=Toe(Jo(l),Jo(c),f),u=Toe(Jo(l),Jo(c),f)}return{uid:o,ref:u}}var gZe=tr,vZe=Mr;function bZe(e){var r=e.build,s=e.operator,l={AssignmentExpression:function(o){var c=o.node,f=o.scope;if(c.operator===s+"="){var h=[],m=yZe(c.left,h,f);h.push(gZe("=",m.ref,r(m.uid,c.right))),o.replaceWith(vZe(h))}},BinaryExpression:function(o){var c=o.node;c.operator===s&&o.replaceWith(r(c.left,c.right))}};return l}var woe=function(e){return e.assertVersion("*"),{name:"transform-exponentiation-operator",visitor:bZe({operator:"**",build:function(s,l){return ft(Vt(Ne("Math"),Ne("pow")),[s,l])}})}},xZe=function(e){e.assertVersion("*");function r(c){return typeof c=="string"?{type:"CommentBlock",value:c}:c}function s(c){var f,h=c.ofPath,m=c.toPath,g=c.where,x=g===void 0?"trailing":g,R=c.optional,w=R===void 0?!1:R,T=c.comments,I=T===void 0?u(h,w):T,P=c.keepType,O=P===void 0?!1:P;(f=m)!=null&&f.node||(m=h.getPrevSibling(),x="trailing"),m.node||(m=h.getNextSibling(),x="leading"),m.node||(m=h.parentPath,x="inner"),Array.isArray(I)||(I=[I]);var j=I.map(r);if(!O&&h!=null&&h.node){var D=h.node,k=h.parentPath,B=h.getPrevSibling(),F=h.getNextSibling(),L=!(B.node||F.node),V=D.leadingComments,H=D.trailingComments;L&&V&&k.addComments("inner",V),m.addComments(x,j),h.remove(),L&&H&&k.addComments("inner",H)}else m.addComments(x,j)}function l(c){s({ofPath:c,comments:u(c,c.parent.optional)})}function u(c,f){var h=c.getSource().replace(/\*-\//g,"*-ESCAPED/").replace(/\*\//g,"*-/");return f&&(h="?"+h),h[0]!==":"&&(h=":: "+h),h}function o(c){return c==="type"||c==="typeof"}return{name:"transform-flow-comments",inherits:ES,visitor:{TypeCastExpression:function(f){var h=f.node;s({ofPath:f.get("typeAnnotation"),toPath:f.get("expression"),keepType:!0}),f.replaceWith(pR(h.expression))},Identifier:function(f){if(!f.parentPath.isFlow()){var h=f.node;h.typeAnnotation?(s({ofPath:f.get("typeAnnotation"),toPath:f,optional:h.optional||h.typeAnnotation.optional}),h.optional&&(h.optional=!1)):h.optional&&(s({toPath:f,comments:":: ?"}),h.optional=!1)}},AssignmentPattern:{exit:function(f){var h=f.node,m=h.left;m.optional&&(m.optional=!1)}},Function:function(f){if(!f.isDeclareFunction()){var h=f.node;h.typeParameters&&s({ofPath:f.get("typeParameters"),toPath:f.get("id"),optional:h.typeParameters.optional}),h.returnType&&s({ofPath:f.get("returnType"),toPath:f.get("body"),where:"leading",optional:h.returnType.typeAnnotation.optional})}},ClassProperty:function(f){var h=f.node;h.value?h.typeAnnotation&&s({ofPath:f.get("typeAnnotation"),toPath:f.get("key"),optional:h.typeAnnotation.optional}):l(f)},ExportNamedDeclaration:function(f){var h=f.node;h.exportKind!=="type"&&!O7(h.declaration)||l(f)},ImportDeclaration:function(f){var h=f.node;if(o(h.importKind)){l(f);return}var m=h.specifiers.filter(function(w){return w.type==="ImportSpecifier"&&o(w.importKind)}),g=h.specifiers.filter(function(w){return w.type!=="ImportSpecifier"||!o(w.importKind)});if(h.specifiers=g,m.length>0){var x=me(h);x.specifiers=m;var R=":: "+Wd(x).code;g.length>0?s({toPath:f,comments:R}):s({ofPath:f,comments:R})}},ObjectPattern:function(f){var h=f.node;h.typeAnnotation&&s({ofPath:f.get("typeAnnotation"),toPath:f,optional:h.optional||h.typeAnnotation.optional})},Flow:function(c){function f(h){return c.apply(this,arguments)}return f.toString=function(){return c.toString()},f}(function(c){l(c)}),Class:function(f){var h=f.node,m=[];if(h.typeParameters){var g=f.get("typeParameters");m.push(u(g,h.typeParameters.optional));var x=h.typeParameters.trailingComments;if(x){var R;(R=m).push.apply(R,fe(x))}g.remove()}if(h.superClass&&(m.length>0&&(s({toPath:f.get("id"),comments:m}),m=[]),h.superTypeParameters)){var w=f.get("superTypeParameters");m.push(u(w,w.node.optional)),w.remove()}if(h.implements){var T=f.get("implements"),I="implements "+T.map(function(P){return u(P).replace(/^:: /,"")}).join(", ");delete h.implements,m.length===1?m[0]+=" "+I:m.push(":: "+I)}m.length>0&&s({toPath:f.get("body"),where:"leading",comments:m})}}}},Poe=function(e,r){e.assertVersion("*");var s=/@flow(?:\s+(?:strict(?:-local)?|weak))?|@noflow/,l=!1,u=r.requireDirective,o=u===void 0?!1:u,c=r.allowDeclareFields,f=c===void 0?!1:c;return{name:"transform-flow-strip-types",inherits:ES,visitor:{Program:function(m,g){var x=g.file.ast.comments;l=!1;var R=!1;if(x)for(var w=C(x),T;!(T=w()).done;){var I=T.value;s.test(I.value)&&(R=!0,I.value=I.value.replace(s,""),I.value.replace(/\*/g,"").trim()||(I.ignore=!0))}!R&&o&&(l=!0)},ImportDeclaration:function(m){if(!l&&m.node.specifiers.length){var g=0;m.node.specifiers.forEach(function(x){var R=x.importKind;(R==="type"||R==="typeof")&&g++}),g===m.node.specifiers.length&&m.remove()}},Flow:function(m){if(l)throw m.buildCodeFrameError("A @flow directive is required when using Flow annotations with the `requireDirective` option.");m.remove()},ClassPrivateProperty:function(m){l||(m.node.typeAnnotation=null)},Class:function(m){l||(m.node.implements=null,m.get("body.body").forEach(function(g){if(g.isClassProperty()){var x=g.node;if(!f&&x.declare)throw g.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-flow-strip-types or @babel/preset-flow is enabled.");if(x.declare)g.remove();else{if(!f&&!x.value&&!x.decorators){g.remove();return}x.variance=null,x.typeAnnotation=null}}}))},AssignmentPattern:function(m){var g=m.node;l||g.left.optional&&(g.left.optional=!1)},Function:function(m){var g=m.node;if(!l){g.params.length>0&&g.params[0].type==="Identifier"&&g.params[0].name==="this"&&g.params.shift();for(var x=0;x<g.params.length;x++){var R=g.params[x];R.type==="AssignmentPattern"&&(R=R.left),R.optional&&(R.optional=!1)}Sd(g)||(g.predicate=null)}},TypeCastExpression:function(m){if(!l){var g=m.node;do g=g.expression;while(Pf(g));m.replaceWith(g)}},CallExpression:function(m){var g=m.node;l||(g.typeArguments=null)},OptionalCallExpression:function(m){var g=m.node;l||(g.typeArguments=null)},NewExpression:function(m){var g=m.node;l||(g.typeArguments=null)}}}};function RZe(e,r,s){var l,u=e?TZe:wZe,o=r.node,c=u(r,s),f=c.declar,h=c.loop,m=h.body;r.ensureBlock(),f&&m.body.push(f),(l=m.body).push.apply(l,fe(o.body.body)),Na(h,o),Na(h.body,o.body),c.replaceParent?(r.parentPath.replaceWithMultiple(c.node),r.remove()):r.replaceWithMultiple(c.node)}var EZe=xt.statement(` + for (var LOOP_OBJECT = OBJECT, + IS_ARRAY = Array.isArray(LOOP_OBJECT), + INDEX = 0, + LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) { + INTERMEDIATE; + if (IS_ARRAY) { + if (INDEX >= LOOP_OBJECT.length) break; + ID = LOOP_OBJECT[INDEX++]; + } else { + INDEX = LOOP_OBJECT.next(); + if (INDEX.done) break; + ID = INDEX.value; + } + } +`),SZe=xt.statements(` + var ITERATOR_COMPLETION = true; + var ITERATOR_HAD_ERROR_KEY = false; + var ITERATOR_ERROR_KEY = undefined; + try { + for ( + var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; + !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); + ITERATOR_COMPLETION = true + ) {} + } catch (err) { + ITERATOR_HAD_ERROR_KEY = true; + ITERATOR_ERROR_KEY = err; + } finally { + try { + if (!ITERATOR_COMPLETION && ITERATOR_KEY.return != null) { + ITERATOR_KEY.return(); + } + } finally { + if (ITERATOR_HAD_ERROR_KEY) { + throw ITERATOR_ERROR_KEY; + } + } + } +`);function TZe(e,r){var s=e.node,l=e.scope,u=e.parent,o=s.left,c,f,h;if(Dt(o)||js(o)||lr(o))f=o,h=null;else if(Ja(o))f=l.generateUidIdentifier("ref"),c=Br(o.kind,[Sr(o.declarations[0].id,Ne(f.name))]),h=Br("var",[Sr(Ne(f.name))]);else throw r.buildCodeFrameError(o,"Unknown node type "+o.type+" in ForStatement");var m=l.generateUidIdentifier("iterator"),g=l.generateUidIdentifier("isArray"),x=EZe({LOOP_OBJECT:m,IS_ARRAY:g,OBJECT:s.right,INDEX:l.generateUidIdentifier("i"),ID:f,INTERMEDIATE:h}),R=rt(u),w;return R&&(w=Od(u.label,x)),{replaceParent:R,declar:c,node:w||x,loop:x}}function wZe(e,r){var s=e.node,l=e.scope,u=e.parent,o=s.left,c,f=l.generateUid("step"),h=Vt(Ne(f),Ne("value"));if(Dt(o)||js(o)||lr(o))c=Xt(tr("=",o,h));else if(Ja(o))c=Br(o.kind,[Sr(o.declarations[0].id,h)]);else throw r.buildCodeFrameError(o,"Unknown node type "+o.type+" in ForStatement");var m=SZe({ITERATOR_HAD_ERROR_KEY:l.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:l.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:l.generateUidIdentifier("iteratorError"),ITERATOR_KEY:l.generateUidIdentifier("iterator"),STEP_KEY:Ne(f),OBJECT:s.right}),g=rt(u),x=m[3].block.body,R=x[0];return g&&(x[0]=Od(u.label,R)),{replaceParent:g,declar:c,loop:R,node:m}}var Aoe,Ioe,Coe;function fO(e,r,s){var l,u=e.get("body"),o=s??u.node;return Ue(o)&&Object.keys(e.getBindingIdentifiers()).some(function(c){return u.scope.hasOwnBinding(c)})?l=ea([r,o]):(l=n1(o),l.body.unshift(r)),l}var hO=function(e,r){var s,l,u;e.assertVersion("*");{var o=r.assumeArray,c=r.allowArrayLike,f=r.loose;if(f===!0&&o===!0)throw new Error("The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of");if(o===!0&&c===!0)throw new Error("The assumeArray and allowArrayLike options cannot be used together in @babel/plugin-transform-for-of");if(c&&/^7\.\d\./.test(e.version))throw new Error("The allowArrayLike is only supported when using @babel/core@^7.10.0")}var h=(s=r.assumeArray)!=null?s:!r.loose&&e.assumption("iterableIsArray"),m=(l=r.allowArrayLike)!=null?l:e.assumption("arrayLikeIsIterable"),g=(u=e.assumption("skipForOfIteratorClosing"))!=null?u:r.loose;if(h&&m)throw new Error('The "iterableIsArray" and "arrayLikeIsIterable" assumptions are not compatible.');if(h)return{name:"transform-for-of",visitor:{ForOfStatement:function(O){var j=O.scope,D=O.node,k=D.left,B=D.await;if(!B){var F=lp(O.node.right),L=j.generateUidIdentifier("i"),V=j.maybeGenerateMemoised(F,!0);!V&&Dt(F)&&O.get("body").scope.hasOwnBinding(F.name)&&(V=j.generateUidIdentifier("arr"));var H=[Sr(L,Wr(0))];V?H.push(Sr(V,F)):V=F;var K=Vt(me(V),me(L),!0),G;Ja(k)?(G=k,G.declarations[0].init=K):G=Xt(tr("=",k,K)),O.replaceWith(uR(Br("let",H),nn("<",me(L),Vt(me(V),Ne("length"))),Gg("++",me(L)),fO(O,G)))}}}};var x=xt(Aoe||(Aoe=se([` + for (var KEY = 0, NAME = ARR; KEY < NAME.length; KEY++) BODY; + `]))),R=xt.statements(Ioe||(Ioe=se([` + for (var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY; + !(STEP_KEY = ITERATOR_HELPER()).done;) BODY; + `]))),w=xt.statements(Coe||(Coe=se([` + var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY; + try { + for (ITERATOR_HELPER.s(); !(STEP_KEY = ITERATOR_HELPER.n()).done;) BODY; + } catch (err) { + ITERATOR_HELPER.e(err); + } finally { + ITERATOR_HELPER.f(); + } + `]))),T=g?{build:R,helper:"createForOfIteratorHelperLoose",getContainer:function(O){return O}}:{build:w,helper:"createForOfIteratorHelper",getContainer:function(O){return O[1].block.body}};function I(P){var O=P.node,j=P.scope,D=j.generateUidIdentifierBasedOnNode(O.right,"arr"),k=j.generateUidIdentifier("i"),B=x({BODY:O.body,KEY:k,NAME:D,ARR:O.right});Na(B,O);var F=Vt(me(D),me(k),!0),L,V=O.left;return Ja(V)?(V.declarations[0].init=F,L=V):L=Xt(tr("=",V,F)),B.body=fO(P,L,B.body),B}return{name:"transform-for-of",visitor:{ForOfStatement:function(O,j){var D=O.get("right");if(D.isArrayExpression()||D.isGenericType("Array")||xd(D.getTypeAnnotation())){O.replaceWith(I(O));return}if(!j.availableHelper(T.helper)){RZe(g,O,j);return}var k=O.node,B=O.parent,F=O.scope,L=k.left,V,H=F.generateUid("step"),K=Vt(Ne(H),Ne("value"));Ja(L)?V=Br(L.kind,[Sr(L.declarations[0].id,K)]):V=Xt(tr("=",L,K));var G=T.build({CREATE_ITERATOR_HELPER:j.addHelper(T.helper),ITERATOR_HELPER:F.generateUidIdentifier("iterator"),ARRAY_LIKE_IS_ITERABLE:m?un(!0):null,STEP_KEY:Ne(H),OBJECT:k.right,BODY:fO(O,V)}),X=T.getContainer(G);Na(X[0],k),Na(X[0].body,k.body),rt(B)?(X[0]=Od(B.label,X[0]),O.parentPath.replaceWithMultiple(G),O.skip()):O.replaceWithMultiple(G)}}}},mO=function(e){e.assertVersion("*");var r=!Go("transform-unicode-escapes",e.targets());return{name:"transform-function-name",visitor:{FunctionExpression:{exit:function(l){l.key!=="value"&&!l.parentPath.isObjectProperty()&&l.ensureFunctionName(r)}},ObjectProperty:function(l){var u=l.get("value");u.isFunction()&&u.ensureFunctionName(r)}}}},joe=function(e){return e.assertVersion("*"),{name:"transform-instanceof",visitor:{BinaryExpression:function(s){var l=s.node;if(l.operator==="instanceof"){var u=this.addHelper("instanceof"),o=s.findParent(function(c){return c.isVariableDeclarator()&&c.node.id===u||c.isFunctionDeclaration()&&c.node.id&&c.node.id.name===u.name});if(o)return;s.replaceWith(ft(u,[l.left,l.right]))}}}}},PZe=function(e){return e.assertVersion("*"),{name:"transform-jscript",visitor:{FunctionExpression:{exit:function(s){var l=s.node;l.id&&s.replaceWith(ft(Mn(null,[],ea([Qq(l),ln(me(l.id))])),[]))}}}}},yO=function(e){return e.assertVersion("*"),{name:"transform-literals",visitor:{NumericLiteral:function(s){var l=s.node;l.extra&&/^0[ob]/i.test(l.extra.raw)&&(l.extra=void 0)},StringLiteral:function(s){var l=s.node;l.extra&&/\\u/i.test(l.extra.raw)&&(l.extra=void 0)}}}},Ooe=function(e){return e.assertVersion("*"),{name:"transform-member-expression-literals",visitor:{MemberExpression:{exit:function(s){var l=s.node,u=l.property;!l.computed&&Dt(u)&&!i1(u.name)&&(l.property=Jt(u.name),l.computed=!0)}}}}},_oe,AZe=xt.statement(` + define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) { + }) +`),IZe=xt.statement(` + define(["require"], function(REQUIRE) { + }) +`);function Noe(e,r){var s=e.node,l=s.body,u=s.directives;e.node.directives=[],e.node.body=[];var o=e.pushContainer("body",r)[0].get("expression"),c=o.get("arguments"),f=c[c.length-1].get("body");f.pushContainer("directives",u),f.pushContainer("body",l)}var gO=function(e,r){var s,l,u;e.assertVersion("*");var o=r.allowTopLevelThis,c=r.strict,f=r.strictMode,h=r.importInterop,m=r.noInterop,g=(s=e.assumption("constantReexports"))!=null?s:r.loose,x=(l=e.assumption("enumerableModuleMeta"))!=null?l:r.loose;return{name:"transform-modules-amd",pre:function(){this.file.set("@babel/plugin-transform-modules-*","amd")},visitor:(u={},u["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(R,w){if(this.file.has("@babel/plugin-proposal-dynamic-import")&&!(R.isCallExpression()&&!R.get("callee").isImport())){var T=w.requireId,I=w.resolveId,P=w.rejectId;T||(T=R.scope.generateUidIdentifier("require"),w.requireId=T),(!I||!P)&&(I=R.scope.generateUidIdentifier("resolve"),P=R.scope.generateUidIdentifier("reject"),w.resolveId=I,w.rejectId=P);var O=Ne("imported");m||(O=jh(this.file.path,O,"namespace")),R.replaceWith(E0(R.node,!1,!1,function(j){return xt.expression.ast(_oe||(_oe=se([` + new Promise((`,", ",`) => + `,`( + [`,`], + imported => `,"(",`), + `,` + ) + ) + `])),I,P,T,j,me(I),O,me(P))}))}},u.Program={exit:function(w,T){var I=T.requireId;if(!uo(w)){I&&Noe(w,IZe({REQUIRE:me(I)}));return}var P=[],O=[];I&&(P.push(Jt("require")),O.push(me(I)));var j=fc(this.file.opts,r);j&&(j=Jt(j));var D=S0(w,{enumerableModuleMeta:x,constantReexports:g,strict:c,strictMode:f,allowTopLevelThis:o,importInterop:h,noInterop:m,filename:this.file.opts.filename}),k=D.meta,B=D.headers;x0(k)&&(P.push(Jt("exports")),O.push(Ne(k.exportName)));for(var F=C(k.source),L;!(L=F()).done;){var V=je(L.value,2),H=V[0],K=V[1];if(P.push(Jt(H)),O.push(Ne(K.name)),!Zd(K)){var G=jh(w,Ne(K.name),K.interop);if(G){var X=Xt(tr("=",Ne(K.name),G));X.loc=K.loc,B.push(X)}}B.push.apply(B,fe(w0(k,K,g)))}T0(B),w.unshiftContainer("body",B),Noe(w,AZe({MODULE_NAME:j,AMD_ARGUMENTS:Ra(P),IMPORT_NAMES:O}))}},u)}},koe,Doe=function(r){return xt.expression.ast(koe||(koe=se(["require(",")"])),r)},CZe=function(r,s){return ft(s.addHelper("interopRequireWildcard"),[Doe(r)])};function jZe(e,r,s){var l=r?Doe:CZe;e.replaceWith(E0(e.node,!0,!1,function(u){return l(u,s)}))}var Loe,OZe=function(r){return{name:"@babel/plugin-transform-modules-commonjs/lazy",version:"7.24.8",getWrapperPayload:function(l,u){if(Zd(u)||u.reexportAll)return null;if(r===!0)return l.includes(".")?null:"lazy/function";if(Array.isArray(r))return r.includes(l)?"lazy/function":null;if(typeof r=="function")return r(l)?"lazy/function":null},buildRequireWrapper:function(l,u,o,c){if(o==="lazy/function")return c?xt.statement.ast(Loe||(Loe=se([` + function `,`() { + const data = `,`; + `,` = function(){ return data; }; + return data; + } + `])),l,u,l):!1},wrapReference:function(l,u){if(u==="lazy/function")return ft(l,[])}}},vO="@babel/plugin-transform-modules-commonjs/customWrapperPlugin";function Moe(e,r){var s=e.get(vO);s||e.set(vO,s=[]),s.push(r)}function bO(e,r){if(e)for(var s=C(e),l;!(l=s()).done;){var u=l.value,o=r(u);if(o!=null)return o}}function _Ze(e){var r=e.get(vO);return{getWrapperPayload:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return bO(r,function(c){return c.getWrapperPayload==null?void 0:c.getWrapperPayload.apply(c,u)})},wrapReference:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return bO(r,function(c){return c.wrapReference==null?void 0:c.wrapReference.apply(c,u)})},buildRequireWrapper:function(){for(var l=arguments.length,u=new Array(l),o=0;o<l;o++)u[o]=arguments[o];return bO(r,function(c){return c.buildRequireWrapper==null?void 0:c.buildRequireWrapper.apply(c,u)})}}}var Boe,Foe,_v=function(e,r){var s,l,u,o;e.assertVersion("*");var c=r.strictNamespace,f=c===void 0?!1:c,h=r.mjsStrictNamespace,m=h===void 0?f:h,g=r.allowTopLevelThis,x=r.strict,R=r.strictMode,w=r.noInterop,T=r.importInterop,I=r.lazy,P=I===void 0?!1:I,O=r.allowCommonJSExports,j=O===void 0?!0:O,D=r.loose,k=D===void 0?!1:D,B=(s=e.assumption("constantReexports"))!=null?s:k,F=(l=e.assumption("enumerableModuleMeta"))!=null?l:k,L=(u=e.assumption("noIncompleteNsImportDetection"))!=null?u:!1;if(typeof P!="boolean"&&typeof P!="function"&&(!Array.isArray(P)||!P.every(function(K){return typeof K=="string"})))throw new Error(".lazy must be a boolean, array of strings, or a function");if(typeof f!="boolean")throw new Error(".strictNamespace must be a boolean, or undefined");if(typeof m!="boolean")throw new Error(".mjsStrictNamespace must be a boolean, or undefined");var V=function(G){return xt.expression.ast(Boe||(Boe=se([` + (function(){ + throw new Error( + "The CommonJS '" + "`,`" + "' variable is not available in ES6 modules." + + "Consider setting setting sourceType:script or sourceType:unambiguous in your " + + "Babel config for this file."); + })() + `])),G)},H={ReferencedIdentifier:function(G){var X=G.node.name;if(!(X!=="module"&&X!=="exports")){var ue=G.scope.getBinding(X),oe=this.scope.getBinding(X);oe!==ue||G.parentPath.isObjectProperty({value:G.node})&&G.parentPath.parentPath.isObjectPattern()||G.parentPath.isAssignmentExpression({left:G.node})||G.isAssignmentExpression({left:G.node})||G.replaceWith(V(X))}},UpdateExpression:function(G){var X=G.get("argument");if(X.isIdentifier()){var ue=X.node.name;if(!(ue!=="module"&&ue!=="exports")){var oe=G.scope.getBinding(ue),he=this.scope.getBinding(ue);he===oe&&G.replaceWith(tr(G.node.operator[0]+"=",X.node,V(ue)))}}},AssignmentExpression:function(G){var X=this,ue=G.get("left");if(ue.isIdentifier()){var oe=ue.node.name;if(oe!=="module"&&oe!=="exports")return;var he=G.scope.getBinding(oe),te=this.scope.getBinding(oe);if(te!==he)return;var ae=G.get("right");ae.replaceWith(Mr([ae.node,V(oe)]))}else if(ue.isPattern()){var J=ue.getOuterBindingIdentifiers(),xe=Object.keys(J).find(function($e){return $e!=="module"&&$e!=="exports"?!1:X.scope.getBinding($e)===G.scope.getBinding($e)});if(xe){var de=G.get("right");de.replaceWith(Mr([de.node,V(xe)]))}}}};return{name:"transform-modules-commonjs",pre:function(){this.file.set("@babel/plugin-transform-modules-*","commonjs"),P&&Moe(this.file,OZe(P))},visitor:(o={},o["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(K){if(this.file.has("@babel/plugin-proposal-dynamic-import")&&!(K.isCallExpression()&&!Rf(K.node.callee))){var G=K.scope;do G.rename("require");while(G=G.parent);jZe(K,w,this.file)}},o.Program={exit:function(G,X){if(uo(G)){G.scope.rename("exports"),G.scope.rename("module"),G.scope.rename("require"),G.scope.rename("__filename"),G.scope.rename("__dirname"),j||(nH(G,new Set(["module","exports"]),!1),G.traverse(H,{scope:G.scope}));var ue=fc(this.file.opts,r);ue&&(ue=Jt(ue));for(var oe=_Ze(this.file),he=S0(G,{exportName:"exports",constantReexports:B,enumerableModuleMeta:F,strict:x,strictMode:R,allowTopLevelThis:g,noInterop:w,importInterop:T,wrapReference:oe.wrapReference,getWrapperPayload:oe.getWrapperPayload,esNamespaceOnly:typeof X.filename=="string"&&/\.mjs$/.test(X.filename)?m:f,noIncompleteNsImportDetection:L,filename:this.file.opts.filename}),te=he.meta,ae=he.headers,J=C(te.source),xe;!(xe=J()).done;){var de=je(xe.value,2),$e=de[0],Ve=de[1],Ie=ft(Ne("require"),[Jt($e)]),ke=void 0;if(Zd(Ve)){if(P&&Ve.wrap==="function")throw new Error("Assertion failure");ke=Xt(Ie)}else{var Le,Ze=jh(G,Ie,Ve.interop)||Ie;if(Ve.wrap){var at=oe.buildRequireWrapper(Ve.name,Ze,Ve.wrap,Ve.referenced);if(at===!1)continue;ke=at}(Le=ke)!=null||(ke=xt.statement.ast(Foe||(Foe=se([` + var `," = ",`; + `])),Ve.name,Ze))}ke.loc=Ve.loc,ae.push(ke),ae.push.apply(ae,fe(w0(te,Ve,B,oe.wrapReference)))}T0(ae),G.unshiftContainer("body",ae),G.get("body").forEach(function(lt){ae.includes(lt.node)&<.isVariableDeclaration()&<.scope.registerDeclaration(lt)})}}},o)}},NZe=xt.statement(` + SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) { + "use strict"; + BEFORE_BODY; + return { + setters: SETTERS, + execute: EXECUTE, + }; + }); +`),kZe=xt.statement(` + for (var KEY in TARGET) { + if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY]; + } +`),DZe=`WARNING: Dynamic import() transformation must be enabled using the + @babel/plugin-transform-dynamic-import plugin. Babel 8 will + no longer transform import() without using that plugin. +`,LZe=`ERROR: Dynamic import() transformation must be enabled using the + @babel/plugin-transform-dynamic-import plugin. Babel 8 + no longer transforms import() without using that plugin. +`;function $oe(e,r){if(e.type==="Identifier")return e.name;if(e.type==="StringLiteral"){var s=e.value;return L7(s)||r.add(s),s}else throw new Error("Expected export specifier to be either Identifier or StringLiteral, got "+e.type)}function qoe(e,r,s,l,u,o){var c=[];if(u){var x=e.scope.generateUid("exportObj");c.push(Br("var",[Sr(Ne(x),Oa([]))])),c.push(kZe({KEY:e.scope.generateUidIdentifier("key"),EXPORT_OBJ:Ne(x),TARGET:u}));for(var R=0;R<s.length;R++){var w=s[R],T=l[R];c.push(Xt(tr("=",Vt(Ne(x),Ne(w)),T)))}c.push(Xt(ft(r,[Ne(x)])))}else if(s.length===1)c.push(Xt(ft(r,[Jt(s[0]),l[0]])));else{for(var f=[],h=0;h<s.length;h++){var m=s[h],g=l[h];f.push(sn(o.has(m)?Jt(m):Ne(m),g))}c.push(Xt(ft(r,[Oa(f)])))}return c}var xO=function(e,r){var s;e.assertVersion("*");var l=r.systemGlobal,u=l===void 0?"System":l,o=r.allowTopLevelThis,c=o===void 0?!1:o,f=new WeakSet,h={"AssignmentExpression|UpdateExpression":function(g){if(!f.has(g.node)){f.add(g.node);var x=g.isAssignmentExpression()?g.get("left"):g.get("argument");if(x.isObjectPattern()||x.isArrayPattern()){for(var R=[g.node],w=0,T=Object.keys(x.getBindingIdentifiers());w<T.length;w++){var I=T[w];if(this.scope.getBinding(I)!==g.scope.getBinding(I))return;var P=this.exports[I];if(P)for(var O=C(P),j;!(j=O()).done;){var D=j.value;R.push(this.buildCall(D,Ne(I)).expression)}}g.replaceWith(Mr(R));return}if(x.isIdentifier()){var k=x.node.name;if(this.scope.getBinding(k)===g.scope.getBinding(k)){var B=this.exports[k];if(B){var F=g.node,L=hd(F,{prefix:!1});L&&(F=nn(F.operator[0],vn("+",me(F.argument)),Wr(1)));for(var V=C(B),H;!(H=V()).done;){var K=H.value;F=this.buildCall(K,F).expression}L&&(F=Mr([F,g.node])),g.replaceWith(F)}}}}}};return{name:"transform-modules-systemjs",pre:function(){this.file.set("@babel/plugin-transform-modules-*","systemjs")},visitor:(s={},s["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(m,g){if(!(m.isCallExpression()&&!Rf(m.node.callee))){if(m.isCallExpression())this.file.has("@babel/plugin-proposal-dynamic-import")||console.warn(DZe);else if(!this.file.has("@babel/plugin-proposal-dynamic-import"))throw new Error(LZe);m.replaceWith(E0(m.node,!1,!0,function(x){return ft(Vt(Ne(g.contextIdent),Ne("import")),[x])}))}},s.MetaProperty=function(g,x){g.node.meta.name==="import"&&g.node.property.name==="meta"&&g.replaceWith(Vt(Ne(x.contextIdent),Ne("meta")))},s.ReferencedIdentifier=function(g,x){g.node.name==="__moduleName"&&!g.scope.hasBinding("__moduleName")&&g.replaceWith(Vt(Ne(x.contextIdent),Ne("id")))},s.Program={enter:function(g,x){x.contextIdent=g.scope.generateUid("context"),x.stringSpecifiers=new Set,c||Z9(g)},exit:function(g,x){var R=g.scope,w=R.generateUid("export"),T=x.contextIdent,I=x.stringSpecifiers,P=Object.create(null),O=[],j=[],D=[],k=[],B=[],F=[];function L(De,Qe){P[De]=P[De]||[],P[De].push(Qe)}function V(De,Qe,yt){var jt;O.forEach(function(Kt){Kt.key===De&&(jt=Kt)}),jt||O.push(jt={key:De,imports:[],exports:[]}),jt[Qe]=jt[Qe].concat(yt)}function H(De,Qe){return Xt(ft(Ne(w),[Jt(De),Qe]))}for(var K=[],G=[],X=g.get("body"),ue=C(X),oe;!(oe=ue()).done;){var he=oe.value;if(he.isFunctionDeclaration())j.push(he.node),F.push(he);else if(he.isClassDeclaration())B.push(me(he.node.id)),he.replaceWith(Xt(tr("=",me(he.node.id),An(he.node))));else if(he.isVariableDeclaration())he.node.kind="var";else if(he.isImportDeclaration()){var te=he.node.source.value;V(te,"imports",he.node.specifiers);for(var ae=0,J=Object.keys(he.getBindingIdentifiers());ae<J.length;ae++){var xe=J[ae];R.removeBinding(xe),B.push(Ne(xe))}he.remove()}else if(he.isExportAllDeclaration())V(he.node.source.value,"exports",he.node),he.remove();else if(he.isExportDefaultDeclaration()){var de=he.node.declaration;if(Io(de)){var $e=de.id;$e?(K.push("default"),G.push(R.buildUndefinedNode()),B.push(me($e)),L($e.name,"default"),he.replaceWith(Xt(tr("=",me($e),An(de))))):(K.push("default"),G.push(An(de)),F.push(he))}else if(ja(de)){var Ve=de.id;Ve?(j.push(de),K.push("default"),G.push(me(Ve)),L(Ve.name,"default")):(K.push("default"),G.push(An(de))),F.push(he)}else he.replaceWith(H("default",de))}else if(he.isExportNamedDeclaration()){var Ie=he.node.declaration;if(Ie)if(he.replaceWith(Ie),Cs(Ie)){var ke=Ie.id.name;L(ke,ke),j.push(Ie),K.push(ke),G.push(me(Ie.id)),F.push(he)}else if(Td(Ie)){var Le=Ie.id.name;K.push(Le),G.push(R.buildUndefinedNode()),B.push(me(Ie.id)),he.replaceWith(Xt(tr("=",me(Ie.id),An(Ie)))),L(Le,Le)}else{Ja(Ie)&&(Ie.kind="var");for(var Ze=0,at=Object.keys(_s(Ie));Ze<at.length;Ze++){var lt=at[Ze];L(lt,lt)}}else{var gt=he.node.specifiers;if(gt!=null&>.length)if(he.node.source)V(he.node.source.value,"exports",gt),he.remove();else{for(var It=[],tt=C(gt),Ft;!(Ft=tt()).done;){var rr=Ft.value,$t=rr.local,Et=rr.exported,Lt=R.getBinding($t.name),Re=$oe(Et,I);Lt&&ja(Lt.path.node)?(K.push(Re),G.push(me($t))):Lt||It.push(H(Re,$t)),L($t.name,Re)}he.replaceWithMultiple(It)}else he.remove()}}}O.forEach(function(De){for(var Qe=[],yt=R.generateUid(De.key),jt=C(De.imports),Kt;!(Kt=jt()).done;){var Ht=Kt.value;if(mf(Ht)?Qe.push(Xt(tr("=",Ht.local,Ne(yt)))):bd(Ht)&&(Ht=Uf(Ht.local,Ne("default"))),yf(Ht)){var Cr=Ht,Yr=Cr.imported;Qe.push(Xt(tr("=",Ht.local,Vt(Ne(yt),Ht.imported,Yr.type==="StringLiteral"))))}}if(De.exports.length){for(var Or=[],Gr=[],qa=!1,cr=C(De.exports),na;!(na=cr()).done;){var N=na.value;if(yd(N))qa=!0;else if(ff(N)){var $=$oe(N.exported,I);Or.push($),Gr.push(Vt(Ne(yt),N.local,nt(N.local)))}}Qe.push.apply(Qe,fe(qoe(g,Ne(w),Or,Gr,qa?Ne(yt):null,I)))}k.push(Jt(De.key)),D.push(Mn(null,[Ne(yt)],ea(Qe)))});var Be=fc(this.file.opts,r);Be&&(Be=Jt(Be)),g.scope.hoistVariables(function(De,Qe){if(B.push(De),!Qe&&De.name in P)for(var yt=C(P[De.name]),jt;!(jt=yt()).done;){var Kt=jt.value;K.push(Kt),G.push(Qu())}}),B.length&&j.unshift(Br("var",B.map(function(De){return Sr(De)}))),K.length&&j.push.apply(j,fe(qoe(g,Ne(w),K,G,null,I))),g.traverse(h,{exports:P,buildCall:H,scope:R});for(var et=0,it=F;et<it.length;et++){var vt=it[et];vt.remove()}var Ot=!1;g.traverse({AwaitExpression:function(Qe){Ot=!0,Qe.stop()},Function:function(Qe){Qe.skip()},noScope:!0}),g.node.body=[NZe({SYSTEM_REGISTER:Vt(Ne(u),Ne("register")),BEFORE_BODY:j,MODULE_NAME:Be,SETTERS:Ra(D),EXECUTE:Mn(null,[],ea(g.node.body),!1,Ot),SOURCES:Ra(k),EXPORT_IDENTIFIER:Ne(w),CONTEXT_IDENTIFIER:Ne(T)})],g.requeue(g.get("body.0"))}},s)}},MZe=xt(` + GLOBAL_REFERENCE = GLOBAL_REFERENCE || {} +`),BZe=xt(` + (function (global, factory) { + if (typeof define === "function" && define.amd) { + define(MODULE_NAME, AMD_ARGUMENTS, factory); + } else if (typeof exports !== "undefined") { + factory(COMMONJS_ARGUMENTS); + } else { + var mod = { exports: {} }; + factory(BROWSER_ARGUMENTS); + + GLOBAL_TO_ASSIGN; + } + })( + typeof globalThis !== "undefined" ? globalThis + : typeof self !== "undefined" ? self + : this, + function(IMPORT_NAMES) { + }) +`),RO=function(e,r){var s,l;e.assertVersion("*");var u=r.globals,o=r.exactGlobals,c=r.allowTopLevelThis,f=r.strict,h=r.strictMode,m=r.noInterop,g=r.importInterop,x=(s=e.assumption("constantReexports"))!=null?s:r.loose,R=(l=e.assumption("enumerableModuleMeta"))!=null?l:r.loose;function w(I,P,O,j){var D=j?j.value:Ih(O,Ch(O)),k=Vt(Ne("global"),Ne(Md(D))),B=[];if(P){var F=I[D];if(F){B=[];var L=F.split(".");k=L.slice(1).reduce(function(V,H){return B.push(MZe({GLOBAL_REFERENCE:me(V)})),Vt(V,Ne(H))},Vt(Ne("global"),Ne(L[0])))}}return B.push(Xt(tr("=",k,Vt(Ne("mod"),Ne("exports"))))),B}function T(I,P,O){var j;if(P){var D=I[O];D?j=D.split(".").reduce(function(F,L){return Vt(F,Ne(L))},Ne("global")):j=Vt(Ne("global"),Ne(Md(O)))}else{var k=Ih(O,Ch(O)),B=I[k]||k;j=Vt(Ne("global"),Ne(Md(B)))}return j}return{name:"transform-modules-umd",visitor:{Program:{exit:function(P){if(uo(P)){var O=u||{},j=fc(this.file.opts,r),D;j&&(D=Jt(j));var k=S0(P,{constantReexports:x,enumerableModuleMeta:R,strict:f,strictMode:h,allowTopLevelThis:c,noInterop:m,importInterop:g,filename:this.file.opts.filename}),B=k.meta,F=k.headers,L=[],V=[],H=[],K=[];x0(B)&&(L.push(Jt("exports")),V.push(Ne("exports")),H.push(Vt(Ne("mod"),Ne("exports"))),K.push(Ne(B.exportName)));for(var G=C(B.source),X;!(X=G()).done;){var ue=je(X.value,2),oe=ue[0],he=ue[1];if(L.push(Jt(oe)),V.push(ft(Ne("require"),[Jt(oe)])),H.push(T(O,o,oe)),K.push(Ne(he.name)),!Zd(he)){var te=jh(P,Ne(he.name),he.interop);if(te){var ae=Xt(tr("=",Ne(he.name),te));ae.loc=B.loc,F.push(ae)}}F.push.apply(F,fe(w0(B,he,x)))}T0(F),P.unshiftContainer("body",F);var J=P.node,xe=J.body,de=J.directives;P.node.directives=[],P.node.body=[];var $e=P.pushContainer("body",[BZe({MODULE_NAME:D,AMD_ARGUMENTS:Ra(L),COMMONJS_ARGUMENTS:V,BROWSER_ARGUMENTS:H,IMPORT_NAMES:K,GLOBAL_TO_ASSIGN:w(O,o,this.filename||"unknown",D)})])[0],Ve=$e.get("expression.arguments")[1].get("body");Ve.pushContainer("directives",de),Ve.pushContainer("body",xe)}}}}}},Uoe=function(e,r){var s=r.runtime;if(s!==void 0&&typeof s!="boolean")throw new Error("The 'runtime' option must be boolean");return Pc({name:"transform-named-capturing-groups-regex",feature:"namedCaptureGroups",options:{runtime:s}})},Voe=function(e){return e.assertVersion("*"),{name:"transform-new-target",visitor:{MetaProperty:function(s){var l=s.get("meta"),u=s.get("property"),o=s.scope;if(l.isIdentifier({name:"new"})&&u.isIdentifier({name:"target"})){var c=s.findParent(function(x){return x.isClass()?!0:x.isFunction()&&!x.isArrowFunctionExpression()?!x.isClassMethod({kind:"constructor"}):!1});if(!c)throw s.buildCodeFrameError("new.target must be under a (non-arrow) function or a class.");var f=c.node;if(Sd(f)){s.replaceWith(o.buildUndefinedNode());return}var h=Vt(qr(),Ne("constructor"));if(c.isClass()){s.replaceWith(h);return}if(!f.id)f.id=o.generateUidIdentifier("target");else for(var m=s.scope,g=f.id.name;m!==c.parentPath.scope;)m.hasOwnBinding(g)&&!m.bindingIdentifierEquals(g,f.id)&&m.rename(g),m=m.parent;s.replaceWith(Qs(nn("instanceof",qr(),me(f.id)),h,o.buildUndefinedNode()))}}}}},FZe=function(e){return e.assertVersion("*"),{name:"transform-object-assign",visitor:{CallExpression:function(s,l){s.get("callee").matchesPattern("Object.assign")&&(s.node.callee=l.addHelper("extends"))}}}};function $Ze(e,r,s){var l=new op({getObjectRef:r,methodPath:e,file:s});l.replace()}var EO=function(e){e.assertVersion("*");var r=new Set;return{name:"transform-object-super",visitor:{Loop:{exit:function(l){r.forEach(function(u){u.scopePath===l&&(l.scope.push({id:u.id,kind:"let"}),l.scope.crawl(),l.requeue(),r.delete(u))})}},ObjectExpression:function(l,u){var o,c=function(){return o=o||l.scope.generateUidIdentifier("obj")};if(l.get("properties").forEach(function(m){m.isMethod()&&$Ze(m,c,u.file)}),o){var f=l.findParent(function(m){return m.isFunction()||m.isProgram()||m.isLoop()}),h=f.isLoop();h?r.add({scopePath:f,id:me(o)}):l.scope.push({id:me(o),kind:"var"}),l.replaceWith(tr("=",me(o),l.node))}}}}},qZe=function(e){return e.assertVersion("*"),{name:"transform-object-set-prototype-of-to-assign",visitor:{CallExpression:function(s,l){s.get("callee").matchesPattern("Object.setPrototypeOf")&&(s.node.callee=l.addHelper("defaults"))}}}},Woe=function(e){return e.assertVersion("*"),{name:"transform-property-literals",visitor:{ObjectProperty:{exit:function(s){var l=s.node,u=l.key;!l.computed&&Dt(u)&&!i1(u.name)&&(l.key=Jt(u.name))}}}}};function UZe(e,r){var s,l=Vl(r),u=(s=e[l])!=null?s:e[l]={_inherits:[],_key:r.key};u._inherits.push(r);var o=Mn(null,r.params,r.body,r.generator,r.async);return o.returnType=r.returnType,ql(o,r),u[r.kind]=o,u}function VZe(e){var r=Oa([]);return Object.keys(e).forEach(function(s){var l=e[s];l.configurable=un(!0),l.enumerable=un(!0);var u=Oa([]),o=sn(l._key,u,l._computed);Object.keys(l).forEach(function(c){var f=l[c];if(c[0]!=="_"){var h=sn(Ne(c),f);ql(h,f),J8(f),u.properties.push(h)}}),r.properties.push(o)}),r}var WZe=function(e){return e.assertVersion("*"),{name:"transform-property-mutators",visitor:{ObjectExpression:function(s){var l=s.node,u,o=l.properties.filter(function(c){if(Kn(c)&&!c.computed&&(c.kind==="get"||c.kind==="set")){var f;return UZe((f=u)!=null?f:u={},c),!1}return!0});u!==void 0&&(l.properties=o,s.replaceWith(ft(Vt(Ne("Object"),Ne("defineProperties")),[l,VZe(u)])))}}}},GZe=function(e){e.assertVersion("*");function r(u){return!mn(u)&&nt(ko(u,u.key),{value:"__proto__"})}function s(u){var o=u;return lr(o)&&nt(ko(o,o.property),{value:"__proto__"})}function l(u,o,c){return Xt(ft(c.addHelper("defaults"),[o,u.right]))}return{name:"transform-proto-to-assign",visitor:{AssignmentExpression:function(o,c){var f=c.file;if(s(o.node.left)){var h=[],m=o.node.left.object,g=o.scope.maybeGenerateMemoised(m);g&&h.push(Xt(tr("=",g,m))),h.push(l(o.node,me(g||m),f)),g&&h.push(me(g)),o.replaceWithMultiple(h)}},ExpressionStatement:function(o,c){var f=c.file,h=o.node.expression;Se(h,{operator:"="})&&s(h.left)&&o.replaceWith(l(h,h.left.object,f))},ObjectExpression:function(o,c){for(var f=c.file,h,m=o.node,g=m.properties,x=0;x<g.length;x++){var R=g[x];if(r(R)){h=R.value,g.splice(x,1);break}}if(h){var w=[Oa([]),h];m.properties.length&&w.push(m),o.replaceWith(ft(f.addHelper("extends"),w))}}}}},Goe,KZe=function(e,r){e.assertVersion("*");var s=r.allowMutablePropsOnTags;if(s!=null&&!Array.isArray(s))throw new Error(".allowMutablePropsOnTags must be an array, null, or undefined.");var l=new WeakMap;function u(g,x){if(Is(g,{name:"this"})||Is(g,{name:"arguments"})||Is(g,{name:"super"})||Is(g,{name:"new"})){var R=x.path;return R.isFunctionParent()&&!R.isArrowFunctionExpression()}return x.hasOwnBinding(g.name)}function o(g){var x=g.path;return x.isFunctionParent()||x.isLoop()||x.isProgram()}function c(g){for(;!o(g);)g=g.parent;return g}var f={ReferencedIdentifier:function(x,R){for(var w=x.node,T=x.scope;T!==R.jsxScope;){if(u(w,T))return;T=T.parent}for(;T;){if(T===R.targetScope)return;if(u(w,T))break;T=T.parent}R.targetScope=c(T)}},h={enter:function(x,R){var w,T=function(){R.isImmutable=!1,x.stop()},I=function(){x.skip()};if(x.isJSXClosingElement()){I();return}if(x.isJSXIdentifier({name:"ref"})&&x.parentPath.isJSXAttribute({name:x.node})){T();return}if(!(x.isJSXIdentifier()||x.isJSXMemberExpression()||x.isJSXNamespacedName()||x.isImmutable())){if(x.isIdentifier()){var P=x.scope.getBinding(x.node.name);if(P!=null&&P.constant)return}var O=R.mutablePropsAllowed;if(O&&x.isFunction()){x.traverse(f,R),I();return}if(!x.isPure()){T();return}var j=x.evaluate();if(j.confident){var D=j.value;if(O||D===null||typeof D!="object"&&typeof D!="function"){I();return}}else if((w=j.deopt)!=null&&w.isIdentifier())return;T()}}},m=Object.assign({},h,f);return{name:"transform-react-constant-elements",visitor:{"JSXElement|JSXFragment":function(x){var R;if(!l.has(x.node)){var w=!1,T;if(x.isJSXElement()){if(T=x.node.openingElement.name,s!=null){for(var I=T;qu(I);)I=I.property;var P=I.name;w=s.includes(P)}}else T=x.node;for(var O,j=x;!O&&j.parentPath.isJSX();)j=j.parentPath,O=l.get(j.node);(R=O)!=null||(O=x.scope),l.set(x.node,O);var D={isImmutable:!0,mutablePropsAllowed:w,jsxScope:O,targetScope:x.scope.getProgramParent()};if(x.traverse(m,D),!!D.isImmutable){for(var k=D.targetScope,B=O;;){if(k===B)return;if(o(B))break;if(B=B.parent,!B)throw new Error("Internal @babel/plugin-transform-react-constant-elements error: targetScope must be an ancestor of jsxScope. This is a Babel bug, please report it.")}var F=x.scope.generateUidBasedOnNode(T);k.push({id:Ne(F)}),l.set(x.node,k);var L=xt.expression.ast(Goe||(Goe=se([` + `," || ("," = ",`) + `])),Ne(F),Ne(F),x.node);(x.parentPath.isJSXElement()||x.parentPath.isJSXAttribute()||x.parentPath.isJSXFragment())&&(L=ro(L)),x.replaceWith(L)}}}}}},Koe=function(e){e.assertVersion("*");function r(o,c){for(var f=c.arguments[0].properties,h=!0,m=0;m<f.length;m++){var g=f[m];if(!mn(g)){var x=ko(g);if(nt(x,{value:"displayName"})){h=!1;break}}}h&&f.unshift(sn(Ne("displayName"),Jt(o)))}var s=jg("React.createClass"),l=function(c){return Dt(c,{name:"createReactClass"})};function u(o){if(!o||!ct(o)||!s(o.callee)&&!l(o.callee))return!1;var c=o.arguments;if(c.length!==1)return!1;var f=c[0];return!!Mt(f)}return{name:"transform-react-display-name",visitor:{ExportDefaultDeclaration:function(c,f){var h=c.node;if(u(h.declaration)){var m=f.filename||"unknown",g=Cn.basename(m,Cn.extname(m));g==="index"&&(g=Cn.basename(Cn.dirname(m))),r(g,h.declaration)}},CallExpression:function(c){var f=c.node;if(u(f)){var h;c.find(function(m){if(m.isAssignmentExpression())h=m.node.left;else if(m.isObjectProperty())h=m.node.key;else if(m.isVariableDeclarator())h=m.node.id;else if(m.isStatement())return!0;if(h)return!0}),h&&(lr(h)&&(h=h.property),Dt(h)&&r(h.name,f))}}}}},HZe=un,SO=ft,Hoe=Ne,TO=Na,zZe=Dt,zoe=$u,XZe=Is,JZe=qu,Xoe=Rd,Joe=Uu,YZe=Mt,QZe=Bd,Yoe=nt,Qoe=Fl,Zoe=Vt,ele=Bn,wO=Oa,ZZe=sn,tle=Mi,eet=Xu,Nv=Jt,tet=qr;function rle(e){var r={};return r.JSXNamespacedName=function(m){if(e.throwIfNamespace)throw m.buildCodeFrameError("Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can set `throwIfNamespace: false` to bypass this warning.")},r.JSXSpreadChild=function(m){throw m.buildCodeFrameError("Spread children are not supported in React.")},r.JSXElement={exit:function(g,x){var R=o(g,x);R&&g.replaceWith(TO(R,g.node))}},r.JSXFragment={exit:function(g,x){if(e.compat)throw g.buildCodeFrameError("Fragment tags are only supported in React 16 and up.");var R=h(g,x);R&&g.replaceWith(TO(R,g.node))}},r;function s(m,g){return XZe(m)?m.name==="this"&&QZe(m,g)?tet():Qoe(m.name,!1)?(m.type="Identifier",m):Nv(m.name):JZe(m)?Zoe(s(m.object,m),s(m.property,m)):Xoe(m)?Nv(m.namespace.name+":"+m.name.name):m}function l(m){return zoe(m)?m.expression:m}function u(m){if(Joe(m))return eet(m.argument);var g=l(m.value||HZe(!0));if(Yoe(g)&&!zoe(m.value)){var x;g.value=g.value.replace(/\n\s+/g," "),(x=g.extra)==null||delete x.raw}return Xoe(m.name)?m.name=Nv(m.name.namespace.name+":"+m.name.name.name):Qoe(m.name.name,!1)?m.name.type="Identifier":m.name=Nv(m.name.name),TO(ZZe(m.name,g),m)}function o(m,g){if(!(e.filter&&!e.filter(m.node,g))){var x=m.get("openingElement");m.node.children=tle.buildChildren(m.node);var R=s(x.node.name,x.node),w=[],T;zZe(R)?T=R.name:Yoe(R)&&(T=R.value);var I={tagExpr:R,tagName:T,args:w,pure:!1};e.pre&&e.pre(I,g);var P=x.node.attributes,O;P.length?O=f(P,g):O=ele(),w.push.apply(w,[O].concat(fe(m.node.children))),e.post&&e.post(I,g);var j=I.call||SO(I.callee,w);return I.pure&&Ui(j),j}}function c(m,g){return m.length?(g.push(wO(m)),[]):m}function f(m,g){var x=[],R=[],w=g.opts.useSpread,T=w===void 0?!1:w;if(typeof T!="boolean")throw new Error("transform-react-jsx currently only accepts a boolean option for useSpread (defaults to false)");var I=g.opts.useBuiltIns||!1;if(typeof I!="boolean")throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");if(T&&I)throw new Error("transform-react-jsx currently only accepts useBuiltIns or useSpread but not both");if(T){var P=m.map(u);return wO(P)}for(;m.length;){var O=m.shift();Joe(O)?(x=c(x,R),R.push(O.argument)):x.push(u(O))}c(x,R);var j;if(R.length===1)j=R[0];else{YZe(R[0])||R.unshift(wO([]));var D=I?Zoe(Hoe("Object"),Hoe("assign")):g.addHelper("extends");j=SO(D,R)}return j}function h(m,g){if(!(e.filter&&!e.filter(m.node,g))){m.node.children=tle.buildChildren(m.node);var x=[],R=null,w=g.get("jsxFragIdentifier")(),T={tagExpr:w,tagName:R,args:x,pure:!1};e.pre&&e.pre(T,g),x.push.apply(x,[ele()].concat(fe(m.node.children))),e.post&&e.post(T,g),g.set("usedFragment",!0);var I=T.call||SO(T.callee,x);return T.pure&&Ui(I),I}}}var ret=function(e){e.assertVersion("*");function r(u){for(var o=0;o<u.length;o++){var c=u[o];if(Uu(c)||s(c,"ref"))return!0}return!1}function s(u,o){return Fu(u)&&Is(u.name,{name:o})}var l=rle({filter:function(o){return o.type==="JSXElement"&&!r(o.openingElement.attributes)},pre:function(o){var c=o.tagName,f=o.args;Mi.isCompatTag(c)?f.push(Jt(c)):f.push(o.tagExpr)},post:function(o,c){o.callee=c.addHelper("jsx");var f=o.args[1],h=!1;if(Mt(f)){var m=f.properties.findIndex(function(g){return Dt(g.key,{name:"key"})});m>-1&&(o.args.splice(2,0,f.properties[m].value),f.properties.splice(m,1),h=!0)}else or(f)&&o.args.splice(1,1,Oa([]));!h&&o.args.length>2&&o.args.splice(2,0,vn("void",Wr(0))),o.pure=!0}});return{name:"transform-react-inline-elements",visitor:l}},ale,Zh={importSource:"react",runtime:"automatic",pragma:"React.createElement",pragmaFrag:"React.Fragment"},aet=/^\s*(?:\*\s*)?@jsxImportSource\s+(\S+)\s*$/m,net=/^\s*(?:\*\s*)?@jsxRuntime\s+(\S+)\s*$/m,set=/^\s*(?:\*\s*)?@jsx\s+(\S+)\s*$/m,iet=/^\s*(?:\*\s*)?@jsxFrag\s+(\S+)\s*$/m,Yo=function(r,s){return r.get("@babel/plugin-react-jsx/"+s)},uu=function(r,s,l){return r.set("@babel/plugin-react-jsx/"+s,l)};function oet(e){return e.properties.some(function(r){return Sn(r,{computed:!1,shorthand:!1})&&(Dt(r.key,{name:"__proto__"})||nt(r.key,{value:"__proto__"}))})}function nle(e){var r=e.name,s=e.development;return function(o,c){var f=c.pure,h=c.throwIfNamespace,m=h===void 0?!0:h,g=c.filter,x=c.runtime,R=x===void 0?s?"automatic":"classic":x,w=c.importSource,T=w===void 0?Zh.importSource:w,I=c.pragma,P=I===void 0?Zh.pragma:I,O=c.pragmaFrag,j=O===void 0?Zh.pragmaFrag:O;{var D=c.useSpread,k=D===void 0?!1:D,B=c.useBuiltIns,F=B===void 0?!1:B;if(R==="classic"){if(typeof k!="boolean")throw new Error("transform-react-jsx currently only accepts a boolean option for useSpread (defaults to false)");if(typeof F!="boolean")throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");if(k&&F)throw new Error("transform-react-jsx currently only accepts useBuiltIns or useSpread but not both")}}var L={JSXOpeningElement:function(ke,Le){var Ze=[];H(ke.scope)&&Ze.push(Yu(ao("__self"),ro(qr()))),Ze.push(Yu(ao("__source"),ro(uet(ke,Le)))),ke.pushContainer("attributes",Ze)}};return{name:r,inherits:pJ,visitor:{JSXNamespacedName:function(ke){if(m)throw ke.buildCodeFrameError("Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can set `throwIfNamespace: false` to bypass this warning.")},JSXSpreadChild:function(ke){throw ke.buildCodeFrameError("Spread children are not supported in React.")},Program:{enter:function(ke,Le){var Ze=Le.file,at=R,lt=T,gt=P,It=j,tt=!!c.importSource,Ft=!!c.pragma,rr=!!c.pragmaFrag;if(Ze.ast.comments)for(var $t=C(Ze.ast.comments),Et;!(Et=$t()).done;){var Lt=Et.value,Re=aet.exec(Lt.value);Re&&(lt=Re[1],tt=!0);var Be=net.exec(Lt.value);Be&&(at=Be[1]);var et=set.exec(Lt.value);et&&(gt=et[1],Ft=!0);var it=iet.exec(Lt.value);it&&(It=it[1],rr=!0)}if(uu(Le,"runtime",at),at==="classic"){if(tt)throw ke.buildCodeFrameError("importSource cannot be set when runtime is classic.");var vt=sle(gt),Ot=sle(It);uu(Le,"id/createElement",function(){return me(vt)}),uu(Le,"id/fragment",function(){return me(Ot)}),uu(Le,"defaultPure",gt===Zh.pragma)}else if(at==="automatic"){if(Ft||rr)throw ke.buildCodeFrameError("pragma and pragmaFrag cannot be set when runtime is automatic.");var De=function(yt,jt){return uu(Le,yt,u(Le,ke,jt,lt))};De("id/jsx",s?"jsxDEV":"jsx"),De("id/jsxs",s?"jsxDEV":"jsxs"),De("id/createElement","createElement"),De("id/fragment","Fragment"),uu(Le,"defaultPure",lt===Zh.importSource)}else throw ke.buildCodeFrameError('Runtime must be either "classic" or "automatic".');s&&ke.traverse(L,Le)}},JSXFragment:{exit:function(ke,Le){var Ze;Yo(Le,"runtime")==="classic"?Ze=xe(ke,Le):Ze=J(ke,Le),ke.replaceWith(Na(Ze,ke.node))}},JSXElement:{exit:function(ke,Le){var Ze;Yo(Le,"runtime")==="classic"||G(ke)?Ze=de(ke,Le):Ze=te(ke,Le),ke.replaceWith(Na(Ze,ke.node))}},JSXAttribute:function(ke){gg(ke.node.value)&&(ke.node.value=ro(ke.node.value))}}};function V(Ie){return Ie.node.superClass!==null}function H(Ie){do{var ke=Ie,Le=ke.path;if(Le.isFunctionParent()&&!Le.isArrowFunctionExpression())return!Le.isMethod()||Le.node.kind!=="constructor"?!0:!V(Le.parentPath.parentPath);if(Le.isTSModuleBlock())return!1}while(Ie=Ie.parent);return!0}function K(Ie,ke,Le){var Ze=ft(Yo(Ie,"id/"+ke)(),Le);return(f??Yo(Ie,"defaultPure"))&&Ui(Ze),Ze}function G(Ie){for(var ke=Ie.get("openingElement"),Le=ke.node.attributes,Ze=!1,at=0;at<Le.length;at++){var lt=Le[at];if(Ze&&Fu(lt)&<.name.name==="key")return!0;Uu(lt)&&(Ze=!0)}return!1}function X(Ie,ke){return Is(Ie)?Ie.name==="this"&&Bd(Ie,ke)?qr():Fl(Ie.name,!1)?(Ie.type="Identifier",Ie):Jt(Ie.name):qu(Ie)?Vt(X(Ie.object,Ie),X(Ie.property,Ie)):Rd(Ie)?Jt(Ie.namespace.name+":"+Ie.name.name):Ie}function ue(Ie){return $u(Ie)?Ie.expression:Ie}function oe(Ie,ke){if(Uu(ke.node)){var Le=ke.node.argument;return Mt(Le)&&!oet(Le)?Ie.push.apply(Ie,fe(Le.properties)):Ie.push(Xu(Le)),Ie}var Ze=ue(ke.node.name.name!=="key"?ke.node.value||un(!0):ke.node.value);if(ke.node.name.name==="key"&&Ze===null)throw ke.buildCodeFrameError('Please provide an explicit key value. Using "key" as a shorthand for "key={true}" is not allowed.');if(nt(Ze)&&!$u(ke.node.value)){var at;Ze.value=Ze.value.replace(/\n\s+/g," "),(at=Ze.extra)==null||delete at.raw}return Rd(ke.node.name)?ke.node.name=Jt(ke.node.name.namespace.name+":"+ke.node.name.name.name):Fl(ke.node.name.name,!1)?ke.node.name.type="Identifier":ke.node.name=Jt(ke.node.name.name),Ie.push(Na(sn(ke.node.name,Ze),ke.node)),Ie}function he(Ie){var ke;if(Ie.length===1)ke=Ie[0];else if(Ie.length>1)ke=Ra(Ie);else return;return sn(Ne("children"),ke)}function te(Ie,ke){for(var Le=Ie.get("openingElement"),Ze=[$e(Le)],at=[],lt=Object.create(null),gt=C(Le.get("attributes")),It;!(It=gt()).done;){var tt=It.value;if(tt.isJSXAttribute()&&Is(tt.node.name)){var Ft=tt.node.name.name;switch(Ft){case"__source":case"__self":if(lt[Ft])throw ile(Ie,Ft);case"key":{var rr=ue(tt.node.value);if(rr===null)throw tt.buildCodeFrameError('Please provide an explicit key value. Using "key" as a shorthand for "key={true}" is not allowed.');lt[Ft]=rr;break}default:at.push(tt)}}else at.push(tt)}var $t=Mi.buildChildren(Ie.node),Et;if(at.length||$t.length?Et=ae(at,$t):Et=Oa([]),Ze.push(Et),s){var Lt;Ze.push((Lt=lt.key)!=null?Lt:Ie.scope.buildUndefinedNode(),un($t.length>1)),lt.__source?(Ze.push(lt.__source),lt.__self&&Ze.push(lt.__self)):lt.__self&&Ze.push(Ie.scope.buildUndefinedNode(),lt.__self)}else lt.key!==void 0&&Ze.push(lt.key);return K(ke,$t.length>1?"jsxs":"jsx",Ze)}function ae(Ie,ke){var Le=Ie.reduce(oe,[]);return(ke==null?void 0:ke.length)>0&&Le.push(he(ke)),Oa(Le)}function J(Ie,ke){var Le=[Yo(ke,"id/fragment")()],Ze=Mi.buildChildren(Ie.node);return Le.push(Oa(Ze.length>0?[he(Ze)]:[])),s&&Le.push(Ie.scope.buildUndefinedNode(),un(Ze.length>1)),K(ke,Ze.length>1?"jsxs":"jsx",Le)}function xe(Ie,ke){if(!(g&&!g(Ie.node,ke)))return K(ke,"createElement",[Yo(ke,"id/fragment")(),Bn()].concat(fe(Mi.buildChildren(Ie.node))))}function de(Ie,ke){var Le=Ie.get("openingElement");return K(ke,"createElement",[$e(Le),Ve(ke,Ie,Le.get("attributes"))].concat(fe(Mi.buildChildren(Ie.node))))}function $e(Ie){var ke=X(Ie.node.name,Ie.node),Le;return Dt(ke)?Le=ke.name:nt(ke)&&(Le=ke.value),Mi.isCompatTag(Le)?Jt(Le):ke}function Ve(Ie,ke,Le){var Ze=Yo(Ie,"runtime");if(Ze!=="automatic"){var at=[],lt=Le.reduce(oe,[]);if(k)lt.length&&at.push(Oa(lt));else{var gt=0;lt.forEach(function(Be,et){mn(Be)&&(et>gt&&at.push(Oa(lt.slice(gt,et))),at.push(Be.argument),gt=et+1)}),lt.length>gt&&at.push(Oa(lt.slice(gt)))}if(!at.length)return Bn();if(at.length===1&&!(mn(lt[0])&&Mt(lt[0].argument)))return at[0];Mt(at[0])||at.unshift(Oa([]));var It=F?Vt(Ne("Object"),Ne("assign")):Ie.addHelper("extends");return ft(It,at)}for(var tt=[],Ft=Object.create(null),rr=C(Le),$t;!($t=rr()).done;){var Et=$t.value,Lt=Et.node,Re=Fu(Lt)&&Is(Lt.name)&&Lt.name.name;if(Ze==="automatic"&&(Re==="__source"||Re==="__self")){if(Ft[Re])throw ile(ke,Re);Ft[Re]=!0}oe(tt,Et)}return tt.length===1&&mn(tt[0])&&!Mt(tt[0].argument)?tt[0].argument:tt.length>0?Oa(tt):Bn()}};function l(o,c){switch(c){case"Fragment":return o+"/"+(s?"jsx-dev-runtime":"jsx-runtime");case"jsxDEV":return o+"/jsx-dev-runtime";case"jsx":case"jsxs":return o+"/jsx-runtime";case"createElement":return o}}function u(o,c,f,h){return function(){var m=l(h,f);if(uo(c)){var g=Yo(o,"imports/"+f);return g?me(g):(g=m0(c,f,m,{importedInterop:"uncompiled",importPosition:"after"}),uu(o,"imports/"+f,g),g)}else{var x=Yo(o,"requires/"+m);return x?x=me(x):(x=mLe(c,m,{importedInterop:"uncompiled"}),uu(o,"requires/"+m,x)),Vt(x,Ne(f))}}}}function sle(e){return e.split(".").map(function(r){return Ne(r)}).reduce(function(r,s){return Vt(r,s)})}function uet(e,r){var s=e.node.loc;if(!s)return e.scope.buildUndefinedNode();if(!r.fileNameIdentifier){var l=r.filename,u=l===void 0?"":l,o=e.scope.generateUidIdentifier("_jsxFileName");e.scope.getProgramParent().push({id:o,init:Jt(u)}),r.fileNameIdentifier=o}return cet(me(r.fileNameIdentifier),s.start.line,s.start.column)}function cet(e,r,s){var l=r!=null?Wr(r):Bn(),u=s!=null?Wr(s+1):Bn();return xt.expression.ast(ale||(ale=se([`{ + fileName: `,`, + lineNumber: `,`, + columnNumber: `,`, + }`])),e,l,u)}function ile(e,r){var s="transform-react-jsx-"+r.slice(2);return e.buildCodeFrameError("Duplicate "+r+" prop found. You are most likely using the deprecated "+s+" Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.")}var ole=nle({name:"transform-react-jsx",development:!1}),det=function(e){return e.assertVersion("*"),{name:"transform-react-jsx-compat",manipulateOptions:function(s,l){l.plugins.push("jsx")},visitor:rle({pre:function(s){s.callee=s.tagExpr},post:function(s){Mi.isCompatTag(s.tagName)&&(s.call=ft(Vt(Vt(Ne("React"),Ne("DOM")),s.tagExpr,yn(s.tagExpr)),s.args))},compat:!0})}},lle=nle({name:"transform-react-jsx/development",development:!0}),pet="__self";function fet(e){var r=e.scope;do{var s=r,l=s.path;if(l.isFunctionParent()&&!l.isArrowFunctionExpression())return l}while(r=r.parent);return null}function het(e){return e.node.superClass!==null}function met(e){var r=fet(e);return r===null||!r.isMethod()||r.node.kind!=="constructor"?!0:!het(r.parentPath.parentPath)}var yet=function(e){e.assertVersion("*");var r={JSXOpeningElement:function(l){if(met(l)){var u=l.node,o=ao(pet),c=qr();u.attributes.push(Yu(o,ro(c)))}}};return{name:"transform-react-jsx-self",visitor:{Program:function(l){l.traverse(r)}}}},ule,cle="__source",get="_jsxFileName",dle=function(r,s){return r==null?Bn():s(r)},vet=function(e){e.assertVersion("*");function r(l,u){var o=u.line,c=u.column,f=dle(o,Wr),h=dle(c,function(m){return Wr(m+1)});return xt.expression.ast(ule||(ule=se([`{ + fileName: `,`, + lineNumber: `,`, + columnNumber: `,`, + }`])),l,f,h)}var s=function(u){return Fu(u)&&u.name.name===cle};return{name:"transform-react-jsx-source",visitor:{JSXOpeningElement:function(u,o){var c=u.node;if(!(!c.loc||u.node.attributes.some(s))){if(!o.fileNameIdentifier){var f=u.scope.generateUidIdentifier(get);o.fileNameIdentifier=f,u.scope.getProgramParent().push({id:f,init:Jt(o.filename||"")})}c.attributes.push(Yu(ao(cle),ro(r(me(o.fileNameIdentifier),c.loc.start))))}}}}},ple={},fle={},hle={exports:{}};(function(e){function r(s){return s&&s.__esModule?s:{default:s}}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(hle);var kv=hle.exports,Dv=Gu(rLe),PO={},cu={},mle;function mp(){if(mle)return cu;mle=1,cu.__esModule=!0,cu.getTypes=s,cu.isReference=u,cu.replaceWithOrRemove=o,cu.runtimeProperty=l,cu.wrapWithTypes=r;var e=null;function r(c,f){return function(){var h=e;e=c;try{for(var m=arguments.length,g=new Array(m),x=0;x<m;x++)g[x]=arguments[x];return f.apply(this,g)}finally{e=h}}}function s(){return e}function l(c){var f=s();return f.memberExpression(f.identifier("regeneratorRuntime"),f.identifier(c),!1)}function u(c){return c.isReferenced()||c.parentPath.isAssignmentExpression({left:c.node})}function o(c,f){f?c.replaceWith(f):c.remove()}return cu}var yle;function bet(){if(yle)return PO;yle=1;var e=s(mp());function r(u){if(typeof WeakMap!="function")return null;var o=new WeakMap,c=new WeakMap;return(r=function(h){return h?c:o})(u)}function s(u,o){if(u&&u.__esModule)return u;if(u===null||typeof u!="object"&&typeof u!="function")return{default:u};var c=r(o);if(c&&c.has(u))return c.get(u);var f={},h=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in u)if(m!=="default"&&Object.prototype.hasOwnProperty.call(u,m)){var g=h?Object.getOwnPropertyDescriptor(u,m):null;g&&(g.get||g.set)?Object.defineProperty(f,m,g):f[m]=u[m]}return f.default=u,c&&c.set(u,f),f}var l=Object.prototype.hasOwnProperty;return PO.hoist=function(u){var o=e.getTypes();o.assertFunction(u.node);var c={};function f(g,x){var R=g.node,w=g.scope;o.assertVariableDeclaration(R);var T=[];return R.declarations.forEach(function(I){c[I.id.name]=o.identifier(I.id.name),w.removeBinding(I.id.name),I.init?T.push(o.assignmentExpression("=",I.id,I.init)):x&&T.push(I.id)}),T.length===0?null:T.length===1?T[0]:o.sequenceExpression(T)}u.get("body").traverse({VariableDeclaration:{exit:function(x){var R=f(x,!1);R===null?x.remove():e.replaceWithOrRemove(x,o.expressionStatement(R)),x.skip()}},ForStatement:function(x){var R=x.get("init");R.isVariableDeclaration()&&e.replaceWithOrRemove(R,f(R,!1))},ForXStatement:function(x){var R=x.get("left");R.isVariableDeclaration()&&e.replaceWithOrRemove(R,f(R,!0))},FunctionDeclaration:function(x){var R=x.node;c[R.id.name]=R.id;var w=o.expressionStatement(o.assignmentExpression("=",o.clone(R.id),o.functionExpression(x.scope.generateUidIdentifierBasedOnNode(R),R.params,R.body,R.generator,R.expression)));x.parentPath.isBlockStatement()?(x.parentPath.unshiftContainer("body",w),x.remove()):e.replaceWithOrRemove(x,w),x.scope.removeBinding(R.id.name),x.skip()},FunctionExpression:function(x){x.skip()},ArrowFunctionExpression:function(x){x.skip()}});var h={};u.get("params").forEach(function(g){var x=g.node;o.isIdentifier(x)&&(h[x.name]=x)});var m=[];return Object.keys(c).forEach(function(g){l.call(h,g)||m.push(o.variableDeclarator(c[g],null))}),m.length===0?null:o.variableDeclaration("var",m)},PO}var AO={},co={},xet=Gu(JDe),gle;function Ret(){if(gle)return co;gle=1;var e=kv,r=e(Dv),s=xle(),l=xet,u=mp();function o(){r.default.ok(this instanceof o)}function c(I){o.call(this),(0,u.getTypes)().assertLiteral(I),this.returnLoc=I}(0,l.inherits)(c,o),co.FunctionEntry=c;function f(I,P,O){o.call(this);var j=(0,u.getTypes)();j.assertLiteral(I),j.assertLiteral(P),O?j.assertIdentifier(O):O=null,this.breakLoc=I,this.continueLoc=P,this.label=O}(0,l.inherits)(f,o),co.LoopEntry=f;function h(I){o.call(this),(0,u.getTypes)().assertLiteral(I),this.breakLoc=I}(0,l.inherits)(h,o),co.SwitchEntry=h;function m(I,P,O){o.call(this);var j=(0,u.getTypes)();j.assertLiteral(I),P?r.default.ok(P instanceof g):P=null,O?r.default.ok(O instanceof x):O=null,r.default.ok(P||O),this.firstLoc=I,this.catchEntry=P,this.finallyEntry=O}(0,l.inherits)(m,o),co.TryEntry=m;function g(I,P){o.call(this);var O=(0,u.getTypes)();O.assertLiteral(I),O.assertIdentifier(P),this.firstLoc=I,this.paramId=P}(0,l.inherits)(g,o),co.CatchEntry=g;function x(I,P){o.call(this);var O=(0,u.getTypes)();O.assertLiteral(I),O.assertLiteral(P),this.firstLoc=I,this.afterLoc=P}(0,l.inherits)(x,o),co.FinallyEntry=x;function R(I,P){o.call(this);var O=(0,u.getTypes)();O.assertLiteral(I),O.assertIdentifier(P),this.breakLoc=I,this.label=P}(0,l.inherits)(R,o),co.LabeledEntry=R;function w(I){r.default.ok(this instanceof w),r.default.ok(I instanceof s.Emitter),this.emitter=I,this.entryStack=[new c(I.finalLoc)]}var T=w.prototype;return co.LeapManager=w,T.withEntry=function(I,P){r.default.ok(I instanceof o),this.entryStack.push(I);try{P.call(this.emitter)}finally{var O=this.entryStack.pop();r.default.strictEqual(O,I)}},T._findLeapLocation=function(I,P){for(var O=this.entryStack.length-1;O>=0;--O){var j=this.entryStack[O],D=j[I];if(D){if(P){if(j.label&&j.label.name===P.name)return D}else if(!(j instanceof R))return D}}return null},T.getBreakLoc=function(I){return this._findLeapLocation("breakLoc",I)},T.getContinueLoc=function(I){return this._findLeapLocation("continueLoc",I)},co}var Lv={},vle;function Eet(){if(vle)return Lv;vle=1;var e=kv,r=e(Dv),s=mp(),l=new WeakMap;function u(x){return l.has(x)||l.set(x,{}),l.get(x)}var o=Object.prototype.hasOwnProperty;function c(x,R){function w(I){var P=(0,s.getTypes)();P.assertNode(I);var O=!1;function j(L){return O||(Array.isArray(L)?L.some(j):P.isNode(L)&&(r.default.strictEqual(O,!1),O=T(L))),O}var D=P.VISITOR_KEYS[I.type];if(D)for(var k=0;k<D.length;k++){var B=D[k],F=I[B];j(F)}return O}function T(I){(0,s.getTypes)().assertNode(I);var P=u(I);return o.call(P,x)?P[x]:o.call(f,I.type)?P[x]=!1:o.call(R,I.type)?P[x]=!0:P[x]=w(I)}return T.onlyChildren=w,T}var f={FunctionExpression:!0,ArrowFunctionExpression:!0},h={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},m={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var g in m)o.call(m,g)&&(h[g]=m[g]);return Lv.hasSideEffects=c("hasSideEffects",h),Lv.containsLeap=c("containsLeap",m),Lv}var ble;function xle(){if(ble)return AO;ble=1;var e=kv,r=e(Dv),s=c(Ret()),l=c(Eet()),u=c(mp());function o(T){if(typeof WeakMap!="function")return null;var I=new WeakMap,P=new WeakMap;return(o=function(j){return j?P:I})(T)}function c(T,I){if(T&&T.__esModule)return T;if(T===null||typeof T!="object"&&typeof T!="function")return{default:T};var P=o(I);if(P&&P.has(T))return P.get(T);var O={},j=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in T)if(D!=="default"&&Object.prototype.hasOwnProperty.call(T,D)){var k=j?Object.getOwnPropertyDescriptor(T,D):null;k&&(k.get||k.set)?Object.defineProperty(O,D,k):O[D]=T[D]}return O.default=T,P&&P.set(T,O),O}var f=Object.prototype.hasOwnProperty;function h(T){r.default.ok(this instanceof h),u.getTypes().assertIdentifier(T),this.nextTempId=0,this.contextId=T,this.listing=[],this.marked=[!0],this.insertedLocs=new Set,this.finalLoc=this.loc(),this.tryEntries=[],this.leapManager=new s.LeapManager(this)}var m=h.prototype;AO.Emitter=h;var g=Number.MAX_VALUE;m.loc=function(){var T=u.getTypes().numericLiteral(g);return this.insertedLocs.add(T),T},m.getInsertedLocs=function(){return this.insertedLocs},m.getContextId=function(){return u.getTypes().clone(this.contextId)},m.mark=function(T){u.getTypes().assertLiteral(T);var I=this.listing.length;return T.value===g?T.value=I:r.default.strictEqual(T.value,I),this.marked[I]=!0,T},m.emit=function(T){var I=u.getTypes();I.isExpression(T)&&(T=I.expressionStatement(T)),I.assertStatement(T),this.listing.push(T)},m.emitAssign=function(T,I){return this.emit(this.assign(T,I)),T},m.assign=function(T,I){var P=u.getTypes();return P.expressionStatement(P.assignmentExpression("=",P.cloneDeep(T),I))},m.contextProperty=function(T,I){var P=u.getTypes();return P.memberExpression(this.getContextId(),I?P.stringLiteral(T):P.identifier(T),!!I)},m.stop=function(T){T&&this.setReturnValue(T),this.jump(this.finalLoc)},m.setReturnValue=function(T){u.getTypes().assertExpression(T.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(T))},m.clearPendingException=function(T,I){var P=u.getTypes();P.assertLiteral(T);var O=P.callExpression(this.contextProperty("catch",!0),[P.clone(T)]);I?this.emitAssign(I,O):this.emit(O)},m.jump=function(T){this.emitAssign(this.contextProperty("next"),T),this.emit(u.getTypes().breakStatement())},m.jumpIf=function(T,I){var P=u.getTypes();P.assertExpression(T),P.assertLiteral(I),this.emit(P.ifStatement(T,P.blockStatement([this.assign(this.contextProperty("next"),I),P.breakStatement()])))},m.jumpIfNot=function(T,I){var P=u.getTypes();P.assertExpression(T),P.assertLiteral(I);var O;P.isUnaryExpression(T)&&T.operator==="!"?O=T.argument:O=P.unaryExpression("!",T),this.emit(P.ifStatement(O,P.blockStatement([this.assign(this.contextProperty("next"),I),P.breakStatement()])))},m.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},m.getContextFunction=function(T){var I=u.getTypes();return I.functionExpression(T||null,[this.getContextId()],I.blockStatement([this.getDispatchLoop()]),!1,!1)},m.getDispatchLoop=function(){var T=this,I=u.getTypes(),P=[],O,j=!1;return T.listing.forEach(function(D,k){T.marked.hasOwnProperty(k)&&(P.push(I.switchCase(I.numericLiteral(k),O=[])),j=!1),j||(O.push(D),I.isCompletionStatement(D)&&(j=!0))}),this.finalLoc.value=this.listing.length,P.push(I.switchCase(this.finalLoc,[]),I.switchCase(I.stringLiteral("end"),[I.returnStatement(I.callExpression(this.contextProperty("stop"),[]))])),I.whileStatement(I.numericLiteral(1),I.switchStatement(I.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),P))},m.getTryLocsList=function(){if(this.tryEntries.length===0)return null;var T=u.getTypes(),I=0;return T.arrayExpression(this.tryEntries.map(function(P){var O=P.firstLoc.value;r.default.ok(O>=I,"try entries out of order"),I=O;var j=P.catchEntry,D=P.finallyEntry,k=[P.firstLoc,j?j.firstLoc:null];return D&&(k[2]=D.firstLoc,k[3]=D.afterLoc),T.arrayExpression(k.map(function(B){return B&&T.clone(B)}))}))},m.explode=function(T,I){var P=u.getTypes(),O=T.node,j=this;if(P.assertNode(O),P.isDeclaration(O))throw x(O);if(P.isStatement(O))return j.explodeStatement(T);if(P.isExpression(O))return j.explodeExpression(T,I);switch(O.type){case"Program":return T.get("body").map(j.explodeStatement,j);case"VariableDeclarator":throw x(O);case"Property":case"SwitchCase":case"CatchClause":throw new Error(O.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+JSON.stringify(O.type))}};function x(T){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+JSON.stringify(T))}m.explodeStatement=function(T,I){var P=u.getTypes(),O=T.node,j=this,D,k,B;if(P.assertStatement(O),I?P.assertIdentifier(I):I=null,P.isBlockStatement(O)){T.get("body").forEach(function(Ze){j.explodeStatement(Ze)});return}if(!l.containsLeap(O)){j.emit(O);return}switch(O.type){case"ExpressionStatement":j.explodeExpression(T.get("expression"),!0);break;case"LabeledStatement":k=this.loc(),j.leapManager.withEntry(new s.LabeledEntry(k,O.label),function(){j.explodeStatement(T.get("body"),O.label)}),j.mark(k);break;case"WhileStatement":D=this.loc(),k=this.loc(),j.mark(D),j.jumpIfNot(j.explodeExpression(T.get("test")),k),j.leapManager.withEntry(new s.LoopEntry(k,D,I),function(){j.explodeStatement(T.get("body"))}),j.jump(D),j.mark(k);break;case"DoWhileStatement":var F=this.loc(),L=this.loc();k=this.loc(),j.mark(F),j.leapManager.withEntry(new s.LoopEntry(k,L,I),function(){j.explode(T.get("body"))}),j.mark(L),j.jumpIf(j.explodeExpression(T.get("test")),F),j.mark(k);break;case"ForStatement":B=this.loc();var V=this.loc();k=this.loc(),O.init&&j.explode(T.get("init"),!0),j.mark(B),O.test&&j.jumpIfNot(j.explodeExpression(T.get("test")),k),j.leapManager.withEntry(new s.LoopEntry(k,V,I),function(){j.explodeStatement(T.get("body"))}),j.mark(V),O.update&&j.explode(T.get("update"),!0),j.jump(B),j.mark(k);break;case"TypeCastExpression":return j.explodeExpression(T.get("expression"));case"ForInStatement":B=this.loc(),k=this.loc();var H=j.makeTempVar();j.emitAssign(H,P.callExpression(u.runtimeProperty("keys"),[j.explodeExpression(T.get("right"))])),j.mark(B);var K=j.makeTempVar();j.jumpIf(P.memberExpression(P.assignmentExpression("=",K,P.callExpression(P.cloneDeep(H),[])),P.identifier("done"),!1),k),j.emitAssign(O.left,P.memberExpression(P.cloneDeep(K),P.identifier("value"),!1)),j.leapManager.withEntry(new s.LoopEntry(k,B,I),function(){j.explodeStatement(T.get("body"))}),j.jump(B),j.mark(k);break;case"BreakStatement":j.emitAbruptCompletion({type:"break",target:j.leapManager.getBreakLoc(O.label)});break;case"ContinueStatement":j.emitAbruptCompletion({type:"continue",target:j.leapManager.getContinueLoc(O.label)});break;case"SwitchStatement":var G=j.emitAssign(j.makeTempVar(),j.explodeExpression(T.get("discriminant")));k=this.loc();for(var X=this.loc(),ue=X,oe=[],he=O.cases||[],te=he.length-1;te>=0;--te){var ae=he[te];P.assertSwitchCase(ae),ae.test?ue=P.conditionalExpression(P.binaryExpression("===",P.cloneDeep(G),ae.test),oe[te]=this.loc(),ue):oe[te]=X}var J=T.get("discriminant");u.replaceWithOrRemove(J,ue),j.jump(j.explodeExpression(J)),j.leapManager.withEntry(new s.SwitchEntry(k),function(){T.get("cases").forEach(function(Ze){var at=Ze.key;j.mark(oe[at]),Ze.get("consequent").forEach(function(lt){j.explodeStatement(lt)})})}),j.mark(k),X.value===g&&(j.mark(X),r.default.strictEqual(k.value,X.value));break;case"IfStatement":var xe=O.alternate&&this.loc();k=this.loc(),j.jumpIfNot(j.explodeExpression(T.get("test")),xe||k),j.explodeStatement(T.get("consequent")),xe&&(j.jump(k),j.mark(xe),j.explodeStatement(T.get("alternate"))),j.mark(k);break;case"ReturnStatement":j.emitAbruptCompletion({type:"return",value:j.explodeExpression(T.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":k=this.loc();var de=O.handler,$e=de&&this.loc(),Ve=$e&&new s.CatchEntry($e,de.param),Ie=O.finalizer&&this.loc(),ke=Ie&&new s.FinallyEntry(Ie,k),Le=new s.TryEntry(j.getUnmarkedCurrentLoc(),Ve,ke);j.tryEntries.push(Le),j.updateContextPrevLoc(Le.firstLoc),j.leapManager.withEntry(Le,function(){if(j.explodeStatement(T.get("block")),$e){Ie?j.jump(Ie):j.jump(k),j.updateContextPrevLoc(j.mark($e));var Ze=T.get("handler.body"),at=j.makeTempVar();j.clearPendingException(Le.firstLoc,at),Ze.traverse(R,{getSafeParam:function(){return P.cloneDeep(at)},catchParamName:de.param.name}),j.leapManager.withEntry(Ve,function(){j.explodeStatement(Ze)})}Ie&&(j.updateContextPrevLoc(j.mark(Ie)),j.leapManager.withEntry(ke,function(){j.explodeStatement(T.get("finalizer"))}),j.emit(P.returnStatement(P.callExpression(j.contextProperty("finish"),[ke.firstLoc]))))}),j.mark(k);break;case"ThrowStatement":j.emit(P.throwStatement(j.explodeExpression(T.get("argument"))));break;case"ClassDeclaration":j.emit(j.explodeClass(T));break;default:throw new Error("unknown Statement of type "+JSON.stringify(O.type))}};var R={Identifier:function(I,P){I.node.name===P.catchParamName&&u.isReference(I)&&u.replaceWithOrRemove(I,P.getSafeParam())},Scope:function(I,P){I.scope.hasOwnBinding(P.catchParamName)&&I.skip()}};m.emitAbruptCompletion=function(T){w(T)||r.default.ok(!1,"invalid completion record: "+JSON.stringify(T)),r.default.notStrictEqual(T.type,"normal","normal completions are not abrupt");var I=u.getTypes(),P=[I.stringLiteral(T.type)];T.type==="break"||T.type==="continue"?(I.assertLiteral(T.target),P[1]=this.insertedLocs.has(T.target)?T.target:I.cloneDeep(T.target)):(T.type==="return"||T.type==="throw")&&T.value&&(I.assertExpression(T.value),P[1]=this.insertedLocs.has(T.value)?T.value:I.cloneDeep(T.value)),this.emit(I.returnStatement(I.callExpression(this.contextProperty("abrupt"),P)))};function w(T){var I=T.type;return I==="normal"?!f.call(T,"target"):I==="break"||I==="continue"?!f.call(T,"value")&&u.getTypes().isLiteral(T.target):I==="return"||I==="throw"?f.call(T,"value")&&!f.call(T,"target"):!1}return m.getUnmarkedCurrentLoc=function(){return u.getTypes().numericLiteral(this.listing.length)},m.updateContextPrevLoc=function(T){var I=u.getTypes();T?(I.assertLiteral(T),T.value===g?T.value=this.listing.length:r.default.strictEqual(T.value,this.listing.length)):T=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),T)},m.explodeViaTempVar=function(T,I,P,O){r.default.ok(!O||!T,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var j=u.getTypes(),D=this.explodeExpression(I,O);return O||(T||P&&!j.isLiteral(D))&&(D=this.emitAssign(T||this.makeTempVar(),D)),D},m.explodeExpression=function(T,I){var P=u.getTypes(),O=T.node;if(O)P.assertExpression(O);else return O;var j=this,D,k;function B(Le){return P.assertExpression(Le),I&&j.emit(Le),Le}if(!l.containsLeap(O))return B(O);var F=l.containsLeap.onlyChildren(O);switch(O.type){case"MemberExpression":return B(P.memberExpression(j.explodeExpression(T.get("object")),O.computed?j.explodeViaTempVar(null,T.get("property"),F):O.property,O.computed));case"CallExpression":var L=T.get("callee"),V=T.get("arguments"),H,K,G=V.some(function(Le){return l.containsLeap(Le.node)}),X=null;if(P.isMemberExpression(L.node))if(G){var ue=j.explodeViaTempVar(j.makeTempVar(),L.get("object"),F),oe=L.node.computed?j.explodeViaTempVar(null,L.get("property"),F):L.node.property;X=ue,H=P.memberExpression(P.memberExpression(P.cloneDeep(ue),oe,L.node.computed),P.identifier("call"),!1)}else H=j.explodeExpression(L);else H=j.explodeViaTempVar(null,L,F),P.isMemberExpression(H)&&(H=P.sequenceExpression([P.numericLiteral(0),P.cloneDeep(H)]));return G?(K=V.map(function(Le){return j.explodeViaTempVar(null,Le,F)}),X&&K.unshift(X),K=K.map(function(Le){return P.cloneDeep(Le)})):K=T.node.arguments,B(P.callExpression(H,K));case"NewExpression":return B(P.newExpression(j.explodeViaTempVar(null,T.get("callee"),F),T.get("arguments").map(function(Le){return j.explodeViaTempVar(null,Le,F)})));case"ObjectExpression":return B(P.objectExpression(T.get("properties").map(function(Le){return Le.isObjectProperty()?P.objectProperty(Le.node.key,j.explodeViaTempVar(null,Le.get("value"),F),Le.node.computed):Le.node})));case"ArrayExpression":return B(P.arrayExpression(T.get("elements").map(function(Le){return Le.node?Le.isSpreadElement()?P.spreadElement(j.explodeViaTempVar(null,Le.get("argument"),F)):j.explodeViaTempVar(null,Le,F):null})));case"SequenceExpression":var he=O.expressions.length-1;return T.get("expressions").forEach(function(Le){Le.key===he?D=j.explodeExpression(Le,I):j.explodeExpression(Le,!0)}),D;case"LogicalExpression":k=this.loc(),I||(D=j.makeTempVar());var te=j.explodeViaTempVar(D,T.get("left"),F);return O.operator==="&&"?j.jumpIfNot(te,k):(r.default.strictEqual(O.operator,"||"),j.jumpIf(te,k)),j.explodeViaTempVar(D,T.get("right"),F,I),j.mark(k),D;case"ConditionalExpression":var ae=this.loc();k=this.loc();var J=j.explodeExpression(T.get("test"));return j.jumpIfNot(J,ae),I||(D=j.makeTempVar()),j.explodeViaTempVar(D,T.get("consequent"),F,I),j.jump(k),j.mark(ae),j.explodeViaTempVar(D,T.get("alternate"),F,I),j.mark(k),D;case"UnaryExpression":return B(P.unaryExpression(O.operator,j.explodeExpression(T.get("argument")),!!O.prefix));case"BinaryExpression":return B(P.binaryExpression(O.operator,j.explodeViaTempVar(null,T.get("left"),F),j.explodeViaTempVar(null,T.get("right"),F)));case"AssignmentExpression":if(O.operator==="=")return B(P.assignmentExpression(O.operator,j.explodeExpression(T.get("left")),j.explodeExpression(T.get("right"))));var xe=j.explodeExpression(T.get("left")),de=j.emitAssign(j.makeTempVar(),xe);return B(P.assignmentExpression("=",P.cloneDeep(xe),P.assignmentExpression(O.operator,P.cloneDeep(de),j.explodeExpression(T.get("right")))));case"UpdateExpression":return B(P.updateExpression(O.operator,j.explodeExpression(T.get("argument")),O.prefix));case"YieldExpression":k=this.loc();var $e=O.argument&&j.explodeExpression(T.get("argument"));if($e&&O.delegate){var Ve=j.makeTempVar(),Ie=P.returnStatement(P.callExpression(j.contextProperty("delegateYield"),[$e,P.stringLiteral(Ve.property.name),k]));return Ie.loc=O.loc,j.emit(Ie),j.mark(k),Ve}j.emitAssign(j.contextProperty("next"),k);var ke=P.returnStatement(P.cloneDeep($e)||null);return ke.loc=O.loc,j.emit(ke),j.mark(k),j.contextProperty("sent");case"ClassExpression":return B(j.explodeClass(T));default:throw new Error("unknown Expression of type "+JSON.stringify(O.type))}},m.explodeClass=function(T){var I=[];T.node.superClass&&I.push(T.get("superClass")),T.get("body.body").forEach(function(k){k.node.computed&&I.push(k.get("key"))});for(var P=I.some(function(k){return l.containsLeap(k)}),O=0;O<I.length;O++){var j=I[O],D=O===I.length-1;D?j.replaceWith(this.explodeExpression(j)):j.replaceWith(this.explodeViaTempVar(null,j,P))}return T.node},AO}var IO={},Rle;function Tet(){return Rle||(Rle=1,function(e){e.__esModule=!0,e.default=u;var r=l(mp());function s(o){if(typeof WeakMap!="function")return null;var c=new WeakMap,f=new WeakMap;return(s=function(m){return m?f:c})(o)}function l(o,c){if(o&&o.__esModule)return o;if(o===null||typeof o!="object"&&typeof o!="function")return{default:o};var f=s(c);if(f&&f.has(o))return f.get(o);var h={},m=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in o)if(g!=="default"&&Object.prototype.hasOwnProperty.call(o,g)){var x=m?Object.getOwnPropertyDescriptor(o,g):null;x&&(x.get||x.set)?Object.defineProperty(h,g,x):h[g]=o[g]}return h.default=o,f&&f.set(o,h),h}function u(o){var c=r.getTypes();if(!o.node||!c.isFunction(o.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!c.isObjectMethod(o.node)||!o.node.generator)return o;var f=o.node.params.map(function(m){return c.cloneDeep(m)}),h=c.functionExpression(null,f,c.cloneDeep(o.node.body),o.node.generator,o.node.async);return r.replaceWithOrRemove(o,c.objectProperty(c.cloneDeep(o.node.key),h,o.node.computed,!1)),o.get("value")}}(IO)),IO}var Ele=kv,CO=Ele(Dv),wet=bet(),Pet=xle(),Aet=Ele(Tet()),Fs=Iet(mp());function Sle(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,s=new WeakMap;return(Sle=function(u){return u?s:r})(e)}function Iet(e,r){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var s=Sle(r);if(s&&s.has(e))return s.get(e);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&Object.prototype.hasOwnProperty.call(e,o)){var c=u?Object.getOwnPropertyDescriptor(e,o):null;c&&(c.get||c.set)?Object.defineProperty(l,o,c):l[o]=e[o]}return l.default=e,s&&s.set(e,l),l}fle.getVisitor=function(e){var r=e.types;return{Method:function(l,u){var o=l.node;if(Tle(o,u)){var c=r.functionExpression(null,[],r.cloneNode(o.body,!1),o.generator,o.async);l.get("body").set("body",[r.returnStatement(r.callExpression(c,[]))]),o.async=!1,o.generator=!1,l.get("body.body.0.argument.callee").unwrapFunctionEnvironment()}},Function:{exit:Fs.wrapWithTypes(r,function(s,l){var u=s.node;if(Tle(u,l)){s=(0,Aet.default)(s),u=s.node;var o=s.scope.generateUidIdentifier("context"),c=s.scope.generateUidIdentifier("args");s.ensureBlock();var f=s.get("body");u.async&&f.traverse(ket),f.traverse(Net,{context:o});var h=[],m=[];f.get("body").forEach(function(F){var L=F.node;r.isExpressionStatement(L)&&r.isStringLiteral(L.expression)||L&&L._blockHoist!=null?h.push(L):m.push(L)}),h.length>0&&(f.node.body=m);var g=Cet(s);r.assertIdentifier(u.id);var x=r.identifier(u.id.name+"$"),R=(0,wet.hoist)(s),w={usesThis:!1,usesArguments:!1,getArgsId:function(){return r.clone(c)}};s.traverse(_et,w),w.usesArguments&&(R=R||r.variableDeclaration("var",[]),R.declarations.push(r.variableDeclarator(r.clone(c),r.identifier("arguments"))));var T=new Pet.Emitter(o);T.explode(s.get("body")),R&&R.declarations.length>0&&h.push(R);var I=[T.getContextFunction(x)],P=T.getTryLocsList();if(u.generator?I.push(g):(w.usesThis||P||u.async)&&I.push(r.nullLiteral()),w.usesThis?I.push(r.thisExpression()):(P||u.async)&&I.push(r.nullLiteral()),P?I.push(P):u.async&&I.push(r.nullLiteral()),u.async){var O=s.scope;do O.hasOwnBinding("Promise")&&O.rename("Promise");while(O=O.parent);I.push(r.identifier("Promise"))}var j=r.callExpression(Fs.runtimeProperty(u.async?"async":"wrap"),I);h.push(r.returnStatement(j)),u.body=r.blockStatement(h),s.get("body.body").forEach(function(F){return F.scope.registerDeclaration(F)});var D=f.node.directives;D&&(u.body.directives=D);var k=u.generator;k&&(u.generator=!1),u.async&&(u.async=!1),k&&r.isExpression(u)&&(Fs.replaceWithOrRemove(s,r.callExpression(Fs.runtimeProperty("mark"),[u])),s.addComment("leading","#__PURE__"));var B=T.getInsertedLocs();s.traverse({NumericLiteral:function(L){B.has(L.node)&&L.replaceWith(r.numericLiteral(L.node.value))}}),s.requeue()}})}}};function Tle(e,r){return e.generator?e.async?r.opts.asyncGenerators!==!1:r.opts.generators!==!1:e.async?r.opts.async!==!1:!1}function Cet(e){var r=Fs.getTypes(),s=e.node;return r.assertFunction(s),s.id||(s.id=e.scope.parent.generateUidIdentifier("callee")),s.generator&&r.isFunctionDeclaration(s)?Oet(e):r.clone(s.id)}var jO=new WeakMap;function jet(e){return jO.has(e)||jO.set(e,{}),jO.get(e)}function Oet(e){var r=Fs.getTypes(),s=e.node;r.assertIdentifier(s.id);var l=e.findParent(function(g){return g.isProgram()||g.isBlockStatement()});if(!l)return s.id;var u=l.node;CO.default.ok(Array.isArray(u.body));var o=jet(u);o.decl||(o.decl=r.variableDeclaration("var",[]),l.unshiftContainer("body",o.decl),o.declPath=l.get("body.0")),CO.default.strictEqual(o.declPath.node,o.decl);var c=l.scope.generateUidIdentifier("marked"),f=r.callExpression(Fs.runtimeProperty("mark"),[r.clone(s.id)]),h=o.decl.declarations.push(r.variableDeclarator(c,f))-1,m=o.declPath.get("declarations."+h+".init");return CO.default.strictEqual(m.node,f),m.addComment("leading","#__PURE__"),r.clone(c)}var _et={"FunctionExpression|FunctionDeclaration|Method":function(r){r.skip()},Identifier:function(r,s){r.node.name==="arguments"&&Fs.isReference(r)&&(Fs.replaceWithOrRemove(r,s.getArgsId()),s.usesArguments=!0)},ThisExpression:function(r,s){s.usesThis=!0}},Net={MetaProperty:function(r){var s=r.node;if(s.meta.name==="function"&&s.property.name==="sent"){var l=Fs.getTypes();Fs.replaceWithOrRemove(r,l.memberExpression(l.clone(this.context),l.identifier("_sent")))}}},ket={Function:function(r){r.skip()},AwaitExpression:function(r){var s=Fs.getTypes(),l=r.node.argument;Fs.replaceWithOrRemove(r,s.yieldExpression(s.callExpression(Fs.runtimeProperty("awrap"),[l]),!1))}};(function(e){e.__esModule=!0,e.default=s;var r=fle;function s(l){var u={visitor:(0,r.getVisitor)(l)},o=l&&l.version;return o&&parseInt(o,10)>=7&&(u.name="regenerator-transform"),u}})(ple);var OO=function(e){var r=e.types,s=e.assertVersion;return s("*"),{name:"transform-regenerator",inherits:ple.default,visitor:{CallExpression:function(u){{var o;if(!((o=this.availableHelper)!=null&&o.call(this,"regeneratorRuntime")))return}var c=u.get("callee");if(c.isMemberExpression()){var f=c.get("object");if(f.isIdentifier({name:"regeneratorRuntime"})){var h=this.addHelper("regeneratorRuntime");if(r.isArrowFunctionExpression(h)){f.replaceWith(h.body);return}f.replaceWith(r.callExpression(h,[]))}}}}}},wle=function(e){return e.assertVersion("*"),{name:"transform-reserved-words",visitor:{"BindingIdentifier|ReferencedIdentifier":function(s){i1(s.node.name)||s.scope.rename(s.node.name)}}}};function Det(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var _O=(Det(er.env.BABEL_8_BREAKING),gi());function Let(e,r){return r?(_O.valid(r)&&(r="^"+r),!_O.intersects("<"+e,r)&&!_O.intersects(">=8.0.0",r)):!0}function Met(e,r,s){if(s===!1)return e;Ple()}function Ple(){throw new Error("The 'absoluteRuntime' option is not supported when using @babel/standalone.")}var Ale={},em={},Bet={"es6.array.copy-within":{chrome:"45",opera:"32",edge:"12",firefox:"32",safari:"9",node:"4",deno:"1",ios:"9",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.every":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.fill":{chrome:"45",opera:"32",edge:"12",firefox:"31",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.filter":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.find":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.find-index":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es7.array.flat-map":{chrome:"69",opera:"56",edge:"79",firefox:"62",safari:"12",node:"11",deno:"1",ios:"12",samsung:"10",rhino:"1.7.15",opera_mobile:"48",electron:"4.0"},"es6.array.for-each":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.from":{chrome:"51",opera:"38",edge:"15",firefox:"36",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es7.array.includes":{chrome:"47",opera:"34",edge:"14",firefox:"102",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"34",electron:"0.36"},"es6.array.index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.is-array":{chrome:"5",opera:"10.50",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.iterator":{chrome:"66",opera:"53",edge:"12",firefox:"60",safari:"9",node:"10",deno:"1",ios:"9",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es6.array.last-index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.map":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.of":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"9",node:"4",deno:"1",ios:"9",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.reduce":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.reduce-right":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.slice":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.some":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.sort":{chrome:"63",opera:"50",edge:"12",firefox:"5",safari:"12",node:"10",deno:"1",ie:"9",ios:"12",samsung:"8",rhino:"1.7.13",opera_mobile:"46",electron:"3.0"},"es6.array.species":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es6.date.now":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.date.to-iso-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.date.to-json":{chrome:"5",opera:"12.10",edge:"12",firefox:"4",safari:"10",node:"0.4",deno:"1",ie:"9",android:"4",ios:"10",samsung:"1",rhino:"1.7.13",opera_mobile:"12.1",electron:"0.20"},"es6.date.to-primitive":{chrome:"47",opera:"34",edge:"15",firefox:"44",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"34",electron:"0.36"},"es6.date.to-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"10",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.function.bind":{chrome:"7",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.function.has-instance":{chrome:"51",opera:"38",edge:"15",firefox:"50",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.function.name":{chrome:"5",opera:"10.50",edge:"14",firefox:"2",safari:"4",node:"0.4",deno:"1",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.math.acosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.asinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.atanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.cbrt":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.clz32":{chrome:"38",opera:"25",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.cosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.expm1":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.fround":{chrome:"38",opera:"25",edge:"12",firefox:"26",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.hypot":{chrome:"38",opera:"25",edge:"12",firefox:"27",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.imul":{chrome:"30",opera:"17",edge:"12",firefox:"23",safari:"7",node:"0.12",deno:"1",android:"4.4",ios:"7",samsung:"2",rhino:"1.7.13",opera_mobile:"18",electron:"0.20"},"es6.math.log1p":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.log10":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.log2":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.sign":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.sinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.tanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.trunc":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.number.constructor":{chrome:"41",opera:"28",edge:"12",firefox:"36",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.number.epsilon":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.number.is-finite":{chrome:"19",opera:"15",edge:"12",firefox:"16",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.number.is-integer":{chrome:"34",opera:"21",edge:"12",firefox:"16",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.is-nan":{chrome:"19",opera:"15",edge:"12",firefox:"15",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.number.is-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"32",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.max-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.min-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.parse-float":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.number.parse-int":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.object.create":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es7.object.define-getter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es7.object.define-setter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.object.define-property":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.object.define-properties":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es7.object.entries":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.4"},"es6.object.freeze":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.get-own-property-descriptor":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es7.object.get-own-property-descriptors":{chrome:"54",opera:"41",edge:"15",firefox:"50",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",opera_mobile:"41",electron:"1.4"},"es6.object.get-own-property-names":{chrome:"40",opera:"27",edge:"12",firefox:"33",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"27",electron:"0.21"},"es6.object.get-prototype-of":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es7.object.lookup-getter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es7.object.lookup-setter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.object.prevent-extensions":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.to-string":{chrome:"57",opera:"44",edge:"15",firefox:"51",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",opera_mobile:"43",electron:"1.7"},"es6.object.is":{chrome:"19",opera:"15",edge:"12",firefox:"22",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.object.is-frozen":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.is-sealed":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.is-extensible":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.keys":{chrome:"40",opera:"27",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"27",electron:"0.21"},"es6.object.seal":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.set-prototype-of":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ie:"11",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es7.object.values":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.4"},"es6.promise":{chrome:"51",opera:"38",edge:"14",firefox:"45",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es7.promise.finally":{chrome:"63",opera:"50",edge:"18",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"8",rhino:"1.7.15",opera_mobile:"46",electron:"3.0"},"es6.reflect.apply":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.construct":{chrome:"49",opera:"36",edge:"13",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.define-property":{chrome:"49",opera:"36",edge:"13",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.delete-property":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.get":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.get-own-property-descriptor":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.get-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.has":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.is-extensible":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.own-keys":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.prevent-extensions":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.set":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.set-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.regexp.constructor":{chrome:"50",opera:"37",edge:"79",firefox:"40",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.flags":{chrome:"49",opera:"36",edge:"79",firefox:"37",safari:"9",node:"6",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"36",electron:"0.37"},"es6.regexp.match":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"37",electron:"1.1"},"es6.regexp.replace":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.split":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.search":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"37",electron:"1.1"},"es6.regexp.to-string":{chrome:"50",opera:"37",edge:"79",firefox:"39",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"37",electron:"1.1"},"es6.set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.symbol":{chrome:"51",opera:"38",edge:"79",firefox:"51",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es7.symbol.async-iterator":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.string.anchor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.big":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.blink":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.bold":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.code-point-at":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.ends-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.fixed":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.fontcolor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.fontsize":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.from-code-point":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.includes":{chrome:"41",opera:"28",edge:"12",firefox:"40",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.italics":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.iterator":{chrome:"38",opera:"25",edge:"12",firefox:"36",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.string.link":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es7.string.pad-start":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",rhino:"1.7.13",opera_mobile:"43",electron:"1.7"},"es7.string.pad-end":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",rhino:"1.7.13",opera_mobile:"43",electron:"1.7"},"es6.string.raw":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.14",opera_mobile:"28",electron:"0.21"},"es6.string.repeat":{chrome:"41",opera:"28",edge:"12",firefox:"24",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.small":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.starts-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.strike":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.sub":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.sup":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.trim":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es7.string.trim-left":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es7.string.trim-right":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es6.typed.array-buffer":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.data-view":{chrome:"5",opera:"12",edge:"12",firefox:"15",safari:"5.1",node:"0.4",deno:"1",ie:"10",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.typed.int8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint8-clamped-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.int16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.int32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.float32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.float64-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.weak-map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es6.weak-set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"}},NO,Ile;function tm(){return Ile||(Ile=1,NO=Bet),NO}var Vi={},Cle;function Fet(){if(Cle)return Vi;Cle=1,Vi.__esModule=!0,Vi.StaticProperties=Vi.InstanceProperties=Vi.CommonIterators=Vi.BuiltIns=void 0;var e=r(tm());function r(R){return R&&R.__esModule?R:{default:R}}var s=function(w,T,I,P){return I===void 0&&(I=[]),{name:w,pure:T,global:I,meta:P}},l=function(w,T,I){return I===void 0&&(I=null),s(T[0],w,T,{minRuntimeVersion:I})},u=function(w){return s(w[0],null,w)},o=function(w,T){return s(T,w,[])},c=["es6.object.to-string","es6.array.iterator","web.dom.iterable"],f=["es6.string.iterator"].concat(c);Vi.CommonIterators=f;var h=["es6.object.to-string","es6.promise"],m={DataView:u(["es6.typed.data-view"]),Float32Array:u(["es6.typed.float32-array"]),Float64Array:u(["es6.typed.float64-array"]),Int8Array:u(["es6.typed.int8-array"]),Int16Array:u(["es6.typed.int16-array"]),Int32Array:u(["es6.typed.int32-array"]),Map:l("map",["es6.map"].concat(fe(f))),Number:u(["es6.number.constructor"]),Promise:l("promise",h),RegExp:u(["es6.regexp.constructor"]),Set:l("set",["es6.set"].concat(fe(f))),Symbol:l("symbol/index",["es6.symbol"]),Uint8Array:u(["es6.typed.uint8-array"]),Uint8ClampedArray:u(["es6.typed.uint8-clamped-array"]),Uint16Array:u(["es6.typed.uint16-array"]),Uint32Array:u(["es6.typed.uint32-array"]),WeakMap:l("weak-map",["es6.weak-map"].concat(fe(f))),WeakSet:l("weak-set",["es6.weak-set"].concat(fe(f))),setImmediate:o("set-immediate","web.immediate"),clearImmediate:o("clear-immediate","web.immediate"),parseFloat:o("parse-float","es6.parse-float"),parseInt:o("parse-int","es6.parse-int")};Vi.BuiltIns=m;var g={__defineGetter__:u(["es7.object.define-getter"]),__defineSetter__:u(["es7.object.define-setter"]),__lookupGetter__:u(["es7.object.lookup-getter"]),__lookupSetter__:u(["es7.object.lookup-setter"]),anchor:u(["es6.string.anchor"]),big:u(["es6.string.big"]),bind:u(["es6.function.bind"]),blink:u(["es6.string.blink"]),bold:u(["es6.string.bold"]),codePointAt:u(["es6.string.code-point-at"]),copyWithin:u(["es6.array.copy-within"]),endsWith:u(["es6.string.ends-with"]),entries:u(c),every:u(["es6.array.every"]),fill:u(["es6.array.fill"]),filter:u(["es6.array.filter"]),finally:u(["es7.promise.finally"].concat(h)),find:u(["es6.array.find"]),findIndex:u(["es6.array.find-index"]),fixed:u(["es6.string.fixed"]),flags:u(["es6.regexp.flags"]),flatMap:u(["es7.array.flat-map"]),fontcolor:u(["es6.string.fontcolor"]),fontsize:u(["es6.string.fontsize"]),forEach:u(["es6.array.for-each"]),includes:u(["es6.string.includes","es7.array.includes"]),indexOf:u(["es6.array.index-of"]),italics:u(["es6.string.italics"]),keys:u(c),lastIndexOf:u(["es6.array.last-index-of"]),link:u(["es6.string.link"]),map:u(["es6.array.map"]),match:u(["es6.regexp.match"]),name:u(["es6.function.name"]),padStart:u(["es7.string.pad-start"]),padEnd:u(["es7.string.pad-end"]),reduce:u(["es6.array.reduce"]),reduceRight:u(["es6.array.reduce-right"]),repeat:u(["es6.string.repeat"]),replace:u(["es6.regexp.replace"]),search:u(["es6.regexp.search"]),small:u(["es6.string.small"]),some:u(["es6.array.some"]),sort:u(["es6.array.sort"]),split:u(["es6.regexp.split"]),startsWith:u(["es6.string.starts-with"]),strike:u(["es6.string.strike"]),sub:u(["es6.string.sub"]),sup:u(["es6.string.sup"]),toISOString:u(["es6.date.to-iso-string"]),toJSON:u(["es6.date.to-json"]),toString:u(["es6.object.to-string","es6.date.to-string","es6.regexp.to-string"]),trim:u(["es6.string.trim"]),trimEnd:u(["es7.string.trim-right"]),trimLeft:u(["es7.string.trim-left"]),trimRight:u(["es7.string.trim-right"]),trimStart:u(["es7.string.trim-left"]),values:u(c)};Vi.InstanceProperties=g,"es6.array.slice"in e.default&&(g.slice=u(["es6.array.slice"]));var x={Array:{from:l("array/from",["es6.symbol","es6.array.from"].concat(fe(f))),isArray:l("array/is-array",["es6.array.is-array"]),of:l("array/of",["es6.array.of"])},Date:{now:l("date/now",["es6.date.now"])},JSON:{stringify:o("json/stringify","es6.symbol")},Math:{acosh:l("math/acosh",["es6.math.acosh"],"7.0.1"),asinh:l("math/asinh",["es6.math.asinh"],"7.0.1"),atanh:l("math/atanh",["es6.math.atanh"],"7.0.1"),cbrt:l("math/cbrt",["es6.math.cbrt"],"7.0.1"),clz32:l("math/clz32",["es6.math.clz32"],"7.0.1"),cosh:l("math/cosh",["es6.math.cosh"],"7.0.1"),expm1:l("math/expm1",["es6.math.expm1"],"7.0.1"),fround:l("math/fround",["es6.math.fround"],"7.0.1"),hypot:l("math/hypot",["es6.math.hypot"],"7.0.1"),imul:l("math/imul",["es6.math.imul"],"7.0.1"),log1p:l("math/log1p",["es6.math.log1p"],"7.0.1"),log10:l("math/log10",["es6.math.log10"],"7.0.1"),log2:l("math/log2",["es6.math.log2"],"7.0.1"),sign:l("math/sign",["es6.math.sign"],"7.0.1"),sinh:l("math/sinh",["es6.math.sinh"],"7.0.1"),tanh:l("math/tanh",["es6.math.tanh"],"7.0.1"),trunc:l("math/trunc",["es6.math.trunc"],"7.0.1")},Number:{EPSILON:l("number/epsilon",["es6.number.epsilon"]),MIN_SAFE_INTEGER:l("number/min-safe-integer",["es6.number.min-safe-integer"]),MAX_SAFE_INTEGER:l("number/max-safe-integer",["es6.number.max-safe-integer"]),isFinite:l("number/is-finite",["es6.number.is-finite"]),isInteger:l("number/is-integer",["es6.number.is-integer"]),isSafeInteger:l("number/is-safe-integer",["es6.number.is-safe-integer"]),isNaN:l("number/is-nan",["es6.number.is-nan"]),parseFloat:l("number/parse-float",["es6.number.parse-float"]),parseInt:l("number/parse-int",["es6.number.parse-int"])},Object:{assign:l("object/assign",["es6.object.assign"]),create:l("object/create",["es6.object.create"]),defineProperties:l("object/define-properties",["es6.object.define-properties"]),defineProperty:l("object/define-property",["es6.object.define-property"]),entries:l("object/entries",["es7.object.entries"]),freeze:l("object/freeze",["es6.object.freeze"]),getOwnPropertyDescriptor:l("object/get-own-property-descriptor",["es6.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:l("object/get-own-property-descriptors",["es7.object.get-own-property-descriptors"]),getOwnPropertyNames:l("object/get-own-property-names",["es6.object.get-own-property-names"]),getOwnPropertySymbols:l("object/get-own-property-symbols",["es6.symbol"]),getPrototypeOf:l("object/get-prototype-of",["es6.object.get-prototype-of"]),is:l("object/is",["es6.object.is"]),isExtensible:l("object/is-extensible",["es6.object.is-extensible"]),isFrozen:l("object/is-frozen",["es6.object.is-frozen"]),isSealed:l("object/is-sealed",["es6.object.is-sealed"]),keys:l("object/keys",["es6.object.keys"]),preventExtensions:l("object/prevent-extensions",["es6.object.prevent-extensions"]),seal:l("object/seal",["es6.object.seal"]),setPrototypeOf:l("object/set-prototype-of",["es6.object.set-prototype-of"]),values:l("object/values",["es7.object.values"])},Promise:{all:u(f),race:u(f)},Reflect:{apply:l("reflect/apply",["es6.reflect.apply"]),construct:l("reflect/construct",["es6.reflect.construct"]),defineProperty:l("reflect/define-property",["es6.reflect.define-property"]),deleteProperty:l("reflect/delete-property",["es6.reflect.delete-property"]),get:l("reflect/get",["es6.reflect.get"]),getOwnPropertyDescriptor:l("reflect/get-own-property-descriptor",["es6.reflect.get-own-property-descriptor"]),getPrototypeOf:l("reflect/get-prototype-of",["es6.reflect.get-prototype-of"]),has:l("reflect/has",["es6.reflect.has"]),isExtensible:l("reflect/is-extensible",["es6.reflect.is-extensible"]),ownKeys:l("reflect/own-keys",["es6.reflect.own-keys"]),preventExtensions:l("reflect/prevent-extensions",["es6.reflect.prevent-extensions"]),set:l("reflect/set",["es6.reflect.set"]),setPrototypeOf:l("reflect/set-prototype-of",["es6.reflect.set-prototype-of"])},String:{at:o("string/at","es7.string.at"),fromCodePoint:l("string/from-code-point",["es6.string.from-code-point"]),raw:l("string/raw",["es6.string.raw"])},Symbol:{asyncIterator:u(["es6.symbol","es7.symbol.async-iterator"]),for:o("symbol/for","es6.symbol"),hasInstance:o("symbol/has-instance","es6.symbol"),isConcatSpreadable:o("symbol/is-concat-spreadable","es6.symbol"),iterator:s("es6.symbol","symbol/iterator",f),keyFor:o("symbol/key-for","es6.symbol"),match:l("symbol/match",["es6.regexp.match"]),replace:o("symbol/replace","es6.symbol"),search:o("symbol/search","es6.symbol"),species:o("symbol/species","es6.symbol"),split:o("symbol/split","es6.symbol"),toPrimitive:o("symbol/to-primitive","es6.symbol"),toStringTag:o("symbol/to-string-tag","es6.symbol"),unscopables:o("symbol/unscopables","es6.symbol")}};return Vi.StaticProperties=x,Vi}var Mv={},jle;function $et(){if(jle)return Mv;jle=1,Mv.__esModule=!0,Mv.default=l;function e(){return e=Object.assign?Object.assign.bind():function(u){for(var o=1;o<arguments.length;o++){var c=arguments[o];for(var f in c)Object.prototype.hasOwnProperty.call(c,f)&&(u[f]=c[f])}return u},e.apply(this,arguments)}var r={"web.timers":{},"web.immediate":{},"web.dom.iterable":{}},s={"es6.parse-float":{},"es6.parse-int":{},"es7.string.at":{}};function l(u,o,c){var f=Object.keys(u),h=!f.length,m=f.some(function(g){return g!=="node"});return e({},c,o==="usage-pure"?s:null,h||m?r:null)}return Mv}var Bv={},Fv={exports:{}},Ole;function qet(){return Ole||(Ole=1,function(e,r){r=e.exports=L;var s;typeof er=="object"&&er.env&&er.env.NODE_DEBUG&&/\bsemver\b/i.test(er.env.NODE_DEBUG)?s=function(){var $=Array.prototype.slice.call(arguments,0);$.unshift("SEMVER"),console.log.apply(console,$)}:s=function(){},r.SEMVER_SPEC_VERSION="2.0.0";var l=256,u=Number.MAX_SAFE_INTEGER||9007199254740991,o=16,c=l-6,f=r.re=[],h=r.safeRe=[],m=r.src=[],g=r.tokens={},x=0;function R(N){g[N]=x++}var w="[a-zA-Z0-9-]",T=[["\\s",1],["\\d",l],[w,c]];function I(N){for(var $=0;$<T.length;$++){var U=T[$][0],pe=T[$][1];N=N.split(U+"*").join(U+"{0,"+pe+"}").split(U+"+").join(U+"{1,"+pe+"}")}return N}R("NUMERICIDENTIFIER"),m[g.NUMERICIDENTIFIER]="0|[1-9]\\d*",R("NUMERICIDENTIFIERLOOSE"),m[g.NUMERICIDENTIFIERLOOSE]="\\d+",R("NONNUMERICIDENTIFIER"),m[g.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+w+"*",R("MAINVERSION"),m[g.MAINVERSION]="("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")",R("MAINVERSIONLOOSE"),m[g.MAINVERSIONLOOSE]="("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")",R("PRERELEASEIDENTIFIER"),m[g.PRERELEASEIDENTIFIER]="(?:"+m[g.NUMERICIDENTIFIER]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASEIDENTIFIERLOOSE"),m[g.PRERELEASEIDENTIFIERLOOSE]="(?:"+m[g.NUMERICIDENTIFIERLOOSE]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASE"),m[g.PRERELEASE]="(?:-("+m[g.PRERELEASEIDENTIFIER]+"(?:\\."+m[g.PRERELEASEIDENTIFIER]+")*))",R("PRERELEASELOOSE"),m[g.PRERELEASELOOSE]="(?:-?("+m[g.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+m[g.PRERELEASEIDENTIFIERLOOSE]+")*))",R("BUILDIDENTIFIER"),m[g.BUILDIDENTIFIER]=w+"+",R("BUILD"),m[g.BUILD]="(?:\\+("+m[g.BUILDIDENTIFIER]+"(?:\\."+m[g.BUILDIDENTIFIER]+")*))",R("FULL"),R("FULLPLAIN"),m[g.FULLPLAIN]="v?"+m[g.MAINVERSION]+m[g.PRERELEASE]+"?"+m[g.BUILD]+"?",m[g.FULL]="^"+m[g.FULLPLAIN]+"$",R("LOOSEPLAIN"),m[g.LOOSEPLAIN]="[v=\\s]*"+m[g.MAINVERSIONLOOSE]+m[g.PRERELEASELOOSE]+"?"+m[g.BUILD]+"?",R("LOOSE"),m[g.LOOSE]="^"+m[g.LOOSEPLAIN]+"$",R("GTLT"),m[g.GTLT]="((?:<|>)?=?)",R("XRANGEIDENTIFIERLOOSE"),m[g.XRANGEIDENTIFIERLOOSE]=m[g.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",R("XRANGEIDENTIFIER"),m[g.XRANGEIDENTIFIER]=m[g.NUMERICIDENTIFIER]+"|x|X|\\*",R("XRANGEPLAIN"),m[g.XRANGEPLAIN]="[v=\\s]*("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:"+m[g.PRERELEASE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGEPLAINLOOSE"),m[g.XRANGEPLAINLOOSE]="[v=\\s]*("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:"+m[g.PRERELEASELOOSE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGE"),m[g.XRANGE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAIN]+"$",R("XRANGELOOSE"),m[g.XRANGELOOSE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAINLOOSE]+"$",R("COERCE"),m[g.COERCE]="(^|[^\\d])(\\d{1,"+o+"})(?:\\.(\\d{1,"+o+"}))?(?:\\.(\\d{1,"+o+"}))?(?:$|[^\\d])",R("COERCERTL"),f[g.COERCERTL]=new RegExp(m[g.COERCE],"g"),h[g.COERCERTL]=new RegExp(I(m[g.COERCE]),"g"),R("LONETILDE"),m[g.LONETILDE]="(?:~>?)",R("TILDETRIM"),m[g.TILDETRIM]="(\\s*)"+m[g.LONETILDE]+"\\s+",f[g.TILDETRIM]=new RegExp(m[g.TILDETRIM],"g"),h[g.TILDETRIM]=new RegExp(I(m[g.TILDETRIM]),"g");var P="$1~";R("TILDE"),m[g.TILDE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAIN]+"$",R("TILDELOOSE"),m[g.TILDELOOSE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAINLOOSE]+"$",R("LONECARET"),m[g.LONECARET]="(?:\\^)",R("CARETTRIM"),m[g.CARETTRIM]="(\\s*)"+m[g.LONECARET]+"\\s+",f[g.CARETTRIM]=new RegExp(m[g.CARETTRIM],"g"),h[g.CARETTRIM]=new RegExp(I(m[g.CARETTRIM]),"g");var O="$1^";R("CARET"),m[g.CARET]="^"+m[g.LONECARET]+m[g.XRANGEPLAIN]+"$",R("CARETLOOSE"),m[g.CARETLOOSE]="^"+m[g.LONECARET]+m[g.XRANGEPLAINLOOSE]+"$",R("COMPARATORLOOSE"),m[g.COMPARATORLOOSE]="^"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+")$|^$",R("COMPARATOR"),m[g.COMPARATOR]="^"+m[g.GTLT]+"\\s*("+m[g.FULLPLAIN]+")$|^$",R("COMPARATORTRIM"),m[g.COMPARATORTRIM]="(\\s*)"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+"|"+m[g.XRANGEPLAIN]+")",f[g.COMPARATORTRIM]=new RegExp(m[g.COMPARATORTRIM],"g"),h[g.COMPARATORTRIM]=new RegExp(I(m[g.COMPARATORTRIM]),"g");var j="$1$2$3";R("HYPHENRANGE"),m[g.HYPHENRANGE]="^\\s*("+m[g.XRANGEPLAIN]+")\\s+-\\s+("+m[g.XRANGEPLAIN]+")\\s*$",R("HYPHENRANGELOOSE"),m[g.HYPHENRANGELOOSE]="^\\s*("+m[g.XRANGEPLAINLOOSE]+")\\s+-\\s+("+m[g.XRANGEPLAINLOOSE]+")\\s*$",R("STAR"),m[g.STAR]="(<|>)?=?\\s*\\*";for(var D=0;D<x;D++)s(D,m[D]),f[D]||(f[D]=new RegExp(m[D]),h[D]=new RegExp(I(m[D])));r.parse=k;function k(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L)return N;if(typeof N!="string"||N.length>l)return null;var U=$.loose?h[g.LOOSE]:h[g.FULL];if(!U.test(N))return null;try{return new L(N,$)}catch{return null}}r.valid=B;function B(N,$){var U=k(N,$);return U?U.version:null}r.clean=F;function F(N,$){var U=k(N.trim().replace(/^[=v]+/,""),$);return U?U.version:null}r.SemVer=L;function L(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L){if(N.loose===$.loose)return N;N=N.version}else if(typeof N!="string")throw new TypeError("Invalid Version: "+N);if(N.length>l)throw new TypeError("version is longer than "+l+" characters");if(!(this instanceof L))return new L(N,$);s("SemVer",N,$),this.options=$,this.loose=!!$.loose;var U=N.trim().match($.loose?h[g.LOOSE]:h[g.FULL]);if(!U)throw new TypeError("Invalid Version: "+N);if(this.raw=N,this.major=+U[1],this.minor=+U[2],this.patch=+U[3],this.major>u||this.major<0)throw new TypeError("Invalid major version");if(this.minor>u||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>u||this.patch<0)throw new TypeError("Invalid patch version");U[4]?this.prerelease=U[4].split(".").map(function(pe){if(/^[0-9]+$/.test(pe)){var _e=+pe;if(_e>=0&&_e<u)return _e}return pe}):this.prerelease=[],this.build=U[5]?U[5].split("."):[],this.format()}L.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},L.prototype.toString=function(){return this.version},L.prototype.compare=function(N){return s("SemVer.compare",this.version,this.options,N),N instanceof L||(N=new L(N,this.options)),this.compareMain(N)||this.comparePre(N)},L.prototype.compareMain=function(N){return N instanceof L||(N=new L(N,this.options)),G(this.major,N.major)||G(this.minor,N.minor)||G(this.patch,N.patch)},L.prototype.comparePre=function(N){if(N instanceof L||(N=new L(N,this.options)),this.prerelease.length&&!N.prerelease.length)return-1;if(!this.prerelease.length&&N.prerelease.length)return 1;if(!this.prerelease.length&&!N.prerelease.length)return 0;var $=0;do{var U=this.prerelease[$],pe=N.prerelease[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.compareBuild=function(N){N instanceof L||(N=new L(N,this.options));var $=0;do{var U=this.build[$],pe=N.build[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.inc=function(N,$){switch(N){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",$);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",$);break;case"prepatch":this.prerelease.length=0,this.inc("patch",$),this.inc("pre",$);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",$),this.inc("pre",$);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var U=this.prerelease.length;--U>=0;)typeof this.prerelease[U]=="number"&&(this.prerelease[U]++,U=-2);U===-1&&this.prerelease.push(0)}$&&(this.prerelease[0]===$?isNaN(this.prerelease[1])&&(this.prerelease=[$,0]):this.prerelease=[$,0]);break;default:throw new Error("invalid increment argument: "+N)}return this.format(),this.raw=this.version,this},r.inc=V;function V(N,$,U,pe){typeof U=="string"&&(pe=U,U=void 0);try{return new L(N,U).inc($,pe).version}catch{return null}}r.diff=H;function H(N,$){if(ke(N,$))return null;var U=k(N),pe=k($),_e="";if(U.prerelease.length||pe.prerelease.length){_e="pre";var We="prerelease"}for(var Ce in U)if((Ce==="major"||Ce==="minor"||Ce==="patch")&&U[Ce]!==pe[Ce])return _e+Ce;return We}r.compareIdentifiers=G;var K=/^[0-9]+$/;function G(N,$){var U=K.test(N),pe=K.test($);return U&&pe&&(N=+N,$=+$),N===$?0:U&&!pe?-1:pe&&!U?1:N<$?-1:1}r.rcompareIdentifiers=X;function X(N,$){return G($,N)}r.major=ue;function ue(N,$){return new L(N,$).major}r.minor=oe;function oe(N,$){return new L(N,$).minor}r.patch=he;function he(N,$){return new L(N,$).patch}r.compare=te;function te(N,$,U){return new L(N,U).compare(new L($,U))}r.compareLoose=ae;function ae(N,$){return te(N,$,!0)}r.compareBuild=J;function J(N,$,U){var pe=new L(N,U),_e=new L($,U);return pe.compare(_e)||pe.compareBuild(_e)}r.rcompare=xe;function xe(N,$,U){return te($,N,U)}r.sort=de;function de(N,$){return N.sort(function(U,pe){return r.compareBuild(U,pe,$)})}r.rsort=$e;function $e(N,$){return N.sort(function(U,pe){return r.compareBuild(pe,U,$)})}r.gt=Ve;function Ve(N,$,U){return te(N,$,U)>0}r.lt=Ie;function Ie(N,$,U){return te(N,$,U)<0}r.eq=ke;function ke(N,$,U){return te(N,$,U)===0}r.neq=Le;function Le(N,$,U){return te(N,$,U)!==0}r.gte=Ze;function Ze(N,$,U){return te(N,$,U)>=0}r.lte=at;function at(N,$,U){return te(N,$,U)<=0}r.cmp=lt;function lt(N,$,U,pe){switch($){case"===":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N===U;case"!==":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N!==U;case"":case"=":case"==":return ke(N,U,pe);case"!=":return Le(N,U,pe);case">":return Ve(N,U,pe);case">=":return Ze(N,U,pe);case"<":return Ie(N,U,pe);case"<=":return at(N,U,pe);default:throw new TypeError("Invalid operator: "+$)}}r.Comparator=gt;function gt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof gt){if(N.loose===!!$.loose)return N;N=N.value}if(!(this instanceof gt))return new gt(N,$);N=N.trim().split(/\s+/).join(" "),s("comparator",N,$),this.options=$,this.loose=!!$.loose,this.parse(N),this.semver===It?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}var It={};gt.prototype.parse=function(N){var $=this.options.loose?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],U=N.match($);if(!U)throw new TypeError("Invalid comparator: "+N);this.operator=U[1]!==void 0?U[1]:"",this.operator==="="&&(this.operator=""),U[2]?this.semver=new L(U[2],this.options.loose):this.semver=It},gt.prototype.toString=function(){return this.value},gt.prototype.test=function(N){if(s("Comparator.test",N,this.options.loose),this.semver===It||N===It)return!0;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}return lt(N,this.operator,this.semver,this.options)},gt.prototype.intersects=function(N,$){if(!(N instanceof gt))throw new TypeError("a Comparator is required");(!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1});var U;if(this.operator==="")return this.value===""?!0:(U=new tt(N.value,$),yt(this.value,U,$));if(N.operator==="")return N.value===""?!0:(U=new tt(this.value,$),yt(N.semver,U,$));var pe=(this.operator===">="||this.operator===">")&&(N.operator===">="||N.operator===">"),_e=(this.operator==="<="||this.operator==="<")&&(N.operator==="<="||N.operator==="<"),We=this.semver.version===N.semver.version,Ce=(this.operator===">="||this.operator==="<=")&&(N.operator===">="||N.operator==="<="),Ct=lt(this.semver,"<",N.semver,$)&&(this.operator===">="||this.operator===">")&&(N.operator==="<="||N.operator==="<"),ie=lt(this.semver,">",N.semver,$)&&(this.operator==="<="||this.operator==="<")&&(N.operator===">="||N.operator===">");return pe||_e||We&&Ce||Ct||ie},r.Range=tt;function tt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof tt)return N.loose===!!$.loose&&N.includePrerelease===!!$.includePrerelease?N:new tt(N.raw,$);if(N instanceof gt)return new tt(N.value,$);if(!(this instanceof tt))return new tt(N,$);if(this.options=$,this.loose=!!$.loose,this.includePrerelease=!!$.includePrerelease,this.raw=N.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(U){return this.parseRange(U.trim())},this).filter(function(U){return U.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}tt.prototype.format=function(){return this.range=this.set.map(function(N){return N.join(" ").trim()}).join("||").trim(),this.range},tt.prototype.toString=function(){return this.range},tt.prototype.parseRange=function(N){var $=this.options.loose,U=$?h[g.HYPHENRANGELOOSE]:h[g.HYPHENRANGE];N=N.replace(U,De),s("hyphen replace",N),N=N.replace(h[g.COMPARATORTRIM],j),s("comparator trim",N,h[g.COMPARATORTRIM]),N=N.replace(h[g.TILDETRIM],P),N=N.replace(h[g.CARETTRIM],O),N=N.split(/\s+/).join(" ");var pe=$?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],_e=N.split(" ").map(function(We){return $t(We,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(_e=_e.filter(function(We){return!!We.match(pe)})),_e=_e.map(function(We){return new gt(We,this.options)},this),_e},tt.prototype.intersects=function(N,$){if(!(N instanceof tt))throw new TypeError("a Range is required");return this.set.some(function(U){return Ft(U,$)&&N.set.some(function(pe){return Ft(pe,$)&&U.every(function(_e){return pe.every(function(We){return _e.intersects(We,$)})})})})};function Ft(N,$){for(var U=!0,pe=N.slice(),_e=pe.pop();U&&pe.length;)U=pe.every(function(We){return _e.intersects(We,$)}),_e=pe.pop();return U}r.toComparators=rr;function rr(N,$){return new tt(N,$).set.map(function(U){return U.map(function(pe){return pe.value}).join(" ").trim().split(" ")})}function $t(N,$){return s("comp",N,$),N=Be(N,$),s("caret",N),N=Lt(N,$),s("tildes",N),N=it(N,$),s("xrange",N),N=Ot(N,$),s("stars",N),N}function Et(N){return!N||N.toLowerCase()==="x"||N==="*"}function Lt(N,$){return N.trim().split(/\s+/).map(function(U){return Re(U,$)}).join(" ")}function Re(N,$){var U=$.loose?h[g.TILDELOOSE]:h[g.TILDE];return N.replace(U,function(pe,_e,We,Ce,Ct){s("tilde",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":Ct?(s("replaceTilde pr",Ct),ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0"):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0",s("tilde return",ie),ie})}function Be(N,$){return N.trim().split(/\s+/).map(function(U){return et(U,$)}).join(" ")}function et(N,$){s("caret",N,$);var U=$.loose?h[g.CARETLOOSE]:h[g.CARET];return N.replace(U,function(pe,_e,We,Ce,Ct){s("caret",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?_e==="0"?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+".0 <"+(+_e+1)+".0.0":Ct?(s("replaceCaret pr",Ct),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+(+_e+1)+".0.0"):(s("no pr"),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+" <"+(+_e+1)+".0.0"),s("caret return",ie),ie})}function it(N,$){return s("replaceXRanges",N,$),N.split(/\s+/).map(function(U){return vt(U,$)}).join(" ")}function vt(N,$){N=N.trim();var U=$.loose?h[g.XRANGELOOSE]:h[g.XRANGE];return N.replace(U,function(pe,_e,We,Ce,Ct,ie){s("xRange",N,pe,_e,We,Ce,Ct,ie);var st=Et(We),dt=st||Et(Ce),St=dt||Et(Ct),Gt=St;return _e==="="&&Gt&&(_e=""),ie=$.includePrerelease?"-0":"",st?_e===">"||_e==="<"?pe="<0.0.0-0":pe="*":_e&&Gt?(dt&&(Ce=0),Ct=0,_e===">"?(_e=">=",dt?(We=+We+1,Ce=0,Ct=0):(Ce=+Ce+1,Ct=0)):_e==="<="&&(_e="<",dt?We=+We+1:Ce=+Ce+1),pe=_e+We+"."+Ce+"."+Ct+ie):dt?pe=">="+We+".0.0"+ie+" <"+(+We+1)+".0.0"+ie:St&&(pe=">="+We+"."+Ce+".0"+ie+" <"+We+"."+(+Ce+1)+".0"+ie),s("xRange return",pe),pe})}function Ot(N,$){return s("replaceStars",N,$),N.trim().replace(h[g.STAR],"")}function De(N,$,U,pe,_e,We,Ce,Ct,ie,st,dt,St,Gt){return Et(U)?$="":Et(pe)?$=">="+U+".0.0":Et(_e)?$=">="+U+"."+pe+".0":$=">="+$,Et(ie)?Ct="":Et(st)?Ct="<"+(+ie+1)+".0.0":Et(dt)?Ct="<"+ie+"."+(+st+1)+".0":St?Ct="<="+ie+"."+st+"."+dt+"-"+St:Ct="<="+Ct,($+" "+Ct).trim()}tt.prototype.test=function(N){if(!N)return!1;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}for(var $=0;$<this.set.length;$++)if(Qe(this.set[$],N,this.options))return!0;return!1};function Qe(N,$,U){for(var pe=0;pe<N.length;pe++)if(!N[pe].test($))return!1;if($.prerelease.length&&!U.includePrerelease){for(pe=0;pe<N.length;pe++)if(s(N[pe].semver),N[pe].semver!==It&&N[pe].semver.prerelease.length>0){var _e=N[pe].semver;if(_e.major===$.major&&_e.minor===$.minor&&_e.patch===$.patch)return!0}return!1}return!0}r.satisfies=yt;function yt(N,$,U){try{$=new tt($,U)}catch{return!1}return $.test(N)}r.maxSatisfying=jt;function jt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===-1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minSatisfying=Kt;function Kt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minVersion=Ht;function Ht(N,$){N=new tt(N,$);var U=new L("0.0.0");if(N.test(U)||(U=new L("0.0.0-0"),N.test(U)))return U;U=null;for(var pe=0;pe<N.set.length;++pe){var _e=N.set[pe];_e.forEach(function(We){var Ce=new L(We.semver.version);switch(We.operator){case">":Ce.prerelease.length===0?Ce.patch++:Ce.prerelease.push(0),Ce.raw=Ce.format();case"":case">=":(!U||Ve(U,Ce))&&(U=Ce);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+We.operator)}})}return U&&N.test(U)?U:null}r.validRange=Cr;function Cr(N,$){try{return new tt(N,$).range||"*"}catch{return null}}r.ltr=Yr;function Yr(N,$,U){return Gr(N,$,"<",U)}r.gtr=Or;function Or(N,$,U){return Gr(N,$,">",U)}r.outside=Gr;function Gr(N,$,U,pe){N=new L(N,pe),$=new tt($,pe);var _e,We,Ce,Ct,ie;switch(U){case">":_e=Ve,We=at,Ce=Ie,Ct=">",ie=">=";break;case"<":_e=Ie,We=Ze,Ce=Ve,Ct="<",ie="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(yt(N,$,pe))return!1;for(var st=0;st<$.set.length;++st){var dt=$.set[st],St=null,Gt=null;if(dt.forEach(function(zr){zr.semver===It&&(zr=new gt(">=0.0.0")),St=St||zr,Gt=Gt||zr,_e(zr.semver,St.semver,pe)?St=zr:Ce(zr.semver,Gt.semver,pe)&&(Gt=zr)}),St.operator===Ct||St.operator===ie||(!Gt.operator||Gt.operator===Ct)&&We(N,Gt.semver))return!1;if(Gt.operator===ie&&Ce(N,Gt.semver))return!1}return!0}r.prerelease=qa;function qa(N,$){var U=k(N,$);return U&&U.prerelease.length?U.prerelease:null}r.intersects=cr;function cr(N,$,U){return N=new tt(N,U),$=new tt($,U),N.intersects($)}r.coerce=na;function na(N,$){if(N instanceof L)return N;if(typeof N=="number"&&(N=String(N)),typeof N!="string")return null;$=$||{};var U=null;if(!$.rtl)U=N.match(h[g.COERCE]);else{for(var pe;(pe=h[g.COERCERTL].exec(N))&&(!U||U.index+U[0].length!==N.length);)(!U||pe.index+pe[0].length!==U.index+U[0].length)&&(U=pe),h[g.COERCERTL].lastIndex=pe.index+pe[1].length+pe[2].length;h[g.COERCERTL].lastIndex=-1}return U===null?null:k(U[2]+"."+(U[3]||"0")+"."+(U[4]||"0"),$)}}(Fv,Fv.exports)),Fv.exports}var _le;function Uet(){if(_le)return Bv;_le=1,Bv.__esModule=!0,Bv.hasMinVersion=s;var e=r(qet());function r(l){return l&&l.__esModule?l:{default:l}}function s(l,u){return!u||!l?!0:(u=String(u),e.default.valid(u)&&(u="^"+u),!e.default.intersects("<"+l,u)&&!e.default.intersects(">=8.0.0",u))}return Bv}var $v={},Nle=Gu(eqe),qv=Gu(KBe),po={},Qo=Gu(d),kle,Dle,Lle,Mle;function rm(){if(Mle)return po;Mle=1,po.__esModule=!0,po.createUtilsGetter=I,po.getImportSource=R,po.getRequireSource=w,po.has=f,po.intersection=c,po.resolveKey=g,po.resolveSource=x;var e=s(Qo);function r(P){if(typeof WeakMap!="function")return null;var O=new WeakMap,j=new WeakMap;return(r=function(k){return k?j:O})(P)}function s(P,O){if(P&&P.__esModule)return P;if(P===null||typeof P!="object"&&typeof P!="function")return{default:P};var j=r(O);if(j&&j.has(P))return j.get(P);var D={},k=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var B in P)if(B!=="default"&&Object.prototype.hasOwnProperty.call(P,B)){var F=k?Object.getOwnPropertyDescriptor(P,B):null;F&&(F.get||F.set)?Object.defineProperty(D,B,F):D[B]=P[B]}return D.default=P,j&&j.set(P,D),D}var l=e.default||e,u=l.types,o=l.template;function c(P,O){var j=new Set;return P.forEach(function(D){return O.has(D)&&j.add(D)}),j}function f(P,O){return Object.prototype.hasOwnProperty.call(P,O)}function h(P){return Object.prototype.toString.call(P).slice(8,-1)}function m(P){if(P.isIdentifier()&&!P.scope.hasBinding(P.node.name,!0))return P.node.name;if(P.isPure()){var O=P.evaluate(),j=O.deopt;if(j&&j.isIdentifier())return j.node.name}}function g(P,O){O===void 0&&(O=!1);var j=P.scope;if(P.isStringLiteral())return P.node.value;var D=P.isIdentifier();if(D&&!(O||P.parent.computed))return P.node.name;if(O&&P.isMemberExpression()&&P.get("object").isIdentifier({name:"Symbol"})&&!j.hasBinding("Symbol",!0)){var k=g(P.get("property"),P.node.computed);if(k)return"Symbol."+k}if(D?j.hasBinding(P.node.name,!0):P.isPure()){var B=P.evaluate(),F=B.value;if(typeof F=="string")return F}}function x(P){if(P.isMemberExpression()&&P.get("property").isIdentifier({name:"prototype"})){var O=m(P.get("object"));return O?{id:O,placement:"prototype"}:{id:null,placement:null}}var j=m(P);if(j)return{id:j,placement:"static"};if(P.isRegExpLiteral())return{id:"RegExp",placement:"prototype"};if(P.isFunction())return{id:"Function",placement:"prototype"};if(P.isPure()){var D=P.evaluate(),k=D.value;if(k!==void 0)return{id:h(k),placement:"prototype"}}return{id:null,placement:null}}function R(P){var O=P.node;if(O.specifiers.length===0)return O.source.value}function w(P){var O=P.node;if(u.isExpressionStatement(O)){var j=O.expression;if(u.isCallExpression(j)&&u.isIdentifier(j.callee)&&j.callee.name==="require"&&j.arguments.length===1&&u.isStringLiteral(j.arguments[0]))return j.arguments[0].value}}function T(P){return P._blockHoist=3,P}function I(P){return function(O){var j=O.findParent(function(D){return D.isProgram()});return{injectGlobalImport:function(k,B){P.storeAnonymous(j,k,B,function(F,L){return F?o.statement.ast(kle||(kle=se(["require(",")"])),L):u.importDeclaration([],L)})},injectNamedImport:function(k,B,F,L){return F===void 0&&(F=B),P.storeNamed(j,k,B,L,function(V,H,K){var G=j.scope.generateUidIdentifier(F);return{node:V?T(o.statement.ast(Dle||(Dle=se([` + var `," = require(",").",` + `])),G,H,K)):u.importDeclaration([u.importSpecifier(G,K)],H),name:G.name}})},injectDefaultImport:function(k,B,F){return B===void 0&&(B=k),P.storeNamed(j,k,"default",F,function(L,V){var H=j.scope.generateUidIdentifier(B);return{node:L?T(o.statement.ast(Lle||(Lle=se(["var "," = require(",")"])),H,V)):u.importDeclaration([u.importDefaultSpecifier(H)],V),name:H.name}})}}}}return po}var am={},Ble;function Vet(){if(Ble)return am;Ble=1,am.__esModule=!0,am.default=void 0;var e=s(Qo);function r(c){if(typeof WeakMap!="function")return null;var f=new WeakMap,h=new WeakMap;return(r=function(g){return g?h:f})(c)}function s(c,f){if(c&&c.__esModule)return c;if(c===null||typeof c!="object"&&typeof c!="function")return{default:c};var h=r(f);if(h&&h.has(c))return h.get(c);var m={},g=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var x in c)if(x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)){var R=g?Object.getOwnPropertyDescriptor(c,x):null;R&&(R.get||R.set)?Object.defineProperty(m,x,R):m[x]=c[x]}return m.default=c,h&&h.set(c,m),m}var l=e.default||e,u=l.types,o=function(){function c(h,m){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=h,this._getPreferredIndex=m}var f=c.prototype;return f.storeAnonymous=function(m,g,x,R){var w=this._normalizeKey(m,g),T=this._ensure(this._anonymousImports,m,Set);if(!T.has(w)){var I=R(m.node.sourceType==="script",u.stringLiteral(this._resolver(g)));T.add(w),this._injectImport(m,I,x)}},f.storeNamed=function(m,g,x,R,w){var T=this._normalizeKey(m,g,x),I=this._ensure(this._imports,m,Map);if(!I.has(T)){var P=w(m.node.sourceType==="script",u.stringLiteral(this._resolver(g)),u.identifier(x)),O=P.node,j=P.name;I.set(T,j),this._injectImport(m,O,R)}return u.identifier(I.get(T))},f._injectImport=function(m,g,x){var R,w=this._getPreferredIndex(x),T=(R=this._lastImports.get(m))!=null?R:[],I=function(J){return J.node&&J.parent===m.node&&J.container===m.node.body},P;if(w===1/0)T.length>0&&(P=T[T.length-1].path,I(P)||(P=void 0));else for(var O=C(T.entries()),j;!(j=O()).done;){var D=je(j.value,2),k=D[0],B=D[1],F=B.path,L=B.index;if(I(F)){if(w<L){var V=F.insertBefore(g),H=je(V,1),K=H[0];T.splice(k,0,{path:K,index:w});return}P=F}}if(P){var G=P.insertAfter(g),X=je(G,1),ue=X[0];T.push({path:ue,index:w})}else{var oe=m.unshiftContainer("body",g),he=je(oe,1),te=he[0];this._lastImports.set(m,[{path:te,index:w}])}},f._ensure=function(m,g,x){var R=m.get(g);return R||(R=new x,m.set(g,R)),R},f._normalizeKey=function(m,g,x){x===void 0&&(x="");var R=m.node.sourceType;return(x&&R)+"::"+g+"::"+x},_(c)}();return am.default=o,am}var Ac={},Fle;function Wet(){if(Fle)return Ac;Fle=1,Ac.__esModule=!0,Ac.presetEnvSilentDebugHeader=void 0,Ac.stringifyTargets=l,Ac.stringifyTargetsMultiline=s;var e=qv,r="#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets";Ac.presetEnvSilentDebugHeader=r;function s(u){return JSON.stringify((0,e.prettifyTargets)(u),null,2)}function l(u){return JSON.stringify(u).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }')}return Ac}var nm={},$le;function Get(){if($le)return nm;$le=1,nm.__esModule=!0,nm.applyMissingDependenciesDefaults=o,nm.validateIncludeExclude=u;var e=rm();function r(c){if(c instanceof RegExp)return c;try{return new RegExp("^"+c+"$")}catch{return null}}function s(c,f){return f.length?' - The following "'+c+`" patterns didn't match any polyfill: +`+f.map(function(h){return" "+String(h)+` +`}).join(""):""}function l(c){return c.size?` - The following polyfills were matched both by "include" and "exclude" patterns: +`+Array.from(c,function(f){return" "+f+` +`}).join(""):""}function u(c,f,h,m){var g,x=function(j){var D=r(j);if(!D)return!1;for(var k=!1,B=C(f.keys()),F;!(F=B()).done;){var L=F.value;D.test(L)&&(k=!0,g.add(L))}return!k},R=g=new Set,w=Array.from(h).filter(x),T=g=new Set,I=Array.from(m).filter(x),P=(0,e.intersection)(R,T);if(P.size>0||w.length>0||I.length>0)throw new Error('Error while validating the "'+c+`" provider options: +`+s("include",w)+s("exclude",I)+l(P));return{include:R,exclude:T}}function o(c,f){var h=c.missingDependencies,m=h===void 0?{}:h;if(m===!1)return!1;var g=f.caller(function(O){return O==null?void 0:O.name}),x=m.log,R=x===void 0?"deferred":x,w=m.inject,T=w===void 0?g==="rollup-plugin-babel"?"throw":"import":w,I=m.all,P=I===void 0?!1:I;return{log:R,inject:T,all:P}}return nm}var Ic={},sm={},qle;function Ket(){if(qle)return sm;qle=1,sm.__esModule=!0,sm.default=void 0;var e=rm();function r(l){if(l.removed)return!0;if(!l.parentPath)return!1;if(l.listKey){var u;if(!((u=l.parentPath.node)!=null&&(u=u[l.listKey])!=null&&u.includes(l.node)))return!0}else if(l.parentPath.node[l.key]!==l.node)return!0;return r(l.parentPath)}var s=function(u){function o(h,m,g,x){return u({kind:"property",object:h,key:m,placement:g},x)}function c(h){var m=h.node.name,g=h.scope;g.getBindingIdentifier(m)||u({kind:"global",name:m},h)}function f(h){var m=(0,e.resolveKey)(h.get("property"),h.node.computed);return{key:m,handleAsMemberExpression:!!m&&m!=="prototype"}}return{ReferencedIdentifier:function(m){var g=m.parentPath;g.isMemberExpression({object:m.node})&&f(g).handleAsMemberExpression||c(m)},MemberExpression:function(m){var g=f(m),x=g.key,R=g.handleAsMemberExpression;if(R){var w=m.get("object"),T=w.isIdentifier();if(T){var I=w.scope.getBinding(w.node.name);if(I){if(I.path.isImportNamespaceSpecifier())return;T=!1}}var P=(0,e.resolveSource)(w),O=o(P.id,x,P.placement,m);O||(O=!T||m.shouldSkip||w.shouldSkip||r(w)),O||c(w)}},ObjectPattern:function(m){var g=m.parentPath,x=m.parent,R;if(g.isVariableDeclarator())R=g.get("init");else if(g.isAssignmentExpression())R=g.get("right");else if(g.isFunction()){var w=g.parentPath;(w.isCallExpression()||w.isNewExpression())&&w.node.callee===x&&(R=w.get("arguments")[m.key])}var T=null,I=null;if(R){var P=(0,e.resolveSource)(R);T=P.id,I=P.placement}for(var O=C(m.get("properties")),j;!(j=O()).done;){var D=j.value;if(D.isObjectProperty()){var k=(0,e.resolveKey)(D.get("key"));k&&o(T,k,I,D)}}},BinaryExpression:function(m){if(m.node.operator==="in"){var g=(0,e.resolveSource)(m.get("right")),x=(0,e.resolveKey)(m.get("left"),!0);x&&u({kind:"in",object:g.id,key:x,placement:g.placement},m)}}}};return sm.default=s,sm}var im={},Ule;function Het(){if(Ule)return im;Ule=1,im.__esModule=!0,im.default=void 0;var e=rm(),r=function(l){return{ImportDeclaration:function(o){var c=(0,e.getImportSource)(o);c&&l({kind:"import",source:c},o)},Program:function(o){o.get("body").forEach(function(c){var f=(0,e.getRequireSource)(c);f&&l({kind:"import",source:f},c)})}}};return im.default=r,im}var Vle;function zet(){if(Vle)return Ic;Vle=1,Ic.__esModule=!0,Ic.usage=Ic.entry=void 0;var e=s(Ket());Ic.usage=e.default;var r=s(Het());Ic.entry=r.default;function s(l){return l&&l.__esModule?l:{default:l}}return Ic}var Cc={},Wle;function Xet(){if(Wle)return Cc;Wle=1,Cc.__esModule=!0,Cc.has=r,Cc.laterLogMissing=l,Cc.logMissing=s,Cc.resolve=e;function e(u,o,c){if(c===!1)return o;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}function r(u,o){return!0}function s(u){}function l(u){}return Cc}var Uv={},Gle;function Jet(){if(Gle)return Uv;Gle=1,Uv.__esModule=!0,Uv.default=s;var e=rm(),r=new Set(["global","globalThis","self","window"]);function s(l){var u=l.static,o=l.instance,c=l.global;return function(f){if(f.kind==="global"&&c&&(0,e.has)(c,f.name))return{kind:"global",desc:c[f.name],name:f.name};if(f.kind==="property"||f.kind==="in"){var h=f.placement,m=f.object,g=f.key;if(m&&h==="static"){if(c&&r.has(m)&&(0,e.has)(c,g))return{kind:"global",desc:c[g],name:g};if(u&&(0,e.has)(u,m)&&(0,e.has)(u[m],g))return{kind:"static",desc:u[m][g],name:m+"$"+g}}if(o&&(0,e.has)(o,g))return{kind:"instance",desc:o[g],name:""+g}}}}return Uv}var Kle;function kO(){if(Kle)return $v;Kle=1,$v.__esModule=!0,$v.default=O;var e=Nle,r=R(qv),s=rm(),l=g(Vet()),u=Wet(),o=Get(),c=R(zet()),f=R(Xet()),h=g(Jet()),m=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"];function g(k){return k&&k.__esModule?k:{default:k}}function x(k){if(typeof WeakMap!="function")return null;var B=new WeakMap,F=new WeakMap;return(x=function(V){return V?F:B})(k)}function R(k,B){if(k&&k.__esModule)return k;if(k===null||typeof k!="object"&&typeof k!="function")return{default:k};var F=x(B);if(F&&F.has(k))return F.get(k);var L={},V=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var H in k)if(H!=="default"&&Object.prototype.hasOwnProperty.call(k,H)){var K=V?Object.getOwnPropertyDescriptor(k,H):null;K&&(K.get||K.set)?Object.defineProperty(L,H,K):L[H]=k[H]}return L.default=k,F&&F.set(k,L),L}function w(k,B){if(k==null)return{};var F={},L=Object.keys(k),V,H;for(H=0;H<L.length;H++)V=L[H],!(B.indexOf(V)>=0)&&(F[V]=k[V]);return F}var T=r.default.default||r.default;function I(k,B){var F=k.method,L=k.targets,V=k.ignoreBrowserslistConfig,H=k.configPath,K=k.debug,G=k.shouldInjectPolyfill,X=k.absoluteImports,ue=w(k,m);if(D(k))throw new Error(`This plugin requires options, for example: + { + "plugins": [ + ["<plugin name>", { method: "usage-pure" }] + ] + } + +See more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);var oe;if(F==="usage-global")oe="usageGlobal";else if(F==="entry-global")oe="entryGlobal";else if(F==="usage-pure")oe="usagePure";else throw typeof F!="string"?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global"'+(' or "usage-pure" (received '+JSON.stringify(F)+")"));if(typeof G=="function"){if(k.include||k.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(G!=null)throw new Error(".shouldInjectPolyfill must be a function, or undefined"+(" (received "+JSON.stringify(G)+")"));if(X!=null&&typeof X!="boolean"&&typeof X!="string")throw new Error(".absoluteImports must be a boolean, a string, or undefined"+(" (received "+JSON.stringify(X)+")"));var he;if(L||H||V){var te=typeof L=="string"||Array.isArray(L)?{browsers:L}:L;he=T(te,{ignoreBrowserslistConfig:V,configPath:H})}else he=B.targets();return{method:F,methodName:oe,targets:he,absoluteImports:X??!1,shouldInjectPolyfill:G,debug:!!K,providerOptions:ue}}function P(k,B,F,L,V,H){var K=I(B,H),G=K.method,X=K.methodName,ue=K.targets,oe=K.debug,he=K.shouldInjectPolyfill,te=K.providerOptions,ae=K.absoluteImports,J,xe,de,$e,Ve,Ie=(0,s.createUtilsGetter)(new l.default(function(It){return f.resolve(L,It,ae)},function(It){var tt,Ft;return(tt=(Ft=$e)==null?void 0:Ft.get(It))!=null?tt:1/0})),ke=new Map,Le={babel:H,getUtils:Ie,method:B.method,targets:ue,createMetaResolver:h.default,shouldInjectPolyfill:function(tt){if($e===void 0)throw new Error("Internal error in the "+k.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if($e.has(tt)||console.warn("Internal error in the "+at+" provider: "+('unknown polyfill "'+tt+'".')),Ve&&!Ve(tt))return!1;var Ft=(0,r.isRequired)(tt,ue,{compatData:de,includes:J,excludes:xe});if(he&&(Ft=he(tt,Ft),typeof Ft!="boolean"))throw new Error(".shouldInjectPolyfill must return a boolean.");return Ft},debug:function(tt){var Ft,rr;V().found=!0,!(!oe||!tt)&&(V().polyfills.has(at)||(V().polyfills.add(tt),(rr=(Ft=V()).polyfillsSupport)!=null||(Ft.polyfillsSupport=de)))},assertDependency:function(tt,Ft){if(Ft===void 0&&(Ft="*"),F!==!1&&!ae){var rr=Ft==="*"?tt:tt+"@^"+Ft,$t=F.all?!1:j(ke,tt+" :: "+L,function(){return f.has(L,tt)});$t||V().missingDeps.add(rr)}}},Ze=k(Le,te,L),at=Ze.name||k.name;if(typeof Ze[X]!="function")throw new Error('The "'+at+`" provider doesn't support the "`+G+'" polyfilling method.');Array.isArray(Ze.polyfills)?($e=new Map(Ze.polyfills.map(function(It,tt){return[It,tt]})),Ve=Ze.filterPolyfills):Ze.polyfills?($e=new Map(Object.keys(Ze.polyfills).map(function(It,tt){return[It,tt]})),de=Ze.polyfills,Ve=Ze.filterPolyfills):$e=new Map;var lt=(0,o.validateIncludeExclude)(at,$e,te.include||[],te.exclude||[]);J=lt.include,xe=lt.exclude;var gt;return X==="usageGlobal"?gt=function(tt,Ft){var rr,$t=Ie(Ft);return(rr=Ze[X](tt,$t,Ft))!=null?rr:!1}:gt=function(tt,Ft){var rr=Ie(Ft);return Ze[X](tt,rr,Ft),!1},{debug:oe,method:G,targets:ue,provider:Ze,providerName:at,callProvider:gt}}function O(k){return(0,e.declare)(function(B,F,L){B.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var V=B.traverse,H,K=(0,o.applyMissingDependenciesDefaults)(F,B),G=P(k,F,K,L,function(){return H},B),X=G.debug,ue=G.method,oe=G.targets,he=G.provider,te=G.providerName,ae=G.callProvider,J=ue==="entry-global"?c.entry:c.usage,xe=he.visitor?V.visitors.merge([J(ae),he.visitor]):J(ae);X&&X!==u.presetEnvSilentDebugHeader&&(console.log(te+": `DEBUG` option"),console.log(` +Using targets: `+(0,u.stringifyTargetsMultiline)(oe)),console.log("\nUsing polyfills with `"+ue+"` method:"));var de=he.runtimeName;return{name:"inject-polyfills",visitor:xe,pre:function(Ve){var Ie;de&&(Ve.get("runtimeHelpersModuleName")&&Ve.get("runtimeHelpersModuleName")!==de?console.warn("Two different polyfill providers"+(" ("+Ve.get("runtimeHelpersModuleProvider"))+(" and "+te+") are trying to define two")+" conflicting @babel/runtime alternatives:"+(" "+Ve.get("runtimeHelpersModuleName")+" and "+de+".")+" The second one will be ignored."):(Ve.set("runtimeHelpersModuleName",de),Ve.set("runtimeHelpersModuleProvider",te))),H={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},(Ie=he.pre)==null||Ie.apply(this,arguments)},post:function(){var Ve;if((Ve=he.post)==null||Ve.apply(this,arguments),K!==!1&&(K.log==="per-file"?f.logMissing(H.missingDeps):f.laterLogMissing(H.missingDeps)),!!X){if(this.filename&&console.log(` +[`+this.filename+"]"),H.polyfills.size===0){console.log(ue==="entry-global"?H.found?"Based on your targets, the "+te+" polyfill did not add any polyfill.":"The entry point for the "+te+" polyfill has not been found.":"Based on your code and targets, the "+te+" polyfill did not add any polyfill.");return}console.log(ue==="entry-global"?"The "+te+" polyfill entry has been replaced with the following polyfills:":"The "+te+" polyfill added the following polyfills:");for(var Ie=C(H.polyfills),ke;!(ke=Ie()).done;){var Le=ke.value,Ze;if((Ze=H.polyfillsSupport)!=null&&Ze[Le]){var at=(0,r.getInclusionReasons)(Le,oe,H.polyfillsSupport),lt=JSON.stringify(at).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+Le+" "+lt)}else console.log(" "+Le)}}}}})}function j(k,B,F){var L=k.get(B);return L===void 0&&(L=F(),k.set(B,L)),L}function D(k){return Object.keys(k).length===0}return $v}var Hle;function Yet(){if(Hle)return em;Hle=1,em.__esModule=!0,em.default=void 0;var e=h(tm()),r=Fet(),s=h($et()),l=Uet(),u=h(kO()),o=f(Qo);function c(P){if(typeof WeakMap!="function")return null;var O=new WeakMap,j=new WeakMap;return(c=function(k){return k?j:O})(P)}function f(P,O){if(P&&P.__esModule)return P;if(P===null||typeof P!="object"&&typeof P!="function")return{default:P};var j=c(O);if(j&&j.has(P))return j.get(P);var D={},k=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var B in P)if(B!=="default"&&Object.prototype.hasOwnProperty.call(P,B)){var F=k?Object.getOwnPropertyDescriptor(P,B):null;F&&(F.get||F.set)?Object.defineProperty(D,B,F):D[B]=P[B]}return D.default=P,j&&j.set(P,D),D}function h(P){return P&&P.__esModule?P:{default:P}}var m=o.default||o,g=m.types,x="@babel/runtime-corejs2",R="#__secret_key__@babel/preset-env__compatibility",w="#__secret_key__@babel/runtime__compatibility",T=Function.call.bind(Object.hasOwnProperty),I=(0,u.default)(function(P,O){var j=O[R],D=j===void 0?{}:j,k=D.entryInjectRegenerator,B=k===void 0?!1:k,F=D.noRuntimeName,L=F===void 0?!1:F,V=O[w],H=V===void 0?{}:V,K=H.useBabelRuntime,G=K===void 0?!1:K,X=H.runtimeVersion,ue=X===void 0?"":X,oe=H.ext,he=oe===void 0?".js":oe,te=P.createMetaResolver({global:r.BuiltIns,static:r.StaticProperties,instance:r.InstanceProperties}),ae=P.debug,J=P.shouldInjectPolyfill,xe=P.method,de=(0,s.default)(P.targets,xe,e.default),$e=G?x+"/core-js":xe==="usage-pure"?"core-js/library/fn":"core-js/modules";function Ve(ke,Le){if(typeof ke=="string"){T(de,ke)&&J(ke)&&(ae(ke),Le.injectGlobalImport($e+"/"+ke+".js"));return}ke.forEach(function(Ze){return Ve(Ze,Le)})}function Ie(ke,Le,Ze){var at=ke.pure,lt=ke.meta,gt=ke.name;if(!(!at||!J(gt))&&!(ue&<&<.minRuntimeVersion&&!(0,l.hasMinVersion)(lt&<.minRuntimeVersion,ue)))return G&&at==="symbol/index"&&(at="symbol"),Ze.injectDefaultImport($e+"/"+at+he,Le)}return{name:"corejs2",runtimeName:L?null:x,polyfills:de,entryGlobal:function(Le,Ze,at){Le.kind==="import"&&Le.source==="core-js"&&(ae(null),Ve(Object.keys(de),Ze),B&&Ze.injectGlobalImport("regenerator-runtime/runtime.js"),at.remove())},usageGlobal:function(Le,Ze){var at=te(Le);if(at){var lt=at.desc.global;if(at.kind!=="global"&&"object"in Le&&Le.object&&Le.placement==="prototype"){var gt=Le.object.toLowerCase();lt=lt.filter(function(It){return It.includes(gt)})}Ve(lt,Ze)}},usagePure:function(Le,Ze,at){if(Le.kind==="in"){Le.key==="Symbol.iterator"&&at.replaceWith(g.callExpression(Ze.injectDefaultImport($e+"/is-iterable"+he,"isIterable"),[at.node.right]));return}if(!at.parentPath.isUnaryExpression({operator:"delete"})){if(Le.kind==="property"){if(!at.isMemberExpression()||!at.isReferenced())return;if(Le.key==="Symbol.iterator"&&J("es6.symbol")&&at.parentPath.isCallExpression({callee:at.node})&&at.parentPath.node.arguments.length===0){at.parentPath.replaceWith(g.callExpression(Ze.injectDefaultImport($e+"/get-iterator"+he,"getIterator"),[at.node.object])),at.skip();return}}var lt=te(Le);if(lt){var gt=Ie(lt.desc,lt.name,Ze);gt&&at.replaceWith(gt)}}},visitor:xe==="usage-global"&&{YieldExpression:function(Le){Le.node.delegate&&Ve("web.dom.iterable",P.getUtils(Le))},"ForOfStatement|ArrayPattern":function(Le){r.CommonIterators.forEach(function(Ze){return Ve(Ze,P.getUtils(Le))})}}}});return em.default=I,em}var DO,zle;function Qet(){if(zle)return DO;zle=1;function e(r){return r==null?!1:r&&r!=="false"&&r!=="0"}return DO=e(er.env.BABEL_8_BREAKING)?null:Yet(),DO}var om={},LO={"es.symbol":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.symbol.description":{android:"70",bun:"0.1.1",chrome:"70","chrome-android":"70",deno:"1.0",edge:"79",electron:"5.0",firefox:"63","firefox-android":"63",ios:"12.2",node:"11.0",oculus:"6.0",opera:"57","opera-android":"49",opera_mobile:"49",quest:"6.0",safari:"12.1",samsung:"10.0"},"es.symbol.async-iterator":{android:"63",bun:"0.1.1",chrome:"63","chrome-android":"63",deno:"1.0",edge:"79",electron:"3.0",firefox:"55","firefox-android":"55",ios:"12.0",node:"10.0",oculus:"5.0",opera:"50","opera-android":"46",opera_mobile:"46",quest:"5.0",safari:"12.0",samsung:"8.0"},"es.symbol.has-instance":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.is-concat-spreadable":{android:"48",bun:"0.1.1",chrome:"48","chrome-android":"48",deno:"1.0",edge:"15",electron:"0.37",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"35","opera-android":"35",opera_mobile:"35",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.iterator":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"36","firefox-android":"36",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.symbol.match":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.match-all":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",hermes:"0.6",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0","react-native":"0.69",safari:"13",samsung:"11.0"},"es.symbol.replace":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.search":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.species":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"41","firefox-android":"41",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.split":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.to-primitive":{android:"47",bun:"0.1.1",chrome:"47","chrome-android":"47",deno:"1.0",edge:"15",electron:"0.36",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"34","opera-android":"34",opera_mobile:"34",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.to-string-tag":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.unscopables":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"48","firefox-android":"48",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.error.cause":{android:"94",bun:"0.1.1",chrome:"94","chrome-android":"94",deno:"1.14",edge:"94",electron:"15.0",firefox:"91","firefox-android":"91",hermes:"0.8",ios:"15.0",node:"16.11",oculus:"18.0",opera:"80","opera-android":"66",opera_mobile:"66",quest:"18.0","react-native":"0.69",safari:"15.0",samsung:"17.0"},"es.error.to-string":{android:"4.4.3",bun:"0.1.1",chrome:"33","chrome-android":"33",deno:"1.0",edge:"12",electron:"0.20",firefox:"11","firefox-android":"11",hermes:"0.1",ie:"9",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"20","opera-android":"20",opera_mobile:"20",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"8.0",samsung:"2.0"},"es.aggregate-error":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.72",safari:"14.0",samsung:"14.0"},"es.aggregate-error.cause":{android:"94",bun:"0.1.1",chrome:"94","chrome-android":"94",deno:"1.14",edge:"94",electron:"15.0",firefox:"91","firefox-android":"91",ios:"15.0",node:"16.11",oculus:"18.0",opera:"80","opera-android":"66",opera_mobile:"66",quest:"18.0","react-native":"0.72",safari:"15.0",samsung:"17.0"},"es.array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"es.array.concat":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.copy-within":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"12",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",safari:"9.0",samsung:"5.0"},"es.array.every":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.fill":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"12",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",safari:"9.0",samsung:"5.0"},"es.array.filter":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.find":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",safari:"9.0",samsung:"5.0"},"es.array.find-index":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",safari:"9.0",samsung:"5.0"},"es.array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"es.array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"es.array.flat":{android:"69",bun:"0.1.1",chrome:"69","chrome-android":"69",deno:"1.0",edge:"79",electron:"4.0",firefox:"62","firefox-android":"62",hermes:"0.4",ios:"12.0",node:"11.0",oculus:"6.0",opera:"56","opera-android":"48",opera_mobile:"48",quest:"6.0","react-native":"0.69",rhino:"1.7.15",safari:"12.0",samsung:"10.0"},"es.array.flat-map":{android:"69",bun:"0.1.1",chrome:"69","chrome-android":"69",deno:"1.0",edge:"79",electron:"4.0",firefox:"62","firefox-android":"62",hermes:"0.4",ios:"12.0",node:"11.0",oculus:"6.0",opera:"56","opera-android":"48",opera_mobile:"48",quest:"6.0","react-native":"0.69",rhino:"1.7.15",safari:"12.0",samsung:"10.0"},"es.array.for-each":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.from":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",ios:"9.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"9.0",samsung:"5.0"},"es.array.includes":{android:"53",bun:"0.1.1",chrome:"53","chrome-android":"53",deno:"1.0",edge:"14",electron:"1.4",firefox:"102","firefox-android":"102",ios:"10.0",node:"7.0",oculus:"3.0",opera:"40","opera-android":"40",opera_mobile:"40",quest:"3.0",safari:"10.0",samsung:"6.0"},"es.array.index-of":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"12",electron:"1.2",firefox:"47","firefox-android":"47",hermes:"0.1",ie:"9",ios:"8.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"5.0"},"es.array.is-array":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.array.iterator":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"15",electron:"3.0",firefox:"60","firefox-android":"60",ios:"10.0",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0",safari:"10.0",samsung:"9.0"},"es.array.join":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"13",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.last-index-of":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"12",electron:"1.2",firefox:"47","firefox-android":"47",hermes:"0.1",ie:"9",ios:"8.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"5.0"},"es.array.map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"50","firefox-android":"50",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"5.0"},"es.array.push":{android:"122",bun:"0.1.1",chrome:"122","chrome-android":"122",deno:"1.41.3",edge:"122",electron:"29.0",firefox:"55","firefox-android":"55",hermes:"0.2",ios:"16.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0","react-native":"0.69",safari:"16.0",samsung:"26.0"},"es.array.reduce":{android:"83",bun:"0.1.1",chrome:"83","chrome-android":"83",deno:"1.0",edge:"12",electron:"9.0",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"6.0",oculus:"10.0",opera:"69","opera-android":"59",opera_mobile:"59",quest:"10.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"13.0"},"es.array.reduce-right":{android:"83",bun:"0.1.1",chrome:"83","chrome-android":"83",deno:"1.0",edge:"12",electron:"9.0",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"6.0",oculus:"10.0",opera:"69","opera-android":"59",opera_mobile:"59",quest:"10.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"13.0"},"es.array.reverse":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"5.5",ios:"12.2",node:"0.0.3",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"12.0.2",samsung:"1.0"},"es.array.slice":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.some":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.sort":{android:"70",bun:"0.1.1",chrome:"70","chrome-android":"70",deno:"1.0",edge:"79",electron:"5.0",firefox:"4","firefox-android":"4",hermes:"0.10",ios:"12.0",node:"11.0",oculus:"6.0",opera:"57","opera-android":"49",opera_mobile:"49",quest:"6.0","react-native":"0.69",safari:"12.0",samsung:"10.0"},"es.array.species":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.array.splice":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"49","firefox-android":"49",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"es.array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"es.array.to-spliced":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"es.array.unscopables.flat":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0",safari:"13",samsung:"11.0"},"es.array.unscopables.flat-map":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0",safari:"13",samsung:"11.0"},"es.array.unshift":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"12",electron:"5.0",firefox:"23","firefox-android":"23",hermes:"0.1",ie:"9",ios:"16.0",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",safari:"16.0",samsung:"10.0"},"es.array.with":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"es.array-buffer.constructor":{android:"4.4",bun:"0.1.1",chrome:"28","chrome-android":"28",deno:"1.0",edge:"14",electron:"0.20",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"12.0",node:"0.11.1",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",safari:"12.0",samsung:"1.5"},"es.array-buffer.is-view":{android:"4.4.3",bun:"0.1.1",chrome:"32","chrome-android":"32",deno:"1.0",edge:"12",electron:"0.20",firefox:"29","firefox-android":"29",hermes:"0.1",ie:"11",ios:"8.0",node:"0.11.9",oculus:"3.0",opera:"19","opera-android":"19",opera_mobile:"19",quest:"3.0","react-native":"0.69",safari:"7.1",samsung:"2.0"},"es.array-buffer.slice":{android:"4.4.3",bun:"0.1.1",chrome:"31","chrome-android":"31",deno:"1.0",edge:"12",electron:"0.20",firefox:"46","firefox-android":"46",hermes:"0.1",ie:"11",ios:"12.2",node:"0.11.8",oculus:"3.0",opera:"18","opera-android":"18",opera_mobile:"18",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"12.1",samsung:"2.0"},"es.data-view":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ie:"10",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array-buffer.detached":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"es.array-buffer.transfer":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"es.array-buffer.transfer-to-fixed-length":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"es.date.get-year":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"9",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.now":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.date.set-year":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.to-gmt-string":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.to-iso-string":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"7","firefox-android":"7",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.date.to-json":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"10.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"1.5"},"es.date.to-primitive":{android:"47",bun:"0.1.1",chrome:"47","chrome-android":"47",deno:"1.0",edge:"15",electron:"0.36",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"34","opera-android":"34",opera_mobile:"34",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.date.to-string":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"9",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.escape":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.function.bind":{android:"3.0",bun:"0.1.1",chrome:"7","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.1.101",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"1.0"},"es.function.has-instance":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"50","firefox-android":"50",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.function.name":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.global-this":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"65","firefox-android":"65",hermes:"0.2",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"10.0"},"es.json.stringify":{android:"72",bun:"0.1.1",chrome:"72","chrome-android":"72",deno:"1.0",edge:"79",electron:"5.0",firefox:"64","firefox-android":"64",ios:"12.2",node:"12.0",oculus:"6.0",opera:"59","opera-android":"51",opera_mobile:"51",quest:"6.0","react-native":"0.72",safari:"12.1",samsung:"11.0"},"es.json.to-string-tag":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.map.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",samsung:"24.0"},"es.math.acosh":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"13",electron:"1.4",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",safari:"7.1",samsung:"6.0"},"es.math.asinh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.atanh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.cbrt":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.clz32":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.0"},"es.math.cosh":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.expm1":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"46","firefox-android":"46",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.fround":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"26","firefox-android":"26",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.hypot":{android:"78",bun:"0.1.1",chrome:"78","chrome-android":"78",deno:"1.0",edge:"12",electron:"7.0",firefox:"27","firefox-android":"27",hermes:"0.1",ios:"8.0",node:"12.16",oculus:"8.0",opera:"65","opera-android":"56",opera_mobile:"56",quest:"8.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"12.0"},"es.math.imul":{android:"4.4",bun:"0.1.1",chrome:"28","chrome-android":"28",deno:"1.0",edge:"13",electron:"0.20",firefox:"20","firefox-android":"20",hermes:"0.1",ios:"9.0",node:"0.11.1",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.math.log10":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.log1p":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.log2":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.sign":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.0"},"es.math.sinh":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.tanh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.to-string-tag":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.math.trunc":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.number.constructor":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"46","firefox-android":"46",hermes:"0.5",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.number.epsilon":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"2.0"},"es.number.is-finite":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"16","firefox-android":"16",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.number.is-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"16","firefox-android":"16",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.is-nan":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.number.is-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"32","firefox-android":"32",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.max-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.min-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.parse-float":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"79",electron:"0.20",firefox:"39","firefox-android":"39",hermes:"0.1",ios:"11.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"11.0",samsung:"3.0"},"es.number.parse-int":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"79",electron:"0.20",firefox:"39","firefox-android":"39",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"3.0"},"es.number.to-exponential":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"18",electron:"1.2",firefox:"87","firefox-android":"87",hermes:"0.1",ios:"11.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"11",samsung:"5.0"},"es.number.to-fixed":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"79",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.number.to-precision":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"8",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.object.assign":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"79",electron:"0.37",firefox:"36","firefox-android":"36",hermes:"0.4",ios:"9.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"9.0",samsung:"5.0"},"es.object.create":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.object.define-getter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.define-properties":{android:"37",bun:"0.1.1",chrome:"37","chrome-android":"37",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.11.15",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"3.0"},"es.object.define-property":{android:"37",bun:"0.1.1",chrome:"37","chrome-android":"37",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.11.15",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"3.0"},"es.object.define-setter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.entries":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"14",electron:"1.4",firefox:"47","firefox-android":"47",hermes:"0.1",ios:"10.3",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"10.1",samsung:"6.0"},"es.object.freeze":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.from-entries":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"63","firefox-android":"63",hermes:"0.4",ios:"12.2",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"11.0"},"es.object.get-own-property-descriptor":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.get-own-property-descriptors":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"50","firefox-android":"50",hermes:"0.6",ios:"10.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"6.0"},"es.object.get-own-property-names":{android:"40",bun:"0.1.1",chrome:"40","chrome-android":"40",deno:"1.0",edge:"13",electron:"0.21",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"27","opera-android":"27",opera_mobile:"27",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.object.get-prototype-of":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",samsung:"24.0"},"es.object.has-own":{android:"93",bun:"0.1.1",chrome:"93","chrome-android":"93",deno:"1.13",edge:"93",electron:"14.0",firefox:"92","firefox-android":"92",hermes:"0.10",ios:"15.4",node:"16.9",oculus:"17.0",opera:"79","opera-android":"66",opera_mobile:"66",quest:"17.0","react-native":"0.69",rhino:"1.7.15",safari:"15.4",samsung:"17.0"},"es.object.is":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"22","firefox-android":"22",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.object.is-extensible":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.is-frozen":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.is-sealed":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.keys":{android:"40",bun:"0.1.1",chrome:"40","chrome-android":"40",deno:"1.0",edge:"13",electron:"0.21",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"27","opera-android":"27",opera_mobile:"27",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.object.lookup-getter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.lookup-setter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.prevent-extensions":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.proto":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"11",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",safari:"3.1",samsung:"1.0"},"es.object.seal":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.set-prototype-of":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ie:"11",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.object.to-string":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.object.values":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"14",electron:"1.4",firefox:"47","firefox-android":"47",hermes:"0.1",ios:"10.3",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"10.1",samsung:"6.0"},"es.parse-float":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"74",electron:"0.20",firefox:"8","firefox-android":"8",hermes:"0.1",ie:"8",ios:"8.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.parse-int":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"74",electron:"0.20",firefox:"21","firefox-android":"21",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.promise":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.24",edge:"79",electron:"4.0",firefox:"69","firefox-android":"69",ios:"11.0",node:"10.4",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",rhino:"1.7.14",safari:"11.0",samsung:"9.0"},"es.promise.all-settled":{android:"76",bun:"0.1.1",chrome:"76","chrome-android":"76",deno:"1.24",edge:"79",electron:"6.0",firefox:"71","firefox-android":"71",ios:"13.0",node:"12.9",oculus:"7.0",opera:"63","opera-android":"54",opera_mobile:"54",quest:"7.0",rhino:"1.7.15",safari:"13",samsung:"12.0"},"es.promise.any":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.24",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0",safari:"14.0",samsung:"14.0"},"es.promise.finally":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.24",edge:"79",electron:"4.0",firefox:"69","firefox-android":"69",ios:"13.2.3",node:"10.4",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",rhino:"1.7.14",safari:"13.0.3",samsung:"9.0"},"es.promise.with-resolvers":{android:"119",bun:"0.7.1",chrome:"119","chrome-android":"119",deno:"1.38",edge:"119",electron:"28.0",firefox:"121","firefox-android":"121",ios:"17.4",node:"22.0",oculus:"31.0",opera:"105","opera-android":"79",opera_mobile:"79",quest:"31.0",safari:"17.4",samsung:"25.0"},"es.reflect.apply":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.construct":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"44","firefox-android":"44",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.define-property":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"13",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.delete-property":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.get":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.get-own-property-descriptor":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.get-prototype-of":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.has":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.is-extensible":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.own-keys":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.prevent-extensions":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.set":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"79",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.set-prototype-of":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.to-string-tag":{android:"86",bun:"0.1.1",chrome:"86","chrome-android":"86",deno:"1.3",edge:"86",electron:"11.0",firefox:"82","firefox-android":"82",hermes:"0.7",ios:"14.0",node:"15.0",oculus:"12.0",opera:"72","opera-android":"61",opera_mobile:"61",quest:"12.0","react-native":"0.69",safari:"14.0",samsung:"14.0"},"es.regexp.constructor":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",ios:"11.3",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0",safari:"11.1",samsung:"9.0"},"es.regexp.dot-all":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",hermes:"0.4",ios:"11.3",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.15",safari:"11.1",samsung:"8.0"},"es.regexp.exec":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",ios:"11.3",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.71",safari:"11.1",samsung:"9.0"},"es.regexp.flags":{android:"111",bun:"0.1.1",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"78","firefox-android":"78",hermes:"0.4",ios:"11.3",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0","react-native":"0.69",safari:"11.1",samsung:"22.0"},"es.regexp.sticky":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"13",electron:"0.37",firefox:"3","firefox-android":"4",hermes:"0.3",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.regexp.test":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"46","firefox-android":"46",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.regexp.to-string":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"46","firefox-android":"46",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.set":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.set.difference.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.intersection.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.is-disjoint-from.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.is-subset-of.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.is-superset-of.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.symmetric-difference.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.set.union.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"es.string.at-alternative":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"es.string.code-point-at":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"29","firefox-android":"29",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.ends-with":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.from-code-point":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"29","firefox-android":"29",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.includes":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.is-well-formed":{android:"111",bun:"0.4.0",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",safari:"16.4",samsung:"22.0"},"es.string.iterator":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"36","firefox-android":"36",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.match":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.string.match-all":{android:"80",bun:"0.1.1",chrome:"80","chrome-android":"80",deno:"1.0",edge:"80",electron:"8.0",firefox:"73","firefox-android":"73",hermes:"0.6",ios:"13.4",node:"14.0",oculus:"9.0",opera:"67","opera-android":"57",opera_mobile:"57",quest:"9.0","react-native":"0.69",safari:"13.1",samsung:"13.0"},"es.string.pad-end":{android:"57",bun:"0.1.1",chrome:"57","chrome-android":"57",deno:"1.0",edge:"15",electron:"1.7",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"11.0",node:"8.0",oculus:"3.0",opera:"44","opera-android":"43",opera_mobile:"43",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"11.0",samsung:"7.0"},"es.string.pad-start":{android:"57",bun:"0.1.1",chrome:"57","chrome-android":"57",deno:"1.0",edge:"15",electron:"1.7",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"11.0",node:"8.0",oculus:"3.0",opera:"44","opera-android":"43",opera_mobile:"43",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"11.0",samsung:"7.0"},"es.string.raw":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"3.4"},"es.string.repeat":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"24","firefox-android":"24",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.replace":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",ios:"14.0",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.71",safari:"14.0",samsung:"9.0"},"es.string.replace-all":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"77","firefox-android":"77",hermes:"0.7",ios:"13.4",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.69",rhino:"1.7.15",safari:"13.1",samsung:"14.0"},"es.string.search":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.string.split":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"79",electron:"1.4",firefox:"49","firefox-android":"49",ios:"10.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"10.0",samsung:"6.0"},"es.string.starts-with":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.substr":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"9",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"4","opera-android":"4",opera_mobile:"4",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.string.to-well-formed":{android:"111",bun:"0.5.7",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",safari:"16.4",samsung:"22.0"},"es.string.trim":{android:"59",bun:"0.1.1",chrome:"59","chrome-android":"59",deno:"1.0",edge:"15",electron:"1.8",firefox:"52","firefox-android":"52",hermes:"0.1",ios:"12.2",node:"8.3",oculus:"4.0",opera:"46","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",safari:"12.1",samsung:"7.0"},"es.string.trim-end":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"61","firefox-android":"61",hermes:"0.3",ios:"12.2",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",safari:"12.1",samsung:"9.0"},"es.string.trim-start":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"61","firefox-android":"61",hermes:"0.3",ios:"12.0",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",safari:"12.0",samsung:"9.0"},"es.string.anchor":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.big":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.blink":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.bold":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.fixed":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.fontcolor":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.fontsize":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.italics":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.link":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.small":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.strike":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.sub":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.sup":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.typed-array.float32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.float64-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int8-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int16-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint8-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint8-clamped-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint16-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"es.typed-array.copy-within":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.every":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.fill":{android:"58",bun:"0.1.1",chrome:"58","chrome-android":"58",deno:"1.0",edge:"79",electron:"1.7",firefox:"55","firefox-android":"55",hermes:"0.1",ios:"14.5",node:"8.0",oculus:"4.0",opera:"45","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",safari:"14.1",samsung:"7.0"},"es.typed-array.filter":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.find":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.find-index":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"es.typed-array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"es.typed-array.for-each":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.from":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.includes":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"14",electron:"0.37",firefox:"43","firefox-android":"43",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.index-of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.iterator":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.join":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.last-index-of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.map":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.of":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.reduce":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.reduce-right":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.reverse":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.set":{android:"95",bun:"0.1.1",chrome:"95","chrome-android":"95",deno:"1.15",edge:"95",electron:"16.0",firefox:"54","firefox-android":"54",hermes:"0.1",ios:"14.5",node:"17.0",oculus:"18.0",opera:"81","opera-android":"67",opera_mobile:"67",quest:"18.0","react-native":"0.69",safari:"14.1",samsung:"17.0"},"es.typed-array.slice":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.some":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.sort":{android:"74",bun:"0.1.1",chrome:"74","chrome-android":"74",deno:"1.0",edge:"79",electron:"6.0",firefox:"67","firefox-android":"67",hermes:"0.10",ios:"14.5",node:"12.0",oculus:"6.0",opera:"61","opera-android":"53",opera_mobile:"53",quest:"6.0","react-native":"0.69",safari:"14.1",samsung:"11.0"},"es.typed-array.subarray":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"13",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",safari:"7.1",samsung:"1.5"},"es.typed-array.to-locale-string":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"79",electron:"0.31",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"es.typed-array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"es.typed-array.to-string":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.with":{android:"110",bun:"0.1.9",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.4",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.4",samsung:"21.0"},"es.unescape":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.weak-map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"53","firefox-android":"53",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.weak-set":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"esnext.aggregate-error":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.72",safari:"14.0",samsung:"14.0"},"esnext.suppressed-error.constructor":{},"esnext.array.from-async":{android:"121",bun:"1.1.2",chrome:"121","chrome-android":"121",deno:"1.38",edge:"121",electron:"29.0",firefox:"115","firefox-android":"115",node:"22.0",oculus:"32.0",opera:"107","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"25.0"},"esnext.array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"esnext.array.filter-out":{},"esnext.array.filter-reject":{},"esnext.array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"esnext.array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"esnext.array.group":{},"esnext.array.group-by":{},"esnext.array.group-by-to-map":{},"esnext.array.group-to-map":{},"esnext.array.is-template-object":{},"esnext.array.last-index":{},"esnext.array.last-item":{},"esnext.array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"esnext.array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"esnext.array.to-spliced":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"esnext.array.unique-by":{},"esnext.array.with":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",safari:"16.0",samsung:"21.0"},"esnext.array-buffer.detached":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"esnext.array-buffer.transfer":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"esnext.array-buffer.transfer-to-fixed-length":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.4",samsung:"23.0"},"esnext.async-disposable-stack.constructor":{},"esnext.async-iterator.constructor":{},"esnext.async-iterator.as-indexed-pairs":{},"esnext.async-iterator.async-dispose":{},"esnext.async-iterator.drop":{},"esnext.async-iterator.every":{},"esnext.async-iterator.filter":{},"esnext.async-iterator.find":{},"esnext.async-iterator.flat-map":{},"esnext.async-iterator.for-each":{},"esnext.async-iterator.from":{},"esnext.async-iterator.indexed":{},"esnext.async-iterator.map":{},"esnext.async-iterator.reduce":{},"esnext.async-iterator.some":{},"esnext.async-iterator.take":{},"esnext.async-iterator.to-array":{},"esnext.bigint.range":{},"esnext.composite-key":{},"esnext.composite-symbol":{},"esnext.data-view.get-float16":{deno:"1.43"},"esnext.data-view.get-uint8-clamped":{},"esnext.data-view.set-float16":{deno:"1.43"},"esnext.data-view.set-uint8-clamped":{},"esnext.disposable-stack.constructor":{},"esnext.function.demethodize":{},"esnext.function.is-callable":{},"esnext.function.is-constructor":{},"esnext.function.metadata":{},"esnext.function.un-this":{},"esnext.global-this":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"65","firefox-android":"65",hermes:"0.2",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"10.0"},"esnext.iterator.constructor":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.as-indexed-pairs":{},"esnext.iterator.dispose":{},"esnext.iterator.drop":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.every":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.filter":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.find":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.flat-map":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.for-each":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.from":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.indexed":{},"esnext.iterator.map":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.range":{},"esnext.iterator.reduce":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.some":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.take":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.to-array":{android:"122",chrome:"122","chrome-android":"122",deno:"1.37",edge:"122",electron:"29.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",samsung:"26.0"},"esnext.iterator.to-async":{},"esnext.json.is-raw-json":{android:"114",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",samsung:"23.0"},"esnext.json.parse":{android:"114",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",samsung:"23.0"},"esnext.json.raw-json":{android:"114",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",samsung:"23.0"},"esnext.map.delete-all":{},"esnext.map.emplace":{},"esnext.map.every":{},"esnext.map.filter":{},"esnext.map.find":{},"esnext.map.find-key":{},"esnext.map.from":{},"esnext.map.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",samsung:"24.0"},"esnext.map.includes":{},"esnext.map.key-by":{},"esnext.map.key-of":{},"esnext.map.map-keys":{},"esnext.map.map-values":{},"esnext.map.merge":{},"esnext.map.of":{},"esnext.map.reduce":{},"esnext.map.some":{},"esnext.map.update":{},"esnext.map.update-or-insert":{},"esnext.map.upsert":{},"esnext.math.clamp":{},"esnext.math.deg-per-rad":{},"esnext.math.degrees":{},"esnext.math.fscale":{},"esnext.math.f16round":{deno:"1.43"},"esnext.math.iaddh":{},"esnext.math.imulh":{},"esnext.math.isubh":{},"esnext.math.rad-per-deg":{},"esnext.math.radians":{},"esnext.math.scale":{},"esnext.math.seeded-prng":{},"esnext.math.signbit":{},"esnext.math.sum-precise":{},"esnext.math.umulh":{},"esnext.number.from-string":{},"esnext.number.range":{},"esnext.object.has-own":{android:"93",bun:"0.1.1",chrome:"93","chrome-android":"93",deno:"1.13",edge:"93",electron:"14.0",firefox:"92","firefox-android":"92",hermes:"0.10",ios:"15.4",node:"16.9",oculus:"17.0",opera:"79","opera-android":"66",opera_mobile:"66",quest:"17.0","react-native":"0.69",rhino:"1.7.15",safari:"15.4",samsung:"17.0"},"esnext.object.iterate-entries":{},"esnext.object.iterate-keys":{},"esnext.object.iterate-values":{},"esnext.object.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",samsung:"24.0"},"esnext.observable":{},"esnext.promise.all-settled":{android:"76",bun:"0.1.1",chrome:"76","chrome-android":"76",deno:"1.24",edge:"79",electron:"6.0",firefox:"71","firefox-android":"71",ios:"13.0",node:"12.9",oculus:"7.0",opera:"63","opera-android":"54",opera_mobile:"54",quest:"7.0",rhino:"1.7.15",safari:"13",samsung:"12.0"},"esnext.promise.any":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.24",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0",safari:"14.0",samsung:"14.0"},"esnext.promise.try":{},"esnext.promise.with-resolvers":{android:"119",bun:"0.7.1",chrome:"119","chrome-android":"119",deno:"1.38",edge:"119",electron:"28.0",firefox:"121","firefox-android":"121",ios:"17.4",node:"22.0",oculus:"31.0",opera:"105","opera-android":"79",opera_mobile:"79",quest:"31.0",safari:"17.4",samsung:"25.0"},"esnext.reflect.define-metadata":{},"esnext.reflect.delete-metadata":{},"esnext.reflect.get-metadata":{},"esnext.reflect.get-metadata-keys":{},"esnext.reflect.get-own-metadata":{},"esnext.reflect.get-own-metadata-keys":{},"esnext.reflect.has-metadata":{},"esnext.reflect.has-own-metadata":{},"esnext.reflect.metadata":{},"esnext.regexp.escape":{},"esnext.set.add-all":{},"esnext.set.delete-all":{},"esnext.set.difference.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.difference":{},"esnext.set.every":{},"esnext.set.filter":{},"esnext.set.find":{},"esnext.set.from":{},"esnext.set.intersection.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.intersection":{},"esnext.set.is-disjoint-from.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.is-disjoint-from":{},"esnext.set.is-subset-of.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.is-subset-of":{},"esnext.set.is-superset-of.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.is-superset-of":{},"esnext.set.join":{},"esnext.set.map":{},"esnext.set.of":{},"esnext.set.reduce":{},"esnext.set.some":{},"esnext.set.symmetric-difference.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.symmetric-difference":{},"esnext.set.union.v2":{android:"123",bun:"1.1.1",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0"},"esnext.set.union":{},"esnext.string.at":{},"esnext.string.cooked":{},"esnext.string.code-points":{},"esnext.string.dedent":{},"esnext.string.is-well-formed":{android:"111",bun:"0.4.0",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",safari:"16.4",samsung:"22.0"},"esnext.string.match-all":{android:"80",bun:"0.1.1",chrome:"80","chrome-android":"80",deno:"1.0",edge:"80",electron:"8.0",firefox:"73","firefox-android":"73",hermes:"0.6",ios:"13.4",node:"14.0",oculus:"9.0",opera:"67","opera-android":"57",opera_mobile:"57",quest:"9.0","react-native":"0.69",safari:"13.1",samsung:"13.0"},"esnext.string.replace-all":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"77","firefox-android":"77",hermes:"0.7",ios:"13.4",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.69",rhino:"1.7.15",safari:"13.1",samsung:"14.0"},"esnext.string.to-well-formed":{android:"111",bun:"0.5.7",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",safari:"16.4",samsung:"22.0"},"esnext.symbol.async-dispose":{bun:"1.0.23",deno:"1.38",node:"20.5.0"},"esnext.symbol.custom-matcher":{},"esnext.symbol.dispose":{android:"125",bun:"1.0.23",chrome:"125","chrome-android":"125",deno:"1.38",edge:"125",electron:"31.0",node:"20.5.0",opera:"111"},"esnext.symbol.is-registered-symbol":{},"esnext.symbol.is-registered":{},"esnext.symbol.is-well-known-symbol":{},"esnext.symbol.is-well-known":{},"esnext.symbol.matcher":{},"esnext.symbol.metadata":{deno:"1.40.4"},"esnext.symbol.metadata-key":{},"esnext.symbol.observable":{},"esnext.symbol.pattern-match":{},"esnext.symbol.replace-all":{},"esnext.typed-array.from-async":{},"esnext.typed-array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"esnext.typed-array.filter-out":{},"esnext.typed-array.filter-reject":{},"esnext.typed-array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"esnext.typed-array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",safari:"15.4",samsung:"18.0"},"esnext.typed-array.group-by":{},"esnext.typed-array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"esnext.typed-array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.0",samsung:"21.0"},"esnext.typed-array.to-spliced":{},"esnext.typed-array.unique-by":{},"esnext.typed-array.with":{android:"110",bun:"0.1.9",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.4",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",safari:"16.4",samsung:"21.0"},"esnext.uint8-array.from-base64":{},"esnext.uint8-array.from-hex":{},"esnext.uint8-array.to-base64":{},"esnext.uint8-array.to-hex":{},"esnext.weak-map.delete-all":{},"esnext.weak-map.from":{},"esnext.weak-map.of":{},"esnext.weak-map.emplace":{},"esnext.weak-map.upsert":{},"esnext.weak-set.add-all":{},"esnext.weak-set.delete-all":{},"esnext.weak-set.from":{},"esnext.weak-set.of":{},"web.atob":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"16",electron:"0.20",firefox:"27","firefox-android":"27",ios:"10.3",node:"18.0",oculus:"3.0",opera:"10.5","opera-android":"10.5",opera_mobile:"10.5",quest:"3.0","react-native":"0.74",safari:"10.1",samsung:"2.0"},"web.btoa":{android:"3.0",bun:"0.1.1",chrome:"4","chrome-android":"18",deno:"1.0",edge:"16",electron:"0.20",firefox:"27","firefox-android":"27",ios:"1.0",node:"17.5",oculus:"3.0",opera:"10.5","opera-android":"10.5",opera_mobile:"10.5",phantom:"1.9",quest:"3.0",safari:"3.0",samsung:"1.0"},"web.dom-collections.for-each":{android:"58",bun:"0.1.1",chrome:"58","chrome-android":"58",deno:"1.0",edge:"16",electron:"1.7",firefox:"50","firefox-android":"50",hermes:"0.1",ios:"10.0",node:"0.0.1",oculus:"4.0",opera:"45","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"7.0"},"web.dom-collections.iterator":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"60","firefox-android":"60",hermes:"0.1",ios:"13.4",node:"0.0.1",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"13.1",samsung:"9.0"},"web.dom-exception.constructor":{android:"46",bun:"0.1.1",chrome:"46","chrome-android":"46",deno:"1.7",edge:"79",electron:"0.36",firefox:"37","firefox-android":"37",ios:"11.3",node:"17.0",oculus:"3.0",opera:"33","opera-android":"33",opera_mobile:"33",quest:"3.0",safari:"11.1",samsung:"5.0"},"web.dom-exception.stack":{deno:"1.15",firefox:"37","firefox-android":"37",node:"17.0"},"web.dom-exception.to-string-tag":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.7",edge:"79",electron:"0.37",firefox:"51","firefox-android":"51",ios:"11.3",node:"17.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0",safari:"11.1",samsung:"5.0"},"web.immediate":{bun:"0.4.0",ie:"10",node:"0.9.1"},"web.queue-microtask":{android:"71",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"69","firefox-android":"69",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0",safari:"12.1",samsung:"10.0"},"web.self":{android:"86",bun:"1.0.22",chrome:"86","chrome-android":"86",deno:"1.29.3",edge:"86",electron:"11.0",firefox:"31","firefox-android":"31",ios:"10.0",oculus:"12.0",opera:"72","opera-android":"61",opera_mobile:"61",quest:"12.0",safari:"10",samsung:"14.0"},"web.structured-clone":{},"web.timers":{android:"1.5",bun:"0.4.0",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"10",ios:"1.0",node:"0.0.1",oculus:"3.0",opera:"7","opera-android":"7",opera_mobile:"7",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1.0",samsung:"1.0"},"web.url":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.0",edge:"79",electron:"4.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",safari:"14.0",samsung:"9.0"},"web.url.can-parse":{android:"120",bun:"1.1.0",chrome:"120","chrome-android":"120",deno:"1.33.2",edge:"120",electron:"28.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.1",oculus:"31.0",opera:"106","opera-android":"80",opera_mobile:"80",quest:"31.0",safari:"17.0",samsung:"25.0"},"web.url.parse":{android:"126",bun:"1.1.4",chrome:"126","chrome-android":"126",deno:"1.43",edge:"126",electron:"31.0",firefox:"126","firefox-android":"126",node:"22.0",opera:"112"},"web.url.to-json":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0",safari:"14.0",samsung:"10.0"},"web.url-search-params":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.0",edge:"79",electron:"4.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",safari:"14.0",samsung:"9.0"},"web.url-search-params.delete":{android:"118",bun:"1.0.31",chrome:"118","chrome-android":"118",deno:"1.35",edge:"118",electron:"27.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.2",oculus:"30.0",opera:"104","opera-android":"79",opera_mobile:"79",quest:"30.0",safari:"17.0",samsung:"25.0"},"web.url-search-params.has":{android:"118",bun:"1.0.31",chrome:"118","chrome-android":"118",deno:"1.35",edge:"118",electron:"27.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.2",oculus:"30.0",opera:"104","opera-android":"79",opera_mobile:"79",quest:"30.0",safari:"17.0",samsung:"25.0"},"web.url-search-params.size":{android:"113",bun:"1.0.2",chrome:"113","chrome-android":"113",deno:"1.32",edge:"113",electron:"25.0",firefox:"112","firefox-android":"112",ios:"17.0",node:"19.8",oculus:"28.0",opera:"99","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.0",samsung:"23.0"}},MO,Xle;function Jle(){return Xle||(Xle=1,MO=LO),MO}var lm={},Yle;function Zet(){if(Yle)return lm;Yle=1,lm.__esModule=!0,lm.default=void 0;var e=new Set(["esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.group","esnext.array.group-to-map","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.math.f16round","esnext.promise.try","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata"]);return lm.default=e,lm}var ett=Object.hasOwn||Function.call.bind({}.hasOwnProperty);function jc(e){if(e instanceof jc)return e;if(!(this instanceof jc))return new jc(e);var r=/(\d+)(?:\.(\d+))?(?:\.(\d+))?/.exec(e);if(!r)throw new TypeError("Invalid version: "+e);var s=je(r,4),l=s[1],u=s[2],o=s[3];this.major=+l,this.minor=u?+u:0,this.patch=o?+o:0}jc.prototype.toString=function(){return this.major+"."+this.minor+"."+this.patch};function ttt(e,r,s){for(var l=jc(e),u=jc(s),o=0,c=["major","minor","patch"];o<c.length;o++){var f=c[o];if(l[f]<u[f])return r==="<"||r==="<="||r==="!=";if(l[f]>u[f])return r===">"||r===">="||r==="!="}return r==="=="||r==="<="||r===">="}function rtt(e){for(var r=new Set(e),s=C(r),l;!(l=s()).done;){var u=l.value;u.startsWith("esnext.")&&r.has(u.replace(/^esnext\./,"es."))&&r.delete(u)}return fe(r)}function att(e,r){var s=e instanceof Set?e:new Set(e);return r.filter(function(l){return s.has(l)})}function ntt(e,r){return Object.keys(e).sort(r).reduce(function(s,l){return s[l]=e[l],s},{})}var BO={compare:ttt,filterOutStabilizedProposals:rtt,has:ett,intersection:att,semver:jc,sortObjectByKey:ntt},stt={"3.0":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.now","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.function.bind","es.function.has-instance","es.function.name","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.regexp.constructor","es.regexp.exec","es.regexp.flags","es.regexp.to-string","es.set","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.search","es.string.split","es.string.starts-with","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.last-index","esnext.array.last-item","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.dispose","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.for-each","web.dom-collections.iterator","web.immediate","web.queue-microtask","web.timers","web.url","web.url.to-json","web.url-search-params"],"3.1":["es.string.match-all","es.symbol.match-all","esnext.symbol.replace-all"],"3.2":["es.promise.all-settled","esnext.array.is-template-object","esnext.map.update-or-insert","esnext.symbol.async-dispose"],"3.3":["es.global-this","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.map.upsert","esnext.weak-map.upsert"],"3.4":["es.json.stringify"],"3.5":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"3.6":["es.regexp.sticky","es.regexp.test"],"3.7":["es.aggregate-error","es.promise.any","es.reflect.to-string-tag","es.string.replace-all","esnext.map.emplace","esnext.weak-map.emplace"],"3.8":["esnext.array.at","esnext.array.filter-out","esnext.array.unique-by","esnext.bigint.range","esnext.number.range","esnext.typed-array.at","esnext.typed-array.filter-out"],"3.9":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.unique-by"],"3.11":["esnext.object.has-own"],"3.12":["esnext.symbol.matcher","esnext.symbol.metadata"],"3.15":["es.date.get-year","es.date.set-year","es.date.to-gmt-string","es.escape","es.regexp.dot-all","es.string.substr","es.unescape"],"3.16":["esnext.array.filter-reject","esnext.array.group-by","esnext.typed-array.filter-reject","esnext.typed-array.group-by"],"3.17":["es.array.at","es.object.has-own","es.string.at-alternative","es.typed-array.at"],"3.18":["esnext.array.from-async","esnext.typed-array.from-async"],"3.20":["es.error.cause","es.error.to-string","es.aggregate-error.cause","es.number.to-exponential","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.iterator.to-async","esnext.string.cooked","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"3.21":["web.atob","web.btoa"],"3.23":["es.array.find-last","es.array.find-last-index","es.array.push","es.array.unshift","es.typed-array.find-last","es.typed-array.find-last-index","esnext.array.group","esnext.array.group-to-map","esnext.symbol.metadata-key"],"3.24":["esnext.async-iterator.indexed","esnext.iterator.indexed"],"3.25":["es.object.proto"],"3.26":["esnext.string.is-well-formed","esnext.string.to-well-formed","web.self"],"3.27":["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.disposable-stack.constructor","esnext.iterator.dispose","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.dedent"],"3.28":["es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.with","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.function.demethodize","esnext.iterator.range","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.symbol.is-registered","esnext.symbol.is-well-known"],"3.29":["web.url-search-params.size"],"3.30":["web.url.can-parse"],"3.31":["es.string.is-well-formed","es.string.to-well-formed","esnext.function.metadata","esnext.object.group-by","esnext.promise.with-resolvers","esnext.symbol.is-registered-symbol","esnext.symbol.is-well-known-symbol","web.url-search-params.delete","web.url-search-params.has"],"3.32":["esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.math.f16round"],"3.33":["esnext.regexp.escape"],"3.34":["es.map.group-by","es.object.group-by","es.promise.with-resolvers","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"3.36":["es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length"],"3.37":["es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.math.sum-precise","esnext.symbol.custom-matcher","web.url.parse"]},itt=["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],ott=BO.compare,ltt=BO.intersection,utt=BO.semver,Qle=stt,ctt=itt,Zle=function(r){var s=utt(r);if(s.major!==3)throw new RangeError("This version of `core-js-compat` works only with `core-js@3`.");for(var l=[],u=0,o=Object.keys(Qle);u<o.length;u++){var c=o[u];ott(c,"<=",s)&&l.push.apply(l,fe(Qle[c]))}return ltt(l,ctt)},FO,eue;function dtt(){return eue||(eue=1,FO=Zle),FO}var Vn={},tue;function ptt(){var e;if(tue)return Vn;tue=1,Vn.__esModule=!0,Vn.StaticProperties=Vn.PromiseDependenciesWithIterators=Vn.PromiseDependencies=Vn.InstanceProperties=Vn.DecoratorMetadataDependencies=Vn.CommonIterators=Vn.BuiltIns=void 0;var r=s(Jle());function s(ae){return ae&&ae.__esModule?ae:{default:ae}}function l(){return l=Object.assign?Object.assign.bind():function(ae){for(var J=1;J<arguments.length;J++){var xe=arguments[J];for(var de in xe)Object.prototype.hasOwnProperty.call(xe,de)&&(ae[de]=xe[de])}return ae},l.apply(this,arguments)}var u={};Object.keys(r.default).forEach(function(ae,J){u[ae]=J});var o=function(J,xe,de,$e){return de===void 0&&(de=xe[0]),{name:de,pure:J,global:xe.sort(function(Ve,Ie){return u[Ve]-u[Ie]}),exclude:$e}},c=function(){for(var J=arguments.length,xe=new Array(J),de=0;de<J;de++)xe[de]=arguments[de];return o(null,[].concat(xe,T))},f=["es.array.iterator","web.dom-collections.iterator"],h=["es.string.iterator"].concat(f);Vn.CommonIterators=h;var m=["es.object.to-string"].concat(f),g=["es.object.to-string"].concat(fe(h)),x=["es.error.cause","es.error.to-string"],R=["esnext.suppressed-error.constructor"].concat(x),w=["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],T=["es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.object.to-string","es.array.iterator","esnext.typed-array.filter-reject","esnext.typed-array.group-by","esnext.typed-array.to-spliced","esnext.typed-array.unique-by"].concat(w),I=["es.promise","es.object.to-string"];Vn.PromiseDependencies=I;var P=[].concat(I,fe(h));Vn.PromiseDependenciesWithIterators=P;var O=["es.symbol","es.symbol.description","es.object.to-string"],j=["es.map","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"].concat(fe(g)),D=["es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union"].concat(fe(g)),k=["es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.emplace"].concat(fe(g)),B=["es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all"].concat(fe(g)),F=["web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","es.error.to-string"],L=["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"].concat(fe(g)),V=["esnext.async-iterator.constructor"].concat(I),H=["esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some"],K=["esnext.iterator.constructor","es.object.to-string"],G=["esnext.symbol.metadata","esnext.function.metadata"];Vn.DecoratorMetadataDependencies=G;var X=function(J){return{from:o(null,["es.typed-array.from",J].concat(T)),fromAsync:o(null,["esnext.typed-array.from-async",J].concat(fe(P),T)),of:o(null,["es.typed-array.of",J].concat(T))}},ue=["es.data-view"].concat(w),oe={AsyncDisposableStack:o("async-disposable-stack/index",["esnext.async-disposable-stack.constructor","es.object.to-string","esnext.async-iterator.async-dispose","esnext.iterator.dispose"].concat(I,fe(R))),AsyncIterator:o("async-iterator/index",V),AggregateError:o("aggregate-error",["es.aggregate-error"].concat(x,fe(g),["es.aggregate-error.cause"])),ArrayBuffer:o(null,w),DataView:o(null,ue),Date:o(null,["es.date.to-string"]),DOMException:o("dom-exception/index",F),DisposableStack:o("disposable-stack/index",["esnext.disposable-stack.constructor","es.object.to-string","esnext.iterator.dispose"].concat(fe(R))),Error:o(null,x),EvalError:o(null,x),Float32Array:c("es.typed-array.float32-array"),Float64Array:c("es.typed-array.float64-array"),Int8Array:c("es.typed-array.int8-array"),Int16Array:c("es.typed-array.int16-array"),Int32Array:c("es.typed-array.int32-array"),Iterator:o("iterator/index",K),Uint8Array:c("es.typed-array.uint8-array","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"),Uint8ClampedArray:c("es.typed-array.uint8-clamped-array"),Uint16Array:c("es.typed-array.uint16-array"),Uint32Array:c("es.typed-array.uint32-array"),Map:o("map/index",j),Number:o(null,["es.number.constructor"]),Observable:o("observable/index",["esnext.observable","esnext.symbol.observable","es.object.to-string"].concat(fe(g))),Promise:o("promise/index",I),RangeError:o(null,x),ReferenceError:o(null,x),Reflect:o(null,["es.reflect.to-string-tag","es.object.to-string"]),RegExp:o(null,["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky","es.regexp.to-string"]),Set:o("set/index",D),SuppressedError:o("suppressed-error",R),Symbol:o("symbol/index",O),SyntaxError:o(null,x),TypeError:o(null,x),URIError:o(null,x),URL:o("url/index",["web.url","web.url.to-json"].concat(fe(L))),URLSearchParams:o("url-search-params/index",L),WeakMap:o("weak-map/index",k),WeakSet:o("weak-set/index",B),atob:o("atob",["web.atob"].concat(F)),btoa:o("btoa",["web.btoa"].concat(F)),clearImmediate:o("clear-immediate",["web.immediate"]),compositeKey:o("composite-key",["esnext.composite-key"]),compositeSymbol:o("composite-symbol",["esnext.composite-symbol"]),escape:o("escape",["es.escape"]),fetch:o(null,I),globalThis:o("global-this",["es.global-this"]),parseFloat:o("parse-float",["es.parse-float"]),parseInt:o("parse-int",["es.parse-int"]),queueMicrotask:o("queue-microtask",["web.queue-microtask"]),self:o("self",["web.self"]),setImmediate:o("set-immediate",["web.immediate"]),setInterval:o("set-interval",["web.timers"]),setTimeout:o("set-timeout",["web.timers"]),structuredClone:o("structured-clone",["web.structured-clone"].concat(F,["es.array.iterator","es.object.keys","es.object.to-string","es.map","es.set"])),unescape:o("unescape",["es.unescape"])};Vn.BuiltIns=oe;var he={AsyncIterator:{from:o("async-iterator/from",["esnext.async-iterator.from"].concat(fe(V),H,fe(h)))},Array:{from:o("array/from",["es.array.from","es.string.iterator"]),fromAsync:o("array/from-async",["esnext.array.from-async"].concat(fe(P))),isArray:o("array/is-array",["es.array.is-array"]),isTemplateObject:o("array/is-template-object",["esnext.array.is-template-object"]),of:o("array/of",["es.array.of"])},ArrayBuffer:{isView:o(null,["es.array-buffer.is-view"])},BigInt:{range:o("bigint/range",["esnext.bigint.range","es.object.to-string"])},Date:{now:o("date/now",["es.date.now"])},Function:{isCallable:o("function/is-callable",["esnext.function.is-callable"]),isConstructor:o("function/is-constructor",["esnext.function.is-constructor"])},Iterator:{from:o("iterator/from",["esnext.iterator.from"].concat(K,fe(h))),range:o("iterator/range",["esnext.iterator.range","es.object.to-string"])},JSON:{isRawJSON:o("json/is-raw-json",["esnext.json.is-raw-json"]),parse:o("json/parse",["esnext.json.parse","es.object.keys"]),rawJSON:o("json/raw-json",["esnext.json.raw-json","es.object.create","es.object.freeze"]),stringify:o("json/stringify",["es.json.stringify","es.date.to-json"],"es.symbol")},Math:{DEG_PER_RAD:o("math/deg-per-rad",["esnext.math.deg-per-rad"]),RAD_PER_DEG:o("math/rad-per-deg",["esnext.math.rad-per-deg"]),acosh:o("math/acosh",["es.math.acosh"]),asinh:o("math/asinh",["es.math.asinh"]),atanh:o("math/atanh",["es.math.atanh"]),cbrt:o("math/cbrt",["es.math.cbrt"]),clamp:o("math/clamp",["esnext.math.clamp"]),clz32:o("math/clz32",["es.math.clz32"]),cosh:o("math/cosh",["es.math.cosh"]),degrees:o("math/degrees",["esnext.math.degrees"]),expm1:o("math/expm1",["es.math.expm1"]),fround:o("math/fround",["es.math.fround"]),f16round:o("math/f16round",["esnext.math.f16round"]),fscale:o("math/fscale",["esnext.math.fscale"]),hypot:o("math/hypot",["es.math.hypot"]),iaddh:o("math/iaddh",["esnext.math.iaddh"]),imul:o("math/imul",["es.math.imul"]),imulh:o("math/imulh",["esnext.math.imulh"]),isubh:o("math/isubh",["esnext.math.isubh"]),log10:o("math/log10",["es.math.log10"]),log1p:o("math/log1p",["es.math.log1p"]),log2:o("math/log2",["es.math.log2"]),radians:o("math/radians",["esnext.math.radians"]),scale:o("math/scale",["esnext.math.scale"]),seededPRNG:o("math/seeded-prng",["esnext.math.seeded-prng"]),sign:o("math/sign",["es.math.sign"]),signbit:o("math/signbit",["esnext.math.signbit"]),sinh:o("math/sinh",["es.math.sinh"]),sumPrecise:o("math/sum-precise",["esnext.math.sum-precise","es.array.iterator"]),tanh:o("math/tanh",["es.math.tanh"]),trunc:o("math/trunc",["es.math.trunc"]),umulh:o("math/umulh",["esnext.math.umulh"])},Map:{from:o("map/from",["esnext.map.from"].concat(fe(j))),groupBy:o("map/group-by",["es.map.group-by"].concat(fe(j))),keyBy:o("map/key-by",["esnext.map.key-by"].concat(fe(j))),of:o("map/of",["esnext.map.of"].concat(fe(j)))},Number:{EPSILON:o("number/epsilon",["es.number.epsilon"]),MAX_SAFE_INTEGER:o("number/max-safe-integer",["es.number.max-safe-integer"]),MIN_SAFE_INTEGER:o("number/min-safe-integer",["es.number.min-safe-integer"]),fromString:o("number/from-string",["esnext.number.from-string"]),isFinite:o("number/is-finite",["es.number.is-finite"]),isInteger:o("number/is-integer",["es.number.is-integer"]),isNaN:o("number/is-nan",["es.number.is-nan"]),isSafeInteger:o("number/is-safe-integer",["es.number.is-safe-integer"]),parseFloat:o("number/parse-float",["es.number.parse-float"]),parseInt:o("number/parse-int",["es.number.parse-int"]),range:o("number/range",["esnext.number.range","es.object.to-string"])},Object:{assign:o("object/assign",["es.object.assign"]),create:o("object/create",["es.object.create"]),defineProperties:o("object/define-properties",["es.object.define-properties"]),defineProperty:o("object/define-property",["es.object.define-property"]),entries:o("object/entries",["es.object.entries"]),freeze:o("object/freeze",["es.object.freeze"]),fromEntries:o("object/from-entries",["es.object.from-entries","es.array.iterator"]),getOwnPropertyDescriptor:o("object/get-own-property-descriptor",["es.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:o("object/get-own-property-descriptors",["es.object.get-own-property-descriptors"]),getOwnPropertyNames:o("object/get-own-property-names",["es.object.get-own-property-names"]),getOwnPropertySymbols:o("object/get-own-property-symbols",["es.symbol"]),getPrototypeOf:o("object/get-prototype-of",["es.object.get-prototype-of"]),groupBy:o("object/group-by",["es.object.group-by","es.object.create"]),hasOwn:o("object/has-own",["es.object.has-own"]),is:o("object/is",["es.object.is"]),isExtensible:o("object/is-extensible",["es.object.is-extensible"]),isFrozen:o("object/is-frozen",["es.object.is-frozen"]),isSealed:o("object/is-sealed",["es.object.is-sealed"]),keys:o("object/keys",["es.object.keys"]),preventExtensions:o("object/prevent-extensions",["es.object.prevent-extensions"]),seal:o("object/seal",["es.object.seal"]),setPrototypeOf:o("object/set-prototype-of",["es.object.set-prototype-of"]),values:o("object/values",["es.object.values"])},Promise:{all:o(null,P),allSettled:o("promise/all-settled",["es.promise.all-settled"].concat(fe(P))),any:o("promise/any",["es.promise.any","es.aggregate-error"].concat(fe(P))),race:o(null,P),try:o("promise/try",["esnext.promise.try"].concat(I)),withResolvers:o("promise/with-resolvers",["es.promise.with-resolvers"].concat(I))},Reflect:{apply:o("reflect/apply",["es.reflect.apply"]),construct:o("reflect/construct",["es.reflect.construct"]),defineMetadata:o("reflect/define-metadata",["esnext.reflect.define-metadata"]),defineProperty:o("reflect/define-property",["es.reflect.define-property"]),deleteMetadata:o("reflect/delete-metadata",["esnext.reflect.delete-metadata"]),deleteProperty:o("reflect/delete-property",["es.reflect.delete-property"]),get:o("reflect/get",["es.reflect.get"]),getMetadata:o("reflect/get-metadata",["esnext.reflect.get-metadata"]),getMetadataKeys:o("reflect/get-metadata-keys",["esnext.reflect.get-metadata-keys"]),getOwnMetadata:o("reflect/get-own-metadata",["esnext.reflect.get-own-metadata"]),getOwnMetadataKeys:o("reflect/get-own-metadata-keys",["esnext.reflect.get-own-metadata-keys"]),getOwnPropertyDescriptor:o("reflect/get-own-property-descriptor",["es.reflect.get-own-property-descriptor"]),getPrototypeOf:o("reflect/get-prototype-of",["es.reflect.get-prototype-of"]),has:o("reflect/has",["es.reflect.has"]),hasMetadata:o("reflect/has-metadata",["esnext.reflect.has-metadata"]),hasOwnMetadata:o("reflect/has-own-metadata",["esnext.reflect.has-own-metadata"]),isExtensible:o("reflect/is-extensible",["es.reflect.is-extensible"]),metadata:o("reflect/metadata",["esnext.reflect.metadata"]),ownKeys:o("reflect/own-keys",["es.reflect.own-keys"]),preventExtensions:o("reflect/prevent-extensions",["es.reflect.prevent-extensions"]),set:o("reflect/set",["es.reflect.set"]),setPrototypeOf:o("reflect/set-prototype-of",["es.reflect.set-prototype-of"])},RegExp:{escape:o("regexp/escape",["esnext.regexp.escape"])},Set:{from:o("set/from",["esnext.set.from"].concat(fe(D))),of:o("set/of",["esnext.set.of"].concat(fe(D)))},String:{cooked:o("string/cooked",["esnext.string.cooked"]),dedent:o("string/dedent",["esnext.string.dedent","es.string.from-code-point","es.weak-map"]),fromCodePoint:o("string/from-code-point",["es.string.from-code-point"]),raw:o("string/raw",["es.string.raw"])},Symbol:{asyncDispose:o("symbol/async-dispose",["esnext.symbol.async-dispose","esnext.async-iterator.async-dispose"]),asyncIterator:o("symbol/async-iterator",["es.symbol.async-iterator"]),customMatcher:o("symbol/custom-matcher",["esnext.symbol.custom-matcher"]),dispose:o("symbol/dispose",["esnext.symbol.dispose","esnext.iterator.dispose"]),for:o("symbol/for",[],"es.symbol"),hasInstance:o("symbol/has-instance",["es.symbol.has-instance","es.function.has-instance"]),isConcatSpreadable:o("symbol/is-concat-spreadable",["es.symbol.is-concat-spreadable","es.array.concat"]),isRegistered:o("symbol/is-registered",["esnext.symbol.is-registered","es.symbol"]),isRegisteredSymbol:o("symbol/is-registered-symbol",["esnext.symbol.is-registered-symbol","es.symbol"]),isWellKnown:o("symbol/is-well-known",["esnext.symbol.is-well-known","es.symbol"]),isWellKnownSymbol:o("symbol/is-well-known-symbol",["esnext.symbol.is-well-known-symbol","es.symbol"]),iterator:o("symbol/iterator",["es.symbol.iterator"].concat(fe(g))),keyFor:o("symbol/key-for",[],"es.symbol"),match:o("symbol/match",["es.symbol.match","es.string.match"]),matcher:o("symbol/matcher",["esnext.symbol.matcher"]),matchAll:o("symbol/match-all",["es.symbol.match-all","es.string.match-all"]),metadata:o("symbol/metadata",G),metadataKey:o("symbol/metadata-key",["esnext.symbol.metadata-key"]),observable:o("symbol/observable",["esnext.symbol.observable"]),patternMatch:o("symbol/pattern-match",["esnext.symbol.pattern-match"]),replace:o("symbol/replace",["es.symbol.replace","es.string.replace"]),search:o("symbol/search",["es.symbol.search","es.string.search"]),species:o("symbol/species",["es.symbol.species","es.array.species"]),split:o("symbol/split",["es.symbol.split","es.string.split"]),toPrimitive:o("symbol/to-primitive",["es.symbol.to-primitive","es.date.to-primitive"]),toStringTag:o("symbol/to-string-tag",["es.symbol.to-string-tag","es.object.to-string","es.math.to-string-tag","es.json.to-string-tag"]),unscopables:o("symbol/unscopables",["es.symbol.unscopables"])},URL:{canParse:o("url/can-parse",["web.url.can-parse","web.url"]),parse:o("url/parse",["web.url.parse","web.url"])},WeakMap:{from:o("weak-map/from",["esnext.weak-map.from"].concat(fe(k))),of:o("weak-map/of",["esnext.weak-map.of"].concat(fe(k)))},WeakSet:{from:o("weak-set/from",["esnext.weak-set.from"].concat(fe(B))),of:o("weak-set/of",["esnext.weak-set.of"].concat(fe(B)))},Int8Array:X("es.typed-array.int8-array"),Uint8Array:l({fromBase64:o(null,["esnext.uint8-array.from-base64"].concat(T)),fromHex:o(null,["esnext.uint8-array.from-hex"].concat(T))},X("es.typed-array.uint8-array")),Uint8ClampedArray:X("es.typed-array.uint8-clamped-array"),Int16Array:X("es.typed-array.int16-array"),Uint16Array:X("es.typed-array.uint16-array"),Int32Array:X("es.typed-array.int32-array"),Uint32Array:X("es.typed-array.uint32-array"),Float32Array:X("es.typed-array.float32-array"),Float64Array:X("es.typed-array.float64-array"),WebAssembly:{CompileError:o(null,x),LinkError:o(null,x),RuntimeError:o(null,x)}};Vn.StaticProperties=he;var te=(e={asIndexedPairs:o(null,["esnext.async-iterator.as-indexed-pairs"].concat(fe(V),["esnext.iterator.as-indexed-pairs"],K)),at:o("instance/at",["esnext.string.at","es.string.at-alternative","es.array.at"]),anchor:o(null,["es.string.anchor"]),big:o(null,["es.string.big"]),bind:o("instance/bind",["es.function.bind"]),blink:o(null,["es.string.blink"]),bold:o(null,["es.string.bold"]),codePointAt:o("instance/code-point-at",["es.string.code-point-at"]),codePoints:o("instance/code-points",["esnext.string.code-points"]),concat:o("instance/concat",["es.array.concat"],void 0,["String"]),copyWithin:o("instance/copy-within",["es.array.copy-within"]),demethodize:o("instance/demethodize",["esnext.function.demethodize"]),description:o(null,["es.symbol","es.symbol.description"]),dotAll:o(null,["es.regexp.dot-all"]),drop:o(null,["esnext.async-iterator.drop"].concat(fe(V),["esnext.iterator.drop"],K)),emplace:o("instance/emplace",["esnext.map.emplace","esnext.weak-map.emplace"]),endsWith:o("instance/ends-with",["es.string.ends-with"]),entries:o("instance/entries",m),every:o("instance/every",["es.array.every","esnext.async-iterator.every","esnext.iterator.every"].concat(K)),exec:o(null,["es.regexp.exec"]),fill:o("instance/fill",["es.array.fill"]),filter:o("instance/filter",["es.array.filter","esnext.async-iterator.filter","esnext.iterator.filter"].concat(K)),filterReject:o("instance/filterReject",["esnext.array.filter-reject"]),finally:o(null,["es.promise.finally"].concat(I)),find:o("instance/find",["es.array.find","esnext.async-iterator.find","esnext.iterator.find"].concat(K)),findIndex:o("instance/find-index",["es.array.find-index"]),findLast:o("instance/find-last",["es.array.find-last"]),findLastIndex:o("instance/find-last-index",["es.array.find-last-index"]),fixed:o(null,["es.string.fixed"]),flags:o("instance/flags",["es.regexp.flags"]),flatMap:o("instance/flat-map",["es.array.flat-map","es.array.unscopables.flat-map","esnext.async-iterator.flat-map","esnext.iterator.flat-map"].concat(K)),flat:o("instance/flat",["es.array.flat","es.array.unscopables.flat"]),getFloat16:o(null,["esnext.data-view.get-float16"].concat(fe(ue))),getUint8Clamped:o(null,["esnext.data-view.get-uint8-clamped"].concat(fe(ue))),getYear:o(null,["es.date.get-year"]),group:o("instance/group",["esnext.array.group"]),groupBy:o("instance/group-by",["esnext.array.group-by"]),groupByToMap:o("instance/group-by-to-map",["esnext.array.group-by-to-map","es.map","es.object.to-string"]),groupToMap:o("instance/group-to-map",["esnext.array.group-to-map","es.map","es.object.to-string"]),fontcolor:o(null,["es.string.fontcolor"]),fontsize:o(null,["es.string.fontsize"]),forEach:o("instance/for-each",["es.array.for-each","esnext.async-iterator.for-each","esnext.iterator.for-each"].concat(K,["web.dom-collections.for-each"])),includes:o("instance/includes",["es.array.includes","es.string.includes"]),indexed:o(null,["esnext.async-iterator.indexed"].concat(fe(V),["esnext.iterator.indexed"],K)),indexOf:o("instance/index-of",["es.array.index-of"]),isWellFormed:o("instance/is-well-formed",["es.string.is-well-formed"]),italic:o(null,["es.string.italics"]),join:o(null,["es.array.join"]),keys:o("instance/keys",m),lastIndex:o(null,["esnext.array.last-index"]),lastIndexOf:o("instance/last-index-of",["es.array.last-index-of"]),lastItem:o(null,["esnext.array.last-item"]),link:o(null,["es.string.link"]),map:o("instance/map",["es.array.map","esnext.async-iterator.map","esnext.iterator.map"]),match:o(null,["es.string.match","es.regexp.exec"]),matchAll:o("instance/match-all",["es.string.match-all","es.regexp.exec"]),name:o(null,["es.function.name"]),padEnd:o("instance/pad-end",["es.string.pad-end"]),padStart:o("instance/pad-start",["es.string.pad-start"]),push:o("instance/push",["es.array.push"]),reduce:o("instance/reduce",["es.array.reduce","esnext.async-iterator.reduce","esnext.iterator.reduce"].concat(K)),reduceRight:o("instance/reduce-right",["es.array.reduce-right"]),repeat:o("instance/repeat",["es.string.repeat"]),replace:o(null,["es.string.replace","es.regexp.exec"]),replaceAll:o("instance/replace-all",["es.string.replace-all","es.string.replace","es.regexp.exec"]),reverse:o("instance/reverse",["es.array.reverse"]),search:o(null,["es.string.search","es.regexp.exec"]),setFloat16:o(null,["esnext.data-view.set-float16"].concat(fe(ue))),setUint8Clamped:o(null,["esnext.data-view.set-uint8-clamped"].concat(fe(ue))),setYear:o(null,["es.date.set-year"]),slice:o("instance/slice",["es.array.slice"]),small:o(null,["es.string.small"]),some:o("instance/some",["es.array.some","esnext.async-iterator.some","esnext.iterator.some"].concat(K)),sort:o("instance/sort",["es.array.sort"]),splice:o("instance/splice",["es.array.splice"]),split:o(null,["es.string.split","es.regexp.exec"]),startsWith:o("instance/starts-with",["es.string.starts-with"]),sticky:o(null,["es.regexp.sticky"]),strike:o(null,["es.string.strike"]),sub:o(null,["es.string.sub"]),substr:o(null,["es.string.substr"]),sup:o(null,["es.string.sup"]),take:o(null,["esnext.async-iterator.take"].concat(fe(V),["esnext.iterator.take"],K)),test:o(null,["es.regexp.test","es.regexp.exec"]),toArray:o(null,["esnext.async-iterator.to-array"].concat(fe(V),["esnext.iterator.to-array"],K)),toAsync:o(null,["esnext.iterator.to-async"].concat(K,fe(V),H)),toExponential:o(null,["es.number.to-exponential"]),toFixed:o(null,["es.number.to-fixed"]),toGMTString:o(null,["es.date.to-gmt-string"]),toISOString:o(null,["es.date.to-iso-string"]),toJSON:o(null,["es.date.to-json"]),toPrecision:o(null,["es.number.to-precision"]),toReversed:o("instance/to-reversed",["es.array.to-reversed"]),toSorted:o("instance/to-sorted",["es.array.to-sorted","es.array.sort"]),toSpliced:o("instance/to-spliced",["es.array.to-spliced"]),toString:o(null,["es.object.to-string","es.error.to-string","es.date.to-string","es.regexp.to-string"]),toWellFormed:o("instance/to-well-formed",["es.string.to-well-formed"]),trim:o("instance/trim",["es.string.trim"]),trimEnd:o("instance/trim-end",["es.string.trim-end"]),trimLeft:o("instance/trim-left",["es.string.trim-start"]),trimRight:o("instance/trim-right",["es.string.trim-end"]),trimStart:o("instance/trim-start",["es.string.trim-start"]),uniqueBy:o("instance/unique-by",["esnext.array.unique-by","es.map"]),unshift:o("instance/unshift",["es.array.unshift"]),unThis:o("instance/un-this",["esnext.function.un-this"]),values:o("instance/values",m),with:o("instance/with",["es.array.with"]),__defineGetter__:o(null,["es.object.define-getter"]),__defineSetter__:o(null,["es.object.define-setter"]),__lookupGetter__:o(null,["es.object.lookup-getter"]),__lookupSetter__:o(null,["es.object.lookup-setter"])},e.__proto__=o(null,["es.object.proto"]),e);return Vn.InstanceProperties=te,Vn}var Oc={},rue;function ftt(){if(rue)return Oc;rue=1,Oc.__esModule=!0,Oc.stable=Oc.proposals=void 0;var e=new Set(["array","array/from","array/is-array","array/of","clear-immediate","date/now","instance/bind","instance/code-point-at","instance/concat","instance/copy-within","instance/ends-with","instance/entries","instance/every","instance/fill","instance/filter","instance/find","instance/find-index","instance/flags","instance/flat","instance/flat-map","instance/for-each","instance/includes","instance/index-of","instance/keys","instance/last-index-of","instance/map","instance/pad-end","instance/pad-start","instance/reduce","instance/reduce-right","instance/repeat","instance/reverse","instance/slice","instance/some","instance/sort","instance/splice","instance/starts-with","instance/trim","instance/trim-end","instance/trim-left","instance/trim-right","instance/trim-start","instance/values","json/stringify","map","math/acosh","math/asinh","math/atanh","math/cbrt","math/clz32","math/cosh","math/expm1","math/fround","math/hypot","math/imul","math/log10","math/log1p","math/log2","math/sign","math/sinh","math/tanh","math/trunc","number/epsilon","number/is-finite","number/is-integer","number/is-nan","number/is-safe-integer","number/max-safe-integer","number/min-safe-integer","number/parse-float","number/parse-int","object/assign","object/create","object/define-properties","object/define-property","object/entries","object/freeze","object/from-entries","object/get-own-property-descriptor","object/get-own-property-descriptors","object/get-own-property-names","object/get-own-property-symbols","object/get-prototype-of","object/is","object/is-extensible","object/is-frozen","object/is-sealed","object/keys","object/prevent-extensions","object/seal","object/set-prototype-of","object/values","parse-float","parse-int","promise","queue-microtask","reflect/apply","reflect/construct","reflect/define-property","reflect/delete-property","reflect/get","reflect/get-own-property-descriptor","reflect/get-prototype-of","reflect/has","reflect/is-extensible","reflect/own-keys","reflect/prevent-extensions","reflect/set","reflect/set-prototype-of","set","set-immediate","set-interval","set-timeout","string/from-code-point","string/raw","symbol","symbol/async-iterator","symbol/for","symbol/has-instance","symbol/is-concat-spreadable","symbol/iterator","symbol/key-for","symbol/match","symbol/replace","symbol/search","symbol/species","symbol/split","symbol/to-primitive","symbol/to-string-tag","symbol/unscopables","url","url-search-params","weak-map","weak-set"]);Oc.stable=e;var r=new Set([].concat(fe(e),["aggregate-error","composite-key","composite-symbol","global-this","instance/at","instance/code-points","instance/match-all","instance/replace-all","math/clamp","math/degrees","math/deg-per-rad","math/fscale","math/iaddh","math/imulh","math/isubh","math/rad-per-deg","math/radians","math/scale","math/seeded-prng","math/signbit","math/umulh","number/from-string","observable","reflect/define-metadata","reflect/delete-metadata","reflect/get-metadata","reflect/get-metadata-keys","reflect/get-own-metadata","reflect/get-own-metadata-keys","reflect/has-metadata","reflect/has-own-metadata","reflect/metadata","symbol/dispose","symbol/observable","symbol/pattern-match"]));return Oc.proposals=r,Oc}var Vv={},aue;function htt(){if(aue)return Vv;aue=1,Vv.__esModule=!0,Vv.default=o;var e=s(Qo);function r(c){if(typeof WeakMap!="function")return null;var f=new WeakMap,h=new WeakMap;return(r=function(g){return g?h:f})(c)}function s(c,f){if(c&&c.__esModule)return c;if(c===null||typeof c!="object"&&typeof c!="function")return{default:c};var h=r(f);if(h&&h.has(c))return h.get(c);var m={},g=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var x in c)if(x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)){var R=g?Object.getOwnPropertyDescriptor(c,x):null;R&&(R.get||R.set)?Object.defineProperty(m,x,R):m[x]=c[x]}return m.default=c,h&&h.set(c,m),m}var l=e.default||e,u=l.types;function o(c,f){var h=f.node,m=f.parent;switch(c.name){case"es.string.split":{if(!u.isCallExpression(m,{callee:h}))return!1;if(m.arguments.length<1)return!0;var g=m.arguments[0];return u.isStringLiteral(g)||u.isTemplateLiteral(g)}}}return Vv}var Zo={},nue={"core-js":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.group-by","esnext.math.f16round","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.with-resolvers","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/aggregate-error":[],"core-js/actual/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/actual/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/actual/array-buffer/slice":["es.array-buffer.slice"],"core-js/actual/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/actual/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array/at":["es.array.at"],"core-js/actual/array/concat":["es.array.concat"],"core-js/actual/array/copy-within":["es.array.copy-within"],"core-js/actual/array/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/every":["es.array.every"],"core-js/actual/array/fill":["es.array.fill"],"core-js/actual/array/filter":["es.array.filter"],"core-js/actual/array/find":["es.array.find"],"core-js/actual/array/find-index":["es.array.find-index"],"core-js/actual/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/for-each":["es.array.for-each"],"core-js/actual/array/from":["es.array.from","es.string.iterator"],"core-js/actual/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/actual/array/group":["esnext.array.group"],"core-js/actual/array/group-by":["esnext.array.group-by"],"core-js/actual/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/array/includes":["es.array.includes"],"core-js/actual/array/index-of":["es.array.index-of"],"core-js/actual/array/is-array":["es.array.is-array"],"core-js/actual/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/join":["es.array.join"],"core-js/actual/array/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/last-index-of":["es.array.last-index-of"],"core-js/actual/array/map":["es.array.map"],"core-js/actual/array/of":["es.array.of"],"core-js/actual/array/push":["es.array.push"],"core-js/actual/array/reduce":["es.array.reduce"],"core-js/actual/array/reduce-right":["es.array.reduce-right"],"core-js/actual/array/reverse":["es.array.reverse"],"core-js/actual/array/slice":["es.array.slice"],"core-js/actual/array/some":["es.array.some"],"core-js/actual/array/sort":["es.array.sort"],"core-js/actual/array/splice":["es.array.splice"],"core-js/actual/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/array/unshift":["es.array.unshift"],"core-js/actual/array/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array/virtual/at":["es.array.at"],"core-js/actual/array/virtual/concat":["es.array.concat"],"core-js/actual/array/virtual/copy-within":["es.array.copy-within"],"core-js/actual/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/every":["es.array.every"],"core-js/actual/array/virtual/fill":["es.array.fill"],"core-js/actual/array/virtual/filter":["es.array.filter"],"core-js/actual/array/virtual/find":["es.array.find"],"core-js/actual/array/virtual/find-index":["es.array.find-index"],"core-js/actual/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/virtual/for-each":["es.array.for-each"],"core-js/actual/array/virtual/group":["esnext.array.group"],"core-js/actual/array/virtual/group-by":["esnext.array.group-by"],"core-js/actual/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/array/virtual/includes":["es.array.includes"],"core-js/actual/array/virtual/index-of":["es.array.index-of"],"core-js/actual/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/join":["es.array.join"],"core-js/actual/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/actual/array/virtual/map":["es.array.map"],"core-js/actual/array/virtual/push":["es.array.push"],"core-js/actual/array/virtual/reduce":["es.array.reduce"],"core-js/actual/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/actual/array/virtual/reverse":["es.array.reverse"],"core-js/actual/array/virtual/slice":["es.array.slice"],"core-js/actual/array/virtual/some":["es.array.some"],"core-js/actual/array/virtual/sort":["es.array.sort"],"core-js/actual/array/virtual/splice":["es.array.splice"],"core-js/actual/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/array/virtual/unshift":["es.array.unshift"],"core-js/actual/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/actual/array/with":["es.array.with","esnext.array.with"],"core-js/actual/async-disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/actual/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/actual/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/actual/async-iterator/async-dispose":["es.object.to-string","es.promise","esnext.async-iterator.async-dispose"],"core-js/actual/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/actual/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/actual/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/actual/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/actual/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/actual/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/actual/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/actual/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/actual/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/actual/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/actual/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/actual/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/actual/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/clear-immediate":["web.immediate"],"core-js/actual/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.set-float16"],"core-js/actual/data-view/get-float16":["esnext.data-view.get-float16"],"core-js/actual/data-view/set-float16":["esnext.data-view.set-float16"],"core-js/actual/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/actual/date/get-year":["es.date.get-year"],"core-js/actual/date/now":["es.date.now"],"core-js/actual/date/set-year":["es.date.set-year"],"core-js/actual/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/actual/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/actual/date/to-json":["es.date.to-json"],"core-js/actual/date/to-primitive":["es.date.to-primitive"],"core-js/actual/date/to-string":["es.date.to-string"],"core-js/actual/disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/actual/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/actual/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/actual/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/actual/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/actual/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/actual/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/actual/error":["es.error.cause","es.error.to-string"],"core-js/actual/error/constructor":["es.error.cause"],"core-js/actual/error/to-string":["es.error.to-string"],"core-js/actual/escape":["es.escape"],"core-js/actual/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.metadata"],"core-js/actual/function/bind":["es.function.bind"],"core-js/actual/function/has-instance":["es.function.has-instance"],"core-js/actual/function/metadata":["esnext.function.metadata"],"core-js/actual/function/name":["es.function.name"],"core-js/actual/function/virtual":["es.function.bind"],"core-js/actual/function/virtual/bind":["es.function.bind"],"core-js/actual/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/global-this":["es.global-this"],"core-js/actual/instance/at":["es.array.at","es.string.at-alternative"],"core-js/actual/instance/bind":["es.function.bind"],"core-js/actual/instance/code-point-at":["es.string.code-point-at"],"core-js/actual/instance/concat":["es.array.concat"],"core-js/actual/instance/copy-within":["es.array.copy-within"],"core-js/actual/instance/ends-with":["es.string.ends-with"],"core-js/actual/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/every":["es.array.every"],"core-js/actual/instance/fill":["es.array.fill"],"core-js/actual/instance/filter":["es.array.filter"],"core-js/actual/instance/find":["es.array.find"],"core-js/actual/instance/find-index":["es.array.find-index"],"core-js/actual/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/instance/flags":["es.regexp.flags"],"core-js/actual/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/actual/instance/group":["esnext.array.group"],"core-js/actual/instance/group-by":["esnext.array.group-by"],"core-js/actual/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/instance/includes":["es.array.includes","es.string.includes"],"core-js/actual/instance/index-of":["es.array.index-of"],"core-js/actual/instance/is-well-formed":["es.string.is-well-formed"],"core-js/actual/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/last-index-of":["es.array.last-index-of"],"core-js/actual/instance/map":["es.array.map"],"core-js/actual/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/instance/pad-end":["es.string.pad-end"],"core-js/actual/instance/pad-start":["es.string.pad-start"],"core-js/actual/instance/push":["es.array.push"],"core-js/actual/instance/reduce":["es.array.reduce"],"core-js/actual/instance/reduce-right":["es.array.reduce-right"],"core-js/actual/instance/repeat":["es.string.repeat"],"core-js/actual/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/instance/reverse":["es.array.reverse"],"core-js/actual/instance/slice":["es.array.slice"],"core-js/actual/instance/some":["es.array.some"],"core-js/actual/instance/sort":["es.array.sort"],"core-js/actual/instance/splice":["es.array.splice"],"core-js/actual/instance/starts-with":["es.string.starts-with"],"core-js/actual/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/instance/to-well-formed":["es.string.to-well-formed"],"core-js/actual/instance/trim":["es.string.trim"],"core-js/actual/instance/trim-end":["es.string.trim-end"],"core-js/actual/instance/trim-left":["es.string.trim-start"],"core-js/actual/instance/trim-right":["es.string.trim-end"],"core-js/actual/instance/trim-start":["es.string.trim-start"],"core-js/actual/instance/unshift":["es.array.unshift"],"core-js/actual/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/with":["es.array.with","esnext.array.with"],"core-js/actual/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/actual/iterator/dispose":["esnext.iterator.dispose"],"core-js/actual/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/actual/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/actual/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/actual/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/actual/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/actual/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/actual/iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/actual/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/actual/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/actual/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/actual/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/actual/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/actual/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/actual/json":["es.date.to-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/actual/json/is-raw-json":["esnext.json.is-raw-json"],"core-js/actual/json/parse":["es.object.keys","esnext.json.parse"],"core-js/actual/json/raw-json":["es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/actual/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/actual/json/to-string-tag":["es.json.to-string-tag"],"core-js/actual/map":["es.array.iterator","es.map","es.map.group-by","es.object.to-string","es.string.iterator","esnext.map.group-by","web.dom-collections.iterator"],"core-js/actual/map/group-by":["es.map","es.map.group-by","es.object.to-string","esnext.map.group-by"],"core-js/actual/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.f16round"],"core-js/actual/math/acosh":["es.math.acosh"],"core-js/actual/math/asinh":["es.math.asinh"],"core-js/actual/math/atanh":["es.math.atanh"],"core-js/actual/math/cbrt":["es.math.cbrt"],"core-js/actual/math/clz32":["es.math.clz32"],"core-js/actual/math/cosh":["es.math.cosh"],"core-js/actual/math/expm1":["es.math.expm1"],"core-js/actual/math/f16round":["esnext.math.f16round"],"core-js/actual/math/fround":["es.math.fround"],"core-js/actual/math/hypot":["es.math.hypot"],"core-js/actual/math/imul":["es.math.imul"],"core-js/actual/math/log10":["es.math.log10"],"core-js/actual/math/log1p":["es.math.log1p"],"core-js/actual/math/log2":["es.math.log2"],"core-js/actual/math/sign":["es.math.sign"],"core-js/actual/math/sinh":["es.math.sinh"],"core-js/actual/math/tanh":["es.math.tanh"],"core-js/actual/math/to-string-tag":["es.math.to-string-tag"],"core-js/actual/math/trunc":["es.math.trunc"],"core-js/actual/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/constructor":["es.number.constructor"],"core-js/actual/number/epsilon":["es.number.epsilon"],"core-js/actual/number/is-finite":["es.number.is-finite"],"core-js/actual/number/is-integer":["es.number.is-integer"],"core-js/actual/number/is-nan":["es.number.is-nan"],"core-js/actual/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/actual/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/actual/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/actual/number/parse-float":["es.number.parse-float"],"core-js/actual/number/parse-int":["es.number.parse-int"],"core-js/actual/number/to-exponential":["es.number.to-exponential"],"core-js/actual/number/to-fixed":["es.number.to-fixed"],"core-js/actual/number/to-precision":["es.number.to-precision"],"core-js/actual/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/actual/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/actual/number/virtual/to-precision":["es.number.to-precision"],"core-js/actual/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.group-by","web.dom-collections.iterator"],"core-js/actual/object/assign":["es.object.assign"],"core-js/actual/object/create":["es.object.create"],"core-js/actual/object/define-getter":["es.object.define-getter"],"core-js/actual/object/define-properties":["es.object.define-properties"],"core-js/actual/object/define-property":["es.object.define-property"],"core-js/actual/object/define-setter":["es.object.define-setter"],"core-js/actual/object/entries":["es.object.entries"],"core-js/actual/object/freeze":["es.object.freeze"],"core-js/actual/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/actual/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/actual/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/actual/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/actual/object/get-own-property-symbols":["es.symbol"],"core-js/actual/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/actual/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/actual/object/has-own":["es.object.has-own"],"core-js/actual/object/is":["es.object.is"],"core-js/actual/object/is-extensible":["es.object.is-extensible"],"core-js/actual/object/is-frozen":["es.object.is-frozen"],"core-js/actual/object/is-sealed":["es.object.is-sealed"],"core-js/actual/object/keys":["es.object.keys"],"core-js/actual/object/lookup-getter":["es.object.lookup-getter"],"core-js/actual/object/lookup-setter":["es.object.lookup-setter"],"core-js/actual/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/actual/object/proto":["es.object.proto"],"core-js/actual/object/seal":["es.object.seal"],"core-js/actual/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/actual/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/object/values":["es.object.values"],"core-js/actual/parse-float":["es.parse-float"],"core-js/actual/parse-int":["es.parse-int"],"core-js/actual/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.string.iterator","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/actual/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/actual/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/actual/queue-microtask":["web.queue-microtask"],"core-js/actual/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/actual/reflect/apply":["es.reflect.apply"],"core-js/actual/reflect/construct":["es.reflect.construct"],"core-js/actual/reflect/define-property":["es.reflect.define-property"],"core-js/actual/reflect/delete-property":["es.reflect.delete-property"],"core-js/actual/reflect/get":["es.reflect.get"],"core-js/actual/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/actual/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/actual/reflect/has":["es.reflect.has"],"core-js/actual/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/actual/reflect/own-keys":["es.reflect.own-keys"],"core-js/actual/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/actual/reflect/set":["es.reflect.set"],"core-js/actual/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/actual/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/actual/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/actual/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/actual/regexp/flags":["es.regexp.flags"],"core-js/actual/regexp/match":["es.regexp.exec","es.string.match"],"core-js/actual/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/regexp/search":["es.regexp.exec","es.string.search"],"core-js/actual/regexp/split":["es.regexp.exec","es.string.split"],"core-js/actual/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/actual/regexp/to-string":["es.regexp.to-string"],"core-js/actual/self":["web.self"],"core-js/actual/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/actual/set-immediate":["web.immediate"],"core-js/actual/set-interval":["web.timers"],"core-js/actual/set-timeout":["web.timers"],"core-js/actual/set/difference":["es.set","es.set.difference.v2","esnext.set.difference.v2"],"core-js/actual/set/intersection":["es.set","es.set.intersection.v2","esnext.set.intersection.v2"],"core-js/actual/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2","esnext.set.is-disjoint-from.v2"],"core-js/actual/set/is-subset-of":["es.set","es.set.is-subset-of.v2","esnext.set.is-subset-of.v2"],"core-js/actual/set/is-superset-of":["es.set","es.set.is-superset-of.v2","esnext.set.is-superset-of.v2"],"core-js/actual/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2","esnext.set.symmetric-difference.v2"],"core-js/actual/set/union":["es.set","es.set.union.v2","esnext.set.union.v2"],"core-js/actual/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/anchor":["es.string.anchor"],"core-js/actual/string/at":["es.string.at-alternative"],"core-js/actual/string/big":["es.string.big"],"core-js/actual/string/blink":["es.string.blink"],"core-js/actual/string/bold":["es.string.bold"],"core-js/actual/string/code-point-at":["es.string.code-point-at"],"core-js/actual/string/ends-with":["es.string.ends-with"],"core-js/actual/string/fixed":["es.string.fixed"],"core-js/actual/string/fontcolor":["es.string.fontcolor"],"core-js/actual/string/fontsize":["es.string.fontsize"],"core-js/actual/string/from-code-point":["es.string.from-code-point"],"core-js/actual/string/includes":["es.string.includes"],"core-js/actual/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/actual/string/italics":["es.string.italics"],"core-js/actual/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/link":["es.string.link"],"core-js/actual/string/match":["es.regexp.exec","es.string.match"],"core-js/actual/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/pad-end":["es.string.pad-end"],"core-js/actual/string/pad-start":["es.string.pad-start"],"core-js/actual/string/raw":["es.string.raw"],"core-js/actual/string/repeat":["es.string.repeat"],"core-js/actual/string/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/search":["es.regexp.exec","es.string.search"],"core-js/actual/string/small":["es.string.small"],"core-js/actual/string/split":["es.regexp.exec","es.string.split"],"core-js/actual/string/starts-with":["es.string.starts-with"],"core-js/actual/string/strike":["es.string.strike"],"core-js/actual/string/sub":["es.string.sub"],"core-js/actual/string/substr":["es.string.substr"],"core-js/actual/string/sup":["es.string.sup"],"core-js/actual/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/trim":["es.string.trim"],"core-js/actual/string/trim-end":["es.string.trim-end"],"core-js/actual/string/trim-left":["es.string.trim-start"],"core-js/actual/string/trim-right":["es.string.trim-end"],"core-js/actual/string/trim-start":["es.string.trim-start"],"core-js/actual/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/virtual/anchor":["es.string.anchor"],"core-js/actual/string/virtual/at":["es.string.at-alternative"],"core-js/actual/string/virtual/big":["es.string.big"],"core-js/actual/string/virtual/blink":["es.string.blink"],"core-js/actual/string/virtual/bold":["es.string.bold"],"core-js/actual/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/actual/string/virtual/ends-with":["es.string.ends-with"],"core-js/actual/string/virtual/fixed":["es.string.fixed"],"core-js/actual/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/actual/string/virtual/fontsize":["es.string.fontsize"],"core-js/actual/string/virtual/includes":["es.string.includes"],"core-js/actual/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/actual/string/virtual/italics":["es.string.italics"],"core-js/actual/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/virtual/link":["es.string.link"],"core-js/actual/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/virtual/pad-end":["es.string.pad-end"],"core-js/actual/string/virtual/pad-start":["es.string.pad-start"],"core-js/actual/string/virtual/repeat":["es.string.repeat"],"core-js/actual/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/virtual/small":["es.string.small"],"core-js/actual/string/virtual/starts-with":["es.string.starts-with"],"core-js/actual/string/virtual/strike":["es.string.strike"],"core-js/actual/string/virtual/sub":["es.string.sub"],"core-js/actual/string/virtual/substr":["es.string.substr"],"core-js/actual/string/virtual/sup":["es.string.sup"],"core-js/actual/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/virtual/trim":["es.string.trim"],"core-js/actual/string/virtual/trim-end":["es.string.trim-end"],"core-js/actual/string/virtual/trim-left":["es.string.trim-start"],"core-js/actual/string/virtual/trim-right":["es.string.trim-end"],"core-js/actual/string/virtual/trim-start":["es.string.trim-start"],"core-js/actual/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/actual/suppressed-error":[],"core-js/actual/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","web.dom-collections.iterator"],"core-js/actual/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/actual/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/actual/symbol/description":["es.symbol.description"],"core-js/actual/symbol/dispose":["esnext.symbol.dispose"],"core-js/actual/symbol/for":["es.symbol"],"core-js/actual/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/actual/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/actual/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/symbol/key-for":["es.symbol"],"core-js/actual/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/actual/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/actual/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/actual/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/actual/symbol/species":["es.symbol.species"],"core-js/actual/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/actual/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/actual/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/symbol/unscopables":["es.symbol.unscopables"],"core-js/actual/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/at":["es.typed-array.at"],"core-js/actual/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/actual/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/every":["es.typed-array.every"],"core-js/actual/typed-array/fill":["es.typed-array.fill"],"core-js/actual/typed-array/filter":["es.typed-array.filter"],"core-js/actual/typed-array/find":["es.typed-array.find"],"core-js/actual/typed-array/find-index":["es.typed-array.find-index"],"core-js/actual/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/actual/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/actual/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/for-each":["es.typed-array.for-each"],"core-js/actual/typed-array/from":["es.typed-array.from"],"core-js/actual/typed-array/from-base64":["esnext.uint8-array.from-base64"],"core-js/actual/typed-array/from-hex":["esnext.uint8-array.from-hex"],"core-js/actual/typed-array/includes":["es.typed-array.includes"],"core-js/actual/typed-array/index-of":["es.typed-array.index-of"],"core-js/actual/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/join":["es.typed-array.join"],"core-js/actual/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/actual/typed-array/map":["es.typed-array.map"],"core-js/actual/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/of":["es.typed-array.of"],"core-js/actual/typed-array/reduce":["es.typed-array.reduce"],"core-js/actual/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/actual/typed-array/reverse":["es.typed-array.reverse"],"core-js/actual/typed-array/set":["es.typed-array.set"],"core-js/actual/typed-array/slice":["es.typed-array.slice"],"core-js/actual/typed-array/some":["es.typed-array.some"],"core-js/actual/typed-array/sort":["es.typed-array.sort"],"core-js/actual/typed-array/subarray":["es.typed-array.subarray"],"core-js/actual/typed-array/to-base64":["esnext.uint8-array.to-base64"],"core-js/actual/typed-array/to-hex":["esnext.uint8-array.to-hex"],"core-js/actual/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/actual/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/actual/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/actual/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/actual/typed-array/to-string":["es.typed-array.to-string"],"core-js/actual/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/actual/unescape":["es.unescape"],"core-js/actual/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/url/can-parse":["web.url","web.url.can-parse"],"core-js/actual/url/parse":["web.url","web.url.parse"],"core-js/actual/url/to-json":["web.url.to-json"],"core-js/actual/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/actual/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/es":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set"],"core-js/es/aggregate-error":[],"core-js/es/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.string.iterator"],"core-js/es/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/es/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/es/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached"],"core-js/es/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/es/array-buffer/slice":["es.array-buffer.slice"],"core-js/es/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer"],"core-js/es/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length"],"core-js/es/array/at":["es.array.at"],"core-js/es/array/concat":["es.array.concat"],"core-js/es/array/copy-within":["es.array.copy-within"],"core-js/es/array/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/every":["es.array.every"],"core-js/es/array/fill":["es.array.fill"],"core-js/es/array/filter":["es.array.filter"],"core-js/es/array/find":["es.array.find"],"core-js/es/array/find-index":["es.array.find-index"],"core-js/es/array/find-last":["es.array.find-last"],"core-js/es/array/find-last-index":["es.array.find-last-index"],"core-js/es/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/for-each":["es.array.for-each"],"core-js/es/array/from":["es.array.from","es.string.iterator"],"core-js/es/array/includes":["es.array.includes"],"core-js/es/array/index-of":["es.array.index-of"],"core-js/es/array/is-array":["es.array.is-array"],"core-js/es/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/join":["es.array.join"],"core-js/es/array/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/last-index-of":["es.array.last-index-of"],"core-js/es/array/map":["es.array.map"],"core-js/es/array/of":["es.array.of"],"core-js/es/array/push":["es.array.push"],"core-js/es/array/reduce":["es.array.reduce"],"core-js/es/array/reduce-right":["es.array.reduce-right"],"core-js/es/array/reverse":["es.array.reverse"],"core-js/es/array/slice":["es.array.slice"],"core-js/es/array/some":["es.array.some"],"core-js/es/array/sort":["es.array.sort"],"core-js/es/array/splice":["es.array.splice"],"core-js/es/array/to-reversed":["es.array.to-reversed"],"core-js/es/array/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/array/to-spliced":["es.array.to-spliced"],"core-js/es/array/unshift":["es.array.unshift"],"core-js/es/array/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string"],"core-js/es/array/virtual/at":["es.array.at"],"core-js/es/array/virtual/concat":["es.array.concat"],"core-js/es/array/virtual/copy-within":["es.array.copy-within"],"core-js/es/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/every":["es.array.every"],"core-js/es/array/virtual/fill":["es.array.fill"],"core-js/es/array/virtual/filter":["es.array.filter"],"core-js/es/array/virtual/find":["es.array.find"],"core-js/es/array/virtual/find-index":["es.array.find-index"],"core-js/es/array/virtual/find-last":["es.array.find-last"],"core-js/es/array/virtual/find-last-index":["es.array.find-last-index"],"core-js/es/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/virtual/for-each":["es.array.for-each"],"core-js/es/array/virtual/includes":["es.array.includes"],"core-js/es/array/virtual/index-of":["es.array.index-of"],"core-js/es/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/join":["es.array.join"],"core-js/es/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/es/array/virtual/map":["es.array.map"],"core-js/es/array/virtual/push":["es.array.push"],"core-js/es/array/virtual/reduce":["es.array.reduce"],"core-js/es/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/es/array/virtual/reverse":["es.array.reverse"],"core-js/es/array/virtual/slice":["es.array.slice"],"core-js/es/array/virtual/some":["es.array.some"],"core-js/es/array/virtual/sort":["es.array.sort"],"core-js/es/array/virtual/splice":["es.array.splice"],"core-js/es/array/virtual/to-reversed":["es.array.to-reversed"],"core-js/es/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/array/virtual/to-spliced":["es.array.to-spliced"],"core-js/es/array/virtual/unshift":["es.array.unshift"],"core-js/es/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/with":["es.array.with"],"core-js/es/array/with":["es.array.with"],"core-js/es/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/es/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/es/date/get-year":["es.date.get-year"],"core-js/es/date/now":["es.date.now"],"core-js/es/date/set-year":["es.date.set-year"],"core-js/es/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/es/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/es/date/to-json":["es.date.to-json"],"core-js/es/date/to-primitive":["es.date.to-primitive"],"core-js/es/date/to-string":["es.date.to-string"],"core-js/es/error":["es.error.cause","es.error.to-string"],"core-js/es/error/constructor":["es.error.cause"],"core-js/es/error/to-string":["es.error.to-string"],"core-js/es/escape":["es.escape"],"core-js/es/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/es/function/bind":["es.function.bind"],"core-js/es/function/has-instance":["es.function.has-instance"],"core-js/es/function/name":["es.function.name"],"core-js/es/function/virtual":["es.function.bind"],"core-js/es/function/virtual/bind":["es.function.bind"],"core-js/es/get-iterator":["es.array.iterator","es.string.iterator"],"core-js/es/get-iterator-method":["es.array.iterator","es.string.iterator"],"core-js/es/global-this":["es.global-this"],"core-js/es/instance/at":["es.array.at","es.string.at-alternative"],"core-js/es/instance/bind":["es.function.bind"],"core-js/es/instance/code-point-at":["es.string.code-point-at"],"core-js/es/instance/concat":["es.array.concat"],"core-js/es/instance/copy-within":["es.array.copy-within"],"core-js/es/instance/ends-with":["es.string.ends-with"],"core-js/es/instance/entries":["es.array.iterator","es.object.to-string"],"core-js/es/instance/every":["es.array.every"],"core-js/es/instance/fill":["es.array.fill"],"core-js/es/instance/filter":["es.array.filter"],"core-js/es/instance/find":["es.array.find"],"core-js/es/instance/find-index":["es.array.find-index"],"core-js/es/instance/find-last":["es.array.find-last"],"core-js/es/instance/find-last-index":["es.array.find-last-index"],"core-js/es/instance/flags":["es.regexp.flags"],"core-js/es/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/instance/for-each":["es.array.for-each"],"core-js/es/instance/includes":["es.array.includes","es.string.includes"],"core-js/es/instance/index-of":["es.array.index-of"],"core-js/es/instance/is-well-formed":["es.string.is-well-formed"],"core-js/es/instance/keys":["es.array.iterator","es.object.to-string"],"core-js/es/instance/last-index-of":["es.array.last-index-of"],"core-js/es/instance/map":["es.array.map"],"core-js/es/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/instance/pad-end":["es.string.pad-end"],"core-js/es/instance/pad-start":["es.string.pad-start"],"core-js/es/instance/push":["es.array.push"],"core-js/es/instance/reduce":["es.array.reduce"],"core-js/es/instance/reduce-right":["es.array.reduce-right"],"core-js/es/instance/repeat":["es.string.repeat"],"core-js/es/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/instance/reverse":["es.array.reverse"],"core-js/es/instance/slice":["es.array.slice"],"core-js/es/instance/some":["es.array.some"],"core-js/es/instance/sort":["es.array.sort"],"core-js/es/instance/splice":["es.array.splice"],"core-js/es/instance/starts-with":["es.string.starts-with"],"core-js/es/instance/to-reversed":["es.array.to-reversed"],"core-js/es/instance/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/instance/to-spliced":["es.array.to-spliced"],"core-js/es/instance/to-well-formed":["es.string.to-well-formed"],"core-js/es/instance/trim":["es.string.trim"],"core-js/es/instance/trim-end":["es.string.trim-end"],"core-js/es/instance/trim-left":["es.string.trim-start"],"core-js/es/instance/trim-right":["es.string.trim-end"],"core-js/es/instance/trim-start":["es.string.trim-start"],"core-js/es/instance/unshift":["es.array.unshift"],"core-js/es/instance/values":["es.array.iterator","es.object.to-string"],"core-js/es/instance/with":["es.array.with"],"core-js/es/is-iterable":["es.array.iterator","es.string.iterator"],"core-js/es/json":["es.date.to-json","es.json.stringify","es.json.to-string-tag"],"core-js/es/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/es/json/to-string-tag":["es.json.to-string-tag"],"core-js/es/map":["es.array.iterator","es.map","es.map.group-by","es.object.to-string","es.string.iterator"],"core-js/es/map/group-by":["es.map","es.map.group-by","es.object.to-string"],"core-js/es/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/es/math/acosh":["es.math.acosh"],"core-js/es/math/asinh":["es.math.asinh"],"core-js/es/math/atanh":["es.math.atanh"],"core-js/es/math/cbrt":["es.math.cbrt"],"core-js/es/math/clz32":["es.math.clz32"],"core-js/es/math/cosh":["es.math.cosh"],"core-js/es/math/expm1":["es.math.expm1"],"core-js/es/math/fround":["es.math.fround"],"core-js/es/math/hypot":["es.math.hypot"],"core-js/es/math/imul":["es.math.imul"],"core-js/es/math/log10":["es.math.log10"],"core-js/es/math/log1p":["es.math.log1p"],"core-js/es/math/log2":["es.math.log2"],"core-js/es/math/sign":["es.math.sign"],"core-js/es/math/sinh":["es.math.sinh"],"core-js/es/math/tanh":["es.math.tanh"],"core-js/es/math/to-string-tag":["es.math.to-string-tag"],"core-js/es/math/trunc":["es.math.trunc"],"core-js/es/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/constructor":["es.number.constructor"],"core-js/es/number/epsilon":["es.number.epsilon"],"core-js/es/number/is-finite":["es.number.is-finite"],"core-js/es/number/is-integer":["es.number.is-integer"],"core-js/es/number/is-nan":["es.number.is-nan"],"core-js/es/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/es/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/es/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/es/number/parse-float":["es.number.parse-float"],"core-js/es/number/parse-int":["es.number.parse-int"],"core-js/es/number/to-exponential":["es.number.to-exponential"],"core-js/es/number/to-fixed":["es.number.to-fixed"],"core-js/es/number/to-precision":["es.number.to-precision"],"core-js/es/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/es/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/es/number/virtual/to-precision":["es.number.to-precision"],"core-js/es/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag"],"core-js/es/object/assign":["es.object.assign"],"core-js/es/object/create":["es.object.create"],"core-js/es/object/define-getter":["es.object.define-getter"],"core-js/es/object/define-properties":["es.object.define-properties"],"core-js/es/object/define-property":["es.object.define-property"],"core-js/es/object/define-setter":["es.object.define-setter"],"core-js/es/object/entries":["es.object.entries"],"core-js/es/object/freeze":["es.object.freeze"],"core-js/es/object/from-entries":["es.array.iterator","es.object.from-entries"],"core-js/es/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/es/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/es/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/es/object/get-own-property-symbols":["es.symbol"],"core-js/es/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/es/object/group-by":["es.object.create","es.object.group-by"],"core-js/es/object/has-own":["es.object.has-own"],"core-js/es/object/is":["es.object.is"],"core-js/es/object/is-extensible":["es.object.is-extensible"],"core-js/es/object/is-frozen":["es.object.is-frozen"],"core-js/es/object/is-sealed":["es.object.is-sealed"],"core-js/es/object/keys":["es.object.keys"],"core-js/es/object/lookup-getter":["es.object.lookup-getter"],"core-js/es/object/lookup-setter":["es.object.lookup-setter"],"core-js/es/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/es/object/proto":["es.object.proto"],"core-js/es/object/seal":["es.object.seal"],"core-js/es/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/es/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/object/values":["es.object.values"],"core-js/es/parse-float":["es.parse-float"],"core-js/es/parse-int":["es.parse-int"],"core-js/es/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.string.iterator"],"core-js/es/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator"],"core-js/es/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator"],"core-js/es/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/es/promise/with-resolvers":["es.promise","es.promise.with-resolvers"],"core-js/es/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/es/reflect/apply":["es.reflect.apply"],"core-js/es/reflect/construct":["es.reflect.construct"],"core-js/es/reflect/define-property":["es.reflect.define-property"],"core-js/es/reflect/delete-property":["es.reflect.delete-property"],"core-js/es/reflect/get":["es.reflect.get"],"core-js/es/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/es/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/es/reflect/has":["es.reflect.has"],"core-js/es/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/es/reflect/own-keys":["es.reflect.own-keys"],"core-js/es/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/es/reflect/set":["es.reflect.set"],"core-js/es/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/es/reflect/to-string-tag":["es.object.to-string","es.reflect.to-string-tag"],"core-js/es/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/es/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/es/regexp/flags":["es.regexp.flags"],"core-js/es/regexp/match":["es.regexp.exec","es.string.match"],"core-js/es/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/es/regexp/search":["es.regexp.exec","es.string.search"],"core-js/es/regexp/split":["es.regexp.exec","es.string.split"],"core-js/es/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/es/regexp/to-string":["es.regexp.to-string"],"core-js/es/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator"],"core-js/es/set/difference":["es.set","es.set.difference.v2"],"core-js/es/set/intersection":["es.set","es.set.intersection.v2"],"core-js/es/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2"],"core-js/es/set/is-subset-of":["es.set","es.set.is-subset-of.v2"],"core-js/es/set/is-superset-of":["es.set","es.set.is-superset-of.v2"],"core-js/es/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2"],"core-js/es/set/union":["es.set","es.set.union.v2"],"core-js/es/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/anchor":["es.string.anchor"],"core-js/es/string/at":["es.string.at-alternative"],"core-js/es/string/big":["es.string.big"],"core-js/es/string/blink":["es.string.blink"],"core-js/es/string/bold":["es.string.bold"],"core-js/es/string/code-point-at":["es.string.code-point-at"],"core-js/es/string/ends-with":["es.string.ends-with"],"core-js/es/string/fixed":["es.string.fixed"],"core-js/es/string/fontcolor":["es.string.fontcolor"],"core-js/es/string/fontsize":["es.string.fontsize"],"core-js/es/string/from-code-point":["es.string.from-code-point"],"core-js/es/string/includes":["es.string.includes"],"core-js/es/string/is-well-formed":["es.string.is-well-formed"],"core-js/es/string/italics":["es.string.italics"],"core-js/es/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/link":["es.string.link"],"core-js/es/string/match":["es.regexp.exec","es.string.match"],"core-js/es/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/pad-end":["es.string.pad-end"],"core-js/es/string/pad-start":["es.string.pad-start"],"core-js/es/string/raw":["es.string.raw"],"core-js/es/string/repeat":["es.string.repeat"],"core-js/es/string/replace":["es.regexp.exec","es.string.replace"],"core-js/es/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/search":["es.regexp.exec","es.string.search"],"core-js/es/string/small":["es.string.small"],"core-js/es/string/split":["es.regexp.exec","es.string.split"],"core-js/es/string/starts-with":["es.string.starts-with"],"core-js/es/string/strike":["es.string.strike"],"core-js/es/string/sub":["es.string.sub"],"core-js/es/string/substr":["es.string.substr"],"core-js/es/string/sup":["es.string.sup"],"core-js/es/string/to-well-formed":["es.string.to-well-formed"],"core-js/es/string/trim":["es.string.trim"],"core-js/es/string/trim-end":["es.string.trim-end"],"core-js/es/string/trim-left":["es.string.trim-start"],"core-js/es/string/trim-right":["es.string.trim-end"],"core-js/es/string/trim-start":["es.string.trim-start"],"core-js/es/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/virtual/anchor":["es.string.anchor"],"core-js/es/string/virtual/at":["es.string.at-alternative"],"core-js/es/string/virtual/big":["es.string.big"],"core-js/es/string/virtual/blink":["es.string.blink"],"core-js/es/string/virtual/bold":["es.string.bold"],"core-js/es/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/es/string/virtual/ends-with":["es.string.ends-with"],"core-js/es/string/virtual/fixed":["es.string.fixed"],"core-js/es/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/es/string/virtual/fontsize":["es.string.fontsize"],"core-js/es/string/virtual/includes":["es.string.includes"],"core-js/es/string/virtual/is-well-formed":["es.string.is-well-formed"],"core-js/es/string/virtual/italics":["es.string.italics"],"core-js/es/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/virtual/link":["es.string.link"],"core-js/es/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/virtual/pad-end":["es.string.pad-end"],"core-js/es/string/virtual/pad-start":["es.string.pad-start"],"core-js/es/string/virtual/repeat":["es.string.repeat"],"core-js/es/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/virtual/small":["es.string.small"],"core-js/es/string/virtual/starts-with":["es.string.starts-with"],"core-js/es/string/virtual/strike":["es.string.strike"],"core-js/es/string/virtual/sub":["es.string.sub"],"core-js/es/string/virtual/substr":["es.string.substr"],"core-js/es/string/virtual/sup":["es.string.sup"],"core-js/es/string/virtual/to-well-formed":["es.string.to-well-formed"],"core-js/es/string/virtual/trim":["es.string.trim"],"core-js/es/string/virtual/trim-end":["es.string.trim-end"],"core-js/es/string/virtual/trim-left":["es.string.trim-start"],"core-js/es/string/virtual/trim-right":["es.string.trim-end"],"core-js/es/string/virtual/trim-start":["es.string.trim-start"],"core-js/es/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/es/symbol/description":["es.symbol.description"],"core-js/es/symbol/for":["es.symbol"],"core-js/es/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/es/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/es/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator"],"core-js/es/symbol/key-for":["es.symbol"],"core-js/es/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/es/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/es/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/es/symbol/species":["es.symbol.species"],"core-js/es/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/es/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/es/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/unscopables":["es.symbol.unscopables"],"core-js/es/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/at":["es.typed-array.at"],"core-js/es/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/es/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/every":["es.typed-array.every"],"core-js/es/typed-array/fill":["es.typed-array.fill"],"core-js/es/typed-array/filter":["es.typed-array.filter"],"core-js/es/typed-array/find":["es.typed-array.find"],"core-js/es/typed-array/find-index":["es.typed-array.find-index"],"core-js/es/typed-array/find-last":["es.typed-array.find-last"],"core-js/es/typed-array/find-last-index":["es.typed-array.find-last-index"],"core-js/es/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/for-each":["es.typed-array.for-each"],"core-js/es/typed-array/from":["es.typed-array.from"],"core-js/es/typed-array/includes":["es.typed-array.includes"],"core-js/es/typed-array/index-of":["es.typed-array.index-of"],"core-js/es/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/join":["es.typed-array.join"],"core-js/es/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/es/typed-array/map":["es.typed-array.map"],"core-js/es/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/of":["es.typed-array.of"],"core-js/es/typed-array/reduce":["es.typed-array.reduce"],"core-js/es/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/es/typed-array/reverse":["es.typed-array.reverse"],"core-js/es/typed-array/set":["es.typed-array.set"],"core-js/es/typed-array/slice":["es.typed-array.slice"],"core-js/es/typed-array/some":["es.typed-array.some"],"core-js/es/typed-array/sort":["es.typed-array.sort"],"core-js/es/typed-array/subarray":["es.typed-array.subarray"],"core-js/es/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/es/typed-array/to-reversed":["es.typed-array.to-reversed"],"core-js/es/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted"],"core-js/es/typed-array/to-string":["es.typed-array.to-string"],"core-js/es/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/es/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/with":["es.typed-array.with"],"core-js/es/unescape":["es.unescape"],"core-js/es/weak-map":["es.array.iterator","es.object.to-string","es.weak-map"],"core-js/es/weak-set":["es.array.iterator","es.object.to-string","es.weak-set"],"core-js/features":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/aggregate-error":[],"core-js/features/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/features/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/features/array-buffer/slice":["es.array-buffer.slice"],"core-js/features/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/features/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array/at":["es.array.at","esnext.array.at"],"core-js/features/array/concat":["es.array.concat"],"core-js/features/array/copy-within":["es.array.copy-within"],"core-js/features/array/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/every":["es.array.every"],"core-js/features/array/fill":["es.array.fill"],"core-js/features/array/filter":["es.array.filter"],"core-js/features/array/filter-out":["esnext.array.filter-out"],"core-js/features/array/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/find":["es.array.find"],"core-js/features/array/find-index":["es.array.find-index"],"core-js/features/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/for-each":["es.array.for-each"],"core-js/features/array/from":["es.array.from","es.string.iterator"],"core-js/features/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/features/array/group":["esnext.array.group"],"core-js/features/array/group-by":["esnext.array.group-by"],"core-js/features/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/array/includes":["es.array.includes"],"core-js/features/array/index-of":["es.array.index-of"],"core-js/features/array/is-array":["es.array.is-array"],"core-js/features/array/is-template-object":["esnext.array.is-template-object"],"core-js/features/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/join":["es.array.join"],"core-js/features/array/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/last-index":["esnext.array.last-index"],"core-js/features/array/last-index-of":["es.array.last-index-of"],"core-js/features/array/last-item":["esnext.array.last-item"],"core-js/features/array/map":["es.array.map"],"core-js/features/array/of":["es.array.of"],"core-js/features/array/push":["es.array.push"],"core-js/features/array/reduce":["es.array.reduce"],"core-js/features/array/reduce-right":["es.array.reduce-right"],"core-js/features/array/reverse":["es.array.reverse"],"core-js/features/array/slice":["es.array.slice"],"core-js/features/array/some":["es.array.some"],"core-js/features/array/sort":["es.array.sort"],"core-js/features/array/splice":["es.array.splice"],"core-js/features/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/unshift":["es.array.unshift"],"core-js/features/array/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/features/array/virtual/concat":["es.array.concat"],"core-js/features/array/virtual/copy-within":["es.array.copy-within"],"core-js/features/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/every":["es.array.every"],"core-js/features/array/virtual/fill":["es.array.fill"],"core-js/features/array/virtual/filter":["es.array.filter"],"core-js/features/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/features/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/virtual/find":["es.array.find"],"core-js/features/array/virtual/find-index":["es.array.find-index"],"core-js/features/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/virtual/for-each":["es.array.for-each"],"core-js/features/array/virtual/group":["esnext.array.group"],"core-js/features/array/virtual/group-by":["esnext.array.group-by"],"core-js/features/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/array/virtual/includes":["es.array.includes"],"core-js/features/array/virtual/index-of":["es.array.index-of"],"core-js/features/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/join":["es.array.join"],"core-js/features/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/features/array/virtual/map":["es.array.map"],"core-js/features/array/virtual/push":["es.array.push"],"core-js/features/array/virtual/reduce":["es.array.reduce"],"core-js/features/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/features/array/virtual/reverse":["es.array.reverse"],"core-js/features/array/virtual/slice":["es.array.slice"],"core-js/features/array/virtual/some":["es.array.some"],"core-js/features/array/virtual/sort":["es.array.sort"],"core-js/features/array/virtual/splice":["es.array.splice"],"core-js/features/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/virtual/unshift":["es.array.unshift"],"core-js/features/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/features/array/with":["es.array.with","esnext.array.with"],"core-js/features/async-disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/features/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/features/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/features/async-iterator/async-dispose":["es.object.to-string","es.promise","esnext.async-iterator.async-dispose"],"core-js/features/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/features/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/features/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/features/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/features/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/features/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/features/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/indexed":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.indexed"],"core-js/features/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/features/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/features/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/features/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/features/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/features/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/features/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/features/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/clear-immediate":["web.immediate"],"core-js/features/composite-key":["esnext.composite-key"],"core-js/features/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/features/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped"],"core-js/features/data-view/get-float16":["esnext.data-view.get-float16"],"core-js/features/data-view/get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/features/data-view/set-float16":["esnext.data-view.set-float16"],"core-js/features/data-view/set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/features/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/features/date/get-year":["es.date.get-year"],"core-js/features/date/now":["es.date.now"],"core-js/features/date/set-year":["es.date.set-year"],"core-js/features/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/features/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/features/date/to-json":["es.date.to-json"],"core-js/features/date/to-primitive":["es.date.to-primitive"],"core-js/features/date/to-string":["es.date.to-string"],"core-js/features/disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/features/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/features/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/features/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/features/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/features/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/features/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/features/error":["es.error.cause","es.error.to-string"],"core-js/features/error/constructor":["es.error.cause"],"core-js/features/error/to-string":["es.error.to-string"],"core-js/features/escape":["es.escape"],"core-js/features/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this"],"core-js/features/function/bind":["es.function.bind"],"core-js/features/function/demethodize":["esnext.function.demethodize"],"core-js/features/function/has-instance":["es.function.has-instance"],"core-js/features/function/is-callable":["esnext.function.is-callable"],"core-js/features/function/is-constructor":["esnext.function.is-constructor"],"core-js/features/function/metadata":["esnext.function.metadata"],"core-js/features/function/name":["es.function.name"],"core-js/features/function/un-this":["esnext.function.un-this"],"core-js/features/function/virtual":["es.function.bind","esnext.function.demethodize","esnext.function.un-this"],"core-js/features/function/virtual/bind":["es.function.bind"],"core-js/features/function/virtual/demethodize":["esnext.function.demethodize"],"core-js/features/function/virtual/un-this":["esnext.function.un-this"],"core-js/features/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/global-this":["es.global-this","esnext.global-this"],"core-js/features/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/features/instance/bind":["es.function.bind"],"core-js/features/instance/code-point-at":["es.string.code-point-at"],"core-js/features/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/instance/concat":["es.array.concat"],"core-js/features/instance/copy-within":["es.array.copy-within"],"core-js/features/instance/demethodize":["esnext.function.demethodize"],"core-js/features/instance/ends-with":["es.string.ends-with"],"core-js/features/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/every":["es.array.every"],"core-js/features/instance/fill":["es.array.fill"],"core-js/features/instance/filter":["es.array.filter"],"core-js/features/instance/filter-out":["esnext.array.filter-out"],"core-js/features/instance/filter-reject":["esnext.array.filter-reject"],"core-js/features/instance/find":["es.array.find"],"core-js/features/instance/find-index":["es.array.find-index"],"core-js/features/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/instance/flags":["es.regexp.flags"],"core-js/features/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/features/instance/group":["esnext.array.group"],"core-js/features/instance/group-by":["esnext.array.group-by"],"core-js/features/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/instance/includes":["es.array.includes","es.string.includes"],"core-js/features/instance/index-of":["es.array.index-of"],"core-js/features/instance/is-well-formed":["es.string.is-well-formed"],"core-js/features/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/last-index-of":["es.array.last-index-of"],"core-js/features/instance/map":["es.array.map"],"core-js/features/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/instance/pad-end":["es.string.pad-end"],"core-js/features/instance/pad-start":["es.string.pad-start"],"core-js/features/instance/push":["es.array.push"],"core-js/features/instance/reduce":["es.array.reduce"],"core-js/features/instance/reduce-right":["es.array.reduce-right"],"core-js/features/instance/repeat":["es.string.repeat"],"core-js/features/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/instance/reverse":["es.array.reverse"],"core-js/features/instance/slice":["es.array.slice"],"core-js/features/instance/some":["es.array.some"],"core-js/features/instance/sort":["es.array.sort"],"core-js/features/instance/splice":["es.array.splice"],"core-js/features/instance/starts-with":["es.string.starts-with"],"core-js/features/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/instance/to-well-formed":["es.string.to-well-formed"],"core-js/features/instance/trim":["es.string.trim"],"core-js/features/instance/trim-end":["es.string.trim-end"],"core-js/features/instance/trim-left":["es.string.trim-start"],"core-js/features/instance/trim-right":["es.string.trim-end"],"core-js/features/instance/trim-start":["es.string.trim-start"],"core-js/features/instance/un-this":["esnext.function.un-this"],"core-js/features/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/instance/unshift":["es.array.unshift"],"core-js/features/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/with":["es.array.with","esnext.array.with"],"core-js/features/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/features/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/features/iterator/dispose":["esnext.iterator.dispose"],"core-js/features/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/features/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/features/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/features/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/features/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/features/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/features/iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/features/iterator/indexed":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.indexed"],"core-js/features/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/features/iterator/range":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.range"],"core-js/features/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/features/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/features/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/features/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/features/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/features/json":["es.date.to-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/features/json/is-raw-json":["esnext.json.is-raw-json"],"core-js/features/json/parse":["es.object.keys","esnext.json.parse"],"core-js/features/json/raw-json":["es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/features/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/features/json/to-string-tag":["es.json.to-string-tag"],"core-js/features/map":["es.array.iterator","es.map","es.map.group-by","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/features/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/features/map/emplace":["es.map","esnext.map.emplace"],"core-js/features/map/every":["es.map","esnext.map.every"],"core-js/features/map/filter":["es.map","esnext.map.filter"],"core-js/features/map/find":["es.map","esnext.map.find"],"core-js/features/map/find-key":["es.map","esnext.map.find-key"],"core-js/features/map/from":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","web.dom-collections.iterator"],"core-js/features/map/group-by":["es.map","es.map.group-by","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/includes":["es.map","esnext.map.includes"],"core-js/features/map/key-by":["es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/key-of":["es.map","esnext.map.key-of"],"core-js/features/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/features/map/map-values":["es.map","esnext.map.map-values"],"core-js/features/map/merge":["es.map","esnext.map.merge"],"core-js/features/map/of":["es.array.iterator","es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/reduce":["es.map","esnext.map.reduce"],"core-js/features/map/some":["es.map","esnext.map.some"],"core-js/features/map/update":["es.map","esnext.map.update"],"core-js/features/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/features/map/upsert":["es.map","esnext.map.upsert"],"core-js/features/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh"],"core-js/features/math/acosh":["es.math.acosh"],"core-js/features/math/asinh":["es.math.asinh"],"core-js/features/math/atanh":["es.math.atanh"],"core-js/features/math/cbrt":["es.math.cbrt"],"core-js/features/math/clamp":["esnext.math.clamp"],"core-js/features/math/clz32":["es.math.clz32"],"core-js/features/math/cosh":["es.math.cosh"],"core-js/features/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/features/math/degrees":["esnext.math.degrees"],"core-js/features/math/expm1":["es.math.expm1"],"core-js/features/math/f16round":["esnext.math.f16round"],"core-js/features/math/fround":["es.math.fround"],"core-js/features/math/fscale":["esnext.math.fscale"],"core-js/features/math/hypot":["es.math.hypot"],"core-js/features/math/iaddh":["esnext.math.iaddh"],"core-js/features/math/imul":["es.math.imul"],"core-js/features/math/imulh":["esnext.math.imulh"],"core-js/features/math/isubh":["esnext.math.isubh"],"core-js/features/math/log10":["es.math.log10"],"core-js/features/math/log1p":["es.math.log1p"],"core-js/features/math/log2":["es.math.log2"],"core-js/features/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/features/math/radians":["esnext.math.radians"],"core-js/features/math/scale":["esnext.math.scale"],"core-js/features/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/features/math/sign":["es.math.sign"],"core-js/features/math/signbit":["esnext.math.signbit"],"core-js/features/math/sinh":["es.math.sinh"],"core-js/features/math/sum-precise":["es.array.iterator","esnext.math.sum-precise"],"core-js/features/math/tanh":["es.math.tanh"],"core-js/features/math/to-string-tag":["es.math.to-string-tag"],"core-js/features/math/trunc":["es.math.trunc"],"core-js/features/math/umulh":["esnext.math.umulh"],"core-js/features/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/features/number/constructor":["es.number.constructor"],"core-js/features/number/epsilon":["es.number.epsilon"],"core-js/features/number/from-string":["esnext.number.from-string"],"core-js/features/number/is-finite":["es.number.is-finite"],"core-js/features/number/is-integer":["es.number.is-integer"],"core-js/features/number/is-nan":["es.number.is-nan"],"core-js/features/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/features/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/features/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/features/number/parse-float":["es.number.parse-float"],"core-js/features/number/parse-int":["es.number.parse-int"],"core-js/features/number/range":["es.object.to-string","esnext.number.range"],"core-js/features/number/to-exponential":["es.number.to-exponential"],"core-js/features/number/to-fixed":["es.number.to-fixed"],"core-js/features/number/to-precision":["es.number.to-precision"],"core-js/features/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/features/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/features/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/features/number/virtual/to-precision":["es.number.to-precision"],"core-js/features/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","web.dom-collections.iterator"],"core-js/features/object/assign":["es.object.assign"],"core-js/features/object/create":["es.object.create"],"core-js/features/object/define-getter":["es.object.define-getter"],"core-js/features/object/define-properties":["es.object.define-properties"],"core-js/features/object/define-property":["es.object.define-property"],"core-js/features/object/define-setter":["es.object.define-setter"],"core-js/features/object/entries":["es.object.entries"],"core-js/features/object/freeze":["es.object.freeze"],"core-js/features/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/features/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/features/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/features/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/features/object/get-own-property-symbols":["es.symbol"],"core-js/features/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/features/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/features/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/features/object/is":["es.object.is"],"core-js/features/object/is-extensible":["es.object.is-extensible"],"core-js/features/object/is-frozen":["es.object.is-frozen"],"core-js/features/object/is-sealed":["es.object.is-sealed"],"core-js/features/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/features/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/features/object/iterate-values":["esnext.object.iterate-values"],"core-js/features/object/keys":["es.object.keys"],"core-js/features/object/lookup-getter":["es.object.lookup-getter"],"core-js/features/object/lookup-setter":["es.object.lookup-setter"],"core-js/features/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/features/object/proto":["es.object.proto"],"core-js/features/object/seal":["es.object.seal"],"core-js/features/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/features/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/object/values":["es.object.values"],"core-js/features/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/features/parse-float":["es.parse-float"],"core-js/features/parse-int":["es.parse-int"],"core-js/features/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/features/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/features/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/features/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/features/promise/try":["es.promise","esnext.promise.try"],"core-js/features/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/features/queue-microtask":["web.queue-microtask"],"core-js/features/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/features/reflect/apply":["es.reflect.apply"],"core-js/features/reflect/construct":["es.reflect.construct"],"core-js/features/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/features/reflect/define-property":["es.reflect.define-property"],"core-js/features/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/features/reflect/delete-property":["es.reflect.delete-property"],"core-js/features/reflect/get":["es.reflect.get"],"core-js/features/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/features/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/features/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/features/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/features/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/features/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/features/reflect/has":["es.reflect.has"],"core-js/features/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/features/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/features/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/features/reflect/metadata":["esnext.reflect.metadata"],"core-js/features/reflect/own-keys":["es.reflect.own-keys"],"core-js/features/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/features/reflect/set":["es.reflect.set"],"core-js/features/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/features/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/features/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split","esnext.regexp.escape"],"core-js/features/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/features/regexp/escape":["esnext.regexp.escape"],"core-js/features/regexp/flags":["es.regexp.flags"],"core-js/features/regexp/match":["es.regexp.exec","es.string.match"],"core-js/features/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/features/regexp/search":["es.regexp.exec","es.string.search"],"core-js/features/regexp/split":["es.regexp.exec","es.string.split"],"core-js/features/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/features/regexp/to-string":["es.regexp.to-string"],"core-js/features/self":["web.self"],"core-js/features/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/features/set-immediate":["web.immediate"],"core-js/features/set-interval":["web.timers"],"core-js/features/set-timeout":["web.timers"],"core-js/features/set/add-all":["es.set","esnext.set.add-all"],"core-js/features/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/features/set/difference":["es.array.iterator","es.set","es.set.difference.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.difference","web.dom-collections.iterator"],"core-js/features/set/every":["es.set","esnext.set.every"],"core-js/features/set/filter":["es.set","esnext.set.filter"],"core-js/features/set/find":["es.set","esnext.set.find"],"core-js/features/set/from":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/features/set/intersection":["es.array.iterator","es.set","es.set.intersection.v2","es.string.iterator","esnext.set.intersection.v2","esnext.set.intersection","web.dom-collections.iterator"],"core-js/features/set/is-disjoint-from":["es.array.iterator","es.set","es.set.is-disjoint-from.v2","es.string.iterator","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/features/set/is-subset-of":["es.array.iterator","es.set","es.set.is-subset-of.v2","es.string.iterator","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/features/set/is-superset-of":["es.array.iterator","es.set","es.set.is-superset-of.v2","es.string.iterator","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/features/set/join":["es.set","esnext.set.join"],"core-js/features/set/map":["es.set","esnext.set.map"],"core-js/features/set/of":["es.array.iterator","es.object.to-string","es.set","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/features/set/reduce":["es.set","esnext.set.reduce"],"core-js/features/set/some":["es.set","esnext.set.some"],"core-js/features/set/symmetric-difference":["es.array.iterator","es.set","es.set.symmetric-difference.v2","es.string.iterator","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/features/set/union":["es.array.iterator","es.set","es.set.union.v2","es.string.iterator","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/features/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.weak-map","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/features/string/anchor":["es.string.anchor"],"core-js/features/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/big":["es.string.big"],"core-js/features/string/blink":["es.string.blink"],"core-js/features/string/bold":["es.string.bold"],"core-js/features/string/code-point-at":["es.string.code-point-at"],"core-js/features/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/cooked":["esnext.string.cooked"],"core-js/features/string/dedent":["es.string.from-code-point","es.weak-map","esnext.string.dedent"],"core-js/features/string/ends-with":["es.string.ends-with"],"core-js/features/string/fixed":["es.string.fixed"],"core-js/features/string/fontcolor":["es.string.fontcolor"],"core-js/features/string/fontsize":["es.string.fontsize"],"core-js/features/string/from-code-point":["es.string.from-code-point"],"core-js/features/string/includes":["es.string.includes"],"core-js/features/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/features/string/italics":["es.string.italics"],"core-js/features/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/link":["es.string.link"],"core-js/features/string/match":["es.regexp.exec","es.string.match"],"core-js/features/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/pad-end":["es.string.pad-end"],"core-js/features/string/pad-start":["es.string.pad-start"],"core-js/features/string/raw":["es.string.raw"],"core-js/features/string/repeat":["es.string.repeat"],"core-js/features/string/replace":["es.regexp.exec","es.string.replace"],"core-js/features/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/search":["es.regexp.exec","es.string.search"],"core-js/features/string/small":["es.string.small"],"core-js/features/string/split":["es.regexp.exec","es.string.split"],"core-js/features/string/starts-with":["es.string.starts-with"],"core-js/features/string/strike":["es.string.strike"],"core-js/features/string/sub":["es.string.sub"],"core-js/features/string/substr":["es.string.substr"],"core-js/features/string/sup":["es.string.sup"],"core-js/features/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/features/string/trim":["es.string.trim"],"core-js/features/string/trim-end":["es.string.trim-end"],"core-js/features/string/trim-left":["es.string.trim-start"],"core-js/features/string/trim-right":["es.string.trim-end"],"core-js/features/string/trim-start":["es.string.trim-start"],"core-js/features/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/features/string/virtual/anchor":["es.string.anchor"],"core-js/features/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/virtual/big":["es.string.big"],"core-js/features/string/virtual/blink":["es.string.blink"],"core-js/features/string/virtual/bold":["es.string.bold"],"core-js/features/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/features/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/virtual/ends-with":["es.string.ends-with"],"core-js/features/string/virtual/fixed":["es.string.fixed"],"core-js/features/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/features/string/virtual/fontsize":["es.string.fontsize"],"core-js/features/string/virtual/includes":["es.string.includes"],"core-js/features/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/features/string/virtual/italics":["es.string.italics"],"core-js/features/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/virtual/link":["es.string.link"],"core-js/features/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/virtual/pad-end":["es.string.pad-end"],"core-js/features/string/virtual/pad-start":["es.string.pad-start"],"core-js/features/string/virtual/repeat":["es.string.repeat"],"core-js/features/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/virtual/small":["es.string.small"],"core-js/features/string/virtual/starts-with":["es.string.starts-with"],"core-js/features/string/virtual/strike":["es.string.strike"],"core-js/features/string/virtual/sub":["es.string.sub"],"core-js/features/string/virtual/substr":["es.string.substr"],"core-js/features/string/virtual/sup":["es.string.sup"],"core-js/features/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/features/string/virtual/trim":["es.string.trim"],"core-js/features/string/virtual/trim-end":["es.string.trim-end"],"core-js/features/string/virtual/trim-left":["es.string.trim-start"],"core-js/features/string/virtual/trim-right":["es.string.trim-end"],"core-js/features/string/virtual/trim-start":["es.string.trim-start"],"core-js/features/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/features/suppressed-error":[],"core-js/features/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/features/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/features/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/features/symbol/custom-matcher":["esnext.symbol.custom-matcher"],"core-js/features/symbol/description":["es.symbol.description"],"core-js/features/symbol/dispose":["esnext.symbol.dispose"],"core-js/features/symbol/for":["es.symbol"],"core-js/features/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/features/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/features/symbol/is-registered":["es.symbol","esnext.symbol.is-registered"],"core-js/features/symbol/is-registered-symbol":["es.symbol","esnext.symbol.is-registered-symbol"],"core-js/features/symbol/is-well-known":["es.symbol","esnext.symbol.is-well-known"],"core-js/features/symbol/is-well-known-symbol":["es.symbol","esnext.symbol.is-well-known-symbol"],"core-js/features/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/features/symbol/key-for":["es.symbol"],"core-js/features/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/features/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/features/symbol/matcher":["esnext.symbol.matcher"],"core-js/features/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/features/symbol/metadata-key":["esnext.symbol.metadata-key"],"core-js/features/symbol/observable":["esnext.symbol.observable"],"core-js/features/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/features/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/features/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/features/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/features/symbol/species":["es.symbol.species"],"core-js/features/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/features/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/features/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/symbol/unscopables":["es.symbol.unscopables"],"core-js/features/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/at":["es.typed-array.at","esnext.typed-array.at"],"core-js/features/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/features/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/every":["es.typed-array.every"],"core-js/features/typed-array/fill":["es.typed-array.fill"],"core-js/features/typed-array/filter":["es.typed-array.filter"],"core-js/features/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/features/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/features/typed-array/find":["es.typed-array.find"],"core-js/features/typed-array/find-index":["es.typed-array.find-index"],"core-js/features/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/features/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/features/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/for-each":["es.typed-array.for-each"],"core-js/features/typed-array/from":["es.typed-array.from"],"core-js/features/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/features/typed-array/from-base64":["esnext.uint8-array.from-base64"],"core-js/features/typed-array/from-hex":["esnext.uint8-array.from-hex"],"core-js/features/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/features/typed-array/includes":["es.typed-array.includes"],"core-js/features/typed-array/index-of":["es.typed-array.index-of"],"core-js/features/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/join":["es.typed-array.join"],"core-js/features/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/features/typed-array/map":["es.typed-array.map"],"core-js/features/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/of":["es.typed-array.of"],"core-js/features/typed-array/reduce":["es.typed-array.reduce"],"core-js/features/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/features/typed-array/reverse":["es.typed-array.reverse"],"core-js/features/typed-array/set":["es.typed-array.set"],"core-js/features/typed-array/slice":["es.typed-array.slice"],"core-js/features/typed-array/some":["es.typed-array.some"],"core-js/features/typed-array/sort":["es.typed-array.sort"],"core-js/features/typed-array/subarray":["es.typed-array.subarray"],"core-js/features/typed-array/to-base64":["esnext.uint8-array.to-base64"],"core-js/features/typed-array/to-hex":["esnext.uint8-array.to-hex"],"core-js/features/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/features/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/features/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/features/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/features/typed-array/to-string":["es.typed-array.to-string"],"core-js/features/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/features/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/features/unescape":["es.unescape"],"core-js/features/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/url/can-parse":["web.url","web.url.can-parse"],"core-js/features/url/parse":["web.url","web.url.parse"],"core-js/features/url/to-json":["web.url.to-json"],"core-js/features/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/features/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/features/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/features/weak-map/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.emplace","web.dom-collections.iterator"],"core-js/features/weak-map/of":["es.array.iterator","es.object.to-string","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.of","esnext.weak-map.emplace"],"core-js/features/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/features/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/features/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/features/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/features/weak-set/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/features/weak-set/of":["es.array.iterator","es.object.to-string","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.of"],"core-js/full":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/aggregate-error":[],"core-js/full/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/full/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/full/array-buffer/slice":["es.array-buffer.slice"],"core-js/full/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/full/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array/at":["es.array.at","esnext.array.at"],"core-js/full/array/concat":["es.array.concat"],"core-js/full/array/copy-within":["es.array.copy-within"],"core-js/full/array/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/every":["es.array.every"],"core-js/full/array/fill":["es.array.fill"],"core-js/full/array/filter":["es.array.filter"],"core-js/full/array/filter-out":["esnext.array.filter-out"],"core-js/full/array/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/find":["es.array.find"],"core-js/full/array/find-index":["es.array.find-index"],"core-js/full/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/for-each":["es.array.for-each"],"core-js/full/array/from":["es.array.from","es.string.iterator"],"core-js/full/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/full/array/group":["esnext.array.group"],"core-js/full/array/group-by":["esnext.array.group-by"],"core-js/full/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/array/includes":["es.array.includes"],"core-js/full/array/index-of":["es.array.index-of"],"core-js/full/array/is-array":["es.array.is-array"],"core-js/full/array/is-template-object":["esnext.array.is-template-object"],"core-js/full/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/join":["es.array.join"],"core-js/full/array/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/last-index":["esnext.array.last-index"],"core-js/full/array/last-index-of":["es.array.last-index-of"],"core-js/full/array/last-item":["esnext.array.last-item"],"core-js/full/array/map":["es.array.map"],"core-js/full/array/of":["es.array.of"],"core-js/full/array/push":["es.array.push"],"core-js/full/array/reduce":["es.array.reduce"],"core-js/full/array/reduce-right":["es.array.reduce-right"],"core-js/full/array/reverse":["es.array.reverse"],"core-js/full/array/slice":["es.array.slice"],"core-js/full/array/some":["es.array.some"],"core-js/full/array/sort":["es.array.sort"],"core-js/full/array/splice":["es.array.splice"],"core-js/full/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/unshift":["es.array.unshift"],"core-js/full/array/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/full/array/virtual/concat":["es.array.concat"],"core-js/full/array/virtual/copy-within":["es.array.copy-within"],"core-js/full/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/every":["es.array.every"],"core-js/full/array/virtual/fill":["es.array.fill"],"core-js/full/array/virtual/filter":["es.array.filter"],"core-js/full/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/full/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/virtual/find":["es.array.find"],"core-js/full/array/virtual/find-index":["es.array.find-index"],"core-js/full/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/virtual/for-each":["es.array.for-each"],"core-js/full/array/virtual/group":["esnext.array.group"],"core-js/full/array/virtual/group-by":["esnext.array.group-by"],"core-js/full/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/array/virtual/includes":["es.array.includes"],"core-js/full/array/virtual/index-of":["es.array.index-of"],"core-js/full/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/join":["es.array.join"],"core-js/full/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/full/array/virtual/map":["es.array.map"],"core-js/full/array/virtual/push":["es.array.push"],"core-js/full/array/virtual/reduce":["es.array.reduce"],"core-js/full/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/full/array/virtual/reverse":["es.array.reverse"],"core-js/full/array/virtual/slice":["es.array.slice"],"core-js/full/array/virtual/some":["es.array.some"],"core-js/full/array/virtual/sort":["es.array.sort"],"core-js/full/array/virtual/splice":["es.array.splice"],"core-js/full/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/virtual/unshift":["es.array.unshift"],"core-js/full/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/full/array/with":["es.array.with","esnext.array.with"],"core-js/full/async-disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/full/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","es.promise","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/full/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/full/async-iterator/async-dispose":["es.object.to-string","es.promise","esnext.async-iterator.async-dispose"],"core-js/full/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/full/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/full/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/full/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/full/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/full/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/full/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/indexed":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.indexed"],"core-js/full/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/full/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/full/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/full/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/full/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/full/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/full/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/full/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/clear-immediate":["web.immediate"],"core-js/full/composite-key":["esnext.composite-key"],"core-js/full/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/full/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped"],"core-js/full/data-view/get-float16":["esnext.data-view.get-float16"],"core-js/full/data-view/get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/full/data-view/set-float16":["esnext.data-view.set-float16"],"core-js/full/data-view/set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/full/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/full/date/get-year":["es.date.get-year"],"core-js/full/date/now":["es.date.now"],"core-js/full/date/set-year":["es.date.set-year"],"core-js/full/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/full/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/full/date/to-json":["es.date.to-json"],"core-js/full/date/to-primitive":["es.date.to-primitive"],"core-js/full/date/to-string":["es.date.to-string"],"core-js/full/disposable-stack":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/full/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/full/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/full/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/full/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/full/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/full/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/full/error":["es.error.cause","es.error.to-string"],"core-js/full/error/constructor":["es.error.cause"],"core-js/full/error/to-string":["es.error.to-string"],"core-js/full/escape":["es.escape"],"core-js/full/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this"],"core-js/full/function/bind":["es.function.bind"],"core-js/full/function/demethodize":["esnext.function.demethodize"],"core-js/full/function/has-instance":["es.function.has-instance"],"core-js/full/function/is-callable":["esnext.function.is-callable"],"core-js/full/function/is-constructor":["esnext.function.is-constructor"],"core-js/full/function/metadata":["esnext.function.metadata"],"core-js/full/function/name":["es.function.name"],"core-js/full/function/un-this":["esnext.function.un-this"],"core-js/full/function/virtual":["es.function.bind","esnext.function.demethodize","esnext.function.un-this"],"core-js/full/function/virtual/bind":["es.function.bind"],"core-js/full/function/virtual/demethodize":["esnext.function.demethodize"],"core-js/full/function/virtual/un-this":["esnext.function.un-this"],"core-js/full/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/global-this":["es.global-this","esnext.global-this"],"core-js/full/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/full/instance/bind":["es.function.bind"],"core-js/full/instance/code-point-at":["es.string.code-point-at"],"core-js/full/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/instance/concat":["es.array.concat"],"core-js/full/instance/copy-within":["es.array.copy-within"],"core-js/full/instance/demethodize":["esnext.function.demethodize"],"core-js/full/instance/ends-with":["es.string.ends-with"],"core-js/full/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/every":["es.array.every"],"core-js/full/instance/fill":["es.array.fill"],"core-js/full/instance/filter":["es.array.filter"],"core-js/full/instance/filter-out":["esnext.array.filter-out"],"core-js/full/instance/filter-reject":["esnext.array.filter-reject"],"core-js/full/instance/find":["es.array.find"],"core-js/full/instance/find-index":["es.array.find-index"],"core-js/full/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/instance/flags":["es.regexp.flags"],"core-js/full/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/full/instance/group":["esnext.array.group"],"core-js/full/instance/group-by":["esnext.array.group-by"],"core-js/full/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/instance/includes":["es.array.includes","es.string.includes"],"core-js/full/instance/index-of":["es.array.index-of"],"core-js/full/instance/is-well-formed":["es.string.is-well-formed"],"core-js/full/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/last-index-of":["es.array.last-index-of"],"core-js/full/instance/map":["es.array.map"],"core-js/full/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/instance/pad-end":["es.string.pad-end"],"core-js/full/instance/pad-start":["es.string.pad-start"],"core-js/full/instance/push":["es.array.push"],"core-js/full/instance/reduce":["es.array.reduce"],"core-js/full/instance/reduce-right":["es.array.reduce-right"],"core-js/full/instance/repeat":["es.string.repeat"],"core-js/full/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/instance/reverse":["es.array.reverse"],"core-js/full/instance/slice":["es.array.slice"],"core-js/full/instance/some":["es.array.some"],"core-js/full/instance/sort":["es.array.sort"],"core-js/full/instance/splice":["es.array.splice"],"core-js/full/instance/starts-with":["es.string.starts-with"],"core-js/full/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/instance/to-well-formed":["es.string.to-well-formed"],"core-js/full/instance/trim":["es.string.trim"],"core-js/full/instance/trim-end":["es.string.trim-end"],"core-js/full/instance/trim-left":["es.string.trim-start"],"core-js/full/instance/trim-right":["es.string.trim-end"],"core-js/full/instance/trim-start":["es.string.trim-start"],"core-js/full/instance/un-this":["esnext.function.un-this"],"core-js/full/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/instance/unshift":["es.array.unshift"],"core-js/full/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/with":["es.array.with","esnext.array.with"],"core-js/full/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/full/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/full/iterator/dispose":["esnext.iterator.dispose"],"core-js/full/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/full/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/full/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/full/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/full/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/full/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/full/iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/full/iterator/indexed":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.indexed"],"core-js/full/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/full/iterator/range":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.range"],"core-js/full/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/full/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/full/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/full/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/full/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/full/json":["es.date.to-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/full/json/is-raw-json":["esnext.json.is-raw-json"],"core-js/full/json/parse":["es.object.keys","esnext.json.parse"],"core-js/full/json/raw-json":["es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/full/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/full/json/to-string-tag":["es.json.to-string-tag"],"core-js/full/map":["es.array.iterator","es.map","es.map.group-by","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/full/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/full/map/emplace":["es.map","esnext.map.emplace"],"core-js/full/map/every":["es.map","esnext.map.every"],"core-js/full/map/filter":["es.map","esnext.map.filter"],"core-js/full/map/find":["es.map","esnext.map.find"],"core-js/full/map/find-key":["es.map","esnext.map.find-key"],"core-js/full/map/from":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","web.dom-collections.iterator"],"core-js/full/map/group-by":["es.map","es.map.group-by","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/includes":["es.map","esnext.map.includes"],"core-js/full/map/key-by":["es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/key-of":["es.map","esnext.map.key-of"],"core-js/full/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/full/map/map-values":["es.map","esnext.map.map-values"],"core-js/full/map/merge":["es.map","esnext.map.merge"],"core-js/full/map/of":["es.array.iterator","es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/reduce":["es.map","esnext.map.reduce"],"core-js/full/map/some":["es.map","esnext.map.some"],"core-js/full/map/update":["es.map","esnext.map.update"],"core-js/full/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/full/map/upsert":["es.map","esnext.map.upsert"],"core-js/full/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh"],"core-js/full/math/acosh":["es.math.acosh"],"core-js/full/math/asinh":["es.math.asinh"],"core-js/full/math/atanh":["es.math.atanh"],"core-js/full/math/cbrt":["es.math.cbrt"],"core-js/full/math/clamp":["esnext.math.clamp"],"core-js/full/math/clz32":["es.math.clz32"],"core-js/full/math/cosh":["es.math.cosh"],"core-js/full/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/full/math/degrees":["esnext.math.degrees"],"core-js/full/math/expm1":["es.math.expm1"],"core-js/full/math/f16round":["esnext.math.f16round"],"core-js/full/math/fround":["es.math.fround"],"core-js/full/math/fscale":["esnext.math.fscale"],"core-js/full/math/hypot":["es.math.hypot"],"core-js/full/math/iaddh":["esnext.math.iaddh"],"core-js/full/math/imul":["es.math.imul"],"core-js/full/math/imulh":["esnext.math.imulh"],"core-js/full/math/isubh":["esnext.math.isubh"],"core-js/full/math/log10":["es.math.log10"],"core-js/full/math/log1p":["es.math.log1p"],"core-js/full/math/log2":["es.math.log2"],"core-js/full/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/full/math/radians":["esnext.math.radians"],"core-js/full/math/scale":["esnext.math.scale"],"core-js/full/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/full/math/sign":["es.math.sign"],"core-js/full/math/signbit":["esnext.math.signbit"],"core-js/full/math/sinh":["es.math.sinh"],"core-js/full/math/sum-precise":["es.array.iterator","esnext.math.sum-precise"],"core-js/full/math/tanh":["es.math.tanh"],"core-js/full/math/to-string-tag":["es.math.to-string-tag"],"core-js/full/math/trunc":["es.math.trunc"],"core-js/full/math/umulh":["esnext.math.umulh"],"core-js/full/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/full/number/constructor":["es.number.constructor"],"core-js/full/number/epsilon":["es.number.epsilon"],"core-js/full/number/from-string":["esnext.number.from-string"],"core-js/full/number/is-finite":["es.number.is-finite"],"core-js/full/number/is-integer":["es.number.is-integer"],"core-js/full/number/is-nan":["es.number.is-nan"],"core-js/full/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/full/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/full/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/full/number/parse-float":["es.number.parse-float"],"core-js/full/number/parse-int":["es.number.parse-int"],"core-js/full/number/range":["es.object.to-string","esnext.number.range"],"core-js/full/number/to-exponential":["es.number.to-exponential"],"core-js/full/number/to-fixed":["es.number.to-fixed"],"core-js/full/number/to-precision":["es.number.to-precision"],"core-js/full/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/full/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/full/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/full/number/virtual/to-precision":["es.number.to-precision"],"core-js/full/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","web.dom-collections.iterator"],"core-js/full/object/assign":["es.object.assign"],"core-js/full/object/create":["es.object.create"],"core-js/full/object/define-getter":["es.object.define-getter"],"core-js/full/object/define-properties":["es.object.define-properties"],"core-js/full/object/define-property":["es.object.define-property"],"core-js/full/object/define-setter":["es.object.define-setter"],"core-js/full/object/entries":["es.object.entries"],"core-js/full/object/freeze":["es.object.freeze"],"core-js/full/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/full/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/full/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/full/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/full/object/get-own-property-symbols":["es.symbol"],"core-js/full/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/full/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/full/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/full/object/is":["es.object.is"],"core-js/full/object/is-extensible":["es.object.is-extensible"],"core-js/full/object/is-frozen":["es.object.is-frozen"],"core-js/full/object/is-sealed":["es.object.is-sealed"],"core-js/full/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/full/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/full/object/iterate-values":["esnext.object.iterate-values"],"core-js/full/object/keys":["es.object.keys"],"core-js/full/object/lookup-getter":["es.object.lookup-getter"],"core-js/full/object/lookup-setter":["es.object.lookup-setter"],"core-js/full/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/full/object/proto":["es.object.proto"],"core-js/full/object/seal":["es.object.seal"],"core-js/full/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/full/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/object/values":["es.object.values"],"core-js/full/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/full/parse-float":["es.parse-float"],"core-js/full/parse-int":["es.parse-int"],"core-js/full/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/full/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/full/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/full/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/full/promise/try":["es.promise","esnext.promise.try"],"core-js/full/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/full/queue-microtask":["web.queue-microtask"],"core-js/full/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/full/reflect/apply":["es.reflect.apply"],"core-js/full/reflect/construct":["es.reflect.construct"],"core-js/full/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/full/reflect/define-property":["es.reflect.define-property"],"core-js/full/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/full/reflect/delete-property":["es.reflect.delete-property"],"core-js/full/reflect/get":["es.reflect.get"],"core-js/full/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/full/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/full/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/full/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/full/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/full/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/full/reflect/has":["es.reflect.has"],"core-js/full/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/full/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/full/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/full/reflect/metadata":["esnext.reflect.metadata"],"core-js/full/reflect/own-keys":["es.reflect.own-keys"],"core-js/full/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/full/reflect/set":["es.reflect.set"],"core-js/full/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/full/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/full/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split","esnext.regexp.escape"],"core-js/full/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/full/regexp/escape":["esnext.regexp.escape"],"core-js/full/regexp/flags":["es.regexp.flags"],"core-js/full/regexp/match":["es.regexp.exec","es.string.match"],"core-js/full/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/full/regexp/search":["es.regexp.exec","es.string.search"],"core-js/full/regexp/split":["es.regexp.exec","es.string.split"],"core-js/full/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/full/regexp/to-string":["es.regexp.to-string"],"core-js/full/self":["web.self"],"core-js/full/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/full/set-immediate":["web.immediate"],"core-js/full/set-interval":["web.timers"],"core-js/full/set-timeout":["web.timers"],"core-js/full/set/add-all":["es.set","esnext.set.add-all"],"core-js/full/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/full/set/difference":["es.array.iterator","es.set","es.set.difference.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.difference","web.dom-collections.iterator"],"core-js/full/set/every":["es.set","esnext.set.every"],"core-js/full/set/filter":["es.set","esnext.set.filter"],"core-js/full/set/find":["es.set","esnext.set.find"],"core-js/full/set/from":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/full/set/intersection":["es.array.iterator","es.set","es.set.intersection.v2","es.string.iterator","esnext.set.intersection.v2","esnext.set.intersection","web.dom-collections.iterator"],"core-js/full/set/is-disjoint-from":["es.array.iterator","es.set","es.set.is-disjoint-from.v2","es.string.iterator","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/full/set/is-subset-of":["es.array.iterator","es.set","es.set.is-subset-of.v2","es.string.iterator","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/full/set/is-superset-of":["es.array.iterator","es.set","es.set.is-superset-of.v2","es.string.iterator","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/full/set/join":["es.set","esnext.set.join"],"core-js/full/set/map":["es.set","esnext.set.map"],"core-js/full/set/of":["es.array.iterator","es.object.to-string","es.set","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/full/set/reduce":["es.set","esnext.set.reduce"],"core-js/full/set/some":["es.set","esnext.set.some"],"core-js/full/set/symmetric-difference":["es.array.iterator","es.set","es.set.symmetric-difference.v2","es.string.iterator","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/full/set/union":["es.array.iterator","es.set","es.set.union.v2","es.string.iterator","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/full/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.weak-map","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/full/string/anchor":["es.string.anchor"],"core-js/full/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/big":["es.string.big"],"core-js/full/string/blink":["es.string.blink"],"core-js/full/string/bold":["es.string.bold"],"core-js/full/string/code-point-at":["es.string.code-point-at"],"core-js/full/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/cooked":["esnext.string.cooked"],"core-js/full/string/dedent":["es.string.from-code-point","es.weak-map","esnext.string.dedent"],"core-js/full/string/ends-with":["es.string.ends-with"],"core-js/full/string/fixed":["es.string.fixed"],"core-js/full/string/fontcolor":["es.string.fontcolor"],"core-js/full/string/fontsize":["es.string.fontsize"],"core-js/full/string/from-code-point":["es.string.from-code-point"],"core-js/full/string/includes":["es.string.includes"],"core-js/full/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/full/string/italics":["es.string.italics"],"core-js/full/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/link":["es.string.link"],"core-js/full/string/match":["es.regexp.exec","es.string.match"],"core-js/full/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/pad-end":["es.string.pad-end"],"core-js/full/string/pad-start":["es.string.pad-start"],"core-js/full/string/raw":["es.string.raw"],"core-js/full/string/repeat":["es.string.repeat"],"core-js/full/string/replace":["es.regexp.exec","es.string.replace"],"core-js/full/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/search":["es.regexp.exec","es.string.search"],"core-js/full/string/small":["es.string.small"],"core-js/full/string/split":["es.regexp.exec","es.string.split"],"core-js/full/string/starts-with":["es.string.starts-with"],"core-js/full/string/strike":["es.string.strike"],"core-js/full/string/sub":["es.string.sub"],"core-js/full/string/substr":["es.string.substr"],"core-js/full/string/sup":["es.string.sup"],"core-js/full/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/full/string/trim":["es.string.trim"],"core-js/full/string/trim-end":["es.string.trim-end"],"core-js/full/string/trim-left":["es.string.trim-start"],"core-js/full/string/trim-right":["es.string.trim-end"],"core-js/full/string/trim-start":["es.string.trim-start"],"core-js/full/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/full/string/virtual/anchor":["es.string.anchor"],"core-js/full/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/virtual/big":["es.string.big"],"core-js/full/string/virtual/blink":["es.string.blink"],"core-js/full/string/virtual/bold":["es.string.bold"],"core-js/full/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/full/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/virtual/ends-with":["es.string.ends-with"],"core-js/full/string/virtual/fixed":["es.string.fixed"],"core-js/full/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/full/string/virtual/fontsize":["es.string.fontsize"],"core-js/full/string/virtual/includes":["es.string.includes"],"core-js/full/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/full/string/virtual/italics":["es.string.italics"],"core-js/full/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/virtual/link":["es.string.link"],"core-js/full/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/virtual/pad-end":["es.string.pad-end"],"core-js/full/string/virtual/pad-start":["es.string.pad-start"],"core-js/full/string/virtual/repeat":["es.string.repeat"],"core-js/full/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/virtual/small":["es.string.small"],"core-js/full/string/virtual/starts-with":["es.string.starts-with"],"core-js/full/string/virtual/strike":["es.string.strike"],"core-js/full/string/virtual/sub":["es.string.sub"],"core-js/full/string/virtual/substr":["es.string.substr"],"core-js/full/string/virtual/sup":["es.string.sup"],"core-js/full/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/full/string/virtual/trim":["es.string.trim"],"core-js/full/string/virtual/trim-end":["es.string.trim-end"],"core-js/full/string/virtual/trim-left":["es.string.trim-start"],"core-js/full/string/virtual/trim-right":["es.string.trim-end"],"core-js/full/string/virtual/trim-start":["es.string.trim-start"],"core-js/full/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/full/suppressed-error":[],"core-js/full/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/full/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/full/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/full/symbol/custom-matcher":["esnext.symbol.custom-matcher"],"core-js/full/symbol/description":["es.symbol.description"],"core-js/full/symbol/dispose":["esnext.symbol.dispose"],"core-js/full/symbol/for":["es.symbol"],"core-js/full/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/full/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/full/symbol/is-registered":["es.symbol","esnext.symbol.is-registered"],"core-js/full/symbol/is-registered-symbol":["es.symbol","esnext.symbol.is-registered-symbol"],"core-js/full/symbol/is-well-known":["es.symbol","esnext.symbol.is-well-known"],"core-js/full/symbol/is-well-known-symbol":["es.symbol","esnext.symbol.is-well-known-symbol"],"core-js/full/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/full/symbol/key-for":["es.symbol"],"core-js/full/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/full/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/full/symbol/matcher":["esnext.symbol.matcher"],"core-js/full/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/full/symbol/metadata-key":["esnext.symbol.metadata-key"],"core-js/full/symbol/observable":["esnext.symbol.observable"],"core-js/full/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/full/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/full/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/full/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/full/symbol/species":["es.symbol.species"],"core-js/full/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/full/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/full/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/symbol/unscopables":["es.symbol.unscopables"],"core-js/full/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/at":["es.typed-array.at","esnext.typed-array.at"],"core-js/full/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/full/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/every":["es.typed-array.every"],"core-js/full/typed-array/fill":["es.typed-array.fill"],"core-js/full/typed-array/filter":["es.typed-array.filter"],"core-js/full/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/full/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/full/typed-array/find":["es.typed-array.find"],"core-js/full/typed-array/find-index":["es.typed-array.find-index"],"core-js/full/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/full/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/full/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/for-each":["es.typed-array.for-each"],"core-js/full/typed-array/from":["es.typed-array.from"],"core-js/full/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/full/typed-array/from-base64":["esnext.uint8-array.from-base64"],"core-js/full/typed-array/from-hex":["esnext.uint8-array.from-hex"],"core-js/full/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/full/typed-array/includes":["es.typed-array.includes"],"core-js/full/typed-array/index-of":["es.typed-array.index-of"],"core-js/full/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/join":["es.typed-array.join"],"core-js/full/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/full/typed-array/map":["es.typed-array.map"],"core-js/full/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/of":["es.typed-array.of"],"core-js/full/typed-array/reduce":["es.typed-array.reduce"],"core-js/full/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/full/typed-array/reverse":["es.typed-array.reverse"],"core-js/full/typed-array/set":["es.typed-array.set"],"core-js/full/typed-array/slice":["es.typed-array.slice"],"core-js/full/typed-array/some":["es.typed-array.some"],"core-js/full/typed-array/sort":["es.typed-array.sort"],"core-js/full/typed-array/subarray":["es.typed-array.subarray"],"core-js/full/typed-array/to-base64":["esnext.uint8-array.to-base64"],"core-js/full/typed-array/to-hex":["esnext.uint8-array.to-hex"],"core-js/full/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/full/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/full/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/full/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/full/typed-array/to-string":["es.typed-array.to-string"],"core-js/full/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/full/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/full/unescape":["es.unescape"],"core-js/full/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/url/can-parse":["web.url","web.url.can-parse"],"core-js/full/url/parse":["web.url","web.url.parse"],"core-js/full/url/to-json":["web.url.to-json"],"core-js/full/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/full/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/full/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/full/weak-map/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.emplace","web.dom-collections.iterator"],"core-js/full/weak-map/of":["es.array.iterator","es.object.to-string","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.of","esnext.weak-map.emplace"],"core-js/full/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/full/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/full/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/full/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/full/weak-set/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/full/weak-set/of":["es.array.iterator","es.object.to-string","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.of"],"core-js/modules/es.aggregate-error":["es.aggregate-error"],"core-js/modules/es.aggregate-error.cause":["es.aggregate-error.cause"],"core-js/modules/es.aggregate-error.constructor":["es.aggregate-error.constructor"],"core-js/modules/es.array-buffer.constructor":["es.array-buffer.constructor"],"core-js/modules/es.array-buffer.detached":["es.array-buffer.detached"],"core-js/modules/es.array-buffer.is-view":["es.array-buffer.is-view"],"core-js/modules/es.array-buffer.slice":["es.array-buffer.slice"],"core-js/modules/es.array-buffer.transfer":["es.array-buffer.transfer"],"core-js/modules/es.array-buffer.transfer-to-fixed-length":["es.array-buffer.transfer-to-fixed-length"],"core-js/modules/es.array.at":["es.array.at"],"core-js/modules/es.array.concat":["es.array.concat"],"core-js/modules/es.array.copy-within":["es.array.copy-within"],"core-js/modules/es.array.every":["es.array.every"],"core-js/modules/es.array.fill":["es.array.fill"],"core-js/modules/es.array.filter":["es.array.filter"],"core-js/modules/es.array.find":["es.array.find"],"core-js/modules/es.array.find-index":["es.array.find-index"],"core-js/modules/es.array.find-last":["es.array.find-last"],"core-js/modules/es.array.find-last-index":["es.array.find-last-index"],"core-js/modules/es.array.flat":["es.array.flat"],"core-js/modules/es.array.flat-map":["es.array.flat-map"],"core-js/modules/es.array.for-each":["es.array.for-each"],"core-js/modules/es.array.from":["es.array.from"],"core-js/modules/es.array.includes":["es.array.includes"],"core-js/modules/es.array.index-of":["es.array.index-of"],"core-js/modules/es.array.is-array":["es.array.is-array"],"core-js/modules/es.array.iterator":["es.array.iterator"],"core-js/modules/es.array.join":["es.array.join"],"core-js/modules/es.array.last-index-of":["es.array.last-index-of"],"core-js/modules/es.array.map":["es.array.map"],"core-js/modules/es.array.of":["es.array.of"],"core-js/modules/es.array.push":["es.array.push"],"core-js/modules/es.array.reduce":["es.array.reduce"],"core-js/modules/es.array.reduce-right":["es.array.reduce-right"],"core-js/modules/es.array.reverse":["es.array.reverse"],"core-js/modules/es.array.slice":["es.array.slice"],"core-js/modules/es.array.some":["es.array.some"],"core-js/modules/es.array.sort":["es.array.sort"],"core-js/modules/es.array.species":["es.array.species"],"core-js/modules/es.array.splice":["es.array.splice"],"core-js/modules/es.array.to-reversed":["es.array.to-reversed"],"core-js/modules/es.array.to-sorted":["es.array.to-sorted"],"core-js/modules/es.array.to-spliced":["es.array.to-spliced"],"core-js/modules/es.array.unscopables.flat":["es.array.unscopables.flat"],"core-js/modules/es.array.unscopables.flat-map":["es.array.unscopables.flat-map"],"core-js/modules/es.array.unshift":["es.array.unshift"],"core-js/modules/es.array.with":["es.array.with"],"core-js/modules/es.data-view":["es.data-view"],"core-js/modules/es.data-view.constructor":["es.data-view.constructor"],"core-js/modules/es.date.get-year":["es.date.get-year"],"core-js/modules/es.date.now":["es.date.now"],"core-js/modules/es.date.set-year":["es.date.set-year"],"core-js/modules/es.date.to-gmt-string":["es.date.to-gmt-string"],"core-js/modules/es.date.to-iso-string":["es.date.to-iso-string"],"core-js/modules/es.date.to-json":["es.date.to-json"],"core-js/modules/es.date.to-primitive":["es.date.to-primitive"],"core-js/modules/es.date.to-string":["es.date.to-string"],"core-js/modules/es.error.cause":["es.error.cause"],"core-js/modules/es.error.to-string":["es.error.to-string"],"core-js/modules/es.escape":["es.escape"],"core-js/modules/es.function.bind":["es.function.bind"],"core-js/modules/es.function.has-instance":["es.function.has-instance"],"core-js/modules/es.function.name":["es.function.name"],"core-js/modules/es.global-this":["es.global-this"],"core-js/modules/es.json.stringify":["es.json.stringify"],"core-js/modules/es.json.to-string-tag":["es.json.to-string-tag"],"core-js/modules/es.map":["es.map"],"core-js/modules/es.map.constructor":["es.map.constructor"],"core-js/modules/es.map.group-by":["es.map.group-by"],"core-js/modules/es.math.acosh":["es.math.acosh"],"core-js/modules/es.math.asinh":["es.math.asinh"],"core-js/modules/es.math.atanh":["es.math.atanh"],"core-js/modules/es.math.cbrt":["es.math.cbrt"],"core-js/modules/es.math.clz32":["es.math.clz32"],"core-js/modules/es.math.cosh":["es.math.cosh"],"core-js/modules/es.math.expm1":["es.math.expm1"],"core-js/modules/es.math.fround":["es.math.fround"],"core-js/modules/es.math.hypot":["es.math.hypot"],"core-js/modules/es.math.imul":["es.math.imul"],"core-js/modules/es.math.log10":["es.math.log10"],"core-js/modules/es.math.log1p":["es.math.log1p"],"core-js/modules/es.math.log2":["es.math.log2"],"core-js/modules/es.math.sign":["es.math.sign"],"core-js/modules/es.math.sinh":["es.math.sinh"],"core-js/modules/es.math.tanh":["es.math.tanh"],"core-js/modules/es.math.to-string-tag":["es.math.to-string-tag"],"core-js/modules/es.math.trunc":["es.math.trunc"],"core-js/modules/es.number.constructor":["es.number.constructor"],"core-js/modules/es.number.epsilon":["es.number.epsilon"],"core-js/modules/es.number.is-finite":["es.number.is-finite"],"core-js/modules/es.number.is-integer":["es.number.is-integer"],"core-js/modules/es.number.is-nan":["es.number.is-nan"],"core-js/modules/es.number.is-safe-integer":["es.number.is-safe-integer"],"core-js/modules/es.number.max-safe-integer":["es.number.max-safe-integer"],"core-js/modules/es.number.min-safe-integer":["es.number.min-safe-integer"],"core-js/modules/es.number.parse-float":["es.number.parse-float"],"core-js/modules/es.number.parse-int":["es.number.parse-int"],"core-js/modules/es.number.to-exponential":["es.number.to-exponential"],"core-js/modules/es.number.to-fixed":["es.number.to-fixed"],"core-js/modules/es.number.to-precision":["es.number.to-precision"],"core-js/modules/es.object.assign":["es.object.assign"],"core-js/modules/es.object.create":["es.object.create"],"core-js/modules/es.object.define-getter":["es.object.define-getter"],"core-js/modules/es.object.define-properties":["es.object.define-properties"],"core-js/modules/es.object.define-property":["es.object.define-property"],"core-js/modules/es.object.define-setter":["es.object.define-setter"],"core-js/modules/es.object.entries":["es.object.entries"],"core-js/modules/es.object.freeze":["es.object.freeze"],"core-js/modules/es.object.from-entries":["es.object.from-entries"],"core-js/modules/es.object.get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/modules/es.object.get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/modules/es.object.get-own-property-names":["es.object.get-own-property-names"],"core-js/modules/es.object.get-own-property-symbols":["es.object.get-own-property-symbols"],"core-js/modules/es.object.get-prototype-of":["es.object.get-prototype-of"],"core-js/modules/es.object.group-by":["es.object.group-by"],"core-js/modules/es.object.has-own":["es.object.has-own"],"core-js/modules/es.object.is":["es.object.is"],"core-js/modules/es.object.is-extensible":["es.object.is-extensible"],"core-js/modules/es.object.is-frozen":["es.object.is-frozen"],"core-js/modules/es.object.is-sealed":["es.object.is-sealed"],"core-js/modules/es.object.keys":["es.object.keys"],"core-js/modules/es.object.lookup-getter":["es.object.lookup-getter"],"core-js/modules/es.object.lookup-setter":["es.object.lookup-setter"],"core-js/modules/es.object.prevent-extensions":["es.object.prevent-extensions"],"core-js/modules/es.object.proto":["es.object.proto"],"core-js/modules/es.object.seal":["es.object.seal"],"core-js/modules/es.object.set-prototype-of":["es.object.set-prototype-of"],"core-js/modules/es.object.to-string":["es.object.to-string"],"core-js/modules/es.object.values":["es.object.values"],"core-js/modules/es.parse-float":["es.parse-float"],"core-js/modules/es.parse-int":["es.parse-int"],"core-js/modules/es.promise":["es.promise"],"core-js/modules/es.promise.all":["es.promise.all"],"core-js/modules/es.promise.all-settled":["es.promise.all-settled"],"core-js/modules/es.promise.any":["es.promise.any"],"core-js/modules/es.promise.catch":["es.promise.catch"],"core-js/modules/es.promise.constructor":["es.promise.constructor"],"core-js/modules/es.promise.finally":["es.promise.finally"],"core-js/modules/es.promise.race":["es.promise.race"],"core-js/modules/es.promise.reject":["es.promise.reject"],"core-js/modules/es.promise.resolve":["es.promise.resolve"],"core-js/modules/es.promise.with-resolvers":["es.promise.with-resolvers"],"core-js/modules/es.reflect.apply":["es.reflect.apply"],"core-js/modules/es.reflect.construct":["es.reflect.construct"],"core-js/modules/es.reflect.define-property":["es.reflect.define-property"],"core-js/modules/es.reflect.delete-property":["es.reflect.delete-property"],"core-js/modules/es.reflect.get":["es.reflect.get"],"core-js/modules/es.reflect.get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/modules/es.reflect.get-prototype-of":["es.reflect.get-prototype-of"],"core-js/modules/es.reflect.has":["es.reflect.has"],"core-js/modules/es.reflect.is-extensible":["es.reflect.is-extensible"],"core-js/modules/es.reflect.own-keys":["es.reflect.own-keys"],"core-js/modules/es.reflect.prevent-extensions":["es.reflect.prevent-extensions"],"core-js/modules/es.reflect.set":["es.reflect.set"],"core-js/modules/es.reflect.set-prototype-of":["es.reflect.set-prototype-of"],"core-js/modules/es.reflect.to-string-tag":["es.reflect.to-string-tag"],"core-js/modules/es.regexp.constructor":["es.regexp.constructor"],"core-js/modules/es.regexp.dot-all":["es.regexp.dot-all"],"core-js/modules/es.regexp.exec":["es.regexp.exec"],"core-js/modules/es.regexp.flags":["es.regexp.flags"],"core-js/modules/es.regexp.sticky":["es.regexp.sticky"],"core-js/modules/es.regexp.test":["es.regexp.test"],"core-js/modules/es.regexp.to-string":["es.regexp.to-string"],"core-js/modules/es.set":["es.set"],"core-js/modules/es.set.constructor":["es.set.constructor"],"core-js/modules/es.set.difference.v2":["es.set.difference.v2"],"core-js/modules/es.set.intersection.v2":["es.set.intersection.v2"],"core-js/modules/es.set.is-disjoint-from.v2":["es.set.is-disjoint-from.v2"],"core-js/modules/es.set.is-subset-of.v2":["es.set.is-subset-of.v2"],"core-js/modules/es.set.is-superset-of.v2":["es.set.is-superset-of.v2"],"core-js/modules/es.set.symmetric-difference.v2":["es.set.symmetric-difference.v2"],"core-js/modules/es.set.union.v2":["es.set.union.v2"],"core-js/modules/es.string.anchor":["es.string.anchor"],"core-js/modules/es.string.at-alternative":["es.string.at-alternative"],"core-js/modules/es.string.big":["es.string.big"],"core-js/modules/es.string.blink":["es.string.blink"],"core-js/modules/es.string.bold":["es.string.bold"],"core-js/modules/es.string.code-point-at":["es.string.code-point-at"],"core-js/modules/es.string.ends-with":["es.string.ends-with"],"core-js/modules/es.string.fixed":["es.string.fixed"],"core-js/modules/es.string.fontcolor":["es.string.fontcolor"],"core-js/modules/es.string.fontsize":["es.string.fontsize"],"core-js/modules/es.string.from-code-point":["es.string.from-code-point"],"core-js/modules/es.string.includes":["es.string.includes"],"core-js/modules/es.string.is-well-formed":["es.string.is-well-formed"],"core-js/modules/es.string.italics":["es.string.italics"],"core-js/modules/es.string.iterator":["es.string.iterator"],"core-js/modules/es.string.link":["es.string.link"],"core-js/modules/es.string.match":["es.string.match"],"core-js/modules/es.string.match-all":["es.string.match-all"],"core-js/modules/es.string.pad-end":["es.string.pad-end"],"core-js/modules/es.string.pad-start":["es.string.pad-start"],"core-js/modules/es.string.raw":["es.string.raw"],"core-js/modules/es.string.repeat":["es.string.repeat"],"core-js/modules/es.string.replace":["es.string.replace"],"core-js/modules/es.string.replace-all":["es.string.replace-all"],"core-js/modules/es.string.search":["es.string.search"],"core-js/modules/es.string.small":["es.string.small"],"core-js/modules/es.string.split":["es.string.split"],"core-js/modules/es.string.starts-with":["es.string.starts-with"],"core-js/modules/es.string.strike":["es.string.strike"],"core-js/modules/es.string.sub":["es.string.sub"],"core-js/modules/es.string.substr":["es.string.substr"],"core-js/modules/es.string.sup":["es.string.sup"],"core-js/modules/es.string.to-well-formed":["es.string.to-well-formed"],"core-js/modules/es.string.trim":["es.string.trim"],"core-js/modules/es.string.trim-end":["es.string.trim-end"],"core-js/modules/es.string.trim-left":["es.string.trim-left"],"core-js/modules/es.string.trim-right":["es.string.trim-right"],"core-js/modules/es.string.trim-start":["es.string.trim-start"],"core-js/modules/es.symbol":["es.symbol"],"core-js/modules/es.symbol.async-iterator":["es.symbol.async-iterator"],"core-js/modules/es.symbol.constructor":["es.symbol.constructor"],"core-js/modules/es.symbol.description":["es.symbol.description"],"core-js/modules/es.symbol.for":["es.symbol.for"],"core-js/modules/es.symbol.has-instance":["es.symbol.has-instance"],"core-js/modules/es.symbol.is-concat-spreadable":["es.symbol.is-concat-spreadable"],"core-js/modules/es.symbol.iterator":["es.symbol.iterator"],"core-js/modules/es.symbol.key-for":["es.symbol.key-for"],"core-js/modules/es.symbol.match":["es.symbol.match"],"core-js/modules/es.symbol.match-all":["es.symbol.match-all"],"core-js/modules/es.symbol.replace":["es.symbol.replace"],"core-js/modules/es.symbol.search":["es.symbol.search"],"core-js/modules/es.symbol.species":["es.symbol.species"],"core-js/modules/es.symbol.split":["es.symbol.split"],"core-js/modules/es.symbol.to-primitive":["es.symbol.to-primitive"],"core-js/modules/es.symbol.to-string-tag":["es.symbol.to-string-tag"],"core-js/modules/es.symbol.unscopables":["es.symbol.unscopables"],"core-js/modules/es.typed-array.at":["es.typed-array.at"],"core-js/modules/es.typed-array.copy-within":["es.typed-array.copy-within"],"core-js/modules/es.typed-array.every":["es.typed-array.every"],"core-js/modules/es.typed-array.fill":["es.typed-array.fill"],"core-js/modules/es.typed-array.filter":["es.typed-array.filter"],"core-js/modules/es.typed-array.find":["es.typed-array.find"],"core-js/modules/es.typed-array.find-index":["es.typed-array.find-index"],"core-js/modules/es.typed-array.find-last":["es.typed-array.find-last"],"core-js/modules/es.typed-array.find-last-index":["es.typed-array.find-last-index"],"core-js/modules/es.typed-array.float32-array":["es.typed-array.float32-array"],"core-js/modules/es.typed-array.float64-array":["es.typed-array.float64-array"],"core-js/modules/es.typed-array.for-each":["es.typed-array.for-each"],"core-js/modules/es.typed-array.from":["es.typed-array.from"],"core-js/modules/es.typed-array.includes":["es.typed-array.includes"],"core-js/modules/es.typed-array.index-of":["es.typed-array.index-of"],"core-js/modules/es.typed-array.int16-array":["es.typed-array.int16-array"],"core-js/modules/es.typed-array.int32-array":["es.typed-array.int32-array"],"core-js/modules/es.typed-array.int8-array":["es.typed-array.int8-array"],"core-js/modules/es.typed-array.iterator":["es.typed-array.iterator"],"core-js/modules/es.typed-array.join":["es.typed-array.join"],"core-js/modules/es.typed-array.last-index-of":["es.typed-array.last-index-of"],"core-js/modules/es.typed-array.map":["es.typed-array.map"],"core-js/modules/es.typed-array.of":["es.typed-array.of"],"core-js/modules/es.typed-array.reduce":["es.typed-array.reduce"],"core-js/modules/es.typed-array.reduce-right":["es.typed-array.reduce-right"],"core-js/modules/es.typed-array.reverse":["es.typed-array.reverse"],"core-js/modules/es.typed-array.set":["es.typed-array.set"],"core-js/modules/es.typed-array.slice":["es.typed-array.slice"],"core-js/modules/es.typed-array.some":["es.typed-array.some"],"core-js/modules/es.typed-array.sort":["es.typed-array.sort"],"core-js/modules/es.typed-array.subarray":["es.typed-array.subarray"],"core-js/modules/es.typed-array.to-locale-string":["es.typed-array.to-locale-string"],"core-js/modules/es.typed-array.to-reversed":["es.typed-array.to-reversed"],"core-js/modules/es.typed-array.to-sorted":["es.typed-array.to-sorted"],"core-js/modules/es.typed-array.to-string":["es.typed-array.to-string"],"core-js/modules/es.typed-array.uint16-array":["es.typed-array.uint16-array"],"core-js/modules/es.typed-array.uint32-array":["es.typed-array.uint32-array"],"core-js/modules/es.typed-array.uint8-array":["es.typed-array.uint8-array"],"core-js/modules/es.typed-array.uint8-clamped-array":["es.typed-array.uint8-clamped-array"],"core-js/modules/es.typed-array.with":["es.typed-array.with"],"core-js/modules/es.unescape":["es.unescape"],"core-js/modules/es.weak-map":["es.weak-map"],"core-js/modules/es.weak-map.constructor":["es.weak-map.constructor"],"core-js/modules/es.weak-set":["es.weak-set"],"core-js/modules/es.weak-set.constructor":["es.weak-set.constructor"],"core-js/modules/esnext.aggregate-error":["esnext.aggregate-error"],"core-js/modules/esnext.array-buffer.detached":["esnext.array-buffer.detached"],"core-js/modules/esnext.array-buffer.transfer":["esnext.array-buffer.transfer"],"core-js/modules/esnext.array-buffer.transfer-to-fixed-length":["esnext.array-buffer.transfer-to-fixed-length"],"core-js/modules/esnext.array.at":["esnext.array.at"],"core-js/modules/esnext.array.filter-out":["esnext.array.filter-out"],"core-js/modules/esnext.array.filter-reject":["esnext.array.filter-reject"],"core-js/modules/esnext.array.find-last":["esnext.array.find-last"],"core-js/modules/esnext.array.find-last-index":["esnext.array.find-last-index"],"core-js/modules/esnext.array.from-async":["esnext.array.from-async"],"core-js/modules/esnext.array.group":["esnext.array.group"],"core-js/modules/esnext.array.group-by":["esnext.array.group-by"],"core-js/modules/esnext.array.group-by-to-map":["esnext.array.group-by-to-map"],"core-js/modules/esnext.array.group-to-map":["esnext.array.group-to-map"],"core-js/modules/esnext.array.is-template-object":["esnext.array.is-template-object"],"core-js/modules/esnext.array.last-index":["esnext.array.last-index"],"core-js/modules/esnext.array.last-item":["esnext.array.last-item"],"core-js/modules/esnext.array.to-reversed":["esnext.array.to-reversed"],"core-js/modules/esnext.array.to-sorted":["esnext.array.to-sorted"],"core-js/modules/esnext.array.to-spliced":["esnext.array.to-spliced"],"core-js/modules/esnext.array.unique-by":["esnext.array.unique-by"],"core-js/modules/esnext.array.with":["esnext.array.with"],"core-js/modules/esnext.async-disposable-stack.constructor":["esnext.async-disposable-stack.constructor"],"core-js/modules/esnext.async-iterator.as-indexed-pairs":["esnext.async-iterator.as-indexed-pairs"],"core-js/modules/esnext.async-iterator.async-dispose":["esnext.async-iterator.async-dispose"],"core-js/modules/esnext.async-iterator.constructor":["esnext.async-iterator.constructor"],"core-js/modules/esnext.async-iterator.drop":["esnext.async-iterator.drop"],"core-js/modules/esnext.async-iterator.every":["esnext.async-iterator.every"],"core-js/modules/esnext.async-iterator.filter":["esnext.async-iterator.filter"],"core-js/modules/esnext.async-iterator.find":["esnext.async-iterator.find"],"core-js/modules/esnext.async-iterator.flat-map":["esnext.async-iterator.flat-map"],"core-js/modules/esnext.async-iterator.for-each":["esnext.async-iterator.for-each"],"core-js/modules/esnext.async-iterator.from":["esnext.async-iterator.from"],"core-js/modules/esnext.async-iterator.indexed":["esnext.async-iterator.indexed"],"core-js/modules/esnext.async-iterator.map":["esnext.async-iterator.map"],"core-js/modules/esnext.async-iterator.reduce":["esnext.async-iterator.reduce"],"core-js/modules/esnext.async-iterator.some":["esnext.async-iterator.some"],"core-js/modules/esnext.async-iterator.take":["esnext.async-iterator.take"],"core-js/modules/esnext.async-iterator.to-array":["esnext.async-iterator.to-array"],"core-js/modules/esnext.bigint.range":["esnext.bigint.range"],"core-js/modules/esnext.composite-key":["esnext.composite-key"],"core-js/modules/esnext.composite-symbol":["esnext.composite-symbol"],"core-js/modules/esnext.data-view.get-float16":["esnext.data-view.get-float16"],"core-js/modules/esnext.data-view.get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/modules/esnext.data-view.set-float16":["esnext.data-view.set-float16"],"core-js/modules/esnext.data-view.set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/modules/esnext.disposable-stack.constructor":["esnext.disposable-stack.constructor"],"core-js/modules/esnext.function.demethodize":["esnext.function.demethodize"],"core-js/modules/esnext.function.is-callable":["esnext.function.is-callable"],"core-js/modules/esnext.function.is-constructor":["esnext.function.is-constructor"],"core-js/modules/esnext.function.metadata":["esnext.function.metadata"],"core-js/modules/esnext.function.un-this":["esnext.function.un-this"],"core-js/modules/esnext.global-this":["esnext.global-this"],"core-js/modules/esnext.iterator.as-indexed-pairs":["esnext.iterator.as-indexed-pairs"],"core-js/modules/esnext.iterator.constructor":["esnext.iterator.constructor"],"core-js/modules/esnext.iterator.dispose":["esnext.iterator.dispose"],"core-js/modules/esnext.iterator.drop":["esnext.iterator.drop"],"core-js/modules/esnext.iterator.every":["esnext.iterator.every"],"core-js/modules/esnext.iterator.filter":["esnext.iterator.filter"],"core-js/modules/esnext.iterator.find":["esnext.iterator.find"],"core-js/modules/esnext.iterator.flat-map":["esnext.iterator.flat-map"],"core-js/modules/esnext.iterator.for-each":["esnext.iterator.for-each"],"core-js/modules/esnext.iterator.from":["esnext.iterator.from"],"core-js/modules/esnext.iterator.indexed":["esnext.iterator.indexed"],"core-js/modules/esnext.iterator.map":["esnext.iterator.map"],"core-js/modules/esnext.iterator.range":["esnext.iterator.range"],"core-js/modules/esnext.iterator.reduce":["esnext.iterator.reduce"],"core-js/modules/esnext.iterator.some":["esnext.iterator.some"],"core-js/modules/esnext.iterator.take":["esnext.iterator.take"],"core-js/modules/esnext.iterator.to-array":["esnext.iterator.to-array"],"core-js/modules/esnext.iterator.to-async":["esnext.iterator.to-async"],"core-js/modules/esnext.json.is-raw-json":["esnext.json.is-raw-json"],"core-js/modules/esnext.json.parse":["esnext.json.parse"],"core-js/modules/esnext.json.raw-json":["esnext.json.raw-json"],"core-js/modules/esnext.map.delete-all":["esnext.map.delete-all"],"core-js/modules/esnext.map.emplace":["esnext.map.emplace"],"core-js/modules/esnext.map.every":["esnext.map.every"],"core-js/modules/esnext.map.filter":["esnext.map.filter"],"core-js/modules/esnext.map.find":["esnext.map.find"],"core-js/modules/esnext.map.find-key":["esnext.map.find-key"],"core-js/modules/esnext.map.from":["esnext.map.from"],"core-js/modules/esnext.map.group-by":["esnext.map.group-by"],"core-js/modules/esnext.map.includes":["esnext.map.includes"],"core-js/modules/esnext.map.key-by":["esnext.map.key-by"],"core-js/modules/esnext.map.key-of":["esnext.map.key-of"],"core-js/modules/esnext.map.map-keys":["esnext.map.map-keys"],"core-js/modules/esnext.map.map-values":["esnext.map.map-values"],"core-js/modules/esnext.map.merge":["esnext.map.merge"],"core-js/modules/esnext.map.of":["esnext.map.of"],"core-js/modules/esnext.map.reduce":["esnext.map.reduce"],"core-js/modules/esnext.map.some":["esnext.map.some"],"core-js/modules/esnext.map.update":["esnext.map.update"],"core-js/modules/esnext.map.update-or-insert":["esnext.map.update-or-insert"],"core-js/modules/esnext.map.upsert":["esnext.map.upsert"],"core-js/modules/esnext.math.clamp":["esnext.math.clamp"],"core-js/modules/esnext.math.deg-per-rad":["esnext.math.deg-per-rad"],"core-js/modules/esnext.math.degrees":["esnext.math.degrees"],"core-js/modules/esnext.math.f16round":["esnext.math.f16round"],"core-js/modules/esnext.math.fscale":["esnext.math.fscale"],"core-js/modules/esnext.math.iaddh":["esnext.math.iaddh"],"core-js/modules/esnext.math.imulh":["esnext.math.imulh"],"core-js/modules/esnext.math.isubh":["esnext.math.isubh"],"core-js/modules/esnext.math.rad-per-deg":["esnext.math.rad-per-deg"],"core-js/modules/esnext.math.radians":["esnext.math.radians"],"core-js/modules/esnext.math.scale":["esnext.math.scale"],"core-js/modules/esnext.math.seeded-prng":["esnext.math.seeded-prng"],"core-js/modules/esnext.math.signbit":["esnext.math.signbit"],"core-js/modules/esnext.math.sum-precise":["esnext.math.sum-precise"],"core-js/modules/esnext.math.umulh":["esnext.math.umulh"],"core-js/modules/esnext.number.from-string":["esnext.number.from-string"],"core-js/modules/esnext.number.range":["esnext.number.range"],"core-js/modules/esnext.object.group-by":["esnext.object.group-by"],"core-js/modules/esnext.object.has-own":["esnext.object.has-own"],"core-js/modules/esnext.object.iterate-entries":["esnext.object.iterate-entries"],"core-js/modules/esnext.object.iterate-keys":["esnext.object.iterate-keys"],"core-js/modules/esnext.object.iterate-values":["esnext.object.iterate-values"],"core-js/modules/esnext.observable":["esnext.observable"],"core-js/modules/esnext.observable.constructor":["esnext.observable.constructor"],"core-js/modules/esnext.observable.from":["esnext.observable.from"],"core-js/modules/esnext.observable.of":["esnext.observable.of"],"core-js/modules/esnext.promise.all-settled":["esnext.promise.all-settled"],"core-js/modules/esnext.promise.any":["esnext.promise.any"],"core-js/modules/esnext.promise.try":["esnext.promise.try"],"core-js/modules/esnext.promise.with-resolvers":["esnext.promise.with-resolvers"],"core-js/modules/esnext.reflect.define-metadata":["esnext.reflect.define-metadata"],"core-js/modules/esnext.reflect.delete-metadata":["esnext.reflect.delete-metadata"],"core-js/modules/esnext.reflect.get-metadata":["esnext.reflect.get-metadata"],"core-js/modules/esnext.reflect.get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/modules/esnext.reflect.get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/modules/esnext.reflect.get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/modules/esnext.reflect.has-metadata":["esnext.reflect.has-metadata"],"core-js/modules/esnext.reflect.has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/modules/esnext.reflect.metadata":["esnext.reflect.metadata"],"core-js/modules/esnext.regexp.escape":["esnext.regexp.escape"],"core-js/modules/esnext.set.add-all":["esnext.set.add-all"],"core-js/modules/esnext.set.delete-all":["esnext.set.delete-all"],"core-js/modules/esnext.set.difference":["esnext.set.difference"],"core-js/modules/esnext.set.difference.v2":["esnext.set.difference.v2"],"core-js/modules/esnext.set.every":["esnext.set.every"],"core-js/modules/esnext.set.filter":["esnext.set.filter"],"core-js/modules/esnext.set.find":["esnext.set.find"],"core-js/modules/esnext.set.from":["esnext.set.from"],"core-js/modules/esnext.set.intersection":["esnext.set.intersection"],"core-js/modules/esnext.set.intersection.v2":["esnext.set.intersection.v2"],"core-js/modules/esnext.set.is-disjoint-from":["esnext.set.is-disjoint-from"],"core-js/modules/esnext.set.is-disjoint-from.v2":["esnext.set.is-disjoint-from.v2"],"core-js/modules/esnext.set.is-subset-of":["esnext.set.is-subset-of"],"core-js/modules/esnext.set.is-subset-of.v2":["esnext.set.is-subset-of.v2"],"core-js/modules/esnext.set.is-superset-of":["esnext.set.is-superset-of"],"core-js/modules/esnext.set.is-superset-of.v2":["esnext.set.is-superset-of.v2"],"core-js/modules/esnext.set.join":["esnext.set.join"],"core-js/modules/esnext.set.map":["esnext.set.map"],"core-js/modules/esnext.set.of":["esnext.set.of"],"core-js/modules/esnext.set.reduce":["esnext.set.reduce"],"core-js/modules/esnext.set.some":["esnext.set.some"],"core-js/modules/esnext.set.symmetric-difference":["esnext.set.symmetric-difference"],"core-js/modules/esnext.set.symmetric-difference.v2":["esnext.set.symmetric-difference.v2"],"core-js/modules/esnext.set.union":["esnext.set.union"],"core-js/modules/esnext.set.union.v2":["esnext.set.union.v2"],"core-js/modules/esnext.string.at":["esnext.string.at"],"core-js/modules/esnext.string.at-alternative":["esnext.string.at-alternative"],"core-js/modules/esnext.string.code-points":["esnext.string.code-points"],"core-js/modules/esnext.string.cooked":["esnext.string.cooked"],"core-js/modules/esnext.string.dedent":["esnext.string.dedent"],"core-js/modules/esnext.string.is-well-formed":["esnext.string.is-well-formed"],"core-js/modules/esnext.string.match-all":["esnext.string.match-all"],"core-js/modules/esnext.string.replace-all":["esnext.string.replace-all"],"core-js/modules/esnext.string.to-well-formed":["esnext.string.to-well-formed"],"core-js/modules/esnext.suppressed-error.constructor":["esnext.suppressed-error.constructor"],"core-js/modules/esnext.symbol.async-dispose":["esnext.symbol.async-dispose"],"core-js/modules/esnext.symbol.custom-matcher":["esnext.symbol.custom-matcher"],"core-js/modules/esnext.symbol.dispose":["esnext.symbol.dispose"],"core-js/modules/esnext.symbol.is-registered":["esnext.symbol.is-registered"],"core-js/modules/esnext.symbol.is-registered-symbol":["esnext.symbol.is-registered-symbol"],"core-js/modules/esnext.symbol.is-well-known":["esnext.symbol.is-well-known"],"core-js/modules/esnext.symbol.is-well-known-symbol":["esnext.symbol.is-well-known-symbol"],"core-js/modules/esnext.symbol.matcher":["esnext.symbol.matcher"],"core-js/modules/esnext.symbol.metadata":["esnext.symbol.metadata"],"core-js/modules/esnext.symbol.metadata-key":["esnext.symbol.metadata-key"],"core-js/modules/esnext.symbol.observable":["esnext.symbol.observable"],"core-js/modules/esnext.symbol.pattern-match":["esnext.symbol.pattern-match"],"core-js/modules/esnext.symbol.replace-all":["esnext.symbol.replace-all"],"core-js/modules/esnext.typed-array.at":["esnext.typed-array.at"],"core-js/modules/esnext.typed-array.filter-out":["esnext.typed-array.filter-out"],"core-js/modules/esnext.typed-array.filter-reject":["esnext.typed-array.filter-reject"],"core-js/modules/esnext.typed-array.find-last":["esnext.typed-array.find-last"],"core-js/modules/esnext.typed-array.find-last-index":["esnext.typed-array.find-last-index"],"core-js/modules/esnext.typed-array.from-async":["esnext.typed-array.from-async"],"core-js/modules/esnext.typed-array.group-by":["esnext.typed-array.group-by"],"core-js/modules/esnext.typed-array.to-reversed":["esnext.typed-array.to-reversed"],"core-js/modules/esnext.typed-array.to-sorted":["esnext.typed-array.to-sorted"],"core-js/modules/esnext.typed-array.to-spliced":["esnext.typed-array.to-spliced"],"core-js/modules/esnext.typed-array.unique-by":["esnext.typed-array.unique-by"],"core-js/modules/esnext.typed-array.with":["esnext.typed-array.with"],"core-js/modules/esnext.uint8-array.from-base64":["esnext.uint8-array.from-base64"],"core-js/modules/esnext.uint8-array.from-hex":["esnext.uint8-array.from-hex"],"core-js/modules/esnext.uint8-array.to-base64":["esnext.uint8-array.to-base64"],"core-js/modules/esnext.uint8-array.to-hex":["esnext.uint8-array.to-hex"],"core-js/modules/esnext.weak-map.delete-all":["esnext.weak-map.delete-all"],"core-js/modules/esnext.weak-map.emplace":["esnext.weak-map.emplace"],"core-js/modules/esnext.weak-map.from":["esnext.weak-map.from"],"core-js/modules/esnext.weak-map.of":["esnext.weak-map.of"],"core-js/modules/esnext.weak-map.upsert":["esnext.weak-map.upsert"],"core-js/modules/esnext.weak-set.add-all":["esnext.weak-set.add-all"],"core-js/modules/esnext.weak-set.delete-all":["esnext.weak-set.delete-all"],"core-js/modules/esnext.weak-set.from":["esnext.weak-set.from"],"core-js/modules/esnext.weak-set.of":["esnext.weak-set.of"],"core-js/modules/web.atob":["web.atob"],"core-js/modules/web.btoa":["web.btoa"],"core-js/modules/web.clear-immediate":["web.clear-immediate"],"core-js/modules/web.dom-collections.for-each":["web.dom-collections.for-each"],"core-js/modules/web.dom-collections.iterator":["web.dom-collections.iterator"],"core-js/modules/web.dom-exception.constructor":["web.dom-exception.constructor"],"core-js/modules/web.dom-exception.stack":["web.dom-exception.stack"],"core-js/modules/web.dom-exception.to-string-tag":["web.dom-exception.to-string-tag"],"core-js/modules/web.immediate":["web.immediate"],"core-js/modules/web.queue-microtask":["web.queue-microtask"],"core-js/modules/web.self":["web.self"],"core-js/modules/web.set-immediate":["web.set-immediate"],"core-js/modules/web.set-interval":["web.set-interval"],"core-js/modules/web.set-timeout":["web.set-timeout"],"core-js/modules/web.structured-clone":["web.structured-clone"],"core-js/modules/web.timers":["web.timers"],"core-js/modules/web.url":["web.url"],"core-js/modules/web.url-search-params":["web.url-search-params"],"core-js/modules/web.url-search-params.constructor":["web.url-search-params.constructor"],"core-js/modules/web.url-search-params.delete":["web.url-search-params.delete"],"core-js/modules/web.url-search-params.has":["web.url-search-params.has"],"core-js/modules/web.url-search-params.size":["web.url-search-params.size"],"core-js/modules/web.url.can-parse":["web.url.can-parse"],"core-js/modules/web.url.constructor":["web.url.constructor"],"core-js/modules/web.url.parse":["web.url.parse"],"core-js/modules/web.url.to-json":["web.url.to-json"],"core-js/proposals":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/proposals/accessible-object-hasownproperty":["esnext.object.has-own"],"core-js/proposals/array-buffer-base64":["esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/proposals/array-buffer-transfer":["esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/proposals/array-filtering":["esnext.array.filter-out","esnext.array.filter-reject","esnext.typed-array.filter-out","esnext.typed-array.filter-reject"],"core-js/proposals/array-filtering-stage-1":["esnext.array.filter-reject","esnext.typed-array.filter-reject"],"core-js/proposals/array-find-from-last":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index"],"core-js/proposals/array-flat-map":["es.array.flat","es.array.flat-map","es.array.unscopables.flat","es.array.unscopables.flat-map"],"core-js/proposals/array-from-async":["esnext.array.from-async","esnext.typed-array.from-async"],"core-js/proposals/array-from-async-stage-2":["esnext.array.from-async"],"core-js/proposals/array-grouping":["esnext.array.group-by","esnext.array.group-by-to-map","esnext.typed-array.group-by"],"core-js/proposals/array-grouping-stage-3":["esnext.array.group-by","esnext.array.group-by-to-map"],"core-js/proposals/array-grouping-stage-3-2":["esnext.array.group","esnext.array.group-to-map"],"core-js/proposals/array-grouping-v2":["esnext.map.group-by","esnext.object.group-by"],"core-js/proposals/array-includes":["es.array.includes","es.typed-array.includes"],"core-js/proposals/array-is-template-object":["esnext.array.is-template-object"],"core-js/proposals/array-last":["esnext.array.last-index","esnext.array.last-item"],"core-js/proposals/array-unique":["es.map","esnext.array.unique-by","esnext.typed-array.unique-by"],"core-js/proposals/async-explicit-resource-management":["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.symbol.async-dispose"],"core-js/proposals/async-iteration":["es.symbol.async-iterator"],"core-js/proposals/async-iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/change-array-by-copy":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/proposals/change-array-by-copy-stage-4":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.with"],"core-js/proposals/collection-methods":["esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.set.add-all","esnext.set.delete-all","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.weak-map.delete-all","esnext.weak-set.add-all","esnext.weak-set.delete-all"],"core-js/proposals/collection-of-from":["esnext.map.from","esnext.map.of","esnext.set.from","esnext.set.of","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.from","esnext.weak-set.of"],"core-js/proposals/data-view-get-set-uint8-clamped":["esnext.data-view.get-uint8-clamped","esnext.data-view.set-uint8-clamped"],"core-js/proposals/decorator-metadata":["esnext.symbol.metadata-key"],"core-js/proposals/decorator-metadata-v2":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/proposals/decorators":["esnext.symbol.metadata"],"core-js/proposals/efficient-64-bit-arithmetic":["esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.umulh"],"core-js/proposals/error-cause":["es.error.cause","es.aggregate-error.cause"],"core-js/proposals/explicit-resource-management":["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.disposable-stack.constructor","esnext.iterator.dispose","esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/extractors":["esnext.symbol.custom-matcher"],"core-js/proposals/float16":["esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.math.f16round"],"core-js/proposals/function-demethodize":["esnext.function.demethodize"],"core-js/proposals/function-is-callable-is-constructor":["esnext.function.is-callable","esnext.function.is-constructor"],"core-js/proposals/function-un-this":["esnext.function.un-this"],"core-js/proposals/global-this":["esnext.global-this"],"core-js/proposals/iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/iterator-helpers-stage-3":["esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/iterator-helpers-stage-3-2":["esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array"],"core-js/proposals/iterator-range":["esnext.iterator.constructor","esnext.iterator.range"],"core-js/proposals/json-parse-with-source":["esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/proposals/keys-composition":["esnext.composite-key","esnext.composite-symbol"],"core-js/proposals/map-update-or-insert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert-stage-2":["esnext.map.emplace","esnext.weak-map.emplace"],"core-js/proposals/math-extensions":["esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale"],"core-js/proposals/math-signbit":["esnext.math.signbit"],"core-js/proposals/math-sum":["esnext.math.sum-precise"],"core-js/proposals/number-from-string":["esnext.number.from-string"],"core-js/proposals/number-range":["esnext.bigint.range","esnext.number.range"],"core-js/proposals/object-from-entries":["es.object.from-entries"],"core-js/proposals/object-getownpropertydescriptors":["es.object.get-own-property-descriptors"],"core-js/proposals/object-iteration":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"core-js/proposals/object-values-entries":["es.object.entries","es.object.values"],"core-js/proposals/observable":["esnext.observable","esnext.symbol.observable"],"core-js/proposals/pattern-matching":["esnext.symbol.matcher","esnext.symbol.pattern-match"],"core-js/proposals/pattern-matching-v2":["esnext.symbol.custom-matcher"],"core-js/proposals/promise-all-settled":["esnext.promise.all-settled"],"core-js/proposals/promise-any":["esnext.aggregate-error","esnext.promise.any"],"core-js/proposals/promise-finally":["es.promise.finally"],"core-js/proposals/promise-try":["esnext.promise.try"],"core-js/proposals/promise-with-resolvers":["esnext.promise.with-resolvers"],"core-js/proposals/reflect-metadata":["esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/proposals/regexp-dotall-flag":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags"],"core-js/proposals/regexp-escaping":["esnext.regexp.escape"],"core-js/proposals/regexp-named-groups":["es.regexp.constructor","es.regexp.exec","es.string.replace"],"core-js/proposals/relative-indexing-method":["es.string.at-alternative","esnext.array.at","esnext.typed-array.at"],"core-js/proposals/seeded-random":["esnext.math.seeded-prng"],"core-js/proposals/set-methods":["esnext.set.difference.v2","esnext.set.difference","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union"],"core-js/proposals/set-methods-v2":["esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/proposals/string-at":["esnext.string.at"],"core-js/proposals/string-code-points":["esnext.string.code-points"],"core-js/proposals/string-cooked":["esnext.string.cooked"],"core-js/proposals/string-dedent":["esnext.string.dedent"],"core-js/proposals/string-left-right-trim":["es.string.trim-end","es.string.trim-start"],"core-js/proposals/string-match-all":["esnext.string.match-all"],"core-js/proposals/string-padding":["es.string.pad-end","es.string.pad-start"],"core-js/proposals/string-replace-all":["esnext.string.replace-all","esnext.symbol.replace-all"],"core-js/proposals/string-replace-all-stage-4":["esnext.string.replace-all"],"core-js/proposals/symbol-description":["es.symbol.description"],"core-js/proposals/symbol-predicates":["esnext.symbol.is-registered","esnext.symbol.is-well-known"],"core-js/proposals/symbol-predicates-v2":["esnext.symbol.is-registered-symbol","esnext.symbol.is-well-known-symbol"],"core-js/proposals/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/proposals/using-statement":["esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/well-formed-stringify":["es.json.stringify"],"core-js/proposals/well-formed-unicode-strings":["esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/stable":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.unescape","es.weak-map","es.weak-set","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/aggregate-error":[],"core-js/stable/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.string.iterator"],"core-js/stable/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/stable/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/stable/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached"],"core-js/stable/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/stable/array-buffer/slice":["es.array-buffer.slice"],"core-js/stable/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer"],"core-js/stable/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length"],"core-js/stable/array/at":["es.array.at"],"core-js/stable/array/concat":["es.array.concat"],"core-js/stable/array/copy-within":["es.array.copy-within"],"core-js/stable/array/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/every":["es.array.every"],"core-js/stable/array/fill":["es.array.fill"],"core-js/stable/array/filter":["es.array.filter"],"core-js/stable/array/find":["es.array.find"],"core-js/stable/array/find-index":["es.array.find-index"],"core-js/stable/array/find-last":["es.array.find-last"],"core-js/stable/array/find-last-index":["es.array.find-last-index"],"core-js/stable/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/for-each":["es.array.for-each"],"core-js/stable/array/from":["es.array.from","es.string.iterator"],"core-js/stable/array/includes":["es.array.includes"],"core-js/stable/array/index-of":["es.array.index-of"],"core-js/stable/array/is-array":["es.array.is-array"],"core-js/stable/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/join":["es.array.join"],"core-js/stable/array/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/last-index-of":["es.array.last-index-of"],"core-js/stable/array/map":["es.array.map"],"core-js/stable/array/of":["es.array.of"],"core-js/stable/array/push":["es.array.push"],"core-js/stable/array/reduce":["es.array.reduce"],"core-js/stable/array/reduce-right":["es.array.reduce-right"],"core-js/stable/array/reverse":["es.array.reverse"],"core-js/stable/array/slice":["es.array.slice"],"core-js/stable/array/some":["es.array.some"],"core-js/stable/array/sort":["es.array.sort"],"core-js/stable/array/splice":["es.array.splice"],"core-js/stable/array/to-reversed":["es.array.to-reversed"],"core-js/stable/array/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/array/to-spliced":["es.array.to-spliced"],"core-js/stable/array/unshift":["es.array.unshift"],"core-js/stable/array/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string"],"core-js/stable/array/virtual/at":["es.array.at"],"core-js/stable/array/virtual/concat":["es.array.concat"],"core-js/stable/array/virtual/copy-within":["es.array.copy-within"],"core-js/stable/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/every":["es.array.every"],"core-js/stable/array/virtual/fill":["es.array.fill"],"core-js/stable/array/virtual/filter":["es.array.filter"],"core-js/stable/array/virtual/find":["es.array.find"],"core-js/stable/array/virtual/find-index":["es.array.find-index"],"core-js/stable/array/virtual/find-last":["es.array.find-last"],"core-js/stable/array/virtual/find-last-index":["es.array.find-last-index"],"core-js/stable/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/virtual/for-each":["es.array.for-each"],"core-js/stable/array/virtual/includes":["es.array.includes"],"core-js/stable/array/virtual/index-of":["es.array.index-of"],"core-js/stable/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/join":["es.array.join"],"core-js/stable/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/stable/array/virtual/map":["es.array.map"],"core-js/stable/array/virtual/push":["es.array.push"],"core-js/stable/array/virtual/reduce":["es.array.reduce"],"core-js/stable/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/stable/array/virtual/reverse":["es.array.reverse"],"core-js/stable/array/virtual/slice":["es.array.slice"],"core-js/stable/array/virtual/some":["es.array.some"],"core-js/stable/array/virtual/sort":["es.array.sort"],"core-js/stable/array/virtual/splice":["es.array.splice"],"core-js/stable/array/virtual/to-reversed":["es.array.to-reversed"],"core-js/stable/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/array/virtual/to-spliced":["es.array.to-spliced"],"core-js/stable/array/virtual/unshift":["es.array.unshift"],"core-js/stable/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/with":["es.array.with"],"core-js/stable/array/with":["es.array.with"],"core-js/stable/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/clear-immediate":["web.immediate"],"core-js/stable/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/stable/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/stable/date/get-year":["es.date.get-year"],"core-js/stable/date/now":["es.date.now"],"core-js/stable/date/set-year":["es.date.set-year"],"core-js/stable/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/stable/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/stable/date/to-json":["es.date.to-json"],"core-js/stable/date/to-primitive":["es.date.to-primitive"],"core-js/stable/date/to-string":["es.date.to-string"],"core-js/stable/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/stable/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/stable/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/stable/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/stable/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/stable/error":["es.error.cause","es.error.to-string"],"core-js/stable/error/constructor":["es.error.cause"],"core-js/stable/error/to-string":["es.error.to-string"],"core-js/stable/escape":["es.escape"],"core-js/stable/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/stable/function/bind":["es.function.bind"],"core-js/stable/function/has-instance":["es.function.has-instance"],"core-js/stable/function/name":["es.function.name"],"core-js/stable/function/virtual":["es.function.bind"],"core-js/stable/function/virtual/bind":["es.function.bind"],"core-js/stable/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/global-this":["es.global-this"],"core-js/stable/instance/at":["es.array.at","es.string.at-alternative"],"core-js/stable/instance/bind":["es.function.bind"],"core-js/stable/instance/code-point-at":["es.string.code-point-at"],"core-js/stable/instance/concat":["es.array.concat"],"core-js/stable/instance/copy-within":["es.array.copy-within"],"core-js/stable/instance/ends-with":["es.string.ends-with"],"core-js/stable/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/every":["es.array.every"],"core-js/stable/instance/fill":["es.array.fill"],"core-js/stable/instance/filter":["es.array.filter"],"core-js/stable/instance/find":["es.array.find"],"core-js/stable/instance/find-index":["es.array.find-index"],"core-js/stable/instance/find-last":["es.array.find-last"],"core-js/stable/instance/find-last-index":["es.array.find-last-index"],"core-js/stable/instance/flags":["es.regexp.flags"],"core-js/stable/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/stable/instance/includes":["es.array.includes","es.string.includes"],"core-js/stable/instance/index-of":["es.array.index-of"],"core-js/stable/instance/is-well-formed":["es.string.is-well-formed"],"core-js/stable/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/last-index-of":["es.array.last-index-of"],"core-js/stable/instance/map":["es.array.map"],"core-js/stable/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/instance/pad-end":["es.string.pad-end"],"core-js/stable/instance/pad-start":["es.string.pad-start"],"core-js/stable/instance/push":["es.array.push"],"core-js/stable/instance/reduce":["es.array.reduce"],"core-js/stable/instance/reduce-right":["es.array.reduce-right"],"core-js/stable/instance/repeat":["es.string.repeat"],"core-js/stable/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/instance/reverse":["es.array.reverse"],"core-js/stable/instance/slice":["es.array.slice"],"core-js/stable/instance/some":["es.array.some"],"core-js/stable/instance/sort":["es.array.sort"],"core-js/stable/instance/splice":["es.array.splice"],"core-js/stable/instance/starts-with":["es.string.starts-with"],"core-js/stable/instance/to-reversed":["es.array.to-reversed"],"core-js/stable/instance/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/instance/to-spliced":["es.array.to-spliced"],"core-js/stable/instance/to-well-formed":["es.string.to-well-formed"],"core-js/stable/instance/trim":["es.string.trim"],"core-js/stable/instance/trim-end":["es.string.trim-end"],"core-js/stable/instance/trim-left":["es.string.trim-start"],"core-js/stable/instance/trim-right":["es.string.trim-end"],"core-js/stable/instance/trim-start":["es.string.trim-start"],"core-js/stable/instance/unshift":["es.array.unshift"],"core-js/stable/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/with":["es.array.with"],"core-js/stable/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/json":["es.date.to-json","es.json.stringify","es.json.to-string-tag"],"core-js/stable/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/stable/json/to-string-tag":["es.json.to-string-tag"],"core-js/stable/map":["es.array.iterator","es.map","es.map.group-by","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/map/group-by":["es.map","es.map.group-by","es.object.to-string"],"core-js/stable/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/stable/math/acosh":["es.math.acosh"],"core-js/stable/math/asinh":["es.math.asinh"],"core-js/stable/math/atanh":["es.math.atanh"],"core-js/stable/math/cbrt":["es.math.cbrt"],"core-js/stable/math/clz32":["es.math.clz32"],"core-js/stable/math/cosh":["es.math.cosh"],"core-js/stable/math/expm1":["es.math.expm1"],"core-js/stable/math/fround":["es.math.fround"],"core-js/stable/math/hypot":["es.math.hypot"],"core-js/stable/math/imul":["es.math.imul"],"core-js/stable/math/log10":["es.math.log10"],"core-js/stable/math/log1p":["es.math.log1p"],"core-js/stable/math/log2":["es.math.log2"],"core-js/stable/math/sign":["es.math.sign"],"core-js/stable/math/sinh":["es.math.sinh"],"core-js/stable/math/tanh":["es.math.tanh"],"core-js/stable/math/to-string-tag":["es.math.to-string-tag"],"core-js/stable/math/trunc":["es.math.trunc"],"core-js/stable/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/constructor":["es.number.constructor"],"core-js/stable/number/epsilon":["es.number.epsilon"],"core-js/stable/number/is-finite":["es.number.is-finite"],"core-js/stable/number/is-integer":["es.number.is-integer"],"core-js/stable/number/is-nan":["es.number.is-nan"],"core-js/stable/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/stable/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/stable/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/stable/number/parse-float":["es.number.parse-float"],"core-js/stable/number/parse-int":["es.number.parse-int"],"core-js/stable/number/to-exponential":["es.number.to-exponential"],"core-js/stable/number/to-fixed":["es.number.to-fixed"],"core-js/stable/number/to-precision":["es.number.to-precision"],"core-js/stable/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/stable/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/stable/number/virtual/to-precision":["es.number.to-precision"],"core-js/stable/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/object/assign":["es.object.assign"],"core-js/stable/object/create":["es.object.create"],"core-js/stable/object/define-getter":["es.object.define-getter"],"core-js/stable/object/define-properties":["es.object.define-properties"],"core-js/stable/object/define-property":["es.object.define-property"],"core-js/stable/object/define-setter":["es.object.define-setter"],"core-js/stable/object/entries":["es.object.entries"],"core-js/stable/object/freeze":["es.object.freeze"],"core-js/stable/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/stable/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/stable/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/stable/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/stable/object/get-own-property-symbols":["es.symbol"],"core-js/stable/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/stable/object/group-by":["es.object.create","es.object.group-by"],"core-js/stable/object/has-own":["es.object.has-own"],"core-js/stable/object/is":["es.object.is"],"core-js/stable/object/is-extensible":["es.object.is-extensible"],"core-js/stable/object/is-frozen":["es.object.is-frozen"],"core-js/stable/object/is-sealed":["es.object.is-sealed"],"core-js/stable/object/keys":["es.object.keys"],"core-js/stable/object/lookup-getter":["es.object.lookup-getter"],"core-js/stable/object/lookup-setter":["es.object.lookup-setter"],"core-js/stable/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/stable/object/proto":["es.object.proto"],"core-js/stable/object/seal":["es.object.seal"],"core-js/stable/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/stable/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/object/values":["es.object.values"],"core-js/stable/parse-float":["es.parse-float"],"core-js/stable/parse-int":["es.parse-int"],"core-js/stable/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.with-resolvers","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/stable/promise/with-resolvers":["es.promise","es.promise.with-resolvers"],"core-js/stable/queue-microtask":["web.queue-microtask"],"core-js/stable/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/stable/reflect/apply":["es.reflect.apply"],"core-js/stable/reflect/construct":["es.reflect.construct"],"core-js/stable/reflect/define-property":["es.reflect.define-property"],"core-js/stable/reflect/delete-property":["es.reflect.delete-property"],"core-js/stable/reflect/get":["es.reflect.get"],"core-js/stable/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/stable/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/stable/reflect/has":["es.reflect.has"],"core-js/stable/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/stable/reflect/own-keys":["es.reflect.own-keys"],"core-js/stable/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/stable/reflect/set":["es.reflect.set"],"core-js/stable/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/stable/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/stable/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/stable/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/stable/regexp/flags":["es.regexp.flags"],"core-js/stable/regexp/match":["es.regexp.exec","es.string.match"],"core-js/stable/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/regexp/search":["es.regexp.exec","es.string.search"],"core-js/stable/regexp/split":["es.regexp.exec","es.string.split"],"core-js/stable/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/stable/regexp/to-string":["es.regexp.to-string"],"core-js/stable/self":["web.self"],"core-js/stable/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/set-immediate":["web.immediate"],"core-js/stable/set-interval":["web.timers"],"core-js/stable/set-timeout":["web.timers"],"core-js/stable/set/difference":["es.set","es.set.difference.v2"],"core-js/stable/set/intersection":["es.set","es.set.intersection.v2"],"core-js/stable/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2"],"core-js/stable/set/is-subset-of":["es.set","es.set.is-subset-of.v2"],"core-js/stable/set/is-superset-of":["es.set","es.set.is-superset-of.v2"],"core-js/stable/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2"],"core-js/stable/set/union":["es.set","es.set.union.v2"],"core-js/stable/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/anchor":["es.string.anchor"],"core-js/stable/string/at":["es.string.at-alternative"],"core-js/stable/string/big":["es.string.big"],"core-js/stable/string/blink":["es.string.blink"],"core-js/stable/string/bold":["es.string.bold"],"core-js/stable/string/code-point-at":["es.string.code-point-at"],"core-js/stable/string/ends-with":["es.string.ends-with"],"core-js/stable/string/fixed":["es.string.fixed"],"core-js/stable/string/fontcolor":["es.string.fontcolor"],"core-js/stable/string/fontsize":["es.string.fontsize"],"core-js/stable/string/from-code-point":["es.string.from-code-point"],"core-js/stable/string/includes":["es.string.includes"],"core-js/stable/string/is-well-formed":["es.string.is-well-formed"],"core-js/stable/string/italics":["es.string.italics"],"core-js/stable/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/link":["es.string.link"],"core-js/stable/string/match":["es.regexp.exec","es.string.match"],"core-js/stable/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/pad-end":["es.string.pad-end"],"core-js/stable/string/pad-start":["es.string.pad-start"],"core-js/stable/string/raw":["es.string.raw"],"core-js/stable/string/repeat":["es.string.repeat"],"core-js/stable/string/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/search":["es.regexp.exec","es.string.search"],"core-js/stable/string/small":["es.string.small"],"core-js/stable/string/split":["es.regexp.exec","es.string.split"],"core-js/stable/string/starts-with":["es.string.starts-with"],"core-js/stable/string/strike":["es.string.strike"],"core-js/stable/string/sub":["es.string.sub"],"core-js/stable/string/substr":["es.string.substr"],"core-js/stable/string/sup":["es.string.sup"],"core-js/stable/string/to-well-formed":["es.string.to-well-formed"],"core-js/stable/string/trim":["es.string.trim"],"core-js/stable/string/trim-end":["es.string.trim-end"],"core-js/stable/string/trim-left":["es.string.trim-start"],"core-js/stable/string/trim-right":["es.string.trim-end"],"core-js/stable/string/trim-start":["es.string.trim-start"],"core-js/stable/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/virtual/anchor":["es.string.anchor"],"core-js/stable/string/virtual/at":["es.string.at-alternative"],"core-js/stable/string/virtual/big":["es.string.big"],"core-js/stable/string/virtual/blink":["es.string.blink"],"core-js/stable/string/virtual/bold":["es.string.bold"],"core-js/stable/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/stable/string/virtual/ends-with":["es.string.ends-with"],"core-js/stable/string/virtual/fixed":["es.string.fixed"],"core-js/stable/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/stable/string/virtual/fontsize":["es.string.fontsize"],"core-js/stable/string/virtual/includes":["es.string.includes"],"core-js/stable/string/virtual/is-well-formed":["es.string.is-well-formed"],"core-js/stable/string/virtual/italics":["es.string.italics"],"core-js/stable/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/virtual/link":["es.string.link"],"core-js/stable/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/virtual/pad-end":["es.string.pad-end"],"core-js/stable/string/virtual/pad-start":["es.string.pad-start"],"core-js/stable/string/virtual/repeat":["es.string.repeat"],"core-js/stable/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/virtual/small":["es.string.small"],"core-js/stable/string/virtual/starts-with":["es.string.starts-with"],"core-js/stable/string/virtual/strike":["es.string.strike"],"core-js/stable/string/virtual/sub":["es.string.sub"],"core-js/stable/string/virtual/substr":["es.string.substr"],"core-js/stable/string/virtual/sup":["es.string.sup"],"core-js/stable/string/virtual/to-well-formed":["es.string.to-well-formed"],"core-js/stable/string/virtual/trim":["es.string.trim"],"core-js/stable/string/virtual/trim-end":["es.string.trim-end"],"core-js/stable/string/virtual/trim-left":["es.string.trim-start"],"core-js/stable/string/virtual/trim-right":["es.string.trim-end"],"core-js/stable/string/virtual/trim-start":["es.string.trim-start"],"core-js/stable/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/stable/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/stable/symbol/description":["es.symbol.description"],"core-js/stable/symbol/for":["es.symbol"],"core-js/stable/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/stable/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/stable/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/symbol/key-for":["es.symbol"],"core-js/stable/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/stable/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/stable/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/stable/symbol/species":["es.symbol.species"],"core-js/stable/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/stable/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/stable/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/symbol/unscopables":["es.symbol.unscopables"],"core-js/stable/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/at":["es.typed-array.at"],"core-js/stable/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/stable/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/every":["es.typed-array.every"],"core-js/stable/typed-array/fill":["es.typed-array.fill"],"core-js/stable/typed-array/filter":["es.typed-array.filter"],"core-js/stable/typed-array/find":["es.typed-array.find"],"core-js/stable/typed-array/find-index":["es.typed-array.find-index"],"core-js/stable/typed-array/find-last":["es.typed-array.find-last"],"core-js/stable/typed-array/find-last-index":["es.typed-array.find-last-index"],"core-js/stable/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/for-each":["es.typed-array.for-each"],"core-js/stable/typed-array/from":["es.typed-array.from"],"core-js/stable/typed-array/includes":["es.typed-array.includes"],"core-js/stable/typed-array/index-of":["es.typed-array.index-of"],"core-js/stable/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/join":["es.typed-array.join"],"core-js/stable/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/stable/typed-array/map":["es.typed-array.map"],"core-js/stable/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/of":["es.typed-array.of"],"core-js/stable/typed-array/reduce":["es.typed-array.reduce"],"core-js/stable/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/stable/typed-array/reverse":["es.typed-array.reverse"],"core-js/stable/typed-array/set":["es.typed-array.set"],"core-js/stable/typed-array/slice":["es.typed-array.slice"],"core-js/stable/typed-array/some":["es.typed-array.some"],"core-js/stable/typed-array/sort":["es.typed-array.sort"],"core-js/stable/typed-array/subarray":["es.typed-array.subarray"],"core-js/stable/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/stable/typed-array/to-reversed":["es.typed-array.to-reversed"],"core-js/stable/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted"],"core-js/stable/typed-array/to-string":["es.typed-array.to-string"],"core-js/stable/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with"],"core-js/stable/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/with":["es.typed-array.with"],"core-js/stable/unescape":["es.unescape"],"core-js/stable/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/url/can-parse":["web.url","web.url.can-parse"],"core-js/stable/url/parse":["web.url","web.url.parse"],"core-js/stable/url/to-json":["web.url.to-json"],"core-js/stable/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/stable/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/stage":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stage/0":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stage/1":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of"],"core-js/stage/2":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.emplace","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.difference","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.emplace"],"core-js/stage/2.7":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/stage/3":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.group-by","esnext.math.f16round","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.with-resolvers","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/stage/4":["es.string.at-alternative","esnext.aggregate-error","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.global-this","esnext.map.group-by","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.with-resolvers","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.with"],"core-js/stage/pre":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web":["web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web/dom-collections":["web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/web/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/web/immediate":["web.immediate"],"core-js/web/queue-microtask":["web.queue-microtask"],"core-js/web/structured-clone":["es.array.iterator","es.map","es.object.to-string","es.set","web.structured-clone"],"core-js/web/timers":["web.timers"],"core-js/web/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web/url-search-params":["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"]},$O,sue;function mtt(){return sue||(sue=1,$O=nue),$O}var iue;function ytt(){if(iue)return Zo;iue=1,Zo.__esModule=!0,Zo.BABEL_RUNTIME=void 0,Zo.callMethod=h,Zo.coreJSModule=g,Zo.coreJSPureHelper=x,Zo.isCoreJSSource=m;var e=u(Qo),r=s(mtt());function s(R){return R&&R.__esModule?R:{default:R}}function l(R){if(typeof WeakMap!="function")return null;var w=new WeakMap,T=new WeakMap;return(l=function(P){return P?T:w})(R)}function u(R,w){if(R&&R.__esModule)return R;if(R===null||typeof R!="object"&&typeof R!="function")return{default:R};var T=l(w);if(T&&T.has(R))return T.get(R);var I={},P=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var O in R)if(O!=="default"&&Object.prototype.hasOwnProperty.call(R,O)){var j=P?Object.getOwnPropertyDescriptor(R,O):null;j&&(j.get||j.set)?Object.defineProperty(I,O,j):I[O]=R[O]}return I.default=R,T&&T.set(R,I),I}var o=e.default||e,c=o.types,f="@babel/runtime-corejs3";Zo.BABEL_RUNTIME=f;function h(R,w){var T=R.node.object,I,P;c.isIdentifier(T)?(I=T,P=c.cloneNode(T)):(I=R.scope.generateDeclaredUidIdentifier("context"),P=c.assignmentExpression("=",c.cloneNode(I),T)),R.replaceWith(c.memberExpression(c.callExpression(w,[P]),c.identifier("call"))),R.parentPath.unshiftContainer("arguments",I)}function m(R){return typeof R=="string"&&(R=R.replace(/\\/g,"/").replace(/(\/(index)?)?(\.js)?$/i,"").toLowerCase()),Object.prototype.hasOwnProperty.call(r.default,R)&&r.default[R]}function g(R){return"core-js/modules/"+R+".js"}function x(R,w,T){return w?f+"/core-js/"+R+T:"core-js-pure/features/"+R+".js"}return Zo}var oue;function gtt(){if(oue)return om;oue=1,om.__esModule=!0,om.default=void 0;var e=x(Jle()),r=x(Zet()),s=x(dtt()),l=ptt(),u=g(ftt()),o=x(htt()),c=g(Qo),f=ytt(),h=x(kO());function m(k){if(typeof WeakMap!="function")return null;var B=new WeakMap,F=new WeakMap;return(m=function(V){return V?F:B})(k)}function g(k,B){if(k&&k.__esModule)return k;if(k===null||typeof k!="object"&&typeof k!="function")return{default:k};var F=m(B);if(F&&F.has(k))return F.get(k);var L={},V=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var H in k)if(H!=="default"&&Object.prototype.hasOwnProperty.call(k,H)){var K=V?Object.getOwnPropertyDescriptor(k,H):null;K&&(K.get||K.set)?Object.defineProperty(L,H,K):L[H]=k[H]}return L.default=k,F&&F.set(k,L),L}function x(k){return k&&k.__esModule?k:{default:k}}function R(){return R=Object.assign?Object.assign.bind():function(k){for(var B=1;B<arguments.length;B++){var F=arguments[B];for(var L in F)Object.prototype.hasOwnProperty.call(F,L)&&(k[L]=F[L])}return k},R.apply(this,arguments)}var w=c.default||c,T=w.types,I="#__secret_key__@babel/preset-env__compatibility",P="#__secret_key__@babel/runtime__compatibility",O=["array","string","iterator","async-iterator","dom-collections"].map(function(k){return new RegExp("[a-z]*\\."+k+"\\..*")}),j=function(B,F){if(F(B))return!0;if(!B.startsWith("es."))return!1;var L="esnext."+B.slice(3);return e.default[L]?F(L):!1},D=(0,h.default)(function(k,B){var F=k.getUtils,L=k.method,V=k.shouldInjectPolyfill,H=k.createMetaResolver,K=k.debug,G=k.babel,X=B.version,ue=X===void 0?3:X,oe=B.proposals,he=B.shippedProposals,te=B[I],ae=te===void 0?{}:te,J=ae.noRuntimeName,xe=J===void 0?!1:J,de=B[P],$e=de===void 0?{}:de,Ve=$e.useBabelRuntime,Ie=Ve===void 0?!1:Ve,ke=$e.ext,Le=ke===void 0?".js":ke,Ze=G.caller(function($t){return($t==null?void 0:$t.name)==="babel-loader"}),at=H({global:l.BuiltIns,static:l.StaticProperties,instance:l.InstanceProperties}),lt=new Set((0,s.default)(ue));function gt($t){return Ie?$t?f.BABEL_RUNTIME+"/core-js":f.BABEL_RUNTIME+"/core-js-stable":$t?"core-js-pure/features":"core-js-pure/stable"}function It($t,Et){return V($t)?(K($t),Et.injectGlobalImport((0,f.coreJSModule)($t),$t),!0):!1}function tt($t,Et,Lt){Lt===void 0&&(Lt=!0);for(var Re=C($t),Be;!(Be=Re()).done;){var et=Be.value;Lt?j(et,function(it){return It(it,Et)}):It(et,Et)}}function Ft($t,Et,Lt,Re){if($t.pure&&!(Re&&$t.exclude&&$t.exclude.includes(Re))&&j($t.name,V)){var Be=$t.name,et=!1;if((oe||he&&Be.startsWith("esnext.")||Be.startsWith("es.")&&!lt.has(Be))&&(et=!0),Ie&&!(et?u.proposals:u.stable).has($t.pure))return;var it=gt(et);return Lt.injectDefaultImport(it+"/"+$t.pure+Le,Et)}}function rr($t){if($t.startsWith("esnext.")){var Et="es."+$t.slice(7);return Et in e.default}return!0}return{name:"corejs3",runtimeName:xe?null:f.BABEL_RUNTIME,polyfills:e.default,filterPolyfills:function(Et){return lt.has(Et)?oe||L==="entry-global"||he&&r.default.has(Et)?!0:rr(Et):!1},entryGlobal:function(Et,Lt,Re){if(Et.kind==="import"){var Be=(0,f.isCoreJSSource)(Et.source);if(Be){if(Be.length===1&&Et.source===(0,f.coreJSModule)(Be[0])&&V(Be[0])){K(null);return}var et=new Set(Be),it=Be.filter(function(vt){if(!vt.startsWith("esnext."))return!0;var Ot=vt.replace("esnext.","es.");return!(et.has(Ot)&&V(Ot))});tt(it,Lt,!1),Re.remove()}}},usageGlobal:function(Et,Lt,Re){var Be=at(Et);if(Be&&!(0,o.default)(Be.desc,Re)){var et=Be.desc.global;if(Be.kind!=="global"&&"object"in Et&&Et.object&&Et.placement==="prototype"){var it=Et.object.toLowerCase();et=et.filter(function(vt){return O.some(function(Ot){return Ot.test(vt)})?vt.includes(it):!0})}return tt(et,Lt),!0}},usagePure:function(Et,Lt,Re){if(Et.kind==="in"){Et.key==="Symbol.iterator"&&Re.replaceWith(T.callExpression(Lt.injectDefaultImport((0,f.coreJSPureHelper)("is-iterable",Ie,Le),"isIterable"),[Re.node.right]));return}if(!Re.parentPath.isUnaryExpression({operator:"delete"})){if(Et.kind==="property"){if(!Re.isMemberExpression()||!Re.isReferenced()||Re.parentPath.isUpdateExpression()||T.isSuper(Re.node.object))return;if(Et.key==="Symbol.iterator"){if(!V("es.symbol.iterator"))return;var Be=Re.parent,et=Re.node;T.isCallExpression(Be,{callee:et})?Be.arguments.length===0?(Re.parentPath.replaceWith(T.callExpression(Lt.injectDefaultImport((0,f.coreJSPureHelper)("get-iterator",Ie,Le),"getIterator"),[et.object])),Re.skip()):(0,f.callMethod)(Re,Lt.injectDefaultImport((0,f.coreJSPureHelper)("get-iterator-method",Ie,Le),"getIteratorMethod")):Re.replaceWith(T.callExpression(Lt.injectDefaultImport((0,f.coreJSPureHelper)("get-iterator-method",Ie,Le),"getIteratorMethod"),[Re.node.object]));return}}var it=at(Et);if(it&&!(0,o.default)(it.desc,Re)){if(Ie&&it.desc.pure&&it.desc.pure.slice(-6)==="/index"&&(it=R({},it,{desc:R({},it.desc,{pure:it.desc.pure.slice(0,-6)})})),it.kind==="global"){var vt=Ft(it.desc,it.name,Lt);vt&&Re.replaceWith(vt)}else if(it.kind==="static"){var Ot=Ft(it.desc,it.name,Lt,Et.object);Ot&&Re.replaceWith(Ot)}else if(it.kind==="instance"){var De=Ft(it.desc,it.name+"InstanceProperty",Lt,Et.object);if(!De)return;var Qe=Re.node;T.isCallExpression(Re.parent,{callee:Qe})?(0,f.callMethod)(Re,De):Re.replaceWith(T.callExpression(De,[Qe.object]))}}}},visitor:L==="usage-global"&&{CallExpression:function(Et){if(Et.get("callee").isImport()){var Lt=F(Et);tt(Ze?l.PromiseDependenciesWithIterators:l.PromiseDependencies,Lt)}},Function:function(Et){Et.node.async&&tt(l.PromiseDependencies,F(Et))},"ForOfStatement|ArrayPattern":function(Et){tt(l.CommonIterators,F(Et))},SpreadElement:function(Et){Et.parentPath.isObjectExpression()||tt(l.CommonIterators,F(Et))},YieldExpression:function(Et){Et.node.delegate&&tt(l.CommonIterators,F(Et))},Class:function(Et){var Lt,Re=((Lt=Et.node.decorators)==null?void 0:Lt.length)||Et.node.body.body.some(function(Be){var et;return(et=Be.decorators)==null?void 0:et.length});Re&&tt(l.DecoratorMetadataDependencies,F(Et))}}}});return om.default=D,om}var um={},lue;function vtt(){if(lue)return um;lue=1,um.__esModule=!0,um.default=void 0;var e=r(kO());function r(c){return c&&c.__esModule?c:{default:c}}var s="#__secret_key__@babel/runtime__compatibility",l=(0,e.default)(function(c,f){var h=c.debug,m=c.targets,g=c.babel;if(!o(m,g.targets()))throw new Error("This plugin does not use the targets option. Only preset-env's targets or top-level targets need to be configured for this plugin to work. See https://github.com/babel/babel-polyfills/issues/36 for more details.");var x=f[s],R=x===void 0?{}:x,w=R.moduleName,T=w===void 0?null:w,I=R.useBabelRuntime,P=I===void 0?!1:I;return{name:"regenerator",polyfills:["regenerator-runtime"],usageGlobal:function(j,D){u(j)&&(h("regenerator-runtime"),D.injectGlobalImport("regenerator-runtime/runtime.js"))},usagePure:function(j,D,k){if(u(j)){var B="regenerator-runtime";if(P){var F,L=(F=T??k.hub.file.get("runtimeHelpersModuleName"))!=null?F:"@babel/runtime";B=L+"/regenerator"}k.replaceWith(D.injectDefaultImport(B,"regenerator-runtime"))}}}});um.default=l;var u=function(f){return f.kind==="global"&&f.name==="regeneratorRuntime"};function o(c,f){return JSON.stringify(c)===JSON.stringify(f)}return um}var qO,uue;function btt(){if(uue)return qO;uue=1;function e(r){return r==null?!1:r&&r!=="false"&&r!=="0"}return qO=e(er.env.BABEL_8_BREAKING)?null:vtt(),qO}var UO,cue;function xtt(){if(cue)return UO;cue=1;var e=Qet().default,r=gtt().default,s=btt().default,l="#__secret_key__@babel/runtime__compatibility";function u(f){return function(h,m,g){return e(h,f,g)}}function o(f){return function(h,m,g){return r(h,f,g)}}function c(f,h,m){return h?function(g,x,R){return Object.assign({},s(g,f,R),{inherits:m??void 0})}:m??void 0}return UO=function(h,m,g){var x,R=h.corejs,w=h.regenerator,T=w===void 0?!0:w,I=h.moduleName,P=!1,O;typeof R=="object"&&R!==null?(O=R.version,P=!!R.proposals):O=R;var j=O?Number(O):!1;if(![!1,2,3].includes(j))throw new Error("The `core-js` version must be false, 2 or 3, but got "+JSON.stringify(O)+".");if(P&&(!j||j<3))throw new Error("The 'proposals' option is only supported when using 'corejs: 3'");if(typeof T!="boolean")throw new Error("The 'regenerator' option must be undefined, or a boolean.");var D=(x={method:"usage-pure",absoluteImports:g,proposals:P},x[l]={useBabelRuntime:!0,runtimeVersion:m,ext:"",moduleName:I},x);return c(D,T,j===2?u(D):j===3?o(D):null)},UO}(function(e){Object.defineProperty(e,"createPolyfillPlugins",{get:function(){return xtt()}})})(Ale);var Rtt=function(e,r,s){e.assertVersion("*");var l=r.version,u=l===void 0?"7.0.0-beta.0":l,o=r.absoluteRuntime,c=o===void 0?!1:o,f=r.moduleName,h=f===void 0?null:f;if(typeof c!="boolean"&&typeof c!="string")throw new Error("The 'absoluteRuntime' option must be undefined, a boolean, or a string.");if(typeof u!="string")throw new Error("The 'version' option must be a version string.");if(h!==null&&typeof h!="string")throw new Error("The 'moduleName' option must be null or a string.");var m="7.13.0",g=Let(m,u);if(hasOwnProperty.call(r,"useBuiltIns"))throw r.useBuiltIns?new Error("The 'useBuiltIns' option has been removed. The @babel/runtime module now uses builtins by default."):new Error("The 'useBuiltIns' option has been removed. Use the 'corejs'option to polyfill with `core-js` via @babel/runtime.");if(hasOwnProperty.call(r,"polyfill"))throw r.polyfill===!1?new Error("The 'polyfill' option has been removed. The @babel/runtime module now skips polyfilling by default."):new Error("The 'polyfill' option has been removed. Use the 'corejs'option to polyfill with `core-js` via @babel/runtime.");{var x=r.useESModules,R=x===void 0?!1:x;if(typeof R!="boolean"&&R!=="auto")throw new Error("The 'useESModules' option must be undefined, or a boolean, or 'auto'.");var w=R==="auto"?e.caller(function(O){return!!(O!=null&&O.supportsStaticESM)}):R}{var T=r.helpers,I=T===void 0?!0:T;if(typeof I!="boolean")throw new Error("The 'helpers' option must be undefined, or a boolean.")}var P=new Set(["interopRequireWildcard","interopRequireDefault"]);return{name:"transform-runtime",inherits:Ale.createPolyfillPlugins(r,u,c),pre:function(j){if(!I)return;var D;j.set("helperGenerator",function(F){var L,V;if((L=D)!=null||(D=Met((V=h??j.get("runtimeHelpersModuleName"))!=null?V:"@babel/runtime",s,c)),!(j.availableHelper!=null&&j.availableHelper(F,u)))return F==="regeneratorRuntime"?fi([],Ne("regeneratorRuntime")):void 0;var H=P.has(F)&&!uo(j.path)?4:void 0,K=D+"/helpers/"+(w&&j.path.node.sourceType==="module"?"esm/"+F:F);return c&&(K=Ple()),B(K,F,H)});var k=new Map;function B(F,L,V,H){var K=uo(j.path),G=F+":"+L+":"+(K||""),X=k.get(G);return X?X=me(X):(X=hLe(j.path,F,{importedInterop:g?"compiled":"uncompiled",nameHint:L,blockHoist:V}),k.set(G,X)),X}}}},VO=function(e){return e.assertVersion("*"),{name:"transform-shorthand-properties",visitor:{ObjectMethod:function(s){var l=s.node;if(l.kind==="method"){var u=Mn(null,l.params,l.body,l.generator,l.async);u.returnType=l.returnType;var o=ko(l);nt(o,{value:"__proto__"})?s.replaceWith(sn(o,u,!0)):s.replaceWith(sn(l.key,u,l.computed))}},ObjectProperty:function(s){var l=s.node;if(l.shorthand){var u=ko(l);nt(u,{value:"__proto__"})?s.replaceWith(sn(u,l.value,!0)):l.shorthand=!1}}}}},WO=function(e,r){var s,l;e.assertVersion("*");var u=(s=e.assumption("iterableIsArray"))!=null?s:r.loose,o=(l=r.allowArrayLike)!=null?l:e.assumption("arrayLikeIsIterable");function c(x,R){return u&&!Dt(x.argument,{name:"arguments"})?x.argument:R.toArray(x.argument,!0,o)}function f(x){return x.elements.some(function(R){return R===null})}function h(x){for(var R=0;R<x.length;R++)if(mn(x[R]))return!0;return!1}function m(x,R){return x.length?(R.push(Ra(x)),[]):x}function g(x,R,w){for(var T=[],I=[],P=C(x),O;!(O=P()).done;){var j=O.value;if(mn(j)){I=m(I,T);var D=c(j,R);ht(D)&&f(D)&&(D=ft(w.addHelper("arrayWithoutHoles"),[D])),T.push(D)}else I.push(j)}return m(I,T),T}return{name:"transform-spread",visitor:{ArrayExpression:function(R){var w=R.node,T=R.scope,I=w.elements;if(h(I)){var P=g(I,T,this.file),O=P[0];if(P.length===1&&O!==I[0].argument){R.replaceWith(O);return}ht(O)?P.shift():O=Ra([]),R.replaceWith(ft(Vt(O,Ne("concat")),P))}},CallExpression:function(R){var w=R.node,T=R.scope,I=w.arguments;if(h(I)){var P=ds(R.get("callee"));if(P.isSuper())throw R.buildCodeFrameError("It's not possible to compile spread arguments in `super()` without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var O=T.buildUndefinedNode();w.arguments=[];var j;I.length===1&&Dt(I[0].argument,{name:"arguments"})?j=[I[0].argument]:j=g(I,T,this.file);var D=j.shift();j.length?w.arguments.push(ft(Vt(D,Ne("concat")),j)):w.arguments.push(D);var k=P.node;if(lr(k)){var B=T.maybeGenerateMemoised(k.object);B?(k.object=tr("=",B,k.object),O=B):O=me(k.object)}w.callee=Vt(w.callee,Ne("apply")),Js(O)&&(O=qr()),w.arguments.unshift(me(O))}},NewExpression:function(R){var w=R.node,T=R.scope;if(h(w.arguments)){var I=g(w.arguments,T,this.file),P=I.shift(),O;I.length?O=ft(Vt(P,Ne("concat")),I):O=P,R.replaceWith(ft(R.hub.addHelper("construct"),[w.callee,O]))}}}}},GO=function(e){return e.assertVersion("*"),{name:"transform-sticky-regex",visitor:{RegExpLiteral:function(s){var l=s.node;l.flags.includes("y")&&s.replaceWith(qf(Ne("RegExp"),[Jt(l.pattern),Jt(l.flags)]))}}}},Ett=function(e){return e.assertVersion("*"),{name:"transform-strict-mode",visitor:{Program:function(s){for(var l=s.node,u=C(l.directives),o;!(o=u()).done;){var c=o.value;if(c.value.value==="use strict")return}s.unshiftContainer("directives",Cd(jd("use strict")))}}}},due,KO=function(e,r){var s,l;e.assertVersion("*");var u=(s=e.assumption("ignoreToPrimitiveHint"))!=null?s:r.loose,o=(l=e.assumption("mutableTemplateObject"))!=null?l:r.loose,c="taggedTemplateLiteral";o&&(c+="Loose");function f(h){var m=!0;return h.reduce(function(g,x){var R=yn(x);return!R&&m&&(R=!0,m=!1),R&&ct(g)?(g.arguments.push(x),g):ft(Vt(g,Ne("concat")),[x])})}return{name:"transform-template-literals",visitor:{TaggedTemplateExpression:function(m){for(var g=m.node,x=g.quasi,R=[],w=[],T=!0,I=C(x.quasis),P;!(P=I()).done;){var O=P.value,j=O.value,D=j.raw,k=j.cooked,B=k==null?m.scope.buildUndefinedNode():Jt(k);R.push(B),w.push(Jt(D)),D!==k&&(T=!1)}var F=[Ra(R)];T||F.push(Ra(w));var L=m.scope.generateUidIdentifier("templateObject");m.scope.getProgramParent().push({id:me(L)}),m.replaceWith(ft(g.tag,[xt.expression.ast(due||(due=se([` + `,` || ( + `," = ","(",`) + ) + `])),me(L),L,this.addHelper(c),F)].concat(fe(x.expressions))))},TemplateLiteral:function(m){if(m.parent.type!=="TSLiteralType"){for(var g=[],x=m.get("expressions"),R=0,w=C(m.node.quasis),T;!(T=w()).done;){var I=T.value;if(I.value.cooked&&g.push(Jt(I.value.cooked)),R<x.length){var P=x[R++],O=P.node;nt(O,{value:""})||g.push(O)}}!nt(g[0])&&!(u&&nt(g[1]))&&g.unshift(Jt(""));var j=g[0];if(u)for(var D=1;D<g.length;D++)j=nn("+",j,g[D]);else g.length>1&&(j=f(g));m.replaceWith(j)}}}}},HO=function(e){return e.assertVersion("*"),{name:"transform-typeof-symbol",visitor:{Scope:function(s){var l=s.scope;l.getBinding("Symbol")&&l.rename("Symbol")},UnaryExpression:function(s){var l=s.node,u=s.parent;if(l.operator==="typeof"){if(s.parentPath.isBinaryExpression()&&V7.includes(u.operator)){var o=s.getOpposite();if(o.isStringLiteral()&&o.node.value!=="symbol"&&o.node.value!=="object")return}var c=s.findParent(function(x){if(x.isFunction()){var R;return((R=x.get("body.directives.0"))==null?void 0:R.node.value.value)==="@babel/helpers - typeof"}});if(!c){var f=this.addHelper("typeof");if(c=s.findParent(function(x){return x.isVariableDeclarator()&&x.node.id===f||x.isFunctionDeclaration()&&x.node.id&&x.node.id.name===f.name}),!c){var h=ft(f,[l.argument]),m=s.get("argument");if(m.isIdentifier()&&!s.scope.hasBinding(m.node.name,!0)){var g=vn("typeof",me(l.argument));s.replaceWith(Qs(nn("===",g,Jt("undefined")),Jt("undefined"),h))}else s.replaceWith(h)}}}}}}},zO=new WeakMap,Stt=xt.expression(` + (function (ID) { + ASSIGNMENTS; + return ID; + })(INIT) + `);function Ttt(e,r){var s=e.node,l=e.parentPath;if(s.declare){e.remove();return}var u=s.id.name,o=Itt(e,r,s.id),c=o.fill,f=o.data,h=o.isPure;switch(l.type){case"BlockStatement":case"ExportNamedDeclaration":case"Program":{var m=r.isProgram(e.parent),g=T(l),x=r.objectExpression([]);(g||m)&&(x=r.logicalExpression("||",r.cloneNode(c.ID),x));var R=Stt(Object.assign({},c,{INIT:x}));if(h&&Ui(R),g){var w=l.isExportDeclaration()?l:e;w.replaceWith(r.expressionStatement(r.assignmentExpression("=",r.cloneNode(s.id),R)))}else e.scope.registerDeclaration(e.replaceWith(r.variableDeclaration(m?"var":"let",[r.variableDeclarator(s.id,R)]))[0]);zO.set(e.scope.getBindingIdentifier(u),f);break}default:throw new Error("Unexpected enum parent '"+e.parent.type)}function T(I){return I.isExportDeclaration()?T(I.parentPath):I.getData(u)?!0:(I.setData(u,!0),!1)}}var wtt=xt(` + ENUM["NAME"] = VALUE; +`),Ptt=xt(` + ENUM[ENUM["NAME"] = VALUE] = "NAME"; +`),Att=function(r,s){return(r?wtt:Ptt)(s)};function Itt(e,r,s){var l=fue(e,r),u=l.enumValues,o=l.data,c=l.isPure,f=u.map(function(h){var m=je(h,2),g=m[0],x=m[1];return Att(XO(x),{ENUM:r.cloneNode(s),NAME:g,VALUE:x})});return{fill:{ID:r.cloneNode(s),ASSIGNMENTS:f},data:o,isPure:c}}function XO(e){switch(e=lp(e),e.type){case"BinaryExpression":{var r=e.left,s=e.right;return e.operator==="+"&&(XO(r)||XO(s))}case"TemplateLiteral":case"StringLiteral":return!0}return!1}function pue(e,r){var s=r.seen,l=r.path,u=r.t,o=e.node.name;s.has(o)&&!e.scope.hasOwnBinding(o)&&(e.replaceWith(u.memberExpression(u.cloneNode(l.node.id),u.cloneNode(e.node))),e.skip())}var Ctt={ReferencedIdentifier:pue};function fue(e,r){var s,l=e.scope.getBindingIdentifier(e.node.id.name),u=(s=zO.get(l))!=null?s:new Map,o=-1,c,f=!0,h=e.get("members").map(function(m){var g=m.node,x=r.isIdentifier(g.id)?g.id.name:g.id.value,R=m.get("initializer"),w=g.initializer,T;if(w)o=hue(R,u),o!==void 0?(u.set(x,o),Pa(typeof o=="number"||typeof o=="string"),o===1/0||Number.isNaN(o)?T=r.identifier(String(o)):o===-1/0?T=r.unaryExpression("-",r.identifier("Infinity")):T=r.valueToNode(o)):(f&&(f=R.isPure()),R.isReferencedIdentifier()?pue(R,{t:r,seen:u,path:e}):R.traverse(Ctt,{t:r,seen:u,path:e}),T=R.node,u.set(x,void 0));else if(typeof o=="number")o+=1,T=r.numericLiteral(o),u.set(x,o);else{if(typeof o=="string")throw e.buildCodeFrameError("Enum member must have initializer.");var I=r.memberExpression(r.cloneNode(e.node.id),r.stringLiteral(c),!0);T=r.binaryExpression("+",r.numericLiteral(1),I),u.set(x,void 0)}return c=x,[x,T]});return{isPure:f,data:u,enumValues:h}}function hue(e,r,s){return s===void 0&&(s=new Set),l(e);function l(f){var h=f.node;switch(h.type){case"MemberExpression":return u(f,r,s);case"StringLiteral":return h.value;case"UnaryExpression":return o(f);case"BinaryExpression":return c(f);case"NumericLiteral":return h.value;case"ParenthesizedExpression":return l(f.get("expression"));case"Identifier":return u(f,r,s);case"TemplateLiteral":{if(h.quasis.length===1)return h.quasis[0].value.cooked;for(var m=f.get("expressions"),g=h.quasis,x="",R=0;R<g.length;R++)if(x+=g[R].value.cooked,R+1<g.length){var w=u(m[R],r,s);if(w===void 0)return;x+=w}return x}default:return}}function u(f,h,m){if(f.isMemberExpression()){var g=f.node,x=g.object,R=g.property;if(!Dt(x)||(g.computed?!nt(R):!Dt(R)))return;var w=f.scope.getBindingIdentifier(x.name),T=zO.get(w);return T?T.get(R.computed?R.value:R.name):void 0}else if(f.isIdentifier()){var I=f.node.name;if(["Infinity","NaN"].includes(I))return Number(I);var P=h==null?void 0:h.get(I);return P!==void 0?P:m.has(f.node)?void 0:(m.add(f.node),P=hue(f.resolve(),h,m),h==null||h.set(I,P),P)}}function o(f){var h=l(f.get("argument"));if(h!==void 0)switch(f.node.operator){case"+":return h;case"-":return-h;case"~":return~h;default:return}}function c(f){var h=l(f.get("left"));if(h!==void 0){var m=l(f.get("right"));if(m!==void 0)switch(f.node.operator){case"|":return h|m;case"&":return h&m;case">>":return h>>m;case">>>":return h>>>m;case"<<":return h<<m;case"^":return h^m;case"*":return h*m;case"/":return h/m;case"+":return h+m;case"-":return h-m;case"%":return h%m;case"**":return Math.pow(h,m);default:return}}}}function jtt(e,r){var s=e.node.id.name,l=e.parentPath.isExportNamedDeclaration(),u=l;!u&&r.isProgram(e.parent)&&(u=e.parent.body.some(function(m){return r.isExportNamedDeclaration(m)&&m.exportKind!=="type"&&!m.source&&m.specifiers.some(function(g){return r.isExportSpecifier(g)&&g.exportKind!=="type"&&g.local.name===s})}));var o=fue(e,r),c=o.enumValues;if(u){var f=r.objectExpression(c.map(function(m){var g=je(m,2),x=g[0],R=g[1];return r.objectProperty(r.isValidIdentifier(x)?r.identifier(x):r.stringLiteral(x),R)}));e.scope.hasOwnBinding(s)?(l?e.parentPath:e).replaceWith(r.expressionStatement(r.callExpression(r.memberExpression(r.identifier("Object"),r.identifier("assign")),[e.node.id,f]))):(e.replaceWith(r.variableDeclaration("var",[r.variableDeclarator(e.node.id,f)])),e.scope.registerDeclaration(e));return}var h=new Map(c);e.scope.path.traverse({Scope:function(g){g.scope.hasOwnBinding(s)&&g.skip()},MemberExpression:function(g){if(r.isIdentifier(g.node.object,{name:s})){var x;if(g.node.computed)if(r.isStringLiteral(g.node.property))x=g.node.property.value;else return;else if(r.isIdentifier(g.node.property))x=g.node.property.name;else return;h.has(x)&&g.replaceWith(r.cloneNode(h.get(x)))}}}),e.remove()}var Wv=new WeakMap;function JO(e,r){var s=e.scope;return s.hasBinding(r)?!1:Wv.get(s).has(r)?!0:(console.warn('The exported identifier "'+r+`" is not declared in Babel's scope tracker +as a JavaScript value binding, and "@babel/plugin-transform-typescript" +never encountered it as a TypeScript type declaration. +It will be treated as a JavaScript value. + +This problem is likely caused by another plugin injecting +`+('"'+r+`" without registering it in the scope tracker. If you are the author +`)+' of that plugin, please use "scope.registerDeclaration(declarationPath)".'),!1)}function cm(e,r){Wv.get(e).add(r)}var mue,yue;function Ott(e,r){if(e.node.declare||e.node.id.type==="StringLiteral"){e.remove();return}if(!r)throw e.get("id").buildCodeFrameError("Namespace not marked type-only declare. Non-declarative namespaces are only supported experimentally in Babel. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");var s=e.node.id.name,l=ZO(e,me(e.node,!0));if(l===null){var u=e.findParent(function(o){return o.isProgram()});cm(u.scope,s),e.remove()}else e.scope.hasOwnBinding(s)?e.replaceWith(l):e.scope.registerDeclaration(e.replaceWithMultiple([YO(s),l])[0])}function YO(e){return Br("let",[Sr(Ne(e))])}function QO(e,r){return Vt(Ne(e),Ne(r))}function _tt(e,r,s){if(e.kind!=="const")throw s.file.buildCodeFrameError(e,"Namespaces exporting non-const are not supported by Babel. Change to const or see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");var l=e.declarations;if(l.every(function(g){return Dt(g.id)})){for(var u=C(l),o;!(o=u()).done;){var c=o.value;c.init=tr("=",QO(r,c.id.name),c.init)}return[e]}var f=_s(e),h=[];for(var m in f)h.push(tr("=",QO(r,m),me(f[m])));return[e,Xt(Mr(h))]}function gue(e,r){return e.hub.buildError(r,"Ambient modules cannot be nested in other modules or namespaces.",Error)}function ZO(e,r,s){var l=new Set,u=r.id;V8(u);for(var o=e.scope.generateUid(u.name),c=YB(r.body)?r.body.body:[Zs(r.body)],f=!0,h=0;h<c.length;h++){var m=c[h];switch(m.type){case"TSModuleDeclaration":{if(!Dt(m.id))throw gue(e,m);var g=ZO(e,m);if(g!==null){f=!1;var x=m.id.name;l.has(x)?c[h]=g:(l.add(x),c.splice(h++,1,YO(x),g))}continue}case"TSEnumDeclaration":case"FunctionDeclaration":case"ClassDeclaration":f=!1,l.add(m.id.name);continue;case"VariableDeclaration":{f=!1;for(var R in _s(m))l.add(R);continue}default:f&&(f=iF(m));continue;case"ExportNamedDeclaration":}if(!("declare"in m.declaration&&m.declaration.declare))switch(m.declaration.type){case"TSEnumDeclaration":case"FunctionDeclaration":case"ClassDeclaration":{f=!1;var w=m.declaration.id.name;l.add(w),c.splice(h++,1,m.declaration,Xt(tr("=",QO(o,w),Ne(w))));break}case"VariableDeclaration":{f=!1;var T=_tt(m.declaration,o,e.hub);c.splice.apply(c,[h,T.length].concat(fe(T))),h+=T.length-1;break}case"TSModuleDeclaration":{if(!Dt(m.declaration.id))throw gue(e,m.declaration);var I=ZO(e,m.declaration,Ne(o));if(I!==null){f=!1;var P=m.declaration.id.name;l.has(P)?c[h]=I:(l.add(P),c.splice(h++,1,YO(P),I))}else c.splice(h,1),h--}}}if(f)return null;var O=Oa([]);if(s){var j=Vt(s,u);O=xt.expression.ast(mue||(mue=se([` + `,` || + (`," = ",`) + `])),me(j),me(j),O)}return xt.statement.ast(yue||(yue=se([` + (function (`,`) { + `,` + })(`," || ("," = ",`)); + `])),Ne(o),c,u,me(u),O)}var vue,bue;function Ntt(e){switch(e.parent.type){case"TSTypeReference":case"TSExpressionWithTypeArguments":case"TSTypeQuery":return!0;case"TSQualifiedName":return e.parentPath.findParent(function(r){return r.type!=="TSQualifiedName"}).type!=="TSImportEqualsDeclaration";case"ExportSpecifier":return e.parent.exportKind==="type"||e.parentPath.parent.exportKind==="type";default:return!1}}var Ei=new WeakMap,xue=new WeakSet;function Gv(e){for(var r=e.getBindingIdentifiers(),s=0,l=Object.keys(r);s<l.length;s++){var u=l[s],o=e.scope.getBinding(u);o&&o.identifier===r[u]&&o.scope.removeBinding(u)}e.opts.noScope=!0,e.remove(),e.opts.noScope=!1}function Rue(e,r,s,l,u){if(u===void 0&&(u=""),r.file.get("@babel/plugin-transform-modules-*")!=="commonjs")throw e.buildCodeFrameError("`"+s+"` is only supported when compiling modules to CommonJS.\n"+("Please consider using `"+l+"`"+u+", or add ")+"@babel/plugin-transform-modules-commonjs to your Babel config.")}var e_=function(e,r){var s,l=e.types,u=e.template;e.assertVersion("*");var o=/\*?\s*@jsx((?:Frag)?)\s+(\S+)/,c=r.allowNamespaces,f=c===void 0?!0:c,h=r.jsxPragma,m=h===void 0?"React.createElement":h,g=r.jsxPragmaFrag,x=g===void 0?"React.Fragment":g,R=r.onlyRemoveTypeImports,w=R===void 0?!1:R,T=r.optimizeConstEnums,I=T===void 0?!1:T,P=r.allowDeclareFields,O=P===void 0?!1:P,j={field:function(L){var V=L.node;if(!O&&V.declare)throw L.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-typescript or @babel/preset-typescript is enabled.");if(V.declare){if(V.value)throw L.buildCodeFrameError("Fields with the 'declare' modifier cannot be initialized here, but only in the constructor");V.decorators||L.remove()}else if(V.definite){if(V.value)throw L.buildCodeFrameError("Definitely assigned fields cannot be initialized here, but only in the constructor");!O&&!V.decorators&&!l.isClassPrivateProperty(V)&&L.remove()}else(V.abstract||!O&&!V.value&&!V.decorators&&!l.isClassPrivateProperty(V))&&L.remove();V.accessibility&&(V.accessibility=null),V.abstract&&(V.abstract=null),V.readonly&&(V.readonly=null),V.optional&&(V.optional=null),V.typeAnnotation&&(V.typeAnnotation=null),V.definite&&(V.definite=null),V.declare&&(V.declare=null),V.override&&(V.override=null)},method:function(L){var V=L.node;V.accessibility&&(V.accessibility=null),V.abstract&&(V.abstract=null),V.optional&&(V.optional=null),V.override&&(V.override=null)},constructor:function(L,V){L.node.accessibility&&(L.node.accessibility=null);for(var H=[],K=L.scope,G=C(L.get("params")),X;!(X=G()).done;){var ue=X.value,oe=ue.node;if(oe.type==="TSParameterProperty"){var he=oe.parameter;if(xue.has(he))continue;xue.add(he);var te=void 0;if(l.isIdentifier(he))te=he;else if(l.isAssignmentPattern(he)&&l.isIdentifier(he.left))te=he.left;else throw ue.buildCodeFrameError("Parameter properties can not be destructuring patterns.");H.push(u.statement.ast(vue||(vue=se([` + this.`," = ",` + `])),l.cloneNode(te),l.cloneNode(te))),ue.replaceWith(ue.get("parameter")),K.registerBinding("param",ue)}}jS(V,L,H)}};return{name:"transform-typescript",inherits:EJ,visitor:(s={Pattern:k,Identifier:k,RestElement:k,Program:{enter:function(L,V){var H=V.file,K=null,G=null,X=L.scope;if(Wv.has(X)||Wv.set(X,new Set),H.ast.comments)for(var ue=C(H.ast.comments),oe;!(oe=ue()).done;){var he=oe.value,te=o.exec(he.value);te&&(te[1]?G=te[2]:K=te[2])}var ae=K||m;if(ae){var J=ae.split("."),xe=je(J,1);ae=xe[0]}var de=G||x;if(de){var $e=de.split("."),Ve=je($e,1);de=Ve[0]}for(var Ie=function(){var lt=Ze.value;if(lt.isImportDeclaration()){if(Ei.has(V.file.ast.program)||Ei.set(V.file.ast.program,!0),lt.node.importKind==="type"){for(var gt=C(lt.node.specifiers),It;!(It=gt()).done;){var tt=It.value;cm(X,tt.local.name)}return lt.remove(),0}for(var Ft=new Set,rr=lt.node.specifiers.length,$t=function(){return rr>0&&rr===Ft.size},Et=C(lt.node.specifiers),Lt;!(Lt=Et()).done;){var Re=Lt.value;if(Re.type==="ImportSpecifier"&&Re.importKind==="type"){cm(X,Re.local.name);var Be=lt.scope.getBinding(Re.local.name);Be&&Ft.add(Be.path)}}if(w)Ei.set(L.node,!1);else{if(lt.node.specifiers.length===0)return Ei.set(L.node,!1),0;for(var et=C(lt.node.specifiers),it;!(it=et()).done;){var vt=it.value,Ot=lt.scope.getBinding(vt.local.name);Ot&&!Ft.has(Ot.path)&&(B({binding:Ot,programPath:L,pragmaImportName:ae,pragmaFragImportName:de})?Ft.add(Ot.path):Ei.set(L.node,!1))}}if($t()&&!w)lt.remove();else for(var De=C(Ft),Qe;!(Qe=De()).done;){var yt=Qe.value;yt.remove()}return 0}if(lt.isExportDeclaration()&&(lt=lt.get("declaration")),lt.isVariableDeclaration({declare:!0}))for(var jt=0,Kt=Object.keys(lt.getBindingIdentifiers());jt<Kt.length;jt++){var Ht=Kt[jt];cm(X,Ht)}else(lt.isTSTypeAliasDeclaration()||lt.isTSDeclareFunction()&<.get("id").isIdentifier()||lt.isTSInterfaceDeclaration()||lt.isClassDeclaration({declare:!0})||lt.isTSEnumDeclaration({declare:!0})||lt.isTSModuleDeclaration({declare:!0})&<.get("id").isIdentifier())&&cm(X,lt.node.id.name)},ke,Le=C(L.get("body")),Ze;!(Ze=Le()).done;)ke=Ie()},exit:function(L){L.node.sourceType==="module"&&Ei.get(L.node)&&L.pushContainer("body",l.exportNamedDeclaration())}},ExportNamedDeclaration:function(L,V){if(Ei.has(V.file.ast.program)||Ei.set(V.file.ast.program,!0),L.node.exportKind==="type"){L.remove();return}if(L.node.source&&L.node.specifiers.length>0&&L.node.specifiers.every(function(oe){return oe.type==="ExportSpecifier"&&oe.exportKind==="type"})){L.remove();return}if(!L.node.source&&L.node.specifiers.length>0&&L.node.specifiers.every(function(oe){return l.isExportSpecifier(oe)&&JO(L,oe.local.name)})){L.remove();return}if(l.isTSModuleDeclaration(L.node.declaration)){var H=L.node.declaration,K=H.id;if(l.isIdentifier(K))if(L.scope.hasOwnBinding(K.name))L.replaceWith(H);else{var G=L.replaceWithMultiple([l.exportNamedDeclaration(l.variableDeclaration("let",[l.variableDeclarator(l.cloneNode(K))])),H]),X=je(G,1),ue=X[0];L.scope.registerDeclaration(ue)}}Ei.set(V.file.ast.program,!1)},ExportAllDeclaration:function(L){L.node.exportKind==="type"&&L.remove()},ExportSpecifier:function(L){var V=L.parent;(!V.source&&JO(L,L.node.local.name)||L.node.exportKind==="type")&&L.remove()},ExportDefaultDeclaration:function(L,V){if(Ei.has(V.file.ast.program)||Ei.set(V.file.ast.program,!0),l.isIdentifier(L.node.declaration)&&JO(L,L.node.declaration.name)){L.remove();return}Ei.set(V.file.ast.program,!1)},TSDeclareFunction:function(L){Gv(L)},TSDeclareMethod:function(L){Gv(L)},VariableDeclaration:function(L){L.node.declare&&Gv(L)},VariableDeclarator:function(L){var V=L.node;V.definite&&(V.definite=null)},TSIndexSignature:function(L){L.remove()},ClassDeclaration:function(L){var V=L.node;V.declare&&Gv(L)},Class:function(L){var V=L.node;V.typeParameters&&(V.typeParameters=null),V.superTypeParameters&&(V.superTypeParameters=null),V.implements&&(V.implements=null),V.abstract&&(V.abstract=null),L.get("body.body").forEach(function(H){H.isClassMethod()||H.isClassPrivateMethod()?H.node.kind==="constructor"?j.constructor(H,L):j.method(H):(H.isClassProperty()||H.isClassPrivateProperty()||H.isClassAccessorProperty())&&j.field(H)})},Function:function(L){var V=L.node;V.typeParameters&&(V.typeParameters=null),V.returnType&&(V.returnType=null);var H=V.params;H.length>0&&l.isIdentifier(H[0],{name:"this"})&&H.shift()},TSModuleDeclaration:function(L){Ott(L,f)},TSInterfaceDeclaration:function(L){L.remove()},TSTypeAliasDeclaration:function(L){L.remove()},TSEnumDeclaration:function(L){I&&L.node.const?jtt(L,l):Ttt(L,l)},TSImportEqualsDeclaration:function(L,V){var H=L.node,K=H.id,G=H.moduleReference,X=H.isExport,ue,oe;l.isTSExternalModuleReference(G)?(Rue(L,V,"import "+K.name+" = require(...);","import "+K.name+" from '...';"," alongside Typescript's --allowSyntheticDefaultImports option"),ue=l.callExpression(l.identifier("require"),[G.expression]),oe="const"):(ue=D(G),oe="var");var he=l.variableDeclaration(oe,[l.variableDeclarator(K,ue)]);L.replaceWith(X?l.exportNamedDeclaration(he):he),L.scope.registerDeclaration(L)},TSExportAssignment:function(L,V){Rue(L,V,"export = <value>;","export default <value>;"),L.replaceWith(u.statement.ast(bue||(bue=se(["module.exports = ",""])),L.node.expression))},TSTypeAssertion:function(L){L.replaceWith(L.node.expression)}},s["TSAsExpression"+(l.tsSatisfiesExpression?"|TSSatisfiesExpression":"")]=function(L){var V=L.node;do V=V.expression;while(l.isTSAsExpression(V)||l.isTSSatisfiesExpression!=null&&l.isTSSatisfiesExpression(V));L.replaceWith(V)},s[e.types.tsInstantiationExpression?"TSNonNullExpression|TSInstantiationExpression":"TSNonNullExpression"]=function(F){F.replaceWith(F.node.expression)},s.CallExpression=function(L){L.node.typeParameters=null},s.OptionalCallExpression=function(L){L.node.typeParameters=null},s.NewExpression=function(L){L.node.typeParameters=null},s.JSXOpeningElement=function(L){L.node.typeParameters=null},s.TaggedTemplateExpression=function(L){L.node.typeParameters=null},s)};function D(F){return l.isTSQualifiedName(F)?l.memberExpression(D(F.left),F.right):F}function k(F){var L=F.node;L.typeAnnotation&&(L.typeAnnotation=null),l.isIdentifier(L)&&L.optional&&(L.optional=null)}function B(F){for(var L=F.binding,V=F.programPath,H=F.pragmaImportName,K=F.pragmaFragImportName,G=C(L.referencePaths),X;!(X=G()).done;){var ue=X.value;if(!Ntt(ue))return!1}if(L.identifier.name!==H&&L.identifier.name!==K)return!0;var oe=!1;return V.traverse({"JSXElement|JSXFragment":function(te){oe=!0,te.stop()}}),!oe}},t_=function(e){e.assertVersion("*");var r=/[\ud800-\udfff]/g,s=/(\\+)u\{([0-9a-fA-F]+)\}/g;function l(f){{for(var h=f.toString(16);h.length<4;)h="0"+h;return"\\u"+h}}function u(f,h,m){if(h.length%2===0)return f;var g=String.fromCodePoint(parseInt(m,16)),x=h.slice(0,-1)+l(g.charCodeAt(0));return g.length===1?x:x+l(g.charCodeAt(1))}function o(f){return f.replace(s,u)}function c(f){for(var h;h=s.exec(f);)if(h[1].length%2!==0)return s.lastIndex=0,h[0];return null}return{name:"transform-unicode-escapes",manipulateOptions:function(h){var m,g,x=h.generatorOpts;x.jsescOption||(x.jsescOption={}),(g=(m=x.jsescOption).minimal)!=null||(m.minimal=!1)},visitor:{Identifier:function(h){var m=h.node,g=h.key,x=m.name,R=x.replace(r,function(O){return"_u"+O.charCodeAt(0).toString(16)});if(x!==R){var w=Na(Jt(x),m);if(g==="key"){h.replaceWith(w);return}var T=h.parentPath,I=h.scope;if(T.isMemberExpression({property:m})||T.isOptionalMemberExpression({property:m})){T.node.computed=!0,h.replaceWith(w);return}var P=I.getBinding(x);if(P){I.rename(x,I.generateUid(R));return}throw h.buildCodeFrameError("Can't reference '"+x+"' as a bare identifier")}},"StringLiteral|DirectiveLiteral":function(h){var m=h.node,g=m.extra;g!=null&&g.raw&&(g.raw=o(g.raw))},TemplateElement:function(h){var m=h.node,g=h.parentPath,x=m.value,R=c(x.raw);if(R){var w=g.parentPath;if(w.isTaggedTemplateExpression())throw h.buildCodeFrameError("Can't replace Unicode escape '"+R+"' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.");x.raw=o(x.raw)}}}}},r_=function(e){return e.assertVersion("*"),Pc({name:"transform-unicode-regex",feature:"unicodeFlag"})},Eue,Sue,Tue,wue=function(e){e.assertVersion("*");var r=new Map;function s(o){return Ja(o)?o.kind==="using"||o.kind==="await using"||r.has(o):!1}var l={ForOfStatement:function(c){var f=c.node.left;if(s(f)){var h=f.declarations[0].id,m=c.scope.generateUidIdentifierBasedOnNode(h);f.declarations[0].id=m,f.kind="const",c.ensureBlock(),c.node.body.body.unshift(Br("using",[Sr(h,me(m))]))}},"BlockStatement|StaticBlock":function(c,f){if(f.availableHelper("usingCtx")){for(var h=null,m=!1,g=C(c.node.body),x;!(x=g()).done;){var R,w=x.value;if(s(w)){(R=h)!=null||(h=c.scope.generateUidIdentifier("usingCtx"));var T=w.kind==="await using"||r.get(w)===1;m||(m=T),r.delete(w)||(w.kind="const");for(var I=C(w.declarations),P;!(P=I()).done;){var O=P.value;O.init=ft(Vt(me(h),Ne(T?"a":"u")),[O.init])}}}if(!h)return;var j=ft(Vt(me(h),Ne("d")),[]),D=xt.statement.ast(Eue||(Eue=se([` + try { + var `," = ",`(); + `,` + } catch (_) { + `,`.e = _; + } finally { + `,` + } + `])),me(h),f.addHelper("usingCtx"),c.node.body,me(h),m?to(j):j);Na(D,c.node);var k=c.parentPath;k.isFunction()||k.isTryStatement()||k.isCatchClause()?c.replaceWith(ea([D])):c.isStaticBlock()?c.node.body=[D]:c.replaceWith(D)}else{for(var B=null,F=!1,L=function(){var te,ae=H.value;if(!s(ae))return 1;(te=B)!=null||(B=c.scope.generateUidIdentifier("stack"));var J=ae.kind==="await using"||r.get(ae)===1;F||(F=J),r.delete(ae)||(ae.kind="const"),ae.declarations.forEach(function(xe){var de=[me(B),xe.init];J&&de.push(un(!0)),xe.init=ft(f.addHelper("using"),de)})},V=C(c.node.body),H;!(H=V()).done;)L();if(!B)return;var K=c.scope.generateUidIdentifier("error"),G=c.scope.generateUidIdentifier("hasError"),X=ft(f.addHelper("dispose"),[me(B),me(K),me(G)]);F&&(X=to(X));var ue=xt.statement.ast(Sue||(Sue=se([` + try { + var `,` = []; + `,` + } catch (_) { + var `,` = _; + var `,` = true; + } finally { + `,` + } + `])),B,c.node.body,K,G,X);Na(ue.block,c.node);var oe=c.parentPath;oe.isFunction()||oe.isTryStatement()||oe.isCatchClause()?c.replaceWith(ea([ue])):c.isStaticBlock()?c.node.body=[ue]:c.replaceWith(ue)}},SwitchStatement:function(c,f){for(var h=null,m=!1,g=c.node.cases,x=C(g),R;!(R=x()).done;)for(var w=R.value,T=C(w.consequent),I;!(I=T()).done;){var P=I.value;if(s(P)){var O;f.availableHelper("usingCtx")||c.traverse({VariableDeclaration:function(H){var K=H.node;if(s(K))throw H.buildCodeFrameError("`using` declarations inside `switch` statements are not supported by your current `@babel/core` version, please update to a more recent one")}}),(O=h)!=null||(h=c.scope.generateUidIdentifier("usingCtx"));var j=P.kind==="await using";m||(m=j),P.kind="const";for(var D=C(P.declarations),k;!(k=D()).done;){var B=k.value;B.init=ft(Vt(me(h),Ne(j?"a":"u")),[B.init])}}}if(h){var F=ft(Vt(me(h),Ne("d")),[]),L=xt.statement.ast(Tue||(Tue=se([` + try { + var `," = ",`(); + `,` + } catch (_) { + `,`.e = _; + } finally { + `,` + } + `])),me(h),f.addHelper("usingCtx"),c.node,me(h),m?to(F):F);Na(L,c.node),c.replaceWith(L)}}},u=$a.visitors.merge([l,{Function:function(c){c.skip()}}]);return{name:"proposal-explicit-resource-management",inherits:iJ,visitor:$a.visitors.merge([l,{Program:function(c){if(r.clear(),c.node.sourceType==="module"&&c.node.body.some(s)){for(var f=[],h=C(c.get("body")),m;!(m=h()).done;){var g=m.value;if(!(g.isFunctionDeclaration()||g.isImportDeclaration())){var x=g.node,R=!0;if(g.isExportDefaultDeclaration()){var w,T=g.node.declaration,I=void 0;if(Io(T))I=T.id,T.id=null,T=An(T);else if(!Zi(T))continue;(w=I)!=null||(I=c.scope.generateUidIdentifier("_default")),f.push(Br("var",[Sr(I,T)])),g.replaceWith(Zs(null,[hi(me(I),Ne("default"))]));continue}if(g.isExportNamedDeclaration()){if(x=g.node.declaration,!x||Cs(x))continue;g.replaceWith(Zs(null,Object.keys(s1(x,!1)).map(function(j){return hi(Ne(j),Ne(j))}))),R=!1}else if(g.isExportDeclaration())continue;if(Io(x)){var P=x,O=P.id;x.id=null,f.push(Br("var",[Sr(O,An(x))]))}else Ja(x)?(x.kind==="using"?r.set(g.node,0):x.kind==="await using"&&r.set(g.node,1),x.kind="var",f.push(x)):f.push(g.node);R&&g.remove()}}c.pushContainer("body",ea(f))}},Function:function(c,f){c.node.async&&c.traverse(u,f)}}])}},ktt=function(e){return e.assertVersion("*"),{name:"syntax-import-defer",manipulateOptions:function(s,l){l.plugins.push("deferredImportEvaluation")}}},Pue,Aue,Dtt=function(e){e.assertVersion("*");var r=e.types,s=e.template;function l(u,o){var c=o.specifiers[0];r.assertImportNamespaceSpecifier(c);var f=u.getOwnBinding(c.local.name);return!!(f!=null&&f.referencePaths.every(function(h){return h.parentPath.isMemberExpression({object:h.node})}))}return{name:"proposal-import-defer",inherits:ktt,pre:function(){var o=this.file;Moe(o,{name:"@babel/plugin-proposal-import-defer",version:"7.24.7",getWrapperPayload:function(f,h,m){for(var g=!1,x=C(m),R;!(R=x()).done;){var w=R.value;if(!r.isImportDeclaration(w)||w.phase!=="defer")return null;l(o.scope,w)||(g=!0)}return g?"defer/proxy":"defer/function"},buildRequireWrapper:function(f,h,m,g){if(m==="defer/proxy")return g?s.statement.ast(Pue||(Pue=se([` + var `," = ",`( + () => `,` + ) + `])),f,o.addHelper("importDeferProxy"),h):!1;if(m==="defer/function")return g?s.statement.ast(Aue||(Aue=se([` + function `,`(data) { + `,` = () => data; + return data = `,`; + } + `])),f,f,h):!1},wrapReference:function(f,h){if(h==="defer/function")return r.callExpression(f,[])}})},visitor:{Program:function(o){if(this.file.get("@babel/plugin-transform-modules-*")!=="commonjs")throw new Error("@babel/plugin-proposal-import-defer can only be used when transpiling modules to CommonJS.");for(var c=new Set,f=C(o.get("body")),h;!(h=f()).done;){var m=h.value;if(m.isImportDeclaration()&&m.node.phase==null||m.isExportNamedDeclaration()&&m.node.source!==null||m.isExportAllDeclaration()){var g=m.node.source.value;c.has(g)||c.add(g)}}for(var x=[],R=C(o.get("body")),w;!(w=R()).done;){var T=w.value;if(T.isImportDeclaration({phase:"defer"})){var I=T.node.source.value;if(!c.has(I))continue;T.node.phase=null,x.push(T.node),T.remove()}}x.length&&(o.pushContainer("body",x),o.scope.crawl())}}}},Ltt=["node"];function Mtt(e){return Object.keys(e).length===0}var a_={compatData:{webIMR:{chrome:"105.0.0",edge:"105.0.0",firefox:"106.0.0",opera:"91.0.0",safari:"16.4.0",opera_mobile:"72.0.0",ios:"16.4.0",samsung:"20.0",deno:"1.24.0"},nodeIMR:{node:"20.6.0"},nodeFSP:{node:"10.0.0"}}},n_=new WeakMap;function Btt(e){if(n_.has(e))return n_.get(e);var r=e.node,s=Je(e,Ltt),l=r==null,u=Mtt(s),o=!l||u,c=!u||l,f=!u&&!Go("webIMR",s,a_),h=!l&&!Go("nodeIMR",{node:r},a_),m=!l&&!Go("nodeFSP",{node:r},a_),g={needsNodeSupport:o,needsWebSupport:c,nodeSupportsIMR:h,webSupportsIMR:f,nodeSupportsFsPromises:m};return n_.set(e,g),g}var Iue,Cue,jue,Oue,_ue,Nue,kue,Due,Lue,Mue,Bue,Fue,$ue,que,Uue,Vue,Wue,Gue,Kue,Hue,zue;function _c(e,r,s){return m0(e,r,s,{importedType:"es6"})}var dm=function(r){return xt.expression.ast(Iue||(Iue=se([` + import.meta.resolve(`,`) +`])),r)},Xue=function(r){return xt.expression.ast(Cue||(Cue=se([` + import.meta.resolve?.(`,") ?? new URL(",`, import.meta.url) +`])),r,me(r))};function Jue(e,r,s){var l,u=Btt(e),o=u.needsNodeSupport,c=u.needsWebSupport,f=u.nodeSupportsIMR,h=u.webSupportsIMR,m=u.nodeSupportsFsPromises,g=r.commonJS!=null,x,R,w=function(j){var D=j.web,k=D===void 0?c:D,B=j.node,F=B===void 0?o:B,L=j.nodeFSP,V=L===void 0?m:L,H=j.webIMR,K=H===void 0?h:H,G=j.nodeIMR,X=G===void 0?f:G,ue=j.toCJS,oe=ue===void 0?s:ue,he=j.supportIsomorphicCJS,te=he===void 0?g:he;return+k+(+F<<1)+(+K<<2)+(+X<<3)+(+oe<<4)+(+V<<5)+(+te<<6)},T=function(j,D){return m?xt.expression.ast(jue||(jue=se(["",".promises.readFile(",")"])),j,D):xt.expression.ast(Oue||(Oue=se([` + new Promise( + (a => + (r, j) => `,`.readFile(a, (e, d) => e ? j(e) : r(d)) + )(`,`) + )`])),j,D)};switch(w({web:c,node:o,webIMR:h,nodeIMR:f,toCJS:s})){case w({toCJS:!0,supportIsomorphicCJS:!0}):R=function(j){return r.commonJS(Ne("require"),j)};break;case w({web:!0,node:!0}):x=function(j){var D=r.webFetch(ft(Ne("fetch"),[(h?dm:Xue)(me(j))])),k=g?xt.expression.ast(_ue||(_ue=se([` + import("module").then(module => `,`) + `])),r.commonJS(xt.expression.ast(Nue||(Nue=se(["module.createRequire(import.meta.url)"]))),j)):f?xt.expression.ast(kue||(kue=se([` + import("fs").then( + fs => `,` + ).then(`,`) + `])),T(Ne("fs"),xt.expression.ast(Due||(Due=se(["new URL(",")"])),dm(j))),r.nodeFsAsync()):xt.expression.ast(Lue||(Lue=se([` + Promise.all([import("fs"), import("module")]) + .then(([fs, module]) => + `,` + ) + .then(`,`) + `])),T(Ne("fs"),xt.expression.ast(Mue||(Mue=se([` + module.createRequire(import.meta.url).resolve(`,`) + `])),j)),r.nodeFsAsync());return xt.expression.ast(Bue||(Bue=se([` + typeof process === "object" && process.versions?.node + ? `,` + : `,` + `])),k,D)};break;case w({web:!0,node:!1,webIMR:!0}):x=function(j){return r.webFetch(ft(Ne("fetch"),[dm(j)]))};break;case w({web:!0,node:!1,webIMR:!1}):x=function(j){return r.webFetch(ft(Ne("fetch"),[Xue(j)]))};break;case w({web:!1,node:!0,toCJS:!0}):R=function(j){return r.nodeFsSync(xt.expression.ast(Fue||(Fue=se([` + require("fs").readFileSync(require.resolve(`,`)) + `])),j))},x=function(j){return xt.expression.ast($ue||($ue=se([` + require("fs").promises.readFile(require.resolve(`,`)) + .then(`,`) + `])),j,r.nodeFsAsync())};break;case w({web:!1,node:!0,toCJS:!1,supportIsomorphicCJS:!0}):R=function(j,D){return r.commonJS(xt.expression.ast(que||(que=se([` + `,`(import.meta.url) + `])),_c(D,"createRequire","module")),j)};break;case w({web:!1,node:!0,toCJS:!1,nodeIMR:!0}):R=function(j,D){return r.nodeFsSync(xt.expression.ast(Uue||(Uue=se([` + `,`( + new URL(`,`) + ) + `])),_c(D,"readFileSync","fs"),dm(j)))},x=function(j,D){return xt.expression.ast(Vue||(Vue=se([` + `,` + .readFile(new URL(`,`)) + .then(`,`) + `])),_c(D,"promises","fs"),dm(j),r.nodeFsAsync())};break;case w({web:!1,node:!0,toCJS:!1,nodeIMR:!1}):R=function(j,D){return r.nodeFsSync(xt.expression.ast(Wue||(Wue=se([` + `,`( + `,`(import.meta.url) + .resolve(`,`) + ) + `])),_c(D,"readFileSync","fs"),_c(D,"createRequire","module"),j))},x=function(j,D){return r.webFetch(xt.expression.ast(Gue||(Gue=se([` + `,` + .readFile( + `,`(import.meta.url) + .resolve(`,`) + ) + `])),_c(D,"promises","fs"),_c(D,"createRequire","module"),j))};break;default:throw new Error("Internal Babel error: unreachable code.")}(l=x)!=null||(x=R);var I=function(j,D){return nt(j)?xt.expression.ast(Kue||(Kue=se([` + Promise.resolve().then(() => `,`) + `])),x(j,D)):xt.expression.ast(Hue||(Hue=se(["\n Promise.resolve(`${","}`).then((s) => ",`) + `],["\n Promise.resolve(\\`\\${","}\\`).then((s) => ",`) + `])),j,x(Ne("s"),D))},P=R;return R||(s?P=function(j,D){throw D.buildCodeFrameError("Cannot compile to CommonJS, since it would require top-level await.")}:P=x),{buildFetch:P,buildFetchAsync:I,needsAwait:!R}}function Ftt(e,r){if(e.length===0)return null;var s=[];if(e.length===1){var l=e[0].fetch;r&&(l=to(l)),s.push(Sr(e[0].id,l))}else if(r){var u=e.map(function(x){var R=x.id;return R}),o=e.map(function(x){var R=x.fetch;return R});s.push(Sr($l(u),to(xt.expression.ast(zue||(zue=se([` + Promise.all(`,`) + `])),Ra(o)))))}else for(var c=C(e),f;!(f=c()).done;){var h=f.value,m=h.id,g=h.fetch;s.push(Sr(m,g))}return Br("const",s)}var Yue,Que,Zue,ece,tce,rce=function(e,r){var s=e.types,l=e.template;e.assertVersion("*");var u=e.targets(),o,c,f={commonJS:r.uncheckedRequire?function(x,R){return s.callExpression(x,[R])}:null,webFetch:function(R){return l.expression.ast(Yue||(Yue=se(["",".then(r => r.json())"])),R)},nodeFsSync:function(R){return l.expression.ast(Que||(Que=se(["JSON.parse(",")"])),R)},nodeFsAsync:function(){return l.expression.ast(Zue||(Zue=se(["JSON.parse"])))}},h=function(R){var w=R.get("@babel/plugin-transform-modules-*");if(w==="commonjs"){var T;return(T=c)!=null?T:c=Jue(u,f,!0)}if(w==null){var I;return(I=o)!=null?I:o=Jue(u,f,!1)}throw new Error("@babel/plugin-proposal-json-modules can only be used when not compiling modules, or when compiling them to CommonJS.")};function m(x){var R=x.key;return s.isIdentifier(R)?R.name:R.value}function g(x){return!!(x!=null&&x.some(function(R){return m(R)==="type"&&R.value.value==="json"}))}return{name:"proposal-json-modules",inherits:nv,visitor:{Program:function(R){if(R.node.sourceType==="module"){for(var w=h(this.file),T=[],I=C(R.get("body")),P;!(P=I()).done;){var O,j=P.value;if(j.isImportDeclaration()){var D=j.node.attributes||j.node.assertions;if(g(D)){if(j.node.phase!=null)throw j.buildCodeFrameError("JSON modules do not support phase modifiers.");if(D.length>1){var k=j.node.attributes?j.get("attributes"):j.get("assertions"),B=m(D[0])==="type"?1:0;throw k[B].buildCodeFrameError("Unknown attribute for JSON modules.")}for(var F=void 0,L=!1,V=C(j.get("specifiers")),H;!(H=V()).done;){var K=H.value;if(K.isImportSpecifier())throw K.buildCodeFrameError("JSON modules do not support named imports.");F=K.node.local,L=K.isImportNamespaceSpecifier()}(O=F)!=null||(F=R.scope.generateUidIdentifier("_"));var G=w.buildFetch(j.node.source,R);L&&(w.needsAwait?G=l.expression.ast(ece||(ece=se([` + `,`.then(j => ({ default: j })) + `])),G):G=l.expression.ast(tce||(tce=se(["{ default: "," }"])),G)),T.push({id:F,fetch:G}),j.remove()}}}if(T.length!==0){var X=Ftt(T,w.needsAwait);X&&R.unshiftContainer("body",X)}}}}}},$tt=vc(),qtt=vc(),Utt=vc(),Vtt=vc(),Wtt=vc(),Gtt=vc(),Ktt=vc(),pm={"syntax-async-generators":$tt,"syntax-class-properties":qtt,"syntax-class-static-block":Utt,"syntax-import-meta":Vtt,"syntax-object-rest-spread":Wtt,"syntax-optional-catch-binding":Gtt,"syntax-top-level-await":Ktt,"external-helpers":tqe,"syntax-decimal":aJ,"syntax-decorators":RS,"syntax-destructuring-private":nJ,"syntax-do-expressions":sJ,"syntax-explicit-resource-management":iJ,"syntax-export-default-from":oJ,"syntax-flow":ES,"syntax-function-bind":lJ,"syntax-function-sent":uJ,"syntax-import-assertions":cJ,"syntax-import-attributes":nv,"syntax-import-reflection":dJ,"syntax-jsx":pJ,"syntax-module-blocks":fJ,"syntax-optional-chaining-assign":mJ,"syntax-pipeline-operator":bJ,"syntax-record-and-tuple":xJ,"syntax-typescript":EJ,"transform-async-generator-functions":wJ,"transform-class-properties":qS,"transform-class-static-block":US,"proposal-decorators":eQ,"proposal-destructuring-private":gQ,"proposal-do-expressions":vQ,"transform-duplicate-named-capturing-groups-regex":Wj,"transform-dynamic-import":Cie,"proposal-export-default-from":jie,"transform-export-namespace-from":Gj,"proposal-function-bind":Oie,"proposal-function-sent":_ie,"transform-json-strings":Kj,"transform-logical-assignment-operators":Hj,"transform-nullish-coalescing-operator":zj,"transform-numeric-separator":Xj,"transform-object-rest-spread":Mie,"transform-optional-catch-binding":Bie,"transform-optional-chaining":Qj,"proposal-optional-chaining-assign":Uie,"proposal-pipeline-operator":Wie,"transform-private-methods":Zj,"transform-private-property-in-object":eO,"proposal-record-and-tuple":Qie,"proposal-regexp-modifiers":Zie,"proposal-throw-expressions":eoe,"transform-unicode-property-regex":toe,"transform-unicode-sets-regex":tO,"transform-async-to-generator":roe,"transform-arrow-functions":rO,"transform-block-scoped-functions":aO,"transform-block-scoping":oO,"transform-classes":uO,"transform-computed-properties":cO,"transform-destructuring":GS,"transform-dotall-regex":Roe,"transform-duplicate-keys":dO,"transform-exponentiation-operator":woe,"transform-flow-comments":xZe,"transform-flow-strip-types":Poe,"transform-for-of":hO,"transform-function-name":mO,"transform-instanceof":joe,"transform-jscript":PZe,"transform-literals":yO,"transform-member-expression-literals":Ooe,"transform-modules-amd":gO,"transform-modules-commonjs":_v,"transform-modules-systemjs":xO,"transform-modules-umd":RO,"transform-named-capturing-groups-regex":Uoe,"transform-new-target":Voe,"transform-object-assign":FZe,"transform-object-super":EO,"transform-object-set-prototype-of-to-assign":qZe,"transform-parameters":YS,"transform-property-literals":Woe,"transform-property-mutators":WZe,"transform-proto-to-assign":GZe,"transform-react-constant-elements":KZe,"transform-react-display-name":Koe,"transform-react-inline-elements":ret,"transform-react-jsx":ole,"transform-react-jsx-compat":det,"transform-react-jsx-development":lle,"transform-react-jsx-self":yet,"transform-react-jsx-source":vet,"transform-regenerator":OO,"transform-reserved-words":wle,"transform-runtime":Rtt,"transform-shorthand-properties":VO,"transform-spread":WO,"transform-sticky-regex":GO,"transform-strict-mode":Ett,"transform-template-literals":KO,"transform-typeof-symbol":HO,"transform-typescript":e_,"transform-unicode-escapes":t_,"transform-unicode-regex":r_,"proposal-explicit-resource-management":wue,"proposal-import-defer":Dtt,"proposal-json-modules":rce},s_=function(e,r){var s=!1,l="commonjs",u=!1;r!==void 0&&(r.loose!==void 0&&(s=r.loose),r.modules!==void 0&&(l=r.modules),r.spec!==void 0&&(u=r.spec));var o={loose:s};return{plugins:[[KO,{loose:s,spec:u}],yO,mO,[rO,{spec:u}],aO,[uO,o],EO,VO,dO,[cO,o],[hO,o],GO,t_,r_,[WO,o],[YS,o],[GS,o],oO,HO,joe,(l==="commonjs"||l==="cjs")&&[_v,o],l==="systemjs"&&[xO,o],l==="amd"&&[gO,o],l==="umd"&&[RO,o],[OO,{async:!1,asyncGenerators:!1}]].filter(Boolean)}},ace=function(e,r){r===void 0&&(r={});var s=r,l=s.loose,u=l===void 0?!1:l,o=s.decoratorsLegacy,c=o===void 0?!1:o,f=s.decoratorsVersion,h=f===void 0?"2018-09":f,m=s.decoratorsBeforeExport,g=[[nv,{deprecatedAssertSyntax:!0}],[eQ,{version:c?"legacy":h,decoratorsBeforeExport:m}],Zie,wue,rce].concat(fe([Gj,Hj,[Qj,{loose:u}],[zj,{loose:u}],[qS,{loose:u}],Kj,Xj,[Zj,{loose:u}],eO,US,tO,Wj]));return{plugins:g}},nce=function(e,r){var s;r===void 0&&(r={});var l=r,u=l.pipelineProposal,o=u===void 0?"minimal":u,c=l.pipelineTopicToken,f=c===void 0?"%":c;return{presets:[[ace,r]],plugins:[gQ,[Wie,{proposal:o,topicToken:f}],_ie,eoe,[Qie,{syntaxType:(s=r.recordAndTupleSyntax)!=null?s:"hash"}],fJ,dJ]}},sce=function(e,r){r===void 0&&(r={});var s=r,l=s.loose,u=l===void 0?!1:l,o=s.useBuiltIns,c=o===void 0?!1:o,f=s.decoratorsLegacy,h=s.decoratorsVersion,m=s.decoratorsBeforeExport,g=s.pipelineProposal,x=s.pipelineTopicToken,R=s.optionalChainingAssignVersion,w=R===void 0?"2023-07":R;return{presets:[[nce,{loose:u,useBuiltIns:c,decoratorsLegacy:f,decoratorsVersion:h,decoratorsBeforeExport:m,pipelineProposal:g,pipelineTopicToken:x,recordAndTupleSyntax:r.recordAndTupleSyntax}]],plugins:[aJ,jie,vQ,[Uie,{version:w}]]}},Htt=function(e,r){r===void 0&&(r={});var s=r,l=s.loose,u=l===void 0?!1:l,o=s.useBuiltIns,c=o===void 0?!1:o,f=s.decoratorsLegacy,h=s.decoratorsVersion,m=s.decoratorsBeforeExport,g=s.pipelineProposal,x=s.pipelineTopicToken;return{presets:[[sce,{loose:u,useBuiltIns:c,decoratorsLegacy:f,decoratorsVersion:h,decoratorsBeforeExport:m,pipelineProposal:g,pipelineTopicToken:x}]],plugins:[Oie]}};function ztt(e){return e==null?!1:e&&e!=="false"&&e!=="0"}var i_=(ztt(er.env.BABEL_8_BREAKING),gi()),Xtt=function(r,s,l){var u=L5(r,s,l),o=l[r];if(r.startsWith("transform-")){var c="proposal-"+r.slice(10);(c==="proposal-dynamic-import"||hasOwnProperty.call(M5,c))&&(r=c)}if(!o){console.log(" "+r);return}for(var f="{",h=!0,m=0,g=Object.keys(u);m<g.length;m++){var x=g[m];h||(f+=","),h=!1,f+=" "+x,o[x]&&(f+=" < "+o[x])}f+=" }",console.log(" "+r+" "+f)},o_={exports:{}};(function(e,r){r.__esModule=!0,r.default=void 0;var s={allowInsertArrow:!1,specCompliant:!1},l=function(o){var c=o.types;return{name:"transform-async-arrows-in-class",visitor:{ArrowFunctionExpression:function(h){h.node.async&&h.findParent(c.isClassMethod)&&h.arrowFunctionToExpression(s)}}}};r.default=l,e.exports=r.default})(o_,o_.exports);var Jtt=o_.exports,l_={exports:{}};(function(e,r){r.__esModule=!0,r.default=void 0;var s=function(u){var o=u.types,c=function(h){return h.parentKey==="params"&&h.parentPath&&o.isArrowFunctionExpression(h.parentPath)};return{name:"transform-edge-default-parameters",visitor:{AssignmentPattern:function(h){var m=h.find(c);m&&h.parent.shorthand&&(h.parent.shorthand=!1,(h.parent.extra||{}).shorthand=!1,h.scope.rename(h.parent.key.name))}}}};r.default=s,e.exports=r.default})(l_,l_.exports);var Ytt=l_.exports,u_={exports:{}};(function(e,r){r.__esModule=!0,r.default=void 0;var s=function(u){var o=u.types;return{name:"transform-edge-function-name",visitor:{FunctionExpression:{exit:function(f){if(!f.node.id&&o.isIdentifier(f.parent.id)){var h=o.cloneNode(f.parent.id),m=f.scope.getBinding(h.name);m!=null&&m.constantViolations.length&&f.scope.rename(h.name),f.node.id=h}}}}}};r.default=s,e.exports=r.default})(u_,u_.exports);var Qtt=u_.exports,Ztt=function(e){var r=e.types,s=e.assertVersion;s("*");var l={ClassExpression:function(h,m){m.found=!0,h.stop()},Function:function(h){h.skip()}},u=Fn({YieldExpression:function(h,m){m.yield=!0,m.await&&h.stop()},AwaitExpression:function(h,m){m.await=!0,m.yield&&h.stop()}});function o(f){if(r.isClassExpression(f.node))return!0;if(r.isFunction(f.node))return!1;var h={found:!1};return f.traverse(l,h),h.found}function c(f){var h={yield:r.isYieldExpression(f.node),await:r.isAwaitExpression(f.node)};f.traverse(u,h);var m;if(h.yield){var g=r.functionExpression(null,[],r.blockStatement([r.returnStatement(f.node)]),!0,h.await);m=r.yieldExpression(r.callExpression(r.memberExpression(g,r.identifier("call")),[r.thisExpression(),r.identifier("arguments")]),!0)}else{var x=r.arrowFunctionExpression([],f.node,h.await);m=r.callExpression(x,[]),h.await&&(m=r.awaitExpression(m))}f.replaceWith(m)}return{name:"bugfix-firefox-class-in-computed-class-key",visitor:{Class:function(h){var m=h.node.body.body.some(function(w){return r.isPrivate(w)});if(m)for(var g=C(h.get("body.body")),x;!(x=g()).done;){var R=x.value;"computed"in R.node&&R.node.computed&&o(R.get("key"))&&c(R.get("key"))}}}}},c_={exports:{}};(function(e,r){r.__esModule=!0,r.default=void 0;var s=function(u){var o=u.types;return{name:"transform-tagged-template-caching",visitor:{TaggedTemplateExpression:function(f,h){var m=h.get("processed");if(m||(m=new WeakSet,h.set("processed",m)),m.has(f.node))return f.skip();var g=f.node.quasi.expressions,x=h.get("identity");if(!x){x=f.scope.getProgramParent().generateDeclaredUidIdentifier("_"),h.set("identity",x);var R=f.scope.getBinding(x.name);R.path.get("init").replaceWith(o.arrowFunctionExpression([o.identifier("t")],o.identifier("t")))}var w=o.taggedTemplateExpression(o.cloneNode(x),o.templateLiteral(f.node.quasi.quasis,g.map(function(){return o.numericLiteral(0)})));m.add(w);var T=f.scope.getProgramParent().generateDeclaredUidIdentifier("t");f.scope.getBinding(T.name).path.parent.kind="let";var I=o.logicalExpression("||",T,o.assignmentExpression("=",o.cloneNode(T),w)),P=o.callExpression(f.node.tag,[I].concat(fe(g)));f.replaceWith(P)}}}};r.default=s,e.exports=r.default})(c_,c_.exports);var ert=c_.exports,d_={exports:{}};(function(e,r){r.__esModule=!0,r.default=s;function s(l){var u=l.types;return{name:"transform-safari-block-shadowing",visitor:{VariableDeclarator:function(c){var f=c.parent.kind;if(!(f!=="let"&&f!=="const")){var h=c.scope.block;if(!(u.isFunction(h)||u.isProgram(h)))for(var m=u.getOuterBindingIdentifiers(c.node.id),g=0,x=Object.keys(m);g<x.length;g++){var R=x[g],w=c.scope;if(w.hasOwnBinding(R))for(;w=w.parent;){if(w.hasOwnBinding(R)){c.scope.rename(R);break}if(u.isFunction(w.block)||u.isProgram(w.block))break}}}}}}}e.exports=r.default})(d_,d_.exports);var trt=d_.exports,p_={exports:{}};(function(e,r){r.__esModule=!0,r.default=void 0;function s(u){if(u.isVariableDeclaration()){var o=u.getFunctionParent(),c=u.node.declarations[0].id.name;o&&o.scope.hasOwnBinding(c)&&o.scope.getOwnBinding(c).kind==="param"&&u.scope.rename(c)}}var l=function(){return{name:"transform-safari-for-shadowing",visitor:{ForXStatement:function(c){s(c.get("left"))},ForStatement:function(c){s(c.get("init"))}}}};r.default=l,e.exports=r.default})(p_,p_.exports);var rrt=p_.exports;function art(e){var r=e.node,s=r.id;if(!s)return!1;var l=s.name,u=e.scope.getOwnBinding(l);return u===void 0||u.kind!=="param"||u.identifier===u.path.node?!1:l}var nrt=function(e){return e.assertVersion("*"),{name:"plugin-bugfix-safari-id-destructuring-collision-in-function-expression",visitor:{FunctionExpression:function(s){var l=art(s);if(l){var u=s.scope,o=u.generateUid(l);u.rename(l,o)}}}}};function Si(e){return yn(e)&&!Di(e)?!1:ct(e)||Bu(e)||Qr(e)?Si(e.callee)||e.arguments.some(Si):Di(e)?e.expressions.some(Si):bf(e)?Si(e.tag)||Si(e.quasi):ht(e)?e.elements.some(Si):Mt(e)?e.properties.some(function(r){return Sn(r)?Si(r.value)||r.computed&&Si(r.key):(Kn(r),!1)}):lr(e)||Co(e)?Si(e.object)||e.computed&&Si(e.property):va(e)||md(e)||df(e)||Xs(e)?!1:li(e)?e.expressions.some(Si):!0}function ice(e){var r=e.node.value;r&&Si(r)&&(e.node.value=ft(fi([],r),[]))}var srt=function(e){return e.assertVersion("*"),{name:"plugin-bugfix-safari-class-field-initializer-scope",visitor:{ClassProperty:function(s){ice(s)},ClassPrivateProperty:function(s){ice(s)}}}};function irt(e){var r=e.findIndex(function(s){return mn(s)});return r>=0&&r!==e.length-1}function ort(e){for(var r=e,s=[];;)if(r.isOptionalMemberExpression())s.push(r.node),r=ds(r.get("object"));else if(r.isOptionalCallExpression())s.push(r.node),r=ds(r.get("callee"));else break;for(var l=0;l<s.length;l++){var u=s[l];if(Bu(u)&&irt(u.arguments)){if(u.optional)return!0;var o=s[l+1];if(Co(o,{optional:!0}))return!0}}return!1}var lrt=function(e){var r,s;e.assertVersion("*");var l=(r=e.assumption("noDocumentAll"))!=null?r:!1,u=(s=e.assumption("pureGetters"))!=null?s:!1;return{name:"bugfix-v8-spread-parameters-in-optional-chaining",visitor:{"OptionalCallExpression|OptionalMemberExpression":function(c){ort(c)&&qie(c,{noDocumentAll:l,pureGetters:u})}}}};function oce(e){return Dt(e)?e.name==="name"||e.name==="length":nt(e)?e.value==="name"||e.value==="length":!1}function urt(e){return(Qi(e)||Sf(e))&&e.static&&!!e.value}var lce={ReferencedIdentifier:function(r,s){r.node.name===s.name&&(s.ref(),r.stop())},Scope:function(r,s){var l=s.name;r.scope.hasOwnBinding(l)&&r.skip()}};function uce(e,r){return Xs(e)||r&&Dt(e,{name:r})}var crt={"ThisExpression|ReferencedIdentifier":function(r,s){uce(r.node,s.name)&&(s.ref(),r.stop())},FunctionParent:function(r,s){r.isArrowFunctionExpression()||(s.name&&!r.scope.hasOwnBinding(s.name)&&r.traverse(lce,s),r.skip(),r.isMethod()&&r.requeueComputedKeyAndDecorators())}};function drt(e){var r,s=[],l=!1,u=(r=e.node.id)==null?void 0:r.name,o={name:u,ref:function(){return l=!0}};if(u)for(var c=C(e.get("body.body")),f;!(f=c()).done;){var h=f.value;if(h.node.computed&&(h.get("key").traverse(lce,o),l))break}for(var m=!1,g=e.node.body.body,x=0;x<g.length;x++){var R=g[x];m||(kl(R)?(l=!0,m=!0):urt(R)&&(l||(uce(R.value,u)?l=!0:e.get("body.body."+x+".value").traverse(crt,o)),l&&(m=!e.scope.isPure(R.value)))),Qi(R,{static:!0})&&(m||R.computed||oce(R.key))&&s.push(x)}return s}function prt(e){for(var r=[],s=e.node.body.body,l=0;l<s.length;l++){var u=s[l];Qi(u,{static:!0,computed:!1})&&oce(u.key)&&r.push(l)}return r}function frt(e){var r=[];if(e.length===0)return r;for(var s=e[0],l=s+1,u=1;u<e.length;u++){if(e[u]<=e[u-1])throw new Error("Internal Babel error: nums must be in ascending order");e[u]===l?l++:(r.push([s,l]),s=e[u],l=s+1)}return r.push([s,l]),r}function hrt(e,r,s){return kd(e.map(function(l){var u=l.computed||!Dt(l.key)?l.key:Jt(l.key.name);return Xt(ft(s.addHelper("defineProperty"),[qr(),u,l.value||r.buildUndefinedNode()]))}))}var mrt=function(e){e.assertVersion("*");var r=e.assumption("setPublicClassFields");return{name:"bugfix-v8-static-class-fields-redefine-readonly",visitor:{Class:function(l){for(var u=frt(r?prt(l):drt(l)),o=u.length-1;o>=0;o--){var c=je(u[o],2),f=c[0],h=c[1],m=l.get("body.body")[f];m.replaceWith(hrt(l.node.body.body.slice(f,h),l.scope,this.file));for(var g=h-1;g>f;g--)l.get("body.body")[g].remove()}}}}},f_={"bugfix/transform-async-arrows-in-class":function(){return Jtt},"bugfix/transform-edge-default-parameters":function(){return Ytt},"bugfix/transform-edge-function-name":function(){return Qtt},"bugfix/transform-firefox-class-in-computed-class-key":function(){return Ztt},"bugfix/transform-safari-block-shadowing":function(){return trt},"bugfix/transform-safari-class-field-initializer-scope":function(){return srt},"bugfix/transform-safari-for-shadowing":function(){return rrt},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":function(){return nrt},"bugfix/transform-tagged-template-caching":function(){return ert},"bugfix/transform-v8-spread-parameters-in-optional-chaining":function(){return lrt},"bugfix/transform-v8-static-class-fields-redefine-readonly":function(){return mrt},"syntax-import-assertions":function(){return cJ},"syntax-import-attributes":function(){return nv},"transform-arrow-functions":function(){return rO},"transform-async-generator-functions":function(){return wJ},"transform-async-to-generator":function(){return roe},"transform-block-scoped-functions":function(){return aO},"transform-block-scoping":function(){return oO},"transform-class-properties":function(){return qS},"transform-class-static-block":function(){return US},"transform-classes":function(){return uO},"transform-computed-properties":function(){return cO},"transform-destructuring":function(){return GS},"transform-dotall-regex":function(){return Roe},"transform-duplicate-keys":function(){return dO},"transform-duplicate-named-capturing-groups-regex":function(){return Wj},"transform-dynamic-import":function(){return Cie},"transform-exponentiation-operator":function(){return woe},"transform-export-namespace-from":function(){return Gj},"transform-for-of":function(){return hO},"transform-function-name":function(){return mO},"transform-json-strings":function(){return Kj},"transform-literals":function(){return yO},"transform-logical-assignment-operators":function(){return Hj},"transform-member-expression-literals":function(){return Ooe},"transform-modules-amd":function(){return gO},"transform-modules-commonjs":function(){return _v},"transform-modules-systemjs":function(){return xO},"transform-modules-umd":function(){return RO},"transform-named-capturing-groups-regex":function(){return Uoe},"transform-new-target":function(){return Voe},"transform-nullish-coalescing-operator":function(){return zj},"transform-numeric-separator":function(){return Xj},"transform-object-rest-spread":function(){return Mie},"transform-object-super":function(){return EO},"transform-optional-catch-binding":function(){return Bie},"transform-optional-chaining":function(){return Qj},"transform-parameters":function(){return YS},"transform-private-methods":function(){return Zj},"transform-private-property-in-object":function(){return eO},"transform-property-literals":function(){return Woe},"transform-regenerator":function(){return OO},"transform-reserved-words":function(){return wle},"transform-shorthand-properties":function(){return VO},"transform-spread":function(){return WO},"transform-sticky-regex":function(){return GO},"transform-template-literals":function(){return KO},"transform-typeof-symbol":function(){return HO},"transform-unicode-escapes":function(){return t_},"transform-unicode-property-regex":function(){return toe},"transform-unicode-regex":function(){return r_},"transform-unicode-sets-regex":function(){return tO}},h_={},cce;{Object.assign(h_,{"bugfix/transform-safari-id-destructuring-collision-in-function-expression":"7.16.0","bugfix/transform-v8-static-class-fields-redefine-readonly":"7.12.0","syntax-import-attributes":"7.22.0","transform-class-static-block":"7.12.0","transform-duplicate-named-capturing-groups-regex":"7.19.0","transform-private-property-in-object":"7.10.0"});var Xn=function(){return function(){return function(){return{}}}},m_={"syntax-async-generators":Xn(),"syntax-class-properties":Xn(),"syntax-class-static-block":Xn(),"syntax-dynamic-import":Xn(),"syntax-export-namespace-from":Xn(),"syntax-import-meta":Xn(),"syntax-json-strings":Xn(),"syntax-logical-assignment-operators":Xn(),"syntax-nullish-coalescing-operator":Xn(),"syntax-numeric-separator":Xn(),"syntax-object-rest-spread":Xn(),"syntax-optional-catch-binding":Xn(),"syntax-optional-chaining":Xn(),"syntax-private-property-in-object":Xn(),"syntax-top-level-await":Xn()};m_["syntax-unicode-sets-regex"]=Xn(),Object.assign(f_,m_),cce=new Set(Object.keys(m_))}function yrt(e,r){r.forEach(function(s){e.add(s)})}function grt(e,r){e.forEach(function(s){var l;(l=r[s])==null||l.forEach(function(u){return e.delete(u)})})}function vrt(e,r){e.forEach(function(s){(hasOwnProperty.call(h_,s)&&i_.lt(r,h_[s])||r[0]==="8"&&cce.has(s))&&e.delete(s)})}var y_={amd:"transform-modules-amd",commonjs:"transform-modules-commonjs",cjs:"transform-modules-commonjs",systemjs:"transform-modules-systemjs",umd:"transform-modules-umd"},brt={"bugfix/transform-async-arrows-in-class":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"11",node:"7.6",deno:"1",ios:"11",samsung:"6",opera_mobile:"42",electron:"1.6"},"bugfix/transform-edge-default-parameters":{chrome:"49",opera:"36",edge:"18",firefox:"52",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-edge-function-name":{chrome:"51",opera:"38",edge:"79",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"bugfix/transform-safari-block-shadowing":{chrome:"49",opera:"36",edge:"12",firefox:"44",safari:"11",node:"6",deno:"1",ie:"11",ios:"11",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-safari-for-shadowing":{chrome:"49",opera:"36",edge:"12",firefox:"4",safari:"11",node:"6",deno:"1",ie:"11",ios:"11",samsung:"5",rhino:"1.7.13",opera_mobile:"36",electron:"0.37"},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":{chrome:"49",opera:"36",edge:"14",firefox:"2",safari:"16.3",node:"6",deno:"1",ios:"16.3",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-tagged-template-caching":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"13",node:"4",deno:"1",ios:"13",samsung:"3.4",rhino:"1.7.14",opera_mobile:"28",electron:"0.21"},"bugfix/transform-v8-spread-parameters-in-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"bugfix/transform-firefox-class-in-computed-class-key":{chrome:"74",opera:"62",edge:"79",safari:"16",node:"12",deno:"1",ios:"16",samsung:"11",opera_mobile:"53",electron:"6.0"},"transform-optional-chaining":{chrome:"80",opera:"67",edge:"80",firefox:"74",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",opera_mobile:"57",electron:"8.0"},"proposal-optional-chaining":{chrome:"80",opera:"67",edge:"80",firefox:"74",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",opera_mobile:"57",electron:"8.0"},"transform-parameters":{chrome:"49",opera:"36",edge:"15",firefox:"53",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"transform-async-to-generator":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"10.1",node:"7.6",deno:"1",ios:"10.3",samsung:"6",opera_mobile:"42",electron:"1.6"},"transform-template-literals":{chrome:"41",opera:"28",edge:"13",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-function-name":{chrome:"51",opera:"38",edge:"14",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-block-scoping":{chrome:"50",opera:"37",edge:"14",firefox:"53",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"}},xrt=brt,Rrt={"transform-async-to-generator":["bugfix/transform-async-arrows-in-class"],"transform-parameters":["bugfix/transform-edge-default-parameters","bugfix/transform-safari-id-destructuring-collision-in-function-expression"],"transform-function-name":["bugfix/transform-edge-function-name"],"transform-block-scoping":["bugfix/transform-safari-block-shadowing","bugfix/transform-safari-for-shadowing"],"transform-template-literals":["bugfix/transform-tagged-template-caching"],"transform-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"],"proposal-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"],"transform-class-properties":["bugfix/transform-v8-static-class-fields-redefine-readonly","bugfix/transform-firefox-class-in-computed-class-key","bugfix/transform-safari-class-field-initializer-scope"],"proposal-class-properties":["bugfix/transform-v8-static-class-fields-redefine-readonly","bugfix/transform-firefox-class-in-computed-class-key","bugfix/transform-safari-class-field-initializer-scope"]},Ert=Rrt,Srt=Object.keys,fm=g_(M5),dce=g_(xrt),pce=g_(Ert);pce["syntax-import-attributes"]=["syntax-import-assertions"];function g_(e){for(var r={},s=C(Srt(e)),l;!(l=s()).done;){var u=l.value;hasOwnProperty.call(f_,u)&&(r[u]=e[u])}return r}var Wi={bugfixes:"bugfixes",configPath:"configPath",corejs:"corejs",debug:"debug",exclude:"exclude",forceAllTransforms:"forceAllTransforms",ignoreBrowserslistConfig:"ignoreBrowserslistConfig",include:"include",modules:"modules",shippedProposals:"shippedProposals",targets:"targets",useBuiltIns:"useBuiltIns",browserslistEnv:"browserslistEnv"};Object.assign(Wi,{loose:"loose",spec:"spec"});var v_={false:!1,auto:"auto",amd:"amd",commonjs:"commonjs",cjs:"cjs",systemjs:"systemjs",umd:"umd"},fce={false:!1,entry:"entry",usage:"usage"},fo={},hm={},Gi={},hce;function Trt(){if(hce)return Gi;hce=1,Gi.__esModule=!0,Gi.StaticProperties=Gi.InstanceProperties=Gi.CommonIterators=Gi.BuiltIns=void 0;var e=r(tm());function r(R){return R&&R.__esModule?R:{default:R}}var s=function(w,T,I,P){return I===void 0&&(I=[]),{name:w,pure:T,global:I,meta:P}},l=function(w,T,I){return I===void 0&&(I=null),s(T[0],w,T,{minRuntimeVersion:I})},u=function(w){return s(w[0],null,w)},o=function(w,T){return s(T,w,[])},c=["es6.object.to-string","es6.array.iterator","web.dom.iterable"],f=["es6.string.iterator"].concat(c);Gi.CommonIterators=f;var h=["es6.object.to-string","es6.promise"],m={DataView:u(["es6.typed.data-view"]),Float32Array:u(["es6.typed.float32-array"]),Float64Array:u(["es6.typed.float64-array"]),Int8Array:u(["es6.typed.int8-array"]),Int16Array:u(["es6.typed.int16-array"]),Int32Array:u(["es6.typed.int32-array"]),Map:l("map",["es6.map"].concat(fe(f))),Number:u(["es6.number.constructor"]),Promise:l("promise",h),RegExp:u(["es6.regexp.constructor"]),Set:l("set",["es6.set"].concat(fe(f))),Symbol:l("symbol/index",["es6.symbol"]),Uint8Array:u(["es6.typed.uint8-array"]),Uint8ClampedArray:u(["es6.typed.uint8-clamped-array"]),Uint16Array:u(["es6.typed.uint16-array"]),Uint32Array:u(["es6.typed.uint32-array"]),WeakMap:l("weak-map",["es6.weak-map"].concat(fe(f))),WeakSet:l("weak-set",["es6.weak-set"].concat(fe(f))),setImmediate:o("set-immediate","web.immediate"),clearImmediate:o("clear-immediate","web.immediate"),parseFloat:o("parse-float","es6.parse-float"),parseInt:o("parse-int","es6.parse-int")};Gi.BuiltIns=m;var g={__defineGetter__:u(["es7.object.define-getter"]),__defineSetter__:u(["es7.object.define-setter"]),__lookupGetter__:u(["es7.object.lookup-getter"]),__lookupSetter__:u(["es7.object.lookup-setter"]),anchor:u(["es6.string.anchor"]),big:u(["es6.string.big"]),bind:u(["es6.function.bind"]),blink:u(["es6.string.blink"]),bold:u(["es6.string.bold"]),codePointAt:u(["es6.string.code-point-at"]),copyWithin:u(["es6.array.copy-within"]),endsWith:u(["es6.string.ends-with"]),entries:u(c),every:u(["es6.array.every"]),fill:u(["es6.array.fill"]),filter:u(["es6.array.filter"]),finally:u(["es7.promise.finally"].concat(h)),find:u(["es6.array.find"]),findIndex:u(["es6.array.find-index"]),fixed:u(["es6.string.fixed"]),flags:u(["es6.regexp.flags"]),flatMap:u(["es7.array.flat-map"]),fontcolor:u(["es6.string.fontcolor"]),fontsize:u(["es6.string.fontsize"]),forEach:u(["es6.array.for-each"]),includes:u(["es6.string.includes","es7.array.includes"]),indexOf:u(["es6.array.index-of"]),italics:u(["es6.string.italics"]),keys:u(c),lastIndexOf:u(["es6.array.last-index-of"]),link:u(["es6.string.link"]),map:u(["es6.array.map"]),match:u(["es6.regexp.match"]),name:u(["es6.function.name"]),padStart:u(["es7.string.pad-start"]),padEnd:u(["es7.string.pad-end"]),reduce:u(["es6.array.reduce"]),reduceRight:u(["es6.array.reduce-right"]),repeat:u(["es6.string.repeat"]),replace:u(["es6.regexp.replace"]),search:u(["es6.regexp.search"]),small:u(["es6.string.small"]),some:u(["es6.array.some"]),sort:u(["es6.array.sort"]),split:u(["es6.regexp.split"]),startsWith:u(["es6.string.starts-with"]),strike:u(["es6.string.strike"]),sub:u(["es6.string.sub"]),sup:u(["es6.string.sup"]),toISOString:u(["es6.date.to-iso-string"]),toJSON:u(["es6.date.to-json"]),toString:u(["es6.object.to-string","es6.date.to-string","es6.regexp.to-string"]),trim:u(["es6.string.trim"]),trimEnd:u(["es7.string.trim-right"]),trimLeft:u(["es7.string.trim-left"]),trimRight:u(["es7.string.trim-right"]),trimStart:u(["es7.string.trim-left"]),values:u(c)};Gi.InstanceProperties=g,"es6.array.slice"in e.default&&(g.slice=u(["es6.array.slice"]));var x={Array:{from:l("array/from",["es6.symbol","es6.array.from"].concat(fe(f))),isArray:l("array/is-array",["es6.array.is-array"]),of:l("array/of",["es6.array.of"])},Date:{now:l("date/now",["es6.date.now"])},JSON:{stringify:o("json/stringify","es6.symbol")},Math:{acosh:l("math/acosh",["es6.math.acosh"],"7.0.1"),asinh:l("math/asinh",["es6.math.asinh"],"7.0.1"),atanh:l("math/atanh",["es6.math.atanh"],"7.0.1"),cbrt:l("math/cbrt",["es6.math.cbrt"],"7.0.1"),clz32:l("math/clz32",["es6.math.clz32"],"7.0.1"),cosh:l("math/cosh",["es6.math.cosh"],"7.0.1"),expm1:l("math/expm1",["es6.math.expm1"],"7.0.1"),fround:l("math/fround",["es6.math.fround"],"7.0.1"),hypot:l("math/hypot",["es6.math.hypot"],"7.0.1"),imul:l("math/imul",["es6.math.imul"],"7.0.1"),log1p:l("math/log1p",["es6.math.log1p"],"7.0.1"),log10:l("math/log10",["es6.math.log10"],"7.0.1"),log2:l("math/log2",["es6.math.log2"],"7.0.1"),sign:l("math/sign",["es6.math.sign"],"7.0.1"),sinh:l("math/sinh",["es6.math.sinh"],"7.0.1"),tanh:l("math/tanh",["es6.math.tanh"],"7.0.1"),trunc:l("math/trunc",["es6.math.trunc"],"7.0.1")},Number:{EPSILON:l("number/epsilon",["es6.number.epsilon"]),MIN_SAFE_INTEGER:l("number/min-safe-integer",["es6.number.min-safe-integer"]),MAX_SAFE_INTEGER:l("number/max-safe-integer",["es6.number.max-safe-integer"]),isFinite:l("number/is-finite",["es6.number.is-finite"]),isInteger:l("number/is-integer",["es6.number.is-integer"]),isSafeInteger:l("number/is-safe-integer",["es6.number.is-safe-integer"]),isNaN:l("number/is-nan",["es6.number.is-nan"]),parseFloat:l("number/parse-float",["es6.number.parse-float"]),parseInt:l("number/parse-int",["es6.number.parse-int"])},Object:{assign:l("object/assign",["es6.object.assign"]),create:l("object/create",["es6.object.create"]),defineProperties:l("object/define-properties",["es6.object.define-properties"]),defineProperty:l("object/define-property",["es6.object.define-property"]),entries:l("object/entries",["es7.object.entries"]),freeze:l("object/freeze",["es6.object.freeze"]),getOwnPropertyDescriptor:l("object/get-own-property-descriptor",["es6.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:l("object/get-own-property-descriptors",["es7.object.get-own-property-descriptors"]),getOwnPropertyNames:l("object/get-own-property-names",["es6.object.get-own-property-names"]),getOwnPropertySymbols:l("object/get-own-property-symbols",["es6.symbol"]),getPrototypeOf:l("object/get-prototype-of",["es6.object.get-prototype-of"]),is:l("object/is",["es6.object.is"]),isExtensible:l("object/is-extensible",["es6.object.is-extensible"]),isFrozen:l("object/is-frozen",["es6.object.is-frozen"]),isSealed:l("object/is-sealed",["es6.object.is-sealed"]),keys:l("object/keys",["es6.object.keys"]),preventExtensions:l("object/prevent-extensions",["es6.object.prevent-extensions"]),seal:l("object/seal",["es6.object.seal"]),setPrototypeOf:l("object/set-prototype-of",["es6.object.set-prototype-of"]),values:l("object/values",["es7.object.values"])},Promise:{all:u(f),race:u(f)},Reflect:{apply:l("reflect/apply",["es6.reflect.apply"]),construct:l("reflect/construct",["es6.reflect.construct"]),defineProperty:l("reflect/define-property",["es6.reflect.define-property"]),deleteProperty:l("reflect/delete-property",["es6.reflect.delete-property"]),get:l("reflect/get",["es6.reflect.get"]),getOwnPropertyDescriptor:l("reflect/get-own-property-descriptor",["es6.reflect.get-own-property-descriptor"]),getPrototypeOf:l("reflect/get-prototype-of",["es6.reflect.get-prototype-of"]),has:l("reflect/has",["es6.reflect.has"]),isExtensible:l("reflect/is-extensible",["es6.reflect.is-extensible"]),ownKeys:l("reflect/own-keys",["es6.reflect.own-keys"]),preventExtensions:l("reflect/prevent-extensions",["es6.reflect.prevent-extensions"]),set:l("reflect/set",["es6.reflect.set"]),setPrototypeOf:l("reflect/set-prototype-of",["es6.reflect.set-prototype-of"])},String:{at:o("string/at","es7.string.at"),fromCodePoint:l("string/from-code-point",["es6.string.from-code-point"]),raw:l("string/raw",["es6.string.raw"])},Symbol:{asyncIterator:u(["es6.symbol","es7.symbol.async-iterator"]),for:o("symbol/for","es6.symbol"),hasInstance:o("symbol/has-instance","es6.symbol"),isConcatSpreadable:o("symbol/is-concat-spreadable","es6.symbol"),iterator:s("es6.symbol","symbol/iterator",f),keyFor:o("symbol/key-for","es6.symbol"),match:l("symbol/match",["es6.regexp.match"]),replace:o("symbol/replace","es6.symbol"),search:o("symbol/search","es6.symbol"),species:o("symbol/species","es6.symbol"),split:o("symbol/split","es6.symbol"),toPrimitive:o("symbol/to-primitive","es6.symbol"),toStringTag:o("symbol/to-string-tag","es6.symbol"),unscopables:o("symbol/unscopables","es6.symbol")}};return Gi.StaticProperties=x,Gi}var Kv={},mce;function wrt(){if(mce)return Kv;mce=1,Kv.__esModule=!0,Kv.default=l;function e(){return e=Object.assign?Object.assign.bind():function(u){for(var o=1;o<arguments.length;o++){var c=arguments[o];for(var f in c)Object.prototype.hasOwnProperty.call(c,f)&&(u[f]=c[f])}return u},e.apply(this,arguments)}var r={"web.timers":{},"web.immediate":{},"web.dom.iterable":{}},s={"es6.parse-float":{},"es6.parse-int":{},"es7.string.at":{}};function l(u,o,c){var f=Object.keys(u),h=!f.length,m=f.some(function(g){return g!=="node"});return e({},c,o==="usage-pure"?s:null,h||m?r:null)}return Kv}var Hv={},zv={exports:{}},yce;function Prt(){return yce||(yce=1,function(e,r){r=e.exports=L;var s;typeof er=="object"&&er.env&&er.env.NODE_DEBUG&&/\bsemver\b/i.test(er.env.NODE_DEBUG)?s=function(){var $=Array.prototype.slice.call(arguments,0);$.unshift("SEMVER"),console.log.apply(console,$)}:s=function(){},r.SEMVER_SPEC_VERSION="2.0.0";var l=256,u=Number.MAX_SAFE_INTEGER||9007199254740991,o=16,c=l-6,f=r.re=[],h=r.safeRe=[],m=r.src=[],g=r.tokens={},x=0;function R(N){g[N]=x++}var w="[a-zA-Z0-9-]",T=[["\\s",1],["\\d",l],[w,c]];function I(N){for(var $=0;$<T.length;$++){var U=T[$][0],pe=T[$][1];N=N.split(U+"*").join(U+"{0,"+pe+"}").split(U+"+").join(U+"{1,"+pe+"}")}return N}R("NUMERICIDENTIFIER"),m[g.NUMERICIDENTIFIER]="0|[1-9]\\d*",R("NUMERICIDENTIFIERLOOSE"),m[g.NUMERICIDENTIFIERLOOSE]="\\d+",R("NONNUMERICIDENTIFIER"),m[g.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+w+"*",R("MAINVERSION"),m[g.MAINVERSION]="("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")\\.("+m[g.NUMERICIDENTIFIER]+")",R("MAINVERSIONLOOSE"),m[g.MAINVERSIONLOOSE]="("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")\\.("+m[g.NUMERICIDENTIFIERLOOSE]+")",R("PRERELEASEIDENTIFIER"),m[g.PRERELEASEIDENTIFIER]="(?:"+m[g.NUMERICIDENTIFIER]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASEIDENTIFIERLOOSE"),m[g.PRERELEASEIDENTIFIERLOOSE]="(?:"+m[g.NUMERICIDENTIFIERLOOSE]+"|"+m[g.NONNUMERICIDENTIFIER]+")",R("PRERELEASE"),m[g.PRERELEASE]="(?:-("+m[g.PRERELEASEIDENTIFIER]+"(?:\\."+m[g.PRERELEASEIDENTIFIER]+")*))",R("PRERELEASELOOSE"),m[g.PRERELEASELOOSE]="(?:-?("+m[g.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+m[g.PRERELEASEIDENTIFIERLOOSE]+")*))",R("BUILDIDENTIFIER"),m[g.BUILDIDENTIFIER]=w+"+",R("BUILD"),m[g.BUILD]="(?:\\+("+m[g.BUILDIDENTIFIER]+"(?:\\."+m[g.BUILDIDENTIFIER]+")*))",R("FULL"),R("FULLPLAIN"),m[g.FULLPLAIN]="v?"+m[g.MAINVERSION]+m[g.PRERELEASE]+"?"+m[g.BUILD]+"?",m[g.FULL]="^"+m[g.FULLPLAIN]+"$",R("LOOSEPLAIN"),m[g.LOOSEPLAIN]="[v=\\s]*"+m[g.MAINVERSIONLOOSE]+m[g.PRERELEASELOOSE]+"?"+m[g.BUILD]+"?",R("LOOSE"),m[g.LOOSE]="^"+m[g.LOOSEPLAIN]+"$",R("GTLT"),m[g.GTLT]="((?:<|>)?=?)",R("XRANGEIDENTIFIERLOOSE"),m[g.XRANGEIDENTIFIERLOOSE]=m[g.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",R("XRANGEIDENTIFIER"),m[g.XRANGEIDENTIFIER]=m[g.NUMERICIDENTIFIER]+"|x|X|\\*",R("XRANGEPLAIN"),m[g.XRANGEPLAIN]="[v=\\s]*("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:\\.("+m[g.XRANGEIDENTIFIER]+")(?:"+m[g.PRERELEASE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGEPLAINLOOSE"),m[g.XRANGEPLAINLOOSE]="[v=\\s]*("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+m[g.XRANGEIDENTIFIERLOOSE]+")(?:"+m[g.PRERELEASELOOSE]+")?"+m[g.BUILD]+"?)?)?",R("XRANGE"),m[g.XRANGE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAIN]+"$",R("XRANGELOOSE"),m[g.XRANGELOOSE]="^"+m[g.GTLT]+"\\s*"+m[g.XRANGEPLAINLOOSE]+"$",R("COERCE"),m[g.COERCE]="(^|[^\\d])(\\d{1,"+o+"})(?:\\.(\\d{1,"+o+"}))?(?:\\.(\\d{1,"+o+"}))?(?:$|[^\\d])",R("COERCERTL"),f[g.COERCERTL]=new RegExp(m[g.COERCE],"g"),h[g.COERCERTL]=new RegExp(I(m[g.COERCE]),"g"),R("LONETILDE"),m[g.LONETILDE]="(?:~>?)",R("TILDETRIM"),m[g.TILDETRIM]="(\\s*)"+m[g.LONETILDE]+"\\s+",f[g.TILDETRIM]=new RegExp(m[g.TILDETRIM],"g"),h[g.TILDETRIM]=new RegExp(I(m[g.TILDETRIM]),"g");var P="$1~";R("TILDE"),m[g.TILDE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAIN]+"$",R("TILDELOOSE"),m[g.TILDELOOSE]="^"+m[g.LONETILDE]+m[g.XRANGEPLAINLOOSE]+"$",R("LONECARET"),m[g.LONECARET]="(?:\\^)",R("CARETTRIM"),m[g.CARETTRIM]="(\\s*)"+m[g.LONECARET]+"\\s+",f[g.CARETTRIM]=new RegExp(m[g.CARETTRIM],"g"),h[g.CARETTRIM]=new RegExp(I(m[g.CARETTRIM]),"g");var O="$1^";R("CARET"),m[g.CARET]="^"+m[g.LONECARET]+m[g.XRANGEPLAIN]+"$",R("CARETLOOSE"),m[g.CARETLOOSE]="^"+m[g.LONECARET]+m[g.XRANGEPLAINLOOSE]+"$",R("COMPARATORLOOSE"),m[g.COMPARATORLOOSE]="^"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+")$|^$",R("COMPARATOR"),m[g.COMPARATOR]="^"+m[g.GTLT]+"\\s*("+m[g.FULLPLAIN]+")$|^$",R("COMPARATORTRIM"),m[g.COMPARATORTRIM]="(\\s*)"+m[g.GTLT]+"\\s*("+m[g.LOOSEPLAIN]+"|"+m[g.XRANGEPLAIN]+")",f[g.COMPARATORTRIM]=new RegExp(m[g.COMPARATORTRIM],"g"),h[g.COMPARATORTRIM]=new RegExp(I(m[g.COMPARATORTRIM]),"g");var j="$1$2$3";R("HYPHENRANGE"),m[g.HYPHENRANGE]="^\\s*("+m[g.XRANGEPLAIN]+")\\s+-\\s+("+m[g.XRANGEPLAIN]+")\\s*$",R("HYPHENRANGELOOSE"),m[g.HYPHENRANGELOOSE]="^\\s*("+m[g.XRANGEPLAINLOOSE]+")\\s+-\\s+("+m[g.XRANGEPLAINLOOSE]+")\\s*$",R("STAR"),m[g.STAR]="(<|>)?=?\\s*\\*";for(var D=0;D<x;D++)s(D,m[D]),f[D]||(f[D]=new RegExp(m[D]),h[D]=new RegExp(I(m[D])));r.parse=k;function k(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L)return N;if(typeof N!="string"||N.length>l)return null;var U=$.loose?h[g.LOOSE]:h[g.FULL];if(!U.test(N))return null;try{return new L(N,$)}catch{return null}}r.valid=B;function B(N,$){var U=k(N,$);return U?U.version:null}r.clean=F;function F(N,$){var U=k(N.trim().replace(/^[=v]+/,""),$);return U?U.version:null}r.SemVer=L;function L(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof L){if(N.loose===$.loose)return N;N=N.version}else if(typeof N!="string")throw new TypeError("Invalid Version: "+N);if(N.length>l)throw new TypeError("version is longer than "+l+" characters");if(!(this instanceof L))return new L(N,$);s("SemVer",N,$),this.options=$,this.loose=!!$.loose;var U=N.trim().match($.loose?h[g.LOOSE]:h[g.FULL]);if(!U)throw new TypeError("Invalid Version: "+N);if(this.raw=N,this.major=+U[1],this.minor=+U[2],this.patch=+U[3],this.major>u||this.major<0)throw new TypeError("Invalid major version");if(this.minor>u||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>u||this.patch<0)throw new TypeError("Invalid patch version");U[4]?this.prerelease=U[4].split(".").map(function(pe){if(/^[0-9]+$/.test(pe)){var _e=+pe;if(_e>=0&&_e<u)return _e}return pe}):this.prerelease=[],this.build=U[5]?U[5].split("."):[],this.format()}L.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},L.prototype.toString=function(){return this.version},L.prototype.compare=function(N){return s("SemVer.compare",this.version,this.options,N),N instanceof L||(N=new L(N,this.options)),this.compareMain(N)||this.comparePre(N)},L.prototype.compareMain=function(N){return N instanceof L||(N=new L(N,this.options)),G(this.major,N.major)||G(this.minor,N.minor)||G(this.patch,N.patch)},L.prototype.comparePre=function(N){if(N instanceof L||(N=new L(N,this.options)),this.prerelease.length&&!N.prerelease.length)return-1;if(!this.prerelease.length&&N.prerelease.length)return 1;if(!this.prerelease.length&&!N.prerelease.length)return 0;var $=0;do{var U=this.prerelease[$],pe=N.prerelease[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.compareBuild=function(N){N instanceof L||(N=new L(N,this.options));var $=0;do{var U=this.build[$],pe=N.build[$];if(s("prerelease compare",$,U,pe),U===void 0&&pe===void 0)return 0;if(pe===void 0)return 1;if(U===void 0)return-1;if(U===pe)continue;return G(U,pe)}while(++$)},L.prototype.inc=function(N,$){switch(N){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",$);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",$);break;case"prepatch":this.prerelease.length=0,this.inc("patch",$),this.inc("pre",$);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",$),this.inc("pre",$);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var U=this.prerelease.length;--U>=0;)typeof this.prerelease[U]=="number"&&(this.prerelease[U]++,U=-2);U===-1&&this.prerelease.push(0)}$&&(this.prerelease[0]===$?isNaN(this.prerelease[1])&&(this.prerelease=[$,0]):this.prerelease=[$,0]);break;default:throw new Error("invalid increment argument: "+N)}return this.format(),this.raw=this.version,this},r.inc=V;function V(N,$,U,pe){typeof U=="string"&&(pe=U,U=void 0);try{return new L(N,U).inc($,pe).version}catch{return null}}r.diff=H;function H(N,$){if(ke(N,$))return null;var U=k(N),pe=k($),_e="";if(U.prerelease.length||pe.prerelease.length){_e="pre";var We="prerelease"}for(var Ce in U)if((Ce==="major"||Ce==="minor"||Ce==="patch")&&U[Ce]!==pe[Ce])return _e+Ce;return We}r.compareIdentifiers=G;var K=/^[0-9]+$/;function G(N,$){var U=K.test(N),pe=K.test($);return U&&pe&&(N=+N,$=+$),N===$?0:U&&!pe?-1:pe&&!U?1:N<$?-1:1}r.rcompareIdentifiers=X;function X(N,$){return G($,N)}r.major=ue;function ue(N,$){return new L(N,$).major}r.minor=oe;function oe(N,$){return new L(N,$).minor}r.patch=he;function he(N,$){return new L(N,$).patch}r.compare=te;function te(N,$,U){return new L(N,U).compare(new L($,U))}r.compareLoose=ae;function ae(N,$){return te(N,$,!0)}r.compareBuild=J;function J(N,$,U){var pe=new L(N,U),_e=new L($,U);return pe.compare(_e)||pe.compareBuild(_e)}r.rcompare=xe;function xe(N,$,U){return te($,N,U)}r.sort=de;function de(N,$){return N.sort(function(U,pe){return r.compareBuild(U,pe,$)})}r.rsort=$e;function $e(N,$){return N.sort(function(U,pe){return r.compareBuild(pe,U,$)})}r.gt=Ve;function Ve(N,$,U){return te(N,$,U)>0}r.lt=Ie;function Ie(N,$,U){return te(N,$,U)<0}r.eq=ke;function ke(N,$,U){return te(N,$,U)===0}r.neq=Le;function Le(N,$,U){return te(N,$,U)!==0}r.gte=Ze;function Ze(N,$,U){return te(N,$,U)>=0}r.lte=at;function at(N,$,U){return te(N,$,U)<=0}r.cmp=lt;function lt(N,$,U,pe){switch($){case"===":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N===U;case"!==":return typeof N=="object"&&(N=N.version),typeof U=="object"&&(U=U.version),N!==U;case"":case"=":case"==":return ke(N,U,pe);case"!=":return Le(N,U,pe);case">":return Ve(N,U,pe);case">=":return Ze(N,U,pe);case"<":return Ie(N,U,pe);case"<=":return at(N,U,pe);default:throw new TypeError("Invalid operator: "+$)}}r.Comparator=gt;function gt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof gt){if(N.loose===!!$.loose)return N;N=N.value}if(!(this instanceof gt))return new gt(N,$);N=N.trim().split(/\s+/).join(" "),s("comparator",N,$),this.options=$,this.loose=!!$.loose,this.parse(N),this.semver===It?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}var It={};gt.prototype.parse=function(N){var $=this.options.loose?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],U=N.match($);if(!U)throw new TypeError("Invalid comparator: "+N);this.operator=U[1]!==void 0?U[1]:"",this.operator==="="&&(this.operator=""),U[2]?this.semver=new L(U[2],this.options.loose):this.semver=It},gt.prototype.toString=function(){return this.value},gt.prototype.test=function(N){if(s("Comparator.test",N,this.options.loose),this.semver===It||N===It)return!0;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}return lt(N,this.operator,this.semver,this.options)},gt.prototype.intersects=function(N,$){if(!(N instanceof gt))throw new TypeError("a Comparator is required");(!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1});var U;if(this.operator==="")return this.value===""?!0:(U=new tt(N.value,$),yt(this.value,U,$));if(N.operator==="")return N.value===""?!0:(U=new tt(this.value,$),yt(N.semver,U,$));var pe=(this.operator===">="||this.operator===">")&&(N.operator===">="||N.operator===">"),_e=(this.operator==="<="||this.operator==="<")&&(N.operator==="<="||N.operator==="<"),We=this.semver.version===N.semver.version,Ce=(this.operator===">="||this.operator==="<=")&&(N.operator===">="||N.operator==="<="),Ct=lt(this.semver,"<",N.semver,$)&&(this.operator===">="||this.operator===">")&&(N.operator==="<="||N.operator==="<"),ie=lt(this.semver,">",N.semver,$)&&(this.operator==="<="||this.operator==="<")&&(N.operator===">="||N.operator===">");return pe||_e||We&&Ce||Ct||ie},r.Range=tt;function tt(N,$){if((!$||typeof $!="object")&&($={loose:!!$,includePrerelease:!1}),N instanceof tt)return N.loose===!!$.loose&&N.includePrerelease===!!$.includePrerelease?N:new tt(N.raw,$);if(N instanceof gt)return new tt(N.value,$);if(!(this instanceof tt))return new tt(N,$);if(this.options=$,this.loose=!!$.loose,this.includePrerelease=!!$.includePrerelease,this.raw=N.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(U){return this.parseRange(U.trim())},this).filter(function(U){return U.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}tt.prototype.format=function(){return this.range=this.set.map(function(N){return N.join(" ").trim()}).join("||").trim(),this.range},tt.prototype.toString=function(){return this.range},tt.prototype.parseRange=function(N){var $=this.options.loose,U=$?h[g.HYPHENRANGELOOSE]:h[g.HYPHENRANGE];N=N.replace(U,De),s("hyphen replace",N),N=N.replace(h[g.COMPARATORTRIM],j),s("comparator trim",N,h[g.COMPARATORTRIM]),N=N.replace(h[g.TILDETRIM],P),N=N.replace(h[g.CARETTRIM],O),N=N.split(/\s+/).join(" ");var pe=$?h[g.COMPARATORLOOSE]:h[g.COMPARATOR],_e=N.split(" ").map(function(We){return $t(We,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(_e=_e.filter(function(We){return!!We.match(pe)})),_e=_e.map(function(We){return new gt(We,this.options)},this),_e},tt.prototype.intersects=function(N,$){if(!(N instanceof tt))throw new TypeError("a Range is required");return this.set.some(function(U){return Ft(U,$)&&N.set.some(function(pe){return Ft(pe,$)&&U.every(function(_e){return pe.every(function(We){return _e.intersects(We,$)})})})})};function Ft(N,$){for(var U=!0,pe=N.slice(),_e=pe.pop();U&&pe.length;)U=pe.every(function(We){return _e.intersects(We,$)}),_e=pe.pop();return U}r.toComparators=rr;function rr(N,$){return new tt(N,$).set.map(function(U){return U.map(function(pe){return pe.value}).join(" ").trim().split(" ")})}function $t(N,$){return s("comp",N,$),N=Be(N,$),s("caret",N),N=Lt(N,$),s("tildes",N),N=it(N,$),s("xrange",N),N=Ot(N,$),s("stars",N),N}function Et(N){return!N||N.toLowerCase()==="x"||N==="*"}function Lt(N,$){return N.trim().split(/\s+/).map(function(U){return Re(U,$)}).join(" ")}function Re(N,$){var U=$.loose?h[g.TILDELOOSE]:h[g.TILDE];return N.replace(U,function(pe,_e,We,Ce,Ct){s("tilde",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":Ct?(s("replaceTilde pr",Ct),ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0"):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0",s("tilde return",ie),ie})}function Be(N,$){return N.trim().split(/\s+/).map(function(U){return et(U,$)}).join(" ")}function et(N,$){s("caret",N,$);var U=$.loose?h[g.CARETLOOSE]:h[g.CARET];return N.replace(U,function(pe,_e,We,Ce,Ct){s("caret",N,pe,_e,We,Ce,Ct);var ie;return Et(_e)?ie="":Et(We)?ie=">="+_e+".0.0 <"+(+_e+1)+".0.0":Et(Ce)?_e==="0"?ie=">="+_e+"."+We+".0 <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+".0 <"+(+_e+1)+".0.0":Ct?(s("replaceCaret pr",Ct),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+"-"+Ct+" <"+(+_e+1)+".0.0"):(s("no pr"),_e==="0"?We==="0"?ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+We+"."+(+Ce+1):ie=">="+_e+"."+We+"."+Ce+" <"+_e+"."+(+We+1)+".0":ie=">="+_e+"."+We+"."+Ce+" <"+(+_e+1)+".0.0"),s("caret return",ie),ie})}function it(N,$){return s("replaceXRanges",N,$),N.split(/\s+/).map(function(U){return vt(U,$)}).join(" ")}function vt(N,$){N=N.trim();var U=$.loose?h[g.XRANGELOOSE]:h[g.XRANGE];return N.replace(U,function(pe,_e,We,Ce,Ct,ie){s("xRange",N,pe,_e,We,Ce,Ct,ie);var st=Et(We),dt=st||Et(Ce),St=dt||Et(Ct),Gt=St;return _e==="="&&Gt&&(_e=""),ie=$.includePrerelease?"-0":"",st?_e===">"||_e==="<"?pe="<0.0.0-0":pe="*":_e&&Gt?(dt&&(Ce=0),Ct=0,_e===">"?(_e=">=",dt?(We=+We+1,Ce=0,Ct=0):(Ce=+Ce+1,Ct=0)):_e==="<="&&(_e="<",dt?We=+We+1:Ce=+Ce+1),pe=_e+We+"."+Ce+"."+Ct+ie):dt?pe=">="+We+".0.0"+ie+" <"+(+We+1)+".0.0"+ie:St&&(pe=">="+We+"."+Ce+".0"+ie+" <"+We+"."+(+Ce+1)+".0"+ie),s("xRange return",pe),pe})}function Ot(N,$){return s("replaceStars",N,$),N.trim().replace(h[g.STAR],"")}function De(N,$,U,pe,_e,We,Ce,Ct,ie,st,dt,St,Gt){return Et(U)?$="":Et(pe)?$=">="+U+".0.0":Et(_e)?$=">="+U+"."+pe+".0":$=">="+$,Et(ie)?Ct="":Et(st)?Ct="<"+(+ie+1)+".0.0":Et(dt)?Ct="<"+ie+"."+(+st+1)+".0":St?Ct="<="+ie+"."+st+"."+dt+"-"+St:Ct="<="+Ct,($+" "+Ct).trim()}tt.prototype.test=function(N){if(!N)return!1;if(typeof N=="string")try{N=new L(N,this.options)}catch{return!1}for(var $=0;$<this.set.length;$++)if(Qe(this.set[$],N,this.options))return!0;return!1};function Qe(N,$,U){for(var pe=0;pe<N.length;pe++)if(!N[pe].test($))return!1;if($.prerelease.length&&!U.includePrerelease){for(pe=0;pe<N.length;pe++)if(s(N[pe].semver),N[pe].semver!==It&&N[pe].semver.prerelease.length>0){var _e=N[pe].semver;if(_e.major===$.major&&_e.minor===$.minor&&_e.patch===$.patch)return!0}return!1}return!0}r.satisfies=yt;function yt(N,$,U){try{$=new tt($,U)}catch{return!1}return $.test(N)}r.maxSatisfying=jt;function jt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===-1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minSatisfying=Kt;function Kt(N,$,U){var pe=null,_e=null;try{var We=new tt($,U)}catch{return null}return N.forEach(function(Ce){We.test(Ce)&&(!pe||_e.compare(Ce)===1)&&(pe=Ce,_e=new L(pe,U))}),pe}r.minVersion=Ht;function Ht(N,$){N=new tt(N,$);var U=new L("0.0.0");if(N.test(U)||(U=new L("0.0.0-0"),N.test(U)))return U;U=null;for(var pe=0;pe<N.set.length;++pe){var _e=N.set[pe];_e.forEach(function(We){var Ce=new L(We.semver.version);switch(We.operator){case">":Ce.prerelease.length===0?Ce.patch++:Ce.prerelease.push(0),Ce.raw=Ce.format();case"":case">=":(!U||Ve(U,Ce))&&(U=Ce);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+We.operator)}})}return U&&N.test(U)?U:null}r.validRange=Cr;function Cr(N,$){try{return new tt(N,$).range||"*"}catch{return null}}r.ltr=Yr;function Yr(N,$,U){return Gr(N,$,"<",U)}r.gtr=Or;function Or(N,$,U){return Gr(N,$,">",U)}r.outside=Gr;function Gr(N,$,U,pe){N=new L(N,pe),$=new tt($,pe);var _e,We,Ce,Ct,ie;switch(U){case">":_e=Ve,We=at,Ce=Ie,Ct=">",ie=">=";break;case"<":_e=Ie,We=Ze,Ce=Ve,Ct="<",ie="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(yt(N,$,pe))return!1;for(var st=0;st<$.set.length;++st){var dt=$.set[st],St=null,Gt=null;if(dt.forEach(function(zr){zr.semver===It&&(zr=new gt(">=0.0.0")),St=St||zr,Gt=Gt||zr,_e(zr.semver,St.semver,pe)?St=zr:Ce(zr.semver,Gt.semver,pe)&&(Gt=zr)}),St.operator===Ct||St.operator===ie||(!Gt.operator||Gt.operator===Ct)&&We(N,Gt.semver))return!1;if(Gt.operator===ie&&Ce(N,Gt.semver))return!1}return!0}r.prerelease=qa;function qa(N,$){var U=k(N,$);return U&&U.prerelease.length?U.prerelease:null}r.intersects=cr;function cr(N,$,U){return N=new tt(N,U),$=new tt($,U),N.intersects($)}r.coerce=na;function na(N,$){if(N instanceof L)return N;if(typeof N=="number"&&(N=String(N)),typeof N!="string")return null;$=$||{};var U=null;if(!$.rtl)U=N.match(h[g.COERCE]);else{for(var pe;(pe=h[g.COERCERTL].exec(N))&&(!U||U.index+U[0].length!==N.length);)(!U||pe.index+pe[0].length!==U.index+U[0].length)&&(U=pe),h[g.COERCERTL].lastIndex=pe.index+pe[1].length+pe[2].length;h[g.COERCERTL].lastIndex=-1}return U===null?null:k(U[2]+"."+(U[3]||"0")+"."+(U[4]||"0"),$)}}(zv,zv.exports)),zv.exports}var gce;function Art(){if(gce)return Hv;gce=1,Hv.__esModule=!0,Hv.hasMinVersion=s;var e=r(Prt());function r(l){return l&&l.__esModule?l:{default:l}}function s(l,u){return!u||!l?!0:(u=String(u),e.default.valid(u)&&(u="^"+u),!e.default.intersects("<"+l,u)&&!e.default.intersects(">=8.0.0",u))}return Hv}var Xv={},ho={},vce,bce,xce,Rce;function mm(){if(Rce)return ho;Rce=1,ho.__esModule=!0,ho.createUtilsGetter=I,ho.getImportSource=R,ho.getRequireSource=w,ho.has=f,ho.intersection=c,ho.resolveKey=g,ho.resolveSource=x;var e=s(Qo);function r(P){if(typeof WeakMap!="function")return null;var O=new WeakMap,j=new WeakMap;return(r=function(k){return k?j:O})(P)}function s(P,O){if(P&&P.__esModule)return P;if(P===null||typeof P!="object"&&typeof P!="function")return{default:P};var j=r(O);if(j&&j.has(P))return j.get(P);var D={},k=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var B in P)if(B!=="default"&&Object.prototype.hasOwnProperty.call(P,B)){var F=k?Object.getOwnPropertyDescriptor(P,B):null;F&&(F.get||F.set)?Object.defineProperty(D,B,F):D[B]=P[B]}return D.default=P,j&&j.set(P,D),D}var l=e.default||e,u=l.types,o=l.template;function c(P,O){var j=new Set;return P.forEach(function(D){return O.has(D)&&j.add(D)}),j}function f(P,O){return Object.prototype.hasOwnProperty.call(P,O)}function h(P){return Object.prototype.toString.call(P).slice(8,-1)}function m(P){if(P.isIdentifier()&&!P.scope.hasBinding(P.node.name,!0))return P.node.name;if(P.isPure()){var O=P.evaluate(),j=O.deopt;if(j&&j.isIdentifier())return j.node.name}}function g(P,O){O===void 0&&(O=!1);var j=P.scope;if(P.isStringLiteral())return P.node.value;var D=P.isIdentifier();if(D&&!(O||P.parent.computed))return P.node.name;if(O&&P.isMemberExpression()&&P.get("object").isIdentifier({name:"Symbol"})&&!j.hasBinding("Symbol",!0)){var k=g(P.get("property"),P.node.computed);if(k)return"Symbol."+k}if(D?j.hasBinding(P.node.name,!0):P.isPure()){var B=P.evaluate(),F=B.value;if(typeof F=="string")return F}}function x(P){if(P.isMemberExpression()&&P.get("property").isIdentifier({name:"prototype"})){var O=m(P.get("object"));return O?{id:O,placement:"prototype"}:{id:null,placement:null}}var j=m(P);if(j)return{id:j,placement:"static"};if(P.isRegExpLiteral())return{id:"RegExp",placement:"prototype"};if(P.isFunction())return{id:"Function",placement:"prototype"};if(P.isPure()){var D=P.evaluate(),k=D.value;if(k!==void 0)return{id:h(k),placement:"prototype"}}return{id:null,placement:null}}function R(P){var O=P.node;if(O.specifiers.length===0)return O.source.value}function w(P){var O=P.node;if(u.isExpressionStatement(O)){var j=O.expression;if(u.isCallExpression(j)&&u.isIdentifier(j.callee)&&j.callee.name==="require"&&j.arguments.length===1&&u.isStringLiteral(j.arguments[0]))return j.arguments[0].value}}function T(P){return P._blockHoist=3,P}function I(P){return function(O){var j=O.findParent(function(D){return D.isProgram()});return{injectGlobalImport:function(k,B){P.storeAnonymous(j,k,B,function(F,L){return F?o.statement.ast(vce||(vce=se(["require(",")"])),L):u.importDeclaration([],L)})},injectNamedImport:function(k,B,F,L){return F===void 0&&(F=B),P.storeNamed(j,k,B,L,function(V,H,K){var G=j.scope.generateUidIdentifier(F);return{node:V?T(o.statement.ast(bce||(bce=se([` + var `," = require(",").",` + `])),G,H,K)):u.importDeclaration([u.importSpecifier(G,K)],H),name:G.name}})},injectDefaultImport:function(k,B,F){return B===void 0&&(B=k),P.storeNamed(j,k,"default",F,function(L,V){var H=j.scope.generateUidIdentifier(B);return{node:L?T(o.statement.ast(xce||(xce=se(["var "," = require(",")"])),H,V)):u.importDeclaration([u.importDefaultSpecifier(H)],V),name:H.name}})}}}}return ho}var ym={},Ece;function Irt(){if(Ece)return ym;Ece=1,ym.__esModule=!0,ym.default=void 0;var e=s(Qo);function r(c){if(typeof WeakMap!="function")return null;var f=new WeakMap,h=new WeakMap;return(r=function(g){return g?h:f})(c)}function s(c,f){if(c&&c.__esModule)return c;if(c===null||typeof c!="object"&&typeof c!="function")return{default:c};var h=r(f);if(h&&h.has(c))return h.get(c);var m={},g=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var x in c)if(x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)){var R=g?Object.getOwnPropertyDescriptor(c,x):null;R&&(R.get||R.set)?Object.defineProperty(m,x,R):m[x]=c[x]}return m.default=c,h&&h.set(c,m),m}var l=e.default||e,u=l.types,o=function(){function c(h,m){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=h,this._getPreferredIndex=m}var f=c.prototype;return f.storeAnonymous=function(m,g,x,R){var w=this._normalizeKey(m,g),T=this._ensure(this._anonymousImports,m,Set);if(!T.has(w)){var I=R(m.node.sourceType==="script",u.stringLiteral(this._resolver(g)));T.add(w),this._injectImport(m,I,x)}},f.storeNamed=function(m,g,x,R,w){var T=this._normalizeKey(m,g,x),I=this._ensure(this._imports,m,Map);if(!I.has(T)){var P=w(m.node.sourceType==="script",u.stringLiteral(this._resolver(g)),u.identifier(x)),O=P.node,j=P.name;I.set(T,j),this._injectImport(m,O,R)}return u.identifier(I.get(T))},f._injectImport=function(m,g,x){var R,w=this._getPreferredIndex(x),T=(R=this._lastImports.get(m))!=null?R:[],I=function(J){return J.node&&J.parent===m.node&&J.container===m.node.body},P;if(w===1/0)T.length>0&&(P=T[T.length-1].path,I(P)||(P=void 0));else for(var O=C(T.entries()),j;!(j=O()).done;){var D=je(j.value,2),k=D[0],B=D[1],F=B.path,L=B.index;if(I(F)){if(w<L){var V=F.insertBefore(g),H=je(V,1),K=H[0];T.splice(k,0,{path:K,index:w});return}P=F}}if(P){var G=P.insertAfter(g),X=je(G,1),ue=X[0];T.push({path:ue,index:w})}else{var oe=m.unshiftContainer("body",g),he=je(oe,1),te=he[0];this._lastImports.set(m,[{path:te,index:w}])}},f._ensure=function(m,g,x){var R=m.get(g);return R||(R=new x,m.set(g,R)),R},f._normalizeKey=function(m,g,x){x===void 0&&(x="");var R=m.node.sourceType;return(x&&R)+"::"+g+"::"+x},_(c)}();return ym.default=o,ym}var Nc={},Sce;function Crt(){if(Sce)return Nc;Sce=1,Nc.__esModule=!0,Nc.presetEnvSilentDebugHeader=void 0,Nc.stringifyTargets=l,Nc.stringifyTargetsMultiline=s;var e=qv,r="#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets";Nc.presetEnvSilentDebugHeader=r;function s(u){return JSON.stringify((0,e.prettifyTargets)(u),null,2)}function l(u){return JSON.stringify(u).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }')}return Nc}var gm={},Tce;function jrt(){if(Tce)return gm;Tce=1,gm.__esModule=!0,gm.applyMissingDependenciesDefaults=o,gm.validateIncludeExclude=u;var e=mm();function r(c){if(c instanceof RegExp)return c;try{return new RegExp("^"+c+"$")}catch{return null}}function s(c,f){return f.length?' - The following "'+c+`" patterns didn't match any polyfill: +`+f.map(function(h){return" "+String(h)+` +`}).join(""):""}function l(c){return c.size?` - The following polyfills were matched both by "include" and "exclude" patterns: +`+Array.from(c,function(f){return" "+f+` +`}).join(""):""}function u(c,f,h,m){var g,x=function(j){var D=r(j);if(!D)return!1;for(var k=!1,B=C(f.keys()),F;!(F=B()).done;){var L=F.value;D.test(L)&&(k=!0,g.add(L))}return!k},R=g=new Set,w=Array.from(h).filter(x),T=g=new Set,I=Array.from(m).filter(x),P=(0,e.intersection)(R,T);if(P.size>0||w.length>0||I.length>0)throw new Error('Error while validating the "'+c+`" provider options: +`+s("include",w)+s("exclude",I)+l(P));return{include:R,exclude:T}}function o(c,f){var h=c.missingDependencies,m=h===void 0?{}:h;if(m===!1)return!1;var g=f.caller(function(O){return O==null?void 0:O.name}),x=m.log,R=x===void 0?"deferred":x,w=m.inject,T=w===void 0?g==="rollup-plugin-babel"?"throw":"import":w,I=m.all,P=I===void 0?!1:I;return{log:R,inject:T,all:P}}return gm}var kc={},vm={},wce;function Ort(){if(wce)return vm;wce=1,vm.__esModule=!0,vm.default=void 0;var e=mm();function r(l){if(l.removed)return!0;if(!l.parentPath)return!1;if(l.listKey){var u;if(!((u=l.parentPath.node)!=null&&(u=u[l.listKey])!=null&&u.includes(l.node)))return!0}else if(l.parentPath.node[l.key]!==l.node)return!0;return r(l.parentPath)}var s=function(u){function o(h,m,g,x){return u({kind:"property",object:h,key:m,placement:g},x)}function c(h){var m=h.node.name,g=h.scope;g.getBindingIdentifier(m)||u({kind:"global",name:m},h)}function f(h){var m=(0,e.resolveKey)(h.get("property"),h.node.computed);return{key:m,handleAsMemberExpression:!!m&&m!=="prototype"}}return{ReferencedIdentifier:function(m){var g=m.parentPath;g.isMemberExpression({object:m.node})&&f(g).handleAsMemberExpression||c(m)},MemberExpression:function(m){var g=f(m),x=g.key,R=g.handleAsMemberExpression;if(R){var w=m.get("object"),T=w.isIdentifier();if(T){var I=w.scope.getBinding(w.node.name);if(I){if(I.path.isImportNamespaceSpecifier())return;T=!1}}var P=(0,e.resolveSource)(w),O=o(P.id,x,P.placement,m);O||(O=!T||m.shouldSkip||w.shouldSkip||r(w)),O||c(w)}},ObjectPattern:function(m){var g=m.parentPath,x=m.parent,R;if(g.isVariableDeclarator())R=g.get("init");else if(g.isAssignmentExpression())R=g.get("right");else if(g.isFunction()){var w=g.parentPath;(w.isCallExpression()||w.isNewExpression())&&w.node.callee===x&&(R=w.get("arguments")[m.key])}var T=null,I=null;if(R){var P=(0,e.resolveSource)(R);T=P.id,I=P.placement}for(var O=C(m.get("properties")),j;!(j=O()).done;){var D=j.value;if(D.isObjectProperty()){var k=(0,e.resolveKey)(D.get("key"));k&&o(T,k,I,D)}}},BinaryExpression:function(m){if(m.node.operator==="in"){var g=(0,e.resolveSource)(m.get("right")),x=(0,e.resolveKey)(m.get("left"),!0);x&&u({kind:"in",object:g.id,key:x,placement:g.placement},m)}}}};return vm.default=s,vm}var bm={},Pce;function _rt(){if(Pce)return bm;Pce=1,bm.__esModule=!0,bm.default=void 0;var e=mm(),r=function(l){return{ImportDeclaration:function(o){var c=(0,e.getImportSource)(o);c&&l({kind:"import",source:c},o)},Program:function(o){o.get("body").forEach(function(c){var f=(0,e.getRequireSource)(c);f&&l({kind:"import",source:f},c)})}}};return bm.default=r,bm}var Ace;function Nrt(){if(Ace)return kc;Ace=1,kc.__esModule=!0,kc.usage=kc.entry=void 0;var e=s(Ort());kc.usage=e.default;var r=s(_rt());kc.entry=r.default;function s(l){return l&&l.__esModule?l:{default:l}}return kc}var Dc={},Ice;function krt(){if(Ice)return Dc;Ice=1,Dc.__esModule=!0,Dc.has=r,Dc.laterLogMissing=l,Dc.logMissing=s,Dc.resolve=e;function e(u,o,c){if(c===!1)return o;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}function r(u,o){return!0}function s(u){}function l(u){}return Dc}var Jv={},Cce;function Drt(){if(Cce)return Jv;Cce=1,Jv.__esModule=!0,Jv.default=s;var e=mm(),r=new Set(["global","globalThis","self","window"]);function s(l){var u=l.static,o=l.instance,c=l.global;return function(f){if(f.kind==="global"&&c&&(0,e.has)(c,f.name))return{kind:"global",desc:c[f.name],name:f.name};if(f.kind==="property"||f.kind==="in"){var h=f.placement,m=f.object,g=f.key;if(m&&h==="static"){if(c&&r.has(m)&&(0,e.has)(c,g))return{kind:"global",desc:c[g],name:g};if(u&&(0,e.has)(u,m)&&(0,e.has)(u[m],g))return{kind:"static",desc:u[m][g],name:m+"$"+g}}if(o&&(0,e.has)(o,g))return{kind:"instance",desc:o[g],name:""+g}}}}return Jv}var jce;function Oce(){if(jce)return Xv;jce=1,Xv.__esModule=!0,Xv.default=O;var e=Nle,r=R(qv),s=mm(),l=g(Irt()),u=Crt(),o=jrt(),c=R(Nrt()),f=R(krt()),h=g(Drt()),m=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"];function g(k){return k&&k.__esModule?k:{default:k}}function x(k){if(typeof WeakMap!="function")return null;var B=new WeakMap,F=new WeakMap;return(x=function(V){return V?F:B})(k)}function R(k,B){if(k&&k.__esModule)return k;if(k===null||typeof k!="object"&&typeof k!="function")return{default:k};var F=x(B);if(F&&F.has(k))return F.get(k);var L={},V=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var H in k)if(H!=="default"&&Object.prototype.hasOwnProperty.call(k,H)){var K=V?Object.getOwnPropertyDescriptor(k,H):null;K&&(K.get||K.set)?Object.defineProperty(L,H,K):L[H]=k[H]}return L.default=k,F&&F.set(k,L),L}function w(k,B){if(k==null)return{};var F={},L=Object.keys(k),V,H;for(H=0;H<L.length;H++)V=L[H],!(B.indexOf(V)>=0)&&(F[V]=k[V]);return F}var T=r.default.default||r.default;function I(k,B){var F=k.method,L=k.targets,V=k.ignoreBrowserslistConfig,H=k.configPath,K=k.debug,G=k.shouldInjectPolyfill,X=k.absoluteImports,ue=w(k,m);if(D(k))throw new Error(`This plugin requires options, for example: + { + "plugins": [ + ["<plugin name>", { method: "usage-pure" }] + ] + } + +See more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);var oe;if(F==="usage-global")oe="usageGlobal";else if(F==="entry-global")oe="entryGlobal";else if(F==="usage-pure")oe="usagePure";else throw typeof F!="string"?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global"'+(' or "usage-pure" (received '+JSON.stringify(F)+")"));if(typeof G=="function"){if(k.include||k.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(G!=null)throw new Error(".shouldInjectPolyfill must be a function, or undefined"+(" (received "+JSON.stringify(G)+")"));if(X!=null&&typeof X!="boolean"&&typeof X!="string")throw new Error(".absoluteImports must be a boolean, a string, or undefined"+(" (received "+JSON.stringify(X)+")"));var he;if(L||H||V){var te=typeof L=="string"||Array.isArray(L)?{browsers:L}:L;he=T(te,{ignoreBrowserslistConfig:V,configPath:H})}else he=B.targets();return{method:F,methodName:oe,targets:he,absoluteImports:X??!1,shouldInjectPolyfill:G,debug:!!K,providerOptions:ue}}function P(k,B,F,L,V,H){var K=I(B,H),G=K.method,X=K.methodName,ue=K.targets,oe=K.debug,he=K.shouldInjectPolyfill,te=K.providerOptions,ae=K.absoluteImports,J,xe,de,$e,Ve,Ie=(0,s.createUtilsGetter)(new l.default(function(It){return f.resolve(L,It,ae)},function(It){var tt,Ft;return(tt=(Ft=$e)==null?void 0:Ft.get(It))!=null?tt:1/0})),ke=new Map,Le={babel:H,getUtils:Ie,method:B.method,targets:ue,createMetaResolver:h.default,shouldInjectPolyfill:function(tt){if($e===void 0)throw new Error("Internal error in the "+k.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if($e.has(tt)||console.warn("Internal error in the "+at+" provider: "+('unknown polyfill "'+tt+'".')),Ve&&!Ve(tt))return!1;var Ft=(0,r.isRequired)(tt,ue,{compatData:de,includes:J,excludes:xe});if(he&&(Ft=he(tt,Ft),typeof Ft!="boolean"))throw new Error(".shouldInjectPolyfill must return a boolean.");return Ft},debug:function(tt){var Ft,rr;V().found=!0,!(!oe||!tt)&&(V().polyfills.has(at)||(V().polyfills.add(tt),(rr=(Ft=V()).polyfillsSupport)!=null||(Ft.polyfillsSupport=de)))},assertDependency:function(tt,Ft){if(Ft===void 0&&(Ft="*"),F!==!1&&!ae){var rr=Ft==="*"?tt:tt+"@^"+Ft,$t=F.all?!1:j(ke,tt+" :: "+L,function(){return f.has(L,tt)});$t||V().missingDeps.add(rr)}}},Ze=k(Le,te,L),at=Ze.name||k.name;if(typeof Ze[X]!="function")throw new Error('The "'+at+`" provider doesn't support the "`+G+'" polyfilling method.');Array.isArray(Ze.polyfills)?($e=new Map(Ze.polyfills.map(function(It,tt){return[It,tt]})),Ve=Ze.filterPolyfills):Ze.polyfills?($e=new Map(Object.keys(Ze.polyfills).map(function(It,tt){return[It,tt]})),de=Ze.polyfills,Ve=Ze.filterPolyfills):$e=new Map;var lt=(0,o.validateIncludeExclude)(at,$e,te.include||[],te.exclude||[]);J=lt.include,xe=lt.exclude;var gt;return X==="usageGlobal"?gt=function(tt,Ft){var rr,$t=Ie(Ft);return(rr=Ze[X](tt,$t,Ft))!=null?rr:!1}:gt=function(tt,Ft){var rr=Ie(Ft);return Ze[X](tt,rr,Ft),!1},{debug:oe,method:G,targets:ue,provider:Ze,providerName:at,callProvider:gt}}function O(k){return(0,e.declare)(function(B,F,L){B.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var V=B.traverse,H,K=(0,o.applyMissingDependenciesDefaults)(F,B),G=P(k,F,K,L,function(){return H},B),X=G.debug,ue=G.method,oe=G.targets,he=G.provider,te=G.providerName,ae=G.callProvider,J=ue==="entry-global"?c.entry:c.usage,xe=he.visitor?V.visitors.merge([J(ae),he.visitor]):J(ae);X&&X!==u.presetEnvSilentDebugHeader&&(console.log(te+": `DEBUG` option"),console.log(` +Using targets: `+(0,u.stringifyTargetsMultiline)(oe)),console.log("\nUsing polyfills with `"+ue+"` method:"));var de=he.runtimeName;return{name:"inject-polyfills",visitor:xe,pre:function(Ve){var Ie;de&&(Ve.get("runtimeHelpersModuleName")&&Ve.get("runtimeHelpersModuleName")!==de?console.warn("Two different polyfill providers"+(" ("+Ve.get("runtimeHelpersModuleProvider"))+(" and "+te+") are trying to define two")+" conflicting @babel/runtime alternatives:"+(" "+Ve.get("runtimeHelpersModuleName")+" and "+de+".")+" The second one will be ignored."):(Ve.set("runtimeHelpersModuleName",de),Ve.set("runtimeHelpersModuleProvider",te))),H={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},(Ie=he.pre)==null||Ie.apply(this,arguments)},post:function(){var Ve;if((Ve=he.post)==null||Ve.apply(this,arguments),K!==!1&&(K.log==="per-file"?f.logMissing(H.missingDeps):f.laterLogMissing(H.missingDeps)),!!X){if(this.filename&&console.log(` +[`+this.filename+"]"),H.polyfills.size===0){console.log(ue==="entry-global"?H.found?"Based on your targets, the "+te+" polyfill did not add any polyfill.":"The entry point for the "+te+" polyfill has not been found.":"Based on your code and targets, the "+te+" polyfill did not add any polyfill.");return}console.log(ue==="entry-global"?"The "+te+" polyfill entry has been replaced with the following polyfills:":"The "+te+" polyfill added the following polyfills:");for(var Ie=C(H.polyfills),ke;!(ke=Ie()).done;){var Le=ke.value,Ze;if((Ze=H.polyfillsSupport)!=null&&Ze[Le]){var at=(0,r.getInclusionReasons)(Le,oe,H.polyfillsSupport),lt=JSON.stringify(at).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+Le+" "+lt)}else console.log(" "+Le)}}}}})}function j(k,B,F){var L=k.get(B);return L===void 0&&(L=F(),k.set(B,L)),L}function D(k){return Object.keys(k).length===0}return Xv}var _ce;function Lrt(){if(_ce)return hm;_ce=1,hm.__esModule=!0,hm.default=void 0;var e=h(tm()),r=Trt(),s=h(wrt()),l=Art(),u=h(Oce()),o=f(Qo);function c(P){if(typeof WeakMap!="function")return null;var O=new WeakMap,j=new WeakMap;return(c=function(k){return k?j:O})(P)}function f(P,O){if(P&&P.__esModule)return P;if(P===null||typeof P!="object"&&typeof P!="function")return{default:P};var j=c(O);if(j&&j.has(P))return j.get(P);var D={},k=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var B in P)if(B!=="default"&&Object.prototype.hasOwnProperty.call(P,B)){var F=k?Object.getOwnPropertyDescriptor(P,B):null;F&&(F.get||F.set)?Object.defineProperty(D,B,F):D[B]=P[B]}return D.default=P,j&&j.set(P,D),D}function h(P){return P&&P.__esModule?P:{default:P}}var m=o.default||o,g=m.types,x="@babel/runtime-corejs2",R="#__secret_key__@babel/preset-env__compatibility",w="#__secret_key__@babel/runtime__compatibility",T=Function.call.bind(Object.hasOwnProperty),I=(0,u.default)(function(P,O){var j=O[R],D=j===void 0?{}:j,k=D.entryInjectRegenerator,B=k===void 0?!1:k,F=D.noRuntimeName,L=F===void 0?!1:F,V=O[w],H=V===void 0?{}:V,K=H.useBabelRuntime,G=K===void 0?!1:K,X=H.runtimeVersion,ue=X===void 0?"":X,oe=H.ext,he=oe===void 0?".js":oe,te=P.createMetaResolver({global:r.BuiltIns,static:r.StaticProperties,instance:r.InstanceProperties}),ae=P.debug,J=P.shouldInjectPolyfill,xe=P.method,de=(0,s.default)(P.targets,xe,e.default),$e=G?x+"/core-js":xe==="usage-pure"?"core-js/library/fn":"core-js/modules";function Ve(ke,Le){if(typeof ke=="string"){T(de,ke)&&J(ke)&&(ae(ke),Le.injectGlobalImport($e+"/"+ke+".js"));return}ke.forEach(function(Ze){return Ve(Ze,Le)})}function Ie(ke,Le,Ze){var at=ke.pure,lt=ke.meta,gt=ke.name;if(!(!at||!J(gt))&&!(ue&<&<.minRuntimeVersion&&!(0,l.hasMinVersion)(lt&<.minRuntimeVersion,ue)))return G&&at==="symbol/index"&&(at="symbol"),Ze.injectDefaultImport($e+"/"+at+he,Le)}return{name:"corejs2",runtimeName:L?null:x,polyfills:de,entryGlobal:function(Le,Ze,at){Le.kind==="import"&&Le.source==="core-js"&&(ae(null),Ve(Object.keys(de),Ze),B&&Ze.injectGlobalImport("regenerator-runtime/runtime.js"),at.remove())},usageGlobal:function(Le,Ze){var at=te(Le);if(at){var lt=at.desc.global;if(at.kind!=="global"&&"object"in Le&&Le.object&&Le.placement==="prototype"){var gt=Le.object.toLowerCase();lt=lt.filter(function(It){return It.includes(gt)})}Ve(lt,Ze)}},usagePure:function(Le,Ze,at){if(Le.kind==="in"){Le.key==="Symbol.iterator"&&at.replaceWith(g.callExpression(Ze.injectDefaultImport($e+"/is-iterable"+he,"isIterable"),[at.node.right]));return}if(!at.parentPath.isUnaryExpression({operator:"delete"})){if(Le.kind==="property"){if(!at.isMemberExpression()||!at.isReferenced())return;if(Le.key==="Symbol.iterator"&&J("es6.symbol")&&at.parentPath.isCallExpression({callee:at.node})&&at.parentPath.node.arguments.length===0){at.parentPath.replaceWith(g.callExpression(Ze.injectDefaultImport($e+"/get-iterator"+he,"getIterator"),[at.node.object])),at.skip();return}}var lt=te(Le);if(lt){var gt=Ie(lt.desc,lt.name,Ze);gt&&at.replaceWith(gt)}}},visitor:xe==="usage-global"&&{YieldExpression:function(Le){Le.node.delegate&&Ve("web.dom.iterable",P.getUtils(Le))},"ForOfStatement|ArrayPattern":function(Le){r.CommonIterators.forEach(function(Ze){return Ve(Ze,P.getUtils(Le))})}}}});return hm.default=I,hm}var b_,Nce;function Mrt(){if(Nce)return b_;Nce=1;function e(r){return r==null?!1:r&&r!=="false"&&r!=="0"}return b_=e(er.env.BABEL_8_BREAKING)?null:Lrt(),b_}var xm={},kce;function Brt(){if(kce)return xm;kce=1,xm.__esModule=!0,xm.default=void 0;var e=r(Oce());function r(c){return c&&c.__esModule?c:{default:c}}var s="#__secret_key__@babel/runtime__compatibility",l=(0,e.default)(function(c,f){var h=c.debug,m=c.targets,g=c.babel;if(!o(m,g.targets()))throw new Error("This plugin does not use the targets option. Only preset-env's targets or top-level targets need to be configured for this plugin to work. See https://github.com/babel/babel-polyfills/issues/36 for more details.");var x=f[s],R=x===void 0?{}:x,w=R.moduleName,T=w===void 0?null:w,I=R.useBabelRuntime,P=I===void 0?!1:I;return{name:"regenerator",polyfills:["regenerator-runtime"],usageGlobal:function(j,D){u(j)&&(h("regenerator-runtime"),D.injectGlobalImport("regenerator-runtime/runtime.js"))},usagePure:function(j,D,k){if(u(j)){var B="regenerator-runtime";if(P){var F,L=(F=T??k.hub.file.get("runtimeHelpersModuleName"))!=null?F:"@babel/runtime";B=L+"/regenerator"}k.replaceWith(D.injectDefaultImport(B,"regenerator-runtime"))}}}});xm.default=l;var u=function(f){return f.kind==="global"&&f.name==="regeneratorRuntime"};function o(c,f){return JSON.stringify(c)===JSON.stringify(f)}return xm}var x_,Dce;function Frt(){if(Dce)return x_;Dce=1;function e(r){return r==null?!1:r&&r!=="false"&&r!=="0"}return x_=e(er.env.BABEL_8_BREAKING)?null:Brt(),x_}var Rm={},Lce;function Mce(){return Lce||(Lce=1,Rm.getImportSource=function(e){var r=e.node;if(r.specifiers.length===0)return r.source.value},Rm.getRequireSource=function(e){var r=e.node;if(r.type==="ExpressionStatement"){var s=r.expression;if(s.type==="CallExpression"&&s.callee.type==="Identifier"&&s.callee.name==="require"&&s.arguments.length===1&&s.arguments[0].type==="StringLiteral")return s.arguments[0].value}},Rm.isPolyfillSource=function(e){return e==="@babel/polyfill"||e==="core-js"}),Rm}var Bce,Fce,$ce,qce,R_,Uce;function $rt(){if(Uce)return R_;Uce=1;var e=Mce(),r=e.getImportSource,s=e.getRequireSource,l=e.isPolyfillSource,u="\n `@babel/polyfill` is deprecated. Please, use required parts of `core-js`\n and `regenerator-runtime/runtime` separately",o="\n When setting `useBuiltIns: 'usage'`, polyfills are automatically imported when needed.\n Please remove the direct import of `SPECIFIER` or use `useBuiltIns: 'entry'` instead.";return R_=function(f,h){var m=f.template,g=h.regenerator,x=h.deprecated,R=h.usage;return{name:"preset-env/replace-babel-polyfill",visitor:{ImportDeclaration:function(T){var I=r(T);R&&l(I)?(console.warn(o.replace("SPECIFIER",I)),x||T.remove()):I==="@babel/polyfill"&&(x?console.warn(u):g?T.replaceWithMultiple(m.ast(Bce||(Bce=se([` + import "core-js"; + import "regenerator-runtime/runtime.js"; + `])))):T.replaceWith(m.ast(Fce||(Fce=se([` + import "core-js"; + `])))))},Program:function(T){T.get("body").forEach(function(I){var P=s(I);R&&l(P)?(console.warn(o.replace("SPECIFIER",P)),x||I.remove()):P==="@babel/polyfill"&&(x?console.warn(u):g?I.replaceWithMultiple(m.ast($ce||($ce=se([` + require("core-js"); + require("regenerator-runtime/runtime.js"); + `])))):I.replaceWith(m.ast(qce||(qce=se([` + require("core-js"); + `])))))})}}}},R_}var E_,Vce;function qrt(){if(Vce)return E_;Vce=1;var e=Mce(),r=e.getImportSource,s=e.getRequireSource;function l(u){return u==="regenerator-runtime/runtime"||u==="regenerator-runtime/runtime.js"}return E_=function(){var o={ImportDeclaration:function(f){l(r(f))&&(this.regeneratorImportExcluded=!0,f.remove())},Program:function(f){var h=this;f.get("body").forEach(function(m){l(s(m))&&(h.regeneratorImportExcluded=!0,m.remove())})}};return{name:"preset-env/remove-regenerator",visitor:o,pre:function(){this.regeneratorImportExcluded=!1},post:function(){if(this.opts.debug&&this.regeneratorImportExcluded){var f=this.file.opts.filename;er.env.BABEL_ENV==="test"&&(f=f.replace(/\\/g,"/")),console.log(` +[`+f+"] Based on your targets, regenerator-runtime import excluded.")}}}},E_}(function(e){Object.defineProperties(e,{pluginCoreJS2:{get:function(){return Mrt().default}},pluginRegenerator:{get:function(){return Frt().default}},legacyBabelPolyfillPlugin:{get:function(){return $rt()}},removeRegeneratorEntryPlugin:{get:function(){return qrt()}},corejs2Polyfills:{get:function(){return tm()}}})})(fo);var $s=new nu("@babel/preset-env"),Urt=Object.keys(fm),Vrt=["transform-dynamic-import"].concat(fe(Object.keys(y_).map(function(e){return y_[e]}))),Wrt=function(r,s){var l=new Set(Urt);return r==="exclude"&&Vrt.map(l.add,l),s&&(s===2?(Object.keys(fo.corejs2Polyfills).map(l.add,l),l.add("web.timers").add("web.immediate").add("web.dom.iterable")):Object.keys(LO).map(l.add,l)),Array.from(l)};function Grt(e,r){return Array.prototype.concat.apply([],e.map(r))}var Krt=function(r){return r.replace(/^(?:@babel\/|babel-)(?:plugin-)?/,"")},Wce=function(r,s,l){if(r===void 0&&(r=[]),r.length===0)return[];var u=Wrt(s,l),o=[],c=Grt(r,function(f){var h;if(typeof f=="string")try{h=new RegExp("^"+Krt(f)+"$")}catch{return o.push(f),[]}else h=f;var m=u.filter(function(g){return h.test(g)||h.test(g.replace(/^transform-/,"proposal-"))});return m.length===0&&o.push(f),m});return $s.invariant(o.length===0,"The plugins/built-ins '"+o.join(", ")+"' passed to the '"+s+`' option are not + valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`),c},Hrt=function(r,s){r===void 0&&(r=[]),s===void 0&&(s=[]);var l=r.filter(function(u){return s.includes(u)});$s.invariant(l.length===0,"The plugins/built-ins '"+l.join(", ")+`' were found in both the "include" and + "exclude" options.`)},zrt=function(r){return typeof r=="string"||Array.isArray(r)?{browsers:r}:Object.assign({},r)},Xrt=function(r){return r===void 0&&(r=v_.auto),$s.invariant(v_[r.toString()]||r===v_.false,`The 'modules' option must be one of + - 'false' to indicate no module processing + - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs' - 'auto' (default) which will automatically select 'false' if the current + process is known to support ES module syntax, or "commonjs" otherwise +`),r},Jrt=function(r){return r===void 0&&(r=!1),$s.invariant(fce[r.toString()]||r===fce.false,`The 'useBuiltIns' option must be either + 'false' (default) to indicate no polyfill, + '"entry"' to indicate replacing the entry polyfill, or + '"usage"' to import only used polyfills per file`),r};function Yrt(e,r){var s=!1,l;r&&e===void 0?(l=2,console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a core-js version. Currently, we assume version 2.x when no version is passed. Since this default version will likely change in future versions of Babel, we recommend explicitly setting the core-js version you are using via the `corejs` option.\n\nYou should also be sure that the version you pass to the `corejs` option matches the version specified in your `package.json`'s `dependencies` section. If it doesn't, you need to run one of the following commands:\n\n npm install --save core-js@2 npm install --save core-js@3\n yarn add core-js@2 yarn add core-js@3\n\nMore info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\nMore info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs")):typeof e=="object"&&e!==null?(l=e.version,s=!!e.proposals):l=e;var u=l?i_.coerce(String(l)):!1;if(u)if(r){if(u.major<2||u.major>3)throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, only core-js@2 and core-js@3 are supported.")}else console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n");return{version:u,proposals:s}}function Qrt(e){$s.validateTopLevelOptions(e,Wi);var r=Jrt(e.useBuiltIns),s=Yrt(e.corejs,r),l=Wce(e.include,Wi.include,!!s.version&&s.version.major),u=Wce(e.exclude,Wi.exclude,!!s.version&&s.version.major);return Hrt(l,u),$s.validateBooleanOption("loose",e.loose),$s.validateBooleanOption("spec",e.spec),{bugfixes:$s.validateBooleanOption(Wi.bugfixes,e.bugfixes,!1),configPath:$s.validateStringOption(Wi.configPath,e.configPath,er.cwd()),corejs:s,debug:$s.validateBooleanOption(Wi.debug,e.debug,!1),include:l,exclude:u,forceAllTransforms:$s.validateBooleanOption(Wi.forceAllTransforms,e.forceAllTransforms,!1),ignoreBrowserslistConfig:$s.validateBooleanOption(Wi.ignoreBrowserslistConfig,e.ignoreBrowserslistConfig,!1),modules:Xrt(e.modules),shippedProposals:$s.validateBooleanOption(Wi.shippedProposals,e.shippedProposals,!1),targets:zrt(e.targets),useBuiltIns:r,browserslistEnv:$s.validateStringOption(Wi.browserslistEnv,e.browserslistEnv)}}var Gce=new Set,Zrt=["syntax-import-assertions","syntax-import-attributes"],Kce={"transform-async-generator-functions":"syntax-async-generators","transform-class-properties":"syntax-class-properties","transform-class-static-block":"syntax-class-static-block","transform-export-namespace-from":"syntax-export-namespace-from","transform-json-strings":"syntax-json-strings","transform-nullish-coalescing-operator":"syntax-nullish-coalescing-operator","transform-numeric-separator":"syntax-numeric-separator","transform-object-rest-spread":"syntax-object-rest-spread","transform-optional-catch-binding":"syntax-optional-catch-binding","transform-optional-chaining":"syntax-optional-chaining","transform-private-methods":"syntax-class-properties","transform-private-property-in-object":"syntax-private-property-in-object","transform-unicode-property-regex":null},eat=Object.keys(Kce).map(function(e){return[e,Kce[e]]}),tat=new Map(eat),Yv=LO,rat=Zle,Hce=nue,aat=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"],zce,Xce,Jce,Yce=d,el=Yce.types,S_=Yce.template;function nat(e,r){var s=new Set;return e.forEach(function(l){return r.has(l)&&s.add(l)}),s}function Em(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function sat(e){return Object.prototype.toString.call(e).slice(8,-1)}function Qce(e){if(e.isIdentifier()&&!e.scope.hasBinding(e.node.name,!0))return e.node.name;if(e.isPure()){var r=e.evaluate(),s=r.deopt;if(s&&s.isIdentifier())return s.node.name}}function Qv(e,r){r===void 0&&(r=!1);var s=e.scope;if(e.isStringLiteral())return e.node.value;var l=e.isIdentifier();if(l&&!(r||e.parent.computed))return e.node.name;if(r&&e.isMemberExpression()&&e.get("object").isIdentifier({name:"Symbol"})&&!s.hasBinding("Symbol",!0)){var u=Qv(e.get("property"),e.node.computed);if(u)return"Symbol."+u}if(l?s.hasBinding(e.node.name,!0):e.isPure()){var o=e.evaluate(),c=o.value;if(typeof c=="string")return c}}function T_(e){if(e.isMemberExpression()&&e.get("property").isIdentifier({name:"prototype"})){var r=Qce(e.get("object"));return r?{id:r,placement:"prototype"}:{id:null,placement:null}}var s=Qce(e);if(s)return{id:s,placement:"static"};if(e.isRegExpLiteral())return{id:"RegExp",placement:"prototype"};if(e.isFunction())return{id:"Function",placement:"prototype"};if(e.isPure()){var l=e.evaluate(),u=l.value;if(u!==void 0)return{id:sat(u),placement:"prototype"}}return{id:null,placement:null}}function iat(e){var r=e.node;if(r.specifiers.length===0)return r.source.value}function oat(e){var r=e.node;if(el.isExpressionStatement(r)){var s=r.expression;if(el.isCallExpression(s)&&el.isIdentifier(s.callee)&&s.callee.name==="require"&&s.arguments.length===1&&el.isStringLiteral(s.arguments[0]))return s.arguments[0].value}}function Zce(e){return e._blockHoist=3,e}function lat(e){return function(r){var s=r.findParent(function(l){return l.isProgram()});return{injectGlobalImport:function(u,o){e.storeAnonymous(s,u,o,function(c,f){return c?S_.statement.ast(zce||(zce=se(["require(",")"])),f):el.importDeclaration([],f)})},injectNamedImport:function(u,o,c,f){return c===void 0&&(c=o),e.storeNamed(s,u,o,f,function(h,m,g){var x=s.scope.generateUidIdentifier(c);return{node:h?Zce(S_.statement.ast(Xce||(Xce=se([` + var `," = require(",").",` + `])),x,m,g)):el.importDeclaration([el.importSpecifier(x,g)],m),name:x.name}})},injectDefaultImport:function(u,o,c){return o===void 0&&(o=u),e.storeNamed(s,u,"default",c,function(f,h){var m=s.scope.generateUidIdentifier(o);return{node:f?Zce(S_.statement.ast(Jce||(Jce=se(["var "," = require(",")"])),m,h)):el.importDeclaration([el.importDefaultSpecifier(m)],h),name:m.name}})}}}}var uat=d,Zv=uat.types,cat=function(){function e(s,l){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=s,this._getPreferredIndex=l}var r=e.prototype;return r.storeAnonymous=function(l,u,o,c){var f=this._normalizeKey(l,u),h=this._ensure(this._anonymousImports,l,Set);if(!h.has(f)){var m=c(l.node.sourceType==="script",Zv.stringLiteral(this._resolver(u)));h.add(f),this._injectImport(l,m,o)}},r.storeNamed=function(l,u,o,c,f){var h=this._normalizeKey(l,u,o),m=this._ensure(this._imports,l,Map);if(!m.has(h)){var g=f(l.node.sourceType==="script",Zv.stringLiteral(this._resolver(u)),Zv.identifier(o)),x=g.node,R=g.name;m.set(h,R),this._injectImport(l,x,c)}return Zv.identifier(m.get(h))},r._injectImport=function(l,u,o){var c,f=this._getPreferredIndex(o),h=(c=this._lastImports.get(l))!=null?c:[],m=function(X){return X.node&&X.parent===l.node&&X.container===l.node.body},g;if(f===1/0)h.length>0&&(g=h[h.length-1].path,m(g)||(g=void 0));else for(var x=C(h.entries()),R;!(R=x()).done;){var w=je(R.value,2),T=w[0],I=w[1],P=I.path,O=I.index;if(m(P)){if(f<O){var j=P.insertBefore(u),D=je(j,1),k=D[0];h.splice(T,0,{path:k,index:f});return}g=P}}if(g){var B=g.insertAfter(u),F=je(B,1),L=F[0];h.push({path:L,index:f})}else{var V=l.unshiftContainer("body",u),H=je(V,1),K=H[0];this._lastImports.set(l,[{path:K,index:f}])}},r._ensure=function(l,u,o){var c=l.get(u);return c||(c=new o,l.set(u,c)),c},r._normalizeKey=function(l,u,o){o===void 0&&(o="");var c=l.node.sourceType;return(o&&c)+"::"+u+"::"+o},_(e)}(),dat="#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets";function pat(e){return JSON.stringify(D5(e),null,2)}function fat(e){if(e instanceof RegExp)return e;try{return new RegExp("^"+e+"$")}catch{return null}}function ede(e,r){return r.length?' - The following "'+e+`" patterns didn't match any polyfill: +`+r.map(function(s){return" "+String(s)+` +`}).join(""):""}function hat(e){return e.size?` - The following polyfills were matched both by "include" and "exclude" patterns: +`+Array.from(e,function(r){return" "+r+` +`}).join(""):""}function mat(e,r,s,l){var u,o=function(R){var w=fat(R);if(!w)return!1;for(var T=!1,I=C(r.keys()),P;!(P=I()).done;){var O=P.value;w.test(O)&&(T=!0,u.add(O))}return!T},c=u=new Set,f=Array.from(s).filter(o),h=u=new Set,m=Array.from(l).filter(o),g=nat(c,h);if(g.size>0||f.length>0||m.length>0)throw new Error('Error while validating the "'+e+`" provider options: +`+ede("include",f)+ede("exclude",m)+hat(g));return{include:c,exclude:h}}function yat(e,r){var s=e.missingDependencies,l=s===void 0?{}:s;if(l===!1)return!1;var u=r.caller(function(x){return x==null?void 0:x.name}),o=l.log,c=o===void 0?"deferred":o,f=l.inject,h=f===void 0?u==="rollup-plugin-babel"?"throw":"import":f,m=l.all,g=m===void 0?!1:m;return{log:c,inject:h,all:g}}function tde(e){if(e.removed)return!0;if(!e.parentPath)return!1;if(e.listKey){var r;if(!((r=e.parentPath.node)!=null&&(r=r[e.listKey])!=null&&r.includes(e.node)))return!0}else if(e.parentPath.node[e.key]!==e.node)return!0;return tde(e.parentPath)}var gat=function(r){function s(o,c,f,h){return r({kind:"property",object:o,key:c,placement:f},h)}function l(o){var c=o.node.name,f=o.scope;f.getBindingIdentifier(c)||r({kind:"global",name:c},o)}function u(o){var c=Qv(o.get("property"),o.node.computed);return{key:c,handleAsMemberExpression:!!c&&c!=="prototype"}}return{ReferencedIdentifier:function(c){var f=c.parentPath;f.isMemberExpression({object:c.node})&&u(f).handleAsMemberExpression||l(c)},MemberExpression:function(c){var f=u(c),h=f.key,m=f.handleAsMemberExpression;if(m){var g=c.get("object"),x=g.isIdentifier();if(x){var R=g.scope.getBinding(g.node.name);if(R){if(R.path.isImportNamespaceSpecifier())return;x=!1}}var w=T_(g),T=s(w.id,h,w.placement,c);T||(T=!x||c.shouldSkip||g.shouldSkip||tde(g)),T||l(g)}},ObjectPattern:function(c){var f=c.parentPath,h=c.parent,m;if(f.isVariableDeclarator())m=f.get("init");else if(f.isAssignmentExpression())m=f.get("right");else if(f.isFunction()){var g=f.parentPath;(g.isCallExpression()||g.isNewExpression())&&g.node.callee===h&&(m=g.get("arguments")[c.key])}var x=null,R=null;if(m){var w=T_(m);x=w.id,R=w.placement}for(var T=C(c.get("properties")),I;!(I=T()).done;){var P=I.value;if(P.isObjectProperty()){var O=Qv(P.get("key"));O&&s(x,O,R,P)}}},BinaryExpression:function(c){if(c.node.operator==="in"){var f=T_(c.get("right")),h=Qv(c.get("left"),!0);h&&r({kind:"in",object:f.id,key:h,placement:f.placement},c)}}}},vat=function(r){return{ImportDeclaration:function(l){var u=iat(l);u&&r({kind:"import",source:u},l)},Program:function(l){l.get("body").forEach(function(u){var o=oat(u);o&&r({kind:"import",source:o},u)})}}};function bat(e,r,s){if(s===!1)return r;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}function xat(e,r){return!0}function Ywt(e){}function Qwt(e){}var Rat=new Set(["global","globalThis","self","window"]);function Eat(e){var r=e.static,s=e.instance,l=e.global;return function(u){if(u.kind==="global"&&l&&Em(l,u.name))return{kind:"global",desc:l[u.name],name:u.name};if(u.kind==="property"||u.kind==="in"){var o=u.placement,c=u.object,f=u.key;if(c&&o==="static"){if(l&&Rat.has(c)&&Em(l,f))return{kind:"global",desc:l[f],name:f};if(r&&Em(r,c)&&Em(r[c],f))return{kind:"static",desc:r[c][f],name:c+"$"+f}}if(s&&Em(s,f))return{kind:"instance",desc:s[f],name:""+f}}}}var Sat=Mh.default||Mh;function Tat(e,r){var s=e.method,l=e.targets,u=e.ignoreBrowserslistConfig,o=e.configPath,c=e.debug,f=e.shouldInjectPolyfill,h=e.absoluteImports,m=Ge(e,aat);if(Iat(e))throw new Error(`This plugin requires options, for example: + { + "plugins": [ + ["<plugin name>", { method: "usage-pure" }] + ] + } + +See more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);var g;if(s==="usage-global")g="usageGlobal";else if(s==="entry-global")g="entryGlobal";else if(s==="usage-pure")g="usagePure";else throw typeof s!="string"?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global"'+(' or "usage-pure" (received '+JSON.stringify(s)+")"));if(typeof f=="function"){if(e.include||e.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(f!=null)throw new Error(".shouldInjectPolyfill must be a function, or undefined"+(" (received "+JSON.stringify(f)+")"));if(h!=null&&typeof h!="boolean"&&typeof h!="string")throw new Error(".absoluteImports must be a boolean, a string, or undefined"+(" (received "+JSON.stringify(h)+")"));var x;if(l||o||u){var R=typeof l=="string"||Array.isArray(l)?{browsers:l}:l;x=Sat(R,{ignoreBrowserslistConfig:u,configPath:o})}else x=r.targets();return{method:s,methodName:g,targets:x,absoluteImports:h??!1,shouldInjectPolyfill:f,debug:!!c,providerOptions:m}}function wat(e,r,s,l,u,o){var c=Tat(r,o),f=c.method,h=c.methodName,m=c.targets,g=c.debug,x=c.shouldInjectPolyfill,R=c.providerOptions,w=c.absoluteImports,T,I,P,O,j,D=lat(new cat(function(K){return bat(l,K,w)},function(K){var G,X;return(G=(X=O)==null?void 0:X.get(K))!=null?G:1/0})),k=new Map,B={babel:o,getUtils:D,method:r.method,targets:m,createMetaResolver:Eat,shouldInjectPolyfill:function(G){if(O===void 0)throw new Error("Internal error in the "+e.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if(O.has(G)||console.warn("Internal error in the "+L+" provider: "+('unknown polyfill "'+G+'".')),j&&!j(G))return!1;var X=Go(G,m,{compatData:P,includes:T,excludes:I});if(x&&(X=x(G,X),typeof X!="boolean"))throw new Error(".shouldInjectPolyfill must return a boolean.");return X},debug:function(G){var X,ue;u().found=!0,!(!g||!G)&&(u().polyfills.has(L)||(u().polyfills.add(G),(ue=(X=u()).polyfillsSupport)!=null||(X.polyfillsSupport=P)))},assertDependency:function(G,X){if(X===void 0&&(X="*"),s!==!1&&!w){var ue=X==="*"?G:G+"@^"+X,oe=s.all?!1:Aat(k,G+" :: "+l,function(){return xat()});oe||u().missingDeps.add(ue)}}},F=e(B,R,l),L=F.name||e.name;if(typeof F[h]!="function")throw new Error('The "'+L+`" provider doesn't support the "`+f+'" polyfilling method.');Array.isArray(F.polyfills)?(O=new Map(F.polyfills.map(function(K,G){return[K,G]})),j=F.filterPolyfills):F.polyfills?(O=new Map(Object.keys(F.polyfills).map(function(K,G){return[K,G]})),P=F.polyfills,j=F.filterPolyfills):O=new Map;var V=mat(L,O,R.include||[],R.exclude||[]);T=V.include,I=V.exclude;var H;return h==="usageGlobal"?H=function(G,X){var ue,oe=D(X);return(ue=F[h](G,oe,X))!=null?ue:!1}:H=function(G,X){var ue=D(X);return F[h](G,ue,X),!1},{debug:g,method:f,targets:m,provider:F,providerName:L,callProvider:H}}function Pat(e){return function(r,s,l){r.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var u=r.traverse,o,c=yat(s,r),f=wat(e,s,c,l,function(){return o},r),h=f.debug,m=f.method,g=f.targets,x=f.provider,R=f.providerName,w=f.callProvider,T=m==="entry-global"?vat:gat,I=x.visitor?u.visitors.merge([T(w),x.visitor]):T(w);h&&h!==dat&&(console.log(R+": `DEBUG` option"),console.log(` +Using targets: `+pat(g)),console.log("\nUsing polyfills with `"+m+"` method:"));var P=x.runtimeName;return{name:"inject-polyfills",visitor:I,pre:function(j){var D;P&&(j.get("runtimeHelpersModuleName")&&j.get("runtimeHelpersModuleName")!==P?console.warn("Two different polyfill providers"+(" ("+j.get("runtimeHelpersModuleProvider"))+(" and "+R+") are trying to define two")+" conflicting @babel/runtime alternatives:"+(" "+j.get("runtimeHelpersModuleName")+" and "+P+".")+" The second one will be ignored."):(j.set("runtimeHelpersModuleName",P),j.set("runtimeHelpersModuleProvider",R))),o={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},(D=x.pre)==null||D.apply(this,arguments)},post:function(){var j;if((j=x.post)==null||j.apply(this,arguments),c!==!1&&(c.log==="per-file"?(o.missingDeps,void 0):(o.missingDeps,void 0)),!!h){if(this.filename&&console.log(` +[`+this.filename+"]"),o.polyfills.size===0){console.log(m==="entry-global"?o.found?"Based on your targets, the "+R+" polyfill did not add any polyfill.":"The entry point for the "+R+" polyfill has not been found.":"Based on your code and targets, the "+R+" polyfill did not add any polyfill.");return}console.log(m==="entry-global"?"The "+R+" polyfill entry has been replaced with the following polyfills:":"The "+R+" polyfill added the following polyfills:");for(var D=C(o.polyfills),k;!(k=D()).done;){var B=k.value,F;if((F=o.polyfillsSupport)!=null&&F[B]){var L=L5(B,g,o.polyfillsSupport),V=JSON.stringify(L).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+B+" "+V)}else console.log(" "+B)}}}}}}function Aat(e,r,s){var l=e.get(r);return l===void 0&&(l=s(),e.set(r,l)),l}function Iat(e){return Object.keys(e).length===0}var w_,Cat=new Set(["esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.group","esnext.array.group-to-map","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.math.f16round","esnext.promise.try","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata"]),P_={};Object.keys(Yv).forEach(function(e,r){P_[e]=r});var be=function(r,s,l,u){return l===void 0&&(l=s[0]),{name:l,pure:r,global:s.sort(function(o,c){return P_[o]-P_[c]}),exclude:u}},tl=function(){for(var r=arguments.length,s=new Array(r),l=0;l<r;l++)s[l]=arguments[l];return be(null,[].concat(s,yp))},rde=["es.array.iterator","web.dom-collections.iterator"],Lc=["es.string.iterator"].concat(rde),A_=["es.object.to-string"].concat(rde),du=["es.object.to-string"].concat(fe(Lc)),Ti=["es.error.cause","es.error.to-string"],I_=["esnext.suppressed-error.constructor"].concat(Ti),C_=["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],yp=["es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.object.to-string","es.array.iterator","esnext.typed-array.filter-reject","esnext.typed-array.group-by","esnext.typed-array.to-spliced","esnext.typed-array.unique-by"].concat(C_),mo=["es.promise","es.object.to-string"],Mc=[].concat(mo,fe(Lc)),jat=["es.symbol","es.symbol.description","es.object.to-string"],Sm=["es.map","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"].concat(fe(du)),j_=["es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union"].concat(fe(du)),O_=["es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.emplace"].concat(fe(du)),__=["es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all"].concat(fe(du)),eb=["web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","es.error.to-string"],ade=["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"].concat(fe(du)),pu=["esnext.async-iterator.constructor"].concat(mo),nde=["esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some"],hs=["esnext.iterator.constructor","es.object.to-string"],sde=["esnext.symbol.metadata","esnext.function.metadata"],rl=function(r){return{from:be(null,["es.typed-array.from",r].concat(yp)),fromAsync:be(null,["esnext.typed-array.from-async",r].concat(fe(Mc),yp)),of:be(null,["es.typed-array.of",r].concat(yp))}},Tm=["es.data-view"].concat(C_),Oat={AsyncDisposableStack:be("async-disposable-stack/index",["esnext.async-disposable-stack.constructor","es.object.to-string","esnext.async-iterator.async-dispose","esnext.iterator.dispose"].concat(mo,fe(I_))),AsyncIterator:be("async-iterator/index",pu),AggregateError:be("aggregate-error",["es.aggregate-error"].concat(Ti,fe(du),["es.aggregate-error.cause"])),ArrayBuffer:be(null,C_),DataView:be(null,Tm),Date:be(null,["es.date.to-string"]),DOMException:be("dom-exception/index",eb),DisposableStack:be("disposable-stack/index",["esnext.disposable-stack.constructor","es.object.to-string","esnext.iterator.dispose"].concat(fe(I_))),Error:be(null,Ti),EvalError:be(null,Ti),Float32Array:tl("es.typed-array.float32-array"),Float64Array:tl("es.typed-array.float64-array"),Int8Array:tl("es.typed-array.int8-array"),Int16Array:tl("es.typed-array.int16-array"),Int32Array:tl("es.typed-array.int32-array"),Iterator:be("iterator/index",hs),Uint8Array:tl("es.typed-array.uint8-array","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"),Uint8ClampedArray:tl("es.typed-array.uint8-clamped-array"),Uint16Array:tl("es.typed-array.uint16-array"),Uint32Array:tl("es.typed-array.uint32-array"),Map:be("map/index",Sm),Number:be(null,["es.number.constructor"]),Observable:be("observable/index",["esnext.observable","esnext.symbol.observable","es.object.to-string"].concat(fe(du))),Promise:be("promise/index",mo),RangeError:be(null,Ti),ReferenceError:be(null,Ti),Reflect:be(null,["es.reflect.to-string-tag","es.object.to-string"]),RegExp:be(null,["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky","es.regexp.to-string"]),Set:be("set/index",j_),SuppressedError:be("suppressed-error",I_),Symbol:be("symbol/index",jat),SyntaxError:be(null,Ti),TypeError:be(null,Ti),URIError:be(null,Ti),URL:be("url/index",["web.url","web.url.to-json"].concat(fe(ade))),URLSearchParams:be("url-search-params/index",ade),WeakMap:be("weak-map/index",O_),WeakSet:be("weak-set/index",__),atob:be("atob",["web.atob"].concat(eb)),btoa:be("btoa",["web.btoa"].concat(eb)),clearImmediate:be("clear-immediate",["web.immediate"]),compositeKey:be("composite-key",["esnext.composite-key"]),compositeSymbol:be("composite-symbol",["esnext.composite-symbol"]),escape:be("escape",["es.escape"]),fetch:be(null,mo),globalThis:be("global-this",["es.global-this"]),parseFloat:be("parse-float",["es.parse-float"]),parseInt:be("parse-int",["es.parse-int"]),queueMicrotask:be("queue-microtask",["web.queue-microtask"]),self:be("self",["web.self"]),setImmediate:be("set-immediate",["web.immediate"]),setInterval:be("set-interval",["web.timers"]),setTimeout:be("set-timeout",["web.timers"]),structuredClone:be("structured-clone",["web.structured-clone"].concat(eb,["es.array.iterator","es.object.keys","es.object.to-string","es.map","es.set"])),unescape:be("unescape",["es.unescape"])},_at={AsyncIterator:{from:be("async-iterator/from",["esnext.async-iterator.from"].concat(fe(pu),nde,fe(Lc)))},Array:{from:be("array/from",["es.array.from","es.string.iterator"]),fromAsync:be("array/from-async",["esnext.array.from-async"].concat(fe(Mc))),isArray:be("array/is-array",["es.array.is-array"]),isTemplateObject:be("array/is-template-object",["esnext.array.is-template-object"]),of:be("array/of",["es.array.of"])},ArrayBuffer:{isView:be(null,["es.array-buffer.is-view"])},BigInt:{range:be("bigint/range",["esnext.bigint.range","es.object.to-string"])},Date:{now:be("date/now",["es.date.now"])},Function:{isCallable:be("function/is-callable",["esnext.function.is-callable"]),isConstructor:be("function/is-constructor",["esnext.function.is-constructor"])},Iterator:{from:be("iterator/from",["esnext.iterator.from"].concat(hs,fe(Lc))),range:be("iterator/range",["esnext.iterator.range","es.object.to-string"])},JSON:{isRawJSON:be("json/is-raw-json",["esnext.json.is-raw-json"]),parse:be("json/parse",["esnext.json.parse","es.object.keys"]),rawJSON:be("json/raw-json",["esnext.json.raw-json","es.object.create","es.object.freeze"]),stringify:be("json/stringify",["es.json.stringify","es.date.to-json"],"es.symbol")},Math:{DEG_PER_RAD:be("math/deg-per-rad",["esnext.math.deg-per-rad"]),RAD_PER_DEG:be("math/rad-per-deg",["esnext.math.rad-per-deg"]),acosh:be("math/acosh",["es.math.acosh"]),asinh:be("math/asinh",["es.math.asinh"]),atanh:be("math/atanh",["es.math.atanh"]),cbrt:be("math/cbrt",["es.math.cbrt"]),clamp:be("math/clamp",["esnext.math.clamp"]),clz32:be("math/clz32",["es.math.clz32"]),cosh:be("math/cosh",["es.math.cosh"]),degrees:be("math/degrees",["esnext.math.degrees"]),expm1:be("math/expm1",["es.math.expm1"]),fround:be("math/fround",["es.math.fround"]),f16round:be("math/f16round",["esnext.math.f16round"]),fscale:be("math/fscale",["esnext.math.fscale"]),hypot:be("math/hypot",["es.math.hypot"]),iaddh:be("math/iaddh",["esnext.math.iaddh"]),imul:be("math/imul",["es.math.imul"]),imulh:be("math/imulh",["esnext.math.imulh"]),isubh:be("math/isubh",["esnext.math.isubh"]),log10:be("math/log10",["es.math.log10"]),log1p:be("math/log1p",["es.math.log1p"]),log2:be("math/log2",["es.math.log2"]),radians:be("math/radians",["esnext.math.radians"]),scale:be("math/scale",["esnext.math.scale"]),seededPRNG:be("math/seeded-prng",["esnext.math.seeded-prng"]),sign:be("math/sign",["es.math.sign"]),signbit:be("math/signbit",["esnext.math.signbit"]),sinh:be("math/sinh",["es.math.sinh"]),sumPrecise:be("math/sum-precise",["esnext.math.sum-precise","es.array.iterator"]),tanh:be("math/tanh",["es.math.tanh"]),trunc:be("math/trunc",["es.math.trunc"]),umulh:be("math/umulh",["esnext.math.umulh"])},Map:{from:be("map/from",["esnext.map.from"].concat(fe(Sm))),groupBy:be("map/group-by",["es.map.group-by"].concat(fe(Sm))),keyBy:be("map/key-by",["esnext.map.key-by"].concat(fe(Sm))),of:be("map/of",["esnext.map.of"].concat(fe(Sm)))},Number:{EPSILON:be("number/epsilon",["es.number.epsilon"]),MAX_SAFE_INTEGER:be("number/max-safe-integer",["es.number.max-safe-integer"]),MIN_SAFE_INTEGER:be("number/min-safe-integer",["es.number.min-safe-integer"]),fromString:be("number/from-string",["esnext.number.from-string"]),isFinite:be("number/is-finite",["es.number.is-finite"]),isInteger:be("number/is-integer",["es.number.is-integer"]),isNaN:be("number/is-nan",["es.number.is-nan"]),isSafeInteger:be("number/is-safe-integer",["es.number.is-safe-integer"]),parseFloat:be("number/parse-float",["es.number.parse-float"]),parseInt:be("number/parse-int",["es.number.parse-int"]),range:be("number/range",["esnext.number.range","es.object.to-string"])},Object:{assign:be("object/assign",["es.object.assign"]),create:be("object/create",["es.object.create"]),defineProperties:be("object/define-properties",["es.object.define-properties"]),defineProperty:be("object/define-property",["es.object.define-property"]),entries:be("object/entries",["es.object.entries"]),freeze:be("object/freeze",["es.object.freeze"]),fromEntries:be("object/from-entries",["es.object.from-entries","es.array.iterator"]),getOwnPropertyDescriptor:be("object/get-own-property-descriptor",["es.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:be("object/get-own-property-descriptors",["es.object.get-own-property-descriptors"]),getOwnPropertyNames:be("object/get-own-property-names",["es.object.get-own-property-names"]),getOwnPropertySymbols:be("object/get-own-property-symbols",["es.symbol"]),getPrototypeOf:be("object/get-prototype-of",["es.object.get-prototype-of"]),groupBy:be("object/group-by",["es.object.group-by","es.object.create"]),hasOwn:be("object/has-own",["es.object.has-own"]),is:be("object/is",["es.object.is"]),isExtensible:be("object/is-extensible",["es.object.is-extensible"]),isFrozen:be("object/is-frozen",["es.object.is-frozen"]),isSealed:be("object/is-sealed",["es.object.is-sealed"]),keys:be("object/keys",["es.object.keys"]),preventExtensions:be("object/prevent-extensions",["es.object.prevent-extensions"]),seal:be("object/seal",["es.object.seal"]),setPrototypeOf:be("object/set-prototype-of",["es.object.set-prototype-of"]),values:be("object/values",["es.object.values"])},Promise:{all:be(null,Mc),allSettled:be("promise/all-settled",["es.promise.all-settled"].concat(fe(Mc))),any:be("promise/any",["es.promise.any","es.aggregate-error"].concat(fe(Mc))),race:be(null,Mc),try:be("promise/try",["esnext.promise.try"].concat(mo)),withResolvers:be("promise/with-resolvers",["es.promise.with-resolvers"].concat(mo))},Reflect:{apply:be("reflect/apply",["es.reflect.apply"]),construct:be("reflect/construct",["es.reflect.construct"]),defineMetadata:be("reflect/define-metadata",["esnext.reflect.define-metadata"]),defineProperty:be("reflect/define-property",["es.reflect.define-property"]),deleteMetadata:be("reflect/delete-metadata",["esnext.reflect.delete-metadata"]),deleteProperty:be("reflect/delete-property",["es.reflect.delete-property"]),get:be("reflect/get",["es.reflect.get"]),getMetadata:be("reflect/get-metadata",["esnext.reflect.get-metadata"]),getMetadataKeys:be("reflect/get-metadata-keys",["esnext.reflect.get-metadata-keys"]),getOwnMetadata:be("reflect/get-own-metadata",["esnext.reflect.get-own-metadata"]),getOwnMetadataKeys:be("reflect/get-own-metadata-keys",["esnext.reflect.get-own-metadata-keys"]),getOwnPropertyDescriptor:be("reflect/get-own-property-descriptor",["es.reflect.get-own-property-descriptor"]),getPrototypeOf:be("reflect/get-prototype-of",["es.reflect.get-prototype-of"]),has:be("reflect/has",["es.reflect.has"]),hasMetadata:be("reflect/has-metadata",["esnext.reflect.has-metadata"]),hasOwnMetadata:be("reflect/has-own-metadata",["esnext.reflect.has-own-metadata"]),isExtensible:be("reflect/is-extensible",["es.reflect.is-extensible"]),metadata:be("reflect/metadata",["esnext.reflect.metadata"]),ownKeys:be("reflect/own-keys",["es.reflect.own-keys"]),preventExtensions:be("reflect/prevent-extensions",["es.reflect.prevent-extensions"]),set:be("reflect/set",["es.reflect.set"]),setPrototypeOf:be("reflect/set-prototype-of",["es.reflect.set-prototype-of"])},RegExp:{escape:be("regexp/escape",["esnext.regexp.escape"])},Set:{from:be("set/from",["esnext.set.from"].concat(fe(j_))),of:be("set/of",["esnext.set.of"].concat(fe(j_)))},String:{cooked:be("string/cooked",["esnext.string.cooked"]),dedent:be("string/dedent",["esnext.string.dedent","es.string.from-code-point","es.weak-map"]),fromCodePoint:be("string/from-code-point",["es.string.from-code-point"]),raw:be("string/raw",["es.string.raw"])},Symbol:{asyncDispose:be("symbol/async-dispose",["esnext.symbol.async-dispose","esnext.async-iterator.async-dispose"]),asyncIterator:be("symbol/async-iterator",["es.symbol.async-iterator"]),customMatcher:be("symbol/custom-matcher",["esnext.symbol.custom-matcher"]),dispose:be("symbol/dispose",["esnext.symbol.dispose","esnext.iterator.dispose"]),for:be("symbol/for",[],"es.symbol"),hasInstance:be("symbol/has-instance",["es.symbol.has-instance","es.function.has-instance"]),isConcatSpreadable:be("symbol/is-concat-spreadable",["es.symbol.is-concat-spreadable","es.array.concat"]),isRegistered:be("symbol/is-registered",["esnext.symbol.is-registered","es.symbol"]),isRegisteredSymbol:be("symbol/is-registered-symbol",["esnext.symbol.is-registered-symbol","es.symbol"]),isWellKnown:be("symbol/is-well-known",["esnext.symbol.is-well-known","es.symbol"]),isWellKnownSymbol:be("symbol/is-well-known-symbol",["esnext.symbol.is-well-known-symbol","es.symbol"]),iterator:be("symbol/iterator",["es.symbol.iterator"].concat(fe(du))),keyFor:be("symbol/key-for",[],"es.symbol"),match:be("symbol/match",["es.symbol.match","es.string.match"]),matcher:be("symbol/matcher",["esnext.symbol.matcher"]),matchAll:be("symbol/match-all",["es.symbol.match-all","es.string.match-all"]),metadata:be("symbol/metadata",sde),metadataKey:be("symbol/metadata-key",["esnext.symbol.metadata-key"]),observable:be("symbol/observable",["esnext.symbol.observable"]),patternMatch:be("symbol/pattern-match",["esnext.symbol.pattern-match"]),replace:be("symbol/replace",["es.symbol.replace","es.string.replace"]),search:be("symbol/search",["es.symbol.search","es.string.search"]),species:be("symbol/species",["es.symbol.species","es.array.species"]),split:be("symbol/split",["es.symbol.split","es.string.split"]),toPrimitive:be("symbol/to-primitive",["es.symbol.to-primitive","es.date.to-primitive"]),toStringTag:be("symbol/to-string-tag",["es.symbol.to-string-tag","es.object.to-string","es.math.to-string-tag","es.json.to-string-tag"]),unscopables:be("symbol/unscopables",["es.symbol.unscopables"])},URL:{canParse:be("url/can-parse",["web.url.can-parse","web.url"]),parse:be("url/parse",["web.url.parse","web.url"])},WeakMap:{from:be("weak-map/from",["esnext.weak-map.from"].concat(fe(O_))),of:be("weak-map/of",["esnext.weak-map.of"].concat(fe(O_)))},WeakSet:{from:be("weak-set/from",["esnext.weak-set.from"].concat(fe(__))),of:be("weak-set/of",["esnext.weak-set.of"].concat(fe(__)))},Int8Array:rl("es.typed-array.int8-array"),Uint8Array:Object.assign({fromBase64:be(null,["esnext.uint8-array.from-base64"].concat(yp)),fromHex:be(null,["esnext.uint8-array.from-hex"].concat(yp))},rl("es.typed-array.uint8-array")),Uint8ClampedArray:rl("es.typed-array.uint8-clamped-array"),Int16Array:rl("es.typed-array.int16-array"),Uint16Array:rl("es.typed-array.uint16-array"),Int32Array:rl("es.typed-array.int32-array"),Uint32Array:rl("es.typed-array.uint32-array"),Float32Array:rl("es.typed-array.float32-array"),Float64Array:rl("es.typed-array.float64-array"),WebAssembly:{CompileError:be(null,Ti),LinkError:be(null,Ti),RuntimeError:be(null,Ti)}},Nat=(w_={asIndexedPairs:be(null,["esnext.async-iterator.as-indexed-pairs"].concat(fe(pu),["esnext.iterator.as-indexed-pairs"],hs)),at:be("instance/at",["esnext.string.at","es.string.at-alternative","es.array.at"]),anchor:be(null,["es.string.anchor"]),big:be(null,["es.string.big"]),bind:be("instance/bind",["es.function.bind"]),blink:be(null,["es.string.blink"]),bold:be(null,["es.string.bold"]),codePointAt:be("instance/code-point-at",["es.string.code-point-at"]),codePoints:be("instance/code-points",["esnext.string.code-points"]),concat:be("instance/concat",["es.array.concat"],void 0,["String"]),copyWithin:be("instance/copy-within",["es.array.copy-within"]),demethodize:be("instance/demethodize",["esnext.function.demethodize"]),description:be(null,["es.symbol","es.symbol.description"]),dotAll:be(null,["es.regexp.dot-all"]),drop:be(null,["esnext.async-iterator.drop"].concat(fe(pu),["esnext.iterator.drop"],hs)),emplace:be("instance/emplace",["esnext.map.emplace","esnext.weak-map.emplace"]),endsWith:be("instance/ends-with",["es.string.ends-with"]),entries:be("instance/entries",A_),every:be("instance/every",["es.array.every","esnext.async-iterator.every","esnext.iterator.every"].concat(hs)),exec:be(null,["es.regexp.exec"]),fill:be("instance/fill",["es.array.fill"]),filter:be("instance/filter",["es.array.filter","esnext.async-iterator.filter","esnext.iterator.filter"].concat(hs)),filterReject:be("instance/filterReject",["esnext.array.filter-reject"]),finally:be(null,["es.promise.finally"].concat(mo)),find:be("instance/find",["es.array.find","esnext.async-iterator.find","esnext.iterator.find"].concat(hs)),findIndex:be("instance/find-index",["es.array.find-index"]),findLast:be("instance/find-last",["es.array.find-last"]),findLastIndex:be("instance/find-last-index",["es.array.find-last-index"]),fixed:be(null,["es.string.fixed"]),flags:be("instance/flags",["es.regexp.flags"]),flatMap:be("instance/flat-map",["es.array.flat-map","es.array.unscopables.flat-map","esnext.async-iterator.flat-map","esnext.iterator.flat-map"].concat(hs)),flat:be("instance/flat",["es.array.flat","es.array.unscopables.flat"]),getFloat16:be(null,["esnext.data-view.get-float16"].concat(fe(Tm))),getUint8Clamped:be(null,["esnext.data-view.get-uint8-clamped"].concat(fe(Tm))),getYear:be(null,["es.date.get-year"]),group:be("instance/group",["esnext.array.group"]),groupBy:be("instance/group-by",["esnext.array.group-by"]),groupByToMap:be("instance/group-by-to-map",["esnext.array.group-by-to-map","es.map","es.object.to-string"]),groupToMap:be("instance/group-to-map",["esnext.array.group-to-map","es.map","es.object.to-string"]),fontcolor:be(null,["es.string.fontcolor"]),fontsize:be(null,["es.string.fontsize"]),forEach:be("instance/for-each",["es.array.for-each","esnext.async-iterator.for-each","esnext.iterator.for-each"].concat(hs,["web.dom-collections.for-each"])),includes:be("instance/includes",["es.array.includes","es.string.includes"]),indexed:be(null,["esnext.async-iterator.indexed"].concat(fe(pu),["esnext.iterator.indexed"],hs)),indexOf:be("instance/index-of",["es.array.index-of"]),isWellFormed:be("instance/is-well-formed",["es.string.is-well-formed"]),italic:be(null,["es.string.italics"]),join:be(null,["es.array.join"]),keys:be("instance/keys",A_),lastIndex:be(null,["esnext.array.last-index"]),lastIndexOf:be("instance/last-index-of",["es.array.last-index-of"]),lastItem:be(null,["esnext.array.last-item"]),link:be(null,["es.string.link"]),map:be("instance/map",["es.array.map","esnext.async-iterator.map","esnext.iterator.map"]),match:be(null,["es.string.match","es.regexp.exec"]),matchAll:be("instance/match-all",["es.string.match-all","es.regexp.exec"]),name:be(null,["es.function.name"]),padEnd:be("instance/pad-end",["es.string.pad-end"]),padStart:be("instance/pad-start",["es.string.pad-start"]),push:be("instance/push",["es.array.push"]),reduce:be("instance/reduce",["es.array.reduce","esnext.async-iterator.reduce","esnext.iterator.reduce"].concat(hs)),reduceRight:be("instance/reduce-right",["es.array.reduce-right"]),repeat:be("instance/repeat",["es.string.repeat"]),replace:be(null,["es.string.replace","es.regexp.exec"]),replaceAll:be("instance/replace-all",["es.string.replace-all","es.string.replace","es.regexp.exec"]),reverse:be("instance/reverse",["es.array.reverse"]),search:be(null,["es.string.search","es.regexp.exec"]),setFloat16:be(null,["esnext.data-view.set-float16"].concat(fe(Tm))),setUint8Clamped:be(null,["esnext.data-view.set-uint8-clamped"].concat(fe(Tm))),setYear:be(null,["es.date.set-year"]),slice:be("instance/slice",["es.array.slice"]),small:be(null,["es.string.small"]),some:be("instance/some",["es.array.some","esnext.async-iterator.some","esnext.iterator.some"].concat(hs)),sort:be("instance/sort",["es.array.sort"]),splice:be("instance/splice",["es.array.splice"]),split:be(null,["es.string.split","es.regexp.exec"]),startsWith:be("instance/starts-with",["es.string.starts-with"]),sticky:be(null,["es.regexp.sticky"]),strike:be(null,["es.string.strike"]),sub:be(null,["es.string.sub"]),substr:be(null,["es.string.substr"]),sup:be(null,["es.string.sup"]),take:be(null,["esnext.async-iterator.take"].concat(fe(pu),["esnext.iterator.take"],hs)),test:be(null,["es.regexp.test","es.regexp.exec"]),toArray:be(null,["esnext.async-iterator.to-array"].concat(fe(pu),["esnext.iterator.to-array"],hs)),toAsync:be(null,["esnext.iterator.to-async"].concat(hs,fe(pu),nde)),toExponential:be(null,["es.number.to-exponential"]),toFixed:be(null,["es.number.to-fixed"]),toGMTString:be(null,["es.date.to-gmt-string"]),toISOString:be(null,["es.date.to-iso-string"]),toJSON:be(null,["es.date.to-json"]),toPrecision:be(null,["es.number.to-precision"]),toReversed:be("instance/to-reversed",["es.array.to-reversed"]),toSorted:be("instance/to-sorted",["es.array.to-sorted","es.array.sort"]),toSpliced:be("instance/to-spliced",["es.array.to-spliced"]),toString:be(null,["es.object.to-string","es.error.to-string","es.date.to-string","es.regexp.to-string"]),toWellFormed:be("instance/to-well-formed",["es.string.to-well-formed"]),trim:be("instance/trim",["es.string.trim"]),trimEnd:be("instance/trim-end",["es.string.trim-end"]),trimLeft:be("instance/trim-left",["es.string.trim-start"]),trimRight:be("instance/trim-right",["es.string.trim-end"]),trimStart:be("instance/trim-start",["es.string.trim-start"]),uniqueBy:be("instance/unique-by",["esnext.array.unique-by","es.map"]),unshift:be("instance/unshift",["es.array.unshift"]),unThis:be("instance/un-this",["esnext.function.un-this"]),values:be("instance/values",A_),with:be("instance/with",["es.array.with"]),__defineGetter__:be(null,["es.object.define-getter"]),__defineSetter__:be(null,["es.object.define-setter"]),__lookupGetter__:be(null,["es.object.lookup-getter"]),__lookupSetter__:be(null,["es.object.lookup-setter"])},w_.__proto__=be(null,["es.object.proto"]),w_),ide=new Set(["array","array/from","array/is-array","array/of","clear-immediate","date/now","instance/bind","instance/code-point-at","instance/concat","instance/copy-within","instance/ends-with","instance/entries","instance/every","instance/fill","instance/filter","instance/find","instance/find-index","instance/flags","instance/flat","instance/flat-map","instance/for-each","instance/includes","instance/index-of","instance/keys","instance/last-index-of","instance/map","instance/pad-end","instance/pad-start","instance/reduce","instance/reduce-right","instance/repeat","instance/reverse","instance/slice","instance/some","instance/sort","instance/splice","instance/starts-with","instance/trim","instance/trim-end","instance/trim-left","instance/trim-right","instance/trim-start","instance/values","json/stringify","map","math/acosh","math/asinh","math/atanh","math/cbrt","math/clz32","math/cosh","math/expm1","math/fround","math/hypot","math/imul","math/log10","math/log1p","math/log2","math/sign","math/sinh","math/tanh","math/trunc","number/epsilon","number/is-finite","number/is-integer","number/is-nan","number/is-safe-integer","number/max-safe-integer","number/min-safe-integer","number/parse-float","number/parse-int","object/assign","object/create","object/define-properties","object/define-property","object/entries","object/freeze","object/from-entries","object/get-own-property-descriptor","object/get-own-property-descriptors","object/get-own-property-names","object/get-own-property-symbols","object/get-prototype-of","object/is","object/is-extensible","object/is-frozen","object/is-sealed","object/keys","object/prevent-extensions","object/seal","object/set-prototype-of","object/values","parse-float","parse-int","promise","queue-microtask","reflect/apply","reflect/construct","reflect/define-property","reflect/delete-property","reflect/get","reflect/get-own-property-descriptor","reflect/get-prototype-of","reflect/has","reflect/is-extensible","reflect/own-keys","reflect/prevent-extensions","reflect/set","reflect/set-prototype-of","set","set-immediate","set-interval","set-timeout","string/from-code-point","string/raw","symbol","symbol/async-iterator","symbol/for","symbol/has-instance","symbol/is-concat-spreadable","symbol/iterator","symbol/key-for","symbol/match","symbol/replace","symbol/search","symbol/species","symbol/split","symbol/to-primitive","symbol/to-string-tag","symbol/unscopables","url","url-search-params","weak-map","weak-set"]),kat=new Set([].concat(fe(ide),["aggregate-error","composite-key","composite-symbol","global-this","instance/at","instance/code-points","instance/match-all","instance/replace-all","math/clamp","math/degrees","math/deg-per-rad","math/fscale","math/iaddh","math/imulh","math/isubh","math/rad-per-deg","math/radians","math/scale","math/seeded-prng","math/signbit","math/umulh","number/from-string","observable","reflect/define-metadata","reflect/delete-metadata","reflect/get-metadata","reflect/get-metadata-keys","reflect/get-own-metadata","reflect/get-own-metadata-keys","reflect/has-metadata","reflect/has-own-metadata","reflect/metadata","symbol/dispose","symbol/observable","symbol/pattern-match"])),Dat=d,N_=Dat.types;function ode(e,r){var s=r.node,l=r.parent;switch(e.name){case"es.string.split":{if(!N_.isCallExpression(l,{callee:s}))return!1;if(l.arguments.length<1)return!0;var u=l.arguments[0];return N_.isStringLiteral(u)||N_.isTemplateLiteral(u)}}}var Lat=d,Bc=Lat.types,tb="@babel/runtime-corejs3";function lde(e,r){var s=e.node.object,l,u;Bc.isIdentifier(s)?(l=s,u=Bc.cloneNode(s)):(l=e.scope.generateDeclaredUidIdentifier("context"),u=Bc.assignmentExpression("=",Bc.cloneNode(l),s)),e.replaceWith(Bc.memberExpression(Bc.callExpression(r,[u]),Bc.identifier("call"))),e.parentPath.unshiftContainer("arguments",l)}function Mat(e){return typeof e=="string"&&(e=e.replace(/\\/g,"/").replace(/(\/(index)?)?(\.js)?$/i,"").toLowerCase()),Object.prototype.hasOwnProperty.call(Hce,e)&&Hce[e]}function ude(e){return"core-js/modules/"+e+".js"}function rb(e,r,s){return r?tb+"/core-js/"+e+s:"core-js-pure/features/"+e+".js"}var Bat=d,Fc=Bat.types,Fat="#__secret_key__@babel/preset-env__compatibility",$at="#__secret_key__@babel/runtime__compatibility",qat=["array","string","iterator","async-iterator","dom-collections"].map(function(e){return new RegExp("[a-z]*\\."+e+"\\..*")}),cde=function(r,s){if(s(r))return!0;if(!r.startsWith("es."))return!1;var l="esnext."+r.slice(3);return Yv[l]?s(l):!1},dde=Pat(function(e,r){var s=e.getUtils,l=e.method,u=e.shouldInjectPolyfill,o=e.createMetaResolver,c=e.debug,f=e.babel,h=r.version,m=h===void 0?3:h,g=r.proposals,x=r.shippedProposals,R=r[Fat],w=R===void 0?{}:R,T=w.noRuntimeName,I=T===void 0?!1:T,P=r[$at],O=P===void 0?{}:P,j=O.useBabelRuntime,D=j===void 0?!1:j,k=O.ext,B=k===void 0?".js":k,F=f.caller(function(oe){return(oe==null?void 0:oe.name)==="babel-loader"}),L=o({global:Oat,static:_at,instance:Nat}),V=new Set(rat(m));function H(oe){return D?oe?tb+"/core-js":tb+"/core-js-stable":oe?"core-js-pure/features":"core-js-pure/stable"}function K(oe,he){return u(oe)?(c(oe),he.injectGlobalImport(ude(oe),oe),!0):!1}function G(oe,he,te){te===void 0&&(te=!0);for(var ae=C(oe),J;!(J=ae()).done;){var xe=J.value;te?cde(xe,function(de){return K(de,he)}):K(xe,he)}}function X(oe,he,te,ae){if(oe.pure&&!(ae&&oe.exclude&&oe.exclude.includes(ae))&&cde(oe.name,u)){var J=oe.name,xe=!1;if((g||x&&J.startsWith("esnext.")||J.startsWith("es.")&&!V.has(J))&&(xe=!0),D&&!(xe?kat:ide).has(oe.pure))return;var de=H(xe);return te.injectDefaultImport(de+"/"+oe.pure+B,he)}}function ue(oe){if(oe.startsWith("esnext.")){var he="es."+oe.slice(7);return he in Yv}return!0}return{name:"corejs3",runtimeName:I?null:tb,polyfills:Yv,filterPolyfills:function(he){return V.has(he)?g||l==="entry-global"||x&&Cat.has(he)?!0:ue(he):!1},entryGlobal:function(he,te,ae){if(he.kind==="import"){var J=Mat(he.source);if(J){if(J.length===1&&he.source===ude(J[0])&&u(J[0])){c(null);return}var xe=new Set(J),de=J.filter(function($e){if(!$e.startsWith("esnext."))return!0;var Ve=$e.replace("esnext.","es.");return!(xe.has(Ve)&&u(Ve))});G(de,te,!1),ae.remove()}}},usageGlobal:function(he,te,ae){var J=L(he);if(J&&!ode(J.desc,ae)){var xe=J.desc.global;if(J.kind!=="global"&&"object"in he&&he.object&&he.placement==="prototype"){var de=he.object.toLowerCase();xe=xe.filter(function($e){return qat.some(function(Ve){return Ve.test($e)})?$e.includes(de):!0})}return G(xe,te),!0}},usagePure:function(he,te,ae){if(he.kind==="in"){he.key==="Symbol.iterator"&&ae.replaceWith(Fc.callExpression(te.injectDefaultImport(rb("is-iterable",D,B),"isIterable"),[ae.node.right]));return}if(!ae.parentPath.isUnaryExpression({operator:"delete"})){if(he.kind==="property"){if(!ae.isMemberExpression()||!ae.isReferenced()||ae.parentPath.isUpdateExpression()||Fc.isSuper(ae.node.object))return;if(he.key==="Symbol.iterator"){if(!u("es.symbol.iterator"))return;var J=ae.parent,xe=ae.node;Fc.isCallExpression(J,{callee:xe})?J.arguments.length===0?(ae.parentPath.replaceWith(Fc.callExpression(te.injectDefaultImport(rb("get-iterator",D,B),"getIterator"),[xe.object])),ae.skip()):lde(ae,te.injectDefaultImport(rb("get-iterator-method",D,B),"getIteratorMethod")):ae.replaceWith(Fc.callExpression(te.injectDefaultImport(rb("get-iterator-method",D,B),"getIteratorMethod"),[ae.node.object]));return}}var de=L(he);if(de&&!ode(de.desc,ae)){if(D&&de.desc.pure&&de.desc.pure.slice(-6)==="/index"&&(de=Object.assign(Object.assign({},de),{},{desc:Object.assign(Object.assign({},de.desc),{},{pure:de.desc.pure.slice(0,-6)})})),de.kind==="global"){var $e=X(de.desc,de.name,te);$e&&ae.replaceWith($e)}else if(de.kind==="static"){var Ve=X(de.desc,de.name,te,he.object);Ve&&ae.replaceWith(Ve)}else if(de.kind==="instance"){var Ie=X(de.desc,de.name+"InstanceProperty",te,he.object);if(!Ie)return;var ke=ae.node;Fc.isCallExpression(ae.parent,{callee:ke})?lde(ae,Ie):ae.replaceWith(Fc.callExpression(Ie,[ke.object]))}}}},visitor:l==="usage-global"&&{CallExpression:function(he){if(he.get("callee").isImport()){var te=s(he);G(F?Mc:mo,te)}},Function:function(he){he.node.async&&G(mo,s(he))},"ForOfStatement|ArrayPattern":function(he){G(Lc,s(he))},SpreadElement:function(he){he.parentPath.isObjectExpression()||G(Lc,s(he))},YieldExpression:function(he){he.node.delegate&&G(Lc,s(he))},Class:function(he){var te,ae=((te=he.node.decorators)==null?void 0:te.length)||he.node.body.body.some(function(J){var xe;return(xe=J.decorators)==null?void 0:xe.length});ae&&G(sde,s(he))}}}}),pde=dde.default||dde;function fde(e,r){return Object.keys(e).reduce(function(s,l){return r.has(l)||(s[l]=e[l]),s},{})}var ab={withProposals:{withoutBugfixes:fm,withBugfixes:Object.assign({},fm,dce)},withoutProposals:{withoutBugfixes:fde(fm,Gce),withBugfixes:fde(Object.assign({},fm,dce),Gce)}};function Uat(e,r){return e?r?ab.withProposals.withBugfixes:ab.withProposals.withoutBugfixes:r?ab.withoutProposals.withBugfixes:ab.withoutProposals.withoutBugfixes}var k_=function(r){var s=f_[r]();if(!s)throw new Error('Could not find plugin "'+r+'". Ensure there is an entry in ./available-plugins.js for it.');return s},hde=function(r){return r.reduce(function(s,l){var u=/^(?:es|es6|es7|esnext|web)\./.test(l)?"builtIns":"plugins";return s[u].add(l),s},{all:r,plugins:new Set,builtIns:new Set})};function Vat(e,r,s){var l=[];return e&&l.push(y_[e]),r&&(e&&e!=="umd"?l.push("transform-dynamic-import"):console.warn("Dynamic import can only be transformed when transforming ES modules to AMD, CommonJS or SystemJS.")),s[0]!=="8"&&(r||l.push("syntax-dynamic-import"),l.push("syntax-top-level-await"),l.push("syntax-import-meta")),l}var Wat=function(r){var s=r.useBuiltIns,l=r.corejs,u=r.polyfillTargets,o=r.include,c=r.exclude,f=r.proposals,h=r.shippedProposals,m=r.debug;return{method:s+"-global",version:l?l.toString():void 0,targets:u,include:o,exclude:c,proposals:f,shippedProposals:h,debug:m,"#__secret_key__@babel/preset-env__compatibility":{noRuntimeName:!0}}};{var mde=function(r){var s=r.useBuiltIns,l=r.corejs,u=r.polyfillTargets,o=r.include,c=r.exclude,f=r.proposals,h=r.shippedProposals,m=r.regenerator,g=r.debug,x=[];if(s==="usage"||s==="entry"){var R=Wat({useBuiltIns:s,corejs:l,polyfillTargets:u,include:o,exclude:c,proposals:f,shippedProposals:h,debug:g});l&&(s==="usage"?(l.major===2?x.push([fo.pluginCoreJS2,R],[fo.legacyBabelPolyfillPlugin,{usage:!0}]):x.push([pde,R],[fo.legacyBabelPolyfillPlugin,{usage:!0,deprecated:!0}]),m&&x.push([fo.pluginRegenerator,{method:"usage-global",debug:g}])):l.major===2?x.push([fo.legacyBabelPolyfillPlugin,{regenerator:m}],[fo.pluginCoreJS2,R]):(x.push([pde,R],[fo.legacyBabelPolyfillPlugin,{deprecated:!0}]),m||x.push([fo.removeRegeneratorEntryPlugin,R])))}return x};a.getPolyfillPlugins=mde}function Gat(e,r,s,l){return e!=null&&e.esmodules&&e.browsers&&console.warn("\n@babel/preset-env: esmodules and browsers targets have been specified together.\n`browsers` target, `"+e.browsers.toString()+"` will be ignored.\n"),Mh(e,{ignoreBrowserslistConfig:r,configPath:s,browserslistEnv:l})}function Kat(e){return!!(e!=null&&e.supportsStaticESM)}function Hat(e){return!!(e!=null&&e.supportsDynamicImport)}function zat(e){return!!(e!=null&&e.supportsExportNamespaceFrom)}var Xat=function(e,r){e.assertVersion("*");var s=e.targets(),l=Qrt(r),u=l.bugfixes,o=l.configPath,c=l.debug,f=l.exclude,h=l.forceAllTransforms,m=l.ignoreBrowserslistConfig,g=l.include,x=l.modules,R=l.shippedProposals,w=l.targets,T=l.useBuiltIns,I=l.corejs,P=I.version,O=I.proposals,j=l.browserslistEnv,D=r.loose,k=r.spec,B=k===void 0?!1:k,F=s;if(i_.lt(e.version,"7.13.0")||r.targets||r.configPath||r.browserslistEnv||r.ignoreBrowserslistConfig){{var L=!1;w!=null&&w.uglify&&(L=!0,delete w.uglify,console.warn(` +The uglify target has been deprecated. Set the top level +option \`forceAllTransforms: true\` instead. +`))}F=Gat(w,m,o,j)}var V=h||L?{}:F,H=hde(g),K=hde(f),G=Uat(R,u),X=x==="auto"?e.caller(Kat)?!1:"commonjs":x,ue=x==="auto"?!e.caller(Hat):!!X;!K.plugins.has("transform-export-namespace-from")&&(x==="auto"?!e.caller(zat):X)&&H.plugins.add("transform-export-namespace-from");var oe=qz(G,H.plugins,K.plugins,V,Vat(X,ue,e.version),D?["transform-typeof-symbol"]:void 0,tat);R&&yrt(oe,Zrt),vrt(oe,e.version),grt(oe,pce);var he=mde({useBuiltIns:T,corejs:P,polyfillTargets:F,include:H.builtIns,exclude:K.builtIns,proposals:O,shippedProposals:R,regenerator:oe.has("transform-regenerator"),debug:c}),te=T!==!1,ae=Array.from(oe).map(function(J){return J==="transform-class-properties"||J==="transform-private-methods"||J==="transform-private-property-in-object"?[k_(J),{loose:D?"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error":"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"}]:J==="syntax-import-attributes"?[k_(J),{deprecatedAssertSyntax:!0}]:[k_(J),{spec:B,loose:D,useBuiltIns:te}]}).concat(he);return c&&(console.log("@babel/preset-env: `DEBUG` option"),console.log(` +Using targets:`),console.log(JSON.stringify(D5(F),null,2)),console.log(` +Using modules transform: `+x.toString()),console.log(` +Using plugins:`),oe.forEach(function(J){Xtt(J,F,G)}),T||console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.")),{plugins:ae}};a.getModulesPluginNames=function(e){var r=e.modules,s=e.transformations,l=e.shouldTransformESM,u=e.shouldTransformDynamicImport,o=e.shouldTransformExportNamespaceFrom,c=[];return r!==!1&&s[r]&&(l&&c.push(s[r]),u&&(l&&r!=="umd"?c.push("transform-dynamic-import"):console.warn("Dynamic import can only be transformed when transforming ES modules to AMD, CommonJS or SystemJS."))),o&&c.push("transform-export-namespace-from"),u||c.push("syntax-dynamic-import"),o||c.push("syntax-export-namespace-from"),c.push("syntax-top-level-await"),c.push("syntax-import-meta"),c},new nu("@babel/preset-flow");function Jat(e){e===void 0&&(e={});var r=e,s=r.all,l=r.ignoreExtensions,u=r.experimental_useHermesParser,o=e,c=o.allowDeclareFields;return{all:s,allowDeclareFields:c,ignoreExtensions:l,experimental_useHermesParser:u}}var Yat=function(e,r){e.assertVersion("*");var s=Jat(r),l=s.all,u=s.allowDeclareFields,o=s.ignoreExtensions,c=o===void 0?!0:o,f=s.experimental_useHermesParser,h=f===void 0?!1:f,m=[[Poe,{all:l,allowDeclareFields:u}]];if(h)throw Number.parseInt(er.versions.node,10)<12?new Error("The Hermes parser is only supported in Node 12 and later."):new Error("The Hermes parser is not supported in the @babel/standalone.");return c?{plugins:m}:{overrides:[{test:function(x){return x==null||!/\.tsx?$/.test(x)},plugins:m}]}},yde=[["react",new Set(["cloneElement","createContext","createElement","createFactory","createRef","forwardRef","isValidElement","memo","lazy"])],["react-dom",new Set(["createPortal"])]],Qat=function(e){return e.assertVersion("*"),{name:"transform-react-pure-annotations",visitor:{CallExpression:function(s){Zat(s)&&Ui(s)}}}};function Zat(e){var r=e.get("callee");if(!r.isMemberExpression()){for(var s=0,l=yde;s<l.length;s++)for(var u=je(l[s],2),o=u[0],c=u[1],f=C(c),h;!(h=f()).done;){var m=h.value;if(r.referencesImport(o,m))return!0}return!1}var g=r.get("object"),x=r.node;if(!x.computed&&Dt(x.property))for(var R=x.property.name,w=0,T=yde;w<T.length;w++){var I=je(T[w],2),P=I[0],O=I[1];if(g.referencesImport(P,"default")||g.referencesImport(P,"*"))return O.has(R)}return!1}new nu("@babel/preset-react");function ent(e){e===void 0&&(e={});{var r=e,s=r.pragma,l=r.pragmaFrag,u=e,o=u.pure,c=u.throwIfNamespace,f=c===void 0?!0:c,h=u.runtime,m=h===void 0?"classic":h,g=u.importSource,x=u.useBuiltIns,R=u.useSpread;m==="classic"&&(s=s||"React.createElement",l=l||"React.Fragment");var w=!!e.development;return{development:w,importSource:g,pragma:s,pragmaFrag:l,pure:o,runtime:m,throwIfNamespace:f,useBuiltIns:x,useSpread:R}}}var tnt=function(e,r){e.assertVersion("*");var s=ent(r),l=s.development,u=s.importSource,o=s.pragma,c=s.pragmaFrag,f=s.pure,h=s.runtime,m=s.throwIfNamespace;return{plugins:[[l?lle:ole,{importSource:u,pragma:o,pragmaFrag:c,runtime:h,throwIfNamespace:m,pure:f,useBuiltIns:!!r.useBuiltIns,useSpread:r.useSpread}],Koe,f!==!1&&Qat].filter(Boolean)}},al=new nu("@babel/preset-typescript");function rnt(e){e===void 0&&(e={});var r=e,s=r.allowNamespaces,l=s===void 0?!0:s,u=r.jsxPragma,o=r.onlyRemoveTypeImports,c={ignoreExtensions:"ignoreExtensions",allowNamespaces:"allowNamespaces",disallowAmbiguousJSXLike:"disallowAmbiguousJSXLike",jsxPragma:"jsxPragma",jsxPragmaFrag:"jsxPragmaFrag",onlyRemoveTypeImports:"onlyRemoveTypeImports",optimizeConstEnums:"optimizeConstEnums",rewriteImportExtensions:"rewriteImportExtensions",allExtensions:"allExtensions",isTSX:"isTSX"},f=al.validateStringOption(c.jsxPragmaFrag,e.jsxPragmaFrag,"React.Fragment");{var h=al.validateBooleanOption(c.allExtensions,e.allExtensions,!1),m=al.validateBooleanOption(c.isTSX,e.isTSX,!1);m&&al.invariant(h,"isTSX:true requires allExtensions:true")}var g=al.validateBooleanOption(c.ignoreExtensions,e.ignoreExtensions,!1),x=al.validateBooleanOption(c.disallowAmbiguousJSXLike,e.disallowAmbiguousJSXLike,!1);x&&al.invariant(h,"disallowAmbiguousJSXLike:true requires allExtensions:true");var R=al.validateBooleanOption(c.optimizeConstEnums,e.optimizeConstEnums,!1),w=al.validateBooleanOption(c.rewriteImportExtensions,e.rewriteImportExtensions,!1),T={ignoreExtensions:g,allowNamespaces:l,disallowAmbiguousJSXLike:x,jsxPragma:u,jsxPragmaFrag:f,onlyRemoveTypeImports:o,optimizeConstEnums:R,rewriteImportExtensions:w};return T.allExtensions=h,T.isTSX=m,T}var ant=function(e){var r=e.types;return{name:"preset-typescript/plugin-rewrite-ts-imports",visitor:{"ImportDeclaration|ExportAllDeclaration|ExportNamedDeclaration":function(l){var u=l.node,o=u.source,c=r.isImportDeclaration(u)?u.importKind:u.exportKind;c==="value"&&o&&/[\\/]/.test(o.value)&&(o.value=o.value.replace(/(\.[mc]?)ts$/,"$1js").replace(/\.tsx$/,".js"))}}}},nnt=function(e,r){e.assertVersion("*");var s=rnt(r),l=s.allExtensions,u=s.ignoreExtensions,o=s.allowNamespaces,c=s.disallowAmbiguousJSXLike,f=s.isTSX,h=s.jsxPragma,m=s.jsxPragmaFrag,g=s.onlyRemoveTypeImports,x=s.optimizeConstEnums,R=s.rewriteImportExtensions,w=function(O){return{allowDeclareFields:r.allowDeclareFields,allowNamespaces:o,disallowAmbiguousJSXLike:O,jsxPragma:h,jsxPragmaFrag:m,onlyRemoveTypeImports:g,optimizeConstEnums:x}},T=function(O,j){return[[e_,Object.assign({isTSX:O},w(j))]]},I=l||u;return{plugins:R?[ant]:[],overrides:I?[{plugins:T(f,c)}]:[{test:/\.ts$/,plugins:T(!1,!1)},{test:/\.mts$/,sourceType:"module",plugins:T(!1,!0)},{test:/\.cts$/,sourceType:"unambiguous",plugins:[[_v,{allowTopLevelThis:!0}],[e_,w(!0)]]},{test:/\.tsx$/,plugins:T(!0,!1)}]}},snt=["text/jsx","text/babel"],gde,D_=0;function int(e,r){var s;return r.url!=null?s=r.url:(s="Inline Babel script",D_++,D_>1&&(s+=" ("+D_+")")),e(r.content,ont(r,s)).code}function ont(e,r){var s=e.presets;return s||(e.type==="module"?s=["react",["env",{targets:{esmodules:!0},modules:!1}]]:s=["react","env"]),{filename:r,presets:s,plugins:e.plugins||["transform-class-properties","transform-object-rest-spread","transform-flow-strip-types"],sourceMaps:"inline",sourceFileName:r}}function lnt(e,r){var s=document.createElement("script");r.type&&s.setAttribute("type",r.type),r.nonce&&(s.nonce=r.nonce),s.text=int(e,r),gde.appendChild(s)}function unt(e,r,s){var l=new XMLHttpRequest;l.open("GET",e,!0),"overrideMimeType"in l&&l.overrideMimeType("text/plain"),l.onreadystatechange=function(){if(l.readyState===4)if(l.status===0||l.status===200)r(l.responseText);else throw s(),new Error("Could not load "+e)},l.send(null)}function vde(e,r){var s=e.getAttribute(r);return s===""?[]:s?s.split(",").map(function(l){return l.trim()}):null}function cnt(e,r){var s=[],l=r.length;function u(){for(var f=0;f<l;f++){var h=s[f];if(h.loaded&&!h.executed)h.executed=!0,lnt(e,h);else if(!h.loaded&&!h.error&&!h.async)break}}for(var o=function(){var h=r[c],m={async:h.hasAttribute("async"),type:h.getAttribute("data-type"),nonce:h.nonce,error:!1,executed:!1,plugins:vde(h,"data-plugins"),presets:vde(h,"data-presets"),loaded:!1,url:null,content:null};s.push(m),h.src?(m.url=h.src,unt(h.src,function(g){m.loaded=!0,m.content=g,u()},function(){m.error=!0,u()})):(m.url=h.getAttribute("data-module")||null,m.loaded=!0,m.content=h.innerHTML)},c=0;c<l;c++)o();u()}function dnt(e,r){gde=document.getElementsByTagName("head")[0],r||(r=document.getElementsByTagName("script"));for(var s=[],l=0;l<r.length;l++){var u=r.item(l),o=u.type.split(";")[0];snt.includes(o)&&s.push(u)}s.length!==0&&(console.warn("You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"),cnt(e,s))}var pnt=Object.freeze({__proto__:null,generator:kOe,parser:Y5e,template:_Se,traverse:MDe,types:aE}),bde={__proto__:null,"transform-class-static-block":"proposal-class-static-block","transform-private-property-in-object":"proposal-private-property-in-object","transform-class-properties":"proposal-class-properties","transform-private-methods":"proposal-private-methods","transform-numeric-separator":"proposal-numeric-separator","transform-logical-assignment-operators":"proposal-logical-assignment-operators","transform-nullish-coalescing-operator":"proposal-nullish-coalescing-operator","transform-optional-chaining":"proposal-optional-chaining","transform-json-strings":"proposal-json-strings","transform-optional-catch-binding":"proposal-optional-catch-binding","transform-async-generator-functions":"proposal-async-generator-functions","transform-object-rest-spread":"proposal-object-rest-spread","transform-unicode-property-regex":"proposal-unicode-property-regex","transform-export-namespace-from":"proposal-export-namespace-from"},xde;for(var Rde in bde)pm[bde[Rde]]=pm[Rde];pm["proposal-unicode-sets-regex"]=pm["transform-unicode-sets-regex"];var gp={};Ade(pm);var nb={env:Xat,es2015:s_,es2016:function(){return{plugins:[gp["transform-exponentiation-operator"]]}},es2017:function(){return{plugins:[gp["transform-async-to-generator"]]}},react:tnt,"stage-0":Htt,"stage-1":sce,"stage-2":nce,"stage-3":ace,"es2015-loose":{presets:[[s_,{loose:!0}]]},"es2015-no-commonjs":{presets:[[s_,{modules:!1}]]},typescript:nnt,flow:Yat},Ede=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};function Sde(e,r){return Ede(r)&&typeof r[0]=="string"?hasOwnProperty.call(e,r[0])?[e[r[0]]].concat(r.slice(1)):void 0:typeof r=="string"?e[r]:r}function Tde(e){var r=(e.presets||[]).map(function(l){var u=Sde(nb,l);if(u)Ede(u)&&typeof u[0]=="object"&&hasOwnProperty.call(u[0],"buildPreset")&&(u[0]=Object.assign({},u[0],{buildPreset:u[0].buildPreset}));else throw new Error('Invalid preset specified in Babel options: "'+l+'"');return u}),s=(e.plugins||[]).map(function(l){var u=Sde(gp,l);if(!u)throw new Error('Invalid plugin specified in Babel options: "'+l+'"');return u});return Object.assign({babelrc:!1},e,{presets:r,plugins:s})}function wde(e,r){return eJ(e,Tde(r))}function fnt(e,r,s){return tJ(e,r,Tde(s))}var hnt=LH;function Pde(e,r){hasOwnProperty.call(gp,e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),gp[e]=r}function Ade(e){Object.keys(e).forEach(function(r){return Pde(r,e[r])})}function Ide(e,r){hasOwnProperty.call(nb,e)&&console.warn(e==="env"?"@babel/preset-env is now included in @babel/standalone, please remove @babel/preset-env-standalone":'A preset named "'+e+'" is already registered, it will be overridden'),nb[e]=r}function mnt(e){Object.keys(e).forEach(function(r){return Ide(r,e[r])})}var ynt="7.25.6";function Cde(){jde()}typeof window<"u"&&(xde=window)!=null&&xde.addEventListener&&window.addEventListener("DOMContentLoaded",Cde,!1);function jde(e){dnt(wde,e)}function gnt(){window.removeEventListener("DOMContentLoaded",Cde)}a.availablePlugins=gp,a.availablePresets=nb,a.buildExternalHelpers=hnt,a.disableScriptTags=gnt,a.packages=pnt,a.registerPlugin=Pde,a.registerPlugins=Ade,a.registerPreset=Ide,a.registerPresets=mnt,a.transform=wde,a.transformFromAst=fnt,a.transformScriptTags=jde,a.version=ynt,Object.defineProperty(a,"__esModule",{value:!0})})})(hk,hk.exports);var Nnt=hk.exports,H_={},c6={},d6={},p6={},ve={},ky={};Object.defineProperty(ky,"__esModule",{value:!0});ky.default=knt;function knt(n,t){const a=Object.keys(t);for(const i of a)if(n[i]!==t[i])return!1;return!0}var Zp={};Object.defineProperty(Zp,"__esModule",{value:!0});Zp.default=Dnt;const epe=new Set;function Dnt(n,t,a=""){if(epe.has(n))return;epe.add(n);const{internal:i,trace:d}=Lnt(1,2);i||console.warn(`${a}\`${n}\` has been deprecated, please migrate to \`${t}\` +${d}`)}function Lnt(n,t){const{stackTraceLimit:a,prepareStackTrace:i}=Error;let d;if(Error.stackTraceLimit=1+n+t,Error.prepareStackTrace=function(y,b){d=b},new Error().stack,Error.stackTraceLimit=a,Error.prepareStackTrace=i,!d)return{internal:!1,trace:""};const p=d.slice(1+n,1+n+t);return{internal:/[\\/]@babel[\\/]/.test(p[1].getFileName()),trace:p.map(y=>` at ${y}`).join(` +`)}}Object.defineProperty(ve,"__esModule",{value:!0});ve.isAccessor=Jut;ve.isAnyTypeAnnotation=git;ve.isArgumentPlaceholder=Kot;ve.isArrayExpression=Mnt;ve.isArrayPattern=Dst;ve.isArrayTypeAnnotation=vit;ve.isArrowFunctionExpression=Lst;ve.isAssignmentExpression=Bnt;ve.isAssignmentPattern=kst;ve.isAwaitExpression=sit;ve.isBigIntLiteral=oit;ve.isBinary=but;ve.isBinaryExpression=Fnt;ve.isBindExpression=Hot;ve.isBlock=Eut;ve.isBlockParent=Rut;ve.isBlockStatement=Vnt;ve.isBooleanLiteral=cst;ve.isBooleanLiteralTypeAnnotation=xit;ve.isBooleanTypeAnnotation=bit;ve.isBreakStatement=Wnt;ve.isCallExpression=Gnt;ve.isCatchClause=Knt;ve.isClass=Hut;ve.isClassAccessorProperty=pit;ve.isClassBody=Mst;ve.isClassDeclaration=Fst;ve.isClassExpression=Bst;ve.isClassImplements=Eit;ve.isClassMethod=Yst;ve.isClassPrivateMethod=hit;ve.isClassPrivateProperty=fit;ve.isClassProperty=dit;ve.isCompletionStatement=wut;ve.isConditional=Put;ve.isConditionalExpression=Hnt;ve.isContinueStatement=znt;ve.isDebuggerStatement=Xnt;ve.isDecimalLiteral=elt;ve.isDeclaration=Dut;ve.isDeclareClass=Sit;ve.isDeclareExportAllDeclaration=_it;ve.isDeclareExportDeclaration=Oit;ve.isDeclareFunction=Tit;ve.isDeclareInterface=wit;ve.isDeclareModule=Pit;ve.isDeclareModuleExports=Ait;ve.isDeclareOpaqueType=Cit;ve.isDeclareTypeAlias=Iit;ve.isDeclareVariable=jit;ve.isDeclaredPredicate=Nit;ve.isDecorator=Xot;ve.isDirective=qnt;ve.isDirectiveLiteral=Unt;ve.isDoExpression=Jot;ve.isDoWhileStatement=Jnt;ve.isEmptyStatement=Ynt;ve.isEmptyTypeAnnotation=Wit;ve.isEnumBody=act;ve.isEnumBooleanBody=vot;ve.isEnumBooleanMember=Eot;ve.isEnumDeclaration=got;ve.isEnumDefaultedMember=wot;ve.isEnumMember=nct;ve.isEnumNumberBody=bot;ve.isEnumNumberMember=Sot;ve.isEnumStringBody=xot;ve.isEnumStringMember=Tot;ve.isEnumSymbolBody=Rot;ve.isExistsTypeAnnotation=kit;ve.isExportAllDeclaration=$st;ve.isExportDeclaration=zut;ve.isExportDefaultDeclaration=qst;ve.isExportDefaultSpecifier=Yot;ve.isExportNamedDeclaration=Ust;ve.isExportNamespaceSpecifier=lit;ve.isExportSpecifier=Vst;ve.isExpression=vut;ve.isExpressionStatement=Qnt;ve.isExpressionWrapper=Cut;ve.isFile=Znt;ve.isFlow=Qut;ve.isFlowBaseAnnotation=ect;ve.isFlowDeclaration=tct;ve.isFlowPredicate=rct;ve.isFlowType=Zut;ve.isFor=jut;ve.isForInStatement=est;ve.isForOfStatement=Wst;ve.isForStatement=tst;ve.isForXStatement=Out;ve.isFunction=_ut;ve.isFunctionDeclaration=rst;ve.isFunctionExpression=ast;ve.isFunctionParent=Nut;ve.isFunctionTypeAnnotation=Dit;ve.isFunctionTypeParam=Lit;ve.isGenericTypeAnnotation=Mit;ve.isIdentifier=nst;ve.isIfStatement=sst;ve.isImmutable=$ut;ve.isImport=iit;ve.isImportAttribute=zot;ve.isImportDeclaration=Gst;ve.isImportDefaultSpecifier=Kst;ve.isImportExpression=Xst;ve.isImportNamespaceSpecifier=Hst;ve.isImportOrExportDeclaration=hye;ve.isImportSpecifier=zst;ve.isIndexedAccessType=Pot;ve.isInferredPredicate=Bit;ve.isInterfaceDeclaration=$it;ve.isInterfaceExtends=Fit;ve.isInterfaceTypeAnnotation=qit;ve.isInterpreterDirective=$nt;ve.isIntersectionTypeAnnotation=Uit;ve.isJSX=sct;ve.isJSXAttribute=Iot;ve.isJSXClosingElement=Cot;ve.isJSXClosingFragment=Uot;ve.isJSXElement=jot;ve.isJSXEmptyExpression=Oot;ve.isJSXExpressionContainer=_ot;ve.isJSXFragment=$ot;ve.isJSXIdentifier=kot;ve.isJSXMemberExpression=Dot;ve.isJSXNamespacedName=Lot;ve.isJSXOpeningElement=Mot;ve.isJSXOpeningFragment=qot;ve.isJSXSpreadAttribute=Bot;ve.isJSXSpreadChild=Not;ve.isJSXText=Fot;ve.isLVal=Mut;ve.isLabeledStatement=ist;ve.isLiteral=Fut;ve.isLogicalExpression=pst;ve.isLoop=Aut;ve.isMemberExpression=fst;ve.isMetaProperty=Jst;ve.isMethod=Uut;ve.isMiscellaneous=ict;ve.isMixedTypeAnnotation=Vit;ve.isModuleDeclaration=mct;ve.isModuleExpression=tlt;ve.isModuleSpecifier=Xut;ve.isNewExpression=hst;ve.isNoop=Vot;ve.isNullLiteral=ust;ve.isNullLiteralTypeAnnotation=Rit;ve.isNullableTypeAnnotation=Git;ve.isNumberLiteral=dct;ve.isNumberLiteralTypeAnnotation=Kit;ve.isNumberTypeAnnotation=Hit;ve.isNumericLiteral=lst;ve.isObjectExpression=yst;ve.isObjectMember=Vut;ve.isObjectMethod=gst;ve.isObjectPattern=Qst;ve.isObjectProperty=vst;ve.isObjectTypeAnnotation=zit;ve.isObjectTypeCallProperty=Jit;ve.isObjectTypeIndexer=Yit;ve.isObjectTypeInternalSlot=Xit;ve.isObjectTypeProperty=Qit;ve.isObjectTypeSpreadProperty=Zit;ve.isOpaqueType=eot;ve.isOptionalCallExpression=cit;ve.isOptionalIndexedAccessType=Aot;ve.isOptionalMemberExpression=uit;ve.isParenthesizedExpression=Est;ve.isPattern=Kut;ve.isPatternLike=Lut;ve.isPipelineBareFunction=nlt;ve.isPipelinePrimaryTopicReference=slt;ve.isPipelineTopicExpression=alt;ve.isPlaceholder=Wot;ve.isPrivate=Yut;ve.isPrivateName=mit;ve.isProgram=mst;ve.isProperty=Wut;ve.isPureish=kut;ve.isQualifiedTypeIdentifier=tot;ve.isRecordExpression=Qot;ve.isRegExpLiteral=dst;ve.isRegexLiteral=pct;ve.isRestElement=bst;ve.isRestProperty=fct;ve.isReturnStatement=xst;ve.isScopable=xut;ve.isSequenceExpression=Rst;ve.isSpreadElement=Zst;ve.isSpreadProperty=hct;ve.isStandardized=gut;ve.isStatement=Sut;ve.isStaticBlock=yit;ve.isStringLiteral=ost;ve.isStringLiteralTypeAnnotation=rot;ve.isStringTypeAnnotation=aot;ve.isSuper=eit;ve.isSwitchCase=Sst;ve.isSwitchStatement=Tst;ve.isSymbolTypeAnnotation=not;ve.isTSAnyKeyword=mlt;ve.isTSArrayType=Dlt;ve.isTSAsExpression=eut;ve.isTSBaseType=cct;ve.isTSBigIntKeyword=glt;ve.isTSBooleanKeyword=ylt;ve.isTSCallSignatureDeclaration=clt;ve.isTSConditionalType=Ult;ve.isTSConstructSignatureDeclaration=dlt;ve.isTSConstructorType=jlt;ve.isTSDeclareFunction=olt;ve.isTSDeclareMethod=llt;ve.isTSEntityName=But;ve.isTSEnumDeclaration=aut;ve.isTSEnumMember=nut;ve.isTSExportAssignment=dut;ve.isTSExpressionWithTypeArguments=Xlt;ve.isTSExternalModuleReference=uut;ve.isTSFunctionType=Clt;ve.isTSImportEqualsDeclaration=lut;ve.isTSImportType=out;ve.isTSIndexSignature=hlt;ve.isTSIndexedAccessType=Klt;ve.isTSInferType=Vlt;ve.isTSInstantiationExpression=Zlt;ve.isTSInterfaceBody=Ylt;ve.isTSInterfaceDeclaration=Jlt;ve.isTSIntersectionType=qlt;ve.isTSIntrinsicKeyword=vlt;ve.isTSLiteralType=zlt;ve.isTSMappedType=Hlt;ve.isTSMethodSignature=flt;ve.isTSModuleBlock=iut;ve.isTSModuleDeclaration=sut;ve.isTSNamedTupleMember=Flt;ve.isTSNamespaceExportDeclaration=put;ve.isTSNeverKeyword=blt;ve.isTSNonNullExpression=cut;ve.isTSNullKeyword=xlt;ve.isTSNumberKeyword=Rlt;ve.isTSObjectKeyword=Elt;ve.isTSOptionalType=Mlt;ve.isTSParameterProperty=ilt;ve.isTSParenthesizedType=Wlt;ve.isTSPropertySignature=plt;ve.isTSQualifiedName=ult;ve.isTSRestType=Blt;ve.isTSSatisfiesExpression=tut;ve.isTSStringKeyword=Slt;ve.isTSSymbolKeyword=Tlt;ve.isTSThisType=Ilt;ve.isTSTupleType=Llt;ve.isTSType=uct;ve.isTSTypeAliasDeclaration=Qlt;ve.isTSTypeAnnotation=fut;ve.isTSTypeAssertion=rut;ve.isTSTypeElement=lct;ve.isTSTypeLiteral=klt;ve.isTSTypeOperator=Glt;ve.isTSTypeParameter=yut;ve.isTSTypeParameterDeclaration=mut;ve.isTSTypeParameterInstantiation=hut;ve.isTSTypePredicate=_lt;ve.isTSTypeQuery=Nlt;ve.isTSTypeReference=Olt;ve.isTSUndefinedKeyword=wlt;ve.isTSUnionType=$lt;ve.isTSUnknownKeyword=Plt;ve.isTSVoidKeyword=Alt;ve.isTaggedTemplateExpression=tit;ve.isTemplateElement=rit;ve.isTemplateLiteral=ait;ve.isTerminatorless=Tut;ve.isThisExpression=wst;ve.isThisTypeAnnotation=sot;ve.isThrowStatement=Pst;ve.isTopicReference=rlt;ve.isTryStatement=Ast;ve.isTupleExpression=Zot;ve.isTupleTypeAnnotation=iot;ve.isTypeAlias=lot;ve.isTypeAnnotation=uot;ve.isTypeCastExpression=cot;ve.isTypeParameter=dot;ve.isTypeParameterDeclaration=pot;ve.isTypeParameterInstantiation=fot;ve.isTypeScript=oct;ve.isTypeofTypeAnnotation=oot;ve.isUnaryExpression=Ist;ve.isUnaryLike=Gut;ve.isUnionTypeAnnotation=hot;ve.isUpdateExpression=Cst;ve.isUserWhitespacable=qut;ve.isV8IntrinsicIdentifier=Got;ve.isVariableDeclaration=jst;ve.isVariableDeclarator=Ost;ve.isVariance=mot;ve.isVoidTypeAnnotation=yot;ve.isWhile=Iut;ve.isWhileStatement=_st;ve.isWithStatement=Nst;ve.isYieldExpression=nit;var Pe=ky,Dy=Zp;function Mnt(n,t){return!n||n.type!=="ArrayExpression"?!1:t==null||(0,Pe.default)(n,t)}function Bnt(n,t){return!n||n.type!=="AssignmentExpression"?!1:t==null||(0,Pe.default)(n,t)}function Fnt(n,t){return!n||n.type!=="BinaryExpression"?!1:t==null||(0,Pe.default)(n,t)}function $nt(n,t){return!n||n.type!=="InterpreterDirective"?!1:t==null||(0,Pe.default)(n,t)}function qnt(n,t){return!n||n.type!=="Directive"?!1:t==null||(0,Pe.default)(n,t)}function Unt(n,t){return!n||n.type!=="DirectiveLiteral"?!1:t==null||(0,Pe.default)(n,t)}function Vnt(n,t){return!n||n.type!=="BlockStatement"?!1:t==null||(0,Pe.default)(n,t)}function Wnt(n,t){return!n||n.type!=="BreakStatement"?!1:t==null||(0,Pe.default)(n,t)}function Gnt(n,t){return!n||n.type!=="CallExpression"?!1:t==null||(0,Pe.default)(n,t)}function Knt(n,t){return!n||n.type!=="CatchClause"?!1:t==null||(0,Pe.default)(n,t)}function Hnt(n,t){return!n||n.type!=="ConditionalExpression"?!1:t==null||(0,Pe.default)(n,t)}function znt(n,t){return!n||n.type!=="ContinueStatement"?!1:t==null||(0,Pe.default)(n,t)}function Xnt(n,t){return!n||n.type!=="DebuggerStatement"?!1:t==null||(0,Pe.default)(n,t)}function Jnt(n,t){return!n||n.type!=="DoWhileStatement"?!1:t==null||(0,Pe.default)(n,t)}function Ynt(n,t){return!n||n.type!=="EmptyStatement"?!1:t==null||(0,Pe.default)(n,t)}function Qnt(n,t){return!n||n.type!=="ExpressionStatement"?!1:t==null||(0,Pe.default)(n,t)}function Znt(n,t){return!n||n.type!=="File"?!1:t==null||(0,Pe.default)(n,t)}function est(n,t){return!n||n.type!=="ForInStatement"?!1:t==null||(0,Pe.default)(n,t)}function tst(n,t){return!n||n.type!=="ForStatement"?!1:t==null||(0,Pe.default)(n,t)}function rst(n,t){return!n||n.type!=="FunctionDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function ast(n,t){return!n||n.type!=="FunctionExpression"?!1:t==null||(0,Pe.default)(n,t)}function nst(n,t){return!n||n.type!=="Identifier"?!1:t==null||(0,Pe.default)(n,t)}function sst(n,t){return!n||n.type!=="IfStatement"?!1:t==null||(0,Pe.default)(n,t)}function ist(n,t){return!n||n.type!=="LabeledStatement"?!1:t==null||(0,Pe.default)(n,t)}function ost(n,t){return!n||n.type!=="StringLiteral"?!1:t==null||(0,Pe.default)(n,t)}function lst(n,t){return!n||n.type!=="NumericLiteral"?!1:t==null||(0,Pe.default)(n,t)}function ust(n,t){return!n||n.type!=="NullLiteral"?!1:t==null||(0,Pe.default)(n,t)}function cst(n,t){return!n||n.type!=="BooleanLiteral"?!1:t==null||(0,Pe.default)(n,t)}function dst(n,t){return!n||n.type!=="RegExpLiteral"?!1:t==null||(0,Pe.default)(n,t)}function pst(n,t){return!n||n.type!=="LogicalExpression"?!1:t==null||(0,Pe.default)(n,t)}function fst(n,t){return!n||n.type!=="MemberExpression"?!1:t==null||(0,Pe.default)(n,t)}function hst(n,t){return!n||n.type!=="NewExpression"?!1:t==null||(0,Pe.default)(n,t)}function mst(n,t){return!n||n.type!=="Program"?!1:t==null||(0,Pe.default)(n,t)}function yst(n,t){return!n||n.type!=="ObjectExpression"?!1:t==null||(0,Pe.default)(n,t)}function gst(n,t){return!n||n.type!=="ObjectMethod"?!1:t==null||(0,Pe.default)(n,t)}function vst(n,t){return!n||n.type!=="ObjectProperty"?!1:t==null||(0,Pe.default)(n,t)}function bst(n,t){return!n||n.type!=="RestElement"?!1:t==null||(0,Pe.default)(n,t)}function xst(n,t){return!n||n.type!=="ReturnStatement"?!1:t==null||(0,Pe.default)(n,t)}function Rst(n,t){return!n||n.type!=="SequenceExpression"?!1:t==null||(0,Pe.default)(n,t)}function Est(n,t){return!n||n.type!=="ParenthesizedExpression"?!1:t==null||(0,Pe.default)(n,t)}function Sst(n,t){return!n||n.type!=="SwitchCase"?!1:t==null||(0,Pe.default)(n,t)}function Tst(n,t){return!n||n.type!=="SwitchStatement"?!1:t==null||(0,Pe.default)(n,t)}function wst(n,t){return!n||n.type!=="ThisExpression"?!1:t==null||(0,Pe.default)(n,t)}function Pst(n,t){return!n||n.type!=="ThrowStatement"?!1:t==null||(0,Pe.default)(n,t)}function Ast(n,t){return!n||n.type!=="TryStatement"?!1:t==null||(0,Pe.default)(n,t)}function Ist(n,t){return!n||n.type!=="UnaryExpression"?!1:t==null||(0,Pe.default)(n,t)}function Cst(n,t){return!n||n.type!=="UpdateExpression"?!1:t==null||(0,Pe.default)(n,t)}function jst(n,t){return!n||n.type!=="VariableDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Ost(n,t){return!n||n.type!=="VariableDeclarator"?!1:t==null||(0,Pe.default)(n,t)}function _st(n,t){return!n||n.type!=="WhileStatement"?!1:t==null||(0,Pe.default)(n,t)}function Nst(n,t){return!n||n.type!=="WithStatement"?!1:t==null||(0,Pe.default)(n,t)}function kst(n,t){return!n||n.type!=="AssignmentPattern"?!1:t==null||(0,Pe.default)(n,t)}function Dst(n,t){return!n||n.type!=="ArrayPattern"?!1:t==null||(0,Pe.default)(n,t)}function Lst(n,t){return!n||n.type!=="ArrowFunctionExpression"?!1:t==null||(0,Pe.default)(n,t)}function Mst(n,t){return!n||n.type!=="ClassBody"?!1:t==null||(0,Pe.default)(n,t)}function Bst(n,t){return!n||n.type!=="ClassExpression"?!1:t==null||(0,Pe.default)(n,t)}function Fst(n,t){return!n||n.type!=="ClassDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function $st(n,t){return!n||n.type!=="ExportAllDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function qst(n,t){return!n||n.type!=="ExportDefaultDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Ust(n,t){return!n||n.type!=="ExportNamedDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Vst(n,t){return!n||n.type!=="ExportSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function Wst(n,t){return!n||n.type!=="ForOfStatement"?!1:t==null||(0,Pe.default)(n,t)}function Gst(n,t){return!n||n.type!=="ImportDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Kst(n,t){return!n||n.type!=="ImportDefaultSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function Hst(n,t){return!n||n.type!=="ImportNamespaceSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function zst(n,t){return!n||n.type!=="ImportSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function Xst(n,t){return!n||n.type!=="ImportExpression"?!1:t==null||(0,Pe.default)(n,t)}function Jst(n,t){return!n||n.type!=="MetaProperty"?!1:t==null||(0,Pe.default)(n,t)}function Yst(n,t){return!n||n.type!=="ClassMethod"?!1:t==null||(0,Pe.default)(n,t)}function Qst(n,t){return!n||n.type!=="ObjectPattern"?!1:t==null||(0,Pe.default)(n,t)}function Zst(n,t){return!n||n.type!=="SpreadElement"?!1:t==null||(0,Pe.default)(n,t)}function eit(n,t){return!n||n.type!=="Super"?!1:t==null||(0,Pe.default)(n,t)}function tit(n,t){return!n||n.type!=="TaggedTemplateExpression"?!1:t==null||(0,Pe.default)(n,t)}function rit(n,t){return!n||n.type!=="TemplateElement"?!1:t==null||(0,Pe.default)(n,t)}function ait(n,t){return!n||n.type!=="TemplateLiteral"?!1:t==null||(0,Pe.default)(n,t)}function nit(n,t){return!n||n.type!=="YieldExpression"?!1:t==null||(0,Pe.default)(n,t)}function sit(n,t){return!n||n.type!=="AwaitExpression"?!1:t==null||(0,Pe.default)(n,t)}function iit(n,t){return!n||n.type!=="Import"?!1:t==null||(0,Pe.default)(n,t)}function oit(n,t){return!n||n.type!=="BigIntLiteral"?!1:t==null||(0,Pe.default)(n,t)}function lit(n,t){return!n||n.type!=="ExportNamespaceSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function uit(n,t){return!n||n.type!=="OptionalMemberExpression"?!1:t==null||(0,Pe.default)(n,t)}function cit(n,t){return!n||n.type!=="OptionalCallExpression"?!1:t==null||(0,Pe.default)(n,t)}function dit(n,t){return!n||n.type!=="ClassProperty"?!1:t==null||(0,Pe.default)(n,t)}function pit(n,t){return!n||n.type!=="ClassAccessorProperty"?!1:t==null||(0,Pe.default)(n,t)}function fit(n,t){return!n||n.type!=="ClassPrivateProperty"?!1:t==null||(0,Pe.default)(n,t)}function hit(n,t){return!n||n.type!=="ClassPrivateMethod"?!1:t==null||(0,Pe.default)(n,t)}function mit(n,t){return!n||n.type!=="PrivateName"?!1:t==null||(0,Pe.default)(n,t)}function yit(n,t){return!n||n.type!=="StaticBlock"?!1:t==null||(0,Pe.default)(n,t)}function git(n,t){return!n||n.type!=="AnyTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function vit(n,t){return!n||n.type!=="ArrayTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function bit(n,t){return!n||n.type!=="BooleanTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function xit(n,t){return!n||n.type!=="BooleanLiteralTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Rit(n,t){return!n||n.type!=="NullLiteralTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Eit(n,t){return!n||n.type!=="ClassImplements"?!1:t==null||(0,Pe.default)(n,t)}function Sit(n,t){return!n||n.type!=="DeclareClass"?!1:t==null||(0,Pe.default)(n,t)}function Tit(n,t){return!n||n.type!=="DeclareFunction"?!1:t==null||(0,Pe.default)(n,t)}function wit(n,t){return!n||n.type!=="DeclareInterface"?!1:t==null||(0,Pe.default)(n,t)}function Pit(n,t){return!n||n.type!=="DeclareModule"?!1:t==null||(0,Pe.default)(n,t)}function Ait(n,t){return!n||n.type!=="DeclareModuleExports"?!1:t==null||(0,Pe.default)(n,t)}function Iit(n,t){return!n||n.type!=="DeclareTypeAlias"?!1:t==null||(0,Pe.default)(n,t)}function Cit(n,t){return!n||n.type!=="DeclareOpaqueType"?!1:t==null||(0,Pe.default)(n,t)}function jit(n,t){return!n||n.type!=="DeclareVariable"?!1:t==null||(0,Pe.default)(n,t)}function Oit(n,t){return!n||n.type!=="DeclareExportDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function _it(n,t){return!n||n.type!=="DeclareExportAllDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Nit(n,t){return!n||n.type!=="DeclaredPredicate"?!1:t==null||(0,Pe.default)(n,t)}function kit(n,t){return!n||n.type!=="ExistsTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Dit(n,t){return!n||n.type!=="FunctionTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Lit(n,t){return!n||n.type!=="FunctionTypeParam"?!1:t==null||(0,Pe.default)(n,t)}function Mit(n,t){return!n||n.type!=="GenericTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Bit(n,t){return!n||n.type!=="InferredPredicate"?!1:t==null||(0,Pe.default)(n,t)}function Fit(n,t){return!n||n.type!=="InterfaceExtends"?!1:t==null||(0,Pe.default)(n,t)}function $it(n,t){return!n||n.type!=="InterfaceDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function qit(n,t){return!n||n.type!=="InterfaceTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Uit(n,t){return!n||n.type!=="IntersectionTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Vit(n,t){return!n||n.type!=="MixedTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Wit(n,t){return!n||n.type!=="EmptyTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Git(n,t){return!n||n.type!=="NullableTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Kit(n,t){return!n||n.type!=="NumberLiteralTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Hit(n,t){return!n||n.type!=="NumberTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function zit(n,t){return!n||n.type!=="ObjectTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function Xit(n,t){return!n||n.type!=="ObjectTypeInternalSlot"?!1:t==null||(0,Pe.default)(n,t)}function Jit(n,t){return!n||n.type!=="ObjectTypeCallProperty"?!1:t==null||(0,Pe.default)(n,t)}function Yit(n,t){return!n||n.type!=="ObjectTypeIndexer"?!1:t==null||(0,Pe.default)(n,t)}function Qit(n,t){return!n||n.type!=="ObjectTypeProperty"?!1:t==null||(0,Pe.default)(n,t)}function Zit(n,t){return!n||n.type!=="ObjectTypeSpreadProperty"?!1:t==null||(0,Pe.default)(n,t)}function eot(n,t){return!n||n.type!=="OpaqueType"?!1:t==null||(0,Pe.default)(n,t)}function tot(n,t){return!n||n.type!=="QualifiedTypeIdentifier"?!1:t==null||(0,Pe.default)(n,t)}function rot(n,t){return!n||n.type!=="StringLiteralTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function aot(n,t){return!n||n.type!=="StringTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function not(n,t){return!n||n.type!=="SymbolTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function sot(n,t){return!n||n.type!=="ThisTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function iot(n,t){return!n||n.type!=="TupleTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function oot(n,t){return!n||n.type!=="TypeofTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function lot(n,t){return!n||n.type!=="TypeAlias"?!1:t==null||(0,Pe.default)(n,t)}function uot(n,t){return!n||n.type!=="TypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function cot(n,t){return!n||n.type!=="TypeCastExpression"?!1:t==null||(0,Pe.default)(n,t)}function dot(n,t){return!n||n.type!=="TypeParameter"?!1:t==null||(0,Pe.default)(n,t)}function pot(n,t){return!n||n.type!=="TypeParameterDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function fot(n,t){return!n||n.type!=="TypeParameterInstantiation"?!1:t==null||(0,Pe.default)(n,t)}function hot(n,t){return!n||n.type!=="UnionTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function mot(n,t){return!n||n.type!=="Variance"?!1:t==null||(0,Pe.default)(n,t)}function yot(n,t){return!n||n.type!=="VoidTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function got(n,t){return!n||n.type!=="EnumDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function vot(n,t){return!n||n.type!=="EnumBooleanBody"?!1:t==null||(0,Pe.default)(n,t)}function bot(n,t){return!n||n.type!=="EnumNumberBody"?!1:t==null||(0,Pe.default)(n,t)}function xot(n,t){return!n||n.type!=="EnumStringBody"?!1:t==null||(0,Pe.default)(n,t)}function Rot(n,t){return!n||n.type!=="EnumSymbolBody"?!1:t==null||(0,Pe.default)(n,t)}function Eot(n,t){return!n||n.type!=="EnumBooleanMember"?!1:t==null||(0,Pe.default)(n,t)}function Sot(n,t){return!n||n.type!=="EnumNumberMember"?!1:t==null||(0,Pe.default)(n,t)}function Tot(n,t){return!n||n.type!=="EnumStringMember"?!1:t==null||(0,Pe.default)(n,t)}function wot(n,t){return!n||n.type!=="EnumDefaultedMember"?!1:t==null||(0,Pe.default)(n,t)}function Pot(n,t){return!n||n.type!=="IndexedAccessType"?!1:t==null||(0,Pe.default)(n,t)}function Aot(n,t){return!n||n.type!=="OptionalIndexedAccessType"?!1:t==null||(0,Pe.default)(n,t)}function Iot(n,t){return!n||n.type!=="JSXAttribute"?!1:t==null||(0,Pe.default)(n,t)}function Cot(n,t){return!n||n.type!=="JSXClosingElement"?!1:t==null||(0,Pe.default)(n,t)}function jot(n,t){return!n||n.type!=="JSXElement"?!1:t==null||(0,Pe.default)(n,t)}function Oot(n,t){return!n||n.type!=="JSXEmptyExpression"?!1:t==null||(0,Pe.default)(n,t)}function _ot(n,t){return!n||n.type!=="JSXExpressionContainer"?!1:t==null||(0,Pe.default)(n,t)}function Not(n,t){return!n||n.type!=="JSXSpreadChild"?!1:t==null||(0,Pe.default)(n,t)}function kot(n,t){return!n||n.type!=="JSXIdentifier"?!1:t==null||(0,Pe.default)(n,t)}function Dot(n,t){return!n||n.type!=="JSXMemberExpression"?!1:t==null||(0,Pe.default)(n,t)}function Lot(n,t){return!n||n.type!=="JSXNamespacedName"?!1:t==null||(0,Pe.default)(n,t)}function Mot(n,t){return!n||n.type!=="JSXOpeningElement"?!1:t==null||(0,Pe.default)(n,t)}function Bot(n,t){return!n||n.type!=="JSXSpreadAttribute"?!1:t==null||(0,Pe.default)(n,t)}function Fot(n,t){return!n||n.type!=="JSXText"?!1:t==null||(0,Pe.default)(n,t)}function $ot(n,t){return!n||n.type!=="JSXFragment"?!1:t==null||(0,Pe.default)(n,t)}function qot(n,t){return!n||n.type!=="JSXOpeningFragment"?!1:t==null||(0,Pe.default)(n,t)}function Uot(n,t){return!n||n.type!=="JSXClosingFragment"?!1:t==null||(0,Pe.default)(n,t)}function Vot(n,t){return!n||n.type!=="Noop"?!1:t==null||(0,Pe.default)(n,t)}function Wot(n,t){return!n||n.type!=="Placeholder"?!1:t==null||(0,Pe.default)(n,t)}function Got(n,t){return!n||n.type!=="V8IntrinsicIdentifier"?!1:t==null||(0,Pe.default)(n,t)}function Kot(n,t){return!n||n.type!=="ArgumentPlaceholder"?!1:t==null||(0,Pe.default)(n,t)}function Hot(n,t){return!n||n.type!=="BindExpression"?!1:t==null||(0,Pe.default)(n,t)}function zot(n,t){return!n||n.type!=="ImportAttribute"?!1:t==null||(0,Pe.default)(n,t)}function Xot(n,t){return!n||n.type!=="Decorator"?!1:t==null||(0,Pe.default)(n,t)}function Jot(n,t){return!n||n.type!=="DoExpression"?!1:t==null||(0,Pe.default)(n,t)}function Yot(n,t){return!n||n.type!=="ExportDefaultSpecifier"?!1:t==null||(0,Pe.default)(n,t)}function Qot(n,t){return!n||n.type!=="RecordExpression"?!1:t==null||(0,Pe.default)(n,t)}function Zot(n,t){return!n||n.type!=="TupleExpression"?!1:t==null||(0,Pe.default)(n,t)}function elt(n,t){return!n||n.type!=="DecimalLiteral"?!1:t==null||(0,Pe.default)(n,t)}function tlt(n,t){return!n||n.type!=="ModuleExpression"?!1:t==null||(0,Pe.default)(n,t)}function rlt(n,t){return!n||n.type!=="TopicReference"?!1:t==null||(0,Pe.default)(n,t)}function alt(n,t){return!n||n.type!=="PipelineTopicExpression"?!1:t==null||(0,Pe.default)(n,t)}function nlt(n,t){return!n||n.type!=="PipelineBareFunction"?!1:t==null||(0,Pe.default)(n,t)}function slt(n,t){return!n||n.type!=="PipelinePrimaryTopicReference"?!1:t==null||(0,Pe.default)(n,t)}function ilt(n,t){return!n||n.type!=="TSParameterProperty"?!1:t==null||(0,Pe.default)(n,t)}function olt(n,t){return!n||n.type!=="TSDeclareFunction"?!1:t==null||(0,Pe.default)(n,t)}function llt(n,t){return!n||n.type!=="TSDeclareMethod"?!1:t==null||(0,Pe.default)(n,t)}function ult(n,t){return!n||n.type!=="TSQualifiedName"?!1:t==null||(0,Pe.default)(n,t)}function clt(n,t){return!n||n.type!=="TSCallSignatureDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function dlt(n,t){return!n||n.type!=="TSConstructSignatureDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function plt(n,t){return!n||n.type!=="TSPropertySignature"?!1:t==null||(0,Pe.default)(n,t)}function flt(n,t){return!n||n.type!=="TSMethodSignature"?!1:t==null||(0,Pe.default)(n,t)}function hlt(n,t){return!n||n.type!=="TSIndexSignature"?!1:t==null||(0,Pe.default)(n,t)}function mlt(n,t){return!n||n.type!=="TSAnyKeyword"?!1:t==null||(0,Pe.default)(n,t)}function ylt(n,t){return!n||n.type!=="TSBooleanKeyword"?!1:t==null||(0,Pe.default)(n,t)}function glt(n,t){return!n||n.type!=="TSBigIntKeyword"?!1:t==null||(0,Pe.default)(n,t)}function vlt(n,t){return!n||n.type!=="TSIntrinsicKeyword"?!1:t==null||(0,Pe.default)(n,t)}function blt(n,t){return!n||n.type!=="TSNeverKeyword"?!1:t==null||(0,Pe.default)(n,t)}function xlt(n,t){return!n||n.type!=="TSNullKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Rlt(n,t){return!n||n.type!=="TSNumberKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Elt(n,t){return!n||n.type!=="TSObjectKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Slt(n,t){return!n||n.type!=="TSStringKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Tlt(n,t){return!n||n.type!=="TSSymbolKeyword"?!1:t==null||(0,Pe.default)(n,t)}function wlt(n,t){return!n||n.type!=="TSUndefinedKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Plt(n,t){return!n||n.type!=="TSUnknownKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Alt(n,t){return!n||n.type!=="TSVoidKeyword"?!1:t==null||(0,Pe.default)(n,t)}function Ilt(n,t){return!n||n.type!=="TSThisType"?!1:t==null||(0,Pe.default)(n,t)}function Clt(n,t){return!n||n.type!=="TSFunctionType"?!1:t==null||(0,Pe.default)(n,t)}function jlt(n,t){return!n||n.type!=="TSConstructorType"?!1:t==null||(0,Pe.default)(n,t)}function Olt(n,t){return!n||n.type!=="TSTypeReference"?!1:t==null||(0,Pe.default)(n,t)}function _lt(n,t){return!n||n.type!=="TSTypePredicate"?!1:t==null||(0,Pe.default)(n,t)}function Nlt(n,t){return!n||n.type!=="TSTypeQuery"?!1:t==null||(0,Pe.default)(n,t)}function klt(n,t){return!n||n.type!=="TSTypeLiteral"?!1:t==null||(0,Pe.default)(n,t)}function Dlt(n,t){return!n||n.type!=="TSArrayType"?!1:t==null||(0,Pe.default)(n,t)}function Llt(n,t){return!n||n.type!=="TSTupleType"?!1:t==null||(0,Pe.default)(n,t)}function Mlt(n,t){return!n||n.type!=="TSOptionalType"?!1:t==null||(0,Pe.default)(n,t)}function Blt(n,t){return!n||n.type!=="TSRestType"?!1:t==null||(0,Pe.default)(n,t)}function Flt(n,t){return!n||n.type!=="TSNamedTupleMember"?!1:t==null||(0,Pe.default)(n,t)}function $lt(n,t){return!n||n.type!=="TSUnionType"?!1:t==null||(0,Pe.default)(n,t)}function qlt(n,t){return!n||n.type!=="TSIntersectionType"?!1:t==null||(0,Pe.default)(n,t)}function Ult(n,t){return!n||n.type!=="TSConditionalType"?!1:t==null||(0,Pe.default)(n,t)}function Vlt(n,t){return!n||n.type!=="TSInferType"?!1:t==null||(0,Pe.default)(n,t)}function Wlt(n,t){return!n||n.type!=="TSParenthesizedType"?!1:t==null||(0,Pe.default)(n,t)}function Glt(n,t){return!n||n.type!=="TSTypeOperator"?!1:t==null||(0,Pe.default)(n,t)}function Klt(n,t){return!n||n.type!=="TSIndexedAccessType"?!1:t==null||(0,Pe.default)(n,t)}function Hlt(n,t){return!n||n.type!=="TSMappedType"?!1:t==null||(0,Pe.default)(n,t)}function zlt(n,t){return!n||n.type!=="TSLiteralType"?!1:t==null||(0,Pe.default)(n,t)}function Xlt(n,t){return!n||n.type!=="TSExpressionWithTypeArguments"?!1:t==null||(0,Pe.default)(n,t)}function Jlt(n,t){return!n||n.type!=="TSInterfaceDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Ylt(n,t){return!n||n.type!=="TSInterfaceBody"?!1:t==null||(0,Pe.default)(n,t)}function Qlt(n,t){return!n||n.type!=="TSTypeAliasDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function Zlt(n,t){return!n||n.type!=="TSInstantiationExpression"?!1:t==null||(0,Pe.default)(n,t)}function eut(n,t){return!n||n.type!=="TSAsExpression"?!1:t==null||(0,Pe.default)(n,t)}function tut(n,t){return!n||n.type!=="TSSatisfiesExpression"?!1:t==null||(0,Pe.default)(n,t)}function rut(n,t){return!n||n.type!=="TSTypeAssertion"?!1:t==null||(0,Pe.default)(n,t)}function aut(n,t){return!n||n.type!=="TSEnumDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function nut(n,t){return!n||n.type!=="TSEnumMember"?!1:t==null||(0,Pe.default)(n,t)}function sut(n,t){return!n||n.type!=="TSModuleDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function iut(n,t){return!n||n.type!=="TSModuleBlock"?!1:t==null||(0,Pe.default)(n,t)}function out(n,t){return!n||n.type!=="TSImportType"?!1:t==null||(0,Pe.default)(n,t)}function lut(n,t){return!n||n.type!=="TSImportEqualsDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function uut(n,t){return!n||n.type!=="TSExternalModuleReference"?!1:t==null||(0,Pe.default)(n,t)}function cut(n,t){return!n||n.type!=="TSNonNullExpression"?!1:t==null||(0,Pe.default)(n,t)}function dut(n,t){return!n||n.type!=="TSExportAssignment"?!1:t==null||(0,Pe.default)(n,t)}function put(n,t){return!n||n.type!=="TSNamespaceExportDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function fut(n,t){return!n||n.type!=="TSTypeAnnotation"?!1:t==null||(0,Pe.default)(n,t)}function hut(n,t){return!n||n.type!=="TSTypeParameterInstantiation"?!1:t==null||(0,Pe.default)(n,t)}function mut(n,t){return!n||n.type!=="TSTypeParameterDeclaration"?!1:t==null||(0,Pe.default)(n,t)}function yut(n,t){return!n||n.type!=="TSTypeParameter"?!1:t==null||(0,Pe.default)(n,t)}function gut(n,t){if(!n)return!1;switch(n.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"InterpreterDirective":case"Directive":case"DirectiveLiteral":case"BlockStatement":case"BreakStatement":case"CallExpression":case"CatchClause":case"ConditionalExpression":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"File":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Identifier":case"IfStatement":case"LabeledStatement":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"Program":case"ObjectExpression":case"ObjectMethod":case"ObjectProperty":case"RestElement":case"ReturnStatement":case"SequenceExpression":case"ParenthesizedExpression":case"SwitchCase":case"SwitchStatement":case"ThisExpression":case"ThrowStatement":case"TryStatement":case"UnaryExpression":case"UpdateExpression":case"VariableDeclaration":case"VariableDeclarator":case"WhileStatement":case"WithStatement":case"AssignmentPattern":case"ArrayPattern":case"ArrowFunctionExpression":case"ClassBody":case"ClassExpression":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportSpecifier":case"ForOfStatement":case"ImportDeclaration":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ImportExpression":case"MetaProperty":case"ClassMethod":case"ObjectPattern":case"SpreadElement":case"Super":case"TaggedTemplateExpression":case"TemplateElement":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"ExportNamespaceSpecifier":case"OptionalMemberExpression":case"OptionalCallExpression":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":case"StaticBlock":break;case"Placeholder":switch(n.expectedNode){case"Identifier":case"StringLiteral":case"BlockStatement":case"ClassBody":break;default:return!1}break;default:return!1}return t==null||(0,Pe.default)(n,t)}function vut(n,t){if(!n)return!1;switch(n.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ParenthesizedExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":case"ArrowFunctionExpression":case"ClassExpression":case"ImportExpression":case"MetaProperty":case"Super":case"TaggedTemplateExpression":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"OptionalMemberExpression":case"OptionalCallExpression":case"TypeCastExpression":case"JSXElement":case"JSXFragment":case"BindExpression":case"DoExpression":case"RecordExpression":case"TupleExpression":case"DecimalLiteral":case"ModuleExpression":case"TopicReference":case"PipelineTopicExpression":case"PipelineBareFunction":case"PipelinePrimaryTopicReference":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(n.expectedNode){case"Expression":case"Identifier":case"StringLiteral":break;default:return!1}break;default:return!1}return t==null||(0,Pe.default)(n,t)}function but(n,t){if(!n)return!1;switch(n.type){case"BinaryExpression":case"LogicalExpression":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function xut(n,t){if(!n)return!1;switch(n.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ClassExpression":case"ClassDeclaration":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if(n.expectedNode==="BlockStatement")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Rut(n,t){if(!n)return!1;switch(n.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if(n.expectedNode==="BlockStatement")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Eut(n,t){if(!n)return!1;switch(n.type){case"BlockStatement":case"Program":case"TSModuleBlock":break;case"Placeholder":if(n.expectedNode==="BlockStatement")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Sut(n,t){if(!n)return!1;switch(n.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ForOfStatement":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":case"TSImportEqualsDeclaration":case"TSExportAssignment":case"TSNamespaceExportDeclaration":break;case"Placeholder":switch(n.expectedNode){case"Statement":case"Declaration":case"BlockStatement":break;default:return!1}break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Tut(n,t){if(!n)return!1;switch(n.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":case"YieldExpression":case"AwaitExpression":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function wut(n,t){if(!n)return!1;switch(n.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Put(n,t){if(!n)return!1;switch(n.type){case"ConditionalExpression":case"IfStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Aut(n,t){if(!n)return!1;switch(n.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":case"ForOfStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Iut(n,t){if(!n)return!1;switch(n.type){case"DoWhileStatement":case"WhileStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Cut(n,t){if(!n)return!1;switch(n.type){case"ExpressionStatement":case"ParenthesizedExpression":case"TypeCastExpression":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function jut(n,t){if(!n)return!1;switch(n.type){case"ForInStatement":case"ForStatement":case"ForOfStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Out(n,t){if(!n)return!1;switch(n.type){case"ForInStatement":case"ForOfStatement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function _ut(n,t){if(!n)return!1;switch(n.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Nut(n,t){if(!n)return!1;switch(n.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function kut(n,t){if(!n)return!1;switch(n.type){case"FunctionDeclaration":case"FunctionExpression":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"ArrowFunctionExpression":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if(n.expectedNode==="StringLiteral")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Dut(n,t){if(!n)return!1;switch(n.type){case"FunctionDeclaration":case"VariableDeclaration":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":break;case"Placeholder":if(n.expectedNode==="Declaration")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Lut(n,t){if(!n)return!1;switch(n.type){case"Identifier":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(n.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Mut(n,t){if(!n)return!1;switch(n.type){case"Identifier":case"MemberExpression":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"TSParameterProperty":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(n.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return t==null||(0,Pe.default)(n,t)}function But(n,t){if(!n)return!1;switch(n.type){case"Identifier":case"TSQualifiedName":break;case"Placeholder":if(n.expectedNode==="Identifier")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Fut(n,t){if(!n)return!1;switch(n.type){case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"TemplateLiteral":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if(n.expectedNode==="StringLiteral")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function $ut(n,t){if(!n)return!1;switch(n.type){case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"BigIntLiteral":case"JSXAttribute":case"JSXClosingElement":case"JSXElement":case"JSXExpressionContainer":case"JSXSpreadChild":case"JSXOpeningElement":case"JSXText":case"JSXFragment":case"JSXOpeningFragment":case"JSXClosingFragment":case"DecimalLiteral":break;case"Placeholder":if(n.expectedNode==="StringLiteral")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function qut(n,t){if(!n)return!1;switch(n.type){case"ObjectMethod":case"ObjectProperty":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Uut(n,t){if(!n)return!1;switch(n.type){case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Vut(n,t){if(!n)return!1;switch(n.type){case"ObjectMethod":case"ObjectProperty":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Wut(n,t){if(!n)return!1;switch(n.type){case"ObjectProperty":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Gut(n,t){if(!n)return!1;switch(n.type){case"UnaryExpression":case"SpreadElement":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Kut(n,t){if(!n)return!1;switch(n.type){case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":break;case"Placeholder":if(n.expectedNode==="Pattern")break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Hut(n,t){if(!n)return!1;switch(n.type){case"ClassExpression":case"ClassDeclaration":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function hye(n,t){if(!n)return!1;switch(n.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function zut(n,t){if(!n)return!1;switch(n.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Xut(n,t){if(!n)return!1;switch(n.type){case"ExportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Jut(n,t){if(!n)return!1;switch(n.type){case"ClassAccessorProperty":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Yut(n,t){if(!n)return!1;switch(n.type){case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Qut(n,t){if(!n)return!1;switch(n.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ClassImplements":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"DeclaredPredicate":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"FunctionTypeParam":case"GenericTypeAnnotation":case"InferredPredicate":case"InterfaceExtends":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":case"OpaqueType":case"QualifiedTypeIdentifier":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"TypeAlias":case"TypeAnnotation":case"TypeCastExpression":case"TypeParameter":case"TypeParameterDeclaration":case"TypeParameterInstantiation":case"UnionTypeAnnotation":case"Variance":case"VoidTypeAnnotation":case"EnumDeclaration":case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function Zut(n,t){if(!n)return!1;switch(n.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"UnionTypeAnnotation":case"VoidTypeAnnotation":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function ect(n,t){if(!n)return!1;switch(n.type){case"AnyTypeAnnotation":case"BooleanTypeAnnotation":case"NullLiteralTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NumberTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"VoidTypeAnnotation":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function tct(n,t){if(!n)return!1;switch(n.type){case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function rct(n,t){if(!n)return!1;switch(n.type){case"DeclaredPredicate":case"InferredPredicate":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function act(n,t){if(!n)return!1;switch(n.type){case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function nct(n,t){if(!n)return!1;switch(n.type){case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function sct(n,t){if(!n)return!1;switch(n.type){case"JSXAttribute":case"JSXClosingElement":case"JSXElement":case"JSXEmptyExpression":case"JSXExpressionContainer":case"JSXSpreadChild":case"JSXIdentifier":case"JSXMemberExpression":case"JSXNamespacedName":case"JSXOpeningElement":case"JSXSpreadAttribute":case"JSXText":case"JSXFragment":case"JSXOpeningFragment":case"JSXClosingFragment":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function ict(n,t){if(!n)return!1;switch(n.type){case"Noop":case"Placeholder":case"V8IntrinsicIdentifier":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function oct(n,t){if(!n)return!1;switch(n.type){case"TSParameterProperty":case"TSDeclareFunction":case"TSDeclareMethod":case"TSQualifiedName":case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSNamedTupleMember":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSInterfaceDeclaration":case"TSInterfaceBody":case"TSTypeAliasDeclaration":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSEnumDeclaration":case"TSEnumMember":case"TSModuleDeclaration":case"TSModuleBlock":case"TSImportType":case"TSImportEqualsDeclaration":case"TSExternalModuleReference":case"TSNonNullExpression":case"TSExportAssignment":case"TSNamespaceExportDeclaration":case"TSTypeAnnotation":case"TSTypeParameterInstantiation":case"TSTypeParameterDeclaration":case"TSTypeParameter":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function lct(n,t){if(!n)return!1;switch(n.type){case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function uct(n,t){if(!n)return!1;switch(n.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSImportType":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function cct(n,t){if(!n)return!1;switch(n.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSLiteralType":break;default:return!1}return t==null||(0,Pe.default)(n,t)}function dct(n,t){return(0,Dy.default)("isNumberLiteral","isNumericLiteral"),!n||n.type!=="NumberLiteral"?!1:t==null||(0,Pe.default)(n,t)}function pct(n,t){return(0,Dy.default)("isRegexLiteral","isRegExpLiteral"),!n||n.type!=="RegexLiteral"?!1:t==null||(0,Pe.default)(n,t)}function fct(n,t){return(0,Dy.default)("isRestProperty","isRestElement"),!n||n.type!=="RestProperty"?!1:t==null||(0,Pe.default)(n,t)}function hct(n,t){return(0,Dy.default)("isSpreadProperty","isSpreadElement"),!n||n.type!=="SpreadProperty"?!1:t==null||(0,Pe.default)(n,t)}function mct(n,t){return(0,Dy.default)("isModuleDeclaration","isImportOrExportDeclaration"),hye(n,t)}Object.defineProperty(p6,"__esModule",{value:!0});p6.default=yct;var _m=ve;function yct(n,t,a){if(!(0,_m.isMemberExpression)(n))return!1;const i=Array.isArray(t)?t:t.split("."),d=[];let p;for(p=n;(0,_m.isMemberExpression)(p);p=p.object)d.push(p.property);if(d.push(p),d.length<i.length||!a&&d.length>i.length)return!1;for(let y=0,b=d.length-1;y<i.length;y++,b--){const v=d[b];let E;if((0,_m.isIdentifier)(v))E=v.name;else if((0,_m.isStringLiteral)(v))E=v.value;else if((0,_m.isThisExpression)(v))E="this";else return!1;if(i[y]!==E)return!1}return!0}Object.defineProperty(d6,"__esModule",{value:!0});d6.default=vct;var gct=p6;function vct(n,t){const a=n.split(".");return i=>(0,gct.default)(i,a,t)}Object.defineProperty(c6,"__esModule",{value:!0});c6.default=void 0;var bct=d6;const xct=(0,bct.default)("React.Component");c6.default=xct;var FD={};Object.defineProperty(FD,"__esModule",{value:!0});FD.default=Rct;function Rct(n){return!!n&&/^[a-z]/.test(n)}var yb={},gb={},ye={},vb={},Ep={},z_={};let Nm=null;function sy(n){if(Nm!==null&&typeof Nm.property){const t=Nm;return Nm=sy.prototype=null,t}return Nm=sy.prototype=n??Object.create(null),new sy}sy();var Ect=function(t){return sy(t)},ms={},bb={},xb={},tpe;function $D(){if(tpe)return xb;tpe=1,Object.defineProperty(xb,"__esModule",{value:!0}),xb.default=t;var n=Ji();function t(a,i){if(a===i)return!0;if(a==null||n.ALIAS_KEYS[i])return!1;const d=n.FLIPPED_ALIAS_KEYS[i];if(d){if(d[0]===a)return!0;for(const p of d)if(a===p)return!0}return!1}return xb}var Rb={},rpe;function mye(){if(rpe)return Rb;rpe=1,Object.defineProperty(Rb,"__esModule",{value:!0}),Rb.default=t;var n=Ji();function t(a,i){if(a===i)return!0;const d=n.PLACEHOLDERS_ALIAS[a];if(d){for(const p of d)if(i===p)return!0}return!1}return Rb}var ape;function Ly(){if(ape)return bb;ape=1,Object.defineProperty(bb,"__esModule",{value:!0}),bb.default=d;var n=ky,t=$D(),a=mye(),i=Ji();function d(p,y,b){return y?(0,t.default)(y.type,p)?typeof b>"u"?!0:(0,n.default)(y,b):!b&&y.type==="Placeholder"&&p in i.FLIPPED_ALIAS_KEYS?(0,a.default)(y.expectedNode,p):!1:!1}return bb}var ld={},My={},By={};Object.defineProperty(By,"__esModule",{value:!0});By.isIdentifierChar=bye;By.isIdentifierName=Pct;By.isIdentifierStart=vye;let qD="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",yye="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const Sct=new RegExp("["+qD+"]"),Tct=new RegExp("["+qD+yye+"]");qD=yye=null;const gye=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],wct=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];function mk(n,t){let a=65536;for(let i=0,d=t.length;i<d;i+=2){if(a+=t[i],a>n)return!1;if(a+=t[i+1],a>=n)return!0}return!1}function vye(n){return n<65?n===36:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&Sct.test(String.fromCharCode(n)):mk(n,gye)}function bye(n){return n<48?n===36:n<58?!0:n<65?!1:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&Tct.test(String.fromCharCode(n)):mk(n,gye)||mk(n,wct)}function Pct(n){let t=!0;for(let a=0;a<n.length;a++){let i=n.charCodeAt(a);if((i&64512)===55296&&a+1<n.length){const d=n.charCodeAt(++a);(d&64512)===56320&&(i=65536+((i&1023)<<10)+(d&1023))}if(t){if(t=!1,!vye(i))return!1}else if(!bye(i))return!1}return!t}var ud={};Object.defineProperty(ud,"__esModule",{value:!0});ud.isKeyword=Oct;ud.isReservedWord=xye;ud.isStrictBindOnlyReservedWord=Eye;ud.isStrictBindReservedWord=jct;ud.isStrictReservedWord=Rye;const UD={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},Act=new Set(UD.keyword),Ict=new Set(UD.strict),Cct=new Set(UD.strictBind);function xye(n,t){return t&&n==="await"||n==="enum"}function Rye(n,t){return xye(n,t)||Ict.has(n)}function Eye(n){return Cct.has(n)}function jct(n,t){return Rye(n,t)||Eye(n)}function Oct(n){return Act.has(n)}(function(n){Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isIdentifierChar",{enumerable:!0,get:function(){return t.isIdentifierChar}}),Object.defineProperty(n,"isIdentifierName",{enumerable:!0,get:function(){return t.isIdentifierName}}),Object.defineProperty(n,"isIdentifierStart",{enumerable:!0,get:function(){return t.isIdentifierStart}}),Object.defineProperty(n,"isKeyword",{enumerable:!0,get:function(){return a.isKeyword}}),Object.defineProperty(n,"isReservedWord",{enumerable:!0,get:function(){return a.isReservedWord}}),Object.defineProperty(n,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return a.isStrictBindOnlyReservedWord}}),Object.defineProperty(n,"isStrictBindReservedWord",{enumerable:!0,get:function(){return a.isStrictBindReservedWord}}),Object.defineProperty(n,"isStrictReservedWord",{enumerable:!0,get:function(){return a.isStrictReservedWord}});var t=By,a=ud})(My);Object.defineProperty(ld,"__esModule",{value:!0});ld.default=_ct;var X_=My;function _ct(n,t=!0){return typeof n!="string"||t&&((0,X_.isKeyword)(n)||(0,X_.isStrictReservedWord)(n,!0))?!1:(0,X_.isIdentifierName)(n)}var Fy={};Object.defineProperty(Fy,"__esModule",{value:!0});Fy.readCodePoint=Tye;Fy.readInt=Sye;Fy.readStringContents=kct;var Nct=function(t){return t>=48&&t<=57};const npe={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},Eb={bin:n=>n===48||n===49,oct:n=>n>=48&&n<=55,dec:n=>n>=48&&n<=57,hex:n=>n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102};function kct(n,t,a,i,d,p){const y=a,b=i,v=d;let E="",S=null,A=a;const{length:_}=t;for(;;){if(a>=_){p.unterminated(y,b,v),E+=t.slice(A,a);break}const C=t.charCodeAt(a);if(Dct(n,C,t,a)){E+=t.slice(A,a);break}if(C===92){E+=t.slice(A,a);const q=Lct(t,a,i,d,n==="template",p);q.ch===null&&!S?S={pos:a,lineStart:i,curLine:d}:E+=q.ch,{pos:a,lineStart:i,curLine:d}=q,A=a}else C===8232||C===8233?(++a,++d,i=a):C===10||C===13?n==="template"?(E+=t.slice(A,a)+` +`,++a,C===13&&t.charCodeAt(a)===10&&++a,++d,A=i=a):p.unterminated(y,b,v):++a}return{pos:a,str:E,firstInvalidLoc:S,lineStart:i,curLine:d,containsInvalid:!!S}}function Dct(n,t,a,i){return n==="template"?t===96||t===36&&a.charCodeAt(i+1)===123:t===(n==="double"?34:39)}function Lct(n,t,a,i,d,p){const y=!d;t++;const b=E=>({pos:t,ch:E,lineStart:a,curLine:i}),v=n.charCodeAt(t++);switch(v){case 110:return b(` +`);case 114:return b("\r");case 120:{let E;return{code:E,pos:t}=yk(n,t,a,i,2,!1,y,p),b(E===null?null:String.fromCharCode(E))}case 117:{let E;return{code:E,pos:t}=Tye(n,t,a,i,y,p),b(E===null?null:String.fromCodePoint(E))}case 116:return b(" ");case 98:return b("\b");case 118:return b("\v");case 102:return b("\f");case 13:n.charCodeAt(t)===10&&++t;case 10:a=t,++i;case 8232:case 8233:return b("");case 56:case 57:if(d)return b(null);p.strictNumericEscape(t-1,a,i);default:if(v>=48&&v<=55){const E=t-1;let A=/^[0-7]+/.exec(n.slice(E,t+2))[0],_=parseInt(A,8);_>255&&(A=A.slice(0,-1),_=parseInt(A,8)),t+=A.length-1;const C=n.charCodeAt(t);if(A!=="0"||C===56||C===57){if(d)return b(null);p.strictNumericEscape(E,a,i)}return b(String.fromCharCode(_))}return b(String.fromCharCode(v))}}function yk(n,t,a,i,d,p,y,b){const v=t;let E;return{n:E,pos:t}=Sye(n,t,a,i,16,d,p,!1,b,!y),E===null&&(y?b.invalidEscapeSequence(v,a,i):t=v-1),{code:E,pos:t}}function Sye(n,t,a,i,d,p,y,b,v,E){const S=t,A=d===16?npe.hex:npe.decBinOct,_=d===16?Eb.hex:d===10?Eb.dec:d===8?Eb.oct:Eb.bin;let C=!1,q=0;for(let M=0,W=p??1/0;M<W;++M){const z=n.charCodeAt(t);let Y;if(z===95&&b!=="bail"){const Z=n.charCodeAt(t-1),ce=n.charCodeAt(t+1);if(b){if(Number.isNaN(ce)||!_(ce)||A.has(Z)||A.has(ce)){if(E)return{n:null,pos:t};v.unexpectedNumericSeparator(t,a,i)}}else{if(E)return{n:null,pos:t};v.numericSeparatorInEscapeSequence(t,a,i)}++t;continue}if(z>=97?Y=z-97+10:z>=65?Y=z-65+10:Nct(z)?Y=z-48:Y=1/0,Y>=d){if(Y<=9&&E)return{n:null,pos:t};if(Y<=9&&v.invalidDigit(t,a,i,d))Y=0;else if(y)Y=0,C=!0;else break}++t,q=q*d+Y}return t===S||p!=null&&t-S!==p||C?{n:null,pos:t}:{n:q,pos:t}}function Tye(n,t,a,i,d,p){const y=n.charCodeAt(t);let b;if(y===123){if(++t,{code:b,pos:t}=yk(n,t,a,i,n.indexOf("}",t)-t,!0,d,p),++t,b!==null&&b>1114111)if(d)p.invalidCodePoint(t,a,i);else return{code:null,pos:t}}else({code:b,pos:t}=yk(n,t,a,i,4,!1,d,p));return{code:b,pos:t}}var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0});Kr.UPDATE_OPERATORS=Kr.UNARY_OPERATORS=Kr.STRING_UNARY_OPERATORS=Kr.STATEMENT_OR_BLOCK_KEYS=Kr.NUMBER_UNARY_OPERATORS=Kr.NUMBER_BINARY_OPERATORS=Kr.NOT_LOCAL_BINDING=Kr.LOGICAL_OPERATORS=Kr.INHERIT_KEYS=Kr.FOR_INIT_KEYS=Kr.FLATTENABLE_KEYS=Kr.EQUALITY_BINARY_OPERATORS=Kr.COMPARISON_BINARY_OPERATORS=Kr.COMMENT_KEYS=Kr.BOOLEAN_UNARY_OPERATORS=Kr.BOOLEAN_NUMBER_BINARY_OPERATORS=Kr.BOOLEAN_BINARY_OPERATORS=Kr.BLOCK_SCOPED_SYMBOL=Kr.BINARY_OPERATORS=Kr.ASSIGNMENT_OPERATORS=void 0;Kr.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"];Kr.FLATTENABLE_KEYS=["body","expressions"];Kr.FOR_INIT_KEYS=["left","init"];Kr.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"];const Mct=Kr.LOGICAL_OPERATORS=["||","&&","??"];Kr.UPDATE_OPERATORS=["++","--"];const Bct=Kr.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="],Fct=Kr.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],$ct=Kr.COMPARISON_BINARY_OPERATORS=[...Fct,"in","instanceof"],qct=Kr.BOOLEAN_BINARY_OPERATORS=[...$ct,...Bct],wye=Kr.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"];Kr.BINARY_OPERATORS=["+",...wye,...qct,"|>"];Kr.ASSIGNMENT_OPERATORS=["=","+=",...wye.map(n=>n+"="),...Mct.map(n=>n+"=")];const Uct=Kr.BOOLEAN_UNARY_OPERATORS=["delete","!"],Vct=Kr.NUMBER_UNARY_OPERATORS=["+","-","~"],Wct=Kr.STRING_UNARY_OPERATORS=["typeof"];Kr.UNARY_OPERATORS=["void","throw",...Uct,...Vct,...Wct];Kr.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]};Kr.BLOCK_SCOPED_SYMBOL=Symbol.for("var used to be block scoped");Kr.NOT_LOCAL_BINDING=Symbol.for("should not be considered a local binding");var ha={},spe;function Nu(){if(spe)return ha;spe=1,Object.defineProperty(ha,"__esModule",{value:!0}),ha.VISITOR_KEYS=ha.NODE_PARENT_VALIDATIONS=ha.NODE_FIELDS=ha.FLIPPED_ALIAS_KEYS=ha.DEPRECATED_KEYS=ha.BUILDER_KEYS=ha.ALIAS_KEYS=void 0,ha.arrayOf=M,ha.arrayOfType=W,ha.assertEach=Y,ha.assertNodeOrValueType=ge,ha.assertNodeType=ce,ha.assertOneOf=Z,ha.assertOptionalChainStart=re,ha.assertShape=Je,ha.assertValueType=Ge,ha.chain=Ae,ha.default=Qt,ha.defineAliasedType=kt,ha.typeIs=A,ha.validate=S,ha.validateArrayOfType=z,ha.validateOptional=C,ha.validateOptionalType=q,ha.validateType=_;var n=Ly(),t=VD();const a=ha.VISITOR_KEYS={},i=ha.ALIAS_KEYS={},d=ha.FLIPPED_ALIAS_KEYS={},p=ha.NODE_FIELDS={},y=ha.BUILDER_KEYS={},b=ha.DEPRECATED_KEYS={},v=ha.NODE_PARENT_VALIDATIONS={};function E(mt){return Array.isArray(mt)?"array":mt===null?"null":typeof mt}function S(mt){return{validate:mt}}function A(mt){return typeof mt=="string"?ce(mt):ce(...mt)}function _(mt){return S(A(mt))}function C(mt){return{validate:mt,optional:!0}}function q(mt){return{validate:A(mt),optional:!0}}function M(mt){return Ae(Ge("array"),Y(mt))}function W(mt){return M(A(mt))}function z(mt){return S(W(mt))}function Y(mt){function Tt(ne,Zt,pt){if(Array.isArray(pt))for(let bt=0;bt<pt.length;bt++){const ht=`${Zt}[${bt}]`,Se=pt[bt];mt(ne,ht,Se),ra.BABEL_TYPES_8_BREAKING&&(0,t.validateChild)(ne,ht,Se)}}return Tt.each=mt,Tt}function Z(...mt){function Tt(ne,Zt,pt){if(!mt.includes(pt))throw new TypeError(`Property ${Zt} expected value to be one of ${JSON.stringify(mt)} but got ${JSON.stringify(pt)}`)}return Tt.oneOf=mt,Tt}function ce(...mt){function Tt(ne,Zt,pt){for(const bt of mt)if((0,n.default)(bt,pt)){(0,t.validateChild)(ne,Zt,pt);return}throw new TypeError(`Property ${Zt} of ${ne.type} expected node to be of a type ${JSON.stringify(mt)} but instead got ${JSON.stringify(pt==null?void 0:pt.type)}`)}return Tt.oneOfNodeTypes=mt,Tt}function ge(...mt){function Tt(ne,Zt,pt){for(const bt of mt)if(E(pt)===bt||(0,n.default)(bt,pt)){(0,t.validateChild)(ne,Zt,pt);return}throw new TypeError(`Property ${Zt} of ${ne.type} expected node to be of a type ${JSON.stringify(mt)} but instead got ${JSON.stringify(pt==null?void 0:pt.type)}`)}return Tt.oneOfNodeOrValueTypes=mt,Tt}function Ge(mt){function Tt(ne,Zt,pt){if(!(E(pt)===mt))throw new TypeError(`Property ${Zt} expected type of ${mt} but got ${E(pt)}`)}return Tt.type=mt,Tt}function Je(mt){function Tt(ne,Zt,pt){const bt=[];for(const ht of Object.keys(mt))try{(0,t.validateField)(ne,ht,pt[ht],mt[ht])}catch(Se){if(Se instanceof TypeError){bt.push(Se.message);continue}throw Se}if(bt.length)throw new TypeError(`Property ${Zt} of ${ne.type} expected to have the following: +${bt.join(` +`)}`)}return Tt.shapeOf=mt,Tt}function re(){function mt(Tt){var ne;let Zt=Tt;for(;Tt;){const{type:pt}=Zt;if(pt==="OptionalCallExpression"){if(Zt.optional)return;Zt=Zt.callee;continue}if(pt==="OptionalMemberExpression"){if(Zt.optional)return;Zt=Zt.object;continue}break}throw new TypeError(`Non-optional ${Tt.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(ne=Zt)==null?void 0:ne.type}`)}return mt}function Ae(...mt){function Tt(...ne){for(const Zt of mt)Zt(...ne)}if(Tt.chainOf=mt,mt.length>=2&&"type"in mt[0]&&mt[0].type==="array"&&!("each"in mt[1]))throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');return Tt}const je=["aliases","builder","deprecatedAlias","fields","inherits","visitor","validate"],se=["default","optional","deprecated","validate"],fe={};function kt(...mt){return(Tt,ne={})=>{let Zt=ne.aliases;if(!Zt){var pt,bt;ne.inherits&&(Zt=(pt=fe[ne.inherits].aliases)==null?void 0:pt.slice()),(bt=Zt)!=null||(Zt=[]),ne.aliases=Zt}const ht=mt.filter(Se=>!Zt.includes(Se));Zt.unshift(...ht),Qt(Tt,ne)}}function Qt(mt,Tt={}){const ne=Tt.inherits&&fe[Tt.inherits]||{};let Zt=Tt.fields;if(!Zt&&(Zt={},ne.fields)){const Se=Object.getOwnPropertyNames(ne.fields);for(const Me of Se){const le=ne.fields[Me],Oe=le.default;if(Array.isArray(Oe)?Oe.length>0:Oe&&typeof Oe=="object")throw new Error("field defaults can only be primitives or empty arrays currently");Zt[Me]={default:Array.isArray(Oe)?[]:Oe,optional:le.optional,deprecated:le.deprecated,validate:le.validate}}}const pt=Tt.visitor||ne.visitor||[],bt=Tt.aliases||ne.aliases||[],ht=Tt.builder||ne.builder||Tt.visitor||[];for(const Se of Object.keys(Tt))if(!je.includes(Se))throw new Error(`Unknown type option "${Se}" on ${mt}`);Tt.deprecatedAlias&&(b[Tt.deprecatedAlias]=mt);for(const Se of pt.concat(ht))Zt[Se]=Zt[Se]||{};for(const Se of Object.keys(Zt)){const Me=Zt[Se];Me.default!==void 0&&!ht.includes(Se)&&(Me.optional=!0),Me.default===void 0?Me.default=null:!Me.validate&&Me.default!=null&&(Me.validate=Ge(E(Me.default)));for(const le of Object.keys(Me))if(!se.includes(le))throw new Error(`Unknown field key "${le}" on ${mt}.${Se}`)}a[mt]=Tt.visitor=pt,y[mt]=Tt.builder=ht,p[mt]=Tt.fields=Zt,i[mt]=Tt.aliases=bt,bt.forEach(Se=>{d[Se]=d[Se]||[],d[Se].push(mt)}),Tt.validate&&(v[mt]=Tt.validate),fe[mt]=Tt}return ha}var ipe;function Pye(){if(ipe)return ms;ipe=1,Object.defineProperty(ms,"__esModule",{value:!0}),ms.patternLikeCommon=ms.functionTypeAnnotationCommon=ms.functionDeclarationCommon=ms.functionCommon=ms.classMethodOrPropertyCommon=ms.classMethodOrDeclareMethodCommon=void 0;var n=Ly(),t=ld,a=My,i=Fy,d=Kr,p=Nu();const y=(0,p.defineAliasedType)("Standardized");y("ArrayExpression",{fields:{elements:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:ra.BABEL_TYPES_8_BREAKING?void 0:[]}},visitor:["elements"],aliases:["Expression"]}),y("AssignmentExpression",{fields:{operator:{validate:function(){if(!ra.BABEL_TYPES_8_BREAKING)return(0,p.assertValueType)("string");const C=(0,p.assertOneOf)(...d.ASSIGNMENT_OPERATORS),q=(0,p.assertOneOf)("=");return function(M,W,z){((0,n.default)("Pattern",M.left)?q:C)(M,W,z)}}()},left:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.assertNodeType)("Identifier","MemberExpression","OptionalMemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):(0,p.assertNodeType)("LVal","OptionalMemberExpression")},right:{validate:(0,p.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),y("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:(0,p.assertOneOf)(...d.BINARY_OPERATORS)},left:{validate:function(){const C=(0,p.assertNodeType)("Expression"),q=(0,p.assertNodeType)("Expression","PrivateName");return Object.assign(function(W,z,Y){(W.operator==="in"?q:C)(W,z,Y)},{oneOfNodeTypes:["Expression","PrivateName"]})}()},right:{validate:(0,p.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),y("InterpreterDirective",{builder:["value"],fields:{value:{validate:(0,p.assertValueType)("string")}}}),y("Directive",{visitor:["value"],fields:{value:{validate:(0,p.assertNodeType)("DirectiveLiteral")}}}),y("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,p.assertValueType)("string")}}}),y("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Directive"))),default:[]},body:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),y("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,p.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),y("CallExpression",{visitor:["callee","arguments","typeParameters","typeArguments"],builder:["callee","arguments"],aliases:["Expression"],fields:Object.assign({callee:{validate:(0,p.assertNodeType)("Expression","Super","V8IntrinsicIdentifier")},arguments:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Expression","SpreadElement","ArgumentPlaceholder")))}},ra.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:(0,p.assertOneOf)(!0,!1),optional:!0}},{typeArguments:{validate:(0,p.assertNodeType)("TypeParameterInstantiation"),optional:!0},typeParameters:{validate:(0,p.assertNodeType)("TSTypeParameterInstantiation"),optional:!0}})}),y("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,p.assertNodeType)("Identifier","ArrayPattern","ObjectPattern"),optional:!0},body:{validate:(0,p.assertNodeType)("BlockStatement")}},aliases:["Scopable","BlockParent"]}),y("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,p.assertNodeType)("Expression")},consequent:{validate:(0,p.assertNodeType)("Expression")},alternate:{validate:(0,p.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),y("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,p.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),y("DebuggerStatement",{aliases:["Statement"]}),y("DoWhileStatement",{builder:["test","body"],visitor:["body","test"],fields:{test:{validate:(0,p.assertNodeType)("Expression")},body:{validate:(0,p.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),y("EmptyStatement",{aliases:["Statement"]}),y("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,p.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),y("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,p.assertNodeType)("Program")},comments:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.assertEach)((0,p.assertNodeType)("CommentBlock","CommentLine")):Object.assign(()=>{},{each:{oneOfNodeTypes:["CommentBlock","CommentLine"]}}),optional:!0},tokens:{validate:(0,p.assertEach)(Object.assign(()=>{},{type:"any"})),optional:!0}}}),y("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.assertNodeType)("VariableDeclaration","Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):(0,p.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,p.assertNodeType)("Expression")},body:{validate:(0,p.assertNodeType)("Statement")}}}),y("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,p.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,p.assertNodeType)("Expression"),optional:!0},update:{validate:(0,p.assertNodeType)("Expression"),optional:!0},body:{validate:(0,p.assertNodeType)("Statement")}}});const b=()=>({params:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Identifier","Pattern","RestElement")))},generator:{default:!1},async:{default:!1}});ms.functionCommon=b;const v=()=>({returnType:{validate:(0,p.assertNodeType)("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:(0,p.assertNodeType)("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0}});ms.functionTypeAnnotationCommon=v;const E=()=>Object.assign({},b(),{declare:{validate:(0,p.assertValueType)("boolean"),optional:!0},id:{validate:(0,p.assertNodeType)("Identifier"),optional:!0}});ms.functionDeclarationCommon=E,y("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","typeParameters","params","returnType","body"],fields:Object.assign({},E(),v(),{body:{validate:(0,p.assertNodeType)("BlockStatement")},predicate:{validate:(0,p.assertNodeType)("DeclaredPredicate","InferredPredicate"),optional:!0}}),aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"],validate:function(){if(!ra.BABEL_TYPES_8_BREAKING)return()=>{};const C=(0,p.assertNodeType)("Identifier");return function(q,M,W){(0,n.default)("ExportDefaultDeclaration",q)||C(W,"id",W.id)}}()}),y("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},b(),v(),{id:{validate:(0,p.assertNodeType)("Identifier"),optional:!0},body:{validate:(0,p.assertNodeType)("BlockStatement")},predicate:{validate:(0,p.assertNodeType)("DeclaredPredicate","InferredPredicate"),optional:!0}})});const S=()=>({typeAnnotation:{validate:(0,p.assertNodeType)("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},optional:{validate:(0,p.assertValueType)("boolean"),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0}});ms.patternLikeCommon=S,y("Identifier",{builder:["name"],visitor:["typeAnnotation","decorators"],aliases:["Expression","PatternLike","LVal","TSEntityName"],fields:Object.assign({},S(),{name:{validate:(0,p.chain)((0,p.assertValueType)("string"),Object.assign(function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&!(0,t.default)(M,!1))throw new TypeError(`"${M}" is not a valid identifier name`)},{type:"string"}))}}),validate(C,q,M){if(!ra.BABEL_TYPES_8_BREAKING)return;const W=/\.(\w+)$/.exec(q);if(!W)return;const[,z]=W,Y={computed:!1};if(z==="property"){if((0,n.default)("MemberExpression",C,Y)||(0,n.default)("OptionalMemberExpression",C,Y))return}else if(z==="key"){if((0,n.default)("Property",C,Y)||(0,n.default)("Method",C,Y))return}else if(z==="exported"){if((0,n.default)("ExportSpecifier",C))return}else if(z==="imported"){if((0,n.default)("ImportSpecifier",C,{imported:M}))return}else if(z==="meta"&&(0,n.default)("MetaProperty",C,{meta:M}))return;if(((0,a.isKeyword)(M.name)||(0,a.isReservedWord)(M.name,!1))&&M.name!=="this")throw new TypeError(`"${M.name}" is not a valid identifier`)}}),y("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,p.assertNodeType)("Expression")},consequent:{validate:(0,p.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,p.assertNodeType)("Statement")}}}),y("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,p.assertNodeType)("Identifier")},body:{validate:(0,p.assertNodeType)("Statement")}}}),y("StringLiteral",{builder:["value"],fields:{value:{validate:(0,p.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),y("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,p.chain)((0,p.assertValueType)("number"),Object.assign(function(C,q,M){},{type:"number"}))}},aliases:["Expression","Pureish","Literal","Immutable"]}),y("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),y("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,p.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),y("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Pureish","Literal"],fields:{pattern:{validate:(0,p.assertValueType)("string")},flags:{validate:(0,p.chain)((0,p.assertValueType)("string"),Object.assign(function(C,q,M){if(!ra.BABEL_TYPES_8_BREAKING)return;const W=/[^gimsuy]/.exec(M);if(W)throw new TypeError(`"${W[0]}" is not a valid RegExp flag`)},{type:"string"})),default:""}}}),y("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:(0,p.assertOneOf)(...d.LOGICAL_OPERATORS)},left:{validate:(0,p.assertNodeType)("Expression")},right:{validate:(0,p.assertNodeType)("Expression")}}}),y("MemberExpression",{builder:["object","property","computed",...ra.BABEL_TYPES_8_BREAKING?[]:["optional"]],visitor:["object","property"],aliases:["Expression","LVal"],fields:Object.assign({object:{validate:(0,p.assertNodeType)("Expression","Super")},property:{validate:function(){const C=(0,p.assertNodeType)("Identifier","PrivateName"),q=(0,p.assertNodeType)("Expression"),M=function(W,z,Y){(W.computed?q:C)(W,z,Y)};return M.oneOfNodeTypes=["Expression","Identifier","PrivateName"],M}()},computed:{default:!1}},ra.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:(0,p.assertOneOf)(!0,!1),optional:!0}})}),y("NewExpression",{inherits:"CallExpression"}),y("Program",{visitor:["directives","body"],builder:["body","directives","sourceType","interpreter"],fields:{sourceType:{validate:(0,p.assertOneOf)("script","module"),default:"script"},interpreter:{validate:(0,p.assertNodeType)("InterpreterDirective"),default:null,optional:!0},directives:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Directive"))),default:[]},body:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block"]}),y("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ObjectMethod","ObjectProperty","SpreadElement")))}}}),y("ObjectMethod",{builder:["kind","key","params","body","computed","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"],fields:Object.assign({},b(),v(),{kind:Object.assign({validate:(0,p.assertOneOf)("method","get","set")},ra.BABEL_TYPES_8_BREAKING?{}:{default:"method"}),computed:{default:!1},key:{validate:function(){const C=(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),q=(0,p.assertNodeType)("Expression"),M=function(W,z,Y){(W.computed?q:C)(W,z,Y)};return M.oneOfNodeTypes=["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral"],M}()},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},body:{validate:(0,p.assertNodeType)("BlockStatement")}}),aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),y("ObjectProperty",{builder:["key","value","computed","shorthand",...ra.BABEL_TYPES_8_BREAKING?[]:["decorators"]],fields:{computed:{default:!1},key:{validate:function(){const C=(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"),q=(0,p.assertNodeType)("Expression");return Object.assign(function(W,z,Y){(W.computed?q:C)(W,z,Y)},{oneOfNodeTypes:["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"]})}()},value:{validate:(0,p.assertNodeType)("Expression","PatternLike")},shorthand:{validate:(0,p.chain)((0,p.assertValueType)("boolean"),Object.assign(function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&M&&C.computed)throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true")},{type:"boolean"}),function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&M&&!(0,n.default)("Identifier",C.key))throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier")}),default:!1},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"],validate:function(){const C=(0,p.assertNodeType)("Identifier","Pattern","TSAsExpression","TSSatisfiesExpression","TSNonNullExpression","TSTypeAssertion"),q=(0,p.assertNodeType)("Expression");return function(M,W,z){if(!ra.BABEL_TYPES_8_BREAKING)return;((0,n.default)("ObjectPattern",M)?C:q)(z,"value",z.value)}}()}),y("RestElement",{visitor:["argument","typeAnnotation"],builder:["argument"],aliases:["LVal","PatternLike"],deprecatedAlias:"RestProperty",fields:Object.assign({},S(),{argument:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.assertNodeType)("Identifier","ArrayPattern","ObjectPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):(0,p.assertNodeType)("LVal")}}),validate(C,q){if(!ra.BABEL_TYPES_8_BREAKING)return;const M=/(\w+)\[(\d+)\]/.exec(q);if(!M)throw new Error("Internal Babel error: malformed key.");const[,W,z]=M;if(C[W].length>+z+1)throw new TypeError(`RestElement must be last element of ${W}`)}}),y("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,p.assertNodeType)("Expression"),optional:!0}}}),y("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Expression")))}},aliases:["Expression"]}),y("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,p.assertNodeType)("Expression")}}}),y("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,p.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Statement")))}}}),y("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,p.assertNodeType)("Expression")},cases:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("SwitchCase")))}}}),y("ThisExpression",{aliases:["Expression"]}),y("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,p.assertNodeType)("Expression")}}}),y("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{block:{validate:(0,p.chain)((0,p.assertNodeType)("BlockStatement"),Object.assign(function(C){if(ra.BABEL_TYPES_8_BREAKING&&!C.handler&&!C.finalizer)throw new TypeError("TryStatement expects either a handler or finalizer, or both")},{oneOfNodeTypes:["BlockStatement"]}))},handler:{optional:!0,validate:(0,p.assertNodeType)("CatchClause")},finalizer:{optional:!0,validate:(0,p.assertNodeType)("BlockStatement")}}}),y("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,p.assertNodeType)("Expression")},operator:{validate:(0,p.assertOneOf)(...d.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),y("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.assertNodeType)("Identifier","MemberExpression"):(0,p.assertNodeType)("Expression")},operator:{validate:(0,p.assertOneOf)(...d.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),y("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{declare:{validate:(0,p.assertValueType)("boolean"),optional:!0},kind:{validate:(0,p.assertOneOf)("var","let","const","using","await using")},declarations:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("VariableDeclarator")))}},validate(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&(0,n.default)("ForXStatement",C,{left:M})&&M.declarations.length!==1)throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${C.type}`)}}),y("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:function(){if(!ra.BABEL_TYPES_8_BREAKING)return(0,p.assertNodeType)("LVal");const C=(0,p.assertNodeType)("Identifier","ArrayPattern","ObjectPattern"),q=(0,p.assertNodeType)("Identifier");return function(M,W,z){(M.init?C:q)(M,W,z)}}()},definite:{optional:!0,validate:(0,p.assertValueType)("boolean")},init:{optional:!0,validate:(0,p.assertNodeType)("Expression")}}}),y("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,p.assertNodeType)("Expression")},body:{validate:(0,p.assertNodeType)("Statement")}}}),y("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{validate:(0,p.assertNodeType)("Expression")},body:{validate:(0,p.assertNodeType)("Statement")}}}),y("AssignmentPattern",{visitor:["left","right","decorators"],builder:["left","right"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},S(),{left:{validate:(0,p.assertNodeType)("Identifier","ObjectPattern","ArrayPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression")},right:{validate:(0,p.assertNodeType)("Expression")},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0}})}),y("ArrayPattern",{visitor:["elements","typeAnnotation"],builder:["elements"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},S(),{elements:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeOrValueType)("null","PatternLike","LVal")))}})}),y("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["typeParameters","params","returnType","body"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},b(),v(),{expression:{validate:(0,p.assertValueType)("boolean")},body:{validate:(0,p.assertNodeType)("BlockStatement","Expression")},predicate:{validate:(0,p.assertNodeType)("DeclaredPredicate","InferredPredicate"),optional:!0}})}),y("ClassBody",{visitor:["body"],fields:{body:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ClassMethod","ClassPrivateMethod","ClassProperty","ClassPrivateProperty","ClassAccessorProperty","TSDeclareMethod","TSIndexSignature","StaticBlock")))}}}),y("ClassExpression",{builder:["id","superClass","body","decorators"],visitor:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body"],aliases:["Scopable","Class","Expression"],fields:{id:{validate:(0,p.assertNodeType)("Identifier"),optional:!0},typeParameters:{validate:(0,p.assertNodeType)("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:(0,p.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,p.assertNodeType)("Expression")},superTypeParameters:{validate:(0,p.assertNodeType)("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},implements:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("TSExpressionWithTypeArguments","ClassImplements"))),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},mixins:{validate:(0,p.assertNodeType)("InterfaceExtends"),optional:!0}}}),y("ClassDeclaration",{inherits:"ClassExpression",aliases:["Scopable","Class","Statement","Declaration"],fields:{id:{validate:(0,p.assertNodeType)("Identifier"),optional:!0},typeParameters:{validate:(0,p.assertNodeType)("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:(0,p.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,p.assertNodeType)("Expression")},superTypeParameters:{validate:(0,p.assertNodeType)("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},implements:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("TSExpressionWithTypeArguments","ClassImplements"))),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},mixins:{validate:(0,p.assertNodeType)("InterfaceExtends"),optional:!0},declare:{validate:(0,p.assertValueType)("boolean"),optional:!0},abstract:{validate:(0,p.assertValueType)("boolean"),optional:!0}},validate:function(){const C=(0,p.assertNodeType)("Identifier");return function(q,M,W){ra.BABEL_TYPES_8_BREAKING&&((0,n.default)("ExportDefaultDeclaration",q)||C(W,"id",W.id))}}()}),y("ExportAllDeclaration",{builder:["source"],visitor:["source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{source:{validate:(0,p.assertNodeType)("StringLiteral")},exportKind:(0,p.validateOptional)((0,p.assertOneOf)("type","value")),attributes:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))},assertions:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))}}}),y("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,p.assertNodeType)("TSDeclareFunction","FunctionDeclaration","ClassDeclaration","Expression")},exportKind:(0,p.validateOptional)((0,p.assertOneOf)("value"))}}),y("ExportNamedDeclaration",{builder:["declaration","specifiers","source"],visitor:["declaration","specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{declaration:{optional:!0,validate:(0,p.chain)((0,p.assertNodeType)("Declaration"),Object.assign(function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&M&&C.specifiers.length)throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration")},{oneOfNodeTypes:["Declaration"]}),function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&M&&C.source)throw new TypeError("Cannot export a declaration from a source")})},attributes:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))},assertions:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))},specifiers:{default:[],validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)(function(){const C=(0,p.assertNodeType)("ExportSpecifier","ExportDefaultSpecifier","ExportNamespaceSpecifier"),q=(0,p.assertNodeType)("ExportSpecifier");return ra.BABEL_TYPES_8_BREAKING?function(M,W,z){(M.source?C:q)(M,W,z)}:C}()))},source:{validate:(0,p.assertNodeType)("StringLiteral"),optional:!0},exportKind:(0,p.validateOptional)((0,p.assertOneOf)("type","value"))}}),y("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,p.assertNodeType)("Identifier")},exported:{validate:(0,p.assertNodeType)("Identifier","StringLiteral")},exportKind:{validate:(0,p.assertOneOf)("type","value"),optional:!0}}}),y("ForOfStatement",{visitor:["left","right","body"],builder:["left","right","body","await"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:function(){if(!ra.BABEL_TYPES_8_BREAKING)return(0,p.assertNodeType)("VariableDeclaration","LVal");const C=(0,p.assertNodeType)("VariableDeclaration"),q=(0,p.assertNodeType)("Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression");return function(M,W,z){(0,n.default)("VariableDeclaration",z)?C(M,W,z):q(M,W,z)}}()},right:{validate:(0,p.assertNodeType)("Expression")},body:{validate:(0,p.assertNodeType)("Statement")},await:{default:!1}}}),y("ImportDeclaration",{builder:["specifiers","source"],visitor:["specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration"],fields:{attributes:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))},assertions:{optional:!0,validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportAttribute")))},module:{optional:!0,validate:(0,p.assertValueType)("boolean")},phase:{default:null,validate:(0,p.assertOneOf)("source","defer")},specifiers:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,p.assertNodeType)("StringLiteral")},importKind:{validate:(0,p.assertOneOf)("type","typeof","value"),optional:!0}}}),y("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,p.assertNodeType)("Identifier")}}}),y("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,p.assertNodeType)("Identifier")}}}),y("ImportSpecifier",{visitor:["imported","local"],builder:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,p.assertNodeType)("Identifier")},imported:{validate:(0,p.assertNodeType)("Identifier","StringLiteral")},importKind:{validate:(0,p.assertOneOf)("type","typeof","value"),optional:!0}}}),y("ImportExpression",{visitor:["source","options"],aliases:["Expression"],fields:{phase:{default:null,validate:(0,p.assertOneOf)("source","defer")},source:{validate:(0,p.assertNodeType)("Expression")},options:{validate:(0,p.assertNodeType)("Expression"),optional:!0}}}),y("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,p.chain)((0,p.assertNodeType)("Identifier"),Object.assign(function(C,q,M){if(!ra.BABEL_TYPES_8_BREAKING)return;let W;switch(M.name){case"function":W="sent";break;case"new":W="target";break;case"import":W="meta";break}if(!(0,n.default)("Identifier",C.property,{name:W}))throw new TypeError("Unrecognised MetaProperty")},{oneOfNodeTypes:["Identifier"]}))},property:{validate:(0,p.assertNodeType)("Identifier")}}});const A=()=>({abstract:{validate:(0,p.assertValueType)("boolean"),optional:!0},accessibility:{validate:(0,p.assertOneOf)("public","private","protected"),optional:!0},static:{default:!1},override:{default:!1},computed:{default:!1},optional:{validate:(0,p.assertValueType)("boolean"),optional:!0},key:{validate:(0,p.chain)(function(){const C=(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),q=(0,p.assertNodeType)("Expression");return function(M,W,z){(M.computed?q:C)(M,W,z)}}(),(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression"))}});ms.classMethodOrPropertyCommon=A;const _=()=>Object.assign({},b(),A(),{params:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Identifier","Pattern","RestElement","TSParameterProperty")))},kind:{validate:(0,p.assertOneOf)("get","set","method","constructor"),default:"method"},access:{validate:(0,p.chain)((0,p.assertValueType)("string"),(0,p.assertOneOf)("public","private","protected")),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0}});return ms.classMethodOrDeclareMethodCommon=_,y("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"],fields:Object.assign({},_(),v(),{body:{validate:(0,p.assertNodeType)("BlockStatement")}})}),y("ObjectPattern",{visitor:["properties","typeAnnotation","decorators"],builder:["properties"],aliases:["Pattern","PatternLike","LVal"],fields:Object.assign({},S(),{properties:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("RestElement","ObjectProperty")))}})}),y("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],deprecatedAlias:"SpreadProperty",fields:{argument:{validate:(0,p.assertNodeType)("Expression")}}}),y("Super",{aliases:["Expression"]}),y("TaggedTemplateExpression",{visitor:["tag","typeParameters","quasi"],builder:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,p.assertNodeType)("Expression")},quasi:{validate:(0,p.assertNodeType)("TemplateLiteral")},typeParameters:{validate:(0,p.assertNodeType)("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0}}}),y("TemplateElement",{builder:["value","tail"],fields:{value:{validate:(0,p.chain)((0,p.assertShape)({raw:{validate:(0,p.assertValueType)("string")},cooked:{validate:(0,p.assertValueType)("string"),optional:!0}}),function(q){const M=q.value.raw;let W=!1;const z=()=>{throw new Error("Internal @babel/types error.")},{str:Y,firstInvalidLoc:Z}=(0,i.readStringContents)("template",M,0,0,0,{unterminated(){W=!0},strictNumericEscape:z,invalidEscapeSequence:z,numericSeparatorInEscapeSequence:z,unexpectedNumericSeparator:z,invalidDigit:z,invalidCodePoint:z});if(!W)throw new Error("Invalid raw");q.value.cooked=Z?null:Y})},tail:{default:!1}}}),y("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("TemplateElement")))},expressions:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Expression","TSType")),function(C,q,M){if(C.quasis.length!==M.length+1)throw new TypeError(`Number of ${C.type} quasis should be exactly one more than the number of expressions. +Expected ${M.length+1} quasis but got ${C.quasis.length}`)})}}}),y("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,p.chain)((0,p.assertValueType)("boolean"),Object.assign(function(C,q,M){if(ra.BABEL_TYPES_8_BREAKING&&M&&!C.argument)throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument")},{type:"boolean"})),default:!1},argument:{optional:!0,validate:(0,p.assertNodeType)("Expression")}}}),y("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,p.assertNodeType)("Expression")}}}),y("Import",{aliases:["Expression"]}),y("BigIntLiteral",{builder:["value"],fields:{value:{validate:(0,p.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),y("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,p.assertNodeType)("Identifier")}}}),y("OptionalMemberExpression",{builder:["object","property","computed","optional"],visitor:["object","property"],aliases:["Expression"],fields:{object:{validate:(0,p.assertNodeType)("Expression")},property:{validate:function(){const C=(0,p.assertNodeType)("Identifier"),q=(0,p.assertNodeType)("Expression");return Object.assign(function(W,z,Y){(W.computed?q:C)(W,z,Y)},{oneOfNodeTypes:["Expression","Identifier"]})}()},computed:{default:!1},optional:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.chain)((0,p.assertValueType)("boolean"),(0,p.assertOptionalChainStart)()):(0,p.assertValueType)("boolean")}}}),y("OptionalCallExpression",{visitor:["callee","arguments","typeParameters","typeArguments"],builder:["callee","arguments","optional"],aliases:["Expression"],fields:{callee:{validate:(0,p.assertNodeType)("Expression")},arguments:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Expression","SpreadElement","ArgumentPlaceholder")))},optional:{validate:ra.BABEL_TYPES_8_BREAKING?(0,p.chain)((0,p.assertValueType)("boolean"),(0,p.assertOptionalChainStart)()):(0,p.assertValueType)("boolean")},typeArguments:{validate:(0,p.assertNodeType)("TypeParameterInstantiation"),optional:!0},typeParameters:{validate:(0,p.assertNodeType)("TSTypeParameterInstantiation"),optional:!0}}}),y("ClassProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property"],fields:Object.assign({},A(),{value:{validate:(0,p.assertNodeType)("Expression"),optional:!0},definite:{validate:(0,p.assertValueType)("boolean"),optional:!0},typeAnnotation:{validate:(0,p.assertNodeType)("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},readonly:{validate:(0,p.assertValueType)("boolean"),optional:!0},declare:{validate:(0,p.assertValueType)("boolean"),optional:!0},variance:{validate:(0,p.assertNodeType)("Variance"),optional:!0}})}),y("ClassAccessorProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property","Accessor"],fields:Object.assign({},A(),{key:{validate:(0,p.chain)(function(){const C=(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","PrivateName"),q=(0,p.assertNodeType)("Expression");return function(M,W,z){(M.computed?q:C)(M,W,z)}}(),(0,p.assertNodeType)("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression","PrivateName"))},value:{validate:(0,p.assertNodeType)("Expression"),optional:!0},definite:{validate:(0,p.assertValueType)("boolean"),optional:!0},typeAnnotation:{validate:(0,p.assertNodeType)("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},readonly:{validate:(0,p.assertValueType)("boolean"),optional:!0},declare:{validate:(0,p.assertValueType)("boolean"),optional:!0},variance:{validate:(0,p.assertNodeType)("Variance"),optional:!0}})}),y("ClassPrivateProperty",{visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","decorators","static"],aliases:["Property","Private"],fields:{key:{validate:(0,p.assertNodeType)("PrivateName")},value:{validate:(0,p.assertNodeType)("Expression"),optional:!0},typeAnnotation:{validate:(0,p.assertNodeType)("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Decorator"))),optional:!0},static:{validate:(0,p.assertValueType)("boolean"),default:!1},readonly:{validate:(0,p.assertValueType)("boolean"),optional:!0},definite:{validate:(0,p.assertValueType)("boolean"),optional:!0},variance:{validate:(0,p.assertNodeType)("Variance"),optional:!0}}}),y("ClassPrivateMethod",{builder:["kind","key","params","body","static"],visitor:["decorators","key","typeParameters","params","returnType","body"],aliases:["Function","Scopable","BlockParent","FunctionParent","Method","Private"],fields:Object.assign({},_(),v(),{kind:{validate:(0,p.assertOneOf)("get","set","method"),default:"method"},key:{validate:(0,p.assertNodeType)("PrivateName")},body:{validate:(0,p.assertNodeType)("BlockStatement")}})}),y("PrivateName",{visitor:["id"],aliases:["Private"],fields:{id:{validate:(0,p.assertNodeType)("Identifier")}}}),y("StaticBlock",{visitor:["body"],fields:{body:{validate:(0,p.chain)((0,p.assertValueType)("array"),(0,p.assertEach)((0,p.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","FunctionParent"]}),ms}var ope={},lpe;function Gct(){if(lpe)return ope;lpe=1;var n=Nu();const t=(0,n.defineAliasedType)("Flow"),a=i=>{const d=i==="DeclareClass";t(i,{builder:["id","typeParameters","extends","body"],visitor:["id","typeParameters","extends",...d?["mixins","implements"]:[],"body"],aliases:["FlowDeclaration","Statement","Declaration"],fields:Object.assign({id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),extends:(0,n.validateOptional)((0,n.arrayOfType)("InterfaceExtends"))},d?{mixins:(0,n.validateOptional)((0,n.arrayOfType)("InterfaceExtends")),implements:(0,n.validateOptional)((0,n.arrayOfType)("ClassImplements"))}:{},{body:(0,n.validateType)("ObjectTypeAnnotation")})})};return t("AnyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["FlowType"],fields:{elementType:(0,n.validateType)("FlowType")}}),t("BooleanTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("BooleanLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("NullLiteralTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("ClassImplements",{visitor:["id","typeParameters"],fields:{id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterInstantiation")}}),a("DeclareClass"),t("DeclareFunction",{visitor:["id"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier"),predicate:(0,n.validateOptionalType)("DeclaredPredicate")}}),a("DeclareInterface"),t("DeclareModule",{builder:["id","body","kind"],visitor:["id","body"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)(["Identifier","StringLiteral"]),body:(0,n.validateType)("BlockStatement"),kind:(0,n.validateOptional)((0,n.assertOneOf)("CommonJS","ES"))}}),t("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{typeAnnotation:(0,n.validateType)("TypeAnnotation")}}),t("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),right:(0,n.validateType)("FlowType")}}),t("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),supertype:(0,n.validateOptionalType)("FlowType"),impltype:(0,n.validateOptionalType)("FlowType")}}),t("DeclareVariable",{visitor:["id"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier")}}),t("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{declaration:(0,n.validateOptionalType)("Flow"),specifiers:(0,n.validateOptional)((0,n.arrayOfType)(["ExportSpecifier","ExportNamespaceSpecifier"])),source:(0,n.validateOptionalType)("StringLiteral"),default:(0,n.validateOptional)((0,n.assertValueType)("boolean"))}}),t("DeclareExportAllDeclaration",{visitor:["source"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{source:(0,n.validateType)("StringLiteral"),exportKind:(0,n.validateOptional)((0,n.assertOneOf)("type","value"))}}),t("DeclaredPredicate",{visitor:["value"],aliases:["FlowPredicate"],fields:{value:(0,n.validateType)("Flow")}}),t("ExistsTypeAnnotation",{aliases:["FlowType"]}),t("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["FlowType"],fields:{typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),params:(0,n.validate)((0,n.arrayOfType)("FunctionTypeParam")),rest:(0,n.validateOptionalType)("FunctionTypeParam"),this:(0,n.validateOptionalType)("FunctionTypeParam"),returnType:(0,n.validateType)("FlowType")}}),t("FunctionTypeParam",{visitor:["name","typeAnnotation"],fields:{name:(0,n.validateOptionalType)("Identifier"),typeAnnotation:(0,n.validateType)("FlowType"),optional:(0,n.validateOptional)((0,n.assertValueType)("boolean"))}}),t("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["FlowType"],fields:{id:(0,n.validateType)(["Identifier","QualifiedTypeIdentifier"]),typeParameters:(0,n.validateOptionalType)("TypeParameterInstantiation")}}),t("InferredPredicate",{aliases:["FlowPredicate"]}),t("InterfaceExtends",{visitor:["id","typeParameters"],fields:{id:(0,n.validateType)(["Identifier","QualifiedTypeIdentifier"]),typeParameters:(0,n.validateOptionalType)("TypeParameterInstantiation")}}),a("InterfaceDeclaration"),t("InterfaceTypeAnnotation",{visitor:["extends","body"],aliases:["FlowType"],fields:{extends:(0,n.validateOptional)((0,n.arrayOfType)("InterfaceExtends")),body:(0,n.validateType)("ObjectTypeAnnotation")}}),t("IntersectionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:(0,n.validate)((0,n.arrayOfType)("FlowType"))}}),t("MixedTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("EmptyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["FlowType"],fields:{typeAnnotation:(0,n.validateType)("FlowType")}}),t("NumberLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:(0,n.validate)((0,n.assertValueType)("number"))}}),t("NumberTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties","internalSlots"],aliases:["FlowType"],builder:["properties","indexers","callProperties","internalSlots","exact"],fields:{properties:(0,n.validate)((0,n.arrayOfType)(["ObjectTypeProperty","ObjectTypeSpreadProperty"])),indexers:{validate:(0,n.arrayOfType)("ObjectTypeIndexer"),optional:!0,default:[]},callProperties:{validate:(0,n.arrayOfType)("ObjectTypeCallProperty"),optional:!0,default:[]},internalSlots:{validate:(0,n.arrayOfType)("ObjectTypeInternalSlot"),optional:!0,default:[]},exact:{validate:(0,n.assertValueType)("boolean"),default:!1},inexact:(0,n.validateOptional)((0,n.assertValueType)("boolean"))}}),t("ObjectTypeInternalSlot",{visitor:["id","value"],builder:["id","value","optional","static","method"],aliases:["UserWhitespacable"],fields:{id:(0,n.validateType)("Identifier"),value:(0,n.validateType)("FlowType"),optional:(0,n.validate)((0,n.assertValueType)("boolean")),static:(0,n.validate)((0,n.assertValueType)("boolean")),method:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("ObjectTypeCallProperty",{visitor:["value"],aliases:["UserWhitespacable"],fields:{value:(0,n.validateType)("FlowType"),static:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("ObjectTypeIndexer",{visitor:["variance","id","key","value"],builder:["id","key","value","variance"],aliases:["UserWhitespacable"],fields:{id:(0,n.validateOptionalType)("Identifier"),key:(0,n.validateType)("FlowType"),value:(0,n.validateType)("FlowType"),static:(0,n.validate)((0,n.assertValueType)("boolean")),variance:(0,n.validateOptionalType)("Variance")}}),t("ObjectTypeProperty",{visitor:["key","value","variance"],aliases:["UserWhitespacable"],fields:{key:(0,n.validateType)(["Identifier","StringLiteral"]),value:(0,n.validateType)("FlowType"),kind:(0,n.validate)((0,n.assertOneOf)("init","get","set")),static:(0,n.validate)((0,n.assertValueType)("boolean")),proto:(0,n.validate)((0,n.assertValueType)("boolean")),optional:(0,n.validate)((0,n.assertValueType)("boolean")),variance:(0,n.validateOptionalType)("Variance"),method:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["UserWhitespacable"],fields:{argument:(0,n.validateType)("FlowType")}}),t("OpaqueType",{visitor:["id","typeParameters","supertype","impltype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),supertype:(0,n.validateOptionalType)("FlowType"),impltype:(0,n.validateType)("FlowType")}}),t("QualifiedTypeIdentifier",{visitor:["qualification","id"],builder:["id","qualification"],fields:{id:(0,n.validateType)("Identifier"),qualification:(0,n.validateType)(["Identifier","QualifiedTypeIdentifier"])}}),t("StringLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:(0,n.validate)((0,n.assertValueType)("string"))}}),t("StringTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("SymbolTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("ThisTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("TupleTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:(0,n.validate)((0,n.arrayOfType)("FlowType"))}}),t("TypeofTypeAnnotation",{visitor:["argument"],aliases:["FlowType"],fields:{argument:(0,n.validateType)("FlowType")}}),t("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TypeParameterDeclaration"),right:(0,n.validateType)("FlowType")}}),t("TypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:(0,n.validateType)("FlowType")}}),t("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["ExpressionWrapper","Expression"],fields:{expression:(0,n.validateType)("Expression"),typeAnnotation:(0,n.validateType)("TypeAnnotation")}}),t("TypeParameter",{visitor:["bound","default","variance"],fields:{name:(0,n.validate)((0,n.assertValueType)("string")),bound:(0,n.validateOptionalType)("TypeAnnotation"),default:(0,n.validateOptionalType)("FlowType"),variance:(0,n.validateOptionalType)("Variance")}}),t("TypeParameterDeclaration",{visitor:["params"],fields:{params:(0,n.validate)((0,n.arrayOfType)("TypeParameter"))}}),t("TypeParameterInstantiation",{visitor:["params"],fields:{params:(0,n.validate)((0,n.arrayOfType)("FlowType"))}}),t("UnionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:(0,n.validate)((0,n.arrayOfType)("FlowType"))}}),t("Variance",{builder:["kind"],fields:{kind:(0,n.validate)((0,n.assertOneOf)("minus","plus"))}}),t("VoidTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),t("EnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:{id:(0,n.validateType)("Identifier"),body:(0,n.validateType)(["EnumBooleanBody","EnumNumberBody","EnumStringBody","EnumSymbolBody"])}}),t("EnumBooleanBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:(0,n.validate)((0,n.assertValueType)("boolean")),members:(0,n.validateArrayOfType)("EnumBooleanMember"),hasUnknownMembers:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("EnumNumberBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:(0,n.validate)((0,n.assertValueType)("boolean")),members:(0,n.validateArrayOfType)("EnumNumberMember"),hasUnknownMembers:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("EnumStringBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:(0,n.validate)((0,n.assertValueType)("boolean")),members:(0,n.validateArrayOfType)(["EnumStringMember","EnumDefaultedMember"]),hasUnknownMembers:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("EnumSymbolBody",{aliases:["EnumBody"],visitor:["members"],fields:{members:(0,n.validateArrayOfType)("EnumDefaultedMember"),hasUnknownMembers:(0,n.validate)((0,n.assertValueType)("boolean"))}}),t("EnumBooleanMember",{aliases:["EnumMember"],visitor:["id"],fields:{id:(0,n.validateType)("Identifier"),init:(0,n.validateType)("BooleanLiteral")}}),t("EnumNumberMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:(0,n.validateType)("Identifier"),init:(0,n.validateType)("NumericLiteral")}}),t("EnumStringMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:(0,n.validateType)("Identifier"),init:(0,n.validateType)("StringLiteral")}}),t("EnumDefaultedMember",{aliases:["EnumMember"],visitor:["id"],fields:{id:(0,n.validateType)("Identifier")}}),t("IndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:(0,n.validateType)("FlowType"),indexType:(0,n.validateType)("FlowType")}}),t("OptionalIndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:(0,n.validateType)("FlowType"),indexType:(0,n.validateType)("FlowType"),optional:(0,n.validate)((0,n.assertValueType)("boolean"))}}),ope}var upe={},cpe;function Kct(){if(cpe)return upe;cpe=1;var n=Nu();const t=(0,n.defineAliasedType)("JSX");return t("JSXAttribute",{visitor:["name","value"],aliases:["Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","JSXFragment","StringLiteral","JSXExpressionContainer")}}}),t("JSXClosingElement",{visitor:["name"],aliases:["Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")}}}),t("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["Immutable","Expression"],fields:Object.assign({openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")))}},{selfClosing:{validate:(0,n.assertValueType)("boolean"),optional:!0}})}),t("JSXEmptyExpression",{}),t("JSXExpressionContainer",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression","JSXEmptyExpression")}}}),t("JSXSpreadChild",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),t("JSXIdentifier",{builder:["name"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),t("JSXMemberExpression",{visitor:["object","property"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),t("JSXNamespacedName",{visitor:["namespace","name"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),t("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")},selfClosing:{default:!1},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))},typeParameters:{validate:(0,n.assertNodeType)("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0}}}),t("JSXSpreadAttribute",{visitor:["argument"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),t("JSXText",{aliases:["Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}}),t("JSXFragment",{builder:["openingFragment","closingFragment","children"],visitor:["openingFragment","children","closingFragment"],aliases:["Immutable","Expression"],fields:{openingFragment:{validate:(0,n.assertNodeType)("JSXOpeningFragment")},closingFragment:{validate:(0,n.assertNodeType)("JSXClosingFragment")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")))}}}),t("JSXOpeningFragment",{aliases:["Immutable"]}),t("JSXClosingFragment",{aliases:["Immutable"]}),upe}var dpe={},il={},ppe;function Aye(){if(ppe)return il;ppe=1,Object.defineProperty(il,"__esModule",{value:!0}),il.PLACEHOLDERS_FLIPPED_ALIAS=il.PLACEHOLDERS_ALIAS=il.PLACEHOLDERS=void 0;var n=Nu();const t=il.PLACEHOLDERS=["Identifier","StringLiteral","Expression","Statement","Declaration","BlockStatement","ClassBody","Pattern"],a=il.PLACEHOLDERS_ALIAS={Declaration:["Statement"],Pattern:["PatternLike","LVal"]};for(const d of t){const p=n.ALIAS_KEYS[d];p!=null&&p.length&&(a[d]=p)}const i=il.PLACEHOLDERS_FLIPPED_ALIAS={};return Object.keys(a).forEach(d=>{a[d].forEach(p=>{hasOwnProperty.call(i,p)||(i[p]=[]),i[p].push(d)})}),il}var fpe;function Hct(){if(fpe)return dpe;fpe=1;var n=Nu(),t=Aye();const a=(0,n.defineAliasedType)("Miscellaneous");return a("Noop",{visitor:[]}),a("Placeholder",{visitor:[],builder:["expectedNode","name"],fields:{name:{validate:(0,n.assertNodeType)("Identifier")},expectedNode:{validate:(0,n.assertOneOf)(...t.PLACEHOLDERS)}}}),a("V8IntrinsicIdentifier",{builder:["name"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),dpe}var hpe={},mpe;function zct(){if(mpe)return hpe;mpe=1;var n=Nu();return(0,n.default)("ArgumentPlaceholder",{}),(0,n.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:ra.BABEL_TYPES_8_BREAKING?{object:{validate:(0,n.assertNodeType)("Expression")},callee:{validate:(0,n.assertNodeType)("Expression")}}:{object:{validate:Object.assign(()=>{},{oneOfNodeTypes:["Expression"]})},callee:{validate:Object.assign(()=>{},{oneOfNodeTypes:["Expression"]})}}}),(0,n.default)("ImportAttribute",{visitor:["key","value"],fields:{key:{validate:(0,n.assertNodeType)("Identifier","StringLiteral")},value:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,n.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,n.default)("DoExpression",{visitor:["body"],builder:["body","async"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,n.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,n.default)("RecordExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ObjectProperty","SpreadElement")))}}}),(0,n.default)("TupleExpression",{fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,n.default)("DecimalLiteral",{builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,n.default)("ModuleExpression",{visitor:["body"],fields:{body:{validate:(0,n.assertNodeType)("Program")}},aliases:["Expression"]}),(0,n.default)("TopicReference",{aliases:["Expression"]}),(0,n.default)("PipelineTopicExpression",{builder:["expression"],visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}},aliases:["Expression"]}),(0,n.default)("PipelineBareFunction",{builder:["callee"],visitor:["callee"],fields:{callee:{validate:(0,n.assertNodeType)("Expression")}},aliases:["Expression"]}),(0,n.default)("PipelinePrimaryTopicReference",{aliases:["Expression"]}),hpe}var ype={},gpe;function Xct(){if(gpe)return ype;gpe=1;var n=Nu(),t=Pye(),a=Ly();const i=(0,n.defineAliasedType)("TypeScript"),d=(0,n.assertValueType)("boolean"),p=()=>({returnType:{validate:(0,n.assertNodeType)("TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:(0,n.assertNodeType)("TSTypeParameterDeclaration","Noop"),optional:!0}});i("TSParameterProperty",{aliases:["LVal"],visitor:["parameter"],fields:{accessibility:{validate:(0,n.assertOneOf)("public","private","protected"),optional:!0},readonly:{validate:(0,n.assertValueType)("boolean"),optional:!0},parameter:{validate:(0,n.assertNodeType)("Identifier","AssignmentPattern")},override:{validate:(0,n.assertValueType)("boolean"),optional:!0},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator"))),optional:!0}}}),i("TSDeclareFunction",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","params","returnType"],fields:Object.assign({},(0,t.functionDeclarationCommon)(),p())}),i("TSDeclareMethod",{visitor:["decorators","key","typeParameters","params","returnType"],fields:Object.assign({},(0,t.classMethodOrDeclareMethodCommon)(),p())}),i("TSQualifiedName",{aliases:["TSEntityName"],visitor:["left","right"],fields:{left:(0,n.validateType)("TSEntityName"),right:(0,n.validateType)("Identifier")}});const y=()=>({typeParameters:(0,n.validateOptionalType)("TSTypeParameterDeclaration"),parameters:(0,n.validateArrayOfType)(["ArrayPattern","Identifier","ObjectPattern","RestElement"]),typeAnnotation:(0,n.validateOptionalType)("TSTypeAnnotation")}),b={aliases:["TSTypeElement"],visitor:["typeParameters","parameters","typeAnnotation"],fields:y()};i("TSCallSignatureDeclaration",b),i("TSConstructSignatureDeclaration",b);const v=()=>({key:(0,n.validateType)("Expression"),computed:{default:!1},optional:(0,n.validateOptional)(d)});i("TSPropertySignature",{aliases:["TSTypeElement"],visitor:["key","typeAnnotation"],fields:Object.assign({},v(),{readonly:(0,n.validateOptional)(d),typeAnnotation:(0,n.validateOptionalType)("TSTypeAnnotation"),kind:{validate:(0,n.assertOneOf)("get","set")}})}),i("TSMethodSignature",{aliases:["TSTypeElement"],visitor:["key","typeParameters","parameters","typeAnnotation"],fields:Object.assign({},y(),v(),{kind:{validate:(0,n.assertOneOf)("method","get","set")}})}),i("TSIndexSignature",{aliases:["TSTypeElement"],visitor:["parameters","typeAnnotation"],fields:{readonly:(0,n.validateOptional)(d),static:(0,n.validateOptional)(d),parameters:(0,n.validateArrayOfType)("Identifier"),typeAnnotation:(0,n.validateOptionalType)("TSTypeAnnotation")}});const E=["TSAnyKeyword","TSBooleanKeyword","TSBigIntKeyword","TSIntrinsicKeyword","TSNeverKeyword","TSNullKeyword","TSNumberKeyword","TSObjectKeyword","TSStringKeyword","TSSymbolKeyword","TSUndefinedKeyword","TSUnknownKeyword","TSVoidKeyword"];for(const C of E)i(C,{aliases:["TSType","TSBaseType"],visitor:[],fields:{}});i("TSThisType",{aliases:["TSType","TSBaseType"],visitor:[],fields:{}});const S={aliases:["TSType"],visitor:["typeParameters","parameters","typeAnnotation"]};i("TSFunctionType",Object.assign({},S,{fields:y()})),i("TSConstructorType",Object.assign({},S,{fields:Object.assign({},y(),{abstract:(0,n.validateOptional)(d)})})),i("TSTypeReference",{aliases:["TSType"],visitor:["typeName","typeParameters"],fields:{typeName:(0,n.validateType)("TSEntityName"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterInstantiation")}}),i("TSTypePredicate",{aliases:["TSType"],visitor:["parameterName","typeAnnotation"],builder:["parameterName","typeAnnotation","asserts"],fields:{parameterName:(0,n.validateType)(["Identifier","TSThisType"]),typeAnnotation:(0,n.validateOptionalType)("TSTypeAnnotation"),asserts:(0,n.validateOptional)(d)}}),i("TSTypeQuery",{aliases:["TSType"],visitor:["exprName","typeParameters"],fields:{exprName:(0,n.validateType)(["TSEntityName","TSImportType"]),typeParameters:(0,n.validateOptionalType)("TSTypeParameterInstantiation")}}),i("TSTypeLiteral",{aliases:["TSType"],visitor:["members"],fields:{members:(0,n.validateArrayOfType)("TSTypeElement")}}),i("TSArrayType",{aliases:["TSType"],visitor:["elementType"],fields:{elementType:(0,n.validateType)("TSType")}}),i("TSTupleType",{aliases:["TSType"],visitor:["elementTypes"],fields:{elementTypes:(0,n.validateArrayOfType)(["TSType","TSNamedTupleMember"])}}),i("TSOptionalType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:(0,n.validateType)("TSType")}}),i("TSRestType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:(0,n.validateType)("TSType")}}),i("TSNamedTupleMember",{visitor:["label","elementType"],builder:["label","elementType","optional"],fields:{label:(0,n.validateType)("Identifier"),optional:{validate:d,default:!1},elementType:(0,n.validateType)("TSType")}});const A={aliases:["TSType"],visitor:["types"],fields:{types:(0,n.validateArrayOfType)("TSType")}};i("TSUnionType",A),i("TSIntersectionType",A),i("TSConditionalType",{aliases:["TSType"],visitor:["checkType","extendsType","trueType","falseType"],fields:{checkType:(0,n.validateType)("TSType"),extendsType:(0,n.validateType)("TSType"),trueType:(0,n.validateType)("TSType"),falseType:(0,n.validateType)("TSType")}}),i("TSInferType",{aliases:["TSType"],visitor:["typeParameter"],fields:{typeParameter:(0,n.validateType)("TSTypeParameter")}}),i("TSParenthesizedType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:(0,n.validateType)("TSType")}}),i("TSTypeOperator",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{operator:(0,n.validate)((0,n.assertValueType)("string")),typeAnnotation:(0,n.validateType)("TSType")}}),i("TSIndexedAccessType",{aliases:["TSType"],visitor:["objectType","indexType"],fields:{objectType:(0,n.validateType)("TSType"),indexType:(0,n.validateType)("TSType")}}),i("TSMappedType",{aliases:["TSType"],visitor:["typeParameter","nameType","typeAnnotation"],builder:["typeParameter","typeAnnotation","nameType"],fields:Object.assign({},{typeParameter:(0,n.validateType)("TSTypeParameter")},{readonly:(0,n.validateOptional)((0,n.assertOneOf)(!0,!1,"+","-")),optional:(0,n.validateOptional)((0,n.assertOneOf)(!0,!1,"+","-")),typeAnnotation:(0,n.validateOptionalType)("TSType"),nameType:(0,n.validateOptionalType)("TSType")})}),i("TSLiteralType",{aliases:["TSType","TSBaseType"],visitor:["literal"],fields:{literal:{validate:function(){const C=(0,n.assertNodeType)("NumericLiteral","BigIntLiteral"),q=(0,n.assertOneOf)("-"),M=(0,n.assertNodeType)("NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral");function W(z,Y,Z){(0,a.default)("UnaryExpression",Z)?(q(Z,"operator",Z.operator),C(Z,"argument",Z.argument)):M(z,Y,Z)}return W.oneOfNodeTypes=["NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral","UnaryExpression"],W}()}}}),i("TSExpressionWithTypeArguments",{aliases:["TSType"],visitor:["expression","typeParameters"],fields:{expression:(0,n.validateType)("TSEntityName"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterInstantiation")}}),i("TSInterfaceDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","extends","body"],fields:{declare:(0,n.validateOptional)(d),id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterDeclaration"),extends:(0,n.validateOptional)((0,n.arrayOfType)("TSExpressionWithTypeArguments")),body:(0,n.validateType)("TSInterfaceBody")}}),i("TSInterfaceBody",{visitor:["body"],fields:{body:(0,n.validateArrayOfType)("TSTypeElement")}}),i("TSTypeAliasDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","typeAnnotation"],fields:{declare:(0,n.validateOptional)(d),id:(0,n.validateType)("Identifier"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterDeclaration"),typeAnnotation:(0,n.validateType)("TSType")}}),i("TSInstantiationExpression",{aliases:["Expression"],visitor:["expression","typeParameters"],fields:{expression:(0,n.validateType)("Expression"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterInstantiation")}});const _={aliases:["Expression","LVal","PatternLike"],visitor:["expression","typeAnnotation"],fields:{expression:(0,n.validateType)("Expression"),typeAnnotation:(0,n.validateType)("TSType")}};return i("TSAsExpression",_),i("TSSatisfiesExpression",_),i("TSTypeAssertion",{aliases:["Expression","LVal","PatternLike"],visitor:["typeAnnotation","expression"],fields:{typeAnnotation:(0,n.validateType)("TSType"),expression:(0,n.validateType)("Expression")}}),i("TSEnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","members"],fields:{declare:(0,n.validateOptional)(d),const:(0,n.validateOptional)(d),id:(0,n.validateType)("Identifier"),members:(0,n.validateArrayOfType)("TSEnumMember"),initializer:(0,n.validateOptionalType)("Expression")}}),i("TSEnumMember",{visitor:["id","initializer"],fields:{id:(0,n.validateType)(["Identifier","StringLiteral"]),initializer:(0,n.validateOptionalType)("Expression")}}),i("TSModuleDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:{declare:(0,n.validateOptional)(d),global:(0,n.validateOptional)(d),id:(0,n.validateType)(["Identifier","StringLiteral"]),body:(0,n.validateType)(["TSModuleBlock","TSModuleDeclaration"])}}),i("TSModuleBlock",{aliases:["Scopable","Block","BlockParent","FunctionParent"],visitor:["body"],fields:{body:(0,n.validateArrayOfType)("Statement")}}),i("TSImportType",{aliases:["TSType"],visitor:["argument","qualifier","typeParameters"],fields:{argument:(0,n.validateType)("StringLiteral"),qualifier:(0,n.validateOptionalType)("TSEntityName"),typeParameters:(0,n.validateOptionalType)("TSTypeParameterInstantiation"),options:{validate:(0,n.assertNodeType)("Expression"),optional:!0}}}),i("TSImportEqualsDeclaration",{aliases:["Statement"],visitor:["id","moduleReference"],fields:{isExport:(0,n.validate)(d),id:(0,n.validateType)("Identifier"),moduleReference:(0,n.validateType)(["TSEntityName","TSExternalModuleReference"]),importKind:{validate:(0,n.assertOneOf)("type","value"),optional:!0}}}),i("TSExternalModuleReference",{visitor:["expression"],fields:{expression:(0,n.validateType)("StringLiteral")}}),i("TSNonNullExpression",{aliases:["Expression","LVal","PatternLike"],visitor:["expression"],fields:{expression:(0,n.validateType)("Expression")}}),i("TSExportAssignment",{aliases:["Statement"],visitor:["expression"],fields:{expression:(0,n.validateType)("Expression")}}),i("TSNamespaceExportDeclaration",{aliases:["Statement"],visitor:["id"],fields:{id:(0,n.validateType)("Identifier")}}),i("TSTypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:{validate:(0,n.assertNodeType)("TSType")}}}),i("TSTypeParameterInstantiation",{visitor:["params"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TSType")))}}}),i("TSTypeParameterDeclaration",{visitor:["params"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TSTypeParameter")))}}}),i("TSTypeParameter",{builder:["constraint","default","name"],visitor:["constraint","default"],fields:{name:{validate:(0,n.assertValueType)("string")},in:{validate:(0,n.assertValueType)("boolean"),optional:!0},out:{validate:(0,n.assertValueType)("boolean"),optional:!0},const:{validate:(0,n.assertValueType)("boolean"),optional:!0},constraint:{validate:(0,n.assertNodeType)("TSType"),optional:!0},default:{validate:(0,n.assertNodeType)("TSType"),optional:!0}}}),ype}var f6={};Object.defineProperty(f6,"__esModule",{value:!0});f6.DEPRECATED_ALIASES=void 0;f6.DEPRECATED_ALIASES={ModuleDeclaration:"ImportOrExportDeclaration"};var vpe;function Ji(){return vpe||(vpe=1,function(n){Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ALIAS_KEYS",{enumerable:!0,get:function(){return a.ALIAS_KEYS}}),Object.defineProperty(n,"BUILDER_KEYS",{enumerable:!0,get:function(){return a.BUILDER_KEYS}}),Object.defineProperty(n,"DEPRECATED_ALIASES",{enumerable:!0,get:function(){return d.DEPRECATED_ALIASES}}),Object.defineProperty(n,"DEPRECATED_KEYS",{enumerable:!0,get:function(){return a.DEPRECATED_KEYS}}),Object.defineProperty(n,"FLIPPED_ALIAS_KEYS",{enumerable:!0,get:function(){return a.FLIPPED_ALIAS_KEYS}}),Object.defineProperty(n,"NODE_FIELDS",{enumerable:!0,get:function(){return a.NODE_FIELDS}}),Object.defineProperty(n,"NODE_PARENT_VALIDATIONS",{enumerable:!0,get:function(){return a.NODE_PARENT_VALIDATIONS}}),Object.defineProperty(n,"PLACEHOLDERS",{enumerable:!0,get:function(){return i.PLACEHOLDERS}}),Object.defineProperty(n,"PLACEHOLDERS_ALIAS",{enumerable:!0,get:function(){return i.PLACEHOLDERS_ALIAS}}),Object.defineProperty(n,"PLACEHOLDERS_FLIPPED_ALIAS",{enumerable:!0,get:function(){return i.PLACEHOLDERS_FLIPPED_ALIAS}}),n.TYPES=void 0,Object.defineProperty(n,"VISITOR_KEYS",{enumerable:!0,get:function(){return a.VISITOR_KEYS}});var t=Ect;Pye(),Gct(),Kct(),Hct(),zct(),Xct();var a=Nu(),i=Aye(),d=f6;Object.keys(d.DEPRECATED_ALIASES).forEach(p=>{a.FLIPPED_ALIAS_KEYS[p]=a.FLIPPED_ALIAS_KEYS[d.DEPRECATED_ALIASES[p]]}),t(a.VISITOR_KEYS),t(a.ALIAS_KEYS),t(a.FLIPPED_ALIAS_KEYS),t(a.NODE_FIELDS),t(a.BUILDER_KEYS),t(a.DEPRECATED_KEYS),t(i.PLACEHOLDERS_ALIAS),t(i.PLACEHOLDERS_FLIPPED_ALIAS),n.TYPES=[].concat(Object.keys(a.VISITOR_KEYS),Object.keys(a.FLIPPED_ALIAS_KEYS),Object.keys(a.DEPRECATED_KEYS))}(z_)),z_}var bpe;function VD(){if(bpe)return Ep;bpe=1,Object.defineProperty(Ep,"__esModule",{value:!0}),Ep.default=t,Ep.validateChild=i,Ep.validateField=a;var n=Ji();function t(d,p,y){if(!d)return;const b=n.NODE_FIELDS[d.type];if(!b)return;const v=b[p];a(d,p,y,v),i(d,p,y)}function a(d,p,y,b){b!=null&&b.validate&&(b.optional&&y==null||b.validate(d,p,y))}function i(d,p,y){if(y==null)return;const b=n.NODE_PARENT_VALIDATIONS[y.type];b&&b(d,p,y)}return Ep}var xpe;function Jct(){if(xpe)return vb;xpe=1,Object.defineProperty(vb,"__esModule",{value:!0}),vb.default=a;var n=VD(),t=Ol();function a(i){const d=t.BUILDER_KEYS[i.type];for(const p of d)(0,n.default)(i,p,i[p]);return i}return vb}var Rpe;function Hs(){if(Rpe)return ye;Rpe=1,Object.defineProperty(ye,"__esModule",{value:!0}),ye.anyTypeAnnotation=md,ye.argumentPlaceholder=R4,ye.arrayExpression=a,ye.arrayPattern=da,ye.arrayTypeAnnotation=cf,ye.arrowFunctionExpression=Rt,ye.assignmentExpression=i,ye.assignmentPattern=Ua,ye.awaitExpression=jx,ye.bigIntLiteral=Ox,ye.binaryExpression=d,ye.bindExpression=E4,ye.blockStatement=v,ye.booleanLiteral=kt,ye.booleanLiteralTypeAnnotation=Io,ye.booleanTypeAnnotation=df,ye.breakStatement=E,ye.callExpression=S,ye.catchClause=A,ye.classAccessorProperty=ag,ye.classBody=ja,ye.classDeclaration=Dt,ye.classExpression=va,ye.classImplements=pf,ye.classMethod=Mt,ye.classPrivateMethod=kx,ye.classPrivateProperty=Nx,ye.classProperty=Ja,ye.conditionalExpression=_,ye.continueStatement=C,ye.debuggerStatement=q,ye.decimalLiteral=A4,ye.declareClass=gd,ye.declareExportAllDeclaration=Mu,ye.declareExportDeclaration=gf,ye.declareFunction=ff,ye.declareInterface=hf,ye.declareModule=vd,ye.declareModuleExports=bd,ye.declareOpaqueType=yf,ye.declareTypeAlias=mf,ye.declareVariable=Dx,ye.declaredPredicate=vf,ye.decorator=Af,ye.directive=y,ye.directiveLiteral=b,ye.doExpression=T4,ye.doWhileStatement=M,ye.emptyStatement=W,ye.emptyTypeAnnotation=Co,ye.enumBooleanBody=wf,ye.enumBooleanMember=n4,ye.enumDeclaration=e4,ye.enumDefaultedMember=cg,ye.enumNumberBody=t4,ye.enumNumberMember=s4,ye.enumStringBody=r4,ye.enumStringMember=ug,ye.enumSymbolBody=a4,ye.existsTypeAnnotation=mn,ye.exportAllDeclaration=on,ye.exportDefaultDeclaration=rt,ye.exportDefaultSpecifier=mg,ye.exportNamedDeclaration=nt,ye.exportNamespaceSpecifier=_x,ye.exportSpecifier=Yt,ye.expressionStatement=z,ye.file=Y,ye.forInStatement=Z,ye.forOfStatement=or,ye.forStatement=ce,ye.functionDeclaration=ge,ye.functionExpression=Ge,ye.functionTypeAnnotation=Js,ye.functionTypeParam=bf,ye.genericTypeAnnotation=Lx,ye.identifier=Je,ye.ifStatement=re,ye.import=Xs,ye.importAttribute=S4,ye.importDeclaration=pr,ye.importDefaultSpecifier=Hr,ye.importExpression=Qr,ye.importNamespaceSpecifier=$r,ye.importSpecifier=lr,ye.indexedAccessType=i4,ye.inferredPredicate=Di,ye.interfaceDeclaration=sg,ye.interfaceExtends=xf,ye.interfaceTypeAnnotation=Rf,ye.interpreterDirective=p,ye.intersectionTypeAnnotation=ig,ye.jSXAttribute=ye.jsxAttribute=dg,ye.jSXClosingElement=ye.jsxClosingElement=l4,ye.jSXClosingFragment=ye.jsxClosingFragment=b4,ye.jSXElement=ye.jsxElement=u4,ye.jSXEmptyExpression=ye.jsxEmptyExpression=c4,ye.jSXExpressionContainer=ye.jsxExpressionContainer=d4,ye.jSXFragment=ye.jsxFragment=v4,ye.jSXIdentifier=ye.jsxIdentifier=f4,ye.jSXMemberExpression=ye.jsxMemberExpression=h4,ye.jSXNamespacedName=ye.jsxNamespacedName=m4,ye.jSXOpeningElement=ye.jsxOpeningElement=y4,ye.jSXOpeningFragment=ye.jsxOpeningFragment=fg,ye.jSXSpreadAttribute=ye.jsxSpreadAttribute=pg,ye.jSXSpreadChild=ye.jsxSpreadChild=p4,ye.jSXText=ye.jsxText=g4,ye.labeledStatement=Ae,ye.logicalExpression=mt,ye.memberExpression=Tt,ye.metaProperty=Va,ye.mixedTypeAnnotation=Ef,ye.moduleExpression=I4,ye.newExpression=ne,ye.noop=x4,ye.nullLiteral=fe,ye.nullLiteralTypeAnnotation=yd,ye.nullableTypeAnnotation=Bu,ye.numberLiteral=S7,ye.numberLiteralTypeAnnotation=Qi,ye.numberTypeAnnotation=Mx,ye.numericLiteral=se,ye.objectExpression=pt,ye.objectMethod=bt,ye.objectPattern=Kn,ye.objectProperty=ht,ye.objectTypeAnnotation=Sf,ye.objectTypeCallProperty=Li,ye.objectTypeIndexer=kl,ye.objectTypeInternalSlot=Bx,ye.objectTypeProperty=Tf,ye.objectTypeSpreadProperty=xd,ye.opaqueType=og,ye.optionalCallExpression=hd,ye.optionalIndexedAccessType=o4,ye.optionalMemberExpression=Lu,ye.parenthesizedExpression=Oe,ye.pipelineBareFunction=O4,ye.pipelinePrimaryTopicReference=_4,ye.pipelineTopicExpression=j4,ye.placeholder=hg,ye.privateName=Nl,ye.program=Zt,ye.qualifiedTypeIdentifier=Fx,ye.recordExpression=w4,ye.regExpLiteral=Qt,ye.regexLiteral=T7,ye.restElement=Se,ye.restProperty=w7,ye.returnStatement=Me,ye.sequenceExpression=le,ye.spreadElement=Sn,ye.spreadProperty=P7,ye.staticBlock=ng,ye.stringLiteral=je,ye.stringLiteralTypeAnnotation=$x,ye.stringTypeAnnotation=qx,ye.super=hn,ye.switchCase=Ke,ye.switchStatement=Ue,ye.symbolTypeAnnotation=Ux,ye.taggedTemplateExpression=As,ye.templateElement=li,ye.templateLiteral=uf,ye.thisExpression=ot,ye.thisTypeAnnotation=Vx,ye.throwStatement=ct,ye.topicReference=C4,ye.tryStatement=Pt,ye.tSAnyKeyword=ye.tsAnyKeyword=Is,ye.tSArrayType=ye.tsArrayType=K4,ye.tSAsExpression=ye.tsAsExpression=l7,ye.tSBigIntKeyword=ye.tsBigIntKeyword=Rd,ye.tSBooleanKeyword=ye.tsBooleanKeyword=qu,ye.tSCallSignatureDeclaration=ye.tsCallSignatureDeclaration=D4,ye.tSConditionalType=ye.tsConditionalType=Y4,ye.tSConstructSignatureDeclaration=ye.tsConstructSignatureDeclaration=gg,ye.tSConstructorType=ye.tsConstructorType=Eg,ye.tSDeclareFunction=ye.tsDeclareFunction=yg,ye.tSDeclareMethod=ye.tsDeclareMethod=k4,ye.tSEnumDeclaration=ye.tsEnumDeclaration=d7,ye.tSEnumMember=ye.tsEnumMember=p7,ye.tSExportAssignment=ye.tsExportAssignment=b7,ye.tSExpressionWithTypeArguments=ye.tsExpressionWithTypeArguments=n7,ye.tSExternalModuleReference=ye.tsExternalModuleReference=g7,ye.tSFunctionType=ye.tsFunctionType=W4,ye.tSImportEqualsDeclaration=ye.tsImportEqualsDeclaration=y7,ye.tSImportType=ye.tsImportType=m7,ye.tSIndexSignature=ye.tsIndexSignature=L4,ye.tSIndexedAccessType=ye.tsIndexedAccessType=t7,ye.tSInferType=ye.tsInferType=Q4,ye.tSInstantiationExpression=ye.tsInstantiationExpression=o7,ye.tSInterfaceBody=ye.tsInterfaceBody=s7,ye.tSInterfaceDeclaration=ye.tsInterfaceDeclaration=Ag,ye.tSIntersectionType=ye.tsIntersectionType=J4,ye.tSIntrinsicKeyword=ye.tsIntrinsicKeyword=M4,ye.tSLiteralType=ye.tsLiteralType=a7,ye.tSMappedType=ye.tsMappedType=r7,ye.tSMethodSignature=ye.tsMethodSignature=$u,ye.tSModuleBlock=ye.tsModuleBlock=h7,ye.tSModuleDeclaration=ye.tsModuleDeclaration=f7,ye.tSNamedTupleMember=ye.tsNamedTupleMember=z4,ye.tSNamespaceExportDeclaration=ye.tsNamespaceExportDeclaration=If,ye.tSNeverKeyword=ye.tsNeverKeyword=Uu,ye.tSNonNullExpression=ye.tsNonNullExpression=v7,ye.tSNullKeyword=ye.tsNullKeyword=bg,ye.tSNumberKeyword=ye.tsNumberKeyword=B4,ye.tSObjectKeyword=ye.tsObjectKeyword=F4,ye.tSOptionalType=ye.tsOptionalType=wg,ye.tSParameterProperty=ye.tsParameterProperty=N4,ye.tSParenthesizedType=ye.tsParenthesizedType=Z4,ye.tSPropertySignature=ye.tsPropertySignature=vg,ye.tSQualifiedName=ye.tsQualifiedName=Fu,ye.tSRestType=ye.tsRestType=Pg,ye.tSSatisfiesExpression=ye.tsSatisfiesExpression=u7,ye.tSStringKeyword=ye.tsStringKeyword=$4,ye.tSSymbolKeyword=ye.tsSymbolKeyword=q4,ye.tSThisType=ye.tsThisType=Rg,ye.tSTupleType=ye.tsTupleType=H4,ye.tSTypeAliasDeclaration=ye.tsTypeAliasDeclaration=i7,ye.tSTypeAnnotation=ye.tsTypeAnnotation=x7,ye.tSTypeAssertion=ye.tsTypeAssertion=c7,ye.tSTypeLiteral=ye.tsTypeLiteral=Tg,ye.tSTypeOperator=ye.tsTypeOperator=e7,ye.tSTypeParameter=ye.tsTypeParameter=Ig,ye.tSTypeParameterDeclaration=ye.tsTypeParameterDeclaration=E7,ye.tSTypeParameterInstantiation=ye.tsTypeParameterInstantiation=R7,ye.tSTypePredicate=ye.tsTypePredicate=Ed,ye.tSTypeQuery=ye.tsTypeQuery=Sg,ye.tSTypeReference=ye.tsTypeReference=G4,ye.tSUndefinedKeyword=ye.tsUndefinedKeyword=xg,ye.tSUnionType=ye.tsUnionType=X4,ye.tSUnknownKeyword=ye.tsUnknownKeyword=U4,ye.tSVoidKeyword=ye.tsVoidKeyword=V4,ye.tupleExpression=P4,ye.tupleTypeAnnotation=Wx,ye.typeAlias=Kx,ye.typeAnnotation=Hx,ye.typeCastExpression=zx,ye.typeParameter=Xx,ye.typeParameterDeclaration=lg,ye.typeParameterInstantiation=Jx,ye.typeofTypeAnnotation=Gx,ye.unaryExpression=Ut,ye.unionTypeAnnotation=Yx,ye.updateExpression=ur,ye.v8IntrinsicIdentifier=Pf,ye.variableDeclaration=kr,ye.variableDeclarator=ir,ye.variance=Qx,ye.voidTypeAnnotation=Zx,ye.whileStatement=Jr,ye.withStatement=Ea,ye.yieldExpression=Cx;var n=Jct(),t=Zp;function a(Q=[]){return(0,n.default)({type:"ArrayExpression",elements:Q})}function i(Q,Fe,At){return(0,n.default)({type:"AssignmentExpression",operator:Q,left:Fe,right:At})}function d(Q,Fe,At){return(0,n.default)({type:"BinaryExpression",operator:Q,left:Fe,right:At})}function p(Q){return(0,n.default)({type:"InterpreterDirective",value:Q})}function y(Q){return(0,n.default)({type:"Directive",value:Q})}function b(Q){return(0,n.default)({type:"DirectiveLiteral",value:Q})}function v(Q,Fe=[]){return(0,n.default)({type:"BlockStatement",body:Q,directives:Fe})}function E(Q=null){return(0,n.default)({type:"BreakStatement",label:Q})}function S(Q,Fe){return(0,n.default)({type:"CallExpression",callee:Q,arguments:Fe})}function A(Q=null,Fe){return(0,n.default)({type:"CatchClause",param:Q,body:Fe})}function _(Q,Fe,At){return(0,n.default)({type:"ConditionalExpression",test:Q,consequent:Fe,alternate:At})}function C(Q=null){return(0,n.default)({type:"ContinueStatement",label:Q})}function q(){return{type:"DebuggerStatement"}}function M(Q,Fe){return(0,n.default)({type:"DoWhileStatement",test:Q,body:Fe})}function W(){return{type:"EmptyStatement"}}function z(Q){return(0,n.default)({type:"ExpressionStatement",expression:Q})}function Y(Q,Fe=null,At=null){return(0,n.default)({type:"File",program:Q,comments:Fe,tokens:At})}function Z(Q,Fe,At){return(0,n.default)({type:"ForInStatement",left:Q,right:Fe,body:At})}function ce(Q=null,Fe=null,At=null,Rr){return(0,n.default)({type:"ForStatement",init:Q,test:Fe,update:At,body:Rr})}function ge(Q=null,Fe,At,Rr=!1,an=!1){return(0,n.default)({type:"FunctionDeclaration",id:Q,params:Fe,body:At,generator:Rr,async:an})}function Ge(Q=null,Fe,At,Rr=!1,an=!1){return(0,n.default)({type:"FunctionExpression",id:Q,params:Fe,body:At,generator:Rr,async:an})}function Je(Q){return(0,n.default)({type:"Identifier",name:Q})}function re(Q,Fe,At=null){return(0,n.default)({type:"IfStatement",test:Q,consequent:Fe,alternate:At})}function Ae(Q,Fe){return(0,n.default)({type:"LabeledStatement",label:Q,body:Fe})}function je(Q){return(0,n.default)({type:"StringLiteral",value:Q})}function se(Q){return(0,n.default)({type:"NumericLiteral",value:Q})}function fe(){return{type:"NullLiteral"}}function kt(Q){return(0,n.default)({type:"BooleanLiteral",value:Q})}function Qt(Q,Fe=""){return(0,n.default)({type:"RegExpLiteral",pattern:Q,flags:Fe})}function mt(Q,Fe,At){return(0,n.default)({type:"LogicalExpression",operator:Q,left:Fe,right:At})}function Tt(Q,Fe,At=!1,Rr=null){return(0,n.default)({type:"MemberExpression",object:Q,property:Fe,computed:At,optional:Rr})}function ne(Q,Fe){return(0,n.default)({type:"NewExpression",callee:Q,arguments:Fe})}function Zt(Q,Fe=[],At="script",Rr=null){return(0,n.default)({type:"Program",body:Q,directives:Fe,sourceType:At,interpreter:Rr})}function pt(Q){return(0,n.default)({type:"ObjectExpression",properties:Q})}function bt(Q="method",Fe,At,Rr,an=!1,jo=!1,Cf=!1){return(0,n.default)({type:"ObjectMethod",kind:Q,key:Fe,params:At,body:Rr,computed:an,generator:jo,async:Cf})}function ht(Q,Fe,At=!1,Rr=!1,an=null){return(0,n.default)({type:"ObjectProperty",key:Q,value:Fe,computed:At,shorthand:Rr,decorators:an})}function Se(Q){return(0,n.default)({type:"RestElement",argument:Q})}function Me(Q=null){return(0,n.default)({type:"ReturnStatement",argument:Q})}function le(Q){return(0,n.default)({type:"SequenceExpression",expressions:Q})}function Oe(Q){return(0,n.default)({type:"ParenthesizedExpression",expression:Q})}function Ke(Q=null,Fe){return(0,n.default)({type:"SwitchCase",test:Q,consequent:Fe})}function Ue(Q,Fe){return(0,n.default)({type:"SwitchStatement",discriminant:Q,cases:Fe})}function ot(){return{type:"ThisExpression"}}function ct(Q){return(0,n.default)({type:"ThrowStatement",argument:Q})}function Pt(Q,Fe=null,At=null){return(0,n.default)({type:"TryStatement",block:Q,handler:Fe,finalizer:At})}function Ut(Q,Fe,At=!0){return(0,n.default)({type:"UnaryExpression",operator:Q,argument:Fe,prefix:At})}function ur(Q,Fe,At=!1){return(0,n.default)({type:"UpdateExpression",operator:Q,argument:Fe,prefix:At})}function kr(Q,Fe){return(0,n.default)({type:"VariableDeclaration",kind:Q,declarations:Fe})}function ir(Q,Fe=null){return(0,n.default)({type:"VariableDeclarator",id:Q,init:Fe})}function Jr(Q,Fe){return(0,n.default)({type:"WhileStatement",test:Q,body:Fe})}function Ea(Q,Fe){return(0,n.default)({type:"WithStatement",object:Q,body:Fe})}function Ua(Q,Fe){return(0,n.default)({type:"AssignmentPattern",left:Q,right:Fe})}function da(Q){return(0,n.default)({type:"ArrayPattern",elements:Q})}function Rt(Q,Fe,At=!1){return(0,n.default)({type:"ArrowFunctionExpression",params:Q,body:Fe,async:At,expression:null})}function ja(Q){return(0,n.default)({type:"ClassBody",body:Q})}function va(Q=null,Fe=null,At,Rr=null){return(0,n.default)({type:"ClassExpression",id:Q,superClass:Fe,body:At,decorators:Rr})}function Dt(Q=null,Fe=null,At,Rr=null){return(0,n.default)({type:"ClassDeclaration",id:Q,superClass:Fe,body:At,decorators:Rr})}function on(Q){return(0,n.default)({type:"ExportAllDeclaration",source:Q})}function rt(Q){return(0,n.default)({type:"ExportDefaultDeclaration",declaration:Q})}function nt(Q=null,Fe=[],At=null){return(0,n.default)({type:"ExportNamedDeclaration",declaration:Q,specifiers:Fe,source:At})}function Yt(Q,Fe){return(0,n.default)({type:"ExportSpecifier",local:Q,exported:Fe})}function or(Q,Fe,At,Rr=!1){return(0,n.default)({type:"ForOfStatement",left:Q,right:Fe,body:At,await:Rr})}function pr(Q,Fe){return(0,n.default)({type:"ImportDeclaration",specifiers:Q,source:Fe})}function Hr(Q){return(0,n.default)({type:"ImportDefaultSpecifier",local:Q})}function $r(Q){return(0,n.default)({type:"ImportNamespaceSpecifier",local:Q})}function lr(Q,Fe){return(0,n.default)({type:"ImportSpecifier",local:Q,imported:Fe})}function Qr(Q,Fe=null){return(0,n.default)({type:"ImportExpression",source:Q,options:Fe})}function Va(Q,Fe){return(0,n.default)({type:"MetaProperty",meta:Q,property:Fe})}function Mt(Q="method",Fe,At,Rr,an=!1,jo=!1,Cf=!1,A7=!1){return(0,n.default)({type:"ClassMethod",kind:Q,key:Fe,params:At,body:Rr,computed:an,static:jo,generator:Cf,async:A7})}function Kn(Q){return(0,n.default)({type:"ObjectPattern",properties:Q})}function Sn(Q){return(0,n.default)({type:"SpreadElement",argument:Q})}function hn(){return{type:"Super"}}function As(Q,Fe){return(0,n.default)({type:"TaggedTemplateExpression",tag:Q,quasi:Fe})}function li(Q,Fe=!1){return(0,n.default)({type:"TemplateElement",value:Q,tail:Fe})}function uf(Q,Fe){return(0,n.default)({type:"TemplateLiteral",quasis:Q,expressions:Fe})}function Cx(Q=null,Fe=!1){return(0,n.default)({type:"YieldExpression",argument:Q,delegate:Fe})}function jx(Q){return(0,n.default)({type:"AwaitExpression",argument:Q})}function Xs(){return{type:"Import"}}function Ox(Q){return(0,n.default)({type:"BigIntLiteral",value:Q})}function _x(Q){return(0,n.default)({type:"ExportNamespaceSpecifier",exported:Q})}function Lu(Q,Fe,At=!1,Rr){return(0,n.default)({type:"OptionalMemberExpression",object:Q,property:Fe,computed:At,optional:Rr})}function hd(Q,Fe,At){return(0,n.default)({type:"OptionalCallExpression",callee:Q,arguments:Fe,optional:At})}function Ja(Q,Fe=null,At=null,Rr=null,an=!1,jo=!1){return(0,n.default)({type:"ClassProperty",key:Q,value:Fe,typeAnnotation:At,decorators:Rr,computed:an,static:jo})}function ag(Q,Fe=null,At=null,Rr=null,an=!1,jo=!1){return(0,n.default)({type:"ClassAccessorProperty",key:Q,value:Fe,typeAnnotation:At,decorators:Rr,computed:an,static:jo})}function Nx(Q,Fe=null,At=null,Rr=!1){return(0,n.default)({type:"ClassPrivateProperty",key:Q,value:Fe,decorators:At,static:Rr})}function kx(Q="method",Fe,At,Rr,an=!1){return(0,n.default)({type:"ClassPrivateMethod",kind:Q,key:Fe,params:At,body:Rr,static:an})}function Nl(Q){return(0,n.default)({type:"PrivateName",id:Q})}function ng(Q){return(0,n.default)({type:"StaticBlock",body:Q})}function md(){return{type:"AnyTypeAnnotation"}}function cf(Q){return(0,n.default)({type:"ArrayTypeAnnotation",elementType:Q})}function df(){return{type:"BooleanTypeAnnotation"}}function Io(Q){return(0,n.default)({type:"BooleanLiteralTypeAnnotation",value:Q})}function yd(){return{type:"NullLiteralTypeAnnotation"}}function pf(Q,Fe=null){return(0,n.default)({type:"ClassImplements",id:Q,typeParameters:Fe})}function gd(Q,Fe=null,At=null,Rr){return(0,n.default)({type:"DeclareClass",id:Q,typeParameters:Fe,extends:At,body:Rr})}function ff(Q){return(0,n.default)({type:"DeclareFunction",id:Q})}function hf(Q,Fe=null,At=null,Rr){return(0,n.default)({type:"DeclareInterface",id:Q,typeParameters:Fe,extends:At,body:Rr})}function vd(Q,Fe,At=null){return(0,n.default)({type:"DeclareModule",id:Q,body:Fe,kind:At})}function bd(Q){return(0,n.default)({type:"DeclareModuleExports",typeAnnotation:Q})}function mf(Q,Fe=null,At){return(0,n.default)({type:"DeclareTypeAlias",id:Q,typeParameters:Fe,right:At})}function yf(Q,Fe=null,At=null){return(0,n.default)({type:"DeclareOpaqueType",id:Q,typeParameters:Fe,supertype:At})}function Dx(Q){return(0,n.default)({type:"DeclareVariable",id:Q})}function gf(Q=null,Fe=null,At=null){return(0,n.default)({type:"DeclareExportDeclaration",declaration:Q,specifiers:Fe,source:At})}function Mu(Q){return(0,n.default)({type:"DeclareExportAllDeclaration",source:Q})}function vf(Q){return(0,n.default)({type:"DeclaredPredicate",value:Q})}function mn(){return{type:"ExistsTypeAnnotation"}}function Js(Q=null,Fe,At=null,Rr){return(0,n.default)({type:"FunctionTypeAnnotation",typeParameters:Q,params:Fe,rest:At,returnType:Rr})}function bf(Q=null,Fe){return(0,n.default)({type:"FunctionTypeParam",name:Q,typeAnnotation:Fe})}function Lx(Q,Fe=null){return(0,n.default)({type:"GenericTypeAnnotation",id:Q,typeParameters:Fe})}function Di(){return{type:"InferredPredicate"}}function xf(Q,Fe=null){return(0,n.default)({type:"InterfaceExtends",id:Q,typeParameters:Fe})}function sg(Q,Fe=null,At=null,Rr){return(0,n.default)({type:"InterfaceDeclaration",id:Q,typeParameters:Fe,extends:At,body:Rr})}function Rf(Q=null,Fe){return(0,n.default)({type:"InterfaceTypeAnnotation",extends:Q,body:Fe})}function ig(Q){return(0,n.default)({type:"IntersectionTypeAnnotation",types:Q})}function Ef(){return{type:"MixedTypeAnnotation"}}function Co(){return{type:"EmptyTypeAnnotation"}}function Bu(Q){return(0,n.default)({type:"NullableTypeAnnotation",typeAnnotation:Q})}function Qi(Q){return(0,n.default)({type:"NumberLiteralTypeAnnotation",value:Q})}function Mx(){return{type:"NumberTypeAnnotation"}}function Sf(Q,Fe=[],At=[],Rr=[],an=!1){return(0,n.default)({type:"ObjectTypeAnnotation",properties:Q,indexers:Fe,callProperties:At,internalSlots:Rr,exact:an})}function Bx(Q,Fe,At,Rr,an){return(0,n.default)({type:"ObjectTypeInternalSlot",id:Q,value:Fe,optional:At,static:Rr,method:an})}function Li(Q){return(0,n.default)({type:"ObjectTypeCallProperty",value:Q,static:null})}function kl(Q=null,Fe,At,Rr=null){return(0,n.default)({type:"ObjectTypeIndexer",id:Q,key:Fe,value:At,variance:Rr,static:null})}function Tf(Q,Fe,At=null){return(0,n.default)({type:"ObjectTypeProperty",key:Q,value:Fe,variance:At,kind:null,method:null,optional:null,proto:null,static:null})}function xd(Q){return(0,n.default)({type:"ObjectTypeSpreadProperty",argument:Q})}function og(Q,Fe=null,At=null,Rr){return(0,n.default)({type:"OpaqueType",id:Q,typeParameters:Fe,supertype:At,impltype:Rr})}function Fx(Q,Fe){return(0,n.default)({type:"QualifiedTypeIdentifier",id:Q,qualification:Fe})}function $x(Q){return(0,n.default)({type:"StringLiteralTypeAnnotation",value:Q})}function qx(){return{type:"StringTypeAnnotation"}}function Ux(){return{type:"SymbolTypeAnnotation"}}function Vx(){return{type:"ThisTypeAnnotation"}}function Wx(Q){return(0,n.default)({type:"TupleTypeAnnotation",types:Q})}function Gx(Q){return(0,n.default)({type:"TypeofTypeAnnotation",argument:Q})}function Kx(Q,Fe=null,At){return(0,n.default)({type:"TypeAlias",id:Q,typeParameters:Fe,right:At})}function Hx(Q){return(0,n.default)({type:"TypeAnnotation",typeAnnotation:Q})}function zx(Q,Fe){return(0,n.default)({type:"TypeCastExpression",expression:Q,typeAnnotation:Fe})}function Xx(Q=null,Fe=null,At=null){return(0,n.default)({type:"TypeParameter",bound:Q,default:Fe,variance:At,name:null})}function lg(Q){return(0,n.default)({type:"TypeParameterDeclaration",params:Q})}function Jx(Q){return(0,n.default)({type:"TypeParameterInstantiation",params:Q})}function Yx(Q){return(0,n.default)({type:"UnionTypeAnnotation",types:Q})}function Qx(Q){return(0,n.default)({type:"Variance",kind:Q})}function Zx(){return{type:"VoidTypeAnnotation"}}function e4(Q,Fe){return(0,n.default)({type:"EnumDeclaration",id:Q,body:Fe})}function wf(Q){return(0,n.default)({type:"EnumBooleanBody",members:Q,explicitType:null,hasUnknownMembers:null})}function t4(Q){return(0,n.default)({type:"EnumNumberBody",members:Q,explicitType:null,hasUnknownMembers:null})}function r4(Q){return(0,n.default)({type:"EnumStringBody",members:Q,explicitType:null,hasUnknownMembers:null})}function a4(Q){return(0,n.default)({type:"EnumSymbolBody",members:Q,hasUnknownMembers:null})}function n4(Q){return(0,n.default)({type:"EnumBooleanMember",id:Q,init:null})}function s4(Q,Fe){return(0,n.default)({type:"EnumNumberMember",id:Q,init:Fe})}function ug(Q,Fe){return(0,n.default)({type:"EnumStringMember",id:Q,init:Fe})}function cg(Q){return(0,n.default)({type:"EnumDefaultedMember",id:Q})}function i4(Q,Fe){return(0,n.default)({type:"IndexedAccessType",objectType:Q,indexType:Fe})}function o4(Q,Fe){return(0,n.default)({type:"OptionalIndexedAccessType",objectType:Q,indexType:Fe,optional:null})}function dg(Q,Fe=null){return(0,n.default)({type:"JSXAttribute",name:Q,value:Fe})}function l4(Q){return(0,n.default)({type:"JSXClosingElement",name:Q})}function u4(Q,Fe=null,At,Rr=null){return(0,n.default)({type:"JSXElement",openingElement:Q,closingElement:Fe,children:At,selfClosing:Rr})}function c4(){return{type:"JSXEmptyExpression"}}function d4(Q){return(0,n.default)({type:"JSXExpressionContainer",expression:Q})}function p4(Q){return(0,n.default)({type:"JSXSpreadChild",expression:Q})}function f4(Q){return(0,n.default)({type:"JSXIdentifier",name:Q})}function h4(Q,Fe){return(0,n.default)({type:"JSXMemberExpression",object:Q,property:Fe})}function m4(Q,Fe){return(0,n.default)({type:"JSXNamespacedName",namespace:Q,name:Fe})}function y4(Q,Fe,At=!1){return(0,n.default)({type:"JSXOpeningElement",name:Q,attributes:Fe,selfClosing:At})}function pg(Q){return(0,n.default)({type:"JSXSpreadAttribute",argument:Q})}function g4(Q){return(0,n.default)({type:"JSXText",value:Q})}function v4(Q,Fe,At){return(0,n.default)({type:"JSXFragment",openingFragment:Q,closingFragment:Fe,children:At})}function fg(){return{type:"JSXOpeningFragment"}}function b4(){return{type:"JSXClosingFragment"}}function x4(){return{type:"Noop"}}function hg(Q,Fe){return(0,n.default)({type:"Placeholder",expectedNode:Q,name:Fe})}function Pf(Q){return(0,n.default)({type:"V8IntrinsicIdentifier",name:Q})}function R4(){return{type:"ArgumentPlaceholder"}}function E4(Q,Fe){return(0,n.default)({type:"BindExpression",object:Q,callee:Fe})}function S4(Q,Fe){return(0,n.default)({type:"ImportAttribute",key:Q,value:Fe})}function Af(Q){return(0,n.default)({type:"Decorator",expression:Q})}function T4(Q,Fe=!1){return(0,n.default)({type:"DoExpression",body:Q,async:Fe})}function mg(Q){return(0,n.default)({type:"ExportDefaultSpecifier",exported:Q})}function w4(Q){return(0,n.default)({type:"RecordExpression",properties:Q})}function P4(Q=[]){return(0,n.default)({type:"TupleExpression",elements:Q})}function A4(Q){return(0,n.default)({type:"DecimalLiteral",value:Q})}function I4(Q){return(0,n.default)({type:"ModuleExpression",body:Q})}function C4(){return{type:"TopicReference"}}function j4(Q){return(0,n.default)({type:"PipelineTopicExpression",expression:Q})}function O4(Q){return(0,n.default)({type:"PipelineBareFunction",callee:Q})}function _4(){return{type:"PipelinePrimaryTopicReference"}}function N4(Q){return(0,n.default)({type:"TSParameterProperty",parameter:Q})}function yg(Q=null,Fe=null,At,Rr=null){return(0,n.default)({type:"TSDeclareFunction",id:Q,typeParameters:Fe,params:At,returnType:Rr})}function k4(Q=null,Fe,At=null,Rr,an=null){return(0,n.default)({type:"TSDeclareMethod",decorators:Q,key:Fe,typeParameters:At,params:Rr,returnType:an})}function Fu(Q,Fe){return(0,n.default)({type:"TSQualifiedName",left:Q,right:Fe})}function D4(Q=null,Fe,At=null){return(0,n.default)({type:"TSCallSignatureDeclaration",typeParameters:Q,parameters:Fe,typeAnnotation:At})}function gg(Q=null,Fe,At=null){return(0,n.default)({type:"TSConstructSignatureDeclaration",typeParameters:Q,parameters:Fe,typeAnnotation:At})}function vg(Q,Fe=null){return(0,n.default)({type:"TSPropertySignature",key:Q,typeAnnotation:Fe,kind:null})}function $u(Q,Fe=null,At,Rr=null){return(0,n.default)({type:"TSMethodSignature",key:Q,typeParameters:Fe,parameters:At,typeAnnotation:Rr,kind:null})}function L4(Q,Fe=null){return(0,n.default)({type:"TSIndexSignature",parameters:Q,typeAnnotation:Fe})}function Is(){return{type:"TSAnyKeyword"}}function qu(){return{type:"TSBooleanKeyword"}}function Rd(){return{type:"TSBigIntKeyword"}}function M4(){return{type:"TSIntrinsicKeyword"}}function Uu(){return{type:"TSNeverKeyword"}}function bg(){return{type:"TSNullKeyword"}}function B4(){return{type:"TSNumberKeyword"}}function F4(){return{type:"TSObjectKeyword"}}function $4(){return{type:"TSStringKeyword"}}function q4(){return{type:"TSSymbolKeyword"}}function xg(){return{type:"TSUndefinedKeyword"}}function U4(){return{type:"TSUnknownKeyword"}}function V4(){return{type:"TSVoidKeyword"}}function Rg(){return{type:"TSThisType"}}function W4(Q=null,Fe,At=null){return(0,n.default)({type:"TSFunctionType",typeParameters:Q,parameters:Fe,typeAnnotation:At})}function Eg(Q=null,Fe,At=null){return(0,n.default)({type:"TSConstructorType",typeParameters:Q,parameters:Fe,typeAnnotation:At})}function G4(Q,Fe=null){return(0,n.default)({type:"TSTypeReference",typeName:Q,typeParameters:Fe})}function Ed(Q,Fe=null,At=null){return(0,n.default)({type:"TSTypePredicate",parameterName:Q,typeAnnotation:Fe,asserts:At})}function Sg(Q,Fe=null){return(0,n.default)({type:"TSTypeQuery",exprName:Q,typeParameters:Fe})}function Tg(Q){return(0,n.default)({type:"TSTypeLiteral",members:Q})}function K4(Q){return(0,n.default)({type:"TSArrayType",elementType:Q})}function H4(Q){return(0,n.default)({type:"TSTupleType",elementTypes:Q})}function wg(Q){return(0,n.default)({type:"TSOptionalType",typeAnnotation:Q})}function Pg(Q){return(0,n.default)({type:"TSRestType",typeAnnotation:Q})}function z4(Q,Fe,At=!1){return(0,n.default)({type:"TSNamedTupleMember",label:Q,elementType:Fe,optional:At})}function X4(Q){return(0,n.default)({type:"TSUnionType",types:Q})}function J4(Q){return(0,n.default)({type:"TSIntersectionType",types:Q})}function Y4(Q,Fe,At,Rr){return(0,n.default)({type:"TSConditionalType",checkType:Q,extendsType:Fe,trueType:At,falseType:Rr})}function Q4(Q){return(0,n.default)({type:"TSInferType",typeParameter:Q})}function Z4(Q){return(0,n.default)({type:"TSParenthesizedType",typeAnnotation:Q})}function e7(Q){return(0,n.default)({type:"TSTypeOperator",typeAnnotation:Q,operator:null})}function t7(Q,Fe){return(0,n.default)({type:"TSIndexedAccessType",objectType:Q,indexType:Fe})}function r7(Q,Fe=null,At=null){return(0,n.default)({type:"TSMappedType",typeParameter:Q,typeAnnotation:Fe,nameType:At})}function a7(Q){return(0,n.default)({type:"TSLiteralType",literal:Q})}function n7(Q,Fe=null){return(0,n.default)({type:"TSExpressionWithTypeArguments",expression:Q,typeParameters:Fe})}function Ag(Q,Fe=null,At=null,Rr){return(0,n.default)({type:"TSInterfaceDeclaration",id:Q,typeParameters:Fe,extends:At,body:Rr})}function s7(Q){return(0,n.default)({type:"TSInterfaceBody",body:Q})}function i7(Q,Fe=null,At){return(0,n.default)({type:"TSTypeAliasDeclaration",id:Q,typeParameters:Fe,typeAnnotation:At})}function o7(Q,Fe=null){return(0,n.default)({type:"TSInstantiationExpression",expression:Q,typeParameters:Fe})}function l7(Q,Fe){return(0,n.default)({type:"TSAsExpression",expression:Q,typeAnnotation:Fe})}function u7(Q,Fe){return(0,n.default)({type:"TSSatisfiesExpression",expression:Q,typeAnnotation:Fe})}function c7(Q,Fe){return(0,n.default)({type:"TSTypeAssertion",typeAnnotation:Q,expression:Fe})}function d7(Q,Fe){return(0,n.default)({type:"TSEnumDeclaration",id:Q,members:Fe})}function p7(Q,Fe=null){return(0,n.default)({type:"TSEnumMember",id:Q,initializer:Fe})}function f7(Q,Fe){return(0,n.default)({type:"TSModuleDeclaration",id:Q,body:Fe})}function h7(Q){return(0,n.default)({type:"TSModuleBlock",body:Q})}function m7(Q,Fe=null,At=null){return(0,n.default)({type:"TSImportType",argument:Q,qualifier:Fe,typeParameters:At})}function y7(Q,Fe){return(0,n.default)({type:"TSImportEqualsDeclaration",id:Q,moduleReference:Fe,isExport:null})}function g7(Q){return(0,n.default)({type:"TSExternalModuleReference",expression:Q})}function v7(Q){return(0,n.default)({type:"TSNonNullExpression",expression:Q})}function b7(Q){return(0,n.default)({type:"TSExportAssignment",expression:Q})}function If(Q){return(0,n.default)({type:"TSNamespaceExportDeclaration",id:Q})}function x7(Q){return(0,n.default)({type:"TSTypeAnnotation",typeAnnotation:Q})}function R7(Q){return(0,n.default)({type:"TSTypeParameterInstantiation",params:Q})}function E7(Q){return(0,n.default)({type:"TSTypeParameterDeclaration",params:Q})}function Ig(Q=null,Fe=null,At){return(0,n.default)({type:"TSTypeParameter",constraint:Q,default:Fe,name:At})}function S7(Q){return(0,t.default)("NumberLiteral","NumericLiteral","The node type "),se(Q)}function T7(Q,Fe=""){return(0,t.default)("RegexLiteral","RegExpLiteral","The node type "),Qt(Q,Fe)}function w7(Q){return(0,t.default)("RestProperty","RestElement","The node type "),Se(Q)}function P7(Q){return(0,t.default)("SpreadProperty","SpreadElement","The node type "),Sn(Q)}return ye}var Epe;function Yct(){if(Epe)return gb;Epe=1,Object.defineProperty(gb,"__esModule",{value:!0}),gb.default=a;var n=Hs(),t=Ol();function a(i,d){const p=i.value.split(/\r\n|\n|\r/);let y=0;for(let v=0;v<p.length;v++)/[^ \t]/.exec(p[v])&&(y=v);let b="";for(let v=0;v<p.length;v++){const E=p[v],S=v===0,A=v===p.length-1,_=v===y;let C=E.replace(/\t/g," ");S||(C=C.replace(/^ +/,"")),A||(C=C.replace(/ +$/,"")),C&&(_||(C+=" "),b+=C)}b&&d.push((0,t.inherits)((0,n.stringLiteral)(b),i))}return gb}var Spe;function Qct(){if(Spe)return yb;Spe=1,Object.defineProperty(yb,"__esModule",{value:!0}),yb.default=a;var n=ve,t=Yct();function a(i){const d=[];for(let p=0;p<i.children.length;p++){let y=i.children[p];if((0,n.isJSXText)(y)){(0,t.default)(y,d);continue}(0,n.isJSXExpressionContainer)(y)&&(y=y.expression),!(0,n.isJSXEmptyExpression)(y)&&d.push(y)}return d}return yb}var WD={},h6={};Object.defineProperty(h6,"__esModule",{value:!0});h6.default=edt;var Zct=Ji();function edt(n){return!!(n&&Zct.VISITOR_KEYS[n.type])}Object.defineProperty(WD,"__esModule",{value:!0});WD.default=rdt;var tdt=h6;function rdt(n){if(!(0,tdt.default)(n)){var t;const a=(t=n==null?void 0:n.type)!=null?t:JSON.stringify(n);throw new TypeError(`Not a valid node of type "${a}"`)}}var Ee={};Object.defineProperty(Ee,"__esModule",{value:!0});Ee.assertAccessor=vyt;Ee.assertAnyTypeAnnotation=Bpt;Ee.assertArgumentPlaceholder=fht;Ee.assertArrayExpression=ndt;Ee.assertArrayPattern=rpt;Ee.assertArrayTypeAnnotation=Fpt;Ee.assertArrowFunctionExpression=apt;Ee.assertAssignmentExpression=sdt;Ee.assertAssignmentPattern=tpt;Ee.assertAwaitExpression=Ppt;Ee.assertBigIntLiteral=Ipt;Ee.assertBinary=$mt;Ee.assertBinaryExpression=idt;Ee.assertBindExpression=hht;Ee.assertBlock=Vmt;Ee.assertBlockParent=Umt;Ee.assertBlockStatement=cdt;Ee.assertBooleanLiteral=Odt;Ee.assertBooleanLiteralTypeAnnotation=qpt;Ee.assertBooleanTypeAnnotation=$pt;Ee.assertBreakStatement=ddt;Ee.assertCallExpression=pdt;Ee.assertCatchClause=fdt;Ee.assertClass=hyt;Ee.assertClassAccessorProperty=Npt;Ee.assertClassBody=npt;Ee.assertClassDeclaration=ipt;Ee.assertClassExpression=spt;Ee.assertClassImplements=Vpt;Ee.assertClassMethod=vpt;Ee.assertClassPrivateMethod=Dpt;Ee.assertClassPrivateProperty=kpt;Ee.assertClassProperty=_pt;Ee.assertCompletionStatement=Kmt;Ee.assertConditional=Hmt;Ee.assertConditionalExpression=hdt;Ee.assertContinueStatement=mdt;Ee.assertDebuggerStatement=ydt;Ee.assertDecimalLiteral=Rht;Ee.assertDeclaration=ryt;Ee.assertDeclareClass=Wpt;Ee.assertDeclareExportAllDeclaration=Zpt;Ee.assertDeclareExportDeclaration=Qpt;Ee.assertDeclareFunction=Gpt;Ee.assertDeclareInterface=Kpt;Ee.assertDeclareModule=Hpt;Ee.assertDeclareModuleExports=zpt;Ee.assertDeclareOpaqueType=Jpt;Ee.assertDeclareTypeAlias=Xpt;Ee.assertDeclareVariable=Ypt;Ee.assertDeclaredPredicate=eft;Ee.assertDecorator=yht;Ee.assertDirective=ldt;Ee.assertDirectiveLiteral=udt;Ee.assertDoExpression=ght;Ee.assertDoWhileStatement=gdt;Ee.assertEmptyStatement=vdt;Ee.assertEmptyTypeAnnotation=dft;Ee.assertEnumBody=wyt;Ee.assertEnumBooleanBody=Fft;Ee.assertEnumBooleanMember=Vft;Ee.assertEnumDeclaration=Bft;Ee.assertEnumDefaultedMember=Kft;Ee.assertEnumMember=Pyt;Ee.assertEnumNumberBody=$ft;Ee.assertEnumNumberMember=Wft;Ee.assertEnumStringBody=qft;Ee.assertEnumStringMember=Gft;Ee.assertEnumSymbolBody=Uft;Ee.assertExistsTypeAnnotation=tft;Ee.assertExportAllDeclaration=opt;Ee.assertExportDeclaration=yyt;Ee.assertExportDefaultDeclaration=lpt;Ee.assertExportDefaultSpecifier=vht;Ee.assertExportNamedDeclaration=upt;Ee.assertExportNamespaceSpecifier=Cpt;Ee.assertExportSpecifier=cpt;Ee.assertExpression=Fmt;Ee.assertExpressionStatement=bdt;Ee.assertExpressionWrapper=Jmt;Ee.assertFile=xdt;Ee.assertFlow=xyt;Ee.assertFlowBaseAnnotation=Eyt;Ee.assertFlowDeclaration=Syt;Ee.assertFlowPredicate=Tyt;Ee.assertFlowType=Ryt;Ee.assertFor=Ymt;Ee.assertForInStatement=Rdt;Ee.assertForOfStatement=dpt;Ee.assertForStatement=Edt;Ee.assertForXStatement=Qmt;Ee.assertFunction=Zmt;Ee.assertFunctionDeclaration=Sdt;Ee.assertFunctionExpression=Tdt;Ee.assertFunctionParent=eyt;Ee.assertFunctionTypeAnnotation=rft;Ee.assertFunctionTypeParam=aft;Ee.assertGenericTypeAnnotation=nft;Ee.assertIdentifier=wdt;Ee.assertIfStatement=Pdt;Ee.assertImmutable=oyt;Ee.assertImport=Apt;Ee.assertImportAttribute=mht;Ee.assertImportDeclaration=ppt;Ee.assertImportDefaultSpecifier=fpt;Ee.assertImportExpression=ypt;Ee.assertImportNamespaceSpecifier=hpt;Ee.assertImportOrExportDeclaration=myt;Ee.assertImportSpecifier=mpt;Ee.assertIndexedAccessType=Hft;Ee.assertInferredPredicate=sft;Ee.assertInterfaceDeclaration=oft;Ee.assertInterfaceExtends=ift;Ee.assertInterfaceTypeAnnotation=lft;Ee.assertInterpreterDirective=odt;Ee.assertIntersectionTypeAnnotation=uft;Ee.assertJSX=Ayt;Ee.assertJSXAttribute=Xft;Ee.assertJSXClosingElement=Jft;Ee.assertJSXClosingFragment=uht;Ee.assertJSXElement=Yft;Ee.assertJSXEmptyExpression=Qft;Ee.assertJSXExpressionContainer=Zft;Ee.assertJSXFragment=oht;Ee.assertJSXIdentifier=tht;Ee.assertJSXMemberExpression=rht;Ee.assertJSXNamespacedName=aht;Ee.assertJSXOpeningElement=nht;Ee.assertJSXOpeningFragment=lht;Ee.assertJSXSpreadAttribute=sht;Ee.assertJSXSpreadChild=eht;Ee.assertJSXText=iht;Ee.assertLVal=nyt;Ee.assertLabeledStatement=Adt;Ee.assertLiteral=iyt;Ee.assertLogicalExpression=Ndt;Ee.assertLoop=zmt;Ee.assertMemberExpression=kdt;Ee.assertMetaProperty=gpt;Ee.assertMethod=uyt;Ee.assertMiscellaneous=Iyt;Ee.assertMixedTypeAnnotation=cft;Ee.assertModuleDeclaration=Myt;Ee.assertModuleExpression=Eht;Ee.assertModuleSpecifier=gyt;Ee.assertNewExpression=Ddt;Ee.assertNoop=cht;Ee.assertNullLiteral=jdt;Ee.assertNullLiteralTypeAnnotation=Upt;Ee.assertNullableTypeAnnotation=pft;Ee.assertNumberLiteral=Nyt;Ee.assertNumberLiteralTypeAnnotation=fft;Ee.assertNumberTypeAnnotation=hft;Ee.assertNumericLiteral=Cdt;Ee.assertObjectExpression=Mdt;Ee.assertObjectMember=cyt;Ee.assertObjectMethod=Bdt;Ee.assertObjectPattern=bpt;Ee.assertObjectProperty=Fdt;Ee.assertObjectTypeAnnotation=mft;Ee.assertObjectTypeCallProperty=gft;Ee.assertObjectTypeIndexer=vft;Ee.assertObjectTypeInternalSlot=yft;Ee.assertObjectTypeProperty=bft;Ee.assertObjectTypeSpreadProperty=xft;Ee.assertOpaqueType=Rft;Ee.assertOptionalCallExpression=Opt;Ee.assertOptionalIndexedAccessType=zft;Ee.assertOptionalMemberExpression=jpt;Ee.assertParenthesizedExpression=Vdt;Ee.assertPattern=fyt;Ee.assertPatternLike=ayt;Ee.assertPipelineBareFunction=wht;Ee.assertPipelinePrimaryTopicReference=Pht;Ee.assertPipelineTopicExpression=Tht;Ee.assertPlaceholder=dht;Ee.assertPrivate=byt;Ee.assertPrivateName=Lpt;Ee.assertProgram=Ldt;Ee.assertProperty=dyt;Ee.assertPureish=tyt;Ee.assertQualifiedTypeIdentifier=Eft;Ee.assertRecordExpression=bht;Ee.assertRegExpLiteral=_dt;Ee.assertRegexLiteral=kyt;Ee.assertRestElement=$dt;Ee.assertRestProperty=Dyt;Ee.assertReturnStatement=qdt;Ee.assertScopable=qmt;Ee.assertSequenceExpression=Udt;Ee.assertSpreadElement=xpt;Ee.assertSpreadProperty=Lyt;Ee.assertStandardized=Bmt;Ee.assertStatement=Wmt;Ee.assertStaticBlock=Mpt;Ee.assertStringLiteral=Idt;Ee.assertStringLiteralTypeAnnotation=Sft;Ee.assertStringTypeAnnotation=Tft;Ee.assertSuper=Rpt;Ee.assertSwitchCase=Wdt;Ee.assertSwitchStatement=Gdt;Ee.assertSymbolTypeAnnotation=wft;Ee.assertTSAnyKeyword=Lht;Ee.assertTSArrayType=rmt;Ee.assertTSAsExpression=Rmt;Ee.assertTSBaseType=_yt;Ee.assertTSBigIntKeyword=Bht;Ee.assertTSBooleanKeyword=Mht;Ee.assertTSCallSignatureDeclaration=Oht;Ee.assertTSConditionalType=umt;Ee.assertTSConstructSignatureDeclaration=_ht;Ee.assertTSConstructorType=Yht;Ee.assertTSDeclareFunction=Iht;Ee.assertTSDeclareMethod=Cht;Ee.assertTSEntityName=syt;Ee.assertTSEnumDeclaration=Tmt;Ee.assertTSEnumMember=wmt;Ee.assertTSExportAssignment=_mt;Ee.assertTSExpressionWithTypeArguments=ymt;Ee.assertTSExternalModuleReference=jmt;Ee.assertTSFunctionType=Jht;Ee.assertTSImportEqualsDeclaration=Cmt;Ee.assertTSImportType=Imt;Ee.assertTSIndexSignature=Dht;Ee.assertTSIndexedAccessType=fmt;Ee.assertTSInferType=cmt;Ee.assertTSInstantiationExpression=xmt;Ee.assertTSInterfaceBody=vmt;Ee.assertTSInterfaceDeclaration=gmt;Ee.assertTSIntersectionType=lmt;Ee.assertTSIntrinsicKeyword=Fht;Ee.assertTSLiteralType=mmt;Ee.assertTSMappedType=hmt;Ee.assertTSMethodSignature=kht;Ee.assertTSModuleBlock=Amt;Ee.assertTSModuleDeclaration=Pmt;Ee.assertTSNamedTupleMember=imt;Ee.assertTSNamespaceExportDeclaration=Nmt;Ee.assertTSNeverKeyword=$ht;Ee.assertTSNonNullExpression=Omt;Ee.assertTSNullKeyword=qht;Ee.assertTSNumberKeyword=Uht;Ee.assertTSObjectKeyword=Vht;Ee.assertTSOptionalType=nmt;Ee.assertTSParameterProperty=Aht;Ee.assertTSParenthesizedType=dmt;Ee.assertTSPropertySignature=Nht;Ee.assertTSQualifiedName=jht;Ee.assertTSRestType=smt;Ee.assertTSSatisfiesExpression=Emt;Ee.assertTSStringKeyword=Wht;Ee.assertTSSymbolKeyword=Ght;Ee.assertTSThisType=Xht;Ee.assertTSTupleType=amt;Ee.assertTSType=Oyt;Ee.assertTSTypeAliasDeclaration=bmt;Ee.assertTSTypeAnnotation=kmt;Ee.assertTSTypeAssertion=Smt;Ee.assertTSTypeElement=jyt;Ee.assertTSTypeLiteral=tmt;Ee.assertTSTypeOperator=pmt;Ee.assertTSTypeParameter=Mmt;Ee.assertTSTypeParameterDeclaration=Lmt;Ee.assertTSTypeParameterInstantiation=Dmt;Ee.assertTSTypePredicate=Zht;Ee.assertTSTypeQuery=emt;Ee.assertTSTypeReference=Qht;Ee.assertTSUndefinedKeyword=Kht;Ee.assertTSUnionType=omt;Ee.assertTSUnknownKeyword=Hht;Ee.assertTSVoidKeyword=zht;Ee.assertTaggedTemplateExpression=Ept;Ee.assertTemplateElement=Spt;Ee.assertTemplateLiteral=Tpt;Ee.assertTerminatorless=Gmt;Ee.assertThisExpression=Kdt;Ee.assertThisTypeAnnotation=Pft;Ee.assertThrowStatement=Hdt;Ee.assertTopicReference=Sht;Ee.assertTryStatement=zdt;Ee.assertTupleExpression=xht;Ee.assertTupleTypeAnnotation=Aft;Ee.assertTypeAlias=Cft;Ee.assertTypeAnnotation=jft;Ee.assertTypeCastExpression=Oft;Ee.assertTypeParameter=_ft;Ee.assertTypeParameterDeclaration=Nft;Ee.assertTypeParameterInstantiation=kft;Ee.assertTypeScript=Cyt;Ee.assertTypeofTypeAnnotation=Ift;Ee.assertUnaryExpression=Xdt;Ee.assertUnaryLike=pyt;Ee.assertUnionTypeAnnotation=Dft;Ee.assertUpdateExpression=Jdt;Ee.assertUserWhitespacable=lyt;Ee.assertV8IntrinsicIdentifier=pht;Ee.assertVariableDeclaration=Ydt;Ee.assertVariableDeclarator=Qdt;Ee.assertVariance=Lft;Ee.assertVoidTypeAnnotation=Mft;Ee.assertWhile=Xmt;Ee.assertWhileStatement=Zdt;Ee.assertWithStatement=ept;Ee.assertYieldExpression=wpt;var adt=Ly(),$y=Zp;function we(n,t,a){if(!(0,adt.default)(n,t,a))throw new Error(`Expected type "${n}" with option ${JSON.stringify(a)}, but instead got "${t.type}".`)}function ndt(n,t){we("ArrayExpression",n,t)}function sdt(n,t){we("AssignmentExpression",n,t)}function idt(n,t){we("BinaryExpression",n,t)}function odt(n,t){we("InterpreterDirective",n,t)}function ldt(n,t){we("Directive",n,t)}function udt(n,t){we("DirectiveLiteral",n,t)}function cdt(n,t){we("BlockStatement",n,t)}function ddt(n,t){we("BreakStatement",n,t)}function pdt(n,t){we("CallExpression",n,t)}function fdt(n,t){we("CatchClause",n,t)}function hdt(n,t){we("ConditionalExpression",n,t)}function mdt(n,t){we("ContinueStatement",n,t)}function ydt(n,t){we("DebuggerStatement",n,t)}function gdt(n,t){we("DoWhileStatement",n,t)}function vdt(n,t){we("EmptyStatement",n,t)}function bdt(n,t){we("ExpressionStatement",n,t)}function xdt(n,t){we("File",n,t)}function Rdt(n,t){we("ForInStatement",n,t)}function Edt(n,t){we("ForStatement",n,t)}function Sdt(n,t){we("FunctionDeclaration",n,t)}function Tdt(n,t){we("FunctionExpression",n,t)}function wdt(n,t){we("Identifier",n,t)}function Pdt(n,t){we("IfStatement",n,t)}function Adt(n,t){we("LabeledStatement",n,t)}function Idt(n,t){we("StringLiteral",n,t)}function Cdt(n,t){we("NumericLiteral",n,t)}function jdt(n,t){we("NullLiteral",n,t)}function Odt(n,t){we("BooleanLiteral",n,t)}function _dt(n,t){we("RegExpLiteral",n,t)}function Ndt(n,t){we("LogicalExpression",n,t)}function kdt(n,t){we("MemberExpression",n,t)}function Ddt(n,t){we("NewExpression",n,t)}function Ldt(n,t){we("Program",n,t)}function Mdt(n,t){we("ObjectExpression",n,t)}function Bdt(n,t){we("ObjectMethod",n,t)}function Fdt(n,t){we("ObjectProperty",n,t)}function $dt(n,t){we("RestElement",n,t)}function qdt(n,t){we("ReturnStatement",n,t)}function Udt(n,t){we("SequenceExpression",n,t)}function Vdt(n,t){we("ParenthesizedExpression",n,t)}function Wdt(n,t){we("SwitchCase",n,t)}function Gdt(n,t){we("SwitchStatement",n,t)}function Kdt(n,t){we("ThisExpression",n,t)}function Hdt(n,t){we("ThrowStatement",n,t)}function zdt(n,t){we("TryStatement",n,t)}function Xdt(n,t){we("UnaryExpression",n,t)}function Jdt(n,t){we("UpdateExpression",n,t)}function Ydt(n,t){we("VariableDeclaration",n,t)}function Qdt(n,t){we("VariableDeclarator",n,t)}function Zdt(n,t){we("WhileStatement",n,t)}function ept(n,t){we("WithStatement",n,t)}function tpt(n,t){we("AssignmentPattern",n,t)}function rpt(n,t){we("ArrayPattern",n,t)}function apt(n,t){we("ArrowFunctionExpression",n,t)}function npt(n,t){we("ClassBody",n,t)}function spt(n,t){we("ClassExpression",n,t)}function ipt(n,t){we("ClassDeclaration",n,t)}function opt(n,t){we("ExportAllDeclaration",n,t)}function lpt(n,t){we("ExportDefaultDeclaration",n,t)}function upt(n,t){we("ExportNamedDeclaration",n,t)}function cpt(n,t){we("ExportSpecifier",n,t)}function dpt(n,t){we("ForOfStatement",n,t)}function ppt(n,t){we("ImportDeclaration",n,t)}function fpt(n,t){we("ImportDefaultSpecifier",n,t)}function hpt(n,t){we("ImportNamespaceSpecifier",n,t)}function mpt(n,t){we("ImportSpecifier",n,t)}function ypt(n,t){we("ImportExpression",n,t)}function gpt(n,t){we("MetaProperty",n,t)}function vpt(n,t){we("ClassMethod",n,t)}function bpt(n,t){we("ObjectPattern",n,t)}function xpt(n,t){we("SpreadElement",n,t)}function Rpt(n,t){we("Super",n,t)}function Ept(n,t){we("TaggedTemplateExpression",n,t)}function Spt(n,t){we("TemplateElement",n,t)}function Tpt(n,t){we("TemplateLiteral",n,t)}function wpt(n,t){we("YieldExpression",n,t)}function Ppt(n,t){we("AwaitExpression",n,t)}function Apt(n,t){we("Import",n,t)}function Ipt(n,t){we("BigIntLiteral",n,t)}function Cpt(n,t){we("ExportNamespaceSpecifier",n,t)}function jpt(n,t){we("OptionalMemberExpression",n,t)}function Opt(n,t){we("OptionalCallExpression",n,t)}function _pt(n,t){we("ClassProperty",n,t)}function Npt(n,t){we("ClassAccessorProperty",n,t)}function kpt(n,t){we("ClassPrivateProperty",n,t)}function Dpt(n,t){we("ClassPrivateMethod",n,t)}function Lpt(n,t){we("PrivateName",n,t)}function Mpt(n,t){we("StaticBlock",n,t)}function Bpt(n,t){we("AnyTypeAnnotation",n,t)}function Fpt(n,t){we("ArrayTypeAnnotation",n,t)}function $pt(n,t){we("BooleanTypeAnnotation",n,t)}function qpt(n,t){we("BooleanLiteralTypeAnnotation",n,t)}function Upt(n,t){we("NullLiteralTypeAnnotation",n,t)}function Vpt(n,t){we("ClassImplements",n,t)}function Wpt(n,t){we("DeclareClass",n,t)}function Gpt(n,t){we("DeclareFunction",n,t)}function Kpt(n,t){we("DeclareInterface",n,t)}function Hpt(n,t){we("DeclareModule",n,t)}function zpt(n,t){we("DeclareModuleExports",n,t)}function Xpt(n,t){we("DeclareTypeAlias",n,t)}function Jpt(n,t){we("DeclareOpaqueType",n,t)}function Ypt(n,t){we("DeclareVariable",n,t)}function Qpt(n,t){we("DeclareExportDeclaration",n,t)}function Zpt(n,t){we("DeclareExportAllDeclaration",n,t)}function eft(n,t){we("DeclaredPredicate",n,t)}function tft(n,t){we("ExistsTypeAnnotation",n,t)}function rft(n,t){we("FunctionTypeAnnotation",n,t)}function aft(n,t){we("FunctionTypeParam",n,t)}function nft(n,t){we("GenericTypeAnnotation",n,t)}function sft(n,t){we("InferredPredicate",n,t)}function ift(n,t){we("InterfaceExtends",n,t)}function oft(n,t){we("InterfaceDeclaration",n,t)}function lft(n,t){we("InterfaceTypeAnnotation",n,t)}function uft(n,t){we("IntersectionTypeAnnotation",n,t)}function cft(n,t){we("MixedTypeAnnotation",n,t)}function dft(n,t){we("EmptyTypeAnnotation",n,t)}function pft(n,t){we("NullableTypeAnnotation",n,t)}function fft(n,t){we("NumberLiteralTypeAnnotation",n,t)}function hft(n,t){we("NumberTypeAnnotation",n,t)}function mft(n,t){we("ObjectTypeAnnotation",n,t)}function yft(n,t){we("ObjectTypeInternalSlot",n,t)}function gft(n,t){we("ObjectTypeCallProperty",n,t)}function vft(n,t){we("ObjectTypeIndexer",n,t)}function bft(n,t){we("ObjectTypeProperty",n,t)}function xft(n,t){we("ObjectTypeSpreadProperty",n,t)}function Rft(n,t){we("OpaqueType",n,t)}function Eft(n,t){we("QualifiedTypeIdentifier",n,t)}function Sft(n,t){we("StringLiteralTypeAnnotation",n,t)}function Tft(n,t){we("StringTypeAnnotation",n,t)}function wft(n,t){we("SymbolTypeAnnotation",n,t)}function Pft(n,t){we("ThisTypeAnnotation",n,t)}function Aft(n,t){we("TupleTypeAnnotation",n,t)}function Ift(n,t){we("TypeofTypeAnnotation",n,t)}function Cft(n,t){we("TypeAlias",n,t)}function jft(n,t){we("TypeAnnotation",n,t)}function Oft(n,t){we("TypeCastExpression",n,t)}function _ft(n,t){we("TypeParameter",n,t)}function Nft(n,t){we("TypeParameterDeclaration",n,t)}function kft(n,t){we("TypeParameterInstantiation",n,t)}function Dft(n,t){we("UnionTypeAnnotation",n,t)}function Lft(n,t){we("Variance",n,t)}function Mft(n,t){we("VoidTypeAnnotation",n,t)}function Bft(n,t){we("EnumDeclaration",n,t)}function Fft(n,t){we("EnumBooleanBody",n,t)}function $ft(n,t){we("EnumNumberBody",n,t)}function qft(n,t){we("EnumStringBody",n,t)}function Uft(n,t){we("EnumSymbolBody",n,t)}function Vft(n,t){we("EnumBooleanMember",n,t)}function Wft(n,t){we("EnumNumberMember",n,t)}function Gft(n,t){we("EnumStringMember",n,t)}function Kft(n,t){we("EnumDefaultedMember",n,t)}function Hft(n,t){we("IndexedAccessType",n,t)}function zft(n,t){we("OptionalIndexedAccessType",n,t)}function Xft(n,t){we("JSXAttribute",n,t)}function Jft(n,t){we("JSXClosingElement",n,t)}function Yft(n,t){we("JSXElement",n,t)}function Qft(n,t){we("JSXEmptyExpression",n,t)}function Zft(n,t){we("JSXExpressionContainer",n,t)}function eht(n,t){we("JSXSpreadChild",n,t)}function tht(n,t){we("JSXIdentifier",n,t)}function rht(n,t){we("JSXMemberExpression",n,t)}function aht(n,t){we("JSXNamespacedName",n,t)}function nht(n,t){we("JSXOpeningElement",n,t)}function sht(n,t){we("JSXSpreadAttribute",n,t)}function iht(n,t){we("JSXText",n,t)}function oht(n,t){we("JSXFragment",n,t)}function lht(n,t){we("JSXOpeningFragment",n,t)}function uht(n,t){we("JSXClosingFragment",n,t)}function cht(n,t){we("Noop",n,t)}function dht(n,t){we("Placeholder",n,t)}function pht(n,t){we("V8IntrinsicIdentifier",n,t)}function fht(n,t){we("ArgumentPlaceholder",n,t)}function hht(n,t){we("BindExpression",n,t)}function mht(n,t){we("ImportAttribute",n,t)}function yht(n,t){we("Decorator",n,t)}function ght(n,t){we("DoExpression",n,t)}function vht(n,t){we("ExportDefaultSpecifier",n,t)}function bht(n,t){we("RecordExpression",n,t)}function xht(n,t){we("TupleExpression",n,t)}function Rht(n,t){we("DecimalLiteral",n,t)}function Eht(n,t){we("ModuleExpression",n,t)}function Sht(n,t){we("TopicReference",n,t)}function Tht(n,t){we("PipelineTopicExpression",n,t)}function wht(n,t){we("PipelineBareFunction",n,t)}function Pht(n,t){we("PipelinePrimaryTopicReference",n,t)}function Aht(n,t){we("TSParameterProperty",n,t)}function Iht(n,t){we("TSDeclareFunction",n,t)}function Cht(n,t){we("TSDeclareMethod",n,t)}function jht(n,t){we("TSQualifiedName",n,t)}function Oht(n,t){we("TSCallSignatureDeclaration",n,t)}function _ht(n,t){we("TSConstructSignatureDeclaration",n,t)}function Nht(n,t){we("TSPropertySignature",n,t)}function kht(n,t){we("TSMethodSignature",n,t)}function Dht(n,t){we("TSIndexSignature",n,t)}function Lht(n,t){we("TSAnyKeyword",n,t)}function Mht(n,t){we("TSBooleanKeyword",n,t)}function Bht(n,t){we("TSBigIntKeyword",n,t)}function Fht(n,t){we("TSIntrinsicKeyword",n,t)}function $ht(n,t){we("TSNeverKeyword",n,t)}function qht(n,t){we("TSNullKeyword",n,t)}function Uht(n,t){we("TSNumberKeyword",n,t)}function Vht(n,t){we("TSObjectKeyword",n,t)}function Wht(n,t){we("TSStringKeyword",n,t)}function Ght(n,t){we("TSSymbolKeyword",n,t)}function Kht(n,t){we("TSUndefinedKeyword",n,t)}function Hht(n,t){we("TSUnknownKeyword",n,t)}function zht(n,t){we("TSVoidKeyword",n,t)}function Xht(n,t){we("TSThisType",n,t)}function Jht(n,t){we("TSFunctionType",n,t)}function Yht(n,t){we("TSConstructorType",n,t)}function Qht(n,t){we("TSTypeReference",n,t)}function Zht(n,t){we("TSTypePredicate",n,t)}function emt(n,t){we("TSTypeQuery",n,t)}function tmt(n,t){we("TSTypeLiteral",n,t)}function rmt(n,t){we("TSArrayType",n,t)}function amt(n,t){we("TSTupleType",n,t)}function nmt(n,t){we("TSOptionalType",n,t)}function smt(n,t){we("TSRestType",n,t)}function imt(n,t){we("TSNamedTupleMember",n,t)}function omt(n,t){we("TSUnionType",n,t)}function lmt(n,t){we("TSIntersectionType",n,t)}function umt(n,t){we("TSConditionalType",n,t)}function cmt(n,t){we("TSInferType",n,t)}function dmt(n,t){we("TSParenthesizedType",n,t)}function pmt(n,t){we("TSTypeOperator",n,t)}function fmt(n,t){we("TSIndexedAccessType",n,t)}function hmt(n,t){we("TSMappedType",n,t)}function mmt(n,t){we("TSLiteralType",n,t)}function ymt(n,t){we("TSExpressionWithTypeArguments",n,t)}function gmt(n,t){we("TSInterfaceDeclaration",n,t)}function vmt(n,t){we("TSInterfaceBody",n,t)}function bmt(n,t){we("TSTypeAliasDeclaration",n,t)}function xmt(n,t){we("TSInstantiationExpression",n,t)}function Rmt(n,t){we("TSAsExpression",n,t)}function Emt(n,t){we("TSSatisfiesExpression",n,t)}function Smt(n,t){we("TSTypeAssertion",n,t)}function Tmt(n,t){we("TSEnumDeclaration",n,t)}function wmt(n,t){we("TSEnumMember",n,t)}function Pmt(n,t){we("TSModuleDeclaration",n,t)}function Amt(n,t){we("TSModuleBlock",n,t)}function Imt(n,t){we("TSImportType",n,t)}function Cmt(n,t){we("TSImportEqualsDeclaration",n,t)}function jmt(n,t){we("TSExternalModuleReference",n,t)}function Omt(n,t){we("TSNonNullExpression",n,t)}function _mt(n,t){we("TSExportAssignment",n,t)}function Nmt(n,t){we("TSNamespaceExportDeclaration",n,t)}function kmt(n,t){we("TSTypeAnnotation",n,t)}function Dmt(n,t){we("TSTypeParameterInstantiation",n,t)}function Lmt(n,t){we("TSTypeParameterDeclaration",n,t)}function Mmt(n,t){we("TSTypeParameter",n,t)}function Bmt(n,t){we("Standardized",n,t)}function Fmt(n,t){we("Expression",n,t)}function $mt(n,t){we("Binary",n,t)}function qmt(n,t){we("Scopable",n,t)}function Umt(n,t){we("BlockParent",n,t)}function Vmt(n,t){we("Block",n,t)}function Wmt(n,t){we("Statement",n,t)}function Gmt(n,t){we("Terminatorless",n,t)}function Kmt(n,t){we("CompletionStatement",n,t)}function Hmt(n,t){we("Conditional",n,t)}function zmt(n,t){we("Loop",n,t)}function Xmt(n,t){we("While",n,t)}function Jmt(n,t){we("ExpressionWrapper",n,t)}function Ymt(n,t){we("For",n,t)}function Qmt(n,t){we("ForXStatement",n,t)}function Zmt(n,t){we("Function",n,t)}function eyt(n,t){we("FunctionParent",n,t)}function tyt(n,t){we("Pureish",n,t)}function ryt(n,t){we("Declaration",n,t)}function ayt(n,t){we("PatternLike",n,t)}function nyt(n,t){we("LVal",n,t)}function syt(n,t){we("TSEntityName",n,t)}function iyt(n,t){we("Literal",n,t)}function oyt(n,t){we("Immutable",n,t)}function lyt(n,t){we("UserWhitespacable",n,t)}function uyt(n,t){we("Method",n,t)}function cyt(n,t){we("ObjectMember",n,t)}function dyt(n,t){we("Property",n,t)}function pyt(n,t){we("UnaryLike",n,t)}function fyt(n,t){we("Pattern",n,t)}function hyt(n,t){we("Class",n,t)}function myt(n,t){we("ImportOrExportDeclaration",n,t)}function yyt(n,t){we("ExportDeclaration",n,t)}function gyt(n,t){we("ModuleSpecifier",n,t)}function vyt(n,t){we("Accessor",n,t)}function byt(n,t){we("Private",n,t)}function xyt(n,t){we("Flow",n,t)}function Ryt(n,t){we("FlowType",n,t)}function Eyt(n,t){we("FlowBaseAnnotation",n,t)}function Syt(n,t){we("FlowDeclaration",n,t)}function Tyt(n,t){we("FlowPredicate",n,t)}function wyt(n,t){we("EnumBody",n,t)}function Pyt(n,t){we("EnumMember",n,t)}function Ayt(n,t){we("JSX",n,t)}function Iyt(n,t){we("Miscellaneous",n,t)}function Cyt(n,t){we("TypeScript",n,t)}function jyt(n,t){we("TSTypeElement",n,t)}function Oyt(n,t){we("TSType",n,t)}function _yt(n,t){we("TSBaseType",n,t)}function Nyt(n,t){(0,$y.default)("assertNumberLiteral","assertNumericLiteral"),we("NumberLiteral",n,t)}function kyt(n,t){(0,$y.default)("assertRegexLiteral","assertRegExpLiteral"),we("RegexLiteral",n,t)}function Dyt(n,t){(0,$y.default)("assertRestProperty","assertRestElement"),we("RestProperty",n,t)}function Lyt(n,t){(0,$y.default)("assertSpreadProperty","assertSpreadElement"),we("SpreadProperty",n,t)}function Myt(n,t){(0,$y.default)("assertModuleDeclaration","assertImportOrExportDeclaration"),we("ModuleDeclaration",n,t)}var km={},Tpe;function Byt(){if(Tpe)return km;Tpe=1,Object.defineProperty(km,"__esModule",{value:!0}),km.default=void 0;var n=Hs();km.default=t;function t(a){switch(a){case"string":return(0,n.stringTypeAnnotation)();case"number":return(0,n.numberTypeAnnotation)();case"undefined":return(0,n.voidTypeAnnotation)();case"boolean":return(0,n.booleanTypeAnnotation)();case"function":return(0,n.genericTypeAnnotation)((0,n.identifier)("Function"));case"object":return(0,n.genericTypeAnnotation)((0,n.identifier)("Object"));case"symbol":return(0,n.genericTypeAnnotation)((0,n.identifier)("Symbol"));case"bigint":return(0,n.anyTypeAnnotation)()}throw new Error("Invalid typeof value: "+a)}return km}var Sb={},m6={};Object.defineProperty(m6,"__esModule",{value:!0});m6.default=Cye;var Zm=ve;function Iye(n){return(0,Zm.isIdentifier)(n)?n.name:`${n.id.name}.${Iye(n.qualification)}`}function Cye(n){const t=Array.from(n),a=new Map,i=new Map,d=new Set,p=[];for(let y=0;y<t.length;y++){const b=t[y];if(b&&!p.includes(b)){if((0,Zm.isAnyTypeAnnotation)(b))return[b];if((0,Zm.isFlowBaseAnnotation)(b)){i.set(b.type,b);continue}if((0,Zm.isUnionTypeAnnotation)(b)){d.has(b.types)||(t.push(...b.types),d.add(b.types));continue}if((0,Zm.isGenericTypeAnnotation)(b)){const v=Iye(b.id);if(a.has(v)){let E=a.get(v);E.typeParameters?b.typeParameters&&(E.typeParameters.params.push(...b.typeParameters.params),E.typeParameters.params=Cye(E.typeParameters.params)):E=b.typeParameters}else a.set(v,b);continue}p.push(b)}}for(const[,y]of i)p.push(y);for(const[,y]of a)p.push(y);return p}var wpe;function Fyt(){if(wpe)return Sb;wpe=1,Object.defineProperty(Sb,"__esModule",{value:!0}),Sb.default=a;var n=Hs(),t=m6;function a(i){const d=(0,t.default)(i);return d.length===1?d[0]:(0,n.unionTypeAnnotation)(d)}return Sb}var Tb={},GD={};Object.defineProperty(GD,"__esModule",{value:!0});GD.default=Oye;var ey=ve;function jye(n){return(0,ey.isIdentifier)(n)?n.name:`${n.right.name}.${jye(n.left)}`}function Oye(n){const t=Array.from(n),a=new Map,i=new Map,d=new Set,p=[];for(let y=0;y<t.length;y++){const b=t[y];if(b&&!p.includes(b)){if((0,ey.isTSAnyKeyword)(b))return[b];if((0,ey.isTSBaseType)(b)){i.set(b.type,b);continue}if((0,ey.isTSUnionType)(b)){d.has(b.types)||(t.push(...b.types),d.add(b.types));continue}if((0,ey.isTSTypeReference)(b)&&b.typeParameters){const v=jye(b.typeName);if(a.has(v)){let E=a.get(v);E.typeParameters?b.typeParameters&&(E.typeParameters.params.push(...b.typeParameters.params),E.typeParameters.params=Oye(E.typeParameters.params)):E=b.typeParameters}else a.set(v,b);continue}p.push(b)}}for(const[,y]of i)p.push(y);for(const[,y]of a)p.push(y);return p}var Ppe;function $yt(){if(Ppe)return Tb;Ppe=1,Object.defineProperty(Tb,"__esModule",{value:!0}),Tb.default=i;var n=Hs(),t=GD,a=ve;function i(d){const p=d.map(b=>(0,a.isTSTypeAnnotation)(b)?b.typeAnnotation:b),y=(0,t.default)(p);return y.length===1?y[0]:(0,n.tsUnionType)(y)}return Tb}var J_={},Ape;function qyt(){return Ape||(Ape=1,function(n){Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AnyTypeAnnotation",{enumerable:!0,get:function(){return t.anyTypeAnnotation}}),Object.defineProperty(n,"ArgumentPlaceholder",{enumerable:!0,get:function(){return t.argumentPlaceholder}}),Object.defineProperty(n,"ArrayExpression",{enumerable:!0,get:function(){return t.arrayExpression}}),Object.defineProperty(n,"ArrayPattern",{enumerable:!0,get:function(){return t.arrayPattern}}),Object.defineProperty(n,"ArrayTypeAnnotation",{enumerable:!0,get:function(){return t.arrayTypeAnnotation}}),Object.defineProperty(n,"ArrowFunctionExpression",{enumerable:!0,get:function(){return t.arrowFunctionExpression}}),Object.defineProperty(n,"AssignmentExpression",{enumerable:!0,get:function(){return t.assignmentExpression}}),Object.defineProperty(n,"AssignmentPattern",{enumerable:!0,get:function(){return t.assignmentPattern}}),Object.defineProperty(n,"AwaitExpression",{enumerable:!0,get:function(){return t.awaitExpression}}),Object.defineProperty(n,"BigIntLiteral",{enumerable:!0,get:function(){return t.bigIntLiteral}}),Object.defineProperty(n,"BinaryExpression",{enumerable:!0,get:function(){return t.binaryExpression}}),Object.defineProperty(n,"BindExpression",{enumerable:!0,get:function(){return t.bindExpression}}),Object.defineProperty(n,"BlockStatement",{enumerable:!0,get:function(){return t.blockStatement}}),Object.defineProperty(n,"BooleanLiteral",{enumerable:!0,get:function(){return t.booleanLiteral}}),Object.defineProperty(n,"BooleanLiteralTypeAnnotation",{enumerable:!0,get:function(){return t.booleanLiteralTypeAnnotation}}),Object.defineProperty(n,"BooleanTypeAnnotation",{enumerable:!0,get:function(){return t.booleanTypeAnnotation}}),Object.defineProperty(n,"BreakStatement",{enumerable:!0,get:function(){return t.breakStatement}}),Object.defineProperty(n,"CallExpression",{enumerable:!0,get:function(){return t.callExpression}}),Object.defineProperty(n,"CatchClause",{enumerable:!0,get:function(){return t.catchClause}}),Object.defineProperty(n,"ClassAccessorProperty",{enumerable:!0,get:function(){return t.classAccessorProperty}}),Object.defineProperty(n,"ClassBody",{enumerable:!0,get:function(){return t.classBody}}),Object.defineProperty(n,"ClassDeclaration",{enumerable:!0,get:function(){return t.classDeclaration}}),Object.defineProperty(n,"ClassExpression",{enumerable:!0,get:function(){return t.classExpression}}),Object.defineProperty(n,"ClassImplements",{enumerable:!0,get:function(){return t.classImplements}}),Object.defineProperty(n,"ClassMethod",{enumerable:!0,get:function(){return t.classMethod}}),Object.defineProperty(n,"ClassPrivateMethod",{enumerable:!0,get:function(){return t.classPrivateMethod}}),Object.defineProperty(n,"ClassPrivateProperty",{enumerable:!0,get:function(){return t.classPrivateProperty}}),Object.defineProperty(n,"ClassProperty",{enumerable:!0,get:function(){return t.classProperty}}),Object.defineProperty(n,"ConditionalExpression",{enumerable:!0,get:function(){return t.conditionalExpression}}),Object.defineProperty(n,"ContinueStatement",{enumerable:!0,get:function(){return t.continueStatement}}),Object.defineProperty(n,"DebuggerStatement",{enumerable:!0,get:function(){return t.debuggerStatement}}),Object.defineProperty(n,"DecimalLiteral",{enumerable:!0,get:function(){return t.decimalLiteral}}),Object.defineProperty(n,"DeclareClass",{enumerable:!0,get:function(){return t.declareClass}}),Object.defineProperty(n,"DeclareExportAllDeclaration",{enumerable:!0,get:function(){return t.declareExportAllDeclaration}}),Object.defineProperty(n,"DeclareExportDeclaration",{enumerable:!0,get:function(){return t.declareExportDeclaration}}),Object.defineProperty(n,"DeclareFunction",{enumerable:!0,get:function(){return t.declareFunction}}),Object.defineProperty(n,"DeclareInterface",{enumerable:!0,get:function(){return t.declareInterface}}),Object.defineProperty(n,"DeclareModule",{enumerable:!0,get:function(){return t.declareModule}}),Object.defineProperty(n,"DeclareModuleExports",{enumerable:!0,get:function(){return t.declareModuleExports}}),Object.defineProperty(n,"DeclareOpaqueType",{enumerable:!0,get:function(){return t.declareOpaqueType}}),Object.defineProperty(n,"DeclareTypeAlias",{enumerable:!0,get:function(){return t.declareTypeAlias}}),Object.defineProperty(n,"DeclareVariable",{enumerable:!0,get:function(){return t.declareVariable}}),Object.defineProperty(n,"DeclaredPredicate",{enumerable:!0,get:function(){return t.declaredPredicate}}),Object.defineProperty(n,"Decorator",{enumerable:!0,get:function(){return t.decorator}}),Object.defineProperty(n,"Directive",{enumerable:!0,get:function(){return t.directive}}),Object.defineProperty(n,"DirectiveLiteral",{enumerable:!0,get:function(){return t.directiveLiteral}}),Object.defineProperty(n,"DoExpression",{enumerable:!0,get:function(){return t.doExpression}}),Object.defineProperty(n,"DoWhileStatement",{enumerable:!0,get:function(){return t.doWhileStatement}}),Object.defineProperty(n,"EmptyStatement",{enumerable:!0,get:function(){return t.emptyStatement}}),Object.defineProperty(n,"EmptyTypeAnnotation",{enumerable:!0,get:function(){return t.emptyTypeAnnotation}}),Object.defineProperty(n,"EnumBooleanBody",{enumerable:!0,get:function(){return t.enumBooleanBody}}),Object.defineProperty(n,"EnumBooleanMember",{enumerable:!0,get:function(){return t.enumBooleanMember}}),Object.defineProperty(n,"EnumDeclaration",{enumerable:!0,get:function(){return t.enumDeclaration}}),Object.defineProperty(n,"EnumDefaultedMember",{enumerable:!0,get:function(){return t.enumDefaultedMember}}),Object.defineProperty(n,"EnumNumberBody",{enumerable:!0,get:function(){return t.enumNumberBody}}),Object.defineProperty(n,"EnumNumberMember",{enumerable:!0,get:function(){return t.enumNumberMember}}),Object.defineProperty(n,"EnumStringBody",{enumerable:!0,get:function(){return t.enumStringBody}}),Object.defineProperty(n,"EnumStringMember",{enumerable:!0,get:function(){return t.enumStringMember}}),Object.defineProperty(n,"EnumSymbolBody",{enumerable:!0,get:function(){return t.enumSymbolBody}}),Object.defineProperty(n,"ExistsTypeAnnotation",{enumerable:!0,get:function(){return t.existsTypeAnnotation}}),Object.defineProperty(n,"ExportAllDeclaration",{enumerable:!0,get:function(){return t.exportAllDeclaration}}),Object.defineProperty(n,"ExportDefaultDeclaration",{enumerable:!0,get:function(){return t.exportDefaultDeclaration}}),Object.defineProperty(n,"ExportDefaultSpecifier",{enumerable:!0,get:function(){return t.exportDefaultSpecifier}}),Object.defineProperty(n,"ExportNamedDeclaration",{enumerable:!0,get:function(){return t.exportNamedDeclaration}}),Object.defineProperty(n,"ExportNamespaceSpecifier",{enumerable:!0,get:function(){return t.exportNamespaceSpecifier}}),Object.defineProperty(n,"ExportSpecifier",{enumerable:!0,get:function(){return t.exportSpecifier}}),Object.defineProperty(n,"ExpressionStatement",{enumerable:!0,get:function(){return t.expressionStatement}}),Object.defineProperty(n,"File",{enumerable:!0,get:function(){return t.file}}),Object.defineProperty(n,"ForInStatement",{enumerable:!0,get:function(){return t.forInStatement}}),Object.defineProperty(n,"ForOfStatement",{enumerable:!0,get:function(){return t.forOfStatement}}),Object.defineProperty(n,"ForStatement",{enumerable:!0,get:function(){return t.forStatement}}),Object.defineProperty(n,"FunctionDeclaration",{enumerable:!0,get:function(){return t.functionDeclaration}}),Object.defineProperty(n,"FunctionExpression",{enumerable:!0,get:function(){return t.functionExpression}}),Object.defineProperty(n,"FunctionTypeAnnotation",{enumerable:!0,get:function(){return t.functionTypeAnnotation}}),Object.defineProperty(n,"FunctionTypeParam",{enumerable:!0,get:function(){return t.functionTypeParam}}),Object.defineProperty(n,"GenericTypeAnnotation",{enumerable:!0,get:function(){return t.genericTypeAnnotation}}),Object.defineProperty(n,"Identifier",{enumerable:!0,get:function(){return t.identifier}}),Object.defineProperty(n,"IfStatement",{enumerable:!0,get:function(){return t.ifStatement}}),Object.defineProperty(n,"Import",{enumerable:!0,get:function(){return t.import}}),Object.defineProperty(n,"ImportAttribute",{enumerable:!0,get:function(){return t.importAttribute}}),Object.defineProperty(n,"ImportDeclaration",{enumerable:!0,get:function(){return t.importDeclaration}}),Object.defineProperty(n,"ImportDefaultSpecifier",{enumerable:!0,get:function(){return t.importDefaultSpecifier}}),Object.defineProperty(n,"ImportExpression",{enumerable:!0,get:function(){return t.importExpression}}),Object.defineProperty(n,"ImportNamespaceSpecifier",{enumerable:!0,get:function(){return t.importNamespaceSpecifier}}),Object.defineProperty(n,"ImportSpecifier",{enumerable:!0,get:function(){return t.importSpecifier}}),Object.defineProperty(n,"IndexedAccessType",{enumerable:!0,get:function(){return t.indexedAccessType}}),Object.defineProperty(n,"InferredPredicate",{enumerable:!0,get:function(){return t.inferredPredicate}}),Object.defineProperty(n,"InterfaceDeclaration",{enumerable:!0,get:function(){return t.interfaceDeclaration}}),Object.defineProperty(n,"InterfaceExtends",{enumerable:!0,get:function(){return t.interfaceExtends}}),Object.defineProperty(n,"InterfaceTypeAnnotation",{enumerable:!0,get:function(){return t.interfaceTypeAnnotation}}),Object.defineProperty(n,"InterpreterDirective",{enumerable:!0,get:function(){return t.interpreterDirective}}),Object.defineProperty(n,"IntersectionTypeAnnotation",{enumerable:!0,get:function(){return t.intersectionTypeAnnotation}}),Object.defineProperty(n,"JSXAttribute",{enumerable:!0,get:function(){return t.jsxAttribute}}),Object.defineProperty(n,"JSXClosingElement",{enumerable:!0,get:function(){return t.jsxClosingElement}}),Object.defineProperty(n,"JSXClosingFragment",{enumerable:!0,get:function(){return t.jsxClosingFragment}}),Object.defineProperty(n,"JSXElement",{enumerable:!0,get:function(){return t.jsxElement}}),Object.defineProperty(n,"JSXEmptyExpression",{enumerable:!0,get:function(){return t.jsxEmptyExpression}}),Object.defineProperty(n,"JSXExpressionContainer",{enumerable:!0,get:function(){return t.jsxExpressionContainer}}),Object.defineProperty(n,"JSXFragment",{enumerable:!0,get:function(){return t.jsxFragment}}),Object.defineProperty(n,"JSXIdentifier",{enumerable:!0,get:function(){return t.jsxIdentifier}}),Object.defineProperty(n,"JSXMemberExpression",{enumerable:!0,get:function(){return t.jsxMemberExpression}}),Object.defineProperty(n,"JSXNamespacedName",{enumerable:!0,get:function(){return t.jsxNamespacedName}}),Object.defineProperty(n,"JSXOpeningElement",{enumerable:!0,get:function(){return t.jsxOpeningElement}}),Object.defineProperty(n,"JSXOpeningFragment",{enumerable:!0,get:function(){return t.jsxOpeningFragment}}),Object.defineProperty(n,"JSXSpreadAttribute",{enumerable:!0,get:function(){return t.jsxSpreadAttribute}}),Object.defineProperty(n,"JSXSpreadChild",{enumerable:!0,get:function(){return t.jsxSpreadChild}}),Object.defineProperty(n,"JSXText",{enumerable:!0,get:function(){return t.jsxText}}),Object.defineProperty(n,"LabeledStatement",{enumerable:!0,get:function(){return t.labeledStatement}}),Object.defineProperty(n,"LogicalExpression",{enumerable:!0,get:function(){return t.logicalExpression}}),Object.defineProperty(n,"MemberExpression",{enumerable:!0,get:function(){return t.memberExpression}}),Object.defineProperty(n,"MetaProperty",{enumerable:!0,get:function(){return t.metaProperty}}),Object.defineProperty(n,"MixedTypeAnnotation",{enumerable:!0,get:function(){return t.mixedTypeAnnotation}}),Object.defineProperty(n,"ModuleExpression",{enumerable:!0,get:function(){return t.moduleExpression}}),Object.defineProperty(n,"NewExpression",{enumerable:!0,get:function(){return t.newExpression}}),Object.defineProperty(n,"Noop",{enumerable:!0,get:function(){return t.noop}}),Object.defineProperty(n,"NullLiteral",{enumerable:!0,get:function(){return t.nullLiteral}}),Object.defineProperty(n,"NullLiteralTypeAnnotation",{enumerable:!0,get:function(){return t.nullLiteralTypeAnnotation}}),Object.defineProperty(n,"NullableTypeAnnotation",{enumerable:!0,get:function(){return t.nullableTypeAnnotation}}),Object.defineProperty(n,"NumberLiteral",{enumerable:!0,get:function(){return t.numberLiteral}}),Object.defineProperty(n,"NumberLiteralTypeAnnotation",{enumerable:!0,get:function(){return t.numberLiteralTypeAnnotation}}),Object.defineProperty(n,"NumberTypeAnnotation",{enumerable:!0,get:function(){return t.numberTypeAnnotation}}),Object.defineProperty(n,"NumericLiteral",{enumerable:!0,get:function(){return t.numericLiteral}}),Object.defineProperty(n,"ObjectExpression",{enumerable:!0,get:function(){return t.objectExpression}}),Object.defineProperty(n,"ObjectMethod",{enumerable:!0,get:function(){return t.objectMethod}}),Object.defineProperty(n,"ObjectPattern",{enumerable:!0,get:function(){return t.objectPattern}}),Object.defineProperty(n,"ObjectProperty",{enumerable:!0,get:function(){return t.objectProperty}}),Object.defineProperty(n,"ObjectTypeAnnotation",{enumerable:!0,get:function(){return t.objectTypeAnnotation}}),Object.defineProperty(n,"ObjectTypeCallProperty",{enumerable:!0,get:function(){return t.objectTypeCallProperty}}),Object.defineProperty(n,"ObjectTypeIndexer",{enumerable:!0,get:function(){return t.objectTypeIndexer}}),Object.defineProperty(n,"ObjectTypeInternalSlot",{enumerable:!0,get:function(){return t.objectTypeInternalSlot}}),Object.defineProperty(n,"ObjectTypeProperty",{enumerable:!0,get:function(){return t.objectTypeProperty}}),Object.defineProperty(n,"ObjectTypeSpreadProperty",{enumerable:!0,get:function(){return t.objectTypeSpreadProperty}}),Object.defineProperty(n,"OpaqueType",{enumerable:!0,get:function(){return t.opaqueType}}),Object.defineProperty(n,"OptionalCallExpression",{enumerable:!0,get:function(){return t.optionalCallExpression}}),Object.defineProperty(n,"OptionalIndexedAccessType",{enumerable:!0,get:function(){return t.optionalIndexedAccessType}}),Object.defineProperty(n,"OptionalMemberExpression",{enumerable:!0,get:function(){return t.optionalMemberExpression}}),Object.defineProperty(n,"ParenthesizedExpression",{enumerable:!0,get:function(){return t.parenthesizedExpression}}),Object.defineProperty(n,"PipelineBareFunction",{enumerable:!0,get:function(){return t.pipelineBareFunction}}),Object.defineProperty(n,"PipelinePrimaryTopicReference",{enumerable:!0,get:function(){return t.pipelinePrimaryTopicReference}}),Object.defineProperty(n,"PipelineTopicExpression",{enumerable:!0,get:function(){return t.pipelineTopicExpression}}),Object.defineProperty(n,"Placeholder",{enumerable:!0,get:function(){return t.placeholder}}),Object.defineProperty(n,"PrivateName",{enumerable:!0,get:function(){return t.privateName}}),Object.defineProperty(n,"Program",{enumerable:!0,get:function(){return t.program}}),Object.defineProperty(n,"QualifiedTypeIdentifier",{enumerable:!0,get:function(){return t.qualifiedTypeIdentifier}}),Object.defineProperty(n,"RecordExpression",{enumerable:!0,get:function(){return t.recordExpression}}),Object.defineProperty(n,"RegExpLiteral",{enumerable:!0,get:function(){return t.regExpLiteral}}),Object.defineProperty(n,"RegexLiteral",{enumerable:!0,get:function(){return t.regexLiteral}}),Object.defineProperty(n,"RestElement",{enumerable:!0,get:function(){return t.restElement}}),Object.defineProperty(n,"RestProperty",{enumerable:!0,get:function(){return t.restProperty}}),Object.defineProperty(n,"ReturnStatement",{enumerable:!0,get:function(){return t.returnStatement}}),Object.defineProperty(n,"SequenceExpression",{enumerable:!0,get:function(){return t.sequenceExpression}}),Object.defineProperty(n,"SpreadElement",{enumerable:!0,get:function(){return t.spreadElement}}),Object.defineProperty(n,"SpreadProperty",{enumerable:!0,get:function(){return t.spreadProperty}}),Object.defineProperty(n,"StaticBlock",{enumerable:!0,get:function(){return t.staticBlock}}),Object.defineProperty(n,"StringLiteral",{enumerable:!0,get:function(){return t.stringLiteral}}),Object.defineProperty(n,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return t.stringLiteralTypeAnnotation}}),Object.defineProperty(n,"StringTypeAnnotation",{enumerable:!0,get:function(){return t.stringTypeAnnotation}}),Object.defineProperty(n,"Super",{enumerable:!0,get:function(){return t.super}}),Object.defineProperty(n,"SwitchCase",{enumerable:!0,get:function(){return t.switchCase}}),Object.defineProperty(n,"SwitchStatement",{enumerable:!0,get:function(){return t.switchStatement}}),Object.defineProperty(n,"SymbolTypeAnnotation",{enumerable:!0,get:function(){return t.symbolTypeAnnotation}}),Object.defineProperty(n,"TSAnyKeyword",{enumerable:!0,get:function(){return t.tsAnyKeyword}}),Object.defineProperty(n,"TSArrayType",{enumerable:!0,get:function(){return t.tsArrayType}}),Object.defineProperty(n,"TSAsExpression",{enumerable:!0,get:function(){return t.tsAsExpression}}),Object.defineProperty(n,"TSBigIntKeyword",{enumerable:!0,get:function(){return t.tsBigIntKeyword}}),Object.defineProperty(n,"TSBooleanKeyword",{enumerable:!0,get:function(){return t.tsBooleanKeyword}}),Object.defineProperty(n,"TSCallSignatureDeclaration",{enumerable:!0,get:function(){return t.tsCallSignatureDeclaration}}),Object.defineProperty(n,"TSConditionalType",{enumerable:!0,get:function(){return t.tsConditionalType}}),Object.defineProperty(n,"TSConstructSignatureDeclaration",{enumerable:!0,get:function(){return t.tsConstructSignatureDeclaration}}),Object.defineProperty(n,"TSConstructorType",{enumerable:!0,get:function(){return t.tsConstructorType}}),Object.defineProperty(n,"TSDeclareFunction",{enumerable:!0,get:function(){return t.tsDeclareFunction}}),Object.defineProperty(n,"TSDeclareMethod",{enumerable:!0,get:function(){return t.tsDeclareMethod}}),Object.defineProperty(n,"TSEnumDeclaration",{enumerable:!0,get:function(){return t.tsEnumDeclaration}}),Object.defineProperty(n,"TSEnumMember",{enumerable:!0,get:function(){return t.tsEnumMember}}),Object.defineProperty(n,"TSExportAssignment",{enumerable:!0,get:function(){return t.tsExportAssignment}}),Object.defineProperty(n,"TSExpressionWithTypeArguments",{enumerable:!0,get:function(){return t.tsExpressionWithTypeArguments}}),Object.defineProperty(n,"TSExternalModuleReference",{enumerable:!0,get:function(){return t.tsExternalModuleReference}}),Object.defineProperty(n,"TSFunctionType",{enumerable:!0,get:function(){return t.tsFunctionType}}),Object.defineProperty(n,"TSImportEqualsDeclaration",{enumerable:!0,get:function(){return t.tsImportEqualsDeclaration}}),Object.defineProperty(n,"TSImportType",{enumerable:!0,get:function(){return t.tsImportType}}),Object.defineProperty(n,"TSIndexSignature",{enumerable:!0,get:function(){return t.tsIndexSignature}}),Object.defineProperty(n,"TSIndexedAccessType",{enumerable:!0,get:function(){return t.tsIndexedAccessType}}),Object.defineProperty(n,"TSInferType",{enumerable:!0,get:function(){return t.tsInferType}}),Object.defineProperty(n,"TSInstantiationExpression",{enumerable:!0,get:function(){return t.tsInstantiationExpression}}),Object.defineProperty(n,"TSInterfaceBody",{enumerable:!0,get:function(){return t.tsInterfaceBody}}),Object.defineProperty(n,"TSInterfaceDeclaration",{enumerable:!0,get:function(){return t.tsInterfaceDeclaration}}),Object.defineProperty(n,"TSIntersectionType",{enumerable:!0,get:function(){return t.tsIntersectionType}}),Object.defineProperty(n,"TSIntrinsicKeyword",{enumerable:!0,get:function(){return t.tsIntrinsicKeyword}}),Object.defineProperty(n,"TSLiteralType",{enumerable:!0,get:function(){return t.tsLiteralType}}),Object.defineProperty(n,"TSMappedType",{enumerable:!0,get:function(){return t.tsMappedType}}),Object.defineProperty(n,"TSMethodSignature",{enumerable:!0,get:function(){return t.tsMethodSignature}}),Object.defineProperty(n,"TSModuleBlock",{enumerable:!0,get:function(){return t.tsModuleBlock}}),Object.defineProperty(n,"TSModuleDeclaration",{enumerable:!0,get:function(){return t.tsModuleDeclaration}}),Object.defineProperty(n,"TSNamedTupleMember",{enumerable:!0,get:function(){return t.tsNamedTupleMember}}),Object.defineProperty(n,"TSNamespaceExportDeclaration",{enumerable:!0,get:function(){return t.tsNamespaceExportDeclaration}}),Object.defineProperty(n,"TSNeverKeyword",{enumerable:!0,get:function(){return t.tsNeverKeyword}}),Object.defineProperty(n,"TSNonNullExpression",{enumerable:!0,get:function(){return t.tsNonNullExpression}}),Object.defineProperty(n,"TSNullKeyword",{enumerable:!0,get:function(){return t.tsNullKeyword}}),Object.defineProperty(n,"TSNumberKeyword",{enumerable:!0,get:function(){return t.tsNumberKeyword}}),Object.defineProperty(n,"TSObjectKeyword",{enumerable:!0,get:function(){return t.tsObjectKeyword}}),Object.defineProperty(n,"TSOptionalType",{enumerable:!0,get:function(){return t.tsOptionalType}}),Object.defineProperty(n,"TSParameterProperty",{enumerable:!0,get:function(){return t.tsParameterProperty}}),Object.defineProperty(n,"TSParenthesizedType",{enumerable:!0,get:function(){return t.tsParenthesizedType}}),Object.defineProperty(n,"TSPropertySignature",{enumerable:!0,get:function(){return t.tsPropertySignature}}),Object.defineProperty(n,"TSQualifiedName",{enumerable:!0,get:function(){return t.tsQualifiedName}}),Object.defineProperty(n,"TSRestType",{enumerable:!0,get:function(){return t.tsRestType}}),Object.defineProperty(n,"TSSatisfiesExpression",{enumerable:!0,get:function(){return t.tsSatisfiesExpression}}),Object.defineProperty(n,"TSStringKeyword",{enumerable:!0,get:function(){return t.tsStringKeyword}}),Object.defineProperty(n,"TSSymbolKeyword",{enumerable:!0,get:function(){return t.tsSymbolKeyword}}),Object.defineProperty(n,"TSThisType",{enumerable:!0,get:function(){return t.tsThisType}}),Object.defineProperty(n,"TSTupleType",{enumerable:!0,get:function(){return t.tsTupleType}}),Object.defineProperty(n,"TSTypeAliasDeclaration",{enumerable:!0,get:function(){return t.tsTypeAliasDeclaration}}),Object.defineProperty(n,"TSTypeAnnotation",{enumerable:!0,get:function(){return t.tsTypeAnnotation}}),Object.defineProperty(n,"TSTypeAssertion",{enumerable:!0,get:function(){return t.tsTypeAssertion}}),Object.defineProperty(n,"TSTypeLiteral",{enumerable:!0,get:function(){return t.tsTypeLiteral}}),Object.defineProperty(n,"TSTypeOperator",{enumerable:!0,get:function(){return t.tsTypeOperator}}),Object.defineProperty(n,"TSTypeParameter",{enumerable:!0,get:function(){return t.tsTypeParameter}}),Object.defineProperty(n,"TSTypeParameterDeclaration",{enumerable:!0,get:function(){return t.tsTypeParameterDeclaration}}),Object.defineProperty(n,"TSTypeParameterInstantiation",{enumerable:!0,get:function(){return t.tsTypeParameterInstantiation}}),Object.defineProperty(n,"TSTypePredicate",{enumerable:!0,get:function(){return t.tsTypePredicate}}),Object.defineProperty(n,"TSTypeQuery",{enumerable:!0,get:function(){return t.tsTypeQuery}}),Object.defineProperty(n,"TSTypeReference",{enumerable:!0,get:function(){return t.tsTypeReference}}),Object.defineProperty(n,"TSUndefinedKeyword",{enumerable:!0,get:function(){return t.tsUndefinedKeyword}}),Object.defineProperty(n,"TSUnionType",{enumerable:!0,get:function(){return t.tsUnionType}}),Object.defineProperty(n,"TSUnknownKeyword",{enumerable:!0,get:function(){return t.tsUnknownKeyword}}),Object.defineProperty(n,"TSVoidKeyword",{enumerable:!0,get:function(){return t.tsVoidKeyword}}),Object.defineProperty(n,"TaggedTemplateExpression",{enumerable:!0,get:function(){return t.taggedTemplateExpression}}),Object.defineProperty(n,"TemplateElement",{enumerable:!0,get:function(){return t.templateElement}}),Object.defineProperty(n,"TemplateLiteral",{enumerable:!0,get:function(){return t.templateLiteral}}),Object.defineProperty(n,"ThisExpression",{enumerable:!0,get:function(){return t.thisExpression}}),Object.defineProperty(n,"ThisTypeAnnotation",{enumerable:!0,get:function(){return t.thisTypeAnnotation}}),Object.defineProperty(n,"ThrowStatement",{enumerable:!0,get:function(){return t.throwStatement}}),Object.defineProperty(n,"TopicReference",{enumerable:!0,get:function(){return t.topicReference}}),Object.defineProperty(n,"TryStatement",{enumerable:!0,get:function(){return t.tryStatement}}),Object.defineProperty(n,"TupleExpression",{enumerable:!0,get:function(){return t.tupleExpression}}),Object.defineProperty(n,"TupleTypeAnnotation",{enumerable:!0,get:function(){return t.tupleTypeAnnotation}}),Object.defineProperty(n,"TypeAlias",{enumerable:!0,get:function(){return t.typeAlias}}),Object.defineProperty(n,"TypeAnnotation",{enumerable:!0,get:function(){return t.typeAnnotation}}),Object.defineProperty(n,"TypeCastExpression",{enumerable:!0,get:function(){return t.typeCastExpression}}),Object.defineProperty(n,"TypeParameter",{enumerable:!0,get:function(){return t.typeParameter}}),Object.defineProperty(n,"TypeParameterDeclaration",{enumerable:!0,get:function(){return t.typeParameterDeclaration}}),Object.defineProperty(n,"TypeParameterInstantiation",{enumerable:!0,get:function(){return t.typeParameterInstantiation}}),Object.defineProperty(n,"TypeofTypeAnnotation",{enumerable:!0,get:function(){return t.typeofTypeAnnotation}}),Object.defineProperty(n,"UnaryExpression",{enumerable:!0,get:function(){return t.unaryExpression}}),Object.defineProperty(n,"UnionTypeAnnotation",{enumerable:!0,get:function(){return t.unionTypeAnnotation}}),Object.defineProperty(n,"UpdateExpression",{enumerable:!0,get:function(){return t.updateExpression}}),Object.defineProperty(n,"V8IntrinsicIdentifier",{enumerable:!0,get:function(){return t.v8IntrinsicIdentifier}}),Object.defineProperty(n,"VariableDeclaration",{enumerable:!0,get:function(){return t.variableDeclaration}}),Object.defineProperty(n,"VariableDeclarator",{enumerable:!0,get:function(){return t.variableDeclarator}}),Object.defineProperty(n,"Variance",{enumerable:!0,get:function(){return t.variance}}),Object.defineProperty(n,"VoidTypeAnnotation",{enumerable:!0,get:function(){return t.voidTypeAnnotation}}),Object.defineProperty(n,"WhileStatement",{enumerable:!0,get:function(){return t.whileStatement}}),Object.defineProperty(n,"WithStatement",{enumerable:!0,get:function(){return t.withStatement}}),Object.defineProperty(n,"YieldExpression",{enumerable:!0,get:function(){return t.yieldExpression}});var t=Hs()}(J_)),J_}var wb={},Ipe;function _ye(){if(Ipe)return wb;Ipe=1,Object.defineProperty(wb,"__esModule",{value:!0}),wb.buildUndefinedNode=t;var n=Hs();function t(){return(0,n.unaryExpression)("void",(0,n.numericLiteral)(0),!0)}return wb}var jl={};Object.defineProperty(jl,"__esModule",{value:!0});jl.default=Uyt;var Cpe=Ji(),jpe=ve;const{hasOwn:yo}={hasOwn:Function.call.bind(Object.prototype.hasOwnProperty)};function Ope(n,t,a,i){return n&&typeof n.type=="string"?Nye(n,t,a,i):n}function Y_(n,t,a,i){return Array.isArray(n)?n.map(d=>Ope(d,t,a,i)):Ope(n,t,a,i)}function Uyt(n,t=!0,a=!1){return Nye(n,t,a,new Map)}function Nye(n,t=!0,a=!1,i){if(!n)return n;const{type:d}=n,p={type:n.type};if((0,jpe.isIdentifier)(n))p.name=n.name,yo(n,"optional")&&typeof n.optional=="boolean"&&(p.optional=n.optional),yo(n,"typeAnnotation")&&(p.typeAnnotation=t?Y_(n.typeAnnotation,!0,a,i):n.typeAnnotation),yo(n,"decorators")&&(p.decorators=t?Y_(n.decorators,!0,a,i):n.decorators);else if(yo(Cpe.NODE_FIELDS,d))for(const y of Object.keys(Cpe.NODE_FIELDS[d]))yo(n,y)&&(t?p[y]=(0,jpe.isFile)(n)&&y==="comments"?Pb(n.comments,t,a,i):Y_(n[y],!0,a,i):p[y]=n[y]);else throw new Error(`Unknown node type: "${d}"`);return yo(n,"loc")&&(a?p.loc=null:p.loc=n.loc),yo(n,"leadingComments")&&(p.leadingComments=Pb(n.leadingComments,t,a,i)),yo(n,"innerComments")&&(p.innerComments=Pb(n.innerComments,t,a,i)),yo(n,"trailingComments")&&(p.trailingComments=Pb(n.trailingComments,t,a,i)),yo(n,"extra")&&(p.extra=Object.assign({},n.extra)),p}function Pb(n,t,a,i){return!n||!t?n:n.map(d=>{const p=i.get(d);if(p)return p;const{type:y,value:b,loc:v}=d,E={type:y,value:b,loc:v};return a&&(E.loc=null),i.set(d,E),E})}var KD={};Object.defineProperty(KD,"__esModule",{value:!0});KD.default=Wyt;var Vyt=jl;function Wyt(n){return(0,Vyt.default)(n,!1)}var HD={};Object.defineProperty(HD,"__esModule",{value:!0});HD.default=Kyt;var Gyt=jl;function Kyt(n){return(0,Gyt.default)(n)}var zD={};Object.defineProperty(zD,"__esModule",{value:!0});zD.default=zyt;var Hyt=jl;function zyt(n){return(0,Hyt.default)(n,!0,!0)}var XD={};Object.defineProperty(XD,"__esModule",{value:!0});XD.default=Jyt;var Xyt=jl;function Jyt(n){return(0,Xyt.default)(n,!1,!0)}var JD={},y6={};Object.defineProperty(y6,"__esModule",{value:!0});y6.default=Yyt;function Yyt(n,t,a){if(!a||!n)return n;const i=`${t}Comments`;return n[i]?t==="leading"?n[i]=a.concat(n[i]):n[i].push(...a):n[i]=a,n}Object.defineProperty(JD,"__esModule",{value:!0});JD.default=Zyt;var Qyt=y6;function Zyt(n,t,a,i){return(0,Qyt.default)(n,t,[{type:i?"CommentLine":"CommentBlock",value:a}])}var g6={},qy={};Object.defineProperty(qy,"__esModule",{value:!0});qy.default=egt;function egt(n,t,a){t&&a&&(t[n]=Array.from(new Set([].concat(t[n],a[n]).filter(Boolean))))}Object.defineProperty(g6,"__esModule",{value:!0});g6.default=rgt;var tgt=qy;function rgt(n,t){(0,tgt.default)("innerComments",n,t)}var v6={};Object.defineProperty(v6,"__esModule",{value:!0});v6.default=ngt;var agt=qy;function ngt(n,t){(0,agt.default)("leadingComments",n,t)}var b6={},x6={};Object.defineProperty(x6,"__esModule",{value:!0});x6.default=igt;var sgt=qy;function igt(n,t){(0,sgt.default)("trailingComments",n,t)}Object.defineProperty(b6,"__esModule",{value:!0});b6.default=cgt;var ogt=x6,lgt=v6,ugt=g6;function cgt(n,t){return(0,ogt.default)(n,t),(0,lgt.default)(n,t),(0,ugt.default)(n,t),n}var YD={};Object.defineProperty(YD,"__esModule",{value:!0});YD.default=pgt;var dgt=Kr;function pgt(n){return dgt.COMMENT_KEYS.forEach(t=>{n[t]=null}),n}var qt={};Object.defineProperty(qt,"__esModule",{value:!0});qt.WHILE_TYPES=qt.USERWHITESPACABLE_TYPES=qt.UNARYLIKE_TYPES=qt.TYPESCRIPT_TYPES=qt.TSTYPE_TYPES=qt.TSTYPEELEMENT_TYPES=qt.TSENTITYNAME_TYPES=qt.TSBASETYPE_TYPES=qt.TERMINATORLESS_TYPES=qt.STATEMENT_TYPES=qt.STANDARDIZED_TYPES=qt.SCOPABLE_TYPES=qt.PUREISH_TYPES=qt.PROPERTY_TYPES=qt.PRIVATE_TYPES=qt.PATTERN_TYPES=qt.PATTERNLIKE_TYPES=qt.OBJECTMEMBER_TYPES=qt.MODULESPECIFIER_TYPES=qt.MODULEDECLARATION_TYPES=qt.MISCELLANEOUS_TYPES=qt.METHOD_TYPES=qt.LVAL_TYPES=qt.LOOP_TYPES=qt.LITERAL_TYPES=qt.JSX_TYPES=qt.IMPORTOREXPORTDECLARATION_TYPES=qt.IMMUTABLE_TYPES=qt.FUNCTION_TYPES=qt.FUNCTIONPARENT_TYPES=qt.FOR_TYPES=qt.FORXSTATEMENT_TYPES=qt.FLOW_TYPES=qt.FLOWTYPE_TYPES=qt.FLOWPREDICATE_TYPES=qt.FLOWDECLARATION_TYPES=qt.FLOWBASEANNOTATION_TYPES=qt.EXPRESSION_TYPES=qt.EXPRESSIONWRAPPER_TYPES=qt.EXPORTDECLARATION_TYPES=qt.ENUMMEMBER_TYPES=qt.ENUMBODY_TYPES=qt.DECLARATION_TYPES=qt.CONDITIONAL_TYPES=qt.COMPLETIONSTATEMENT_TYPES=qt.CLASS_TYPES=qt.BLOCK_TYPES=qt.BLOCKPARENT_TYPES=qt.BINARY_TYPES=qt.ACCESSOR_TYPES=void 0;var Vr=Ji();qt.STANDARDIZED_TYPES=Vr.FLIPPED_ALIAS_KEYS.Standardized;qt.EXPRESSION_TYPES=Vr.FLIPPED_ALIAS_KEYS.Expression;qt.BINARY_TYPES=Vr.FLIPPED_ALIAS_KEYS.Binary;qt.SCOPABLE_TYPES=Vr.FLIPPED_ALIAS_KEYS.Scopable;qt.BLOCKPARENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.BlockParent;qt.BLOCK_TYPES=Vr.FLIPPED_ALIAS_KEYS.Block;qt.STATEMENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.Statement;qt.TERMINATORLESS_TYPES=Vr.FLIPPED_ALIAS_KEYS.Terminatorless;qt.COMPLETIONSTATEMENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.CompletionStatement;qt.CONDITIONAL_TYPES=Vr.FLIPPED_ALIAS_KEYS.Conditional;qt.LOOP_TYPES=Vr.FLIPPED_ALIAS_KEYS.Loop;qt.WHILE_TYPES=Vr.FLIPPED_ALIAS_KEYS.While;qt.EXPRESSIONWRAPPER_TYPES=Vr.FLIPPED_ALIAS_KEYS.ExpressionWrapper;qt.FOR_TYPES=Vr.FLIPPED_ALIAS_KEYS.For;qt.FORXSTATEMENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.ForXStatement;qt.FUNCTION_TYPES=Vr.FLIPPED_ALIAS_KEYS.Function;qt.FUNCTIONPARENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.FunctionParent;qt.PUREISH_TYPES=Vr.FLIPPED_ALIAS_KEYS.Pureish;qt.DECLARATION_TYPES=Vr.FLIPPED_ALIAS_KEYS.Declaration;qt.PATTERNLIKE_TYPES=Vr.FLIPPED_ALIAS_KEYS.PatternLike;qt.LVAL_TYPES=Vr.FLIPPED_ALIAS_KEYS.LVal;qt.TSENTITYNAME_TYPES=Vr.FLIPPED_ALIAS_KEYS.TSEntityName;qt.LITERAL_TYPES=Vr.FLIPPED_ALIAS_KEYS.Literal;qt.IMMUTABLE_TYPES=Vr.FLIPPED_ALIAS_KEYS.Immutable;qt.USERWHITESPACABLE_TYPES=Vr.FLIPPED_ALIAS_KEYS.UserWhitespacable;qt.METHOD_TYPES=Vr.FLIPPED_ALIAS_KEYS.Method;qt.OBJECTMEMBER_TYPES=Vr.FLIPPED_ALIAS_KEYS.ObjectMember;qt.PROPERTY_TYPES=Vr.FLIPPED_ALIAS_KEYS.Property;qt.UNARYLIKE_TYPES=Vr.FLIPPED_ALIAS_KEYS.UnaryLike;qt.PATTERN_TYPES=Vr.FLIPPED_ALIAS_KEYS.Pattern;qt.CLASS_TYPES=Vr.FLIPPED_ALIAS_KEYS.Class;const fgt=qt.IMPORTOREXPORTDECLARATION_TYPES=Vr.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration;qt.EXPORTDECLARATION_TYPES=Vr.FLIPPED_ALIAS_KEYS.ExportDeclaration;qt.MODULESPECIFIER_TYPES=Vr.FLIPPED_ALIAS_KEYS.ModuleSpecifier;qt.ACCESSOR_TYPES=Vr.FLIPPED_ALIAS_KEYS.Accessor;qt.PRIVATE_TYPES=Vr.FLIPPED_ALIAS_KEYS.Private;qt.FLOW_TYPES=Vr.FLIPPED_ALIAS_KEYS.Flow;qt.FLOWTYPE_TYPES=Vr.FLIPPED_ALIAS_KEYS.FlowType;qt.FLOWBASEANNOTATION_TYPES=Vr.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation;qt.FLOWDECLARATION_TYPES=Vr.FLIPPED_ALIAS_KEYS.FlowDeclaration;qt.FLOWPREDICATE_TYPES=Vr.FLIPPED_ALIAS_KEYS.FlowPredicate;qt.ENUMBODY_TYPES=Vr.FLIPPED_ALIAS_KEYS.EnumBody;qt.ENUMMEMBER_TYPES=Vr.FLIPPED_ALIAS_KEYS.EnumMember;qt.JSX_TYPES=Vr.FLIPPED_ALIAS_KEYS.JSX;qt.MISCELLANEOUS_TYPES=Vr.FLIPPED_ALIAS_KEYS.Miscellaneous;qt.TYPESCRIPT_TYPES=Vr.FLIPPED_ALIAS_KEYS.TypeScript;qt.TSTYPEELEMENT_TYPES=Vr.FLIPPED_ALIAS_KEYS.TSTypeElement;qt.TSTYPE_TYPES=Vr.FLIPPED_ALIAS_KEYS.TSType;qt.TSBASETYPE_TYPES=Vr.FLIPPED_ALIAS_KEYS.TSBaseType;qt.MODULEDECLARATION_TYPES=fgt;var Ab={},Ib={},_pe;function kye(){if(_pe)return Ib;_pe=1,Object.defineProperty(Ib,"__esModule",{value:!0}),Ib.default=a;var n=ve,t=Hs();function a(i,d){if((0,n.isBlockStatement)(i))return i;let p=[];return(0,n.isEmptyStatement)(i)?p=[]:((0,n.isStatement)(i)||((0,n.isFunction)(d)?i=(0,t.returnStatement)(i):i=(0,t.expressionStatement)(i)),p=[i]),(0,t.blockStatement)(p)}return Ib}var Npe;function hgt(){if(Npe)return Ab;Npe=1,Object.defineProperty(Ab,"__esModule",{value:!0}),Ab.default=t;var n=kye();function t(a,i="body"){const d=(0,n.default)(a[i],a);return a[i]=d,d}return Ab}var QD={},R6={};Object.defineProperty(R6,"__esModule",{value:!0});R6.default=ggt;var mgt=ld,ygt=My;function ggt(n){n=n+"";let t="";for(const a of n)t+=(0,ygt.isIdentifierChar)(a.codePointAt(0))?a:"-";return t=t.replace(/^[-0-9]+/,""),t=t.replace(/[-\s]+(.)?/g,function(a,i){return i?i.toUpperCase():""}),(0,mgt.default)(t)||(t=`_${t}`),t||"_"}Object.defineProperty(QD,"__esModule",{value:!0});QD.default=bgt;var vgt=R6;function bgt(n){return n=(0,vgt.default)(n),(n==="eval"||n==="arguments")&&(n="_"+n),n}var Cb={},kpe;function xgt(){if(kpe)return Cb;kpe=1,Object.defineProperty(Cb,"__esModule",{value:!0}),Cb.default=a;var n=ve,t=Hs();function a(i,d=i.key||i.property){return!i.computed&&(0,n.isIdentifier)(d)&&(d=(0,t.stringLiteral)(d.name)),d}return Cb}var E6={};Object.defineProperty(E6,"__esModule",{value:!0});E6.default=void 0;var Dm=ve;E6.default=Rgt;function Rgt(n){if((0,Dm.isExpressionStatement)(n)&&(n=n.expression),(0,Dm.isExpression)(n))return n;if((0,Dm.isClass)(n)?n.type="ClassExpression":(0,Dm.isFunction)(n)&&(n.type="FunctionExpression"),!(0,Dm.isExpression)(n))throw new Error(`cannot turn ${n.type} to an expression`);return n}var ZD={},S6={},T6={};Object.defineProperty(T6,"__esModule",{value:!0});T6.default=gk;var Egt=Ji();function gk(n,t,a){if(!n)return;const i=Egt.VISITOR_KEYS[n.type];if(i){a=a||{},t(n,a);for(const d of i){const p=n[d];if(Array.isArray(p))for(const y of p)gk(y,t,a);else gk(p,t,a)}}}var w6={};Object.defineProperty(w6,"__esModule",{value:!0});w6.default=wgt;var Sgt=Kr;const Dye=["tokens","start","end","loc","raw","rawValue"],Tgt=[...Sgt.COMMENT_KEYS,"comments",...Dye];function wgt(n,t={}){const a=t.preserveComments?Dye:Tgt;for(const d of a)n[d]!=null&&(n[d]=void 0);for(const d of Object.keys(n))d[0]==="_"&&n[d]!=null&&(n[d]=void 0);const i=Object.getOwnPropertySymbols(n);for(const d of i)n[d]=null}Object.defineProperty(S6,"__esModule",{value:!0});S6.default=Igt;var Pgt=T6,Agt=w6;function Igt(n,t){return(0,Pgt.default)(n,Agt.default,t),n}Object.defineProperty(ZD,"__esModule",{value:!0});ZD.default=zc;var Dpe=ve,Cgt=jl,jgt=S6;function zc(n,t=n.key){let a;return n.kind==="method"?zc.increment()+"":((0,Dpe.isIdentifier)(t)?a=t.name:(0,Dpe.isStringLiteral)(t)?a=JSON.stringify(t.value):a=JSON.stringify((0,jgt.default)((0,Cgt.default)(t))),n.computed&&(a=`[${a}]`),n.static&&(a=`static:${a}`),a)}zc.uid=0;zc.increment=function(){return zc.uid>=Number.MAX_SAFE_INTEGER?zc.uid=0:zc.uid++};var Lm={},Lpe;function Ogt(){if(Lpe)return Lm;Lpe=1,Object.defineProperty(Lm,"__esModule",{value:!0}),Lm.default=void 0;var n=ve,t=Hs();Lm.default=a;function a(i,d){if((0,n.isStatement)(i))return i;let p=!1,y;if((0,n.isClass)(i))p=!0,y="ClassDeclaration";else if((0,n.isFunction)(i))p=!0,y="FunctionDeclaration";else if((0,n.isAssignmentExpression)(i))return(0,t.expressionStatement)(i);if(p&&!i.id&&(y=!1),!y){if(d)return!1;throw new Error(`cannot turn ${i.type} to a statement`)}return i.type=y,i}return Lm}var Mm={},Mpe;function _gt(){if(Mpe)return Mm;Mpe=1,Object.defineProperty(Mm,"__esModule",{value:!0}),Mm.default=void 0;var n=ld,t=Hs();Mm.default=p;const a=Function.call.bind(Object.prototype.toString);function i(y){return a(y)==="[object RegExp]"}function d(y){if(typeof y!="object"||y===null||Object.prototype.toString.call(y)!=="[object Object]")return!1;const b=Object.getPrototypeOf(y);return b===null||Object.getPrototypeOf(b)===null}function p(y){if(y===void 0)return(0,t.identifier)("undefined");if(y===!0||y===!1)return(0,t.booleanLiteral)(y);if(y===null)return(0,t.nullLiteral)();if(typeof y=="string")return(0,t.stringLiteral)(y);if(typeof y=="number"){let b;if(Number.isFinite(y))b=(0,t.numericLiteral)(Math.abs(y));else{let v;Number.isNaN(y)?v=(0,t.numericLiteral)(0):v=(0,t.numericLiteral)(1),b=(0,t.binaryExpression)("/",v,(0,t.numericLiteral)(0))}return(y<0||Object.is(y,-0))&&(b=(0,t.unaryExpression)("-",b)),b}if(i(y)){const b=y.source,v=/\/([a-z]*)$/.exec(y.toString())[1];return(0,t.regExpLiteral)(b,v)}if(Array.isArray(y))return(0,t.arrayExpression)(y.map(p));if(d(y)){const b=[];for(const v of Object.keys(y)){let E;(0,n.default)(v)?E=(0,t.identifier)(v):E=(0,t.stringLiteral)(v),b.push((0,t.objectProperty)(E,p(y[v])))}return(0,t.objectExpression)(b)}throw new Error("don't know how to turn this value into a node")}return Mm}var jb={},Bpe;function Ngt(){if(Bpe)return jb;Bpe=1,Object.defineProperty(jb,"__esModule",{value:!0}),jb.default=t;var n=Hs();function t(a,i,d=!1){return a.object=(0,n.memberExpression)(a.object,a.property,a.computed),a.property=i,a.computed=!!d,a}return jb}var eL={};Object.defineProperty(eL,"__esModule",{value:!0});eL.default=Dgt;var Fpe=Kr,kgt=b6;function Dgt(n,t){if(!n||!t)return n;for(const a of Fpe.INHERIT_KEYS.optional)n[a]==null&&(n[a]=t[a]);for(const a of Object.keys(t))a[0]==="_"&&a!=="__clone"&&(n[a]=t[a]);for(const a of Fpe.INHERIT_KEYS.force)n[a]=t[a];return(0,kgt.default)(n,t),n}var Ob={},$pe;function Lgt(){if($pe)return Ob;$pe=1,Object.defineProperty(Ob,"__esModule",{value:!0}),Ob.default=a;var n=Hs(),t=Ol();function a(i,d){if((0,t.isSuper)(i.object))throw new Error("Cannot prepend node to super property access (`super.foo`).");return i.object=(0,n.memberExpression)(d,i.object),i}return Ob}var tL={};Object.defineProperty(tL,"__esModule",{value:!0});tL.default=Mgt;function Mgt(n){const t=[].concat(n),a=Object.create(null);for(;t.length;){const i=t.pop();if(i)switch(i.type){case"ArrayPattern":t.push(...i.elements);break;case"AssignmentExpression":case"AssignmentPattern":case"ForInStatement":case"ForOfStatement":t.push(i.left);break;case"ObjectPattern":t.push(...i.properties);break;case"ObjectProperty":t.push(i.value);break;case"RestElement":case"UpdateExpression":t.push(i.argument);break;case"UnaryExpression":i.operator==="delete"&&t.push(i.argument);break;case"Identifier":a[i.name]=i;break}}return a}var ef={};Object.defineProperty(ef,"__esModule",{value:!0});ef.default=rL;var ol=ve;function rL(n,t,a,i){const d=[].concat(n),p=Object.create(null);for(;d.length;){const y=d.shift();if(!y||i&&((0,ol.isAssignmentExpression)(y)||(0,ol.isUnaryExpression)(y)||(0,ol.isUpdateExpression)(y)))continue;if((0,ol.isIdentifier)(y)){t?(p[y.name]=p[y.name]||[]).push(y):p[y.name]=y;continue}if((0,ol.isExportDeclaration)(y)&&!(0,ol.isExportAllDeclaration)(y)){(0,ol.isDeclaration)(y.declaration)&&d.push(y.declaration);continue}if(a){if((0,ol.isFunctionDeclaration)(y)){d.push(y.id);continue}if((0,ol.isFunctionExpression)(y))continue}const b=rL.keys[y.type];if(b)for(let v=0;v<b.length;v++){const E=b[v],S=y[E];S&&(Array.isArray(S)?d.push(...S):d.push(S))}}return p}const Bgt={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],DeclareInterface:["id"],DeclareTypeAlias:["id"],DeclareOpaqueType:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ArrowFunctionExpression:["params"],ObjectMethod:["params"],ClassMethod:["params"],ClassPrivateMethod:["params"],ForInStatement:["left"],ForOfStatement:["left"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]};rL.keys=Bgt;var P6={};Object.defineProperty(P6,"__esModule",{value:!0});P6.default=void 0;var Fgt=ef;P6.default=$gt;function $gt(n,t){return(0,Fgt.default)(n,t,!0)}var aL={};Object.defineProperty(aL,"__esModule",{value:!0});aL.default=Ugt;var Ci=ve;function qgt(n){return(0,Ci.isNullLiteral)(n)?"null":(0,Ci.isRegExpLiteral)(n)?`/${n.pattern}/${n.flags}`:(0,Ci.isTemplateLiteral)(n)?n.quasis.map(t=>t.value.raw).join(""):n.value!==void 0?String(n.value):null}function qpe(n){if(!n.computed||(0,Ci.isLiteral)(n.key))return n.key}function Ugt(n,t){if("id"in n&&n.id)return{name:n.id.name,originalNode:n.id};let a="",i;if((0,Ci.isObjectProperty)(t,{value:n})?i=qpe(t):(0,Ci.isObjectMethod)(n)||(0,Ci.isClassMethod)(n)?(i=qpe(n),n.kind==="get"?a="get ":n.kind==="set"&&(a="set ")):(0,Ci.isVariableDeclarator)(t,{init:n})?i=t.id:(0,Ci.isAssignmentExpression)(t,{operator:"=",right:n})&&(i=t.left),!i)return null;const d=(0,Ci.isLiteral)(i)?qgt(i):(0,Ci.isIdentifier)(i)?i.name:(0,Ci.isPrivateName)(i)?i.id.name:null;return d==null?null:{name:a+d,originalNode:i}}var nL={};Object.defineProperty(nL,"__esModule",{value:!0});nL.default=Wgt;var Vgt=Ji();function Wgt(n,t,a){typeof t=="function"&&(t={enter:t});const{enter:i,exit:d}=t;vk(n,i,d,a,[])}function vk(n,t,a,i,d){const p=Vgt.VISITOR_KEYS[n.type];if(p){t&&t(n,d,i);for(const y of p){const b=n[y];if(Array.isArray(b))for(let v=0;v<b.length;v++){const E=b[v];E&&(d.push({node:n,key:y,index:v}),vk(E,t,a,i,d),d.pop())}else b&&(d.push({node:n,key:y}),vk(b,t,a,i,d),d.pop())}a&&a(n,d,i)}}var sL={};Object.defineProperty(sL,"__esModule",{value:!0});sL.default=Kgt;var Ggt=ef;function Kgt(n,t,a){if(a&&n.type==="Identifier"&&t.type==="ObjectProperty"&&a.type==="ObjectExpression")return!1;const i=Ggt.default.keys[t.type];if(i)for(let d=0;d<i.length;d++){const p=i[d],y=t[p];if(Array.isArray(y)){if(y.includes(n))return!0}else if(y===n)return!0}return!1}var iL={},A6={};Object.defineProperty(A6,"__esModule",{value:!0});A6.default=Xgt;var Hgt=ve,zgt=Kr;function Xgt(n){return(0,Hgt.isVariableDeclaration)(n)&&(n.kind!=="var"||n[zgt.BLOCK_SCOPED_SYMBOL])}Object.defineProperty(iL,"__esModule",{value:!0});iL.default=Ygt;var Upe=ve,Jgt=A6;function Ygt(n){return(0,Upe.isFunctionDeclaration)(n)||(0,Upe.isClassDeclaration)(n)||(0,Jgt.default)(n)}var oL={};Object.defineProperty(oL,"__esModule",{value:!0});oL.default=e1t;var Qgt=$D(),Zgt=ve;function e1t(n){return(0,Qgt.default)(n.type,"Immutable")?!0:(0,Zgt.isIdentifier)(n)?n.name==="undefined":!1}var lL={};Object.defineProperty(lL,"__esModule",{value:!0});lL.default=bk;var Vpe=Ji();function bk(n,t){if(typeof n!="object"||typeof t!="object"||n==null||t==null)return n===t;if(n.type!==t.type)return!1;const a=Object.keys(Vpe.NODE_FIELDS[n.type]||n.type),i=Vpe.VISITOR_KEYS[n.type];for(const d of a){const p=n[d],y=t[d];if(typeof p!=typeof y)return!1;if(!(p==null&&y==null)){if(p==null||y==null)return!1;if(Array.isArray(p)){if(!Array.isArray(y)||p.length!==y.length)return!1;for(let b=0;b<p.length;b++)if(!bk(p[b],y[b]))return!1;continue}if(typeof p=="object"&&!(i!=null&&i.includes(d))){for(const b of Object.keys(p))if(p[b]!==y[b])return!1;continue}if(!bk(p,y))return!1}}return!0}var uL={};Object.defineProperty(uL,"__esModule",{value:!0});uL.default=t1t;function t1t(n,t,a){switch(t.type){case"MemberExpression":case"OptionalMemberExpression":return t.property===n?!!t.computed:t.object===n;case"JSXMemberExpression":return t.object===n;case"VariableDeclarator":return t.init===n;case"ArrowFunctionExpression":return t.body===n;case"PrivateName":return!1;case"ClassMethod":case"ClassPrivateMethod":case"ObjectMethod":return t.key===n?!!t.computed:!1;case"ObjectProperty":return t.key===n?!!t.computed:!a||a.type!=="ObjectPattern";case"ClassProperty":case"ClassAccessorProperty":return t.key===n?!!t.computed:!0;case"ClassPrivateProperty":return t.key!==n;case"ClassDeclaration":case"ClassExpression":return t.superClass===n;case"AssignmentExpression":return t.right===n;case"AssignmentPattern":return t.right===n;case"LabeledStatement":return!1;case"CatchClause":return!1;case"RestElement":return!1;case"BreakStatement":case"ContinueStatement":return!1;case"FunctionDeclaration":case"FunctionExpression":return!1;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"ExportSpecifier":return a!=null&&a.source?!1:t.local===n;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ImportAttribute":return!1;case"JSXAttribute":return!1;case"ObjectPattern":case"ArrayPattern":return!1;case"MetaProperty":return!1;case"ObjectTypeProperty":return t.key!==n;case"TSEnumMember":return t.id!==n;case"TSPropertySignature":return t.key===n?!!t.computed:!0}return!0}var cL={};Object.defineProperty(cL,"__esModule",{value:!0});cL.default=r1t;var $c=ve;function r1t(n,t){return(0,$c.isBlockStatement)(n)&&((0,$c.isFunction)(t)||(0,$c.isCatchClause)(t))?!1:(0,$c.isPattern)(n)&&((0,$c.isFunction)(t)||(0,$c.isCatchClause)(t))?!0:(0,$c.isScopable)(n)}var dL={};Object.defineProperty(dL,"__esModule",{value:!0});dL.default=a1t;var Wpe=ve;function a1t(n){return(0,Wpe.isImportDefaultSpecifier)(n)||(0,Wpe.isIdentifier)(n.imported||n.exported,{name:"default"})}var pL={};Object.defineProperty(pL,"__esModule",{value:!0});pL.default=i1t;var n1t=ld;const s1t=new Set(["abstract","boolean","byte","char","double","enum","final","float","goto","implements","int","interface","long","native","package","private","protected","public","short","static","synchronized","throws","transient","volatile"]);function i1t(n){return(0,n1t.default)(n)&&!s1t.has(n)}var fL={};Object.defineProperty(fL,"__esModule",{value:!0});fL.default=u1t;var o1t=ve,l1t=Kr;function u1t(n){return(0,o1t.isVariableDeclaration)(n,{kind:"var"})&&!n[l1t.BLOCK_SCOPED_SYMBOL]}var _b={},Nb={},Gpe;function c1t(){if(Gpe)return Nb;Gpe=1,Object.defineProperty(Nb,"__esModule",{value:!0}),Nb.default=p;var n=ef,t=ve,a=Hs(),i=_ye(),d=jl;function p(y,b){const v=[];let E=!0;for(const S of y)if((0,t.isEmptyStatement)(S)||(E=!1),(0,t.isExpression)(S))v.push(S);else if((0,t.isExpressionStatement)(S))v.push(S.expression);else if((0,t.isVariableDeclaration)(S)){if(S.kind!=="var")return;for(const A of S.declarations){const _=(0,n.default)(A);for(const C of Object.keys(_))b.push({kind:S.kind,id:(0,d.default)(_[C])});A.init&&v.push((0,a.assignmentExpression)("=",A.id,A.init))}E=!0}else if((0,t.isIfStatement)(S)){const A=S.consequent?p([S.consequent],b):(0,i.buildUndefinedNode)(),_=S.alternate?p([S.alternate],b):(0,i.buildUndefinedNode)();if(!A||!_)return;v.push((0,a.conditionalExpression)(S.test,A,_))}else if((0,t.isBlockStatement)(S)){const A=p(S.body,b);if(!A)return;v.push(A)}else if((0,t.isEmptyStatement)(S))y.indexOf(S)===0&&(E=!0);else return;return E&&v.push((0,i.buildUndefinedNode)()),v.length===1?v[0]:(0,a.sequenceExpression)(v)}return Nb}var Kpe;function d1t(){if(Kpe)return _b;Kpe=1,Object.defineProperty(_b,"__esModule",{value:!0}),_b.default=t;var n=c1t();function t(a,i){if(!(a!=null&&a.length))return;const d=[],p=(0,n.default)(a,d);if(p){for(const y of d)i.push(y);return p}}return _b}var Hpe;function Ol(){return Hpe||(Hpe=1,function(n){Object.defineProperty(n,"__esModule",{value:!0});var t={react:!0,assertNode:!0,createTypeAnnotationBasedOnTypeof:!0,createUnionTypeAnnotation:!0,createFlowUnionType:!0,createTSUnionType:!0,cloneNode:!0,clone:!0,cloneDeep:!0,cloneDeepWithoutLoc:!0,cloneWithoutLoc:!0,addComment:!0,addComments:!0,inheritInnerComments:!0,inheritLeadingComments:!0,inheritsComments:!0,inheritTrailingComments:!0,removeComments:!0,ensureBlock:!0,toBindingIdentifierName:!0,toBlock:!0,toComputedKey:!0,toExpression:!0,toIdentifier:!0,toKeyAlias:!0,toStatement:!0,valueToNode:!0,appendToMemberExpression:!0,inherits:!0,prependToMemberExpression:!0,removeProperties:!0,removePropertiesDeep:!0,removeTypeDuplicates:!0,getAssignmentIdentifiers:!0,getBindingIdentifiers:!0,getOuterBindingIdentifiers:!0,getFunctionName:!0,traverse:!0,traverseFast:!0,shallowEqual:!0,is:!0,isBinding:!0,isBlockScoped:!0,isImmutable:!0,isLet:!0,isNode:!0,isNodesEquivalent:!0,isPlaceholderType:!0,isReferenced:!0,isScope:!0,isSpecifierDefault:!0,isType:!0,isValidES3Identifier:!0,isValidIdentifier:!0,isVar:!0,matchesPattern:!0,validate:!0,buildMatchMemberExpression:!0,__internal__deprecationWarning:!0};Object.defineProperty(n,"__internal__deprecationWarning",{enumerable:!0,get:function(){return Va.default}}),Object.defineProperty(n,"addComment",{enumerable:!0,get:function(){return Y.default}}),Object.defineProperty(n,"addComments",{enumerable:!0,get:function(){return Z.default}}),Object.defineProperty(n,"appendToMemberExpression",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(n,"assertNode",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(n,"buildMatchMemberExpression",{enumerable:!0,get:function(){return lr.default}}),Object.defineProperty(n,"clone",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(n,"cloneDeep",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(n,"cloneDeepWithoutLoc",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(n,"cloneNode",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(n,"cloneWithoutLoc",{enumerable:!0,get:function(){return z.default}}),Object.defineProperty(n,"createFlowUnionType",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(n,"createTSUnionType",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(n,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(n,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(n,"ensureBlock",{enumerable:!0,get:function(){return se.default}}),Object.defineProperty(n,"getAssignmentIdentifiers",{enumerable:!0,get:function(){return Ue.default}}),Object.defineProperty(n,"getBindingIdentifiers",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(n,"getFunctionName",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(n,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(n,"inheritInnerComments",{enumerable:!0,get:function(){return ce.default}}),Object.defineProperty(n,"inheritLeadingComments",{enumerable:!0,get:function(){return ge.default}}),Object.defineProperty(n,"inheritTrailingComments",{enumerable:!0,get:function(){return Je.default}}),Object.defineProperty(n,"inherits",{enumerable:!0,get:function(){return Se.default}}),Object.defineProperty(n,"inheritsComments",{enumerable:!0,get:function(){return Ge.default}}),Object.defineProperty(n,"is",{enumerable:!0,get:function(){return ir.default}}),Object.defineProperty(n,"isBinding",{enumerable:!0,get:function(){return Jr.default}}),Object.defineProperty(n,"isBlockScoped",{enumerable:!0,get:function(){return Ea.default}}),Object.defineProperty(n,"isImmutable",{enumerable:!0,get:function(){return Ua.default}}),Object.defineProperty(n,"isLet",{enumerable:!0,get:function(){return da.default}}),Object.defineProperty(n,"isNode",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(n,"isNodesEquivalent",{enumerable:!0,get:function(){return ja.default}}),Object.defineProperty(n,"isPlaceholderType",{enumerable:!0,get:function(){return va.default}}),Object.defineProperty(n,"isReferenced",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(n,"isScope",{enumerable:!0,get:function(){return on.default}}),Object.defineProperty(n,"isSpecifierDefault",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(n,"isType",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(n,"isValidES3Identifier",{enumerable:!0,get:function(){return Yt.default}}),Object.defineProperty(n,"isValidIdentifier",{enumerable:!0,get:function(){return or.default}}),Object.defineProperty(n,"isVar",{enumerable:!0,get:function(){return pr.default}}),Object.defineProperty(n,"matchesPattern",{enumerable:!0,get:function(){return Hr.default}}),Object.defineProperty(n,"prependToMemberExpression",{enumerable:!0,get:function(){return Me.default}}),n.react=void 0,Object.defineProperty(n,"removeComments",{enumerable:!0,get:function(){return re.default}}),Object.defineProperty(n,"removeProperties",{enumerable:!0,get:function(){return le.default}}),Object.defineProperty(n,"removePropertiesDeep",{enumerable:!0,get:function(){return Oe.default}}),Object.defineProperty(n,"removeTypeDuplicates",{enumerable:!0,get:function(){return Ke.default}}),Object.defineProperty(n,"shallowEqual",{enumerable:!0,get:function(){return kr.default}}),Object.defineProperty(n,"toBindingIdentifierName",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(n,"toBlock",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(n,"toComputedKey",{enumerable:!0,get:function(){return Qt.default}}),Object.defineProperty(n,"toExpression",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(n,"toIdentifier",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(n,"toKeyAlias",{enumerable:!0,get:function(){return ne.default}}),Object.defineProperty(n,"toStatement",{enumerable:!0,get:function(){return Zt.default}}),Object.defineProperty(n,"traverse",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(n,"traverseFast",{enumerable:!0,get:function(){return ur.default}}),Object.defineProperty(n,"validate",{enumerable:!0,get:function(){return $r.default}}),Object.defineProperty(n,"valueToNode",{enumerable:!0,get:function(){return pt.default}});var a=c6,i=FD,d=Qct(),p=WD,y=Ee;Object.keys(y).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===y[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return y[Mt]}})});var b=Byt(),v=Fyt(),E=$yt(),S=Hs();Object.keys(S).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===S[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return S[Mt]}})});var A=qyt();Object.keys(A).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===A[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return A[Mt]}})});var _=_ye();Object.keys(_).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===_[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return _[Mt]}})});var C=jl,q=KD,M=HD,W=zD,z=XD,Y=JD,Z=y6,ce=g6,ge=v6,Ge=b6,Je=x6,re=YD,Ae=qt;Object.keys(Ae).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===Ae[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return Ae[Mt]}})});var je=Kr;Object.keys(je).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===je[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return je[Mt]}})});var se=hgt(),fe=QD,kt=kye(),Qt=xgt(),mt=E6,Tt=R6,ne=ZD,Zt=Ogt(),pt=_gt(),bt=Ji();Object.keys(bt).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===bt[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return bt[Mt]}})});var ht=Ngt(),Se=eL,Me=Lgt(),le=w6,Oe=S6,Ke=m6,Ue=tL,ot=ef,ct=P6,Pt=aL,Ut=nL;Object.keys(Ut).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===Ut[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return Ut[Mt]}})});var ur=T6,kr=ky,ir=Ly(),Jr=sL,Ea=iL,Ua=oL,da=A6,Rt=h6,ja=lL,va=mye(),Dt=uL,on=cL,rt=dL,nt=$D(),Yt=pL,or=ld,pr=fL,Hr=p6,$r=VD(),lr=d6,Qr=ve;Object.keys(Qr).forEach(function(Mt){Mt==="default"||Mt==="__esModule"||Object.prototype.hasOwnProperty.call(t,Mt)||Mt in n&&n[Mt]===Qr[Mt]||Object.defineProperty(n,Mt,{enumerable:!0,get:function(){return Qr[Mt]}})});var Va=Zp;n.react={isReactComponent:a.default,isCompatTag:i.default,buildChildren:d.default},n.toSequenceExpression=d1t().default}(H_)),H_}var ut=Ol(),ai={},ji={};Object.defineProperty(ji,"__esModule",{value:!0});ji.statements=ji.statement=ji.smart=ji.program=ji.expression=void 0;var p1t=Ol();const{assertExpressionStatement:f1t}=p1t;function hL(n){return{code:t=>`/* @babel/template */; +${t}`,validate:()=>{},unwrap:t=>n(t.program.body.slice(1))}}ji.smart=hL(n=>n.length>1?n:n[0]);ji.statements=hL(n=>n);ji.statement=hL(n=>{if(n.length===0)throw new Error("Found nothing to return.");if(n.length>1)throw new Error("Found multiple statements but wanted one");return n[0]});const h1t=ji.expression={code:n=>`( +${n} +)`,validate:n=>{if(n.program.body.length>1)throw new Error("Found multiple statements but wanted one");if(h1t.unwrap(n).start===0)throw new Error("Parse result included parens.")},unwrap:({program:n})=>{const[t]=n.body;return f1t(t),t.expression}};ji.program={code:n=>n,validate:()=>{},unwrap:n=>n.program};var mL={},cd={};Object.defineProperty(cd,"__esModule",{value:!0});cd.merge=g1t;cd.normalizeReplacements=b1t;cd.validate=v1t;const m1t=["placeholderWhitelist","placeholderPattern","preserveComments","syntacticPlaceholders"];function y1t(n,t){if(n==null)return{};var a={},i=Object.keys(n),d,p;for(p=0;p<i.length;p++)d=i[p],!(t.indexOf(d)>=0)&&(a[d]=n[d]);return a}function g1t(n,t){const{placeholderWhitelist:a=n.placeholderWhitelist,placeholderPattern:i=n.placeholderPattern,preserveComments:d=n.preserveComments,syntacticPlaceholders:p=n.syntacticPlaceholders}=t;return{parser:Object.assign({},n.parser,t.parser),placeholderWhitelist:a,placeholderPattern:i,preserveComments:d,syntacticPlaceholders:p}}function v1t(n){if(n!=null&&typeof n!="object")throw new Error("Unknown template options.");const t=n||{},{placeholderWhitelist:a,placeholderPattern:i,preserveComments:d,syntacticPlaceholders:p}=t,y=y1t(t,m1t);if(a!=null&&!(a instanceof Set))throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");if(i!=null&&!(i instanceof RegExp)&&i!==!1)throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");if(d!=null&&typeof d!="boolean")throw new Error("'.preserveComments' must be a boolean, null, or undefined");if(p!=null&&typeof p!="boolean")throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");if(p===!0&&(a!=null||i!=null))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");return{parser:y,placeholderWhitelist:a||void 0,placeholderPattern:i??void 0,preserveComments:d??void 0,syntacticPlaceholders:p??void 0}}function b1t(n){if(Array.isArray(n))return n.reduce((t,a,i)=>(t["$"+i]=a,t),{});if(typeof n=="object"||n==null)return n||void 0;throw new Error("Template replacements must be an array, object, null, or undefined")}var yL={},I6={},Uy={};Object.defineProperty(Uy,"__esModule",{value:!0});function x1t(n,t){if(n==null)return{};var a={};for(var i in n)if({}.hasOwnProperty.call(n,i)){if(t.includes(i))continue;a[i]=n[i]}return a}let wu=class{constructor(t,a,i){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=a,this.index=i}},I2=class{constructor(t,a){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=a}};function Ss(n,t){const{line:a,column:i,index:d}=n;return new wu(a,i+t,d+t)}const zpe="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";var R1t={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:zpe},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:zpe}};const Xpe={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},s2=n=>n.type==="UpdateExpression"?Xpe.UpdateExpression[`${n.prefix}`]:Xpe[n.type];var E1t={AccessorIsGenerator:({kind:n})=>`A ${n}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:n})=>`Missing initializer in ${n} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:n})=>`\`${n}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:n})=>`'import.${n}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:n,exportName:t})=>`A string literal cannot be used as an exported binding without \`from\`. +- Did you mean \`export { '${n}' as '${t}' } from 'some-module'\`?`,ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:({type:n})=>`'${n==="ForInStatement"?"for-in":"for-of"}' loop variable declaration may not have an initializer.`,ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:({type:n})=>`Unsyntactic ${n==="BreakStatement"?"break":"continue"}.`,IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",ImportBindingIsString:({importName:n})=>`A string literal cannot be used as an imported binding. +- Did you mean \`import { "${n}" as foo }\`?`,ImportCallArgumentTrailingComma:"Trailing comma is disallowed inside import(...) arguments.",ImportCallArity:({maxArgumentCount:n})=>`\`import()\` requires exactly ${n===1?"one argument":"one or two arguments"}.`,ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:({radix:n})=>`Expected number in radix ${n}.`,InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:({reservedWord:n})=>`Escape sequence in keyword ${n}.`,InvalidIdentifier:({identifierName:n})=>`Invalid identifier ${n}.`,InvalidLhs:({ancestor:n})=>`Invalid left-hand side in ${s2(n)}.`,InvalidLhsBinding:({ancestor:n})=>`Binding invalid left-hand side in ${s2(n)}.`,InvalidLhsOptionalChaining:({ancestor:n})=>`Invalid optional chaining in the left-hand side of ${s2(n)}.`,InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:({unexpected:n})=>`Unexpected character '${n}'.`,InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:({identifierName:n})=>`Private name #${n} is not defined.`,InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:({labelName:n})=>`Label '${n}' is already declared.`,LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:({missingPlugin:n})=>`This experimental syntax requires enabling the parser plugin: ${n.map(t=>JSON.stringify(t)).join(", ")}.`,MissingOneOfPlugins:({missingPlugin:n})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${n.map(t=>JSON.stringify(t)).join(", ")}.`,MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:({key:n})=>`Duplicate key "${n}" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:n})=>`An export name cannot include a lone surrogate, found '\\u${n.toString(16)}'.`,ModuleExportUndefined:({localName:n})=>`Export '${n}' is not defined.`,MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:({identifierName:n})=>`Private names are only allowed in property accesses (\`obj.#${n}\`) or in \`in\` expressions (\`#${n} in obj\`).`,PrivateNameRedeclaration:({identifierName:n})=>`Duplicate private name #${n}.`,RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:({keyword:n})=>`Unexpected keyword '${n}'.`,UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:({reservedWord:n})=>`Unexpected reserved word '${n}'.`,UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:({expected:n,unexpected:t})=>`Unexpected token${t?` '${t}'.`:""}${n?`, expected "${n}"`:""}`,UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:({target:n,onlyValidPropertyName:t})=>`The only valid meta property for ${n} is ${n}.${t}.`,UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:({identifierName:n})=>`Identifier '${n}' has already been declared.`,YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},S1t={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:({referenceName:n})=>`Assigning to '${n}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:n})=>`Binding '${n}' in strict mode.`,StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."};const T1t=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]);var w1t={PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:({token:n})=>`Invalid topic token ${n}. In order to use ${n} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${n}" }.`,PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:({type:n})=>`Hack-style pipe body cannot be an unparenthesized ${s2({type:n})}; please wrap it in parentheses.`,PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'};const P1t=["message"];function Jpe(n,t,a){Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:a})}function A1t({toMessage:n,code:t,reasonCode:a,syntaxPlugin:i}){const d=a==="MissingPlugin"||a==="MissingOneOfPlugins";{const p={AccessorCannotDeclareThisParameter:"AccesorCannotDeclareThisParameter",AccessorCannotHaveTypeParameters:"AccesorCannotHaveTypeParameters",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",SetAccessorCannotHaveOptionalParameter:"SetAccesorCannotHaveOptionalParameter",SetAccessorCannotHaveRestParameter:"SetAccesorCannotHaveRestParameter",SetAccessorCannotHaveReturnType:"SetAccesorCannotHaveReturnType"};p[a]&&(a=p[a])}return function p(y,b){const v=new SyntaxError;return v.code=t,v.reasonCode=a,v.loc=y,v.pos=y.index,v.syntaxPlugin=i,d&&(v.missingPlugin=b.missingPlugin),Jpe(v,"clone",function(S={}){var A;const{line:_,column:C,index:q}=(A=S.loc)!=null?A:y;return p(new wu(_,C,q),Object.assign({},b,S.details))}),Jpe(v,"details",b),Object.defineProperty(v,"message",{configurable:!0,get(){const E=`${n(b)} (${y.line}:${y.column})`;return this.message=E,E},set(E){Object.defineProperty(this,"message",{value:E,writable:!0})}}),v}}function ml(n,t){if(Array.isArray(n))return i=>ml(i,n[0]);const a={};for(const i of Object.keys(n)){const d=n[i],p=typeof d=="string"?{message:()=>d}:typeof d=="function"?{message:d}:d,{message:y}=p,b=x1t(p,P1t),v=typeof y=="string"?()=>y:y;a[i]=A1t(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:i,toMessage:v},t?{syntaxPlugin:t}:{},b))}return a}const ze=Object.assign({},ml(R1t),ml(E1t),ml(S1t),ml`pipelineOperator`(w1t)),{defineProperty:I1t}=Object,Ype=(n,t)=>{n&&I1t(n,t,{enumerable:!1,value:n[t]})};function Bm(n){return Ype(n.loc.start,"index"),Ype(n.loc.end,"index"),n}var C1t=n=>class extends n{parse(){const a=Bm(super.parse());return this.options.tokens&&(a.tokens=a.tokens.map(Bm)),a}parseRegExpLiteral({pattern:a,flags:i}){let d=null;try{d=new RegExp(a,i)}catch{}const p=this.estreeParseLiteral(d);return p.regex={pattern:a,flags:i},p}parseBigIntLiteral(a){let i;try{i=BigInt(a)}catch{i=null}const d=this.estreeParseLiteral(i);return d.bigint=String(d.value||a),d}parseDecimalLiteral(a){const d=this.estreeParseLiteral(null);return d.decimal=String(d.value||a),d}estreeParseLiteral(a){return this.parseLiteral(a,"Literal")}parseStringLiteral(a){return this.estreeParseLiteral(a)}parseNumericLiteral(a){return this.estreeParseLiteral(a)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(a){return this.estreeParseLiteral(a)}directiveToStmt(a){const i=a.value;delete a.value,i.type="Literal",i.raw=i.extra.raw,i.value=i.extra.expressionValue;const d=a;return d.type="ExpressionStatement",d.expression=i,d.directive=i.extra.rawValue,delete i.extra,d}initFunction(a,i){super.initFunction(a,i),a.expression=!1}checkDeclaration(a){a!=null&&this.isObjectProperty(a)?this.checkDeclaration(a.value):super.checkDeclaration(a)}getObjectOrClassMethodParams(a){return a.value.params}isValidDirective(a){var i;return a.type==="ExpressionStatement"&&a.expression.type==="Literal"&&typeof a.expression.value=="string"&&!((i=a.expression.extra)!=null&&i.parenthesized)}parseBlockBody(a,i,d,p,y){super.parseBlockBody(a,i,d,p,y);const b=a.directives.map(v=>this.directiveToStmt(v));a.body=b.concat(a.body),delete a.directives}pushClassMethod(a,i,d,p,y,b){this.parseMethod(i,d,p,y,b,"ClassMethod",!0),i.typeParameters&&(i.value.typeParameters=i.typeParameters,delete i.typeParameters),a.body.push(i)}parsePrivateName(){const a=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(a):a}convertPrivateNameToPrivateIdentifier(a){const i=super.getPrivateNameSV(a);return a=a,delete a.id,a.name=i,a.type="PrivateIdentifier",a}isPrivateName(a){return this.getPluginOption("estree","classFeatures")?a.type==="PrivateIdentifier":super.isPrivateName(a)}getPrivateNameSV(a){return this.getPluginOption("estree","classFeatures")?a.name:super.getPrivateNameSV(a)}parseLiteral(a,i){const d=super.parseLiteral(a,i);return d.raw=d.extra.raw,delete d.extra,d}parseFunctionBody(a,i,d=!1){super.parseFunctionBody(a,i,d),a.expression=a.body.type!=="BlockStatement"}parseMethod(a,i,d,p,y,b,v=!1){let E=this.startNode();return E.kind=a.kind,E=super.parseMethod(E,i,d,p,y,b,v),E.type="FunctionExpression",delete E.kind,a.value=E,b==="ClassPrivateMethod"&&(a.computed=!1),this.finishNode(a,"MethodDefinition")}nameIsConstructor(a){return a.type==="Literal"?a.value==="constructor":super.nameIsConstructor(a)}parseClassProperty(...a){const i=super.parseClassProperty(...a);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition"),i}parseClassPrivateProperty(...a){const i=super.parseClassPrivateProperty(...a);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition",i.computed=!1),i}parseObjectMethod(a,i,d,p,y){const b=super.parseObjectMethod(a,i,d,p,y);return b&&(b.type="Property",b.kind==="method"&&(b.kind="init"),b.shorthand=!1),b}parseObjectProperty(a,i,d,p){const y=super.parseObjectProperty(a,i,d,p);return y&&(y.kind="init",y.type="Property"),y}isValidLVal(a,i,d){return a==="Property"?"value":super.isValidLVal(a,i,d)}isAssignable(a,i){return a!=null&&this.isObjectProperty(a)?this.isAssignable(a.value,i):super.isAssignable(a,i)}toAssignable(a,i=!1){if(a!=null&&this.isObjectProperty(a)){const{key:d,value:p}=a;this.isPrivateName(d)&&this.classScope.usePrivateName(this.getPrivateNameSV(d),d.loc.start),this.toAssignable(p,i)}else super.toAssignable(a,i)}toAssignableObjectExpressionProp(a,i,d){a.type==="Property"&&(a.kind==="get"||a.kind==="set")?this.raise(ze.PatternHasAccessor,a.key):a.type==="Property"&&a.method?this.raise(ze.PatternHasMethod,a.key):super.toAssignableObjectExpressionProp(a,i,d)}finishCallExpression(a,i){const d=super.finishCallExpression(a,i);if(d.callee.type==="Import"){if(d.type="ImportExpression",d.source=d.arguments[0],this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")){var p,y;d.options=(p=d.arguments[1])!=null?p:null,d.attributes=(y=d.arguments[1])!=null?y:null}delete d.arguments,delete d.callee}return d}toReferencedArguments(a){a.type!=="ImportExpression"&&super.toReferencedArguments(a)}parseExport(a,i){const d=this.state.lastTokStartLoc,p=super.parseExport(a,i);switch(p.type){case"ExportAllDeclaration":p.exported=null;break;case"ExportNamedDeclaration":p.specifiers.length===1&&p.specifiers[0].type==="ExportNamespaceSpecifier"&&(p.type="ExportAllDeclaration",p.exported=p.specifiers[0].exported,delete p.specifiers);case"ExportDefaultDeclaration":{var y;const{declaration:b}=p;(b==null?void 0:b.type)==="ClassDeclaration"&&((y=b.decorators)==null?void 0:y.length)>0&&b.start===p.start&&this.resetStartLocation(p,d)}break}return p}parseSubscript(a,i,d,p){const y=super.parseSubscript(a,i,d,p);if(p.optionalChainMember){if((y.type==="OptionalMemberExpression"||y.type==="OptionalCallExpression")&&(y.type=y.type.substring(8)),p.stop){const b=this.startNodeAtNode(y);return b.expression=y,this.finishNode(b,"ChainExpression")}}else(y.type==="MemberExpression"||y.type==="CallExpression")&&(y.optional=!1);return y}isOptionalMemberExpression(a){return a.type==="ChainExpression"?a.expression.type==="MemberExpression":super.isOptionalMemberExpression(a)}hasPropertyAsPrivateName(a){return a.type==="ChainExpression"&&(a=a.expression),super.hasPropertyAsPrivateName(a)}isObjectProperty(a){return a.type==="Property"&&a.kind==="init"&&!a.method}isObjectMethod(a){return a.type==="Property"&&(a.method||a.kind==="get"||a.kind==="set")}finishNodeAt(a,i,d){return Bm(super.finishNodeAt(a,i,d))}resetStartLocation(a,i){super.resetStartLocation(a,i),Bm(a)}resetEndLocation(a,i=this.state.lastTokEndLoc){super.resetEndLocation(a,i),Bm(a)}};let ty=class{constructor(t,a){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!a}};const La={brace:new ty("{"),j_oTag:new ty("<tag"),j_cTag:new ty("</tag"),j_expr:new ty("<tag>...</tag>",!0)};La.template=new ty("`",!0);const ua=!0,nr=!0,Q_=!0,Fm=!0,fu=!0,j1t=!0;let Lye=class{constructor(t,a={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=a.keyword,this.beforeExpr=!!a.beforeExpr,this.startsExpr=!!a.startsExpr,this.rightAssociative=!!a.rightAssociative,this.isLoop=!!a.isLoop,this.isAssign=!!a.isAssign,this.prefix=!!a.prefix,this.postfix=!!a.postfix,this.binop=a.binop!=null?a.binop:null,this.updateContext=null}};const gL=new Map;function ma(n,t={}){t.keyword=n;const a=Ar(n,t);return gL.set(n,a),a}function ys(n,t){return Ar(n,{beforeExpr:ua,binop:t})}let iy=-1;const dl=[],vL=[],bL=[],xL=[],RL=[],EL=[];function Ar(n,t={}){var a,i,d,p;return++iy,vL.push(n),bL.push((a=t.binop)!=null?a:-1),xL.push((i=t.beforeExpr)!=null?i:!1),RL.push((d=t.startsExpr)!=null?d:!1),EL.push((p=t.prefix)!=null?p:!1),dl.push(new Lye(n,t)),iy}function oa(n,t={}){var a,i,d,p;return++iy,gL.set(n,iy),vL.push(n),bL.push((a=t.binop)!=null?a:-1),xL.push((i=t.beforeExpr)!=null?i:!1),RL.push((d=t.startsExpr)!=null?d:!1),EL.push((p=t.prefix)!=null?p:!1),dl.push(new Lye("name",t)),iy}const O1t={bracketL:Ar("[",{beforeExpr:ua,startsExpr:nr}),bracketHashL:Ar("#[",{beforeExpr:ua,startsExpr:nr}),bracketBarL:Ar("[|",{beforeExpr:ua,startsExpr:nr}),bracketR:Ar("]"),bracketBarR:Ar("|]"),braceL:Ar("{",{beforeExpr:ua,startsExpr:nr}),braceBarL:Ar("{|",{beforeExpr:ua,startsExpr:nr}),braceHashL:Ar("#{",{beforeExpr:ua,startsExpr:nr}),braceR:Ar("}"),braceBarR:Ar("|}"),parenL:Ar("(",{beforeExpr:ua,startsExpr:nr}),parenR:Ar(")"),comma:Ar(",",{beforeExpr:ua}),semi:Ar(";",{beforeExpr:ua}),colon:Ar(":",{beforeExpr:ua}),doubleColon:Ar("::",{beforeExpr:ua}),dot:Ar("."),question:Ar("?",{beforeExpr:ua}),questionDot:Ar("?."),arrow:Ar("=>",{beforeExpr:ua}),template:Ar("template"),ellipsis:Ar("...",{beforeExpr:ua}),backQuote:Ar("`",{startsExpr:nr}),dollarBraceL:Ar("${",{beforeExpr:ua,startsExpr:nr}),templateTail:Ar("...`",{startsExpr:nr}),templateNonTail:Ar("...${",{beforeExpr:ua,startsExpr:nr}),at:Ar("@"),hash:Ar("#",{startsExpr:nr}),interpreterDirective:Ar("#!..."),eq:Ar("=",{beforeExpr:ua,isAssign:Fm}),assign:Ar("_=",{beforeExpr:ua,isAssign:Fm}),slashAssign:Ar("_=",{beforeExpr:ua,isAssign:Fm}),xorAssign:Ar("_=",{beforeExpr:ua,isAssign:Fm}),moduloAssign:Ar("_=",{beforeExpr:ua,isAssign:Fm}),incDec:Ar("++/--",{prefix:fu,postfix:j1t,startsExpr:nr}),bang:Ar("!",{beforeExpr:ua,prefix:fu,startsExpr:nr}),tilde:Ar("~",{beforeExpr:ua,prefix:fu,startsExpr:nr}),doubleCaret:Ar("^^",{startsExpr:nr}),doubleAt:Ar("@@",{startsExpr:nr}),pipeline:ys("|>",0),nullishCoalescing:ys("??",1),logicalOR:ys("||",1),logicalAND:ys("&&",2),bitwiseOR:ys("|",3),bitwiseXOR:ys("^",4),bitwiseAND:ys("&",5),equality:ys("==/!=/===/!==",6),lt:ys("</>/<=/>=",7),gt:ys("</>/<=/>=",7),relational:ys("</>/<=/>=",7),bitShift:ys("<</>>/>>>",8),bitShiftL:ys("<</>>/>>>",8),bitShiftR:ys("<</>>/>>>",8),plusMin:Ar("+/-",{beforeExpr:ua,binop:9,prefix:fu,startsExpr:nr}),modulo:Ar("%",{binop:10,startsExpr:nr}),star:Ar("*",{binop:10}),slash:ys("/",10),exponent:Ar("**",{beforeExpr:ua,binop:11,rightAssociative:!0}),_in:ma("in",{beforeExpr:ua,binop:7}),_instanceof:ma("instanceof",{beforeExpr:ua,binop:7}),_break:ma("break"),_case:ma("case",{beforeExpr:ua}),_catch:ma("catch"),_continue:ma("continue"),_debugger:ma("debugger"),_default:ma("default",{beforeExpr:ua}),_else:ma("else",{beforeExpr:ua}),_finally:ma("finally"),_function:ma("function",{startsExpr:nr}),_if:ma("if"),_return:ma("return",{beforeExpr:ua}),_switch:ma("switch"),_throw:ma("throw",{beforeExpr:ua,prefix:fu,startsExpr:nr}),_try:ma("try"),_var:ma("var"),_const:ma("const"),_with:ma("with"),_new:ma("new",{beforeExpr:ua,startsExpr:nr}),_this:ma("this",{startsExpr:nr}),_super:ma("super",{startsExpr:nr}),_class:ma("class",{startsExpr:nr}),_extends:ma("extends",{beforeExpr:ua}),_export:ma("export"),_import:ma("import",{startsExpr:nr}),_null:ma("null",{startsExpr:nr}),_true:ma("true",{startsExpr:nr}),_false:ma("false",{startsExpr:nr}),_typeof:ma("typeof",{beforeExpr:ua,prefix:fu,startsExpr:nr}),_void:ma("void",{beforeExpr:ua,prefix:fu,startsExpr:nr}),_delete:ma("delete",{beforeExpr:ua,prefix:fu,startsExpr:nr}),_do:ma("do",{isLoop:Q_,beforeExpr:ua}),_for:ma("for",{isLoop:Q_}),_while:ma("while",{isLoop:Q_}),_as:oa("as",{startsExpr:nr}),_assert:oa("assert",{startsExpr:nr}),_async:oa("async",{startsExpr:nr}),_await:oa("await",{startsExpr:nr}),_defer:oa("defer",{startsExpr:nr}),_from:oa("from",{startsExpr:nr}),_get:oa("get",{startsExpr:nr}),_let:oa("let",{startsExpr:nr}),_meta:oa("meta",{startsExpr:nr}),_of:oa("of",{startsExpr:nr}),_sent:oa("sent",{startsExpr:nr}),_set:oa("set",{startsExpr:nr}),_source:oa("source",{startsExpr:nr}),_static:oa("static",{startsExpr:nr}),_using:oa("using",{startsExpr:nr}),_yield:oa("yield",{startsExpr:nr}),_asserts:oa("asserts",{startsExpr:nr}),_checks:oa("checks",{startsExpr:nr}),_exports:oa("exports",{startsExpr:nr}),_global:oa("global",{startsExpr:nr}),_implements:oa("implements",{startsExpr:nr}),_intrinsic:oa("intrinsic",{startsExpr:nr}),_infer:oa("infer",{startsExpr:nr}),_is:oa("is",{startsExpr:nr}),_mixins:oa("mixins",{startsExpr:nr}),_proto:oa("proto",{startsExpr:nr}),_require:oa("require",{startsExpr:nr}),_satisfies:oa("satisfies",{startsExpr:nr}),_keyof:oa("keyof",{startsExpr:nr}),_readonly:oa("readonly",{startsExpr:nr}),_unique:oa("unique",{startsExpr:nr}),_abstract:oa("abstract",{startsExpr:nr}),_declare:oa("declare",{startsExpr:nr}),_enum:oa("enum",{startsExpr:nr}),_module:oa("module",{startsExpr:nr}),_namespace:oa("namespace",{startsExpr:nr}),_interface:oa("interface",{startsExpr:nr}),_type:oa("type",{startsExpr:nr}),_opaque:oa("opaque",{startsExpr:nr}),name:Ar("name",{startsExpr:nr}),string:Ar("string",{startsExpr:nr}),num:Ar("num",{startsExpr:nr}),bigint:Ar("bigint",{startsExpr:nr}),decimal:Ar("decimal",{startsExpr:nr}),regexp:Ar("regexp",{startsExpr:nr}),privateName:Ar("#name",{startsExpr:nr}),eof:Ar("eof"),jsxName:Ar("jsxName"),jsxText:Ar("jsxText",{beforeExpr:!0}),jsxTagStart:Ar("jsxTagStart",{startsExpr:!0}),jsxTagEnd:Ar("jsxTagEnd"),placeholder:Ar("%%",{startsExpr:!0})};function Ta(n){return n>=93&&n<=132}function _1t(n){return n<=92}function Hi(n){return n>=58&&n<=132}function Mye(n){return n>=58&&n<=136}function N1t(n){return xL[n]}function xk(n){return RL[n]}function k1t(n){return n>=29&&n<=33}function Qpe(n){return n>=129&&n<=131}function D1t(n){return n>=90&&n<=92}function SL(n){return n>=58&&n<=92}function L1t(n){return n>=39&&n<=59}function M1t(n){return n===34}function B1t(n){return EL[n]}function F1t(n){return n>=121&&n<=123}function $1t(n){return n>=124&&n<=130}function Pu(n){return vL[n]}function i2(n){return bL[n]}function q1t(n){return n===57}function C2(n){return n>=24&&n<=25}function ll(n){return dl[n]}dl[8].updateContext=n=>{n.pop()},dl[5].updateContext=dl[7].updateContext=dl[23].updateContext=n=>{n.push(La.brace)},dl[22].updateContext=n=>{n[n.length-1]===La.template?n.pop():n.push(La.template)},dl[142].updateContext=n=>{n.push(La.j_expr,La.j_oTag)};let TL="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",Bye="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const U1t=new RegExp("["+TL+"]"),V1t=new RegExp("["+TL+Bye+"]");TL=Bye=null;const Fye=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],W1t=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];function Rk(n,t){let a=65536;for(let i=0,d=t.length;i<d;i+=2){if(a+=t[i],a>n)return!1;if(a+=t[i+1],a>=n)return!0}return!1}function fl(n){return n<65?n===36:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&U1t.test(String.fromCharCode(n)):Rk(n,Fye)}function _p(n){return n<48?n===36:n<58?!0:n<65?!1:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&V1t.test(String.fromCharCode(n)):Rk(n,Fye)||Rk(n,W1t)}const wL={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},G1t=new Set(wL.keyword),K1t=new Set(wL.strict),H1t=new Set(wL.strictBind);function $ye(n,t){return t&&n==="await"||n==="enum"}function qye(n,t){return $ye(n,t)||K1t.has(n)}function Uye(n){return H1t.has(n)}function Vye(n,t){return qye(n,t)||Uye(n)}function z1t(n){return G1t.has(n)}function X1t(n,t,a){return n===64&&t===64&&fl(a)}const J1t=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Y1t(n){return J1t.has(n)}let PL=class{constructor(t){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=t}},AL=class{constructor(t,a){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=a}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){const t=this.currentThisScopeFlags();return(t&64)>0&&(t&2)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&128)return!0;if(a&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new PL(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(t){return!!(t.flags&130||!this.parser.inModule&&t.flags&1)}declareName(t,a,i){let d=this.currentScope();if(a&8||a&16){this.checkRedeclarationInScope(d,t,a,i);let p=d.names.get(t)||0;a&16?p=p|4:(d.firstLexicalName||(d.firstLexicalName=t),p=p|2),d.names.set(t,p),a&8&&this.maybeExportDefined(d,t)}else if(a&4)for(let p=this.scopeStack.length-1;p>=0&&(d=this.scopeStack[p],this.checkRedeclarationInScope(d,t,a,i),d.names.set(t,(d.names.get(t)||0)|1),this.maybeExportDefined(d,t),!(d.flags&387));--p);this.parser.inModule&&d.flags&1&&this.undefinedExports.delete(t)}maybeExportDefined(t,a){this.parser.inModule&&t.flags&1&&this.undefinedExports.delete(a)}checkRedeclarationInScope(t,a,i,d){this.isRedeclaredInScope(t,a,i)&&this.parser.raise(ze.VarRedeclaration,d,{identifierName:a})}isRedeclaredInScope(t,a,i){if(!(i&1))return!1;if(i&8)return t.names.has(a);const d=t.names.get(a);return i&16?(d&2)>0||!this.treatFunctionsAsVarInScope(t)&&(d&1)>0:(d&2)>0&&!(t.flags&8&&t.firstLexicalName===a)||!this.treatFunctionsAsVarInScope(t)&&(d&4)>0}checkLocalExport(t){const{name:a}=t;this.scopeStack[0].names.has(a)||this.undefinedExports.set(a,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&387)return a}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&451&&!(a&4))return a}}},Q1t=class extends PL{constructor(...t){super(...t),this.declareFunctions=new Set}},Z1t=class extends AL{createScope(t){return new Q1t(t)}declareName(t,a,i){const d=this.currentScope();if(a&2048){this.checkRedeclarationInScope(d,t,a,i),this.maybeExportDefined(d,t),d.declareFunctions.add(t);return}super.declareName(t,a,i)}isRedeclaredInScope(t,a,i){if(super.isRedeclaredInScope(t,a,i))return!0;if(i&2048&&!t.declareFunctions.has(a)){const d=t.names.get(a);return(d&4)>0||(d&2)>0}return!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},e0t=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t=="string")return this.plugins.has(t);{const[a,i]=t;if(!this.hasPlugin(a))return!1;const d=this.plugins.get(a);for(const p of Object.keys(i))if((d==null?void 0:d[p])!==i[p])return!1;return!0}}getPluginOption(t,a){var i;return(i=this.plugins.get(t))==null?void 0:i[a]}};function Wye(n,t){n.trailingComments===void 0?n.trailingComments=t:n.trailingComments.unshift(...t)}function t0t(n,t){n.leadingComments===void 0?n.leadingComments=t:n.leadingComments.unshift(...t)}function hy(n,t){n.innerComments===void 0?n.innerComments=t:n.innerComments.unshift(...t)}function $m(n,t,a){let i=null,d=t.length;for(;i===null&&d>0;)i=t[--d];i===null||i.start>a.start?hy(n,a.comments):Wye(i,a.comments)}let r0t=class extends e0t{addComment(t){this.filename&&(t.loc.filename=this.filename);const{commentsLen:a}=this.state;this.comments.length!==a&&(this.comments.length=a),this.comments.push(t),this.state.commentsLen++}processComment(t){const{commentStack:a}=this.state,i=a.length;if(i===0)return;let d=i-1;const p=a[d];p.start===t.end&&(p.leadingNode=t,d--);const{start:y}=t;for(;d>=0;d--){const b=a[d],v=b.end;if(v>y)b.containingNode=t,this.finalizeComment(b),a.splice(d,1);else{v===y&&(b.trailingNode=t);break}}}finalizeComment(t){const{comments:a}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&Wye(t.leadingNode,a),t.trailingNode!==null&&t0t(t.trailingNode,a);else{const{containingNode:i,start:d}=t;if(this.input.charCodeAt(d-1)===44)switch(i.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":$m(i,i.properties,t);break;case"CallExpression":case"OptionalCallExpression":$m(i,i.arguments,t);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":$m(i,i.params,t);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":$m(i,i.elements,t);break;case"ExportNamedDeclaration":case"ImportDeclaration":$m(i,i.specifiers,t);break;default:hy(i,a)}else hy(i,a)}}finalizeRemainingComments(){const{commentStack:t}=this.state;for(let a=t.length-1;a>=0;a--)this.finalizeComment(t[a]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){const{commentStack:a}=this.state,{length:i}=a;if(i===0)return;const d=a[i-1];d.leadingNode===t&&(d.leadingNode=null)}resetPreviousIdentifierLeadingComments(t){const{commentStack:a}=this.state,{length:i}=a;i!==0&&(a[i-1].trailingNode===t?a[i-1].trailingNode=null:i>=2&&a[i-2].trailingNode===t&&(a[i-2].trailingNode=null))}takeSurroundingComments(t,a,i){const{commentStack:d}=this.state,p=d.length;if(p===0)return;let y=p-1;for(;y>=0;y--){const b=d[y],v=b.end;if(b.start===i)b.leadingNode=t;else if(v===a)b.trailingNode=t;else if(v<a)break}}};const a0t=/\r\n|[\r\n\u2028\u2029]/,kb=new RegExp(a0t.source,"g");function Np(n){switch(n){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function Zpe(n,t,a){for(let i=t;i<a;i++)if(Np(n.charCodeAt(i)))return!0;return!1}const Z_=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,eN=/(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;function n0t(n){switch(n){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}let s0t=class Gye{constructor(){this.flags=1024,this.curLine=void 0,this.lineStart=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.labels=[],this.commentsLen=0,this.commentStack=[],this.pos=0,this.type=139,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.context=[La.brace],this.firstInvalidTemplateEscapePos=null,this.strictErrors=new Map,this.tokensLength=0}get strict(){return(this.flags&1)>0}set strict(t){t?this.flags|=1:this.flags&=-2}init({strictMode:t,sourceType:a,startLine:i,startColumn:d}){this.strict=t===!1?!1:t===!0?!0:a==="module",this.curLine=i,this.lineStart=-d,this.startLoc=this.endLoc=new wu(i,d,0)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(t){t?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(t){t?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(t){t?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(t){t?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(t){t?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(t){t?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(t){t?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(t){t?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(t){t?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(t){t?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(t){t?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(t){t?this.flags|=4096:this.flags&=-4097}curPosition(){return new wu(this.curLine,this.pos-this.lineStart,this.pos)}clone(){const t=new Gye;return t.flags=this.flags,t.curLine=this.curLine,t.lineStart=this.lineStart,t.startLoc=this.startLoc,t.endLoc=this.endLoc,t.errors=this.errors.slice(),t.potentialArrowAt=this.potentialArrowAt,t.noArrowAt=this.noArrowAt.slice(),t.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),t.topicContext=this.topicContext,t.labels=this.labels.slice(),t.commentsLen=this.commentsLen,t.commentStack=this.commentStack.slice(),t.pos=this.pos,t.type=this.type,t.value=this.value,t.start=this.start,t.end=this.end,t.lastTokEndLoc=this.lastTokEndLoc,t.lastTokStartLoc=this.lastTokStartLoc,t.context=this.context.slice(),t.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,t.strictErrors=this.strictErrors,t.tokensLength=this.tokensLength,t}};var i0t=function(t){return t>=48&&t<=57};const efe={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},Db={bin:n=>n===48||n===49,oct:n=>n>=48&&n<=55,dec:n=>n>=48&&n<=57,hex:n=>n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102};function tfe(n,t,a,i,d,p){const y=a,b=i,v=d;let E="",S=null,A=a;const{length:_}=t;for(;;){if(a>=_){p.unterminated(y,b,v),E+=t.slice(A,a);break}const C=t.charCodeAt(a);if(o0t(n,C,t,a)){E+=t.slice(A,a);break}if(C===92){E+=t.slice(A,a);const q=l0t(t,a,i,d,n==="template",p);q.ch===null&&!S?S={pos:a,lineStart:i,curLine:d}:E+=q.ch,{pos:a,lineStart:i,curLine:d}=q,A=a}else C===8232||C===8233?(++a,++d,i=a):C===10||C===13?n==="template"?(E+=t.slice(A,a)+` +`,++a,C===13&&t.charCodeAt(a)===10&&++a,++d,A=i=a):p.unterminated(y,b,v):++a}return{pos:a,str:E,firstInvalidLoc:S,lineStart:i,curLine:d,containsInvalid:!!S}}function o0t(n,t,a,i){return n==="template"?t===96||t===36&&a.charCodeAt(i+1)===123:t===(n==="double"?34:39)}function l0t(n,t,a,i,d,p){const y=!d;t++;const b=E=>({pos:t,ch:E,lineStart:a,curLine:i}),v=n.charCodeAt(t++);switch(v){case 110:return b(` +`);case 114:return b("\r");case 120:{let E;return{code:E,pos:t}=Ek(n,t,a,i,2,!1,y,p),b(E===null?null:String.fromCharCode(E))}case 117:{let E;return{code:E,pos:t}=Hye(n,t,a,i,y,p),b(E===null?null:String.fromCodePoint(E))}case 116:return b(" ");case 98:return b("\b");case 118:return b("\v");case 102:return b("\f");case 13:n.charCodeAt(t)===10&&++t;case 10:a=t,++i;case 8232:case 8233:return b("");case 56:case 57:if(d)return b(null);p.strictNumericEscape(t-1,a,i);default:if(v>=48&&v<=55){const E=t-1;let A=/^[0-7]+/.exec(n.slice(E,t+2))[0],_=parseInt(A,8);_>255&&(A=A.slice(0,-1),_=parseInt(A,8)),t+=A.length-1;const C=n.charCodeAt(t);if(A!=="0"||C===56||C===57){if(d)return b(null);p.strictNumericEscape(E,a,i)}return b(String.fromCharCode(_))}return b(String.fromCharCode(v))}}function Ek(n,t,a,i,d,p,y,b){const v=t;let E;return{n:E,pos:t}=Kye(n,t,a,i,16,d,p,!1,b,!y),E===null&&(y?b.invalidEscapeSequence(v,a,i):t=v-1),{code:E,pos:t}}function Kye(n,t,a,i,d,p,y,b,v,E){const S=t,A=d===16?efe.hex:efe.decBinOct,_=d===16?Db.hex:d===10?Db.dec:d===8?Db.oct:Db.bin;let C=!1,q=0;for(let M=0,W=p??1/0;M<W;++M){const z=n.charCodeAt(t);let Y;if(z===95&&b!=="bail"){const Z=n.charCodeAt(t-1),ce=n.charCodeAt(t+1);if(b){if(Number.isNaN(ce)||!_(ce)||A.has(Z)||A.has(ce)){if(E)return{n:null,pos:t};v.unexpectedNumericSeparator(t,a,i)}}else{if(E)return{n:null,pos:t};v.numericSeparatorInEscapeSequence(t,a,i)}++t;continue}if(z>=97?Y=z-97+10:z>=65?Y=z-65+10:i0t(z)?Y=z-48:Y=1/0,Y>=d){if(Y<=9&&E)return{n:null,pos:t};if(Y<=9&&v.invalidDigit(t,a,i,d))Y=0;else if(y)Y=0,C=!0;else break}++t,q=q*d+Y}return t===S||p!=null&&t-S!==p||C?{n:null,pos:t}:{n:q,pos:t}}function Hye(n,t,a,i,d,p){const y=n.charCodeAt(t);let b;if(y===123){if(++t,{code:b,pos:t}=Ek(n,t,a,i,n.indexOf("}",t)-t,!0,d,p),++t,b!==null&&b>1114111)if(d)p.invalidCodePoint(t,a,i);else return{code:null,pos:t}}else({code:b,pos:t}=Ek(n,t,a,i,4,!1,d,p));return{code:b,pos:t}}function qm(n,t,a){return new wu(a,n-t,n)}const u0t=new Set([103,109,115,105,121,117,100,118]);let vu=class{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new I2(t.startLoc,t.endLoc)}},c0t=class extends r0t{constructor(t,a){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(i,d,p,y)=>this.options.errorRecovery?(this.raise(ze.InvalidDigit,qm(i,d,p),{radix:y}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(ze.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(ze.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(ze.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(ze.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(i,d,p)=>{this.recordStrictModeErrors(ze.StrictNumericEscape,qm(i,d,p))},unterminated:(i,d,p)=>{throw this.raise(ze.UnterminatedString,qm(i-1,d,p))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(ze.StrictNumericEscape),unterminated:(i,d,p)=>{throw this.raise(ze.UnterminatedTemplate,qm(i,d,p))}}),this.state=new s0t,this.state.init(t),this.input=a,this.length=a.length,this.comments=[],this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new vu(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){const t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;const a=this.state;return this.state=t,a}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return Z_.lastIndex=t,Z_.test(this.input)?Z_.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(t){return eN.lastIndex=t,eN.test(this.input)?eN.lastIndex:t}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(t){let a=this.input.charCodeAt(t);if((a&64512)===55296&&++t<this.input.length){const i=this.input.charCodeAt(t);(i&64512)===56320&&(a=65536+((a&1023)<<10)+(i&1023))}return a}setStrict(t){this.state.strict=t,t&&(this.state.strictErrors.forEach(([a,i])=>this.raise(a,i)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(139);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(t){let a;this.isLookahead||(a=this.state.curPosition());const i=this.state.pos,d=this.input.indexOf(t,i+2);if(d===-1)throw this.raise(ze.UnterminatedComment,this.state.curPosition());for(this.state.pos=d+t.length,kb.lastIndex=i+2;kb.test(this.input)&&kb.lastIndex<=d;)++this.state.curLine,this.state.lineStart=kb.lastIndex;if(this.isLookahead)return;const p={type:"CommentBlock",value:this.input.slice(i+2,d),start:i,end:d+t.length,loc:new I2(a,this.state.curPosition())};return this.options.tokens&&this.pushToken(p),p}skipLineComment(t){const a=this.state.pos;let i;this.isLookahead||(i=this.state.curPosition());let d=this.input.charCodeAt(this.state.pos+=t);if(this.state.pos<this.length)for(;!Np(d)&&++this.state.pos<this.length;)d=this.input.charCodeAt(this.state.pos);if(this.isLookahead)return;const p=this.state.pos,b={type:"CommentLine",value:this.input.slice(a+t,p),start:a,end:p,loc:new I2(i,this.state.curPosition())};return this.options.tokens&&this.pushToken(b),b}skipSpace(){const t=this.state.pos,a=[];e:for(;this.state.pos<this.length;){const i=this.input.charCodeAt(this.state.pos);switch(i){case 32:case 160:case 9:++this.state.pos;break;case 13:this.input.charCodeAt(this.state.pos+1)===10&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:{const d=this.skipBlockComment("*/");d!==void 0&&(this.addComment(d),this.options.attachComment&&a.push(d));break}case 47:{const d=this.skipLineComment(2);d!==void 0&&(this.addComment(d),this.options.attachComment&&a.push(d));break}default:break e}break;default:if(n0t(i))++this.state.pos;else if(i===45&&!this.inModule&&this.options.annexB){const d=this.state.pos;if(this.input.charCodeAt(d+1)===45&&this.input.charCodeAt(d+2)===62&&(t===0||this.state.lineStart>t)){const p=this.skipLineComment(3);p!==void 0&&(this.addComment(p),this.options.attachComment&&a.push(p))}else break e}else if(i===60&&!this.inModule&&this.options.annexB){const d=this.state.pos;if(this.input.charCodeAt(d+1)===33&&this.input.charCodeAt(d+2)===45&&this.input.charCodeAt(d+3)===45){const p=this.skipLineComment(4);p!==void 0&&(this.addComment(p),this.options.attachComment&&a.push(p))}else break e}else break e}}if(a.length>0){const i=this.state.pos,d={start:t,end:i,comments:a,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(d)}}finishToken(t,a){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();const i=this.state.type;this.state.type=t,this.state.value=a,this.isLookahead||this.updateContext(i)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;const t=this.state.pos+1,a=this.codePointAtPos(t);if(a>=48&&a<=57)throw this.raise(ze.UnexpectedDigitAfterHash,this.state.curPosition());if(a===123||a===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(a===123?ze.RecordExpressionHashIncorrectStartSyntaxType:ze.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,a===123?this.finishToken(7):this.finishToken(1)}else fl(a)?(++this.state.pos,this.finishToken(138,this.readWord1(a))):a===92?(++this.state.pos,this.finishToken(138,this.readWord1())):this.finishOp(27,1)}readToken_dot(){const t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;const a=this.state.pos;for(this.state.pos+=1;!Np(t)&&++this.state.pos<this.length;)t=this.input.charCodeAt(this.state.pos);const i=this.input.slice(a+2,this.state.pos);return this.finishToken(28,i),!0}readToken_mult_modulo(t){let a=t===42?55:54,i=1,d=this.input.charCodeAt(this.state.pos+1);t===42&&d===42&&(i++,d=this.input.charCodeAt(this.state.pos+2),a=57),d===61&&!this.state.inType&&(i++,a=t===37?33:30),this.finishOp(a,i)}readToken_pipe_amp(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===t){this.input.charCodeAt(this.state.pos+2)===61?this.finishOp(30,3):this.finishOp(t===124?41:42,2);return}if(t===124){if(a===62){this.finishOp(39,2);return}if(this.hasPlugin("recordAndTuple")&&a===125){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(ze.RecordExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(9);return}if(this.hasPlugin("recordAndTuple")&&a===93){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(ze.TupleExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(4);return}}if(a===61){this.finishOp(30,2);return}this.finishOp(t===124?43:45,1)}readToken_caret(){const t=this.input.charCodeAt(this.state.pos+1);t===61&&!this.state.inType?this.finishOp(32,2):t===94&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"^^"}])?(this.finishOp(37,2),this.input.codePointAt(this.state.pos)===94&&this.unexpected()):this.finishOp(44,1)}readToken_atSign(){this.input.charCodeAt(this.state.pos+1)===64&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"@@"}])?this.finishOp(38,2):this.finishOp(26,1)}readToken_plus_min(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===t){this.finishOp(34,2);return}a===61?this.finishOp(30,2):this.finishOp(53,1)}readToken_lt(){const{pos:t}=this.state,a=this.input.charCodeAt(t+1);if(a===60){if(this.input.charCodeAt(t+2)===61){this.finishOp(30,3);return}this.finishOp(51,2);return}if(a===61){this.finishOp(49,2);return}this.finishOp(47,1)}readToken_gt(){const{pos:t}=this.state,a=this.input.charCodeAt(t+1);if(a===62){const i=this.input.charCodeAt(t+2)===62?3:2;if(this.input.charCodeAt(t+i)===61){this.finishOp(30,i+1);return}this.finishOp(52,i);return}if(a===61){this.finishOp(49,2);return}this.finishOp(48,1)}readToken_eq_excl(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===61){this.finishOp(46,this.input.charCodeAt(this.state.pos+2)===61?3:2);return}if(t===61&&a===62){this.state.pos+=2,this.finishToken(19);return}this.finishOp(t===61?29:35,1)}readToken_question(){const t=this.input.charCodeAt(this.state.pos+1),a=this.input.charCodeAt(this.state.pos+2);t===63?a===61?this.finishOp(30,3):this.finishOp(40,2):t===46&&!(a>=48&&a<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(ze.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(ze.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{const a=this.input.charCodeAt(this.state.pos+1);if(a===120||a===88){this.readRadixNumber(16);return}if(a===111||a===79){this.readRadixNumber(8);return}if(a===98||a===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(fl(t)){this.readWord(t);return}}throw this.raise(ze.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(t)})}finishOp(t,a){const i=this.input.slice(this.state.pos,this.state.pos+a);this.state.pos+=a,this.finishToken(t,i)}readRegexp(){const t=this.state.startLoc,a=this.state.start+1;let i,d,{pos:p}=this.state;for(;;++p){if(p>=this.length)throw this.raise(ze.UnterminatedRegExp,Ss(t,1));const E=this.input.charCodeAt(p);if(Np(E))throw this.raise(ze.UnterminatedRegExp,Ss(t,1));if(i)i=!1;else{if(E===91)d=!0;else if(E===93&&d)d=!1;else if(E===47&&!d)break;i=E===92}}const y=this.input.slice(a,p);++p;let b="";const v=()=>Ss(t,p+2-a);for(;p<this.length;){const E=this.codePointAtPos(p),S=String.fromCharCode(E);if(u0t.has(E))E===118?b.includes("u")&&this.raise(ze.IncompatibleRegExpUVFlags,v()):E===117&&b.includes("v")&&this.raise(ze.IncompatibleRegExpUVFlags,v()),b.includes(S)&&this.raise(ze.DuplicateRegExpFlags,v());else if(_p(E)||E===92)this.raise(ze.MalformedRegExpFlags,v());else break;++p,b+=S}this.state.pos=p,this.finishToken(137,{pattern:y,flags:b})}readInt(t,a,i=!1,d=!0){const{n:p,pos:y}=Kye(this.input,this.state.pos,this.state.lineStart,this.state.curLine,t,a,i,d,this.errorHandlers_readInt,!1);return this.state.pos=y,p}readRadixNumber(t){const a=this.state.curPosition();let i=!1;this.state.pos+=2;const d=this.readInt(t);d==null&&this.raise(ze.InvalidDigit,Ss(a,2),{radix:t});const p=this.input.charCodeAt(this.state.pos);if(p===110)++this.state.pos,i=!0;else if(p===109)throw this.raise(ze.InvalidDecimal,a);if(fl(this.codePointAtPos(this.state.pos)))throw this.raise(ze.NumberIdentifier,this.state.curPosition());if(i){const y=this.input.slice(a.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(135,y);return}this.finishToken(134,d)}readNumber(t){const a=this.state.pos,i=this.state.curPosition();let d=!1,p=!1,y=!1,b=!1,v=!1;!t&&this.readInt(10)===null&&this.raise(ze.InvalidNumber,this.state.curPosition());const E=this.state.pos-a>=2&&this.input.charCodeAt(a)===48;if(E){const C=this.input.slice(a,this.state.pos);if(this.recordStrictModeErrors(ze.StrictOctalLiteral,i),!this.state.strict){const q=C.indexOf("_");q>0&&this.raise(ze.ZeroDigitNumericSeparator,Ss(i,q))}v=E&&!/[89]/.test(C)}let S=this.input.charCodeAt(this.state.pos);if(S===46&&!v&&(++this.state.pos,this.readInt(10),d=!0,S=this.input.charCodeAt(this.state.pos)),(S===69||S===101)&&!v&&(S=this.input.charCodeAt(++this.state.pos),(S===43||S===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(ze.InvalidOrMissingExponent,i),d=!0,b=!0,S=this.input.charCodeAt(this.state.pos)),S===110&&((d||E)&&this.raise(ze.InvalidBigIntLiteral,i),++this.state.pos,p=!0),S===109&&(this.expectPlugin("decimal",this.state.curPosition()),(b||E)&&this.raise(ze.InvalidDecimal,i),++this.state.pos,y=!0),fl(this.codePointAtPos(this.state.pos)))throw this.raise(ze.NumberIdentifier,this.state.curPosition());const A=this.input.slice(a,this.state.pos).replace(/[_mn]/g,"");if(p){this.finishToken(135,A);return}if(y){this.finishToken(136,A);return}const _=v?parseInt(A,8):parseFloat(A);this.finishToken(134,_)}readCodePoint(t){const{code:a,pos:i}=Hye(this.input,this.state.pos,this.state.lineStart,this.state.curLine,t,this.errorHandlers_readCodePoint);return this.state.pos=i,a}readString(t){const{str:a,pos:i,curLine:d,lineStart:p}=tfe(t===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=i+1,this.state.lineStart=p,this.state.curLine=d,this.finishToken(133,a)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){const t=this.input[this.state.pos],{str:a,firstInvalidLoc:i,pos:d,curLine:p,lineStart:y}=tfe("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=d+1,this.state.lineStart=y,this.state.curLine=p,i&&(this.state.firstInvalidTemplateEscapePos=new wu(i.curLine,i.pos-i.lineStart,i.pos)),this.input.codePointAt(d)===96?this.finishToken(24,i?null:t+a+"`"):(this.state.pos++,this.finishToken(25,i?null:t+a+"${"))}recordStrictModeErrors(t,a){const i=a.index;this.state.strict&&!this.state.strictErrors.has(i)?this.raise(t,a):this.state.strictErrors.set(i,[t,a])}readWord1(t){this.state.containsEsc=!1;let a="";const i=this.state.pos;let d=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos<this.length;){const p=this.codePointAtPos(this.state.pos);if(_p(p))this.state.pos+=p<=65535?1:2;else if(p===92){this.state.containsEsc=!0,a+=this.input.slice(d,this.state.pos);const y=this.state.curPosition(),b=this.state.pos===i?fl:_p;if(this.input.charCodeAt(++this.state.pos)!==117){this.raise(ze.MissingUnicodeEscape,this.state.curPosition()),d=this.state.pos-1;continue}++this.state.pos;const v=this.readCodePoint(!0);v!==null&&(b(v)||this.raise(ze.EscapedCharNotAnIdentifier,y),a+=String.fromCodePoint(v)),d=this.state.pos}else break}return a+this.input.slice(d,this.state.pos)}readWord(t){const a=this.readWord1(t),i=gL.get(a);i!==void 0?this.finishToken(i,Pu(i)):this.finishToken(132,a)}checkKeywordEscapes(){const{type:t}=this.state;SL(t)&&this.state.containsEsc&&this.raise(ze.InvalidEscapedReservedWord,this.state.startLoc,{reservedWord:Pu(t)})}raise(t,a,i={}){const d=a instanceof wu?a:a.loc.start,p=t(d,i);if(!this.options.errorRecovery)throw p;return this.isLookahead||this.state.errors.push(p),p}raiseOverwrite(t,a,i={}){const d=a instanceof wu?a:a.loc.start,p=d.index,y=this.state.errors;for(let b=y.length-1;b>=0;b--){const v=y[b];if(v.loc.index===p)return y[b]=t(d,i);if(v.loc.index<p)break}return this.raise(t,a,i)}updateContext(t){}unexpected(t,a){throw this.raise(ze.UnexpectedToken,t??this.state.startLoc,{expected:a?Pu(a):null})}expectPlugin(t,a){if(this.hasPlugin(t))return!0;throw this.raise(ze.MissingPlugin,a??this.state.startLoc,{missingPlugin:[t]})}expectOnePlugin(t){if(!t.some(a=>this.hasPlugin(a)))throw this.raise(ze.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:t})}errorBuilder(t){return(a,i,d)=>{this.raise(t,qm(a,i,d))}}},d0t=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},p0t=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new d0t)}exit(){const t=this.stack.pop(),a=this.current();for(const[i,d]of Array.from(t.undefinedPrivateNames))a?a.undefinedPrivateNames.has(i)||a.undefinedPrivateNames.set(i,d):this.parser.raise(ze.InvalidPrivateFieldResolution,d,{identifierName:i})}declarePrivateName(t,a,i){const{privateNames:d,loneAccessors:p,undefinedPrivateNames:y}=this.current();let b=d.has(t);if(a&3){const v=b&&p.get(t);if(v){const E=v&4,S=a&4,A=v&3,_=a&3;b=A===_||E!==S,b||p.delete(t)}else b||p.set(t,a)}b&&this.parser.raise(ze.PrivateNameRedeclaration,i,{identifierName:t}),d.add(t),y.delete(t)}usePrivateName(t,a){let i;for(i of this.stack)if(i.privateNames.has(t))return;i?i.undefinedPrivateNames.set(t,a):this.parser.raise(ze.InvalidPrivateFieldResolution,a,{identifierName:t})}},C6=class{constructor(t=0){this.type=t}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}},zye=class extends C6{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,a){const i=a.index;this.declarationErrors.set(i,[t,a])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},f0t=class{constructor(t){this.parser=void 0,this.stack=[new C6],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,a){const i=a.loc.start,{stack:d}=this;let p=d.length-1,y=d[p];for(;!y.isCertainlyParameterDeclaration();){if(y.canBeArrowParameterDeclaration())y.recordDeclarationError(t,i);else return;y=d[--p]}this.parser.raise(t,i)}recordArrowParameterBindingError(t,a){const{stack:i}=this,d=i[i.length-1],p=a.loc.start;if(d.isCertainlyParameterDeclaration())this.parser.raise(t,p);else if(d.canBeArrowParameterDeclaration())d.recordDeclarationError(t,p);else return}recordAsyncArrowParametersError(t){const{stack:a}=this;let i=a.length-1,d=a[i];for(;d.canBeArrowParameterDeclaration();)d.type===2&&d.recordDeclarationError(ze.AwaitBindingIdentifier,t),d=a[--i]}validateAsPattern(){const{stack:t}=this,a=t[t.length-1];a.canBeArrowParameterDeclaration()&&a.iterateErrors(([i,d])=>{this.parser.raise(i,d);let p=t.length-2,y=t[p];for(;y.canBeArrowParameterDeclaration();)y.clearDeclarationError(d.index),y=t[--p]})}};function h0t(){return new C6(3)}function m0t(){return new zye(1)}function y0t(){return new zye(2)}function Xye(){return new C6}let g0t=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}};function o2(n,t){return(n?2:0)|(t?1:0)}let v0t=class extends c0t{addExtra(t,a,i,d=!0){if(!t)return;let{extra:p}=t;p==null&&(p={},t.extra=p),d?p[a]=i:Object.defineProperty(p,a,{enumerable:d,value:i})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,a){const i=t+a.length;if(this.input.slice(t,i)===a){const d=this.input.charCodeAt(i);return!(_p(d)||(d&64512)===55296)}return!1}isLookaheadContextual(t){const a=this.nextTokenStart();return this.isUnparsedContextual(a,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,a){if(!this.eatContextual(t)){if(a!=null)throw this.raise(a,this.state.startLoc);this.unexpected(null,t)}}canInsertSemicolon(){return this.match(139)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return Zpe(this.input,this.state.lastTokEndLoc.index,this.state.start)}hasFollowingLineBreak(){return Zpe(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(t=!0){(t?this.isLineTerminator():this.eat(13))||this.raise(ze.MissingSemicolon,this.state.lastTokEndLoc)}expect(t,a){this.eat(t)||this.unexpected(a,t)}tryParse(t,a=this.state.clone()){const i={node:null};try{const d=t((p=null)=>{throw i.node=p,i});if(this.state.errors.length>a.errors.length){const p=this.state;return this.state=a,this.state.tokensLength=p.tokensLength,{node:d,error:p.errors[a.errors.length],thrown:!1,aborted:!1,failState:p}}return{node:d,error:null,thrown:!1,aborted:!1,failState:null}}catch(d){const p=this.state;if(this.state=a,d instanceof SyntaxError)return{node:null,error:d,thrown:!0,aborted:!1,failState:p};if(d===i)return{node:i.node,error:null,thrown:!1,aborted:!0,failState:p};throw d}}checkExpressionErrors(t,a){if(!t)return!1;const{shorthandAssignLoc:i,doubleProtoLoc:d,privateKeyLoc:p,optionalParametersLoc:y}=t,b=!!i||!!d||!!y||!!p;if(!a)return b;i!=null&&this.raise(ze.InvalidCoverInitializedName,i),d!=null&&this.raise(ze.DuplicateProto,d),p!=null&&this.raise(ze.UnexpectedPrivateField,p),y!=null&&this.unexpected(y)}isLiteralPropertyName(){return Mye(this.state.type)}isPrivateName(t){return t.type==="PrivateName"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type==="MemberExpression"||t.type==="OptionalMemberExpression")&&this.isPrivateName(t.property)}isObjectProperty(t){return t.type==="ObjectProperty"}isObjectMethod(t){return t.type==="ObjectMethod"}initializeScopes(t=this.options.sourceType==="module"){const a=this.state.labels;this.state.labels=[];const i=this.exportedIdentifiers;this.exportedIdentifiers=new Set;const d=this.inModule;this.inModule=t;const p=this.scope,y=this.getScopeHandler();this.scope=new y(this,t);const b=this.prodParam;this.prodParam=new g0t;const v=this.classScope;this.classScope=new p0t(this);const E=this.expressionScope;return this.expressionScope=new f0t(this),()=>{this.state.labels=a,this.exportedIdentifiers=i,this.inModule=d,this.scope=p,this.prodParam=b,this.classScope=v,this.expressionScope=E}}enterInitialScopes(){let t=0;this.inModule&&(t|=2),this.scope.enter(1),this.prodParam.enter(t)}checkDestructuringPrivate(t){const{privateKeyLoc:a}=t;a!==null&&this.expectPlugin("destructuringPrivate",a)}},l2=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},j2=class{constructor(t,a,i){this.type="",this.start=a,this.end=0,this.loc=new I2(i),t!=null&&t.options.ranges&&(this.range=[a,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}};const IL=j2.prototype;IL.__clone=function(){const n=new j2(void 0,this.start,this.loc.start),t=Object.keys(this);for(let a=0,i=t.length;a<i;a++){const d=t[a];d!=="leadingComments"&&d!=="trailingComments"&&d!=="innerComments"&&(n[d]=this[d])}return n};function b0t(n){return Rl(n)}function Rl(n){const{type:t,start:a,end:i,loc:d,range:p,extra:y,name:b}=n,v=Object.create(IL);return v.type=t,v.start=a,v.end=i,v.loc=d,v.range=p,v.extra=y,v.name=b,t==="Placeholder"&&(v.expectedNode=n.expectedNode),v}function x0t(n){const{type:t,start:a,end:i,loc:d,range:p,extra:y}=n;if(t==="Placeholder")return b0t(n);const b=Object.create(IL);return b.type=t,b.start=a,b.end=i,b.loc=d,b.range=p,n.raw!==void 0?b.raw=n.raw:b.extra=y,b.value=n.value,b}let R0t=class extends v0t{startNode(){const t=this.state.startLoc;return new j2(this,t.index,t)}startNodeAt(t){return new j2(this,t.index,t)}startNodeAtNode(t){return this.startNodeAt(t.loc.start)}finishNode(t,a){return this.finishNodeAt(t,a,this.state.lastTokEndLoc)}finishNodeAt(t,a,i){return t.type=a,t.end=i.index,t.loc.end=i,this.options.ranges&&(t.range[1]=i.index),this.options.attachComment&&this.processComment(t),t}resetStartLocation(t,a){t.start=a.index,t.loc.start=a,this.options.ranges&&(t.range[0]=a.index)}resetEndLocation(t,a=this.state.lastTokEndLoc){t.end=a.index,t.loc.end=a,this.options.ranges&&(t.range[1]=a.index)}resetStartLocationFromNode(t,a){this.resetStartLocation(t,a.loc.start)}};const E0t=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),_r=ml`flow`({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:({reservedType:n})=>`Cannot overwrite reserved type ${n}.`,DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:({memberName:n,enumName:t})=>`Boolean enum members need to be initialized. Use either \`${n} = true,\` or \`${n} = false,\` in enum \`${t}\`.`,EnumDuplicateMemberName:({memberName:n,enumName:t})=>`Enum member names need to be unique, but the name \`${n}\` has already been used before in enum \`${t}\`.`,EnumInconsistentMemberValues:({enumName:n})=>`Enum \`${n}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:n,enumName:t})=>`Enum type \`${n}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:n})=>`Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${n}\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:n,memberName:t,explicitType:a})=>`Enum \`${n}\` has type \`${a}\`, so the initializer of \`${t}\` needs to be a ${a} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:n,memberName:t})=>`Symbol enum members cannot be initialized. Use \`${t},\` in enum \`${n}\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:n,memberName:t})=>`The enum member initializer for \`${t}\` needs to be a literal (either a boolean, number, or string) in enum \`${n}\`.`,EnumInvalidMemberName:({enumName:n,memberName:t,suggestion:a})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${t}\`, consider using \`${a}\`, in enum \`${n}\`.`,EnumNumberMemberNotInitialized:({enumName:n,memberName:t})=>`Number enum members need to be initialized, e.g. \`${t} = 1\` in enum \`${n}\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:n})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \`${n}\`.`,GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:({reservedType:n})=>`Unexpected reserved type ${n}.`,UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",UnsupportedDeclareExportKind:({unsupportedExportKind:n,suggestion:t})=>`\`declare export ${n}\` is not supported. Use \`${t}\` instead.`,UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function S0t(n){return n.type==="DeclareExportAllDeclaration"||n.type==="DeclareExportDeclaration"&&(!n.declaration||n.declaration.type!=="TypeAlias"&&n.declaration.type!=="InterfaceDeclaration")}function rfe(n){return n.importKind==="type"||n.importKind==="typeof"}const T0t={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function w0t(n,t){const a=[],i=[];for(let d=0;d<n.length;d++)(t(n[d],d,n)?a:i).push(n[d]);return[a,i]}const P0t=/\*?\s*@((?:no)?flow)\b/;var A0t=n=>class extends n{constructor(...a){super(...a),this.flowPragma=void 0}getScopeHandler(){return Z1t}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(a,i){a!==133&&a!==13&&a!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(a,i)}addComment(a){if(this.flowPragma===void 0){const i=P0t.exec(a.value);if(i)if(i[1]==="flow")this.flowPragma="flow";else if(i[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}super.addComment(a)}flowParseTypeInitialiser(a){const i=this.state.inType;this.state.inType=!0,this.expect(a||14);const d=this.flowParseType();return this.state.inType=i,d}flowParsePredicate(){const a=this.startNode(),i=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>i.index+1&&this.raise(_r.UnexpectedSpaceBetweenModuloChecks,i),this.eat(10)?(a.value=super.parseExpression(),this.expect(11),this.finishNode(a,"DeclaredPredicate")):this.finishNode(a,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){const a=this.state.inType;this.state.inType=!0,this.expect(14);let i=null,d=null;return this.match(54)?(this.state.inType=a,d=this.flowParsePredicate()):(i=this.flowParseType(),this.state.inType=a,this.match(54)&&(d=this.flowParsePredicate())),[i,d]}flowParseDeclareClass(a){return this.next(),this.flowParseInterfaceish(a,!0),this.finishNode(a,"DeclareClass")}flowParseDeclareFunction(a){this.next();const i=a.id=this.parseIdentifier(),d=this.startNode(),p=this.startNode();this.match(47)?d.typeParameters=this.flowParseTypeParameterDeclaration():d.typeParameters=null,this.expect(10);const y=this.flowParseFunctionTypeParams();return d.params=y.params,d.rest=y.rest,d.this=y._this,this.expect(11),[d.returnType,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),p.typeAnnotation=this.finishNode(d,"FunctionTypeAnnotation"),i.typeAnnotation=this.finishNode(p,"TypeAnnotation"),this.resetEndLocation(i),this.semicolon(),this.scope.declareName(a.id.name,2048,a.id.loc.start),this.finishNode(a,"DeclareFunction")}flowParseDeclare(a,i){if(this.match(80))return this.flowParseDeclareClass(a);if(this.match(68))return this.flowParseDeclareFunction(a);if(this.match(74))return this.flowParseDeclareVariable(a);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(a):(i&&this.raise(_r.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(a));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(a);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(a);if(this.isContextual(129))return this.flowParseDeclareInterface(a);if(this.match(82))return this.flowParseDeclareExportDeclaration(a,i);this.unexpected()}flowParseDeclareVariable(a){return this.next(),a.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(a.id.name,5,a.id.loc.start),this.semicolon(),this.finishNode(a,"DeclareVariable")}flowParseDeclareModule(a){this.scope.enter(0),this.match(133)?a.id=super.parseExprAtom():a.id=this.parseIdentifier();const i=a.body=this.startNode(),d=i.body=[];for(this.expect(5);!this.match(8);){let b=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(_r.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(b)):(this.expectContextual(125,_r.UnsupportedStatementInDeclareModule),b=this.flowParseDeclare(b,!0)),d.push(b)}this.scope.exit(),this.expect(8),this.finishNode(i,"BlockStatement");let p=null,y=!1;return d.forEach(b=>{S0t(b)?(p==="CommonJS"&&this.raise(_r.AmbiguousDeclareModuleKind,b),p="ES"):b.type==="DeclareModuleExports"&&(y&&this.raise(_r.DuplicateDeclareModuleExports,b),p==="ES"&&this.raise(_r.AmbiguousDeclareModuleKind,b),p="CommonJS",y=!0)}),a.kind=p||"CommonJS",this.finishNode(a,"DeclareModule")}flowParseDeclareExportDeclaration(a,i){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?a.declaration=this.flowParseDeclare(this.startNode()):(a.declaration=this.flowParseType(),this.semicolon()),a.default=!0,this.finishNode(a,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!i){const d=this.state.value;throw this.raise(_r.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:d,suggestion:T0t[d]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return a.declaration=this.flowParseDeclare(this.startNode()),a.default=!1,this.finishNode(a,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return a=this.parseExport(a,null),a.type==="ExportNamedDeclaration"&&(a.type="ExportDeclaration",a.default=!1,delete a.exportKind),a.type="Declare"+a.type,a;this.unexpected()}flowParseDeclareModuleExports(a){return this.next(),this.expectContextual(111),a.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(a,"DeclareModuleExports")}flowParseDeclareTypeAlias(a){this.next();const i=this.flowParseTypeAlias(a);return i.type="DeclareTypeAlias",i}flowParseDeclareOpaqueType(a){this.next();const i=this.flowParseOpaqueType(a,!0);return i.type="DeclareOpaqueType",i}flowParseDeclareInterface(a){return this.next(),this.flowParseInterfaceish(a,!1),this.finishNode(a,"DeclareInterface")}flowParseInterfaceish(a,i){if(a.id=this.flowParseRestrictedIdentifier(!i,!0),this.scope.declareName(a.id.name,i?17:8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.extends=[],this.eat(81))do a.extends.push(this.flowParseInterfaceExtends());while(!i&&this.eat(12));if(i){if(a.implements=[],a.mixins=[],this.eatContextual(117))do a.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do a.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}a.body=this.flowParseObjectType({allowStatic:i,allowExact:!1,allowSpread:!1,allowProto:i,allowInexact:!1})}flowParseInterfaceExtends(){const a=this.startNode();return a.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?a.typeParameters=this.flowParseTypeParameterInstantiation():a.typeParameters=null,this.finishNode(a,"InterfaceExtends")}flowParseInterface(a){return this.flowParseInterfaceish(a,!1),this.finishNode(a,"InterfaceDeclaration")}checkNotUnderscore(a){a==="_"&&this.raise(_r.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(a,i,d){E0t.has(a)&&this.raise(d?_r.AssignReservedType:_r.UnexpectedReservedType,i,{reservedType:a})}flowParseRestrictedIdentifier(a,i){return this.checkReservedType(this.state.value,this.state.startLoc,i),this.parseIdentifier(a)}flowParseTypeAlias(a){return a.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(a.id.name,8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(a,"TypeAlias")}flowParseOpaqueType(a,i){return this.expectContextual(130),a.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(a.id.name,8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.supertype=null,this.match(14)&&(a.supertype=this.flowParseTypeInitialiser(14)),a.impltype=null,i||(a.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(a,"OpaqueType")}flowParseTypeParameter(a=!1){const i=this.state.startLoc,d=this.startNode(),p=this.flowParseVariance(),y=this.flowParseTypeAnnotatableIdentifier();return d.name=y.name,d.variance=p,d.bound=y.typeAnnotation,this.match(29)?(this.eat(29),d.default=this.flowParseType()):a&&this.raise(_r.MissingTypeParamDefault,i),this.finishNode(d,"TypeParameter")}flowParseTypeParameterDeclaration(){const a=this.state.inType,i=this.startNode();i.params=[],this.state.inType=!0,this.match(47)||this.match(142)?this.next():this.unexpected();let d=!1;do{const p=this.flowParseTypeParameter(d);i.params.push(p),p.default&&(d=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=a,this.finishNode(i,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){const a=this.startNode(),i=this.state.inType;a.params=[],this.state.inType=!0,this.expect(47);const d=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)a.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=d,this.expect(48),this.state.inType=i,this.finishNode(a,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){const a=this.startNode(),i=this.state.inType;for(a.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)a.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=i,this.finishNode(a,"TypeParameterInstantiation")}flowParseInterfaceType(){const a=this.startNode();if(this.expectContextual(129),a.extends=[],this.eat(81))do a.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return a.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(a,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(134)||this.match(133)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(a,i,d){return a.static=i,this.lookahead().type===14?(a.id=this.flowParseObjectPropertyKey(),a.key=this.flowParseTypeInitialiser()):(a.id=null,a.key=this.flowParseType()),this.expect(3),a.value=this.flowParseTypeInitialiser(),a.variance=d,this.finishNode(a,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(a,i){return a.static=i,a.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(a.method=!0,a.optional=!1,a.value=this.flowParseObjectTypeMethodish(this.startNodeAt(a.loc.start))):(a.method=!1,this.eat(17)&&(a.optional=!0),a.value=this.flowParseTypeInitialiser()),this.finishNode(a,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(a){for(a.params=[],a.rest=null,a.typeParameters=null,a.this=null,this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(a.this=this.flowParseFunctionTypeParam(!0),a.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)a.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(a.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),a.returnType=this.flowParseTypeInitialiser(),this.finishNode(a,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(a,i){const d=this.startNode();return a.static=i,a.value=this.flowParseObjectTypeMethodish(d),this.finishNode(a,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:a,allowExact:i,allowSpread:d,allowProto:p,allowInexact:y}){const b=this.state.inType;this.state.inType=!0;const v=this.startNode();v.callProperties=[],v.properties=[],v.indexers=[],v.internalSlots=[];let E,S,A=!1;for(i&&this.match(6)?(this.expect(6),E=9,S=!0):(this.expect(5),E=8,S=!1),v.exact=S;!this.match(E);){let C=!1,q=null,M=null;const W=this.startNode();if(p&&this.isContextual(118)){const Y=this.lookahead();Y.type!==14&&Y.type!==17&&(this.next(),q=this.state.startLoc,a=!1)}if(a&&this.isContextual(106)){const Y=this.lookahead();Y.type!==14&&Y.type!==17&&(this.next(),C=!0)}const z=this.flowParseVariance();if(this.eat(0))q!=null&&this.unexpected(q),this.eat(0)?(z&&this.unexpected(z.loc.start),v.internalSlots.push(this.flowParseObjectTypeInternalSlot(W,C))):v.indexers.push(this.flowParseObjectTypeIndexer(W,C,z));else if(this.match(10)||this.match(47))q!=null&&this.unexpected(q),z&&this.unexpected(z.loc.start),v.callProperties.push(this.flowParseObjectTypeCallProperty(W,C));else{let Y="init";if(this.isContextual(99)||this.isContextual(104)){const ce=this.lookahead();Mye(ce.type)&&(Y=this.state.value,this.next())}const Z=this.flowParseObjectTypeProperty(W,C,q,z,Y,d,y??!S);Z===null?(A=!0,M=this.state.lastTokStartLoc):v.properties.push(Z)}this.flowObjectTypeSemicolon(),M&&!this.match(8)&&!this.match(9)&&this.raise(_r.UnexpectedExplicitInexactInObject,M)}this.expect(E),d&&(v.inexact=A);const _=this.finishNode(v,"ObjectTypeAnnotation");return this.state.inType=b,_}flowParseObjectTypeProperty(a,i,d,p,y,b,v){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(b?v||this.raise(_r.InexactInsideExact,this.state.lastTokStartLoc):this.raise(_r.InexactInsideNonObject,this.state.lastTokStartLoc),p&&this.raise(_r.InexactVariance,p),null):(b||this.raise(_r.UnexpectedSpreadType,this.state.lastTokStartLoc),d!=null&&this.unexpected(d),p&&this.raise(_r.SpreadVariance,p),a.argument=this.flowParseType(),this.finishNode(a,"ObjectTypeSpreadProperty"));{a.key=this.flowParseObjectPropertyKey(),a.static=i,a.proto=d!=null,a.kind=y;let E=!1;return this.match(47)||this.match(10)?(a.method=!0,d!=null&&this.unexpected(d),p&&this.unexpected(p.loc.start),a.value=this.flowParseObjectTypeMethodish(this.startNodeAt(a.loc.start)),(y==="get"||y==="set")&&this.flowCheckGetterSetterParams(a),!b&&a.key.name==="constructor"&&a.value.this&&this.raise(_r.ThisParamBannedInConstructor,a.value.this)):(y!=="init"&&this.unexpected(),a.method=!1,this.eat(17)&&(E=!0),a.value=this.flowParseTypeInitialiser(),a.variance=p),a.optional=E,this.finishNode(a,"ObjectTypeProperty")}}flowCheckGetterSetterParams(a){const i=a.kind==="get"?0:1,d=a.value.params.length+(a.value.rest?1:0);a.value.this&&this.raise(a.kind==="get"?_r.GetterMayNotHaveThisParam:_r.SetterMayNotHaveThisParam,a.value.this),d!==i&&this.raise(a.kind==="get"?ze.BadGetterArity:ze.BadSetterArity,a),a.kind==="set"&&a.value.rest&&this.raise(ze.BadSetterRestParameter,a)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(a,i){var d;(d=a)!=null||(a=this.state.startLoc);let p=i||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){const y=this.startNodeAt(a);y.qualification=p,y.id=this.flowParseRestrictedIdentifier(!0),p=this.finishNode(y,"QualifiedTypeIdentifier")}return p}flowParseGenericType(a,i){const d=this.startNodeAt(a);return d.typeParameters=null,d.id=this.flowParseQualifiedTypeIdentifier(a,i),this.match(47)&&(d.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(d,"GenericTypeAnnotation")}flowParseTypeofType(){const a=this.startNode();return this.expect(87),a.argument=this.flowParsePrimaryType(),this.finishNode(a,"TypeofTypeAnnotation")}flowParseTupleType(){const a=this.startNode();for(a.types=[],this.expect(0);this.state.pos<this.length&&!this.match(3)&&(a.types.push(this.flowParseType()),!this.match(3));)this.expect(12);return this.expect(3),this.finishNode(a,"TupleTypeAnnotation")}flowParseFunctionTypeParam(a){let i=null,d=!1,p=null;const y=this.startNode(),b=this.lookahead(),v=this.state.type===78;return b.type===14||b.type===17?(v&&!a&&this.raise(_r.ThisParamMustBeFirst,y),i=this.parseIdentifier(v),this.eat(17)&&(d=!0,v&&this.raise(_r.ThisParamMayNotBeOptional,y)),p=this.flowParseTypeInitialiser()):p=this.flowParseType(),y.name=i,y.optional=d,y.typeAnnotation=p,this.finishNode(y,"FunctionTypeParam")}reinterpretTypeAsFunctionTypeParam(a){const i=this.startNodeAt(a.loc.start);return i.name=null,i.optional=!1,i.typeAnnotation=a,this.finishNode(i,"FunctionTypeParam")}flowParseFunctionTypeParams(a=[]){let i=null,d=null;for(this.match(78)&&(d=this.flowParseFunctionTypeParam(!0),d.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)a.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(i=this.flowParseFunctionTypeParam(!1)),{params:a,rest:i,_this:d}}flowIdentToTypeAnnotation(a,i,d){switch(d.name){case"any":return this.finishNode(i,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(i,"BooleanTypeAnnotation");case"mixed":return this.finishNode(i,"MixedTypeAnnotation");case"empty":return this.finishNode(i,"EmptyTypeAnnotation");case"number":return this.finishNode(i,"NumberTypeAnnotation");case"string":return this.finishNode(i,"StringTypeAnnotation");case"symbol":return this.finishNode(i,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(d.name),this.flowParseGenericType(a,d)}}flowParsePrimaryType(){const a=this.state.startLoc,i=this.startNode();let d,p,y=!1;const b=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,p=this.flowParseTupleType(),this.state.noAnonFunctionType=b,p;case 47:{const v=this.startNode();return v.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),d=this.flowParseFunctionTypeParams(),v.params=d.params,v.rest=d.rest,v.this=d._this,this.expect(11),this.expect(19),v.returnType=this.flowParseType(),this.finishNode(v,"FunctionTypeAnnotation")}case 10:{const v=this.startNode();if(this.next(),!this.match(11)&&!this.match(21))if(Ta(this.state.type)||this.match(78)){const E=this.lookahead().type;y=E!==17&&E!==14}else y=!0;if(y){if(this.state.noAnonFunctionType=!1,p=this.flowParseType(),this.state.noAnonFunctionType=b,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),p;this.eat(12)}return p?d=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(p)]):d=this.flowParseFunctionTypeParams(),v.params=d.params,v.rest=d.rest,v.this=d._this,this.expect(11),this.expect(19),v.returnType=this.flowParseType(),v.typeParameters=null,this.finishNode(v,"FunctionTypeAnnotation")}case 133:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return i.value=this.match(85),this.next(),this.finishNode(i,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(134))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",i);if(this.match(135))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",i);throw this.raise(_r.UnexpectedSubtractionOperand,this.state.startLoc)}this.unexpected();return;case 134:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 135:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(i,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(i,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(i,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(i,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(SL(this.state.type)){const v=Pu(this.state.type);return this.next(),super.createIdentifier(i,v)}else if(Ta(this.state.type))return this.isContextual(129)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(a,i,this.parseIdentifier())}this.unexpected()}flowParsePostfixType(){const a=this.state.startLoc;let i=this.flowParsePrimaryType(),d=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){const p=this.startNodeAt(a),y=this.eat(18);d=d||y,this.expect(0),!y&&this.match(3)?(p.elementType=i,this.next(),i=this.finishNode(p,"ArrayTypeAnnotation")):(p.objectType=i,p.indexType=this.flowParseType(),this.expect(3),d?(p.optional=y,i=this.finishNode(p,"OptionalIndexedAccessType")):i=this.finishNode(p,"IndexedAccessType"))}return i}flowParsePrefixType(){const a=this.startNode();return this.eat(17)?(a.typeAnnotation=this.flowParsePrefixType(),this.finishNode(a,"NullableTypeAnnotation")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){const a=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){const i=this.startNodeAt(a.loc.start);return i.params=[this.reinterpretTypeAsFunctionTypeParam(a)],i.rest=null,i.this=null,i.returnType=this.flowParseType(),i.typeParameters=null,this.finishNode(i,"FunctionTypeAnnotation")}return a}flowParseIntersectionType(){const a=this.startNode();this.eat(45);const i=this.flowParseAnonFunctionWithoutParens();for(a.types=[i];this.eat(45);)a.types.push(this.flowParseAnonFunctionWithoutParens());return a.types.length===1?i:this.finishNode(a,"IntersectionTypeAnnotation")}flowParseUnionType(){const a=this.startNode();this.eat(43);const i=this.flowParseIntersectionType();for(a.types=[i];this.eat(43);)a.types.push(this.flowParseIntersectionType());return a.types.length===1?i:this.finishNode(a,"UnionTypeAnnotation")}flowParseType(){const a=this.state.inType;this.state.inType=!0;const i=this.flowParseUnionType();return this.state.inType=a,i}flowParseTypeOrImplicitInstantiation(){if(this.state.type===132&&this.state.value==="_"){const a=this.state.startLoc,i=this.parseIdentifier();return this.flowParseGenericType(a,i)}else return this.flowParseType()}flowParseTypeAnnotation(){const a=this.startNode();return a.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(a,"TypeAnnotation")}flowParseTypeAnnotatableIdentifier(a){const i=a?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(i.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(i)),i}typeCastToParameter(a){return a.expression.typeAnnotation=a.typeAnnotation,this.resetEndLocation(a.expression,a.typeAnnotation.loc.end),a.expression}flowParseVariance(){let a=null;return this.match(53)?(a=this.startNode(),this.state.value==="+"?a.kind="plus":a.kind="minus",this.next(),this.finishNode(a,"Variance")):a}parseFunctionBody(a,i,d=!1){if(i){this.forwardNoArrowParamsConversionAt(a,()=>super.parseFunctionBody(a,!0,d));return}super.parseFunctionBody(a,!1,d)}parseFunctionBodyAndFinish(a,i,d=!1){if(this.match(14)){const p=this.startNode();[p.typeAnnotation,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),a.returnType=p.typeAnnotation?this.finishNode(p,"TypeAnnotation"):null}return super.parseFunctionBodyAndFinish(a,i,d)}parseStatementLike(a){if(this.state.strict&&this.isContextual(129)){const d=this.lookahead();if(Hi(d.type)){const p=this.startNode();return this.next(),this.flowParseInterface(p)}}else if(this.shouldParseEnums()&&this.isContextual(126)){const d=this.startNode();return this.next(),this.flowParseEnumDeclaration(d)}const i=super.parseStatementLike(a);return this.flowPragma===void 0&&!this.isValidDirective(i)&&(this.flowPragma=null),i}parseExpressionStatement(a,i,d){if(i.type==="Identifier"){if(i.name==="declare"){if(this.match(80)||Ta(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(a)}else if(Ta(this.state.type)){if(i.name==="interface")return this.flowParseInterface(a);if(i.name==="type")return this.flowParseTypeAlias(a);if(i.name==="opaque")return this.flowParseOpaqueType(a,!1)}}return super.parseExpressionStatement(a,i,d)}shouldParseExportDeclaration(){const{type:a}=this.state;return Qpe(a)||this.shouldParseEnums()&&a===126?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){const{type:a}=this.state;return Qpe(a)||this.shouldParseEnums()&&a===126?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(126)){const a=this.startNode();return this.next(),this.flowParseEnumDeclaration(a)}return super.parseExportDefaultExpression()}parseConditional(a,i,d){if(!this.match(17))return a;if(this.state.maybeInArrowParameters){const _=this.lookaheadCharCode();if(_===44||_===61||_===58||_===41)return this.setOptionalParametersError(d),a}this.expect(17);const p=this.state.clone(),y=this.state.noArrowAt,b=this.startNodeAt(i);let{consequent:v,failed:E}=this.tryParseConditionalConsequent(),[S,A]=this.getArrowLikeExpressions(v);if(E||A.length>0){const _=[...y];if(A.length>0){this.state=p,this.state.noArrowAt=_;for(let C=0;C<A.length;C++)_.push(A[C].start);({consequent:v,failed:E}=this.tryParseConditionalConsequent()),[S,A]=this.getArrowLikeExpressions(v)}E&&S.length>1&&this.raise(_r.AmbiguousConditionalArrow,p.startLoc),E&&S.length===1&&(this.state=p,_.push(S[0].start),this.state.noArrowAt=_,{consequent:v,failed:E}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(v,!0),this.state.noArrowAt=y,this.expect(14),b.test=a,b.consequent=v,b.alternate=this.forwardNoArrowParamsConversionAt(b,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(b,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);const a=this.parseMaybeAssignAllowIn(),i=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:a,failed:i}}getArrowLikeExpressions(a,i){const d=[a],p=[];for(;d.length!==0;){const y=d.pop();y.type==="ArrowFunctionExpression"&&y.body.type!=="BlockStatement"?(y.typeParameters||!y.returnType?this.finishArrowValidation(y):p.push(y),d.push(y.body)):y.type==="ConditionalExpression"&&(d.push(y.consequent),d.push(y.alternate))}return i?(p.forEach(y=>this.finishArrowValidation(y)),[p,[]]):w0t(p,y=>y.params.every(b=>this.isAssignable(b,!0)))}finishArrowValidation(a){var i;this.toAssignableList(a.params,(i=a.extra)==null?void 0:i.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(a,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(a,i){let d;return this.state.noArrowParamsConversionAt.includes(a.start)?(this.state.noArrowParamsConversionAt.push(this.state.start),d=i(),this.state.noArrowParamsConversionAt.pop()):d=i(),d}parseParenItem(a,i){const d=super.parseParenItem(a,i);if(this.eat(17)&&(d.optional=!0,this.resetEndLocation(a)),this.match(14)){const p=this.startNodeAt(i);return p.expression=d,p.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(p,"TypeCastExpression")}return d}assertModuleNodeAllowed(a){a.type==="ImportDeclaration"&&(a.importKind==="type"||a.importKind==="typeof")||a.type==="ExportNamedDeclaration"&&a.exportKind==="type"||a.type==="ExportAllDeclaration"&&a.exportKind==="type"||super.assertModuleNodeAllowed(a)}parseExportDeclaration(a){if(this.isContextual(130)){a.exportKind="type";const i=this.startNode();return this.next(),this.match(5)?(a.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(a),null):this.flowParseTypeAlias(i)}else if(this.isContextual(131)){a.exportKind="type";const i=this.startNode();return this.next(),this.flowParseOpaqueType(i,!1)}else if(this.isContextual(129)){a.exportKind="type";const i=this.startNode();return this.next(),this.flowParseInterface(i)}else if(this.shouldParseEnums()&&this.isContextual(126)){a.exportKind="value";const i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}else return super.parseExportDeclaration(a)}eatExportStar(a){return super.eatExportStar(a)?!0:this.isContextual(130)&&this.lookahead().type===55?(a.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(a){const{startLoc:i}=this.state,d=super.maybeParseExportNamespaceSpecifier(a);return d&&a.exportKind==="type"&&this.unexpected(i),d}parseClassId(a,i,d){super.parseClassId(a,i,d),this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(a,i,d){const{startLoc:p}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(a,i))return;i.declare=!0}super.parseClassMember(a,i,d),i.declare&&(i.type!=="ClassProperty"&&i.type!=="ClassPrivateProperty"&&i.type!=="PropertyDefinition"?this.raise(_r.DeclareClassElement,p):i.value&&this.raise(_r.DeclareClassFieldInitializer,i.value))}isIterator(a){return a==="iterator"||a==="asyncIterator"}readIterator(){const a=super.readWord1(),i="@@"+a;(!this.isIterator(a)||!this.state.inType)&&this.raise(ze.InvalidIdentifier,this.state.curPosition(),{identifierName:i}),this.finishToken(132,i)}getTokenFromCode(a){const i=this.input.charCodeAt(this.state.pos+1);a===123&&i===124?this.finishOp(6,2):this.state.inType&&(a===62||a===60)?this.finishOp(a===62?48:47,1):this.state.inType&&a===63?i===46?this.finishOp(18,2):this.finishOp(17,1):X1t(a,i,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(a)}isAssignable(a,i){return a.type==="TypeCastExpression"?this.isAssignable(a.expression,i):super.isAssignable(a,i)}toAssignable(a,i=!1){!i&&a.type==="AssignmentExpression"&&a.left.type==="TypeCastExpression"&&(a.left=this.typeCastToParameter(a.left)),super.toAssignable(a,i)}toAssignableList(a,i,d){for(let p=0;p<a.length;p++){const y=a[p];(y==null?void 0:y.type)==="TypeCastExpression"&&(a[p]=this.typeCastToParameter(y))}super.toAssignableList(a,i,d)}toReferencedList(a,i){for(let p=0;p<a.length;p++){var d;const y=a[p];y&&y.type==="TypeCastExpression"&&!((d=y.extra)!=null&&d.parenthesized)&&(a.length>1||!i)&&this.raise(_r.TypeCastInPattern,y.typeAnnotation)}return a}parseArrayLike(a,i,d,p){const y=super.parseArrayLike(a,i,d,p);return i&&!this.state.maybeInArrowParameters&&this.toReferencedList(y.elements),y}isValidLVal(a,i,d){return a==="TypeCastExpression"||super.isValidLVal(a,i,d)}parseClassProperty(a){return this.match(14)&&(a.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(a)}parseClassPrivateProperty(a){return this.match(14)&&(a.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(a)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(a){return!this.match(14)&&super.isNonstaticConstructor(a)}pushClassMethod(a,i,d,p,y,b){if(i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(a,i,d,p,y,b),i.params&&y){const v=i.params;v.length>0&&this.isThisParam(v[0])&&this.raise(_r.ThisParamBannedInConstructor,i)}else if(i.type==="MethodDefinition"&&y&&i.value.params){const v=i.value.params;v.length>0&&this.isThisParam(v[0])&&this.raise(_r.ThisParamBannedInConstructor,i)}}pushClassPrivateMethod(a,i,d,p){i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(a,i,d,p)}parseClassSuper(a){if(super.parseClassSuper(a),a.superClass&&this.match(47)&&(a.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(113)){this.next();const i=a.implements=[];do{const d=this.startNode();d.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?d.typeParameters=this.flowParseTypeParameterInstantiation():d.typeParameters=null,i.push(this.finishNode(d,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(a){super.checkGetterSetterParams(a);const i=this.getObjectOrClassMethodParams(a);if(i.length>0){const d=i[0];this.isThisParam(d)&&a.kind==="get"?this.raise(_r.GetterMayNotHaveThisParam,d):this.isThisParam(d)&&this.raise(_r.SetterMayNotHaveThisParam,d)}}parsePropertyNamePrefixOperator(a){a.variance=this.flowParseVariance()}parseObjPropValue(a,i,d,p,y,b,v){a.variance&&this.unexpected(a.variance.loc.start),delete a.variance;let E;this.match(47)&&!b&&(E=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());const S=super.parseObjPropValue(a,i,d,p,y,b,v);return E&&((S.value||S).typeParameters=E),S}parseAssignableListItemTypes(a){return this.eat(17)&&(a.type!=="Identifier"&&this.raise(_r.PatternIsOptional,a),this.isThisParam(a)&&this.raise(_r.ThisParamMayNotBeOptional,a),a.optional=!0),this.match(14)?a.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(a)&&this.raise(_r.ThisParamAnnotationRequired,a),this.match(29)&&this.isThisParam(a)&&this.raise(_r.ThisParamNoDefault,a),this.resetEndLocation(a),a}parseMaybeDefault(a,i){const d=super.parseMaybeDefault(a,i);return d.type==="AssignmentPattern"&&d.typeAnnotation&&d.right.start<d.typeAnnotation.start&&this.raise(_r.TypeBeforeInitializer,d.typeAnnotation),d}checkImportReflection(a){super.checkImportReflection(a),a.module&&a.importKind!=="value"&&this.raise(_r.ImportReflectionHasImportType,a.specifiers[0].loc.start)}parseImportSpecifierLocal(a,i,d){i.local=rfe(a)?this.flowParseRestrictedIdentifier(!0,!0):this.parseIdentifier(),a.specifiers.push(this.finishImportSpecifier(i,d))}isPotentialImportPhase(a){if(super.isPotentialImportPhase(a))return!0;if(this.isContextual(130)){if(!a)return!0;const i=this.lookaheadCharCode();return i===123||i===42}return!a&&this.isContextual(87)}applyImportPhase(a,i,d,p){if(super.applyImportPhase(a,i,d,p),i){if(!d&&this.match(65))return;a.exportKind=d==="type"?d:"value"}else d==="type"&&this.match(55)&&this.unexpected(),a.importKind=d==="type"||d==="typeof"?d:"value"}parseImportSpecifier(a,i,d,p,y){const b=a.imported;let v=null;b.type==="Identifier"&&(b.name==="type"?v="type":b.name==="typeof"&&(v="typeof"));let E=!1;if(this.isContextual(93)&&!this.isLookaheadContextual("as")){const A=this.parseIdentifier(!0);v!==null&&!Hi(this.state.type)?(a.imported=A,a.importKind=v,a.local=Rl(A)):(a.imported=b,a.importKind=null,a.local=this.parseIdentifier())}else{if(v!==null&&Hi(this.state.type))a.imported=this.parseIdentifier(!0),a.importKind=v;else{if(i)throw this.raise(ze.ImportBindingIsString,a,{importName:b.value});a.imported=b,a.importKind=null}this.eatContextual(93)?a.local=this.parseIdentifier():(E=!0,a.local=Rl(a.imported))}const S=rfe(a);return d&&S&&this.raise(_r.ImportTypeShorthandOnlyInPureImport,a),(d||S)&&this.checkReservedType(a.local.name,a.local.loc.start,!0),E&&!d&&!S&&this.checkReservedWord(a.local.name,a.loc.start,!0,!0),this.finishImportSpecifier(a,"ImportSpecifier")}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseFunctionParams(a,i){const d=a.kind;d!=="get"&&d!=="set"&&this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration()),super.parseFunctionParams(a,i)}parseVarId(a,i){super.parseVarId(a,i),this.match(14)&&(a.id.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(a.id))}parseAsyncArrowFromCallExpression(a,i){if(this.match(14)){const d=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,a.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=d}return super.parseAsyncArrowFromCallExpression(a,i)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}parseMaybeAssign(a,i){var d;let p=null,y;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(p=this.state.clone(),y=this.tryParse(()=>super.parseMaybeAssign(a,i),p),!y.error)return y.node;const{context:E}=this.state,S=E[E.length-1];(S===La.j_oTag||S===La.j_expr)&&E.pop()}if((d=y)!=null&&d.error||this.match(47)){var b,v;p=p||this.state.clone();let E;const S=this.tryParse(_=>{var C;E=this.flowParseTypeParameterDeclaration();const q=this.forwardNoArrowParamsConversionAt(E,()=>{const W=super.parseMaybeAssign(a,i);return this.resetStartLocationFromNode(W,E),W});(C=q.extra)!=null&&C.parenthesized&&_();const M=this.maybeUnwrapTypeCastExpression(q);return M.type!=="ArrowFunctionExpression"&&_(),M.typeParameters=E,this.resetStartLocationFromNode(M,E),q},p);let A=null;if(S.node&&this.maybeUnwrapTypeCastExpression(S.node).type==="ArrowFunctionExpression"){if(!S.error&&!S.aborted)return S.node.async&&this.raise(_r.UnexpectedTypeParameterBeforeAsyncArrowFunction,E),S.node;A=S.node}if((b=y)!=null&&b.node)return this.state=y.failState,y.node;if(A)return this.state=S.failState,A;throw(v=y)!=null&&v.thrown?y.error:S.thrown?S.error:this.raise(_r.UnexpectedTokenAfterTypeParameter,E)}return super.parseMaybeAssign(a,i)}parseArrow(a){if(this.match(14)){const i=this.tryParse(()=>{const d=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;const p=this.startNode();return[p.typeAnnotation,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=d,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),p});if(i.thrown)return null;i.error&&(this.state=i.failState),a.returnType=i.node.typeAnnotation?this.finishNode(i.node,"TypeAnnotation"):null}return super.parseArrow(a)}shouldParseArrow(a){return this.match(14)||super.shouldParseArrow(a)}setArrowFunctionParameters(a,i){this.state.noArrowParamsConversionAt.includes(a.start)?a.params=i:super.setArrowFunctionParameters(a,i)}checkParams(a,i,d,p=!0){if(!(d&&this.state.noArrowParamsConversionAt.includes(a.start))){for(let y=0;y<a.params.length;y++)this.isThisParam(a.params[y])&&y>0&&this.raise(_r.ThisParamMustBeFirst,a.params[y]);super.checkParams(a,i,d,p)}}parseParenAndDistinguishExpression(a){return super.parseParenAndDistinguishExpression(a&&!this.state.noArrowAt.includes(this.state.start))}parseSubscripts(a,i,d){if(a.type==="Identifier"&&a.name==="async"&&this.state.noArrowAt.includes(i.index)){this.next();const p=this.startNodeAt(i);p.callee=a,p.arguments=super.parseCallExpressionArguments(11,!1),a=this.finishNode(p,"CallExpression")}else if(a.type==="Identifier"&&a.name==="async"&&this.match(47)){const p=this.state.clone(),y=this.tryParse(v=>this.parseAsyncArrowWithTypeParameters(i)||v(),p);if(!y.error&&!y.aborted)return y.node;const b=this.tryParse(()=>super.parseSubscripts(a,i,d),p);if(b.node&&!b.error)return b.node;if(y.node)return this.state=y.failState,y.node;if(b.node)return this.state=b.failState,b.node;throw y.error||b.error}return super.parseSubscripts(a,i,d)}parseSubscript(a,i,d,p){if(this.match(18)&&this.isLookaheadToken_lt()){if(p.optionalChainMember=!0,d)return p.stop=!0,a;this.next();const y=this.startNodeAt(i);return y.callee=a,y.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),y.arguments=this.parseCallExpressionArguments(11,!1),y.optional=!0,this.finishCallExpression(y,!0)}else if(!d&&this.shouldParseTypes()&&this.match(47)){const y=this.startNodeAt(i);y.callee=a;const b=this.tryParse(()=>(y.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),y.arguments=super.parseCallExpressionArguments(11,!1),p.optionalChainMember&&(y.optional=!1),this.finishCallExpression(y,p.optionalChainMember)));if(b.node)return b.error&&(this.state=b.failState),b.node}return super.parseSubscript(a,i,d,p)}parseNewCallee(a){super.parseNewCallee(a);let i=null;this.shouldParseTypes()&&this.match(47)&&(i=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),a.typeArguments=i}parseAsyncArrowWithTypeParameters(a){const i=this.startNodeAt(a);if(this.parseFunctionParams(i,!1),!!this.parseArrow(i))return super.parseArrowExpression(i,void 0,!0)}readToken_mult_modulo(a){const i=this.input.charCodeAt(this.state.pos+1);if(a===42&&i===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(a)}readToken_pipe_amp(a){const i=this.input.charCodeAt(this.state.pos+1);if(a===124&&i===125){this.finishOp(9,2);return}super.readToken_pipe_amp(a)}parseTopLevel(a,i){const d=super.parseTopLevel(a,i);return this.state.hasFlowComment&&this.raise(_r.UnterminatedFlowComment,this.state.curPosition()),d}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(_r.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();const a=this.skipFlowComment();a&&(this.state.pos+=a,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?"*-/":"*/")}skipFlowComment(){const{pos:a}=this.state;let i=2;for(;[32,9].includes(this.input.charCodeAt(a+i));)i++;const d=this.input.charCodeAt(i+a),p=this.input.charCodeAt(i+a+1);return d===58&&p===58?i+2:this.input.slice(i+a,i+a+12)==="flow-include"?i+12:d===58&&p!==58?i:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(ze.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(a,{enumName:i,memberName:d}){this.raise(_r.EnumBooleanMemberNotInitialized,a,{memberName:d,enumName:i})}flowEnumErrorInvalidMemberInitializer(a,i){return this.raise(i.explicitType?i.explicitType==="symbol"?_r.EnumInvalidMemberInitializerSymbolType:_r.EnumInvalidMemberInitializerPrimaryType:_r.EnumInvalidMemberInitializerUnknownType,a,i)}flowEnumErrorNumberMemberNotInitialized(a,i){this.raise(_r.EnumNumberMemberNotInitialized,a,i)}flowEnumErrorStringMemberInconsistentlyInitialized(a,i){this.raise(_r.EnumStringMemberInconsistentlyInitialized,a,i)}flowEnumMemberInit(){const a=this.state.startLoc,i=()=>this.match(12)||this.match(8);switch(this.state.type){case 134:{const d=this.parseNumericLiteral(this.state.value);return i()?{type:"number",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}case 133:{const d=this.parseStringLiteral(this.state.value);return i()?{type:"string",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}case 85:case 86:{const d=this.parseBooleanLiteral(this.match(85));return i()?{type:"boolean",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}default:return{type:"invalid",loc:a}}}flowEnumMemberRaw(){const a=this.state.startLoc,i=this.parseIdentifier(!0),d=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:a};return{id:i,init:d}}flowEnumCheckExplicitTypeMismatch(a,i,d){const{explicitType:p}=i;p!==null&&p!==d&&this.flowEnumErrorInvalidMemberInitializer(a,i)}flowEnumMembers({enumName:a,explicitType:i}){const d=new Set,p={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]};let y=!1;for(;!this.match(8);){if(this.eat(21)){y=!0;break}const b=this.startNode(),{id:v,init:E}=this.flowEnumMemberRaw(),S=v.name;if(S==="")continue;/^[a-z]/.test(S)&&this.raise(_r.EnumInvalidMemberName,v,{memberName:S,suggestion:S[0].toUpperCase()+S.slice(1),enumName:a}),d.has(S)&&this.raise(_r.EnumDuplicateMemberName,v,{memberName:S,enumName:a}),d.add(S);const A={enumName:a,explicitType:i,memberName:S};switch(b.id=v,E.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"boolean"),b.init=E.value,p.booleanMembers.push(this.finishNode(b,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"number"),b.init=E.value,p.numberMembers.push(this.finishNode(b,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"string"),b.init=E.value,p.stringMembers.push(this.finishNode(b,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(E.loc,A);case"none":switch(i){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(E.loc,A);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(E.loc,A);break;default:p.defaultedMembers.push(this.finishNode(b,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:p,hasUnknownMembers:y}}flowEnumStringMembers(a,i,{enumName:d}){if(a.length===0)return i;if(i.length===0)return a;if(i.length>a.length){for(const p of a)this.flowEnumErrorStringMemberInconsistentlyInitialized(p,{enumName:d});return i}else{for(const p of i)this.flowEnumErrorStringMemberInconsistentlyInitialized(p,{enumName:d});return a}}flowEnumParseExplicitType({enumName:a}){if(!this.eatContextual(102))return null;if(!Ta(this.state.type))throw this.raise(_r.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:a});const{value:i}=this.state;return this.next(),i!=="boolean"&&i!=="number"&&i!=="string"&&i!=="symbol"&&this.raise(_r.EnumInvalidExplicitType,this.state.startLoc,{enumName:a,invalidEnumType:i}),i}flowEnumBody(a,i){const d=i.name,p=i.loc.start,y=this.flowEnumParseExplicitType({enumName:d});this.expect(5);const{members:b,hasUnknownMembers:v}=this.flowEnumMembers({enumName:d,explicitType:y});switch(a.hasUnknownMembers=v,y){case"boolean":return a.explicitType=!0,a.members=b.booleanMembers,this.expect(8),this.finishNode(a,"EnumBooleanBody");case"number":return a.explicitType=!0,a.members=b.numberMembers,this.expect(8),this.finishNode(a,"EnumNumberBody");case"string":return a.explicitType=!0,a.members=this.flowEnumStringMembers(b.stringMembers,b.defaultedMembers,{enumName:d}),this.expect(8),this.finishNode(a,"EnumStringBody");case"symbol":return a.members=b.defaultedMembers,this.expect(8),this.finishNode(a,"EnumSymbolBody");default:{const E=()=>(a.members=[],this.expect(8),this.finishNode(a,"EnumStringBody"));a.explicitType=!1;const S=b.booleanMembers.length,A=b.numberMembers.length,_=b.stringMembers.length,C=b.defaultedMembers.length;if(!S&&!A&&!_&&!C)return E();if(!S&&!A)return a.members=this.flowEnumStringMembers(b.stringMembers,b.defaultedMembers,{enumName:d}),this.expect(8),this.finishNode(a,"EnumStringBody");if(!A&&!_&&S>=C){for(const q of b.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(q.loc.start,{enumName:d,memberName:q.id.name});return a.members=b.booleanMembers,this.expect(8),this.finishNode(a,"EnumBooleanBody")}else if(!S&&!_&&A>=C){for(const q of b.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(q.loc.start,{enumName:d,memberName:q.id.name});return a.members=b.numberMembers,this.expect(8),this.finishNode(a,"EnumNumberBody")}else return this.raise(_r.EnumInconsistentMemberValues,p,{enumName:d}),E()}}}flowParseEnumDeclaration(a){const i=this.parseIdentifier();return a.id=i,a.body=this.flowEnumBody(this.startNode(),i),this.finishNode(a,"EnumDeclaration")}isLookaheadToken_lt(){const a=this.nextTokenStart();if(this.input.charCodeAt(a)===60){const i=this.input.charCodeAt(a+1);return i!==60&&i!==61}return!1}maybeUnwrapTypeCastExpression(a){return a.type==="TypeCastExpression"?a.expression:a}};const I0t={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},qc=ml`jsx`({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:({openingTagName:n})=>`Expected corresponding JSX closing tag for <${n}>.`,MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:({unexpected:n,HTMLEntity:t})=>`Unexpected token \`${n}\`. Did you mean \`${t}\` or \`{'${n}'}\`?`,UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"});function hu(n){return n?n.type==="JSXOpeningFragment"||n.type==="JSXClosingFragment":!1}function Ip(n){if(n.type==="JSXIdentifier")return n.name;if(n.type==="JSXNamespacedName")return n.namespace.name+":"+n.name.name;if(n.type==="JSXMemberExpression")return Ip(n.object)+"."+Ip(n.property);throw new Error("Node had unexpected type: "+n.type)}var C0t=n=>class extends n{jsxReadToken(){let a="",i=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(qc.UnterminatedJsxContent,this.state.startLoc);const d=this.input.charCodeAt(this.state.pos);switch(d){case 60:case 123:if(this.state.pos===this.state.start){d===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(142)):super.getTokenFromCode(d);return}a+=this.input.slice(i,this.state.pos),this.finishToken(141,a);return;case 38:a+=this.input.slice(i,this.state.pos),a+=this.jsxReadEntity(),i=this.state.pos;break;case 62:case 125:default:Np(d)?(a+=this.input.slice(i,this.state.pos),a+=this.jsxReadNewLine(!0),i=this.state.pos):++this.state.pos}}}jsxReadNewLine(a){const i=this.input.charCodeAt(this.state.pos);let d;return++this.state.pos,i===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,d=a?` +`:`\r +`):d=String.fromCharCode(i),++this.state.curLine,this.state.lineStart=this.state.pos,d}jsxReadString(a){let i="",d=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(ze.UnterminatedString,this.state.startLoc);const p=this.input.charCodeAt(this.state.pos);if(p===a)break;p===38?(i+=this.input.slice(d,this.state.pos),i+=this.jsxReadEntity(),d=this.state.pos):Np(p)?(i+=this.input.slice(d,this.state.pos),i+=this.jsxReadNewLine(!1),d=this.state.pos):++this.state.pos}i+=this.input.slice(d,this.state.pos++),this.finishToken(133,i)}jsxReadEntity(){const a=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let i=10;this.codePointAtPos(this.state.pos)===120&&(i=16,++this.state.pos);const d=this.readInt(i,void 0,!1,"bail");if(d!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(d)}else{let i=0,d=!1;for(;i++<10&&this.state.pos<this.length&&!(d=this.codePointAtPos(this.state.pos)===59);)++this.state.pos;if(d){const p=this.input.slice(a,this.state.pos),y=I0t[p];if(++this.state.pos,y)return y}}return this.state.pos=a,"&"}jsxReadWord(){let a;const i=this.state.pos;do a=this.input.charCodeAt(++this.state.pos);while(_p(a)||a===45);this.finishToken(140,this.input.slice(i,this.state.pos))}jsxParseIdentifier(){const a=this.startNode();return this.match(140)?a.name=this.state.value:SL(this.state.type)?a.name=Pu(this.state.type):this.unexpected(),this.next(),this.finishNode(a,"JSXIdentifier")}jsxParseNamespacedName(){const a=this.state.startLoc,i=this.jsxParseIdentifier();if(!this.eat(14))return i;const d=this.startNodeAt(a);return d.namespace=i,d.name=this.jsxParseIdentifier(),this.finishNode(d,"JSXNamespacedName")}jsxParseElementName(){const a=this.state.startLoc;let i=this.jsxParseNamespacedName();if(i.type==="JSXNamespacedName")return i;for(;this.eat(16);){const d=this.startNodeAt(a);d.object=i,d.property=this.jsxParseIdentifier(),i=this.finishNode(d,"JSXMemberExpression")}return i}jsxParseAttributeValue(){let a;switch(this.state.type){case 5:return a=this.startNode(),this.setContext(La.brace),this.next(),a=this.jsxParseExpressionContainer(a,La.j_oTag),a.expression.type==="JSXEmptyExpression"&&this.raise(qc.AttributeIsEmpty,a),a;case 142:case 133:return this.parseExprAtom();default:throw this.raise(qc.UnsupportedJsxValue,this.state.startLoc)}}jsxParseEmptyExpression(){const a=this.startNodeAt(this.state.lastTokEndLoc);return this.finishNodeAt(a,"JSXEmptyExpression",this.state.startLoc)}jsxParseSpreadChild(a){return this.next(),a.expression=this.parseExpression(),this.setContext(La.j_expr),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXSpreadChild")}jsxParseExpressionContainer(a,i){if(this.match(8))a.expression=this.jsxParseEmptyExpression();else{const d=this.parseExpression();a.expression=d}return this.setContext(i),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXExpressionContainer")}jsxParseAttribute(){const a=this.startNode();return this.match(5)?(this.setContext(La.brace),this.next(),this.expect(21),a.argument=this.parseMaybeAssignAllowIn(),this.setContext(La.j_oTag),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXSpreadAttribute")):(a.name=this.jsxParseNamespacedName(),a.value=this.eat(29)?this.jsxParseAttributeValue():null,this.finishNode(a,"JSXAttribute"))}jsxParseOpeningElementAt(a){const i=this.startNodeAt(a);return this.eat(143)?this.finishNode(i,"JSXOpeningFragment"):(i.name=this.jsxParseElementName(),this.jsxParseOpeningElementAfterName(i))}jsxParseOpeningElementAfterName(a){const i=[];for(;!this.match(56)&&!this.match(143);)i.push(this.jsxParseAttribute());return a.attributes=i,a.selfClosing=this.eat(56),this.expect(143),this.finishNode(a,"JSXOpeningElement")}jsxParseClosingElementAt(a){const i=this.startNodeAt(a);return this.eat(143)?this.finishNode(i,"JSXClosingFragment"):(i.name=this.jsxParseElementName(),this.expect(143),this.finishNode(i,"JSXClosingElement"))}jsxParseElementAt(a){const i=this.startNodeAt(a),d=[],p=this.jsxParseOpeningElementAt(a);let y=null;if(!p.selfClosing){e:for(;;)switch(this.state.type){case 142:if(a=this.state.startLoc,this.next(),this.eat(56)){y=this.jsxParseClosingElementAt(a);break e}d.push(this.jsxParseElementAt(a));break;case 141:d.push(this.parseLiteral(this.state.value,"JSXText"));break;case 5:{const b=this.startNode();this.setContext(La.brace),this.next(),this.match(21)?d.push(this.jsxParseSpreadChild(b)):d.push(this.jsxParseExpressionContainer(b,La.j_expr));break}default:this.unexpected()}hu(p)&&!hu(y)&&y!==null?this.raise(qc.MissingClosingTagFragment,y):!hu(p)&&hu(y)?this.raise(qc.MissingClosingTagElement,y,{openingTagName:Ip(p.name)}):!hu(p)&&!hu(y)&&Ip(y.name)!==Ip(p.name)&&this.raise(qc.MissingClosingTagElement,y,{openingTagName:Ip(p.name)})}if(hu(p)?(i.openingFragment=p,i.closingFragment=y):(i.openingElement=p,i.closingElement=y),i.children=d,this.match(47))throw this.raise(qc.UnwrappedAdjacentJSXElements,this.state.startLoc);return hu(p)?this.finishNode(i,"JSXFragment"):this.finishNode(i,"JSXElement")}jsxParseElement(){const a=this.state.startLoc;return this.next(),this.jsxParseElementAt(a)}setContext(a){const{context:i}=this.state;i[i.length-1]=a}parseExprAtom(a){return this.match(142)?this.jsxParseElement():this.match(47)&&this.input.charCodeAt(this.state.pos)!==33?(this.replaceToken(142),this.jsxParseElement()):super.parseExprAtom(a)}skipSpace(){this.curContext().preserveSpace||super.skipSpace()}getTokenFromCode(a){const i=this.curContext();if(i===La.j_expr){this.jsxReadToken();return}if(i===La.j_oTag||i===La.j_cTag){if(fl(a)){this.jsxReadWord();return}if(a===62){++this.state.pos,this.finishToken(143);return}if((a===34||a===39)&&i===La.j_oTag){this.jsxReadString(a);return}}if(a===60&&this.state.canStartJSXElement&&this.input.charCodeAt(this.state.pos+1)!==33){++this.state.pos,this.finishToken(142);return}super.getTokenFromCode(a)}updateContext(a){const{context:i,type:d}=this.state;if(d===56&&a===142)i.splice(-2,2,La.j_cTag),this.state.canStartJSXElement=!1;else if(d===142)i.push(La.j_oTag);else if(d===143){const p=i[i.length-1];p===La.j_oTag&&a===56||p===La.j_cTag?(i.pop(),this.state.canStartJSXElement=i[i.length-1]===La.j_expr):(this.setContext(La.j_expr),this.state.canStartJSXElement=!0)}else this.state.canStartJSXElement=N1t(d)}};let j0t=class extends PL{constructor(...t){super(...t),this.tsNames=new Map}},O0t=class extends AL{constructor(...t){super(...t),this.importsStack=[]}createScope(t){return this.importsStack.push(new Set),new j0t(t)}enter(t){t===256&&this.importsStack.push(new Set),super.enter(t)}exit(){const t=super.exit();return t===256&&this.importsStack.pop(),t}hasImport(t,a){const i=this.importsStack.length;if(this.importsStack[i-1].has(t))return!0;if(!a&&i>1){for(let d=0;d<i-1;d++)if(this.importsStack[d].has(t))return!0}return!1}declareName(t,a,i){if(a&4096){this.hasImport(t,!0)&&this.parser.raise(ze.VarRedeclaration,i,{identifierName:t}),this.importsStack[this.importsStack.length-1].add(t);return}const d=this.currentScope();let p=d.tsNames.get(t)||0;if(a&1024){this.maybeExportDefined(d,t),d.tsNames.set(t,p|16);return}super.declareName(t,a,i),a&2&&(a&1||(this.checkRedeclarationInScope(d,t,a,i),this.maybeExportDefined(d,t)),p=p|1),a&256&&(p=p|2),a&512&&(p=p|4),a&128&&(p=p|8),p&&d.tsNames.set(t,p)}isRedeclaredInScope(t,a,i){const d=t.tsNames.get(a);if((d&2)>0){if(i&256){const p=!!(i&512),y=(d&4)>0;return p!==y}return!0}return i&128&&(d&8)>0?t.names.get(a)&2?!!(i&1):!1:i&2&&(d&1)>0?!0:super.isRedeclaredInScope(t,a,i)}checkLocalExport(t){const{name:a}=t;if(this.hasImport(a))return;const i=this.scopeStack.length;for(let d=i-1;d>=0;d--){const y=this.scopeStack[d].tsNames.get(a);if((y&1)>0||(y&16)>0)return}super.checkLocalExport(t)}};const Jye=n=>n.type==="ParenthesizedExpression"?Jye(n.expression):n;let _0t=class extends R0t{toAssignable(t,a=!1){var i,d;let p;switch((t.type==="ParenthesizedExpression"||(i=t.extra)!=null&&i.parenthesized)&&(p=Jye(t),a?p.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(ze.InvalidParenthesizedAssignment,t):p.type!=="MemberExpression"&&!this.isOptionalMemberExpression(p)&&this.raise(ze.InvalidParenthesizedAssignment,t):this.raise(ze.InvalidParenthesizedAssignment,t)),t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern";for(let b=0,v=t.properties.length,E=v-1;b<v;b++){var y;const S=t.properties[b],A=b===E;this.toAssignableObjectExpressionProp(S,A,a),A&&S.type==="RestElement"&&(y=t.extra)!=null&&y.trailingCommaLoc&&this.raise(ze.RestTrailingComma,t.extra.trailingCommaLoc)}break;case"ObjectProperty":{const{key:b,value:v}=t;this.isPrivateName(b)&&this.classScope.usePrivateName(this.getPrivateNameSV(b),b.loc.start),this.toAssignable(v,a);break}case"SpreadElement":throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");case"ArrayExpression":t.type="ArrayPattern",this.toAssignableList(t.elements,(d=t.extra)==null?void 0:d.trailingCommaLoc,a);break;case"AssignmentExpression":t.operator!=="="&&this.raise(ze.MissingEqInAssignment,t.left.loc.end),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,a);break;case"ParenthesizedExpression":this.toAssignable(p,a);break}}toAssignableObjectExpressionProp(t,a,i){if(t.type==="ObjectMethod")this.raise(t.kind==="get"||t.kind==="set"?ze.PatternHasAccessor:ze.PatternHasMethod,t.key);else if(t.type==="SpreadElement"){t.type="RestElement";const d=t.argument;this.checkToRestConversion(d,!1),this.toAssignable(d,i),a||this.raise(ze.RestTrailingComma,t)}else this.toAssignable(t,i)}toAssignableList(t,a,i){const d=t.length-1;for(let p=0;p<=d;p++){const y=t[p];if(y){if(y.type==="SpreadElement"){y.type="RestElement";const b=y.argument;this.checkToRestConversion(b,!0),this.toAssignable(b,i)}else this.toAssignable(y,i);y.type==="RestElement"&&(p<d?this.raise(ze.RestTrailingComma,y):a&&this.raise(ze.RestTrailingComma,a))}}}isAssignable(t,a){switch(t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":return!0;case"ObjectExpression":{const i=t.properties.length-1;return t.properties.every((d,p)=>d.type!=="ObjectMethod"&&(p===i||d.type!=="SpreadElement")&&this.isAssignable(d))}case"ObjectProperty":return this.isAssignable(t.value);case"SpreadElement":return this.isAssignable(t.argument);case"ArrayExpression":return t.elements.every(i=>i===null||this.isAssignable(i));case"AssignmentExpression":return t.operator==="=";case"ParenthesizedExpression":return this.isAssignable(t.expression);case"MemberExpression":case"OptionalMemberExpression":return!a;default:return!1}}toReferencedList(t,a){return t}toReferencedListDeep(t,a){this.toReferencedList(t,a);for(const i of t)(i==null?void 0:i.type)==="ArrayExpression"&&this.toReferencedListDeep(i.elements)}parseSpread(t){const a=this.startNode();return this.next(),a.argument=this.parseMaybeAssignAllowIn(t,void 0),this.finishNode(a,"SpreadElement")}parseRestBinding(){const t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{const t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,1),this.finishNode(t,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,a,i){const d=i&1,p=[];let y=!0;for(;!this.eat(t);)if(y?y=!1:this.expect(12),d&&this.match(12))p.push(null);else{if(this.eat(t))break;if(this.match(21)){if(p.push(this.parseAssignableListItemTypes(this.parseRestBinding(),i)),!this.checkCommaAfterRest(a)){this.expect(t);break}}else{const b=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(ze.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)b.push(this.parseDecorator());p.push(this.parseAssignableListItem(i,b))}}return p}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,"RestElement")}parseBindingProperty(){const{type:t,startLoc:a}=this.state;if(t===21)return this.parseBindingRestProperty(this.startNode());const i=this.startNode();return t===138?(this.expectPlugin("destructuringPrivate",a),this.classScope.usePrivateName(this.state.value,a),i.key=this.parsePrivateName()):this.parsePropertyName(i),i.method=!1,this.parseObjPropValue(i,a,!1,!1,!0,!1)}parseAssignableListItem(t,a){const i=this.parseMaybeDefault();this.parseAssignableListItemTypes(i,t);const d=this.parseMaybeDefault(i.loc.start,i);return a.length&&(i.decorators=a),d}parseAssignableListItemTypes(t,a){return t}parseMaybeDefault(t,a){var i,d;if((i=t)!=null||(t=this.state.startLoc),a=(d=a)!=null?d:this.parseBindingAtom(),!this.eat(29))return a;const p=this.startNodeAt(t);return p.left=a,p.right=this.parseMaybeAssignAllowIn(),this.finishNode(p,"AssignmentPattern")}isValidLVal(t,a,i){switch(t){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1}isOptionalMemberExpression(t){return t.type==="OptionalMemberExpression"}checkLVal(t,a,i=64,d=!1,p=!1,y=!1){var b;const v=t.type;if(this.isObjectMethod(t))return;const E=this.isOptionalMemberExpression(t);if(E||v==="MemberExpression"){E&&(this.expectPlugin("optionalChainingAssign",t.loc.start),a.type!=="AssignmentExpression"&&this.raise(ze.InvalidLhsOptionalChaining,t,{ancestor:a})),i!==64&&this.raise(ze.InvalidPropertyBindingPattern,t);return}if(v==="Identifier"){this.checkIdentifier(t,i,p);const{name:M}=t;d&&(d.has(M)?this.raise(ze.ParamDupe,t):d.add(M));return}const S=this.isValidLVal(v,!(y||(b=t.extra)!=null&&b.parenthesized)&&a.type==="AssignmentExpression",i);if(S===!0)return;if(S===!1){const M=i===64?ze.InvalidLhs:ze.InvalidLhsBinding;this.raise(M,t,{ancestor:a});return}let A,_;typeof S=="string"?(A=S,_=v==="ParenthesizedExpression"):[A,_]=S;const C=v==="ArrayPattern"||v==="ObjectPattern"?{type:v}:a,q=t[A];if(Array.isArray(q))for(const M of q)M&&this.checkLVal(M,C,i,d,p,_);else q&&this.checkLVal(q,C,i,d,p,_)}checkIdentifier(t,a,i=!1){this.state.strict&&(i?Vye(t.name,this.inModule):Uye(t.name))&&(a===64?this.raise(ze.StrictEvalArguments,t,{referenceName:t.name}):this.raise(ze.StrictEvalArgumentsBinding,t,{bindingName:t.name})),a&8192&&t.name==="let"&&this.raise(ze.LetInLexicalBinding,t),a&64||this.declareNameFromIdentifier(t,a)}declareNameFromIdentifier(t,a){this.scope.declareName(t.name,a,t.loc.start)}checkToRestConversion(t,a){switch(t.type){case"ParenthesizedExpression":this.checkToRestConversion(t.expression,a);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(a)break;default:this.raise(ze.InvalidRestAssignmentPattern,t)}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?ze.RestTrailingComma:ze.ElementAfterRest,this.state.startLoc),!0):!1}};function N0t(n){if(n==null)throw new Error(`Unexpected ${n} value.`);return n}function afe(n){if(!n)throw new Error("Assert fail")}const hr=ml`typescript`({AbstractMethodHasImplementation:({methodName:n})=>`Method '${n}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:n})=>`Property '${n}' cannot have an initializer because it is marked abstract.`,AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",AccessorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccessorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:({kind:n})=>`'declare' is not allowed in ${n}ters.`,DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:({modifier:n})=>"Accessibility modifier already seen.",DuplicateModifier:({modifier:n})=>`Duplicate modifier: '${n}'.`,EmptyHeritageClauseType:({token:n})=>`'${n}' list cannot be empty.`,EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:({modifiers:n})=>`'${n[0]}' modifier cannot be used with '${n[1]}' modifier.`,IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:({modifier:n})=>`Index signatures cannot have an accessibility modifier ('${n}').`,IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:({modifier:n})=>`'${n}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:n})=>`'${n}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:n})=>`'${n}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:n})=>`'${n[0]}' modifier must precede '${n[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:({modifier:n})=>`Private elements cannot have an accessibility modifier ('${n}').`,ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccessorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccessorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccessorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:({typeParameterName:n})=>`Single type parameter ${n} should have a trailing comma. Example usage: <${n},>.`,StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:({type:n})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${n}.`});function k0t(n){switch(n){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function nfe(n){return n==="private"||n==="public"||n==="protected"}function D0t(n){return n==="in"||n==="out"}var L0t=n=>class extends n{constructor(...a){super(...a),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:hr.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:hr.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:hr.InvalidModifierOnTypeParameter})}getScopeHandler(){return O0t}tsIsIdentifier(){return Ta(this.state.type)}tsTokenCanFollowModifier(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(138)||this.isLiteralPropertyName()}tsNextTokenOnSameLineAndCanFollowModifier(){return this.next(),this.hasPrecedingLineBreak()?!1:this.tsTokenCanFollowModifier()}tsNextTokenCanFollowModifier(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()}tsParseModifier(a,i){if(!Ta(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;const d=this.state.value;if(a.includes(d)){if(i&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return d}}tsParseModifiers({allowedModifiers:a,disallowedModifiers:i,stopOnStartOfClassStaticBlock:d,errorTemplate:p=hr.InvalidModifierOnTypeMember},y){const b=(E,S,A,_)=>{S===A&&y[_]&&this.raise(hr.InvalidModifiersOrder,E,{orderedModifiers:[A,_]})},v=(E,S,A,_)=>{(y[A]&&S===_||y[_]&&S===A)&&this.raise(hr.IncompatibleModifiers,E,{modifiers:[A,_]})};for(;;){const{startLoc:E}=this.state,S=this.tsParseModifier(a.concat(i??[]),d);if(!S)break;nfe(S)?y.accessibility?this.raise(hr.DuplicateAccessibilityModifier,E,{modifier:S}):(b(E,S,S,"override"),b(E,S,S,"static"),b(E,S,S,"readonly"),y.accessibility=S):D0t(S)?(y[S]&&this.raise(hr.DuplicateModifier,E,{modifier:S}),y[S]=!0,b(E,S,"in","out")):(hasOwnProperty.call(y,S)?this.raise(hr.DuplicateModifier,E,{modifier:S}):(b(E,S,"static","readonly"),b(E,S,"static","override"),b(E,S,"override","readonly"),b(E,S,"abstract","override"),v(E,S,"declare","override"),v(E,S,"static","abstract")),y[S]=!0),i!=null&&i.includes(S)&&this.raise(p,E,{modifier:S})}}tsIsListTerminator(a){switch(a){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}}tsParseList(a,i){const d=[];for(;!this.tsIsListTerminator(a);)d.push(i());return d}tsParseDelimitedList(a,i,d){return N0t(this.tsParseDelimitedListWorker(a,i,!0,d))}tsParseDelimitedListWorker(a,i,d,p){const y=[];let b=-1;for(;!this.tsIsListTerminator(a);){b=-1;const v=i();if(v==null)return;if(y.push(v),this.eat(12)){b=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(a))break;d&&this.expect(12);return}return p&&(p.value=b),y}tsParseBracketedList(a,i,d,p,y){p||(d?this.expect(0):this.expect(47));const b=this.tsParseDelimitedList(a,i,y);return d?this.expect(3):this.expect(48),b}tsParseImportType(){const a=this.startNode();return this.expect(83),this.expect(10),this.match(133)||this.raise(hr.UnsupportedImportTypeArgument,this.state.startLoc),a.argument=super.parseExprAtom(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(a.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(a.options=super.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.eat(16)&&(a.qualifier=this.tsParseEntityName()),this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSImportType")}tsParseEntityName(a=!0){let i=this.parseIdentifier(a);for(;this.eat(16);){const d=this.startNodeAtNode(i);d.left=i,d.right=this.parseIdentifier(a),i=this.finishNode(d,"TSQualifiedName")}return i}tsParseTypeReference(){const a=this.startNode();return a.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSTypeReference")}tsParseThisTypePredicate(a){this.next();const i=this.startNodeAtNode(a);return i.parameterName=a,i.typeAnnotation=this.tsParseTypeAnnotation(!1),i.asserts=!1,this.finishNode(i,"TSTypePredicate")}tsParseThisTypeNode(){const a=this.startNode();return this.next(),this.finishNode(a,"TSThisType")}tsParseTypeQuery(){const a=this.startNode();return this.expect(87),this.match(83)?a.exprName=this.tsParseImportType():a.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSTypeQuery")}tsParseTypeParameter(a){const i=this.startNode();return a(i),i.name=this.tsParseTypeParameterName(),i.constraint=this.tsEatThenParseType(81),i.default=this.tsEatThenParseType(29),this.finishNode(i,"TSTypeParameter")}tsTryParseTypeParameters(a){if(this.match(47))return this.tsParseTypeParameters(a)}tsParseTypeParameters(a){const i=this.startNode();this.match(47)||this.match(142)?this.next():this.unexpected();const d={value:-1};return i.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,a),!1,!0,d),i.params.length===0&&this.raise(hr.EmptyTypeParameters,i),d.value!==-1&&this.addExtra(i,"trailingComma",d.value),this.finishNode(i,"TSTypeParameterDeclaration")}tsFillSignature(a,i){const d=a===19,p="parameters",y="typeAnnotation";i.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),i[p]=this.tsParseBindingListForSignature(),d?i[y]=this.tsParseTypeOrTypePredicateAnnotation(a):this.match(a)&&(i[y]=this.tsParseTypeOrTypePredicateAnnotation(a))}tsParseBindingListForSignature(){const a=super.parseBindingList(11,41,2);for(const i of a){const{type:d}=i;(d==="AssignmentPattern"||d==="TSParameterProperty")&&this.raise(hr.UnsupportedSignatureParameterKind,i,{type:d})}return a}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(a,i){return this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon(),this.finishNode(i,a)}tsIsUnambiguouslyIndexSignature(){return this.next(),Ta(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(a){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);const i=this.parseIdentifier();i.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(i),this.expect(3),a.parameters=[i];const d=this.tsTryParseTypeAnnotation();return d&&(a.typeAnnotation=d),this.tsParseTypeMemberSemicolon(),this.finishNode(a,"TSIndexSignature")}tsParsePropertyOrMethodSignature(a,i){this.eat(17)&&(a.optional=!0);const d=a;if(this.match(10)||this.match(47)){i&&this.raise(hr.ReadonlyForMethodSignature,a);const p=d;p.kind&&this.match(47)&&this.raise(hr.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,p),this.tsParseTypeMemberSemicolon();const y="parameters",b="typeAnnotation";if(p.kind==="get")p[y].length>0&&(this.raise(ze.BadGetterArity,this.state.curPosition()),this.isThisParam(p[y][0])&&this.raise(hr.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if(p.kind==="set"){if(p[y].length!==1)this.raise(ze.BadSetterArity,this.state.curPosition());else{const v=p[y][0];this.isThisParam(v)&&this.raise(hr.AccessorCannotDeclareThisParameter,this.state.curPosition()),v.type==="Identifier"&&v.optional&&this.raise(hr.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),v.type==="RestElement"&&this.raise(hr.SetAccessorCannotHaveRestParameter,this.state.curPosition())}p[b]&&this.raise(hr.SetAccessorCannotHaveReturnType,p[b])}else p.kind="method";return this.finishNode(p,"TSMethodSignature")}else{const p=d;i&&(p.readonly=!0);const y=this.tsTryParseTypeAnnotation();return y&&(p.typeAnnotation=y),this.tsParseTypeMemberSemicolon(),this.finishNode(p,"TSPropertySignature")}}tsParseTypeMember(){const a=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",a);if(this.match(77)){const d=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",a):(a.key=this.createIdentifier(d,"new"),this.tsParsePropertyOrMethodSignature(a,!1))}this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},a);const i=this.tsTryParseIndexSignature(a);return i||(super.parsePropertyName(a),!a.computed&&a.key.type==="Identifier"&&(a.key.name==="get"||a.key.name==="set")&&this.tsTokenCanFollowModifier()&&(a.kind=a.key.name,super.parsePropertyName(a)),this.tsParsePropertyOrMethodSignature(a,!!a.readonly))}tsParseTypeLiteral(){const a=this.startNode();return a.members=this.tsParseObjectTypeMembers(),this.finishNode(a,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);const a=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),a}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedType(){const a=this.startNode();this.expect(5),this.match(53)?(a.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(a.readonly=!0),this.expect(0);{const i=this.startNode();i.name=this.tsParseTypeParameterName(),i.constraint=this.tsExpectThenParseType(58),a.typeParameter=this.finishNode(i,"TSTypeParameter")}return a.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(a.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(a.optional=!0),a.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(a,"TSMappedType")}tsParseTupleType(){const a=this.startNode();a.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let i=!1;return a.elementTypes.forEach(d=>{const{type:p}=d;i&&p!=="TSRestType"&&p!=="TSOptionalType"&&!(p==="TSNamedTupleMember"&&d.optional)&&this.raise(hr.OptionalTypeBeforeRequired,d),i||(i=p==="TSNamedTupleMember"&&d.optional||p==="TSOptionalType")}),this.finishNode(a,"TSTupleType")}tsParseTupleElementType(){const{startLoc:a}=this.state,i=this.eat(21);let d,p,y,b;const E=Hi(this.state.type)?this.lookaheadCharCode():null;if(E===58)d=!0,y=!1,p=this.parseIdentifier(!0),this.expect(14),b=this.tsParseType();else if(E===63){y=!0;const S=this.state.startLoc,A=this.state.value,_=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(d=!0,p=this.createIdentifier(this.startNodeAt(S),A),this.expect(17),this.expect(14),b=this.tsParseType()):(d=!1,b=_,this.expect(17))}else b=this.tsParseType(),y=this.eat(17),d=this.eat(14);if(d){let S;p?(S=this.startNodeAtNode(p),S.optional=y,S.label=p,S.elementType=b,this.eat(17)&&(S.optional=!0,this.raise(hr.TupleOptionalAfterType,this.state.lastTokStartLoc))):(S=this.startNodeAtNode(b),S.optional=y,this.raise(hr.InvalidTupleMemberLabel,b),S.label=b,S.elementType=this.tsParseType()),b=this.finishNode(S,"TSNamedTupleMember")}else if(y){const S=this.startNodeAtNode(b);S.typeAnnotation=b,b=this.finishNode(S,"TSOptionalType")}if(i){const S=this.startNodeAt(a);S.typeAnnotation=b,b=this.finishNode(S,"TSRestType")}return b}tsParseParenthesizedType(){const a=this.startNode();return this.expect(10),a.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(a,"TSParenthesizedType")}tsParseFunctionOrConstructorType(a,i){const d=this.startNode();return a==="TSConstructorType"&&(d.abstract=!!i,i&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,d)),this.finishNode(d,a)}tsParseLiteralTypeNode(){const a=this.startNode();switch(this.state.type){case 134:case 135:case 133:case 85:case 86:a.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(a,"TSLiteralType")}tsParseTemplateLiteralType(){const a=this.startNode();return a.literal=super.parseTemplate(!1),this.finishNode(a,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){const a=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(a):a}tsParseNonArrayType(){switch(this.state.type){case 133:case 134:case 135:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){const a=this.startNode(),i=this.lookahead();return i.type!==134&&i.type!==135&&this.unexpected(),a.literal=this.parseMaybeUnary(),this.finishNode(a,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{const{type:a}=this.state;if(Ta(a)||a===88||a===84){const i=a===88?"TSVoidKeyword":a===84?"TSNullKeyword":k0t(this.state.value);if(i!==void 0&&this.lookaheadCharCode()!==46){const d=this.startNode();return this.next(),this.finishNode(d,i)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let a=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){const i=this.startNodeAtNode(a);i.elementType=a,this.expect(3),a=this.finishNode(i,"TSArrayType")}else{const i=this.startNodeAtNode(a);i.objectType=a,i.indexType=this.tsParseType(),this.expect(3),a=this.finishNode(i,"TSIndexedAccessType")}return a}tsParseTypeOperator(){const a=this.startNode(),i=this.state.value;return this.next(),a.operator=i,a.typeAnnotation=this.tsParseTypeOperatorOrHigher(),i==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(a),this.finishNode(a,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(a){switch(a.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(hr.UnexpectedReadonly,a)}}tsParseInferType(){const a=this.startNode();this.expectContextual(115);const i=this.startNode();return i.name=this.tsParseTypeParameterName(),i.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),a.typeParameter=this.finishNode(i,"TSTypeParameter"),this.finishNode(a,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){const a=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return a}}tsParseTypeOperatorOrHigher(){return F1t(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(a,i,d){const p=this.startNode(),y=this.eat(d),b=[];do b.push(i());while(this.eat(d));return b.length===1&&!y?b[0]:(p.types=b,this.finishNode(p,a))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(Ta(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){const{errors:a}=this.state,i=a.length;try{return this.parseObjectLike(8,!0),a.length===i}catch{return!1}}if(this.match(0)){this.next();const{errors:a}=this.state,i=a.length;try{return super.parseBindingList(3,93,1),a.length===i}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(a){return this.tsInType(()=>{const i=this.startNode();this.expect(a);const d=this.startNode(),p=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(p&&this.match(78)){let v=this.tsParseThisTypeOrThisTypePredicate();return v.type==="TSThisType"?(d.parameterName=v,d.asserts=!0,d.typeAnnotation=null,v=this.finishNode(d,"TSTypePredicate")):(this.resetStartLocationFromNode(v,d),v.asserts=!0),i.typeAnnotation=v,this.finishNode(i,"TSTypeAnnotation")}const y=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!y)return p?(d.parameterName=this.parseIdentifier(),d.asserts=p,d.typeAnnotation=null,i.typeAnnotation=this.finishNode(d,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,i);const b=this.tsParseTypeAnnotation(!1);return d.parameterName=y,d.typeAnnotation=b,d.asserts=p,i.typeAnnotation=this.finishNode(d,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){const a=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),a}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;const a=this.state.containsEsc;return this.next(),!Ta(this.state.type)&&!this.match(78)?!1:(a&&this.raise(ze.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(a=!0,i=this.startNode()){return this.tsInType(()=>{a&&this.expect(14),i.typeAnnotation=this.tsParseType()}),this.finishNode(i,"TSTypeAnnotation")}tsParseType(){afe(this.state.inType);const a=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return a;const i=this.startNodeAtNode(a);return i.checkType=a,i.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),i.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),i.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(i,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(hr.ReservedTypeAssertion,this.state.startLoc);const a=this.startNode();return a.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),a.expression=this.parseMaybeUnary(),this.finishNode(a,"TSTypeAssertion")}tsParseHeritageClause(a){const i=this.state.startLoc,d=this.tsParseDelimitedList("HeritageClauseElement",()=>{const p=this.startNode();return p.expression=this.tsParseEntityName(),this.match(47)&&(p.typeParameters=this.tsParseTypeArguments()),this.finishNode(p,"TSExpressionWithTypeArguments")});return d.length||this.raise(hr.EmptyHeritageClauseType,i,{token:a}),d}tsParseInterfaceDeclaration(a,i={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),i.declare&&(a.declare=!0),Ta(this.state.type)?(a.id=this.parseIdentifier(),this.checkIdentifier(a.id,130)):(a.id=null,this.raise(hr.MissingInterfaceName,this.state.startLoc)),a.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(a.extends=this.tsParseHeritageClause("extends"));const d=this.startNode();return d.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),a.body=this.finishNode(d,"TSInterfaceBody"),this.finishNode(a,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(a){return a.id=this.parseIdentifier(),this.checkIdentifier(a.id,2),a.typeAnnotation=this.tsInType(()=>{if(a.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){const i=this.startNode();return this.next(),this.finishNode(i,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(a,"TSTypeAliasDeclaration")}tsInNoContext(a){const i=this.state.context;this.state.context=[i[0]];try{return a()}finally{this.state.context=i}}tsInType(a){const i=this.state.inType;this.state.inType=!0;try{return a()}finally{this.state.inType=i}}tsInDisallowConditionalTypesContext(a){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return a()}finally{this.state.inDisallowConditionalTypesContext=i}}tsInAllowConditionalTypesContext(a){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return a()}finally{this.state.inDisallowConditionalTypesContext=i}}tsEatThenParseType(a){if(this.match(a))return this.tsNextThenParseType()}tsExpectThenParseType(a){return this.tsInType(()=>(this.expect(a),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){const a=this.startNode();return a.id=this.match(133)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(a.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(a,"TSEnumMember")}tsParseEnumDeclaration(a,i={}){return i.const&&(a.const=!0),i.declare&&(a.declare=!0),this.expectContextual(126),a.id=this.parseIdentifier(),this.checkIdentifier(a.id,a.const?8971:8459),this.expect(5),a.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(a,"TSEnumDeclaration")}tsParseModuleBlock(){const a=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(a.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(a,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(a,i=!1){if(a.id=this.parseIdentifier(),i||this.checkIdentifier(a.id,1024),this.eat(16)){const d=this.startNode();this.tsParseModuleOrNamespaceDeclaration(d,!0),a.body=d}else this.scope.enter(256),this.prodParam.enter(0),a.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(a,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(a){return this.isContextual(112)?(a.global=!0,a.id=this.parseIdentifier()):this.match(133)?a.id=super.parseStringLiteral(this.state.value):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),a.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(a,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(a,i,d){a.isExport=d||!1,a.id=i||this.parseIdentifier(),this.checkIdentifier(a.id,4096),this.expect(29);const p=this.tsParseModuleReference();return a.importKind==="type"&&p.type!=="TSExternalModuleReference"&&this.raise(hr.ImportAliasHasImportType,p),a.moduleReference=p,this.semicolon(),this.finishNode(a,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){const a=this.startNode();return this.expectContextual(119),this.expect(10),this.match(133)||this.unexpected(),a.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(a,"TSExternalModuleReference")}tsLookAhead(a){const i=this.state.clone(),d=a();return this.state=i,d}tsTryParseAndCatch(a){const i=this.tryParse(d=>a()||d());if(!(i.aborted||!i.node))return i.error&&(this.state=i.failState),i.node}tsTryParse(a){const i=this.state.clone(),d=a();if(d!==void 0&&d!==!1)return d;this.state=i}tsTryParseDeclare(a){if(this.isLineTerminator())return;let i=this.state.type,d;return this.isContextual(100)&&(i=74,d="let"),this.tsInAmbientContext(()=>{switch(i){case 68:return a.declare=!0,super.parseFunctionStatement(a,!1,!1);case 80:return a.declare=!0,this.parseClass(a,!0,!1);case 126:return this.tsParseEnumDeclaration(a,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(a);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual("enum")?(a.declare=!0,this.parseVarStatement(a,d||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(a,{const:!0,declare:!0}));case 129:{const p=this.tsParseInterfaceDeclaration(a,{declare:!0});if(p)return p}default:if(Ta(i))return this.tsParseDeclaration(a,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(a,i,d){switch(i.name){case"declare":{const p=this.tsTryParseDeclare(a);return p&&(p.declare=!0),p}case"global":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);const p=a;return p.global=!0,p.id=i,p.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(p,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(a,i.name,!1,d)}}tsParseDeclaration(a,i,d,p){switch(i){case"abstract":if(this.tsCheckLineTerminator(d)&&(this.match(80)||Ta(this.state.type)))return this.tsParseAbstractDeclaration(a,p);break;case"module":if(this.tsCheckLineTerminator(d)){if(this.match(133))return this.tsParseAmbientExternalModuleDeclaration(a);if(Ta(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(a)}break;case"namespace":if(this.tsCheckLineTerminator(d)&&Ta(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(a);break;case"type":if(this.tsCheckLineTerminator(d)&&Ta(this.state.type))return this.tsParseTypeAliasDeclaration(a);break}}tsCheckLineTerminator(a){return a?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(a){if(!this.match(47))return;const i=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;const d=this.tsTryParseAndCatch(()=>{const p=this.startNodeAt(a);return p.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(p),p.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),p});if(this.state.maybeInArrowParameters=i,!!d)return super.parseArrowExpression(d,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){const a=this.startNode();return a.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),a.params.length===0?this.raise(hr.EmptyTypeArguments,a):!this.state.inType&&this.curContext()===La.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(a,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return $1t(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(a,i){const d=this.state.startLoc,p={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},p);const y=p.accessibility,b=p.override,v=p.readonly;!(a&4)&&(y||v||b)&&this.raise(hr.UnexpectedParameterModifier,d);const E=this.parseMaybeDefault();this.parseAssignableListItemTypes(E,a);const S=this.parseMaybeDefault(E.loc.start,E);if(y||v||b){const A=this.startNodeAt(d);return i.length&&(A.decorators=i),y&&(A.accessibility=y),v&&(A.readonly=v),b&&(A.override=b),S.type!=="Identifier"&&S.type!=="AssignmentPattern"&&this.raise(hr.UnsupportedParameterPropertyKind,A),A.parameter=S,this.finishNode(A,"TSParameterProperty")}return i.length&&(E.decorators=i),S}isSimpleParameter(a){return a.type==="TSParameterProperty"&&super.isSimpleParameter(a.parameter)||super.isSimpleParameter(a)}tsDisallowOptionalPattern(a){for(const i of a.params)i.type!=="Identifier"&&i.optional&&!this.state.isAmbientContext&&this.raise(hr.PatternIsOptional,i)}setArrowFunctionParameters(a,i,d){super.setArrowFunctionParameters(a,i,d),this.tsDisallowOptionalPattern(a)}parseFunctionBodyAndFinish(a,i,d=!1){this.match(14)&&(a.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));const p=i==="FunctionDeclaration"?"TSDeclareFunction":i==="ClassMethod"||i==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return p&&!this.match(5)&&this.isLineTerminator()?this.finishNode(a,p):p==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(hr.DeclareFunctionHasImplementation,a),a.declare)?super.parseFunctionBodyAndFinish(a,p,d):(this.tsDisallowOptionalPattern(a),super.parseFunctionBodyAndFinish(a,i,d))}registerFunctionStatementId(a){!a.body&&a.id?this.checkIdentifier(a.id,1024):super.registerFunctionStatementId(a)}tsCheckForInvalidTypeCasts(a){a.forEach(i=>{(i==null?void 0:i.type)==="TSTypeCastExpression"&&this.raise(hr.UnexpectedTypeAnnotation,i.typeAnnotation)})}toReferencedList(a,i){return this.tsCheckForInvalidTypeCasts(a),a}parseArrayLike(a,i,d,p){const y=super.parseArrayLike(a,i,d,p);return y.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(y.elements),y}parseSubscript(a,i,d,p){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();const b=this.startNodeAt(i);return b.expression=a,this.finishNode(b,"TSNonNullExpression")}let y=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(d)return p.stop=!0,a;p.optionalChainMember=y=!0,this.next()}if(this.match(47)||this.match(51)){let b;const v=this.tsTryParseAndCatch(()=>{if(!d&&this.atPossibleAsyncArrow(a)){const _=this.tsTryParseGenericAsyncArrowFunction(i);if(_)return _}const E=this.tsParseTypeArgumentsInExpression();if(!E)return;if(y&&!this.match(10)){b=this.state.curPosition();return}if(C2(this.state.type)){const _=super.parseTaggedTemplateExpression(a,i,p);return _.typeParameters=E,_}if(!d&&this.eat(10)){const _=this.startNodeAt(i);return _.callee=a,_.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(_.arguments),_.typeParameters=E,p.optionalChainMember&&(_.optional=y),this.finishCallExpression(_,p.optionalChainMember)}const S=this.state.type;if(S===48||S===52||S!==10&&xk(S)&&!this.hasPrecedingLineBreak())return;const A=this.startNodeAt(i);return A.expression=a,A.typeParameters=E,this.finishNode(A,"TSInstantiationExpression")});if(b&&this.unexpected(b,10),v)return v.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(hr.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),v}return super.parseSubscript(a,i,d,p)}parseNewCallee(a){var i;super.parseNewCallee(a);const{callee:d}=a;d.type==="TSInstantiationExpression"&&!((i=d.extra)!=null&&i.parenthesized)&&(a.typeParameters=d.typeParameters,a.callee=d.expression)}parseExprOp(a,i,d){let p;if(i2(58)>d&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(p=this.isContextual(120)))){const y=this.startNodeAt(i);return y.expression=a,y.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(p&&this.raise(ze.UnexpectedKeyword,this.state.startLoc,{keyword:"const"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(y,p?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(y,i,d)}return super.parseExprOp(a,i,d)}checkReservedWord(a,i,d,p){this.state.isAmbientContext||super.checkReservedWord(a,i,d,p)}checkImportReflection(a){super.checkImportReflection(a),a.module&&a.importKind!=="value"&&this.raise(hr.ImportReflectionHasImportType,a.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(a){if(super.isPotentialImportPhase(a))return!0;if(this.isContextual(130)){const i=this.lookaheadCharCode();return a?i===123||i===42:i!==61}return!a&&this.isContextual(87)}applyImportPhase(a,i,d,p){super.applyImportPhase(a,i,d,p),i?a.exportKind=d==="type"?"type":"value":a.importKind=d==="type"||d==="typeof"?d:"value"}parseImport(a){if(this.match(133))return a.importKind="value",super.parseImport(a);let i;if(Ta(this.state.type)&&this.lookaheadCharCode()===61)return a.importKind="value",this.tsParseImportEqualsDeclaration(a);if(this.isContextual(130)){const d=this.parseMaybeImportPhase(a,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(a,d);i=super.parseImportSpecifiersAndAfter(a,d)}else i=super.parseImport(a);return i.importKind==="type"&&i.specifiers.length>1&&i.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(hr.TypeImportCannotSpecifyDefaultAndNamed,i),i}parseExport(a,i){if(this.match(83)){this.next();const d=a;let p=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?p=this.parseMaybeImportPhase(d,!1):d.importKind="value",this.tsParseImportEqualsDeclaration(d,p,!0)}else if(this.eat(29)){const d=a;return d.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(d,"TSExportAssignment")}else if(this.eatContextual(93)){const d=a;return this.expectContextual(128),d.id=this.parseIdentifier(),this.semicolon(),this.finishNode(d,"TSNamespaceExportDeclaration")}else return super.parseExport(a,i)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){const a=this.startNode();return this.next(),a.abstract=!0,this.parseClass(a,!0,!0)}if(this.match(129)){const a=this.tsParseInterfaceDeclaration(this.startNode());if(a)return a}return super.parseExportDefaultExpression()}parseVarStatement(a,i,d=!1){const{isAmbientContext:p}=this.state,y=super.parseVarStatement(a,i,d||p);if(!p)return y;for(const{id:b,init:v}of y.declarations)v&&(i!=="const"||b.typeAnnotation?this.raise(hr.InitializerNotAllowedInAmbientContext,v):B0t(v,this.hasPlugin("estree"))||this.raise(hr.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,v));return y}parseStatementContent(a,i){if(this.match(75)&&this.isLookaheadContextual("enum")){const d=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(d,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){const d=this.tsParseInterfaceDeclaration(this.startNode());if(d)return d}return super.parseStatementContent(a,i)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(a,i){return i.some(d=>nfe(d)?a.accessibility===d:!!a[d])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(a,i,d){const p=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:p,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:hr.InvalidModifierOnTypeParameterPositions},i);const y=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(i,p)&&this.raise(hr.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(a,i)):this.parseClassMemberWithIsStatic(a,i,d,!!i.static)};i.declare?this.tsInAmbientContext(y):y()}parseClassMemberWithIsStatic(a,i,d,p){const y=this.tsTryParseIndexSignature(i);if(y){a.body.push(y),i.abstract&&this.raise(hr.IndexSignatureHasAbstract,i),i.accessibility&&this.raise(hr.IndexSignatureHasAccessibility,i,{modifier:i.accessibility}),i.declare&&this.raise(hr.IndexSignatureHasDeclare,i),i.override&&this.raise(hr.IndexSignatureHasOverride,i);return}!this.state.inAbstractClass&&i.abstract&&this.raise(hr.NonAbstractClassHasAbstractMethod,i),i.override&&(d.hadSuperClass||this.raise(hr.OverrideNotInSubClass,i)),super.parseClassMemberWithIsStatic(a,i,d,p)}parsePostMemberNameModifiers(a){this.eat(17)&&(a.optional=!0),a.readonly&&this.match(10)&&this.raise(hr.ClassMethodHasReadonly,a),a.declare&&this.match(10)&&this.raise(hr.ClassMethodHasDeclare,a)}parseExpressionStatement(a,i,d){return(i.type==="Identifier"?this.tsParseExpressionStatement(a,i,d):void 0)||super.parseExpressionStatement(a,i,d)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(a,i,d){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(a,i,d);const p=this.tryParse(()=>super.parseConditional(a,i));return p.node?(p.error&&(this.state=p.failState),p.node):(p.error&&super.setOptionalParametersError(d,p.error),a)}parseParenItem(a,i){const d=super.parseParenItem(a,i);if(this.eat(17)&&(d.optional=!0,this.resetEndLocation(a)),this.match(14)){const p=this.startNodeAt(i);return p.expression=a,p.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(p,"TSTypeCastExpression")}return a}parseExportDeclaration(a){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(a));const i=this.state.startLoc,d=this.eatContextual(125);if(d&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(hr.ExpectedAmbientAfterExportDeclare,this.state.startLoc);const y=Ta(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(a);return y?((y.type==="TSInterfaceDeclaration"||y.type==="TSTypeAliasDeclaration"||d)&&(a.exportKind="type"),d&&(this.resetStartLocation(y,i),y.declare=!0),y):null}parseClassId(a,i,d,p){if((!i||d)&&this.isContextual(113))return;super.parseClassId(a,i,d,a.declare?1024:8331);const y=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);y&&(a.typeParameters=y)}parseClassPropertyAnnotation(a){a.optional||(this.eat(35)?a.definite=!0:this.eat(17)&&(a.optional=!0));const i=this.tsTryParseTypeAnnotation();i&&(a.typeAnnotation=i)}parseClassProperty(a){if(this.parseClassPropertyAnnotation(a),this.state.isAmbientContext&&!(a.readonly&&!a.typeAnnotation)&&this.match(29)&&this.raise(hr.DeclareClassFieldHasInitializer,this.state.startLoc),a.abstract&&this.match(29)){const{key:i}=a;this.raise(hr.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:i.type==="Identifier"&&!a.computed?i.name:`[${this.input.slice(i.start,i.end)}]`})}return super.parseClassProperty(a)}parseClassPrivateProperty(a){return a.abstract&&this.raise(hr.PrivateElementHasAbstract,a),a.accessibility&&this.raise(hr.PrivateElementHasAccessibility,a,{modifier:a.accessibility}),this.parseClassPropertyAnnotation(a),super.parseClassPrivateProperty(a)}parseClassAccessorProperty(a){return this.parseClassPropertyAnnotation(a),a.optional&&this.raise(hr.AccessorCannotBeOptional,a),super.parseClassAccessorProperty(a)}pushClassMethod(a,i,d,p,y,b){const v=this.tsTryParseTypeParameters(this.tsParseConstModifier);v&&y&&this.raise(hr.ConstructorHasTypeParameters,v);const{declare:E=!1,kind:S}=i;E&&(S==="get"||S==="set")&&this.raise(hr.DeclareAccessor,i,{kind:S}),v&&(i.typeParameters=v),super.pushClassMethod(a,i,d,p,y,b)}pushClassPrivateMethod(a,i,d,p){const y=this.tsTryParseTypeParameters(this.tsParseConstModifier);y&&(i.typeParameters=y),super.pushClassPrivateMethod(a,i,d,p)}declareClassPrivateMethodInScope(a,i){a.type!=="TSDeclareMethod"&&(a.type==="MethodDefinition"&&!hasOwnProperty.call(a.value,"body")||super.declareClassPrivateMethodInScope(a,i))}parseClassSuper(a){super.parseClassSuper(a),a.superClass&&(this.match(47)||this.match(51))&&(a.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(a.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(a,i,d,p,y,b,v){const E=this.tsTryParseTypeParameters(this.tsParseConstModifier);return E&&(a.typeParameters=E),super.parseObjPropValue(a,i,d,p,y,b,v)}parseFunctionParams(a,i){const d=this.tsTryParseTypeParameters(this.tsParseConstModifier);d&&(a.typeParameters=d),super.parseFunctionParams(a,i)}parseVarId(a,i){super.parseVarId(a,i),a.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(a.definite=!0);const d=this.tsTryParseTypeAnnotation();d&&(a.id.typeAnnotation=d,this.resetEndLocation(a.id))}parseAsyncArrowFromCallExpression(a,i){return this.match(14)&&(a.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(a,i)}parseMaybeAssign(a,i){var d,p,y,b,v;let E,S,A;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(E=this.state.clone(),S=this.tryParse(()=>super.parseMaybeAssign(a,i),E),!S.error)return S.node;const{context:q}=this.state,M=q[q.length-1];(M===La.j_oTag||M===La.j_expr)&&q.pop()}if(!((d=S)!=null&&d.error)&&!this.match(47))return super.parseMaybeAssign(a,i);(!E||E===this.state)&&(E=this.state.clone());let _;const C=this.tryParse(q=>{var M,W;_=this.tsParseTypeParameters(this.tsParseConstModifier);const z=super.parseMaybeAssign(a,i);return(z.type!=="ArrowFunctionExpression"||(M=z.extra)!=null&&M.parenthesized)&&q(),((W=_)==null?void 0:W.params.length)!==0&&this.resetStartLocationFromNode(z,_),z.typeParameters=_,z},E);if(!C.error&&!C.aborted)return _&&this.reportReservedArrowTypeParam(_),C.node;if(!S&&(afe(!this.hasPlugin("jsx")),A=this.tryParse(()=>super.parseMaybeAssign(a,i),E),!A.error))return A.node;if((p=S)!=null&&p.node)return this.state=S.failState,S.node;if(C.node)return this.state=C.failState,_&&this.reportReservedArrowTypeParam(_),C.node;if((y=A)!=null&&y.node)return this.state=A.failState,A.node;throw((b=S)==null?void 0:b.error)||C.error||((v=A)==null?void 0:v.error)}reportReservedArrowTypeParam(a){var i;a.params.length===1&&!a.params[0].constraint&&!((i=a.extra)!=null&&i.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(hr.ReservedArrowTypeParam,a)}parseMaybeUnary(a,i){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(a,i)}parseArrow(a){if(this.match(14)){const i=this.tryParse(d=>{const p=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&d(),p});if(i.aborted)return;i.thrown||(i.error&&(this.state=i.failState),a.returnType=i.node)}return super.parseArrow(a)}parseAssignableListItemTypes(a,i){if(!(i&2))return a;this.eat(17)&&(a.optional=!0);const d=this.tsTryParseTypeAnnotation();return d&&(a.typeAnnotation=d),this.resetEndLocation(a),a}isAssignable(a,i){switch(a.type){case"TSTypeCastExpression":return this.isAssignable(a.expression,i);case"TSParameterProperty":return!0;default:return super.isAssignable(a,i)}}toAssignable(a,i=!1){switch(a.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(a,i);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":i?this.expressionScope.recordArrowParameterBindingError(hr.UnexpectedTypeCastInParameter,a):this.raise(hr.UnexpectedTypeCastInParameter,a),this.toAssignable(a.expression,i);break;case"AssignmentExpression":!i&&a.left.type==="TSTypeCastExpression"&&(a.left=this.typeCastToParameter(a.left));default:super.toAssignable(a,i)}}toAssignableParenthesizedExpression(a,i){switch(a.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(a.expression,i);break;default:super.toAssignable(a,i)}}checkToRestConversion(a,i){switch(a.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(a.expression,!1);break;default:super.checkToRestConversion(a,i)}}isValidLVal(a,i,d){switch(a){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(d!==64||!i)&&["expression",!0];default:return super.isValidLVal(a,i,d)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(a){if(this.match(47)||this.match(51)){const i=this.tsParseTypeArgumentsInExpression();if(this.match(10)){const d=super.parseMaybeDecoratorArguments(a);return d.typeParameters=i,d}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(a)}checkCommaAfterRest(a){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===a?(this.next(),!1):super.checkCommaAfterRest(a)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(a,i){const d=super.parseMaybeDefault(a,i);return d.type==="AssignmentPattern"&&d.typeAnnotation&&d.right.start<d.typeAnnotation.start&&this.raise(hr.TypeAnnotationAfterAssign,d.typeAnnotation),d}getTokenFromCode(a){if(this.state.inType){if(a===62){this.finishOp(48,1);return}if(a===60){this.finishOp(47,1);return}}super.getTokenFromCode(a)}reScan_lt_gt(){const{type:a}=this.state;a===47?(this.state.pos-=1,this.readToken_lt()):a===48&&(this.state.pos-=1,this.readToken_gt())}reScan_lt(){const{type:a}=this.state;return a===51?(this.state.pos-=2,this.finishOp(47,1),47):a}toAssignableList(a,i,d){for(let p=0;p<a.length;p++){const y=a[p];(y==null?void 0:y.type)==="TSTypeCastExpression"&&(a[p]=this.typeCastToParameter(y))}super.toAssignableList(a,i,d)}typeCastToParameter(a){return a.expression.typeAnnotation=a.typeAnnotation,this.resetEndLocation(a.expression,a.typeAnnotation.loc.end),a.expression}shouldParseArrow(a){return this.match(14)?a.every(i=>this.isAssignable(i,!0)):super.shouldParseArrow(a)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(a){if(this.match(47)||this.match(51)){const i=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());i&&(a.typeParameters=i)}return super.jsxParseOpeningElementAfterName(a)}getGetterSetterExpectedParamCount(a){const i=super.getGetterSetterExpectedParamCount(a),p=this.getObjectOrClassMethodParams(a)[0];return p&&this.isThisParam(p)?i+1:i}parseCatchClauseParam(){const a=super.parseCatchClauseParam(),i=this.tsTryParseTypeAnnotation();return i&&(a.typeAnnotation=i,this.resetEndLocation(a)),a}tsInAmbientContext(a){const{isAmbientContext:i,strict:d}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return a()}finally{this.state.isAmbientContext=i,this.state.strict=d}}parseClass(a,i,d){const p=this.state.inAbstractClass;this.state.inAbstractClass=!!a.abstract;try{return super.parseClass(a,i,d)}finally{this.state.inAbstractClass=p}}tsParseAbstractDeclaration(a,i){if(this.match(80))return a.abstract=!0,this.maybeTakeDecorators(i,this.parseClass(a,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return a.abstract=!0,this.raise(hr.NonClassMethodPropertyHasAbstractModifer,a),this.tsParseInterfaceDeclaration(a)}else this.unexpected(null,80)}parseMethod(a,i,d,p,y,b,v){const E=super.parseMethod(a,i,d,p,y,b,v);if(E.abstract&&(this.hasPlugin("estree")?!!E.value.body:!!E.body)){const{key:A}=E;this.raise(hr.AbstractMethodHasImplementation,E,{methodName:A.type==="Identifier"&&!E.computed?A.name:`[${this.input.slice(A.start,A.end)}]`})}return E}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(a,i,d,p){return!i&&p?(this.parseTypeOnlyImportExportSpecifier(a,!1,d),this.finishNode(a,"ExportSpecifier")):(a.exportKind="value",super.parseExportSpecifier(a,i,d,p))}parseImportSpecifier(a,i,d,p,y){return!i&&p?(this.parseTypeOnlyImportExportSpecifier(a,!0,d),this.finishNode(a,"ImportSpecifier")):(a.importKind="value",super.parseImportSpecifier(a,i,d,p,d?4098:4096))}parseTypeOnlyImportExportSpecifier(a,i,d){const p=i?"imported":"local",y=i?"local":"exported";let b=a[p],v,E=!1,S=!0;const A=b.loc.start;if(this.isContextual(93)){const C=this.parseIdentifier();if(this.isContextual(93)){const q=this.parseIdentifier();Hi(this.state.type)?(E=!0,b=C,v=i?this.parseIdentifier():this.parseModuleExportName(),S=!1):(v=q,S=!1)}else Hi(this.state.type)?(S=!1,v=i?this.parseIdentifier():this.parseModuleExportName()):(E=!0,b=C)}else Hi(this.state.type)&&(E=!0,i?(b=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(b.name,b.loc.start,!0,!0)):b=this.parseModuleExportName());E&&d&&this.raise(i?hr.TypeModifierIsUsedInTypeImports:hr.TypeModifierIsUsedInTypeExports,A),a[p]=b,a[y]=v;const _=i?"importKind":"exportKind";a[_]=E?"type":"value",S&&this.eatContextual(93)&&(a[y]=i?this.parseIdentifier():this.parseModuleExportName()),a[y]||(a[y]=Rl(a[p])),i&&this.checkIdentifier(a[y],E?4098:4096)}};function M0t(n){if(n.type!=="MemberExpression")return!1;const{computed:t,property:a}=n;return t&&a.type!=="StringLiteral"&&(a.type!=="TemplateLiteral"||a.expressions.length>0)?!1:Qye(n.object)}function B0t(n,t){var a;const{type:i}=n;if((a=n.extra)!=null&&a.parenthesized)return!1;if(t){if(i==="Literal"){const{value:d}=n;if(typeof d=="string"||typeof d=="boolean")return!0}}else if(i==="StringLiteral"||i==="BooleanLiteral")return!0;return!!(Yye(n,t)||F0t(n,t)||i==="TemplateLiteral"&&n.expressions.length===0||M0t(n))}function Yye(n,t){return t?n.type==="Literal"&&(typeof n.value=="number"||"bigint"in n):n.type==="NumericLiteral"||n.type==="BigIntLiteral"}function F0t(n,t){if(n.type==="UnaryExpression"){const{operator:a,argument:i}=n;if(a==="-"&&Yye(i,t))return!0}return!1}function Qye(n){return n.type==="Identifier"?!0:n.type!=="MemberExpression"||n.computed?!1:Qye(n.object)}const sfe=ml`placeholders`({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."});var $0t=n=>class extends n{parsePlaceholder(a){if(this.match(144)){const i=this.startNode();return this.next(),this.assertNoSpace(),i.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(144),this.finishPlaceholder(i,a)}}finishPlaceholder(a,i){let d=a;return(!d.expectedNode||!d.type)&&(d=this.finishNode(d,"Placeholder")),d.expectedNode=i,d}getTokenFromCode(a){a===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(144,2):super.getTokenFromCode(a)}parseExprAtom(a){return this.parsePlaceholder("Expression")||super.parseExprAtom(a)}parseIdentifier(a){return this.parsePlaceholder("Identifier")||super.parseIdentifier(a)}checkReservedWord(a,i,d,p){a!==void 0&&super.checkReservedWord(a,i,d,p)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom()}isValidLVal(a,i,d){return a==="Placeholder"||super.isValidLVal(a,i,d)}toAssignable(a,i){a&&a.type==="Placeholder"&&a.expectedNode==="Expression"?a.expectedNode="Pattern":super.toAssignable(a,i)}chStartsBindingIdentifier(a,i){return!!(super.chStartsBindingIdentifier(a,i)||this.lookahead().type===144)}verifyBreakContinue(a,i){a.label&&a.label.type==="Placeholder"||super.verifyBreakContinue(a,i)}parseExpressionStatement(a,i){var d;if(i.type!=="Placeholder"||(d=i.extra)!=null&&d.parenthesized)return super.parseExpressionStatement(a,i);if(this.match(14)){const y=a;return y.label=this.finishPlaceholder(i,"Identifier"),this.next(),y.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(y,"LabeledStatement")}this.semicolon();const p=a;return p.name=i.name,this.finishPlaceholder(p,"Statement")}parseBlock(a,i,d){return this.parsePlaceholder("BlockStatement")||super.parseBlock(a,i,d)}parseFunctionId(a){return this.parsePlaceholder("Identifier")||super.parseFunctionId(a)}parseClass(a,i,d){const p=i?"ClassDeclaration":"ClassExpression";this.next();const y=this.state.strict,b=this.parsePlaceholder("Identifier");if(b)if(this.match(81)||this.match(144)||this.match(5))a.id=b;else{if(d||!i)return a.id=null,a.body=this.finishPlaceholder(b,"ClassBody"),this.finishNode(a,p);throw this.raise(sfe.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(a,i,d);return super.parseClassSuper(a),a.body=this.parsePlaceholder("ClassBody")||super.parseClassBody(!!a.superClass,y),this.finishNode(a,p)}parseExport(a,i){const d=this.parsePlaceholder("Identifier");if(!d)return super.parseExport(a,i);const p=a;if(!this.isContextual(98)&&!this.match(12))return p.specifiers=[],p.source=null,p.declaration=this.finishPlaceholder(d,"Declaration"),this.finishNode(p,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");const y=this.startNode();return y.exported=d,p.specifiers=[this.finishNode(y,"ExportDefaultSpecifier")],super.parseExport(p,i)}isExportDefaultSpecifier(){if(this.match(65)){const a=this.nextTokenStart();if(this.isUnparsedContextual(a,"from")&&this.input.startsWith(Pu(144),this.nextTokenStartSince(a+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(a,i){var d;return(d=a.specifiers)!=null&&d.length?!0:super.maybeParseExportDefaultSpecifier(a,i)}checkExport(a){const{specifiers:i}=a;i!=null&&i.length&&(a.specifiers=i.filter(d=>d.exported.type==="Placeholder")),super.checkExport(a),a.specifiers=i}parseImport(a){const i=this.parsePlaceholder("Identifier");if(!i)return super.parseImport(a);if(a.specifiers=[],!this.isContextual(98)&&!this.match(12))return a.source=this.finishPlaceholder(i,"StringLiteral"),this.semicolon(),this.finishNode(a,"ImportDeclaration");const d=this.startNodeAtNode(i);return d.local=i,a.specifiers.push(this.finishNode(d,"ImportDefaultSpecifier")),this.eat(12)&&(this.maybeParseStarImportSpecifier(a)||this.parseNamedImportSpecifiers(a)),this.expectContextual(98),a.source=this.parseImportSource(),this.semicolon(),this.finishNode(a,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource()}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(sfe.UnexpectedSpace,this.state.lastTokEndLoc)}},q0t=n=>class extends n{parseV8Intrinsic(){if(this.match(54)){const a=this.state.startLoc,i=this.startNode();if(this.next(),Ta(this.state.type)){const d=this.parseIdentifierName(),p=this.createIdentifier(i,d);if(p.type="V8IntrinsicIdentifier",this.match(10))return p}this.unexpected(a)}}parseExprAtom(a){return this.parseV8Intrinsic()||super.parseExprAtom(a)}};const ife=["minimal","fsharp","hack","smart"],ofe=["^^","@@","^","%","#"];function U0t(n){if(n.has("decorators")){if(n.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");const a=n.get("decorators").decoratorsBeforeExport;if(a!=null&&typeof a!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");const i=n.get("decorators").allowCallParenthesized;if(i!=null&&typeof i!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(n.has("flow")&&n.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(n.has("placeholders")&&n.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(n.has("pipelineOperator")){var t;const a=n.get("pipelineOperator").proposal;if(!ife.includes(a)){const d=ife.map(p=>`"${p}"`).join(", ");throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${d}.`)}const i=((t=n.get("recordAndTuple"))==null?void 0:t.syntaxType)==="hash";if(a==="hack"){if(n.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(n.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");const d=n.get("pipelineOperator").topicToken;if(!ofe.includes(d)){const p=ofe.map(y=>`"${y}"`).join(", ");throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${p}.`)}if(d==="#"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}else if(a==="smart"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}if(n.has("moduleAttributes")){if(n.has("importAttributes")||n.has("importAssertions"))throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");if(n.get("moduleAttributes").version!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(n.has("importAttributes")&&n.has("importAssertions"))throw new Error("Cannot combine importAssertions and importAttributes plugins.");if(n.has("recordAndTuple")){const a=n.get("recordAndTuple").syntaxType;if(a!=null){const i=["hash","bar"];if(!i.includes(a))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+i.map(d=>`'${d}'`).join(", "))}}if(n.has("asyncDoExpressions")&&!n.has("doExpressions")){const a=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw a.missingPlugins="doExpressions",a}if(n.has("optionalChainingAssign")&&n.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}const Zye={estree:C1t,jsx:C0t,flow:A0t,typescript:L0t,v8intrinsic:q0t,placeholders:$0t},V0t=Object.keys(Zye),tN={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0};function W0t(n){if(n==null)return Object.assign({},tN);if(n.annexB!=null&&n.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");const t={};for(const i of Object.keys(tN)){var a;t[i]=(a=n[i])!=null?a:tN[i]}return t}let G0t=class extends _0t{checkProto(t,a,i,d){if(t.type==="SpreadElement"||this.isObjectMethod(t)||t.computed||t.shorthand)return;const p=t.key;if((p.type==="Identifier"?p.name:p.value)==="__proto__"){if(a){this.raise(ze.RecordNoProto,p);return}i.used&&(d?d.doubleProtoLoc===null&&(d.doubleProtoLoc=p.loc.start):this.raise(ze.DuplicateProto,p)),i.used=!0}}shouldExitDescending(t,a){return t.type==="ArrowFunctionExpression"&&t.start===a}getExpression(){this.enterInitialScopes(),this.nextToken();const t=this.parseExpression();return this.match(139)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,a){return t?this.disallowInAnd(()=>this.parseExpressionBase(a)):this.allowInAnd(()=>this.parseExpressionBase(a))}parseExpressionBase(t){const a=this.state.startLoc,i=this.parseMaybeAssign(t);if(this.match(12)){const d=this.startNodeAt(a);for(d.expressions=[i];this.eat(12);)d.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(d.expressions),this.finishNode(d,"SequenceExpression")}return i}parseMaybeAssignDisallowIn(t,a){return this.disallowInAnd(()=>this.parseMaybeAssign(t,a))}parseMaybeAssignAllowIn(t,a){return this.allowInAnd(()=>this.parseMaybeAssign(t,a))}setOptionalParametersError(t,a){var i;t.optionalParametersLoc=(i=a==null?void 0:a.loc)!=null?i:this.state.startLoc}parseMaybeAssign(t,a){const i=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let b=this.parseYield();return a&&(b=a.call(this,b,i)),b}let d;t?d=!1:(t=new l2,d=!0);const{type:p}=this.state;(p===10||Ta(p))&&(this.state.potentialArrowAt=this.state.start);let y=this.parseMaybeConditional(t);if(a&&(y=a.call(this,y,i)),k1t(this.state.type)){const b=this.startNodeAt(i),v=this.state.value;if(b.operator=v,this.match(29)){this.toAssignable(y,!0),b.left=y;const E=i.index;t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=E&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=E&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=E&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)}else b.left=y;return this.next(),b.right=this.parseMaybeAssign(),this.checkLVal(y,this.finishNode(b,"AssignmentExpression")),b}else d&&this.checkExpressionErrors(t,!0);return y}parseMaybeConditional(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseExprOps(t);return this.shouldExitDescending(d,i)?d:this.parseConditional(d,a,t)}parseConditional(t,a,i){if(this.eat(17)){const d=this.startNodeAt(a);return d.test=t,d.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),d.alternate=this.parseMaybeAssign(),this.finishNode(d,"ConditionalExpression")}return t}parseMaybeUnaryOrPrivate(t){return this.match(138)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(d,i)?d:this.parseExprOp(d,a,-1)}parseExprOp(t,a,i){if(this.isPrivateName(t)){const p=this.getPrivateNameSV(t);(i>=i2(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(ze.PrivateInExpectedIn,t,{identifierName:p}),this.classScope.usePrivateName(p,t.loc.start)}const d=this.state.type;if(L1t(d)&&(this.prodParam.hasIn||!this.match(58))){let p=i2(d);if(p>i){if(d===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,a)}const y=this.startNodeAt(a);y.left=t,y.operator=this.state.value;const b=d===41||d===42,v=d===40;if(v&&(p=i2(42)),this.next(),d===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(ze.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);y.right=this.parseExprOpRightExpr(d,p);const E=this.finishNode(y,b||v?"LogicalExpression":"BinaryExpression"),S=this.state.type;if(v&&(S===41||S===42)||b&&S===40)throw this.raise(ze.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(E,a,i)}}return t}parseExprOpRightExpr(t,a){const i=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"smart":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(ze.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,a),i)});case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(a))}default:return this.parseExprOpBaseRightExpr(t,a)}}parseExprOpBaseRightExpr(t,a){const i=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),i,q1t(t)?a-1:a)}parseHackPipeBody(){var t;const{startLoc:a}=this.state,i=this.parseMaybeAssign();return T1t.has(i.type)&&!((t=i.extra)!=null&&t.parenthesized)&&this.raise(ze.PipeUnparenthesizedBody,a,{type:i.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(ze.PipeTopicUnused,a),i}checkExponentialAfterUnary(t){this.match(57)&&this.raise(ze.UnexpectedTokenUnaryExponentiation,t.argument)}parseMaybeUnary(t,a){const i=this.state.startLoc,d=this.isContextual(96);if(d&&this.recordAwaitIfAllowed()){this.next();const v=this.parseAwait(i);return a||this.checkExponentialAfterUnary(v),v}const p=this.match(34),y=this.startNode();if(B1t(this.state.type)){y.operator=this.state.value,y.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");const v=this.match(89);if(this.next(),y.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&v){const E=y.argument;E.type==="Identifier"?this.raise(ze.StrictDelete,y):this.hasPropertyAsPrivateName(E)&&this.raise(ze.DeletePrivateField,y)}if(!p)return a||this.checkExponentialAfterUnary(y),this.finishNode(y,"UnaryExpression")}const b=this.parseUpdate(y,p,t);if(d){const{type:v}=this.state;if((this.hasPlugin("v8intrinsic")?xk(v):xk(v)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(ze.AwaitNotInAsyncContext,i),this.parseAwait(i)}return b}parseUpdate(t,a,i){if(a){const y=t;return this.checkLVal(y.argument,this.finishNode(y,"UpdateExpression")),t}const d=this.state.startLoc;let p=this.parseExprSubscripts(i);if(this.checkExpressionErrors(i,!1))return p;for(;M1t(this.state.type)&&!this.canInsertSemicolon();){const y=this.startNodeAt(d);y.operator=this.state.value,y.prefix=!1,y.argument=p,this.next(),this.checkLVal(p,p=this.finishNode(y,"UpdateExpression"))}return p}parseExprSubscripts(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseExprAtom(t);return this.shouldExitDescending(d,i)?d:this.parseSubscripts(d,a)}parseSubscripts(t,a,i){const d={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,a,i,d),d.maybeAsyncArrow=!1;while(!d.stop);return t}parseSubscript(t,a,i,d){const{type:p}=this.state;if(!i&&p===15)return this.parseBind(t,a,i,d);if(C2(p))return this.parseTaggedTemplateExpression(t,a,d);let y=!1;if(p===18){if(i&&(this.raise(ze.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return d.stop=!0,t;d.optionalChainMember=y=!0,this.next()}if(!i&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,a,d,y);{const b=this.eat(0);return b||y||this.eat(16)?this.parseMember(t,a,d,b,y):(d.stop=!0,t)}}parseMember(t,a,i,d,p){const y=this.startNodeAt(a);return y.object=t,y.computed=d,d?(y.property=this.parseExpression(),this.expect(3)):this.match(138)?(t.type==="Super"&&this.raise(ze.SuperPrivateField,a),this.classScope.usePrivateName(this.state.value,this.state.startLoc),y.property=this.parsePrivateName()):y.property=this.parseIdentifier(!0),i.optionalChainMember?(y.optional=p,this.finishNode(y,"OptionalMemberExpression")):this.finishNode(y,"MemberExpression")}parseBind(t,a,i,d){const p=this.startNodeAt(a);return p.object=t,this.next(),p.callee=this.parseNoCallExpr(),d.stop=!0,this.parseSubscripts(this.finishNode(p,"BindExpression"),a,i)}parseCoverCallAndAsyncArrowHead(t,a,i,d){const p=this.state.maybeInArrowParameters;let y=null;this.state.maybeInArrowParameters=!0,this.next();const b=this.startNodeAt(a);b.callee=t;const{maybeAsyncArrow:v,optionalChainMember:E}=i;v&&(this.expressionScope.enter(y0t()),y=new l2),E&&(b.optional=d),d?b.arguments=this.parseCallExpressionArguments(11):b.arguments=this.parseCallExpressionArguments(11,t.type==="Import",t.type!=="Super",b,y);let S=this.finishCallExpression(b,E);return v&&this.shouldParseAsyncArrow()&&!d?(i.stop=!0,this.checkDestructuringPrivate(y),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),S=this.parseAsyncArrowFromCallExpression(this.startNodeAt(a),S)):(v&&(this.checkExpressionErrors(y,!0),this.expressionScope.exit()),this.toReferencedArguments(S)),this.state.maybeInArrowParameters=p,S}toReferencedArguments(t,a){this.toReferencedListDeep(t.arguments,a)}parseTaggedTemplateExpression(t,a,i){const d=this.startNodeAt(a);return d.tag=t,d.quasi=this.parseTemplate(!0),i.optionalChainMember&&this.raise(ze.OptionalChainingNoTemplate,a),this.finishNode(d,"TaggedTemplateExpression")}atPossibleAsyncArrow(t){return t.type==="Identifier"&&t.name==="async"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}expectImportAttributesPlugin(){this.hasPlugin("importAssertions")||this.expectPlugin("importAttributes")}finishCallExpression(t,a){if(t.callee.type==="Import")if(t.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectImportAttributesPlugin()),t.arguments.length===0||t.arguments.length>2)this.raise(ze.ImportCallArity,t,{maxArgumentCount:this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(const i of t.arguments)i.type==="SpreadElement"&&this.raise(ze.ImportCallSpreadArgument,i);return this.finishNode(t,a?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(t,a,i,d,p){const y=[];let b=!0;const v=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(b)b=!1;else if(this.expect(12),this.match(t)){a&&!this.hasPlugin("importAttributes")&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(ze.ImportCallArgumentTrailingComma,this.state.lastTokStartLoc),d&&this.addTrailingCommaExtraToNode(d),this.next();break}y.push(this.parseExprListItem(!1,p,i))}return this.state.inFSharpPipelineDirectBody=v,y}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,a){var i;return this.resetPreviousNodeTrailingComments(a),this.expect(19),this.parseArrowExpression(t,a.arguments,!0,(i=a.extra)==null?void 0:i.trailingCommaLoc),a.innerComments&&hy(t,a.innerComments),a.callee.trailingComments&&hy(t,a.callee.trailingComments),t}parseNoCallExpr(){const t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,!0)}parseExprAtom(t){let a,i=null;const{type:d}=this.state;switch(d){case 79:return this.parseSuper();case 83:return a=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(a):this.match(10)?this.options.createImportExpressions?this.parseImportCall(a):this.finishNode(a,"Import"):(this.raise(ze.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(a,"Import"));case 78:return a=this.startNode(),this.next(),this.finishNode(a,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 134:return this.parseNumericLiteral(this.state.value);case 135:return this.parseBigIntLiteral(this.state.value);case 136:return this.parseDecimalLiteral(this.state.value);case 133:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{const p=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(p)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:i=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(i,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{a=this.startNode(),this.next(),a.object=null;const p=a.callee=this.parseNoCallExpr();if(p.type==="MemberExpression")return this.finishNode(a,"BindExpression");throw this.raise(ze.UnsupportedBind,p)}case 138:return this.raise(ze.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{const p=this.getPluginOption("pipelineOperator","proposal");if(p)return this.parseTopicReference(p);this.unexpected();break}case 47:{const p=this.input.codePointAt(this.nextTokenStart());fl(p)||p===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(Ta(d)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();const p=this.state.potentialArrowAt===this.state.start,y=this.state.containsEsc,b=this.parseIdentifier();if(!y&&b.name==="async"&&!this.canInsertSemicolon()){const{type:v}=this.state;if(v===68)return this.resetPreviousNodeTrailingComments(b),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(b));if(Ta(v))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(b)):b;if(v===90)return this.resetPreviousNodeTrailingComments(b),this.parseDo(this.startNodeAtNode(b),!0)}return p&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(b),[b],!1)):b}else this.unexpected()}}parseTopicReferenceThenEqualsSign(t,a){const i=this.getPluginOption("pipelineOperator","proposal");if(i)return this.state.type=t,this.state.value=a,this.state.pos--,this.state.end--,this.state.endLoc=Ss(this.state.endLoc,-1),this.parseTopicReference(i);this.unexpected()}parseTopicReference(t){const a=this.startNode(),i=this.state.startLoc,d=this.state.type;return this.next(),this.finishTopicReference(a,i,t,d)}finishTopicReference(t,a,i,d){if(this.testTopicReferenceConfiguration(i,a,d)){const p=i==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(i==="smart"?ze.PrimaryTopicNotAllowed:ze.PipeTopicUnbound,a),this.registerTopicReference(),this.finishNode(t,p)}else throw this.raise(ze.PipeTopicUnconfiguredToken,a,{token:Pu(d)})}testTopicReferenceConfiguration(t,a,i){switch(t){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Pu(i)}]);case"smart":return i===27;default:throw this.raise(ze.PipeTopicRequiresHackPipes,a)}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(o2(!0,this.prodParam.hasYield));const a=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(ze.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(t,a,!0)}parseDo(t,a){this.expectPlugin("doExpressions"),a&&this.expectPlugin("asyncDoExpressions"),t.async=a,this.next();const i=this.state.labels;return this.state.labels=[],a?(this.prodParam.enter(2),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=i,this.finishNode(t,"DoExpression")}parseSuper(){const t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(ze.SuperNotAllowed,t):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(ze.UnexpectedSuper,t),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(ze.UnsupportedSuper,t),this.finishNode(t,"Super")}parsePrivateName(){const t=this.startNode(),a=this.startNodeAt(Ss(this.state.startLoc,1)),i=this.state.value;return this.next(),t.id=this.createIdentifier(a,i),this.finishNode(t,"PrivateName")}parseFunctionOrFunctionSent(){const t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){const a=this.createIdentifier(this.startNodeAtNode(t),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(t,a,"sent")}return this.parseFunction(t)}parseMetaProperty(t,a,i){t.meta=a;const d=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==i||d)&&this.raise(ze.UnsupportedMetaProperty,t.property,{target:a.name,onlyValidPropertyName:i}),this.finishNode(t,"MetaProperty")}parseImportMetaProperty(t){const a=this.createIdentifier(this.startNodeAtNode(t),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(ze.ImportMetaOutsideModule,a),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){const i=this.isContextual(105);if(i||this.unexpected(),this.expectPlugin(i?"sourcePhaseImports":"deferredImportEvaluation"),!this.options.createImportExpressions)throw this.raise(ze.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),t.phase=i?"source":"defer",this.parseImportCall(t)}return this.parseMetaProperty(t,a,"meta")}parseLiteralAtNode(t,a,i){return this.addExtra(i,"rawValue",t),this.addExtra(i,"raw",this.input.slice(i.start,this.state.end)),i.value=t,this.next(),this.finishNode(i,a)}parseLiteral(t,a){const i=this.startNode();return this.parseLiteralAtNode(t,a,i)}parseStringLiteral(t){return this.parseLiteral(t,"StringLiteral")}parseNumericLiteral(t){return this.parseLiteral(t,"NumericLiteral")}parseBigIntLiteral(t){return this.parseLiteral(t,"BigIntLiteral")}parseDecimalLiteral(t){return this.parseLiteral(t,"DecimalLiteral")}parseRegExpLiteral(t){const a=this.startNode();return this.addExtra(a,"raw",this.input.slice(a.start,this.state.end)),a.pattern=t.pattern,a.flags=t.flags,this.next(),this.finishNode(a,"RegExpLiteral")}parseBooleanLiteral(t){const a=this.startNode();return a.value=t,this.next(),this.finishNode(a,"BooleanLiteral")}parseNullLiteral(){const t=this.startNode();return this.next(),this.finishNode(t,"NullLiteral")}parseParenAndDistinguishExpression(t){const a=this.state.startLoc;let i;this.next(),this.expressionScope.enter(m0t());const d=this.state.maybeInArrowParameters,p=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;const y=this.state.startLoc,b=[],v=new l2;let E=!0,S,A;for(;!this.match(11);){if(E)E=!1;else if(this.expect(12,v.optionalParametersLoc===null?null:v.optionalParametersLoc),this.match(11)){A=this.state.startLoc;break}if(this.match(21)){const q=this.state.startLoc;if(S=this.state.startLoc,b.push(this.parseParenItem(this.parseRestBinding(),q)),!this.checkCommaAfterRest(41))break}else b.push(this.parseMaybeAssignAllowIn(v,this.parseParenItem))}const _=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=d,this.state.inFSharpPipelineDirectBody=p;let C=this.startNodeAt(a);return t&&this.shouldParseArrow(b)&&(C=this.parseArrow(C))?(this.checkDestructuringPrivate(v),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(C,b,!1),C):(this.expressionScope.exit(),b.length||this.unexpected(this.state.lastTokStartLoc),A&&this.unexpected(A),S&&this.unexpected(S),this.checkExpressionErrors(v,!0),this.toReferencedListDeep(b,!0),b.length>1?(i=this.startNodeAt(y),i.expressions=b,this.finishNode(i,"SequenceExpression"),this.resetEndLocation(i,_)):i=b[0],this.wrapParenthesis(a,i))}wrapParenthesis(t,a){if(!this.options.createParenthesizedExpressions)return this.addExtra(a,"parenthesized",!0),this.addExtra(a,"parenStart",t.index),this.takeSurroundingComments(a,t.index,this.state.lastTokEndLoc.index),a;const i=this.startNodeAt(t);return i.expression=a,this.finishNode(i,"ParenthesizedExpression")}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,a){return t}parseNewOrNewTarget(){const t=this.startNode();if(this.next(),this.match(16)){const a=this.createIdentifier(this.startNodeAtNode(t),"new");this.next();const i=this.parseMetaProperty(t,a,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!this.options.allowNewTargetOutsideFunction&&this.raise(ze.UnexpectedNewTarget,i),i}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){const a=this.parseExprList(11);this.toReferencedList(a),t.arguments=a}else t.arguments=[];return this.finishNode(t,"NewExpression")}parseNewCallee(t){const a=this.match(83),i=this.parseNoCallExpr();t.callee=i,a&&(i.type==="Import"||i.type==="ImportExpression")&&this.raise(ze.ImportCallNotNewExpression,i)}parseTemplateElement(t){const{start:a,startLoc:i,end:d,value:p}=this.state,y=a+1,b=this.startNodeAt(Ss(i,1));p===null&&(t||this.raise(ze.InvalidEscapeSequenceTemplate,Ss(this.state.firstInvalidTemplateEscapePos,1)));const v=this.match(24),E=v?-1:-2,S=d+E;b.value={raw:this.input.slice(y,S).replace(/\r\n?/g,` +`),cooked:p===null?null:p.slice(1,E)},b.tail=v,this.next();const A=this.finishNode(b,"TemplateElement");return this.resetEndLocation(A,Ss(this.state.lastTokEndLoc,E)),A}parseTemplate(t){const a=this.startNode();let i=this.parseTemplateElement(t);const d=[i],p=[];for(;!i.tail;)p.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),d.push(i=this.parseTemplateElement(t));return a.expressions=p,a.quasis=d,this.finishNode(a,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,a,i,d){i&&this.expectPlugin("recordAndTuple");const p=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const y=Object.create(null);let b=!0;const v=this.startNode();for(v.properties=[],this.next();!this.match(t);){if(b)b=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(v);break}let S;a?S=this.parseBindingProperty():(S=this.parsePropertyDefinition(d),this.checkProto(S,i,y,d)),i&&!this.isObjectProperty(S)&&S.type!=="SpreadElement"&&this.raise(ze.InvalidRecordProperty,S),S.shorthand&&this.addExtra(S,"shorthand",!0),v.properties.push(S)}this.next(),this.state.inFSharpPipelineDirectBody=p;let E="ObjectExpression";return a?E="ObjectPattern":i&&(E="RecordExpression"),this.finishNode(v,E)}addTrailingCommaExtraToNode(t){this.addExtra(t,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(t,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let a=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(ze.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)a.push(this.parseDecorator());const i=this.startNode();let d=!1,p=!1,y;if(this.match(21))return a.length&&this.unexpected(),this.parseSpread();a.length&&(i.decorators=a,a=[]),i.method=!1,t&&(y=this.state.startLoc);let b=this.eat(55);this.parsePropertyNamePrefixOperator(i);const v=this.state.containsEsc;if(this.parsePropertyName(i,t),!b&&!v&&this.maybeAsyncOrAccessorProp(i)){const{key:E}=i,S=E.name;S==="async"&&!this.hasPrecedingLineBreak()&&(d=!0,this.resetPreviousNodeTrailingComments(E),b=this.eat(55),this.parsePropertyName(i)),(S==="get"||S==="set")&&(p=!0,this.resetPreviousNodeTrailingComments(E),i.kind=S,this.match(55)&&(b=!0,this.raise(ze.AccessorIsGenerator,this.state.curPosition(),{kind:S}),this.next()),this.parsePropertyName(i))}return this.parseObjPropValue(i,y,b,d,!1,p,t)}getGetterSetterExpectedParamCount(t){return t.kind==="get"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var a;const i=this.getGetterSetterExpectedParamCount(t),d=this.getObjectOrClassMethodParams(t);d.length!==i&&this.raise(t.kind==="get"?ze.BadGetterArity:ze.BadSetterArity,t),t.kind==="set"&&((a=d[d.length-1])==null?void 0:a.type)==="RestElement"&&this.raise(ze.BadSetterRestParameter,t)}parseObjectMethod(t,a,i,d,p){if(p){const y=this.parseMethod(t,a,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(y),y}if(i||a||this.match(10))return d&&this.unexpected(),t.kind="method",t.method=!0,this.parseMethod(t,a,i,!1,!1,"ObjectMethod")}parseObjectProperty(t,a,i,d){if(t.shorthand=!1,this.eat(14))return t.value=i?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(d),this.finishNode(t,"ObjectProperty");if(!t.computed&&t.key.type==="Identifier"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),i)t.value=this.parseMaybeDefault(a,Rl(t.key));else if(this.match(29)){const p=this.state.startLoc;d!=null?d.shorthandAssignLoc===null&&(d.shorthandAssignLoc=p):this.raise(ze.InvalidCoverInitializedName,p),t.value=this.parseMaybeDefault(a,Rl(t.key))}else t.value=Rl(t.key);return t.shorthand=!0,this.finishNode(t,"ObjectProperty")}}parseObjPropValue(t,a,i,d,p,y,b){const v=this.parseObjectMethod(t,i,d,p,y)||this.parseObjectProperty(t,a,p,b);return v||this.unexpected(),v}parsePropertyName(t,a){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{const{type:i,value:d}=this.state;let p;if(Hi(i))p=this.parseIdentifier(!0);else switch(i){case 134:p=this.parseNumericLiteral(d);break;case 133:p=this.parseStringLiteral(d);break;case 135:p=this.parseBigIntLiteral(d);break;case 136:p=this.parseDecimalLiteral(d);break;case 138:{const y=this.state.startLoc;a!=null?a.privateKeyLoc===null&&(a.privateKeyLoc=y):this.raise(ze.UnexpectedPrivateField,y),p=this.parsePrivateName();break}default:this.unexpected()}t.key=p,i!==138&&(t.computed=!1)}}initFunction(t,a){t.id=null,t.generator=!1,t.async=a}parseMethod(t,a,i,d,p,y,b=!1){this.initFunction(t,i),t.generator=a,this.scope.enter(18|(b?64:0)|(p?32:0)),this.prodParam.enter(o2(i,t.generator)),this.parseFunctionParams(t,d);const v=this.parseFunctionBodyAndFinish(t,y,!0);return this.prodParam.exit(),this.scope.exit(),v}parseArrayLike(t,a,i,d){i&&this.expectPlugin("recordAndTuple");const p=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const y=this.startNode();return this.next(),y.elements=this.parseExprList(t,!i,d,y),this.state.inFSharpPipelineDirectBody=p,this.finishNode(y,i?"TupleExpression":"ArrayExpression")}parseArrowExpression(t,a,i,d){this.scope.enter(6);let p=o2(i,!1);!this.match(5)&&this.prodParam.hasIn&&(p|=8),this.prodParam.enter(p),this.initFunction(t,i);const y=this.state.maybeInArrowParameters;return a&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,a,d)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=y,this.finishNode(t,"ArrowFunctionExpression")}setArrowFunctionParameters(t,a,i){this.toAssignableList(a,i,!1),t.params=a}parseFunctionBodyAndFinish(t,a,i=!1){return this.parseFunctionBody(t,!1,i),this.finishNode(t,a)}parseFunctionBody(t,a,i=!1){const d=a&&!this.match(5);if(this.expressionScope.enter(Xye()),d)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,a,!1);else{const p=this.state.strict,y=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),t.body=this.parseBlock(!0,!1,b=>{const v=!this.isSimpleParamList(t.params);b&&v&&this.raise(ze.IllegalLanguageModeDirective,(t.kind==="method"||t.kind==="constructor")&&t.key?t.key.loc.end:t);const E=!p&&this.state.strict;this.checkParams(t,!this.state.strict&&!a&&!i&&!v,a,E),this.state.strict&&t.id&&this.checkIdentifier(t.id,65,E)}),this.prodParam.exit(),this.state.labels=y}this.expressionScope.exit()}isSimpleParameter(t){return t.type==="Identifier"}isSimpleParamList(t){for(let a=0,i=t.length;a<i;a++)if(!this.isSimpleParameter(t[a]))return!1;return!0}checkParams(t,a,i,d=!0){const p=!a&&new Set,y={type:"FormalParameters"};for(const b of t.params)this.checkLVal(b,y,5,p,d)}parseExprList(t,a,i,d){const p=[];let y=!0;for(;!this.eat(t);){if(y)y=!1;else if(this.expect(12),this.match(t)){d&&this.addTrailingCommaExtraToNode(d),this.next();break}p.push(this.parseExprListItem(a,i))}return p}parseExprListItem(t,a,i){let d;if(this.match(12))t||this.raise(ze.UnexpectedToken,this.state.curPosition(),{unexpected:","}),d=null;else if(this.match(21)){const p=this.state.startLoc;d=this.parseParenItem(this.parseSpread(a),p)}else if(this.match(17)){this.expectPlugin("partialApplication"),i||this.raise(ze.UnexpectedArgumentPlaceholder,this.state.startLoc);const p=this.startNode();this.next(),d=this.finishNode(p,"ArgumentPlaceholder")}else d=this.parseMaybeAssignAllowIn(a,this.parseParenItem);return d}parseIdentifier(t){const a=this.startNode(),i=this.parseIdentifierName(t);return this.createIdentifier(a,i)}createIdentifier(t,a){return t.name=a,t.loc.identifierName=a,this.finishNode(t,"Identifier")}parseIdentifierName(t){let a;const{startLoc:i,type:d}=this.state;Hi(d)?a=this.state.value:this.unexpected();const p=_1t(d);return t?p&&this.replaceToken(132):this.checkReservedWord(a,i,p,!1),this.next(),a}checkReservedWord(t,a,i,d){if(t.length>10||!Y1t(t))return;if(i&&z1t(t)){this.raise(ze.UnexpectedKeyword,a,{keyword:t});return}if((this.state.strict?d?Vye:qye:$ye)(t,this.inModule)){this.raise(ze.UnexpectedReservedWord,a,{reservedWord:t});return}else if(t==="yield"){if(this.prodParam.hasYield){this.raise(ze.YieldBindingIdentifier,a);return}}else if(t==="await"){if(this.prodParam.hasAwait){this.raise(ze.AwaitBindingIdentifier,a);return}if(this.scope.inStaticBlock){this.raise(ze.AwaitBindingIdentifierInStaticBlock,a);return}this.expressionScope.recordAsyncArrowParametersError(a)}else if(t==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(ze.ArgumentsInClass,a);return}}recordAwaitIfAllowed(){const t=this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction;return t&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),t}parseAwait(t){const a=this.startNodeAt(t);return this.expressionScope.recordParameterInitializerError(ze.AwaitExpressionFormalParameter,a),this.eat(55)&&this.raise(ze.ObsoleteAwaitStar,a),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(a.argument=this.parseMaybeUnary(null,!0)),this.finishNode(a,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;const{type:t}=this.state;return t===53||t===10||t===0||C2(t)||t===102&&!this.state.containsEsc||t===137||t===56||this.hasPlugin("v8intrinsic")&&t===54}parseYield(){const t=this.startNode();this.expressionScope.recordParameterInitializerError(ze.YieldInParameter,t),this.next();let a=!1,i=null;if(!this.hasPrecedingLineBreak())switch(a=this.eat(55),this.state.type){case 13:case 139:case 8:case 11:case 3:case 9:case 14:case 12:if(!a)break;default:i=this.parseMaybeAssign()}return t.delegate=a,t.argument=i,this.finishNode(t,"YieldExpression")}parseImportCall(t){return this.next(),t.source=this.parseMaybeAssignAllowIn(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(t.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(t.options=this.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.finishNode(t,"ImportExpression")}checkPipelineAtInfixOperator(t,a){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&t.type==="SequenceExpression"&&this.raise(ze.PipelineHeadSequenceExpression,a)}parseSmartPipelineBodyInStyle(t,a){if(this.isSimpleReference(t)){const i=this.startNodeAt(a);return i.callee=t,this.finishNode(i,"PipelineBareFunction")}else{const i=this.startNodeAt(a);return this.checkSmartPipeTopicBodyEarlyErrors(a),i.expression=t,this.finishNode(i,"PipelineTopicExpression")}}isSimpleReference(t){switch(t.type){case"MemberExpression":return!t.computed&&this.isSimpleReference(t.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(ze.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(ze.PipelineTopicUnused,t)}withTopicBindingContext(t){const a=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=a}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){const a=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=a}}else return t()}withSoloAwaitPermittingContext(t){const a=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=a}}allowInAnd(t){const a=this.prodParam.currentFlags();if(8&~a){this.prodParam.enter(a|8);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){const a=this.prodParam.currentFlags();if(8&a){this.prodParam.enter(a&-9);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){const a=this.state.startLoc;this.state.potentialArrowAt=this.state.start;const i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;const d=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),a,t);return this.state.inFSharpPipelineDirectBody=i,d}parseModuleExpression(){this.expectPlugin("moduleBlocks");const t=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);const a=this.startNodeAt(this.state.endLoc);this.next();const i=this.initializeScopes(!0);this.enterInitialScopes();try{t.body=this.parseProgram(a,8,"module")}finally{i()}return this.finishNode(t,"ModuleExpression")}parsePropertyNamePrefixOperator(t){}};const rN={kind:1},K0t={kind:2},H0t=/[\uD800-\uDFFF]/u,aN=/in(?:stanceof)?/y;function z0t(n,t){for(let a=0;a<n.length;a++){const i=n[a],{type:d}=i;if(typeof d=="number"){{if(d===138){const{loc:p,start:y,value:b,end:v}=i,E=y+1,S=Ss(p.start,1);n.splice(a,1,new vu({type:ll(27),value:"#",start:y,end:E,startLoc:p.start,endLoc:S}),new vu({type:ll(132),value:b,start:E,end:v,startLoc:S,endLoc:p.end})),a++;continue}if(C2(d)){const{loc:p,start:y,value:b,end:v}=i,E=y+1,S=Ss(p.start,1);let A;t.charCodeAt(y)===96?A=new vu({type:ll(22),value:"`",start:y,end:E,startLoc:p.start,endLoc:S}):A=new vu({type:ll(8),value:"}",start:y,end:E,startLoc:p.start,endLoc:S});let _,C,q,M;d===24?(C=v-1,q=Ss(p.end,-1),_=b===null?null:b.slice(1,-1),M=new vu({type:ll(22),value:"`",start:C,end:v,startLoc:q,endLoc:p.end})):(C=v-2,q=Ss(p.end,-2),_=b===null?null:b.slice(1,-2),M=new vu({type:ll(23),value:"${",start:C,end:v,startLoc:q,endLoc:p.end})),n.splice(a,1,A,new vu({type:ll(20),value:_,start:E,end:C,startLoc:S,endLoc:q}),M),a+=2;continue}}i.type=ll(d)}}return n}let X0t=class extends G0t{parseTopLevel(t,a){return t.program=this.parseProgram(a),t.comments=this.comments,this.options.tokens&&(t.tokens=z0t(this.tokens,this.input)),this.finishNode(t,"File")}parseProgram(t,a=139,i=this.options.sourceType){if(t.sourceType=i,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,a),this.inModule){if(!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(const[p,y]of Array.from(this.scope.undefinedExports))this.raise(ze.ModuleExportUndefined,y,{localName:p});this.addExtra(t,"topLevelAwait",this.state.hasTopLevelAwait)}let d;return a===139?d=this.finishNode(t,"Program"):d=this.finishNodeAt(t,"Program",Ss(this.state.startLoc,-1)),d}stmtToDirective(t){const a=t;a.type="Directive",a.value=a.expression,delete a.expression;const i=a.value,d=i.value,p=this.input.slice(i.start,i.end),y=i.value=p.slice(1,-1);return this.addExtra(i,"raw",p),this.addExtra(i,"rawValue",y),this.addExtra(i,"expressionValue",d),i.type="DirectiveLiteral",a}parseInterpreterDirective(){if(!this.match(28))return null;const t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(t,a){if(fl(t)){if(aN.lastIndex=a,aN.test(this.input)){const i=this.codePointAtPos(aN.lastIndex);if(!_p(i)&&i!==92)return!1}return!0}else return t===92}chStartsBindingPattern(t){return t===91||t===123}hasFollowingBindingAtom(){const t=this.nextTokenStart(),a=this.codePointAtPos(t);return this.chStartsBindingPattern(a)||this.chStartsBindingIdentifier(a,t)}hasInLineFollowingBindingIdentifierOrBrace(){const t=this.nextTokenInLineStart(),a=this.codePointAtPos(t);return a===123||this.chStartsBindingIdentifier(a,t)}startsUsingForOf(){const{type:t,containsEsc:a}=this.lookahead();if(t===102&&!a)return!1;if(Ta(t)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let t=this.nextTokenInLineStart();if(this.isUnparsedContextual(t,"using")){t=this.nextTokenInLineStartSince(t+5);const a=this.codePointAtPos(t);if(this.chStartsBindingIdentifier(a,t))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(t=!1){let a=0;return this.options.annexB&&!this.state.strict&&(a|=4,t&&(a|=8)),this.parseStatementLike(a)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(t){let a=null;return this.match(26)&&(a=this.parseDecorators(!0)),this.parseStatementContent(t,a)}parseStatementContent(t,a){const i=this.state.type,d=this.startNode(),p=!!(t&2),y=!!(t&4),b=t&1;switch(i){case 60:return this.parseBreakContinueStatement(d,!0);case 63:return this.parseBreakContinueStatement(d,!1);case 64:return this.parseDebuggerStatement(d);case 90:return this.parseDoWhileStatement(d);case 91:return this.parseForStatement(d);case 68:if(this.lookaheadCharCode()===46)break;return y||this.raise(this.state.strict?ze.StrictFunction:this.options.annexB?ze.SloppyFunctionAnnexB:ze.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(d,!1,!p&&y);case 80:return p||this.unexpected(),this.parseClass(this.maybeTakeDecorators(a,d),!0);case 69:return this.parseIfStatement(d);case 70:return this.parseReturnStatement(d);case 71:return this.parseSwitchStatement(d);case 72:return this.parseThrowStatement(d);case 73:return this.parseTryStatement(d);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?p||this.raise(ze.UnexpectedLexicalDeclaration,d):this.raise(ze.AwaitUsingNotInAsyncContext,d),this.next(),this.parseVarStatement(d,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(ze.UnexpectedUsingDeclaration,this.state.startLoc):p||this.raise(ze.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(d,"using");case 100:{if(this.state.containsEsc)break;const S=this.nextTokenStart(),A=this.codePointAtPos(S);if(A!==91&&(!p&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(A,S)&&A!==123))break}case 75:p||this.raise(ze.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{const S=this.state.value;return this.parseVarStatement(d,S)}case 92:return this.parseWhileStatement(d);case 76:return this.parseWithStatement(d);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(d);case 83:{const S=this.lookaheadCharCode();if(S===40||S===46)break}case 82:{!this.options.allowImportExportEverywhere&&!b&&this.raise(ze.UnexpectedImportExport,this.state.startLoc),this.next();let S;return i===83?(S=this.parseImport(d),S.type==="ImportDeclaration"&&(!S.importKind||S.importKind==="value")&&(this.sawUnambiguousESM=!0)):(S=this.parseExport(d,a),(S.type==="ExportNamedDeclaration"&&(!S.exportKind||S.exportKind==="value")||S.type==="ExportAllDeclaration"&&(!S.exportKind||S.exportKind==="value")||S.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(S),S}default:if(this.isAsyncFunction())return p||this.raise(ze.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(d,!0,!p&&y)}const v=this.state.value,E=this.parseExpression();return Ta(i)&&E.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(d,v,E,t):this.parseExpressionStatement(d,E,a)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(ze.ImportOutsideModule,t)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(t,a,i){return t&&(a.decorators&&a.decorators.length>0?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(ze.DecoratorsBeforeAfterExport,a.decorators[0]),a.decorators.unshift(...t)):a.decorators=t,this.resetStartLocationFromNode(a,t[0]),i&&this.resetStartLocationFromNode(i,a)),a}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){const a=[];do a.push(this.parseDecorator());while(this.match(26));if(this.match(82))t||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(ze.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(ze.UnexpectedLeadingDecorator,this.state.startLoc);return a}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);const t=this.startNode();if(this.next(),this.hasPlugin("decorators")){const a=this.state.startLoc;let i;if(this.match(10)){const d=this.state.startLoc;this.next(),i=this.parseExpression(),this.expect(11),i=this.wrapParenthesis(d,i);const p=this.state.startLoc;t.expression=this.parseMaybeDecoratorArguments(i),this.getPluginOption("decorators","allowCallParenthesized")===!1&&t.expression!==i&&this.raise(ze.DecoratorArgumentsOutsideParentheses,p)}else{for(i=this.parseIdentifier(!1);this.eat(16);){const d=this.startNodeAt(a);d.object=i,this.match(138)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),d.property=this.parsePrivateName()):d.property=this.parseIdentifier(!0),d.computed=!1,i=this.finishNode(d,"MemberExpression")}t.expression=this.parseMaybeDecoratorArguments(i)}}else t.expression=this.parseExprSubscripts();return this.finishNode(t,"Decorator")}parseMaybeDecoratorArguments(t){if(this.eat(10)){const a=this.startNodeAtNode(t);return a.callee=t,a.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(a.arguments),this.finishNode(a,"CallExpression")}return t}parseBreakContinueStatement(t,a){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,a),this.finishNode(t,a?"BreakStatement":"ContinueStatement")}verifyBreakContinue(t,a){let i;for(i=0;i<this.state.labels.length;++i){const d=this.state.labels[i];if((t.label==null||d.name===t.label.name)&&(d.kind!=null&&(a||d.kind===1)||t.label&&a))break}if(i===this.state.labels.length){const d=a?"BreakStatement":"ContinueStatement";this.raise(ze.IllegalBreakContinue,t,{type:d})}}parseDebuggerStatement(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")}parseHeaderExpression(){this.expect(10);const t=this.parseExpression();return this.expect(11),t}parseDoWhileStatement(t){return this.next(),this.state.labels.push(rN),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,"DoWhileStatement")}parseForStatement(t){this.next(),this.state.labels.push(rN);let a=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(a=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return a!==null&&this.unexpected(a),this.parseFor(t,null);const i=this.isContextual(100);{const v=this.isContextual(96)&&this.startsAwaitUsing(),E=v||this.isContextual(107)&&this.startsUsingForOf(),S=i&&this.hasFollowingBindingAtom()||E;if(this.match(74)||this.match(75)||S){const A=this.startNode();let _;v?(_="await using",this.recordAwaitIfAllowed()||this.raise(ze.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):_=this.state.value,this.next(),this.parseVar(A,!0,_);const C=this.finishNode(A,"VariableDeclaration"),q=this.match(58);return q&&E&&this.raise(ze.ForInUsing,C),(q||this.isContextual(102))&&C.declarations.length===1?this.parseForIn(t,C,a):(a!==null&&this.unexpected(a),this.parseFor(t,C))}}const d=this.isContextual(95),p=new l2,y=this.parseExpression(!0,p),b=this.isContextual(102);if(b&&(i&&this.raise(ze.ForOfLet,y),a===null&&d&&y.type==="Identifier"&&this.raise(ze.ForOfAsync,y)),b||this.match(58)){this.checkDestructuringPrivate(p),this.toAssignable(y,!0);const v=b?"ForOfStatement":"ForInStatement";return this.checkLVal(y,{type:v}),this.parseForIn(t,y,a)}else this.checkExpressionErrors(p,!0);return a!==null&&this.unexpected(a),this.parseFor(t,y)}parseFunctionStatement(t,a,i){return this.next(),this.parseFunction(t,1|(i?2:0)|(a?8:0))}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),t.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(t,"IfStatement")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(ze.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();const a=t.cases=[];this.expect(5),this.state.labels.push(K0t),this.scope.enter(0);let i;for(let d;!this.match(8);)if(this.match(61)||this.match(65)){const p=this.match(61);i&&this.finishNode(i,"SwitchCase"),a.push(i=this.startNode()),i.consequent=[],this.next(),p?i.test=this.parseExpression():(d&&this.raise(ze.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),d=!0,i.test=null),this.expect(14)}else i?i.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),i&&this.finishNode(i,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(t,"SwitchStatement")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(ze.NewlineAfterThrow,this.state.lastTokEndLoc),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}parseCatchClauseParam(){const t=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&t.type==="Identifier"?8:0),this.checkLVal(t,{type:"CatchClause"},9),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){const a=this.startNode();this.next(),this.match(10)?(this.expect(10),a.param=this.parseCatchClauseParam(),this.expect(11)):(a.param=null,this.scope.enter(0)),a.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(a,"CatchClause")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(ze.NoCatchOrFinally,t),this.finishNode(t,"TryStatement")}parseVarStatement(t,a,i=!1){return this.next(),this.parseVar(t,!1,a,i),this.semicolon(),this.finishNode(t,"VariableDeclaration")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(rN),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(t,"WhileStatement")}parseWithStatement(t){return this.state.strict&&this.raise(ze.StrictWith,this.state.startLoc),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(t,"WithStatement")}parseEmptyStatement(t){return this.next(),this.finishNode(t,"EmptyStatement")}parseLabeledStatement(t,a,i,d){for(const y of this.state.labels)y.name===a&&this.raise(ze.LabelRedeclaration,i,{labelName:a});const p=D1t(this.state.type)?1:this.match(71)?2:null;for(let y=this.state.labels.length-1;y>=0;y--){const b=this.state.labels[y];if(b.statementStart===t.start)b.statementStart=this.state.start,b.kind=p;else break}return this.state.labels.push({name:a,kind:p,statementStart:this.state.start}),t.body=d&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")}parseExpressionStatement(t,a,i){return t.expression=a,this.semicolon(),this.finishNode(t,"ExpressionStatement")}parseBlock(t=!1,a=!0,i){const d=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),a&&this.scope.enter(0),this.parseBlockBody(d,t,!1,8,i),a&&this.scope.exit(),this.finishNode(d,"BlockStatement")}isValidDirective(t){return t.type==="ExpressionStatement"&&t.expression.type==="StringLiteral"&&!t.expression.extra.parenthesized}parseBlockBody(t,a,i,d,p){const y=t.body=[],b=t.directives=[];this.parseBlockOrModuleBlockBody(y,a?b:void 0,i,d,p)}parseBlockOrModuleBlockBody(t,a,i,d,p){const y=this.state.strict;let b=!1,v=!1;for(;!this.match(d);){const E=i?this.parseModuleItem():this.parseStatementListItem();if(a&&!v){if(this.isValidDirective(E)){const S=this.stmtToDirective(E);a.push(S),!b&&S.value.value==="use strict"&&(b=!0,this.setStrict(!0));continue}v=!0,this.state.strictErrors.clear()}t.push(E)}p==null||p.call(this,b),y||this.setStrict(!1),this.next()}parseFor(t,a){return t.init=a,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,"ForStatement")}parseForIn(t,a,i){const d=this.match(58);return this.next(),d?i!==null&&this.unexpected(i):t.await=i!==null,a.type==="VariableDeclaration"&&a.declarations[0].init!=null&&(!d||!this.options.annexB||this.state.strict||a.kind!=="var"||a.declarations[0].id.type!=="Identifier")&&this.raise(ze.ForInOfLoopInitializer,a,{type:d?"ForInStatement":"ForOfStatement"}),a.type==="AssignmentPattern"&&this.raise(ze.InvalidLhs,a,{ancestor:{type:"ForStatement"}}),t.left=a,t.right=d?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,d?"ForInStatement":"ForOfStatement")}parseVar(t,a,i,d=!1){const p=t.declarations=[];for(t.kind=i;;){const y=this.startNode();if(this.parseVarId(y,i),y.init=this.eat(29)?a?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,y.init===null&&!d&&(y.id.type!=="Identifier"&&!(a&&(this.match(58)||this.isContextual(102)))?this.raise(ze.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(i==="const"||i==="using"||i==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(ze.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:i})),p.push(this.finishNode(y,"VariableDeclarator")),!this.eat(12))break}return t}parseVarId(t,a){const i=this.parseBindingAtom();(a==="using"||a==="await using")&&(i.type==="ArrayPattern"||i.type==="ObjectPattern")&&this.raise(ze.UsingDeclarationHasBindingPattern,i.loc.start),this.checkLVal(i,{type:"VariableDeclarator"},a==="var"?5:8201),t.id=i}parseAsyncFunctionExpression(t){return this.parseFunction(t,8)}parseFunction(t,a=0){const i=a&2,d=!!(a&1),p=d&&!(a&4),y=!!(a&8);this.initFunction(t,y),this.match(55)&&(i&&this.raise(ze.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),t.generator=!0),d&&(t.id=this.parseFunctionId(p));const b=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(o2(y,t.generator)),d||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,d?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),d&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=b,t}parseFunctionId(t){return t||Ta(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,a){this.expect(10),this.expressionScope.enter(h0t()),t.params=this.parseBindingList(11,41,2|(a?4:0)),this.expressionScope.exit()}registerFunctionStatementId(t){t.id&&this.scope.declareName(t.id.name,!this.options.annexB||this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?5:8201:17,t.id.loc.start)}parseClass(t,a,i){this.next();const d=this.state.strict;return this.state.strict=!0,this.parseClassId(t,a,i),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,d),this.finishNode(t,a?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(t){return t.type==="Identifier"&&t.name==="constructor"||t.type==="StringLiteral"&&t.value==="constructor"}isNonstaticConstructor(t){return!t.computed&&!t.static&&this.nameIsConstructor(t.key)}parseClassBody(t,a){this.classScope.enter();const i={hadConstructor:!1,hadSuperClass:t};let d=[];const p=this.startNode();if(p.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(d.length>0)throw this.raise(ze.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){d.push(this.parseDecorator());continue}const y=this.startNode();d.length&&(y.decorators=d,this.resetStartLocationFromNode(y,d[0]),d=[]),this.parseClassMember(p,y,i),y.kind==="constructor"&&y.decorators&&y.decorators.length>0&&this.raise(ze.DecoratorConstructor,y)}}),this.state.strict=a,this.next(),d.length)throw this.raise(ze.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(p,"ClassBody")}parseClassMemberFromModifier(t,a){const i=this.parseIdentifier(!0);if(this.isClassMethod()){const d=a;return d.kind="method",d.computed=!1,d.key=i,d.static=!1,this.pushClassMethod(t,d,!1,!1,!1,!1),!0}else if(this.isClassProperty()){const d=a;return d.computed=!1,d.key=i,d.static=!1,t.body.push(this.parseClassProperty(d)),!0}return this.resetPreviousNodeTrailingComments(i),!1}parseClassMember(t,a,i){const d=this.isContextual(106);if(d){if(this.parseClassMemberFromModifier(t,a))return;if(this.eat(5)){this.parseClassStaticBlock(t,a);return}}this.parseClassMemberWithIsStatic(t,a,i,d)}parseClassMemberWithIsStatic(t,a,i,d){const p=a,y=a,b=a,v=a,E=a,S=p,A=p;if(a.static=d,this.parsePropertyNamePrefixOperator(a),this.eat(55)){S.kind="method";const z=this.match(138);if(this.parseClassElementName(S),z){this.pushClassPrivateMethod(t,y,!0,!1);return}this.isNonstaticConstructor(p)&&this.raise(ze.ConstructorIsGenerator,p.key),this.pushClassMethod(t,p,!0,!1,!1,!1);return}const _=!this.state.containsEsc&&Ta(this.state.type),C=this.parseClassElementName(a),q=_?C.name:null,M=this.isPrivateName(C),W=this.state.startLoc;if(this.parsePostMemberNameModifiers(A),this.isClassMethod()){if(S.kind="method",M){this.pushClassPrivateMethod(t,y,!1,!1);return}const z=this.isNonstaticConstructor(p);let Y=!1;z&&(p.kind="constructor",i.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(ze.DuplicateConstructor,C),z&&this.hasPlugin("typescript")&&a.override&&this.raise(ze.OverrideOnConstructor,C),i.hadConstructor=!0,Y=i.hadSuperClass),this.pushClassMethod(t,p,!1,!1,z,Y)}else if(this.isClassProperty())M?this.pushClassPrivateProperty(t,v):this.pushClassProperty(t,b);else if(q==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(C);const z=this.eat(55);A.optional&&this.unexpected(W),S.kind="method";const Y=this.match(138);this.parseClassElementName(S),this.parsePostMemberNameModifiers(A),Y?this.pushClassPrivateMethod(t,y,z,!0):(this.isNonstaticConstructor(p)&&this.raise(ze.ConstructorIsAsync,p.key),this.pushClassMethod(t,p,z,!0,!1,!1))}else if((q==="get"||q==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(C),S.kind=q;const z=this.match(138);this.parseClassElementName(p),z?this.pushClassPrivateMethod(t,y,!1,!1):(this.isNonstaticConstructor(p)&&this.raise(ze.ConstructorIsAccessor,p.key),this.pushClassMethod(t,p,!1,!1,!1,!1)),this.checkGetterSetterParams(p)}else if(q==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(C);const z=this.match(138);this.parseClassElementName(b),this.pushClassAccessorProperty(t,E,z)}else this.isLineTerminator()?M?this.pushClassPrivateProperty(t,v):this.pushClassProperty(t,b):this.unexpected()}parseClassElementName(t){const{type:a,value:i}=this.state;if((a===132||a===133)&&t.static&&i==="prototype"&&this.raise(ze.StaticPrototype,this.state.startLoc),a===138){i==="constructor"&&this.raise(ze.ConstructorClassPrivateField,this.state.startLoc);const d=this.parsePrivateName();return t.key=d,d}return this.parsePropertyName(t),t.key}parseClassStaticBlock(t,a){var i;this.scope.enter(208);const d=this.state.labels;this.state.labels=[],this.prodParam.enter(0);const p=a.body=[];this.parseBlockOrModuleBlockBody(p,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=d,t.body.push(this.finishNode(a,"StaticBlock")),(i=a.decorators)!=null&&i.length&&this.raise(ze.DecoratorStaticBlock,a)}pushClassProperty(t,a){!a.computed&&this.nameIsConstructor(a.key)&&this.raise(ze.ConstructorClassField,a.key),t.body.push(this.parseClassProperty(a))}pushClassPrivateProperty(t,a){const i=this.parseClassPrivateProperty(a);t.body.push(i),this.classScope.declarePrivateName(this.getPrivateNameSV(i.key),0,i.key.loc.start)}pushClassAccessorProperty(t,a,i){!i&&!a.computed&&this.nameIsConstructor(a.key)&&this.raise(ze.ConstructorClassField,a.key);const d=this.parseClassAccessorProperty(a);t.body.push(d),i&&this.classScope.declarePrivateName(this.getPrivateNameSV(d.key),0,d.key.loc.start)}pushClassMethod(t,a,i,d,p,y){t.body.push(this.parseMethod(a,i,d,p,y,"ClassMethod",!0))}pushClassPrivateMethod(t,a,i,d){const p=this.parseMethod(a,i,d,!1,!1,"ClassPrivateMethod",!0);t.body.push(p);const y=p.kind==="get"?p.static?6:2:p.kind==="set"?p.static?5:1:0;this.declareClassPrivateMethodInScope(p,y)}declareClassPrivateMethodInScope(t,a){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),a,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassPrivateProperty")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassProperty")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassAccessorProperty")}parseInitializer(t){this.scope.enter(80),this.expressionScope.enter(Xye()),this.prodParam.enter(0),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,a,i,d=8331){if(Ta(this.state.type))t.id=this.parseIdentifier(),a&&this.declareNameFromIdentifier(t.id,d);else if(i||!a)t.id=null;else throw this.raise(ze.MissingClassName,this.state.startLoc)}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t,a){const i=this.parseMaybeImportPhase(t,!0),d=this.maybeParseExportDefaultSpecifier(t,i),p=!d||this.eat(12),y=p&&this.eatExportStar(t),b=y&&this.maybeParseExportNamespaceSpecifier(t),v=p&&(!b||this.eat(12)),E=d||y;if(y&&!b){if(d&&this.unexpected(),a)throw this.raise(ze.UnsupportedDecoratorExport,t);return this.parseExportFrom(t,!0),this.finishNode(t,"ExportAllDeclaration")}const S=this.maybeParseExportNamedSpecifiers(t);d&&p&&!y&&!S&&this.unexpected(null,5),b&&v&&this.unexpected(null,98);let A;if(E||S){if(A=!1,a)throw this.raise(ze.UnsupportedDecoratorExport,t);this.parseExportFrom(t,E)}else A=this.maybeParseExportDeclaration(t);if(E||S||A){var _;const C=t;if(this.checkExport(C,!0,!1,!!C.source),((_=C.declaration)==null?void 0:_.type)==="ClassDeclaration")this.maybeTakeDecorators(a,C.declaration,C);else if(a)throw this.raise(ze.UnsupportedDecoratorExport,t);return this.finishNode(C,"ExportNamedDeclaration")}if(this.eat(65)){const C=t,q=this.parseExportDefaultExpression();if(C.declaration=q,q.type==="ClassDeclaration")this.maybeTakeDecorators(a,q,C);else if(a)throw this.raise(ze.UnsupportedDecoratorExport,t);return this.checkExport(C,!0,!0),this.finishNode(C,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t,a){if(a||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",a==null?void 0:a.loc.start);const i=a||this.parseIdentifier(!0),d=this.startNodeAtNode(i);return d.exported=i,t.specifiers=[this.finishNode(d,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){var a,i;(i=(a=t).specifiers)!=null||(a.specifiers=[]);const d=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),d.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(d,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){const a=t;a.specifiers||(a.specifiers=[]);const i=a.exportKind==="type";return a.specifiers.push(...this.parseExportSpecifiers(i)),a.source=null,a.declaration=null,this.hasPlugin("importAssertions")&&(a.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;const t=this.nextTokenInLineStart();return this.isUnparsedContextual(t,"function")}parseExportDefaultExpression(){const t=this.startNode();if(this.match(68))return this.next(),this.parseFunction(t,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(t,13);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(ze.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(ze.UnsupportedDefaultExport,this.state.startLoc);const a=this.parseMaybeAssignAllowIn();return this.semicolon(),a}parseExportDeclaration(t){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){const{type:t}=this.state;if(Ta(t)){if(t===95&&!this.state.containsEsc||t===100)return!1;if((t===130||t===129)&&!this.state.containsEsc){const{type:d}=this.lookahead();if(Ta(d)&&d!==98||d===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;const a=this.nextTokenStart(),i=this.isUnparsedContextual(a,"from");if(this.input.charCodeAt(a)===44||Ta(this.state.type)&&i)return!0;if(this.match(65)&&i){const d=this.input.charCodeAt(this.nextTokenStartSince(a+4));return d===34||d===39}return!1}parseExportFrom(t,a){this.eatContextual(98)?(t.source=this.parseImportSource(),this.checkExport(t),this.maybeParseImportAttributes(t),this.checkJSONModuleImport(t)):a&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){const{type:t}=this.state;return t===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(ze.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(ze.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(ze.UsingDeclarationExport,this.state.startLoc),!0):t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,a,i,d){if(a){var p;if(i){if(this.checkDuplicateExports(t,"default"),this.hasPlugin("exportDefaultFrom")){var y;const b=t.declaration;b.type==="Identifier"&&b.name==="from"&&b.end-b.start===4&&!((y=b.extra)!=null&&y.parenthesized)&&this.raise(ze.ExportDefaultFromAsIdentifier,b)}}else if((p=t.specifiers)!=null&&p.length)for(const b of t.specifiers){const{exported:v}=b,E=v.type==="Identifier"?v.name:v.value;if(this.checkDuplicateExports(b,E),!d&&b.local){const{local:S}=b;S.type!=="Identifier"?this.raise(ze.ExportBindingIsString,b,{localName:S.value,exportName:E}):(this.checkReservedWord(S.name,S.loc.start,!0,!1),this.scope.checkLocalExport(S))}}else if(t.declaration){const b=t.declaration;if(b.type==="FunctionDeclaration"||b.type==="ClassDeclaration"){const{id:v}=b;if(!v)throw new Error("Assertion failure");this.checkDuplicateExports(t,v.name)}else if(b.type==="VariableDeclaration")for(const v of b.declarations)this.checkDeclaration(v.id)}}}checkDeclaration(t){if(t.type==="Identifier")this.checkDuplicateExports(t,t.name);else if(t.type==="ObjectPattern")for(const a of t.properties)this.checkDeclaration(a);else if(t.type==="ArrayPattern")for(const a of t.elements)a&&this.checkDeclaration(a);else t.type==="ObjectProperty"?this.checkDeclaration(t.value):t.type==="RestElement"?this.checkDeclaration(t.argument):t.type==="AssignmentPattern"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,a){this.exportedIdentifiers.has(a)&&(a==="default"?this.raise(ze.DuplicateDefaultExport,t):this.raise(ze.DuplicateExport,t,{exportName:a})),this.exportedIdentifiers.add(a)}parseExportSpecifiers(t){const a=[];let i=!0;for(this.expect(5);!this.eat(8);){if(i)i=!1;else if(this.expect(12),this.eat(8))break;const d=this.isContextual(130),p=this.match(133),y=this.startNode();y.local=this.parseModuleExportName(),a.push(this.parseExportSpecifier(y,p,t,d))}return a}parseExportSpecifier(t,a,i,d){return this.eatContextual(93)?t.exported=this.parseModuleExportName():a?t.exported=x0t(t.local):t.exported||(t.exported=Rl(t.local)),this.finishNode(t,"ExportSpecifier")}parseModuleExportName(){if(this.match(133)){const t=this.parseStringLiteral(this.state.value),a=H0t.exec(t.value);return a&&this.raise(ze.ModuleExportNameHasLoneSurrogate,t,{surrogateCharCode:a[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}isJSONModuleImport(t){return t.assertions!=null?t.assertions.some(({key:a,value:i})=>i.value==="json"&&(a.type==="Identifier"?a.name==="type":a.value==="type")):!1}checkImportReflection(t){const{specifiers:a}=t,i=a.length===1?a[0].type:null;if(t.phase==="source")i!=="ImportDefaultSpecifier"&&this.raise(ze.SourcePhaseImportRequiresDefault,a[0].loc.start);else if(t.phase==="defer")i!=="ImportNamespaceSpecifier"&&this.raise(ze.DeferImportRequiresNamespace,a[0].loc.start);else if(t.module){var d;i!=="ImportDefaultSpecifier"&&this.raise(ze.ImportReflectionNotBinding,a[0].loc.start),((d=t.assertions)==null?void 0:d.length)>0&&this.raise(ze.ImportReflectionHasAssertion,a[0].loc.start)}}checkJSONModuleImport(t){if(this.isJSONModuleImport(t)&&t.type!=="ExportAllDeclaration"){const{specifiers:a}=t;if(a!=null){const i=a.find(d=>{let p;if(d.type==="ExportSpecifier"?p=d.local:d.type==="ImportSpecifier"&&(p=d.imported),p!==void 0)return p.type==="Identifier"?p.name!=="default":p.value!=="default"});i!==void 0&&this.raise(ze.ImportJSONBindingNotDefault,i.loc.start)}}}isPotentialImportPhase(t){return t?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(t,a,i,d){a||(i==="module"?(this.expectPlugin("importReflection",d),t.module=!0):this.hasPlugin("importReflection")&&(t.module=!1),i==="source"?(this.expectPlugin("sourcePhaseImports",d),t.phase="source"):i==="defer"?(this.expectPlugin("deferredImportEvaluation",d),t.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(t.phase=null))}parseMaybeImportPhase(t,a){if(!this.isPotentialImportPhase(a))return this.applyImportPhase(t,a,null),null;const i=this.parseIdentifier(!0),{type:d}=this.state;return(Hi(d)?d!==98||this.lookaheadCharCode()===102:d!==12)?(this.resetPreviousIdentifierLeadingComments(i),this.applyImportPhase(t,a,i.name,i.loc.start),null):(this.applyImportPhase(t,a,null),i)}isPrecedingIdImportPhase(t){const{type:a}=this.state;return Ta(a)?a!==98||this.lookaheadCharCode()===102:a!==12}parseImport(t){return this.match(133)?this.parseImportSourceAndAttributes(t):this.parseImportSpecifiersAndAfter(t,this.parseMaybeImportPhase(t,!1))}parseImportSpecifiersAndAfter(t,a){t.specifiers=[];const d=!this.maybeParseDefaultImportSpecifier(t,a)||this.eat(12),p=d&&this.maybeParseStarImportSpecifier(t);return d&&!p&&this.parseNamedImportSpecifiers(t),this.expectContextual(98),this.parseImportSourceAndAttributes(t)}parseImportSourceAndAttributes(t){var a;return(a=t.specifiers)!=null||(t.specifiers=[]),t.source=this.parseImportSource(),this.maybeParseImportAttributes(t),this.checkImportReflection(t),this.checkJSONModuleImport(t),this.semicolon(),this.finishNode(t,"ImportDeclaration")}parseImportSource(){return this.match(133)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(t,a,i){a.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(a,i))}finishImportSpecifier(t,a,i=8201){return this.checkLVal(t.local,{type:a},i),this.finishNode(t,a)}parseImportAttributes(){this.expect(5);const t=[],a=new Set;do{if(this.match(8))break;const i=this.startNode(),d=this.state.value;if(a.has(d)&&this.raise(ze.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:d}),a.add(d),this.match(133)?i.key=this.parseStringLiteral(d):i.key=this.parseIdentifier(!0),this.expect(14),!this.match(133))throw this.raise(ze.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return this.expect(8),t}parseModuleAttributes(){const t=[],a=new Set;do{const i=this.startNode();if(i.key=this.parseIdentifier(!0),i.key.name!=="type"&&this.raise(ze.ModuleAttributeDifferentFromType,i.key),a.has(i.key.name)&&this.raise(ze.ModuleAttributesWithDuplicateKeys,i.key,{key:i.key.name}),a.add(i.key.name),this.expect(14),!this.match(133))throw this.raise(ze.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return t}maybeParseImportAttributes(t){let a,i=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?a=this.parseModuleAttributes():(this.expectImportAttributesPlugin(),a=this.parseImportAttributes()),i=!0}else if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.hasPlugin("importAttributes")?(this.getPluginOption("importAttributes","deprecatedAssertSyntax")!==!0&&this.raise(ze.ImportAttributesUseAssert,this.state.startLoc),this.addExtra(t,"deprecatedAssertSyntax",!0)):this.expectOnePlugin(["importAttributes","importAssertions"]),this.next(),a=this.parseImportAttributes();else if(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))a=[];else if(this.hasPlugin("moduleAttributes"))a=[];else return;!i&&this.hasPlugin("importAssertions")?t.assertions=a:t.attributes=a}maybeParseDefaultImportSpecifier(t,a){if(a){const i=this.startNodeAtNode(a);return i.local=a,t.specifiers.push(this.finishImportSpecifier(i,"ImportDefaultSpecifier")),!0}else if(Hi(this.state.type))return this.parseImportSpecifierLocal(t,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(t){if(this.match(55)){const a=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,a,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(t){let a=!0;for(this.expect(5);!this.eat(8);){if(a)a=!1;else{if(this.eat(14))throw this.raise(ze.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}const i=this.startNode(),d=this.match(133),p=this.isContextual(130);i.imported=this.parseModuleExportName();const y=this.parseImportSpecifier(i,d,t.importKind==="type"||t.importKind==="typeof",p,void 0);t.specifiers.push(y)}}parseImportSpecifier(t,a,i,d,p){if(this.eatContextual(93))t.local=this.parseIdentifier();else{const{imported:y}=t;if(a)throw this.raise(ze.ImportBindingIsString,t,{importName:y.value});this.checkReservedWord(y.name,t.loc.start,!0,!0),t.local||(t.local=Rl(y))}return this.finishImportSpecifier(t,"ImportSpecifier",p)}isThisParam(t){return t.type==="Identifier"&&t.name==="this"}},ege=class extends X0t{constructor(t,a,i){t=W0t(t),super(t,a),this.options=t,this.initializeScopes(),this.plugins=i,this.filename=t.sourceFilename}getScopeHandler(){return AL}parse(){this.enterInitialScopes();const t=this.startNode(),a=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,a),t.errors=this.state.errors,t.comments.length=this.state.commentsLen,t}};function J0t(n,t){var a;if(((a=t)==null?void 0:a.sourceType)==="unambiguous"){t=Object.assign({},t);try{t.sourceType="module";const i=ry(t,n),d=i.parse();if(i.sawUnambiguousESM)return d;if(i.ambiguousScriptDifferentAst)try{return t.sourceType="script",ry(t,n).parse()}catch{}else d.program.sourceType="script";return d}catch(i){try{return t.sourceType="script",ry(t,n).parse()}catch{}throw i}}else return ry(t,n).parse()}function Y0t(n,t){const a=ry(t,n);return a.options.strictMode&&(a.state.strict=!0),a.getExpression()}function Q0t(n){const t={};for(const a of Object.keys(n))t[a]=ll(n[a]);return t}const Z0t=Q0t(O1t);function ry(n,t){let a=ege;const i=new Map;if(n!=null&&n.plugins){for(const d of n.plugins){let p,y;typeof d=="string"?p=d:[p,y]=d,i.has(p)||i.set(p,y||{})}U0t(i),a=evt(i)}return new a(n,t,i)}const lfe=new Map;function evt(n){const t=[];for(const d of V0t)n.has(d)&&t.push(d);const a=t.join("|");let i=lfe.get(a);if(!i){i=ege;for(const d of t)i=Zye[d](i);lfe.set(a,i)}return i}Uy.parse=J0t;var tvt=Uy.parseExpression=Y0t;Uy.tokTypes=Z0t;var j6={},Vy={},O6={};Object.defineProperty(O6,"__esModule",{value:!0});O6.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;O6.matchToToken=function(n){var t={type:"invalid",value:n[0],closed:void 0};return n[1]?(t.type="string",t.closed=!!(n[3]||n[4])):n[5]?t.type="comment":n[6]?(t.type="comment",t.closed=!!n[7]):n[8]?t.type="regex":n[9]?t.type="number":n[10]?t.type="name":n[11]?t.type="punctuator":n[12]&&(t.type="whitespace"),t};var CL={exports:{}},ta=String,tge=function(){return{isColorSupported:!1,reset:ta,bold:ta,dim:ta,italic:ta,underline:ta,inverse:ta,hidden:ta,strikethrough:ta,black:ta,red:ta,green:ta,yellow:ta,blue:ta,magenta:ta,cyan:ta,white:ta,gray:ta,bgBlack:ta,bgRed:ta,bgGreen:ta,bgYellow:ta,bgBlue:ta,bgMagenta:ta,bgCyan:ta,bgWhite:ta,blackBright:ta,redBright:ta,greenBright:ta,yellowBright:ta,blueBright:ta,magentaBright:ta,cyanBright:ta,whiteBright:ta,bgBlackBright:ta,bgRedBright:ta,bgGreenBright:ta,bgYellowBright:ta,bgBlueBright:ta,bgMagentaBright:ta,bgCyanBright:ta,bgWhiteBright:ta}};CL.exports=tge();CL.exports.createColors=tge;var rge=CL.exports,nN={exports:{}},sN,ufe;function rvt(){if(ufe)return sN;ufe=1;var n=/[|\\{}()[\]^$+*?.]/g;return sN=function(t){if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(n,"\\$&")},sN}var u2={exports:{}},iN={exports:{}},oN,cfe;function avt(){return cfe||(cfe=1,oN={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),oN}var dfe;function age(){if(dfe)return iN.exports;dfe=1;var n=avt(),t={};for(var a in n)n.hasOwnProperty(a)&&(t[n[a]]=a);var i=iN.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var d in i)if(i.hasOwnProperty(d)){if(!("channels"in i[d]))throw new Error("missing channels property: "+d);if(!("labels"in i[d]))throw new Error("missing channel labels property: "+d);if(i[d].labels.length!==i[d].channels)throw new Error("channel and label counts mismatch: "+d);var p=i[d].channels,y=i[d].labels;delete i[d].channels,delete i[d].labels,Object.defineProperty(i[d],"channels",{value:p}),Object.defineProperty(i[d],"labels",{value:y})}i.rgb.hsl=function(v){var E=v[0]/255,S=v[1]/255,A=v[2]/255,_=Math.min(E,S,A),C=Math.max(E,S,A),q=C-_,M,W,z;return C===_?M=0:E===C?M=(S-A)/q:S===C?M=2+(A-E)/q:A===C&&(M=4+(E-S)/q),M=Math.min(M*60,360),M<0&&(M+=360),z=(_+C)/2,C===_?W=0:z<=.5?W=q/(C+_):W=q/(2-C-_),[M,W*100,z*100]},i.rgb.hsv=function(v){var E,S,A,_,C,q=v[0]/255,M=v[1]/255,W=v[2]/255,z=Math.max(q,M,W),Y=z-Math.min(q,M,W),Z=function(ce){return(z-ce)/6/Y+1/2};return Y===0?_=C=0:(C=Y/z,E=Z(q),S=Z(M),A=Z(W),q===z?_=A-S:M===z?_=1/3+E-A:W===z&&(_=2/3+S-E),_<0?_+=1:_>1&&(_-=1)),[_*360,C*100,z*100]},i.rgb.hwb=function(v){var E=v[0],S=v[1],A=v[2],_=i.rgb.hsl(v)[0],C=1/255*Math.min(E,Math.min(S,A));return A=1-1/255*Math.max(E,Math.max(S,A)),[_,C*100,A*100]},i.rgb.cmyk=function(v){var E=v[0]/255,S=v[1]/255,A=v[2]/255,_,C,q,M;return M=Math.min(1-E,1-S,1-A),_=(1-E-M)/(1-M)||0,C=(1-S-M)/(1-M)||0,q=(1-A-M)/(1-M)||0,[_*100,C*100,q*100,M*100]};function b(v,E){return Math.pow(v[0]-E[0],2)+Math.pow(v[1]-E[1],2)+Math.pow(v[2]-E[2],2)}return i.rgb.keyword=function(v){var E=t[v];if(E)return E;var S=1/0,A;for(var _ in n)if(n.hasOwnProperty(_)){var C=n[_],q=b(v,C);q<S&&(S=q,A=_)}return A},i.keyword.rgb=function(v){return n[v]},i.rgb.xyz=function(v){var E=v[0]/255,S=v[1]/255,A=v[2]/255;E=E>.04045?Math.pow((E+.055)/1.055,2.4):E/12.92,S=S>.04045?Math.pow((S+.055)/1.055,2.4):S/12.92,A=A>.04045?Math.pow((A+.055)/1.055,2.4):A/12.92;var _=E*.4124+S*.3576+A*.1805,C=E*.2126+S*.7152+A*.0722,q=E*.0193+S*.1192+A*.9505;return[_*100,C*100,q*100]},i.rgb.lab=function(v){var E=i.rgb.xyz(v),S=E[0],A=E[1],_=E[2],C,q,M;return S/=95.047,A/=100,_/=108.883,S=S>.008856?Math.pow(S,1/3):7.787*S+16/116,A=A>.008856?Math.pow(A,1/3):7.787*A+16/116,_=_>.008856?Math.pow(_,1/3):7.787*_+16/116,C=116*A-16,q=500*(S-A),M=200*(A-_),[C,q,M]},i.hsl.rgb=function(v){var E=v[0]/360,S=v[1]/100,A=v[2]/100,_,C,q,M,W;if(S===0)return W=A*255,[W,W,W];A<.5?C=A*(1+S):C=A+S-A*S,_=2*A-C,M=[0,0,0];for(var z=0;z<3;z++)q=E+1/3*-(z-1),q<0&&q++,q>1&&q--,6*q<1?W=_+(C-_)*6*q:2*q<1?W=C:3*q<2?W=_+(C-_)*(2/3-q)*6:W=_,M[z]=W*255;return M},i.hsl.hsv=function(v){var E=v[0],S=v[1]/100,A=v[2]/100,_=S,C=Math.max(A,.01),q,M;return A*=2,S*=A<=1?A:2-A,_*=C<=1?C:2-C,M=(A+S)/2,q=A===0?2*_/(C+_):2*S/(A+S),[E,q*100,M*100]},i.hsv.rgb=function(v){var E=v[0]/60,S=v[1]/100,A=v[2]/100,_=Math.floor(E)%6,C=E-Math.floor(E),q=255*A*(1-S),M=255*A*(1-S*C),W=255*A*(1-S*(1-C));switch(A*=255,_){case 0:return[A,W,q];case 1:return[M,A,q];case 2:return[q,A,W];case 3:return[q,M,A];case 4:return[W,q,A];case 5:return[A,q,M]}},i.hsv.hsl=function(v){var E=v[0],S=v[1]/100,A=v[2]/100,_=Math.max(A,.01),C,q,M;return M=(2-S)*A,C=(2-S)*_,q=S*_,q/=C<=1?C:2-C,q=q||0,M/=2,[E,q*100,M*100]},i.hwb.rgb=function(v){var E=v[0]/360,S=v[1]/100,A=v[2]/100,_=S+A,C,q,M,W;_>1&&(S/=_,A/=_),C=Math.floor(6*E),q=1-A,M=6*E-C,C&1&&(M=1-M),W=S+M*(q-S);var z,Y,Z;switch(C){default:case 6:case 0:z=q,Y=W,Z=S;break;case 1:z=W,Y=q,Z=S;break;case 2:z=S,Y=q,Z=W;break;case 3:z=S,Y=W,Z=q;break;case 4:z=W,Y=S,Z=q;break;case 5:z=q,Y=S,Z=W;break}return[z*255,Y*255,Z*255]},i.cmyk.rgb=function(v){var E=v[0]/100,S=v[1]/100,A=v[2]/100,_=v[3]/100,C,q,M;return C=1-Math.min(1,E*(1-_)+_),q=1-Math.min(1,S*(1-_)+_),M=1-Math.min(1,A*(1-_)+_),[C*255,q*255,M*255]},i.xyz.rgb=function(v){var E=v[0]/100,S=v[1]/100,A=v[2]/100,_,C,q;return _=E*3.2406+S*-1.5372+A*-.4986,C=E*-.9689+S*1.8758+A*.0415,q=E*.0557+S*-.204+A*1.057,_=_>.0031308?1.055*Math.pow(_,1/2.4)-.055:_*12.92,C=C>.0031308?1.055*Math.pow(C,1/2.4)-.055:C*12.92,q=q>.0031308?1.055*Math.pow(q,1/2.4)-.055:q*12.92,_=Math.min(Math.max(0,_),1),C=Math.min(Math.max(0,C),1),q=Math.min(Math.max(0,q),1),[_*255,C*255,q*255]},i.xyz.lab=function(v){var E=v[0],S=v[1],A=v[2],_,C,q;return E/=95.047,S/=100,A/=108.883,E=E>.008856?Math.pow(E,1/3):7.787*E+16/116,S=S>.008856?Math.pow(S,1/3):7.787*S+16/116,A=A>.008856?Math.pow(A,1/3):7.787*A+16/116,_=116*S-16,C=500*(E-S),q=200*(S-A),[_,C,q]},i.lab.xyz=function(v){var E=v[0],S=v[1],A=v[2],_,C,q;C=(E+16)/116,_=S/500+C,q=C-A/200;var M=Math.pow(C,3),W=Math.pow(_,3),z=Math.pow(q,3);return C=M>.008856?M:(C-16/116)/7.787,_=W>.008856?W:(_-16/116)/7.787,q=z>.008856?z:(q-16/116)/7.787,_*=95.047,C*=100,q*=108.883,[_,C,q]},i.lab.lch=function(v){var E=v[0],S=v[1],A=v[2],_,C,q;return _=Math.atan2(A,S),C=_*360/2/Math.PI,C<0&&(C+=360),q=Math.sqrt(S*S+A*A),[E,q,C]},i.lch.lab=function(v){var E=v[0],S=v[1],A=v[2],_,C,q;return q=A/360*2*Math.PI,_=S*Math.cos(q),C=S*Math.sin(q),[E,_,C]},i.rgb.ansi16=function(v){var E=v[0],S=v[1],A=v[2],_=1 in arguments?arguments[1]:i.rgb.hsv(v)[2];if(_=Math.round(_/50),_===0)return 30;var C=30+(Math.round(A/255)<<2|Math.round(S/255)<<1|Math.round(E/255));return _===2&&(C+=60),C},i.hsv.ansi16=function(v){return i.rgb.ansi16(i.hsv.rgb(v),v[2])},i.rgb.ansi256=function(v){var E=v[0],S=v[1],A=v[2];if(E===S&&S===A)return E<8?16:E>248?231:Math.round((E-8)/247*24)+232;var _=16+36*Math.round(E/255*5)+6*Math.round(S/255*5)+Math.round(A/255*5);return _},i.ansi16.rgb=function(v){var E=v%10;if(E===0||E===7)return v>50&&(E+=3.5),E=E/10.5*255,[E,E,E];var S=(~~(v>50)+1)*.5,A=(E&1)*S*255,_=(E>>1&1)*S*255,C=(E>>2&1)*S*255;return[A,_,C]},i.ansi256.rgb=function(v){if(v>=232){var E=(v-232)*10+8;return[E,E,E]}v-=16;var S,A=Math.floor(v/36)/5*255,_=Math.floor((S=v%36)/6)/5*255,C=S%6/5*255;return[A,_,C]},i.rgb.hex=function(v){var E=((Math.round(v[0])&255)<<16)+((Math.round(v[1])&255)<<8)+(Math.round(v[2])&255),S=E.toString(16).toUpperCase();return"000000".substring(S.length)+S},i.hex.rgb=function(v){var E=v.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!E)return[0,0,0];var S=E[0];E[0].length===3&&(S=S.split("").map(function(M){return M+M}).join(""));var A=parseInt(S,16),_=A>>16&255,C=A>>8&255,q=A&255;return[_,C,q]},i.rgb.hcg=function(v){var E=v[0]/255,S=v[1]/255,A=v[2]/255,_=Math.max(Math.max(E,S),A),C=Math.min(Math.min(E,S),A),q=_-C,M,W;return q<1?M=C/(1-q):M=0,q<=0?W=0:_===E?W=(S-A)/q%6:_===S?W=2+(A-E)/q:W=4+(E-S)/q+4,W/=6,W%=1,[W*360,q*100,M*100]},i.hsl.hcg=function(v){var E=v[1]/100,S=v[2]/100,A=1,_=0;return S<.5?A=2*E*S:A=2*E*(1-S),A<1&&(_=(S-.5*A)/(1-A)),[v[0],A*100,_*100]},i.hsv.hcg=function(v){var E=v[1]/100,S=v[2]/100,A=E*S,_=0;return A<1&&(_=(S-A)/(1-A)),[v[0],A*100,_*100]},i.hcg.rgb=function(v){var E=v[0]/360,S=v[1]/100,A=v[2]/100;if(S===0)return[A*255,A*255,A*255];var _=[0,0,0],C=E%1*6,q=C%1,M=1-q,W=0;switch(Math.floor(C)){case 0:_[0]=1,_[1]=q,_[2]=0;break;case 1:_[0]=M,_[1]=1,_[2]=0;break;case 2:_[0]=0,_[1]=1,_[2]=q;break;case 3:_[0]=0,_[1]=M,_[2]=1;break;case 4:_[0]=q,_[1]=0,_[2]=1;break;default:_[0]=1,_[1]=0,_[2]=M}return W=(1-S)*A,[(S*_[0]+W)*255,(S*_[1]+W)*255,(S*_[2]+W)*255]},i.hcg.hsv=function(v){var E=v[1]/100,S=v[2]/100,A=E+S*(1-E),_=0;return A>0&&(_=E/A),[v[0],_*100,A*100]},i.hcg.hsl=function(v){var E=v[1]/100,S=v[2]/100,A=S*(1-E)+.5*E,_=0;return A>0&&A<.5?_=E/(2*A):A>=.5&&A<1&&(_=E/(2*(1-A))),[v[0],_*100,A*100]},i.hcg.hwb=function(v){var E=v[1]/100,S=v[2]/100,A=E+S*(1-E);return[v[0],(A-E)*100,(1-A)*100]},i.hwb.hcg=function(v){var E=v[1]/100,S=v[2]/100,A=1-S,_=A-E,C=0;return _<1&&(C=(A-_)/(1-_)),[v[0],_*100,C*100]},i.apple.rgb=function(v){return[v[0]/65535*255,v[1]/65535*255,v[2]/65535*255]},i.rgb.apple=function(v){return[v[0]/255*65535,v[1]/255*65535,v[2]/255*65535]},i.gray.rgb=function(v){return[v[0]/100*255,v[0]/100*255,v[0]/100*255]},i.gray.hsl=i.gray.hsv=function(v){return[0,0,v[0]]},i.gray.hwb=function(v){return[0,100,v[0]]},i.gray.cmyk=function(v){return[0,0,0,v[0]]},i.gray.lab=function(v){return[v[0],0,0]},i.gray.hex=function(v){var E=Math.round(v[0]/100*255)&255,S=(E<<16)+(E<<8)+E,A=S.toString(16).toUpperCase();return"000000".substring(A.length)+A},i.rgb.gray=function(v){var E=(v[0]+v[1]+v[2])/3;return[E/255*100]},iN.exports}var lN,pfe;function nvt(){if(pfe)return lN;pfe=1;var n=age();function t(){for(var p={},y=Object.keys(n),b=y.length,v=0;v<b;v++)p[y[v]]={distance:-1,parent:null};return p}function a(p){var y=t(),b=[p];for(y[p].distance=0;b.length;)for(var v=b.pop(),E=Object.keys(n[v]),S=E.length,A=0;A<S;A++){var _=E[A],C=y[_];C.distance===-1&&(C.distance=y[v].distance+1,C.parent=v,b.unshift(_))}return y}function i(p,y){return function(b){return y(p(b))}}function d(p,y){for(var b=[y[p].parent,p],v=n[y[p].parent][p],E=y[p].parent;y[E].parent;)b.unshift(y[E].parent),v=i(n[y[E].parent][E],v),E=y[E].parent;return v.conversion=b,v}return lN=function(p){for(var y=a(p),b={},v=Object.keys(y),E=v.length,S=0;S<E;S++){var A=v[S],_=y[A];_.parent!==null&&(b[A]=d(A,y))}return b},lN}var uN,ffe;function svt(){if(ffe)return uN;ffe=1;var n=age(),t=nvt(),a={},i=Object.keys(n);function d(y){var b=function(v){return v==null?v:(arguments.length>1&&(v=Array.prototype.slice.call(arguments)),y(v))};return"conversion"in y&&(b.conversion=y.conversion),b}function p(y){var b=function(v){if(v==null)return v;arguments.length>1&&(v=Array.prototype.slice.call(arguments));var E=y(v);if(typeof E=="object")for(var S=E.length,A=0;A<S;A++)E[A]=Math.round(E[A]);return E};return"conversion"in y&&(b.conversion=y.conversion),b}return i.forEach(function(y){a[y]={},Object.defineProperty(a[y],"channels",{value:n[y].channels}),Object.defineProperty(a[y],"labels",{value:n[y].labels});var b=t(y),v=Object.keys(b);v.forEach(function(E){var S=b[E];a[y][E]=p(S),a[y][E].raw=d(S)})}),uN=a,uN}u2.exports;var hfe;function ivt(){return hfe||(hfe=1,function(n){const t=svt(),a=(y,b)=>function(){return`\x1B[${y.apply(t,arguments)+b}m`},i=(y,b)=>function(){const v=y.apply(t,arguments);return`\x1B[${38+b};5;${v}m`},d=(y,b)=>function(){const v=y.apply(t,arguments);return`\x1B[${38+b};2;${v[0]};${v[1]};${v[2]}m`};function p(){const y=new Map,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};b.color.grey=b.color.gray;for(const S of Object.keys(b)){const A=b[S];for(const _ of Object.keys(A)){const C=A[_];b[_]={open:`\x1B[${C[0]}m`,close:`\x1B[${C[1]}m`},A[_]=b[_],y.set(C[0],C[1])}Object.defineProperty(b,S,{value:A,enumerable:!1}),Object.defineProperty(b,"codes",{value:y,enumerable:!1})}const v=S=>S,E=(S,A,_)=>[S,A,_];b.color.close="\x1B[39m",b.bgColor.close="\x1B[49m",b.color.ansi={ansi:a(v,0)},b.color.ansi256={ansi256:i(v,0)},b.color.ansi16m={rgb:d(E,0)},b.bgColor.ansi={ansi:a(v,10)},b.bgColor.ansi256={ansi256:i(v,10)},b.bgColor.ansi16m={rgb:d(E,10)};for(let S of Object.keys(t)){if(typeof t[S]!="object")continue;const A=t[S];S==="ansi16"&&(S="ansi"),"ansi16"in A&&(b.color.ansi[S]=a(A.ansi16,0),b.bgColor.ansi[S]=a(A.ansi16,10)),"ansi256"in A&&(b.color.ansi256[S]=i(A.ansi256,0),b.bgColor.ansi256[S]=i(A.ansi256,10)),"rgb"in A&&(b.color.ansi16m[S]=d(A.rgb,0),b.bgColor.ansi16m[S]=d(A.rgb,10))}return b}Object.defineProperty(n,"exports",{enumerable:!0,get:p})}(u2)),u2.exports}var cN,mfe;function ovt(){return mfe||(mfe=1,cN={stdout:!1,stderr:!1}),cN}var dN,yfe;function lvt(){if(yfe)return dN;yfe=1;const n=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,t=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,a=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,d=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function p(E){return E[0]==="u"&&E.length===5||E[0]==="x"&&E.length===3?String.fromCharCode(parseInt(E.slice(1),16)):d.get(E)||E}function y(E,S){const A=[],_=S.trim().split(/\s*,\s*/g);let C;for(const q of _)if(!isNaN(q))A.push(Number(q));else if(C=q.match(a))A.push(C[2].replace(i,(M,W,z)=>W?p(W):z));else throw new Error(`Invalid Chalk template style argument: ${q} (in style '${E}')`);return A}function b(E){t.lastIndex=0;const S=[];let A;for(;(A=t.exec(E))!==null;){const _=A[1];if(A[2]){const C=y(_,A[2]);S.push([_].concat(C))}else S.push([_])}return S}function v(E,S){const A={};for(const C of S)for(const q of C.styles)A[q[0]]=C.inverse?null:q.slice(1);let _=E;for(const C of Object.keys(A))if(Array.isArray(A[C])){if(!(C in _))throw new Error(`Unknown Chalk style: ${C}`);A[C].length>0?_=_[C].apply(_,A[C]):_=_[C]}return _}return dN=(E,S)=>{const A=[],_=[];let C=[];if(S.replace(n,(q,M,W,z,Y,Z)=>{if(M)C.push(p(M));else if(z){const ce=C.join("");C=[],_.push(A.length===0?ce:v(E,A)(ce)),A.push({inverse:W,styles:b(z)})}else if(Y){if(A.length===0)throw new Error("Found extraneous } in Chalk template literal");_.push(v(E,A)(C.join(""))),C=[],A.pop()}else C.push(Z)}),_.push(C.join("")),A.length>0){const q=`Chalk template literal is missing ${A.length} closing bracket${A.length===1?"":"s"} (\`}\`)`;throw new Error(q)}return _.join("")},dN}var gfe;function uvt(){return gfe||(gfe=1,function(n){const t=rvt(),a=ivt(),i=ovt().stdout,d=lvt(),p=process.platform==="win32"&&!(ra.TERM||"").toLowerCase().startsWith("xterm"),y=["ansi","ansi","ansi256","ansi16m"],b=new Set(["gray"]),v=Object.create(null);function E(M,W){W=W||{};const z=i?i.level:0;M.level=W.level===void 0?z:W.level,M.enabled="enabled"in W?W.enabled:M.level>0}function S(M){if(!this||!(this instanceof S)||this.template){const W={};return E(W,M),W.template=function(){const z=[].slice.call(arguments);return q.apply(null,[W.template].concat(z))},Object.setPrototypeOf(W,S.prototype),Object.setPrototypeOf(W.template,W),W.template.constructor=S,W.template}E(this,M)}p&&(a.blue.open="\x1B[94m");for(const M of Object.keys(a))a[M].closeRe=new RegExp(t(a[M].close),"g"),v[M]={get(){const W=a[M];return _.call(this,this._styles?this._styles.concat(W):[W],this._empty,M)}};v.visible={get(){return _.call(this,this._styles||[],!0,"visible")}},a.color.closeRe=new RegExp(t(a.color.close),"g");for(const M of Object.keys(a.color.ansi))b.has(M)||(v[M]={get(){const W=this.level;return function(){const Y={open:a.color[y[W]][M].apply(null,arguments),close:a.color.close,closeRe:a.color.closeRe};return _.call(this,this._styles?this._styles.concat(Y):[Y],this._empty,M)}}});a.bgColor.closeRe=new RegExp(t(a.bgColor.close),"g");for(const M of Object.keys(a.bgColor.ansi)){if(b.has(M))continue;const W="bg"+M[0].toUpperCase()+M.slice(1);v[W]={get(){const z=this.level;return function(){const Z={open:a.bgColor[y[z]][M].apply(null,arguments),close:a.bgColor.close,closeRe:a.bgColor.closeRe};return _.call(this,this._styles?this._styles.concat(Z):[Z],this._empty,M)}}}}const A=Object.defineProperties(()=>{},v);function _(M,W,z){const Y=function(){return C.apply(Y,arguments)};Y._styles=M,Y._empty=W;const Z=this;return Object.defineProperty(Y,"level",{enumerable:!0,get(){return Z.level},set(ce){Z.level=ce}}),Object.defineProperty(Y,"enabled",{enumerable:!0,get(){return Z.enabled},set(ce){Z.enabled=ce}}),Y.hasGrey=this.hasGrey||z==="gray"||z==="grey",Y.__proto__=A,Y}function C(){const M=arguments,W=M.length;let z=String(arguments[0]);if(W===0)return"";if(W>1)for(let Z=1;Z<W;Z++)z+=" "+M[Z];if(!this.enabled||this.level<=0||!z)return this._empty?"":z;const Y=a.dim.open;p&&this.hasGrey&&(a.dim.open="");for(const Z of this._styles.slice().reverse())z=Z.open+z.replace(Z.closeRe,Z.open)+Z.close,z=z.replace(/\r?\n/g,`${Z.close}$&${Z.open}`);return a.dim.open=Y,z}function q(M,W){if(!Array.isArray(W))return[].slice.call(arguments,1).join(" ");const z=[].slice.call(arguments,2),Y=[W.raw[0]];for(let Z=1;Z<W.length;Z++)Y.push(String(z[Z-1]).replace(/[{}\\]/g,"\\$&")),Y.push(String(W.raw[Z]));return d(M,Y.join(""))}Object.defineProperties(S.prototype,v),n.exports=S(),n.exports.supportsColor=i,n.exports.default=n.exports}(nN)),nN.exports}Object.defineProperty(Vy,"__esModule",{value:!0});Vy.default=gvt;Vy.shouldHighlight=oge;var vfe=O6,bfe=My,Sk=cvt(rge,!0);function nge(n){if(typeof WeakMap!="function")return null;var t=new WeakMap,a=new WeakMap;return(nge=function(i){return i?a:t})(n)}function cvt(n,t){if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var a=nge(t);if(a&&a.has(n))return a.get(n);var i={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in n)if(p!=="default"&&{}.hasOwnProperty.call(n,p)){var y=d?Object.getOwnPropertyDescriptor(n,p):null;y&&(y.get||y.set)?Object.defineProperty(i,p,y):i[p]=n[p]}return i.default=n,a&&a.set(n,i),i}const sge=typeof process=="object"&&(ra.FORCE_COLOR==="0"||ra.FORCE_COLOR==="false")?(0,Sk.createColors)(!1):Sk.default,xfe=(n,t)=>a=>n(t(a)),dvt=new Set(["as","async","from","get","of","set"]);function pvt(n){return{keyword:n.cyan,capitalized:n.yellow,jsxIdentifier:n.yellow,punctuator:n.yellow,number:n.magenta,string:n.green,regex:n.magenta,comment:n.gray,invalid:xfe(xfe(n.white,n.bgRed),n.bold)}}const fvt=/\r\n|[\n\r\u2028\u2029]/,hvt=/^[()[\]{}]$/;let ige;{const n=/^[a-z][\w-]*$/i,t=function(a,i,d){if(a.type==="name"){if((0,bfe.isKeyword)(a.value)||(0,bfe.isStrictReservedWord)(a.value,!0)||dvt.has(a.value))return"keyword";if(n.test(a.value)&&(d[i-1]==="<"||d.slice(i-2,i)==="</"))return"jsxIdentifier";if(a.value[0]!==a.value[0].toLowerCase())return"capitalized"}return a.type==="punctuator"&&hvt.test(a.value)?"bracket":a.type==="invalid"&&(a.value==="@"||a.value==="#")?"punctuator":a.type};ige=function*(a){let i;for(;i=vfe.default.exec(a);){const d=vfe.matchToToken(i);yield{type:t(d,i.index,a),value:d.value}}}}function mvt(n,t){let a="";for(const{type:i,value:d}of ige(t)){const p=n[i];p?a+=d.split(fvt).map(y=>p(y)).join(` +`):a+=d}return a}function oge(n){return sge.isColorSupported||n.forceColor}let pN;function yvt(n){if(n){var t;return(t=pN)!=null||(pN=(0,Sk.createColors)(!0)),pN}return sge}function gvt(n,t={}){if(n!==""&&oge(t)){const a=pvt(yvt(t.forceColor));return mvt(a,n)}else return n}{let n,t;Vy.getChalk=({forceColor:a})=>{var i;if((i=n)!=null||(n=uvt()),a){var d;return(d=t)!=null||(t=new n.constructor({enabled:!0,level:1})),t}return n}}Object.defineProperty(j6,"__esModule",{value:!0});var vvt=j6.codeFrameColumns=uge;j6.default=Tvt;var Rfe=Vy,Tk=bvt(rge,!0);function lge(n){if(typeof WeakMap!="function")return null;var t=new WeakMap,a=new WeakMap;return(lge=function(i){return i?a:t})(n)}function bvt(n,t){if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var a=lge(t);if(a&&a.has(n))return a.get(n);var i={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in n)if(p!=="default"&&{}.hasOwnProperty.call(n,p)){var y=d?Object.getOwnPropertyDescriptor(n,p):null;y&&(y.get||y.set)?Object.defineProperty(i,p,y):i[p]=n[p]}return i.default=n,a&&a.set(n,i),i}const xvt=typeof process=="object"&&(ra.FORCE_COLOR==="0"||ra.FORCE_COLOR==="false")?(0,Tk.createColors)(!1):Tk.default,Efe=(n,t)=>a=>n(t(a));let fN;function Rvt(n){if(n){var t;return(t=fN)!=null||(fN=(0,Tk.createColors)(!0)),fN}return xvt}let Sfe=!1;function Evt(n){return{gutter:n.gray,marker:Efe(n.red,n.bold),message:Efe(n.red,n.bold)}}const Tfe=/\r\n|[\n\r\u2028\u2029]/;function Svt(n,t,a){const i=Object.assign({column:0,line:-1},n.start),d=Object.assign({},i,n.end),{linesAbove:p=2,linesBelow:y=3}=a||{},b=i.line,v=i.column,E=d.line,S=d.column;let A=Math.max(b-(p+1),0),_=Math.min(t.length,E+y);b===-1&&(A=0),E===-1&&(_=t.length);const C=E-b,q={};if(C)for(let M=0;M<=C;M++){const W=M+b;if(!v)q[W]=!0;else if(M===0){const z=t[W-1].length;q[W]=[v,z-v+1]}else if(M===C)q[W]=[0,S];else{const z=t[W-M].length;q[W]=[0,z]}}else v===S?v?q[b]=[v,0]:q[b]=!0:q[b]=[v,S-v];return{start:A,end:_,markerLines:q}}function uge(n,t,a={}){const i=(a.highlightCode||a.forceColor)&&(0,Rfe.shouldHighlight)(a),d=Rvt(a.forceColor),p=Evt(d),y=(M,W)=>i?M(W):W,b=n.split(Tfe),{start:v,end:E,markerLines:S}=Svt(t,b,a),A=t.start&&typeof t.start.column=="number",_=String(E).length;let q=(i?(0,Rfe.default)(n,a):n).split(Tfe,E).slice(v,E).map((M,W)=>{const z=v+1+W,Z=` ${` ${z}`.slice(-_)} |`,ce=S[z],ge=!S[z+1];if(ce){let Ge="";if(Array.isArray(ce)){const Je=M.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),re=ce[1]||1;Ge=[` + `,y(p.gutter,Z.replace(/\d/g," "))," ",Je,y(p.marker,"^").repeat(re)].join(""),ge&&a.message&&(Ge+=" "+y(p.message,a.message))}return[y(p.marker,">"),y(p.gutter,Z),M.length>0?` ${M}`:"",Ge].join("")}else return` ${y(p.gutter,Z)}${M.length>0?` ${M}`:""}`}).join(` +`);return a.message&&!A&&(q=`${" ".repeat(_+1)}${a.message} +${q}`),i?d.reset(q):q}function Tvt(n,t,a,i={}){if(!Sfe){Sfe=!0;const p="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning)process.emitWarning(p,"DeprecationWarning");else{const y=new Error(p);y.name="DeprecationWarning",console.warn(new Error(p))}}return a=Math.max(a,0),uge(n,{start:{column:a,line:t}},i)}Object.defineProperty(I6,"__esModule",{value:!0});I6.default=Bvt;var wvt=Ol(),Pvt=Uy,Avt=j6;const{isCallExpression:Ivt,isExpressionStatement:Cvt,isFunction:jvt,isIdentifier:Ovt,isJSXIdentifier:_vt,isNewExpression:Nvt,isPlaceholder:Lb,isStatement:kvt,isStringLiteral:wfe,removePropertiesDeep:Dvt,traverse:Lvt}=wvt,Mvt=/^[_$A-Z0-9]+$/;function Bvt(n,t,a){const{placeholderWhitelist:i,placeholderPattern:d,preserveComments:p,syntacticPlaceholders:y}=a,b=qvt(t,a.parser,y);Dvt(b,{preserveComments:p}),n.validate(b);const v={syntactic:{placeholders:[],placeholderNames:new Set},legacy:{placeholders:[],placeholderNames:new Set},placeholderWhitelist:i,placeholderPattern:d,syntacticPlaceholders:y};return Lvt(b,Fvt,v),Object.assign({ast:b},v.syntactic.placeholders.length?v.syntactic:v.legacy)}function Fvt(n,t,a){var i;let d,p=a.syntactic.placeholders.length>0;if(Lb(n)){if(a.syntacticPlaceholders===!1)throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");d=n.name.name,p=!0}else{if(p||a.syntacticPlaceholders)return;if(Ovt(n)||_vt(n))d=n.name;else if(wfe(n))d=n.value;else return}if(p&&(a.placeholderPattern!=null||a.placeholderWhitelist!=null))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");if(!p&&(a.placeholderPattern===!1||!(a.placeholderPattern||Mvt).test(d))&&!((i=a.placeholderWhitelist)!=null&&i.has(d)))return;t=t.slice();const{node:y,key:b}=t[t.length-1];let v;wfe(n)||Lb(n,{expectedNode:"StringLiteral"})?v="string":Nvt(y)&&b==="arguments"||Ivt(y)&&b==="arguments"||jvt(y)&&b==="params"?v="param":Cvt(y)&&!Lb(n)?(v="statement",t=t.slice(0,-1)):kvt(n)&&Lb(n)?v="statement":v="other";const{placeholders:E,placeholderNames:S}=p?a.syntactic:a.legacy;E.push({name:d,type:v,resolve:A=>$vt(A,t),isDuplicate:S.has(d)}),S.add(d)}function $vt(n,t){let a=n;for(let p=0;p<t.length-1;p++){const{key:y,index:b}=t[p];b===void 0?a=a[y]:a=a[y][b]}const{key:i,index:d}=t[t.length-1];return{parent:a,key:i,index:d}}function qvt(n,t,a){const i=(t.plugins||[]).slice();a!==!1&&i.push("placeholders"),t=Object.assign({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,sourceType:"module"},t,{plugins:i});try{return(0,Pvt.parse)(n,t)}catch(d){const p=d.loc;throw p&&(d.message+=` +`+(0,Avt.codeFrameColumns)(n,{start:p}),d.code="BABEL_TEMPLATE_PARSE_ERROR"),d}}var _6={};Object.defineProperty(_6,"__esModule",{value:!0});_6.default=Hvt;var Uvt=Ol();const{blockStatement:Vvt,cloneNode:wk,emptyStatement:Wvt,expressionStatement:hN,identifier:Mb,isStatement:Pfe,isStringLiteral:Gvt,stringLiteral:Kvt,validate:Afe}=Uvt;function Hvt(n,t){const a=wk(n.ast);return t&&(n.placeholders.forEach(i=>{if(!hasOwnProperty.call(t,i.name)){const d=i.name;throw new Error(`Error: No substitution given for "${d}". If this is not meant to be a + placeholder you may want to consider passing one of the following options to @babel/template: + - { placeholderPattern: false, placeholderWhitelist: new Set(['${d}'])} + - { placeholderPattern: /^${d}$/ }`)}}),Object.keys(t).forEach(i=>{if(!n.placeholderNames.has(i))throw new Error(`Unknown substitution "${i}" given`)})),n.placeholders.slice().reverse().forEach(i=>{try{zvt(i,a,t&&t[i.name]||null)}catch(d){throw d.message=`@babel/template placeholder "${i.name}": ${d.message}`,d}}),a}function zvt(n,t,a){n.isDuplicate&&(Array.isArray(a)?a=a.map(b=>wk(b)):typeof a=="object"&&(a=wk(a)));const{parent:i,key:d,index:p}=n.resolve(t);if(n.type==="string"){if(typeof a=="string"&&(a=Kvt(a)),!a||!Gvt(a))throw new Error("Expected string substitution")}else if(n.type==="statement")p===void 0?a?Array.isArray(a)?a=Vvt(a):typeof a=="string"?a=hN(Mb(a)):Pfe(a)||(a=hN(a)):a=Wvt():a&&!Array.isArray(a)&&(typeof a=="string"&&(a=Mb(a)),Pfe(a)||(a=hN(a)));else if(n.type==="param"){if(typeof a=="string"&&(a=Mb(a)),p===void 0)throw new Error("Assertion failure.")}else if(typeof a=="string"&&(a=Mb(a)),Array.isArray(a))throw new Error("Cannot replace single expression with an array.");function y(b,v,E){const S=b[v];b[v]=E,S.type==="Identifier"&&(S.typeAnnotation&&(E.typeAnnotation=S.typeAnnotation),S.optional&&(E.optional=S.optional),S.decorators&&(E.decorators=S.decorators))}if(p===void 0)Afe(i,d,a),y(i,d,a);else{const b=i[d].slice();n.type==="statement"||n.type==="param"?a==null?b.splice(p,1):Array.isArray(a)?b.splice(p,1,...a):y(b,p,a):y(b,p,a),Afe(i,d,b),i[d]=b}}Object.defineProperty(yL,"__esModule",{value:!0});yL.default=Qvt;var Xvt=cd,Jvt=I6,Yvt=_6;function Qvt(n,t,a){t=n.code(t);let i;return d=>{const p=(0,Xvt.normalizeReplacements)(d);return i||(i=(0,Jvt.default)(n,t,a)),n.unwrap((0,Yvt.default)(i,p))}}var jL={};Object.defineProperty(jL,"__esModule",{value:!0});jL.default=rbt;var Zvt=cd,ebt=I6,tbt=_6;function rbt(n,t,a){const{metadata:i,names:d}=abt(n,t,a);return p=>{const y={};return p.forEach((b,v)=>{y[d[v]]=b}),b=>{const v=(0,Zvt.normalizeReplacements)(b);return v&&Object.keys(v).forEach(E=>{if(hasOwnProperty.call(y,E))throw new Error("Unexpected replacement overlap.")}),n.unwrap((0,tbt.default)(i,v?Object.assign(v,y):y))}}}function abt(n,t,a){let i="BABEL_TPL$";const d=t.join("");do i="$$"+i;while(d.includes(i));const{names:p,code:y}=nbt(t,i);return{metadata:(0,ebt.default)(n,n.code(y),{parser:a.parser,placeholderWhitelist:new Set(p.concat(a.placeholderWhitelist?Array.from(a.placeholderWhitelist):[])),placeholderPattern:a.placeholderPattern,preserveComments:a.preserveComments,syntacticPlaceholders:a.syntacticPlaceholders}),names:p}}function nbt(n,t){const a=[];let i=n[0];for(let d=1;d<n.length;d++){const p=`${t}${d-1}`;a.push(p),i+=p+n[d]}return{names:a,code:i}}Object.defineProperty(mL,"__esModule",{value:!0});mL.default=cge;var go=cd,Ife=yL,Cfe=jL;const jfe=(0,go.validate)({placeholderPattern:!1});function cge(n,t){const a=new WeakMap,i=new WeakMap,d=t||(0,go.validate)(null);return Object.assign((p,...y)=>{if(typeof p=="string"){if(y.length>1)throw new Error("Unexpected extra params.");return Ofe((0,Ife.default)(n,p,(0,go.merge)(d,(0,go.validate)(y[0]))))}else if(Array.isArray(p)){let b=a.get(p);return b||(b=(0,Cfe.default)(n,p,d),a.set(p,b)),Ofe(b(y))}else if(typeof p=="object"&&p){if(y.length>0)throw new Error("Unexpected extra params.");return cge(n,(0,go.merge)(d,(0,go.validate)(p)))}throw new Error(`Unexpected template param ${typeof p}`)},{ast:(p,...y)=>{if(typeof p=="string"){if(y.length>1)throw new Error("Unexpected extra params.");return(0,Ife.default)(n,p,(0,go.merge)((0,go.merge)(d,(0,go.validate)(y[0])),jfe))()}else if(Array.isArray(p)){let b=i.get(p);return b||(b=(0,Cfe.default)(n,p,(0,go.merge)(d,jfe)),i.set(p,b)),b(y)()}throw new Error(`Unexpected template param ${typeof p}`)}})}function Ofe(n){let t="";try{throw new Error}catch(a){a.stack&&(t=a.stack.split(` +`).slice(3).join(` +`))}return a=>{try{return n(a)}catch(i){throw i.stack+=` + ============= +${t}`,i}}}var OL;Object.defineProperty(ai,"__esModule",{value:!0});ai.statements=ai.statement=ai.smart=ai.program=ai.expression=OL=ai.default=void 0;var Wy=ji,Gy=mL;const mN=ai.smart=(0,Gy.default)(Wy.smart),sbt=ai.statement=(0,Gy.default)(Wy.statement),ibt=ai.statements=(0,Gy.default)(Wy.statements),obt=ai.expression=(0,Gy.default)(Wy.expression),lbt=ai.program=(0,Gy.default)(Wy.program);OL=ai.default=Object.assign(mN.bind(void 0),{smart:mN,statement:sbt,statements:ibt,expression:obt,program:lbt,ast:mN.ast});var _L={},Ky={};Object.defineProperty(Ky,"__esModule",{value:!0});var dge=Ky.declare=pge;Ky.declarePreset=void 0;const Pk={assertVersion:n=>t=>{cbt(t,n.version)}};Object.assign(Pk,{targets:()=>()=>({}),assumption:()=>()=>{}});function pge(n){return(t,a,i)=>{var d;let p;for(const b of Object.keys(Pk)){var y;t[b]||((y=p)!=null||(p=ubt(t)),p[b]=Pk[b](p))}return n((d=p)!=null?d:t,a||{},i)}}Ky.declarePreset=pge;function ubt(n){let t=null;return typeof n.version=="string"&&/^7\./.test(n.version)&&(t=Object.getPrototypeOf(n),t&&(!hasOwnProperty.call(t,"version")||!hasOwnProperty.call(t,"transform")||!hasOwnProperty.call(t,"template")||!hasOwnProperty.call(t,"types"))&&(t=null)),Object.assign({},t,n)}function cbt(n,t){if(typeof n=="number"){if(!Number.isInteger(n))throw new Error("Expected string or integer value.");n=`^${n}.0.0-0`}if(typeof n!="string")throw new Error("Expected string or integer value.");const a=Error.stackTraceLimit;typeof a=="number"&&a<25&&(Error.stackTraceLimit=25);let i;throw t.slice(0,2)==="7."?i=new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${t}". You'll need to update your @babel/core version.`):i=new Error(`Requires Babel "${n}", but was loaded with "${t}". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.`),typeof a=="number"&&(Error.stackTraceLimit=a),Object.assign(i,{code:"BABEL_VERSION_UNSUPPORTED",version:t,range:n})}Object.defineProperty(_L,"__esModule",{value:!0});var fge=_L.default=void 0,dbt=Ky;fge=_L.default=(0,dbt.declare)(n=>(n.assertVersion(7),{name:"syntax-jsx",manipulateOptions(t,a){a.plugins.some(i=>(Array.isArray(i)?i[0]:i)==="typescript")||a.plugins.push("jsx")}}));var kp={},N6={},yN={exports:{}},gN={},qp={},hge={},NL=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},a=Symbol("test"),i=Object(a);if(typeof a=="string"||Object.prototype.toString.call(a)!=="[object Symbol]"||Object.prototype.toString.call(i)!=="[object Symbol]")return!1;var d=42;t[a]=d;for(a in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var p=Object.getOwnPropertySymbols(t);if(p.length!==1||p[0]!==a||!Object.prototype.propertyIsEnumerable.call(t,a))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var y=Object.getOwnPropertyDescriptor(t,a);if(y.value!==d||y.enumerable!==!0)return!1}return!0},pbt=NL,kL=function(){return pbt()&&!!Symbol.toStringTag},fbt=Error,hbt=EvalError,mbt=RangeError,ybt=ReferenceError,mge=SyntaxError,k6=TypeError,gbt=URIError,_fe=typeof Symbol<"u"&&Symbol,vbt=NL,bbt=function(){return typeof _fe!="function"||typeof Symbol!="function"||typeof _fe("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:vbt()},vN={__proto__:null,foo:{}},xbt=Object,Rbt=function(){return{__proto__:vN}.foo===vN.foo&&!(vN instanceof xbt)},Ebt="Function.prototype.bind called on incompatible ",Sbt=Object.prototype.toString,Tbt=Math.max,wbt="[object Function]",Nfe=function(t,a){for(var i=[],d=0;d<t.length;d+=1)i[d]=t[d];for(var p=0;p<a.length;p+=1)i[p+t.length]=a[p];return i},Pbt=function(t,a){for(var i=[],d=a,p=0;d<t.length;d+=1,p+=1)i[p]=t[d];return i},Abt=function(n,t){for(var a="",i=0;i<n.length;i+=1)a+=n[i],i+1<n.length&&(a+=t);return a},Ibt=function(t){var a=this;if(typeof a!="function"||Sbt.apply(a)!==wbt)throw new TypeError(Ebt+a);for(var i=Pbt(arguments,1),d,p=function(){if(this instanceof d){var S=a.apply(this,Nfe(i,arguments));return Object(S)===S?S:this}return a.apply(t,Nfe(i,arguments))},y=Tbt(0,a.length-i.length),b=[],v=0;v<y;v++)b[v]="$"+v;if(d=Function("binder","return function ("+Abt(b,",")+"){ return binder.apply(this,arguments); }")(p),a.prototype){var E=function(){};E.prototype=a.prototype,d.prototype=new E,E.prototype=null}return d},Cbt=Ibt,DL=Function.prototype.bind||Cbt,jbt=Function.prototype.call,Obt=Object.prototype.hasOwnProperty,_bt=DL,Nbt=_bt.call(jbt,Obt),ga,kbt=fbt,Dbt=hbt,Lbt=mbt,Mbt=ybt,Up=mge,Dp=k6,Bbt=gbt,yge=Function,bN=function(n){try{return yge('"use strict"; return ('+n+").constructor;")()}catch{}},Zc=Object.getOwnPropertyDescriptor;if(Zc)try{Zc({},"")}catch{Zc=null}var xN=function(){throw new Dp},Fbt=Zc?function(){try{return arguments.callee,xN}catch{try{return Zc(arguments,"callee").get}catch{return xN}}}():xN,Sp=bbt(),$bt=Rbt(),Nn=Object.getPrototypeOf||($bt?function(n){return n.__proto__}:null),Pp={},qbt=typeof Uint8Array>"u"||!Nn?ga:Nn(Uint8Array),ed={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?ga:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?ga:ArrayBuffer,"%ArrayIteratorPrototype%":Sp&&Nn?Nn([][Symbol.iterator]()):ga,"%AsyncFromSyncIteratorPrototype%":ga,"%AsyncFunction%":Pp,"%AsyncGenerator%":Pp,"%AsyncGeneratorFunction%":Pp,"%AsyncIteratorPrototype%":Pp,"%Atomics%":typeof Atomics>"u"?ga:Atomics,"%BigInt%":typeof BigInt>"u"?ga:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?ga:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?ga:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?ga:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":kbt,"%eval%":eval,"%EvalError%":Dbt,"%Float32Array%":typeof Float32Array>"u"?ga:Float32Array,"%Float64Array%":typeof Float64Array>"u"?ga:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?ga:FinalizationRegistry,"%Function%":yge,"%GeneratorFunction%":Pp,"%Int8Array%":typeof Int8Array>"u"?ga:Int8Array,"%Int16Array%":typeof Int16Array>"u"?ga:Int16Array,"%Int32Array%":typeof Int32Array>"u"?ga:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Sp&&Nn?Nn(Nn([][Symbol.iterator]())):ga,"%JSON%":typeof JSON=="object"?JSON:ga,"%Map%":typeof Map>"u"?ga:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Sp||!Nn?ga:Nn(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?ga:Promise,"%Proxy%":typeof Proxy>"u"?ga:Proxy,"%RangeError%":Lbt,"%ReferenceError%":Mbt,"%Reflect%":typeof Reflect>"u"?ga:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?ga:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Sp||!Nn?ga:Nn(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?ga:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Sp&&Nn?Nn(""[Symbol.iterator]()):ga,"%Symbol%":Sp?Symbol:ga,"%SyntaxError%":Up,"%ThrowTypeError%":Fbt,"%TypedArray%":qbt,"%TypeError%":Dp,"%Uint8Array%":typeof Uint8Array>"u"?ga:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?ga:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?ga:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?ga:Uint32Array,"%URIError%":Bbt,"%WeakMap%":typeof WeakMap>"u"?ga:WeakMap,"%WeakRef%":typeof WeakRef>"u"?ga:WeakRef,"%WeakSet%":typeof WeakSet>"u"?ga:WeakSet};if(Nn)try{null.error}catch(n){var Ubt=Nn(Nn(n));ed["%Error.prototype%"]=Ubt}var Vbt=function n(t){var a;if(t==="%AsyncFunction%")a=bN("async function () {}");else if(t==="%GeneratorFunction%")a=bN("function* () {}");else if(t==="%AsyncGeneratorFunction%")a=bN("async function* () {}");else if(t==="%AsyncGenerator%"){var i=n("%AsyncGeneratorFunction%");i&&(a=i.prototype)}else if(t==="%AsyncIteratorPrototype%"){var d=n("%AsyncGenerator%");d&&Nn&&(a=Nn(d.prototype))}return ed[t]=a,a},kfe={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Hy=DL,O2=Nbt,Wbt=Hy.call(Function.call,Array.prototype.concat),Gbt=Hy.call(Function.apply,Array.prototype.splice),Dfe=Hy.call(Function.call,String.prototype.replace),_2=Hy.call(Function.call,String.prototype.slice),Kbt=Hy.call(Function.call,RegExp.prototype.exec),Hbt=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,zbt=/\\(\\)?/g,Xbt=function(t){var a=_2(t,0,1),i=_2(t,-1);if(a==="%"&&i!=="%")throw new Up("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&a!=="%")throw new Up("invalid intrinsic syntax, expected opening `%`");var d=[];return Dfe(t,Hbt,function(p,y,b,v){d[d.length]=b?Dfe(v,zbt,"$1"):y||p}),d},Jbt=function(t,a){var i=t,d;if(O2(kfe,i)&&(d=kfe[i],i="%"+d[0]+"%"),O2(ed,i)){var p=ed[i];if(p===Pp&&(p=Vbt(i)),typeof p>"u"&&!a)throw new Dp("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:d,name:i,value:p}}throw new Up("intrinsic "+t+" does not exist!")},zy=function(t,a){if(typeof t!="string"||t.length===0)throw new Dp("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof a!="boolean")throw new Dp('"allowMissing" argument must be a boolean');if(Kbt(/^%?[^%]*%?$/,t)===null)throw new Up("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=Xbt(t),d=i.length>0?i[0]:"",p=Jbt("%"+d+"%",a),y=p.name,b=p.value,v=!1,E=p.alias;E&&(d=E[0],Gbt(i,Wbt([0,1],E)));for(var S=1,A=!0;S<i.length;S+=1){var _=i[S],C=_2(_,0,1),q=_2(_,-1);if((C==='"'||C==="'"||C==="`"||q==='"'||q==="'"||q==="`")&&C!==q)throw new Up("property names with quotes must have matching quotes");if((_==="constructor"||!A)&&(v=!0),d+="."+_,y="%"+d+"%",O2(ed,y))b=ed[y];else if(b!=null){if(!(_ in b)){if(!a)throw new Dp("base intrinsic for "+t+" exists, but the property is not available.");return}if(Zc&&S+1>=i.length){var M=Zc(b,_);A=!!M,A&&"get"in M&&!("originalValue"in M.get)?b=M.get:b=b[_]}else A=O2(b,_),b=b[_];A&&!v&&(ed[y]=b)}}return b},gge={exports:{}},RN,Lfe;function LL(){if(Lfe)return RN;Lfe=1;var n=zy,t=n("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return RN=t,RN}var Ybt=zy,c2=Ybt("%Object.getOwnPropertyDescriptor%",!0);if(c2)try{c2([],"length")}catch{c2=null}var ML=c2,Mfe=LL(),Qbt=mge,Tp=k6,Bfe=ML,vge=function(t,a,i){if(!t||typeof t!="object"&&typeof t!="function")throw new Tp("`obj` must be an object or a function`");if(typeof a!="string"&&typeof a!="symbol")throw new Tp("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Tp("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Tp("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Tp("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Tp("`loose`, if provided, must be a boolean");var d=arguments.length>3?arguments[3]:null,p=arguments.length>4?arguments[4]:null,y=arguments.length>5?arguments[5]:null,b=arguments.length>6?arguments[6]:!1,v=!!Bfe&&Bfe(t,a);if(Mfe)Mfe(t,a,{configurable:y===null&&v?v.configurable:!y,enumerable:d===null&&v?v.enumerable:!d,value:i,writable:p===null&&v?v.writable:!p});else if(b||!d&&!p&&!y)t[a]=i;else throw new Qbt("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ak=LL(),bge=function(){return!!Ak};bge.hasArrayLengthDefineBug=function(){if(!Ak)return null;try{return Ak([],"length",{value:1}).length!==1}catch{return!0}};var xge=bge,Zbt=zy,Ffe=vge,e2t=xge(),$fe=ML,qfe=k6,t2t=Zbt("%Math.floor%"),r2t=function(t,a){if(typeof t!="function")throw new qfe("`fn` is not a function");if(typeof a!="number"||a<0||a>4294967295||t2t(a)!==a)throw new qfe("`length` must be a positive 32-bit integer");var i=arguments.length>2&&!!arguments[2],d=!0,p=!0;if("length"in t&&$fe){var y=$fe(t,"length");y&&!y.configurable&&(d=!1),y&&!y.writable&&(p=!1)}return(d||p||!i)&&(e2t?Ffe(t,"length",a,!0,!0):Ffe(t,"length",a)),t};(function(n){var t=DL,a=zy,i=r2t,d=k6,p=a("%Function.prototype.apply%"),y=a("%Function.prototype.call%"),b=a("%Reflect.apply%",!0)||t.call(y,p),v=LL(),E=a("%Math.max%");n.exports=function(_){if(typeof _!="function")throw new d("a function is required");var C=b(t,y,arguments);return i(C,1+E(0,_.length-(arguments.length-1)),!0)};var S=function(){return b(t,p,arguments)};v?v(n.exports,"apply",{value:S}):n.exports.apply=S})(gge);var D6=gge.exports,Rge=zy,Ege=D6,a2t=Ege(Rge("String.prototype.indexOf")),L6=function(t,a){var i=Rge(t,!!a);return typeof i=="function"&&a2t(t,".prototype.")>-1?Ege(i):i},n2t=kL(),s2t=L6,Ik=s2t("Object.prototype.toString"),M6=function(t){return n2t&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:Ik(t)==="[object Arguments]"},Sge=function(t){return M6(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&Ik(t)!=="[object Array]"&&Ik(t.callee)==="[object Function]"},i2t=function(){return M6(arguments)}();M6.isLegacyArguments=Sge;var o2t=i2t?M6:Sge,l2t=Object.prototype.toString,u2t=Function.prototype.toString,c2t=/^\s*(?:function)?\*/,Tge=kL(),EN=Object.getPrototypeOf,d2t=function(){if(!Tge)return!1;try{return Function("return function*() {}")()}catch{}},SN,p2t=function(t){if(typeof t!="function")return!1;if(c2t.test(u2t.call(t)))return!0;if(!Tge){var a=l2t.call(t);return a==="[object GeneratorFunction]"}if(!EN)return!1;if(typeof SN>"u"){var i=d2t();SN=i?EN(i):!1}return EN(t)===SN},wge=Function.prototype.toString,Cp=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Ck,d2;if(typeof Cp=="function"&&typeof Object.defineProperty=="function")try{Ck=Object.defineProperty({},"length",{get:function(){throw d2}}),d2={},Cp(function(){throw 42},null,Ck)}catch(n){n!==d2&&(Cp=null)}else Cp=null;var f2t=/^\s*class\b/,jk=function(t){try{var a=wge.call(t);return f2t.test(a)}catch{return!1}},TN=function(t){try{return jk(t)?!1:(wge.call(t),!0)}catch{return!1}},p2=Object.prototype.toString,h2t="[object Object]",m2t="[object Function]",y2t="[object GeneratorFunction]",g2t="[object HTMLAllCollection]",v2t="[object HTML document.all class]",b2t="[object HTMLCollection]",x2t=typeof Symbol=="function"&&!!Symbol.toStringTag,R2t=!(0 in[,]),Ok=function(){return!1};if(typeof document=="object"){var E2t=document.all;p2.call(E2t)===p2.call(document.all)&&(Ok=function(t){if((R2t||!t)&&(typeof t>"u"||typeof t=="object"))try{var a=p2.call(t);return(a===g2t||a===v2t||a===b2t||a===h2t)&&t("")==null}catch{}return!1})}var S2t=Cp?function(t){if(Ok(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{Cp(t,null,Ck)}catch(a){if(a!==d2)return!1}return!jk(t)&&TN(t)}:function(t){if(Ok(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(x2t)return TN(t);if(jk(t))return!1;var a=p2.call(t);return a!==m2t&&a!==y2t&&!/^\[object HTML/.test(a)?!1:TN(t)},T2t=S2t,w2t=Object.prototype.toString,Pge=Object.prototype.hasOwnProperty,P2t=function(t,a,i){for(var d=0,p=t.length;d<p;d++)Pge.call(t,d)&&(i==null?a(t[d],d,t):a.call(i,t[d],d,t))},A2t=function(t,a,i){for(var d=0,p=t.length;d<p;d++)i==null?a(t.charAt(d),d,t):a.call(i,t.charAt(d),d,t)},I2t=function(t,a,i){for(var d in t)Pge.call(t,d)&&(i==null?a(t[d],d,t):a.call(i,t[d],d,t))},C2t=function(t,a,i){if(!T2t(a))throw new TypeError("iterator must be a function");var d;arguments.length>=3&&(d=i),w2t.call(t)==="[object Array]"?P2t(t,a,d):typeof t=="string"?A2t(t,a,d):I2t(t,a,d)},j2t=C2t,O2t=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"],wN=O2t,_2t=typeof globalThis>"u"?Hc:globalThis,N2t=function(){for(var t=[],a=0;a<wN.length;a++)typeof _2t[wN[a]]=="function"&&(t[t.length]=wN[a]);return t},N2=j2t,k2t=N2t,Ufe=D6,BL=L6,f2=ML,D2t=BL("Object.prototype.toString"),Age=kL(),Vfe=typeof globalThis>"u"?Hc:globalThis,_k=k2t(),FL=BL("String.prototype.slice"),PN=Object.getPrototypeOf,L2t=BL("Array.prototype.indexOf",!0)||function(t,a){for(var i=0;i<t.length;i+=1)if(t[i]===a)return i;return-1},k2={__proto__:null};Age&&f2&&PN?N2(_k,function(n){var t=new Vfe[n];if(Symbol.toStringTag in t){var a=PN(t),i=f2(a,Symbol.toStringTag);if(!i){var d=PN(a);i=f2(d,Symbol.toStringTag)}k2["$"+n]=Ufe(i.get)}}):N2(_k,function(n){var t=new Vfe[n],a=t.slice||t.set;a&&(k2["$"+n]=Ufe(a))});var M2t=function(t){var a=!1;return N2(k2,function(i,d){if(!a)try{"$"+i(t)===d&&(a=FL(d,1))}catch{}}),a},B2t=function(t){var a=!1;return N2(k2,function(i,d){if(!a)try{i(t),a=FL(d,1)}catch{}}),a},Ige=function(t){if(!t||typeof t!="object")return!1;if(!Age){var a=FL(D2t(t),8,-1);return L2t(_k,a)>-1?a:a!=="Object"?!1:B2t(t)}return f2?M2t(t):null},F2t=Ige,$2t=function(t){return!!F2t(t)};(function(n){var t=o2t,a=p2t,i=Ige,d=$2t;function p(Rt){return Rt.call.bind(Rt)}var y=typeof BigInt<"u",b=typeof Symbol<"u",v=p(Object.prototype.toString),E=p(Number.prototype.valueOf),S=p(String.prototype.valueOf),A=p(Boolean.prototype.valueOf);if(y)var _=p(BigInt.prototype.valueOf);if(b)var C=p(Symbol.prototype.valueOf);function q(Rt,ja){if(typeof Rt!="object")return!1;try{return ja(Rt),!0}catch{return!1}}n.isArgumentsObject=t,n.isGeneratorFunction=a,n.isTypedArray=d;function M(Rt){return typeof Promise<"u"&&Rt instanceof Promise||Rt!==null&&typeof Rt=="object"&&typeof Rt.then=="function"&&typeof Rt.catch=="function"}n.isPromise=M;function W(Rt){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(Rt):d(Rt)||Me(Rt)}n.isArrayBufferView=W;function z(Rt){return i(Rt)==="Uint8Array"}n.isUint8Array=z;function Y(Rt){return i(Rt)==="Uint8ClampedArray"}n.isUint8ClampedArray=Y;function Z(Rt){return i(Rt)==="Uint16Array"}n.isUint16Array=Z;function ce(Rt){return i(Rt)==="Uint32Array"}n.isUint32Array=ce;function ge(Rt){return i(Rt)==="Int8Array"}n.isInt8Array=ge;function Ge(Rt){return i(Rt)==="Int16Array"}n.isInt16Array=Ge;function Je(Rt){return i(Rt)==="Int32Array"}n.isInt32Array=Je;function re(Rt){return i(Rt)==="Float32Array"}n.isFloat32Array=re;function Ae(Rt){return i(Rt)==="Float64Array"}n.isFloat64Array=Ae;function je(Rt){return i(Rt)==="BigInt64Array"}n.isBigInt64Array=je;function se(Rt){return i(Rt)==="BigUint64Array"}n.isBigUint64Array=se;function fe(Rt){return v(Rt)==="[object Map]"}fe.working=typeof Map<"u"&&fe(new Map);function kt(Rt){return typeof Map>"u"?!1:fe.working?fe(Rt):Rt instanceof Map}n.isMap=kt;function Qt(Rt){return v(Rt)==="[object Set]"}Qt.working=typeof Set<"u"&&Qt(new Set);function mt(Rt){return typeof Set>"u"?!1:Qt.working?Qt(Rt):Rt instanceof Set}n.isSet=mt;function Tt(Rt){return v(Rt)==="[object WeakMap]"}Tt.working=typeof WeakMap<"u"&&Tt(new WeakMap);function ne(Rt){return typeof WeakMap>"u"?!1:Tt.working?Tt(Rt):Rt instanceof WeakMap}n.isWeakMap=ne;function Zt(Rt){return v(Rt)==="[object WeakSet]"}Zt.working=typeof WeakSet<"u"&&Zt(new WeakSet);function pt(Rt){return Zt(Rt)}n.isWeakSet=pt;function bt(Rt){return v(Rt)==="[object ArrayBuffer]"}bt.working=typeof ArrayBuffer<"u"&&bt(new ArrayBuffer);function ht(Rt){return typeof ArrayBuffer>"u"?!1:bt.working?bt(Rt):Rt instanceof ArrayBuffer}n.isArrayBuffer=ht;function Se(Rt){return v(Rt)==="[object DataView]"}Se.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&Se(new DataView(new ArrayBuffer(1),0,1));function Me(Rt){return typeof DataView>"u"?!1:Se.working?Se(Rt):Rt instanceof DataView}n.isDataView=Me;var le=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function Oe(Rt){return v(Rt)==="[object SharedArrayBuffer]"}function Ke(Rt){return typeof le>"u"?!1:(typeof Oe.working>"u"&&(Oe.working=Oe(new le)),Oe.working?Oe(Rt):Rt instanceof le)}n.isSharedArrayBuffer=Ke;function Ue(Rt){return v(Rt)==="[object AsyncFunction]"}n.isAsyncFunction=Ue;function ot(Rt){return v(Rt)==="[object Map Iterator]"}n.isMapIterator=ot;function ct(Rt){return v(Rt)==="[object Set Iterator]"}n.isSetIterator=ct;function Pt(Rt){return v(Rt)==="[object Generator]"}n.isGeneratorObject=Pt;function Ut(Rt){return v(Rt)==="[object WebAssembly.Module]"}n.isWebAssemblyCompiledModule=Ut;function ur(Rt){return q(Rt,E)}n.isNumberObject=ur;function kr(Rt){return q(Rt,S)}n.isStringObject=kr;function ir(Rt){return q(Rt,A)}n.isBooleanObject=ir;function Jr(Rt){return y&&q(Rt,_)}n.isBigIntObject=Jr;function Ea(Rt){return b&&q(Rt,C)}n.isSymbolObject=Ea;function Ua(Rt){return ur(Rt)||kr(Rt)||ir(Rt)||Jr(Rt)||Ea(Rt)}n.isBoxedPrimitive=Ua;function da(Rt){return typeof Uint8Array<"u"&&(ht(Rt)||Ke(Rt))}n.isAnyArrayBuffer=da,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(Rt){Object.defineProperty(n,Rt,{enumerable:!1,value:function(){throw new Error(Rt+" is not supported in userland")}})})})(hge);var q2t=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"},Nk={exports:{}};typeof Object.create=="function"?Nk.exports=function(t,a){a&&(t.super_=a,t.prototype=Object.create(a.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Nk.exports=function(t,a){if(a){t.super_=a;var i=function(){};i.prototype=a.prototype,t.prototype=new i,t.prototype.constructor=t}};var U2t=Nk.exports;(function(n){var t=Object.getOwnPropertyDescriptors||function(Me){for(var le=Object.keys(Me),Oe={},Ke=0;Ke<le.length;Ke++)Oe[le[Ke]]=Object.getOwnPropertyDescriptor(Me,le[Ke]);return Oe},a=/%[sdj%]/g;n.format=function(Se){if(!ge(Se)){for(var Me=[],le=0;le<arguments.length;le++)Me.push(y(arguments[le]));return Me.join(" ")}for(var le=1,Oe=arguments,Ke=Oe.length,Ue=String(Se).replace(a,function(ct){if(ct==="%%")return"%";if(le>=Ke)return ct;switch(ct){case"%s":return String(Oe[le++]);case"%d":return Number(Oe[le++]);case"%j":try{return JSON.stringify(Oe[le++])}catch{return"[Circular]"}default:return ct}}),ot=Oe[le];le<Ke;ot=Oe[++le])Y(ot)||!Ae(ot)?Ue+=" "+ot:Ue+=" "+y(ot);return Ue},n.deprecate=function(Se,Me){if(typeof process<"u"&&process.noDeprecation===!0)return Se;if(typeof process>"u")return function(){return n.deprecate(Se,Me).apply(this,arguments)};var le=!1;function Oe(){if(!le){if(process.throwDeprecation)throw new Error(Me);process.traceDeprecation?console.trace(Me):console.error(Me),le=!0}return Se.apply(this,arguments)}return Oe};var i={},d=/^$/;if(ra.NODE_DEBUG){var p=ra.NODE_DEBUG;p=p.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+p+"$","i")}n.debuglog=function(Se){if(Se=Se.toUpperCase(),!i[Se])if(d.test(Se)){var Me=process.pid;i[Se]=function(){var le=n.format.apply(n,arguments);console.error("%s %d: %s",Se,Me,le)}}else i[Se]=function(){};return i[Se]};function y(Se,Me){var le={seen:[],stylize:v};return arguments.length>=3&&(le.depth=arguments[2]),arguments.length>=4&&(le.colors=arguments[3]),z(Me)?le.showHidden=Me:Me&&n._extend(le,Me),Je(le.showHidden)&&(le.showHidden=!1),Je(le.depth)&&(le.depth=2),Je(le.colors)&&(le.colors=!1),Je(le.customInspect)&&(le.customInspect=!0),le.colors&&(le.stylize=b),S(le,Se,le.depth)}n.inspect=y,y.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},y.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function b(Se,Me){var le=y.styles[Me];return le?"\x1B["+y.colors[le][0]+"m"+Se+"\x1B["+y.colors[le][1]+"m":Se}function v(Se,Me){return Se}function E(Se){var Me={};return Se.forEach(function(le,Oe){Me[le]=!0}),Me}function S(Se,Me,le){if(Se.customInspect&&Me&&fe(Me.inspect)&&Me.inspect!==n.inspect&&!(Me.constructor&&Me.constructor.prototype===Me)){var Oe=Me.inspect(le,Se);return ge(Oe)||(Oe=S(Se,Oe,le)),Oe}var Ke=A(Se,Me);if(Ke)return Ke;var Ue=Object.keys(Me),ot=E(Ue);if(Se.showHidden&&(Ue=Object.getOwnPropertyNames(Me)),se(Me)&&(Ue.indexOf("message")>=0||Ue.indexOf("description")>=0))return _(Me);if(Ue.length===0){if(fe(Me)){var ct=Me.name?": "+Me.name:"";return Se.stylize("[Function"+ct+"]","special")}if(re(Me))return Se.stylize(RegExp.prototype.toString.call(Me),"regexp");if(je(Me))return Se.stylize(Date.prototype.toString.call(Me),"date");if(se(Me))return _(Me)}var Pt="",Ut=!1,ur=["{","}"];if(W(Me)&&(Ut=!0,ur=["[","]"]),fe(Me)){var kr=Me.name?": "+Me.name:"";Pt=" [Function"+kr+"]"}if(re(Me)&&(Pt=" "+RegExp.prototype.toString.call(Me)),je(Me)&&(Pt=" "+Date.prototype.toUTCString.call(Me)),se(Me)&&(Pt=" "+_(Me)),Ue.length===0&&(!Ut||Me.length==0))return ur[0]+Pt+ur[1];if(le<0)return re(Me)?Se.stylize(RegExp.prototype.toString.call(Me),"regexp"):Se.stylize("[Object]","special");Se.seen.push(Me);var ir;return Ut?ir=C(Se,Me,le,ot,Ue):ir=Ue.map(function(Jr){return q(Se,Me,le,ot,Jr,Ut)}),Se.seen.pop(),M(ir,Pt,ur)}function A(Se,Me){if(Je(Me))return Se.stylize("undefined","undefined");if(ge(Me)){var le="'"+JSON.stringify(Me).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Se.stylize(le,"string")}if(ce(Me))return Se.stylize(""+Me,"number");if(z(Me))return Se.stylize(""+Me,"boolean");if(Y(Me))return Se.stylize("null","null")}function _(Se){return"["+Error.prototype.toString.call(Se)+"]"}function C(Se,Me,le,Oe,Ke){for(var Ue=[],ot=0,ct=Me.length;ot<ct;++ot)Zt(Me,String(ot))?Ue.push(q(Se,Me,le,Oe,String(ot),!0)):Ue.push("");return Ke.forEach(function(Pt){Pt.match(/^\d+$/)||Ue.push(q(Se,Me,le,Oe,Pt,!0))}),Ue}function q(Se,Me,le,Oe,Ke,Ue){var ot,ct,Pt;if(Pt=Object.getOwnPropertyDescriptor(Me,Ke)||{value:Me[Ke]},Pt.get?Pt.set?ct=Se.stylize("[Getter/Setter]","special"):ct=Se.stylize("[Getter]","special"):Pt.set&&(ct=Se.stylize("[Setter]","special")),Zt(Oe,Ke)||(ot="["+Ke+"]"),ct||(Se.seen.indexOf(Pt.value)<0?(Y(le)?ct=S(Se,Pt.value,null):ct=S(Se,Pt.value,le-1),ct.indexOf(` +`)>-1&&(Ue?ct=ct.split(` +`).map(function(Ut){return" "+Ut}).join(` +`).slice(2):ct=` +`+ct.split(` +`).map(function(Ut){return" "+Ut}).join(` +`))):ct=Se.stylize("[Circular]","special")),Je(ot)){if(Ue&&Ke.match(/^\d+$/))return ct;ot=JSON.stringify(""+Ke),ot.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(ot=ot.slice(1,-1),ot=Se.stylize(ot,"name")):(ot=ot.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),ot=Se.stylize(ot,"string"))}return ot+": "+ct}function M(Se,Me,le){var Oe=Se.reduce(function(Ke,Ue){return Ue.indexOf(` +`)>=0,Ke+Ue.replace(/\u001b\[\d\d?m/g,"").length+1},0);return Oe>60?le[0]+(Me===""?"":Me+` + `)+" "+Se.join(`, + `)+" "+le[1]:le[0]+Me+" "+Se.join(", ")+" "+le[1]}n.types=hge;function W(Se){return Array.isArray(Se)}n.isArray=W;function z(Se){return typeof Se=="boolean"}n.isBoolean=z;function Y(Se){return Se===null}n.isNull=Y;function Z(Se){return Se==null}n.isNullOrUndefined=Z;function ce(Se){return typeof Se=="number"}n.isNumber=ce;function ge(Se){return typeof Se=="string"}n.isString=ge;function Ge(Se){return typeof Se=="symbol"}n.isSymbol=Ge;function Je(Se){return Se===void 0}n.isUndefined=Je;function re(Se){return Ae(Se)&&Qt(Se)==="[object RegExp]"}n.isRegExp=re,n.types.isRegExp=re;function Ae(Se){return typeof Se=="object"&&Se!==null}n.isObject=Ae;function je(Se){return Ae(Se)&&Qt(Se)==="[object Date]"}n.isDate=je,n.types.isDate=je;function se(Se){return Ae(Se)&&(Qt(Se)==="[object Error]"||Se instanceof Error)}n.isError=se,n.types.isNativeError=se;function fe(Se){return typeof Se=="function"}n.isFunction=fe;function kt(Se){return Se===null||typeof Se=="boolean"||typeof Se=="number"||typeof Se=="string"||typeof Se=="symbol"||typeof Se>"u"}n.isPrimitive=kt,n.isBuffer=q2t;function Qt(Se){return Object.prototype.toString.call(Se)}function mt(Se){return Se<10?"0"+Se.toString(10):Se.toString(10)}var Tt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ne(){var Se=new Date,Me=[mt(Se.getHours()),mt(Se.getMinutes()),mt(Se.getSeconds())].join(":");return[Se.getDate(),Tt[Se.getMonth()],Me].join(" ")}n.log=function(){console.log("%s - %s",ne(),n.format.apply(n,arguments))},n.inherits=U2t,n._extend=function(Se,Me){if(!Me||!Ae(Me))return Se;for(var le=Object.keys(Me),Oe=le.length;Oe--;)Se[le[Oe]]=Me[le[Oe]];return Se};function Zt(Se,Me){return Object.prototype.hasOwnProperty.call(Se,Me)}var pt=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;n.promisify=function(Me){if(typeof Me!="function")throw new TypeError('The "original" argument must be of type Function');if(pt&&Me[pt]){var le=Me[pt];if(typeof le!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(le,pt,{value:le,enumerable:!1,writable:!1,configurable:!0}),le}function le(){for(var Oe,Ke,Ue=new Promise(function(Pt,Ut){Oe=Pt,Ke=Ut}),ot=[],ct=0;ct<arguments.length;ct++)ot.push(arguments[ct]);ot.push(function(Pt,Ut){Pt?Ke(Pt):Oe(Ut)});try{Me.apply(this,ot)}catch(Pt){Ke(Pt)}return Ue}return Object.setPrototypeOf(le,Object.getPrototypeOf(Me)),pt&&Object.defineProperty(le,pt,{value:le,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(le,t(Me))},n.promisify.custom=pt;function bt(Se,Me){if(!Se){var le=new Error("Promise was rejected with a falsy value");le.reason=Se,Se=le}return Me(Se)}function ht(Se){if(typeof Se!="function")throw new TypeError('The "original" argument must be of type Function');function Me(){for(var le=[],Oe=0;Oe<arguments.length;Oe++)le.push(arguments[Oe]);var Ke=le.pop();if(typeof Ke!="function")throw new TypeError("The last argument must be of type Function");var Ue=this,ot=function(){return Ke.apply(Ue,arguments)};Se.apply(this,le).then(function(ct){process.nextTick(ot.bind(null,null,ct))},function(ct){process.nextTick(bt.bind(null,ct,ot))})}return Object.setPrototypeOf(Me,Object.getPrototypeOf(Se)),Object.defineProperties(Me,t(Se)),Me}n.callbackify=ht})(qp);var Wfe;function Cge(){if(Wfe)return gN;Wfe=1;function n(Y){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Z){return typeof Z}:function(Z){return Z&&typeof Symbol=="function"&&Z.constructor===Symbol&&Z!==Symbol.prototype?"symbol":typeof Z},n(Y)}function t(Y,Z,ce){return Object.defineProperty(Y,"prototype",{writable:!1}),Y}function a(Y,Z){if(!(Y instanceof Z))throw new TypeError("Cannot call a class as a function")}function i(Y,Z){if(typeof Z!="function"&&Z!==null)throw new TypeError("Super expression must either be null or a function");Y.prototype=Object.create(Z&&Z.prototype,{constructor:{value:Y,writable:!0,configurable:!0}}),Object.defineProperty(Y,"prototype",{writable:!1}),Z&&d(Y,Z)}function d(Y,Z){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ge,Ge){return ge.__proto__=Ge,ge},d(Y,Z)}function p(Y){var Z=v();return function(){var ge=E(Y),Ge;if(Z){var Je=E(this).constructor;Ge=Reflect.construct(ge,arguments,Je)}else Ge=ge.apply(this,arguments);return y(this,Ge)}}function y(Y,Z){if(Z&&(n(Z)==="object"||typeof Z=="function"))return Z;if(Z!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return b(Y)}function b(Y){if(Y===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}function v(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function E(Y){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ce){return ce.__proto__||Object.getPrototypeOf(ce)},E(Y)}var S={},A,_;function C(Y,Z,ce){ce||(ce=Error);function ge(Je,re,Ae){return typeof Z=="string"?Z:Z(Je,re,Ae)}var Ge=function(Je){i(Ae,Je);var re=p(Ae);function Ae(je,se,fe){var kt;return a(this,Ae),kt=re.call(this,ge(je,se,fe)),kt.code=Y,kt}return t(Ae)}(ce);S[Y]=Ge}function q(Y,Z){if(Array.isArray(Y)){var ce=Y.length;return Y=Y.map(function(ge){return String(ge)}),ce>2?"one of ".concat(Z," ").concat(Y.slice(0,ce-1).join(", "),", or ")+Y[ce-1]:ce===2?"one of ".concat(Z," ").concat(Y[0]," or ").concat(Y[1]):"of ".concat(Z," ").concat(Y[0])}else return"of ".concat(Z," ").concat(String(Y))}function M(Y,Z,ce){return Y.substr(0,Z.length)===Z}function W(Y,Z,ce){return(ce===void 0||ce>Y.length)&&(ce=Y.length),Y.substring(ce-Z.length,ce)===Z}function z(Y,Z,ce){return typeof ce!="number"&&(ce=0),ce+Z.length>Y.length?!1:Y.indexOf(Z,ce)!==-1}return C("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),C("ERR_INVALID_ARG_TYPE",function(Y,Z,ce){A===void 0&&(A=D2()),A(typeof Y=="string","'name' must be a string");var ge;typeof Z=="string"&&M(Z,"not ")?(ge="must not be",Z=Z.replace(/^not /,"")):ge="must be";var Ge;if(W(Y," argument"))Ge="The ".concat(Y," ").concat(ge," ").concat(q(Z,"type"));else{var Je=z(Y,".")?"property":"argument";Ge='The "'.concat(Y,'" ').concat(Je," ").concat(ge," ").concat(q(Z,"type"))}return Ge+=". Received type ".concat(n(ce)),Ge},TypeError),C("ERR_INVALID_ARG_VALUE",function(Y,Z){var ce=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid";_===void 0&&(_=qp);var ge=_.inspect(Z);return ge.length>128&&(ge="".concat(ge.slice(0,128),"...")),"The argument '".concat(Y,"' ").concat(ce,". Received ").concat(ge)},TypeError),C("ERR_INVALID_RETURN_VALUE",function(Y,Z,ce){var ge;return ce&&ce.constructor&&ce.constructor.name?ge="instance of ".concat(ce.constructor.name):ge="type ".concat(n(ce)),"Expected ".concat(Y,' to be returned from the "').concat(Z,'"')+" function but got ".concat(ge,".")},TypeError),C("ERR_MISSING_ARGS",function(){for(var Y=arguments.length,Z=new Array(Y),ce=0;ce<Y;ce++)Z[ce]=arguments[ce];A===void 0&&(A=D2()),A(Z.length>0,"At least one arg needs to be specified");var ge="The ",Ge=Z.length;switch(Z=Z.map(function(Je){return'"'.concat(Je,'"')}),Ge){case 1:ge+="".concat(Z[0]," argument");break;case 2:ge+="".concat(Z[0]," and ").concat(Z[1]," arguments");break;default:ge+=Z.slice(0,Ge-1).join(", "),ge+=", and ".concat(Z[Ge-1]," arguments");break}return"".concat(ge," must be specified")},TypeError),gN.codes=S,gN}var AN,Gfe;function V2t(){if(Gfe)return AN;Gfe=1;function n(pt,bt){var ht=Object.keys(pt);if(Object.getOwnPropertySymbols){var Se=Object.getOwnPropertySymbols(pt);bt&&(Se=Se.filter(function(Me){return Object.getOwnPropertyDescriptor(pt,Me).enumerable})),ht.push.apply(ht,Se)}return ht}function t(pt){for(var bt=1;bt<arguments.length;bt++){var ht=arguments[bt]!=null?arguments[bt]:{};bt%2?n(Object(ht),!0).forEach(function(Se){a(pt,Se,ht[Se])}):Object.getOwnPropertyDescriptors?Object.defineProperties(pt,Object.getOwnPropertyDescriptors(ht)):n(Object(ht)).forEach(function(Se){Object.defineProperty(pt,Se,Object.getOwnPropertyDescriptor(ht,Se))})}return pt}function a(pt,bt,ht){return bt=y(bt),bt in pt?Object.defineProperty(pt,bt,{value:ht,enumerable:!0,configurable:!0,writable:!0}):pt[bt]=ht,pt}function i(pt,bt){if(!(pt instanceof bt))throw new TypeError("Cannot call a class as a function")}function d(pt,bt){for(var ht=0;ht<bt.length;ht++){var Se=bt[ht];Se.enumerable=Se.enumerable||!1,Se.configurable=!0,"value"in Se&&(Se.writable=!0),Object.defineProperty(pt,y(Se.key),Se)}}function p(pt,bt,ht){return bt&&d(pt.prototype,bt),Object.defineProperty(pt,"prototype",{writable:!1}),pt}function y(pt){var bt=b(pt,"string");return Y(bt)==="symbol"?bt:String(bt)}function b(pt,bt){if(Y(pt)!=="object"||pt===null)return pt;var ht=pt[Symbol.toPrimitive];if(ht!==void 0){var Se=ht.call(pt,bt||"default");if(Y(Se)!=="object")return Se;throw new TypeError("@@toPrimitive must return a primitive value.")}return(bt==="string"?String:Number)(pt)}function v(pt,bt){if(typeof bt!="function"&&bt!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(bt&&bt.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),Object.defineProperty(pt,"prototype",{writable:!1}),bt&&W(pt,bt)}function E(pt){var bt=q();return function(){var Se=z(pt),Me;if(bt){var le=z(this).constructor;Me=Reflect.construct(Se,arguments,le)}else Me=Se.apply(this,arguments);return S(this,Me)}}function S(pt,bt){if(bt&&(Y(bt)==="object"||typeof bt=="function"))return bt;if(bt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return A(pt)}function A(pt){if(pt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return pt}function _(pt){var bt=typeof Map=="function"?new Map:void 0;return _=function(Se){if(Se===null||!M(Se))return Se;if(typeof Se!="function")throw new TypeError("Super expression must either be null or a function");if(typeof bt<"u"){if(bt.has(Se))return bt.get(Se);bt.set(Se,Me)}function Me(){return C(Se,arguments,z(this).constructor)}return Me.prototype=Object.create(Se.prototype,{constructor:{value:Me,enumerable:!1,writable:!0,configurable:!0}}),W(Me,Se)},_(pt)}function C(pt,bt,ht){return q()?C=Reflect.construct.bind():C=function(Me,le,Oe){var Ke=[null];Ke.push.apply(Ke,le);var Ue=Function.bind.apply(Me,Ke),ot=new Ue;return Oe&&W(ot,Oe.prototype),ot},C.apply(null,arguments)}function q(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function M(pt){return Function.toString.call(pt).indexOf("[native code]")!==-1}function W(pt,bt){return W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(Se,Me){return Se.__proto__=Me,Se},W(pt,bt)}function z(pt){return z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ht){return ht.__proto__||Object.getPrototypeOf(ht)},z(pt)}function Y(pt){"@babel/helpers - typeof";return Y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(bt){return typeof bt}:function(bt){return bt&&typeof Symbol=="function"&&bt.constructor===Symbol&&bt!==Symbol.prototype?"symbol":typeof bt},Y(pt)}var Z=qp,ce=Z.inspect,ge=Cge(),Ge=ge.codes.ERR_INVALID_ARG_TYPE;function Je(pt,bt,ht){return(ht===void 0||ht>pt.length)&&(ht=pt.length),pt.substring(ht-bt.length,ht)===bt}function re(pt,bt){if(bt=Math.floor(bt),pt.length==0||bt==0)return"";var ht=pt.length*bt;for(bt=Math.floor(Math.log(bt)/Math.log(2));bt;)pt+=pt,bt--;return pt+=pt.substring(0,ht-pt.length),pt}var Ae="",je="",se="",fe="",kt={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},Qt=10;function mt(pt){var bt=Object.keys(pt),ht=Object.create(Object.getPrototypeOf(pt));return bt.forEach(function(Se){ht[Se]=pt[Se]}),Object.defineProperty(ht,"message",{value:pt.message}),ht}function Tt(pt){return ce(pt,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function ne(pt,bt,ht){var Se="",Me="",le=0,Oe="",Ke=!1,Ue=Tt(pt),ot=Ue.split(` +`),ct=Tt(bt).split(` +`),Pt=0,Ut="";if(ht==="strictEqual"&&Y(pt)==="object"&&Y(bt)==="object"&&pt!==null&&bt!==null&&(ht="strictEqualObject"),ot.length===1&&ct.length===1&&ot[0]!==ct[0]){var ur=ot[0].length+ct[0].length;if(ur<=Qt){if((Y(pt)!=="object"||pt===null)&&(Y(bt)!=="object"||bt===null)&&(pt!==0||bt!==0))return"".concat(kt[ht],` + +`)+"".concat(ot[0]," !== ").concat(ct[0],` +`)}else if(ht!=="strictEqualObject"){var kr=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(ur<kr){for(;ot[0][Pt]===ct[0][Pt];)Pt++;Pt>2&&(Ut=` + `.concat(re(" ",Pt),"^"),Pt=0)}}}for(var ir=ot[ot.length-1],Jr=ct[ct.length-1];ir===Jr&&(Pt++<2?Oe=` + `.concat(ir).concat(Oe):Se=ir,ot.pop(),ct.pop(),!(ot.length===0||ct.length===0));)ir=ot[ot.length-1],Jr=ct[ct.length-1];var Ea=Math.max(ot.length,ct.length);if(Ea===0){var Ua=Ue.split(` +`);if(Ua.length>30)for(Ua[26]="".concat(Ae,"...").concat(fe);Ua.length>27;)Ua.pop();return"".concat(kt.notIdentical,` + +`).concat(Ua.join(` +`),` +`)}Pt>3&&(Oe=` +`.concat(Ae,"...").concat(fe).concat(Oe),Ke=!0),Se!==""&&(Oe=` + `.concat(Se).concat(Oe),Se="");var da=0,Rt=kt[ht]+` +`.concat(je,"+ actual").concat(fe," ").concat(se,"- expected").concat(fe),ja=" ".concat(Ae,"...").concat(fe," Lines skipped");for(Pt=0;Pt<Ea;Pt++){var va=Pt-le;if(ot.length<Pt+1)va>1&&Pt>2&&(va>4?(Me+=` +`.concat(Ae,"...").concat(fe),Ke=!0):va>3&&(Me+=` + `.concat(ct[Pt-2]),da++),Me+=` + `.concat(ct[Pt-1]),da++),le=Pt,Se+=` +`.concat(se,"-").concat(fe," ").concat(ct[Pt]),da++;else if(ct.length<Pt+1)va>1&&Pt>2&&(va>4?(Me+=` +`.concat(Ae,"...").concat(fe),Ke=!0):va>3&&(Me+=` + `.concat(ot[Pt-2]),da++),Me+=` + `.concat(ot[Pt-1]),da++),le=Pt,Me+=` +`.concat(je,"+").concat(fe," ").concat(ot[Pt]),da++;else{var Dt=ct[Pt],on=ot[Pt],rt=on!==Dt&&(!Je(on,",")||on.slice(0,-1)!==Dt);rt&&Je(Dt,",")&&Dt.slice(0,-1)===on&&(rt=!1,on+=","),rt?(va>1&&Pt>2&&(va>4?(Me+=` +`.concat(Ae,"...").concat(fe),Ke=!0):va>3&&(Me+=` + `.concat(ot[Pt-2]),da++),Me+=` + `.concat(ot[Pt-1]),da++),le=Pt,Me+=` +`.concat(je,"+").concat(fe," ").concat(on),Se+=` +`.concat(se,"-").concat(fe," ").concat(Dt),da+=2):(Me+=Se,Se="",(va===1||Pt===0)&&(Me+=` + `.concat(on),da++))}if(da>20&&Pt<Ea-2)return"".concat(Rt).concat(ja,` +`).concat(Me,` +`).concat(Ae,"...").concat(fe).concat(Se,` +`)+"".concat(Ae,"...").concat(fe)}return"".concat(Rt).concat(Ke?ja:"",` +`).concat(Me).concat(Se).concat(Oe).concat(Ut)}var Zt=function(pt,bt){v(Se,pt);var ht=E(Se);function Se(Me){var le;if(i(this,Se),Y(Me)!=="object"||Me===null)throw new Ge("options","Object",Me);var Oe=Me.message,Ke=Me.operator,Ue=Me.stackStartFn,ot=Me.actual,ct=Me.expected,Pt=Error.stackTraceLimit;if(Error.stackTraceLimit=0,Oe!=null)le=ht.call(this,String(Oe));else if(process.stderr&&process.stderr.isTTY&&(process.stderr&&process.stderr.getColorDepth&&process.stderr.getColorDepth()!==1?(Ae="\x1B[34m",je="\x1B[32m",fe="\x1B[39m",se="\x1B[31m"):(Ae="",je="",fe="",se="")),Y(ot)==="object"&&ot!==null&&Y(ct)==="object"&&ct!==null&&"stack"in ot&&ot instanceof Error&&"stack"in ct&&ct instanceof Error&&(ot=mt(ot),ct=mt(ct)),Ke==="deepStrictEqual"||Ke==="strictEqual")le=ht.call(this,ne(ot,ct,Ke));else if(Ke==="notDeepStrictEqual"||Ke==="notStrictEqual"){var Ut=kt[Ke],ur=Tt(ot).split(` +`);if(Ke==="notStrictEqual"&&Y(ot)==="object"&&ot!==null&&(Ut=kt.notStrictEqualObject),ur.length>30)for(ur[26]="".concat(Ae,"...").concat(fe);ur.length>27;)ur.pop();ur.length===1?le=ht.call(this,"".concat(Ut," ").concat(ur[0])):le=ht.call(this,"".concat(Ut,` + +`).concat(ur.join(` +`),` +`))}else{var kr=Tt(ot),ir="",Jr=kt[Ke];Ke==="notDeepEqual"||Ke==="notEqual"?(kr="".concat(kt[Ke],` + +`).concat(kr),kr.length>1024&&(kr="".concat(kr.slice(0,1021),"..."))):(ir="".concat(Tt(ct)),kr.length>512&&(kr="".concat(kr.slice(0,509),"...")),ir.length>512&&(ir="".concat(ir.slice(0,509),"...")),Ke==="deepEqual"||Ke==="equal"?kr="".concat(Jr,` + +`).concat(kr,` + +should equal + +`):ir=" ".concat(Ke," ").concat(ir)),le=ht.call(this,"".concat(kr).concat(ir))}return Error.stackTraceLimit=Pt,le.generatedMessage=!Oe,Object.defineProperty(A(le),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),le.code="ERR_ASSERTION",le.actual=ot,le.expected=ct,le.operator=Ke,Error.captureStackTrace&&Error.captureStackTrace(A(le),Ue),le.stack,le.name="AssertionError",S(le)}return p(Se,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:bt,value:function(le,Oe){return ce(this,t(t({},Oe),{},{customInspect:!1,depth:0}))}}]),Se}(_(Error),ce.custom);return AN=Zt,AN}var Kfe=Object.prototype.toString,jge=function(t){var a=Kfe.call(t),i=a==="[object Arguments]";return i||(i=a!=="[object Array]"&&t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&Kfe.call(t.callee)==="[object Function]"),i},IN,Hfe;function W2t(){if(Hfe)return IN;Hfe=1;var n;if(!Object.keys){var t=Object.prototype.hasOwnProperty,a=Object.prototype.toString,i=jge,d=Object.prototype.propertyIsEnumerable,p=!d.call({toString:null},"toString"),y=d.call(function(){},"prototype"),b=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],v=function(_){var C=_.constructor;return C&&C.prototype===_},E={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},S=function(){if(typeof window>"u")return!1;for(var _ in window)try{if(!E["$"+_]&&t.call(window,_)&&window[_]!==null&&typeof window[_]=="object")try{v(window[_])}catch{return!0}}catch{return!0}return!1}(),A=function(_){if(typeof window>"u"||!S)return v(_);try{return v(_)}catch{return!1}};n=function(C){var q=C!==null&&typeof C=="object",M=a.call(C)==="[object Function]",W=i(C),z=q&&a.call(C)==="[object String]",Y=[];if(!q&&!M&&!W)throw new TypeError("Object.keys called on a non-object");var Z=y&&M;if(z&&C.length>0&&!t.call(C,0))for(var ce=0;ce<C.length;++ce)Y.push(String(ce));if(W&&C.length>0)for(var ge=0;ge<C.length;++ge)Y.push(String(ge));else for(var Ge in C)!(Z&&Ge==="prototype")&&t.call(C,Ge)&&Y.push(String(Ge));if(p)for(var Je=A(C),re=0;re<b.length;++re)!(Je&&b[re]==="constructor")&&t.call(C,b[re])&&Y.push(b[re]);return Y}}return IN=n,IN}var G2t=Array.prototype.slice,K2t=jge,zfe=Object.keys,h2=zfe?function(t){return zfe(t)}:W2t(),Xfe=Object.keys;h2.shim=function(){if(Object.keys){var t=function(){var a=Object.keys(arguments);return a&&a.length===arguments.length}(1,2);t||(Object.keys=function(i){return K2t(i)?Xfe(G2t.call(i)):Xfe(i)})}else Object.keys=h2;return Object.keys||h2};var Oge=h2,H2t=Oge,_ge=NL(),Nge=L6,Jfe=Object,z2t=Nge("Array.prototype.push"),Yfe=Nge("Object.prototype.propertyIsEnumerable"),X2t=_ge?Object.getOwnPropertySymbols:null,J2t=function(t,a){if(t==null)throw new TypeError("target must be an object");var i=Jfe(t);if(arguments.length===1)return i;for(var d=1;d<arguments.length;++d){var p=Jfe(arguments[d]),y=H2t(p),b=_ge&&(Object.getOwnPropertySymbols||X2t);if(b)for(var v=b(p),E=0;E<v.length;++E){var S=v[E];Yfe(p,S)&&z2t(y,S)}for(var A=0;A<y.length;++A){var _=y[A];if(Yfe(p,_)){var C=p[_];i[_]=C}}}return i},CN=J2t,Y2t=function(){if(!Object.assign)return!1;for(var n="abcdefghijklmnopqrst",t=n.split(""),a={},i=0;i<t.length;++i)a[t[i]]=t[i];var d=Object.assign({},a),p="";for(var y in d)p+=y;return n!==p},Q2t=function(){if(!Object.assign||!Object.preventExtensions)return!1;var n=Object.preventExtensions({1:2});try{Object.assign(n,"xy")}catch{return n[1]==="y"}return!1},Z2t=function(){return!Object.assign||Y2t()||Q2t()?CN:Object.assign},Qfe=function(n){return n!==n},kge=function(t,a){return t===0&&a===0?1/t===1/a:!!(t===a||Qfe(t)&&Qfe(a))},e6t=kge,$L=function(){return typeof Object.is=="function"?Object.is:e6t},jN,Zfe;function B6(){if(Zfe)return jN;Zfe=1;var n=Oge,t=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",a=Object.prototype.toString,i=Array.prototype.concat,d=vge,p=function(E){return typeof E=="function"&&a.call(E)==="[object Function]"},y=xge(),b=function(E,S,A,_){if(S in E){if(_===!0){if(E[S]===A)return}else if(!p(_)||!_())return}y?d(E,S,A,!0):d(E,S,A)},v=function(E,S){var A=arguments.length>2?arguments[2]:{},_=n(S);t&&(_=i.call(_,Object.getOwnPropertySymbols(S)));for(var C=0;C<_.length;C+=1)b(E,_[C],S[_[C]],A[_[C]])};return v.supportsDescriptors=!!y,jN=v,jN}var ON,ehe;function t6t(){if(ehe)return ON;ehe=1;var n=$L,t=B6();return ON=function(){var i=n();return t(Object,{is:i},{is:function(){return Object.is!==i}}),i},ON}var _N,the;function r6t(){if(the)return _N;the=1;var n=B6(),t=D6,a=kge,i=$L,d=t6t(),p=t(i(),Object);return n(p,{getPolyfill:i,implementation:a,shim:d}),_N=p,_N}var NN,rhe;function Dge(){return rhe||(rhe=1,NN=function(t){return t!==t}),NN}var kN,ahe;function Lge(){if(ahe)return kN;ahe=1;var n=Dge();return kN=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n},kN}var DN,nhe;function a6t(){if(nhe)return DN;nhe=1;var n=B6(),t=Lge();return DN=function(){var i=t();return n(Number,{isNaN:i},{isNaN:function(){return Number.isNaN!==i}}),i},DN}var LN,she;function n6t(){if(she)return LN;she=1;var n=D6,t=B6(),a=Dge(),i=Lge(),d=a6t(),p=n(i(),Number);return t(p,{getPolyfill:i,implementation:a,shim:d}),LN=p,LN}var MN,ihe;function s6t(){if(ihe)return MN;ihe=1;function n(rt,nt){return p(rt)||d(rt,nt)||a(rt,nt)||t()}function t(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(rt,nt){if(rt){if(typeof rt=="string")return i(rt,nt);var Yt=Object.prototype.toString.call(rt).slice(8,-1);if(Yt==="Object"&&rt.constructor&&(Yt=rt.constructor.name),Yt==="Map"||Yt==="Set")return Array.from(rt);if(Yt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Yt))return i(rt,nt)}}function i(rt,nt){(nt==null||nt>rt.length)&&(nt=rt.length);for(var Yt=0,or=new Array(nt);Yt<nt;Yt++)or[Yt]=rt[Yt];return or}function d(rt,nt){var Yt=rt==null?null:typeof Symbol<"u"&&rt[Symbol.iterator]||rt["@@iterator"];if(Yt!=null){var or,pr,Hr,$r,lr=[],Qr=!0,Va=!1;try{if(Hr=(Yt=Yt.call(rt)).next,nt!==0)for(;!(Qr=(or=Hr.call(Yt)).done)&&(lr.push(or.value),lr.length!==nt);Qr=!0);}catch(Mt){Va=!0,pr=Mt}finally{try{if(!Qr&&Yt.return!=null&&($r=Yt.return(),Object($r)!==$r))return}finally{if(Va)throw pr}}return lr}}function p(rt){if(Array.isArray(rt))return rt}function y(rt){"@babel/helpers - typeof";return y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(nt){return typeof nt}:function(nt){return nt&&typeof Symbol=="function"&&nt.constructor===Symbol&&nt!==Symbol.prototype?"symbol":typeof nt},y(rt)}var b=/a/g.flags!==void 0,v=function(nt){var Yt=[];return nt.forEach(function(or){return Yt.push(or)}),Yt},E=function(nt){var Yt=[];return nt.forEach(function(or,pr){return Yt.push([pr,or])}),Yt},S=Object.is?Object.is:r6t(),A=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},_=Number.isNaN?Number.isNaN:n6t();function C(rt){return rt.call.bind(rt)}var q=C(Object.prototype.hasOwnProperty),M=C(Object.prototype.propertyIsEnumerable),W=C(Object.prototype.toString),z=qp.types,Y=z.isAnyArrayBuffer,Z=z.isArrayBufferView,ce=z.isDate,ge=z.isMap,Ge=z.isRegExp,Je=z.isSet,re=z.isNativeError,Ae=z.isBoxedPrimitive,je=z.isNumberObject,se=z.isStringObject,fe=z.isBooleanObject,kt=z.isBigIntObject,Qt=z.isSymbolObject,mt=z.isFloat32Array,Tt=z.isFloat64Array;function ne(rt){if(rt.length===0||rt.length>10)return!0;for(var nt=0;nt<rt.length;nt++){var Yt=rt.charCodeAt(nt);if(Yt<48||Yt>57)return!0}return rt.length===10&&rt>=Math.pow(2,32)}function Zt(rt){return Object.keys(rt).filter(ne).concat(A(rt).filter(Object.prototype.propertyIsEnumerable.bind(rt)))}/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */function pt(rt,nt){if(rt===nt)return 0;for(var Yt=rt.length,or=nt.length,pr=0,Hr=Math.min(Yt,or);pr<Hr;++pr)if(rt[pr]!==nt[pr]){Yt=rt[pr],or=nt[pr];break}return Yt<or?-1:or<Yt?1:0}var bt=!0,ht=!1,Se=0,Me=1,le=2,Oe=3;function Ke(rt,nt){return b?rt.source===nt.source&&rt.flags===nt.flags:RegExp.prototype.toString.call(rt)===RegExp.prototype.toString.call(nt)}function Ue(rt,nt){if(rt.byteLength!==nt.byteLength)return!1;for(var Yt=0;Yt<rt.byteLength;Yt++)if(rt[Yt]!==nt[Yt])return!1;return!0}function ot(rt,nt){return rt.byteLength!==nt.byteLength?!1:pt(new Uint8Array(rt.buffer,rt.byteOffset,rt.byteLength),new Uint8Array(nt.buffer,nt.byteOffset,nt.byteLength))===0}function ct(rt,nt){return rt.byteLength===nt.byteLength&&pt(new Uint8Array(rt),new Uint8Array(nt))===0}function Pt(rt,nt){return je(rt)?je(nt)&&S(Number.prototype.valueOf.call(rt),Number.prototype.valueOf.call(nt)):se(rt)?se(nt)&&String.prototype.valueOf.call(rt)===String.prototype.valueOf.call(nt):fe(rt)?fe(nt)&&Boolean.prototype.valueOf.call(rt)===Boolean.prototype.valueOf.call(nt):kt(rt)?kt(nt)&&BigInt.prototype.valueOf.call(rt)===BigInt.prototype.valueOf.call(nt):Qt(nt)&&Symbol.prototype.valueOf.call(rt)===Symbol.prototype.valueOf.call(nt)}function Ut(rt,nt,Yt,or){if(rt===nt)return rt!==0?!0:Yt?S(rt,nt):!0;if(Yt){if(y(rt)!=="object")return typeof rt=="number"&&_(rt)&&_(nt);if(y(nt)!=="object"||rt===null||nt===null||Object.getPrototypeOf(rt)!==Object.getPrototypeOf(nt))return!1}else{if(rt===null||y(rt)!=="object")return nt===null||y(nt)!=="object"?rt==nt:!1;if(nt===null||y(nt)!=="object")return!1}var pr=W(rt),Hr=W(nt);if(pr!==Hr)return!1;if(Array.isArray(rt)){if(rt.length!==nt.length)return!1;var $r=Zt(rt),lr=Zt(nt);return $r.length!==lr.length?!1:kr(rt,nt,Yt,or,Me,$r)}if(pr==="[object Object]"&&(!ge(rt)&&ge(nt)||!Je(rt)&&Je(nt)))return!1;if(ce(rt)){if(!ce(nt)||Date.prototype.getTime.call(rt)!==Date.prototype.getTime.call(nt))return!1}else if(Ge(rt)){if(!Ge(nt)||!Ke(rt,nt))return!1}else if(re(rt)||rt instanceof Error){if(rt.message!==nt.message||rt.name!==nt.name)return!1}else if(Z(rt)){if(!Yt&&(mt(rt)||Tt(rt))){if(!Ue(rt,nt))return!1}else if(!ot(rt,nt))return!1;var Qr=Zt(rt),Va=Zt(nt);return Qr.length!==Va.length?!1:kr(rt,nt,Yt,or,Se,Qr)}else{if(Je(rt))return!Je(nt)||rt.size!==nt.size?!1:kr(rt,nt,Yt,or,le);if(ge(rt))return!ge(nt)||rt.size!==nt.size?!1:kr(rt,nt,Yt,or,Oe);if(Y(rt)){if(!ct(rt,nt))return!1}else if(Ae(rt)&&!Pt(rt,nt))return!1}return kr(rt,nt,Yt,or,Se)}function ur(rt,nt){return nt.filter(function(Yt){return M(rt,Yt)})}function kr(rt,nt,Yt,or,pr,Hr){if(arguments.length===5){Hr=Object.keys(rt);var $r=Object.keys(nt);if(Hr.length!==$r.length)return!1}for(var lr=0;lr<Hr.length;lr++)if(!q(nt,Hr[lr]))return!1;if(Yt&&arguments.length===5){var Qr=A(rt);if(Qr.length!==0){var Va=0;for(lr=0;lr<Qr.length;lr++){var Mt=Qr[lr];if(M(rt,Mt)){if(!M(nt,Mt))return!1;Hr.push(Mt),Va++}else if(M(nt,Mt))return!1}var Kn=A(nt);if(Qr.length!==Kn.length&&ur(nt,Kn).length!==Va)return!1}else{var Sn=A(nt);if(Sn.length!==0&&ur(nt,Sn).length!==0)return!1}}if(Hr.length===0&&(pr===Se||pr===Me&&rt.length===0||rt.size===0))return!0;if(or===void 0)or={val1:new Map,val2:new Map,position:0};else{var hn=or.val1.get(rt);if(hn!==void 0){var As=or.val2.get(nt);if(As!==void 0)return hn===As}or.position++}or.val1.set(rt,or.position),or.val2.set(nt,or.position);var li=va(rt,nt,Yt,Hr,or,pr);return or.val1.delete(rt),or.val2.delete(nt),li}function ir(rt,nt,Yt,or){for(var pr=v(rt),Hr=0;Hr<pr.length;Hr++){var $r=pr[Hr];if(Ut(nt,$r,Yt,or))return rt.delete($r),!0}return!1}function Jr(rt){switch(y(rt)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":rt=+rt;case"number":if(_(rt))return!1}return!0}function Ea(rt,nt,Yt){var or=Jr(Yt);return or??(nt.has(or)&&!rt.has(or))}function Ua(rt,nt,Yt,or,pr){var Hr=Jr(Yt);if(Hr!=null)return Hr;var $r=nt.get(Hr);return $r===void 0&&!nt.has(Hr)||!Ut(or,$r,!1,pr)?!1:!rt.has(Hr)&&Ut(or,$r,!1,pr)}function da(rt,nt,Yt,or){for(var pr=null,Hr=v(rt),$r=0;$r<Hr.length;$r++){var lr=Hr[$r];if(y(lr)==="object"&&lr!==null)pr===null&&(pr=new Set),pr.add(lr);else if(!nt.has(lr)){if(Yt||!Ea(rt,nt,lr))return!1;pr===null&&(pr=new Set),pr.add(lr)}}if(pr!==null){for(var Qr=v(nt),Va=0;Va<Qr.length;Va++){var Mt=Qr[Va];if(y(Mt)==="object"&&Mt!==null){if(!ir(pr,Mt,Yt,or))return!1}else if(!Yt&&!rt.has(Mt)&&!ir(pr,Mt,Yt,or))return!1}return pr.size===0}return!0}function Rt(rt,nt,Yt,or,pr,Hr){for(var $r=v(rt),lr=0;lr<$r.length;lr++){var Qr=$r[lr];if(Ut(Yt,Qr,pr,Hr)&&Ut(or,nt.get(Qr),pr,Hr))return rt.delete(Qr),!0}return!1}function ja(rt,nt,Yt,or){for(var pr=null,Hr=E(rt),$r=0;$r<Hr.length;$r++){var lr=n(Hr[$r],2),Qr=lr[0],Va=lr[1];if(y(Qr)==="object"&&Qr!==null)pr===null&&(pr=new Set),pr.add(Qr);else{var Mt=nt.get(Qr);if(Mt===void 0&&!nt.has(Qr)||!Ut(Va,Mt,Yt,or)){if(Yt||!Ua(rt,nt,Qr,Va,or))return!1;pr===null&&(pr=new Set),pr.add(Qr)}}}if(pr!==null){for(var Kn=E(nt),Sn=0;Sn<Kn.length;Sn++){var hn=n(Kn[Sn],2),As=hn[0],li=hn[1];if(y(As)==="object"&&As!==null){if(!Rt(pr,rt,As,li,Yt,or))return!1}else if(!Yt&&(!rt.has(As)||!Ut(rt.get(As),li,!1,or))&&!Rt(pr,rt,As,li,!1,or))return!1}return pr.size===0}return!0}function va(rt,nt,Yt,or,pr,Hr){var $r=0;if(Hr===le){if(!da(rt,nt,Yt,pr))return!1}else if(Hr===Oe){if(!ja(rt,nt,Yt,pr))return!1}else if(Hr===Me)for(;$r<rt.length;$r++)if(q(rt,$r)){if(!q(nt,$r)||!Ut(rt[$r],nt[$r],Yt,pr))return!1}else{if(q(nt,$r))return!1;for(var lr=Object.keys(rt);$r<lr.length;$r++){var Qr=lr[$r];if(!q(nt,Qr)||!Ut(rt[Qr],nt[Qr],Yt,pr))return!1}return lr.length===Object.keys(nt).length}for($r=0;$r<or.length;$r++){var Va=or[$r];if(!Ut(rt[Va],nt[Va],Yt,pr))return!1}return!0}function Dt(rt,nt){return Ut(rt,nt,ht)}function on(rt,nt){return Ut(rt,nt,bt)}return MN={isDeepEqual:Dt,isDeepStrictEqual:on},MN}var ohe;function D2(){if(ohe)return yN.exports;ohe=1;function n(le){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Oe){return typeof Oe}:function(Oe){return Oe&&typeof Symbol=="function"&&Oe.constructor===Symbol&&Oe!==Symbol.prototype?"symbol":typeof Oe},n(le)}function t(le,Oe,Ke){return Object.defineProperty(le,"prototype",{writable:!1}),le}function a(le,Oe){if(!(le instanceof Oe))throw new TypeError("Cannot call a class as a function")}var i=Cge(),d=i.codes,p=d.ERR_AMBIGUOUS_ARGUMENT,y=d.ERR_INVALID_ARG_TYPE,b=d.ERR_INVALID_ARG_VALUE,v=d.ERR_INVALID_RETURN_VALUE,E=d.ERR_MISSING_ARGS,S=V2t(),A=qp,_=A.inspect,C=qp.types,q=C.isPromise,M=C.isRegExp,W=Z2t(),z=$L(),Y=L6("RegExp.prototype.test"),Z,ce;function ge(){var le=s6t();Z=le.isDeepEqual,ce=le.isDeepStrictEqual}var Ge=!1,Je=yN.exports=fe,re={};function Ae(le){throw le.message instanceof Error?le.message:new S(le)}function je(le,Oe,Ke,Ue,ot){var ct=arguments.length,Pt;if(ct===0)Pt="Failed";else if(ct===1)Ke=le,le=void 0;else{if(Ge===!1){Ge=!0;var Ut=process.emitWarning?process.emitWarning:console.warn.bind(console);Ut("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}ct===2&&(Ue="!=")}if(Ke instanceof Error)throw Ke;var ur={actual:le,expected:Oe,operator:Ue===void 0?"fail":Ue,stackStartFn:ot||je};Ke!==void 0&&(ur.message=Ke);var kr=new S(ur);throw Pt&&(kr.message=Pt,kr.generatedMessage=!0),kr}Je.fail=je,Je.AssertionError=S;function se(le,Oe,Ke,Ue){if(!Ke){var ot=!1;if(Oe===0)ot=!0,Ue="No value argument passed to `assert.ok()`";else if(Ue instanceof Error)throw Ue;var ct=new S({actual:Ke,expected:!0,message:Ue,operator:"==",stackStartFn:le});throw ct.generatedMessage=ot,ct}}function fe(){for(var le=arguments.length,Oe=new Array(le),Ke=0;Ke<le;Ke++)Oe[Ke]=arguments[Ke];se.apply(void 0,[fe,Oe.length].concat(Oe))}Je.ok=fe,Je.equal=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");Oe!=Ke&&Ae({actual:Oe,expected:Ke,message:Ue,operator:"==",stackStartFn:le})},Je.notEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");Oe==Ke&&Ae({actual:Oe,expected:Ke,message:Ue,operator:"!=",stackStartFn:le})},Je.deepEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");Z===void 0&&ge(),Z(Oe,Ke)||Ae({actual:Oe,expected:Ke,message:Ue,operator:"deepEqual",stackStartFn:le})},Je.notDeepEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");Z===void 0&&ge(),Z(Oe,Ke)&&Ae({actual:Oe,expected:Ke,message:Ue,operator:"notDeepEqual",stackStartFn:le})},Je.deepStrictEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");Z===void 0&&ge(),ce(Oe,Ke)||Ae({actual:Oe,expected:Ke,message:Ue,operator:"deepStrictEqual",stackStartFn:le})},Je.notDeepStrictEqual=kt;function kt(le,Oe,Ke){if(arguments.length<2)throw new E("actual","expected");Z===void 0&&ge(),ce(le,Oe)&&Ae({actual:le,expected:Oe,message:Ke,operator:"notDeepStrictEqual",stackStartFn:kt})}Je.strictEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");z(Oe,Ke)||Ae({actual:Oe,expected:Ke,message:Ue,operator:"strictEqual",stackStartFn:le})},Je.notStrictEqual=function le(Oe,Ke,Ue){if(arguments.length<2)throw new E("actual","expected");z(Oe,Ke)&&Ae({actual:Oe,expected:Ke,message:Ue,operator:"notStrictEqual",stackStartFn:le})};var Qt=t(function le(Oe,Ke,Ue){var ot=this;a(this,le),Ke.forEach(function(ct){ct in Oe&&(Ue!==void 0&&typeof Ue[ct]=="string"&&M(Oe[ct])&&Y(Oe[ct],Ue[ct])?ot[ct]=Ue[ct]:ot[ct]=Oe[ct])})});function mt(le,Oe,Ke,Ue,ot,ct){if(!(Ke in le)||!ce(le[Ke],Oe[Ke])){if(!Ue){var Pt=new Qt(le,ot),Ut=new Qt(Oe,ot,le),ur=new S({actual:Pt,expected:Ut,operator:"deepStrictEqual",stackStartFn:ct});throw ur.actual=le,ur.expected=Oe,ur.operator=ct.name,ur}Ae({actual:le,expected:Oe,message:Ue,operator:ct.name,stackStartFn:ct})}}function Tt(le,Oe,Ke,Ue){if(typeof Oe!="function"){if(M(Oe))return Y(Oe,le);if(arguments.length===2)throw new y("expected",["Function","RegExp"],Oe);if(n(le)!=="object"||le===null){var ot=new S({actual:le,expected:Oe,message:Ke,operator:"deepStrictEqual",stackStartFn:Ue});throw ot.operator=Ue.name,ot}var ct=Object.keys(Oe);if(Oe instanceof Error)ct.push("name","message");else if(ct.length===0)throw new b("error",Oe,"may not be an empty object");return Z===void 0&&ge(),ct.forEach(function(Pt){typeof le[Pt]=="string"&&M(Oe[Pt])&&Y(Oe[Pt],le[Pt])||mt(le,Oe,Pt,Ke,ct,Ue)}),!0}return Oe.prototype!==void 0&&le instanceof Oe?!0:Error.isPrototypeOf(Oe)?!1:Oe.call({},le)===!0}function ne(le){if(typeof le!="function")throw new y("fn","Function",le);try{le()}catch(Oe){return Oe}return re}function Zt(le){return q(le)||le!==null&&n(le)==="object"&&typeof le.then=="function"&&typeof le.catch=="function"}function pt(le){return Promise.resolve().then(function(){var Oe;if(typeof le=="function"){if(Oe=le(),!Zt(Oe))throw new v("instance of Promise","promiseFn",Oe)}else if(Zt(le))Oe=le;else throw new y("promiseFn",["Function","Promise"],le);return Promise.resolve().then(function(){return Oe}).then(function(){return re}).catch(function(Ke){return Ke})})}function bt(le,Oe,Ke,Ue){if(typeof Ke=="string"){if(arguments.length===4)throw new y("error",["Object","Error","Function","RegExp"],Ke);if(n(Oe)==="object"&&Oe!==null){if(Oe.message===Ke)throw new p("error/message",'The error message "'.concat(Oe.message,'" is identical to the message.'))}else if(Oe===Ke)throw new p("error/message",'The error "'.concat(Oe,'" is identical to the message.'));Ue=Ke,Ke=void 0}else if(Ke!=null&&n(Ke)!=="object"&&typeof Ke!="function")throw new y("error",["Object","Error","Function","RegExp"],Ke);if(Oe===re){var ot="";Ke&&Ke.name&&(ot+=" (".concat(Ke.name,")")),ot+=Ue?": ".concat(Ue):".";var ct=le.name==="rejects"?"rejection":"exception";Ae({actual:void 0,expected:Ke,operator:le.name,message:"Missing expected ".concat(ct).concat(ot),stackStartFn:le})}if(Ke&&!Tt(Oe,Ke,Ue,le))throw Oe}function ht(le,Oe,Ke,Ue){if(Oe!==re){if(typeof Ke=="string"&&(Ue=Ke,Ke=void 0),!Ke||Tt(Oe,Ke)){var ot=Ue?": ".concat(Ue):".",ct=le.name==="doesNotReject"?"rejection":"exception";Ae({actual:Oe,expected:Ke,operator:le.name,message:"Got unwanted ".concat(ct).concat(ot,` +`)+'Actual message: "'.concat(Oe&&Oe.message,'"'),stackStartFn:le})}throw Oe}}Je.throws=function le(Oe){for(var Ke=arguments.length,Ue=new Array(Ke>1?Ke-1:0),ot=1;ot<Ke;ot++)Ue[ot-1]=arguments[ot];bt.apply(void 0,[le,ne(Oe)].concat(Ue))},Je.rejects=function le(Oe){for(var Ke=arguments.length,Ue=new Array(Ke>1?Ke-1:0),ot=1;ot<Ke;ot++)Ue[ot-1]=arguments[ot];return pt(Oe).then(function(ct){return bt.apply(void 0,[le,ct].concat(Ue))})},Je.doesNotThrow=function le(Oe){for(var Ke=arguments.length,Ue=new Array(Ke>1?Ke-1:0),ot=1;ot<Ke;ot++)Ue[ot-1]=arguments[ot];ht.apply(void 0,[le,ne(Oe)].concat(Ue))},Je.doesNotReject=function le(Oe){for(var Ke=arguments.length,Ue=new Array(Ke>1?Ke-1:0),ot=1;ot<Ke;ot++)Ue[ot-1]=arguments[ot];return pt(Oe).then(function(ct){return ht.apply(void 0,[le,ct].concat(Ue))})},Je.ifError=function le(Oe){if(Oe!=null){var Ke="ifError got unwanted exception: ";n(Oe)==="object"&&typeof Oe.message=="string"?Oe.message.length===0&&Oe.constructor?Ke+=Oe.constructor.name:Ke+=Oe.message:Ke+=_(Oe);var Ue=new S({actual:Oe,expected:null,operator:"ifError",message:Ke,stackStartFn:le}),ot=Oe.stack;if(typeof ot=="string"){var ct=ot.split(` +`);ct.shift();for(var Pt=Ue.stack.split(` +`),Ut=0;Ut<ct.length;Ut++){var ur=Pt.indexOf(ct[Ut]);if(ur!==-1){Pt=Pt.slice(0,ur);break}}Ue.stack="".concat(Pt.join(` +`),` +`).concat(ct.join(` +`))}throw Ue}};function Se(le,Oe,Ke,Ue,ot){if(!M(Oe))throw new y("regexp","RegExp",Oe);var ct=ot==="match";if(typeof le!="string"||Y(Oe,le)!==ct){if(Ke instanceof Error)throw Ke;var Pt=!Ke;Ke=Ke||(typeof le!="string"?'The "string" argument must be of type string. Received type '+"".concat(n(le)," (").concat(_(le),")"):(ct?"The input did not match the regular expression ":"The input was expected to not match the regular expression ")+"".concat(_(Oe),`. Input: + +`).concat(_(le),` +`));var Ut=new S({actual:le,expected:Oe,message:Ke,operator:ot,stackStartFn:Ue});throw Ut.generatedMessage=Pt,Ut}}Je.match=function le(Oe,Ke,Ue){Se(Oe,Ke,Ue,le,"match")},Je.doesNotMatch=function le(Oe,Ke,Ue){Se(Oe,Ke,Ue,le,"doesNotMatch")};function Me(){for(var le=arguments.length,Oe=new Array(le),Ke=0;Ke<le;Ke++)Oe[Ke]=arguments[Ke];se.apply(void 0,[Me,Oe.length].concat(Oe))}return Je.strict=W(Me,Je,{equal:Je.strictEqual,deepEqual:Je.deepStrictEqual,notEqual:Je.notStrictEqual,notDeepEqual:Je.notDeepStrictEqual}),Je.strict.strict=Je.strict,yN.exports}var F6={};Object.defineProperty(F6,"__esModule",{value:!0});F6.default=void 0;var Ki=D2(),i6t=Ol();const{callExpression:BN,cloneNode:Bb,expressionStatement:lhe,identifier:Um,importDeclaration:o6t,importDefaultSpecifier:l6t,importNamespaceSpecifier:u6t,importSpecifier:c6t,memberExpression:FN,stringLiteral:uhe,variableDeclaration:d6t,variableDeclarator:p6t}=i6t;class f6t{constructor(t,a,i){this._statements=[],this._resultName=null,this._importedSource=void 0,this._scope=a,this._hub=i,this._importedSource=t}done(){return{statements:this._statements,resultName:this._resultName}}import(){return this._statements.push(o6t([],uhe(this._importedSource))),this}require(){return this._statements.push(lhe(BN(Um("require"),[uhe(this._importedSource)]))),this}namespace(t="namespace"){const a=this._scope.generateUidIdentifier(t),i=this._statements[this._statements.length-1];return Ki(i.type==="ImportDeclaration"),Ki(i.specifiers.length===0),i.specifiers=[u6t(a)],this._resultName=Bb(a),this}default(t){const a=this._scope.generateUidIdentifier(t),i=this._statements[this._statements.length-1];return Ki(i.type==="ImportDeclaration"),Ki(i.specifiers.length===0),i.specifiers=[l6t(a)],this._resultName=Bb(a),this}named(t,a){if(a==="default")return this.default(t);const i=this._scope.generateUidIdentifier(t),d=this._statements[this._statements.length-1];return Ki(d.type==="ImportDeclaration"),Ki(d.specifiers.length===0),d.specifiers=[c6t(i,Um(a))],this._resultName=Bb(i),this}var(t){const a=this._scope.generateUidIdentifier(t);let i=this._statements[this._statements.length-1];return i.type!=="ExpressionStatement"&&(Ki(this._resultName),i=lhe(this._resultName),this._statements.push(i)),this._statements[this._statements.length-1]=d6t("var",[p6t(a,i.expression)]),this._resultName=Bb(a),this}defaultInterop(){return this._interop(this._hub.addHelper("interopRequireDefault"))}wildcardInterop(){return this._interop(this._hub.addHelper("interopRequireWildcard"))}_interop(t){const a=this._statements[this._statements.length-1];return a.type==="ExpressionStatement"?a.expression=BN(t,[a.expression]):a.type==="VariableDeclaration"?(Ki(a.declarations.length===1),a.declarations[0].init=BN(t,[a.declarations[0].init])):Ki.fail("Unexpected type."),this}prop(t){const a=this._statements[this._statements.length-1];return a.type==="ExpressionStatement"?a.expression=FN(a.expression,Um(t)):a.type==="VariableDeclaration"?(Ki(a.declarations.length===1),a.declarations[0].init=FN(a.declarations[0].init,Um(t))):Ki.fail("Unexpected type:"+a.type),this}read(t){this._resultName=FN(this._resultName,Um(t))}}F6.default=f6t;var $6={};Object.defineProperty($6,"__esModule",{value:!0});$6.default=h6t;function h6t(n){return n.node.sourceType==="module"}Object.defineProperty(N6,"__esModule",{value:!0});N6.default=void 0;var che=D2(),m6t=Ol(),y6t=F6,g6t=$6;const{identifier:v6t,importSpecifier:b6t,numericLiteral:x6t,sequenceExpression:R6t,isImportDeclaration:dhe}=m6t;class E6t{constructor(t,a,i){this._defaultOpts={importedSource:null,importedType:"commonjs",importedInterop:"babel",importingInterop:"babel",ensureLiveReference:!1,ensureNoContext:!1,importPosition:"before"};const d=t.find(p=>p.isProgram());this._programPath=d,this._programScope=d.scope,this._hub=d.hub,this._defaultOpts=this._applyDefaults(a,i,!0)}addDefault(t,a){return this.addNamed("default",t,a)}addNamed(t,a,i){return che(typeof t=="string"),this._generateImport(this._applyDefaults(a,i),t)}addNamespace(t,a){return this._generateImport(this._applyDefaults(t,a),null)}addSideEffect(t,a){return this._generateImport(this._applyDefaults(t,a),void 0)}_applyDefaults(t,a,i=!1){let d;return typeof t=="string"?d=Object.assign({},this._defaultOpts,{importedSource:t},a):(che(!a,"Unexpected secondary arguments."),d=Object.assign({},this._defaultOpts,t)),!i&&a&&(a.nameHint!==void 0&&(d.nameHint=a.nameHint),a.blockHoist!==void 0&&(d.blockHoist=a.blockHoist)),d}_generateImport(t,a){const i=a==="default",d=!!a&&!i,p=a===null,{importedSource:y,importedType:b,importedInterop:v,importingInterop:E,ensureLiveReference:S,ensureNoContext:A,nameHint:_,importPosition:C,blockHoist:q}=t;let M=_||a;const W=(0,g6t.default)(this._programPath),z=W&&E==="node",Y=W&&E==="babel";if(C==="after"&&!W)throw new Error('"importPosition": "after" is only supported in modules');const Z=new y6t.default(y,this._programScope,this._hub);if(b==="es6"){if(!z&&!Y)throw new Error("Cannot import an ES6 module from CommonJS");Z.import(),p?Z.namespace(_||y):(i||d)&&Z.named(M,a)}else{if(b!=="commonjs")throw new Error(`Unexpected interopType "${b}"`);if(v==="babel")if(z){M=M!=="default"?M:y;const Ge=`${y}$es6Default`;Z.import(),p?Z.default(Ge).var(M||y).wildcardInterop():i?S?Z.default(Ge).var(M||y).defaultInterop().read("default"):Z.default(Ge).var(M).defaultInterop().prop(a):d&&Z.default(Ge).read(a)}else Y?(Z.import(),p?Z.namespace(M||y):(i||d)&&Z.named(M,a)):(Z.require(),p?Z.var(M||y).wildcardInterop():(i||d)&&S?i?(M=M!=="default"?M:y,Z.var(M).read(a),Z.defaultInterop()):Z.var(y).read(a):i?Z.var(M).defaultInterop().prop(a):d&&Z.var(M).prop(a));else if(v==="compiled")z?(Z.import(),p?Z.default(M||y):(i||d)&&Z.default(y).read(M)):Y?(Z.import(),p?Z.namespace(M||y):(i||d)&&Z.named(M,a)):(Z.require(),p?Z.var(M||y):(i||d)&&(S?Z.var(y).read(M):Z.prop(a).var(M)));else if(v==="uncompiled"){if(i&&S)throw new Error("No live reference for commonjs default");z?(Z.import(),p?Z.default(M||y):i?Z.default(M):d&&Z.default(y).read(M)):Y?(Z.import(),p?Z.default(M||y):i?Z.default(M):d&&Z.named(M,a)):(Z.require(),p?Z.var(M||y):i?Z.var(M):d&&(S?Z.var(y).read(M):Z.var(M).prop(a)))}else throw new Error(`Unknown importedInterop "${v}".`)}const{statements:ce,resultName:ge}=Z.done();return this._insertStatements(ce,C,q),(i||d)&&A&&ge.type!=="Identifier"?R6t([x6t(0),ge]):ge}_insertStatements(t,a="before",i=3){if(a==="after"){if(this._insertStatementsAfter(t))return}else if(this._insertStatementsBefore(t,i))return;this._programPath.unshiftContainer("body",t)}_insertStatementsBefore(t,a){if(t.length===1&&dhe(t[0])&&Fb(t[0])){const d=this._programPath.get("body").find(p=>p.isImportDeclaration()&&Fb(p.node));if((d==null?void 0:d.node.source.value)===t[0].source.value&&hhe(d.node,t[0]))return!0}t.forEach(d=>{d._blockHoist=a});const i=this._programPath.get("body").find(d=>{const p=d.node._blockHoist;return Number.isFinite(p)&&p<4});return i?(i.insertBefore(t),!0):!1}_insertStatementsAfter(t){const a=new Set(t),i=new Map;for(const p of t)if(dhe(p)&&Fb(p)){const y=p.source.value;i.has(y)||i.set(y,[]),i.get(y).push(p)}let d=null;for(const p of this._programPath.get("body"))if(p.isImportDeclaration()&&Fb(p.node)){d=p;const y=p.node.source.value,b=i.get(y);if(!b)continue;for(const v of b)a.has(v)&&hhe(p.node,v)&&a.delete(v)}return a.size===0?!0:(d&&d.insertAfter(Array.from(a)),!!d)}}N6.default=E6t;function Fb(n){return n.importKind!=="type"&&n.importKind!=="typeof"}function phe(n){return n.specifiers.length===1&&n.specifiers[0].type==="ImportNamespaceSpecifier"||n.specifiers.length===2&&n.specifiers[1].type==="ImportNamespaceSpecifier"}function fhe(n){return n.specifiers.length>0&&n.specifiers[0].type==="ImportDefaultSpecifier"}function hhe(n,t){return n.specifiers.length?t.specifiers.length?phe(n)||phe(t)?!1:(fhe(t)&&(fhe(n)?t.specifiers[0]=b6t(t.specifiers[0].local,v6t("default")):n.specifiers.unshift(t.specifiers.shift())),n.specifiers.push(...t.specifiers),!0):!0:(n.specifiers=t.specifiers,!0)}(function(n){Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ImportInjector",{enumerable:!0,get:function(){return t.default}}),n.addDefault=i,n.addNamed=d,n.addNamespace=p,n.addSideEffect=y,Object.defineProperty(n,"isModule",{enumerable:!0,get:function(){return a.default}});var t=N6,a=$6;function i(b,v,E){return new t.default(b).addDefault(v,E)}function d(b,v,E,S){return new t.default(b).addNamed(v,E,S)}function p(b,v,E){return new t.default(b).addNamespace(v,E)}function y(b,v,E){return new t.default(b).addSideEffect(v,E)}})(kp);/** +* @vue/compiler-sfc v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function as(n,t){const a=new Set(n.split(","));return t?i=>a.has(i.toLowerCase()):i=>a.has(i)}const S6t=Object.freeze({}),$N=()=>{},qN=()=>!1,Mge=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),El=Object.assign,T6t=Object.prototype.hasOwnProperty,qL=(n,t)=>T6t.call(n,t),es=Array.isArray,w6t=n=>UL(n)==="[object Map]",P6t=n=>UL(n)==="[object Set]",A6t=n=>typeof n=="function",Ca=n=>typeof n=="string",dd=n=>typeof n=="symbol",tf=n=>n!==null&&typeof n=="object",Bge=Object.prototype.toString,UL=n=>Bge.call(n),I6t=n=>UL(n)==="[object Object]",mhe=as(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Fge=as("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),q6=n=>{const t=Object.create(null);return a=>t[a]||(t[a]=n(a))},C6t=/-(\w)/g,Ws=q6(n=>n.replace(C6t,(t,a)=>a?a.toUpperCase():"")),j6t=/\B([A-Z])/g,O6t=q6(n=>n.replace(j6t,"-$1").toLowerCase()),ju=q6(n=>n.charAt(0).toUpperCase()+n.slice(1)),_6t=q6(n=>n?`on${ju(n)}`:""),N6t=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function yhe(n){return N6t.test(n)?`__props.${n}`:`__props[${JSON.stringify(n)}]`}const Au={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},k6t={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},D6t="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",$ge=as(D6t),ghe=2;function L6t(n,t=0,a=n.length){if(t=Math.max(0,Math.min(t,n.length)),a=Math.max(0,Math.min(a,n.length)),t>a)return"";let i=n.split(/(\r?\n)/);const d=i.filter((b,v)=>v%2===1);i=i.filter((b,v)=>v%2===0);let p=0;const y=[];for(let b=0;b<i.length;b++)if(p+=i[b].length+(d[b]&&d[b].length||0),p>=t){for(let v=b-ghe;v<=b+ghe||a>p;v++){if(v<0||v>=i.length)continue;const E=v+1;y.push(`${E}${" ".repeat(Math.max(3-String(E).length,0))}| ${i[v]}`);const S=i[v].length,A=d[v]&&d[v].length||0;if(v===b){const _=t-(p-(S+A)),C=Math.max(1,a>p?S-_:a-t);y.push(" | "+" ".repeat(_)+"^".repeat(C))}else if(v>b){if(a>p){const _=Math.max(Math.min(a-p,S),1);y.push(" | "+"^".repeat(_))}p+=S+A}}break}return y.join(` +`)}function qge(n){if(es(n)){const t={};for(let a=0;a<n.length;a++){const i=n[a],d=Ca(i)?Uge(i):qge(i);if(d)for(const p in d)t[p]=d[p]}return t}else if(Ca(n)||tf(n))return n}const M6t=/;(?![^(]*\))/g,B6t=/:([^]+)/,F6t=/\/\*[^]*?\*\//g;function Uge(n){const t={};return n.replace(F6t,"").split(M6t).forEach(a=>{if(a){const i=a.split(B6t);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function $6t(n){let t="";if(!n||Ca(n))return t;for(const a in n){const i=n[a];if(Ca(i)||typeof i=="number"){const d=a.startsWith("--")?a:O6t(a);t+=`${d}:${i};`}}return t}function Vge(n){let t="";if(Ca(n))t=n;else if(es(n))for(let a=0;a<n.length;a++){const i=Vge(n[a]);i&&(t+=i+" ")}else if(tf(n))for(const a in n)n[a]&&(t+=a+" ");return t.trim()}const q6t="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",U6t="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",V6t="annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics",W6t="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",G6t=as(q6t),K6t=as(U6t),H6t=as(V6t),Wge=as(W6t),z6t="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",X6t=as(z6t+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),J6t=as("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),Y6t=as("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),Q6t=/["'&<>]/;function Xc(n){const t=""+n,a=Q6t.exec(t);if(!a)return t;let i="",d,p,y=0;for(p=a.index;p<t.length;p++){switch(t.charCodeAt(p)){case 34:d=""";break;case 38:d="&";break;case 39:d="'";break;case 60:d="<";break;case 62:d=">";break;default:continue}y!==p&&(i+=t.slice(y,p)),y=p+1,i+=d}return y!==p?i+t.slice(y,p):i}const Gge=n=>!!(n&&n.__v_isRef===!0),U6=n=>Ca(n)?n:n==null?"":es(n)||tf(n)&&(n.toString===Bge||!A6t(n.toString))?Gge(n)?U6(n.value):JSON.stringify(n,Kge,2):String(n),Kge=(n,t)=>Gge(t)?Kge(n,t.value):w6t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((a,[i,d],p)=>(a[UN(i,p)+" =>"]=d,a),{})}:P6t(t)?{[`Set(${t.size})`]:[...t.values()].map(a=>UN(a))}:dd(t)?UN(t):tf(t)&&!es(t)&&!I6t(t)?String(t):t,UN=(n,t="")=>{var a;return dd(n)?`Symbol(${(a=n.description)!=null?a:t})`:n},Vp=Symbol("Fragment"),Lp=Symbol("Teleport"),V6=Symbol("Suspense"),my=Symbol("KeepAlive"),VL=Symbol("BaseTransition"),Ou=Symbol("openBlock"),WL=Symbol("createBlock"),GL=Symbol("createElementBlock"),W6=Symbol("createVNode"),G6=Symbol("createElementVNode"),rf=Symbol("createCommentVNode"),K6=Symbol("createTextVNode"),H6=Symbol("createStaticVNode"),yy=Symbol("resolveComponent"),z6=Symbol("resolveDynamicComponent"),X6=Symbol("resolveDirective"),Hge=Symbol("resolveFilter"),J6=Symbol("withDirectives"),Y6=Symbol("renderList"),KL=Symbol("renderSlot"),HL=Symbol("createSlots"),Xy=Symbol("toDisplayString"),gy=Symbol("mergeProps"),Q6=Symbol("normalizeClass"),Z6=Symbol("normalizeStyle"),Wp=Symbol("normalizeProps"),af=Symbol("guardReactiveProps"),ex=Symbol("toHandlers"),L2=Symbol("camelize"),zge=Symbol("capitalize"),M2=Symbol("toHandlerKey"),vy=Symbol("setBlockTracking"),Xge=Symbol("pushScopeId"),Jge=Symbol("popScopeId"),tx=Symbol("withCtx"),by=Symbol("unref"),xy=Symbol("isRef"),rx=Symbol("withMemo"),zL=Symbol("isMemoSame"),Vs={[Vp]:"Fragment",[Lp]:"Teleport",[V6]:"Suspense",[my]:"KeepAlive",[VL]:"BaseTransition",[Ou]:"openBlock",[WL]:"createBlock",[GL]:"createElementBlock",[W6]:"createVNode",[G6]:"createElementVNode",[rf]:"createCommentVNode",[K6]:"createTextVNode",[H6]:"createStaticVNode",[yy]:"resolveComponent",[z6]:"resolveDynamicComponent",[X6]:"resolveDirective",[Hge]:"resolveFilter",[J6]:"withDirectives",[Y6]:"renderList",[KL]:"renderSlot",[HL]:"createSlots",[Xy]:"toDisplayString",[gy]:"mergeProps",[Q6]:"normalizeClass",[Z6]:"normalizeStyle",[Wp]:"normalizeProps",[af]:"guardReactiveProps",[ex]:"toHandlers",[L2]:"camelize",[zge]:"capitalize",[M2]:"toHandlerKey",[vy]:"setBlockTracking",[Xge]:"pushScopeId",[Jge]:"popScopeId",[tx]:"withCtx",[by]:"unref",[xy]:"isRef",[rx]:"withMemo",[zL]:"isMemoSame"};function XL(n){Object.getOwnPropertySymbols(n).forEach(t=>{Vs[t]=n[t]})}const Z6t={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},ext={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},txt={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},rxt={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},En={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function JL(n,t=""){return{type:0,source:t,children:n,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:En}}function Gp(n,t,a,i,d,p,y,b=!1,v=!1,E=!1,S=En){return n&&(b?(n.helper(Ou),n.helper(id(n.inSSR,E))):n.helper(sd(n.inSSR,E)),y&&n.helper(J6)),{type:13,tag:t,props:a,children:i,patchFlag:d,dynamicProps:p,directives:y,isBlock:b,disableTracking:v,isComponent:E,loc:S}}function Sl(n,t=En){return{type:17,loc:t,elements:n}}function ni(n,t=En){return{type:15,loc:t,properties:n}}function Za(n,t){return{type:16,loc:En,key:Ca(n)?Fr(n,!0):n,value:t}}function Fr(n,t=!1,a=En,i=0){return{type:4,loc:a,content:n,isStatic:t,constType:t?3:i}}function axt(n,t){return{type:5,loc:t,content:Ca(n)?Fr(n,!1,t):n}}function Ts(n,t=En){return{type:8,loc:t,children:n}}function pn(n,t=[],a=En){return{type:14,loc:a,callee:n,arguments:t}}function nd(n,t=void 0,a=!1,i=!1,d=En){return{type:18,params:n,returns:t,newline:a,isSlot:i,loc:d}}function B2(n,t,a,i=!0){return{type:19,test:n,consequent:t,alternate:a,newline:i,loc:En}}function Yge(n,t,a=!1){return{type:20,index:n,value:t,needPauseTracking:a,needArraySpread:!1,loc:En}}function Qge(n){return{type:21,body:n,loc:En}}function nxt(n){return{type:22,elements:n,loc:En}}function sxt(n,t,a){return{type:23,test:n,consequent:t,alternate:a,loc:En}}function ixt(n,t){return{type:24,left:n,right:t,loc:En}}function oxt(n){return{type:25,expressions:n,loc:En}}function lxt(n){return{type:26,returns:n,loc:En}}function sd(n,t){return n||t?W6:G6}function id(n,t){return n||t?WL:GL}function ax(n,{helper:t,removeHelper:a,inSSR:i}){n.isBlock||(n.isBlock=!0,a(sd(i,n.isComponent)),t(Ou),t(id(i,n.isComponent)))}var Zge=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(n=>n.charCodeAt(0))),uxt=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(n=>n.charCodeAt(0))),VN;const cxt=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),kk=(VN=String.fromCodePoint)!==null&&VN!==void 0?VN:function(n){let t="";return n>65535&&(n-=65536,t+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),t+=String.fromCharCode(n),t};function dxt(n){var t;return n>=55296&&n<=57343||n>1114111?65533:(t=cxt.get(n))!==null&&t!==void 0?t:n}var kn;(function(n){n[n.NUM=35]="NUM",n[n.SEMI=59]="SEMI",n[n.EQUALS=61]="EQUALS",n[n.ZERO=48]="ZERO",n[n.NINE=57]="NINE",n[n.LOWER_A=97]="LOWER_A",n[n.LOWER_F=102]="LOWER_F",n[n.LOWER_X=120]="LOWER_X",n[n.LOWER_Z=122]="LOWER_Z",n[n.UPPER_A=65]="UPPER_A",n[n.UPPER_F=70]="UPPER_F",n[n.UPPER_Z=90]="UPPER_Z"})(kn||(kn={}));const pxt=32;var Tu;(function(n){n[n.VALUE_LENGTH=49152]="VALUE_LENGTH",n[n.BRANCH_LENGTH=16256]="BRANCH_LENGTH",n[n.JUMP_TABLE=127]="JUMP_TABLE"})(Tu||(Tu={}));function Dk(n){return n>=kn.ZERO&&n<=kn.NINE}function fxt(n){return n>=kn.UPPER_A&&n<=kn.UPPER_F||n>=kn.LOWER_A&&n<=kn.LOWER_F}function hxt(n){return n>=kn.UPPER_A&&n<=kn.UPPER_Z||n>=kn.LOWER_A&&n<=kn.LOWER_Z||Dk(n)}function mxt(n){return n===kn.EQUALS||hxt(n)}var _n;(function(n){n[n.EntityStart=0]="EntityStart",n[n.NumericStart=1]="NumericStart",n[n.NumericDecimal=2]="NumericDecimal",n[n.NumericHex=3]="NumericHex",n[n.NamedEntity=4]="NamedEntity"})(_n||(_n={}));var bo;(function(n){n[n.Legacy=0]="Legacy",n[n.Strict=1]="Strict",n[n.Attribute=2]="Attribute"})(bo||(bo={}));class e1e{constructor(t,a,i){this.decodeTree=t,this.emitCodePoint=a,this.errors=i,this.state=_n.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=bo.Strict}startEntity(t){this.decodeMode=t,this.state=_n.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,a){switch(this.state){case _n.EntityStart:return t.charCodeAt(a)===kn.NUM?(this.state=_n.NumericStart,this.consumed+=1,this.stateNumericStart(t,a+1)):(this.state=_n.NamedEntity,this.stateNamedEntity(t,a));case _n.NumericStart:return this.stateNumericStart(t,a);case _n.NumericDecimal:return this.stateNumericDecimal(t,a);case _n.NumericHex:return this.stateNumericHex(t,a);case _n.NamedEntity:return this.stateNamedEntity(t,a)}}stateNumericStart(t,a){return a>=t.length?-1:(t.charCodeAt(a)|pxt)===kn.LOWER_X?(this.state=_n.NumericHex,this.consumed+=1,this.stateNumericHex(t,a+1)):(this.state=_n.NumericDecimal,this.stateNumericDecimal(t,a))}addToNumericResult(t,a,i,d){if(a!==i){const p=i-a;this.result=this.result*Math.pow(d,p)+parseInt(t.substr(a,p),d),this.consumed+=p}}stateNumericHex(t,a){const i=a;for(;a<t.length;){const d=t.charCodeAt(a);if(Dk(d)||fxt(d))a+=1;else return this.addToNumericResult(t,i,a,16),this.emitNumericEntity(d,3)}return this.addToNumericResult(t,i,a,16),-1}stateNumericDecimal(t,a){const i=a;for(;a<t.length;){const d=t.charCodeAt(a);if(Dk(d))a+=1;else return this.addToNumericResult(t,i,a,10),this.emitNumericEntity(d,2)}return this.addToNumericResult(t,i,a,10),-1}emitNumericEntity(t,a){var i;if(this.consumed<=a)return(i=this.errors)===null||i===void 0||i.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===kn.SEMI)this.consumed+=1;else if(this.decodeMode===bo.Strict)return 0;return this.emitCodePoint(dxt(this.result),this.consumed),this.errors&&(t!==kn.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,a){const{decodeTree:i}=this;let d=i[this.treeIndex],p=(d&Tu.VALUE_LENGTH)>>14;for(;a<t.length;a++,this.excess++){const y=t.charCodeAt(a);if(this.treeIndex=yxt(i,d,this.treeIndex+Math.max(1,p),y),this.treeIndex<0)return this.result===0||this.decodeMode===bo.Attribute&&(p===0||mxt(y))?0:this.emitNotTerminatedNamedEntity();if(d=i[this.treeIndex],p=(d&Tu.VALUE_LENGTH)>>14,p!==0){if(y===kn.SEMI)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);this.decodeMode!==bo.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:a,decodeTree:i}=this,d=(i[a]&Tu.VALUE_LENGTH)>>14;return this.emitNamedEntityData(a,d,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,a,i){const{decodeTree:d}=this;return this.emitCodePoint(a===1?d[t]&~Tu.VALUE_LENGTH:d[t+1],i),a===3&&this.emitCodePoint(d[t+2],i),i}end(){var t;switch(this.state){case _n.NamedEntity:return this.result!==0&&(this.decodeMode!==bo.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case _n.NumericDecimal:return this.emitNumericEntity(0,2);case _n.NumericHex:return this.emitNumericEntity(0,3);case _n.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case _n.EntityStart:return 0}}}function t1e(n){let t="";const a=new e1e(n,i=>t+=kk(i));return function(d,p){let y=0,b=0;for(;(b=d.indexOf("&",b))>=0;){t+=d.slice(y,b),a.startEntity(p);const E=a.write(d,b+1);if(E<0){y=b+a.end();break}y=b+E,b=E===0?y+1:y}const v=t+d.slice(y);return t="",v}}function yxt(n,t,a,i){const d=(t&Tu.BRANCH_LENGTH)>>7,p=t&Tu.JUMP_TABLE;if(d===0)return p!==0&&i===p?a:-1;if(p){const v=i-p;return v<0||v>=d?-1:n[a+v]-1}let y=a,b=y+d-1;for(;y<=b;){const v=y+b>>>1,E=n[v];if(E<i)y=v+1;else if(E>i)b=v-1;else return n[v+d]}return-1}const gxt=t1e(Zge);t1e(uxt);function vxt(n,t=bo.Legacy){return gxt(n,t)}const vhe=new Uint8Array([123,123]),bhe=new Uint8Array([125,125]);function xhe(n){return n>=97&&n<=122||n>=65&&n<=90}function ri(n){return n===32||n===10||n===9||n===12||n===13}function mu(n){return n===47||n===62||ri(n)}function F2(n){const t=new Uint8Array(n.length);for(let a=0;a<n.length;a++)t[a]=n.charCodeAt(a);return t}const Wn={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};let bxt=class{constructor(t,a){this.stack=t,this.cbs=a,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=vhe,this.delimiterClose=bhe,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0,this.entityDecoder=new e1e(Zge,(i,d)=>this.emitCodePoint(i,d))}get inSFCRoot(){return this.mode===2&&this.stack.length===0}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=vhe,this.delimiterClose=bhe}getPos(t){let a=1,i=t+1;for(let d=this.newlines.length-1;d>=0;d--){const p=this.newlines[d];if(t>p){a=d+2,i=t-p;break}}return{column:i,line:a,offset:t}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(t){t===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):t===38?this.startEntity():!this.inVPre&&t===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(t))}stateInterpolationOpen(t){if(t===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const a=this.index+1-this.delimiterOpen.length;a>this.sectionStart&&this.cbs.ontext(this.sectionStart,a),this.state=3,this.sectionStart=a}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(t)):(this.state=1,this.stateText(t))}stateInterpolation(t){t===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(t))}stateInterpolationClose(t){t===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(t))}stateSpecialStartSequence(t){const a=this.sequenceIndex===this.currentSequence.length;if(!(a?mu(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!a){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(t)}stateInRCDATA(t){if(this.sequenceIndex===this.currentSequence.length){if(t===62||ri(t)){const a=this.index-this.currentSequence.length;if(this.sectionStart<a){const i=this.index;this.index=a,this.cbs.ontext(this.sectionStart,a),this.index=i}this.sectionStart=a+2,this.stateInClosingTagName(t),this.inRCDATA=!1;return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Wn.TitleEnd||this.currentSequence===Wn.TextareaEnd&&!this.inSFCRoot?t===38?this.startEntity():t===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(t)):this.fastForwardTo(60)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===60)}stateCDATASequence(t){t===Wn.Cdata[this.sequenceIndex]?++this.sequenceIndex===Wn.Cdata.length&&(this.state=28,this.currentSequence=Wn.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length;){const a=this.buffer.charCodeAt(this.index);if(a===10&&this.newlines.push(this.index),a===t)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Wn.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(t,a){this.enterRCDATA(t,a),this.state=31}enterRCDATA(t,a){this.inRCDATA=!0,this.currentSequence=t,this.sequenceIndex=a}stateBeforeTagName(t){t===33?(this.state=22,this.sectionStart=this.index+1):t===63?(this.state=24,this.sectionStart=this.index+1):xhe(t)?(this.sectionStart=this.index,this.mode===0?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:t===116?this.state=30:this.state=t===115?29:6):t===47?this.state=8:(this.state=1,this.stateText(t))}stateInTagName(t){mu(t)&&this.handleTagName(t)}stateInSFCRootTagName(t){if(mu(t)){const a=this.buffer.slice(this.sectionStart,this.index);a!=="template"&&this.enterRCDATA(F2("</"+a),0),this.handleTagName(t)}}handleTagName(t){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(t)}stateBeforeClosingTagName(t){ri(t)||(t===62?(this.cbs.onerr(14,this.index),this.state=1,this.sectionStart=this.index+1):(this.state=xhe(t)?9:27,this.sectionStart=this.index))}stateInClosingTagName(t){(t===62||ri(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){t===62&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(t){t===62?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):t===47?(this.state=7,this.peek()!==62&&this.cbs.onerr(22,this.index)):t===60&&this.peek()===47?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):ri(t)||(t===61&&this.cbs.onerr(19,this.index),this.handleAttrStart(t))}handleAttrStart(t){t===118&&this.peek()===45?(this.state=13,this.sectionStart=this.index):t===46||t===58||t===64||t===35?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===62?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):ri(t)||(this.state=11,this.stateBeforeAttrName(t))}stateInAttrName(t){t===61||mu(t)?(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(t)):(t===34||t===39||t===60)&&this.cbs.onerr(17,this.index)}stateInDirName(t){t===61||mu(t)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(t)):t===58?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):t===46&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(t){t===61||mu(t)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(t)):t===91?this.state=15:t===46&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(t){t===93?this.state=14:(t===61||mu(t))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(t),this.cbs.onerr(27,this.index))}stateInDirModifier(t){t===61||mu(t)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(t)):t===46&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(t){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(t)}stateAfterAttrName(t){t===61?this.state=18:t===47||t===62?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(t)):ri(t)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(t))}stateBeforeAttrValue(t){t===34?(this.state=19,this.sectionStart=this.index+1):t===39?(this.state=20,this.sectionStart=this.index+1):ri(t)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(t))}handleInAttrValue(t,a){t===a?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(a===34?3:2,this.index+1),this.state=11):t===38&&this.startEntity()}stateInAttrValueDoubleQuotes(t){this.handleInAttrValue(t,34)}stateInAttrValueSingleQuotes(t){this.handleInAttrValue(t,39)}stateInAttrValueNoQuotes(t){ri(t)||t===62?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(t)):t===34||t===39||t===60||t===61||t===96?this.cbs.onerr(18,this.index):t===38&&this.startEntity()}stateBeforeDeclaration(t){t===91?(this.state=26,this.sequenceIndex=0):this.state=t===45?25:23}stateInDeclaration(t){(t===62||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===62||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(t){t===45?(this.state=28,this.currentSequence=Wn.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(t){(t===62||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){t===Wn.ScriptEnd[3]?this.startSpecial(Wn.ScriptEnd,4):t===Wn.StyleEnd[3]?this.startSpecial(Wn.StyleEnd,4):(this.state=6,this.stateInTagName(t))}stateBeforeSpecialT(t){t===Wn.TitleEnd[3]?this.startSpecial(Wn.TitleEnd,4):t===Wn.TextareaEnd[3]?this.startSpecial(Wn.TextareaEnd,4):(this.state=6,this.stateInTagName(t))}startEntity(){this.baseState=this.state,this.state=33,this.entityStart=this.index,this.entityDecoder.startEntity(this.baseState===1||this.baseState===32?bo.Legacy:bo.Attribute)}stateInEntity(){{const t=this.entityDecoder.write(this.buffer,this.index);t>=0?(this.state=this.baseState,t===0&&(this.index=this.entityStart)):this.index=this.buffer.length-1}}parse(t){for(this.buffer=t;this.index<this.buffer.length;){const a=this.buffer.charCodeAt(this.index);switch(a===10&&this.newlines.push(this.index),this.state){case 1:{this.stateText(a);break}case 2:{this.stateInterpolationOpen(a);break}case 3:{this.stateInterpolation(a);break}case 4:{this.stateInterpolationClose(a);break}case 31:{this.stateSpecialStartSequence(a);break}case 32:{this.stateInRCDATA(a);break}case 26:{this.stateCDATASequence(a);break}case 19:{this.stateInAttrValueDoubleQuotes(a);break}case 12:{this.stateInAttrName(a);break}case 13:{this.stateInDirName(a);break}case 14:{this.stateInDirArg(a);break}case 15:{this.stateInDynamicDirArg(a);break}case 16:{this.stateInDirModifier(a);break}case 28:{this.stateInCommentLike(a);break}case 27:{this.stateInSpecialComment(a);break}case 11:{this.stateBeforeAttrName(a);break}case 6:{this.stateInTagName(a);break}case 34:{this.stateInSFCRootTagName(a);break}case 9:{this.stateInClosingTagName(a);break}case 5:{this.stateBeforeTagName(a);break}case 17:{this.stateAfterAttrName(a);break}case 20:{this.stateInAttrValueSingleQuotes(a);break}case 18:{this.stateBeforeAttrValue(a);break}case 8:{this.stateBeforeClosingTagName(a);break}case 10:{this.stateAfterClosingTagName(a);break}case 29:{this.stateBeforeSpecialS(a);break}case 30:{this.stateBeforeSpecialT(a);break}case 21:{this.stateInAttrValueNoQuotes(a);break}case 7:{this.stateInSelfClosingTag(a);break}case 23:{this.stateInDeclaration(a);break}case 22:{this.stateBeforeDeclaration(a);break}case 25:{this.stateBeforeComment(a);break}case 24:{this.stateInProcessingInstruction(a);break}case 33:{this.stateInEntity();break}}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(this.state===1||this.state===32&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===19||this.state===20||this.state===21)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.state===33&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const t=this.buffer.length;this.sectionStart>=t||(this.state===28?this.currentSequence===Wn.CdataEnd?this.cbs.oncdata(this.sectionStart,t):this.cbs.oncomment(this.sectionStart,t):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,t))}emitCodePoint(t,a){this.baseState!==1&&this.baseState!==32?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+a,this.index=this.sectionStart-1,this.cbs.onattribentity(kk(t),this.entityStart,this.sectionStart)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+a,this.index=this.sectionStart-1,this.cbs.ontextentity(kk(t),this.entityStart,this.sectionStart))}};const xxt={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},Rxt={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:n=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${n}.sync\` should be changed to \`v-model:${n}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",link:"https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html"},COMPILER_NATIVE_TEMPLATE:{message:"<template> with no special directives will render as a native template element instead of its inner content in Vue 3."},COMPILER_INLINE_TEMPLATE:{message:'"inline-template" has been removed in Vue 3.',link:"https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html"},COMPILER_FILTERS:{message:'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',link:"https://v3-migration.vuejs.org/breaking-changes/filters.html"}};function Lk(n,{compatConfig:t}){const a=t&&t[n];return n==="MODE"?a||3:a}function Ext(n,t){const a=Lk("MODE",t),i=Lk(n,t);return a===3?i===!0:i!==!1}function Sxt(n,t,a,...i){const d=Ext(n,t);return d&&r1e(n,t,a,...i),d}function r1e(n,t,a,...i){if(Lk(n,t)==="suppress-warning")return;const{message:p,link:y}=Rxt[n],b=`(deprecation ${n}) ${typeof p=="function"?p(...i):p}${y?` + Details: ${y}`:""}`,v=new SyntaxError(b);v.code=n,a&&(v.loc=a),t.onWarn(v)}function YL(n){throw n}function a1e(n){console.warn(`[Vue warn] ${n.message}`)}function _a(n,t,a,i){const d=(a||QL)[n]+(i||""),p=new SyntaxError(String(d));return p.code=n,p.loc=t,p}const Txt={ABRUPT_CLOSING_OF_EMPTY_COMMENT:0,0:"ABRUPT_CLOSING_OF_EMPTY_COMMENT",CDATA_IN_HTML_CONTENT:1,1:"CDATA_IN_HTML_CONTENT",DUPLICATE_ATTRIBUTE:2,2:"DUPLICATE_ATTRIBUTE",END_TAG_WITH_ATTRIBUTES:3,3:"END_TAG_WITH_ATTRIBUTES",END_TAG_WITH_TRAILING_SOLIDUS:4,4:"END_TAG_WITH_TRAILING_SOLIDUS",EOF_BEFORE_TAG_NAME:5,5:"EOF_BEFORE_TAG_NAME",EOF_IN_CDATA:6,6:"EOF_IN_CDATA",EOF_IN_COMMENT:7,7:"EOF_IN_COMMENT",EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT:8,8:"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",EOF_IN_TAG:9,9:"EOF_IN_TAG",INCORRECTLY_CLOSED_COMMENT:10,10:"INCORRECTLY_CLOSED_COMMENT",INCORRECTLY_OPENED_COMMENT:11,11:"INCORRECTLY_OPENED_COMMENT",INVALID_FIRST_CHARACTER_OF_TAG_NAME:12,12:"INVALID_FIRST_CHARACTER_OF_TAG_NAME",MISSING_ATTRIBUTE_VALUE:13,13:"MISSING_ATTRIBUTE_VALUE",MISSING_END_TAG_NAME:14,14:"MISSING_END_TAG_NAME",MISSING_WHITESPACE_BETWEEN_ATTRIBUTES:15,15:"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",NESTED_COMMENT:16,16:"NESTED_COMMENT",UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME:17,17:"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE:18,18:"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME:19,19:"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",UNEXPECTED_NULL_CHARACTER:20,20:"UNEXPECTED_NULL_CHARACTER",UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME:21,21:"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",UNEXPECTED_SOLIDUS_IN_TAG:22,22:"UNEXPECTED_SOLIDUS_IN_TAG",X_INVALID_END_TAG:23,23:"X_INVALID_END_TAG",X_MISSING_END_TAG:24,24:"X_MISSING_END_TAG",X_MISSING_INTERPOLATION_END:25,25:"X_MISSING_INTERPOLATION_END",X_MISSING_DIRECTIVE_NAME:26,26:"X_MISSING_DIRECTIVE_NAME",X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END:27,27:"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",X_V_IF_NO_EXPRESSION:28,28:"X_V_IF_NO_EXPRESSION",X_V_IF_SAME_KEY:29,29:"X_V_IF_SAME_KEY",X_V_ELSE_NO_ADJACENT_IF:30,30:"X_V_ELSE_NO_ADJACENT_IF",X_V_FOR_NO_EXPRESSION:31,31:"X_V_FOR_NO_EXPRESSION",X_V_FOR_MALFORMED_EXPRESSION:32,32:"X_V_FOR_MALFORMED_EXPRESSION",X_V_FOR_TEMPLATE_KEY_PLACEMENT:33,33:"X_V_FOR_TEMPLATE_KEY_PLACEMENT",X_V_BIND_NO_EXPRESSION:34,34:"X_V_BIND_NO_EXPRESSION",X_V_ON_NO_EXPRESSION:35,35:"X_V_ON_NO_EXPRESSION",X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET:36,36:"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",X_V_SLOT_MIXED_SLOT_USAGE:37,37:"X_V_SLOT_MIXED_SLOT_USAGE",X_V_SLOT_DUPLICATE_SLOT_NAMES:38,38:"X_V_SLOT_DUPLICATE_SLOT_NAMES",X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN:39,39:"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",X_V_SLOT_MISPLACED:40,40:"X_V_SLOT_MISPLACED",X_V_MODEL_NO_EXPRESSION:41,41:"X_V_MODEL_NO_EXPRESSION",X_V_MODEL_MALFORMED_EXPRESSION:42,42:"X_V_MODEL_MALFORMED_EXPRESSION",X_V_MODEL_ON_SCOPE_VARIABLE:43,43:"X_V_MODEL_ON_SCOPE_VARIABLE",X_V_MODEL_ON_PROPS:44,44:"X_V_MODEL_ON_PROPS",X_INVALID_EXPRESSION:45,45:"X_INVALID_EXPRESSION",X_KEEP_ALIVE_INVALID_CHILDREN:46,46:"X_KEEP_ALIVE_INVALID_CHILDREN",X_PREFIX_ID_NOT_SUPPORTED:47,47:"X_PREFIX_ID_NOT_SUPPORTED",X_MODULE_MODE_NOT_SUPPORTED:48,48:"X_MODULE_MODE_NOT_SUPPORTED",X_CACHE_HANDLER_NOT_SUPPORTED:49,49:"X_CACHE_HANDLER_NOT_SUPPORTED",X_SCOPE_ID_NOT_SUPPORTED:50,50:"X_SCOPE_ID_NOT_SUPPORTED",X_VNODE_HOOKS:51,51:"X_VNODE_HOOKS",X_V_BIND_INVALID_SAME_NAME_ARGUMENT:52,52:"X_V_BIND_INVALID_SAME_NAME_ARGUMENT",__EXTEND_POINT__:53,53:"__EXTEND_POINT__"},QL={0:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '<' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '<!--' in comment.",17:`Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`,18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",52:"v-bind with same-name shorthand only allows static argument.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:`v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,45:"Error parsing JavaScript expression: ",46:"<KeepAlive> expects exactly one child component.",51:"@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.",47:'"prefixIdentifiers" option is not supported in this build of compiler.',48:"ES module mode is not supported in this build of compiler.",49:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',50:'"scopeId" option is only supported in module mode.',53:""};function wxt(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function Jy(n){if(n.__esModule)return n;var t=n.default;if(typeof t=="function"){var a=function i(){return this instanceof i?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};a.prototype=t.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(n).forEach(function(i){var d=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(a,i,d.get?d:{enumerable:!0,get:function(){return n[i]}})}),a}var nx={};Object.defineProperty(nx,"__esModule",{value:!0});function Pxt(n,t){if(n==null)return{};var a={};for(var i in n)if({}.hasOwnProperty.call(n,i)){if(t.includes(i))continue;a[i]=n[i]}return a}class Iu{constructor(t,a,i){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=a,this.index=i}}class $2{constructor(t,a){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=a}}function ws(n,t){const{line:a,column:i,index:d}=n;return new Iu(a,i+t,d+t)}const Rhe="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";var Axt={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:Rhe},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:Rhe}};const Ehe={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},m2=n=>n.type==="UpdateExpression"?Ehe.UpdateExpression[`${n.prefix}`]:Ehe[n.type];var Ixt={AccessorIsGenerator:({kind:n})=>`A ${n}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:n})=>`Missing initializer in ${n} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:n})=>`\`${n}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:n})=>`'import.${n}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:n,exportName:t})=>`A string literal cannot be used as an exported binding without \`from\`. +- Did you mean \`export { '${n}' as '${t}' } from 'some-module'\`?`,ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:({type:n})=>`'${n==="ForInStatement"?"for-in":"for-of"}' loop variable declaration may not have an initializer.`,ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:({type:n})=>`Unsyntactic ${n==="BreakStatement"?"break":"continue"}.`,IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",ImportBindingIsString:({importName:n})=>`A string literal cannot be used as an imported binding. +- Did you mean \`import { "${n}" as foo }\`?`,ImportCallArgumentTrailingComma:"Trailing comma is disallowed inside import(...) arguments.",ImportCallArity:({maxArgumentCount:n})=>`\`import()\` requires exactly ${n===1?"one argument":"one or two arguments"}.`,ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:({radix:n})=>`Expected number in radix ${n}.`,InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:({reservedWord:n})=>`Escape sequence in keyword ${n}.`,InvalidIdentifier:({identifierName:n})=>`Invalid identifier ${n}.`,InvalidLhs:({ancestor:n})=>`Invalid left-hand side in ${m2(n)}.`,InvalidLhsBinding:({ancestor:n})=>`Binding invalid left-hand side in ${m2(n)}.`,InvalidLhsOptionalChaining:({ancestor:n})=>`Invalid optional chaining in the left-hand side of ${m2(n)}.`,InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:({unexpected:n})=>`Unexpected character '${n}'.`,InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:({identifierName:n})=>`Private name #${n} is not defined.`,InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:({labelName:n})=>`Label '${n}' is already declared.`,LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:({missingPlugin:n})=>`This experimental syntax requires enabling the parser plugin: ${n.map(t=>JSON.stringify(t)).join(", ")}.`,MissingOneOfPlugins:({missingPlugin:n})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${n.map(t=>JSON.stringify(t)).join(", ")}.`,MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:({key:n})=>`Duplicate key "${n}" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:n})=>`An export name cannot include a lone surrogate, found '\\u${n.toString(16)}'.`,ModuleExportUndefined:({localName:n})=>`Export '${n}' is not defined.`,MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:({identifierName:n})=>`Private names are only allowed in property accesses (\`obj.#${n}\`) or in \`in\` expressions (\`#${n} in obj\`).`,PrivateNameRedeclaration:({identifierName:n})=>`Duplicate private name #${n}.`,RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:({keyword:n})=>`Unexpected keyword '${n}'.`,UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:({reservedWord:n})=>`Unexpected reserved word '${n}'.`,UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:({expected:n,unexpected:t})=>`Unexpected token${t?` '${t}'.`:""}${n?`, expected "${n}"`:""}`,UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:({target:n,onlyValidPropertyName:t})=>`The only valid meta property for ${n} is ${n}.${t}.`,UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:({identifierName:n})=>`Identifier '${n}' has already been declared.`,YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},Cxt={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:({referenceName:n})=>`Assigning to '${n}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:n})=>`Binding '${n}' in strict mode.`,StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."};const jxt=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]);var Oxt={PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:({token:n})=>`Invalid topic token ${n}. In order to use ${n} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${n}" }.`,PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:({type:n})=>`Hack-style pipe body cannot be an unparenthesized ${m2({type:n})}; please wrap it in parentheses.`,PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'};const _xt=["message"];function She(n,t,a){Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:a})}function Nxt({toMessage:n,code:t,reasonCode:a,syntaxPlugin:i}){const d=a==="MissingPlugin"||a==="MissingOneOfPlugins";return function p(y,b){const v=new SyntaxError;return v.code=t,v.reasonCode=a,v.loc=y,v.pos=y.index,v.syntaxPlugin=i,d&&(v.missingPlugin=b.missingPlugin),She(v,"clone",function(S={}){var A;const{line:_,column:C,index:q}=(A=S.loc)!=null?A:y;return p(new Iu(_,C,q),Object.assign({},b,S.details))}),She(v,"details",b),Object.defineProperty(v,"message",{configurable:!0,get(){const E=`${n(b)} (${y.line}:${y.column})`;return this.message=E,E},set(E){Object.defineProperty(this,"message",{value:E,writable:!0})}}),v}}function yl(n,t){if(Array.isArray(n))return i=>yl(i,n[0]);const a={};for(const i of Object.keys(n)){const d=n[i],p=typeof d=="string"?{message:()=>d}:typeof d=="function"?{message:d}:d,{message:y}=p,b=Pxt(p,_xt),v=typeof y=="string"?()=>y:y;a[i]=Nxt(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:i,toMessage:v},t?{syntaxPlugin:t}:{},b))}return a}const Xe=Object.assign({},yl(Axt),yl(Ixt),yl(Cxt),yl`pipelineOperator`(Oxt)),{defineProperty:kxt}=Object,The=(n,t)=>{n&&kxt(n,t,{enumerable:!1,value:n[t]})};function Vm(n){return The(n.loc.start,"index"),The(n.loc.end,"index"),n}var Dxt=n=>class extends n{parse(){const a=Vm(super.parse());return this.options.tokens&&(a.tokens=a.tokens.map(Vm)),a}parseRegExpLiteral({pattern:a,flags:i}){let d=null;try{d=new RegExp(a,i)}catch{}const p=this.estreeParseLiteral(d);return p.regex={pattern:a,flags:i},p}parseBigIntLiteral(a){let i;try{i=BigInt(a)}catch{i=null}const d=this.estreeParseLiteral(i);return d.bigint=String(d.value||a),d}parseDecimalLiteral(a){const d=this.estreeParseLiteral(null);return d.decimal=String(d.value||a),d}estreeParseLiteral(a){return this.parseLiteral(a,"Literal")}parseStringLiteral(a){return this.estreeParseLiteral(a)}parseNumericLiteral(a){return this.estreeParseLiteral(a)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(a){return this.estreeParseLiteral(a)}directiveToStmt(a){const i=a.value;delete a.value,i.type="Literal",i.raw=i.extra.raw,i.value=i.extra.expressionValue;const d=a;return d.type="ExpressionStatement",d.expression=i,d.directive=i.extra.rawValue,delete i.extra,d}initFunction(a,i){super.initFunction(a,i),a.expression=!1}checkDeclaration(a){a!=null&&this.isObjectProperty(a)?this.checkDeclaration(a.value):super.checkDeclaration(a)}getObjectOrClassMethodParams(a){return a.value.params}isValidDirective(a){var i;return a.type==="ExpressionStatement"&&a.expression.type==="Literal"&&typeof a.expression.value=="string"&&!((i=a.expression.extra)!=null&&i.parenthesized)}parseBlockBody(a,i,d,p,y){super.parseBlockBody(a,i,d,p,y);const b=a.directives.map(v=>this.directiveToStmt(v));a.body=b.concat(a.body),delete a.directives}pushClassMethod(a,i,d,p,y,b){this.parseMethod(i,d,p,y,b,"ClassMethod",!0),i.typeParameters&&(i.value.typeParameters=i.typeParameters,delete i.typeParameters),a.body.push(i)}parsePrivateName(){const a=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(a):a}convertPrivateNameToPrivateIdentifier(a){const i=super.getPrivateNameSV(a);return a=a,delete a.id,a.name=i,a.type="PrivateIdentifier",a}isPrivateName(a){return this.getPluginOption("estree","classFeatures")?a.type==="PrivateIdentifier":super.isPrivateName(a)}getPrivateNameSV(a){return this.getPluginOption("estree","classFeatures")?a.name:super.getPrivateNameSV(a)}parseLiteral(a,i){const d=super.parseLiteral(a,i);return d.raw=d.extra.raw,delete d.extra,d}parseFunctionBody(a,i,d=!1){super.parseFunctionBody(a,i,d),a.expression=a.body.type!=="BlockStatement"}parseMethod(a,i,d,p,y,b,v=!1){let E=this.startNode();return E.kind=a.kind,E=super.parseMethod(E,i,d,p,y,b,v),E.type="FunctionExpression",delete E.kind,a.value=E,b==="ClassPrivateMethod"&&(a.computed=!1),this.finishNode(a,"MethodDefinition")}nameIsConstructor(a){return a.type==="Literal"?a.value==="constructor":super.nameIsConstructor(a)}parseClassProperty(...a){const i=super.parseClassProperty(...a);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition"),i}parseClassPrivateProperty(...a){const i=super.parseClassPrivateProperty(...a);return this.getPluginOption("estree","classFeatures")&&(i.type="PropertyDefinition",i.computed=!1),i}parseObjectMethod(a,i,d,p,y){const b=super.parseObjectMethod(a,i,d,p,y);return b&&(b.type="Property",b.kind==="method"&&(b.kind="init"),b.shorthand=!1),b}parseObjectProperty(a,i,d,p){const y=super.parseObjectProperty(a,i,d,p);return y&&(y.kind="init",y.type="Property"),y}isValidLVal(a,i,d){return a==="Property"?"value":super.isValidLVal(a,i,d)}isAssignable(a,i){return a!=null&&this.isObjectProperty(a)?this.isAssignable(a.value,i):super.isAssignable(a,i)}toAssignable(a,i=!1){if(a!=null&&this.isObjectProperty(a)){const{key:d,value:p}=a;this.isPrivateName(d)&&this.classScope.usePrivateName(this.getPrivateNameSV(d),d.loc.start),this.toAssignable(p,i)}else super.toAssignable(a,i)}toAssignableObjectExpressionProp(a,i,d){a.type==="Property"&&(a.kind==="get"||a.kind==="set")?this.raise(Xe.PatternHasAccessor,a.key):a.type==="Property"&&a.method?this.raise(Xe.PatternHasMethod,a.key):super.toAssignableObjectExpressionProp(a,i,d)}finishCallExpression(a,i){const d=super.finishCallExpression(a,i);if(d.callee.type==="Import"){if(d.type="ImportExpression",d.source=d.arguments[0],this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")){var p,y;d.options=(p=d.arguments[1])!=null?p:null,d.attributes=(y=d.arguments[1])!=null?y:null}delete d.arguments,delete d.callee}return d}toReferencedArguments(a){a.type!=="ImportExpression"&&super.toReferencedArguments(a)}parseExport(a,i){const d=this.state.lastTokStartLoc,p=super.parseExport(a,i);switch(p.type){case"ExportAllDeclaration":p.exported=null;break;case"ExportNamedDeclaration":p.specifiers.length===1&&p.specifiers[0].type==="ExportNamespaceSpecifier"&&(p.type="ExportAllDeclaration",p.exported=p.specifiers[0].exported,delete p.specifiers);case"ExportDefaultDeclaration":{var y;const{declaration:b}=p;(b==null?void 0:b.type)==="ClassDeclaration"&&((y=b.decorators)==null?void 0:y.length)>0&&b.start===p.start&&this.resetStartLocation(p,d)}break}return p}parseSubscript(a,i,d,p){const y=super.parseSubscript(a,i,d,p);if(p.optionalChainMember){if((y.type==="OptionalMemberExpression"||y.type==="OptionalCallExpression")&&(y.type=y.type.substring(8)),p.stop){const b=this.startNodeAtNode(y);return b.expression=y,this.finishNode(b,"ChainExpression")}}else(y.type==="MemberExpression"||y.type==="CallExpression")&&(y.optional=!1);return y}isOptionalMemberExpression(a){return a.type==="ChainExpression"?a.expression.type==="MemberExpression":super.isOptionalMemberExpression(a)}hasPropertyAsPrivateName(a){return a.type==="ChainExpression"&&(a=a.expression),super.hasPropertyAsPrivateName(a)}isObjectProperty(a){return a.type==="Property"&&a.kind==="init"&&!a.method}isObjectMethod(a){return a.type==="Property"&&(a.method||a.kind==="get"||a.kind==="set")}finishNodeAt(a,i,d){return Vm(super.finishNodeAt(a,i,d))}resetStartLocation(a,i){super.resetStartLocation(a,i),Vm(a)}resetEndLocation(a,i=this.state.lastTokEndLoc){super.resetEndLocation(a,i),Vm(a)}};class ay{constructor(t,a){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!a}}const Ma={brace:new ay("{"),j_oTag:new ay("<tag"),j_cTag:new ay("</tag"),j_expr:new ay("<tag>...</tag>",!0)};Ma.template=new ay("`",!0);const ca=!0,sr=!0,WN=!0,Wm=!0,yu=!0,Lxt=!0;class n1e{constructor(t,a={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=a.keyword,this.beforeExpr=!!a.beforeExpr,this.startsExpr=!!a.startsExpr,this.rightAssociative=!!a.rightAssociative,this.isLoop=!!a.isLoop,this.isAssign=!!a.isAssign,this.prefix=!!a.prefix,this.postfix=!!a.postfix,this.binop=a.binop!=null?a.binop:null,this.updateContext=null}}const ZL=new Map;function ya(n,t={}){t.keyword=n;const a=Ir(n,t);return ZL.set(n,a),a}function gs(n,t){return Ir(n,{beforeExpr:ca,binop:t})}let oy=-1;const pl=[],eM=[],tM=[],rM=[],aM=[],nM=[];function Ir(n,t={}){var a,i,d,p;return++oy,eM.push(n),tM.push((a=t.binop)!=null?a:-1),rM.push((i=t.beforeExpr)!=null?i:!1),aM.push((d=t.startsExpr)!=null?d:!1),nM.push((p=t.prefix)!=null?p:!1),pl.push(new n1e(n,t)),oy}function la(n,t={}){var a,i,d,p;return++oy,ZL.set(n,oy),eM.push(n),tM.push((a=t.binop)!=null?a:-1),rM.push((i=t.beforeExpr)!=null?i:!1),aM.push((d=t.startsExpr)!=null?d:!1),nM.push((p=t.prefix)!=null?p:!1),pl.push(new n1e("name",t)),oy}const Mxt={bracketL:Ir("[",{beforeExpr:ca,startsExpr:sr}),bracketHashL:Ir("#[",{beforeExpr:ca,startsExpr:sr}),bracketBarL:Ir("[|",{beforeExpr:ca,startsExpr:sr}),bracketR:Ir("]"),bracketBarR:Ir("|]"),braceL:Ir("{",{beforeExpr:ca,startsExpr:sr}),braceBarL:Ir("{|",{beforeExpr:ca,startsExpr:sr}),braceHashL:Ir("#{",{beforeExpr:ca,startsExpr:sr}),braceR:Ir("}"),braceBarR:Ir("|}"),parenL:Ir("(",{beforeExpr:ca,startsExpr:sr}),parenR:Ir(")"),comma:Ir(",",{beforeExpr:ca}),semi:Ir(";",{beforeExpr:ca}),colon:Ir(":",{beforeExpr:ca}),doubleColon:Ir("::",{beforeExpr:ca}),dot:Ir("."),question:Ir("?",{beforeExpr:ca}),questionDot:Ir("?."),arrow:Ir("=>",{beforeExpr:ca}),template:Ir("template"),ellipsis:Ir("...",{beforeExpr:ca}),backQuote:Ir("`",{startsExpr:sr}),dollarBraceL:Ir("${",{beforeExpr:ca,startsExpr:sr}),templateTail:Ir("...`",{startsExpr:sr}),templateNonTail:Ir("...${",{beforeExpr:ca,startsExpr:sr}),at:Ir("@"),hash:Ir("#",{startsExpr:sr}),interpreterDirective:Ir("#!..."),eq:Ir("=",{beforeExpr:ca,isAssign:Wm}),assign:Ir("_=",{beforeExpr:ca,isAssign:Wm}),slashAssign:Ir("_=",{beforeExpr:ca,isAssign:Wm}),xorAssign:Ir("_=",{beforeExpr:ca,isAssign:Wm}),moduloAssign:Ir("_=",{beforeExpr:ca,isAssign:Wm}),incDec:Ir("++/--",{prefix:yu,postfix:Lxt,startsExpr:sr}),bang:Ir("!",{beforeExpr:ca,prefix:yu,startsExpr:sr}),tilde:Ir("~",{beforeExpr:ca,prefix:yu,startsExpr:sr}),doubleCaret:Ir("^^",{startsExpr:sr}),doubleAt:Ir("@@",{startsExpr:sr}),pipeline:gs("|>",0),nullishCoalescing:gs("??",1),logicalOR:gs("||",1),logicalAND:gs("&&",2),bitwiseOR:gs("|",3),bitwiseXOR:gs("^",4),bitwiseAND:gs("&",5),equality:gs("==/!=/===/!==",6),lt:gs("</>/<=/>=",7),gt:gs("</>/<=/>=",7),relational:gs("</>/<=/>=",7),bitShift:gs("<</>>/>>>",8),bitShiftL:gs("<</>>/>>>",8),bitShiftR:gs("<</>>/>>>",8),plusMin:Ir("+/-",{beforeExpr:ca,binop:9,prefix:yu,startsExpr:sr}),modulo:Ir("%",{binop:10,startsExpr:sr}),star:Ir("*",{binop:10}),slash:gs("/",10),exponent:Ir("**",{beforeExpr:ca,binop:11,rightAssociative:!0}),_in:ya("in",{beforeExpr:ca,binop:7}),_instanceof:ya("instanceof",{beforeExpr:ca,binop:7}),_break:ya("break"),_case:ya("case",{beforeExpr:ca}),_catch:ya("catch"),_continue:ya("continue"),_debugger:ya("debugger"),_default:ya("default",{beforeExpr:ca}),_else:ya("else",{beforeExpr:ca}),_finally:ya("finally"),_function:ya("function",{startsExpr:sr}),_if:ya("if"),_return:ya("return",{beforeExpr:ca}),_switch:ya("switch"),_throw:ya("throw",{beforeExpr:ca,prefix:yu,startsExpr:sr}),_try:ya("try"),_var:ya("var"),_const:ya("const"),_with:ya("with"),_new:ya("new",{beforeExpr:ca,startsExpr:sr}),_this:ya("this",{startsExpr:sr}),_super:ya("super",{startsExpr:sr}),_class:ya("class",{startsExpr:sr}),_extends:ya("extends",{beforeExpr:ca}),_export:ya("export"),_import:ya("import",{startsExpr:sr}),_null:ya("null",{startsExpr:sr}),_true:ya("true",{startsExpr:sr}),_false:ya("false",{startsExpr:sr}),_typeof:ya("typeof",{beforeExpr:ca,prefix:yu,startsExpr:sr}),_void:ya("void",{beforeExpr:ca,prefix:yu,startsExpr:sr}),_delete:ya("delete",{beforeExpr:ca,prefix:yu,startsExpr:sr}),_do:ya("do",{isLoop:WN,beforeExpr:ca}),_for:ya("for",{isLoop:WN}),_while:ya("while",{isLoop:WN}),_as:la("as",{startsExpr:sr}),_assert:la("assert",{startsExpr:sr}),_async:la("async",{startsExpr:sr}),_await:la("await",{startsExpr:sr}),_defer:la("defer",{startsExpr:sr}),_from:la("from",{startsExpr:sr}),_get:la("get",{startsExpr:sr}),_let:la("let",{startsExpr:sr}),_meta:la("meta",{startsExpr:sr}),_of:la("of",{startsExpr:sr}),_sent:la("sent",{startsExpr:sr}),_set:la("set",{startsExpr:sr}),_source:la("source",{startsExpr:sr}),_static:la("static",{startsExpr:sr}),_using:la("using",{startsExpr:sr}),_yield:la("yield",{startsExpr:sr}),_asserts:la("asserts",{startsExpr:sr}),_checks:la("checks",{startsExpr:sr}),_exports:la("exports",{startsExpr:sr}),_global:la("global",{startsExpr:sr}),_implements:la("implements",{startsExpr:sr}),_intrinsic:la("intrinsic",{startsExpr:sr}),_infer:la("infer",{startsExpr:sr}),_is:la("is",{startsExpr:sr}),_mixins:la("mixins",{startsExpr:sr}),_proto:la("proto",{startsExpr:sr}),_require:la("require",{startsExpr:sr}),_satisfies:la("satisfies",{startsExpr:sr}),_keyof:la("keyof",{startsExpr:sr}),_readonly:la("readonly",{startsExpr:sr}),_unique:la("unique",{startsExpr:sr}),_abstract:la("abstract",{startsExpr:sr}),_declare:la("declare",{startsExpr:sr}),_enum:la("enum",{startsExpr:sr}),_module:la("module",{startsExpr:sr}),_namespace:la("namespace",{startsExpr:sr}),_interface:la("interface",{startsExpr:sr}),_type:la("type",{startsExpr:sr}),_opaque:la("opaque",{startsExpr:sr}),name:Ir("name",{startsExpr:sr}),string:Ir("string",{startsExpr:sr}),num:Ir("num",{startsExpr:sr}),bigint:Ir("bigint",{startsExpr:sr}),decimal:Ir("decimal",{startsExpr:sr}),regexp:Ir("regexp",{startsExpr:sr}),privateName:Ir("#name",{startsExpr:sr}),eof:Ir("eof"),jsxName:Ir("jsxName"),jsxText:Ir("jsxText",{beforeExpr:!0}),jsxTagStart:Ir("jsxTagStart",{startsExpr:!0}),jsxTagEnd:Ir("jsxTagEnd"),placeholder:Ir("%%",{startsExpr:!0})};function wa(n){return n>=93&&n<=132}function Bxt(n){return n<=92}function zi(n){return n>=58&&n<=132}function s1e(n){return n>=58&&n<=136}function Fxt(n){return rM[n]}function Mk(n){return aM[n]}function $xt(n){return n>=29&&n<=33}function whe(n){return n>=129&&n<=131}function qxt(n){return n>=90&&n<=92}function sM(n){return n>=58&&n<=92}function Uxt(n){return n>=39&&n<=59}function Vxt(n){return n===34}function Wxt(n){return nM[n]}function Gxt(n){return n>=121&&n<=123}function Kxt(n){return n>=124&&n<=130}function Cu(n){return eM[n]}function y2(n){return tM[n]}function Hxt(n){return n===57}function q2(n){return n>=24&&n<=25}function ul(n){return pl[n]}pl[8].updateContext=n=>{n.pop()},pl[5].updateContext=pl[7].updateContext=pl[23].updateContext=n=>{n.push(Ma.brace)},pl[22].updateContext=n=>{n[n.length-1]===Ma.template?n.pop():n.push(Ma.template)},pl[142].updateContext=n=>{n.push(Ma.j_expr,Ma.j_oTag)};let iM="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",i1e="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const zxt=new RegExp("["+iM+"]"),Xxt=new RegExp("["+iM+i1e+"]");iM=i1e=null;const o1e=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],Jxt=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];function Bk(n,t){let a=65536;for(let i=0,d=t.length;i<d;i+=2){if(a+=t[i],a>n)return!1;if(a+=t[i+1],a>=n)return!0}return!1}function hl(n){return n<65?n===36:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&zxt.test(String.fromCharCode(n)):Bk(n,o1e)}function Mp(n){return n<48?n===36:n<58?!0:n<65?!1:n<=90?!0:n<97?n===95:n<=122?!0:n<=65535?n>=170&&Xxt.test(String.fromCharCode(n)):Bk(n,o1e)||Bk(n,Jxt)}const oM={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},Yxt=new Set(oM.keyword),Qxt=new Set(oM.strict),Zxt=new Set(oM.strictBind);function l1e(n,t){return t&&n==="await"||n==="enum"}function u1e(n,t){return l1e(n,t)||Qxt.has(n)}function c1e(n){return Zxt.has(n)}function d1e(n,t){return u1e(n,t)||c1e(n)}function e4t(n){return Yxt.has(n)}function t4t(n,t,a){return n===64&&t===64&&hl(a)}const r4t=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function a4t(n){return r4t.has(n)}class lM{constructor(t){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=t}}class uM{constructor(t,a){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=a}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){const t=this.currentThisScopeFlags();return(t&64)>0&&(t&2)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&128)return!0;if(a&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new lM(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(t){return!!(t.flags&130||!this.parser.inModule&&t.flags&1)}declareName(t,a,i){let d=this.currentScope();if(a&8||a&16){this.checkRedeclarationInScope(d,t,a,i);let p=d.names.get(t)||0;a&16?p=p|4:(d.firstLexicalName||(d.firstLexicalName=t),p=p|2),d.names.set(t,p),a&8&&this.maybeExportDefined(d,t)}else if(a&4)for(let p=this.scopeStack.length-1;p>=0&&(d=this.scopeStack[p],this.checkRedeclarationInScope(d,t,a,i),d.names.set(t,(d.names.get(t)||0)|1),this.maybeExportDefined(d,t),!(d.flags&387));--p);this.parser.inModule&&d.flags&1&&this.undefinedExports.delete(t)}maybeExportDefined(t,a){this.parser.inModule&&t.flags&1&&this.undefinedExports.delete(a)}checkRedeclarationInScope(t,a,i,d){this.isRedeclaredInScope(t,a,i)&&this.parser.raise(Xe.VarRedeclaration,d,{identifierName:a})}isRedeclaredInScope(t,a,i){if(!(i&1))return!1;if(i&8)return t.names.has(a);const d=t.names.get(a);return i&16?(d&2)>0||!this.treatFunctionsAsVarInScope(t)&&(d&1)>0:(d&2)>0&&!(t.flags&8&&t.firstLexicalName===a)||!this.treatFunctionsAsVarInScope(t)&&(d&4)>0}checkLocalExport(t){const{name:a}=t;this.scopeStack[0].names.has(a)||this.undefinedExports.set(a,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&387)return a}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){const{flags:a}=this.scopeStack[t];if(a&451&&!(a&4))return a}}}class n4t extends lM{constructor(...t){super(...t),this.declareFunctions=new Set}}class s4t extends uM{createScope(t){return new n4t(t)}declareName(t,a,i){const d=this.currentScope();if(a&2048){this.checkRedeclarationInScope(d,t,a,i),this.maybeExportDefined(d,t),d.declareFunctions.add(t);return}super.declareName(t,a,i)}isRedeclaredInScope(t,a,i){if(super.isRedeclaredInScope(t,a,i))return!0;if(i&2048&&!t.declareFunctions.has(a)){const d=t.names.get(a);return(d&4)>0||(d&2)>0}return!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}}class i4t{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t=="string")return this.plugins.has(t);{const[a,i]=t;if(!this.hasPlugin(a))return!1;const d=this.plugins.get(a);for(const p of Object.keys(i))if((d==null?void 0:d[p])!==i[p])return!1;return!0}}getPluginOption(t,a){var i;return(i=this.plugins.get(t))==null?void 0:i[a]}}function p1e(n,t){n.trailingComments===void 0?n.trailingComments=t:n.trailingComments.unshift(...t)}function o4t(n,t){n.leadingComments===void 0?n.leadingComments=t:n.leadingComments.unshift(...t)}function Ry(n,t){n.innerComments===void 0?n.innerComments=t:n.innerComments.unshift(...t)}function Gm(n,t,a){let i=null,d=t.length;for(;i===null&&d>0;)i=t[--d];i===null||i.start>a.start?Ry(n,a.comments):p1e(i,a.comments)}class l4t extends i4t{addComment(t){this.filename&&(t.loc.filename=this.filename);const{commentsLen:a}=this.state;this.comments.length!==a&&(this.comments.length=a),this.comments.push(t),this.state.commentsLen++}processComment(t){const{commentStack:a}=this.state,i=a.length;if(i===0)return;let d=i-1;const p=a[d];p.start===t.end&&(p.leadingNode=t,d--);const{start:y}=t;for(;d>=0;d--){const b=a[d],v=b.end;if(v>y)b.containingNode=t,this.finalizeComment(b),a.splice(d,1);else{v===y&&(b.trailingNode=t);break}}}finalizeComment(t){const{comments:a}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&p1e(t.leadingNode,a),t.trailingNode!==null&&o4t(t.trailingNode,a);else{const{containingNode:i,start:d}=t;if(this.input.charCodeAt(d-1)===44)switch(i.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":Gm(i,i.properties,t);break;case"CallExpression":case"OptionalCallExpression":Gm(i,i.arguments,t);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Gm(i,i.params,t);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":Gm(i,i.elements,t);break;case"ExportNamedDeclaration":case"ImportDeclaration":Gm(i,i.specifiers,t);break;default:Ry(i,a)}else Ry(i,a)}}finalizeRemainingComments(){const{commentStack:t}=this.state;for(let a=t.length-1;a>=0;a--)this.finalizeComment(t[a]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){const{commentStack:a}=this.state,{length:i}=a;if(i===0)return;const d=a[i-1];d.leadingNode===t&&(d.leadingNode=null)}resetPreviousIdentifierLeadingComments(t){const{commentStack:a}=this.state,{length:i}=a;i!==0&&(a[i-1].trailingNode===t?a[i-1].trailingNode=null:i>=2&&a[i-2].trailingNode===t&&(a[i-2].trailingNode=null))}takeSurroundingComments(t,a,i){const{commentStack:d}=this.state,p=d.length;if(p===0)return;let y=p-1;for(;y>=0;y--){const b=d[y],v=b.end;if(b.start===i)b.leadingNode=t;else if(v===a)b.trailingNode=t;else if(v<a)break}}}const u4t=/\r\n|[\r\n\u2028\u2029]/,$b=new RegExp(u4t.source,"g");function Bp(n){switch(n){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function Phe(n,t,a){for(let i=t;i<a;i++)if(Bp(n.charCodeAt(i)))return!0;return!1}const GN=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,KN=/(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;function c4t(n){switch(n){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}class cM{constructor(){this.flags=1024,this.curLine=void 0,this.lineStart=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.labels=[],this.commentsLen=0,this.commentStack=[],this.pos=0,this.type=139,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.context=[Ma.brace],this.firstInvalidTemplateEscapePos=null,this.strictErrors=new Map,this.tokensLength=0}get strict(){return(this.flags&1)>0}set strict(t){t?this.flags|=1:this.flags&=-2}init({strictMode:t,sourceType:a,startLine:i,startColumn:d}){this.strict=t===!1?!1:t===!0?!0:a==="module",this.curLine=i,this.lineStart=-d,this.startLoc=this.endLoc=new Iu(i,d,0)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(t){t?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(t){t?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(t){t?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(t){t?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(t){t?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(t){t?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(t){t?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(t){t?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(t){t?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(t){t?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(t){t?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(t){t?this.flags|=4096:this.flags&=-4097}curPosition(){return new Iu(this.curLine,this.pos-this.lineStart,this.pos)}clone(){const t=new cM;return t.flags=this.flags,t.curLine=this.curLine,t.lineStart=this.lineStart,t.startLoc=this.startLoc,t.endLoc=this.endLoc,t.errors=this.errors.slice(),t.potentialArrowAt=this.potentialArrowAt,t.noArrowAt=this.noArrowAt.slice(),t.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),t.topicContext=this.topicContext,t.labels=this.labels.slice(),t.commentsLen=this.commentsLen,t.commentStack=this.commentStack.slice(),t.pos=this.pos,t.type=this.type,t.value=this.value,t.start=this.start,t.end=this.end,t.lastTokEndLoc=this.lastTokEndLoc,t.lastTokStartLoc=this.lastTokStartLoc,t.context=this.context.slice(),t.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,t.strictErrors=this.strictErrors,t.tokensLength=this.tokensLength,t}}var d4t=function(t){return t>=48&&t<=57};const Ahe={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},qb={bin:n=>n===48||n===49,oct:n=>n>=48&&n<=55,dec:n=>n>=48&&n<=57,hex:n=>n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102};function Ihe(n,t,a,i,d,p){const y=a,b=i,v=d;let E="",S=null,A=a;const{length:_}=t;for(;;){if(a>=_){p.unterminated(y,b,v),E+=t.slice(A,a);break}const C=t.charCodeAt(a);if(p4t(n,C,t,a)){E+=t.slice(A,a);break}if(C===92){E+=t.slice(A,a);const q=f4t(t,a,i,d,n==="template",p);q.ch===null&&!S?S={pos:a,lineStart:i,curLine:d}:E+=q.ch,{pos:a,lineStart:i,curLine:d}=q,A=a}else C===8232||C===8233?(++a,++d,i=a):C===10||C===13?n==="template"?(E+=t.slice(A,a)+` +`,++a,C===13&&t.charCodeAt(a)===10&&++a,++d,A=i=a):p.unterminated(y,b,v):++a}return{pos:a,str:E,firstInvalidLoc:S,lineStart:i,curLine:d,containsInvalid:!!S}}function p4t(n,t,a,i){return n==="template"?t===96||t===36&&a.charCodeAt(i+1)===123:t===(n==="double"?34:39)}function f4t(n,t,a,i,d,p){const y=!d;t++;const b=E=>({pos:t,ch:E,lineStart:a,curLine:i}),v=n.charCodeAt(t++);switch(v){case 110:return b(` +`);case 114:return b("\r");case 120:{let E;return{code:E,pos:t}=Fk(n,t,a,i,2,!1,y,p),b(E===null?null:String.fromCharCode(E))}case 117:{let E;return{code:E,pos:t}=h1e(n,t,a,i,y,p),b(E===null?null:String.fromCodePoint(E))}case 116:return b(" ");case 98:return b("\b");case 118:return b("\v");case 102:return b("\f");case 13:n.charCodeAt(t)===10&&++t;case 10:a=t,++i;case 8232:case 8233:return b("");case 56:case 57:if(d)return b(null);p.strictNumericEscape(t-1,a,i);default:if(v>=48&&v<=55){const E=t-1;let A=/^[0-7]+/.exec(n.slice(E,t+2))[0],_=parseInt(A,8);_>255&&(A=A.slice(0,-1),_=parseInt(A,8)),t+=A.length-1;const C=n.charCodeAt(t);if(A!=="0"||C===56||C===57){if(d)return b(null);p.strictNumericEscape(E,a,i)}return b(String.fromCharCode(_))}return b(String.fromCharCode(v))}}function Fk(n,t,a,i,d,p,y,b){const v=t;let E;return{n:E,pos:t}=f1e(n,t,a,i,16,d,p,!1,b,!y),E===null&&(y?b.invalidEscapeSequence(v,a,i):t=v-1),{code:E,pos:t}}function f1e(n,t,a,i,d,p,y,b,v,E){const S=t,A=d===16?Ahe.hex:Ahe.decBinOct,_=d===16?qb.hex:d===10?qb.dec:d===8?qb.oct:qb.bin;let C=!1,q=0;for(let M=0,W=p??1/0;M<W;++M){const z=n.charCodeAt(t);let Y;if(z===95&&b!=="bail"){const Z=n.charCodeAt(t-1),ce=n.charCodeAt(t+1);if(b){if(Number.isNaN(ce)||!_(ce)||A.has(Z)||A.has(ce)){if(E)return{n:null,pos:t};v.unexpectedNumericSeparator(t,a,i)}}else{if(E)return{n:null,pos:t};v.numericSeparatorInEscapeSequence(t,a,i)}++t;continue}if(z>=97?Y=z-97+10:z>=65?Y=z-65+10:d4t(z)?Y=z-48:Y=1/0,Y>=d){if(Y<=9&&E)return{n:null,pos:t};if(Y<=9&&v.invalidDigit(t,a,i,d))Y=0;else if(y)Y=0,C=!0;else break}++t,q=q*d+Y}return t===S||p!=null&&t-S!==p||C?{n:null,pos:t}:{n:q,pos:t}}function h1e(n,t,a,i,d,p){const y=n.charCodeAt(t);let b;if(y===123){if(++t,{code:b,pos:t}=Fk(n,t,a,i,n.indexOf("}",t)-t,!0,d,p),++t,b!==null&&b>1114111)if(d)p.invalidCodePoint(t,a,i);else return{code:null,pos:t}}else({code:b,pos:t}=Fk(n,t,a,i,4,!1,d,p));return{code:b,pos:t}}function Km(n,t,a){return new Iu(a,n-t,n)}const h4t=new Set([103,109,115,105,121,117,100,118]);class bu{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new $2(t.startLoc,t.endLoc)}}class m4t extends l4t{constructor(t,a){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(i,d,p,y)=>this.options.errorRecovery?(this.raise(Xe.InvalidDigit,Km(i,d,p),{radix:y}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(Xe.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(Xe.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(Xe.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(Xe.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(i,d,p)=>{this.recordStrictModeErrors(Xe.StrictNumericEscape,Km(i,d,p))},unterminated:(i,d,p)=>{throw this.raise(Xe.UnterminatedString,Km(i-1,d,p))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(Xe.StrictNumericEscape),unterminated:(i,d,p)=>{throw this.raise(Xe.UnterminatedTemplate,Km(i,d,p))}}),this.state=new cM,this.state.init(t),this.input=a,this.length=a.length,this.comments=[],this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new bu(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){const t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;const a=this.state;return this.state=t,a}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return GN.lastIndex=t,GN.test(this.input)?GN.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(t){return KN.lastIndex=t,KN.test(this.input)?KN.lastIndex:t}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(t){let a=this.input.charCodeAt(t);if((a&64512)===55296&&++t<this.input.length){const i=this.input.charCodeAt(t);(i&64512)===56320&&(a=65536+((a&1023)<<10)+(i&1023))}return a}setStrict(t){this.state.strict=t,t&&(this.state.strictErrors.forEach(([a,i])=>this.raise(a,i)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(139);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(t){let a;this.isLookahead||(a=this.state.curPosition());const i=this.state.pos,d=this.input.indexOf(t,i+2);if(d===-1)throw this.raise(Xe.UnterminatedComment,this.state.curPosition());for(this.state.pos=d+t.length,$b.lastIndex=i+2;$b.test(this.input)&&$b.lastIndex<=d;)++this.state.curLine,this.state.lineStart=$b.lastIndex;if(this.isLookahead)return;const p={type:"CommentBlock",value:this.input.slice(i+2,d),start:i,end:d+t.length,loc:new $2(a,this.state.curPosition())};return this.options.tokens&&this.pushToken(p),p}skipLineComment(t){const a=this.state.pos;let i;this.isLookahead||(i=this.state.curPosition());let d=this.input.charCodeAt(this.state.pos+=t);if(this.state.pos<this.length)for(;!Bp(d)&&++this.state.pos<this.length;)d=this.input.charCodeAt(this.state.pos);if(this.isLookahead)return;const p=this.state.pos,b={type:"CommentLine",value:this.input.slice(a+t,p),start:a,end:p,loc:new $2(i,this.state.curPosition())};return this.options.tokens&&this.pushToken(b),b}skipSpace(){const t=this.state.pos,a=[];e:for(;this.state.pos<this.length;){const i=this.input.charCodeAt(this.state.pos);switch(i){case 32:case 160:case 9:++this.state.pos;break;case 13:this.input.charCodeAt(this.state.pos+1)===10&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:{const d=this.skipBlockComment("*/");d!==void 0&&(this.addComment(d),this.options.attachComment&&a.push(d));break}case 47:{const d=this.skipLineComment(2);d!==void 0&&(this.addComment(d),this.options.attachComment&&a.push(d));break}default:break e}break;default:if(c4t(i))++this.state.pos;else if(i===45&&!this.inModule&&this.options.annexB){const d=this.state.pos;if(this.input.charCodeAt(d+1)===45&&this.input.charCodeAt(d+2)===62&&(t===0||this.state.lineStart>t)){const p=this.skipLineComment(3);p!==void 0&&(this.addComment(p),this.options.attachComment&&a.push(p))}else break e}else if(i===60&&!this.inModule&&this.options.annexB){const d=this.state.pos;if(this.input.charCodeAt(d+1)===33&&this.input.charCodeAt(d+2)===45&&this.input.charCodeAt(d+3)===45){const p=this.skipLineComment(4);p!==void 0&&(this.addComment(p),this.options.attachComment&&a.push(p))}else break e}else break e}}if(a.length>0){const i=this.state.pos,d={start:t,end:i,comments:a,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(d)}}finishToken(t,a){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();const i=this.state.type;this.state.type=t,this.state.value=a,this.isLookahead||this.updateContext(i)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;const t=this.state.pos+1,a=this.codePointAtPos(t);if(a>=48&&a<=57)throw this.raise(Xe.UnexpectedDigitAfterHash,this.state.curPosition());if(a===123||a===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(a===123?Xe.RecordExpressionHashIncorrectStartSyntaxType:Xe.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,a===123?this.finishToken(7):this.finishToken(1)}else hl(a)?(++this.state.pos,this.finishToken(138,this.readWord1(a))):a===92?(++this.state.pos,this.finishToken(138,this.readWord1())):this.finishOp(27,1)}readToken_dot(){const t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;const a=this.state.pos;for(this.state.pos+=1;!Bp(t)&&++this.state.pos<this.length;)t=this.input.charCodeAt(this.state.pos);const i=this.input.slice(a+2,this.state.pos);return this.finishToken(28,i),!0}readToken_mult_modulo(t){let a=t===42?55:54,i=1,d=this.input.charCodeAt(this.state.pos+1);t===42&&d===42&&(i++,d=this.input.charCodeAt(this.state.pos+2),a=57),d===61&&!this.state.inType&&(i++,a=t===37?33:30),this.finishOp(a,i)}readToken_pipe_amp(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===t){this.input.charCodeAt(this.state.pos+2)===61?this.finishOp(30,3):this.finishOp(t===124?41:42,2);return}if(t===124){if(a===62){this.finishOp(39,2);return}if(this.hasPlugin("recordAndTuple")&&a===125){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(Xe.RecordExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(9);return}if(this.hasPlugin("recordAndTuple")&&a===93){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(Xe.TupleExpressionBarIncorrectEndSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(4);return}}if(a===61){this.finishOp(30,2);return}this.finishOp(t===124?43:45,1)}readToken_caret(){const t=this.input.charCodeAt(this.state.pos+1);t===61&&!this.state.inType?this.finishOp(32,2):t===94&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"^^"}])?(this.finishOp(37,2),this.input.codePointAt(this.state.pos)===94&&this.unexpected()):this.finishOp(44,1)}readToken_atSign(){this.input.charCodeAt(this.state.pos+1)===64&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"@@"}])?this.finishOp(38,2):this.finishOp(26,1)}readToken_plus_min(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===t){this.finishOp(34,2);return}a===61?this.finishOp(30,2):this.finishOp(53,1)}readToken_lt(){const{pos:t}=this.state,a=this.input.charCodeAt(t+1);if(a===60){if(this.input.charCodeAt(t+2)===61){this.finishOp(30,3);return}this.finishOp(51,2);return}if(a===61){this.finishOp(49,2);return}this.finishOp(47,1)}readToken_gt(){const{pos:t}=this.state,a=this.input.charCodeAt(t+1);if(a===62){const i=this.input.charCodeAt(t+2)===62?3:2;if(this.input.charCodeAt(t+i)===61){this.finishOp(30,i+1);return}this.finishOp(52,i);return}if(a===61){this.finishOp(49,2);return}this.finishOp(48,1)}readToken_eq_excl(t){const a=this.input.charCodeAt(this.state.pos+1);if(a===61){this.finishOp(46,this.input.charCodeAt(this.state.pos+2)===61?3:2);return}if(t===61&&a===62){this.state.pos+=2,this.finishToken(19);return}this.finishOp(t===61?29:35,1)}readToken_question(){const t=this.input.charCodeAt(this.state.pos+1),a=this.input.charCodeAt(this.state.pos+2);t===63?a===61?this.finishOp(30,3):this.finishOp(40,2):t===46&&!(a>=48&&a<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(Xe.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(Xe.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{const a=this.input.charCodeAt(this.state.pos+1);if(a===120||a===88){this.readRadixNumber(16);return}if(a===111||a===79){this.readRadixNumber(8);return}if(a===98||a===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(hl(t)){this.readWord(t);return}}throw this.raise(Xe.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(t)})}finishOp(t,a){const i=this.input.slice(this.state.pos,this.state.pos+a);this.state.pos+=a,this.finishToken(t,i)}readRegexp(){const t=this.state.startLoc,a=this.state.start+1;let i,d,{pos:p}=this.state;for(;;++p){if(p>=this.length)throw this.raise(Xe.UnterminatedRegExp,ws(t,1));const E=this.input.charCodeAt(p);if(Bp(E))throw this.raise(Xe.UnterminatedRegExp,ws(t,1));if(i)i=!1;else{if(E===91)d=!0;else if(E===93&&d)d=!1;else if(E===47&&!d)break;i=E===92}}const y=this.input.slice(a,p);++p;let b="";const v=()=>ws(t,p+2-a);for(;p<this.length;){const E=this.codePointAtPos(p),S=String.fromCharCode(E);if(h4t.has(E))E===118?b.includes("u")&&this.raise(Xe.IncompatibleRegExpUVFlags,v()):E===117&&b.includes("v")&&this.raise(Xe.IncompatibleRegExpUVFlags,v()),b.includes(S)&&this.raise(Xe.DuplicateRegExpFlags,v());else if(Mp(E)||E===92)this.raise(Xe.MalformedRegExpFlags,v());else break;++p,b+=S}this.state.pos=p,this.finishToken(137,{pattern:y,flags:b})}readInt(t,a,i=!1,d=!0){const{n:p,pos:y}=f1e(this.input,this.state.pos,this.state.lineStart,this.state.curLine,t,a,i,d,this.errorHandlers_readInt,!1);return this.state.pos=y,p}readRadixNumber(t){const a=this.state.curPosition();let i=!1;this.state.pos+=2;const d=this.readInt(t);d==null&&this.raise(Xe.InvalidDigit,ws(a,2),{radix:t});const p=this.input.charCodeAt(this.state.pos);if(p===110)++this.state.pos,i=!0;else if(p===109)throw this.raise(Xe.InvalidDecimal,a);if(hl(this.codePointAtPos(this.state.pos)))throw this.raise(Xe.NumberIdentifier,this.state.curPosition());if(i){const y=this.input.slice(a.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(135,y);return}this.finishToken(134,d)}readNumber(t){const a=this.state.pos,i=this.state.curPosition();let d=!1,p=!1,y=!1,b=!1,v=!1;!t&&this.readInt(10)===null&&this.raise(Xe.InvalidNumber,this.state.curPosition());const E=this.state.pos-a>=2&&this.input.charCodeAt(a)===48;if(E){const C=this.input.slice(a,this.state.pos);if(this.recordStrictModeErrors(Xe.StrictOctalLiteral,i),!this.state.strict){const q=C.indexOf("_");q>0&&this.raise(Xe.ZeroDigitNumericSeparator,ws(i,q))}v=E&&!/[89]/.test(C)}let S=this.input.charCodeAt(this.state.pos);if(S===46&&!v&&(++this.state.pos,this.readInt(10),d=!0,S=this.input.charCodeAt(this.state.pos)),(S===69||S===101)&&!v&&(S=this.input.charCodeAt(++this.state.pos),(S===43||S===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(Xe.InvalidOrMissingExponent,i),d=!0,b=!0,S=this.input.charCodeAt(this.state.pos)),S===110&&((d||E)&&this.raise(Xe.InvalidBigIntLiteral,i),++this.state.pos,p=!0),S===109&&(this.expectPlugin("decimal",this.state.curPosition()),(b||E)&&this.raise(Xe.InvalidDecimal,i),++this.state.pos,y=!0),hl(this.codePointAtPos(this.state.pos)))throw this.raise(Xe.NumberIdentifier,this.state.curPosition());const A=this.input.slice(a,this.state.pos).replace(/[_mn]/g,"");if(p){this.finishToken(135,A);return}if(y){this.finishToken(136,A);return}const _=v?parseInt(A,8):parseFloat(A);this.finishToken(134,_)}readCodePoint(t){const{code:a,pos:i}=h1e(this.input,this.state.pos,this.state.lineStart,this.state.curLine,t,this.errorHandlers_readCodePoint);return this.state.pos=i,a}readString(t){const{str:a,pos:i,curLine:d,lineStart:p}=Ihe(t===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=i+1,this.state.lineStart=p,this.state.curLine=d,this.finishToken(133,a)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){const t=this.input[this.state.pos],{str:a,firstInvalidLoc:i,pos:d,curLine:p,lineStart:y}=Ihe("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=d+1,this.state.lineStart=y,this.state.curLine=p,i&&(this.state.firstInvalidTemplateEscapePos=new Iu(i.curLine,i.pos-i.lineStart,i.pos)),this.input.codePointAt(d)===96?this.finishToken(24,i?null:t+a+"`"):(this.state.pos++,this.finishToken(25,i?null:t+a+"${"))}recordStrictModeErrors(t,a){const i=a.index;this.state.strict&&!this.state.strictErrors.has(i)?this.raise(t,a):this.state.strictErrors.set(i,[t,a])}readWord1(t){this.state.containsEsc=!1;let a="";const i=this.state.pos;let d=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos<this.length;){const p=this.codePointAtPos(this.state.pos);if(Mp(p))this.state.pos+=p<=65535?1:2;else if(p===92){this.state.containsEsc=!0,a+=this.input.slice(d,this.state.pos);const y=this.state.curPosition(),b=this.state.pos===i?hl:Mp;if(this.input.charCodeAt(++this.state.pos)!==117){this.raise(Xe.MissingUnicodeEscape,this.state.curPosition()),d=this.state.pos-1;continue}++this.state.pos;const v=this.readCodePoint(!0);v!==null&&(b(v)||this.raise(Xe.EscapedCharNotAnIdentifier,y),a+=String.fromCodePoint(v)),d=this.state.pos}else break}return a+this.input.slice(d,this.state.pos)}readWord(t){const a=this.readWord1(t),i=ZL.get(a);i!==void 0?this.finishToken(i,Cu(i)):this.finishToken(132,a)}checkKeywordEscapes(){const{type:t}=this.state;sM(t)&&this.state.containsEsc&&this.raise(Xe.InvalidEscapedReservedWord,this.state.startLoc,{reservedWord:Cu(t)})}raise(t,a,i={}){const d=a instanceof Iu?a:a.loc.start,p=t(d,i);if(!this.options.errorRecovery)throw p;return this.isLookahead||this.state.errors.push(p),p}raiseOverwrite(t,a,i={}){const d=a instanceof Iu?a:a.loc.start,p=d.index,y=this.state.errors;for(let b=y.length-1;b>=0;b--){const v=y[b];if(v.loc.index===p)return y[b]=t(d,i);if(v.loc.index<p)break}return this.raise(t,a,i)}updateContext(t){}unexpected(t,a){throw this.raise(Xe.UnexpectedToken,t??this.state.startLoc,{expected:a?Cu(a):null})}expectPlugin(t,a){if(this.hasPlugin(t))return!0;throw this.raise(Xe.MissingPlugin,a??this.state.startLoc,{missingPlugin:[t]})}expectOnePlugin(t){if(!t.some(a=>this.hasPlugin(a)))throw this.raise(Xe.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:t})}errorBuilder(t){return(a,i,d)=>{this.raise(t,Km(a,i,d))}}}class y4t{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}}class g4t{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new y4t)}exit(){const t=this.stack.pop(),a=this.current();for(const[i,d]of Array.from(t.undefinedPrivateNames))a?a.undefinedPrivateNames.has(i)||a.undefinedPrivateNames.set(i,d):this.parser.raise(Xe.InvalidPrivateFieldResolution,d,{identifierName:i})}declarePrivateName(t,a,i){const{privateNames:d,loneAccessors:p,undefinedPrivateNames:y}=this.current();let b=d.has(t);if(a&3){const v=b&&p.get(t);if(v){const E=v&4,S=a&4,A=v&3,_=a&3;b=A===_||E!==S,b||p.delete(t)}else b||p.set(t,a)}b&&this.parser.raise(Xe.PrivateNameRedeclaration,i,{identifierName:t}),d.add(t),y.delete(t)}usePrivateName(t,a){let i;for(i of this.stack)if(i.privateNames.has(t))return;i?i.undefinedPrivateNames.set(t,a):this.parser.raise(Xe.InvalidPrivateFieldResolution,a,{identifierName:t})}}class sx{constructor(t=0){this.type=t}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}}class m1e extends sx{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,a){const i=a.index;this.declarationErrors.set(i,[t,a])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}}class v4t{constructor(t){this.parser=void 0,this.stack=[new sx],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,a){const i=a.loc.start,{stack:d}=this;let p=d.length-1,y=d[p];for(;!y.isCertainlyParameterDeclaration();){if(y.canBeArrowParameterDeclaration())y.recordDeclarationError(t,i);else return;y=d[--p]}this.parser.raise(t,i)}recordArrowParameterBindingError(t,a){const{stack:i}=this,d=i[i.length-1],p=a.loc.start;if(d.isCertainlyParameterDeclaration())this.parser.raise(t,p);else if(d.canBeArrowParameterDeclaration())d.recordDeclarationError(t,p);else return}recordAsyncArrowParametersError(t){const{stack:a}=this;let i=a.length-1,d=a[i];for(;d.canBeArrowParameterDeclaration();)d.type===2&&d.recordDeclarationError(Xe.AwaitBindingIdentifier,t),d=a[--i]}validateAsPattern(){const{stack:t}=this,a=t[t.length-1];a.canBeArrowParameterDeclaration()&&a.iterateErrors(([i,d])=>{this.parser.raise(i,d);let p=t.length-2,y=t[p];for(;y.canBeArrowParameterDeclaration();)y.clearDeclarationError(d.index),y=t[--p]})}}function b4t(){return new sx(3)}function x4t(){return new m1e(1)}function R4t(){return new m1e(2)}function y1e(){return new sx}class E4t{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}}function g2(n,t){return(n?2:0)|(t?1:0)}class S4t extends m4t{addExtra(t,a,i,d=!0){if(!t)return;let{extra:p}=t;p==null&&(p={},t.extra=p),d?p[a]=i:Object.defineProperty(p,a,{enumerable:d,value:i})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,a){const i=t+a.length;if(this.input.slice(t,i)===a){const d=this.input.charCodeAt(i);return!(Mp(d)||(d&64512)===55296)}return!1}isLookaheadContextual(t){const a=this.nextTokenStart();return this.isUnparsedContextual(a,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,a){if(!this.eatContextual(t)){if(a!=null)throw this.raise(a,this.state.startLoc);this.unexpected(null,t)}}canInsertSemicolon(){return this.match(139)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return Phe(this.input,this.state.lastTokEndLoc.index,this.state.start)}hasFollowingLineBreak(){return Phe(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(t=!0){(t?this.isLineTerminator():this.eat(13))||this.raise(Xe.MissingSemicolon,this.state.lastTokEndLoc)}expect(t,a){this.eat(t)||this.unexpected(a,t)}tryParse(t,a=this.state.clone()){const i={node:null};try{const d=t((p=null)=>{throw i.node=p,i});if(this.state.errors.length>a.errors.length){const p=this.state;return this.state=a,this.state.tokensLength=p.tokensLength,{node:d,error:p.errors[a.errors.length],thrown:!1,aborted:!1,failState:p}}return{node:d,error:null,thrown:!1,aborted:!1,failState:null}}catch(d){const p=this.state;if(this.state=a,d instanceof SyntaxError)return{node:null,error:d,thrown:!0,aborted:!1,failState:p};if(d===i)return{node:i.node,error:null,thrown:!1,aborted:!0,failState:p};throw d}}checkExpressionErrors(t,a){if(!t)return!1;const{shorthandAssignLoc:i,doubleProtoLoc:d,privateKeyLoc:p,optionalParametersLoc:y}=t,b=!!i||!!d||!!y||!!p;if(!a)return b;i!=null&&this.raise(Xe.InvalidCoverInitializedName,i),d!=null&&this.raise(Xe.DuplicateProto,d),p!=null&&this.raise(Xe.UnexpectedPrivateField,p),y!=null&&this.unexpected(y)}isLiteralPropertyName(){return s1e(this.state.type)}isPrivateName(t){return t.type==="PrivateName"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type==="MemberExpression"||t.type==="OptionalMemberExpression")&&this.isPrivateName(t.property)}isObjectProperty(t){return t.type==="ObjectProperty"}isObjectMethod(t){return t.type==="ObjectMethod"}initializeScopes(t=this.options.sourceType==="module"){const a=this.state.labels;this.state.labels=[];const i=this.exportedIdentifiers;this.exportedIdentifiers=new Set;const d=this.inModule;this.inModule=t;const p=this.scope,y=this.getScopeHandler();this.scope=new y(this,t);const b=this.prodParam;this.prodParam=new E4t;const v=this.classScope;this.classScope=new g4t(this);const E=this.expressionScope;return this.expressionScope=new v4t(this),()=>{this.state.labels=a,this.exportedIdentifiers=i,this.inModule=d,this.scope=p,this.prodParam=b,this.classScope=v,this.expressionScope=E}}enterInitialScopes(){let t=0;this.inModule&&(t|=2),this.scope.enter(1),this.prodParam.enter(t)}checkDestructuringPrivate(t){const{privateKeyLoc:a}=t;a!==null&&this.expectPlugin("destructuringPrivate",a)}}class v2{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}}let U2=class{constructor(t,a,i){this.type="",this.start=a,this.end=0,this.loc=new $2(i),t!=null&&t.options.ranges&&(this.range=[a,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}};const dM=U2.prototype;dM.__clone=function(){const n=new U2(void 0,this.start,this.loc.start),t=Object.keys(this);for(let a=0,i=t.length;a<i;a++){const d=t[a];d!=="leadingComments"&&d!=="trailingComments"&&d!=="innerComments"&&(n[d]=this[d])}return n};function T4t(n){return Tl(n)}function Tl(n){const{type:t,start:a,end:i,loc:d,range:p,extra:y,name:b}=n,v=Object.create(dM);return v.type=t,v.start=a,v.end=i,v.loc=d,v.range=p,v.extra=y,v.name=b,t==="Placeholder"&&(v.expectedNode=n.expectedNode),v}function w4t(n){const{type:t,start:a,end:i,loc:d,range:p,extra:y}=n;if(t==="Placeholder")return T4t(n);const b=Object.create(dM);return b.type=t,b.start=a,b.end=i,b.loc=d,b.range=p,n.raw!==void 0?b.raw=n.raw:b.extra=y,b.value=n.value,b}class P4t extends S4t{startNode(){const t=this.state.startLoc;return new U2(this,t.index,t)}startNodeAt(t){return new U2(this,t.index,t)}startNodeAtNode(t){return this.startNodeAt(t.loc.start)}finishNode(t,a){return this.finishNodeAt(t,a,this.state.lastTokEndLoc)}finishNodeAt(t,a,i){return t.type=a,t.end=i.index,t.loc.end=i,this.options.ranges&&(t.range[1]=i.index),this.options.attachComment&&this.processComment(t),t}resetStartLocation(t,a){t.start=a.index,t.loc.start=a,this.options.ranges&&(t.range[0]=a.index)}resetEndLocation(t,a=this.state.lastTokEndLoc){t.end=a.index,t.loc.end=a,this.options.ranges&&(t.range[1]=a.index)}resetStartLocationFromNode(t,a){this.resetStartLocation(t,a.loc.start)}}const A4t=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),Nr=yl`flow`({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:({reservedType:n})=>`Cannot overwrite reserved type ${n}.`,DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:({memberName:n,enumName:t})=>`Boolean enum members need to be initialized. Use either \`${n} = true,\` or \`${n} = false,\` in enum \`${t}\`.`,EnumDuplicateMemberName:({memberName:n,enumName:t})=>`Enum member names need to be unique, but the name \`${n}\` has already been used before in enum \`${t}\`.`,EnumInconsistentMemberValues:({enumName:n})=>`Enum \`${n}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:n,enumName:t})=>`Enum type \`${n}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:n})=>`Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${n}\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:n,memberName:t,explicitType:a})=>`Enum \`${n}\` has type \`${a}\`, so the initializer of \`${t}\` needs to be a ${a} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:n,memberName:t})=>`Symbol enum members cannot be initialized. Use \`${t},\` in enum \`${n}\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:n,memberName:t})=>`The enum member initializer for \`${t}\` needs to be a literal (either a boolean, number, or string) in enum \`${n}\`.`,EnumInvalidMemberName:({enumName:n,memberName:t,suggestion:a})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${t}\`, consider using \`${a}\`, in enum \`${n}\`.`,EnumNumberMemberNotInitialized:({enumName:n,memberName:t})=>`Number enum members need to be initialized, e.g. \`${t} = 1\` in enum \`${n}\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:n})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \`${n}\`.`,GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:({reservedType:n})=>`Unexpected reserved type ${n}.`,UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",UnsupportedDeclareExportKind:({unsupportedExportKind:n,suggestion:t})=>`\`declare export ${n}\` is not supported. Use \`${t}\` instead.`,UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function I4t(n){return n.type==="DeclareExportAllDeclaration"||n.type==="DeclareExportDeclaration"&&(!n.declaration||n.declaration.type!=="TypeAlias"&&n.declaration.type!=="InterfaceDeclaration")}function Che(n){return n.importKind==="type"||n.importKind==="typeof"}const C4t={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function j4t(n,t){const a=[],i=[];for(let d=0;d<n.length;d++)(t(n[d],d,n)?a:i).push(n[d]);return[a,i]}const O4t=/\*?\s*@((?:no)?flow)\b/;var _4t=n=>class extends n{constructor(...a){super(...a),this.flowPragma=void 0}getScopeHandler(){return s4t}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(a,i){a!==133&&a!==13&&a!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(a,i)}addComment(a){if(this.flowPragma===void 0){const i=O4t.exec(a.value);if(i)if(i[1]==="flow")this.flowPragma="flow";else if(i[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}super.addComment(a)}flowParseTypeInitialiser(a){const i=this.state.inType;this.state.inType=!0,this.expect(a||14);const d=this.flowParseType();return this.state.inType=i,d}flowParsePredicate(){const a=this.startNode(),i=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>i.index+1&&this.raise(Nr.UnexpectedSpaceBetweenModuloChecks,i),this.eat(10)?(a.value=super.parseExpression(),this.expect(11),this.finishNode(a,"DeclaredPredicate")):this.finishNode(a,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){const a=this.state.inType;this.state.inType=!0,this.expect(14);let i=null,d=null;return this.match(54)?(this.state.inType=a,d=this.flowParsePredicate()):(i=this.flowParseType(),this.state.inType=a,this.match(54)&&(d=this.flowParsePredicate())),[i,d]}flowParseDeclareClass(a){return this.next(),this.flowParseInterfaceish(a,!0),this.finishNode(a,"DeclareClass")}flowParseDeclareFunction(a){this.next();const i=a.id=this.parseIdentifier(),d=this.startNode(),p=this.startNode();this.match(47)?d.typeParameters=this.flowParseTypeParameterDeclaration():d.typeParameters=null,this.expect(10);const y=this.flowParseFunctionTypeParams();return d.params=y.params,d.rest=y.rest,d.this=y._this,this.expect(11),[d.returnType,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),p.typeAnnotation=this.finishNode(d,"FunctionTypeAnnotation"),i.typeAnnotation=this.finishNode(p,"TypeAnnotation"),this.resetEndLocation(i),this.semicolon(),this.scope.declareName(a.id.name,2048,a.id.loc.start),this.finishNode(a,"DeclareFunction")}flowParseDeclare(a,i){if(this.match(80))return this.flowParseDeclareClass(a);if(this.match(68))return this.flowParseDeclareFunction(a);if(this.match(74))return this.flowParseDeclareVariable(a);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(a):(i&&this.raise(Nr.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(a));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(a);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(a);if(this.isContextual(129))return this.flowParseDeclareInterface(a);if(this.match(82))return this.flowParseDeclareExportDeclaration(a,i);this.unexpected()}flowParseDeclareVariable(a){return this.next(),a.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(a.id.name,5,a.id.loc.start),this.semicolon(),this.finishNode(a,"DeclareVariable")}flowParseDeclareModule(a){this.scope.enter(0),this.match(133)?a.id=super.parseExprAtom():a.id=this.parseIdentifier();const i=a.body=this.startNode(),d=i.body=[];for(this.expect(5);!this.match(8);){let b=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(Nr.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(b)):(this.expectContextual(125,Nr.UnsupportedStatementInDeclareModule),b=this.flowParseDeclare(b,!0)),d.push(b)}this.scope.exit(),this.expect(8),this.finishNode(i,"BlockStatement");let p=null,y=!1;return d.forEach(b=>{I4t(b)?(p==="CommonJS"&&this.raise(Nr.AmbiguousDeclareModuleKind,b),p="ES"):b.type==="DeclareModuleExports"&&(y&&this.raise(Nr.DuplicateDeclareModuleExports,b),p==="ES"&&this.raise(Nr.AmbiguousDeclareModuleKind,b),p="CommonJS",y=!0)}),a.kind=p||"CommonJS",this.finishNode(a,"DeclareModule")}flowParseDeclareExportDeclaration(a,i){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?a.declaration=this.flowParseDeclare(this.startNode()):(a.declaration=this.flowParseType(),this.semicolon()),a.default=!0,this.finishNode(a,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!i){const d=this.state.value;throw this.raise(Nr.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:d,suggestion:C4t[d]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return a.declaration=this.flowParseDeclare(this.startNode()),a.default=!1,this.finishNode(a,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return a=this.parseExport(a,null),a.type==="ExportNamedDeclaration"&&(a.type="ExportDeclaration",a.default=!1,delete a.exportKind),a.type="Declare"+a.type,a;this.unexpected()}flowParseDeclareModuleExports(a){return this.next(),this.expectContextual(111),a.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(a,"DeclareModuleExports")}flowParseDeclareTypeAlias(a){this.next();const i=this.flowParseTypeAlias(a);return i.type="DeclareTypeAlias",i}flowParseDeclareOpaqueType(a){this.next();const i=this.flowParseOpaqueType(a,!0);return i.type="DeclareOpaqueType",i}flowParseDeclareInterface(a){return this.next(),this.flowParseInterfaceish(a,!1),this.finishNode(a,"DeclareInterface")}flowParseInterfaceish(a,i){if(a.id=this.flowParseRestrictedIdentifier(!i,!0),this.scope.declareName(a.id.name,i?17:8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.extends=[],this.eat(81))do a.extends.push(this.flowParseInterfaceExtends());while(!i&&this.eat(12));if(i){if(a.implements=[],a.mixins=[],this.eatContextual(117))do a.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do a.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}a.body=this.flowParseObjectType({allowStatic:i,allowExact:!1,allowSpread:!1,allowProto:i,allowInexact:!1})}flowParseInterfaceExtends(){const a=this.startNode();return a.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?a.typeParameters=this.flowParseTypeParameterInstantiation():a.typeParameters=null,this.finishNode(a,"InterfaceExtends")}flowParseInterface(a){return this.flowParseInterfaceish(a,!1),this.finishNode(a,"InterfaceDeclaration")}checkNotUnderscore(a){a==="_"&&this.raise(Nr.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(a,i,d){A4t.has(a)&&this.raise(d?Nr.AssignReservedType:Nr.UnexpectedReservedType,i,{reservedType:a})}flowParseRestrictedIdentifier(a,i){return this.checkReservedType(this.state.value,this.state.startLoc,i),this.parseIdentifier(a)}flowParseTypeAlias(a){return a.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(a.id.name,8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(a,"TypeAlias")}flowParseOpaqueType(a,i){return this.expectContextual(130),a.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(a.id.name,8201,a.id.loc.start),this.match(47)?a.typeParameters=this.flowParseTypeParameterDeclaration():a.typeParameters=null,a.supertype=null,this.match(14)&&(a.supertype=this.flowParseTypeInitialiser(14)),a.impltype=null,i||(a.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(a,"OpaqueType")}flowParseTypeParameter(a=!1){const i=this.state.startLoc,d=this.startNode(),p=this.flowParseVariance(),y=this.flowParseTypeAnnotatableIdentifier();return d.name=y.name,d.variance=p,d.bound=y.typeAnnotation,this.match(29)?(this.eat(29),d.default=this.flowParseType()):a&&this.raise(Nr.MissingTypeParamDefault,i),this.finishNode(d,"TypeParameter")}flowParseTypeParameterDeclaration(){const a=this.state.inType,i=this.startNode();i.params=[],this.state.inType=!0,this.match(47)||this.match(142)?this.next():this.unexpected();let d=!1;do{const p=this.flowParseTypeParameter(d);i.params.push(p),p.default&&(d=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=a,this.finishNode(i,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){const a=this.startNode(),i=this.state.inType;a.params=[],this.state.inType=!0,this.expect(47);const d=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)a.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=d,this.expect(48),this.state.inType=i,this.finishNode(a,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){const a=this.startNode(),i=this.state.inType;for(a.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)a.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=i,this.finishNode(a,"TypeParameterInstantiation")}flowParseInterfaceType(){const a=this.startNode();if(this.expectContextual(129),a.extends=[],this.eat(81))do a.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return a.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(a,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(134)||this.match(133)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(a,i,d){return a.static=i,this.lookahead().type===14?(a.id=this.flowParseObjectPropertyKey(),a.key=this.flowParseTypeInitialiser()):(a.id=null,a.key=this.flowParseType()),this.expect(3),a.value=this.flowParseTypeInitialiser(),a.variance=d,this.finishNode(a,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(a,i){return a.static=i,a.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(a.method=!0,a.optional=!1,a.value=this.flowParseObjectTypeMethodish(this.startNodeAt(a.loc.start))):(a.method=!1,this.eat(17)&&(a.optional=!0),a.value=this.flowParseTypeInitialiser()),this.finishNode(a,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(a){for(a.params=[],a.rest=null,a.typeParameters=null,a.this=null,this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(a.this=this.flowParseFunctionTypeParam(!0),a.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)a.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(a.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),a.returnType=this.flowParseTypeInitialiser(),this.finishNode(a,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(a,i){const d=this.startNode();return a.static=i,a.value=this.flowParseObjectTypeMethodish(d),this.finishNode(a,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:a,allowExact:i,allowSpread:d,allowProto:p,allowInexact:y}){const b=this.state.inType;this.state.inType=!0;const v=this.startNode();v.callProperties=[],v.properties=[],v.indexers=[],v.internalSlots=[];let E,S,A=!1;for(i&&this.match(6)?(this.expect(6),E=9,S=!0):(this.expect(5),E=8,S=!1),v.exact=S;!this.match(E);){let C=!1,q=null,M=null;const W=this.startNode();if(p&&this.isContextual(118)){const Y=this.lookahead();Y.type!==14&&Y.type!==17&&(this.next(),q=this.state.startLoc,a=!1)}if(a&&this.isContextual(106)){const Y=this.lookahead();Y.type!==14&&Y.type!==17&&(this.next(),C=!0)}const z=this.flowParseVariance();if(this.eat(0))q!=null&&this.unexpected(q),this.eat(0)?(z&&this.unexpected(z.loc.start),v.internalSlots.push(this.flowParseObjectTypeInternalSlot(W,C))):v.indexers.push(this.flowParseObjectTypeIndexer(W,C,z));else if(this.match(10)||this.match(47))q!=null&&this.unexpected(q),z&&this.unexpected(z.loc.start),v.callProperties.push(this.flowParseObjectTypeCallProperty(W,C));else{let Y="init";if(this.isContextual(99)||this.isContextual(104)){const ce=this.lookahead();s1e(ce.type)&&(Y=this.state.value,this.next())}const Z=this.flowParseObjectTypeProperty(W,C,q,z,Y,d,y??!S);Z===null?(A=!0,M=this.state.lastTokStartLoc):v.properties.push(Z)}this.flowObjectTypeSemicolon(),M&&!this.match(8)&&!this.match(9)&&this.raise(Nr.UnexpectedExplicitInexactInObject,M)}this.expect(E),d&&(v.inexact=A);const _=this.finishNode(v,"ObjectTypeAnnotation");return this.state.inType=b,_}flowParseObjectTypeProperty(a,i,d,p,y,b,v){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(b?v||this.raise(Nr.InexactInsideExact,this.state.lastTokStartLoc):this.raise(Nr.InexactInsideNonObject,this.state.lastTokStartLoc),p&&this.raise(Nr.InexactVariance,p),null):(b||this.raise(Nr.UnexpectedSpreadType,this.state.lastTokStartLoc),d!=null&&this.unexpected(d),p&&this.raise(Nr.SpreadVariance,p),a.argument=this.flowParseType(),this.finishNode(a,"ObjectTypeSpreadProperty"));{a.key=this.flowParseObjectPropertyKey(),a.static=i,a.proto=d!=null,a.kind=y;let E=!1;return this.match(47)||this.match(10)?(a.method=!0,d!=null&&this.unexpected(d),p&&this.unexpected(p.loc.start),a.value=this.flowParseObjectTypeMethodish(this.startNodeAt(a.loc.start)),(y==="get"||y==="set")&&this.flowCheckGetterSetterParams(a),!b&&a.key.name==="constructor"&&a.value.this&&this.raise(Nr.ThisParamBannedInConstructor,a.value.this)):(y!=="init"&&this.unexpected(),a.method=!1,this.eat(17)&&(E=!0),a.value=this.flowParseTypeInitialiser(),a.variance=p),a.optional=E,this.finishNode(a,"ObjectTypeProperty")}}flowCheckGetterSetterParams(a){const i=a.kind==="get"?0:1,d=a.value.params.length+(a.value.rest?1:0);a.value.this&&this.raise(a.kind==="get"?Nr.GetterMayNotHaveThisParam:Nr.SetterMayNotHaveThisParam,a.value.this),d!==i&&this.raise(a.kind==="get"?Xe.BadGetterArity:Xe.BadSetterArity,a),a.kind==="set"&&a.value.rest&&this.raise(Xe.BadSetterRestParameter,a)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(a,i){var d;(d=a)!=null||(a=this.state.startLoc);let p=i||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){const y=this.startNodeAt(a);y.qualification=p,y.id=this.flowParseRestrictedIdentifier(!0),p=this.finishNode(y,"QualifiedTypeIdentifier")}return p}flowParseGenericType(a,i){const d=this.startNodeAt(a);return d.typeParameters=null,d.id=this.flowParseQualifiedTypeIdentifier(a,i),this.match(47)&&(d.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(d,"GenericTypeAnnotation")}flowParseTypeofType(){const a=this.startNode();return this.expect(87),a.argument=this.flowParsePrimaryType(),this.finishNode(a,"TypeofTypeAnnotation")}flowParseTupleType(){const a=this.startNode();for(a.types=[],this.expect(0);this.state.pos<this.length&&!this.match(3)&&(a.types.push(this.flowParseType()),!this.match(3));)this.expect(12);return this.expect(3),this.finishNode(a,"TupleTypeAnnotation")}flowParseFunctionTypeParam(a){let i=null,d=!1,p=null;const y=this.startNode(),b=this.lookahead(),v=this.state.type===78;return b.type===14||b.type===17?(v&&!a&&this.raise(Nr.ThisParamMustBeFirst,y),i=this.parseIdentifier(v),this.eat(17)&&(d=!0,v&&this.raise(Nr.ThisParamMayNotBeOptional,y)),p=this.flowParseTypeInitialiser()):p=this.flowParseType(),y.name=i,y.optional=d,y.typeAnnotation=p,this.finishNode(y,"FunctionTypeParam")}reinterpretTypeAsFunctionTypeParam(a){const i=this.startNodeAt(a.loc.start);return i.name=null,i.optional=!1,i.typeAnnotation=a,this.finishNode(i,"FunctionTypeParam")}flowParseFunctionTypeParams(a=[]){let i=null,d=null;for(this.match(78)&&(d=this.flowParseFunctionTypeParam(!0),d.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)a.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(i=this.flowParseFunctionTypeParam(!1)),{params:a,rest:i,_this:d}}flowIdentToTypeAnnotation(a,i,d){switch(d.name){case"any":return this.finishNode(i,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(i,"BooleanTypeAnnotation");case"mixed":return this.finishNode(i,"MixedTypeAnnotation");case"empty":return this.finishNode(i,"EmptyTypeAnnotation");case"number":return this.finishNode(i,"NumberTypeAnnotation");case"string":return this.finishNode(i,"StringTypeAnnotation");case"symbol":return this.finishNode(i,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(d.name),this.flowParseGenericType(a,d)}}flowParsePrimaryType(){const a=this.state.startLoc,i=this.startNode();let d,p,y=!1;const b=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,p=this.flowParseTupleType(),this.state.noAnonFunctionType=b,p;case 47:{const v=this.startNode();return v.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),d=this.flowParseFunctionTypeParams(),v.params=d.params,v.rest=d.rest,v.this=d._this,this.expect(11),this.expect(19),v.returnType=this.flowParseType(),this.finishNode(v,"FunctionTypeAnnotation")}case 10:{const v=this.startNode();if(this.next(),!this.match(11)&&!this.match(21))if(wa(this.state.type)||this.match(78)){const E=this.lookahead().type;y=E!==17&&E!==14}else y=!0;if(y){if(this.state.noAnonFunctionType=!1,p=this.flowParseType(),this.state.noAnonFunctionType=b,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),p;this.eat(12)}return p?d=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(p)]):d=this.flowParseFunctionTypeParams(),v.params=d.params,v.rest=d.rest,v.this=d._this,this.expect(11),this.expect(19),v.returnType=this.flowParseType(),v.typeParameters=null,this.finishNode(v,"FunctionTypeAnnotation")}case 133:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return i.value=this.match(85),this.next(),this.finishNode(i,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(134))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",i);if(this.match(135))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",i);throw this.raise(Nr.UnexpectedSubtractionOperand,this.state.startLoc)}this.unexpected();return;case 134:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 135:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(i,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(i,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(i,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(i,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(sM(this.state.type)){const v=Cu(this.state.type);return this.next(),super.createIdentifier(i,v)}else if(wa(this.state.type))return this.isContextual(129)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(a,i,this.parseIdentifier())}this.unexpected()}flowParsePostfixType(){const a=this.state.startLoc;let i=this.flowParsePrimaryType(),d=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){const p=this.startNodeAt(a),y=this.eat(18);d=d||y,this.expect(0),!y&&this.match(3)?(p.elementType=i,this.next(),i=this.finishNode(p,"ArrayTypeAnnotation")):(p.objectType=i,p.indexType=this.flowParseType(),this.expect(3),d?(p.optional=y,i=this.finishNode(p,"OptionalIndexedAccessType")):i=this.finishNode(p,"IndexedAccessType"))}return i}flowParsePrefixType(){const a=this.startNode();return this.eat(17)?(a.typeAnnotation=this.flowParsePrefixType(),this.finishNode(a,"NullableTypeAnnotation")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){const a=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){const i=this.startNodeAt(a.loc.start);return i.params=[this.reinterpretTypeAsFunctionTypeParam(a)],i.rest=null,i.this=null,i.returnType=this.flowParseType(),i.typeParameters=null,this.finishNode(i,"FunctionTypeAnnotation")}return a}flowParseIntersectionType(){const a=this.startNode();this.eat(45);const i=this.flowParseAnonFunctionWithoutParens();for(a.types=[i];this.eat(45);)a.types.push(this.flowParseAnonFunctionWithoutParens());return a.types.length===1?i:this.finishNode(a,"IntersectionTypeAnnotation")}flowParseUnionType(){const a=this.startNode();this.eat(43);const i=this.flowParseIntersectionType();for(a.types=[i];this.eat(43);)a.types.push(this.flowParseIntersectionType());return a.types.length===1?i:this.finishNode(a,"UnionTypeAnnotation")}flowParseType(){const a=this.state.inType;this.state.inType=!0;const i=this.flowParseUnionType();return this.state.inType=a,i}flowParseTypeOrImplicitInstantiation(){if(this.state.type===132&&this.state.value==="_"){const a=this.state.startLoc,i=this.parseIdentifier();return this.flowParseGenericType(a,i)}else return this.flowParseType()}flowParseTypeAnnotation(){const a=this.startNode();return a.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(a,"TypeAnnotation")}flowParseTypeAnnotatableIdentifier(a){const i=a?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(i.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(i)),i}typeCastToParameter(a){return a.expression.typeAnnotation=a.typeAnnotation,this.resetEndLocation(a.expression,a.typeAnnotation.loc.end),a.expression}flowParseVariance(){let a=null;return this.match(53)?(a=this.startNode(),this.state.value==="+"?a.kind="plus":a.kind="minus",this.next(),this.finishNode(a,"Variance")):a}parseFunctionBody(a,i,d=!1){if(i){this.forwardNoArrowParamsConversionAt(a,()=>super.parseFunctionBody(a,!0,d));return}super.parseFunctionBody(a,!1,d)}parseFunctionBodyAndFinish(a,i,d=!1){if(this.match(14)){const p=this.startNode();[p.typeAnnotation,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),a.returnType=p.typeAnnotation?this.finishNode(p,"TypeAnnotation"):null}return super.parseFunctionBodyAndFinish(a,i,d)}parseStatementLike(a){if(this.state.strict&&this.isContextual(129)){const d=this.lookahead();if(zi(d.type)){const p=this.startNode();return this.next(),this.flowParseInterface(p)}}else if(this.shouldParseEnums()&&this.isContextual(126)){const d=this.startNode();return this.next(),this.flowParseEnumDeclaration(d)}const i=super.parseStatementLike(a);return this.flowPragma===void 0&&!this.isValidDirective(i)&&(this.flowPragma=null),i}parseExpressionStatement(a,i,d){if(i.type==="Identifier"){if(i.name==="declare"){if(this.match(80)||wa(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(a)}else if(wa(this.state.type)){if(i.name==="interface")return this.flowParseInterface(a);if(i.name==="type")return this.flowParseTypeAlias(a);if(i.name==="opaque")return this.flowParseOpaqueType(a,!1)}}return super.parseExpressionStatement(a,i,d)}shouldParseExportDeclaration(){const{type:a}=this.state;return whe(a)||this.shouldParseEnums()&&a===126?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){const{type:a}=this.state;return whe(a)||this.shouldParseEnums()&&a===126?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(126)){const a=this.startNode();return this.next(),this.flowParseEnumDeclaration(a)}return super.parseExportDefaultExpression()}parseConditional(a,i,d){if(!this.match(17))return a;if(this.state.maybeInArrowParameters){const _=this.lookaheadCharCode();if(_===44||_===61||_===58||_===41)return this.setOptionalParametersError(d),a}this.expect(17);const p=this.state.clone(),y=this.state.noArrowAt,b=this.startNodeAt(i);let{consequent:v,failed:E}=this.tryParseConditionalConsequent(),[S,A]=this.getArrowLikeExpressions(v);if(E||A.length>0){const _=[...y];if(A.length>0){this.state=p,this.state.noArrowAt=_;for(let C=0;C<A.length;C++)_.push(A[C].start);({consequent:v,failed:E}=this.tryParseConditionalConsequent()),[S,A]=this.getArrowLikeExpressions(v)}E&&S.length>1&&this.raise(Nr.AmbiguousConditionalArrow,p.startLoc),E&&S.length===1&&(this.state=p,_.push(S[0].start),this.state.noArrowAt=_,{consequent:v,failed:E}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(v,!0),this.state.noArrowAt=y,this.expect(14),b.test=a,b.consequent=v,b.alternate=this.forwardNoArrowParamsConversionAt(b,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(b,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);const a=this.parseMaybeAssignAllowIn(),i=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:a,failed:i}}getArrowLikeExpressions(a,i){const d=[a],p=[];for(;d.length!==0;){const y=d.pop();y.type==="ArrowFunctionExpression"&&y.body.type!=="BlockStatement"?(y.typeParameters||!y.returnType?this.finishArrowValidation(y):p.push(y),d.push(y.body)):y.type==="ConditionalExpression"&&(d.push(y.consequent),d.push(y.alternate))}return i?(p.forEach(y=>this.finishArrowValidation(y)),[p,[]]):j4t(p,y=>y.params.every(b=>this.isAssignable(b,!0)))}finishArrowValidation(a){var i;this.toAssignableList(a.params,(i=a.extra)==null?void 0:i.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(a,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(a,i){let d;return this.state.noArrowParamsConversionAt.includes(a.start)?(this.state.noArrowParamsConversionAt.push(this.state.start),d=i(),this.state.noArrowParamsConversionAt.pop()):d=i(),d}parseParenItem(a,i){const d=super.parseParenItem(a,i);if(this.eat(17)&&(d.optional=!0,this.resetEndLocation(a)),this.match(14)){const p=this.startNodeAt(i);return p.expression=d,p.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(p,"TypeCastExpression")}return d}assertModuleNodeAllowed(a){a.type==="ImportDeclaration"&&(a.importKind==="type"||a.importKind==="typeof")||a.type==="ExportNamedDeclaration"&&a.exportKind==="type"||a.type==="ExportAllDeclaration"&&a.exportKind==="type"||super.assertModuleNodeAllowed(a)}parseExportDeclaration(a){if(this.isContextual(130)){a.exportKind="type";const i=this.startNode();return this.next(),this.match(5)?(a.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(a),null):this.flowParseTypeAlias(i)}else if(this.isContextual(131)){a.exportKind="type";const i=this.startNode();return this.next(),this.flowParseOpaqueType(i,!1)}else if(this.isContextual(129)){a.exportKind="type";const i=this.startNode();return this.next(),this.flowParseInterface(i)}else if(this.shouldParseEnums()&&this.isContextual(126)){a.exportKind="value";const i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}else return super.parseExportDeclaration(a)}eatExportStar(a){return super.eatExportStar(a)?!0:this.isContextual(130)&&this.lookahead().type===55?(a.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(a){const{startLoc:i}=this.state,d=super.maybeParseExportNamespaceSpecifier(a);return d&&a.exportKind==="type"&&this.unexpected(i),d}parseClassId(a,i,d){super.parseClassId(a,i,d),this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(a,i,d){const{startLoc:p}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(a,i))return;i.declare=!0}super.parseClassMember(a,i,d),i.declare&&(i.type!=="ClassProperty"&&i.type!=="ClassPrivateProperty"&&i.type!=="PropertyDefinition"?this.raise(Nr.DeclareClassElement,p):i.value&&this.raise(Nr.DeclareClassFieldInitializer,i.value))}isIterator(a){return a==="iterator"||a==="asyncIterator"}readIterator(){const a=super.readWord1(),i="@@"+a;(!this.isIterator(a)||!this.state.inType)&&this.raise(Xe.InvalidIdentifier,this.state.curPosition(),{identifierName:i}),this.finishToken(132,i)}getTokenFromCode(a){const i=this.input.charCodeAt(this.state.pos+1);a===123&&i===124?this.finishOp(6,2):this.state.inType&&(a===62||a===60)?this.finishOp(a===62?48:47,1):this.state.inType&&a===63?i===46?this.finishOp(18,2):this.finishOp(17,1):t4t(a,i,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(a)}isAssignable(a,i){return a.type==="TypeCastExpression"?this.isAssignable(a.expression,i):super.isAssignable(a,i)}toAssignable(a,i=!1){!i&&a.type==="AssignmentExpression"&&a.left.type==="TypeCastExpression"&&(a.left=this.typeCastToParameter(a.left)),super.toAssignable(a,i)}toAssignableList(a,i,d){for(let p=0;p<a.length;p++){const y=a[p];(y==null?void 0:y.type)==="TypeCastExpression"&&(a[p]=this.typeCastToParameter(y))}super.toAssignableList(a,i,d)}toReferencedList(a,i){for(let p=0;p<a.length;p++){var d;const y=a[p];y&&y.type==="TypeCastExpression"&&!((d=y.extra)!=null&&d.parenthesized)&&(a.length>1||!i)&&this.raise(Nr.TypeCastInPattern,y.typeAnnotation)}return a}parseArrayLike(a,i,d,p){const y=super.parseArrayLike(a,i,d,p);return i&&!this.state.maybeInArrowParameters&&this.toReferencedList(y.elements),y}isValidLVal(a,i,d){return a==="TypeCastExpression"||super.isValidLVal(a,i,d)}parseClassProperty(a){return this.match(14)&&(a.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(a)}parseClassPrivateProperty(a){return this.match(14)&&(a.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(a)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(a){return!this.match(14)&&super.isNonstaticConstructor(a)}pushClassMethod(a,i,d,p,y,b){if(i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(a,i,d,p,y,b),i.params&&y){const v=i.params;v.length>0&&this.isThisParam(v[0])&&this.raise(Nr.ThisParamBannedInConstructor,i)}else if(i.type==="MethodDefinition"&&y&&i.value.params){const v=i.value.params;v.length>0&&this.isThisParam(v[0])&&this.raise(Nr.ThisParamBannedInConstructor,i)}}pushClassPrivateMethod(a,i,d,p){i.variance&&this.unexpected(i.variance.loc.start),delete i.variance,this.match(47)&&(i.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(a,i,d,p)}parseClassSuper(a){if(super.parseClassSuper(a),a.superClass&&this.match(47)&&(a.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(113)){this.next();const i=a.implements=[];do{const d=this.startNode();d.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?d.typeParameters=this.flowParseTypeParameterInstantiation():d.typeParameters=null,i.push(this.finishNode(d,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(a){super.checkGetterSetterParams(a);const i=this.getObjectOrClassMethodParams(a);if(i.length>0){const d=i[0];this.isThisParam(d)&&a.kind==="get"?this.raise(Nr.GetterMayNotHaveThisParam,d):this.isThisParam(d)&&this.raise(Nr.SetterMayNotHaveThisParam,d)}}parsePropertyNamePrefixOperator(a){a.variance=this.flowParseVariance()}parseObjPropValue(a,i,d,p,y,b,v){a.variance&&this.unexpected(a.variance.loc.start),delete a.variance;let E;this.match(47)&&!b&&(E=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());const S=super.parseObjPropValue(a,i,d,p,y,b,v);return E&&((S.value||S).typeParameters=E),S}parseAssignableListItemTypes(a){return this.eat(17)&&(a.type!=="Identifier"&&this.raise(Nr.PatternIsOptional,a),this.isThisParam(a)&&this.raise(Nr.ThisParamMayNotBeOptional,a),a.optional=!0),this.match(14)?a.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(a)&&this.raise(Nr.ThisParamAnnotationRequired,a),this.match(29)&&this.isThisParam(a)&&this.raise(Nr.ThisParamNoDefault,a),this.resetEndLocation(a),a}parseMaybeDefault(a,i){const d=super.parseMaybeDefault(a,i);return d.type==="AssignmentPattern"&&d.typeAnnotation&&d.right.start<d.typeAnnotation.start&&this.raise(Nr.TypeBeforeInitializer,d.typeAnnotation),d}checkImportReflection(a){super.checkImportReflection(a),a.module&&a.importKind!=="value"&&this.raise(Nr.ImportReflectionHasImportType,a.specifiers[0].loc.start)}parseImportSpecifierLocal(a,i,d){i.local=Che(a)?this.flowParseRestrictedIdentifier(!0,!0):this.parseIdentifier(),a.specifiers.push(this.finishImportSpecifier(i,d))}isPotentialImportPhase(a){if(super.isPotentialImportPhase(a))return!0;if(this.isContextual(130)){if(!a)return!0;const i=this.lookaheadCharCode();return i===123||i===42}return!a&&this.isContextual(87)}applyImportPhase(a,i,d,p){if(super.applyImportPhase(a,i,d,p),i){if(!d&&this.match(65))return;a.exportKind=d==="type"?d:"value"}else d==="type"&&this.match(55)&&this.unexpected(),a.importKind=d==="type"||d==="typeof"?d:"value"}parseImportSpecifier(a,i,d,p,y){const b=a.imported;let v=null;b.type==="Identifier"&&(b.name==="type"?v="type":b.name==="typeof"&&(v="typeof"));let E=!1;if(this.isContextual(93)&&!this.isLookaheadContextual("as")){const A=this.parseIdentifier(!0);v!==null&&!zi(this.state.type)?(a.imported=A,a.importKind=v,a.local=Tl(A)):(a.imported=b,a.importKind=null,a.local=this.parseIdentifier())}else{if(v!==null&&zi(this.state.type))a.imported=this.parseIdentifier(!0),a.importKind=v;else{if(i)throw this.raise(Xe.ImportBindingIsString,a,{importName:b.value});a.imported=b,a.importKind=null}this.eatContextual(93)?a.local=this.parseIdentifier():(E=!0,a.local=Tl(a.imported))}const S=Che(a);return d&&S&&this.raise(Nr.ImportTypeShorthandOnlyInPureImport,a),(d||S)&&this.checkReservedType(a.local.name,a.local.loc.start,!0),E&&!d&&!S&&this.checkReservedWord(a.local.name,a.loc.start,!0,!0),this.finishImportSpecifier(a,"ImportSpecifier")}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseFunctionParams(a,i){const d=a.kind;d!=="get"&&d!=="set"&&this.match(47)&&(a.typeParameters=this.flowParseTypeParameterDeclaration()),super.parseFunctionParams(a,i)}parseVarId(a,i){super.parseVarId(a,i),this.match(14)&&(a.id.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(a.id))}parseAsyncArrowFromCallExpression(a,i){if(this.match(14)){const d=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,a.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=d}return super.parseAsyncArrowFromCallExpression(a,i)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}parseMaybeAssign(a,i){var d;let p=null,y;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(p=this.state.clone(),y=this.tryParse(()=>super.parseMaybeAssign(a,i),p),!y.error)return y.node;const{context:E}=this.state,S=E[E.length-1];(S===Ma.j_oTag||S===Ma.j_expr)&&E.pop()}if((d=y)!=null&&d.error||this.match(47)){var b,v;p=p||this.state.clone();let E;const S=this.tryParse(_=>{var C;E=this.flowParseTypeParameterDeclaration();const q=this.forwardNoArrowParamsConversionAt(E,()=>{const W=super.parseMaybeAssign(a,i);return this.resetStartLocationFromNode(W,E),W});(C=q.extra)!=null&&C.parenthesized&&_();const M=this.maybeUnwrapTypeCastExpression(q);return M.type!=="ArrowFunctionExpression"&&_(),M.typeParameters=E,this.resetStartLocationFromNode(M,E),q},p);let A=null;if(S.node&&this.maybeUnwrapTypeCastExpression(S.node).type==="ArrowFunctionExpression"){if(!S.error&&!S.aborted)return S.node.async&&this.raise(Nr.UnexpectedTypeParameterBeforeAsyncArrowFunction,E),S.node;A=S.node}if((b=y)!=null&&b.node)return this.state=y.failState,y.node;if(A)return this.state=S.failState,A;throw(v=y)!=null&&v.thrown?y.error:S.thrown?S.error:this.raise(Nr.UnexpectedTokenAfterTypeParameter,E)}return super.parseMaybeAssign(a,i)}parseArrow(a){if(this.match(14)){const i=this.tryParse(()=>{const d=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;const p=this.startNode();return[p.typeAnnotation,a.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=d,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),p});if(i.thrown)return null;i.error&&(this.state=i.failState),a.returnType=i.node.typeAnnotation?this.finishNode(i.node,"TypeAnnotation"):null}return super.parseArrow(a)}shouldParseArrow(a){return this.match(14)||super.shouldParseArrow(a)}setArrowFunctionParameters(a,i){this.state.noArrowParamsConversionAt.includes(a.start)?a.params=i:super.setArrowFunctionParameters(a,i)}checkParams(a,i,d,p=!0){if(!(d&&this.state.noArrowParamsConversionAt.includes(a.start))){for(let y=0;y<a.params.length;y++)this.isThisParam(a.params[y])&&y>0&&this.raise(Nr.ThisParamMustBeFirst,a.params[y]);super.checkParams(a,i,d,p)}}parseParenAndDistinguishExpression(a){return super.parseParenAndDistinguishExpression(a&&!this.state.noArrowAt.includes(this.state.start))}parseSubscripts(a,i,d){if(a.type==="Identifier"&&a.name==="async"&&this.state.noArrowAt.includes(i.index)){this.next();const p=this.startNodeAt(i);p.callee=a,p.arguments=super.parseCallExpressionArguments(11,!1),a=this.finishNode(p,"CallExpression")}else if(a.type==="Identifier"&&a.name==="async"&&this.match(47)){const p=this.state.clone(),y=this.tryParse(v=>this.parseAsyncArrowWithTypeParameters(i)||v(),p);if(!y.error&&!y.aborted)return y.node;const b=this.tryParse(()=>super.parseSubscripts(a,i,d),p);if(b.node&&!b.error)return b.node;if(y.node)return this.state=y.failState,y.node;if(b.node)return this.state=b.failState,b.node;throw y.error||b.error}return super.parseSubscripts(a,i,d)}parseSubscript(a,i,d,p){if(this.match(18)&&this.isLookaheadToken_lt()){if(p.optionalChainMember=!0,d)return p.stop=!0,a;this.next();const y=this.startNodeAt(i);return y.callee=a,y.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),y.arguments=this.parseCallExpressionArguments(11,!1),y.optional=!0,this.finishCallExpression(y,!0)}else if(!d&&this.shouldParseTypes()&&this.match(47)){const y=this.startNodeAt(i);y.callee=a;const b=this.tryParse(()=>(y.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),y.arguments=super.parseCallExpressionArguments(11,!1),p.optionalChainMember&&(y.optional=!1),this.finishCallExpression(y,p.optionalChainMember)));if(b.node)return b.error&&(this.state=b.failState),b.node}return super.parseSubscript(a,i,d,p)}parseNewCallee(a){super.parseNewCallee(a);let i=null;this.shouldParseTypes()&&this.match(47)&&(i=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),a.typeArguments=i}parseAsyncArrowWithTypeParameters(a){const i=this.startNodeAt(a);if(this.parseFunctionParams(i,!1),!!this.parseArrow(i))return super.parseArrowExpression(i,void 0,!0)}readToken_mult_modulo(a){const i=this.input.charCodeAt(this.state.pos+1);if(a===42&&i===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(a)}readToken_pipe_amp(a){const i=this.input.charCodeAt(this.state.pos+1);if(a===124&&i===125){this.finishOp(9,2);return}super.readToken_pipe_amp(a)}parseTopLevel(a,i){const d=super.parseTopLevel(a,i);return this.state.hasFlowComment&&this.raise(Nr.UnterminatedFlowComment,this.state.curPosition()),d}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(Nr.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();const a=this.skipFlowComment();a&&(this.state.pos+=a,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?"*-/":"*/")}skipFlowComment(){const{pos:a}=this.state;let i=2;for(;[32,9].includes(this.input.charCodeAt(a+i));)i++;const d=this.input.charCodeAt(i+a),p=this.input.charCodeAt(i+a+1);return d===58&&p===58?i+2:this.input.slice(i+a,i+a+12)==="flow-include"?i+12:d===58&&p!==58?i:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(Xe.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(a,{enumName:i,memberName:d}){this.raise(Nr.EnumBooleanMemberNotInitialized,a,{memberName:d,enumName:i})}flowEnumErrorInvalidMemberInitializer(a,i){return this.raise(i.explicitType?i.explicitType==="symbol"?Nr.EnumInvalidMemberInitializerSymbolType:Nr.EnumInvalidMemberInitializerPrimaryType:Nr.EnumInvalidMemberInitializerUnknownType,a,i)}flowEnumErrorNumberMemberNotInitialized(a,i){this.raise(Nr.EnumNumberMemberNotInitialized,a,i)}flowEnumErrorStringMemberInconsistentlyInitialized(a,i){this.raise(Nr.EnumStringMemberInconsistentlyInitialized,a,i)}flowEnumMemberInit(){const a=this.state.startLoc,i=()=>this.match(12)||this.match(8);switch(this.state.type){case 134:{const d=this.parseNumericLiteral(this.state.value);return i()?{type:"number",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}case 133:{const d=this.parseStringLiteral(this.state.value);return i()?{type:"string",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}case 85:case 86:{const d=this.parseBooleanLiteral(this.match(85));return i()?{type:"boolean",loc:d.loc.start,value:d}:{type:"invalid",loc:a}}default:return{type:"invalid",loc:a}}}flowEnumMemberRaw(){const a=this.state.startLoc,i=this.parseIdentifier(!0),d=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:a};return{id:i,init:d}}flowEnumCheckExplicitTypeMismatch(a,i,d){const{explicitType:p}=i;p!==null&&p!==d&&this.flowEnumErrorInvalidMemberInitializer(a,i)}flowEnumMembers({enumName:a,explicitType:i}){const d=new Set,p={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]};let y=!1;for(;!this.match(8);){if(this.eat(21)){y=!0;break}const b=this.startNode(),{id:v,init:E}=this.flowEnumMemberRaw(),S=v.name;if(S==="")continue;/^[a-z]/.test(S)&&this.raise(Nr.EnumInvalidMemberName,v,{memberName:S,suggestion:S[0].toUpperCase()+S.slice(1),enumName:a}),d.has(S)&&this.raise(Nr.EnumDuplicateMemberName,v,{memberName:S,enumName:a}),d.add(S);const A={enumName:a,explicitType:i,memberName:S};switch(b.id=v,E.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"boolean"),b.init=E.value,p.booleanMembers.push(this.finishNode(b,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"number"),b.init=E.value,p.numberMembers.push(this.finishNode(b,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(E.loc,A,"string"),b.init=E.value,p.stringMembers.push(this.finishNode(b,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(E.loc,A);case"none":switch(i){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(E.loc,A);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(E.loc,A);break;default:p.defaultedMembers.push(this.finishNode(b,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:p,hasUnknownMembers:y}}flowEnumStringMembers(a,i,{enumName:d}){if(a.length===0)return i;if(i.length===0)return a;if(i.length>a.length){for(const p of a)this.flowEnumErrorStringMemberInconsistentlyInitialized(p,{enumName:d});return i}else{for(const p of i)this.flowEnumErrorStringMemberInconsistentlyInitialized(p,{enumName:d});return a}}flowEnumParseExplicitType({enumName:a}){if(!this.eatContextual(102))return null;if(!wa(this.state.type))throw this.raise(Nr.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:a});const{value:i}=this.state;return this.next(),i!=="boolean"&&i!=="number"&&i!=="string"&&i!=="symbol"&&this.raise(Nr.EnumInvalidExplicitType,this.state.startLoc,{enumName:a,invalidEnumType:i}),i}flowEnumBody(a,i){const d=i.name,p=i.loc.start,y=this.flowEnumParseExplicitType({enumName:d});this.expect(5);const{members:b,hasUnknownMembers:v}=this.flowEnumMembers({enumName:d,explicitType:y});switch(a.hasUnknownMembers=v,y){case"boolean":return a.explicitType=!0,a.members=b.booleanMembers,this.expect(8),this.finishNode(a,"EnumBooleanBody");case"number":return a.explicitType=!0,a.members=b.numberMembers,this.expect(8),this.finishNode(a,"EnumNumberBody");case"string":return a.explicitType=!0,a.members=this.flowEnumStringMembers(b.stringMembers,b.defaultedMembers,{enumName:d}),this.expect(8),this.finishNode(a,"EnumStringBody");case"symbol":return a.members=b.defaultedMembers,this.expect(8),this.finishNode(a,"EnumSymbolBody");default:{const E=()=>(a.members=[],this.expect(8),this.finishNode(a,"EnumStringBody"));a.explicitType=!1;const S=b.booleanMembers.length,A=b.numberMembers.length,_=b.stringMembers.length,C=b.defaultedMembers.length;if(!S&&!A&&!_&&!C)return E();if(!S&&!A)return a.members=this.flowEnumStringMembers(b.stringMembers,b.defaultedMembers,{enumName:d}),this.expect(8),this.finishNode(a,"EnumStringBody");if(!A&&!_&&S>=C){for(const q of b.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(q.loc.start,{enumName:d,memberName:q.id.name});return a.members=b.booleanMembers,this.expect(8),this.finishNode(a,"EnumBooleanBody")}else if(!S&&!_&&A>=C){for(const q of b.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(q.loc.start,{enumName:d,memberName:q.id.name});return a.members=b.numberMembers,this.expect(8),this.finishNode(a,"EnumNumberBody")}else return this.raise(Nr.EnumInconsistentMemberValues,p,{enumName:d}),E()}}}flowParseEnumDeclaration(a){const i=this.parseIdentifier();return a.id=i,a.body=this.flowEnumBody(this.startNode(),i),this.finishNode(a,"EnumDeclaration")}isLookaheadToken_lt(){const a=this.nextTokenStart();if(this.input.charCodeAt(a)===60){const i=this.input.charCodeAt(a+1);return i!==60&&i!==61}return!1}maybeUnwrapTypeCastExpression(a){return a.type==="TypeCastExpression"?a.expression:a}};const N4t={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},Uc=yl`jsx`({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:({openingTagName:n})=>`Expected corresponding JSX closing tag for <${n}>.`,MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:({unexpected:n,HTMLEntity:t})=>`Unexpected token \`${n}\`. Did you mean \`${t}\` or \`{'${n}'}\`?`,UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"});function gu(n){return n?n.type==="JSXOpeningFragment"||n.type==="JSXClosingFragment":!1}function jp(n){if(n.type==="JSXIdentifier")return n.name;if(n.type==="JSXNamespacedName")return n.namespace.name+":"+n.name.name;if(n.type==="JSXMemberExpression")return jp(n.object)+"."+jp(n.property);throw new Error("Node had unexpected type: "+n.type)}var k4t=n=>class extends n{jsxReadToken(){let a="",i=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Uc.UnterminatedJsxContent,this.state.startLoc);const d=this.input.charCodeAt(this.state.pos);switch(d){case 60:case 123:if(this.state.pos===this.state.start){d===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(142)):super.getTokenFromCode(d);return}a+=this.input.slice(i,this.state.pos),this.finishToken(141,a);return;case 38:a+=this.input.slice(i,this.state.pos),a+=this.jsxReadEntity(),i=this.state.pos;break;case 62:case 125:default:Bp(d)?(a+=this.input.slice(i,this.state.pos),a+=this.jsxReadNewLine(!0),i=this.state.pos):++this.state.pos}}}jsxReadNewLine(a){const i=this.input.charCodeAt(this.state.pos);let d;return++this.state.pos,i===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,d=a?` +`:`\r +`):d=String.fromCharCode(i),++this.state.curLine,this.state.lineStart=this.state.pos,d}jsxReadString(a){let i="",d=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Xe.UnterminatedString,this.state.startLoc);const p=this.input.charCodeAt(this.state.pos);if(p===a)break;p===38?(i+=this.input.slice(d,this.state.pos),i+=this.jsxReadEntity(),d=this.state.pos):Bp(p)?(i+=this.input.slice(d,this.state.pos),i+=this.jsxReadNewLine(!1),d=this.state.pos):++this.state.pos}i+=this.input.slice(d,this.state.pos++),this.finishToken(133,i)}jsxReadEntity(){const a=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let i=10;this.codePointAtPos(this.state.pos)===120&&(i=16,++this.state.pos);const d=this.readInt(i,void 0,!1,"bail");if(d!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(d)}else{let i=0,d=!1;for(;i++<10&&this.state.pos<this.length&&!(d=this.codePointAtPos(this.state.pos)===59);)++this.state.pos;if(d){const p=this.input.slice(a,this.state.pos),y=N4t[p];if(++this.state.pos,y)return y}}return this.state.pos=a,"&"}jsxReadWord(){let a;const i=this.state.pos;do a=this.input.charCodeAt(++this.state.pos);while(Mp(a)||a===45);this.finishToken(140,this.input.slice(i,this.state.pos))}jsxParseIdentifier(){const a=this.startNode();return this.match(140)?a.name=this.state.value:sM(this.state.type)?a.name=Cu(this.state.type):this.unexpected(),this.next(),this.finishNode(a,"JSXIdentifier")}jsxParseNamespacedName(){const a=this.state.startLoc,i=this.jsxParseIdentifier();if(!this.eat(14))return i;const d=this.startNodeAt(a);return d.namespace=i,d.name=this.jsxParseIdentifier(),this.finishNode(d,"JSXNamespacedName")}jsxParseElementName(){const a=this.state.startLoc;let i=this.jsxParseNamespacedName();if(i.type==="JSXNamespacedName")return i;for(;this.eat(16);){const d=this.startNodeAt(a);d.object=i,d.property=this.jsxParseIdentifier(),i=this.finishNode(d,"JSXMemberExpression")}return i}jsxParseAttributeValue(){let a;switch(this.state.type){case 5:return a=this.startNode(),this.setContext(Ma.brace),this.next(),a=this.jsxParseExpressionContainer(a,Ma.j_oTag),a.expression.type==="JSXEmptyExpression"&&this.raise(Uc.AttributeIsEmpty,a),a;case 142:case 133:return this.parseExprAtom();default:throw this.raise(Uc.UnsupportedJsxValue,this.state.startLoc)}}jsxParseEmptyExpression(){const a=this.startNodeAt(this.state.lastTokEndLoc);return this.finishNodeAt(a,"JSXEmptyExpression",this.state.startLoc)}jsxParseSpreadChild(a){return this.next(),a.expression=this.parseExpression(),this.setContext(Ma.j_expr),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXSpreadChild")}jsxParseExpressionContainer(a,i){if(this.match(8))a.expression=this.jsxParseEmptyExpression();else{const d=this.parseExpression();a.expression=d}return this.setContext(i),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXExpressionContainer")}jsxParseAttribute(){const a=this.startNode();return this.match(5)?(this.setContext(Ma.brace),this.next(),this.expect(21),a.argument=this.parseMaybeAssignAllowIn(),this.setContext(Ma.j_oTag),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(a,"JSXSpreadAttribute")):(a.name=this.jsxParseNamespacedName(),a.value=this.eat(29)?this.jsxParseAttributeValue():null,this.finishNode(a,"JSXAttribute"))}jsxParseOpeningElementAt(a){const i=this.startNodeAt(a);return this.eat(143)?this.finishNode(i,"JSXOpeningFragment"):(i.name=this.jsxParseElementName(),this.jsxParseOpeningElementAfterName(i))}jsxParseOpeningElementAfterName(a){const i=[];for(;!this.match(56)&&!this.match(143);)i.push(this.jsxParseAttribute());return a.attributes=i,a.selfClosing=this.eat(56),this.expect(143),this.finishNode(a,"JSXOpeningElement")}jsxParseClosingElementAt(a){const i=this.startNodeAt(a);return this.eat(143)?this.finishNode(i,"JSXClosingFragment"):(i.name=this.jsxParseElementName(),this.expect(143),this.finishNode(i,"JSXClosingElement"))}jsxParseElementAt(a){const i=this.startNodeAt(a),d=[],p=this.jsxParseOpeningElementAt(a);let y=null;if(!p.selfClosing){e:for(;;)switch(this.state.type){case 142:if(a=this.state.startLoc,this.next(),this.eat(56)){y=this.jsxParseClosingElementAt(a);break e}d.push(this.jsxParseElementAt(a));break;case 141:d.push(this.parseLiteral(this.state.value,"JSXText"));break;case 5:{const b=this.startNode();this.setContext(Ma.brace),this.next(),this.match(21)?d.push(this.jsxParseSpreadChild(b)):d.push(this.jsxParseExpressionContainer(b,Ma.j_expr));break}default:this.unexpected()}gu(p)&&!gu(y)&&y!==null?this.raise(Uc.MissingClosingTagFragment,y):!gu(p)&&gu(y)?this.raise(Uc.MissingClosingTagElement,y,{openingTagName:jp(p.name)}):!gu(p)&&!gu(y)&&jp(y.name)!==jp(p.name)&&this.raise(Uc.MissingClosingTagElement,y,{openingTagName:jp(p.name)})}if(gu(p)?(i.openingFragment=p,i.closingFragment=y):(i.openingElement=p,i.closingElement=y),i.children=d,this.match(47))throw this.raise(Uc.UnwrappedAdjacentJSXElements,this.state.startLoc);return gu(p)?this.finishNode(i,"JSXFragment"):this.finishNode(i,"JSXElement")}jsxParseElement(){const a=this.state.startLoc;return this.next(),this.jsxParseElementAt(a)}setContext(a){const{context:i}=this.state;i[i.length-1]=a}parseExprAtom(a){return this.match(142)?this.jsxParseElement():this.match(47)&&this.input.charCodeAt(this.state.pos)!==33?(this.replaceToken(142),this.jsxParseElement()):super.parseExprAtom(a)}skipSpace(){this.curContext().preserveSpace||super.skipSpace()}getTokenFromCode(a){const i=this.curContext();if(i===Ma.j_expr){this.jsxReadToken();return}if(i===Ma.j_oTag||i===Ma.j_cTag){if(hl(a)){this.jsxReadWord();return}if(a===62){++this.state.pos,this.finishToken(143);return}if((a===34||a===39)&&i===Ma.j_oTag){this.jsxReadString(a);return}}if(a===60&&this.state.canStartJSXElement&&this.input.charCodeAt(this.state.pos+1)!==33){++this.state.pos,this.finishToken(142);return}super.getTokenFromCode(a)}updateContext(a){const{context:i,type:d}=this.state;if(d===56&&a===142)i.splice(-2,2,Ma.j_cTag),this.state.canStartJSXElement=!1;else if(d===142)i.push(Ma.j_oTag);else if(d===143){const p=i[i.length-1];p===Ma.j_oTag&&a===56||p===Ma.j_cTag?(i.pop(),this.state.canStartJSXElement=i[i.length-1]===Ma.j_expr):(this.setContext(Ma.j_expr),this.state.canStartJSXElement=!0)}else this.state.canStartJSXElement=Fxt(d)}};class D4t extends lM{constructor(...t){super(...t),this.tsNames=new Map}}class L4t extends uM{constructor(...t){super(...t),this.importsStack=[]}createScope(t){return this.importsStack.push(new Set),new D4t(t)}enter(t){t===256&&this.importsStack.push(new Set),super.enter(t)}exit(){const t=super.exit();return t===256&&this.importsStack.pop(),t}hasImport(t,a){const i=this.importsStack.length;if(this.importsStack[i-1].has(t))return!0;if(!a&&i>1){for(let d=0;d<i-1;d++)if(this.importsStack[d].has(t))return!0}return!1}declareName(t,a,i){if(a&4096){this.hasImport(t,!0)&&this.parser.raise(Xe.VarRedeclaration,i,{identifierName:t}),this.importsStack[this.importsStack.length-1].add(t);return}const d=this.currentScope();let p=d.tsNames.get(t)||0;if(a&1024){this.maybeExportDefined(d,t),d.tsNames.set(t,p|16);return}super.declareName(t,a,i),a&2&&(a&1||(this.checkRedeclarationInScope(d,t,a,i),this.maybeExportDefined(d,t)),p=p|1),a&256&&(p=p|2),a&512&&(p=p|4),a&128&&(p=p|8),p&&d.tsNames.set(t,p)}isRedeclaredInScope(t,a,i){const d=t.tsNames.get(a);if((d&2)>0){if(i&256){const p=!!(i&512),y=(d&4)>0;return p!==y}return!0}return i&128&&(d&8)>0?t.names.get(a)&2?!!(i&1):!1:i&2&&(d&1)>0?!0:super.isRedeclaredInScope(t,a,i)}checkLocalExport(t){const{name:a}=t;if(this.hasImport(a))return;const i=this.scopeStack.length;for(let d=i-1;d>=0;d--){const y=this.scopeStack[d].tsNames.get(a);if((y&1)>0||(y&16)>0)return}super.checkLocalExport(t)}}const g1e=n=>n.type==="ParenthesizedExpression"?g1e(n.expression):n;class M4t extends P4t{toAssignable(t,a=!1){var i,d;let p;switch((t.type==="ParenthesizedExpression"||(i=t.extra)!=null&&i.parenthesized)&&(p=g1e(t),a?p.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(Xe.InvalidParenthesizedAssignment,t):p.type!=="MemberExpression"&&!this.isOptionalMemberExpression(p)&&this.raise(Xe.InvalidParenthesizedAssignment,t):this.raise(Xe.InvalidParenthesizedAssignment,t)),t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern";for(let b=0,v=t.properties.length,E=v-1;b<v;b++){var y;const S=t.properties[b],A=b===E;this.toAssignableObjectExpressionProp(S,A,a),A&&S.type==="RestElement"&&(y=t.extra)!=null&&y.trailingCommaLoc&&this.raise(Xe.RestTrailingComma,t.extra.trailingCommaLoc)}break;case"ObjectProperty":{const{key:b,value:v}=t;this.isPrivateName(b)&&this.classScope.usePrivateName(this.getPrivateNameSV(b),b.loc.start),this.toAssignable(v,a);break}case"SpreadElement":throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");case"ArrayExpression":t.type="ArrayPattern",this.toAssignableList(t.elements,(d=t.extra)==null?void 0:d.trailingCommaLoc,a);break;case"AssignmentExpression":t.operator!=="="&&this.raise(Xe.MissingEqInAssignment,t.left.loc.end),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,a);break;case"ParenthesizedExpression":this.toAssignable(p,a);break}}toAssignableObjectExpressionProp(t,a,i){if(t.type==="ObjectMethod")this.raise(t.kind==="get"||t.kind==="set"?Xe.PatternHasAccessor:Xe.PatternHasMethod,t.key);else if(t.type==="SpreadElement"){t.type="RestElement";const d=t.argument;this.checkToRestConversion(d,!1),this.toAssignable(d,i),a||this.raise(Xe.RestTrailingComma,t)}else this.toAssignable(t,i)}toAssignableList(t,a,i){const d=t.length-1;for(let p=0;p<=d;p++){const y=t[p];if(y){if(y.type==="SpreadElement"){y.type="RestElement";const b=y.argument;this.checkToRestConversion(b,!0),this.toAssignable(b,i)}else this.toAssignable(y,i);y.type==="RestElement"&&(p<d?this.raise(Xe.RestTrailingComma,y):a&&this.raise(Xe.RestTrailingComma,a))}}}isAssignable(t,a){switch(t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":return!0;case"ObjectExpression":{const i=t.properties.length-1;return t.properties.every((d,p)=>d.type!=="ObjectMethod"&&(p===i||d.type!=="SpreadElement")&&this.isAssignable(d))}case"ObjectProperty":return this.isAssignable(t.value);case"SpreadElement":return this.isAssignable(t.argument);case"ArrayExpression":return t.elements.every(i=>i===null||this.isAssignable(i));case"AssignmentExpression":return t.operator==="=";case"ParenthesizedExpression":return this.isAssignable(t.expression);case"MemberExpression":case"OptionalMemberExpression":return!a;default:return!1}}toReferencedList(t,a){return t}toReferencedListDeep(t,a){this.toReferencedList(t,a);for(const i of t)(i==null?void 0:i.type)==="ArrayExpression"&&this.toReferencedListDeep(i.elements)}parseSpread(t){const a=this.startNode();return this.next(),a.argument=this.parseMaybeAssignAllowIn(t,void 0),this.finishNode(a,"SpreadElement")}parseRestBinding(){const t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{const t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,1),this.finishNode(t,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,a,i){const d=i&1,p=[];let y=!0;for(;!this.eat(t);)if(y?y=!1:this.expect(12),d&&this.match(12))p.push(null);else{if(this.eat(t))break;if(this.match(21)){if(p.push(this.parseAssignableListItemTypes(this.parseRestBinding(),i)),!this.checkCommaAfterRest(a)){this.expect(t);break}}else{const b=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(Xe.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)b.push(this.parseDecorator());p.push(this.parseAssignableListItem(i,b))}}return p}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,"RestElement")}parseBindingProperty(){const{type:t,startLoc:a}=this.state;if(t===21)return this.parseBindingRestProperty(this.startNode());const i=this.startNode();return t===138?(this.expectPlugin("destructuringPrivate",a),this.classScope.usePrivateName(this.state.value,a),i.key=this.parsePrivateName()):this.parsePropertyName(i),i.method=!1,this.parseObjPropValue(i,a,!1,!1,!0,!1)}parseAssignableListItem(t,a){const i=this.parseMaybeDefault();this.parseAssignableListItemTypes(i,t);const d=this.parseMaybeDefault(i.loc.start,i);return a.length&&(i.decorators=a),d}parseAssignableListItemTypes(t,a){return t}parseMaybeDefault(t,a){var i,d;if((i=t)!=null||(t=this.state.startLoc),a=(d=a)!=null?d:this.parseBindingAtom(),!this.eat(29))return a;const p=this.startNodeAt(t);return p.left=a,p.right=this.parseMaybeAssignAllowIn(),this.finishNode(p,"AssignmentPattern")}isValidLVal(t,a,i){switch(t){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1}isOptionalMemberExpression(t){return t.type==="OptionalMemberExpression"}checkLVal(t,a,i=64,d=!1,p=!1,y=!1){var b;const v=t.type;if(this.isObjectMethod(t))return;const E=this.isOptionalMemberExpression(t);if(E||v==="MemberExpression"){E&&(this.expectPlugin("optionalChainingAssign",t.loc.start),a.type!=="AssignmentExpression"&&this.raise(Xe.InvalidLhsOptionalChaining,t,{ancestor:a})),i!==64&&this.raise(Xe.InvalidPropertyBindingPattern,t);return}if(v==="Identifier"){this.checkIdentifier(t,i,p);const{name:M}=t;d&&(d.has(M)?this.raise(Xe.ParamDupe,t):d.add(M));return}const S=this.isValidLVal(v,!(y||(b=t.extra)!=null&&b.parenthesized)&&a.type==="AssignmentExpression",i);if(S===!0)return;if(S===!1){const M=i===64?Xe.InvalidLhs:Xe.InvalidLhsBinding;this.raise(M,t,{ancestor:a});return}let A,_;typeof S=="string"?(A=S,_=v==="ParenthesizedExpression"):[A,_]=S;const C=v==="ArrayPattern"||v==="ObjectPattern"?{type:v}:a,q=t[A];if(Array.isArray(q))for(const M of q)M&&this.checkLVal(M,C,i,d,p,_);else q&&this.checkLVal(q,C,i,d,p,_)}checkIdentifier(t,a,i=!1){this.state.strict&&(i?d1e(t.name,this.inModule):c1e(t.name))&&(a===64?this.raise(Xe.StrictEvalArguments,t,{referenceName:t.name}):this.raise(Xe.StrictEvalArgumentsBinding,t,{bindingName:t.name})),a&8192&&t.name==="let"&&this.raise(Xe.LetInLexicalBinding,t),a&64||this.declareNameFromIdentifier(t,a)}declareNameFromIdentifier(t,a){this.scope.declareName(t.name,a,t.loc.start)}checkToRestConversion(t,a){switch(t.type){case"ParenthesizedExpression":this.checkToRestConversion(t.expression,a);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(a)break;default:this.raise(Xe.InvalidRestAssignmentPattern,t)}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?Xe.RestTrailingComma:Xe.ElementAfterRest,this.state.startLoc),!0):!1}}function B4t(n){if(n==null)throw new Error(`Unexpected ${n} value.`);return n}function jhe(n){if(!n)throw new Error("Assert fail")}const mr=yl`typescript`({AbstractMethodHasImplementation:({methodName:n})=>`Method '${n}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:n})=>`Property '${n}' cannot have an initializer because it is marked abstract.`,AccesorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccesorCannotHaveTypeParameters:"An accessor cannot have type parameters.",AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:({kind:n})=>`'declare' is not allowed in ${n}ters.`,DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:({modifier:n})=>"Accessibility modifier already seen.",DuplicateModifier:({modifier:n})=>`Duplicate modifier: '${n}'.`,EmptyHeritageClauseType:({token:n})=>`'${n}' list cannot be empty.`,EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:({modifiers:n})=>`'${n[0]}' modifier cannot be used with '${n[1]}' modifier.`,IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:({modifier:n})=>`Index signatures cannot have an accessibility modifier ('${n}').`,IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:({modifier:n})=>`'${n}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:n})=>`'${n}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:n})=>`'${n}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:n})=>`'${n[0]}' modifier must precede '${n[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:({modifier:n})=>`Private elements cannot have an accessibility modifier ('${n}').`,ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccesorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccesorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccesorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:({typeParameterName:n})=>`Single type parameter ${n} should have a trailing comma. Example usage: <${n},>.`,StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:({type:n})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${n}.`});function F4t(n){switch(n){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function Ohe(n){return n==="private"||n==="public"||n==="protected"}function $4t(n){return n==="in"||n==="out"}var q4t=n=>class extends n{constructor(...a){super(...a),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:mr.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:mr.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:mr.InvalidModifierOnTypeParameter})}getScopeHandler(){return L4t}tsIsIdentifier(){return wa(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(138)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(a,i){if(!wa(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;const d=this.state.value;if(a.includes(d)){if(i&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return d}}tsParseModifiers({allowedModifiers:a,disallowedModifiers:i,stopOnStartOfClassStaticBlock:d,errorTemplate:p=mr.InvalidModifierOnTypeMember},y){const b=(E,S,A,_)=>{S===A&&y[_]&&this.raise(mr.InvalidModifiersOrder,E,{orderedModifiers:[A,_]})},v=(E,S,A,_)=>{(y[A]&&S===_||y[_]&&S===A)&&this.raise(mr.IncompatibleModifiers,E,{modifiers:[A,_]})};for(;;){const{startLoc:E}=this.state,S=this.tsParseModifier(a.concat(i??[]),d);if(!S)break;Ohe(S)?y.accessibility?this.raise(mr.DuplicateAccessibilityModifier,E,{modifier:S}):(b(E,S,S,"override"),b(E,S,S,"static"),b(E,S,S,"readonly"),y.accessibility=S):$4t(S)?(y[S]&&this.raise(mr.DuplicateModifier,E,{modifier:S}),y[S]=!0,b(E,S,"in","out")):(hasOwnProperty.call(y,S)?this.raise(mr.DuplicateModifier,E,{modifier:S}):(b(E,S,"static","readonly"),b(E,S,"static","override"),b(E,S,"override","readonly"),b(E,S,"abstract","override"),v(E,S,"declare","override"),v(E,S,"static","abstract")),y[S]=!0),i!=null&&i.includes(S)&&this.raise(p,E,{modifier:S})}}tsIsListTerminator(a){switch(a){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}}tsParseList(a,i){const d=[];for(;!this.tsIsListTerminator(a);)d.push(i());return d}tsParseDelimitedList(a,i,d){return B4t(this.tsParseDelimitedListWorker(a,i,!0,d))}tsParseDelimitedListWorker(a,i,d,p){const y=[];let b=-1;for(;!this.tsIsListTerminator(a);){b=-1;const v=i();if(v==null)return;if(y.push(v),this.eat(12)){b=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(a))break;d&&this.expect(12);return}return p&&(p.value=b),y}tsParseBracketedList(a,i,d,p,y){p||(d?this.expect(0):this.expect(47));const b=this.tsParseDelimitedList(a,i,y);return d?this.expect(3):this.expect(48),b}tsParseImportType(){const a=this.startNode();return this.expect(83),this.expect(10),this.match(133)||this.raise(mr.UnsupportedImportTypeArgument,this.state.startLoc),a.argument=super.parseExprAtom(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(a.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(a.options=super.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.eat(16)&&(a.qualifier=this.tsParseEntityName()),this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSImportType")}tsParseEntityName(a=!0){let i=this.parseIdentifier(a);for(;this.eat(16);){const d=this.startNodeAtNode(i);d.left=i,d.right=this.parseIdentifier(a),i=this.finishNode(d,"TSQualifiedName")}return i}tsParseTypeReference(){const a=this.startNode();return a.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSTypeReference")}tsParseThisTypePredicate(a){this.next();const i=this.startNodeAtNode(a);return i.parameterName=a,i.typeAnnotation=this.tsParseTypeAnnotation(!1),i.asserts=!1,this.finishNode(i,"TSTypePredicate")}tsParseThisTypeNode(){const a=this.startNode();return this.next(),this.finishNode(a,"TSThisType")}tsParseTypeQuery(){const a=this.startNode();return this.expect(87),this.match(83)?a.exprName=this.tsParseImportType():a.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(a.typeParameters=this.tsParseTypeArguments()),this.finishNode(a,"TSTypeQuery")}tsParseTypeParameter(a){const i=this.startNode();return a(i),i.name=this.tsParseTypeParameterName(),i.constraint=this.tsEatThenParseType(81),i.default=this.tsEatThenParseType(29),this.finishNode(i,"TSTypeParameter")}tsTryParseTypeParameters(a){if(this.match(47))return this.tsParseTypeParameters(a)}tsParseTypeParameters(a){const i=this.startNode();this.match(47)||this.match(142)?this.next():this.unexpected();const d={value:-1};return i.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,a),!1,!0,d),i.params.length===0&&this.raise(mr.EmptyTypeParameters,i),d.value!==-1&&this.addExtra(i,"trailingComma",d.value),this.finishNode(i,"TSTypeParameterDeclaration")}tsFillSignature(a,i){const d=a===19,p="parameters",y="typeAnnotation";i.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),i[p]=this.tsParseBindingListForSignature(),d?i[y]=this.tsParseTypeOrTypePredicateAnnotation(a):this.match(a)&&(i[y]=this.tsParseTypeOrTypePredicateAnnotation(a))}tsParseBindingListForSignature(){const a=super.parseBindingList(11,41,2);for(const i of a){const{type:d}=i;(d==="AssignmentPattern"||d==="TSParameterProperty")&&this.raise(mr.UnsupportedSignatureParameterKind,i,{type:d})}return a}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(a,i){return this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon(),this.finishNode(i,a)}tsIsUnambiguouslyIndexSignature(){return this.next(),wa(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(a){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);const i=this.parseIdentifier();i.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(i),this.expect(3),a.parameters=[i];const d=this.tsTryParseTypeAnnotation();return d&&(a.typeAnnotation=d),this.tsParseTypeMemberSemicolon(),this.finishNode(a,"TSIndexSignature")}tsParsePropertyOrMethodSignature(a,i){this.eat(17)&&(a.optional=!0);const d=a;if(this.match(10)||this.match(47)){i&&this.raise(mr.ReadonlyForMethodSignature,a);const p=d;p.kind&&this.match(47)&&this.raise(mr.AccesorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,p),this.tsParseTypeMemberSemicolon();const y="parameters",b="typeAnnotation";if(p.kind==="get")p[y].length>0&&(this.raise(Xe.BadGetterArity,this.state.curPosition()),this.isThisParam(p[y][0])&&this.raise(mr.AccesorCannotDeclareThisParameter,this.state.curPosition()));else if(p.kind==="set"){if(p[y].length!==1)this.raise(Xe.BadSetterArity,this.state.curPosition());else{const v=p[y][0];this.isThisParam(v)&&this.raise(mr.AccesorCannotDeclareThisParameter,this.state.curPosition()),v.type==="Identifier"&&v.optional&&this.raise(mr.SetAccesorCannotHaveOptionalParameter,this.state.curPosition()),v.type==="RestElement"&&this.raise(mr.SetAccesorCannotHaveRestParameter,this.state.curPosition())}p[b]&&this.raise(mr.SetAccesorCannotHaveReturnType,p[b])}else p.kind="method";return this.finishNode(p,"TSMethodSignature")}else{const p=d;i&&(p.readonly=!0);const y=this.tsTryParseTypeAnnotation();return y&&(p.typeAnnotation=y),this.tsParseTypeMemberSemicolon(),this.finishNode(p,"TSPropertySignature")}}tsParseTypeMember(){const a=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",a);if(this.match(77)){const d=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",a):(a.key=this.createIdentifier(d,"new"),this.tsParsePropertyOrMethodSignature(a,!1))}this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},a);const i=this.tsTryParseIndexSignature(a);return i||(super.parsePropertyName(a),!a.computed&&a.key.type==="Identifier"&&(a.key.name==="get"||a.key.name==="set")&&this.tsTokenCanFollowModifier()&&(a.kind=a.key.name,super.parsePropertyName(a)),this.tsParsePropertyOrMethodSignature(a,!!a.readonly))}tsParseTypeLiteral(){const a=this.startNode();return a.members=this.tsParseObjectTypeMembers(),this.finishNode(a,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);const a=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),a}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){const a=this.startNode();return a.name=this.tsParseTypeParameterName(),a.constraint=this.tsExpectThenParseType(58),this.finishNode(a,"TSTypeParameter")}tsParseMappedType(){const a=this.startNode();return this.expect(5),this.match(53)?(a.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(a.readonly=!0),this.expect(0),a.typeParameter=this.tsParseMappedTypeParameter(),a.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(a.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(a.optional=!0),a.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(a,"TSMappedType")}tsParseTupleType(){const a=this.startNode();a.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let i=!1;return a.elementTypes.forEach(d=>{const{type:p}=d;i&&p!=="TSRestType"&&p!=="TSOptionalType"&&!(p==="TSNamedTupleMember"&&d.optional)&&this.raise(mr.OptionalTypeBeforeRequired,d),i||(i=p==="TSNamedTupleMember"&&d.optional||p==="TSOptionalType")}),this.finishNode(a,"TSTupleType")}tsParseTupleElementType(){const{startLoc:a}=this.state,i=this.eat(21);let d,p,y,b;const E=zi(this.state.type)?this.lookaheadCharCode():null;if(E===58)d=!0,y=!1,p=this.parseIdentifier(!0),this.expect(14),b=this.tsParseType();else if(E===63){y=!0;const S=this.state.startLoc,A=this.state.value,_=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(d=!0,p=this.createIdentifier(this.startNodeAt(S),A),this.expect(17),this.expect(14),b=this.tsParseType()):(d=!1,b=_,this.expect(17))}else b=this.tsParseType(),y=this.eat(17),d=this.eat(14);if(d){let S;p?(S=this.startNodeAtNode(p),S.optional=y,S.label=p,S.elementType=b,this.eat(17)&&(S.optional=!0,this.raise(mr.TupleOptionalAfterType,this.state.lastTokStartLoc))):(S=this.startNodeAtNode(b),S.optional=y,this.raise(mr.InvalidTupleMemberLabel,b),S.label=b,S.elementType=this.tsParseType()),b=this.finishNode(S,"TSNamedTupleMember")}else if(y){const S=this.startNodeAtNode(b);S.typeAnnotation=b,b=this.finishNode(S,"TSOptionalType")}if(i){const S=this.startNodeAt(a);S.typeAnnotation=b,b=this.finishNode(S,"TSRestType")}return b}tsParseParenthesizedType(){const a=this.startNode();return this.expect(10),a.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(a,"TSParenthesizedType")}tsParseFunctionOrConstructorType(a,i){const d=this.startNode();return a==="TSConstructorType"&&(d.abstract=!!i,i&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,d)),this.finishNode(d,a)}tsParseLiteralTypeNode(){const a=this.startNode();switch(this.state.type){case 134:case 135:case 133:case 85:case 86:a.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(a,"TSLiteralType")}tsParseTemplateLiteralType(){const a=this.startNode();return a.literal=super.parseTemplate(!1),this.finishNode(a,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){const a=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(a):a}tsParseNonArrayType(){switch(this.state.type){case 133:case 134:case 135:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){const a=this.startNode(),i=this.lookahead();return i.type!==134&&i.type!==135&&this.unexpected(),a.literal=this.parseMaybeUnary(),this.finishNode(a,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{const{type:a}=this.state;if(wa(a)||a===88||a===84){const i=a===88?"TSVoidKeyword":a===84?"TSNullKeyword":F4t(this.state.value);if(i!==void 0&&this.lookaheadCharCode()!==46){const d=this.startNode();return this.next(),this.finishNode(d,i)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let a=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){const i=this.startNodeAtNode(a);i.elementType=a,this.expect(3),a=this.finishNode(i,"TSArrayType")}else{const i=this.startNodeAtNode(a);i.objectType=a,i.indexType=this.tsParseType(),this.expect(3),a=this.finishNode(i,"TSIndexedAccessType")}return a}tsParseTypeOperator(){const a=this.startNode(),i=this.state.value;return this.next(),a.operator=i,a.typeAnnotation=this.tsParseTypeOperatorOrHigher(),i==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(a),this.finishNode(a,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(a){switch(a.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(mr.UnexpectedReadonly,a)}}tsParseInferType(){const a=this.startNode();this.expectContextual(115);const i=this.startNode();return i.name=this.tsParseTypeParameterName(),i.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),a.typeParameter=this.finishNode(i,"TSTypeParameter"),this.finishNode(a,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){const a=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return a}}tsParseTypeOperatorOrHigher(){return Gxt(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(a,i,d){const p=this.startNode(),y=this.eat(d),b=[];do b.push(i());while(this.eat(d));return b.length===1&&!y?b[0]:(p.types=b,this.finishNode(p,a))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(wa(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){const{errors:a}=this.state,i=a.length;try{return this.parseObjectLike(8,!0),a.length===i}catch{return!1}}if(this.match(0)){this.next();const{errors:a}=this.state,i=a.length;try{return super.parseBindingList(3,93,1),a.length===i}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(a){return this.tsInType(()=>{const i=this.startNode();this.expect(a);const d=this.startNode(),p=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(p&&this.match(78)){let v=this.tsParseThisTypeOrThisTypePredicate();return v.type==="TSThisType"?(d.parameterName=v,d.asserts=!0,d.typeAnnotation=null,v=this.finishNode(d,"TSTypePredicate")):(this.resetStartLocationFromNode(v,d),v.asserts=!0),i.typeAnnotation=v,this.finishNode(i,"TSTypeAnnotation")}const y=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!y)return p?(d.parameterName=this.parseIdentifier(),d.asserts=p,d.typeAnnotation=null,i.typeAnnotation=this.finishNode(d,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,i);const b=this.tsParseTypeAnnotation(!1);return d.parameterName=y,d.typeAnnotation=b,d.asserts=p,i.typeAnnotation=this.finishNode(d,"TSTypePredicate"),this.finishNode(i,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){const a=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),a}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;const a=this.state.containsEsc;return this.next(),!wa(this.state.type)&&!this.match(78)?!1:(a&&this.raise(Xe.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(a=!0,i=this.startNode()){return this.tsInType(()=>{a&&this.expect(14),i.typeAnnotation=this.tsParseType()}),this.finishNode(i,"TSTypeAnnotation")}tsParseType(){jhe(this.state.inType);const a=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return a;const i=this.startNodeAtNode(a);return i.checkType=a,i.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),i.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),i.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(i,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(mr.ReservedTypeAssertion,this.state.startLoc);const a=this.startNode();return a.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),a.expression=this.parseMaybeUnary(),this.finishNode(a,"TSTypeAssertion")}tsParseHeritageClause(a){const i=this.state.startLoc,d=this.tsParseDelimitedList("HeritageClauseElement",()=>{const p=this.startNode();return p.expression=this.tsParseEntityName(),this.match(47)&&(p.typeParameters=this.tsParseTypeArguments()),this.finishNode(p,"TSExpressionWithTypeArguments")});return d.length||this.raise(mr.EmptyHeritageClauseType,i,{token:a}),d}tsParseInterfaceDeclaration(a,i={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),i.declare&&(a.declare=!0),wa(this.state.type)?(a.id=this.parseIdentifier(),this.checkIdentifier(a.id,130)):(a.id=null,this.raise(mr.MissingInterfaceName,this.state.startLoc)),a.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(a.extends=this.tsParseHeritageClause("extends"));const d=this.startNode();return d.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),a.body=this.finishNode(d,"TSInterfaceBody"),this.finishNode(a,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(a){return a.id=this.parseIdentifier(),this.checkIdentifier(a.id,2),a.typeAnnotation=this.tsInType(()=>{if(a.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){const i=this.startNode();return this.next(),this.finishNode(i,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(a,"TSTypeAliasDeclaration")}tsInNoContext(a){const i=this.state.context;this.state.context=[i[0]];try{return a()}finally{this.state.context=i}}tsInType(a){const i=this.state.inType;this.state.inType=!0;try{return a()}finally{this.state.inType=i}}tsInDisallowConditionalTypesContext(a){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return a()}finally{this.state.inDisallowConditionalTypesContext=i}}tsInAllowConditionalTypesContext(a){const i=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return a()}finally{this.state.inDisallowConditionalTypesContext=i}}tsEatThenParseType(a){if(this.match(a))return this.tsNextThenParseType()}tsExpectThenParseType(a){return this.tsInType(()=>(this.expect(a),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){const a=this.startNode();return a.id=this.match(133)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(a.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(a,"TSEnumMember")}tsParseEnumDeclaration(a,i={}){return i.const&&(a.const=!0),i.declare&&(a.declare=!0),this.expectContextual(126),a.id=this.parseIdentifier(),this.checkIdentifier(a.id,a.const?8971:8459),this.expect(5),a.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(a,"TSEnumDeclaration")}tsParseModuleBlock(){const a=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(a.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(a,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(a,i=!1){if(a.id=this.parseIdentifier(),i||this.checkIdentifier(a.id,1024),this.eat(16)){const d=this.startNode();this.tsParseModuleOrNamespaceDeclaration(d,!0),a.body=d}else this.scope.enter(256),this.prodParam.enter(0),a.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(a,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(a){return this.isContextual(112)?(a.global=!0,a.id=this.parseIdentifier()):this.match(133)?a.id=super.parseStringLiteral(this.state.value):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),a.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(a,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(a,i,d){a.isExport=d||!1,a.id=i||this.parseIdentifier(),this.checkIdentifier(a.id,4096),this.expect(29);const p=this.tsParseModuleReference();return a.importKind==="type"&&p.type!=="TSExternalModuleReference"&&this.raise(mr.ImportAliasHasImportType,p),a.moduleReference=p,this.semicolon(),this.finishNode(a,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){const a=this.startNode();return this.expectContextual(119),this.expect(10),this.match(133)||this.unexpected(),a.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(a,"TSExternalModuleReference")}tsLookAhead(a){const i=this.state.clone(),d=a();return this.state=i,d}tsTryParseAndCatch(a){const i=this.tryParse(d=>a()||d());if(!(i.aborted||!i.node))return i.error&&(this.state=i.failState),i.node}tsTryParse(a){const i=this.state.clone(),d=a();if(d!==void 0&&d!==!1)return d;this.state=i}tsTryParseDeclare(a){if(this.isLineTerminator())return;let i=this.state.type,d;return this.isContextual(100)&&(i=74,d="let"),this.tsInAmbientContext(()=>{switch(i){case 68:return a.declare=!0,super.parseFunctionStatement(a,!1,!1);case 80:return a.declare=!0,this.parseClass(a,!0,!1);case 126:return this.tsParseEnumDeclaration(a,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(a);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual("enum")?(a.declare=!0,this.parseVarStatement(a,d||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(a,{const:!0,declare:!0}));case 129:{const p=this.tsParseInterfaceDeclaration(a,{declare:!0});if(p)return p}default:if(wa(i))return this.tsParseDeclaration(a,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(a,i,d){switch(i.name){case"declare":{const p=this.tsTryParseDeclare(a);return p&&(p.declare=!0),p}case"global":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);const p=a;return p.global=!0,p.id=i,p.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(p,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(a,i.name,!1,d)}}tsParseDeclaration(a,i,d,p){switch(i){case"abstract":if(this.tsCheckLineTerminator(d)&&(this.match(80)||wa(this.state.type)))return this.tsParseAbstractDeclaration(a,p);break;case"module":if(this.tsCheckLineTerminator(d)){if(this.match(133))return this.tsParseAmbientExternalModuleDeclaration(a);if(wa(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(a)}break;case"namespace":if(this.tsCheckLineTerminator(d)&&wa(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(a);break;case"type":if(this.tsCheckLineTerminator(d)&&wa(this.state.type))return this.tsParseTypeAliasDeclaration(a);break}}tsCheckLineTerminator(a){return a?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(a){if(!this.match(47))return;const i=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;const d=this.tsTryParseAndCatch(()=>{const p=this.startNodeAt(a);return p.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(p),p.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),p});if(this.state.maybeInArrowParameters=i,!!d)return super.parseArrowExpression(d,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){const a=this.startNode();return a.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),a.params.length===0?this.raise(mr.EmptyTypeArguments,a):!this.state.inType&&this.curContext()===Ma.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(a,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return Kxt(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(a,i){const d=this.state.startLoc,p={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},p);const y=p.accessibility,b=p.override,v=p.readonly;!(a&4)&&(y||v||b)&&this.raise(mr.UnexpectedParameterModifier,d);const E=this.parseMaybeDefault();this.parseAssignableListItemTypes(E,a);const S=this.parseMaybeDefault(E.loc.start,E);if(y||v||b){const A=this.startNodeAt(d);return i.length&&(A.decorators=i),y&&(A.accessibility=y),v&&(A.readonly=v),b&&(A.override=b),S.type!=="Identifier"&&S.type!=="AssignmentPattern"&&this.raise(mr.UnsupportedParameterPropertyKind,A),A.parameter=S,this.finishNode(A,"TSParameterProperty")}return i.length&&(E.decorators=i),S}isSimpleParameter(a){return a.type==="TSParameterProperty"&&super.isSimpleParameter(a.parameter)||super.isSimpleParameter(a)}tsDisallowOptionalPattern(a){for(const i of a.params)i.type!=="Identifier"&&i.optional&&!this.state.isAmbientContext&&this.raise(mr.PatternIsOptional,i)}setArrowFunctionParameters(a,i,d){super.setArrowFunctionParameters(a,i,d),this.tsDisallowOptionalPattern(a)}parseFunctionBodyAndFinish(a,i,d=!1){this.match(14)&&(a.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));const p=i==="FunctionDeclaration"?"TSDeclareFunction":i==="ClassMethod"||i==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return p&&!this.match(5)&&this.isLineTerminator()?this.finishNode(a,p):p==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(mr.DeclareFunctionHasImplementation,a),a.declare)?super.parseFunctionBodyAndFinish(a,p,d):(this.tsDisallowOptionalPattern(a),super.parseFunctionBodyAndFinish(a,i,d))}registerFunctionStatementId(a){!a.body&&a.id?this.checkIdentifier(a.id,1024):super.registerFunctionStatementId(a)}tsCheckForInvalidTypeCasts(a){a.forEach(i=>{(i==null?void 0:i.type)==="TSTypeCastExpression"&&this.raise(mr.UnexpectedTypeAnnotation,i.typeAnnotation)})}toReferencedList(a,i){return this.tsCheckForInvalidTypeCasts(a),a}parseArrayLike(a,i,d,p){const y=super.parseArrayLike(a,i,d,p);return y.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(y.elements),y}parseSubscript(a,i,d,p){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();const b=this.startNodeAt(i);return b.expression=a,this.finishNode(b,"TSNonNullExpression")}let y=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(d)return p.stop=!0,a;p.optionalChainMember=y=!0,this.next()}if(this.match(47)||this.match(51)){let b;const v=this.tsTryParseAndCatch(()=>{if(!d&&this.atPossibleAsyncArrow(a)){const _=this.tsTryParseGenericAsyncArrowFunction(i);if(_)return _}const E=this.tsParseTypeArgumentsInExpression();if(!E)return;if(y&&!this.match(10)){b=this.state.curPosition();return}if(q2(this.state.type)){const _=super.parseTaggedTemplateExpression(a,i,p);return _.typeParameters=E,_}if(!d&&this.eat(10)){const _=this.startNodeAt(i);return _.callee=a,_.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(_.arguments),_.typeParameters=E,p.optionalChainMember&&(_.optional=y),this.finishCallExpression(_,p.optionalChainMember)}const S=this.state.type;if(S===48||S===52||S!==10&&Mk(S)&&!this.hasPrecedingLineBreak())return;const A=this.startNodeAt(i);return A.expression=a,A.typeParameters=E,this.finishNode(A,"TSInstantiationExpression")});if(b&&this.unexpected(b,10),v)return v.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(mr.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),v}return super.parseSubscript(a,i,d,p)}parseNewCallee(a){var i;super.parseNewCallee(a);const{callee:d}=a;d.type==="TSInstantiationExpression"&&!((i=d.extra)!=null&&i.parenthesized)&&(a.typeParameters=d.typeParameters,a.callee=d.expression)}parseExprOp(a,i,d){let p;if(y2(58)>d&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(p=this.isContextual(120)))){const y=this.startNodeAt(i);return y.expression=a,y.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(p&&this.raise(Xe.UnexpectedKeyword,this.state.startLoc,{keyword:"const"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(y,p?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(y,i,d)}return super.parseExprOp(a,i,d)}checkReservedWord(a,i,d,p){this.state.isAmbientContext||super.checkReservedWord(a,i,d,p)}checkImportReflection(a){super.checkImportReflection(a),a.module&&a.importKind!=="value"&&this.raise(mr.ImportReflectionHasImportType,a.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(a){if(super.isPotentialImportPhase(a))return!0;if(this.isContextual(130)){const i=this.lookaheadCharCode();return a?i===123||i===42:i!==61}return!a&&this.isContextual(87)}applyImportPhase(a,i,d,p){super.applyImportPhase(a,i,d,p),i?a.exportKind=d==="type"?"type":"value":a.importKind=d==="type"||d==="typeof"?d:"value"}parseImport(a){if(this.match(133))return a.importKind="value",super.parseImport(a);let i;if(wa(this.state.type)&&this.lookaheadCharCode()===61)return a.importKind="value",this.tsParseImportEqualsDeclaration(a);if(this.isContextual(130)){const d=this.parseMaybeImportPhase(a,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(a,d);i=super.parseImportSpecifiersAndAfter(a,d)}else i=super.parseImport(a);return i.importKind==="type"&&i.specifiers.length>1&&i.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(mr.TypeImportCannotSpecifyDefaultAndNamed,i),i}parseExport(a,i){if(this.match(83)){this.next();const d=a;let p=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?p=this.parseMaybeImportPhase(d,!1):d.importKind="value",this.tsParseImportEqualsDeclaration(d,p,!0)}else if(this.eat(29)){const d=a;return d.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(d,"TSExportAssignment")}else if(this.eatContextual(93)){const d=a;return this.expectContextual(128),d.id=this.parseIdentifier(),this.semicolon(),this.finishNode(d,"TSNamespaceExportDeclaration")}else return super.parseExport(a,i)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){const a=this.startNode();return this.next(),a.abstract=!0,this.parseClass(a,!0,!0)}if(this.match(129)){const a=this.tsParseInterfaceDeclaration(this.startNode());if(a)return a}return super.parseExportDefaultExpression()}parseVarStatement(a,i,d=!1){const{isAmbientContext:p}=this.state,y=super.parseVarStatement(a,i,d||p);if(!p)return y;for(const{id:b,init:v}of y.declarations)v&&(i!=="const"||b.typeAnnotation?this.raise(mr.InitializerNotAllowedInAmbientContext,v):V4t(v,this.hasPlugin("estree"))||this.raise(mr.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,v));return y}parseStatementContent(a,i){if(this.match(75)&&this.isLookaheadContextual("enum")){const d=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(d,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){const d=this.tsParseInterfaceDeclaration(this.startNode());if(d)return d}return super.parseStatementContent(a,i)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(a,i){return i.some(d=>Ohe(d)?a.accessibility===d:!!a[d])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(a,i,d){const p=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:p,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:mr.InvalidModifierOnTypeParameterPositions},i);const y=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(i,p)&&this.raise(mr.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(a,i)):this.parseClassMemberWithIsStatic(a,i,d,!!i.static)};i.declare?this.tsInAmbientContext(y):y()}parseClassMemberWithIsStatic(a,i,d,p){const y=this.tsTryParseIndexSignature(i);if(y){a.body.push(y),i.abstract&&this.raise(mr.IndexSignatureHasAbstract,i),i.accessibility&&this.raise(mr.IndexSignatureHasAccessibility,i,{modifier:i.accessibility}),i.declare&&this.raise(mr.IndexSignatureHasDeclare,i),i.override&&this.raise(mr.IndexSignatureHasOverride,i);return}!this.state.inAbstractClass&&i.abstract&&this.raise(mr.NonAbstractClassHasAbstractMethod,i),i.override&&(d.hadSuperClass||this.raise(mr.OverrideNotInSubClass,i)),super.parseClassMemberWithIsStatic(a,i,d,p)}parsePostMemberNameModifiers(a){this.eat(17)&&(a.optional=!0),a.readonly&&this.match(10)&&this.raise(mr.ClassMethodHasReadonly,a),a.declare&&this.match(10)&&this.raise(mr.ClassMethodHasDeclare,a)}parseExpressionStatement(a,i,d){return(i.type==="Identifier"?this.tsParseExpressionStatement(a,i,d):void 0)||super.parseExpressionStatement(a,i,d)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(a,i,d){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(a,i,d);const p=this.tryParse(()=>super.parseConditional(a,i));return p.node?(p.error&&(this.state=p.failState),p.node):(p.error&&super.setOptionalParametersError(d,p.error),a)}parseParenItem(a,i){const d=super.parseParenItem(a,i);if(this.eat(17)&&(d.optional=!0,this.resetEndLocation(a)),this.match(14)){const p=this.startNodeAt(i);return p.expression=a,p.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(p,"TSTypeCastExpression")}return a}parseExportDeclaration(a){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(a));const i=this.state.startLoc,d=this.eatContextual(125);if(d&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(mr.ExpectedAmbientAfterExportDeclare,this.state.startLoc);const y=wa(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(a);return y?((y.type==="TSInterfaceDeclaration"||y.type==="TSTypeAliasDeclaration"||d)&&(a.exportKind="type"),d&&(this.resetStartLocation(y,i),y.declare=!0),y):null}parseClassId(a,i,d,p){if((!i||d)&&this.isContextual(113))return;super.parseClassId(a,i,d,a.declare?1024:8331);const y=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);y&&(a.typeParameters=y)}parseClassPropertyAnnotation(a){a.optional||(this.eat(35)?a.definite=!0:this.eat(17)&&(a.optional=!0));const i=this.tsTryParseTypeAnnotation();i&&(a.typeAnnotation=i)}parseClassProperty(a){if(this.parseClassPropertyAnnotation(a),this.state.isAmbientContext&&!(a.readonly&&!a.typeAnnotation)&&this.match(29)&&this.raise(mr.DeclareClassFieldHasInitializer,this.state.startLoc),a.abstract&&this.match(29)){const{key:i}=a;this.raise(mr.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:i.type==="Identifier"&&!a.computed?i.name:`[${this.input.slice(i.start,i.end)}]`})}return super.parseClassProperty(a)}parseClassPrivateProperty(a){return a.abstract&&this.raise(mr.PrivateElementHasAbstract,a),a.accessibility&&this.raise(mr.PrivateElementHasAccessibility,a,{modifier:a.accessibility}),this.parseClassPropertyAnnotation(a),super.parseClassPrivateProperty(a)}parseClassAccessorProperty(a){return this.parseClassPropertyAnnotation(a),a.optional&&this.raise(mr.AccessorCannotBeOptional,a),super.parseClassAccessorProperty(a)}pushClassMethod(a,i,d,p,y,b){const v=this.tsTryParseTypeParameters(this.tsParseConstModifier);v&&y&&this.raise(mr.ConstructorHasTypeParameters,v);const{declare:E=!1,kind:S}=i;E&&(S==="get"||S==="set")&&this.raise(mr.DeclareAccessor,i,{kind:S}),v&&(i.typeParameters=v),super.pushClassMethod(a,i,d,p,y,b)}pushClassPrivateMethod(a,i,d,p){const y=this.tsTryParseTypeParameters(this.tsParseConstModifier);y&&(i.typeParameters=y),super.pushClassPrivateMethod(a,i,d,p)}declareClassPrivateMethodInScope(a,i){a.type!=="TSDeclareMethod"&&(a.type==="MethodDefinition"&&!hasOwnProperty.call(a.value,"body")||super.declareClassPrivateMethodInScope(a,i))}parseClassSuper(a){super.parseClassSuper(a),a.superClass&&(this.match(47)||this.match(51))&&(a.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(a.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(a,i,d,p,y,b,v){const E=this.tsTryParseTypeParameters(this.tsParseConstModifier);return E&&(a.typeParameters=E),super.parseObjPropValue(a,i,d,p,y,b,v)}parseFunctionParams(a,i){const d=this.tsTryParseTypeParameters(this.tsParseConstModifier);d&&(a.typeParameters=d),super.parseFunctionParams(a,i)}parseVarId(a,i){super.parseVarId(a,i),a.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(a.definite=!0);const d=this.tsTryParseTypeAnnotation();d&&(a.id.typeAnnotation=d,this.resetEndLocation(a.id))}parseAsyncArrowFromCallExpression(a,i){return this.match(14)&&(a.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(a,i)}parseMaybeAssign(a,i){var d,p,y,b,v;let E,S,A;if(this.hasPlugin("jsx")&&(this.match(142)||this.match(47))){if(E=this.state.clone(),S=this.tryParse(()=>super.parseMaybeAssign(a,i),E),!S.error)return S.node;const{context:q}=this.state,M=q[q.length-1];(M===Ma.j_oTag||M===Ma.j_expr)&&q.pop()}if(!((d=S)!=null&&d.error)&&!this.match(47))return super.parseMaybeAssign(a,i);(!E||E===this.state)&&(E=this.state.clone());let _;const C=this.tryParse(q=>{var M,W;_=this.tsParseTypeParameters(this.tsParseConstModifier);const z=super.parseMaybeAssign(a,i);return(z.type!=="ArrowFunctionExpression"||(M=z.extra)!=null&&M.parenthesized)&&q(),((W=_)==null?void 0:W.params.length)!==0&&this.resetStartLocationFromNode(z,_),z.typeParameters=_,z},E);if(!C.error&&!C.aborted)return _&&this.reportReservedArrowTypeParam(_),C.node;if(!S&&(jhe(!this.hasPlugin("jsx")),A=this.tryParse(()=>super.parseMaybeAssign(a,i),E),!A.error))return A.node;if((p=S)!=null&&p.node)return this.state=S.failState,S.node;if(C.node)return this.state=C.failState,_&&this.reportReservedArrowTypeParam(_),C.node;if((y=A)!=null&&y.node)return this.state=A.failState,A.node;throw((b=S)==null?void 0:b.error)||C.error||((v=A)==null?void 0:v.error)}reportReservedArrowTypeParam(a){var i;a.params.length===1&&!a.params[0].constraint&&!((i=a.extra)!=null&&i.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(mr.ReservedArrowTypeParam,a)}parseMaybeUnary(a,i){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(a,i)}parseArrow(a){if(this.match(14)){const i=this.tryParse(d=>{const p=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&d(),p});if(i.aborted)return;i.thrown||(i.error&&(this.state=i.failState),a.returnType=i.node)}return super.parseArrow(a)}parseAssignableListItemTypes(a,i){if(!(i&2))return a;this.eat(17)&&(a.optional=!0);const d=this.tsTryParseTypeAnnotation();return d&&(a.typeAnnotation=d),this.resetEndLocation(a),a}isAssignable(a,i){switch(a.type){case"TSTypeCastExpression":return this.isAssignable(a.expression,i);case"TSParameterProperty":return!0;default:return super.isAssignable(a,i)}}toAssignable(a,i=!1){switch(a.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(a,i);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":i?this.expressionScope.recordArrowParameterBindingError(mr.UnexpectedTypeCastInParameter,a):this.raise(mr.UnexpectedTypeCastInParameter,a),this.toAssignable(a.expression,i);break;case"AssignmentExpression":!i&&a.left.type==="TSTypeCastExpression"&&(a.left=this.typeCastToParameter(a.left));default:super.toAssignable(a,i)}}toAssignableParenthesizedExpression(a,i){switch(a.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(a.expression,i);break;default:super.toAssignable(a,i)}}checkToRestConversion(a,i){switch(a.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(a.expression,!1);break;default:super.checkToRestConversion(a,i)}}isValidLVal(a,i,d){switch(a){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(d!==64||!i)&&["expression",!0];default:return super.isValidLVal(a,i,d)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(a){if(this.match(47)||this.match(51)){const i=this.tsParseTypeArgumentsInExpression();if(this.match(10)){const d=super.parseMaybeDecoratorArguments(a);return d.typeParameters=i,d}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(a)}checkCommaAfterRest(a){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===a?(this.next(),!1):super.checkCommaAfterRest(a)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(a,i){const d=super.parseMaybeDefault(a,i);return d.type==="AssignmentPattern"&&d.typeAnnotation&&d.right.start<d.typeAnnotation.start&&this.raise(mr.TypeAnnotationAfterAssign,d.typeAnnotation),d}getTokenFromCode(a){if(this.state.inType){if(a===62){this.finishOp(48,1);return}if(a===60){this.finishOp(47,1);return}}super.getTokenFromCode(a)}reScan_lt_gt(){const{type:a}=this.state;a===47?(this.state.pos-=1,this.readToken_lt()):a===48&&(this.state.pos-=1,this.readToken_gt())}reScan_lt(){const{type:a}=this.state;return a===51?(this.state.pos-=2,this.finishOp(47,1),47):a}toAssignableList(a,i,d){for(let p=0;p<a.length;p++){const y=a[p];(y==null?void 0:y.type)==="TSTypeCastExpression"&&(a[p]=this.typeCastToParameter(y))}super.toAssignableList(a,i,d)}typeCastToParameter(a){return a.expression.typeAnnotation=a.typeAnnotation,this.resetEndLocation(a.expression,a.typeAnnotation.loc.end),a.expression}shouldParseArrow(a){return this.match(14)?a.every(i=>this.isAssignable(i,!0)):super.shouldParseArrow(a)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(a){if(this.match(47)||this.match(51)){const i=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());i&&(a.typeParameters=i)}return super.jsxParseOpeningElementAfterName(a)}getGetterSetterExpectedParamCount(a){const i=super.getGetterSetterExpectedParamCount(a),p=this.getObjectOrClassMethodParams(a)[0];return p&&this.isThisParam(p)?i+1:i}parseCatchClauseParam(){const a=super.parseCatchClauseParam(),i=this.tsTryParseTypeAnnotation();return i&&(a.typeAnnotation=i,this.resetEndLocation(a)),a}tsInAmbientContext(a){const{isAmbientContext:i,strict:d}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return a()}finally{this.state.isAmbientContext=i,this.state.strict=d}}parseClass(a,i,d){const p=this.state.inAbstractClass;this.state.inAbstractClass=!!a.abstract;try{return super.parseClass(a,i,d)}finally{this.state.inAbstractClass=p}}tsParseAbstractDeclaration(a,i){if(this.match(80))return a.abstract=!0,this.maybeTakeDecorators(i,this.parseClass(a,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return a.abstract=!0,this.raise(mr.NonClassMethodPropertyHasAbstractModifer,a),this.tsParseInterfaceDeclaration(a)}else this.unexpected(null,80)}parseMethod(a,i,d,p,y,b,v){const E=super.parseMethod(a,i,d,p,y,b,v);if(E.abstract&&(this.hasPlugin("estree")?!!E.value.body:!!E.body)){const{key:A}=E;this.raise(mr.AbstractMethodHasImplementation,E,{methodName:A.type==="Identifier"&&!E.computed?A.name:`[${this.input.slice(A.start,A.end)}]`})}return E}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(a,i,d,p){return!i&&p?(this.parseTypeOnlyImportExportSpecifier(a,!1,d),this.finishNode(a,"ExportSpecifier")):(a.exportKind="value",super.parseExportSpecifier(a,i,d,p))}parseImportSpecifier(a,i,d,p,y){return!i&&p?(this.parseTypeOnlyImportExportSpecifier(a,!0,d),this.finishNode(a,"ImportSpecifier")):(a.importKind="value",super.parseImportSpecifier(a,i,d,p,d?4098:4096))}parseTypeOnlyImportExportSpecifier(a,i,d){const p=i?"imported":"local",y=i?"local":"exported";let b=a[p],v,E=!1,S=!0;const A=b.loc.start;if(this.isContextual(93)){const C=this.parseIdentifier();if(this.isContextual(93)){const q=this.parseIdentifier();zi(this.state.type)?(E=!0,b=C,v=i?this.parseIdentifier():this.parseModuleExportName(),S=!1):(v=q,S=!1)}else zi(this.state.type)?(S=!1,v=i?this.parseIdentifier():this.parseModuleExportName()):(E=!0,b=C)}else zi(this.state.type)&&(E=!0,i?(b=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(b.name,b.loc.start,!0,!0)):b=this.parseModuleExportName());E&&d&&this.raise(i?mr.TypeModifierIsUsedInTypeImports:mr.TypeModifierIsUsedInTypeExports,A),a[p]=b,a[y]=v;const _=i?"importKind":"exportKind";a[_]=E?"type":"value",S&&this.eatContextual(93)&&(a[y]=i?this.parseIdentifier():this.parseModuleExportName()),a[y]||(a[y]=Tl(a[p])),i&&this.checkIdentifier(a[y],E?4098:4096)}};function U4t(n){if(n.type!=="MemberExpression")return!1;const{computed:t,property:a}=n;return t&&a.type!=="StringLiteral"&&(a.type!=="TemplateLiteral"||a.expressions.length>0)?!1:b1e(n.object)}function V4t(n,t){var a;const{type:i}=n;if((a=n.extra)!=null&&a.parenthesized)return!1;if(t){if(i==="Literal"){const{value:d}=n;if(typeof d=="string"||typeof d=="boolean")return!0}}else if(i==="StringLiteral"||i==="BooleanLiteral")return!0;return!!(v1e(n,t)||W4t(n,t)||i==="TemplateLiteral"&&n.expressions.length===0||U4t(n))}function v1e(n,t){return t?n.type==="Literal"&&(typeof n.value=="number"||"bigint"in n):n.type==="NumericLiteral"||n.type==="BigIntLiteral"}function W4t(n,t){if(n.type==="UnaryExpression"){const{operator:a,argument:i}=n;if(a==="-"&&v1e(i,t))return!0}return!1}function b1e(n){return n.type==="Identifier"?!0:n.type!=="MemberExpression"||n.computed?!1:b1e(n.object)}const _he=yl`placeholders`({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."});var G4t=n=>class extends n{parsePlaceholder(a){if(this.match(144)){const i=this.startNode();return this.next(),this.assertNoSpace(),i.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(144),this.finishPlaceholder(i,a)}}finishPlaceholder(a,i){let d=a;return(!d.expectedNode||!d.type)&&(d=this.finishNode(d,"Placeholder")),d.expectedNode=i,d}getTokenFromCode(a){a===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(144,2):super.getTokenFromCode(a)}parseExprAtom(a){return this.parsePlaceholder("Expression")||super.parseExprAtom(a)}parseIdentifier(a){return this.parsePlaceholder("Identifier")||super.parseIdentifier(a)}checkReservedWord(a,i,d,p){a!==void 0&&super.checkReservedWord(a,i,d,p)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom()}isValidLVal(a,i,d){return a==="Placeholder"||super.isValidLVal(a,i,d)}toAssignable(a,i){a&&a.type==="Placeholder"&&a.expectedNode==="Expression"?a.expectedNode="Pattern":super.toAssignable(a,i)}chStartsBindingIdentifier(a,i){return!!(super.chStartsBindingIdentifier(a,i)||this.lookahead().type===144)}verifyBreakContinue(a,i){a.label&&a.label.type==="Placeholder"||super.verifyBreakContinue(a,i)}parseExpressionStatement(a,i){var d;if(i.type!=="Placeholder"||(d=i.extra)!=null&&d.parenthesized)return super.parseExpressionStatement(a,i);if(this.match(14)){const y=a;return y.label=this.finishPlaceholder(i,"Identifier"),this.next(),y.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(y,"LabeledStatement")}this.semicolon();const p=a;return p.name=i.name,this.finishPlaceholder(p,"Statement")}parseBlock(a,i,d){return this.parsePlaceholder("BlockStatement")||super.parseBlock(a,i,d)}parseFunctionId(a){return this.parsePlaceholder("Identifier")||super.parseFunctionId(a)}parseClass(a,i,d){const p=i?"ClassDeclaration":"ClassExpression";this.next();const y=this.state.strict,b=this.parsePlaceholder("Identifier");if(b)if(this.match(81)||this.match(144)||this.match(5))a.id=b;else{if(d||!i)return a.id=null,a.body=this.finishPlaceholder(b,"ClassBody"),this.finishNode(a,p);throw this.raise(_he.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(a,i,d);return super.parseClassSuper(a),a.body=this.parsePlaceholder("ClassBody")||super.parseClassBody(!!a.superClass,y),this.finishNode(a,p)}parseExport(a,i){const d=this.parsePlaceholder("Identifier");if(!d)return super.parseExport(a,i);const p=a;if(!this.isContextual(98)&&!this.match(12))return p.specifiers=[],p.source=null,p.declaration=this.finishPlaceholder(d,"Declaration"),this.finishNode(p,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");const y=this.startNode();return y.exported=d,p.specifiers=[this.finishNode(y,"ExportDefaultSpecifier")],super.parseExport(p,i)}isExportDefaultSpecifier(){if(this.match(65)){const a=this.nextTokenStart();if(this.isUnparsedContextual(a,"from")&&this.input.startsWith(Cu(144),this.nextTokenStartSince(a+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(a,i){var d;return(d=a.specifiers)!=null&&d.length?!0:super.maybeParseExportDefaultSpecifier(a,i)}checkExport(a){const{specifiers:i}=a;i!=null&&i.length&&(a.specifiers=i.filter(d=>d.exported.type==="Placeholder")),super.checkExport(a),a.specifiers=i}parseImport(a){const i=this.parsePlaceholder("Identifier");if(!i)return super.parseImport(a);if(a.specifiers=[],!this.isContextual(98)&&!this.match(12))return a.source=this.finishPlaceholder(i,"StringLiteral"),this.semicolon(),this.finishNode(a,"ImportDeclaration");const d=this.startNodeAtNode(i);return d.local=i,a.specifiers.push(this.finishNode(d,"ImportDefaultSpecifier")),this.eat(12)&&(this.maybeParseStarImportSpecifier(a)||this.parseNamedImportSpecifiers(a)),this.expectContextual(98),a.source=this.parseImportSource(),this.semicolon(),this.finishNode(a,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource()}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(_he.UnexpectedSpace,this.state.lastTokEndLoc)}},K4t=n=>class extends n{parseV8Intrinsic(){if(this.match(54)){const a=this.state.startLoc,i=this.startNode();if(this.next(),wa(this.state.type)){const d=this.parseIdentifierName(),p=this.createIdentifier(i,d);if(p.type="V8IntrinsicIdentifier",this.match(10))return p}this.unexpected(a)}}parseExprAtom(a){return this.parseV8Intrinsic()||super.parseExprAtom(a)}};const Nhe=["minimal","fsharp","hack","smart"],khe=["^^","@@","^","%","#"];function H4t(n){if(n.has("decorators")){if(n.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");const a=n.get("decorators").decoratorsBeforeExport;if(a!=null&&typeof a!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");const i=n.get("decorators").allowCallParenthesized;if(i!=null&&typeof i!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(n.has("flow")&&n.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(n.has("placeholders")&&n.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(n.has("pipelineOperator")){var t;const a=n.get("pipelineOperator").proposal;if(!Nhe.includes(a)){const d=Nhe.map(p=>`"${p}"`).join(", ");throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${d}.`)}const i=((t=n.get("recordAndTuple"))==null?void 0:t.syntaxType)==="hash";if(a==="hack"){if(n.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(n.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");const d=n.get("pipelineOperator").topicToken;if(!khe.includes(d)){const p=khe.map(y=>`"${y}"`).join(", ");throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${p}.`)}if(d==="#"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}else if(a==="smart"&&i)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple",n.get("recordAndTuple")])}\`.`)}if(n.has("moduleAttributes")){if(n.has("importAttributes")||n.has("importAssertions"))throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");if(n.get("moduleAttributes").version!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(n.has("importAttributes")&&n.has("importAssertions"))throw new Error("Cannot combine importAssertions and importAttributes plugins.");if(n.has("recordAndTuple")){const a=n.get("recordAndTuple").syntaxType;if(a!=null){const i=["hash","bar"];if(!i.includes(a))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+i.map(d=>`'${d}'`).join(", "))}}if(n.has("asyncDoExpressions")&&!n.has("doExpressions")){const a=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw a.missingPlugins="doExpressions",a}if(n.has("optionalChainingAssign")&&n.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}const x1e={estree:Dxt,jsx:k4t,flow:_4t,typescript:q4t,v8intrinsic:K4t,placeholders:G4t},z4t=Object.keys(x1e),HN={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0};function X4t(n){if(n==null)return Object.assign({},HN);if(n.annexB!=null&&n.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");const t={};for(const i of Object.keys(HN)){var a;t[i]=(a=n[i])!=null?a:HN[i]}return t}class J4t extends M4t{checkProto(t,a,i,d){if(t.type==="SpreadElement"||this.isObjectMethod(t)||t.computed||t.shorthand)return;const p=t.key;if((p.type==="Identifier"?p.name:p.value)==="__proto__"){if(a){this.raise(Xe.RecordNoProto,p);return}i.used&&(d?d.doubleProtoLoc===null&&(d.doubleProtoLoc=p.loc.start):this.raise(Xe.DuplicateProto,p)),i.used=!0}}shouldExitDescending(t,a){return t.type==="ArrowFunctionExpression"&&t.start===a}getExpression(){this.enterInitialScopes(),this.nextToken();const t=this.parseExpression();return this.match(139)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,a){return t?this.disallowInAnd(()=>this.parseExpressionBase(a)):this.allowInAnd(()=>this.parseExpressionBase(a))}parseExpressionBase(t){const a=this.state.startLoc,i=this.parseMaybeAssign(t);if(this.match(12)){const d=this.startNodeAt(a);for(d.expressions=[i];this.eat(12);)d.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(d.expressions),this.finishNode(d,"SequenceExpression")}return i}parseMaybeAssignDisallowIn(t,a){return this.disallowInAnd(()=>this.parseMaybeAssign(t,a))}parseMaybeAssignAllowIn(t,a){return this.allowInAnd(()=>this.parseMaybeAssign(t,a))}setOptionalParametersError(t,a){var i;t.optionalParametersLoc=(i=a==null?void 0:a.loc)!=null?i:this.state.startLoc}parseMaybeAssign(t,a){const i=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let b=this.parseYield();return a&&(b=a.call(this,b,i)),b}let d;t?d=!1:(t=new v2,d=!0);const{type:p}=this.state;(p===10||wa(p))&&(this.state.potentialArrowAt=this.state.start);let y=this.parseMaybeConditional(t);if(a&&(y=a.call(this,y,i)),$xt(this.state.type)){const b=this.startNodeAt(i),v=this.state.value;if(b.operator=v,this.match(29)){this.toAssignable(y,!0),b.left=y;const E=i.index;t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=E&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=E&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=E&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)}else b.left=y;return this.next(),b.right=this.parseMaybeAssign(),this.checkLVal(y,this.finishNode(b,"AssignmentExpression")),b}else d&&this.checkExpressionErrors(t,!0);return y}parseMaybeConditional(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseExprOps(t);return this.shouldExitDescending(d,i)?d:this.parseConditional(d,a,t)}parseConditional(t,a,i){if(this.eat(17)){const d=this.startNodeAt(a);return d.test=t,d.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),d.alternate=this.parseMaybeAssign(),this.finishNode(d,"ConditionalExpression")}return t}parseMaybeUnaryOrPrivate(t){return this.match(138)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(d,i)?d:this.parseExprOp(d,a,-1)}parseExprOp(t,a,i){if(this.isPrivateName(t)){const p=this.getPrivateNameSV(t);(i>=y2(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(Xe.PrivateInExpectedIn,t,{identifierName:p}),this.classScope.usePrivateName(p,t.loc.start)}const d=this.state.type;if(Uxt(d)&&(this.prodParam.hasIn||!this.match(58))){let p=y2(d);if(p>i){if(d===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,a)}const y=this.startNodeAt(a);y.left=t,y.operator=this.state.value;const b=d===41||d===42,v=d===40;if(v&&(p=y2(42)),this.next(),d===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(Xe.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);y.right=this.parseExprOpRightExpr(d,p);const E=this.finishNode(y,b||v?"LogicalExpression":"BinaryExpression"),S=this.state.type;if(v&&(S===41||S===42)||b&&S===40)throw this.raise(Xe.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(E,a,i)}}return t}parseExprOpRightExpr(t,a){const i=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"smart":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(Xe.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,a),i)});case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(a))}default:return this.parseExprOpBaseRightExpr(t,a)}}parseExprOpBaseRightExpr(t,a){const i=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),i,Hxt(t)?a-1:a)}parseHackPipeBody(){var t;const{startLoc:a}=this.state,i=this.parseMaybeAssign();return jxt.has(i.type)&&!((t=i.extra)!=null&&t.parenthesized)&&this.raise(Xe.PipeUnparenthesizedBody,a,{type:i.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(Xe.PipeTopicUnused,a),i}checkExponentialAfterUnary(t){this.match(57)&&this.raise(Xe.UnexpectedTokenUnaryExponentiation,t.argument)}parseMaybeUnary(t,a){const i=this.state.startLoc,d=this.isContextual(96);if(d&&this.recordAwaitIfAllowed()){this.next();const v=this.parseAwait(i);return a||this.checkExponentialAfterUnary(v),v}const p=this.match(34),y=this.startNode();if(Wxt(this.state.type)){y.operator=this.state.value,y.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");const v=this.match(89);if(this.next(),y.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&v){const E=y.argument;E.type==="Identifier"?this.raise(Xe.StrictDelete,y):this.hasPropertyAsPrivateName(E)&&this.raise(Xe.DeletePrivateField,y)}if(!p)return a||this.checkExponentialAfterUnary(y),this.finishNode(y,"UnaryExpression")}const b=this.parseUpdate(y,p,t);if(d){const{type:v}=this.state;if((this.hasPlugin("v8intrinsic")?Mk(v):Mk(v)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(Xe.AwaitNotInAsyncContext,i),this.parseAwait(i)}return b}parseUpdate(t,a,i){if(a){const y=t;return this.checkLVal(y.argument,this.finishNode(y,"UpdateExpression")),t}const d=this.state.startLoc;let p=this.parseExprSubscripts(i);if(this.checkExpressionErrors(i,!1))return p;for(;Vxt(this.state.type)&&!this.canInsertSemicolon();){const y=this.startNodeAt(d);y.operator=this.state.value,y.prefix=!1,y.argument=p,this.next(),this.checkLVal(p,p=this.finishNode(y,"UpdateExpression"))}return p}parseExprSubscripts(t){const a=this.state.startLoc,i=this.state.potentialArrowAt,d=this.parseExprAtom(t);return this.shouldExitDescending(d,i)?d:this.parseSubscripts(d,a)}parseSubscripts(t,a,i){const d={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,a,i,d),d.maybeAsyncArrow=!1;while(!d.stop);return t}parseSubscript(t,a,i,d){const{type:p}=this.state;if(!i&&p===15)return this.parseBind(t,a,i,d);if(q2(p))return this.parseTaggedTemplateExpression(t,a,d);let y=!1;if(p===18){if(i&&(this.raise(Xe.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return d.stop=!0,t;d.optionalChainMember=y=!0,this.next()}if(!i&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,a,d,y);{const b=this.eat(0);return b||y||this.eat(16)?this.parseMember(t,a,d,b,y):(d.stop=!0,t)}}parseMember(t,a,i,d,p){const y=this.startNodeAt(a);return y.object=t,y.computed=d,d?(y.property=this.parseExpression(),this.expect(3)):this.match(138)?(t.type==="Super"&&this.raise(Xe.SuperPrivateField,a),this.classScope.usePrivateName(this.state.value,this.state.startLoc),y.property=this.parsePrivateName()):y.property=this.parseIdentifier(!0),i.optionalChainMember?(y.optional=p,this.finishNode(y,"OptionalMemberExpression")):this.finishNode(y,"MemberExpression")}parseBind(t,a,i,d){const p=this.startNodeAt(a);return p.object=t,this.next(),p.callee=this.parseNoCallExpr(),d.stop=!0,this.parseSubscripts(this.finishNode(p,"BindExpression"),a,i)}parseCoverCallAndAsyncArrowHead(t,a,i,d){const p=this.state.maybeInArrowParameters;let y=null;this.state.maybeInArrowParameters=!0,this.next();const b=this.startNodeAt(a);b.callee=t;const{maybeAsyncArrow:v,optionalChainMember:E}=i;v&&(this.expressionScope.enter(R4t()),y=new v2),E&&(b.optional=d),d?b.arguments=this.parseCallExpressionArguments(11):b.arguments=this.parseCallExpressionArguments(11,t.type==="Import",t.type!=="Super",b,y);let S=this.finishCallExpression(b,E);return v&&this.shouldParseAsyncArrow()&&!d?(i.stop=!0,this.checkDestructuringPrivate(y),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),S=this.parseAsyncArrowFromCallExpression(this.startNodeAt(a),S)):(v&&(this.checkExpressionErrors(y,!0),this.expressionScope.exit()),this.toReferencedArguments(S)),this.state.maybeInArrowParameters=p,S}toReferencedArguments(t,a){this.toReferencedListDeep(t.arguments,a)}parseTaggedTemplateExpression(t,a,i){const d=this.startNodeAt(a);return d.tag=t,d.quasi=this.parseTemplate(!0),i.optionalChainMember&&this.raise(Xe.OptionalChainingNoTemplate,a),this.finishNode(d,"TaggedTemplateExpression")}atPossibleAsyncArrow(t){return t.type==="Identifier"&&t.name==="async"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}expectImportAttributesPlugin(){this.hasPlugin("importAssertions")||this.expectPlugin("importAttributes")}finishCallExpression(t,a){if(t.callee.type==="Import")if(t.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectImportAttributesPlugin()),t.arguments.length===0||t.arguments.length>2)this.raise(Xe.ImportCallArity,t,{maxArgumentCount:this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(const i of t.arguments)i.type==="SpreadElement"&&this.raise(Xe.ImportCallSpreadArgument,i);return this.finishNode(t,a?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(t,a,i,d,p){const y=[];let b=!0;const v=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(b)b=!1;else if(this.expect(12),this.match(t)){a&&!this.hasPlugin("importAttributes")&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(Xe.ImportCallArgumentTrailingComma,this.state.lastTokStartLoc),d&&this.addTrailingCommaExtraToNode(d),this.next();break}y.push(this.parseExprListItem(!1,p,i))}return this.state.inFSharpPipelineDirectBody=v,y}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,a){var i;return this.resetPreviousNodeTrailingComments(a),this.expect(19),this.parseArrowExpression(t,a.arguments,!0,(i=a.extra)==null?void 0:i.trailingCommaLoc),a.innerComments&&Ry(t,a.innerComments),a.callee.trailingComments&&Ry(t,a.callee.trailingComments),t}parseNoCallExpr(){const t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,!0)}parseExprAtom(t){let a,i=null;const{type:d}=this.state;switch(d){case 79:return this.parseSuper();case 83:return a=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(a):this.match(10)?this.options.createImportExpressions?this.parseImportCall(a):this.finishNode(a,"Import"):(this.raise(Xe.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(a,"Import"));case 78:return a=this.startNode(),this.next(),this.finishNode(a,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 134:return this.parseNumericLiteral(this.state.value);case 135:return this.parseBigIntLiteral(this.state.value);case 136:return this.parseDecimalLiteral(this.state.value);case 133:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{const p=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(p)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:i=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(i,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{a=this.startNode(),this.next(),a.object=null;const p=a.callee=this.parseNoCallExpr();if(p.type==="MemberExpression")return this.finishNode(a,"BindExpression");throw this.raise(Xe.UnsupportedBind,p)}case 138:return this.raise(Xe.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{const p=this.getPluginOption("pipelineOperator","proposal");if(p)return this.parseTopicReference(p);this.unexpected();break}case 47:{const p=this.input.codePointAt(this.nextTokenStart());hl(p)||p===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(wa(d)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();const p=this.state.potentialArrowAt===this.state.start,y=this.state.containsEsc,b=this.parseIdentifier();if(!y&&b.name==="async"&&!this.canInsertSemicolon()){const{type:v}=this.state;if(v===68)return this.resetPreviousNodeTrailingComments(b),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(b));if(wa(v))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(b)):b;if(v===90)return this.resetPreviousNodeTrailingComments(b),this.parseDo(this.startNodeAtNode(b),!0)}return p&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(b),[b],!1)):b}else this.unexpected()}}parseTopicReferenceThenEqualsSign(t,a){const i=this.getPluginOption("pipelineOperator","proposal");if(i)return this.state.type=t,this.state.value=a,this.state.pos--,this.state.end--,this.state.endLoc=ws(this.state.endLoc,-1),this.parseTopicReference(i);this.unexpected()}parseTopicReference(t){const a=this.startNode(),i=this.state.startLoc,d=this.state.type;return this.next(),this.finishTopicReference(a,i,t,d)}finishTopicReference(t,a,i,d){if(this.testTopicReferenceConfiguration(i,a,d)){const p=i==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(i==="smart"?Xe.PrimaryTopicNotAllowed:Xe.PipeTopicUnbound,a),this.registerTopicReference(),this.finishNode(t,p)}else throw this.raise(Xe.PipeTopicUnconfiguredToken,a,{token:Cu(d)})}testTopicReferenceConfiguration(t,a,i){switch(t){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Cu(i)}]);case"smart":return i===27;default:throw this.raise(Xe.PipeTopicRequiresHackPipes,a)}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(g2(!0,this.prodParam.hasYield));const a=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(Xe.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(t,a,!0)}parseDo(t,a){this.expectPlugin("doExpressions"),a&&this.expectPlugin("asyncDoExpressions"),t.async=a,this.next();const i=this.state.labels;return this.state.labels=[],a?(this.prodParam.enter(2),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=i,this.finishNode(t,"DoExpression")}parseSuper(){const t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(Xe.SuperNotAllowed,t):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(Xe.UnexpectedSuper,t),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(Xe.UnsupportedSuper,t),this.finishNode(t,"Super")}parsePrivateName(){const t=this.startNode(),a=this.startNodeAt(ws(this.state.startLoc,1)),i=this.state.value;return this.next(),t.id=this.createIdentifier(a,i),this.finishNode(t,"PrivateName")}parseFunctionOrFunctionSent(){const t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){const a=this.createIdentifier(this.startNodeAtNode(t),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(t,a,"sent")}return this.parseFunction(t)}parseMetaProperty(t,a,i){t.meta=a;const d=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==i||d)&&this.raise(Xe.UnsupportedMetaProperty,t.property,{target:a.name,onlyValidPropertyName:i}),this.finishNode(t,"MetaProperty")}parseImportMetaProperty(t){const a=this.createIdentifier(this.startNodeAtNode(t),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(Xe.ImportMetaOutsideModule,a),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){const i=this.isContextual(105);if(i||this.unexpected(),this.expectPlugin(i?"sourcePhaseImports":"deferredImportEvaluation"),!this.options.createImportExpressions)throw this.raise(Xe.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),t.phase=i?"source":"defer",this.parseImportCall(t)}return this.parseMetaProperty(t,a,"meta")}parseLiteralAtNode(t,a,i){return this.addExtra(i,"rawValue",t),this.addExtra(i,"raw",this.input.slice(i.start,this.state.end)),i.value=t,this.next(),this.finishNode(i,a)}parseLiteral(t,a){const i=this.startNode();return this.parseLiteralAtNode(t,a,i)}parseStringLiteral(t){return this.parseLiteral(t,"StringLiteral")}parseNumericLiteral(t){return this.parseLiteral(t,"NumericLiteral")}parseBigIntLiteral(t){return this.parseLiteral(t,"BigIntLiteral")}parseDecimalLiteral(t){return this.parseLiteral(t,"DecimalLiteral")}parseRegExpLiteral(t){const a=this.startNode();return this.addExtra(a,"raw",this.input.slice(a.start,this.state.end)),a.pattern=t.pattern,a.flags=t.flags,this.next(),this.finishNode(a,"RegExpLiteral")}parseBooleanLiteral(t){const a=this.startNode();return a.value=t,this.next(),this.finishNode(a,"BooleanLiteral")}parseNullLiteral(){const t=this.startNode();return this.next(),this.finishNode(t,"NullLiteral")}parseParenAndDistinguishExpression(t){const a=this.state.startLoc;let i;this.next(),this.expressionScope.enter(x4t());const d=this.state.maybeInArrowParameters,p=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;const y=this.state.startLoc,b=[],v=new v2;let E=!0,S,A;for(;!this.match(11);){if(E)E=!1;else if(this.expect(12,v.optionalParametersLoc===null?null:v.optionalParametersLoc),this.match(11)){A=this.state.startLoc;break}if(this.match(21)){const q=this.state.startLoc;if(S=this.state.startLoc,b.push(this.parseParenItem(this.parseRestBinding(),q)),!this.checkCommaAfterRest(41))break}else b.push(this.parseMaybeAssignAllowIn(v,this.parseParenItem))}const _=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=d,this.state.inFSharpPipelineDirectBody=p;let C=this.startNodeAt(a);return t&&this.shouldParseArrow(b)&&(C=this.parseArrow(C))?(this.checkDestructuringPrivate(v),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(C,b,!1),C):(this.expressionScope.exit(),b.length||this.unexpected(this.state.lastTokStartLoc),A&&this.unexpected(A),S&&this.unexpected(S),this.checkExpressionErrors(v,!0),this.toReferencedListDeep(b,!0),b.length>1?(i=this.startNodeAt(y),i.expressions=b,this.finishNode(i,"SequenceExpression"),this.resetEndLocation(i,_)):i=b[0],this.wrapParenthesis(a,i))}wrapParenthesis(t,a){if(!this.options.createParenthesizedExpressions)return this.addExtra(a,"parenthesized",!0),this.addExtra(a,"parenStart",t.index),this.takeSurroundingComments(a,t.index,this.state.lastTokEndLoc.index),a;const i=this.startNodeAt(t);return i.expression=a,this.finishNode(i,"ParenthesizedExpression")}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,a){return t}parseNewOrNewTarget(){const t=this.startNode();if(this.next(),this.match(16)){const a=this.createIdentifier(this.startNodeAtNode(t),"new");this.next();const i=this.parseMetaProperty(t,a,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!this.options.allowNewTargetOutsideFunction&&this.raise(Xe.UnexpectedNewTarget,i),i}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){const a=this.parseExprList(11);this.toReferencedList(a),t.arguments=a}else t.arguments=[];return this.finishNode(t,"NewExpression")}parseNewCallee(t){const a=this.match(83),i=this.parseNoCallExpr();t.callee=i,a&&(i.type==="Import"||i.type==="ImportExpression")&&this.raise(Xe.ImportCallNotNewExpression,i)}parseTemplateElement(t){const{start:a,startLoc:i,end:d,value:p}=this.state,y=a+1,b=this.startNodeAt(ws(i,1));p===null&&(t||this.raise(Xe.InvalidEscapeSequenceTemplate,ws(this.state.firstInvalidTemplateEscapePos,1)));const v=this.match(24),E=v?-1:-2,S=d+E;b.value={raw:this.input.slice(y,S).replace(/\r\n?/g,` +`),cooked:p===null?null:p.slice(1,E)},b.tail=v,this.next();const A=this.finishNode(b,"TemplateElement");return this.resetEndLocation(A,ws(this.state.lastTokEndLoc,E)),A}parseTemplate(t){const a=this.startNode();let i=this.parseTemplateElement(t);const d=[i],p=[];for(;!i.tail;)p.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),d.push(i=this.parseTemplateElement(t));return a.expressions=p,a.quasis=d,this.finishNode(a,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,a,i,d){i&&this.expectPlugin("recordAndTuple");const p=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const y=Object.create(null);let b=!0;const v=this.startNode();for(v.properties=[],this.next();!this.match(t);){if(b)b=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(v);break}let S;a?S=this.parseBindingProperty():(S=this.parsePropertyDefinition(d),this.checkProto(S,i,y,d)),i&&!this.isObjectProperty(S)&&S.type!=="SpreadElement"&&this.raise(Xe.InvalidRecordProperty,S),S.shorthand&&this.addExtra(S,"shorthand",!0),v.properties.push(S)}this.next(),this.state.inFSharpPipelineDirectBody=p;let E="ObjectExpression";return a?E="ObjectPattern":i&&(E="RecordExpression"),this.finishNode(v,E)}addTrailingCommaExtraToNode(t){this.addExtra(t,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(t,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let a=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(Xe.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)a.push(this.parseDecorator());const i=this.startNode();let d=!1,p=!1,y;if(this.match(21))return a.length&&this.unexpected(),this.parseSpread();a.length&&(i.decorators=a,a=[]),i.method=!1,t&&(y=this.state.startLoc);let b=this.eat(55);this.parsePropertyNamePrefixOperator(i);const v=this.state.containsEsc;if(this.parsePropertyName(i,t),!b&&!v&&this.maybeAsyncOrAccessorProp(i)){const{key:E}=i,S=E.name;S==="async"&&!this.hasPrecedingLineBreak()&&(d=!0,this.resetPreviousNodeTrailingComments(E),b=this.eat(55),this.parsePropertyName(i)),(S==="get"||S==="set")&&(p=!0,this.resetPreviousNodeTrailingComments(E),i.kind=S,this.match(55)&&(b=!0,this.raise(Xe.AccessorIsGenerator,this.state.curPosition(),{kind:S}),this.next()),this.parsePropertyName(i))}return this.parseObjPropValue(i,y,b,d,!1,p,t)}getGetterSetterExpectedParamCount(t){return t.kind==="get"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var a;const i=this.getGetterSetterExpectedParamCount(t),d=this.getObjectOrClassMethodParams(t);d.length!==i&&this.raise(t.kind==="get"?Xe.BadGetterArity:Xe.BadSetterArity,t),t.kind==="set"&&((a=d[d.length-1])==null?void 0:a.type)==="RestElement"&&this.raise(Xe.BadSetterRestParameter,t)}parseObjectMethod(t,a,i,d,p){if(p){const y=this.parseMethod(t,a,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(y),y}if(i||a||this.match(10))return d&&this.unexpected(),t.kind="method",t.method=!0,this.parseMethod(t,a,i,!1,!1,"ObjectMethod")}parseObjectProperty(t,a,i,d){if(t.shorthand=!1,this.eat(14))return t.value=i?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(d),this.finishNode(t,"ObjectProperty");if(!t.computed&&t.key.type==="Identifier"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),i)t.value=this.parseMaybeDefault(a,Tl(t.key));else if(this.match(29)){const p=this.state.startLoc;d!=null?d.shorthandAssignLoc===null&&(d.shorthandAssignLoc=p):this.raise(Xe.InvalidCoverInitializedName,p),t.value=this.parseMaybeDefault(a,Tl(t.key))}else t.value=Tl(t.key);return t.shorthand=!0,this.finishNode(t,"ObjectProperty")}}parseObjPropValue(t,a,i,d,p,y,b){const v=this.parseObjectMethod(t,i,d,p,y)||this.parseObjectProperty(t,a,p,b);return v||this.unexpected(),v}parsePropertyName(t,a){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{const{type:i,value:d}=this.state;let p;if(zi(i))p=this.parseIdentifier(!0);else switch(i){case 134:p=this.parseNumericLiteral(d);break;case 133:p=this.parseStringLiteral(d);break;case 135:p=this.parseBigIntLiteral(d);break;case 136:p=this.parseDecimalLiteral(d);break;case 138:{const y=this.state.startLoc;a!=null?a.privateKeyLoc===null&&(a.privateKeyLoc=y):this.raise(Xe.UnexpectedPrivateField,y),p=this.parsePrivateName();break}default:this.unexpected()}t.key=p,i!==138&&(t.computed=!1)}}initFunction(t,a){t.id=null,t.generator=!1,t.async=a}parseMethod(t,a,i,d,p,y,b=!1){this.initFunction(t,i),t.generator=a,this.scope.enter(18|(b?64:0)|(p?32:0)),this.prodParam.enter(g2(i,t.generator)),this.parseFunctionParams(t,d);const v=this.parseFunctionBodyAndFinish(t,y,!0);return this.prodParam.exit(),this.scope.exit(),v}parseArrayLike(t,a,i,d){i&&this.expectPlugin("recordAndTuple");const p=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const y=this.startNode();return this.next(),y.elements=this.parseExprList(t,!i,d,y),this.state.inFSharpPipelineDirectBody=p,this.finishNode(y,i?"TupleExpression":"ArrayExpression")}parseArrowExpression(t,a,i,d){this.scope.enter(6);let p=g2(i,!1);!this.match(5)&&this.prodParam.hasIn&&(p|=8),this.prodParam.enter(p),this.initFunction(t,i);const y=this.state.maybeInArrowParameters;return a&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,a,d)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=y,this.finishNode(t,"ArrowFunctionExpression")}setArrowFunctionParameters(t,a,i){this.toAssignableList(a,i,!1),t.params=a}parseFunctionBodyAndFinish(t,a,i=!1){return this.parseFunctionBody(t,!1,i),this.finishNode(t,a)}parseFunctionBody(t,a,i=!1){const d=a&&!this.match(5);if(this.expressionScope.enter(y1e()),d)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,a,!1);else{const p=this.state.strict,y=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),t.body=this.parseBlock(!0,!1,b=>{const v=!this.isSimpleParamList(t.params);b&&v&&this.raise(Xe.IllegalLanguageModeDirective,(t.kind==="method"||t.kind==="constructor")&&t.key?t.key.loc.end:t);const E=!p&&this.state.strict;this.checkParams(t,!this.state.strict&&!a&&!i&&!v,a,E),this.state.strict&&t.id&&this.checkIdentifier(t.id,65,E)}),this.prodParam.exit(),this.state.labels=y}this.expressionScope.exit()}isSimpleParameter(t){return t.type==="Identifier"}isSimpleParamList(t){for(let a=0,i=t.length;a<i;a++)if(!this.isSimpleParameter(t[a]))return!1;return!0}checkParams(t,a,i,d=!0){const p=!a&&new Set,y={type:"FormalParameters"};for(const b of t.params)this.checkLVal(b,y,5,p,d)}parseExprList(t,a,i,d){const p=[];let y=!0;for(;!this.eat(t);){if(y)y=!1;else if(this.expect(12),this.match(t)){d&&this.addTrailingCommaExtraToNode(d),this.next();break}p.push(this.parseExprListItem(a,i))}return p}parseExprListItem(t,a,i){let d;if(this.match(12))t||this.raise(Xe.UnexpectedToken,this.state.curPosition(),{unexpected:","}),d=null;else if(this.match(21)){const p=this.state.startLoc;d=this.parseParenItem(this.parseSpread(a),p)}else if(this.match(17)){this.expectPlugin("partialApplication"),i||this.raise(Xe.UnexpectedArgumentPlaceholder,this.state.startLoc);const p=this.startNode();this.next(),d=this.finishNode(p,"ArgumentPlaceholder")}else d=this.parseMaybeAssignAllowIn(a,this.parseParenItem);return d}parseIdentifier(t){const a=this.startNode(),i=this.parseIdentifierName(t);return this.createIdentifier(a,i)}createIdentifier(t,a){return t.name=a,t.loc.identifierName=a,this.finishNode(t,"Identifier")}parseIdentifierName(t){let a;const{startLoc:i,type:d}=this.state;zi(d)?a=this.state.value:this.unexpected();const p=Bxt(d);return t?p&&this.replaceToken(132):this.checkReservedWord(a,i,p,!1),this.next(),a}checkReservedWord(t,a,i,d){if(t.length>10||!a4t(t))return;if(i&&e4t(t)){this.raise(Xe.UnexpectedKeyword,a,{keyword:t});return}if((this.state.strict?d?d1e:u1e:l1e)(t,this.inModule)){this.raise(Xe.UnexpectedReservedWord,a,{reservedWord:t});return}else if(t==="yield"){if(this.prodParam.hasYield){this.raise(Xe.YieldBindingIdentifier,a);return}}else if(t==="await"){if(this.prodParam.hasAwait){this.raise(Xe.AwaitBindingIdentifier,a);return}if(this.scope.inStaticBlock){this.raise(Xe.AwaitBindingIdentifierInStaticBlock,a);return}this.expressionScope.recordAsyncArrowParametersError(a)}else if(t==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(Xe.ArgumentsInClass,a);return}}recordAwaitIfAllowed(){const t=this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction;return t&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),t}parseAwait(t){const a=this.startNodeAt(t);return this.expressionScope.recordParameterInitializerError(Xe.AwaitExpressionFormalParameter,a),this.eat(55)&&this.raise(Xe.ObsoleteAwaitStar,a),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(a.argument=this.parseMaybeUnary(null,!0)),this.finishNode(a,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;const{type:t}=this.state;return t===53||t===10||t===0||q2(t)||t===102&&!this.state.containsEsc||t===137||t===56||this.hasPlugin("v8intrinsic")&&t===54}parseYield(){const t=this.startNode();this.expressionScope.recordParameterInitializerError(Xe.YieldInParameter,t),this.next();let a=!1,i=null;if(!this.hasPrecedingLineBreak())switch(a=this.eat(55),this.state.type){case 13:case 139:case 8:case 11:case 3:case 9:case 14:case 12:if(!a)break;default:i=this.parseMaybeAssign()}return t.delegate=a,t.argument=i,this.finishNode(t,"YieldExpression")}parseImportCall(t){return this.next(),t.source=this.parseMaybeAssignAllowIn(),(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))&&(t.options=null),this.eat(12)&&(this.expectImportAttributesPlugin(),this.match(11)||(t.options=this.parseMaybeAssignAllowIn(),this.eat(12))),this.expect(11),this.finishNode(t,"ImportExpression")}checkPipelineAtInfixOperator(t,a){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&t.type==="SequenceExpression"&&this.raise(Xe.PipelineHeadSequenceExpression,a)}parseSmartPipelineBodyInStyle(t,a){if(this.isSimpleReference(t)){const i=this.startNodeAt(a);return i.callee=t,this.finishNode(i,"PipelineBareFunction")}else{const i=this.startNodeAt(a);return this.checkSmartPipeTopicBodyEarlyErrors(a),i.expression=t,this.finishNode(i,"PipelineTopicExpression")}}isSimpleReference(t){switch(t.type){case"MemberExpression":return!t.computed&&this.isSimpleReference(t.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(Xe.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(Xe.PipelineTopicUnused,t)}withTopicBindingContext(t){const a=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=a}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){const a=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=a}}else return t()}withSoloAwaitPermittingContext(t){const a=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=a}}allowInAnd(t){const a=this.prodParam.currentFlags();if(8&~a){this.prodParam.enter(a|8);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){const a=this.prodParam.currentFlags();if(8&a){this.prodParam.enter(a&-9);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){const a=this.state.startLoc;this.state.potentialArrowAt=this.state.start;const i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;const d=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),a,t);return this.state.inFSharpPipelineDirectBody=i,d}parseModuleExpression(){this.expectPlugin("moduleBlocks");const t=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);const a=this.startNodeAt(this.state.endLoc);this.next();const i=this.initializeScopes(!0);this.enterInitialScopes();try{t.body=this.parseProgram(a,8,"module")}finally{i()}return this.finishNode(t,"ModuleExpression")}parsePropertyNamePrefixOperator(t){}}const zN={kind:1},Y4t={kind:2},Q4t=/[\uD800-\uDFFF]/u,XN=/in(?:stanceof)?/y;function Z4t(n,t){for(let a=0;a<n.length;a++){const i=n[a],{type:d}=i;if(typeof d=="number"){{if(d===138){const{loc:p,start:y,value:b,end:v}=i,E=y+1,S=ws(p.start,1);n.splice(a,1,new bu({type:ul(27),value:"#",start:y,end:E,startLoc:p.start,endLoc:S}),new bu({type:ul(132),value:b,start:E,end:v,startLoc:S,endLoc:p.end})),a++;continue}if(q2(d)){const{loc:p,start:y,value:b,end:v}=i,E=y+1,S=ws(p.start,1);let A;t.charCodeAt(y)===96?A=new bu({type:ul(22),value:"`",start:y,end:E,startLoc:p.start,endLoc:S}):A=new bu({type:ul(8),value:"}",start:y,end:E,startLoc:p.start,endLoc:S});let _,C,q,M;d===24?(C=v-1,q=ws(p.end,-1),_=b===null?null:b.slice(1,-1),M=new bu({type:ul(22),value:"`",start:C,end:v,startLoc:q,endLoc:p.end})):(C=v-2,q=ws(p.end,-2),_=b===null?null:b.slice(1,-2),M=new bu({type:ul(23),value:"${",start:C,end:v,startLoc:q,endLoc:p.end})),n.splice(a,1,A,new bu({type:ul(20),value:_,start:E,end:C,startLoc:S,endLoc:q}),M),a+=2;continue}}i.type=ul(d)}}return n}class e7t extends J4t{parseTopLevel(t,a){return t.program=this.parseProgram(a),t.comments=this.comments,this.options.tokens&&(t.tokens=Z4t(this.tokens,this.input)),this.finishNode(t,"File")}parseProgram(t,a=139,i=this.options.sourceType){if(t.sourceType=i,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,a),this.inModule){if(!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(const[p,y]of Array.from(this.scope.undefinedExports))this.raise(Xe.ModuleExportUndefined,y,{localName:p});this.addExtra(t,"topLevelAwait",this.state.hasTopLevelAwait)}let d;return a===139?d=this.finishNode(t,"Program"):d=this.finishNodeAt(t,"Program",ws(this.state.startLoc,-1)),d}stmtToDirective(t){const a=t;a.type="Directive",a.value=a.expression,delete a.expression;const i=a.value,d=i.value,p=this.input.slice(i.start,i.end),y=i.value=p.slice(1,-1);return this.addExtra(i,"raw",p),this.addExtra(i,"rawValue",y),this.addExtra(i,"expressionValue",d),i.type="DirectiveLiteral",a}parseInterpreterDirective(){if(!this.match(28))return null;const t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(t,a){if(hl(t)){if(XN.lastIndex=a,XN.test(this.input)){const i=this.codePointAtPos(XN.lastIndex);if(!Mp(i)&&i!==92)return!1}return!0}else return t===92}chStartsBindingPattern(t){return t===91||t===123}hasFollowingBindingAtom(){const t=this.nextTokenStart(),a=this.codePointAtPos(t);return this.chStartsBindingPattern(a)||this.chStartsBindingIdentifier(a,t)}hasInLineFollowingBindingIdentifierOrBrace(){const t=this.nextTokenInLineStart(),a=this.codePointAtPos(t);return a===123||this.chStartsBindingIdentifier(a,t)}startsUsingForOf(){const{type:t,containsEsc:a}=this.lookahead();if(t===102&&!a)return!1;if(wa(t)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let t=this.nextTokenInLineStart();if(this.isUnparsedContextual(t,"using")){t=this.nextTokenInLineStartSince(t+5);const a=this.codePointAtPos(t);if(this.chStartsBindingIdentifier(a,t))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(t=!1){let a=0;return this.options.annexB&&!this.state.strict&&(a|=4,t&&(a|=8)),this.parseStatementLike(a)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(t){let a=null;return this.match(26)&&(a=this.parseDecorators(!0)),this.parseStatementContent(t,a)}parseStatementContent(t,a){const i=this.state.type,d=this.startNode(),p=!!(t&2),y=!!(t&4),b=t&1;switch(i){case 60:return this.parseBreakContinueStatement(d,!0);case 63:return this.parseBreakContinueStatement(d,!1);case 64:return this.parseDebuggerStatement(d);case 90:return this.parseDoWhileStatement(d);case 91:return this.parseForStatement(d);case 68:if(this.lookaheadCharCode()===46)break;return y||this.raise(this.state.strict?Xe.StrictFunction:this.options.annexB?Xe.SloppyFunctionAnnexB:Xe.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(d,!1,!p&&y);case 80:return p||this.unexpected(),this.parseClass(this.maybeTakeDecorators(a,d),!0);case 69:return this.parseIfStatement(d);case 70:return this.parseReturnStatement(d);case 71:return this.parseSwitchStatement(d);case 72:return this.parseThrowStatement(d);case 73:return this.parseTryStatement(d);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?p||this.raise(Xe.UnexpectedLexicalDeclaration,d):this.raise(Xe.AwaitUsingNotInAsyncContext,d),this.next(),this.parseVarStatement(d,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(Xe.UnexpectedUsingDeclaration,this.state.startLoc):p||this.raise(Xe.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(d,"using");case 100:{if(this.state.containsEsc)break;const S=this.nextTokenStart(),A=this.codePointAtPos(S);if(A!==91&&(!p&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(A,S)&&A!==123))break}case 75:p||this.raise(Xe.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{const S=this.state.value;return this.parseVarStatement(d,S)}case 92:return this.parseWhileStatement(d);case 76:return this.parseWithStatement(d);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(d);case 83:{const S=this.lookaheadCharCode();if(S===40||S===46)break}case 82:{!this.options.allowImportExportEverywhere&&!b&&this.raise(Xe.UnexpectedImportExport,this.state.startLoc),this.next();let S;return i===83?(S=this.parseImport(d),S.type==="ImportDeclaration"&&(!S.importKind||S.importKind==="value")&&(this.sawUnambiguousESM=!0)):(S=this.parseExport(d,a),(S.type==="ExportNamedDeclaration"&&(!S.exportKind||S.exportKind==="value")||S.type==="ExportAllDeclaration"&&(!S.exportKind||S.exportKind==="value")||S.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(S),S}default:if(this.isAsyncFunction())return p||this.raise(Xe.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(d,!0,!p&&y)}const v=this.state.value,E=this.parseExpression();return wa(i)&&E.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(d,v,E,t):this.parseExpressionStatement(d,E,a)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(Xe.ImportOutsideModule,t)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(t,a,i){return t&&(a.decorators&&a.decorators.length>0?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(Xe.DecoratorsBeforeAfterExport,a.decorators[0]),a.decorators.unshift(...t)):a.decorators=t,this.resetStartLocationFromNode(a,t[0]),i&&this.resetStartLocationFromNode(i,a)),a}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){const a=[];do a.push(this.parseDecorator());while(this.match(26));if(this.match(82))t||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(Xe.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(Xe.UnexpectedLeadingDecorator,this.state.startLoc);return a}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);const t=this.startNode();if(this.next(),this.hasPlugin("decorators")){const a=this.state.startLoc;let i;if(this.match(10)){const d=this.state.startLoc;this.next(),i=this.parseExpression(),this.expect(11),i=this.wrapParenthesis(d,i);const p=this.state.startLoc;t.expression=this.parseMaybeDecoratorArguments(i),this.getPluginOption("decorators","allowCallParenthesized")===!1&&t.expression!==i&&this.raise(Xe.DecoratorArgumentsOutsideParentheses,p)}else{for(i=this.parseIdentifier(!1);this.eat(16);){const d=this.startNodeAt(a);d.object=i,this.match(138)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),d.property=this.parsePrivateName()):d.property=this.parseIdentifier(!0),d.computed=!1,i=this.finishNode(d,"MemberExpression")}t.expression=this.parseMaybeDecoratorArguments(i)}}else t.expression=this.parseExprSubscripts();return this.finishNode(t,"Decorator")}parseMaybeDecoratorArguments(t){if(this.eat(10)){const a=this.startNodeAtNode(t);return a.callee=t,a.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(a.arguments),this.finishNode(a,"CallExpression")}return t}parseBreakContinueStatement(t,a){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,a),this.finishNode(t,a?"BreakStatement":"ContinueStatement")}verifyBreakContinue(t,a){let i;for(i=0;i<this.state.labels.length;++i){const d=this.state.labels[i];if((t.label==null||d.name===t.label.name)&&(d.kind!=null&&(a||d.kind===1)||t.label&&a))break}if(i===this.state.labels.length){const d=a?"BreakStatement":"ContinueStatement";this.raise(Xe.IllegalBreakContinue,t,{type:d})}}parseDebuggerStatement(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")}parseHeaderExpression(){this.expect(10);const t=this.parseExpression();return this.expect(11),t}parseDoWhileStatement(t){return this.next(),this.state.labels.push(zN),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,"DoWhileStatement")}parseForStatement(t){this.next(),this.state.labels.push(zN);let a=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(a=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return a!==null&&this.unexpected(a),this.parseFor(t,null);const i=this.isContextual(100);{const v=this.isContextual(96)&&this.startsAwaitUsing(),E=v||this.isContextual(107)&&this.startsUsingForOf(),S=i&&this.hasFollowingBindingAtom()||E;if(this.match(74)||this.match(75)||S){const A=this.startNode();let _;v?(_="await using",this.recordAwaitIfAllowed()||this.raise(Xe.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):_=this.state.value,this.next(),this.parseVar(A,!0,_);const C=this.finishNode(A,"VariableDeclaration"),q=this.match(58);return q&&E&&this.raise(Xe.ForInUsing,C),(q||this.isContextual(102))&&C.declarations.length===1?this.parseForIn(t,C,a):(a!==null&&this.unexpected(a),this.parseFor(t,C))}}const d=this.isContextual(95),p=new v2,y=this.parseExpression(!0,p),b=this.isContextual(102);if(b&&(i&&this.raise(Xe.ForOfLet,y),a===null&&d&&y.type==="Identifier"&&this.raise(Xe.ForOfAsync,y)),b||this.match(58)){this.checkDestructuringPrivate(p),this.toAssignable(y,!0);const v=b?"ForOfStatement":"ForInStatement";return this.checkLVal(y,{type:v}),this.parseForIn(t,y,a)}else this.checkExpressionErrors(p,!0);return a!==null&&this.unexpected(a),this.parseFor(t,y)}parseFunctionStatement(t,a,i){return this.next(),this.parseFunction(t,1|(i?2:0)|(a?8:0))}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),t.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(t,"IfStatement")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(Xe.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();const a=t.cases=[];this.expect(5),this.state.labels.push(Y4t),this.scope.enter(0);let i;for(let d;!this.match(8);)if(this.match(61)||this.match(65)){const p=this.match(61);i&&this.finishNode(i,"SwitchCase"),a.push(i=this.startNode()),i.consequent=[],this.next(),p?i.test=this.parseExpression():(d&&this.raise(Xe.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),d=!0,i.test=null),this.expect(14)}else i?i.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),i&&this.finishNode(i,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(t,"SwitchStatement")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(Xe.NewlineAfterThrow,this.state.lastTokEndLoc),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}parseCatchClauseParam(){const t=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&t.type==="Identifier"?8:0),this.checkLVal(t,{type:"CatchClause"},9),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){const a=this.startNode();this.next(),this.match(10)?(this.expect(10),a.param=this.parseCatchClauseParam(),this.expect(11)):(a.param=null,this.scope.enter(0)),a.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(a,"CatchClause")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(Xe.NoCatchOrFinally,t),this.finishNode(t,"TryStatement")}parseVarStatement(t,a,i=!1){return this.next(),this.parseVar(t,!1,a,i),this.semicolon(),this.finishNode(t,"VariableDeclaration")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(zN),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(t,"WhileStatement")}parseWithStatement(t){return this.state.strict&&this.raise(Xe.StrictWith,this.state.startLoc),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(t,"WithStatement")}parseEmptyStatement(t){return this.next(),this.finishNode(t,"EmptyStatement")}parseLabeledStatement(t,a,i,d){for(const y of this.state.labels)y.name===a&&this.raise(Xe.LabelRedeclaration,i,{labelName:a});const p=qxt(this.state.type)?1:this.match(71)?2:null;for(let y=this.state.labels.length-1;y>=0;y--){const b=this.state.labels[y];if(b.statementStart===t.start)b.statementStart=this.state.start,b.kind=p;else break}return this.state.labels.push({name:a,kind:p,statementStart:this.state.start}),t.body=d&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")}parseExpressionStatement(t,a,i){return t.expression=a,this.semicolon(),this.finishNode(t,"ExpressionStatement")}parseBlock(t=!1,a=!0,i){const d=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),a&&this.scope.enter(0),this.parseBlockBody(d,t,!1,8,i),a&&this.scope.exit(),this.finishNode(d,"BlockStatement")}isValidDirective(t){return t.type==="ExpressionStatement"&&t.expression.type==="StringLiteral"&&!t.expression.extra.parenthesized}parseBlockBody(t,a,i,d,p){const y=t.body=[],b=t.directives=[];this.parseBlockOrModuleBlockBody(y,a?b:void 0,i,d,p)}parseBlockOrModuleBlockBody(t,a,i,d,p){const y=this.state.strict;let b=!1,v=!1;for(;!this.match(d);){const E=i?this.parseModuleItem():this.parseStatementListItem();if(a&&!v){if(this.isValidDirective(E)){const S=this.stmtToDirective(E);a.push(S),!b&&S.value.value==="use strict"&&(b=!0,this.setStrict(!0));continue}v=!0,this.state.strictErrors.clear()}t.push(E)}p==null||p.call(this,b),y||this.setStrict(!1),this.next()}parseFor(t,a){return t.init=a,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,"ForStatement")}parseForIn(t,a,i){const d=this.match(58);return this.next(),d?i!==null&&this.unexpected(i):t.await=i!==null,a.type==="VariableDeclaration"&&a.declarations[0].init!=null&&(!d||!this.options.annexB||this.state.strict||a.kind!=="var"||a.declarations[0].id.type!=="Identifier")&&this.raise(Xe.ForInOfLoopInitializer,a,{type:d?"ForInStatement":"ForOfStatement"}),a.type==="AssignmentPattern"&&this.raise(Xe.InvalidLhs,a,{ancestor:{type:"ForStatement"}}),t.left=a,t.right=d?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,d?"ForInStatement":"ForOfStatement")}parseVar(t,a,i,d=!1){const p=t.declarations=[];for(t.kind=i;;){const y=this.startNode();if(this.parseVarId(y,i),y.init=this.eat(29)?a?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,y.init===null&&!d&&(y.id.type!=="Identifier"&&!(a&&(this.match(58)||this.isContextual(102)))?this.raise(Xe.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(i==="const"||i==="using"||i==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(Xe.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:i})),p.push(this.finishNode(y,"VariableDeclarator")),!this.eat(12))break}return t}parseVarId(t,a){const i=this.parseBindingAtom();(a==="using"||a==="await using")&&(i.type==="ArrayPattern"||i.type==="ObjectPattern")&&this.raise(Xe.UsingDeclarationHasBindingPattern,i.loc.start),this.checkLVal(i,{type:"VariableDeclarator"},a==="var"?5:8201),t.id=i}parseAsyncFunctionExpression(t){return this.parseFunction(t,8)}parseFunction(t,a=0){const i=a&2,d=!!(a&1),p=d&&!(a&4),y=!!(a&8);this.initFunction(t,y),this.match(55)&&(i&&this.raise(Xe.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),t.generator=!0),d&&(t.id=this.parseFunctionId(p));const b=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(g2(y,t.generator)),d||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,d?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),d&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=b,t}parseFunctionId(t){return t||wa(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,a){this.expect(10),this.expressionScope.enter(b4t()),t.params=this.parseBindingList(11,41,2|(a?4:0)),this.expressionScope.exit()}registerFunctionStatementId(t){t.id&&this.scope.declareName(t.id.name,!this.options.annexB||this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?5:8201:17,t.id.loc.start)}parseClass(t,a,i){this.next();const d=this.state.strict;return this.state.strict=!0,this.parseClassId(t,a,i),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,d),this.finishNode(t,a?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(t){return t.type==="Identifier"&&t.name==="constructor"||t.type==="StringLiteral"&&t.value==="constructor"}isNonstaticConstructor(t){return!t.computed&&!t.static&&this.nameIsConstructor(t.key)}parseClassBody(t,a){this.classScope.enter();const i={hadConstructor:!1,hadSuperClass:t};let d=[];const p=this.startNode();if(p.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(d.length>0)throw this.raise(Xe.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){d.push(this.parseDecorator());continue}const y=this.startNode();d.length&&(y.decorators=d,this.resetStartLocationFromNode(y,d[0]),d=[]),this.parseClassMember(p,y,i),y.kind==="constructor"&&y.decorators&&y.decorators.length>0&&this.raise(Xe.DecoratorConstructor,y)}}),this.state.strict=a,this.next(),d.length)throw this.raise(Xe.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(p,"ClassBody")}parseClassMemberFromModifier(t,a){const i=this.parseIdentifier(!0);if(this.isClassMethod()){const d=a;return d.kind="method",d.computed=!1,d.key=i,d.static=!1,this.pushClassMethod(t,d,!1,!1,!1,!1),!0}else if(this.isClassProperty()){const d=a;return d.computed=!1,d.key=i,d.static=!1,t.body.push(this.parseClassProperty(d)),!0}return this.resetPreviousNodeTrailingComments(i),!1}parseClassMember(t,a,i){const d=this.isContextual(106);if(d){if(this.parseClassMemberFromModifier(t,a))return;if(this.eat(5)){this.parseClassStaticBlock(t,a);return}}this.parseClassMemberWithIsStatic(t,a,i,d)}parseClassMemberWithIsStatic(t,a,i,d){const p=a,y=a,b=a,v=a,E=a,S=p,A=p;if(a.static=d,this.parsePropertyNamePrefixOperator(a),this.eat(55)){S.kind="method";const z=this.match(138);if(this.parseClassElementName(S),z){this.pushClassPrivateMethod(t,y,!0,!1);return}this.isNonstaticConstructor(p)&&this.raise(Xe.ConstructorIsGenerator,p.key),this.pushClassMethod(t,p,!0,!1,!1,!1);return}const _=!this.state.containsEsc&&wa(this.state.type),C=this.parseClassElementName(a),q=_?C.name:null,M=this.isPrivateName(C),W=this.state.startLoc;if(this.parsePostMemberNameModifiers(A),this.isClassMethod()){if(S.kind="method",M){this.pushClassPrivateMethod(t,y,!1,!1);return}const z=this.isNonstaticConstructor(p);let Y=!1;z&&(p.kind="constructor",i.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(Xe.DuplicateConstructor,C),z&&this.hasPlugin("typescript")&&a.override&&this.raise(Xe.OverrideOnConstructor,C),i.hadConstructor=!0,Y=i.hadSuperClass),this.pushClassMethod(t,p,!1,!1,z,Y)}else if(this.isClassProperty())M?this.pushClassPrivateProperty(t,v):this.pushClassProperty(t,b);else if(q==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(C);const z=this.eat(55);A.optional&&this.unexpected(W),S.kind="method";const Y=this.match(138);this.parseClassElementName(S),this.parsePostMemberNameModifiers(A),Y?this.pushClassPrivateMethod(t,y,z,!0):(this.isNonstaticConstructor(p)&&this.raise(Xe.ConstructorIsAsync,p.key),this.pushClassMethod(t,p,z,!0,!1,!1))}else if((q==="get"||q==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(C),S.kind=q;const z=this.match(138);this.parseClassElementName(p),z?this.pushClassPrivateMethod(t,y,!1,!1):(this.isNonstaticConstructor(p)&&this.raise(Xe.ConstructorIsAccessor,p.key),this.pushClassMethod(t,p,!1,!1,!1,!1)),this.checkGetterSetterParams(p)}else if(q==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(C);const z=this.match(138);this.parseClassElementName(b),this.pushClassAccessorProperty(t,E,z)}else this.isLineTerminator()?M?this.pushClassPrivateProperty(t,v):this.pushClassProperty(t,b):this.unexpected()}parseClassElementName(t){const{type:a,value:i}=this.state;if((a===132||a===133)&&t.static&&i==="prototype"&&this.raise(Xe.StaticPrototype,this.state.startLoc),a===138){i==="constructor"&&this.raise(Xe.ConstructorClassPrivateField,this.state.startLoc);const d=this.parsePrivateName();return t.key=d,d}return this.parsePropertyName(t),t.key}parseClassStaticBlock(t,a){var i;this.scope.enter(208);const d=this.state.labels;this.state.labels=[],this.prodParam.enter(0);const p=a.body=[];this.parseBlockOrModuleBlockBody(p,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=d,t.body.push(this.finishNode(a,"StaticBlock")),(i=a.decorators)!=null&&i.length&&this.raise(Xe.DecoratorStaticBlock,a)}pushClassProperty(t,a){!a.computed&&this.nameIsConstructor(a.key)&&this.raise(Xe.ConstructorClassField,a.key),t.body.push(this.parseClassProperty(a))}pushClassPrivateProperty(t,a){const i=this.parseClassPrivateProperty(a);t.body.push(i),this.classScope.declarePrivateName(this.getPrivateNameSV(i.key),0,i.key.loc.start)}pushClassAccessorProperty(t,a,i){!i&&!a.computed&&this.nameIsConstructor(a.key)&&this.raise(Xe.ConstructorClassField,a.key);const d=this.parseClassAccessorProperty(a);t.body.push(d),i&&this.classScope.declarePrivateName(this.getPrivateNameSV(d.key),0,d.key.loc.start)}pushClassMethod(t,a,i,d,p,y){t.body.push(this.parseMethod(a,i,d,p,y,"ClassMethod",!0))}pushClassPrivateMethod(t,a,i,d){const p=this.parseMethod(a,i,d,!1,!1,"ClassPrivateMethod",!0);t.body.push(p);const y=p.kind==="get"?p.static?6:2:p.kind==="set"?p.static?5:1:0;this.declareClassPrivateMethodInScope(p,y)}declareClassPrivateMethodInScope(t,a){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),a,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassPrivateProperty")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassProperty")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassAccessorProperty")}parseInitializer(t){this.scope.enter(80),this.expressionScope.enter(y1e()),this.prodParam.enter(0),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,a,i,d=8331){if(wa(this.state.type))t.id=this.parseIdentifier(),a&&this.declareNameFromIdentifier(t.id,d);else if(i||!a)t.id=null;else throw this.raise(Xe.MissingClassName,this.state.startLoc)}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t,a){const i=this.parseMaybeImportPhase(t,!0),d=this.maybeParseExportDefaultSpecifier(t,i),p=!d||this.eat(12),y=p&&this.eatExportStar(t),b=y&&this.maybeParseExportNamespaceSpecifier(t),v=p&&(!b||this.eat(12)),E=d||y;if(y&&!b){if(d&&this.unexpected(),a)throw this.raise(Xe.UnsupportedDecoratorExport,t);return this.parseExportFrom(t,!0),this.finishNode(t,"ExportAllDeclaration")}const S=this.maybeParseExportNamedSpecifiers(t);d&&p&&!y&&!S&&this.unexpected(null,5),b&&v&&this.unexpected(null,98);let A;if(E||S){if(A=!1,a)throw this.raise(Xe.UnsupportedDecoratorExport,t);this.parseExportFrom(t,E)}else A=this.maybeParseExportDeclaration(t);if(E||S||A){var _;const C=t;if(this.checkExport(C,!0,!1,!!C.source),((_=C.declaration)==null?void 0:_.type)==="ClassDeclaration")this.maybeTakeDecorators(a,C.declaration,C);else if(a)throw this.raise(Xe.UnsupportedDecoratorExport,t);return this.finishNode(C,"ExportNamedDeclaration")}if(this.eat(65)){const C=t,q=this.parseExportDefaultExpression();if(C.declaration=q,q.type==="ClassDeclaration")this.maybeTakeDecorators(a,q,C);else if(a)throw this.raise(Xe.UnsupportedDecoratorExport,t);return this.checkExport(C,!0,!0),this.finishNode(C,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t,a){if(a||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",a==null?void 0:a.loc.start);const i=a||this.parseIdentifier(!0),d=this.startNodeAtNode(i);return d.exported=i,t.specifiers=[this.finishNode(d,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){var a,i;(i=(a=t).specifiers)!=null||(a.specifiers=[]);const d=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),d.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(d,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){const a=t;a.specifiers||(a.specifiers=[]);const i=a.exportKind==="type";return a.specifiers.push(...this.parseExportSpecifiers(i)),a.source=null,a.declaration=null,this.hasPlugin("importAssertions")&&(a.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;const t=this.nextTokenInLineStart();return this.isUnparsedContextual(t,"function")}parseExportDefaultExpression(){const t=this.startNode();if(this.match(68))return this.next(),this.parseFunction(t,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(t,13);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(Xe.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(Xe.UnsupportedDefaultExport,this.state.startLoc);const a=this.parseMaybeAssignAllowIn();return this.semicolon(),a}parseExportDeclaration(t){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){const{type:t}=this.state;if(wa(t)){if(t===95&&!this.state.containsEsc||t===100)return!1;if((t===130||t===129)&&!this.state.containsEsc){const{type:d}=this.lookahead();if(wa(d)&&d!==98||d===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;const a=this.nextTokenStart(),i=this.isUnparsedContextual(a,"from");if(this.input.charCodeAt(a)===44||wa(this.state.type)&&i)return!0;if(this.match(65)&&i){const d=this.input.charCodeAt(this.nextTokenStartSince(a+4));return d===34||d===39}return!1}parseExportFrom(t,a){this.eatContextual(98)?(t.source=this.parseImportSource(),this.checkExport(t),this.maybeParseImportAttributes(t),this.checkJSONModuleImport(t)):a&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){const{type:t}=this.state;return t===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(Xe.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(Xe.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(Xe.UsingDeclarationExport,this.state.startLoc),!0):t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,a,i,d){if(a){var p;if(i){if(this.checkDuplicateExports(t,"default"),this.hasPlugin("exportDefaultFrom")){var y;const b=t.declaration;b.type==="Identifier"&&b.name==="from"&&b.end-b.start===4&&!((y=b.extra)!=null&&y.parenthesized)&&this.raise(Xe.ExportDefaultFromAsIdentifier,b)}}else if((p=t.specifiers)!=null&&p.length)for(const b of t.specifiers){const{exported:v}=b,E=v.type==="Identifier"?v.name:v.value;if(this.checkDuplicateExports(b,E),!d&&b.local){const{local:S}=b;S.type!=="Identifier"?this.raise(Xe.ExportBindingIsString,b,{localName:S.value,exportName:E}):(this.checkReservedWord(S.name,S.loc.start,!0,!1),this.scope.checkLocalExport(S))}}else if(t.declaration){const b=t.declaration;if(b.type==="FunctionDeclaration"||b.type==="ClassDeclaration"){const{id:v}=b;if(!v)throw new Error("Assertion failure");this.checkDuplicateExports(t,v.name)}else if(b.type==="VariableDeclaration")for(const v of b.declarations)this.checkDeclaration(v.id)}}}checkDeclaration(t){if(t.type==="Identifier")this.checkDuplicateExports(t,t.name);else if(t.type==="ObjectPattern")for(const a of t.properties)this.checkDeclaration(a);else if(t.type==="ArrayPattern")for(const a of t.elements)a&&this.checkDeclaration(a);else t.type==="ObjectProperty"?this.checkDeclaration(t.value):t.type==="RestElement"?this.checkDeclaration(t.argument):t.type==="AssignmentPattern"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,a){this.exportedIdentifiers.has(a)&&(a==="default"?this.raise(Xe.DuplicateDefaultExport,t):this.raise(Xe.DuplicateExport,t,{exportName:a})),this.exportedIdentifiers.add(a)}parseExportSpecifiers(t){const a=[];let i=!0;for(this.expect(5);!this.eat(8);){if(i)i=!1;else if(this.expect(12),this.eat(8))break;const d=this.isContextual(130),p=this.match(133),y=this.startNode();y.local=this.parseModuleExportName(),a.push(this.parseExportSpecifier(y,p,t,d))}return a}parseExportSpecifier(t,a,i,d){return this.eatContextual(93)?t.exported=this.parseModuleExportName():a?t.exported=w4t(t.local):t.exported||(t.exported=Tl(t.local)),this.finishNode(t,"ExportSpecifier")}parseModuleExportName(){if(this.match(133)){const t=this.parseStringLiteral(this.state.value),a=Q4t.exec(t.value);return a&&this.raise(Xe.ModuleExportNameHasLoneSurrogate,t,{surrogateCharCode:a[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}isJSONModuleImport(t){return t.assertions!=null?t.assertions.some(({key:a,value:i})=>i.value==="json"&&(a.type==="Identifier"?a.name==="type":a.value==="type")):!1}checkImportReflection(t){const{specifiers:a}=t,i=a.length===1?a[0].type:null;if(t.phase==="source")i!=="ImportDefaultSpecifier"&&this.raise(Xe.SourcePhaseImportRequiresDefault,a[0].loc.start);else if(t.phase==="defer")i!=="ImportNamespaceSpecifier"&&this.raise(Xe.DeferImportRequiresNamespace,a[0].loc.start);else if(t.module){var d;i!=="ImportDefaultSpecifier"&&this.raise(Xe.ImportReflectionNotBinding,a[0].loc.start),((d=t.assertions)==null?void 0:d.length)>0&&this.raise(Xe.ImportReflectionHasAssertion,a[0].loc.start)}}checkJSONModuleImport(t){if(this.isJSONModuleImport(t)&&t.type!=="ExportAllDeclaration"){const{specifiers:a}=t;if(a!=null){const i=a.find(d=>{let p;if(d.type==="ExportSpecifier"?p=d.local:d.type==="ImportSpecifier"&&(p=d.imported),p!==void 0)return p.type==="Identifier"?p.name!=="default":p.value!=="default"});i!==void 0&&this.raise(Xe.ImportJSONBindingNotDefault,i.loc.start)}}}isPotentialImportPhase(t){return t?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(t,a,i,d){a||(i==="module"?(this.expectPlugin("importReflection",d),t.module=!0):this.hasPlugin("importReflection")&&(t.module=!1),i==="source"?(this.expectPlugin("sourcePhaseImports",d),t.phase="source"):i==="defer"?(this.expectPlugin("deferredImportEvaluation",d),t.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(t.phase=null))}parseMaybeImportPhase(t,a){if(!this.isPotentialImportPhase(a))return this.applyImportPhase(t,a,null),null;const i=this.parseIdentifier(!0),{type:d}=this.state;return(zi(d)?d!==98||this.lookaheadCharCode()===102:d!==12)?(this.resetPreviousIdentifierLeadingComments(i),this.applyImportPhase(t,a,i.name,i.loc.start),null):(this.applyImportPhase(t,a,null),i)}isPrecedingIdImportPhase(t){const{type:a}=this.state;return wa(a)?a!==98||this.lookaheadCharCode()===102:a!==12}parseImport(t){return this.match(133)?this.parseImportSourceAndAttributes(t):this.parseImportSpecifiersAndAfter(t,this.parseMaybeImportPhase(t,!1))}parseImportSpecifiersAndAfter(t,a){t.specifiers=[];const d=!this.maybeParseDefaultImportSpecifier(t,a)||this.eat(12),p=d&&this.maybeParseStarImportSpecifier(t);return d&&!p&&this.parseNamedImportSpecifiers(t),this.expectContextual(98),this.parseImportSourceAndAttributes(t)}parseImportSourceAndAttributes(t){var a;return(a=t.specifiers)!=null||(t.specifiers=[]),t.source=this.parseImportSource(),this.maybeParseImportAttributes(t),this.checkImportReflection(t),this.checkJSONModuleImport(t),this.semicolon(),this.finishNode(t,"ImportDeclaration")}parseImportSource(){return this.match(133)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(t,a,i){a.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(a,i))}finishImportSpecifier(t,a,i=8201){return this.checkLVal(t.local,{type:a},i),this.finishNode(t,a)}parseImportAttributes(){this.expect(5);const t=[],a=new Set;do{if(this.match(8))break;const i=this.startNode(),d=this.state.value;if(a.has(d)&&this.raise(Xe.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:d}),a.add(d),this.match(133)?i.key=this.parseStringLiteral(d):i.key=this.parseIdentifier(!0),this.expect(14),!this.match(133))throw this.raise(Xe.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return this.expect(8),t}parseModuleAttributes(){const t=[],a=new Set;do{const i=this.startNode();if(i.key=this.parseIdentifier(!0),i.key.name!=="type"&&this.raise(Xe.ModuleAttributeDifferentFromType,i.key),a.has(i.key.name)&&this.raise(Xe.ModuleAttributesWithDuplicateKeys,i.key,{key:i.key.name}),a.add(i.key.name),this.expect(14),!this.match(133))throw this.raise(Xe.ModuleAttributeInvalidValue,this.state.startLoc);i.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(i,"ImportAttribute"))}while(this.eat(12));return t}maybeParseImportAttributes(t){let a,i=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?a=this.parseModuleAttributes():(this.expectImportAttributesPlugin(),a=this.parseImportAttributes()),i=!0}else if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.hasPlugin("importAttributes")?(this.getPluginOption("importAttributes","deprecatedAssertSyntax")!==!0&&this.raise(Xe.ImportAttributesUseAssert,this.state.startLoc),this.addExtra(t,"deprecatedAssertSyntax",!0)):this.expectOnePlugin(["importAttributes","importAssertions"]),this.next(),a=this.parseImportAttributes();else if(this.hasPlugin("importAttributes")||this.hasPlugin("importAssertions"))a=[];else if(this.hasPlugin("moduleAttributes"))a=[];else return;!i&&this.hasPlugin("importAssertions")?t.assertions=a:t.attributes=a}maybeParseDefaultImportSpecifier(t,a){if(a){const i=this.startNodeAtNode(a);return i.local=a,t.specifiers.push(this.finishImportSpecifier(i,"ImportDefaultSpecifier")),!0}else if(zi(this.state.type))return this.parseImportSpecifierLocal(t,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(t){if(this.match(55)){const a=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,a,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(t){let a=!0;for(this.expect(5);!this.eat(8);){if(a)a=!1;else{if(this.eat(14))throw this.raise(Xe.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}const i=this.startNode(),d=this.match(133),p=this.isContextual(130);i.imported=this.parseModuleExportName();const y=this.parseImportSpecifier(i,d,t.importKind==="type"||t.importKind==="typeof",p,void 0);t.specifiers.push(y)}}parseImportSpecifier(t,a,i,d,p){if(this.eatContextual(93))t.local=this.parseIdentifier();else{const{imported:y}=t;if(a)throw this.raise(Xe.ImportBindingIsString,t,{importName:y.value});this.checkReservedWord(y.name,t.loc.start,!0,!0),t.local||(t.local=Tl(y))}return this.finishImportSpecifier(t,"ImportSpecifier",p)}isThisParam(t){return t.type==="Identifier"&&t.name==="this"}}let R1e=class extends e7t{constructor(t,a,i){t=X4t(t),super(t,a),this.options=t,this.initializeScopes(),this.plugins=i,this.filename=t.sourceFilename}getScopeHandler(){return uM}parse(){this.enterInitialScopes();const t=this.startNode(),a=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,a),t.errors=this.state.errors,t.comments.length=this.state.commentsLen,t}};function t7t(n,t){var a;if(((a=t)==null?void 0:a.sourceType)==="unambiguous"){t=Object.assign({},t);try{t.sourceType="module";const i=ny(t,n),d=i.parse();if(i.sawUnambiguousESM)return d;if(i.ambiguousScriptDifferentAst)try{return t.sourceType="script",ny(t,n).parse()}catch{}else d.program.sourceType="script";return d}catch(i){try{return t.sourceType="script",ny(t,n).parse()}catch{}throw i}}else return ny(t,n).parse()}function r7t(n,t){const a=ny(t,n);return a.options.strictMode&&(a.state.strict=!0),a.getExpression()}function a7t(n){const t={};for(const a of Object.keys(n))t[a]=ul(n[a]);return t}const n7t=a7t(Mxt);function ny(n,t){let a=R1e;const i=new Map;if(n!=null&&n.plugins){for(const d of n.plugins){let p,y;typeof d=="string"?p=d:[p,y]=d,i.has(p)||i.set(p,y||{})}H4t(i),a=s7t(i)}return new a(n,t,i)}const Dhe=new Map;function s7t(n){const t=[];for(const d of z4t)n.has(d)&&t.push(d);const a=t.join("|");let i=Dhe.get(a);if(!i){i=R1e;for(const d of t)i=x1e[d](i);Dhe.set(a,i)}return i}var $k=nx.parse=t7t,Ey=nx.parseExpression=r7t;nx.tokTypes=n7t;class i7t{constructor(){this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t}}replace(t,a,i,d){t&&(i!==null?t[a][i]=d:t[a]=d)}remove(t,a,i){t&&(i!==null?t[a].splice(i,1):delete t[a])}}class o7t extends i7t{constructor(t,a){super(),this.enter=t,this.leave=a}visit(t,a,i,d){if(t){if(this.enter){const p=this.should_skip,y=this.should_remove,b=this.replacement;this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.enter.call(this.context,t,a,i,d),this.replacement&&(t=this.replacement,this.replace(a,i,d,t)),this.should_remove&&this.remove(a,i,d);const v=this.should_skip,E=this.should_remove;if(this.should_skip=p,this.should_remove=y,this.replacement=b,v)return t;if(E)return null}for(const p in t){const y=t[p];if(typeof y=="object")if(Array.isArray(y))for(let b=0;b<y.length;b+=1)y[b]!==null&&typeof y[b].type=="string"&&(this.visit(y[b],t,p,b)||b--);else y!==null&&typeof y.type=="string"&&this.visit(y,t,p,null)}if(this.leave){const p=this.replacement,y=this.should_remove;this.replacement=null,this.should_remove=!1,this.leave.call(this.context,t,a,i,d),this.replacement&&(t=this.replacement,this.replace(a,i,d,t)),this.should_remove&&this.remove(a,i,d);const b=this.should_remove;if(this.replacement=p,this.should_remove=y,b)return null}}return t}}function l7t(n,{enter:t,leave:a}){return new o7t(t,a).visit(n,null)}function pM(n,t,a=!1,i=[],d=Object.create(null)){const p=n.type==="Program"?n.body[0].type==="ExpressionStatement"&&n.body[0].expression:n;l7t(n,{enter(y,b){if(b&&i.push(b),b&&b.type.startsWith("TS")&&!yM.includes(b.type))return this.skip();if(y.type==="Identifier"){const v=!!d[y.name],E=E1e(y,b,i);(a||E&&!v)&&t(y,b,i,E,v)}else if(y.type==="ObjectProperty"&&(b==null?void 0:b.type)==="ObjectPattern")y.inPattern=!0;else if(hM(y))y.scopeIds?y.scopeIds.forEach(v=>qk(v,d)):T1e(y,v=>Ub(y,v,d));else if(y.type==="BlockStatement")y.scopeIds?y.scopeIds.forEach(v=>qk(v,d)):w1e(y,v=>Ub(y,v,d));else if(y.type==="CatchClause"&&y.param)for(const v of xo(y.param))Ub(y,v,d);else P1e(y)&&A1e(y,!1,v=>Ub(y,v,d))},leave(y,b){if(b&&i.pop(),y!==p&&y.scopeIds)for(const v of y.scopeIds)d[v]--,d[v]===0&&delete d[v]}})}function E1e(n,t,a){if(!t)return!0;if(n.name==="arguments")return!1;if(u7t(n,t))return!0;switch(t.type){case"AssignmentExpression":case"AssignmentPattern":return!0;case"ObjectPattern":case"ArrayPattern":return fM(t,a)}return!1}function fM(n,t){if(n&&(n.type==="ObjectProperty"||n.type==="ArrayPattern")){let a=t.length;for(;a--;){const i=t[a];if(i.type==="AssignmentExpression")return!0;if(i.type!=="ObjectProperty"&&!i.type.endsWith("Pattern"))break}}return!1}function S1e(n){let t=n.length;for(;t--;){const a=n[t];if(a.type==="NewExpression")return!0;if(a.type!=="MemberExpression")break}return!1}function T1e(n,t){for(const a of n.params)for(const i of xo(a))t(i)}function w1e(n,t){for(const a of n.body)if(a.type==="VariableDeclaration"){if(a.declare)continue;for(const i of a.declarations)for(const d of xo(i.id))t(d)}else if(a.type==="FunctionDeclaration"||a.type==="ClassDeclaration"){if(a.declare||!a.id)continue;t(a.id)}else P1e(a)&&A1e(a,!0,t)}function P1e(n){return n.type==="ForOfStatement"||n.type==="ForInStatement"||n.type==="ForStatement"}function A1e(n,t,a){const i=n.type==="ForStatement"?n.init:n.left;if(i&&i.type==="VariableDeclaration"&&(i.kind==="var"?t:!t))for(const d of i.declarations)for(const p of xo(d.id))a(p)}function xo(n,t=[]){switch(n.type){case"Identifier":t.push(n);break;case"MemberExpression":let a=n;for(;a.type==="MemberExpression";)a=a.object;t.push(a);break;case"ObjectPattern":for(const i of n.properties)i.type==="RestElement"?xo(i.argument,t):xo(i.value,t);break;case"ArrayPattern":n.elements.forEach(i=>{i&&xo(i,t)});break;case"RestElement":xo(n.argument,t);break;case"AssignmentPattern":xo(n.left,t);break}return t}function qk(n,t){n in t?t[n]++:t[n]=1}function Ub(n,t,a){const{name:i}=t;n.scopeIds&&n.scopeIds.has(i)||(qk(i,a),(n.scopeIds||(n.scopeIds=new Set)).add(i))}const hM=n=>/Function(?:Expression|Declaration)$|Method$/.test(n.type),mM=n=>n&&(n.type==="ObjectProperty"||n.type==="ObjectMethod")&&!n.computed,I1e=(n,t)=>mM(t)&&t.key===n;function u7t(n,t,a){switch(t.type){case"MemberExpression":case"OptionalMemberExpression":return t.property===n?!!t.computed:t.object===n;case"JSXMemberExpression":return t.object===n;case"VariableDeclarator":return t.init===n;case"ArrowFunctionExpression":return t.body===n;case"PrivateName":return!1;case"ClassMethod":case"ClassPrivateMethod":case"ObjectMethod":return t.key===n?!!t.computed:!1;case"ObjectProperty":return t.key===n?!!t.computed:!a;case"ClassProperty":return t.key===n?!!t.computed:!0;case"ClassPrivateProperty":return t.key!==n;case"ClassDeclaration":case"ClassExpression":return t.superClass===n;case"AssignmentExpression":return t.right===n;case"AssignmentPattern":return t.right===n;case"LabeledStatement":return!1;case"CatchClause":return!1;case"RestElement":return!1;case"BreakStatement":case"ContinueStatement":return!1;case"FunctionDeclaration":case"FunctionExpression":return!1;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"ExportSpecifier":return t.local===n;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ImportAttribute":return!1;case"JSXAttribute":return!1;case"ObjectPattern":case"ArrayPattern":return!1;case"MetaProperty":return!1;case"ObjectTypeProperty":return t.key!==n;case"TSEnumMember":return t.id!==n;case"TSPropertySignature":return t.key===n?!!t.computed:!0}return!0}const yM=["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"];function Yy(n){return yM.includes(n.type)?Yy(n.expression):n}const Ps=n=>n.type===4&&n.isStatic;function gM(n){switch(n){case"Teleport":case"teleport":return Lp;case"Suspense":case"suspense":return V6;case"KeepAlive":case"keep-alive":return my;case"BaseTransition":case"base-transition":return VL}}const c7t=/^\d|[^\$\w\xA0-\uFFFF]/,Pl=n=>!c7t.test(n),d7t=/[A-Za-z_$\xA0-\uFFFF]/,p7t=/[\.\?\w$\xA0-\uFFFF]/,f7t=/\s+[.[]\s*|\s*[.[]\s+/g,ix=n=>n.type===4?n.content:n.loc.source,h7t=n=>{const t=ix(n).trim().replace(f7t,b=>b.trim());let a=0,i=[],d=0,p=0,y=null;for(let b=0;b<t.length;b++){const v=t.charAt(b);switch(a){case 0:if(v==="[")i.push(a),a=1,d++;else if(v==="(")i.push(a),a=2,p++;else if(!(b===0?d7t:p7t).test(v))return!1;break;case 1:v==="'"||v==='"'||v==="`"?(i.push(a),a=3,y=v):v==="["?d++:v==="]"&&(--d||(a=i.pop()));break;case 2:if(v==="'"||v==='"'||v==="`")i.push(a),a=3,y=v;else if(v==="(")p++;else if(v===")"){if(b===t.length-1)return!1;--p||(a=i.pop())}break;case 3:v===y&&(a=i.pop(),y=null);break}}return!d&&!p},C1e=(n,t)=>{try{let a=n.ast||Ey(ix(n),{plugins:t.expressionPlugins?[...t.expressionPlugins,"typescript"]:["typescript"]});return a=Yy(a),a.type==="MemberExpression"||a.type==="OptionalMemberExpression"||a.type==="Identifier"&&a.name!=="undefined"}catch{return!1}},vM=C1e,m7t=/^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,y7t=n=>m7t.test(ix(n)),j1e=(n,t)=>{try{let a=n.ast||Ey(ix(n),{plugins:t.expressionPlugins?[...t.expressionPlugins,"typescript"]:["typescript"]});return a.type==="Program"&&(a=a.body[0],a.type==="ExpressionStatement"&&(a=a.expression)),a=Yy(a),a.type==="FunctionExpression"||a.type==="ArrowFunctionExpression"}catch{return!1}},O1e=j1e;function Uk(n,t,a=t.length){return bM({offset:n.offset,line:n.line,column:n.column},t,a)}function bM(n,t,a=t.length){let i=0,d=-1;for(let p=0;p<a;p++)t.charCodeAt(p)===10&&(i++,d=p);return n.offset+=a,n.line+=i,n.column=d===-1?n.column+a:a-d,n}function Vk(n,t){if(!n)throw new Error(t||"unexpected compiler condition")}function Es(n,t,a=!1){for(let i=0;i<n.props.length;i++){const d=n.props[i];if(d.type===7&&(a||d.exp)&&(Ca(t)?d.name===t:t.test(d.name)))return d}}function Kp(n,t,a=!1,i=!1){for(let d=0;d<n.props.length;d++){const p=n.props[d];if(p.type===6){if(a)continue;if(p.name===t&&(p.value||i))return p}else if(p.name==="bind"&&(p.exp||i)&&gl(p.arg,t))return p}}function gl(n,t){return!!(n&&Ps(n)&&n.content===t)}function _1e(n){return n.props.some(t=>t.type===7&&t.name==="bind"&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function b2(n){return n.type===5||n.type===2}function xM(n){return n.type===7&&n.name==="slot"}function Hp(n){return n.type===1&&n.tagType===3}function Sy(n){return n.type===1&&n.tagType===2}const g7t=new Set([Wp,af]);function N1e(n,t=[]){if(n&&!Ca(n)&&n.type===14){const a=n.callee;if(!Ca(a)&&g7t.has(a))return N1e(n.arguments[0],t.concat(n))}return[n,t]}function Ty(n,t,a){let i,d=n.type===13?n.props:n.arguments[2],p=[],y;if(d&&!Ca(d)&&d.type===14){const b=N1e(d);d=b[0],p=b[1],y=p[p.length-1]}if(d==null||Ca(d))i=ni([t]);else if(d.type===14){const b=d.arguments[0];!Ca(b)&&b.type===15?Lhe(t,b)||b.properties.unshift(t):d.callee===ex?i=pn(a.helper(gy),[ni([t]),d]):d.arguments.unshift(ni([t])),!i&&(i=d)}else d.type===15?(Lhe(t,d)||d.properties.unshift(t),i=d):(i=pn(a.helper(gy),[ni([t]),d]),y&&y.callee===af&&(y=p[p.length-2]));n.type===13?y?y.arguments[0]=i:n.props=i:y?y.arguments[0]=i:n.arguments[2]=i}function Lhe(n,t){let a=!1;if(n.key.type===4){const i=n.key.content;a=t.properties.some(d=>d.key.type===4&&d.key.content===i)}return a}function wy(n,t){return`_${t}_${n.replace(/[^\w]/g,(a,i)=>a==="-"?"_":n.charCodeAt(i).toString())}`}function Us(n,t){if(!n||Object.keys(t).length===0)return!1;switch(n.type){case 1:for(let a=0;a<n.props.length;a++){const i=n.props[a];if(i.type===7&&(Us(i.arg,t)||Us(i.exp,t)))return!0}return n.children.some(a=>Us(a,t));case 11:return Us(n.source,t)?!0:n.children.some(a=>Us(a,t));case 9:return n.branches.some(a=>Us(a,t));case 10:return Us(n.condition,t)?!0:n.children.some(a=>Us(a,t));case 4:return!n.isStatic&&Pl(n.content)&&!!t[n.content];case 8:return n.children.some(a=>tf(a)&&Us(a,t));case 5:case 12:return Us(n.content,t);case 2:case 3:case 20:return!1;default:return!1}}function k1e(n){return n.type===14&&n.callee===rx?n.arguments[1].returns:n}const D1e=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,L1e={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:qN,isPreTag:qN,isCustomElement:qN,onError:YL,onWarn:a1e,comments:!0,prefixIdentifiers:!1};let Ka=L1e,V2=null,wl="",Zn=null,Aa=null,Ai="",cl=-1,Wc=-1,W2=0,Eu=!1,Wk=null;const dn=[],za=new bxt(dn,{onerr:bs,ontext(n,t){Vb(Yn(n,t),n,t)},ontextentity(n,t,a){Vb(n,t,a)},oninterpolation(n,t){if(Eu)return Vb(Yn(n,t),n,t);let a=n+za.delimiterOpen.length,i=t-za.delimiterClose.length;for(;ri(wl.charCodeAt(a));)a++;for(;ri(wl.charCodeAt(i-1));)i--;let d=Yn(a,i);d.includes("&")&&(d=vxt(d)),Gk({type:5,content:R2(d,!1,xn(a,i)),loc:xn(n,t)})},onopentagname(n,t){const a=Yn(n,t);Zn={type:1,tag:a,ns:Ka.getNamespace(a,dn[0],Ka.ns),tagType:0,props:[],children:[],loc:xn(n-1,t),codegenNode:void 0}},onopentagend(n){Bhe(n)},onclosetag(n,t){const a=Yn(n,t);if(!Ka.isVoidTag(a)){let i=!1;for(let d=0;d<dn.length;d++)if(dn[d].tag.toLowerCase()===a.toLowerCase()){i=!0,d>0&&bs(24,dn[0].loc.start.offset);for(let y=0;y<=d;y++){const b=dn.shift();x2(b,t,y<d)}break}i||bs(23,M1e(n,60))}},onselfclosingtag(n){const t=Zn.tag;Zn.isSelfClosing=!0,Bhe(n),dn[0]&&dn[0].tag===t&&x2(dn.shift(),n)},onattribname(n,t){Aa={type:6,name:Yn(n,t),nameLoc:xn(n,t),value:void 0,loc:xn(n)}},ondirname(n,t){const a=Yn(n,t),i=a==="."||a===":"?"bind":a==="@"?"on":a==="#"?"slot":a.slice(2);if(!Eu&&i===""&&bs(26,n),Eu||i==="")Aa={type:6,name:a,nameLoc:xn(n,t),value:void 0,loc:xn(n)};else if(Aa={type:7,name:i,rawName:a,exp:void 0,arg:void 0,modifiers:a==="."?[Fr("prop")]:[],loc:xn(n)},i==="pre"){Eu=za.inVPre=!0,Wk=Zn;const d=Zn.props;for(let p=0;p<d.length;p++)d[p].type===7&&(d[p]=I7t(d[p]))}},ondirarg(n,t){if(n===t)return;const a=Yn(n,t);if(Eu)Aa.name+=a,Jc(Aa.nameLoc,t);else{const i=a[0]!=="[";Aa.arg=R2(i?a:a.slice(1,-1),i,xn(n,t),i?3:0)}},ondirmodifier(n,t){const a=Yn(n,t);if(Eu)Aa.name+="."+a,Jc(Aa.nameLoc,t);else if(Aa.name==="slot"){const i=Aa.arg;i&&(i.content+="."+a,Jc(i.loc,t))}else{const i=Fr(a,!0,xn(n,t));Aa.modifiers.push(i)}},onattribdata(n,t){Ai+=Yn(n,t),cl<0&&(cl=n),Wc=t},onattribentity(n,t,a){Ai+=n,cl<0&&(cl=t),Wc=a},onattribnameend(n){const t=Aa.loc.start.offset,a=Yn(t,n);Aa.type===7&&(Aa.rawName=a),Zn.props.some(i=>(i.type===7?i.rawName:i.name)===a)&&bs(2,t)},onattribend(n,t){if(Zn&&Aa){if(Jc(Aa.loc,t),n!==0)if(Aa.type===6)Aa.name==="class"&&(Ai=F1e(Ai).trim()),n===1&&!Ai&&bs(13,t),Aa.value={type:2,content:Ai,loc:n===1?xn(cl,Wc):xn(cl-1,Wc+1)},za.inSFCRoot&&Zn.tag==="template"&&Aa.name==="lang"&&Ai&&Ai!=="html"&&za.enterRCDATA(F2("</template"),0);else{let a=0;Aa.name==="for"?a=3:Aa.name==="slot"?a=1:Aa.name==="on"&&Ai.includes(";")&&(a=2),Aa.exp=R2(Ai,!1,xn(cl,Wc),0,a),Aa.name==="for"&&(Aa.forParseResult=b7t(Aa.exp))}(Aa.type!==7||Aa.name!=="pre")&&Zn.props.push(Aa)}Ai="",cl=Wc=-1},oncomment(n,t){Ka.comments&&Gk({type:3,content:Yn(n,t),loc:xn(n-4,t+3)})},onend(){const n=wl.length;if(za.state!==1)switch(za.state){case 5:case 8:bs(5,n);break;case 3:case 4:bs(25,za.sectionStart);break;case 28:za.currentSequence===Wn.CdataEnd?bs(6,n):bs(7,n);break;case 6:case 7:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:bs(9,n);break}for(let t=0;t<dn.length;t++)x2(dn[t],n-1),bs(24,dn[t].loc.start.offset)},oncdata(n,t){dn[0].ns!==0?Vb(Yn(n,t),n,t):bs(1,n-9)},onprocessinginstruction(n){(dn[0]?dn[0].ns:Ka.ns)===0&&bs(21,n-1)}}),Mhe=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,v7t=/^\(|\)$/g;function b7t(n){const t=n.loc,a=n.content,i=a.match(D1e);if(!i)return;const[,d,p]=i,y=(A,_,C=!1)=>{const q=t.start.offset+_,M=q+A.length;return R2(A,!1,xn(q,M),0,C?1:0)},b={source:y(p.trim(),a.indexOf(p,d.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let v=d.trim().replace(v7t,"").trim();const E=d.indexOf(v),S=v.match(Mhe);if(S){v=v.replace(Mhe,"").trim();const A=S[1].trim();let _;if(A&&(_=a.indexOf(A,E+v.length),b.key=y(A,_,!0)),S[2]){const C=S[2].trim();C&&(b.index=y(C,a.indexOf(C,b.key?_+A.length:E+v.length),!0))}}return v&&(b.value=y(v,E,!0)),b}function Yn(n,t){return wl.slice(n,t)}function Bhe(n){za.inSFCRoot&&(Zn.innerLoc=xn(n+1,n+1)),Gk(Zn);const{tag:t,ns:a}=Zn;a===0&&Ka.isPreTag(t)&&W2++,Ka.isVoidTag(t)?x2(Zn,n):(dn.unshift(Zn),(a===1||a===2)&&(za.inXML=!0)),Zn=null}function Vb(n,t,a){const i=dn[0]||V2,d=i.children[i.children.length-1];d&&d.type===2?(d.content+=n,Jc(d.loc,a)):i.children.push({type:2,content:n,loc:xn(t,a)})}function x2(n,t,a=!1){a?Jc(n.loc,M1e(t,60)):Jc(n.loc,x7t(t,62)+1),za.inSFCRoot&&(n.children.length?n.innerLoc.end=El({},n.children[n.children.length-1].loc.end):n.innerLoc.end=El({},n.innerLoc.start),n.innerLoc.source=Yn(n.innerLoc.start.offset,n.innerLoc.end.offset));const{tag:i,ns:d}=n;Eu||(i==="slot"?n.tagType=2:E7t(n)?n.tagType=3:S7t(n)&&(n.tagType=1)),za.inRCDATA||(n.children=B1e(n.children,n.tag)),d===0&&Ka.isPreTag(i)&&W2--,Wk===n&&(Eu=za.inVPre=!1,Wk=null),za.inXML&&(dn[0]?dn[0].ns:Ka.ns)===0&&(za.inXML=!1)}function x7t(n,t){let a=n;for(;wl.charCodeAt(a)!==t&&a<wl.length-1;)a++;return a}function M1e(n,t){let a=n;for(;wl.charCodeAt(a)!==t&&a>=0;)a--;return a}const R7t=new Set(["if","else","else-if","for","slot"]);function E7t({tag:n,props:t}){if(n==="template"){for(let a=0;a<t.length;a++)if(t[a].type===7&&R7t.has(t[a].name))return!0}return!1}function S7t({tag:n,props:t}){if(Ka.isCustomElement(n))return!1;if(n==="component"||T7t(n.charCodeAt(0))||gM(n)||Ka.isBuiltInComponent&&Ka.isBuiltInComponent(n)||Ka.isNativeTag&&!Ka.isNativeTag(n))return!0;for(let a=0;a<t.length;a++){const i=t[a];if(i.type===6&&i.name==="is"&&i.value&&i.value.content.startsWith("vue:"))return!0}return!1}function T7t(n){return n>64&&n<91}const w7t=/\r\n/g;function B1e(n,t){const a=Ka.whitespace!=="preserve";let i=!1;for(let d=0;d<n.length;d++){const p=n[d];if(p.type===2)if(W2)p.content=p.content.replace(w7t,` +`);else if(P7t(p.content)){const y=n[d-1]&&n[d-1].type,b=n[d+1]&&n[d+1].type;!y||!b||a&&(y===3&&(b===3||b===1)||y===1&&(b===3||b===1&&A7t(p.content)))?(i=!0,n[d]=null):p.content=" "}else a&&(p.content=F1e(p.content))}if(W2&&t&&Ka.isPreTag(t)){const d=n[0];d&&d.type===2&&(d.content=d.content.replace(/^\r?\n/,""))}return i?n.filter(Boolean):n}function P7t(n){for(let t=0;t<n.length;t++)if(!ri(n.charCodeAt(t)))return!1;return!0}function A7t(n){for(let t=0;t<n.length;t++){const a=n.charCodeAt(t);if(a===10||a===13)return!0}return!1}function F1e(n){let t="",a=!1;for(let i=0;i<n.length;i++)ri(n.charCodeAt(i))?a||(t+=" ",a=!0):(t+=n[i],a=!1);return t}function Gk(n){(dn[0]||V2).children.push(n)}function xn(n,t){return{start:za.getPos(n),end:t==null?t:za.getPos(t),source:t==null?t:Yn(n,t)}}function Jc(n,t){n.end=za.getPos(t),n.source=Yn(n.start.offset,t)}function I7t(n){const t={type:6,name:n.rawName,nameLoc:xn(n.loc.start.offset,n.loc.start.offset+n.rawName.length),value:void 0,loc:n.loc};if(n.exp){const a=n.exp.loc;a.end.offset<n.loc.end.offset&&(a.start.offset--,a.start.column--,a.end.offset++,a.end.column++),t.value={type:2,content:n.exp.content,loc:a}}return t}function R2(n,t=!1,a,i=0,d=0){const p=Fr(n,t,a,i);if(!t&&Ka.prefixIdentifiers&&d!==3&&n.trim()){if(Pl(n))return p.ast=null,p;try{const y=Ka.expressionPlugins,b={plugins:y?[...y,"typescript"]:["typescript"]};d===2?p.ast=$k(` ${n} `,b).program:d===1?p.ast=Ey(`(${n})=>{}`,b):p.ast=Ey(`(${n})`,b)}catch(y){p.ast=!1,bs(45,a.start.offset,y.message)}}return p}function bs(n,t,a){Ka.onError(_a(n,xn(t,t),void 0,a))}function C7t(){za.reset(),Zn=null,Aa=null,Ai="",cl=-1,Wc=-1,dn.length=0}function RM(n,t){if(C7t(),wl=n,Ka=El({},L1e),t){let d;for(d in t)t[d]!=null&&(Ka[d]=t[d])}Ka.decodeEntities&&console.warn("[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds."),za.mode=Ka.parseMode==="html"?1:Ka.parseMode==="sfc"?2:0,za.inXML=Ka.ns===1||Ka.ns===2;const a=t&&t.delimiters;a&&(za.delimiterOpen=F2(a[0]),za.delimiterClose=F2(a[1]));const i=V2=JL([],n);return za.parse(wl),i.loc=xn(0,n.length),i.children=B1e(i.children),V2=null,i}function j7t(n,t){E2(n,void 0,t,$1e(n,n.children[0]))}function $1e(n,t){const{children:a}=n;return a.length===1&&t.type===1&&!Sy(t)}function E2(n,t,a,i=!1,d=!1){const{children:p}=n,y=[];for(let S=0;S<p.length;S++){const A=p[S];if(A.type===1&&A.tagType===0){const _=i?0:Gs(A,a);if(_>0){if(_>=2){A.codegenNode.patchFlag=-1,y.push(A);continue}}else{const C=A.codegenNode;if(C.type===13){const q=C.patchFlag;if((q===void 0||q===512||q===1)&&U1e(A,a)>=2){const M=V1e(A);M&&(C.props=a.hoist(M))}C.dynamicProps&&(C.dynamicProps=a.hoist(C.dynamicProps))}}}else if(A.type===12&&(i?0:Gs(A,a))>=2){y.push(A);continue}if(A.type===1){const _=A.tagType===1;_&&a.scopes.vSlot++,E2(A,n,a,!1,d),_&&a.scopes.vSlot--}else if(A.type===11)E2(A,n,a,A.children.length===1,!0);else if(A.type===9)for(let _=0;_<A.branches.length;_++)E2(A.branches[_],n,a,A.branches[_].children.length===1,d)}let b=!1;if(y.length===p.length&&n.type===1){if(n.tagType===0&&n.codegenNode&&n.codegenNode.type===13&&es(n.codegenNode.children))n.codegenNode.children=v(Sl(n.codegenNode.children)),b=!0;else if(n.tagType===1&&n.codegenNode&&n.codegenNode.type===13&&n.codegenNode.children&&!es(n.codegenNode.children)&&n.codegenNode.children.type===15){const S=E(n.codegenNode,"default");S&&(S.returns=v(Sl(S.returns)),b=!0)}else if(n.tagType===3&&t&&t.type===1&&t.tagType===1&&t.codegenNode&&t.codegenNode.type===13&&t.codegenNode.children&&!es(t.codegenNode.children)&&t.codegenNode.children.type===15){const S=Es(n,"slot",!0),A=S&&S.arg&&E(t.codegenNode,S.arg);A&&(A.returns=v(Sl(A.returns)),b=!0)}}if(!b)for(const S of y)S.codegenNode=a.cache(S.codegenNode);function v(S){const A=a.cache(S);return d&&a.hmr&&(A.needArraySpread=!0),A}function E(S,A){if(S.children&&!es(S.children)&&S.children.type===15){const _=S.children.properties.find(C=>C.key===A||C.key.content===A);return _&&_.value}}y.length&&a.transformHoist&&a.transformHoist(p,a,n)}function Gs(n,t){const{constantCache:a}=t;switch(n.type){case 1:if(n.tagType!==0)return 0;const i=a.get(n);if(i!==void 0)return i;const d=n.codegenNode;if(d.type!==13||d.isBlock&&n.tag!=="svg"&&n.tag!=="foreignObject"&&n.tag!=="math")return 0;if(d.patchFlag===void 0){let y=3;const b=U1e(n,t);if(b===0)return a.set(n,0),0;b<y&&(y=b);for(let v=0;v<n.children.length;v++){const E=Gs(n.children[v],t);if(E===0)return a.set(n,0),0;E<y&&(y=E)}if(y>1)for(let v=0;v<n.props.length;v++){const E=n.props[v];if(E.type===7&&E.name==="bind"&&E.exp){const S=Gs(E.exp,t);if(S===0)return a.set(n,0),0;S<y&&(y=S)}}if(d.isBlock){for(let v=0;v<n.props.length;v++)if(n.props[v].type===7)return a.set(n,0),0;t.removeHelper(Ou),t.removeHelper(id(t.inSSR,d.isComponent)),d.isBlock=!1,t.helper(sd(t.inSSR,d.isComponent))}return a.set(n,y),y}else return a.set(n,0),0;case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return Gs(n.content,t);case 4:return n.constType;case 8:let p=3;for(let y=0;y<n.children.length;y++){const b=n.children[y];if(Ca(b)||dd(b))continue;const v=Gs(b,t);if(v===0)return 0;v<p&&(p=v)}return p;case 20:return 2;default:return 0}}const O7t=new Set([Q6,Z6,Wp,af]);function q1e(n,t){if(n.type===14&&!Ca(n.callee)&&O7t.has(n.callee)){const a=n.arguments[0];if(a.type===4)return Gs(a,t);if(a.type===14)return q1e(a,t)}return 0}function U1e(n,t){let a=3;const i=V1e(n);if(i&&i.type===15){const{properties:d}=i;for(let p=0;p<d.length;p++){const{key:y,value:b}=d[p],v=Gs(y,t);if(v===0)return v;v<a&&(a=v);let E;if(b.type===4?E=Gs(b,t):b.type===14?E=q1e(b,t):E=0,E===0)return E;E<a&&(a=E)}}return a}function V1e(n){const t=n.codegenNode;if(t.type===13)return t.props}function W1e(n,{filename:t="",prefixIdentifiers:a=!1,hoistStatic:i=!1,hmr:d=!1,cacheHandlers:p=!1,nodeTransforms:y=[],directiveTransforms:b={},transformHoist:v=null,isBuiltInComponent:E=$N,isCustomElement:S=$N,expressionPlugins:A=[],scopeId:_=null,slotted:C=!0,ssr:q=!1,inSSR:M=!1,ssrCssVars:W="",bindingMetadata:z=S6t,inline:Y=!1,isTS:Z=!1,onError:ce=YL,onWarn:ge=a1e,compatConfig:Ge}){const Je=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),re={filename:t,selfName:Je&&ju(Ws(Je[1])),prefixIdentifiers:a,hoistStatic:i,hmr:d,cacheHandlers:p,nodeTransforms:y,directiveTransforms:b,transformHoist:v,isBuiltInComponent:E,isCustomElement:S,expressionPlugins:A,scopeId:_,slotted:C,ssr:q,inSSR:M,ssrCssVars:W,bindingMetadata:z,inline:Y,isTS:Z,onError:ce,onWarn:ge,compatConfig:Ge,root:n,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:n,childIndex:0,inVOnce:!1,helper(se){const fe=re.helpers.get(se)||0;return re.helpers.set(se,fe+1),se},removeHelper(se){const fe=re.helpers.get(se);if(fe){const kt=fe-1;kt?re.helpers.set(se,kt):re.helpers.delete(se)}},helperString(se){return`_${Vs[re.helper(se)]}`},replaceNode(se){{if(!re.currentNode)throw new Error("Node being replaced is already removed.");if(!re.parent)throw new Error("Cannot replace root node.")}re.parent.children[re.childIndex]=re.currentNode=se},removeNode(se){if(!re.parent)throw new Error("Cannot remove root node.");const fe=re.parent.children,kt=se?fe.indexOf(se):re.currentNode?re.childIndex:-1;if(kt<0)throw new Error("node being removed is not a child of current parent");!se||se===re.currentNode?(re.currentNode=null,re.onNodeRemoved()):re.childIndex>kt&&(re.childIndex--,re.onNodeRemoved()),re.parent.children.splice(kt,1)},onNodeRemoved:$N,addIdentifiers(se){Ca(se)?Ae(se):se.identifiers?se.identifiers.forEach(Ae):se.type===4&&Ae(se.content)},removeIdentifiers(se){Ca(se)?je(se):se.identifiers?se.identifiers.forEach(je):se.type===4&&je(se.content)},hoist(se){Ca(se)&&(se=Fr(se)),re.hoists.push(se);const fe=Fr(`_hoisted_${re.hoists.length}`,!1,se.loc,2);return fe.hoisted=se,fe},cache(se,fe=!1){const kt=Yge(re.cached.length,se,fe);return re.cached.push(kt),kt}};function Ae(se){const{identifiers:fe}=re;fe[se]===void 0&&(fe[se]=0),fe[se]++}function je(se){re.identifiers[se]--}return re}function G1e(n,t){const a=W1e(n,t);Qy(n,a),t.hoistStatic&&j7t(n,a),t.ssr||_7t(n,a),n.helpers=new Set([...a.helpers.keys()]),n.components=[...a.components],n.directives=[...a.directives],n.imports=a.imports,n.hoists=a.hoists,n.temps=a.temps,n.cached=a.cached,n.transformed=!0}function _7t(n,t){const{helper:a}=t,{children:i}=n;if(i.length===1){const d=i[0];if($1e(n,d)&&d.codegenNode){const p=d.codegenNode;p.type===13&&ax(p,t),n.codegenNode=p}else n.codegenNode=d}else if(i.length>1){let d=64,p=Au[64];i.filter(y=>y.type!==3).length===1&&(d|=2048,p+=`, ${Au[2048]}`),n.codegenNode=Gp(t,a(Vp),void 0,n.children,d,void 0,void 0,!0,void 0,!1)}}function N7t(n,t){let a=0;const i=()=>{a--};for(;a<n.children.length;a++){const d=n.children[a];Ca(d)||(t.grandParent=t.parent,t.parent=n,t.childIndex=a,t.onNodeRemoved=i,Qy(d,t))}}function Qy(n,t){t.currentNode=n;const{nodeTransforms:a}=t,i=[];for(let p=0;p<a.length;p++){const y=a[p](n,t);if(y&&(es(y)?i.push(...y):i.push(y)),t.currentNode)n=t.currentNode;else return}switch(n.type){case 3:t.ssr||t.helper(rf);break;case 5:t.ssr||t.helper(Xy);break;case 9:for(let p=0;p<n.branches.length;p++)Qy(n.branches[p],t);break;case 10:case 11:case 1:case 0:N7t(n,t);break}t.currentNode=n;let d=i.length;for(;d--;)i[d]()}function EM(n,t){const a=Ca(n)?i=>i===n:i=>n.test(i);return(i,d)=>{if(i.type===1){const{props:p}=i;if(i.tagType===3&&p.some(xM))return;const y=[];for(let b=0;b<p.length;b++){const v=p[b];if(v.type===7&&a(v.name)){p.splice(b,1),b--;const E=t(i,v,d);E&&y.push(E)}}return y}}}var nf={},SM={},ox={},TM={},Fhe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");TM.encode=function(n){if(0<=n&&n<Fhe.length)return Fhe[n];throw new TypeError("Must be between 0 and 63: "+n)};TM.decode=function(n){var t=65,a=90,i=97,d=122,p=48,y=57,b=43,v=47,E=26,S=52;return t<=n&&n<=a?n-t:i<=n&&n<=d?n-i+E:p<=n&&n<=y?n-p+S:n==b?62:n==v?63:-1};var K1e=TM,wM=5,H1e=1<<wM,z1e=H1e-1,X1e=H1e;function k7t(n){return n<0?(-n<<1)+1:(n<<1)+0}function D7t(n){var t=(n&1)===1,a=n>>1;return t?-a:a}ox.encode=function(t){var a="",i,d=k7t(t);do i=d&z1e,d>>>=wM,d>0&&(i|=X1e),a+=K1e.encode(i);while(d>0);return a};ox.decode=function(t,a,i){var d=t.length,p=0,y=0,b,v;do{if(a>=d)throw new Error("Expected more digits in base 64 VLQ value.");if(v=K1e.decode(t.charCodeAt(a++)),v===-1)throw new Error("Invalid base64 digit: "+t.charAt(a-1));b=!!(v&X1e),v&=z1e,p=p+(v<<y),y+=wM}while(b);i.value=D7t(p),i.rest=a};var sf={};(function(n){function t(re,Ae,je){if(Ae in re)return re[Ae];if(arguments.length===3)return je;throw new Error('"'+Ae+'" is a required argument.')}n.getArg=t;var a=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,i=/^data:.+\,.+$/;function d(re){var Ae=re.match(a);return Ae?{scheme:Ae[1],auth:Ae[2],host:Ae[3],port:Ae[4],path:Ae[5]}:null}n.urlParse=d;function p(re){var Ae="";return re.scheme&&(Ae+=re.scheme+":"),Ae+="//",re.auth&&(Ae+=re.auth+"@"),re.host&&(Ae+=re.host),re.port&&(Ae+=":"+re.port),re.path&&(Ae+=re.path),Ae}n.urlGenerate=p;var y=32;function b(re){var Ae=[];return function(je){for(var se=0;se<Ae.length;se++)if(Ae[se].input===je){var fe=Ae[0];return Ae[0]=Ae[se],Ae[se]=fe,Ae[0].result}var kt=re(je);return Ae.unshift({input:je,result:kt}),Ae.length>y&&Ae.pop(),kt}}var v=b(function(Ae){var je=Ae,se=d(Ae);if(se){if(!se.path)return Ae;je=se.path}for(var fe=n.isAbsolute(je),kt=[],Qt=0,mt=0;;)if(Qt=mt,mt=je.indexOf("/",Qt),mt===-1){kt.push(je.slice(Qt));break}else for(kt.push(je.slice(Qt,mt));mt<je.length&&je[mt]==="/";)mt++;for(var Tt,ne=0,mt=kt.length-1;mt>=0;mt--)Tt=kt[mt],Tt==="."?kt.splice(mt,1):Tt===".."?ne++:ne>0&&(Tt===""?(kt.splice(mt+1,ne),ne=0):(kt.splice(mt,2),ne--));return je=kt.join("/"),je===""&&(je=fe?"/":"."),se?(se.path=je,p(se)):je});n.normalize=v;function E(re,Ae){re===""&&(re="."),Ae===""&&(Ae=".");var je=d(Ae),se=d(re);if(se&&(re=se.path||"/"),je&&!je.scheme)return se&&(je.scheme=se.scheme),p(je);if(je||Ae.match(i))return Ae;if(se&&!se.host&&!se.path)return se.host=Ae,p(se);var fe=Ae.charAt(0)==="/"?Ae:v(re.replace(/\/+$/,"")+"/"+Ae);return se?(se.path=fe,p(se)):fe}n.join=E,n.isAbsolute=function(re){return re.charAt(0)==="/"||a.test(re)};function S(re,Ae){re===""&&(re="."),re=re.replace(/\/$/,"");for(var je=0;Ae.indexOf(re+"/")!==0;){var se=re.lastIndexOf("/");if(se<0||(re=re.slice(0,se),re.match(/^([^\/]+:\/)?\/*$/)))return Ae;++je}return Array(je+1).join("../")+Ae.substr(re.length+1)}n.relative=S;var A=function(){var re=Object.create(null);return!("__proto__"in re)}();function _(re){return re}function C(re){return M(re)?"$"+re:re}n.toSetString=A?_:C;function q(re){return M(re)?re.slice(1):re}n.fromSetString=A?_:q;function M(re){if(!re)return!1;var Ae=re.length;if(Ae<9||re.charCodeAt(Ae-1)!==95||re.charCodeAt(Ae-2)!==95||re.charCodeAt(Ae-3)!==111||re.charCodeAt(Ae-4)!==116||re.charCodeAt(Ae-5)!==111||re.charCodeAt(Ae-6)!==114||re.charCodeAt(Ae-7)!==112||re.charCodeAt(Ae-8)!==95||re.charCodeAt(Ae-9)!==95)return!1;for(var je=Ae-10;je>=0;je--)if(re.charCodeAt(je)!==36)return!1;return!0}function W(re,Ae,je){var se=ce(re.source,Ae.source);return se!==0||(se=re.originalLine-Ae.originalLine,se!==0)||(se=re.originalColumn-Ae.originalColumn,se!==0||je)||(se=re.generatedColumn-Ae.generatedColumn,se!==0)||(se=re.generatedLine-Ae.generatedLine,se!==0)?se:ce(re.name,Ae.name)}n.compareByOriginalPositions=W;function z(re,Ae,je){var se;return se=re.originalLine-Ae.originalLine,se!==0||(se=re.originalColumn-Ae.originalColumn,se!==0||je)||(se=re.generatedColumn-Ae.generatedColumn,se!==0)||(se=re.generatedLine-Ae.generatedLine,se!==0)?se:ce(re.name,Ae.name)}n.compareByOriginalPositionsNoSource=z;function Y(re,Ae,je){var se=re.generatedLine-Ae.generatedLine;return se!==0||(se=re.generatedColumn-Ae.generatedColumn,se!==0||je)||(se=ce(re.source,Ae.source),se!==0)||(se=re.originalLine-Ae.originalLine,se!==0)||(se=re.originalColumn-Ae.originalColumn,se!==0)?se:ce(re.name,Ae.name)}n.compareByGeneratedPositionsDeflated=Y;function Z(re,Ae,je){var se=re.generatedColumn-Ae.generatedColumn;return se!==0||je||(se=ce(re.source,Ae.source),se!==0)||(se=re.originalLine-Ae.originalLine,se!==0)||(se=re.originalColumn-Ae.originalColumn,se!==0)?se:ce(re.name,Ae.name)}n.compareByGeneratedPositionsDeflatedNoLine=Z;function ce(re,Ae){return re===Ae?0:re===null?1:Ae===null?-1:re>Ae?1:-1}function ge(re,Ae){var je=re.generatedLine-Ae.generatedLine;return je!==0||(je=re.generatedColumn-Ae.generatedColumn,je!==0)||(je=ce(re.source,Ae.source),je!==0)||(je=re.originalLine-Ae.originalLine,je!==0)||(je=re.originalColumn-Ae.originalColumn,je!==0)?je:ce(re.name,Ae.name)}n.compareByGeneratedPositionsInflated=ge;function Ge(re){return JSON.parse(re.replace(/^\)]}'[^\n]*\n/,""))}n.parseSourceMapInput=Ge;function Je(re,Ae,je){if(Ae=Ae||"",re&&(re[re.length-1]!=="/"&&Ae[0]!=="/"&&(re+="/"),Ae=re+Ae),je){var se=d(je);if(!se)throw new Error("sourceMapURL could not be parsed");if(se.path){var fe=se.path.lastIndexOf("/");fe>=0&&(se.path=se.path.substring(0,fe+1))}Ae=E(p(se),Ae)}return v(Ae)}n.computeSourceURL=Je})(sf);var PM={},AM=sf,IM=Object.prototype.hasOwnProperty,td=typeof Map<"u";function Al(){this._array=[],this._set=td?new Map:Object.create(null)}Al.fromArray=function(t,a){for(var i=new Al,d=0,p=t.length;d<p;d++)i.add(t[d],a);return i};Al.prototype.size=function(){return td?this._set.size:Object.getOwnPropertyNames(this._set).length};Al.prototype.add=function(t,a){var i=td?t:AM.toSetString(t),d=td?this.has(t):IM.call(this._set,i),p=this._array.length;(!d||a)&&this._array.push(t),d||(td?this._set.set(t,p):this._set[i]=p)};Al.prototype.has=function(t){if(td)return this._set.has(t);var a=AM.toSetString(t);return IM.call(this._set,a)};Al.prototype.indexOf=function(t){if(td){var a=this._set.get(t);if(a>=0)return a}else{var i=AM.toSetString(t);if(IM.call(this._set,i))return this._set[i]}throw new Error('"'+t+'" is not in the set.')};Al.prototype.at=function(t){if(t>=0&&t<this._array.length)return this._array[t];throw new Error("No element indexed by "+t)};Al.prototype.toArray=function(){return this._array.slice()};PM.ArraySet=Al;var J1e={},Y1e=sf;function L7t(n,t){var a=n.generatedLine,i=t.generatedLine,d=n.generatedColumn,p=t.generatedColumn;return i>a||i==a&&p>=d||Y1e.compareByGeneratedPositionsInflated(n,t)<=0}function lx(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}lx.prototype.unsortedForEach=function(t,a){this._array.forEach(t,a)};lx.prototype.add=function(t){L7t(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))};lx.prototype.toArray=function(){return this._sorted||(this._array.sort(Y1e.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};J1e.MappingList=lx;var Hm=ox,fn=sf,G2=PM.ArraySet,M7t=J1e.MappingList;function _i(n){n||(n={}),this._file=fn.getArg(n,"file",null),this._sourceRoot=fn.getArg(n,"sourceRoot",null),this._skipValidation=fn.getArg(n,"skipValidation",!1),this._ignoreInvalidMapping=fn.getArg(n,"ignoreInvalidMapping",!1),this._sources=new G2,this._names=new G2,this._mappings=new M7t,this._sourcesContents=null}_i.prototype._version=3;_i.fromSourceMap=function(t,a){var i=t.sourceRoot,d=new _i(Object.assign(a||{},{file:t.file,sourceRoot:i}));return t.eachMapping(function(p){var y={generated:{line:p.generatedLine,column:p.generatedColumn}};p.source!=null&&(y.source=p.source,i!=null&&(y.source=fn.relative(i,y.source)),y.original={line:p.originalLine,column:p.originalColumn},p.name!=null&&(y.name=p.name)),d.addMapping(y)}),t.sources.forEach(function(p){var y=p;i!==null&&(y=fn.relative(i,p)),d._sources.has(y)||d._sources.add(y);var b=t.sourceContentFor(p);b!=null&&d.setSourceContent(p,b)}),d};_i.prototype.addMapping=function(t){var a=fn.getArg(t,"generated"),i=fn.getArg(t,"original",null),d=fn.getArg(t,"source",null),p=fn.getArg(t,"name",null);!this._skipValidation&&this._validateMapping(a,i,d,p)===!1||(d!=null&&(d=String(d),this._sources.has(d)||this._sources.add(d)),p!=null&&(p=String(p),this._names.has(p)||this._names.add(p)),this._mappings.add({generatedLine:a.line,generatedColumn:a.column,originalLine:i!=null&&i.line,originalColumn:i!=null&&i.column,source:d,name:p}))};_i.prototype.setSourceContent=function(t,a){var i=t;this._sourceRoot!=null&&(i=fn.relative(this._sourceRoot,i)),a!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[fn.toSetString(i)]=a):this._sourcesContents&&(delete this._sourcesContents[fn.toSetString(i)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};_i.prototype.applySourceMap=function(t,a,i){var d=a;if(a==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);d=t.file}var p=this._sourceRoot;p!=null&&(d=fn.relative(p,d));var y=new G2,b=new G2;this._mappings.unsortedForEach(function(v){if(v.source===d&&v.originalLine!=null){var E=t.originalPositionFor({line:v.originalLine,column:v.originalColumn});E.source!=null&&(v.source=E.source,i!=null&&(v.source=fn.join(i,v.source)),p!=null&&(v.source=fn.relative(p,v.source)),v.originalLine=E.line,v.originalColumn=E.column,E.name!=null&&(v.name=E.name))}var S=v.source;S!=null&&!y.has(S)&&y.add(S);var A=v.name;A!=null&&!b.has(A)&&b.add(A)},this),this._sources=y,this._names=b,t.sources.forEach(function(v){var E=t.sourceContentFor(v);E!=null&&(i!=null&&(v=fn.join(i,v)),p!=null&&(v=fn.relative(p,v)),this.setSourceContent(v,E))},this)};_i.prototype._validateMapping=function(t,a,i,d){if(a&&typeof a.line!="number"&&typeof a.column!="number"){var p="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(p),!1;throw new Error(p)}if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!a&&!i&&!d)){if(t&&"line"in t&&"column"in t&&a&&"line"in a&&"column"in a&&t.line>0&&t.column>=0&&a.line>0&&a.column>=0&&i)return;var p="Invalid mapping: "+JSON.stringify({generated:t,source:i,original:a,name:d});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(p),!1;throw new Error(p)}};_i.prototype._serializeMappings=function(){for(var t=0,a=1,i=0,d=0,p=0,y=0,b="",v,E,S,A,_=this._mappings.toArray(),C=0,q=_.length;C<q;C++){if(E=_[C],v="",E.generatedLine!==a)for(t=0;E.generatedLine!==a;)v+=";",a++;else if(C>0){if(!fn.compareByGeneratedPositionsInflated(E,_[C-1]))continue;v+=","}v+=Hm.encode(E.generatedColumn-t),t=E.generatedColumn,E.source!=null&&(A=this._sources.indexOf(E.source),v+=Hm.encode(A-y),y=A,v+=Hm.encode(E.originalLine-1-d),d=E.originalLine-1,v+=Hm.encode(E.originalColumn-i),i=E.originalColumn,E.name!=null&&(S=this._names.indexOf(E.name),v+=Hm.encode(S-p),p=S)),b+=v}return b};_i.prototype._generateSourcesContent=function(t,a){return t.map(function(i){if(!this._sourcesContents)return null;a!=null&&(i=fn.relative(a,i));var d=fn.toSetString(i);return Object.prototype.hasOwnProperty.call(this._sourcesContents,d)?this._sourcesContents[d]:null},this)};_i.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};_i.prototype.toString=function(){return JSON.stringify(this.toJSON())};SM.SourceMapGenerator=_i;var ux={},Q1e={};(function(n){n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2;function t(a,i,d,p,y,b){var v=Math.floor((i-a)/2)+a,E=y(d,p[v],!0);return E===0?v:E>0?i-v>1?t(v,i,d,p,y,b):b==n.LEAST_UPPER_BOUND?i<p.length?i:-1:v:v-a>1?t(a,v,d,p,y,b):b==n.LEAST_UPPER_BOUND?v:a<0?-1:a}n.search=function(i,d,p,y){if(d.length===0)return-1;var b=t(-1,d.length,i,d,p,y||n.GREATEST_LOWER_BOUND);if(b<0)return-1;for(;b-1>=0&&p(d[b],d[b-1],!0)===0;)--b;return b}})(Q1e);var Z1e={};function B7t(n){function t(d,p,y){var b=d[p];d[p]=d[y],d[y]=b}function a(d,p){return Math.round(d+Math.random()*(p-d))}function i(d,p,y,b){if(y<b){var v=a(y,b),E=y-1;t(d,v,b);for(var S=d[b],A=y;A<b;A++)p(d[A],S,!1)<=0&&(E+=1,t(d,E,A));t(d,E+1,A);var _=E+1;i(d,p,y,_-1),i(d,p,_+1,b)}}return i}function F7t(n){let t=B7t.toString();return new Function(`return ${t}`)()(n)}let $he=new WeakMap;Z1e.quickSort=function(n,t,a=0){let i=$he.get(t);i===void 0&&(i=F7t(t),$he.set(t,i)),i(n,t,a,n.length-1)};var vr=sf,CM=Q1e,zp=PM.ArraySet,$7t=ox,Py=Z1e.quickSort;function Xa(n,t){var a=n;return typeof n=="string"&&(a=vr.parseSourceMapInput(n)),a.sections!=null?new Yi(a,t):new Gn(a,t)}Xa.fromSourceMap=function(n,t){return Gn.fromSourceMap(n,t)};Xa.prototype._version=3;Xa.prototype.__generatedMappings=null;Object.defineProperty(Xa.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}});Xa.prototype.__originalMappings=null;Object.defineProperty(Xa.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}});Xa.prototype._charIsMappingSeparator=function(t,a){var i=t.charAt(a);return i===";"||i===","};Xa.prototype._parseMappings=function(t,a){throw new Error("Subclasses must implement _parseMappings")};Xa.GENERATED_ORDER=1;Xa.ORIGINAL_ORDER=2;Xa.GREATEST_LOWER_BOUND=1;Xa.LEAST_UPPER_BOUND=2;Xa.prototype.eachMapping=function(t,a,i){var d=a||null,p=i||Xa.GENERATED_ORDER,y;switch(p){case Xa.GENERATED_ORDER:y=this._generatedMappings;break;case Xa.ORIGINAL_ORDER:y=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var b=this.sourceRoot,v=t.bind(d),E=this._names,S=this._sources,A=this._sourceMapURL,_=0,C=y.length;_<C;_++){var q=y[_],M=q.source===null?null:S.at(q.source);M=vr.computeSourceURL(b,M,A),v({source:M,generatedLine:q.generatedLine,generatedColumn:q.generatedColumn,originalLine:q.originalLine,originalColumn:q.originalColumn,name:q.name===null?null:E.at(q.name)})}};Xa.prototype.allGeneratedPositionsFor=function(t){var a=vr.getArg(t,"line"),i={source:vr.getArg(t,"source"),originalLine:a,originalColumn:vr.getArg(t,"column",0)};if(i.source=this._findSourceIndex(i.source),i.source<0)return[];var d=[],p=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",vr.compareByOriginalPositions,CM.LEAST_UPPER_BOUND);if(p>=0){var y=this._originalMappings[p];if(t.column===void 0)for(var b=y.originalLine;y&&y.originalLine===b;)d.push({line:vr.getArg(y,"generatedLine",null),column:vr.getArg(y,"generatedColumn",null),lastColumn:vr.getArg(y,"lastGeneratedColumn",null)}),y=this._originalMappings[++p];else for(var v=y.originalColumn;y&&y.originalLine===a&&y.originalColumn==v;)d.push({line:vr.getArg(y,"generatedLine",null),column:vr.getArg(y,"generatedColumn",null),lastColumn:vr.getArg(y,"lastGeneratedColumn",null)}),y=this._originalMappings[++p]}return d};ux.SourceMapConsumer=Xa;function Gn(n,t){var a=n;typeof n=="string"&&(a=vr.parseSourceMapInput(n));var i=vr.getArg(a,"version"),d=vr.getArg(a,"sources"),p=vr.getArg(a,"names",[]),y=vr.getArg(a,"sourceRoot",null),b=vr.getArg(a,"sourcesContent",null),v=vr.getArg(a,"mappings"),E=vr.getArg(a,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);y&&(y=vr.normalize(y)),d=d.map(String).map(vr.normalize).map(function(S){return y&&vr.isAbsolute(y)&&vr.isAbsolute(S)?vr.relative(y,S):S}),this._names=zp.fromArray(p.map(String),!0),this._sources=zp.fromArray(d,!0),this._absoluteSources=this._sources.toArray().map(function(S){return vr.computeSourceURL(y,S,t)}),this.sourceRoot=y,this.sourcesContent=b,this._mappings=v,this._sourceMapURL=t,this.file=E}Gn.prototype=Object.create(Xa.prototype);Gn.prototype.consumer=Xa;Gn.prototype._findSourceIndex=function(n){var t=n;if(this.sourceRoot!=null&&(t=vr.relative(this.sourceRoot,t)),this._sources.has(t))return this._sources.indexOf(t);var a;for(a=0;a<this._absoluteSources.length;++a)if(this._absoluteSources[a]==n)return a;return-1};Gn.fromSourceMap=function(t,a){var i=Object.create(Gn.prototype),d=i._names=zp.fromArray(t._names.toArray(),!0),p=i._sources=zp.fromArray(t._sources.toArray(),!0);i.sourceRoot=t._sourceRoot,i.sourcesContent=t._generateSourcesContent(i._sources.toArray(),i.sourceRoot),i.file=t._file,i._sourceMapURL=a,i._absoluteSources=i._sources.toArray().map(function(C){return vr.computeSourceURL(i.sourceRoot,C,a)});for(var y=t._mappings.toArray().slice(),b=i.__generatedMappings=[],v=i.__originalMappings=[],E=0,S=y.length;E<S;E++){var A=y[E],_=new e0e;_.generatedLine=A.generatedLine,_.generatedColumn=A.generatedColumn,A.source&&(_.source=p.indexOf(A.source),_.originalLine=A.originalLine,_.originalColumn=A.originalColumn,A.name&&(_.name=d.indexOf(A.name)),v.push(_)),b.push(_)}return Py(i.__originalMappings,vr.compareByOriginalPositions),i};Gn.prototype._version=3;Object.defineProperty(Gn.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function e0e(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}const JN=vr.compareByGeneratedPositionsDeflatedNoLine;function qhe(n,t){let a=n.length,i=n.length-t;if(!(i<=1))if(i==2){let d=n[t],p=n[t+1];JN(d,p)>0&&(n[t]=p,n[t+1]=d)}else if(i<20)for(let d=t;d<a;d++)for(let p=d;p>t;p--){let y=n[p-1],b=n[p];if(JN(y,b)<=0)break;n[p-1]=b,n[p]=y}else Py(n,JN,t)}Gn.prototype._parseMappings=function(t,a){var i=1,d=0,p=0,y=0,b=0,v=0,E=t.length,S=0,A={},_=[],C=[],q,M,W,z;let Y=0;for(;S<E;)if(t.charAt(S)===";")i++,S++,d=0,qhe(C,Y),Y=C.length;else if(t.charAt(S)===",")S++;else{for(q=new e0e,q.generatedLine=i,W=S;W<E&&!this._charIsMappingSeparator(t,W);W++);for(t.slice(S,W),M=[];S<W;)$7t.decode(t,S,A),z=A.value,S=A.rest,M.push(z);if(M.length===2)throw new Error("Found a source, but no line and column");if(M.length===3)throw new Error("Found a source and line, but no column");if(q.generatedColumn=d+M[0],d=q.generatedColumn,M.length>1&&(q.source=b+M[1],b+=M[1],q.originalLine=p+M[2],p=q.originalLine,q.originalLine+=1,q.originalColumn=y+M[3],y=q.originalColumn,M.length>4&&(q.name=v+M[4],v+=M[4])),C.push(q),typeof q.originalLine=="number"){let ce=q.source;for(;_.length<=ce;)_.push(null);_[ce]===null&&(_[ce]=[]),_[ce].push(q)}}qhe(C,Y),this.__generatedMappings=C;for(var Z=0;Z<_.length;Z++)_[Z]!=null&&Py(_[Z],vr.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(..._)};Gn.prototype._findMapping=function(t,a,i,d,p,y){if(t[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+t[i]);if(t[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+t[d]);return CM.search(t,a,p,y)};Gn.prototype.computeColumnSpans=function(){for(var t=0;t<this._generatedMappings.length;++t){var a=this._generatedMappings[t];if(t+1<this._generatedMappings.length){var i=this._generatedMappings[t+1];if(a.generatedLine===i.generatedLine){a.lastGeneratedColumn=i.generatedColumn-1;continue}}a.lastGeneratedColumn=1/0}};Gn.prototype.originalPositionFor=function(t){var a={generatedLine:vr.getArg(t,"line"),generatedColumn:vr.getArg(t,"column")},i=this._findMapping(a,this._generatedMappings,"generatedLine","generatedColumn",vr.compareByGeneratedPositionsDeflated,vr.getArg(t,"bias",Xa.GREATEST_LOWER_BOUND));if(i>=0){var d=this._generatedMappings[i];if(d.generatedLine===a.generatedLine){var p=vr.getArg(d,"source",null);p!==null&&(p=this._sources.at(p),p=vr.computeSourceURL(this.sourceRoot,p,this._sourceMapURL));var y=vr.getArg(d,"name",null);return y!==null&&(y=this._names.at(y)),{source:p,line:vr.getArg(d,"originalLine",null),column:vr.getArg(d,"originalColumn",null),name:y}}}return{source:null,line:null,column:null,name:null}};Gn.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1};Gn.prototype.sourceContentFor=function(t,a){if(!this.sourcesContent)return null;var i=this._findSourceIndex(t);if(i>=0)return this.sourcesContent[i];var d=t;this.sourceRoot!=null&&(d=vr.relative(this.sourceRoot,d));var p;if(this.sourceRoot!=null&&(p=vr.urlParse(this.sourceRoot))){var y=d.replace(/^file:\/\//,"");if(p.scheme=="file"&&this._sources.has(y))return this.sourcesContent[this._sources.indexOf(y)];if((!p.path||p.path=="/")&&this._sources.has("/"+d))return this.sourcesContent[this._sources.indexOf("/"+d)]}if(a)return null;throw new Error('"'+d+'" is not in the SourceMap.')};Gn.prototype.generatedPositionFor=function(t){var a=vr.getArg(t,"source");if(a=this._findSourceIndex(a),a<0)return{line:null,column:null,lastColumn:null};var i={source:a,originalLine:vr.getArg(t,"line"),originalColumn:vr.getArg(t,"column")},d=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",vr.compareByOriginalPositions,vr.getArg(t,"bias",Xa.GREATEST_LOWER_BOUND));if(d>=0){var p=this._originalMappings[d];if(p.source===i.source)return{line:vr.getArg(p,"generatedLine",null),column:vr.getArg(p,"generatedColumn",null),lastColumn:vr.getArg(p,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};ux.BasicSourceMapConsumer=Gn;function Yi(n,t){var a=n;typeof n=="string"&&(a=vr.parseSourceMapInput(n));var i=vr.getArg(a,"version"),d=vr.getArg(a,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new zp,this._names=new zp;var p={line:-1,column:0};this._sections=d.map(function(y){if(y.url)throw new Error("Support for url field in sections not implemented.");var b=vr.getArg(y,"offset"),v=vr.getArg(b,"line"),E=vr.getArg(b,"column");if(v<p.line||v===p.line&&E<p.column)throw new Error("Section offsets must be ordered and non-overlapping.");return p=b,{generatedOffset:{generatedLine:v+1,generatedColumn:E+1},consumer:new Xa(vr.getArg(y,"map"),t)}})}Yi.prototype=Object.create(Xa.prototype);Yi.prototype.constructor=Xa;Yi.prototype._version=3;Object.defineProperty(Yi.prototype,"sources",{get:function(){for(var n=[],t=0;t<this._sections.length;t++)for(var a=0;a<this._sections[t].consumer.sources.length;a++)n.push(this._sections[t].consumer.sources[a]);return n}});Yi.prototype.originalPositionFor=function(t){var a={generatedLine:vr.getArg(t,"line"),generatedColumn:vr.getArg(t,"column")},i=CM.search(a,this._sections,function(p,y){var b=p.generatedLine-y.generatedOffset.generatedLine;return b||p.generatedColumn-y.generatedOffset.generatedColumn}),d=this._sections[i];return d?d.consumer.originalPositionFor({line:a.generatedLine-(d.generatedOffset.generatedLine-1),column:a.generatedColumn-(d.generatedOffset.generatedLine===a.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:t.bias}):{source:null,line:null,column:null,name:null}};Yi.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(t){return t.consumer.hasContentsOfAllSources()})};Yi.prototype.sourceContentFor=function(t,a){for(var i=0;i<this._sections.length;i++){var d=this._sections[i],p=d.consumer.sourceContentFor(t,!0);if(p||p==="")return p}if(a)return null;throw new Error('"'+t+'" is not in the SourceMap.')};Yi.prototype.generatedPositionFor=function(t){for(var a=0;a<this._sections.length;a++){var i=this._sections[a];if(i.consumer._findSourceIndex(vr.getArg(t,"source"))!==-1){var d=i.consumer.generatedPositionFor(t);if(d){var p={line:d.line+(i.generatedOffset.generatedLine-1),column:d.column+(i.generatedOffset.generatedLine===d.line?i.generatedOffset.generatedColumn-1:0)};return p}}}return{line:null,column:null}};Yi.prototype._parseMappings=function(t,a){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var d=this._sections[i],p=d.consumer._generatedMappings,y=0;y<p.length;y++){var b=p[y],v=d.consumer._sources.at(b.source);v=vr.computeSourceURL(d.consumer.sourceRoot,v,this._sourceMapURL),this._sources.add(v),v=this._sources.indexOf(v);var E=null;b.name&&(E=d.consumer._names.at(b.name),this._names.add(E),E=this._names.indexOf(E));var S={source:v,generatedLine:b.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:b.generatedColumn+(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),originalLine:b.originalLine,originalColumn:b.originalColumn,name:E};this.__generatedMappings.push(S),typeof S.originalLine=="number"&&this.__originalMappings.push(S)}Py(this.__generatedMappings,vr.compareByGeneratedPositionsDeflated),Py(this.__originalMappings,vr.compareByOriginalPositions)};ux.IndexedSourceMapConsumer=Yi;var t0e={},q7t=SM.SourceMapGenerator,K2=sf,U7t=/(\r?\n)/,V7t=10,of="$$$isSourceNode$$$";function ii(n,t,a,i,d){this.children=[],this.sourceContents={},this.line=n??null,this.column=t??null,this.source=a??null,this.name=d??null,this[of]=!0,i!=null&&this.add(i)}ii.fromStringWithSourceMap=function(t,a,i){var d=new ii,p=t.split(U7t),y=0,b=function(){var _=q(),C=q()||"";return _+C;function q(){return y<p.length?p[y++]:void 0}},v=1,E=0,S=null;return a.eachMapping(function(_){if(S!==null)if(v<_.generatedLine)A(S,b()),v++,E=0;else{var C=p[y]||"",q=C.substr(0,_.generatedColumn-E);p[y]=C.substr(_.generatedColumn-E),E=_.generatedColumn,A(S,q),S=_;return}for(;v<_.generatedLine;)d.add(b()),v++;if(E<_.generatedColumn){var C=p[y]||"";d.add(C.substr(0,_.generatedColumn)),p[y]=C.substr(_.generatedColumn),E=_.generatedColumn}S=_},this),y<p.length&&(S&&A(S,b()),d.add(p.splice(y).join(""))),a.sources.forEach(function(_){var C=a.sourceContentFor(_);C!=null&&(i!=null&&(_=K2.join(i,_)),d.setSourceContent(_,C))}),d;function A(_,C){if(_===null||_.source===void 0)d.add(C);else{var q=i?K2.join(i,_.source):_.source;d.add(new ii(_.originalLine,_.originalColumn,q,C,_.name))}}};ii.prototype.add=function(t){if(Array.isArray(t))t.forEach(function(a){this.add(a)},this);else if(t[of]||typeof t=="string")t&&this.children.push(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this};ii.prototype.prepend=function(t){if(Array.isArray(t))for(var a=t.length-1;a>=0;a--)this.prepend(t[a]);else if(t[of]||typeof t=="string")this.children.unshift(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this};ii.prototype.walk=function(t){for(var a,i=0,d=this.children.length;i<d;i++)a=this.children[i],a[of]?a.walk(t):a!==""&&t(a,{source:this.source,line:this.line,column:this.column,name:this.name})};ii.prototype.join=function(t){var a,i,d=this.children.length;if(d>0){for(a=[],i=0;i<d-1;i++)a.push(this.children[i]),a.push(t);a.push(this.children[i]),this.children=a}return this};ii.prototype.replaceRight=function(t,a){var i=this.children[this.children.length-1];return i[of]?i.replaceRight(t,a):typeof i=="string"?this.children[this.children.length-1]=i.replace(t,a):this.children.push("".replace(t,a)),this};ii.prototype.setSourceContent=function(t,a){this.sourceContents[K2.toSetString(t)]=a};ii.prototype.walkSourceContents=function(t){for(var a=0,i=this.children.length;a<i;a++)this.children[a][of]&&this.children[a].walkSourceContents(t);for(var d=Object.keys(this.sourceContents),a=0,i=d.length;a<i;a++)t(K2.fromSetString(d[a]),this.sourceContents[d[a]])};ii.prototype.toString=function(){var t="";return this.walk(function(a){t+=a}),t};ii.prototype.toStringWithSourceMap=function(t){var a={code:"",line:1,column:0},i=new q7t(t),d=!1,p=null,y=null,b=null,v=null;return this.walk(function(E,S){a.code+=E,S.source!==null&&S.line!==null&&S.column!==null?((p!==S.source||y!==S.line||b!==S.column||v!==S.name)&&i.addMapping({source:S.source,original:{line:S.line,column:S.column},generated:{line:a.line,column:a.column},name:S.name}),p=S.source,y=S.line,b=S.column,v=S.name,d=!0):d&&(i.addMapping({generated:{line:a.line,column:a.column}}),p=null,d=!1);for(var A=0,_=E.length;A<_;A++)E.charCodeAt(A)===V7t?(a.line++,a.column=0,A+1===_?(p=null,d=!1):d&&i.addMapping({source:S.source,original:{line:S.line,column:S.column},generated:{line:a.line,column:a.column},name:S.name})):a.column++}),this.walkSourceContents(function(E,S){i.setSourceContent(E,S)}),{code:a.code,map:i}};t0e.SourceNode=ii;var r0e=nf.SourceMapGenerator=SM.SourceMapGenerator;nf.SourceMapConsumer=ux.SourceMapConsumer;nf.SourceNode=t0e.SourceNode;const cx="/*@__PURE__*/",S2=n=>`${Vs[n]}: _${Vs[n]}`;function Uhe(n,{mode:t="function",prefixIdentifiers:a=t==="module",sourceMap:i=!1,filename:d="template.vue.html",scopeId:p=null,optimizeImports:y=!1,runtimeGlobalName:b="Vue",runtimeModuleName:v="vue",ssrRuntimeModuleName:E="vue/server-renderer",ssr:S=!1,isTS:A=!1,inSSR:_=!1}){const C={mode:t,prefixIdentifiers:a,sourceMap:i,filename:d,scopeId:p,optimizeImports:y,runtimeGlobalName:b,runtimeModuleName:v,ssrRuntimeModuleName:E,ssr:S,isTS:A,inSSR:_,source:n.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(W){return`_${Vs[W]}`},push(W,z=-2,Y){if(C.code+=W,C.map){if(Y){let Z;if(Y.type===4&&!Y.isStatic){const ce=Y.content.replace(/^_ctx\./,"");ce!==Y.content&&Pl(ce)&&(Z=ce)}M(Y.loc.start,Z)}z===-3?bM(C,W):(C.offset+=W.length,z===-2?C.column+=W.length:(z===-1&&(z=W.length-1),C.line++,C.column=W.length-z)),Y&&Y.loc!==En&&M(Y.loc.end)}},indent(){q(++C.indentLevel)},deindent(W=!1){W?--C.indentLevel:q(--C.indentLevel)},newline(){q(C.indentLevel)}};function q(W){C.push(` +`+" ".repeat(W),0)}function M(W,z=null){const{_names:Y,_mappings:Z}=C.map;z!==null&&!Y.has(z)&&Y.add(z),Z.add({originalLine:W.line,originalColumn:W.column-1,generatedLine:C.line,generatedColumn:C.column-1,source:d,name:z})}return i&&(C.map=new r0e,C.map.setSourceContent(d,C.source),C.map._sources.add(d)),C}function a0e(n,t={}){const a=Uhe(n,t);t.onContextCreated&&t.onContextCreated(a);const{mode:i,push:d,prefixIdentifiers:p,indent:y,deindent:b,newline:v,scopeId:E,ssr:S}=a,A=Array.from(n.helpers),_=A.length>0,C=!p&&i!=="module",q=E!=null&&i==="module",M=!!t.inline,W=M?Uhe(n,t):a;i==="module"?G7t(n,W,q,M):W7t(n,W);const z=S?"ssrRender":"render",Y=S?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"];t.bindingMetadata&&!t.inline&&Y.push("$props","$setup","$data","$options");const Z=t.isTS?Y.map(ce=>`${ce}: any`).join(","):Y.join(", ");if(d(M?`(${Z}) => {`:`function ${z}(${Z}) {`),y(),C&&(d("with (_ctx) {"),y(),_&&(d(`const { ${A.map(S2).join(", ")} } = _Vue +`,-1),v())),n.components.length&&(Vhe(n.components,"component",a),(n.directives.length||n.temps>0)&&v()),n.directives.length&&(Vhe(n.directives,"directive",a),n.temps>0&&v()),n.temps>0){d("let ");for(let ce=0;ce<n.temps;ce++)d(`${ce>0?", ":""}_temp${ce}`)}return(n.components.length||n.directives.length||n.temps)&&(d(` +`,0),v()),S||d("return "),n.codegenNode?tn(n.codegenNode,a):d("null"),C&&(b(),d("}")),b(),d("}"),{ast:n,code:a.code,preamble:M?W.code:"",map:a.map?a.map.toJSON():void 0}}function W7t(n,t){const{ssr:a,prefixIdentifiers:i,push:d,newline:p,runtimeModuleName:y,runtimeGlobalName:b,ssrRuntimeModuleName:v}=t,E=a?`require(${JSON.stringify(y)})`:b,S=Array.from(n.helpers);if(S.length>0){if(i)d(`const { ${S.map(S2).join(", ")} } = ${E} +`,-1);else if(d(`const _Vue = ${E} +`,-1),n.hoists.length){const A=[W6,G6,rf,K6,H6].filter(_=>S.includes(_)).map(S2).join(", ");d(`const { ${A} } = _Vue +`,-1)}}n.ssrHelpers&&n.ssrHelpers.length&&d(`const { ${n.ssrHelpers.map(S2).join(", ")} } = require("${v}") +`,-1),n0e(n.hoists,t),p(),d("return ")}function G7t(n,t,a,i){const{push:d,newline:p,optimizeImports:y,runtimeModuleName:b,ssrRuntimeModuleName:v}=t;if(n.helpers.size){const E=Array.from(n.helpers);y?(d(`import { ${E.map(S=>Vs[S]).join(", ")} } from ${JSON.stringify(b)} +`,-1),d(` +// Binding optimization for webpack code-split +const ${E.map(S=>`_${Vs[S]} = ${Vs[S]}`).join(", ")} +`,-1)):d(`import { ${E.map(S=>`${Vs[S]} as _${Vs[S]}`).join(", ")} } from ${JSON.stringify(b)} +`,-1)}n.ssrHelpers&&n.ssrHelpers.length&&d(`import { ${n.ssrHelpers.map(E=>`${Vs[E]} as _${Vs[E]}`).join(", ")} } from "${v}" +`,-1),n.imports.length&&(K7t(n.imports,t),p()),n0e(n.hoists,t),p(),i||d("export ")}function Vhe(n,t,{helper:a,push:i,newline:d,isTS:p}){const y=a(t==="component"?yy:X6);for(let b=0;b<n.length;b++){let v=n[b];const E=v.endsWith("__self");E&&(v=v.slice(0,-6)),i(`const ${wy(v,t)} = ${y}(${JSON.stringify(v)}${E?", true":""})${p?"!":""}`),b<n.length-1&&d()}}function n0e(n,t){if(!n.length)return;t.pure=!0;const{push:a,newline:i}=t;i();for(let d=0;d<n.length;d++){const p=n[d];p&&(a(`const _hoisted_${d+1} = `),tn(p,t),i())}t.pure=!1}function K7t(n,t){n.length&&n.forEach(a=>{t.push("import "),tn(a.exp,t),t.push(` from '${a.path}'`),t.newline()})}function H7t(n){return Ca(n)||n.type===4||n.type===2||n.type===5||n.type===8}function dx(n,t){const a=n.length>3||n.some(i=>es(i)||!H7t(i));t.push("["),a&&t.indent(),lf(n,t,a),a&&t.deindent(),t.push("]")}function lf(n,t,a=!1,i=!0){const{push:d,newline:p}=t;for(let y=0;y<n.length;y++){const b=n[y];Ca(b)?d(b,-3):es(b)?dx(b,t):tn(b,t),y<n.length-1&&(a?(i&&d(","),p()):i&&d(", "))}}function tn(n,t){if(Ca(n)){t.push(n,-3);return}if(dd(n)){t.push(t.helper(n));return}switch(n.type){case 1:case 9:case 11:Vk(n.codegenNode!=null,"Codegen node is missing for element/if/for node. Apply appropriate transforms first."),tn(n.codegenNode,t);break;case 2:z7t(n,t);break;case 4:s0e(n,t);break;case 5:X7t(n,t);break;case 12:tn(n.codegenNode,t);break;case 8:i0e(n,t);break;case 3:Y7t(n,t);break;case 13:Q7t(n,t);break;case 14:eRt(n,t);break;case 15:tRt(n,t);break;case 17:rRt(n,t);break;case 18:aRt(n,t);break;case 19:nRt(n,t);break;case 20:sRt(n,t);break;case 21:lf(n.body,t,!0,!1);break;case 22:iRt(n,t);break;case 23:o0e(n,t);break;case 24:oRt(n,t);break;case 25:lRt(n,t);break;case 26:uRt(n,t);break;case 10:break;default:return Vk(!1,`unhandled codegen node type: ${n.type}`),n}}function z7t(n,t){t.push(JSON.stringify(n.content),-3,n)}function s0e(n,t){const{content:a,isStatic:i}=n;t.push(i?JSON.stringify(a):a,-3,n)}function X7t(n,t){const{push:a,helper:i,pure:d}=t;d&&a(cx),a(`${i(Xy)}(`),tn(n.content,t),a(")")}function i0e(n,t){for(let a=0;a<n.children.length;a++){const i=n.children[a];Ca(i)?t.push(i,-3):tn(i,t)}}function J7t(n,t){const{push:a}=t;if(n.type===8)a("["),i0e(n,t),a("]");else if(n.isStatic){const i=Pl(n.content)?n.content:JSON.stringify(n.content);a(i,-2,n)}else a(`[${n.content}]`,-3,n)}function Y7t(n,t){const{push:a,helper:i,pure:d}=t;d&&a(cx),a(`${i(rf)}(${JSON.stringify(n.content)})`,-3,n)}function Q7t(n,t){const{push:a,helper:i,pure:d}=t,{tag:p,props:y,children:b,patchFlag:v,dynamicProps:E,directives:S,isBlock:A,disableTracking:_,isComponent:C}=n;let q;if(v)if(v<0)q=v+` /* ${Au[v]} */`;else{const W=Object.keys(Au).map(Number).filter(z=>z>0&&v&z).map(z=>Au[z]).join(", ");q=v+` /* ${W} */`}S&&a(i(J6)+"("),A&&a(`(${i(Ou)}(${_?"true":""}), `),d&&a(cx);const M=A?id(t.inSSR,C):sd(t.inSSR,C);a(i(M)+"(",-2,n),lf(Z7t([p,y,b,q,E]),t),a(")"),A&&a(")"),S&&(a(", "),tn(S,t),a(")"))}function Z7t(n){let t=n.length;for(;t--&&n[t]==null;);return n.slice(0,t+1).map(a=>a||"null")}function eRt(n,t){const{push:a,helper:i,pure:d}=t,p=Ca(n.callee)?n.callee:i(n.callee);d&&a(cx),a(p+"(",-2,n),lf(n.arguments,t),a(")")}function tRt(n,t){const{push:a,indent:i,deindent:d,newline:p}=t,{properties:y}=n;if(!y.length){a("{}",-2,n);return}const b=y.length>1||y.some(v=>v.value.type!==4);a(b?"{":"{ "),b&&i();for(let v=0;v<y.length;v++){const{key:E,value:S}=y[v];J7t(E,t),a(": "),tn(S,t),v<y.length-1&&(a(","),p())}b&&d(),a(b?"}":" }")}function rRt(n,t){dx(n.elements,t)}function aRt(n,t){const{push:a,indent:i,deindent:d}=t,{params:p,returns:y,body:b,newline:v,isSlot:E}=n;E&&a(`_${Vs[tx]}(`),a("(",-2,n),es(p)?lf(p,t):p&&tn(p,t),a(") => "),(v||b)&&(a("{"),i()),y?(v&&a("return "),es(y)?dx(y,t):tn(y,t)):b&&tn(b,t),(v||b)&&(d(),a("}")),E&&a(")")}function nRt(n,t){const{test:a,consequent:i,alternate:d,newline:p}=n,{push:y,indent:b,deindent:v,newline:E}=t;if(a.type===4){const A=!Pl(a.content);A&&y("("),s0e(a,t),A&&y(")")}else y("("),tn(a,t),y(")");p&&b(),t.indentLevel++,p||y(" "),y("? "),tn(i,t),t.indentLevel--,p&&E(),p||y(" "),y(": ");const S=d.type===19;S||t.indentLevel++,tn(d,t),S||t.indentLevel--,p&&v(!0)}function sRt(n,t){const{push:a,helper:i,indent:d,deindent:p,newline:y}=t,{needPauseTracking:b,needArraySpread:v}=n;v&&a("[...("),a(`_cache[${n.index}] || (`),b&&(d(),a(`${i(vy)}(-1),`),y(),a("(")),a(`_cache[${n.index}] = `),tn(n.value,t),b&&(a(`).cacheIndex = ${n.index},`),y(),a(`${i(vy)}(1),`),y(),a(`_cache[${n.index}]`),p()),a(")"),v&&a(")]")}function iRt(n,t){const{push:a,indent:i,deindent:d}=t;a("`");const p=n.elements.length,y=p>3;for(let b=0;b<p;b++){const v=n.elements[b];Ca(v)?a(v.replace(/(`|\$|\\)/g,"\\$1"),-3):(a("${"),y&&i(),tn(v,t),y&&d(),a("}"))}a("`")}function o0e(n,t){const{push:a,indent:i,deindent:d}=t,{test:p,consequent:y,alternate:b}=n;a("if ("),tn(p,t),a(") {"),i(),tn(y,t),d(),a("}"),b&&(a(" else "),b.type===23?o0e(b,t):(a("{"),i(),tn(b,t),d(),a("}")))}function oRt(n,t){tn(n.left,t),t.push(" = "),tn(n.right,t)}function lRt(n,t){t.push("("),lf(n.expressions,t),t.push(")")}function uRt({returns:n},t){t.push("return "),es(n)?dx(n,t):tn(n,t)}const cRt=as("true,false,null,this"),l0e=(n,t)=>{if(n.type===5)n.content=ts(n.content,t);else if(n.type===1)for(let a=0;a<n.props.length;a++){const i=n.props[a];if(i.type===7&&i.name!=="for"){const d=i.exp,p=i.arg;d&&d.type===4&&!(i.name==="on"&&p)&&(i.exp=ts(d,t,i.name==="slot")),p&&p.type===4&&!p.isStatic&&(i.arg=ts(p,t))}}};function ts(n,t,a=!1,i=!1,d=Object.create(t.identifiers)){if(!t.prefixIdentifiers||!n.content.trim())return n;const{inline:p,bindingMetadata:y}=t,b=(M,W,z)=>{const Y=qL(y,M)&&y[M];if(p){const Z=W&&W.type==="AssignmentExpression"&&W.left===z,ce=W&&W.type==="UpdateExpression"&&W.argument===z,ge=W&&fM(W,A),Ge=W&&S1e(A),Je=re=>{const Ae=`${t.helperString(by)}(${re})`;return Ge?`(${Ae})`:Ae};if(Whe(Y)||Y==="setup-reactive-const"||d[M])return M;if(Y==="setup-ref")return`${M}.value`;if(Y==="setup-maybe-ref")return Z||ce||ge?`${M}.value`:Je(M);if(Y==="setup-let")if(Z){const{right:re,operator:Ae}=W,je=v.slice(re.start-1,re.end-1),se=jM(ts(Fr(je,!1),t,!1,!1,_));return`${t.helperString(xy)}(${M})${t.isTS?` //@ts-ignore +`:""} ? ${M}.value ${Ae} ${se} : ${M}`}else if(ce){z.start=W.start,z.end=W.end;const{prefix:re,operator:Ae}=W,je=re?Ae:"",se=re?"":Ae;return`${t.helperString(xy)}(${M})${t.isTS?` //@ts-ignore +`:""} ? ${je}${M}.value${se} : ${je}${M}${se}`}else return ge?M:Je(M);else{if(Y==="props")return yhe(M);if(Y==="props-aliased")return yhe(y.__propsAliases[M])}}else{if(Y&&Y.startsWith("setup")||Y==="literal-const")return`$setup.${M}`;if(Y==="props-aliased")return`$props['${y.__propsAliases[M]}']`;if(Y)return`$${Y}.${M}`}return`_ctx.${M}`},v=n.content;let E=n.ast;if(E===!1)return n;if(E===null||!E&&Pl(v)){const M=t.identifiers[v],W=$ge(v),z=cRt(v);return!a&&!M&&!z&&(!W||y[v])?(Whe(y[v])&&(n.constType=1),n.content=b(v)):M||(z?n.constType=3:n.constType=2),n}if(!E){const M=i?` ${v} `:`(${v})${a?"=>{}":""}`;try{E=Ey(M,{sourceType:"module",plugins:t.expressionPlugins})}catch(W){return t.onError(_a(45,n.loc,void 0,W.message)),n}}const S=[],A=[],_=Object.create(t.identifiers);pM(E,(M,W,z,Y,Z)=>{if(I1e(M,W))return;const ce=Y&&dRt(M);ce&&!Z?(mM(W)&&W.shorthand&&(M.prefix=`${M.name}: `),M.name=b(M.name,W,M),S.push(M)):(!(ce&&Z)&&(!W||W.type!=="CallExpression"&&W.type!=="NewExpression"&&W.type!=="MemberExpression")&&(M.isConstant=!0),S.push(M))},!0,A,_);const C=[];S.sort((M,W)=>M.start-W.start),S.forEach((M,W)=>{const z=M.start-1,Y=M.end-1,Z=S[W-1],ce=v.slice(Z?Z.end-1:0,z);(ce.length||M.prefix)&&C.push(ce+(M.prefix||""));const ge=v.slice(z,Y);C.push(Fr(M.name,!1,{start:Uk(n.loc.start,ge,z),end:Uk(n.loc.start,ge,Y),source:ge},M.isConstant?3:0)),W===S.length-1&&Y<v.length&&C.push(v.slice(Y))});let q;return C.length?(q=Ts(C,n.loc),q.ast=E):(q=n,q.constType=3),q.identifiers=Object.keys(_),q}function dRt(n){return!($ge(n.name)||n.name==="require")}function jM(n){return Ca(n)?n:n.type===4?n.content:n.children.map(jM).join("")}function Whe(n){return n==="setup-const"||n==="literal-const"}const pRt=EM(/^(if|else|else-if)$/,(n,t,a)=>u0e(n,t,a,(i,d,p)=>{const y=a.parent.children;let b=y.indexOf(i),v=0;for(;b-->=0;){const E=y[b];E&&E.type===9&&(v+=E.branches.length)}return()=>{if(p)i.codegenNode=Khe(d,v,a);else{const E=hRt(i.codegenNode);E.alternate=Khe(d,v+i.branches.length-1,a)}}}));function u0e(n,t,a,i){if(t.name!=="else"&&(!t.exp||!t.exp.content.trim())){const d=t.exp?t.exp.loc:n.loc;a.onError(_a(28,t.loc)),t.exp=Fr("true",!1,d)}if(a.prefixIdentifiers&&t.exp&&(t.exp=ts(t.exp,a)),t.name==="if"){const d=Ghe(n,t),p={type:9,loc:n.loc,branches:[d]};if(a.replaceNode(p),i)return i(p,d,!0)}else{const d=a.parent.children,p=[];let y=d.indexOf(n);for(;y-->=-1;){const b=d[y];if(b&&b.type===3){a.removeNode(b),p.unshift(b);continue}if(b&&b.type===2&&!b.content.trim().length){a.removeNode(b);continue}if(b&&b.type===9){t.name==="else-if"&&b.branches[b.branches.length-1].condition===void 0&&a.onError(_a(30,n.loc)),a.removeNode();const v=Ghe(n,t);p.length&&!(a.parent&&a.parent.type===1&&(a.parent.tag==="transition"||a.parent.tag==="Transition"))&&(v.children=[...p,...v.children]);{const S=v.userKey;S&&b.branches.forEach(({userKey:A})=>{fRt(A,S)&&a.onError(_a(29,v.userKey.loc))})}b.branches.push(v);const E=i&&i(b,v,!1);Qy(v,a),E&&E(),a.currentNode=null}else a.onError(_a(30,n.loc));break}}}function Ghe(n,t){const a=n.tagType===3;return{type:10,loc:n.loc,condition:t.name==="else"?void 0:t.exp,children:a&&!Es(n,"for")?n.children:[n],userKey:Kp(n,"key"),isTemplateIf:a}}function Khe(n,t,a){return n.condition?B2(n.condition,Hhe(n,t,a),pn(a.helper(rf),['"v-if"',"true"])):Hhe(n,t,a)}function Hhe(n,t,a){const{helper:i}=a,d=Za("key",Fr(`${t}`,!1,En,2)),{children:p}=n,y=p[0];if(p.length!==1||y.type!==1)if(p.length===1&&y.type===11){const v=y.codegenNode;return Ty(v,d,a),v}else{let v=64,E=Au[64];return!n.isTemplateIf&&p.filter(S=>S.type!==3).length===1&&(v|=2048,E+=`, ${Au[2048]}`),Gp(a,i(Vp),ni([d]),p,v,void 0,void 0,!0,!1,!1,n.loc)}else{const v=y.codegenNode,E=k1e(v);return E.type===13&&ax(E,a),Ty(E,d,a),v}}function fRt(n,t){if(!n||n.type!==t.type)return!1;if(n.type===6){if(n.value.content!==t.value.content)return!1}else{const a=n.exp,i=t.exp;if(a.type!==i.type||a.type!==4||a.isStatic!==i.isStatic||a.content!==i.content)return!1}return!0}function hRt(n){for(;;)if(n.type===19)if(n.alternate.type===19)n=n.alternate;else return n;else n.type===20&&(n=n.value)}const c0e=(n,t,a)=>{const{modifiers:i,loc:d}=n,p=n.arg;let{exp:y}=n;if(y&&y.type===4&&!y.content.trim())return a.onError(_a(34,d)),{props:[Za(p,Fr("",!0,d))]};if(!y){if(p.type!==4||!p.isStatic)return a.onError(_a(52,p.loc)),{props:[Za(p,Fr("",!0,d))]};d0e(n,a),y=n.exp}return p.type!==4?(p.children.unshift("("),p.children.push(') || ""')):p.isStatic||(p.content=`${p.content} || ""`),i.some(b=>b.content==="camel")&&(p.type===4?p.isStatic?p.content=Ws(p.content):p.content=`${a.helperString(L2)}(${p.content})`:(p.children.unshift(`${a.helperString(L2)}(`),p.children.push(")"))),a.inSSR||(i.some(b=>b.content==="prop")&&zhe(p,"."),i.some(b=>b.content==="attr")&&zhe(p,"^")),{props:[Za(p,y)]}},d0e=(n,t)=>{const a=n.arg,i=Ws(a.content);n.exp=Fr(i,!1,a.loc),n.exp=ts(n.exp,t)},zhe=(n,t)=>{n.type===4?n.isStatic?n.content=t+n.content:n.content=`\`${t}\${${n.content}}\``:(n.children.unshift(`'${t}' + (`),n.children.push(")"))},mRt=EM("for",(n,t,a)=>{const{helper:i,removeHelper:d}=a;return p0e(n,t,a,p=>{const y=pn(i(Y6),[p.source]),b=Hp(n),v=Es(n,"memo"),E=Kp(n,"key",!1,!0);E&&E.type===7&&!E.exp&&d0e(E,a);const S=E&&(E.type===6?E.value?Fr(E.value.content,!0):void 0:E.exp),A=E&&S?Za("key",S):null;b&&(v&&(v.exp=ts(v.exp,a)),A&&E.type!==6&&(A.value=ts(A.value,a)));const _=p.source.type===4&&p.source.constType>0,C=_?64:E?128:256;return p.codegenNode=Gp(a,i(Vp),void 0,y,C,void 0,void 0,!0,!_,!1,n.loc),()=>{let q;const{children:M}=p;b&&n.children.some(Y=>{if(Y.type===1){const Z=Kp(Y,"key");if(Z)return a.onError(_a(33,Z.loc)),!0}});const W=M.length!==1||M[0].type!==1,z=Sy(n)?n:b&&n.children.length===1&&Sy(n.children[0])?n.children[0]:null;if(z?(q=z.codegenNode,b&&A&&Ty(q,A,a)):W?q=Gp(a,i(Vp),A?ni([A]):void 0,n.children,64,void 0,void 0,!0,void 0,!1):(q=M[0].codegenNode,b&&A&&Ty(q,A,a),q.isBlock!==!_&&(q.isBlock?(d(Ou),d(id(a.inSSR,q.isComponent))):d(sd(a.inSSR,q.isComponent))),q.isBlock=!_,q.isBlock?(i(Ou),i(id(a.inSSR,q.isComponent))):i(sd(a.inSSR,q.isComponent))),v){const Y=nd(H2(p.parseResult,[Fr("_cached")]));Y.body=Qge([Ts(["const _memo = (",v.exp,")"]),Ts(["if (_cached",...S?[" && _cached.key === ",S]:[],` && ${a.helperString(zL)}(_cached, _memo)) return _cached`]),Ts(["const _item = ",q]),Fr("_item.memo = _memo"),Fr("return _item")]),y.arguments.push(Y,Fr("_cache"),Fr(String(a.cached.length))),a.cached.push(null)}else y.arguments.push(nd(H2(p.parseResult),q,!0))}})});function p0e(n,t,a,i){if(!t.exp){a.onError(_a(31,t.loc));return}const d=t.forParseResult;if(!d){a.onError(_a(32,t.loc));return}OM(d,a);const{addIdentifiers:p,removeIdentifiers:y,scopes:b}=a,{source:v,value:E,key:S,index:A}=d,_={type:11,loc:t.loc,source:v,valueAlias:E,keyAlias:S,objectIndexAlias:A,parseResult:d,children:Hp(n)?n.children:[n]};a.replaceNode(_),b.vFor++,a.prefixIdentifiers&&(E&&p(E),S&&p(S),A&&p(A));const C=i&&i(_);return()=>{b.vFor--,a.prefixIdentifiers&&(E&&y(E),S&&y(S),A&&y(A)),C&&C()}}function OM(n,t){n.finalized||(t.prefixIdentifiers&&(n.source=ts(n.source,t),n.key&&(n.key=ts(n.key,t,!0)),n.index&&(n.index=ts(n.index,t,!0)),n.value&&(n.value=ts(n.value,t,!0))),n.finalized=!0)}function H2({value:n,key:t,index:a},i=[]){return yRt([n,t,a,...i])}function yRt(n){let t=n.length;for(;t--&&!n[t];);return n.slice(0,t+1).map((a,i)=>a||Fr("_".repeat(i+1),!1))}const Xhe=Fr("undefined",!1),f0e=(n,t)=>{if(n.type===1&&(n.tagType===1||n.tagType===3)){const a=Es(n,"slot");if(a){const i=a.exp;return t.prefixIdentifiers&&i&&t.addIdentifiers(i),t.scopes.vSlot++,()=>{t.prefixIdentifiers&&i&&t.removeIdentifiers(i),t.scopes.vSlot--}}}},h0e=(n,t)=>{let a;if(Hp(n)&&n.props.some(xM)&&(a=Es(n,"for"))){const i=a.forParseResult;if(i){OM(i,t);const{value:d,key:p,index:y}=i,{addIdentifiers:b,removeIdentifiers:v}=t;return d&&b(d),p&&b(p),y&&b(y),()=>{d&&v(d),p&&v(p),y&&v(y)}}}},gRt=(n,t,a,i)=>nd(n,a,!1,!0,a.length?a[0].loc:i);function m0e(n,t,a=gRt){t.helper(tx);const{children:i,loc:d}=n,p=[],y=[];let b=t.scopes.vSlot>0||t.scopes.vFor>0;!t.ssr&&t.prefixIdentifiers&&(b=Us(n,t.identifiers));const v=Es(n,"slot",!0);if(v){const{arg:W,exp:z}=v;W&&!Ps(W)&&(b=!0),p.push(Za(W||Fr("default",!0),a(z,void 0,i,d)))}let E=!1,S=!1;const A=[],_=new Set;let C=0;for(let W=0;W<i.length;W++){const z=i[W];let Y;if(!Hp(z)||!(Y=Es(z,"slot",!0))){z.type!==3&&A.push(z);continue}if(v){t.onError(_a(37,Y.loc));break}E=!0;const{children:Z,loc:ce}=z,{arg:ge=Fr("default",!0),exp:Ge,loc:Je}=Y;let re;Ps(ge)?re=ge?ge.content:"default":b=!0;const Ae=Es(z,"for"),je=a(Ge,Ae,Z,ce);let se,fe;if(se=Es(z,"if"))b=!0,y.push(B2(se.exp,Wb(ge,je,C++),Xhe));else if(fe=Es(z,/^else(-if)?$/,!0)){let kt=W,Qt;for(;kt--&&(Qt=i[kt],Qt.type===3););if(Qt&&Hp(Qt)&&Es(Qt,/^(else-)?if$/)){let mt=y[y.length-1];for(;mt.alternate.type===19;)mt=mt.alternate;mt.alternate=fe.exp?B2(fe.exp,Wb(ge,je,C++),Xhe):Wb(ge,je,C++)}else t.onError(_a(30,fe.loc))}else if(Ae){b=!0;const kt=Ae.forParseResult;kt?(OM(kt,t),y.push(pn(t.helper(Y6),[kt.source,nd(H2(kt),Wb(ge,je),!0)]))):t.onError(_a(32,Ae.loc))}else{if(re){if(_.has(re)){t.onError(_a(38,Je));continue}_.add(re),re==="default"&&(S=!0)}p.push(Za(ge,je))}}if(!v){const W=(z,Y)=>{const Z=a(z,void 0,Y,d);return Za("default",Z)};E?A.length&&A.some(z=>y0e(z))&&(S?t.onError(_a(39,A[0].loc)):p.push(W(void 0,A))):p.push(W(void 0,i))}const q=b?2:T2(n.children)?3:1;let M=ni(p.concat(Za("_",Fr(q+` /* ${k6t[q]} */`,!1))),d);return y.length&&(M=pn(t.helper(HL),[M,Sl(y)])),{slots:M,hasDynamicSlots:b}}function Wb(n,t,a){const i=[Za("name",n),Za("fn",t)];return a!=null&&i.push(Za("key",Fr(String(a),!0))),ni(i)}function T2(n){for(let t=0;t<n.length;t++){const a=n[t];switch(a.type){case 1:if(a.tagType===2||T2(a.children))return!0;break;case 9:if(T2(a.branches))return!0;break;case 10:case 11:if(T2(a.children))return!0;break}}return!1}function y0e(n){return n.type!==2&&n.type!==12?!0:n.type===2?!!n.content.trim():y0e(n.content)}const g0e=new WeakMap,v0e=(n,t)=>function(){if(n=t.currentNode,!(n.type===1&&(n.tagType===0||n.tagType===1)))return;const{tag:i,props:d}=n,p=n.tagType===1;let y=p?b0e(n,t):`"${i}"`;const b=tf(y)&&y.callee===z6;let v,E,S=0,A,_,C,q=b||y===Lp||y===V6||!p&&(i==="svg"||i==="foreignObject"||i==="math");if(d.length>0){const M=_M(n,t,void 0,p,b);v=M.props,S=M.patchFlag,_=M.dynamicPropNames;const W=M.directives;C=W&&W.length?Sl(W.map(z=>x0e(z,t))):void 0,M.shouldUseBlock&&(q=!0)}if(n.children.length>0)if(y===my&&(q=!0,S|=1024,n.children.length>1&&t.onError(_a(46,{start:n.children[0].loc.start,end:n.children[n.children.length-1].loc.end,source:""}))),p&&y!==Lp&&y!==my){const{slots:W,hasDynamicSlots:z}=m0e(n,t);E=W,z&&(S|=1024)}else if(n.children.length===1&&y!==Lp){const W=n.children[0],z=W.type,Y=z===5||z===8;Y&&Gs(W,t)===0&&(S|=1),Y||z===2?E=W:E=n.children}else E=n.children;_&&_.length&&(A=bRt(_)),n.codegenNode=Gp(t,y,v,E,S===0?void 0:S,A,C,!!q,!1,p,n.loc)};function b0e(n,t,a=!1){let{tag:i}=n;const d=Hk(i),p=Kp(n,"is",!1,!0);if(p)if(d){let b;if(p.type===6?b=p.value&&Fr(p.value.content,!0):(b=p.exp,b||(b=Fr("is",!1,p.arg.loc),b=p.exp=ts(b,t))),b)return pn(t.helper(z6),[b])}else p.type===6&&p.value.content.startsWith("vue:")&&(i=p.value.content.slice(4));const y=gM(i)||t.isBuiltInComponent(i);if(y)return a||t.helper(y),y;{const b=Kk(i,t);if(b)return b;const v=i.indexOf(".");if(v>0){const E=Kk(i.slice(0,v),t);if(E)return E+i.slice(v)}}return t.selfName&&ju(Ws(i))===t.selfName?(t.helper(yy),t.components.add(i+"__self"),wy(i,"component")):(t.helper(yy),t.components.add(i),wy(i,"component"))}function Kk(n,t){const a=t.bindingMetadata;if(!a||a.__isScriptSetup===!1)return;const i=Ws(n),d=ju(i),p=E=>{if(a[n]===E)return n;if(a[i]===E)return i;if(a[d]===E)return d},y=p("setup-const")||p("setup-reactive-const")||p("literal-const");if(y)return t.inline?y:`$setup[${JSON.stringify(y)}]`;const b=p("setup-let")||p("setup-ref")||p("setup-maybe-ref");if(b)return t.inline?`${t.helperString(by)}(${b})`:`$setup[${JSON.stringify(b)}]`;const v=p("props");if(v)return`${t.helperString(by)}(${t.inline?"__props":"$props"}[${JSON.stringify(v)}])`}function _M(n,t,a=n.props,i,d,p=!1){const{tag:y,loc:b,children:v}=n;let E=[];const S=[],A=[],_=v.length>0;let C=!1,q=0,M=!1,W=!1,z=!1,Y=!1,Z=!1,ce=!1;const ge=[],Ge=je=>{E.length&&(S.push(ni(Jhe(E),b)),E=[]),je&&S.push(je)},Je=()=>{t.scopes.vFor>0&&E.push(Za(Fr("ref_for",!0),Fr("true")))},re=({key:je,value:se})=>{if(Ps(je)){const fe=je.content,kt=Mge(fe);if(kt&&(!i||d)&&fe.toLowerCase()!=="onclick"&&fe!=="onUpdate:modelValue"&&!mhe(fe)&&(Y=!0),kt&&mhe(fe)&&(ce=!0),kt&&se.type===14&&(se=se.arguments[0]),se.type===20||(se.type===4||se.type===8)&&Gs(se,t)>0)return;fe==="ref"?M=!0:fe==="class"?W=!0:fe==="style"?z=!0:fe!=="key"&&!ge.includes(fe)&&ge.push(fe),i&&(fe==="class"||fe==="style")&&!ge.includes(fe)&&ge.push(fe)}else Z=!0};for(let je=0;je<a.length;je++){const se=a[je];if(se.type===6){const{loc:fe,name:kt,nameLoc:Qt,value:mt}=se;let Tt=!0;if(kt==="ref"&&(M=!0,Je(),mt&&t.inline)){const ne=t.bindingMetadata[mt.content];(ne==="setup-let"||ne==="setup-ref"||ne==="setup-maybe-ref")&&(Tt=!1,E.push(Za(Fr("ref_key",!0),Fr(mt.content,!0,mt.loc))))}if(kt==="is"&&(Hk(y)||mt&&mt.content.startsWith("vue:")))continue;E.push(Za(Fr(kt,!0,Qt),Fr(mt?mt.content:"",Tt,mt?mt.loc:fe)))}else{const{name:fe,arg:kt,exp:Qt,loc:mt,modifiers:Tt}=se,ne=fe==="bind",Zt=fe==="on";if(fe==="slot"){i||t.onError(_a(40,mt));continue}if(fe==="once"||fe==="memo"||fe==="is"||ne&&gl(kt,"is")&&Hk(y)||Zt&&p)continue;if((ne&&gl(kt,"key")||Zt&&_&&gl(kt,"vue:before-update"))&&(C=!0),ne&&gl(kt,"ref")&&Je(),!kt&&(ne||Zt)){Z=!0,Qt?ne?(Je(),Ge(),S.push(Qt)):Ge({type:14,loc:mt,callee:t.helper(ex),arguments:i?[Qt]:[Qt,"true"]}):t.onError(_a(ne?34:35,mt));continue}ne&&Tt.some(bt=>bt.content==="prop")&&(q|=32);const pt=t.directiveTransforms[fe];if(pt){const{props:bt,needRuntime:ht}=pt(se,n,t);!p&&bt.forEach(re),Zt&&kt&&!Ps(kt)?Ge(ni(bt,b)):E.push(...bt),ht&&(A.push(se),dd(ht)&&g0e.set(se,ht))}else Fge(fe)||(A.push(se),_&&(C=!0))}}let Ae;if(S.length?(Ge(),S.length>1?Ae=pn(t.helper(gy),S,b):Ae=S[0]):E.length&&(Ae=ni(Jhe(E),b)),Z?q|=16:(W&&!i&&(q|=2),z&&!i&&(q|=4),ge.length&&(q|=8),Y&&(q|=32)),!C&&(q===0||q===32)&&(M||ce||A.length>0)&&(q|=512),!t.inSSR&&Ae)switch(Ae.type){case 15:let je=-1,se=-1,fe=!1;for(let mt=0;mt<Ae.properties.length;mt++){const Tt=Ae.properties[mt].key;Ps(Tt)?Tt.content==="class"?je=mt:Tt.content==="style"&&(se=mt):Tt.isHandlerKey||(fe=!0)}const kt=Ae.properties[je],Qt=Ae.properties[se];fe?Ae=pn(t.helper(Wp),[Ae]):(kt&&!Ps(kt.value)&&(kt.value=pn(t.helper(Q6),[kt.value])),Qt&&(z||Qt.value.type===4&&Qt.value.content.trim()[0]==="["||Qt.value.type===17)&&(Qt.value=pn(t.helper(Z6),[Qt.value])));break;case 14:break;default:Ae=pn(t.helper(Wp),[pn(t.helper(af),[Ae])]);break}return{props:Ae,directives:A,patchFlag:q,dynamicPropNames:ge,shouldUseBlock:C}}function Jhe(n){const t=new Map,a=[];for(let i=0;i<n.length;i++){const d=n[i];if(d.key.type===8||!d.key.isStatic){a.push(d);continue}const p=d.key.content,y=t.get(p);y?(p==="style"||p==="class"||Mge(p))&&vRt(y,d):(t.set(p,d),a.push(d))}return a}function vRt(n,t){n.value.type===17?n.value.elements.push(t.value):n.value=Sl([n.value,t.value],n.loc)}function x0e(n,t){const a=[],i=g0e.get(n);if(i)a.push(t.helperString(i));else{const p=Kk("v-"+n.name,t);p?a.push(p):(t.helper(X6),t.directives.add(n.name),a.push(wy(n.name,"directive")))}const{loc:d}=n;if(n.exp&&a.push(n.exp),n.arg&&(n.exp||a.push("void 0"),a.push(n.arg)),Object.keys(n.modifiers).length){n.arg||(n.exp||a.push("void 0"),a.push("void 0"));const p=Fr("true",!1,d);a.push(ni(n.modifiers.map(y=>Za(y,p)),d))}return Sl(a,n.loc)}function bRt(n){let t="[";for(let a=0,i=n.length;a<i;a++)t+=JSON.stringify(n[a]),a<i-1&&(t+=", ");return t+"]"}function Hk(n){return n==="component"||n==="Component"}const xRt=(n,t)=>{if(Sy(n)){const{children:a,loc:i}=n,{slotName:d,slotProps:p}=R0e(n,t),y=[t.prefixIdentifiers?"_ctx.$slots":"$slots",d,"{}","undefined","true"];let b=2;p&&(y[2]=p,b=3),a.length&&(y[3]=nd([],a,!1,!1,i),b=4),t.scopeId&&!t.slotted&&(b=5),y.splice(b),n.codegenNode=pn(t.helper(KL),y,i)}};function R0e(n,t){let a='"default"',i;const d=[];for(let p=0;p<n.props.length;p++){const y=n.props[p];if(y.type===6)y.value&&(y.name==="name"?a=JSON.stringify(y.value.content):(y.name=Ws(y.name),d.push(y)));else if(y.name==="bind"&&gl(y.arg,"name")){if(y.exp)a=y.exp;else if(y.arg&&y.arg.type===4){const b=Ws(y.arg.content);a=y.exp=Fr(b,!1,y.arg.loc),a=y.exp=ts(y.exp,t)}}else y.name==="bind"&&y.arg&&Ps(y.arg)&&(y.arg.content=Ws(y.arg.content)),d.push(y)}if(d.length>0){const{props:p,directives:y}=_M(n,t,d,!1,!1);i=p,y.length&&t.onError(_a(36,y[0].loc))}return{slotName:a,slotProps:i}}const NM=(n,t,a,i)=>{const{loc:d,modifiers:p,arg:y}=n;!n.exp&&!p.length&&a.onError(_a(35,d));let b;if(y.type===4)if(y.isStatic){let A=y.content;A.startsWith("vnode")&&a.onError(_a(51,y.loc)),A.startsWith("vue:")&&(A=`vnode-${A.slice(4)}`);const _=t.tagType!==0||A.startsWith("vnode")||!/[A-Z]/.test(A)?_6t(Ws(A)):`on:${A}`;b=Fr(_,!0,y.loc)}else b=Ts([`${a.helperString(M2)}(`,y,")"]);else b=y,b.children.unshift(`${a.helperString(M2)}(`),b.children.push(")");let v=n.exp;v&&!v.content.trim()&&(v=void 0);let E=a.cacheHandlers&&!v&&!a.inVOnce;if(v){const A=vM(v,a),_=!(A||O1e(v,a)),C=v.content.includes(";");a.prefixIdentifiers&&(_&&a.addIdentifiers("$event"),v=n.exp=ts(v,a,!1,C),_&&a.removeIdentifiers("$event"),E=a.cacheHandlers&&!a.inVOnce&&!(v.type===4&&v.constType>0)&&!(A&&t.tagType===1)&&!Us(v,a.identifiers),E&&A&&(v.type===4?v.content=`${v.content} && ${v.content}(...args)`:v.children=[...v.children," && ",...v.children,"(...args)"])),(_||E&&A)&&(v=Ts([`${_?a.isTS?"($event: any)":"$event":`${a.isTS?` +//@ts-ignore +`:""}(...args)`} => ${C?"{":"("}`,v,C?"}":")"]))}let S={props:[Za(b,v||Fr("() => {}",!1,d))]};return i&&(S=i(S)),E&&(S.props[0].value=a.cache(S.props[0].value)),S.props.forEach(A=>A.key.isHandlerKey=!0),S},RRt=(n,t)=>{if(n.type===0||n.type===1||n.type===11||n.type===10)return()=>{const a=n.children;let i,d=!1;for(let p=0;p<a.length;p++){const y=a[p];if(b2(y)){d=!0;for(let b=p+1;b<a.length;b++){const v=a[b];if(b2(v))i||(i=a[p]=Ts([y],y.loc)),i.children.push(" + ",v),a.splice(b,1),b--;else{i=void 0;break}}}}if(!(!d||a.length===1&&(n.type===0||n.type===1&&n.tagType===0&&!n.props.find(p=>p.type===7&&!t.directiveTransforms[p.name]))))for(let p=0;p<a.length;p++){const y=a[p];if(b2(y)||y.type===8){const b=[];(y.type!==2||y.content!==" ")&&b.push(y),!t.ssr&&Gs(y,t)===0&&b.push(`1 /* ${Au[1]} */`),a[p]={type:12,content:y,loc:y.loc,codegenNode:pn(t.helper(K6),b)}}}}},Yhe=new WeakSet,ERt=(n,t)=>{if(n.type===1&&Es(n,"once",!0))return Yhe.has(n)||t.inVOnce||t.inSSR?void 0:(Yhe.add(n),t.inVOnce=!0,t.helper(vy),()=>{t.inVOnce=!1;const a=t.currentNode;a.codegenNode&&(a.codegenNode=t.cache(a.codegenNode,!0))})},kM=(n,t,a)=>{const{exp:i,arg:d}=n;if(!i)return a.onError(_a(41,n.loc)),zm();const p=i.loc.source,y=i.type===4?i.content:p,b=a.bindingMetadata[p];if(b==="props"||b==="props-aliased")return a.onError(_a(44,i.loc)),zm();const v=a.inline&&(b==="setup-let"||b==="setup-ref"||b==="setup-maybe-ref");if(!y.trim()||!vM(i,a)&&!v)return a.onError(_a(42,i.loc)),zm();if(a.prefixIdentifiers&&Pl(y)&&a.identifiers[y])return a.onError(_a(43,i.loc)),zm();const E=d||Fr("modelValue",!0),S=d?Ps(d)?`onUpdate:${Ws(d.content)}`:Ts(['"onUpdate:" + ',d]):"onUpdate:modelValue";let A;const _=a.isTS?"($event: any)":"$event";if(v)if(b==="setup-ref")A=Ts([`${_} => ((`,Fr(p,!1,i.loc),").value = $event)"]);else{const q=b==="setup-let"?`${p} = $event`:"null";A=Ts([`${_} => (${a.helperString(xy)}(${p}) ? (`,Fr(p,!1,i.loc),`).value = $event : ${q})`])}else A=Ts([`${_} => ((`,i,") = $event)"]);const C=[Za(E,n.exp),Za(S,A)];if(a.prefixIdentifiers&&!a.inVOnce&&a.cacheHandlers&&!Us(i,a.identifiers)&&(C[1].value=a.cache(C[1].value)),n.modifiers.length&&t.tagType===1){const q=n.modifiers.map(W=>W.content).map(W=>(Pl(W)?W:JSON.stringify(W))+": true").join(", "),M=d?Ps(d)?`${d.content}Modifiers`:Ts([d,' + "Modifiers"']):"modelModifiers";C.push(Za(M,Fr(`{ ${q} }`,!1,n.loc,2)))}return zm(C)};function zm(n=[]){return{props:n}}const Qhe=new WeakSet,SRt=(n,t)=>{if(n.type===1){const a=Es(n,"memo");return!a||Qhe.has(n)?void 0:(Qhe.add(n),()=>{const i=n.codegenNode||t.currentNode.codegenNode;i&&i.type===13&&(n.tagType!==1&&ax(i,t),n.codegenNode=pn(t.helper(rx),[a.exp,nd(void 0,i),"_cache",String(t.cached.length)]),t.cached.push(null))})}};function DM(n){return[[ERt,pRt,SRt,mRt,...n?[h0e,l0e]:[],xRt,v0e,f0e,RRt],{on:NM,bind:c0e,model:kM}]}function E0e(n,t={}){const a=t.onError||YL,i=t.mode==="module",d=t.prefixIdentifiers===!0||i;!d&&t.cacheHandlers&&a(_a(49)),t.scopeId&&!i&&a(_a(50));const p=El({},t,{prefixIdentifiers:d}),y=Ca(n)?RM(n,p):n,[b,v]=DM(d);if(t.isTS){const{expressionPlugins:E}=t;(!E||!E.includes("typescript"))&&(t.expressionPlugins=[...E||[],"typescript"])}return G1e(y,El({},p,{nodeTransforms:[...b,...t.nodeTransforms||[]],directiveTransforms:El({},v,t.directiveTransforms||{})})),a0e(y,p)}const TRt={DATA:"data",PROPS:"props",PROPS_ALIASED:"props-aliased",SETUP_LET:"setup-let",SETUP_CONST:"setup-const",SETUP_REACTIVE_CONST:"setup-reactive-const",SETUP_MAYBE_REF:"setup-maybe-ref",SETUP_REF:"setup-ref",OPTIONS:"options",LITERAL_CONST:"literal-const"},S0e=()=>({props:[]}),LM=Symbol("vModelRadio"),MM=Symbol("vModelCheckbox"),BM=Symbol("vModelText"),FM=Symbol("vModelSelect"),z2=Symbol("vModelDynamic"),$M=Symbol("vOnModifiersGuard"),qM=Symbol("vOnKeysGuard"),UM=Symbol("vShow"),px=Symbol("Transition"),VM=Symbol("TransitionGroup");XL({[LM]:"vModelRadio",[MM]:"vModelCheckbox",[BM]:"vModelText",[FM]:"vModelSelect",[z2]:"vModelDynamic",[$M]:"withModifiers",[qM]:"withKeys",[UM]:"vShow",[px]:"Transition",[VM]:"TransitionGroup"});const Ay={parseMode:"html",isVoidTag:Wge,isNativeTag:n=>G6t(n)||K6t(n)||H6t(n),isPreTag:n=>n==="pre",decodeEntities:void 0,isBuiltInComponent:n=>{if(n==="Transition"||n==="transition")return px;if(n==="TransitionGroup"||n==="transition-group")return VM},getNamespace(n,t,a){let i=t?t.ns:a;if(t&&i===2)if(t.tag==="annotation-xml"){if(n==="svg")return 1;t.props.some(d=>d.type===6&&d.name==="encoding"&&d.value!=null&&(d.value.content==="text/html"||d.value.content==="application/xhtml+xml"))&&(i=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&n!=="mglyph"&&n!=="malignmark"&&(i=0);else t&&i===1&&(t.tag==="foreignObject"||t.tag==="desc"||t.tag==="title")&&(i=0);if(i===0){if(n==="svg")return 1;if(n==="math")return 2}return i}},T0e=n=>{n.type===1&&n.props.forEach((t,a)=>{t.type===6&&t.name==="style"&&t.value&&(n.props[a]={type:7,name:"bind",arg:Fr("style",!0,t.loc),exp:wRt(t.value.content,t.loc),modifiers:[],loc:t.loc})})},wRt=(n,t)=>{const a=Uge(n);return Fr(JSON.stringify(a),!1,t,3)};function Oi(n,t){return _a(n,t,WM)}const PRt={X_V_HTML_NO_EXPRESSION:53,53:"X_V_HTML_NO_EXPRESSION",X_V_HTML_WITH_CHILDREN:54,54:"X_V_HTML_WITH_CHILDREN",X_V_TEXT_NO_EXPRESSION:55,55:"X_V_TEXT_NO_EXPRESSION",X_V_TEXT_WITH_CHILDREN:56,56:"X_V_TEXT_WITH_CHILDREN",X_V_MODEL_ON_INVALID_ELEMENT:57,57:"X_V_MODEL_ON_INVALID_ELEMENT",X_V_MODEL_ARG_ON_ELEMENT:58,58:"X_V_MODEL_ARG_ON_ELEMENT",X_V_MODEL_ON_FILE_INPUT_ELEMENT:59,59:"X_V_MODEL_ON_FILE_INPUT_ELEMENT",X_V_MODEL_UNNECESSARY_VALUE:60,60:"X_V_MODEL_UNNECESSARY_VALUE",X_V_SHOW_NO_EXPRESSION:61,61:"X_V_SHOW_NO_EXPRESSION",X_TRANSITION_INVALID_CHILDREN:62,62:"X_TRANSITION_INVALID_CHILDREN",X_IGNORED_SIDE_EFFECT_TAG:63,63:"X_IGNORED_SIDE_EFFECT_TAG",__EXTEND_POINT__:64,64:"__EXTEND_POINT__"},WM={53:"v-html is missing expression.",54:"v-html will override element children.",55:"v-text is missing expression.",56:"v-text will override element children.",57:"v-model can only be used on <input>, <textarea> and <select> elements.",58:"v-model argument is not supported on plain elements.",59:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",60:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",61:"v-show is missing expression.",62:"<Transition> expects exactly one child element or component.",63:"Tags with side effect (<script> and <style>) are ignored in client component templates."},ARt=(n,t,a)=>{const{exp:i,loc:d}=n;return i||a.onError(Oi(53,d)),t.children.length&&(a.onError(Oi(54,d)),t.children.length=0),{props:[Za(Fr("innerHTML",!0,d),i||Fr("",!0))]}},IRt=(n,t,a)=>{const{exp:i,loc:d}=n;return i||a.onError(Oi(55,d)),t.children.length&&(a.onError(Oi(56,d)),t.children.length=0),{props:[Za(Fr("textContent",!0),i?Gs(i,a)>0?i:pn(a.helperString(Xy),[i],d):Fr("",!0))]}},CRt=(n,t,a)=>{const i=kM(n,t,a);if(!i.props.length||t.tagType===1)return i;n.arg&&a.onError(Oi(58,n.arg.loc));function d(){const b=Es(t,"bind");b&&gl(b.arg,"value")&&a.onError(Oi(60,b.loc))}const{tag:p}=t,y=a.isCustomElement(p);if(p==="input"||p==="textarea"||p==="select"||y){let b=BM,v=!1;if(p==="input"||y){const E=Kp(t,"type");if(E){if(E.type===7)b=z2;else if(E.value)switch(E.value.content){case"radio":b=LM;break;case"checkbox":b=MM;break;case"file":v=!0,a.onError(Oi(59,n.loc));break;default:d();break}}else _1e(t)?b=z2:d()}else p==="select"?b=FM:d();v||(i.needRuntime=a.helper(b))}else a.onError(Oi(57,n.loc));return i.props=i.props.filter(b=>!(b.key.type===4&&b.key.content==="modelValue")),i},jRt=as("passive,once,capture"),ORt=as("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),_Rt=as("left,right"),w0e=as("onkeyup,onkeydown,onkeypress",!0),NRt=(n,t,a,i)=>{const d=[],p=[],y=[];for(let b=0;b<t.length;b++){const v=t[b].content;jRt(v)?y.push(v):_Rt(v)?Ps(n)?w0e(n.content)?d.push(v):p.push(v):(d.push(v),p.push(v)):ORt(v)?p.push(v):d.push(v)}return{keyModifiers:d,nonKeyModifiers:p,eventOptionModifiers:y}},Zhe=(n,t)=>Ps(n)&&n.content.toLowerCase()==="onclick"?Fr(t,!0):n.type!==4?Ts(["(",n,`) === "onClick" ? "${t}" : (`,n,")"]):n,kRt=(n,t,a)=>NM(n,t,a,i=>{const{modifiers:d}=n;if(!d.length)return i;let{key:p,value:y}=i.props[0];const{keyModifiers:b,nonKeyModifiers:v,eventOptionModifiers:E}=NRt(p,d,a,n.loc);if(v.includes("right")&&(p=Zhe(p,"onContextmenu")),v.includes("middle")&&(p=Zhe(p,"onMouseup")),v.length&&(y=pn(a.helper($M),[y,JSON.stringify(v)])),b.length&&(!Ps(p)||w0e(p.content))&&(y=pn(a.helper(qM),[y,JSON.stringify(b)])),E.length){const S=E.map(ju).join("");p=Ps(p)?Fr(`${p.content}${S}`,!0):Ts(["(",p,`) + "${S}"`])}return{props:[Za(p,y)]}}),DRt=(n,t,a)=>{const{exp:i,loc:d}=n;return i||a.onError(Oi(61,d)),{props:[],needRuntime:a.helper(UM)}},LRt=(n,t)=>{if(n.type===1&&n.tagType===1&&t.isBuiltInComponent(n.tag)===px)return()=>{if(!n.children.length)return;P0e(n)&&t.onError(Oi(62,{start:n.children[0].loc.start,end:n.children[n.children.length-1].loc.end,source:""}));const i=n.children[0];if(i.type===1)for(const d of i.props)d.type===7&&d.name==="show"&&n.props.push({type:6,name:"persisted",nameLoc:n.loc,value:void 0,loc:n.loc})}};function P0e(n){const t=n.children=n.children.filter(i=>i.type!==3&&!(i.type===2&&!i.content.trim())),a=t[0];return t.length!==1||a.type===11||a.type===9&&a.branches.some(P0e)}const MRt=/__VUE_EXP_START__(.*?)__VUE_EXP_END__/g,BRt=(n,t,a)=>{if(t.scopes.vSlot>0)return;const i=a.type===1&&a.codegenNode&&a.codegenNode.type===13&&a.codegenNode.children&&!es(a.codegenNode.children)&&a.codegenNode.children.type===20;let d=0,p=0;const y=[],b=E=>{if(d>=20||p>=5){const S=pn(t.helper(H6),[JSON.stringify(y.map(A=>GM(A,t)).join("")).replace(MRt,'" + $1 + "'),String(y.length)]);if(i)a.codegenNode.children.value=Sl([S]);else if(y[0].codegenNode.value=S,y.length>1){const A=y.length-1;n.splice(E-y.length+1,A);const _=t.cached.indexOf(y[y.length-1].codegenNode);if(_>-1){for(let C=_;C<t.cached.length;C++){const q=t.cached[C];q&&(q.index-=A)}t.cached.splice(_-A+1,A)}return A}}return 0};let v=0;for(;v<n.length;v++){const E=n[v];if(i||FRt(E)){const A=URt(E);if(A){d+=A[0],p+=A[1],y.push(E);continue}}v-=b(v),d=0,p=0,y.length=0}b(v)},FRt=n=>{if((n.type===1&&n.tagType===0||n.type===12)&&n.codegenNode&&n.codegenNode.type===20)return n.codegenNode},$Rt=/^(data|aria)-/,eme=(n,t)=>(t===0?J6t(n):t===1?Y6t(n):!1)||$Rt.test(n),qRt=as("caption,thead,tr,th,tbody,td,tfoot,colgroup,col");function URt(n){if(n.type===1&&qRt(n.tag))return!1;if(n.type===12)return[1,0];let t=1,a=n.props.length>0?1:0,i=!1;const d=()=>(i=!0,!1);function p(y){const b=y.tag==="option"&&y.ns===0;for(let v=0;v<y.props.length;v++){const E=y.props[v];if(E.type===6&&!eme(E.name,y.ns)||E.type===7&&E.name==="bind"&&(E.arg&&(E.arg.type===8||E.arg.isStatic&&!eme(E.arg.content,y.ns))||E.exp&&(E.exp.type===8||E.exp.constType<3)||b&&gl(E.arg,"value")&&E.exp&&E.exp.ast&&E.exp.ast.type!=="StringLiteral"))return d()}for(let v=0;v<y.children.length;v++){t++;const E=y.children[v];if(E.type===1&&(E.props.length>0&&a++,p(E),i))return!1}return!0}return p(n)?[t,a]:!1}function GM(n,t){if(Ca(n))return n;if(dd(n))return"";switch(n.type){case 1:return VRt(n,t);case 2:return Xc(n.content);case 3:return`<!--${Xc(n.content)}-->`;case 5:return Xc(U6(rd(n.content)));case 8:return Xc(rd(n));case 12:return GM(n.content,t);default:return""}}function VRt(n,t){let a=`<${n.tag}`,i="";for(let d=0;d<n.props.length;d++){const p=n.props[d];if(p.type===6)a+=` ${p.name}`,p.value&&(a+=`="${Xc(p.value.content)}"`);else if(p.type===7)if(p.name==="bind"){const y=p.exp;if(y.content[0]==="_"){a+=` ${p.arg.content}="__VUE_EXP_START__${y.content}__VUE_EXP_END__"`;continue}if(X6t(p.arg.content)&&y.content==="false")continue;let b=rd(y);if(b!=null){const v=p.arg&&p.arg.content;v==="class"?b=Vge(b):v==="style"&&(b=$6t(qge(b))),a+=` ${p.arg.content}="${Xc(b)}"`}}else p.name==="html"?i=rd(p.exp):p.name==="text"&&(i=Xc(U6(rd(p.exp))))}if(t.scopeId&&(a+=` ${t.scopeId}`),a+=">",i)a+=i;else for(let d=0;d<n.children.length;d++)a+=GM(n.children[d],t);return Wge(n.tag)||(a+=`</${n.tag}>`),a}function rd(n){if(n.type===4)return new Function(`return (${n.content})`)();{let t="";return n.children.forEach(a=>{Ca(a)||dd(a)||(a.type===2?t+=a.content:a.type===5?t+=U6(rd(a.content)):t+=rd(a))}),t}}const WRt=(n,t)=>{n.type===1&&n.tagType===0&&(n.tag==="script"||n.tag==="style")&&(t.onError(Oi(63,n.loc)),t.removeNode())};function GRt(n,t){return n in tme?tme[n].has(t):t in rme?rme[t].has(n):!(n in ame&&ame[n].has(t)||t in nme&&nme[t].has(n))}const wp=new Set(["h1","h2","h3","h4","h5","h6"]),Gc=new Set([]),tme={head:new Set(["base","basefront","bgsound","link","meta","title","noscript","noframes","style","script","template"]),optgroup:new Set(["option"]),select:new Set(["optgroup","option","hr"]),table:new Set(["caption","colgroup","tbody","tfoot","thead"]),tr:new Set(["td","th"]),colgroup:new Set(["col"]),tbody:new Set(["tr"]),thead:new Set(["tr"]),tfoot:new Set(["tr"]),script:Gc,iframe:Gc,option:Gc,textarea:Gc,style:Gc,title:Gc},rme={html:Gc,body:new Set(["html"]),head:new Set(["html"]),td:new Set(["tr"]),colgroup:new Set(["table"]),caption:new Set(["table"]),tbody:new Set(["table"]),tfoot:new Set(["table"]),col:new Set(["colgroup"]),th:new Set(["tr"]),thead:new Set(["table"]),tr:new Set(["tbody","thead","tfoot"]),dd:new Set(["dl","div"]),dt:new Set(["dl","div"]),figcaption:new Set(["figure"]),summary:new Set(["details"]),area:new Set(["map"])},ame={p:new Set(["address","article","aside","blockquote","center","details","dialog","dir","div","dl","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","menu","ol","p","pre","section","table","ul"]),svg:new Set(["b","blockquote","br","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","hr","i","img","li","menu","meta","ol","p","pre","ruby","s","small","span","strong","sub","sup","table","u","ul","var"])},nme={a:new Set(["a"]),button:new Set(["button"]),dd:new Set(["dd","dt"]),dt:new Set(["dd","dt"]),form:new Set(["form"]),li:new Set(["li"]),h1:wp,h2:wp,h3:wp,h4:wp,h5:wp,h6:wp},KRt=(n,t)=>{if(n.type===1&&n.tagType===0&&t.parent&&t.parent.type===1&&t.parent.tagType===0&&!GRt(t.parent.tag,n.tag)){const a=new SyntaxError(`<${n.tag}> cannot be child of <${t.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`);a.loc=n.loc,t.onWarn(a)}},KM=[T0e,LRt,KRt],HM={cloak:S0e,html:ARt,text:IRt,model:CRt,on:kRt,show:DRt};function HRt(n,t={}){return E0e(n,El({},Ay,t,{nodeTransforms:[WRt,...KM,...t.nodeTransforms||[]],directiveTransforms:El({},HM,t.directiveTransforms||{}),transformHoist:BRt}))}function zRt(n,t={}){return RM(n,El({},Ay,t))}var XRt=Object.freeze({__proto__:null,BASE_TRANSITION:VL,BindingTypes:TRt,CAMELIZE:L2,CAPITALIZE:zge,CREATE_BLOCK:WL,CREATE_COMMENT:rf,CREATE_ELEMENT_BLOCK:GL,CREATE_ELEMENT_VNODE:G6,CREATE_SLOTS:HL,CREATE_STATIC:H6,CREATE_TEXT:K6,CREATE_VNODE:W6,CompilerDeprecationTypes:xxt,ConstantTypes:rxt,DOMDirectiveTransforms:HM,DOMErrorCodes:PRt,DOMErrorMessages:WM,DOMNodeTransforms:KM,ElementTypes:txt,ErrorCodes:Txt,FRAGMENT:Vp,GUARD_REACTIVE_PROPS:af,IS_MEMO_SAME:zL,IS_REF:xy,KEEP_ALIVE:my,MERGE_PROPS:gy,NORMALIZE_CLASS:Q6,NORMALIZE_PROPS:Wp,NORMALIZE_STYLE:Z6,Namespaces:Z6t,NodeTypes:ext,OPEN_BLOCK:Ou,POP_SCOPE_ID:Jge,PUSH_SCOPE_ID:Xge,RENDER_LIST:Y6,RENDER_SLOT:KL,RESOLVE_COMPONENT:yy,RESOLVE_DIRECTIVE:X6,RESOLVE_DYNAMIC_COMPONENT:z6,RESOLVE_FILTER:Hge,SET_BLOCK_TRACKING:vy,SUSPENSE:V6,TELEPORT:Lp,TO_DISPLAY_STRING:Xy,TO_HANDLERS:ex,TO_HANDLER_KEY:M2,TRANSITION:px,TRANSITION_GROUP:VM,TS_NODE_TYPES:yM,UNREF:by,V_MODEL_CHECKBOX:MM,V_MODEL_DYNAMIC:z2,V_MODEL_RADIO:LM,V_MODEL_SELECT:FM,V_MODEL_TEXT:BM,V_ON_WITH_KEYS:qM,V_ON_WITH_MODIFIERS:$M,V_SHOW:UM,WITH_CTX:tx,WITH_DIRECTIVES:J6,WITH_MEMO:rx,advancePositionWithClone:Uk,advancePositionWithMutation:bM,assert:Vk,baseCompile:E0e,baseParse:RM,buildDirectiveArgs:x0e,buildProps:_M,buildSlots:m0e,checkCompatEnabled:Sxt,compile:HRt,convertToBlock:ax,createArrayExpression:Sl,createAssignmentExpression:ixt,createBlockStatement:Qge,createCacheExpression:Yge,createCallExpression:pn,createCompilerError:_a,createCompoundExpression:Ts,createConditionalExpression:B2,createDOMCompilerError:Oi,createForLoopParams:H2,createFunctionExpression:nd,createIfStatement:sxt,createInterpolation:axt,createObjectExpression:ni,createObjectProperty:Za,createReturnStatement:lxt,createRoot:JL,createSequenceExpression:oxt,createSimpleExpression:Fr,createStructuralDirectiveTransform:EM,createTemplateLiteral:nxt,createTransformContext:W1e,createVNodeCall:Gp,errorMessages:QL,extractIdentifiers:xo,findDir:Es,findProp:Kp,forAliasRE:D1e,generate:a0e,generateCodeFrame:L6t,getBaseTransformPreset:DM,getConstantType:Gs,getMemoedVNodeCall:k1e,getVNodeBlockHelper:id,getVNodeHelper:sd,hasDynamicKeyVBind:_1e,hasScopeRef:Us,helperNameMap:Vs,injectProp:Ty,isCoreComponent:gM,isFnExpression:O1e,isFnExpressionBrowser:y7t,isFnExpressionNode:j1e,isFunctionType:hM,isInDestructureAssignment:fM,isInNewExpression:S1e,isMemberExpression:vM,isMemberExpressionBrowser:h7t,isMemberExpressionNode:C1e,isReferencedIdentifier:E1e,isSimpleIdentifier:Pl,isSlotOutlet:Sy,isStaticArgOf:gl,isStaticExp:Ps,isStaticProperty:mM,isStaticPropertyKey:I1e,isTemplateNode:Hp,isText:b2,isVSlot:xM,locStub:En,noopDirectiveTransform:S0e,parse:zRt,parserOptions:Ay,processExpression:ts,processFor:p0e,processIf:u0e,processSlotOutlet:R0e,registerRuntimeHelpers:XL,resolveComponentType:b0e,stringifyExpression:jM,toValidAssetId:wy,trackSlotScopes:f0e,trackVForSlotScopes:h0e,transform:G1e,transformBind:c0e,transformElement:v0e,transformExpression:l0e,transformModel:kM,transformOn:NM,transformStyle:T0e,traverseNode:Qy,unwrapTSNode:Yy,walkBlockDeclarations:w1e,walkFunctionParams:T1e,walkIdentifiers:pM,warnDeprecation:r1e});function JRt(n){return n=n.trim(),n[0]==="'"&&n[n.length-1]==="'"||n[0]==='"'&&n[n.length-1]==='"'?n.slice(1,-1):n}const YRt=/v-bind\s*\(/g;function QRt(n){const t=[];return n.styles.forEach(a=>{let i;const d=a.content.replace(/\/\*([\s\S]*?)\*\/|\/\/.*/g,"");for(;i=YRt.exec(d);){const p=i.index+i[0].length,y=ZRt(d,p);if(y!==null){const b=JRt(d.slice(p,y));t.includes(b)||t.push(b)}}}),t}function ZRt(n,t){let a=0,i=0;for(let d=t;d<n.length;d++){const p=n.charAt(d);switch(a){case 0:if(p==="'")a=1;else if(p==='"')a=2;else if(p==="(")i++;else if(p===")")if(i>0)i--;else return d;break;case 1:p==="'"&&(a=0);break;case 2:p==='"'&&(a=0);break}}return null}var _u=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};function A0e(){throw new Error("setTimeout has not been defined")}function I0e(){throw new Error("clearTimeout has not been defined")}var xu=A0e,Ru=I0e;typeof _u.setTimeout=="function"&&(xu=setTimeout);typeof _u.clearTimeout=="function"&&(Ru=clearTimeout);function C0e(n){if(xu===setTimeout)return setTimeout(n,0);if((xu===A0e||!xu)&&setTimeout)return xu=setTimeout,setTimeout(n,0);try{return xu(n,0)}catch{try{return xu.call(null,n,0)}catch{return xu.call(this,n,0)}}}function e8t(n){if(Ru===clearTimeout)return clearTimeout(n);if((Ru===I0e||!Ru)&&clearTimeout)return Ru=clearTimeout,clearTimeout(n);try{return Ru(n)}catch{try{return Ru.call(null,n)}catch{return Ru.call(this,n)}}}var vl=[],Fp=!1,Yc,w2=-1;function t8t(){!Fp||!Yc||(Fp=!1,Yc.length?vl=Yc.concat(vl):w2=-1,vl.length&&j0e())}function j0e(){if(!Fp){var n=C0e(t8t);Fp=!0;for(var t=vl.length;t;){for(Yc=vl,vl=[];++w2<t;)Yc&&Yc[w2].run();w2=-1,t=vl.length}Yc=null,Fp=!1,e8t(n)}}function r8t(n){var t=new Array(arguments.length-1);if(arguments.length>1)for(var a=1;a<arguments.length;a++)t[a-1]=arguments[a];vl.push(new O0e(n,t)),vl.length===1&&!Fp&&C0e(j0e)}function O0e(n,t){this.fun=n,this.array=t}O0e.prototype.run=function(){this.fun.apply(null,this.array)};var a8t="browser",n8t="browser",s8t=!0,i8t={},o8t=[],l8t="",u8t={},c8t={},d8t={};function pd(){}var p8t=pd,f8t=pd,h8t=pd,m8t=pd,y8t=pd,g8t=pd,v8t=pd;function b8t(n){throw new Error("process.binding is not supported")}function x8t(){return"/"}function R8t(n){throw new Error("process.chdir is not supported")}function E8t(){return 0}var Ap=_u.performance||{},S8t=Ap.now||Ap.mozNow||Ap.msNow||Ap.oNow||Ap.webkitNow||function(){return new Date().getTime()};function T8t(n){var t=S8t.call(Ap)*.001,a=Math.floor(t),i=Math.floor(t%1*1e9);return n&&(a=a-n[0],i=i-n[1],i<0&&(a--,i+=1e9)),[a,i]}var w8t=new Date;function P8t(){var n=new Date,t=n-w8t;return t/1e3}var Ks={nextTick:r8t,title:a8t,browser:s8t,env:i8t,argv:o8t,version:l8t,versions:u8t,on:p8t,addListener:f8t,once:h8t,off:m8t,removeListener:y8t,removeAllListeners:g8t,emit:v8t,binding:b8t,cwd:x8t,chdir:R8t,umask:E8t,hrtime:T8t,platform:n8t,release:c8t,config:d8t,uptime:P8t};function zM(n=500){return new Map}function A8t(n,t){return I8t(t).has(n)}const sme=zM();function I8t(n){const{content:t,ast:a}=n.template,i=sme.get(t);if(i)return i;const d=new Set;a.children.forEach(p);function p(y){var b;switch(y.type){case 1:let v=y.tag;v.includes(".")&&(v=v.split(".")[0].trim()),!Ay.isNativeTag(v)&&!Ay.isBuiltInComponent(v)&&(d.add(Ws(v)),d.add(ju(Ws(v))));for(let E=0;E<y.props.length;E++){const S=y.props[E];S.type===7&&(Fge(S.name)||d.add(`v${ju(Ws(S.name))}`),S.arg&&!S.arg.isStatic&&Gb(d,S.arg),S.name==="for"?Gb(d,S.forParseResult.source):S.exp?Gb(d,S.exp):S.name==="bind"&&!S.exp&&d.add(Ws(S.arg.content))),S.type===6&&S.name==="ref"&&((b=S.value)!=null&&b.content)&&d.add(S.value.content)}y.children.forEach(p);break;case 5:Gb(d,y.content);break}}return sme.set(t,d),d}function Gb(n,t){t.ast?pM(t.ast,a=>n.add(a.name)):t.ast===null&&n.add(t.content)}var C8t=Object.defineProperty,j8t=Object.defineProperties,O8t=Object.getOwnPropertyDescriptors,ime=Object.getOwnPropertySymbols,_8t=Object.prototype.hasOwnProperty,N8t=Object.prototype.propertyIsEnumerable,ome=(n,t,a)=>t in n?C8t(n,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[t]=a,_0e=(n,t)=>{for(var a in t||(t={}))_8t.call(t,a)&&ome(n,a,t[a]);if(ime)for(var a of ime(t))N8t.call(t,a)&&ome(n,a,t[a]);return n},N0e=(n,t)=>j8t(n,O8t(t));const k8t="anonymous.vue",lme=zM();function D8t(n,t){var a;return n+JSON.stringify(N0e(_0e({},t),{compiler:{parse:(a=t.compiler)==null?void 0:a.parse}}),(i,d)=>typeof d=="function"?d.toString():d)}function L8t(n,t={}){const a=D8t(n,t),i=lme.get(a);if(i)return i;const{sourceMap:d=!0,filename:p=k8t,sourceRoot:y="",pad:b=!1,ignoreEmpty:v=!0,compiler:E=XRt,templateParseOptions:S={}}=t,A={filename:p,source:n,template:null,script:null,scriptSetup:null,styles:[],customBlocks:[],cssVars:[],slotted:!1,shouldForceReload:z=>V8t(z,A)},_=[];E.parse(n,N0e(_0e({parseMode:"sfc",prefixIdentifiers:!0},S),{onError:z=>{_.push(z)}})).children.forEach(z=>{if(z.type===1&&!(v&&z.tag!=="template"&&U8t(z)&&!q8t(z)))switch(z.tag){case"template":if(A.template)_.push(ume(z));else{const ge=A.template=Kb(z,n,!1);if(ge.attrs.src||(ge.ast=JL(z.children,n)),ge.attrs.functional){const Ge=new SyntaxError("<template functional> is no longer supported in Vue 3, since functional components no longer have significant performance difference from stateful ones. Just use a normal <template> instead.");Ge.loc=z.props.find(Je=>Je.type===6&&Je.name==="functional").loc,_.push(Ge)}}break;case"script":const Y=Kb(z,n,b),Z=!!Y.attrs.setup;if(Z&&!A.scriptSetup){A.scriptSetup=Y;break}if(!Z&&!A.script){A.script=Y;break}_.push(ume(z,Z));break;case"style":const ce=Kb(z,n,b);ce.attrs.vars&&_.push(new SyntaxError("<style vars> has been replaced by a new proposal: https://github.com/vuejs/rfcs/pull/231")),A.styles.push(ce);break;default:A.customBlocks.push(Kb(z,n,b));break}}),!A.template&&!A.script&&!A.scriptSetup&&_.push(new SyntaxError(`At least one <template> or <script> is required in a single file component. ${A.filename}`)),A.scriptSetup&&(A.scriptSetup.src&&(_.push(new SyntaxError('<script setup> cannot use the "src" attribute because its syntax will be ambiguous outside of the component.')),A.scriptSetup=null),A.script&&A.script.src&&(_.push(new SyntaxError('<script> cannot use the "src" attribute when <script setup> is also present because they must be processed together.')),A.script=null));let q=0;if(A.template&&(A.template.lang==="pug"||A.template.lang==="jade")&&([A.template.content,q]=W8t(A.template.content)),d){const z=(Y,Z=0)=>{Y&&!Y.src&&(Y.map=F8t(p,n,Y.content,y,!b||Y.type==="template"?Y.loc.start.line-1:0,Z))};z(A.template,q),z(A.script),A.styles.forEach(Y=>z(Y)),A.customBlocks.forEach(Y=>z(Y))}A.cssVars=QRt(A);const M=/(?:::v-|:)slotted\(/;A.slotted=A.styles.some(z=>z.scoped&&M.test(z.content));const W={descriptor:A,errors:_};return lme.set(a,W),W}function ume(n,t=!1){const a=new SyntaxError(`Single file component can contain only one <${n.tag}${t?" setup":""}> element`);return a.loc=n.loc,a}function Kb(n,t,a){const i=n.tag,d=n.innerLoc,p={},y={type:i,content:t.slice(d.start.offset,d.end.offset),loc:d,attrs:p};return a&&(y.content=$8t(t,y,a)+y.content),n.props.forEach(b=>{if(b.type===6){const v=b.name;p[v]=b.value&&b.value.content||!0,v==="lang"?y.lang=b.value&&b.value.content:v==="src"?y.src=b.value&&b.value.content:i==="style"?v==="scoped"?y.scoped=!0:v==="module"&&(y.module=p[v]):i==="script"&&v==="setup"&&(y.setup=p.setup)}}),y}const k0e=/\r?\n/g,M8t=/^(?:\/\/)?\s*$/,B8t=/./g;function F8t(n,t,a,i,d,p){const y=new r0e({file:n.replace(/\\/g,"/"),sourceRoot:i.replace(/\\/g,"/")});return y.setSourceContent(n,t),y._sources.add(n),a.split(k0e).forEach((b,v)=>{if(!M8t.test(b)){const E=v+1+d,S=v+1;for(let A=0;A<b.length;A++)/\s/.test(b[A])||y._mappings.add({originalLine:E,originalColumn:A+p,generatedLine:S,generatedColumn:A,source:n,name:null})}}),y.toJSON()}function $8t(n,t,a){if(n=n.slice(0,t.loc.start.offset),a==="space")return n.replace(B8t," ");{const i=n.split(k0e).length,d=t.type==="script"&&!t.lang?`// +`:` +`;return Array(i).join(d)}}function q8t(n){return n.props.some(t=>t.type!==6?!1:t.name==="src")}function U8t(n){for(let t=0;t<n.children.length;t++){const a=n.children[t];if(a.type!==2||a.content.trim()!=="")return!1}return!0}function V8t(n,t){if(!t.scriptSetup||t.scriptSetup.lang!=="ts"&&t.scriptSetup.lang!=="tsx")return!1;for(const a in n)if(!n[a].isUsedInTemplate&&A8t(a,t))return!0;return!1}function W8t(n){const t=n.split(` +`),a=t.reduce(function(i,d){var p,y;if(d.trim()==="")return i;const b=((y=(p=d.match(/^\s*/))==null?void 0:p[0])==null?void 0:y.length)||0;return Math.min(b,i)},1/0);return a===0?[n,a]:[t.map(function(i){return i.slice(a)}).join(` +`),a]}function D0e(n,t){for(var a=0,i=n.length-1;i>=0;i--){var d=n[i];d==="."?n.splice(i,1):d===".."?(n.splice(i,1),a++):a&&(n.splice(i,1),a--)}if(t)for(;a--;a)n.unshift("..");return n}var G8t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,XM=function(n){return G8t.exec(n).slice(1)};function X2(){for(var n="",t=!1,a=arguments.length-1;a>=-1&&!t;a--){var i=a>=0?arguments[a]:"/";if(typeof i!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!i)continue;n=i+"/"+n,t=i.charAt(0)==="/"}return n=D0e(ZM(n.split("/"),function(d){return!!d}),!t).join("/"),(t?"/":"")+n||"."}function JM(n){var t=YM(n),a=K8t(n,-1)==="/";return n=D0e(ZM(n.split("/"),function(i){return!!i}),!t).join("/"),!n&&!t&&(n="."),n&&a&&(n+="/"),(t?"/":"")+n}function YM(n){return n.charAt(0)==="/"}function L0e(){var n=Array.prototype.slice.call(arguments,0);return JM(ZM(n,function(t,a){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))}function M0e(n,t){n=X2(n).substr(1),t=X2(t).substr(1);function a(E){for(var S=0;S<E.length&&E[S]==="";S++);for(var A=E.length-1;A>=0&&E[A]==="";A--);return S>A?[]:E.slice(S,A-S+1)}for(var i=a(n.split("/")),d=a(t.split("/")),p=Math.min(i.length,d.length),y=p,b=0;b<p;b++)if(i[b]!==d[b]){y=b;break}for(var v=[],b=y;b<i.length;b++)v.push("..");return v=v.concat(d.slice(y)),v.join("/")}var B0e="/",F0e=":";function J2(n){var t=XM(n),a=t[0],i=t[1];return!a&&!i?".":(i&&(i=i.substr(0,i.length-1)),a+i)}function $0e(n,t){var a=XM(n)[2];return t&&a.substr(-1*t.length)===t&&(a=a.substr(0,a.length-t.length)),a}function QM(n){return XM(n)[3]}var Iy={extname:QM,basename:$0e,dirname:J2,sep:B0e,delimiter:F0e,relative:M0e,join:L0e,isAbsolute:YM,normalize:JM,resolve:X2};function ZM(n,t){if(n.filter)return n.filter(t);for(var a=[],i=0;i<n.length;i++)t(n[i],i,n)&&a.push(n[i]);return a}var K8t="ab".substr(-1)==="b"?function(n,t,a){return n.substr(t,a)}:function(n,t,a){return t<0&&(t=n.length+t),n.substr(t,a)},H8t=Object.freeze({__proto__:null,basename:$0e,default:Iy,delimiter:F0e,dirname:J2,extname:QM,isAbsolute:YM,join:L0e,normalize:JM,relative:M0e,resolve:X2,sep:B0e});/*! https://mths.be/punycode v1.4.1 by @mathias */var YN=2147483647,ly=36,q0e=1,zk=26,z8t=38,X8t=700,J8t=72,Y8t=128,Q8t="-",Z8t=/[^\x20-\x7E]/,eEt=/[\x2E\u3002\uFF0E\uFF61]/g,tEt={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},QN=ly-q0e,Op=Math.floor,ZN=String.fromCharCode;function cme(n){throw new RangeError(tEt[n])}function rEt(n,t){for(var a=n.length,i=[];a--;)i[a]=t(n[a]);return i}function aEt(n,t){var a=n.split("@"),i="";a.length>1&&(i=a[0]+"@",n=a[1]),n=n.replace(eEt,".");var d=n.split("."),p=rEt(d,t).join(".");return i+p}function nEt(n){for(var t=[],a=0,i=n.length,d,p;a<i;)d=n.charCodeAt(a++),d>=55296&&d<=56319&&a<i?(p=n.charCodeAt(a++),(p&64512)==56320?t.push(((d&1023)<<10)+(p&1023)+65536):(t.push(d),a--)):t.push(d);return t}function dme(n,t){return n+22+75*(n<26)-((t!=0)<<5)}function sEt(n,t,a){var i=0;for(n=a?Op(n/X8t):n>>1,n+=Op(n/t);n>QN*zk>>1;i+=ly)n=Op(n/QN);return Op(i+(QN+1)*n/(n+z8t))}function iEt(n){var t,a,i,d,p,y,b,v,E,S,A,_=[],C,q,M,W;for(n=nEt(n),C=n.length,t=Y8t,a=0,p=J8t,y=0;y<C;++y)A=n[y],A<128&&_.push(ZN(A));for(i=d=_.length,d&&_.push(Q8t);i<C;){for(b=YN,y=0;y<C;++y)A=n[y],A>=t&&A<b&&(b=A);for(q=i+1,b-t>Op((YN-a)/q)&&cme("overflow"),a+=(b-t)*q,t=b,y=0;y<C;++y)if(A=n[y],A<t&&++a>YN&&cme("overflow"),A==t){for(v=a,E=ly;S=E<=p?q0e:E>=p+zk?zk:E-p,!(v<S);E+=ly)W=v-S,M=ly-S,_.push(ZN(dme(S+W%M,0))),v=Op(W/M);_.push(ZN(dme(v,0))),p=sEt(a,q,i==d),a=0,++i}++a,++t}return _.join("")}function oEt(n){return aEt(n,function(t){return Z8t.test(t)?"xn--"+iEt(t):t})}var Ro=[],Ii=[],lEt=typeof Uint8Array<"u"?Uint8Array:Array,eB=!1;function U0e(){eB=!0;for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,a=n.length;t<a;++t)Ro[t]=n[t],Ii[n.charCodeAt(t)]=t;Ii[45]=62,Ii[95]=63}function uEt(n){eB||U0e();var t,a,i,d,p,y,b=n.length;if(b%4>0)throw new Error("Invalid string. Length must be a multiple of 4");p=n[b-2]==="="?2:n[b-1]==="="?1:0,y=new lEt(b*3/4-p),i=p>0?b-4:b;var v=0;for(t=0,a=0;t<i;t+=4,a+=3)d=Ii[n.charCodeAt(t)]<<18|Ii[n.charCodeAt(t+1)]<<12|Ii[n.charCodeAt(t+2)]<<6|Ii[n.charCodeAt(t+3)],y[v++]=d>>16&255,y[v++]=d>>8&255,y[v++]=d&255;return p===2?(d=Ii[n.charCodeAt(t)]<<2|Ii[n.charCodeAt(t+1)]>>4,y[v++]=d&255):p===1&&(d=Ii[n.charCodeAt(t)]<<10|Ii[n.charCodeAt(t+1)]<<4|Ii[n.charCodeAt(t+2)]>>2,y[v++]=d>>8&255,y[v++]=d&255),y}function cEt(n){return Ro[n>>18&63]+Ro[n>>12&63]+Ro[n>>6&63]+Ro[n&63]}function dEt(n,t,a){for(var i,d=[],p=t;p<a;p+=3)i=(n[p]<<16)+(n[p+1]<<8)+n[p+2],d.push(cEt(i));return d.join("")}function pme(n){eB||U0e();for(var t,a=n.length,i=a%3,d="",p=[],y=16383,b=0,v=a-i;b<v;b+=y)p.push(dEt(n,b,b+y>v?v:b+y));return i===1?(t=n[a-1],d+=Ro[t>>2],d+=Ro[t<<4&63],d+="=="):i===2&&(t=(n[a-2]<<8)+n[a-1],d+=Ro[t>>10],d+=Ro[t>>4&63],d+=Ro[t<<2&63],d+="="),p.push(d),p.join("")}function fx(n,t,a,i,d){var p,y,b=d*8-i-1,v=(1<<b)-1,E=v>>1,S=-7,A=a?d-1:0,_=a?-1:1,C=n[t+A];for(A+=_,p=C&(1<<-S)-1,C>>=-S,S+=b;S>0;p=p*256+n[t+A],A+=_,S-=8);for(y=p&(1<<-S)-1,p>>=-S,S+=i;S>0;y=y*256+n[t+A],A+=_,S-=8);if(p===0)p=1-E;else{if(p===v)return y?NaN:(C?-1:1)*(1/0);y=y+Math.pow(2,i),p=p-E}return(C?-1:1)*y*Math.pow(2,p-i)}function V0e(n,t,a,i,d,p){var y,b,v,E=p*8-d-1,S=(1<<E)-1,A=S>>1,_=d===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:p-1,q=i?1:-1,M=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(b=isNaN(t)?1:0,y=S):(y=Math.floor(Math.log(t)/Math.LN2),t*(v=Math.pow(2,-y))<1&&(y--,v*=2),y+A>=1?t+=_/v:t+=_*Math.pow(2,1-A),t*v>=2&&(y++,v/=2),y+A>=S?(b=0,y=S):y+A>=1?(b=(t*v-1)*Math.pow(2,d),y=y+A):(b=t*Math.pow(2,A-1)*Math.pow(2,d),y=0));d>=8;n[a+C]=b&255,C+=q,b/=256,d-=8);for(y=y<<d|b,E+=d;E>0;n[a+C]=y&255,C+=q,y/=256,E-=8);n[a+C-q]|=M*128}var pEt={}.toString,W0e=Array.isArray||function(n){return pEt.call(n)=="[object Array]"};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */var fEt=50;Bt.TYPED_ARRAY_SUPPORT=_u.TYPED_ARRAY_SUPPORT!==void 0?_u.TYPED_ARRAY_SUPPORT:!0;Y2();function Y2(){return Bt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function bl(n,t){if(Y2()<t)throw new RangeError("Invalid typed array length");return Bt.TYPED_ARRAY_SUPPORT?(n=new Uint8Array(t),n.__proto__=Bt.prototype):(n===null&&(n=new Bt(t)),n.length=t),n}function Bt(n,t,a){if(!Bt.TYPED_ARRAY_SUPPORT&&!(this instanceof Bt))return new Bt(n,t,a);if(typeof n=="number"){if(typeof t=="string")throw new Error("If encoding is specified then the first argument must be a string");return tB(this,n)}return G0e(this,n,t,a)}Bt.poolSize=8192;Bt._augment=function(n){return n.__proto__=Bt.prototype,n};function G0e(n,t,a,i){if(typeof t=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer?yEt(n,t,a,i):typeof t=="string"?mEt(n,t,a):gEt(n,t)}Bt.from=function(n,t,a){return G0e(null,n,t,a)};Bt.TYPED_ARRAY_SUPPORT&&(Bt.prototype.__proto__=Uint8Array.prototype,Bt.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&Bt[Symbol.species]);function K0e(n){if(typeof n!="number")throw new TypeError('"size" argument must be a number');if(n<0)throw new RangeError('"size" argument must not be negative')}function hEt(n,t,a,i){return K0e(t),t<=0?bl(n,t):a!==void 0?typeof i=="string"?bl(n,t).fill(a,i):bl(n,t).fill(a):bl(n,t)}Bt.alloc=function(n,t,a){return hEt(null,n,t,a)};function tB(n,t){if(K0e(t),n=bl(n,t<0?0:rB(t)|0),!Bt.TYPED_ARRAY_SUPPORT)for(var a=0;a<t;++a)n[a]=0;return n}Bt.allocUnsafe=function(n){return tB(null,n)};Bt.allocUnsafeSlow=function(n){return tB(null,n)};function mEt(n,t,a){if((typeof a!="string"||a==="")&&(a="utf8"),!Bt.isEncoding(a))throw new TypeError('"encoding" must be a valid string encoding');var i=H0e(t,a)|0;n=bl(n,i);var d=n.write(t,a);return d!==i&&(n=n.slice(0,d)),n}function Xk(n,t){var a=t.length<0?0:rB(t.length)|0;n=bl(n,a);for(var i=0;i<a;i+=1)n[i]=t[i]&255;return n}function yEt(n,t,a,i){if(t.byteLength,a<0||t.byteLength<a)throw new RangeError("'offset' is out of bounds");if(t.byteLength<a+(i||0))throw new RangeError("'length' is out of bounds");return a===void 0&&i===void 0?t=new Uint8Array(t):i===void 0?t=new Uint8Array(t,a):t=new Uint8Array(t,a,i),Bt.TYPED_ARRAY_SUPPORT?(n=t,n.__proto__=Bt.prototype):n=Xk(n,t),n}function gEt(n,t){if(Po(t)){var a=rB(t.length)|0;return n=bl(n,a),n.length===0||t.copy(n,0,0,a),n}if(t){if(typeof ArrayBuffer<"u"&&t.buffer instanceof ArrayBuffer||"length"in t)return typeof t.length!="number"||LEt(t.length)?bl(n,0):Xk(n,t);if(t.type==="Buffer"&&W0e(t.data))return Xk(n,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function rB(n){if(n>=Y2())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Y2().toString(16)+" bytes");return n|0}Bt.isBuffer=MEt;function Po(n){return!!(n!=null&&n._isBuffer)}Bt.compare=function(t,a){if(!Po(t)||!Po(a))throw new TypeError("Arguments must be Buffers");if(t===a)return 0;for(var i=t.length,d=a.length,p=0,y=Math.min(i,d);p<y;++p)if(t[p]!==a[p]){i=t[p],d=a[p];break}return i<d?-1:d<i?1:0};Bt.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Bt.concat=function(t,a){if(!W0e(t))throw new TypeError('"list" argument must be an Array of Buffers');if(t.length===0)return Bt.alloc(0);var i;if(a===void 0)for(a=0,i=0;i<t.length;++i)a+=t[i].length;var d=Bt.allocUnsafe(a),p=0;for(i=0;i<t.length;++i){var y=t[i];if(!Po(y))throw new TypeError('"list" argument must be an Array of Buffers');y.copy(d,p),p+=y.length}return d};function H0e(n,t){if(Po(n))return n.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(n)||n instanceof ArrayBuffer))return n.byteLength;typeof n!="string"&&(n=""+n);var a=n.length;if(a===0)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":case void 0:return Q2(n).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a*2;case"hex":return a>>>1;case"base64":return eve(n).length;default:if(i)return Q2(n).length;t=(""+t).toLowerCase(),i=!0}}Bt.byteLength=H0e;function vEt(n,t,a){var i=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((a===void 0||a>this.length)&&(a=this.length),a<=0)||(a>>>=0,t>>>=0,a<=t))return"";for(n||(n="utf8");;)switch(n){case"hex":return IEt(this,t,a);case"utf8":case"utf-8":return J0e(this,t,a);case"ascii":return PEt(this,t,a);case"latin1":case"binary":return AEt(this,t,a);case"base64":return TEt(this,t,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return CEt(this,t,a);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(n+"").toLowerCase(),i=!0}}Bt.prototype._isBuffer=!0;function Qc(n,t,a){var i=n[t];n[t]=n[a],n[a]=i}Bt.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var a=0;a<t;a+=2)Qc(this,a,a+1);return this};Bt.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var a=0;a<t;a+=4)Qc(this,a,a+3),Qc(this,a+1,a+2);return this};Bt.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var a=0;a<t;a+=8)Qc(this,a,a+7),Qc(this,a+1,a+6),Qc(this,a+2,a+5),Qc(this,a+3,a+4);return this};Bt.prototype.toString=function(){var t=this.length|0;return t===0?"":arguments.length===0?J0e(this,0,t):vEt.apply(this,arguments)};Bt.prototype.equals=function(t){if(!Po(t))throw new TypeError("Argument must be a Buffer");return this===t?!0:Bt.compare(this,t)===0};Bt.prototype.inspect=function(){var t="",a=fEt;return this.length>0&&(t=this.toString("hex",0,a).match(/.{2}/g).join(" "),this.length>a&&(t+=" ... ")),"<Buffer "+t+">"};Bt.prototype.compare=function(t,a,i,d,p){if(!Po(t))throw new TypeError("Argument must be a Buffer");if(a===void 0&&(a=0),i===void 0&&(i=t?t.length:0),d===void 0&&(d=0),p===void 0&&(p=this.length),a<0||i>t.length||d<0||p>this.length)throw new RangeError("out of range index");if(d>=p&&a>=i)return 0;if(d>=p)return-1;if(a>=i)return 1;if(a>>>=0,i>>>=0,d>>>=0,p>>>=0,this===t)return 0;for(var y=p-d,b=i-a,v=Math.min(y,b),E=this.slice(d,p),S=t.slice(a,i),A=0;A<v;++A)if(E[A]!==S[A]){y=E[A],b=S[A];break}return y<b?-1:b<y?1:0};function z0e(n,t,a,i,d){if(n.length===0)return-1;if(typeof a=="string"?(i=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,isNaN(a)&&(a=d?0:n.length-1),a<0&&(a=n.length+a),a>=n.length){if(d)return-1;a=n.length-1}else if(a<0)if(d)a=0;else return-1;if(typeof t=="string"&&(t=Bt.from(t,i)),Po(t))return t.length===0?-1:fme(n,t,a,i,d);if(typeof t=="number")return t=t&255,Bt.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?d?Uint8Array.prototype.indexOf.call(n,t,a):Uint8Array.prototype.lastIndexOf.call(n,t,a):fme(n,[t],a,i,d);throw new TypeError("val must be string, number or Buffer")}function fme(n,t,a,i,d){var p=1,y=n.length,b=t.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(n.length<2||t.length<2)return-1;p=2,y/=2,b/=2,a/=2}function v(C,q){return p===1?C[q]:C.readUInt16BE(q*p)}var E;if(d){var S=-1;for(E=a;E<y;E++)if(v(n,E)===v(t,S===-1?0:E-S)){if(S===-1&&(S=E),E-S+1===b)return S*p}else S!==-1&&(E-=E-S),S=-1}else for(a+b>y&&(a=y-b),E=a;E>=0;E--){for(var A=!0,_=0;_<b;_++)if(v(n,E+_)!==v(t,_)){A=!1;break}if(A)return E}return-1}Bt.prototype.includes=function(t,a,i){return this.indexOf(t,a,i)!==-1};Bt.prototype.indexOf=function(t,a,i){return z0e(this,t,a,i,!0)};Bt.prototype.lastIndexOf=function(t,a,i){return z0e(this,t,a,i,!1)};function bEt(n,t,a,i){a=Number(a)||0;var d=n.length-a;i?(i=Number(i),i>d&&(i=d)):i=d;var p=t.length;if(p%2!==0)throw new TypeError("Invalid hex string");i>p/2&&(i=p/2);for(var y=0;y<i;++y){var b=parseInt(t.substr(y*2,2),16);if(isNaN(b))return y;n[a+y]=b}return y}function xEt(n,t,a,i){return yx(Q2(t,n.length-a),n,a,i)}function X0e(n,t,a,i){return yx(kEt(t),n,a,i)}function REt(n,t,a,i){return X0e(n,t,a,i)}function EEt(n,t,a,i){return yx(eve(t),n,a,i)}function SEt(n,t,a,i){return yx(DEt(t,n.length-a),n,a,i)}Bt.prototype.write=function(t,a,i,d){if(a===void 0)d="utf8",i=this.length,a=0;else if(i===void 0&&typeof a=="string")d=a,i=this.length,a=0;else if(isFinite(a))a=a|0,isFinite(i)?(i=i|0,d===void 0&&(d="utf8")):(d=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var p=this.length-a;if((i===void 0||i>p)&&(i=p),t.length>0&&(i<0||a<0)||a>this.length)throw new RangeError("Attempt to write outside buffer bounds");d||(d="utf8");for(var y=!1;;)switch(d){case"hex":return bEt(this,t,a,i);case"utf8":case"utf-8":return xEt(this,t,a,i);case"ascii":return X0e(this,t,a,i);case"latin1":case"binary":return REt(this,t,a,i);case"base64":return EEt(this,t,a,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return SEt(this,t,a,i);default:if(y)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),y=!0}};Bt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function TEt(n,t,a){return t===0&&a===n.length?pme(n):pme(n.slice(t,a))}function J0e(n,t,a){a=Math.min(n.length,a);for(var i=[],d=t;d<a;){var p=n[d],y=null,b=p>239?4:p>223?3:p>191?2:1;if(d+b<=a){var v,E,S,A;switch(b){case 1:p<128&&(y=p);break;case 2:v=n[d+1],(v&192)===128&&(A=(p&31)<<6|v&63,A>127&&(y=A));break;case 3:v=n[d+1],E=n[d+2],(v&192)===128&&(E&192)===128&&(A=(p&15)<<12|(v&63)<<6|E&63,A>2047&&(A<55296||A>57343)&&(y=A));break;case 4:v=n[d+1],E=n[d+2],S=n[d+3],(v&192)===128&&(E&192)===128&&(S&192)===128&&(A=(p&15)<<18|(v&63)<<12|(E&63)<<6|S&63,A>65535&&A<1114112&&(y=A))}}y===null?(y=65533,b=1):y>65535&&(y-=65536,i.push(y>>>10&1023|55296),y=56320|y&1023),i.push(y),d+=b}return wEt(i)}var hme=4096;function wEt(n){var t=n.length;if(t<=hme)return String.fromCharCode.apply(String,n);for(var a="",i=0;i<t;)a+=String.fromCharCode.apply(String,n.slice(i,i+=hme));return a}function PEt(n,t,a){var i="";a=Math.min(n.length,a);for(var d=t;d<a;++d)i+=String.fromCharCode(n[d]&127);return i}function AEt(n,t,a){var i="";a=Math.min(n.length,a);for(var d=t;d<a;++d)i+=String.fromCharCode(n[d]);return i}function IEt(n,t,a){var i=n.length;(!t||t<0)&&(t=0),(!a||a<0||a>i)&&(a=i);for(var d="",p=t;p<a;++p)d+=NEt(n[p]);return d}function CEt(n,t,a){for(var i=n.slice(t,a),d="",p=0;p<i.length;p+=2)d+=String.fromCharCode(i[p]+i[p+1]*256);return d}Bt.prototype.slice=function(t,a){var i=this.length;t=~~t,a=a===void 0?i:~~a,t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),a<0?(a+=i,a<0&&(a=0)):a>i&&(a=i),a<t&&(a=t);var d;if(Bt.TYPED_ARRAY_SUPPORT)d=this.subarray(t,a),d.__proto__=Bt.prototype;else{var p=a-t;d=new Bt(p,void 0);for(var y=0;y<p;++y)d[y]=this[y+t]}return d};function Dn(n,t,a){if(n%1!==0||n<0)throw new RangeError("offset is not uint");if(n+t>a)throw new RangeError("Trying to access beyond buffer length")}Bt.prototype.readUIntLE=function(t,a,i){t=t|0,a=a|0,i||Dn(t,a,this.length);for(var d=this[t],p=1,y=0;++y<a&&(p*=256);)d+=this[t+y]*p;return d};Bt.prototype.readUIntBE=function(t,a,i){t=t|0,a=a|0,i||Dn(t,a,this.length);for(var d=this[t+--a],p=1;a>0&&(p*=256);)d+=this[t+--a]*p;return d};Bt.prototype.readUInt8=function(t,a){return a||Dn(t,1,this.length),this[t]};Bt.prototype.readUInt16LE=function(t,a){return a||Dn(t,2,this.length),this[t]|this[t+1]<<8};Bt.prototype.readUInt16BE=function(t,a){return a||Dn(t,2,this.length),this[t]<<8|this[t+1]};Bt.prototype.readUInt32LE=function(t,a){return a||Dn(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};Bt.prototype.readUInt32BE=function(t,a){return a||Dn(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};Bt.prototype.readIntLE=function(t,a,i){t=t|0,a=a|0,i||Dn(t,a,this.length);for(var d=this[t],p=1,y=0;++y<a&&(p*=256);)d+=this[t+y]*p;return p*=128,d>=p&&(d-=Math.pow(2,8*a)),d};Bt.prototype.readIntBE=function(t,a,i){t=t|0,a=a|0,i||Dn(t,a,this.length);for(var d=a,p=1,y=this[t+--d];d>0&&(p*=256);)y+=this[t+--d]*p;return p*=128,y>=p&&(y-=Math.pow(2,8*a)),y};Bt.prototype.readInt8=function(t,a){return a||Dn(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};Bt.prototype.readInt16LE=function(t,a){a||Dn(t,2,this.length);var i=this[t]|this[t+1]<<8;return i&32768?i|4294901760:i};Bt.prototype.readInt16BE=function(t,a){a||Dn(t,2,this.length);var i=this[t+1]|this[t]<<8;return i&32768?i|4294901760:i};Bt.prototype.readInt32LE=function(t,a){return a||Dn(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};Bt.prototype.readInt32BE=function(t,a){return a||Dn(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};Bt.prototype.readFloatLE=function(t,a){return a||Dn(t,4,this.length),fx(this,t,!0,23,4)};Bt.prototype.readFloatBE=function(t,a){return a||Dn(t,4,this.length),fx(this,t,!1,23,4)};Bt.prototype.readDoubleLE=function(t,a){return a||Dn(t,8,this.length),fx(this,t,!0,52,8)};Bt.prototype.readDoubleBE=function(t,a){return a||Dn(t,8,this.length),fx(this,t,!1,52,8)};function zs(n,t,a,i,d,p){if(!Po(n))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>d||t<p)throw new RangeError('"value" argument is out of bounds');if(a+i>n.length)throw new RangeError("Index out of range")}Bt.prototype.writeUIntLE=function(t,a,i,d){if(t=+t,a=a|0,i=i|0,!d){var p=Math.pow(2,8*i)-1;zs(this,t,a,i,p,0)}var y=1,b=0;for(this[a]=t&255;++b<i&&(y*=256);)this[a+b]=t/y&255;return a+i};Bt.prototype.writeUIntBE=function(t,a,i,d){if(t=+t,a=a|0,i=i|0,!d){var p=Math.pow(2,8*i)-1;zs(this,t,a,i,p,0)}var y=i-1,b=1;for(this[a+y]=t&255;--y>=0&&(b*=256);)this[a+y]=t/b&255;return a+i};Bt.prototype.writeUInt8=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,1,255,0),Bt.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[a]=t&255,a+1};function hx(n,t,a,i){t<0&&(t=65535+t+1);for(var d=0,p=Math.min(n.length-a,2);d<p;++d)n[a+d]=(t&255<<8*(i?d:1-d))>>>(i?d:1-d)*8}Bt.prototype.writeUInt16LE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,2,65535,0),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t&255,this[a+1]=t>>>8):hx(this,t,a,!0),a+2};Bt.prototype.writeUInt16BE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,2,65535,0),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t>>>8,this[a+1]=t&255):hx(this,t,a,!1),a+2};function mx(n,t,a,i){t<0&&(t=4294967295+t+1);for(var d=0,p=Math.min(n.length-a,4);d<p;++d)n[a+d]=t>>>(i?d:3-d)*8&255}Bt.prototype.writeUInt32LE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,4,4294967295,0),Bt.TYPED_ARRAY_SUPPORT?(this[a+3]=t>>>24,this[a+2]=t>>>16,this[a+1]=t>>>8,this[a]=t&255):mx(this,t,a,!0),a+4};Bt.prototype.writeUInt32BE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,4,4294967295,0),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t>>>24,this[a+1]=t>>>16,this[a+2]=t>>>8,this[a+3]=t&255):mx(this,t,a,!1),a+4};Bt.prototype.writeIntLE=function(t,a,i,d){if(t=+t,a=a|0,!d){var p=Math.pow(2,8*i-1);zs(this,t,a,i,p-1,-p)}var y=0,b=1,v=0;for(this[a]=t&255;++y<i&&(b*=256);)t<0&&v===0&&this[a+y-1]!==0&&(v=1),this[a+y]=(t/b>>0)-v&255;return a+i};Bt.prototype.writeIntBE=function(t,a,i,d){if(t=+t,a=a|0,!d){var p=Math.pow(2,8*i-1);zs(this,t,a,i,p-1,-p)}var y=i-1,b=1,v=0;for(this[a+y]=t&255;--y>=0&&(b*=256);)t<0&&v===0&&this[a+y+1]!==0&&(v=1),this[a+y]=(t/b>>0)-v&255;return a+i};Bt.prototype.writeInt8=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,1,127,-128),Bt.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[a]=t&255,a+1};Bt.prototype.writeInt16LE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,2,32767,-32768),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t&255,this[a+1]=t>>>8):hx(this,t,a,!0),a+2};Bt.prototype.writeInt16BE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,2,32767,-32768),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t>>>8,this[a+1]=t&255):hx(this,t,a,!1),a+2};Bt.prototype.writeInt32LE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,4,2147483647,-2147483648),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t&255,this[a+1]=t>>>8,this[a+2]=t>>>16,this[a+3]=t>>>24):mx(this,t,a,!0),a+4};Bt.prototype.writeInt32BE=function(t,a,i){return t=+t,a=a|0,i||zs(this,t,a,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),Bt.TYPED_ARRAY_SUPPORT?(this[a]=t>>>24,this[a+1]=t>>>16,this[a+2]=t>>>8,this[a+3]=t&255):mx(this,t,a,!1),a+4};function Y0e(n,t,a,i,d,p){if(a+i>n.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function Q0e(n,t,a,i,d){return d||Y0e(n,t,a,4),V0e(n,t,a,i,23,4),a+4}Bt.prototype.writeFloatLE=function(t,a,i){return Q0e(this,t,a,!0,i)};Bt.prototype.writeFloatBE=function(t,a,i){return Q0e(this,t,a,!1,i)};function Z0e(n,t,a,i,d){return d||Y0e(n,t,a,8),V0e(n,t,a,i,52,8),a+8}Bt.prototype.writeDoubleLE=function(t,a,i){return Z0e(this,t,a,!0,i)};Bt.prototype.writeDoubleBE=function(t,a,i){return Z0e(this,t,a,!1,i)};Bt.prototype.copy=function(t,a,i,d){if(i||(i=0),!d&&d!==0&&(d=this.length),a>=t.length&&(a=t.length),a||(a=0),d>0&&d<i&&(d=i),d===i||t.length===0||this.length===0)return 0;if(a<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(d<0)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),t.length-a<d-i&&(d=t.length-a+i);var p=d-i,y;if(this===t&&i<a&&a<d)for(y=p-1;y>=0;--y)t[y+a]=this[y+i];else if(p<1e3||!Bt.TYPED_ARRAY_SUPPORT)for(y=0;y<p;++y)t[y+a]=this[y+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+p),a);return p};Bt.prototype.fill=function(t,a,i,d){if(typeof t=="string"){if(typeof a=="string"?(d=a,a=0,i=this.length):typeof i=="string"&&(d=i,i=this.length),t.length===1){var p=t.charCodeAt(0);p<256&&(t=p)}if(d!==void 0&&typeof d!="string")throw new TypeError("encoding must be a string");if(typeof d=="string"&&!Bt.isEncoding(d))throw new TypeError("Unknown encoding: "+d)}else typeof t=="number"&&(t=t&255);if(a<0||this.length<a||this.length<i)throw new RangeError("Out of range index");if(i<=a)return this;a=a>>>0,i=i===void 0?this.length:i>>>0,t||(t=0);var y;if(typeof t=="number")for(y=a;y<i;++y)this[y]=t;else{var b=Po(t)?t:Q2(new Bt(t,d).toString()),v=b.length;for(y=0;y<i-a;++y)this[y+a]=b[y%v]}return this};var jEt=/[^+\/0-9A-Za-z-_]/g;function OEt(n){if(n=_Et(n).replace(jEt,""),n.length<2)return"";for(;n.length%4!==0;)n=n+"=";return n}function _Et(n){return n.trim?n.trim():n.replace(/^\s+|\s+$/g,"")}function NEt(n){return n<16?"0"+n.toString(16):n.toString(16)}function Q2(n,t){t=t||1/0;for(var a,i=n.length,d=null,p=[],y=0;y<i;++y){if(a=n.charCodeAt(y),a>55295&&a<57344){if(!d){if(a>56319){(t-=3)>-1&&p.push(239,191,189);continue}else if(y+1===i){(t-=3)>-1&&p.push(239,191,189);continue}d=a;continue}if(a<56320){(t-=3)>-1&&p.push(239,191,189),d=a;continue}a=(d-55296<<10|a-56320)+65536}else d&&(t-=3)>-1&&p.push(239,191,189);if(d=null,a<128){if((t-=1)<0)break;p.push(a)}else if(a<2048){if((t-=2)<0)break;p.push(a>>6|192,a&63|128)}else if(a<65536){if((t-=3)<0)break;p.push(a>>12|224,a>>6&63|128,a&63|128)}else if(a<1114112){if((t-=4)<0)break;p.push(a>>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else throw new Error("Invalid code point")}return p}function kEt(n){for(var t=[],a=0;a<n.length;++a)t.push(n.charCodeAt(a)&255);return t}function DEt(n,t){for(var a,i,d,p=[],y=0;y<n.length&&!((t-=2)<0);++y)a=n.charCodeAt(y),i=a>>8,d=a%256,p.push(d),p.push(i);return p}function eve(n){return uEt(OEt(n))}function yx(n,t,a,i){for(var d=0;d<i&&!(d+a>=t.length||d>=n.length);++d)t[d+a]=n[d];return d}function LEt(n){return n!==n}function MEt(n){return n!=null&&(!!n._isBuffer||tve(n)||BEt(n))}function tve(n){return!!n.constructor&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)}function BEt(n){return typeof n.readFloatLE=="function"&&typeof n.slice=="function"&&tve(n.slice(0,0))}var Z2;typeof Object.create=="function"?Z2=function(t,a){t.super_=a,t.prototype=Object.create(a.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:Z2=function(t,a){t.super_=a;var i=function(){};i.prototype=a.prototype,t.prototype=new i,t.prototype.constructor=t};var rve=Object.getOwnPropertyDescriptors||function(t){for(var a=Object.keys(t),i={},d=0;d<a.length;d++)i[a[d]]=Object.getOwnPropertyDescriptor(t,a[d]);return i},FEt=/%[sdj%]/g;function gx(n){if(!ku(n)){for(var t=[],a=0;a<arguments.length;a++)t.push(To(arguments[a]));return t.join(" ")}for(var a=1,i=arguments,d=i.length,p=String(n).replace(FEt,function(b){if(b==="%%")return"%";if(a>=d)return b;switch(b){case"%s":return String(i[a++]);case"%d":return Number(i[a++]);case"%j":try{return JSON.stringify(i[a++])}catch{return"[Circular]"}default:return b}}),y=i[a];a<d;y=i[++a])xl(y)||!_l(y)?p+=" "+y:p+=" "+To(y);return p}function aB(n,t){if(Eo(_u.process))return function(){return aB(n,t).apply(this,arguments)};if(Ks.noDeprecation===!0)return n;var a=!1;function i(){if(!a){if(Ks.throwDeprecation)throw new Error(t);Ks.traceDeprecation?console.trace(t):console.error(t),a=!0}return n.apply(this,arguments)}return i}var Hb={},ek;function ave(n){if(Eo(ek)&&(ek=Ks.env.NODE_DEBUG||""),n=n.toUpperCase(),!Hb[n])if(new RegExp("\\b"+n+"\\b","i").test(ek)){var t=0;Hb[n]=function(){var a=gx.apply(null,arguments);console.error("%s %d: %s",n,t,a)}}else Hb[n]=function(){};return Hb[n]}function To(n,t){var a={seen:[],stylize:qEt};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),vx(t)?a.showHidden=t:t&&lB(a,t),Eo(a.showHidden)&&(a.showHidden=!1),Eo(a.depth)&&(a.depth=2),Eo(a.colors)&&(a.colors=!1),Eo(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=$Et),e6(a,n,a.depth)}To.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};To.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function $Et(n,t){var a=To.styles[t];return a?"\x1B["+To.colors[a][0]+"m"+n+"\x1B["+To.colors[a][1]+"m":n}function qEt(n,t){return n}function UEt(n){var t={};return n.forEach(function(a,i){t[a]=!0}),t}function e6(n,t,a){if(n.customInspect&&t&&dy(t.inspect)&&t.inspect!==To&&!(t.constructor&&t.constructor.prototype===t)){var i=t.inspect(a,n);return ku(i)||(i=e6(n,i,a)),i}var d=VEt(n,t);if(d)return d;var p=Object.keys(t),y=UEt(p);if(n.showHidden&&(p=Object.getOwnPropertyNames(t)),cy(t)&&(p.indexOf("message")>=0||p.indexOf("description")>=0))return tk(t);if(p.length===0){if(dy(t)){var b=t.name?": "+t.name:"";return n.stylize("[Function"+b+"]","special")}if(uy(t))return n.stylize(RegExp.prototype.toString.call(t),"regexp");if(t6(t))return n.stylize(Date.prototype.toString.call(t),"date");if(cy(t))return tk(t)}var v="",E=!1,S=["{","}"];if(nB(t)&&(E=!0,S=["[","]"]),dy(t)){var A=t.name?": "+t.name:"";v=" [Function"+A+"]"}if(uy(t)&&(v=" "+RegExp.prototype.toString.call(t)),t6(t)&&(v=" "+Date.prototype.toUTCString.call(t)),cy(t)&&(v=" "+tk(t)),p.length===0&&(!E||t.length==0))return S[0]+v+S[1];if(a<0)return uy(t)?n.stylize(RegExp.prototype.toString.call(t),"regexp"):n.stylize("[Object]","special");n.seen.push(t);var _;return E?_=WEt(n,t,a,y,p):_=p.map(function(C){return Jk(n,t,a,y,C,E)}),n.seen.pop(),GEt(_,v,S)}function VEt(n,t){if(Eo(t))return n.stylize("undefined","undefined");if(ku(t)){var a="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(a,"string")}if(iB(t))return n.stylize(""+t,"number");if(vx(t))return n.stylize(""+t,"boolean");if(xl(t))return n.stylize("null","null")}function tk(n){return"["+Error.prototype.toString.call(n)+"]"}function WEt(n,t,a,i,d){for(var p=[],y=0,b=t.length;y<b;++y)lve(t,String(y))?p.push(Jk(n,t,a,i,String(y),!0)):p.push("");return d.forEach(function(v){v.match(/^\d+$/)||p.push(Jk(n,t,a,i,v,!0))}),p}function Jk(n,t,a,i,d,p){var y,b,v;if(v=Object.getOwnPropertyDescriptor(t,d)||{value:t[d]},v.get?v.set?b=n.stylize("[Getter/Setter]","special"):b=n.stylize("[Getter]","special"):v.set&&(b=n.stylize("[Setter]","special")),lve(i,d)||(y="["+d+"]"),b||(n.seen.indexOf(v.value)<0?(xl(a)?b=e6(n,v.value,null):b=e6(n,v.value,a-1),b.indexOf(` +`)>-1&&(p?b=b.split(` +`).map(function(E){return" "+E}).join(` +`).substr(2):b=` +`+b.split(` +`).map(function(E){return" "+E}).join(` +`))):b=n.stylize("[Circular]","special")),Eo(y)){if(p&&d.match(/^\d+$/))return b;y=JSON.stringify(""+d),y.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(y=y.substr(1,y.length-2),y=n.stylize(y,"name")):(y=y.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),y=n.stylize(y,"string"))}return y+": "+b}function GEt(n,t,a){var i=n.reduce(function(d,p){return p.indexOf(` +`)>=0,d+p.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?a[0]+(t===""?"":t+` + `)+" "+n.join(`, + `)+" "+a[1]:a[0]+t+" "+n.join(", ")+" "+a[1]}function nB(n){return Array.isArray(n)}function vx(n){return typeof n=="boolean"}function xl(n){return n===null}function sB(n){return n==null}function iB(n){return typeof n=="number"}function ku(n){return typeof n=="string"}function nve(n){return typeof n=="symbol"}function Eo(n){return n===void 0}function uy(n){return _l(n)&&oB(n)==="[object RegExp]"}function _l(n){return typeof n=="object"&&n!==null}function t6(n){return _l(n)&&oB(n)==="[object Date]"}function cy(n){return _l(n)&&(oB(n)==="[object Error]"||n instanceof Error)}function dy(n){return typeof n=="function"}function sve(n){return n===null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||typeof n=="symbol"||typeof n>"u"}function ive(n){return Bt.isBuffer(n)}function oB(n){return Object.prototype.toString.call(n)}function rk(n){return n<10?"0"+n.toString(10):n.toString(10)}var KEt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function HEt(){var n=new Date,t=[rk(n.getHours()),rk(n.getMinutes()),rk(n.getSeconds())].join(":");return[n.getDate(),KEt[n.getMonth()],t].join(" ")}function ove(){console.log("%s - %s",HEt(),gx.apply(null,arguments))}function lB(n,t){if(!t||!_l(t))return n;for(var a=Object.keys(t),i=a.length;i--;)n[a[i]]=t[a[i]];return n}function lve(n,t){return Object.prototype.hasOwnProperty.call(n,t)}var Kc=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function uB(n){if(typeof n!="function")throw new TypeError('The "original" argument must be of type Function');if(Kc&&n[Kc]){var t=n[Kc];if(typeof t!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,Kc,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var a,i,d=new Promise(function(b,v){a=b,i=v}),p=[],y=0;y<arguments.length;y++)p.push(arguments[y]);p.push(function(b,v){b?i(b):a(v)});try{n.apply(this,p)}catch(b){i(b)}return d}return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),Kc&&Object.defineProperty(t,Kc,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,rve(n))}uB.custom=Kc;function zEt(n,t){if(!n){var a=new Error("Promise was rejected with a falsy value");a.reason=n,n=a}return t(n)}function uve(n){if(typeof n!="function")throw new TypeError('The "original" argument must be of type Function');function t(){for(var a=[],i=0;i<arguments.length;i++)a.push(arguments[i]);var d=a.pop();if(typeof d!="function")throw new TypeError("The last argument must be of type Function");var p=this,y=function(){return d.apply(p,arguments)};n.apply(this,a).then(function(b){Ks.nextTick(y.bind(null,null,b))},function(b){Ks.nextTick(zEt.bind(null,b,y))})}return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),Object.defineProperties(t,rve(n)),t}var XEt={inherits:Z2,_extend:lB,log:ove,isBuffer:ive,isPrimitive:sve,isFunction:dy,isError:cy,isDate:t6,isObject:_l,isRegExp:uy,isUndefined:Eo,isSymbol:nve,isString:ku,isNumber:iB,isNullOrUndefined:sB,isNull:xl,isBoolean:vx,isArray:nB,inspect:To,deprecate:aB,format:gx,debuglog:ave,promisify:uB,callbackify:uve},JEt=Object.freeze({__proto__:null,_extend:lB,callbackify:uve,debuglog:ave,default:XEt,deprecate:aB,format:gx,inherits:Z2,inspect:To,isArray:nB,isBoolean:vx,isBuffer:ive,isDate:t6,isError:cy,isFunction:dy,isNull:xl,isNullOrUndefined:sB,isNumber:iB,isObject:_l,isPrimitive:sve,isRegExp:uy,isString:ku,isSymbol:nve,isUndefined:Eo,log:ove,promisify:uB});function YEt(n,t){return Object.prototype.hasOwnProperty.call(n,t)}var cve=Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"};function ak(n){switch(typeof n){case"string":return n;case"boolean":return n?"true":"false";case"number":return isFinite(n)?n:"";default:return""}}function QEt(n,t,a,i){return t=t||"&",a=a||"=",n===null&&(n=void 0),typeof n=="object"?mme(ZEt(n),function(d){var p=encodeURIComponent(ak(d))+a;return cve(n[d])?mme(n[d],function(y){return p+encodeURIComponent(ak(y))}).join(t):p+encodeURIComponent(ak(n[d]))}).join(t):""}function mme(n,t){if(n.map)return n.map(t);for(var a=[],i=0;i<n.length;i++)a.push(t(n[i],i));return a}var ZEt=Object.keys||function(n){var t=[];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&t.push(a);return t};function yme(n,t,a,i){t=t||"&",a=a||"=";var d={};if(typeof n!="string"||n.length===0)return d;var p=/\+/g;n=n.split(t);var y=1e3,b=n.length;b>y&&(b=y);for(var v=0;v<b;++v){var E=n[v].replace(p,"%20"),S=E.indexOf(a),A,_,C,q;S>=0?(A=E.substr(0,S),_=E.substr(S+1)):(A=E,_=""),C=decodeURIComponent(A),q=decodeURIComponent(_),YEt(d,C)?cve(d[C])?d[C].push(q):d[C]=[d[C],q]:d[C]=q}return d}const dve=_u.URL,pve=_u.URLSearchParams;var e9t={parse:Zy,resolve:yve,resolveObject:gve,fileURLToPath:hve,format:mve,Url:oi,URL:dve,URLSearchParams:pve};function oi(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var t9t=/^([a-z0-9.+-]+:)/i,r9t=/:[0-9]*$/,a9t=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,n9t=["<",">",'"',"`"," ","\r",` +`," "],s9t=["{","}","|","\\","^","`"].concat(n9t),Yk=["'"].concat(s9t),gme=["%","/","?",";","#"].concat(Yk),vme=["/","?","#"],i9t=255,bme=/^[+a-z0-9A-Z_-]{0,63}$/,o9t=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,l9t={javascript:!0,"javascript:":!0},Qk={javascript:!0,"javascript:":!0},$p={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Zy(n,t,a){if(n&&_l(n)&&n instanceof oi)return n;var i=new oi;return i.parse(n,t,a),i}oi.prototype.parse=function(n,t,a){return fve(this,n,t,a)};function fve(n,t,a,i){if(!ku(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var d=t.indexOf("?"),p=d!==-1&&d<t.indexOf("#")?"?":"#",y=t.split(p),b=/\\/g;y[0]=y[0].replace(b,"/"),t=y.join(p);var v=t;if(v=v.trim(),!i&&t.split("#").length===1){var E=a9t.exec(v);if(E)return n.path=v,n.href=v,n.pathname=E[1],E[2]?(n.search=E[2],a?n.query=yme(n.search.substr(1)):n.query=n.search.substr(1)):a&&(n.search="",n.query={}),n}var S=t9t.exec(v);if(S){S=S[0];var A=S.toLowerCase();n.protocol=A,v=v.substr(S.length)}if(i||S||v.match(/^\/\/[^@\/]+@[^@\/]+/)){var _=v.substr(0,2)==="//";_&&!(S&&Qk[S])&&(v=v.substr(2),n.slashes=!0)}var C,q,M,W;if(!Qk[S]&&(_||S&&!$p[S])){var z=-1;for(C=0;C<vme.length;C++)q=v.indexOf(vme[C]),q!==-1&&(z===-1||q<z)&&(z=q);var Y,Z;for(z===-1?Z=v.lastIndexOf("@"):Z=v.lastIndexOf("@",z),Z!==-1&&(Y=v.slice(0,Z),v=v.slice(Z+1),n.auth=decodeURIComponent(Y)),z=-1,C=0;C<gme.length;C++)q=v.indexOf(gme[C]),q!==-1&&(z===-1||q<z)&&(z=q);z===-1&&(z=v.length),n.host=v.slice(0,z),v=v.slice(z),vve(n),n.hostname=n.hostname||"";var ce=n.hostname[0]==="["&&n.hostname[n.hostname.length-1]==="]";if(!ce){var ge=n.hostname.split(/\./);for(C=0,M=ge.length;C<M;C++){var Ge=ge[C];if(Ge&&!Ge.match(bme)){for(var Je="",re=0,Ae=Ge.length;re<Ae;re++)Ge.charCodeAt(re)>127?Je+="x":Je+=Ge[re];if(!Je.match(bme)){var je=ge.slice(0,C),se=ge.slice(C+1),fe=Ge.match(o9t);fe&&(je.push(fe[1]),se.unshift(fe[2])),se.length&&(v="/"+se.join(".")+v),n.hostname=je.join(".");break}}}}n.hostname.length>i9t?n.hostname="":n.hostname=n.hostname.toLowerCase(),ce||(n.hostname=oEt(n.hostname)),W=n.port?":"+n.port:"";var kt=n.hostname||"";n.host=kt+W,n.href+=n.host,ce&&(n.hostname=n.hostname.substr(1,n.hostname.length-2),v[0]!=="/"&&(v="/"+v))}if(!l9t[A])for(C=0,M=Yk.length;C<M;C++){var Qt=Yk[C];if(v.indexOf(Qt)!==-1){var mt=encodeURIComponent(Qt);mt===Qt&&(mt=escape(Qt)),v=v.split(Qt).join(mt)}}var Tt=v.indexOf("#");Tt!==-1&&(n.hash=v.substr(Tt),v=v.slice(0,Tt));var ne=v.indexOf("?");if(ne!==-1?(n.search=v.substr(ne),n.query=v.substr(ne+1),a&&(n.query=yme(n.query)),v=v.slice(0,ne)):a&&(n.search="",n.query={}),v&&(n.pathname=v),$p[A]&&n.hostname&&!n.pathname&&(n.pathname="/"),n.pathname||n.search){W=n.pathname||"";var Zt=n.search||"";n.path=W+Zt}return n.href=cB(n),n}function hve(n){if(typeof n=="string")n=new oi().parse(n);else if(!(n instanceof oi))throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type '+typeof n+String(n));if(n.protocol!=="file:")throw new TypeError("The URL must be of scheme file");return u9t(n)}function u9t(n){const t=n.pathname;for(let a=0;a<t.length;a++)if(t[a]==="%"){const i=t.codePointAt(a+2)|32;if(t[a+1]==="2"&&i===102)throw new TypeError("must not include encoded / characters")}return decodeURIComponent(t)}function mve(n){return ku(n)&&(n=fve({},n)),cB(n)}function cB(n){var t=n.auth||"";t&&(t=encodeURIComponent(t),t=t.replace(/%3A/i,":"),t+="@");var a=n.protocol||"",i=n.pathname||"",d=n.hash||"",p=!1,y="";n.host?p=t+n.host:n.hostname&&(p=t+(n.hostname.indexOf(":")===-1?n.hostname:"["+this.hostname+"]"),n.port&&(p+=":"+n.port)),n.query&&_l(n.query)&&Object.keys(n.query).length&&(y=QEt(n.query));var b=n.search||y&&"?"+y||"";return a&&a.substr(-1)!==":"&&(a+=":"),n.slashes||(!a||$p[a])&&p!==!1?(p="//"+(p||""),i&&i.charAt(0)!=="/"&&(i="/"+i)):p||(p=""),d&&d.charAt(0)!=="#"&&(d="#"+d),b&&b.charAt(0)!=="?"&&(b="?"+b),i=i.replace(/[?#]/g,function(v){return encodeURIComponent(v)}),b=b.replace("#","%23"),a+p+i+b+d}oi.prototype.format=function(){return cB(this)};function yve(n,t){return Zy(n,!1,!0).resolve(t)}oi.prototype.resolve=function(n){return this.resolveObject(Zy(n,!1,!0)).format()};function gve(n,t){return n?Zy(n,!1,!0).resolveObject(t):t}oi.prototype.resolveObject=function(n){if(ku(n)){var t=new oi;t.parse(n,!1,!0),n=t}for(var a=new oi,i=Object.keys(this),d=0;d<i.length;d++){var p=i[d];a[p]=this[p]}if(a.hash=n.hash,n.href==="")return a.href=a.format(),a;if(n.slashes&&!n.protocol){for(var y=Object.keys(n),b=0;b<y.length;b++){var v=y[b];v!=="protocol"&&(a[v]=n[v])}return $p[a.protocol]&&a.hostname&&!a.pathname&&(a.path=a.pathname="/"),a.href=a.format(),a}var E;if(n.protocol&&n.protocol!==a.protocol){if(!$p[n.protocol]){for(var S=Object.keys(n),A=0;A<S.length;A++){var _=S[A];a[_]=n[_]}return a.href=a.format(),a}if(a.protocol=n.protocol,!n.host&&!Qk[n.protocol]){for(E=(n.pathname||"").split("/");E.length&&!(n.host=E.shift()););n.host||(n.host=""),n.hostname||(n.hostname=""),E[0]!==""&&E.unshift(""),E.length<2&&E.unshift(""),a.pathname=E.join("/")}else a.pathname=n.pathname;if(a.search=n.search,a.query=n.query,a.host=n.host||"",a.auth=n.auth,a.hostname=n.hostname||n.host,a.port=n.port,a.pathname||a.search){var C=a.pathname||"",q=a.search||"";a.path=C+q}return a.slashes=a.slashes||n.slashes,a.href=a.format(),a}var M=a.pathname&&a.pathname.charAt(0)==="/",W=n.host||n.pathname&&n.pathname.charAt(0)==="/",z=W||M||a.host&&n.pathname,Y=z,Z=a.pathname&&a.pathname.split("/")||[],ce=a.protocol&&!$p[a.protocol];E=n.pathname&&n.pathname.split("/")||[],ce&&(a.hostname="",a.port=null,a.host&&(Z[0]===""?Z[0]=a.host:Z.unshift(a.host)),a.host="",n.protocol&&(n.hostname=null,n.port=null,n.host&&(E[0]===""?E[0]=n.host:E.unshift(n.host)),n.host=null),z=z&&(E[0]===""||Z[0]===""));var ge;if(W)a.host=n.host||n.host===""?n.host:a.host,a.hostname=n.hostname||n.hostname===""?n.hostname:a.hostname,a.search=n.search,a.query=n.query,Z=E;else if(E.length)Z||(Z=[]),Z.pop(),Z=Z.concat(E),a.search=n.search,a.query=n.query;else if(!sB(n.search))return ce&&(a.hostname=a.host=Z.shift(),ge=a.host&&a.host.indexOf("@")>0?a.host.split("@"):!1,ge&&(a.auth=ge.shift(),a.host=a.hostname=ge.shift())),a.search=n.search,a.query=n.query,(!xl(a.pathname)||!xl(a.search))&&(a.path=(a.pathname?a.pathname:"")+(a.search?a.search:"")),a.href=a.format(),a;if(!Z.length)return a.pathname=null,a.search?a.path="/"+a.search:a.path=null,a.href=a.format(),a;for(var Ge=Z.slice(-1)[0],Je=(a.host||n.host||Z.length>1)&&(Ge==="."||Ge==="..")||Ge==="",re=0,Ae=Z.length;Ae>=0;Ae--)Ge=Z[Ae],Ge==="."?Z.splice(Ae,1):Ge===".."?(Z.splice(Ae,1),re++):re&&(Z.splice(Ae,1),re--);if(!z&&!Y)for(;re--;re)Z.unshift("..");z&&Z[0]!==""&&(!Z[0]||Z[0].charAt(0)!=="/")&&Z.unshift(""),Je&&Z.join("/").substr(-1)!=="/"&&Z.push("");var je=Z[0]===""||Z[0]&&Z[0].charAt(0)==="/";return ce&&(a.hostname=a.host=je?"":Z.length?Z.shift():"",ge=a.host&&a.host.indexOf("@")>0?a.host.split("@"):!1,ge&&(a.auth=ge.shift(),a.host=a.hostname=ge.shift())),z=z||a.host&&Z.length,z&&!je&&Z.unshift(""),Z.length?a.pathname=Z.join("/"):(a.pathname=null,a.path=null),(!xl(a.pathname)||!xl(a.search))&&(a.path=(a.pathname?a.pathname:"")+(a.search?a.search:"")),a.auth=n.auth||a.auth,a.slashes=a.slashes||n.slashes,a.href=a.format(),a};oi.prototype.parseHost=function(){return vve(this)};function vve(n){var t=n.host,a=r9t.exec(t);a&&(a=a[0],a!==":"&&(n.port=a.substr(1)),t=t.substr(0,t.length-a.length)),t&&(n.hostname=t)}var c9t=Object.freeze({__proto__:null,URL:dve,URLSearchParams:pve,Url:oi,default:e9t,fileURLToPath:hve,format:mve,parse:Zy,resolve:yve,resolveObject:gve});const d9t=Symbol("ssrInterpolate"),p9t=Symbol("ssrRenderVNode"),f9t=Symbol("ssrRenderComponent"),h9t=Symbol("ssrRenderSlot"),m9t=Symbol("ssrRenderSlotInner"),y9t=Symbol("ssrRenderClass"),g9t=Symbol("ssrRenderStyle"),v9t=Symbol("ssrRenderAttrs"),b9t=Symbol("ssrRenderAttr"),x9t=Symbol("ssrRenderDynamicAttr"),R9t=Symbol("ssrRenderList"),E9t=Symbol("ssrIncludeBooleanAttr"),S9t=Symbol("ssrLooseEqual"),T9t=Symbol("ssrLooseContain"),w9t=Symbol("ssrRenderDynamicModel"),P9t=Symbol("ssrGetDynamicModelProps"),A9t=Symbol("ssrRenderTeleport"),I9t=Symbol("ssrRenderSuspense"),C9t=Symbol("ssrGetDirectiveProps"),j9t={[d9t]:"ssrInterpolate",[p9t]:"ssrRenderVNode",[f9t]:"ssrRenderComponent",[h9t]:"ssrRenderSlot",[m9t]:"ssrRenderSlotInner",[y9t]:"ssrRenderClass",[g9t]:"ssrRenderStyle",[v9t]:"ssrRenderAttrs",[b9t]:"ssrRenderAttr",[x9t]:"ssrRenderDynamicAttr",[R9t]:"ssrRenderList",[E9t]:"ssrIncludeBooleanAttr",[S9t]:"ssrLooseEqual",[T9t]:"ssrLooseContain",[w9t]:"ssrRenderDynamicModel",[P9t]:"ssrGetDynamicModelProps",[A9t]:"ssrRenderTeleport",[I9t]:"ssrRenderSuspense",[C9t]:"ssrGetDirectiveProps"};XL(j9t);var O9t=Object.defineProperty,xme=Object.getOwnPropertySymbols,_9t=Object.prototype.hasOwnProperty,N9t=Object.prototype.propertyIsEnumerable,Rme=(n,t,a)=>t in n?O9t(n,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[t]=a,Eme=(n,t)=>{for(var a in t||(t={}))_9t.call(t,a)&&Rme(n,a,t[a]);if(xme)for(var a of xme(t))N9t.call(t,a)&&Rme(n,a,t[a]);return n};const[k9t,D9t]=DM(!0);[...k9t,...KM];Eme(Eme({},D9t),HM);function L9t(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var M9t={},B9t=Object.freeze({__proto__:null,default:M9t}),F9t=Jy(B9t),dB=Jy(H8t),$9t=Jy(JEt),pB={exports:{}};function bve(){return!1}function xve(){throw new Error("tty.ReadStream is not implemented")}function Rve(){throw new Error("tty.ReadStream is not implemented")}var q9t={isatty:bve,ReadStream:xve,WriteStream:Rve},U9t=Object.freeze({__proto__:null,ReadStream:xve,WriteStream:Rve,default:q9t,isatty:bve}),V9t=Jy(U9t);let Sme=Ks.argv||[],zb={},W9t=!("NO_COLOR"in zb||Sme.includes("--no-color"))&&("FORCE_COLOR"in zb||Sme.includes("--color")||!1||L9t!=null&&V9t.isatty(1)&&zb.TERM!=="dumb"||"CI"in zb),G9t=(n,t,a=n)=>i=>{let d=""+i,p=d.indexOf(t,n.length);return~p?n+K9t(d,t,a,p)+t:n+d+t},K9t=(n,t,a,i)=>{let d="",p=0;do d+=n.substring(p,i)+a,p=i+t.length,i=n.indexOf(t,p);while(~i);return d+n.substring(p)},Eve=(n=W9t)=>{let t=n?G9t:()=>String;return{isColorSupported:n,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m")}};pB.exports=Eve();pB.exports.createColors=Eve;var Sve=pB.exports;const nk=39,Tme=34,Xb=92,wme=47,Jb=10,Xm=32,Yb=12,Qb=9,Zb=13,H9t=91,z9t=93,X9t=40,J9t=41,Y9t=123,Q9t=125,Z9t=59,e5t=42,t5t=58,r5t=64,e2=/[\t\n\f\r "#'()/;[\\\]{}]/g,t2=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,a5t=/.[\r\n"'(/\\]/,Pme=/[\da-f]/i;var Tve=function(t,a={}){let i=t.css.valueOf(),d=a.ignoreErrors,p,y,b,v,E,S,A,_,C,q,M=i.length,W=0,z=[],Y=[];function Z(){return W}function ce(re){throw t.error("Unclosed "+re,W)}function ge(){return Y.length===0&&W>=M}function Ge(re){if(Y.length)return Y.pop();if(W>=M)return;let Ae=re?re.ignoreUnclosed:!1;switch(p=i.charCodeAt(W),p){case Jb:case Xm:case Qb:case Zb:case Yb:{v=W;do v+=1,p=i.charCodeAt(v);while(p===Xm||p===Jb||p===Qb||p===Zb||p===Yb);S=["space",i.slice(W,v)],W=v-1;break}case H9t:case z9t:case Y9t:case Q9t:case t5t:case Z9t:case J9t:{let je=String.fromCharCode(p);S=[je,je,W];break}case X9t:{if(q=z.length?z.pop()[1]:"",C=i.charCodeAt(W+1),q==="url"&&C!==nk&&C!==Tme&&C!==Xm&&C!==Jb&&C!==Qb&&C!==Yb&&C!==Zb){v=W;do{if(A=!1,v=i.indexOf(")",v+1),v===-1)if(d||Ae){v=W;break}else ce("bracket");for(_=v;i.charCodeAt(_-1)===Xb;)_-=1,A=!A}while(A);S=["brackets",i.slice(W,v+1),W,v],W=v}else v=i.indexOf(")",W+1),y=i.slice(W,v+1),v===-1||a5t.test(y)?S=["(","(",W]:(S=["brackets",y,W,v],W=v);break}case nk:case Tme:{E=p===nk?"'":'"',v=W;do{if(A=!1,v=i.indexOf(E,v+1),v===-1)if(d||Ae){v=W+1;break}else ce("string");for(_=v;i.charCodeAt(_-1)===Xb;)_-=1,A=!A}while(A);S=["string",i.slice(W,v+1),W,v],W=v;break}case r5t:{e2.lastIndex=W+1,e2.test(i),e2.lastIndex===0?v=i.length-1:v=e2.lastIndex-2,S=["at-word",i.slice(W,v+1),W,v],W=v;break}case Xb:{for(v=W,b=!0;i.charCodeAt(v+1)===Xb;)v+=1,b=!b;if(p=i.charCodeAt(v+1),b&&p!==wme&&p!==Xm&&p!==Jb&&p!==Qb&&p!==Zb&&p!==Yb&&(v+=1,Pme.test(i.charAt(v)))){for(;Pme.test(i.charAt(v+1));)v+=1;i.charCodeAt(v+1)===Xm&&(v+=1)}S=["word",i.slice(W,v+1),W,v],W=v;break}default:{p===wme&&i.charCodeAt(W+1)===e5t?(v=i.indexOf("*/",W+2)+1,v===0&&(d||Ae?v=i.length:ce("comment")),S=["comment",i.slice(W,v+1),W,v],W=v):(t2.lastIndex=W+1,t2.test(i),t2.lastIndex===0?v=i.length-1:v=t2.lastIndex-2,S=["word",i.slice(W,v+1),W,v],z.push(S),W=v);break}}return W++,S}function Je(re){Y.push(re)}return{back:Je,endOfFile:ge,nextToken:Ge,position:Z}};let vs=Sve,n5t=Tve,wve;function s5t(n){wve=n}const i5t={";":vs.yellow,":":vs.yellow,"(":vs.cyan,")":vs.cyan,"[":vs.yellow,"]":vs.yellow,"{":vs.yellow,"}":vs.yellow,"at-word":vs.cyan,brackets:vs.cyan,call:vs.cyan,class:vs.yellow,comment:vs.gray,hash:vs.magenta,string:vs.green};function o5t([n,t],a){if(n==="word"){if(t[0]===".")return"class";if(t[0]==="#")return"hash"}if(!a.endOfFile()){let i=a.nextToken();if(a.back(i),i[0]==="brackets"||i[0]==="(")return"call"}return n}function Pve(n){let t=n5t(new wve(n),{ignoreErrors:!0}),a="";for(;!t.endOfFile();){let i=t.nextToken(),d=i5t[o5t(i,t)];d?a+=i[1].split(/\r?\n/).map(p=>d(p)).join(` +`):a+=i[1]}return a}Pve.registerInput=s5t;var Ave=Pve;let Ame=Sve,Ime=Ave,Zk=class Ive extends Error{constructor(t,a,i,d,p,y){super(t),this.name="CssSyntaxError",this.reason=t,p&&(this.file=p),d&&(this.source=d),y&&(this.plugin=y),typeof a<"u"&&typeof i<"u"&&(typeof a=="number"?(this.line=a,this.column=i):(this.line=a.line,this.column=a.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Ive)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let a=this.source;t==null&&(t=Ame.isColorSupported);let i=S=>S,d=S=>S,p=S=>S;if(t){let{bold:S,gray:A,red:_}=Ame.createColors(!0);d=C=>S(_(C)),i=C=>A(C),Ime&&(p=C=>Ime(C))}let y=a.split(/\r?\n/),b=Math.max(this.line-3,0),v=Math.min(this.line+2,y.length),E=String(v).length;return y.slice(b,v).map((S,A)=>{let _=b+1+A,C=" "+(" "+_).slice(-E)+" | ";if(_===this.line){if(S.length>160){let M=20,W=Math.max(0,this.column-M),z=Math.max(this.column+M,this.endColumn+M),Y=S.slice(W,z),Z=i(C.replace(/\d/g," "))+S.slice(0,Math.min(this.column-1,M-1)).replace(/[^\t]/g," ");return d(">")+i(C)+p(Y)+` + `+Z+d("^")}let q=i(C.replace(/\d/g," "))+S.slice(0,this.column-1).replace(/[^\t]/g," ");return d(">")+i(C)+p(S)+` + `+q+d("^")}return" "+i(C)+p(S)}).join(` +`)}toString(){let t=this.showSourceCode();return t&&(t=` + +`+t+` +`),this.name+": "+this.message+t}};var fB=Zk;Zk.default=Zk;const Cme={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function l5t(n){return n[0].toUpperCase()+n.slice(1)}let eD=class{constructor(t){this.builder=t}atrule(t,a){let i="@"+t.name,d=t.params?this.rawValue(t,"params"):"";if(typeof t.raws.afterName<"u"?i+=t.raws.afterName:d&&(i+=" "),t.nodes)this.block(t,i+d);else{let p=(t.raws.between||"")+(a?";":"");this.builder(i+d+p,t)}}beforeAfter(t,a){let i;t.type==="decl"?i=this.raw(t,null,"beforeDecl"):t.type==="comment"?i=this.raw(t,null,"beforeComment"):a==="before"?i=this.raw(t,null,"beforeRule"):i=this.raw(t,null,"beforeClose");let d=t.parent,p=0;for(;d&&d.type!=="root";)p+=1,d=d.parent;if(i.includes(` +`)){let y=this.raw(t,null,"indent");if(y.length)for(let b=0;b<p;b++)i+=y}return i}block(t,a){let i=this.raw(t,"between","beforeOpen");this.builder(a+i+"{",t,"start");let d;t.nodes&&t.nodes.length?(this.body(t),d=this.raw(t,"after")):d=this.raw(t,"after","emptyBody"),d&&this.builder(d),this.builder("}",t,"end")}body(t){let a=t.nodes.length-1;for(;a>0&&t.nodes[a].type==="comment";)a-=1;let i=this.raw(t,"semicolon");for(let d=0;d<t.nodes.length;d++){let p=t.nodes[d],y=this.raw(p,"before");y&&this.builder(y),this.stringify(p,a!==d||i)}}comment(t){let a=this.raw(t,"left","commentLeft"),i=this.raw(t,"right","commentRight");this.builder("/*"+a+t.text+i+"*/",t)}decl(t,a){let i=this.raw(t,"between","colon"),d=t.prop+i+this.rawValue(t,"value");t.important&&(d+=t.raws.important||" !important"),a&&(d+=";"),this.builder(d,t)}document(t){this.body(t)}raw(t,a,i){let d;if(i||(i=a),a&&(d=t.raws[a],typeof d<"u"))return d;let p=t.parent;if(i==="before"&&(!p||p.type==="root"&&p.first===t||p&&p.type==="document"))return"";if(!p)return Cme[i];let y=t.root();if(y.rawCache||(y.rawCache={}),typeof y.rawCache[i]<"u")return y.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(t,i);{let b="raw"+l5t(i);this[b]?d=this[b](y,t):y.walk(v=>{if(d=v.raws[a],typeof d<"u")return!1})}return typeof d>"u"&&(d=Cme[i]),y.rawCache[i]=d,d}rawBeforeClose(t){let a;return t.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return a=i.raws.after,a.includes(` +`)&&(a=a.replace(/[^\n]+$/,"")),!1}),a&&(a=a.replace(/\S/g,"")),a}rawBeforeComment(t,a){let i;return t.walkComments(d=>{if(typeof d.raws.before<"u")return i=d.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(t,a){let i;return t.walkDecls(d=>{if(typeof d.raws.before<"u")return i=d.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(t){let a;return t.walk(i=>{if(i.type!=="decl"&&(a=i.raws.between,typeof a<"u"))return!1}),a}rawBeforeRule(t){let a;return t.walk(i=>{if(i.nodes&&(i.parent!==t||t.first!==i)&&typeof i.raws.before<"u")return a=i.raws.before,a.includes(` +`)&&(a=a.replace(/[^\n]+$/,"")),!1}),a&&(a=a.replace(/\S/g,"")),a}rawColon(t){let a;return t.walkDecls(i=>{if(typeof i.raws.between<"u")return a=i.raws.between.replace(/[^\s:]/g,""),!1}),a}rawEmptyBody(t){let a;return t.walk(i=>{if(i.nodes&&i.nodes.length===0&&(a=i.raws.after,typeof a<"u"))return!1}),a}rawIndent(t){if(t.raws.indent)return t.raws.indent;let a;return t.walk(i=>{let d=i.parent;if(d&&d!==t&&d.parent&&d.parent===t&&typeof i.raws.before<"u"){let p=i.raws.before.split(` +`);return a=p[p.length-1],a=a.replace(/\S/g,""),!1}}),a}rawSemicolon(t){let a;return t.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(a=i.raws.semicolon,typeof a<"u"))return!1}),a}rawValue(t,a){let i=t[a],d=t.raws[a];return d&&d.value===i?d.raw:i}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,a){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,a)}};var Cve=eD;eD.default=eD;let u5t=Cve;function tD(n,t){new u5t(t).stringify(n)}var bx=tD;tD.default=tD;var eg={};eg.isClean=Symbol("isClean");eg.my=Symbol("my");let c5t=fB,d5t=Cve,p5t=bx,{isClean:Jm,my:f5t}=eg;function rD(n,t){let a=new n.constructor;for(let i in n){if(!Object.prototype.hasOwnProperty.call(n,i)||i==="proxyCache")continue;let d=n[i],p=typeof d;i==="parent"&&p==="object"?t&&(a[i]=t):i==="source"?a[i]=d:Array.isArray(d)?a[i]=d.map(y=>rD(y,a)):(p==="object"&&d!==null&&(d=rD(d)),a[i]=d)}return a}let aD=class{constructor(t={}){this.raws={},this[Jm]=!1,this[f5t]=!0;for(let a in t)if(a==="nodes"){this.nodes=[];for(let i of t[a])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[a]=t[a]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let a=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${a.input.from}:${a.start.line}:${a.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let a in t)this[a]=t[a];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let a=rD(this);for(let i in t)a[i]=t[i];return a}cloneAfter(t={}){let a=this.clone(t);return this.parent.insertAfter(this,a),a}cloneBefore(t={}){let a=this.clone(t);return this.parent.insertBefore(this,a),a}error(t,a={}){if(this.source){let{end:i,start:d}=this.rangeBy(a);return this.source.input.error(t,{column:d.column,line:d.line},{column:i.column,line:i.line},a)}return new c5t(t)}getProxyProcessor(){return{get(t,a){return a==="proxyOf"?t:a==="root"?()=>t.root().toProxy():t[a]},set(t,a,i){return t[a]===i||(t[a]=i,(a==="prop"||a==="value"||a==="name"||a==="params"||a==="important"||a==="text")&&t.markDirty()),!0}}}markClean(){this[Jm]=!0}markDirty(){if(this[Jm]){this[Jm]=!1;let t=this;for(;t=t.parent;)t[Jm]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,a){let i=this.source.start;if(t.index)i=this.positionInside(t.index,a);else if(t.word){a=this.toString();let d=a.indexOf(t.word);d!==-1&&(i=this.positionInside(d,a))}return i}positionInside(t,a){let i=a||this.toString(),d=this.source.start.column,p=this.source.start.line;for(let y=0;y<t;y++)i[y]===` +`?(d=1,p+=1):d+=1;return{column:d,line:p}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}rangeBy(t){let a={column:this.source.start.column,line:this.source.start.line},i=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:a.column+1,line:a.line};if(t.word){let d=this.toString(),p=d.indexOf(t.word);p!==-1&&(a=this.positionInside(p,d),i=this.positionInside(p+t.word.length,d))}else t.start?a={column:t.start.column,line:t.start.line}:t.index&&(a=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):t.index&&(i=this.positionInside(t.index+1));return(i.line<a.line||i.line===a.line&&i.column<=a.column)&&(i={column:a.column+1,line:a.line}),{end:i,start:a}}raw(t,a){return new d5t().raw(this,t,a)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let a=this,i=!1;for(let d of t)d===this?i=!0:i?(this.parent.insertAfter(a,d),a=d):this.parent.insertBefore(a,d);i||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,a){let i={},d=a==null;a=a||new Map;let p=0;for(let y in this){if(!Object.prototype.hasOwnProperty.call(this,y)||y==="parent"||y==="proxyCache")continue;let b=this[y];if(Array.isArray(b))i[y]=b.map(v=>typeof v=="object"&&v.toJSON?v.toJSON(null,a):v);else if(typeof b=="object"&&b.toJSON)i[y]=b.toJSON(null,a);else if(y==="source"){let v=a.get(b.input);v==null&&(v=p,a.set(b.input,p),p++),i[y]={end:b.end,inputId:v,start:b.start}}else i[y]=b}return d&&(i.inputs=[...a.keys()].map(y=>y.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=p5t){t.stringify&&(t=t.stringify);let a="";return t(this,i=>{a+=i}),a}warn(t,a,i){let d={node:this};for(let p in i)d[p]=i[p];return t.warn(a,d)}get proxyOf(){return this}};var xx=aD;aD.default=aD;let h5t=xx,nD=class extends h5t{constructor(t){super(t),this.type="comment"}};var Rx=nD;nD.default=nD;let m5t=xx,sD=class extends m5t{constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var Ex=sD;sD.default=sD;let jve=Rx,Ove=Ex,y5t=xx,{isClean:_ve,my:Nve}=eg,hB,kve,Dve,mB;function Lve(n){return n.map(t=>(t.nodes&&(t.nodes=Lve(t.nodes)),delete t.source,t))}function Mve(n){if(n[_ve]=!1,n.proxyOf.nodes)for(let t of n.proxyOf.nodes)Mve(t)}let Il=class Bve extends y5t{append(...t){for(let a of t){let i=this.normalize(a,this.last);for(let d of i)this.proxyOf.nodes.push(d)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let a of this.nodes)a.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let a=this.getIterator(),i,d;for(;this.indexes[a]<this.proxyOf.nodes.length&&(i=this.indexes[a],d=t(this.proxyOf.nodes[i],i),d!==!1);)this.indexes[a]+=1;return delete this.indexes[a],d}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,a){return a==="proxyOf"?t:t[a]?a==="each"||typeof a=="string"&&a.startsWith("walk")?(...i)=>t[a](...i.map(d=>typeof d=="function"?(p,y)=>d(p.toProxy(),y):d)):a==="every"||a==="some"?i=>t[a]((d,...p)=>i(d.toProxy(),...p)):a==="root"?()=>t.root().toProxy():a==="nodes"?t.nodes.map(i=>i.toProxy()):a==="first"||a==="last"?t[a].toProxy():t[a]:t[a]},set(t,a,i){return t[a]===i||(t[a]=i,(a==="name"||a==="params"||a==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,a){let i=this.index(t),d=this.normalize(a,this.proxyOf.nodes[i]).reverse();i=this.index(t);for(let y of d)this.proxyOf.nodes.splice(i+1,0,y);let p;for(let y in this.indexes)p=this.indexes[y],i<p&&(this.indexes[y]=p+d.length);return this.markDirty(),this}insertBefore(t,a){let i=this.index(t),d=i===0?"prepend":!1,p=this.normalize(a,this.proxyOf.nodes[i],d).reverse();i=this.index(t);for(let b of p)this.proxyOf.nodes.splice(i,0,b);let y;for(let b in this.indexes)y=this.indexes[b],i<=y&&(this.indexes[b]=y+p.length);return this.markDirty(),this}normalize(t,a){if(typeof t=="string")t=Lve(kve(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let d of t)d.parent&&d.parent.removeChild(d,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let d of t)d.parent&&d.parent.removeChild(d,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new Ove(t)]}else if(t.selector||t.selectors)t=[new mB(t)];else if(t.name)t=[new hB(t)];else if(t.text)t=[new jve(t)];else throw new Error("Unknown node type in node creation");return t.map(d=>((!d[Nve]||!d.markClean)&&Bve.rebuild(d),d=d.proxyOf,d.parent&&d.parent.removeChild(d),d[_ve]&&Mve(d),typeof d.raws.before>"u"&&a&&typeof a.raws.before<"u"&&(d.raws.before=a.raws.before.replace(/\S/g,"")),d.parent=this.proxyOf,d))}prepend(...t){t=t.reverse();for(let a of t){let i=this.normalize(a,this.first,"prepend").reverse();for(let d of i)this.proxyOf.nodes.unshift(d);for(let d in this.indexes)this.indexes[d]=this.indexes[d]+i.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let a;for(let i in this.indexes)a=this.indexes[i],a>=t&&(this.indexes[i]=a-1);return this.markDirty(),this}replaceValues(t,a,i){return i||(i=a,a={}),this.walkDecls(d=>{a.props&&!a.props.includes(d.prop)||a.fast&&!d.value.includes(a.fast)||(d.value=d.value.replace(t,i))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((a,i)=>{let d;try{d=t(a,i)}catch(p){throw a.addToError(p)}return d!==!1&&a.walk&&(d=a.walk(t)),d})}walkAtRules(t,a){return a?t instanceof RegExp?this.walk((i,d)=>{if(i.type==="atrule"&&t.test(i.name))return a(i,d)}):this.walk((i,d)=>{if(i.type==="atrule"&&i.name===t)return a(i,d)}):(a=t,this.walk((i,d)=>{if(i.type==="atrule")return a(i,d)}))}walkComments(t){return this.walk((a,i)=>{if(a.type==="comment")return t(a,i)})}walkDecls(t,a){return a?t instanceof RegExp?this.walk((i,d)=>{if(i.type==="decl"&&t.test(i.prop))return a(i,d)}):this.walk((i,d)=>{if(i.type==="decl"&&i.prop===t)return a(i,d)}):(a=t,this.walk((i,d)=>{if(i.type==="decl")return a(i,d)}))}walkRules(t,a){return a?t instanceof RegExp?this.walk((i,d)=>{if(i.type==="rule"&&t.test(i.selector))return a(i,d)}):this.walk((i,d)=>{if(i.type==="rule"&&i.selector===t)return a(i,d)}):(a=t,this.walk((i,d)=>{if(i.type==="rule")return a(i,d)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Il.registerParse=n=>{kve=n};Il.registerRule=n=>{mB=n};Il.registerAtRule=n=>{hB=n};Il.registerRoot=n=>{Dve=n};var fd=Il;Il.default=Il;Il.rebuild=n=>{n.type==="atrule"?Object.setPrototypeOf(n,hB.prototype):n.type==="rule"?Object.setPrototypeOf(n,mB.prototype):n.type==="decl"?Object.setPrototypeOf(n,Ove.prototype):n.type==="comment"?Object.setPrototypeOf(n,jve.prototype):n.type==="root"&&Object.setPrototypeOf(n,Dve.prototype),n[Nve]=!0,n.nodes&&n.nodes.forEach(t=>{Il.rebuild(t)})};let Fve=fd,r6=class extends Fve{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};var yB=r6;r6.default=r6;Fve.registerAtRule(r6);let g5t=fd,$ve,qve,Cy=class extends g5t{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new $ve(new qve,this,t).stringify()}};Cy.registerLazyResult=n=>{$ve=n};Cy.registerProcessor=n=>{qve=n};var gB=Cy;Cy.default=Cy;let v5t="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",b5t=(n,t=21)=>(a=t)=>{let i="",d=a;for(;d--;)i+=n[Math.random()*n.length|0];return i},x5t=(n=21)=>{let t="",a=n;for(;a--;)t+=v5t[Math.random()*64|0];return t};var R5t={nanoid:x5t,customAlphabet:b5t},Uve=Jy(c9t);let{existsSync:E5t,readFileSync:S5t}=F9t,{dirname:sk,join:T5t}=dB,{SourceMapConsumer:jme,SourceMapGenerator:Ome}=nf;function w5t(n){return Bt?Bt.from(n,"base64").toString():window.atob(n)}let iD=class{constructor(t,a){if(a.map===!1)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let i=a.map?a.map.prev:void 0,d=this.loadMap(a.from,i);!this.mapFile&&a.from&&(this.mapFile=a.from),this.mapFile&&(this.root=sk(this.mapFile)),d&&(this.text=d)}consumer(){return this.consumerCache||(this.consumerCache=new jme(this.text)),this.consumerCache}decodeInline(t){let a=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,d=/^data:application\/json;charset=utf-?8,/,p=/^data:application\/json,/,y=t.match(d)||t.match(p);if(y)return decodeURIComponent(t.substr(y[0].length));let b=t.match(a)||t.match(i);if(b)return w5t(t.substr(b[0].length));let v=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+v)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let a=t.match(/\/\*\s*# sourceMappingURL=/g);if(!a)return;let i=t.lastIndexOf(a.pop()),d=t.indexOf("*/",i);i>-1&&d>-1&&(this.annotation=this.getAnnotationURL(t.substring(i,d)))}loadFile(t){if(this.root=sk(t),E5t(t))return this.mapFile=t,S5t(t,"utf-8").toString().trim()}loadMap(t,a){if(a===!1)return!1;if(a){if(typeof a=="string")return a;if(typeof a=="function"){let i=a(t);if(i){let d=this.loadFile(i);if(!d)throw new Error("Unable to load previous source map: "+i.toString());return d}}else{if(a instanceof jme)return Ome.fromSourceMap(a).toString();if(a instanceof Ome)return a.toString();if(this.isMap(a))return JSON.stringify(a);throw new Error("Unsupported previous source map format: "+a.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return t&&(i=T5t(sk(t),i)),this.loadFile(i)}}}startWith(t,a){return t?t.substr(0,a.length)===a:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Vve=iD;iD.default=iD;let{nanoid:P5t}=R5t,{isAbsolute:oD,resolve:lD}=dB,{SourceMapConsumer:A5t,SourceMapGenerator:I5t}=nf,{fileURLToPath:_me,pathToFileURL:r2}=Uve,Nme=fB,C5t=Vve,ik=Ave,ok=Symbol("fromOffsetCache"),j5t=!!(A5t&&I5t),kme=!!(lD&&oD),a6=class{constructor(t,a={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,a.from&&(!kme||/^\w+:\/\//.test(a.from)||oD(a.from)?this.file=a.from:this.file=lD(a.from)),kme&&j5t){let i=new C5t(this.css,a);if(i.text){this.map=i;let d=i.consumer().file;!this.file&&d&&(this.file=this.mapResolve(d))}}this.file||(this.id="<input css "+P5t(6)+">"),this.map&&(this.map.file=this.from)}error(t,a,i,d={}){let p,y,b;if(a&&typeof a=="object"){let E=a,S=i;if(typeof E.offset=="number"){let A=this.fromOffset(E.offset);a=A.line,i=A.col}else a=E.line,i=E.column;if(typeof S.offset=="number"){let A=this.fromOffset(S.offset);y=A.line,p=A.col}else y=S.line,p=S.column}else if(!i){let E=this.fromOffset(a);a=E.line,i=E.col}let v=this.origin(a,i,y,p);return v?b=new Nme(t,v.endLine===void 0?v.line:{column:v.column,line:v.line},v.endLine===void 0?v.column:{column:v.endColumn,line:v.endLine},v.source,v.file,d.plugin):b=new Nme(t,y===void 0?a:{column:i,line:a},y===void 0?i:{column:p,line:y},this.css,this.file,d.plugin),b.input={column:i,endColumn:p,endLine:y,line:a,source:this.css},this.file&&(r2&&(b.input.url=r2(this.file).toString()),b.input.file=this.file),b}fromOffset(t){let a,i;if(this[ok])i=this[ok];else{let p=this.css.split(` +`);i=new Array(p.length);let y=0;for(let b=0,v=p.length;b<v;b++)i[b]=y,y+=p[b].length+1;this[ok]=i}a=i[i.length-1];let d=0;if(t>=a)d=i.length-1;else{let p=i.length-2,y;for(;d<p;)if(y=d+(p-d>>1),t<i[y])p=y-1;else if(t>=i[y+1])d=y+1;else{d=y;break}}return{col:t-i[d]+1,line:d+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:lD(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,a,i,d){if(!this.map)return!1;let p=this.map.consumer(),y=p.originalPositionFor({column:a,line:t});if(!y.source)return!1;let b;typeof i=="number"&&(b=p.originalPositionFor({column:d,line:i}));let v;oD(y.source)?v=r2(y.source):v=new URL(y.source,this.map.consumer().sourceRoot||r2(this.map.mapFile));let E={column:y.column,endColumn:b&&b.column,endLine:b&&b.line,line:y.line,url:v.toString()};if(v.protocol==="file:")if(_me)E.file=_me(v);else throw new Error("file: protocol is not available in this PostCSS build");let S=p.sourceContentFor(y.source);return S&&(E.source=S),E}toJSON(){let t={};for(let a of["hasBOM","css","file","id"])this[a]!=null&&(t[a]=this[a]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}get from(){return this.file||this.id}};var Sx=a6;a6.default=a6;ik&&ik.registerInput&&ik.registerInput(a6);let Wve=fd,Gve,Kve,Xp=class extends Wve{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,a,i){let d=super.normalize(t);if(a){if(i==="prepend")this.nodes.length>1?a.raws.before=this.nodes[1].raws.before:delete a.raws.before;else if(this.first!==a)for(let p of d)p.raws.before=a.raws.before}return d}removeChild(t,a){let i=this.index(t);return!a&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(t)}toResult(t={}){return new Gve(new Kve,this,t).stringify()}};Xp.registerLazyResult=n=>{Gve=n};Xp.registerProcessor=n=>{Kve=n};var tg=Xp;Xp.default=Xp;Wve.registerRoot(Xp);let jy={comma(n){return jy.split(n,[","],!0)},space(n){let t=[" ",` +`," "];return jy.split(n,t)},split(n,t,a){let i=[],d="",p=!1,y=0,b=!1,v="",E=!1;for(let S of n)E?E=!1:S==="\\"?E=!0:b?S===v&&(b=!1):S==='"'||S==="'"?(b=!0,v=S):S==="("?y+=1:S===")"?y>0&&(y-=1):y===0&&t.includes(S)&&(p=!0),p?(d!==""&&i.push(d.trim()),d="",p=!1):d+=S;return(a||d!=="")&&i.push(d.trim()),i}};var Hve=jy;jy.default=jy;let zve=fd,O5t=Hve,n6=class extends zve{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return O5t.comma(this.selector)}set selectors(t){let a=this.selector?this.selector.match(/,\s*/):null,i=a?a[0]:","+this.raw("between","beforeOpen");this.selector=t.join(i)}};var vB=n6;n6.default=n6;zve.registerRule(n6);let _5t=yB,N5t=Rx,k5t=Ex,D5t=Sx,L5t=Vve,M5t=tg,B5t=vB;function Oy(n,t){if(Array.isArray(n))return n.map(d=>Oy(d));let{inputs:a,...i}=n;if(a){t=[];for(let d of a){let p={...d,__proto__:D5t.prototype};p.map&&(p.map={...p.map,__proto__:L5t.prototype}),t.push(p)}}if(i.nodes&&(i.nodes=n.nodes.map(d=>Oy(d,t))),i.source){let{inputId:d,...p}=i.source;i.source=p,d!=null&&(i.source.input=t[d])}if(i.type==="root")return new M5t(i);if(i.type==="decl")return new k5t(i);if(i.type==="rule")return new B5t(i);if(i.type==="comment")return new N5t(i);if(i.type==="atrule")return new _5t(i);throw new Error("Unknown node type: "+n.type)}var F5t=Oy;Oy.default=Oy;let{dirname:P2,relative:Xve,resolve:Jve,sep:Yve}=dB,{SourceMapConsumer:Qve,SourceMapGenerator:A2}=nf,{pathToFileURL:Dme}=Uve,$5t=Sx,q5t=!!(Qve&&A2),U5t=!!(P2&&Jve&&Xve&&Yve),V5t=class{constructor(t,a,i,d){this.stringify=t,this.mapOpts=i.map||{},this.root=a,this.opts=i,this.css=d,this.originalCSS=d,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let a=` +`;this.css.includes(`\r +`)&&(a=`\r +`),this.css+=a+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let a=this.toUrl(this.path(t.file)),i=t.root||P2(t.file),d;this.mapOpts.sourcesContent===!1?(d=new Qve(t.text),d.sourcesContent&&(d.sourcesContent=null)):d=t.consumer(),this.map.applySourceMap(d,a,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let t;for(let a=this.root.nodes.length-1;a>=0;a--)t=this.root.nodes[a],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(a)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),U5t&&q5t&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,a=>{t+=a}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=A2.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new A2({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new A2({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,a=1,i="<no source>",d={generated:{column:0,line:0},original:{column:0,line:0},source:""},p,y;this.stringify(this.root,(b,v,E)=>{if(this.css+=b,v&&E!=="end"&&(d.generated.line=t,d.generated.column=a-1,v.source&&v.source.start?(d.source=this.sourcePath(v),d.original.line=v.source.start.line,d.original.column=v.source.start.column-1,this.map.addMapping(d)):(d.source=i,d.original.line=1,d.original.column=0,this.map.addMapping(d))),y=b.match(/\n/g),y?(t+=y.length,p=b.lastIndexOf(` +`),a=b.length-p):a+=b.length,v&&E!=="start"){let S=v.parent||{raws:{}};(!(v.type==="decl"||v.type==="atrule"&&!v.nodes)||v!==S.last||S.raws.semicolon)&&(v.source&&v.source.end?(d.source=this.sourcePath(v),d.original.line=v.source.end.line,d.original.column=v.source.end.column-1,d.generated.line=t,d.generated.column=a-2,this.map.addMapping(d)):(d.source=i,d.original.line=1,d.original.column=0,d.generated.line=t,d.generated.column=a-1,this.map.addMapping(d)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(a=>a.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\w+:\/\//.test(t))return t;let a=this.memoizedPaths.get(t);if(a)return a;let i=this.opts.to?P2(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=P2(Jve(i,this.mapOpts.annotation)));let d=Xve(i,t);return this.memoizedPaths.set(t,d),d}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let a=t.source.input.map;this.previousMaps.includes(a)||this.previousMaps.push(a)}});else{let t=new $5t(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(a=>{if(a.source){let i=a.source.input.from;if(i&&!t[i]){t[i]=!0;let d=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(d,a.source.input.css)}}});else if(this.css){let a=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(a,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Bt?Bt.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let a=this.memoizedFileURLs.get(t);if(a)return a;if(Dme){let i=Dme(t).toString();return this.memoizedFileURLs.set(t,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let a=this.memoizedURLs.get(t);if(a)return a;Yve==="\\"&&(t=t.replace(/\\/g,"/"));let i=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,i),i}};var Zve=V5t;let W5t=yB,G5t=Rx,K5t=Ex,H5t=tg,Lme=vB,z5t=Tve;const Mme={empty:!0,space:!0};function X5t(n){for(let t=n.length-1;t>=0;t--){let a=n[t],i=a[3]||a[2];if(i)return i}}let J5t=class{constructor(t){this.input=t,this.root=new H5t,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let a=new W5t;a.name=t[1].slice(1),a.name===""&&this.unnamedAtrule(a,t),this.init(a,t[2]);let i,d,p,y=!1,b=!1,v=[],E=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),i=t[0],i==="("||i==="["?E.push(i==="("?")":"]"):i==="{"&&E.length>0?E.push("}"):i===E[E.length-1]&&E.pop(),E.length===0)if(i===";"){a.source.end=this.getPosition(t[2]),a.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){b=!0;break}else if(i==="}"){if(v.length>0){for(p=v.length-1,d=v[p];d&&d[0]==="space";)d=v[--p];d&&(a.source.end=this.getPosition(d[3]||d[2]),a.source.end.offset++)}this.end(t);break}else v.push(t);else v.push(t);if(this.tokenizer.endOfFile()){y=!0;break}}a.raws.between=this.spacesAndCommentsFromEnd(v),v.length?(a.raws.afterName=this.spacesAndCommentsFromStart(v),this.raw(a,"params",v),y&&(t=v[v.length-1],a.source.end=this.getPosition(t[3]||t[2]),a.source.end.offset++,this.spaces=a.raws.between,a.raws.between="")):(a.raws.afterName="",a.params=""),b&&(a.nodes=[],this.current=a)}checkMissedSemicolon(t){let a=this.colon(t);if(a===!1)return;let i=0,d;for(let p=a-1;p>=0&&(d=t[p],!(d[0]!=="space"&&(i+=1,i===2)));p--);throw this.input.error("Missed semicolon",d[0]==="word"?d[3]+1:d[2])}colon(t){let a=0,i,d,p;for(let[y,b]of t.entries()){if(d=b,p=d[0],p==="("&&(a+=1),p===")"&&(a-=1),a===0&&p===":")if(!i)this.doubleColon(d);else{if(i[0]==="word"&&i[1]==="progid")continue;return y}i=d}return!1}comment(t){let a=new G5t;this.init(a,t[2]),a.source.end=this.getPosition(t[3]||t[2]),a.source.end.offset++;let i=t[1].slice(2,-2);if(/^\s*$/.test(i))a.text="",a.raws.left=i,a.raws.right="";else{let d=i.match(/^(\s*)([^]*\S)(\s*)$/);a.text=d[2],a.raws.left=d[1],a.raws.right=d[3]}}createTokenizer(){this.tokenizer=z5t(this.input)}decl(t,a){let i=new K5t;this.init(i,t[0][2]);let d=t[t.length-1];for(d[0]===";"&&(this.semicolon=!0,t.pop()),i.source.end=this.getPosition(d[3]||d[2]||X5t(t)),i.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),i.raws.before+=t.shift()[1];for(i.source.start=this.getPosition(t[0][2]),i.prop="";t.length;){let E=t[0][0];if(E===":"||E==="space"||E==="comment")break;i.prop+=t.shift()[1]}i.raws.between="";let p;for(;t.length;)if(p=t.shift(),p[0]===":"){i.raws.between+=p[1];break}else p[0]==="word"&&/\w/.test(p[1])&&this.unknownWord([p]),i.raws.between+=p[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let y=[],b;for(;t.length&&(b=t[0][0],!(b!=="space"&&b!=="comment"));)y.push(t.shift());this.precheckMissedSemicolon(t);for(let E=t.length-1;E>=0;E--){if(p=t[E],p[1].toLowerCase()==="!important"){i.important=!0;let S=this.stringFrom(t,E);S=this.spacesFromEnd(t)+S,S!==" !important"&&(i.raws.important=S);break}else if(p[1].toLowerCase()==="important"){let S=t.slice(0),A="";for(let _=E;_>0;_--){let C=S[_][0];if(A.trim().startsWith("!")&&C!=="space")break;A=S.pop()[1]+A}A.trim().startsWith("!")&&(i.important=!0,i.raws.important=A,t=S)}if(p[0]!=="space"&&p[0]!=="comment")break}t.some(E=>E[0]!=="space"&&E[0]!=="comment")&&(i.raws.between+=y.map(E=>E[1]).join(""),y=[]),this.raw(i,"value",y.concat(t),a),i.value.includes(":")&&!a&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let a=new Lme;this.init(a,t[2]),a.selector="",a.raws.between="",this.current=a}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let a=this.current.nodes[this.current.nodes.length-1];a&&a.type==="rule"&&!a.raws.ownSemicolon&&(a.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let a=this.input.fromOffset(t);return{column:a.col,line:a.line,offset:t}}init(t,a){this.current.push(t),t.source={input:this.input,start:this.getPosition(a)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let a=!1,i=null,d=!1,p=null,y=[],b=t[1].startsWith("--"),v=[],E=t;for(;E;){if(i=E[0],v.push(E),i==="("||i==="[")p||(p=E),y.push(i==="("?")":"]");else if(b&&d&&i==="{")p||(p=E),y.push("}");else if(y.length===0)if(i===";")if(d){this.decl(v,b);return}else break;else if(i==="{"){this.rule(v);return}else if(i==="}"){this.tokenizer.back(v.pop()),a=!0;break}else i===":"&&(d=!0);else i===y[y.length-1]&&(y.pop(),y.length===0&&(p=null));E=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(a=!0),y.length>0&&this.unclosedBracket(p),a&&d){if(!b)for(;v.length&&(E=v[v.length-1][0],!(E!=="space"&&E!=="comment"));)this.tokenizer.back(v.pop());this.decl(v,b)}else this.unknownWord(v)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,a,i,d){let p,y,b=i.length,v="",E=!0,S,A;for(let _=0;_<b;_+=1)p=i[_],y=p[0],y==="space"&&_===b-1&&!d?E=!1:y==="comment"?(A=i[_-1]?i[_-1][0]:"empty",S=i[_+1]?i[_+1][0]:"empty",!Mme[A]&&!Mme[S]?v.slice(-1)===","?E=!1:v+=p[1]:E=!1):v+=p[1];if(!E){let _=i.reduce((C,q)=>C+q[1],"");t.raws[a]={raw:_,value:v}}t[a]=v}rule(t){t.pop();let a=new Lme;this.init(a,t[0][2]),a.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(a,"selector",t),this.current=a}spacesAndCommentsFromEnd(t){let a,i="";for(;t.length&&(a=t[t.length-1][0],!(a!=="space"&&a!=="comment"));)i=t.pop()[1]+i;return i}spacesAndCommentsFromStart(t){let a,i="";for(;t.length&&(a=t[0][0],!(a!=="space"&&a!=="comment"));)i+=t.shift()[1];return i}spacesFromEnd(t){let a,i="";for(;t.length&&(a=t[t.length-1][0],a==="space");)i=t.pop()[1]+i;return i}stringFrom(t,a){let i="";for(let d=a;d<t.length;d++)i+=t[d][1];return t.splice(a,t.length-a),i}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word",{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,a){throw this.input.error("At-rule without name",{offset:a[2]},{offset:a[2]+a[1].length})}};var Y5t=J5t;let Q5t=fd,Z5t=Sx,eSt=Y5t;function s6(n,t){let a=new Z5t(n,t),i=new eSt(a);try{i.parse()}catch(d){throw Ks.env.NODE_ENV!=="production"&&d.name==="CssSyntaxError"&&t&&t.from&&(/\.scss$/i.test(t.from)?d.message+=` +You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(t.from)?d.message+=` +You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(t.from)&&(d.message+=` +You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),d}return i.root}var bB=s6;s6.default=s6;Q5t.registerParse(s6);let uD=class{constructor(t,a={}){if(this.type="warning",this.text=t,a.node&&a.node.source){let i=a.node.rangeBy(a);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in a)this[i]=a[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var ebe=uD;uD.default=uD;let tSt=ebe,cD=class{constructor(t,a,i){this.processor=t,this.messages=[],this.root=a,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,a={}){a.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(a.plugin=this.lastPlugin.postcssPlugin);let i=new tSt(t,a);return this.messages.push(i),i}warnings(){return this.messages.filter(t=>t.type==="warning")}get content(){return this.css}};var xB=cD;cD.default=cD;let Bme={};var tbe=function(t){Bme[t]||(Bme[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))};let rSt=fd,aSt=gB,nSt=Zve,sSt=bB,Fme=xB,iSt=tg,oSt=bx,{isClean:vo,my:lSt}=eg,uSt=tbe;const cSt={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},dSt={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},pSt={Once:!0,postcssPlugin:!0,prepare:!0},Jp=0;function Ym(n){return typeof n=="object"&&typeof n.then=="function"}function rbe(n){let t=!1,a=cSt[n.type];return n.type==="decl"?t=n.prop.toLowerCase():n.type==="atrule"&&(t=n.name.toLowerCase()),t&&n.append?[a,a+"-"+t,Jp,a+"Exit",a+"Exit-"+t]:t?[a,a+"-"+t,a+"Exit",a+"Exit-"+t]:n.append?[a,Jp,a+"Exit"]:[a,a+"Exit"]}function $me(n){let t;return n.type==="document"?t=["Document",Jp,"DocumentExit"]:n.type==="root"?t=["Root",Jp,"RootExit"]:t=rbe(n),{eventIndex:0,events:t,iterator:0,node:n,visitorIndex:0,visitors:[]}}function dD(n){return n[vo]=!1,n.nodes&&n.nodes.forEach(t=>dD(t)),n}let pD={},Yp=class abe{constructor(t,a,i){this.stringified=!1,this.processed=!1;let d;if(typeof a=="object"&&a!==null&&(a.type==="root"||a.type==="document"))d=dD(a);else if(a instanceof abe||a instanceof Fme)d=dD(a.root),a.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=a.map);else{let p=sSt;i.syntax&&(p=i.syntax.parse),i.parser&&(p=i.parser),p.parse&&(p=p.parse);try{d=p(a,i)}catch(y){this.processed=!0,this.error=y}d&&!d[lSt]&&rSt.rebuild(d)}this.result=new Fme(t,d,i),this.helpers={...pD,postcss:pD,result:this.result},this.plugins=this.processor.plugins.map(p=>typeof p=="object"&&p.prepare?{...p,...p.prepare(this.result)}:p)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,a){let i=this.result.lastPlugin;try{if(a&&a.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin)t.plugin=i.postcssPlugin,t.setMessage();else if(i.postcssVersion&&Ks.env.NODE_ENV!=="production"){let d=i.postcssPlugin,p=i.postcssVersion,y=this.result.processor.version,b=p.split("."),v=y.split(".");(b[0]!==v[0]||parseInt(b[1])>parseInt(v[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+y+", but "+d+" uses "+p+". Perhaps this is the source of the error below.")}}catch(d){console&&console.error&&console.error(d)}return t}prepareVisitors(){this.listeners={};let t=(a,i,d)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([a,d])};for(let a of this.plugins)if(typeof a=="object")for(let i in a){if(!dSt[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${a.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!pSt[i])if(typeof a[i]=="object")for(let d in a[i])d==="*"?t(a,i,a[i][d]):t(a,i+"-"+d.toLowerCase(),a[i][d]);else typeof a[i]=="function"&&t(a,i,a[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let a=this.plugins[t],i=this.runOnRoot(a);if(Ym(i))try{await i}catch(d){throw this.handleError(d)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[vo];){t[vo]=!0;let a=[$me(t)];for(;a.length>0;){let i=this.visitTick(a);if(Ym(i))try{await i}catch(d){let p=a[a.length-1].node;throw this.handleError(d,p)}}}if(this.listeners.OnceExit)for(let[a,i]of this.listeners.OnceExit){this.result.lastPlugin=a;try{if(t.type==="document"){let d=t.nodes.map(p=>i(p,this.helpers));await Promise.all(d)}else await i(t,this.helpers)}catch(d){throw this.handleError(d)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let a=this.result.root.nodes.map(i=>t.Once(i,this.helpers));return Ym(a[0])?Promise.all(a):a}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(a){throw this.handleError(a)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,a=oSt;t.syntax&&(a=t.syntax.stringify),t.stringifier&&(a=t.stringifier),a.stringify&&(a=a.stringify);let d=new nSt(a,this.result.root,this.result.opts).generate();return this.result.css=d[0],this.result.map=d[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let a=this.runOnRoot(t);if(Ym(a))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[vo];)t[vo]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let a of t.nodes)this.visitSync(this.listeners.OnceExit,a);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,a){return Ks.env.NODE_ENV!=="production"&&("from"in this.opts||uSt("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,a)}toString(){return this.css}visitSync(t,a){for(let[i,d]of t){this.result.lastPlugin=i;let p;try{p=d(a,this.helpers)}catch(y){throw this.handleError(y,a.proxyOf)}if(a.type!=="root"&&a.type!=="document"&&!a.parent)return!0;if(Ym(p))throw this.getAsyncError()}}visitTick(t){let a=t[t.length-1],{node:i,visitors:d}=a;if(i.type!=="root"&&i.type!=="document"&&!i.parent){t.pop();return}if(d.length>0&&a.visitorIndex<d.length){let[y,b]=d[a.visitorIndex];a.visitorIndex+=1,a.visitorIndex===d.length&&(a.visitors=[],a.visitorIndex=0),this.result.lastPlugin=y;try{return b(i.toProxy(),this.helpers)}catch(v){throw this.handleError(v,i)}}if(a.iterator!==0){let y=a.iterator,b;for(;b=i.nodes[i.indexes[y]];)if(i.indexes[y]+=1,!b[vo]){b[vo]=!0,t.push($me(b));return}a.iterator=0,delete i.indexes[y]}let p=a.events;for(;a.eventIndex<p.length;){let y=p[a.eventIndex];if(a.eventIndex+=1,y===Jp){i.nodes&&i.nodes.length&&(i[vo]=!0,a.iterator=i.getIterator());return}else if(this.listeners[y]){a.visitors=this.listeners[y];return}}t.pop()}walkSync(t){t[vo]=!0;let a=rbe(t);for(let i of a)if(i===Jp)t.nodes&&t.each(d=>{d[vo]||this.walkSync(d)});else{let d=this.listeners[i];if(d&&this.visitSync(d,t.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};Yp.registerPostcss=n=>{pD=n};var nbe=Yp;Yp.default=Yp;iSt.registerLazyResult(Yp);aSt.registerLazyResult(Yp);let fSt=Zve,hSt=bB;const mSt=xB;let ySt=bx,gSt=tbe,fD=class{constructor(t,a,i){a=a.toString(),this.stringified=!1,this._processor=t,this._css=a,this._opts=i,this._map=void 0;let d,p=ySt;this.result=new mSt(this._processor,d,this._opts),this.result.css=a;let y=this;Object.defineProperty(this.result,"root",{get(){return y.root}});let b=new fSt(p,d,this._opts,a);if(b.isMap()){let[v,E]=b.generate();v&&(this.result.css=v),E&&(this.result.map=E)}else b.clearAnnotation(),this.result.css=b.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,a){return Ks.env.NODE_ENV!=="production"&&("from"in this._opts||gSt("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,a)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,a=hSt;try{t=a(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}};var vSt=fD;fD.default=fD;let bSt=gB,xSt=nbe,RSt=vSt,ESt=tg,_y=class{constructor(t=[]){this.version="8.4.44",this.plugins=this.normalize(t)}normalize(t){let a=[];for(let i of t)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))a=a.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)a.push(i);else if(typeof i=="function")a.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(Ks.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return a}process(t,a={}){return!this.plugins.length&&!a.parser&&!a.stringifier&&!a.syntax?new RSt(this,t,a):new xSt(this,t,a)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};var SSt=_y;_y.default=_y;ESt.registerProcessor(_y);bSt.registerProcessor(_y);let sbe=yB,ibe=Rx,TSt=fd,wSt=fB,obe=Ex,lbe=gB,PSt=F5t,ASt=Sx,ISt=nbe,CSt=Hve,jSt=xx,OSt=bB,RB=SSt,_St=xB,ube=tg,cbe=vB,NSt=bx,kSt=ebe;function Ba(...n){return n.length===1&&Array.isArray(n[0])&&(n=n[0]),new RB(n)}Ba.plugin=function(t,a){let i=!1;function d(...y){console&&console.warn&&!i&&(i=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),Ks.env.LANG&&Ks.env.LANG.startsWith("cn")&&console.warn(t+`: 里面 postcss.plugin 被弃用. 迁移指南: +https://www.w3ctech.com/topic/2226`));let b=a(...y);return b.postcssPlugin=t,b.postcssVersion=new RB().version,b}let p;return Object.defineProperty(d,"postcss",{get(){return p||(p=d()),p}}),d.process=function(y,b,v){return Ba([d(v)]).process(y,b)},d};Ba.stringify=NSt;Ba.parse=OSt;Ba.fromJSON=PSt;Ba.list=CSt;Ba.comment=n=>new ibe(n);Ba.atRule=n=>new sbe(n);Ba.decl=n=>new obe(n);Ba.rule=n=>new cbe(n);Ba.root=n=>new ube(n);Ba.document=n=>new lbe(n);Ba.CssSyntaxError=wSt;Ba.Declaration=obe;Ba.Container=TSt;Ba.Processor=RB;Ba.Document=lbe;Ba.Comment=ibe;Ba.Warning=kSt;Ba.AtRule=sbe;Ba.Result=_St;Ba.Input=ASt;Ba.Rule=cbe;Ba.Root=ube;Ba.Node=jSt;ISt.registerPostcss(Ba);var DSt=Ba;Ba.default=Ba;var rn=wxt(DSt);rn.stringify;rn.fromJSON;rn.plugin;rn.parse;rn.list;rn.document;rn.comment;rn.atRule;rn.rule;rn.decl;rn.root;rn.CssSyntaxError;rn.Declaration;rn.Container;rn.Processor;rn.Document;rn.Comment;rn.Warning;rn.AtRule;rn.Result;rn.Input;rn.Rule;rn.Root;rn.Node;var qme={exports:{}},hD={exports:{}},mD={exports:{}},yD={exports:{}},gD={exports:{}},vD={exports:{}},si={},bD={exports:{}};(function(n,t){t.__esModule=!0,t.default=d;function a(p){for(var y=p.toLowerCase(),b="",v=!1,E=0;E<6&&y[E]!==void 0;E++){var S=y.charCodeAt(E),A=S>=97&&S<=102||S>=48&&S<=57;if(v=S===32,!A)break;b+=y[E]}if(b.length!==0){var _=parseInt(b,16),C=_>=55296&&_<=57343;return C||_===0||_>1114111?["�",b.length+(v?1:0)]:[String.fromCodePoint(_),b.length+(v?1:0)]}}var i=/\\/;function d(p){var y=i.test(p);if(!y)return p;for(var b="",v=0;v<p.length;v++){if(p[v]==="\\"){var E=a(p.slice(v+1,v+7));if(E!==void 0){b+=E[0],v+=E[1];continue}if(p[v+1]==="\\"){b+="\\",v++;continue}p.length===v+1&&(b+=p[v]);continue}b+=p[v]}return b}n.exports=t.default})(bD,bD.exports);var dbe=bD.exports,xD={exports:{}};(function(n,t){t.__esModule=!0,t.default=a;function a(i){for(var d=arguments.length,p=new Array(d>1?d-1:0),y=1;y<d;y++)p[y-1]=arguments[y];for(;p.length>0;){var b=p.shift();if(!i[b])return;i=i[b]}return i}n.exports=t.default})(xD,xD.exports);var LSt=xD.exports,RD={exports:{}};(function(n,t){t.__esModule=!0,t.default=a;function a(i){for(var d=arguments.length,p=new Array(d>1?d-1:0),y=1;y<d;y++)p[y-1]=arguments[y];for(;p.length>0;){var b=p.shift();i[b]||(i[b]={}),i=i[b]}}n.exports=t.default})(RD,RD.exports);var MSt=RD.exports,ED={exports:{}};(function(n,t){t.__esModule=!0,t.default=a;function a(i){for(var d="",p=i.indexOf("/*"),y=0;p>=0;){d=d+i.slice(y,p);var b=i.indexOf("*/",p+2);if(b<0)return d;y=b+2,p=i.indexOf("/*",y)}return d=d+i.slice(y),d}n.exports=t.default})(ED,ED.exports);var BSt=ED.exports;si.__esModule=!0;si.unesc=si.stripComments=si.getProp=si.ensureObject=void 0;var FSt=Tx(dbe);si.unesc=FSt.default;var $St=Tx(LSt);si.getProp=$St.default;var qSt=Tx(MSt);si.ensureObject=qSt.default;var USt=Tx(BSt);si.stripComments=USt.default;function Tx(n){return n&&n.__esModule?n:{default:n}}(function(n,t){t.__esModule=!0,t.default=void 0;var a=si;function i(b,v){for(var E=0;E<v.length;E++){var S=v[E];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}function d(b,v,E){return v&&i(b.prototype,v),Object.defineProperty(b,"prototype",{writable:!1}),b}var p=function b(v,E){if(typeof v!="object"||v===null)return v;var S=new v.constructor;for(var A in v)if(v.hasOwnProperty(A)){var _=v[A],C=typeof _;A==="parent"&&C==="object"?E&&(S[A]=E):_ instanceof Array?S[A]=_.map(function(q){return b(q,S)}):S[A]=b(_,S)}return S},y=function(){function b(E){E===void 0&&(E={}),Object.assign(this,E),this.spaces=this.spaces||{},this.spaces.before=this.spaces.before||"",this.spaces.after=this.spaces.after||""}var v=b.prototype;return v.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},v.replaceWith=function(){if(this.parent){for(var S in arguments)this.parent.insertBefore(this,arguments[S]);this.remove()}return this},v.next=function(){return this.parent.at(this.parent.index(this)+1)},v.prev=function(){return this.parent.at(this.parent.index(this)-1)},v.clone=function(S){S===void 0&&(S={});var A=p(this);for(var _ in S)A[_]=S[_];return A},v.appendToPropertyAndEscape=function(S,A,_){this.raws||(this.raws={});var C=this[S],q=this.raws[S];this[S]=C+A,q||_!==A?this.raws[S]=(q||C)+_:delete this.raws[S]},v.setPropertyAndEscape=function(S,A,_){this.raws||(this.raws={}),this[S]=A,this.raws[S]=_},v.setPropertyWithoutEscape=function(S,A){this[S]=A,this.raws&&delete this.raws[S]},v.isAtPosition=function(S,A){if(this.source&&this.source.start&&this.source.end)return!(this.source.start.line>S||this.source.end.line<S||this.source.start.line===S&&this.source.start.column>A||this.source.end.line===S&&this.source.end.column<A)},v.stringifyProperty=function(S){return this.raws&&this.raws[S]||this[S]},v.valueToString=function(){return String(this.stringifyProperty("value"))},v.toString=function(){return[this.rawSpaceBefore,this.valueToString(),this.rawSpaceAfter].join("")},d(b,[{key:"rawSpaceBefore",get:function(){var S=this.raws&&this.raws.spaces&&this.raws.spaces.before;return S===void 0&&(S=this.spaces&&this.spaces.before),S||""},set:function(S){(0,a.ensureObject)(this,"raws","spaces"),this.raws.spaces.before=S}},{key:"rawSpaceAfter",get:function(){var S=this.raws&&this.raws.spaces&&this.raws.spaces.after;return S===void 0&&(S=this.spaces.after),S||""},set:function(S){(0,a.ensureObject)(this,"raws","spaces"),this.raws.spaces.after=S}}]),b}();t.default=y,n.exports=t.default})(vD,vD.exports);var Du=vD.exports,aa={};aa.__esModule=!0;aa.UNIVERSAL=aa.TAG=aa.STRING=aa.SELECTOR=aa.ROOT=aa.PSEUDO=aa.NESTING=aa.ID=aa.COMMENT=aa.COMBINATOR=aa.CLASS=aa.ATTRIBUTE=void 0;var VSt="tag";aa.TAG=VSt;var WSt="string";aa.STRING=WSt;var GSt="selector";aa.SELECTOR=GSt;var KSt="root";aa.ROOT=KSt;var HSt="pseudo";aa.PSEUDO=HSt;var zSt="nesting";aa.NESTING=zSt;var XSt="id";aa.ID=XSt;var JSt="comment";aa.COMMENT=JSt;var YSt="combinator";aa.COMBINATOR=YSt;var QSt="class";aa.CLASS=QSt;var ZSt="attribute";aa.ATTRIBUTE=ZSt;var eTt="universal";aa.UNIVERSAL=eTt;(function(n,t){t.__esModule=!0,t.default=void 0;var a=y(Du),i=p(aa);function d(M){if(typeof WeakMap!="function")return null;var W=new WeakMap,z=new WeakMap;return(d=function(Z){return Z?z:W})(M)}function p(M,W){if(M&&M.__esModule)return M;if(M===null||typeof M!="object"&&typeof M!="function")return{default:M};var z=d(W);if(z&&z.has(M))return z.get(M);var Y={},Z=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ce in M)if(ce!=="default"&&Object.prototype.hasOwnProperty.call(M,ce)){var ge=Z?Object.getOwnPropertyDescriptor(M,ce):null;ge&&(ge.get||ge.set)?Object.defineProperty(Y,ce,ge):Y[ce]=M[ce]}return Y.default=M,z&&z.set(M,Y),Y}function y(M){return M&&M.__esModule?M:{default:M}}function b(M,W){var z=typeof Symbol<"u"&&M[Symbol.iterator]||M["@@iterator"];if(z)return(z=z.call(M)).next.bind(z);if(Array.isArray(M)||(z=v(M))||W){z&&(M=z);var Y=0;return function(){return Y>=M.length?{done:!0}:{done:!1,value:M[Y++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function v(M,W){if(M){if(typeof M=="string")return E(M,W);var z=Object.prototype.toString.call(M).slice(8,-1);if(z==="Object"&&M.constructor&&(z=M.constructor.name),z==="Map"||z==="Set")return Array.from(M);if(z==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(z))return E(M,W)}}function E(M,W){(W==null||W>M.length)&&(W=M.length);for(var z=0,Y=new Array(W);z<W;z++)Y[z]=M[z];return Y}function S(M,W){for(var z=0;z<W.length;z++){var Y=W[z];Y.enumerable=Y.enumerable||!1,Y.configurable=!0,"value"in Y&&(Y.writable=!0),Object.defineProperty(M,Y.key,Y)}}function A(M,W,z){return W&&S(M.prototype,W),Object.defineProperty(M,"prototype",{writable:!1}),M}function _(M,W){M.prototype=Object.create(W.prototype),M.prototype.constructor=M,C(M,W)}function C(M,W){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(Y,Z){return Y.__proto__=Z,Y},C(M,W)}var q=function(M){_(W,M);function W(Y){var Z;return Z=M.call(this,Y)||this,Z.nodes||(Z.nodes=[]),Z}var z=W.prototype;return z.append=function(Z){return Z.parent=this,this.nodes.push(Z),this},z.prepend=function(Z){return Z.parent=this,this.nodes.unshift(Z),this},z.at=function(Z){return this.nodes[Z]},z.index=function(Z){return typeof Z=="number"?Z:this.nodes.indexOf(Z)},z.removeChild=function(Z){Z=this.index(Z),this.at(Z).parent=void 0,this.nodes.splice(Z,1);var ce;for(var ge in this.indexes)ce=this.indexes[ge],ce>=Z&&(this.indexes[ge]=ce-1);return this},z.removeAll=function(){for(var Z=b(this.nodes),ce;!(ce=Z()).done;){var ge=ce.value;ge.parent=void 0}return this.nodes=[],this},z.empty=function(){return this.removeAll()},z.insertAfter=function(Z,ce){ce.parent=this;var ge=this.index(Z);this.nodes.splice(ge+1,0,ce),ce.parent=this;var Ge;for(var Je in this.indexes)Ge=this.indexes[Je],ge<=Ge&&(this.indexes[Je]=Ge+1);return this},z.insertBefore=function(Z,ce){ce.parent=this;var ge=this.index(Z);this.nodes.splice(ge,0,ce),ce.parent=this;var Ge;for(var Je in this.indexes)Ge=this.indexes[Je],Ge<=ge&&(this.indexes[Je]=Ge+1);return this},z._findChildAtPosition=function(Z,ce){var ge=void 0;return this.each(function(Ge){if(Ge.atPosition){var Je=Ge.atPosition(Z,ce);if(Je)return ge=Je,!1}else if(Ge.isAtPosition(Z,ce))return ge=Ge,!1}),ge},z.atPosition=function(Z,ce){if(this.isAtPosition(Z,ce))return this._findChildAtPosition(Z,ce)||this},z._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},z.each=function(Z){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var ce=this.lastEach;if(this.indexes[ce]=0,!!this.length){for(var ge,Ge;this.indexes[ce]<this.length&&(ge=this.indexes[ce],Ge=Z(this.at(ge),ge),Ge!==!1);)this.indexes[ce]+=1;if(delete this.indexes[ce],Ge===!1)return!1}},z.walk=function(Z){return this.each(function(ce,ge){var Ge=Z(ce,ge);if(Ge!==!1&&ce.length&&(Ge=ce.walk(Z)),Ge===!1)return!1})},z.walkAttributes=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.ATTRIBUTE)return Z.call(ce,ge)})},z.walkClasses=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.CLASS)return Z.call(ce,ge)})},z.walkCombinators=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.COMBINATOR)return Z.call(ce,ge)})},z.walkComments=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.COMMENT)return Z.call(ce,ge)})},z.walkIds=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.ID)return Z.call(ce,ge)})},z.walkNesting=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.NESTING)return Z.call(ce,ge)})},z.walkPseudos=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.PSEUDO)return Z.call(ce,ge)})},z.walkTags=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.TAG)return Z.call(ce,ge)})},z.walkUniversals=function(Z){var ce=this;return this.walk(function(ge){if(ge.type===i.UNIVERSAL)return Z.call(ce,ge)})},z.split=function(Z){var ce=this,ge=[];return this.reduce(function(Ge,Je,re){var Ae=Z.call(ce,Je);return ge.push(Je),Ae?(Ge.push(ge),ge=[]):re===ce.length-1&&Ge.push(ge),Ge},[])},z.map=function(Z){return this.nodes.map(Z)},z.reduce=function(Z,ce){return this.nodes.reduce(Z,ce)},z.every=function(Z){return this.nodes.every(Z)},z.some=function(Z){return this.nodes.some(Z)},z.filter=function(Z){return this.nodes.filter(Z)},z.sort=function(Z){return this.nodes.sort(Z)},z.toString=function(){return this.map(String).join("")},A(W,[{key:"first",get:function(){return this.at(0)}},{key:"last",get:function(){return this.at(this.length-1)}},{key:"length",get:function(){return this.nodes.length}}]),W}(a.default);t.default=q,n.exports=t.default})(gD,gD.exports);var EB=gD.exports;(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(EB),i=aa;function d(S){return S&&S.__esModule?S:{default:S}}function p(S,A){for(var _=0;_<A.length;_++){var C=A[_];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(S,C.key,C)}}function y(S,A,_){return A&&p(S.prototype,A),Object.defineProperty(S,"prototype",{writable:!1}),S}function b(S,A){S.prototype=Object.create(A.prototype),S.prototype.constructor=S,v(S,A)}function v(S,A){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(C,q){return C.__proto__=q,C},v(S,A)}var E=function(S){b(A,S);function A(C){var q;return q=S.call(this,C)||this,q.type=i.ROOT,q}var _=A.prototype;return _.toString=function(){var q=this.reduce(function(M,W){return M.push(String(W)),M},[]).join(",");return this.trailingComma?q+",":q},_.error=function(q,M){return this._error?this._error(q,M):new Error(q)},y(A,[{key:"errorGenerator",set:function(q){this._error=q}}]),A}(a.default);t.default=E,n.exports=t.default})(yD,yD.exports);var pbe=yD.exports,SD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(EB),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.SELECTOR,A}return E}(a.default);t.default=b,n.exports=t.default})(SD,SD.exports);var fbe=SD.exports,TD={exports:{}};/*! https://mths.be/cssesc v3.0.0 by @mathias */var tTt={},rTt=tTt.hasOwnProperty,aTt=function(t,a){if(!t)return a;var i={};for(var d in a)i[d]=rTt.call(t,d)?t[d]:a[d];return i},nTt=/[ -,\.\/:-@\[-\^`\{-~]/,sTt=/[ -,\.\/:-@\[\]\^`\{-~]/,iTt=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,SB=function n(t,a){a=aTt(a,n.options),a.quotes!="single"&&a.quotes!="double"&&(a.quotes="single");for(var i=a.quotes=="double"?'"':"'",d=a.isIdentifier,p=t.charAt(0),y="",b=0,v=t.length;b<v;){var E=t.charAt(b++),S=E.charCodeAt(),A=void 0;if(S<32||S>126){if(S>=55296&&S<=56319&&b<v){var _=t.charCodeAt(b++);(_&64512)==56320?S=((S&1023)<<10)+(_&1023)+65536:b--}A="\\"+S.toString(16).toUpperCase()+" "}else a.escapeEverything?nTt.test(E)?A="\\"+E:A="\\"+S.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(E)?A="\\"+S.toString(16).toUpperCase()+" ":E=="\\"||!d&&(E=='"'&&i==E||E=="'"&&i==E)||d&&sTt.test(E)?A="\\"+E:A=E;y+=A}return d&&(/^-[-\d]/.test(y)?y="\\-"+y.slice(1):/\d/.test(p)&&(y="\\3"+p+" "+y.slice(1))),y=y.replace(iTt,function(C,q,M){return q&&q.length%2?C:(q||"")+M}),!d&&a.wrap?i+y+i:y};SB.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1};SB.version="3.0.0";var TB=SB;(function(n,t){t.__esModule=!0,t.default=void 0;var a=y(TB),i=si,d=y(Du),p=aa;function y(_){return _&&_.__esModule?_:{default:_}}function b(_,C){for(var q=0;q<C.length;q++){var M=C[q];M.enumerable=M.enumerable||!1,M.configurable=!0,"value"in M&&(M.writable=!0),Object.defineProperty(_,M.key,M)}}function v(_,C,q){return C&&b(_.prototype,C),Object.defineProperty(_,"prototype",{writable:!1}),_}function E(_,C){_.prototype=Object.create(C.prototype),_.prototype.constructor=_,S(_,C)}function S(_,C){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(M,W){return M.__proto__=W,M},S(_,C)}var A=function(_){E(C,_);function C(M){var W;return W=_.call(this,M)||this,W.type=p.CLASS,W._constructed=!0,W}var q=C.prototype;return q.valueToString=function(){return"."+_.prototype.valueToString.call(this)},v(C,[{key:"value",get:function(){return this._value},set:function(W){if(this._constructed){var z=(0,a.default)(W,{isIdentifier:!0});z!==W?((0,i.ensureObject)(this,"raws"),this.raws.value=z):this.raws&&delete this.raws.value}this._value=W}}]),C}(d.default);t.default=A,n.exports=t.default})(TD,TD.exports);var hbe=TD.exports,wD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(Du),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.COMMENT,A}return E}(a.default);t.default=b,n.exports=t.default})(wD,wD.exports);var mbe=wD.exports,PD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(Du),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(A){var _;return _=v.call(this,A)||this,_.type=i.ID,_}var S=E.prototype;return S.valueToString=function(){return"#"+v.prototype.valueToString.call(this)},E}(a.default);t.default=b,n.exports=t.default})(PD,PD.exports);var ybe=PD.exports,AD={exports:{}},ID={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=p(TB),i=si,d=p(Du);function p(A){return A&&A.__esModule?A:{default:A}}function y(A,_){for(var C=0;C<_.length;C++){var q=_[C];q.enumerable=q.enumerable||!1,q.configurable=!0,"value"in q&&(q.writable=!0),Object.defineProperty(A,q.key,q)}}function b(A,_,C){return _&&y(A.prototype,_),Object.defineProperty(A,"prototype",{writable:!1}),A}function v(A,_){A.prototype=Object.create(_.prototype),A.prototype.constructor=A,E(A,_)}function E(A,_){return E=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(q,M){return q.__proto__=M,q},E(A,_)}var S=function(A){v(_,A);function _(){return A.apply(this,arguments)||this}var C=_.prototype;return C.qualifiedName=function(M){return this.namespace?this.namespaceString+"|"+M:M},C.valueToString=function(){return this.qualifiedName(A.prototype.valueToString.call(this))},b(_,[{key:"namespace",get:function(){return this._namespace},set:function(M){if(M===!0||M==="*"||M==="&"){this._namespace=M,this.raws&&delete this.raws.namespace;return}var W=(0,a.default)(M,{isIdentifier:!0});this._namespace=M,W!==M?((0,i.ensureObject)(this,"raws"),this.raws.namespace=W):this.raws&&delete this.raws.namespace}},{key:"ns",get:function(){return this._namespace},set:function(M){this.namespace=M}},{key:"namespaceString",get:function(){if(this.namespace){var M=this.stringifyProperty("namespace");return M===!0?"":M}else return""}}]),_}(d.default);t.default=S,n.exports=t.default})(ID,ID.exports);var wB=ID.exports;(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(wB),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.TAG,A}return E}(a.default);t.default=b,n.exports=t.default})(AD,AD.exports);var gbe=AD.exports,CD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(Du),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.STRING,A}return E}(a.default);t.default=b,n.exports=t.default})(CD,CD.exports);var vbe=CD.exports,jD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(EB),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(A){var _;return _=v.call(this,A)||this,_.type=i.PSEUDO,_}var S=E.prototype;return S.toString=function(){var _=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),_,this.rawSpaceAfter].join("")},E}(a.default);t.default=b,n.exports=t.default})(jD,jD.exports);var bbe=jD.exports,PB={},oTt=$9t.deprecate;(function(n){n.__esModule=!0,n.default=void 0,n.unescapeValue=W;var t=y(TB),a=y(dbe),i=y(wB),d=aa,p;function y(ge){return ge&&ge.__esModule?ge:{default:ge}}function b(ge,Ge){for(var Je=0;Je<Ge.length;Je++){var re=Ge[Je];re.enumerable=re.enumerable||!1,re.configurable=!0,"value"in re&&(re.writable=!0),Object.defineProperty(ge,re.key,re)}}function v(ge,Ge,Je){return Ge&&b(ge.prototype,Ge),Object.defineProperty(ge,"prototype",{writable:!1}),ge}function E(ge,Ge){ge.prototype=Object.create(Ge.prototype),ge.prototype.constructor=ge,S(ge,Ge)}function S(ge,Ge){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(re,Ae){return re.__proto__=Ae,re},S(ge,Ge)}var A=oTt,_=/^('|")([^]*)\1$/,C=A(function(){},"Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead."),q=A(function(){},"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."),M=A(function(){},"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.");function W(ge){var Ge=!1,Je=null,re=ge,Ae=re.match(_);return Ae&&(Je=Ae[1],re=Ae[2]),re=(0,a.default)(re),re!==ge&&(Ge=!0),{deprecatedUsage:Ge,unescaped:re,quoteMark:Je}}function z(ge){if(ge.quoteMark!==void 0||ge.value===void 0)return ge;M();var Ge=W(ge.value),Je=Ge.quoteMark,re=Ge.unescaped;return ge.raws||(ge.raws={}),ge.raws.value===void 0&&(ge.raws.value=ge.value),ge.value=re,ge.quoteMark=Je,ge}var Y=function(ge){E(Ge,ge);function Ge(re){var Ae;return re===void 0&&(re={}),Ae=ge.call(this,z(re))||this,Ae.type=d.ATTRIBUTE,Ae.raws=Ae.raws||{},Object.defineProperty(Ae.raws,"unquoted",{get:A(function(){return Ae.value},"attr.raws.unquoted is deprecated. Call attr.value instead."),set:A(function(){return Ae.value},"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.")}),Ae._constructed=!0,Ae}var Je=Ge.prototype;return Je.getQuotedValue=function(Ae){Ae===void 0&&(Ae={});var je=this._determineQuoteMark(Ae),se=Z[je],fe=(0,t.default)(this._value,se);return fe},Je._determineQuoteMark=function(Ae){return Ae.smart?this.smartQuoteMark(Ae):this.preferredQuoteMark(Ae)},Je.setValue=function(Ae,je){je===void 0&&(je={}),this._value=Ae,this._quoteMark=this._determineQuoteMark(je),this._syncRawValue()},Je.smartQuoteMark=function(Ae){var je=this.value,se=je.replace(/[^']/g,"").length,fe=je.replace(/[^"]/g,"").length;if(se+fe===0){var kt=(0,t.default)(je,{isIdentifier:!0});if(kt===je)return Ge.NO_QUOTE;var Qt=this.preferredQuoteMark(Ae);if(Qt===Ge.NO_QUOTE){var mt=this.quoteMark||Ae.quoteMark||Ge.DOUBLE_QUOTE,Tt=Z[mt],ne=(0,t.default)(je,Tt);if(ne.length<kt.length)return mt}return Qt}else return fe===se?this.preferredQuoteMark(Ae):fe<se?Ge.DOUBLE_QUOTE:Ge.SINGLE_QUOTE},Je.preferredQuoteMark=function(Ae){var je=Ae.preferCurrentQuoteMark?this.quoteMark:Ae.quoteMark;return je===void 0&&(je=Ae.preferCurrentQuoteMark?Ae.quoteMark:this.quoteMark),je===void 0&&(je=Ge.DOUBLE_QUOTE),je},Je._syncRawValue=function(){var Ae=(0,t.default)(this._value,Z[this.quoteMark]);Ae===this._value?this.raws&&delete this.raws.value:this.raws.value=Ae},Je._handleEscapes=function(Ae,je){if(this._constructed){var se=(0,t.default)(je,{isIdentifier:!0});se!==je?this.raws[Ae]=se:delete this.raws[Ae]}},Je._spacesFor=function(Ae){var je={before:"",after:""},se=this.spaces[Ae]||{},fe=this.raws.spaces&&this.raws.spaces[Ae]||{};return Object.assign(je,se,fe)},Je._stringFor=function(Ae,je,se){je===void 0&&(je=Ae),se===void 0&&(se=ce);var fe=this._spacesFor(je);return se(this.stringifyProperty(Ae),fe)},Je.offsetOf=function(Ae){var je=1,se=this._spacesFor("attribute");if(je+=se.before.length,Ae==="namespace"||Ae==="ns")return this.namespace?je:-1;if(Ae==="attributeNS"||(je+=this.namespaceString.length,this.namespace&&(je+=1),Ae==="attribute"))return je;je+=this.stringifyProperty("attribute").length,je+=se.after.length;var fe=this._spacesFor("operator");je+=fe.before.length;var kt=this.stringifyProperty("operator");if(Ae==="operator")return kt?je:-1;je+=kt.length,je+=fe.after.length;var Qt=this._spacesFor("value");je+=Qt.before.length;var mt=this.stringifyProperty("value");if(Ae==="value")return mt?je:-1;je+=mt.length,je+=Qt.after.length;var Tt=this._spacesFor("insensitive");return je+=Tt.before.length,Ae==="insensitive"&&this.insensitive?je:-1},Je.toString=function(){var Ae=this,je=[this.rawSpaceBefore,"["];return je.push(this._stringFor("qualifiedAttribute","attribute")),this.operator&&(this.value||this.value==="")&&(je.push(this._stringFor("operator")),je.push(this._stringFor("value")),je.push(this._stringFor("insensitiveFlag","insensitive",function(se,fe){return se.length>0&&!Ae.quoted&&fe.before.length===0&&!(Ae.spaces.value&&Ae.spaces.value.after)&&(fe.before=" "),ce(se,fe)}))),je.push("]"),je.push(this.rawSpaceAfter),je.join("")},v(Ge,[{key:"quoted",get:function(){var Ae=this.quoteMark;return Ae==="'"||Ae==='"'},set:function(Ae){q()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(Ae){if(!this._constructed){this._quoteMark=Ae;return}this._quoteMark!==Ae&&(this._quoteMark=Ae,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(Ae){if(this._constructed){var je=W(Ae),se=je.deprecatedUsage,fe=je.unescaped,kt=je.quoteMark;if(se&&C(),fe===this._value&&kt===this._quoteMark)return;this._value=fe,this._quoteMark=kt,this._syncRawValue()}else this._value=Ae}},{key:"insensitive",get:function(){return this._insensitive},set:function(Ae){Ae||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=Ae}},{key:"attribute",get:function(){return this._attribute},set:function(Ae){this._handleEscapes("attribute",Ae),this._attribute=Ae}}]),Ge}(i.default);n.default=Y,Y.NO_QUOTE=null,Y.SINGLE_QUOTE="'",Y.DOUBLE_QUOTE='"';var Z=(p={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},p[null]={isIdentifier:!0},p);function ce(ge,Ge){return""+Ge.before+ge+Ge.after}})(PB);var OD={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(wB),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.UNIVERSAL,A.value="*",A}return E}(a.default);t.default=b,n.exports=t.default})(OD,OD.exports);var xbe=OD.exports,_D={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(Du),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.COMBINATOR,A}return E}(a.default);t.default=b,n.exports=t.default})(_D,_D.exports);var Rbe=_D.exports,ND={exports:{}};(function(n,t){t.__esModule=!0,t.default=void 0;var a=d(Du),i=aa;function d(v){return v&&v.__esModule?v:{default:v}}function p(v,E){v.prototype=Object.create(E.prototype),v.prototype.constructor=v,y(v,E)}function y(v,E){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,_){return A.__proto__=_,A},y(v,E)}var b=function(v){p(E,v);function E(S){var A;return A=v.call(this,S)||this,A.type=i.NESTING,A.value="&",A}return E}(a.default);t.default=b,n.exports=t.default})(ND,ND.exports);var Ebe=ND.exports,kD={exports:{}};(function(n,t){t.__esModule=!0,t.default=a;function a(i){return i.sort(function(d,p){return d-p})}n.exports=t.default})(kD,kD.exports);var lTt=kD.exports,Sbe={},dr={};dr.__esModule=!0;dr.word=dr.tilde=dr.tab=dr.str=dr.space=dr.slash=dr.singleQuote=dr.semicolon=dr.plus=dr.pipe=dr.openSquare=dr.openParenthesis=dr.newline=dr.greaterThan=dr.feed=dr.equals=dr.doubleQuote=dr.dollar=dr.cr=dr.comment=dr.comma=dr.combinator=dr.colon=dr.closeSquare=dr.closeParenthesis=dr.caret=dr.bang=dr.backslash=dr.at=dr.asterisk=dr.ampersand=void 0;var uTt=38;dr.ampersand=uTt;var cTt=42;dr.asterisk=cTt;var dTt=64;dr.at=dTt;var pTt=44;dr.comma=pTt;var fTt=58;dr.colon=fTt;var hTt=59;dr.semicolon=hTt;var mTt=40;dr.openParenthesis=mTt;var yTt=41;dr.closeParenthesis=yTt;var gTt=91;dr.openSquare=gTt;var vTt=93;dr.closeSquare=vTt;var bTt=36;dr.dollar=bTt;var xTt=126;dr.tilde=xTt;var RTt=94;dr.caret=RTt;var ETt=43;dr.plus=ETt;var STt=61;dr.equals=STt;var TTt=124;dr.pipe=TTt;var wTt=62;dr.greaterThan=wTt;var PTt=32;dr.space=PTt;var Tbe=39;dr.singleQuote=Tbe;var ATt=34;dr.doubleQuote=ATt;var ITt=47;dr.slash=ITt;var CTt=33;dr.bang=CTt;var jTt=92;dr.backslash=jTt;var OTt=13;dr.cr=OTt;var _Tt=12;dr.feed=_Tt;var NTt=10;dr.newline=NTt;var kTt=9;dr.tab=kTt;var DTt=Tbe;dr.str=DTt;var LTt=-1;dr.comment=LTt;var MTt=-2;dr.word=MTt;var BTt=-3;dr.combinator=BTt;(function(n){n.__esModule=!0,n.FIELDS=void 0,n.default=q;var t=p(dr),a,i;function d(M){if(typeof WeakMap!="function")return null;var W=new WeakMap,z=new WeakMap;return(d=function(Z){return Z?z:W})(M)}function p(M,W){if(M&&M.__esModule)return M;if(M===null||typeof M!="object"&&typeof M!="function")return{default:M};var z=d(W);if(z&&z.has(M))return z.get(M);var Y={},Z=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ce in M)if(ce!=="default"&&Object.prototype.hasOwnProperty.call(M,ce)){var ge=Z?Object.getOwnPropertyDescriptor(M,ce):null;ge&&(ge.get||ge.set)?Object.defineProperty(Y,ce,ge):Y[ce]=M[ce]}return Y.default=M,z&&z.set(M,Y),Y}for(var y=(a={},a[t.tab]=!0,a[t.newline]=!0,a[t.cr]=!0,a[t.feed]=!0,a),b=(i={},i[t.space]=!0,i[t.tab]=!0,i[t.newline]=!0,i[t.cr]=!0,i[t.feed]=!0,i[t.ampersand]=!0,i[t.asterisk]=!0,i[t.bang]=!0,i[t.comma]=!0,i[t.colon]=!0,i[t.semicolon]=!0,i[t.openParenthesis]=!0,i[t.closeParenthesis]=!0,i[t.openSquare]=!0,i[t.closeSquare]=!0,i[t.singleQuote]=!0,i[t.doubleQuote]=!0,i[t.plus]=!0,i[t.pipe]=!0,i[t.tilde]=!0,i[t.greaterThan]=!0,i[t.equals]=!0,i[t.dollar]=!0,i[t.caret]=!0,i[t.slash]=!0,i),v={},E="0123456789abcdefABCDEF",S=0;S<E.length;S++)v[E.charCodeAt(S)]=!0;function A(M,W){var z=W,Y;do{if(Y=M.charCodeAt(z),b[Y])return z-1;Y===t.backslash?z=_(M,z)+1:z++}while(z<M.length);return z-1}function _(M,W){var z=W,Y=M.charCodeAt(z+1);if(!y[Y])if(v[Y]){var Z=0;do z++,Z++,Y=M.charCodeAt(z+1);while(v[Y]&&Z<6);Z<6&&Y===t.space&&z++}else z++;return z}var C={TYPE:0,START_LINE:1,START_COL:2,END_LINE:3,END_COL:4,START_POS:5,END_POS:6};n.FIELDS=C;function q(M){var W=[],z=M.css.valueOf(),Y=z,Z=Y.length,ce=-1,ge=1,Ge=0,Je=0,re,Ae,je,se,fe,kt,Qt,mt,Tt,ne,Zt,pt,bt;function ht(Se,Me){if(M.safe)z+=Me,Tt=z.length-1;else throw M.error("Unclosed "+Se,ge,Ge-ce,Ge)}for(;Ge<Z;){switch(re=z.charCodeAt(Ge),re===t.newline&&(ce=Ge,ge+=1),re){case t.space:case t.tab:case t.newline:case t.cr:case t.feed:Tt=Ge;do Tt+=1,re=z.charCodeAt(Tt),re===t.newline&&(ce=Tt,ge+=1);while(re===t.space||re===t.newline||re===t.tab||re===t.cr||re===t.feed);bt=t.space,se=ge,je=Tt-ce-1,Je=Tt;break;case t.plus:case t.greaterThan:case t.tilde:case t.pipe:Tt=Ge;do Tt+=1,re=z.charCodeAt(Tt);while(re===t.plus||re===t.greaterThan||re===t.tilde||re===t.pipe);bt=t.combinator,se=ge,je=Ge-ce,Je=Tt;break;case t.asterisk:case t.ampersand:case t.bang:case t.comma:case t.equals:case t.dollar:case t.caret:case t.openSquare:case t.closeSquare:case t.colon:case t.semicolon:case t.openParenthesis:case t.closeParenthesis:Tt=Ge,bt=re,se=ge,je=Ge-ce,Je=Tt+1;break;case t.singleQuote:case t.doubleQuote:pt=re===t.singleQuote?"'":'"',Tt=Ge;do for(fe=!1,Tt=z.indexOf(pt,Tt+1),Tt===-1&&ht("quote",pt),kt=Tt;z.charCodeAt(kt-1)===t.backslash;)kt-=1,fe=!fe;while(fe);bt=t.str,se=ge,je=Ge-ce,Je=Tt+1;break;default:re===t.slash&&z.charCodeAt(Ge+1)===t.asterisk?(Tt=z.indexOf("*/",Ge+2)+1,Tt===0&&ht("comment","*/"),Ae=z.slice(Ge,Tt+1),mt=Ae.split(` +`),Qt=mt.length-1,Qt>0?(ne=ge+Qt,Zt=Tt-mt[Qt].length):(ne=ge,Zt=ce),bt=t.comment,ge=ne,se=ne,je=Tt-Zt):re===t.slash?(Tt=Ge,bt=re,se=ge,je=Ge-ce,Je=Tt+1):(Tt=A(z,Ge),bt=t.word,se=ge,je=Tt-ce),Je=Tt+1;break}W.push([bt,ge,Ge-ce,se,je,Ge,Je]),Zt&&(ce=Zt,Zt=null),Ge=Je}return W}})(Sbe);(function(n,t){t.__esModule=!0,t.default=void 0;var a=Je(pbe),i=Je(fbe),d=Je(hbe),p=Je(mbe),y=Je(ybe),b=Je(gbe),v=Je(vbe),E=Je(bbe),S=Ge(PB),A=Je(xbe),_=Je(Rbe),C=Je(Ebe),q=Je(lTt),M=Ge(Sbe),W=Ge(dr),z=Ge(aa),Y=si,Z,ce;function ge(ht){if(typeof WeakMap!="function")return null;var Se=new WeakMap,Me=new WeakMap;return(ge=function(Oe){return Oe?Me:Se})(ht)}function Ge(ht,Se){if(ht&&ht.__esModule)return ht;if(ht===null||typeof ht!="object"&&typeof ht!="function")return{default:ht};var Me=ge(Se);if(Me&&Me.has(ht))return Me.get(ht);var le={},Oe=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Ke in ht)if(Ke!=="default"&&Object.prototype.hasOwnProperty.call(ht,Ke)){var Ue=Oe?Object.getOwnPropertyDescriptor(ht,Ke):null;Ue&&(Ue.get||Ue.set)?Object.defineProperty(le,Ke,Ue):le[Ke]=ht[Ke]}return le.default=ht,Me&&Me.set(ht,le),le}function Je(ht){return ht&&ht.__esModule?ht:{default:ht}}function re(ht,Se){for(var Me=0;Me<Se.length;Me++){var le=Se[Me];le.enumerable=le.enumerable||!1,le.configurable=!0,"value"in le&&(le.writable=!0),Object.defineProperty(ht,le.key,le)}}function Ae(ht,Se,Me){return Se&&re(ht.prototype,Se),Object.defineProperty(ht,"prototype",{writable:!1}),ht}var je=(Z={},Z[W.space]=!0,Z[W.cr]=!0,Z[W.feed]=!0,Z[W.newline]=!0,Z[W.tab]=!0,Z),se=Object.assign({},je,(ce={},ce[W.comment]=!0,ce));function fe(ht){return{line:ht[M.FIELDS.START_LINE],column:ht[M.FIELDS.START_COL]}}function kt(ht){return{line:ht[M.FIELDS.END_LINE],column:ht[M.FIELDS.END_COL]}}function Qt(ht,Se,Me,le){return{start:{line:ht,column:Se},end:{line:Me,column:le}}}function mt(ht){return Qt(ht[M.FIELDS.START_LINE],ht[M.FIELDS.START_COL],ht[M.FIELDS.END_LINE],ht[M.FIELDS.END_COL])}function Tt(ht,Se){if(ht)return Qt(ht[M.FIELDS.START_LINE],ht[M.FIELDS.START_COL],Se[M.FIELDS.END_LINE],Se[M.FIELDS.END_COL])}function ne(ht,Se){var Me=ht[Se];if(typeof Me=="string")return Me.indexOf("\\")!==-1&&((0,Y.ensureObject)(ht,"raws"),ht[Se]=(0,Y.unesc)(Me),ht.raws[Se]===void 0&&(ht.raws[Se]=Me)),ht}function Zt(ht,Se){for(var Me=-1,le=[];(Me=ht.indexOf(Se,Me+1))!==-1;)le.push(Me);return le}function pt(){var ht=Array.prototype.concat.apply([],arguments);return ht.filter(function(Se,Me){return Me===ht.indexOf(Se)})}var bt=function(){function ht(Me,le){le===void 0&&(le={}),this.rule=Me,this.options=Object.assign({lossy:!1,safe:!1},le),this.position=0,this.css=typeof this.rule=="string"?this.rule:this.rule.selector,this.tokens=(0,M.default)({css:this.css,error:this._errorGenerator(),safe:this.options.safe});var Oe=Tt(this.tokens[0],this.tokens[this.tokens.length-1]);this.root=new a.default({source:Oe}),this.root.errorGenerator=this._errorGenerator();var Ke=new i.default({source:{start:{line:1,column:1}},sourceIndex:0});this.root.append(Ke),this.current=Ke,this.loop()}var Se=ht.prototype;return Se._errorGenerator=function(){var le=this;return function(Oe,Ke){return typeof le.rule=="string"?new Error(Oe):le.rule.error(Oe,Ke)}},Se.attribute=function(){var le=[],Oe=this.currToken;for(this.position++;this.position<this.tokens.length&&this.currToken[M.FIELDS.TYPE]!==W.closeSquare;)le.push(this.currToken),this.position++;if(this.currToken[M.FIELDS.TYPE]!==W.closeSquare)return this.expected("closing square bracket",this.currToken[M.FIELDS.START_POS]);var Ke=le.length,Ue={source:Qt(Oe[1],Oe[2],this.currToken[3],this.currToken[4]),sourceIndex:Oe[M.FIELDS.START_POS]};if(Ke===1&&!~[W.word].indexOf(le[0][M.FIELDS.TYPE]))return this.expected("attribute",le[0][M.FIELDS.START_POS]);for(var ot=0,ct="",Pt="",Ut=null,ur=!1;ot<Ke;){var kr=le[ot],ir=this.content(kr),Jr=le[ot+1];switch(kr[M.FIELDS.TYPE]){case W.space:if(ur=!0,this.options.lossy)break;if(Ut){(0,Y.ensureObject)(Ue,"spaces",Ut);var Ea=Ue.spaces[Ut].after||"";Ue.spaces[Ut].after=Ea+ir;var Ua=(0,Y.getProp)(Ue,"raws","spaces",Ut,"after")||null;Ua&&(Ue.raws.spaces[Ut].after=Ua+ir)}else ct=ct+ir,Pt=Pt+ir;break;case W.asterisk:if(Jr[M.FIELDS.TYPE]===W.equals)Ue.operator=ir,Ut="operator";else if((!Ue.namespace||Ut==="namespace"&&!ur)&&Jr){ct&&((0,Y.ensureObject)(Ue,"spaces","attribute"),Ue.spaces.attribute.before=ct,ct=""),Pt&&((0,Y.ensureObject)(Ue,"raws","spaces","attribute"),Ue.raws.spaces.attribute.before=ct,Pt=""),Ue.namespace=(Ue.namespace||"")+ir;var da=(0,Y.getProp)(Ue,"raws","namespace")||null;da&&(Ue.raws.namespace+=ir),Ut="namespace"}ur=!1;break;case W.dollar:if(Ut==="value"){var Rt=(0,Y.getProp)(Ue,"raws","value");Ue.value+="$",Rt&&(Ue.raws.value=Rt+"$");break}case W.caret:Jr[M.FIELDS.TYPE]===W.equals&&(Ue.operator=ir,Ut="operator"),ur=!1;break;case W.combinator:if(ir==="~"&&Jr[M.FIELDS.TYPE]===W.equals&&(Ue.operator=ir,Ut="operator"),ir!=="|"){ur=!1;break}Jr[M.FIELDS.TYPE]===W.equals?(Ue.operator=ir,Ut="operator"):!Ue.namespace&&!Ue.attribute&&(Ue.namespace=!0),ur=!1;break;case W.word:if(Jr&&this.content(Jr)==="|"&&le[ot+2]&&le[ot+2][M.FIELDS.TYPE]!==W.equals&&!Ue.operator&&!Ue.namespace)Ue.namespace=ir,Ut="namespace";else if(!Ue.attribute||Ut==="attribute"&&!ur){ct&&((0,Y.ensureObject)(Ue,"spaces","attribute"),Ue.spaces.attribute.before=ct,ct=""),Pt&&((0,Y.ensureObject)(Ue,"raws","spaces","attribute"),Ue.raws.spaces.attribute.before=Pt,Pt=""),Ue.attribute=(Ue.attribute||"")+ir;var ja=(0,Y.getProp)(Ue,"raws","attribute")||null;ja&&(Ue.raws.attribute+=ir),Ut="attribute"}else if(!Ue.value&&Ue.value!==""||Ut==="value"&&!(ur||Ue.quoteMark)){var va=(0,Y.unesc)(ir),Dt=(0,Y.getProp)(Ue,"raws","value")||"",on=Ue.value||"";Ue.value=on+va,Ue.quoteMark=null,(va!==ir||Dt)&&((0,Y.ensureObject)(Ue,"raws"),Ue.raws.value=(Dt||on)+ir),Ut="value"}else{var rt=ir==="i"||ir==="I";(Ue.value||Ue.value==="")&&(Ue.quoteMark||ur)?(Ue.insensitive=rt,(!rt||ir==="I")&&((0,Y.ensureObject)(Ue,"raws"),Ue.raws.insensitiveFlag=ir),Ut="insensitive",ct&&((0,Y.ensureObject)(Ue,"spaces","insensitive"),Ue.spaces.insensitive.before=ct,ct=""),Pt&&((0,Y.ensureObject)(Ue,"raws","spaces","insensitive"),Ue.raws.spaces.insensitive.before=Pt,Pt="")):(Ue.value||Ue.value==="")&&(Ut="value",Ue.value+=ir,Ue.raws.value&&(Ue.raws.value+=ir))}ur=!1;break;case W.str:if(!Ue.attribute||!Ue.operator)return this.error("Expected an attribute followed by an operator preceding the string.",{index:kr[M.FIELDS.START_POS]});var nt=(0,S.unescapeValue)(ir),Yt=nt.unescaped,or=nt.quoteMark;Ue.value=Yt,Ue.quoteMark=or,Ut="value",(0,Y.ensureObject)(Ue,"raws"),Ue.raws.value=ir,ur=!1;break;case W.equals:if(!Ue.attribute)return this.expected("attribute",kr[M.FIELDS.START_POS],ir);if(Ue.value)return this.error('Unexpected "=" found; an operator was already defined.',{index:kr[M.FIELDS.START_POS]});Ue.operator=Ue.operator?Ue.operator+ir:ir,Ut="operator",ur=!1;break;case W.comment:if(Ut)if(ur||Jr&&Jr[M.FIELDS.TYPE]===W.space||Ut==="insensitive"){var pr=(0,Y.getProp)(Ue,"spaces",Ut,"after")||"",Hr=(0,Y.getProp)(Ue,"raws","spaces",Ut,"after")||pr;(0,Y.ensureObject)(Ue,"raws","spaces",Ut),Ue.raws.spaces[Ut].after=Hr+ir}else{var $r=Ue[Ut]||"",lr=(0,Y.getProp)(Ue,"raws",Ut)||$r;(0,Y.ensureObject)(Ue,"raws"),Ue.raws[Ut]=lr+ir}else Pt=Pt+ir;break;default:return this.error('Unexpected "'+ir+'" found.',{index:kr[M.FIELDS.START_POS]})}ot++}ne(Ue,"attribute"),ne(Ue,"namespace"),this.newNode(new S.default(Ue)),this.position++},Se.parseWhitespaceEquivalentTokens=function(le){le<0&&(le=this.tokens.length);var Oe=this.position,Ke=[],Ue="",ot=void 0;do if(je[this.currToken[M.FIELDS.TYPE]])this.options.lossy||(Ue+=this.content());else if(this.currToken[M.FIELDS.TYPE]===W.comment){var ct={};Ue&&(ct.before=Ue,Ue=""),ot=new p.default({value:this.content(),source:mt(this.currToken),sourceIndex:this.currToken[M.FIELDS.START_POS],spaces:ct}),Ke.push(ot)}while(++this.position<le);if(Ue){if(ot)ot.spaces.after=Ue;else if(!this.options.lossy){var Pt=this.tokens[Oe],Ut=this.tokens[this.position-1];Ke.push(new v.default({value:"",source:Qt(Pt[M.FIELDS.START_LINE],Pt[M.FIELDS.START_COL],Ut[M.FIELDS.END_LINE],Ut[M.FIELDS.END_COL]),sourceIndex:Pt[M.FIELDS.START_POS],spaces:{before:Ue,after:""}}))}}return Ke},Se.convertWhitespaceNodesToSpace=function(le,Oe){var Ke=this;Oe===void 0&&(Oe=!1);var Ue="",ot="";le.forEach(function(Pt){var Ut=Ke.lossySpace(Pt.spaces.before,Oe),ur=Ke.lossySpace(Pt.rawSpaceBefore,Oe);Ue+=Ut+Ke.lossySpace(Pt.spaces.after,Oe&&Ut.length===0),ot+=Ut+Pt.value+Ke.lossySpace(Pt.rawSpaceAfter,Oe&&ur.length===0)}),ot===Ue&&(ot=void 0);var ct={space:Ue,rawSpace:ot};return ct},Se.isNamedCombinator=function(le){return le===void 0&&(le=this.position),this.tokens[le+0]&&this.tokens[le+0][M.FIELDS.TYPE]===W.slash&&this.tokens[le+1]&&this.tokens[le+1][M.FIELDS.TYPE]===W.word&&this.tokens[le+2]&&this.tokens[le+2][M.FIELDS.TYPE]===W.slash},Se.namedCombinator=function(){if(this.isNamedCombinator()){var le=this.content(this.tokens[this.position+1]),Oe=(0,Y.unesc)(le).toLowerCase(),Ke={};Oe!==le&&(Ke.value="/"+le+"/");var Ue=new _.default({value:"/"+Oe+"/",source:Qt(this.currToken[M.FIELDS.START_LINE],this.currToken[M.FIELDS.START_COL],this.tokens[this.position+2][M.FIELDS.END_LINE],this.tokens[this.position+2][M.FIELDS.END_COL]),sourceIndex:this.currToken[M.FIELDS.START_POS],raws:Ke});return this.position=this.position+3,Ue}else this.unexpected()},Se.combinator=function(){var le=this;if(this.content()==="|")return this.namespace();var Oe=this.locateNextMeaningfulToken(this.position);if(Oe<0||this.tokens[Oe][M.FIELDS.TYPE]===W.comma||this.tokens[Oe][M.FIELDS.TYPE]===W.closeParenthesis){var Ke=this.parseWhitespaceEquivalentTokens(Oe);if(Ke.length>0){var Ue=this.current.last;if(Ue){var ot=this.convertWhitespaceNodesToSpace(Ke),ct=ot.space,Pt=ot.rawSpace;Pt!==void 0&&(Ue.rawSpaceAfter+=Pt),Ue.spaces.after+=ct}else Ke.forEach(function(Dt){return le.newNode(Dt)})}return}var Ut=this.currToken,ur=void 0;Oe>this.position&&(ur=this.parseWhitespaceEquivalentTokens(Oe));var kr;if(this.isNamedCombinator()?kr=this.namedCombinator():this.currToken[M.FIELDS.TYPE]===W.combinator?(kr=new _.default({value:this.content(),source:mt(this.currToken),sourceIndex:this.currToken[M.FIELDS.START_POS]}),this.position++):je[this.currToken[M.FIELDS.TYPE]]||ur||this.unexpected(),kr){if(ur){var ir=this.convertWhitespaceNodesToSpace(ur),Jr=ir.space,Ea=ir.rawSpace;kr.spaces.before=Jr,kr.rawSpaceBefore=Ea}}else{var Ua=this.convertWhitespaceNodesToSpace(ur,!0),da=Ua.space,Rt=Ua.rawSpace;Rt||(Rt=da);var ja={},va={spaces:{}};da.endsWith(" ")&&Rt.endsWith(" ")?(ja.before=da.slice(0,da.length-1),va.spaces.before=Rt.slice(0,Rt.length-1)):da.startsWith(" ")&&Rt.startsWith(" ")?(ja.after=da.slice(1),va.spaces.after=Rt.slice(1)):va.value=Rt,kr=new _.default({value:" ",source:Tt(Ut,this.tokens[this.position-1]),sourceIndex:Ut[M.FIELDS.START_POS],spaces:ja,raws:va})}return this.currToken&&this.currToken[M.FIELDS.TYPE]===W.space&&(kr.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(kr)},Se.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var le=new i.default({source:{start:fe(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][M.FIELDS.START_POS]});this.current.parent.append(le),this.current=le,this.position++},Se.comment=function(){var le=this.currToken;this.newNode(new p.default({value:this.content(),source:mt(le),sourceIndex:le[M.FIELDS.START_POS]})),this.position++},Se.error=function(le,Oe){throw this.root.error(le,Oe)},Se.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[M.FIELDS.START_POS]})},Se.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[M.FIELDS.START_POS])},Se.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[M.FIELDS.START_POS])},Se.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[M.FIELDS.START_POS])},Se.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[M.FIELDS.START_POS])},Se.namespace=function(){var le=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[M.FIELDS.TYPE]===W.word)return this.position++,this.word(le);if(this.nextToken[M.FIELDS.TYPE]===W.asterisk)return this.position++,this.universal(le);this.unexpectedPipe()},Se.nesting=function(){if(this.nextToken){var le=this.content(this.nextToken);if(le==="|"){this.position++;return}}var Oe=this.currToken;this.newNode(new C.default({value:this.content(),source:mt(Oe),sourceIndex:Oe[M.FIELDS.START_POS]})),this.position++},Se.parentheses=function(){var le=this.current.last,Oe=1;if(this.position++,le&&le.type===z.PSEUDO){var Ke=new i.default({source:{start:fe(this.tokens[this.position])},sourceIndex:this.tokens[this.position][M.FIELDS.START_POS]}),Ue=this.current;for(le.append(Ke),this.current=Ke;this.position<this.tokens.length&&Oe;)this.currToken[M.FIELDS.TYPE]===W.openParenthesis&&Oe++,this.currToken[M.FIELDS.TYPE]===W.closeParenthesis&&Oe--,Oe?this.parse():(this.current.source.end=kt(this.currToken),this.current.parent.source.end=kt(this.currToken),this.position++);this.current=Ue}else{for(var ot=this.currToken,ct="(",Pt;this.position<this.tokens.length&&Oe;)this.currToken[M.FIELDS.TYPE]===W.openParenthesis&&Oe++,this.currToken[M.FIELDS.TYPE]===W.closeParenthesis&&Oe--,Pt=this.currToken,ct+=this.parseParenthesisToken(this.currToken),this.position++;le?le.appendToPropertyAndEscape("value",ct,ct):this.newNode(new v.default({value:ct,source:Qt(ot[M.FIELDS.START_LINE],ot[M.FIELDS.START_COL],Pt[M.FIELDS.END_LINE],Pt[M.FIELDS.END_COL]),sourceIndex:ot[M.FIELDS.START_POS]}))}if(Oe)return this.expected("closing parenthesis",this.currToken[M.FIELDS.START_POS])},Se.pseudo=function(){for(var le=this,Oe="",Ke=this.currToken;this.currToken&&this.currToken[M.FIELDS.TYPE]===W.colon;)Oe+=this.content(),this.position++;if(!this.currToken)return this.expected(["pseudo-class","pseudo-element"],this.position-1);if(this.currToken[M.FIELDS.TYPE]===W.word)this.splitWord(!1,function(Ue,ot){Oe+=Ue,le.newNode(new E.default({value:Oe,source:Tt(Ke,le.currToken),sourceIndex:Ke[M.FIELDS.START_POS]})),ot>1&&le.nextToken&&le.nextToken[M.FIELDS.TYPE]===W.openParenthesis&&le.error("Misplaced parenthesis.",{index:le.nextToken[M.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[M.FIELDS.START_POS])},Se.space=function(){var le=this.content();this.position===0||this.prevToken[M.FIELDS.TYPE]===W.comma||this.prevToken[M.FIELDS.TYPE]===W.openParenthesis||this.current.nodes.every(function(Oe){return Oe.type==="comment"})?(this.spaces=this.optionalSpace(le),this.position++):this.position===this.tokens.length-1||this.nextToken[M.FIELDS.TYPE]===W.comma||this.nextToken[M.FIELDS.TYPE]===W.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(le),this.position++):this.combinator()},Se.string=function(){var le=this.currToken;this.newNode(new v.default({value:this.content(),source:mt(le),sourceIndex:le[M.FIELDS.START_POS]})),this.position++},Se.universal=function(le){var Oe=this.nextToken;if(Oe&&this.content(Oe)==="|")return this.position++,this.namespace();var Ke=this.currToken;this.newNode(new A.default({value:this.content(),source:mt(Ke),sourceIndex:Ke[M.FIELDS.START_POS]}),le),this.position++},Se.splitWord=function(le,Oe){for(var Ke=this,Ue=this.nextToken,ot=this.content();Ue&&~[W.dollar,W.caret,W.equals,W.word].indexOf(Ue[M.FIELDS.TYPE]);){this.position++;var ct=this.content();if(ot+=ct,ct.lastIndexOf("\\")===ct.length-1){var Pt=this.nextToken;Pt&&Pt[M.FIELDS.TYPE]===W.space&&(ot+=this.requiredSpace(this.content(Pt)),this.position++)}Ue=this.nextToken}var Ut=Zt(ot,".").filter(function(Jr){var Ea=ot[Jr-1]==="\\",Ua=/^\d+\.\d+%$/.test(ot);return!Ea&&!Ua}),ur=Zt(ot,"#").filter(function(Jr){return ot[Jr-1]!=="\\"}),kr=Zt(ot,"#{");kr.length&&(ur=ur.filter(function(Jr){return!~kr.indexOf(Jr)}));var ir=(0,q.default)(pt([0].concat(Ut,ur)));ir.forEach(function(Jr,Ea){var Ua=ir[Ea+1]||ot.length,da=ot.slice(Jr,Ua);if(Ea===0&&Oe)return Oe.call(Ke,da,ir.length);var Rt,ja=Ke.currToken,va=ja[M.FIELDS.START_POS]+ir[Ea],Dt=Qt(ja[1],ja[2]+Jr,ja[3],ja[2]+(Ua-1));if(~Ut.indexOf(Jr)){var on={value:da.slice(1),source:Dt,sourceIndex:va};Rt=new d.default(ne(on,"value"))}else if(~ur.indexOf(Jr)){var rt={value:da.slice(1),source:Dt,sourceIndex:va};Rt=new y.default(ne(rt,"value"))}else{var nt={value:da,source:Dt,sourceIndex:va};ne(nt,"value"),Rt=new b.default(nt)}Ke.newNode(Rt,le),le=null}),this.position++},Se.word=function(le){var Oe=this.nextToken;return Oe&&this.content(Oe)==="|"?(this.position++,this.namespace()):this.splitWord(le)},Se.loop=function(){for(;this.position<this.tokens.length;)this.parse(!0);return this.current._inferEndPosition(),this.root},Se.parse=function(le){switch(this.currToken[M.FIELDS.TYPE]){case W.space:this.space();break;case W.comment:this.comment();break;case W.openParenthesis:this.parentheses();break;case W.closeParenthesis:le&&this.missingParenthesis();break;case W.openSquare:this.attribute();break;case W.dollar:case W.caret:case W.equals:case W.word:this.word();break;case W.colon:this.pseudo();break;case W.comma:this.comma();break;case W.asterisk:this.universal();break;case W.ampersand:this.nesting();break;case W.slash:case W.combinator:this.combinator();break;case W.str:this.string();break;case W.closeSquare:this.missingSquareBracket();case W.semicolon:this.missingBackslash();default:this.unexpected()}},Se.expected=function(le,Oe,Ke){if(Array.isArray(le)){var Ue=le.pop();le=le.join(", ")+" or "+Ue}var ot=/^[aeiou]/.test(le[0])?"an":"a";return Ke?this.error("Expected "+ot+" "+le+', found "'+Ke+'" instead.',{index:Oe}):this.error("Expected "+ot+" "+le+".",{index:Oe})},Se.requiredSpace=function(le){return this.options.lossy?" ":le},Se.optionalSpace=function(le){return this.options.lossy?"":le},Se.lossySpace=function(le,Oe){return this.options.lossy?Oe?" ":"":le},Se.parseParenthesisToken=function(le){var Oe=this.content(le);return le[M.FIELDS.TYPE]===W.space?this.requiredSpace(Oe):Oe},Se.newNode=function(le,Oe){return Oe&&(/^ +$/.test(Oe)&&(this.options.lossy||(this.spaces=(this.spaces||"")+Oe),Oe=!0),le.namespace=Oe,ne(le,"namespace")),this.spaces&&(le.spaces.before=this.spaces,this.spaces=""),this.current.append(le)},Se.content=function(le){return le===void 0&&(le=this.currToken),this.css.slice(le[M.FIELDS.START_POS],le[M.FIELDS.END_POS])},Se.locateNextMeaningfulToken=function(le){le===void 0&&(le=this.position+1);for(var Oe=le;Oe<this.tokens.length;)if(se[this.tokens[Oe][M.FIELDS.TYPE]]){Oe++;continue}else return Oe;return-1},Ae(ht,[{key:"currToken",get:function(){return this.tokens[this.position]}},{key:"nextToken",get:function(){return this.tokens[this.position+1]}},{key:"prevToken",get:function(){return this.tokens[this.position-1]}}]),ht}();t.default=bt,n.exports=t.default})(mD,mD.exports);var FTt=mD.exports;(function(n,t){t.__esModule=!0,t.default=void 0;var a=i(FTt);function i(p){return p&&p.__esModule?p:{default:p}}var d=function(){function p(b,v){this.func=b||function(){},this.funcRes=null,this.options=v}var y=p.prototype;return y._shouldUpdateSelector=function(v,E){E===void 0&&(E={});var S=Object.assign({},this.options,E);return S.updateSelector===!1?!1:typeof v!="string"},y._isLossy=function(v){v===void 0&&(v={});var E=Object.assign({},this.options,v);return E.lossless===!1},y._root=function(v,E){E===void 0&&(E={});var S=new a.default(v,this._parseOptions(E));return S.root},y._parseOptions=function(v){return{lossy:this._isLossy(v)}},y._run=function(v,E){var S=this;return E===void 0&&(E={}),new Promise(function(A,_){try{var C=S._root(v,E);Promise.resolve(S.func(C)).then(function(q){var M=void 0;return S._shouldUpdateSelector(v,E)&&(M=C.toString(),v.selector=M),{transform:q,root:C,string:M}}).then(A,_)}catch(q){_(q);return}})},y._runSync=function(v,E){E===void 0&&(E={});var S=this._root(v,E),A=this.func(S);if(A&&typeof A.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var _=void 0;return E.updateSelector&&typeof v!="string"&&(_=S.toString(),v.selector=_),{transform:A,root:S,string:_}},y.ast=function(v,E){return this._run(v,E).then(function(S){return S.root})},y.astSync=function(v,E){return this._runSync(v,E).root},y.transform=function(v,E){return this._run(v,E).then(function(S){return S.transform})},y.transformSync=function(v,E){return this._runSync(v,E).transform},y.process=function(v,E){return this._run(v,E).then(function(S){return S.string||S.root.toString()})},y.processSync=function(v,E){var S=this._runSync(v,E);return S.string||S.root.toString()},p}();t.default=d,n.exports=t.default})(hD,hD.exports);var $Tt=hD.exports,wbe={},Ga={};Ga.__esModule=!0;Ga.universal=Ga.tag=Ga.string=Ga.selector=Ga.root=Ga.pseudo=Ga.nesting=Ga.id=Ga.comment=Ga.combinator=Ga.className=Ga.attribute=void 0;var qTt=Ni(PB),UTt=Ni(hbe),VTt=Ni(Rbe),WTt=Ni(mbe),GTt=Ni(ybe),KTt=Ni(Ebe),HTt=Ni(bbe),zTt=Ni(pbe),XTt=Ni(fbe),JTt=Ni(vbe),YTt=Ni(gbe),QTt=Ni(xbe);function Ni(n){return n&&n.__esModule?n:{default:n}}var ZTt=function(t){return new qTt.default(t)};Ga.attribute=ZTt;var e3t=function(t){return new UTt.default(t)};Ga.className=e3t;var t3t=function(t){return new VTt.default(t)};Ga.combinator=t3t;var r3t=function(t){return new WTt.default(t)};Ga.comment=r3t;var a3t=function(t){return new GTt.default(t)};Ga.id=a3t;var n3t=function(t){return new KTt.default(t)};Ga.nesting=n3t;var s3t=function(t){return new HTt.default(t)};Ga.pseudo=s3t;var i3t=function(t){return new zTt.default(t)};Ga.root=i3t;var o3t=function(t){return new XTt.default(t)};Ga.selector=o3t;var l3t=function(t){return new JTt.default(t)};Ga.string=l3t;var u3t=function(t){return new YTt.default(t)};Ga.tag=u3t;var c3t=function(t){return new QTt.default(t)};Ga.universal=c3t;var Ia={};Ia.__esModule=!0;Ia.isComment=Ia.isCombinator=Ia.isClassName=Ia.isAttribute=void 0;Ia.isContainer=E3t;Ia.isIdentifier=void 0;Ia.isNamespace=S3t;Ia.isNesting=void 0;Ia.isNode=AB;Ia.isPseudo=void 0;Ia.isPseudoClass=R3t;Ia.isPseudoElement=Ibe;Ia.isUniversal=Ia.isTag=Ia.isString=Ia.isSelector=Ia.isRoot=void 0;var Qa=aa,qs,d3t=(qs={},qs[Qa.ATTRIBUTE]=!0,qs[Qa.CLASS]=!0,qs[Qa.COMBINATOR]=!0,qs[Qa.COMMENT]=!0,qs[Qa.ID]=!0,qs[Qa.NESTING]=!0,qs[Qa.PSEUDO]=!0,qs[Qa.ROOT]=!0,qs[Qa.SELECTOR]=!0,qs[Qa.STRING]=!0,qs[Qa.TAG]=!0,qs[Qa.UNIVERSAL]=!0,qs);function AB(n){return typeof n=="object"&&d3t[n.type]}function ki(n,t){return AB(t)&&t.type===n}var Pbe=ki.bind(null,Qa.ATTRIBUTE);Ia.isAttribute=Pbe;var p3t=ki.bind(null,Qa.CLASS);Ia.isClassName=p3t;var f3t=ki.bind(null,Qa.COMBINATOR);Ia.isCombinator=f3t;var h3t=ki.bind(null,Qa.COMMENT);Ia.isComment=h3t;var m3t=ki.bind(null,Qa.ID);Ia.isIdentifier=m3t;var y3t=ki.bind(null,Qa.NESTING);Ia.isNesting=y3t;var IB=ki.bind(null,Qa.PSEUDO);Ia.isPseudo=IB;var g3t=ki.bind(null,Qa.ROOT);Ia.isRoot=g3t;var v3t=ki.bind(null,Qa.SELECTOR);Ia.isSelector=v3t;var b3t=ki.bind(null,Qa.STRING);Ia.isString=b3t;var Abe=ki.bind(null,Qa.TAG);Ia.isTag=Abe;var x3t=ki.bind(null,Qa.UNIVERSAL);Ia.isUniversal=x3t;function Ibe(n){return IB(n)&&n.value&&(n.value.startsWith("::")||n.value.toLowerCase()===":before"||n.value.toLowerCase()===":after"||n.value.toLowerCase()===":first-letter"||n.value.toLowerCase()===":first-line")}function R3t(n){return IB(n)&&!Ibe(n)}function E3t(n){return!!(AB(n)&&n.walk)}function S3t(n){return Pbe(n)||Abe(n)}(function(n){n.__esModule=!0;var t=aa;Object.keys(t).forEach(function(d){d==="default"||d==="__esModule"||d in n&&n[d]===t[d]||(n[d]=t[d])});var a=Ga;Object.keys(a).forEach(function(d){d==="default"||d==="__esModule"||d in n&&n[d]===a[d]||(n[d]=a[d])});var i=Ia;Object.keys(i).forEach(function(d){d==="default"||d==="__esModule"||d in n&&n[d]===i[d]||(n[d]=i[d])})})(wbe);(function(n,t){t.__esModule=!0,t.default=void 0;var a=y($Tt),i=p(wbe);function d(E){if(typeof WeakMap!="function")return null;var S=new WeakMap,A=new WeakMap;return(d=function(C){return C?A:S})(E)}function p(E,S){if(E&&E.__esModule)return E;if(E===null||typeof E!="object"&&typeof E!="function")return{default:E};var A=d(S);if(A&&A.has(E))return A.get(E);var _={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var q in E)if(q!=="default"&&Object.prototype.hasOwnProperty.call(E,q)){var M=C?Object.getOwnPropertyDescriptor(E,q):null;M&&(M.get||M.set)?Object.defineProperty(_,q,M):_[q]=E[q]}return _.default=E,A&&A.set(E,_),_}function y(E){return E&&E.__esModule?E:{default:E}}var b=function(S){return new a.default(S)};Object.assign(b,i),delete b.__esModule;var v=b;t.default=v,n.exports=t.default})(qme,qme.exports);var wx={},CB={},Ume="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");CB.encode=function(n){if(0<=n&&n<Ume.length)return Ume[n];throw new TypeError("Must be between 0 and 63: "+n)};CB.decode=function(n){var t=65,a=90,i=97,d=122,p=48,y=57,b=43,v=47,E=26,S=52;return t<=n&&n<=a?n-t:i<=n&&n<=d?n-i+E:p<=n&&n<=y?n-p+S:n==b?62:n==v?63:-1};var Cbe=CB,jB=5,jbe=1<<jB,Obe=jbe-1,_be=jbe;function T3t(n){return n<0?(-n<<1)+1:(n<<1)+0}function w3t(n){var t=(n&1)===1,a=n>>1;return t?-a:a}wx.encode=function(t){var a="",i,d=T3t(t);do i=d&Obe,d>>>=jB,d>0&&(i|=_be),a+=Cbe.encode(i);while(d>0);return a};wx.decode=function(t,a,i){var d=t.length,p=0,y=0,b,v;do{if(a>=d)throw new Error("Expected more digits in base 64 VLQ value.");if(v=Cbe.decode(t.charCodeAt(a++)),v===-1)throw new Error("Invalid base64 digit: "+t.charAt(a-1));b=!!(v&_be),v&=Obe,p=p+(v<<y),y+=jB}while(b);i.value=w3t(p),i.rest=a};var rg={};(function(n){function t(ce,ge,Ge){if(ge in ce)return ce[ge];if(arguments.length===3)return Ge;throw new Error('"'+ge+'" is a required argument.')}n.getArg=t;var a=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,i=/^data:.+\,.+$/;function d(ce){var ge=ce.match(a);return ge?{scheme:ge[1],auth:ge[2],host:ge[3],port:ge[4],path:ge[5]}:null}n.urlParse=d;function p(ce){var ge="";return ce.scheme&&(ge+=ce.scheme+":"),ge+="//",ce.auth&&(ge+=ce.auth+"@"),ce.host&&(ge+=ce.host),ce.port&&(ge+=":"+ce.port),ce.path&&(ge+=ce.path),ge}n.urlGenerate=p;function y(ce){var ge=ce,Ge=d(ce);if(Ge){if(!Ge.path)return ce;ge=Ge.path}for(var Je=n.isAbsolute(ge),re=ge.split(/\/+/),Ae,je=0,se=re.length-1;se>=0;se--)Ae=re[se],Ae==="."?re.splice(se,1):Ae===".."?je++:je>0&&(Ae===""?(re.splice(se+1,je),je=0):(re.splice(se,2),je--));return ge=re.join("/"),ge===""&&(ge=Je?"/":"."),Ge?(Ge.path=ge,p(Ge)):ge}n.normalize=y;function b(ce,ge){ce===""&&(ce="."),ge===""&&(ge=".");var Ge=d(ge),Je=d(ce);if(Je&&(ce=Je.path||"/"),Ge&&!Ge.scheme)return Je&&(Ge.scheme=Je.scheme),p(Ge);if(Ge||ge.match(i))return ge;if(Je&&!Je.host&&!Je.path)return Je.host=ge,p(Je);var re=ge.charAt(0)==="/"?ge:y(ce.replace(/\/+$/,"")+"/"+ge);return Je?(Je.path=re,p(Je)):re}n.join=b,n.isAbsolute=function(ce){return ce.charAt(0)==="/"||a.test(ce)};function v(ce,ge){ce===""&&(ce="."),ce=ce.replace(/\/$/,"");for(var Ge=0;ge.indexOf(ce+"/")!==0;){var Je=ce.lastIndexOf("/");if(Je<0||(ce=ce.slice(0,Je),ce.match(/^([^\/]+:\/)?\/*$/)))return ge;++Ge}return Array(Ge+1).join("../")+ge.substr(ce.length+1)}n.relative=v;var E=function(){var ce=Object.create(null);return!("__proto__"in ce)}();function S(ce){return ce}function A(ce){return C(ce)?"$"+ce:ce}n.toSetString=E?S:A;function _(ce){return C(ce)?ce.slice(1):ce}n.fromSetString=E?S:_;function C(ce){if(!ce)return!1;var ge=ce.length;if(ge<9||ce.charCodeAt(ge-1)!==95||ce.charCodeAt(ge-2)!==95||ce.charCodeAt(ge-3)!==111||ce.charCodeAt(ge-4)!==116||ce.charCodeAt(ge-5)!==111||ce.charCodeAt(ge-6)!==114||ce.charCodeAt(ge-7)!==112||ce.charCodeAt(ge-8)!==95||ce.charCodeAt(ge-9)!==95)return!1;for(var Ge=ge-10;Ge>=0;Ge--)if(ce.charCodeAt(Ge)!==36)return!1;return!0}function q(ce,ge,Ge){var Je=W(ce.source,ge.source);return Je!==0||(Je=ce.originalLine-ge.originalLine,Je!==0)||(Je=ce.originalColumn-ge.originalColumn,Je!==0||Ge)||(Je=ce.generatedColumn-ge.generatedColumn,Je!==0)||(Je=ce.generatedLine-ge.generatedLine,Je!==0)?Je:W(ce.name,ge.name)}n.compareByOriginalPositions=q;function M(ce,ge,Ge){var Je=ce.generatedLine-ge.generatedLine;return Je!==0||(Je=ce.generatedColumn-ge.generatedColumn,Je!==0||Ge)||(Je=W(ce.source,ge.source),Je!==0)||(Je=ce.originalLine-ge.originalLine,Je!==0)||(Je=ce.originalColumn-ge.originalColumn,Je!==0)?Je:W(ce.name,ge.name)}n.compareByGeneratedPositionsDeflated=M;function W(ce,ge){return ce===ge?0:ce===null?1:ge===null?-1:ce>ge?1:-1}function z(ce,ge){var Ge=ce.generatedLine-ge.generatedLine;return Ge!==0||(Ge=ce.generatedColumn-ge.generatedColumn,Ge!==0)||(Ge=W(ce.source,ge.source),Ge!==0)||(Ge=ce.originalLine-ge.originalLine,Ge!==0)||(Ge=ce.originalColumn-ge.originalColumn,Ge!==0)?Ge:W(ce.name,ge.name)}n.compareByGeneratedPositionsInflated=z;function Y(ce){return JSON.parse(ce.replace(/^\)]}'[^\n]*\n/,""))}n.parseSourceMapInput=Y;function Z(ce,ge,Ge){if(ge=ge||"",ce&&(ce[ce.length-1]!=="/"&&ge[0]!=="/"&&(ce+="/"),ge=ce+ge),Ge){var Je=d(Ge);if(!Je)throw new Error("sourceMapURL could not be parsed");if(Je.path){var re=Je.path.lastIndexOf("/");re>=0&&(Je.path=Je.path.substring(0,re+1))}ge=b(p(Je),ge)}return y(ge)}n.computeSourceURL=Z})(rg);var OB={},_B=rg,NB=Object.prototype.hasOwnProperty,ad=typeof Map<"u";function Cl(){this._array=[],this._set=ad?new Map:Object.create(null)}Cl.fromArray=function(t,a){for(var i=new Cl,d=0,p=t.length;d<p;d++)i.add(t[d],a);return i};Cl.prototype.size=function(){return ad?this._set.size:Object.getOwnPropertyNames(this._set).length};Cl.prototype.add=function(t,a){var i=ad?t:_B.toSetString(t),d=ad?this.has(t):NB.call(this._set,i),p=this._array.length;(!d||a)&&this._array.push(t),d||(ad?this._set.set(t,p):this._set[i]=p)};Cl.prototype.has=function(t){if(ad)return this._set.has(t);var a=_B.toSetString(t);return NB.call(this._set,a)};Cl.prototype.indexOf=function(t){if(ad){var a=this._set.get(t);if(a>=0)return a}else{var i=_B.toSetString(t);if(NB.call(this._set,i))return this._set[i]}throw new Error('"'+t+'" is not in the set.')};Cl.prototype.at=function(t){if(t>=0&&t<this._array.length)return this._array[t];throw new Error("No element indexed by "+t)};Cl.prototype.toArray=function(){return this._array.slice()};OB.ArraySet=Cl;var Nbe={},kbe=rg;function P3t(n,t){var a=n.generatedLine,i=t.generatedLine,d=n.generatedColumn,p=t.generatedColumn;return i>a||i==a&&p>=d||kbe.compareByGeneratedPositionsInflated(n,t)<=0}function Px(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Px.prototype.unsortedForEach=function(t,a){this._array.forEach(t,a)};Px.prototype.add=function(t){P3t(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))};Px.prototype.toArray=function(){return this._sorted||(this._array.sort(kbe.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};Nbe.MappingList=Px;var Qm=wx,Rn=rg,i6=OB.ArraySet,A3t=Nbe.MappingList;function Xi(n){n||(n={}),this._file=Rn.getArg(n,"file",null),this._sourceRoot=Rn.getArg(n,"sourceRoot",null),this._skipValidation=Rn.getArg(n,"skipValidation",!1),this._sources=new i6,this._names=new i6,this._mappings=new A3t,this._sourcesContents=null}Xi.prototype._version=3;Xi.fromSourceMap=function(t){var a=t.sourceRoot,i=new Xi({file:t.file,sourceRoot:a});return t.eachMapping(function(d){var p={generated:{line:d.generatedLine,column:d.generatedColumn}};d.source!=null&&(p.source=d.source,a!=null&&(p.source=Rn.relative(a,p.source)),p.original={line:d.originalLine,column:d.originalColumn},d.name!=null&&(p.name=d.name)),i.addMapping(p)}),t.sources.forEach(function(d){var p=d;a!==null&&(p=Rn.relative(a,d)),i._sources.has(p)||i._sources.add(p);var y=t.sourceContentFor(d);y!=null&&i.setSourceContent(d,y)}),i};Xi.prototype.addMapping=function(t){var a=Rn.getArg(t,"generated"),i=Rn.getArg(t,"original",null),d=Rn.getArg(t,"source",null),p=Rn.getArg(t,"name",null);this._skipValidation||this._validateMapping(a,i,d,p),d!=null&&(d=String(d),this._sources.has(d)||this._sources.add(d)),p!=null&&(p=String(p),this._names.has(p)||this._names.add(p)),this._mappings.add({generatedLine:a.line,generatedColumn:a.column,originalLine:i!=null&&i.line,originalColumn:i!=null&&i.column,source:d,name:p})};Xi.prototype.setSourceContent=function(t,a){var i=t;this._sourceRoot!=null&&(i=Rn.relative(this._sourceRoot,i)),a!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Rn.toSetString(i)]=a):this._sourcesContents&&(delete this._sourcesContents[Rn.toSetString(i)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};Xi.prototype.applySourceMap=function(t,a,i){var d=a;if(a==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);d=t.file}var p=this._sourceRoot;p!=null&&(d=Rn.relative(p,d));var y=new i6,b=new i6;this._mappings.unsortedForEach(function(v){if(v.source===d&&v.originalLine!=null){var E=t.originalPositionFor({line:v.originalLine,column:v.originalColumn});E.source!=null&&(v.source=E.source,i!=null&&(v.source=Rn.join(i,v.source)),p!=null&&(v.source=Rn.relative(p,v.source)),v.originalLine=E.line,v.originalColumn=E.column,E.name!=null&&(v.name=E.name))}var S=v.source;S!=null&&!y.has(S)&&y.add(S);var A=v.name;A!=null&&!b.has(A)&&b.add(A)},this),this._sources=y,this._names=b,t.sources.forEach(function(v){var E=t.sourceContentFor(v);E!=null&&(i!=null&&(v=Rn.join(i,v)),p!=null&&(v=Rn.relative(p,v)),this.setSourceContent(v,E))},this)};Xi.prototype._validateMapping=function(t,a,i,d){if(a&&typeof a.line!="number"&&typeof a.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!a&&!i&&!d)){if(t&&"line"in t&&"column"in t&&a&&"line"in a&&"column"in a&&t.line>0&&t.column>=0&&a.line>0&&a.column>=0&&i)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:i,original:a,name:d}))}};Xi.prototype._serializeMappings=function(){for(var t=0,a=1,i=0,d=0,p=0,y=0,b="",v,E,S,A,_=this._mappings.toArray(),C=0,q=_.length;C<q;C++){if(E=_[C],v="",E.generatedLine!==a)for(t=0;E.generatedLine!==a;)v+=";",a++;else if(C>0){if(!Rn.compareByGeneratedPositionsInflated(E,_[C-1]))continue;v+=","}v+=Qm.encode(E.generatedColumn-t),t=E.generatedColumn,E.source!=null&&(A=this._sources.indexOf(E.source),v+=Qm.encode(A-y),y=A,v+=Qm.encode(E.originalLine-1-d),d=E.originalLine-1,v+=Qm.encode(E.originalColumn-i),i=E.originalColumn,E.name!=null&&(S=this._names.indexOf(E.name),v+=Qm.encode(S-p),p=S)),b+=v}return b};Xi.prototype._generateSourcesContent=function(t,a){return t.map(function(i){if(!this._sourcesContents)return null;a!=null&&(i=Rn.relative(a,i));var d=Rn.toSetString(i);return Object.prototype.hasOwnProperty.call(this._sourcesContents,d)?this._sourcesContents[d]:null},this)};Xi.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};Xi.prototype.toString=function(){return JSON.stringify(this.toJSON())};var Dbe={};(function(n){n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2;function t(a,i,d,p,y,b){var v=Math.floor((i-a)/2)+a,E=y(d,p[v],!0);return E===0?v:E>0?i-v>1?t(v,i,d,p,y,b):b==n.LEAST_UPPER_BOUND?i<p.length?i:-1:v:v-a>1?t(a,v,d,p,y,b):b==n.LEAST_UPPER_BOUND?v:a<0?-1:a}n.search=function(i,d,p,y){if(d.length===0)return-1;var b=t(-1,d.length,i,d,p,y||n.GREATEST_LOWER_BOUND);if(b<0)return-1;for(;b-1>=0&&p(d[b],d[b-1],!0)===0;)--b;return b}})(Dbe);var Lbe={};function lk(n,t,a){var i=n[t];n[t]=n[a],n[a]=i}function I3t(n,t){return Math.round(n+Math.random()*(t-n))}function DD(n,t,a,i){if(a<i){var d=I3t(a,i),p=a-1;lk(n,d,i);for(var y=n[i],b=a;b<i;b++)t(n[b],y)<=0&&(p+=1,lk(n,p,b));lk(n,p+1,b);var v=p+1;DD(n,t,a,v-1),DD(n,t,v+1,i)}}Lbe.quickSort=function(n,t){DD(n,t,0,n.length-1)};var br=rg,kB=Dbe,Qp=OB.ArraySet,C3t=wx,Ny=Lbe.quickSort;function en(n,t){var a=n;return typeof n=="string"&&(a=br.parseSourceMapInput(n)),a.sections!=null?new Ao(a,t):new rs(a,t)}en.fromSourceMap=function(n,t){return rs.fromSourceMap(n,t)};en.prototype._version=3;en.prototype.__generatedMappings=null;Object.defineProperty(en.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}});en.prototype.__originalMappings=null;Object.defineProperty(en.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}});en.prototype._charIsMappingSeparator=function(t,a){var i=t.charAt(a);return i===";"||i===","};en.prototype._parseMappings=function(t,a){throw new Error("Subclasses must implement _parseMappings")};en.GENERATED_ORDER=1;en.ORIGINAL_ORDER=2;en.GREATEST_LOWER_BOUND=1;en.LEAST_UPPER_BOUND=2;en.prototype.eachMapping=function(t,a,i){var d=a||null,p=i||en.GENERATED_ORDER,y;switch(p){case en.GENERATED_ORDER:y=this._generatedMappings;break;case en.ORIGINAL_ORDER:y=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var b=this.sourceRoot;y.map(function(v){var E=v.source===null?null:this._sources.at(v.source);return E=br.computeSourceURL(b,E,this._sourceMapURL),{source:E,generatedLine:v.generatedLine,generatedColumn:v.generatedColumn,originalLine:v.originalLine,originalColumn:v.originalColumn,name:v.name===null?null:this._names.at(v.name)}},this).forEach(t,d)};en.prototype.allGeneratedPositionsFor=function(t){var a=br.getArg(t,"line"),i={source:br.getArg(t,"source"),originalLine:a,originalColumn:br.getArg(t,"column",0)};if(i.source=this._findSourceIndex(i.source),i.source<0)return[];var d=[],p=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",br.compareByOriginalPositions,kB.LEAST_UPPER_BOUND);if(p>=0){var y=this._originalMappings[p];if(t.column===void 0)for(var b=y.originalLine;y&&y.originalLine===b;)d.push({line:br.getArg(y,"generatedLine",null),column:br.getArg(y,"generatedColumn",null),lastColumn:br.getArg(y,"lastGeneratedColumn",null)}),y=this._originalMappings[++p];else for(var v=y.originalColumn;y&&y.originalLine===a&&y.originalColumn==v;)d.push({line:br.getArg(y,"generatedLine",null),column:br.getArg(y,"generatedColumn",null),lastColumn:br.getArg(y,"lastGeneratedColumn",null)}),y=this._originalMappings[++p]}return d};function rs(n,t){var a=n;typeof n=="string"&&(a=br.parseSourceMapInput(n));var i=br.getArg(a,"version"),d=br.getArg(a,"sources"),p=br.getArg(a,"names",[]),y=br.getArg(a,"sourceRoot",null),b=br.getArg(a,"sourcesContent",null),v=br.getArg(a,"mappings"),E=br.getArg(a,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);y&&(y=br.normalize(y)),d=d.map(String).map(br.normalize).map(function(S){return y&&br.isAbsolute(y)&&br.isAbsolute(S)?br.relative(y,S):S}),this._names=Qp.fromArray(p.map(String),!0),this._sources=Qp.fromArray(d,!0),this._absoluteSources=this._sources.toArray().map(function(S){return br.computeSourceURL(y,S,t)}),this.sourceRoot=y,this.sourcesContent=b,this._mappings=v,this._sourceMapURL=t,this.file=E}rs.prototype=Object.create(en.prototype);rs.prototype.consumer=en;rs.prototype._findSourceIndex=function(n){var t=n;if(this.sourceRoot!=null&&(t=br.relative(this.sourceRoot,t)),this._sources.has(t))return this._sources.indexOf(t);var a;for(a=0;a<this._absoluteSources.length;++a)if(this._absoluteSources[a]==n)return a;return-1};rs.fromSourceMap=function(t,a){var i=Object.create(rs.prototype),d=i._names=Qp.fromArray(t._names.toArray(),!0),p=i._sources=Qp.fromArray(t._sources.toArray(),!0);i.sourceRoot=t._sourceRoot,i.sourcesContent=t._generateSourcesContent(i._sources.toArray(),i.sourceRoot),i.file=t._file,i._sourceMapURL=a,i._absoluteSources=i._sources.toArray().map(function(C){return br.computeSourceURL(i.sourceRoot,C,a)});for(var y=t._mappings.toArray().slice(),b=i.__generatedMappings=[],v=i.__originalMappings=[],E=0,S=y.length;E<S;E++){var A=y[E],_=new Mbe;_.generatedLine=A.generatedLine,_.generatedColumn=A.generatedColumn,A.source&&(_.source=p.indexOf(A.source),_.originalLine=A.originalLine,_.originalColumn=A.originalColumn,A.name&&(_.name=d.indexOf(A.name)),v.push(_)),b.push(_)}return Ny(i.__originalMappings,br.compareByOriginalPositions),i};rs.prototype._version=3;Object.defineProperty(rs.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function Mbe(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}rs.prototype._parseMappings=function(t,a){for(var i=1,d=0,p=0,y=0,b=0,v=0,E=t.length,S=0,A={},_={},C=[],q=[],M,W,z,Y,Z;S<E;)if(t.charAt(S)===";")i++,S++,d=0;else if(t.charAt(S)===",")S++;else{for(M=new Mbe,M.generatedLine=i,Y=S;Y<E&&!this._charIsMappingSeparator(t,Y);Y++);if(W=t.slice(S,Y),z=A[W],z)S+=W.length;else{for(z=[];S<Y;)C3t.decode(t,S,_),Z=_.value,S=_.rest,z.push(Z);if(z.length===2)throw new Error("Found a source, but no line and column");if(z.length===3)throw new Error("Found a source and line, but no column");A[W]=z}M.generatedColumn=d+z[0],d=M.generatedColumn,z.length>1&&(M.source=b+z[1],b+=z[1],M.originalLine=p+z[2],p=M.originalLine,M.originalLine+=1,M.originalColumn=y+z[3],y=M.originalColumn,z.length>4&&(M.name=v+z[4],v+=z[4])),q.push(M),typeof M.originalLine=="number"&&C.push(M)}Ny(q,br.compareByGeneratedPositionsDeflated),this.__generatedMappings=q,Ny(C,br.compareByOriginalPositions),this.__originalMappings=C};rs.prototype._findMapping=function(t,a,i,d,p,y){if(t[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+t[i]);if(t[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+t[d]);return kB.search(t,a,p,y)};rs.prototype.computeColumnSpans=function(){for(var t=0;t<this._generatedMappings.length;++t){var a=this._generatedMappings[t];if(t+1<this._generatedMappings.length){var i=this._generatedMappings[t+1];if(a.generatedLine===i.generatedLine){a.lastGeneratedColumn=i.generatedColumn-1;continue}}a.lastGeneratedColumn=1/0}};rs.prototype.originalPositionFor=function(t){var a={generatedLine:br.getArg(t,"line"),generatedColumn:br.getArg(t,"column")},i=this._findMapping(a,this._generatedMappings,"generatedLine","generatedColumn",br.compareByGeneratedPositionsDeflated,br.getArg(t,"bias",en.GREATEST_LOWER_BOUND));if(i>=0){var d=this._generatedMappings[i];if(d.generatedLine===a.generatedLine){var p=br.getArg(d,"source",null);p!==null&&(p=this._sources.at(p),p=br.computeSourceURL(this.sourceRoot,p,this._sourceMapURL));var y=br.getArg(d,"name",null);return y!==null&&(y=this._names.at(y)),{source:p,line:br.getArg(d,"originalLine",null),column:br.getArg(d,"originalColumn",null),name:y}}}return{source:null,line:null,column:null,name:null}};rs.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1};rs.prototype.sourceContentFor=function(t,a){if(!this.sourcesContent)return null;var i=this._findSourceIndex(t);if(i>=0)return this.sourcesContent[i];var d=t;this.sourceRoot!=null&&(d=br.relative(this.sourceRoot,d));var p;if(this.sourceRoot!=null&&(p=br.urlParse(this.sourceRoot))){var y=d.replace(/^file:\/\//,"");if(p.scheme=="file"&&this._sources.has(y))return this.sourcesContent[this._sources.indexOf(y)];if((!p.path||p.path=="/")&&this._sources.has("/"+d))return this.sourcesContent[this._sources.indexOf("/"+d)]}if(a)return null;throw new Error('"'+d+'" is not in the SourceMap.')};rs.prototype.generatedPositionFor=function(t){var a=br.getArg(t,"source");if(a=this._findSourceIndex(a),a<0)return{line:null,column:null,lastColumn:null};var i={source:a,originalLine:br.getArg(t,"line"),originalColumn:br.getArg(t,"column")},d=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",br.compareByOriginalPositions,br.getArg(t,"bias",en.GREATEST_LOWER_BOUND));if(d>=0){var p=this._originalMappings[d];if(p.source===i.source)return{line:br.getArg(p,"generatedLine",null),column:br.getArg(p,"generatedColumn",null),lastColumn:br.getArg(p,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};function Ao(n,t){var a=n;typeof n=="string"&&(a=br.parseSourceMapInput(n));var i=br.getArg(a,"version"),d=br.getArg(a,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new Qp,this._names=new Qp;var p={line:-1,column:0};this._sections=d.map(function(y){if(y.url)throw new Error("Support for url field in sections not implemented.");var b=br.getArg(y,"offset"),v=br.getArg(b,"line"),E=br.getArg(b,"column");if(v<p.line||v===p.line&&E<p.column)throw new Error("Section offsets must be ordered and non-overlapping.");return p=b,{generatedOffset:{generatedLine:v+1,generatedColumn:E+1},consumer:new en(br.getArg(y,"map"),t)}})}Ao.prototype=Object.create(en.prototype);Ao.prototype.constructor=en;Ao.prototype._version=3;Object.defineProperty(Ao.prototype,"sources",{get:function(){for(var n=[],t=0;t<this._sections.length;t++)for(var a=0;a<this._sections[t].consumer.sources.length;a++)n.push(this._sections[t].consumer.sources[a]);return n}});Ao.prototype.originalPositionFor=function(t){var a={generatedLine:br.getArg(t,"line"),generatedColumn:br.getArg(t,"column")},i=kB.search(a,this._sections,function(p,y){var b=p.generatedLine-y.generatedOffset.generatedLine;return b||p.generatedColumn-y.generatedOffset.generatedColumn}),d=this._sections[i];return d?d.consumer.originalPositionFor({line:a.generatedLine-(d.generatedOffset.generatedLine-1),column:a.generatedColumn-(d.generatedOffset.generatedLine===a.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:t.bias}):{source:null,line:null,column:null,name:null}};Ao.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(t){return t.consumer.hasContentsOfAllSources()})};Ao.prototype.sourceContentFor=function(t,a){for(var i=0;i<this._sections.length;i++){var d=this._sections[i],p=d.consumer.sourceContentFor(t,!0);if(p)return p}if(a)return null;throw new Error('"'+t+'" is not in the SourceMap.')};Ao.prototype.generatedPositionFor=function(t){for(var a=0;a<this._sections.length;a++){var i=this._sections[a];if(i.consumer._findSourceIndex(br.getArg(t,"source"))!==-1){var d=i.consumer.generatedPositionFor(t);if(d){var p={line:d.line+(i.generatedOffset.generatedLine-1),column:d.column+(i.generatedOffset.generatedLine===d.line?i.generatedOffset.generatedColumn-1:0)};return p}}}return{line:null,column:null}};Ao.prototype._parseMappings=function(t,a){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var d=this._sections[i],p=d.consumer._generatedMappings,y=0;y<p.length;y++){var b=p[y],v=d.consumer._sources.at(b.source);v=br.computeSourceURL(d.consumer.sourceRoot,v,this._sourceMapURL),this._sources.add(v),v=this._sources.indexOf(v);var E=null;b.name&&(E=d.consumer._names.at(b.name),this._names.add(E),E=this._names.indexOf(E));var S={source:v,generatedLine:b.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:b.generatedColumn+(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),originalLine:b.originalLine,originalColumn:b.originalColumn,name:E};this.__generatedMappings.push(S),typeof S.originalLine=="number"&&this.__originalMappings.push(S)}Ny(this.__generatedMappings,br.compareByGeneratedPositionsDeflated),Ny(this.__originalMappings,br.compareByOriginalPositions)};const Su="Unknown";function j3t(n,t){switch(n.type){case"StringLiteral":case"NumericLiteral":return String(n.value);case"Identifier":if(!t)return n.name}}function Vme(n){return n.filter(t=>!!t).join(", ")}function O3t(n){return n.type.endsWith("Literal")}function a2(n){return n.length>1?`[${n.join(", ")}]`:n[0]}function _3t(n){return n.type==="ImportSpecifier"?n.imported.type==="Identifier"?n.imported.name:n.imported.value:n.type==="ImportNamespaceSpecifier"?"*":"default"}function od(n){return n.type==="Identifier"?n.name:n.type==="StringLiteral"?n.value:null}const N3t=(Iy.posix||Iy).normalize,k3t=/\\/g;function Bbe(n){return N3t(n.replace(k3t,"/"))}const py=(Iy.posix||Iy).join,D3t=/[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~\-]/;function L3t(n){return D3t.test(n)?JSON.stringify(n):n}const Wme="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",M3t=new Uint8Array(64),B3t=new Uint8Array(128);for(let n=0;n<Wme.length;n++){const t=Wme.charCodeAt(n);M3t[n]=t,B3t[t]=n}function Gme(n,t,a=!1){const i=[];return(!t||!t.some(d=>d==="importAssertions"||d==="importAttributes"||es(d)&&d[0]==="importAttributes"))&&i.push("importAttributes"),n==="jsx"||n==="tsx"||n==="mtsx"?i.push("jsx"):t&&(t=t.filter(d=>d!=="jsx")),(n==="ts"||n==="mts"||n==="tsx"||n==="mtsx")&&(i.push(["typescript",{dts:a}],"explicitResourceManagement"),(!t||!t.includes("decorators"))&&i.push("decorators-legacy")),t&&i.push(...t),i}var F3t=Object.defineProperty,$3t=Object.defineProperties,q3t=Object.getOwnPropertyDescriptors,Kme=Object.getOwnPropertySymbols,U3t=Object.prototype.hasOwnProperty,V3t=Object.prototype.propertyIsEnumerable,Hme=(n,t,a)=>t in n?F3t(n,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[t]=a,o6=(n,t)=>{for(var a in t||(t={}))U3t.call(t,a)&&Hme(n,a,t[a]);if(Kme)for(var a of Kme(t))V3t.call(t,a)&&Hme(n,a,t[a]);return n},l6=(n,t)=>$3t(n,q3t(t));class DB{constructor(t,a,i=0,d=Object.create(null),p=Object.create(null),y=Object.create(null)){this.filename=t,this.source=a,this.offset=i,this.imports=d,this.types=p,this.declares=y,this.isGenericScope=!1,this.resolvedImportSources=Object.create(null),this.exportedTypes=Object.create(null),this.exportedDeclares=Object.create(null)}}function Qn(n,t,a,i){const d=!i;if(d&&t._resolvedElements)return t._resolvedElements;const p=W3t(n,t,t._ownerScope||a||Ix(n),i);return d?t._resolvedElements=p:p}function W3t(n,t,a,i){var d,p;if(t.leadingComments&&t.leadingComments.some(y=>y.value.includes("@vue-ignore")))return{props:{}};switch(t.type){case"TSTypeLiteral":return Fbe(n,t.members,a,i);case"TSInterfaceDeclaration":return G3t(n,t,a,i);case"TSTypeAliasDeclaration":case"TSTypeAnnotation":case"TSParenthesizedType":return Qn(n,t.typeAnnotation,a,i);case"TSFunctionType":return{props:{},calls:[t]};case"TSUnionType":case"TSIntersectionType":return zme(t.types.map(y=>Qn(n,y,a,i)),t.type);case"TSMappedType":return K3t(n,t,a,i);case"TSIndexedAccessType":{const y=$be(n,t,a);return zme(y.map(b=>Qn(n,b,b._ownerScope)),"TSUnionType")}case"TSExpressionWithTypeArguments":case"TSTypeReference":{const y=MB(t);if((y==="ExtractPropTypes"||y==="ExtractPublicPropTypes")&&t.typeParameters&&((d=a.imports[y])==null?void 0:d.source)==="vue")return Qme(Qn(n,t.typeParameters.params[0],a,i),a);const b=wo(n,t,a);if(b){let v;return(b.type==="TSTypeAliasDeclaration"||b.type==="TSInterfaceDeclaration")&&b.typeParameters&&t.typeParameters&&(v=Object.create(null),b.typeParameters.params.forEach((E,S)=>{let A=i&&i[E.name];A||(A=t.typeParameters.params[S]),v[E.name]=A})),Qn(n,b,b._ownerScope,v)}else{if(typeof y=="string"){if(i&&i[y])return Qn(n,i[y],a,i);if(H3t.has(y))return z3t(n,t,y,a,i);if(y==="ReturnType"&&t.typeParameters){const v=awt(n,t.typeParameters.params[0],a);if(v)return Qn(n,v,a)}}return n.error("Unresolvable type reference or unsupported built-in utility type",t,a)}}case"TSImportType":{if(od(t.argument)==="vue"&&((p=t.qualifier)==null?void 0:p.type)==="Identifier"&&t.qualifier.name==="ExtractPropTypes"&&t.typeParameters)return Qme(Qn(n,t.typeParameters.params[0],a),a);const y=Ax(n,t.argument,a,t.argument.value),b=wo(n,t,y);if(b)return Qn(n,b,b._ownerScope);break}case"TSTypeQuery":{const y=wo(n,t,a);if(y)return Qn(n,y,y._ownerScope)}break}return n.error(`Unresolvable type: ${t.type}`,t,a)}function Fbe(n,t,a=Ix(n),i){const d={props:{}};for(const p of t)if(p.type==="TSPropertySignature"||p.type==="TSMethodSignature"){i&&(a=FB(a),a.isGenericScope=!0,Object.assign(a.types,i)),p._ownerScope=a;const y=od(p.key);if(y&&!p.computed)d.props[y]=p;else if(p.key.type==="TemplateLiteral")for(const b of LB(n,p.key,a))d.props[b]=p;else n.error("Unsupported computed key in type referenced by a macro",p.key,a)}else p.type==="TSCallSignatureDeclaration"&&(d.calls||(d.calls=[])).push(p);return d}function zme(n,t){if(n.length===1)return n[0];const a={props:{}},{props:i}=a;for(const{props:d,calls:p}of n){for(const y in d)qL(i,y)?i[y]=fy(i[y].key,{type:t,types:[i[y],d[y]]},i[y]._ownerScope,i[y].optional||d[y].optional):i[y]=d[y];p&&(a.calls||(a.calls=[])).push(...p)}return a}function fy(n,t,a,i){return{type:"TSPropertySignature",key:n,kind:"get",optional:i,typeAnnotation:{type:"TSTypeAnnotation",typeAnnotation:t},_ownerScope:a}}function G3t(n,t,a,i){const d=Fbe(n,t.body.body,t._ownerScope,i);if(t.extends)for(const p of t.extends)try{const{props:y,calls:b}=Qn(n,p,a);for(const v in y)qL(d.props,v)||(d.props[v]=y[v]);b&&(d.calls||(d.calls=[])).push(...b)}catch{n.error(`Failed to resolve extends base type. +If this previously worked in 3.2, you can instruct the compiler to ignore this extend by adding /* @vue-ignore */ before it, for example: + +interface Props extends /* @vue-ignore */ Base {} + +Note: both in 3.2 or with the ignore, the properties in the base type are treated as fallthrough attrs at runtime.`,p,a)}return d}function K3t(n,t,a,i){const d={props:{}};let p;if(t.nameType){const{name:y,constraint:b}=t.typeParameter;a=FB(a),Object.assign(a.types,l6(o6({},i),{[y]:b})),p=So(n,t.nameType,a)}else p=So(n,t.typeParameter.constraint,a);for(const y of p)d.props[y]=fy({type:"Identifier",name:y},t.typeAnnotation,a,!!t.optional);return d}function $be(n,t,a){var i,d;if(t.indexType.type==="TSNumberKeyword")return qbe(n,t.objectType,a);const{indexType:p,objectType:y}=t,b=[];let v,E;p.type==="TSStringKeyword"?(E=Qn(n,y,a),v=Object.keys(E.props)):(v=So(n,p,a),E=Qn(n,y,a));for(const S of v){const A=(d=(i=E.props[S])==null?void 0:i.typeAnnotation)==null?void 0:d.typeAnnotation;A&&(A._ownerScope=E.props[S]._ownerScope,b.push(A))}return b}function qbe(n,t,a){if(t.type==="TSArrayType")return[t.elementType];if(t.type==="TSTupleType")return t.elementTypes.map(i=>i.type==="TSNamedTupleMember"?i.elementType:i);if(t.type==="TSTypeReference"){if(MB(t)==="Array"&&t.typeParameters)return t.typeParameters.params;{const i=wo(n,t,a);if(i)return qbe(n,i,a)}}return n.error("Failed to resolve element type from target type",t,a)}function So(n,t,a){switch(t.type){case"StringLiteral":return[t.value];case"TSLiteralType":return So(n,t.literal,a);case"TSUnionType":return t.types.map(i=>So(n,i,a)).flat();case"TemplateLiteral":return LB(n,t,a);case"TSTypeReference":{const i=wo(n,t,a);if(i)return So(n,i,a);if(t.typeName.type==="Identifier"){const d=(p=0)=>So(n,t.typeParameters.params[p],a);switch(t.typeName.name){case"Extract":return d(1);case"Exclude":{const p=d(1);return d().filter(y=>!p.includes(y))}case"Uppercase":return d().map(p=>p.toUpperCase());case"Lowercase":return d().map(p=>p.toLowerCase());case"Capitalize":return d().map(ju);case"Uncapitalize":return d().map(p=>p[0].toLowerCase()+p.slice(1));default:n.error("Unsupported type when resolving index type",t.typeName,a)}}}}return n.error("Failed to resolve index type into finite keys",t,a)}function LB(n,t,a){if(!t.expressions.length)return[t.quasis[0].value.raw];const i=[],d=t.expressions[0],p=t.quasis[0],y=p?p.value.raw:"",b=So(n,d,a),v=LB(n,l6(o6({},t),{expressions:t.expressions.slice(1),quasis:p?t.quasis.slice(1):t.quasis}),a);for(const E of b)for(const S of v)i.push(y+E+S);return i}const H3t=new Set(["Partial","Required","Readonly","Pick","Omit"]);function z3t(n,t,a,i,d){const p=Qn(n,t.typeParameters.params[0],i,d);switch(a){case"Partial":{const v={props:{},calls:p.calls};return Object.keys(p.props).forEach(E=>{v.props[E]=l6(o6({},p.props[E]),{optional:!0})}),v}case"Required":{const v={props:{},calls:p.calls};return Object.keys(p.props).forEach(E=>{v.props[E]=l6(o6({},p.props[E]),{optional:!1})}),v}case"Readonly":return p;case"Pick":{const v=So(n,t.typeParameters.params[1],i),E={props:{},calls:p.calls};for(const S of v)E.props[S]=p.props[S];return E}case"Omit":const y=So(n,t.typeParameters.params[1],i),b={props:{},calls:p.calls};for(const v in p.props)y.includes(v)||(b.props[v]=p.props[v]);return b}}function wo(n,t,a,i,d=!1){const p=!(a!=null&&a.isGenericScope);if(p&&t._resolvedReference)return t._resolvedReference;const y=LD(n,a||Ix(n),i||MB(t),t,d);return p?t._resolvedReference=y:y}function LD(n,t,a,i,d){if(typeof a=="string"){if(t.imports[a])return J3t(n,i,a,t);{const p=i.type==="TSTypeQuery"?d?t.exportedDeclares:t.declares:d?t.exportedTypes:t.types;if(p[a])return p[a];{const y=X3t(n);if(y)for(const b of y){const v=i.type==="TSTypeQuery"?b.declares:b.types;if(v[a])return(n.deps||(n.deps=new Set)).add(b.filename),v[a]}}}}else{let p=LD(n,t,a[0],i,d);if(p&&(p.type!=="TSModuleDeclaration"&&(p=p._ns),p)){const y=Q3t(n,p,p._ownerScope||t);return LD(n,y,a.length>2?a.slice(1):a[a.length-1],i,!p.declare)}}}function MB(n){const t=n.type==="TSTypeReference"?n.typeName:n.type==="TSExpressionWithTypeArguments"?n.expression:n.type==="TSImportType"?n.qualifier:n.exprName;return(t==null?void 0:t.type)==="Identifier"?t.name:(t==null?void 0:t.type)==="TSQualifiedName"?Ube(t):"default"}function Ube(n){return n.type==="Identifier"?[n.name]:[...Ube(n.left),n.right.name]}function X3t(n){if(n.options.globalTypeFiles){if(!BB(n))throw new Error("[vue/compiler-sfc] globalTypeFiles requires fs access.");return n.options.globalTypeFiles.map(a=>Vbe(n,Bbe(a),!0))}}function BB(n){if(n.fs)return n.fs;const t=n.options.fs||void 0;if(t)return n.fs={fileExists(a){return a.endsWith(".vue.ts")&&(a=a.replace(/\.ts$/,"")),t.fileExists(a)},readFile(a){return a.endsWith(".vue.ts")&&(a=a.replace(/\.ts$/,"")),t.readFile(a)},realpath:t.realpath}}function J3t(n,t,a,i){const{source:d,imported:p}=i.imports[a],y=Ax(n,t,i,d);return wo(n,t,y,p,!0)}function Ax(n,t,a,i){let d;try{d=BB(n)}catch(y){return n.error(y.message,t,a)}if(!d)return n.error("No fs option provided to `compileScript` in non-Node environment. File system access is required for resolving imported types.",t,a);let p=a.resolvedImportSources[i];if(!p){if(i.startsWith("..")){const b=py(J2(a.filename),i);p=Xme(b,d)}else if(i[0]==="."){const y=py(J2(a.filename),i);p=Xme(y,d)}else return n.error("Type import from non-relative sources is not supported in the browser build.",t,a);p&&(p=a.resolvedImportSources[i]=Bbe(p))}return p?((n.deps||(n.deps=new Set)).add(p),Vbe(n,p)):n.error(`Failed to resolve import source ${JSON.stringify(i)}.`,t,a)}function Xme(n,t){n=n.replace(/\.js$/,"");const a=i=>{if(t.fileExists(i))return i};return a(n)||a(n+".ts")||a(n+".tsx")||a(n+".d.ts")||a(py(n,"index.ts"))||a(py(n,"index.tsx"))||a(py(n,"index.d.ts"))}const Jme=zM();function Vbe(n,t,a=!1){const i=Jme.get(t);if(i)return i;const p=BB(n).readFile(t)||"",y=Y3t(t,p,n.options.babelParserPlugins),b=new DB(t,p,0,Wbe(y));return $B(n,y,b,a),Jme.set(t,b),b}function Y3t(n,t,a){const i=QM(n);if(i===".ts"||i===".mts"||i===".tsx"||i===".mtsx")return $k(t,{plugins:Gme(i.slice(1),a,/\.d\.m?ts$/.test(n)),sourceType:"module"}).program.body;if(i===".vue"){const{descriptor:{script:d,scriptSetup:p}}=L8t(t);if(!d&&!p)return[];const y=d?d.loc.start.offset:1/0,b=p?p.loc.start.offset:1/0,v=y<b?d:p,E=y<b?p:d;let S=" ".repeat(Math.min(y,b))+v.content;E&&(S+=" ".repeat(E.loc.start.offset-d.loc.end.offset)+E.content);const A=(d==null?void 0:d.lang)||(p==null?void 0:p.lang);return $k(S,{plugins:Gme(A,a),sourceType:"module"}).program.body}return[]}function Ix(n){if(n.scope)return n.scope;const t="ast"in n?n.ast:n.scriptAst?[...n.scriptAst.body,...n.scriptSetupAst.body]:n.scriptSetupAst.body,a=new DB(n.filename,n.source,"startOffset"in n?n.startOffset:0,"userImports"in n?Object.create(n.userImports):Wbe(t));return $B(n,t,a),n.scope=a}function Q3t(n,t,a){if(t._resolvedChildScope)return t._resolvedChildScope;const i=FB(a);if(t.body.type==="TSModuleDeclaration"){const d=t.body;d._ownerScope=i;const p=od(d.id);i.types[p]=i.exportedTypes[p]=d}else $B(n,t.body.body,i);return t._resolvedChildScope=i}function FB(n){return new DB(n.filename,n.source,n.offset,Object.create(n.imports),Object.create(n.types),Object.create(n.declares))}const Z3t=/^Import|^Export/;function $B(n,t,a,i=!1){const{types:d,declares:p,exportedTypes:y,exportedDeclares:b,imports:v}=a,E=i?!t.some(S=>Z3t.test(S.type)):!1;for(const S of t)if(i){if(E)S.declare&&Vc(S,d,p);else if(S.type==="TSModuleDeclaration"&&S.global)for(const A of S.body.body)Vc(A,d,p)}else Vc(S,d,p);if(!i)for(const S of t)if(S.type==="ExportNamedDeclaration"){if(S.declaration)Vc(S.declaration,d,p),Vc(S.declaration,y,b);else for(const A of S.specifiers)if(A.type==="ExportSpecifier"){const _=A.local.name,C=od(A.exported);S.source?(v[C]={source:S.source.value,imported:_},y[C]={type:"TSTypeReference",typeName:{type:"Identifier",name:_},_ownerScope:a}):d[_]&&(y[C]=d[_])}}else if(S.type==="ExportAllDeclaration"){const A=Ax(n,S.source,a,S.source.value);Object.assign(a.exportedTypes,A.exportedTypes)}else S.type==="ExportDefaultDeclaration"&&S.declaration&&(S.declaration.type!=="Identifier"?(Vc(S.declaration,d,p,"default"),Vc(S.declaration,y,b,"default")):d[S.declaration.name]&&(y.default=d[S.declaration.name]));for(const S of Object.keys(d)){const A=d[S];A._ownerScope=a,A._ns&&(A._ns._ownerScope=a)}for(const S of Object.keys(p))p[S]._ownerScope=a}function Vc(n,t,a,i){switch(n.type){case"TSInterfaceDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":{const d=i||od(n.id);let p=t[d];if(p){if(n.type==="TSModuleDeclaration"){p.type==="TSModuleDeclaration"?qB(p,n):Yme(p,n);break}if(p.type==="TSModuleDeclaration"){t[d]=n,Yme(n,p);break}if(p.type!==n.type)break;n.type==="TSInterfaceDeclaration"?p.body.body.push(...n.body.body):p.members.push(...n.members)}else t[d]=n;break}case"ClassDeclaration":(i||n.id)&&(t[i||od(n.id)]=n);break;case"TSTypeAliasDeclaration":t[n.id.name]=n.typeParameters?n:n.typeAnnotation;break;case"TSDeclareFunction":n.id&&(a[n.id.name]=n);break;case"VariableDeclaration":{if(n.declare)for(const d of n.declarations)d.id.type==="Identifier"&&d.id.typeAnnotation&&(a[d.id.name]=d.id.typeAnnotation.typeAnnotation);break}}}function qB(n,t){const a=n.body,i=t.body;a.type==="TSModuleDeclaration"?i.type==="TSModuleDeclaration"?qB(a,i):i.body.push({type:"ExportNamedDeclaration",declaration:a,exportKind:"type",specifiers:[]}):i.type==="TSModuleDeclaration"?a.body.push({type:"ExportNamedDeclaration",declaration:i,exportKind:"type",specifiers:[]}):a.body.push(...i.body)}function Yme(n,t){n._ns?qB(n._ns,t):n._ns=t}function Wbe(n){const t=Object.create(null);for(const a of n)ewt(a,t);return t}function ewt(n,t){if(n.type==="ImportDeclaration")for(const a of n.specifiers)t[a.local.name]={imported:_3t(a),source:n.source.value}}function xs(n,t,a=t._ownerScope||Ix(n),i=!1){try{switch(t.type){case"TSStringKeyword":return["String"];case"TSNumberKeyword":return["Number"];case"TSBooleanKeyword":return["Boolean"];case"TSObjectKeyword":return["Object"];case"TSNullKeyword":return["null"];case"TSTypeLiteral":case"TSInterfaceDeclaration":{const d=new Set,p=t.type==="TSTypeLiteral"?t.members:t.body.body;for(const y of p)if(i)if(y.type==="TSPropertySignature"&&y.key.type==="NumericLiteral")d.add("Number");else if(y.type==="TSIndexSignature"){const b=y.parameters[0].typeAnnotation;if(b&&b.type!=="Noop"){const v=xs(n,b.typeAnnotation,a)[0];if(v===Su)return[Su];d.add(v)}}else d.add("String");else y.type==="TSCallSignatureDeclaration"||y.type==="TSConstructSignatureDeclaration"?d.add("Function"):d.add("Object");return d.size?Array.from(d):[i?Su:"Object"]}case"TSPropertySignature":if(t.typeAnnotation)return xs(n,t.typeAnnotation.typeAnnotation,a);break;case"TSMethodSignature":case"TSFunctionType":return["Function"];case"TSArrayType":case"TSTupleType":return["Array"];case"TSLiteralType":switch(t.literal.type){case"StringLiteral":return["String"];case"BooleanLiteral":return["Boolean"];case"NumericLiteral":case"BigIntLiteral":return["Number"];default:return[Su]}case"TSTypeReference":{const d=wo(n,t,a);if(d)return xs(n,d,d._ownerScope,i);if(t.typeName.type==="Identifier")if(i)switch(t.typeName.name){case"String":case"Array":case"ArrayLike":case"Parameters":case"ConstructorParameters":case"ReadonlyArray":return["String","Number"];case"Record":case"Partial":case"Required":case"Readonly":if(t.typeParameters&&t.typeParameters.params[0])return xs(n,t.typeParameters.params[0],a,!0);break;case"Pick":case"Extract":if(t.typeParameters&&t.typeParameters.params[1])return xs(n,t.typeParameters.params[1],a);break;case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":case"Error":case"Uppercase":case"Lowercase":case"Capitalize":case"Uncapitalize":case"ReadonlyMap":case"ReadonlySet":return["String"]}else switch(t.typeName.name){case"Array":case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":case"Error":return[t.typeName.name];case"Partial":case"Required":case"Readonly":case"Record":case"Pick":case"Omit":case"InstanceType":return["Object"];case"Uppercase":case"Lowercase":case"Capitalize":case"Uncapitalize":return["String"];case"Parameters":case"ConstructorParameters":case"ReadonlyArray":return["Array"];case"ReadonlyMap":return["Map"];case"ReadonlySet":return["Set"];case"NonNullable":if(t.typeParameters&&t.typeParameters.params[0])return xs(n,t.typeParameters.params[0],a).filter(p=>p!=="null");break;case"Extract":if(t.typeParameters&&t.typeParameters.params[1])return xs(n,t.typeParameters.params[1],a);break;case"Exclude":case"OmitThisParameter":if(t.typeParameters&&t.typeParameters.params[0])return xs(n,t.typeParameters.params[0],a);break}break}case"TSParenthesizedType":return xs(n,t.typeAnnotation,a);case"TSUnionType":return uk(n,t.types,a,i);case"TSIntersectionType":return uk(n,t.types,a,i).filter(d=>d!==Su);case"TSEnumDeclaration":return twt(t);case"TSSymbolKeyword":return["Symbol"];case"TSIndexedAccessType":{const d=$be(n,t,a);return uk(n,d,a,i)}case"ClassDeclaration":return["Object"];case"TSImportType":{const d=Ax(n,t.argument,a,t.argument.value),p=wo(n,t,d);if(p)return xs(n,p,p._ownerScope);break}case"TSTypeQuery":{const d=t.exprName;if(d.type==="Identifier"){const p=a.declares[d.name];if(p)return xs(n,p,p._ownerScope,i)}break}case"TSTypeOperator":return xs(n,t.typeAnnotation,a,t.operator==="keyof");case"TSAnyKeyword":{if(i)return["String","Number","Symbol"];break}}}catch{}return[Su]}function uk(n,t,a,i=!1){return t.length===1?xs(n,t[0],a,i):[...new Set([].concat(...t.map(d=>xs(n,d,a,i))))]}function twt(n){const t=new Set;for(const a of n.members)if(a.initializer)switch(a.initializer.type){case"StringLiteral":t.add("String");break;case"NumericLiteral":t.add("Number");break}return t.size?[...t]:["Number"]}function Qme({props:n},t){const a={props:{}};for(const i in n){const d=n[i];a.props[i]=MD(d.key,d.typeAnnotation.typeAnnotation,t)}return a}function MD(n,t,a,i=!0,d=!0){if(d&&t.type==="TSTypeLiteral"){const p=Zme(t,"type");if(p){const y=Zme(t,"required"),b=y&&y.type==="TSLiteralType"&&y.literal.type==="BooleanLiteral"?!y.literal.value:!0;return MD(n,p,a,b,!1)}}else if(t.type==="TSTypeReference"&&t.typeName.type==="Identifier"){if(t.typeName.name.endsWith("Constructor"))return fy(n,rwt(t.typeName.name),a,i);if(t.typeName.name==="PropType"&&t.typeParameters)return fy(n,t.typeParameters.params[0],a,i)}if((t.type==="TSTypeReference"||t.type==="TSImportType")&&t.typeParameters)for(const p of t.typeParameters.params){const y=MD(n,p,a,i);if(y)return y}return fy(n,{type:"TSNullKeyword"},a,i)}function rwt(n){const t=n.slice(0,-11);switch(t){case"String":case"Number":case"Boolean":return{type:`TS${t}Keyword`};case"Array":case"Function":case"Object":case"Set":case"Map":case"WeakSet":case"WeakMap":case"Date":case"Promise":return{type:"TSTypeReference",typeName:{type:"Identifier",name:t}}}return{type:"TSNullKeyword"}}function Zme(n,t){const a=n.members.find(i=>i.type==="TSPropertySignature"&&!i.computed&&od(i.key)===t&&i.typeAnnotation);return a&&a.typeAnnotation.typeAnnotation}function awt(n,t,a){var i;let d=t;if((t.type==="TSTypeReference"||t.type==="TSTypeQuery"||t.type==="TSImportType")&&(d=wo(n,t,a)),!!d){if(d.type==="TSFunctionType")return(i=d.typeAnnotation)==null?void 0:i.typeAnnotation;if(d.type==="TSDeclareFunction")return d.returnType}}function Gbe(n,t,a){if(t.type==="TSTypeReference"){const d=wo(n,t,a);d&&(t=d)}let i;return t.type==="TSUnionType"?i=t.types.flatMap(d=>Gbe(n,d,a)):i=[t],i}function nwt(n){const t=swt(n,n.propsTypeDecl);if(!t.length)return;const a=[],i=owt(n);for(const p of t)a.push(iwt(n,p,i)),"bindingMetadata"in n&&!(p.key in n.bindingMetadata)&&(n.bindingMetadata[p.key]="props");let d=`{ + ${a.join(`, + `)} + }`;return n.propsRuntimeDefaults&&!i&&(d=`/*@__PURE__*/${n.helper("mergeDefaults")}(${d}, ${n.getString(n.propsRuntimeDefaults)})`),d}function swt(n,t){const a=[],i=Qn(n,t);for(const d in i.props){const p=i.props[d];let y=xs(n,p),b=!1;y.includes(Su)&&(y.includes("Boolean")||y.includes("Function")?(y=y.filter(v=>v!==Su),b=!0):y=["null"]),a.push({key:d,required:!p.optional,type:y||["null"],skipCheck:b})}return a}function iwt(n,{key:t,required:a,type:i,skipCheck:d},p){let y;const b=lwt(n,t,i);if(b)y=`default: ${b.valueString}${b.needSkipFactory?", skipFactory: true":""}`;else if(p){const E=n.propsRuntimeDefaults.properties.find(S=>S.type==="SpreadElement"?!1:j3t(S.key,S.computed)===t);E&&(E.type==="ObjectProperty"?y=`default: ${n.getString(E.value)}`:y=`${E.async?"async ":""}${E.kind!=="method"?`${E.kind} `:""}default() ${n.getString(E.body)}`)}const v=L3t(t);return n.options.isProd?i.some(E=>E==="Boolean"||(!p||y)&&E==="Function")?`${v}: { ${Vme([`type: ${a2(i)}`,y])} }`:n.isCE?y?`${v}: ${`{ ${y}, type: ${a2(i)} }`}`:`${v}: {type: ${a2(i)}}`:`${v}: ${y?`{ ${y} }`:"{}"}`:`${v}: { ${Vme([`type: ${a2(i)}`,`required: ${a}`,d&&"skipCheck: true",y])} }`}function owt(n){return!!(n.propsRuntimeDefaults&&n.propsRuntimeDefaults.type==="ObjectExpression"&&n.propsRuntimeDefaults.properties.every(t=>t.type!=="SpreadElement"&&(!t.computed||t.key.type.endsWith("Literal"))))}function lwt(n,t,a){const i=n.propsDestructuredBindings[t],d=i&&i.default;if(d){const p=n.getString(d),y=Yy(d);if(a&&a.length&&!a.includes("null")){const E=uwt(y);E&&!a.includes(E)&&n.error(`Default value of prop "${t}" does not match declared type.`,y)}const b=!a&&(hM(y)||y.type==="Identifier");return{valueString:!b&&!O3t(y)&&!(a!=null&&a.includes("Function"))?`() => (${p})`:p,needSkipFactory:b}}}function uwt(n){switch(n.type){case"StringLiteral":return"String";case"NumericLiteral":return"Number";case"BooleanLiteral":return"Boolean";case"ObjectExpression":return"Object";case"ArrayExpression":return"Array";case"FunctionExpression":case"ArrowFunctionExpression":return"Function"}}function cwt(n){const t=new Set,a=n.emitsTypeDecl;if(a.type==="TSFunctionType")return eye(n,a.parameters[0],t),t;const{props:i,calls:d}=Qn(n,a);let p=!1;for(const y in i)t.add(y),p=!0;if(d){p&&n.error("defineEmits() type cannot mixed call signature and property syntax.",a);for(const y of d)eye(n,y.parameters[0],t)}return t}function eye(n,t,a){if(t.type==="Identifier"&&t.typeAnnotation&&t.typeAnnotation.type==="TSTypeAnnotation"){const i=Gbe(n,t.typeAnnotation.typeAnnotation);for(const d of i)d.type==="TSLiteralType"&&d.literal.type!=="UnaryExpression"&&d.literal.type!=="TemplateLiteral"&&a.add(String(d.literal.value))}}var dwt=Object.defineProperty,tye=Object.getOwnPropertySymbols,pwt=Object.prototype.hasOwnProperty,fwt=Object.prototype.propertyIsEnumerable,rye=(n,t,a)=>t in n?dwt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[t]=a,aye=(n,t)=>{for(var a in t||(t={}))pwt.call(t,a)&&rye(n,a,t[a]);if(tye)for(var a of tye(t))fwt.call(t,a)&&rye(n,a,t[a]);return n};aye(aye({},QL),WM);var hwt=dge(({types:n},t)=>{let a,i;return{name:"babel-plugin-resolve-type",pre(b){const v=b.opts.filename||"unknown.js";i=new Set,a={filename:v,source:b.code,options:t,ast:b.ast.program.body,isCE:!1,error(E,S){throw new Error(`[@vue/babel-plugin-resolve-type] ${E} + +${v} +${vvt(b.code,{start:{line:S.loc.start.line,column:S.loc.start.column+1},end:{line:S.loc.end.line,column:S.loc.end.column+1}})}`)},helper(E){return i.add(E),`_${E}`},getString(E){return b.code.slice(E.start,E.end)},propsTypeDecl:void 0,propsRuntimeDefaults:void 0,propsDestructuredBindings:{},emitsTypeDecl:void 0}},visitor:{CallExpression(b){if(!a)throw new Error("[@vue/babel-plugin-resolve-type] context is not loaded.");const{node:v}=b;if(!n.isIdentifier(v.callee,{name:"defineComponent"})||!nye(b))return;const E=v.arguments[0];if(!E||!n.isFunction(E))return;let S=v.arguments[1];S||(S=n.objectExpression([]),v.arguments.push(S)),v.arguments[1]=p(E,S)||S,v.arguments[1]=y(E,v.arguments[1])||S},VariableDeclarator(b){d(b)}},post(b){for(const v of i)kp.addNamed(b.path,`_${v}`,"vue")}};function d(b){var v;const E=b.get("id"),S=b.get("init");if(!E||!E.isIdentifier()||!S||!S.isCallExpression()||!((v=S.get("callee"))!=null&&v.isIdentifier({name:"defineComponent"}))||!nye(S))return;const A=n.objectProperty(n.identifier("name"),n.stringLiteral(E.node.name)),{arguments:_}=S.node;_.length!==0&&(_.length===1&&S.node.arguments.push(n.objectExpression([])),_[1]=dk(n,_[1],A))}function p(b,v){const E=b.params[0];if(!E||(E.type==="AssignmentPattern"?(a.propsTypeDecl=ck(E.left),a.propsRuntimeDefaults=E.right):a.propsTypeDecl=ck(E),!a.propsTypeDecl))return;const S=nwt(a);if(!S)return;const A=tvt(S);return dk(n,v,n.objectProperty(n.identifier("props"),A))}function y(b,v){var E;const S=b.params[1]&&ck(b.params[1]);if(!S||!n.isTSTypeReference(S)||!n.isIdentifier(S.typeName,{name:"SetupContext"}))return;const A=(E=S.typeParameters)==null?void 0:E.params[0];if(!A)return;a.emitsTypeDecl=A;const _=cwt(a),C=n.arrayExpression(Array.from(_).map(q=>n.stringLiteral(q)));return dk(n,v,n.objectProperty(n.identifier("emits"),C))}});function ck(n){if("typeAnnotation"in n&&n.typeAnnotation&&n.typeAnnotation.type==="TSTypeAnnotation")return n.typeAnnotation.typeAnnotation}function nye(n){var t;const a=(t=n.scope.getBinding("defineComponent"))==null?void 0:t.path.parent;return a?a.type==="ImportDeclaration"&&/^@?vue(\/|$)/.test(a.source.value):!0}function dk(n,t,a){if(n.isObjectExpression(t))t.properties.unshift(a);else if(n.isExpression(t))return n.objectExpression([a,n.spreadElement(t)]);return t}const mwt=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var ywt=mwt;const Kbe=fye(ywt),gwt=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"];var vwt=gwt;const Hbe=fye(vwt);var bwt=Object.defineProperty,xwt=Object.defineProperties,Rwt=Object.getOwnPropertyDescriptors,sye=Object.getOwnPropertySymbols,Ewt=Object.prototype.hasOwnProperty,Swt=Object.prototype.propertyIsEnumerable,iye=(n,t,a)=>t in n?bwt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[t]=a,n2=(n,t)=>{for(var a in t||(t={}))Ewt.call(t,a)&&iye(n,a,t[a]);if(sye)for(var a of sye(t))Swt.call(t,a)&&iye(n,a,t[a]);return n},oye=(n,t)=>xwt(n,Rwt(t)),zbe=(n=>(n[n.STABLE=1]="STABLE",n[n.DYNAMIC=2]="DYNAMIC",n[n.FORWARDED=3]="FORWARDED",n))(zbe||{}),UB=zbe,u6="Fragment",Twt="KeepAlive",Rs=(n,t)=>n.get(t)(),lye=n=>n.startsWith("v-")||n.startsWith("v")&&n.length>=2&&n[1]>="A"&&n[1]<="Z",uye=n=>!(n.match(RegExp(`^_?${u6}\\d*$`))||n===Twt),wwt=(n,t)=>{var a,i;const d=n.get("name");if(d.isJSXMemberExpression())return uye(d.node.property.name);const p=d.node.name;return!((i=(a=t.opts).isCustomElement)!=null&&i.call(a,p))&&uye(p)&&!Kbe.includes(p)&&!Hbe.includes(p)},Xbe=n=>{const t=n.node.object,a=n.node.property,i=ut.isJSXMemberExpression(t)?Xbe(n.get("object")):ut.isJSXIdentifier(t)?ut.identifier(t.name):ut.nullLiteral(),d=ut.identifier(a.name);return ut.memberExpression(i,d)},Pwt=(n,t)=>{var a,i;const d=n.get("openingElement").get("name");if(d.isJSXIdentifier()){const{name:p}=d.node;return!Kbe.includes(p)&&!Hbe.includes(p)?p===u6?Rs(t,u6):n.scope.hasBinding(p)?ut.identifier(p):(i=(a=t.opts).isCustomElement)!=null&&i.call(a,p)?ut.stringLiteral(p):ut.callExpression(Rs(t,"resolveComponent"),[ut.stringLiteral(p)]):ut.stringLiteral(p)}if(d.isJSXMemberExpression())return Xbe(d);throw new Error(`getTag: ${d.type} is not supported`)},Awt=n=>{const t=n.node.name;return ut.isJSXIdentifier(t)?t.name:`${t.namespace.name}:${t.name.name}`},Iwt=n=>{const t=Jbe(n.node.value);return t!==""?ut.stringLiteral(t):null},Jbe=n=>{const t=n.split(/\r\n|\n|\r/);let a=0;for(let d=0;d<t.length;d++)t[d].match(/[^ \t]/)&&(a=d);let i="";for(let d=0;d<t.length;d++){const p=t[d],y=d===0,b=d===t.length-1,v=d===a;let E=p.replace(/\t/g," ");y||(E=E.replace(/^[ ]+/,"")),b||(E=E.replace(/[ ]+$/,"")),E&&(v||(E+=" "),i+=E)}return i},Ybe=n=>n.get("expression").node,Cwt=n=>ut.spreadElement(n.get("expression").node),VB=(n,t,a)=>{n.scope.hasBinding(t)&&n.parentPath&&(ut.isJSXElement(n.parentPath.node)&&n.parentPath.setData("slotFlag",a),VB(n.parentPath,t,a))},pk=(n,t)=>{const{parentPath:a}=n;if(a.isAssignmentExpression()){const{left:i}=a.node;if(ut.isIdentifier(i))return t.map(d=>{if(ut.isIdentifier(d)&&d.name===i.name){const p=n.scope.generateUidIdentifier(d.name);return a.insertBefore(ut.variableDeclaration("const",[ut.variableDeclarator(p,ut.callExpression(ut.functionExpression(null,[],ut.blockStatement([ut.returnStatement(d)])),[]))])),p}return d})}return t},jwt=/^on[^a-z]/,Owt=n=>jwt.test(n),_wt=(n,t)=>{ut.isArrayExpression(n.value)?n.value.elements.push(t.value):n.value=ut.arrayExpression([n.value,t.value])},fk=(n=[],t)=>{if(!t)return n;const a=new Map,i=[];return n.forEach(d=>{if(ut.isStringLiteral(d.key)){const{value:p}=d.key,y=a.get(p);y?(p==="style"||p==="class"||p.startsWith("on"))&&_wt(y,d):(a.set(p,d),i.push(d))}else i.push(d)}),i},BD=n=>{if(ut.isIdentifier(n))return n.name==="undefined";if(ut.isArrayExpression(n)){const{elements:t}=n;return t.every(a=>a&&BD(a))}return ut.isObjectExpression(n)?n.properties.every(t=>BD(t.value)):!!ut.isLiteral(n)},Nwt=(n,t,a,i)=>{const d=t.get("argument"),p=ut.isObjectExpression(d.node)?d.node.properties:void 0;p?a?i.push(ut.objectExpression(p)):i.push(...p):(d.isIdentifier()&&VB(n,d.node.name,UB.DYNAMIC),i.push(a?d.node:ut.spreadElement(d.node)))},kwt=n=>{const t=n.get("attributes").find(a=>a.isJSXAttribute()?a.get("name").isJSXIdentifier()&&a.get("name").node.name==="type":!1);return t?t.get("value").node:null},cye=n=>ut.isArrayExpression(n)?n.elements.map(t=>ut.isStringLiteral(t)?t.value:"").filter(Boolean):[],Dwt=n=>{var t,a;const{path:i,value:d,state:p,tag:y,isComponent:b}=n,v=[],E=[],S=[];let A,_,C;if("namespace"in i.node.name)[A,_]=n.name.split(":"),A=i.node.name.namespace.name,_=i.node.name.name.name,C=_.split("_").slice(1);else{const Y=n.name.split("_");A=Y.shift()||"",C=Y}A=A.replace(/^v/,"").replace(/^-/,"").replace(/^\S/,Y=>Y.toLowerCase()),_&&v.push(ut.stringLiteral(_.split("_")[0]));const q=A==="models",M=A==="model";if(M&&!i.get("value").isJSXExpressionContainer())throw new Error("You have to use JSX Expression inside your v-model");if(q&&!b)throw new Error("v-models can only use in custom components");const W=!["html","text","model","slots","models"].includes(A)||M&&!b;let z=C;return ut.isArrayExpression(d)?(q?d.elements:[d]).forEach(Z=>{if(q&&!ut.isArrayExpression(Z))throw new Error("You should pass a Two-dimensional Arrays to v-models");const{elements:ce}=Z,[ge,Ge,Je]=ce;Ge&&!ut.isArrayExpression(Ge)&&!ut.isSpreadElement(Ge)?(v.push(Ge),z=cye(Je)):ut.isArrayExpression(Ge)?(W||v.push(ut.nullLiteral()),z=cye(Ge)):W||v.push(ut.nullLiteral()),S.push(new Set(z)),E.push(ge)}):M&&!W?(v.push(ut.nullLiteral()),S.push(new Set(C))):S.push(new Set(C)),{directiveName:A,modifiers:S,values:E.length?E:[d],args:v,directive:W?[Lwt(i,p,y,A),E[0]||d,(t=S[0])!=null&&t.size?v[0]||ut.unaryExpression("void",ut.numericLiteral(0),!0):v[0],!!((a=S[0])!=null&&a.size)&&ut.objectExpression([...S[0]].map(Y=>ut.objectProperty(ut.identifier(Y),ut.booleanLiteral(!0))))].filter(Boolean):void 0}},Lwt=(n,t,a,i)=>{if(i==="show")return Rs(t,"vShow");if(i==="model"){let d;const p=kwt(n.parentPath);switch(a.value){case"select":d=Rs(t,"vModelSelect");break;case"textarea":d=Rs(t,"vModelText");break;default:if(ut.isStringLiteral(p)||!p)switch(p==null?void 0:p.value){case"checkbox":d=Rs(t,"vModelCheckbox");break;case"radio":d=Rs(t,"vModelRadio");break;default:d=Rs(t,"vModelText")}else d=Rs(t,"vModelDynamic")}return d}return ut.callExpression(Rs(t,"resolveDirective"),[ut.stringLiteral(i)])},Mwt=Dwt,dye=/^xlink([A-Z])/,Bwt=(n,t)=>{const a=n.get("value");return a.isJSXElement()?WB(a,t):a.isStringLiteral()?ut.stringLiteral(Jbe(a.node.value)):a.isJSXExpressionContainer()?Ybe(a):null},Fwt=(n,t)=>{const a=Pwt(n,t),i=wwt(n.get("openingElement"),t),d=n.get("openingElement").get("attributes"),p=[],y=new Set;let b=null,v=0;if(d.length===0)return{tag:a,isComponent:i,slots:b,props:ut.nullLiteral(),directives:p,patchFlag:v,dynamicPropNames:y};let E=[],S=!1,A=!1,_=!1,C=!1,q=!1;const M=[],{mergeProps:W=!0}=t.opts;d.forEach(Y=>{if(Y.isJSXAttribute()){let Z=Awt(Y);const ce=Bwt(Y,t);if((!BD(ce)||Z==="ref")&&(!i&&Owt(Z)&&Z.toLowerCase()!=="onclick"&&Z!=="onUpdate:modelValue"&&(C=!0),Z==="ref"?S=!0:Z==="class"&&!i?A=!0:Z==="style"&&!i?_=!0:Z!=="key"&&!lye(Z)&&Z!=="on"&&y.add(Z)),t.opts.transformOn&&(Z==="on"||Z==="nativeOn")){t.get("transformOn")||t.set("transformOn",kp.addDefault(n,"@vue/babel-helper-vue-transform-on",{nameHint:"_transformOn"})),M.push(ut.callExpression(t.get("transformOn"),[ce||ut.booleanLiteral(!0)]));return}if(lye(Z)){const{directive:ge,modifiers:Ge,values:Je,args:re,directiveName:Ae}=Mwt({tag:a,isComponent:i,name:Z,path:Y,state:t,value:ce});if(Ae==="slots"){b=ce;return}ge?p.push(ut.arrayExpression(ge)):Ae==="html"?(E.push(ut.objectProperty(ut.stringLiteral("innerHTML"),Je[0])),y.add("innerHTML")):Ae==="text"&&(E.push(ut.objectProperty(ut.stringLiteral("textContent"),Je[0])),y.add("textContent")),["models","model"].includes(Ae)&&Je.forEach((je,se)=>{var fe;const kt=re[se],Qt=kt&&!ut.isStringLiteral(kt)&&!ut.isNullLiteral(kt);ge||(E.push(ut.objectProperty(ut.isNullLiteral(kt)?ut.stringLiteral("modelValue"):kt,je,Qt)),Qt||y.add((kt==null?void 0:kt.value)||"modelValue"),(fe=Ge[se])!=null&&fe.size&&E.push(ut.objectProperty(Qt?ut.binaryExpression("+",kt,ut.stringLiteral("Modifiers")):ut.stringLiteral(`${(kt==null?void 0:kt.value)||"model"}Modifiers`),ut.objectExpression([...Ge[se]].map(Tt=>ut.objectProperty(ut.stringLiteral(Tt),ut.booleanLiteral(!0)))),Qt)));const mt=Qt?ut.binaryExpression("+",ut.stringLiteral("onUpdate"),kt):ut.stringLiteral(`onUpdate:${(kt==null?void 0:kt.value)||"modelValue"}`);E.push(ut.objectProperty(mt,ut.arrowFunctionExpression([ut.identifier("$event")],ut.assignmentExpression("=",je,ut.identifier("$event"))),Qt)),Qt?q=!0:y.add(mt.value)})}else Z.match(dye)&&(Z=Z.replace(dye,(ge,Ge)=>`xlink:${Ge.toLowerCase()}`)),E.push(ut.objectProperty(ut.stringLiteral(Z),ce||ut.booleanLiteral(!0)))}else E.length&&W&&(M.push(ut.objectExpression(fk(E,W))),E=[]),q=!0,Nwt(n,Y,W,W?M:E)}),q?v|=16:(A&&(v|=2),_&&(v|=4),y.size&&(v|=8),C&&(v|=32)),(v===0||v===32)&&(S||p.length>0)&&(v|=512);let z=ut.nullLiteral();return M.length?(E.length&&M.push(ut.objectExpression(fk(E,W))),M.length>1?z=ut.callExpression(Rs(t,"mergeProps"),M):z=M[0]):E.length&&(E.length===1&&ut.isSpreadElement(E[0])?z=E[0].argument:z=ut.objectExpression(fk(E,W))),{tag:a,props:z,isComponent:i,slots:b,directives:p,patchFlag:v,dynamicPropNames:y}},$wt=(n,t)=>n.map(a=>{if(a.isJSXText()){const i=Iwt(a);return i&&ut.callExpression(Rs(t,"createTextVNode"),[i])}if(a.isJSXExpressionContainer()){const i=Ybe(a);if(ut.isIdentifier(i)){const{name:d}=i,{referencePaths:p=[]}=a.scope.getBinding(d)||{};p.forEach(y=>{VB(y,d,UB.DYNAMIC)})}return i}if(a.isJSXSpreadChild())return Cwt(a);if(a.isCallExpression())return a.node;if(a.isJSXElement())return WB(a,t);throw new Error(`getChildren: ${a.type} is not supported`)}).filter(a=>a!=null&&!ut.isJSXEmptyExpression(a)),WB=(n,t)=>{const a=$wt(n.get("children"),t),{tag:i,props:d,isComponent:p,directives:y,patchFlag:b,dynamicPropNames:v,slots:E}=Fwt(n,t),{optimize:S=!1}=t.opts,A=n.getData("slotFlag")||UB.STABLE;let _;if(a.length>1||E)_=p?a.length?ut.objectExpression([!!a.length&&ut.objectProperty(ut.identifier("default"),ut.arrowFunctionExpression([],ut.arrayExpression(pk(n,a)))),...E?ut.isObjectExpression(E)?E.properties:[ut.spreadElement(E)]:[],S&&ut.objectProperty(ut.identifier("_"),ut.numericLiteral(A))].filter(Boolean)):E:ut.arrayExpression(a);else if(a.length===1){const{enableObjectSlots:q=!0}=t.opts,M=a[0],W=ut.objectExpression([ut.objectProperty(ut.identifier("default"),ut.arrowFunctionExpression([],ut.arrayExpression(pk(n,[M])))),S&&ut.objectProperty(ut.identifier("_"),ut.numericLiteral(A))].filter(Boolean));if(ut.isIdentifier(M)&&p)_=q?ut.conditionalExpression(ut.callExpression(t.get("@vue/babel-plugin-jsx/runtimeIsSlot")(),[M]),M,W):W;else if(ut.isCallExpression(M)&&M.loc&&p)if(q){const{scope:z}=n,Y=z.generateUidIdentifier("slot");z&&z.push({id:Y,kind:"let"});const Z=ut.objectExpression([ut.objectProperty(ut.identifier("default"),ut.arrowFunctionExpression([],ut.arrayExpression(pk(n,[Y])))),S&&ut.objectProperty(ut.identifier("_"),ut.numericLiteral(A))].filter(Boolean)),ce=ut.assignmentExpression("=",Y,M),ge=ut.callExpression(t.get("@vue/babel-plugin-jsx/runtimeIsSlot")(),[ce]);_=ut.conditionalExpression(ge,Y,Z)}else _=W;else ut.isFunctionExpression(M)||ut.isArrowFunctionExpression(M)?_=ut.objectExpression([ut.objectProperty(ut.identifier("default"),M)]):ut.isObjectExpression(M)?_=ut.objectExpression([...M.properties,S&&ut.objectProperty(ut.identifier("_"),ut.numericLiteral(A))].filter(Boolean)):_=p?ut.objectExpression([ut.objectProperty(ut.identifier("default"),ut.arrowFunctionExpression([],ut.arrayExpression([M])))]):ut.arrayExpression([M])}const C=ut.callExpression(Rs(t,"createVNode"),[i,d,_||ut.nullLiteral(),!!b&&S&&ut.numericLiteral(b),!!v.size&&S&&ut.arrayExpression([...v.keys()].map(q=>ut.stringLiteral(q)))].filter(Boolean));return y.length?ut.callExpression(Rs(t,"withDirectives"),[C,ut.arrayExpression(y)]):C},qwt={JSXElement:{exit(n,t){n.replaceWith(WB(n,t))}}},Uwt=qwt,Vwt=(n,t)=>{const a=n.get("children")||[];return ut.jsxElement(ut.jsxOpeningElement(t,[]),ut.jsxClosingElement(t),a.map(({node:i})=>i),!1)},Wwt={JSXFragment:{enter(n,t){const a=Rs(t,u6);n.replaceWith(Vwt(n,ut.isIdentifier(a)?ut.jsxIdentifier(a.name):ut.jsxMemberExpression(ut.jsxIdentifier(a.object.name),ut.jsxIdentifier(a.property.name))))}}},Gwt=Wwt,Kwt=n=>{let t=!1;return n.traverse({JSXElement(a){t=!0,a.stop()},JSXFragment(a){t=!0,a.stop()}}),t},Hwt=/\*?\s*@jsx\s+([^\s]+)/;function GB(n){return n.default||n}var zwt=GB(fge),pye=GB(OL),Xwt=dge((n,t,a)=>{const{types:i}=n;let d;return t.resolveType&&(typeof t.resolveType=="boolean"&&(t.resolveType={}),d=hwt(n,t.resolveType,a)),oye(n2({},d||{}),{name:"babel-plugin-jsx",inherits:GB(zwt),visitor:oye(n2(n2(n2({},d==null?void 0:d.visitor),Uwt),Gwt),{Program:{enter(p,y){if(Kwt(p)){const b=["createVNode","Fragment","resolveComponent","withDirectives","vShow","vModelSelect","vModelText","vModelCheckbox","vModelRadio","vModelText","vModelDynamic","resolveDirective","mergeProps","createTextVNode","isVNode"];if(kp.isModule(p)){const S={};b.forEach(_=>{y.set(_,()=>{if(S[_])return i.cloneNode(S[_]);const C=kp.addNamed(p,_,"vue",{ensureLiveReference:!0});return S[_]=C,C})});const{enableObjectSlots:A=!0}=y.opts;A&&y.set("@vue/babel-plugin-jsx/runtimeIsSlot",()=>{if(S.runtimeIsSlot)return S.runtimeIsSlot;const{name:_}=y.get("isVNode")(),C=p.scope.generateUidIdentifier("isSlot"),q=pye.ast` + function ${C.name}(s) { + return typeof s === 'function' || (Object.prototype.toString.call(s) === '[object Object]' && !${_}(s)); + } + `,M=p.get("body").filter(W=>W.isImportDeclaration()).pop();return M&&M.insertAfter(q),S.runtimeIsSlot=C,C})}else{let S;b.forEach(C=>{y.set(C,()=>(S||(S=kp.addNamespace(p,"vue",{ensureLiveReference:!0})),ut.memberExpression(S,ut.identifier(C))))});const A={},{enableObjectSlots:_=!0}=y.opts;_&&y.set("@vue/babel-plugin-jsx/runtimeIsSlot",()=>{if(A.runtimeIsSlot)return A.runtimeIsSlot;const C=p.scope.generateUidIdentifier("isSlot"),{object:q}=y.get("isVNode")(),M=pye.ast` + function ${C.name}(s) { + return typeof s === 'function' || (Object.prototype.toString.call(s) === '[object Object]' && !${q.name}.isVNode(s)); + } + `,z=p.get("body").filter(Y=>Y.isVariableDeclaration()&&Y.node.declarations.some(Z=>{var ce;return((ce=Z.id)==null?void 0:ce.name)===S.name})).pop();return z&&z.insertAfter(M),C})}const{opts:{pragma:v=""},file:E}=y;if(v&&y.set("createVNode",()=>ut.identifier(v)),E.ast.comments)for(const S of E.ast.comments){const A=Hwt.exec(S.value);A&&y.set("createVNode",()=>ut.identifier(A[1]))}}}}})})});async function sAt(n){return Nnt.transform(n,{plugins:[Xwt]}).code}export{sAt as transformJSX}; diff --git a/assets/logo-kAxjPieW.svg b/assets/logo-kAxjPieW.svg new file mode 100644 index 0000000..3d444cb --- /dev/null +++ b/assets/logo-kAxjPieW.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 44 44" viewBox="0 0 44 44"><path d="M37.4 32.4c0 1.6-.8 1.9-.8 1.9L21.5 43c-.5.2-1 .2-1.5 0 0 0-14.8-8.6-15.3-9-.3-.2-.5-.6-.6-1V15.2c0-.8 1-1.3 1-1.3l14.8-8.5c.6-.3 1.2-.3 1.8 0l14.5 8.4c.8.3 1.3 1.2 1.2 2.1v16.5zm-5.9-17L21.4 9.5c-.4-.2-1-.2-1.4 0L8.3 16.1s-.8.5-.8 1.1v13.9c0 .3.2.6.4.8.4.3 12 7 12 7 .4.2.8.2 1.2 0 .7-.4 11.8-6.8 11.8-6.8s.7-.3.7-1.5v-3.5l-13 7.9v-3c.1-.8.4-1.5 1-2.1L33.2 23c.3-.4.5-.9.5-1.5v-3.1l-13.1 7.9v-3.2c0-.7.3-1.4.8-1.8l10.1-5.9zm9.6-11.2c0-.2-.1-.4-.4-.4H38V1.1c0-.2-.3-.3-.5-.2l-1.5.2c-.2 0-.3.1-.3.2v2.5H33c-.2 0-.3.2-.4.4v2h3V9c0 .2.3.3.5.2l1.6-.2c.2 0 .3-.1.3-.2V6.1h3.1V4.2z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#409eff"/></svg> \ No newline at end of file diff --git a/assets/vue.worker-BFJTGBis-BLY2_Qu9.js b/assets/vue.worker-BFJTGBis-BLY2_Qu9.js new file mode 100644 index 0000000..e19b145 --- /dev/null +++ b/assets/vue.worker-BFJTGBis-BLY2_Qu9.js @@ -0,0 +1,170977 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Avoid circular dependency on EventEmitter by implementing a subset of the interface. +class ErrorHandler { + constructor() { + this.listeners = []; + this.unexpectedErrorHandler = function (e) { + setTimeout(() => { + if (e.stack) { + if (ErrorNoTelemetry.isErrorNoTelemetry(e)) { + throw new ErrorNoTelemetry(e.message + '\n\n' + e.stack); + } + throw new Error(e.message + '\n\n' + e.stack); + } + throw e; + }, 0); + }; + } + emit(e) { + this.listeners.forEach((listener) => { + listener(e); + }); + } + onUnexpectedError(e) { + this.unexpectedErrorHandler(e); + this.emit(e); + } + // For external errors, we don't want the listeners to be called + onUnexpectedExternalError(e) { + this.unexpectedErrorHandler(e); + } +} +const errorHandler = new ErrorHandler(); +function onUnexpectedError(e) { + // ignore errors from cancelled promises + if (!isCancellationError(e)) { + errorHandler.onUnexpectedError(e); + } + return undefined; +} +function transformErrorForSerialization(error) { + if (error instanceof Error) { + const { name, message } = error; + const stack = error.stacktrace || error.stack; + return { + $isError: true, + name, + message, + stack, + noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error) + }; + } + // return as is + return error; +} +const canceledName = 'Canceled'; +/** + * Checks if the given error is a promise in canceled state + */ +function isCancellationError(error) { + if (error instanceof CancellationError) { + return true; + } + return error instanceof Error && error.name === canceledName && error.message === canceledName; +} +// !!!IMPORTANT!!! +// Do NOT change this class because it is also used as an API-type. +class CancellationError extends Error { + constructor() { + super(canceledName); + this.name = this.message; + } +} +/** + * Error that when thrown won't be logged in telemetry as an unhandled error. + */ +class ErrorNoTelemetry extends Error { + constructor(msg) { + super(msg); + this.name = 'CodeExpectedError'; + } + static fromError(err) { + if (err instanceof ErrorNoTelemetry) { + return err; + } + const result = new ErrorNoTelemetry(); + result.message = err.message; + result.stack = err.stack; + return result; + } + static isErrorNoTelemetry(err) { + return err.name === 'CodeExpectedError'; + } +} +/** + * This error indicates a bug. + * Do not throw this for invalid user input. + * Only catch this error to recover gracefully from bugs. + */ +class BugIndicatingError extends Error { + constructor(message) { + super(message || 'An unexpected bug occurred.'); + Object.setPrototypeOf(this, BugIndicatingError.prototype); + // Because we know for sure only buggy code throws this, + // we definitely want to break here and fix the bug. + // eslint-disable-next-line no-debugger + // debugger; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Given a function, returns a function that is only calling that function once. + */ +function createSingleCallFunction(fn, fnDidRunCallback) { + const _this = this; + let didCall = false; + let result; + return function () { + if (didCall) { + return result; + } + didCall = true; + { + result = fn.apply(_this, arguments); + } + return result; + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var Iterable; +(function (Iterable) { + function is(thing) { + return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function'; + } + Iterable.is = is; + const _empty = Object.freeze([]); + function empty() { + return _empty; + } + Iterable.empty = empty; + function* single(element) { + yield element; + } + Iterable.single = single; + function wrap(iterableOrElement) { + if (is(iterableOrElement)) { + return iterableOrElement; + } + else { + return single(iterableOrElement); + } + } + Iterable.wrap = wrap; + function from(iterable) { + return iterable || _empty; + } + Iterable.from = from; + function* reverse(array) { + for (let i = array.length - 1; i >= 0; i--) { + yield array[i]; + } + } + Iterable.reverse = reverse; + function isEmpty(iterable) { + return !iterable || iterable[Symbol.iterator]().next().done === true; + } + Iterable.isEmpty = isEmpty; + function first(iterable) { + return iterable[Symbol.iterator]().next().value; + } + Iterable.first = first; + function some(iterable, predicate) { + let i = 0; + for (const element of iterable) { + if (predicate(element, i++)) { + return true; + } + } + return false; + } + Iterable.some = some; + function find(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + return element; + } + } + return undefined; + } + Iterable.find = find; + function* filter(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + yield element; + } + } + } + Iterable.filter = filter; + function* map(iterable, fn) { + let index = 0; + for (const element of iterable) { + yield fn(element, index++); + } + } + Iterable.map = map; + function* flatMap(iterable, fn) { + let index = 0; + for (const element of iterable) { + yield* fn(element, index++); + } + } + Iterable.flatMap = flatMap; + function* concat(...iterables) { + for (const iterable of iterables) { + yield* iterable; + } + } + Iterable.concat = concat; + function reduce(iterable, reducer, initialValue) { + let value = initialValue; + for (const element of iterable) { + value = reducer(value, element); + } + return value; + } + Iterable.reduce = reduce; + /** + * Returns an iterable slice of the array, with the same semantics as `array.slice()`. + */ + function* slice(arr, from, to = arr.length) { + if (from < 0) { + from += arr.length; + } + if (to < 0) { + to += arr.length; + } + else if (to > arr.length) { + to = arr.length; + } + for (; from < to; from++) { + yield arr[from]; + } + } + Iterable.slice = slice; + /** + * Consumes `atMost` elements from iterable and returns the consumed elements, + * and an iterable for the rest of the elements. + */ + function consume(iterable, atMost = Number.POSITIVE_INFINITY) { + const consumed = []; + if (atMost === 0) { + return [consumed, iterable]; + } + const iterator = iterable[Symbol.iterator](); + for (let i = 0; i < atMost; i++) { + const next = iterator.next(); + if (next.done) { + return [consumed, Iterable.empty()]; + } + consumed.push(next.value); + } + return [consumed, { [Symbol.iterator]() { return iterator; } }]; + } + Iterable.consume = consume; + async function asyncToArray(iterable) { + const result = []; + for await (const item of iterable) { + result.push(item); + } + return Promise.resolve(result); + } + Iterable.asyncToArray = asyncToArray; +})(Iterable || (Iterable = {})); + +function trackDisposable(x) { + return x; +} +function setParentOfDisposable(child, parent) { +} +function dispose(arg) { + if (Iterable.is(arg)) { + const errors = []; + for (const d of arg) { + if (d) { + try { + d.dispose(); + } + catch (e) { + errors.push(e); + } + } + } + if (errors.length === 1) { + throw errors[0]; + } + else if (errors.length > 1) { + throw new AggregateError(errors, 'Encountered errors while disposing of store'); + } + return Array.isArray(arg) ? [] : arg; + } + else if (arg) { + arg.dispose(); + return arg; + } +} +/** + * Combine multiple disposable values into a single {@link IDisposable}. + */ +function combinedDisposable(...disposables) { + const parent = toDisposable(() => dispose(disposables)); + return parent; +} +/** + * Turn a function that implements dispose into an {@link IDisposable}. + * + * @param fn Clean up function, guaranteed to be called only **once**. + */ +function toDisposable(fn) { + const self = trackDisposable({ + dispose: createSingleCallFunction(() => { + fn(); + }) + }); + return self; +} +/** + * Manages a collection of disposable values. + * + * This is the preferred way to manage multiple disposables. A `DisposableStore` is safer to work with than an + * `IDisposable[]` as it considers edge cases, such as registering the same value multiple times or adding an item to a + * store that has already been disposed of. + */ +class DisposableStore { + static { this.DISABLE_DISPOSED_WARNING = false; } + constructor() { + this._toDispose = new Set(); + this._isDisposed = false; + } + /** + * Dispose of all registered disposables and mark this object as disposed. + * + * Any future disposables added to this object will be disposed of on `add`. + */ + dispose() { + if (this._isDisposed) { + return; + } + this._isDisposed = true; + this.clear(); + } + /** + * @return `true` if this object has been disposed of. + */ + get isDisposed() { + return this._isDisposed; + } + /** + * Dispose of all registered disposables but do not mark this object as disposed. + */ + clear() { + if (this._toDispose.size === 0) { + return; + } + try { + dispose(this._toDispose); + } + finally { + this._toDispose.clear(); + } + } + /** + * Add a new {@link IDisposable disposable} to the collection. + */ + add(o) { + if (!o) { + return o; + } + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + if (this._isDisposed) { + if (!DisposableStore.DISABLE_DISPOSED_WARNING) { + console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack); + } + } + else { + this._toDispose.add(o); + } + return o; + } + /** + * Deletes the value from the store, but does not dispose it. + */ + deleteAndLeak(o) { + if (!o) { + return; + } + if (this._toDispose.has(o)) { + this._toDispose.delete(o); + } + } +} +/** + * Abstract base class for a {@link IDisposable disposable} object. + * + * Subclasses can {@linkcode _register} disposables that will be automatically cleaned up when this object is disposed of. + */ +class Disposable { + /** + * A disposable that does nothing when it is disposed of. + * + * TODO: This should not be a static property. + */ + static { this.None = Object.freeze({ dispose() { } }); } + constructor() { + this._store = new DisposableStore(); + setParentOfDisposable(this._store); + } + dispose() { + this._store.dispose(); + } + /** + * Adds `o` to the collection of disposables managed by this object. + */ + _register(o) { + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + return this._store.add(o); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let Node$3 = class Node { + static { this.Undefined = new Node(undefined); } + constructor(element) { + this.element = element; + this.next = Node.Undefined; + this.prev = Node.Undefined; + } +}; +class LinkedList { + constructor() { + this._first = Node$3.Undefined; + this._last = Node$3.Undefined; + this._size = 0; + } + get size() { + return this._size; + } + isEmpty() { + return this._first === Node$3.Undefined; + } + clear() { + let node = this._first; + while (node !== Node$3.Undefined) { + const next = node.next; + node.prev = Node$3.Undefined; + node.next = Node$3.Undefined; + node = next; + } + this._first = Node$3.Undefined; + this._last = Node$3.Undefined; + this._size = 0; + } + unshift(element) { + return this._insert(element, false); + } + push(element) { + return this._insert(element, true); + } + _insert(element, atTheEnd) { + const newNode = new Node$3(element); + if (this._first === Node$3.Undefined) { + this._first = newNode; + this._last = newNode; + } + else if (atTheEnd) { + // push + const oldLast = this._last; + this._last = newNode; + newNode.prev = oldLast; + oldLast.next = newNode; + } + else { + // unshift + const oldFirst = this._first; + this._first = newNode; + newNode.next = oldFirst; + oldFirst.prev = newNode; + } + this._size += 1; + let didRemove = false; + return () => { + if (!didRemove) { + didRemove = true; + this._remove(newNode); + } + }; + } + shift() { + if (this._first === Node$3.Undefined) { + return undefined; + } + else { + const res = this._first.element; + this._remove(this._first); + return res; + } + } + pop() { + if (this._last === Node$3.Undefined) { + return undefined; + } + else { + const res = this._last.element; + this._remove(this._last); + return res; + } + } + _remove(node) { + if (node.prev !== Node$3.Undefined && node.next !== Node$3.Undefined) { + // middle + const anchor = node.prev; + anchor.next = node.next; + node.next.prev = anchor; + } + else if (node.prev === Node$3.Undefined && node.next === Node$3.Undefined) { + // only node + this._first = Node$3.Undefined; + this._last = Node$3.Undefined; + } + else if (node.next === Node$3.Undefined) { + // last + this._last = this._last.prev; + this._last.next = Node$3.Undefined; + } + else if (node.prev === Node$3.Undefined) { + // first + this._first = this._first.next; + this._first.prev = Node$3.Undefined; + } + // done + this._size -= 1; + } + *[Symbol.iterator]() { + let node = this._first; + while (node !== Node$3.Undefined) { + yield node.element; + node = node.next; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const hasPerformanceNow = (globalThis.performance && typeof globalThis.performance.now === 'function'); +class StopWatch { + static create(highResolution) { + return new StopWatch(highResolution); + } + constructor(highResolution) { + this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance); + this._startTime = this._now(); + this._stopTime = -1; + } + stop() { + this._stopTime = this._now(); + } + reset() { + this._startTime = this._now(); + this._stopTime = -1; + } + elapsed() { + if (this._stopTime !== -1) { + return this._stopTime - this._startTime; + } + return this._now() - this._startTime; + } +} + +var Event; +(function (Event) { + Event.None = () => Disposable.None; + /** + * Given an event, returns another event which debounces calls and defers the listeners to a later task via a shared + * `setTimeout`. The event is converted into a signal (`Event<void>`) to avoid additional object creation as a + * result of merging events and to try prevent race conditions that could arise when using related deferred and + * non-deferred events. + * + * This is useful for deferring non-critical work (eg. general UI updates) to ensure it does not block critical work + * (eg. latency of keypress to text rendered). + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function defer(event, disposable) { + return debounce(event, () => void 0, 0, undefined, true, undefined, disposable); + } + Event.defer = defer; + /** + * Given an event, returns another event which only fires once. + * + * @param event The event source for the new event. + */ + function once(event) { + return (listener, thisArgs = null, disposables) => { + // we need this, in case the event fires during the listener call + let didFire = false; + let result = undefined; + result = event(e => { + if (didFire) { + return; + } + else if (result) { + result.dispose(); + } + else { + didFire = true; + } + return listener.call(thisArgs, e); + }, null, disposables); + if (didFire) { + result.dispose(); + } + return result; + }; + } + Event.once = once; + /** + * Maps an event of one type into an event of another type using a mapping function, similar to how + * `Array.prototype.map` works. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param map The mapping function. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function map(event, map, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables), disposable); + } + Event.map = map; + /** + * Wraps an event in another event that performs some function on the event object before firing. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param each The function to perform on the event object. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function forEach(event, each, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable); + } + Event.forEach = forEach; + function filter(event, filter, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables), disposable); + } + Event.filter = filter; + /** + * Given an event, returns the same event but typed as `Event<void>`. + */ + function signal(event) { + return event; + } + Event.signal = signal; + function any(...events) { + return (listener, thisArgs = null, disposables) => { + const disposable = combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e)))); + return addAndReturnDisposable(disposable, disposables); + }; + } + Event.any = any; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function reduce(event, merge, initial, disposable) { + let output = initial; + return map(event, e => { + output = merge(output, e); + return output; + }, disposable); + } + Event.reduce = reduce; + function snapshot(event, disposable) { + let listener; + const options = { + onWillAddFirstListener() { + listener = event(emitter.fire, emitter); + }, + onDidRemoveLastListener() { + listener?.dispose(); + } + }; + const emitter = new Emitter(options); + disposable?.add(emitter); + return emitter.event; + } + /** + * Adds the IDisposable to the store if it's set, and returns it. Useful to + * Event function implementation. + */ + function addAndReturnDisposable(d, store) { + if (store instanceof Array) { + store.push(d); + } + else if (store) { + store.add(d); + } + return d; + } + function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) { + let subscription; + let output = undefined; + let handle = undefined; + let numDebouncedCalls = 0; + let doFire; + const options = { + leakWarningThreshold, + onWillAddFirstListener() { + subscription = event(cur => { + numDebouncedCalls++; + output = merge(output, cur); + if (leading && !handle) { + emitter.fire(output); + output = undefined; + } + doFire = () => { + const _output = output; + output = undefined; + handle = undefined; + if (!leading || numDebouncedCalls > 1) { + emitter.fire(_output); + } + numDebouncedCalls = 0; + }; + if (typeof delay === 'number') { + clearTimeout(handle); + handle = setTimeout(doFire, delay); + } + else { + if (handle === undefined) { + handle = 0; + queueMicrotask(doFire); + } + } + }); + }, + onWillRemoveListener() { + if (flushOnListenerRemove && numDebouncedCalls > 0) { + doFire?.(); + } + }, + onDidRemoveLastListener() { + doFire = undefined; + subscription.dispose(); + } + }; + const emitter = new Emitter(options); + disposable?.add(emitter); + return emitter.event; + } + Event.debounce = debounce; + /** + * Debounces an event, firing after some delay (default=0) with an array of all event original objects. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function accumulate(event, delay = 0, disposable) { + return Event.debounce(event, (last, e) => { + if (!last) { + return [e]; + } + last.push(e); + return last; + }, delay, undefined, true, undefined, disposable); + } + Event.accumulate = accumulate; + /** + * Filters an event such that some condition is _not_ met more than once in a row, effectively ensuring duplicate + * event objects from different sources do not fire the same event object. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param equals The equality condition. + * @param disposable A disposable store to add the new EventEmitter to. + * + * @example + * ``` + * // Fire only one time when a single window is opened or focused + * Event.latch(Event.any(onDidOpenWindow, onDidFocusWindow)) + * ``` + */ + function latch(event, equals = (a, b) => a === b, disposable) { + let firstCall = true; + let cache; + return filter(event, value => { + const shouldEmit = firstCall || !equals(value, cache); + firstCall = false; + cache = value; + return shouldEmit; + }, disposable); + } + Event.latch = latch; + /** + * Splits an event whose parameter is a union type into 2 separate events for each type in the union. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @example + * ``` + * const event = new EventEmitter<number | undefined>().event; + * const [numberEvent, undefinedEvent] = Event.split(event, isUndefined); + * ``` + * + * @param event The event source for the new event. + * @param isT A function that determines what event is of the first type. + * @param disposable A disposable store to add the new EventEmitter to. + */ + function split(event, isT, disposable) { + return [ + Event.filter(event, isT, disposable), + Event.filter(event, e => !isT(e), disposable), + ]; + } + Event.split = split; + /** + * Buffers an event until it has a listener attached. + * + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + * + * @param event The event source for the new event. + * @param flushAfterTimeout Determines whether to flush the buffer after a timeout immediately or after a + * `setTimeout` when the first event listener is added. + * @param _buffer Internal: A source event array used for tests. + * + * @example + * ``` + * // Start accumulating events, when the first listener is attached, flush + * // the event after a timeout such that multiple listeners attached before + * // the timeout would receive the event + * this.onInstallExtension = Event.buffer(service.onInstallExtension, true); + * ``` + */ + function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) { + let buffer = _buffer.slice(); + let listener = event(e => { + if (buffer) { + buffer.push(e); + } + else { + emitter.fire(e); + } + }); + if (disposable) { + disposable.add(listener); + } + const flush = () => { + buffer?.forEach(e => emitter.fire(e)); + buffer = null; + }; + const emitter = new Emitter({ + onWillAddFirstListener() { + if (!listener) { + listener = event(e => emitter.fire(e)); + if (disposable) { + disposable.add(listener); + } + } + }, + onDidAddFirstListener() { + if (buffer) { + if (flushAfterTimeout) { + setTimeout(flush); + } + else { + flush(); + } + } + }, + onDidRemoveLastListener() { + if (listener) { + listener.dispose(); + } + listener = null; + } + }); + if (disposable) { + disposable.add(emitter); + } + return emitter.event; + } + Event.buffer = buffer; + /** + * Wraps the event in an {@link IChainableEvent}, allowing a more functional programming style. + * + * @example + * ``` + * // Normal + * const onEnterPressNormal = Event.filter( + * Event.map(onKeyPress.event, e => new StandardKeyboardEvent(e)), + * e.keyCode === KeyCode.Enter + * ).event; + * + * // Using chain + * const onEnterPressChain = Event.chain(onKeyPress.event, $ => $ + * .map(e => new StandardKeyboardEvent(e)) + * .filter(e => e.keyCode === KeyCode.Enter) + * ); + * ``` + */ + function chain(event, sythensize) { + const fn = (listener, thisArgs, disposables) => { + const cs = sythensize(new ChainableSynthesis()); + return event(function (value) { + const result = cs.evaluate(value); + if (result !== HaltChainable) { + listener.call(thisArgs, result); + } + }, undefined, disposables); + }; + return fn; + } + Event.chain = chain; + const HaltChainable = Symbol('HaltChainable'); + class ChainableSynthesis { + constructor() { + this.steps = []; + } + map(fn) { + this.steps.push(fn); + return this; + } + forEach(fn) { + this.steps.push(v => { + fn(v); + return v; + }); + return this; + } + filter(fn) { + this.steps.push(v => fn(v) ? v : HaltChainable); + return this; + } + reduce(merge, initial) { + let last = initial; + this.steps.push(v => { + last = merge(last, v); + return last; + }); + return this; + } + latch(equals = (a, b) => a === b) { + let firstCall = true; + let cache; + this.steps.push(value => { + const shouldEmit = firstCall || !equals(value, cache); + firstCall = false; + cache = value; + return shouldEmit ? value : HaltChainable; + }); + return this; + } + evaluate(value) { + for (const step of this.steps) { + value = step(value); + if (value === HaltChainable) { + break; + } + } + return value; + } + } + /** + * Creates an {@link Event} from a node event emitter. + */ + function fromNodeEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.on(eventName, fn); + const onLastListenerRemove = () => emitter.removeListener(eventName, fn); + const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); + return result.event; + } + Event.fromNodeEventEmitter = fromNodeEventEmitter; + /** + * Creates an {@link Event} from a DOM event emitter. + */ + function fromDOMEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn); + const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn); + const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); + return result.event; + } + Event.fromDOMEventEmitter = fromDOMEventEmitter; + /** + * Creates a promise out of an event, using the {@link Event.once} helper. + */ + function toPromise(event) { + return new Promise(resolve => once(event)(resolve)); + } + Event.toPromise = toPromise; + /** + * Creates an event out of a promise that fires once when the promise is + * resolved with the result of the promise or `undefined`. + */ + function fromPromise(promise) { + const result = new Emitter(); + promise.then(res => { + result.fire(res); + }, () => { + result.fire(undefined); + }).finally(() => { + result.dispose(); + }); + return result.event; + } + Event.fromPromise = fromPromise; + /** + * A convenience function for forwarding an event to another emitter which + * improves readability. + * + * This is similar to {@link Relay} but allows instantiating and forwarding + * on a single line and also allows for multiple source events. + * @param from The event to forward. + * @param to The emitter to forward the event to. + * @example + * Event.forward(event, emitter); + * // equivalent to + * event(e => emitter.fire(e)); + * // equivalent to + * event(emitter.fire, emitter); + */ + function forward(from, to) { + return from(e => to.fire(e)); + } + Event.forward = forward; + function runAndSubscribe(event, handler, initial) { + handler(initial); + return event(e => handler(e)); + } + Event.runAndSubscribe = runAndSubscribe; + class EmitterObserver { + constructor(_observable, store) { + this._observable = _observable; + this._counter = 0; + this._hasChanged = false; + const options = { + onWillAddFirstListener: () => { + _observable.addObserver(this); + }, + onDidRemoveLastListener: () => { + _observable.removeObserver(this); + } + }; + this.emitter = new Emitter(options); + if (store) { + store.add(this.emitter); + } + } + beginUpdate(_observable) { + // assert(_observable === this.obs); + this._counter++; + } + handlePossibleChange(_observable) { + // assert(_observable === this.obs); + } + handleChange(_observable, _change) { + // assert(_observable === this.obs); + this._hasChanged = true; + } + endUpdate(_observable) { + // assert(_observable === this.obs); + this._counter--; + if (this._counter === 0) { + this._observable.reportChanges(); + if (this._hasChanged) { + this._hasChanged = false; + this.emitter.fire(this._observable.get()); + } + } + } + } + /** + * Creates an event emitter that is fired when the observable changes. + * Each listeners subscribes to the emitter. + */ + function fromObservable(obs, store) { + const observer = new EmitterObserver(obs, store); + return observer.emitter.event; + } + Event.fromObservable = fromObservable; + /** + * Each listener is attached to the observable directly. + */ + function fromObservableLight(observable) { + return (listener, thisArgs, disposables) => { + let count = 0; + let didChange = false; + const observer = { + beginUpdate() { + count++; + }, + endUpdate() { + count--; + if (count === 0) { + observable.reportChanges(); + if (didChange) { + didChange = false; + listener.call(thisArgs); + } + } + }, + handlePossibleChange() { + // noop + }, + handleChange() { + didChange = true; + } + }; + observable.addObserver(observer); + observable.reportChanges(); + const disposable = { + dispose() { + observable.removeObserver(observer); + } + }; + if (disposables instanceof DisposableStore) { + disposables.add(disposable); + } + else if (Array.isArray(disposables)) { + disposables.push(disposable); + } + return disposable; + }; + } + Event.fromObservableLight = fromObservableLight; +})(Event || (Event = {})); +class EventProfiling { + static { this.all = new Set(); } + static { this._idPool = 0; } + constructor(name) { + this.listenerCount = 0; + this.invocationCount = 0; + this.elapsedOverall = 0; + this.durations = []; + this.name = `${name}_${EventProfiling._idPool++}`; + EventProfiling.all.add(this); + } + start(listenerCount) { + this._stopWatch = new StopWatch(); + this.listenerCount = listenerCount; + } + stop() { + if (this._stopWatch) { + const elapsed = this._stopWatch.elapsed(); + this.durations.push(elapsed); + this.elapsedOverall += elapsed; + this.invocationCount += 1; + this._stopWatch = undefined; + } + } +} +let _globalLeakWarningThreshold = -1; +class LeakageMonitor { + static { this._idPool = 1; } + constructor(_errorHandler, threshold, name = (LeakageMonitor._idPool++).toString(16).padStart(3, '0')) { + this._errorHandler = _errorHandler; + this.threshold = threshold; + this.name = name; + this._warnCountdown = 0; + } + dispose() { + this._stacks?.clear(); + } + check(stack, listenerCount) { + const threshold = this.threshold; + if (threshold <= 0 || listenerCount < threshold) { + return undefined; + } + if (!this._stacks) { + this._stacks = new Map(); + } + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count + 1); + this._warnCountdown -= 1; + if (this._warnCountdown <= 0) { + // only warn on first exceed and then every time the limit + // is exceeded by 50% again + this._warnCountdown = threshold * 0.5; + const [topStack, topCount] = this.getMostFrequentStack(); + const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`; + console.warn(message); + console.warn(topStack); + const error = new ListenerLeakError(message, topStack); + this._errorHandler(error); + } + return () => { + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count - 1); + }; + } + getMostFrequentStack() { + if (!this._stacks) { + return undefined; + } + let topStack; + let topCount = 0; + for (const [stack, count] of this._stacks) { + if (!topStack || topCount < count) { + topStack = [stack, count]; + topCount = count; + } + } + return topStack; + } +} +class Stacktrace { + static create() { + const err = new Error(); + return new Stacktrace(err.stack ?? ''); + } + constructor(value) { + this.value = value; + } + print() { + console.warn(this.value.split('\n').slice(2).join('\n')); + } +} +// error that is logged when going over the configured listener threshold +class ListenerLeakError extends Error { + constructor(message, stack) { + super(message); + this.name = 'ListenerLeakError'; + this.stack = stack; + } +} +// SEVERE error that is logged when having gone way over the configured listener +// threshold so that the emitter refuses to accept more listeners +class ListenerRefusalError extends Error { + constructor(message, stack) { + super(message); + this.name = 'ListenerRefusalError'; + this.stack = stack; + } +} +class UniqueContainer { + constructor(value) { + this.value = value; + } +} +const compactionThreshold = 2; +/** + * The Emitter can be used to expose an Event to the public + * to fire it from the insides. + * Sample: + class Document { + + private readonly _onDidChange = new Emitter<(value:string)=>any>(); + + public onDidChange = this._onDidChange.event; + + // getter-style + // get onDidChange(): Event<(value:string)=>any> { + // return this._onDidChange.event; + // } + + private _doIt() { + //... + this._onDidChange.fire(value); + } + } + */ +class Emitter { + constructor(options) { + this._size = 0; + this._options = options; + this._leakageMon = (this._options?.leakWarningThreshold) + ? new LeakageMonitor(options?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold) : + undefined; + this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : undefined; + this._deliveryQueue = this._options?.deliveryQueue; + } + dispose() { + if (!this._disposed) { + this._disposed = true; + // It is bad to have listeners at the time of disposing an emitter, it is worst to have listeners keep the emitter + // alive via the reference that's embedded in their disposables. Therefore we loop over all remaining listeners and + // unset their subscriptions/disposables. Looping and blaming remaining listeners is done on next tick because the + // the following programming pattern is very popular: + // + // const someModel = this._disposables.add(new ModelObject()); // (1) create and register model + // this._disposables.add(someModel.onDidChange(() => { ... }); // (2) subscribe and register model-event listener + // ...later... + // this._disposables.dispose(); disposes (1) then (2): don't warn after (1) but after the "overall dispose" is done + if (this._deliveryQueue?.current === this) { + this._deliveryQueue.reset(); + } + if (this._listeners) { + this._listeners = undefined; + this._size = 0; + } + this._options?.onDidRemoveLastListener?.(); + this._leakageMon?.dispose(); + } + } + /** + * For the public to allow to subscribe + * to events from this Emitter + */ + get event() { + this._event ??= (callback, thisArgs, disposables) => { + if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) { + const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`; + console.warn(message); + const tuple = this._leakageMon.getMostFrequentStack() ?? ['UNKNOWN stack', -1]; + const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]); + const errorHandler = this._options?.onListenerError || onUnexpectedError; + errorHandler(error); + return Disposable.None; + } + if (this._disposed) { + // todo: should we warn if a listener is added to a disposed emitter? This happens often + return Disposable.None; + } + if (thisArgs) { + callback = callback.bind(thisArgs); + } + const contained = new UniqueContainer(callback); + let removeMonitor; + if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) { + // check and record this emitter for potential leakage + contained.stack = Stacktrace.create(); + removeMonitor = this._leakageMon.check(contained.stack, this._size + 1); + } + if (!this._listeners) { + this._options?.onWillAddFirstListener?.(this); + this._listeners = contained; + this._options?.onDidAddFirstListener?.(this); + } + else if (this._listeners instanceof UniqueContainer) { + this._deliveryQueue ??= new EventDeliveryQueuePrivate(); + this._listeners = [this._listeners, contained]; + } + else { + this._listeners.push(contained); + } + this._size++; + const result = toDisposable(() => { + removeMonitor?.(); + this._removeListener(contained); + }); + if (disposables instanceof DisposableStore) { + disposables.add(result); + } + else if (Array.isArray(disposables)) { + disposables.push(result); + } + return result; + }; + return this._event; + } + _removeListener(listener) { + this._options?.onWillRemoveListener?.(this); + if (!this._listeners) { + return; // expected if a listener gets disposed + } + if (this._size === 1) { + this._listeners = undefined; + this._options?.onDidRemoveLastListener?.(this); + this._size = 0; + return; + } + // size > 1 which requires that listeners be a list: + const listeners = this._listeners; + const index = listeners.indexOf(listener); + if (index === -1) { + console.log('disposed?', this._disposed); + console.log('size?', this._size); + console.log('arr?', JSON.stringify(this._listeners)); + throw new Error('Attempted to dispose unknown listener'); + } + this._size--; + listeners[index] = undefined; + const adjustDeliveryQueue = this._deliveryQueue.current === this; + if (this._size * compactionThreshold <= listeners.length) { + let n = 0; + for (let i = 0; i < listeners.length; i++) { + if (listeners[i]) { + listeners[n++] = listeners[i]; + } + else if (adjustDeliveryQueue) { + this._deliveryQueue.end--; + if (n < this._deliveryQueue.i) { + this._deliveryQueue.i--; + } + } + } + listeners.length = n; + } + } + _deliver(listener, value) { + if (!listener) { + return; + } + const errorHandler = this._options?.onListenerError || onUnexpectedError; + if (!errorHandler) { + listener.value(value); + return; + } + try { + listener.value(value); + } + catch (e) { + errorHandler(e); + } + } + /** Delivers items in the queue. Assumes the queue is ready to go. */ + _deliverQueue(dq) { + const listeners = dq.current._listeners; + while (dq.i < dq.end) { + // important: dq.i is incremented before calling deliver() because it might reenter deliverQueue() + this._deliver(listeners[dq.i++], dq.value); + } + dq.reset(); + } + /** + * To be kept private to fire an event to + * subscribers + */ + fire(event) { + if (this._deliveryQueue?.current) { + this._deliverQueue(this._deliveryQueue); + this._perfMon?.stop(); // last fire() will have starting perfmon, stop it before starting the next dispatch + } + this._perfMon?.start(this._size); + if (!this._listeners) ; + else if (this._listeners instanceof UniqueContainer) { + this._deliver(this._listeners, event); + } + else { + const dq = this._deliveryQueue; + dq.enqueue(this, event, this._listeners.length); + this._deliverQueue(dq); + } + this._perfMon?.stop(); + } + hasListeners() { + return this._size > 0; + } +} +class EventDeliveryQueuePrivate { + constructor() { + /** + * Index in current's listener list. + */ + this.i = -1; + /** + * The last index in the listener's list to deliver. + */ + this.end = 0; + } + enqueue(emitter, value, end) { + this.i = 0; + this.end = end; + this.current = emitter; + this.value = value; + } + reset() { + this.i = this.end; // force any current emission loop to stop, mainly for during dispose + this.current = undefined; + this.value = undefined; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * @returns whether the provided parameter is a JavaScript String or not. + */ +function isString$2(str) { + return (typeof str === 'string'); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getAllPropertyNames(obj) { + let res = []; + while (Object.prototype !== obj) { + res = res.concat(Object.getOwnPropertyNames(obj)); + obj = Object.getPrototypeOf(obj); + } + return res; +} +function getAllMethodNames(obj) { + const methods = []; + for (const prop of getAllPropertyNames(obj)) { + if (typeof obj[prop] === 'function') { + methods.push(prop); + } + } + return methods; +} +function createProxyObject$1(methodNames, invoke) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const result = {}; + for (const methodName of methodNames) { + result[methodName] = createProxyMethod(methodName); + } + return result; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/* + * This module exists so that the AMD build of the monaco editor can replace this with an async loader plugin. + * If you add new functions to this module make sure that they are also provided in the AMD build of the monaco editor. + */ +function getNLSMessages() { + return globalThis._VSCODE_NLS_MESSAGES; +} +function getNLSLanguage() { + return globalThis._VSCODE_NLS_LANGUAGE; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// eslint-disable-next-line local/code-import-patterns +// VSCODE_GLOBALS: NLS +const isPseudo = getNLSLanguage() === 'pseudo' || (typeof document !== 'undefined' && document.location && document.location.hash.indexOf('pseudo=true') >= 0); +function _format$2(message, args) { + let result; + if (args.length === 0) { + result = message; + } + else { + result = message.replace(/\{(\d+)\}/g, (match, rest) => { + const index = rest[0]; + const arg = args[index]; + let result = match; + if (typeof arg === 'string') { + result = arg; + } + else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) { + result = String(arg); + } + return result; + }); + } + if (isPseudo) { + // FF3B and FF3D is the Unicode zenkaku representation for [ and ] + result = '\uFF3B' + result.replace(/[aouei]/g, '$&$&') + '\uFF3D'; + } + return result; +} +/** + * @skipMangle + */ +function localize$2(data /* | number when built */, message /* | null when built */, ...args) { + if (typeof data === 'number') { + return _format$2(lookupMessage(data, message), args); + } + return _format$2(message, args); +} +/** + * Only used when built: Looks up the message in the global NLS table. + * This table is being made available as a global through bootstrapping + * depending on the target context. + */ +function lookupMessage(index, fallback) { + // VSCODE_GLOBALS: NLS + const message = getNLSMessages()?.[index]; + if (typeof message !== 'string') { + if (typeof fallback === 'string') { + return fallback; + } + throw new Error(`!!! NLS MISSING: ${index} !!!`); + } + return message; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const LANGUAGE_DEFAULT = 'en'; +let _isWindows = false; +let _isMacintosh = false; +let _isLinux = false; +let _locale = undefined; +let _language = LANGUAGE_DEFAULT; +let _platformLocale = LANGUAGE_DEFAULT; +let _translationsConfigFile = undefined; +let _userAgent = undefined; +const $globalThis = globalThis; +let nodeProcess = undefined; +if (typeof $globalThis.vscode !== 'undefined' && typeof $globalThis.vscode.process !== 'undefined') { + // Native environment (sandboxed) + nodeProcess = $globalThis.vscode.process; +} +else if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') { + // Native environment (non-sandboxed) + nodeProcess = process; +} +const isElectronProcess = typeof nodeProcess?.versions?.electron === 'string'; +const isElectronRenderer = isElectronProcess && nodeProcess?.type === 'renderer'; +// Native environment +if (typeof nodeProcess === 'object') { + _isWindows = (nodeProcess.platform === 'win32'); + _isMacintosh = (nodeProcess.platform === 'darwin'); + _isLinux = (nodeProcess.platform === 'linux'); + _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION']; + !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY']; + _locale = LANGUAGE_DEFAULT; + _language = LANGUAGE_DEFAULT; + const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG']; + if (rawNlsConfig) { + try { + const nlsConfig = JSON.parse(rawNlsConfig); + _locale = nlsConfig.userLocale; + _platformLocale = nlsConfig.osLocale; + _language = nlsConfig.resolvedLanguage || LANGUAGE_DEFAULT; + _translationsConfigFile = nlsConfig.languagePack?.translationsConfigFile; + } + catch (e) { + } + } +} +// Web environment +else if (typeof navigator === 'object' && !isElectronRenderer) { + _userAgent = navigator.userAgent; + _isWindows = _userAgent.indexOf('Windows') >= 0; + _isMacintosh = _userAgent.indexOf('Macintosh') >= 0; + (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0; + _isLinux = _userAgent.indexOf('Linux') >= 0; + _userAgent?.indexOf('Mobi') >= 0; + // VSCODE_GLOBALS: NLS + _language = getNLSLanguage() || LANGUAGE_DEFAULT; + _locale = navigator.language.toLowerCase(); + _platformLocale = _locale; +} +// Unknown environment +else { + console.error('Unable to resolve platform.'); +} +const isWindows = _isWindows; +const isMacintosh = _isMacintosh; +const userAgent = _userAgent; +const setTimeout0IsFaster = (typeof $globalThis.postMessage === 'function' && !$globalThis.importScripts); +/** + * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-. + * + * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay + * that browsers set when the nesting level is > 5. + */ +(() => { + if (setTimeout0IsFaster) { + const pending = []; + $globalThis.addEventListener('message', (e) => { + if (e.data && e.data.vscodeScheduleAsyncWork) { + for (let i = 0, len = pending.length; i < len; i++) { + const candidate = pending[i]; + if (candidate.id === e.data.vscodeScheduleAsyncWork) { + pending.splice(i, 1); + candidate.callback(); + return; + } + } + } + }); + let lastId = 0; + return (callback) => { + const myId = ++lastId; + pending.push({ + id: myId, + callback: callback + }); + $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, '*'); + }; + } + return (callback) => setTimeout(callback); +})(); +const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0); +!!(userAgent && userAgent.indexOf('Firefox') >= 0); +!!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0)); +!!(userAgent && userAgent.indexOf('Edg/') >= 0); +!!(userAgent && userAgent.indexOf('Android') >= 0); + +function identity$2(t) { + return t; +} +/** + * Uses a LRU cache to make a given parametrized function cached. + * Caches just the last key/value. +*/ +class LRUCachedFunction { + constructor(arg1, arg2) { + this.lastCache = undefined; + this.lastArgKey = undefined; + if (typeof arg1 === 'function') { + this._fn = arg1; + this._computeKey = identity$2; + } + else { + this._fn = arg2; + this._computeKey = arg1.getCacheKey; + } + } + get(arg) { + const key = this._computeKey(arg); + if (this.lastArgKey !== key) { + this.lastArgKey = key; + this.lastCache = this._fn(arg); + } + return this.lastCache; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Lazy { + constructor(executor) { + this.executor = executor; + this._didRun = false; + } + /** + * Get the wrapped value. + * + * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only + * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value + */ + get value() { + if (!this._didRun) { + try { + this._value = this.executor(); + } + catch (err) { + this._error = err; + } + finally { + this._didRun = true; + } + } + if (this._error) { + throw this._error; + } + return this._value; + } + /** + * Get the wrapped value without forcing evaluation. + */ + get rawValue() { return this._value; } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Escapes regular expression characters in a given string + */ +function escapeRegExpCharacters(value) { + return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, '\\$&'); +} +function splitLines(str) { + return str.split(/\r\n|\r|\n/); +} +/** + * Returns first index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function firstNonWhitespaceIndex(str) { + for (let i = 0, len = str.length; i < len; i++) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +/** + * Returns last index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function lastNonWhitespaceIndex(str, startIndex = str.length - 1) { + for (let i = startIndex; i >= 0; i--) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +function isUpperAsciiLetter(code) { + return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */; +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isHighSurrogate(charCode) { + return (0xD800 <= charCode && charCode <= 0xDBFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isLowSurrogate(charCode) { + return (0xDC00 <= charCode && charCode <= 0xDFFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function computeCodePoint(highSurrogate, lowSurrogate) { + return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000; +} +/** + * get the code point that begins at offset `offset` + */ +function getNextCodePoint(str, len, offset) { + const charCode = str.charCodeAt(offset); + if (isHighSurrogate(charCode) && offset + 1 < len) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + return computeCodePoint(charCode, nextCharCode); + } + } + return charCode; +} +const IS_BASIC_ASCII = /^[\t\n\r\x20-\x7E]*$/; +/** + * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \n, \r, \t + */ +function isBasicASCII(str) { + return IS_BASIC_ASCII.test(str); +} +class AmbiguousCharacters { + static { this.ambiguousCharacterData = new Lazy(() => { + // Generated using https://github.com/hediet/vscode-unicode-data + // Stored as key1, value1, key2, value2, ... + 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]}'); + }); } + static { this.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => { + function arrayToMap(arr) { + const result = new Map(); + for (let i = 0; i < arr.length; i += 2) { + result.set(arr[i], arr[i + 1]); + } + return result; + } + function mergeMaps(map1, map2) { + const result = new Map(map1); + for (const [key, value] of map2) { + result.set(key, value); + } + return result; + } + function intersectMaps(map1, map2) { + if (!map1) { + return map2; + } + const result = new Map(); + for (const [key, value] of map1) { + if (map2.has(key)) { + result.set(key, value); + } + } + return result; + } + const data = this.ambiguousCharacterData.value; + let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data); + if (filteredLocales.length === 0) { + filteredLocales = ['_default']; + } + let languageSpecificMap = undefined; + for (const locale of filteredLocales) { + const map = arrayToMap(data[locale]); + languageSpecificMap = intersectMaps(languageSpecificMap, map); + } + const commonMap = arrayToMap(data['_common']); + const map = mergeMaps(commonMap, languageSpecificMap); + return new AmbiguousCharacters(map); + }); } + static getInstance(locales) { + return AmbiguousCharacters.cache.get(Array.from(locales)); + } + static { this._locales = new Lazy(() => Object.keys(AmbiguousCharacters.ambiguousCharacterData.value).filter((k) => !k.startsWith('_'))); } + static getLocales() { + return AmbiguousCharacters._locales.value; + } + constructor(confusableDictionary) { + this.confusableDictionary = confusableDictionary; + } + isAmbiguous(codePoint) { + return this.confusableDictionary.has(codePoint); + } + /** + * Returns the non basic ASCII code point that the given code point can be confused, + * or undefined if such code point does note exist. + */ + getPrimaryConfusable(codePoint) { + return this.confusableDictionary.get(codePoint); + } + getConfusableCodePoints() { + return new Set(this.confusableDictionary.keys()); + } +} +class InvisibleCharacters { + static getRawData() { + // Generated using https://github.com/hediet/vscode-unicode-data + 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]'); + } + static { this._data = undefined; } + static getData() { + if (!this._data) { + this._data = new Set(InvisibleCharacters.getRawData()); + } + return this._data; + } + static isInvisibleCharacter(codePoint) { + return InvisibleCharacters.getData().has(codePoint); + } + static get codePoints() { + return InvisibleCharacters.getData(); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const INITIALIZE = '$initialize'; +class RequestMessage { + constructor(vsWorker, req, method, args) { + this.vsWorker = vsWorker; + this.req = req; + this.method = method; + this.args = args; + this.type = 0 /* MessageType.Request */; + } +} +class ReplyMessage { + constructor(vsWorker, seq, res, err) { + this.vsWorker = vsWorker; + this.seq = seq; + this.res = res; + this.err = err; + this.type = 1 /* MessageType.Reply */; + } +} +class SubscribeEventMessage { + constructor(vsWorker, req, eventName, arg) { + this.vsWorker = vsWorker; + this.req = req; + this.eventName = eventName; + this.arg = arg; + this.type = 2 /* MessageType.SubscribeEvent */; + } +} +class EventMessage { + constructor(vsWorker, req, event) { + this.vsWorker = vsWorker; + this.req = req; + this.event = event; + this.type = 3 /* MessageType.Event */; + } +} +class UnsubscribeEventMessage { + constructor(vsWorker, req) { + this.vsWorker = vsWorker; + this.req = req; + this.type = 4 /* MessageType.UnsubscribeEvent */; + } +} +class SimpleWorkerProtocol { + constructor(handler) { + this._workerId = -1; + this._handler = handler; + this._lastSentReq = 0; + this._pendingReplies = Object.create(null); + this._pendingEmitters = new Map(); + this._pendingEvents = new Map(); + } + setWorkerId(workerId) { + this._workerId = workerId; + } + sendMessage(method, args) { + const req = String(++this._lastSentReq); + return new Promise((resolve, reject) => { + this._pendingReplies[req] = { + resolve: resolve, + reject: reject + }; + this._send(new RequestMessage(this._workerId, req, method, args)); + }); + } + listen(eventName, arg) { + let req = null; + const emitter = new Emitter({ + onWillAddFirstListener: () => { + req = String(++this._lastSentReq); + this._pendingEmitters.set(req, emitter); + this._send(new SubscribeEventMessage(this._workerId, req, eventName, arg)); + }, + onDidRemoveLastListener: () => { + this._pendingEmitters.delete(req); + this._send(new UnsubscribeEventMessage(this._workerId, req)); + req = null; + } + }); + return emitter.event; + } + handleMessage(message) { + if (!message || !message.vsWorker) { + return; + } + if (this._workerId !== -1 && message.vsWorker !== this._workerId) { + return; + } + this._handleMessage(message); + } + _handleMessage(msg) { + switch (msg.type) { + case 1 /* MessageType.Reply */: + return this._handleReplyMessage(msg); + case 0 /* MessageType.Request */: + return this._handleRequestMessage(msg); + case 2 /* MessageType.SubscribeEvent */: + return this._handleSubscribeEventMessage(msg); + case 3 /* MessageType.Event */: + return this._handleEventMessage(msg); + case 4 /* MessageType.UnsubscribeEvent */: + return this._handleUnsubscribeEventMessage(msg); + } + } + _handleReplyMessage(replyMessage) { + if (!this._pendingReplies[replyMessage.seq]) { + console.warn('Got reply to unknown seq'); + return; + } + const reply = this._pendingReplies[replyMessage.seq]; + delete this._pendingReplies[replyMessage.seq]; + if (replyMessage.err) { + let err = replyMessage.err; + if (replyMessage.err.$isError) { + err = new Error(); + err.name = replyMessage.err.name; + err.message = replyMessage.err.message; + err.stack = replyMessage.err.stack; + } + reply.reject(err); + return; + } + reply.resolve(replyMessage.res); + } + _handleRequestMessage(requestMessage) { + const req = requestMessage.req; + const result = this._handler.handleMessage(requestMessage.method, requestMessage.args); + result.then((r) => { + this._send(new ReplyMessage(this._workerId, req, r, undefined)); + }, (e) => { + if (e.detail instanceof Error) { + // Loading errors have a detail property that points to the actual error + e.detail = transformErrorForSerialization(e.detail); + } + this._send(new ReplyMessage(this._workerId, req, undefined, transformErrorForSerialization(e))); + }); + } + _handleSubscribeEventMessage(msg) { + const req = msg.req; + const disposable = this._handler.handleEvent(msg.eventName, msg.arg)((event) => { + this._send(new EventMessage(this._workerId, req, event)); + }); + this._pendingEvents.set(req, disposable); + } + _handleEventMessage(msg) { + if (!this._pendingEmitters.has(msg.req)) { + console.warn('Got event for unknown req'); + return; + } + this._pendingEmitters.get(msg.req).fire(msg.event); + } + _handleUnsubscribeEventMessage(msg) { + if (!this._pendingEvents.has(msg.req)) { + console.warn('Got unsubscribe for unknown req'); + return; + } + this._pendingEvents.get(msg.req).dispose(); + this._pendingEvents.delete(msg.req); + } + _send(msg) { + const transfer = []; + if (msg.type === 0 /* MessageType.Request */) { + for (let i = 0; i < msg.args.length; i++) { + if (msg.args[i] instanceof ArrayBuffer) { + transfer.push(msg.args[i]); + } + } + } + else if (msg.type === 1 /* MessageType.Reply */) { + if (msg.res instanceof ArrayBuffer) { + transfer.push(msg.res); + } + } + this._handler.sendMessage(msg, transfer); + } +} +function propertyIsEvent(name) { + // Assume a property is an event if it has a form of "onSomething" + return name[0] === 'o' && name[1] === 'n' && isUpperAsciiLetter(name.charCodeAt(2)); +} +function propertyIsDynamicEvent(name) { + // Assume a property is a dynamic event (a method that returns an event) if it has a form of "onDynamicSomething" + return /^onDynamic/.test(name) && isUpperAsciiLetter(name.charCodeAt(9)); +} +function createProxyObject(methodNames, invoke, proxyListen) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const createProxyDynamicEvent = (eventName) => { + return function (arg) { + return proxyListen(eventName, arg); + }; + }; + const result = {}; + for (const methodName of methodNames) { + if (propertyIsDynamicEvent(methodName)) { + result[methodName] = createProxyDynamicEvent(methodName); + continue; + } + if (propertyIsEvent(methodName)) { + result[methodName] = proxyListen(methodName, undefined); + continue; + } + result[methodName] = createProxyMethod(methodName); + } + return result; +} +/** + * Worker side + */ +class SimpleWorkerServer { + constructor(postMessage, requestHandlerFactory) { + this._requestHandlerFactory = requestHandlerFactory; + this._requestHandler = null; + this._protocol = new SimpleWorkerProtocol({ + sendMessage: (msg, transfer) => { + postMessage(msg, transfer); + }, + handleMessage: (method, args) => this._handleMessage(method, args), + handleEvent: (eventName, arg) => this._handleEvent(eventName, arg) + }); + } + onmessage(msg) { + this._protocol.handleMessage(msg); + } + _handleMessage(method, args) { + if (method === INITIALIZE) { + return this.initialize(args[0], args[1], args[2], args[3]); + } + if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args)); + } + catch (e) { + return Promise.reject(e); + } + } + _handleEvent(eventName, arg) { + if (!this._requestHandler) { + throw new Error(`Missing requestHandler`); + } + if (propertyIsDynamicEvent(eventName)) { + const event = this._requestHandler[eventName].call(this._requestHandler, arg); + if (typeof event !== 'function') { + throw new Error(`Missing dynamic event ${eventName} on request handler.`); + } + return event; + } + if (propertyIsEvent(eventName)) { + const event = this._requestHandler[eventName]; + if (typeof event !== 'function') { + throw new Error(`Missing event ${eventName} on request handler.`); + } + return event; + } + throw new Error(`Malformed event name ${eventName}`); + } + initialize(workerId, loaderConfig, moduleId, hostMethods) { + this._protocol.setWorkerId(workerId); + const proxyMethodRequest = (method, args) => { + return this._protocol.sendMessage(method, args); + }; + const proxyListen = (eventName, arg) => { + return this._protocol.listen(eventName, arg); + }; + const hostProxy = createProxyObject(hostMethods, proxyMethodRequest, proxyListen); + if (this._requestHandlerFactory) { + // static request handler + this._requestHandler = this._requestHandlerFactory(hostProxy); + return Promise.resolve(getAllMethodNames(this._requestHandler)); + } + if (loaderConfig) { + // Remove 'baseUrl', handling it is beyond scope for now + if (typeof loaderConfig.baseUrl !== 'undefined') { + delete loaderConfig['baseUrl']; + } + if (typeof loaderConfig.paths !== 'undefined') { + if (typeof loaderConfig.paths.vs !== 'undefined') { + delete loaderConfig.paths['vs']; + } + } + if (typeof loaderConfig.trustedTypesPolicy !== 'undefined') { + // don't use, it has been destroyed during serialize + delete loaderConfig['trustedTypesPolicy']; + } + // Since this is in a web worker, enable catching errors + loaderConfig.catchError = true; + globalThis.require.config(loaderConfig); + } + return new Promise((resolve, reject) => { + // Use the global require to be sure to get the global config + // ESM-comment-begin + // const req = (globalThis.require || require); + // ESM-comment-end + // ESM-uncomment-begin + const req = globalThis.require; + // ESM-uncomment-end + req([moduleId], (module) => { + this._requestHandler = module.create(hostProxy); + if (!this._requestHandler) { + reject(new Error(`No RequestHandler!`)); + return; + } + resolve(getAllMethodNames(this._requestHandler)); + }, reject); + }); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Represents information about a specific difference between two sequences. + */ +class DiffChange { + /** + * Constructs a new DiffChange with the given sequence information + * and content. + */ + constructor(originalStart, originalLength, modifiedStart, modifiedLength) { + //Debug.Assert(originalLength > 0 || modifiedLength > 0, "originalLength and modifiedLength cannot both be <= 0"); + this.originalStart = originalStart; + this.originalLength = originalLength; + this.modifiedStart = modifiedStart; + this.modifiedLength = modifiedLength; + } + /** + * The end point (exclusive) of the change in the original sequence. + */ + getOriginalEnd() { + return this.originalStart + this.originalLength; + } + /** + * The end point (exclusive) of the change in the modified sequence. + */ + getModifiedEnd() { + return this.modifiedStart + this.modifiedLength; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function numberHash(val, initialHashVal) { + return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32 +} +function stringHash(s, hashVal) { + hashVal = numberHash(149417, hashVal); + for (let i = 0, length = s.length; i < length; i++) { + hashVal = numberHash(s.charCodeAt(i), hashVal); + } + return hashVal; +} +function leftRotate(value, bits, totalBits = 32) { + // delta + bits = totalBits + const delta = totalBits - bits; + // All ones, expect `delta` zeros aligned to the right + const mask = ~((1 << delta) - 1); + // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits) + return ((value << bits) | ((mask & value) >>> delta)) >>> 0; +} +function fill(dest, index = 0, count = dest.byteLength, value = 0) { + for (let i = 0; i < count; i++) { + dest[index + i] = value; + } +} +function leftPad(value, length, char = '0') { + while (value.length < length) { + value = char + value; + } + return value; +} +function toHexString(bufferOrValue, bitsize = 32) { + if (bufferOrValue instanceof ArrayBuffer) { + return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join(''); + } + return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4); +} +/** + * A SHA1 implementation that works with strings and does not allocate. + */ +class StringSHA1 { + static { this._bigBlock32 = new DataView(new ArrayBuffer(320)); } // 80 * 4 = 320 + constructor() { + this._h0 = 0x67452301; + this._h1 = 0xEFCDAB89; + this._h2 = 0x98BADCFE; + this._h3 = 0x10325476; + this._h4 = 0xC3D2E1F0; + this._buff = new Uint8Array(64 /* SHA1Constant.BLOCK_SIZE */ + 3 /* to fit any utf-8 */); + this._buffDV = new DataView(this._buff.buffer); + this._buffLen = 0; + this._totalLen = 0; + this._leftoverHighSurrogate = 0; + this._finished = false; + } + update(str) { + const strLen = str.length; + if (strLen === 0) { + return; + } + const buff = this._buff; + let buffLen = this._buffLen; + let leftoverHighSurrogate = this._leftoverHighSurrogate; + let charCode; + let offset; + if (leftoverHighSurrogate !== 0) { + charCode = leftoverHighSurrogate; + offset = -1; + leftoverHighSurrogate = 0; + } + else { + charCode = str.charCodeAt(0); + offset = 0; + } + while (true) { + let codePoint = charCode; + if (isHighSurrogate(charCode)) { + if (offset + 1 < strLen) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + offset++; + codePoint = computeCodePoint(charCode, nextCharCode); + } + else { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + } + else { + // last character is a surrogate pair + leftoverHighSurrogate = charCode; + break; + } + } + else if (isLowSurrogate(charCode)) { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + buffLen = this._push(buff, buffLen, codePoint); + offset++; + if (offset < strLen) { + charCode = str.charCodeAt(offset); + } + else { + break; + } + } + this._buffLen = buffLen; + this._leftoverHighSurrogate = leftoverHighSurrogate; + } + _push(buff, buffLen, codePoint) { + if (codePoint < 0x0080) { + buff[buffLen++] = codePoint; + } + else if (codePoint < 0x0800) { + buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else if (codePoint < 0x10000) { + buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else { + buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + if (buffLen >= 64 /* SHA1Constant.BLOCK_SIZE */) { + this._step(); + buffLen -= 64 /* SHA1Constant.BLOCK_SIZE */; + this._totalLen += 64 /* SHA1Constant.BLOCK_SIZE */; + // take last 3 in case of UTF8 overflow + buff[0] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 0]; + buff[1] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 1]; + buff[2] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 2]; + } + return buffLen; + } + digest() { + if (!this._finished) { + this._finished = true; + if (this._leftoverHighSurrogate) { + // illegal => unicode replacement character + this._leftoverHighSurrogate = 0; + this._buffLen = this._push(this._buff, this._buffLen, 65533 /* SHA1Constant.UNICODE_REPLACEMENT */); + } + this._totalLen += this._buffLen; + this._wrapUp(); + } + return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4); + } + _wrapUp() { + this._buff[this._buffLen++] = 0x80; + fill(this._buff, this._buffLen); + if (this._buffLen > 56) { + this._step(); + fill(this._buff); + } + // this will fit because the mantissa can cover up to 52 bits + const ml = 8 * this._totalLen; + this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false); + this._buffDV.setUint32(60, ml % 4294967296, false); + this._step(); + } + _step() { + const bigBlock32 = StringSHA1._bigBlock32; + const data = this._buffDV; + for (let j = 0; j < 64 /* 16*4 */; j += 4) { + bigBlock32.setUint32(j, data.getUint32(j, false), false); + } + for (let j = 64; j < 320 /* 80*4 */; j += 4) { + bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false); + } + let a = this._h0; + let b = this._h1; + let c = this._h2; + let d = this._h3; + let e = this._h4; + let f, k; + let temp; + for (let j = 0; j < 80; j++) { + if (j < 20) { + f = (b & c) | ((~b) & d); + k = 0x5A827999; + } + else if (j < 40) { + f = b ^ c ^ d; + k = 0x6ED9EBA1; + } + else if (j < 60) { + f = (b & c) | (b & d) | (c & d); + k = 0x8F1BBCDC; + } + else { + f = b ^ c ^ d; + k = 0xCA62C1D6; + } + temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff; + e = d; + d = c; + c = leftRotate(b, 30); + b = a; + a = temp; + } + this._h0 = (this._h0 + a) & 0xffffffff; + this._h1 = (this._h1 + b) & 0xffffffff; + this._h2 = (this._h2 + c) & 0xffffffff; + this._h3 = (this._h3 + d) & 0xffffffff; + this._h4 = (this._h4 + e) & 0xffffffff; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class StringDiffSequence { + constructor(source) { + this.source = source; + } + getElements() { + const source = this.source; + const characters = new Int32Array(source.length); + for (let i = 0, len = source.length; i < len; i++) { + characters[i] = source.charCodeAt(i); + } + return characters; + } +} +function stringDiff(original, modified, pretty) { + return new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes; +} +// +// The code below has been ported from a C# implementation in VS +// +class Debug { + static Assert(condition, message) { + if (!condition) { + throw new Error(message); + } + } +} +class MyArray { + /** + * Copies a range of elements from an Array starting at the specified source index and pastes + * them to another Array starting at the specified destination index. The length and the indexes + * are specified as 64-bit integers. + * sourceArray: + * The Array that contains the data to copy. + * sourceIndex: + * A 64-bit integer that represents the index in the sourceArray at which copying begins. + * destinationArray: + * The Array that receives the data. + * destinationIndex: + * A 64-bit integer that represents the index in the destinationArray at which storing begins. + * length: + * A 64-bit integer that represents the number of elements to copy. + */ + static Copy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } + static Copy2(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } +} +/** + * A utility class which helps to create the set of DiffChanges from + * a difference operation. This class accepts original DiffElements and + * modified DiffElements that are involved in a particular change. The + * MarkNextChange() method can be called to mark the separation between + * distinct changes. At the end, the Changes property can be called to retrieve + * the constructed changes. + */ +class DiffChangeHelper { + /** + * Constructs a new DiffChangeHelper for the given DiffSequences. + */ + constructor() { + this.m_changes = []; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_originalCount = 0; + this.m_modifiedCount = 0; + } + /** + * Marks the beginning of the next change in the set of differences. + */ + MarkNextChange() { + // Only add to the list if there is something to add + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Add the new change to our list + this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount)); + } + // Reset for the next change + this.m_originalCount = 0; + this.m_modifiedCount = 0; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + } + /** + * Adds the original element at the given position to the elements + * affected by the current change. The modified index gives context + * to the change position with respect to the original sequence. + * @param originalIndex The index of the original element to add. + * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence. + */ + AddOriginalElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_originalCount++; + } + /** + * Adds the modified element at the given position to the elements + * affected by the current change. The original index gives context + * to the change position with respect to the modified sequence. + * @param originalIndex The index of the original element that provides corresponding position in the original sequence. + * @param modifiedIndex The index of the modified element to add. + */ + AddModifiedElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_modifiedCount++; + } + /** + * Retrieves all of the changes marked by the class. + */ + getChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + return this.m_changes; + } + /** + * Retrieves all of the changes marked by the class in the reverse order + */ + getReverseChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + this.m_changes.reverse(); + return this.m_changes; + } +} +/** + * An implementation of the difference algorithm described in + * "An O(ND) Difference Algorithm and its variations" by Eugene W. Myers + */ +class LcsDiff { + /** + * Constructs the DiffFinder + */ + constructor(originalSequence, modifiedSequence, continueProcessingPredicate = null) { + this.ContinueProcessingPredicate = continueProcessingPredicate; + this._originalSequence = originalSequence; + this._modifiedSequence = modifiedSequence; + const [originalStringElements, originalElementsOrHash, originalHasStrings] = LcsDiff._getElements(originalSequence); + const [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = LcsDiff._getElements(modifiedSequence); + this._hasStrings = (originalHasStrings && modifiedHasStrings); + this._originalStringElements = originalStringElements; + this._originalElementsOrHash = originalElementsOrHash; + this._modifiedStringElements = modifiedStringElements; + this._modifiedElementsOrHash = modifiedElementsOrHash; + this.m_forwardHistory = []; + this.m_reverseHistory = []; + } + static _isStringArray(arr) { + return (arr.length > 0 && typeof arr[0] === 'string'); + } + static _getElements(sequence) { + const elements = sequence.getElements(); + if (LcsDiff._isStringArray(elements)) { + const hashes = new Int32Array(elements.length); + for (let i = 0, len = elements.length; i < len; i++) { + hashes[i] = stringHash(elements[i], 0); + } + return [elements, hashes, true]; + } + if (elements instanceof Int32Array) { + return [[], elements, false]; + } + return [[], new Int32Array(elements), false]; + } + ElementsAreEqual(originalIndex, newIndex) { + if (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true); + } + ElementsAreStrictEqual(originalIndex, newIndex) { + if (!this.ElementsAreEqual(originalIndex, newIndex)) { + return false; + } + const originalElement = LcsDiff._getStrictElement(this._originalSequence, originalIndex); + const modifiedElement = LcsDiff._getStrictElement(this._modifiedSequence, newIndex); + return (originalElement === modifiedElement); + } + static _getStrictElement(sequence, index) { + if (typeof sequence.getStrictElement === 'function') { + return sequence.getStrictElement(index); + } + return null; + } + OriginalElementsAreEqual(index1, index2) { + if (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true); + } + ModifiedElementsAreEqual(index1, index2) { + if (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true); + } + ComputeDiff(pretty) { + return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty); + } + /** + * Computes the differences between the original and modified input + * sequences on the bounded range. + * @returns An array of the differences between the two input sequences. + */ + _ComputeDiff(originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) { + const quitEarlyArr = [false]; + let changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr); + if (pretty) { + // We have to clean up the computed diff to be more intuitive + // but it turns out this cannot be done correctly until the entire set + // of diffs have been computed + changes = this.PrettifyChanges(changes); + } + return { + quitEarly: quitEarlyArr[0], + changes: changes + }; + } + /** + * Private helper method which computes the differences on the bounded range + * recursively. + * @returns An array of the differences between the two input sequences. + */ + ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) { + quitEarlyArr[0] = false; + // Find the start of the differences + while (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) { + originalStart++; + modifiedStart++; + } + // Find the end of the differences + while (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) { + originalEnd--; + modifiedEnd--; + } + // In the special case where we either have all insertions or all deletions or the sequences are identical + if (originalStart > originalEnd || modifiedStart > modifiedEnd) { + let changes; + if (modifiedStart <= modifiedEnd) { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + // All insertions + changes = [ + new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + else if (originalStart <= originalEnd) { + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // All deletions + changes = [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0) + ]; + } + else { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // Identical sequences - No differences + changes = []; + } + return changes; + } + // This problem can be solved using the Divide-And-Conquer technique. + const midOriginalArr = [0]; + const midModifiedArr = [0]; + const result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr); + const midOriginal = midOriginalArr[0]; + const midModified = midModifiedArr[0]; + if (result !== null) { + // Result is not-null when there was enough memory to compute the changes while + // searching for the recursion point + return result; + } + else if (!quitEarlyArr[0]) { + // We can break the problem down recursively by finding the changes in the + // First Half: (originalStart, modifiedStart) to (midOriginal, midModified) + // Second Half: (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd) + // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point + const leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr); + let rightChanges = []; + if (!quitEarlyArr[0]) { + rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr); + } + else { + // We didn't have time to finish the first half, so we don't have time to compute this half. + // Consider the entire rest of the sequence different. + rightChanges = [ + new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1) + ]; + } + return this.ConcatenateChanges(leftChanges, rightChanges); + } + // If we hit here, we quit early, and so can't return anything meaningful + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) { + let forwardChanges = null; + let reverseChanges = null; + // First, walk backward through the forward diagonals history + let changeHelper = new DiffChangeHelper(); + let diagonalMin = diagonalForwardStart; + let diagonalMax = diagonalForwardEnd; + let diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset; + let lastOriginalIndex = -1073741824 /* Constants.MIN_SAFE_SMALL_INTEGER */; + let historyIndex = this.m_forwardHistory.length - 1; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalForwardBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + // Vertical line (the element is an insert) + originalIndex = forwardPoints[diagonal + 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex); + diagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration + } + else { + // Horizontal line (the element is a deletion) + originalIndex = forwardPoints[diagonal - 1] + 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex - 1; + changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + forwardPoints = this.m_forwardHistory[historyIndex]; + diagonalForwardBase = forwardPoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = forwardPoints.length - 1; + } + } while (--historyIndex >= -1); + // Ironically, we get the forward changes as the reverse of the + // order we added them since we technically added them backwards + forwardChanges = changeHelper.getReverseChanges(); + if (quitEarlyArr[0]) { + // TODO: Calculate a partial from the reverse diagonals. + // For now, just assume everything after the midOriginal/midModified point is a diff + let originalStartPoint = midOriginalArr[0] + 1; + let modifiedStartPoint = midModifiedArr[0] + 1; + if (forwardChanges !== null && forwardChanges.length > 0) { + const lastForwardChange = forwardChanges[forwardChanges.length - 1]; + originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd()); + modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd()); + } + reverseChanges = [ + new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1) + ]; + } + else { + // Now walk backward through the reverse diagonals history + changeHelper = new DiffChangeHelper(); + diagonalMin = diagonalReverseStart; + diagonalMax = diagonalReverseEnd; + diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset; + lastOriginalIndex = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalReverseBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + // Horizontal line (the element is a deletion)) + originalIndex = reversePoints[diagonal + 1] - 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex + 1; + changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration + } + else { + // Vertical line (the element is an insertion) + originalIndex = reversePoints[diagonal - 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + reversePoints = this.m_reverseHistory[historyIndex]; + diagonalReverseBase = reversePoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = reversePoints.length - 1; + } + } while (--historyIndex >= -1); + // There are cases where the reverse history will find diffs that + // are correct, but not intuitive, so we need shift them. + reverseChanges = changeHelper.getChanges(); + } + return this.ConcatenateChanges(forwardChanges, reverseChanges); + } + /** + * Given the range to compute the diff on, this method finds the point: + * (midOriginal, midModified) + * that exists in the middle of the LCS of the two sequences and + * is the point at which the LCS problem may be broken down recursively. + * This method will try to keep the LCS trace in memory. If the LCS recursion + * point is calculated and the full trace is available in memory, then this method + * will return the change list. + * @param originalStart The start bound of the original sequence range + * @param originalEnd The end bound of the original sequence range + * @param modifiedStart The start bound of the modified sequence range + * @param modifiedEnd The end bound of the modified sequence range + * @param midOriginal The middle point of the original sequence range + * @param midModified The middle point of the modified sequence range + * @returns The diff changes, if available, otherwise null + */ + ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) { + let originalIndex = 0, modifiedIndex = 0; + let diagonalForwardStart = 0, diagonalForwardEnd = 0; + let diagonalReverseStart = 0, diagonalReverseEnd = 0; + // To traverse the edit graph and produce the proper LCS, our actual + // start position is just outside the given boundary + originalStart--; + modifiedStart--; + // We set these up to make the compiler happy, but they will + // be replaced before we return with the actual recursion point + midOriginalArr[0] = 0; + midModifiedArr[0] = 0; + // Clear out the history + this.m_forwardHistory = []; + this.m_reverseHistory = []; + // Each cell in the two arrays corresponds to a diagonal in the edit graph. + // The integer value in the cell represents the originalIndex of the furthest + // reaching point found so far that ends in that diagonal. + // The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number. + const maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart); + const numDiagonals = maxDifferences + 1; + const forwardPoints = new Int32Array(numDiagonals); + const reversePoints = new Int32Array(numDiagonals); + // diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart) + // diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd) + const diagonalForwardBase = (modifiedEnd - modifiedStart); + const diagonalReverseBase = (originalEnd - originalStart); + // diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalForwardBase) + // diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalReverseBase) + const diagonalForwardOffset = (originalStart - modifiedStart); + const diagonalReverseOffset = (originalEnd - modifiedEnd); + // delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers + // relative to the start diagonal with diagonal numbers relative to the end diagonal. + // The Even/Oddn-ness of this delta is important for determining when we should check for overlap + const delta = diagonalReverseBase - diagonalForwardBase; + const deltaIsEven = (delta % 2 === 0); + // Here we set up the start and end points as the furthest points found so far + // in both the forward and reverse directions, respectively + forwardPoints[diagonalForwardBase] = originalStart; + reversePoints[diagonalReverseBase] = originalEnd; + // Remember if we quit early, and thus need to do a best-effort result instead of a real result. + quitEarlyArr[0] = false; + // A couple of points: + // --With this method, we iterate on the number of differences between the two sequences. + // The more differences there actually are, the longer this will take. + // --Also, as the number of differences increases, we have to search on diagonals further + // away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse). + // --We extend on even diagonals (relative to the reference diagonal) only when numDifferences + // is even and odd diagonals only when numDifferences is odd. + for (let numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) { + let furthestOriginalIndex = 0; + let furthestModifiedIndex = 0; + // Run the algorithm in the forward direction + diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + for (let diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalStart, modifiedStart) + if (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + originalIndex = forwardPoints[diagonal + 1]; + } + else { + originalIndex = forwardPoints[diagonal - 1] + 1; + } + modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset; + // Save the current originalIndex so we can test for false overlap in step 3 + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // so long as the elements are equal. + while (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) { + originalIndex++; + modifiedIndex++; + } + forwardPoints[diagonal] = originalIndex; + if (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) { + furthestOriginalIndex = originalIndex; + furthestModifiedIndex = modifiedIndex; + } + // STEP 3: If delta is odd (overlap first happens on forward when delta is odd) + // and diagonal is in the range of reverse diagonals computed for numDifferences-1 + // (the previous iteration; we haven't computed reverse diagonals for numDifferences yet) + // then check for overlap. + if (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) { + if (originalIndex >= reversePoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex <= reversePoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Check to see if we should be quitting early, before moving on to the next iteration. + const matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2; + if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) { + // We can't finish, so skip ahead to generating a result from what we have. + quitEarlyArr[0] = true; + // Use the furthest distance we got in the forward direction. + midOriginalArr[0] = furthestOriginalIndex; + midModifiedArr[0] = furthestModifiedIndex; + if (matchLengthOfLongest > 0 && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // Enough of the history is in memory to walk it backwards + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // We didn't actually remember enough of the history. + //Since we are quitting the diff early, we need to shift back the originalStart and modified start + //back into the boundary limits since we decremented their value above beyond the boundary limit. + originalStart++; + modifiedStart++; + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + } + // Run the algorithm in the reverse direction + diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + for (let diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalEnd, modifiedEnd) + if (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + originalIndex = reversePoints[diagonal + 1] - 1; + } + else { + originalIndex = reversePoints[diagonal - 1]; + } + modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset; + // Save the current originalIndex so we can test for false overlap + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // as long as the elements are equal. + while (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) { + originalIndex--; + modifiedIndex--; + } + reversePoints[diagonal] = originalIndex; + // STEP 4: If delta is even (overlap first happens on reverse when delta is even) + // and diagonal is in the range of forward diagonals computed for numDifferences + // then check for overlap. + if (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) { + if (originalIndex <= forwardPoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex >= forwardPoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Save current vectors to history before the next iteration + if (numDifferences <= 1447 /* LocalConstants.MaxDifferencesHistory */) { + // We are allocating space for one extra int, which we fill with + // the index of the diagonal base index + let temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2); + temp[0] = diagonalForwardBase - diagonalForwardStart + 1; + MyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1); + this.m_forwardHistory.push(temp); + temp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2); + temp[0] = diagonalReverseBase - diagonalReverseStart + 1; + MyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1); + this.m_reverseHistory.push(temp); + } + } + // If we got here, then we have the full trace in history. We just have to convert it to a change list + // NOTE: This part is a bit messy + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + /** + * Shifts the given changes to provide a more intuitive diff. + * While the first element in a diff matches the first element after the diff, + * we shift the diff down. + * + * @param changes The list of changes to shift + * @returns The shifted changes + */ + PrettifyChanges(changes) { + // Shift all the changes down first + for (let i = 0; i < changes.length; i++) { + const change = changes[i]; + const originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this._originalElementsOrHash.length; + const modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this._modifiedElementsOrHash.length; + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + while (change.originalStart + change.originalLength < originalStop + && change.modifiedStart + change.modifiedLength < modifiedStop + && (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) + && (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) { + const startStrictEqual = this.ElementsAreStrictEqual(change.originalStart, change.modifiedStart); + const endStrictEqual = this.ElementsAreStrictEqual(change.originalStart + change.originalLength, change.modifiedStart + change.modifiedLength); + if (endStrictEqual && !startStrictEqual) { + // moving the change down would create an equal change, but the elements are not strict equal + break; + } + change.originalStart++; + change.modifiedStart++; + } + const mergedChangeArr = [null]; + if (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) { + changes[i] = mergedChangeArr[0]; + changes.splice(i + 1, 1); + i--; + continue; + } + } + // Shift changes back up until we hit empty or whitespace-only lines + for (let i = changes.length - 1; i >= 0; i--) { + const change = changes[i]; + let originalStop = 0; + let modifiedStop = 0; + if (i > 0) { + const prevChange = changes[i - 1]; + originalStop = prevChange.originalStart + prevChange.originalLength; + modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength; + } + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + let bestDelta = 0; + let bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength); + for (let delta = 1;; delta++) { + const originalStart = change.originalStart - delta; + const modifiedStart = change.modifiedStart - delta; + if (originalStart < originalStop || modifiedStart < modifiedStop) { + break; + } + if (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) { + break; + } + if (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) { + break; + } + const touchingPreviousChange = (originalStart === originalStop && modifiedStart === modifiedStop); + const score = ((touchingPreviousChange ? 5 : 0) + + this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength)); + if (score > bestScore) { + bestScore = score; + bestDelta = delta; + } + } + change.originalStart -= bestDelta; + change.modifiedStart -= bestDelta; + const mergedChangeArr = [null]; + if (i > 0 && this.ChangesOverlap(changes[i - 1], changes[i], mergedChangeArr)) { + changes[i - 1] = mergedChangeArr[0]; + changes.splice(i, 1); + i++; + continue; + } + } + // There could be multiple longest common substrings. + // Give preference to the ones containing longer lines + if (this._hasStrings) { + for (let i = 1, len = changes.length; i < len; i++) { + const aChange = changes[i - 1]; + const bChange = changes[i]; + const matchedLength = bChange.originalStart - aChange.originalStart - aChange.originalLength; + const aOriginalStart = aChange.originalStart; + const bOriginalEnd = bChange.originalStart + bChange.originalLength; + const abOriginalLength = bOriginalEnd - aOriginalStart; + const aModifiedStart = aChange.modifiedStart; + const bModifiedEnd = bChange.modifiedStart + bChange.modifiedLength; + const abModifiedLength = bModifiedEnd - aModifiedStart; + // Avoid wasting a lot of time with these searches + if (matchedLength < 5 && abOriginalLength < 20 && abModifiedLength < 20) { + const t = this._findBetterContiguousSequence(aOriginalStart, abOriginalLength, aModifiedStart, abModifiedLength, matchedLength); + if (t) { + const [originalMatchStart, modifiedMatchStart] = t; + if (originalMatchStart !== aChange.originalStart + aChange.originalLength || modifiedMatchStart !== aChange.modifiedStart + aChange.modifiedLength) { + // switch to another sequence that has a better score + aChange.originalLength = originalMatchStart - aChange.originalStart; + aChange.modifiedLength = modifiedMatchStart - aChange.modifiedStart; + bChange.originalStart = originalMatchStart + matchedLength; + bChange.modifiedStart = modifiedMatchStart + matchedLength; + bChange.originalLength = bOriginalEnd - bChange.originalStart; + bChange.modifiedLength = bModifiedEnd - bChange.modifiedStart; + } + } + } + } + } + return changes; + } + _findBetterContiguousSequence(originalStart, originalLength, modifiedStart, modifiedLength, desiredLength) { + if (originalLength < desiredLength || modifiedLength < desiredLength) { + return null; + } + const originalMax = originalStart + originalLength - desiredLength + 1; + const modifiedMax = modifiedStart + modifiedLength - desiredLength + 1; + let bestScore = 0; + let bestOriginalStart = 0; + let bestModifiedStart = 0; + for (let i = originalStart; i < originalMax; i++) { + for (let j = modifiedStart; j < modifiedMax; j++) { + const score = this._contiguousSequenceScore(i, j, desiredLength); + if (score > 0 && score > bestScore) { + bestScore = score; + bestOriginalStart = i; + bestModifiedStart = j; + } + } + } + if (bestScore > 0) { + return [bestOriginalStart, bestModifiedStart]; + } + return null; + } + _contiguousSequenceScore(originalStart, modifiedStart, length) { + let score = 0; + for (let l = 0; l < length; l++) { + if (!this.ElementsAreEqual(originalStart + l, modifiedStart + l)) { + return 0; + } + score += this._originalStringElements[originalStart + l].length; + } + return score; + } + _OriginalIsBoundary(index) { + if (index <= 0 || index >= this._originalElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._originalStringElements[index])); + } + _OriginalRegionIsBoundary(originalStart, originalLength) { + if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) { + return true; + } + if (originalLength > 0) { + const originalEnd = originalStart + originalLength; + if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) { + return true; + } + } + return false; + } + _ModifiedIsBoundary(index) { + if (index <= 0 || index >= this._modifiedElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._modifiedStringElements[index])); + } + _ModifiedRegionIsBoundary(modifiedStart, modifiedLength) { + if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) { + return true; + } + if (modifiedLength > 0) { + const modifiedEnd = modifiedStart + modifiedLength; + if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) { + return true; + } + } + return false; + } + _boundaryScore(originalStart, originalLength, modifiedStart, modifiedLength) { + const originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0); + const modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0); + return (originalScore + modifiedScore); + } + /** + * Concatenates the two input DiffChange lists and returns the resulting + * list. + * @param The left changes + * @param The right changes + * @returns The concatenated list + */ + ConcatenateChanges(left, right) { + const mergedChangeArr = []; + if (left.length === 0 || right.length === 0) { + return (right.length > 0) ? right : left; + } + else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) { + // Since we break the problem down recursively, it is possible that we + // might recurse in the middle of a change thereby splitting it into + // two changes. Here in the combining stage, we detect and fuse those + // changes back together + const result = new Array(left.length + right.length - 1); + MyArray.Copy(left, 0, result, 0, left.length - 1); + result[left.length - 1] = mergedChangeArr[0]; + MyArray.Copy(right, 1, result, left.length, right.length - 1); + return result; + } + else { + const result = new Array(left.length + right.length); + MyArray.Copy(left, 0, result, 0, left.length); + MyArray.Copy(right, 0, result, left.length, right.length); + return result; + } + } + /** + * Returns true if the two changes overlap and can be merged into a single + * change + * @param left The left change + * @param right The right change + * @param mergedChange The merged change if the two overlap, null otherwise + * @returns True if the two changes overlap + */ + ChangesOverlap(left, right, mergedChangeArr) { + Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change'); + Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change'); + if (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + const originalStart = left.originalStart; + let originalLength = left.originalLength; + const modifiedStart = left.modifiedStart; + let modifiedLength = left.modifiedLength; + if (left.originalStart + left.originalLength >= right.originalStart) { + originalLength = right.originalStart + right.originalLength - left.originalStart; + } + if (left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart; + } + mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength); + return true; + } + else { + mergedChangeArr[0] = null; + return false; + } + } + /** + * Helper method used to clip a diagonal index to the range of valid + * diagonals. This also decides whether or not the diagonal index, + * if it exceeds the boundary, should be clipped to the boundary or clipped + * one inside the boundary depending on the Even/Odd status of the boundary + * and numDifferences. + * @param diagonal The index of the diagonal to clip. + * @param numDifferences The current number of differences being iterated upon. + * @param diagonalBaseIndex The base reference diagonal. + * @param numDiagonals The total number of diagonals. + * @returns The clipped diagonal index. + */ + ClipDiagonalBound(diagonal, numDifferences, diagonalBaseIndex, numDiagonals) { + if (diagonal >= 0 && diagonal < numDiagonals) { + // Nothing to clip, its in range + return diagonal; + } + // diagonalsBelow: The number of diagonals below the reference diagonal + // diagonalsAbove: The number of diagonals above the reference diagonal + const diagonalsBelow = diagonalBaseIndex; + const diagonalsAbove = numDiagonals - diagonalBaseIndex - 1; + const diffEven = (numDifferences % 2 === 0); + if (diagonal < 0) { + const lowerBoundEven = (diagonalsBelow % 2 === 0); + return (diffEven === lowerBoundEven) ? 0 : 1; + } + else { + const upperBoundEven = (diagonalsAbove % 2 === 0); + return (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let safeProcess; +// Native sandbox environment +const vscodeGlobal = globalThis.vscode; +if (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') { + const sandboxProcess = vscodeGlobal.process; + safeProcess = { + get platform() { return sandboxProcess.platform; }, + get arch() { return sandboxProcess.arch; }, + get env() { return sandboxProcess.env; }, + cwd() { return sandboxProcess.cwd(); } + }; +} +// Native node.js environment +else if (typeof process !== 'undefined') { + safeProcess = { + get platform() { return process.platform; }, + get arch() { return process.arch; }, + get env() { return process.env; }, + cwd() { return process.env['VSCODE_CWD'] || process.cwd(); } + }; +} +// Web environment +else { + safeProcess = { + // Supported + get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; }, + get arch() { return undefined; /* arch is undefined in web */ }, + // Unsupported + get env() { return {}; }, + cwd() { return '/'; } + }; +} +/** + * Provides safe access to the `cwd` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `/`. + * + * @skipMangle + */ +const cwd = safeProcess.cwd; +/** + * Provides safe access to the `env` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `{}`. + */ +const env = safeProcess.env; +/** + * Provides safe access to the `platform` property in node.js, sandboxed or web + * environments. + */ +const platform = safeProcess.platform; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace +// Copied from: https://github.com/nodejs/node/commits/v20.9.0/lib/path.js +// Excluding: the change that adds primordials +// (https://github.com/nodejs/node/commit/187a862d221dec42fa9a5c4214e7034d9092792f and others) +/** + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +const CHAR_UPPERCASE_A = 65; /* A */ +const CHAR_LOWERCASE_A = 97; /* a */ +const CHAR_UPPERCASE_Z = 90; /* Z */ +const CHAR_LOWERCASE_Z = 122; /* z */ +const CHAR_DOT = 46; /* . */ +const CHAR_FORWARD_SLASH = 47; /* / */ +const CHAR_BACKWARD_SLASH = 92; /* \ */ +const CHAR_COLON = 58; /* : */ +const CHAR_QUESTION_MARK = 63; /* ? */ +class ErrorInvalidArgType extends Error { + constructor(name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && expected.indexOf('not ') === 0) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } + else { + determiner = 'must be'; + } + const type = name.indexOf('.') !== -1 ? 'property' : 'argument'; + let msg = `The "${name}" ${type} ${determiner} of type ${expected}`; + msg += `. Received type ${typeof actual}`; + super(msg); + this.code = 'ERR_INVALID_ARG_TYPE'; + } +} +function validateObject(pathObject, name) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new ErrorInvalidArgType(name, 'Object', pathObject); + } +} +function validateString(value, name) { + if (typeof value !== 'string') { + throw new ErrorInvalidArgType(name, 'string', value); + } +} +const platformIsWin32 = (platform === 'win32'); +function isPathSeparator(code) { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +} +function isPosixPathSeparator(code) { + return code === CHAR_FORWARD_SLASH; +} +function isWindowsDeviceRoot(code) { + return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) || + (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z); +} +// Resolves . and .. elements in a path with directory names +function normalizeString(path, allowAboveRoot, separator, isPathSeparator) { + let res = ''; + let lastSegmentLength = 0; + let lastSlash = -1; + let dots = 0; + let code = 0; + for (let i = 0; i <= path.length; ++i) { + if (i < path.length) { + code = path.charCodeAt(i); + } + else if (isPathSeparator(code)) { + break; + } + else { + code = CHAR_FORWARD_SLASH; + } + if (isPathSeparator(code)) { + if (lastSlash === i - 1 || dots === 1) ; + else if (dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || + res.charCodeAt(res.length - 1) !== CHAR_DOT || + res.charCodeAt(res.length - 2) !== CHAR_DOT) { + if (res.length > 2) { + const lastSlashIndex = res.lastIndexOf(separator); + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } + else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); + } + lastSlash = i; + dots = 0; + continue; + } + else if (res.length !== 0) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + res += res.length > 0 ? `${separator}..` : '..'; + lastSegmentLength = 2; + } + } + else { + if (res.length > 0) { + res += `${separator}${path.slice(lastSlash + 1, i)}`; + } + else { + res = path.slice(lastSlash + 1, i); + } + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } + else if (code === CHAR_DOT && dots !== -1) { + ++dots; + } + else { + dots = -1; + } + } + return res; +} +function formatExt(ext) { + return ext ? `${ext[0] === '.' ? '' : '.'}${ext}` : ''; +} +function _format$1(sep, pathObject) { + validateObject(pathObject, 'pathObject'); + const dir = pathObject.dir || pathObject.root; + const base = pathObject.base || + `${pathObject.name || ''}${formatExt(pathObject.ext)}`; + if (!dir) { + return base; + } + return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`; +} +const win32 = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedDevice = ''; + let resolvedTail = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1; i--) { + let path; + if (i >= 0) { + path = pathSegments[i]; + validateString(path, `paths[${i}]`); + // Skip empty entries + if (path.length === 0) { + continue; + } + } + else if (resolvedDevice.length === 0) { + path = cwd(); + } + else { + // Windows has the concept of drive-specific current working + // directories. If we've resolved a drive letter but not yet an + // absolute path, get cwd for that drive, or the process cwd if + // the drive cwd is not available. We're sure the device is not + // a UNC path at this points, because UNC paths are always absolute. + path = env[`=${resolvedDevice}`] || cwd(); + // Verify that a cwd was found and that it actually points + // to our drive. If not, default to the drive's root. + if (path === undefined || + (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() && + path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) { + path = `${resolvedDevice}\\`; + } + } + const len = path.length; + let rootEnd = 0; + let device = ''; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator + rootEnd = 1; + isAbsolute = true; + } + } + else if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an + // absolute path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len || j !== last) { + // We matched a UNC root + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + if (device.length > 0) { + if (resolvedDevice.length > 0) { + if (device.toLowerCase() !== resolvedDevice.toLowerCase()) { + // This path points to another device so it is not applicable + continue; + } + } + else { + resolvedDevice = device; + } + } + if (resolvedAbsolute) { + if (resolvedDevice.length > 0) { + break; + } + } + else { + resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; + resolvedAbsolute = isAbsolute; + if (isAbsolute && resolvedDevice.length > 0) { + break; + } + } + } + // At this point the path should be resolved to a full absolute path, + // but handle relative paths to be safe (might happen when process.cwd() + // fails) + // Normalize the tail path + resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\', isPathSeparator); + return resolvedAbsolute ? + `${resolvedDevice}\\${resolvedTail}` : + `${resolvedDevice}${resolvedTail}` || '.'; + }, + normalize(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = 0; + let device; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + // `path` contains just a single char, exit early to avoid + // unnecessary work + return isPosixPathSeparator(code) ? '\\' : path; + } + if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an absolute + // path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + // Return the normalized version of the UNC root since there + // is nothing left to process + return `\\\\${firstPart}\\${path.slice(last)}\\`; + } + if (j !== last) { + // We matched a UNC root with leftovers + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + let tail = rootEnd < len ? + normalizeString(path.slice(rootEnd), !isAbsolute, '\\', isPathSeparator) : + ''; + if (tail.length === 0 && !isAbsolute) { + tail = '.'; + } + if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { + tail += '\\'; + } + if (device === undefined) { + return isAbsolute ? `\\${tail}` : tail; + } + return isAbsolute ? `${device}\\${tail}` : `${device}${tail}`; + }, + isAbsolute(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return false; + } + const code = path.charCodeAt(0); + return isPathSeparator(code) || + // Possible device root + (len > 2 && + isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON && + isPathSeparator(path.charCodeAt(2))); + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + let firstPart; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = firstPart = arg; + } + else { + joined += `\\${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + // Make sure that the joined path doesn't start with two slashes, because + // normalize() will mistake it for a UNC path then. + // + // This step is skipped when it is very clear that the user actually + // intended to point at a UNC path. This is assumed when the first + // non-empty string arguments starts with exactly two slashes followed by + // at least one more non-slash character. + // + // Note that for normalize() to treat a path as a UNC path it needs to + // have at least 2 components, so we don't filter for that here. + // This means that the user can use join to construct UNC paths from + // a server name and a share name; for example: + // path.join('//server', 'share') -> '\\\\server\\share\\') + let needsReplace = true; + let slashCount = 0; + if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) { + ++slashCount; + const firstLen = firstPart.length; + if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) { + ++slashCount; + if (firstLen > 2) { + if (isPathSeparator(firstPart.charCodeAt(2))) { + ++slashCount; + } + else { + // We matched a UNC path in the first part + needsReplace = false; + } + } + } + } + if (needsReplace) { + // Find any more consecutive slashes we need to replace + while (slashCount < joined.length && + isPathSeparator(joined.charCodeAt(slashCount))) { + slashCount++; + } + // Replace the slashes if needed + if (slashCount >= 2) { + joined = `\\${joined.slice(slashCount)}`; + } + } + return win32.normalize(joined); + }, + // It will solve the relative path from `from` to `to`, for instance: + // from = 'C:\\orandea\\test\\aaa' + // to = 'C:\\orandea\\impl\\bbb' + // The output of the function should be: '..\\..\\impl\\bbb' + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + const fromOrig = win32.resolve(from); + const toOrig = win32.resolve(to); + if (fromOrig === toOrig) { + return ''; + } + from = fromOrig.toLowerCase(); + to = toOrig.toLowerCase(); + if (from === to) { + return ''; + } + // Trim any leading backslashes + let fromStart = 0; + while (fromStart < from.length && + from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) { + fromStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let fromEnd = from.length; + while (fromEnd - 1 > fromStart && + from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) { + fromEnd--; + } + const fromLen = fromEnd - fromStart; + // Trim any leading backslashes + let toStart = 0; + while (toStart < to.length && + to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + toStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let toEnd = to.length; + while (toEnd - 1 > toStart && + to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) { + toEnd--; + } + const toLen = toEnd - toStart; + // Compare paths to find the longest common path from root + const length = fromLen < toLen ? fromLen : toLen; + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_BACKWARD_SLASH) { + lastCommonSep = i; + } + } + // We found a mismatch before the first common path separator was seen, so + // return the original `to`. + if (i !== length) { + if (lastCommonSep === -1) { + return toOrig; + } + } + else { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' + return toOrig.slice(toStart + i + 1); + } + if (i === 2) { + // We get here if `from` is the device root. + // For example: from='C:\\'; to='C:\\foo' + return toOrig.slice(toStart + i); + } + } + if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='C:\\foo\\bar'; to='C:\\foo' + lastCommonSep = i; + } + else if (i === 2) { + // We get here if `to` is the device root. + // For example: from='C:\\foo\\bar'; to='C:\\' + lastCommonSep = 3; + } + } + if (lastCommonSep === -1) { + lastCommonSep = 0; + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` and + // `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { + out += out.length === 0 ? '..' : '\\..'; + } + } + toStart += lastCommonSep; + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) { + return `${out}${toOrig.slice(toStart, toEnd)}`; + } + if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + ++toStart; + } + return toOrig.slice(toStart, toEnd); + }, + toNamespacedPath(path) { + // Note: this will *probably* throw somewhere. + if (typeof path !== 'string' || path.length === 0) { + return path; + } + const resolvedPath = win32.resolve(path); + if (resolvedPath.length <= 2) { + return path; + } + if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { + // Possible UNC root + if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { + const code = resolvedPath.charCodeAt(2); + if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { + // Matched non-long UNC root, convert the path to a long UNC path + return `\\\\?\\UNC\\${resolvedPath.slice(2)}`; + } + } + } + else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) && + resolvedPath.charCodeAt(1) === CHAR_COLON && + resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) { + // Matched device root, convert the path to a long UNC path + return `\\\\?\\${resolvedPath}`; + } + return path; + }, + dirname(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = -1; + let offset = 0; + const code = path.charCodeAt(0); + if (len === 1) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work or a dot. + return isPathSeparator(code) ? path : '.'; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = offset = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + return path; + } + if (j !== last) { + // We matched a UNC root with leftovers + // Offset by 1 to include the separator after the UNC root to + // treat it as a "normal root" on top of a (UNC) root + rootEnd = offset = j + 1; + } + } + } + } + // Possible device root + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2; + offset = rootEnd; + } + let end = -1; + let matchedSlash = true; + for (let i = len - 1; i >= offset; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + if (rootEnd === -1) { + return '.'; + } + end = rootEnd; + } + return path.slice(0, end); + }, + basename(path, suffix) { + if (suffix !== undefined) { + validateString(suffix, 'suffix'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + isWindowsDeviceRoot(path.charCodeAt(0)) && + path.charCodeAt(1) === CHAR_COLON) { + start = 2; + } + if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { + if (suffix === path) { + return ''; + } + let extIdx = suffix.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === suffix.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= start; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let start = 0; + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + path.charCodeAt(1) === CHAR_COLON && + isWindowsDeviceRoot(path.charCodeAt(0))) { + start = startPart = 2; + } + for (let i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: _format$1.bind(null, '\\'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const len = path.length; + let rootEnd = 0; + let code = path.charCodeAt(0); + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + ret.base = ret.name = path; + return ret; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + rootEnd = j; + } + else if (j !== last) { + // We matched a UNC root with leftovers + rootEnd = j + 1; + } + } + } + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + if (len <= 2) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 2; + if (isPathSeparator(path.charCodeAt(2))) { + if (len === 3) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 3; + } + } + if (rootEnd > 0) { + ret.root = path.slice(0, rootEnd); + } + let startDot = -1; + let startPart = rootEnd; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= rootEnd; --i) { + code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(startPart, end); + } + else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + ret.ext = path.slice(startDot, end); + } + } + // If the directory is the root, use the entire root as the `dir` including + // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the + // trailing slash (`C:\abc\def` -> `C:\abc`). + if (startPart > 0 && startPart !== rootEnd) { + ret.dir = path.slice(0, startPart - 1); + } + else { + ret.dir = ret.root; + } + return ret; + }, + sep: '\\', + delimiter: ';', + win32: null, + posix: null +}; +const posixCwd = (() => { + if (platformIsWin32) { + // Converts Windows' backslash path separators to POSIX forward slashes + // and truncates any drive indicator + const regexp = /\\/g; + return () => { + const cwd$1 = cwd().replace(regexp, '/'); + return cwd$1.slice(cwd$1.indexOf('/')); + }; + } + // We're already on POSIX, no need for any transformations + return () => cwd(); +})(); +const posix$1 = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedPath = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + const path = i >= 0 ? pathSegments[i] : posixCwd(); + validateString(path, `paths[${i}]`); + // Skip empty entries + if (path.length === 0) { + continue; + } + resolvedPath = `${path}/${resolvedPath}`; + resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + // Normalize the path + resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator); + if (resolvedAbsolute) { + return `/${resolvedPath}`; + } + return resolvedPath.length > 0 ? resolvedPath : '.'; + }, + normalize(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; + // Normalize the path + path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator); + if (path.length === 0) { + if (isAbsolute) { + return '/'; + } + return trailingSeparator ? './' : '.'; + } + if (trailingSeparator) { + path += '/'; + } + return isAbsolute ? `/${path}` : path; + }, + isAbsolute(path) { + validateString(path, 'path'); + return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = arg; + } + else { + joined += `/${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + return posix$1.normalize(joined); + }, + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + // Trim leading forward slashes. + from = posix$1.resolve(from); + to = posix$1.resolve(to); + if (from === to) { + return ''; + } + const fromStart = 1; + const fromEnd = from.length; + const fromLen = fromEnd - fromStart; + const toStart = 1; + const toLen = to.length - toStart; + // Compare paths to find the longest common path from root + const length = (fromLen < toLen ? fromLen : toLen); + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_FORWARD_SLASH) { + lastCommonSep = i; + } + } + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } + if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } + else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } + else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo/bar'; to='/' + lastCommonSep = 0; + } + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` + // and `from`. + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { + out += out.length === 0 ? '..' : '/..'; + } + } + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts. + return `${out}${to.slice(toStart + lastCommonSep)}`; + }, + toNamespacedPath(path) { + // Non-op on posix systems + return path; + }, + dirname(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let end = -1; + let matchedSlash = true; + for (let i = path.length - 1; i >= 1; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + return hasRoot ? '/' : '.'; + } + if (hasRoot && end === 1) { + return '//'; + } + return path.slice(0, end); + }, + basename(path, suffix) { + if (suffix !== undefined) { + validateString(suffix, 'ext'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { + if (suffix === path) { + return ''; + } + let extIdx = suffix.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === suffix.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + for (let i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: _format$1.bind(null, '/'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } + else { + start = 0; + } + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= start; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + const start = startPart === 0 && isAbsolute ? 1 : startPart; + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(start, end); + } + else { + ret.name = path.slice(start, startDot); + ret.base = path.slice(start, end); + ret.ext = path.slice(startDot, end); + } + } + if (startPart > 0) { + ret.dir = path.slice(0, startPart - 1); + } + else if (isAbsolute) { + ret.dir = '/'; + } + return ret; + }, + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; +posix$1.win32 = win32.win32 = win32; +posix$1.posix = win32.posix = posix$1; +(platformIsWin32 ? win32.normalize : posix$1.normalize); +(platformIsWin32 ? win32.resolve : posix$1.resolve); +(platformIsWin32 ? win32.relative : posix$1.relative); +(platformIsWin32 ? win32.dirname : posix$1.dirname); +(platformIsWin32 ? win32.basename : posix$1.basename); +(platformIsWin32 ? win32.extname : posix$1.extname); +(platformIsWin32 ? win32.sep : posix$1.sep); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const _schemePattern = /^\w[\w\d+.-]*$/; +const _singleSlashStart = /^\//; +const _doubleSlashStart = /^\/\//; +function _validateUri(ret, _strict) { + // scheme, must be set + if (!ret.scheme && _strict) { + throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`); + } + // scheme, https://tools.ietf.org/html/rfc3986#section-3.1 + // ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) + if (ret.scheme && !_schemePattern.test(ret.scheme)) { + throw new Error('[UriError]: Scheme contains illegal characters.'); + } + // path, http://tools.ietf.org/html/rfc3986#section-3.3 + // If a URI contains an authority component, then the path component + // must either be empty or begin with a slash ("/") character. If a URI + // does not contain an authority component, then the path cannot begin + // with two slash characters ("//"). + if (ret.path) { + if (ret.authority) { + if (!_singleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'); + } + } + else { + if (_doubleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'); + } + } + } +} +// for a while we allowed uris *without* schemes and this is the migration +// for them, e.g. an uri without scheme and without strict-mode warns and falls +// back to the file-scheme. that should cause the least carnage and still be a +// clear warning +function _schemeFix(scheme, _strict) { + if (!scheme && !_strict) { + return 'file'; + } + return scheme; +} +// implements a bit of https://tools.ietf.org/html/rfc3986#section-5 +function _referenceResolution(scheme, path) { + // the slash-character is our 'default base' as we don't + // support constructing URIs relative to other URIs. This + // also means that we alter and potentially break paths. + // see https://tools.ietf.org/html/rfc3986#section-5.1.4 + switch (scheme) { + case 'https': + case 'http': + case 'file': + if (!path) { + path = _slash; + } + else if (path[0] !== _slash) { + path = _slash + path; + } + break; + } + return path; +} +const _empty = ''; +const _slash = '/'; +const _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/; +/** + * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986. + * This class is a simple parser which creates the basic component parts + * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation + * and encoding. + * + * ```txt + * foo://example.com:8042/over/there?name=ferret#nose + * \_/ \______________/\_________/ \_________/ \__/ + * | | | | | + * scheme authority path query fragment + * | _____________________|__ + * / \ / \ + * urn:example:animal:ferret:nose + * ``` + */ +let URI$2 = class URI { + static isUri(thing) { + if (thing instanceof URI) { + return true; + } + if (!thing) { + return false; + } + return typeof thing.authority === 'string' + && typeof thing.fragment === 'string' + && typeof thing.path === 'string' + && typeof thing.query === 'string' + && typeof thing.scheme === 'string' + && typeof thing.fsPath === 'string' + && typeof thing.with === 'function' + && typeof thing.toString === 'function'; + } + /** + * @internal + */ + constructor(schemeOrData, authority, path, query, fragment, _strict = false) { + if (typeof schemeOrData === 'object') { + this.scheme = schemeOrData.scheme || _empty; + this.authority = schemeOrData.authority || _empty; + this.path = schemeOrData.path || _empty; + this.query = schemeOrData.query || _empty; + this.fragment = schemeOrData.fragment || _empty; + // no validation because it's this URI + // that creates uri components. + // _validateUri(this); + } + else { + this.scheme = _schemeFix(schemeOrData, _strict); + this.authority = authority || _empty; + this.path = _referenceResolution(this.scheme, path || _empty); + this.query = query || _empty; + this.fragment = fragment || _empty; + _validateUri(this, _strict); + } + } + // ---- filesystem path ----------------------- + /** + * Returns a string representing the corresponding file system path of this URI. + * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the + * platform specific path separator. + * + * * Will *not* validate the path for invalid characters and semantics. + * * Will *not* look at the scheme of this URI. + * * The result shall *not* be used for display purposes but for accessing a file on disk. + * + * + * The *difference* to `URI#path` is the use of the platform specific separator and the handling + * of UNC paths. See the below sample of a file-uri with an authority (UNC path). + * + * ```ts + const u = URI.parse('file://server/c$/folder/file.txt') + u.authority === 'server' + u.path === '/shares/c$/file.txt' + u.fsPath === '\\server\c$\folder\file.txt' + ``` + * + * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path, + * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working + * with URIs that represent files on disk (`file` scheme). + */ + get fsPath() { + // if (this.scheme !== 'file') { + // console.warn(`[UriError] calling fsPath with scheme ${this.scheme}`); + // } + return uriToFsPath(this, false); + } + // ---- modify to new ------------------------- + with(change) { + if (!change) { + return this; + } + let { scheme, authority, path, query, fragment } = change; + if (scheme === undefined) { + scheme = this.scheme; + } + else if (scheme === null) { + scheme = _empty; + } + if (authority === undefined) { + authority = this.authority; + } + else if (authority === null) { + authority = _empty; + } + if (path === undefined) { + path = this.path; + } + else if (path === null) { + path = _empty; + } + if (query === undefined) { + query = this.query; + } + else if (query === null) { + query = _empty; + } + if (fragment === undefined) { + fragment = this.fragment; + } + else if (fragment === null) { + fragment = _empty; + } + if (scheme === this.scheme + && authority === this.authority + && path === this.path + && query === this.query + && fragment === this.fragment) { + return this; + } + return new Uri(scheme, authority, path, query, fragment); + } + // ---- parse & validate ------------------------ + /** + * Creates a new URI from a string, e.g. `http://www.example.com/some/path`, + * `file:///usr/home`, or `scheme:with/path`. + * + * @param value A string which represents an URI (see `URI#toString`). + */ + static parse(value, _strict = false) { + const match = _regexp.exec(value); + if (!match) { + return new Uri(_empty, _empty, _empty, _empty, _empty); + } + return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict); + } + /** + * Creates a new URI from a file system path, e.g. `c:\my\files`, + * `/usr/home`, or `\\server\share\some\path`. + * + * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument + * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as** + * `URI.parse('file://' + path)` because the path might contain characters that are + * interpreted (# and ?). See the following sample: + * ```ts + const good = URI.file('/coding/c#/project1'); + good.scheme === 'file'; + good.path === '/coding/c#/project1'; + good.fragment === ''; + const bad = URI.parse('file://' + '/coding/c#/project1'); + bad.scheme === 'file'; + bad.path === '/coding/c'; // path is now broken + bad.fragment === '/project1'; + ``` + * + * @param path A file system path (see `URI#fsPath`) + */ + static file(path) { + let authority = _empty; + // normalize to fwd-slashes on windows, + // on other systems bwd-slashes are valid + // filename character, eg /f\oo/ba\r.txt + if (isWindows) { + path = path.replace(/\\/g, _slash); + } + // check for authority as used in UNC shares + // or use the path as given + if (path[0] === _slash && path[1] === _slash) { + const idx = path.indexOf(_slash, 2); + if (idx === -1) { + authority = path.substring(2); + path = _slash; + } + else { + authority = path.substring(2, idx); + path = path.substring(idx) || _slash; + } + } + return new Uri('file', authority, path, _empty, _empty); + } + /** + * Creates new URI from uri components. + * + * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs + * validation and should be used for untrusted uri components retrieved from storage, + * user input, command arguments etc + */ + static from(components, strict) { + const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict); + return result; + } + /** + * Join a URI path with path fragments and normalizes the resulting path. + * + * @param uri The input URI. + * @param pathFragment The path fragment to add to the URI path. + * @returns The resulting URI. + */ + static joinPath(uri, ...pathFragment) { + if (!uri.path) { + throw new Error(`[UriError]: cannot call joinPath on URI without path`); + } + let newPath; + if (isWindows && uri.scheme === 'file') { + newPath = URI.file(win32.join(uriToFsPath(uri, true), ...pathFragment)).path; + } + else { + newPath = posix$1.join(uri.path, ...pathFragment); + } + return uri.with({ path: newPath }); + } + // ---- printing/externalize --------------------------- + /** + * Creates a string representation for this URI. It's guaranteed that calling + * `URI.parse` with the result of this function creates an URI which is equal + * to this URI. + * + * * The result shall *not* be used for display purposes but for externalization or transport. + * * The result will be encoded using the percentage encoding and encoding happens mostly + * ignore the scheme-specific encoding rules. + * + * @param skipEncoding Do not encode the result, default is `false` + */ + toString(skipEncoding = false) { + return _asFormatted(this, skipEncoding); + } + toJSON() { + return this; + } + static revive(data) { + if (!data) { + return data; + } + else if (data instanceof URI) { + return data; + } + else { + const result = new Uri(data); + result._formatted = data.external ?? null; + result._fsPath = data._sep === _pathSepMarker ? data.fsPath ?? null : null; + return result; + } + } +}; +const _pathSepMarker = isWindows ? 1 : undefined; +// This class exists so that URI is compatible with vscode.Uri (API). +class Uri extends URI$2 { + constructor() { + super(...arguments); + this._formatted = null; + this._fsPath = null; + } + get fsPath() { + if (!this._fsPath) { + this._fsPath = uriToFsPath(this, false); + } + return this._fsPath; + } + toString(skipEncoding = false) { + if (!skipEncoding) { + if (!this._formatted) { + this._formatted = _asFormatted(this, false); + } + return this._formatted; + } + else { + // we don't cache that + return _asFormatted(this, true); + } + } + toJSON() { + const res = { + $mid: 1 /* MarshalledId.Uri */ + }; + // cached state + if (this._fsPath) { + res.fsPath = this._fsPath; + res._sep = _pathSepMarker; + } + if (this._formatted) { + res.external = this._formatted; + } + //--- uri components + if (this.path) { + res.path = this.path; + } + // TODO + // this isn't correct and can violate the UriComponents contract but + // this is part of the vscode.Uri API and we shouldn't change how that + // works anymore + if (this.scheme) { + res.scheme = this.scheme; + } + if (this.authority) { + res.authority = this.authority; + } + if (this.query) { + res.query = this.query; + } + if (this.fragment) { + res.fragment = this.fragment; + } + return res; + } +} +// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2 +const encodeTable = { + [58 /* CharCode.Colon */]: '%3A', // gen-delims + [47 /* CharCode.Slash */]: '%2F', + [63 /* CharCode.QuestionMark */]: '%3F', + [35 /* CharCode.Hash */]: '%23', + [91 /* CharCode.OpenSquareBracket */]: '%5B', + [93 /* CharCode.CloseSquareBracket */]: '%5D', + [64 /* CharCode.AtSign */]: '%40', + [33 /* CharCode.ExclamationMark */]: '%21', // sub-delims + [36 /* CharCode.DollarSign */]: '%24', + [38 /* CharCode.Ampersand */]: '%26', + [39 /* CharCode.SingleQuote */]: '%27', + [40 /* CharCode.OpenParen */]: '%28', + [41 /* CharCode.CloseParen */]: '%29', + [42 /* CharCode.Asterisk */]: '%2A', + [43 /* CharCode.Plus */]: '%2B', + [44 /* CharCode.Comma */]: '%2C', + [59 /* CharCode.Semicolon */]: '%3B', + [61 /* CharCode.Equals */]: '%3D', + [32 /* CharCode.Space */]: '%20', +}; +function encodeURIComponentFast(uriComponent, isPath, isAuthority) { + let res = undefined; + let nativeEncodePos = -1; + for (let pos = 0; pos < uriComponent.length; pos++) { + const code = uriComponent.charCodeAt(pos); + // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3 + if ((code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */) + || (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) + || (code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */) + || code === 45 /* CharCode.Dash */ + || code === 46 /* CharCode.Period */ + || code === 95 /* CharCode.Underline */ + || code === 126 /* CharCode.Tilde */ + || (isPath && code === 47 /* CharCode.Slash */) + || (isAuthority && code === 91 /* CharCode.OpenSquareBracket */) + || (isAuthority && code === 93 /* CharCode.CloseSquareBracket */) + || (isAuthority && code === 58 /* CharCode.Colon */)) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // check if we write into a new string (by default we try to return the param) + if (res !== undefined) { + res += uriComponent.charAt(pos); + } + } + else { + // encoding needed, we need to allocate a new string + if (res === undefined) { + res = uriComponent.substr(0, pos); + } + // check with default table first + const escaped = encodeTable[code]; + if (escaped !== undefined) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // append escaped variant to result + res += escaped; + } + else if (nativeEncodePos === -1) { + // use native encode only when needed + nativeEncodePos = pos; + } + } + } + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos)); + } + return res !== undefined ? res : uriComponent; +} +function encodeURIComponentMinimal(path) { + let res = undefined; + for (let pos = 0; pos < path.length; pos++) { + const code = path.charCodeAt(pos); + if (code === 35 /* CharCode.Hash */ || code === 63 /* CharCode.QuestionMark */) { + if (res === undefined) { + res = path.substr(0, pos); + } + res += encodeTable[code]; + } + else { + if (res !== undefined) { + res += path[pos]; + } + } + } + return res !== undefined ? res : path; +} +/** + * Compute `fsPath` for the given uri + */ +function uriToFsPath(uri, keepDriveLetterCasing) { + let value; + if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') { + // unc path: file://shares/c$/far/boo + value = `//${uri.authority}${uri.path}`; + } + else if (uri.path.charCodeAt(0) === 47 /* CharCode.Slash */ + && (uri.path.charCodeAt(1) >= 65 /* CharCode.A */ && uri.path.charCodeAt(1) <= 90 /* CharCode.Z */ || uri.path.charCodeAt(1) >= 97 /* CharCode.a */ && uri.path.charCodeAt(1) <= 122 /* CharCode.z */) + && uri.path.charCodeAt(2) === 58 /* CharCode.Colon */) { + if (!keepDriveLetterCasing) { + // windows drive letter: file:///c:/far/boo + value = uri.path[1].toLowerCase() + uri.path.substr(2); + } + else { + value = uri.path.substr(1); + } + } + else { + // other path + value = uri.path; + } + if (isWindows) { + value = value.replace(/\//g, '\\'); + } + return value; +} +/** + * Create the external version of a uri + */ +function _asFormatted(uri, skipEncoding) { + const encoder = !skipEncoding + ? encodeURIComponentFast + : encodeURIComponentMinimal; + let res = ''; + let { scheme, authority, path, query, fragment } = uri; + if (scheme) { + res += scheme; + res += ':'; + } + if (authority || scheme === 'file') { + res += _slash; + res += _slash; + } + if (authority) { + let idx = authority.indexOf('@'); + if (idx !== -1) { + // <user>@<auth> + const userinfo = authority.substr(0, idx); + authority = authority.substr(idx + 1); + idx = userinfo.lastIndexOf(':'); + if (idx === -1) { + res += encoder(userinfo, false, false); + } + else { + // <user>:<pass>@<auth> + res += encoder(userinfo.substr(0, idx), false, false); + res += ':'; + res += encoder(userinfo.substr(idx + 1), false, true); + } + res += '@'; + } + authority = authority.toLowerCase(); + idx = authority.lastIndexOf(':'); + if (idx === -1) { + res += encoder(authority, false, true); + } + else { + // <auth>:<port> + res += encoder(authority.substr(0, idx), false, true); + res += authority.substr(idx); + } + } + if (path) { + // lower-case windows drive letters in /C:/fff or C:/fff + if (path.length >= 3 && path.charCodeAt(0) === 47 /* CharCode.Slash */ && path.charCodeAt(2) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(1); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // "/c:".length === 3 + } + } + else if (path.length >= 2 && path.charCodeAt(1) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(0); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // "/c:".length === 3 + } + } + // encode the rest of the path + res += encoder(path, true, false); + } + if (query) { + res += '?'; + res += encoder(query, false, false); + } + if (fragment) { + res += '#'; + res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment; + } + return res; +} +// --- decode +function decodeURIComponentGraceful(str) { + try { + return decodeURIComponent(str); + } + catch { + if (str.length > 3) { + return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3)); + } + else { + return str; + } + } +} +const _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g; +function percentDecode(str) { + if (!str.match(_rEncodedAsHex)) { + return str; + } + return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match)); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A position in the editor. + */ +let Position$2 = class Position { + constructor(lineNumber, column) { + this.lineNumber = lineNumber; + this.column = column; + } + /** + * Create a new position from this position. + * + * @param newLineNumber new line number + * @param newColumn new column + */ + with(newLineNumber = this.lineNumber, newColumn = this.column) { + if (newLineNumber === this.lineNumber && newColumn === this.column) { + return this; + } + else { + return new Position(newLineNumber, newColumn); + } + } + /** + * Derive a new position from this position. + * + * @param deltaLineNumber line number delta + * @param deltaColumn column delta + */ + delta(deltaLineNumber = 0, deltaColumn = 0) { + return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn); + } + /** + * Test if this position equals other position + */ + equals(other) { + return Position.equals(this, other); + } + /** + * Test if position `a` equals position `b` + */ + static equals(a, b) { + if (!a && !b) { + return true; + } + return (!!a && + !!b && + a.lineNumber === b.lineNumber && + a.column === b.column); + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be false. + */ + isBefore(other) { + return Position.isBefore(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be false. + */ + static isBefore(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column < b.column; + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be true. + */ + isBeforeOrEqual(other) { + return Position.isBeforeOrEqual(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be true. + */ + static isBeforeOrEqual(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column <= b.column; + } + /** + * A function that compares positions, useful for sorting + */ + static compare(a, b) { + const aLineNumber = a.lineNumber | 0; + const bLineNumber = b.lineNumber | 0; + if (aLineNumber === bLineNumber) { + const aColumn = a.column | 0; + const bColumn = b.column | 0; + return aColumn - bColumn; + } + return aLineNumber - bLineNumber; + } + /** + * Clone this position. + */ + clone() { + return new Position(this.lineNumber, this.column); + } + /** + * Convert to a human-readable representation. + */ + toString() { + return '(' + this.lineNumber + ',' + this.column + ')'; + } + // --- + /** + * Create a `Position` from an `IPosition`. + */ + static lift(pos) { + return new Position(pos.lineNumber, pos.column); + } + /** + * Test if `obj` is an `IPosition`. + */ + static isIPosition(obj) { + return (obj + && (typeof obj.lineNumber === 'number') + && (typeof obj.column === 'number')); + } + toJSON() { + return { + lineNumber: this.lineNumber, + column: this.column + }; + } +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) + */ +let Range$b = class Range { + constructor(startLineNumber, startColumn, endLineNumber, endColumn) { + if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) { + this.startLineNumber = endLineNumber; + this.startColumn = endColumn; + this.endLineNumber = startLineNumber; + this.endColumn = startColumn; + } + else { + this.startLineNumber = startLineNumber; + this.startColumn = startColumn; + this.endLineNumber = endLineNumber; + this.endColumn = endColumn; + } + } + /** + * Test if this range is empty. + */ + isEmpty() { + return Range.isEmpty(this); + } + /** + * Test if `range` is empty. + */ + static isEmpty(range) { + return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn); + } + /** + * Test if position is in this range. If the position is at the edges, will return true. + */ + containsPosition(position) { + return Range.containsPosition(this, position); + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return true. + */ + static containsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return false. + * @internal + */ + static strictContainsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) { + return false; + } + return true; + } + /** + * Test if range is in this range. If the range is equal to this range, will return true. + */ + containsRange(range) { + return Range.containsRange(this, range); + } + /** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ + static containsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true. + */ + strictContainsRange(range) { + return Range.strictContainsRange(this, range); + } + /** + * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false. + */ + static strictContainsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) { + return false; + } + return true; + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + plusRange(range) { + return Range.plusRange(this, range); + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + static plusRange(a, b) { + let startLineNumber; + let startColumn; + let endLineNumber; + let endColumn; + if (b.startLineNumber < a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = b.startColumn; + } + else if (b.startLineNumber === a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = Math.min(b.startColumn, a.startColumn); + } + else { + startLineNumber = a.startLineNumber; + startColumn = a.startColumn; + } + if (b.endLineNumber > a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = b.endColumn; + } + else if (b.endLineNumber === a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = Math.max(b.endColumn, a.endColumn); + } + else { + endLineNumber = a.endLineNumber; + endColumn = a.endColumn; + } + return new Range(startLineNumber, startColumn, endLineNumber, endColumn); + } + /** + * A intersection of the two ranges. + */ + intersectRanges(range) { + return Range.intersectRanges(this, range); + } + /** + * A intersection of the two ranges. + */ + static intersectRanges(a, b) { + let resultStartLineNumber = a.startLineNumber; + let resultStartColumn = a.startColumn; + let resultEndLineNumber = a.endLineNumber; + let resultEndColumn = a.endColumn; + const otherStartLineNumber = b.startLineNumber; + const otherStartColumn = b.startColumn; + const otherEndLineNumber = b.endLineNumber; + const otherEndColumn = b.endColumn; + if (resultStartLineNumber < otherStartLineNumber) { + resultStartLineNumber = otherStartLineNumber; + resultStartColumn = otherStartColumn; + } + else if (resultStartLineNumber === otherStartLineNumber) { + resultStartColumn = Math.max(resultStartColumn, otherStartColumn); + } + if (resultEndLineNumber > otherEndLineNumber) { + resultEndLineNumber = otherEndLineNumber; + resultEndColumn = otherEndColumn; + } + else if (resultEndLineNumber === otherEndLineNumber) { + resultEndColumn = Math.min(resultEndColumn, otherEndColumn); + } + // Check if selection is now empty + if (resultStartLineNumber > resultEndLineNumber) { + return null; + } + if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) { + return null; + } + return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn); + } + /** + * Test if this range equals other. + */ + equalsRange(other) { + return Range.equalsRange(this, other); + } + /** + * Test if range `a` equals `b`. + */ + static equalsRange(a, b) { + if (!a && !b) { + return true; + } + return (!!a && + !!b && + a.startLineNumber === b.startLineNumber && + a.startColumn === b.startColumn && + a.endLineNumber === b.endLineNumber && + a.endColumn === b.endColumn); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + getEndPosition() { + return Range.getEndPosition(this); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + static getEndPosition(range) { + return new Position$2(range.endLineNumber, range.endColumn); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + getStartPosition() { + return Range.getStartPosition(this); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + static getStartPosition(range) { + return new Position$2(range.startLineNumber, range.startColumn); + } + /** + * Transform to a user presentable string representation. + */ + toString() { + return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']'; + } + /** + * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. + */ + setEndPosition(endLineNumber, endColumn) { + return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + /** + * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. + */ + setStartPosition(startLineNumber, startColumn) { + return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + /** + * Create a new empty range using this range's start position. + */ + collapseToStart() { + return Range.collapseToStart(this); + } + /** + * Create a new empty range using this range's start position. + */ + static collapseToStart(range) { + return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn); + } + /** + * Create a new empty range using this range's end position. + */ + collapseToEnd() { + return Range.collapseToEnd(this); + } + /** + * Create a new empty range using this range's end position. + */ + static collapseToEnd(range) { + return new Range(range.endLineNumber, range.endColumn, range.endLineNumber, range.endColumn); + } + /** + * Moves the range by the given amount of lines. + */ + delta(lineCount) { + return new Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn); + } + // --- + static fromPositions(start, end = start) { + return new Range(start.lineNumber, start.column, end.lineNumber, end.column); + } + static lift(range) { + if (!range) { + return null; + } + return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + /** + * Test if `obj` is an `IRange`. + */ + static isIRange(obj) { + return (obj + && (typeof obj.startLineNumber === 'number') + && (typeof obj.startColumn === 'number') + && (typeof obj.endLineNumber === 'number') + && (typeof obj.endColumn === 'number')); + } + /** + * Test if the two ranges are touching in any way. + */ + static areIntersectingOrTouching(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * Test if the two ranges are intersecting. If the ranges are touching it returns true. + */ + static areIntersecting(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the startPosition and then on the endPosition + */ + static compareRangesUsingStarts(a, b) { + if (a && b) { + const aStartLineNumber = a.startLineNumber | 0; + const bStartLineNumber = b.startLineNumber | 0; + if (aStartLineNumber === bStartLineNumber) { + const aStartColumn = a.startColumn | 0; + const bStartColumn = b.startColumn | 0; + if (aStartColumn === bStartColumn) { + const aEndLineNumber = a.endLineNumber | 0; + const bEndLineNumber = b.endLineNumber | 0; + if (aEndLineNumber === bEndLineNumber) { + const aEndColumn = a.endColumn | 0; + const bEndColumn = b.endColumn | 0; + return aEndColumn - bEndColumn; + } + return aEndLineNumber - bEndLineNumber; + } + return aStartColumn - bStartColumn; + } + return aStartLineNumber - bStartLineNumber; + } + const aExists = (a ? 1 : 0); + const bExists = (b ? 1 : 0); + return aExists - bExists; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the endPosition and then on the startPosition + */ + static compareRangesUsingEnds(a, b) { + if (a.endLineNumber === b.endLineNumber) { + if (a.endColumn === b.endColumn) { + if (a.startLineNumber === b.startLineNumber) { + return a.startColumn - b.startColumn; + } + return a.startLineNumber - b.startLineNumber; + } + return a.endColumn - b.endColumn; + } + return a.endLineNumber - b.endLineNumber; + } + /** + * Test if the range spans multiple lines. + */ + static spansMultipleLines(range) { + return range.endLineNumber > range.startLineNumber; + } + toJSON() { + return this; + } +}; + +/** + * Returns the last element of an array. + * @param array The array. + * @param n Which element from the end (default is zero). + */ +function equals$1(one, other, itemEquals = (a, b) => a === b) { + if (one === other) { + return true; + } + if (!one || !other) { + return false; + } + if (one.length !== other.length) { + return false; + } + for (let i = 0, len = one.length; i < len; i++) { + if (!itemEquals(one[i], other[i])) { + return false; + } + } + return true; +} +/** + * Splits the given items into a list of (non-empty) groups. + * `shouldBeGrouped` is used to decide if two consecutive items should be in the same group. + * The order of the items is preserved. + */ +function* groupAdjacentBy(items, shouldBeGrouped) { + let currentGroup; + let last; + for (const item of items) { + if (last !== undefined && shouldBeGrouped(last, item)) { + currentGroup.push(item); + } + else { + if (currentGroup) { + yield currentGroup; + } + currentGroup = [item]; + } + last = item; + } + if (currentGroup) { + yield currentGroup; + } +} +function forEachAdjacent(arr, f) { + for (let i = 0; i <= arr.length; i++) { + f(i === 0 ? undefined : arr[i - 1], i === arr.length ? undefined : arr[i]); + } +} +function forEachWithNeighbors(arr, f) { + for (let i = 0; i < arr.length; i++) { + f(i === 0 ? undefined : arr[i - 1], arr[i], i + 1 === arr.length ? undefined : arr[i + 1]); + } +} +function pushMany(arr, items) { + for (const item of items) { + arr.push(item); + } +} +var CompareResult; +(function (CompareResult) { + function isLessThan(result) { + return result < 0; + } + CompareResult.isLessThan = isLessThan; + function isLessThanOrEqual(result) { + return result <= 0; + } + CompareResult.isLessThanOrEqual = isLessThanOrEqual; + function isGreaterThan(result) { + return result > 0; + } + CompareResult.isGreaterThan = isGreaterThan; + function isNeitherLessOrGreaterThan(result) { + return result === 0; + } + CompareResult.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan; + CompareResult.greaterThan = 1; + CompareResult.lessThan = -1; + CompareResult.neitherLessOrGreaterThan = 0; +})(CompareResult || (CompareResult = {})); +function compareBy(selector, comparator) { + return (a, b) => comparator(selector(a), selector(b)); +} +/** + * The natural order on numbers. +*/ +const numberComparator = (a, b) => a - b; +function reverseOrder(comparator) { + return (a, b) => -comparator(a, b); +} +/** + * This class is faster than an iterator and array for lazy computed data. +*/ +class CallbackIterable { + static { this.empty = new CallbackIterable(_callback => { }); } + constructor( + /** + * Calls the callback for every item. + * Stops when the callback returns false. + */ + iterate) { + this.iterate = iterate; + } + toArray() { + const result = []; + this.iterate(item => { result.push(item); return true; }); + return result; + } + filter(predicate) { + return new CallbackIterable(cb => this.iterate(item => predicate(item) ? cb(item) : true)); + } + map(mapFn) { + return new CallbackIterable(cb => this.iterate(item => cb(mapFn(item)))); + } + findLast(predicate) { + let result; + this.iterate(item => { + if (predicate(item)) { + result = item; + } + return true; + }); + return result; + } + findLastMaxBy(comparator) { + let result; + let first = true; + this.iterate(item => { + if (first || CompareResult.isGreaterThan(comparator(item, result))) { + first = false; + result = item; + } + return true; + }); + return result; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function toUint8(v) { + if (v < 0) { + return 0; + } + if (v > 255 /* Constants.MAX_UINT_8 */) { + return 255 /* Constants.MAX_UINT_8 */; + } + return v | 0; +} +function toUint32(v) { + if (v < 0) { + return 0; + } + if (v > 4294967295 /* Constants.MAX_UINT_32 */) { + return 4294967295 /* Constants.MAX_UINT_32 */; + } + return v | 0; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class PrefixSumComputer { + constructor(values) { + this.values = values; + this.prefixSum = new Uint32Array(values.length); + this.prefixSumValidIndex = new Int32Array(1); + this.prefixSumValidIndex[0] = -1; + } + insertValues(insertIndex, insertValues) { + insertIndex = toUint32(insertIndex); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + const insertValuesLen = insertValues.length; + if (insertValuesLen === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length + insertValuesLen); + this.values.set(oldValues.subarray(0, insertIndex), 0); + this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen); + this.values.set(insertValues, insertIndex); + if (insertIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = insertIndex - 1; + } + this.prefixSum = new Uint32Array(this.values.length); + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + setValue(index, value) { + index = toUint32(index); + value = toUint32(value); + if (this.values[index] === value) { + return false; + } + this.values[index] = value; + if (index - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = index - 1; + } + return true; + } + removeValues(startIndex, count) { + startIndex = toUint32(startIndex); + count = toUint32(count); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + if (startIndex >= oldValues.length) { + return false; + } + const maxCount = oldValues.length - startIndex; + if (count >= maxCount) { + count = maxCount; + } + if (count === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length - count); + this.values.set(oldValues.subarray(0, startIndex), 0); + this.values.set(oldValues.subarray(startIndex + count), startIndex); + this.prefixSum = new Uint32Array(this.values.length); + if (startIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = startIndex - 1; + } + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + getTotalSum() { + if (this.values.length === 0) { + return 0; + } + return this._getPrefixSum(this.values.length - 1); + } + /** + * Returns the sum of the first `index + 1` many items. + * @returns `SUM(0 <= j <= index, values[j])`. + */ + getPrefixSum(index) { + if (index < 0) { + return 0; + } + index = toUint32(index); + return this._getPrefixSum(index); + } + _getPrefixSum(index) { + if (index <= this.prefixSumValidIndex[0]) { + return this.prefixSum[index]; + } + let startIndex = this.prefixSumValidIndex[0] + 1; + if (startIndex === 0) { + this.prefixSum[0] = this.values[0]; + startIndex++; + } + if (index >= this.values.length) { + index = this.values.length - 1; + } + for (let i = startIndex; i <= index; i++) { + this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i]; + } + this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index); + return this.prefixSum[index]; + } + getIndexOf(sum) { + sum = Math.floor(sum); + // Compute all sums (to get a fully valid prefixSum) + this.getTotalSum(); + let low = 0; + let high = this.values.length - 1; + let mid = 0; + let midStop = 0; + let midStart = 0; + while (low <= high) { + mid = low + ((high - low) / 2) | 0; + midStop = this.prefixSum[mid]; + midStart = midStop - this.values[mid]; + if (sum < midStart) { + high = mid - 1; + } + else if (sum >= midStop) { + low = mid + 1; + } + else { + break; + } + } + return new PrefixSumIndexOfResult(mid, sum - midStart); + } +} +class PrefixSumIndexOfResult { + constructor(index, remainder) { + this.index = index; + this.remainder = remainder; + this._prefixSumIndexOfResultBrand = undefined; + this.index = index; + this.remainder = remainder; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class MirrorTextModel { + constructor(uri, lines, eol, versionId) { + this._uri = uri; + this._lines = lines; + this._eol = eol; + this._versionId = versionId; + this._lineStarts = null; + this._cachedTextValue = null; + } + dispose() { + this._lines.length = 0; + } + get version() { + return this._versionId; + } + getText() { + if (this._cachedTextValue === null) { + this._cachedTextValue = this._lines.join(this._eol); + } + return this._cachedTextValue; + } + onEvents(e) { + if (e.eol && e.eol !== this._eol) { + this._eol = e.eol; + this._lineStarts = null; + } + // Update my lines + const changes = e.changes; + for (const change of changes) { + this._acceptDeleteRange(change.range); + this._acceptInsertText(new Position$2(change.range.startLineNumber, change.range.startColumn), change.text); + } + this._versionId = e.versionId; + this._cachedTextValue = null; + } + _ensureLineStarts() { + if (!this._lineStarts) { + const eolLength = this._eol.length; + const linesLength = this._lines.length; + const lineStartValues = new Uint32Array(linesLength); + for (let i = 0; i < linesLength; i++) { + lineStartValues[i] = this._lines[i].length + eolLength; + } + this._lineStarts = new PrefixSumComputer(lineStartValues); + } + } + /** + * All changes to a line's text go through this method + */ + _setLineText(lineIndex, newValue) { + this._lines[lineIndex] = newValue; + if (this._lineStarts) { + // update prefix sum + this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length); + } + } + _acceptDeleteRange(range) { + if (range.startLineNumber === range.endLineNumber) { + if (range.startColumn === range.endColumn) { + // Nothing to delete + return; + } + // Delete text on the affected line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1)); + return; + } + // Take remaining text on last line and append it to remaining text on first line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1)); + // Delete middle lines + this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber); + if (this._lineStarts) { + // update prefix sum + this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber); + } + } + _acceptInsertText(position, insertText) { + if (insertText.length === 0) { + // Nothing to insert + return; + } + const insertLines = splitLines(insertText); + if (insertLines.length === 1) { + // Inserting text on one line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0] + + this._lines[position.lineNumber - 1].substring(position.column - 1)); + return; + } + // Append overflowing text from first line to the end of text to insert + insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1); + // Delete overflowing text from first line and insert text on first line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0]); + // Insert new lines & store lengths + const newLengths = new Uint32Array(insertLines.length - 1); + for (let i = 1; i < insertLines.length; i++) { + this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]); + newLengths[i - 1] = insertLines[i].length + this._eol.length; + } + if (this._lineStarts) { + // update prefix sum + this._lineStarts.insertValues(position.lineNumber, newLengths); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?'; +/** + * Create a word definition regular expression based on default word separators. + * Optionally provide allowed separators that should be included in words. + * + * The default would look like this: + * /(-?\d*\.\d\w*)|([^\`\~\!\@\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g + */ +function createWordRegExp(allowInWords = '') { + let source = '(-?\\d*\\.\\d\\w*)|([^'; + for (const sep of USUAL_WORD_SEPARATORS) { + if (allowInWords.indexOf(sep) >= 0) { + continue; + } + source += '\\' + sep; + } + source += '\\s]+)'; + return new RegExp(source, 'g'); +} +// catches numbers (including floating numbers) in the first group, and alphanum in the second +const DEFAULT_WORD_REGEXP = createWordRegExp(); +function ensureValidWordDefinition(wordDefinition) { + let result = DEFAULT_WORD_REGEXP; + if (wordDefinition && (wordDefinition instanceof RegExp)) { + if (!wordDefinition.global) { + let flags = 'g'; + if (wordDefinition.ignoreCase) { + flags += 'i'; + } + if (wordDefinition.multiline) { + flags += 'm'; + } + if (wordDefinition.unicode) { + flags += 'u'; + } + result = new RegExp(wordDefinition.source, flags); + } + else { + result = wordDefinition; + } + } + result.lastIndex = 0; + return result; +} +const _defaultConfig = new LinkedList(); +_defaultConfig.unshift({ + maxLen: 1000, + windowSize: 15, + timeBudget: 150 +}); +function getWordAtText(column, wordDefinition, text, textOffset, config) { + // Ensure the regex has the 'g' flag, otherwise this will loop forever + wordDefinition = ensureValidWordDefinition(wordDefinition); + if (!config) { + config = Iterable.first(_defaultConfig); + } + if (text.length > config.maxLen) { + // don't throw strings that long at the regexp + // but use a sub-string in which a word must occur + let start = column - config.maxLen / 2; + if (start < 0) { + start = 0; + } + else { + textOffset += start; + } + text = text.substring(start, column + config.maxLen / 2); + return getWordAtText(column, wordDefinition, text, textOffset, config); + } + const t1 = Date.now(); + const pos = column - 1 - textOffset; + let prevRegexIndex = -1; + let match = null; + for (let i = 1;; i++) { + // check time budget + if (Date.now() - t1 >= config.timeBudget) { + break; + } + // reset the index at which the regexp should start matching, also know where it + // should stop so that subsequent search don't repeat previous searches + const regexIndex = pos - config.windowSize * i; + wordDefinition.lastIndex = Math.max(0, regexIndex); + const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex); + if (!thisMatch && match) { + // stop: we have something + break; + } + match = thisMatch; + // stop: searched at start + if (regexIndex <= 0) { + break; + } + prevRegexIndex = regexIndex; + } + if (match) { + const result = { + word: match[0], + startColumn: textOffset + 1 + match.index, + endColumn: textOffset + 1 + match.index + match[0].length + }; + wordDefinition.lastIndex = 0; + return result; + } + return null; +} +function _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) { + let match; + while (match = wordDefinition.exec(text)) { + const matchIndex = match.index || 0; + if (matchIndex <= pos && wordDefinition.lastIndex >= pos) { + return match; + } + else if (stopPos > 0 && matchIndex > stopPos) { + return null; + } + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A fast character classifier that uses a compact array for ASCII values. + */ +class CharacterClassifier { + constructor(_defaultValue) { + const defaultValue = toUint8(_defaultValue); + this._defaultValue = defaultValue; + this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue); + this._map = new Map(); + } + static _createAsciiMap(defaultValue) { + const asciiMap = new Uint8Array(256); + asciiMap.fill(defaultValue); + return asciiMap; + } + set(charCode, _value) { + const value = toUint8(_value); + if (charCode >= 0 && charCode < 256) { + this._asciiMap[charCode] = value; + } + else { + this._map.set(charCode, value); + } + } + get(charCode) { + if (charCode >= 0 && charCode < 256) { + return this._asciiMap[charCode]; + } + else { + return (this._map.get(charCode) || this._defaultValue); + } + } + clear() { + this._asciiMap.fill(this._defaultValue); + this._map.clear(); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Uint8Matrix { + constructor(rows, cols, defaultValue) { + const data = new Uint8Array(rows * cols); + for (let i = 0, len = rows * cols; i < len; i++) { + data[i] = defaultValue; + } + this._data = data; + this.rows = rows; + this.cols = cols; + } + get(row, col) { + return this._data[row * this.cols + col]; + } + set(row, col, value) { + this._data[row * this.cols + col] = value; + } +} +class StateMachine { + constructor(edges) { + let maxCharCode = 0; + let maxState = 0 /* State.Invalid */; + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + if (chCode > maxCharCode) { + maxCharCode = chCode; + } + if (from > maxState) { + maxState = from; + } + if (to > maxState) { + maxState = to; + } + } + maxCharCode++; + maxState++; + const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */); + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + states.set(from, chCode, to); + } + this._states = states; + this._maxCharCode = maxCharCode; + } + nextState(currentState, chCode) { + if (chCode < 0 || chCode >= this._maxCharCode) { + return 0 /* State.Invalid */; + } + return this._states.get(currentState, chCode); + } +} +// State machine for http:// or https:// or file:// +let _stateMachine = null; +function getStateMachine() { + if (_stateMachine === null) { + _stateMachine = new StateMachine([ + [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */], + [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */], + [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */], + [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */], + [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */], + [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */], + [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */], + [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */], + [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */], + [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */], + [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */], + [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */], + [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */], + [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */], + [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */], + [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */], + [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */], + [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */], + ]); + } + return _stateMachine; +} +let _classifier = null; +function getClassifier() { + if (_classifier === null) { + _classifier = new CharacterClassifier(0 /* CharacterClass.None */); + // allow-any-unicode-next-line + const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…'; + for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) { + _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */); + } + const CANNOT_END_WITH_CHARACTERS = '.,;:'; + for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) { + _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */); + } + } + return _classifier; +} +class LinkComputer { + static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) { + // Do not allow to end link in certain characters... + let lastIncludedCharIndex = linkEndIndex - 1; + do { + const chCode = line.charCodeAt(lastIncludedCharIndex); + const chClass = classifier.get(chCode); + if (chClass !== 2 /* CharacterClass.CannotEndIn */) { + break; + } + lastIncludedCharIndex--; + } while (lastIncludedCharIndex > linkBeginIndex); + // Handle links enclosed in parens, square brackets and curlys. + if (linkBeginIndex > 0) { + const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1); + const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex); + if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */) + || (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */) + || (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) { + // Do not end in ) if ( is before the link start + // Do not end in ] if [ is before the link start + // Do not end in } if { is before the link start + lastIncludedCharIndex--; + } + } + return { + range: { + startLineNumber: lineNumber, + startColumn: linkBeginIndex + 1, + endLineNumber: lineNumber, + endColumn: lastIncludedCharIndex + 2 + }, + url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1) + }; + } + static computeLinks(model, stateMachine = getStateMachine()) { + const classifier = getClassifier(); + const result = []; + for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) { + const line = model.getLineContent(i); + const len = line.length; + let j = 0; + let linkBeginIndex = 0; + let linkBeginChCode = 0; + let state = 1 /* State.Start */; + let hasOpenParens = false; + let hasOpenSquareBracket = false; + let inSquareBrackets = false; + let hasOpenCurlyBracket = false; + while (j < len) { + let resetStateMachine = false; + const chCode = line.charCodeAt(j); + if (state === 13 /* State.Accept */) { + let chClass; + switch (chCode) { + case 40 /* CharCode.OpenParen */: + hasOpenParens = true; + chClass = 0 /* CharacterClass.None */; + break; + case 41 /* CharCode.CloseParen */: + chClass = (hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 91 /* CharCode.OpenSquareBracket */: + inSquareBrackets = true; + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 93 /* CharCode.CloseSquareBracket */: + inSquareBrackets = false; + chClass = (hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 123 /* CharCode.OpenCurlyBrace */: + hasOpenCurlyBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 125 /* CharCode.CloseCurlyBrace */: + chClass = (hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + // The following three rules make it that ' or " or ` are allowed inside links + // only if the link is wrapped by some other quote character + case 39 /* CharCode.SingleQuote */: + case 34 /* CharCode.DoubleQuote */: + case 96 /* CharCode.BackTick */: + if (linkBeginChCode === chCode) { + chClass = 1 /* CharacterClass.ForceTermination */; + } + else if (linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 34 /* CharCode.DoubleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */) { + chClass = 0 /* CharacterClass.None */; + } + else { + chClass = 1 /* CharacterClass.ForceTermination */; + } + break; + case 42 /* CharCode.Asterisk */: + // `*` terminates a link if the link began with `*` + chClass = (linkBeginChCode === 42 /* CharCode.Asterisk */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 124 /* CharCode.Pipe */: + // `|` terminates a link if the link began with `|` + chClass = (linkBeginChCode === 124 /* CharCode.Pipe */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 32 /* CharCode.Space */: + // ` ` allow space in between [ and ] + chClass = (inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + default: + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j)); + resetStateMachine = true; + } + } + else if (state === 12 /* State.End */) { + let chClass; + if (chCode === 91 /* CharCode.OpenSquareBracket */) { + // Allow for the authority part to contain ipv6 addresses which contain [ and ] + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + } + else { + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + resetStateMachine = true; + } + else { + state = 13 /* State.Accept */; + } + } + else { + state = stateMachine.nextState(state, chCode); + if (state === 0 /* State.Invalid */) { + resetStateMachine = true; + } + } + if (resetStateMachine) { + state = 1 /* State.Start */; + hasOpenParens = false; + hasOpenSquareBracket = false; + hasOpenCurlyBracket = false; + // Record where the link started + linkBeginIndex = j + 1; + linkBeginChCode = chCode; + } + j++; + } + if (state === 13 /* State.Accept */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len)); + } + } + return result; + } +} +/** + * Returns an array of all links contains in the provided + * document. *Note* that this operation is computational + * expensive and should not run in the UI thread. + */ +function computeLinks(model) { + if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') { + // Unknown caller! + return []; + } + return LinkComputer.computeLinks(model); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class BasicInplaceReplace { + constructor() { + this._defaultValueSet = [ + ['true', 'false'], + ['True', 'False'], + ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'], + ['public', 'protected', 'private'], + ]; + } + static { this.INSTANCE = new BasicInplaceReplace(); } + navigateValueSet(range1, text1, range2, text2, up) { + if (range1 && text1) { + const result = this.doNavigateValueSet(text1, up); + if (result) { + return { + range: range1, + value: result + }; + } + } + if (range2 && text2) { + const result = this.doNavigateValueSet(text2, up); + if (result) { + return { + range: range2, + value: result + }; + } + } + return null; + } + doNavigateValueSet(text, up) { + const numberResult = this.numberReplace(text, up); + if (numberResult !== null) { + return numberResult; + } + return this.textReplace(text, up); + } + numberReplace(value, up) { + const precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1)); + let n1 = Number(value); + const n2 = parseFloat(value); + if (!isNaN(n1) && !isNaN(n2) && n1 === n2) { + if (n1 === 0 && !up) { + return null; // don't do negative + // } else if(n1 === 9 && up) { + // return null; // don't insert 10 into a number + } + else { + n1 = Math.floor(n1 * precision); + n1 += up ? precision : -precision; + return String(n1 / precision); + } + } + return null; + } + textReplace(value, up) { + return this.valueSetsReplace(this._defaultValueSet, value, up); + } + valueSetsReplace(valueSets, value, up) { + let result = null; + for (let i = 0, len = valueSets.length; result === null && i < len; i++) { + result = this.valueSetReplace(valueSets[i], value, up); + } + return result; + } + valueSetReplace(valueSet, value, up) { + let idx = valueSet.indexOf(value); + if (idx >= 0) { + idx += up ? +1 : -1; + if (idx < 0) { + idx = valueSet.length - 1; + } + else { + idx %= valueSet.length; + } + return valueSet[idx]; + } + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const shortcutEvent = Object.freeze(function (callback, context) { + const handle = setTimeout(callback.bind(context), 0); + return { dispose() { clearTimeout(handle); } }; +}); +var CancellationToken; +(function (CancellationToken) { + function isCancellationToken(thing) { + if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) { + return true; + } + if (thing instanceof MutableToken) { + return true; + } + if (!thing || typeof thing !== 'object') { + return false; + } + return typeof thing.isCancellationRequested === 'boolean' + && typeof thing.onCancellationRequested === 'function'; + } + CancellationToken.isCancellationToken = isCancellationToken; + CancellationToken.None = Object.freeze({ + isCancellationRequested: false, + onCancellationRequested: Event.None + }); + CancellationToken.Cancelled = Object.freeze({ + isCancellationRequested: true, + onCancellationRequested: shortcutEvent + }); +})(CancellationToken || (CancellationToken = {})); +class MutableToken { + constructor() { + this._isCancelled = false; + this._emitter = null; + } + cancel() { + if (!this._isCancelled) { + this._isCancelled = true; + if (this._emitter) { + this._emitter.fire(undefined); + this.dispose(); + } + } + } + get isCancellationRequested() { + return this._isCancelled; + } + get onCancellationRequested() { + if (this._isCancelled) { + return shortcutEvent; + } + if (!this._emitter) { + this._emitter = new Emitter(); + } + return this._emitter.event; + } + dispose() { + if (this._emitter) { + this._emitter.dispose(); + this._emitter = null; + } + } +} +class CancellationTokenSource { + constructor(parent) { + this._token = undefined; + this._parentListener = undefined; + this._parentListener = parent && parent.onCancellationRequested(this.cancel, this); + } + get token() { + if (!this._token) { + // be lazy and create the token only when + // actually needed + this._token = new MutableToken(); + } + return this._token; + } + cancel() { + if (!this._token) { + // save an object by returning the default + // cancelled token when cancellation happens + // before someone asks for the token + this._token = CancellationToken.Cancelled; + } + else if (this._token instanceof MutableToken) { + // actually cancel + this._token.cancel(); + } + } + dispose(cancel = false) { + if (cancel) { + this.cancel(); + } + this._parentListener?.dispose(); + if (!this._token) { + // ensure to initialize with an empty token if we had none + this._token = CancellationToken.None; + } + else if (this._token instanceof MutableToken) { + // actually dispose + this._token.dispose(); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class KeyCodeStrMap { + constructor() { + this._keyCodeToStr = []; + this._strToKeyCode = Object.create(null); + } + define(keyCode, str) { + this._keyCodeToStr[keyCode] = str; + this._strToKeyCode[str.toLowerCase()] = keyCode; + } + keyCodeToStr(keyCode) { + return this._keyCodeToStr[keyCode]; + } + strToKeyCode(str) { + return this._strToKeyCode[str.toLowerCase()] || 0 /* KeyCode.Unknown */; + } +} +const uiMap = new KeyCodeStrMap(); +const userSettingsUSMap = new KeyCodeStrMap(); +const userSettingsGeneralMap = new KeyCodeStrMap(); +const EVENT_KEY_CODE_MAP = new Array(230); +const scanCodeStrToInt = Object.create(null); +const scanCodeLowerCaseStrToInt = Object.create(null); +(function () { + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + // See https://github.com/microsoft/node-native-keymap/blob/88c0b0e5/deps/chromium/keyboard_codes_win.h + const empty = ''; + const mappings = [ + // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel + [1, 0 /* ScanCode.None */, 'None', 0 /* KeyCode.Unknown */, 'unknown', 0, 'VK_UNKNOWN', empty, empty], + [1, 1 /* ScanCode.Hyper */, 'Hyper', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 2 /* ScanCode.Super */, 'Super', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 3 /* ScanCode.Fn */, 'Fn', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 4 /* ScanCode.FnLock */, 'FnLock', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 5 /* ScanCode.Suspend */, 'Suspend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 6 /* ScanCode.Resume */, 'Resume', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 7 /* ScanCode.Turbo */, 'Turbo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 8 /* ScanCode.Sleep */, 'Sleep', 0 /* KeyCode.Unknown */, empty, 0, 'VK_SLEEP', empty, empty], + [1, 9 /* ScanCode.WakeUp */, 'WakeUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 10 /* ScanCode.KeyA */, 'KeyA', 31 /* KeyCode.KeyA */, 'A', 65, 'VK_A', empty, empty], + [0, 11 /* ScanCode.KeyB */, 'KeyB', 32 /* KeyCode.KeyB */, 'B', 66, 'VK_B', empty, empty], + [0, 12 /* ScanCode.KeyC */, 'KeyC', 33 /* KeyCode.KeyC */, 'C', 67, 'VK_C', empty, empty], + [0, 13 /* ScanCode.KeyD */, 'KeyD', 34 /* KeyCode.KeyD */, 'D', 68, 'VK_D', empty, empty], + [0, 14 /* ScanCode.KeyE */, 'KeyE', 35 /* KeyCode.KeyE */, 'E', 69, 'VK_E', empty, empty], + [0, 15 /* ScanCode.KeyF */, 'KeyF', 36 /* KeyCode.KeyF */, 'F', 70, 'VK_F', empty, empty], + [0, 16 /* ScanCode.KeyG */, 'KeyG', 37 /* KeyCode.KeyG */, 'G', 71, 'VK_G', empty, empty], + [0, 17 /* ScanCode.KeyH */, 'KeyH', 38 /* KeyCode.KeyH */, 'H', 72, 'VK_H', empty, empty], + [0, 18 /* ScanCode.KeyI */, 'KeyI', 39 /* KeyCode.KeyI */, 'I', 73, 'VK_I', empty, empty], + [0, 19 /* ScanCode.KeyJ */, 'KeyJ', 40 /* KeyCode.KeyJ */, 'J', 74, 'VK_J', empty, empty], + [0, 20 /* ScanCode.KeyK */, 'KeyK', 41 /* KeyCode.KeyK */, 'K', 75, 'VK_K', empty, empty], + [0, 21 /* ScanCode.KeyL */, 'KeyL', 42 /* KeyCode.KeyL */, 'L', 76, 'VK_L', empty, empty], + [0, 22 /* ScanCode.KeyM */, 'KeyM', 43 /* KeyCode.KeyM */, 'M', 77, 'VK_M', empty, empty], + [0, 23 /* ScanCode.KeyN */, 'KeyN', 44 /* KeyCode.KeyN */, 'N', 78, 'VK_N', empty, empty], + [0, 24 /* ScanCode.KeyO */, 'KeyO', 45 /* KeyCode.KeyO */, 'O', 79, 'VK_O', empty, empty], + [0, 25 /* ScanCode.KeyP */, 'KeyP', 46 /* KeyCode.KeyP */, 'P', 80, 'VK_P', empty, empty], + [0, 26 /* ScanCode.KeyQ */, 'KeyQ', 47 /* KeyCode.KeyQ */, 'Q', 81, 'VK_Q', empty, empty], + [0, 27 /* ScanCode.KeyR */, 'KeyR', 48 /* KeyCode.KeyR */, 'R', 82, 'VK_R', empty, empty], + [0, 28 /* ScanCode.KeyS */, 'KeyS', 49 /* KeyCode.KeyS */, 'S', 83, 'VK_S', empty, empty], + [0, 29 /* ScanCode.KeyT */, 'KeyT', 50 /* KeyCode.KeyT */, 'T', 84, 'VK_T', empty, empty], + [0, 30 /* ScanCode.KeyU */, 'KeyU', 51 /* KeyCode.KeyU */, 'U', 85, 'VK_U', empty, empty], + [0, 31 /* ScanCode.KeyV */, 'KeyV', 52 /* KeyCode.KeyV */, 'V', 86, 'VK_V', empty, empty], + [0, 32 /* ScanCode.KeyW */, 'KeyW', 53 /* KeyCode.KeyW */, 'W', 87, 'VK_W', empty, empty], + [0, 33 /* ScanCode.KeyX */, 'KeyX', 54 /* KeyCode.KeyX */, 'X', 88, 'VK_X', empty, empty], + [0, 34 /* ScanCode.KeyY */, 'KeyY', 55 /* KeyCode.KeyY */, 'Y', 89, 'VK_Y', empty, empty], + [0, 35 /* ScanCode.KeyZ */, 'KeyZ', 56 /* KeyCode.KeyZ */, 'Z', 90, 'VK_Z', empty, empty], + [0, 36 /* ScanCode.Digit1 */, 'Digit1', 22 /* KeyCode.Digit1 */, '1', 49, 'VK_1', empty, empty], + [0, 37 /* ScanCode.Digit2 */, 'Digit2', 23 /* KeyCode.Digit2 */, '2', 50, 'VK_2', empty, empty], + [0, 38 /* ScanCode.Digit3 */, 'Digit3', 24 /* KeyCode.Digit3 */, '3', 51, 'VK_3', empty, empty], + [0, 39 /* ScanCode.Digit4 */, 'Digit4', 25 /* KeyCode.Digit4 */, '4', 52, 'VK_4', empty, empty], + [0, 40 /* ScanCode.Digit5 */, 'Digit5', 26 /* KeyCode.Digit5 */, '5', 53, 'VK_5', empty, empty], + [0, 41 /* ScanCode.Digit6 */, 'Digit6', 27 /* KeyCode.Digit6 */, '6', 54, 'VK_6', empty, empty], + [0, 42 /* ScanCode.Digit7 */, 'Digit7', 28 /* KeyCode.Digit7 */, '7', 55, 'VK_7', empty, empty], + [0, 43 /* ScanCode.Digit8 */, 'Digit8', 29 /* KeyCode.Digit8 */, '8', 56, 'VK_8', empty, empty], + [0, 44 /* ScanCode.Digit9 */, 'Digit9', 30 /* KeyCode.Digit9 */, '9', 57, 'VK_9', empty, empty], + [0, 45 /* ScanCode.Digit0 */, 'Digit0', 21 /* KeyCode.Digit0 */, '0', 48, 'VK_0', empty, empty], + [1, 46 /* ScanCode.Enter */, 'Enter', 3 /* KeyCode.Enter */, 'Enter', 13, 'VK_RETURN', empty, empty], + [1, 47 /* ScanCode.Escape */, 'Escape', 9 /* KeyCode.Escape */, 'Escape', 27, 'VK_ESCAPE', empty, empty], + [1, 48 /* ScanCode.Backspace */, 'Backspace', 1 /* KeyCode.Backspace */, 'Backspace', 8, 'VK_BACK', empty, empty], + [1, 49 /* ScanCode.Tab */, 'Tab', 2 /* KeyCode.Tab */, 'Tab', 9, 'VK_TAB', empty, empty], + [1, 50 /* ScanCode.Space */, 'Space', 10 /* KeyCode.Space */, 'Space', 32, 'VK_SPACE', empty, empty], + [0, 51 /* ScanCode.Minus */, 'Minus', 88 /* KeyCode.Minus */, '-', 189, 'VK_OEM_MINUS', '-', 'OEM_MINUS'], + [0, 52 /* ScanCode.Equal */, 'Equal', 86 /* KeyCode.Equal */, '=', 187, 'VK_OEM_PLUS', '=', 'OEM_PLUS'], + [0, 53 /* ScanCode.BracketLeft */, 'BracketLeft', 92 /* KeyCode.BracketLeft */, '[', 219, 'VK_OEM_4', '[', 'OEM_4'], + [0, 54 /* ScanCode.BracketRight */, 'BracketRight', 94 /* KeyCode.BracketRight */, ']', 221, 'VK_OEM_6', ']', 'OEM_6'], + [0, 55 /* ScanCode.Backslash */, 'Backslash', 93 /* KeyCode.Backslash */, '\\', 220, 'VK_OEM_5', '\\', 'OEM_5'], + [0, 56 /* ScanCode.IntlHash */, 'IntlHash', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], // has been dropped from the w3c spec + [0, 57 /* ScanCode.Semicolon */, 'Semicolon', 85 /* KeyCode.Semicolon */, ';', 186, 'VK_OEM_1', ';', 'OEM_1'], + [0, 58 /* ScanCode.Quote */, 'Quote', 95 /* KeyCode.Quote */, '\'', 222, 'VK_OEM_7', '\'', 'OEM_7'], + [0, 59 /* ScanCode.Backquote */, 'Backquote', 91 /* KeyCode.Backquote */, '`', 192, 'VK_OEM_3', '`', 'OEM_3'], + [0, 60 /* ScanCode.Comma */, 'Comma', 87 /* KeyCode.Comma */, ',', 188, 'VK_OEM_COMMA', ',', 'OEM_COMMA'], + [0, 61 /* ScanCode.Period */, 'Period', 89 /* KeyCode.Period */, '.', 190, 'VK_OEM_PERIOD', '.', 'OEM_PERIOD'], + [0, 62 /* ScanCode.Slash */, 'Slash', 90 /* KeyCode.Slash */, '/', 191, 'VK_OEM_2', '/', 'OEM_2'], + [1, 63 /* ScanCode.CapsLock */, 'CapsLock', 8 /* KeyCode.CapsLock */, 'CapsLock', 20, 'VK_CAPITAL', empty, empty], + [1, 64 /* ScanCode.F1 */, 'F1', 59 /* KeyCode.F1 */, 'F1', 112, 'VK_F1', empty, empty], + [1, 65 /* ScanCode.F2 */, 'F2', 60 /* KeyCode.F2 */, 'F2', 113, 'VK_F2', empty, empty], + [1, 66 /* ScanCode.F3 */, 'F3', 61 /* KeyCode.F3 */, 'F3', 114, 'VK_F3', empty, empty], + [1, 67 /* ScanCode.F4 */, 'F4', 62 /* KeyCode.F4 */, 'F4', 115, 'VK_F4', empty, empty], + [1, 68 /* ScanCode.F5 */, 'F5', 63 /* KeyCode.F5 */, 'F5', 116, 'VK_F5', empty, empty], + [1, 69 /* ScanCode.F6 */, 'F6', 64 /* KeyCode.F6 */, 'F6', 117, 'VK_F6', empty, empty], + [1, 70 /* ScanCode.F7 */, 'F7', 65 /* KeyCode.F7 */, 'F7', 118, 'VK_F7', empty, empty], + [1, 71 /* ScanCode.F8 */, 'F8', 66 /* KeyCode.F8 */, 'F8', 119, 'VK_F8', empty, empty], + [1, 72 /* ScanCode.F9 */, 'F9', 67 /* KeyCode.F9 */, 'F9', 120, 'VK_F9', empty, empty], + [1, 73 /* ScanCode.F10 */, 'F10', 68 /* KeyCode.F10 */, 'F10', 121, 'VK_F10', empty, empty], + [1, 74 /* ScanCode.F11 */, 'F11', 69 /* KeyCode.F11 */, 'F11', 122, 'VK_F11', empty, empty], + [1, 75 /* ScanCode.F12 */, 'F12', 70 /* KeyCode.F12 */, 'F12', 123, 'VK_F12', empty, empty], + [1, 76 /* ScanCode.PrintScreen */, 'PrintScreen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 77 /* ScanCode.ScrollLock */, 'ScrollLock', 84 /* KeyCode.ScrollLock */, 'ScrollLock', 145, 'VK_SCROLL', empty, empty], + [1, 78 /* ScanCode.Pause */, 'Pause', 7 /* KeyCode.PauseBreak */, 'PauseBreak', 19, 'VK_PAUSE', empty, empty], + [1, 79 /* ScanCode.Insert */, 'Insert', 19 /* KeyCode.Insert */, 'Insert', 45, 'VK_INSERT', empty, empty], + [1, 80 /* ScanCode.Home */, 'Home', 14 /* KeyCode.Home */, 'Home', 36, 'VK_HOME', empty, empty], + [1, 81 /* ScanCode.PageUp */, 'PageUp', 11 /* KeyCode.PageUp */, 'PageUp', 33, 'VK_PRIOR', empty, empty], + [1, 82 /* ScanCode.Delete */, 'Delete', 20 /* KeyCode.Delete */, 'Delete', 46, 'VK_DELETE', empty, empty], + [1, 83 /* ScanCode.End */, 'End', 13 /* KeyCode.End */, 'End', 35, 'VK_END', empty, empty], + [1, 84 /* ScanCode.PageDown */, 'PageDown', 12 /* KeyCode.PageDown */, 'PageDown', 34, 'VK_NEXT', empty, empty], + [1, 85 /* ScanCode.ArrowRight */, 'ArrowRight', 17 /* KeyCode.RightArrow */, 'RightArrow', 39, 'VK_RIGHT', 'Right', empty], + [1, 86 /* ScanCode.ArrowLeft */, 'ArrowLeft', 15 /* KeyCode.LeftArrow */, 'LeftArrow', 37, 'VK_LEFT', 'Left', empty], + [1, 87 /* ScanCode.ArrowDown */, 'ArrowDown', 18 /* KeyCode.DownArrow */, 'DownArrow', 40, 'VK_DOWN', 'Down', empty], + [1, 88 /* ScanCode.ArrowUp */, 'ArrowUp', 16 /* KeyCode.UpArrow */, 'UpArrow', 38, 'VK_UP', 'Up', empty], + [1, 89 /* ScanCode.NumLock */, 'NumLock', 83 /* KeyCode.NumLock */, 'NumLock', 144, 'VK_NUMLOCK', empty, empty], + [1, 90 /* ScanCode.NumpadDivide */, 'NumpadDivide', 113 /* KeyCode.NumpadDivide */, 'NumPad_Divide', 111, 'VK_DIVIDE', empty, empty], + [1, 91 /* ScanCode.NumpadMultiply */, 'NumpadMultiply', 108 /* KeyCode.NumpadMultiply */, 'NumPad_Multiply', 106, 'VK_MULTIPLY', empty, empty], + [1, 92 /* ScanCode.NumpadSubtract */, 'NumpadSubtract', 111 /* KeyCode.NumpadSubtract */, 'NumPad_Subtract', 109, 'VK_SUBTRACT', empty, empty], + [1, 93 /* ScanCode.NumpadAdd */, 'NumpadAdd', 109 /* KeyCode.NumpadAdd */, 'NumPad_Add', 107, 'VK_ADD', empty, empty], + [1, 94 /* ScanCode.NumpadEnter */, 'NumpadEnter', 3 /* KeyCode.Enter */, empty, 0, empty, empty, empty], + [1, 95 /* ScanCode.Numpad1 */, 'Numpad1', 99 /* KeyCode.Numpad1 */, 'NumPad1', 97, 'VK_NUMPAD1', empty, empty], + [1, 96 /* ScanCode.Numpad2 */, 'Numpad2', 100 /* KeyCode.Numpad2 */, 'NumPad2', 98, 'VK_NUMPAD2', empty, empty], + [1, 97 /* ScanCode.Numpad3 */, 'Numpad3', 101 /* KeyCode.Numpad3 */, 'NumPad3', 99, 'VK_NUMPAD3', empty, empty], + [1, 98 /* ScanCode.Numpad4 */, 'Numpad4', 102 /* KeyCode.Numpad4 */, 'NumPad4', 100, 'VK_NUMPAD4', empty, empty], + [1, 99 /* ScanCode.Numpad5 */, 'Numpad5', 103 /* KeyCode.Numpad5 */, 'NumPad5', 101, 'VK_NUMPAD5', empty, empty], + [1, 100 /* ScanCode.Numpad6 */, 'Numpad6', 104 /* KeyCode.Numpad6 */, 'NumPad6', 102, 'VK_NUMPAD6', empty, empty], + [1, 101 /* ScanCode.Numpad7 */, 'Numpad7', 105 /* KeyCode.Numpad7 */, 'NumPad7', 103, 'VK_NUMPAD7', empty, empty], + [1, 102 /* ScanCode.Numpad8 */, 'Numpad8', 106 /* KeyCode.Numpad8 */, 'NumPad8', 104, 'VK_NUMPAD8', empty, empty], + [1, 103 /* ScanCode.Numpad9 */, 'Numpad9', 107 /* KeyCode.Numpad9 */, 'NumPad9', 105, 'VK_NUMPAD9', empty, empty], + [1, 104 /* ScanCode.Numpad0 */, 'Numpad0', 98 /* KeyCode.Numpad0 */, 'NumPad0', 96, 'VK_NUMPAD0', empty, empty], + [1, 105 /* ScanCode.NumpadDecimal */, 'NumpadDecimal', 112 /* KeyCode.NumpadDecimal */, 'NumPad_Decimal', 110, 'VK_DECIMAL', empty, empty], + [0, 106 /* ScanCode.IntlBackslash */, 'IntlBackslash', 97 /* KeyCode.IntlBackslash */, 'OEM_102', 226, 'VK_OEM_102', empty, empty], + [1, 107 /* ScanCode.ContextMenu */, 'ContextMenu', 58 /* KeyCode.ContextMenu */, 'ContextMenu', 93, empty, empty, empty], + [1, 108 /* ScanCode.Power */, 'Power', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 109 /* ScanCode.NumpadEqual */, 'NumpadEqual', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 110 /* ScanCode.F13 */, 'F13', 71 /* KeyCode.F13 */, 'F13', 124, 'VK_F13', empty, empty], + [1, 111 /* ScanCode.F14 */, 'F14', 72 /* KeyCode.F14 */, 'F14', 125, 'VK_F14', empty, empty], + [1, 112 /* ScanCode.F15 */, 'F15', 73 /* KeyCode.F15 */, 'F15', 126, 'VK_F15', empty, empty], + [1, 113 /* ScanCode.F16 */, 'F16', 74 /* KeyCode.F16 */, 'F16', 127, 'VK_F16', empty, empty], + [1, 114 /* ScanCode.F17 */, 'F17', 75 /* KeyCode.F17 */, 'F17', 128, 'VK_F17', empty, empty], + [1, 115 /* ScanCode.F18 */, 'F18', 76 /* KeyCode.F18 */, 'F18', 129, 'VK_F18', empty, empty], + [1, 116 /* ScanCode.F19 */, 'F19', 77 /* KeyCode.F19 */, 'F19', 130, 'VK_F19', empty, empty], + [1, 117 /* ScanCode.F20 */, 'F20', 78 /* KeyCode.F20 */, 'F20', 131, 'VK_F20', empty, empty], + [1, 118 /* ScanCode.F21 */, 'F21', 79 /* KeyCode.F21 */, 'F21', 132, 'VK_F21', empty, empty], + [1, 119 /* ScanCode.F22 */, 'F22', 80 /* KeyCode.F22 */, 'F22', 133, 'VK_F22', empty, empty], + [1, 120 /* ScanCode.F23 */, 'F23', 81 /* KeyCode.F23 */, 'F23', 134, 'VK_F23', empty, empty], + [1, 121 /* ScanCode.F24 */, 'F24', 82 /* KeyCode.F24 */, 'F24', 135, 'VK_F24', empty, empty], + [1, 122 /* ScanCode.Open */, 'Open', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 123 /* ScanCode.Help */, 'Help', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 124 /* ScanCode.Select */, 'Select', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 125 /* ScanCode.Again */, 'Again', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 126 /* ScanCode.Undo */, 'Undo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 127 /* ScanCode.Cut */, 'Cut', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 128 /* ScanCode.Copy */, 'Copy', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 129 /* ScanCode.Paste */, 'Paste', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 130 /* ScanCode.Find */, 'Find', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 131 /* ScanCode.AudioVolumeMute */, 'AudioVolumeMute', 117 /* KeyCode.AudioVolumeMute */, 'AudioVolumeMute', 173, 'VK_VOLUME_MUTE', empty, empty], + [1, 132 /* ScanCode.AudioVolumeUp */, 'AudioVolumeUp', 118 /* KeyCode.AudioVolumeUp */, 'AudioVolumeUp', 175, 'VK_VOLUME_UP', empty, empty], + [1, 133 /* ScanCode.AudioVolumeDown */, 'AudioVolumeDown', 119 /* KeyCode.AudioVolumeDown */, 'AudioVolumeDown', 174, 'VK_VOLUME_DOWN', empty, empty], + [1, 134 /* ScanCode.NumpadComma */, 'NumpadComma', 110 /* KeyCode.NUMPAD_SEPARATOR */, 'NumPad_Separator', 108, 'VK_SEPARATOR', empty, empty], + [0, 135 /* ScanCode.IntlRo */, 'IntlRo', 115 /* KeyCode.ABNT_C1 */, 'ABNT_C1', 193, 'VK_ABNT_C1', empty, empty], + [1, 136 /* ScanCode.KanaMode */, 'KanaMode', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 137 /* ScanCode.IntlYen */, 'IntlYen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 138 /* ScanCode.Convert */, 'Convert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 139 /* ScanCode.NonConvert */, 'NonConvert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 140 /* ScanCode.Lang1 */, 'Lang1', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 141 /* ScanCode.Lang2 */, 'Lang2', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 142 /* ScanCode.Lang3 */, 'Lang3', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 143 /* ScanCode.Lang4 */, 'Lang4', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 144 /* ScanCode.Lang5 */, 'Lang5', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 145 /* ScanCode.Abort */, 'Abort', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 146 /* ScanCode.Props */, 'Props', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 147 /* ScanCode.NumpadParenLeft */, 'NumpadParenLeft', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 148 /* ScanCode.NumpadParenRight */, 'NumpadParenRight', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 149 /* ScanCode.NumpadBackspace */, 'NumpadBackspace', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 150 /* ScanCode.NumpadMemoryStore */, 'NumpadMemoryStore', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 151 /* ScanCode.NumpadMemoryRecall */, 'NumpadMemoryRecall', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 152 /* ScanCode.NumpadMemoryClear */, 'NumpadMemoryClear', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 153 /* ScanCode.NumpadMemoryAdd */, 'NumpadMemoryAdd', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 154 /* ScanCode.NumpadMemorySubtract */, 'NumpadMemorySubtract', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 155 /* ScanCode.NumpadClear */, 'NumpadClear', 131 /* KeyCode.Clear */, 'Clear', 12, 'VK_CLEAR', empty, empty], + [1, 156 /* ScanCode.NumpadClearEntry */, 'NumpadClearEntry', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 0 /* ScanCode.None */, empty, 5 /* KeyCode.Ctrl */, 'Ctrl', 17, 'VK_CONTROL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 4 /* KeyCode.Shift */, 'Shift', 16, 'VK_SHIFT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 6 /* KeyCode.Alt */, 'Alt', 18, 'VK_MENU', empty, empty], + [1, 0 /* ScanCode.None */, empty, 57 /* KeyCode.Meta */, 'Meta', 91, 'VK_COMMAND', empty, empty], + [1, 157 /* ScanCode.ControlLeft */, 'ControlLeft', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_LCONTROL', empty, empty], + [1, 158 /* ScanCode.ShiftLeft */, 'ShiftLeft', 4 /* KeyCode.Shift */, empty, 0, 'VK_LSHIFT', empty, empty], + [1, 159 /* ScanCode.AltLeft */, 'AltLeft', 6 /* KeyCode.Alt */, empty, 0, 'VK_LMENU', empty, empty], + [1, 160 /* ScanCode.MetaLeft */, 'MetaLeft', 57 /* KeyCode.Meta */, empty, 0, 'VK_LWIN', empty, empty], + [1, 161 /* ScanCode.ControlRight */, 'ControlRight', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_RCONTROL', empty, empty], + [1, 162 /* ScanCode.ShiftRight */, 'ShiftRight', 4 /* KeyCode.Shift */, empty, 0, 'VK_RSHIFT', empty, empty], + [1, 163 /* ScanCode.AltRight */, 'AltRight', 6 /* KeyCode.Alt */, empty, 0, 'VK_RMENU', empty, empty], + [1, 164 /* ScanCode.MetaRight */, 'MetaRight', 57 /* KeyCode.Meta */, empty, 0, 'VK_RWIN', empty, empty], + [1, 165 /* ScanCode.BrightnessUp */, 'BrightnessUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 166 /* ScanCode.BrightnessDown */, 'BrightnessDown', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 167 /* ScanCode.MediaPlay */, 'MediaPlay', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 168 /* ScanCode.MediaRecord */, 'MediaRecord', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 169 /* ScanCode.MediaFastForward */, 'MediaFastForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 170 /* ScanCode.MediaRewind */, 'MediaRewind', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 171 /* ScanCode.MediaTrackNext */, 'MediaTrackNext', 124 /* KeyCode.MediaTrackNext */, 'MediaTrackNext', 176, 'VK_MEDIA_NEXT_TRACK', empty, empty], + [1, 172 /* ScanCode.MediaTrackPrevious */, 'MediaTrackPrevious', 125 /* KeyCode.MediaTrackPrevious */, 'MediaTrackPrevious', 177, 'VK_MEDIA_PREV_TRACK', empty, empty], + [1, 173 /* ScanCode.MediaStop */, 'MediaStop', 126 /* KeyCode.MediaStop */, 'MediaStop', 178, 'VK_MEDIA_STOP', empty, empty], + [1, 174 /* ScanCode.Eject */, 'Eject', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 175 /* ScanCode.MediaPlayPause */, 'MediaPlayPause', 127 /* KeyCode.MediaPlayPause */, 'MediaPlayPause', 179, 'VK_MEDIA_PLAY_PAUSE', empty, empty], + [1, 176 /* ScanCode.MediaSelect */, 'MediaSelect', 128 /* KeyCode.LaunchMediaPlayer */, 'LaunchMediaPlayer', 181, 'VK_MEDIA_LAUNCH_MEDIA_SELECT', empty, empty], + [1, 177 /* ScanCode.LaunchMail */, 'LaunchMail', 129 /* KeyCode.LaunchMail */, 'LaunchMail', 180, 'VK_MEDIA_LAUNCH_MAIL', empty, empty], + [1, 178 /* ScanCode.LaunchApp2 */, 'LaunchApp2', 130 /* KeyCode.LaunchApp2 */, 'LaunchApp2', 183, 'VK_MEDIA_LAUNCH_APP2', empty, empty], + [1, 179 /* ScanCode.LaunchApp1 */, 'LaunchApp1', 0 /* KeyCode.Unknown */, empty, 0, 'VK_MEDIA_LAUNCH_APP1', empty, empty], + [1, 180 /* ScanCode.SelectTask */, 'SelectTask', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 181 /* ScanCode.LaunchScreenSaver */, 'LaunchScreenSaver', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 182 /* ScanCode.BrowserSearch */, 'BrowserSearch', 120 /* KeyCode.BrowserSearch */, 'BrowserSearch', 170, 'VK_BROWSER_SEARCH', empty, empty], + [1, 183 /* ScanCode.BrowserHome */, 'BrowserHome', 121 /* KeyCode.BrowserHome */, 'BrowserHome', 172, 'VK_BROWSER_HOME', empty, empty], + [1, 184 /* ScanCode.BrowserBack */, 'BrowserBack', 122 /* KeyCode.BrowserBack */, 'BrowserBack', 166, 'VK_BROWSER_BACK', empty, empty], + [1, 185 /* ScanCode.BrowserForward */, 'BrowserForward', 123 /* KeyCode.BrowserForward */, 'BrowserForward', 167, 'VK_BROWSER_FORWARD', empty, empty], + [1, 186 /* ScanCode.BrowserStop */, 'BrowserStop', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_STOP', empty, empty], + [1, 187 /* ScanCode.BrowserRefresh */, 'BrowserRefresh', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_REFRESH', empty, empty], + [1, 188 /* ScanCode.BrowserFavorites */, 'BrowserFavorites', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_FAVORITES', empty, empty], + [1, 189 /* ScanCode.ZoomToggle */, 'ZoomToggle', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 190 /* ScanCode.MailReply */, 'MailReply', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 191 /* ScanCode.MailForward */, 'MailForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [1, 192 /* ScanCode.MailSend */, 'MailSend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html + // If an Input Method Editor is processing key input and the event is keydown, return 229. + [1, 0 /* ScanCode.None */, empty, 114 /* KeyCode.KEY_IN_COMPOSITION */, 'KeyInComposition', 229, empty, empty, empty], + [1, 0 /* ScanCode.None */, empty, 116 /* KeyCode.ABNT_C2 */, 'ABNT_C2', 194, 'VK_ABNT_C2', empty, empty], + [1, 0 /* ScanCode.None */, empty, 96 /* KeyCode.OEM_8 */, 'OEM_8', 223, 'VK_OEM_8', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANGUL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_JUNJA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_FINAL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANJA', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANJI', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CONVERT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONCONVERT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ACCEPT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_MODECHANGE', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SELECT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PRINT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXECUTE', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SNAPSHOT', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HELP', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_APPS', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PROCESSKEY', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PACKET', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_SBCSCHAR', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_DBCSCHAR', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ATTN', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CRSEL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXSEL', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EREOF', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PLAY', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ZOOM', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONAME', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PA1', empty, empty], + [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_OEM_CLEAR', empty, empty], + ]; + const seenKeyCode = []; + const seenScanCode = []; + for (const mapping of mappings) { + const [immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping; + if (!seenScanCode[scanCode]) { + seenScanCode[scanCode] = true; + scanCodeStrToInt[scanCodeStr] = scanCode; + scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode; + } + if (!seenKeyCode[keyCode]) { + seenKeyCode[keyCode] = true; + if (!keyCodeStr) { + throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`); + } + uiMap.define(keyCode, keyCodeStr); + userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr); + userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr); + } + if (eventKeyCode) { + EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode; + } + } +})(); +var KeyCodeUtils; +(function (KeyCodeUtils) { + function toString(keyCode) { + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toString = toString; + function fromString(key) { + return uiMap.strToKeyCode(key); + } + KeyCodeUtils.fromString = fromString; + function toUserSettingsUS(keyCode) { + return userSettingsUSMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsUS = toUserSettingsUS; + function toUserSettingsGeneral(keyCode) { + return userSettingsGeneralMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral; + function fromUserSettings(key) { + return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key); + } + KeyCodeUtils.fromUserSettings = fromUserSettings; + function toElectronAccelerator(keyCode) { + if (keyCode >= 98 /* KeyCode.Numpad0 */ && keyCode <= 113 /* KeyCode.NumpadDivide */) { + // [Electron Accelerators] Electron is able to parse numpad keys, but unfortunately it + // renders them just as regular keys in menus. For example, num0 is rendered as "0", + // numdiv is rendered as "/", numsub is rendered as "-". + // + // This can lead to incredible confusion, as it makes numpad based keybindings indistinguishable + // from keybindings based on regular keys. + // + // We therefore need to fall back to custom rendering for numpad keys. + return null; + } + switch (keyCode) { + case 16 /* KeyCode.UpArrow */: + return 'Up'; + case 18 /* KeyCode.DownArrow */: + return 'Down'; + case 15 /* KeyCode.LeftArrow */: + return 'Left'; + case 17 /* KeyCode.RightArrow */: + return 'Right'; + } + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toElectronAccelerator = toElectronAccelerator; +})(KeyCodeUtils || (KeyCodeUtils = {})); +function KeyChord(firstPart, secondPart) { + const chordPart = ((secondPart & 0x0000FFFF) << 16) >>> 0; + return (firstPart | chordPart) >>> 0; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A selection in the editor. + * The selection is a range that has an orientation. + */ +class Selection extends Range$b { + constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) { + super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn); + this.selectionStartLineNumber = selectionStartLineNumber; + this.selectionStartColumn = selectionStartColumn; + this.positionLineNumber = positionLineNumber; + this.positionColumn = positionColumn; + } + /** + * Transform to a human-readable representation. + */ + toString() { + return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']'; + } + /** + * Test if equals other selection. + */ + equalsSelection(other) { + return (Selection.selectionsEqual(this, other)); + } + /** + * Test if the two selections are equal. + */ + static selectionsEqual(a, b) { + return (a.selectionStartLineNumber === b.selectionStartLineNumber && + a.selectionStartColumn === b.selectionStartColumn && + a.positionLineNumber === b.positionLineNumber && + a.positionColumn === b.positionColumn); + } + /** + * Get directions (LTR or RTL). + */ + getDirection() { + if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) { + return 0 /* SelectionDirection.LTR */; + } + return 1 /* SelectionDirection.RTL */; + } + /** + * Create a new selection with a different `positionLineNumber` and `positionColumn`. + */ + setEndPosition(endLineNumber, endColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn); + } + /** + * Get the position at `positionLineNumber` and `positionColumn`. + */ + getPosition() { + return new Position$2(this.positionLineNumber, this.positionColumn); + } + /** + * Get the position at the start of the selection. + */ + getSelectionStart() { + return new Position$2(this.selectionStartLineNumber, this.selectionStartColumn); + } + /** + * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. + */ + setStartPosition(startLineNumber, startColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn); + } + // ---- + /** + * Create a `Selection` from one or two positions + */ + static fromPositions(start, end = start) { + return new Selection(start.lineNumber, start.column, end.lineNumber, end.column); + } + /** + * Creates a `Selection` from a range, given a direction. + */ + static fromRange(range, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + else { + return new Selection(range.endLineNumber, range.endColumn, range.startLineNumber, range.startColumn); + } + } + /** + * Create a `Selection` from an `ISelection`. + */ + static liftSelection(sel) { + return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn); + } + /** + * `a` equals `b`. + */ + static selectionsArrEqual(a, b) { + if (a && !b || !a && b) { + return false; + } + if (!a && !b) { + return true; + } + if (a.length !== b.length) { + return false; + } + for (let i = 0, len = a.length; i < len; i++) { + if (!this.selectionsEqual(a[i], b[i])) { + return false; + } + } + return true; + } + /** + * Test if `obj` is an `ISelection`. + */ + static isISelection(obj) { + return (obj + && (typeof obj.selectionStartLineNumber === 'number') + && (typeof obj.selectionStartColumn === 'number') + && (typeof obj.positionLineNumber === 'number') + && (typeof obj.positionColumn === 'number')); + } + /** + * Create with a direction. + */ + static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, startLineNumber, startColumn); + } +} + +const _codiconFontCharacters = Object.create(null); +function register$D(id, fontCharacter) { + if (isString$2(fontCharacter)) { + const val = _codiconFontCharacters[fontCharacter]; + if (val === undefined) { + throw new Error(`${id} references an unknown codicon: ${fontCharacter}`); + } + fontCharacter = val; + } + _codiconFontCharacters[id] = fontCharacter; + return { id }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// This file is automatically generated by (microsoft/vscode-codicons)/scripts/export-to-ts.js +// Please don't edit it, as your changes will be overwritten. +// Instead, add mappings to codiconsDerived in codicons.ts. +const codiconsLibrary = { + add: register$D('add', 0xea60), + plus: register$D('plus', 0xea60), + gistNew: register$D('gist-new', 0xea60), + repoCreate: register$D('repo-create', 0xea60), + lightbulb: register$D('lightbulb', 0xea61), + lightBulb: register$D('light-bulb', 0xea61), + repo: register$D('repo', 0xea62), + repoDelete: register$D('repo-delete', 0xea62), + gistFork: register$D('gist-fork', 0xea63), + repoForked: register$D('repo-forked', 0xea63), + gitPullRequest: register$D('git-pull-request', 0xea64), + gitPullRequestAbandoned: register$D('git-pull-request-abandoned', 0xea64), + recordKeys: register$D('record-keys', 0xea65), + keyboard: register$D('keyboard', 0xea65), + tag: register$D('tag', 0xea66), + gitPullRequestLabel: register$D('git-pull-request-label', 0xea66), + tagAdd: register$D('tag-add', 0xea66), + tagRemove: register$D('tag-remove', 0xea66), + person: register$D('person', 0xea67), + personFollow: register$D('person-follow', 0xea67), + personOutline: register$D('person-outline', 0xea67), + personFilled: register$D('person-filled', 0xea67), + gitBranch: register$D('git-branch', 0xea68), + gitBranchCreate: register$D('git-branch-create', 0xea68), + gitBranchDelete: register$D('git-branch-delete', 0xea68), + sourceControl: register$D('source-control', 0xea68), + mirror: register$D('mirror', 0xea69), + mirrorPublic: register$D('mirror-public', 0xea69), + star: register$D('star', 0xea6a), + starAdd: register$D('star-add', 0xea6a), + starDelete: register$D('star-delete', 0xea6a), + starEmpty: register$D('star-empty', 0xea6a), + comment: register$D('comment', 0xea6b), + commentAdd: register$D('comment-add', 0xea6b), + alert: register$D('alert', 0xea6c), + warning: register$D('warning', 0xea6c), + search: register$D('search', 0xea6d), + searchSave: register$D('search-save', 0xea6d), + logOut: register$D('log-out', 0xea6e), + signOut: register$D('sign-out', 0xea6e), + logIn: register$D('log-in', 0xea6f), + signIn: register$D('sign-in', 0xea6f), + eye: register$D('eye', 0xea70), + eyeUnwatch: register$D('eye-unwatch', 0xea70), + eyeWatch: register$D('eye-watch', 0xea70), + circleFilled: register$D('circle-filled', 0xea71), + primitiveDot: register$D('primitive-dot', 0xea71), + closeDirty: register$D('close-dirty', 0xea71), + debugBreakpoint: register$D('debug-breakpoint', 0xea71), + debugBreakpointDisabled: register$D('debug-breakpoint-disabled', 0xea71), + debugHint: register$D('debug-hint', 0xea71), + terminalDecorationSuccess: register$D('terminal-decoration-success', 0xea71), + primitiveSquare: register$D('primitive-square', 0xea72), + edit: register$D('edit', 0xea73), + pencil: register$D('pencil', 0xea73), + info: register$D('info', 0xea74), + issueOpened: register$D('issue-opened', 0xea74), + gistPrivate: register$D('gist-private', 0xea75), + gitForkPrivate: register$D('git-fork-private', 0xea75), + lock: register$D('lock', 0xea75), + mirrorPrivate: register$D('mirror-private', 0xea75), + close: register$D('close', 0xea76), + removeClose: register$D('remove-close', 0xea76), + x: register$D('x', 0xea76), + repoSync: register$D('repo-sync', 0xea77), + sync: register$D('sync', 0xea77), + clone: register$D('clone', 0xea78), + desktopDownload: register$D('desktop-download', 0xea78), + beaker: register$D('beaker', 0xea79), + microscope: register$D('microscope', 0xea79), + vm: register$D('vm', 0xea7a), + deviceDesktop: register$D('device-desktop', 0xea7a), + file: register$D('file', 0xea7b), + fileText: register$D('file-text', 0xea7b), + more: register$D('more', 0xea7c), + ellipsis: register$D('ellipsis', 0xea7c), + kebabHorizontal: register$D('kebab-horizontal', 0xea7c), + mailReply: register$D('mail-reply', 0xea7d), + reply: register$D('reply', 0xea7d), + organization: register$D('organization', 0xea7e), + organizationFilled: register$D('organization-filled', 0xea7e), + organizationOutline: register$D('organization-outline', 0xea7e), + newFile: register$D('new-file', 0xea7f), + fileAdd: register$D('file-add', 0xea7f), + newFolder: register$D('new-folder', 0xea80), + fileDirectoryCreate: register$D('file-directory-create', 0xea80), + trash: register$D('trash', 0xea81), + trashcan: register$D('trashcan', 0xea81), + history: register$D('history', 0xea82), + clock: register$D('clock', 0xea82), + folder: register$D('folder', 0xea83), + fileDirectory: register$D('file-directory', 0xea83), + symbolFolder: register$D('symbol-folder', 0xea83), + logoGithub: register$D('logo-github', 0xea84), + markGithub: register$D('mark-github', 0xea84), + github: register$D('github', 0xea84), + terminal: register$D('terminal', 0xea85), + console: register$D('console', 0xea85), + repl: register$D('repl', 0xea85), + zap: register$D('zap', 0xea86), + symbolEvent: register$D('symbol-event', 0xea86), + error: register$D('error', 0xea87), + stop: register$D('stop', 0xea87), + variable: register$D('variable', 0xea88), + symbolVariable: register$D('symbol-variable', 0xea88), + array: register$D('array', 0xea8a), + symbolArray: register$D('symbol-array', 0xea8a), + symbolModule: register$D('symbol-module', 0xea8b), + symbolPackage: register$D('symbol-package', 0xea8b), + symbolNamespace: register$D('symbol-namespace', 0xea8b), + symbolObject: register$D('symbol-object', 0xea8b), + symbolMethod: register$D('symbol-method', 0xea8c), + symbolFunction: register$D('symbol-function', 0xea8c), + symbolConstructor: register$D('symbol-constructor', 0xea8c), + symbolBoolean: register$D('symbol-boolean', 0xea8f), + symbolNull: register$D('symbol-null', 0xea8f), + symbolNumeric: register$D('symbol-numeric', 0xea90), + symbolNumber: register$D('symbol-number', 0xea90), + symbolStructure: register$D('symbol-structure', 0xea91), + symbolStruct: register$D('symbol-struct', 0xea91), + symbolParameter: register$D('symbol-parameter', 0xea92), + symbolTypeParameter: register$D('symbol-type-parameter', 0xea92), + symbolKey: register$D('symbol-key', 0xea93), + symbolText: register$D('symbol-text', 0xea93), + symbolReference: register$D('symbol-reference', 0xea94), + goToFile: register$D('go-to-file', 0xea94), + symbolEnum: register$D('symbol-enum', 0xea95), + symbolValue: register$D('symbol-value', 0xea95), + symbolRuler: register$D('symbol-ruler', 0xea96), + symbolUnit: register$D('symbol-unit', 0xea96), + activateBreakpoints: register$D('activate-breakpoints', 0xea97), + archive: register$D('archive', 0xea98), + arrowBoth: register$D('arrow-both', 0xea99), + arrowDown: register$D('arrow-down', 0xea9a), + arrowLeft: register$D('arrow-left', 0xea9b), + arrowRight: register$D('arrow-right', 0xea9c), + arrowSmallDown: register$D('arrow-small-down', 0xea9d), + arrowSmallLeft: register$D('arrow-small-left', 0xea9e), + arrowSmallRight: register$D('arrow-small-right', 0xea9f), + arrowSmallUp: register$D('arrow-small-up', 0xeaa0), + arrowUp: register$D('arrow-up', 0xeaa1), + bell: register$D('bell', 0xeaa2), + bold: register$D('bold', 0xeaa3), + book: register$D('book', 0xeaa4), + bookmark: register$D('bookmark', 0xeaa5), + debugBreakpointConditionalUnverified: register$D('debug-breakpoint-conditional-unverified', 0xeaa6), + debugBreakpointConditional: register$D('debug-breakpoint-conditional', 0xeaa7), + debugBreakpointConditionalDisabled: register$D('debug-breakpoint-conditional-disabled', 0xeaa7), + debugBreakpointDataUnverified: register$D('debug-breakpoint-data-unverified', 0xeaa8), + debugBreakpointData: register$D('debug-breakpoint-data', 0xeaa9), + debugBreakpointDataDisabled: register$D('debug-breakpoint-data-disabled', 0xeaa9), + debugBreakpointLogUnverified: register$D('debug-breakpoint-log-unverified', 0xeaaa), + debugBreakpointLog: register$D('debug-breakpoint-log', 0xeaab), + debugBreakpointLogDisabled: register$D('debug-breakpoint-log-disabled', 0xeaab), + briefcase: register$D('briefcase', 0xeaac), + broadcast: register$D('broadcast', 0xeaad), + browser: register$D('browser', 0xeaae), + bug: register$D('bug', 0xeaaf), + calendar: register$D('calendar', 0xeab0), + caseSensitive: register$D('case-sensitive', 0xeab1), + check: register$D('check', 0xeab2), + checklist: register$D('checklist', 0xeab3), + chevronDown: register$D('chevron-down', 0xeab4), + chevronLeft: register$D('chevron-left', 0xeab5), + chevronRight: register$D('chevron-right', 0xeab6), + chevronUp: register$D('chevron-up', 0xeab7), + chromeClose: register$D('chrome-close', 0xeab8), + chromeMaximize: register$D('chrome-maximize', 0xeab9), + chromeMinimize: register$D('chrome-minimize', 0xeaba), + chromeRestore: register$D('chrome-restore', 0xeabb), + circleOutline: register$D('circle-outline', 0xeabc), + circle: register$D('circle', 0xeabc), + debugBreakpointUnverified: register$D('debug-breakpoint-unverified', 0xeabc), + terminalDecorationIncomplete: register$D('terminal-decoration-incomplete', 0xeabc), + circleSlash: register$D('circle-slash', 0xeabd), + circuitBoard: register$D('circuit-board', 0xeabe), + clearAll: register$D('clear-all', 0xeabf), + clippy: register$D('clippy', 0xeac0), + closeAll: register$D('close-all', 0xeac1), + cloudDownload: register$D('cloud-download', 0xeac2), + cloudUpload: register$D('cloud-upload', 0xeac3), + code: register$D('code', 0xeac4), + collapseAll: register$D('collapse-all', 0xeac5), + colorMode: register$D('color-mode', 0xeac6), + commentDiscussion: register$D('comment-discussion', 0xeac7), + creditCard: register$D('credit-card', 0xeac9), + dash: register$D('dash', 0xeacc), + dashboard: register$D('dashboard', 0xeacd), + database: register$D('database', 0xeace), + debugContinue: register$D('debug-continue', 0xeacf), + debugDisconnect: register$D('debug-disconnect', 0xead0), + debugPause: register$D('debug-pause', 0xead1), + debugRestart: register$D('debug-restart', 0xead2), + debugStart: register$D('debug-start', 0xead3), + debugStepInto: register$D('debug-step-into', 0xead4), + debugStepOut: register$D('debug-step-out', 0xead5), + debugStepOver: register$D('debug-step-over', 0xead6), + debugStop: register$D('debug-stop', 0xead7), + debug: register$D('debug', 0xead8), + deviceCameraVideo: register$D('device-camera-video', 0xead9), + deviceCamera: register$D('device-camera', 0xeada), + deviceMobile: register$D('device-mobile', 0xeadb), + diffAdded: register$D('diff-added', 0xeadc), + diffIgnored: register$D('diff-ignored', 0xeadd), + diffModified: register$D('diff-modified', 0xeade), + diffRemoved: register$D('diff-removed', 0xeadf), + diffRenamed: register$D('diff-renamed', 0xeae0), + diff: register$D('diff', 0xeae1), + diffSidebyside: register$D('diff-sidebyside', 0xeae1), + discard: register$D('discard', 0xeae2), + editorLayout: register$D('editor-layout', 0xeae3), + emptyWindow: register$D('empty-window', 0xeae4), + exclude: register$D('exclude', 0xeae5), + extensions: register$D('extensions', 0xeae6), + eyeClosed: register$D('eye-closed', 0xeae7), + fileBinary: register$D('file-binary', 0xeae8), + fileCode: register$D('file-code', 0xeae9), + fileMedia: register$D('file-media', 0xeaea), + filePdf: register$D('file-pdf', 0xeaeb), + fileSubmodule: register$D('file-submodule', 0xeaec), + fileSymlinkDirectory: register$D('file-symlink-directory', 0xeaed), + fileSymlinkFile: register$D('file-symlink-file', 0xeaee), + fileZip: register$D('file-zip', 0xeaef), + files: register$D('files', 0xeaf0), + filter: register$D('filter', 0xeaf1), + flame: register$D('flame', 0xeaf2), + foldDown: register$D('fold-down', 0xeaf3), + foldUp: register$D('fold-up', 0xeaf4), + fold: register$D('fold', 0xeaf5), + folderActive: register$D('folder-active', 0xeaf6), + folderOpened: register$D('folder-opened', 0xeaf7), + gear: register$D('gear', 0xeaf8), + gift: register$D('gift', 0xeaf9), + gistSecret: register$D('gist-secret', 0xeafa), + gist: register$D('gist', 0xeafb), + gitCommit: register$D('git-commit', 0xeafc), + gitCompare: register$D('git-compare', 0xeafd), + compareChanges: register$D('compare-changes', 0xeafd), + gitMerge: register$D('git-merge', 0xeafe), + githubAction: register$D('github-action', 0xeaff), + githubAlt: register$D('github-alt', 0xeb00), + globe: register$D('globe', 0xeb01), + grabber: register$D('grabber', 0xeb02), + graph: register$D('graph', 0xeb03), + gripper: register$D('gripper', 0xeb04), + heart: register$D('heart', 0xeb05), + home: register$D('home', 0xeb06), + horizontalRule: register$D('horizontal-rule', 0xeb07), + hubot: register$D('hubot', 0xeb08), + inbox: register$D('inbox', 0xeb09), + issueReopened: register$D('issue-reopened', 0xeb0b), + issues: register$D('issues', 0xeb0c), + italic: register$D('italic', 0xeb0d), + jersey: register$D('jersey', 0xeb0e), + json: register$D('json', 0xeb0f), + kebabVertical: register$D('kebab-vertical', 0xeb10), + key: register$D('key', 0xeb11), + law: register$D('law', 0xeb12), + lightbulbAutofix: register$D('lightbulb-autofix', 0xeb13), + linkExternal: register$D('link-external', 0xeb14), + link: register$D('link', 0xeb15), + listOrdered: register$D('list-ordered', 0xeb16), + listUnordered: register$D('list-unordered', 0xeb17), + liveShare: register$D('live-share', 0xeb18), + loading: register$D('loading', 0xeb19), + location: register$D('location', 0xeb1a), + mailRead: register$D('mail-read', 0xeb1b), + mail: register$D('mail', 0xeb1c), + markdown: register$D('markdown', 0xeb1d), + megaphone: register$D('megaphone', 0xeb1e), + mention: register$D('mention', 0xeb1f), + milestone: register$D('milestone', 0xeb20), + gitPullRequestMilestone: register$D('git-pull-request-milestone', 0xeb20), + mortarBoard: register$D('mortar-board', 0xeb21), + move: register$D('move', 0xeb22), + multipleWindows: register$D('multiple-windows', 0xeb23), + mute: register$D('mute', 0xeb24), + noNewline: register$D('no-newline', 0xeb25), + note: register$D('note', 0xeb26), + octoface: register$D('octoface', 0xeb27), + openPreview: register$D('open-preview', 0xeb28), + package: register$D('package', 0xeb29), + paintcan: register$D('paintcan', 0xeb2a), + pin: register$D('pin', 0xeb2b), + play: register$D('play', 0xeb2c), + run: register$D('run', 0xeb2c), + plug: register$D('plug', 0xeb2d), + preserveCase: register$D('preserve-case', 0xeb2e), + preview: register$D('preview', 0xeb2f), + project: register$D('project', 0xeb30), + pulse: register$D('pulse', 0xeb31), + question: register$D('question', 0xeb32), + quote: register$D('quote', 0xeb33), + radioTower: register$D('radio-tower', 0xeb34), + reactions: register$D('reactions', 0xeb35), + references: register$D('references', 0xeb36), + refresh: register$D('refresh', 0xeb37), + regex: register$D('regex', 0xeb38), + remoteExplorer: register$D('remote-explorer', 0xeb39), + remote: register$D('remote', 0xeb3a), + remove: register$D('remove', 0xeb3b), + replaceAll: register$D('replace-all', 0xeb3c), + replace: register$D('replace', 0xeb3d), + repoClone: register$D('repo-clone', 0xeb3e), + repoForcePush: register$D('repo-force-push', 0xeb3f), + repoPull: register$D('repo-pull', 0xeb40), + repoPush: register$D('repo-push', 0xeb41), + report: register$D('report', 0xeb42), + requestChanges: register$D('request-changes', 0xeb43), + rocket: register$D('rocket', 0xeb44), + rootFolderOpened: register$D('root-folder-opened', 0xeb45), + rootFolder: register$D('root-folder', 0xeb46), + rss: register$D('rss', 0xeb47), + ruby: register$D('ruby', 0xeb48), + saveAll: register$D('save-all', 0xeb49), + saveAs: register$D('save-as', 0xeb4a), + save: register$D('save', 0xeb4b), + screenFull: register$D('screen-full', 0xeb4c), + screenNormal: register$D('screen-normal', 0xeb4d), + searchStop: register$D('search-stop', 0xeb4e), + server: register$D('server', 0xeb50), + settingsGear: register$D('settings-gear', 0xeb51), + settings: register$D('settings', 0xeb52), + shield: register$D('shield', 0xeb53), + smiley: register$D('smiley', 0xeb54), + sortPrecedence: register$D('sort-precedence', 0xeb55), + splitHorizontal: register$D('split-horizontal', 0xeb56), + splitVertical: register$D('split-vertical', 0xeb57), + squirrel: register$D('squirrel', 0xeb58), + starFull: register$D('star-full', 0xeb59), + starHalf: register$D('star-half', 0xeb5a), + symbolClass: register$D('symbol-class', 0xeb5b), + symbolColor: register$D('symbol-color', 0xeb5c), + symbolConstant: register$D('symbol-constant', 0xeb5d), + symbolEnumMember: register$D('symbol-enum-member', 0xeb5e), + symbolField: register$D('symbol-field', 0xeb5f), + symbolFile: register$D('symbol-file', 0xeb60), + symbolInterface: register$D('symbol-interface', 0xeb61), + symbolKeyword: register$D('symbol-keyword', 0xeb62), + symbolMisc: register$D('symbol-misc', 0xeb63), + symbolOperator: register$D('symbol-operator', 0xeb64), + symbolProperty: register$D('symbol-property', 0xeb65), + wrench: register$D('wrench', 0xeb65), + wrenchSubaction: register$D('wrench-subaction', 0xeb65), + symbolSnippet: register$D('symbol-snippet', 0xeb66), + tasklist: register$D('tasklist', 0xeb67), + telescope: register$D('telescope', 0xeb68), + textSize: register$D('text-size', 0xeb69), + threeBars: register$D('three-bars', 0xeb6a), + thumbsdown: register$D('thumbsdown', 0xeb6b), + thumbsup: register$D('thumbsup', 0xeb6c), + tools: register$D('tools', 0xeb6d), + triangleDown: register$D('triangle-down', 0xeb6e), + triangleLeft: register$D('triangle-left', 0xeb6f), + triangleRight: register$D('triangle-right', 0xeb70), + triangleUp: register$D('triangle-up', 0xeb71), + twitter: register$D('twitter', 0xeb72), + unfold: register$D('unfold', 0xeb73), + unlock: register$D('unlock', 0xeb74), + unmute: register$D('unmute', 0xeb75), + unverified: register$D('unverified', 0xeb76), + verified: register$D('verified', 0xeb77), + versions: register$D('versions', 0xeb78), + vmActive: register$D('vm-active', 0xeb79), + vmOutline: register$D('vm-outline', 0xeb7a), + vmRunning: register$D('vm-running', 0xeb7b), + watch: register$D('watch', 0xeb7c), + whitespace: register$D('whitespace', 0xeb7d), + wholeWord: register$D('whole-word', 0xeb7e), + window: register$D('window', 0xeb7f), + wordWrap: register$D('word-wrap', 0xeb80), + zoomIn: register$D('zoom-in', 0xeb81), + zoomOut: register$D('zoom-out', 0xeb82), + listFilter: register$D('list-filter', 0xeb83), + listFlat: register$D('list-flat', 0xeb84), + listSelection: register$D('list-selection', 0xeb85), + selection: register$D('selection', 0xeb85), + listTree: register$D('list-tree', 0xeb86), + debugBreakpointFunctionUnverified: register$D('debug-breakpoint-function-unverified', 0xeb87), + debugBreakpointFunction: register$D('debug-breakpoint-function', 0xeb88), + debugBreakpointFunctionDisabled: register$D('debug-breakpoint-function-disabled', 0xeb88), + debugStackframeActive: register$D('debug-stackframe-active', 0xeb89), + circleSmallFilled: register$D('circle-small-filled', 0xeb8a), + debugStackframeDot: register$D('debug-stackframe-dot', 0xeb8a), + terminalDecorationMark: register$D('terminal-decoration-mark', 0xeb8a), + debugStackframe: register$D('debug-stackframe', 0xeb8b), + debugStackframeFocused: register$D('debug-stackframe-focused', 0xeb8b), + debugBreakpointUnsupported: register$D('debug-breakpoint-unsupported', 0xeb8c), + symbolString: register$D('symbol-string', 0xeb8d), + debugReverseContinue: register$D('debug-reverse-continue', 0xeb8e), + debugStepBack: register$D('debug-step-back', 0xeb8f), + debugRestartFrame: register$D('debug-restart-frame', 0xeb90), + debugAlt: register$D('debug-alt', 0xeb91), + callIncoming: register$D('call-incoming', 0xeb92), + callOutgoing: register$D('call-outgoing', 0xeb93), + menu: register$D('menu', 0xeb94), + expandAll: register$D('expand-all', 0xeb95), + feedback: register$D('feedback', 0xeb96), + gitPullRequestReviewer: register$D('git-pull-request-reviewer', 0xeb96), + groupByRefType: register$D('group-by-ref-type', 0xeb97), + ungroupByRefType: register$D('ungroup-by-ref-type', 0xeb98), + account: register$D('account', 0xeb99), + gitPullRequestAssignee: register$D('git-pull-request-assignee', 0xeb99), + bellDot: register$D('bell-dot', 0xeb9a), + debugConsole: register$D('debug-console', 0xeb9b), + library: register$D('library', 0xeb9c), + output: register$D('output', 0xeb9d), + runAll: register$D('run-all', 0xeb9e), + syncIgnored: register$D('sync-ignored', 0xeb9f), + pinned: register$D('pinned', 0xeba0), + githubInverted: register$D('github-inverted', 0xeba1), + serverProcess: register$D('server-process', 0xeba2), + serverEnvironment: register$D('server-environment', 0xeba3), + pass: register$D('pass', 0xeba4), + issueClosed: register$D('issue-closed', 0xeba4), + stopCircle: register$D('stop-circle', 0xeba5), + playCircle: register$D('play-circle', 0xeba6), + record: register$D('record', 0xeba7), + debugAltSmall: register$D('debug-alt-small', 0xeba8), + vmConnect: register$D('vm-connect', 0xeba9), + cloud: register$D('cloud', 0xebaa), + merge: register$D('merge', 0xebab), + export: register$D('export', 0xebac), + graphLeft: register$D('graph-left', 0xebad), + magnet: register$D('magnet', 0xebae), + notebook: register$D('notebook', 0xebaf), + redo: register$D('redo', 0xebb0), + checkAll: register$D('check-all', 0xebb1), + pinnedDirty: register$D('pinned-dirty', 0xebb2), + passFilled: register$D('pass-filled', 0xebb3), + circleLargeFilled: register$D('circle-large-filled', 0xebb4), + circleLarge: register$D('circle-large', 0xebb5), + circleLargeOutline: register$D('circle-large-outline', 0xebb5), + combine: register$D('combine', 0xebb6), + gather: register$D('gather', 0xebb6), + table: register$D('table', 0xebb7), + variableGroup: register$D('variable-group', 0xebb8), + typeHierarchy: register$D('type-hierarchy', 0xebb9), + typeHierarchySub: register$D('type-hierarchy-sub', 0xebba), + typeHierarchySuper: register$D('type-hierarchy-super', 0xebbb), + gitPullRequestCreate: register$D('git-pull-request-create', 0xebbc), + runAbove: register$D('run-above', 0xebbd), + runBelow: register$D('run-below', 0xebbe), + notebookTemplate: register$D('notebook-template', 0xebbf), + debugRerun: register$D('debug-rerun', 0xebc0), + workspaceTrusted: register$D('workspace-trusted', 0xebc1), + workspaceUntrusted: register$D('workspace-untrusted', 0xebc2), + workspaceUnknown: register$D('workspace-unknown', 0xebc3), + terminalCmd: register$D('terminal-cmd', 0xebc4), + terminalDebian: register$D('terminal-debian', 0xebc5), + terminalLinux: register$D('terminal-linux', 0xebc6), + terminalPowershell: register$D('terminal-powershell', 0xebc7), + terminalTmux: register$D('terminal-tmux', 0xebc8), + terminalUbuntu: register$D('terminal-ubuntu', 0xebc9), + terminalBash: register$D('terminal-bash', 0xebca), + arrowSwap: register$D('arrow-swap', 0xebcb), + copy: register$D('copy', 0xebcc), + personAdd: register$D('person-add', 0xebcd), + filterFilled: register$D('filter-filled', 0xebce), + wand: register$D('wand', 0xebcf), + debugLineByLine: register$D('debug-line-by-line', 0xebd0), + inspect: register$D('inspect', 0xebd1), + layers: register$D('layers', 0xebd2), + layersDot: register$D('layers-dot', 0xebd3), + layersActive: register$D('layers-active', 0xebd4), + compass: register$D('compass', 0xebd5), + compassDot: register$D('compass-dot', 0xebd6), + compassActive: register$D('compass-active', 0xebd7), + azure: register$D('azure', 0xebd8), + issueDraft: register$D('issue-draft', 0xebd9), + gitPullRequestClosed: register$D('git-pull-request-closed', 0xebda), + gitPullRequestDraft: register$D('git-pull-request-draft', 0xebdb), + debugAll: register$D('debug-all', 0xebdc), + debugCoverage: register$D('debug-coverage', 0xebdd), + runErrors: register$D('run-errors', 0xebde), + folderLibrary: register$D('folder-library', 0xebdf), + debugContinueSmall: register$D('debug-continue-small', 0xebe0), + beakerStop: register$D('beaker-stop', 0xebe1), + graphLine: register$D('graph-line', 0xebe2), + graphScatter: register$D('graph-scatter', 0xebe3), + pieChart: register$D('pie-chart', 0xebe4), + bracket: register$D('bracket', 0xeb0f), + bracketDot: register$D('bracket-dot', 0xebe5), + bracketError: register$D('bracket-error', 0xebe6), + lockSmall: register$D('lock-small', 0xebe7), + azureDevops: register$D('azure-devops', 0xebe8), + verifiedFilled: register$D('verified-filled', 0xebe9), + newline: register$D('newline', 0xebea), + layout: register$D('layout', 0xebeb), + layoutActivitybarLeft: register$D('layout-activitybar-left', 0xebec), + layoutActivitybarRight: register$D('layout-activitybar-right', 0xebed), + layoutPanelLeft: register$D('layout-panel-left', 0xebee), + layoutPanelCenter: register$D('layout-panel-center', 0xebef), + layoutPanelJustify: register$D('layout-panel-justify', 0xebf0), + layoutPanelRight: register$D('layout-panel-right', 0xebf1), + layoutPanel: register$D('layout-panel', 0xebf2), + layoutSidebarLeft: register$D('layout-sidebar-left', 0xebf3), + layoutSidebarRight: register$D('layout-sidebar-right', 0xebf4), + layoutStatusbar: register$D('layout-statusbar', 0xebf5), + layoutMenubar: register$D('layout-menubar', 0xebf6), + layoutCentered: register$D('layout-centered', 0xebf7), + target: register$D('target', 0xebf8), + indent: register$D('indent', 0xebf9), + recordSmall: register$D('record-small', 0xebfa), + errorSmall: register$D('error-small', 0xebfb), + terminalDecorationError: register$D('terminal-decoration-error', 0xebfb), + arrowCircleDown: register$D('arrow-circle-down', 0xebfc), + arrowCircleLeft: register$D('arrow-circle-left', 0xebfd), + arrowCircleRight: register$D('arrow-circle-right', 0xebfe), + arrowCircleUp: register$D('arrow-circle-up', 0xebff), + layoutSidebarRightOff: register$D('layout-sidebar-right-off', 0xec00), + layoutPanelOff: register$D('layout-panel-off', 0xec01), + layoutSidebarLeftOff: register$D('layout-sidebar-left-off', 0xec02), + blank: register$D('blank', 0xec03), + heartFilled: register$D('heart-filled', 0xec04), + map: register$D('map', 0xec05), + mapHorizontal: register$D('map-horizontal', 0xec05), + foldHorizontal: register$D('fold-horizontal', 0xec05), + mapFilled: register$D('map-filled', 0xec06), + mapHorizontalFilled: register$D('map-horizontal-filled', 0xec06), + foldHorizontalFilled: register$D('fold-horizontal-filled', 0xec06), + circleSmall: register$D('circle-small', 0xec07), + bellSlash: register$D('bell-slash', 0xec08), + bellSlashDot: register$D('bell-slash-dot', 0xec09), + commentUnresolved: register$D('comment-unresolved', 0xec0a), + gitPullRequestGoToChanges: register$D('git-pull-request-go-to-changes', 0xec0b), + gitPullRequestNewChanges: register$D('git-pull-request-new-changes', 0xec0c), + searchFuzzy: register$D('search-fuzzy', 0xec0d), + commentDraft: register$D('comment-draft', 0xec0e), + send: register$D('send', 0xec0f), + sparkle: register$D('sparkle', 0xec10), + insert: register$D('insert', 0xec11), + mic: register$D('mic', 0xec12), + thumbsdownFilled: register$D('thumbsdown-filled', 0xec13), + thumbsupFilled: register$D('thumbsup-filled', 0xec14), + coffee: register$D('coffee', 0xec15), + snake: register$D('snake', 0xec16), + game: register$D('game', 0xec17), + vr: register$D('vr', 0xec18), + chip: register$D('chip', 0xec19), + piano: register$D('piano', 0xec1a), + music: register$D('music', 0xec1b), + micFilled: register$D('mic-filled', 0xec1c), + repoFetch: register$D('repo-fetch', 0xec1d), + copilot: register$D('copilot', 0xec1e), + lightbulbSparkle: register$D('lightbulb-sparkle', 0xec1f), + robot: register$D('robot', 0xec20), + sparkleFilled: register$D('sparkle-filled', 0xec21), + diffSingle: register$D('diff-single', 0xec22), + diffMultiple: register$D('diff-multiple', 0xec23), + surroundWith: register$D('surround-with', 0xec24), + share: register$D('share', 0xec25), + gitStash: register$D('git-stash', 0xec26), + gitStashApply: register$D('git-stash-apply', 0xec27), + gitStashPop: register$D('git-stash-pop', 0xec28), + vscode: register$D('vscode', 0xec29), + vscodeInsiders: register$D('vscode-insiders', 0xec2a), + codeOss: register$D('code-oss', 0xec2b), + runCoverage: register$D('run-coverage', 0xec2c), + runAllCoverage: register$D('run-all-coverage', 0xec2d), + coverage: register$D('coverage', 0xec2e), + githubProject: register$D('github-project', 0xec2f), + mapVertical: register$D('map-vertical', 0xec30), + foldVertical: register$D('fold-vertical', 0xec30), + mapVerticalFilled: register$D('map-vertical-filled', 0xec31), + foldVerticalFilled: register$D('fold-vertical-filled', 0xec31), + goToSearch: register$D('go-to-search', 0xec32), + percentage: register$D('percentage', 0xec33), + sortPercentage: register$D('sort-percentage', 0xec33), + attach: register$D('attach', 0xec34), +}; + +/** + * Derived icons, that could become separate icons. + * These mappings should be moved into the mapping file in the vscode-codicons repo at some point. + */ +const codiconsDerived = { + dialogError: register$D('dialog-error', 'error'), + dialogWarning: register$D('dialog-warning', 'warning'), + dialogInfo: register$D('dialog-info', 'info'), + dialogClose: register$D('dialog-close', 'close'), + treeItemExpanded: register$D('tree-item-expanded', 'chevron-down'), // collapsed is done with rotation + treeFilterOnTypeOn: register$D('tree-filter-on-type-on', 'list-filter'), + treeFilterOnTypeOff: register$D('tree-filter-on-type-off', 'list-selection'), + treeFilterClear: register$D('tree-filter-clear', 'close'), + treeItemLoading: register$D('tree-item-loading', 'loading'), + menuSelection: register$D('menu-selection', 'check'), + menuSubmenu: register$D('menu-submenu', 'chevron-right'), + menuBarMore: register$D('menubar-more', 'more'), + scrollbarButtonLeft: register$D('scrollbar-button-left', 'triangle-left'), + scrollbarButtonRight: register$D('scrollbar-button-right', 'triangle-right'), + scrollbarButtonUp: register$D('scrollbar-button-up', 'triangle-up'), + scrollbarButtonDown: register$D('scrollbar-button-down', 'triangle-down'), + toolBarMore: register$D('toolbar-more', 'more'), + quickInputBack: register$D('quick-input-back', 'arrow-left'), + dropDownButton: register$D('drop-down-button', 0xeab4), + symbolCustomColor: register$D('symbol-customcolor', 0xeb5c), + exportIcon: register$D('export', 0xebac), + workspaceUnspecified: register$D('workspace-unspecified', 0xebc3), + newLine: register$D('newline', 0xebea), + thumbsDownFilled: register$D('thumbsdown-filled', 0xec13), + thumbsUpFilled: register$D('thumbsup-filled', 0xec14), + gitFetch: register$D('git-fetch', 0xec1d), + lightbulbSparkleAutofix: register$D('lightbulb-sparkle-autofix', 0xec1f), + debugBreakpointPending: register$D('debug-breakpoint-pending', 0xebd9), +}; +/** + * The Codicon library is a set of default icons that are built-in in VS Code. + * + * In the product (outside of base) Codicons should only be used as defaults. In order to have all icons in VS Code + * themeable, component should define new, UI component specific icons using `iconRegistry.registerIcon`. + * In that call a Codicon can be named as default. + */ +const Codicon = { + ...codiconsLibrary, + ...codiconsDerived +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class TokenizationRegistry { + constructor() { + this._tokenizationSupports = new Map(); + this._factories = new Map(); + this._onDidChange = new Emitter(); + this.onDidChange = this._onDidChange.event; + this._colorMap = null; + } + handleChange(languageIds) { + this._onDidChange.fire({ + changedLanguages: languageIds, + changedColorMap: false + }); + } + register(languageId, support) { + this._tokenizationSupports.set(languageId, support); + this.handleChange([languageId]); + return toDisposable(() => { + if (this._tokenizationSupports.get(languageId) !== support) { + return; + } + this._tokenizationSupports.delete(languageId); + this.handleChange([languageId]); + }); + } + get(languageId) { + return this._tokenizationSupports.get(languageId) || null; + } + registerFactory(languageId, factory) { + this._factories.get(languageId)?.dispose(); + const myData = new TokenizationSupportFactoryData(this, languageId, factory); + this._factories.set(languageId, myData); + return toDisposable(() => { + const v = this._factories.get(languageId); + if (!v || v !== myData) { + return; + } + this._factories.delete(languageId); + v.dispose(); + }); + } + async getOrCreate(languageId) { + // check first if the support is already set + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return tokenizationSupport; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + // no factory or factory.resolve already finished + return null; + } + await factory.resolve(); + return this.get(languageId); + } + isResolved(languageId) { + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return true; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + return true; + } + return false; + } + setColorMap(colorMap) { + this._colorMap = colorMap; + this._onDidChange.fire({ + changedLanguages: Array.from(this._tokenizationSupports.keys()), + changedColorMap: true + }); + } + getColorMap() { + return this._colorMap; + } + getDefaultBackground() { + if (this._colorMap && this._colorMap.length > 2 /* ColorId.DefaultBackground */) { + return this._colorMap[2 /* ColorId.DefaultBackground */]; + } + return null; + } +} +class TokenizationSupportFactoryData extends Disposable { + get isResolved() { + return this._isResolved; + } + constructor(_registry, _languageId, _factory) { + super(); + this._registry = _registry; + this._languageId = _languageId; + this._factory = _factory; + this._isDisposed = false; + this._resolvePromise = null; + this._isResolved = false; + } + dispose() { + this._isDisposed = true; + super.dispose(); + } + async resolve() { + if (!this._resolvePromise) { + this._resolvePromise = this._create(); + } + return this._resolvePromise; + } + async _create() { + const value = await this._factory.tokenizationSupport; + this._isResolved = true; + if (value && !this._isDisposed) { + this._register(this._registry.register(this._languageId, value)); + } + } +} + +let Token$1 = class Token { + constructor(offset, type, language) { + this.offset = offset; + this.type = type; + this.language = language; + this._tokenBrand = undefined; + } + toString() { + return '(' + this.offset + ', ' + this.type + ')'; + } +}; +var HoverVerbosityAction$1; +(function (HoverVerbosityAction) { + /** + * Increase the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Increase"] = 0] = "Increase"; + /** + * Decrease the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Decrease"] = 1] = "Decrease"; +})(HoverVerbosityAction$1 || (HoverVerbosityAction$1 = {})); +/** + * @internal + */ +var CompletionItemKinds; +(function (CompletionItemKinds) { + const byKind = new Map(); + byKind.set(0 /* CompletionItemKind.Method */, Codicon.symbolMethod); + byKind.set(1 /* CompletionItemKind.Function */, Codicon.symbolFunction); + byKind.set(2 /* CompletionItemKind.Constructor */, Codicon.symbolConstructor); + byKind.set(3 /* CompletionItemKind.Field */, Codicon.symbolField); + byKind.set(4 /* CompletionItemKind.Variable */, Codicon.symbolVariable); + byKind.set(5 /* CompletionItemKind.Class */, Codicon.symbolClass); + byKind.set(6 /* CompletionItemKind.Struct */, Codicon.symbolStruct); + byKind.set(7 /* CompletionItemKind.Interface */, Codicon.symbolInterface); + byKind.set(8 /* CompletionItemKind.Module */, Codicon.symbolModule); + byKind.set(9 /* CompletionItemKind.Property */, Codicon.symbolProperty); + byKind.set(10 /* CompletionItemKind.Event */, Codicon.symbolEvent); + byKind.set(11 /* CompletionItemKind.Operator */, Codicon.symbolOperator); + byKind.set(12 /* CompletionItemKind.Unit */, Codicon.symbolUnit); + byKind.set(13 /* CompletionItemKind.Value */, Codicon.symbolValue); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(14 /* CompletionItemKind.Constant */, Codicon.symbolConstant); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(16 /* CompletionItemKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(17 /* CompletionItemKind.Keyword */, Codicon.symbolKeyword); + byKind.set(27 /* CompletionItemKind.Snippet */, Codicon.symbolSnippet); + byKind.set(18 /* CompletionItemKind.Text */, Codicon.symbolText); + byKind.set(19 /* CompletionItemKind.Color */, Codicon.symbolColor); + byKind.set(20 /* CompletionItemKind.File */, Codicon.symbolFile); + byKind.set(21 /* CompletionItemKind.Reference */, Codicon.symbolReference); + byKind.set(22 /* CompletionItemKind.Customcolor */, Codicon.symbolCustomColor); + byKind.set(23 /* CompletionItemKind.Folder */, Codicon.symbolFolder); + byKind.set(24 /* CompletionItemKind.TypeParameter */, Codicon.symbolTypeParameter); + byKind.set(25 /* CompletionItemKind.User */, Codicon.account); + byKind.set(26 /* CompletionItemKind.Issue */, Codicon.issues); + /** + * @internal + */ + function toIcon(kind) { + let codicon = byKind.get(kind); + if (!codicon) { + console.info('No codicon found for CompletionItemKind ' + kind); + codicon = Codicon.symbolProperty; + } + return codicon; + } + CompletionItemKinds.toIcon = toIcon; + const data = new Map(); + data.set('method', 0 /* CompletionItemKind.Method */); + data.set('function', 1 /* CompletionItemKind.Function */); + data.set('constructor', 2 /* CompletionItemKind.Constructor */); + data.set('field', 3 /* CompletionItemKind.Field */); + data.set('variable', 4 /* CompletionItemKind.Variable */); + data.set('class', 5 /* CompletionItemKind.Class */); + data.set('struct', 6 /* CompletionItemKind.Struct */); + data.set('interface', 7 /* CompletionItemKind.Interface */); + data.set('module', 8 /* CompletionItemKind.Module */); + data.set('property', 9 /* CompletionItemKind.Property */); + data.set('event', 10 /* CompletionItemKind.Event */); + data.set('operator', 11 /* CompletionItemKind.Operator */); + data.set('unit', 12 /* CompletionItemKind.Unit */); + data.set('value', 13 /* CompletionItemKind.Value */); + data.set('constant', 14 /* CompletionItemKind.Constant */); + data.set('enum', 15 /* CompletionItemKind.Enum */); + data.set('enum-member', 16 /* CompletionItemKind.EnumMember */); + data.set('enumMember', 16 /* CompletionItemKind.EnumMember */); + data.set('keyword', 17 /* CompletionItemKind.Keyword */); + data.set('snippet', 27 /* CompletionItemKind.Snippet */); + data.set('text', 18 /* CompletionItemKind.Text */); + data.set('color', 19 /* CompletionItemKind.Color */); + data.set('file', 20 /* CompletionItemKind.File */); + data.set('reference', 21 /* CompletionItemKind.Reference */); + data.set('customcolor', 22 /* CompletionItemKind.Customcolor */); + data.set('folder', 23 /* CompletionItemKind.Folder */); + data.set('type-parameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('typeParameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('account', 25 /* CompletionItemKind.User */); + data.set('issue', 26 /* CompletionItemKind.Issue */); + /** + * @internal + */ + function fromString(value, strict) { + let res = data.get(value); + if (typeof res === 'undefined' && !strict) { + res = 9 /* CompletionItemKind.Property */; + } + return res; + } + CompletionItemKinds.fromString = fromString; +})(CompletionItemKinds || (CompletionItemKinds = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var InlineCompletionTriggerKind$2; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(InlineCompletionTriggerKind$2 || (InlineCompletionTriggerKind$2 = {})); +/** + * @internal + */ +var DocumentPasteTriggerKind; +(function (DocumentPasteTriggerKind) { + DocumentPasteTriggerKind[DocumentPasteTriggerKind["Automatic"] = 0] = "Automatic"; + DocumentPasteTriggerKind[DocumentPasteTriggerKind["PasteAs"] = 1] = "PasteAs"; +})(DocumentPasteTriggerKind || (DocumentPasteTriggerKind = {})); +var SignatureHelpTriggerKind$1; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(SignatureHelpTriggerKind$1 || (SignatureHelpTriggerKind$1 = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind$2; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(DocumentHighlightKind$2 || (DocumentHighlightKind$2 = {})); +/** + * @internal + */ +({ + [17 /* SymbolKind.Array */]: localize$2('Array', "array"), + [16 /* SymbolKind.Boolean */]: localize$2('Boolean', "boolean"), + [4 /* SymbolKind.Class */]: localize$2('Class', "class"), + [13 /* SymbolKind.Constant */]: localize$2('Constant', "constant"), + [8 /* SymbolKind.Constructor */]: localize$2('Constructor', "constructor"), + [9 /* SymbolKind.Enum */]: localize$2('Enum', "enumeration"), + [21 /* SymbolKind.EnumMember */]: localize$2('EnumMember', "enumeration member"), + [23 /* SymbolKind.Event */]: localize$2('Event', "event"), + [7 /* SymbolKind.Field */]: localize$2('Field', "field"), + [0 /* SymbolKind.File */]: localize$2('File', "file"), + [11 /* SymbolKind.Function */]: localize$2('Function', "function"), + [10 /* SymbolKind.Interface */]: localize$2('Interface', "interface"), + [19 /* SymbolKind.Key */]: localize$2('Key', "key"), + [5 /* SymbolKind.Method */]: localize$2('Method', "method"), + [1 /* SymbolKind.Module */]: localize$2('Module', "module"), + [2 /* SymbolKind.Namespace */]: localize$2('Namespace', "namespace"), + [20 /* SymbolKind.Null */]: localize$2('Null', "null"), + [15 /* SymbolKind.Number */]: localize$2('Number', "number"), + [18 /* SymbolKind.Object */]: localize$2('Object', "object"), + [24 /* SymbolKind.Operator */]: localize$2('Operator', "operator"), + [3 /* SymbolKind.Package */]: localize$2('Package', "package"), + [6 /* SymbolKind.Property */]: localize$2('Property', "property"), + [14 /* SymbolKind.String */]: localize$2('String', "string"), + [22 /* SymbolKind.Struct */]: localize$2('Struct', "struct"), + [25 /* SymbolKind.TypeParameter */]: localize$2('TypeParameter', "type parameter"), + [12 /* SymbolKind.Variable */]: localize$2('Variable', "variable"), +}); +/** + * @internal + */ +var SymbolKinds; +(function (SymbolKinds) { + const byKind = new Map(); + byKind.set(0 /* SymbolKind.File */, Codicon.symbolFile); + byKind.set(1 /* SymbolKind.Module */, Codicon.symbolModule); + byKind.set(2 /* SymbolKind.Namespace */, Codicon.symbolNamespace); + byKind.set(3 /* SymbolKind.Package */, Codicon.symbolPackage); + byKind.set(4 /* SymbolKind.Class */, Codicon.symbolClass); + byKind.set(5 /* SymbolKind.Method */, Codicon.symbolMethod); + byKind.set(6 /* SymbolKind.Property */, Codicon.symbolProperty); + byKind.set(7 /* SymbolKind.Field */, Codicon.symbolField); + byKind.set(8 /* SymbolKind.Constructor */, Codicon.symbolConstructor); + byKind.set(9 /* SymbolKind.Enum */, Codicon.symbolEnum); + byKind.set(10 /* SymbolKind.Interface */, Codicon.symbolInterface); + byKind.set(11 /* SymbolKind.Function */, Codicon.symbolFunction); + byKind.set(12 /* SymbolKind.Variable */, Codicon.symbolVariable); + byKind.set(13 /* SymbolKind.Constant */, Codicon.symbolConstant); + byKind.set(14 /* SymbolKind.String */, Codicon.symbolString); + byKind.set(15 /* SymbolKind.Number */, Codicon.symbolNumber); + byKind.set(16 /* SymbolKind.Boolean */, Codicon.symbolBoolean); + byKind.set(17 /* SymbolKind.Array */, Codicon.symbolArray); + byKind.set(18 /* SymbolKind.Object */, Codicon.symbolObject); + byKind.set(19 /* SymbolKind.Key */, Codicon.symbolKey); + byKind.set(20 /* SymbolKind.Null */, Codicon.symbolNull); + byKind.set(21 /* SymbolKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(22 /* SymbolKind.Struct */, Codicon.symbolStruct); + byKind.set(23 /* SymbolKind.Event */, Codicon.symbolEvent); + byKind.set(24 /* SymbolKind.Operator */, Codicon.symbolOperator); + byKind.set(25 /* SymbolKind.TypeParameter */, Codicon.symbolTypeParameter); + /** + * @internal + */ + function toIcon(kind) { + let icon = byKind.get(kind); + if (!icon) { + console.info('No codicon found for SymbolKind ' + kind); + icon = Codicon.symbolProperty; + } + return icon; + } + SymbolKinds.toIcon = toIcon; +})(SymbolKinds || (SymbolKinds = {})); +let FoldingRangeKind$1 = class FoldingRangeKind { + /** + * Kind for folding range representing a comment. The value of the kind is 'comment'. + */ + static { this.Comment = new FoldingRangeKind('comment'); } + /** + * Kind for folding range representing a import. The value of the kind is 'imports'. + */ + static { this.Imports = new FoldingRangeKind('imports'); } + /** + * Kind for folding range representing regions (for example marked by `#region`, `#endregion`). + * The value of the kind is 'region'. + */ + static { this.Region = new FoldingRangeKind('region'); } + /** + * Returns a {@link FoldingRangeKind} for the given value. + * + * @param value of the kind. + */ + static fromValue(value) { + switch (value) { + case 'comment': return FoldingRangeKind.Comment; + case 'imports': return FoldingRangeKind.Imports; + case 'region': return FoldingRangeKind.Region; + } + return new FoldingRangeKind(value); + } + /** + * Creates a new {@link FoldingRangeKind}. + * + * @param value of the kind. + */ + constructor(value) { + this.value = value; + } +}; +var NewSymbolNameTag$1; +(function (NewSymbolNameTag) { + NewSymbolNameTag[NewSymbolNameTag["AIGenerated"] = 1] = "AIGenerated"; +})(NewSymbolNameTag$1 || (NewSymbolNameTag$1 = {})); +var NewSymbolNameTriggerKind$1; +(function (NewSymbolNameTriggerKind) { + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Invoke"] = 0] = "Invoke"; + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Automatic"] = 1] = "Automatic"; +})(NewSymbolNameTriggerKind$1 || (NewSymbolNameTriggerKind$1 = {})); +/** + * @internal + */ +var Command$1; +(function (Command) { + /** + * @internal + */ + function is(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + return typeof obj.id === 'string' && + typeof obj.title === 'string'; + } + Command.is = is; +})(Command$1 || (Command$1 = {})); +var InlayHintKind$2; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(InlayHintKind$2 || (InlayHintKind$2 = {})); +/** + * @internal + */ +new TokenizationRegistry(); +var InlineEditTriggerKind$1; +(function (InlineEditTriggerKind) { + InlineEditTriggerKind[InlineEditTriggerKind["Invoke"] = 0] = "Invoke"; + InlineEditTriggerKind[InlineEditTriggerKind["Automatic"] = 1] = "Automatic"; +})(InlineEditTriggerKind$1 || (InlineEditTriggerKind$1 = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. +var AccessibilitySupport; +(function (AccessibilitySupport) { + /** + * This should be the browser case where it is not known if a screen reader is attached or no. + */ + AccessibilitySupport[AccessibilitySupport["Unknown"] = 0] = "Unknown"; + AccessibilitySupport[AccessibilitySupport["Disabled"] = 1] = "Disabled"; + AccessibilitySupport[AccessibilitySupport["Enabled"] = 2] = "Enabled"; +})(AccessibilitySupport || (AccessibilitySupport = {})); +var CodeActionTriggerType; +(function (CodeActionTriggerType) { + CodeActionTriggerType[CodeActionTriggerType["Invoke"] = 1] = "Invoke"; + CodeActionTriggerType[CodeActionTriggerType["Auto"] = 2] = "Auto"; +})(CodeActionTriggerType || (CodeActionTriggerType = {})); +var CompletionItemInsertTextRule; +(function (CompletionItemInsertTextRule) { + CompletionItemInsertTextRule[CompletionItemInsertTextRule["None"] = 0] = "None"; + /** + * Adjust whitespace/indentation of multiline insert texts to + * match the current line indentation. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["KeepWhitespace"] = 1] = "KeepWhitespace"; + /** + * `insertText` is a snippet. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["InsertAsSnippet"] = 4] = "InsertAsSnippet"; +})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {})); +var CompletionItemKind$1; +(function (CompletionItemKind) { + CompletionItemKind[CompletionItemKind["Method"] = 0] = "Method"; + CompletionItemKind[CompletionItemKind["Function"] = 1] = "Function"; + CompletionItemKind[CompletionItemKind["Constructor"] = 2] = "Constructor"; + CompletionItemKind[CompletionItemKind["Field"] = 3] = "Field"; + CompletionItemKind[CompletionItemKind["Variable"] = 4] = "Variable"; + CompletionItemKind[CompletionItemKind["Class"] = 5] = "Class"; + CompletionItemKind[CompletionItemKind["Struct"] = 6] = "Struct"; + CompletionItemKind[CompletionItemKind["Interface"] = 7] = "Interface"; + CompletionItemKind[CompletionItemKind["Module"] = 8] = "Module"; + CompletionItemKind[CompletionItemKind["Property"] = 9] = "Property"; + CompletionItemKind[CompletionItemKind["Event"] = 10] = "Event"; + CompletionItemKind[CompletionItemKind["Operator"] = 11] = "Operator"; + CompletionItemKind[CompletionItemKind["Unit"] = 12] = "Unit"; + CompletionItemKind[CompletionItemKind["Value"] = 13] = "Value"; + CompletionItemKind[CompletionItemKind["Constant"] = 14] = "Constant"; + CompletionItemKind[CompletionItemKind["Enum"] = 15] = "Enum"; + CompletionItemKind[CompletionItemKind["EnumMember"] = 16] = "EnumMember"; + CompletionItemKind[CompletionItemKind["Keyword"] = 17] = "Keyword"; + CompletionItemKind[CompletionItemKind["Text"] = 18] = "Text"; + CompletionItemKind[CompletionItemKind["Color"] = 19] = "Color"; + CompletionItemKind[CompletionItemKind["File"] = 20] = "File"; + CompletionItemKind[CompletionItemKind["Reference"] = 21] = "Reference"; + CompletionItemKind[CompletionItemKind["Customcolor"] = 22] = "Customcolor"; + CompletionItemKind[CompletionItemKind["Folder"] = 23] = "Folder"; + CompletionItemKind[CompletionItemKind["TypeParameter"] = 24] = "TypeParameter"; + CompletionItemKind[CompletionItemKind["User"] = 25] = "User"; + CompletionItemKind[CompletionItemKind["Issue"] = 26] = "Issue"; + CompletionItemKind[CompletionItemKind["Snippet"] = 27] = "Snippet"; +})(CompletionItemKind$1 || (CompletionItemKind$1 = {})); +var CompletionItemTag$1; +(function (CompletionItemTag) { + CompletionItemTag[CompletionItemTag["Deprecated"] = 1] = "Deprecated"; +})(CompletionItemTag$1 || (CompletionItemTag$1 = {})); +/** + * How a suggest provider was triggered. + */ +var CompletionTriggerKind; +(function (CompletionTriggerKind) { + CompletionTriggerKind[CompletionTriggerKind["Invoke"] = 0] = "Invoke"; + CompletionTriggerKind[CompletionTriggerKind["TriggerCharacter"] = 1] = "TriggerCharacter"; + CompletionTriggerKind[CompletionTriggerKind["TriggerForIncompleteCompletions"] = 2] = "TriggerForIncompleteCompletions"; +})(CompletionTriggerKind || (CompletionTriggerKind = {})); +/** + * A positioning preference for rendering content widgets. + */ +var ContentWidgetPositionPreference; +(function (ContentWidgetPositionPreference) { + /** + * Place the content widget exactly at a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["EXACT"] = 0] = "EXACT"; + /** + * Place the content widget above a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["ABOVE"] = 1] = "ABOVE"; + /** + * Place the content widget below a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["BELOW"] = 2] = "BELOW"; +})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {})); +/** + * Describes the reason the cursor has changed its position. + */ +var CursorChangeReason; +(function (CursorChangeReason) { + /** + * Unknown or not set. + */ + CursorChangeReason[CursorChangeReason["NotSet"] = 0] = "NotSet"; + /** + * A `model.setValue()` was called. + */ + CursorChangeReason[CursorChangeReason["ContentFlush"] = 1] = "ContentFlush"; + /** + * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. + */ + CursorChangeReason[CursorChangeReason["RecoverFromMarkers"] = 2] = "RecoverFromMarkers"; + /** + * There was an explicit user gesture. + */ + CursorChangeReason[CursorChangeReason["Explicit"] = 3] = "Explicit"; + /** + * There was a Paste. + */ + CursorChangeReason[CursorChangeReason["Paste"] = 4] = "Paste"; + /** + * There was an Undo. + */ + CursorChangeReason[CursorChangeReason["Undo"] = 5] = "Undo"; + /** + * There was a Redo. + */ + CursorChangeReason[CursorChangeReason["Redo"] = 6] = "Redo"; +})(CursorChangeReason || (CursorChangeReason = {})); +/** + * The default end of line to use when instantiating models. + */ +var DefaultEndOfLine; +(function (DefaultEndOfLine) { + /** + * Use line feed (\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["CRLF"] = 2] = "CRLF"; +})(DefaultEndOfLine || (DefaultEndOfLine = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind$1; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(DocumentHighlightKind$1 || (DocumentHighlightKind$1 = {})); +/** + * Configuration options for auto indentation in the editor + */ +var EditorAutoIndentStrategy; +(function (EditorAutoIndentStrategy) { + EditorAutoIndentStrategy[EditorAutoIndentStrategy["None"] = 0] = "None"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Keep"] = 1] = "Keep"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Brackets"] = 2] = "Brackets"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Advanced"] = 3] = "Advanced"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Full"] = 4] = "Full"; +})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {})); +var EditorOption; +(function (EditorOption) { + EditorOption[EditorOption["acceptSuggestionOnCommitCharacter"] = 0] = "acceptSuggestionOnCommitCharacter"; + EditorOption[EditorOption["acceptSuggestionOnEnter"] = 1] = "acceptSuggestionOnEnter"; + EditorOption[EditorOption["accessibilitySupport"] = 2] = "accessibilitySupport"; + EditorOption[EditorOption["accessibilityPageSize"] = 3] = "accessibilityPageSize"; + EditorOption[EditorOption["ariaLabel"] = 4] = "ariaLabel"; + EditorOption[EditorOption["ariaRequired"] = 5] = "ariaRequired"; + EditorOption[EditorOption["autoClosingBrackets"] = 6] = "autoClosingBrackets"; + EditorOption[EditorOption["autoClosingComments"] = 7] = "autoClosingComments"; + EditorOption[EditorOption["screenReaderAnnounceInlineSuggestion"] = 8] = "screenReaderAnnounceInlineSuggestion"; + EditorOption[EditorOption["autoClosingDelete"] = 9] = "autoClosingDelete"; + EditorOption[EditorOption["autoClosingOvertype"] = 10] = "autoClosingOvertype"; + EditorOption[EditorOption["autoClosingQuotes"] = 11] = "autoClosingQuotes"; + EditorOption[EditorOption["autoIndent"] = 12] = "autoIndent"; + EditorOption[EditorOption["automaticLayout"] = 13] = "automaticLayout"; + EditorOption[EditorOption["autoSurround"] = 14] = "autoSurround"; + EditorOption[EditorOption["bracketPairColorization"] = 15] = "bracketPairColorization"; + EditorOption[EditorOption["guides"] = 16] = "guides"; + EditorOption[EditorOption["codeLens"] = 17] = "codeLens"; + EditorOption[EditorOption["codeLensFontFamily"] = 18] = "codeLensFontFamily"; + EditorOption[EditorOption["codeLensFontSize"] = 19] = "codeLensFontSize"; + EditorOption[EditorOption["colorDecorators"] = 20] = "colorDecorators"; + EditorOption[EditorOption["colorDecoratorsLimit"] = 21] = "colorDecoratorsLimit"; + EditorOption[EditorOption["columnSelection"] = 22] = "columnSelection"; + EditorOption[EditorOption["comments"] = 23] = "comments"; + EditorOption[EditorOption["contextmenu"] = 24] = "contextmenu"; + EditorOption[EditorOption["copyWithSyntaxHighlighting"] = 25] = "copyWithSyntaxHighlighting"; + EditorOption[EditorOption["cursorBlinking"] = 26] = "cursorBlinking"; + EditorOption[EditorOption["cursorSmoothCaretAnimation"] = 27] = "cursorSmoothCaretAnimation"; + EditorOption[EditorOption["cursorStyle"] = 28] = "cursorStyle"; + EditorOption[EditorOption["cursorSurroundingLines"] = 29] = "cursorSurroundingLines"; + EditorOption[EditorOption["cursorSurroundingLinesStyle"] = 30] = "cursorSurroundingLinesStyle"; + EditorOption[EditorOption["cursorWidth"] = 31] = "cursorWidth"; + EditorOption[EditorOption["disableLayerHinting"] = 32] = "disableLayerHinting"; + EditorOption[EditorOption["disableMonospaceOptimizations"] = 33] = "disableMonospaceOptimizations"; + EditorOption[EditorOption["domReadOnly"] = 34] = "domReadOnly"; + EditorOption[EditorOption["dragAndDrop"] = 35] = "dragAndDrop"; + EditorOption[EditorOption["dropIntoEditor"] = 36] = "dropIntoEditor"; + EditorOption[EditorOption["emptySelectionClipboard"] = 37] = "emptySelectionClipboard"; + EditorOption[EditorOption["experimentalWhitespaceRendering"] = 38] = "experimentalWhitespaceRendering"; + EditorOption[EditorOption["extraEditorClassName"] = 39] = "extraEditorClassName"; + EditorOption[EditorOption["fastScrollSensitivity"] = 40] = "fastScrollSensitivity"; + EditorOption[EditorOption["find"] = 41] = "find"; + EditorOption[EditorOption["fixedOverflowWidgets"] = 42] = "fixedOverflowWidgets"; + EditorOption[EditorOption["folding"] = 43] = "folding"; + EditorOption[EditorOption["foldingStrategy"] = 44] = "foldingStrategy"; + EditorOption[EditorOption["foldingHighlight"] = 45] = "foldingHighlight"; + EditorOption[EditorOption["foldingImportsByDefault"] = 46] = "foldingImportsByDefault"; + EditorOption[EditorOption["foldingMaximumRegions"] = 47] = "foldingMaximumRegions"; + EditorOption[EditorOption["unfoldOnClickAfterEndOfLine"] = 48] = "unfoldOnClickAfterEndOfLine"; + EditorOption[EditorOption["fontFamily"] = 49] = "fontFamily"; + EditorOption[EditorOption["fontInfo"] = 50] = "fontInfo"; + EditorOption[EditorOption["fontLigatures"] = 51] = "fontLigatures"; + EditorOption[EditorOption["fontSize"] = 52] = "fontSize"; + EditorOption[EditorOption["fontWeight"] = 53] = "fontWeight"; + EditorOption[EditorOption["fontVariations"] = 54] = "fontVariations"; + EditorOption[EditorOption["formatOnPaste"] = 55] = "formatOnPaste"; + EditorOption[EditorOption["formatOnType"] = 56] = "formatOnType"; + EditorOption[EditorOption["glyphMargin"] = 57] = "glyphMargin"; + EditorOption[EditorOption["gotoLocation"] = 58] = "gotoLocation"; + EditorOption[EditorOption["hideCursorInOverviewRuler"] = 59] = "hideCursorInOverviewRuler"; + EditorOption[EditorOption["hover"] = 60] = "hover"; + EditorOption[EditorOption["inDiffEditor"] = 61] = "inDiffEditor"; + EditorOption[EditorOption["inlineSuggest"] = 62] = "inlineSuggest"; + EditorOption[EditorOption["inlineEdit"] = 63] = "inlineEdit"; + EditorOption[EditorOption["letterSpacing"] = 64] = "letterSpacing"; + EditorOption[EditorOption["lightbulb"] = 65] = "lightbulb"; + EditorOption[EditorOption["lineDecorationsWidth"] = 66] = "lineDecorationsWidth"; + EditorOption[EditorOption["lineHeight"] = 67] = "lineHeight"; + EditorOption[EditorOption["lineNumbers"] = 68] = "lineNumbers"; + EditorOption[EditorOption["lineNumbersMinChars"] = 69] = "lineNumbersMinChars"; + EditorOption[EditorOption["linkedEditing"] = 70] = "linkedEditing"; + EditorOption[EditorOption["links"] = 71] = "links"; + EditorOption[EditorOption["matchBrackets"] = 72] = "matchBrackets"; + EditorOption[EditorOption["minimap"] = 73] = "minimap"; + EditorOption[EditorOption["mouseStyle"] = 74] = "mouseStyle"; + EditorOption[EditorOption["mouseWheelScrollSensitivity"] = 75] = "mouseWheelScrollSensitivity"; + EditorOption[EditorOption["mouseWheelZoom"] = 76] = "mouseWheelZoom"; + EditorOption[EditorOption["multiCursorMergeOverlapping"] = 77] = "multiCursorMergeOverlapping"; + EditorOption[EditorOption["multiCursorModifier"] = 78] = "multiCursorModifier"; + EditorOption[EditorOption["multiCursorPaste"] = 79] = "multiCursorPaste"; + EditorOption[EditorOption["multiCursorLimit"] = 80] = "multiCursorLimit"; + EditorOption[EditorOption["occurrencesHighlight"] = 81] = "occurrencesHighlight"; + EditorOption[EditorOption["overviewRulerBorder"] = 82] = "overviewRulerBorder"; + EditorOption[EditorOption["overviewRulerLanes"] = 83] = "overviewRulerLanes"; + EditorOption[EditorOption["padding"] = 84] = "padding"; + EditorOption[EditorOption["pasteAs"] = 85] = "pasteAs"; + EditorOption[EditorOption["parameterHints"] = 86] = "parameterHints"; + EditorOption[EditorOption["peekWidgetDefaultFocus"] = 87] = "peekWidgetDefaultFocus"; + EditorOption[EditorOption["placeholder"] = 88] = "placeholder"; + EditorOption[EditorOption["definitionLinkOpensInPeek"] = 89] = "definitionLinkOpensInPeek"; + EditorOption[EditorOption["quickSuggestions"] = 90] = "quickSuggestions"; + EditorOption[EditorOption["quickSuggestionsDelay"] = 91] = "quickSuggestionsDelay"; + EditorOption[EditorOption["readOnly"] = 92] = "readOnly"; + EditorOption[EditorOption["readOnlyMessage"] = 93] = "readOnlyMessage"; + EditorOption[EditorOption["renameOnType"] = 94] = "renameOnType"; + EditorOption[EditorOption["renderControlCharacters"] = 95] = "renderControlCharacters"; + EditorOption[EditorOption["renderFinalNewline"] = 96] = "renderFinalNewline"; + EditorOption[EditorOption["renderLineHighlight"] = 97] = "renderLineHighlight"; + EditorOption[EditorOption["renderLineHighlightOnlyWhenFocus"] = 98] = "renderLineHighlightOnlyWhenFocus"; + EditorOption[EditorOption["renderValidationDecorations"] = 99] = "renderValidationDecorations"; + EditorOption[EditorOption["renderWhitespace"] = 100] = "renderWhitespace"; + EditorOption[EditorOption["revealHorizontalRightPadding"] = 101] = "revealHorizontalRightPadding"; + EditorOption[EditorOption["roundedSelection"] = 102] = "roundedSelection"; + EditorOption[EditorOption["rulers"] = 103] = "rulers"; + EditorOption[EditorOption["scrollbar"] = 104] = "scrollbar"; + EditorOption[EditorOption["scrollBeyondLastColumn"] = 105] = "scrollBeyondLastColumn"; + EditorOption[EditorOption["scrollBeyondLastLine"] = 106] = "scrollBeyondLastLine"; + EditorOption[EditorOption["scrollPredominantAxis"] = 107] = "scrollPredominantAxis"; + EditorOption[EditorOption["selectionClipboard"] = 108] = "selectionClipboard"; + EditorOption[EditorOption["selectionHighlight"] = 109] = "selectionHighlight"; + EditorOption[EditorOption["selectOnLineNumbers"] = 110] = "selectOnLineNumbers"; + EditorOption[EditorOption["showFoldingControls"] = 111] = "showFoldingControls"; + EditorOption[EditorOption["showUnused"] = 112] = "showUnused"; + EditorOption[EditorOption["snippetSuggestions"] = 113] = "snippetSuggestions"; + EditorOption[EditorOption["smartSelect"] = 114] = "smartSelect"; + EditorOption[EditorOption["smoothScrolling"] = 115] = "smoothScrolling"; + EditorOption[EditorOption["stickyScroll"] = 116] = "stickyScroll"; + EditorOption[EditorOption["stickyTabStops"] = 117] = "stickyTabStops"; + EditorOption[EditorOption["stopRenderingLineAfter"] = 118] = "stopRenderingLineAfter"; + EditorOption[EditorOption["suggest"] = 119] = "suggest"; + EditorOption[EditorOption["suggestFontSize"] = 120] = "suggestFontSize"; + EditorOption[EditorOption["suggestLineHeight"] = 121] = "suggestLineHeight"; + EditorOption[EditorOption["suggestOnTriggerCharacters"] = 122] = "suggestOnTriggerCharacters"; + EditorOption[EditorOption["suggestSelection"] = 123] = "suggestSelection"; + EditorOption[EditorOption["tabCompletion"] = 124] = "tabCompletion"; + EditorOption[EditorOption["tabIndex"] = 125] = "tabIndex"; + EditorOption[EditorOption["unicodeHighlighting"] = 126] = "unicodeHighlighting"; + EditorOption[EditorOption["unusualLineTerminators"] = 127] = "unusualLineTerminators"; + EditorOption[EditorOption["useShadowDOM"] = 128] = "useShadowDOM"; + EditorOption[EditorOption["useTabStops"] = 129] = "useTabStops"; + EditorOption[EditorOption["wordBreak"] = 130] = "wordBreak"; + EditorOption[EditorOption["wordSegmenterLocales"] = 131] = "wordSegmenterLocales"; + EditorOption[EditorOption["wordSeparators"] = 132] = "wordSeparators"; + EditorOption[EditorOption["wordWrap"] = 133] = "wordWrap"; + EditorOption[EditorOption["wordWrapBreakAfterCharacters"] = 134] = "wordWrapBreakAfterCharacters"; + EditorOption[EditorOption["wordWrapBreakBeforeCharacters"] = 135] = "wordWrapBreakBeforeCharacters"; + EditorOption[EditorOption["wordWrapColumn"] = 136] = "wordWrapColumn"; + EditorOption[EditorOption["wordWrapOverride1"] = 137] = "wordWrapOverride1"; + EditorOption[EditorOption["wordWrapOverride2"] = 138] = "wordWrapOverride2"; + EditorOption[EditorOption["wrappingIndent"] = 139] = "wrappingIndent"; + EditorOption[EditorOption["wrappingStrategy"] = 140] = "wrappingStrategy"; + EditorOption[EditorOption["showDeprecated"] = 141] = "showDeprecated"; + EditorOption[EditorOption["inlayHints"] = 142] = "inlayHints"; + EditorOption[EditorOption["editorClassName"] = 143] = "editorClassName"; + EditorOption[EditorOption["pixelRatio"] = 144] = "pixelRatio"; + EditorOption[EditorOption["tabFocusMode"] = 145] = "tabFocusMode"; + EditorOption[EditorOption["layoutInfo"] = 146] = "layoutInfo"; + EditorOption[EditorOption["wrappingInfo"] = 147] = "wrappingInfo"; + EditorOption[EditorOption["defaultColorDecorators"] = 148] = "defaultColorDecorators"; + EditorOption[EditorOption["colorDecoratorsActivatedOn"] = 149] = "colorDecoratorsActivatedOn"; + EditorOption[EditorOption["inlineCompletionsAccessibilityVerbose"] = 150] = "inlineCompletionsAccessibilityVerbose"; +})(EditorOption || (EditorOption = {})); +/** + * End of line character preference. + */ +var EndOfLinePreference; +(function (EndOfLinePreference) { + /** + * Use the end of line character identified in the text buffer. + */ + EndOfLinePreference[EndOfLinePreference["TextDefined"] = 0] = "TextDefined"; + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["CRLF"] = 2] = "CRLF"; +})(EndOfLinePreference || (EndOfLinePreference = {})); +/** + * End of line character preference. + */ +var EndOfLineSequence; +(function (EndOfLineSequence) { + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["LF"] = 0] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["CRLF"] = 1] = "CRLF"; +})(EndOfLineSequence || (EndOfLineSequence = {})); +/** + * Vertical Lane in the glyph margin of the editor. + */ +var GlyphMarginLane$1; +(function (GlyphMarginLane) { + GlyphMarginLane[GlyphMarginLane["Left"] = 1] = "Left"; + GlyphMarginLane[GlyphMarginLane["Center"] = 2] = "Center"; + GlyphMarginLane[GlyphMarginLane["Right"] = 3] = "Right"; +})(GlyphMarginLane$1 || (GlyphMarginLane$1 = {})); +var HoverVerbosityAction; +(function (HoverVerbosityAction) { + /** + * Increase the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Increase"] = 0] = "Increase"; + /** + * Decrease the verbosity of the hover + */ + HoverVerbosityAction[HoverVerbosityAction["Decrease"] = 1] = "Decrease"; +})(HoverVerbosityAction || (HoverVerbosityAction = {})); +/** + * Describes what to do with the indentation when pressing Enter. + */ +var IndentAction; +(function (IndentAction) { + /** + * Insert new line and copy the previous line's indentation. + */ + IndentAction[IndentAction["None"] = 0] = "None"; + /** + * Insert new line and indent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Indent"] = 1] = "Indent"; + /** + * Insert two new lines: + * - the first one indented which will hold the cursor + * - the second one at the same indentation level + */ + IndentAction[IndentAction["IndentOutdent"] = 2] = "IndentOutdent"; + /** + * Insert new line and outdent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Outdent"] = 3] = "Outdent"; +})(IndentAction || (IndentAction = {})); +var InjectedTextCursorStops$1; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(InjectedTextCursorStops$1 || (InjectedTextCursorStops$1 = {})); +var InlayHintKind$1; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(InlayHintKind$1 || (InlayHintKind$1 = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var InlineCompletionTriggerKind$1; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(InlineCompletionTriggerKind$1 || (InlineCompletionTriggerKind$1 = {})); +var InlineEditTriggerKind; +(function (InlineEditTriggerKind) { + InlineEditTriggerKind[InlineEditTriggerKind["Invoke"] = 0] = "Invoke"; + InlineEditTriggerKind[InlineEditTriggerKind["Automatic"] = 1] = "Automatic"; +})(InlineEditTriggerKind || (InlineEditTriggerKind = {})); +/** + * Virtual Key Codes, the value does not hold any inherent meaning. + * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + * But these are "more general", as they should work across browsers & OS`s. + */ +var KeyCode; +(function (KeyCode) { + KeyCode[KeyCode["DependsOnKbLayout"] = -1] = "DependsOnKbLayout"; + /** + * Placed first to cover the 0 value of the enum. + */ + KeyCode[KeyCode["Unknown"] = 0] = "Unknown"; + KeyCode[KeyCode["Backspace"] = 1] = "Backspace"; + KeyCode[KeyCode["Tab"] = 2] = "Tab"; + KeyCode[KeyCode["Enter"] = 3] = "Enter"; + KeyCode[KeyCode["Shift"] = 4] = "Shift"; + KeyCode[KeyCode["Ctrl"] = 5] = "Ctrl"; + KeyCode[KeyCode["Alt"] = 6] = "Alt"; + KeyCode[KeyCode["PauseBreak"] = 7] = "PauseBreak"; + KeyCode[KeyCode["CapsLock"] = 8] = "CapsLock"; + KeyCode[KeyCode["Escape"] = 9] = "Escape"; + KeyCode[KeyCode["Space"] = 10] = "Space"; + KeyCode[KeyCode["PageUp"] = 11] = "PageUp"; + KeyCode[KeyCode["PageDown"] = 12] = "PageDown"; + KeyCode[KeyCode["End"] = 13] = "End"; + KeyCode[KeyCode["Home"] = 14] = "Home"; + KeyCode[KeyCode["LeftArrow"] = 15] = "LeftArrow"; + KeyCode[KeyCode["UpArrow"] = 16] = "UpArrow"; + KeyCode[KeyCode["RightArrow"] = 17] = "RightArrow"; + KeyCode[KeyCode["DownArrow"] = 18] = "DownArrow"; + KeyCode[KeyCode["Insert"] = 19] = "Insert"; + KeyCode[KeyCode["Delete"] = 20] = "Delete"; + KeyCode[KeyCode["Digit0"] = 21] = "Digit0"; + KeyCode[KeyCode["Digit1"] = 22] = "Digit1"; + KeyCode[KeyCode["Digit2"] = 23] = "Digit2"; + KeyCode[KeyCode["Digit3"] = 24] = "Digit3"; + KeyCode[KeyCode["Digit4"] = 25] = "Digit4"; + KeyCode[KeyCode["Digit5"] = 26] = "Digit5"; + KeyCode[KeyCode["Digit6"] = 27] = "Digit6"; + KeyCode[KeyCode["Digit7"] = 28] = "Digit7"; + KeyCode[KeyCode["Digit8"] = 29] = "Digit8"; + KeyCode[KeyCode["Digit9"] = 30] = "Digit9"; + KeyCode[KeyCode["KeyA"] = 31] = "KeyA"; + KeyCode[KeyCode["KeyB"] = 32] = "KeyB"; + KeyCode[KeyCode["KeyC"] = 33] = "KeyC"; + KeyCode[KeyCode["KeyD"] = 34] = "KeyD"; + KeyCode[KeyCode["KeyE"] = 35] = "KeyE"; + KeyCode[KeyCode["KeyF"] = 36] = "KeyF"; + KeyCode[KeyCode["KeyG"] = 37] = "KeyG"; + KeyCode[KeyCode["KeyH"] = 38] = "KeyH"; + KeyCode[KeyCode["KeyI"] = 39] = "KeyI"; + KeyCode[KeyCode["KeyJ"] = 40] = "KeyJ"; + KeyCode[KeyCode["KeyK"] = 41] = "KeyK"; + KeyCode[KeyCode["KeyL"] = 42] = "KeyL"; + KeyCode[KeyCode["KeyM"] = 43] = "KeyM"; + KeyCode[KeyCode["KeyN"] = 44] = "KeyN"; + KeyCode[KeyCode["KeyO"] = 45] = "KeyO"; + KeyCode[KeyCode["KeyP"] = 46] = "KeyP"; + KeyCode[KeyCode["KeyQ"] = 47] = "KeyQ"; + KeyCode[KeyCode["KeyR"] = 48] = "KeyR"; + KeyCode[KeyCode["KeyS"] = 49] = "KeyS"; + KeyCode[KeyCode["KeyT"] = 50] = "KeyT"; + KeyCode[KeyCode["KeyU"] = 51] = "KeyU"; + KeyCode[KeyCode["KeyV"] = 52] = "KeyV"; + KeyCode[KeyCode["KeyW"] = 53] = "KeyW"; + KeyCode[KeyCode["KeyX"] = 54] = "KeyX"; + KeyCode[KeyCode["KeyY"] = 55] = "KeyY"; + KeyCode[KeyCode["KeyZ"] = 56] = "KeyZ"; + KeyCode[KeyCode["Meta"] = 57] = "Meta"; + KeyCode[KeyCode["ContextMenu"] = 58] = "ContextMenu"; + KeyCode[KeyCode["F1"] = 59] = "F1"; + KeyCode[KeyCode["F2"] = 60] = "F2"; + KeyCode[KeyCode["F3"] = 61] = "F3"; + KeyCode[KeyCode["F4"] = 62] = "F4"; + KeyCode[KeyCode["F5"] = 63] = "F5"; + KeyCode[KeyCode["F6"] = 64] = "F6"; + KeyCode[KeyCode["F7"] = 65] = "F7"; + KeyCode[KeyCode["F8"] = 66] = "F8"; + KeyCode[KeyCode["F9"] = 67] = "F9"; + KeyCode[KeyCode["F10"] = 68] = "F10"; + KeyCode[KeyCode["F11"] = 69] = "F11"; + KeyCode[KeyCode["F12"] = 70] = "F12"; + KeyCode[KeyCode["F13"] = 71] = "F13"; + KeyCode[KeyCode["F14"] = 72] = "F14"; + KeyCode[KeyCode["F15"] = 73] = "F15"; + KeyCode[KeyCode["F16"] = 74] = "F16"; + KeyCode[KeyCode["F17"] = 75] = "F17"; + KeyCode[KeyCode["F18"] = 76] = "F18"; + KeyCode[KeyCode["F19"] = 77] = "F19"; + KeyCode[KeyCode["F20"] = 78] = "F20"; + KeyCode[KeyCode["F21"] = 79] = "F21"; + KeyCode[KeyCode["F22"] = 80] = "F22"; + KeyCode[KeyCode["F23"] = 81] = "F23"; + KeyCode[KeyCode["F24"] = 82] = "F24"; + KeyCode[KeyCode["NumLock"] = 83] = "NumLock"; + KeyCode[KeyCode["ScrollLock"] = 84] = "ScrollLock"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ';:' key + */ + KeyCode[KeyCode["Semicolon"] = 85] = "Semicolon"; + /** + * For any country/region, the '+' key + * For the US standard keyboard, the '=+' key + */ + KeyCode[KeyCode["Equal"] = 86] = "Equal"; + /** + * For any country/region, the ',' key + * For the US standard keyboard, the ',<' key + */ + KeyCode[KeyCode["Comma"] = 87] = "Comma"; + /** + * For any country/region, the '-' key + * For the US standard keyboard, the '-_' key + */ + KeyCode[KeyCode["Minus"] = 88] = "Minus"; + /** + * For any country/region, the '.' key + * For the US standard keyboard, the '.>' key + */ + KeyCode[KeyCode["Period"] = 89] = "Period"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '/?' key + */ + KeyCode[KeyCode["Slash"] = 90] = "Slash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '`~' key + */ + KeyCode[KeyCode["Backquote"] = 91] = "Backquote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '[{' key + */ + KeyCode[KeyCode["BracketLeft"] = 92] = "BracketLeft"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '\|' key + */ + KeyCode[KeyCode["Backslash"] = 93] = "Backslash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ']}' key + */ + KeyCode[KeyCode["BracketRight"] = 94] = "BracketRight"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ''"' key + */ + KeyCode[KeyCode["Quote"] = 95] = "Quote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + */ + KeyCode[KeyCode["OEM_8"] = 96] = "OEM_8"; + /** + * Either the angle bracket key or the backslash key on the RT 102-key keyboard. + */ + KeyCode[KeyCode["IntlBackslash"] = 97] = "IntlBackslash"; + KeyCode[KeyCode["Numpad0"] = 98] = "Numpad0"; + KeyCode[KeyCode["Numpad1"] = 99] = "Numpad1"; + KeyCode[KeyCode["Numpad2"] = 100] = "Numpad2"; + KeyCode[KeyCode["Numpad3"] = 101] = "Numpad3"; + KeyCode[KeyCode["Numpad4"] = 102] = "Numpad4"; + KeyCode[KeyCode["Numpad5"] = 103] = "Numpad5"; + KeyCode[KeyCode["Numpad6"] = 104] = "Numpad6"; + KeyCode[KeyCode["Numpad7"] = 105] = "Numpad7"; + KeyCode[KeyCode["Numpad8"] = 106] = "Numpad8"; + KeyCode[KeyCode["Numpad9"] = 107] = "Numpad9"; + KeyCode[KeyCode["NumpadMultiply"] = 108] = "NumpadMultiply"; + KeyCode[KeyCode["NumpadAdd"] = 109] = "NumpadAdd"; + KeyCode[KeyCode["NUMPAD_SEPARATOR"] = 110] = "NUMPAD_SEPARATOR"; + KeyCode[KeyCode["NumpadSubtract"] = 111] = "NumpadSubtract"; + KeyCode[KeyCode["NumpadDecimal"] = 112] = "NumpadDecimal"; + KeyCode[KeyCode["NumpadDivide"] = 113] = "NumpadDivide"; + /** + * Cover all key codes when IME is processing input. + */ + KeyCode[KeyCode["KEY_IN_COMPOSITION"] = 114] = "KEY_IN_COMPOSITION"; + KeyCode[KeyCode["ABNT_C1"] = 115] = "ABNT_C1"; + KeyCode[KeyCode["ABNT_C2"] = 116] = "ABNT_C2"; + KeyCode[KeyCode["AudioVolumeMute"] = 117] = "AudioVolumeMute"; + KeyCode[KeyCode["AudioVolumeUp"] = 118] = "AudioVolumeUp"; + KeyCode[KeyCode["AudioVolumeDown"] = 119] = "AudioVolumeDown"; + KeyCode[KeyCode["BrowserSearch"] = 120] = "BrowserSearch"; + KeyCode[KeyCode["BrowserHome"] = 121] = "BrowserHome"; + KeyCode[KeyCode["BrowserBack"] = 122] = "BrowserBack"; + KeyCode[KeyCode["BrowserForward"] = 123] = "BrowserForward"; + KeyCode[KeyCode["MediaTrackNext"] = 124] = "MediaTrackNext"; + KeyCode[KeyCode["MediaTrackPrevious"] = 125] = "MediaTrackPrevious"; + KeyCode[KeyCode["MediaStop"] = 126] = "MediaStop"; + KeyCode[KeyCode["MediaPlayPause"] = 127] = "MediaPlayPause"; + KeyCode[KeyCode["LaunchMediaPlayer"] = 128] = "LaunchMediaPlayer"; + KeyCode[KeyCode["LaunchMail"] = 129] = "LaunchMail"; + KeyCode[KeyCode["LaunchApp2"] = 130] = "LaunchApp2"; + /** + * VK_CLEAR, 0x0C, CLEAR key + */ + KeyCode[KeyCode["Clear"] = 131] = "Clear"; + /** + * Placed last to cover the length of the enum. + * Please do not depend on this value! + */ + KeyCode[KeyCode["MAX_VALUE"] = 132] = "MAX_VALUE"; +})(KeyCode || (KeyCode = {})); +var MarkerSeverity; +(function (MarkerSeverity) { + MarkerSeverity[MarkerSeverity["Hint"] = 1] = "Hint"; + MarkerSeverity[MarkerSeverity["Info"] = 2] = "Info"; + MarkerSeverity[MarkerSeverity["Warning"] = 4] = "Warning"; + MarkerSeverity[MarkerSeverity["Error"] = 8] = "Error"; +})(MarkerSeverity || (MarkerSeverity = {})); +var MarkerTag; +(function (MarkerTag) { + MarkerTag[MarkerTag["Unnecessary"] = 1] = "Unnecessary"; + MarkerTag[MarkerTag["Deprecated"] = 2] = "Deprecated"; +})(MarkerTag || (MarkerTag = {})); +/** + * Position in the minimap to render the decoration. + */ +var MinimapPosition; +(function (MinimapPosition) { + MinimapPosition[MinimapPosition["Inline"] = 1] = "Inline"; + MinimapPosition[MinimapPosition["Gutter"] = 2] = "Gutter"; +})(MinimapPosition || (MinimapPosition = {})); +/** + * Section header style. + */ +var MinimapSectionHeaderStyle; +(function (MinimapSectionHeaderStyle) { + MinimapSectionHeaderStyle[MinimapSectionHeaderStyle["Normal"] = 1] = "Normal"; + MinimapSectionHeaderStyle[MinimapSectionHeaderStyle["Underlined"] = 2] = "Underlined"; +})(MinimapSectionHeaderStyle || (MinimapSectionHeaderStyle = {})); +/** + * Type of hit element with the mouse in the editor. + */ +var MouseTargetType; +(function (MouseTargetType) { + /** + * Mouse is on top of an unknown element. + */ + MouseTargetType[MouseTargetType["UNKNOWN"] = 0] = "UNKNOWN"; + /** + * Mouse is on top of the textarea used for input. + */ + MouseTargetType[MouseTargetType["TEXTAREA"] = 1] = "TEXTAREA"; + /** + * Mouse is on top of the glyph margin + */ + MouseTargetType[MouseTargetType["GUTTER_GLYPH_MARGIN"] = 2] = "GUTTER_GLYPH_MARGIN"; + /** + * Mouse is on top of the line numbers + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_NUMBERS"] = 3] = "GUTTER_LINE_NUMBERS"; + /** + * Mouse is on top of the line decorations + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_DECORATIONS"] = 4] = "GUTTER_LINE_DECORATIONS"; + /** + * Mouse is on top of the whitespace left in the gutter by a view zone. + */ + MouseTargetType[MouseTargetType["GUTTER_VIEW_ZONE"] = 5] = "GUTTER_VIEW_ZONE"; + /** + * Mouse is on top of text in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_TEXT"] = 6] = "CONTENT_TEXT"; + /** + * Mouse is on top of empty space in the content (e.g. after line text or below last line) + */ + MouseTargetType[MouseTargetType["CONTENT_EMPTY"] = 7] = "CONTENT_EMPTY"; + /** + * Mouse is on top of a view zone in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_VIEW_ZONE"] = 8] = "CONTENT_VIEW_ZONE"; + /** + * Mouse is on top of a content widget. + */ + MouseTargetType[MouseTargetType["CONTENT_WIDGET"] = 9] = "CONTENT_WIDGET"; + /** + * Mouse is on top of the decorations overview ruler. + */ + MouseTargetType[MouseTargetType["OVERVIEW_RULER"] = 10] = "OVERVIEW_RULER"; + /** + * Mouse is on top of a scrollbar. + */ + MouseTargetType[MouseTargetType["SCROLLBAR"] = 11] = "SCROLLBAR"; + /** + * Mouse is on top of an overlay widget. + */ + MouseTargetType[MouseTargetType["OVERLAY_WIDGET"] = 12] = "OVERLAY_WIDGET"; + /** + * Mouse is outside of the editor. + */ + MouseTargetType[MouseTargetType["OUTSIDE_EDITOR"] = 13] = "OUTSIDE_EDITOR"; +})(MouseTargetType || (MouseTargetType = {})); +var NewSymbolNameTag; +(function (NewSymbolNameTag) { + NewSymbolNameTag[NewSymbolNameTag["AIGenerated"] = 1] = "AIGenerated"; +})(NewSymbolNameTag || (NewSymbolNameTag = {})); +var NewSymbolNameTriggerKind; +(function (NewSymbolNameTriggerKind) { + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Invoke"] = 0] = "Invoke"; + NewSymbolNameTriggerKind[NewSymbolNameTriggerKind["Automatic"] = 1] = "Automatic"; +})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {})); +/** + * A positioning preference for rendering overlay widgets. + */ +var OverlayWidgetPositionPreference; +(function (OverlayWidgetPositionPreference) { + /** + * Position the overlay widget in the top right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_RIGHT_CORNER"] = 0] = "TOP_RIGHT_CORNER"; + /** + * Position the overlay widget in the bottom right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["BOTTOM_RIGHT_CORNER"] = 1] = "BOTTOM_RIGHT_CORNER"; + /** + * Position the overlay widget in the top center + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_CENTER"] = 2] = "TOP_CENTER"; +})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {})); +/** + * Vertical Lane in the overview ruler of the editor. + */ +var OverviewRulerLane$1; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(OverviewRulerLane$1 || (OverviewRulerLane$1 = {})); +/** + * How a partial acceptance was triggered. + */ +var PartialAcceptTriggerKind; +(function (PartialAcceptTriggerKind) { + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Word"] = 0] = "Word"; + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Line"] = 1] = "Line"; + PartialAcceptTriggerKind[PartialAcceptTriggerKind["Suggest"] = 2] = "Suggest"; +})(PartialAcceptTriggerKind || (PartialAcceptTriggerKind = {})); +var PositionAffinity; +(function (PositionAffinity) { + /** + * Prefers the left most position. + */ + PositionAffinity[PositionAffinity["Left"] = 0] = "Left"; + /** + * Prefers the right most position. + */ + PositionAffinity[PositionAffinity["Right"] = 1] = "Right"; + /** + * No preference. + */ + PositionAffinity[PositionAffinity["None"] = 2] = "None"; + /** + * If the given position is on injected text, prefers the position left of it. + */ + PositionAffinity[PositionAffinity["LeftOfInjectedText"] = 3] = "LeftOfInjectedText"; + /** + * If the given position is on injected text, prefers the position right of it. + */ + PositionAffinity[PositionAffinity["RightOfInjectedText"] = 4] = "RightOfInjectedText"; +})(PositionAffinity || (PositionAffinity = {})); +var RenderLineNumbersType; +(function (RenderLineNumbersType) { + RenderLineNumbersType[RenderLineNumbersType["Off"] = 0] = "Off"; + RenderLineNumbersType[RenderLineNumbersType["On"] = 1] = "On"; + RenderLineNumbersType[RenderLineNumbersType["Relative"] = 2] = "Relative"; + RenderLineNumbersType[RenderLineNumbersType["Interval"] = 3] = "Interval"; + RenderLineNumbersType[RenderLineNumbersType["Custom"] = 4] = "Custom"; +})(RenderLineNumbersType || (RenderLineNumbersType = {})); +var RenderMinimap; +(function (RenderMinimap) { + RenderMinimap[RenderMinimap["None"] = 0] = "None"; + RenderMinimap[RenderMinimap["Text"] = 1] = "Text"; + RenderMinimap[RenderMinimap["Blocks"] = 2] = "Blocks"; +})(RenderMinimap || (RenderMinimap = {})); +var ScrollType; +(function (ScrollType) { + ScrollType[ScrollType["Smooth"] = 0] = "Smooth"; + ScrollType[ScrollType["Immediate"] = 1] = "Immediate"; +})(ScrollType || (ScrollType = {})); +var ScrollbarVisibility; +(function (ScrollbarVisibility) { + ScrollbarVisibility[ScrollbarVisibility["Auto"] = 1] = "Auto"; + ScrollbarVisibility[ScrollbarVisibility["Hidden"] = 2] = "Hidden"; + ScrollbarVisibility[ScrollbarVisibility["Visible"] = 3] = "Visible"; +})(ScrollbarVisibility || (ScrollbarVisibility = {})); +/** + * The direction of a selection. + */ +var SelectionDirection; +(function (SelectionDirection) { + /** + * The selection starts above where it ends. + */ + SelectionDirection[SelectionDirection["LTR"] = 0] = "LTR"; + /** + * The selection starts below where it ends. + */ + SelectionDirection[SelectionDirection["RTL"] = 1] = "RTL"; +})(SelectionDirection || (SelectionDirection = {})); +var ShowLightbulbIconMode; +(function (ShowLightbulbIconMode) { + ShowLightbulbIconMode["Off"] = "off"; + ShowLightbulbIconMode["OnCode"] = "onCode"; + ShowLightbulbIconMode["On"] = "on"; +})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {})); +var SignatureHelpTriggerKind; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {})); +/** + * A symbol kind. + */ +var SymbolKind$2; +(function (SymbolKind) { + SymbolKind[SymbolKind["File"] = 0] = "File"; + SymbolKind[SymbolKind["Module"] = 1] = "Module"; + SymbolKind[SymbolKind["Namespace"] = 2] = "Namespace"; + SymbolKind[SymbolKind["Package"] = 3] = "Package"; + SymbolKind[SymbolKind["Class"] = 4] = "Class"; + SymbolKind[SymbolKind["Method"] = 5] = "Method"; + SymbolKind[SymbolKind["Property"] = 6] = "Property"; + SymbolKind[SymbolKind["Field"] = 7] = "Field"; + SymbolKind[SymbolKind["Constructor"] = 8] = "Constructor"; + SymbolKind[SymbolKind["Enum"] = 9] = "Enum"; + SymbolKind[SymbolKind["Interface"] = 10] = "Interface"; + SymbolKind[SymbolKind["Function"] = 11] = "Function"; + SymbolKind[SymbolKind["Variable"] = 12] = "Variable"; + SymbolKind[SymbolKind["Constant"] = 13] = "Constant"; + SymbolKind[SymbolKind["String"] = 14] = "String"; + SymbolKind[SymbolKind["Number"] = 15] = "Number"; + SymbolKind[SymbolKind["Boolean"] = 16] = "Boolean"; + SymbolKind[SymbolKind["Array"] = 17] = "Array"; + SymbolKind[SymbolKind["Object"] = 18] = "Object"; + SymbolKind[SymbolKind["Key"] = 19] = "Key"; + SymbolKind[SymbolKind["Null"] = 20] = "Null"; + SymbolKind[SymbolKind["EnumMember"] = 21] = "EnumMember"; + SymbolKind[SymbolKind["Struct"] = 22] = "Struct"; + SymbolKind[SymbolKind["Event"] = 23] = "Event"; + SymbolKind[SymbolKind["Operator"] = 24] = "Operator"; + SymbolKind[SymbolKind["TypeParameter"] = 25] = "TypeParameter"; +})(SymbolKind$2 || (SymbolKind$2 = {})); +var SymbolTag$1; +(function (SymbolTag) { + SymbolTag[SymbolTag["Deprecated"] = 1] = "Deprecated"; +})(SymbolTag$1 || (SymbolTag$1 = {})); +/** + * The kind of animation in which the editor's cursor should be rendered. + */ +var TextEditorCursorBlinkingStyle; +(function (TextEditorCursorBlinkingStyle) { + /** + * Hidden + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Hidden"] = 0] = "Hidden"; + /** + * Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Blink"] = 1] = "Blink"; + /** + * Blinking with smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Smooth"] = 2] = "Smooth"; + /** + * Blinking with prolonged filled state and smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Phase"] = 3] = "Phase"; + /** + * Expand collapse animation on the y axis + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Expand"] = 4] = "Expand"; + /** + * No-Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Solid"] = 5] = "Solid"; +})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {})); +/** + * The style in which the editor's cursor should be rendered. + */ +var TextEditorCursorStyle; +(function (TextEditorCursorStyle) { + /** + * As a vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Line"] = 1] = "Line"; + /** + * As a block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Block"] = 2] = "Block"; + /** + * As a horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Underline"] = 3] = "Underline"; + /** + * As a thin vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["LineThin"] = 4] = "LineThin"; + /** + * As an outlined block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["BlockOutline"] = 5] = "BlockOutline"; + /** + * As a thin horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["UnderlineThin"] = 6] = "UnderlineThin"; +})(TextEditorCursorStyle || (TextEditorCursorStyle = {})); +/** + * Describes the behavior of decorations when typing/editing near their edges. + * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior` + */ +var TrackedRangeStickiness; +(function (TrackedRangeStickiness) { + TrackedRangeStickiness[TrackedRangeStickiness["AlwaysGrowsWhenTypingAtEdges"] = 0] = "AlwaysGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["NeverGrowsWhenTypingAtEdges"] = 1] = "NeverGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingBefore"] = 2] = "GrowsOnlyWhenTypingBefore"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingAfter"] = 3] = "GrowsOnlyWhenTypingAfter"; +})(TrackedRangeStickiness || (TrackedRangeStickiness = {})); +/** + * Describes how to indent wrapped lines. + */ +var WrappingIndent; +(function (WrappingIndent) { + /** + * No indentation => wrapped lines begin at column 1. + */ + WrappingIndent[WrappingIndent["None"] = 0] = "None"; + /** + * Same => wrapped lines get the same indentation as the parent. + */ + WrappingIndent[WrappingIndent["Same"] = 1] = "Same"; + /** + * Indent => wrapped lines get +1 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["Indent"] = 2] = "Indent"; + /** + * DeepIndent => wrapped lines get +2 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["DeepIndent"] = 3] = "DeepIndent"; +})(WrappingIndent || (WrappingIndent = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class KeyMod { + static { this.CtrlCmd = 2048 /* ConstKeyMod.CtrlCmd */; } + static { this.Shift = 1024 /* ConstKeyMod.Shift */; } + static { this.Alt = 512 /* ConstKeyMod.Alt */; } + static { this.WinCtrl = 256 /* ConstKeyMod.WinCtrl */; } + static chord(firstPart, secondPart) { + return KeyChord(firstPart, secondPart); + } +} +function createMonacoBaseAPI() { + return { + editor: undefined, // undefined override expected here + languages: undefined, // undefined override expected here + CancellationTokenSource: CancellationTokenSource, + Emitter: Emitter, + KeyCode: KeyCode, + KeyMod: KeyMod, + Position: Position$2, + Range: Range$b, + Selection: Selection, + SelectionDirection: SelectionDirection, + MarkerSeverity: MarkerSeverity, + MarkerTag: MarkerTag, + Uri: URI$2, + Token: Token$1 + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var _b; +class LinkedMap { + constructor() { + this[_b] = 'LinkedMap'; + this._map = new Map(); + this._head = undefined; + this._tail = undefined; + this._size = 0; + this._state = 0; + } + clear() { + this._map.clear(); + this._head = undefined; + this._tail = undefined; + this._size = 0; + this._state++; + } + isEmpty() { + return !this._head && !this._tail; + } + get size() { + return this._size; + } + get first() { + return this._head?.value; + } + get last() { + return this._tail?.value; + } + has(key) { + return this._map.has(key); + } + get(key, touch = 0 /* Touch.None */) { + const item = this._map.get(key); + if (!item) { + return undefined; + } + if (touch !== 0 /* Touch.None */) { + this.touch(item, touch); + } + return item.value; + } + set(key, value, touch = 0 /* Touch.None */) { + let item = this._map.get(key); + if (item) { + item.value = value; + if (touch !== 0 /* Touch.None */) { + this.touch(item, touch); + } + } + else { + item = { key, value, next: undefined, previous: undefined }; + switch (touch) { + case 0 /* Touch.None */: + this.addItemLast(item); + break; + case 1 /* Touch.AsOld */: + this.addItemFirst(item); + break; + case 2 /* Touch.AsNew */: + this.addItemLast(item); + break; + default: + this.addItemLast(item); + break; + } + this._map.set(key, item); + this._size++; + } + return this; + } + delete(key) { + return !!this.remove(key); + } + remove(key) { + const item = this._map.get(key); + if (!item) { + return undefined; + } + this._map.delete(key); + this.removeItem(item); + this._size--; + return item.value; + } + shift() { + if (!this._head && !this._tail) { + return undefined; + } + if (!this._head || !this._tail) { + throw new Error('Invalid list'); + } + const item = this._head; + this._map.delete(item.key); + this.removeItem(item); + this._size--; + return item.value; + } + forEach(callbackfn, thisArg) { + const state = this._state; + let current = this._head; + while (current) { + if (thisArg) { + callbackfn.bind(thisArg)(current.value, current.key, this); + } + else { + callbackfn(current.value, current.key, this); + } + if (this._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + current = current.next; + } + } + keys() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: current.key, done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + values() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: current.value, done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + entries() { + const map = this; + const state = this._state; + let current = this._head; + const iterator = { + [Symbol.iterator]() { + return iterator; + }, + next() { + if (map._state !== state) { + throw new Error(`LinkedMap got modified during iteration.`); + } + if (current) { + const result = { value: [current.key, current.value], done: false }; + current = current.next; + return result; + } + else { + return { value: undefined, done: true }; + } + } + }; + return iterator; + } + [(_b = Symbol.toStringTag, Symbol.iterator)]() { + return this.entries(); + } + trimOld(newSize) { + if (newSize >= this.size) { + return; + } + if (newSize === 0) { + this.clear(); + return; + } + let current = this._head; + let currentSize = this.size; + while (current && currentSize > newSize) { + this._map.delete(current.key); + current = current.next; + currentSize--; + } + this._head = current; + this._size = currentSize; + if (current) { + current.previous = undefined; + } + this._state++; + } + trimNew(newSize) { + if (newSize >= this.size) { + return; + } + if (newSize === 0) { + this.clear(); + return; + } + let current = this._tail; + let currentSize = this.size; + while (current && currentSize > newSize) { + this._map.delete(current.key); + current = current.previous; + currentSize--; + } + this._tail = current; + this._size = currentSize; + if (current) { + current.next = undefined; + } + this._state++; + } + addItemFirst(item) { + // First time Insert + if (!this._head && !this._tail) { + this._tail = item; + } + else if (!this._head) { + throw new Error('Invalid list'); + } + else { + item.next = this._head; + this._head.previous = item; + } + this._head = item; + this._state++; + } + addItemLast(item) { + // First time Insert + if (!this._head && !this._tail) { + this._head = item; + } + else if (!this._tail) { + throw new Error('Invalid list'); + } + else { + item.previous = this._tail; + this._tail.next = item; + } + this._tail = item; + this._state++; + } + removeItem(item) { + if (item === this._head && item === this._tail) { + this._head = undefined; + this._tail = undefined; + } + else if (item === this._head) { + // This can only happen if size === 1 which is handled + // by the case above. + if (!item.next) { + throw new Error('Invalid list'); + } + item.next.previous = undefined; + this._head = item.next; + } + else if (item === this._tail) { + // This can only happen if size === 1 which is handled + // by the case above. + if (!item.previous) { + throw new Error('Invalid list'); + } + item.previous.next = undefined; + this._tail = item.previous; + } + else { + const next = item.next; + const previous = item.previous; + if (!next || !previous) { + throw new Error('Invalid list'); + } + next.previous = previous; + previous.next = next; + } + item.next = undefined; + item.previous = undefined; + this._state++; + } + touch(item, touch) { + if (!this._head || !this._tail) { + throw new Error('Invalid list'); + } + if ((touch !== 1 /* Touch.AsOld */ && touch !== 2 /* Touch.AsNew */)) { + return; + } + if (touch === 1 /* Touch.AsOld */) { + if (item === this._head) { + return; + } + const next = item.next; + const previous = item.previous; + // Unlink the item + if (item === this._tail) { + // previous must be defined since item was not head but is tail + // So there are more than on item in the map + previous.next = undefined; + this._tail = previous; + } + else { + // Both next and previous are not undefined since item was neither head nor tail. + next.previous = previous; + previous.next = next; + } + // Insert the node at head + item.previous = undefined; + item.next = this._head; + this._head.previous = item; + this._head = item; + this._state++; + } + else if (touch === 2 /* Touch.AsNew */) { + if (item === this._tail) { + return; + } + const next = item.next; + const previous = item.previous; + // Unlink the item. + if (item === this._head) { + // next must be defined since item was not tail but is head + // So there are more than on item in the map + next.previous = undefined; + this._head = next; + } + else { + // Both next and previous are not undefined since item was neither head nor tail. + next.previous = previous; + previous.next = next; + } + item.next = undefined; + item.previous = this._tail; + this._tail.next = item; + this._tail = item; + this._state++; + } + } + toJSON() { + const data = []; + this.forEach((value, key) => { + data.push([key, value]); + }); + return data; + } + fromJSON(data) { + this.clear(); + for (const [key, value] of data) { + this.set(key, value); + } + } +} +class Cache extends LinkedMap { + constructor(limit, ratio = 1) { + super(); + this._limit = limit; + this._ratio = Math.min(Math.max(0, ratio), 1); + } + get limit() { + return this._limit; + } + set limit(limit) { + this._limit = limit; + this.checkTrim(); + } + get(key, touch = 2 /* Touch.AsNew */) { + return super.get(key, touch); + } + peek(key) { + return super.get(key, 0 /* Touch.None */); + } + set(key, value) { + super.set(key, value, 2 /* Touch.AsNew */); + return this; + } + checkTrim() { + if (this.size > this._limit) { + this.trim(Math.round(this._limit * this._ratio)); + } + } +} +let LRUCache$1 = class LRUCache extends Cache { + constructor(limit, ratio = 1) { + super(limit, ratio); + } + trim(newSize) { + this.trimOld(newSize); + } + set(key, value) { + super.set(key, value); + this.checkTrim(); + return this; + } +}; +class SetMap { + constructor() { + this.map = new Map(); + } + add(key, value) { + let values = this.map.get(key); + if (!values) { + values = new Set(); + this.map.set(key, values); + } + values.add(value); + } + delete(key, value) { + const values = this.map.get(key); + if (!values) { + return; + } + values.delete(value); + if (values.size === 0) { + this.map.delete(key); + } + } + forEach(key, fn) { + const values = this.map.get(key); + if (!values) { + return; + } + values.forEach(fn); + } + get(key) { + const values = this.map.get(key); + if (!values) { + return new Set(); + } + return values; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +new LRUCache$1(10); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Vertical Lane in the overview ruler of the editor. + */ +var OverviewRulerLane; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(OverviewRulerLane || (OverviewRulerLane = {})); +/** + * Vertical Lane in the glyph margin of the editor. + */ +var GlyphMarginLane; +(function (GlyphMarginLane) { + GlyphMarginLane[GlyphMarginLane["Left"] = 1] = "Left"; + GlyphMarginLane[GlyphMarginLane["Center"] = 2] = "Center"; + GlyphMarginLane[GlyphMarginLane["Right"] = 3] = "Right"; +})(GlyphMarginLane || (GlyphMarginLane = {})); +var InjectedTextCursorStops; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(InjectedTextCursorStops || (InjectedTextCursorStops = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex === 0) { + // Match starts at start of string + return true; + } + const charBefore = text.charCodeAt(matchStartIndex - 1); + if (wordSeparators.get(charBefore) !== 0 /* WordCharacterClass.Regular */) { + // The character before the match is a word separator + return true; + } + if (charBefore === 13 /* CharCode.CarriageReturn */ || charBefore === 10 /* CharCode.LineFeed */) { + // The character before the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const firstCharInMatch = text.charCodeAt(matchStartIndex); + if (wordSeparators.get(firstCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The first character inside the match is a word separator + return true; + } + } + return false; +} +function rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex + matchLength === textLength) { + // Match ends at end of string + return true; + } + const charAfter = text.charCodeAt(matchStartIndex + matchLength); + if (wordSeparators.get(charAfter) !== 0 /* WordCharacterClass.Regular */) { + // The character after the match is a word separator + return true; + } + if (charAfter === 13 /* CharCode.CarriageReturn */ || charAfter === 10 /* CharCode.LineFeed */) { + // The character after the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1); + if (wordSeparators.get(lastCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The last character in the match is a word separator + return true; + } + } + return false; +} +function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) { + return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) + && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)); +} +class Searcher { + constructor(wordSeparators, searchRegex) { + this._wordSeparators = wordSeparators; + this._searchRegex = searchRegex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + reset(lastIndex) { + this._searchRegex.lastIndex = lastIndex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + next(text) { + const textLength = text.length; + let m; + do { + if (this._prevMatchStartIndex + this._prevMatchLength === textLength) { + // Reached the end of the line + return null; + } + m = this._searchRegex.exec(text); + if (!m) { + return null; + } + const matchStartIndex = m.index; + const matchLength = m[0].length; + if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) { + if (matchLength === 0) { + // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here + // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise + if (getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) { + this._searchRegex.lastIndex += 2; + } + else { + this._searchRegex.lastIndex += 1; + } + continue; + } + // Exit early if the regex matches the same range twice + return null; + } + this._prevMatchStartIndex = matchStartIndex; + this._prevMatchLength = matchLength; + if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) { + return m; + } + } while (m); + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function assertNever(value, message = 'Unreachable') { + throw new Error(message); +} +/** + * condition must be side-effect free! + */ +function assertFn(condition) { + if (!condition()) { + // eslint-disable-next-line no-debugger + debugger; + // Reevaluate `condition` again to make debugging easier + condition(); + onUnexpectedError(new BugIndicatingError('Assertion Failed')); + } +} +function checkAdjacentItems(items, predicate) { + let i = 0; + while (i < items.length - 1) { + const a = items[i]; + const b = items[i + 1]; + if (!predicate(a, b)) { + return false; + } + i++; + } + return true; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class UnicodeTextModelHighlighter { + static computeUnicodeHighlights(model, options, range) { + const startLine = range ? range.startLineNumber : 1; + const endLine = range ? range.endLineNumber : model.getLineCount(); + const codePointHighlighter = new CodePointHighlighter(options); + const candidates = codePointHighlighter.getCandidateCodePoints(); + let regex; + if (candidates === 'allNonBasicAscii') { + regex = new RegExp('[^\\t\\n\\r\\x20-\\x7E]', 'g'); + } + else { + regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, 'g'); + } + const searcher = new Searcher(null, regex); + const ranges = []; + let hasMore = false; + let m; + let ambiguousCharacterCount = 0; + let invisibleCharacterCount = 0; + let nonBasicAsciiCharacterCount = 0; + forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber <= lineCount; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + const lineLength = lineContent.length; + // Reset regex to search from the beginning + searcher.reset(0); + do { + m = searcher.next(lineContent); + if (m) { + let startIndex = m.index; + let endIndex = m.index + m[0].length; + // Extend range to entire code point + if (startIndex > 0) { + const charCodeBefore = lineContent.charCodeAt(startIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + startIndex--; + } + } + if (endIndex + 1 < lineLength) { + const charCodeBefore = lineContent.charCodeAt(endIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + endIndex++; + } + } + const str = lineContent.substring(startIndex, endIndex); + let word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0); + if (word && word.endColumn <= startIndex + 1) { + // The word does not include the problematic character, ignore the word + word = null; + } + const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null); + if (highlightReason !== 0 /* SimpleHighlightReason.None */) { + if (highlightReason === 3 /* SimpleHighlightReason.Ambiguous */) { + ambiguousCharacterCount++; + } + else if (highlightReason === 2 /* SimpleHighlightReason.Invisible */) { + invisibleCharacterCount++; + } + else if (highlightReason === 1 /* SimpleHighlightReason.NonBasicASCII */) { + nonBasicAsciiCharacterCount++; + } + else { + assertNever(); + } + const MAX_RESULT_LENGTH = 1000; + if (ranges.length >= MAX_RESULT_LENGTH) { + hasMore = true; + break forLoop; + } + ranges.push(new Range$b(lineNumber, startIndex + 1, lineNumber, endIndex + 1)); + } + } + } while (m); + } + return { + ranges, + hasMore, + ambiguousCharacterCount, + invisibleCharacterCount, + nonBasicAsciiCharacterCount + }; + } + static computeUnicodeHighlightReason(char, options) { + const codePointHighlighter = new CodePointHighlighter(options); + const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null); + switch (reason) { + case 0 /* SimpleHighlightReason.None */: + return null; + case 2 /* SimpleHighlightReason.Invisible */: + return { kind: 1 /* UnicodeHighlighterReasonKind.Invisible */ }; + case 3 /* SimpleHighlightReason.Ambiguous */: { + const codePoint = char.codePointAt(0); + const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint); + const notAmbiguousInLocales = AmbiguousCharacters.getLocales().filter((l) => !AmbiguousCharacters.getInstance(new Set([...options.allowedLocales, l])).isAmbiguous(codePoint)); + return { kind: 0 /* UnicodeHighlighterReasonKind.Ambiguous */, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales }; + } + case 1 /* SimpleHighlightReason.NonBasicASCII */: + return { kind: 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */ }; + } + } +} +function buildRegExpCharClassExpr(codePoints, flags) { + const src = `[${escapeRegExpCharacters(codePoints.map((i) => String.fromCodePoint(i)).join(''))}]`; + return src; +} +class CodePointHighlighter { + constructor(options) { + this.options = options; + this.allowedCodePoints = new Set(options.allowedCodePoints); + this.ambiguousCharacters = AmbiguousCharacters.getInstance(new Set(options.allowedLocales)); + } + getCandidateCodePoints() { + if (this.options.nonBasicASCII) { + return 'allNonBasicAscii'; + } + const set = new Set(); + if (this.options.invisibleCharacters) { + for (const cp of InvisibleCharacters.codePoints) { + if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) { + set.add(cp); + } + } + } + if (this.options.ambiguousCharacters) { + for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) { + set.add(cp); + } + } + for (const cp of this.allowedCodePoints) { + set.delete(cp); + } + return set; + } + shouldHighlightNonBasicASCII(character, wordContext) { + const codePoint = character.codePointAt(0); + if (this.allowedCodePoints.has(codePoint)) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.nonBasicASCII) { + return 1 /* SimpleHighlightReason.NonBasicASCII */; + } + let hasBasicASCIICharacters = false; + let hasNonConfusableNonBasicAsciiCharacter = false; + if (wordContext) { + for (const char of wordContext) { + const codePoint = char.codePointAt(0); + const isBasicASCII$1 = isBasicASCII(char); + hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII$1; + if (!isBasicASCII$1 && + !this.ambiguousCharacters.isAmbiguous(codePoint) && + !InvisibleCharacters.isInvisibleCharacter(codePoint)) { + hasNonConfusableNonBasicAsciiCharacter = true; + } + } + } + if ( + /* Don't allow mixing weird looking characters with ASCII */ !hasBasicASCIICharacters && + /* Is there an obviously weird looking character? */ hasNonConfusableNonBasicAsciiCharacter) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.invisibleCharacters) { + // TODO check for emojis + if (!isAllowedInvisibleCharacter(character) && InvisibleCharacters.isInvisibleCharacter(codePoint)) { + return 2 /* SimpleHighlightReason.Invisible */; + } + } + if (this.options.ambiguousCharacters) { + if (this.ambiguousCharacters.isAmbiguous(codePoint)) { + return 3 /* SimpleHighlightReason.Ambiguous */; + } + } + return 0 /* SimpleHighlightReason.None */; + } +} +function isAllowedInvisibleCharacter(character) { + return character === ' ' || character === '\n' || character === '\t'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LinesDiff { + constructor(changes, + /** + * Sorted by original line ranges. + * The original line ranges and the modified line ranges must be disjoint (but can be touching). + */ + moves, + /** + * Indicates if the time out was reached. + * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time. + */ + hitTimeout) { + this.changes = changes; + this.moves = moves; + this.hitTimeout = hitTimeout; + } +} +class MovedText { + constructor(lineRangeMapping, changes) { + this.lineRangeMapping = lineRangeMapping; + this.changes = changes; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range of offsets (0-based). +*/ +class OffsetRange { + static addRange(range, sortedRanges) { + let i = 0; + while (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) { + i++; + } + let j = i; + while (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) { + j++; + } + if (i === j) { + sortedRanges.splice(i, 0, range); + } + else { + const start = Math.min(range.start, sortedRanges[i].start); + const end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive); + sortedRanges.splice(i, j - i, new OffsetRange(start, end)); + } + } + static tryCreate(start, endExclusive) { + if (start > endExclusive) { + return undefined; + } + return new OffsetRange(start, endExclusive); + } + static ofLength(length) { + return new OffsetRange(0, length); + } + static ofStartAndLength(start, length) { + return new OffsetRange(start, start + length); + } + constructor(start, endExclusive) { + this.start = start; + this.endExclusive = endExclusive; + if (start > endExclusive) { + throw new BugIndicatingError(`Invalid range: ${this.toString()}`); + } + } + get isEmpty() { + return this.start === this.endExclusive; + } + delta(offset) { + return new OffsetRange(this.start + offset, this.endExclusive + offset); + } + deltaStart(offset) { + return new OffsetRange(this.start + offset, this.endExclusive); + } + deltaEnd(offset) { + return new OffsetRange(this.start, this.endExclusive + offset); + } + get length() { + return this.endExclusive - this.start; + } + toString() { + return `[${this.start}, ${this.endExclusive})`; + } + contains(offset) { + return this.start <= offset && offset < this.endExclusive; + } + /** + * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n) + * The joined range is the smallest range that contains both ranges. + */ + join(other) { + return new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive)); + } + /** + * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n) + * + * The resulting range is empty if the ranges do not intersect, but touch. + * If the ranges don't even touch, the result is undefined. + */ + intersect(other) { + const start = Math.max(this.start, other.start); + const end = Math.min(this.endExclusive, other.endExclusive); + if (start <= end) { + return new OffsetRange(start, end); + } + return undefined; + } + intersects(other) { + const start = Math.max(this.start, other.start); + const end = Math.min(this.endExclusive, other.endExclusive); + return start < end; + } + isBefore(other) { + return this.endExclusive <= other.start; + } + isAfter(other) { + return this.start >= other.endExclusive; + } + slice(arr) { + return arr.slice(this.start, this.endExclusive); + } + substring(str) { + return str.substring(this.start, this.endExclusive); + } + /** + * Returns the given value if it is contained in this instance, otherwise the closest value that is contained. + * The range must not be empty. + */ + clip(value) { + if (this.isEmpty) { + throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`); + } + return Math.max(this.start, Math.min(this.endExclusive - 1, value)); + } + /** + * Returns `r := value + k * length` such that `r` is contained in this range. + * The range must not be empty. + * + * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`. + */ + clipCyclic(value) { + if (this.isEmpty) { + throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`); + } + if (value < this.start) { + return this.endExclusive - ((this.start - value) % this.length); + } + if (value >= this.endExclusive) { + return this.start + ((value - this.start) % this.length); + } + return value; + } + forEach(f) { + for (let i = this.start; i < this.endExclusive; i++) { + f(i); + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Finds the last item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * + * @returns `undefined` if no item matches, otherwise the last item that matches the predicate. + */ +function findLastMonotonous(array, predicate) { + const idx = findLastIdxMonotonous(array, predicate); + return idx === -1 ? undefined : array[idx]; +} +/** + * Finds the last item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * + * @returns `startIdx - 1` if predicate is false for all items, otherwise the index of the last item that matches the predicate. + */ +function findLastIdxMonotonous(array, predicate, startIdx = 0, endIdxEx = array.length) { + let i = startIdx; + let j = endIdxEx; + while (i < j) { + const k = Math.floor((i + j) / 2); + if (predicate(array[k])) { + i = k + 1; + } + else { + j = k; + } + } + return i - 1; +} +/** + * Finds the first item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`! + * + * @returns `undefined` if no item matches, otherwise the first item that matches the predicate. + */ +function findFirstMonotonous(array, predicate) { + const idx = findFirstIdxMonotonousOrArrLen(array, predicate); + return idx === array.length ? undefined : array[idx]; +} +/** + * Finds the first item where predicate is true using binary search. + * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`! + * + * @returns `endIdxEx` if predicate is false for all items, otherwise the index of the first item that matches the predicate. + */ +function findFirstIdxMonotonousOrArrLen(array, predicate, startIdx = 0, endIdxEx = array.length) { + let i = startIdx; + let j = endIdxEx; + while (i < j) { + const k = Math.floor((i + j) / 2); + if (predicate(array[k])) { + j = k; + } + else { + i = k + 1; + } + } + return i; +} +/** + * Use this when + * * You have a sorted array + * * You query this array with a monotonous predicate to find the last item that has a certain property. + * * You query this array multiple times with monotonous predicates that get weaker and weaker. + */ +class MonotonousArray { + static { this.assertInvariants = false; } + constructor(_array) { + this._array = _array; + this._findLastMonotonousLastIdx = 0; + } + /** + * The predicate must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`! + * For subsequent calls, current predicate must be weaker than (or equal to) the previous predicate, i.e. more entries must be `true`. + */ + findLastMonotonous(predicate) { + if (MonotonousArray.assertInvariants) { + if (this._prevFindLastPredicate) { + for (const item of this._array) { + if (this._prevFindLastPredicate(item) && !predicate(item)) { + throw new Error('MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.'); + } + } + } + this._prevFindLastPredicate = predicate; + } + const idx = findLastIdxMonotonous(this._array, predicate, this._findLastMonotonousLastIdx); + this._findLastMonotonousLastIdx = idx + 1; + return idx === -1 ? undefined : this._array[idx]; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A range of lines (1-based). + */ +class LineRange { + static fromRangeInclusive(range) { + return new LineRange(range.startLineNumber, range.endLineNumber + 1); + } + /** + * @param lineRanges An array of sorted line ranges. + */ + static joinMany(lineRanges) { + if (lineRanges.length === 0) { + return []; + } + let result = new LineRangeSet(lineRanges[0].slice()); + for (let i = 1; i < lineRanges.length; i++) { + result = result.getUnion(new LineRangeSet(lineRanges[i].slice())); + } + return result.ranges; + } + static join(lineRanges) { + if (lineRanges.length === 0) { + throw new BugIndicatingError('lineRanges cannot be empty'); + } + let startLineNumber = lineRanges[0].startLineNumber; + let endLineNumberExclusive = lineRanges[0].endLineNumberExclusive; + for (let i = 1; i < lineRanges.length; i++) { + startLineNumber = Math.min(startLineNumber, lineRanges[i].startLineNumber); + endLineNumberExclusive = Math.max(endLineNumberExclusive, lineRanges[i].endLineNumberExclusive); + } + return new LineRange(startLineNumber, endLineNumberExclusive); + } + static ofLength(startLineNumber, length) { + return new LineRange(startLineNumber, startLineNumber + length); + } + /** + * @internal + */ + static deserialize(lineRange) { + return new LineRange(lineRange[0], lineRange[1]); + } + constructor(startLineNumber, endLineNumberExclusive) { + if (startLineNumber > endLineNumberExclusive) { + throw new BugIndicatingError(`startLineNumber ${startLineNumber} cannot be after endLineNumberExclusive ${endLineNumberExclusive}`); + } + this.startLineNumber = startLineNumber; + this.endLineNumberExclusive = endLineNumberExclusive; + } + /** + * Indicates if this line range contains the given line number. + */ + contains(lineNumber) { + return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive; + } + /** + * Indicates if this line range is empty. + */ + get isEmpty() { + return this.startLineNumber === this.endLineNumberExclusive; + } + /** + * Moves this line range by the given offset of line numbers. + */ + delta(offset) { + return new LineRange(this.startLineNumber + offset, this.endLineNumberExclusive + offset); + } + deltaLength(offset) { + return new LineRange(this.startLineNumber, this.endLineNumberExclusive + offset); + } + /** + * The number of lines this line range spans. + */ + get length() { + return this.endLineNumberExclusive - this.startLineNumber; + } + /** + * Creates a line range that combines this and the given line range. + */ + join(other) { + return new LineRange(Math.min(this.startLineNumber, other.startLineNumber), Math.max(this.endLineNumberExclusive, other.endLineNumberExclusive)); + } + toString() { + return `[${this.startLineNumber},${this.endLineNumberExclusive})`; + } + /** + * The resulting range is empty if the ranges do not intersect, but touch. + * If the ranges don't even touch, the result is undefined. + */ + intersect(other) { + const startLineNumber = Math.max(this.startLineNumber, other.startLineNumber); + const endLineNumberExclusive = Math.min(this.endLineNumberExclusive, other.endLineNumberExclusive); + if (startLineNumber <= endLineNumberExclusive) { + return new LineRange(startLineNumber, endLineNumberExclusive); + } + return undefined; + } + intersectsStrict(other) { + return this.startLineNumber < other.endLineNumberExclusive && other.startLineNumber < this.endLineNumberExclusive; + } + overlapOrTouch(other) { + return this.startLineNumber <= other.endLineNumberExclusive && other.startLineNumber <= this.endLineNumberExclusive; + } + equals(b) { + return this.startLineNumber === b.startLineNumber && this.endLineNumberExclusive === b.endLineNumberExclusive; + } + toInclusiveRange() { + if (this.isEmpty) { + return null; + } + return new Range$b(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER); + } + /** + * @deprecated Using this function is discouraged because it might lead to bugs: The end position is not guaranteed to be a valid position! + */ + toExclusiveRange() { + return new Range$b(this.startLineNumber, 1, this.endLineNumberExclusive, 1); + } + mapToLineArray(f) { + const result = []; + for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) { + result.push(f(lineNumber)); + } + return result; + } + forEach(f) { + for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) { + f(lineNumber); + } + } + /** + * @internal + */ + serialize() { + return [this.startLineNumber, this.endLineNumberExclusive]; + } + includes(lineNumber) { + return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive; + } + /** + * Converts this 1-based line range to a 0-based offset range (subtracts 1!). + * @internal + */ + toOffsetRange() { + return new OffsetRange(this.startLineNumber - 1, this.endLineNumberExclusive - 1); + } +} +class LineRangeSet { + constructor( + /** + * Sorted by start line number. + * No two line ranges are touching or intersecting. + */ + _normalizedRanges = []) { + this._normalizedRanges = _normalizedRanges; + } + get ranges() { + return this._normalizedRanges; + } + addRange(range) { + if (range.length === 0) { + return; + } + // Idea: Find joinRange such that: + // replaceRange = _normalizedRanges.replaceRange(joinRange, range.joinAll(joinRange.map(idx => this._normalizedRanges[idx]))) + // idx of first element that touches range or that is after range + const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber); + // idx of element after { last element that touches range or that is before range } + const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1; + if (joinRangeStartIdx === joinRangeEndIdxExclusive) { + // If there is no element that touches range, then joinRangeStartIdx === joinRangeEndIdxExclusive and that value is the index of the element after range + this._normalizedRanges.splice(joinRangeStartIdx, 0, range); + } + else if (joinRangeStartIdx === joinRangeEndIdxExclusive - 1) { + // Else, there is an element that touches range and in this case it is both the first and last element. Thus we can replace it + const joinRange = this._normalizedRanges[joinRangeStartIdx]; + this._normalizedRanges[joinRangeStartIdx] = joinRange.join(range); + } + else { + // First and last element are different - we need to replace the entire range + const joinRange = this._normalizedRanges[joinRangeStartIdx].join(this._normalizedRanges[joinRangeEndIdxExclusive - 1]).join(range); + this._normalizedRanges.splice(joinRangeStartIdx, joinRangeEndIdxExclusive - joinRangeStartIdx, joinRange); + } + } + contains(lineNumber) { + const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber <= lineNumber); + return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > lineNumber; + } + intersects(range) { + const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber < range.endLineNumberExclusive); + return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > range.startLineNumber; + } + getUnion(other) { + if (this._normalizedRanges.length === 0) { + return other; + } + if (other._normalizedRanges.length === 0) { + return this; + } + const result = []; + let i1 = 0; + let i2 = 0; + let current = null; + while (i1 < this._normalizedRanges.length || i2 < other._normalizedRanges.length) { + let next = null; + if (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) { + const lineRange1 = this._normalizedRanges[i1]; + const lineRange2 = other._normalizedRanges[i2]; + if (lineRange1.startLineNumber < lineRange2.startLineNumber) { + next = lineRange1; + i1++; + } + else { + next = lineRange2; + i2++; + } + } + else if (i1 < this._normalizedRanges.length) { + next = this._normalizedRanges[i1]; + i1++; + } + else { + next = other._normalizedRanges[i2]; + i2++; + } + if (current === null) { + current = next; + } + else { + if (current.endLineNumberExclusive >= next.startLineNumber) { + // merge + current = new LineRange(current.startLineNumber, Math.max(current.endLineNumberExclusive, next.endLineNumberExclusive)); + } + else { + // push + result.push(current); + current = next; + } + } + } + if (current !== null) { + result.push(current); + } + return new LineRangeSet(result); + } + /** + * Subtracts all ranges in this set from `range` and returns the result. + */ + subtractFrom(range) { + // idx of first element that touches range or that is after range + const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber); + // idx of element after { last element that touches range or that is before range } + const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1; + if (joinRangeStartIdx === joinRangeEndIdxExclusive) { + return new LineRangeSet([range]); + } + const result = []; + let startLineNumber = range.startLineNumber; + for (let i = joinRangeStartIdx; i < joinRangeEndIdxExclusive; i++) { + const r = this._normalizedRanges[i]; + if (r.startLineNumber > startLineNumber) { + result.push(new LineRange(startLineNumber, r.startLineNumber)); + } + startLineNumber = r.endLineNumberExclusive; + } + if (startLineNumber < range.endLineNumberExclusive) { + result.push(new LineRange(startLineNumber, range.endLineNumberExclusive)); + } + return new LineRangeSet(result); + } + toString() { + return this._normalizedRanges.map(r => r.toString()).join(', '); + } + getIntersection(other) { + const result = []; + let i1 = 0; + let i2 = 0; + while (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) { + const r1 = this._normalizedRanges[i1]; + const r2 = other._normalizedRanges[i2]; + const i = r1.intersect(r2); + if (i && !i.isEmpty) { + result.push(i); + } + if (r1.endLineNumberExclusive < r2.endLineNumberExclusive) { + i1++; + } + else { + i2++; + } + } + return new LineRangeSet(result); + } + getWithDelta(value) { + return new LineRangeSet(this._normalizedRanges.map(r => r.delta(value))); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Represents a non-negative length of text in terms of line and column count. +*/ +class TextLength { + static { this.zero = new TextLength(0, 0); } + static betweenPositions(position1, position2) { + if (position1.lineNumber === position2.lineNumber) { + return new TextLength(0, position2.column - position1.column); + } + else { + return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1); + } + } + static ofRange(range) { + return TextLength.betweenPositions(range.getStartPosition(), range.getEndPosition()); + } + static ofText(text) { + let line = 0; + let column = 0; + for (const c of text) { + if (c === '\n') { + line++; + column = 0; + } + else { + column++; + } + } + return new TextLength(line, column); + } + constructor(lineCount, columnCount) { + this.lineCount = lineCount; + this.columnCount = columnCount; + } + isGreaterThanOrEqualTo(other) { + if (this.lineCount !== other.lineCount) { + return this.lineCount > other.lineCount; + } + return this.columnCount >= other.columnCount; + } + createRange(startPosition) { + if (this.lineCount === 0) { + return new Range$b(startPosition.lineNumber, startPosition.column, startPosition.lineNumber, startPosition.column + this.columnCount); + } + else { + return new Range$b(startPosition.lineNumber, startPosition.column, startPosition.lineNumber + this.lineCount, this.columnCount + 1); + } + } + addToPosition(position) { + if (this.lineCount === 0) { + return new Position$2(position.lineNumber, position.column + this.columnCount); + } + else { + return new Position$2(position.lineNumber + this.lineCount, this.columnCount + 1); + } + } + toString() { + return `${this.lineCount},${this.columnCount}`; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class SingleTextEdit { + constructor(range, text) { + this.range = range; + this.text = text; + } + toSingleEditOperation() { + return { + range: this.range, + text: this.text, + }; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Maps a line range in the original text model to a line range in the modified text model. + */ +class LineRangeMapping { + static inverse(mapping, originalLineCount, modifiedLineCount) { + const result = []; + let lastOriginalEndLineNumber = 1; + let lastModifiedEndLineNumber = 1; + for (const m of mapping) { + const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, m.original.startLineNumber), new LineRange(lastModifiedEndLineNumber, m.modified.startLineNumber)); + if (!r.modified.isEmpty) { + result.push(r); + } + lastOriginalEndLineNumber = m.original.endLineNumberExclusive; + lastModifiedEndLineNumber = m.modified.endLineNumberExclusive; + } + const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, originalLineCount + 1), new LineRange(lastModifiedEndLineNumber, modifiedLineCount + 1)); + if (!r.modified.isEmpty) { + result.push(r); + } + return result; + } + static clip(mapping, originalRange, modifiedRange) { + const result = []; + for (const m of mapping) { + const original = m.original.intersect(originalRange); + const modified = m.modified.intersect(modifiedRange); + if (original && !original.isEmpty && modified && !modified.isEmpty) { + result.push(new LineRangeMapping(original, modified)); + } + } + return result; + } + constructor(originalRange, modifiedRange) { + this.original = originalRange; + this.modified = modifiedRange; + } + toString() { + return `{${this.original.toString()}->${this.modified.toString()}}`; + } + flip() { + return new LineRangeMapping(this.modified, this.original); + } + join(other) { + return new LineRangeMapping(this.original.join(other.original), this.modified.join(other.modified)); + } + /** + * This method assumes that the LineRangeMapping describes a valid diff! + * I.e. if one range is empty, the other range cannot be the entire document. + * It avoids various problems when the line range points to non-existing line-numbers. + */ + toRangeMapping() { + const origInclusiveRange = this.original.toInclusiveRange(); + const modInclusiveRange = this.modified.toInclusiveRange(); + if (origInclusiveRange && modInclusiveRange) { + return new RangeMapping(origInclusiveRange, modInclusiveRange); + } + else if (this.original.startLineNumber === 1 || this.modified.startLineNumber === 1) { + if (!(this.modified.startLineNumber === 1 && this.original.startLineNumber === 1)) { + // If one line range starts at 1, the other one must start at 1 as well. + throw new BugIndicatingError('not a valid diff'); + } + // Because one range is empty and both ranges start at line 1, none of the ranges can cover all lines. + // Thus, `endLineNumberExclusive` is a valid line number. + return new RangeMapping(new Range$b(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range$b(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1)); + } + else { + // We can assume here that both startLineNumbers are greater than 1. + return new RangeMapping(new Range$b(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), new Range$b(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER)); + } + } + /** + * This method assumes that the LineRangeMapping describes a valid diff! + * I.e. if one range is empty, the other range cannot be the entire document. + * It avoids various problems when the line range points to non-existing line-numbers. + */ + toRangeMapping2(original, modified) { + if (isValidLineNumber(this.original.endLineNumberExclusive, original) + && isValidLineNumber(this.modified.endLineNumberExclusive, modified)) { + return new RangeMapping(new Range$b(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range$b(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1)); + } + if (!this.original.isEmpty && !this.modified.isEmpty) { + return new RangeMapping(Range$b.fromPositions(new Position$2(this.original.startLineNumber, 1), normalizePosition(new Position$2(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range$b.fromPositions(new Position$2(this.modified.startLineNumber, 1), normalizePosition(new Position$2(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified))); + } + if (this.original.startLineNumber > 1 && this.modified.startLineNumber > 1) { + return new RangeMapping(Range$b.fromPositions(normalizePosition(new Position$2(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER), original), normalizePosition(new Position$2(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range$b.fromPositions(normalizePosition(new Position$2(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER), modified), normalizePosition(new Position$2(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified))); + } + // Situation now: one range is empty and one range touches the last line and one range starts at line 1. + // I don't think this can happen. + throw new BugIndicatingError(); + } +} +function normalizePosition(position, content) { + if (position.lineNumber < 1) { + return new Position$2(1, 1); + } + if (position.lineNumber > content.length) { + return new Position$2(content.length, content[content.length - 1].length + 1); + } + const line = content[position.lineNumber - 1]; + if (position.column > line.length + 1) { + return new Position$2(position.lineNumber, line.length + 1); + } + return position; +} +function isValidLineNumber(lineNumber, lines) { + return lineNumber >= 1 && lineNumber <= lines.length; +} +/** + * Maps a line range in the original text model to a line range in the modified text model. + * Also contains inner range mappings. + */ +class DetailedLineRangeMapping extends LineRangeMapping { + static fromRangeMappings(rangeMappings) { + const originalRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.originalRange))); + const modifiedRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.modifiedRange))); + return new DetailedLineRangeMapping(originalRange, modifiedRange, rangeMappings); + } + constructor(originalRange, modifiedRange, innerChanges) { + super(originalRange, modifiedRange); + this.innerChanges = innerChanges; + } + flip() { + return new DetailedLineRangeMapping(this.modified, this.original, this.innerChanges?.map(c => c.flip())); + } + withInnerChangesFromLineRanges() { + return new DetailedLineRangeMapping(this.original, this.modified, [this.toRangeMapping()]); + } +} +/** + * Maps a range in the original text model to a range in the modified text model. + */ +class RangeMapping { + static assertSorted(rangeMappings) { + for (let i = 1; i < rangeMappings.length; i++) { + const previous = rangeMappings[i - 1]; + const current = rangeMappings[i]; + if (!(previous.originalRange.getEndPosition().isBeforeOrEqual(current.originalRange.getStartPosition()) + && previous.modifiedRange.getEndPosition().isBeforeOrEqual(current.modifiedRange.getStartPosition()))) { + throw new BugIndicatingError('Range mappings must be sorted'); + } + } + } + constructor(originalRange, modifiedRange) { + this.originalRange = originalRange; + this.modifiedRange = modifiedRange; + } + toString() { + return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`; + } + flip() { + return new RangeMapping(this.modifiedRange, this.originalRange); + } + /** + * Creates a single text edit that describes the change from the original to the modified text. + */ + toTextEdit(modified) { + const newText = modified.getValueOfRange(this.modifiedRange); + return new SingleTextEdit(this.originalRange, newText); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const MINIMUM_MATCHING_CHARACTER_LENGTH = 3; +class LegacyLinesDiffComputer { + computeDiff(originalLines, modifiedLines, options) { + const diffComputer = new DiffComputer(originalLines, modifiedLines, { + maxComputationTime: options.maxComputationTimeMs, + shouldIgnoreTrimWhitespace: options.ignoreTrimWhitespace, + shouldComputeCharChanges: true, + shouldMakePrettyDiff: true, + shouldPostProcessCharChanges: true, + }); + const result = diffComputer.computeDiff(); + const changes = []; + let lastChange = null; + for (const c of result.changes) { + let originalRange; + if (c.originalEndLineNumber === 0) { + // Insertion + originalRange = new LineRange(c.originalStartLineNumber + 1, c.originalStartLineNumber + 1); + } + else { + originalRange = new LineRange(c.originalStartLineNumber, c.originalEndLineNumber + 1); + } + let modifiedRange; + if (c.modifiedEndLineNumber === 0) { + // Deletion + modifiedRange = new LineRange(c.modifiedStartLineNumber + 1, c.modifiedStartLineNumber + 1); + } + else { + modifiedRange = new LineRange(c.modifiedStartLineNumber, c.modifiedEndLineNumber + 1); + } + let change = new DetailedLineRangeMapping(originalRange, modifiedRange, c.charChanges?.map(c => new RangeMapping(new Range$b(c.originalStartLineNumber, c.originalStartColumn, c.originalEndLineNumber, c.originalEndColumn), new Range$b(c.modifiedStartLineNumber, c.modifiedStartColumn, c.modifiedEndLineNumber, c.modifiedEndColumn)))); + if (lastChange) { + if (lastChange.modified.endLineNumberExclusive === change.modified.startLineNumber + || lastChange.original.endLineNumberExclusive === change.original.startLineNumber) { + // join touching diffs. Probably moving diffs up/down in the algorithm causes touching diffs. + change = new DetailedLineRangeMapping(lastChange.original.join(change.original), lastChange.modified.join(change.modified), lastChange.innerChanges && change.innerChanges ? + lastChange.innerChanges.concat(change.innerChanges) : undefined); + changes.pop(); + } + } + changes.push(change); + lastChange = change; + } + assertFn(() => { + return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive && + // There has to be an unchanged line in between (otherwise both diffs should have been joined) + m1.original.endLineNumberExclusive < m2.original.startLineNumber && + m1.modified.endLineNumberExclusive < m2.modified.startLineNumber); + }); + return new LinesDiff(changes, [], result.quitEarly); + } +} +function computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) { + const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate); + return diffAlgo.ComputeDiff(pretty); +} +let LineSequence$1 = class LineSequence { + constructor(lines) { + const startColumns = []; + const endColumns = []; + for (let i = 0, length = lines.length; i < length; i++) { + startColumns[i] = getFirstNonBlankColumn(lines[i], 1); + endColumns[i] = getLastNonBlankColumn(lines[i], 1); + } + this.lines = lines; + this._startColumns = startColumns; + this._endColumns = endColumns; + } + getElements() { + const elements = []; + for (let i = 0, len = this.lines.length; i < len; i++) { + elements[i] = this.lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1); + } + return elements; + } + getStrictElement(index) { + return this.lines[index]; + } + getStartLineNumber(i) { + return i + 1; + } + getEndLineNumber(i) { + return i + 1; + } + createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) { + const charCodes = []; + const lineNumbers = []; + const columns = []; + let len = 0; + for (let index = startIndex; index <= endIndex; index++) { + const lineContent = this.lines[index]; + const startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1); + const endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1); + for (let col = startColumn; col < endColumn; col++) { + charCodes[len] = lineContent.charCodeAt(col - 1); + lineNumbers[len] = index + 1; + columns[len] = col; + len++; + } + if (!shouldIgnoreTrimWhitespace && index < endIndex) { + // Add \n if trim whitespace is not ignored + charCodes[len] = 10 /* CharCode.LineFeed */; + lineNumbers[len] = index + 1; + columns[len] = lineContent.length + 1; + len++; + } + } + return new CharSequence(charCodes, lineNumbers, columns); + } +}; +class CharSequence { + constructor(charCodes, lineNumbers, columns) { + this._charCodes = charCodes; + this._lineNumbers = lineNumbers; + this._columns = columns; + } + toString() { + return ('[' + this._charCodes.map((s, idx) => (s === 10 /* CharCode.LineFeed */ ? '\\n' : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(', ') + ']'); + } + _assertIndex(index, arr) { + if (index < 0 || index >= arr.length) { + throw new Error(`Illegal index`); + } + } + getElements() { + return this._charCodes; + } + getStartLineNumber(i) { + if (i > 0 && i === this._lineNumbers.length) { + // the start line number of the element after the last element + // is the end line number of the last element + return this.getEndLineNumber(i - 1); + } + this._assertIndex(i, this._lineNumbers); + return this._lineNumbers[i]; + } + getEndLineNumber(i) { + if (i === -1) { + // the end line number of the element before the first element + // is the start line number of the first element + return this.getStartLineNumber(i + 1); + } + this._assertIndex(i, this._lineNumbers); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return this._lineNumbers[i] + 1; + } + return this._lineNumbers[i]; + } + getStartColumn(i) { + if (i > 0 && i === this._columns.length) { + // the start column of the element after the last element + // is the end column of the last element + return this.getEndColumn(i - 1); + } + this._assertIndex(i, this._columns); + return this._columns[i]; + } + getEndColumn(i) { + if (i === -1) { + // the end column of the element before the first element + // is the start column of the first element + return this.getStartColumn(i + 1); + } + this._assertIndex(i, this._columns); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return 1; + } + return this._columns[i] + 1; + } +} +class CharChange { + constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalStartColumn = originalStartColumn; + this.originalEndLineNumber = originalEndLineNumber; + this.originalEndColumn = originalEndColumn; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedStartColumn = modifiedStartColumn; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.modifiedEndColumn = modifiedEndColumn; + } + static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) { + const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart); + const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart); + const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1); + const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart); + const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart); + const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1); + return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn); + } +} +function postProcessCharChanges(rawChanges) { + if (rawChanges.length <= 1) { + return rawChanges; + } + const result = [rawChanges[0]]; + let prevChange = result[0]; + for (let i = 1, len = rawChanges.length; i < len; i++) { + const currChange = rawChanges[i]; + const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength); + const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength); + // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true + const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength); + if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) { + // Merge the current change into the previous one + prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart; + prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart; + } + else { + // Add the current change + result.push(currChange); + prevChange = currChange; + } + } + return result; +} +class LineChange { + constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalEndLineNumber = originalEndLineNumber; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.charChanges = charChanges; + } + static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) { + let originalStartLineNumber; + let originalEndLineNumber; + let modifiedStartLineNumber; + let modifiedEndLineNumber; + let charChanges = undefined; + if (diffChange.originalLength === 0) { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1; + originalEndLineNumber = 0; + } + else { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart); + originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + } + if (diffChange.modifiedLength === 0) { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1; + modifiedEndLineNumber = 0; + } + else { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart); + modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + } + if (shouldComputeCharChanges && diffChange.originalLength > 0 && diffChange.originalLength < 20 && diffChange.modifiedLength > 0 && diffChange.modifiedLength < 20 && continueCharDiff()) { + // Compute character changes for diff chunks of at most 20 lines... + const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1); + const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1); + if (originalCharSequence.getElements().length > 0 && modifiedCharSequence.getElements().length > 0) { + let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes; + if (shouldPostProcessCharChanges) { + rawChanges = postProcessCharChanges(rawChanges); + } + charChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence)); + } + } + } + return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges); + } +} +class DiffComputer { + constructor(originalLines, modifiedLines, opts) { + this.shouldComputeCharChanges = opts.shouldComputeCharChanges; + this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges; + this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace; + this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff; + this.originalLines = originalLines; + this.modifiedLines = modifiedLines; + this.original = new LineSequence$1(originalLines); + this.modified = new LineSequence$1(modifiedLines); + this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime); + this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5000)); // never run after 5s for character changes... + } + computeDiff() { + if (this.original.lines.length === 1 && this.original.lines[0].length === 0) { + // empty original => fast path + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + return { + quitEarly: false, + changes: [] + }; + } + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: 1, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: this.modified.lines.length, + charChanges: undefined + }] + }; + } + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + // empty modified => fast path + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: this.original.lines.length, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: 1, + charChanges: undefined + }] + }; + } + const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff); + const rawChanges = diffResult.changes; + const quitEarly = diffResult.quitEarly; + // The diff is always computed with ignoring trim whitespace + // This ensures we get the prettiest diff + if (this.shouldIgnoreTrimWhitespace) { + const lineChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + } + return { + quitEarly: quitEarly, + changes: lineChanges + }; + } + // Need to post-process and introduce changes where the trim whitespace is different + // Note that we are looping starting at -1 to also cover the lines before the first change + const result = []; + let originalLineIndex = 0; + let modifiedLineIndex = 0; + for (let i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) { + const nextChange = (i + 1 < len ? rawChanges[i + 1] : null); + const originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length); + const modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length); + while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) { + const originalLine = this.originalLines[originalLineIndex]; + const modifiedLine = this.modifiedLines[modifiedLineIndex]; + if (originalLine !== modifiedLine) { + // These lines differ only in trim whitespace + // Check the leading whitespace + { + let originalStartColumn = getFirstNonBlankColumn(originalLine, 1); + let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1); + while (originalStartColumn > 1 && modifiedStartColumn > 1) { + const originalChar = originalLine.charCodeAt(originalStartColumn - 2); + const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2); + if (originalChar !== modifiedChar) { + break; + } + originalStartColumn--; + modifiedStartColumn--; + } + if (originalStartColumn > 1 || modifiedStartColumn > 1) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn); + } + } + // Check the trailing whitespace + { + let originalEndColumn = getLastNonBlankColumn(originalLine, 1); + let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1); + const originalMaxColumn = originalLine.length + 1; + const modifiedMaxColumn = modifiedLine.length + 1; + while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) { + const originalChar = originalLine.charCodeAt(originalEndColumn - 1); + const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1); + if (originalChar !== modifiedChar) { + break; + } + originalEndColumn++; + modifiedEndColumn++; + } + if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn); + } + } + } + originalLineIndex++; + modifiedLineIndex++; + } + if (nextChange) { + // Emit the actual change + result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + originalLineIndex += nextChange.originalLength; + modifiedLineIndex += nextChange.modifiedLength; + } + } + return { + quitEarly: quitEarly, + changes: result + }; + } + _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) { + // Merged into previous + return; + } + let charChanges = undefined; + if (this.shouldComputeCharChanges) { + charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)]; + } + result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges)); + } + _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + const len = result.length; + if (len === 0) { + return false; + } + const prevChange = result[len - 1]; + if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) { + // Don't merge with inserts/deletes + return false; + } + if (prevChange.originalEndLineNumber === originalLineNumber && prevChange.modifiedEndLineNumber === modifiedLineNumber) { + if (this.shouldComputeCharChanges && prevChange.charChanges) { + prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)); + } + return true; + } + if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) { + prevChange.originalEndLineNumber = originalLineNumber; + prevChange.modifiedEndLineNumber = modifiedLineNumber; + if (this.shouldComputeCharChanges && prevChange.charChanges) { + prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)); + } + return true; + } + return false; + } +} +function getFirstNonBlankColumn(txt, defaultValue) { + const r = firstNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 1; +} +function getLastNonBlankColumn(txt, defaultValue) { + const r = lastNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 2; +} +function createContinueProcessingPredicate(maximumRuntime) { + if (maximumRuntime === 0) { + return () => true; + } + const startTime = Date.now(); + return () => { + return Date.now() - startTime < maximumRuntime; + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class DiffAlgorithmResult { + static trivial(seq1, seq2) { + return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], false); + } + static trivialTimedOut(seq1, seq2) { + return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], true); + } + constructor(diffs, + /** + * Indicates if the time out was reached. + * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time. + */ + hitTimeout) { + this.diffs = diffs; + this.hitTimeout = hitTimeout; + } +} +class SequenceDiff { + static invert(sequenceDiffs, doc1Length) { + const result = []; + forEachAdjacent(sequenceDiffs, (a, b) => { + result.push(SequenceDiff.fromOffsetPairs(a ? a.getEndExclusives() : OffsetPair.zero, b ? b.getStarts() : new OffsetPair(doc1Length, (a ? a.seq2Range.endExclusive - a.seq1Range.endExclusive : 0) + doc1Length))); + }); + return result; + } + static fromOffsetPairs(start, endExclusive) { + return new SequenceDiff(new OffsetRange(start.offset1, endExclusive.offset1), new OffsetRange(start.offset2, endExclusive.offset2)); + } + static assertSorted(sequenceDiffs) { + let last = undefined; + for (const cur of sequenceDiffs) { + if (last) { + if (!(last.seq1Range.endExclusive <= cur.seq1Range.start && last.seq2Range.endExclusive <= cur.seq2Range.start)) { + throw new BugIndicatingError('Sequence diffs must be sorted'); + } + } + last = cur; + } + } + constructor(seq1Range, seq2Range) { + this.seq1Range = seq1Range; + this.seq2Range = seq2Range; + } + swap() { + return new SequenceDiff(this.seq2Range, this.seq1Range); + } + toString() { + return `${this.seq1Range} <-> ${this.seq2Range}`; + } + join(other) { + return new SequenceDiff(this.seq1Range.join(other.seq1Range), this.seq2Range.join(other.seq2Range)); + } + delta(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.delta(offset), this.seq2Range.delta(offset)); + } + deltaStart(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.deltaStart(offset), this.seq2Range.deltaStart(offset)); + } + deltaEnd(offset) { + if (offset === 0) { + return this; + } + return new SequenceDiff(this.seq1Range.deltaEnd(offset), this.seq2Range.deltaEnd(offset)); + } + intersect(other) { + const i1 = this.seq1Range.intersect(other.seq1Range); + const i2 = this.seq2Range.intersect(other.seq2Range); + if (!i1 || !i2) { + return undefined; + } + return new SequenceDiff(i1, i2); + } + getStarts() { + return new OffsetPair(this.seq1Range.start, this.seq2Range.start); + } + getEndExclusives() { + return new OffsetPair(this.seq1Range.endExclusive, this.seq2Range.endExclusive); + } +} +class OffsetPair { + static { this.zero = new OffsetPair(0, 0); } + static { this.max = new OffsetPair(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER); } + constructor(offset1, offset2) { + this.offset1 = offset1; + this.offset2 = offset2; + } + toString() { + return `${this.offset1} <-> ${this.offset2}`; + } + delta(offset) { + if (offset === 0) { + return this; + } + return new OffsetPair(this.offset1 + offset, this.offset2 + offset); + } + equals(other) { + return this.offset1 === other.offset1 && this.offset2 === other.offset2; + } +} +class InfiniteTimeout { + static { this.instance = new InfiniteTimeout(); } + isValid() { + return true; + } +} +class DateTimeout { + constructor(timeout) { + this.timeout = timeout; + this.startTime = Date.now(); + this.valid = true; + if (timeout <= 0) { + throw new BugIndicatingError('timeout must be positive'); + } + } + // Recommendation: Set a log-point `{this.disable()}` in the body + isValid() { + const valid = Date.now() - this.startTime < this.timeout; + if (!valid && this.valid) { + this.valid = false; // timeout reached + // eslint-disable-next-line no-debugger + debugger; // WARNING: Most likely debugging caused the timeout. Call `this.disable()` to continue without timing out. + } + return this.valid; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Array2D { + constructor(width, height) { + this.width = width; + this.height = height; + this.array = []; + this.array = new Array(width * height); + } + get(x, y) { + return this.array[x + y * this.width]; + } + set(x, y, value) { + this.array[x + y * this.width] = value; + } +} +function isSpace(charCode) { + return charCode === 32 /* CharCode.Space */ || charCode === 9 /* CharCode.Tab */; +} +class LineRangeFragment { + static { this.chrKeys = new Map(); } + static getKey(chr) { + let key = this.chrKeys.get(chr); + if (key === undefined) { + key = this.chrKeys.size; + this.chrKeys.set(chr, key); + } + return key; + } + constructor(range, lines, source) { + this.range = range; + this.lines = lines; + this.source = source; + this.histogram = []; + let counter = 0; + for (let i = range.startLineNumber - 1; i < range.endLineNumberExclusive - 1; i++) { + const line = lines[i]; + for (let j = 0; j < line.length; j++) { + counter++; + const chr = line[j]; + const key = LineRangeFragment.getKey(chr); + this.histogram[key] = (this.histogram[key] || 0) + 1; + } + counter++; + const key = LineRangeFragment.getKey('\n'); + this.histogram[key] = (this.histogram[key] || 0) + 1; + } + this.totalCount = counter; + } + computeSimilarity(other) { + let sumDifferences = 0; + const maxLength = Math.max(this.histogram.length, other.histogram.length); + for (let i = 0; i < maxLength; i++) { + sumDifferences += Math.abs((this.histogram[i] ?? 0) - (other.histogram[i] ?? 0)); + } + return 1 - (sumDifferences / (this.totalCount + other.totalCount)); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A O(MN) diffing algorithm that supports a score function. + * The algorithm can be improved by processing the 2d array diagonally. +*/ +class DynamicProgrammingDiffing { + compute(sequence1, sequence2, timeout = InfiniteTimeout.instance, equalityScore) { + if (sequence1.length === 0 || sequence2.length === 0) { + return DiffAlgorithmResult.trivial(sequence1, sequence2); + } + /** + * lcsLengths.get(i, j): Length of the longest common subsequence of sequence1.substring(0, i + 1) and sequence2.substring(0, j + 1). + */ + const lcsLengths = new Array2D(sequence1.length, sequence2.length); + const directions = new Array2D(sequence1.length, sequence2.length); + const lengths = new Array2D(sequence1.length, sequence2.length); + // ==== Initializing lcsLengths ==== + for (let s1 = 0; s1 < sequence1.length; s1++) { + for (let s2 = 0; s2 < sequence2.length; s2++) { + if (!timeout.isValid()) { + return DiffAlgorithmResult.trivialTimedOut(sequence1, sequence2); + } + const horizontalLen = s1 === 0 ? 0 : lcsLengths.get(s1 - 1, s2); + const verticalLen = s2 === 0 ? 0 : lcsLengths.get(s1, s2 - 1); + let extendedSeqScore; + if (sequence1.getElement(s1) === sequence2.getElement(s2)) { + if (s1 === 0 || s2 === 0) { + extendedSeqScore = 0; + } + else { + extendedSeqScore = lcsLengths.get(s1 - 1, s2 - 1); + } + if (s1 > 0 && s2 > 0 && directions.get(s1 - 1, s2 - 1) === 3) { + // Prefer consecutive diagonals + extendedSeqScore += lengths.get(s1 - 1, s2 - 1); + } + extendedSeqScore += (equalityScore ? equalityScore(s1, s2) : 1); + } + else { + extendedSeqScore = -1; + } + const newValue = Math.max(horizontalLen, verticalLen, extendedSeqScore); + if (newValue === extendedSeqScore) { + // Prefer diagonals + const prevLen = s1 > 0 && s2 > 0 ? lengths.get(s1 - 1, s2 - 1) : 0; + lengths.set(s1, s2, prevLen + 1); + directions.set(s1, s2, 3); + } + else if (newValue === horizontalLen) { + lengths.set(s1, s2, 0); + directions.set(s1, s2, 1); + } + else if (newValue === verticalLen) { + lengths.set(s1, s2, 0); + directions.set(s1, s2, 2); + } + lcsLengths.set(s1, s2, newValue); + } + } + // ==== Backtracking ==== + const result = []; + let lastAligningPosS1 = sequence1.length; + let lastAligningPosS2 = sequence2.length; + function reportDecreasingAligningPositions(s1, s2) { + if (s1 + 1 !== lastAligningPosS1 || s2 + 1 !== lastAligningPosS2) { + result.push(new SequenceDiff(new OffsetRange(s1 + 1, lastAligningPosS1), new OffsetRange(s2 + 1, lastAligningPosS2))); + } + lastAligningPosS1 = s1; + lastAligningPosS2 = s2; + } + let s1 = sequence1.length - 1; + let s2 = sequence2.length - 1; + while (s1 >= 0 && s2 >= 0) { + if (directions.get(s1, s2) === 3) { + reportDecreasingAligningPositions(s1, s2); + s1--; + s2--; + } + else { + if (directions.get(s1, s2) === 1) { + s1--; + } + else { + s2--; + } + } + } + reportDecreasingAligningPositions(-1, -1); + result.reverse(); + return new DiffAlgorithmResult(result, false); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * An O(ND) diff algorithm that has a quadratic space worst-case complexity. +*/ +class MyersDiffAlgorithm { + compute(seq1, seq2, timeout = InfiniteTimeout.instance) { + // These are common special cases. + // The early return improves performance dramatically. + if (seq1.length === 0 || seq2.length === 0) { + return DiffAlgorithmResult.trivial(seq1, seq2); + } + const seqX = seq1; // Text on the x axis + const seqY = seq2; // Text on the y axis + function getXAfterSnake(x, y) { + while (x < seqX.length && y < seqY.length && seqX.getElement(x) === seqY.getElement(y)) { + x++; + y++; + } + return x; + } + let d = 0; + // V[k]: X value of longest d-line that ends in diagonal k. + // d-line: path from (0,0) to (x,y) that uses exactly d non-diagonals. + // diagonal k: Set of points (x,y) with x-y = k. + // k=1 -> (1,0),(2,1) + const V = new FastInt32Array(); + V.set(0, getXAfterSnake(0, 0)); + const paths = new FastArrayNegativeIndices(); + paths.set(0, V.get(0) === 0 ? null : new SnakePath(null, 0, 0, V.get(0))); + let k = 0; + loop: while (true) { + d++; + if (!timeout.isValid()) { + return DiffAlgorithmResult.trivialTimedOut(seqX, seqY); + } + // The paper has `for (k = -d; k <= d; k += 2)`, but we can ignore diagonals that cannot influence the result. + const lowerBound = -Math.min(d, seqY.length + (d % 2)); + const upperBound = Math.min(d, seqX.length + (d % 2)); + for (k = lowerBound; k <= upperBound; k += 2) { + // We can use the X values of (d-1)-lines to compute X value of the longest d-lines. + const maxXofDLineTop = k === upperBound ? -1 : V.get(k + 1); // We take a vertical non-diagonal (add a symbol in seqX) + const maxXofDLineLeft = k === lowerBound ? -1 : V.get(k - 1) + 1; // We take a horizontal non-diagonal (+1 x) (delete a symbol in seqX) + const x = Math.min(Math.max(maxXofDLineTop, maxXofDLineLeft), seqX.length); + const y = x - k; + if (x > seqX.length || y > seqY.length) { + // This diagonal is irrelevant for the result. + // TODO: Don't pay the cost for this in the next iteration. + continue; + } + const newMaxX = getXAfterSnake(x, y); + V.set(k, newMaxX); + const lastPath = x === maxXofDLineTop ? paths.get(k + 1) : paths.get(k - 1); + paths.set(k, newMaxX !== x ? new SnakePath(lastPath, x, y, newMaxX - x) : lastPath); + if (V.get(k) === seqX.length && V.get(k) - k === seqY.length) { + break loop; + } + } + } + let path = paths.get(k); + const result = []; + let lastAligningPosS1 = seqX.length; + let lastAligningPosS2 = seqY.length; + while (true) { + const endX = path ? path.x + path.length : 0; + const endY = path ? path.y + path.length : 0; + if (endX !== lastAligningPosS1 || endY !== lastAligningPosS2) { + result.push(new SequenceDiff(new OffsetRange(endX, lastAligningPosS1), new OffsetRange(endY, lastAligningPosS2))); + } + if (!path) { + break; + } + lastAligningPosS1 = path.x; + lastAligningPosS2 = path.y; + path = path.prev; + } + result.reverse(); + return new DiffAlgorithmResult(result, false); + } +} +class SnakePath { + constructor(prev, x, y, length) { + this.prev = prev; + this.x = x; + this.y = y; + this.length = length; + } +} +/** + * An array that supports fast negative indices. +*/ +class FastInt32Array { + constructor() { + this.positiveArr = new Int32Array(10); + this.negativeArr = new Int32Array(10); + } + get(idx) { + if (idx < 0) { + idx = -idx - 1; + return this.negativeArr[idx]; + } + else { + return this.positiveArr[idx]; + } + } + set(idx, value) { + if (idx < 0) { + idx = -idx - 1; + if (idx >= this.negativeArr.length) { + const arr = this.negativeArr; + this.negativeArr = new Int32Array(arr.length * 2); + this.negativeArr.set(arr); + } + this.negativeArr[idx] = value; + } + else { + if (idx >= this.positiveArr.length) { + const arr = this.positiveArr; + this.positiveArr = new Int32Array(arr.length * 2); + this.positiveArr.set(arr); + } + this.positiveArr[idx] = value; + } + } +} +/** + * An array that supports fast negative indices. +*/ +class FastArrayNegativeIndices { + constructor() { + this.positiveArr = []; + this.negativeArr = []; + } + get(idx) { + if (idx < 0) { + idx = -idx - 1; + return this.negativeArr[idx]; + } + else { + return this.positiveArr[idx]; + } + } + set(idx, value) { + if (idx < 0) { + idx = -idx - 1; + this.negativeArr[idx] = value; + } + else { + this.positiveArr[idx] = value; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LinesSliceCharSequence { + constructor(lines, range, considerWhitespaceChanges) { + this.lines = lines; + this.range = range; + this.considerWhitespaceChanges = considerWhitespaceChanges; + this.elements = []; + this.firstElementOffsetByLineIdx = []; + this.lineStartOffsets = []; + this.trimmedWsLengthsByLineIdx = []; + this.firstElementOffsetByLineIdx.push(0); + for (let lineNumber = this.range.startLineNumber; lineNumber <= this.range.endLineNumber; lineNumber++) { + let line = lines[lineNumber - 1]; + let lineStartOffset = 0; + if (lineNumber === this.range.startLineNumber && this.range.startColumn > 1) { + lineStartOffset = this.range.startColumn - 1; + line = line.substring(lineStartOffset); + } + this.lineStartOffsets.push(lineStartOffset); + let trimmedWsLength = 0; + if (!considerWhitespaceChanges) { + const trimmedStartLine = line.trimStart(); + trimmedWsLength = line.length - trimmedStartLine.length; + line = trimmedStartLine.trimEnd(); + } + this.trimmedWsLengthsByLineIdx.push(trimmedWsLength); + const lineLength = lineNumber === this.range.endLineNumber ? Math.min(this.range.endColumn - 1 - lineStartOffset - trimmedWsLength, line.length) : line.length; + for (let i = 0; i < lineLength; i++) { + this.elements.push(line.charCodeAt(i)); + } + if (lineNumber < this.range.endLineNumber) { + this.elements.push('\n'.charCodeAt(0)); + this.firstElementOffsetByLineIdx.push(this.elements.length); + } + } + } + toString() { + return `Slice: "${this.text}"`; + } + get text() { + return this.getText(new OffsetRange(0, this.length)); + } + getText(range) { + return this.elements.slice(range.start, range.endExclusive).map(e => String.fromCharCode(e)).join(''); + } + getElement(offset) { + return this.elements[offset]; + } + get length() { + return this.elements.length; + } + getBoundaryScore(length) { + // a b c , d e f + // 11 0 0 12 15 6 13 0 0 11 + const prevCategory = getCategory(length > 0 ? this.elements[length - 1] : -1); + const nextCategory = getCategory(length < this.elements.length ? this.elements[length] : -1); + if (prevCategory === 7 /* CharBoundaryCategory.LineBreakCR */ && nextCategory === 8 /* CharBoundaryCategory.LineBreakLF */) { + // don't break between \r and \n + return 0; + } + if (prevCategory === 8 /* CharBoundaryCategory.LineBreakLF */) { + // prefer the linebreak before the change + return 150; + } + let score = 0; + if (prevCategory !== nextCategory) { + score += 10; + if (prevCategory === 0 /* CharBoundaryCategory.WordLower */ && nextCategory === 1 /* CharBoundaryCategory.WordUpper */) { + score += 1; + } + } + score += getCategoryBoundaryScore(prevCategory); + score += getCategoryBoundaryScore(nextCategory); + return score; + } + translateOffset(offset, preference = 'right') { + // find smallest i, so that lineBreakOffsets[i] <= offset using binary search + const i = findLastIdxMonotonous(this.firstElementOffsetByLineIdx, (value) => value <= offset); + const lineOffset = offset - this.firstElementOffsetByLineIdx[i]; + return new Position$2(this.range.startLineNumber + i, 1 + this.lineStartOffsets[i] + lineOffset + ((lineOffset === 0 && preference === 'left') ? 0 : this.trimmedWsLengthsByLineIdx[i])); + } + translateRange(range) { + const pos1 = this.translateOffset(range.start, 'right'); + const pos2 = this.translateOffset(range.endExclusive, 'left'); + if (pos2.isBefore(pos1)) { + return Range$b.fromPositions(pos2, pos2); + } + return Range$b.fromPositions(pos1, pos2); + } + /** + * Finds the word that contains the character at the given offset + */ + findWordContaining(offset) { + if (offset < 0 || offset >= this.elements.length) { + return undefined; + } + if (!isWordChar(this.elements[offset])) { + return undefined; + } + // find start + let start = offset; + while (start > 0 && isWordChar(this.elements[start - 1])) { + start--; + } + // find end + let end = offset; + while (end < this.elements.length && isWordChar(this.elements[end])) { + end++; + } + return new OffsetRange(start, end); + } + countLinesIn(range) { + return this.translateOffset(range.endExclusive).lineNumber - this.translateOffset(range.start).lineNumber; + } + isStronglyEqual(offset1, offset2) { + return this.elements[offset1] === this.elements[offset2]; + } + extendToFullLines(range) { + const start = findLastMonotonous(this.firstElementOffsetByLineIdx, x => x <= range.start) ?? 0; + const end = findFirstMonotonous(this.firstElementOffsetByLineIdx, x => range.endExclusive <= x) ?? this.elements.length; + return new OffsetRange(start, end); + } +} +function isWordChar(charCode) { + return charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */ + || charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */ + || charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */; +} +const score = { + [0 /* CharBoundaryCategory.WordLower */]: 0, + [1 /* CharBoundaryCategory.WordUpper */]: 0, + [2 /* CharBoundaryCategory.WordNumber */]: 0, + [3 /* CharBoundaryCategory.End */]: 10, + [4 /* CharBoundaryCategory.Other */]: 2, + [5 /* CharBoundaryCategory.Separator */]: 30, + [6 /* CharBoundaryCategory.Space */]: 3, + [7 /* CharBoundaryCategory.LineBreakCR */]: 10, + [8 /* CharBoundaryCategory.LineBreakLF */]: 10, +}; +function getCategoryBoundaryScore(category) { + return score[category]; +} +function getCategory(charCode) { + if (charCode === 10 /* CharCode.LineFeed */) { + return 8 /* CharBoundaryCategory.LineBreakLF */; + } + else if (charCode === 13 /* CharCode.CarriageReturn */) { + return 7 /* CharBoundaryCategory.LineBreakCR */; + } + else if (isSpace(charCode)) { + return 6 /* CharBoundaryCategory.Space */; + } + else if (charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */) { + return 0 /* CharBoundaryCategory.WordLower */; + } + else if (charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */) { + return 1 /* CharBoundaryCategory.WordUpper */; + } + else if (charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */) { + return 2 /* CharBoundaryCategory.WordNumber */; + } + else if (charCode === -1) { + return 3 /* CharBoundaryCategory.End */; + } + else if (charCode === 44 /* CharCode.Comma */ || charCode === 59 /* CharCode.Semicolon */) { + return 5 /* CharBoundaryCategory.Separator */; + } + else { + return 4 /* CharBoundaryCategory.Other */; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout) { + let { moves, excludedChanges } = computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout); + if (!timeout.isValid()) { + return []; + } + const filteredChanges = changes.filter(c => !excludedChanges.has(c)); + const unchangedMoves = computeUnchangedMoves(filteredChanges, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout); + pushMany(moves, unchangedMoves); + moves = joinCloseConsecutiveMoves(moves); + // Ignore too short moves + moves = moves.filter(current => { + const lines = current.original.toOffsetRange().slice(originalLines).map(l => l.trim()); + const originalText = lines.join('\n'); + return originalText.length >= 15 && countWhere(lines, l => l.length >= 2) >= 2; + }); + moves = removeMovesInSameDiff(changes, moves); + return moves; +} +function countWhere(arr, predicate) { + let count = 0; + for (const t of arr) { + if (predicate(t)) { + count++; + } + } + return count; +} +function computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout) { + const moves = []; + const deletions = changes + .filter(c => c.modified.isEmpty && c.original.length >= 3) + .map(d => new LineRangeFragment(d.original, originalLines, d)); + const insertions = new Set(changes + .filter(c => c.original.isEmpty && c.modified.length >= 3) + .map(d => new LineRangeFragment(d.modified, modifiedLines, d))); + const excludedChanges = new Set(); + for (const deletion of deletions) { + let highestSimilarity = -1; + let best; + for (const insertion of insertions) { + const similarity = deletion.computeSimilarity(insertion); + if (similarity > highestSimilarity) { + highestSimilarity = similarity; + best = insertion; + } + } + if (highestSimilarity > 0.90 && best) { + insertions.delete(best); + moves.push(new LineRangeMapping(deletion.range, best.range)); + excludedChanges.add(deletion.source); + excludedChanges.add(best.source); + } + if (!timeout.isValid()) { + return { moves, excludedChanges }; + } + } + return { moves, excludedChanges }; +} +function computeUnchangedMoves(changes, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout) { + const moves = []; + const original3LineHashes = new SetMap(); + for (const change of changes) { + for (let i = change.original.startLineNumber; i < change.original.endLineNumberExclusive - 2; i++) { + const key = `${hashedOriginalLines[i - 1]}:${hashedOriginalLines[i + 1 - 1]}:${hashedOriginalLines[i + 2 - 1]}`; + original3LineHashes.add(key, { range: new LineRange(i, i + 3) }); + } + } + const possibleMappings = []; + changes.sort(compareBy(c => c.modified.startLineNumber, numberComparator)); + for (const change of changes) { + let lastMappings = []; + for (let i = change.modified.startLineNumber; i < change.modified.endLineNumberExclusive - 2; i++) { + const key = `${hashedModifiedLines[i - 1]}:${hashedModifiedLines[i + 1 - 1]}:${hashedModifiedLines[i + 2 - 1]}`; + const currentModifiedRange = new LineRange(i, i + 3); + const nextMappings = []; + original3LineHashes.forEach(key, ({ range }) => { + for (const lastMapping of lastMappings) { + // does this match extend some last match? + if (lastMapping.originalLineRange.endLineNumberExclusive + 1 === range.endLineNumberExclusive && + lastMapping.modifiedLineRange.endLineNumberExclusive + 1 === currentModifiedRange.endLineNumberExclusive) { + lastMapping.originalLineRange = new LineRange(lastMapping.originalLineRange.startLineNumber, range.endLineNumberExclusive); + lastMapping.modifiedLineRange = new LineRange(lastMapping.modifiedLineRange.startLineNumber, currentModifiedRange.endLineNumberExclusive); + nextMappings.push(lastMapping); + return; + } + } + const mapping = { + modifiedLineRange: currentModifiedRange, + originalLineRange: range, + }; + possibleMappings.push(mapping); + nextMappings.push(mapping); + }); + lastMappings = nextMappings; + } + if (!timeout.isValid()) { + return []; + } + } + possibleMappings.sort(reverseOrder(compareBy(m => m.modifiedLineRange.length, numberComparator))); + const modifiedSet = new LineRangeSet(); + const originalSet = new LineRangeSet(); + for (const mapping of possibleMappings) { + const diffOrigToMod = mapping.modifiedLineRange.startLineNumber - mapping.originalLineRange.startLineNumber; + const modifiedSections = modifiedSet.subtractFrom(mapping.modifiedLineRange); + const originalTranslatedSections = originalSet.subtractFrom(mapping.originalLineRange).getWithDelta(diffOrigToMod); + const modifiedIntersectedSections = modifiedSections.getIntersection(originalTranslatedSections); + for (const s of modifiedIntersectedSections.ranges) { + if (s.length < 3) { + continue; + } + const modifiedLineRange = s; + const originalLineRange = s.delta(-diffOrigToMod); + moves.push(new LineRangeMapping(originalLineRange, modifiedLineRange)); + modifiedSet.addRange(modifiedLineRange); + originalSet.addRange(originalLineRange); + } + } + moves.sort(compareBy(m => m.original.startLineNumber, numberComparator)); + const monotonousChanges = new MonotonousArray(changes); + for (let i = 0; i < moves.length; i++) { + const move = moves[i]; + const firstTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber <= move.original.startLineNumber); + const firstTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber <= move.modified.startLineNumber); + const linesAbove = Math.max(move.original.startLineNumber - firstTouchingChangeOrig.original.startLineNumber, move.modified.startLineNumber - firstTouchingChangeMod.modified.startLineNumber); + const lastTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber < move.original.endLineNumberExclusive); + const lastTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber < move.modified.endLineNumberExclusive); + const linesBelow = Math.max(lastTouchingChangeOrig.original.endLineNumberExclusive - move.original.endLineNumberExclusive, lastTouchingChangeMod.modified.endLineNumberExclusive - move.modified.endLineNumberExclusive); + let extendToTop; + for (extendToTop = 0; extendToTop < linesAbove; extendToTop++) { + const origLine = move.original.startLineNumber - extendToTop - 1; + const modLine = move.modified.startLineNumber - extendToTop - 1; + if (origLine > originalLines.length || modLine > modifiedLines.length) { + break; + } + if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) { + break; + } + if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) { + break; + } + } + if (extendToTop > 0) { + originalSet.addRange(new LineRange(move.original.startLineNumber - extendToTop, move.original.startLineNumber)); + modifiedSet.addRange(new LineRange(move.modified.startLineNumber - extendToTop, move.modified.startLineNumber)); + } + let extendToBottom; + for (extendToBottom = 0; extendToBottom < linesBelow; extendToBottom++) { + const origLine = move.original.endLineNumberExclusive + extendToBottom; + const modLine = move.modified.endLineNumberExclusive + extendToBottom; + if (origLine > originalLines.length || modLine > modifiedLines.length) { + break; + } + if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) { + break; + } + if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) { + break; + } + } + if (extendToBottom > 0) { + originalSet.addRange(new LineRange(move.original.endLineNumberExclusive, move.original.endLineNumberExclusive + extendToBottom)); + modifiedSet.addRange(new LineRange(move.modified.endLineNumberExclusive, move.modified.endLineNumberExclusive + extendToBottom)); + } + if (extendToTop > 0 || extendToBottom > 0) { + moves[i] = new LineRangeMapping(new LineRange(move.original.startLineNumber - extendToTop, move.original.endLineNumberExclusive + extendToBottom), new LineRange(move.modified.startLineNumber - extendToTop, move.modified.endLineNumberExclusive + extendToBottom)); + } + } + return moves; +} +function areLinesSimilar(line1, line2, timeout) { + if (line1.trim() === line2.trim()) { + return true; + } + if (line1.length > 300 && line2.length > 300) { + return false; + } + const myersDiffingAlgorithm = new MyersDiffAlgorithm(); + const result = myersDiffingAlgorithm.compute(new LinesSliceCharSequence([line1], new Range$b(1, 1, 1, line1.length), false), new LinesSliceCharSequence([line2], new Range$b(1, 1, 1, line2.length), false), timeout); + let commonNonSpaceCharCount = 0; + const inverted = SequenceDiff.invert(result.diffs, line1.length); + for (const seq of inverted) { + seq.seq1Range.forEach(idx => { + if (!isSpace(line1.charCodeAt(idx))) { + commonNonSpaceCharCount++; + } + }); + } + function countNonWsChars(str) { + let count = 0; + for (let i = 0; i < line1.length; i++) { + if (!isSpace(str.charCodeAt(i))) { + count++; + } + } + return count; + } + const longerLineLength = countNonWsChars(line1.length > line2.length ? line1 : line2); + const r = commonNonSpaceCharCount / longerLineLength > 0.6 && longerLineLength > 10; + return r; +} +function joinCloseConsecutiveMoves(moves) { + if (moves.length === 0) { + return moves; + } + moves.sort(compareBy(m => m.original.startLineNumber, numberComparator)); + const result = [moves[0]]; + for (let i = 1; i < moves.length; i++) { + const last = result[result.length - 1]; + const current = moves[i]; + const originalDist = current.original.startLineNumber - last.original.endLineNumberExclusive; + const modifiedDist = current.modified.startLineNumber - last.modified.endLineNumberExclusive; + const currentMoveAfterLast = originalDist >= 0 && modifiedDist >= 0; + if (currentMoveAfterLast && originalDist + modifiedDist <= 2) { + result[result.length - 1] = last.join(current); + continue; + } + result.push(current); + } + return result; +} +function removeMovesInSameDiff(changes, moves) { + const changesMonotonous = new MonotonousArray(changes); + moves = moves.filter(m => { + const diffBeforeEndOfMoveOriginal = changesMonotonous.findLastMonotonous(c => c.original.startLineNumber < m.original.endLineNumberExclusive) + || new LineRangeMapping(new LineRange(1, 1), new LineRange(1, 1)); + const diffBeforeEndOfMoveModified = findLastMonotonous(changes, c => c.modified.startLineNumber < m.modified.endLineNumberExclusive); + const differentDiffs = diffBeforeEndOfMoveOriginal !== diffBeforeEndOfMoveModified; + return differentDiffs; + }); + return moves; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) { + let result = sequenceDiffs; + result = joinSequenceDiffsByShifting(sequence1, sequence2, result); + // Sometimes, calling this function twice improves the result. + // Uncomment the second invocation and run the tests to see the difference. + result = joinSequenceDiffsByShifting(sequence1, sequence2, result); + result = shiftSequenceDiffs(sequence1, sequence2, result); + return result; +} +/** + * This function fixes issues like this: + * ``` + * import { Baz, Bar } from "foo"; + * ``` + * <-> + * ``` + * import { Baz, Bar, Foo } from "foo"; + * ``` + * Computed diff: [ {Add "," after Bar}, {Add "Foo " after space} } + * Improved diff: [{Add ", Foo" after Bar}] + */ +function joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) { + if (sequenceDiffs.length === 0) { + return sequenceDiffs; + } + const result = []; + result.push(sequenceDiffs[0]); + // First move them all to the left as much as possible and join them if possible + for (let i = 1; i < sequenceDiffs.length; i++) { + const prevResult = result[result.length - 1]; + let cur = sequenceDiffs[i]; + if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) { + const length = cur.seq1Range.start - prevResult.seq1Range.endExclusive; + let d; + for (d = 1; d <= length; d++) { + if (sequence1.getElement(cur.seq1Range.start - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) || + sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive - d)) { + break; + } + } + d--; + if (d === length) { + // Merge previous and current diff + result[result.length - 1] = new SequenceDiff(new OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length), new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length)); + continue; + } + cur = cur.delta(-d); + } + result.push(cur); + } + const result2 = []; + // Then move them all to the right and join them again if possible + for (let i = 0; i < result.length - 1; i++) { + const nextResult = result[i + 1]; + let cur = result[i]; + if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) { + const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive; + let d; + for (d = 0; d < length; d++) { + if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive + d) || + !sequence2.isStronglyEqual(cur.seq2Range.start + d, cur.seq2Range.endExclusive + d)) { + break; + } + } + if (d === length) { + // Merge previous and current diff, write to result! + result[i + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive), new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive)); + continue; + } + if (d > 0) { + cur = cur.delta(d); + } + } + result2.push(cur); + } + if (result.length > 0) { + result2.push(result[result.length - 1]); + } + return result2; +} +// align character level diffs at whitespace characters +// import { IBar } from "foo"; +// import { I[Arr, I]Bar } from "foo"; +// -> +// import { [IArr, ]IBar } from "foo"; +// import { ITransaction, observableValue, transaction } from 'vs/base/common/observable'; +// import { ITransaction, observable[FromEvent, observable]Value, transaction } from 'vs/base/common/observable'; +// -> +// import { ITransaction, [observableFromEvent, ]observableValue, transaction } from 'vs/base/common/observable'; +// collectBrackets(level + 1, levelPerBracketType); +// collectBrackets(level + 1, levelPerBracket[ + 1, levelPerBracket]Type); +// -> +// collectBrackets(level + 1, [levelPerBracket + 1, ]levelPerBracketType); +function shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) { + if (!sequence1.getBoundaryScore || !sequence2.getBoundaryScore) { + return sequenceDiffs; + } + for (let i = 0; i < sequenceDiffs.length; i++) { + const prevDiff = (i > 0 ? sequenceDiffs[i - 1] : undefined); + const diff = sequenceDiffs[i]; + const nextDiff = (i + 1 < sequenceDiffs.length ? sequenceDiffs[i + 1] : undefined); + const seq1ValidRange = new OffsetRange(prevDiff ? prevDiff.seq1Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq1Range.start - 1 : sequence1.length); + const seq2ValidRange = new OffsetRange(prevDiff ? prevDiff.seq2Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq2Range.start - 1 : sequence2.length); + if (diff.seq1Range.isEmpty) { + sequenceDiffs[i] = shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange); + } + else if (diff.seq2Range.isEmpty) { + sequenceDiffs[i] = shiftDiffToBetterPosition(diff.swap(), sequence2, sequence1, seq2ValidRange, seq1ValidRange).swap(); + } + } + return sequenceDiffs; +} +function shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange) { + const maxShiftLimit = 100; // To prevent performance issues + // don't touch previous or next! + let deltaBefore = 1; + while (diff.seq1Range.start - deltaBefore >= seq1ValidRange.start && + diff.seq2Range.start - deltaBefore >= seq2ValidRange.start && + sequence2.isStronglyEqual(diff.seq2Range.start - deltaBefore, diff.seq2Range.endExclusive - deltaBefore) && deltaBefore < maxShiftLimit) { + deltaBefore++; + } + deltaBefore--; + let deltaAfter = 0; + while (diff.seq1Range.start + deltaAfter < seq1ValidRange.endExclusive && + diff.seq2Range.endExclusive + deltaAfter < seq2ValidRange.endExclusive && + sequence2.isStronglyEqual(diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter) && deltaAfter < maxShiftLimit) { + deltaAfter++; + } + if (deltaBefore === 0 && deltaAfter === 0) { + return diff; + } + // Visualize `[sequence1.text, diff.seq1Range.start + deltaAfter]` + // and `[sequence2.text, diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter]` + let bestDelta = 0; + let bestScore = -1; + // find best scored delta + for (let delta = -deltaBefore; delta <= deltaAfter; delta++) { + const seq2OffsetStart = diff.seq2Range.start + delta; + const seq2OffsetEndExclusive = diff.seq2Range.endExclusive + delta; + const seq1Offset = diff.seq1Range.start + delta; + const score = sequence1.getBoundaryScore(seq1Offset) + sequence2.getBoundaryScore(seq2OffsetStart) + sequence2.getBoundaryScore(seq2OffsetEndExclusive); + if (score > bestScore) { + bestScore = score; + bestDelta = delta; + } + } + return diff.delta(bestDelta); +} +function removeShortMatches(sequence1, sequence2, sequenceDiffs) { + const result = []; + for (const s of sequenceDiffs) { + const last = result[result.length - 1]; + if (!last) { + result.push(s); + continue; + } + if (s.seq1Range.start - last.seq1Range.endExclusive <= 2 || s.seq2Range.start - last.seq2Range.endExclusive <= 2) { + result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range)); + } + else { + result.push(s); + } + } + return result; +} +function extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequenceDiffs) { + const equalMappings = SequenceDiff.invert(sequenceDiffs, sequence1.length); + const additional = []; + let lastPoint = new OffsetPair(0, 0); + function scanWord(pair, equalMapping) { + if (pair.offset1 < lastPoint.offset1 || pair.offset2 < lastPoint.offset2) { + return; + } + const w1 = sequence1.findWordContaining(pair.offset1); + const w2 = sequence2.findWordContaining(pair.offset2); + if (!w1 || !w2) { + return; + } + let w = new SequenceDiff(w1, w2); + const equalPart = w.intersect(equalMapping); + let equalChars1 = equalPart.seq1Range.length; + let equalChars2 = equalPart.seq2Range.length; + // The words do not touch previous equals mappings, as we would have processed them already. + // But they might touch the next ones. + while (equalMappings.length > 0) { + const next = equalMappings[0]; + const intersects = next.seq1Range.intersects(w.seq1Range) || next.seq2Range.intersects(w.seq2Range); + if (!intersects) { + break; + } + const v1 = sequence1.findWordContaining(next.seq1Range.start); + const v2 = sequence2.findWordContaining(next.seq2Range.start); + // Because there is an intersection, we know that the words are not empty. + const v = new SequenceDiff(v1, v2); + const equalPart = v.intersect(next); + equalChars1 += equalPart.seq1Range.length; + equalChars2 += equalPart.seq2Range.length; + w = w.join(v); + if (w.seq1Range.endExclusive >= next.seq1Range.endExclusive) { + // The word extends beyond the next equal mapping. + equalMappings.shift(); + } + else { + break; + } + } + if (equalChars1 + equalChars2 < (w.seq1Range.length + w.seq2Range.length) * 2 / 3) { + additional.push(w); + } + lastPoint = w.getEndExclusives(); + } + while (equalMappings.length > 0) { + const next = equalMappings.shift(); + if (next.seq1Range.isEmpty) { + continue; + } + scanWord(next.getStarts(), next); + // The equal parts are not empty, so -1 gives us a character that is equal in both parts. + scanWord(next.getEndExclusives().delta(-1), next); + } + const merged = mergeSequenceDiffs(sequenceDiffs, additional); + return merged; +} +function mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) { + const result = []; + while (sequenceDiffs1.length > 0 || sequenceDiffs2.length > 0) { + const sd1 = sequenceDiffs1[0]; + const sd2 = sequenceDiffs2[0]; + let next; + if (sd1 && (!sd2 || sd1.seq1Range.start < sd2.seq1Range.start)) { + next = sequenceDiffs1.shift(); + } + else { + next = sequenceDiffs2.shift(); + } + if (result.length > 0 && result[result.length - 1].seq1Range.endExclusive >= next.seq1Range.start) { + result[result.length - 1] = result[result.length - 1].join(next); + } + else { + result.push(next); + } + } + return result; +} +function removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2, sequenceDiffs) { + let diffs = sequenceDiffs; + if (diffs.length === 0) { + return diffs; + } + let counter = 0; + let shouldRepeat; + do { + shouldRepeat = false; + const result = [ + diffs[0] + ]; + for (let i = 1; i < diffs.length; i++) { + const cur = diffs[i]; + const lastResult = result[result.length - 1]; + function shouldJoinDiffs(before, after) { + const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start); + const unchangedText = sequence1.getText(unchangedRange); + const unchangedTextWithoutWs = unchangedText.replace(/\s/g, ''); + if (unchangedTextWithoutWs.length <= 4 + && (before.seq1Range.length + before.seq2Range.length > 5 || after.seq1Range.length + after.seq2Range.length > 5)) { + return true; + } + return false; + } + const shouldJoin = shouldJoinDiffs(lastResult, cur); + if (shouldJoin) { + shouldRepeat = true; + result[result.length - 1] = result[result.length - 1].join(cur); + } + else { + result.push(cur); + } + } + diffs = result; + } while (counter++ < 10 && shouldRepeat); + return diffs; +} +function removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence2, sequenceDiffs) { + let diffs = sequenceDiffs; + if (diffs.length === 0) { + return diffs; + } + let counter = 0; + let shouldRepeat; + do { + shouldRepeat = false; + const result = [ + diffs[0] + ]; + for (let i = 1; i < diffs.length; i++) { + const cur = diffs[i]; + const lastResult = result[result.length - 1]; + function shouldJoinDiffs(before, after) { + const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start); + const unchangedLineCount = sequence1.countLinesIn(unchangedRange); + if (unchangedLineCount > 5 || unchangedRange.length > 500) { + return false; + } + const unchangedText = sequence1.getText(unchangedRange).trim(); + if (unchangedText.length > 20 || unchangedText.split(/\r\n|\r|\n/).length > 1) { + return false; + } + const beforeLineCount1 = sequence1.countLinesIn(before.seq1Range); + const beforeSeq1Length = before.seq1Range.length; + const beforeLineCount2 = sequence2.countLinesIn(before.seq2Range); + const beforeSeq2Length = before.seq2Range.length; + const afterLineCount1 = sequence1.countLinesIn(after.seq1Range); + const afterSeq1Length = after.seq1Range.length; + const afterLineCount2 = sequence2.countLinesIn(after.seq2Range); + const afterSeq2Length = after.seq2Range.length; + // TODO: Maybe a neural net can be used to derive the result from these numbers + const max = 2 * 40 + 50; + function cap(v) { + return Math.min(v, max); + } + if (Math.pow(Math.pow(cap(beforeLineCount1 * 40 + beforeSeq1Length), 1.5) + Math.pow(cap(beforeLineCount2 * 40 + beforeSeq2Length), 1.5), 1.5) + + Math.pow(Math.pow(cap(afterLineCount1 * 40 + afterSeq1Length), 1.5) + Math.pow(cap(afterLineCount2 * 40 + afterSeq2Length), 1.5), 1.5) > ((max ** 1.5) ** 1.5) * 1.3) { + return true; + } + return false; + } + const shouldJoin = shouldJoinDiffs(lastResult, cur); + if (shouldJoin) { + shouldRepeat = true; + result[result.length - 1] = result[result.length - 1].join(cur); + } + else { + result.push(cur); + } + } + diffs = result; + } while (counter++ < 10 && shouldRepeat); + const newDiffs = []; + // Remove short suffixes/prefixes + forEachWithNeighbors(diffs, (prev, cur, next) => { + let newDiff = cur; + function shouldMarkAsChanged(text) { + return text.length > 0 && text.trim().length <= 3 && cur.seq1Range.length + cur.seq2Range.length > 100; + } + const fullRange1 = sequence1.extendToFullLines(cur.seq1Range); + const prefix = sequence1.getText(new OffsetRange(fullRange1.start, cur.seq1Range.start)); + if (shouldMarkAsChanged(prefix)) { + newDiff = newDiff.deltaStart(-prefix.length); + } + const suffix = sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive, fullRange1.endExclusive)); + if (shouldMarkAsChanged(suffix)) { + newDiff = newDiff.deltaEnd(suffix.length); + } + const availableSpace = SequenceDiff.fromOffsetPairs(prev ? prev.getEndExclusives() : OffsetPair.zero, next ? next.getStarts() : OffsetPair.max); + const result = newDiff.intersect(availableSpace); + if (newDiffs.length > 0 && result.getStarts().equals(newDiffs[newDiffs.length - 1].getEndExclusives())) { + newDiffs[newDiffs.length - 1] = newDiffs[newDiffs.length - 1].join(result); + } + else { + newDiffs.push(result); + } + }); + return newDiffs; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LineSequence { + constructor(trimmedHash, lines) { + this.trimmedHash = trimmedHash; + this.lines = lines; + } + getElement(offset) { + return this.trimmedHash[offset]; + } + get length() { + return this.trimmedHash.length; + } + getBoundaryScore(length) { + const indentationBefore = length === 0 ? 0 : getIndentation(this.lines[length - 1]); + const indentationAfter = length === this.lines.length ? 0 : getIndentation(this.lines[length]); + return 1000 - (indentationBefore + indentationAfter); + } + getText(range) { + return this.lines.slice(range.start, range.endExclusive).join('\n'); + } + isStronglyEqual(offset1, offset2) { + return this.lines[offset1] === this.lines[offset2]; + } +} +function getIndentation(str) { + let i = 0; + while (i < str.length && (str.charCodeAt(i) === 32 /* CharCode.Space */ || str.charCodeAt(i) === 9 /* CharCode.Tab */)) { + i++; + } + return i; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class DefaultLinesDiffComputer { + constructor() { + this.dynamicProgrammingDiffing = new DynamicProgrammingDiffing(); + this.myersDiffingAlgorithm = new MyersDiffAlgorithm(); + } + computeDiff(originalLines, modifiedLines, options) { + if (originalLines.length <= 1 && equals$1(originalLines, modifiedLines, (a, b) => a === b)) { + return new LinesDiff([], [], false); + } + if (originalLines.length === 1 && originalLines[0].length === 0 || modifiedLines.length === 1 && modifiedLines[0].length === 0) { + return new LinesDiff([ + new DetailedLineRangeMapping(new LineRange(1, originalLines.length + 1), new LineRange(1, modifiedLines.length + 1), [ + new RangeMapping(new Range$b(1, 1, originalLines.length, originalLines[originalLines.length - 1].length + 1), new Range$b(1, 1, modifiedLines.length, modifiedLines[modifiedLines.length - 1].length + 1)) + ]) + ], [], false); + } + const timeout = options.maxComputationTimeMs === 0 ? InfiniteTimeout.instance : new DateTimeout(options.maxComputationTimeMs); + const considerWhitespaceChanges = !options.ignoreTrimWhitespace; + const perfectHashes = new Map(); + function getOrCreateHash(text) { + let hash = perfectHashes.get(text); + if (hash === undefined) { + hash = perfectHashes.size; + perfectHashes.set(text, hash); + } + return hash; + } + const originalLinesHashes = originalLines.map((l) => getOrCreateHash(l.trim())); + const modifiedLinesHashes = modifiedLines.map((l) => getOrCreateHash(l.trim())); + const sequence1 = new LineSequence(originalLinesHashes, originalLines); + const sequence2 = new LineSequence(modifiedLinesHashes, modifiedLines); + const lineAlignmentResult = (() => { + if (sequence1.length + sequence2.length < 1700) { + // Use the improved algorithm for small files + return this.dynamicProgrammingDiffing.compute(sequence1, sequence2, timeout, (offset1, offset2) => originalLines[offset1] === modifiedLines[offset2] + ? modifiedLines[offset2].length === 0 + ? 0.1 + : 1 + Math.log(1 + modifiedLines[offset2].length) + : 0.99); + } + return this.myersDiffingAlgorithm.compute(sequence1, sequence2, timeout); + })(); + let lineAlignments = lineAlignmentResult.diffs; + let hitTimeout = lineAlignmentResult.hitTimeout; + lineAlignments = optimizeSequenceDiffs(sequence1, sequence2, lineAlignments); + lineAlignments = removeVeryShortMatchingLinesBetweenDiffs(sequence1, sequence2, lineAlignments); + const alignments = []; + const scanForWhitespaceChanges = (equalLinesCount) => { + if (!considerWhitespaceChanges) { + return; + } + for (let i = 0; i < equalLinesCount; i++) { + const seq1Offset = seq1LastStart + i; + const seq2Offset = seq2LastStart + i; + if (originalLines[seq1Offset] !== modifiedLines[seq2Offset]) { + // This is because of whitespace changes, diff these lines + const characterDiffs = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(new OffsetRange(seq1Offset, seq1Offset + 1), new OffsetRange(seq2Offset, seq2Offset + 1)), timeout, considerWhitespaceChanges); + for (const a of characterDiffs.mappings) { + alignments.push(a); + } + if (characterDiffs.hitTimeout) { + hitTimeout = true; + } + } + } + }; + let seq1LastStart = 0; + let seq2LastStart = 0; + for (const diff of lineAlignments) { + assertFn(() => diff.seq1Range.start - seq1LastStart === diff.seq2Range.start - seq2LastStart); + const equalLinesCount = diff.seq1Range.start - seq1LastStart; + scanForWhitespaceChanges(equalLinesCount); + seq1LastStart = diff.seq1Range.endExclusive; + seq2LastStart = diff.seq2Range.endExclusive; + const characterDiffs = this.refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges); + if (characterDiffs.hitTimeout) { + hitTimeout = true; + } + for (const a of characterDiffs.mappings) { + alignments.push(a); + } + } + scanForWhitespaceChanges(originalLines.length - seq1LastStart); + const changes = lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines); + let moves = []; + if (options.computeMoves) { + moves = this.computeMoves(changes, originalLines, modifiedLines, originalLinesHashes, modifiedLinesHashes, timeout, considerWhitespaceChanges); + } + // Make sure all ranges are valid + assertFn(() => { + function validatePosition(pos, lines) { + if (pos.lineNumber < 1 || pos.lineNumber > lines.length) { + return false; + } + const line = lines[pos.lineNumber - 1]; + if (pos.column < 1 || pos.column > line.length + 1) { + return false; + } + return true; + } + function validateRange(range, lines) { + if (range.startLineNumber < 1 || range.startLineNumber > lines.length + 1) { + return false; + } + if (range.endLineNumberExclusive < 1 || range.endLineNumberExclusive > lines.length + 1) { + return false; + } + return true; + } + for (const c of changes) { + if (!c.innerChanges) { + return false; + } + for (const ic of c.innerChanges) { + const valid = validatePosition(ic.modifiedRange.getStartPosition(), modifiedLines) && validatePosition(ic.modifiedRange.getEndPosition(), modifiedLines) && + validatePosition(ic.originalRange.getStartPosition(), originalLines) && validatePosition(ic.originalRange.getEndPosition(), originalLines); + if (!valid) { + return false; + } + } + if (!validateRange(c.modified, modifiedLines) || !validateRange(c.original, originalLines)) { + return false; + } + } + return true; + }); + return new LinesDiff(changes, moves, hitTimeout); + } + computeMoves(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout, considerWhitespaceChanges) { + const moves = computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout); + const movesWithDiffs = moves.map(m => { + const moveChanges = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(m.original.toOffsetRange(), m.modified.toOffsetRange()), timeout, considerWhitespaceChanges); + const mappings = lineRangeMappingFromRangeMappings(moveChanges.mappings, originalLines, modifiedLines, true); + return new MovedText(m, mappings); + }); + return movesWithDiffs; + } + refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges) { + const lineRangeMapping = toLineRangeMapping(diff); + const rangeMapping = lineRangeMapping.toRangeMapping2(originalLines, modifiedLines); + const slice1 = new LinesSliceCharSequence(originalLines, rangeMapping.originalRange, considerWhitespaceChanges); + const slice2 = new LinesSliceCharSequence(modifiedLines, rangeMapping.modifiedRange, considerWhitespaceChanges); + const diffResult = slice1.length + slice2.length < 500 + ? this.dynamicProgrammingDiffing.compute(slice1, slice2, timeout) + : this.myersDiffingAlgorithm.compute(slice1, slice2, timeout); + let diffs = diffResult.diffs; + diffs = optimizeSequenceDiffs(slice1, slice2, diffs); + diffs = extendDiffsToEntireWordIfAppropriate(slice1, slice2, diffs); + diffs = removeShortMatches(slice1, slice2, diffs); + diffs = removeVeryShortMatchingTextBetweenLongDiffs(slice1, slice2, diffs); + const result = diffs.map((d) => new RangeMapping(slice1.translateRange(d.seq1Range), slice2.translateRange(d.seq2Range))); + // Assert: result applied on original should be the same as diff applied to original + return { + mappings: result, + hitTimeout: diffResult.hitTimeout, + }; + } +} +function lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines, dontAssertStartLine = false) { + const changes = []; + for (const g of groupAdjacentBy(alignments.map(a => getLineRangeMapping(a, originalLines, modifiedLines)), (a1, a2) => a1.original.overlapOrTouch(a2.original) + || a1.modified.overlapOrTouch(a2.modified))) { + const first = g[0]; + const last = g[g.length - 1]; + changes.push(new DetailedLineRangeMapping(first.original.join(last.original), first.modified.join(last.modified), g.map(a => a.innerChanges[0]))); + } + assertFn(() => { + if (!dontAssertStartLine && changes.length > 0) { + if (changes[0].modified.startLineNumber !== changes[0].original.startLineNumber) { + return false; + } + if (modifiedLines.length - changes[changes.length - 1].modified.endLineNumberExclusive !== originalLines.length - changes[changes.length - 1].original.endLineNumberExclusive) { + return false; + } + } + return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive && + // There has to be an unchanged line in between (otherwise both diffs should have been joined) + m1.original.endLineNumberExclusive < m2.original.startLineNumber && + m1.modified.endLineNumberExclusive < m2.modified.startLineNumber); + }); + return changes; +} +function getLineRangeMapping(rangeMapping, originalLines, modifiedLines) { + let lineStartDelta = 0; + let lineEndDelta = 0; + // rangeMapping describes the edit that replaces `rangeMapping.originalRange` with `newText := getText(modifiedLines, rangeMapping.modifiedRange)`. + // original: ]xxx \n <- this line is not modified + // modified: ]xx \n + if (rangeMapping.modifiedRange.endColumn === 1 && rangeMapping.originalRange.endColumn === 1 + && rangeMapping.originalRange.startLineNumber + lineStartDelta <= rangeMapping.originalRange.endLineNumber + && rangeMapping.modifiedRange.startLineNumber + lineStartDelta <= rangeMapping.modifiedRange.endLineNumber) { + // We can only do this if the range is not empty yet + lineEndDelta = -1; + } + // original: xxx[ \n <- this line is not modified + // modified: xxx[ \n + if (rangeMapping.modifiedRange.startColumn - 1 >= modifiedLines[rangeMapping.modifiedRange.startLineNumber - 1].length + && rangeMapping.originalRange.startColumn - 1 >= originalLines[rangeMapping.originalRange.startLineNumber - 1].length + && rangeMapping.originalRange.startLineNumber <= rangeMapping.originalRange.endLineNumber + lineEndDelta + && rangeMapping.modifiedRange.startLineNumber <= rangeMapping.modifiedRange.endLineNumber + lineEndDelta) { + // We can only do this if the range is not empty yet + lineStartDelta = 1; + } + const originalLineRange = new LineRange(rangeMapping.originalRange.startLineNumber + lineStartDelta, rangeMapping.originalRange.endLineNumber + 1 + lineEndDelta); + const modifiedLineRange = new LineRange(rangeMapping.modifiedRange.startLineNumber + lineStartDelta, rangeMapping.modifiedRange.endLineNumber + 1 + lineEndDelta); + return new DetailedLineRangeMapping(originalLineRange, modifiedLineRange, [rangeMapping]); +} +function toLineRangeMapping(sequenceDiff) { + return new LineRangeMapping(new LineRange(sequenceDiff.seq1Range.start + 1, sequenceDiff.seq1Range.endExclusive + 1), new LineRange(sequenceDiff.seq2Range.start + 1, sequenceDiff.seq2Range.endExclusive + 1)); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const linesDiffComputers = { + getLegacy: () => new LegacyLinesDiffComputer(), + getDefault: () => new DefaultLinesDiffComputer(), +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function roundFloat(number, decimalPoints) { + const decimal = Math.pow(10, decimalPoints); + return Math.round(number * decimal) / decimal; +} +class RGBA { + constructor(r, g, b, a = 1) { + this._rgbaBrand = undefined; + this.r = Math.min(255, Math.max(0, r)) | 0; + this.g = Math.min(255, Math.max(0, g)) | 0; + this.b = Math.min(255, Math.max(0, b)) | 0; + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.r === b.r && a.g === b.g && a.b === b.b && a.a === b.a; + } +} +class HSLA { + constructor(h, s, l, a) { + this._hslaBrand = undefined; + this.h = Math.max(Math.min(360, h), 0) | 0; + this.s = roundFloat(Math.max(Math.min(1, s), 0), 3); + this.l = roundFloat(Math.max(Math.min(1, l), 0), 3); + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.h === b.h && a.s === b.s && a.l === b.l && a.a === b.a; + } + /** + * Converts an RGB color value to HSL. Conversion formula + * adapted from http://en.wikipedia.org/wiki/HSL_color_space. + * Assumes r, g, and b are contained in the set [0, 255] and + * returns h in the set [0, 360], s, and l in the set [0, 1]. + */ + static fromRGBA(rgba) { + const r = rgba.r / 255; + const g = rgba.g / 255; + const b = rgba.b / 255; + const a = rgba.a; + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + let s = 0; + const l = (min + max) / 2; + const chroma = max - min; + if (chroma > 0) { + s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1); + switch (max) { + case r: + h = (g - b) / chroma + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / chroma + 2; + break; + case b: + h = (r - g) / chroma + 4; + break; + } + h *= 60; + h = Math.round(h); + } + return new HSLA(h, s, l, a); + } + static _hue2rgb(p, q, t) { + if (t < 0) { + t += 1; + } + if (t > 1) { + t -= 1; + } + if (t < 1 / 6) { + return p + (q - p) * 6 * t; + } + if (t < 1 / 2) { + return q; + } + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; + } + return p; + } + /** + * Converts an HSL color value to RGB. Conversion formula + * adapted from http://en.wikipedia.org/wiki/HSL_color_space. + * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and + * returns r, g, and b in the set [0, 255]. + */ + static toRGBA(hsla) { + const h = hsla.h / 360; + const { s, l, a } = hsla; + let r, g, b; + if (s === 0) { + r = g = b = l; // achromatic + } + else { + const q = l < 0.5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + r = HSLA._hue2rgb(p, q, h + 1 / 3); + g = HSLA._hue2rgb(p, q, h); + b = HSLA._hue2rgb(p, q, h - 1 / 3); + } + return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a); + } +} +class HSVA { + constructor(h, s, v, a) { + this._hsvaBrand = undefined; + this.h = Math.max(Math.min(360, h), 0) | 0; + this.s = roundFloat(Math.max(Math.min(1, s), 0), 3); + this.v = roundFloat(Math.max(Math.min(1, v), 0), 3); + this.a = roundFloat(Math.max(Math.min(1, a), 0), 3); + } + static equals(a, b) { + return a.h === b.h && a.s === b.s && a.v === b.v && a.a === b.a; + } + // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm + static fromRGBA(rgba) { + const r = rgba.r / 255; + const g = rgba.g / 255; + const b = rgba.b / 255; + const cmax = Math.max(r, g, b); + const cmin = Math.min(r, g, b); + const delta = cmax - cmin; + const s = cmax === 0 ? 0 : (delta / cmax); + let m; + if (delta === 0) { + m = 0; + } + else if (cmax === r) { + m = ((((g - b) / delta) % 6) + 6) % 6; + } + else if (cmax === g) { + m = ((b - r) / delta) + 2; + } + else { + m = ((r - g) / delta) + 4; + } + return new HSVA(Math.round(m * 60), s, cmax, rgba.a); + } + // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm + static toRGBA(hsva) { + const { h, s, v, a } = hsva; + const c = v * s; + const x = c * (1 - Math.abs((h / 60) % 2 - 1)); + const m = v - c; + let [r, g, b] = [0, 0, 0]; + if (h < 60) { + r = c; + g = x; + } + else if (h < 120) { + r = x; + g = c; + } + else if (h < 180) { + g = c; + b = x; + } + else if (h < 240) { + g = x; + b = c; + } + else if (h < 300) { + r = x; + b = c; + } + else if (h <= 360) { + r = c; + b = x; + } + r = Math.round((r + m) * 255); + g = Math.round((g + m) * 255); + b = Math.round((b + m) * 255); + return new RGBA(r, g, b, a); + } +} +let Color$1 = class Color { + static fromHex(hex) { + return Color.Format.CSS.parseHex(hex) || Color.red; + } + static equals(a, b) { + if (!a && !b) { + return true; + } + if (!a || !b) { + return false; + } + return a.equals(b); + } + get hsla() { + if (this._hsla) { + return this._hsla; + } + else { + return HSLA.fromRGBA(this.rgba); + } + } + get hsva() { + if (this._hsva) { + return this._hsva; + } + return HSVA.fromRGBA(this.rgba); + } + constructor(arg) { + if (!arg) { + throw new Error('Color needs a value'); + } + else if (arg instanceof RGBA) { + this.rgba = arg; + } + else if (arg instanceof HSLA) { + this._hsla = arg; + this.rgba = HSLA.toRGBA(arg); + } + else if (arg instanceof HSVA) { + this._hsva = arg; + this.rgba = HSVA.toRGBA(arg); + } + else { + throw new Error('Invalid color ctor argument'); + } + } + equals(other) { + return !!other && RGBA.equals(this.rgba, other.rgba) && HSLA.equals(this.hsla, other.hsla) && HSVA.equals(this.hsva, other.hsva); + } + /** + * http://www.w3.org/TR/WCAG20/#relativeluminancedef + * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white. + */ + getRelativeLuminance() { + const R = Color._relativeLuminanceForComponent(this.rgba.r); + const G = Color._relativeLuminanceForComponent(this.rgba.g); + const B = Color._relativeLuminanceForComponent(this.rgba.b); + const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B; + return roundFloat(luminance, 4); + } + static _relativeLuminanceForComponent(color) { + const c = color / 255; + return (c <= 0.03928) ? c / 12.92 : Math.pow(((c + 0.055) / 1.055), 2.4); + } + /** + * http://24ways.org/2010/calculating-color-contrast + * Return 'true' if lighter color otherwise 'false' + */ + isLighter() { + const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1000; + return yiq >= 128; + } + isLighterThan(another) { + const lum1 = this.getRelativeLuminance(); + const lum2 = another.getRelativeLuminance(); + return lum1 > lum2; + } + isDarkerThan(another) { + const lum1 = this.getRelativeLuminance(); + const lum2 = another.getRelativeLuminance(); + return lum1 < lum2; + } + lighten(factor) { + return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor, this.hsla.a)); + } + darken(factor) { + return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor, this.hsla.a)); + } + transparent(factor) { + const { r, g, b, a } = this.rgba; + return new Color(new RGBA(r, g, b, a * factor)); + } + isTransparent() { + return this.rgba.a === 0; + } + isOpaque() { + return this.rgba.a === 1; + } + opposite() { + return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a)); + } + makeOpaque(opaqueBackground) { + if (this.isOpaque() || opaqueBackground.rgba.a !== 1) { + // only allow to blend onto a non-opaque color onto a opaque color + return this; + } + const { r, g, b, a } = this.rgba; + // https://stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity + return new Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1)); + } + toString() { + if (!this._toString) { + this._toString = Color.Format.CSS.format(this); + } + return this._toString; + } + static getLighterColor(of, relative, factor) { + if (of.isLighterThan(relative)) { + return of; + } + factor = factor ? factor : 0.5; + const lum1 = of.getRelativeLuminance(); + const lum2 = relative.getRelativeLuminance(); + factor = factor * (lum2 - lum1) / lum2; + return of.lighten(factor); + } + static getDarkerColor(of, relative, factor) { + if (of.isDarkerThan(relative)) { + return of; + } + factor = factor ? factor : 0.5; + const lum1 = of.getRelativeLuminance(); + const lum2 = relative.getRelativeLuminance(); + factor = factor * (lum1 - lum2) / lum1; + return of.darken(factor); + } + static { this.white = new Color(new RGBA(255, 255, 255, 1)); } + static { this.black = new Color(new RGBA(0, 0, 0, 1)); } + static { this.red = new Color(new RGBA(255, 0, 0, 1)); } + static { this.blue = new Color(new RGBA(0, 0, 255, 1)); } + static { this.green = new Color(new RGBA(0, 255, 0, 1)); } + static { this.cyan = new Color(new RGBA(0, 255, 255, 1)); } + static { this.lightgrey = new Color(new RGBA(211, 211, 211, 1)); } + static { this.transparent = new Color(new RGBA(0, 0, 0, 0)); } +}; +(function (Color) { + (function (Format) { + (function (CSS) { + function formatRGB(color) { + if (color.rgba.a === 1) { + return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`; + } + return Color.Format.CSS.formatRGBA(color); + } + CSS.formatRGB = formatRGB; + function formatRGBA(color) { + return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+(color.rgba.a).toFixed(2)})`; + } + CSS.formatRGBA = formatRGBA; + function formatHSL(color) { + if (color.hsla.a === 1) { + return `hsl(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%)`; + } + return Color.Format.CSS.formatHSLA(color); + } + CSS.formatHSL = formatHSL; + function formatHSLA(color) { + return `hsla(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%, ${color.hsla.a.toFixed(2)})`; + } + CSS.formatHSLA = formatHSLA; + function _toTwoDigitHex(n) { + const r = n.toString(16); + return r.length !== 2 ? '0' + r : r; + } + /** + * Formats the color as #RRGGBB + */ + function formatHex(color) { + return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`; + } + CSS.formatHex = formatHex; + /** + * Formats the color as #RRGGBBAA + * If 'compact' is set, colors without transparancy will be printed as #RRGGBB + */ + function formatHexA(color, compact = false) { + if (compact && color.rgba.a === 1) { + return Color.Format.CSS.formatHex(color); + } + return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`; + } + CSS.formatHexA = formatHexA; + /** + * The default format will use HEX if opaque and RGBA otherwise. + */ + function format(color) { + if (color.isOpaque()) { + return Color.Format.CSS.formatHex(color); + } + return Color.Format.CSS.formatRGBA(color); + } + CSS.format = format; + /** + * Converts an Hex color value to a Color. + * returns r, g, and b are contained in the set [0, 255] + * @param hex string (#RGB, #RGBA, #RRGGBB or #RRGGBBAA). + */ + function parseHex(hex) { + const length = hex.length; + if (length === 0) { + // Invalid color + return null; + } + if (hex.charCodeAt(0) !== 35 /* CharCode.Hash */) { + // Does not begin with a # + return null; + } + if (length === 7) { + // #RRGGBB format + const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2)); + const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4)); + const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6)); + return new Color(new RGBA(r, g, b, 1)); + } + if (length === 9) { + // #RRGGBBAA format + const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2)); + const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4)); + const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6)); + const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8)); + return new Color(new RGBA(r, g, b, a / 255)); + } + if (length === 4) { + // #RGB format + const r = _parseHexDigit(hex.charCodeAt(1)); + const g = _parseHexDigit(hex.charCodeAt(2)); + const b = _parseHexDigit(hex.charCodeAt(3)); + return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b)); + } + if (length === 5) { + // #RGBA format + const r = _parseHexDigit(hex.charCodeAt(1)); + const g = _parseHexDigit(hex.charCodeAt(2)); + const b = _parseHexDigit(hex.charCodeAt(3)); + const a = _parseHexDigit(hex.charCodeAt(4)); + return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255)); + } + // Invalid color + return null; + } + CSS.parseHex = parseHex; + function _parseHexDigit(charCode) { + switch (charCode) { + case 48 /* CharCode.Digit0 */: return 0; + case 49 /* CharCode.Digit1 */: return 1; + case 50 /* CharCode.Digit2 */: return 2; + case 51 /* CharCode.Digit3 */: return 3; + case 52 /* CharCode.Digit4 */: return 4; + case 53 /* CharCode.Digit5 */: return 5; + case 54 /* CharCode.Digit6 */: return 6; + case 55 /* CharCode.Digit7 */: return 7; + case 56 /* CharCode.Digit8 */: return 8; + case 57 /* CharCode.Digit9 */: return 9; + case 97 /* CharCode.a */: return 10; + case 65 /* CharCode.A */: return 10; + case 98 /* CharCode.b */: return 11; + case 66 /* CharCode.B */: return 11; + case 99 /* CharCode.c */: return 12; + case 67 /* CharCode.C */: return 12; + case 100 /* CharCode.d */: return 13; + case 68 /* CharCode.D */: return 13; + case 101 /* CharCode.e */: return 14; + case 69 /* CharCode.E */: return 14; + case 102 /* CharCode.f */: return 15; + case 70 /* CharCode.F */: return 15; + } + return 0; + } + })(Format.CSS || (Format.CSS = {})); + })(Color.Format || (Color.Format = {})); +})(Color$1 || (Color$1 = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function _parseCaptureGroups(captureGroups) { + const values = []; + for (const captureGroup of captureGroups) { + const parsedNumber = Number(captureGroup); + if (parsedNumber || parsedNumber === 0 && captureGroup.replace(/\s/g, '') !== '') { + values.push(parsedNumber); + } + } + return values; +} +function _toIColor(r, g, b, a) { + return { + red: r / 255, + blue: b / 255, + green: g / 255, + alpha: a + }; +} +function _findRange(model, match) { + const index = match.index; + const length = match[0].length; + if (!index) { + return; + } + const startPosition = model.positionAt(index); + const range = { + startLineNumber: startPosition.lineNumber, + startColumn: startPosition.column, + endLineNumber: startPosition.lineNumber, + endColumn: startPosition.column + length + }; + return range; +} +function _findHexColorInformation(range, hexValue) { + if (!range) { + return; + } + const parsedHexColor = Color$1.Format.CSS.parseHex(hexValue); + if (!parsedHexColor) { + return; + } + return { + range: range, + color: _toIColor(parsedHexColor.rgba.r, parsedHexColor.rgba.g, parsedHexColor.rgba.b, parsedHexColor.rgba.a) + }; +} +function _findRGBColorInformation(range, matches, isAlpha) { + if (!range || matches.length !== 1) { + return; + } + const match = matches[0]; + const captureGroups = match.values(); + const parsedRegex = _parseCaptureGroups(captureGroups); + return { + range: range, + color: _toIColor(parsedRegex[0], parsedRegex[1], parsedRegex[2], isAlpha ? parsedRegex[3] : 1) + }; +} +function _findHSLColorInformation(range, matches, isAlpha) { + if (!range || matches.length !== 1) { + return; + } + const match = matches[0]; + const captureGroups = match.values(); + const parsedRegex = _parseCaptureGroups(captureGroups); + const colorEquivalent = new Color$1(new HSLA(parsedRegex[0], parsedRegex[1] / 100, parsedRegex[2] / 100, isAlpha ? parsedRegex[3] : 1)); + return { + range: range, + color: _toIColor(colorEquivalent.rgba.r, colorEquivalent.rgba.g, colorEquivalent.rgba.b, colorEquivalent.rgba.a) + }; +} +function _findMatches(model, regex) { + if (typeof model === 'string') { + return [...model.matchAll(regex)]; + } + else { + return model.findMatches(regex); + } +} +function computeColors(model) { + const result = []; + // Early validation for RGB and HSL + const initialValidationRegex = /\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm; + const initialValidationMatches = _findMatches(model, initialValidationRegex); + // Potential colors have been found, validate the parameters + if (initialValidationMatches.length > 0) { + for (const initialMatch of initialValidationMatches) { + const initialCaptureGroups = initialMatch.filter(captureGroup => captureGroup !== undefined); + const colorScheme = initialCaptureGroups[1]; + const colorParameters = initialCaptureGroups[2]; + if (!colorParameters) { + continue; + } + let colorInformation; + if (colorScheme === 'rgb') { + const regexParameters = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm; + colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false); + } + else if (colorScheme === 'rgba') { + const regexParameters = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm; + colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true); + } + else if (colorScheme === 'hsl') { + const regexParameters = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm; + colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false); + } + else if (colorScheme === 'hsla') { + const regexParameters = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm; + colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true); + } + else if (colorScheme === '#') { + colorInformation = _findHexColorInformation(_findRange(model, initialMatch), colorScheme + colorParameters); + } + if (colorInformation) { + result.push(colorInformation); + } + } + } + return result; +} +/** + * Returns an array of all default document colors in the provided document + */ +function computeDefaultDocumentColors(model) { + if (!model || typeof model.getValue !== 'function' || typeof model.positionAt !== 'function') { + // Unknown caller! + return []; + } + return computeColors(model); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const markRegex = new RegExp('\\bMARK:\\s*(.*)$', 'd'); +const trimDashesRegex = /^-+|-+$/g; +/** + * Find section headers in the model. + * + * @param model the text model to search in + * @param options options to search with + * @returns an array of section headers + */ +function findSectionHeaders(model, options) { + let headers = []; + if (options.findRegionSectionHeaders && options.foldingRules?.markers) { + const regionHeaders = collectRegionHeaders(model, options); + headers = headers.concat(regionHeaders); + } + if (options.findMarkSectionHeaders) { + const markHeaders = collectMarkHeaders(model); + headers = headers.concat(markHeaders); + } + return headers; +} +function collectRegionHeaders(model, options) { + const regionHeaders = []; + const endLineNumber = model.getLineCount(); + for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + const match = lineContent.match(options.foldingRules.markers.start); + if (match) { + const range = { startLineNumber: lineNumber, startColumn: match[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 }; + if (range.endColumn > range.startColumn) { + const sectionHeader = { + range, + ...getHeaderText(lineContent.substring(match[0].length)), + shouldBeInComments: false + }; + if (sectionHeader.text || sectionHeader.hasSeparatorLine) { + regionHeaders.push(sectionHeader); + } + } + } + } + return regionHeaders; +} +function collectMarkHeaders(model) { + const markHeaders = []; + const endLineNumber = model.getLineCount(); + for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + addMarkHeaderIfFound(lineContent, lineNumber, markHeaders); + } + return markHeaders; +} +function addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) { + markRegex.lastIndex = 0; + const match = markRegex.exec(lineContent); + if (match) { + const column = match.indices[1][0] + 1; + const endColumn = match.indices[1][1] + 1; + const range = { startLineNumber: lineNumber, startColumn: column, endLineNumber: lineNumber, endColumn: endColumn }; + if (range.endColumn > range.startColumn) { + const sectionHeader = { + range, + ...getHeaderText(match[1]), + shouldBeInComments: true + }; + if (sectionHeader.text || sectionHeader.hasSeparatorLine) { + sectionHeaders.push(sectionHeader); + } + } + } +} +function getHeaderText(text) { + text = text.trim(); + const hasSeparatorLine = text.startsWith('-'); + text = text.replace(trimDashesRegex, ''); + return { text, hasSeparatorLine }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * @internal + */ +class MirrorModel extends MirrorTextModel { + get uri() { + return this._uri; + } + get eol() { + return this._eol; + } + getValue() { + return this.getText(); + } + findMatches(regex) { + const matches = []; + for (let i = 0; i < this._lines.length; i++) { + const line = this._lines[i]; + const offsetToAdd = this.offsetAt(new Position$2(i + 1, 1)); + const iteratorOverMatches = line.matchAll(regex); + for (const match of iteratorOverMatches) { + if (match.index || match.index === 0) { + match.index = match.index + offsetToAdd; + } + matches.push(match); + } + } + return matches; + } + getLinesContent() { + return this._lines.slice(0); + } + getLineCount() { + return this._lines.length; + } + getLineContent(lineNumber) { + return this._lines[lineNumber - 1]; + } + getWordAtPosition(position, wordDefinition) { + const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0); + if (wordAtText) { + return new Range$b(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn); + } + return null; + } + words(wordDefinition) { + const lines = this._lines; + const wordenize = this._wordenize.bind(this); + let lineNumber = 0; + let lineText = ''; + let wordRangesIdx = 0; + let wordRanges = []; + return { + *[Symbol.iterator]() { + while (true) { + if (wordRangesIdx < wordRanges.length) { + const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end); + wordRangesIdx += 1; + yield value; + } + else { + if (lineNumber < lines.length) { + lineText = lines[lineNumber]; + wordRanges = wordenize(lineText, wordDefinition); + wordRangesIdx = 0; + lineNumber += 1; + } + else { + break; + } + } + } + } + }; + } + getLineWords(lineNumber, wordDefinition) { + const content = this._lines[lineNumber - 1]; + const ranges = this._wordenize(content, wordDefinition); + const words = []; + for (const range of ranges) { + words.push({ + word: content.substring(range.start, range.end), + startColumn: range.start + 1, + endColumn: range.end + 1 + }); + } + return words; + } + _wordenize(content, wordDefinition) { + const result = []; + let match; + wordDefinition.lastIndex = 0; // reset lastIndex just to be sure + while (match = wordDefinition.exec(content)) { + if (match[0].length === 0) { + // it did match the empty string + break; + } + result.push({ start: match.index, end: match.index + match[0].length }); + } + return result; + } + getValueInRange(range) { + range = this._validateRange(range); + if (range.startLineNumber === range.endLineNumber) { + return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1); + } + const lineEnding = this._eol; + const startLineIndex = range.startLineNumber - 1; + const endLineIndex = range.endLineNumber - 1; + const resultLines = []; + resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1)); + for (let i = startLineIndex + 1; i < endLineIndex; i++) { + resultLines.push(this._lines[i]); + } + resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1)); + return resultLines.join(lineEnding); + } + offsetAt(position) { + position = this._validatePosition(position); + this._ensureLineStarts(); + return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1); + } + positionAt(offset) { + offset = Math.floor(offset); + offset = Math.max(0, offset); + this._ensureLineStarts(); + const out = this._lineStarts.getIndexOf(offset); + const lineLength = this._lines[out.index].length; + // Ensure we return a valid position + return { + lineNumber: 1 + out.index, + column: 1 + Math.min(out.remainder, lineLength) + }; + } + _validateRange(range) { + const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn }); + const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn }); + if (start.lineNumber !== range.startLineNumber + || start.column !== range.startColumn + || end.lineNumber !== range.endLineNumber + || end.column !== range.endColumn) { + return { + startLineNumber: start.lineNumber, + startColumn: start.column, + endLineNumber: end.lineNumber, + endColumn: end.column + }; + } + return range; + } + _validatePosition(position) { + if (!Position$2.isIPosition(position)) { + throw new Error('bad position'); + } + let { lineNumber, column } = position; + let hasChanged = false; + if (lineNumber < 1) { + lineNumber = 1; + column = 1; + hasChanged = true; + } + else if (lineNumber > this._lines.length) { + lineNumber = this._lines.length; + column = this._lines[lineNumber - 1].length + 1; + hasChanged = true; + } + else { + const maxCharacter = this._lines[lineNumber - 1].length + 1; + if (column < 1) { + column = 1; + hasChanged = true; + } + else if (column > maxCharacter) { + column = maxCharacter; + hasChanged = true; + } + } + if (!hasChanged) { + return position; + } + else { + return { lineNumber, column }; + } + } +} +/** + * @internal + */ +class EditorSimpleWorker { + constructor(host, foreignModuleFactory) { + this._host = host; + this._models = Object.create(null); + this._foreignModuleFactory = foreignModuleFactory; + this._foreignModule = null; + } + dispose() { + this._models = Object.create(null); + } + _getModel(uri) { + return this._models[uri]; + } + _getModels() { + const all = []; + Object.keys(this._models).forEach((key) => all.push(this._models[key])); + return all; + } + acceptNewModel(data) { + this._models[data.url] = new MirrorModel(URI$2.parse(data.url), data.lines, data.EOL, data.versionId); + } + acceptModelChanged(strURL, e) { + if (!this._models[strURL]) { + return; + } + const model = this._models[strURL]; + model.onEvents(e); + } + acceptRemovedModel(strURL) { + if (!this._models[strURL]) { + return; + } + delete this._models[strURL]; + } + async computeUnicodeHighlights(url, options, range) { + const model = this._getModel(url); + if (!model) { + return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 }; + } + return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range); + } + async findSectionHeaders(url, options) { + const model = this._getModel(url); + if (!model) { + return []; + } + return findSectionHeaders(model, options); + } + // ---- BEGIN diff -------------------------------------------------------------------------- + async computeDiff(originalUrl, modifiedUrl, options, algorithm) { + const original = this._getModel(originalUrl); + const modified = this._getModel(modifiedUrl); + if (!original || !modified) { + return null; + } + const result = EditorSimpleWorker.computeDiff(original, modified, options, algorithm); + return result; + } + static computeDiff(originalTextModel, modifiedTextModel, options, algorithm) { + const diffAlgorithm = algorithm === 'advanced' ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy(); + const originalLines = originalTextModel.getLinesContent(); + const modifiedLines = modifiedTextModel.getLinesContent(); + const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options); + const identical = (result.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel)); + function getLineChanges(changes) { + return changes.map(m => ([m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, m.innerChanges?.map(m => [ + m.originalRange.startLineNumber, + m.originalRange.startColumn, + m.originalRange.endLineNumber, + m.originalRange.endColumn, + m.modifiedRange.startLineNumber, + m.modifiedRange.startColumn, + m.modifiedRange.endLineNumber, + m.modifiedRange.endColumn, + ])])); + } + return { + identical, + quitEarly: result.hitTimeout, + changes: getLineChanges(result.changes), + moves: result.moves.map(m => ([ + m.lineRangeMapping.original.startLineNumber, + m.lineRangeMapping.original.endLineNumberExclusive, + m.lineRangeMapping.modified.startLineNumber, + m.lineRangeMapping.modified.endLineNumberExclusive, + getLineChanges(m.changes) + ])), + }; + } + static _modelsAreIdentical(original, modified) { + const originalLineCount = original.getLineCount(); + const modifiedLineCount = modified.getLineCount(); + if (originalLineCount !== modifiedLineCount) { + return false; + } + for (let line = 1; line <= originalLineCount; line++) { + const originalLine = original.getLineContent(line); + const modifiedLine = modified.getLineContent(line); + if (originalLine !== modifiedLine) { + return false; + } + } + return true; + } + // ---- END diff -------------------------------------------------------------------------- + // ---- BEGIN minimal edits --------------------------------------------------------------- + static { this._diffLimit = 100000; } + async computeMoreMinimalEdits(modelUrl, edits, pretty) { + const model = this._getModel(modelUrl); + if (!model) { + return edits; + } + const result = []; + let lastEol = undefined; + edits = edits.slice(0).sort((a, b) => { + if (a.range && b.range) { + return Range$b.compareRangesUsingStarts(a.range, b.range); + } + // eol only changes should go to the end + const aRng = a.range ? 0 : 1; + const bRng = b.range ? 0 : 1; + return aRng - bRng; + }); + // merge adjacent edits + let writeIndex = 0; + for (let readIndex = 1; readIndex < edits.length; readIndex++) { + if (Range$b.getEndPosition(edits[writeIndex].range).equals(Range$b.getStartPosition(edits[readIndex].range))) { + edits[writeIndex].range = Range$b.fromPositions(Range$b.getStartPosition(edits[writeIndex].range), Range$b.getEndPosition(edits[readIndex].range)); + edits[writeIndex].text += edits[readIndex].text; + } + else { + writeIndex++; + edits[writeIndex] = edits[readIndex]; + } + } + edits.length = writeIndex + 1; + for (let { range, text, eol } of edits) { + if (typeof eol === 'number') { + lastEol = eol; + } + if (Range$b.isEmpty(range) && !text) { + // empty change + continue; + } + const original = model.getValueInRange(range); + text = text.replace(/\r\n|\n|\r/g, model.eol); + if (original === text) { + // noop + continue; + } + // make sure diff won't take too long + if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) { + result.push({ range, text }); + continue; + } + // compute diff between original and edit.text + const changes = stringDiff(original, text, pretty); + const editOffset = model.offsetAt(Range$b.lift(range).getStartPosition()); + for (const change of changes) { + const start = model.positionAt(editOffset + change.originalStart); + const end = model.positionAt(editOffset + change.originalStart + change.originalLength); + const newEdit = { + text: text.substr(change.modifiedStart, change.modifiedLength), + range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column } + }; + if (model.getValueInRange(newEdit.range) !== newEdit.text) { + result.push(newEdit); + } + } + } + if (typeof lastEol === 'number') { + result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }); + } + return result; + } + // ---- END minimal edits --------------------------------------------------------------- + async computeLinks(modelUrl) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + return computeLinks(model); + } + // --- BEGIN default document colors ----------------------------------------------------------- + async computeDefaultDocumentColors(modelUrl) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + return computeDefaultDocumentColors(model); + } + // ---- BEGIN suggest -------------------------------------------------------------------------- + static { this._suggestionsLimit = 10000; } + async textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) { + const sw = new StopWatch(); + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const seen = new Set(); + outer: for (const url of modelUrls) { + const model = this._getModel(url); + if (!model) { + continue; + } + for (const word of model.words(wordDefRegExp)) { + if (word === leadingWord || !isNaN(Number(word))) { + continue; + } + seen.add(word); + if (seen.size > EditorSimpleWorker._suggestionsLimit) { + break outer; + } + } + } + return { words: Array.from(seen), duration: sw.elapsed() }; + } + // ---- END suggest -------------------------------------------------------------------------- + //#region -- word ranges -- + async computeWordRanges(modelUrl, range, wordDef, wordDefFlags) { + const model = this._getModel(modelUrl); + if (!model) { + return Object.create(null); + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const result = Object.create(null); + for (let line = range.startLineNumber; line < range.endLineNumber; line++) { + const words = model.getLineWords(line, wordDefRegExp); + for (const word of words) { + if (!isNaN(Number(word.word))) { + continue; + } + let array = result[word.word]; + if (!array) { + array = []; + result[word.word] = array; + } + array.push({ + startLineNumber: line, + startColumn: word.startColumn, + endLineNumber: line, + endColumn: word.endColumn + }); + } + } + return result; + } + //#endregion + async navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + if (range.startColumn === range.endColumn) { + range = { + startLineNumber: range.startLineNumber, + startColumn: range.startColumn, + endLineNumber: range.endLineNumber, + endColumn: range.endColumn + 1 + }; + } + const selectionText = model.getValueInRange(range); + const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp); + if (!wordRange) { + return null; + } + const word = model.getValueInRange(wordRange); + const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up); + return result; + } + // ---- BEGIN foreign module support -------------------------------------------------------------------------- + loadForeignModule(moduleId, createData, foreignHostMethods) { + const proxyMethodRequest = (method, args) => { + return this._host.fhr(method, args); + }; + const foreignHost = createProxyObject$1(foreignHostMethods, proxyMethodRequest); + const ctx = { + host: foreignHost, + getMirrorModels: () => { + return this._getModels(); + } + }; + if (this._foreignModuleFactory) { + this._foreignModule = this._foreignModuleFactory(ctx, createData); + // static foreing module + return Promise.resolve(getAllMethodNames(this._foreignModule)); + } + // ESM-comment-begin + // return new Promise<any>((resolve, reject) => { + // require([moduleId], (foreignModule: { create: IForeignModuleFactory }) => { + // this._foreignModule = foreignModule.create(ctx, createData); + // + // resolve(getAllMethodNames(this._foreignModule)); + // + // }, reject); + // }); + // ESM-comment-end + // ESM-uncomment-begin + return Promise.reject(new Error(`Unexpected usage`)); + // ESM-uncomment-end + } + // foreign method request + fmr(method, args) { + if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args)); + } + catch (e) { + return Promise.reject(e); + } + } +} +if (typeof importScripts === 'function') { + // Running in a web worker + globalThis.monaco = createMonacoBaseAPI(); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let initialized = false; +function initialize(foreignModule) { + if (initialized) { + return; + } + initialized = true; + const simpleWorker = new SimpleWorkerServer((msg) => { + globalThis.postMessage(msg); + }, (host) => new EditorSimpleWorker(host, foreignModule)); + globalThis.onmessage = (e) => { + simpleWorker.onmessage(e.data); + }; +} +globalThis.onmessage = (e) => { + // Ignore first message in this case and initialize if not yet initialized + if (!initialized) { + initialize(null); + } +}; + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getAugmentedNamespace(n) { + if (n.__esModule) return n; + var f = n.default; + if (typeof f == "function") { + var a = function a () { + if (this instanceof a) { + return Reflect.construct(f, arguments, this.constructor); + } + return f.apply(this, arguments); + }; + a.prototype = f.prototype; + } else a = {}; + Object.defineProperty(a, '__esModule', {value: true}); + Object.keys(n).forEach(function (k) { + var d = Object.getOwnPropertyDescriptor(n, k); + Object.defineProperty(a, k, d.get ? d : { + enumerable: true, + get: function () { + return n[k]; + } + }); + }); + return a; +} + +var languageService$2 = {}; + +var languageCore$1 = {}; + +var sourceMap$2 = {}; + +var sourceMap$1 = {}; + +var binarySearch$6 = {}; + +Object.defineProperty(binarySearch$6, "__esModule", { value: true }); +binarySearch$6.binarySearch = binarySearch$5; +function binarySearch$5(values, searchValue) { + let low = 0; + let high = values.length - 1; + let match; + while (low <= high) { + const mid = Math.floor((low + high) / 2); + const midValue = values[mid]; + if (midValue < searchValue) { + low = mid + 1; + } + else if (midValue > searchValue) { + high = mid - 1; + } + else { + low = mid; + high = mid; + match = mid; + break; + } + } + const finalLow = Math.max(Math.min(low, high, values.length - 1), 0); + const finalHigh = Math.min(Math.max(low, high, 0), values.length - 1); + return { low: finalLow, high: finalHigh, match }; +} + +var translateOffset$1 = {}; + +Object.defineProperty(translateOffset$1, "__esModule", { value: true }); +translateOffset$1.translateOffset = translateOffset; +let warned = false; +function translateOffset(start, fromOffsets, toOffsets, fromLengths, toLengths = fromLengths) { + const isSorted = fromOffsets.every((value, index) => index === 0 || fromOffsets[index - 1] <= value); + if (!isSorted) { + for (let i = 0; i < fromOffsets.length; i++) { + const fromOffset = fromOffsets[i]; + const fromLength = fromLengths[i]; + if (start >= fromOffset && start <= fromOffset + fromLength) { + const toLength = toLengths[i]; + const toOffset = toOffsets[i]; + let rangeOffset = Math.min(start - fromOffset, toLength); + return toOffset + rangeOffset; + } + } + if (!warned) { + warned = true; + console.warn('fromOffsets should be sorted in ascending order'); + } + } + let low = 0; + let high = fromOffsets.length - 1; + while (low <= high) { + const mid = Math.floor((low + high) / 2); + const fromOffset = fromOffsets[mid]; + const fromLength = fromLengths[mid]; + if (start >= fromOffset && start <= fromOffset + fromLength) { + const toLength = toLengths[mid]; + const toOffset = toOffsets[mid]; + let rangeOffset = Math.min(start - fromOffset, toLength); + return toOffset + rangeOffset; + } + else if (start < fromOffset) { + high = mid - 1; + } + else { + low = mid + 1; + } + } +} + +Object.defineProperty(sourceMap$1, "__esModule", { value: true }); +sourceMap$1.SourceMap = void 0; +const binarySearch_1 = binarySearch$6; +const translateOffset_1 = translateOffset$1; +class SourceMap { + constructor(mappings) { + this.mappings = mappings; + } + toSourceRange(generatedStart, generatedEnd, fallbackToAnyMatch, filter) { + return this.findMatchingStartEnd(generatedStart, generatedEnd, fallbackToAnyMatch, 'generatedOffsets', filter); + } + toGeneratedRange(sourceStart, sourceEnd, fallbackToAnyMatch, filter) { + return this.findMatchingStartEnd(sourceStart, sourceEnd, fallbackToAnyMatch, 'sourceOffsets', filter); + } + toSourceLocation(generatedOffset, filter) { + return this.findMatchingOffsets(generatedOffset, 'generatedOffsets', filter); + } + toGeneratedLocation(sourceOffset, filter) { + return this.findMatchingOffsets(sourceOffset, 'sourceOffsets', filter); + } + *findMatchingOffsets(offset, fromRange, filter) { + const memo = this.getMemoBasedOnRange(fromRange); + if (memo.offsets.length === 0) { + return; + } + const { low: start, high: end } = (0, binarySearch_1.binarySearch)(memo.offsets, offset); + const skip = new Set(); + const toRange = fromRange == 'sourceOffsets' ? 'generatedOffsets' : 'sourceOffsets'; + for (let i = start; i <= end; i++) { + for (const mapping of memo.mappings[i]) { + if (skip.has(mapping)) { + continue; + } + skip.add(mapping); + if (filter && !filter(mapping.data)) { + continue; + } + const mapped = (0, translateOffset_1.translateOffset)(offset, mapping[fromRange], mapping[toRange], getLengths(mapping, fromRange), getLengths(mapping, toRange)); + if (mapped !== undefined) { + yield [mapped, mapping]; + } + } + } + } + *findMatchingStartEnd(start, end, fallbackToAnyMatch, fromRange, filter) { + const toRange = fromRange == 'sourceOffsets' ? 'generatedOffsets' : 'sourceOffsets'; + const mappedStarts = []; + let hadMatch = false; + for (const [mappedStart, mapping] of this.findMatchingOffsets(start, fromRange)) { + if (filter && !filter(mapping.data)) { + continue; + } + mappedStarts.push([mappedStart, mapping]); + const mappedEnd = (0, translateOffset_1.translateOffset)(end, mapping[fromRange], mapping[toRange], getLengths(mapping, fromRange), getLengths(mapping, toRange)); + if (mappedEnd !== undefined) { + hadMatch = true; + yield [mappedStart, mappedEnd, mapping, mapping]; + } + } + if (!hadMatch && fallbackToAnyMatch) { + for (const [mappedStart, mappingStart] of mappedStarts) { + for (const [mappedEnd, mappingEnd] of this.findMatchingOffsets(end, fromRange)) { + if (filter && !filter(mappingEnd.data) || mappedEnd < mappedStart) { + continue; + } + yield [mappedStart, mappedEnd, mappingStart, mappingEnd]; + break; + } + } + } + } + getMemoBasedOnRange(fromRange) { + return fromRange === 'sourceOffsets' + ? this.sourceCodeOffsetsMemo ??= this.createMemo('sourceOffsets') + : this.generatedCodeOffsetsMemo ??= this.createMemo('generatedOffsets'); + } + createMemo(key) { + const offsetsSet = new Set(); + for (const mapping of this.mappings) { + for (let i = 0; i < mapping[key].length; i++) { + offsetsSet.add(mapping[key][i]); + offsetsSet.add(mapping[key][i] + getLengths(mapping, key)[i]); + } + } + const offsets = [...offsetsSet].sort((a, b) => a - b); + const mappings = offsets.map(() => new Set()); + for (const mapping of this.mappings) { + for (let i = 0; i < mapping[key].length; i++) { + const startIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i]).match; + const endIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i] + getLengths(mapping, key)[i]).match; + for (let i = startIndex; i <= endIndex; i++) { + mappings[i].add(mapping); + } + } + } + return { offsets, mappings }; + } +} +sourceMap$1.SourceMap = SourceMap; +function getLengths(mapping, key) { + return key == 'sourceOffsets' ? mapping.lengths : mapping.generatedLengths ?? mapping.lengths; +} + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(sourceMap$1, exports); + __exportStar(translateOffset$1, exports); + +} (sourceMap$2)); + +var editorFeatures = {}; + +Object.defineProperty(editorFeatures, "__esModule", { value: true }); +editorFeatures.isHoverEnabled = isHoverEnabled; +editorFeatures.isInlayHintsEnabled = isInlayHintsEnabled; +editorFeatures.isCodeLensEnabled = isCodeLensEnabled; +editorFeatures.isMonikerEnabled = isMonikerEnabled; +editorFeatures.isInlineValueEnabled = isInlineValueEnabled; +editorFeatures.isSemanticTokensEnabled = isSemanticTokensEnabled; +editorFeatures.isCallHierarchyEnabled = isCallHierarchyEnabled; +editorFeatures.isTypeHierarchyEnabled = isTypeHierarchyEnabled; +editorFeatures.isRenameEnabled = isRenameEnabled; +editorFeatures.isDefinitionEnabled = isDefinitionEnabled; +editorFeatures.isTypeDefinitionEnabled = isTypeDefinitionEnabled; +editorFeatures.isReferencesEnabled = isReferencesEnabled; +editorFeatures.isImplementationEnabled = isImplementationEnabled; +editorFeatures.isHighlightEnabled = isHighlightEnabled; +editorFeatures.isSymbolsEnabled = isSymbolsEnabled; +editorFeatures.isFoldingRangesEnabled = isFoldingRangesEnabled; +editorFeatures.isSelectionRangesEnabled = isSelectionRangesEnabled; +editorFeatures.isLinkedEditingEnabled = isLinkedEditingEnabled; +editorFeatures.isColorEnabled = isColorEnabled; +editorFeatures.isDocumentLinkEnabled = isDocumentLinkEnabled; +editorFeatures.isDiagnosticsEnabled = isDiagnosticsEnabled; +editorFeatures.isCodeActionsEnabled = isCodeActionsEnabled; +editorFeatures.isFormattingEnabled = isFormattingEnabled; +editorFeatures.isCompletionEnabled = isCompletionEnabled; +editorFeatures.isAutoInsertEnabled = isAutoInsertEnabled; +editorFeatures.isSignatureHelpEnabled = isSignatureHelpEnabled; +editorFeatures.shouldReportDiagnostics = shouldReportDiagnostics; +editorFeatures.resolveRenameNewName = resolveRenameNewName; +editorFeatures.resolveRenameEditText = resolveRenameEditText; +function isHoverEnabled(info) { + return !!info.semantic; +} +function isInlayHintsEnabled(info) { + return !!info.semantic; +} +function isCodeLensEnabled(info) { + return !!info.semantic; +} +function isMonikerEnabled(info) { + return !!info.semantic; +} +function isInlineValueEnabled(info) { + return !!info.semantic; +} +function isSemanticTokensEnabled(info) { + return typeof info.semantic === 'object' + ? info.semantic.shouldHighlight?.() ?? true + : !!info.semantic; +} +function isCallHierarchyEnabled(info) { + return !!info.navigation; +} +function isTypeHierarchyEnabled(info) { + return !!info.navigation; +} +function isRenameEnabled(info) { + return typeof info.navigation === 'object' + ? info.navigation.shouldRename?.() ?? true + : !!info.navigation; +} +function isDefinitionEnabled(info) { + return !!info.navigation; +} +function isTypeDefinitionEnabled(info) { + return !!info.navigation; +} +function isReferencesEnabled(info) { + return !!info.navigation; +} +function isImplementationEnabled(info) { + return !!info.navigation; +} +function isHighlightEnabled(info) { + return !!info.navigation; +} +function isSymbolsEnabled(info) { + return !!info.structure; +} +function isFoldingRangesEnabled(info) { + return !!info.structure; +} +function isSelectionRangesEnabled(info) { + return !!info.structure; +} +function isLinkedEditingEnabled(info) { + return !!info.structure; +} +function isColorEnabled(info) { + return !!info.structure; +} +function isDocumentLinkEnabled(info) { + return !!info.structure; +} +function isDiagnosticsEnabled(info) { + return !!info.verification; +} +function isCodeActionsEnabled(info) { + return !!info.verification; +} +function isFormattingEnabled(info) { + return !!info.format; +} +function isCompletionEnabled(info) { + return !!info.completion; +} +function isAutoInsertEnabled(info) { + return !!info.completion; +} +function isSignatureHelpEnabled(info) { + return !!info.completion; +} +// should... +function shouldReportDiagnostics(info, source, code) { + return typeof info.verification === 'object' + ? info.verification.shouldReport?.(source, code) ?? true + : !!info.verification; +} +// resolve... +function resolveRenameNewName(newName, info) { + return typeof info.navigation === 'object' + ? info.navigation.resolveRenameNewName?.(newName) ?? newName + : newName; +} +function resolveRenameEditText(text, info) { + return typeof info.navigation === 'object' + ? info.navigation.resolveRenameEditText?.(text) ?? text + : text; +} + +var linkedCodeMap = {}; + +Object.defineProperty(linkedCodeMap, "__esModule", { value: true }); +linkedCodeMap.LinkedCodeMap = void 0; +const source_map_1 = sourceMap$2; +class LinkedCodeMap extends source_map_1.SourceMap { + *getLinkedOffsets(start) { + for (const mapped of this.toGeneratedLocation(start)) { + yield mapped[0]; + } + for (const mapped of this.toSourceLocation(start)) { + yield mapped[0]; + } + } +} +linkedCodeMap.LinkedCodeMap = LinkedCodeMap; + +var types$6 = {}; + +Object.defineProperty(types$6, "__esModule", { value: true }); + +var utils$1 = {}; + +Object.defineProperty(utils$1, "__esModule", { value: true }); +utils$1.FileMap = void 0; +class FileMap extends Map { + constructor(caseSensitive) { + super(); + this.caseSensitive = caseSensitive; + this.originalFileNames = new Map(); + } + keys() { + return this.originalFileNames.values(); + } + get(key) { + return super.get(this.normalizeId(key)); + } + has(key) { + return super.has(this.normalizeId(key)); + } + set(key, value) { + this.originalFileNames.set(this.normalizeId(key), key); + return super.set(this.normalizeId(key), value); + } + delete(key) { + this.originalFileNames.delete(this.normalizeId(key)); + return super.delete(this.normalizeId(key)); + } + clear() { + this.originalFileNames.clear(); + return super.clear(); + } + normalizeId(id) { + return this.caseSensitive ? id : id.toLowerCase(); + } +} +utils$1.FileMap = FileMap; + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defaultMapperFactory = exports.SourceMap = void 0; + exports.createLanguage = createLanguage; + exports.forEachEmbeddedCode = forEachEmbeddedCode; + var source_map_1 = sourceMap$2; + Object.defineProperty(exports, "SourceMap", { enumerable: true, get: function () { return source_map_1.SourceMap; } }); + __exportStar(editorFeatures, exports); + __exportStar(linkedCodeMap, exports); + __exportStar(types$6, exports); + __exportStar(utils$1, exports); + const source_map_2 = sourceMap$2; + const linkedCodeMap_1 = linkedCodeMap; + const defaultMapperFactory = mappings => new source_map_2.SourceMap(mappings); + exports.defaultMapperFactory = defaultMapperFactory; + function createLanguage(plugins, scriptRegistry, sync) { + const virtualCodeToSourceScriptMap = new WeakMap(); + const virtualCodeToSourceMap = new WeakMap(); + const virtualCodeToLinkedCodeMap = new WeakMap(); + const language = { + mapperFactory: exports.defaultMapperFactory, + plugins, + scripts: { + fromVirtualCode(virtualCode) { + return virtualCodeToSourceScriptMap.get(virtualCode); + }, + get(id, includeFsFiles = true) { + sync(id, includeFsFiles); + const result = scriptRegistry.get(id); + // The sync function provider may not always call the set function due to caching, so it is necessary to explicitly check isAssociationDirty. + if (result?.isAssociationDirty) { + this.set(id, result.snapshot, result.languageId); + } + return scriptRegistry.get(id); + }, + set(id, snapshot, languageId, _plugins = plugins) { + if (!languageId) { + for (const plugin of plugins) { + languageId = plugin.getLanguageId?.(id); + if (languageId) { + break; + } + } + } + if (!languageId) { + console.warn(`languageId not found for ${id}`); + return; + } + let associatedOnly = false; + for (const plugin of plugins) { + if (plugin.isAssociatedFileOnly?.(id, languageId)) { + associatedOnly = true; + break; + } + } + if (scriptRegistry.has(id)) { + const sourceScript = scriptRegistry.get(id); + if (sourceScript.languageId !== languageId || sourceScript.associatedOnly !== associatedOnly) { + this.delete(id); + return this.set(id, snapshot, languageId); + } + else if (associatedOnly) { + sourceScript.snapshot = snapshot; + } + else if (sourceScript.isAssociationDirty || sourceScript.snapshot !== snapshot) { + // snapshot updated + sourceScript.snapshot = snapshot; + const codegenCtx = prepareCreateVirtualCode(sourceScript); + if (sourceScript.generated) { + const { updateVirtualCode, createVirtualCode } = sourceScript.generated.languagePlugin; + const newVirtualCode = updateVirtualCode + ? updateVirtualCode(id, sourceScript.generated.root, snapshot, codegenCtx) + : createVirtualCode?.(id, languageId, snapshot, codegenCtx); + if (newVirtualCode) { + sourceScript.generated.root = newVirtualCode; + sourceScript.generated.embeddedCodes.clear(); + for (const code of forEachEmbeddedCode(sourceScript.generated.root)) { + virtualCodeToSourceScriptMap.set(code, sourceScript); + sourceScript.generated.embeddedCodes.set(code.id, code); + } + return sourceScript; + } + else { + this.delete(id); + return; + } + } + triggerTargetsDirty(sourceScript); + } + else { + // not changed + return sourceScript; + } + } + else { + // created + const sourceScript = { + id: id, + languageId, + snapshot, + associatedIds: new Set(), + targetIds: new Set(), + associatedOnly + }; + scriptRegistry.set(id, sourceScript); + if (associatedOnly) { + return sourceScript; + } + for (const languagePlugin of _plugins) { + const virtualCode = languagePlugin.createVirtualCode?.(id, languageId, snapshot, prepareCreateVirtualCode(sourceScript)); + if (virtualCode) { + sourceScript.generated = { + root: virtualCode, + languagePlugin, + embeddedCodes: new Map(), + }; + for (const code of forEachEmbeddedCode(virtualCode)) { + virtualCodeToSourceScriptMap.set(code, sourceScript); + sourceScript.generated.embeddedCodes.set(code.id, code); + } + break; + } + } + return sourceScript; + } + }, + delete(id) { + const sourceScript = scriptRegistry.get(id); + if (sourceScript) { + sourceScript.generated?.languagePlugin.disposeVirtualCode?.(id, sourceScript.generated.root); + scriptRegistry.delete(id); + triggerTargetsDirty(sourceScript); + } + }, + }, + maps: { + get(virtualCode, sourceScript) { + let mapCache = virtualCodeToSourceMap.get(virtualCode.snapshot); + if (!mapCache) { + virtualCodeToSourceMap.set(virtualCode.snapshot, mapCache = new WeakMap()); + } + if (!mapCache.has(sourceScript.snapshot)) { + const mappings = virtualCode.associatedScriptMappings?.get(sourceScript.id) ?? virtualCode.mappings; + mapCache.set(sourceScript.snapshot, language.mapperFactory(mappings)); + } + return mapCache.get(sourceScript.snapshot); + }, + *forEach(virtualCode) { + const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode); + yield [ + sourceScript, + this.get(virtualCode, sourceScript), + ]; + if (virtualCode.associatedScriptMappings) { + for (const [relatedScriptId] of virtualCode.associatedScriptMappings) { + const relatedSourceScript = scriptRegistry.get(relatedScriptId); + if (relatedSourceScript) { + yield [ + relatedSourceScript, + this.get(virtualCode, relatedSourceScript), + ]; + } + } + } + }, + }, + linkedCodeMaps: { + get(virtualCode) { + const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode); + let mapCache = virtualCodeToLinkedCodeMap.get(virtualCode.snapshot); + if (mapCache?.[0] !== sourceScript.snapshot) { + virtualCodeToLinkedCodeMap.set(virtualCode.snapshot, mapCache = [ + sourceScript.snapshot, + virtualCode.linkedCodeMappings + ? new linkedCodeMap_1.LinkedCodeMap(virtualCode.linkedCodeMappings) + : undefined, + ]); + } + return mapCache[1]; + }, + }, + }; + return language; + function triggerTargetsDirty(sourceScript) { + sourceScript.targetIds.forEach(id => { + const sourceScript = scriptRegistry.get(id); + if (sourceScript) { + sourceScript.isAssociationDirty = true; + } + }); + } + function prepareCreateVirtualCode(sourceScript) { + for (const id of sourceScript.associatedIds) { + scriptRegistry.get(id)?.targetIds.delete(sourceScript.id); + } + sourceScript.associatedIds.clear(); + sourceScript.isAssociationDirty = false; + return { + getAssociatedScript(id) { + sync(id, true); + const relatedSourceScript = scriptRegistry.get(id); + if (relatedSourceScript) { + relatedSourceScript.targetIds.add(sourceScript.id); + sourceScript.associatedIds.add(relatedSourceScript.id); + } + return relatedSourceScript; + }, + }; + } + } + function* forEachEmbeddedCode(virtualCode) { + yield virtualCode; + if (virtualCode.embeddedCodes) { + for (const embeddedCode of virtualCode.embeddedCodes) { + yield* forEachEmbeddedCode(embeddedCode); + } + } + } + +} (languageCore$1)); + +var languageService$1 = {}; + +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +let FullTextDocument$1 = class FullTextDocument { + constructor(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = undefined; + } + get uri() { + return this._uri; + } + get languageId() { + return this._languageId; + } + get version() { + return this._version; + } + getText(range) { + if (range) { + const start = this.offsetAt(range.start); + const end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + } + update(changes, version) { + for (const change of changes) { + if (FullTextDocument.isIncremental(change)) { + // makes sure start is before end + const range = getWellformedRange(change.range); + // update content + const startOffset = this.offsetAt(range.start); + const endOffset = this.offsetAt(range.end); + this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length); + // update the offsets + const startLine = Math.max(range.start.line, 0); + const endLine = Math.max(range.end.line, 0); + let lineOffsets = this._lineOffsets; + const addedLineOffsets = computeLineOffsets(change.text, false, startOffset); + if (endLine - startLine === addedLineOffsets.length) { + for (let i = 0, len = addedLineOffsets.length; i < len; i++) { + lineOffsets[i + startLine + 1] = addedLineOffsets[i]; + } + } + else { + if (addedLineOffsets.length < 10000) { + lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets); + } + else { // avoid too many arguments for splice + this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1)); + } + } + const diff = change.text.length - (endOffset - startOffset); + if (diff !== 0) { + for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) { + lineOffsets[i] = lineOffsets[i] + diff; + } + } + } + else if (FullTextDocument.isFull(change)) { + this._content = change.text; + this._lineOffsets = undefined; + } + else { + throw new Error('Unknown change event received'); + } + } + this._version = version; + } + getLineOffsets() { + if (this._lineOffsets === undefined) { + this._lineOffsets = computeLineOffsets(this._content, true); + } + return this._lineOffsets; + } + positionAt(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + const lineOffsets = this.getLineOffsets(); + let low = 0, high = lineOffsets.length; + if (high === 0) { + return { line: 0, character: offset }; + } + while (low < high) { + const mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } + else { + low = mid + 1; + } + } + // low is the least x for which the line offset is larger than the current offset + // or array.length if no line offset is larger than the current offset + const line = low - 1; + offset = this.ensureBeforeEOL(offset, lineOffsets[line]); + return { line, character: offset - lineOffsets[line] }; + } + offsetAt(position) { + const lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } + else if (position.line < 0) { + return 0; + } + const lineOffset = lineOffsets[position.line]; + if (position.character <= 0) { + return lineOffset; + } + const nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length; + const offset = Math.min(lineOffset + position.character, nextLineOffset); + return this.ensureBeforeEOL(offset, lineOffset); + } + ensureBeforeEOL(offset, lineOffset) { + while (offset > lineOffset && isEOL$4(this._content.charCodeAt(offset - 1))) { + offset--; + } + return offset; + } + get lineCount() { + return this.getLineOffsets().length; + } + static isIncremental(event) { + const candidate = event; + return candidate !== undefined && candidate !== null && + typeof candidate.text === 'string' && candidate.range !== undefined && + (candidate.rangeLength === undefined || typeof candidate.rangeLength === 'number'); + } + static isFull(event) { + const candidate = event; + return candidate !== undefined && candidate !== null && + typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined; + } +}; +var TextDocument$1; +(function (TextDocument) { + /** + * Creates a new text document. + * + * @param uri The document's uri. + * @param languageId The document's language Id. + * @param version The document's initial version number. + * @param content The document's content. + */ + function create(uri, languageId, version, content) { + return new FullTextDocument$1(uri, languageId, version, content); + } + TextDocument.create = create; + /** + * Updates a TextDocument by modifying its content. + * + * @param document the document to update. Only documents created by TextDocument.create are valid inputs. + * @param changes the changes to apply to the document. + * @param version the changes version for the document. + * @returns The updated TextDocument. Note: That's the same document instance passed in as first parameter. + * + */ + function update(document, changes, version) { + if (document instanceof FullTextDocument$1) { + document.update(changes, version); + return document; + } + else { + throw new Error('TextDocument.update: document must be created by TextDocument.create'); + } + } + TextDocument.update = update; + function applyEdits(document, edits) { + const text = document.getText(); + const sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => { + const diff = a.range.start.line - b.range.start.line; + if (diff === 0) { + return a.range.start.character - b.range.start.character; + } + return diff; + }); + let lastModifiedOffset = 0; + const spans = []; + for (const e of sortedEdits) { + const startOffset = document.offsetAt(e.range.start); + if (startOffset < lastModifiedOffset) { + throw new Error('Overlapping edit'); + } + else if (startOffset > lastModifiedOffset) { + spans.push(text.substring(lastModifiedOffset, startOffset)); + } + if (e.newText.length) { + spans.push(e.newText); + } + lastModifiedOffset = document.offsetAt(e.range.end); + } + spans.push(text.substr(lastModifiedOffset)); + return spans.join(''); + } + TextDocument.applyEdits = applyEdits; +})(TextDocument$1 || (TextDocument$1 = {})); +function mergeSort(data, compare) { + if (data.length <= 1) { + // sorted + return data; + } + const p = (data.length / 2) | 0; + const left = data.slice(0, p); + const right = data.slice(p); + mergeSort(left, compare); + mergeSort(right, compare); + let leftIdx = 0; + let rightIdx = 0; + let i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + const ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + // smaller_equal -> take left to preserve order + data[i++] = left[leftIdx++]; + } + else { + // greater -> take right + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; +} +function computeLineOffsets(text, isAtLineStart, textOffset = 0) { + const result = isAtLineStart ? [textOffset] : []; + for (let i = 0; i < text.length; i++) { + const ch = text.charCodeAt(i); + if (isEOL$4(ch)) { + if (ch === 13 /* CharCode.CarriageReturn */ && i + 1 < text.length && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) { + i++; + } + result.push(textOffset + i + 1); + } + } + return result; +} +function isEOL$4(char) { + return char === 13 /* CharCode.CarriageReturn */ || char === 10 /* CharCode.LineFeed */; +} +function getWellformedRange(range) { + const start = range.start; + const end = range.end; + if (start.line > end.line || (start.line === end.line && start.character > end.character)) { + return { start: end, end: start }; + } + return range; +} +function getWellformedEdit(textEdit) { + const range = getWellformedRange(textEdit.range); + if (range !== textEdit.range) { + return { newText: textEdit.newText, range }; + } + return textEdit; +} + +var main$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + get TextDocument () { return TextDocument$1; } +}); + +var require$$1$2 = /*@__PURE__*/getAugmentedNamespace(main$1); + +var umd = {exports: {}}; + +(function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,(()=>(()=>{var t={470:t=>{function e(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function r(t,e){for(var r,n="",i=0,o=-1,s=0,a=0;a<=t.length;++a){if(a<t.length)r=t.charCodeAt(a);else {if(47===r)break;r=47;}if(47===r){if(o===a-1||1===s);else if(o!==a-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var h=n.lastIndexOf("/");if(h!==n.length-1){-1===h?(n="",i=0):i=(n=n.slice(0,h)).length-1-n.lastIndexOf("/"),o=a,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,o=a,s=0;continue}e&&(n.length>0?n+="/..":n="..",i=2);}else n.length>0?n+="/"+t.slice(o+1,a):n=t.slice(o+1,a),i=a-o-1;o=a,s=0;}else 46===r&&-1!==s?++s:s=-1;}return n}var n={resolve:function(){for(var t,n="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(n=s+"/"+n,i=47===s.charCodeAt(0));}return n=r(n,!i),i?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(t){if(e(t),0===t.length)return ".";var n=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!n)).length||n||(t="."),t.length>0&&i&&(t+="/"),n?"/"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return ".";for(var t,r=0;r<arguments.length;++r){var i=arguments[r];e(i),i.length>0&&(void 0===t?t=i:t+="/"+i);}return void 0===t?".":n.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return "";if((t=n.resolve(t))===(r=n.resolve(r)))return "";for(var i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var o=t.length,s=o-i,a=1;a<r.length&&47===r.charCodeAt(a);++a);for(var h=r.length-a,c=s<h?s:h,f=-1,u=0;u<=c;++u){if(u===c){if(h>c){if(47===r.charCodeAt(a+u))return r.slice(a+u+1);if(0===u)return r.slice(a+u)}else s>c&&(47===t.charCodeAt(i+u)?f=u:0===u&&(f=0));break}var l=t.charCodeAt(i+u);if(l!==r.charCodeAt(a+u))break;47===l&&(f=u);}var d="";for(u=i+f+1;u<=o;++u)u!==o&&47!==t.charCodeAt(u)||(0===d.length?d+="..":d+="/..");return d.length>0?d+r.slice(a+f):(a+=f,47===r.charCodeAt(a)&&++a,r.slice(a))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return ".";for(var r=t.charCodeAt(0),n=47===r,i=-1,o=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!o){i=s;break}}else o=!1;return -1===i?n?"/":".":n&&1===i?"//":t.slice(0,i)},basename:function(t,r){if(void 0!==r&&"string"!=typeof r)throw new TypeError('"ext" argument must be a string');e(t);var n,i=0,o=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return "";var a=r.length-1,h=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!s){i=n+1;break}}else -1===h&&(s=!1,h=n+1),a>=0&&(c===r.charCodeAt(a)?-1==--a&&(o=n):(a=-1,o=h));}return i===o?o=h:-1===o&&(o=t.length),t.slice(i,o)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!s){i=n+1;break}}else -1===o&&(s=!1,o=n+1);return -1===o?"":t.slice(i,o)},extname:function(t){e(t);for(var r=-1,n=0,i=-1,o=!0,s=0,a=t.length-1;a>=0;--a){var h=t.charCodeAt(a);if(47!==h)-1===i&&(o=!1,i=a+1),46===h?-1===r?r=a:1!==s&&(s=1):-1!==r&&(s=-1);else if(!o){n=a+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":t.slice(r,i)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+n:r+"/"+n:n}(0,t)},parse:function(t){e(t);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return r;var n,i=t.charCodeAt(0),o=47===i;o?(r.root="/",n=1):n=0;for(var s=-1,a=0,h=-1,c=!0,f=t.length-1,u=0;f>=n;--f)if(47!==(i=t.charCodeAt(f)))-1===h&&(c=!1,h=f+1),46===i?-1===s?s=f:1!==u&&(u=1):-1!==s&&(u=-1);else if(!c){a=f+1;break}return -1===s||-1===h||0===u||1===u&&s===h-1&&s===a+1?-1!==h&&(r.base=r.name=0===a&&o?t.slice(1,h):t.slice(a,h)):(0===a&&o?(r.name=t.slice(1,s),r.base=t.slice(1,h)):(r.name=t.slice(a,s),r.base=t.slice(a,h)),r.ext=t.slice(s,h)),a>0?r.dir=t.slice(0,a-1):o&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,t.exports=n;},674:(t,e)=>{if(Object.defineProperty(e,"__esModule",{value:!0}),e.isWindows=void 0,"object"==typeof process)e.isWindows="win32"===process.platform;else if("object"==typeof navigator){let t=navigator.userAgent;e.isWindows=t.indexOf("Windows")>=0;}},796:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.uriToFsPath=e.URI=void 0;const n=r(674),i=/^\w[\w\d+.-]*$/,o=/^\//,s=/^\/\//;function a(t,e){if(!t.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!i.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!o.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const h="",c="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class u{static isUri(t){return t instanceof u||!!t&&"string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"string"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString}scheme;authority;path;query;fragment;constructor(t,e,r,n,i,o=!1){"object"==typeof t?(this.scheme=t.scheme||h,this.authority=t.authority||h,this.path=t.path||h,this.query=t.query||h,this.fragment=t.fragment||h):(this.scheme=function(t,e){return t||e?t:"file"}(t,o),this.authority=e||h,this.path=function(t,e){switch(t){case"https":case"http":case"file":e?e[0]!==c&&(e=c+e):e=c;}return e}(this.scheme,r||h),this.query=n||h,this.fragment=i||h,a(this,o));}get fsPath(){return v(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:r,path:n,query:i,fragment:o}=t;return void 0===e?e=this.scheme:null===e&&(e=h),void 0===r?r=this.authority:null===r&&(r=h),void 0===n?n=this.path:null===n&&(n=h),void 0===i?i=this.query:null===i&&(i=h),void 0===o?o=this.fragment:null===o&&(o=h),e===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&o===this.fragment?this:new d(e,r,n,i,o)}static parse(t,e=!1){const r=f.exec(t);return r?new d(r[2]||h,w(r[4]||h),w(r[5]||h),w(r[7]||h),w(r[9]||h),e):new d(h,h,h,h,h)}static file(t){let e=h;if(n.isWindows&&(t=t.replace(/\\/g,c)),t[0]===c&&t[1]===c){const r=t.indexOf(c,2);-1===r?(e=t.substring(2),t=c):(e=t.substring(2,r),t=t.substring(r)||c);}return new d("file",e,t,h,h)}static from(t){const e=new d(t.scheme,t.authority,t.path,t.query,t.fragment);return a(e,!0),e}toString(t=!1){return y(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof u)return t;{const e=new d(t);return e._formatted=t.external,e._fsPath=t._sep===l?t.fsPath:null,e}}return t}}e.URI=u;const l=n.isWindows?1:void 0;class d extends u{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=v(this,!1)),this._fsPath}toString(t=!1){return t?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=l),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const p={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function g(t,e,r){let n,i=-1;for(let o=0;o<t.length;o++){const s=t.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||e&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),void 0!==n&&(n+=t.charAt(o));else {void 0===n&&(n=t.substr(0,o));const e=p[s];void 0!==e?(-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),n+=e):-1===i&&(i=o);}}return -1!==i&&(n+=encodeURIComponent(t.substring(i))),void 0!==n?n:t}function m(t){let e;for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);35===n||63===n?(void 0===e&&(e=t.substr(0,r)),e+=p[n]):void 0!==e&&(e+=t[r]);}return void 0!==e?e:t}function v(t,e){let r;return r=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?e?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,n.isWindows&&(r=r.replace(/\//g,"\\")),r}function y(t,e){const r=e?m:g;let n="",{scheme:i,authority:o,path:s,query:a,fragment:h}=t;if(i&&(n+=i,n+=":"),(o||"file"===i)&&(n+=c,n+=c),o){let t=o.indexOf("@");if(-1!==t){const e=o.substr(0,t);o=o.substr(t+1),t=e.lastIndexOf(":"),-1===t?n+=r(e,!1,!1):(n+=r(e.substr(0,t),!1,!1),n+=":",n+=r(e.substr(t+1),!1,!0)),n+="@";}o=o.toLowerCase(),t=o.lastIndexOf(":"),-1===t?n+=r(o,!1,!0):(n+=r(o.substr(0,t),!1,!0),n+=o.substr(t));}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const t=s.charCodeAt(1);t>=65&&t<=90&&(s=`/${String.fromCharCode(t+32)}:${s.substr(3)}`);}else if(s.length>=2&&58===s.charCodeAt(1)){const t=s.charCodeAt(0);t>=65&&t<=90&&(s=`${String.fromCharCode(t+32)}:${s.substr(2)}`);}n+=r(s,!0,!1);}return a&&(n+="?",n+=r(a,!1,!1)),h&&(n+="#",n+=e?h:g(h,!1,!1)),n}function b(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+b(t.substr(3)):t}}e.uriToFsPath=v;const C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function w(t){return t.match(C)?t.replace(C,(t=>b(t))):t}},679:function(t,e,r){var n=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i);}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r];}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e});}:function(t,e){t.default=e;}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&n(e,t,r);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.Utils=void 0;const s=o(r(470)),a=s.posix||s,h="/";var c;!function(t){t.joinPath=function(t,...e){return t.with({path:a.join(t.path,...e)})},t.resolvePath=function(t,...e){let r=t.path,n=!1;r[0]!==h&&(r=h+r,n=!0);let i=a.resolve(r,...e);return n&&i[0]===h&&!t.authority&&(i=i.substring(1)),t.with({path:i})},t.dirname=function(t){if(0===t.path.length||t.path===h)return t;let e=a.dirname(t.path);return 1===e.length&&46===e.charCodeAt(0)&&(e=""),t.with({path:e})},t.basename=function(t){return a.basename(t.path)},t.extname=function(t){return a.extname(t.path)};}(c||(e.Utils=c={}));}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}var n={};return (()=>{var t=n;Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=t.URI=void 0;const e=r(796);Object.defineProperty(t,"URI",{enumerable:!0,get:function(){return e.URI}});const i=r(679);Object.defineProperty(t,"Utils",{enumerable:!0,get:function(){return i.Utils}});})(),n})())); + +} (umd)); + +var umdExports = umd.exports; + +var provideAutoInsertSnippet = {}; + +var cancellation = {}; + +Object.defineProperty(cancellation, "__esModule", { value: true }); +cancellation.NoneCancellationToken = void 0; +cancellation.NoneCancellationToken = { + isCancellationRequested: false, + onCancellationRequested: () => ({ dispose: () => { } }), +}; + +var featureWorkers = {}; + +Object.defineProperty(featureWorkers, "__esModule", { value: true }); +featureWorkers.documentFeatureWorker = documentFeatureWorker; +featureWorkers.languageFeatureWorker = languageFeatureWorker; +featureWorkers.safeCall = safeCall$1; +featureWorkers.forEachEmbeddedDocument = forEachEmbeddedDocument; +featureWorkers.getSourceRange = getSourceRange; +featureWorkers.getGeneratedRange = getGeneratedRange; +featureWorkers.getSourceRanges = getSourceRanges; +featureWorkers.getGeneratedRanges = getGeneratedRanges; +featureWorkers.getSourcePositions = getSourcePositions; +featureWorkers.getGeneratedPositions = getGeneratedPositions; +featureWorkers.getLinkedCodePositions = getLinkedCodePositions; +function documentFeatureWorker(context, uri, valid, worker, transformResult, combineResult) { + return languageFeatureWorker(context, uri, () => void 0, function* (map) { + if (valid(map)) { + yield; + } + }, worker, transformResult, combineResult); +} +async function languageFeatureWorker(context, uri, getRealDocParams, eachVirtualDocParams, worker, transformResult, combineResult) { + let sourceScript; + const decoded = context.decodeEmbeddedDocumentUri(uri); + if (decoded) { + sourceScript = context.language.scripts.get(decoded[0]); + } + else { + sourceScript = context.language.scripts.get(uri); + } + if (!sourceScript) { + return; + } + let results = []; + if (decoded) { + const virtualCode = sourceScript.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode) { + const docs = [ + context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot), + context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot), + context.language.maps.get(virtualCode, sourceScript), + ]; + await docsWorker(docs, false); + } + } + else if (sourceScript.generated) { + for (const docs of forEachEmbeddedDocument(context, sourceScript, sourceScript.generated.root)) { + if (results.length && !combineResult) { + continue; + } + await docsWorker(docs, true); + } + } + else { + const document = context.documents.get(uri, sourceScript.languageId, sourceScript.snapshot); + const params = getRealDocParams(); + for (const [pluginIndex, plugin] of Object.entries(context.plugins)) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + const embeddedResult = await safeCall$1(() => worker(plugin, document, params, undefined), `Language service plugin "${plugin[0].name}" (${pluginIndex}) failed to provide document feature for ${document.uri}.`); + if (!embeddedResult) { + continue; + } + const result = transformResult(embeddedResult, undefined); + if (!result) { + continue; + } + results.push(result); + if (!combineResult) { + break; + } + } + } + if (combineResult && results.length > 0) { + const combined = combineResult(results); + return combined; + } + else if (results.length > 0) { + return results[0]; + } + async function docsWorker(docs, transform) { + for (const mappedArg of eachVirtualDocParams(docs)) { + if (results.length && !combineResult) { + continue; + } + for (const [pluginIndex, plugin] of Object.entries(context.plugins)) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (results.length && !combineResult) { + continue; + } + const embeddedResult = await safeCall$1(() => worker(plugin, docs[1], mappedArg, docs), `Language service plugin "${plugin[0].name}" (${pluginIndex}) failed to provide document feature for ${docs[1].uri}.`); + if (!embeddedResult) { + continue; + } + if (transform) { + const mappedResult = transformResult(embeddedResult, docs); + if (mappedResult) { + results.push(mappedResult); + } + } + else { + results.push(embeddedResult); + } + } + } + } +} +async function safeCall$1(cb, errorMsg) { + try { + return await cb(); + } + catch (err) { + console.warn(errorMsg, err); + } +} +function* forEachEmbeddedDocument(context, sourceScript, current) { + if (current.embeddedCodes) { + for (const embeddedCode of current.embeddedCodes) { + yield* forEachEmbeddedDocument(context, sourceScript, embeddedCode); + } + } + const embeddedDocumentUri = context.encodeEmbeddedDocumentUri(sourceScript.id, current.id); + if (!context.disabledEmbeddedDocumentUris.get(embeddedDocumentUri)) { + yield [ + context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot), + context.documents.get(embeddedDocumentUri, current.languageId, current.snapshot), + context.language.maps.get(current, sourceScript), + ]; + } +} +function getSourceRange(docs, range, filter) { + for (const result of getSourceRanges(docs, range, filter)) { + return result; + } +} +function getGeneratedRange(docs, range, filter) { + for (const result of getGeneratedRanges(docs, range, filter)) { + return result; + } +} +function* getSourceRanges([sourceDocument, embeddedDocument, map], range, filter) { + for (const [mappedStart, mappedEnd] of map.toSourceRange(embeddedDocument.offsetAt(range.start), embeddedDocument.offsetAt(range.end), true, filter)) { + yield { start: sourceDocument.positionAt(mappedStart), end: sourceDocument.positionAt(mappedEnd) }; + } +} +function* getGeneratedRanges([sourceDocument, embeddedDocument, map], range, filter) { + for (const [mappedStart, mappedEnd] of map.toGeneratedRange(sourceDocument.offsetAt(range.start), sourceDocument.offsetAt(range.end), true, filter)) { + yield { start: embeddedDocument.positionAt(mappedStart), end: embeddedDocument.positionAt(mappedEnd) }; + } +} +function* getSourcePositions([sourceDocument, embeddedDocument, map], position, filter = () => true) { + for (const mapped of map.toSourceLocation(embeddedDocument.offsetAt(position), filter)) { + yield sourceDocument.positionAt(mapped[0]); + } +} +function* getGeneratedPositions([sourceDocument, embeddedDocument, map], position, filter = () => true) { + for (const mapped of map.toGeneratedLocation(sourceDocument.offsetAt(position), filter)) { + yield embeddedDocument.positionAt(mapped[0]); + } +} +function* getLinkedCodePositions(document, linkedMap, posotion) { + for (const linkedPosition of linkedMap.getLinkedOffsets(document.offsetAt(posotion))) { + yield document.positionAt(linkedPosition); + } +} + +Object.defineProperty(provideAutoInsertSnippet, "__esModule", { value: true }); +provideAutoInsertSnippet.register = register$C; +const language_core_1$F = languageCore$1; +const cancellation_1$z = cancellation; +const featureWorkers_1$t = featureWorkers; +function register$C(context) { + return (uri, selection, change, token = cancellation_1$z.NoneCancellationToken) => { + return (0, featureWorkers_1$t.languageFeatureWorker)(context, uri, () => ({ selection, change }), function* (docs) { + for (const mappedPosition of (0, featureWorkers_1$t.getGeneratedPositions)(docs, selection, language_core_1$F.isAutoInsertEnabled)) { + for (const mapped of docs[2].toGeneratedLocation(change.rangeOffset)) { + yield { + selection: mappedPosition, + change: { + text: change.text, + rangeOffset: mapped[0], + rangeLength: change.rangeLength, + }, + }; + break; + } + } + }, (plugin, document, args) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideAutoInsertSnippet?.(document, args.selection, args.change, token); + }, snippet => snippet); + }; +} + +var provideCallHierarchyItems = {}; + +var dedupe$c = {}; + +Object.defineProperty(dedupe$c, "__esModule", { value: true }); +dedupe$c.createLocationSet = createLocationSet; +dedupe$c.withCodeAction = withCodeAction; +dedupe$c.withTextEdits = withTextEdits; +dedupe$c.withDocumentChanges = withDocumentChanges; +dedupe$c.withDiagnostics = withDiagnostics; +dedupe$c.withLocations = withLocations; +dedupe$c.withLocationLinks = withLocationLinks; +dedupe$c.withCallHierarchyIncomingCalls = withCallHierarchyIncomingCalls; +dedupe$c.withCallHierarchyOutgoingCalls = withCallHierarchyOutgoingCalls; +dedupe$c.withRanges = withRanges; +function createLocationSet() { + const set = new Set(); + return { + add, + has, + }; + function add(item) { + if (has(item)) { + return false; + } + set.add(getKey(item)); + return true; + } + function has(item) { + return set.has(getKey(item)); + } + function getKey(item) { + return [ + item.uri, + item.range.start.line, + item.range.start.character, + item.range.end.line, + item.range.end.character, + ].join(':'); + } +} +function withCodeAction(items) { + return dedupe$b(items, item => [ + item.title + ].join(':')); +} +function withTextEdits(items) { + return dedupe$b(items, item => [ + item.range.start.line, + item.range.start.character, + item.range.end.line, + item.range.end.character, + item.newText, + ].join(':')); +} +function withDocumentChanges(items) { + return dedupe$b(items, item => JSON.stringify(item)); // TODO: improve this +} +function withDiagnostics(items) { + return dedupe$b(items, item => [ + item.range.start.line, + item.range.start.character, + item.range.end.line, + item.range.end.character, + item.source, + item.code, + item.severity, + item.message, + ].join(':')); +} +function withLocations(items) { + return dedupe$b(items, item => [ + item.uri, + item.range.start.line, + item.range.start.character, + item.range.end.line, + item.range.end.character, + ].join(':')); +} +function withLocationLinks(items) { + return dedupe$b(items, item => [ + item.targetUri, + item.targetSelectionRange.start.line, + item.targetSelectionRange.start.character, + item.targetSelectionRange.end.line, + item.targetSelectionRange.end.character, + // ignore difference targetRange + ].join(':')); +} +function withCallHierarchyIncomingCalls(items) { + return dedupe$b(items, item => [ + item.from.uri, + item.from.range.start.line, + item.from.range.start.character, + item.from.range.end.line, + item.from.range.end.character, + ].join(':')); +} +function withCallHierarchyOutgoingCalls(items) { + return dedupe$b(items, item => [ + item.to.uri, + item.to.range.start.line, + item.to.range.start.character, + item.to.range.end.line, + item.to.range.end.character, + ].join(':')); +} +function withRanges(items) { + return dedupe$b(items, item => [ + item.start.line, + item.start.character, + item.end.line, + item.end.character, + ].join(':')); +} +function dedupe$b(items, getKey) { + const map = new Map(); + for (const item of items.reverse()) { + map.set(getKey(item), item); + } + return [...map.values()]; +} + +Object.defineProperty(provideCallHierarchyItems, "__esModule", { value: true }); +provideCallHierarchyItems.register = register$B; +const language_core_1$E = languageCore$1; +const vscode_uri_1$t = umdExports; +const cancellation_1$y = cancellation; +const dedupe$a = dedupe$c; +const featureWorkers_1$s = featureWorkers; +function register$B(context) { + return { + getCallHierarchyItems(uri, position, token = cancellation_1$y.NoneCancellationToken) { + return (0, featureWorkers_1$s.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$s.getGeneratedPositions)(docs, position, language_core_1$E.isCallHierarchyEnabled), async (plugin, document, position, map) => { + if (token.isCancellationRequested) { + return; + } + const items = await plugin[1].provideCallHierarchyItems?.(document, position, token); + items?.forEach(item => { + item.data = { + uri: uri.toString(), + original: { + data: item.data, + }, + pluginIndex: context.plugins.indexOf(plugin), + embeddedDocumentUri: map?.[1].uri, + }; + }); + return items; + }, (data, map) => { + if (!map) { + return data; + } + return data + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + }, arr => dedupe$a.withLocations(arr.flat())); + }, + getTypeHierarchyItems(uri, position, token = cancellation_1$y.NoneCancellationToken) { + return (0, featureWorkers_1$s.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$s.getGeneratedPositions)(docs, position, language_core_1$E.isTypeHierarchyEnabled), async (plugin, document, position, map) => { + if (token.isCancellationRequested) { + return; + } + const items = await plugin[1].provideTypeHierarchyItems?.(document, position, token); + items?.forEach(item => { + item.data = { + uri: uri.toString(), + original: { + data: item.data, + }, + pluginIndex: context.plugins.indexOf(plugin), + embeddedDocumentUri: map?.[1].uri, + }; + }); + return items; + }, (data, map) => { + if (!map) { + return data; + } + return data + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + }, arr => dedupe$a.withLocations(arr.flat())); + }, + async getCallHierarchyIncomingCalls(item, token) { + const data = item.data; + let incomingItems = []; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].provideCallHierarchyIncomingCalls) { + return incomingItems; + } + Object.assign(item, data.original); + if (data.embeddedDocumentUri) { + const isEmbeddedContent = !!context.decodeEmbeddedDocumentUri(vscode_uri_1$t.URI.parse(data.embeddedDocumentUri)); + if (isEmbeddedContent) { + const _calls = await plugin[1].provideCallHierarchyIncomingCalls(item, token); + for (const _call of _calls) { + const calls = transformHierarchyItem(_call.from, _call.fromRanges); + if (!calls) { + continue; + } + incomingItems.push({ + from: calls[0], + fromRanges: calls[1], + }); + } + } + } + else { + const _calls = await plugin[1].provideCallHierarchyIncomingCalls(item, token); + for (const _call of _calls) { + const calls = transformHierarchyItem(_call.from, _call.fromRanges); + if (!calls) { + continue; + } + incomingItems.push({ + from: calls[0], + fromRanges: calls[1], + }); + } + } + } + return dedupe$a.withCallHierarchyIncomingCalls(incomingItems); + }, + async getCallHierarchyOutgoingCalls(item, token) { + const data = item.data; + let items = []; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].provideCallHierarchyOutgoingCalls) { + return items; + } + Object.assign(item, data.original); + if (data.embeddedDocumentUri) { + const isEmbeddedContent = !!context.decodeEmbeddedDocumentUri(vscode_uri_1$t.URI.parse(data.embeddedDocumentUri)); + if (isEmbeddedContent) { + const _calls = await plugin[1].provideCallHierarchyOutgoingCalls(item, token); + for (const call of _calls) { + const calls = transformHierarchyItem(call.to, call.fromRanges); + if (!calls) { + continue; + } + items.push({ + to: calls[0], + fromRanges: calls[1], + }); + } + } + } + else { + const _calls = await plugin[1].provideCallHierarchyOutgoingCalls(item, token); + for (const call of _calls) { + const calls = transformHierarchyItem(call.to, call.fromRanges); + if (!calls) { + continue; + } + items.push({ + to: calls[0], + fromRanges: calls[1], + }); + } + } + } + return dedupe$a.withCallHierarchyOutgoingCalls(items); + }, + async getTypeHierarchySupertypes(item, token) { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].provideTypeHierarchySupertypes) { + return []; + } + Object.assign(item, data.original); + if (data.embeddedDocumentUri) { + const isEmbeddedContent = !!context.decodeEmbeddedDocumentUri(vscode_uri_1$t.URI.parse(data.embeddedDocumentUri)); + if (isEmbeddedContent) { + const items = await plugin[1].provideTypeHierarchySupertypes(item, token); + return items + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + } + } + else { + const items = await plugin[1].provideTypeHierarchySupertypes(item, token); + return items + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + } + } + }, + async getTypeHierarchySubtypes(item, token) { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].provideTypeHierarchySubtypes) { + return []; + } + Object.assign(item, data.original); + if (data.embeddedDocumentUri) { + const isEmbeddedContent = !!context.decodeEmbeddedDocumentUri(vscode_uri_1$t.URI.parse(data.embeddedDocumentUri)); + if (isEmbeddedContent) { + const items = await plugin[1].provideTypeHierarchySubtypes(item, token); + return items + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + } + } + else { + const items = await plugin[1].provideTypeHierarchySubtypes(item, token); + return items + .map(item => transformHierarchyItem(item, [])?.[0]) + .filter(item => !!item); + } + } + }, + }; + function transformHierarchyItem(tsItem, tsRanges) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$t.URI.parse(tsItem.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!sourceScript || !virtualCode) { + return [tsItem, tsRanges]; + } + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + let range = (0, featureWorkers_1$s.getSourceRange)(docs, tsItem.range); + if (!range) { + // TODO: <script> range + range = { + start: sourceDocument.positionAt(0), + end: sourceDocument.positionAt(sourceDocument.getText().length), + }; + } + const selectionRange = (0, featureWorkers_1$s.getSourceRange)(docs, tsItem.selectionRange); + if (!selectionRange) { + continue; + } + const vueRanges = tsRanges.map(tsRange => (0, featureWorkers_1$s.getSourceRange)(docs, tsRange)).filter(range => !!range); + const vueItem = { + ...tsItem, + name: tsItem.name === embeddedDocument.uri.substring(embeddedDocument.uri.lastIndexOf('/') + 1) + ? sourceDocument.uri.substring(sourceDocument.uri.lastIndexOf('/') + 1) + : tsItem.name, + uri: sourceDocument.uri, + // TS Bug: `range: range` not works + range: { + start: range.start, + end: range.end, + }, + selectionRange: { + start: selectionRange.start, + end: selectionRange.end, + }, + }; + return [vueItem, vueRanges]; + } + } +} + +var provideCodeActions = {}; + +var common$4 = {}; + +Object.defineProperty(common$4, "__esModule", { value: true }); +common$4.findOverlapCodeRange = findOverlapCodeRange; +common$4.isInsideRange = isInsideRange; +common$4.isEqualRange = isEqualRange; +common$4.stringToSnapshot = stringToSnapshot; +common$4.sleep = sleep$1; +function findOverlapCodeRange(start, end, map, filter) { + let mappedStart; + let mappedEnd; + for (const [mapped, mapping] of map.toGeneratedLocation(start)) { + if (filter(mapping.data)) { + mappedStart = mapped; + break; + } + } + for (const [mapped, mapping] of map.toGeneratedLocation(end)) { + if (filter(mapping.data)) { + mappedEnd = mapped; + break; + } + } + if (mappedStart === undefined || mappedEnd === undefined) { + for (const mapping of map.mappings) { + if (filter(mapping.data)) { + const mappingStart = mapping.sourceOffsets[0]; + const mappingEnd = mapping.sourceOffsets[mapping.sourceOffsets.length - 1] + mapping.lengths[mapping.lengths.length - 1]; + const overlap = getOverlapRange(start, end, mappingStart, mappingEnd); + if (overlap) { + const curMappedStart = (overlap.start - mappingStart) + mapping.generatedOffsets[0]; + mappedStart = mappedStart === undefined ? curMappedStart : Math.min(mappedStart, curMappedStart); + const lastGeneratedLength = (mapping.generatedLengths ?? mapping.lengths)[mapping.generatedOffsets.length - 1]; + const curMappedEndOffset = Math.min(overlap.end - mapping.sourceOffsets[mapping.sourceOffsets.length - 1], lastGeneratedLength); + const curMappedEnd = mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + curMappedEndOffset; + mappedEnd = mappedEnd === undefined ? curMappedEnd : Math.max(mappedEnd, curMappedEnd); + } + } + } + } + if (mappedStart !== undefined && mappedEnd !== undefined) { + return { + start: mappedStart, + end: mappedEnd, + }; + } +} +function getOverlapRange(range1Start, range1End, range2Start, range2End) { + const start = Math.max(range1Start, range2Start); + const end = Math.min(range1End, range2End); + if (start > end) { + return undefined; + } + return { + start, + end, + }; +} +function isInsideRange(parent, child) { + if (child.start.line < parent.start.line) { + return false; + } + if (child.end.line > parent.end.line) { + return false; + } + if (child.start.line === parent.start.line && child.start.character < parent.start.character) { + return false; + } + if (child.end.line === parent.end.line && child.end.character > parent.end.character) { + return false; + } + return true; +} +function isEqualRange(a, b) { + return a.start.line === b.start.line + && a.start.character === b.start.character + && a.end.line === b.end.line + && a.end.character === b.end.character; +} +function stringToSnapshot(str) { + return { + getText: (start, end) => str.substring(start, end), + getLength: () => str.length, + getChangeRange: () => undefined, + }; +} +function sleep$1(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +var transform$2 = {}; + +Object.defineProperty(transform$2, "__esModule", { value: true }); +transform$2.transformDocumentLinkTarget = transformDocumentLinkTarget; +transform$2.transformMarkdown = transformMarkdown; +transform$2.transformCompletionItem = transformCompletionItem; +transform$2.transformCompletionList = transformCompletionList; +transform$2.transformDocumentSymbol = transformDocumentSymbol; +transform$2.transformFoldingRanges = transformFoldingRanges; +transform$2.transformHover = transformHover; +transform$2.transformLocation = transformLocation; +transform$2.transformLocations = transformLocations; +transform$2.transformSelectionRange = transformSelectionRange; +transform$2.transformSelectionRanges = transformSelectionRanges; +transform$2.transformTextEdit = transformTextEdit; +transform$2.transformWorkspaceSymbol = transformWorkspaceSymbol; +transform$2.transformWorkspaceEdit = transformWorkspaceEdit; +transform$2.pushEditToDocumentChanges = pushEditToDocumentChanges; +const language_core_1$D = languageCore$1; +const vscode_uri_1$s = umdExports; +const featureWorkers_1$r = featureWorkers; +function transformDocumentLinkTarget(_target, context) { + let target = vscode_uri_1$s.URI.parse(_target); + const decoded = context.decodeEmbeddedDocumentUri(target); + if (!decoded) { + return target; + } + const embeddedRange = target.fragment.match(/^L(\d+)(,(\d+))?(-L(\d+)(,(\d+))?)?$/); + const sourceScript = context.language.scripts.get(decoded[0]); + const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]); + target = decoded[0]; + if (embeddedRange && sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + if (!map.mappings.some(mapping => (0, language_core_1$D.isDocumentLinkEnabled)(mapping.data))) { + continue; + } + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const startLine = Number(embeddedRange[1]) - 1; + const startCharacter = Number(embeddedRange[3] ?? 1) - 1; + if (embeddedRange[5] !== undefined) { + const endLine = Number(embeddedRange[5]) - 1; + const endCharacter = Number(embeddedRange[7] ?? 1) - 1; + const sourceRange = (0, featureWorkers_1$r.getSourceRange)(docs, { + start: { line: startLine, character: startCharacter }, + end: { line: endLine, character: endCharacter }, + }); + if (sourceRange) { + target = target.with({ + fragment: 'L' + (sourceRange.start.line + 1) + ',' + (sourceRange.start.character + 1) + + '-L' + (sourceRange.end.line + 1) + ',' + (sourceRange.end.character + 1), + }); + break; + } + } + else { + let mapped = false; + for (const sourcePos of (0, featureWorkers_1$r.getSourcePositions)(docs, { line: startLine, character: startCharacter })) { + mapped = true; + target = target.with({ + fragment: 'L' + (sourcePos.line + 1) + ',' + (sourcePos.character + 1), + }); + break; + } + if (mapped) { + break; + } + } + } + } + return target; +} +function transformMarkdown(content, context) { + return content.replace(/(?!\()volar-embedded-content:\/\/\w+\/[^)]+/g, match => { + const segments = match.split('|'); + segments[0] = transformDocumentLinkTarget(segments[0], context).toString(); + return segments.join('|'); + }); +} +function transformCompletionItem(item, getOtherRange, document, context) { + return { + ...item, + additionalTextEdits: item.additionalTextEdits + ?.map(edit => transformTextEdit(edit, getOtherRange, document)) + .filter(edit => !!edit), + textEdit: item.textEdit + ? transformTextEdit(item.textEdit, getOtherRange, document) + : undefined, + documentation: item.documentation ? + typeof item.documentation === 'string' ? transformMarkdown(item.documentation, context) : + item.documentation.kind === 'markdown' ? + { kind: 'markdown', value: transformMarkdown(item.documentation.value, context) } + : item.documentation + : undefined + }; +} +function transformCompletionList(completionList, getOtherRange, document, context) { + return { + isIncomplete: completionList.isIncomplete, + itemDefaults: completionList.itemDefaults ? { + ...completionList.itemDefaults, + editRange: completionList.itemDefaults.editRange + ? 'replace' in completionList.itemDefaults.editRange + ? { + insert: getOtherRange(completionList.itemDefaults.editRange.insert), + replace: getOtherRange(completionList.itemDefaults.editRange.replace), + } + : getOtherRange(completionList.itemDefaults.editRange) + : undefined, + } : undefined, + items: completionList.items.map(item => transformCompletionItem(item, getOtherRange, document, context)), + }; +} +function transformDocumentSymbol(symbol, getOtherRange) { + const range = getOtherRange(symbol.range); + if (!range) { + return; + } + const selectionRange = getOtherRange(symbol.selectionRange); + if (!selectionRange) { + return; + } + return { + ...symbol, + range, + selectionRange, + children: symbol.children + ?.map(child => transformDocumentSymbol(child, getOtherRange)) + .filter(child => !!child), + }; +} +function transformFoldingRanges(ranges, getOtherRange) { + const result = []; + for (const range of ranges) { + const otherRange = getOtherRange({ + start: { line: range.startLine, character: range.startCharacter ?? 0 }, + end: { line: range.endLine, character: range.endCharacter ?? 0 }, + }); + if (otherRange) { + range.startLine = otherRange.start.line; + range.endLine = otherRange.end.line; + if (range.startCharacter !== undefined) { + range.startCharacter = otherRange.start.character; + } + if (range.endCharacter !== undefined) { + range.endCharacter = otherRange.end.character; + } + result.push(range); + } + } + return result; +} +function transformHover(hover, getOtherRange) { + if (!hover?.range) { + return hover; + } + const range = getOtherRange(hover.range); + if (!range) { + return; + } + return { + ...hover, + range, + }; +} +function transformLocation(location, getOtherRange) { + const range = getOtherRange(location.range); + if (!range) { + return; + } + return { + ...location, + range, + }; +} +function transformLocations(locations, getOtherRange) { + return locations + .map(location => transformLocation(location, getOtherRange)) + .filter(location => !!location); +} +function transformSelectionRange(location, getOtherRange) { + const range = getOtherRange(location.range); + if (!range) { + return; + } + const parent = location.parent ? transformSelectionRange(location.parent, getOtherRange) : undefined; + return { + range, + parent, + }; +} +function transformSelectionRanges(locations, getOtherRange) { + return locations + .map(location => transformSelectionRange(location, getOtherRange)) + .filter(location => !!location); +} +function transformTextEdit(textEdit, getOtherRange, document) { + if ('range' in textEdit) { + let range = getOtherRange(textEdit.range); + if (range) { + return { + ...textEdit, + range, + }; + } + const cover = tryRecoverTextEdit(getOtherRange, textEdit.range, textEdit.newText, document); + if (cover) { + return { + ...textEdit, + range: cover.range, + newText: cover.newText, + }; + } + } + else if ('replace' in textEdit && 'insert' in textEdit) { + const insert = getOtherRange(textEdit.insert); + const replace = insert ? getOtherRange(textEdit.replace) : undefined; + if (insert && replace) { + return { + ...textEdit, + insert, + replace, + }; + } + const recoverInsert = tryRecoverTextEdit(getOtherRange, textEdit.insert, textEdit.newText, document); + const recoverReplace = recoverInsert ? tryRecoverTextEdit(getOtherRange, textEdit.replace, textEdit.newText, document) : undefined; + if (recoverInsert && recoverReplace && recoverInsert.newText === recoverReplace.newText) { + return { + ...textEdit, + insert: recoverInsert.range, + replace: recoverReplace.range, + newText: recoverInsert.newText, + }; + } + } +} +/** + * update edit text from ". foo" to " foo" + * fix https://github.com/johnsoncodehk/volar/issues/2155 + */ +function tryRecoverTextEdit(getOtherRange, replaceRange, newText, document) { + if (replaceRange.start.line === replaceRange.end.line && replaceRange.end.character > replaceRange.start.character) { + let character = replaceRange.start.character; + while (newText.length && replaceRange.end.character > character) { + const newStart = { line: replaceRange.start.line, character: replaceRange.start.character + 1 }; + if (document.getText({ start: replaceRange.start, end: newStart }) === newText[0]) { + newText = newText.slice(1); + character++; + const otherRange = getOtherRange({ start: newStart, end: replaceRange.end }); + if (otherRange) { + return { + newText, + range: otherRange, + }; + } + } + else { + break; + } + } + } +} +function transformWorkspaceSymbol(symbol, getOtherLocation) { + if (!('range' in symbol.location)) { + return symbol; + } + const loc = getOtherLocation(symbol.location); + if (!loc) { + return; + } + return { + ...symbol, + location: loc, + }; +} +function transformWorkspaceEdit(edit, context, mode, versions = {}) { + const sourceResult = {}; + let hasResult = false; + for (const tsUri in edit.changeAnnotations) { + sourceResult.changeAnnotations ??= {}; + const tsAnno = edit.changeAnnotations[tsUri]; + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$s.URI.parse(tsUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + for (const [sourceScript] of context.language.maps.forEach(virtualCode)) { + // TODO: check capability? + const uri = sourceScript.id.toString(); + sourceResult.changeAnnotations[uri] = tsAnno; + break; + } + } + else { + sourceResult.changeAnnotations[tsUri] = tsAnno; + } + } + for (const tsUri in edit.changes) { + sourceResult.changes ??= {}; + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$s.URI.parse(tsUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const tsEdits = edit.changes[tsUri]; + for (const tsEdit of tsEdits) { + if (mode === 'rename' || mode === 'fileName' || mode === 'codeAction') { + let _data; + const range = (0, featureWorkers_1$r.getSourceRange)(docs, tsEdit.range, data => { + _data = data; + return (0, language_core_1$D.isRenameEnabled)(data); + }); + if (range) { + sourceResult.changes[sourceDocument.uri] ??= []; + sourceResult.changes[sourceDocument.uri].push({ + newText: (0, language_core_1$D.resolveRenameEditText)(tsEdit.newText, _data), + range, + }); + hasResult = true; + } + } + else { + const range = (0, featureWorkers_1$r.getSourceRange)(docs, tsEdit.range); + if (range) { + sourceResult.changes[sourceDocument.uri] ??= []; + sourceResult.changes[sourceDocument.uri].push({ newText: tsEdit.newText, range }); + hasResult = true; + } + } + } + } + } + else { + sourceResult.changes[tsUri] = edit.changes[tsUri]; + hasResult = true; + } + } + if (edit.documentChanges) { + for (const tsDocEdit of edit.documentChanges) { + sourceResult.documentChanges ??= []; + let sourceEdit; + if ('textDocument' in tsDocEdit) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$s.URI.parse(tsDocEdit.textDocument.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + sourceEdit = { + textDocument: { + uri: sourceDocument.uri, + version: versions[sourceDocument.uri] ?? null, + }, + edits: [], + }; + for (const tsEdit of tsDocEdit.edits) { + if (mode === 'rename' || mode === 'fileName' || mode === 'codeAction') { + let _data; + const range = (0, featureWorkers_1$r.getSourceRange)(docs, tsEdit.range, data => { + _data = data; + // fix https://github.com/johnsoncodehk/volar/issues/1091 + return (0, language_core_1$D.isRenameEnabled)(data); + }); + if (range) { + sourceEdit.edits.push({ + annotationId: 'annotationId' in tsEdit ? tsEdit.annotationId : undefined, + newText: (0, language_core_1$D.resolveRenameEditText)(tsEdit.newText, _data), + range, + }); + } + } + else { + const range = (0, featureWorkers_1$r.getSourceRange)(docs, tsEdit.range); + if (range) { + sourceEdit.edits.push({ + annotationId: 'annotationId' in tsEdit ? tsEdit.annotationId : undefined, + newText: tsEdit.newText, + range, + }); + } + } + } + if (!sourceEdit.edits.length) { + sourceEdit = undefined; + } + } + } + else { + sourceEdit = tsDocEdit; + } + } + else if (tsDocEdit.kind === 'create') { + sourceEdit = tsDocEdit; // TODO: remove .ts? + } + else if (tsDocEdit.kind === 'rename') { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$s.URI.parse(tsDocEdit.oldUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode) { + for (const [sourceScript] of context.language.maps.forEach(virtualCode)) { + // TODO: check capability? + sourceEdit = { + kind: 'rename', + oldUri: sourceScript.id.toString(), + newUri: tsDocEdit.newUri /* TODO: remove .ts? */, + options: tsDocEdit.options, + annotationId: tsDocEdit.annotationId, + }; + } + } + else { + sourceEdit = tsDocEdit; + } + } + else if (tsDocEdit.kind === 'delete') { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$s.URI.parse(tsDocEdit.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode) { + for (const [sourceScript] of context.language.maps.forEach(virtualCode)) { + // TODO: check capability? + sourceEdit = { + kind: 'delete', + uri: sourceScript.id.toString(), + options: tsDocEdit.options, + annotationId: tsDocEdit.annotationId, + }; + } + } + else { + sourceEdit = tsDocEdit; + } + } + if (sourceEdit) { + pushEditToDocumentChanges(sourceResult.documentChanges, sourceEdit); + hasResult = true; + } + } + } + if (hasResult) { + return sourceResult; + } +} +function pushEditToDocumentChanges(arr, item) { + const current = arr.find(edit => 'textDocument' in edit + && 'textDocument' in item + && edit.textDocument.uri === item.textDocument.uri); + if (current) { + current.edits.push(...item.edits); + } + else { + arr.push(item); + } +} + +Object.defineProperty(provideCodeActions, "__esModule", { value: true }); +provideCodeActions.register = register$A; +const language_core_1$C = languageCore$1; +const cancellation_1$x = cancellation; +const common_1$n = common$4; +const dedupe$9 = dedupe$c; +const featureWorkers_1$q = featureWorkers; +const transform_1$g = transform$2; +function register$A(context) { + return async (uri, range, codeActionContext, token = cancellation_1$x.NoneCancellationToken) => { + const sourceScript = context.language.scripts.get(uri); + if (!sourceScript) { + return; + } + const transformedCodeActions = new WeakSet(); + return await (0, featureWorkers_1$q.languageFeatureWorker)(context, uri, () => ({ range, codeActionContext }), function* (docs) { + const _codeActionContext = { + diagnostics: (0, transform_1$g.transformLocations)(codeActionContext.diagnostics, range => (0, featureWorkers_1$q.getGeneratedRange)(docs, range)), + only: codeActionContext.only, + }; + const mapped = (0, common_1$n.findOverlapCodeRange)(docs[0].offsetAt(range.start), docs[0].offsetAt(range.end), docs[2], language_core_1$C.isCodeActionsEnabled); + if (mapped) { + yield { + range: { + start: docs[1].positionAt(mapped.start), + end: docs[1].positionAt(mapped.end), + }, + codeActionContext: _codeActionContext, + }; + } + }, async (plugin, document, { range, codeActionContext }) => { + if (token.isCancellationRequested) { + return; + } + const pluginIndex = context.plugins.indexOf(plugin); + const diagnostics = codeActionContext.diagnostics.filter(diagnostic => { + const data = diagnostic.data; + if (data && data.version !== document.version) { + return false; + } + return data?.pluginIndex === pluginIndex; + }).map(diagnostic => { + const data = diagnostic.data; + return { + ...diagnostic, + ...data.original, + }; + }); + const codeActions = await plugin[1].provideCodeActions?.(document, range, { + ...codeActionContext, + diagnostics, + }, token); + codeActions?.forEach(codeAction => { + if (plugin[1].resolveCodeAction) { + codeAction.data = { + uri: uri.toString(), + version: document.version, + original: { + data: codeAction.data, + edit: codeAction.edit, + }, + pluginIndex: context.plugins.indexOf(plugin), + }; + } + else { + delete codeAction.data; + } + }); + if (codeActions && plugin[1].transformCodeAction) { + for (let i = 0; i < codeActions.length; i++) { + const transformed = plugin[1].transformCodeAction(codeActions[i]); + if (transformed) { + codeActions[i] = transformed; + transformedCodeActions.add(transformed); + } + } + } + return codeActions; + }, actions => actions + .map(action => { + if (transformedCodeActions.has(action)) { + return action; + } + if (action.edit) { + const edit = (0, transform_1$g.transformWorkspaceEdit)(action.edit, context, 'codeAction'); + if (!edit) { + return; + } + action.edit = edit; + } + return action; + }) + .filter(action => !!action), arr => dedupe$9.withCodeAction(arr.flat())); + }; +} + +var provideCodeLenses = {}; + +Object.defineProperty(provideCodeLenses, "__esModule", { value: true }); +provideCodeLenses.register = register$z; +const language_core_1$B = languageCore$1; +const cancellation_1$w = cancellation; +const featureWorkers_1$p = featureWorkers; +function register$z(context) { + return async (uri, token = cancellation_1$w.NoneCancellationToken) => { + return await (0, featureWorkers_1$p.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$B.isCodeLensEnabled)(mapping.data)), async (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + let codeLens = await plugin[1].provideCodeLenses?.(document, token); + const pluginIndex = context.plugins.indexOf(plugin); + codeLens?.forEach(codeLens => { + if (plugin[1].resolveCodeLens) { + codeLens.data = { + kind: 'normal', + uri: uri.toString(), + original: { + data: codeLens.data, + }, + pluginIndex, + }; + } + else { + delete codeLens.data; + } + }); + const ranges = await plugin[1].provideReferencesCodeLensRanges?.(document, token); + const referencesCodeLens = ranges?.map(range => ({ + range, + data: { + kind: 'references', + sourceFileUri: uri.toString(), + workerFileUri: document.uri, + workerFileRange: range, + pluginIndex: pluginIndex, + }, + })); + codeLens = [ + ...codeLens ?? [], + ...referencesCodeLens ?? [], + ]; + return codeLens; + }, (data, docs) => { + if (!docs) { + return data; + } + return data + .map(codeLens => { + const range = (0, featureWorkers_1$p.getSourceRange)(docs, codeLens.range, language_core_1$B.isCodeLensEnabled); + if (range) { + return { + ...codeLens, + range, + }; + } + }) + .filter(codeLens => !!codeLens); + }, arr => arr.flat()) ?? []; + }; +} + +var provideColorPresentations = {}; + +Object.defineProperty(provideColorPresentations, "__esModule", { value: true }); +provideColorPresentations.register = register$y; +const language_core_1$A = languageCore$1; +const cancellation_1$v = cancellation; +const featureWorkers_1$o = featureWorkers; +function register$y(context) { + return (uri, color, range, token = cancellation_1$v.NoneCancellationToken) => { + return (0, featureWorkers_1$o.languageFeatureWorker)(context, uri, () => range, function* (docs) { + for (const mappedRange of (0, featureWorkers_1$o.getGeneratedRanges)(docs, range, language_core_1$A.isColorEnabled)) { + yield mappedRange; + } + }, (plugin, document, range) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideColorPresentations?.(document, color, range, token); + }, (data, docs) => { + if (!docs) { + return data; + } + return data + .map(colorPresentation => { + if (colorPresentation.textEdit) { + const range = (0, featureWorkers_1$o.getSourceRange)(docs, colorPresentation.textEdit.range); + if (!range) { + return undefined; + } + colorPresentation.textEdit.range = range; + } + if (colorPresentation.additionalTextEdits) { + for (const textEdit of colorPresentation.additionalTextEdits) { + const range = (0, featureWorkers_1$o.getSourceRange)(docs, textEdit.range); + if (!range) { + return undefined; + } + textEdit.range = range; + } + } + return colorPresentation; + }) + .filter(colorPresentation => !!colorPresentation); + }); + }; +} + +var provideCompletionItems = {}; + +Object.defineProperty(provideCompletionItems, "__esModule", { value: true }); +provideCompletionItems.register = register$x; +const language_core_1$z = languageCore$1; +const vscode_uri_1$r = umdExports; +const cancellation_1$u = cancellation; +const featureWorkers_1$n = featureWorkers; +const transform_1$f = transform$2; +function register$x(context) { + let lastResult; + return async (uri, position, completionContext = { triggerKind: 1, }, token = cancellation_1$u.NoneCancellationToken) => { + let langaugeIdAndSnapshot; + let sourceScript; + const decoded = context.decodeEmbeddedDocumentUri(uri); + if (decoded) { + langaugeIdAndSnapshot = context.language.scripts.get(decoded[0])?.generated?.embeddedCodes.get(decoded[1]); + } + else { + sourceScript = context.language.scripts.get(uri); + langaugeIdAndSnapshot = sourceScript; + } + if (!langaugeIdAndSnapshot) { + return { + isIncomplete: false, + items: [], + }; + } + if (completionContext?.triggerKind === 3 + && lastResult?.uri.toString() === uri.toString()) { + for (const cacheData of lastResult.results) { + if (!cacheData.list?.isIncomplete) { + continue; + } + const pluginIndex = context.plugins.findIndex(plugin => plugin[1] === cacheData.plugin); + if (cacheData.embeddedDocumentUri) { + const decoded = context.decodeEmbeddedDocumentUri(cacheData.embeddedDocumentUri); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!sourceScript || !virtualCode) { + continue; + } + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + for (const mapped of (0, featureWorkers_1$n.getGeneratedPositions)(docs, position, data => (0, language_core_1$z.isCompletionEnabled)(data))) { + if (!cacheData.plugin.provideCompletionItems) { + continue; + } + cacheData.list = await cacheData.plugin.provideCompletionItems(embeddedDocument, mapped, completionContext, token); + if (!cacheData.list) { + continue; + } + for (const item of cacheData.list.items) { + if (cacheData.plugin.resolveCompletionItem) { + item.data = { + uri: uri.toString(), + original: { + additionalTextEdits: item.additionalTextEdits, + textEdit: item.textEdit, + data: item.data, + }, + pluginIndex: pluginIndex, + embeddedDocumentUri: embeddedDocument.uri, + }; + } + else { + delete item.data; + } + } + cacheData.list = (0, transform_1$f.transformCompletionList)(cacheData.list, range => (0, featureWorkers_1$n.getSourceRange)(docs, range), embeddedDocument, context); + } + } + } + else { + if (!cacheData.plugin.provideCompletionItems) { + continue; + } + const document = context.documents.get(uri, langaugeIdAndSnapshot.languageId, langaugeIdAndSnapshot.snapshot); + cacheData.list = await cacheData.plugin.provideCompletionItems(document, position, completionContext, token); + if (!cacheData.list) { + continue; + } + for (const item of cacheData.list.items) { + if (cacheData.plugin.resolveCompletionItem) { + item.data = { + uri: uri.toString(), + original: { + additionalTextEdits: item.additionalTextEdits, + textEdit: item.textEdit, + data: item.data, + }, + pluginIndex: pluginIndex, + embeddedDocumentUri: undefined, + }; + } + else { + delete item.data; + } + } + } + } + } + else { + lastResult = { + uri, + results: [], + }; + // monky fix https://github.com/johnsoncodehk/volar/issues/1358 + let isFirstMapping = true; + let mainCompletionUri; + const sortedPlugins = [...context.plugins] + .filter(plugin => !context.disabledServicePlugins.has(plugin[1])) + .sort((a, b) => sortServices(a[1], b[1])); + const worker = async (document, position, docs, codeInfo) => { + for (const plugin of sortedPlugins) { + if (token.isCancellationRequested) { + break; + } + if (!plugin[1].provideCompletionItems) { + continue; + } + if (plugin[1].isAdditionalCompletion && !isFirstMapping) { + continue; + } + if (completionContext?.triggerCharacter && !plugin[0].capabilities.completionProvider?.triggerCharacters?.includes(completionContext.triggerCharacter)) { + continue; + } + const isAdditional = (codeInfo && typeof codeInfo.completion === 'object' && codeInfo.completion.isAdditional) || plugin[1].isAdditionalCompletion; + if (mainCompletionUri && (!isAdditional || mainCompletionUri !== document.uri)) { + continue; + } + // avoid duplicate items with .vue and .vue.html + if (plugin[1].isAdditionalCompletion && lastResult?.results.some(data => data.plugin === plugin[1])) { + continue; + } + let completionList = await plugin[1].provideCompletionItems(document, position, completionContext, token); + if (!completionList || !completionList.items.length) { + continue; + } + if (typeof codeInfo?.completion === 'object' && codeInfo.completion.onlyImport) { + completionList.items = completionList.items.filter(item => !!item.labelDetails); + } + if (!isAdditional) { + mainCompletionUri = document.uri; + } + const pluginIndex = context.plugins.indexOf(plugin); + for (const item of completionList.items) { + if (plugin[1].resolveCompletionItem) { + item.data = { + uri: uri.toString(), + original: { + additionalTextEdits: item.additionalTextEdits, + textEdit: item.textEdit, + data: item.data, + }, + pluginIndex, + embeddedDocumentUri: docs ? document.uri : undefined, + }; + } + else { + delete item.data; + } + } + if (docs) { + completionList = (0, transform_1$f.transformCompletionList)(completionList, range => (0, featureWorkers_1$n.getSourceRange)(docs, range, language_core_1$z.isCompletionEnabled), document, context); + } + lastResult?.results.push({ + embeddedDocumentUri: docs ? vscode_uri_1$r.URI.parse(document.uri) : undefined, + plugin: plugin[1], + list: completionList, + }); + } + isFirstMapping = false; + }; + if (sourceScript?.generated) { + for (const docs of (0, featureWorkers_1$n.forEachEmbeddedDocument)(context, sourceScript, sourceScript.generated.root)) { + let _data; + for (const mappedPosition of (0, featureWorkers_1$n.getGeneratedPositions)(docs, position, data => { + _data = data; + return (0, language_core_1$z.isCompletionEnabled)(data); + })) { + await worker(docs[1], mappedPosition, docs, _data); + } + } + } + else { + const document = context.documents.get(uri, langaugeIdAndSnapshot.languageId, langaugeIdAndSnapshot.snapshot); + await worker(document, position); + } + } + return combineCompletionList(lastResult.results.map(cacheData => cacheData.list)); + function sortServices(a, b) { + return (b.isAdditionalCompletion ? -1 : 1) - (a.isAdditionalCompletion ? -1 : 1); + } + function combineCompletionList(lists) { + return { + isIncomplete: lists.some(list => list?.isIncomplete), + itemDefaults: lists.find(list => list?.itemDefaults)?.itemDefaults, + items: lists.map(list => list?.items ?? []).flat(), + }; + } + }; +} + +var provideDefinition = {}; + +Object.defineProperty(provideDefinition, "__esModule", { value: true }); +provideDefinition.register = register$w; +const vscode_uri_1$q = umdExports; +const cancellation_1$t = cancellation; +const dedupe$8 = dedupe$c; +const featureWorkers_1$m = featureWorkers; +function register$w(context, apiName, isValidPosition) { + return (uri, position, token = cancellation_1$t.NoneCancellationToken) => { + return (0, featureWorkers_1$m.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$m.getGeneratedPositions)(docs, position, isValidPosition), async (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + const recursiveChecker = dedupe$8.createLocationSet(); + const result = []; + await withLinkedCode(document, position, undefined); + return result; + async function withLinkedCode(document, position, originDefinition) { + const api = plugin[1][apiName]; + if (!api) { + return; + } + if (recursiveChecker.has({ uri: document.uri, range: { start: position, end: position } })) { + return; + } + recursiveChecker.add({ uri: document.uri, range: { start: position, end: position } }); + const definitions = await api?.(document, position, token) ?? []; + for (const definition of definitions) { + let foundMirrorPosition = false; + recursiveChecker.add({ uri: definition.targetUri, range: { start: definition.targetRange.start, end: definition.targetRange.start } }); + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$q.URI.parse(definition.targetUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + const linkedCodeMap = virtualCode && sourceScript + ? context.language.linkedCodeMaps.get(virtualCode) + : undefined; + if (sourceScript && virtualCode && linkedCodeMap) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const linkedPos of (0, featureWorkers_1$m.getLinkedCodePositions)(embeddedDocument, linkedCodeMap, definition.targetSelectionRange.start)) { + if (recursiveChecker.has({ uri: embeddedDocument.uri, range: { start: linkedPos, end: linkedPos } })) { + continue; + } + foundMirrorPosition = true; + await withLinkedCode(embeddedDocument, linkedPos, originDefinition ?? definition); + } + } + if (!foundMirrorPosition) { + if (originDefinition) { + result.push({ + ...definition, + originSelectionRange: originDefinition.originSelectionRange, + }); + } + else { + result.push(definition); + } + } + } + } + }, (data, map) => data.map(link => { + if (link.originSelectionRange && map) { + const originSelectionRange = toSourcePositionPreferSurroundedPosition(map, link.originSelectionRange, position); + if (!originSelectionRange) { + return; + } + link.originSelectionRange = originSelectionRange; + } + let foundTargetSelectionRange = false; + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$q.URI.parse(link.targetUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const targetVirtualFile = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && targetVirtualFile) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, targetVirtualFile.id), targetVirtualFile.languageId, targetVirtualFile.snapshot); + for (const [targetScript, targetSourceMap] of context.language.maps.forEach(targetVirtualFile)) { + const sourceDocument = context.documents.get(targetScript.id, targetScript.languageId, targetScript.snapshot); + const docs = [sourceDocument, embeddedDocument, targetSourceMap]; + const targetSelectionRange = (0, featureWorkers_1$m.getSourceRange)(docs, link.targetSelectionRange); + if (!targetSelectionRange) { + continue; + } + foundTargetSelectionRange = true; + let targetRange = (0, featureWorkers_1$m.getSourceRange)(docs, link.targetRange); + link.targetUri = sourceDocument.uri; + // loose range mapping to for template slots, slot properties + link.targetRange = targetRange ?? targetSelectionRange; + link.targetSelectionRange = targetSelectionRange; + } + if (apiName === 'provideDefinition' && !foundTargetSelectionRange) { + for (const [targetScript] of context.language.maps.forEach(targetVirtualFile)) { + if (targetScript.id.toString() !== uri.toString()) { + return { + ...link, + targetUri: targetScript.id.toString(), + targetRange: { + start: { line: 0, character: 0 }, + end: { line: 0, character: 0 }, + }, + targetSelectionRange: { + start: { line: 0, character: 0 }, + end: { line: 0, character: 0 }, + }, + }; + } + } + return; + } + } + return link; + }).filter(link => !!link), arr => dedupe$8.withLocationLinks(arr.flat())); + }; +} +function toSourcePositionPreferSurroundedPosition(docs, mappedRange, position) { + let result; + for (const range of (0, featureWorkers_1$m.getSourceRanges)(docs, mappedRange)) { + if (!result) { + result = range; + } + if ((range.start.line < position.line || (range.start.line === position.line && range.start.character <= position.character)) + && (range.end.line > position.line || (range.end.line === position.line && range.end.character >= position.character))) { + return range; + } + } + return result; +} + +var provideDiagnostics = {}; + +var uriMap = {}; + +Object.defineProperty(uriMap, "__esModule", { value: true }); +uriMap.createUriMap = createUriMap; +function createUriMap(caseSensitive = false) { + const map = new Map(); + const rawUriToNormalizedUri = new Map(); + const normalizedUriToRawUri = new Map(); + return { + get size() { + return map.size; + }, + get [Symbol.toStringTag]() { + return 'UriMap'; + }, + [Symbol.iterator]() { + return this.entries(); + }, + clear() { + rawUriToNormalizedUri.clear(); + normalizedUriToRawUri.clear(); + return map.clear(); + }, + values() { + return map.values(); + }, + *keys() { + for (const normalizedUri of map.keys()) { + yield normalizedUriToRawUri.get(normalizedUri); + } + }, + *entries() { + for (const [normalizedUri, item] of map.entries()) { + yield [normalizedUriToRawUri.get(normalizedUri), item]; + } + }, + forEach(callbackfn, thisArg) { + for (const [uri, item] of this.entries()) { + callbackfn.call(thisArg, item, uri, this); + } + }, + delete(uri) { + return map.delete(toKey(uri)); + }, + get(uri) { + return map.get(toKey(uri)); + }, + has(uri) { + return map.has(toKey(uri)); + }, + set(uri, item) { + map.set(toKey(uri), item); + return this; + }, + }; + function toKey(uri) { + const rawUri = uri.toString(); + if (!rawUriToNormalizedUri.has(rawUri)) { + let normalizedUri = uri.toString(); + if (!caseSensitive) { + normalizedUri = normalizedUri.toLowerCase(); + } + rawUriToNormalizedUri.set(rawUri, normalizedUri); + normalizedUriToRawUri.set(normalizedUri, uri); + } + return rawUriToNormalizedUri.get(rawUri); + } +} + +Object.defineProperty(provideDiagnostics, "__esModule", { value: true }); +provideDiagnostics.errorMarkups = void 0; +provideDiagnostics.register = register$v; +provideDiagnostics.transformDiagnostic = transformDiagnostic$1; +provideDiagnostics.updateRange = updateRange; +const language_core_1$y = languageCore$1; +const vscode_uri_1$p = umdExports; +const cancellation_1$s = cancellation; +const common_1$m = common$4; +const dedupe$7 = dedupe$c; +const featureWorkers_1$l = featureWorkers; +const uriMap_1 = uriMap; +provideDiagnostics.errorMarkups = (0, uriMap_1.createUriMap)(); +function register$v(context) { + const lastResponses = (0, uriMap_1.createUriMap)(); + const cacheMaps = { + semantic: new Map(), + syntactic: new Map(), + }; + context.env.onDidChangeConfiguration?.(() => { + lastResponses.clear(); + cacheMaps.semantic.clear(); + cacheMaps.syntactic.clear(); + }); + return async (uri, response, token = cancellation_1$s.NoneCancellationToken) => { + let langaugeIdAndSnapshot; + const decoded = context.decodeEmbeddedDocumentUri(uri); + if (decoded) { + langaugeIdAndSnapshot = context.language.scripts.get(decoded[0])?.generated?.embeddedCodes.get(decoded[1]); + } + else { + langaugeIdAndSnapshot = context.language.scripts.get(uri); + } + if (!langaugeIdAndSnapshot) { + return []; + } + const document = context.documents.get(uri, langaugeIdAndSnapshot.languageId, langaugeIdAndSnapshot.snapshot); + const lastResponse = lastResponses.get(uri) ?? lastResponses.set(uri, { + semantic: { errors: [] }, + syntactic: { errors: [] }, + }).get(uri); + let updateCacheRangeFailed = false; + let errorsUpdated = false; + let lastCheckCancelAt = 0; + for (const cache of Object.values(lastResponse)) { + const oldSnapshot = cache.snapshot; + const oldDocument = cache.document; + const change = oldSnapshot ? langaugeIdAndSnapshot.snapshot.getChangeRange(oldSnapshot) : undefined; + cache.snapshot = langaugeIdAndSnapshot.snapshot; + cache.document = document; + if (!updateCacheRangeFailed && oldDocument && change) { + const changeRange = { + range: { + start: oldDocument.positionAt(change.span.start), + end: oldDocument.positionAt(change.span.start + change.span.length), + }, + newEnd: document.positionAt(change.span.start + change.newLength), + }; + for (const error of cache.errors) { + if (!updateRange(error.range, changeRange)) { + updateCacheRangeFailed = true; + break; + } + } + } + } + await worker('syntactic', cacheMaps.syntactic, lastResponse.syntactic); + processResponse(); + await worker('semantic', cacheMaps.semantic, lastResponse.semantic); + return collectErrors(); + function processResponse() { + if (errorsUpdated && !updateCacheRangeFailed) { + response?.(collectErrors()); + errorsUpdated = false; + } + } + function collectErrors() { + return Object.values(lastResponse).flatMap(({ errors }) => errors); + } + async function worker(kind, cacheMap, cache) { + const result = await (0, featureWorkers_1$l.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$y.isDiagnosticsEnabled)(mapping.data)), async (plugin, document) => { + const interFileDependencies = plugin[0].capabilities.diagnosticProvider?.interFileDependencies; + if (kind === 'semantic' !== interFileDependencies) { + return; + } + if (Date.now() - lastCheckCancelAt >= 10) { + await (0, common_1$m.sleep)(10); // waiting LSP event polling + lastCheckCancelAt = Date.now(); + } + if (token.isCancellationRequested) { + return; + } + const pluginIndex = context.plugins.indexOf(plugin); + const pluginCache = cacheMap.get(pluginIndex) ?? cacheMap.set(pluginIndex, new Map()).get(pluginIndex); + const cache = pluginCache.get(document.uri); + if (!interFileDependencies && cache && cache.documentVersion === document.version) { + return cache.errors; + } + const errors = await plugin[1].provideDiagnostics?.(document, token) || []; + errors.forEach(error => { + error.data = { + uri: uri.toString(), + version: document.version, + pluginIndex: pluginIndex, + isFormat: false, + original: { + data: error.data, + }, + documentUri: document.uri, + }; + }); + errorsUpdated = true; + pluginCache.set(document.uri, { + documentVersion: document.version, + errors, + }); + return errors; + }, (errors, map) => { + return errors + .map(error => transformDiagnostic$1(context, error, map)) + .filter(error => !!error); + }, arr => dedupe$7.withDiagnostics(arr.flat())); + if (result) { + cache.errors = result; + cache.snapshot = langaugeIdAndSnapshot?.snapshot; + } + } + }; +} +function transformDiagnostic$1(context, error, docs) { + // clone it to avoid modify cache + let _error = { ...error }; + if (docs) { + const range = (0, featureWorkers_1$l.getSourceRange)(docs, error.range, data => (0, language_core_1$y.shouldReportDiagnostics)(data, error.source, error.code)); + if (!range) { + return; + } + _error.range = range; + } + if (_error.relatedInformation) { + const relatedInfos = []; + for (const info of _error.relatedInformation) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$p.URI.parse(info.location.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const range = (0, featureWorkers_1$l.getSourceRange)(docs, info.location.range, data => (0, language_core_1$y.shouldReportDiagnostics)(data, undefined, undefined)); + if (range) { + relatedInfos.push({ + location: { + uri: sourceDocument.uri, + range, + }, + message: info.message, + }); + } + } + } + else { + relatedInfos.push(info); + } + } + _error.relatedInformation = relatedInfos; + } + return _error; +} +function updateRange(range, change) { + if (!updatePosition(range.start, change, false)) { + return; + } + if (!updatePosition(range.end, change, true)) { + return; + } + if (range.end.line === range.start.line && range.end.character <= range.start.character) { + range.end.character++; + } + return range; +} +function updatePosition(position, change, isEnd) { + if (change.range.end.line > position.line) { + if (change.newEnd.line > position.line) { + // No change + return true; + } + else if (change.newEnd.line === position.line) { + position.character = Math.min(position.character, change.newEnd.character); + return true; + } + else if (change.newEnd.line < position.line) { + position.line = change.newEnd.line; + position.character = change.newEnd.character; + return true; + } + } + else if (change.range.end.line === position.line) { + const characterDiff = change.newEnd.character - change.range.end.character; + if (position.character >= change.range.end.character) { + if (change.newEnd.line !== change.range.end.line) { + position.line = change.newEnd.line; + position.character = change.newEnd.character + position.character - change.range.end.character; + } + else { + if (isEnd ? change.range.end.character < position.character : change.range.end.character <= position.character) { + position.character += characterDiff; + } + else { + const offset = change.range.end.character - position.character; + if (-characterDiff > offset) { + position.character += characterDiff + offset; + } + } + } + return true; + } + else { + if (change.newEnd.line === change.range.end.line) { + const offset = change.range.end.character - position.character; + if (-characterDiff > offset) { + position.character += characterDiff + offset; + } + } + else if (change.newEnd.line < change.range.end.line) { + position.line = change.newEnd.line; + position.character = change.newEnd.character; + } + else ; + return true; + } + } + else if (change.range.end.line < position.line) { + position.line += change.newEnd.line - change.range.end.line; + return true; + } + return false; +} + +var provideDocumentColors = {}; + +Object.defineProperty(provideDocumentColors, "__esModule", { value: true }); +provideDocumentColors.register = register$u; +const language_core_1$x = languageCore$1; +const cancellation_1$r = cancellation; +const featureWorkers_1$k = featureWorkers; +function register$u(context) { + return (uri, token = cancellation_1$r.NoneCancellationToken) => { + return (0, featureWorkers_1$k.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$x.isColorEnabled)(mapping.data)), (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideDocumentColors?.(document, token); + }, (data, docs) => { + if (!docs) { + return data; + } + return data + .map(color => { + const range = (0, featureWorkers_1$k.getSourceRange)(docs, color.range, language_core_1$x.isColorEnabled); + if (range) { + return { + range, + color: color.color, + }; + } + }) + .filter(color => !!color); + }, arr => arr.flat()); + }; +} + +var provideDocumentDropEdits = {}; + +Object.defineProperty(provideDocumentDropEdits, "__esModule", { value: true }); +provideDocumentDropEdits.register = register$t; +const cancellation_1$q = cancellation; +const featureWorkers_1$j = featureWorkers; +const transform_1$e = transform$2; +function register$t(context) { + return (uri, position, dataTransfer, token = cancellation_1$q.NoneCancellationToken) => { + return (0, featureWorkers_1$j.languageFeatureWorker)(context, uri, () => position, function* (docs) { + for (const mappedPosition of (0, featureWorkers_1$j.getGeneratedPositions)(docs, position)) { + yield mappedPosition; + } + }, (plugin, document, arg) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideDocumentDropEdits?.(document, arg, dataTransfer, token); + }, edit => { + if (edit.additionalEdit) { + edit.additionalEdit = (0, transform_1$e.transformWorkspaceEdit)(edit.additionalEdit, context, undefined); + } + return edit; + }); + }; +} + +var provideDocumentFormattingEdits = {}; + +Object.defineProperty(provideDocumentFormattingEdits, "__esModule", { value: true }); +provideDocumentFormattingEdits.register = register$s; +const language_core_1$w = languageCore$1; +const vscode_languageserver_textdocument_1$2 = require$$1$2; +const vscode_uri_1$o = umdExports; +const cancellation_1$p = cancellation; +const common_1$l = common$4; +const featureWorkers_1$i = featureWorkers; +function register$s(context) { + return async (uri, options, range, onTypeParams, token = cancellation_1$p.NoneCancellationToken) => { + const sourceScript = context.language.scripts.get(uri); + if (!sourceScript) { + return; + } + let document = context.documents.get(uri, sourceScript.languageId, sourceScript.snapshot); + range ??= { + start: document.positionAt(0), + end: document.positionAt(document.getText().length), + }; + if (!sourceScript.generated) { + return onTypeParams + ? (await tryFormat(document, document, sourceScript, undefined, 0, onTypeParams.position, onTypeParams.ch))?.edits + : (await tryFormat(document, document, sourceScript, undefined, 0, range, undefined))?.edits; + } + const embeddedRanges = new Map(); // TODO: Formatting of upper-level virtual code may cause offset of lower-level selection range + const startOffset = document.offsetAt(range.start); + const endOffset = document.offsetAt(range.end); + for (const code of (0, language_core_1$w.forEachEmbeddedCode)(sourceScript.generated.root)) { + const map = context.language.maps.get(code, sourceScript); + if (map) { + const embeddedRange = (0, common_1$l.findOverlapCodeRange)(startOffset, endOffset, map, language_core_1$w.isFormattingEnabled); + if (embeddedRange) { + if (embeddedRange.start === map.mappings[0].generatedOffsets[0]) { + embeddedRange.start = 0; + } + const lastMapping = map.mappings[map.mappings.length - 1]; + if (embeddedRange.end === lastMapping.generatedOffsets[lastMapping.generatedOffsets.length - 1] + (lastMapping.generatedLengths ?? lastMapping.lengths)[lastMapping.lengths.length - 1]) { + embeddedRange.end = code.snapshot.getLength(); + } + embeddedRanges.set(code.id, embeddedRange); + } + } + } + try { + const originalDocument = document; + let tempSourceSnapshot = sourceScript.snapshot; + let tempVirtualFile = context.language.scripts.set(vscode_uri_1$o.URI.parse(sourceScript.id.toString() + '.tmp'), sourceScript.snapshot, sourceScript.languageId, [sourceScript.generated.languagePlugin])?.generated?.root; + if (!tempVirtualFile) { + return; + } + let currentCodes = []; + for (let depth = 0; (currentCodes = getNestedEmbeddedFiles(context, sourceScript.id, tempVirtualFile, depth)).length > 0; depth++) { + let edits = []; + for (const code of currentCodes) { + if (!code.mappings.some(mapping => (0, language_core_1$w.isFormattingEnabled)(mapping.data))) { + continue; + } + const currentRange = embeddedRanges.get(code.id); + if (!currentRange) { + continue; + } + const isChildRange = [...(0, language_core_1$w.forEachEmbeddedCode)(code)].some(child => { + if (child === code) { + return false; + } + const childRange = embeddedRanges.get(child.id); + return childRange && childRange.end - childRange.start >= currentRange.end - currentRange.start; + }); + if (isChildRange) { + continue; + } + const docs = [ + context.documents.get(uri, sourceScript.languageId, tempSourceSnapshot), + context.documents.get(context.encodeEmbeddedDocumentUri(uri, code.id), code.languageId, code.snapshot), + context.language.mapperFactory(code.mappings), + ]; + let embeddedResult; + if (onTypeParams) { + for (const embeddedPosition of (0, featureWorkers_1$i.getGeneratedPositions)(docs, onTypeParams.position)) { + embeddedResult = await tryFormat(docs[0], docs[1], sourceScript, code, depth, embeddedPosition, onTypeParams.ch); + break; + } + } + else if (currentRange) { + embeddedResult = await tryFormat(docs[0], docs[1], sourceScript, code, depth, { + start: docs[1].positionAt(currentRange.start), + end: docs[1].positionAt(currentRange.end), + }); + } + if (!embeddedResult) { + continue; + } + for (const textEdit of embeddedResult.edits) { + const range = (0, featureWorkers_1$i.getSourceRange)(docs, textEdit.range); + if (range) { + edits.push({ + newText: textEdit.newText, + range, + }); + } + } + } + if (edits.length > 0) { + const newText = vscode_languageserver_textdocument_1$2.TextDocument.applyEdits(document, edits); + document = vscode_languageserver_textdocument_1$2.TextDocument.create(document.uri, document.languageId, document.version + 1, newText); + tempSourceSnapshot = (0, common_1$l.stringToSnapshot)(newText); + tempVirtualFile = context.language.scripts.set(vscode_uri_1$o.URI.parse(sourceScript.id.toString() + '.tmp'), tempSourceSnapshot, sourceScript.languageId, [sourceScript.generated.languagePlugin])?.generated?.root; + if (!tempVirtualFile) { + break; + } + } + } + if (document.getText() === originalDocument.getText()) { + return; + } + const editRange = { + start: originalDocument.positionAt(0), + end: originalDocument.positionAt(originalDocument.getText().length), + }; + const textEdit = { + range: editRange, + newText: document.getText(), + }; + return [textEdit]; + } + finally { + context.language.scripts.delete(vscode_uri_1$o.URI.parse(sourceScript.id.toString() + '.tmp')); + } + async function tryFormat(sourceDocument, document, sourceScript, virtualCode, embeddedLevel, rangeOrPosition, ch) { + if (context.disabledEmbeddedDocumentUris.get(vscode_uri_1$o.URI.parse(document.uri))) { + return; + } + let codeOptions; + rangeOrPosition ??= { + start: document.positionAt(0), + end: document.positionAt(document.getText().length), + }; + if (virtualCode) { + codeOptions = { + level: embeddedLevel, + initialIndentLevel: 0, + }; + if (virtualCode.mappings.length) { + const firstMapping = virtualCode.mappings[0]; + const startOffset = firstMapping.sourceOffsets[0]; + const startPosition = sourceDocument.positionAt(startOffset); + codeOptions.initialIndentLevel = computeInitialIndent(sourceDocument.getText(), sourceDocument.offsetAt({ line: startPosition.line, character: 0 }), options); + } + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + codeOptions = await plugin[1].resolveEmbeddedCodeFormattingOptions?.(sourceScript, virtualCode, codeOptions, token) ?? codeOptions; + } + } + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (token.isCancellationRequested) { + break; + } + let edits; + try { + if (ch !== undefined && rangeOrPosition && 'line' in rangeOrPosition && 'character' in rangeOrPosition) { + if (plugin[0].capabilities.documentOnTypeFormattingProvider?.triggerCharacters?.includes(ch)) { + edits = await plugin[1].provideOnTypeFormattingEdits?.(document, rangeOrPosition, ch, options, codeOptions, token); + } + } + else if (ch === undefined && rangeOrPosition && 'start' in rangeOrPosition && 'end' in rangeOrPosition) { + edits = await plugin[1].provideDocumentFormattingEdits?.(document, rangeOrPosition, options, codeOptions, token); + } + } + catch (err) { + console.warn(err); + } + if (!edits) { + continue; + } + return { + plugin, + edits, + }; + } + } + }; +} +function getNestedEmbeddedFiles(context, uri, rootCode, depth) { + const nestedCodesByLevel = [[rootCode]]; + while (true) { + if (nestedCodesByLevel.length > depth) { + return nestedCodesByLevel[depth]; + } + const nestedCodes = []; + for (const code of nestedCodesByLevel[nestedCodesByLevel.length - 1]) { + if (code.embeddedCodes) { + for (const embedded of code.embeddedCodes) { + if (!context.disabledEmbeddedDocumentUris.get(context.encodeEmbeddedDocumentUri(uri, embedded.id))) { + nestedCodes.push(embedded); + } + } + } + } + nestedCodesByLevel.push(nestedCodes); + } +} +function computeInitialIndent(content, i, options) { + let nChars = 0; + const tabSize = options.tabSize || 4; + while (i < content.length) { + const ch = content.charAt(i); + if (ch === ' ') { + nChars++; + } + else if (ch === '\t') { + nChars += tabSize; + } + else { + break; + } + i++; + } + return Math.floor(nChars / tabSize); +} + +var provideDocumentHighlights = {}; + +Object.defineProperty(provideDocumentHighlights, "__esModule", { value: true }); +provideDocumentHighlights.register = register$r; +const language_core_1$v = languageCore$1; +const vscode_uri_1$n = umdExports; +const cancellation_1$o = cancellation; +const dedupe$6 = dedupe$c; +const featureWorkers_1$h = featureWorkers; +function register$r(context) { + return (uri, position, token = cancellation_1$o.NoneCancellationToken) => { + return (0, featureWorkers_1$h.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$h.getGeneratedPositions)(docs, position, language_core_1$v.isHighlightEnabled), async (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + const recursiveChecker = dedupe$6.createLocationSet(); + const result = []; + await withLinkedCode(document, position); + return result; + async function withLinkedCode(document, position) { + if (!plugin[1].provideDocumentHighlights) { + return; + } + if (recursiveChecker.has({ uri: document.uri, range: { start: position, end: position } })) { + return; + } + recursiveChecker.add({ uri: document.uri, range: { start: position, end: position } }); + const references = await plugin[1].provideDocumentHighlights(document, position, token) ?? []; + for (const reference of references) { + let foundMirrorPosition = false; + recursiveChecker.add({ uri: document.uri, range: { start: reference.range.start, end: reference.range.start } }); + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$n.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + const linkedCodeMap = virtualCode && sourceScript + ? context.language.linkedCodeMaps.get(virtualCode) + : undefined; + if (sourceScript && virtualCode && linkedCodeMap) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const linkedPos of (0, featureWorkers_1$h.getLinkedCodePositions)(embeddedDocument, linkedCodeMap, reference.range.start)) { + if (recursiveChecker.has({ uri: embeddedDocument.uri, range: { start: linkedPos, end: linkedPos } })) { + continue; + } + foundMirrorPosition = true; + await withLinkedCode(embeddedDocument, linkedPos); + } + } + if (!foundMirrorPosition) { + result.push(reference); + } + } + } + }, (data, docs) => data + .map(highlight => { + if (!docs) { + return highlight; + } + const range = (0, featureWorkers_1$h.getSourceRange)(docs, highlight.range, language_core_1$v.isHighlightEnabled); + if (range) { + return { + ...highlight, + range, + }; + } + }) + .filter(highlight => !!highlight), arr => arr.flat()); + }; +} + +var provideDocumentLinks = {}; + +Object.defineProperty(provideDocumentLinks, "__esModule", { value: true }); +provideDocumentLinks.register = register$q; +const language_core_1$u = languageCore$1; +const cancellation_1$n = cancellation; +const featureWorkers_1$g = featureWorkers; +const transform_1$d = transform$2; +function register$q(context) { + return async (uri, token = cancellation_1$n.NoneCancellationToken) => { + return await (0, featureWorkers_1$g.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$u.isDocumentLinkEnabled)(mapping.data)), async (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + const links = await plugin[1].provideDocumentLinks?.(document, token); + for (const link of links ?? []) { + if (plugin[1].resolveDocumentLink) { + link.data = { + uri: uri.toString(), + original: { + data: link.data, + }, + pluginIndex: context.plugins.indexOf(plugin), + }; + } + else { + delete link.data; + } + } + return links; + }, (links, docs) => { + if (!docs) { + return links; + } + return links + .map(link => { + const range = (0, featureWorkers_1$g.getSourceRange)(docs, link.range, language_core_1$u.isDocumentLinkEnabled); + if (!range) { + return; + } + link = { + ...link, + range, + }; + if (link.target) { + link.target = (0, transform_1$d.transformDocumentLinkTarget)(link.target, context).toString(); + } + return link; + }) + .filter(link => !!link); + }, arr => arr.flat()) ?? []; + }; +} + +var provideDocumentSemanticTokens = {}; + +var SemanticTokensBuilder$1 = {}; + +Object.defineProperty(SemanticTokensBuilder$1, "__esModule", { value: true }); +SemanticTokensBuilder$1.SemanticTokensBuilder = void 0; +class SemanticTokensBuilder { + constructor() { + this.initialize(); + } + initialize() { + this._id = Date.now(); + this._prevLine = 0; + this._prevChar = 0; + this._data = []; + this._dataLen = 0; + } + push(line, char, length, tokenType, tokenModifiers) { + let pushLine = line; + let pushChar = char; + if (this._dataLen > 0) { + pushLine -= this._prevLine; + if (pushLine === 0) { + pushChar -= this._prevChar; + } + } + this._data[this._dataLen++] = pushLine; + this._data[this._dataLen++] = pushChar; + this._data[this._dataLen++] = length; + this._data[this._dataLen++] = tokenType; + this._data[this._dataLen++] = tokenModifiers; + this._prevLine = line; + this._prevChar = char; + } + get id() { + return this._id.toString(); + } + build() { + return { + resultId: this.id, + data: this._data, + }; + } +} +SemanticTokensBuilder$1.SemanticTokensBuilder = SemanticTokensBuilder; + +Object.defineProperty(provideDocumentSemanticTokens, "__esModule", { value: true }); +provideDocumentSemanticTokens.register = register$p; +const language_core_1$t = languageCore$1; +const SemanticTokensBuilder_1 = SemanticTokensBuilder$1; +const cancellation_1$m = cancellation; +const common_1$k = common$4; +const featureWorkers_1$f = featureWorkers; +function register$p(context) { + return async (uri, range, legend, _reportProgress, // TODO + token = cancellation_1$m.NoneCancellationToken) => { + const sourceScript = context.language.scripts.get(uri); + if (!sourceScript) { + return; + } + const document = context.documents.get(uri, sourceScript.languageId, sourceScript.snapshot); + if (!range) { + range = { + start: { line: 0, character: 0 }, + end: { line: document.lineCount - 1, character: document.getText().length }, + }; + } + const tokens = await (0, featureWorkers_1$f.languageFeatureWorker)(context, uri, () => range, function* (docs) { + const mapped = (0, common_1$k.findOverlapCodeRange)(docs[0].offsetAt(range.start), docs[0].offsetAt(range.end), docs[2], language_core_1$t.isSemanticTokensEnabled); + if (mapped) { + yield { + start: docs[1].positionAt(mapped.start), + end: docs[1].positionAt(mapped.end), + }; + } + }, (plugin, document, range) => { + if (token?.isCancellationRequested) { + return; + } + return plugin[1].provideDocumentSemanticTokens?.(document, range, legend, token); + }, (tokens, docs) => { + if (!docs) { + return tokens; + } + return tokens + .map(_token => { + const range = (0, featureWorkers_1$f.getSourceRange)(docs, { + start: { line: _token[0], character: _token[1] }, + end: { line: _token[0], character: _token[1] + _token[2] }, + }, language_core_1$t.isSemanticTokensEnabled); + if (range) { + return [range.start.line, range.start.character, range.end.character - range.start.character, _token[3], _token[4]]; + } + }) + .filter(token => !!token); + }, tokens => tokens.flat() + // tokens => reportProgress?.(buildTokens(tokens)), // TODO: this has no effect with LSP + ); + if (tokens) { + return buildTokens(tokens); + } + }; +} +function buildTokens(tokens) { + const builder = new SemanticTokensBuilder_1.SemanticTokensBuilder(); + const sortedTokens = tokens.sort((a, b) => a[0] - b[0] === 0 ? a[1] - b[1] : a[0] - b[0]); + for (const token of sortedTokens) { + builder.push(...token); + } + return builder.build(); +} + +var provideDocumentSymbols = {}; + +Object.defineProperty(provideDocumentSymbols, "__esModule", { value: true }); +provideDocumentSymbols.register = register$o; +const language_core_1$s = languageCore$1; +const cancellation_1$l = cancellation; +const common_1$j = common$4; +const featureWorkers_1$e = featureWorkers; +const transform_1$c = transform$2; +function register$o(context) { + return (uri, token = cancellation_1$l.NoneCancellationToken) => { + return (0, featureWorkers_1$e.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$s.isSymbolsEnabled)(mapping.data)), (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideDocumentSymbols?.(document, token); + }, (data, docs) => { + if (!docs) { + return data; + } + return data + .map(symbol => (0, transform_1$c.transformDocumentSymbol)(symbol, range => (0, featureWorkers_1$e.getSourceRange)(docs, range, language_core_1$s.isSymbolsEnabled))) + .filter(symbol => !!symbol); + }, results => { + for (let i = 0; i < results.length; i++) { + for (let j = 0; j < results.length; j++) { + if (i === j) { + continue; + } + results[i] = results[i].filter(child => { + for (const parent of forEachSymbol(results[j])) { + if ((0, common_1$j.isInsideRange)(parent.range, child.range)) { + parent.children ??= []; + parent.children.push(child); + return false; + } + } + return true; + }); + } + } + return results.flat(); + }); + }; +} +function* forEachSymbol(symbols) { + for (const symbol of symbols) { + if (symbol.children) { + yield* forEachSymbol(symbol.children); + } + yield symbol; + } +} + +var provideFileReferences = {}; + +Object.defineProperty(provideFileReferences, "__esModule", { value: true }); +provideFileReferences.register = register$n; +const language_core_1$r = languageCore$1; +const vscode_uri_1$m = umdExports; +const cancellation_1$k = cancellation; +const dedupe$5 = dedupe$c; +const featureWorkers_1$d = featureWorkers; +function register$n(context) { + return (uri, token = cancellation_1$k.NoneCancellationToken) => { + return (0, featureWorkers_1$d.documentFeatureWorker)(context, uri, () => true, async (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + return await plugin[1].provideFileReferences?.(document, token) ?? []; + }, data => data + .map(reference => { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$m.URI.parse(reference.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!sourceScript || !virtualCode) { + return reference; + } + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const range = (0, featureWorkers_1$d.getSourceRange)(docs, reference.range, language_core_1$r.isReferencesEnabled); + if (range) { + reference.uri = sourceDocument.uri; + reference.range = range; + return reference; + } + } + }) + .filter(reference => !!reference), arr => dedupe$5.withLocations(arr.flat())); + }; +} + +var provideFileRenameEdits = {}; + +Object.defineProperty(provideFileRenameEdits, "__esModule", { value: true }); +provideFileRenameEdits.register = register$m; +const cancellation_1$j = cancellation; +const dedupe$4 = dedupe$c; +const transform_1$b = transform$2; +function register$m(context) { + return async (oldUri, newUri, token = cancellation_1$j.NoneCancellationToken) => { + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (token.isCancellationRequested) { + break; + } + if (!plugin[1].provideFileRenameEdits) { + continue; + } + const workspaceEdit = await plugin[1].provideFileRenameEdits(oldUri, newUri, token); + if (workspaceEdit) { + const result = (0, transform_1$b.transformWorkspaceEdit)(workspaceEdit, context, 'fileName'); + if (result?.documentChanges) { + result.documentChanges = dedupe$4.withDocumentChanges(result.documentChanges); + } + return result; + } + } + }; +} + +var provideFoldingRanges = {}; + +Object.defineProperty(provideFoldingRanges, "__esModule", { value: true }); +provideFoldingRanges.register = register$l; +const language_core_1$q = languageCore$1; +const cancellation_1$i = cancellation; +const featureWorkers_1$c = featureWorkers; +const transform_1$a = transform$2; +function register$l(context) { + return (uri, token = cancellation_1$i.NoneCancellationToken) => { + return (0, featureWorkers_1$c.documentFeatureWorker)(context, uri, docs => docs[2].mappings.some(mapping => (0, language_core_1$q.isFoldingRangesEnabled)(mapping.data)), (plugin, document) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideFoldingRanges?.(document, token); + }, (data, docs) => { + if (!docs) { + return data; + } + return (0, transform_1$a.transformFoldingRanges)(data, range => (0, featureWorkers_1$c.getSourceRange)(docs, range, language_core_1$q.isFoldingRangesEnabled)); + }, arr => arr.flat()); + }; +} + +var provideHover = {}; + +Object.defineProperty(provideHover, "__esModule", { value: true }); +provideHover.register = register$k; +const language_core_1$p = languageCore$1; +const cancellation_1$h = cancellation; +const common_1$i = common$4; +const featureWorkers_1$b = featureWorkers; +const transform_1$9 = transform$2; +const provideDiagnostics_1$1 = provideDiagnostics; +function register$k(context) { + return async (uri, position, token = cancellation_1$h.NoneCancellationToken) => { + let hover = await (0, featureWorkers_1$b.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$b.getGeneratedPositions)(docs, position, language_core_1$p.isHoverEnabled), (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideHover?.(document, position, token); + }, (item, docs) => { + if (!docs || !item.range) { + return item; + } + item.range = (0, featureWorkers_1$b.getSourceRange)(docs, item.range, language_core_1$p.isHoverEnabled); + return item; + }, (hovers) => ({ + contents: { + kind: 'markdown', + value: hovers.map(getHoverTexts).flat().join('\n\n---\n\n'), + }, + range: hovers.find(hover => hover.range && (0, common_1$i.isInsideRange)(hover.range, { start: position, end: position }))?.range ?? hovers[0].range, + })); + const markups = provideDiagnostics_1$1.errorMarkups.get(uri); + if (markups) { + for (const errorAndMarkup of markups) { + if ((0, common_1$i.isInsideRange)(errorAndMarkup.error.range, { start: position, end: position })) { + hover ??= { + contents: { + kind: 'markdown', + value: '', + }, + }; + hover.range = errorAndMarkup.error.range; + if (typeof hover.contents !== 'object' || typeof hover.contents !== 'string') { + hover.contents = { + kind: 'markdown', + value: hover.contents, + }; + } + if (hover.contents.value) { + hover.contents.value += '\n\n---\n\n'; + } + hover.contents.value += errorAndMarkup.markup.value; + } + } + } + return hover; + }; + function getHoverTexts(hover) { + if (typeof hover.contents === 'string') { + return [(0, transform_1$9.transformMarkdown)(hover.contents, context)]; + } + if (Array.isArray(hover.contents)) { + return hover.contents.map(content => { + if (typeof content === 'string') { + return (0, transform_1$9.transformMarkdown)(content, context); + } + if (content.language === 'md') { + return `\`\`\`${content.language}\n${(0, transform_1$9.transformMarkdown)(content.value, context)}\n\`\`\``; + } + else { + return `\`\`\`${content.language}\n${content.value}\n\`\`\``; + } + }); + } + if ('kind' in hover.contents) { + if (hover.contents.kind === 'markdown') { + return [(0, transform_1$9.transformMarkdown)(hover.contents.value, context)]; + } + else { + return [hover.contents.value]; + } + } + if (hover.contents.language === 'md') { + return [`\`\`\`${hover.contents.language}\n${(0, transform_1$9.transformMarkdown)(hover.contents.value, context)}\n\`\`\``]; + } + else { + return [`\`\`\`${hover.contents.language}\n${hover.contents.value}\n\`\`\``]; + } + } +} + +var provideInlayHints$1 = {}; + +Object.defineProperty(provideInlayHints$1, "__esModule", { value: true }); +provideInlayHints$1.register = register$j; +const language_core_1$o = languageCore$1; +const cancellation_1$g = cancellation; +const common_1$h = common$4; +const featureWorkers_1$a = featureWorkers; +const transform_1$8 = transform$2; +function register$j(context) { + return async (uri, range, token = cancellation_1$g.NoneCancellationToken) => { + const sourceScript = context.language.scripts.get(uri); + if (!sourceScript) { + return; + } + return (0, featureWorkers_1$a.languageFeatureWorker)(context, uri, () => range, function* (docs) { + const mapped = (0, common_1$h.findOverlapCodeRange)(docs[0].offsetAt(range.start), docs[0].offsetAt(range.end), docs[2], language_core_1$o.isInlayHintsEnabled); + if (mapped) { + yield { + start: docs[1].positionAt(mapped.start), + end: docs[1].positionAt(mapped.end), + }; + } + }, async (plugin, document, arg) => { + if (token.isCancellationRequested) { + return; + } + const hints = await plugin[1].provideInlayHints?.(document, arg, token); + hints?.forEach(link => { + if (plugin[1].resolveInlayHint) { + link.data = { + uri: uri.toString(), + original: { + data: link.data, + }, + pluginIndex: context.plugins.indexOf(plugin), + }; + } + else { + delete link.data; + } + }); + return hints; + }, (inlayHints, docs) => { + if (!docs) { + return inlayHints; + } + return inlayHints + .map((_inlayHint) => { + const edits = _inlayHint.textEdits + ?.map(textEdit => (0, transform_1$8.transformTextEdit)(textEdit, range => (0, featureWorkers_1$a.getSourceRange)(docs, range), docs[1])) + .filter(textEdit => !!textEdit); + for (const position of (0, featureWorkers_1$a.getSourcePositions)(docs, _inlayHint.position, language_core_1$o.isInlayHintsEnabled)) { + return { + ..._inlayHint, + position, + textEdits: edits, + }; + } + }) + .filter(hint => !!hint); + }, arr => arr.flat()); + }; +} + +var provideMoniker = {}; + +Object.defineProperty(provideMoniker, "__esModule", { value: true }); +provideMoniker.register = register$i; +const language_core_1$n = languageCore$1; +const cancellation_1$f = cancellation; +const featureWorkers_1$9 = featureWorkers; +function register$i(context) { + return (uri, position, token = cancellation_1$f.NoneCancellationToken) => { + return (0, featureWorkers_1$9.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$9.getGeneratedPositions)(docs, position, language_core_1$n.isMonikerEnabled), (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideMoniker?.(document, position, token); + }, result => result, results => results.flat()); + }; +} + +var provideInlineValue = {}; + +Object.defineProperty(provideInlineValue, "__esModule", { value: true }); +provideInlineValue.register = register$h; +const language_core_1$m = languageCore$1; +const cancellation_1$e = cancellation; +const featureWorkers_1$8 = featureWorkers; +function register$h(context) { + return (uri, range, ivContext, token = cancellation_1$e.NoneCancellationToken) => { + return (0, featureWorkers_1$8.languageFeatureWorker)(context, uri, () => range, docs => (0, featureWorkers_1$8.getGeneratedRanges)(docs, range, language_core_1$m.isInlineValueEnabled), (plugin, document, range) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideInlineValues?.(document, range, ivContext, token); + }, (items, docs) => { + if (!docs) { + return items; + } + return items + .map(item => { + const mappedRange = (0, featureWorkers_1$8.getSourceRange)(docs, item.range, language_core_1$m.isInlineValueEnabled); + if (mappedRange) { + item.range = mappedRange; + return item; + } + }) + .filter(item => !!item); + }, results => results.flat()); + }; +} + +var provideLinkedEditingRanges = {}; + +Object.defineProperty(provideLinkedEditingRanges, "__esModule", { value: true }); +provideLinkedEditingRanges.register = register$g; +const language_core_1$l = languageCore$1; +const cancellation_1$d = cancellation; +const featureWorkers_1$7 = featureWorkers; +function register$g(context) { + return (uri, position, token = cancellation_1$d.NoneCancellationToken) => { + return (0, featureWorkers_1$7.languageFeatureWorker)(context, uri, () => position, function* (docs) { + for (const pos of (0, featureWorkers_1$7.getGeneratedPositions)(docs, position, language_core_1$l.isLinkedEditingEnabled)) { + yield pos; + } + }, (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideLinkedEditingRanges?.(document, position, token); + }, (ranges, docs) => { + if (!docs) { + return ranges; + } + return { + wordPattern: ranges.wordPattern, + ranges: ranges.ranges + .map(range => (0, featureWorkers_1$7.getSourceRange)(docs, range, language_core_1$l.isLinkedEditingEnabled)) + .filter(range => !!range), + }; + }); + }; +} + +var provideReferences = {}; + +Object.defineProperty(provideReferences, "__esModule", { value: true }); +provideReferences.register = register$f; +const language_core_1$k = languageCore$1; +const vscode_uri_1$l = umdExports; +const cancellation_1$c = cancellation; +const dedupe$3 = dedupe$c; +const featureWorkers_1$6 = featureWorkers; +function register$f(context) { + return (uri, position, referenceContext, token = cancellation_1$c.NoneCancellationToken) => { + return (0, featureWorkers_1$6.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$6.getGeneratedPositions)(docs, position, language_core_1$k.isReferencesEnabled), async (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + const recursiveChecker = dedupe$3.createLocationSet(); + const result = []; + await withLinkedCode(document, position); + return result; + async function withLinkedCode(document, position) { + if (!plugin[1].provideReferences) { + return; + } + if (recursiveChecker.has({ uri: document.uri, range: { start: position, end: position } })) { + return; + } + recursiveChecker.add({ uri: document.uri, range: { start: position, end: position } }); + const references = await plugin[1].provideReferences(document, position, referenceContext, token) ?? []; + for (const reference of references) { + let foundMirrorPosition = false; + recursiveChecker.add({ uri: reference.uri, range: { start: reference.range.start, end: reference.range.start } }); + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$l.URI.parse(reference.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + const linkedCodeMap = virtualCode && sourceScript + ? context.language.linkedCodeMaps.get(virtualCode) + : undefined; + if (sourceScript && virtualCode && linkedCodeMap) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const linkedPos of (0, featureWorkers_1$6.getLinkedCodePositions)(embeddedDocument, linkedCodeMap, reference.range.start)) { + if (recursiveChecker.has({ uri: embeddedDocument.uri, range: { start: linkedPos, end: linkedPos } })) { + continue; + } + foundMirrorPosition = true; + await withLinkedCode(embeddedDocument, linkedPos); + } + } + if (!foundMirrorPosition) { + result.push(reference); + } + } + } + }, data => { + const results = []; + for (const reference of data) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$l.URI.parse(reference.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const range = (0, featureWorkers_1$6.getSourceRange)(docs, reference.range, language_core_1$k.isReferencesEnabled); + if (range) { + results.push({ + uri: sourceDocument.uri, + range, + }); + } + } + } + else { + results.push(reference); + } + } + return results; + }, arr => dedupe$3.withLocations(arr.flat())); + }; +} + +var provideRenameEdits = {}; + +Object.defineProperty(provideRenameEdits, "__esModule", { value: true }); +provideRenameEdits.register = register$e; +provideRenameEdits.mergeWorkspaceEdits = mergeWorkspaceEdits; +const language_core_1$j = languageCore$1; +const vscode_uri_1$k = umdExports; +const cancellation_1$b = cancellation; +const dedupe$2 = dedupe$c; +const featureWorkers_1$5 = featureWorkers; +const transform_1$7 = transform$2; +function register$e(context) { + return (uri, position, newName, token = cancellation_1$b.NoneCancellationToken) => { + return (0, featureWorkers_1$5.languageFeatureWorker)(context, uri, () => ({ position, newName }), function* (docs) { + let _data; + for (const mappedPosition of (0, featureWorkers_1$5.getGeneratedPositions)(docs, position, data => { + _data = data; + return (0, language_core_1$j.isRenameEnabled)(data); + })) { + yield { + position: mappedPosition, + newName: (0, language_core_1$j.resolveRenameNewName)(newName, _data), + }; + } + }, async (plugin, document, params) => { + if (token.isCancellationRequested) { + return; + } + const recursiveChecker = dedupe$2.createLocationSet(); + let result; + await withLinkedCode(document, params.position, params.newName); + return result; + async function withLinkedCode(document, position, newName) { + if (!plugin[1].provideRenameEdits) { + return; + } + if (recursiveChecker.has({ uri: document.uri, range: { start: position, end: position } })) { + return; + } + recursiveChecker.add({ uri: document.uri, range: { start: position, end: position } }); + const workspaceEdit = await plugin[1].provideRenameEdits(document, position, newName, token); + if (!workspaceEdit) { + return; + } + if (!result) { + result = {}; + } + if (workspaceEdit.changes) { + for (const editUri in workspaceEdit.changes) { + const textEdits = workspaceEdit.changes[editUri]; + for (const textEdit of textEdits) { + let foundMirrorPosition = false; + recursiveChecker.add({ uri: editUri, range: { start: textEdit.range.start, end: textEdit.range.start } }); + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$k.URI.parse(editUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + const linkedCodeMap = virtualCode && sourceScript + ? context.language.linkedCodeMaps.get(virtualCode) + : undefined; + if (sourceScript && virtualCode && linkedCodeMap) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const linkedPos of (0, featureWorkers_1$5.getLinkedCodePositions)(embeddedDocument, linkedCodeMap, textEdit.range.start)) { + if (recursiveChecker.has({ uri: embeddedDocument.uri, range: { start: linkedPos, end: linkedPos } })) { + continue; + } + foundMirrorPosition = true; + await withLinkedCode(embeddedDocument, linkedPos, newName); + } + } + if (!foundMirrorPosition) { + if (!result.changes) { + result.changes = {}; + } + if (!result.changes[editUri]) { + result.changes[editUri] = []; + } + result.changes[editUri].push(textEdit); + } + } + } + } + if (workspaceEdit.changeAnnotations) { + for (const uri in workspaceEdit.changeAnnotations) { + if (!result.changeAnnotations) { + result.changeAnnotations = {}; + } + result.changeAnnotations[uri] = workspaceEdit.changeAnnotations[uri]; + } + } + if (workspaceEdit.documentChanges) { + if (!result.documentChanges) { + result.documentChanges = []; + } + result.documentChanges = result.documentChanges.concat(workspaceEdit.documentChanges); + } + } + }, data => { + return (0, transform_1$7.transformWorkspaceEdit)(data, context, 'rename'); + }, workspaceEdits => { + const mainEdit = workspaceEdits[0]; + const otherEdits = workspaceEdits.slice(1); + mergeWorkspaceEdits(mainEdit, ...otherEdits); + if (mainEdit.changes) { + for (const uri in mainEdit.changes) { + mainEdit.changes[uri] = dedupe$2.withTextEdits(mainEdit.changes[uri]); + } + } + return workspaceEdits[0]; + }); + }; +} +function mergeWorkspaceEdits(original, ...others) { + for (const other of others) { + for (const uri in other.changeAnnotations) { + if (!original.changeAnnotations) { + original.changeAnnotations = {}; + } + original.changeAnnotations[uri] = other.changeAnnotations[uri]; + } + for (const uri in other.changes) { + if (!original.changes) { + original.changes = {}; + } + if (!original.changes[uri]) { + original.changes[uri] = []; + } + const edits = other.changes[uri]; + original.changes[uri] = original.changes[uri].concat(edits); + } + if (other.documentChanges) { + if (!original.documentChanges) { + original.documentChanges = []; + } + for (const docChange of other.documentChanges) { + (0, transform_1$7.pushEditToDocumentChanges)(original.documentChanges, docChange); + } + } + } +} + +var provideRenameRange = {}; + +Object.defineProperty(provideRenameRange, "__esModule", { value: true }); +provideRenameRange.register = register$d; +const language_core_1$i = languageCore$1; +const cancellation_1$a = cancellation; +const featureWorkers_1$4 = featureWorkers; +function register$d(context) { + return (uri, position, token = cancellation_1$a.NoneCancellationToken) => { + return (0, featureWorkers_1$4.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$4.getGeneratedPositions)(docs, position, language_core_1$i.isRenameEnabled), (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + return plugin[1].provideRenameRange?.(document, position, token); + }, (item, docs) => { + if (!docs) { + return item; + } + if ('start' in item && 'end' in item) { + return (0, featureWorkers_1$4.getSourceRange)(docs, item); + } + return item; + }, prepares => { + for (const prepare of prepares) { + if ('start' in prepare && 'end' in prepare) { + return prepare; // if has any valid range, ignore other errors + } + } + return prepares[0]; + }); + }; +} + +var provideSelectionRanges = {}; + +Object.defineProperty(provideSelectionRanges, "__esModule", { value: true }); +provideSelectionRanges.register = register$c; +const language_core_1$h = languageCore$1; +const cancellation_1$9 = cancellation; +const common_1$g = common$4; +const featureWorkers_1$3 = featureWorkers; +const transform_1$6 = transform$2; +function register$c(context) { + return (uri, positions, token = cancellation_1$9.NoneCancellationToken) => { + return (0, featureWorkers_1$3.languageFeatureWorker)(context, uri, () => positions, function* (docs) { + const result = positions + .map(position => { + for (const mappedPosition of (0, featureWorkers_1$3.getGeneratedPositions)(docs, position, language_core_1$h.isSelectionRangesEnabled)) { + return mappedPosition; + } + }) + .filter(position => !!position); + if (result.length) { + yield result; + } + }, async (plugin, document, positions) => { + if (token.isCancellationRequested) { + return; + } + const selectionRanges = await plugin[1].provideSelectionRanges?.(document, positions, token); + if (selectionRanges && selectionRanges.length !== positions.length) { + console.error('Selection ranges count should be equal to positions count:', plugin[0].name, selectionRanges.length, positions.length); + return; + } + return selectionRanges; + }, (data, docs) => { + if (!docs) { + return data; + } + return (0, transform_1$6.transformSelectionRanges)(data, range => (0, featureWorkers_1$3.getSourceRange)(docs, range, language_core_1$h.isSelectionRangesEnabled)); + }, results => { + const result = []; + for (let i = 0; i < positions.length; i++) { + let pluginResults = []; + for (const ranges of results) { + pluginResults.push(ranges[i]); + } + pluginResults = pluginResults.sort((a, b) => { + if ((0, common_1$g.isInsideRange)(a.range, b.range)) { + return 1; + } + if ((0, common_1$g.isInsideRange)(b.range, a.range)) { + return -1; + } + return 0; + }); + for (let j = 1; j < pluginResults.length; j++) { + let top = pluginResults[j - 1]; + const parent = pluginResults[j]; + while (top.parent && (0, common_1$g.isInsideRange)(parent.range, top.parent.range) && !(0, common_1$g.isEqualRange)(parent.range, top.parent.range)) { + top = top.parent; + } + if (top) { + top.parent = parent; + } + } + result.push(pluginResults[0]); + } + return result; + }); + }; +} + +var provideSignatureHelp = {}; + +Object.defineProperty(provideSignatureHelp, "__esModule", { value: true }); +provideSignatureHelp.register = register$b; +const language_core_1$g = languageCore$1; +const cancellation_1$8 = cancellation; +const featureWorkers_1$2 = featureWorkers; +function register$b(context) { + return (uri, position, signatureHelpContext = { + triggerKind: 1, + isRetrigger: false, + }, token = cancellation_1$8.NoneCancellationToken) => { + return (0, featureWorkers_1$2.languageFeatureWorker)(context, uri, () => position, docs => (0, featureWorkers_1$2.getGeneratedPositions)(docs, position, language_core_1$g.isSignatureHelpEnabled), (plugin, document, position) => { + if (token.isCancellationRequested) { + return; + } + if (signatureHelpContext?.triggerKind === 2 + && signatureHelpContext.triggerCharacter + && !(signatureHelpContext.isRetrigger + ? plugin[0].capabilities.signatureHelpProvider?.retriggerCharacters + : plugin[0].capabilities.signatureHelpProvider?.triggerCharacters)?.includes(signatureHelpContext.triggerCharacter)) { + return; + } + return plugin[1].provideSignatureHelp?.(document, position, signatureHelpContext, token); + }, data => data); + }; +} + +var provideWorkspaceDiagnostics = {}; + +Object.defineProperty(provideWorkspaceDiagnostics, "__esModule", { value: true }); +provideWorkspaceDiagnostics.register = register$a; +const vscode_uri_1$j = umdExports; +const cancellation_1$7 = cancellation; +const provideDiagnostics_1 = provideDiagnostics; +function register$a(context) { + return async (token = cancellation_1$7.NoneCancellationToken) => { + const allItems = []; + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (token.isCancellationRequested) { + break; + } + if (!plugin[1].provideWorkspaceDiagnostics) { + continue; + } + const report = await plugin[1].provideWorkspaceDiagnostics(token); + if (!report) { + continue; + } + const items = report + .map(item => { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$j.URI.parse(item.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode && sourceScript) { + if (item.kind === 'unchanged') { + return { + ...item, + uri: sourceScript.id.toString(), + }; + } + else { + const map = context.language.maps.get(virtualCode, sourceScript); + const docs = [ + context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot), + context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot), + map, + ]; + return { + ...item, + items: item.items + .map(error => (0, provideDiagnostics_1.transformDiagnostic)(context, error, docs)) + .filter(error => !!error) + }; + } + } + else { + if (item.kind === 'unchanged') { + return item; + } + return { + ...item, + items: item.items + .map(error => (0, provideDiagnostics_1.transformDiagnostic)(context, error, undefined)) + .filter(error => !!error) + }; + } + }); + allItems.push(...items); + } + return allItems; + }; +} + +var provideWorkspaceSymbols = {}; + +Object.defineProperty(provideWorkspaceSymbols, "__esModule", { value: true }); +provideWorkspaceSymbols.register = register$9; +const vscode_uri_1$i = umdExports; +const cancellation_1$6 = cancellation; +const featureWorkers_1$1 = featureWorkers; +const transform_1$5 = transform$2; +function register$9(context) { + return async (query, token = cancellation_1$6.NoneCancellationToken) => { + const symbolsList = []; + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (token.isCancellationRequested) { + break; + } + if (!plugin[1].provideWorkspaceSymbols) { + continue; + } + const embeddedSymbols = await plugin[1].provideWorkspaceSymbols(query, token); + if (!embeddedSymbols) { + continue; + } + const symbols = embeddedSymbols + .map(symbol => (0, transform_1$5.transformWorkspaceSymbol)(symbol, loc => { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$i.URI.parse(loc.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + const range = (0, featureWorkers_1$1.getSourceRange)(docs, loc.range); + if (range) { + return { uri: sourceDocument.uri, range }; + } + } + } + else { + return loc; + } + })) + .filter(symbol => !!symbol); + symbols?.forEach(symbol => { + if (plugin[1].resolveWorkspaceSymbol) { + symbol.data = { + original: { + data: symbol.data, + }, + pluginIndex: context.plugins.indexOf(plugin), + }; + } + else { + delete symbol.data; + } + }); + symbolsList.push(symbols); + } + return symbolsList.flat(); + }; +} + +var resolveCodeAction = {}; + +Object.defineProperty(resolveCodeAction, "__esModule", { value: true }); +resolveCodeAction.register = register$8; +const cancellation_1$5 = cancellation; +const transform_1$4 = transform$2; +function register$8(context) { + return async (item, token = cancellation_1$5.NoneCancellationToken) => { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveCodeAction) { + delete item.data; + return item; + } + Object.assign(item, data.original); + item = await plugin[1].resolveCodeAction(item, token); + item = plugin[1].transformCodeAction?.(item) + ?? (item.edit + ? { + ...item, + edit: (0, transform_1$4.transformWorkspaceEdit)(item.edit, context, 'codeAction', { [data.uri]: data.version }), + } + : item); + } + delete item.data; + return item; + }; +} + +var resolveCodeLens = {}; + +Object.defineProperty(resolveCodeLens, "__esModule", { value: true }); +resolveCodeLens.register = register$7; +const vscode_uri_1$h = umdExports; +const cancellation_1$4 = cancellation; +const references = provideReferences; +function register$7(context) { + const findReferences = references.register(context); + return async (item, token = cancellation_1$4.NoneCancellationToken) => { + const data = item.data; + if (data?.kind === 'normal') { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveCodeLens) { + delete item.data; + return item; + } + Object.assign(item, data.original); + item = await plugin[1].resolveCodeLens(item, token); + // item.range already transformed in codeLens request + } + else if (data?.kind === 'references') { + const references = await findReferences(vscode_uri_1$h.URI.parse(data.sourceFileUri), item.range.start, { includeDeclaration: false }, token) ?? []; + item.command = context.commands.showReferences.create(data.sourceFileUri, item.range.start, references); + } + delete item.data; + return item; + }; +} + +var resolveCompletionItem = {}; + +Object.defineProperty(resolveCompletionItem, "__esModule", { value: true }); +resolveCompletionItem.register = register$6; +const vscode_uri_1$g = umdExports; +const cancellation_1$3 = cancellation; +const featureWorkers_1 = featureWorkers; +const transform_1$3 = transform$2; +function register$6(context) { + return async (item, token = cancellation_1$3.NoneCancellationToken) => { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveCompletionItem) { + delete item.data; + return item; + } + item = Object.assign(item, data.original); + if (data.embeddedDocumentUri) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$g.URI.parse(data.embeddedDocumentUri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript && virtualCode) { + const embeddedDocument = context.documents.get(context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id), virtualCode.languageId, virtualCode.snapshot); + for (const [sourceScript, map] of context.language.maps.forEach(virtualCode)) { + const sourceDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const docs = [sourceDocument, embeddedDocument, map]; + item = await plugin[1].resolveCompletionItem(item, token); + item = plugin[1].transformCompletionItem?.(item) ?? (0, transform_1$3.transformCompletionItem)(item, embeddedRange => (0, featureWorkers_1.getSourceRange)(docs, embeddedRange), embeddedDocument, context); + } + } + } + else { + item = await plugin[1].resolveCompletionItem(item, token); + } + } + // TODO: monkey fix import ts file icon + if (item.detail !== item.detail + '.ts') { + item.detail = item.detail; + } + delete item.data; + return item; + }; +} + +var resolveDocumentLink = {}; + +Object.defineProperty(resolveDocumentLink, "__esModule", { value: true }); +resolveDocumentLink.register = register$5; +const cancellation_1$2 = cancellation; +const transform_1$2 = transform$2; +function register$5(context) { + return async (item, token = cancellation_1$2.NoneCancellationToken) => { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveDocumentLink) { + delete item.data; + return item; + } + Object.assign(item, data.original); + item = await plugin[1].resolveDocumentLink(item, token); + if (item.target) { + item.target = (0, transform_1$2.transformDocumentLinkTarget)(item.target, context).toString(); + } + } + delete item.data; + return item; + }; +} + +var resolveInlayHint = {}; + +Object.defineProperty(resolveInlayHint, "__esModule", { value: true }); +resolveInlayHint.register = register$4; +const cancellation_1$1 = cancellation; +function register$4(context) { + return async (item, token = cancellation_1$1.NoneCancellationToken) => { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveInlayHint) { + delete item.data; + return item; + } + Object.assign(item, data.original); + item = await plugin[1].resolveInlayHint(item, token); + } + delete item.data; + return item; + }; +} + +var resolveWorkspaceSymbol = {}; + +Object.defineProperty(resolveWorkspaceSymbol, "__esModule", { value: true }); +resolveWorkspaceSymbol.register = register$3; +const cancellation_1 = cancellation; +function register$3(context) { + return async (item, token = cancellation_1.NoneCancellationToken) => { + const data = item.data; + if (data) { + const plugin = context.plugins[data.pluginIndex]; + if (!plugin[1].resolveWorkspaceSymbol) { + delete item.data; + return item; + } + Object.assign(item, data.original); + item = await plugin[1].resolveWorkspaceSymbol(item, token); + } + delete item.data; + return item; + }; +} + +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.embeddedContentScheme = void 0; + exports.createLanguageService = createLanguageService; + exports.decodeEmbeddedDocumentUri = decodeEmbeddedDocumentUri; + exports.encodeEmbeddedDocumentUri = encodeEmbeddedDocumentUri; + const language_core_1 = languageCore$1; + const vscode_languageserver_textdocument_1 = require$$1$2; + const vscode_uri_1 = umdExports; + const autoInsert = provideAutoInsertSnippet; + const hierarchy = provideCallHierarchyItems; + const codeActions = provideCodeActions; + const codeLens = provideCodeLenses; + const colorPresentations = provideColorPresentations; + const completions = provideCompletionItems; + const definition = provideDefinition; + const diagnostics = provideDiagnostics; + const documentColors = provideDocumentColors; + const documentDrop = provideDocumentDropEdits; + const format = provideDocumentFormattingEdits; + const documentHighlight = provideDocumentHighlights; + const documentLink = provideDocumentLinks; + const semanticTokens = provideDocumentSemanticTokens; + const documentSymbols = provideDocumentSymbols; + const fileReferences = provideFileReferences; + const fileRename = provideFileRenameEdits; + const foldingRanges = provideFoldingRanges; + const hover = provideHover; + const inlayHints = provideInlayHints$1; + const moniker = provideMoniker; + const inlineValue = provideInlineValue; + const linkedEditing = provideLinkedEditingRanges; + const references = provideReferences; + const rename = provideRenameEdits; + const renamePrepare = provideRenameRange; + const selectionRanges = provideSelectionRanges; + const signatureHelp = provideSignatureHelp; + const workspaceDiagnostics = provideWorkspaceDiagnostics; + const workspaceSymbol = provideWorkspaceSymbols; + const codeActionResolve = resolveCodeAction; + const codeLensResolve = resolveCodeLens; + const completionResolve = resolveCompletionItem; + const documentLinkResolve = resolveDocumentLink; + const inlayHintResolve = resolveInlayHint; + const workspaceSymbolResolve = resolveWorkspaceSymbol; + const cancellation_1 = cancellation; + const uriMap_1 = uriMap; + exports.embeddedContentScheme = 'volar-embedded-content'; + function createLanguageService(language, plugins, env, project) { + const documentVersions = (0, uriMap_1.createUriMap)(); + const snapshot2Doc = new WeakMap(); + const context = { + language, + project, + getLanguageService: () => langaugeService, + documents: { + get(uri, languageId, snapshot) { + if (!snapshot2Doc.has(snapshot)) { + snapshot2Doc.set(snapshot, (0, uriMap_1.createUriMap)()); + } + const map = snapshot2Doc.get(snapshot); + if (!map.has(uri)) { + const version = documentVersions.get(uri) ?? 0; + documentVersions.set(uri, version + 1); + map.set(uri, vscode_languageserver_textdocument_1.TextDocument.create(uri.toString(), languageId, version, snapshot.getText(0, snapshot.getLength()))); + } + return map.get(uri); + }, + }, + env, + inject: (key, ...args) => { + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + const provide = plugin[1].provide?.[key]; + if (provide) { + return provide(...args); + } + } + }, + plugins: [], + commands: { + rename: { + create(uri, position) { + return { + title: '', + command: 'editor.action.rename', + arguments: [ + uri, + position, + ], + }; + }, + is(command) { + return command.command === 'editor.action.rename'; + }, + }, + showReferences: { + create(uri, position, locations) { + return { + title: locations.length === 1 ? '1 reference' : `${locations.length} references`, + command: 'editor.action.showReferences', + arguments: [ + uri, + position, + locations, + ], + }; + }, + is(command) { + return command.command === 'editor.action.showReferences'; + }, + }, + setSelection: { + create(position) { + return { + title: '', + command: 'setSelection', + arguments: [{ + selection: { + selectionStartLineNumber: position.line + 1, + positionLineNumber: position.line + 1, + selectionStartColumn: position.character + 1, + positionColumn: position.character + 1, + }, + }], + }; + }, + is(command) { + return command.command === 'setSelection'; + }, + }, + }, + disabledEmbeddedDocumentUris: (0, uriMap_1.createUriMap)(), + disabledServicePlugins: new WeakSet(), + decodeEmbeddedDocumentUri, + encodeEmbeddedDocumentUri, + }; + for (const plugin of plugins) { + context.plugins.push([plugin, plugin.create(context)]); + } + const langaugeService = createLanguageServiceBase(plugins, context); + return langaugeService; + } + function decodeEmbeddedDocumentUri(maybeEmbeddedContentUri) { + if (maybeEmbeddedContentUri.scheme === exports.embeddedContentScheme) { + const embeddedCodeId = decodeURIComponent(maybeEmbeddedContentUri.authority); + const documentUri = decodeURIComponent(maybeEmbeddedContentUri.path.substring(1)); + return [ + vscode_uri_1.URI.parse(documentUri), + embeddedCodeId, + ]; + } + } + function encodeEmbeddedDocumentUri(documentUri, embeddedContentId) { + if (embeddedContentId !== embeddedContentId.toLowerCase()) { + console.error(`embeddedContentId must be lowercase: ${embeddedContentId}`); + } + return vscode_uri_1.URI.from({ + scheme: exports.embeddedContentScheme, + authority: encodeURIComponent(embeddedContentId), + path: '/' + encodeURIComponent(documentUri.toString()), + }); + } + function createLanguageServiceBase(plugins, context) { + const tokenModifiers = plugins.map(plugin => plugin.capabilities.semanticTokensProvider?.legend?.tokenModifiers ?? []).flat(); + const tokenTypes = plugins.map(plugin => plugin.capabilities.semanticTokensProvider?.legend?.tokenTypes ?? []).flat(); + return { + semanticTokenLegend: { + tokenModifiers: [...new Set(tokenModifiers)], + tokenTypes: [...new Set(tokenTypes)], + }, + commands: plugins.map(plugin => plugin.capabilities.executeCommandProvider?.commands ?? []).flat(), + triggerCharacters: plugins.map(plugin => plugin.capabilities.completionProvider?.triggerCharacters ?? []).flat(), + autoFormatTriggerCharacters: plugins.map(plugin => plugin.capabilities.documentOnTypeFormattingProvider?.triggerCharacters ?? []).flat(), + signatureHelpTriggerCharacters: plugins.map(plugin => plugin.capabilities.signatureHelpProvider?.triggerCharacters ?? []).flat(), + signatureHelpRetriggerCharacters: plugins.map(plugin => plugin.capabilities.signatureHelpProvider?.retriggerCharacters ?? []).flat(), + executeCommand(command, args, token = cancellation_1.NoneCancellationToken) { + for (const plugin of context.plugins) { + if (context.disabledServicePlugins.has(plugin[1])) { + continue; + } + if (!plugin[1].executeCommand || !plugin[0].capabilities.executeCommandProvider?.commands.includes(command)) { + continue; + } + return plugin[1].executeCommand(command, args, token); + } + }, + getDocumentFormattingEdits: format.register(context), + getFoldingRanges: foldingRanges.register(context), + getSelectionRanges: selectionRanges.register(context), + getLinkedEditingRanges: linkedEditing.register(context), + getDocumentSymbols: documentSymbols.register(context), + getDocumentColors: documentColors.register(context), + getColorPresentations: colorPresentations.register(context), + getDiagnostics: diagnostics.register(context), + getWorkspaceDiagnostics: workspaceDiagnostics.register(context), + getReferences: references.register(context), + getFileReferences: fileReferences.register(context), + getDeclaration: definition.register(context, 'provideDeclaration', language_core_1.isDefinitionEnabled), + getDefinition: definition.register(context, 'provideDefinition', language_core_1.isDefinitionEnabled), + getTypeDefinition: definition.register(context, 'provideTypeDefinition', language_core_1.isTypeDefinitionEnabled), + getImplementations: definition.register(context, 'provideImplementation', language_core_1.isImplementationEnabled), + getRenameRange: renamePrepare.register(context), + getRenameEdits: rename.register(context), + getFileRenameEdits: fileRename.register(context), + getSemanticTokens: semanticTokens.register(context), + getHover: hover.register(context), + getCompletionItems: completions.register(context), + getCodeActions: codeActions.register(context), + getSignatureHelp: signatureHelp.register(context), + getCodeLenses: codeLens.register(context), + getDocumentHighlights: documentHighlight.register(context), + getDocumentLinks: documentLink.register(context), + getWorkspaceSymbols: workspaceSymbol.register(context), + getAutoInsertSnippet: autoInsert.register(context), + getDocumentDropEdits: documentDrop.register(context), + getInlayHints: inlayHints.register(context), + getMoniker: moniker.register(context), + getInlineValue: inlineValue.register(context), + resolveCodeAction: codeActionResolve.register(context), + resolveCompletionItem: completionResolve.register(context), + resolveCodeLens: codeLensResolve.register(context), + resolveDocumentLink: documentLinkResolve.register(context), + resolveInlayHint: inlayHintResolve.register(context), + resolveWorkspaceSymbol: workspaceSymbolResolve.register(context), + ...hierarchy.register(context), + dispose: () => context.plugins.forEach(plugin => plugin[1].dispose?.()), + context, + }; + } + +} (languageService$1)); + +var types$5 = {}; + +Object.defineProperty(types$5, "__esModule", { value: true }); +types$5.FileType = void 0; +var FileType$2; +(function (FileType) { + FileType[FileType["Unknown"] = 0] = "Unknown"; + FileType[FileType["File"] = 1] = "File"; + FileType[FileType["Directory"] = 2] = "Directory"; + FileType[FileType["SymbolicLink"] = 64] = "SymbolicLink"; +})(FileType$2 || (types$5.FileType = FileType$2 = {})); + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeWorkspaceEdits = void 0; + __exportStar(languageCore$1, exports); + __exportStar(languageService$1, exports); + var provideRenameEdits_1 = provideRenameEdits; + Object.defineProperty(exports, "mergeWorkspaceEdits", { enumerable: true, get: function () { return provideRenameEdits_1.mergeWorkspaceEdits; } }); + __exportStar(types$5, exports); + __exportStar(transform$2, exports); + __exportStar(uriMap, exports); + +} (languageService$2)); + +var typescript$1 = {}; + +var common$3 = {}; + +Object.defineProperty(common$3, "__esModule", { value: true }); +common$3.resolveFileLanguageId = resolveFileLanguageId; +function resolveFileLanguageId(path) { + const ext = path.split('.').pop(); + switch (ext) { + case 'js': return 'javascript'; + case 'cjs': return 'javascript'; + case 'mjs': return 'javascript'; + case 'ts': return 'typescript'; + case 'cts': return 'typescript'; + case 'mts': return 'typescript'; + case 'jsx': return 'javascriptreact'; + case 'tsx': return 'typescriptreact'; + case 'json': return 'json'; + } +} + +var proxyLanguageService = {}; + +var dedupe$1 = {}; + +Object.defineProperty(dedupe$1, "__esModule", { value: true }); +dedupe$1.dedupeDocumentSpans = dedupeDocumentSpans; +function dedupeDocumentSpans(items) { + return dedupe(items, item => [ + item.fileName, + item.textSpan.start, + item.textSpan.length, + ].join(':')); +} +function dedupe(items, getKey) { + const map = new Map(); + for (const item of items.reverse()) { + map.set(getKey(item), item); + } + return [...map.values()]; +} + +var transform$1 = {}; + +var utils = {}; + +Object.defineProperty(utils, "__esModule", { value: true }); +utils.getServiceScript = getServiceScript; +function getServiceScript(language, fileName) { + const sourceScript = language.scripts.get(fileName); + if (sourceScript?.targetIds.size) { + for (const targetId of sourceScript.targetIds) { + const targetScript = language.scripts.get(targetId); + if (targetScript?.generated) { + const serviceScript = targetScript.generated.languagePlugin.typescript?.getServiceScript(targetScript.generated.root); + if (serviceScript) { + return [serviceScript, targetScript, sourceScript]; + } + } + } + } + if (sourceScript?.associatedOnly) { + return [undefined, sourceScript, sourceScript]; + } + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + return [serviceScript, sourceScript, sourceScript]; + } + } + return [undefined, undefined, undefined]; +} + +Object.defineProperty(transform$1, "__esModule", { value: true }); +transform$1.transformCallHierarchyItem = transformCallHierarchyItem; +transform$1.transformDiagnostic = transformDiagnostic; +transform$1.fillSourceFileText = fillSourceFileText; +transform$1.transformFileTextChanges = transformFileTextChanges; +transform$1.transformDocumentSpan = transformDocumentSpan; +transform$1.transformSpan = transformSpan; +transform$1.transformTextChange = transformTextChange; +transform$1.transformTextSpan = transformTextSpan; +transform$1.toSourceOffset = toSourceOffset; +transform$1.toSourceRanges = toSourceRanges; +transform$1.toSourceOffsets = toSourceOffsets; +transform$1.toGeneratedRanges = toGeneratedRanges; +transform$1.toGeneratedOffset = toGeneratedOffset; +transform$1.toGeneratedOffsets = toGeneratedOffsets; +transform$1.getMappingOffset = getMappingOffset; +const language_core_1$f = languageCore$1; +const utils_1$2 = utils; +const transformedDiagnostics = new WeakMap(); +const transformedSourceFile = new WeakSet(); +function transformCallHierarchyItem(language, item, filter) { + const span = transformSpan(language, item.file, item.span, filter); + const selectionSpan = transformSpan(language, item.file, item.selectionSpan, filter); + return { + ...item, + file: span?.fileName ?? item.file, + span: span?.textSpan ?? { start: 0, length: 0 }, + selectionSpan: selectionSpan?.textSpan ?? { start: 0, length: 0 }, + }; +} +function transformDiagnostic(language, diagnostic, program, isTsc) { + if (!transformedDiagnostics.has(diagnostic)) { + transformedDiagnostics.set(diagnostic, undefined); + const { relatedInformation } = diagnostic; + if (relatedInformation) { + diagnostic.relatedInformation = relatedInformation + .map(d => transformDiagnostic(language, d, program, isTsc)) + .filter(d => !!d); + } + if (diagnostic.file !== undefined + && diagnostic.start !== undefined + && diagnostic.length !== undefined) { + const [serviceScript] = (0, utils_1$2.getServiceScript)(language, diagnostic.file.fileName); + if (serviceScript) { + const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, { + start: diagnostic.start, + length: diagnostic.length + }, data => (0, language_core_1$f.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? []; + const actualDiagnosticFile = sourceSpanFileName + ? diagnostic.file.fileName === sourceSpanFileName + ? diagnostic.file + : program?.getSourceFile(sourceSpanFileName) + : undefined; + if (sourceSpan && actualDiagnosticFile) { + if (isTsc) { + fillSourceFileText(language, diagnostic.file); + } + transformedDiagnostics.set(diagnostic, { + ...diagnostic, + file: actualDiagnosticFile, + start: sourceSpan.start, + length: sourceSpan.length, + }); + } + } + else { + transformedDiagnostics.set(diagnostic, diagnostic); + } + } + else { + transformedDiagnostics.set(diagnostic, diagnostic); + } + } + return transformedDiagnostics.get(diagnostic); +} +// fix https://github.com/vuejs/language-tools/issues/4099 without `incremental` +function fillSourceFileText(language, sourceFile) { + if (transformedSourceFile.has(sourceFile)) { + return; + } + transformedSourceFile.add(sourceFile); + const [serviceScript] = (0, utils_1$2.getServiceScript)(language, sourceFile.fileName); + if (serviceScript && !serviceScript.preventLeadingOffset) { + const sourceScript = language.scripts.fromVirtualCode(serviceScript.code); + sourceFile.text = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength()) + + sourceFile.text.substring(sourceScript.snapshot.getLength()); + } +} +function transformFileTextChanges(language, changes, filter) { + const changesPerFile = {}; + const newFiles = new Set(); + for (const fileChanges of changes) { + const [_, source] = (0, utils_1$2.getServiceScript)(language, fileChanges.fileName); + if (source) { + fileChanges.textChanges.forEach(c => { + const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c.span, filter) ?? {}; + if (fileName && textSpan) { + (changesPerFile[fileName] ?? (changesPerFile[fileName] = [])).push({ ...c, span: textSpan }); + } + }); + } + else { + const list = (changesPerFile[fileChanges.fileName] ?? (changesPerFile[fileChanges.fileName] = [])); + fileChanges.textChanges.forEach(c => { + list.push(c); + }); + if (fileChanges.isNewFile) { + newFiles.add(fileChanges.fileName); + } + } + } + const result = []; + for (const fileName in changesPerFile) { + result.push({ + fileName, + isNewFile: newFiles.has(fileName), + textChanges: changesPerFile[fileName] + }); + } + return result; +} +function transformDocumentSpan(language, documentSpan, filter, shouldFallback) { + let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, filter); + if (!textSpan && shouldFallback) { + textSpan = { + fileName: documentSpan.fileName, + textSpan: { start: 0, length: 0 }, + }; + } + if (!textSpan) { + return; + } + const contextSpan = transformSpan(language, documentSpan.fileName, documentSpan.contextSpan, filter); + const originalTextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalTextSpan, filter); + const originalContextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalContextSpan, filter); + return { + ...documentSpan, + fileName: textSpan.fileName, + textSpan: textSpan.textSpan, + contextSpan: contextSpan?.textSpan, + originalFileName: originalTextSpan?.fileName, + originalTextSpan: originalTextSpan?.textSpan, + originalContextSpan: originalContextSpan?.textSpan, + }; +} +function transformSpan(language, fileName, textSpan, filter) { + if (!fileName || !textSpan) { + return; + } + const [serviceScript] = (0, utils_1$2.getServiceScript)(language, fileName); + if (serviceScript) { + const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, textSpan, filter) ?? []; + if (sourceSpan && sourceSpanFileName) { + return { + fileName: sourceSpanFileName, + textSpan: sourceSpan, + }; + } + } + else { + return { + fileName, + textSpan, + }; + } +} +function transformTextChange(sourceScript, language, serviceScript, textChange, filter) { + const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, filter) ?? []; + if (sourceSpan && sourceSpanFileName) { + return [sourceSpanFileName, { + newText: textChange.newText, + span: sourceSpan, + }]; + } + return undefined; +} +function transformTextSpan(sourceScript, language, serviceScript, textSpan, filter) { + const start = textSpan.start; + const end = textSpan.start + textSpan.length; + for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, filter)) { + return [fileName, { + start: sourceStart, + length: sourceEnd - sourceStart, + }]; + } +} +function toSourceOffset(sourceScript, language, serviceScript, position, filter) { + for (const source of toSourceOffsets(sourceScript, language, serviceScript, position, filter)) { + return source; + } +} +function* toSourceRanges(sourceScript, language, serviceScript, start, end, filter) { + if (sourceScript) { + const map = language.maps.get(serviceScript.code, sourceScript); + for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) { + yield [sourceScript.id, sourceStart, sourceEnd]; + } + } + else { + for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) { + for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) { + yield [sourceScript.id, sourceStart, sourceEnd]; + } + } + } +} +function* toSourceOffsets(sourceScript, language, serviceScript, position, filter) { + if (sourceScript) { + const map = language.maps.get(serviceScript.code, sourceScript); + for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) { + if (filter(mapping.data)) { + yield [sourceScript.id, sourceOffset]; + } + } + } + else { + for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) { + for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) { + if (filter(mapping.data)) { + yield [sourceScript.id, sourceOffset]; + } + } + } + } +} +function* toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter) { + const map = language.maps.get(serviceScript.code, sourceScript); + for (const [generateStart, generateEnd] of map.toGeneratedRange(start, end, true, filter)) { + yield [ + generateStart + getMappingOffset(language, serviceScript), + generateEnd + getMappingOffset(language, serviceScript), + ]; + } +} +function toGeneratedOffset(language, serviceScript, sourceScript, position, filter) { + for (const [generateOffset] of toGeneratedOffsets(language, serviceScript, sourceScript, position, filter)) { + return generateOffset; + } +} +function* toGeneratedOffsets(language, serviceScript, sourceScript, position, filter) { + const map = language.maps.get(serviceScript.code, sourceScript); + for (const [generateOffset, mapping] of map.toGeneratedLocation(position)) { + if (filter(mapping.data)) { + yield [generateOffset + getMappingOffset(language, serviceScript), mapping]; + } + } +} +function getMappingOffset(language, serviceScript) { + if (serviceScript.preventLeadingOffset) { + return 0; + } + const sourceScript = language.scripts.fromVirtualCode(serviceScript.code); + return sourceScript.snapshot.getLength(); +} + +Object.defineProperty(proxyLanguageService, "__esModule", { value: true }); +proxyLanguageService.createProxyLanguageService = createProxyLanguageService; +const language_core_1$e = languageCore$1; +const dedupe_1 = dedupe$1; +const transform_1$1 = transform$1; +const utils_1$1 = utils; +const windowsPathReg$1 = /\\/g; +function createProxyLanguageService(languageService) { + const proxyCache = new Map(); + let getProxyMethod; + return { + initialize(language) { + getProxyMethod = (target, p) => { + switch (p) { + case 'getNavigationTree': return getNavigationTree(language, target[p]); + case 'getOutliningSpans': return getOutliningSpans(language, target[p]); + case 'getFormattingEditsForDocument': return getFormattingEditsForDocument(language, target[p]); + case 'getFormattingEditsForRange': return getFormattingEditsForRange(language, target[p]); + case 'getFormattingEditsAfterKeystroke': return getFormattingEditsAfterKeystroke(language, target[p]); + case 'getEditsForFileRename': return getEditsForFileRename(language, target[p]); + case 'getLinkedEditingRangeAtPosition': return getLinkedEditingRangeAtPosition(language, target[p]); + case 'prepareCallHierarchy': return prepareCallHierarchy(language, target[p]); + case 'provideCallHierarchyIncomingCalls': return provideCallHierarchyIncomingCalls(language, target[p]); + case 'provideCallHierarchyOutgoingCalls': return provideCallHierarchyOutgoingCalls(language, target[p]); + case 'organizeImports': return organizeImports(language, target[p]); + case 'getQuickInfoAtPosition': return getQuickInfoAtPosition$1(language, target[p]); + case 'getSignatureHelpItems': return getSignatureHelpItems(language, target[p]); + case 'getDocumentHighlights': return getDocumentHighlights(language, target[p]); + case 'getApplicableRefactors': return getApplicableRefactors(language, target[p]); + case 'getEditsForRefactor': return getEditsForRefactor(language, target[p]); + case 'getCombinedCodeFix': return getCombinedCodeFix(language, target[p]); + case 'getRenameInfo': return getRenameInfo(language, target[p]); + case 'getCodeFixesAtPosition': return getCodeFixesAtPosition$1(language, target[p]); + case 'getEncodedSemanticClassifications': return getEncodedSemanticClassifications$1(language, target[p]); + case 'getSyntacticDiagnostics': return getSyntacticDiagnostics(language, languageService, target[p]); + case 'getSemanticDiagnostics': return getSemanticDiagnostics(language, languageService, target[p]); + case 'getSuggestionDiagnostics': return getSuggestionDiagnostics(language, languageService, target[p]); + case 'getDefinitionAndBoundSpan': return getDefinitionAndBoundSpan(language, target[p]); + case 'findReferences': return findReferences(language, target[p]); + case 'getDefinitionAtPosition': return getDefinitionAtPosition(language, target[p]); + case 'getTypeDefinitionAtPosition': return getTypeDefinitionAtPosition(language, target[p]); + case 'getImplementationAtPosition': return getImplementationAtPosition(language, target[p]); + case 'findRenameLocations': return findRenameLocations(language, target[p]); + case 'getReferencesAtPosition': return getReferencesAtPosition(language, target[p]); + case 'getCompletionsAtPosition': return getCompletionsAtPosition$1(language, target[p]); + case 'getCompletionEntryDetails': return getCompletionEntryDetails$1(language, target[p]); + case 'provideInlayHints': return provideInlayHints(language, target[p]); + case 'getFileReferences': return getFileReferences(language, target[p]); + case 'getNavigateToItems': return getNavigateToItems(language, target[p]); + } + }; + }, + proxy: new Proxy(languageService, { + get(target, p, receiver) { + if (getProxyMethod) { + if (!proxyCache.has(p)) { + proxyCache.set(p, getProxyMethod(target, p)); + } + const proxyMethod = proxyCache.get(p); + if (proxyMethod) { + return proxyMethod; + } + } + return Reflect.get(target, p, receiver); + }, + set(target, p, value, receiver) { + return Reflect.set(target, p, value, receiver); + }, + }), + }; +} +// ignored methods +function getNavigationTree(language, getNavigationTree) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (serviceScript || targetScript?.associatedOnly) { + const tree = getNavigationTree(targetScript.id); + tree.childItems = undefined; + return tree; + } + else { + return getNavigationTree(fileName); + } + }; +} +function getOutliningSpans(language, getOutliningSpans) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (serviceScript || targetScript?.associatedOnly) { + return []; + } + else { + return getOutliningSpans(fileName); + } + }; +} +// proxy methods +function getFormattingEditsForDocument(language, getFormattingEditsForDocument) { + return (filePath, options) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const map = language.maps.get(serviceScript.code, targetScript); + if (!map.mappings.some(mapping => (0, language_core_1$e.isFormattingEnabled)(mapping.data))) { + return []; + } + const edits = getFormattingEditsForDocument(targetScript.id, options); + return edits + .map(edit => (0, transform_1$1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1$e.isFormattingEnabled)?.[1]) + .filter(edit => !!edit); + } + else { + return getFormattingEditsForDocument(fileName, options); + } + }; +} +function getFormattingEditsForRange(language, getFormattingEditsForRange) { + return (filePath, start, end, options) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const generateStart = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, start, language_core_1$e.isFormattingEnabled); + const generateEnd = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, end, language_core_1$e.isFormattingEnabled); + if (generateStart !== undefined && generateEnd !== undefined) { + const edits = getFormattingEditsForRange(targetScript.id, generateStart, generateEnd, options); + return edits + .map(edit => (0, transform_1$1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1$e.isFormattingEnabled)?.[1]) + .filter(edit => !!edit); + } + return []; + } + else { + return getFormattingEditsForRange(fileName, start, end, options); + } + }; +} +function getFormattingEditsAfterKeystroke(language, getFormattingEditsAfterKeystroke) { + return (filePath, position, key, options) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isFormattingEnabled); + if (generatePosition !== undefined) { + const edits = getFormattingEditsAfterKeystroke(targetScript.id, generatePosition, key, options); + return edits + .map(edit => (0, transform_1$1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1$e.isFormattingEnabled)?.[1]) + .filter(edit => !!edit); + } + return []; + } + else { + return getFormattingEditsAfterKeystroke(fileName, position, key, options); + } + }; +} +function getEditsForFileRename(language, getEditsForFileRename) { + return (oldFilePath, newFilePath, formatOptions, preferences) => { + const edits = getEditsForFileRename(oldFilePath, newFilePath, formatOptions, preferences); + return (0, transform_1$1.transformFileTextChanges)(language, edits, language_core_1$e.isRenameEnabled); + }; +} +function getLinkedEditingRangeAtPosition(language, getLinkedEditingRangeAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isLinkedEditingEnabled); + if (generatePosition !== undefined) { + const info = getLinkedEditingRangeAtPosition(targetScript.id, generatePosition); + if (info) { + return { + ranges: info.ranges + .map(span => (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1$e.isLinkedEditingEnabled)?.[1]) + .filter(span => !!span), + wordPattern: info.wordPattern, + }; + } + } + } + else { + return getLinkedEditingRangeAtPosition(fileName, position); + } + }; +} +function prepareCallHierarchy(language, prepareCallHierarchy) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isCallHierarchyEnabled); + if (generatePosition !== undefined) { + const item = prepareCallHierarchy(targetScript.id, generatePosition); + if (Array.isArray(item)) { + return item.map(item => (0, transform_1$1.transformCallHierarchyItem)(language, item, language_core_1$e.isCallHierarchyEnabled)); + } + else if (item) { + return (0, transform_1$1.transformCallHierarchyItem)(language, item, language_core_1$e.isCallHierarchyEnabled); + } + } + } + else { + return prepareCallHierarchy(fileName, position); + } + }; +} +function provideCallHierarchyIncomingCalls(language, provideCallHierarchyIncomingCalls) { + return (filePath, position) => { + let calls = []; + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isCallHierarchyEnabled); + if (generatePosition !== undefined) { + calls = provideCallHierarchyIncomingCalls(targetScript.id, generatePosition); + } + } + else { + calls = provideCallHierarchyIncomingCalls(fileName, position); + } + return calls + .map(call => { + const from = (0, transform_1$1.transformCallHierarchyItem)(language, call.from, language_core_1$e.isCallHierarchyEnabled); + const fromSpans = call.fromSpans + .map(span => (0, transform_1$1.transformSpan)(language, call.from.file, span, language_core_1$e.isCallHierarchyEnabled)?.textSpan) + .filter(span => !!span); + return { + from, + fromSpans, + }; + }); + }; +} +function provideCallHierarchyOutgoingCalls(language, provideCallHierarchyOutgoingCalls) { + return (filePath, position) => { + let calls = []; + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isCallHierarchyEnabled); + if (generatePosition !== undefined) { + calls = provideCallHierarchyOutgoingCalls(targetScript.id, generatePosition); + } + } + else { + calls = provideCallHierarchyOutgoingCalls(fileName, position); + } + return calls + .map(call => { + const to = (0, transform_1$1.transformCallHierarchyItem)(language, call.to, language_core_1$e.isCallHierarchyEnabled); + const fromSpans = call.fromSpans + .map(span => serviceScript + ? (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1$e.isCallHierarchyEnabled)?.[1] + : span) + .filter(span => !!span); + return { + to, + fromSpans, + }; + }); + }; +} +function organizeImports(language, organizeImports) { + return (args, formatOptions, preferences) => { + const unresolved = organizeImports(args, formatOptions, preferences); + return (0, transform_1$1.transformFileTextChanges)(language, unresolved, language_core_1$e.isCodeActionsEnabled); + }; +} +function getQuickInfoAtPosition$1(language, getQuickInfoAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const infos = []; + for (const [generatePosition] of (0, transform_1$1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1$e.isHoverEnabled)) { + const info = getQuickInfoAtPosition(targetScript.id, generatePosition); + if (info) { + const textSpan = (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, info.textSpan, language_core_1$e.isHoverEnabled)?.[1]; + if (textSpan) { + infos.push({ + ...info, + textSpan: textSpan, + }); + } + } + } + if (infos.length === 1) { + return infos[0]; + } + else if (infos.length >= 2) { + const combine = { ...infos[0] }; + combine.displayParts = combine.displayParts?.slice(); + combine.documentation = combine.documentation?.slice(); + combine.tags = combine.tags?.slice(); + const displayPartsStrs = new Set([displayPartsToString(infos[0].displayParts)]); + const documentationStrs = new Set([displayPartsToString(infos[0].documentation)]); + const tagsStrs = new Set(); + for (const tag of infos[0].tags ?? []) { + tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text)); + } + for (let i = 1; i < infos.length; i++) { + const { displayParts, documentation, tags } = infos[i]; + if (displayParts?.length && !displayPartsStrs.has(displayPartsToString(displayParts))) { + displayPartsStrs.add(displayPartsToString(displayParts)); + combine.displayParts ??= []; + combine.displayParts.push({ ...displayParts[0], text: '\n\n' + displayParts[0].text }); + combine.displayParts.push(...displayParts.slice(1)); + } + if (documentation?.length && !documentationStrs.has(displayPartsToString(documentation))) { + documentationStrs.add(displayPartsToString(documentation)); + combine.documentation ??= []; + combine.documentation.push({ ...documentation[0], text: '\n\n' + documentation[0].text }); + combine.documentation.push(...documentation.slice(1)); + } + for (const tag of tags ?? []) { + if (!tagsStrs.has(tag.name + '__volar__' + displayPartsToString(tag.text))) { + tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text)); + combine.tags ??= []; + combine.tags.push(tag); + } + } + } + return combine; + } + } + else { + return getQuickInfoAtPosition(fileName, position); + } + }; +} +function getSignatureHelpItems(language, getSignatureHelpItems) { + return (filePath, position, options) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isSignatureHelpEnabled); + if (generatePosition !== undefined) { + const result = getSignatureHelpItems(targetScript.id, generatePosition, options); + if (result) { + const applicableSpan = (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, result.applicableSpan, language_core_1$e.isSignatureHelpEnabled)?.[1]; + if (applicableSpan) { + return { + ...result, + applicableSpan, + }; + } + } + } + } + else { + return getSignatureHelpItems(fileName, position, options); + } + }; +} +function getDocumentHighlights(language, getDocumentHighlights) { + return (filePath, position, filesToSearch) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isHighlightEnabled, (fileName, position) => getDocumentHighlights(fileName, position, filesToSearch), function* (result) { + for (const ref of result) { + for (const reference of ref.highlightSpans) { + yield [reference.fileName ?? ref.fileName, reference.textSpan.start]; + } + } + }); + const resolved = unresolved + .flat() + .map(highlights => { + return { + ...highlights, + highlightSpans: highlights.highlightSpans + .map(span => { + const { textSpan } = (0, transform_1$1.transformSpan)(language, span.fileName ?? highlights.fileName, span.textSpan, language_core_1$e.isHighlightEnabled) ?? {}; + if (textSpan) { + return { + ...span, + contextSpan: (0, transform_1$1.transformSpan)(language, span.fileName ?? highlights.fileName, span.contextSpan, language_core_1$e.isHighlightEnabled)?.textSpan, + textSpan, + }; + } + }) + .filter(span => !!span), + }; + }); + return resolved; + }; +} +function getApplicableRefactors(language, getApplicableRefactors) { + return (filePath, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + if (typeof positionOrRange === 'number') { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1$e.isCodeActionsEnabled); + if (generatePosition !== undefined) { + return getApplicableRefactors(targetScript.id, generatePosition, preferences, triggerReason, kind, includeInteractiveActions); + } + } + else { + for (const [generatedStart, generatedEnd] of (0, transform_1$1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1$e.isCodeActionsEnabled)) { + return getApplicableRefactors(targetScript.id, { pos: generatedStart, end: generatedEnd }, preferences, triggerReason, kind, includeInteractiveActions); + } + } + return []; + } + else { + return getApplicableRefactors(fileName, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions); + } + }; +} +function getEditsForRefactor(language, getEditsForRefactor) { + return (filePath, formatOptions, positionOrRange, refactorName, actionName, preferences) => { + let edits; + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + if (typeof positionOrRange === 'number') { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1$e.isCodeActionsEnabled); + if (generatePosition !== undefined) { + edits = getEditsForRefactor(targetScript.id, formatOptions, generatePosition, refactorName, actionName, preferences); + } + } + else { + for (const [generatedStart, generatedEnd] of (0, transform_1$1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1$e.isCodeActionsEnabled)) { + edits = getEditsForRefactor(targetScript.id, formatOptions, { pos: generatedStart, end: generatedEnd }, refactorName, actionName, preferences); + } + } + } + else { + edits = getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences); + } + if (edits) { + edits.edits = (0, transform_1$1.transformFileTextChanges)(language, edits.edits, language_core_1$e.isCodeActionsEnabled); + return edits; + } + }; +} +function getCombinedCodeFix(language, getCombinedCodeFix) { + return (...args) => { + const codeActions = getCombinedCodeFix(...args); + codeActions.changes = (0, transform_1$1.transformFileTextChanges)(language, codeActions.changes, language_core_1$e.isCodeActionsEnabled); + return codeActions; + }; +} +function getRenameInfo(language, getRenameInfo) { + return (filePath, position, options) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return { + canRename: false, + localizedErrorMessage: "Cannot rename" + }; + } + if (serviceScript) { + let failed; + for (const [generateOffset] of (0, transform_1$1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1$e.isRenameEnabled)) { + const info = getRenameInfo(targetScript.id, generateOffset, options); + if (info.canRename) { + const span = (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, info.triggerSpan, language_core_1$e.isRenameEnabled)?.[1]; + if (span) { + info.triggerSpan = span; + return info; + } + } + else { + failed = info; + } + } + if (failed) { + return failed; + } + return { + canRename: false, + localizedErrorMessage: 'Failed to get rename locations', + }; + } + else { + return getRenameInfo(fileName, position, options); + } + }; +} +function getCodeFixesAtPosition$1(language, getCodeFixesAtPosition) { + return (filePath, start, end, errorCodes, formatOptions, preferences) => { + let fixes = []; + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + const generateStart = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, start, language_core_1$e.isCodeActionsEnabled); + const generateEnd = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, end, language_core_1$e.isCodeActionsEnabled); + if (generateStart !== undefined && generateEnd !== undefined) { + fixes = getCodeFixesAtPosition(targetScript.id, generateStart, generateEnd, errorCodes, formatOptions, preferences); + } + } + else { + fixes = getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences); + } + fixes = fixes.map(fix => { + fix.changes = (0, transform_1$1.transformFileTextChanges)(language, fix.changes, language_core_1$e.isCodeActionsEnabled); + return fix; + }); + return fixes; + }; +} +function getEncodedSemanticClassifications$1(language, getEncodedSemanticClassifications) { + return (filePath, span, format) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return { + spans: [], + endOfLineState: 0 + }; + } + if (serviceScript) { + let start; + let end; + const map = language.maps.get(serviceScript.code, targetScript); + for (const mapping of map.mappings) { + // TODO reuse the logic from language service + if ((0, language_core_1$e.isSemanticTokensEnabled)(mapping.data) && mapping.sourceOffsets[0] >= span.start && mapping.sourceOffsets[0] <= span.start + span.length) { + start ??= mapping.generatedOffsets[0]; + end ??= mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + (mapping.generatedLengths ?? mapping.lengths)[mapping.lengths.length - 1]; + start = Math.min(start, mapping.generatedOffsets[0]); + end = Math.max(end, mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + (mapping.generatedLengths ?? mapping.lengths)[mapping.lengths.length - 1]); + } + } + start ??= 0; + end ??= targetScript.snapshot.getLength(); + const mappingOffset = (0, transform_1$1.getMappingOffset)(language, serviceScript); + start += mappingOffset; + end += mappingOffset; + const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format); + const spans = []; + for (let i = 0; i < result.spans.length; i += 3) { + for (const [_, sourceStart, sourceEnd] of (0, transform_1$1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], language_core_1$e.isSemanticTokensEnabled)) { + spans.push(sourceStart, sourceEnd - sourceStart, result.spans[i + 2]); + break; + } + } + result.spans = spans; + return result; + } + else { + return getEncodedSemanticClassifications(fileName, span, format); + } + }; +} +function getSyntacticDiagnostics(language, languageService, getSyntacticDiagnostics) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + return getSyntacticDiagnostics(targetScript?.id ?? fileName) + .map(d => (0, transform_1$1.transformDiagnostic)(language, d, languageService.getProgram(), false)) + .filter(d => !!d) + .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript); + }; +} +function getSemanticDiagnostics(language, languageService, getSemanticDiagnostics) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + return getSemanticDiagnostics(targetScript?.id ?? fileName) + .map(d => (0, transform_1$1.transformDiagnostic)(language, d, languageService.getProgram(), false)) + .filter(d => !!d) + .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript); + }; +} +function getSuggestionDiagnostics(language, languageService, getSuggestionDiagnostics) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + return getSuggestionDiagnostics(targetScript?.id ?? fileName) + .map(d => (0, transform_1$1.transformDiagnostic)(language, d, languageService.getProgram(), false)) + .filter(d => !!d) + .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript); + }; +} +function getDefinitionAndBoundSpan(language, getDefinitionAndBoundSpan) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isDefinitionEnabled, (fileName, position) => getDefinitionAndBoundSpan(fileName, position), function* (result) { + for (const ref of result.definitions ?? []) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const textSpan = unresolved + .map(s => (0, transform_1$1.transformSpan)(language, fileName, s.textSpan, language_core_1$e.isDefinitionEnabled)?.textSpan) + .filter(s => !!s)[0]; + if (!textSpan) { + return; + } + const definitions = unresolved + .map(s => s.definitions + ?.map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isDefinitionEnabled, s.fileName !== fileName)) + .filter(s => !!s) + ?? []) + .flat(); + return { + textSpan, + definitions: (0, dedupe_1.dedupeDocumentSpans)(definitions), + }; + }; +} +function findReferences(language, findReferences) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isReferencesEnabled, (fileName, position) => findReferences(fileName, position), function* (result) { + for (const ref of result) { + for (const reference of ref.references) { + yield [reference.fileName, reference.textSpan.start]; + } + } + }); + const resolved = unresolved + .flat() + .map(symbol => { + const definition = (0, transform_1$1.transformDocumentSpan)(language, symbol.definition, language_core_1$e.isDefinitionEnabled, true); + return { + definition, + references: symbol.references + .map(r => (0, transform_1$1.transformDocumentSpan)(language, r, language_core_1$e.isReferencesEnabled)) + .filter(r => !!r), + }; + }); + return resolved; + }; +} +function getDefinitionAtPosition(language, getDefinitionAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isDefinitionEnabled, (fileName, position) => getDefinitionAtPosition(fileName, position), function* (result) { + for (const ref of result) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const resolved = unresolved + .flat() + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isDefinitionEnabled, s.fileName !== fileName)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function getTypeDefinitionAtPosition(language, getTypeDefinitionAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isTypeDefinitionEnabled, (fileName, position) => getTypeDefinitionAtPosition(fileName, position), function* (result) { + for (const ref of result) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const resolved = unresolved + .flat() + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isTypeDefinitionEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function getImplementationAtPosition(language, getImplementationAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isImplementationEnabled, (fileName, position) => getImplementationAtPosition(fileName, position), function* (result) { + for (const ref of result) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const resolved = unresolved + .flat() + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isImplementationEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function findRenameLocations(language, findRenameLocations) { + return (filePath, position, findInStrings, findInComments, preferences) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isRenameEnabled, (fileName, position) => findRenameLocations(fileName, position, findInStrings, findInComments, preferences), function* (result) { + for (const ref of result) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const resolved = unresolved + .flat() + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isRenameEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function getReferencesAtPosition(language, getReferencesAtPosition) { + return (filePath, position) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1$e.isReferencesEnabled, (fileName, position) => getReferencesAtPosition(fileName, position), function* (result) { + for (const ref of result) { + yield [ref.fileName, ref.textSpan.start]; + } + }); + const resolved = unresolved + .flat() + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isReferencesEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function getCompletionsAtPosition$1(language, getCompletionsAtPosition) { + return (filePath, position, options, formattingSettings) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const results = []; + for (const [generatedOffset, mapping] of (0, transform_1$1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1$e.isCompletionEnabled)) { + const result = getCompletionsAtPosition(targetScript.id, generatedOffset, options, formattingSettings); + if (!result) { + continue; + } + if (typeof mapping.data.completion === 'object' && mapping.data.completion.onlyImport) { + result.entries = result.entries.filter(entry => !!entry.sourceDisplay); + } + for (const entry of result.entries) { + entry.replacementSpan = entry.replacementSpan && (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, entry.replacementSpan, language_core_1$e.isCompletionEnabled)?.[1]; + } + result.optionalReplacementSpan = result.optionalReplacementSpan + && (0, transform_1$1.transformTextSpan)(sourceScript, language, serviceScript, result.optionalReplacementSpan, language_core_1$e.isCompletionEnabled)?.[1]; + const isAdditional = typeof mapping.data.completion === 'object' && mapping.data.completion.isAdditional; + if (isAdditional) { + results.push(result); + } + else { + results.unshift(result); + } + } + if (results.length) { + return { + ...results[0], + entries: results + .map(additionalResult => additionalResult.entries) + .flat(), + }; + } + } + else { + return getCompletionsAtPosition(fileName, position, options, formattingSettings); + } + }; +} +function getCompletionEntryDetails$1(language, getCompletionEntryDetails) { + return (filePath, position, entryName, formatOptions, source, preferences, data) => { + let details; + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return undefined; + } + if (serviceScript) { + const generatePosition = (0, transform_1$1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1$e.isCompletionEnabled); + if (generatePosition !== undefined) { + details = getCompletionEntryDetails(targetScript.id, generatePosition, entryName, formatOptions, source, preferences, data); + } + } + else { + return getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data); + } + if (details?.codeActions) { + for (const codeAction of details.codeActions) { + codeAction.changes = (0, transform_1$1.transformFileTextChanges)(language, codeAction.changes, language_core_1$e.isCompletionEnabled); + } + } + return details; + }; +} +function provideInlayHints(language, provideInlayHints) { + return (filePath, span, preferences) => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (targetScript?.associatedOnly) { + return []; + } + if (serviceScript) { + let start; + let end; + const map = language.maps.get(serviceScript.code, sourceScript); + for (const mapping of map.mappings) { + if (!(0, language_core_1$e.isInlayHintsEnabled)(mapping.data)) { + continue; + } + let mappingStart = mapping.sourceOffsets[0]; + let genStart; + let genEnd; + if (mappingStart >= span.start && mappingStart <= span.start + span.length) { + genStart = mapping.generatedOffsets[0]; + genEnd = mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + + (mapping.generatedLengths ?? mapping.lengths)[mapping.generatedOffsets.length - 1]; + } + else if (mappingStart < span.start && span.start < mappingStart + mapping.lengths[0] + && mapping.sourceOffsets.length == 1 + && (!mapping.generatedLengths || mapping.generatedLengths[0] === mapping.lengths[0])) { + genStart = mapping.generatedOffsets[0] + span.start - mappingStart; + genEnd = Math.min(genStart + span.length, mapping.generatedOffsets[0] + mapping.lengths[0]); + } + else { + continue; + } + start = Math.min(start ?? genStart, genStart); + end = Math.max(end ?? genEnd, genEnd); + } + if (start === undefined || end === undefined) { + start = 0; + end = 0; + } + const mappingOffset = (0, transform_1$1.getMappingOffset)(language, serviceScript); + start += mappingOffset; + end += mappingOffset; + const result = provideInlayHints(targetScript.id, { start, length: end - start }, preferences); + const hints = []; + for (const hint of result) { + const sourcePosition = (0, transform_1$1.toSourceOffset)(sourceScript, language, serviceScript, hint.position, language_core_1$e.isInlayHintsEnabled); + if (sourcePosition !== undefined) { + hints.push({ + ...hint, + position: sourcePosition[1], + }); + } + } + return hints; + } + else { + return provideInlayHints(fileName, span, preferences); + } + }; +} +function getFileReferences(language, getFileReferences) { + return filePath => { + const fileName = filePath.replace(windowsPathReg$1, '/'); + const unresolved = getFileReferences(fileName); + const resolved = unresolved + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isReferencesEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function getNavigateToItems(language, getNavigateToItems) { + return (...args) => { + const unresolved = getNavigateToItems(...args); + const resolved = unresolved + .map(s => (0, transform_1$1.transformDocumentSpan)(language, s, language_core_1$e.isReferencesEnabled)) + .filter(s => !!s); + return (0, dedupe_1.dedupeDocumentSpans)(resolved); + }; +} +function linkedCodeFeatureWorker(language, fileName, position, filter, worker, getLinkedCodes) { + const results = []; + const processedFilePositions = new Set(); + const [serviceScript, targetScript, sourceScript] = (0, utils_1$1.getServiceScript)(language, fileName); + if (serviceScript) { + for (const [generatedOffset] of (0, transform_1$1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, filter)) { + process(targetScript.id, generatedOffset); + } + } + else { + process(fileName, position); + } + return results; + function process(fileName, position) { + if (processedFilePositions.has(fileName + ':' + position)) { + return; + } + processedFilePositions.add(fileName + ':' + position); + const result = worker(fileName, position); + if (!result) { + return; + } + results.push(result); + for (const ref of getLinkedCodes(result)) { + processedFilePositions.add(ref[0] + ':' + ref[1]); + const [serviceScript] = (0, utils_1$1.getServiceScript)(language, ref[0]); + if (!serviceScript) { + continue; + } + const linkedCodeMap = language.linkedCodeMaps.get(serviceScript.code); + if (!linkedCodeMap) { + continue; + } + const mappingOffset = (0, transform_1$1.getMappingOffset)(language, serviceScript); + for (const linkedCodeOffset of linkedCodeMap.getLinkedOffsets(ref[1] - mappingOffset)) { + process(ref[0], linkedCodeOffset + mappingOffset); + } + } + } +} +function displayPartsToString(displayParts) { + if (displayParts) { + return displayParts.map(displayPart => displayPart.text).join(''); + } + return ''; +} + +var decorateLanguageServiceHost$1 = {}; + +var resolveModuleName = {}; + +Object.defineProperty(resolveModuleName, "__esModule", { value: true }); +resolveModuleName.createResolveModuleName = createResolveModuleName; +function createResolveModuleName(ts, getFileSize, host, languagePlugins, getSourceScript) { + const toSourceFileInfo = new Map(); + const moduleResolutionHost = { + readFile: host.readFile.bind(host), + directoryExists: host.directoryExists?.bind(host), + realpath: host.realpath?.bind(host), + getCurrentDirectory: host.getCurrentDirectory?.bind(host), + getDirectories: host.getDirectories?.bind(host), + useCaseSensitiveFileNames: typeof host.useCaseSensitiveFileNames === 'function' + ? host.useCaseSensitiveFileNames.bind(host) + : host.useCaseSensitiveFileNames, + fileExists(fileName) { + for (const { typescript } of languagePlugins) { + if (!typescript) { + continue; + } + for (const { extension } of typescript.extraFileExtensions) { + if (fileName.endsWith(`.d.${extension}.ts`)) { + const sourceFileName = fileName.slice(0, -`.d.${extension}.ts`.length) + `.${extension}`; + if (fileExists(sourceFileName)) { + const sourceScript = getSourceScript(sourceFileName); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + const dtsPath = sourceFileName + '.d.ts'; + if ((serviceScript.extension === '.js' || serviceScript.extension === '.jsx') && fileExists(dtsPath)) { + toSourceFileInfo.set(fileName, { + sourceFileName: dtsPath, + extension: '.ts', + }); + } + else { + toSourceFileInfo.set(fileName, { + sourceFileName, + extension: serviceScript.extension, + }); + } + return true; + } + } + } + } + } + if (typescript.resolveHiddenExtensions && fileName.endsWith(`.d.ts`)) { + for (const { extension } of typescript.extraFileExtensions) { + const sourceFileName = fileName.slice(0, -`.d.ts`.length) + `.${extension}`; + if (fileExists(sourceFileName)) { + const sourceScript = getSourceScript(sourceFileName); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + toSourceFileInfo.set(fileName, { + sourceFileName, + extension: serviceScript.extension, + }); + return true; + } + } + } + } + } + } + return host.fileExists(fileName); + }, + }; + return (moduleName, containingFile, compilerOptions, cache, redirectedReference, resolutionMode) => { + const result = ts.resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionHost, cache, redirectedReference, resolutionMode); + if (result.resolvedModule) { + const sourceFileInfo = toSourceFileInfo.get(result.resolvedModule.resolvedFileName); + if (sourceFileInfo) { + result.resolvedModule.resolvedFileName = sourceFileInfo.sourceFileName; + result.resolvedModule.extension = sourceFileInfo.extension; + } + } + toSourceFileInfo.clear(); + return result; + }; + // fix https://github.com/vuejs/language-tools/issues/3332 + function fileExists(fileName) { + if (host.fileExists(fileName)) { + const fileSize = getFileSize?.(fileName) ?? host.readFile(fileName)?.length ?? 0; + return fileSize < 4 * 1024 * 1024; + } + return false; + } +} + +Object.defineProperty(decorateLanguageServiceHost$1, "__esModule", { value: true }); +decorateLanguageServiceHost$1.decorateLanguageServiceHost = decorateLanguageServiceHost; +decorateLanguageServiceHost$1.searchExternalFiles = searchExternalFiles; +const resolveModuleName_1$2 = resolveModuleName; +function decorateLanguageServiceHost(ts, language, languageServiceHost) { + const pluginExtensions = language.plugins + .map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? []) + .flat(); + const scripts = new Map(); + const crashFileNames = new Set(); + const readDirectory = languageServiceHost.readDirectory?.bind(languageServiceHost); + const resolveModuleNameLiterals = languageServiceHost.resolveModuleNameLiterals?.bind(languageServiceHost); + const resolveModuleNames = languageServiceHost.resolveModuleNames?.bind(languageServiceHost); + const getScriptSnapshot = languageServiceHost.getScriptSnapshot.bind(languageServiceHost); + const getScriptKind = languageServiceHost.getScriptKind?.bind(languageServiceHost); + // path completion + if (readDirectory) { + languageServiceHost.readDirectory = (path, extensions, exclude, include, depth) => { + if (extensions) { + for (const ext of pluginExtensions) { + if (!extensions.includes(ext)) { + extensions = [...extensions, ext]; + } + } + } + return readDirectory(path, extensions, exclude, include, depth); + }; + } + if (pluginExtensions.length) { + const resolveModuleName = (0, resolveModuleName_1$2.createResolveModuleName)(ts, ts.sys.getFileSize, languageServiceHost, language.plugins, fileName => language.scripts.get(fileName)); + const getCanonicalFileName = languageServiceHost.useCaseSensitiveFileNames?.() + ? (fileName) => fileName + : (fileName) => fileName.toLowerCase(); + const moduleResolutionCache = ts.createModuleResolutionCache(languageServiceHost.getCurrentDirectory(), getCanonicalFileName, languageServiceHost.getCompilationSettings()); + if (resolveModuleNameLiterals) { + languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, ...rest) => { + if (moduleLiterals.every(name => !pluginExtensions.some(ext => name.text.endsWith(ext)))) { + return resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, ...rest); + } + return moduleLiterals.map(moduleLiteral => { + return resolveModuleName(moduleLiteral.text, containingFile, options, moduleResolutionCache, redirectedReference); + }); + }; + } + if (resolveModuleNames) { + languageServiceHost.resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile) => { + if (moduleNames.every(name => !pluginExtensions.some(ext => name.endsWith(ext)))) { + return resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile); + } + return moduleNames.map(moduleName => { + return resolveModuleName(moduleName, containingFile, options, moduleResolutionCache, redirectedReference).resolvedModule; + }); + }; + } + } + languageServiceHost.getScriptSnapshot = fileName => { + const virtualScript = updateVirtualScript(fileName); + if (virtualScript) { + return virtualScript.snapshot; + } + return getScriptSnapshot(fileName); + }; + if (getScriptKind) { + languageServiceHost.getScriptKind = fileName => { + const virtualScript = updateVirtualScript(fileName); + if (virtualScript) { + return virtualScript.scriptKind; + } + return getScriptKind(fileName); + }; + } + function updateVirtualScript(fileName) { + if (crashFileNames.has(fileName)) { + return; + } + let version; + try { + version = languageServiceHost.getScriptVersion(fileName); + } + catch { + // fix https://github.com/vuejs/language-tools/issues/4278 + crashFileNames.add(fileName); + } + if (version === undefined) { + // somehow getScriptVersion returns undefined + return; + } + let script = scripts.get(fileName); + if (!script || script[0] !== version) { + script = [version]; + const sourceScript = language.scripts.get(fileName); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + if (serviceScript.preventLeadingOffset) { + script[1] = { + extension: serviceScript.extension, + scriptKind: serviceScript.scriptKind, + snapshot: serviceScript.code.snapshot, + }; + } + else { + const sourceContents = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength()); + const virtualContents = sourceContents.split('\n').map(line => ' '.repeat(line.length)).join('\n') + + serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength()); + script[1] = { + extension: serviceScript.extension, + scriptKind: serviceScript.scriptKind, + snapshot: ts.ScriptSnapshot.fromString(virtualContents), + }; + } + } + if (sourceScript.generated.languagePlugin.typescript?.getExtraServiceScripts) { + console.warn('getExtraServiceScripts() is not available in TS plugin.'); + } + } + scripts.set(fileName, script); + } + return script[1]; + } +} +function searchExternalFiles(ts, project, exts) { + if (project.projectKind !== ts.server.ProjectKind.Configured) { + return []; + } + const configFile = project.getProjectName(); + const config = ts.readJsonConfigFile(configFile, project.readFile.bind(project)); + const parseHost = { + useCaseSensitiveFileNames: project.useCaseSensitiveFileNames(), + fileExists: project.fileExists.bind(project), + readFile: project.readFile.bind(project), + readDirectory: (...args) => { + args[1] = exts; + return project.readDirectory(...args); + }, + }; + const parsed = ts.parseJsonSourceFileConfigFileContent(config, parseHost, project.getCurrentDirectory()); + return parsed.fileNames; +} + +var decorateProgram$1 = {}; + +Object.defineProperty(decorateProgram$1, "__esModule", { value: true }); +decorateProgram$1.decorateProgram = decorateProgram; +const transform_1 = transform$1; +const utils_1 = utils; +function decorateProgram(language, program) { + const emit = program.emit; + // for tsc --noEmit + const getSyntacticDiagnostics = program.getSyntacticDiagnostics; + const getSemanticDiagnostics = program.getSemanticDiagnostics; + const getGlobalDiagnostics = program.getGlobalDiagnostics; + const getSourceFileByPath = program.getSourceFileByPath; + // for tsc --noEmit --watch + // @ts-ignore + const getBindAndCheckDiagnostics = program.getBindAndCheckDiagnostics; + program.emit = (...args) => { + const result = emit(...args); + return { + ...result, + diagnostics: result.diagnostics + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d), + }; + }; + program.getSyntacticDiagnostics = (sourceFile, cancellationToken) => { + if (!sourceFile) { + return getSyntacticDiagnostics(undefined, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d); + } + else { + const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName); + const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile; + return getSyntacticDiagnostics(actualSourceFile, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d) + .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript); + } + }; + program.getSemanticDiagnostics = (sourceFile, cancellationToken) => { + if (!sourceFile) { + return getSemanticDiagnostics(undefined, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d); + } + else { + const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName); + const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile; + return getSemanticDiagnostics(actualSourceFile, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d) + .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript); + } + }; + program.getGlobalDiagnostics = cancellationToken => { + return getGlobalDiagnostics(cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d); + }; + // @ts-ignore + program.getBindAndCheckDiagnostics = (sourceFile, cancellationToken) => { + if (!sourceFile) { + return getBindAndCheckDiagnostics(undefined, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d); + } + else { + const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName); + const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile; + return getBindAndCheckDiagnostics(actualSourceFile, cancellationToken) + .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true)) + .filter(d => !!d) + .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript); + } + }; + // fix https://github.com/vuejs/language-tools/issues/4099 with `incremental` + program.getSourceFileByPath = path => { + const sourceFile = getSourceFileByPath(path); + if (sourceFile) { + (0, transform_1.fillSourceFileText)(language, sourceFile); + } + return sourceFile; + }; +} + +var proxyCreateProgram$1 = {}; + +Object.defineProperty(proxyCreateProgram$1, "__esModule", { value: true }); +proxyCreateProgram$1.proxyCreateProgram = proxyCreateProgram; +const language_core_1$d = languageCore$1; +const resolveModuleName_1$1 = resolveModuleName; +const decorateProgram_1 = decorateProgram$1; +const common_1$f = common$3; +const arrayEqual = (a, b) => { + if (a.length !== b.length) { + return false; + } + for (let i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; +}; +const objectEqual = (a, b) => { + const keysA = Object.keys(a); + const keysB = Object.keys(b); + if (keysA.length !== keysB.length) { + return false; + } + for (const key of keysA) { + if (a[key] !== b[key]) { + return false; + } + } + return true; +}; +function proxyCreateProgram(ts, original, create) { + const sourceFileSnapshots = new language_core_1$d.FileMap(ts.sys.useCaseSensitiveFileNames); + const parsedSourceFiles = new WeakMap(); + let lastOptions; + let languagePlugins; + let language; + let moduleResolutionCache; + return new Proxy(original, { + apply: (target, thisArg, args) => { + const options = args[0]; + assert$2(!!options.host, '!!options.host'); + if (!lastOptions + || !languagePlugins + || !language + || !arrayEqual(options.rootNames, lastOptions.rootNames) + || !objectEqual(options.options, lastOptions.options)) { + moduleResolutionCache = ts.createModuleResolutionCache(options.host.getCurrentDirectory(), options.host.getCanonicalFileName, options.options); + lastOptions = options; + const created = create(ts, options); + if (Array.isArray(created)) { + languagePlugins = created; + } + else { + languagePlugins = created.languagePlugins; + } + language = (0, language_core_1$d.createLanguage)([ + ...languagePlugins, + { getLanguageId: common_1$f.resolveFileLanguageId }, + ], new language_core_1$d.FileMap(ts.sys.useCaseSensitiveFileNames), (fileName, includeFsFiles) => { + if (includeFsFiles && !sourceFileSnapshots.has(fileName)) { + const sourceFileText = originalHost.readFile(fileName); + if (sourceFileText !== undefined) { + sourceFileSnapshots.set(fileName, [undefined, { + getChangeRange() { + return undefined; + }, + getLength() { + return sourceFileText.length; + }, + getText(start, end) { + return sourceFileText.substring(start, end); + }, + }]); + } + else { + sourceFileSnapshots.set(fileName, [undefined, undefined]); + } + } + const snapshot = sourceFileSnapshots.get(fileName)?.[1]; + if (snapshot) { + language.scripts.set(fileName, snapshot); + } + else { + language.scripts.delete(fileName); + } + }); + if ('setup' in created) { + created.setup?.(language); + } + } + const originalHost = options.host; + const extensions = languagePlugins + .map(plugin => plugin.typescript?.extraFileExtensions.map(({ extension }) => `.${extension}`) ?? []) + .flat(); + options.host = { ...originalHost }; + options.host.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => { + const originalSourceFile = originalHost.getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile); + if (!sourceFileSnapshots.has(fileName) + || sourceFileSnapshots.get(fileName)?.[0] !== originalSourceFile) { + if (originalSourceFile) { + sourceFileSnapshots.set(fileName, [originalSourceFile, { + getChangeRange() { + return undefined; + }, + getLength() { + return originalSourceFile.text.length; + }, + getText(start, end) { + return originalSourceFile.text.substring(start, end); + }, + }]); + } + else { + sourceFileSnapshots.set(fileName, [undefined, undefined]); + } + } + if (!originalSourceFile) { + return; + } + if (!parsedSourceFiles.has(originalSourceFile)) { + const sourceScript = language.scripts.get(fileName); + assert$2(!!sourceScript, '!!sourceScript'); + parsedSourceFiles.set(originalSourceFile, undefined); + if (sourceScript.generated?.languagePlugin.typescript) { + const { getServiceScript, getExtraServiceScripts } = sourceScript.generated.languagePlugin.typescript; + const serviceScript = getServiceScript(sourceScript.generated.root); + if (serviceScript) { + let virtualContents; + if (!serviceScript.preventLeadingOffset) { + virtualContents = originalSourceFile.text.split('\n').map(line => ' '.repeat(line.length)).join('\n') + + serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength()); + } + else { + virtualContents = serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength()); + } + const parsedSourceFile = ts.createSourceFile(fileName, virtualContents, languageVersionOrOptions, undefined, serviceScript.scriptKind); + // @ts-expect-error + parsedSourceFile.version = originalSourceFile.version; + parsedSourceFiles.set(originalSourceFile, parsedSourceFile); + } + if (getExtraServiceScripts) { + console.warn('getExtraServiceScripts() is not available in this use case.'); + } + } + } + return parsedSourceFiles.get(originalSourceFile) ?? originalSourceFile; + }; + if (extensions.length) { + options.options.allowArbitraryExtensions = true; + const resolveModuleName = (0, resolveModuleName_1$1.createResolveModuleName)(ts, ts.sys.getFileSize, originalHost, language.plugins, fileName => language.scripts.get(fileName)); + const resolveModuleNameLiterals = originalHost.resolveModuleNameLiterals; + const resolveModuleNames = originalHost.resolveModuleNames; + options.host.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, compilerOptions, ...rest) => { + if (resolveModuleNameLiterals && moduleLiterals.every(name => !extensions.some(ext => name.text.endsWith(ext)))) { + return resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, compilerOptions, ...rest); + } + return moduleLiterals.map(moduleLiteral => { + return resolveModuleName(moduleLiteral.text, containingFile, compilerOptions, moduleResolutionCache, redirectedReference); + }); + }; + options.host.resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, compilerOptions, containingSourceFile) => { + if (resolveModuleNames && moduleNames.every(name => !extensions.some(ext => name.endsWith(ext)))) { + return resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, compilerOptions, containingSourceFile); + } + return moduleNames.map(moduleName => { + return resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionCache, redirectedReference).resolvedModule; + }); + }; + } + const program = Reflect.apply(target, thisArg, args); + (0, decorateProgram_1.decorateProgram)(language, program); + // TODO: #128 + program.__volar__ = { language }; + return program; + }, + }); +} +function assert$2(condition, message) { + if (!condition) { + console.error(message); + throw new Error(message); + } +} + +var createProject$2 = {}; + +function assertPath(path) { + if (typeof path !== 'string') { + throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)); + } +} + +// Resolves . and .. elements in a path with directory names +function normalizeStringPosix(path, allowAboveRoot) { + var res = ''; + var lastSegmentLength = 0; + var lastSlash = -1; + var dots = 0; + var code; + for (var i = 0; i <= path.length; ++i) { + if (i < path.length) + code = path.charCodeAt(i); + else if (code === 47 /*/*/) + break; + else + code = 47 /*/*/; + if (code === 47 /*/*/) { + if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) { + if (res.length > 2) { + var lastSlashIndex = res.lastIndexOf('/'); + if (lastSlashIndex !== res.length - 1) { + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); + } + lastSlash = i; + dots = 0; + continue; + } + } else if (res.length === 2 || res.length === 1) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + if (res.length > 0) + res += '/..'; + else + res = '..'; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) + res += '/' + path.slice(lastSlash + 1, i); + else + res = path.slice(lastSlash + 1, i); + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } else if (code === 46 /*.*/ && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; +} + +function _format(sep, pathObject) { + var dir = pathObject.dir || pathObject.root; + var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || ''); + if (!dir) { + return base; + } + if (dir === pathObject.root) { + return dir + base; + } + return dir + sep + base; +} + +var posix = { + // path.resolve([from ...], to) + resolve: function resolve() { + var resolvedPath = ''; + var resolvedAbsolute = false; + var cwd; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path; + if (i >= 0) + path = arguments[i]; + else { + if (cwd === undefined) + cwd = process.cwd(); + path = cwd; + } + + assertPath(path); + + // Skip empty entries + if (path.length === 0) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); + + if (resolvedAbsolute) { + if (resolvedPath.length > 0) + return '/' + resolvedPath; + else + return '/'; + } else if (resolvedPath.length > 0) { + return resolvedPath; + } else { + return '.'; + } + }, + + normalize: function normalize(path) { + assertPath(path); + + if (path.length === 0) return '.'; + + var isAbsolute = path.charCodeAt(0) === 47 /*/*/; + var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/; + + // Normalize the path + path = normalizeStringPosix(path, !isAbsolute); + + if (path.length === 0 && !isAbsolute) path = '.'; + if (path.length > 0 && trailingSeparator) path += '/'; + + if (isAbsolute) return '/' + path; + return path; + }, + + isAbsolute: function isAbsolute(path) { + assertPath(path); + return path.length > 0 && path.charCodeAt(0) === 47 /*/*/; + }, + + join: function join() { + if (arguments.length === 0) + return '.'; + var joined; + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i]; + assertPath(arg); + if (arg.length > 0) { + if (joined === undefined) + joined = arg; + else + joined += '/' + arg; + } + } + if (joined === undefined) + return '.'; + return posix.normalize(joined); + }, + + relative: function relative(from, to) { + assertPath(from); + assertPath(to); + + if (from === to) return ''; + + from = posix.resolve(from); + to = posix.resolve(to); + + if (from === to) return ''; + + // Trim any leading backslashes + var fromStart = 1; + for (; fromStart < from.length; ++fromStart) { + if (from.charCodeAt(fromStart) !== 47 /*/*/) + break; + } + var fromEnd = from.length; + var fromLen = fromEnd - fromStart; + + // Trim any leading backslashes + var toStart = 1; + for (; toStart < to.length; ++toStart) { + if (to.charCodeAt(toStart) !== 47 /*/*/) + break; + } + var toEnd = to.length; + var toLen = toEnd - toStart; + + // Compare paths to find the longest common path from root + var length = fromLen < toLen ? fromLen : toLen; + var lastCommonSep = -1; + var i = 0; + for (; i <= length; ++i) { + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === 47 /*/*/) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } else if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === 47 /*/*/) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo'; to='/' + lastCommonSep = 0; + } + } + break; + } + var fromCode = from.charCodeAt(fromStart + i); + var toCode = to.charCodeAt(toStart + i); + if (fromCode !== toCode) + break; + else if (fromCode === 47 /*/*/) + lastCommonSep = i; + } + + var out = ''; + // Generate the relative path based on the path difference between `to` + // and `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) { + if (out.length === 0) + out += '..'; + else + out += '/..'; + } + } + + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) + return out + to.slice(toStart + lastCommonSep); + else { + toStart += lastCommonSep; + if (to.charCodeAt(toStart) === 47 /*/*/) + ++toStart; + return to.slice(toStart); + } + }, + + _makeLong: function _makeLong(path) { + return path; + }, + + dirname: function dirname(path) { + assertPath(path); + if (path.length === 0) return '.'; + var code = path.charCodeAt(0); + var hasRoot = code === 47 /*/*/; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } + } + + if (end === -1) return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) return '//'; + return path.slice(0, end); + }, + + basename: function basename(path, ext) { + if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string'); + assertPath(path); + + var start = 0; + var end = -1; + var matchedSlash = true; + var i; + + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext.length === path.length && ext === path) return ''; + var extIdx = ext.length - 1; + var firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + + if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length; + return path.slice(start, end); + } else { + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + + if (end === -1) return ''; + return path.slice(start, end); + } + }, + + extname: function extname(path) { + assertPath(path); + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ''; + } + return path.slice(startDot, end); + }, + + format: function format(pathObject) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); + } + return _format('/', pathObject); + }, + + parse: function parse(path) { + assertPath(path); + + var ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) return ret; + var code = path.charCodeAt(0); + var isAbsolute = code === 47 /*/*/; + var start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } else { + start = 0; + } + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + var i = path.length - 1; + + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + + // Get non-dir info + for (; i >= start; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + if (end !== -1) { + if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end); + } + } else { + if (startPart === 0 && isAbsolute) { + ret.name = path.slice(1, startDot); + ret.base = path.slice(1, end); + } else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + } + ret.ext = path.slice(startDot, end); + } + + if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/'; + + return ret; + }, + + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; + +posix.posix = posix; + +var pathBrowserify = posix; + +Object.defineProperty(createProject$2, "__esModule", { value: true }); +createProject$2.createLanguageServiceHost = createLanguageServiceHost; +const language_core_1$c = languageCore$1; +const path$5 = pathBrowserify; +const resolveModuleName_1 = resolveModuleName; +function createLanguageServiceHost(ts, sys, language, asScriptId, projectHost) { + const scriptVersions = new language_core_1$c.FileMap(sys.useCaseSensitiveFileNames); + let lastProjectVersion; + let tsProjectVersion = 0; + let tsFileRegistry = new language_core_1$c.FileMap(sys.useCaseSensitiveFileNames); + let tsFileDirRegistry = new language_core_1$c.FileMap(sys.useCaseSensitiveFileNames); + let extraScriptRegistry = new language_core_1$c.FileMap(sys.useCaseSensitiveFileNames); + let lastTsVirtualFileSnapshots = new Set(); + let lastOtherVirtualFileSnapshots = new Set(); + let languageServiceHost = { + ...sys, + getCurrentDirectory() { + return projectHost.getCurrentDirectory(); + }, + useCaseSensitiveFileNames() { + return sys.useCaseSensitiveFileNames; + }, + getNewLine() { + return sys.newLine; + }, + getTypeRootsVersion: () => { + return 'version' in sys ? sys.version : -1; // TODO: only update for /node_modules changes? + }, + getDirectories(dirName) { + return sys.getDirectories(dirName); + }, + readDirectory(dirName, extensions, excludes, includes, depth) { + const exts = new Set(extensions); + for (const languagePlugin of language.plugins) { + for (const ext of languagePlugin.typescript?.extraFileExtensions ?? []) { + exts.add('.' + ext.extension); + } + } + extensions = [...exts]; + return sys.readDirectory(dirName, extensions, excludes, includes, depth); + }, + getCompilationSettings() { + const options = projectHost.getCompilationSettings(); + if (language.plugins.some(language => language.typescript?.extraFileExtensions.length)) { + options.allowNonTsExtensions ??= true; + if (!options.allowNonTsExtensions) { + console.warn('`allowNonTsExtensions` must be `true`.'); + } + } + return options; + }, + getLocalizedDiagnosticMessages: projectHost.getLocalizedDiagnosticMessages, + getProjectReferences: projectHost.getProjectReferences, + getDefaultLibFileName: options => { + try { + return ts.getDefaultLibFilePath(options); + } + catch { + // web + return `/node_modules/typescript/lib/${ts.getDefaultLibFileName(options)}`; + } + }, + readFile(fileName) { + const snapshot = getScriptSnapshot(fileName); + if (snapshot) { + return snapshot.getText(0, snapshot.getLength()); + } + }, + directoryExists(directoryName) { + sync(); + if (tsFileDirRegistry.has(directoryName)) { + return true; + } + return sys.directoryExists(directoryName); + }, + fileExists(fileName) { + return getScriptVersion(fileName) !== ''; + }, + getProjectVersion() { + sync(); + return tsProjectVersion + ('version' in sys ? `:${sys.version}` : ''); + }, + getScriptFileNames() { + sync(); + return [...tsFileRegistry.keys()]; + }, + getScriptKind(fileName) { + sync(); + if (extraScriptRegistry.has(fileName)) { + return extraScriptRegistry.get(fileName).scriptKind; + } + const sourceScript = language.scripts.get(asScriptId(fileName)); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + return serviceScript.scriptKind; + } + } + switch (path$5.extname(fileName)) { + case '.js': + case '.cjs': + case '.mjs': + return ts.ScriptKind.JS; + case '.jsx': + return ts.ScriptKind.JSX; + case '.ts': + case '.cts': + case '.mts': + return ts.ScriptKind.TS; + case '.tsx': + return ts.ScriptKind.TSX; + case '.json': + return ts.ScriptKind.JSON; + default: + return ts.ScriptKind.Unknown; + } + }, + getScriptVersion, + getScriptSnapshot, + }; + for (const plugin of language.plugins) { + if (plugin.typescript?.resolveLanguageServiceHost) { + languageServiceHost = plugin.typescript.resolveLanguageServiceHost(languageServiceHost); + } + } + if (language.plugins.some(plugin => plugin.typescript?.extraFileExtensions.length)) { + // TODO: can this share between monorepo packages? + const moduleCache = ts.createModuleResolutionCache(languageServiceHost.getCurrentDirectory(), languageServiceHost.useCaseSensitiveFileNames?.() ? s => s : s => s.toLowerCase(), languageServiceHost.getCompilationSettings()); + const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, sys.getFileSize, languageServiceHost, language.plugins, fileName => language.scripts.get(asScriptId(fileName))); + let lastSysVersion = 'version' in sys ? sys.version : undefined; + languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, sourceFile) => { + if ('version' in sys && lastSysVersion !== sys.version) { + lastSysVersion = sys.version; + moduleCache.clear(); + } + return moduleLiterals.map(moduleLiteral => { + return resolveModuleName(moduleLiteral.text, containingFile, options, moduleCache, redirectedReference, sourceFile.impliedNodeFormat); + }); + }; + languageServiceHost.resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference, options) => { + if ('version' in sys && lastSysVersion !== sys.version) { + lastSysVersion = sys.version; + moduleCache.clear(); + } + return moduleNames.map(moduleName => { + return resolveModuleName(moduleName, containingFile, options, moduleCache, redirectedReference).resolvedModule; + }); + }; + } + return { + languageServiceHost, + getExtraServiceScript, + }; + function getExtraServiceScript(fileName) { + sync(); + return extraScriptRegistry.get(fileName); + } + function sync() { + const newProjectVersion = projectHost.getProjectVersion?.(); + const shouldUpdate = newProjectVersion === undefined || newProjectVersion !== lastProjectVersion; + if (!shouldUpdate) { + return; + } + lastProjectVersion = newProjectVersion; + extraScriptRegistry.clear(); + const newTsVirtualFileSnapshots = new Set(); + const newOtherVirtualFileSnapshots = new Set(); + const tsFileNamesSet = new Set(); + for (const fileName of projectHost.getScriptFileNames()) { + const sourceScript = language.scripts.get(asScriptId(fileName)); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + newTsVirtualFileSnapshots.add(serviceScript.code.snapshot); + tsFileNamesSet.add(fileName); + } + for (const extraServiceScript of sourceScript.generated.languagePlugin.typescript?.getExtraServiceScripts?.(fileName, sourceScript.generated.root) ?? []) { + newTsVirtualFileSnapshots.add(extraServiceScript.code.snapshot); + tsFileNamesSet.add(extraServiceScript.fileName); + extraScriptRegistry.set(extraServiceScript.fileName, extraServiceScript); + } + for (const code of (0, language_core_1$c.forEachEmbeddedCode)(sourceScript.generated.root)) { + newOtherVirtualFileSnapshots.add(code.snapshot); + } + } + else { + tsFileNamesSet.add(fileName); + } + } + if (!setEquals(lastTsVirtualFileSnapshots, newTsVirtualFileSnapshots)) { + tsProjectVersion++; + } + else if (setEquals(lastOtherVirtualFileSnapshots, newOtherVirtualFileSnapshots)) { + // no any meta language files update, it mean project version was update by source files this time + tsProjectVersion++; + } + lastTsVirtualFileSnapshots = newTsVirtualFileSnapshots; + lastOtherVirtualFileSnapshots = newOtherVirtualFileSnapshots; + tsFileRegistry.clear(); + tsFileDirRegistry.clear(); + for (const fileName of tsFileNamesSet) { + tsFileRegistry.set(fileName, true); + const parts = fileName.split('/'); + for (let i = 1; i < parts.length; i++) { + const dirName = parts.slice(0, i).join('/'); + tsFileDirRegistry.set(dirName, true); + } + } + } + function getScriptSnapshot(fileName) { + sync(); + if (extraScriptRegistry.has(fileName)) { + return extraScriptRegistry.get(fileName).code.snapshot; + } + const sourceScript = language.scripts.get(asScriptId(fileName)); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + return serviceScript.code.snapshot; + } + } + else if (sourceScript) { + return sourceScript.snapshot; + } + } + function getScriptVersion(fileName) { + sync(); + if (!scriptVersions.has(fileName)) { + scriptVersions.set(fileName, { lastVersion: 0, map: new WeakMap() }); + } + const version = scriptVersions.get(fileName); + if (extraScriptRegistry.has(fileName)) { + const snapshot = extraScriptRegistry.get(fileName).code.snapshot; + if (!version.map.has(snapshot)) { + version.map.set(snapshot, version.lastVersion++); + } + return version.map.get(snapshot).toString(); + } + const sourceScript = language.scripts.get(asScriptId(fileName)); + if (sourceScript?.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (serviceScript) { + if (!version.map.has(serviceScript.code.snapshot)) { + version.map.set(serviceScript.code.snapshot, version.lastVersion++); + } + return version.map.get(serviceScript.code.snapshot).toString(); + } + } + const openedFile = language.scripts.get(asScriptId(fileName), false); + if (openedFile && !openedFile.generated) { + if (!version.map.has(openedFile.snapshot)) { + version.map.set(openedFile.snapshot, version.lastVersion++); + } + return version.map.get(openedFile.snapshot).toString(); + } + if (sys.fileExists(fileName)) { + return sys.getModifiedTime?.(fileName)?.valueOf().toString() ?? '0'; + } + return ''; + } +} +function setEquals(a, b) { + if (a.size !== b.size) { + return false; + } + for (const item of a) { + if (!b.has(item)) { + return false; + } + } + return true; +} + +var createSys$1 = {}; + +var utilities = {}; + +var core = {}; + +Object.defineProperty(core, "__esModule", { value: true }); +core.every = every; +core.findIndex = findIndex; +core.indexOfAnyCharCode = indexOfAnyCharCode; +core.map = map$1; +core.flatten = flatten; +core.flatMap = flatMap; +core.some = some; +core.sort = sort$3; +core.lastOrUndefined = lastOrUndefined; +core.last = last; +core.equateStringsCaseInsensitive = equateStringsCaseInsensitive; +core.equateStringsCaseSensitive = equateStringsCaseSensitive; +core.compareStringsCaseSensitive = compareStringsCaseSensitive; +core.getStringComparer = getStringComparer; +core.endsWith = endsWith$3; +core.stringContains = stringContains; +core.createGetCanonicalFileName = createGetCanonicalFileName; +core.startsWith = startsWith$3; +const emptyArray = []; +/** + * Iterates through `array` by index and performs the callback on each element of array until the callback + * returns a falsey value, then returns false. + * If no such value is found, the callback is applied to each element of array and `true` is returned. + */ +function every(array, callback) { + if (array) { + for (let i = 0; i < array.length; i++) { + if (!callback(array[i], i)) { + return false; + } + } + } + return true; +} +/** Works like Array.prototype.findIndex, returning `-1` if no element satisfying the predicate is found. */ +function findIndex(array, predicate, startIndex) { + if (array === undefined) { + return -1; + } + for (let i = startIndex ?? 0; i < array.length; i++) { + if (predicate(array[i], i)) { + return i; + } + } + return -1; +} +function contains$2(array, value, equalityComparer = equateValues) { + if (array) { + for (const v of array) { + if (equalityComparer(v, value)) { + return true; + } + } + } + return false; +} +function indexOfAnyCharCode(text, charCodes, start) { + for (let i = start || 0; i < text.length; i++) { + if (contains$2(charCodes, text.charCodeAt(i))) { + return i; + } + } + return -1; +} +function map$1(array, f) { + let result; + if (array) { + result = []; + for (let i = 0; i < array.length; i++) { + result.push(f(array[i], i)); + } + } + return result; +} +/** + * Flattens an array containing a mix of array or non-array elements. + * + * @param array The array to flatten. + */ +function flatten(array) { + const result = []; + for (const v of array) { + if (v) { + if (isArray$2(v)) { + addRange(result, v); + } + else { + result.push(v); + } + } + } + return result; +} +/** + * Maps an array. If the mapped value is an array, it is spread into the result. + * + * @param array The array to map. + * @param mapfn The callback used to map the result into one or more values. + */ +function flatMap(array, mapfn) { + let result; + if (array) { + for (let i = 0; i < array.length; i++) { + const v = mapfn(array[i], i); + if (v) { + if (isArray$2(v)) { + result = addRange(result, v); + } + else { + result = append(result, v); + } + } + } + } + return result || emptyArray; +} +function some(array, predicate) { + if (array) { + if (predicate) { + for (const v of array) { + if (predicate(v)) { + return true; + } + } + } + else { + return array.length > 0; + } + } + return false; +} +// function append<T>(to: T[] | undefined, value: T): T[]; +// function append<T>(to: T[] | undefined, value: T | undefined): T[] | undefined; +// function append<T>(to: Push<T>, value: T | undefined): void; +function append(to, value) { + if (value === undefined) { + return to; + } + if (to === undefined) { + return [value]; + } + to.push(value); + return to; +} +/** + * Gets the actual offset into an array for a relative offset. Negative offsets indicate a + * position offset from the end of the array. + */ +function toOffset(array, offset) { + return offset < 0 ? array.length + offset : offset; +} +function addRange(to, from, start, end) { + if (from === undefined || from.length === 0) { + return to; + } + if (to === undefined) { + return from.slice(start, end); + } + start = start === undefined ? 0 : toOffset(from, start); + end = end === undefined ? from.length : toOffset(from, end); + for (let i = start; i < end && i < from.length; i++) { + if (from[i] !== undefined) { + to.push(from[i]); + } + } + return to; +} +/** + * Returns a new sorted array. + */ +function sort$3(array, comparer) { + return (array.length === 0 ? array : array.slice().sort(comparer)); +} +/** + * Returns the last element of an array if non-empty, `undefined` otherwise. + */ +function lastOrUndefined(array) { + return array === undefined || array.length === 0 ? undefined : array[array.length - 1]; +} +function last(array) { + // Debug.assert(array.length !== 0); + return array[array.length - 1]; +} +/** + * Tests whether a value is an array. + */ +function isArray$2(value) { + return Array.isArray ? Array.isArray(value) : value instanceof Array; +} +/** Returns its argument. */ +function identity$1(x) { + return x; +} +/** Returns lower case string */ +function toLowerCase(x) { + return x.toLowerCase(); +} +// We convert the file names to lower case as key for file name on case insensitive file system +// While doing so we need to handle special characters (eg \u0130) to ensure that we dont convert +// it to lower case, fileName with its lowercase form can exist along side it. +// Handle special characters and make those case sensitive instead +// +// |-#--|-Unicode--|-Char code-|-Desc-------------------------------------------------------------------| +// | 1. | i | 105 | Ascii i | +// | 2. | I | 73 | Ascii I | +// |-------- Special characters ------------------------------------------------------------------------| +// | 3. | \u0130 | 304 | Upper case I with dot above | +// | 4. | i,\u0307 | 105,775 | i, followed by 775: Lower case of (3rd item) | +// | 5. | I,\u0307 | 73,775 | I, followed by 775: Upper case of (4th item), lower case is (4th item) | +// | 6. | \u0131 | 305 | Lower case i without dot, upper case is I (2nd item) | +// | 7. | \u00DF | 223 | Lower case sharp s | +// +// Because item 3 is special where in its lowercase character has its own +// upper case form we cant convert its case. +// Rest special characters are either already in lower case format or +// they have corresponding upper case character so they dont need special handling +// +// But to avoid having to do string building for most common cases, also ignore +// a-z, 0-9, \u0131, \u00DF, \, /, ., : and space +const fileNameLowerCaseRegExp = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_\. ]+/g; +/** + * Case insensitive file systems have descripencies in how they handle some characters (eg. turkish Upper case I with dot on top - \u0130) + * This function is used in places where we want to make file name as a key on these systems + * It is possible on mac to be able to refer to file name with I with dot on top as a fileName with its lower case form + * But on windows we cannot. Windows can have fileName with I with dot on top next to its lower case and they can not each be referred with the lowercase forms + * Technically we would want this function to be platform sepcific as well but + * our api has till now only taken caseSensitive as the only input and just for some characters we dont want to update API and ensure all customers use those api + * We could use upper case and we would still need to deal with the descripencies but + * we want to continue using lower case since in most cases filenames are lowercasewe and wont need any case changes and avoid having to store another string for the key + * So for this function purpose, we go ahead and assume character I with dot on top it as case sensitive since its very unlikely to use lower case form of that special character + */ +function toFileNameLowerCase(x) { + return fileNameLowerCaseRegExp.test(x) ? + x.replace(fileNameLowerCaseRegExp, toLowerCase) : + x; +} +function equateValues(a, b) { + return a === b; +} +/** + * Compare the equality of two strings using a case-sensitive ordinal comparison. + * + * Case-sensitive comparisons compare both strings one code-point at a time using the integer + * value of each code-point after applying `toUpperCase` to each string. We always map both + * strings to their upper-case form as some unicode characters do not properly round-trip to + * lowercase (such as `ẞ` (German sharp capital s)). + */ +function equateStringsCaseInsensitive(a, b) { + return a === b + || a !== undefined + && b !== undefined + && a.toUpperCase() === b.toUpperCase(); +} +/** + * Compare the equality of two strings using a case-sensitive ordinal comparison. + * + * Case-sensitive comparisons compare both strings one code-point at a time using the + * integer value of each code-point. + */ +function equateStringsCaseSensitive(a, b) { + return equateValues(a, b); +} +function compareComparableValues(a, b) { + return a === b ? 0 /* Comparison.EqualTo */ : + a === undefined ? -1 /* Comparison.LessThan */ : + b === undefined ? 1 /* Comparison.GreaterThan */ : + a < b ? -1 /* Comparison.LessThan */ : + 1 /* Comparison.GreaterThan */; +} +/** + * Compare two strings using a case-insensitive ordinal comparison. + * + * Ordinal comparisons are based on the difference between the unicode code points of both + * strings. Characters with multiple unicode representations are considered unequal. Ordinal + * comparisons provide predictable ordering, but place "a" after "B". + * + * Case-insensitive comparisons compare both strings one code-point at a time using the integer + * value of each code-point after applying `toUpperCase` to each string. We always map both + * strings to their upper-case form as some unicode characters do not properly round-trip to + * lowercase (such as `ẞ` (German sharp capital s)). + */ +function compareStringsCaseInsensitive(a, b) { + if (a === b) { + return 0 /* Comparison.EqualTo */; + } + if (a === undefined) { + return -1 /* Comparison.LessThan */; + } + if (b === undefined) { + return 1 /* Comparison.GreaterThan */; + } + a = a.toUpperCase(); + b = b.toUpperCase(); + return a < b ? -1 /* Comparison.LessThan */ : a > b ? 1 /* Comparison.GreaterThan */ : 0 /* Comparison.EqualTo */; +} +/** + * Compare two strings using a case-sensitive ordinal comparison. + * + * Ordinal comparisons are based on the difference between the unicode code points of both + * strings. Characters with multiple unicode representations are considered unequal. Ordinal + * comparisons provide predictable ordering, but place "a" after "B". + * + * Case-sensitive comparisons compare both strings one code-point at a time using the integer + * value of each code-point. + */ +function compareStringsCaseSensitive(a, b) { + return compareComparableValues(a, b); +} +function getStringComparer(ignoreCase) { + return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive; +} +function endsWith$3(str, suffix) { + const expectedPos = str.length - suffix.length; + return expectedPos >= 0 && str.indexOf(suffix, expectedPos) === expectedPos; +} +function stringContains(str, substring) { + return str.indexOf(substring) !== -1; +} +function createGetCanonicalFileName(useCaseSensitiveFileNames) { + return useCaseSensitiveFileNames ? identity$1 : toFileNameLowerCase; +} +function startsWith$3(str, prefix) { + return str.lastIndexOf(prefix, 0) === 0; +} + +var path$4 = {}; + +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.directorySeparator = void 0; + exports.isRootedDiskPath = isRootedDiskPath; + exports.hasExtension = hasExtension; + exports.fileExtensionIsOneOf = fileExtensionIsOneOf; + exports.getDirectoryPath = getDirectoryPath; + exports.combinePaths = combinePaths; + exports.getNormalizedPathComponents = getNormalizedPathComponents; + exports.normalizePath = normalizePath; + exports.removeTrailingDirectorySeparator = removeTrailingDirectorySeparator; + exports.containsPath = containsPath; + const core_1 = core; + /** + * Internally, we represent paths as strings with '/' as the directory separator. + * When we make system calls (eg: LanguageServiceHost.getDirectory()), + * we expect the host to correctly handle paths in our specified format. + */ + exports.directorySeparator = "/"; + const altDirectorySeparator = "\\"; + const urlSchemeSeparator = "://"; + const backslashRegExp = /\\/g; + //// Path Tests + /** + * Determines whether a charCode corresponds to `/` or `\`. + */ + function isAnyDirectorySeparator(charCode) { + return charCode === 47 /* CharacterCodes.slash */ || charCode === 92 /* CharacterCodes.backslash */; + } + /** + * Determines whether a path is an absolute disk path (e.g. starts with `/`, or a dos path + * like `c:`, `c:\` or `c:/`). + */ + function isRootedDiskPath(path) { + return getEncodedRootLength(path) > 0; + } + function hasExtension(fileName) { + return (0, core_1.stringContains)(getBaseFileName(fileName), "."); + } + function fileExtensionIs(path, extension) { + return path.length > extension.length && (0, core_1.endsWith)(path, extension); + } + function fileExtensionIsOneOf(path, extensions) { + for (const extension of extensions) { + if (fileExtensionIs(path, extension)) { + return true; + } + } + return false; + } + /** + * Determines whether a path has a trailing separator (`/` or `\\`). + */ + function hasTrailingDirectorySeparator(path) { + return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1)); + } + //// Path Parsing + function isVolumeCharacter(charCode) { + return (charCode >= 97 /* CharacterCodes.a */ && charCode <= 122 /* CharacterCodes.z */) || + (charCode >= 65 /* CharacterCodes.A */ && charCode <= 90 /* CharacterCodes.Z */); + } + function getFileUrlVolumeSeparatorEnd(url, start) { + const ch0 = url.charCodeAt(start); + if (ch0 === 58 /* CharacterCodes.colon */) { + return start + 1; + } + if (ch0 === 37 /* CharacterCodes.percent */ && url.charCodeAt(start + 1) === 51 /* CharacterCodes._3 */) { + const ch2 = url.charCodeAt(start + 2); + if (ch2 === 97 /* CharacterCodes.a */ || ch2 === 65 /* CharacterCodes.A */) { + return start + 3; + } + } + return -1; + } + /** + * Returns length of the root part of a path or URL (i.e. length of "/", "x:/", "//server/share/, file:///user/files"). + * If the root is part of a URL, the twos-complement of the root length is returned. + */ + function getEncodedRootLength(path) { + if (!path) { + return 0; + } + const ch0 = path.charCodeAt(0); + // POSIX or UNC + if (ch0 === 47 /* CharacterCodes.slash */ || ch0 === 92 /* CharacterCodes.backslash */) { + if (path.charCodeAt(1) !== ch0) { + return 1; // POSIX: "/" (or non-normalized "\") + } + const p1 = path.indexOf(ch0 === 47 /* CharacterCodes.slash */ ? exports.directorySeparator : altDirectorySeparator, 2); + if (p1 < 0) { + return path.length; // UNC: "//server" or "\\server" + } + return p1 + 1; // UNC: "//server/" or "\\server\" + } + // DOS + if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* CharacterCodes.colon */) { + const ch2 = path.charCodeAt(2); + if (ch2 === 47 /* CharacterCodes.slash */ || ch2 === 92 /* CharacterCodes.backslash */) { + return 3; // DOS: "c:/" or "c:\" + } + if (path.length === 2) { + return 2; // DOS: "c:" (but not "c:d") + } + } + // URL + const schemeEnd = path.indexOf(urlSchemeSeparator); + if (schemeEnd !== -1) { + const authorityStart = schemeEnd + urlSchemeSeparator.length; + const authorityEnd = path.indexOf(exports.directorySeparator, authorityStart); + if (authorityEnd !== -1) { // URL: "file:///", "file://server/", "file://server/path" + // For local "file" URLs, include the leading DOS volume (if present). + // Per https://www.ietf.org/rfc/rfc1738.txt, a host of "" or "localhost" is a + // special case interpreted as "the machine from which the URL is being interpreted". + const scheme = path.slice(0, schemeEnd); + const authority = path.slice(authorityStart, authorityEnd); + if (scheme === "file" && (authority === "" || authority === "localhost") && + isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) { + const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2); + if (volumeSeparatorEnd !== -1) { + if (path.charCodeAt(volumeSeparatorEnd) === 47 /* CharacterCodes.slash */) { + // URL: "file:///c:/", "file://localhost/c:/", "file:///c%3a/", "file://localhost/c%3a/" + return ~(volumeSeparatorEnd + 1); + } + if (volumeSeparatorEnd === path.length) { + // URL: "file:///c:", "file://localhost/c:", "file:///c$3a", "file://localhost/c%3a" + // but not "file:///c:d" or "file:///c%3ad" + return ~volumeSeparatorEnd; + } + } + } + return ~(authorityEnd + 1); // URL: "file://server/", "http://server/" + } + return ~path.length; // URL: "file://server", "http://server" + } + // relative + return 0; + } + /** + * Returns length of the root part of a path or URL (i.e. length of "/", "x:/", "//server/share/, file:///user/files"). + * + * For example: + * ```ts + * getRootLength("a") === 0 // "" + * getRootLength("/") === 1 // "/" + * getRootLength("c:") === 2 // "c:" + * getRootLength("c:d") === 0 // "" + * getRootLength("c:/") === 3 // "c:/" + * getRootLength("c:\\") === 3 // "c:\\" + * getRootLength("//server") === 7 // "//server" + * getRootLength("//server/share") === 8 // "//server/" + * getRootLength("\\\\server") === 7 // "\\\\server" + * getRootLength("\\\\server\\share") === 8 // "\\\\server\\" + * getRootLength("file:///path") === 8 // "file:///" + * getRootLength("file:///c:") === 10 // "file:///c:" + * getRootLength("file:///c:d") === 8 // "file:///" + * getRootLength("file:///c:/path") === 11 // "file:///c:/" + * getRootLength("file://server") === 13 // "file://server" + * getRootLength("file://server/path") === 14 // "file://server/" + * getRootLength("http://server") === 13 // "http://server" + * getRootLength("http://server/path") === 14 // "http://server/" + * ``` + */ + function getRootLength(path) { + const rootLength = getEncodedRootLength(path); + return rootLength < 0 ? ~rootLength : rootLength; + } + function getDirectoryPath(path) { + path = normalizeSlashes(path); + // If the path provided is itself the root, then return it. + const rootLength = getRootLength(path); + if (rootLength === path.length) { + return path; + } + // return the leading portion of the path up to the last (non-terminal) directory separator + // but not including any trailing directory separator. + path = removeTrailingDirectorySeparator(path); + return path.slice(0, Math.max(rootLength, path.lastIndexOf(exports.directorySeparator))); + } + function getBaseFileName(path, extensions, ignoreCase) { + path = normalizeSlashes(path); + // if the path provided is itself the root, then it has not file name. + const rootLength = getRootLength(path); + if (rootLength === path.length) { + return ""; + } + // return the trailing portion of the path starting after the last (non-terminal) directory + // separator but not including any trailing directory separator. + path = removeTrailingDirectorySeparator(path); + const name = path.slice(Math.max(getRootLength(path), path.lastIndexOf(exports.directorySeparator) + 1)); + const extension = undefined; + return extension ? name.slice(0, name.length - extension.length) : name; + } + function pathComponents(path, rootLength) { + const root = path.substring(0, rootLength); + const rest = path.substring(rootLength).split(exports.directorySeparator); + if (rest.length && !(0, core_1.lastOrUndefined)(rest)) { + rest.pop(); + } + return [root, ...rest]; + } + /** + * Parse a path into an array containing a root component (at index 0) and zero or more path + * components (at indices > 0). The result is not normalized. + * If the path is relative, the root component is `""`. + * If the path is absolute, the root component includes the first path separator (`/`). + * + * ```ts + * // POSIX + * getPathComponents("/path/to/file.ext") === ["/", "path", "to", "file.ext"] + * getPathComponents("/path/to/") === ["/", "path", "to"] + * getPathComponents("/") === ["/"] + * // DOS + * getPathComponents("c:/path/to/file.ext") === ["c:/", "path", "to", "file.ext"] + * getPathComponents("c:/path/to/") === ["c:/", "path", "to"] + * getPathComponents("c:/") === ["c:/"] + * getPathComponents("c:") === ["c:"] + * // URL + * getPathComponents("http://typescriptlang.org/path/to/file.ext") === ["http://typescriptlang.org/", "path", "to", "file.ext"] + * getPathComponents("http://typescriptlang.org/path/to/") === ["http://typescriptlang.org/", "path", "to"] + * getPathComponents("http://typescriptlang.org/") === ["http://typescriptlang.org/"] + * getPathComponents("http://typescriptlang.org") === ["http://typescriptlang.org"] + * getPathComponents("file://server/path/to/file.ext") === ["file://server/", "path", "to", "file.ext"] + * getPathComponents("file://server/path/to/") === ["file://server/", "path", "to"] + * getPathComponents("file://server/") === ["file://server/"] + * getPathComponents("file://server") === ["file://server"] + * getPathComponents("file:///path/to/file.ext") === ["file:///", "path", "to", "file.ext"] + * getPathComponents("file:///path/to/") === ["file:///", "path", "to"] + * getPathComponents("file:///") === ["file:///"] + * getPathComponents("file://") === ["file://"] + */ + function getPathComponents(path, currentDirectory = "") { + path = combinePaths(currentDirectory, path); + return pathComponents(path, getRootLength(path)); + } + //// Path Formatting + /** + * Formats a parsed path consisting of a root component (at index 0) and zero or more path + * segments (at indices > 0). + * + * ```ts + * getPathFromPathComponents(["/", "path", "to", "file.ext"]) === "/path/to/file.ext" + * ``` + */ + function getPathFromPathComponents(pathComponents) { + if (pathComponents.length === 0) { + return ""; + } + const root = pathComponents[0] && ensureTrailingDirectorySeparator(pathComponents[0]); + return root + pathComponents.slice(1).join(exports.directorySeparator); + } + //// Path Normalization + /** + * Normalize path separators, converting `\` into `/`. + */ + function normalizeSlashes(path) { + return path.indexOf("\\") !== -1 + ? path.replace(backslashRegExp, exports.directorySeparator) + : path; + } + /** + * Reduce an array of path components to a more simplified path by navigating any + * `"."` or `".."` entries in the path. + */ + function reducePathComponents(components) { + if (!(0, core_1.some)(components)) { + return []; + } + const reduced = [components[0]]; + for (let i = 1; i < components.length; i++) { + const component = components[i]; + if (!component) { + continue; + } + if (component === ".") { + continue; + } + if (component === "..") { + if (reduced.length > 1) { + if (reduced[reduced.length - 1] !== "..") { + reduced.pop(); + continue; + } + } + else if (reduced[0]) { + continue; + } + } + reduced.push(component); + } + return reduced; + } + /** + * Combines paths. If a path is absolute, it replaces any previous path. Relative paths are not simplified. + * + * ```ts + * // Non-rooted + * combinePaths("path", "to", "file.ext") === "path/to/file.ext" + * combinePaths("path", "dir", "..", "to", "file.ext") === "path/dir/../to/file.ext" + * // POSIX + * combinePaths("/path", "to", "file.ext") === "/path/to/file.ext" + * combinePaths("/path", "/to", "file.ext") === "/to/file.ext" + * // DOS + * combinePaths("c:/path", "to", "file.ext") === "c:/path/to/file.ext" + * combinePaths("c:/path", "c:/to", "file.ext") === "c:/to/file.ext" + * // URL + * combinePaths("file:///path", "to", "file.ext") === "file:///path/to/file.ext" + * combinePaths("file:///path", "file:///to", "file.ext") === "file:///to/file.ext" + * ``` + */ + function combinePaths(path, ...paths) { + if (path) { + path = normalizeSlashes(path); + } + for (let relativePath of paths) { + if (!relativePath) { + continue; + } + relativePath = normalizeSlashes(relativePath); + if (!path || getRootLength(relativePath) !== 0) { + path = relativePath; + } + else { + path = ensureTrailingDirectorySeparator(path) + relativePath; + } + } + return path; + } + /** + * Parse a path into an array containing a root component (at index 0) and zero or more path + * components (at indices > 0). The result is normalized. + * If the path is relative, the root component is `""`. + * If the path is absolute, the root component includes the first path separator (`/`). + * + * ```ts + * getNormalizedPathComponents("to/dir/../file.ext", "/path/") === ["/", "path", "to", "file.ext"] + * ``` + */ + function getNormalizedPathComponents(path, currentDirectory) { + return reducePathComponents(getPathComponents(path, currentDirectory)); + } + function normalizePath(path) { + path = normalizeSlashes(path); + // Most paths don't require normalization + if (!relativePathSegmentRegExp.test(path)) { + return path; + } + // Some paths only require cleanup of `/./` or leading `./` + const simplified = path.replace(/\/\.\//g, "/").replace(/^\.\//, ""); + if (simplified !== path) { + path = simplified; + if (!relativePathSegmentRegExp.test(path)) { + return path; + } + } + // Other paths require full normalization + const normalized = getPathFromPathComponents(reducePathComponents(getPathComponents(path))); + return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized; + } + function removeTrailingDirectorySeparator(path) { + if (hasTrailingDirectorySeparator(path)) { + return path.substr(0, path.length - 1); + } + return path; + } + function ensureTrailingDirectorySeparator(path) { + if (!hasTrailingDirectorySeparator(path)) { + return path + exports.directorySeparator; + } + return path; + } + //// Path Comparisons + // check path for these segments: '', '.'. '..' + const relativePathSegmentRegExp = /(?:\/\/)|(?:^|\/)\.\.?(?:$|\/)/; + function containsPath(parent, child, currentDirectory, ignoreCase) { + if (typeof currentDirectory === "string") { + parent = combinePaths(currentDirectory, parent); + child = combinePaths(currentDirectory, child); + } + else if (typeof currentDirectory === "boolean") { + ignoreCase = currentDirectory; + } + if (parent === undefined || child === undefined) { + return false; + } + if (parent === child) { + return true; + } + const parentComponents = reducePathComponents(getPathComponents(parent)); + const childComponents = reducePathComponents(getPathComponents(child)); + if (childComponents.length < parentComponents.length) { + return false; + } + const componentEqualityComparer = ignoreCase ? core_1.equateStringsCaseInsensitive : core_1.equateStringsCaseSensitive; + for (let i = 0; i < parentComponents.length; i++) { + const equalityComparer = i === 0 ? core_1.equateStringsCaseInsensitive : componentEqualityComparer; + if (!equalityComparer(parentComponents[i], childComponents[i])) { + return false; + } + } + return true; + } + +} (path$4)); + +Object.defineProperty(utilities, "__esModule", { value: true }); +utilities.matchFiles = matchFiles; +const core_1 = core; +const path_1 = path$4; +// KLUDGE: Don't assume one 'node_modules' links to another. More likely a single directory inside the node_modules is the symlink. +// ALso, don't assume that an `@foo` directory is linked. More likely the contents of that are linked. +// Reserved characters, forces escaping of any non-word (or digit), non-whitespace character. +// It may be inefficient (we could just match (/[-[\]{}()*+?.,\\^$|#\s]/g), but this is future +// proof. +const reservedCharacterPattern = /[^\w\s\/]/g; +const wildcardCharCodes = [42 /* CharacterCodes.asterisk */, 63 /* CharacterCodes.question */]; +const commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"]; +const implicitExcludePathRegexPattern = `(?!(${commonPackageFolders.join("|")})(/|$))`; +const filesMatcher = { + /** + * Matches any single directory segment unless it is the last segment and a .min.js file + * Breakdown: + * [^./] # matches everything up to the first . character (excluding directory separators) + * (\\.(?!min\\.js$))? # matches . characters but not if they are part of the .min.js file extension + */ + singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*", + /** + * Regex for the ** wildcard. Matches any number of subdirectories. When used for including + * files or directories, does not match subdirectories that start with a . character + */ + doubleAsteriskRegexFragment: `(/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`, + replaceWildcardCharacter: match => replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment) +}; +const directoriesMatcher = { + singleAsteriskRegexFragment: "[^/]*", + /** + * Regex for the ** wildcard. Matches any number of subdirectories. When used for including + * files or directories, does not match subdirectories that start with a . character + */ + doubleAsteriskRegexFragment: `(/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`, + replaceWildcardCharacter: match => replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment) +}; +const excludeMatcher = { + singleAsteriskRegexFragment: "[^/]*", + doubleAsteriskRegexFragment: "(/.+?)?", + replaceWildcardCharacter: match => replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment) +}; +const wildcardMatchers = { + files: filesMatcher, + directories: directoriesMatcher, + exclude: excludeMatcher +}; +function getRegularExpressionForWildcard(specs, basePath, usage) { + const patterns = getRegularExpressionsForWildcards(specs, basePath, usage); + if (!patterns || !patterns.length) { + return undefined; + } + const pattern = patterns.map(pattern => `(${pattern})`).join("|"); + // If excluding, match "foo/bar/baz...", but if including, only allow "foo". + const terminator = usage === "exclude" ? "($|/)" : "$"; + return `^(${pattern})${terminator}`; +} +function getRegularExpressionsForWildcards(specs, basePath, usage) { + if (specs === undefined || specs.length === 0) { + return undefined; + } + return (0, core_1.flatMap)(specs, spec => spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage])); +} +/** + * An "includes" path "foo" is implicitly a glob "foo/** /*" (without the space) if its last component has no extension, + * and does not contain any glob characters itself. + */ +function isImplicitGlob(lastPathComponent) { + return !/[.*?]/.test(lastPathComponent); +} +function getSubPatternFromSpec(spec, basePath, usage, { singleAsteriskRegexFragment, doubleAsteriskRegexFragment, replaceWildcardCharacter }) { + let subpattern = ""; + let hasWrittenComponent = false; + const components = (0, path_1.getNormalizedPathComponents)(spec, basePath); + const lastComponent = (0, core_1.last)(components); + if (usage !== "exclude" && lastComponent === "**") { + return undefined; + } + // getNormalizedPathComponents includes the separator for the root component. + // We need to remove to create our regex correctly. + components[0] = (0, path_1.removeTrailingDirectorySeparator)(components[0]); + if (isImplicitGlob(lastComponent)) { + components.push("**", "*"); + } + let optionalCount = 0; + for (let component of components) { + if (component === "**") { + subpattern += doubleAsteriskRegexFragment; + } + else { + if (usage === "directories") { + subpattern += "("; + optionalCount++; + } + if (hasWrittenComponent) { + subpattern += path_1.directorySeparator; + } + if (usage !== "exclude") { + let componentPattern = ""; + // The * and ? wildcards should not match directories or files that start with . if they + // appear first in a component. Dotted directories and files can be included explicitly + // like so: **/.*/.* + if (component.charCodeAt(0) === 42 /* CharacterCodes.asterisk */) { + componentPattern += "([^./]" + singleAsteriskRegexFragment + ")?"; + component = component.substr(1); + } + else if (component.charCodeAt(0) === 63 /* CharacterCodes.question */) { + componentPattern += "[^./]"; + component = component.substr(1); + } + componentPattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter); + // Patterns should not include subfolders like node_modules unless they are + // explicitly included as part of the path. + // + // As an optimization, if the component pattern is the same as the component, + // then there definitely were no wildcard characters and we do not need to + // add the exclusion pattern. + if (componentPattern !== component) { + subpattern += implicitExcludePathRegexPattern; + } + subpattern += componentPattern; + } + else { + subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter); + } + } + hasWrittenComponent = true; + } + while (optionalCount > 0) { + subpattern += ")?"; + optionalCount--; + } + return subpattern; +} +function replaceWildcardCharacter(match, singleAsteriskRegexFragment) { + return match === "*" ? singleAsteriskRegexFragment : match === "?" ? "[^/]" : "\\" + match; +} +/** @param path directory of the tsconfig.json */ +function getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames, currentDirectory) { + path = (0, path_1.normalizePath)(path); + currentDirectory = (0, path_1.normalizePath)(currentDirectory); + const absolutePath = (0, path_1.combinePaths)(currentDirectory, path); + return { + includeFilePatterns: (0, core_1.map)(getRegularExpressionsForWildcards(includes, absolutePath, "files"), pattern => `^${pattern}$`), + includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"), + includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"), + excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"), + basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames) + }; +} +function getRegexFromPattern(pattern, useCaseSensitiveFileNames) { + return new RegExp(pattern, useCaseSensitiveFileNames ? "" : "i"); +} +/** @param path directory of the tsconfig.json */ +function matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath) { + path = (0, path_1.normalizePath)(path); + currentDirectory = (0, path_1.normalizePath)(currentDirectory); + const patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames, currentDirectory); + const includeFileRegexes = patterns.includeFilePatterns && patterns.includeFilePatterns.map(pattern => getRegexFromPattern(pattern, useCaseSensitiveFileNames)); + const includeDirectoryRegex = patterns.includeDirectoryPattern && getRegexFromPattern(patterns.includeDirectoryPattern, useCaseSensitiveFileNames); + const excludeRegex = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, useCaseSensitiveFileNames); + // Associate an array of results with each include regex. This keeps results in order of the "include" order. + // If there are no "includes", then just put everything in results[0]. + const results = includeFileRegexes ? includeFileRegexes.map(() => []) : [[]]; + const visited = new Map(); + const toCanonical = (0, core_1.createGetCanonicalFileName)(useCaseSensitiveFileNames); + for (const basePath of patterns.basePaths) { + visitDirectory(basePath, (0, path_1.combinePaths)(currentDirectory, basePath), depth); + } + return (0, core_1.flatten)(results); + function visitDirectory(path, absolutePath, depth) { + const canonicalPath = toCanonical(realpath(absolutePath)); + if (visited.has(canonicalPath)) { + return; + } + visited.set(canonicalPath, true); + const { files, directories } = getFileSystemEntries(path); + for (const current of (0, core_1.sort)(files, core_1.compareStringsCaseSensitive)) { + const name = (0, path_1.combinePaths)(path, current); + const absoluteName = (0, path_1.combinePaths)(absolutePath, current); + if (extensions && !(0, path_1.fileExtensionIsOneOf)(name, extensions)) { + continue; + } + if (excludeRegex && excludeRegex.test(absoluteName)) { + continue; + } + if (!includeFileRegexes) { + results[0].push(name); + } + else { + const includeIndex = (0, core_1.findIndex)(includeFileRegexes, re => re.test(absoluteName)); + if (includeIndex !== -1) { + results[includeIndex].push(name); + } + } + } + if (depth !== undefined) { + depth--; + if (depth === 0) { + return; + } + } + for (const current of (0, core_1.sort)(directories, core_1.compareStringsCaseSensitive)) { + const name = (0, path_1.combinePaths)(path, current); + const absoluteName = (0, path_1.combinePaths)(absolutePath, current); + if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) && + (!excludeRegex || !excludeRegex.test(absoluteName))) { + visitDirectory(name, absoluteName, depth); + } + } + } +} +/** + * Computes the unique non-wildcard base paths amongst the provided include patterns. + */ +function getBasePaths(path, includes, useCaseSensitiveFileNames) { + // Storage for our results in the form of literal paths (e.g. the paths as written by the user). + const basePaths = [path]; + if (includes) { + // Storage for literal base paths amongst the include patterns. + const includeBasePaths = []; + for (const include of includes) { + // We also need to check the relative paths by converting them to absolute and normalizing + // in case they escape the base path (e.g "..\somedirectory") + const absolute = (0, path_1.isRootedDiskPath)(include) ? include : (0, path_1.normalizePath)((0, path_1.combinePaths)(path, include)); + // Append the literal and canonical candidate base paths. + includeBasePaths.push(getIncludeBasePath(absolute)); + } + // Sort the offsets array using either the literal or canonical path representations. + includeBasePaths.sort((0, core_1.getStringComparer)(!useCaseSensitiveFileNames)); + // Iterate over each include base path and include unique base paths that are not a + // subpath of an existing base path + for (const includeBasePath of includeBasePaths) { + if ((0, core_1.every)(basePaths, basePath => !(0, path_1.containsPath)(basePath, includeBasePath, path, !useCaseSensitiveFileNames))) { + basePaths.push(includeBasePath); + } + } + } + return basePaths; +} +function getIncludeBasePath(absolute) { + const wildcardOffset = (0, core_1.indexOfAnyCharCode)(absolute, wildcardCharCodes); + if (wildcardOffset < 0) { + // No "*" or "?" in the path + return !(0, path_1.hasExtension)(absolute) + ? absolute + : (0, path_1.removeTrailingDirectorySeparator)((0, path_1.getDirectoryPath)(absolute)); + } + return absolute.substring(0, absolute.lastIndexOf(path_1.directorySeparator, wildcardOffset)); +} + +Object.defineProperty(createSys$1, "__esModule", { value: true }); +createSys$1.createSys = createSys; +const path$3 = pathBrowserify; +const utilities_1 = utilities; +const vscode_uri_1$f = umdExports; +let currentCwd = ''; +function createSys(sys, env, getCurrentDirectory, uriConverter) { + let version = 0; + const caseSensitive = sys?.useCaseSensitiveFileNames ?? false; + const root = { + name: '', + dirs: new Map(), + files: new Map(), + requestedRead: false, + }; + const promises = new Set(); + const fileWatcher = env.onDidChangeWatchedFiles?.(({ changes }) => { + version++; + for (const change of changes) { + const changeUri = vscode_uri_1$f.URI.parse(change.uri); + const fileName = uriConverter.asFileName(changeUri); + const dirName = path$3.dirname(fileName); + const baseName = path$3.basename(fileName); + const fileExists = change.type === 1 + || change.type === 2; + const dir = getDir(dirName, fileExists); + dir.files.set(normalizeFileId(baseName), fileExists ? { + name: baseName, + stat: { + type: 1, + ctime: Date.now(), + mtime: Date.now(), + size: -1, + }, + requestedStat: false, + requestedText: false, + } : { + name: baseName, + stat: undefined, + text: undefined, + requestedStat: true, + requestedText: true, + }); + } + }); + return { + dispose() { + fileWatcher?.dispose(); + }, + args: sys?.args ?? [], + newLine: sys?.newLine ?? '\n', + useCaseSensitiveFileNames: caseSensitive, + realpath: sys?.realpath, + write: sys?.write ?? (() => { }), + writeFile: sys?.writeFile ?? (() => { }), + createDirectory: sys?.createDirectory ?? (() => { }), + exit: sys?.exit ?? (() => { }), + getExecutingFilePath: sys?.getExecutingFilePath ?? (() => getCurrentDirectory + '/__fake__.js'), + getCurrentDirectory, + getModifiedTime, + readFile, + readDirectory, + getDirectories, + resolvePath, + fileExists, + directoryExists, + get version() { + return version; + }, + async sync() { + while (promises.size) { + await Promise.all(promises); + } + return version; + }, + }; + function resolvePath(fsPath) { + if (sys) { + const currentDirectory = getCurrentDirectory(); + if (currentCwd !== currentDirectory) { + currentCwd = currentDirectory; + // https://github.com/vuejs/language-tools/issues/2039 + // https://github.com/vuejs/language-tools/issues/2234 + if (sys.directoryExists(currentDirectory)) { + // https://github.com/vuejs/language-tools/issues/2480 + try { + // @ts-ignore + process.chdir(currentDirectory); + } + catch { } + } + } + return sys.resolvePath(fsPath).replace(/\\/g, '/'); + } + return path$3.resolve(fsPath).replace(/\\/g, '/'); + } + function readFile(fileName, encoding) { + fileName = resolvePath(fileName); + const dirPath = path$3.dirname(fileName); + const dir = getDir(dirPath); + const name = path$3.basename(fileName); + readFileWorker(fileName, encoding, dir); + return dir.files.get(normalizeFileId(name))?.text; + } + function directoryExists(dirName) { + dirName = resolvePath(dirName); + const dir = getDir(dirName); + if (dir.exists === undefined) { + dir.exists = false; + const result = env.fs?.stat(uriConverter.asUri(dirName)); + if (typeof result === 'object' && 'then' in result) { + const promise = result; + promises.add(promise); + result.then(result => { + promises.delete(promise); + dir.exists = result?.type === 2; + if (dir.exists) { + version++; + } + }); + } + else { + dir.exists = result?.type === 2; + } + } + return dir.exists; + } + function getModifiedTime(fileName) { + fileName = resolvePath(fileName); + const file = getFile(fileName); + if (!file.requestedStat) { + file.requestedStat = true; + handleStat(fileName, file); + } + return file.stat ? new Date(file.stat.mtime) : new Date(0); + } + function fileExists(fileName) { + fileName = resolvePath(fileName); + const file = getFile(fileName); + const exists = () => file.text !== undefined || file.stat?.type === 1; + if (exists()) { + return true; + } + if (!file.requestedStat) { + file.requestedStat = true; + handleStat(fileName, file); + } + return exists(); + } + function handleStat(fileName, file) { + const result = env.fs?.stat(uriConverter.asUri(fileName)); + if (typeof result === 'object' && 'then' in result) { + const promise = result; + promises.add(promise); + result.then(result => { + promises.delete(promise); + if (file.stat?.type !== result?.type || file.stat?.mtime !== result?.mtime) { + version++; + } + file.stat = result; + }); + } + else { + file.stat = result; + } + } + function getFile(fileName) { + fileName = resolvePath(fileName); + const dirPath = path$3.dirname(fileName); + const baseName = path$3.basename(fileName); + const dir = getDir(dirPath); + let file = dir.files.get(normalizeFileId(baseName)); + if (!file) { + dir.files.set(normalizeFileId(baseName), file = { + name: baseName, + requestedStat: false, + requestedText: false, + }); + } + return file; + } + // for import path completion + function getDirectories(dirName) { + dirName = resolvePath(dirName); + readDirectoryWorker(dirName); + const dir = getDir(dirName); + return [...dir.dirs.values()] + .filter(dir => dir.exists) + .map(dir => dir.name); + } + function readDirectory(dirName, extensions, excludes, includes, depth) { + dirName = resolvePath(dirName); + const currentDirectory = getCurrentDirectory(); + const matches = (0, utilities_1.matchFiles)(dirName, extensions, excludes, includes, caseSensitive, currentDirectory, depth, dirPath => { + dirPath = resolvePath(dirPath); + readDirectoryWorker(dirPath); + const dir = getDir(dirPath); + return { + files: [...dir.files.values()] + .filter(file => file.stat?.type === 1) + .map(file => file.name), + directories: [...dir.dirs.values()] + .filter(dir => dir.exists) + .map(dir => dir.name), + }; + }, sys?.realpath ? (path => sys.realpath(path)) : (path => path)); + return [...new Set(matches)]; + } + function readFileWorker(fileName, encoding, dir) { + const name = path$3.basename(fileName); + let file = dir.files.get(normalizeFileId(name)); + if (!file) { + dir.files.set(normalizeFileId(name), file = { + name, + requestedStat: false, + requestedText: false, + }); + } + if (file.requestedText) { + return; + } + file.requestedText = true; + const uri = uriConverter.asUri(fileName); + const result = env.fs?.readFile(uri, encoding); + if (typeof result === 'object' && 'then' in result) { + const promise = result; + promises.add(promise); + result.then(result => { + promises.delete(promise); + if (result !== undefined) { + file.text = result; + if (file.stat) { + file.stat.mtime++; + } + version++; + } + }); + } + else if (result !== undefined) { + file.text = result; + } + } + function readDirectoryWorker(dirName) { + const dir = getDir(dirName); + if (dir.requestedRead) { + return; + } + dir.requestedRead = true; + const result = env.fs?.readDirectory(uriConverter.asUri(dirName || '.')); + if (typeof result === 'object' && 'then' in result) { + const promise = result; + promises.add(promise); + result.then(result => { + promises.delete(promise); + if (onReadDirectoryResult(dirName, dir, result)) { + version++; + } + }); + } + else { + onReadDirectoryResult(dirName, dir, result ?? []); + } + } + function onReadDirectoryResult(dirName, dir, result) { + // See https://github.com/microsoft/TypeScript/blob/e1a9290051a3b0cbdfbadc3adbcc155a4641522a/src/compiler/sys.ts#L1853-L1857 + result = result.filter(([name]) => name !== '.' && name !== '..'); + let updated = false; + for (const [name, _fileType] of result) { + let fileType = _fileType; + if (fileType === 64) { + const stat = env.fs?.stat(uriConverter.asUri(dirName + '/' + name)); + if (typeof stat === 'object' && 'then' in stat) { + const promise = stat; + promises.add(promise); + stat.then(stat => { + promises.delete(promise); + if (stat?.type === 1) { + let file = dir.files.get(normalizeFileId(name)); + if (!file) { + dir.files.set(normalizeFileId(name), file = { + name, + requestedStat: false, + requestedText: false, + }); + } + if (stat.type !== file.stat?.type || stat.mtime !== file.stat?.mtime) { + version++; + } + file.stat = stat; + file.requestedStat = true; + } + else if (stat?.type === 2) { + const childDir = getDirFromDir(dir, name); + if (!childDir.exists) { + childDir.exists = true; + version++; + } + } + }); + } + else if (stat) { + fileType = stat.type; + } + } + if (fileType === 1) { + let file = dir.files.get(normalizeFileId(name)); + if (!file) { + dir.files.set(normalizeFileId(name), file = { + name, + requestedStat: false, + requestedText: false, + }); + } + if (!file.stat) { + file.stat = { + type: 1, + mtime: 0, + ctime: 0, + size: 0, + }; + updated = true; + } + } + else if (fileType === 2) { + const childDir = getDirFromDir(dir, name); + if (!childDir.exists) { + childDir.exists = true; + updated = true; + } + } + } + return updated; + } + function getDir(dirName, markExists = false) { + const dirNames = []; + let currentDirPath = dirName; + let currentDirName = path$3.basename(currentDirPath); + let lastDirPath; + while (lastDirPath !== currentDirPath) { + lastDirPath = currentDirPath; + dirNames.push(currentDirName); + currentDirPath = path$3.dirname(currentDirPath); + currentDirName = path$3.basename(currentDirPath); + } + let currentDir = root; + for (let i = dirNames.length - 1; i >= 0; i--) { + const nextDirName = dirNames[i]; + currentDir = getDirFromDir(currentDir, nextDirName); + if (markExists && !currentDir.exists) { + currentDir.exists = true; + version++; + } + } + return currentDir; + } + function getDirFromDir(dir, name) { + let target = dir.dirs.get(normalizeFileId(name)); + if (!target) { + dir.dirs.set(normalizeFileId(name), target = { + name, + dirs: new Map(), + files: new Map(), + }); + } + return target; + } + function normalizeFileId(fileName) { + return caseSensitive ? fileName : fileName.toLowerCase(); + } +} + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(common$3, exports); + __exportStar(proxyLanguageService, exports); + __exportStar(decorateLanguageServiceHost$1, exports); + __exportStar(decorateProgram$1, exports); + __exportStar(proxyCreateProgram$1, exports); + __exportStar(createProject$2, exports); + __exportStar(createSys$1, exports); + +} (typescript$1)); + +var LIB;(()=>{var t={470:t=>{function e(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function r(t,e){for(var r,n="",i=0,o=-1,s=0,h=0;h<=t.length;++h){if(h<t.length)r=t.charCodeAt(h);else {if(47===r)break;r=47;}if(47===r){if(o===h-1||1===s);else if(o!==h-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var a=n.lastIndexOf("/");if(a!==n.length-1){-1===a?(n="",i=0):i=(n=n.slice(0,a)).length-1-n.lastIndexOf("/"),o=h,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,o=h,s=0;continue}e&&(n.length>0?n+="/..":n="..",i=2);}else n.length>0?n+="/"+t.slice(o+1,h):n=t.slice(o+1,h),i=h-o-1;o=h,s=0;}else 46===r&&-1!==s?++s:s=-1;}return n}var n={resolve:function(){for(var t,n="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(n=s+"/"+n,i=47===s.charCodeAt(0));}return n=r(n,!i),i?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(t){if(e(t),0===t.length)return ".";var n=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!n)).length||n||(t="."),t.length>0&&i&&(t+="/"),n?"/"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return ".";for(var t,r=0;r<arguments.length;++r){var i=arguments[r];e(i),i.length>0&&(void 0===t?t=i:t+="/"+i);}return void 0===t?".":n.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return "";if((t=n.resolve(t))===(r=n.resolve(r)))return "";for(var i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var o=t.length,s=o-i,h=1;h<r.length&&47===r.charCodeAt(h);++h);for(var a=r.length-h,c=s<a?s:a,f=-1,u=0;u<=c;++u){if(u===c){if(a>c){if(47===r.charCodeAt(h+u))return r.slice(h+u+1);if(0===u)return r.slice(h+u)}else s>c&&(47===t.charCodeAt(i+u)?f=u:0===u&&(f=0));break}var l=t.charCodeAt(i+u);if(l!==r.charCodeAt(h+u))break;47===l&&(f=u);}var g="";for(u=i+f+1;u<=o;++u)u!==o&&47!==t.charCodeAt(u)||(0===g.length?g+="..":g+="/..");return g.length>0?g+r.slice(h+f):(h+=f,47===r.charCodeAt(h)&&++h,r.slice(h))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return ".";for(var r=t.charCodeAt(0),n=47===r,i=-1,o=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!o){i=s;break}}else o=!1;return -1===i?n?"/":".":n&&1===i?"//":t.slice(0,i)},basename:function(t,r){if(void 0!==r&&"string"!=typeof r)throw new TypeError('"ext" argument must be a string');e(t);var n,i=0,o=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return "";var h=r.length-1,a=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!s){i=n+1;break}}else -1===a&&(s=!1,a=n+1),h>=0&&(c===r.charCodeAt(h)?-1==--h&&(o=n):(h=-1,o=a));}return i===o?o=a:-1===o&&(o=t.length),t.slice(i,o)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!s){i=n+1;break}}else -1===o&&(s=!1,o=n+1);return -1===o?"":t.slice(i,o)},extname:function(t){e(t);for(var r=-1,n=0,i=-1,o=!0,s=0,h=t.length-1;h>=0;--h){var a=t.charCodeAt(h);if(47!==a)-1===i&&(o=!1,i=h+1),46===a?-1===r?r=h:1!==s&&(s=1):-1!==r&&(s=-1);else if(!o){n=h+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":t.slice(r,i)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+n:r+"/"+n:n}(0,t)},parse:function(t){e(t);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return r;var n,i=t.charCodeAt(0),o=47===i;o?(r.root="/",n=1):n=0;for(var s=-1,h=0,a=-1,c=!0,f=t.length-1,u=0;f>=n;--f)if(47!==(i=t.charCodeAt(f)))-1===a&&(c=!1,a=f+1),46===i?-1===s?s=f:1!==u&&(u=1):-1!==s&&(u=-1);else if(!c){h=f+1;break}return -1===s||-1===a||0===u||1===u&&s===a-1&&s===h+1?-1!==a&&(r.base=r.name=0===h&&o?t.slice(1,a):t.slice(h,a)):(0===h&&o?(r.name=t.slice(1,s),r.base=t.slice(1,a)):(r.name=t.slice(h,s),r.base=t.slice(h,a)),r.ext=t.slice(s,a)),h>0?r.dir=t.slice(0,h-1):o&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,t.exports=n;}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]});},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0});};var n={};(()=>{let t;if(r.r(n),r.d(n,{URI:()=>f,Utils:()=>P}),"object"==typeof process)t="win32"===process.platform;else if("object"==typeof navigator){let e=navigator.userAgent;t=e.indexOf("Windows")>=0;}const e=/^\w[\w\d+.-]*$/,i=/^\//,o=/^\/\//;function s(t,r){if(!t.scheme&&r)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!e.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!i.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const h="",a="/",c=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static isUri(t){return t instanceof f||!!t&&"string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"string"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString}scheme;authority;path;query;fragment;constructor(t,e,r,n,i,o=!1){"object"==typeof t?(this.scheme=t.scheme||h,this.authority=t.authority||h,this.path=t.path||h,this.query=t.query||h,this.fragment=t.fragment||h):(this.scheme=function(t,e){return t||e?t:"file"}(t,o),this.authority=e||h,this.path=function(t,e){switch(t){case"https":case"http":case"file":e?e[0]!==a&&(e=a+e):e=a;}return e}(this.scheme,r||h),this.query=n||h,this.fragment=i||h,s(this,o));}get fsPath(){return m(this)}with(t){if(!t)return this;let{scheme:e,authority:r,path:n,query:i,fragment:o}=t;return void 0===e?e=this.scheme:null===e&&(e=h),void 0===r?r=this.authority:null===r&&(r=h),void 0===n?n=this.path:null===n&&(n=h),void 0===i?i=this.query:null===i&&(i=h),void 0===o?o=this.fragment:null===o&&(o=h),e===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&o===this.fragment?this:new l(e,r,n,i,o)}static parse(t,e=!1){const r=c.exec(t);return r?new l(r[2]||h,C(r[4]||h),C(r[5]||h),C(r[7]||h),C(r[9]||h),e):new l(h,h,h,h,h)}static file(e){let r=h;if(t&&(e=e.replace(/\\/g,a)),e[0]===a&&e[1]===a){const t=e.indexOf(a,2);-1===t?(r=e.substring(2),e=a):(r=e.substring(2,t),e=e.substring(t)||a);}return new l("file",r,e,h,h)}static from(t){const e=new l(t.scheme,t.authority,t.path,t.query,t.fragment);return s(e,!0),e}toString(t=!1){return y(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof f)return t;{const e=new l(t);return e._formatted=t.external,e._fsPath=t._sep===u?t.fsPath:null,e}}return t}}const u=t?1:void 0;class l extends f{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=m(this)),this._fsPath}toString(t=!1){return t?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=u),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function d(t,e,r){let n,i=-1;for(let o=0;o<t.length;o++){const s=t.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||e&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),void 0!==n&&(n+=t.charAt(o));else {void 0===n&&(n=t.substr(0,o));const e=g[s];void 0!==e?(-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),n+=e):-1===i&&(i=o);}}return -1!==i&&(n+=encodeURIComponent(t.substring(i))),void 0!==n?n:t}function p(t){let e;for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);35===n||63===n?(void 0===e&&(e=t.substr(0,r)),e+=g[n]):void 0!==e&&(e+=t[r]);}return void 0!==e?e:t}function m(e,r){let n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,t&&(n=n.replace(/\//g,"\\")),n}function y(t,e){const r=e?p:d;let n="",{scheme:i,authority:o,path:s,query:h,fragment:c}=t;if(i&&(n+=i,n+=":"),(o||"file"===i)&&(n+=a,n+=a),o){let t=o.indexOf("@");if(-1!==t){const e=o.substr(0,t);o=o.substr(t+1),t=e.lastIndexOf(":"),-1===t?n+=r(e,!1,!1):(n+=r(e.substr(0,t),!1,!1),n+=":",n+=r(e.substr(t+1),!1,!0)),n+="@";}o=o.toLowerCase(),t=o.lastIndexOf(":"),-1===t?n+=r(o,!1,!0):(n+=r(o.substr(0,t),!1,!0),n+=o.substr(t));}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const t=s.charCodeAt(1);t>=65&&t<=90&&(s=`/${String.fromCharCode(t+32)}:${s.substr(3)}`);}else if(s.length>=2&&58===s.charCodeAt(1)){const t=s.charCodeAt(0);t>=65&&t<=90&&(s=`${String.fromCharCode(t+32)}:${s.substr(2)}`);}n+=r(s,!0,!1);}return h&&(n+="?",n+=r(h,!1,!1)),c&&(n+="#",n+=e?c:d(c,!1,!1)),n}function v(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+v(t.substr(3)):t}}const b=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(t){return t.match(b)?t.replace(b,(t=>v(t))):t}var A=r(470);const w=A.posix||A,x="/";var P;!function(t){t.joinPath=function(t,...e){return t.with({path:w.join(t.path,...e)})},t.resolvePath=function(t,...e){let r=t.path,n=!1;r[0]!==x&&(r=x+r,n=!0);let i=w.resolve(r,...e);return n&&i[0]===x&&!t.authority&&(i=i.substring(1)),t.with({path:i})},t.dirname=function(t){if(0===t.path.length||t.path===x)return t;let e=w.dirname(t.path);return 1===e.length&&46===e.charCodeAt(0)&&(e=""),t.with({path:e})},t.basename=function(t){return w.basename(t.path)},t.extname=function(t){return w.extname(t.path)};}(P||(P={}));})(),LIB=n;})();const{URI: URI$1,Utils}=LIB; + +const fsFileSnapshots = languageService$2.createUriMap(); +function createTypeScriptWorkerLanguageService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, languageServicePlugins, setup, }) { + let projectVersion = 0; + const modelSnapshot = new WeakMap(); + const modelVersions = new Map(); + const sys = typescript$1.createSys(ts.sys, env, () => { + if (env.workspaceFolders.length) { + return uriConverter.asFileName(env.workspaceFolders[0]); + } + return ''; + }, uriConverter); + const language = languageService$2.createLanguage([ + ...languagePlugins, + { getLanguageId: uri => typescript$1.resolveFileLanguageId(uri.path) }, + ], languageService$2.createUriMap(sys.useCaseSensitiveFileNames), (uri, includeFsFiles) => { + let snapshot; + const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString()); + if (model) { + const cache = modelSnapshot.get(model); + if (cache && cache[0] === model.version) { + return cache[1]; + } + const text = model.getValue(); + modelSnapshot.set(model, [model.version, { + getText: (start, end) => text.substring(start, end), + getLength: () => text.length, + getChangeRange: () => undefined, + }]); + snapshot = modelSnapshot.get(model)?.[1]; + } + else if (includeFsFiles) { + const cache = fsFileSnapshots.get(uri); + const fileName = uriConverter.asFileName(uri); + const modifiedTime = sys.getModifiedTime?.(fileName)?.valueOf(); + if (!cache || cache[0] !== modifiedTime) { + if (sys.fileExists(fileName)) { + const text = sys.readFile(fileName); + const snapshot = text !== undefined ? ts.ScriptSnapshot.fromString(text) : undefined; + fsFileSnapshots.set(uri, [modifiedTime, snapshot]); + } + else { + fsFileSnapshots.set(uri, [modifiedTime, undefined]); + } + } + snapshot = fsFileSnapshots.get(uri)?.[1]; + } + if (snapshot) { + language.scripts.set(uri, snapshot); + } + else { + language.scripts.delete(uri); + } + }); + const project = { + typescript: { + configFileName: undefined, + sys, + uriConverter, + ...typescript$1.createLanguageServiceHost(ts, sys, language, s => uriConverter.asUri(s), { + getCurrentDirectory() { + return sys.getCurrentDirectory(); + }, + getScriptFileNames() { + return workerContext.getMirrorModels().map(model => uriConverter.asFileName(URI$1.from(model.uri))); + }, + getProjectVersion() { + const models = workerContext.getMirrorModels(); + if (modelVersions.size === workerContext.getMirrorModels().length) { + if (models.every(model => modelVersions.get(model) === model.version)) { + return projectVersion.toString(); + } + } + modelVersions.clear(); + for (const model of workerContext.getMirrorModels()) { + modelVersions.set(model, model.version); + } + projectVersion++; + return projectVersion.toString(); + }, + getCompilationSettings() { + return compilerOptions; + }, + }), + }, + }; + setup?.({ language, project }); + return new WorkerLanguageService(languageService$2.createLanguageService(language, languageServicePlugins, env, project)); +} +class WorkerLanguageService { + constructor(languageService) { + this.languageService = languageService; + this.pendingRequests = new Map(); + } + getSemanticTokenLegend() { + return this.languageService.semanticTokenLegend; + } + getCommands() { + return this.languageService.commands; + } + getTriggerCharacters() { + return this.languageService.triggerCharacters; + } + getAutoFormatTriggerCharacters() { + return this.languageService.autoFormatTriggerCharacters; + } + getSignatureHelpTriggerCharacters() { + return this.languageService.signatureHelpTriggerCharacters; + } + getSignatureHelpRetriggerCharacters() { + return this.languageService.signatureHelpRetriggerCharacters; + } + executeCommand(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.executeCommand(...args, token)); + } + getDocumentFormattingEdits(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentFormattingEdits(URI$1.from(uri), ...restArgs, token)); + } + getFoldingRanges(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getFoldingRanges(URI$1.from(uri), ...restArgs, token)); + } + getSelectionRanges(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getSelectionRanges(URI$1.from(uri), ...restArgs, token)); + } + getLinkedEditingRanges(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getLinkedEditingRanges(URI$1.from(uri), ...restArgs, token)); + } + getDocumentSymbols(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentSymbols(URI$1.from(uri), ...restArgs, token)); + } + getDocumentColors(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentColors(URI$1.from(uri), ...restArgs, token)); + } + getColorPresentations(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getColorPresentations(URI$1.from(uri), ...restArgs, token)); + } + getDiagnostics(requestId, uri) { + return this.withToken(requestId, token => this.languageService.getDiagnostics(URI$1.from(uri), undefined, token)); + } + getWorkspaceDiagnostics(requestId) { + return this.withToken(requestId, token => this.languageService.getWorkspaceDiagnostics(token)); + } + getReferences(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getReferences(URI$1.from(uri), ...restArgs, token)); + } + getFileReferences(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getFileReferences(URI$1.from(uri), ...restArgs, token)); + } + getDefinition(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDefinition(URI$1.from(uri), ...restArgs, token)); + } + getTypeDefinition(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getTypeDefinition(URI$1.from(uri), ...restArgs, token)); + } + getImplementations(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getImplementations(URI$1.from(uri), ...restArgs, token)); + } + getRenameRange(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getRenameRange(URI$1.from(uri), ...restArgs, token)); + } + getRenameEdits(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getRenameEdits(URI$1.from(uri), ...restArgs, token)); + } + getFileRenameEdits(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getFileRenameEdits(URI$1.from(uri), ...restArgs, token)); + } + getSemanticTokens(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getSemanticTokens(URI$1.from(uri), ...restArgs, token)); + } + getHover(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getHover(URI$1.from(uri), ...restArgs, token)); + } + getCompletionItems(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getCompletionItems(URI$1.from(uri), ...restArgs, token)); + } + getCodeActions(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getCodeActions(URI$1.from(uri), ...restArgs, token)); + } + getSignatureHelp(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getSignatureHelp(URI$1.from(uri), ...restArgs, token)); + } + getCodeLenses(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getCodeLenses(URI$1.from(uri), ...restArgs, token)); + } + getDocumentHighlights(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentHighlights(URI$1.from(uri), ...restArgs, token)); + } + getDocumentLinks(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentLinks(URI$1.from(uri), ...restArgs, token)); + } + getWorkspaceSymbols(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.getWorkspaceSymbols(...args, token)); + } + getAutoInsertSnippet(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getAutoInsertSnippet(URI$1.from(uri), ...restArgs, token)); + } + getDocumentDropEdits(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getDocumentDropEdits(URI$1.from(uri), ...restArgs, token)); + } + getInlayHints(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getInlayHints(URI$1.from(uri), ...restArgs, token)); + } + resolveCodeAction(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveCodeAction(...args, token)); + } + resolveCompletionItem(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveCompletionItem(...args, token)); + } + resolveCodeLens(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveCodeLens(...args, token)); + } + resolveDocumentLink(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveDocumentLink(...args, token)); + } + resolveInlayHint(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveInlayHint(...args, token)); + } + resolveWorkspaceSymbol(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.resolveWorkspaceSymbol(...args, token)); + } + getCallHierarchyItems(requestId, uri, ...restArgs) { + return this.withToken(requestId, token => this.languageService.getCallHierarchyItems(URI$1.from(uri), ...restArgs, token)); + } + getCallHierarchyIncomingCalls(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.getCallHierarchyIncomingCalls(...args, token)); + } + getCallHierarchyOutgoingCalls(requestId, ...args) { + return this.withToken(requestId, token => this.languageService.getCallHierarchyOutgoingCalls(...args, token)); + } + dispose() { + this.languageService.dispose(); + } + cancelRequest(requestId) { + this.pendingRequests.delete(requestId); + } + async withToken(requestId, fn) { + const { pendingRequests } = this; + const token = { + get isCancellationRequested() { + return !pendingRequests.has(requestId); + }, + onCancellationRequested(cb) { + let callbacks = pendingRequests.get(requestId); + if (!callbacks) { + callbacks = new Set(); + pendingRequests.set(requestId, callbacks); + } + callbacks.add(cb); + return { + dispose() { + callbacks.delete(cb); + }, + }; + }, + }; + this.pendingRequests.set(requestId, undefined); + try { + return await fn(token); + } + finally { + this.pendingRequests.delete(requestId); + } + } +} + +var jsdelivr = {}; + +var npm = {}; + +Object.defineProperty(npm, "__esModule", { value: true }); +npm.createNpmFileSystem = createNpmFileSystem; +const textCache = new Map(); +const jsonCache = new Map(); +function createNpmFileSystem(getCdnPath = (uri) => { + if (uri.path === '/node_modules') { + return ''; + } + else if (uri.path.startsWith('/node_modules/')) { + return uri.path.slice('/node_modules/'.length); + } +}, getPackageVersion, onFetch) { + const fetchResults = new Map(); + const flatResults = new Map(); + return { + async stat(uri) { + const path = getCdnPath(uri); + if (path === undefined) { + return; + } + if (path === '') { + return { + type: 2, + size: -1, + ctime: -1, + mtime: -1, + }; + } + return await _stat(path); + }, + async readFile(uri) { + const path = getCdnPath(uri); + if (path === undefined) { + return; + } + return await _readFile(path); + }, + readDirectory(uri) { + const path = getCdnPath(uri); + if (path === undefined) { + return []; + } + return _readDirectory(path); + }, + }; + async function _stat(path) { + const [modName, pkgName, pkgVersion, pkgFilePath] = resolvePackageName(path); + if (!pkgName) { + if (modName.startsWith('@')) { + return { + type: 2, + ctime: -1, + mtime: -1, + size: -1, + }; + } + else { + return; + } + } + if (!await isValidPackageName(pkgName)) { + return; + } + if (!pkgFilePath) { + // perf: skip flat request + return { + type: 2, + ctime: -1, + mtime: -1, + size: -1, + }; + } + if (!flatResults.has(modName)) { + flatResults.set(modName, flat(pkgName, pkgVersion)); + } + const flatResult = await flatResults.get(modName); + const filePath = path.slice(modName.length); + const file = flatResult.find(file => file.name === filePath); + if (file) { + return { + type: 1, + ctime: new Date(file.time).valueOf(), + mtime: new Date(file.time).valueOf(), + size: file.size, + }; + } + else if (flatResult.some(file => file.name.startsWith(filePath + '/'))) { + return { + type: 2, + ctime: -1, + mtime: -1, + size: -1, + }; + } + } + async function _readDirectory(path) { + const [modName, pkgName, pkgVersion] = resolvePackageName(path); + if (!pkgName || !await isValidPackageName(pkgName)) { + return []; + } + if (!flatResults.has(modName)) { + flatResults.set(modName, flat(pkgName, pkgVersion)); + } + const flatResult = await flatResults.get(modName); + const dirPath = path.slice(modName.length); + const files = flatResult + .filter(f => f.name.substring(0, f.name.lastIndexOf('/')) === dirPath) + .map(f => f.name.slice(dirPath.length + 1)); + const dirs = flatResult + .filter(f => f.name.startsWith(dirPath + '/') && f.name.substring(dirPath.length + 1).split('/').length >= 2) + .map(f => f.name.slice(dirPath.length + 1).split('/')[0]); + return [ + ...files.map(f => [f, 1]), + ...[...new Set(dirs)].map(f => [f, 2]), + ]; + } + async function _readFile(path) { + const [_modName, pkgName, _version, pkgFilePath] = resolvePackageName(path); + if (!pkgName || !pkgFilePath || !await isValidPackageName(pkgName)) { + return; + } + if (!fetchResults.has(path)) { + fetchResults.set(path, (async () => { + if ((await _stat(path))?.type !== 1) { + return; + } + const text = await fetchText(`https://cdn.jsdelivr.net/npm/${path}`); + if (text !== undefined) { + onFetch?.(path, text); + } + return text; + })()); + } + return await fetchResults.get(path); + } + async function flat(pkgName, version) { + version ??= 'latest'; + // resolve latest tag + if (version === 'latest') { + const data = await fetchJson(`https://data.jsdelivr.com/v1/package/resolve/npm/${pkgName}@${version}`); + if (!data?.version) { + return []; + } + version = data.version; + } + const flat = await fetchJson(`https://data.jsdelivr.com/v1/package/npm/${pkgName}@${version}/flat`); + if (!flat) { + return []; + } + return flat.files; + } + async function isValidPackageName(pkgName) { + // ignore @aaa/node_modules + if (pkgName.endsWith('/node_modules')) { + return false; + } + // hard code to skip known invalid package + if (pkgName.endsWith('.d.ts') || pkgName.startsWith('@typescript/') || pkgName.startsWith('@types/typescript__')) { + return false; + } + // don't check @types if original package already having types + if (pkgName.startsWith('@types/')) { + let originalPkgName = pkgName.slice('@types/'.length); + if (originalPkgName.indexOf('__') >= 0) { + originalPkgName = '@' + originalPkgName.replace('__', '/'); + } + const packageJson = await _readFile(`${originalPkgName}/package.json`); + if (!packageJson) { + return false; + } + const packageJsonObj = JSON.parse(packageJson); + if (packageJsonObj.types || packageJsonObj.typings) { + return false; + } + const indexDts = await _stat(`${originalPkgName}/index.d.ts`); + if (indexDts?.type === 1) { + return false; + } + } + return true; + } + /** + * @example + * "a/b/c" -> ["a", "a", undefined, "b/c"] + * "@a" -> ["@a", undefined, undefined, ""] + * "@a/b/c" -> ["@a/b", "@a/b", undefined, "c"] + * "@a/b@1.2.3/c" -> ["@a/b@1.2.3", "@a/b", "1.2.3", "c"] + */ + function resolvePackageName(input) { + const parts = input.split('/'); + let modName = parts[0]; + let path; + if (modName.startsWith('@')) { + if (!parts[1]) { + return [modName, undefined, undefined, '']; + } + modName += '/' + parts[1]; + path = parts.slice(2).join('/'); + } + else { + path = parts.slice(1).join('/'); + } + let pkgName = modName; + let version; + if (modName.lastIndexOf('@') >= 1) { + pkgName = modName.substring(0, modName.lastIndexOf('@')); + version = modName.substring(modName.lastIndexOf('@') + 1); + } + if (!version && getPackageVersion) { + getPackageVersion?.(pkgName); + } + return [modName, pkgName, version, path]; + } +} +async function fetchText(url) { + if (!textCache.has(url)) { + textCache.set(url, (async () => { + try { + const res = await fetch(url); + if (res.status === 200) { + return await res.text(); + } + } + catch { + // ignore + } + })()); + } + return await textCache.get(url); +} +async function fetchJson(url) { + if (!jsonCache.has(url)) { + jsonCache.set(url, (async () => { + try { + const res = await fetch(url); + if (res.status === 200) { + return await res.json(); + } + } + catch { + // ignore + } + })()); + } + return await jsonCache.get(url); +} + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(npm, exports); + +} (jsdelivr)); + +var languageService = {}; + +var languageCore = {}; + +var globalTypes = {}; + +var shared$3 = {}; + +/** +* @vue/shared v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function makeMap$1(str, expectsLowerCase) { + const set = new Set(str.split(",")); + return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); +} + +const EMPTY_OBJ = {}; +const EMPTY_ARR = []; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend$1 = Object.assign; +const remove$1 = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$2 = Object.prototype.hasOwnProperty; +const hasOwn$1 = (val, key) => hasOwnProperty$2.call(val, key); +const isArray$1 = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction$1 = (val) => typeof val === "function"; +const isString$1 = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject$2 = (val) => val !== null && typeof val === "object"; +const isPromise$1 = (val) => { + return (isObject$2(val) || isFunction$1(val)) && isFunction$1(val.then) && isFunction$1(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType$1 = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString$1(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap$1( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap$1( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +const camelizeRE$1 = /-(\w)/g; +const camelize$1 = cacheStringFunction( + (str) => { + return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : ""); + } +); +const hyphenateRE$1 = /\B([A-Z])/g; +const hyphenate$1 = cacheStringFunction( + (str) => str.replace(hyphenateRE$1, "-$1").toLowerCase() +); +const capitalize$1 = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize$1(str)}` : ``; + return s; + } +); +const hasChanged$1 = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def$1 = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber$1 = (val) => { + const n = isString$1(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} + +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "CACHED": -1, + "-1": "CACHED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` +}; + +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; + +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap$1(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; + +const range$3 = 2; +function generateCodeFrame$1(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range$3; j <= i + range$3 || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray$1(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString$1(value) || isObject$2(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + let ret = ""; + if (!styles || isString$1(styles)) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + if (isString$1(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate$1(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString$1(value)) { + res = value; + } else if (isArray$1(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject$2(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps$1(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString$1(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag$1 = /* @__PURE__ */ makeMap$1(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap$1(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap$1(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap$1(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap$1(specialBooleanAttrs); +const isBooleanAttr$1 = /* @__PURE__ */ makeMap$1( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap$1 = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap$1( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap$1( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual$1(a[i], b[i]); + } + return equal; +} +function looseEqual$1(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray$1(a); + bValidType = isArray$1(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject$2(a); + bValidType = isObject$2(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual$1(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf$1(arr, val) { + return arr.findIndex((item) => looseEqual$1(item, val)); +} + +const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString$1 = (val) => { + return isString$1(val) ? val : val == null ? "" : isArray$1(val) || isObject$2(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? isRef$1(val) ? toDisplayString$1(val.value) : JSON.stringify(val, replacer$1, 2) : String(val); +}; +const replacer$1 = (_key, val) => { + if (isRef$1(val)) { + return replacer$1(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject$2(val) && !isArray$1(val) && !isPlainObject$1(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +var shared_esmBundler = /*#__PURE__*/Object.freeze({ + __proto__: null, + EMPTY_ARR: EMPTY_ARR, + EMPTY_OBJ: EMPTY_OBJ, + NO: NO, + NOOP: NOOP, + PatchFlagNames: PatchFlagNames, + PatchFlags: PatchFlags, + ShapeFlags: ShapeFlags, + SlotFlags: SlotFlags, + camelize: camelize$1, + capitalize: capitalize$1, + cssVarNameEscapeSymbolsRE: cssVarNameEscapeSymbolsRE, + def: def$1, + escapeHtml: escapeHtml, + escapeHtmlComment: escapeHtmlComment, + extend: extend$1, + genPropsAccessExp: genPropsAccessExp, + generateCodeFrame: generateCodeFrame$1, + getEscapedCssVarName: getEscapedCssVarName, + getGlobalThis: getGlobalThis, + hasChanged: hasChanged$1, + hasOwn: hasOwn$1, + hyphenate: hyphenate$1, + includeBooleanAttr: includeBooleanAttr, + invokeArrayFns: invokeArrayFns, + isArray: isArray$1, + isBooleanAttr: isBooleanAttr$1, + isBuiltInDirective: isBuiltInDirective, + isDate: isDate, + isFunction: isFunction$1, + isGloballyAllowed: isGloballyAllowed, + isGloballyWhitelisted: isGloballyWhitelisted, + isHTMLTag: isHTMLTag$1, + isIntegerKey: isIntegerKey, + isKnownHtmlAttr: isKnownHtmlAttr, + isKnownSvgAttr: isKnownSvgAttr, + isMap: isMap, + isMathMLTag: isMathMLTag, + isModelListener: isModelListener, + isObject: isObject$2, + isOn: isOn, + isPlainObject: isPlainObject$1, + isPromise: isPromise$1, + isRegExp: isRegExp, + isRenderableAttrValue: isRenderableAttrValue, + isReservedProp: isReservedProp, + isSSRSafeAttrName: isSSRSafeAttrName, + isSVGTag: isSVGTag, + isSet: isSet, + isSpecialBooleanAttr: isSpecialBooleanAttr, + isString: isString$1, + isSymbol: isSymbol, + isVoidTag: isVoidTag, + looseEqual: looseEqual$1, + looseIndexOf: looseIndexOf$1, + looseToNumber: looseToNumber, + makeMap: makeMap$1, + normalizeClass: normalizeClass, + normalizeProps: normalizeProps$1, + normalizeStyle: normalizeStyle, + objectToString: objectToString, + parseStringStyle: parseStringStyle, + propsToAttrMap: propsToAttrMap$1, + remove: remove$1, + slotFlagsText: slotFlagsText, + stringifyStyle: stringifyStyle, + toDisplayString: toDisplayString$1, + toHandlerKey: toHandlerKey, + toNumber: toNumber$1, + toRawType: toRawType$1, + toTypeString: toTypeString +}); + +var require$$1$1 = /*@__PURE__*/getAugmentedNamespace(shared_esmBundler); + +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.hyphenateTag = void 0; + exports.getSlotsPropertyName = getSlotsPropertyName; + exports.hyphenateAttr = hyphenateAttr; + const shared_1 = require$$1$1; + function getSlotsPropertyName(vueVersion) { + return vueVersion < 3 ? '$scopedSlots' : '$slots'; + } + var shared_2 = require$$1$1; + Object.defineProperty(exports, "hyphenateTag", { enumerable: true, get: function () { return shared_2.hyphenate; } }); + function hyphenateAttr(str) { + let hyphencase = (0, shared_1.hyphenate)(str); + // fix https://github.com/vuejs/core/issues/8811 + if (str.length && str[0] !== str[0].toLowerCase()) { + hyphencase = '-' + hyphencase; + } + return hyphencase; + } + +} (shared$3)); + +Object.defineProperty(globalTypes, "__esModule", { value: true }); +globalTypes.generateGlobalTypes = generateGlobalTypes; +const shared_1$q = shared$3; +function generateGlobalTypes(lib, target, strictTemplates) { + const fnPropsType = `(K extends { $props: infer Props } ? Props : any)${strictTemplates ? '' : ' & Record<string, unknown>'}`; + let text = ``; + if (target < 3.5) { + text += ` +; declare module '${lib}' { + export interface GlobalComponents { } + export interface GlobalDirectives { } +}`; + } + text += ` +; declare global { + const __VLS_intrinsicElements: __VLS_IntrinsicElements; + const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any }; + const __VLS_unref: typeof import('${lib}').unref; + + const __VLS_nativeElements = { + ...{} as SVGElementTagNameMap, + ...{} as HTMLElementTagNameMap, + }; + + type __VLS_IntrinsicElements = ${(target >= 3.3 + ? `import('${lib}/jsx-runtime').JSX.IntrinsicElements;` + : `globalThis.JSX.IntrinsicElements;`)} + type __VLS_Element = ${(target >= 3.3 + ? `import('${lib}/jsx-runtime').JSX.Element;` + : `globalThis.JSX.Element;`)} + type __VLS_GlobalComponents = ${(target >= 3.5 + ? `import('${lib}').GlobalComponents;` + : `import('${lib}').GlobalComponents & Pick<typeof import('${lib}'), 'Transition' | 'TransitionGroup' | 'KeepAlive' | 'Suspense' | 'Teleport'>;`)} + type __VLS_GlobalDirectives = import('${lib}').GlobalDirectives; + type __VLS_IsAny<T> = 0 extends 1 & T ? true : false; + type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A; + type __VLS_unknownDirective = (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void; + type __VLS_WithComponent<N0 extends string, LocalComponents, N1 extends string, N2 extends string, N3 extends string> = + N1 extends keyof LocalComponents ? N1 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N1] } : + N2 extends keyof LocalComponents ? N2 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N2] } : + N3 extends keyof LocalComponents ? N3 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N3] } : + N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N1] } : + N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N2] } : + N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N3] } : + ${strictTemplates ? '{}' : '{ [K in N0]: unknown }'} + type __VLS_FunctionalComponentProps<T, K> = + '__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: { props?: infer P } } ? NonNullable<P> : never + : T extends (props: infer P, ...args: any) => any ? P : + {}; + type __VLS_IsFunction<T, K> = K extends keyof T + ? __VLS_IsAny<T[K]> extends false + ? unknown extends T[K] + ? false + : true + : false + : false; + // fix https://github.com/vuejs/language-tools/issues/926 + type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never; + type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R + ? U extends T + ? never + : __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R) + : never; + type __VLS_OverloadUnion<T> = Exclude< + __VLS_OverloadUnionInner<(() => never) & T>, + T extends () => never ? never : () => never + >; + type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F + ? F extends (event: infer E, ...args: infer A) => any + ? { [K in E & string]: (...args: A) => void; } + : never + : never; + type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal< + __VLS_UnionToIntersection< + __VLS_ConstructorOverloads<T> & { + [K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never + } + > + >; + type __VLS_PrettifyGlobal<T> = { [K in keyof T]: T[K]; } & {}; + + function __VLS_getVForSourceType(source: number): [number, number, number][]; + function __VLS_getVForSourceType(source: string): [string, number, number][]; + function __VLS_getVForSourceType<T extends any[]>(source: T): [ + item: T[number], + key: number, + index: number, + ][]; + function __VLS_getVForSourceType<T extends { [Symbol.iterator](): Iterator<any> }>(source: T): [ + item: T extends { [Symbol.iterator](): Iterator<infer T1> } ? T1 : never, + key: number, + index: undefined, + ][]; + // #3845 + function __VLS_getVForSourceType<T extends number | { [Symbol.iterator](): Iterator<any> }>(source: T): [ + item: number | (Exclude<T, number> extends { [Symbol.iterator](): Iterator<infer T1> } ? T1 : never), + key: number, + index: undefined, + ][]; + function __VLS_getVForSourceType<T>(source: T): [ + item: T[keyof T], + key: keyof T, + index: number, + ][]; + // @ts-ignore + function __VLS_getSlotParams<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>; + // @ts-ignore + function __VLS_getSlotParam<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>[0]; + function __VLS_directiveAsFunction<T extends import('${lib}').Directive>(dir: T): T extends (...args: any) => any + ? T | __VLS_unknownDirective + : NonNullable<(T & Record<string, __VLS_unknownDirective>)['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']>; + function __VLS_withScope<T, K>(ctx: T, scope: K): ctx is T & K; + function __VLS_makeOptional<T>(t: T): { [K in keyof T]?: T[K] }; + function __VLS_nonNullable<T>(t: T): T extends null | undefined ? never : T; + function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K): + T extends new (...args: any) => any + ? (props: ${fnPropsType}, ctx?: any) => __VLS_Element & { __ctx?: { + attrs?: any, + slots?: K extends { ${(0, shared_1$q.getSlotsPropertyName)(target)}: infer Slots } ? Slots : any, + emit?: K extends { $emit: infer Emit } ? Emit : any + } & { props?: ${fnPropsType}; expose?(exposed: K): void; } } + : T extends () => any ? (props: {}, ctx?: any) => ReturnType<T> + : T extends (...args: any) => any ? T + : (_: {}${strictTemplates ? '' : ' & Record<string, unknown>'}, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {}${strictTemplates ? '' : ' & Record<string, unknown>'} } }; + function __VLS_elementAsFunction<T>(tag: T, endTag?: T): (_: T${strictTemplates ? '' : ' & Record<string, unknown>'}) => void; + function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : []; + function __VLS_pickFunctionalComponentCtx<T, K>(comp: T, compInstance: K): NonNullable<__VLS_PickNotAny< + '__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: infer Ctx } ? Ctx : never : any + , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any + >>; + function __VLS_normalizeSlot<S>(s: S): S extends () => infer R ? (props: {}) => R : S; + function __VLS_tryAsConstant<const T>(t: T): T; +} +`; + return text; +} + +var template$1 = {}; + +var compilerDom_cjs = {}; + +var compilerCore_cjs = {}; + +var decode = {}; + +var decodeDataHtml = {}; + +// Generated using scripts/write-decode-map.ts +Object.defineProperty(decodeDataHtml, "__esModule", { value: true }); +decodeDataHtml.default = new Uint16Array( +// prettier-ignore +"\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c" + .split("") + .map(function (c) { return c.charCodeAt(0); })); + +var decodeDataXml = {}; + +// Generated using scripts/write-decode-map.ts +Object.defineProperty(decodeDataXml, "__esModule", { value: true }); +decodeDataXml.default = new Uint16Array( +// prettier-ignore +"\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022" + .split("") + .map(function (c) { return c.charCodeAt(0); })); + +var decode_codepoint = {}; + +(function (exports) { + // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 + var _a; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.replaceCodePoint = exports.fromCodePoint = void 0; + var decodeMap = new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], + ]); + /** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ + exports.fromCodePoint = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins + (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) { + var output = ""; + if (codePoint > 0xffff) { + codePoint -= 0x10000; + output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800); + codePoint = 0xdc00 | (codePoint & 0x3ff); + } + output += String.fromCharCode(codePoint); + return output; + }; + /** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ + function replaceCodePoint(codePoint) { + var _a; + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return 0xfffd; + } + return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; + } + exports.replaceCodePoint = replaceCodePoint; + /** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ + function decodeCodePoint(codePoint) { + return (0, exports.fromCodePoint)(replaceCodePoint(codePoint)); + } + exports.default = decodeCodePoint; + +} (decode_codepoint)); + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0; + var decode_data_html_js_1 = __importDefault(decodeDataHtml); + exports.htmlDecodeTree = decode_data_html_js_1.default; + var decode_data_xml_js_1 = __importDefault(decodeDataXml); + exports.xmlDecodeTree = decode_data_xml_js_1.default; + var decode_codepoint_js_1 = __importStar(decode_codepoint); + exports.decodeCodePoint = decode_codepoint_js_1.default; + var decode_codepoint_js_2 = decode_codepoint; + Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } }); + Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } }); + var CharCodes; + (function (CharCodes) { + CharCodes[CharCodes["NUM"] = 35] = "NUM"; + CharCodes[CharCodes["SEMI"] = 59] = "SEMI"; + CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS"; + CharCodes[CharCodes["ZERO"] = 48] = "ZERO"; + CharCodes[CharCodes["NINE"] = 57] = "NINE"; + CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A"; + CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F"; + CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X"; + CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A"; + CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F"; + CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z"; + })(CharCodes || (CharCodes = {})); + /** Bit that needs to be set to convert an upper case ASCII character to lower case */ + var TO_LOWER_BIT = 32; + var BinTrieFlags; + (function (BinTrieFlags) { + BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; + BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE"; + })(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {})); + function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; + } + function isHexadecimalCharacter(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)); + } + function isAsciiAlphaNumeric(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber(code)); + } + /** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ + function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); + } + var EntityDecoderState; + (function (EntityDecoderState) { + EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity"; + })(EntityDecoderState || (EntityDecoderState = {})); + var DecodingMode; + (function (DecodingMode) { + /** Entities in text nodes that can end with any character. */ + DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy"; + /** Only allow entities terminated with a semicolon. */ + DecodingMode[DecodingMode["Strict"] = 1] = "Strict"; + /** Entities in attributes have limitations on ending characters. */ + DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute"; + })(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {})); + /** + * Token decoder with support of writing partial entities. + */ + var EntityDecoder = /** @class */ (function () { + function EntityDecoder( + /** The tree used to decode entities. */ + decodeTree, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint, + /** An object that is used to produce errors. */ + errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + /** The current state of the decoder. */ + this.state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + this.consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + this.result = 0; + /** The current index in the decode tree. */ + this.treeIndex = 0; + /** The number of characters that were consumed in excess. */ + this.excess = 1; + /** The mode in which the decoder is operating. */ + this.decodeMode = DecodingMode.Strict; + } + /** Resets the instance to make it reusable. */ + EntityDecoder.prototype.startEntity = function (decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + }; + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param string The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.write = function (str, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (str.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(str, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(str, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(str, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(str, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(str, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(str, offset); + } + } + }; + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericStart = function (str, offset) { + if (offset >= str.length) { + return -1; + } + if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(str, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(str, offset); + }; + EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) { + if (start !== end) { + var digitCount = end - start; + this.result = + this.result * Math.pow(base, digitCount) + + parseInt(str.substr(start, digitCount), base); + this.consumed += digitCount; + } + }; + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericHex = function (str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + offset += 1; + } + else { + this.addToNumericResult(str, startIdx, offset, 16); + return this.emitNumericEntity(char, 3); + } + } + this.addToNumericResult(str, startIdx, offset, 16); + return -1; + }; + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericDecimal = function (str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char)) { + offset += 1; + } + else { + this.addToNumericResult(str, startIdx, offset, 10); + return this.emitNumericEntity(char, 2); + } + } + this.addToNumericResult(str, startIdx, offset, 10); + return -1; + }; + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) { + var _a; + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } + else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + }; + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNamedEntity = function (str, offset) { + var decodeTree = this.decodeTree; + var current = decodeTree[this.treeIndex]; + // The mask is the number of bytes of the value, including the current byte. + var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + for (; offset < str.length; offset++, this.excess++) { + var char = str.charCodeAt(offset); + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if (this.decodeMode !== DecodingMode.Strict) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + } + return -1; + }; + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () { + var _a; + var _b = this, result = _b.result, decodeTree = _b.decodeTree; + var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + }; + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) { + var decodeTree = this.decodeTree; + this.emitCodePoint(valueLength === 1 + ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH + : decodeTree[result + 1], consumed); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + }; + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.end = function () { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + }; + return EntityDecoder; + }()); + exports.EntityDecoder = EntityDecoder; + /** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ + function getDecoder(decodeTree) { + var ret = ""; + var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); }); + return function decodeWithTrie(str, decodeMode) { + var lastIndex = 0; + var offset = 0; + while ((offset = str.indexOf("&", offset)) >= 0) { + ret += str.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + var len = decoder.write(str, + // Skip the "&" + offset + 1); + if (len < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + len; + // If `len` is 0, skip the current `&` and continue. + offset = len === 0 ? lastIndex + 1 : lastIndex; + } + var result = ret + str.slice(lastIndex); + // Make sure we don't keep a reference to the final string. + ret = ""; + return result; + }; + } + /** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ + function determineBranch(decodeTree, current, nodeIdx, char) { + var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + var jumpOffset = current & BinTrieFlags.JUMP_TABLE; + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; + } + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + var value = char - jumpOffset; + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIdx + value] - 1; + } + // Case 3: Multiple branches encoded in dictionary + // Binary search for the character. + var lo = nodeIdx; + var hi = lo + branchCount - 1; + while (lo <= hi) { + var mid = (lo + hi) >>> 1; + var midVal = decodeTree[mid]; + if (midVal < char) { + lo = mid + 1; + } + else if (midVal > char) { + hi = mid - 1; + } + else { + return decodeTree[mid + branchCount]; + } + } + return -1; + } + exports.determineBranch = determineBranch; + var htmlDecoder = getDecoder(decode_data_html_js_1.default); + var xmlDecoder = getDecoder(decode_data_xml_js_1.default); + /** + * Decodes an HTML string. + * + * @param str The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ + function decodeHTML(str, mode) { + if (mode === void 0) { mode = DecodingMode.Legacy; } + return htmlDecoder(str, mode); + } + exports.decodeHTML = decodeHTML; + /** + * Decodes an HTML string in an attribute. + * + * @param str The string to decode. + * @returns The decoded string. + */ + function decodeHTMLAttribute(str) { + return htmlDecoder(str, DecodingMode.Attribute); + } + exports.decodeHTMLAttribute = decodeHTMLAttribute; + /** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param str The string to decode. + * @returns The decoded string. + */ + function decodeHTMLStrict(str) { + return htmlDecoder(str, DecodingMode.Strict); + } + exports.decodeHTMLStrict = decodeHTMLStrict; + /** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param str The string to decode. + * @returns The decoded string. + */ + function decodeXML(str) { + return xmlDecoder(str, DecodingMode.Strict); + } + exports.decodeXML = decodeXML; + +} (decode)); + +var lib = {}; + +Object.defineProperty(lib, '__esModule', { + value: true +}); +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (e.includes(n)) continue; + t[n] = r[n]; + } + return t; +} +let Position$1 = class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } +}; +class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } +} +function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position$1(line, column + columnOffset, index + columnOffset); +} +const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; +var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code + } +}; +const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" +}; +const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; +var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncFunction: "'await' is only allowed within async functions.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.", + DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + DynamicImportPhaseRequiresImportExpressions: ({ + phase + }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`, + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.", + ImportCallArity: ({ + maxArgumentCount + }) => `\`import()\` requires exactly ${maxArgumentCount === 1 ? "one argument" : "one or two arguments"}.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is disallowed as a lexically bound name.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", + SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." +}; +var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." +}; +const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); +var PipelineOperatorErrors = { + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.`, + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' +}; +const _excluded = ["message"]; +function defineHidden(obj, key, value) { + Object.defineProperty(obj, key, { + enumerable: false, + configurable: true, + value + }); +} +function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin +}) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + { + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } + } + return function constructor(loc, details) { + const error = new SyntaxError(); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; + } + defineHidden(error, "clone", function clone(overrides = {}) { + var _overrides$loc; + const { + line, + column, + index + } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc; + return constructor(new Position$1(line, column, index), Object.assign({}, details, overrides.details)); + }); + defineHidden(error, "details", details); + Object.defineProperty(error, "message", { + configurable: true, + get() { + const message = `${toMessage(details)} (${loc.line}:${loc.column})`; + this.message = message; + return message; + }, + set(value) { + Object.defineProperty(this, "message", { + value, + writable: true + }); + } + }); + return error; + }; +} +function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: "BABEL_PARSER_SYNTAX_ERROR", + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; +} +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +const { + defineProperty +} = Object; +const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } +}; +function toESTreeLocation(node) { + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); + return node; +} +var estree = superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.options.tokens) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (_) {} + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + expression.type = "Literal"; + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = directive; + stmt.type = "ExpressionStatement"; + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true); + if (method.typeParameters) { + method.value.typeParameters = method.typeParameters; + delete method.typeParameters; + } + classBody.body.push(method); + } + parsePrivateName() { + const node = super.parsePrivateName(); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + node = node; + delete node.id; + node.name = name; + node.type = "PrivateIdentifier"; + return node; + } + isPrivateName(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + } + return node.name; + } + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + funcNode.type = "FunctionExpression"; + delete funcNode.kind; + node.value = funcNode; + if (type === "ClassPrivateMethod") { + node.computed = false; + } + return this.finishNode(node, "MethodDefinition"); + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + propertyNode.type = "PropertyDefinition"; + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + propertyNode.type = "PropertyDefinition"; + propertyNode.computed = false; + return propertyNode; + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); + if (node) { + node.type = "Property"; + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + } + return node; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + node.type = "Property"; + } + return node; + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { + this.raise(Errors.PatternHasAccessor, prop.key); + } else if (prop.type === "Property" && prop.method) { + this.raise(Errors.PatternHasMethod, prop.key); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + node.type = "ImportExpression"; + node.source = node.arguments[0]; + if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { + var _ref, _ref2; + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; + } + delete node.arguments; + delete node.callee; + } + return node; + } + toReferencedArguments(node) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { + node.type = "ExportAllDeclaration"; + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) { + this.resetStartLocation(node, exportStartLoc); + } + } + break; + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + const node = super.parseSubscript(base, startLoc, noCalls, state); + if (state.optionalChainMember) { + if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { + node.type = node.type.substring(8); + } + if (state.stop) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNode(chain, "ChainExpression"); + } + } else if (node.type === "MemberExpression" || node.type === "CallExpression") { + node.optional = false; + } + return node; + } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } +}; +class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } +} +const types$4 = { + brace: new TokContext("{"), + j_oTag: new TokContext("<tag"), + j_cTag: new TokContext("</tag"), + j_expr: new TokContext("<tag>...</tag>", true) +}; +{ + types$4.template = new TokContext("`", true); +} +const beforeExpr = true; +const startsExpr = true; +const isLoop = true; +const isAssign = true; +const prefix = true; +const postfix = true; +class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + { + this.updateContext = null; + } + } +} +const keywords$1 = new Map(); +function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; +} +function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); +} +let tokenTypeCounter = -1; +const tokenTypes$1 = []; +const tokenLabels = []; +const tokenBinops = []; +const tokenBeforeExprs = []; +const tokenStartsExprs = []; +const tokenPrefixes = []; +function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes$1.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; +} +function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes$1.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; +} +const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("</>/<=/>=", 7), + gt: createBinop("</>/<=/>=", 7), + relational: createBinop("</>/<=/>=", 7), + bitShift: createBinop("<</>>/>>>", 8), + bitShiftL: createBinop("<</>>/>>>", 8), + bitShiftR: createBinop("<</>>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _defer: createKeywordLike("defer", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _source: createKeywordLike("source", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr: true + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr: true + }), + jsxTagEnd: createToken("jsxTagEnd"), + placeholder: createToken("%%", { + startsExpr: true + }) +}; +function tokenIsIdentifier(token) { + return token >= 93 && token <= 132; +} +function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; +} +function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 132; +} +function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 136; +} +function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; +} +function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; +} +function tokenIsAssignment(token) { + return token >= 29 && token <= 33; +} +function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 129 && token <= 131; +} +function tokenIsLoop(token) { + return token >= 90 && token <= 92; +} +function tokenIsKeyword(token) { + return token >= 58 && token <= 92; +} +function tokenIsOperator(token) { + return token >= 39 && token <= 59; +} +function tokenIsPostfix(token) { + return token === 34; +} +function tokenIsPrefix(token) { + return tokenPrefixes[token]; +} +function tokenIsTSTypeOperator(token) { + return token >= 121 && token <= 123; +} +function tokenIsTSDeclarationStart(token) { + return token >= 124 && token <= 130; +} +function tokenLabelName(token) { + return tokenLabels[token]; +} +function tokenOperatorPrecedence(token) { + return tokenBinops[token]; +} +function tokenIsRightAssociative(token) { + return token === 57; +} +function tokenIsTemplate(token) { + return token >= 24 && token <= 25; +} +function getExportedToken(token) { + return tokenTypes$1[token]; +} +{ + tokenTypes$1[8].updateContext = context => { + context.pop(); + }; + tokenTypes$1[5].updateContext = tokenTypes$1[7].updateContext = tokenTypes$1[23].updateContext = context => { + context.push(types$4.brace); + }; + tokenTypes$1[22].updateContext = context => { + if (context[context.length - 1] === types$4.template) { + context.pop(); + } else { + context.push(types$4.template); + } + }; + tokenTypes$1[142].updateContext = context => { + context.push(types$4.j_expr, types$4.j_oTag); + }; +} +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} +function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); +} +const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); +function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); +} +let Scope$1 = class Scope { + constructor(flags) { + this.flags = 0; + this.names = new Map(); + this.firstLexicalName = ""; + this.flags = flags; + } +}; +class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & 1) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & 2) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & 16) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & 32) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & 64) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & 64) > 0 && (flags & 2) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 128) { + return true; + } + if (flags & (387 | 64)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & 2) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope$1(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & 8 || bindingType & 16) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + let type = scope.names.get(name) || 0; + if (bindingType & 16) { + type = type | 4; + } else { + if (!scope.firstLexicalName) { + scope.firstLexicalName = name; + } + type = type | 2; + } + scope.names.set(name, type); + if (bindingType & 8) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & 4) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.names.set(name, (scope.names.get(name) || 0) | 1); + this.maybeExportDefined(scope, name); + if (scope.flags & 387) break; + } + } + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & 1)) return false; + if (bindingType & 8) { + return scope.names.has(name); + } + const type = scope.names.get(name); + if (bindingType & 16) { + return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; + } + return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0; + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.names.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 387) { + return flags; + } + } + } + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (387 | 64) && !(flags & 4)) { + return flags; + } + } + } +} +class FlowScope extends Scope$1 { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } +} +class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & 2048) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & 2048 && !scope.declareFunctions.has(name)) { + const type = scope.names.get(name); + return (type & 4) > 0 || (type & 2) > 0; + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } +} +class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } +} +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } +} +function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } +} +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } +} +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + const { + commentsLen + } = this.state; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } + this.comments.push(comment); + this.state.commentsLen++; + } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + finalizeComment(commentWS) { + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const { + containingNode: node, + start: commentStart + } = commentWS; + if (this.input.charCodeAt(commentStart - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + default: + { + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + resetPreviousIdentifierLeadingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + if (commentStack[length - 1].trailingNode === node) { + commentStack[length - 1].trailingNode = null; + } else if (length >= 2 && commentStack[length - 2].trailingNode === node) { + commentStack[length - 2].trailingNode = null; + } + } + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } +} +const lineBreak = /\r\n|[\r\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; +function isWhitespace$4(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} +class State { + constructor() { + this.flags = 1024; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.labels = []; + this.commentsLen = 0; + this.commentStack = []; + this.pos = 0; + this.type = 139; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.context = [types$4.brace]; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + get strict() { + return (this.flags & 1) > 0; + } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; + } + init({ + strictMode, + sourceType, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position$1(startLine, startColumn, 0); + } + get maybeInArrowParameters() { + return (this.flags & 2) > 0; + } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; + } + get inType() { + return (this.flags & 4) > 0; + } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; + } + get noAnonFunctionType() { + return (this.flags & 8) > 0; + } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; + } + get hasFlowComment() { + return (this.flags & 16) > 0; + } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; + } + get isAmbientContext() { + return (this.flags & 32) > 0; + } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; + } + get inAbstractClass() { + return (this.flags & 64) > 0; + } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; + } + get inDisallowConditionalTypesContext() { + return (this.flags & 128) > 0; + } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; + } + get soloAwait() { + return (this.flags & 256) > 0; + } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; + } + get inFSharpPipelineDirectBody() { + return (this.flags & 512) > 0; + } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; + } + get canStartJSXElement() { + return (this.flags & 1024) > 0; + } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; + } + get containsEsc() { + return (this.flags & 2048) > 0; + } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; + } + curPosition() { + return new Position$1(this.curLine, this.pos - this.lineStart, this.pos); + } + clone() { + const state = new State(); + state.flags = this.flags; + state.curLine = this.curLine; + state.lineStart = this.lineStart; + state.startLoc = this.startLoc; + state.endLoc = this.endLoc; + state.errors = this.errors.slice(); + state.potentialArrowAt = this.potentialArrowAt; + state.noArrowAt = this.noArrowAt.slice(); + state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(); + state.topicContext = this.topicContext; + state.labels = this.labels.slice(); + state.commentsLen = this.commentsLen; + state.commentStack = this.commentStack.slice(); + state.pos = this.pos; + state.type = this.type; + state.value = this.value; + state.start = this.start; + state.end = this.end; + state.lastTokEndLoc = this.lastTokEndLoc; + state.lastTokStartLoc = this.lastTokStartLoc; + state.context = this.context.slice(); + state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos; + state.strictErrors = this.strictErrors; + state.tokensLength = this.tokensLength; + return state; + } +} +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} +function buildPosition(pos, lineStart, curLine) { + return new Position$1(curLine, pos - lineStart, pos); +} +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); +class Token { + constructor(state) { + this.type = state.type; + this.value = state.value; + this.start = state.start; + this.end = state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } +} +let Tokenizer$1 = class Tokenizer extends CommentsParser { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!this.options.errorRecovery) return false; + this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine)); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine)); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine)); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.comments = []; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + next() { + this.checkKeywordEscapes(); + if (this.options.tokens) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + match(type) { + return this.state.type === type; + } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.input.charCodeAt(this.nextTokenStart()); + } + nextTokenInLineStart() { + return this.nextTokenInLineStartSince(this.state.pos); + } + nextTokenInLineStartSince(pos) { + skipWhiteSpaceInLine.lastIndex = pos; + return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos; + } + lookaheadInLineCharCode() { + return this.input.charCodeAt(this.nextTokenInLineStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at)); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(139); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start, + end: end + commentEnd.length, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start, + end, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; + } + skipSpace() { + const spaceStart = this.state.pos; + const comments = []; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace$4(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule && this.options.annexB) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule && this.options.annexB) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if (comments.length > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: spaceStart, + end, + comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition()); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(138, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(138, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } else if (next === 94 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + this.unexpected(); + } + } else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + case 34: + case 39: + this.readString(code); + return; + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), { + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, nextPos()); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, nextPos()); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(137, { + pattern: content, + flags: mods + }); + } + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), { + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, startLoc); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + if (isBigInt) { + const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(135, str); + return; + } + this.finishToken(134, val); + } + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let isDecimal = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, this.state.curPosition()); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos)); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, startLoc); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, startLoc); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, startLoc); + } + ++this.state.pos; + isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(135, str); + return; + } + if (isDecimal) { + this.finishToken(136, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(134, val); + } + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(133, str); + } + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position$1(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, firstInvalidLoc.pos); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, at) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, at); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, this.state.curPosition()); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, escStart); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(132, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, { + reservedWord: tokenLabelName(type) + }); + } + } + raise(toParseError, at, details = {}) { + const loc = at instanceof Position$1 ? at : at.loc.start; + const error = toParseError(loc, details); + if (!this.options.errorRecovery) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + raiseOverwrite(toParseError, at, details = {}) { + const loc = at instanceof Position$1 ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError(loc, details); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, at, details); + } + updateContext(prevType) {} + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, { + expected: type ? tokenLabelName(type) : null + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, { + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, { + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, buildPosition(pos, lineStart, curLine)); + }; + } +}; +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } +} +class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & 3) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & 4; + const newStatic = elementType & 4; + const oldKind = accessor & 3; + const newKind = elementType & 3; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, loc, { + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } +} +class ExpressionScope { + constructor(type = 0) { + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === 2 || this.type === 1; + } + isCertainlyParameterDeclaration() { + return this.type === 3; + } +} +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, at) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } +} +class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + recordParameterInitializerError(toParseError, node) { + const origin = node.loc.start; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + recordArrowParameterBindingError(error, node) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = node.loc.start; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + recordAsyncArrowParametersError(at) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === 2) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, loc); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } +} +function newParameterDeclarationScope() { + return new ExpressionScope(3); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(1); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(2); +} +function newExpressionScope() { + return new ExpressionScope(); +} +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); +} +class UtilParser extends Tokenizer$1 { + addExtra(node, key, value, enumerable = true) { + if (!node) return; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + const nameEnd = nameStart + name.length; + if (this.input.slice(nameStart, nameEnd) === name) { + const nextCh = this.input.charCodeAt(nameEnd); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, this.state.startLoc); + } + this.unexpected(null, token); + } + } + canInsertSemicolon() { + return this.match(139) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return hasNewLine(this.input, this.state.lastTokEndLoc.index, this.state.start); + } + hasFollowingLineBreak() { + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); + } + expect(type, loc) { + if (!this.eat(type)) { + this.unexpected(loc, type); + } + } + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, doubleProtoLoc); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + } + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + isPrivateName(node) { + return node.type === "PrivateName"; + } + getPrivateNameSV(node) { + return node.id.name; + } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = 0; + if (this.inModule) { + paramFlags |= 2; + } + this.scope.enter(1); + this.prodParam.enter(paramFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } +} +class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + } +} +let Node$2 = class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if (parser != null && parser.options.ranges) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } +}; +const NodePrototype = Node$2.prototype; +{ + NodePrototype.__clone = function () { + const newNode = new Node$2(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; + }; +} +function clonePlaceholder(node) { + return cloneIdentifier(node); +} +function cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + extra, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.name = name; + if (type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; +} +function cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + if (type === "Placeholder") { + return clonePlaceholder(node); + } + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + if (node.raw !== undefined) { + cloned.raw = node.raw; + } else { + cloned.extra = extra; + } + cloned.value = node.value; + return cloned; +} +class NodeUtils extends UtilParser { + startNode() { + const loc = this.state.startLoc; + return new Node$2(this, loc.index, loc); + } + startNodeAt(loc) { + return new Node$2(this, loc.index, loc); + } + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.options.ranges) node.range[1] = endLoc.index; + if (this.options.attachComment) this.processComment(node); + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.options.ranges) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.options.ranges) node.range[1] = endLoc.index; + } + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } +} +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + shouldParseEnums() { + return !!this.getPluginOption("flow", "enums"); + } + finishToken(type, val) { + if (type !== 133 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } else { + this.unexpected(); + } + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(133)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + let bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + super.parseImport(bodyNode); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + bodyNode = this.flowParseDeclare(bodyNode, true); + } + body.push(bodyNode); + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.type = "ExportDeclaration"; + node.default = false; + delete node.exportKind; + } + node.type = "Declare" + node.type; + return node; + } + } + this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + finished.type = "DeclareTypeAlias"; + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + finished.type = "DeclareOpaqueType"; + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(142)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + var _startLoc; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 133: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(134)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + this.unexpected(); + return; + case 134: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 135: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.shouldParseEnums() && this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.shouldParseEnums() && this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(2 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(node.start)) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.shouldParseEnums() && this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + if (canBePattern && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && this.match(47)) { + node.superTypeParameters = this.flowParseTypeParameterInstantiation(); + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseAssignableListItemTypes(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types$4.j_oTag || currentContext === types$4.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(node.start)) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(node.start)) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.state.start)); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(11, false); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiation(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(11, false); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && this.match(47)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(11, false); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 134: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 133: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}; +const entities$1 = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?" +}); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(142); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(141, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(133, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities$1[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(140, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(140)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types$4.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types$4.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 142: + case 133: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types$4.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types$4.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types$4.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(143)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(143)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(143); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(143)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(143); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 142: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 141: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types$4.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types$4.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(142)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(142); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types$4.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types$4.j_oTag || context === types$4.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(143); + return; + } + if ((code === 34 || code === 39) && context === types$4.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(142); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 142) { + context.splice(-2, 2, types$4.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 142) { + context.push(types$4.j_oTag); + } else if (type === 143) { + const out = context[context.length - 1]; + if (out === types$4.j_oTag && prevType === 56 || out === types$4.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types$4.j_expr; + } else { + this.setContext(types$4.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}; +class TypeScriptScope extends Scope$1 { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } +} +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 256) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 256) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } +} +const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; +}; +class LValParser extends NodeUtils { + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); + } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + break; + case "ObjectExpression": + node.type = "ObjectPattern"; + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + node.type = "ArrayPattern"; + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, node.left.loc.end); + } + node.type = "AssignmentPattern"; + delete node.operator; + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); + } else if (prop.type === "SpreadElement") { + prop.type = "RestElement"; + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, prop); + } + } else { + this.toAssignable(prop, isLHS); + } + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + if (elt.type === "SpreadElement") { + elt.type = "RestElement"; + const arg = elt.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(elt, isLHS); + } + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, elt); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, trailingCommaLoc); + } + } + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + parseRestBinding() { + const node = this.startNode(); + this.next(); + node.argument = this.parseBindingAtom(); + return this.finishNode(node, "RestElement"); + } + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, 1); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + } + return this.parseIdentifier(); + } + parseBindingList(close, closeCharCode, flags) { + const allowEmpty = flags & 1; + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + elts.push(this.parseAssignableListItemTypes(this.parseRestBinding(), flags)); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + elts.push(this.parseAssignableListItem(flags, decorators)); + } + } + return elts; + } + parseBindingRestProperty(prop) { + this.next(); + prop.argument = this.parseIdentifier(); + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + parseBindingProperty() { + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 138) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + parseAssignableListItem(flags, decorators) { + const left = this.parseMaybeDefault(); + this.parseAssignableListItemTypes(left, flags); + const elt = this.parseMaybeDefault(left.loc.start, left); + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + parseAssignableListItemTypes(param, flags) { + return param; + } + parseMaybeDefault(startLoc, left) { + var _startLoc, _left; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + left = (_left = left) != null ? _left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + } + return false; + } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false) { + var _expression$extra; + const type = expression.type; + if (this.isObjectMethod(expression)) return; + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, expression, { + ancestor + }); + } + } + if (binding !== 64) { + this.raise(Errors.InvalidPropertyBindingPattern, expression); + } + return; + } + if (type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, expression); + } else { + checkClashes.add(name); + } + } + return; + } + const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, expression, { + ancestor + }); + return; + } + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { + type + } : ancestor; + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression); + } + } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression); + } + } + checkIdentifier(at, bindingType, strictModeChanged = false) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === 64) { + this.raise(Errors.StrictEvalArguments, at, { + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, at, { + bindingName: at.name + }); + } + } + if (bindingType & 8192 && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, at); + } + if (!(bindingType & 64)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, node); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc); + return true; + } +} +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; +} +function assert$1(x) { + if (!x) { + throw new Error("Assert fail"); + } +} +const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: ({ + modifier + }) => `Accessibility modifier already seen.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.` +}); +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } +} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} +var typescript = superClass => class TypeScriptParserMixin extends superClass { + constructor(...args) { + super(...args); + this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out"], + disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + this.tsParseConstModifier = this.tsParseModifiers.bind(this, { + allowedModifiers: ["const"], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out", "const"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName(); + } + tsNextTokenOnSameLineAndCanFollowModifier() { + this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } + return this.tsTokenCanFollowModifier(); + } + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.includes(modifier)) { + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + tsParseModifiers({ + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }, modified) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, loc, { + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, loc, { + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, startLoc, { + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStartLoc.index; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(133)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + } + node.argument = super.parseExprAtom(); + if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { + node.options = null; + } + if (this.eat(12)) { + this.expectImportAttributesPlugin(); + if (!this.match(11)) { + node.options = super.parseMaybeAssignAllowIn(); + this.eat(12); + } + } + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(); + } + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSImportType"); + } + tsParseEntityName(allowReservedWords = true) { + let entity = this.parseIdentifier(allowReservedWords); + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(allowReservedWords); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(); + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseTypeParameter(parseModifiers) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(142)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, node); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + const list = super.parseBindingList(11, 41, 2); + for (const pattern of list) { + const { + type + } = pattern; + if (type === "AssignmentPattern" || type === "TSParameterProperty") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, { + type + }); + } + } + return list; + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + const nodeAny = node; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, node); + } + const method = nodeAny; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, this.state.curPosition()); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, this.state.curPosition()); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = nodeAny; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }, node); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(122); + } + if (this.isContextual(122)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(122); + } else if (this.eatContextual(122)) { + node.readonly = true; + } + this.expect(0); + { + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + } + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + node.elementTypes.forEach(elementNode => { + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + const { + startLoc + } = this.state; + const rest = this.eat(21); + let labeled; + let label; + let optional; + let type; + const isWord = tokenIsKeywordOrIdentifier(this.state.type); + const chAfterWord = isWord ? this.lookaheadCharCode() : null; + if (chAfterWord === 58) { + labeled = true; + optional = false; + label = this.parseIdentifier(true); + this.expect(14); + type = this.tsParseType(); + } else if (chAfterWord === 63) { + optional = true; + const startLoc = this.state.startLoc; + const wordName = this.state.value; + const typeOrLabel = this.tsParseNonArrayType(); + if (this.lookaheadCharCode() === 58) { + labeled = true; + label = this.createIdentifier(this.startNodeAt(startLoc), wordName); + this.expect(17); + this.expect(14); + type = this.tsParseType(); + } else { + labeled = false; + type = typeOrLabel; + this.expect(17); + } + } else { + type = this.tsParseType(); + optional = this.eat(17); + labeled = this.eat(14); + } + if (labeled) { + let labeledNode; + if (label) { + labeledNode = this.startNodeAtNode(label); + labeledNode.optional = optional; + labeledNode.label = label; + labeledNode.elementType = type; + if (this.eat(17)) { + labeledNode.optional = true; + this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); + } + } else { + labeledNode = this.startNodeAtNode(type); + labeledNode.optional = optional; + this.raise(TSErrors.InvalidTupleMemberLabel, type); + labeledNode.label = type; + labeledNode.elementType = this.tsParseType(); + } + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAtNode(type); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(startLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + switch (this.state.type) { + case 134: + case 135: + case 133: + case 85: + case 86: + node.literal = super.parseExprAtom(); + break; + default: + this.unexpected(); + } + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 133: + case 134: + case 135: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 134 && nextToken.type !== 135) { + this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + this.unexpected(); + } + tsParseArrayTypeOrHigher() { + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAtNode(type); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAtNode(type); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, node); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(115); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, 1); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + if (this.match(14)) { + return this.tsParseTypeOrTypePredicateAnnotation(14); + } + } + tsTryParseTypeAnnotation() { + if (this.match(14)) { + return this.tsParseTypeAnnotation(); + } + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 109) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, { + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + tsParseType() { + assert$1(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(124) && this.lookahead().type === 77; + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, { + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(129); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 130); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, this.state.startLoc); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 2); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); + this.expect(29); + if (this.isContextual(114) && this.lookahead().type !== 16) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInNoContext(cb) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + if (this.match(token)) { + return this.tsNextThenParseType(); + } + } + tsExpectThenParseType(token) { + return this.tsInType(() => { + this.expect(token); + return this.tsParseType(); + }); + } + tsNextThenParseType() { + return this.tsInType(() => { + this.next(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(126); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? 8971 : 8459); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(0); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, 1024); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(256); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(112)) { + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(133)) { + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(256); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) { + node.isExport = isExport || false; + node.id = maybeDefaultIdentifier || this.parseIdentifier(); + this.checkIdentifier(node.id, 4096); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, moduleReference); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(119) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(119); + this.expect(10); + if (!this.match(133)) { + this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + this.sawUnambiguousESM = true; + return this.finishNode(node, "TSExternalModuleReference"); + } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } + this.state = state; + } + tsTryParseDeclare(nany) { + if (this.isLineTerminator()) { + return; + } + let startType = this.state.type; + let kind; + if (this.isContextual(100)) { + startType = 74; + kind = "let"; + } + return this.tsInAmbientContext(() => { + switch (startType) { + case 68: + nany.declare = true; + return super.parseFunctionStatement(nany, false, false); + case 80: + nany.declare = true; + return this.parseClass(nany, true, false); + case 126: + return this.tsParseEnumDeclaration(nany, { + declare: true + }); + case 112: + return this.tsParseAmbientExternalModuleDeclaration(nany); + case 75: + case 74: + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + nany.declare = true; + return this.parseVarStatement(nany, kind || this.state.value, true); + } + this.expect(75); + return this.tsParseEnumDeclaration(nany, { + const: true, + declare: true + }); + case 129: + { + const result = this.tsParseInterfaceDeclaration(nany, { + declare: true + }); + if (result) return result; + } + default: + if (tokenIsIdentifier(startType)) { + return this.tsParseDeclaration(nany, this.state.value, true, null); + } + } + }); + } + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.value, true, null); + } + tsParseExpressionStatement(node, expr, decorators) { + switch (expr.name) { + case "declare": + { + const declaration = this.tsTryParseDeclare(node); + if (declaration) { + declaration.declare = true; + } + return declaration; + } + case "global": + if (this.match(5)) { + this.scope.enter(256); + this.prodParam.enter(0); + const mod = node; + mod.global = true; + mod.id = expr; + mod.body = this.tsParseModuleBlock(); + this.scope.exit(); + this.prodParam.exit(); + return this.finishNode(mod, "TSModuleDeclaration"); + } + break; + default: + return this.tsParseDeclaration(node, expr.name, false, decorators); + } + } + tsParseDeclaration(node, value, next, decorators) { + switch (value) { + case "abstract": + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case "module": + if (this.tsCheckLineTerminator(next)) { + if (this.match(133)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case "namespace": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case "type": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) return; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) return; + return super.parseArrowExpression(res, null, true); + } + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) return; + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInNoContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, node); + } else if (!this.state.inType && this.curContext() === types$4.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseAssignableListItem(flags, decorators) { + const startLoc = this.state.startLoc; + const modified = {}; + this.tsParseModifiers({ + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }, modified); + const accessibility = modified.accessibility; + const override = modified.override; + const readonly = modified.readonly; + if (!(flags & 4) && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, startLoc); + } + const left = this.parseMaybeDefault(); + this.parseAssignableListItemTypes(left, flags); + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, pp); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + tsDisallowOptionalPattern(node) { + for (const param of node.params) { + if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) { + this.raise(TSErrors.PatternIsOptional, param); + } + } + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + super.setArrowFunctionParameters(node, params, trailingCommaLoc); + this.tsDisallowOptionalPattern(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, node); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + this.tsDisallowOptionalPattern(node); + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, 1024); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation); + } + }); + } + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(11, false); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, this.state.startLoc, { + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + checkDuplicateExports() {} + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + const ch = this.lookaheadCharCode(); + return isExport ? ch === 123 || ch === 42 : ch !== 61; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + node.exportKind = phase === "type" ? "type" : "value"; + } else { + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImport(node) { + if (this.match(133)) { + node.importKind = "value"; + return super.parseImport(node); + } + let importNode; + if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { + node.importKind = "value"; + return this.tsParseImportEqualsDeclaration(node); + } else if (this.isContextual(130)) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + if (this.lookaheadCharCode() === 61) { + return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); + } else { + importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier); + } + } else { + importNode = super.parseImport(node); + } + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + this.next(); + const nodeImportEquals = node; + let maybeDefaultIdentifier = null; + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); + } else { + nodeImportEquals.importKind = "value"; + } + return this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(128); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(124) && this.lookahead().type === 80; + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + if (this.match(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + if (kind !== "const" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); + } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (this.match(75) && this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + if (this.isContextual(126)) { + return this.tsParseEnumDeclaration(this.startNode()); + } + if (this.isContextual(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(106) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }, member); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition()); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, member); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, member, { + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, member); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, member); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, member); + } + } + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); + } + } + parseExpressionStatement(node, expr, decorators) { + const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined; + return decl || super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.state.maybeInArrowParameters || !this.match(17)) { + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + const result = this.tryParse(() => super.parseConditional(expr, startLoc)); + if (!result.node) { + if (result.error) { + super.setOptionalParametersError(refExpressionErrors, result.error); + } + return expr; + } + if (result.error) this.state = result.failState; + return result.node; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(125)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare) { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, bindingType) { + if ((!isStatement || optionalId) && this.isContextual(113)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, node); + } + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, node, { + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, node); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters); + } + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, method, { + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && !hasOwnProperty.call(node.value, "body")) { + return; + } + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + if (this.eatContextual(113)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, isConstructor) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2; + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types$4.j_oTag || currentContext === types$4.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert$1(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, node); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + parseAssignableListItemTypes(param, flags) { + if (!(flags & 2)) return param; + if (this.eat(17)) { + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, node); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + case "TSInstantiationExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + } + parseBindingAtom() { + if (this.state.type === 78) { + return this.parseIdentifier(true); + } + return super.parseBindingAtom(); + } + parseMaybeDecoratorArguments(expr) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr); + call.typeParameters = typeArguments; + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } + return super.checkCommaAfterRest(close); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation); + } + return node; + } + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + this.finishOp(48, 1); + return; + } + if (code === 60) { + this.finishOp(47, 1); + return; + } + } + super.getTokenFromCode(code); + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); + if (typeArguments) node.typeParameters = typeArguments; + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; + this.state.isAmbientContext = true; + this.state.strict = false; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(129)) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, node); + return this.tsParseInterfaceDeclaration(node); + } + } else { + this.unexpected(null, 80); + } + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract) { + const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; + if (hasBody) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, method, { + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); + } + } +}; +function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +function isValidAmbientConstInitializer(expression, estree) { + var _expression$extra; + const { + type + } = expression; + if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) { + return false; + } + if (estree) { + if (type === "Literal") { + const { + value + } = expression; + if (typeof value === "string" || typeof value === "boolean") { + return true; + } + } + } else { + if (type === "StringLiteral" || type === "BooleanLiteral") { + return true; + } + } + if (isNumber$1(expression, estree) || isNegativeNumber(expression, estree)) { + return true; + } + if (type === "TemplateLiteral" && expression.expressions.length === 0) { + return true; + } + if (isPossiblyLiteralEnum(expression)) { + return true; + } + return false; +} +function isNumber$1(expression, estree) { + if (estree) { + return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression); + } + return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral"; +} +function isNegativeNumber(expression, estree) { + if (expression.type === "UnaryExpression") { + const { + operator, + argument + } = expression; + if (operator === "-" && isNumber$1(argument, estree)) { + return true; + } + } + return false; +} +function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression" || expression.computed) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." +}); +var placeholders = superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(144)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(144); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; + } + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + this.finishOp(144, 2); + } else { + super.getTokenFromCode(code); + } + } + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + const nextToken = this.lookahead(); + if (nextToken.type === 144) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + if (node.label && node.label.type === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + parseExpressionStatement(node, expr) { + var _expr$extra; + if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(144) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; + if (!this.isContextual(98) && !this.match(12)) { + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); + } + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(144), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + var _specifiers; + if ((_specifiers = node.specifiers) != null && _specifiers.length) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(98) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(98); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + assertNoSpace() { + if (this.state.start > this.state.lastTokEndLoc.index) { + this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); + } + } +}; +var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + identifier.type = "V8IntrinsicIdentifier"; + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } +}; +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; +function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); + } + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get; + const proposal = pluginsMap.get("pipelineOperator").proposal; + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + const tupleSyntaxIsHash = ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash"; + if (proposal === "hack") { + if (pluginsMap.has("placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = pluginsMap.get("pipelineOperator").topicToken; + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && tupleSyntaxIsHash) { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } else if (proposal === "smart" && tupleSyntaxIsHash) { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } + if (pluginsMap.has("moduleAttributes")) { + { + if (pluginsMap.has("importAttributes") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + } + if (pluginsMap.has("importAttributes") && pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions and importAttributes plugins."); + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + } + } + } + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } +} +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); +const defaultOptions = { + sourceType: "script", + sourceFilename: undefined, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + plugins: [], + strictMode: null, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true +}; +function getOptions(opts) { + if (opts == null) { + return Object.assign({}, defaultOptions); + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + const options = {}; + for (const key of Object.keys(defaultOptions)) { + var _opts$key; + options[key] = (_opts$key = opts[key]) != null ? _opts$key : defaultOptions[key]; + } + return options; +} +class ExpressionParser extends LValParser { + checkProto(prop, isRecord, protoRef, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { + return; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, key); + return; + } + if (protoRef.used) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, key); + } + } + protoRef.used = true; + } + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt; + } + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + const expr = this.parseExpression(); + if (!this.match(139)) { + this.unexpected(); + } + this.finalizeRemainingComments(); + expr.comments = this.comments; + expr.errors = this.state.errors; + if (this.options.tokens) { + expr.tokens = this.tokens; + } + return expr; + } + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + setOptionalParametersError(refExpressionErrors, resultError) { + var _resultError$loc; + refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc; + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + if (this.isContextual(108)) { + if (this.prodParam.hasYield) { + let left = this.parseYield(); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression")); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + return left; + } + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, left, { + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "smart": + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type); + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, startLoc, { + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, startLoc); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.recordAwaitIfAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, node); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, node); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate(node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousAwait()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); + return this.parseAwait(startLoc); + } + } + return expr; + } + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); + } + return expr; + } + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls) { + this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); + if (this.lookaheadCharCode() === 40) { + state.stop = true; + return base; + } + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + state.stop = true; + return base; + } + } + } + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(138)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, startLoc); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(11); + } else { + node.arguments = this.parseCallExpressionArguments(11, base.type === "Import", base.type !== "Super", node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, startLoc); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt; + } + expectImportAttributesPlugin() { + if (!this.hasPlugin("importAssertions")) { + this.expectPlugin("importAttributes"); + } + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 2) { + { + if (!this.hasPlugin("moduleAttributes")) { + this.expectImportAttributesPlugin(); + } + } + } + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, node, { + maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1 + }); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, arg); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (dynamicImport && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) { + this.raise(Errors.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc); + } + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaProperty(node); + } + if (this.match(10)) { + if (this.options.createImportExpressions) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { + this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc); + return this.finishNode(node, "Import"); + } + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 134: + return this.parseNumericLiteral(this.state.value); + case 135: + return this.parseBigIntLiteral(this.state.value); + case 136: + return this.parseDecimalLiteral(this.state.value); + case 133: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 2: + case 1: + { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true); + } + case 0: + { + return this.parseArrayLike(3, true, false, refExpressionErrors); + } + case 6: + case 7: + { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, callee); + } + } + case 138: + { + this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } + this.unexpected(); + break; + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { + this.expectOnePlugin(["jsx", "flow", "typescript"]); + } else { + this.unexpected(); + } + break; + } + default: + if (tokenIsIdentifier(type)) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + this.unexpected(); + } + } + } + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } else { + this.unexpected(); + } + } + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + this.next(); + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + const nodeType = pipeProposal === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference"; + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(pipeProposal === "smart" ? Errors.PrimaryTopicNotAllowed : Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, nodeType); + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { + token: tokenLabelName(tokenType) + }); + } + } + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc); + } + } + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition()); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(2); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) { + this.raise(Errors.SuperNotAllowed, node); + } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) { + this.raise(Errors.UnexpectedSuper, node); + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, node); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + this.next(); + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(103)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, node.property, { + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + parseImportMetaProperty(node) { + const id = this.createIdentifier(this.startNodeAtNode(node), "import"); + this.next(); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } else if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + if (!isSource) this.unexpected(); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + if (!this.options.createImportExpressions) { + throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, { + phase: this.state.value + }); + } + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); + } + return this.parseMetaProperty(node, id, "meta"); + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(node.start, this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(node.start, this.state.end)); + node.pattern = value.pattern; + node.flags = value.flags; + this.next(); + return this.finishNode(node, "RegExpLiteral"); + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, val); + } + wrapParenthesis(startLoc, expression) { + if (!this.options.createParenthesizedExpressions) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction) { + this.raise(Errors.UnexpectedNewTarget, metaProp); + } + return metaProp; + } + return this.parseNew(node); + } + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { + this.raise(Errors.ImportCallNotNewExpression, callee); + } + } + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + parseTemplate(isTagged) { + const node = this.startNode(); + let curElt = this.parseTemplateElement(isTagged); + const quasis = [curElt]; + const substitutions = []; + while (!curElt.tail) { + substitutions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + node.expressions = substitutions; + node.quasis = quasis; + return this.finishNode(node, "TemplateLiteral"); + } + parseTemplateSubstitution() { + return this.parseExpression(); + } + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const propHash = Object.create(null); + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode(node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + this.checkProto(prop, isRecord, propHash, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, prop); + } + { + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + } + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStartLoc.index); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), { + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + getObjectOrClassMethodParams(method) { + return method.params; + } + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, method); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, method); + } + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); + return this.finishNode(prop, "ObjectProperty"); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else { + prop.value = cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishNode(prop, "ObjectProperty"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 134: + key = this.parseNumericLiteral(value); + break; + case 133: + key = this.parseStringLiteral(value); + break; + case 135: + key = this.parseBigIntLiteral(value); + break; + case 136: + key = this.parseDecimalLiteral(value); + break; + case 138: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + key = this.parsePrivateName(); + break; + } + default: + this.unexpected(); + } + } + prop.key = key; + if (type !== 138) { + prop.computed = false; + } + } + } + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + this.scope.enter(2 | 16 | (inClassScope ? 64 : 0) | (allowDirectSuper ? 32 : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, isConstructor); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(2 | 4); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= 8; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(this.prodParam.currentFlags() | 4); + node.body = this.parseBlock(true, false, hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node); + } + const strictModeChanged = !oldStrict && this.state.strict; + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, 65, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); + } + } + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, this.state.curPosition(), { + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); + } + return elt; + } + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(132); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, startLoc, { + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, startLoc, { + reservedWord: word + }); + return; + } else if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, startLoc); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, startLoc); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc); + return; + } + this.expressionScope.recordAsyncArrowParametersError(startLoc); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, startLoc); + return; + } + } + } + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; + } + return isAwaitAllowed; + } + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, node); + } + if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) { + if (this.isAmbiguousAwait()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousAwait() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 137 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + } + parseYield() { + const node = this.startNode(); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); + this.next(); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 139: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { + node.options = null; + } + if (this.eat(12)) { + this.expectImportAttributesPlugin(); + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + this.eat(12); + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, startLoc); + } + } + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = 8 & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | 8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = 8 & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + parsePropertyNamePrefixOperator(prop) {} +} +const loopLabel = { + kind: 1 + }, + switchLabel = { + kind: 2 + }; +const loneSurrogate = /[\uD800-\uDFFF]/u; +const keywordRelationalOperator = /in(?:stanceof)?/y; +function babel7CompatTokens(tokens, input) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + { + if (type === 138) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + } + token.type = getExportedToken(type); + } + } + return tokens; +} +class StatementParser extends ExpressionParser { + parseTopLevel(file, program) { + file.program = this.parseProgram(program); + file.comments = this.comments; + if (this.options.tokens) { + file.tokens = babel7CompatTokens(this.tokens, this.input); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end = 139, sourceType = this.options.sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule) { + if (!this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } + } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); + } + let finishedProgram; + if (end === 139) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + stmtToDirective(stmt) { + const directive = stmt; + directive.type = "Directive"; + directive.value = directive.expression; + delete directive.expression; + const directiveLiteral = directive.value; + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end); + const val = directiveLiteral.value = raw.slice(1, -1); + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directiveLiteral.type = "DirectiveLiteral"; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(100)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + hasInLineFollowingBindingIdentifierOrBrace() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); + } + startsUsingForOf() { + const { + type, + containsEsc + } = this.lookahead(); + if (type === 102 && !containsEsc) { + return false; + } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) { + this.expectPlugin("explicitResourceManagement"); + return true; + } + } + startsAwaitUsing() { + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + this.expectPlugin("explicitResourceManagement"); + return true; + } + } + return false; + } + parseModuleItem() { + return this.parseStatementLike(1 | 2 | 4 | 8); + } + parseStatementListItem() { + return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8)); + } + parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) { + let flags = 0; + if (this.options.annexB && !this.state.strict) { + flags |= 4; + if (allowLabeledFunction) { + flags |= 8; + } + } + return this.parseStatementLike(flags); + } + parseStatement() { + return this.parseStatementLike(0); + } + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const startType = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & 2); + const allowFunctionDeclaration = !!(flags & 4); + const topLevel = flags & 1; + switch (startType) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowFunctionDeclaration) { + this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc); + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 96: + if (!this.state.containsEsc && this.startsAwaitUsing()) { + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, node); + } + this.next(); + return this.parseVarStatement(node, "await using"); + } + break; + case 107: + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { + break; + } + this.expectPlugin("explicitResourceManagement"); + if (!this.scope.inModule && this.scope.inTopLevel) { + this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + return this.parseVarStatement(node, "using"); + case 100: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!this.options.allowImportExportEverywhere && !topLevel) { + this.raise(Errors.UnexpectedImportExport, this.state.startLoc); + } + this.next(); + let result; + if (startType === 83) { + result = this.parseImport(node); + if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { + this.sawUnambiguousESM = true; + } + } else { + result = this.parseExport(node, decorators); + if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { + this.sawUnambiguousESM = true; + } + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!this.options.allowImportExportEverywhere && !this.inModule) { + this.raise(Errors.ImportOutsideModule, node); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false; + } + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + if (classNode.decorators && classNode.decorators.length > 0) { + if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { + this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); + } + classNode.decorators.unshift(...maybeDecorators); + } else { + classNode.decorators = maybeDecorators; + } + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, this.state.startLoc); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(138)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr) { + if (this.eat(10)) { + const node = this.startNodeAtNode(expr); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(11, false); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === 1)) { + break; + } + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, node, { + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); + } + this.scope.enter(0); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(100); + { + const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + let kind; + if (startsWithAwaitUsing) { + kind = "await using"; + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); + } + this.next(); + } else { + kind = this.state.value; + } + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && starsWithUsingDeclaration) { + this.raise(Errors.ForInUsing, init); + } + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + } + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(102); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, init); + } + if (awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, init); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + type + }); + return this.parseForIn(node, init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0)); + } + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(); + node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) { + this.raise(Errors.IllegalReturn, this.state.startLoc); + } + this.next(); + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(0); + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); + this.checkLVal(param, { + type: "CatchClause" + }, 9); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(0); + } + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, node); + } + return this.finishNode(node, "TryStatement"); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, this.state.startLoc); + } + this.next(); + node.object = this.parseHeaderExpression(); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, expr, { + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.state.start; + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.state.start + }); + node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(0); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, init, { + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, init, { + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind: "destructuring" + }); + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } + this.checkLVal(id, { + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); + decl.id = id; + } + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, 8); + } + parseFunction(node, flags = 0) { + const hangingDeclaration = flags & 2; + const isDeclaration = !!(flags & 1); + const requireId = isDeclaration && !(flags & 4); + const isAsync = !!(flags & 8); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(2); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, isConstructor) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0)); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start); + } + parseClass(node, isStatement, optionalId) { + this.next(); + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && this.nameIsConstructor(method.key); + } + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, member); + } + } + }); + this.state.strict = oldStrict; + this.next(); + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, this.state.startLoc); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + if (this.isClassMethod()) { + const method = member; + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(106); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(138); + this.parseClassElementName(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); + const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, key); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, key); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(138); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = maybeContextualKw; + const isPrivate = this.match(138); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + const isPrivate = this.match(138); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 132 || type === 133) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, this.state.startLoc); + } + if (type === 138) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + this.parsePropertyName(member); + return member.key; + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(64 | 128 | 16); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(0); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, member); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + parsePostMemberNameModifiers(methodOrProp) {} + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + parseInitializer(node) { + this.scope.enter(64 | 16); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(0); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = 8331) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, this.state.startLoc); + } + } + } + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + parseExport(node, decorators) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true); + const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar(node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, true); + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) { + this.unexpected(null, 5); + } + if (hasNamespace && parseAfterNamespace) { + this.unexpected(null, 98); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.checkExport(node2, true, true); + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + this.unexpected(null, 5); + } + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start); + const id = maybeDefaultIdentifier || this.parseIdentifier(true); + const specifier = this.startNodeAtNode(id); + specifier.exported = id; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; + node2.declaration = null; + if (this.hasPlugin("importAssertions")) { + node2.assertions = []; + } + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenInLineStart(); + return this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, 1 | 4); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, 1 | 4 | 8); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet()) { + throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + parseExportDeclaration(node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 100) { + return false; + } + if ((type === 130 || type === 129) && !this.state.containsEsc) { + const { + type: nextType + } = this.lookahead(); + if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(98)) { + node.source = this.parseImportSource(); + this.checkExport(node); + this.maybeParseImportAttributes(node); + this.checkJSONModuleImport(node); + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return true; + } + } + if (this.isContextual(107)) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isContextual(96) && this.startsAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + var _node$specifiers; + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, declaration); + } + } + } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, specifier, { + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, node); + } else { + this.raise(Errors.DuplicateExport, node, { + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(133); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + parseModuleExportName() { + if (this.match(133)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = loneSurrogate.exec(result.value); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start); + } + } else if (node.module) { + var _node$assertions; + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start); + } + } + } + } + isPotentialImportPhase(isExport) { + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); + } + applyImportPhase(node, isExport, phase, loc) { + if (isExport) { + return; + } + if (phase === "module") { + this.expectPlugin("importReflection", loc); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } + } + parseMaybeImportPhase(node, isExport) { + if (!this.isPotentialImportPhase(isExport)) { + this.applyImportPhase(node, isExport, null); + return null; + } + const phaseIdentifier = this.parseIdentifier(true); + const { + type + } = this.state; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + if (isImportPhase) { + this.resetPreviousIdentifierLeadingComments(phaseIdentifier); + this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start); + return null; + } else { + this.applyImportPhase(node, isExport, null); + return phaseIdentifier; + } + } + isPrecedingIdImportPhase(phase) { + const { + type + } = this.state; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + } + parseImport(node) { + if (this.match(133)) { + return this.parseImportSourceAndAttributes(node); + } + return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); + } + parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) { + node.specifiers = []; + const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(98); + return this.parseImportSourceAndAttributes(node); + } + parseImportSourceAndAttributes(node) { + var _node$specifiers2; + (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = []; + node.source = this.parseImportSource(); + this.maybeParseImportAttributes(node); + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(133)) this.unexpected(); + return this.parseExprAtom(); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = 8201) { + this.checkLVal(specifier.local, { + type + }, bindingType); + return this.finishNode(specifier, type); + } + parseImportAttributes() { + this.expect(5); + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, { + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(133)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(133)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + this.expect(8); + return attrs; + } + parseModuleAttributes() { + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, node.key); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, { + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(133)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAttributes(node) { + let attributes; + let useWith = false; + if (this.match(76)) { + if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { + return; + } + this.next(); + { + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + } else { + this.expectImportAttributesPlugin(); + attributes = this.parseImportAttributes(); + } + } + useWith = true; + } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + if (this.hasPlugin("importAttributes")) { + if (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== true) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + this.addExtra(node, "deprecatedAssertSyntax", true); + } else { + this.expectOnePlugin(["importAttributes", "importAssertions"]); + } + this.next(); + attributes = this.parseImportAttributes(); + } else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { + attributes = []; + } else { + if (this.hasPlugin("moduleAttributes")) { + attributes = []; + } else return; + } + if (!useWith && this.hasPlugin("importAssertions")) { + node.assertions = attributes; + } else { + node.attributes = attributes; + } + } + maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier) { + const specifier = this.startNodeAtNode(maybeDefaultIdentifier); + specifier.local = maybeDefaultIdentifier; + node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier")); + return true; + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, this.state.startLoc); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(133); + const isMaybeTypeOnly = this.isContextual(130); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } +} +let Parser$1 = class Parser extends StatementParser { + constructor(options, input, pluginsMap) { + options = getOptions(options); + super(options, input); + this.options = options; + this.initializeScopes(); + this.plugins = pluginsMap; + this.filename = options.sourceFilename; + } + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + this.parseTopLevel(file, program); + file.errors = this.state.errors; + file.comments.length = this.state.commentsLen; + return file; + } +}; +function parse$c(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } +} +function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); +} +function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; +} +const tokTypes = generateExportedTokenTypes(tt); +function getParser(options, input) { + let cls = Parser$1; + const pluginsMap = new Map(); + if (options != null && options.plugins) { + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); + } + return new cls(options, input, pluginsMap); +} +const parserClassCache = new Map(); +function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); + if (!cls) { + cls = Parser$1; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache.set(key, cls); + } + return cls; +} +lib.parse = parse$c; +lib.parseExpression = parseExpression; +lib.tokTypes = tokTypes; + +var estreeWalker$1 = {exports: {}}; + +(function (module, exports) { + (function (global, factory) { + factory(exports) ; + }(commonjsGlobal, (function (exports) { + // @ts-check + /** @typedef { import('estree').BaseNode} BaseNode */ + + /** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; + }} WalkerContext */ + + class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + + class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ + + class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {AsyncHandler} */ + this.enter = enter; + + /** @type {AsyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + await this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + await this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./sync.js').SyncHandler} SyncHandler */ + /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ + function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); + } + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ + async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); + } + + exports.asyncWalk = asyncWalk; + exports.walk = walk; + + Object.defineProperty(exports, '__esModule', { value: true }); + + }))); +} (estreeWalker$1, estreeWalker$1.exports)); + +var estreeWalkerExports = estreeWalker$1.exports; + +var sourceMap = {}; + +var sourceMapGenerator = {}; + +var base64Vlq = {}; + +var base64$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +base64$1.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +base64$1.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = base64$1; + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +base64Vlq.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +base64Vlq.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; + +var util$5 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +(function (exports) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports.urlGenerate = urlGenerate; + + var MAX_CACHED_INPUTS = 32; + + /** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ + function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; + } + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + }); + exports.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports.join = join; + + exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositions = compareByOriginalPositions; + + function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp; + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports.computeSourceURL = computeSourceURL; +} (util$5)); + +var arraySet = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util$4 = util$5; +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet$2() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet$2.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet$2(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet$2.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet$2.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util$4.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet$2.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util$4.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet$2.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util$4.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet$2.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet$2.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +arraySet.ArraySet = ArraySet$2; + +var mappingList = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util$3 = util$5; + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util$3.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList$1() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList$1.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList$1.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList$1.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util$3.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +mappingList.MappingList = MappingList$1; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ$1 = base64Vlq; +var util$2 = util$5; +var ArraySet$1 = arraySet.ArraySet; +var MappingList = mappingList.MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator$1(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util$2.getArg(aArgs, 'file', null); + this._sourceRoot = util$2.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util$2.getArg(aArgs, 'skipValidation', false); + this._ignoreInvalidMapping = util$2.getArg(aArgs, 'ignoreInvalidMapping', false); + this._sources = new ArraySet$1(); + this._names = new ArraySet$1(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator$1.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator$1.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator$1(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + })); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util$2.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util$2.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator$1.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util$2.getArg(aArgs, 'generated'); + var original = util$2.getArg(aArgs, 'original', null); + var source = util$2.getArg(aArgs, 'source', null); + var name = util$2.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator$1.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util$2.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util$2.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util$2.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator$1.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util$2.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet$1(); + var newNames = new ArraySet$1(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util$2.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util$2.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util$2.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util$2.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator$1.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + var message = 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.'; + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + var message = 'Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message) + } + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator$1.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ''; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util$2.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ$1.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ$1.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ$1.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ$1.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ$1.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator$1.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util$2.relative(aSourceRoot, source); + } + var key = util$2.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator$1.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator$1.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +sourceMapGenerator.SourceMapGenerator = SourceMapGenerator$1; + +var sourceMapConsumer = {}; + +var binarySearch$4 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +(function (exports) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports.GREATEST_LOWER_BOUND = 1; + exports.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; +} (binarySearch$4)); + +var quickSort$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +quickSort$1.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util$1 = util$5; +var binarySearch$3 = binarySearch$4; +var ArraySet = arraySet.ArraySet; +var base64VLQ = base64Vlq; +var quickSort = quickSort$1.quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util$1.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +}; + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + source = util$1.computeSourceURL(sourceRoot, source, sourceMapURL); + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util$1.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util$1.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util$1.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util$1.compareByOriginalPositions, + binarySearch$3.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util$1.getArg(mapping, 'generatedLine', null), + column: util$1.getArg(mapping, 'generatedColumn', null), + lastColumn: util$1.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util$1.getArg(mapping, 'generatedLine', null), + column: util$1.getArg(mapping, 'generatedColumn', null), + lastColumn: util$1.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +sourceMapConsumer.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util$1.parseSourceMapInput(aSourceMap); + } + + var version = util$1.getArg(sourceMap, 'version'); + var sources = util$1.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util$1.getArg(sourceMap, 'names', []); + var sourceRoot = util$1.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util$1.getArg(sourceMap, 'sourcesContent', null); + var mappings = util$1.getArg(sourceMap, 'mappings'); + var file = util$1.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util$1.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util$1.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util$1.isAbsolute(sourceRoot) && util$1.isAbsolute(source) + ? util$1.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util$1.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util$1.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util$1.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util$1.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util$1.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util$1.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch$3.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util$1.getArg(aArgs, 'line'), + generatedColumn: util$1.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util$1.compareByGeneratedPositionsDeflated, + util$1.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util$1.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util$1.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util$1.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util$1.getArg(mapping, 'originalLine', null), + column: util$1.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util$1.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util$1.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util$1.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util$1.getArg(aArgs, 'line'), + originalColumn: util$1.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util$1.compareByOriginalPositions, + util$1.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util$1.getArg(mapping, 'generatedLine', null), + column: util$1.getArg(mapping, 'generatedColumn', null), + lastColumn: util$1.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +sourceMapConsumer.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util$1.parseSourceMapInput(aSourceMap); + } + + var version = util$1.getArg(sourceMap, 'version'); + var sections = util$1.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util$1.getArg(s, 'offset'); + var offsetLine = util$1.getArg(offset, 'line'); + var offsetColumn = util$1.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util$1.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util$1.getArg(aArgs, 'line'), + generatedColumn: util$1.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch$3.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === '') { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util$1.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util$1.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util$1.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util$1.compareByOriginalPositions); + }; + +sourceMapConsumer.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + +var sourceNode = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = sourceMapGenerator.SourceMapGenerator; +var util = util$5; + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +sourceNode.SourceNode = SourceNode; + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +sourceMap.SourceMapGenerator = sourceMapGenerator.SourceMapGenerator; +sourceMap.SourceMapConsumer = sourceMapConsumer.SourceMapConsumer; +sourceMap.SourceNode = sourceNode.SourceNode; + +/** +* @vue/compiler-core v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ + +Object.defineProperty(compilerCore_cjs, '__esModule', { value: true }); + +var shared$2 = require$$1$1; +var decode_js = decode; +var parser = lib; +var estreeWalker = estreeWalkerExports; +var sourceMapJs = sourceMap; + +const FRAGMENT = Symbol(`Fragment` ); +const TELEPORT = Symbol(`Teleport` ); +const SUSPENSE = Symbol(`Suspense` ); +const KEEP_ALIVE = Symbol(`KeepAlive` ); +const BASE_TRANSITION = Symbol( + `BaseTransition` +); +const OPEN_BLOCK = Symbol(`openBlock` ); +const CREATE_BLOCK = Symbol(`createBlock` ); +const CREATE_ELEMENT_BLOCK = Symbol( + `createElementBlock` +); +const CREATE_VNODE = Symbol(`createVNode` ); +const CREATE_ELEMENT_VNODE = Symbol( + `createElementVNode` +); +const CREATE_COMMENT = Symbol( + `createCommentVNode` +); +const CREATE_TEXT = Symbol( + `createTextVNode` +); +const CREATE_STATIC = Symbol( + `createStaticVNode` +); +const RESOLVE_COMPONENT = Symbol( + `resolveComponent` +); +const RESOLVE_DYNAMIC_COMPONENT = Symbol( + `resolveDynamicComponent` +); +const RESOLVE_DIRECTIVE = Symbol( + `resolveDirective` +); +const RESOLVE_FILTER = Symbol( + `resolveFilter` +); +const WITH_DIRECTIVES = Symbol( + `withDirectives` +); +const RENDER_LIST = Symbol(`renderList` ); +const RENDER_SLOT = Symbol(`renderSlot` ); +const CREATE_SLOTS = Symbol(`createSlots` ); +const TO_DISPLAY_STRING = Symbol( + `toDisplayString` +); +const MERGE_PROPS = Symbol(`mergeProps` ); +const NORMALIZE_CLASS = Symbol( + `normalizeClass` +); +const NORMALIZE_STYLE = Symbol( + `normalizeStyle` +); +const NORMALIZE_PROPS = Symbol( + `normalizeProps` +); +const GUARD_REACTIVE_PROPS = Symbol( + `guardReactiveProps` +); +const TO_HANDLERS = Symbol(`toHandlers` ); +const CAMELIZE = Symbol(`camelize` ); +const CAPITALIZE = Symbol(`capitalize` ); +const TO_HANDLER_KEY = Symbol( + `toHandlerKey` +); +const SET_BLOCK_TRACKING = Symbol( + `setBlockTracking` +); +const PUSH_SCOPE_ID = Symbol(`pushScopeId` ); +const POP_SCOPE_ID = Symbol(`popScopeId` ); +const WITH_CTX = Symbol(`withCtx` ); +const UNREF = Symbol(`unref` ); +const IS_REF = Symbol(`isRef` ); +const WITH_MEMO = Symbol(`withMemo` ); +const IS_MEMO_SAME = Symbol(`isMemoSame` ); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: shared$2.isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: shared$2.isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false) { + return { + type: 20, + index, + value, + needPauseTracking, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace$3(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace$3(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + { + this.entityDecoder = new decode_js.EntityDecoder( + decode_js.htmlDecodeTree, + (cp, consumed) => this.emitCodePoint(cp, consumed) + ); + } + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + for (let i = this.newlines.length - 1; i >= 0; i--) { + const newlineIndex = this.newlines[i]; + if (index > newlineIndex) { + line = i + 2; + column = index - newlineIndex; + break; + } + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace$3(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (c === 38) { + this.startEntity(); + } else if (c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace$3(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace$3(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace$3(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace$3(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace$3(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace$3(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || false) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } else if (c === 38) { + this.startEntity(); + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace$3(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else if (c === 38) { + this.startEntity(); + } + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + { + this.baseState = this.state; + this.state = 33; + this.entityStart = this.index; + this.entityDecoder.startEntity( + this.baseState === 1 || this.baseState === 32 ? decode_js.DecodingMode.Legacy : decode_js.DecodingMode.Attribute + ); + } + } + stateInEntity() { + { + const length = this.entityDecoder.write(this.buffer, this.index); + if (length >= 0) { + this.state = this.baseState; + if (length === 0) { + this.index = this.entityStart; + } + } else { + this.index = this.buffer.length - 1; + } + } + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + if (this.state === 33) { + this.entityDecoder.end(); + this.state = this.baseState; + } + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + { + if (this.baseState !== 1 && this.baseState !== 32) { + if (this.sectionStart < this.entityStart) { + this.cbs.onattribdata(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.onattribentity( + decode_js.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } else { + if (this.sectionStart < this.entityStart) { + this.cbs.ontext(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.ontextentity( + decode_js.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } + } + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_INVALID_EXPRESSION": 45, + "45": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 46, + "46": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 47, + "47": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 48, + "48": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 49, + "49": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 50, + "50": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 51, + "51": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 52, + "52": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 53, + "53": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [52]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `Error parsing JavaScript expression: `, + [46]: `<KeepAlive> expects exactly one child component.`, + [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [48]: `ES module mode is not supported in this build of compiler.`, + [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [50]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [53]: `` +}; + +function walkIdentifiers$1(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + const rootExp = root.type === "Program" ? root.body[0].type === "ExpressionStatement" && root.body[0].expression : root; + estreeWalker.walk(root, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + if (node.type === "Identifier") { + const isLocal = !!knownIds[node.name]; + const isRefed = isReferencedIdentifier(node, parent, parentStack); + if (includeAll || isRefed && !isLocal) { + onIdentifier(node, parent, parentStack, isRefed, isLocal); + } + } else if (node.type === "ObjectProperty" && // eslint-disable-next-line no-restricted-syntax + (parent == null ? void 0 : parent.type) === "ObjectPattern") { + node.inPattern = true; + } else if (isFunctionType(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkFunctionParams( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "BlockStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkBlockDeclarations( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "CatchClause" && node.param) { + for (const id of extractIdentifiers(node.param)) { + markScopeIdentifier(node, id, knownIds); + } + } else if (isForStatement(node)) { + walkForStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node !== rootExp && node.scopeIds) { + for (const id of node.scopeIds) { + knownIds[id]--; + if (knownIds[id] === 0) { + delete knownIds[id]; + } + } + } + } + }); +} +function isReferencedIdentifier(id, parent, parentStack) { + if (!parent) { + return true; + } + if (id.name === "arguments") { + return false; + } + if (isReferenced(id, parent)) { + return true; + } + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return true; + case "ObjectPattern": + case "ArrayPattern": + return isInDestructureAssignment(parent, parentStack); + } + return false; +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + for (const stmt of block.body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +function markKnownIds(name, knownIds) { + if (name in knownIds) { + knownIds[name]++; + } else { + knownIds[name] = 1; + } +} +function markScopeIdentifier(node, child, knownIds) { + const { name } = child; + if (node.scopeIds && node.scopeIds.has(name)) { + return; + } + markKnownIds(name, knownIds); + (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name); +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + // yes: PARENT[NODE] + // yes: NODE.child + // no: parent.NODE + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + // no: let NODE = init; + // yes: let id = NODE; + case "VariableDeclarator": + return parent.init === node; + // yes: () => NODE + // no: (NODE) => {} + case "ArrowFunctionExpression": + return parent.body === node; + // no: class { #NODE; } + // no: class { get #NODE() {} } + // no: class { #NODE() {} } + // no: class { fn() { return this.#NODE; } } + case "PrivateName": + return false; + // no: class { NODE() {} } + // yes: class { [NODE]() {} } + // no: class { foo(NODE) {} } + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + // yes: { [NODE]: "" } + // no: { NODE: "" } + // depends: { NODE } + // depends: { key: NODE } + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent; + // no: class { NODE = value; } + // yes: class { [NODE] = value; } + // yes: class { key = NODE; } + case "ClassProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + // no: class NODE {} + // yes: class Foo extends NODE {} + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + // yes: left = NODE; + // no: NODE = right; + case "AssignmentExpression": + return parent.right === node; + // no: [NODE = foo] = []; + // yes: [foo = NODE] = []; + case "AssignmentPattern": + return parent.right === node; + // no: NODE: for (;;) {} + case "LabeledStatement": + return false; + // no: try {} catch (NODE) {} + case "CatchClause": + return false; + // no: function foo(...NODE) {} + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} + // no: function foo(NODE) {} + case "FunctionDeclaration": + case "FunctionExpression": + return false; + // no: export NODE from "foo"; + // no: export * as NODE from "foo"; + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; + case "ExportSpecifier": + return parent.local === node; + // no: import NODE from "foo"; + // no: import * as NODE from "foo"; + // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; + // no: import NODE from "bar"; + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + // no: import "foo" assert { NODE: "json" } + case "ImportAttribute": + return false; + // no: <div NODE="foo" /> + case "JSXAttribute": + return false; + // no: [NODE] = []; + // no: ({ NODE }) = []; + case "ObjectPattern": + case "ArrayPattern": + return false; + // no: new.NODE + // no: NODE.target + case "MetaProperty": + return false; + // yes: type X = { someProperty: NODE } + // no: type X = { NODE: OtherType } + case "ObjectTypeProperty": + return parent.key !== node; + // yes: enum X { Foo = NODE } + // no: enum X { NODE } + case "TSEnumMember": + return parent.id !== node; + // yes: { [NODE]: value } + // no: { NODE: value } + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE$1 = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE$1, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + ret = unwrapTSNode(ret); + return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined"; + } catch (e) { + return false; + } +}; +const isMemberExpression = isMemberExpressionNode; +const fnExpRE$1 = /^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE$1.test(getExpSource(exp)); +const isFnExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + if (ret.type === "Program") { + ret = ret.body[0]; + if (ret.type === "ExpressionStatement") { + ret = ret.expression; + } + } + ret = unwrapTSNode(ret); + return ret.type === "FunctionExpression" || ret.type === "ArrowFunctionExpression"; + } catch (e) { + return false; + } +}; +const isFnExpression = isFnExpressionNode; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (shared$2.isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !shared$2.isString(props) && props.type === 14) { + const callee = props.callee; + if (!shared$2.isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !shared$2.isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || shared$2.isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!shared$2.isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => shared$2.isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE$1 = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: shared$2.NO, + isPreTag: shared$2.NO, + isCustomElement: shared$2.NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace$3(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace$3(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = decode_js.decodeHTML(exp); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + { + if (currentProp.name === "for") { + expParseMode = 3 /* Skip */; + } else if (currentProp.name === "slot") { + expParseMode = 1 /* Params */; + } else if (currentProp.name === "on" && currentAttrValue.includes(";")) { + expParseMode = 2 /* Statements */; + } + } + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.rawName + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE$1 = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE$1 = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE$1); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE$1, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE$1); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE$1, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = shared$2.extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = shared$2.extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(el.children, el.tag); + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (isCompatEnabled( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions + )) { + let hasIf = false; + let hasFor = false; + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 7) { + if (p.name === "if") { + hasIf = true; + } else if (p.name === "for") { + hasFor = true; + } + } + if (hasIf && hasFor) { + warnDeprecation( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions, + el.loc + ); + break; + } + } + } + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + warnDeprecation( + "COMPILER_NATIVE_TEMPLATE", + currentOptions, + el.loc + ); + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes, tag) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + if (inPre && tag && currentOptions.isPreTag(tag)) { + const first = nodes[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace$3(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace$3(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) { + if (isSimpleIdentifier(content)) { + exp.ast = null; + return exp; + } + try { + const plugins = currentOptions.expressionPlugins; + const options = { + plugins: plugins ? [...plugins, "typescript"] : ["typescript"] + }; + if (parseMode === 2 /* Statements */) { + exp.ast = parser.parse(` ${content} `, options).program; + } else if (parseMode === 1 /* Params */) { + exp.ast = parser.parseExpression(`(${content})=>{}`, options); + } else { + exp.ast = parser.parseExpression(`(${content})`, options); + } + } catch (e) { + exp.ast = false; + emitError(45, loc.start.offset, e.message); + } + } + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = shared$2.extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (currentOptions.decodeEntities) { + console.warn( + `[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk$1( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + isSingleElementRoot(root, root.children[0]) + ); +} +function isSingleElementRoot(root, child) { + const { children } = root; + return children.length === 1 && child.type === 1 && !isSlotOutlet(child); +} +function walk$1(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk$1(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk$1(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk$1( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared$2.isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared$2.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared$2.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + if (inFor && context.hmr) { + exp.needArraySpread = true; + } + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !shared$2.isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared$2.isString(child) || shared$2.isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !shared$2.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = shared$2.NOOP, + isCustomElement = shared$2.NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = shared$2.EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && shared$2.capitalize(shared$2.camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: shared$2.NOOP, + addIdentifiers(exp) { + { + if (shared$2.isString(exp)) { + addId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(addId); + } else if (exp.type === 4) { + addId(exp.content); + } + } + }, + removeIdentifiers(exp) { + { + if (shared$2.isString(exp)) { + removeId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(removeId); + } else if (exp.type === 4) { + removeId(exp.content); + } + } + }, + hoist(exp) { + if (shared$2.isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + function addId(id) { + const { identifiers } = context; + if (identifiers[id] === void 0) { + identifiers[id] = 0; + } + identifiers[id]++; + } + function removeId(id) { + context.identifiers[id]--; + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const child = children[0]; + if (isSingleElementRoot(root, child) && child.codegenNode) { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = child; + } + } else if (children.length > 1) { + let patchFlag = 64; + let patchFlagText = shared$2.PatchFlagNames[64]; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${shared$2.PatchFlagNames[2048]}`; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (shared$2.isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (shared$2.isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = shared$2.isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + if (context.map) { + if (node) { + let name; + if (node.type === 4 && !node.isStatic) { + const content = node.content.replace(/^_ctx\./, ""); + if (content !== node.content && isSimpleIdentifier(content)) { + name = content; + } + } + addMapping(node.loc.start, name); + } + if (newlineIndex === -3 /* Unknown */) { + advancePositionWithMutation(context, code); + } else { + context.offset += code.length; + if (newlineIndex === -2 /* None */) { + context.column += code.length; + } else { + if (newlineIndex === -1 /* End */) { + newlineIndex = code.length - 1; + } + context.line++; + context.column = code.length - newlineIndex; + } + } + if (node && node.loc !== locStub) { + addMapping(node.loc.end); + } + } + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + function addMapping(loc, name = null) { + const { _names, _mappings } = context.map; + if (name !== null && !_names.has(name)) _names.add(name); + _mappings.add({ + originalLine: loc.line, + originalColumn: loc.column - 1, + // source-map column is 0 based + generatedLine: context.line, + generatedColumn: context.column - 1, + source: filename, + name + }); + } + if (sourceMap) { + context.map = new sourceMapJs.SourceMapGenerator(); + context.map.setSourceContent(filename, context.source); + context.map._sources.add(filename); + } + return context; +} +function generate$3(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const genScopeId = scopeId != null && mode === "module"; + const isSetupInlined = !!options.inline; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + if (mode === "module") { + genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined); + } else { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + if (options.bindingMetadata && !options.inline) { + args.push("$props", "$setup", "$data", "$options"); + } + const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(",") : args.join(", "); + if (isSetupInlined) { + push(`(${signature}) => {`); + } else { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode$1(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + if (prefixIdentifiers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding} +`, + -1 /* End */ + ); + } else { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}") +`, + -1 /* End */ + ); + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genModulePreamble(ast, context, genScopeId, inline) { + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context; + if (ast.helpers.size) { + const helpers = Array.from(ast.helpers); + if (optimizeImports) { + push( + `import { ${helpers.map((s) => helperNameMap[s]).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + push( + ` +// Binding optimization for webpack code-split +const ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(", ")} +`, + -1 /* End */ + ); + } else { + push( + `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from "${ssrRuntimeModuleName}" +`, + -1 /* End */ + ); + } + if (ast.imports.length) { + genImports(ast.imports, context); + newline(); + } + genHoists(ast.hoists, context); + newline(); + if (!inline) { + push(`export `); + } +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode$1(exp, context); + newline(); + } + } + context.pure = false; +} +function genImports(importsOptions, context) { + if (!importsOptions.length) { + return; + } + importsOptions.forEach((imports) => { + context.push(`import `); + genNode$1(imports.exp, context); + context.push(` from '${imports.path}'`); + context.newline(); + }); +} +function isText(n) { + return shared$2.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => shared$2.isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (shared$2.isString(node)) { + push(node, -3 /* Unknown */); + } else if (shared$2.isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode$1(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode$1(node, context) { + if (shared$2.isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (shared$2.isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode$1(node.codegenNode, context); + break; + case 2: + genText$1(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode$1(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment$1(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + genTemplateLiteral(node, context); + break; + case 23: + genIfStatement(node, context); + break; + case 24: + genAssignmentExpression(node, context); + break; + case 25: + genSequenceExpression(node, context); + break; + case 26: + genReturnStatement(node, context); + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText$1(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode$1(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared$2.isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode$1(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment$1(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${shared$2.PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(shared$2.PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => shared$2.PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode$1(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = shared$2.isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode$1(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (shared$2.isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode$1(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (shared$2.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode$1(returns, context); + } + } else if (body) { + genNode$1(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode$1(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode$1(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode$1(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode$1(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} +function genTemplateLiteral(node, context) { + const { push, indent, deindent } = context; + push("`"); + const l = node.elements.length; + const multilines = l > 3; + for (let i = 0; i < l; i++) { + const e = node.elements[i]; + if (shared$2.isString(e)) { + push(e.replace(/(`|\$|\\)/g, "\\$1"), -3 /* Unknown */); + } else { + push("${"); + if (multilines) indent(); + genNode$1(e, context); + if (multilines) deindent(); + push("}"); + } + } + push("`"); +} +function genIfStatement(node, context) { + const { push, indent, deindent } = context; + const { test, consequent, alternate } = node; + push(`if (`); + genNode$1(test, context); + push(`) {`); + indent(); + genNode$1(consequent, context); + deindent(); + push(`}`); + if (alternate) { + push(` else `); + if (alternate.type === 23) { + genIfStatement(alternate, context); + } else { + push(`{`); + indent(); + genNode$1(alternate, context); + deindent(); + push(`}`); + } + } +} +function genAssignmentExpression(node, context) { + genNode$1(node.left, context); + context.push(` = `); + genNode$1(node.right, context); +} +function genSequenceExpression(node, context) { + context.push(`(`); + genNodeList(node.expressions, context); + context.push(`)`); +} +function genReturnStatement({ returns }, context) { + context.push(`return `); + if (shared$2.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode$1(returns, context); + } +} + +const isLiteralWhitelisted = /* @__PURE__ */ shared$2.makeMap("true,false,null,this"); +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg)) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + if (!context.prefixIdentifiers || !node.content.trim()) { + return node; + } + const { inline, bindingMetadata } = context; + const rewriteIdentifier = (raw, parent, id) => { + const type = shared$2.hasOwn(bindingMetadata, raw) && bindingMetadata[raw]; + if (inline) { + const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id; + const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id; + const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack); + const isNewExpression = parent && isInNewExpression(parentStack); + const wrapWithUnref = (raw2) => { + const wrapped = `${context.helperString(UNREF)}(${raw2})`; + return isNewExpression ? `(${wrapped})` : wrapped; + }; + if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) { + return raw; + } else if (type === "setup-ref") { + return `${raw}.value`; + } else if (type === "setup-maybe-ref") { + return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw); + } else if (type === "setup-let") { + if (isAssignmentLVal) { + const { right: rVal, operator } = parent; + const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); + const rExpString = stringifyExpression( + processExpression( + createSimpleExpression(rExp, false), + context, + false, + false, + knownIds + ) + ); + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; + } else if (isUpdateArg) { + id.start = parent.start; + id.end = parent.end; + const { prefix: isPrefix, operator } = parent; + const prefix = isPrefix ? operator : ``; + const postfix = isPrefix ? `` : operator; + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; + } else if (isDestructureAssignment) { + return raw; + } else { + return wrapWithUnref(raw); + } + } else if (type === "props") { + return shared$2.genPropsAccessExp(raw); + } else if (type === "props-aliased") { + return shared$2.genPropsAccessExp(bindingMetadata.__propsAliases[raw]); + } + } else { + if (type && type.startsWith("setup") || type === "literal-const") { + return `$setup.${raw}`; + } else if (type === "props-aliased") { + return `$props['${bindingMetadata.__propsAliases[raw]}']`; + } else if (type) { + return `$${type}.${raw}`; + } + } + return `_ctx.${raw}`; + }; + const rawExp = node.content; + let ast = node.ast; + if (ast === false) { + return node; + } + if (ast === null || !ast && isSimpleIdentifier(rawExp)) { + const isScopeVarReference = context.identifiers[rawExp]; + const isAllowedGlobal = shared$2.isGloballyAllowed(rawExp); + const isLiteral = isLiteralWhitelisted(rawExp); + if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) { + if (isConst(bindingMetadata[rawExp])) { + node.constType = 1; + } + node.content = rewriteIdentifier(rawExp); + } else if (!isScopeVarReference) { + if (isLiteral) { + node.constType = 3; + } else { + node.constType = 2; + } + } + return node; + } + if (!ast) { + const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; + try { + ast = parser.parseExpression(source, { + sourceType: "module", + plugins: context.expressionPlugins + }); + } catch (e) { + context.onError( + createCompilerError( + 45, + node.loc, + void 0, + e.message + ) + ); + return node; + } + } + const ids = []; + const parentStack = []; + const knownIds = Object.create(context.identifiers); + walkIdentifiers$1( + ast, + (node2, parent, _, isReferenced, isLocal) => { + if (isStaticPropertyKey(node2, parent)) { + return; + } + if (node2.name.startsWith("_filter_")) { + return; + } + const needPrefix = isReferenced && canPrefix(node2); + if (needPrefix && !isLocal) { + if (isStaticProperty(parent) && parent.shorthand) { + node2.prefix = `${node2.name}: `; + } + node2.name = rewriteIdentifier(node2.name, parent, node2); + ids.push(node2); + } else { + if (!(needPrefix && isLocal) && (!parent || parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "MemberExpression")) { + node2.isConstant = true; + } + ids.push(node2); + } + }, + true, + // invoke on ALL identifiers + parentStack, + knownIds + ); + const children = []; + ids.sort((a, b) => a.start - b.start); + ids.forEach((id, i) => { + const start = id.start - 1; + const end = id.end - 1; + const last = ids[i - 1]; + const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); + if (leadingText.length || id.prefix) { + children.push(leadingText + (id.prefix || ``)); + } + const source = rawExp.slice(start, end); + children.push( + createSimpleExpression( + id.name, + false, + { + start: advancePositionWithClone(node.loc.start, source, start), + end: advancePositionWithClone(node.loc.start, source, end), + source + }, + id.isConstant ? 3 : 0 + ) + ); + if (i === ids.length - 1 && end < rawExp.length) { + children.push(rawExp.slice(end)); + } + }); + let ret; + if (children.length) { + ret = createCompoundExpression(children, node.loc); + ret.ast = ast; + } else { + ret = node; + ret.constType = 3; + } + ret.identifiers = Object.keys(knownIds); + return ret; +} +function canPrefix(id) { + if (shared$2.isGloballyAllowed(id.name)) { + return false; + } + if (id.name === "require") { + return false; + } + return true; +} +function stringifyExpression(exp) { + if (shared$2.isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} +function isConst(type) { + return type === "setup-const" || type === "literal-const"; +} + +const transformIf = createStructuralDirectiveTransform( + /^(if|else|else-if)$/, + (node, dir, context) => { + return processIf$1(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf$1(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (context.prefixIdentifiers && dir.exp) { + dir.exp = processExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: node.loc, + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && sibling.type === 3) { + context.removeNode(sibling); + comments.unshift(sibling); + continue; + } + if (sibling && sibling.type === 2 && !sibling.content.trim().length) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 9) { + if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + let patchFlagText = shared$2.PatchFlagNames[64]; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${shared$2.PatchFlagNames[2048]}`; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + context.onError( + createCompilerError(34, loc) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + } + if (!exp) { + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 52, + arg.loc + ) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + transformBindShorthand(dir, context); + exp = dir.exp; + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = `${arg.content} || ""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = shared$2.camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const transformBindShorthand = (dir, context) => { + const arg = dir.arg; + const propName = shared$2.camelize(arg.content); + dir.exp = createSimpleExpression(propName, false, arg.loc); + { + dir.exp = processExpression(dir.exp, context); + } +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor$1(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + if (keyProp && keyProp.type === 7 && !keyProp.exp) { + transformBindShorthand(keyProp, context); + } + const keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + if (isTemplate) { + if (memo) { + memo.exp = processExpression( + memo.exp, + context + ); + } + if (keyProperty && keyProp.type !== 6) { + keyProperty.value = processExpression( + keyProperty.value, + context + ); + } + } + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor$1(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + if (context.prefixIdentifiers) { + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + } + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (context.prefixIdentifiers) { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + } + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (context.prefixIdentifiers) { + result.source = processExpression( + result.source, + context + ); + if (result.key) { + result.key = processExpression( + result.key, + context, + true + ); + } + if (result.index) { + result.index = processExpression( + result.index, + context, + true + ); + } + if (result.value) { + result.value = processExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + const slotProps = vSlot.exp; + if (context.prefixIdentifiers) { + slotProps && context.addIdentifiers(slotProps); + } + context.scopes.vSlot++; + return () => { + if (context.prefixIdentifiers) { + slotProps && context.removeIdentifiers(slotProps); + } + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + if (!context.ssr && context.prefixIdentifiers) { + hasDynamicSlots = hasScopeRef(node, context.identifiers); + } + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (prev.type !== 3) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${shared$2.slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} +function isNonWhitespaceContent(node) { + if (node.type !== 2 && node.type !== 12) + return true; + return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content); +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = shared$2.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(46, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + { + exp = isProp.exp = processExpression(exp, context); + } + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + { + const fromSetup = resolveSetupReference(tag, context); + if (fromSetup) { + return fromSetup; + } + const dotIndex = tag.indexOf("."); + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context); + if (ns) { + return ns + tag.slice(dotIndex); + } + } + } + if (context.selfName && shared$2.capitalize(shared$2.camelize(tag)) === context.selfName) { + context.helper(RESOLVE_COMPONENT); + context.components.add(tag + `__self`); + return toValidAssetId(tag, `component`); + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function resolveSetupReference(name, context) { + const bindings = context.bindingMetadata; + if (!bindings || bindings.__isScriptSetup === false) { + return; + } + const camelName = shared$2.camelize(name); + const PascalName = shared$2.capitalize(camelName); + const checkType = (type) => { + if (bindings[name] === type) { + return name; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const") || checkType("setup-reactive-const") || checkType("literal-const"); + if (fromConst) { + return context.inline ? ( + // in inline mode, const setup bindings (e.g. imports) can be used as-is + fromConst + ) : `$setup[${JSON.stringify(fromConst)}]`; + } + const fromMaybeRef = checkType("setup-let") || checkType("setup-ref") || checkType("setup-maybe-ref"); + if (fromMaybeRef) { + return context.inline ? ( + // setup scope bindings that may be refs need to be unrefed + `${context.helperString(UNREF)}(${fromMaybeRef})` + ) : `$setup[${JSON.stringify(fromMaybeRef)}]`; + } + const fromProps = checkType("props"); + if (fromProps) { + return `${context.helperString(UNREF)}(${context.inline ? "__props" : "$props"}[${JSON.stringify(fromProps)}])`; + } +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = shared$2.isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !shared$2.isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && shared$2.isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + if (value && context.inline) { + const binding = context.bindingMetadata[value.content]; + if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") { + isStatic = false; + properties.push( + createObjectProperty( + createSimpleExpression("ref_key", true), + createSimpleExpression(value.content, true, value.loc) + ) + ); + } + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushRefVForMarker(); + pushMergeArg(); + { + { + const hasOverridableKeys = mergeArgs.some((arg2) => { + if (arg2.type === 15) { + return arg2.properties.some(({ key }) => { + if (key.type !== 4 || !key.isStatic) { + return true; + } + return key.content !== "class" && key.content !== "style" && !shared$2.isOn(key.content); + }); + } else { + return true; + } + }); + if (hasOverridableKeys) { + checkCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context, + loc + ); + } + } + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (shared$2.isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!shared$2.isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || shared$2.isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + const fromSetup = resolveSetupReference("v-" + dir.name, context); + if (fromSetup) { + dirArgs.push(fromSetup); + } else { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet$1(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet$1(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = shared$2.camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = shared$2.camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + { + slotName = p.exp = processExpression(p.exp, context); + } + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = shared$2.camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(51, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + shared$2.toHandlerKey(shared$2.camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp, context); + const isInlineStatement = !(isMemberExp || isFnExpression(exp, context)); + const hasMultipleStatements = exp.content.includes(`;`); + if (context.prefixIdentifiers) { + isInlineStatement && context.addIdentifiers(`$event`); + exp = dir.exp = processExpression( + exp, + context, + false, + hasMultipleStatements + ); + isInlineStatement && context.removeIdentifiers(`$event`); + shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once + !context.inVOnce && // runtime constants don't need to be cached + // (this is analyzed by compileScript in SFC <script setup>) + !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component - + // we need to use the original function to preserve arity, + // e.g. <transition> relies on checking cb.length to determine + // transition end handling. Inline function is ok since its arity + // is preserved even when cached. + !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot) + // it must be passed fresh to avoid stale values. + !hasScopeRef(exp, context.identifiers); + if (shouldCache && isMemberExp) { + if (exp.type === 4) { + exp.content = `${exp.content} && ${exp.content}(...args)`; + } else { + exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`]; + } + } + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? ` +//@ts-ignore +` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${shared$2.PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true + /* isVNode */ + ); + } + }; + } +}; + +const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source; + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + const maybeRef = context.inline && (bindingType === "setup-let" || bindingType === "setup-ref" || bindingType === "setup-maybe-ref"); + if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) { + context.onError( + createCompilerError(43, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared$2.camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + if (maybeRef) { + if (bindingType === "setup-ref") { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event)` + ]); + } else { + const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`; + assignmentExp = createCompoundExpression([ + `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event : ${altAssignment})` + ]); + } + } else { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) { + props[1].value = context.cache(props[1].value); + } + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE$1 = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE$1.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + warnDeprecation( + "COMPILER_FILTERS", + context, + node.loc + ); + for (i = 0; i < filters.length; i++) { + expression = wrapFilter$1(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter$1(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node)) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...prefixIdentifiers ? [ + // order is important + trackVForSlotScopes, + transformExpression + ] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn, + bind: transformBind, + model: transformModel$1 + } + ]; +} +function baseCompile$1(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(createCompilerError(49)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(50)); + } + const resolvedOptions = shared$2.extend({}, options, { + prefixIdentifiers + }); + const ast = shared$2.isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers); + if (options.isTS) { + const { expressionPlugins } = options; + if (!expressionPlugins || !expressionPlugins.includes("typescript")) { + options.expressionPlugins = [...expressionPlugins || [], "typescript"]; + } + } + transform( + ast, + shared$2.extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: shared$2.extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate$3(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +compilerCore_cjs.generateCodeFrame = shared$2.generateCodeFrame; +compilerCore_cjs.BASE_TRANSITION = BASE_TRANSITION; +compilerCore_cjs.BindingTypes = BindingTypes; +compilerCore_cjs.CAMELIZE = CAMELIZE; +compilerCore_cjs.CAPITALIZE = CAPITALIZE; +compilerCore_cjs.CREATE_BLOCK = CREATE_BLOCK; +compilerCore_cjs.CREATE_COMMENT = CREATE_COMMENT; +compilerCore_cjs.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK; +compilerCore_cjs.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE; +compilerCore_cjs.CREATE_SLOTS = CREATE_SLOTS; +compilerCore_cjs.CREATE_STATIC = CREATE_STATIC; +compilerCore_cjs.CREATE_TEXT = CREATE_TEXT; +compilerCore_cjs.CREATE_VNODE = CREATE_VNODE; +compilerCore_cjs.CompilerDeprecationTypes = CompilerDeprecationTypes; +compilerCore_cjs.ConstantTypes = ConstantTypes; +compilerCore_cjs.ElementTypes = ElementTypes; +compilerCore_cjs.ErrorCodes = ErrorCodes; +compilerCore_cjs.FRAGMENT = FRAGMENT; +compilerCore_cjs.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS; +compilerCore_cjs.IS_MEMO_SAME = IS_MEMO_SAME; +compilerCore_cjs.IS_REF = IS_REF; +compilerCore_cjs.KEEP_ALIVE = KEEP_ALIVE; +compilerCore_cjs.MERGE_PROPS = MERGE_PROPS; +compilerCore_cjs.NORMALIZE_CLASS = NORMALIZE_CLASS; +compilerCore_cjs.NORMALIZE_PROPS = NORMALIZE_PROPS; +compilerCore_cjs.NORMALIZE_STYLE = NORMALIZE_STYLE; +compilerCore_cjs.Namespaces = Namespaces; +compilerCore_cjs.NodeTypes = NodeTypes; +compilerCore_cjs.OPEN_BLOCK = OPEN_BLOCK; +compilerCore_cjs.POP_SCOPE_ID = POP_SCOPE_ID; +compilerCore_cjs.PUSH_SCOPE_ID = PUSH_SCOPE_ID; +compilerCore_cjs.RENDER_LIST = RENDER_LIST; +compilerCore_cjs.RENDER_SLOT = RENDER_SLOT; +compilerCore_cjs.RESOLVE_COMPONENT = RESOLVE_COMPONENT; +compilerCore_cjs.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE; +compilerCore_cjs.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT; +compilerCore_cjs.RESOLVE_FILTER = RESOLVE_FILTER; +compilerCore_cjs.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING; +compilerCore_cjs.SUSPENSE = SUSPENSE; +compilerCore_cjs.TELEPORT = TELEPORT; +compilerCore_cjs.TO_DISPLAY_STRING = TO_DISPLAY_STRING; +compilerCore_cjs.TO_HANDLERS = TO_HANDLERS; +compilerCore_cjs.TO_HANDLER_KEY = TO_HANDLER_KEY; +compilerCore_cjs.TS_NODE_TYPES = TS_NODE_TYPES; +compilerCore_cjs.UNREF = UNREF; +compilerCore_cjs.WITH_CTX = WITH_CTX; +compilerCore_cjs.WITH_DIRECTIVES = WITH_DIRECTIVES; +compilerCore_cjs.WITH_MEMO = WITH_MEMO; +compilerCore_cjs.advancePositionWithClone = advancePositionWithClone; +compilerCore_cjs.advancePositionWithMutation = advancePositionWithMutation; +compilerCore_cjs.assert = assert; +compilerCore_cjs.baseCompile = baseCompile$1; +compilerCore_cjs.baseParse = baseParse; +compilerCore_cjs.buildDirectiveArgs = buildDirectiveArgs; +compilerCore_cjs.buildProps = buildProps; +compilerCore_cjs.buildSlots = buildSlots; +compilerCore_cjs.checkCompatEnabled = checkCompatEnabled; +compilerCore_cjs.convertToBlock = convertToBlock; +compilerCore_cjs.createArrayExpression = createArrayExpression; +compilerCore_cjs.createAssignmentExpression = createAssignmentExpression; +compilerCore_cjs.createBlockStatement = createBlockStatement; +compilerCore_cjs.createCacheExpression = createCacheExpression; +compilerCore_cjs.createCallExpression = createCallExpression; +compilerCore_cjs.createCompilerError = createCompilerError; +compilerCore_cjs.createCompoundExpression = createCompoundExpression; +compilerCore_cjs.createConditionalExpression = createConditionalExpression; +compilerCore_cjs.createForLoopParams = createForLoopParams; +compilerCore_cjs.createFunctionExpression = createFunctionExpression; +compilerCore_cjs.createIfStatement = createIfStatement; +compilerCore_cjs.createInterpolation = createInterpolation; +compilerCore_cjs.createObjectExpression = createObjectExpression; +compilerCore_cjs.createObjectProperty = createObjectProperty; +compilerCore_cjs.createReturnStatement = createReturnStatement; +compilerCore_cjs.createRoot = createRoot; +compilerCore_cjs.createSequenceExpression = createSequenceExpression; +compilerCore_cjs.createSimpleExpression = createSimpleExpression; +compilerCore_cjs.createStructuralDirectiveTransform = createStructuralDirectiveTransform; +compilerCore_cjs.createTemplateLiteral = createTemplateLiteral; +compilerCore_cjs.createTransformContext = createTransformContext; +compilerCore_cjs.createVNodeCall = createVNodeCall; +compilerCore_cjs.errorMessages = errorMessages; +compilerCore_cjs.extractIdentifiers = extractIdentifiers; +compilerCore_cjs.findDir = findDir; +compilerCore_cjs.findProp = findProp; +compilerCore_cjs.forAliasRE = forAliasRE$1; +compilerCore_cjs.generate = generate$3; +compilerCore_cjs.getBaseTransformPreset = getBaseTransformPreset; +compilerCore_cjs.getConstantType = getConstantType; +compilerCore_cjs.getMemoedVNodeCall = getMemoedVNodeCall; +compilerCore_cjs.getVNodeBlockHelper = getVNodeBlockHelper; +compilerCore_cjs.getVNodeHelper = getVNodeHelper; +compilerCore_cjs.hasDynamicKeyVBind = hasDynamicKeyVBind; +compilerCore_cjs.hasScopeRef = hasScopeRef; +compilerCore_cjs.helperNameMap = helperNameMap; +compilerCore_cjs.injectProp = injectProp; +compilerCore_cjs.isCoreComponent = isCoreComponent; +compilerCore_cjs.isFnExpression = isFnExpression; +compilerCore_cjs.isFnExpressionBrowser = isFnExpressionBrowser; +compilerCore_cjs.isFnExpressionNode = isFnExpressionNode; +compilerCore_cjs.isFunctionType = isFunctionType; +compilerCore_cjs.isInDestructureAssignment = isInDestructureAssignment; +compilerCore_cjs.isInNewExpression = isInNewExpression; +compilerCore_cjs.isMemberExpression = isMemberExpression; +compilerCore_cjs.isMemberExpressionBrowser = isMemberExpressionBrowser; +compilerCore_cjs.isMemberExpressionNode = isMemberExpressionNode; +compilerCore_cjs.isReferencedIdentifier = isReferencedIdentifier; +compilerCore_cjs.isSimpleIdentifier = isSimpleIdentifier; +compilerCore_cjs.isSlotOutlet = isSlotOutlet; +compilerCore_cjs.isStaticArgOf = isStaticArgOf; +compilerCore_cjs.isStaticExp = isStaticExp; +compilerCore_cjs.isStaticProperty = isStaticProperty; +compilerCore_cjs.isStaticPropertyKey = isStaticPropertyKey; +compilerCore_cjs.isTemplateNode = isTemplateNode; +compilerCore_cjs.isText = isText$1; +compilerCore_cjs.isVSlot = isVSlot; +compilerCore_cjs.locStub = locStub; +compilerCore_cjs.noopDirectiveTransform = noopDirectiveTransform; +compilerCore_cjs.processExpression = processExpression; +compilerCore_cjs.processFor = processFor$1; +compilerCore_cjs.processIf = processIf$1; +compilerCore_cjs.processSlotOutlet = processSlotOutlet$1; +compilerCore_cjs.registerRuntimeHelpers = registerRuntimeHelpers; +compilerCore_cjs.resolveComponentType = resolveComponentType; +compilerCore_cjs.stringifyExpression = stringifyExpression; +compilerCore_cjs.toValidAssetId = toValidAssetId; +compilerCore_cjs.trackSlotScopes = trackSlotScopes; +compilerCore_cjs.trackVForSlotScopes = trackVForSlotScopes; +compilerCore_cjs.transform = transform; +compilerCore_cjs.transformBind = transformBind; +compilerCore_cjs.transformElement = transformElement; +compilerCore_cjs.transformExpression = transformExpression; +compilerCore_cjs.transformModel = transformModel$1; +compilerCore_cjs.transformOn = transformOn; +compilerCore_cjs.traverseNode = traverseNode; +compilerCore_cjs.unwrapTSNode = unwrapTSNode; +compilerCore_cjs.walkBlockDeclarations = walkBlockDeclarations; +compilerCore_cjs.walkFunctionParams = walkFunctionParams; +compilerCore_cjs.walkIdentifiers = walkIdentifiers$1; +compilerCore_cjs.warnDeprecation = warnDeprecation; + +/** +* @vue/compiler-dom v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ + +(function (exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + var compilerCore = compilerCore_cjs; + var shared = require$$1$1; + + const V_MODEL_RADIO = Symbol(`vModelRadio` ); + const V_MODEL_CHECKBOX = Symbol( + `vModelCheckbox` + ); + const V_MODEL_TEXT = Symbol(`vModelText` ); + const V_MODEL_SELECT = Symbol( + `vModelSelect` + ); + const V_MODEL_DYNAMIC = Symbol( + `vModelDynamic` + ); + const V_ON_WITH_MODIFIERS = Symbol( + `vOnModifiersGuard` + ); + const V_ON_WITH_KEYS = Symbol( + `vOnKeysGuard` + ); + const V_SHOW = Symbol(`vShow` ); + const TRANSITION = Symbol(`Transition` ); + const TRANSITION_GROUP = Symbol( + `TransitionGroup` + ); + compilerCore.registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` + }); + + const parserOptions = { + parseMode: "html", + isVoidTag: shared.isVoidTag, + isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + decodeEntities: void 0, + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } + }; + + const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: compilerCore.createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } + }; + const parseInlineCSS = (cssText, loc) => { + const normalized = shared.parseStringStyle(cssText); + return compilerCore.createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); + }; + + function createDOMCompilerError(code, loc) { + return compilerCore.createCompilerError( + code, + loc, + DOMErrorMessages + ); + } + const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 53, + "53": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 54, + "54": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 55, + "55": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 56, + "56": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 57, + "57": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 58, + "58": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 59, + "59": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 60, + "60": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 61, + "61": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 62, + "62": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 63, + "63": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 64, + "64": "__EXTEND_POINT__" + }; + const DOMErrorMessages = { + [53]: `v-html is missing expression.`, + [54]: `v-html will override element children.`, + [55]: `v-text is missing expression.`, + [56]: `v-text will override element children.`, + [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [58]: `v-model argument is not supported on plain elements.`, + [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [61]: `v-show is missing expression.`, + [62]: `<Transition> expects exactly one child element or component.`, + [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` + }; + + const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(53, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(54, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`innerHTML`, true, loc), + exp || compilerCore.createSimpleExpression("", true) + ) + ] + }; + }; + + const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(55, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(56, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`textContent`, true), + exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression( + context.helperString(compilerCore.TO_DISPLAY_STRING), + [exp], + loc + ) : compilerCore.createSimpleExpression("", true) + ) + ] + }; + }; + + const transformModel = (dir, node, context) => { + const baseResult = compilerCore.transformModel(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 58, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = compilerCore.findDir(node, "bind"); + if (value && compilerCore.isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 60, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = compilerCore.findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 59, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (compilerCore.hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 57, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; + }; + + const isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`); + const isNonKeyModifier = /* @__PURE__ */ shared.makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` + ); + const maybeKeyModifier = /* @__PURE__ */ shared.makeMap("left,right"); + const isKeyboardEvent = /* @__PURE__ */ shared.makeMap( + `onkeyup,onkeydown,onkeypress`, + true + ); + const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && compilerCore.checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (compilerCore.isStaticExp(key)) { + if (isKeyboardEvent(key.content)) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; + }; + const transformClick = (key, event) => { + const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; + }; + const transformOn = (dir, node, context) => { + return compilerCore.transformOn(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content))) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join(""); + key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [compilerCore.createObjectProperty(key, handlerExp)] + }; + }); + }; + + const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(61, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; + }; + + const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 62, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } + }; + function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim()) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); + } + + const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g; + const stringifyStatic = (children, context, parent) => { + if (context.scopes.vSlot > 0) { + return; + } + const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 20; + let nc = 0; + let ec = 0; + const currentChunk = []; + const stringifyCurrentChunk = (currentIndex) => { + if (nc >= 20 || ec >= 5) { + const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [ + JSON.stringify( + currentChunk.map((node) => stringifyNode(node, context)).join("") + ).replace(expReplaceRE, `" + $1 + "`), + // the 2nd argument indicates the number of DOM nodes this static vnode + // will insert / hydrate + String(currentChunk.length) + ]); + if (isParentCached) { + parent.codegenNode.children.value = compilerCore.createArrayExpression([staticCall]); + } else { + currentChunk[0].codegenNode.value = staticCall; + if (currentChunk.length > 1) { + const deleteCount = currentChunk.length - 1; + children.splice(currentIndex - currentChunk.length + 1, deleteCount); + const cacheIndex = context.cached.indexOf( + currentChunk[currentChunk.length - 1].codegenNode + ); + if (cacheIndex > -1) { + for (let i2 = cacheIndex; i2 < context.cached.length; i2++) { + const c = context.cached[i2]; + if (c) c.index -= deleteCount; + } + context.cached.splice(cacheIndex - deleteCount + 1, deleteCount); + } + return deleteCount; + } + } + } + return 0; + }; + let i = 0; + for (; i < children.length; i++) { + const child = children[i]; + const isCached = isParentCached || getCachedNode(child); + if (isCached) { + const result = analyzeNode(child); + if (result) { + nc += result[0]; + ec += result[1]; + currentChunk.push(child); + continue; + } + } + i -= stringifyCurrentChunk(i); + nc = 0; + ec = 0; + currentChunk.length = 0; + } + stringifyCurrentChunk(i); + }; + const getCachedNode = (node) => { + if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) { + return node.codegenNode; + } + }; + const dataAriaRE = /^(data|aria)-/; + const isStringifiableAttr = (name, ns) => { + return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : false) || dataAriaRE.test(name); + }; + const isNonStringifiable = /* @__PURE__ */ shared.makeMap( + `caption,thead,tr,th,tbody,td,tfoot,colgroup,col` + ); + function analyzeNode(node) { + if (node.type === 1 && isNonStringifiable(node.tag)) { + return false; + } + if (node.type === 12) { + return [1, 0]; + } + let nc = 1; + let ec = node.props.length > 0 ? 1 : 0; + let bailed = false; + const bail = () => { + bailed = true; + return false; + }; + function walk(node2) { + const isOptionTag = node2.tag === "option" && node2.ns === 0; + for (let i = 0; i < node2.props.length; i++) { + const p = node2.props[i]; + if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) { + return bail(); + } + if (p.type === 7 && p.name === "bind") { + if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) { + return bail(); + } + if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) { + return bail(); + } + if (isOptionTag && compilerCore.isStaticArgOf(p.arg, "value") && p.exp && p.exp.ast && p.exp.ast.type !== "StringLiteral") { + return bail(); + } + } + } + for (let i = 0; i < node2.children.length; i++) { + nc++; + const child = node2.children[i]; + if (child.type === 1) { + if (child.props.length > 0) { + ec++; + } + walk(child); + if (bailed) { + return false; + } + } + } + return true; + } + return walk(node) ? [nc, ec] : false; + } + function stringifyNode(node, context) { + if (shared.isString(node)) { + return node; + } + if (shared.isSymbol(node)) { + return ``; + } + switch (node.type) { + case 1: + return stringifyElement(node, context); + case 2: + return shared.escapeHtml(node.content); + case 3: + return `<!--${shared.escapeHtml(node.content)}-->`; + case 5: + return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content))); + case 8: + return shared.escapeHtml(evaluateConstant(node)); + case 12: + return stringifyNode(node.content, context); + default: + return ""; + } + } + function stringifyElement(node, context) { + let res = `<${node.tag}`; + let innerHTML = ""; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + res += ` ${p.name}`; + if (p.value) { + res += `="${shared.escapeHtml(p.value.content)}"`; + } + } else if (p.type === 7) { + if (p.name === "bind") { + const exp = p.exp; + if (exp.content[0] === "_") { + res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`; + continue; + } + if (shared.isBooleanAttr(p.arg.content) && exp.content === "false") { + continue; + } + let evaluated = evaluateConstant(exp); + if (evaluated != null) { + const arg = p.arg && p.arg.content; + if (arg === "class") { + evaluated = shared.normalizeClass(evaluated); + } else if (arg === "style") { + evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated)); + } + res += ` ${p.arg.content}="${shared.escapeHtml( + evaluated + )}"`; + } + } else if (p.name === "html") { + innerHTML = evaluateConstant(p.exp); + } else if (p.name === "text") { + innerHTML = shared.escapeHtml( + shared.toDisplayString(evaluateConstant(p.exp)) + ); + } + } + } + if (context.scopeId) { + res += ` ${context.scopeId}`; + } + res += `>`; + if (innerHTML) { + res += innerHTML; + } else { + for (let i = 0; i < node.children.length; i++) { + res += stringifyNode(node.children[i], context); + } + } + if (!shared.isVoidTag(node.tag)) { + res += `</${node.tag}>`; + } + return res; + } + function evaluateConstant(exp) { + if (exp.type === 4) { + return new Function(`return (${exp.content})`)(); + } else { + let res = ``; + exp.children.forEach((c) => { + if (shared.isString(c) || shared.isSymbol(c)) { + return; + } + if (c.type === 2) { + res += c.content; + } else if (c.type === 5) { + res += shared.toDisplayString(evaluateConstant(c.content)); + } else { + res += evaluateConstant(c); + } + }); + return res; + } + } + + const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 63, + node.loc + ) + ); + context.removeNode(); + } + }; + + function isValidHTMLNesting(parent, child) { + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; + } + const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); + const emptySet = /* @__PURE__ */ new Set([]); + const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet + }; + const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) + }; + const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) + }; + const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings + }; + + const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } + }; + + const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] + ]; + const DOMDirectiveTransforms = { + cloak: compilerCore.noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow + }; + function compile(src, options = {}) { + return compilerCore.baseCompile( + src, + shared.extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: shared.extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: stringifyStatic + }) + ); + } + function parse(template, options = {}) { + return compilerCore.baseParse(template, shared.extend({}, parserOptions, options)); + } + + exports.DOMDirectiveTransforms = DOMDirectiveTransforms; + exports.DOMErrorCodes = DOMErrorCodes; + exports.DOMErrorMessages = DOMErrorMessages; + exports.DOMNodeTransforms = DOMNodeTransforms; + exports.TRANSITION = TRANSITION; + exports.TRANSITION_GROUP = TRANSITION_GROUP; + exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX; + exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC; + exports.V_MODEL_RADIO = V_MODEL_RADIO; + exports.V_MODEL_SELECT = V_MODEL_SELECT; + exports.V_MODEL_TEXT = V_MODEL_TEXT; + exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS; + exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS; + exports.V_SHOW = V_SHOW; + exports.compile = compile; + exports.createDOMCompilerError = createDOMCompilerError; + exports.parse = parse; + exports.parserOptions = parserOptions; + exports.transformStyle = transformStyle; + Object.keys(compilerCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = compilerCore[k]; + }); +} (compilerDom_cjs)); + +var common$2 = {}; + +var scriptSetupRanges = {}; + +var hasRequiredScriptSetupRanges; + +function requireScriptSetupRanges () { + if (hasRequiredScriptSetupRanges) return scriptSetupRanges; + hasRequiredScriptSetupRanges = 1; + Object.defineProperty(scriptSetupRanges, "__esModule", { value: true }); + scriptSetupRanges.parseScriptSetupRanges = parseScriptSetupRanges; + scriptSetupRanges.parseBindingRanges = parseBindingRanges; + scriptSetupRanges.findBindingVars = findBindingVars; + scriptSetupRanges.getStartEnd = getStartEnd; + scriptSetupRanges.getNodeText = getNodeText; + const common_1 = requireCommon(); + function parseScriptSetupRanges(ts, ast, vueCompilerOptions) { + let foundNonImportExportNode = false; + let importSectionEndOffset = 0; + const props = {}; + const slots = {}; + const emits = {}; + const expose = {}; + const options = {}; + const cssModules = []; + const templateRefs = []; + const definePropProposalA = vueCompilerOptions.experimentalDefinePropProposal === 'kevinEdition' || ast.text.trimStart().startsWith('// @experimentalDefinePropProposal=kevinEdition'); + const definePropProposalB = vueCompilerOptions.experimentalDefinePropProposal === 'johnsonEdition' || ast.text.trimStart().startsWith('// @experimentalDefinePropProposal=johnsonEdition'); + const defineProp = []; + const text = ast.text; + const leadingCommentEndOffset = ts.getLeadingCommentRanges(text, 0)?.reverse()[0].end ?? 0; + const importComponentNames = new Set(); + let bindings = parseBindingRanges(ts, ast); + ts.forEachChild(ast, node => { + const isTypeExport = (ts.isTypeAliasDeclaration(node) || ts.isInterfaceDeclaration(node)) && node.modifiers?.some(mod => mod.kind === ts.SyntaxKind.ExportKeyword); + if (!foundNonImportExportNode + && !ts.isImportDeclaration(node) + && !isTypeExport + && !ts.isEmptyStatement(node) + // fix https://github.com/vuejs/language-tools/issues/1223 + && !ts.isImportEqualsDeclaration(node)) { + const commentRanges = ts.getLeadingCommentRanges(text, node.pos); + if (commentRanges?.length) { + const commentRange = commentRanges.sort((a, b) => a.pos - b.pos)[0]; + importSectionEndOffset = commentRange.pos; + } + else { + importSectionEndOffset = getStartEnd(ts, node, ast).start; + } + foundNonImportExportNode = true; + } + if (ts.isImportDeclaration(node) + && node.importClause?.name + && !node.importClause.isTypeOnly) { + const moduleName = getNodeText(ts, node.moduleSpecifier, ast).slice(1, -1); + if (vueCompilerOptions.extensions.some(ext => moduleName.endsWith(ext))) { + importComponentNames.add(getNodeText(ts, node.importClause.name, ast)); + } + } + }); + ts.forEachChild(ast, child => visitNode(child, [ast])); + const templateRefNames = new Set(templateRefs.map(ref => ref.name)); + bindings = bindings.filter(range => { + const name = text.substring(range.start, range.end); + return !templateRefNames.has(name); + }); + return { + leadingCommentEndOffset, + importSectionEndOffset, + bindings, + importComponentNames, + props, + slots, + emits, + expose, + options, + cssModules, + defineProp, + templateRefs, + }; + function _getStartEnd(node) { + return getStartEnd(ts, node, ast); + } + function parseDefineFunction(node) { + return { + ..._getStartEnd(node), + arg: node.arguments.length ? _getStartEnd(node.arguments[0]) : undefined, + typeArg: node.typeArguments?.length ? _getStartEnd(node.typeArguments[0]) : undefined, + }; + } + function visitNode(node, parents) { + const parent = parents[parents.length - 1]; + if (ts.isCallExpression(node) + && ts.isIdentifier(node.expression)) { + const callText = getNodeText(ts, node.expression, ast); + if (vueCompilerOptions.macros.defineModel.includes(callText)) { + let localName; + let propName; + let options; + if (ts.isVariableDeclaration(parent) && + ts.isIdentifier(parent.name)) { + localName = _getStartEnd(parent.name); + } + if (node.arguments.length >= 2) { + propName = _getStartEnd(node.arguments[0]); + options = node.arguments[1]; + } + else if (node.arguments.length >= 1) { + if (ts.isStringLiteral(node.arguments[0])) { + propName = _getStartEnd(node.arguments[0]); + } + else { + options = node.arguments[0]; + } + } + let runtimeType; + let defaultValue; + let required = false; + if (options && ts.isObjectLiteralExpression(options)) { + for (const property of options.properties) { + if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name)) { + continue; + } + const text = getNodeText(ts, property.name, ast); + if (text === 'type') { + runtimeType = _getStartEnd(property.initializer); + } + else if (text === 'default') { + defaultValue = _getStartEnd(property.initializer); + } + else if (text === 'required' && property.initializer.kind === ts.SyntaxKind.TrueKeyword) { + required = true; + } + } + } + defineProp.push({ + localName, + name: propName, + type: node.typeArguments?.length ? _getStartEnd(node.typeArguments[0]) : undefined, + modifierType: node.typeArguments && node.typeArguments?.length >= 2 ? _getStartEnd(node.typeArguments[1]) : undefined, + runtimeType, + defaultValue, + required, + isModel: true, + }); + } + else if (callText === 'defineProp') { + let localName; + let propName; + let options; + if (ts.isVariableDeclaration(parent) && + ts.isIdentifier(parent.name)) { + localName = _getStartEnd(parent.name); + } + let runtimeType; + let defaultValue; + let required = false; + if (definePropProposalA) { + if (node.arguments.length >= 2) { + options = node.arguments[1]; + } + if (node.arguments.length >= 1) { + propName = _getStartEnd(node.arguments[0]); + } + if (options && ts.isObjectLiteralExpression(options)) { + for (const property of options.properties) { + if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name)) { + continue; + } + const text = getNodeText(ts, property.name, ast); + if (text === 'type') { + runtimeType = _getStartEnd(property.initializer); + } + else if (text === 'default') { + defaultValue = _getStartEnd(property.initializer); + } + else if (text === 'required' && property.initializer.kind === ts.SyntaxKind.TrueKeyword) { + required = true; + } + } + } + } + else if (definePropProposalB) { + if (node.arguments.length >= 3) { + options = node.arguments[2]; + } + if (node.arguments.length >= 2) { + if (node.arguments[1].kind === ts.SyntaxKind.TrueKeyword) { + required = true; + } + } + if (node.arguments.length >= 1) { + defaultValue = _getStartEnd(node.arguments[0]); + } + if (options && ts.isObjectLiteralExpression(options)) { + for (const property of options.properties) { + if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name)) { + continue; + } + const text = getNodeText(ts, property.name, ast); + if (text === 'type') { + runtimeType = _getStartEnd(property.initializer); + } + } + } + } + defineProp.push({ + localName, + name: propName, + type: node.typeArguments?.length ? _getStartEnd(node.typeArguments[0]) : undefined, + runtimeType, + defaultValue, + required, + }); + } + else if (vueCompilerOptions.macros.defineSlots.includes(callText)) { + slots.define = parseDefineFunction(node); + if (ts.isVariableDeclaration(parent)) { + if (ts.isIdentifier(parent.name)) { + slots.name = getNodeText(ts, parent.name, ast); + } + else { + slots.isObjectBindingPattern = ts.isObjectBindingPattern(parent.name); + } + } + } + else if (vueCompilerOptions.macros.defineEmits.includes(callText)) { + emits.define = parseDefineFunction(node); + if (ts.isVariableDeclaration(parent)) { + emits.name = getNodeText(ts, parent.name, ast); + } + if (node.typeArguments?.length && ts.isTypeLiteralNode(node.typeArguments[0]) && node.typeArguments[0].members.at(0)) { + for (const member of node.typeArguments[0].members) { + if (ts.isCallSignatureDeclaration(member) && member.parameters[0].type && ts.isUnionTypeNode(member.parameters[0].type)) { + emits.define.hasUnionTypeArg = true; + return; + } + } + } + } + else if (vueCompilerOptions.macros.defineExpose.includes(callText)) { + expose.define = parseDefineFunction(node); + } + else if (vueCompilerOptions.macros.defineProps.includes(callText)) { + if (ts.isVariableDeclaration(parent)) { + if (ts.isObjectBindingPattern(parent.name)) { + props.destructured = (0, common_1.collectVars)(ts, parent.name, ast, [], false); + } + else { + props.name = getNodeText(ts, parent.name, ast); + } + } + let statementRange; + for (let i = parents.length - 1; i >= 0; i--) { + if (ts.isStatement(parents[i])) { + const statement = parents[i]; + ts.forEachChild(statement, child => { + const range = _getStartEnd(child); + statementRange ??= range; + statementRange.end = range.end; + }); + break; + } + } + if (!statementRange) { + statementRange = _getStartEnd(node); + } + props.define = { + ...parseDefineFunction(node), + statement: statementRange, + }; + if (node.arguments.length) { + props.define.arg = _getStartEnd(node.arguments[0]); + } + if (node.typeArguments?.length) { + props.define.typeArg = _getStartEnd(node.typeArguments[0]); + } + } + else if (vueCompilerOptions.macros.withDefaults.includes(callText)) { + props.withDefaults = _getStartEnd(node); + if (node.arguments.length >= 2) { + const arg = node.arguments[1]; + props.withDefaults.arg = _getStartEnd(arg); + } + if (ts.isVariableDeclaration(parent)) { + props.name = getNodeText(ts, parent.name, ast); + } + } + else if (vueCompilerOptions.macros.defineOptions.includes(callText)) { + if (node.arguments.length && ts.isObjectLiteralExpression(node.arguments[0])) { + const obj = node.arguments[0]; + ts.forEachChild(obj, node => { + if (ts.isPropertyAssignment(node) && ts.isIdentifier(node.name)) { + const name = getNodeText(ts, node.name, ast); + if (name === 'inheritAttrs') { + options.inheritAttrs = getNodeText(ts, node.initializer, ast); + } + } + }); + for (const prop of node.arguments[0].properties) { + if ((ts.isPropertyAssignment(prop)) && getNodeText(ts, prop.name, ast) === 'name' && ts.isStringLiteral(prop.initializer)) { + options.name = prop.initializer.text; + } + } + } + } + else if (vueCompilerOptions.composibles.useTemplateRef.includes(callText) && node.arguments.length && !node.typeArguments?.length) { + const define = parseDefineFunction(node); + define.arg = _getStartEnd(node.arguments[0]); + let name; + if (ts.isVariableDeclaration(parent)) { + name = getNodeText(ts, parent.name, ast); + } + templateRefs.push({ + name, + define + }); + } + else if (vueCompilerOptions.composibles.useCssModule.includes(callText)) { + const module = { + exp: _getStartEnd(node) + }; + if (node.arguments.length) { + module.arg = _getStartEnd(node.arguments[0]); + } + cssModules.push(module); + } + } + ts.forEachChild(node, child => { + parents.push(node); + visitNode(child, parents); + parents.pop(); + }); + } + } + function parseBindingRanges(ts, sourceFile) { + const bindings = []; + ts.forEachChild(sourceFile, node => { + if (ts.isVariableStatement(node)) { + for (const node_2 of node.declarationList.declarations) { + const vars = _findBindingVars(node_2.name); + for (const _var of vars) { + bindings.push(_var); + } + } + } + else if (ts.isFunctionDeclaration(node)) { + if (node.name && ts.isIdentifier(node.name)) { + bindings.push(_getStartEnd(node.name)); + } + } + else if (ts.isClassDeclaration(node)) { + if (node.name) { + bindings.push(_getStartEnd(node.name)); + } + } + else if (ts.isEnumDeclaration(node)) { + bindings.push(_getStartEnd(node.name)); + } + if (ts.isImportDeclaration(node)) { + if (node.importClause && !node.importClause.isTypeOnly) { + if (node.importClause.name) { + bindings.push(_getStartEnd(node.importClause.name)); + } + if (node.importClause.namedBindings) { + if (ts.isNamedImports(node.importClause.namedBindings)) { + for (const element of node.importClause.namedBindings.elements) { + if (element.isTypeOnly) { + continue; + } + bindings.push(_getStartEnd(element.name)); + } + } + else if (ts.isNamespaceImport(node.importClause.namedBindings)) { + bindings.push(_getStartEnd(node.importClause.namedBindings.name)); + } + } + } + } + }); + return bindings; + function _getStartEnd(node) { + return getStartEnd(ts, node, sourceFile); + } + function _findBindingVars(left) { + return findBindingVars(ts, left, sourceFile); + } + } + function findBindingVars(ts, left, sourceFile) { + const vars = []; + worker(left); + return vars; + function worker(_node) { + if (ts.isIdentifier(_node)) { + vars.push(getStartEnd(ts, _node, sourceFile)); + } + // { ? } = ... + // [ ? ] = ... + else if (ts.isObjectBindingPattern(_node) || ts.isArrayBindingPattern(_node)) { + for (const property of _node.elements) { + if (ts.isBindingElement(property)) { + worker(property.name); + } + } + } + // { foo: ? } = ... + else if (ts.isPropertyAssignment(_node)) { + worker(_node.initializer); + } + // { foo } = ... + else if (ts.isShorthandPropertyAssignment(_node)) { + vars.push(getStartEnd(ts, _node.name, sourceFile)); + } + // { ...? } = ... + // [ ...? ] = ... + else if (ts.isSpreadAssignment(_node) || ts.isSpreadElement(_node)) { + worker(_node.expression); + } + } + } + function getStartEnd(ts, node, sourceFile) { + return { + start: ts.getTokenPosOfNode(node, sourceFile), + end: node.end, + }; + } + function getNodeText(ts, node, sourceFile) { + const { start, end } = getStartEnd(ts, node, sourceFile); + return sourceFile.text.substring(start, end); + } + + return scriptSetupRanges; +} + +var hasRequiredCommon; + +function requireCommon () { + if (hasRequiredCommon) return common$2; + hasRequiredCommon = 1; + (function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.variableNameRegex = exports.combineLastMapping = exports.endOfLine = exports.newLine = void 0; + exports.conditionWrapWith = conditionWrapWith; + exports.wrapWith = wrapWith; + exports.collectVars = collectVars; + exports.collectIdentifiers = collectIdentifiers; + exports.createTsAst = createTsAst; + exports.generateSfcBlockSection = generateSfcBlockSection; + const scriptSetupRanges_1 = requireScriptSetupRanges(); + exports.newLine = '\n'; + exports.endOfLine = `;${exports.newLine}`; + exports.combineLastMapping = { __combineLastMapping: true }; + exports.variableNameRegex = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/; + function* conditionWrapWith(condition, startOffset, endOffset, features, ...wrapCodes) { + if (condition) { + yield* wrapWith(startOffset, endOffset, features, ...wrapCodes); + } + else { + for (const wrapCode of wrapCodes) { + yield wrapCode; + } + } + } + function* wrapWith(startOffset, endOffset, features, ...wrapCodes) { + yield ['', 'template', startOffset, features]; + let offset = 1; + for (const wrapCode of wrapCodes) { + if (typeof wrapCode !== 'string') { + offset++; + } + yield wrapCode; + } + yield ['', 'template', endOffset, { __combineOffsetMapping: offset }]; + } + function collectVars(ts, node, ast, results = [], includesRest = true) { + const identifiers = collectIdentifiers(ts, node, [], includesRest); + for (const id of identifiers) { + results.push((0, scriptSetupRanges_1.getNodeText)(ts, id, ast)); + } + return results; + } + function collectIdentifiers(ts, node, results = [], includesRest = true) { + if (ts.isIdentifier(node)) { + results.push(node); + } + else if (ts.isObjectBindingPattern(node)) { + for (const el of node.elements) { + if (includesRest || !el.dotDotDotToken) { + collectIdentifiers(ts, el.name, results, includesRest); + } + } + } + else if (ts.isArrayBindingPattern(node)) { + for (const el of node.elements) { + if (ts.isBindingElement(el)) { + collectIdentifiers(ts, el.name, results, includesRest); + } + } + } + else { + ts.forEachChild(node, node => collectIdentifiers(ts, node, results, includesRest)); + } + return results; + } + function createTsAst(ts, astHolder, text) { + if (astHolder.__volar_ast_text !== text) { + astHolder.__volar_ast_text = text; + astHolder.__volar_ast = ts.createSourceFile('/a.ts', text, 99); + } + return astHolder.__volar_ast; + } + function generateSfcBlockSection(block, start, end, features) { + return [ + block.content.substring(start, end), + block.name, + start, + features, + ]; + } + + } (common$2)); + return common$2; +} + +var context$1 = {}; + +Object.defineProperty(context$1, "__esModule", { value: true }); +context$1.createTemplateCodegenContext = createTemplateCodegenContext; +const common_1$e = requireCommon(); +const _codeFeatures = { + all: { + verification: true, + completion: true, + semantic: true, + navigation: true, + }, + verification: { + verification: true, + }, + completion: { + completion: true, + }, + additionalCompletion: { + completion: { isAdditional: true }, + }, + navigation: { + navigation: true, + }, + navigationWithoutRename: { + navigation: { + shouldRename() { + return false; + }, + }, + }, + navigationAndCompletion: { + navigation: true, + completion: true, + }, + navigationAndAdditionalCompletion: { + navigation: true, + completion: { isAdditional: true }, + }, + withoutHighlight: { + semantic: { shouldHighlight: () => false }, + verification: true, + navigation: true, + completion: true, + }, + withoutHighlightAndCompletion: { + semantic: { shouldHighlight: () => false }, + verification: true, + navigation: true, + }, + withoutHighlightAndCompletionAndNavigation: { + semantic: { shouldHighlight: () => false }, + verification: true, + }, +}; +function createTemplateCodegenContext(options) { + let ignoredError = false; + let expectErrorToken; + let variableId = 0; + const codeFeatures = new Proxy(_codeFeatures, { + get(target, key) { + const data = target[key]; + if (data.verification) { + if (ignoredError) { + return { + ...data, + verification: false, + }; + } + if (expectErrorToken) { + const token = expectErrorToken; + if (typeof data.verification !== 'object' || !data.verification.shouldReport) { + return { + ...data, + verification: { + shouldReport: () => { + token.errors++; + return false; + }, + }, + }; + } + } + } + return data; + }, + }); + const localVars = new Map(); + const accessExternalVariables = new Map(); + const slots = []; + const dynamicSlots = []; + const hasSlotElements = new Set(); + const blockConditions = []; + const usedComponentCtxVars = new Set(); + const scopedClasses = []; + const emptyClassOffsets = []; + const inlayHints = []; + const templateRefs = new Map(); + return { + slots, + dynamicSlots, + codeFeatures, + accessExternalVariables, + hasSlotElements, + blockConditions, + usedComponentCtxVars, + scopedClasses, + emptyClassOffsets, + inlayHints, + hasSlot: false, + inheritedAttrVars: new Set(), + templateRefs, + singleRootNode: undefined, + accessExternalVariable(name, offset) { + let arr = accessExternalVariables.get(name); + if (!arr) { + accessExternalVariables.set(name, arr = new Set()); + } + if (offset !== undefined) { + arr.add(offset); + } + }, + hasLocalVariable: (name) => { + return !!localVars.get(name); + }, + addLocalVariable: (name) => { + localVars.set(name, (localVars.get(name) ?? 0) + 1); + }, + removeLocalVariable: (name) => { + localVars.set(name, localVars.get(name) - 1); + }, + getInternalVariable: () => { + return `__VLS_${variableId++}`; + }, + ignoreError: function* () { + if (!ignoredError) { + ignoredError = true; + yield `// @vue-ignore start${common_1$e.newLine}`; + } + }, + expectError: function* (prevNode) { + if (!expectErrorToken) { + expectErrorToken = { + errors: 0, + node: prevNode, + }; + yield `// @vue-expect-error start${common_1$e.newLine}`; + } + }, + resetDirectiveComments: function* (endStr) { + if (expectErrorToken) { + const token = expectErrorToken; + yield* (0, common_1$e.wrapWith)(expectErrorToken.node.loc.start.offset, expectErrorToken.node.loc.end.offset, { + verification: { + shouldReport: () => token.errors === 0, + }, + }, `// @ts-expect-error __VLS_TS_EXPECT_ERROR`); + yield `${common_1$e.newLine}${common_1$e.endOfLine}`; + expectErrorToken = undefined; + yield `// @vue-expect-error ${endStr}${common_1$e.newLine}`; + } + if (ignoredError) { + ignoredError = false; + yield `// @vue-ignore ${endStr}${common_1$e.newLine}`; + } + }, + generateAutoImportCompletion: function* () { + if (!options.edited) { + return; + } + const all = [...accessExternalVariables.entries()]; + if (!all.some(([_, offsets]) => offsets.size)) { + return; + } + yield `// @ts-ignore${common_1$e.newLine}`; // #2304 + yield `[`; + for (const [varName, offsets] of all) { + for (const offset of offsets) { + if (options.scriptSetupBindingNames.has(varName)) { + // #3409 + yield [ + varName, + 'template', + offset, + { + ...codeFeatures.additionalCompletion, + ...codeFeatures.withoutHighlightAndCompletionAndNavigation, + }, + ]; + } + else { + yield [ + varName, + 'template', + offset, + codeFeatures.additionalCompletion, + ]; + } + yield `,`; + } + offsets.clear(); + } + yield `]${common_1$e.endOfLine}`; + } + }; +} + +var element = {}; + +var camelized = {}; + +Object.defineProperty(camelized, "__esModule", { value: true }); +camelized.generateCamelized = generateCamelized; +const shared_1$p = require$$1$1; +const common_1$d = requireCommon(); +function* generateCamelized(code, offset, info) { + const parts = code.split('-'); + for (let i = 0; i < parts.length; i++) { + const part = parts[i]; + if (part !== '') { + if (i === 0) { + yield [ + part, + 'template', + offset, + info, + ]; + } + else { + yield [ + (0, shared_1$p.capitalize)(part), + 'template', + offset, + common_1$d.combineLastMapping, + ]; + } + } + offset += part.length + 1; + } +} + +var elementChildren = {}; + +var templateChild = {}; + +var interpolation = {}; + +Object.defineProperty(interpolation, "__esModule", { value: true }); +interpolation.generateInterpolation = generateInterpolation; +interpolation.forEachInterpolationSegment = forEachInterpolationSegment; +const shared_1$o = require$$1$1; +const scriptSetupRanges_1$1 = requireScriptSetupRanges(); +const common_1$c = requireCommon(); +function* generateInterpolation(options, ctx, _code, astHolder, start, data, prefix, suffix) { + const code = prefix + _code + suffix; + const ast = (0, common_1$c.createTsAst)(options.ts, astHolder, code); + const vars = []; + for (let [section, offset, onlyError] of forEachInterpolationSegment(options.ts, options.templateRefNames, ctx, code, start !== undefined ? start - prefix.length : undefined, ast)) { + if (offset === undefined) { + yield section; + } + else { + offset -= prefix.length; + let addSuffix = ''; + const overLength = offset + section.length - _code.length; + if (overLength > 0) { + addSuffix = section.substring(section.length - overLength); + section = section.substring(0, section.length - overLength); + } + if (offset < 0) { + yield section.substring(0, -offset); + section = section.substring(-offset); + offset = 0; + } + if (start !== undefined && data !== undefined) { + yield [ + section, + 'template', + start + offset, + onlyError + ? ctx.codeFeatures.verification + : typeof data === 'function' ? data(start + offset) : data, + ]; + } + else { + yield section; + } + yield addSuffix; + } + } + if (start !== undefined) { + for (const v of vars) { + v.offset = start + v.offset - prefix.length; + } + } +} +function* forEachInterpolationSegment(ts, templateRefNames, ctx, code, offset, ast) { + let ctxVars = []; + const varCb = (id, isShorthand) => { + const text = (0, scriptSetupRanges_1$1.getNodeText)(ts, id, ast); + if (ctx.hasLocalVariable(text) || + // https://github.com/vuejs/core/blob/245230e135152900189f13a4281302de45fdcfaa/packages/compiler-core/src/transforms/transformExpression.ts#L342-L352 + (0, shared_1$o.isGloballyWhitelisted)(text) || + text === 'require' || + text.startsWith('__VLS_')) ; + else { + ctxVars.push({ + text, + isShorthand: isShorthand, + offset: (0, scriptSetupRanges_1$1.getStartEnd)(ts, id, ast).start, + }); + if (offset !== undefined) { + ctx.accessExternalVariable(text, offset + (0, scriptSetupRanges_1$1.getStartEnd)(ts, id, ast).start); + } + else { + ctx.accessExternalVariable(text); + } + } + }; + ts.forEachChild(ast, node => walkIdentifiers(ts, node, ast, varCb, ctx)); + ctxVars = ctxVars.sort((a, b) => a.offset - b.offset); + if (ctxVars.length) { + if (ctxVars[0].isShorthand) { + yield [code.substring(0, ctxVars[0].offset + ctxVars[0].text.length), 0]; + yield [': ', undefined]; + } + else { + yield [code.substring(0, ctxVars[0].offset), 0]; + } + for (let i = 0; i < ctxVars.length - 1; i++) { + const curVar = ctxVars[i]; + const nextVar = ctxVars[i + 1]; + yield* generateVar(code, templateRefNames, curVar, nextVar); + if (nextVar.isShorthand) { + yield [code.substring(curVar.offset + curVar.text.length, nextVar.offset + nextVar.text.length), curVar.offset + curVar.text.length]; + yield [': ', undefined]; + } + else { + yield [code.substring(curVar.offset + curVar.text.length, nextVar.offset), curVar.offset + curVar.text.length]; + } + } + const lastVar = ctxVars.at(-1); + yield* generateVar(code, templateRefNames, lastVar); + yield [code.substring(lastVar.offset + lastVar.text.length), lastVar.offset + lastVar.text.length]; + } + else { + yield [code, 0]; + } +} +function* generateVar(code, templateRefNames, curVar, nextVar = curVar) { + // fix https://github.com/vuejs/language-tools/issues/1205 + // fix https://github.com/vuejs/language-tools/issues/1264 + yield ['', nextVar.offset, true]; + const isTemplateRef = templateRefNames?.has(curVar.text) ?? false; + if (isTemplateRef) { + yield [`__VLS_unref(`, undefined]; + yield [code.substring(curVar.offset, curVar.offset + curVar.text.length), curVar.offset]; + yield [`)`, undefined]; + } + else { + yield [`__VLS_ctx.`, undefined]; + yield [code.substring(curVar.offset, curVar.offset + curVar.text.length), curVar.offset]; + } +} +function walkIdentifiers(ts, node, ast, cb, ctx, blockVars = [], isRoot = true) { + if (ts.isIdentifier(node)) { + cb(node, false); + } + else if (ts.isShorthandPropertyAssignment(node)) { + cb(node.name, true); + } + else if (ts.isPropertyAccessExpression(node)) { + walkIdentifiers(ts, node.expression, ast, cb, ctx, blockVars, false); + } + else if (ts.isVariableDeclaration(node)) { + (0, common_1$c.collectVars)(ts, node.name, ast, blockVars); + for (const varName of blockVars) { + ctx.addLocalVariable(varName); + } + if (node.initializer) { + walkIdentifiers(ts, node.initializer, ast, cb, ctx, blockVars, false); + } + } + else if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) { + processFunction(ts, node, ast, cb, ctx); + } + else if (ts.isObjectLiteralExpression(node)) { + for (const prop of node.properties) { + if (ts.isPropertyAssignment(prop)) { + // fix https://github.com/vuejs/language-tools/issues/1176 + if (ts.isComputedPropertyName(prop.name)) { + walkIdentifiers(ts, prop.name.expression, ast, cb, ctx, blockVars, false); + } + walkIdentifiers(ts, prop.initializer, ast, cb, ctx, blockVars, false); + } + // fix https://github.com/vuejs/language-tools/issues/1156 + else if (ts.isShorthandPropertyAssignment(prop)) { + walkIdentifiers(ts, prop, ast, cb, ctx, blockVars, false); + } + // fix https://github.com/vuejs/language-tools/issues/1148#issuecomment-1094378126 + else if (ts.isSpreadAssignment(prop)) { + // TODO: cannot report "Spread types may only be created from object types.ts(2698)" + walkIdentifiers(ts, prop.expression, ast, cb, ctx, blockVars, false); + } + // fix https://github.com/vuejs/language-tools/issues/4604 + else if (ts.isFunctionLike(prop) && prop.body) { + processFunction(ts, prop, ast, cb, ctx); + } + } + } + else if (ts.isTypeReferenceNode(node)) { + // fix https://github.com/vuejs/language-tools/issues/1422 + ts.forEachChild(node, node => walkIdentifiersInTypeReference(ts, node, cb)); + } + else { + const _blockVars = blockVars; + if (ts.isBlock(node)) { + blockVars = []; + } + ts.forEachChild(node, node => walkIdentifiers(ts, node, ast, cb, ctx, blockVars, false)); + if (ts.isBlock(node)) { + for (const varName of blockVars) { + ctx.removeLocalVariable(varName); + } + } + blockVars = _blockVars; + } + if (isRoot) { + for (const varName of blockVars) { + ctx.removeLocalVariable(varName); + } + } +} +function processFunction(ts, node, ast, cb, ctx) { + const functionArgs = []; + for (const param of node.parameters) { + (0, common_1$c.collectVars)(ts, param.name, ast, functionArgs); + if (param.type) { + walkIdentifiers(ts, param.type, ast, cb, ctx); + } + } + for (const varName of functionArgs) { + ctx.addLocalVariable(varName); + } + if (node.body) { + walkIdentifiers(ts, node.body, ast, cb, ctx); + } + for (const varName of functionArgs) { + ctx.removeLocalVariable(varName); + } +} +function walkIdentifiersInTypeReference(ts, node, cb) { + if (ts.isTypeQueryNode(node) && ts.isIdentifier(node.exprName)) { + cb(node.exprName, false); + } + else { + ts.forEachChild(node, node => walkIdentifiersInTypeReference(ts, node, cb)); + } +} + +var slotOutlet = {}; + +var elementProps = {}; + +var commonjs = {}; + +var balancedMatch = balanced$1; +function balanced$1(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range$2(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced$1.range = range$2; +function range$2(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if(a===b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} + +var balanced = balancedMatch; + +var braceExpansion = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric$1(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte$4(i, y) { + return i <= y; +} +function gte$4(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m) return [str]; + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + if (/\$$/.test(m.pre)) { + for (var k = 0; k < post.length; k++) { + var expansion = pre+ '{' + m.body + '}' + post[k]; + expansions.push(expansion); + } + } else { + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + var N; + + if (isSequence) { + var x = numeric$1(n[0]); + var y = numeric$1(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 + ? Math.abs(numeric$1(n[2])) + : 1; + var test = lte$4; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte$4; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = []; + + for (var j = 0; j < n.length; j++) { + N.push.apply(N, expand(n[j], false)); + } + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + } + + return expansions; +} + +var assertValidPattern$1 = {}; + +Object.defineProperty(assertValidPattern$1, "__esModule", { value: true }); +assertValidPattern$1.assertValidPattern = void 0; +const MAX_PATTERN_LENGTH = 1024 * 64; +const assertValidPattern = (pattern) => { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern'); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long'); + } +}; +assertValidPattern$1.assertValidPattern = assertValidPattern; + +var ast = {}; + +var braceExpressions = {}; + +// translate the various posix character classes into unicode properties +// this works across all unicode locales +Object.defineProperty(braceExpressions, "__esModule", { value: true }); +braceExpressions.parseClass = void 0; +// { <posix class>: [<translation>, /u flag required, negated] +const posixClasses = { + '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true], + '[:alpha:]': ['\\p{L}\\p{Nl}', true], + '[:ascii:]': ['\\x' + '00-\\x' + '7f', false], + '[:blank:]': ['\\p{Zs}\\t', true], + '[:cntrl:]': ['\\p{Cc}', true], + '[:digit:]': ['\\p{Nd}', true], + '[:graph:]': ['\\p{Z}\\p{C}', true, true], + '[:lower:]': ['\\p{Ll}', true], + '[:print:]': ['\\p{C}', true], + '[:punct:]': ['\\p{P}', true], + '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true], + '[:upper:]': ['\\p{Lu}', true], + '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true], + '[:xdigit:]': ['A-Fa-f0-9', false], +}; +// only need to escape a few things inside of brace expressions +// escapes: [ \ ] - +const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&'); +// escape all regexp magic characters +const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +// everything has already been escaped, we just have to join +const rangesToString = (ranges) => ranges.join(''); +// takes a glob string at a posix brace expression, and returns +// an equivalent regular expression source, and boolean indicating +// whether the /u flag needs to be applied, and the number of chars +// consumed to parse the character class. +// This also removes out of order ranges, and returns ($.) if the +// entire class just no good. +const parseClass = (glob, position) => { + const pos = position; + /* c8 ignore start */ + if (glob.charAt(pos) !== '[') { + throw new Error('not in a brace expression'); + } + /* c8 ignore stop */ + const ranges = []; + const negs = []; + let i = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ''; + WHILE: while (i < glob.length) { + const c = glob.charAt(i); + if ((c === '!' || c === '^') && i === pos + 1) { + negate = true; + i++; + continue; + } + if (c === ']' && sawStart && !escaping) { + endPos = i + 1; + break; + } + sawStart = true; + if (c === '\\') { + if (!escaping) { + escaping = true; + i++; + continue; + } + // escaped \ char, fall through and treat like normal char + } + if (c === '[' && !escaping) { + // either a posix class, a collation equivalent, or just a [ + for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { + if (glob.startsWith(cls, i)) { + // invalid, [a-[] is fine, but not [a-[:alpha]] + if (rangeStart) { + return ['$.', false, glob.length - pos, true]; + } + i += cls.length; + if (neg) + negs.push(unip); + else + ranges.push(unip); + uflag = uflag || u; + continue WHILE; + } + } + } + // now it's just a normal character, effectively + escaping = false; + if (rangeStart) { + // throw this range away if it's not valid, but others + // can still match. + if (c > rangeStart) { + ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c)); + } + else if (c === rangeStart) { + ranges.push(braceEscape(c)); + } + rangeStart = ''; + i++; + continue; + } + // now might be the start of a range. + // can be either c-d or c-] or c<more...>] or c] at this point + if (glob.startsWith('-]', i + 1)) { + ranges.push(braceEscape(c + '-')); + i += 2; + continue; + } + if (glob.startsWith('-', i + 1)) { + rangeStart = c; + i += 2; + continue; + } + // not the start of a range, just a single character + ranges.push(braceEscape(c)); + i++; + } + if (endPos < i) { + // didn't see the end of the class, not a valid class, + // but might still be valid as a literal match. + return ['', false, 0, false]; + } + // if we got no ranges and no negates, then we have a range that + // cannot possibly match anything, and that poisons the whole glob + if (!ranges.length && !negs.length) { + return ['$.', false, glob.length - pos, true]; + } + // if we got one positive range, and it's a single character, then that's + // not actually a magic pattern, it's just that one literal character. + // we should not treat that as "magic", we should just return the literal + // character. [_] is a perfectly valid way to escape glob magic chars. + if (negs.length === 0 && + ranges.length === 1 && + /^\\?.$/.test(ranges[0]) && + !negate) { + const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r), false, endPos - pos, false]; + } + const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'; + const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'; + const comb = ranges.length && negs.length + ? '(' + sranges + '|' + snegs + ')' + : ranges.length + ? sranges + : snegs; + return [comb, uflag, endPos - pos, true]; +}; +braceExpressions.parseClass = parseClass; + +var _unescape = {}; + +Object.defineProperty(_unescape, "__esModule", { value: true }); +_unescape.unescape = void 0; +/** + * Un-escape a string that has been escaped with {@link escape}. + * + * If the {@link windowsPathsNoEscape} option is used, then square-brace + * escapes are removed, but not backslash escapes. For example, it will turn + * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`, + * becuase `\` is a path separator in `windowsPathsNoEscape` mode. + * + * When `windowsPathsNoEscape` is not set, then both brace escapes and + * backslash escapes are removed. + * + * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped + * or unescaped. + */ +const unescape$3 = (s, { windowsPathsNoEscape = false, } = {}) => { + return windowsPathsNoEscape + ? s.replace(/\[([^\/\\])\]/g, '$1') + : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1'); +}; +_unescape.unescape = unescape$3; + +// parse a single path portion +Object.defineProperty(ast, "__esModule", { value: true }); +ast.AST = void 0; +const brace_expressions_js_1 = braceExpressions; +const unescape_js_1 = _unescape; +const types$3 = new Set(['!', '?', '+', '*', '@']); +const isExtglobType = (c) => types$3.has(c); +// Patterns that get prepended to bind to the start of either the +// entire string, or just a single path portion, to prevent dots +// and/or traversal patterns, when needed. +// Exts don't need the ^ or / bit, because the root binds that already. +const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))'; +const startNoDot = '(?!\\.)'; +// characters that indicate a start of pattern needs the "no dots" bit, +// because a dot *might* be matched. ( is not in the list, because in +// the case of a child extglob, it will handle the prevention itself. +const addPatternStart = new Set(['[', '.']); +// cases where traversal is A-OK, no dot prevention needed +const justDots = new Set(['..', '.']); +const reSpecials = new Set('().*{}+?[]^$\\!'); +const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +// any single thing other than / +const qmark = '[^/]'; +// * => any number of characters +const star = qmark + '*?'; +// use + when we need to ensure that *something* matches, because the * is +// the only thing in the path portion. +const starNoEmpty = qmark + '+?'; +// remove the \ chars that we added if we end up doing a nonmagic compare +// const deslash = (s: string) => s.replace(/\\(.)/g, '$1') +class AST { + type; + #root; + #hasMagic; + #uflag = false; + #parts = []; + #parent; + #parentIndex; + #negs; + #filledNegs = false; + #options; + #toString; + // set to true if it's an extglob with no children + // (which really means one child of '') + #emptyExt = false; + constructor(type, parent, options = {}) { + this.type = type; + // extglobs are inherently magical + if (type) + this.#hasMagic = true; + this.#parent = parent; + this.#root = this.#parent ? this.#parent.#root : this; + this.#options = this.#root === this ? options : this.#root.#options; + this.#negs = this.#root === this ? [] : this.#root.#negs; + if (type === '!' && !this.#root.#filledNegs) + this.#negs.push(this); + this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; + } + get hasMagic() { + /* c8 ignore start */ + if (this.#hasMagic !== undefined) + return this.#hasMagic; + /* c8 ignore stop */ + for (const p of this.#parts) { + if (typeof p === 'string') + continue; + if (p.type || p.hasMagic) + return (this.#hasMagic = true); + } + // note: will be undefined until we generate the regexp src and find out + return this.#hasMagic; + } + // reconstructs the pattern + toString() { + if (this.#toString !== undefined) + return this.#toString; + if (!this.type) { + return (this.#toString = this.#parts.map(p => String(p)).join('')); + } + else { + return (this.#toString = + this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')'); + } + } + #fillNegs() { + /* c8 ignore start */ + if (this !== this.#root) + throw new Error('should only call on root'); + if (this.#filledNegs) + return this; + /* c8 ignore stop */ + // call toString() once to fill this out + this.toString(); + this.#filledNegs = true; + let n; + while ((n = this.#negs.pop())) { + if (n.type !== '!') + continue; + // walk up the tree, appending everthing that comes AFTER parentIndex + let p = n; + let pp = p.#parent; + while (pp) { + for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { + for (const part of n.#parts) { + /* c8 ignore start */ + if (typeof part === 'string') { + throw new Error('string part in extglob AST??'); + } + /* c8 ignore stop */ + part.copyIn(pp.#parts[i]); + } + } + p = pp; + pp = p.#parent; + } + } + return this; + } + push(...parts) { + for (const p of parts) { + if (p === '') + continue; + /* c8 ignore start */ + if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) { + throw new Error('invalid part: ' + p); + } + /* c8 ignore stop */ + this.#parts.push(p); + } + } + toJSON() { + const ret = this.type === null + ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON())) + : [this.type, ...this.#parts.map(p => p.toJSON())]; + if (this.isStart() && !this.type) + ret.unshift([]); + if (this.isEnd() && + (this === this.#root || + (this.#root.#filledNegs && this.#parent?.type === '!'))) { + ret.push({}); + } + return ret; + } + isStart() { + if (this.#root === this) + return true; + // if (this.type) return !!this.#parent?.isStart() + if (!this.#parent?.isStart()) + return false; + if (this.#parentIndex === 0) + return true; + // if everything AHEAD of this is a negation, then it's still the "start" + const p = this.#parent; + for (let i = 0; i < this.#parentIndex; i++) { + const pp = p.#parts[i]; + if (!(pp instanceof AST && pp.type === '!')) { + return false; + } + } + return true; + } + isEnd() { + if (this.#root === this) + return true; + if (this.#parent?.type === '!') + return true; + if (!this.#parent?.isEnd()) + return false; + if (!this.type) + return this.#parent?.isEnd(); + // if not root, it'll always have a parent + /* c8 ignore start */ + const pl = this.#parent ? this.#parent.#parts.length : 0; + /* c8 ignore stop */ + return this.#parentIndex === pl - 1; + } + copyIn(part) { + if (typeof part === 'string') + this.push(part); + else + this.push(part.clone(this)); + } + clone(parent) { + const c = new AST(this.type, parent); + for (const p of this.#parts) { + c.copyIn(p); + } + return c; + } + static #parseAST(str, ast, pos, opt) { + let escaping = false; + let inBrace = false; + let braceStart = -1; + let braceNeg = false; + if (ast.type === null) { + // outside of a extglob, append until we find a start + let i = pos; + let acc = ''; + while (i < str.length) { + const c = str.charAt(i++); + // still accumulate escapes at this point, but we do ignore + // starts that are escaped + if (escaping || c === '\\') { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === '^' || c === '!') { + braceNeg = true; + } + } + else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } + else if (c === '[') { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') { + ast.push(acc); + acc = ''; + const ext = new AST(c, ast); + i = AST.#parseAST(str, ext, i, opt); + ast.push(ext); + continue; + } + acc += c; + } + ast.push(acc); + return i; + } + // some kind of extglob, pos is at the ( + // find the next | or ) + let i = pos + 1; + let part = new AST(null, ast); + const parts = []; + let acc = ''; + while (i < str.length) { + const c = str.charAt(i++); + // still accumulate escapes at this point, but we do ignore + // starts that are escaped + if (escaping || c === '\\') { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === '^' || c === '!') { + braceNeg = true; + } + } + else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } + else if (c === '[') { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (isExtglobType(c) && str.charAt(i) === '(') { + part.push(acc); + acc = ''; + const ext = new AST(c, part); + part.push(ext); + i = AST.#parseAST(str, ext, i, opt); + continue; + } + if (c === '|') { + part.push(acc); + acc = ''; + parts.push(part); + part = new AST(null, ast); + continue; + } + if (c === ')') { + if (acc === '' && ast.#parts.length === 0) { + ast.#emptyExt = true; + } + part.push(acc); + acc = ''; + ast.push(...parts, part); + return i; + } + acc += c; + } + // unfinished extglob + // if we got here, it was a malformed extglob! not an extglob, but + // maybe something else in there. + ast.type = null; + ast.#hasMagic = undefined; + ast.#parts = [str.substring(pos - 1)]; + return i; + } + static fromGlob(pattern, options = {}) { + const ast = new AST(null, undefined, options); + AST.#parseAST(pattern, ast, 0, options); + return ast; + } + // returns the regular expression if there's magic, or the unescaped + // string if not. + toMMPattern() { + // should only be called on root + /* c8 ignore start */ + if (this !== this.#root) + return this.#root.toMMPattern(); + /* c8 ignore stop */ + const glob = this.toString(); + const [re, body, hasMagic, uflag] = this.toRegExpSource(); + // if we're in nocase mode, and not nocaseMagicOnly, then we do + // still need a regular expression if we have to case-insensitively + // match capital/lowercase characters. + const anyMagic = hasMagic || + this.#hasMagic || + (this.#options.nocase && + !this.#options.nocaseMagicOnly && + glob.toUpperCase() !== glob.toLowerCase()); + if (!anyMagic) { + return body; + } + const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : ''); + return Object.assign(new RegExp(`^${re}$`, flags), { + _src: re, + _glob: glob, + }); + } + get options() { + return this.#options; + } + // returns the string match, the regexp source, whether there's magic + // in the regexp (so a regular expression is required) and whether or + // not the uflag is needed for the regular expression (for posix classes) + // TODO: instead of injecting the start/end at this point, just return + // the BODY of the regexp, along with the start/end portions suitable + // for binding the start/end in either a joined full-path makeRe context + // (where we bind to (^|/), or a standalone matchPart context (where + // we bind to ^, and not /). Otherwise slashes get duped! + // + // In part-matching mode, the start is: + // - if not isStart: nothing + // - if traversal possible, but not allowed: ^(?!\.\.?$) + // - if dots allowed or not possible: ^ + // - if dots possible and not allowed: ^(?!\.) + // end is: + // - if not isEnd(): nothing + // - else: $ + // + // In full-path matching mode, we put the slash at the START of the + // pattern, so start is: + // - if first pattern: same as part-matching mode + // - if not isStart(): nothing + // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) + // - if dots allowed or not possible: / + // - if dots possible and not allowed: /(?!\.) + // end is: + // - if last pattern, same as part-matching mode + // - else nothing + // + // Always put the (?:$|/) on negated tails, though, because that has to be + // there to bind the end of the negated pattern portion, and it's easier to + // just stick it in now rather than try to inject it later in the middle of + // the pattern. + // + // We can just always return the same end, and leave it up to the caller + // to know whether it's going to be used joined or in parts. + // And, if the start is adjusted slightly, can do the same there: + // - if not isStart: nothing + // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) + // - if dots allowed or not possible: (?:/|^) + // - if dots possible and not allowed: (?:/|^)(?!\.) + // + // But it's better to have a simpler binding without a conditional, for + // performance, so probably better to return both start options. + // + // Then the caller just ignores the end if it's not the first pattern, + // and the start always gets applied. + // + // But that's always going to be $ if it's the ending pattern, or nothing, + // so the caller can just attach $ at the end of the pattern when building. + // + // So the todo is: + // - better detect what kind of start is needed + // - return both flavors of starting pattern + // - attach $ at the end of the pattern when creating the actual RegExp + // + // Ah, but wait, no, that all only applies to the root when the first pattern + // is not an extglob. If the first pattern IS an extglob, then we need all + // that dot prevention biz to live in the extglob portions, because eg + // +(*|.x*) can match .xy but not .yx. + // + // So, return the two flavors if it's #root and the first child is not an + // AST, otherwise leave it to the child AST to handle it, and there, + // use the (?:^|/) style of start binding. + // + // Even simplified further: + // - Since the start for a join is eg /(?!\.) and the start for a part + // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root + // or start or whatever) and prepend ^ or / at the Regexp construction. + toRegExpSource(allowDot) { + const dot = allowDot ?? !!this.#options.dot; + if (this.#root === this) + this.#fillNegs(); + if (!this.type) { + const noEmpty = this.isStart() && this.isEnd(); + const src = this.#parts + .map(p => { + const [re, _, hasMagic, uflag] = typeof p === 'string' + ? AST.#parseGlob(p, this.#hasMagic, noEmpty) + : p.toRegExpSource(allowDot); + this.#hasMagic = this.#hasMagic || hasMagic; + this.#uflag = this.#uflag || uflag; + return re; + }) + .join(''); + let start = ''; + if (this.isStart()) { + if (typeof this.#parts[0] === 'string') { + // this is the string that will match the start of the pattern, + // so we need to protect against dots and such. + // '.' and '..' cannot match unless the pattern is that exactly, + // even if it starts with . or dot:true is set. + const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); + if (!dotTravAllowed) { + const aps = addPatternStart; + // check if we have a possibility of matching . or .., + // and prevent that. + const needNoTrav = + // dots are allowed, and the pattern starts with [ or . + (dot && aps.has(src.charAt(0))) || + // the pattern starts with \., and then [ or . + (src.startsWith('\\.') && aps.has(src.charAt(2))) || + // the pattern starts with \.\., and then [ or . + (src.startsWith('\\.\\.') && aps.has(src.charAt(4))); + // no need to prevent dots if it can't match a dot, or if a + // sub-pattern will be preventing it anyway. + const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); + start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''; + } + } + } + // append the "end of path portion" pattern to negation tails + let end = ''; + if (this.isEnd() && + this.#root.#filledNegs && + this.#parent?.type === '!') { + end = '(?:$|\\/)'; + } + const final = start + src + end; + return [ + final, + (0, unescape_js_1.unescape)(src), + (this.#hasMagic = !!this.#hasMagic), + this.#uflag, + ]; + } + // We need to calculate the body *twice* if it's a repeat pattern + // at the start, once in nodot mode, then again in dot mode, so a + // pattern like *(?) can match 'x.y' + const repeated = this.type === '*' || this.type === '+'; + // some kind of extglob + const start = this.type === '!' ? '(?:(?!(?:' : '(?:'; + let body = this.#partsToRegExp(dot); + if (this.isStart() && this.isEnd() && !body && this.type !== '!') { + // invalid extglob, has to at least be *something* present, if it's + // the entire path portion. + const s = this.toString(); + this.#parts = [s]; + this.type = null; + this.#hasMagic = undefined; + return [s, (0, unescape_js_1.unescape)(this.toString()), false, false]; + } + // XXX abstract out this map method + let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot + ? '' + : this.#partsToRegExp(true); + if (bodyDotAllowed === body) { + bodyDotAllowed = ''; + } + if (bodyDotAllowed) { + body = `(?:${body})(?:${bodyDotAllowed})*?`; + } + // an empty !() is exactly equivalent to a starNoEmpty + let final = ''; + if (this.type === '!' && this.#emptyExt) { + final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty; + } + else { + const close = this.type === '!' + ? // !() must match something,but !(x) can match '' + '))' + + (this.isStart() && !dot && !allowDot ? startNoDot : '') + + star + + ')' + : this.type === '@' + ? ')' + : this.type === '?' + ? ')?' + : this.type === '+' && bodyDotAllowed + ? ')' + : this.type === '*' && bodyDotAllowed + ? `)?` + : `)${this.type}`; + final = start + body + close; + } + return [ + final, + (0, unescape_js_1.unescape)(body), + (this.#hasMagic = !!this.#hasMagic), + this.#uflag, + ]; + } + #partsToRegExp(dot) { + return this.#parts + .map(p => { + // extglob ASTs should only contain parent ASTs + /* c8 ignore start */ + if (typeof p === 'string') { + throw new Error('string type in extglob ast??'); + } + /* c8 ignore stop */ + // can ignore hasMagic, because extglobs are already always magic + const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); + this.#uflag = this.#uflag || uflag; + return re; + }) + .filter(p => !(this.isStart() && this.isEnd()) || !!p) + .join('|'); + } + static #parseGlob(glob, hasMagic, noEmpty = false) { + let escaping = false; + let re = ''; + let uflag = false; + for (let i = 0; i < glob.length; i++) { + const c = glob.charAt(i); + if (escaping) { + escaping = false; + re += (reSpecials.has(c) ? '\\' : '') + c; + continue; + } + if (c === '\\') { + if (i === glob.length - 1) { + re += '\\\\'; + } + else { + escaping = true; + } + continue; + } + if (c === '[') { + const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i); + if (consumed) { + re += src; + uflag = uflag || needUflag; + i += consumed - 1; + hasMagic = hasMagic || magic; + continue; + } + } + if (c === '*') { + if (noEmpty && glob === '*') + re += starNoEmpty; + else + re += star; + hasMagic = true; + continue; + } + if (c === '?') { + re += qmark; + hasMagic = true; + continue; + } + re += regExpEscape(c); + } + return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag]; + } +} +ast.AST = AST; + +var _escape = {}; + +Object.defineProperty(_escape, "__esModule", { value: true }); +_escape.escape = void 0; +/** + * Escape all magic characters in a glob pattern. + * + * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape} + * option is used, then characters are escaped by wrapping in `[]`, because + * a magic character wrapped in a character class can only be satisfied by + * that exact character. In this mode, `\` is _not_ escaped, because it is + * not interpreted as a magic character, but instead as a path separator. + */ +const escape$1 = (s, { windowsPathsNoEscape = false, } = {}) => { + // don't need to escape +@! because we escape the parens + // that make those magic, and escaping ! as [!] isn't valid, + // because [!]] is a valid glob class meaning not ']'. + return windowsPathsNoEscape + ? s.replace(/[?*()[\]]/g, '[$&]') + : s.replace(/[?*()[\]\\]/g, '\\$&'); +}; +_escape.escape = escape$1; + +(function (exports) { + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0; + const brace_expansion_1 = __importDefault(braceExpansion); + const assert_valid_pattern_js_1 = assertValidPattern$1; + const ast_js_1 = ast; + const escape_js_1 = _escape; + const unescape_js_1 = _unescape; + const minimatch = (p, pattern, options = {}) => { + (0, assert_valid_pattern_js_1.assertValidPattern)(pattern); + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false; + } + return new Minimatch(pattern, options).match(p); + }; + exports.minimatch = minimatch; + // Optimized checking for the most common glob patterns. + const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; + const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext); + const starDotExtTestDot = (ext) => (f) => f.endsWith(ext); + const starDotExtTestNocase = (ext) => { + ext = ext.toLowerCase(); + return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext); + }; + const starDotExtTestNocaseDot = (ext) => { + ext = ext.toLowerCase(); + return (f) => f.toLowerCase().endsWith(ext); + }; + const starDotStarRE = /^\*+\.\*+$/; + const starDotStarTest = (f) => !f.startsWith('.') && f.includes('.'); + const starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.'); + const dotStarRE = /^\.\*+$/; + const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.'); + const starRE = /^\*+$/; + const starTest = (f) => f.length !== 0 && !f.startsWith('.'); + const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..'; + const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; + const qmarksTestNocase = ([$0, ext = '']) => { + const noext = qmarksTestNoExt([$0]); + if (!ext) + return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); + }; + const qmarksTestNocaseDot = ([$0, ext = '']) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext) + return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); + }; + const qmarksTestDot = ([$0, ext = '']) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); + }; + const qmarksTest = ([$0, ext = '']) => { + const noext = qmarksTestNoExt([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); + }; + const qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && !f.startsWith('.'); + }; + const qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && f !== '.' && f !== '..'; + }; + /* c8 ignore start */ + const defaultPlatform = (typeof process === 'object' && process + ? (typeof process.env === 'object' && + process.env && + process.env.__MINIMATCH_TESTING_PLATFORM__) || + process.platform + : 'posix'); + const path = { + win32: { sep: '\\' }, + posix: { sep: '/' }, + }; + /* c8 ignore stop */ + exports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep; + exports.minimatch.sep = exports.sep; + exports.GLOBSTAR = Symbol('globstar **'); + exports.minimatch.GLOBSTAR = exports.GLOBSTAR; + // any single thing other than / + // don't need to escape / when using new RegExp() + const qmark = '[^/]'; + // * => any number of characters + const star = qmark + '*?'; + // ** when dots are allowed. Anything goes, except .. and . + // not (^ or / followed by one or two dots followed by $ or /), + // followed by anything, any number of times. + const twoStarDot = '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?'; + // not a ^ or / followed by a dot, + // followed by anything, any number of times. + const twoStarNoDot = '(?:(?!(?:\\/|^)\\.).)*?'; + const filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options); + exports.filter = filter; + exports.minimatch.filter = exports.filter; + const ext = (a, b = {}) => Object.assign({}, a, b); + const defaults = (def) => { + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return exports.minimatch; + } + const orig = exports.minimatch; + const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options)); + return Object.assign(m, { + Minimatch: class Minimatch extends orig.Minimatch { + constructor(pattern, options = {}) { + super(pattern, ext(def, options)); + } + static defaults(options) { + return orig.defaults(ext(def, options)).Minimatch; + } + }, + AST: class AST extends orig.AST { + /* c8 ignore start */ + constructor(type, parent, options = {}) { + super(type, parent, ext(def, options)); + } + /* c8 ignore stop */ + static fromGlob(pattern, options = {}) { + return orig.AST.fromGlob(pattern, ext(def, options)); + } + }, + unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), + escape: (s, options = {}) => orig.escape(s, ext(def, options)), + filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), + defaults: (options) => orig.defaults(ext(def, options)), + makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), + braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), + match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), + sep: orig.sep, + GLOBSTAR: exports.GLOBSTAR, + }); + }; + exports.defaults = defaults; + exports.minimatch.defaults = exports.defaults; + // Brace expansion: + // a{b,c}d -> abd acd + // a{b,}c -> abc ac + // a{0..3}d -> a0d a1d a2d a3d + // a{b,c{d,e}f}g -> abg acdfg acefg + // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg + // + // Invalid sets are not expanded. + // a{2..}b -> a{2..}b + // a{b}c -> a{b}c + const braceExpand = (pattern, options = {}) => { + (0, assert_valid_pattern_js_1.assertValidPattern)(pattern); + // Thanks to Yeting Li <https://github.com/yetingli> for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + // shortcut. no need to expand. + return [pattern]; + } + return (0, brace_expansion_1.default)(pattern); + }; + exports.braceExpand = braceExpand; + exports.minimatch.braceExpand = exports.braceExpand; + // parse a component of the expanded set. + // At this point, no pattern may contain "/" in it + // so we're going to return a 2d array, where each entry is the full + // pattern, split on '/', and then turned into a regular expression. + // A regexp is made at the end which joins each array with an + // escaped /, and another full one which joins each regexp with |. + // + // Following the lead of Bash 4.1, note that "**" only has special meaning + // when it is the *only* thing in a path portion. Otherwise, any series + // of * is equivalent to a single *. Globstar behavior is enabled by + // default, and can be disabled by setting options.noglobstar. + const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); + exports.makeRe = makeRe; + exports.minimatch.makeRe = exports.makeRe; + const match = (list, pattern, options = {}) => { + const mm = new Minimatch(pattern, options); + list = list.filter(f => mm.match(f)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + exports.match = match; + exports.minimatch.match = exports.match; + // replace stuff like \* with * + const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; + const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); + class Minimatch { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options = {}) { + (0, assert_valid_pattern_js_1.assertValidPattern)(pattern); + options = options || {}; + this.options = options; + this.pattern = pattern; + this.platform = options.platform || defaultPlatform; + this.isWindows = this.platform === 'win32'; + this.windowsPathsNoEscape = + !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, '/'); + } + this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = + options.windowsNoMagicRoot !== undefined + ? options.windowsNoMagicRoot + : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + // make the set of regexps etc. + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { + return true; + } + for (const pattern of this.set) { + for (const part of pattern) { + if (typeof part !== 'string') + return true; + } + } + return false; + } + debug(..._) { } + make() { + const pattern = this.pattern; + const options = this.options; + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + // step 1: figure out negation, etc. + this.parseNegate(); + // step 2: expand braces + this.globSet = [...new Set(this.braceExpand())]; + if (options.debug) { + this.debug = (...args) => console.error(...args); + } + this.debug(this.pattern, this.globSet); + // step 3: now we have a set, so turn each one into a series of + // path-portion matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + // + // First, we preprocess to make the glob pattern sets a bit simpler + // and deduped. There are some perf-killing patterns that can cause + // problems with a glob walk, but we can simplify them down a bit. + const rawGlobParts = this.globSet.map(s => this.slashSplit(s)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + // glob --> regexps + let set = this.globParts.map((s, _, __) => { + if (this.isWindows && this.windowsNoMagicRoot) { + // check if it's a drive or unc path. + const isUNC = s[0] === '' && + s[1] === '' && + (s[2] === '?' || !globMagic.test(s[2])) && + !globMagic.test(s[3]); + const isDrive = /^[a-z]:/i.test(s[0]); + if (isUNC) { + return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]; + } + else if (isDrive) { + return [s[0], ...s.slice(1).map(ss => this.parse(ss))]; + } + } + return s.map(ss => this.parse(ss)); + }); + this.debug(this.pattern, set); + // filter out everything that didn't compile properly. + this.set = set.filter(s => s.indexOf(false) === -1); + // do not treat the ? in UNC paths as magic + if (this.isWindows) { + for (let i = 0; i < this.set.length; i++) { + const p = this.set[i]; + if (p[0] === '' && + p[1] === '' && + this.globParts[i][2] === '?' && + typeof p[3] === 'string' && + /^[a-z]:$/i.test(p[3])) { + p[2] = '?'; + } + } + } + this.debug(this.pattern, this.set); + } + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + // if we're not in globstar mode, then turn all ** into * + if (this.options.noglobstar) { + for (let i = 0; i < globParts.length; i++) { + for (let j = 0; j < globParts[i].length; j++) { + if (globParts[i][j] === '**') { + globParts[i][j] = '*'; + } + } + } + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + // aggressive optimization for the purpose of fs walking + globParts = this.firstPhasePreProcess(globParts); + globParts = this.secondPhasePreProcess(globParts); + } + else if (optimizationLevel >= 1) { + // just basic optimizations to remove some .. parts + globParts = this.levelOneOptimize(globParts); + } + else { + // just collapse multiple ** portions into one + globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; + } + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map(parts => { + let gs = -1; + while (-1 !== (gs = parts.indexOf('**', gs + 1))) { + let i = gs; + while (parts[i + 1] === '**') { + i++; + } + if (i !== gs) { + parts.splice(gs, i - gs); + } + } + return parts; + }); + } + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map(parts => { + parts = parts.reduce((set, part) => { + const prev = set[set.length - 1]; + if (part === '**' && prev === '**') { + return set; + } + if (part === '..') { + if (prev && prev !== '..' && prev !== '.' && prev !== '**') { + set.pop(); + return set; + } + } + set.push(part); + return set; + }, []); + return parts.length === 0 ? [''] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { + didSomething = false; + // <pre>/<e>/<rest> -> <pre>/<rest> + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + // don't squeeze out UNC patterns + if (i === 1 && p === '' && parts[0] === '') + continue; + if (p === '.' || p === '') { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === '.' && + parts.length === 2 && + (parts[1] === '.' || parts[1] === '')) { + didSomething = true; + parts.pop(); + } + } + // <pre>/<p>/../<rest> -> <pre>/<rest> + let dd = 0; + while (-1 !== (dd = parts.indexOf('..', dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== '.' && p !== '..' && p !== '**') { + didSomething = true; + parts.splice(dd - 1, 2); + dd -= 2; + } + } + } while (didSomething); + return parts.length === 0 ? [''] : parts; + } + // First phase: single-pattern processing + // <pre> is 1 or more portions + // <rest> is 1 or more portions + // <p> is any portion other than ., .., '', or ** + // <e> is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>} + // <pre>/<e>/<rest> -> <pre>/<rest> + // <pre>/<p>/../<rest> -> <pre>/<rest> + // **/**/<rest> -> **/<rest> + // + // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow + // this WOULD be allowed if ** did follow symlinks, or * didn't + firstPhasePreProcess(globParts) { + let didSomething = false; + do { + didSomething = false; + // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>} + for (let parts of globParts) { + let gs = -1; + while (-1 !== (gs = parts.indexOf('**', gs + 1))) { + let gss = gs; + while (parts[gss + 1] === '**') { + // <pre>/**/**/<rest> -> <pre>/**/<rest> + gss++; + } + // eg, if gs is 2 and gss is 4, that means we have 3 ** + // parts, and can remove 2 of them. + if (gss > gs) { + parts.splice(gs + 1, gss - gs); + } + let next = parts[gs + 1]; + const p = parts[gs + 2]; + const p2 = parts[gs + 3]; + if (next !== '..') + continue; + if (!p || + p === '.' || + p === '..' || + !p2 || + p2 === '.' || + p2 === '..') { + continue; + } + didSomething = true; + // edit parts in place, and push the new one + parts.splice(gs, 1); + const other = parts.slice(0); + other[gs] = '**'; + globParts.push(other); + gs--; + } + // <pre>/<e>/<rest> -> <pre>/<rest> + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + // don't squeeze out UNC patterns + if (i === 1 && p === '' && parts[0] === '') + continue; + if (p === '.' || p === '') { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === '.' && + parts.length === 2 && + (parts[1] === '.' || parts[1] === '')) { + didSomething = true; + parts.pop(); + } + } + // <pre>/<p>/../<rest> -> <pre>/<rest> + let dd = 0; + while (-1 !== (dd = parts.indexOf('..', dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== '.' && p !== '..' && p !== '**') { + didSomething = true; + const needDot = dd === 1 && parts[dd + 1] === '**'; + const splin = needDot ? ['.'] : []; + parts.splice(dd - 1, 2, ...splin); + if (parts.length === 0) + parts.push(''); + dd -= 2; + } + } + } + } while (didSomething); + return globParts; + } + // second phase: multi-pattern dedupes + // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest> + // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest> + // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest> + // + // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest> + // ^-- not valid because ** doens't follow symlinks + secondPhasePreProcess(globParts) { + for (let i = 0; i < globParts.length - 1; i++) { + for (let j = i + 1; j < globParts.length; j++) { + const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes); + if (matched) { + globParts[i] = []; + globParts[j] = matched; + break; + } + } + } + return globParts.filter(gs => gs.length); + } + partsMatch(a, b, emptyGSMatch = false) { + let ai = 0; + let bi = 0; + let result = []; + let which = ''; + while (ai < a.length && bi < b.length) { + if (a[ai] === b[bi]) { + result.push(which === 'b' ? b[bi] : a[ai]); + ai++; + bi++; + } + else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) { + result.push(a[ai]); + ai++; + } + else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) { + result.push(b[bi]); + bi++; + } + else if (a[ai] === '*' && + b[bi] && + (this.options.dot || !b[bi].startsWith('.')) && + b[bi] !== '**') { + if (which === 'b') + return false; + which = 'a'; + result.push(a[ai]); + ai++; + bi++; + } + else if (b[bi] === '*' && + a[ai] && + (this.options.dot || !a[ai].startsWith('.')) && + a[ai] !== '**') { + if (which === 'a') + return false; + which = 'b'; + result.push(b[bi]); + ai++; + bi++; + } + else { + return false; + } + } + // if we fall out of the loop, it means they two are identical + // as long as their lengths match + return a.length === b.length && result; + } + parseNegate() { + if (this.nonegate) + return; + const pattern = this.pattern; + let negate = false; + let negateOffset = 0; + for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) { + negate = !negate; + negateOffset++; + } + if (negateOffset) + this.pattern = pattern.slice(negateOffset); + this.negate = negate; + } + // set partial to true to test if, for example, + // "/a/b" matches the start of "/*/b/*/d" + // Partial means, if you run out of file before you run + // out of pattern, then that's fine, as long as all + // the parts match. + matchOne(file, pattern, partial = false) { + const options = this.options; + // UNC paths like //?/X:/... can match X:/... and vice versa + // Drive letters in absolute drive or unc paths are always compared + // case-insensitively. + if (this.isWindows) { + const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]); + const fileUNC = !fileDrive && + file[0] === '' && + file[1] === '' && + file[2] === '?' && + /^[a-z]:$/i.test(file[3]); + const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]); + const patternUNC = !patternDrive && + pattern[0] === '' && + pattern[1] === '' && + pattern[2] === '?' && + typeof pattern[3] === 'string' && + /^[a-z]:$/i.test(pattern[3]); + const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined; + const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined; + if (typeof fdi === 'number' && typeof pdi === 'number') { + const [fd, pd] = [file[fdi], pattern[pdi]]; + if (fd.toLowerCase() === pd.toLowerCase()) { + pattern[pdi] = fd; + if (pdi > fdi) { + pattern = pattern.slice(pdi); + } + else if (fdi > pdi) { + file = file.slice(fdi); + } + } + } + } + // resolve and reduce . and .. portions in the file as well. + // dont' need to do the second phase, because it's only one string[] + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + file = this.levelTwoFileOptimize(file); + } + this.debug('matchOne', this, { file, pattern }); + this.debug('matchOne', file.length, pattern.length); + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug('matchOne loop'); + var p = pattern[pi]; + var f = file[fi]; + this.debug(pattern, p, f); + // should be impossible. + // some invalid regexp stuff in the set. + /* c8 ignore start */ + if (p === false) { + return false; + } + /* c8 ignore stop */ + if (p === exports.GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]); + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi; + var pr = pi + 1; + if (pr === pl) { + this.debug('** at the end'); + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || + file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) + return false; + } + return true; + } + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr]; + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee); + // found a match. + return true; + } + else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || + swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr); + break; + } + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue'); + fr++; + } + } + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + /* c8 ignore start */ + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr); + if (fr === fl) { + return true; + } + } + /* c8 ignore stop */ + return false; + } + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + let hit; + if (typeof p === 'string') { + hit = f === p; + this.debug('string match', p, f, hit); + } + else { + hit = p.test(f); + this.debug('pattern match', p, f, hit); + } + if (!hit) + return false; + } + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true; + } + else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial; + } + else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + return fi === fl - 1 && file[fi] === ''; + /* c8 ignore start */ + } + else { + // should be unreachable. + throw new Error('wtf?'); + } + /* c8 ignore stop */ + } + braceExpand() { + return (0, exports.braceExpand)(this.pattern, this.options); + } + parse(pattern) { + (0, assert_valid_pattern_js_1.assertValidPattern)(pattern); + const options = this.options; + // shortcuts + if (pattern === '**') + return exports.GLOBSTAR; + if (pattern === '') + return ''; + // far and away, the most common glob pattern parts are + // *, *.*, and *.<ext> Add a fast check method for those. + let m; + let fastTest = null; + if ((m = pattern.match(starRE))) { + fastTest = options.dot ? starTestDot : starTest; + } + else if ((m = pattern.match(starDotExtRE))) { + fastTest = (options.nocase + ? options.dot + ? starDotExtTestNocaseDot + : starDotExtTestNocase + : options.dot + ? starDotExtTestDot + : starDotExtTest)(m[1]); + } + else if ((m = pattern.match(qmarksRE))) { + fastTest = (options.nocase + ? options.dot + ? qmarksTestNocaseDot + : qmarksTestNocase + : options.dot + ? qmarksTestDot + : qmarksTest)(m); + } + else if ((m = pattern.match(starDotStarRE))) { + fastTest = options.dot ? starDotStarTestDot : starDotStarTest; + } + else if ((m = pattern.match(dotStarRE))) { + fastTest = dotStarTest; + } + const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern(); + if (fastTest && typeof re === 'object') { + // Avoids overriding in frozen environments + Reflect.defineProperty(re, 'test', { value: fastTest }); + } + return re; + } + makeRe() { + if (this.regexp || this.regexp === false) + return this.regexp; + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + const set = this.set; + if (!set.length) { + this.regexp = false; + return this.regexp; + } + const options = this.options; + const twoStar = options.noglobstar + ? star + : options.dot + ? twoStarDot + : twoStarNoDot; + const flags = new Set(options.nocase ? ['i'] : []); + // regexpify non-globstar patterns + // if ** is only item, then we just do one twoStar + // if ** is first, and there are more, prepend (\/|twoStar\/)? to next + // if ** is last, append (\/twoStar|) to previous + // if ** is in the middle, append (\/|\/twoStar\/) to previous + // then filter out GLOBSTAR symbols + let re = set + .map(pattern => { + const pp = pattern.map(p => { + if (p instanceof RegExp) { + for (const f of p.flags.split('')) + flags.add(f); + } + return typeof p === 'string' + ? regExpEscape(p) + : p === exports.GLOBSTAR + ? exports.GLOBSTAR + : p._src; + }); + pp.forEach((p, i) => { + const next = pp[i + 1]; + const prev = pp[i - 1]; + if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) { + return; + } + if (prev === undefined) { + if (next !== undefined && next !== exports.GLOBSTAR) { + pp[i + 1] = '(?:\\/|' + twoStar + '\\/)?' + next; + } + else { + pp[i] = twoStar; + } + } + else if (next === undefined) { + pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?'; + } + else if (next !== exports.GLOBSTAR) { + pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next; + pp[i + 1] = exports.GLOBSTAR; + } + }); + return pp.filter(p => p !== exports.GLOBSTAR).join('/'); + }) + .join('|'); + // need to wrap in parens if we had more than one thing with |, + // otherwise only the first will be anchored to ^ and the last to $ + const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']; + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^' + open + re + close + '$'; + // can match anything, as long as it's not this. + if (this.negate) + re = '^(?!' + re + ').+$'; + try { + this.regexp = new RegExp(re, [...flags].join('')); + /* c8 ignore start */ + } + catch (ex) { + // should be impossible + this.regexp = false; + } + /* c8 ignore stop */ + return this.regexp; + } + slashSplit(p) { + // if p starts with // on windows, we preserve that + // so that UNC paths aren't broken. Otherwise, any number of + // / characters are coalesced into one, unless + // preserveMultipleSlashes is set to true. + if (this.preserveMultipleSlashes) { + return p.split('/'); + } + else if (this.isWindows && /^\/\/[^\/]+/.test(p)) { + // add an extra '' for the one we lose + return ['', ...p.split(/\/+/)]; + } + else { + return p.split(/\/+/); + } + } + match(f, partial = this.partial) { + this.debug('match', f, this.pattern); + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) { + return false; + } + if (this.empty) { + return f === ''; + } + if (f === '/' && partial) { + return true; + } + const options = this.options; + // windows: need to use /, not \ + if (this.isWindows) { + f = f.split('\\').join('/'); + } + // treat the test path as a set of pathparts. + const ff = this.slashSplit(f); + this.debug(this.pattern, 'split', ff); + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + const set = this.set; + this.debug(this.pattern, 'set', set); + // Find the basename of the path by looking for the last non-empty segment + let filename = ff[ff.length - 1]; + if (!filename) { + for (let i = ff.length - 2; !filename && i >= 0; i--) { + filename = ff[i]; + } + } + for (let i = 0; i < set.length; i++) { + const pattern = set[i]; + let file = ff; + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } + const hit = this.matchOne(file, pattern, partial); + if (hit) { + if (options.flipNegate) { + return true; + } + return !this.negate; + } + } + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) { + return false; + } + return this.negate; + } + static defaults(def) { + return exports.minimatch.defaults(def).Minimatch; + } + } + exports.Minimatch = Minimatch; + /* c8 ignore start */ + var ast_js_2 = ast; + Object.defineProperty(exports, "AST", { enumerable: true, get: function () { return ast_js_2.AST; } }); + var escape_js_2 = _escape; + Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return escape_js_2.escape; } }); + var unescape_js_2 = _unescape; + Object.defineProperty(exports, "unescape", { enumerable: true, get: function () { return unescape_js_2.unescape; } }); + /* c8 ignore stop */ + exports.minimatch.AST = ast_js_1.AST; + exports.minimatch.Minimatch = Minimatch; + exports.minimatch.escape = escape_js_1.escape; + exports.minimatch.unescape = unescape_js_1.unescape; + +} (commonjs)); + +var out$2 = {}; + +var binarySearch$2 = {}; + +Object.defineProperty(binarySearch$2, "__esModule", { value: true }); +binarySearch$2.binarySearch = void 0; +function binarySearch$1(offsets, start) { + let low = 0; + let high = offsets.length - 1; + while (low <= high) { + const mid = Math.floor((low + high) / 2); + const midValue = offsets[mid]; + if (midValue < start) { + low = mid + 1; + } + else if (midValue > start) { + high = mid - 1; + } + else { + low = mid; + high = mid; + break; + } + } + return Math.max(Math.min(low, high, offsets.length - 1), 0); +} +binarySearch$2.binarySearch = binarySearch$1; + +var track$1 = {}; + +Object.defineProperty(track$1, "__esModule", { value: true }); +track$1.getStack = track$1.track = track$1.resetOffsetStack = track$1.offsetStack = track$1.setTracking = void 0; +let tracking = true; +let stackOffset = 0; +function setTracking(value) { + tracking = value; +} +track$1.setTracking = setTracking; +function offsetStack() { + stackOffset++; +} +track$1.offsetStack = offsetStack; +function resetOffsetStack() { + stackOffset--; +} +track$1.resetOffsetStack = resetOffsetStack; +function track(segments, stacks = []) { + return [ + new Proxy(segments, { + get(target, prop, receiver) { + if (tracking) { + if (prop === 'push') + return push; + if (prop === 'pop') + return pop; + if (prop === 'shift') + return shift; + if (prop === 'unshift') + return unshift; + if (prop === 'splice') + return splice; + if (prop === 'sort') + return sort; + if (prop === 'reverse') + return reverse; + } + return Reflect.get(target, prop, receiver); + } + }), + stacks, + ]; + function push(...items) { + stacks.push({ stack: getStack(), length: items.length }); + return segments.push(...items); + } + function pop() { + if (stacks.length) { + const last = stacks[stacks.length - 1]; + if (last.length > 1) { + last.length--; + } + else { + stacks.pop(); + } + } + return segments.pop(); + } + function shift() { + if (stacks.length) { + const first = stacks[0]; + if (first.length > 1) { + first.length--; + } + else { + stacks.shift(); + } + } + return segments.shift(); + } + function unshift(...items) { + stacks.unshift({ stack: getStack(), length: items.length }); + return segments.unshift(...items); + } + function splice(start, deleteCount, ...items) { + if (deleteCount === undefined) { + deleteCount = segments.length - start; + } + let _stackStart = 0; + let operateIndex; + for (let i = 0; i < stacks.length; i++) { + const stack = stacks[i]; + const stackStart = _stackStart; + const stackEnd = stackStart + stack.length; + _stackStart = stackEnd; + if (start >= stackStart) { + operateIndex = i + 1; + const originalLength = stack.length; + stack.length = start - stackStart; + stacks.splice(operateIndex, 0, { stack: stack.stack, length: originalLength - stack.length }); + break; + } + } + if (operateIndex === undefined) { + throw new Error('Invalid splice operation'); + } + let _deleteCount = deleteCount; + for (let i = operateIndex; i < stacks.length; i++) { + const stack = stacks[i]; + while (_deleteCount > 0 && stack.length > 0) { + stack.length--; + _deleteCount--; + } + if (_deleteCount === 0) { + break; + } + } + stacks.splice(operateIndex, 0, { stack: getStack(), length: items.length }); + return segments.splice(start, deleteCount, ...items); + } + function sort(compareFn) { + stacks.splice(0, stacks.length, { stack: getStack(), length: segments.length }); + return segments.sort(compareFn); + } + function reverse() { + stacks.splice(0, stacks.length, { stack: getStack(), length: segments.length }); + return segments.reverse(); + } +} +track$1.track = track; +function getStack() { + const stack = new Error().stack; + let source = stack.split('\n')[3 + stackOffset].trim(); + if (source.endsWith(')')) { + source = source.slice(source.lastIndexOf('(') + 1, -1); + } + else { + source = source.slice(source.lastIndexOf(' ') + 1); + } + return source; +} +track$1.getStack = getStack; + +var types$2 = {}; + +Object.defineProperty(types$2, "__esModule", { value: true }); + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.replaceRange = exports.replaceSourceRange = exports.replaceAll = exports.replace = exports.create = exports.toString = exports.getLength = void 0; + const binarySearch_1 = binarySearch$2; + const track_1 = track$1; + __exportStar(types$2, exports); + __exportStar(track$1, exports); + function getLength(segments) { + let length = 0; + for (const segment of segments) { + length += typeof segment == 'string' ? segment.length : segment[0].length; + } + return length; + } + exports.getLength = getLength; + function toString(segments) { + return segments.map(s => typeof s === 'string' ? s : s[0]).join(''); + } + exports.toString = toString; + function create(source) { + return [[source, undefined, 0]]; + } + exports.create = create; + function replace(segments, pattern, ...replacers) { + const str = toString(segments); + const match = str.match(pattern); + if (match && match.index !== undefined) { + const startOffset = match.index; + const endOffset = startOffset + match[0].length; + (0, track_1.offsetStack)(); + replaceRange(segments, startOffset, endOffset, ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer)); + (0, track_1.resetOffsetStack)(); + } + } + exports.replace = replace; + function replaceAll(segments, pattern, ...replacers) { + const str = toString(segments); + const allMatch = str.matchAll(pattern); + let length = str.length; + let lengthDiff = 0; + for (const match of allMatch) { + if (match.index !== undefined) { + const startOffset = match.index + lengthDiff; + const endOffset = startOffset + match[0].length; + (0, track_1.offsetStack)(); + replaceRange(segments, startOffset, endOffset, ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer)); + (0, track_1.resetOffsetStack)(); + const newLength = getLength(segments); + lengthDiff += newLength - length; + length = newLength; + } + } + } + exports.replaceAll = replaceAll; + function replaceSourceRange(segments, source, startOffset, endOffset, ...newSegments) { + for (const segment of segments) { + if (typeof segment === 'string') { + continue; + } + if (segment[1] === source) { + const segmentStart = segment[2]; + const segmentEnd = segment[2] + segment[0].length; + if (segmentStart <= startOffset && segmentEnd >= endOffset) { + const inserts = []; + if (startOffset > segmentStart) { + inserts.push(trimSegmentEnd(segment, startOffset - segmentStart)); + } + for (const newSegment of newSegments) { + inserts.push(newSegment); + } + if (endOffset < segmentEnd) { + inserts.push(trimSegmentStart(segment, endOffset - segmentEnd)); + } + combineStrings(inserts); + (0, track_1.offsetStack)(); + segments.splice(segments.indexOf(segment), 1, ...inserts); + (0, track_1.resetOffsetStack)(); + return true; + } + } + } + return false; + } + exports.replaceSourceRange = replaceSourceRange; + function replaceRange(segments, startOffset, endOffset, ...newSegments) { + const offsets = toOffsets(segments); + const startIndex = (0, binarySearch_1.binarySearch)(offsets, startOffset); + const endIndex = (0, binarySearch_1.binarySearch)(offsets, endOffset); + const startSegment = segments[startIndex]; + const endSegment = segments[endIndex]; + const startSegmentStart = offsets[startIndex]; + const endSegmentStart = offsets[endIndex]; + const endSegmentEnd = offsets[endIndex] + (typeof endSegment === 'string' ? endSegment.length : endSegment[0].length); + const inserts = []; + if (startOffset > startSegmentStart) { + inserts.push(trimSegmentEnd(startSegment, startOffset - startSegmentStart)); + } + for (const newSegment of newSegments) { + inserts.push(newSegment); + } + if (endOffset < endSegmentEnd) { + inserts.push(trimSegmentStart(endSegment, endOffset - endSegmentStart)); + } + combineStrings(inserts); + (0, track_1.offsetStack)(); + segments.splice(startIndex, endIndex - startIndex + 1, ...inserts); + (0, track_1.resetOffsetStack)(); + } + exports.replaceRange = replaceRange; + function combineStrings(segments) { + for (let i = segments.length - 1; i >= 1; i--) { + if (typeof segments[i] === 'string' && typeof segments[i - 1] === 'string') { + segments[i - 1] = segments[i - 1] + segments[i]; + (0, track_1.offsetStack)(); + segments.splice(i, 1); + (0, track_1.resetOffsetStack)(); + } + } + } + function trimSegmentEnd(segment, trimEnd) { + if (typeof segment === 'string') { + return segment.slice(0, trimEnd); + } + return [ + segment[0].slice(0, trimEnd), + ...segment.slice(1), + ]; + } + function trimSegmentStart(segment, trimStart) { + if (typeof segment === 'string') { + return segment.slice(trimStart); + } + if (trimStart < 0) { + trimStart += segment[0].length; + } + return [ + segment[0].slice(trimStart), + segment[1], + segment[2] + trimStart, + ...segment.slice(3), + ]; + } + function toOffsets(segments) { + const offsets = []; + let offset = 0; + for (const segment of segments) { + offsets.push(offset); + offset += typeof segment == 'string' ? segment.length : segment[0].length; + } + return offsets; + } + +} (out$2)); + +var elementEvents = {}; + +Object.defineProperty(elementEvents, "__esModule", { value: true }); +elementEvents.generateElementEvents = generateElementEvents; +elementEvents.generateEventArg = generateEventArg; +elementEvents.generateEventExpression = generateEventExpression; +elementEvents.isCompoundExpression = isCompoundExpression; +const CompilerDOM$7 = compilerDom_cjs; +const shared_1$n = require$$1$1; +const shared_2$2 = shared$3; +const common_1$b = requireCommon(); +const camelized_1$3 = camelized; +const interpolation_1$4 = interpolation; +function* generateElementEvents(options, ctx, node, componentVar, componentInstanceVar, emitVar, eventsVar) { + let usedComponentEventsVar = false; + let propsVar; + for (const prop of node.props) { + if (prop.type === CompilerDOM$7.NodeTypes.DIRECTIVE + && prop.name === 'on' + && prop.arg?.type === CompilerDOM$7.NodeTypes.SIMPLE_EXPRESSION + && !prop.arg.loc.source.startsWith('[') + && !prop.arg.loc.source.endsWith(']')) { + usedComponentEventsVar = true; + if (!propsVar) { + propsVar = ctx.getInternalVariable(); + yield `let ${propsVar}!: __VLS_FunctionalComponentProps<typeof ${componentVar}, typeof ${componentInstanceVar}>${common_1$b.endOfLine}`; + } + const originalPropName = (0, shared_1$n.camelize)('on-' + prop.arg.loc.source); + const originalPropNameObjectKey = common_1$b.variableNameRegex.test(originalPropName) + ? originalPropName + : `'${originalPropName}'`; + yield `const ${ctx.getInternalVariable()}: `; + if (!options.vueCompilerOptions.strictTemplates) { + yield `Record<string, unknown> & `; + } + yield `(${common_1$b.newLine}`; + yield `__VLS_IsFunction<typeof ${propsVar}, '${originalPropName}'> extends true${common_1$b.newLine}`; + yield `? typeof ${propsVar}${common_1$b.newLine}`; + yield `: __VLS_IsFunction<typeof ${eventsVar}, '${prop.arg.loc.source}'> extends true${common_1$b.newLine}`; + yield `? {${common_1$b.newLine}`; + yield `/**__VLS_emit,${emitVar},${prop.arg.loc.source}*/${common_1$b.newLine}`; + yield `${originalPropNameObjectKey}?: typeof ${eventsVar}['${prop.arg.loc.source}']${common_1$b.newLine}`; + yield `}${common_1$b.newLine}`; + if (prop.arg.loc.source !== (0, shared_1$n.camelize)(prop.arg.loc.source)) { + yield `: __VLS_IsFunction<typeof ${eventsVar}, '${(0, shared_1$n.camelize)(prop.arg.loc.source)}'> extends true${common_1$b.newLine}`; + yield `? {${common_1$b.newLine}`; + yield `/**__VLS_emit,${emitVar},${(0, shared_1$n.camelize)(prop.arg.loc.source)}*/${common_1$b.newLine}`; + yield `${originalPropNameObjectKey}?: typeof ${eventsVar}['${(0, shared_1$n.camelize)(prop.arg.loc.source)}']${common_1$b.newLine}`; + yield `}${common_1$b.newLine}`; + } + yield `: typeof ${propsVar}${common_1$b.newLine}`; + yield `) = {${common_1$b.newLine}`; + yield* generateEventArg(ctx, prop.arg, true); + yield `: `; + yield* generateEventExpression(options, ctx, prop); + yield `}${common_1$b.endOfLine}`; + } + } + return usedComponentEventsVar; +} +const eventArgFeatures = { + navigation: { + // @click-outside -> onClickOutside + resolveRenameNewName(newName) { + return (0, shared_1$n.camelize)('on-' + newName); + }, + // onClickOutside -> @click-outside + resolveRenameEditText(newName) { + const hName = (0, shared_2$2.hyphenateAttr)(newName); + if ((0, shared_2$2.hyphenateAttr)(newName).startsWith('on-')) { + return (0, shared_1$n.camelize)(hName.slice('on-'.length)); + } + return newName; + }, + }, +}; +function* generateEventArg(ctx, arg, enableHover) { + const features = enableHover + ? { + ...ctx.codeFeatures.withoutHighlightAndCompletion, + ...eventArgFeatures, + } + : eventArgFeatures; + if (common_1$b.variableNameRegex.test((0, shared_1$n.camelize)(arg.loc.source))) { + yield ['', 'template', arg.loc.start.offset, features]; + yield `on`; + yield* (0, camelized_1$3.generateCamelized)((0, shared_1$n.capitalize)(arg.loc.source), arg.loc.start.offset, common_1$b.combineLastMapping); + } + else { + yield* (0, common_1$b.wrapWith)(arg.loc.start.offset, arg.loc.end.offset, features, `'`, ['', 'template', arg.loc.start.offset, common_1$b.combineLastMapping], 'on', ...(0, camelized_1$3.generateCamelized)((0, shared_1$n.capitalize)(arg.loc.source), arg.loc.start.offset, common_1$b.combineLastMapping), `'`); + } +} +function* generateEventExpression(options, ctx, prop) { + if (prop.exp?.type === CompilerDOM$7.NodeTypes.SIMPLE_EXPRESSION) { + let prefix = '('; + let suffix = ')'; + let isFirstMapping = true; + const ast = (0, common_1$b.createTsAst)(options.ts, prop.exp, prop.exp.content); + const _isCompoundExpression = isCompoundExpression(options.ts, ast); + if (_isCompoundExpression) { + yield `(...[$event]) => {${common_1$b.newLine}`; + ctx.addLocalVariable('$event'); + prefix = ''; + suffix = ''; + for (const blockCondition of ctx.blockConditions) { + prefix += `if (!(${blockCondition})) return${common_1$b.endOfLine}`; + } + } + yield* (0, interpolation_1$4.generateInterpolation)(options, ctx, prop.exp.content, prop.exp.loc, prop.exp.loc.start.offset, offset => { + if (_isCompoundExpression && isFirstMapping) { + isFirstMapping = false; + ctx.inlayHints.push({ + blockName: 'template', + offset, + setting: 'vue.inlayHints.inlineHandlerLeading', + label: '$event =>', + paddingRight: true, + tooltip: [ + '`$event` is a hidden parameter, you can use it in this callback.', + 'To hide this hint, set `vue.inlayHints.inlineHandlerLeading` to `false` in IDE settings.', + '[More info](https://github.com/vuejs/language-tools/issues/2445#issuecomment-1444771420)', + ].join('\n\n'), + }); + } + return ctx.codeFeatures.all; + }, prefix, suffix); + if (_isCompoundExpression) { + ctx.removeLocalVariable('$event'); + yield common_1$b.endOfLine; + yield* ctx.generateAutoImportCompletion(); + yield `}`; + } + } + else { + yield `() => {}`; + } +} +function isCompoundExpression(ts, ast) { + let result = true; + if (ast.statements.length === 0) { + result = false; + } + else if (ast.statements.length === 1) { + ts.forEachChild(ast, child_1 => { + if (ts.isExpressionStatement(child_1)) { + ts.forEachChild(child_1, child_2 => { + if (ts.isArrowFunction(child_2)) { + result = false; + } + else if (isPropertyAccessOrId(ts, child_2)) { + result = false; + } + }); + } + else if (ts.isFunctionDeclaration(child_1)) { + result = false; + } + }); + } + return result; +} +function isPropertyAccessOrId(ts, node) { + if (ts.isIdentifier(node)) { + return true; + } + if (ts.isPropertyAccessExpression(node)) { + return isPropertyAccessOrId(ts, node.expression); + } + return false; +} + +var objectProperty = {}; + +var stringLiteralKey = {}; + +Object.defineProperty(stringLiteralKey, "__esModule", { value: true }); +stringLiteralKey.generateStringLiteralKey = generateStringLiteralKey; +const common_1$a = requireCommon(); +function* generateStringLiteralKey(code, offset, info) { + if (offset === undefined || !info) { + yield `"${code}"`; + } + else { + yield* (0, common_1$a.wrapWith)(offset, offset + code.length, info, `"`, [code, 'template', offset, common_1$a.combineLastMapping], `"`); + } +} + +Object.defineProperty(objectProperty, "__esModule", { value: true }); +objectProperty.generateObjectProperty = generateObjectProperty; +const shared_1$m = require$$1$1; +const common_1$9 = requireCommon(); +const camelized_1$2 = camelized; +const interpolation_1$3 = interpolation; +const stringLiteralKey_1$2 = stringLiteralKey; +function* generateObjectProperty(options, ctx, code, offset, features, astHolder, shouldCamelize = false, shouldBeConstant = false) { + if (code.startsWith('[') && code.endsWith(']') && astHolder) { + if (shouldBeConstant) { + yield* (0, interpolation_1$3.generateInterpolation)(options, ctx, code.slice(1, -1), astHolder, offset + 1, features, `[__VLS_tryAsConstant(`, `)]`); + } + else { + yield* (0, interpolation_1$3.generateInterpolation)(options, ctx, code, astHolder, offset, features, '', ''); + } + } + else if (shouldCamelize) { + if (common_1$9.variableNameRegex.test((0, shared_1$m.camelize)(code))) { + yield* (0, camelized_1$2.generateCamelized)(code, offset, features); + } + else { + yield* (0, common_1$9.wrapWith)(offset, offset + code.length, features, `"`, ...(0, camelized_1$2.generateCamelized)(code, offset, common_1$9.combineLastMapping), `"`); + } + } + else { + if (common_1$9.variableNameRegex.test(code)) { + yield [code, 'template', offset, features]; + } + else { + yield* (0, stringLiteralKey_1$2.generateStringLiteralKey)(code, offset, features); + } + } +} + +Object.defineProperty(elementProps, "__esModule", { value: true }); +elementProps.generateElementProps = generateElementProps; +const CompilerDOM$6 = compilerDom_cjs; +const shared_1$l = require$$1$1; +const minimatch_1 = commonjs; +const muggle_string_1$3 = out$2; +const shared_2$1 = shared$3; +const common_1$8 = requireCommon(); +const camelized_1$1 = camelized; +const elementEvents_1$1 = elementEvents; +const interpolation_1$2 = interpolation; +const objectProperty_1$1 = objectProperty; +function* generateElementProps(options, ctx, node, props, enableCodeFeatures, propsFailedExps) { + const isIntrinsicElement = node.tagType === CompilerDOM$6.ElementTypes.ELEMENT || node.tagType === CompilerDOM$6.ElementTypes.TEMPLATE; + const canCamelize = node.tagType === CompilerDOM$6.ElementTypes.COMPONENT; + for (const prop of props) { + if (prop.type === CompilerDOM$6.NodeTypes.DIRECTIVE + && prop.name === 'on') { + if (prop.arg?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION + && !prop.arg.loc.source.startsWith('[') + && !prop.arg.loc.source.endsWith(']')) { + if (isIntrinsicElement) { + yield `...{ `; + yield* (0, elementEvents_1$1.generateEventArg)(ctx, prop.arg, true); + yield `: `; + yield* (0, elementEvents_1$1.generateEventExpression)(options, ctx, prop); + yield `}, `; + } + else { + yield `...{ '${(0, shared_1$l.camelize)('on-' + prop.arg.loc.source)}': {} as any }, `; + } + } + else if (prop.arg?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION + && prop.exp?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION + && prop.arg.loc.source.startsWith('[') + && prop.arg.loc.source.endsWith(']')) { + propsFailedExps?.push({ node: prop.arg, prefix: '(', suffix: ')' }); + propsFailedExps?.push({ node: prop.exp, prefix: '() => {', suffix: '}' }); + } + else if (!prop.arg + && prop.exp?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION) { + propsFailedExps?.push({ node: prop.exp, prefix: '(', suffix: ')' }); + } + } + } + for (const prop of props) { + if (prop.type === CompilerDOM$6.NodeTypes.DIRECTIVE + && ((prop.name === 'bind' && prop.arg?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION) + || prop.name === 'model') + && (!prop.exp || prop.exp.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION)) { + let propName; + if (prop.arg?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION) { + propName = prop.arg.constType === CompilerDOM$6.ConstantTypes.CAN_STRINGIFY + ? prop.arg.content + : prop.arg.loc.source; + } + else { + propName = getModelValuePropName(node, options.vueCompilerOptions.target, options.vueCompilerOptions); + } + if (propName === undefined + || options.vueCompilerOptions.dataAttributes.some(pattern => (0, minimatch_1.minimatch)(propName, pattern))) { + if (prop.exp && prop.exp.constType !== CompilerDOM$6.ConstantTypes.CAN_STRINGIFY) { + propsFailedExps?.push({ node: prop.exp, prefix: '(', suffix: ')' }); + } + continue; + } + if (prop.modifiers.some(m => m === 'prop' || m === 'attr')) { + propName = propName.substring(1); + } + const shouldSpread = propName === 'style' || propName === 'class'; + const shouldCamelize = canCamelize + && (!prop.arg || (prop.arg.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION && prop.arg.isStatic)) // isStatic + && (0, shared_2$1.hyphenateAttr)(propName) === propName + && !options.vueCompilerOptions.htmlAttributes.some(pattern => (0, minimatch_1.minimatch)(propName, pattern)); + if (shouldSpread) { + yield `...{ `; + } + const codeInfo = ctx.codeFeatures.withoutHighlightAndCompletion; + const codes = (0, common_1$8.wrapWith)(prop.loc.start.offset, prop.loc.end.offset, ctx.codeFeatures.verification, ...(prop.arg + ? (0, objectProperty_1$1.generateObjectProperty)(options, ctx, propName, prop.arg.loc.start.offset, { + ...codeInfo, + verification: options.vueCompilerOptions.strictTemplates + ? codeInfo.verification + : { + shouldReport(_source, code) { + if (String(code) === '2353' || String(code) === '2561') { + return false; + } + return typeof codeInfo.verification === 'object' + ? codeInfo.verification.shouldReport?.(_source, code) ?? true + : true; + }, + }, + navigation: codeInfo.navigation + ? { + resolveRenameNewName: shared_1$l.camelize, + resolveRenameEditText: shouldCamelize ? shared_2$1.hyphenateAttr : undefined, + } + : false, + }, prop.loc.name_2 ?? (prop.loc.name_2 = {}), shouldCamelize) + : (0, common_1$8.wrapWith)(prop.loc.start.offset, prop.loc.start.offset + 'v-model'.length, ctx.codeFeatures.verification, propName)), `: (`, ...generatePropExp(options, ctx, prop, prop.exp, ctx.codeFeatures.all, prop.arg?.loc.start.offset === prop.exp?.loc.start.offset, enableCodeFeatures), `)`); + if (!enableCodeFeatures) { + yield (0, muggle_string_1$3.toString)([...codes]); + } + else { + yield* codes; + } + if (shouldSpread) { + yield ` }`; + } + yield `, `; + } + else if (prop.type === CompilerDOM$6.NodeTypes.ATTRIBUTE) { + if (options.vueCompilerOptions.dataAttributes.some(pattern => (0, minimatch_1.minimatch)(prop.name, pattern)) + // Vue 2 Transition doesn't support "persisted" property but `@vue/compiler-dom always adds it (#3881) + || (options.vueCompilerOptions.target < 3 + && prop.name === 'persisted' + && node.tag.toLowerCase() === 'transition')) { + continue; + } + const shouldSpread = prop.name === 'style' || prop.name === 'class'; + const shouldCamelize = canCamelize + && (0, shared_2$1.hyphenateAttr)(prop.name) === prop.name + && !options.vueCompilerOptions.htmlAttributes.some(pattern => (0, minimatch_1.minimatch)(prop.name, pattern)); + if (shouldSpread) { + yield `...{ `; + } + const codeInfo = shouldCamelize + ? { + ...ctx.codeFeatures.withoutHighlightAndCompletion, + navigation: ctx.codeFeatures.withoutHighlightAndCompletion.navigation + ? { + resolveRenameNewName: shared_1$l.camelize, + resolveRenameEditText: shared_2$1.hyphenateAttr, + } + : false, + } + : { + ...ctx.codeFeatures.withoutHighlightAndCompletion, + }; + if (!options.vueCompilerOptions.strictTemplates) { + const verification = codeInfo.verification; + codeInfo.verification = { + shouldReport(_source, code) { + if (String(code) === '2353' || String(code) === '2561') { + return false; + } + return typeof verification === 'object' + ? verification.shouldReport?.(_source, code) ?? true + : true; + }, + }; + } + const codes = (0, common_1$8.conditionWrapWith)(enableCodeFeatures, prop.loc.start.offset, prop.loc.end.offset, ctx.codeFeatures.verification, ...(0, objectProperty_1$1.generateObjectProperty)(options, ctx, prop.name, prop.loc.start.offset, codeInfo, prop.loc.name_1 ?? (prop.loc.name_1 = {}), shouldCamelize), `: (`, ...(prop.value + ? generateAttrValue(prop.value, ctx.codeFeatures.all) + : [`true`]), `)`); + if (!enableCodeFeatures) { + yield (0, muggle_string_1$3.toString)([...codes]); + } + else { + yield* codes; + } + if (shouldSpread) { + yield ` }`; + } + yield `, `; + } + else if (prop.type === CompilerDOM$6.NodeTypes.DIRECTIVE + && prop.name === 'bind' + && !prop.arg + && prop.exp?.type === CompilerDOM$6.NodeTypes.SIMPLE_EXPRESSION) { + const codes = (0, common_1$8.conditionWrapWith)(enableCodeFeatures, prop.exp.loc.start.offset, prop.exp.loc.end.offset, ctx.codeFeatures.verification, `...`, ...(0, interpolation_1$2.generateInterpolation)(options, ctx, prop.exp.content, prop.exp.loc, prop.exp.loc.start.offset, ctx.codeFeatures.all, '(', ')')); + if (!enableCodeFeatures) { + yield (0, muggle_string_1$3.toString)([...codes]); + } + else { + yield* codes; + } + yield `, `; + } + else ; + } +} +function* generatePropExp(options, ctx, prop, exp, features, isShorthand, enableCodeFeatures) { + if (isShorthand && features.completion) { + features = { + ...features, + completion: undefined, + }; + } + if (exp && exp.constType !== CompilerDOM$6.ConstantTypes.CAN_STRINGIFY) { // style='z-index: 2' will compile to {'z-index':'2'} + if (!isShorthand) { // vue 3.4+ + yield* (0, interpolation_1$2.generateInterpolation)(options, ctx, exp.loc.source, exp.loc, exp.loc.start.offset, features, '(', ')'); + } + else { + const propVariableName = (0, shared_1$l.camelize)(exp.loc.source); + if (common_1$8.variableNameRegex.test(propVariableName)) { + if (!ctx.hasLocalVariable(propVariableName)) { + ctx.accessExternalVariable(propVariableName, exp.loc.start.offset); + yield `__VLS_ctx.`; + } + yield* (0, camelized_1$1.generateCamelized)(exp.loc.source, exp.loc.start.offset, features); + if (enableCodeFeatures) { + ctx.inlayHints.push({ + blockName: 'template', + offset: prop.loc.end.offset, + setting: 'vue.inlayHints.vBindShorthand', + label: `="${propVariableName}"`, + tooltip: [ + `This is a shorthand for \`${prop.loc.source}="${propVariableName}"\`.`, + 'To hide this hint, set `vue.inlayHints.vBindShorthand` to `false` in IDE settings.', + '[More info](https://github.com/vuejs/core/pull/9451)', + ].join('\n\n'), + }); + } + } + } + } + else { + yield `{}`; + } +} +function* generateAttrValue(attrNode, features) { + const char = attrNode.loc.source.startsWith("'") ? "'" : '"'; + yield char; + let start = attrNode.loc.start.offset; + let end = attrNode.loc.end.offset; + let content = attrNode.loc.source; + if ((content.startsWith('"') && content.endsWith('"')) + || (content.startsWith("'") && content.endsWith("'"))) { + start++; + end--; + content = content.slice(1, -1); + } + if (needToUnicode(content)) { + yield* (0, common_1$8.wrapWith)(start, end, features, toUnicode(content)); + } + else { + yield [content, 'template', start, features]; + } + yield char; +} +function needToUnicode(str) { + return str.includes('\\') || str.includes('\n'); +} +function toUnicode(str) { + return str.split('').map(value => { + const temp = value.charCodeAt(0).toString(16).padStart(4, '0'); + if (temp.length > 2) { + return '\\u' + temp; + } + return value; + }).join(''); +} +function getModelValuePropName(node, vueVersion, vueCompilerOptions) { + for (const modelName in vueCompilerOptions.experimentalModelPropName) { + const tags = vueCompilerOptions.experimentalModelPropName[modelName]; + for (const tag in tags) { + if (node.tag === tag || node.tag === (0, shared_2$1.hyphenateTag)(tag)) { + const v = tags[tag]; + if (typeof v === 'object') { + const arr = Array.isArray(v) ? v : [v]; + for (const attrs of arr) { + let failed = false; + for (const attr in attrs) { + const attrNode = node.props.find(prop => prop.type === CompilerDOM$6.NodeTypes.ATTRIBUTE && prop.name === attr); + if (!attrNode || attrNode.value?.content !== attrs[attr]) { + failed = true; + break; + } + } + if (!failed) { + // all match + return modelName || undefined; + } + } + } + } + } + } + for (const modelName in vueCompilerOptions.experimentalModelPropName) { + const tags = vueCompilerOptions.experimentalModelPropName[modelName]; + for (const tag in tags) { + if (node.tag === tag || node.tag === (0, shared_2$1.hyphenateTag)(tag)) { + const attrs = tags[tag]; + if (attrs === true) { + return modelName || undefined; + } + } + } + } + return vueVersion < 3 ? 'value' : 'modelValue'; +} + +var hasRequiredSlotOutlet; + +function requireSlotOutlet () { + if (hasRequiredSlotOutlet) return slotOutlet; + hasRequiredSlotOutlet = 1; + Object.defineProperty(slotOutlet, "__esModule", { value: true }); + slotOutlet.generateSlotOutlet = generateSlotOutlet; + const CompilerDOM = compilerDom_cjs; + const common_1 = requireCommon(); + const elementChildren_1 = requireElementChildren(); + const elementProps_1 = elementProps; + const interpolation_1 = interpolation; + function* generateSlotOutlet(options, ctx, node, currentComponent, componentCtxVar) { + const startTagOffset = node.loc.start.offset + options.template.content.substring(node.loc.start.offset).indexOf(node.tag); + const varSlot = ctx.getInternalVariable(); + const nameProp = node.props.find(prop => { + if (prop.type === CompilerDOM.NodeTypes.ATTRIBUTE) { + return prop.name === 'name'; + } + if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE + && prop.name === 'bind' + && prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + return prop.arg.content === 'name'; + } + }); + if (options.hasDefineSlots) { + yield `__VLS_normalizeSlot(`; + yield* (0, common_1.wrapWith)(node.loc.start.offset, node.loc.end.offset, ctx.codeFeatures.verification, `${options.slotsAssignName ?? '__VLS_slots'}[`, ...(0, common_1.wrapWith)(node.loc.start.offset, node.loc.end.offset, ctx.codeFeatures.verification, nameProp?.type === CompilerDOM.NodeTypes.ATTRIBUTE && nameProp.value + ? `'${nameProp.value.content}'` + : nameProp?.type === CompilerDOM.NodeTypes.DIRECTIVE && nameProp.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION + ? nameProp.exp.content + : `('default' as const)`), `]`); + yield `)?.(`; + yield* (0, common_1.wrapWith)(startTagOffset, startTagOffset + node.tag.length, ctx.codeFeatures.verification, `{${common_1.newLine}`, ...(0, elementProps_1.generateElementProps)(options, ctx, node, node.props.filter(prop => prop !== nameProp), true), `}`); + yield `)${common_1.endOfLine}`; + } + else { + yield `var ${varSlot} = {${common_1.newLine}`; + yield* (0, elementProps_1.generateElementProps)(options, ctx, node, node.props.filter(prop => prop !== nameProp), true); + yield `}${common_1.endOfLine}`; + if (nameProp?.type === CompilerDOM.NodeTypes.ATTRIBUTE + && nameProp.value) { + ctx.slots.push({ + name: nameProp.value.content, + loc: nameProp.loc.start.offset + nameProp.loc.source.indexOf(nameProp.value.content, nameProp.name.length), + tagRange: [startTagOffset, startTagOffset + node.tag.length], + varName: varSlot, + nodeLoc: node.loc, + }); + } + else if (nameProp?.type === CompilerDOM.NodeTypes.DIRECTIVE + && nameProp.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + const slotExpVar = ctx.getInternalVariable(); + yield `var ${slotExpVar} = `; + yield* (0, interpolation_1.generateInterpolation)(options, ctx, nameProp.exp.content, nameProp.exp, nameProp.exp.loc.start.offset, ctx.codeFeatures.all, '(', ')'); + yield ` as const${common_1.endOfLine}`; + ctx.dynamicSlots.push({ + expVar: slotExpVar, + varName: varSlot, + }); + } + else { + ctx.slots.push({ + name: 'default', + tagRange: [startTagOffset, startTagOffset + node.tag.length], + varName: varSlot, + nodeLoc: node.loc, + }); + } + } + yield* ctx.generateAutoImportCompletion(); + yield* (0, elementChildren_1.generateElementChildren)(options, ctx, node, currentComponent, componentCtxVar); + } + + return slotOutlet; +} + +var vFor = {}; + +var hasRequiredVFor; + +function requireVFor () { + if (hasRequiredVFor) return vFor; + hasRequiredVFor = 1; + Object.defineProperty(vFor, "__esModule", { value: true }); + vFor.generateVFor = generateVFor; + vFor.parseVForNode = parseVForNode; + const CompilerDOM = compilerDom_cjs; + const common_1 = requireCommon(); + const interpolation_1 = interpolation; + const templateChild_1 = requireTemplateChild(); + function* generateVFor(options, ctx, node, currentComponent, componentCtxVar) { + const { source } = node.parseResult; + const { leftExpressionRange, leftExpressionText } = parseVForNode(node); + const forBlockVars = []; + yield `for (const [`; + if (leftExpressionRange && leftExpressionText) { + const collectAst = (0, common_1.createTsAst)(options.ts, node.parseResult, `const [${leftExpressionText}]`); + (0, common_1.collectVars)(options.ts, collectAst, collectAst, forBlockVars); + yield [ + leftExpressionText, + 'template', + leftExpressionRange.start, + ctx.codeFeatures.all, + ]; + } + yield `] of `; + if (source.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + yield `__VLS_getVForSourceType(`; + yield* (0, interpolation_1.generateInterpolation)(options, ctx, source.content, source.loc, source.loc.start.offset, ctx.codeFeatures.all, '(', ')'); + yield `!)`; // #3102 + } + else { + yield `{} as any`; + } + yield `) {${common_1.newLine}`; + for (const varName of forBlockVars) { + ctx.addLocalVariable(varName); + } + let isFragment = true; + for (const argument of node.codegenNode?.children.arguments ?? []) { + if (argument.type === CompilerDOM.NodeTypes.JS_FUNCTION_EXPRESSION + && argument.returns?.type === CompilerDOM.NodeTypes.VNODE_CALL + && argument.returns?.props?.type === CompilerDOM.NodeTypes.JS_OBJECT_EXPRESSION) { + if (argument.returns.tag !== CompilerDOM.FRAGMENT) { + isFragment = false; + continue; + } + for (const prop of argument.returns.props.properties) { + if (prop.value.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION + && !prop.value.isStatic) { + yield* (0, interpolation_1.generateInterpolation)(options, ctx, prop.value.content, prop.value.loc, prop.value.loc.start.offset, ctx.codeFeatures.all, '(', ')'); + yield common_1.endOfLine; + } + } + } + } + if (isFragment) { + yield* ctx.resetDirectiveComments('end of v-for start'); + } + let prev; + for (const childNode of node.children) { + yield* (0, templateChild_1.generateTemplateChild)(options, ctx, childNode, currentComponent, prev, componentCtxVar); + prev = childNode; + } + for (const varName of forBlockVars) { + ctx.removeLocalVariable(varName); + } + yield* ctx.generateAutoImportCompletion(); + yield `}${common_1.newLine}`; + } + function parseVForNode(node) { + const { value, key, index } = node.parseResult; + const leftExpressionRange = (value || key || index) + ? { + start: (value ?? key ?? index).loc.start.offset, + end: (index ?? key ?? value).loc.end.offset, + } + : undefined; + const leftExpressionText = leftExpressionRange + ? node.loc.source.substring(leftExpressionRange.start - node.loc.start.offset, leftExpressionRange.end - node.loc.start.offset) + : undefined; + return { + leftExpressionRange, + leftExpressionText, + }; + } + + return vFor; +} + +var vIf = {}; + +var hasRequiredVIf; + +function requireVIf () { + if (hasRequiredVIf) return vIf; + hasRequiredVIf = 1; + Object.defineProperty(vIf, "__esModule", { value: true }); + vIf.generateVIf = generateVIf; + const CompilerDOM = compilerDom_cjs; + const muggle_string_1 = out$2; + const common_1 = requireCommon(); + const interpolation_1 = interpolation; + const templateChild_1 = requireTemplateChild(); + function* generateVIf(options, ctx, node, currentComponent, componentCtxVar) { + let originalBlockConditionsLength = ctx.blockConditions.length; + for (let i = 0; i < node.branches.length; i++) { + const branch = node.branches[i]; + if (i === 0) { + yield `if `; + } + else if (branch.condition) { + yield `else if `; + } + else { + yield `else `; + } + let addedBlockCondition = false; + if (branch.condition?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + const codes = [ + ...(0, interpolation_1.generateInterpolation)(options, ctx, branch.condition.content, branch.condition.loc, branch.condition.loc.start.offset, ctx.codeFeatures.all, '(', ')'), + ]; + for (const code of codes) { + yield code; + } + ctx.blockConditions.push((0, muggle_string_1.toString)(codes)); + addedBlockCondition = true; + yield ` `; + } + yield `{${common_1.newLine}`; + if (isFragment(node)) { + yield* ctx.resetDirectiveComments('end of v-if start'); + } + let prev; + for (const childNode of branch.children) { + yield* (0, templateChild_1.generateTemplateChild)(options, ctx, childNode, currentComponent, prev, componentCtxVar); + prev = childNode; + } + yield* ctx.generateAutoImportCompletion(); + yield `}${common_1.newLine}`; + if (addedBlockCondition) { + ctx.blockConditions[ctx.blockConditions.length - 1] = `!(${ctx.blockConditions[ctx.blockConditions.length - 1]})`; + } + } + ctx.blockConditions.length = originalBlockConditionsLength; + } + function isFragment(node) { + return node.codegenNode + && 'consequent' in node.codegenNode + && 'tag' in node.codegenNode.consequent + && node.codegenNode.consequent.tag === CompilerDOM.FRAGMENT; + } + + return vIf; +} + +var hasRequiredTemplateChild; + +function requireTemplateChild () { + if (hasRequiredTemplateChild) return templateChild; + hasRequiredTemplateChild = 1; + Object.defineProperty(templateChild, "__esModule", { value: true }); + templateChild.generateTemplateChild = generateTemplateChild; + templateChild.getVForNode = getVForNode; + templateChild.parseInterpolationNode = parseInterpolationNode; + const CompilerDOM = compilerDom_cjs; + const common_1 = requireCommon(); + const element_1 = requireElement(); + const interpolation_1 = interpolation; + const slotOutlet_1 = requireSlotOutlet(); + const vFor_1 = requireVFor(); + const vIf_1 = requireVIf(); + // @ts-ignore + const transformContext = { + onError: () => { }, + helperString: str => str.toString(), + replaceNode: () => { }, + cacheHandlers: false, + prefixIdentifiers: false, + scopes: { + vFor: 0, + vOnce: 0, + vPre: 0, + vSlot: 0, + }, + expressionPlugins: ['typescript'], + }; + function* generateTemplateChild(options, ctx, node, currentComponent, prevNode, componentCtxVar) { + if (prevNode?.type === CompilerDOM.NodeTypes.COMMENT) { + const commentText = prevNode.content.trim().split(' ')[0]; + if (commentText.match(/^@vue-skip\b[\s\S]*/)) { + yield `// @vue-skip${common_1.newLine}`; + return; + } + else if (commentText.match(/^@vue-ignore\b[\s\S]*/)) { + yield* ctx.ignoreError(); + } + else if (commentText.match(/^@vue-expect-error\b[\s\S]*/)) { + yield* ctx.expectError(prevNode); + } + } + const shouldInheritRootNodeAttrs = options.inheritAttrs; + if (node.type === CompilerDOM.NodeTypes.ROOT) { + let prev; + if (shouldInheritRootNodeAttrs && node.children.length === 1 && node.children[0].type === CompilerDOM.NodeTypes.ELEMENT) { + ctx.singleRootNode = node.children[0]; + } + for (const childNode of node.children) { + yield* generateTemplateChild(options, ctx, childNode, currentComponent, prev, componentCtxVar); + prev = childNode; + } + yield* ctx.resetDirectiveComments('end of root'); + } + else if (node.type === CompilerDOM.NodeTypes.ELEMENT) { + const vForNode = getVForNode(node); + const vIfNode = getVIfNode(node); + if (vForNode) { + yield* (0, vFor_1.generateVFor)(options, ctx, vForNode, currentComponent, componentCtxVar); + } + else if (vIfNode) { + yield* (0, vIf_1.generateVIf)(options, ctx, vIfNode, currentComponent, componentCtxVar); + } + else { + if (node.tagType === CompilerDOM.ElementTypes.SLOT) { + yield* (0, slotOutlet_1.generateSlotOutlet)(options, ctx, node, currentComponent, componentCtxVar); + } + else if (node.tagType === CompilerDOM.ElementTypes.ELEMENT + || node.tagType === CompilerDOM.ElementTypes.TEMPLATE) { + yield* (0, element_1.generateElement)(options, ctx, node, currentComponent, componentCtxVar); + } + else { + yield* (0, element_1.generateComponent)(options, ctx, node, currentComponent); + } + } + } + else if (node.type === CompilerDOM.NodeTypes.TEXT_CALL) { + // {{ var }} + yield* generateTemplateChild(options, ctx, node.content, currentComponent, undefined, componentCtxVar); + } + else if (node.type === CompilerDOM.NodeTypes.COMPOUND_EXPRESSION) { + // {{ ... }} {{ ... }} + for (const childNode of node.children) { + if (typeof childNode === 'object') { + yield* generateTemplateChild(options, ctx, childNode, currentComponent, undefined, componentCtxVar); + } + } + } + else if (node.type === CompilerDOM.NodeTypes.INTERPOLATION) { + // {{ ... }} + const [content, start] = parseInterpolationNode(node, options.template.content); + yield* (0, interpolation_1.generateInterpolation)(options, ctx, content, node.content.loc, start, ctx.codeFeatures.all, `(`, `)${common_1.endOfLine}`); + yield* ctx.resetDirectiveComments('end of INTERPOLATION'); + } + else if (node.type === CompilerDOM.NodeTypes.IF) { + // v-if / v-else-if / v-else + yield* (0, vIf_1.generateVIf)(options, ctx, node, currentComponent, componentCtxVar); + } + else if (node.type === CompilerDOM.NodeTypes.FOR) { + // v-for + yield* (0, vFor_1.generateVFor)(options, ctx, node, currentComponent, componentCtxVar); + } + else if (node.type === CompilerDOM.NodeTypes.TEXT) ; + } + // TODO: track https://github.com/vuejs/vue-next/issues/3498 + function getVForNode(node) { + const forDirective = node.props.find((prop) => prop.type === CompilerDOM.NodeTypes.DIRECTIVE + && prop.name === 'for'); + if (forDirective) { + let forNode; + CompilerDOM.processFor(node, forDirective, transformContext, _forNode => { + forNode = { ..._forNode }; + return undefined; + }); + if (forNode) { + forNode.children = [{ + ...node, + props: node.props.filter(prop => prop !== forDirective), + }]; + return forNode; + } + } + } + function getVIfNode(node) { + const forDirective = node.props.find((prop) => prop.type === CompilerDOM.NodeTypes.DIRECTIVE + && prop.name === 'if'); + if (forDirective) { + let ifNode; + CompilerDOM.processIf(node, forDirective, transformContext, _ifNode => { + ifNode = { ..._ifNode }; + return undefined; + }); + if (ifNode) { + for (const branch of ifNode.branches) { + branch.children = [{ + ...node, + props: node.props.filter(prop => prop !== forDirective), + }]; + } + return ifNode; + } + } + } + function parseInterpolationNode(node, template) { + let content = node.content.loc.source; + let start = node.content.loc.start.offset; + let leftCharacter; + let rightCharacter; + // fix https://github.com/vuejs/language-tools/issues/1787 + while ((leftCharacter = template.substring(start - 1, start)).trim() === '' && leftCharacter.length) { + start--; + content = leftCharacter + content; + } + while ((rightCharacter = template.substring(start + content.length, start + content.length + 1)).trim() === '' && rightCharacter.length) { + content = content + rightCharacter; + } + return [ + content, + start, + ]; + } + + return templateChild; +} + +var hasRequiredElementChildren; + +function requireElementChildren () { + if (hasRequiredElementChildren) return elementChildren; + hasRequiredElementChildren = 1; + Object.defineProperty(elementChildren, "__esModule", { value: true }); + elementChildren.generateElementChildren = generateElementChildren; + const CompilerDOM = compilerDom_cjs; + const common_1 = requireCommon(); + const templateChild_1 = requireTemplateChild(); + function* generateElementChildren(options, ctx, node, currentComponent, componentCtxVar) { + yield* ctx.resetDirectiveComments('end of element children start'); + let prev; + for (const childNode of node.children) { + yield* (0, templateChild_1.generateTemplateChild)(options, ctx, childNode, currentComponent, prev, componentCtxVar); + prev = childNode; + } + yield* ctx.generateAutoImportCompletion(); + // fix https://github.com/vuejs/language-tools/issues/932 + if (componentCtxVar + && !ctx.hasSlotElements.has(node) + && node.children.length + && node.tagType !== CompilerDOM.ElementTypes.ELEMENT + && node.tagType !== CompilerDOM.ElementTypes.TEMPLATE) { + ctx.usedComponentCtxVars.add(componentCtxVar); + yield `__VLS_nonNullable(${componentCtxVar}.slots).`; + yield* (0, common_1.wrapWith)(node.children[0].loc.start.offset, node.children[node.children.length - 1].loc.end.offset, ctx.codeFeatures.navigation, `default`); + yield common_1.endOfLine; + } + } + + return elementChildren; +} + +var elementDirectives = {}; + +Object.defineProperty(elementDirectives, "__esModule", { value: true }); +elementDirectives.generateElementDirectives = generateElementDirectives; +const CompilerDOM$5 = compilerDom_cjs; +const shared_1$k = require$$1$1; +const shared_2 = shared$3; +const common_1$7 = requireCommon(); +const camelized_1 = camelized; +const interpolation_1$1 = interpolation; +function* generateElementDirectives(options, ctx, node) { + for (const prop of node.props) { + if (prop.type === CompilerDOM$5.NodeTypes.DIRECTIVE + && prop.name !== 'slot' + && prop.name !== 'on' + && prop.name !== 'model' + && prop.name !== 'bind' + && prop.name !== 'scope' + && prop.name !== 'data') { + ctx.accessExternalVariable((0, shared_1$k.camelize)('v-' + prop.name), prop.loc.start.offset); + if (prop.arg?.type === CompilerDOM$5.NodeTypes.SIMPLE_EXPRESSION && !prop.arg.isStatic) { + yield* (0, interpolation_1$1.generateInterpolation)(options, ctx, prop.arg.content, prop.arg.loc, prop.arg.loc.start.offset + prop.arg.loc.source.indexOf(prop.arg.content), ctx.codeFeatures.all, '(', ')'); + yield common_1$7.endOfLine; + } + yield* (0, common_1$7.wrapWith)(prop.loc.start.offset, prop.loc.end.offset, ctx.codeFeatures.verification, `__VLS_directiveAsFunction(__VLS_directives.`, ...(0, camelized_1.generateCamelized)('v-' + prop.name, prop.loc.start.offset, { + ...ctx.codeFeatures.all, + verification: false, + completion: { + // fix https://github.com/vuejs/language-tools/issues/1905 + isAdditional: true, + }, + navigation: { + resolveRenameNewName: shared_1$k.camelize, + resolveRenameEditText: getPropRenameApply(prop.name), + }, + }), `)(null!, { ...__VLS_directiveBindingRestFields, `, ...(prop.exp?.type === CompilerDOM$5.NodeTypes.SIMPLE_EXPRESSION + ? [ + ...(0, common_1$7.wrapWith)(prop.exp.loc.start.offset, prop.exp.loc.end.offset, ctx.codeFeatures.verification, 'value'), + ': ', + ...(0, common_1$7.wrapWith)(prop.exp.loc.start.offset, prop.exp.loc.end.offset, ctx.codeFeatures.verification, ...(0, interpolation_1$1.generateInterpolation)(options, ctx, prop.exp.content, prop.exp.loc, prop.exp.loc.start.offset, ctx.codeFeatures.all, '(', ')')) + ] + : [`undefined`]), `}, null!, null!)`); + yield common_1$7.endOfLine; + } + } +} +function getPropRenameApply(oldName) { + return oldName === (0, shared_2.hyphenateAttr)(oldName) ? shared_2.hyphenateAttr : undefined; +} + +var propertyAccess = {}; + +Object.defineProperty(propertyAccess, "__esModule", { value: true }); +propertyAccess.generatePropertyAccess = generatePropertyAccess; +const common_1$6 = requireCommon(); +const interpolation_1 = interpolation; +const stringLiteralKey_1$1 = stringLiteralKey; +function* generatePropertyAccess(options, ctx, code, offset, features, astHolder) { + if (!options.compilerOptions.noPropertyAccessFromIndexSignature && common_1$6.variableNameRegex.test(code)) { + yield `.`; + yield offset !== undefined && features + ? [code, 'template', offset, features] + : code; + } + else if (code.startsWith('[') && code.endsWith(']')) { + yield* (0, interpolation_1.generateInterpolation)(options, ctx, code, astHolder, offset, features, '', ''); + } + else { + yield `[`; + yield* (0, stringLiteralKey_1$1.generateStringLiteralKey)(code, offset, features); + yield `]`; + } +} + +var hasRequiredElement; + +function requireElement () { + if (hasRequiredElement) return element; + hasRequiredElement = 1; + Object.defineProperty(element, "__esModule", { value: true }); + element.generateComponent = generateComponent; + element.generateElement = generateElement; + element.getCanonicalComponentName = getCanonicalComponentName; + element.getPossibleOriginalComponentNames = getPossibleOriginalComponentNames; + const CompilerDOM = compilerDom_cjs; + const shared_1 = require$$1$1; + const shared_2 = shared$3; + const common_1 = requireCommon(); + const camelized_1 = camelized; + const elementChildren_1 = requireElementChildren(); + const elementDirectives_1 = elementDirectives; + const elementEvents_1 = elementEvents; + const elementProps_1 = elementProps; + const interpolation_1 = interpolation; + const propertyAccess_1 = propertyAccess; + const templateChild_1 = requireTemplateChild(); + const objectProperty_1 = objectProperty; + const scriptSetupRanges_1 = requireScriptSetupRanges(); + const colonReg = /:/g; + function* generateComponent(options, ctx, node, currentComponent) { + const startTagOffset = node.loc.start.offset + options.template.content.substring(node.loc.start.offset).indexOf(node.tag); + const endTagOffset = !node.isSelfClosing && options.template.lang === 'html' ? node.loc.start.offset + node.loc.source.lastIndexOf(node.tag) : undefined; + const tagOffsets = endTagOffset !== undefined && endTagOffset > startTagOffset + ? [startTagOffset, endTagOffset] + : [startTagOffset]; + const propsFailedExps = []; + const possibleOriginalNames = getPossibleOriginalComponentNames(node.tag, true); + const matchImportName = possibleOriginalNames.find(name => options.scriptSetupImportComponentNames.has(name)); + const var_originalComponent = matchImportName ?? ctx.getInternalVariable(); + const var_functionalComponent = ctx.getInternalVariable(); + const var_componentInstance = ctx.getInternalVariable(); + const var_componentEmit = ctx.getInternalVariable(); + const var_componentEvents = ctx.getInternalVariable(); + const var_defineComponentCtx = ctx.getInternalVariable(); + const isComponentTag = node.tag.toLowerCase() === 'component'; + let props = node.props; + let dynamicTagInfo; + if (isComponentTag) { + for (const prop of node.props) { + if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE && prop.name === 'bind' && prop.arg?.loc.source === 'is' && prop.exp) { + dynamicTagInfo = { + exp: prop.exp.loc.source, + offsets: [prop.exp.loc.start.offset, undefined], + astHolder: prop.exp.loc, + }; + props = props.filter(p => p !== prop); + break; + } + } + } + else if (node.tag.includes('.')) { + // namespace tag + dynamicTagInfo = { + exp: node.tag, + astHolder: node.loc, + offsets: [startTagOffset, endTagOffset], + }; + } + if (matchImportName) { + // hover, renaming / find references support + yield `// @ts-ignore${common_1.newLine}`; // #2304 + yield `[`; + for (const tagOffset of tagOffsets) { + if (var_originalComponent === node.tag) { + yield [ + var_originalComponent, + 'template', + tagOffset, + ctx.codeFeatures.withoutHighlightAndCompletion, + ]; + } + else { + yield* (0, camelized_1.generateCamelized)((0, shared_1.capitalize)(node.tag), tagOffset, { + ...ctx.codeFeatures.withoutHighlightAndCompletion, + navigation: { + resolveRenameNewName: camelizeComponentName, + resolveRenameEditText: getTagRenameApply(node.tag), + }, + }); + } + yield `,`; + } + yield `]${common_1.endOfLine}`; + } + else if (dynamicTagInfo) { + yield `const ${var_originalComponent} = (`; + yield* (0, interpolation_1.generateInterpolation)(options, ctx, dynamicTagInfo.exp, dynamicTagInfo.astHolder, dynamicTagInfo.offsets[0], ctx.codeFeatures.all, '(', ')'); + if (dynamicTagInfo.offsets[1] !== undefined) { + yield `,`; + yield* (0, interpolation_1.generateInterpolation)(options, ctx, dynamicTagInfo.exp, dynamicTagInfo.astHolder, dynamicTagInfo.offsets[1], { + ...ctx.codeFeatures.all, + completion: false, + }, '(', ')'); + } + yield `)${common_1.endOfLine}`; + } + else if (!isComponentTag) { + yield `const ${var_originalComponent} = __VLS_resolvedLocalAndGlobalComponents.`; + yield* generateCanonicalComponentName(node.tag, startTagOffset, { + // with hover support + ...ctx.codeFeatures.withoutHighlightAndCompletionAndNavigation, + ...ctx.codeFeatures.verification, + }); + yield `${common_1.endOfLine}`; + const camelizedTag = (0, shared_1.camelize)(node.tag); + if (common_1.variableNameRegex.test(camelizedTag)) { + // renaming / find references support + yield `/** @type { [`; + for (const tagOffset of tagOffsets) { + for (const shouldCapitalize of (node.tag[0] === node.tag[0].toUpperCase() ? [false] : [true, false])) { + const expectName = shouldCapitalize ? (0, shared_1.capitalize)(camelizedTag) : camelizedTag; + yield `typeof __VLS_components.`; + yield* (0, camelized_1.generateCamelized)(shouldCapitalize ? (0, shared_1.capitalize)(node.tag) : node.tag, tagOffset, { + navigation: { + resolveRenameNewName: node.tag !== expectName ? camelizeComponentName : undefined, + resolveRenameEditText: getTagRenameApply(node.tag), + }, + }); + yield `, `; + } + } + yield `] } */${common_1.newLine}`; + // auto import support + if (options.edited) { + yield `// @ts-ignore${common_1.newLine}`; // #2304 + yield* (0, camelized_1.generateCamelized)((0, shared_1.capitalize)(node.tag), startTagOffset, { + completion: { + isAdditional: true, + onlyImport: true, + }, + }); + yield `${common_1.endOfLine}`; + } + } + } + else { + yield `const ${var_originalComponent} = {} as any${common_1.endOfLine}`; + } + yield `// @ts-ignore${common_1.newLine}`; + yield `const ${var_functionalComponent} = __VLS_asFunctionalComponent(${var_originalComponent}, new ${var_originalComponent}({`; + yield* (0, elementProps_1.generateElementProps)(options, ctx, node, props, false); + yield `}))${common_1.endOfLine}`; + yield `const ${var_componentInstance} = ${var_functionalComponent}(`; + yield* (0, common_1.wrapWith)(startTagOffset, startTagOffset + node.tag.length, ctx.codeFeatures.verification, `{`, ...(0, elementProps_1.generateElementProps)(options, ctx, node, props, true, propsFailedExps), `}`); + yield `, ...__VLS_functionalComponentArgsRest(${var_functionalComponent}))${common_1.endOfLine}`; + currentComponent = node; + for (const failedExp of propsFailedExps) { + yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.node.loc.source, failedExp.node.loc, failedExp.node.loc.start.offset, ctx.codeFeatures.all, failedExp.prefix, failedExp.suffix); + yield common_1.endOfLine; + } + const [refName, offset] = yield* generateVScope(options, ctx, node, props); + if (refName) { + const varName = ctx.getInternalVariable(); + ctx.templateRefs.set(refName, [varName, offset]); + ctx.usedComponentCtxVars.add(var_defineComponentCtx); + yield `var ${varName} = {} as (Parameters<NonNullable<typeof ${var_defineComponentCtx}['expose']>>[0] | null)`; + if (node.codegenNode?.type === CompilerDOM.NodeTypes.VNODE_CALL + && node.codegenNode.props?.type === CompilerDOM.NodeTypes.JS_OBJECT_EXPRESSION + && node.codegenNode.props.properties.some(({ key }) => key.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION && key.content === 'ref_for')) { + yield `[]`; + } + yield `${common_1.endOfLine}`; + } + const usedComponentEventsVar = yield* (0, elementEvents_1.generateElementEvents)(options, ctx, node, var_functionalComponent, var_componentInstance, var_componentEmit, var_componentEvents); + if (usedComponentEventsVar) { + ctx.usedComponentCtxVars.add(var_defineComponentCtx); + yield `let ${var_componentEmit}!: typeof ${var_defineComponentCtx}.emit${common_1.endOfLine}`; + yield `let ${var_componentEvents}!: __VLS_NormalizeEmits<typeof ${var_componentEmit}>${common_1.endOfLine}`; + } + if (options.vueCompilerOptions.fallthroughAttributes + && (node.props.some(prop => prop.type === CompilerDOM.NodeTypes.DIRECTIVE && prop.name === 'bind' && prop.exp?.loc.source === '$attrs') + || node === ctx.singleRootNode)) { + const varAttrs = ctx.getInternalVariable(); + ctx.inheritedAttrVars.add(varAttrs); + yield `var ${varAttrs}!: Parameters<typeof ${var_functionalComponent}>[0];\n`; + } + const slotDir = node.props.find(p => p.type === CompilerDOM.NodeTypes.DIRECTIVE && p.name === 'slot'); + if (slotDir) { + yield* generateComponentSlot(options, ctx, node, slotDir, currentComponent, var_defineComponentCtx); + } + else { + yield* (0, elementChildren_1.generateElementChildren)(options, ctx, node, currentComponent, var_defineComponentCtx); + } + if (ctx.usedComponentCtxVars.has(var_defineComponentCtx)) { + yield `const ${var_defineComponentCtx} = __VLS_pickFunctionalComponentCtx(${var_originalComponent}, ${var_componentInstance})${common_1.endOfLine}`; + } + } + function* generateElement(options, ctx, node, currentComponent, componentCtxVar) { + const startTagOffset = node.loc.start.offset + options.template.content.substring(node.loc.start.offset).indexOf(node.tag); + const endTagOffset = !node.isSelfClosing && options.template.lang === 'html' + ? node.loc.start.offset + node.loc.source.lastIndexOf(node.tag) + : undefined; + const propsFailedExps = []; + yield `__VLS_elementAsFunction(__VLS_intrinsicElements`; + yield* (0, propertyAccess_1.generatePropertyAccess)(options, ctx, node.tag, startTagOffset, ctx.codeFeatures.withoutHighlightAndCompletion); + if (endTagOffset !== undefined) { + yield `, __VLS_intrinsicElements`; + yield* (0, propertyAccess_1.generatePropertyAccess)(options, ctx, node.tag, endTagOffset, ctx.codeFeatures.withoutHighlightAndCompletion); + } + yield `)(`; + yield* (0, common_1.wrapWith)(startTagOffset, startTagOffset + node.tag.length, ctx.codeFeatures.verification, `{`, ...(0, elementProps_1.generateElementProps)(options, ctx, node, node.props, true, propsFailedExps), `}`); + yield `)${common_1.endOfLine}`; + for (const failedExp of propsFailedExps) { + yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.node.loc.source, failedExp.node.loc, failedExp.node.loc.start.offset, ctx.codeFeatures.all, failedExp.prefix, failedExp.suffix); + yield common_1.endOfLine; + } + const [refName, offset] = yield* generateVScope(options, ctx, node, node.props); + if (refName) { + ctx.templateRefs.set(refName, [`__VLS_nativeElements['${node.tag}']`, offset]); + } + const slotDir = node.props.find(p => p.type === CompilerDOM.NodeTypes.DIRECTIVE && p.name === 'slot'); + if (slotDir && componentCtxVar) { + yield* generateComponentSlot(options, ctx, node, slotDir, currentComponent, componentCtxVar); + } + else { + yield* (0, elementChildren_1.generateElementChildren)(options, ctx, node, currentComponent, componentCtxVar); + } + if (options.vueCompilerOptions.fallthroughAttributes + && (node.props.some(prop => prop.type === CompilerDOM.NodeTypes.DIRECTIVE && prop.name === 'bind' && prop.exp?.loc.source === '$attrs') + || node === ctx.singleRootNode)) { + ctx.inheritedAttrVars.add(`__VLS_intrinsicElements.${node.tag}`); + } + } + function* generateVScope(options, ctx, node, props) { + const vScope = props.find(prop => prop.type === CompilerDOM.NodeTypes.DIRECTIVE && (prop.name === 'scope' || prop.name === 'data')); + let inScope = false; + let originalConditionsNum = ctx.blockConditions.length; + if (vScope?.type === CompilerDOM.NodeTypes.DIRECTIVE && vScope.exp) { + const scopeVar = ctx.getInternalVariable(); + const condition = `__VLS_withScope(__VLS_ctx, ${scopeVar})`; + yield `const ${scopeVar} = `; + yield [ + vScope.exp.loc.source, + 'template', + vScope.exp.loc.start.offset, + ctx.codeFeatures.all, + ]; + yield common_1.endOfLine; + yield `if (${condition}) {${common_1.newLine}`; + ctx.blockConditions.push(condition); + inScope = true; + } + yield* (0, elementDirectives_1.generateElementDirectives)(options, ctx, node); + const [refName, offset] = yield* generateReferencesForElements(options, ctx, node); // <el ref="foo" /> + yield* generateReferencesForScopedCssClasses(options, ctx, node); + if (inScope) { + yield `}${common_1.newLine}`; + ctx.blockConditions.length = originalConditionsNum; + } + return [refName, offset]; + } + function getCanonicalComponentName(tagText) { + return common_1.variableNameRegex.test(tagText) + ? tagText + : (0, shared_1.capitalize)((0, shared_1.camelize)(tagText.replace(colonReg, '-'))); + } + function getPossibleOriginalComponentNames(tagText, deduplicate) { + const name1 = (0, shared_1.capitalize)((0, shared_1.camelize)(tagText)); + const name2 = (0, shared_1.camelize)(tagText); + const name3 = tagText; + const names = [name1]; + if (!deduplicate || name2 !== name1) { + names.push(name2); + } + if (!deduplicate || name3 !== name2) { + names.push(name3); + } + return names; + } + function* generateCanonicalComponentName(tagText, offset, features) { + if (common_1.variableNameRegex.test(tagText)) { + yield [tagText, 'template', offset, features]; + } + else { + yield* (0, camelized_1.generateCamelized)((0, shared_1.capitalize)(tagText.replace(colonReg, '-')), offset, features); + } + } + function* generateComponentSlot(options, ctx, node, slotDir, currentComponent, componentCtxVar) { + yield `{${common_1.newLine}`; + ctx.usedComponentCtxVars.add(componentCtxVar); + if (currentComponent) { + ctx.hasSlotElements.add(currentComponent); + } + const slotBlockVars = []; + yield `const {`; + if (slotDir?.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION && slotDir.arg.content) { + yield* (0, objectProperty_1.generateObjectProperty)(options, ctx, slotDir.arg.loc.source, slotDir.arg.loc.start.offset, slotDir.arg.isStatic ? ctx.codeFeatures.withoutHighlight : ctx.codeFeatures.all, slotDir.arg.loc, false, true); + yield ': __VLS_thisSlot'; + } + else { + yield `default: `; + yield* (0, common_1.wrapWith)(slotDir.loc.start.offset, slotDir.loc.start.offset + (slotDir.loc.source.startsWith('#') + ? '#'.length + : slotDir.loc.source.startsWith('v-slot:') + ? 'v-slot:'.length + : 0), ctx.codeFeatures.withoutHighlightAndCompletion, `__VLS_thisSlot`); + } + yield `} = __VLS_nonNullable(${componentCtxVar}.slots)${common_1.endOfLine}`; + if (slotDir?.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + const slotAst = (0, common_1.createTsAst)(options.ts, slotDir, `(${slotDir.exp.content}) => {}`); + (0, common_1.collectVars)(options.ts, slotAst, slotAst, slotBlockVars); + if (!slotDir.exp.content.includes(':')) { + yield `const [`; + yield [ + slotDir.exp.content, + 'template', + slotDir.exp.loc.start.offset, + ctx.codeFeatures.all, + ]; + yield `] = __VLS_getSlotParams(__VLS_thisSlot)${common_1.endOfLine}`; + } + else { + yield `const `; + yield [ + slotDir.exp.content, + 'template', + slotDir.exp.loc.start.offset, + ctx.codeFeatures.all, + ]; + yield ` = __VLS_getSlotParam(__VLS_thisSlot)${common_1.endOfLine}`; + } + } + for (const varName of slotBlockVars) { + ctx.addLocalVariable(varName); + } + yield* ctx.resetDirectiveComments('end of slot children start'); + let prev; + for (const childNode of node.children) { + yield* (0, templateChild_1.generateTemplateChild)(options, ctx, childNode, currentComponent, prev, componentCtxVar); + prev = childNode; + } + for (const varName of slotBlockVars) { + ctx.removeLocalVariable(varName); + } + let isStatic = true; + if (slotDir?.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + isStatic = slotDir.arg.isStatic; + } + if (isStatic && slotDir && !slotDir.arg) { + yield `__VLS_nonNullable(${componentCtxVar}.slots)['`; + yield [ + '', + 'template', + slotDir.loc.start.offset + (slotDir.loc.source.startsWith('#') + ? '#'.length : slotDir.loc.source.startsWith('v-slot:') + ? 'v-slot:'.length + : 0), + ctx.codeFeatures.completion, + ]; + yield `'/* empty slot name completion */]${common_1.newLine}`; + } + yield* ctx.generateAutoImportCompletion(); + yield `}${common_1.newLine}`; + } + function* generateReferencesForElements(options, ctx, node) { + for (const prop of node.props) { + if (prop.type === CompilerDOM.NodeTypes.ATTRIBUTE + && prop.name === 'ref' + && prop.value) { + const [content, startOffset] = normalizeAttributeValue(prop.value); + yield `// @ts-ignore navigation for \`const ${content} = ref()\`${common_1.newLine}`; + yield `__VLS_ctx`; + yield* (0, propertyAccess_1.generatePropertyAccess)(options, ctx, content, startOffset, ctx.codeFeatures.navigation, prop.value.loc); + yield common_1.endOfLine; + if (common_1.variableNameRegex.test(content)) { + ctx.accessExternalVariable(content, startOffset); + } + return [content, startOffset]; + } + } + return []; + } + function* generateReferencesForScopedCssClasses(options, ctx, node) { + for (const prop of node.props) { + if (prop.type === CompilerDOM.NodeTypes.ATTRIBUTE + && prop.name === 'class' + && prop.value) { + if (options.template.lang === 'pug') { + const getClassOffset = Reflect.get(prop.value.loc.start, 'getClassOffset'); + const content = prop.value.loc.source.slice(1, -1); + let startOffset = 1; + for (const className of content.split(' ')) { + if (className) { + ctx.scopedClasses.push({ + source: 'template', + className, + offset: getClassOffset(startOffset), + }); + } + startOffset += className.length + 1; + } + } + else { + const [content, startOffset] = normalizeAttributeValue(prop.value); + if (content) { + const classes = collectClasses(content, startOffset + (0)); + ctx.scopedClasses.push(...classes); + } + else { + ctx.emptyClassOffsets.push(startOffset); + } + } + } + else if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE + && prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION + && prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION + && prop.arg.content === 'class') { + const content = '`${' + prop.exp.content + '}`'; + const startOffset = prop.exp.loc.start.offset - 3; + const { ts } = options; + const ast = ts.createSourceFile('', content, 99); + const literals = []; + ts.forEachChild(ast, node => { + if (!ts.isExpressionStatement(node) || + !isTemplateExpression(node.expression)) { + return; + } + const expression = node.expression.templateSpans[0].expression; + if (ts.isStringLiteralLike(expression)) { + literals.push(expression); + } + if (ts.isArrayLiteralExpression(expression)) { + walkArrayLiteral(expression); + } + if (ts.isObjectLiteralExpression(expression)) { + walkObjectLiteral(expression); + } + }); + for (const literal of literals) { + const classes = collectClasses(literal.text, literal.end - literal.text.length - 1 + startOffset); + ctx.scopedClasses.push(...classes); + } + function walkArrayLiteral(node) { + const { elements } = node; + for (const element of elements) { + if (ts.isStringLiteralLike(element)) { + literals.push(element); + } + else if (ts.isObjectLiteralExpression(element)) { + walkObjectLiteral(element); + } + } + } + function walkObjectLiteral(node) { + const { properties } = node; + for (const property of properties) { + if (ts.isPropertyAssignment(property)) { + const { name } = property; + if (ts.isIdentifier(name)) { + walkIdentifier(name); + } + else if (ts.isStringLiteral(name)) { + literals.push(name); + } + else if (ts.isComputedPropertyName(name)) { + const { expression } = name; + if (ts.isStringLiteralLike(expression)) { + literals.push(expression); + } + } + } + else if (ts.isShorthandPropertyAssignment(property)) { + walkIdentifier(property.name); + } + } + } + function walkIdentifier(node) { + const text = (0, scriptSetupRanges_1.getNodeText)(ts, node, ast); + ctx.scopedClasses.push({ + source: 'template', + className: text, + offset: node.end - text.length + startOffset + }); + } + } + } + } + function camelizeComponentName(newName) { + return (0, shared_1.camelize)('-' + newName); + } + function getTagRenameApply(oldName) { + return oldName === (0, shared_2.hyphenateTag)(oldName) ? shared_2.hyphenateTag : undefined; + } + function normalizeAttributeValue(node) { + let offset = node.loc.start.offset; + let content = node.loc.source; + if ((content.startsWith(`'`) && content.endsWith(`'`)) + || (content.startsWith(`"`) && content.endsWith(`"`))) { + offset++; + content = content.slice(1, -1); + } + return [content, offset]; + } + function collectClasses(content, startOffset = 0) { + const classes = []; + let currentClassName = ''; + let offset = 0; + for (const char of (content + ' ')) { + if (char.trim() === '') { + if (currentClassName !== '') { + classes.push({ + source: 'template', + className: currentClassName, + offset: offset + startOffset + }); + offset += currentClassName.length; + currentClassName = ''; + } + offset += char.length; + } + else { + currentClassName += char; + } + } + return classes; + } + // isTemplateExpression is missing in tsc + function isTemplateExpression(node) { + return node.kind === 228; + } + + return element; +} + +var styleScopedClasses = {}; + +Object.defineProperty(styleScopedClasses, "__esModule", { value: true }); +styleScopedClasses.generateStyleScopedClasses = generateStyleScopedClasses; +const common_1$5 = requireCommon(); +function* generateStyleScopedClasses(ctx, withDot = false) { + for (const offset of ctx.emptyClassOffsets) { + yield `__VLS_styleScopedClasses['`; + yield [ + '', + 'template', + offset, + ctx.codeFeatures.additionalCompletion, + ]; + yield `']${common_1$5.endOfLine}`; + } + for (const { source, className, offset } of ctx.scopedClasses) { + yield `__VLS_styleScopedClasses[`; + yield [ + '', + source, + offset - (withDot ? 1 : 0), + ctx.codeFeatures.navigation, + ]; + yield `'`; + // fix https://github.com/vuejs/language-tools/issues/4537 + yield* escapeString(source, className, offset, ['\\', '\'']); + yield `'`; + yield [ + '', + source, + offset + className.length, + ctx.codeFeatures.navigationWithoutRename, + ]; + yield `]${common_1$5.endOfLine}`; + } + yield common_1$5.newLine; + function* escapeString(source, className, offset, escapeTargets) { + let count = 0; + const currentEscapeTargets = [...escapeTargets]; + const firstEscapeTarget = currentEscapeTargets.shift(); + const splitted = className.split(firstEscapeTarget); + for (let i = 0; i < splitted.length; i++) { + const part = splitted[i]; + const partLength = part.length; + if (escapeTargets.length > 0) { + yield* escapeString(source, part, offset + count, [...currentEscapeTargets]); + } + else { + yield [ + part, + source, + offset + count, + ctx.codeFeatures.navigationAndAdditionalCompletion, + ]; + } + if (i !== splitted.length - 1) { + yield '\\'; + yield [ + firstEscapeTarget, + source, + offset + count + partLength, + ctx.codeFeatures.navigationAndAdditionalCompletion, + ]; + count += partLength + 1; + } + else { + count += partLength; + } + } + } +} + +Object.defineProperty(template$1, "__esModule", { value: true }); +template$1.generateTemplate = generateTemplate; +template$1.forEachElementNode = forEachElementNode; +const CompilerDOM$4 = compilerDom_cjs; +const common_1$4 = requireCommon(); +const context_1 = context$1; +const element_1 = requireElement(); +const objectProperty_1 = objectProperty; +const stringLiteralKey_1 = stringLiteralKey; +const templateChild_1$1 = requireTemplateChild(); +const styleScopedClasses_1 = styleScopedClasses; +function* generateTemplate(options) { + const ctx = (0, context_1.createTemplateCodegenContext)(options); + if (options.slotsAssignName) { + ctx.addLocalVariable(options.slotsAssignName); + } + if (options.propsAssignName) { + ctx.addLocalVariable(options.propsAssignName); + } + ctx.addLocalVariable('$refs'); + yield* generatePreResolveComponents(); + if (options.template.ast) { + yield* (0, templateChild_1$1.generateTemplateChild)(options, ctx, options.template.ast, undefined, undefined, undefined); + } + yield* (0, styleScopedClasses_1.generateStyleScopedClasses)(ctx); + if (!options.hasDefineSlots) { + yield `var __VLS_slots!:`; + yield* generateSlotsType(); + yield common_1$4.endOfLine; + } + yield* generateInheritedAttrs(); + yield* ctx.generateAutoImportCompletion(); + yield* generateRefs(); + return ctx; + function* generateRefs() { + yield `const __VLS_refs = {${common_1$4.newLine}`; + for (const [name, [varName, offset]] of ctx.templateRefs) { + yield* (0, stringLiteralKey_1.generateStringLiteralKey)(name, offset, ctx.codeFeatures.navigationAndCompletion); + yield `: ${varName},${common_1$4.newLine}`; + } + yield `}${common_1$4.endOfLine}`; + yield `var $refs!: typeof __VLS_refs${common_1$4.endOfLine}`; + } + function* generateSlotsType() { + for (const { expVar, varName } of ctx.dynamicSlots) { + ctx.hasSlot = true; + yield `Partial<Record<NonNullable<typeof ${expVar}>, (_: typeof ${varName}) => any>> &${common_1$4.newLine}`; + } + yield `{${common_1$4.newLine}`; + for (const slot of ctx.slots) { + ctx.hasSlot = true; + if (slot.name && slot.loc !== undefined) { + yield* (0, objectProperty_1.generateObjectProperty)(options, ctx, slot.name, slot.loc, ctx.codeFeatures.withoutHighlightAndCompletion, slot.nodeLoc); + } + else { + yield* (0, common_1$4.wrapWith)(slot.tagRange[0], slot.tagRange[1], ctx.codeFeatures.withoutHighlightAndCompletion, `default`); + } + yield `?(_: typeof ${slot.varName}): any,${common_1$4.newLine}`; + } + yield `}`; + } + function* generateInheritedAttrs() { + yield 'var __VLS_inheritedAttrs!: {}'; + for (const varName of ctx.inheritedAttrVars) { + yield ` & typeof ${varName}`; + } + yield common_1$4.endOfLine; + } + function* generatePreResolveComponents() { + yield `let __VLS_resolvedLocalAndGlobalComponents!: Required<{}`; + if (options.template.ast) { + const components = new Set(); + for (const node of forEachElementNode(options.template.ast)) { + if (node.tagType === CompilerDOM$4.ElementTypes.COMPONENT + && node.tag.toLowerCase() !== 'component' + && !node.tag.includes('.') // namespace tag + ) { + if (components.has(node.tag)) { + continue; + } + components.add(node.tag); + yield common_1$4.newLine; + yield ` & __VLS_WithComponent<'${(0, element_1.getCanonicalComponentName)(node.tag)}', typeof __VLS_localComponents, `; + yield (0, element_1.getPossibleOriginalComponentNames)(node.tag, false) + .map(name => `"${name}"`) + .join(', '); + yield `>`; + } + } + } + yield `>${common_1$4.endOfLine}`; + } +} +function* forEachElementNode(node) { + if (node.type === CompilerDOM$4.NodeTypes.ROOT) { + for (const child of node.children) { + yield* forEachElementNode(child); + } + } + else if (node.type === CompilerDOM$4.NodeTypes.ELEMENT) { + const patchForNode = (0, templateChild_1$1.getVForNode)(node); + if (patchForNode) { + yield* forEachElementNode(patchForNode); + } + else { + yield node; + for (const child of node.children) { + yield* forEachElementNode(child); + } + } + } + else if (node.type === CompilerDOM$4.NodeTypes.IF) { + // v-if / v-else-if / v-else + for (let i = 0; i < node.branches.length; i++) { + const branch = node.branches[i]; + for (const childNode of branch.children) { + yield* forEachElementNode(childNode); + } + } + } + else if (node.type === CompilerDOM$4.NodeTypes.FOR) { + // v-for + for (const child of node.children) { + yield* forEachElementNode(child); + } + } +} + +var languagePlugin = {}; + +var plugins = {}; + +var fileHtml = {}; + +Object.defineProperty(fileHtml, "__esModule", { value: true }); +const sfcBlockReg$1 = /\<(script|style)\b([\s\S]*?)\>([\s\S]*?)\<\/\1\>/g; +const langReg = /\blang\s*=\s*(['\"]?)(\S*)\b\1/; +const plugin$b = ({ vueCompilerOptions }) => { + return { + version: 2.1, + getLanguageId(fileName) { + if (vueCompilerOptions.petiteVueExtensions.some(ext => fileName.endsWith(ext))) { + return 'html'; + } + }, + isValidFile(_fileName, languageId) { + return languageId === 'html'; + }, + parseSFC2(fileName, languageId, content) { + if (languageId !== 'html') { + return; + } + let sfc = { + descriptor: { + filename: fileName, + source: content, + template: null, + script: null, + scriptSetup: null, + styles: [], + customBlocks: [], + cssVars: [], + shouldForceReload: () => false, + slotted: false, + }, + errors: [], + }; + let templateContent = content; + for (const match of content.matchAll(sfcBlockReg$1)) { + const matchText = match[0]; + const tag = match[1]; + const attrs = match[2]; + const lang = attrs.match(langReg)?.[2]; + const content = match[3]; + const contentStart = match.index + matchText.indexOf(content); + if (tag === 'style') { + sfc.descriptor.styles.push({ + attrs: {}, + content, + loc: { + start: { column: -1, line: -1, offset: contentStart }, + end: { column: -1, line: -1, offset: contentStart + content.length }, + source: content, + }, + type: 'style', + lang, + }); + } + // ignore `<script src="...">` + else if (tag === 'script' && attrs.indexOf('src=') === -1) { + let type = attrs.indexOf('type=') >= 0 ? 'scriptSetup' : 'script'; + sfc.descriptor[type] = { + attrs: {}, + content, + loc: { + start: { column: -1, line: -1, offset: contentStart }, + end: { column: -1, line: -1, offset: contentStart + content.length }, + source: content, + }, + type: 'script', + lang, + }; + } + templateContent = templateContent.substring(0, match.index) + ' '.repeat(matchText.length) + templateContent.substring(match.index + matchText.length); + } + sfc.descriptor.template = { + attrs: {}, + content: templateContent, + loc: { + start: { column: -1, line: -1, offset: 0 }, + end: { column: -1, line: -1, offset: templateContent.length }, + source: templateContent, + }, + type: 'template', + ast: {}, + }; + return sfc; + } + }; +}; +fileHtml.default = plugin$b; + +var fileMd = {}; + +var buildMappings$1 = {}; + +Object.defineProperty(buildMappings$1, "__esModule", { value: true }); +buildMappings$1.buildMappings = buildMappings; +function buildMappings(chunks) { + let length = 0; + const mappings = []; + for (const segment of chunks) { + if (typeof segment === 'string') { + length += segment.length; + } + else { + mappings.push({ + sourceOffsets: [segment[2]], + generatedOffsets: [length], + lengths: [segment[0].length], + data: segment[3], + }); + length += segment[0].length; + } + } + return mappings; +} + +var parseSfc = {}; + +Object.defineProperty(parseSfc, "__esModule", { value: true }); +parseSfc.parse = parse$b; +const compiler = compilerDom_cjs; +function parse$b(source) { + const errors = []; + const ast = compiler.parse(source, { + // there are no components at SFC parsing level + isNativeTag: () => true, + // preserve all whitespaces + isPreTag: () => true, + parseMode: 'sfc', + onError: e => { + errors.push(e); + }, + comments: true, + }); + const descriptor = { + filename: 'anonymous.vue', + source, + template: null, + script: null, + scriptSetup: null, + styles: [], + customBlocks: [], + cssVars: [], + slotted: false, + shouldForceReload: () => false, + }; + ast.children.forEach(node => { + if (node.type !== compiler.NodeTypes.ELEMENT) { + return; + } + switch (node.tag) { + case 'template': + descriptor.template = createBlock(node, source); + break; + case 'script': + const scriptBlock = createBlock(node, source); + const isSetup = !!scriptBlock.attrs.setup; + if (isSetup && !descriptor.scriptSetup) { + descriptor.scriptSetup = scriptBlock; + break; + } + if (!isSetup && !descriptor.script) { + descriptor.script = scriptBlock; + break; + } + break; + case 'style': + const styleBlock = createBlock(node, source); + descriptor.styles.push(styleBlock); + break; + default: + descriptor.customBlocks.push(createBlock(node, source)); + break; + } + }); + return { + descriptor, + errors, + }; +} +function createBlock(node, source) { + const type = node.tag; + let { start, end } = node.loc; + let content = ''; + if (node.children.length) { + start = node.children[0].loc.start; + end = node.children[node.children.length - 1].loc.end; + content = source.slice(start.offset, end.offset); + } + else { + const offset = node.loc.source.indexOf(`</`); + if (offset > -1) { + start = { + line: start.line, + column: start.column + offset, + offset: start.offset + offset + }; + } + end = Object.assign({}, start); + } + const loc = { + source: content, + start, + end + }; + const attrs = {}; + const block = { + type, + content, + loc, + attrs + }; + node.props.forEach(p => { + if (p.type === compiler.NodeTypes.ATTRIBUTE) { + attrs[p.name] = p.value ? p.value.content || true : true; + if (p.name === 'lang') { + block.lang = p.value && p.value.content; + } + else if (p.name === 'src') { + block.src = p.value && p.value.content; + } + else if (type === 'style') { + if (p.name === 'scoped') { + block.scoped = true; + } + else if (p.name === 'module') { + block.module = { + name: p.value?.content ?? '$style', + offset: p.value?.content ? p.value?.loc.start.offset - node.loc.start.offset : undefined + }; + } + } + else if (type === 'script' && p.name === 'setup') { + block.setup = attrs.setup; + } + } + }); + return block; +} + +Object.defineProperty(fileMd, "__esModule", { value: true }); +const language_core_1$b = languageCore$1; +const muggle_string_1$2 = out$2; +const buildMappings_1$1 = buildMappings$1; +const parseSfc_1$1 = parseSfc; +const codeblockReg = /(`{3,})[\s\S]+?\1/g; +const inlineCodeblockReg = /`[^\n`]+?`/g; +const scriptSetupReg = /\\\<[\s\S]+?\>\n?/g; +const sfcBlockReg = /\<(script|style)\b[\s\S]*?\>([\s\S]*?)\<\/\1\>/g; +const angleBracketReg = /\<\S*\:\S*\>/g; +const linkReg = /\[[\s\S]*?\]\([\s\S]*?\)/g; +const codeSnippetImportReg = /^\s*<<<\s*.+/gm; +const plugin$a = ({ vueCompilerOptions }) => { + return { + version: 2.1, + getLanguageId(fileName) { + if (vueCompilerOptions.vitePressExtensions.some(ext => fileName.endsWith(ext))) { + return 'markdown'; + } + }, + isValidFile(_fileName, languageId) { + return languageId === 'markdown'; + }, + parseSFC2(_fileName, languageId, content) { + if (languageId !== 'markdown') { + return; + } + content = content + // code block + .replace(codeblockReg, (match, quotes) => quotes + ' '.repeat(match.length - quotes.length * 2) + quotes) + // inline code block + .replace(inlineCodeblockReg, match => `\`${' '.repeat(match.length - 2)}\``) + // # \<script setup> + .replace(scriptSetupReg, match => ' '.repeat(match.length)) + // <<< https://vitepress.dev/guide/markdown#import-code-snippets + .replace(codeSnippetImportReg, match => ' '.repeat(match.length)); + const codes = []; + for (const match of content.matchAll(sfcBlockReg)) { + if (match.index !== undefined) { + const matchText = match[0]; + codes.push([matchText, undefined, match.index]); + codes.push('\n\n'); + content = content.substring(0, match.index) + ' '.repeat(matchText.length) + content.substring(match.index + matchText.length); + } + } + content = content + // angle bracket: <http://foo.com> + .replace(angleBracketReg, match => ' '.repeat(match.length)) + // [foo](http://foo.com) + .replace(linkReg, match => ' '.repeat(match.length)); + codes.push('<template>\n'); + codes.push([content, undefined, 0]); + codes.push('\n</template>'); + const file2VueSourceMap = (0, language_core_1$b.defaultMapperFactory)((0, buildMappings_1$1.buildMappings)(codes)); + const sfc = (0, parseSfc_1$1.parse)((0, muggle_string_1$2.toString)(codes)); + if (sfc.descriptor.template) { + sfc.descriptor.template.lang = 'md'; + transformRange(sfc.descriptor.template); + } + if (sfc.descriptor.script) { + transformRange(sfc.descriptor.script); + } + if (sfc.descriptor.scriptSetup) { + transformRange(sfc.descriptor.scriptSetup); + } + for (const style of sfc.descriptor.styles) { + transformRange(style); + } + for (const customBlock of sfc.descriptor.customBlocks) { + transformRange(customBlock); + } + return sfc; + function transformRange(block) { + const { start, end } = block.loc; + const startOffset = start.offset; + const endOffset = end.offset; + start.offset = -1; + end.offset = -1; + for (const [offset] of file2VueSourceMap.toSourceLocation(startOffset)) { + start.offset = offset; + break; + } + for (const [offset] of file2VueSourceMap.toSourceLocation(endOffset)) { + end.offset = offset; + break; + } + } + } + }; +}; +fileMd.default = plugin$a; + +var fileVue = {}; + +Object.defineProperty(fileVue, "__esModule", { value: true }); +const parseSfc_1 = parseSfc; +const plugin$9 = ({ vueCompilerOptions }) => { + return { + version: 2.1, + getLanguageId(fileName) { + if (vueCompilerOptions.extensions.some(ext => fileName.endsWith(ext))) { + return 'vue'; + } + }, + isValidFile(_fileName, languageId) { + return languageId === 'vue'; + }, + parseSFC2(_fileName, languageId, content) { + if (languageId !== 'vue') { + return; + } + return (0, parseSfc_1.parse)(content); + }, + updateSFC(sfc, change) { + const blocks = [ + sfc.descriptor.template, + sfc.descriptor.script, + sfc.descriptor.scriptSetup, + ...sfc.descriptor.styles, + ...sfc.descriptor.customBlocks, + ].filter((block) => !!block); + const hitBlock = blocks.find(block => change.start >= block.loc.start.offset && change.end <= block.loc.end.offset); + if (!hitBlock) { + return; + } + const oldContent = hitBlock.content; + const newContent = hitBlock.content = + hitBlock.content.substring(0, change.start - hitBlock.loc.start.offset) + + change.newText + + hitBlock.content.substring(change.end - hitBlock.loc.start.offset); + // #3449 + const endTagRegex = new RegExp(`</\\s*${hitBlock.type}\\s*>`); + const insertedEndTag = !!oldContent.match(endTagRegex) !== !!newContent.match(endTagRegex); + if (insertedEndTag) { + return; + } + const lengthDiff = change.newText.length - (change.end - change.start); + for (const block of blocks) { + if (block.loc.start.offset > change.end) { + block.loc.start.offset += lengthDiff; + } + if (block.loc.end.offset >= change.end) { + block.loc.end.offset += lengthDiff; + } + } + return sfc; + }, + }; +}; +fileVue.default = plugin$9; + +var vueRootTags = {}; + +var shared$1 = {}; + +Object.defineProperty(shared$1, "__esModule", { value: true }); +shared$1.allCodeFeatures = void 0; +shared$1.allCodeFeatures = { + verification: true, + completion: true, + semantic: true, + navigation: true, + structure: true, + format: true, +}; + +Object.defineProperty(vueRootTags, "__esModule", { value: true }); +const muggle_string_1$1 = out$2; +const shared_1$j = shared$1; +const plugin$8 = () => { + return { + version: 2.1, + getEmbeddedCodes() { + return [{ + id: 'root_tags', + lang: 'vue-root-tags', + }]; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + if (embeddedFile.id === 'root_tags') { + embeddedFile.content.push([sfc.content, undefined, 0, shared_1$j.allCodeFeatures]); + for (const block of [ + sfc.script, + sfc.scriptSetup, + sfc.template, + ...sfc.styles, + ...sfc.customBlocks, + ]) { + if (!block) { + continue; + } + let content = block.content; + if (content.endsWith('\r\n')) { + content = content.slice(0, -2); + } + else if (content.endsWith('\n')) { + content = content.slice(0, -1); + } + const offset = content.lastIndexOf('\n') + 1; + // fix folding range end position failed to mapping + (0, muggle_string_1$1.replaceSourceRange)(embeddedFile.content, undefined, block.startTagEnd, block.endTagStart, sfc.content.substring(block.startTagEnd, block.startTagEnd + offset), [ + '', + undefined, + block.startTagEnd + offset, + { structure: true }, + ], sfc.content.substring(block.startTagEnd + offset, block.endTagStart)); + } + } + else { + embeddedFile.parentCodeId ??= 'root_tags'; + } + }, + }; +}; +vueRootTags.default = plugin$8; + +var vueScriptJs = {}; + +Object.defineProperty(vueScriptJs, "__esModule", { value: true }); +const plugin$7 = ({ modules }) => { + return { + version: 2.1, + compileSFCScript(lang, script) { + if (lang === 'js' || lang === 'ts' || lang === 'jsx' || lang === 'tsx') { + const ts = modules.typescript; + return ts.createSourceFile('test.' + lang, script, 99); + } + }, + }; +}; +vueScriptJs.default = plugin$7; + +var vueSfcCustomblocks = {}; + +Object.defineProperty(vueSfcCustomblocks, "__esModule", { value: true }); +const shared_1$i = shared$1; +const plugin$6 = () => { + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + return sfc.customBlocks.map((customBlock, i) => ({ + id: 'custom_block_' + i, + lang: customBlock.lang, + })); + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + if (embeddedFile.id.startsWith('custom_block_')) { + const index = parseInt(embeddedFile.id.slice('custom_block_'.length)); + const customBlock = sfc.customBlocks[index]; + embeddedFile.content.push([ + customBlock.content, + customBlock.name, + 0, + shared_1$i.allCodeFeatures, + ]); + } + }, + }; +}; +vueSfcCustomblocks.default = plugin$6; + +var vueSfcScripts = {}; + +Object.defineProperty(vueSfcScripts, "__esModule", { value: true }); +const plugin$5 = () => { + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + const names = []; + if (sfc.script) { + names.push({ id: 'script_raw', lang: sfc.script.lang }); + } + if (sfc.scriptSetup) { + names.push({ id: 'scriptsetup_raw', lang: sfc.scriptSetup.lang }); + } + return names; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + const script = embeddedFile.id === 'script_raw' ? sfc.script + : embeddedFile.id === 'scriptsetup_raw' ? sfc.scriptSetup + : undefined; + if (script) { + embeddedFile.content.push([ + script.content, + script.name, + 0, + { + structure: true, + format: true, + }, + ]); + } + }, + }; +}; +vueSfcScripts.default = plugin$5; + +var vueSfcStyles = {}; + +Object.defineProperty(vueSfcStyles, "__esModule", { value: true }); +const shared_1$h = shared$1; +const plugin$4 = () => { + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + const result = []; + for (let i = 0; i < sfc.styles.length; i++) { + const style = sfc.styles[i]; + if (style) { + result.push({ + id: 'style_' + i, + lang: style.lang, + }); + if (style.cssVars.length) { + result.push({ + id: 'style_' + i + '_inline_ts', + lang: 'ts', + }); + } + } + } + return result; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + if (embeddedFile.id.startsWith('style_')) { + const index = parseInt(embeddedFile.id.split('_')[1]); + const style = sfc.styles[index]; + if (embeddedFile.id.endsWith('_inline_ts')) { + embeddedFile.parentCodeId = 'style_' + index; + for (const cssVar of style.cssVars) { + embeddedFile.content.push('(', [ + cssVar.text, + style.name, + cssVar.offset, + shared_1$h.allCodeFeatures, + ], ');\n'); + } + } + else { + embeddedFile.content.push([ + style.content, + style.name, + 0, + shared_1$h.allCodeFeatures, + ]); + } + } + }, + }; +}; +vueSfcStyles.default = plugin$4; + +var vueSfcTemplate = {}; + +Object.defineProperty(vueSfcTemplate, "__esModule", { value: true }); +const shared_1$g = shared$1; +const plugin$3 = () => { + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + if (sfc.template?.lang === 'html') { + return [{ + id: 'template', + lang: sfc.template.lang, + }]; + } + return []; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + if (embeddedFile.id === 'template' && sfc.template?.lang === 'html') { + embeddedFile.content.push([ + sfc.template.content, + sfc.template.name, + 0, + shared_1$g.allCodeFeatures, + ]); + } + }, + }; +}; +vueSfcTemplate.default = plugin$3; + +var vueTemplateHtml = {}; + +Object.defineProperty(vueTemplateHtml, "__esModule", { value: true }); +const shouldAddSuffix = /(?<=<[^>/]+)$/; +const plugin$2 = ({ modules }) => { + return { + version: 2.1, + compileSFCTemplate(lang, template, options) { + if (lang === 'html' || lang === 'md') { + const compiler = modules['@vue/compiler-dom']; + let addedSuffix = false; + // #4583 + if (shouldAddSuffix.test(template)) { + template += '>'; + addedSuffix = true; + } + const result = compiler.compile(template, { + ...options, + comments: true, + }); + // @ts-expect-error + result.__addedSuffix = addedSuffix; + return result; + } + }, + updateSFCTemplate(oldResult, change) { + oldResult.code = oldResult.code.slice(0, change.start) + + change.newText + + oldResult.code.slice(change.end); + // @ts-expect-error + if (oldResult.__addedSuffix) { + const originalTemplate = oldResult.code.slice(0, -1); // remove added '>' + if (!shouldAddSuffix.test(originalTemplate)) { + return undefined; + } + } + const CompilerDOM = modules['@vue/compiler-dom']; + const lengthDiff = change.newText.length - (change.end - change.start); + let hitNodes = []; + if (tryUpdateNode(oldResult.ast) && hitNodes.length) { + hitNodes = hitNodes.sort((a, b) => a.loc.source.length - b.loc.source.length); + const hitNode = hitNodes[0]; + if (hitNode.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + return oldResult; + } + } + function tryUpdateNode(node) { + if (withinChangeRange(node.loc)) { + hitNodes.push(node); + } + if (tryUpdateNodeLoc(node.loc)) { + if (node.type === CompilerDOM.NodeTypes.ROOT) { + for (const child of node.children) { + if (!tryUpdateNode(child)) { + return false; + } + } + } + else if (node.type === CompilerDOM.NodeTypes.ELEMENT) { + if (withinChangeRange(node.loc)) { + // if not self closing, should not hit tag name + const start = node.loc.start.offset + 2; + const end = node.loc.start.offset + node.loc.source.lastIndexOf('</'); + if (!withinChangeRange({ start: { offset: start }, end: { offset: end }, source: '' })) { + return false; + } + } + for (const prop of node.props) { + if (!tryUpdateNode(prop)) { + return false; + } + } + for (const child of node.children) { + if (!tryUpdateNode(child)) { + return false; + } + } + } + else if (node.type === CompilerDOM.NodeTypes.ATTRIBUTE) { + if (node.value && !tryUpdateNode(node.value)) { + return false; + } + } + else if (node.type === CompilerDOM.NodeTypes.DIRECTIVE) { + if (node.arg && withinChangeRange(node.arg.loc) && node.name === 'slot') { + return false; + } + if (node.exp && withinChangeRange(node.exp.loc) && node.name === 'for') { // #2266 + return false; + } + if (node.arg && !tryUpdateNode(node.arg)) { + return false; + } + if (node.exp && !tryUpdateNode(node.exp)) { + return false; + } + } + else if (node.type === CompilerDOM.NodeTypes.TEXT_CALL) { + if (!tryUpdateNode(node.content)) { + return false; + } + } + else if (node.type === CompilerDOM.NodeTypes.COMPOUND_EXPRESSION) { + for (const childNode of node.children) { + if (typeof childNode === 'object') { + if (!tryUpdateNode(childNode)) { + return false; + } + } + } + } + else if (node.type === CompilerDOM.NodeTypes.IF) { + for (const branch of node.branches) { + if (branch.condition && !tryUpdateNode(branch.condition)) { + return false; + } + for (const child of branch.children) { + if (!tryUpdateNode(child)) { + return false; + } + } + } + } + else if (node.type === CompilerDOM.NodeTypes.FOR) { + for (const child of [ + node.parseResult.source, + node.parseResult.value, + node.parseResult.key, + node.parseResult.index, + ]) { + if (child) { + if (!tryUpdateNode(child)) { + return false; + } + if (child.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + const content = child.content.trim(); + if (content.startsWith('(') || content.endsWith(')')) { + return false; + } + } + } + } + for (const child of node.children) { + if (!tryUpdateNode(child)) { + return false; + } + } + } + else if (node.type === CompilerDOM.NodeTypes.INTERPOLATION) { + if (!tryUpdateNode(node.content)) { + return false; + } + } + else if (node.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { + if (withinChangeRange(node.loc)) { // TODO: review this (slot name?) + if (node.isStatic) { + return false; + } + else { + node.content = node.loc.source; + } + } + } + return true; + } + return false; + } + function tryUpdateNodeLoc(loc) { + delete loc.__endOffset; + if (withinChangeRange(loc)) { + loc.source = + loc.source.substring(0, change.start - loc.start.offset) + + change.newText + + loc.source.substring(change.end - loc.start.offset); + loc.__endOffset = loc.end.offset; + loc.end.offset += lengthDiff; + return true; + } + else if (change.end <= loc.start.offset) { + loc.__endOffset = loc.end.offset; + loc.start.offset += lengthDiff; + loc.end.offset += lengthDiff; + return true; + } + else if (change.start >= loc.end.offset) { + return true; // no need update + } + return false; + } + function withinChangeRange(loc) { + const originalLocEnd = loc.__endOffset ?? loc.end.offset; + return change.start >= loc.start.offset && change.end <= originalLocEnd; + } + }, + }; +}; +vueTemplateHtml.default = plugin$2; + +var vueTemplateInlineCss = {}; + +Object.defineProperty(vueTemplateInlineCss, "__esModule", { value: true }); +const CompilerDOM$3 = compilerDom_cjs; +const template_1 = template$1; +const shared_1$f = shared$1; +const codeFeatures$1 = { + ...shared_1$f.allCodeFeatures, + format: false, + structure: false, +}; +const plugin$1 = () => { + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + if (!sfc.template?.ast) { + return []; + } + return [{ id: 'template_inline_css', lang: 'css' }]; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + if (embeddedFile.id !== 'template_inline_css' || !sfc.template?.ast) { + return; + } + embeddedFile.parentCodeId = 'template'; + embeddedFile.content.push(...generate$2(sfc.template.ast)); + }, + }; +}; +vueTemplateInlineCss.default = plugin$1; +function* generate$2(templateAst) { + for (const node of (0, template_1.forEachElementNode)(templateAst)) { + for (const prop of node.props) { + if (prop.type === CompilerDOM$3.NodeTypes.DIRECTIVE + && prop.name === 'bind' + && prop.arg?.type === CompilerDOM$3.NodeTypes.SIMPLE_EXPRESSION + && prop.exp?.type === CompilerDOM$3.NodeTypes.SIMPLE_EXPRESSION + && prop.arg.content === 'style' + && prop.exp.constType === CompilerDOM$3.ConstantTypes.CAN_STRINGIFY) { + const endCrt = prop.arg.loc.source[prop.arg.loc.source.length - 1]; // " | ' + const start = prop.arg.loc.source.indexOf(endCrt) + 1; + const end = prop.arg.loc.source.lastIndexOf(endCrt); + const content = prop.arg.loc.source.substring(start, end); + yield `x { `; + yield [ + content, + 'template', + prop.arg.loc.start.offset + start, + codeFeatures$1, + ]; + yield ` }\n`; + } + } + } +} + +var vueTemplateInlineTs = {}; + +Object.defineProperty(vueTemplateInlineTs, "__esModule", { value: true }); +const common_1$3 = requireCommon(); +const elementEvents_1 = elementEvents; +const templateChild_1 = requireTemplateChild(); +const vFor_1 = requireVFor(); +const CompilerDOM$2 = compilerDom_cjs; +const codeFeatures = { + format: true, +}; +const formatBrackets = { + normal: ['`${', '}`;'], + if: ['if (', ') { }'], + for: ['for (', ') { }'], + // fix https://github.com/vuejs/language-tools/issues/3572 + params: ['(', ') => {};'], + // fix https://github.com/vuejs/language-tools/issues/1210 + // fix https://github.com/vuejs/language-tools/issues/2305 + curly: ['0 +', '+ 0;'], + event: ['() => ', ';'], +}; +const plugin = ctx => { + const parseds = new WeakMap(); + return { + version: 2.1, + getEmbeddedCodes(_fileName, sfc) { + if (!sfc.template?.ast) { + return []; + } + const parsed = parse(sfc); + parseds.set(sfc, parsed); + const result = []; + for (const [id] of parsed) { + result.push({ id, lang: 'ts' }); + } + return result; + }, + resolveEmbeddedCode(_fileName, sfc, embeddedFile) { + // access template content to watch change + (() => sfc.template?.content)(); + const parsed = parseds.get(sfc); + if (parsed) { + const codes = parsed.get(embeddedFile.id); + if (codes) { + embeddedFile.content.push(...codes); + embeddedFile.parentCodeId = 'template'; + } + } + }, + }; + function parse(sfc) { + const data = new Map(); + if (!sfc.template?.ast) { + return data; + } + const templateContent = sfc.template.content; + let i = 0; + sfc.template.ast.children.forEach(visit); + return data; + function visit(node) { + if (node.type === CompilerDOM$2.NodeTypes.ELEMENT) { + for (const prop of node.props) { + if (prop.type !== CompilerDOM$2.NodeTypes.DIRECTIVE) { + continue; + } + const isShorthand = prop.arg?.loc.start.offset === prop.exp?.loc.start.offset; // vue 3.4+ + if (isShorthand) { + continue; + } + if (prop.arg?.type === CompilerDOM$2.NodeTypes.SIMPLE_EXPRESSION && !prop.arg.isStatic) { + addFormatCodes(prop.arg.content, prop.arg.loc.start.offset, formatBrackets.normal); + } + if (prop.exp?.type === CompilerDOM$2.NodeTypes.SIMPLE_EXPRESSION + && prop.exp.constType !== CompilerDOM$2.ConstantTypes.CAN_STRINGIFY // style='z-index: 2' will compile to {'z-index':'2'} + ) { + if (prop.name === 'on' && prop.arg?.type === CompilerDOM$2.NodeTypes.SIMPLE_EXPRESSION) { + const ast = (0, common_1$3.createTsAst)(ctx.modules.typescript, prop.exp, prop.exp.content); + addFormatCodes(prop.exp.content, prop.exp.loc.start.offset, (0, elementEvents_1.isCompoundExpression)(ctx.modules.typescript, ast) + ? formatBrackets.event + : formatBrackets.normal); + } + else { + addFormatCodes(prop.exp.content, prop.exp.loc.start.offset, formatBrackets.normal); + } + } + } + for (const child of node.children) { + visit(child); + } + } + else if (node.type === CompilerDOM$2.NodeTypes.IF) { + for (let i = 0; i < node.branches.length; i++) { + const branch = node.branches[i]; + if (branch.condition?.type === CompilerDOM$2.NodeTypes.SIMPLE_EXPRESSION) { + addFormatCodes(branch.condition.content, branch.condition.loc.start.offset, formatBrackets.if); + } + for (const childNode of branch.children) { + visit(childNode); + } + } + } + else if (node.type === CompilerDOM$2.NodeTypes.FOR) { + const { leftExpressionRange, leftExpressionText } = (0, vFor_1.parseVForNode)(node); + const { source } = node.parseResult; + if (leftExpressionRange && leftExpressionText && source.type === CompilerDOM$2.NodeTypes.SIMPLE_EXPRESSION) { + const start = leftExpressionRange.start; + const end = source.loc.start.offset + source.content.length; + addFormatCodes(templateContent.substring(start, end), start, formatBrackets.for); + } + for (const child of node.children) { + visit(child); + } + } + else if (node.type === CompilerDOM$2.NodeTypes.TEXT_CALL) { + // {{ var }} + visit(node.content); + } + else if (node.type === CompilerDOM$2.NodeTypes.COMPOUND_EXPRESSION) { + // {{ ... }} {{ ... }} + for (const childNode of node.children) { + if (typeof childNode === 'object') { + visit(childNode); + } + } + } + else if (node.type === CompilerDOM$2.NodeTypes.INTERPOLATION) { + // {{ ... }} + const [content, start] = (0, templateChild_1.parseInterpolationNode)(node, templateContent); + const lines = content.split('\n'); + addFormatCodes(content, start, lines.length <= 1 ? formatBrackets.curly : [ + lines[0].trim() === '' ? '(' : formatBrackets.curly[0], + lines[lines.length - 1].trim() === '' ? ');' : formatBrackets.curly[1], + ]); + } + } + function addFormatCodes(code, offset, wrapper) { + const id = 'template_inline_ts_' + i++; + data.set(id, [ + wrapper[0], + [ + code, + 'template', + offset, + codeFeatures, + ], + wrapper[1], + ]); + } + } +}; +vueTemplateInlineTs.default = plugin; + +var vueTsx = {}; + +var out$1 = {}; + +var computed$1 = {}; + +var tracker = {}; + +var system = {}; + +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.trigger = exports.cleanupDepEffect = exports.track = exports.depsMap = exports.resetEffect = exports.pauseEffect = exports.resetTracking = exports.pauseTracking = exports.activeTrackers = void 0; + exports.activeTrackers = []; + let pauseEffectStack = 0; + const pausedTrackers = []; + const pausedEffects = []; + function pauseTracking() { + pausedTrackers.push(exports.activeTrackers); + exports.activeTrackers = []; + } + exports.pauseTracking = pauseTracking; + function resetTracking() { + exports.activeTrackers = pausedTrackers.pop(); + } + exports.resetTracking = resetTracking; + function pauseEffect() { + pauseEffectStack++; + } + exports.pauseEffect = pauseEffect; + function resetEffect() { + pauseEffectStack--; + while (!pauseEffectStack && pausedEffects.length) { + pausedEffects.shift().effect(); + } + } + exports.resetEffect = resetEffect; + exports.depsMap = new WeakMap(); + const trackerRegistry = new FinalizationRegistry(trackToken => { + const deps = exports.depsMap.get(trackToken); + if (deps) { + for (const dep of deps) { + dep.delete(trackToken); + } + deps.length = 0; + } + }); + function track(dep) { + if (exports.activeTrackers.length) { + const tracker = exports.activeTrackers[exports.activeTrackers.length - 1]; + if (!tracker.trackToken) { + if (tracker.effect) { + tracker.trackToken = tracker; + } + else { + tracker.trackToken = new WeakRef(tracker); + trackerRegistry.register(tracker, tracker.trackToken, tracker); + } + exports.depsMap.set(tracker.trackToken, []); + } + const trackToken = tracker.trackToken; + const deps = exports.depsMap.get(trackToken); + if (deps) { + if (dep.get(tracker) !== tracker.trackId) { + dep.set(tracker, tracker.trackId); + const oldDep = deps[tracker.depsLength]; + if (oldDep !== dep) { + if (oldDep) { + cleanupDepEffect(oldDep, tracker); + } + deps[tracker.depsLength++] = dep; + } + else { + tracker.depsLength++; + } + } + } + } + } + exports.track = track; + function cleanupDepEffect(dep, tracker) { + const trackId = dep.get(tracker); + if (trackId !== undefined && tracker.trackId !== trackId) { + dep.delete(tracker); + } + } + exports.cleanupDepEffect = cleanupDepEffect; + function trigger(dep, dirtyLevel) { + pauseEffect(); + for (const trackToken of dep.keys()) { + const tracker = trackToken.deref(); + if (!tracker) { + continue; + } + if (tracker.dirtyLevel < dirtyLevel && + (!tracker.runnings || dirtyLevel !== 2 /* DirtyLevels.ComputedValueDirty */)) { + const lastDirtyLevel = tracker.dirtyLevel; + tracker.dirtyLevel = dirtyLevel; + if (lastDirtyLevel === 0 /* DirtyLevels.NotDirty */ && + (!tracker.queryings || dirtyLevel !== 2 /* DirtyLevels.ComputedValueDirty */)) { + tracker.spread(); + if (tracker.effect) { + pausedEffects.push(tracker); + } + } + } + } + resetEffect(); + } + exports.trigger = trigger; +} (system)); + +Object.defineProperty(tracker, "__esModule", { value: true }); +tracker.Tracker = void 0; +const system_1$2 = system; +class Tracker { + constructor(spread, effect) { + this.spread = spread; + this.effect = effect; + this.dirtyLevel = 3 /* DirtyLevels.Dirty */; + this.trackId = 0; + this.runnings = 0; + this.queryings = 0; + this.depsLength = 0; + } + get dirty() { + if (this.dirtyLevel === 1 /* DirtyLevels.ComputedValueMaybeDirty */) { + this.dirtyLevel = 0 /* DirtyLevels.NotDirty */; + if (this.trackToken) { + const deps = system_1$2.depsMap.get(this.trackToken); + if (deps) { + this.queryings++; + (0, system_1$2.pauseTracking)(); + for (const dep of deps) { + if (dep.computed) { + dep.computed(); + if (this.dirtyLevel >= 2 /* DirtyLevels.ComputedValueDirty */) { + break; + } + } + } + (0, system_1$2.resetTracking)(); + this.queryings--; + } + } + } + return this.dirtyLevel >= 2 /* DirtyLevels.ComputedValueDirty */; + } + track(fn) { + try { + system_1$2.activeTrackers.push(this); + this.runnings++; + preCleanup(this); + return fn(); + } + finally { + postCleanup(this); + this.runnings--; + system_1$2.activeTrackers.pop(); + if (!this.runnings) { + this.dirtyLevel = 0 /* DirtyLevels.NotDirty */; + } + } + } + reset() { + preCleanup(this); + postCleanup(this); + this.dirtyLevel = 3 /* DirtyLevels.Dirty */; + } + deref() { + return this; + } +} +tracker.Tracker = Tracker; +function preCleanup(tracker) { + tracker.trackId++; + tracker.depsLength = 0; +} +function postCleanup(tracker) { + if (tracker.trackToken) { + const deps = system_1$2.depsMap.get(tracker.trackToken); + if (deps && deps.length > tracker.depsLength) { + for (let i = tracker.depsLength; i < deps.length; i++) { + (0, system_1$2.cleanupDepEffect)(deps[i], tracker); + } + deps.length = tracker.depsLength; + } + } +} + +var dep = {}; + +Object.defineProperty(dep, "__esModule", { value: true }); +dep.Dep = void 0; +let Dep$1 = class Dep extends Map { + constructor(computed) { + super(); + this.computed = computed; + } +}; +dep.Dep = Dep$1; + +Object.defineProperty(computed$1, "__esModule", { value: true }); +computed$1.computed = void 0; +const tracker_1$1 = tracker; +const system_1$1 = system; +const dep_1$1 = dep; +function computed(getter) { + let oldValue; + const tracker = new tracker_1$1.Tracker(() => (0, system_1$1.trigger)(dep, 1 /* DirtyLevels.ComputedValueMaybeDirty */)); + const fn = () => { + (0, system_1$1.track)(dep); + if (tracker.dirty + && !Object.is(oldValue, oldValue = tracker.track(() => getter(oldValue)))) { + (0, system_1$1.trigger)(dep, 2 /* DirtyLevels.ComputedValueDirty */); + } + return oldValue; + }; + const dep = new dep_1$1.Dep(fn); + return fn; +} +computed$1.computed = computed; + +var effect$1 = {}; + +Object.defineProperty(effect$1, "__esModule", { value: true }); +effect$1.effect = void 0; +const tracker_1 = tracker; +function effect(fn) { + const tracker = new tracker_1.Tracker(() => { }, () => { + if (tracker.dirty) { + tracker.track(fn); + } + }); + tracker.track(fn); + return tracker; +} +effect$1.effect = effect; + +var signal$1 = {}; + +Object.defineProperty(signal$1, "__esModule", { value: true }); +signal$1.signal = void 0; +const system_1 = system; +const dep_1 = dep; +function signal(oldValue) { + const dep = new dep_1.Dep(); + const fn = (() => { + (0, system_1.track)(dep); + return oldValue; + }); + fn.markDirty = () => { + (0, system_1.trigger)(dep, 3 /* DirtyLevels.Dirty */); + }; + fn.set = (newValue) => { + if (!Object.is(oldValue, oldValue = newValue)) { + fn.markDirty(); + } + }; + return fn; +} +signal$1.signal = signal; + +var computedArray$1 = {}; + +Object.defineProperty(computedArray$1, "__esModule", { value: true }); +computedArray$1.computedArray = void 0; +const computed_1$1 = computed$1; +function computedArray(arr, computedItem) { + const length = (0, computed_1$1.computed)(() => arr().length); + const keys = (0, computed_1$1.computed)(() => { + const keys = []; + for (let i = 0; i < length(); i++) { + keys.push(String(i)); + } + return keys; + }); + const items = (0, computed_1$1.computed)((array) => { + array ??= []; + while (array.length < length()) { + const index = array.length; + const item = (0, computed_1$1.computed)(() => arr()[index]); + array.push(computedItem(item, index)); + } + if (array.length > length()) { + array.length = length(); + } + return array; + }); + return new Proxy({}, { + get(_, p, receiver) { + if (p === 'length') { + return length(); + } + if (typeof p === 'string' && !isNaN(Number(p))) { + return items()[Number(p)]?.(); + } + return Reflect.get(items(), p, receiver); + }, + has(_, p) { + return Reflect.has(items(), p); + }, + ownKeys() { + return keys(); + }, + }); +} +computedArray$1.computedArray = computedArray; + +var computedSet$1 = {}; + +Object.defineProperty(computedSet$1, "__esModule", { value: true }); +computedSet$1.computedSet = void 0; +const computed_1 = computed$1; +function computedSet(getter) { + return (0, computed_1.computed)((oldValue) => { + const newValue = getter(); + if (oldValue?.size === newValue.size && [...oldValue].every(c => newValue.has(c))) { + return oldValue; + } + return newValue; + }); +} +computedSet$1.computedSet = computedSet; + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(computed$1, exports); + __exportStar(effect$1, exports); + __exportStar(tracker, exports); + __exportStar(signal$1, exports); + __exportStar(system, exports); + __exportStar(computedArray$1, exports); + __exportStar(computedSet$1, exports); +} (out$1)); + +var script = {}; + +var context = {}; + +var localTypes = {}; + +Object.defineProperty(localTypes, "__esModule", { value: true }); +localTypes.getLocalTypesGenerator = getLocalTypesGenerator; +const shared_1$e = shared$3; +const common_1$2 = requireCommon(); +function getLocalTypesGenerator(compilerOptions, vueCompilerOptions) { + const used = new Set(); + const OmitKeepDiscriminatedUnion = defineHelper(`__VLS_OmitKeepDiscriminatedUnion`, () => ` +type __VLS_OmitKeepDiscriminatedUnion<T, K extends keyof any> = T extends any + ? Pick<T, Exclude<keyof T, K>> + : never; +`.trimStart()); + const WithDefaults = defineHelper(`__VLS_WithDefaults`, () => ` +type __VLS_WithDefaults<P, D> = { + [K in keyof Pick<P, keyof P>]: K extends keyof D + ? ${PrettifyLocal.name}<P[K] & { default: D[K]}> + : P[K] +}; +`.trimStart()); + const PrettifyLocal = defineHelper(`__VLS_PrettifyLocal`, () => `type __VLS_PrettifyLocal<T> = { [K in keyof T]: T[K]; } & {}${common_1$2.endOfLine}`); + const WithTemplateSlots = defineHelper(`__VLS_WithTemplateSlots`, () => ` +type __VLS_WithTemplateSlots<T, S> = T & { + new(): { + ${(0, shared_1$e.getSlotsPropertyName)(vueCompilerOptions.target)}: S; + ${vueCompilerOptions.jsxSlots ? `$props: ${PropsChildren.name}<S>;` : ''} + } +}; +`.trimStart()); + const PropsChildren = defineHelper(`__VLS_PropsChildren`, () => ` +type __VLS_PropsChildren<S> = { + [K in keyof ( + boolean extends ( + // @ts-ignore + JSX.ElementChildrenAttribute extends never + ? true + : false + ) + ? never + // @ts-ignore + : JSX.ElementChildrenAttribute + )]?: S; +}; +`.trimStart()); + const TypePropsToOption = defineHelper(`__VLS_TypePropsToOption`, () => compilerOptions.exactOptionalPropertyTypes ? + ` +type __VLS_TypePropsToOption<T> = { + [K in keyof T]-?: {} extends Pick<T, K> + ? { type: import('${vueCompilerOptions.lib}').PropType<T[K]> } + : { type: import('${vueCompilerOptions.lib}').PropType<T[K]>, required: true } +}; +`.trimStart() : + ` +type __VLS_NonUndefinedable<T> = T extends undefined ? never : T; +type __VLS_TypePropsToOption<T> = { + [K in keyof T]-?: {} extends Pick<T, K> + ? { type: import('${vueCompilerOptions.lib}').PropType<__VLS_NonUndefinedable<T[K]>> } + : { type: import('${vueCompilerOptions.lib}').PropType<T[K]>, required: true } +}; +`.trimStart()); + const OmitIndexSignature = defineHelper(`__VLS_OmitIndexSignature`, () => `type __VLS_OmitIndexSignature<T> = { [K in keyof T as {} extends Record<K, unknown> ? never : K]: T[K]; }${common_1$2.endOfLine}`); + const helpers = { + [PrettifyLocal.name]: PrettifyLocal, + [OmitKeepDiscriminatedUnion.name]: OmitKeepDiscriminatedUnion, + [WithDefaults.name]: WithDefaults, + [WithTemplateSlots.name]: WithTemplateSlots, + [PropsChildren.name]: PropsChildren, + [TypePropsToOption.name]: TypePropsToOption, + [OmitIndexSignature.name]: OmitIndexSignature, + }; + used.clear(); + return { + generate, + getUsedNames() { + return used; + }, + get PrettifyLocal() { return PrettifyLocal.name; }, + get OmitKeepDiscriminatedUnion() { return OmitKeepDiscriminatedUnion.name; }, + get WithDefaults() { return WithDefaults.name; }, + get WithTemplateSlots() { return WithTemplateSlots.name; }, + get PropsChildren() { return PropsChildren.name; }, + get TypePropsToOption() { return TypePropsToOption.name; }, + get OmitIndexSignature() { return OmitIndexSignature.name; }, + }; + function* generate(names) { + const generated = new Set(); + while (names.length) { + used.clear(); + for (const name of names) { + if (generated.has(name)) { + continue; + } + const helper = helpers[name]; + yield helper.generate(); + generated.add(name); + } + names = [...used].filter(name => !generated.has(name)); + } + } + function defineHelper(name, generate) { + return { + get name() { + used.add(name); + return name; + }, + generate, + }; + } +} + +Object.defineProperty(context, "__esModule", { value: true }); +context.createScriptCodegenContext = createScriptCodegenContext; +const localTypes_1 = localTypes; +function createScriptCodegenContext(options) { + const localTypes = (0, localTypes_1.getLocalTypesGenerator)(options.compilerOptions, options.vueCompilerOptions); + const inlayHints = []; + return { + generatedTemplate: false, + generatedPropsType: false, + scriptSetupGeneratedOffset: undefined, + bypassDefineComponent: options.lang === 'js' || options.lang === 'jsx', + bindingNames: new Set([ + ...options.scriptRanges?.bindings.map(range => options.sfc.script.content.substring(range.start, range.end)) ?? [], + ...options.scriptSetupRanges?.bindings.map(range => options.sfc.scriptSetup.content.substring(range.start, range.end)) ?? [], + ]), + localTypes, + inlayHints, + }; +} + +var componentSelf = {}; + +var component = {}; + +var hasRequiredComponent; + +function requireComponent () { + if (hasRequiredComponent) return component; + hasRequiredComponent = 1; + Object.defineProperty(component, "__esModule", { value: true }); + component.generateComponent = generateComponent; + component.generateComponentSetupReturns = generateComponentSetupReturns; + component.generateEmitsOption = generateEmitsOption; + component.generatePropsOption = generatePropsOption; + const common_1 = requireCommon(); + const index_1 = requireScript(); + function* generateComponent(options, ctx, scriptSetup, scriptSetupRanges) { + if (options.sfc.script && options.scriptRanges?.exportDefault && options.scriptRanges.exportDefault.expression.start !== options.scriptRanges.exportDefault.args.start) { + // use defineComponent() from user space code if it exist + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, options.scriptRanges.exportDefault.expression.start, options.scriptRanges.exportDefault.args.start, index_1.codeFeatures.all); + yield `{${common_1.newLine}`; + } + else { + yield `(await import('${options.vueCompilerOptions.lib}')).defineComponent({${common_1.newLine}`; + } + yield `setup() {${common_1.newLine}`; + yield `return {${common_1.newLine}`; + if (ctx.bypassDefineComponent) { + yield* generateComponentSetupReturns(scriptSetupRanges); + } + if (scriptSetupRanges.expose.define) { + yield `...__VLS_exposed,${common_1.newLine}`; + } + yield `}${common_1.endOfLine}`; + yield `},${common_1.newLine}`; + if (!ctx.bypassDefineComponent) { + const emitOptionCodes = [...generateEmitsOption(options, scriptSetup, scriptSetupRanges)]; + for (const code of emitOptionCodes) { + yield code; + } + yield* generatePropsOption(options, ctx, scriptSetup, scriptSetupRanges, !!emitOptionCodes.length, true); + } + if (options.sfc.script && options.scriptRanges?.exportDefault?.args) { + const { args } = options.scriptRanges.exportDefault; + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, args.start + 1, args.end - 1, index_1.codeFeatures.all); + } + if (options.vueCompilerOptions.target >= 3.5 && scriptSetupRanges.templateRefs.length) { + yield `__typeRefs: {} as __VLS_TemplateResult['refs'],${common_1.newLine}`; + } + yield `})`; + } + function* generateComponentSetupReturns(scriptSetupRanges) { + // fill $props + if (scriptSetupRanges.props.define) { + // NOTE: defineProps is inaccurate for $props + yield `$props: __VLS_makeOptional(${scriptSetupRanges.props.name ?? `__VLS_props`}),${common_1.newLine}`; + yield `...${scriptSetupRanges.props.name ?? `__VLS_props`},${common_1.newLine}`; + } + // fill $emit + if (scriptSetupRanges.emits.define) { + yield `$emit: ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${common_1.newLine}`; + } + } + function* generateEmitsOption(options, scriptSetup, scriptSetupRanges) { + const codes = []; + if (scriptSetupRanges.defineProp.some(p => p.isModel)) { + codes.push({ + optionExp: `{} as __VLS_NormalizeEmits<__VLS_ModelEmitsType>`, + typeOptionType: `__VLS_ModelEmitsType`, + }); + } + if (scriptSetupRanges.emits.define) { + const { typeArg, hasUnionTypeArg } = scriptSetupRanges.emits.define; + codes.push({ + optionExp: `{} as __VLS_NormalizeEmits<typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'}>`, + typeOptionType: typeArg && !hasUnionTypeArg + ? scriptSetup.content.slice(typeArg.start, typeArg.end) + : undefined, + }); + } + if (options.vueCompilerOptions.target >= 3.5 && codes.every(code => code.typeOptionType)) { + if (codes.length === 1) { + yield `__typeEmits: {} as `; + yield codes[0].typeOptionType; + yield `,${common_1.newLine}`; + } + else if (codes.length >= 2) { + yield `__typeEmits: {} as `; + yield codes[0].typeOptionType; + for (let i = 1; i < codes.length; i++) { + yield ` & `; + yield codes[i].typeOptionType; + } + yield `,${common_1.newLine}`; + } + } + else if (codes.every(code => code.optionExp)) { + if (codes.length === 1) { + yield `emits: `; + yield codes[0].optionExp; + yield `,${common_1.newLine}`; + } + else if (codes.length >= 2) { + yield `emits: {${common_1.newLine}`; + for (const code of codes) { + yield `...`; + yield code.optionExp; + yield `,${common_1.newLine}`; + } + yield `},${common_1.newLine}`; + } + } + } + function* generatePropsOption(options, ctx, scriptSetup, scriptSetupRanges, hasEmitsOption, inheritAttrs) { + const codes = []; + if (ctx.generatedPropsType) { + codes.push({ + optionExp: [ + `{} as `, + scriptSetupRanges.props.withDefaults?.arg ? `${ctx.localTypes.WithDefaults}<` : '', + `${ctx.localTypes.TypePropsToOption}<__VLS_PublicProps>`, + scriptSetupRanges.props.withDefaults?.arg ? `, typeof __VLS_withDefaultsArg>` : '', + ].join(''), + typeOptionExp: `{} as __VLS_PublicProps`, + }); + } + if (scriptSetupRanges.props.define?.arg) { + const { arg } = scriptSetupRanges.props.define; + codes.push({ + optionExp: (0, common_1.generateSfcBlockSection)(scriptSetup, arg.start, arg.end, index_1.codeFeatures.navigation), + typeOptionExp: undefined, + }); + } + if (inheritAttrs && options.templateCodegen?.inheritedAttrVars.size) { + let attrsType = `__VLS_TemplateResult['attrs']`; + if (hasEmitsOption) { + attrsType = `Omit<${attrsType}, \`on\${string}\`>`; + } + const propsType = `__VLS_PickNotAny<${ctx.localTypes.OmitIndexSignature}<${attrsType}>, {}>`; + const optionType = `${ctx.localTypes.TypePropsToOption}<${propsType}>`; + codes.unshift({ + optionExp: codes.length + ? `{} as ${optionType}` + // workaround for https://github.com/vuejs/core/pull/7419 + : `{} as keyof ${propsType} extends never ? never: ${optionType}`, + typeOptionExp: `{} as ${attrsType}`, + }); + } + const useTypeOption = options.vueCompilerOptions.target >= 3.5 && codes.every(code => code.typeOptionExp); + const useOption = !useTypeOption || scriptSetupRanges.props.withDefaults; + if (useTypeOption) { + if (codes.length === 1) { + yield `__typeProps: `; + yield codes[0].typeOptionExp; + yield `,${common_1.newLine}`; + } + else if (codes.length >= 2) { + yield `__typeProps: {${common_1.newLine}`; + for (const { typeOptionExp } of codes) { + yield `...`; + yield typeOptionExp; + yield `,${common_1.newLine}`; + } + yield `},${common_1.newLine}`; + } + } + if (useOption) { + if (codes.length === 1) { + yield `props: `; + yield codes[0].optionExp; + yield `,${common_1.newLine}`; + } + else if (codes.length >= 2) { + yield `props: {${common_1.newLine}`; + for (const { optionExp } of codes) { + yield `...`; + yield optionExp; + yield `,${common_1.newLine}`; + } + yield `},${common_1.newLine}`; + } + } + } + + return component; +} + +var template = {}; + +var hasRequiredTemplate; + +function requireTemplate () { + if (hasRequiredTemplate) return template; + hasRequiredTemplate = 1; + Object.defineProperty(template, "__esModule", { value: true }); + template.generateTemplateDirectives = generateTemplateDirectives; + template.generateTemplate = generateTemplate; + template.generateCssClassProperty = generateCssClassProperty; + template.getTemplateUsageVars = getTemplateUsageVars; + const shared_1 = shared$3; + const common_1 = requireCommon(); + const context_1 = context$1; + const interpolation_1 = interpolation; + const styleScopedClasses_1 = styleScopedClasses; + const index_1 = requireScript(); + function* generateTemplateCtx(options, isClassComponent) { + const exps = []; + if (isClassComponent) { + exps.push(`this`); + } + else { + exps.push(`{} as InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>`); + } + if (options.vueCompilerOptions.petiteVueExtensions.some(ext => options.fileBaseName.endsWith(ext))) { + exps.push(`globalThis`); + } + if (options.sfc.styles.some(style => style.module)) { + exps.push(`{} as __VLS_StyleModules`); + } + yield `const __VLS_ctx = `; + if (exps.length === 1) { + yield exps[0]; + yield `${common_1.endOfLine}`; + } + else { + yield `{${common_1.newLine}`; + for (const exp of exps) { + yield `...`; + yield exp; + yield `,${common_1.newLine}`; + } + yield `}${common_1.endOfLine}`; + } + } + function* generateTemplateComponents(options) { + const exps = []; + if (options.sfc.script && options.scriptRanges?.exportDefault?.componentsOption) { + const { componentsOption } = options.scriptRanges.exportDefault; + exps.push([ + options.sfc.script.content.substring(componentsOption.start, componentsOption.end), + 'script', + componentsOption.start, + index_1.codeFeatures.navigation, + ]); + } + let nameType; + if (options.sfc.script && options.scriptRanges?.exportDefault?.nameOption) { + const { nameOption } = options.scriptRanges.exportDefault; + nameType = options.sfc.script.content.substring(nameOption.start, nameOption.end); + } + else if (options.sfc.scriptSetup) { + nameType = `'${options.scriptSetupRanges?.options.name ?? options.fileBaseName.substring(0, options.fileBaseName.lastIndexOf('.'))}'`; + } + if (nameType) { + exps.push(`{} as { + [K in ${nameType}]: typeof __VLS_self + & (new () => { + ${(0, shared_1.getSlotsPropertyName)(options.vueCompilerOptions.target)}: typeof ${options.scriptSetupRanges?.slots?.name ?? '__VLS_slots'} + }) + }`); + } + exps.push(`{} as NonNullable<typeof __VLS_self extends { components: infer C } ? C : {}>`); + exps.push(`__VLS_ctx`); + yield `const __VLS_localComponents = {${common_1.newLine}`; + for (const type of exps) { + yield `...`; + yield type; + yield `,${common_1.newLine}`; + } + yield `}${common_1.endOfLine}`; + yield `let __VLS_components!: typeof __VLS_localComponents & __VLS_GlobalComponents${common_1.endOfLine}`; + } + function* generateTemplateDirectives(options) { + const exps = []; + if (options.sfc.script && options.scriptRanges?.exportDefault?.directivesOption) { + const { directivesOption } = options.scriptRanges.exportDefault; + exps.push([ + options.sfc.script.content.substring(directivesOption.start, directivesOption.end), + 'script', + directivesOption.start, + index_1.codeFeatures.navigation, + ]); + } + exps.push(`{} as NonNullable<typeof __VLS_self extends { directives: infer D } ? D : {}>`); + exps.push(`__VLS_ctx`); + yield `const __VLS_localDirectives = {${common_1.newLine}`; + for (const type of exps) { + yield `...`; + yield type; + yield `,${common_1.newLine}`; + } + yield `}${common_1.endOfLine}`; + yield `let __VLS_directives!: typeof __VLS_localDirectives & __VLS_GlobalDirectives${common_1.endOfLine}`; + } + function* generateTemplate(options, ctx, isClassComponent) { + ctx.generatedTemplate = true; + const templateCodegenCtx = (0, context_1.createTemplateCodegenContext)({ + scriptSetupBindingNames: new Set(), + edited: options.edited, + }); + yield* generateTemplateCtx(options, isClassComponent); + yield* generateTemplateComponents(options); + yield* generateTemplateDirectives(options); + yield* generateTemplateBody(options, templateCodegenCtx); + return templateCodegenCtx; + } + function* generateTemplateBody(options, templateCodegenCtx) { + const firstClasses = new Set(); + yield `let __VLS_styleScopedClasses!: {}`; + for (let i = 0; i < options.sfc.styles.length; i++) { + const style = options.sfc.styles[i]; + const option = options.vueCompilerOptions.experimentalResolveStyleCssClasses; + if (option === 'always' || (option === 'scoped' && style.scoped)) { + for (const className of style.classNames) { + if (firstClasses.has(className.text)) { + templateCodegenCtx.scopedClasses.push({ + source: 'style_' + i, + className: className.text.slice(1), + offset: className.offset + 1 + }); + continue; + } + firstClasses.add(className.text); + yield* generateCssClassProperty(i, className.text, className.offset, 'boolean', true); + } + } + } + yield common_1.endOfLine; + yield* (0, styleScopedClasses_1.generateStyleScopedClasses)(templateCodegenCtx, true); + yield* generateCssVars(options, templateCodegenCtx); + if (options.templateCodegen) { + for (const code of options.templateCodegen.codes) { + yield code; + } + } + else { + yield `// no template${common_1.newLine}`; + if (!options.scriptSetupRanges?.slots.define) { + yield `const __VLS_slots = {}${common_1.endOfLine}`; + } + yield `const $refs = {}${common_1.endOfLine}`; + yield `const __VLS_inheritedAttrs = {}${common_1.endOfLine}`; + } + yield `return {${common_1.newLine}`; + yield ` slots: ${options.scriptSetupRanges?.slots.name ?? '__VLS_slots'},${common_1.newLine}`; + yield ` refs: $refs,${common_1.newLine}`; + yield ` attrs: {} as Partial<typeof __VLS_inheritedAttrs>,${common_1.newLine}`; + yield `}${common_1.endOfLine}`; + } + function* generateCssClassProperty(styleIndex, classNameWithDot, offset, propertyType, optional) { + yield `${common_1.newLine} & { `; + yield [ + '', + 'style_' + styleIndex, + offset, + index_1.codeFeatures.navigation, + ]; + yield `'`; + yield [ + classNameWithDot.substring(1), + 'style_' + styleIndex, + offset + 1, + index_1.codeFeatures.navigation, + ]; + yield `'`; + yield [ + '', + 'style_' + styleIndex, + offset + classNameWithDot.length, + index_1.codeFeatures.navigationWithoutRename, + ]; + yield `${optional ? '?' : ''}: ${propertyType}`; + yield ` }`; + } + function* generateCssVars(options, ctx) { + if (!options.sfc.styles.length) { + return; + } + yield `// CSS variable injection ${common_1.newLine}`; + for (const style of options.sfc.styles) { + for (const cssBind of style.cssVars) { + for (const [segment, offset, onlyError] of (0, interpolation_1.forEachInterpolationSegment)(options.ts, undefined, ctx, cssBind.text, cssBind.offset, options.ts.createSourceFile('/a.txt', cssBind.text, 99))) { + if (offset === undefined) { + yield segment; + } + else { + yield [ + segment, + style.name, + cssBind.offset + offset, + onlyError + ? index_1.codeFeatures.navigation + : index_1.codeFeatures.all, + ]; + } + } + yield common_1.endOfLine; + } + } + yield `// CSS variable injection end ${common_1.newLine}`; + } + function getTemplateUsageVars(options, ctx) { + const usageVars = new Set(); + const components = new Set(options.sfc.template?.ast?.components); + if (options.templateCodegen) { + // fix import components unused report + for (const varName of ctx.bindingNames) { + if (components.has(varName) || components.has((0, shared_1.hyphenateTag)(varName))) { + usageVars.add(varName); + } + } + for (const component of components) { + if (component.indexOf('.') >= 0) { + usageVars.add(component.split('.')[0]); + } + } + for (const [varName] of options.templateCodegen.accessExternalVariables) { + usageVars.add(varName); + } + } + return usageVars; + } + + return template; +} + +var hasRequiredComponentSelf; + +function requireComponentSelf () { + if (hasRequiredComponentSelf) return componentSelf; + hasRequiredComponentSelf = 1; + Object.defineProperty(componentSelf, "__esModule", { value: true }); + componentSelf.generateComponentSelf = generateComponentSelf; + const common_1 = requireCommon(); + const component_1 = requireComponent(); + const index_1 = requireScript(); + const template_1 = requireTemplate(); + function* generateComponentSelf(options, ctx, templateCodegenCtx) { + if (options.sfc.scriptSetup && options.scriptSetupRanges) { + yield `const __VLS_self = (await import('${options.vueCompilerOptions.lib}')).defineComponent({${common_1.newLine}`; + yield `setup() {${common_1.newLine}`; + yield `return {${common_1.newLine}`; + if (ctx.bypassDefineComponent) { + yield* (0, component_1.generateComponentSetupReturns)(options.scriptSetupRanges); + } + // bindings + const templateUsageVars = (0, template_1.getTemplateUsageVars)(options, ctx); + for (const [content, bindings] of [ + [options.sfc.scriptSetup.content, options.scriptSetupRanges.bindings], + options.sfc.script && options.scriptRanges + ? [options.sfc.script.content, options.scriptRanges.bindings] + : ['', []], + ]) { + for (const expose of bindings) { + const varName = content.substring(expose.start, expose.end); + if (!templateUsageVars.has(varName) && !templateCodegenCtx.accessExternalVariables.has(varName)) { + continue; + } + const templateOffset = options.getGeneratedLength(); + yield `${varName}: ${varName} as typeof `; + const scriptOffset = options.getGeneratedLength(); + yield `${varName},${common_1.newLine}`; + options.linkedCodeMappings.push({ + sourceOffsets: [scriptOffset], + generatedOffsets: [templateOffset], + lengths: [varName.length], + data: undefined, + }); + } + } + yield `}${common_1.endOfLine}`; // return { + yield `},${common_1.newLine}`; // setup() { + if (options.sfc.scriptSetup && options.scriptSetupRanges && !ctx.bypassDefineComponent) { + const emitOptionCodes = [...(0, component_1.generateEmitsOption)(options, options.sfc.scriptSetup, options.scriptSetupRanges)]; + for (const code of emitOptionCodes) { + yield code; + } + yield* (0, component_1.generatePropsOption)(options, ctx, options.sfc.scriptSetup, options.scriptSetupRanges, !!emitOptionCodes.length, false); + } + if (options.sfc.script && options.scriptRanges?.exportDefault?.args) { + const { args } = options.scriptRanges.exportDefault; + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, args.start + 1, args.end - 1, index_1.codeFeatures.all); + } + yield `})${common_1.endOfLine}`; // defineComponent { + } + else if (options.sfc.script) { + yield `let __VLS_self!: typeof import('./${options.fileBaseName}').default${common_1.endOfLine}`; + } + else { + yield `const __VLS_self = (await import('${options.vueCompilerOptions.lib}')).defineComponent({})${common_1.endOfLine}`; + } + } + + return componentSelf; +} + +var scriptSetup = {}; + +var hasRequiredScriptSetup; + +function requireScriptSetup () { + if (hasRequiredScriptSetup) return scriptSetup; + hasRequiredScriptSetup = 1; + Object.defineProperty(scriptSetup, "__esModule", { value: true }); + scriptSetup.generateScriptSetupImports = generateScriptSetupImports; + scriptSetup.generateScriptSetup = generateScriptSetup; + const common_1 = requireCommon(); + const component_1 = requireComponent(); + const index_1 = requireScript(); + const componentSelf_1 = requireComponentSelf(); + const template_1 = requireTemplate(); + function* generateScriptSetupImports(scriptSetup, scriptSetupRanges) { + yield [ + scriptSetup.content.substring(0, Math.max(scriptSetupRanges.importSectionEndOffset, scriptSetupRanges.leadingCommentEndOffset)), + 'scriptSetup', + 0, + index_1.codeFeatures.all, + ]; + yield common_1.newLine; + } + function* generateScriptSetup(options, ctx, scriptSetup, scriptSetupRanges) { + const definePropMirrors = new Map(); + if (scriptSetup.generic) { + if (!options.scriptRanges?.exportDefault) { + if (options.sfc.scriptSetup) { + // #4569 + yield [ + '', + 'scriptSetup', + options.sfc.scriptSetup.content.length, + index_1.codeFeatures.verification, + ]; + } + yield `export default `; + } + yield `(<`; + yield [ + scriptSetup.generic, + scriptSetup.name, + scriptSetup.genericOffset, + index_1.codeFeatures.all, + ]; + if (!scriptSetup.generic.endsWith(`,`)) { + yield `,`; + } + yield `>(${common_1.newLine}` + + ` __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'],${common_1.newLine}` + + ` __VLS_ctx?: ${ctx.localTypes.PrettifyLocal}<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>,${common_1.newLine}` // use __VLS_Prettify for less dts code + + ` __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>['expose'],${common_1.newLine}` + + ` __VLS_setup = (async () => {${common_1.newLine}`; + yield* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, undefined, definePropMirrors); + const emitTypes = []; + if (scriptSetupRanges.emits.define) { + emitTypes.push(`typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'}`); + } + if (scriptSetupRanges.defineProp.some(p => p.isModel)) { + emitTypes.push(`__VLS_ModelEmitsType`); + } + yield ` return {} as {${common_1.newLine}` + + ` props: ${ctx.localTypes.PrettifyLocal}<typeof __VLS_functionalComponentProps & __VLS_PublicProps> & __VLS_BuiltInPublicProps,${common_1.newLine}` + + ` expose(exposed: import('${options.vueCompilerOptions.lib}').ShallowUnwrapRef<${scriptSetupRanges.expose.define ? 'typeof __VLS_exposed' : '{}'}>): void,${common_1.newLine}` + + ` attrs: any,${common_1.newLine}` + + ` slots: __VLS_TemplateResult['slots'],${common_1.newLine}` + + ` emit: ${emitTypes.length ? emitTypes.join(' & ') : `{}`},${common_1.newLine}` + + ` }${common_1.endOfLine}`; + yield ` })(),${common_1.newLine}`; // __VLS_setup = (async () => { + yield `) => ({} as import('${options.vueCompilerOptions.lib}').VNode & { __ctx?: Awaited<typeof __VLS_setup> }))`; + } + else if (!options.sfc.script) { + // no script block, generate script setup code at root + yield* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, 'export default', definePropMirrors); + } + else { + if (!options.scriptRanges?.exportDefault) { + yield `export default `; + } + yield `await (async () => {${common_1.newLine}`; + yield* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, 'return', definePropMirrors); + yield `})()`; + } + if (ctx.scriptSetupGeneratedOffset !== undefined) { + for (const defineProp of scriptSetupRanges.defineProp) { + if (!defineProp.localName) { + continue; + } + const [_, localName] = getPropAndLocalName(scriptSetup, defineProp); + const propMirror = definePropMirrors.get(localName); + if (propMirror !== undefined) { + options.linkedCodeMappings.push({ + sourceOffsets: [defineProp.localName.start + ctx.scriptSetupGeneratedOffset], + generatedOffsets: [propMirror], + lengths: [defineProp.localName.end - defineProp.localName.start], + data: undefined, + }); + } + } + } + } + function* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, syntax, definePropMirrors) { + if (options.vueCompilerOptions.target >= 3.3) { + yield `const { `; + for (const macro of Object.keys(options.vueCompilerOptions.macros)) { + if (!ctx.bindingNames.has(macro) && macro !== 'templateRef') { + yield macro + `, `; + } + } + yield `} = await import('${options.vueCompilerOptions.lib}')${common_1.endOfLine}`; + } + ctx.scriptSetupGeneratedOffset = options.getGeneratedLength() - scriptSetupRanges.importSectionEndOffset; + let setupCodeModifies = []; + const propsRange = scriptSetupRanges.props.withDefaults ?? scriptSetupRanges.props.define; + if (propsRange && scriptSetupRanges.props.define) { + const statement = scriptSetupRanges.props.define.statement; + if (scriptSetupRanges.props.define.typeArg) { + setupCodeModifies.push([[ + `let __VLS_typeProps!: `, + (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.props.define.typeArg.start, scriptSetupRanges.props.define.typeArg.end, index_1.codeFeatures.all), + common_1.endOfLine, + ], statement.start, statement.start]); + setupCodeModifies.push([[`typeof __VLS_typeProps`], scriptSetupRanges.props.define.typeArg.start, scriptSetupRanges.props.define.typeArg.end]); + } + if (!scriptSetupRanges.props.name) { + if (statement.start === propsRange.start && statement.end === propsRange.end) { + setupCodeModifies.push([[`const __VLS_props = `], propsRange.start, propsRange.start]); + } + else { + if (scriptSetupRanges.props.define.typeArg) { + setupCodeModifies.push([[ + `const __VLS_props = `, + (0, common_1.generateSfcBlockSection)(scriptSetup, propsRange.start, scriptSetupRanges.props.define.typeArg.start, index_1.codeFeatures.all), + ], statement.start, scriptSetupRanges.props.define.typeArg.start]); + setupCodeModifies.push([[ + (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.props.define.typeArg.end, propsRange.end, index_1.codeFeatures.all), + `${common_1.endOfLine}`, + (0, common_1.generateSfcBlockSection)(scriptSetup, statement.start, propsRange.start, index_1.codeFeatures.all), + `__VLS_props`, + ], scriptSetupRanges.props.define.typeArg.end, propsRange.end]); + } + else { + setupCodeModifies.push([[ + `const __VLS_props = `, + (0, common_1.generateSfcBlockSection)(scriptSetup, propsRange.start, propsRange.end, index_1.codeFeatures.all), + `${common_1.endOfLine}`, + (0, common_1.generateSfcBlockSection)(scriptSetup, statement.start, propsRange.start, index_1.codeFeatures.all), + `__VLS_props`, + ], statement.start, propsRange.end]); + } + } + } + } + if (scriptSetupRanges.slots.define) { + if (scriptSetupRanges.slots.isObjectBindingPattern) { + setupCodeModifies.push([ + [`__VLS_slots;\nconst __VLS_slots = `], + scriptSetupRanges.slots.define.start, + scriptSetupRanges.slots.define.start, + ]); + } + else if (!scriptSetupRanges.slots.name) { + setupCodeModifies.push([[`const __VLS_slots = `], scriptSetupRanges.slots.define.start, scriptSetupRanges.slots.define.start]); + } + } + if (scriptSetupRanges.emits.define && !scriptSetupRanges.emits.name) { + setupCodeModifies.push([[`const __VLS_emit = `], scriptSetupRanges.emits.define.start, scriptSetupRanges.emits.define.start]); + } + if (scriptSetupRanges.expose.define) { + if (scriptSetupRanges.expose.define?.typeArg) { + setupCodeModifies.push([ + [ + `let __VLS_exposed!: `, + (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.expose.define.typeArg.start, scriptSetupRanges.expose.define.typeArg.end, index_1.codeFeatures.navigation), + `${common_1.endOfLine}`, + ], + scriptSetupRanges.expose.define.start, + scriptSetupRanges.expose.define.start, + ]); + } + else if (scriptSetupRanges.expose.define?.arg) { + setupCodeModifies.push([ + [ + `const __VLS_exposed = `, + (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.expose.define.arg.start, scriptSetupRanges.expose.define.arg.end, index_1.codeFeatures.navigation), + `${common_1.endOfLine}`, + ], + scriptSetupRanges.expose.define.start, + scriptSetupRanges.expose.define.start, + ]); + } + else { + setupCodeModifies.push([ + [`const __VLS_exposed = {}${common_1.endOfLine}`], + scriptSetupRanges.expose.define.start, + scriptSetupRanges.expose.define.start, + ]); + } + } + if (scriptSetupRanges.cssModules.length) { + for (const { exp, arg } of scriptSetupRanges.cssModules) { + if (arg) { + setupCodeModifies.push([ + [ + ` as Omit<__VLS_StyleModules, '$style'>[`, + (0, common_1.generateSfcBlockSection)(scriptSetup, arg.start, arg.end, index_1.codeFeatures.all), + `]` + ], + exp.end, + exp.end + ]); + } + else { + setupCodeModifies.push([ + [ + ` as __VLS_StyleModules[`, + ['', scriptSetup.name, exp.start, index_1.codeFeatures.verification], + `'$style'`, + ['', scriptSetup.name, exp.end, index_1.codeFeatures.verification], + `]` + ], + exp.end, + exp.end + ]); + } + } + } + for (const { define } of scriptSetupRanges.templateRefs) { + if (define?.arg) { + setupCodeModifies.push([ + [ + `<__VLS_TemplateResult['refs'][`, + (0, common_1.generateSfcBlockSection)(scriptSetup, define.arg.start, define.arg.end, index_1.codeFeatures.navigation), + `], keyof __VLS_TemplateResult['refs']>` + ], + define.arg.start - 1, + define.arg.start - 1 + ]); + } + } + setupCodeModifies = setupCodeModifies.sort((a, b) => a[1] - b[1]); + if (setupCodeModifies.length) { + yield (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.importSectionEndOffset, setupCodeModifies[0][1], index_1.codeFeatures.all); + while (setupCodeModifies.length) { + const [codes, _start, end] = setupCodeModifies.shift(); + for (const code of codes) { + yield code; + } + if (setupCodeModifies.length) { + const nextStart = setupCodeModifies[0][1]; + yield (0, common_1.generateSfcBlockSection)(scriptSetup, end, nextStart, index_1.codeFeatures.all); + } + else { + yield (0, common_1.generateSfcBlockSection)(scriptSetup, end, scriptSetup.content.length, index_1.codeFeatures.all); + } + } + } + else { + yield (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.importSectionEndOffset, scriptSetup.content.length, index_1.codeFeatures.all); + } + if (scriptSetupRanges.props.define?.typeArg && scriptSetupRanges.props.withDefaults?.arg) { + // fix https://github.com/vuejs/language-tools/issues/1187 + yield `const __VLS_withDefaultsArg = (function <T>(t: T) { return t })(`; + yield (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.props.withDefaults.arg.start, scriptSetupRanges.props.withDefaults.arg.end, index_1.codeFeatures.navigation); + yield `)${common_1.endOfLine}`; + } + yield* generateComponentProps(options, ctx, scriptSetup, scriptSetupRanges, definePropMirrors); + yield* generateModelEmits(options, scriptSetup, scriptSetupRanges); + yield `function __VLS_template() {${common_1.newLine}`; + const templateCodegenCtx = yield* (0, template_1.generateTemplate)(options, ctx, false); + yield `}${common_1.endOfLine}`; + yield* (0, componentSelf_1.generateComponentSelf)(options, ctx, templateCodegenCtx); + yield `type __VLS_TemplateResult = ReturnType<typeof __VLS_template>${common_1.endOfLine}`; + if (syntax) { + if (!options.vueCompilerOptions.skipTemplateCodegen && (options.templateCodegen?.hasSlot || scriptSetupRanges?.slots.define)) { + yield `const __VLS_component = `; + yield* (0, component_1.generateComponent)(options, ctx, scriptSetup, scriptSetupRanges); + yield common_1.endOfLine; + yield `${syntax} `; + yield `{} as ${ctx.localTypes.WithTemplateSlots}<typeof __VLS_component, __VLS_TemplateResult['slots']>${common_1.endOfLine}`; + } + else { + yield `${syntax} `; + yield* (0, component_1.generateComponent)(options, ctx, scriptSetup, scriptSetupRanges); + yield common_1.endOfLine; + } + } + } + function* generateComponentProps(options, ctx, scriptSetup, scriptSetupRanges, definePropMirrors) { + yield `const __VLS_fnComponent = (await import('${options.vueCompilerOptions.lib}')).defineComponent({${common_1.newLine}`; + if (scriptSetupRanges.props.define?.arg) { + yield `props: `; + yield (0, common_1.generateSfcBlockSection)(scriptSetup, scriptSetupRanges.props.define.arg.start, scriptSetupRanges.props.define.arg.end, index_1.codeFeatures.navigation); + yield `,${common_1.newLine}`; + } + yield* (0, component_1.generateEmitsOption)(options, scriptSetup, scriptSetupRanges); + yield `})${common_1.endOfLine}`; + yield `type __VLS_BuiltInPublicProps = ${options.vueCompilerOptions.target >= 3.4 + ? `import('${options.vueCompilerOptions.lib}').PublicProps;` + : options.vueCompilerOptions.target >= 3.0 + ? `import('${options.vueCompilerOptions.lib}').VNodeProps + & import('${options.vueCompilerOptions.lib}').AllowedComponentProps + & import('${options.vueCompilerOptions.lib}').ComponentCustomProps;` + : `globalThis.JSX.IntrinsicAttributes;`}`; + yield common_1.endOfLine; + yield `let __VLS_functionalComponentProps!: `; + yield `${ctx.localTypes.OmitKeepDiscriminatedUnion}<InstanceType<typeof __VLS_fnComponent>['$props'], keyof __VLS_BuiltInPublicProps>`; + yield common_1.endOfLine; + if (scriptSetupRanges.defineProp.length) { + yield `const __VLS_defaults = {${common_1.newLine}`; + for (const defineProp of scriptSetupRanges.defineProp) { + if (defineProp.defaultValue) { + const [propName, localName] = getPropAndLocalName(scriptSetup, defineProp); + if (defineProp.name || defineProp.isModel) { + yield propName; + } + else if (defineProp.localName) { + yield localName; + } + else { + continue; + } + yield `: `; + yield getRangeName(scriptSetup, defineProp.defaultValue); + yield `,${common_1.newLine}`; + } + } + yield `}${common_1.endOfLine}`; + } + yield `type __VLS_PublicProps = `; + if (scriptSetupRanges.slots.define && options.vueCompilerOptions.jsxSlots) { + if (ctx.generatedPropsType) { + yield ` & `; + } + ctx.generatedPropsType = true; + yield `${ctx.localTypes.PropsChildren}<typeof __VLS_slots>`; + } + if (scriptSetupRanges.defineProp.length) { + if (ctx.generatedPropsType) { + yield ` & `; + } + ctx.generatedPropsType = true; + yield `{${common_1.newLine}`; + for (const defineProp of scriptSetupRanges.defineProp) { + const [propName, localName] = getPropAndLocalName(scriptSetup, defineProp); + if (defineProp.isModel && !defineProp.name) { + yield propName; + } + else if (defineProp.name) { + // renaming support + yield (0, common_1.generateSfcBlockSection)(scriptSetup, defineProp.name.start, defineProp.name.end, index_1.codeFeatures.navigation); + } + else if (defineProp.localName) { + definePropMirrors.set(localName, options.getGeneratedLength()); + yield localName; + } + else { + continue; + } + yield defineProp.required + ? `: ` + : `?: `; + yield* generateDefinePropType(scriptSetup, propName, localName, defineProp); + yield `,${common_1.newLine}`; + if (defineProp.modifierType) { + let propModifierName = 'modelModifiers'; + if (defineProp.name) { + propModifierName = `${getRangeName(scriptSetup, defineProp.name, true)}Modifiers`; + } + const modifierType = getRangeName(scriptSetup, defineProp.modifierType); + definePropMirrors.set(propModifierName, options.getGeneratedLength()); + yield `${propModifierName}?: Record<${modifierType}, true>,${common_1.endOfLine}`; + } + } + yield `}`; + } + if (scriptSetupRanges.props.define?.typeArg) { + if (ctx.generatedPropsType) { + yield ` & `; + } + ctx.generatedPropsType = true; + yield `typeof __VLS_typeProps`; + } + if (!ctx.generatedPropsType) { + yield `{}`; + } + yield common_1.endOfLine; + } + function* generateModelEmits(options, scriptSetup, scriptSetupRanges) { + const defineModels = scriptSetupRanges.defineProp.filter(p => p.isModel); + if (defineModels.length) { + const generateDefineModels = function* () { + for (const defineModel of defineModels) { + const [propName, localName] = getPropAndLocalName(scriptSetup, defineModel); + yield `'update:${propName}': [${propName}:`; + yield* generateDefinePropType(scriptSetup, propName, localName, defineModel); + yield `]${common_1.endOfLine}`; + } + }; + if (options.vueCompilerOptions.target >= 3.5) { + yield `type __VLS_ModelEmitsType = {${common_1.newLine}`; + yield* generateDefineModels(); + yield `}${common_1.endOfLine}`; + } + else { + yield `const __VLS_modelEmitsType = (await import('${options.vueCompilerOptions.lib}')).defineEmits<{${common_1.newLine}`; + yield* generateDefineModels(); + yield `}>()${common_1.endOfLine}`; + yield `type __VLS_ModelEmitsType = typeof __VLS_modelEmitsType${common_1.endOfLine}`; + } + } + } + function* generateDefinePropType(scriptSetup, propName, localName, defineProp) { + if (defineProp.type) { + // Infer from defineProp<T> + yield getRangeName(scriptSetup, defineProp.type); + } + else if (defineProp.runtimeType && localName) { + // Infer from actual prop declaration code + yield `typeof ${localName}['value']`; + } + else if (defineProp.defaultValue && propName) { + // Infer from defineProp({default: T}) + yield `typeof __VLS_defaults['${propName}']`; + } + else { + yield `any`; + } + } + function getPropAndLocalName(scriptSetup, defineProp) { + const localName = defineProp.localName + ? getRangeName(scriptSetup, defineProp.localName) + : undefined; + let propName = defineProp.name + ? getRangeName(scriptSetup, defineProp.name) + : defineProp.isModel + ? 'modelValue' + : localName; + if (defineProp.name) { + propName = propName.replace(/['"]+/g, ''); + } + return [propName, localName]; + } + function getRangeName(scriptSetup, range, unwrap = false) { + const offset = unwrap ? 1 : 0; + return scriptSetup.content.substring(range.start + offset, range.end - offset); + } + + return scriptSetup; +} + +var src = {}; + +var hasRequiredSrc; + +function requireSrc () { + if (hasRequiredSrc) return src; + hasRequiredSrc = 1; + Object.defineProperty(src, "__esModule", { value: true }); + src.generateSrc = generateSrc; + const common_1 = requireCommon(); + const index_1 = requireScript(); + function* generateSrc(script, src) { + if (src.endsWith('.d.ts')) { + src = src.substring(0, src.length - '.d.ts'.length); + } + else if (src.endsWith('.ts')) { + src = src.substring(0, src.length - '.ts'.length); + } + else if (src.endsWith('.tsx')) { + src = src.substring(0, src.length - '.tsx'.length) + '.jsx'; + } + if (!src.endsWith('.js') && !src.endsWith('.jsx')) { + src = src + '.js'; + } + yield `export * from `; + yield [ + `'${src}'`, + 'script', + script.srcOffset - 1, + { + ...index_1.codeFeatures.all, + navigation: src === script.src + ? true + : { + shouldRename: () => false, + resolveRenameEditText(newName) { + if (newName.endsWith('.jsx') || newName.endsWith('.js')) { + newName = newName.split('.').slice(0, -1).join('.'); + } + if (script?.src?.endsWith('.d.ts')) { + newName = newName + '.d.ts'; + } + else if (script?.src?.endsWith('.ts')) { + newName = newName + '.ts'; + } + else if (script?.src?.endsWith('.tsx')) { + newName = newName + '.tsx'; + } + return newName; + }, + }, + }, + ]; + yield common_1.endOfLine; + yield `export { default } from '${src}'${common_1.endOfLine}`; + } + + return src; +} + +var styleModulesType = {}; + +var hasRequiredStyleModulesType; + +function requireStyleModulesType () { + if (hasRequiredStyleModulesType) return styleModulesType; + hasRequiredStyleModulesType = 1; + Object.defineProperty(styleModulesType, "__esModule", { value: true }); + styleModulesType.generateStyleModulesType = generateStyleModulesType; + const index_1 = requireScript(); + const template_1 = requireTemplate(); + const common_1 = requireCommon(); + function* generateStyleModulesType(options, ctx) { + const styles = options.sfc.styles.filter(style => style.module); + if (!styles.length) { + return; + } + yield `type __VLS_StyleModules = {${common_1.newLine}`; + for (let i = 0; i < styles.length; i++) { + const style = styles[i]; + const { name, offset } = style.module; + if (offset) { + yield [ + name, + 'main', + offset + 1, + index_1.codeFeatures.all + ]; + } + else { + yield name; + } + yield `: Record<string, string> & ${ctx.localTypes.PrettifyLocal}<{}`; + for (const className of style.classNames) { + yield* (0, template_1.generateCssClassProperty)(i, className.text, className.offset, 'string', false); + } + yield `>${common_1.endOfLine}`; + } + yield `}`; + yield common_1.endOfLine; + } + + return styleModulesType; +} + +var hasRequiredScript; + +function requireScript () { + if (hasRequiredScript) return script; + hasRequiredScript = 1; + (function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.codeFeatures = void 0; + exports.generateScript = generateScript; + const common_1 = requireCommon(); + const globalTypes_1 = globalTypes; + const context_1 = context; + const componentSelf_1 = requireComponentSelf(); + const scriptSetup_1 = requireScriptSetup(); + const src_1 = requireSrc(); + const styleModulesType_1 = requireStyleModulesType(); + const template_1 = requireTemplate(); + exports.codeFeatures = { + all: { + verification: true, + completion: true, + semantic: true, + navigation: true, + }, + none: {}, + verification: { + verification: true, + }, + navigation: { + navigation: true, + }, + navigationWithoutRename: { + navigation: { + shouldRename() { + return false; + }, + }, + }, + }; + function* generateScript(options) { + const ctx = (0, context_1.createScriptCodegenContext)(options); + if (options.vueCompilerOptions.__setupedGlobalTypes) { + yield `/// <reference types=".vue-global-types/${options.vueCompilerOptions.lib}_${options.vueCompilerOptions.target}_${options.vueCompilerOptions.strictTemplates}.d.ts" />${common_1.newLine}`; + } + else { + yield `/* placeholder */`; + } + if (options.sfc.script?.src) { + yield* (0, src_1.generateSrc)(options.sfc.script, options.sfc.script.src); + } + if (options.sfc.script && options.scriptRanges) { + const { exportDefault, classBlockEnd } = options.scriptRanges; + const isExportRawObject = exportDefault + && options.sfc.script.content[exportDefault.expression.start] === '{'; + if (options.sfc.scriptSetup && options.scriptSetupRanges) { + yield* (0, scriptSetup_1.generateScriptSetupImports)(options.sfc.scriptSetup, options.scriptSetupRanges); + yield* generateDefineProp(options, options.sfc.scriptSetup); + if (exportDefault) { + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, exportDefault.expression.start, exports.codeFeatures.all); + yield* (0, scriptSetup_1.generateScriptSetup)(options, ctx, options.sfc.scriptSetup, options.scriptSetupRanges); + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, exportDefault.expression.end, options.sfc.script.content.length, exports.codeFeatures.all); + } + else { + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, options.sfc.script.content.length, exports.codeFeatures.all); + yield* (0, scriptSetup_1.generateScriptSetup)(options, ctx, options.sfc.scriptSetup, options.scriptSetupRanges); + } + } + else if (exportDefault && isExportRawObject && options.vueCompilerOptions.optionsWrapper.length) { + ctx.inlayHints.push({ + blockName: options.sfc.script.name, + offset: exportDefault.expression.start, + setting: 'vue.inlayHints.optionsWrapper', + label: options.vueCompilerOptions.optionsWrapper.length + ? options.vueCompilerOptions.optionsWrapper[0] + : '[Missing optionsWrapper[0]]', + tooltip: [ + 'This is virtual code that is automatically wrapped for type support, it does not affect your runtime behavior, you can customize it via `vueCompilerOptions.optionsWrapper` option in tsconfig / jsconfig.', + 'To hide it, you can set `"vue.inlayHints.optionsWrapper": false` in IDE settings.', + ].join('\n\n'), + }, { + blockName: options.sfc.script.name, + offset: exportDefault.expression.end, + setting: 'vue.inlayHints.optionsWrapper', + label: options.vueCompilerOptions.optionsWrapper.length >= 2 + ? options.vueCompilerOptions.optionsWrapper[1] + : '[Missing optionsWrapper[1]]', + }); + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, exportDefault.expression.start, exports.codeFeatures.all); + yield options.vueCompilerOptions.optionsWrapper[0]; + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, exportDefault.expression.start, exportDefault.expression.end, exports.codeFeatures.all); + yield options.vueCompilerOptions.optionsWrapper[1]; + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, exportDefault.expression.end, options.sfc.script.content.length, exports.codeFeatures.all); + } + else if (classBlockEnd !== undefined) { + if (options.vueCompilerOptions.skipTemplateCodegen) { + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, options.sfc.script.content.length, exports.codeFeatures.all); + } + else { + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, classBlockEnd, exports.codeFeatures.all); + yield `__VLS_template = () => {`; + const templateCodegenCtx = yield* (0, template_1.generateTemplate)(options, ctx, true); + yield* (0, componentSelf_1.generateComponentSelf)(options, ctx, templateCodegenCtx); + yield `},${common_1.newLine}`; + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, classBlockEnd, options.sfc.script.content.length, exports.codeFeatures.all); + } + } + else { + yield (0, common_1.generateSfcBlockSection)(options.sfc.script, 0, options.sfc.script.content.length, exports.codeFeatures.all); + } + } + else if (options.sfc.scriptSetup && options.scriptSetupRanges) { + yield* (0, scriptSetup_1.generateScriptSetupImports)(options.sfc.scriptSetup, options.scriptSetupRanges); + yield* generateDefineProp(options, options.sfc.scriptSetup); + yield* (0, scriptSetup_1.generateScriptSetup)(options, ctx, options.sfc.scriptSetup, options.scriptSetupRanges); + } + yield `;`; + if (options.sfc.scriptSetup) { + // #4569 + yield ['', 'scriptSetup', options.sfc.scriptSetup.content.length, exports.codeFeatures.verification]; + } + yield common_1.newLine; + if (!ctx.generatedTemplate) { + yield `function __VLS_template() {${common_1.newLine}`; + const templateCodegenCtx = yield* (0, template_1.generateTemplate)(options, ctx, false); + yield `}${common_1.endOfLine}`; + yield* (0, componentSelf_1.generateComponentSelf)(options, ctx, templateCodegenCtx); + } + // #4788 + yield* (0, styleModulesType_1.generateStyleModulesType)(options, ctx); + if (options.edited) { + yield `type __VLS_IntrinsicElementsCompletion = __VLS_IntrinsicElements${common_1.endOfLine}`; + } + yield* ctx.localTypes.generate([...ctx.localTypes.getUsedNames()]); + if (options.appendGlobalTypes) { + yield (0, globalTypes_1.generateGlobalTypes)(options.vueCompilerOptions.lib, options.vueCompilerOptions.target, options.vueCompilerOptions.strictTemplates); + } + if (options.sfc.scriptSetup) { + yield ['', 'scriptSetup', options.sfc.scriptSetup.content.length, exports.codeFeatures.verification]; + } + return ctx; + } + function* generateDefineProp(options, scriptSetup) { + const definePropProposalA = scriptSetup.content.trimStart().startsWith('// @experimentalDefinePropProposal=kevinEdition') || options.vueCompilerOptions.experimentalDefinePropProposal === 'kevinEdition'; + const definePropProposalB = scriptSetup.content.trimStart().startsWith('// @experimentalDefinePropProposal=johnsonEdition') || options.vueCompilerOptions.experimentalDefinePropProposal === 'johnsonEdition'; + if (definePropProposalA || definePropProposalB) { + yield `type __VLS_PropOptions<T> = Exclude<import('${options.vueCompilerOptions.lib}').Prop<T>, import('${options.vueCompilerOptions.lib}').PropType<T>>${common_1.endOfLine}`; + if (definePropProposalA) { + yield `declare function defineProp<T>(name: string, options: ({ required: true } | { default: T }) & __VLS_PropOptions<T>): import('${options.vueCompilerOptions.lib}').ComputedRef<T>${common_1.endOfLine}`; + yield `declare function defineProp<T>(name?: string, options?: __VLS_PropOptions<T>): import('${options.vueCompilerOptions.lib}').ComputedRef<T | undefined>${common_1.endOfLine}`; + } + if (definePropProposalB) { + yield `declare function defineProp<T>(value: T | (() => T), required?: boolean, options?: __VLS_PropOptions<T>): import('${options.vueCompilerOptions.lib}').ComputedRef<T>${common_1.endOfLine}`; + yield `declare function defineProp<T>(value: T | (() => T) | undefined, required: true, options?: __VLS_PropOptions<T>): import('${options.vueCompilerOptions.lib}').ComputedRef<T>${common_1.endOfLine}`; + yield `declare function defineProp<T>(value?: T | (() => T), required?: boolean, options?: __VLS_PropOptions<T>): import('${options.vueCompilerOptions.lib}').ComputedRef<T | undefined>${common_1.endOfLine}`; + } + } + } + + } (script)); + return script; +} + +var scriptRanges = {}; + +Object.defineProperty(scriptRanges, "__esModule", { value: true }); +scriptRanges.parseScriptRanges = parseScriptRanges; +const scriptSetupRanges_1 = requireScriptSetupRanges(); +function parseScriptRanges(ts, ast, hasScriptSetup, withNode) { + let exportDefault; + let classBlockEnd; + const bindings = hasScriptSetup ? (0, scriptSetupRanges_1.parseBindingRanges)(ts, ast) : []; + ts.forEachChild(ast, raw => { + if (ts.isExportAssignment(raw)) { + let node = raw; + while (isAsExpression(node.expression) || ts.isParenthesizedExpression(node.expression)) { // fix https://github.com/vuejs/language-tools/issues/1882 + node = node.expression; + } + let obj; + if (ts.isObjectLiteralExpression(node.expression)) { + obj = node.expression; + } + else if (ts.isCallExpression(node.expression) && node.expression.arguments.length) { + const arg0 = node.expression.arguments[0]; + if (ts.isObjectLiteralExpression(arg0)) { + obj = arg0; + } + } + if (obj) { + let componentsOptionNode; + let directivesOptionNode; + let nameOptionNode; + let inheritAttrsOption; + ts.forEachChild(obj, node => { + if (ts.isPropertyAssignment(node) && ts.isIdentifier(node.name)) { + const name = (0, scriptSetupRanges_1.getNodeText)(ts, node.name, ast); + if (name === 'components' && ts.isObjectLiteralExpression(node.initializer)) { + componentsOptionNode = node.initializer; + } + else if (name === 'directives' && ts.isObjectLiteralExpression(node.initializer)) { + directivesOptionNode = node.initializer; + } + else if (name === 'name') { + nameOptionNode = node.initializer; + } + else if (name === 'inheritAttrs') { + inheritAttrsOption = (0, scriptSetupRanges_1.getNodeText)(ts, node.initializer, ast); + } + } + }); + exportDefault = { + ..._getStartEnd(raw), + expression: _getStartEnd(node.expression), + args: _getStartEnd(obj), + argsNode: withNode ? obj : undefined, + componentsOption: componentsOptionNode ? _getStartEnd(componentsOptionNode) : undefined, + componentsOptionNode: withNode ? componentsOptionNode : undefined, + directivesOption: directivesOptionNode ? _getStartEnd(directivesOptionNode) : undefined, + nameOption: nameOptionNode ? _getStartEnd(nameOptionNode) : undefined, + inheritAttrsOption, + }; + } + } + if (ts.isClassDeclaration(raw) + && raw.modifiers?.some(mod => mod.kind === ts.SyntaxKind.ExportKeyword) + && raw.modifiers?.some(mod => mod.kind === ts.SyntaxKind.DefaultKeyword)) { + classBlockEnd = raw.end - 1; + } + }); + return { + exportDefault, + classBlockEnd, + bindings, + }; + function _getStartEnd(node) { + return (0, scriptSetupRanges_1.getStartEnd)(ts, node, ast); + } + // isAsExpression is missing in tsc + function isAsExpression(node) { + return node.kind === ts.SyntaxKind.AsExpression; + } +} + +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.tsCodegen = void 0; + const computeds_1 = out$1; + const path_browserify_1 = pathBrowserify; + const script_1 = requireScript(); + const template_1 = template$1; + const scriptRanges_1 = scriptRanges; + const scriptSetupRanges_1 = requireScriptSetupRanges(); + exports.tsCodegen = new WeakMap(); + const fileEditTimes = new Map(); + const plugin = ctx => { + let appendedGlobalTypes = false; + return { + version: 2.1, + requiredCompilerOptions: [ + 'noPropertyAccessFromIndexSignature', + 'exactOptionalPropertyTypes', + ], + getEmbeddedCodes(fileName, sfc) { + const tsx = useTsx(fileName, sfc); + const files = []; + if (['js', 'ts', 'jsx', 'tsx'].includes(tsx.lang())) { + files.push({ id: 'script_' + tsx.lang(), lang: tsx.lang() }); + } + return files; + }, + resolveEmbeddedCode(fileName, sfc, embeddedFile) { + const _tsx = useTsx(fileName, sfc); + if (/script_(js|jsx|ts|tsx)/.test(embeddedFile.id)) { + const tsx = _tsx.generatedScript(); + if (tsx) { + const content = [...tsx.codes]; + embeddedFile.content = content; + embeddedFile.linkedCodeMappings = [...tsx.linkedCodeMappings]; + } + } + }, + }; + function useTsx(fileName, sfc) { + if (!exports.tsCodegen.has(sfc)) { + let appendGlobalTypes = false; + if (!ctx.vueCompilerOptions.__setupedGlobalTypes && !appendedGlobalTypes) { + appendGlobalTypes = true; + appendedGlobalTypes = true; + } + exports.tsCodegen.set(sfc, createTsx(fileName, sfc, ctx, appendGlobalTypes)); + } + return exports.tsCodegen.get(sfc); + } + }; + exports.default = plugin; + function createTsx(fileName, _sfc, ctx, appendGlobalTypes) { + const ts = ctx.modules.typescript; + const lang = (0, computeds_1.computed)(() => { + return !_sfc.script && !_sfc.scriptSetup ? 'ts' + : _sfc.scriptSetup && _sfc.scriptSetup.lang !== 'js' ? _sfc.scriptSetup.lang + : _sfc.script && _sfc.script.lang !== 'js' ? _sfc.script.lang + : 'js'; + }); + const scriptRanges = (0, computeds_1.computed)(() => _sfc.script + ? (0, scriptRanges_1.parseScriptRanges)(ts, _sfc.script.ast, !!_sfc.scriptSetup, false) + : undefined); + const scriptSetupRanges = (0, computeds_1.computed)(() => _sfc.scriptSetup + ? (0, scriptSetupRanges_1.parseScriptSetupRanges)(ts, _sfc.scriptSetup.ast, ctx.vueCompilerOptions) + : undefined); + const generatedTemplate = (0, computeds_1.computed)(() => { + if (ctx.vueCompilerOptions.skipTemplateCodegen || !_sfc.template) { + return; + } + const codes = []; + const codegen = (0, template_1.generateTemplate)({ + ts, + compilerOptions: ctx.compilerOptions, + vueCompilerOptions: ctx.vueCompilerOptions, + template: _sfc.template, + edited: ctx.vueCompilerOptions.__test || (fileEditTimes.get(fileName) ?? 0) >= 2, + scriptSetupBindingNames: scriptSetupBindingNames(), + scriptSetupImportComponentNames: scriptSetupImportComponentNames(), + templateRefNames: templateRefNames(), + hasDefineSlots: hasDefineSlots(), + slotsAssignName: slotsAssignName(), + propsAssignName: propsAssignName(), + inheritAttrs: inheritAttrs(), + }); + let current = codegen.next(); + while (!current.done) { + const code = current.value; + codes.push(code); + current = codegen.next(); + } + return { + ...current.value, + codes: codes, + }; + }); + const scriptSetupBindingNames = (0, computeds_1.computed)(oldNames => { + const newNames = new Set(); + const bindings = scriptSetupRanges()?.bindings; + if (_sfc.scriptSetup && bindings) { + for (const binding of bindings) { + newNames.add(_sfc.scriptSetup?.content.substring(binding.start, binding.end)); + } + } + if (newNames && oldNames && twoSetsEqual(newNames, oldNames)) { + return oldNames; + } + return newNames; + }); + const scriptSetupImportComponentNames = (0, computeds_1.computed)(oldNames => { + const newNames = scriptSetupRanges()?.importComponentNames ?? new Set(); + if (oldNames && twoSetsEqual(newNames, oldNames)) { + return oldNames; + } + return newNames; + }); + const templateRefNames = (0, computeds_1.computed)(oldNames => { + const newNames = new Set(scriptSetupRanges()?.templateRefs + .map(({ name }) => name) + .filter(name => name !== undefined)); + if (oldNames && twoSetsEqual(newNames, oldNames)) { + return oldNames; + } + return newNames; + }); + const hasDefineSlots = (0, computeds_1.computed)(() => !!scriptSetupRanges()?.slots.define); + const slotsAssignName = (0, computeds_1.computed)(() => scriptSetupRanges()?.slots.name); + const propsAssignName = (0, computeds_1.computed)(() => scriptSetupRanges()?.props.name); + const inheritAttrs = (0, computeds_1.computed)(() => { + const value = scriptSetupRanges()?.options.inheritAttrs ?? scriptRanges()?.exportDefault?.inheritAttrsOption; + return value !== 'false'; + }); + const generatedScript = (0, computeds_1.computed)(() => { + const codes = []; + const linkedCodeMappings = []; + let generatedLength = 0; + const codegen = (0, script_1.generateScript)({ + ts, + fileBaseName: path_browserify_1.posix.basename(fileName), + sfc: _sfc, + lang: lang(), + scriptRanges: scriptRanges(), + scriptSetupRanges: scriptSetupRanges(), + templateCodegen: generatedTemplate(), + compilerOptions: ctx.compilerOptions, + vueCompilerOptions: ctx.vueCompilerOptions, + edited: ctx.vueCompilerOptions.__test || (fileEditTimes.get(fileName) ?? 0) >= 2, + getGeneratedLength: () => generatedLength, + linkedCodeMappings, + appendGlobalTypes, + }); + fileEditTimes.set(fileName, (fileEditTimes.get(fileName) ?? 0) + 1); + let current = codegen.next(); + while (!current.done) { + const code = current.value; + codes.push(code); + generatedLength += typeof code === 'string' + ? code.length + : code[0].length; + current = codegen.next(); + } + return { + ...current.value, + codes, + linkedCodeMappings, + }; + }); + return { + scriptRanges, + scriptSetupRanges, + lang, + generatedScript, + generatedTemplate, + }; + } + function twoSetsEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const file of a) { + if (!b.has(file)) { + return false; + } + } + return true; + } + +} (vueTsx)); + +var types$1 = {}; + +Object.defineProperty(types$1, "__esModule", { value: true }); +types$1.validVersions = void 0; +types$1.validVersions = [2, 2.1]; + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createPlugins = createPlugins; + const file_html_1 = fileHtml; + const file_md_1 = fileMd; + const file_vue_1 = fileVue; + const vue_root_tags_1 = vueRootTags; + const vue_script_js_1 = vueScriptJs; + const vue_sfc_customblocks_1 = vueSfcCustomblocks; + const vue_sfc_scripts_1 = vueSfcScripts; + const vue_sfc_styles_1 = vueSfcStyles; + const vue_sfc_template_1 = vueSfcTemplate; + const vue_template_html_1 = vueTemplateHtml; + const vue_template_inline_css_1 = vueTemplateInlineCss; + const vue_template_inline_ts_1 = vueTemplateInlineTs; + const vue_tsx_1 = vueTsx; + const types_1 = types$1; + __exportStar(shared$1, exports); + function createPlugins(pluginContext) { + const plugins = [ + file_vue_1.default, + file_md_1.default, + file_html_1.default, + vue_root_tags_1.default, + vue_script_js_1.default, + vue_template_html_1.default, + vue_template_inline_css_1.default, + vue_template_inline_ts_1.default, + vue_sfc_styles_1.default, + vue_sfc_customblocks_1.default, + vue_sfc_scripts_1.default, + vue_sfc_template_1.default, + vue_tsx_1.default, + ...pluginContext.vueCompilerOptions.plugins, + ]; + const pluginInstances = plugins + .flatMap(plugin => { + try { + const instance = plugin(pluginContext); + const moduleName = plugin.__moduleName; + if (Array.isArray(instance)) { + for (let i = 0; i < instance.length; i++) { + instance[i].name ??= `${moduleName} (${i})`; + } + } + else { + instance.name ??= moduleName; + } + return instance; + } + catch (err) { + console.warn('[Vue] Failed to create plugin', err); + } + }) + .filter(plugin => !!plugin) + .sort((a, b) => { + const aOrder = a.order ?? 0; + const bOrder = b.order ?? 0; + return aOrder - bOrder; + }); + return pluginInstances.filter(plugin => { + if (!types_1.validVersions.includes(plugin.version)) { + console.warn(`[Vue] Plugin ${plugin.name} is not compatible with the current Vue language tools version. (version: ${plugin.version}, supported versions: ${JSON.stringify(types_1.validVersions)})`); + return false; + } + return true; + }); + } + +} (plugins)); + +var vue2TemplateCompiler = {}; + +var build = {}; + +var splitRE$1 = /\r?\n/g; +var emptyRE = /^\s*$/; +var needFixRE = /^(\r?\n)*[\t\s]/; + +var deIndent = function deindent (str) { + if (!needFixRE.test(str)) { + return str + } + var lines = str.split(splitRE$1); + var min = Infinity; + var type, cur, c; + for (var i = 0; i < lines.length; i++) { + var line = lines[i]; + if (!emptyRE.test(line)) { + if (!type) { + c = line.charAt(0); + if (c === ' ' || c === '\t') { + type = c; + cur = count(line, type); + if (cur < min) { + min = cur; + } + } else { + return str + } + } else { + cur = count(line, type); + if (cur < min) { + min = cur; + } + } + } + } + return lines.map(function (line) { + return line.slice(min) + }).join('\n') +}; + +function count (line, type) { + var i = 0; + while (line.charAt(i) === type) { + i++; + } + return i +} + +var he$1 = {exports: {}}; + +/*! https://mths.be/he v1.2.0 by @mathias | MIT license */ +he$1.exports; + +(function (module, exports) { +(function(root) { + + // Detect free variables `exports`. + var freeExports = exports; + + // Detect free variable `module`. + var freeModule = module && + module.exports == freeExports && module; + + // Detect free variable `global`, from Node.js or Browserified code, + // and use it as `root`. + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /*--------------------------------------------------------------------------*/ + + // All astral symbols. + var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + // All ASCII symbols (not just printable ASCII) except those listed in the + // first column of the overrides table. + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides + var regexAsciiWhitelist = /[\x01-\x7F]/g; + // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or + // code points listed in the first column of the overrides table on + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. + var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; + + var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; + var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; + + var regexEscape = /["&'<>`]/g; + var escapeMap = { + '"': '"', + '&': '&', + '\'': ''', + '<': '<', + // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the + // following is not strictly necessary unless it’s part of a tag or an + // unquoted attribute value. We’re only escaping it to support those + // situations, and for XML support. + '>': '>', + // In Internet Explorer ≤ 8, the backtick character can be used + // to break out of (un)quoted attribute values or HTML comments. + // See http://html5sec.org/#102, http://html5sec.org/#108, and + // http://html5sec.org/#133. + '`': '`' + }; + + var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; + var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g; + var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; + var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; + var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; + var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; + + /*--------------------------------------------------------------------------*/ + + var stringFromCharCode = String.fromCharCode; + + var object = {}; + var hasOwnProperty = object.hasOwnProperty; + var has = function(object, propertyName) { + return hasOwnProperty.call(object, propertyName); + }; + + var contains = function(array, value) { + var index = -1; + var length = array.length; + while (++index < length) { + if (array[index] == value) { + return true; + } + } + return false; + }; + + var merge = function(options, defaults) { + if (!options) { + return defaults; + } + var result = {}; + var key; + for (key in defaults) { + // A `hasOwnProperty` check is not needed here, since only recognized + // option names are used anyway. Any others are ignored. + result[key] = has(options, key) ? options[key] : defaults[key]; + } + return result; + }; + + // Modified version of `ucs2encode`; see https://mths.be/punycode. + var codePointToSymbol = function(codePoint, strict) { + var output = ''; + if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { + // See issue #4: + // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is + // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD + // REPLACEMENT CHARACTER.” + if (strict) { + parseError('character reference outside the permissible Unicode range'); + } + return '\uFFFD'; + } + if (has(decodeMapNumeric, codePoint)) { + if (strict) { + parseError('disallowed character reference'); + } + return decodeMapNumeric[codePoint]; + } + if (strict && contains(invalidReferenceCodePoints, codePoint)) { + parseError('disallowed character reference'); + } + if (codePoint > 0xFFFF) { + codePoint -= 0x10000; + output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + output += stringFromCharCode(codePoint); + return output; + }; + + var hexEscape = function(codePoint) { + return '&#x' + codePoint.toString(16).toUpperCase() + ';'; + }; + + var decEscape = function(codePoint) { + return '&#' + codePoint + ';'; + }; + + var parseError = function(message) { + throw Error('Parse error: ' + message); + }; + + /*--------------------------------------------------------------------------*/ + + var encode = function(string, options) { + options = merge(options, encode.options); + var strict = options.strict; + if (strict && regexInvalidRawCodePoint.test(string)) { + parseError('forbidden code point'); + } + var encodeEverything = options.encodeEverything; + var useNamedReferences = options.useNamedReferences; + var allowUnsafeSymbols = options.allowUnsafeSymbols; + var escapeCodePoint = options.decimal ? decEscape : hexEscape; + + var escapeBmpSymbol = function(symbol) { + return escapeCodePoint(symbol.charCodeAt(0)); + }; + + if (encodeEverything) { + // Encode ASCII symbols. + string = string.replace(regexAsciiWhitelist, function(symbol) { + // Use named references if requested & possible. + if (useNamedReferences && has(encodeMap, symbol)) { + return '&' + encodeMap[symbol] + ';'; + } + return escapeBmpSymbol(symbol); + }); + // Shorten a few escapes that represent two symbols, of which at least one + // is within the ASCII range. + if (useNamedReferences) { + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒') + .replace(/fj/g, 'fj'); + } + // Encode non-ASCII symbols. + if (useNamedReferences) { + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } + // Note: any remaining non-ASCII symbols are handled outside of the `if`. + } else if (useNamedReferences) { + // Apply named character references. + // Encode `<>"'&` using named character references. + if (!allowUnsafeSymbols) { + string = string.replace(regexEscape, function(string) { + return '&' + encodeMap[string] + ';'; // no need to check `has()` here + }); + } + // Shorten escapes that represent two symbols, of which at least one is + // `<>"'&`. + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒'); + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } else if (!allowUnsafeSymbols) { + // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled + // using named character references. + string = string.replace(regexEscape, escapeBmpSymbol); + } + return string + // Encode astral symbols. + .replace(regexAstralSymbols, function($0) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var high = $0.charCodeAt(0); + var low = $0.charCodeAt(1); + var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; + return escapeCodePoint(codePoint); + }) + // Encode any remaining BMP symbols that are not printable ASCII symbols + // using a hexadecimal escape. + .replace(regexBmpWhitelist, escapeBmpSymbol); + }; + // Expose default options (so they can be overridden globally). + encode.options = { + 'allowUnsafeSymbols': false, + 'encodeEverything': false, + 'strict': false, + 'useNamedReferences': false, + 'decimal' : false + }; + + var decode = function(html, options) { + options = merge(options, decode.options); + var strict = options.strict; + if (strict && regexInvalidEntity.test(html)) { + parseError('malformed character reference'); + } + return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) { + var codePoint; + var semicolon; + var decDigits; + var hexDigits; + var reference; + var next; + + if ($1) { + reference = $1; + // Note: there is no need to check `has(decodeMap, reference)`. + return decodeMap[reference]; + } + + if ($2) { + // Decode named character references without trailing `;`, e.g. `&`. + // This is only a parse error if it gets converted to `&`, or if it is + // followed by `=` in an attribute context. + reference = $2; + next = $3; + if (next && options.isAttributeValue) { + if (strict && next == '=') { + parseError('`&` did not start a character reference'); + } + return $0; + } else { + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + // Note: there is no need to check `has(decodeMapLegacy, reference)`. + return decodeMapLegacy[reference] + (next || ''); + } + } + + if ($4) { + // Decode decimal escapes, e.g. `𝌆`. + decDigits = $4; + semicolon = $5; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(decDigits, 10); + return codePointToSymbol(codePoint, strict); + } + + if ($6) { + // Decode hexadecimal escapes, e.g. `𝌆`. + hexDigits = $6; + semicolon = $7; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(hexDigits, 16); + return codePointToSymbol(codePoint, strict); + } + + // If we’re still here, `if ($7)` is implied; it’s an ambiguous + // ampersand for sure. https://mths.be/notes/ambiguous-ampersands + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + return $0; + }); + }; + // Expose default options (so they can be overridden globally). + decode.options = { + 'isAttributeValue': false, + 'strict': false + }; + + var escape = function(string) { + return string.replace(regexEscape, function($0) { + // Note: there is no need to check `has(escapeMap, $0)` here. + return escapeMap[$0]; + }); + }; + + /*--------------------------------------------------------------------------*/ + + var he = { + 'version': '1.2.0', + 'encode': encode, + 'decode': decode, + 'escape': escape, + 'unescape': decode + }; + + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = he; + } else { // in Narwhal or RingoJS v0.7.0- + for (var key in he) { + has(he, key) && (freeExports[key] = he[key]); + } + } + } else { // in Rhino or a web browser + root.he = he; + } + + }(commonjsGlobal)); +} (he$1, he$1.exports)); + +var heExports = he$1.exports; + +Object.defineProperty(build, '__esModule', { value: true }); + +var deindent = deIndent; +var he = heExports; + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var deindent__default = /*#__PURE__*/_interopDefaultLegacy(deindent); +var he__default = /*#__PURE__*/_interopDefaultLegacy(he); + +const emptyObject = Object.freeze({}); +const isArray = Array.isArray; +// These helpers produce better VM code in JS engines due to their +// explicitness and function inlining. +function isUndef(v) { + return v === undefined || v === null; +} +function isDef(v) { + return v !== undefined && v !== null; +} +function isTrue(v) { + return v === true; +} +function isFalse(v) { + return v === false; +} +/** + * Check if value is primitive. + */ +function isPrimitive(value) { + return (typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean'); +} +function isFunction(value) { + return typeof value === 'function'; +} +/** + * Quick object check - this is primarily used to tell + * objects from primitive values when we know the value + * is a JSON-compliant type. + */ +function isObject$1(obj) { + return obj !== null && typeof obj === 'object'; +} +/** + * Get the raw type string of a value, e.g., [object Object]. + */ +const _toString = Object.prototype.toString; +function toRawType(value) { + return _toString.call(value).slice(8, -1); +} +/** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ +function isPlainObject(obj) { + return _toString.call(obj) === '[object Object]'; +} +/** + * Check if val is a valid array index. + */ +function isValidArrayIndex(val) { + const n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val); +} +function isPromise(val) { + return (isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function'); +} +/** + * Convert a value to a string that is actually rendered. + */ +function toString(val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, replacer, 2) + : String(val); +} +function replacer(_key, val) { + // avoid circular deps from v3 + if (val && val.__v_isRef) { + return val.value; + } + return val; +} +/** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ +function toNumber(val) { + const n = parseFloat(val); + return isNaN(n) ? val : n; +} +/** + * Make a map and return a function for checking if a key + * is in that map. + */ +function makeMap(str, expectsLowerCase) { + const map = Object.create(null); + const list = str.split(','); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? val => map[val.toLowerCase()] : val => map[val]; +} +/** + * Check if a tag is a built-in tag. + */ +const isBuiltInTag = makeMap('slot,component', true); +/** + * Check if an attribute is a reserved attribute. + */ +const isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); +/** + * Check whether an object has the property. + */ +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +function hasOwn(obj, key) { + return hasOwnProperty$1.call(obj, key); +} +/** + * Create a cached version of a pure function. + */ +function cached(fn) { + const cache = Object.create(null); + return function cachedFn(str) { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +} +/** + * Camelize a hyphen-delimited string. + */ +const camelizeRE = /-(\w)/g; +const camelize = cached((str) => { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')); +}); +/** + * Capitalize a string. + */ +const capitalize = cached((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +/** + * Hyphenate a camelCase string. + */ +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cached((str) => { + return str.replace(hyphenateRE, '-$1').toLowerCase(); +}); +/** + * Mix properties into target object. + */ +function extend(to, _from) { + for (const key in _from) { + to[key] = _from[key]; + } + return to; +} +/** + * Merge an Array of Objects into a single Object. + */ +function toObject(arr) { + const res = {}; + for (let i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res; +} +/* eslint-disable no-unused-vars */ +/** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ +function noop(a, b, c) { } +/** + * Always return false. + */ +const no = (a, b, c) => false; +/* eslint-enable no-unused-vars */ +/** + * Return the same value. + */ +const identity = (_) => _; +/** + * Generate a string containing static keys from compiler modules. + */ +function genStaticKeys$1(modules) { + return modules + .reduce((keys, m) => keys.concat(m.staticKeys || []), []) + .join(','); +} +/** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ +function looseEqual(a, b) { + if (a === b) + return true; + const isObjectA = isObject$1(a); + const isObjectB = isObject$1(b); + if (isObjectA && isObjectB) { + try { + const isArrayA = Array.isArray(a); + const isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return (a.length === b.length && + a.every((e, i) => { + return looseEqual(e, b[i]); + })); + } + else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime(); + } + else if (!isArrayA && !isArrayB) { + const keysA = Object.keys(a); + const keysB = Object.keys(b); + return (keysA.length === keysB.length && + keysA.every(key => { + return looseEqual(a[key], b[key]); + })); + } + else { + /* istanbul ignore next */ + return false; + } + } + catch (e) { + /* istanbul ignore next */ + return false; + } + } + else if (!isObjectA && !isObjectB) { + return String(a) === String(b); + } + else { + return false; + } +} +/** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ +function looseIndexOf(arr, val) { + for (let i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) + return i; + } + return -1; +} +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill +function hasChanged(x, y) { + if (x === y) { + return x === 0 && 1 / x !== 1 / y; + } + else { + return x === x || y === y; + } +} + +const isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + + 'link,meta,param,source,track,wbr'); +// Elements that you can, intentionally, leave open +// (and which close themselves) +const canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'); +// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3 +// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content +const isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' + + 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' + + 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' + + 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' + + 'title,tr,track'); + +/** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ +const unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; +/** + * Define a property. + */ +function def(obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); +} + +/** + * Not type-checking this file because it's mostly vendor code. + */ +// Regular Expressions for parsing tags and attributes +const attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; +const dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; +const ncname = `[a-zA-Z_][\\-\\.0-9_a-zA-Z${unicodeRegExp.source}]*`; +const qnameCapture = `((?:${ncname}\\:)?${ncname})`; +const startTagOpen = new RegExp(`^<${qnameCapture}`); +const startTagClose = /^\s*(\/?)>/; +const endTag = new RegExp(`^<\\/${qnameCapture}[^>]*>`); +const doctype = /^<!DOCTYPE [^>]+>/i; +// #7298: escape - to avoid being passed as HTML comment when inlined in page +const comment = /^<!\--/; +const conditionalComment = /^<!\[/; +// Special Elements (can contain anything) +const isPlainTextElement = makeMap('script,style,textarea', true); +const reCache = {}; +const decodingMap = { + '<': '<', + '>': '>', + '"': '"', + '&': '&', + ' ': '\n', + ' ': '\t', + ''': "'" +}; +const encodedAttr = /&(?:lt|gt|quot|amp|#39);/g; +const encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g; +// #5992 +const isIgnoreNewlineTag = makeMap('pre,textarea', true); +const shouldIgnoreFirstNewline = (tag, html) => tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; +function decodeAttr(value, shouldDecodeNewlines) { + const re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr; + return value.replace(re, match => decodingMap[match]); +} +function parseHTML(html, options) { + const stack = []; + const expectHTML = options.expectHTML; + const isUnaryTag = options.isUnaryTag || no; + const canBeLeftOpenTag = options.canBeLeftOpenTag || no; + let index = 0; + let last, lastTag; + while (html) { + last = html; + // Make sure we're not in a plaintext content element like script/style + if (!lastTag || !isPlainTextElement(lastTag)) { + let textEnd = html.indexOf('<'); + if (textEnd === 0) { + // Comment: + if (comment.test(html)) { + const commentEnd = html.indexOf('-->'); + if (commentEnd >= 0) { + if (options.shouldKeepComment && options.comment) { + options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3); + } + advance(commentEnd + 3); + continue; + } + } + // https://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment + if (conditionalComment.test(html)) { + const conditionalEnd = html.indexOf(']>'); + if (conditionalEnd >= 0) { + advance(conditionalEnd + 2); + continue; + } + } + // Doctype: + const doctypeMatch = html.match(doctype); + if (doctypeMatch) { + advance(doctypeMatch[0].length); + continue; + } + // End tag: + const endTagMatch = html.match(endTag); + if (endTagMatch) { + const curIndex = index; + advance(endTagMatch[0].length); + parseEndTag(endTagMatch[1], curIndex, index); + continue; + } + // Start tag: + const startTagMatch = parseStartTag(); + if (startTagMatch) { + handleStartTag(startTagMatch); + if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) { + advance(1); + } + continue; + } + } + let text, rest, next; + if (textEnd >= 0) { + rest = html.slice(textEnd); + while (!endTag.test(rest) && + !startTagOpen.test(rest) && + !comment.test(rest) && + !conditionalComment.test(rest)) { + // < in plain text, be forgiving and treat it as text + next = rest.indexOf('<', 1); + if (next < 0) + break; + textEnd += next; + rest = html.slice(textEnd); + } + text = html.substring(0, textEnd); + } + if (textEnd < 0) { + text = html; + } + if (text) { + advance(text.length); + } + if (options.chars && text) { + options.chars(text, index - text.length, index); + } + } + else { + let endTagLength = 0; + const stackedTag = lastTag.toLowerCase(); + const reStackedTag = reCache[stackedTag] || + (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i')); + const rest = html.replace(reStackedTag, function (all, text, endTag) { + endTagLength = endTag.length; + if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') { + text = text + .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298 + .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1'); + } + if (shouldIgnoreFirstNewline(stackedTag, text)) { + text = text.slice(1); + } + if (options.chars) { + options.chars(text); + } + return ''; + }); + index += html.length - rest.length; + html = rest; + parseEndTag(stackedTag, index - endTagLength, index); + } + if (html === last) { + options.chars && options.chars(html); + break; + } + } + // Clean up any remaining tags + parseEndTag(); + function advance(n) { + index += n; + html = html.substring(n); + } + function parseStartTag() { + const start = html.match(startTagOpen); + if (start) { + const match = { + tagName: start[1], + attrs: [], + start: index + }; + advance(start[0].length); + let end, attr; + while (!(end = html.match(startTagClose)) && + (attr = html.match(dynamicArgAttribute) || html.match(attribute))) { + attr.start = index; + advance(attr[0].length); + attr.end = index; + match.attrs.push(attr); + } + if (end) { + match.unarySlash = end[1]; + advance(end[0].length); + match.end = index; + return match; + } + } + } + function handleStartTag(match) { + const tagName = match.tagName; + const unarySlash = match.unarySlash; + if (expectHTML) { + if (lastTag === 'p' && isNonPhrasingTag(tagName)) { + parseEndTag(lastTag); + } + if (canBeLeftOpenTag(tagName) && lastTag === tagName) { + parseEndTag(tagName); + } + } + const unary = isUnaryTag(tagName) || !!unarySlash; + const l = match.attrs.length; + const attrs = new Array(l); + for (let i = 0; i < l; i++) { + const args = match.attrs[i]; + const value = args[3] || args[4] || args[5] || ''; + const shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' + ? options.shouldDecodeNewlinesForHref + : options.shouldDecodeNewlines; + attrs[i] = { + name: args[1], + value: decodeAttr(value, shouldDecodeNewlines) + }; + } + if (!unary) { + stack.push({ + tag: tagName, + lowerCasedTag: tagName.toLowerCase(), + attrs: attrs, + start: match.start, + end: match.end + }); + lastTag = tagName; + } + if (options.start) { + options.start(tagName, attrs, unary, match.start, match.end); + } + } + function parseEndTag(tagName, start, end) { + let pos, lowerCasedTagName; + if (start == null) + start = index; + if (end == null) + end = index; + // Find the closest opened tag of the same type + if (tagName) { + lowerCasedTagName = tagName.toLowerCase(); + for (pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos].lowerCasedTag === lowerCasedTagName) { + break; + } + } + } + else { + // If no tag name is provided, clean shop + pos = 0; + } + if (pos >= 0) { + // Close all the open elements, up the stack + for (let i = stack.length - 1; i >= pos; i--) { + if (options.end) { + options.end(stack[i].tag, start, end); + } + } + // Remove the open elements from the stack + stack.length = pos; + lastTag = pos && stack[pos - 1].tag; + } + else if (lowerCasedTagName === 'br') { + if (options.start) { + options.start(tagName, [], true, start, end); + } + } + else if (lowerCasedTagName === 'p') { + if (options.start) { + options.start(tagName, [], false, start, end); + } + if (options.end) { + options.end(tagName, start, end); + } + } + } +} + +const DEFAULT_FILENAME = 'anonymous.vue'; +const splitRE = /\r?\n/g; +const replaceRE = /./g; +const isSpecialTag = makeMap('script,style,template', true); +/** + * Parse a single-file component (*.vue) file into an SFC Descriptor Object. + */ +function parseComponent(source, options = {}) { + const sfc = { + source, + filename: DEFAULT_FILENAME, + template: null, + script: null, + scriptSetup: null, + styles: [], + customBlocks: [], + cssVars: [], + errors: [], + shouldForceReload: null // attached in parse() by compiler-sfc + }; + let depth = 0; + let currentBlock = null; + let warn = msg => { + sfc.errors.push(msg); + }; + function start(tag, attrs, unary, start, end) { + if (depth === 0) { + currentBlock = { + type: tag, + content: '', + start: end, + end: 0, + attrs: attrs.reduce((cumulated, { name, value }) => { + cumulated[name] = value || true; + return cumulated; + }, {}) + }; + if (typeof currentBlock.attrs.src === 'string') { + currentBlock.src = currentBlock.attrs.src; + } + if (isSpecialTag(tag)) { + checkAttrs(currentBlock, attrs); + if (tag === 'script') { + const block = currentBlock; + if (block.attrs.setup) { + block.setup = currentBlock.attrs.setup; + sfc.scriptSetup = block; + } + else { + sfc.script = block; + } + } + else if (tag === 'style') { + sfc.styles.push(currentBlock); + } + else { + sfc[tag] = currentBlock; + } + } + else { + // custom blocks + sfc.customBlocks.push(currentBlock); + } + } + if (!unary) { + depth++; + } + } + function checkAttrs(block, attrs) { + for (let i = 0; i < attrs.length; i++) { + const attr = attrs[i]; + if (attr.name === 'lang') { + block.lang = attr.value; + } + if (attr.name === 'scoped') { + block.scoped = true; + } + if (attr.name === 'module') { + block.module = attr.value || true; + } + } + } + function end(tag, start) { + if (depth === 1 && currentBlock) { + currentBlock.end = start; + let text = source.slice(currentBlock.start, currentBlock.end); + if (options.deindent === true || + // by default, deindent unless it's script with default lang or (j/t)sx? + (options.deindent !== false && + !(currentBlock.type === 'script' && + (!currentBlock.lang || /^(j|t)sx?$/.test(currentBlock.lang))))) { + text = deindent__default["default"](text); + } + // pad content so that linters and pre-processors can output correct + // line numbers in errors and warnings + if (currentBlock.type !== 'template' && options.pad) { + text = padContent(currentBlock, options.pad) + text; + } + currentBlock.content = text; + currentBlock = null; + } + depth--; + } + function padContent(block, pad) { + if (pad === 'space') { + return source.slice(0, block.start).replace(replaceRE, ' '); + } + else { + const offset = source.slice(0, block.start).split(splitRE).length; + const padChar = block.type === 'script' && !block.lang ? '//\n' : '\n'; + return Array(offset).join(padChar); + } + } + parseHTML(source, { + warn, + start, + end, + outputSourceRange: options.outputSourceRange + }); + return sfc; +} + +// can we use __proto__? +const hasProto = '__proto__' in {}; +// Browser environment sniffing +const inBrowser = typeof window !== 'undefined'; +const UA = inBrowser && window.navigator.userAgent.toLowerCase(); +const isIE = UA && /msie|trident/.test(UA); +UA && UA.indexOf('msie 9.0') > 0; +UA && UA.indexOf('edge/') > 0; +UA && UA.indexOf('android') > 0; +UA && UA.match(/firefox\/(\d+)/); +// Firefox has a "watch" function on Object.prototype... +// @ts-expect-error firebox support +const nativeWatch = {}.watch; +let supportsPassive = false; +if (inBrowser) { + try { + const opts = {}; + Object.defineProperty(opts, 'passive', { + get() { + /* istanbul ignore next */ + supportsPassive = true; + } + }); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } + catch (e) { } +} +// this needs to be lazy-evaled because vue may be required before +// vue-server-renderer can set VUE_ENV +let _isServer; +const isServerRendering = () => { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && typeof commonjsGlobal !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = + commonjsGlobal['process'] && commonjsGlobal['process'].env.VUE_ENV === 'server'; + } + else { + _isServer = false; + } + } + return _isServer; +}; +/* istanbul ignore next */ +function isNative(Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()); +} +const hasSymbol = typeof Symbol !== 'undefined' && + isNative(Symbol) && + typeof Reflect !== 'undefined' && + isNative(Reflect.ownKeys); +let _Set; // $flow-disable-line +/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; +} +else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = class Set { + constructor() { + this.set = Object.create(null); + } + has(key) { + return this.set[key] === true; + } + add(key) { + this.set[key] = true; + } + clear() { + this.set = Object.create(null); + } + }; +} + +const ASSET_TYPES = ['component', 'directive', 'filter']; +const LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch', + 'renderTracked', + 'renderTriggered' +]; + +var config = { + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + /** + * Whether to suppress warnings. + */ + silent: false, + /** + * Show production mode tip message on boot? + */ + productionTip: "production" !== 'production', + /** + * Whether to enable devtools + */ + devtools: "production" !== 'production', + /** + * Whether to record perf + */ + performance: false, + /** + * Error handler for watcher errors + */ + errorHandler: null, + /** + * Warn handler for watcher warns + */ + warnHandler: null, + /** + * Ignore certain custom elements + */ + ignoredElements: [], + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS +}; + +let currentInstance = null; +/** + * @internal + */ +function setCurrentInstance(vm = null) { + if (!vm) + currentInstance && currentInstance._scope.off(); + currentInstance = vm; + vm && vm._scope.on(); +} + +/** + * @internal + */ +class VNode { + constructor(tag, data, children, text, elm, context, componentOptions, asyncFactory) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + } + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + get child() { + return this.componentInstance; + } +} +const createEmptyVNode = (text = '') => { + const node = new VNode(); + node.text = text; + node.isComment = true; + return node; +}; +function createTextVNode(val) { + return new VNode(undefined, undefined, undefined, String(val)); +} +// optimized shallow clone +// used for static nodes and slot nodes because they may be reused across +// multiple renders, cloning them avoids errors when DOM manipulations rely +// on their elm reference. +function cloneVNode(vnode) { + const cloned = new VNode(vnode.tag, vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned; +} + +let uid = 0; +/** + * A dep is an observable that can have multiple + * directives subscribing to it. + * @internal + */ +class Dep { + constructor() { + // pending subs cleanup + this._pending = false; + this.id = uid++; + this.subs = []; + } + addSub(sub) { + this.subs.push(sub); + } + removeSub(sub) { + // #12696 deps with massive amount of subscribers are extremely slow to + // clean up in Chromium + // to workaround this, we unset the sub for now, and clear them on + // next scheduler flush. + this.subs[this.subs.indexOf(sub)] = null; + if (!this._pending) { + this._pending = true; + } + } + depend(info) { + if (Dep.target) { + Dep.target.addDep(this); + } + } + notify(info) { + // stabilize the subscriber list first + const subs = this.subs.filter(s => s); + for (let i = 0, l = subs.length; i < l; i++) { + const sub = subs[i]; + sub.update(); + } + } +} +// The current target watcher being evaluated. +// This is globally unique because only one watcher +// can be evaluated at a time. +Dep.target = null; +const targetStack = []; +function pushTarget(target) { + targetStack.push(target); + Dep.target = target; +} +function popTarget() { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; +} + +/* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ +const arrayProto = Array.prototype; +const arrayMethods = Object.create(arrayProto); +const methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' +]; +/** + * Intercept mutating methods and emit events + */ +methodsToPatch.forEach(function (method) { + // cache original method + const original = arrayProto[method]; + def(arrayMethods, method, function mutator(...args) { + const result = original.apply(this, args); + const ob = this.__ob__; + let inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break; + case 'splice': + inserted = args.slice(2); + break; + } + if (inserted) + ob.observeArray(inserted); + // notify change + { + ob.dep.notify(); + } + return result; + }); +}); + +const arrayKeys = Object.getOwnPropertyNames(arrayMethods); +const NO_INITIAL_VALUE = {}; +/** + * In some cases we may want to disable observation inside a component's + * update computation. + */ +let shouldObserve = true; +function toggleObserving(value) { + shouldObserve = value; +} +// ssr mock dep +const mockDep = { + notify: noop, + depend: noop, + addSub: noop, + removeSub: noop +}; +/** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ +class Observer { + constructor(value, shallow = false, mock = false) { + this.value = value; + this.shallow = shallow; + this.mock = mock; + // this.value = value + this.dep = mock ? mockDep : new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (isArray(value)) { + if (!mock) { + if (hasProto) { + value.__proto__ = arrayMethods; + /* eslint-enable no-proto */ + } + else { + for (let i = 0, l = arrayKeys.length; i < l; i++) { + const key = arrayKeys[i]; + def(value, key, arrayMethods[key]); + } + } + } + if (!shallow) { + this.observeArray(value); + } + } + else { + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + const keys = Object.keys(value); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock); + } + } + } + /** + * Observe a list of Array items. + */ + observeArray(value) { + for (let i = 0, l = value.length; i < l; i++) { + observe(value[i], false, this.mock); + } + } +} +// helpers +/** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ +function observe(value, shallow, ssrMockReactivity) { + if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + return value.__ob__; + } + if (shouldObserve && + (ssrMockReactivity || !isServerRendering()) && + (isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value.__v_skip /* ReactiveFlags.SKIP */ && + !isRef(value) && + !(value instanceof VNode)) { + return new Observer(value, shallow, ssrMockReactivity); + } +} +/** + * Define a reactive property on an Object. + */ +function defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow = false) { + const dep = new Dep(); + const property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return; + } + // cater for pre-defined getter/setters + const getter = property && property.get; + const setter = property && property.set; + if ((!getter || setter) && + (val === NO_INITIAL_VALUE || arguments.length === 2)) { + val = obj[key]; + } + let childOb = shallow ? val && val.__ob__ : observe(val, false, mock); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter() { + const value = getter ? getter.call(obj) : val; + if (Dep.target) { + { + dep.depend(); + } + if (childOb) { + childOb.dep.depend(); + if (isArray(value)) { + dependArray(value); + } + } + } + return isRef(value) && !shallow ? value.value : value; + }, + set: function reactiveSetter(newVal) { + const value = getter ? getter.call(obj) : val; + if (!hasChanged(value, newVal)) { + return; + } + if (setter) { + setter.call(obj, newVal); + } + else if (getter) { + // #7981: for accessor properties without setter + return; + } + else if (!shallow && isRef(value) && !isRef(newVal)) { + value.value = newVal; + return; + } + else { + val = newVal; + } + childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock); + { + dep.notify(); + } + } + }); + return dep; +} +function set(target, key, val) { + if (isReadonly(target)) { + return; + } + const ob = target.__ob__; + if (isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + // when mocking for SSR, array methods are not hijacked + if (ob && !ob.shallow && ob.mock) { + observe(val, false, true); + } + return val; + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val; + } + if (target._isVue || (ob && ob.vmCount)) { + return val; + } + if (!ob) { + target[key] = val; + return val; + } + defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock); + { + ob.dep.notify(); + } + return val; +} +/** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ +function dependArray(value) { + for (let e, i = 0, l = value.length; i < l; i++) { + e = value[i]; + if (e && e.__ob__) { + e.__ob__.dep.depend(); + } + if (isArray(e)) { + dependArray(e); + } + } +} + +function isReadonly(value) { + return !!(value && value.__v_isReadonly); +} + +function isRef(r) { + return !!(r && r.__v_isRef === true); +} + +const normalizeEvent = cached((name) => { + const passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + const once = name.charAt(0) === '~'; // Prefixed last, checked first + name = once ? name.slice(1) : name; + const capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name, + once, + capture, + passive + }; +}); +function createFnInvoker(fns, vm) { + function invoker() { + const fns = invoker.fns; + if (isArray(fns)) { + const cloned = fns.slice(); + for (let i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments, vm, `v-on handler`); + } + } + else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, `v-on handler`); + } + } + invoker.fns = fns; + return invoker; +} +function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) { + let name, cur, old, event; + for (name in on) { + cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) ; + else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } + else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove(event.name, oldOn[name], event.capture); + } + } +} + +function extractPropsFromVNodeData(data, Ctor, tag) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + const propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return; + } + const res = {}; + const { attrs, props } = data; + if (isDef(attrs) || isDef(props)) { + for (const key in propOptions) { + const altKey = hyphenate(key); + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res; +} +function checkProp(res, hash, key, altKey, preserve) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true; + } + else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true; + } + } + return false; +} + +// The template compiler attempts to minimize the need for normalization by +// statically analyzing the template at compile time. +// +// For plain HTML markup, normalization can be completely skipped because the +// generated render function is guaranteed to return Array<VNode>. There are +// two cases where extra normalization is needed: +// 1. When the children contains components - because a functional component +// may return an Array instead of a single root. In this case, just a simple +// normalization is needed - if any child is an Array, we flatten the whole +// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep +// because functional components already normalize their own children. +function simpleNormalizeChildren(children) { + for (let i = 0; i < children.length; i++) { + if (isArray(children[i])) { + return Array.prototype.concat.apply([], children); + } + } + return children; +} +// 2. When the children contains constructs that always generated nested Arrays, +// e.g. <template>, <slot>, v-for, or when the children is provided by user +// with hand-written render functions / JSX. In such cases a full normalization +// is needed to cater to all possible types of children values. +function normalizeChildren(children) { + return isPrimitive(children) + ? [createTextVNode(children)] + : isArray(children) + ? normalizeArrayChildren(children) + : undefined; +} +function isTextNode(node) { + return isDef(node) && isDef(node.text) && isFalse(node.isComment); +} +function normalizeArrayChildren(children, nestedIndex) { + const res = []; + let i, c, lastIndex, last; + for (i = 0; i < children.length; i++) { + c = children[i]; + if (isUndef(c) || typeof c === 'boolean') + continue; + lastIndex = res.length - 1; + last = res[lastIndex]; + // nested + if (isArray(c)) { + if (c.length > 0) { + c = normalizeArrayChildren(c, `${nestedIndex || ''}_${i}`); + // merge adjacent text nodes + if (isTextNode(c[0]) && isTextNode(last)) { + res[lastIndex] = createTextVNode(last.text + c[0].text); + c.shift(); + } + res.push.apply(res, c); + } + } + else if (isPrimitive(c)) { + if (isTextNode(last)) { + // merge adjacent text nodes + // this is necessary for SSR hydration because text nodes are + // essentially merged when rendered to HTML strings + res[lastIndex] = createTextVNode(last.text + c); + } + else if (c !== '') { + // convert primitive to vnode + res.push(createTextVNode(c)); + } + } + else { + if (isTextNode(c) && isTextNode(last)) { + // merge adjacent text nodes + res[lastIndex] = createTextVNode(last.text + c.text); + } + else { + // default key for nested array children (likely generated by v-for) + if (isTrue(children._isVList) && + isDef(c.tag) && + isUndef(c.key) && + isDef(nestedIndex)) { + c.key = `__vlist${nestedIndex}_${i}__`; + } + res.push(c); + } + } + } + return res; +} + +const SIMPLE_NORMALIZE = 1; +const ALWAYS_NORMALIZE = 2; +// wrapper function for providing a more flexible interface +// without getting yelled at by flow +function createElement(context, tag, data, children, normalizationType, alwaysNormalize) { + if (isArray(data) || isPrimitive(data)) { + normalizationType = children; + children = data; + data = undefined; + } + if (isTrue(alwaysNormalize)) { + normalizationType = ALWAYS_NORMALIZE; + } + return _createElement(context, tag, data, children, normalizationType); +} +function _createElement(context, tag, data, children, normalizationType) { + if (isDef(data) && isDef(data.__ob__)) { + return createEmptyVNode(); + } + // object syntax in v-bind + if (isDef(data) && isDef(data.is)) { + tag = data.is; + } + if (!tag) { + // in case of component :is set to falsy value + return createEmptyVNode(); + } + // support single function children as default scoped slot + if (isArray(children) && isFunction(children[0])) { + data = data || {}; + data.scopedSlots = { default: children[0] }; + children.length = 0; + } + if (normalizationType === ALWAYS_NORMALIZE) { + children = normalizeChildren(children); + } + else if (normalizationType === SIMPLE_NORMALIZE) { + children = simpleNormalizeChildren(children); + } + let vnode, ns; + if (typeof tag === 'string') { + let Ctor; + ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); + if ((!data || !data.pre) && + isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) { + // component + vnode = createComponent(Ctor, data, context, children, tag); + } + else { + // unknown or unlisted namespaced elements + // check at runtime because it may get assigned a namespace when its + // parent normalizes children + vnode = new VNode(tag, data, children, undefined, undefined, context); + } + } + else { + // direct component options / constructor + vnode = createComponent(tag, data, context, children); + } + if (isArray(vnode)) { + return vnode; + } + else if (isDef(vnode)) { + if (isDef(ns)) + applyNS(vnode, ns); + if (isDef(data)) + registerDeepBindings(data); + return vnode; + } + else { + return createEmptyVNode(); + } +} +function applyNS(vnode, ns, force) { + vnode.ns = ns; + if (vnode.tag === 'foreignObject') { + // use default namespace inside foreignObject + ns = undefined; + force = true; + } + if (isDef(vnode.children)) { + for (let i = 0, l = vnode.children.length; i < l; i++) { + const child = vnode.children[i]; + if (isDef(child.tag) && + (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) { + applyNS(child, ns, force); + } + } + } +} +// ref #5318 +// necessary to ensure parent re-render when deep bindings like :style and +// :class are used on slot nodes +function registerDeepBindings(data) { + if (isObject$1(data.style)) { + traverse(data.style); + } + if (isObject$1(data.class)) { + traverse(data.class); + } +} + +/** + * Runtime helper for rendering v-for lists. + */ +function renderList(val, render) { + let ret = null, i, l, keys, key; + if (isArray(val) || typeof val === 'string') { + ret = new Array(val.length); + for (i = 0, l = val.length; i < l; i++) { + ret[i] = render(val[i], i); + } + } + else if (typeof val === 'number') { + ret = new Array(val); + for (i = 0; i < val; i++) { + ret[i] = render(i + 1, i); + } + } + else if (isObject$1(val)) { + if (hasSymbol && val[Symbol.iterator]) { + ret = []; + const iterator = val[Symbol.iterator](); + let result = iterator.next(); + while (!result.done) { + ret.push(render(result.value, ret.length)); + result = iterator.next(); + } + } + else { + keys = Object.keys(val); + ret = new Array(keys.length); + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + ret[i] = render(val[key], key, i); + } + } + } + if (!isDef(ret)) { + ret = []; + } + ret._isVList = true; + return ret; +} + +/** + * Runtime helper for rendering <slot> + */ +function renderSlot(name, fallbackRender, props, bindObject) { + const scopedSlotFn = this.$scopedSlots[name]; + let nodes; + if (scopedSlotFn) { + // scoped slot + props = props || {}; + if (bindObject) { + props = extend(extend({}, bindObject), props); + } + nodes = + scopedSlotFn(props) || + (isFunction(fallbackRender) ? fallbackRender() : fallbackRender); + } + else { + nodes = + this.$slots[name] || + (isFunction(fallbackRender) ? fallbackRender() : fallbackRender); + } + const target = props && props.slot; + if (target) { + return this.$createElement('template', { slot: target }, nodes); + } + else { + return nodes; + } +} + +/** + * Runtime helper for resolving filters + */ +function resolveFilter(id) { + return resolveAsset(this.$options, 'filters', id) || identity; +} + +function isKeyNotMatch(expect, actual) { + if (isArray(expect)) { + return expect.indexOf(actual) === -1; + } + else { + return expect !== actual; + } +} +/** + * Runtime helper for checking keyCodes from config. + * exposed as Vue.prototype._k + * passing in eventKeyName as last argument separately for backwards compat + */ +function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) { + const mappedKeyCode = config.keyCodes[key] || builtInKeyCode; + if (builtInKeyName && eventKeyName && !config.keyCodes[key]) { + return isKeyNotMatch(builtInKeyName, eventKeyName); + } + else if (mappedKeyCode) { + return isKeyNotMatch(mappedKeyCode, eventKeyCode); + } + else if (eventKeyName) { + return hyphenate(eventKeyName) !== key; + } + return eventKeyCode === undefined; +} + +/** + * Runtime helper for merging v-bind="object" into a VNode's data. + */ +function bindObjectProps(data, tag, value, asProp, isSync) { + if (value) { + if (!isObject$1(value)) ; + else { + if (isArray(value)) { + value = toObject(value); + } + let hash; + for (const key in value) { + if (key === 'class' || key === 'style' || isReservedAttribute(key)) { + hash = data; + } + else { + const type = data.attrs && data.attrs.type; + hash = + asProp || config.mustUseProp(tag, type, key) + ? data.domProps || (data.domProps = {}) + : data.attrs || (data.attrs = {}); + } + const camelizedKey = camelize(key); + const hyphenatedKey = hyphenate(key); + if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) { + hash[key] = value[key]; + if (isSync) { + const on = data.on || (data.on = {}); + on[`update:${key}`] = function ($event) { + value[key] = $event; + }; + } + } + } + } + } + return data; +} + +/** + * Runtime helper for rendering static trees. + */ +function renderStatic(index, isInFor) { + const cached = this._staticTrees || (this._staticTrees = []); + let tree = cached[index]; + // if has already-rendered static tree and not inside v-for, + // we can reuse the same tree. + if (tree && !isInFor) { + return tree; + } + // otherwise, render a fresh tree. + tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates + ); + markStatic$1(tree, `__static__${index}`, false); + return tree; +} +/** + * Runtime helper for v-once. + * Effectively it means marking the node as static with a unique key. + */ +function markOnce(tree, index, key) { + markStatic$1(tree, `__once__${index}${key ? `_${key}` : ``}`, true); + return tree; +} +function markStatic$1(tree, key, isOnce) { + if (isArray(tree)) { + for (let i = 0; i < tree.length; i++) { + if (tree[i] && typeof tree[i] !== 'string') { + markStaticNode(tree[i], `${key}_${i}`, isOnce); + } + } + } + else { + markStaticNode(tree, key, isOnce); + } +} +function markStaticNode(node, key, isOnce) { + node.isStatic = true; + node.key = key; + node.isOnce = isOnce; +} + +function bindObjectListeners(data, value) { + if (value) { + if (!isPlainObject(value)) ; + else { + const on = (data.on = data.on ? extend({}, data.on) : {}); + for (const key in value) { + const existing = on[key]; + const ours = value[key]; + on[key] = existing ? [].concat(existing, ours) : ours; + } + } + } + return data; +} + +function resolveScopedSlots(fns, res, +// the following are added in 2.6 +hasDynamicKeys, contentHashKey) { + res = res || { $stable: !hasDynamicKeys }; + for (let i = 0; i < fns.length; i++) { + const slot = fns[i]; + if (isArray(slot)) { + resolveScopedSlots(slot, res, hasDynamicKeys); + } + else if (slot) { + // marker for reverse proxying v-slot without scope on this.$slots + // @ts-expect-error + if (slot.proxy) { + // @ts-expect-error + slot.fn.proxy = true; + } + res[slot.key] = slot.fn; + } + } + if (contentHashKey) { + res.$key = contentHashKey; + } + return res; +} + +// helper to process dynamic keys for dynamic arguments in v-bind and v-on. +function bindDynamicKeys(baseObj, values) { + for (let i = 0; i < values.length; i += 2) { + const key = values[i]; + if (typeof key === 'string' && key) { + baseObj[values[i]] = values[i + 1]; + } + } + return baseObj; +} +// helper to dynamically append modifier runtime markers to event names. +// ensure only append when value is already string, otherwise it will be cast +// to string and cause the type check to miss. +function prependModifier(value, symbol) { + return typeof value === 'string' ? symbol + value : value; +} + +function installRenderHelpers(target) { + target._o = markOnce; + target._n = toNumber; + target._s = toString; + target._l = renderList; + target._t = renderSlot; + target._q = looseEqual; + target._i = looseIndexOf; + target._m = renderStatic; + target._f = resolveFilter; + target._k = checkKeyCodes; + target._b = bindObjectProps; + target._v = createTextVNode; + target._e = createEmptyVNode; + target._u = resolveScopedSlots; + target._g = bindObjectListeners; + target._d = bindDynamicKeys; + target._p = prependModifier; +} + +/** + * Runtime helper for resolving raw children VNodes into a slot object. + */ +function resolveSlots(children, context) { + if (!children || !children.length) { + return {}; + } + const slots = {}; + for (let i = 0, l = children.length; i < l; i++) { + const child = children[i]; + const data = child.data; + // remove slot attribute if the node is resolved as a Vue slot node + if (data && data.attrs && data.attrs.slot) { + delete data.attrs.slot; + } + // named slots should only be respected if the vnode was rendered in the + // same context. + if ((child.context === context || child.fnContext === context) && + data && + data.slot != null) { + const name = data.slot; + const slot = slots[name] || (slots[name] = []); + if (child.tag === 'template') { + slot.push.apply(slot, child.children || []); + } + else { + slot.push(child); + } + } + else { + (slots.default || (slots.default = [])).push(child); + } + } + // ignore slots that contains only whitespace + for (const name in slots) { + if (slots[name].every(isWhitespace$2)) { + delete slots[name]; + } + } + return slots; +} +function isWhitespace$2(node) { + return (node.isComment && !node.asyncFactory) || node.text === ' '; +} + +function isAsyncPlaceholder(node) { + // @ts-expect-error not really boolean type + return node.isComment && node.asyncFactory; +} + +function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) { + let res; + const hasNormalSlots = Object.keys(normalSlots).length > 0; + const isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots; + const key = scopedSlots && scopedSlots.$key; + if (!scopedSlots) { + res = {}; + } + else if (scopedSlots._normalized) { + // fast path 1: child component re-render only, parent did not change + return scopedSlots._normalized; + } + else if (isStable && + prevScopedSlots && + prevScopedSlots !== emptyObject && + key === prevScopedSlots.$key && + !hasNormalSlots && + !prevScopedSlots.$hasNormal) { + // fast path 2: stable scoped slots w/ no normal slots to proxy, + // only need to normalize once + return prevScopedSlots; + } + else { + res = {}; + for (const key in scopedSlots) { + if (scopedSlots[key] && key[0] !== '$') { + res[key] = normalizeScopedSlot(ownerVm, normalSlots, key, scopedSlots[key]); + } + } + } + // expose normal slots on scopedSlots + for (const key in normalSlots) { + if (!(key in res)) { + res[key] = proxyNormalSlot(normalSlots, key); + } + } + // avoriaz seems to mock a non-extensible $scopedSlots object + // and when that is passed down this would cause an error + if (scopedSlots && Object.isExtensible(scopedSlots)) { + scopedSlots._normalized = res; + } + def(res, '$stable', isStable); + def(res, '$key', key); + def(res, '$hasNormal', hasNormalSlots); + return res; +} +function normalizeScopedSlot(vm, normalSlots, key, fn) { + const normalized = function () { + const cur = currentInstance; + setCurrentInstance(vm); + let res = arguments.length ? fn.apply(null, arguments) : fn({}); + res = + res && typeof res === 'object' && !isArray(res) + ? [res] // single vnode + : normalizeChildren(res); + const vnode = res && res[0]; + setCurrentInstance(cur); + return res && + (!vnode || + (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391 + ? undefined + : res; + }; + // this is a slot using the new v-slot syntax without scope. although it is + // compiled as a scoped slot, render fn users would expect it to be present + // on this.$slots because the usage is semantically a normal slot. + if (fn.proxy) { + Object.defineProperty(normalSlots, key, { + get: normalized, + enumerable: true, + configurable: true + }); + } + return normalized; +} +function proxyNormalSlot(slots, key) { + return () => slots[key]; +} + +function syncSetupProxy(to, from, prev, instance, type) { + let changed = false; + for (const key in from) { + if (!(key in to)) { + changed = true; + defineProxyAttr(to, key, instance, type); + } + else if (from[key] !== prev[key]) { + changed = true; + } + } + for (const key in to) { + if (!(key in from)) { + changed = true; + delete to[key]; + } + } + return changed; +} +function defineProxyAttr(proxy, key, instance, type) { + Object.defineProperty(proxy, key, { + enumerable: true, + configurable: true, + get() { + return instance[type][key]; + } + }); +} + +function createAsyncPlaceholder(factory, data, context, children, tag) { + const node = createEmptyVNode(); + node.asyncFactory = factory; + node.asyncMeta = { data, context, children, tag }; + return node; +} +function resolveAsyncComponent(factory, baseCtor) { + if (isTrue(factory.error) && isDef(factory.errorComp)) { + return factory.errorComp; + } + if (isDef(factory.resolved)) { + return factory.resolved; + } + if (isTrue(factory.loading) && isDef(factory.loadingComp)) { + return factory.loadingComp; + } +} + +let target; +function add(event, fn) { + target.$on(event, fn); +} +function remove(event, fn) { + target.$off(event, fn); +} +function createOnceHandler(event, fn) { + const _target = target; + return function onceHandler() { + const res = fn.apply(null, arguments); + if (res !== null) { + _target.$off(event, onceHandler); + } + }; +} +function updateComponentListeners(vm, listeners, oldListeners) { + target = vm; + updateListeners(listeners, oldListeners || {}, add, remove, createOnceHandler, vm); + target = undefined; +} + +let activeInstance = null; +function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) { + // determine whether component has slot children + // we need to do this before overwriting $options._renderChildren. + // check if there are dynamic scopedSlots (hand-written or compiled but with + // dynamic slot names). Static scoped slots compiled from template has the + // "$stable" marker. + const newScopedSlots = parentVnode.data.scopedSlots; + const oldScopedSlots = vm.$scopedSlots; + const hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) || + (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) || + (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) || + (!newScopedSlots && vm.$scopedSlots.$key)); + // Any static slot children from the parent may have changed during parent's + // update. Dynamic scoped slots may also have changed. In such cases, a forced + // update is necessary to ensure correctness. + let needsForceUpdate = !!(renderChildren || // has new static slots + vm.$options._renderChildren || // has old static slots + hasDynamicScopedSlot); + const prevVNode = vm.$vnode; + vm.$options._parentVnode = parentVnode; + vm.$vnode = parentVnode; // update vm's placeholder node without re-render + if (vm._vnode) { + // update child tree's parent + vm._vnode.parent = parentVnode; + } + vm.$options._renderChildren = renderChildren; + // update $attrs and $listeners hash + // these are also reactive so they may trigger child update if the child + // used them during render + const attrs = parentVnode.data.attrs || emptyObject; + if (vm._attrsProxy) { + // force update if attrs are accessed and has changed since it may be + // passed to a child component. + if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) { + needsForceUpdate = true; + } + } + vm.$attrs = attrs; + // update listeners + listeners = listeners || emptyObject; + const prevListeners = vm.$options._parentListeners; + if (vm._listenersProxy) { + syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners'); + } + vm.$listeners = vm.$options._parentListeners = listeners; + updateComponentListeners(vm, listeners, prevListeners); + // update props + if (propsData && vm.$options.props) { + toggleObserving(false); + const props = vm._props; + const propKeys = vm.$options._propKeys || []; + for (let i = 0; i < propKeys.length; i++) { + const key = propKeys[i]; + const propOptions = vm.$options.props; // wtf flow? + props[key] = validateProp(key, propOptions, propsData, vm); + } + toggleObserving(true); + // keep a copy of raw propsData + vm.$options.propsData = propsData; + } + // resolve slots + force update if has children + if (needsForceUpdate) { + vm.$slots = resolveSlots(renderChildren, parentVnode.context); + vm.$forceUpdate(); + } +} +function isInInactiveTree(vm) { + while (vm && (vm = vm.$parent)) { + if (vm._inactive) + return true; + } + return false; +} +function activateChildComponent(vm, direct) { + if (direct) { + vm._directInactive = false; + if (isInInactiveTree(vm)) { + return; + } + } + else if (vm._directInactive) { + return; + } + if (vm._inactive || vm._inactive === null) { + vm._inactive = false; + for (let i = 0; i < vm.$children.length; i++) { + activateChildComponent(vm.$children[i]); + } + callHook(vm, 'activated'); + } +} +function deactivateChildComponent(vm, direct) { + if (direct) { + vm._directInactive = true; + if (isInInactiveTree(vm)) { + return; + } + } + if (!vm._inactive) { + vm._inactive = true; + for (let i = 0; i < vm.$children.length; i++) { + deactivateChildComponent(vm.$children[i]); + } + callHook(vm, 'deactivated'); + } +} +function callHook(vm, hook, args, setContext = true) { + // #7573 disable dep collection when invoking lifecycle hooks + pushTarget(); + const prevInst = currentInstance; + setContext && setCurrentInstance(vm); + const handlers = vm.$options[hook]; + const info = `${hook} hook`; + if (handlers) { + for (let i = 0, j = handlers.length; i < j; i++) { + invokeWithErrorHandling(handlers[i], vm, null, vm, info); + } + } + if (vm._hasHookEvent) { + vm.$emit('hook:' + hook); + } + if (setContext) { + setCurrentInstance(prevInst); + } + popTarget(); +} + +// Async edge case fix requires storing an event listener's attach timestamp. +let getNow = Date.now; +// Determine what event timestamp the browser is using. Annoyingly, the +// timestamp can either be hi-res (relative to page load) or low-res +// (relative to UNIX epoch), so in order to compare time we have to use the +// same timestamp type when saving the flush timestamp. +// All IE versions use low-res event timestamps, and have problematic clock +// implementations (#9632) +if (inBrowser && !isIE) { + const performance = window.performance; + if (performance && + typeof performance.now === 'function' && + getNow() > document.createEvent('Event').timeStamp) { + // if the event timestamp, although evaluated AFTER the Date.now(), is + // smaller than it, it means the event is using a hi-res timestamp, + // and we need to use the hi-res version for event listener timestamps as + // well. + getNow = () => performance.now(); + } +} +/** + * Queue a kept-alive component that was activated during patch. + * The queue will be processed after the entire tree has been patched. + */ +function queueActivatedComponent(vm) { + // setting _inactive to false here so that a render function can + // rely on checking whether it's in an inactive tree (e.g. router-view) + vm._inactive = false; +} + +function handleError(err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + let cur = vm; + while ((cur = cur.$parent)) { + const hooks = cur.$options.errorCaptured; + if (hooks) { + for (let i = 0; i < hooks.length; i++) { + try { + const capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) + return; + } + catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } + finally { + popTarget(); + } +} +function invokeWithErrorHandling(handler, context, args, vm, info) { + let res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(e => handleError(e, vm, info + ` (Promise/async)`)); + res._handled = true; + } + } + catch (e) { + handleError(e, vm, info); + } + return res; +} +function globalHandleError(err, vm, info) { + logError(err); +} +function logError(err, vm, info) { + /* istanbul ignore else */ + if (inBrowser && typeof console !== 'undefined') { + console.error(err); + } + else { + throw err; + } +} + +/* globals MutationObserver */ +const callbacks = []; +function flushCallbacks() { + const copies = callbacks.slice(0); + callbacks.length = 0; + for (let i = 0; i < copies.length; i++) { + copies[i](); + } +} +// The nextTick behavior leverages the microtask queue, which can be accessed +// via either native Promise.then or MutationObserver. +// MutationObserver has wider support, however it is seriously bugged in +// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It +// completely stops working after triggering a few times... so, if native +// Promise is available, we will use it: +/* istanbul ignore next, $flow-disable-line */ +if (typeof Promise !== 'undefined' && isNative(Promise)) { + Promise.resolve(); +} +else if (!isIE && + typeof MutationObserver !== 'undefined' && + (isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]')) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + let counter = 1; + const observer = new MutationObserver(flushCallbacks); + const textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); +} +else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) ; +else ; + +const seenObjects = new _Set(); +/** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ +function traverse(val) { + _traverse(val, seenObjects); + seenObjects.clear(); + return val; +} +function _traverse(val, seen) { + let i, keys; + const isA = isArray(val); + if ((!isA && !isObject$1(val)) || + val.__v_skip /* ReactiveFlags.SKIP */ || + Object.isFrozen(val) || + val instanceof VNode) { + return; + } + if (val.__ob__) { + const depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return; + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) + _traverse(val[i], seen); + } + else if (isRef(val)) { + _traverse(val.value, seen); + } + else { + keys = Object.keys(val); + i = keys.length; + while (i--) + _traverse(val[keys[i]], seen); + } +} + +function resolveInject(inject, vm) { + if (inject) { + // inject is :any because flow is not smart enough to figure out cached + const result = Object.create(null); + const keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + // #6574 in case the inject object is observed... + if (key === '__ob__') + continue; + const provideKey = inject[key].from; + if (provideKey in vm._provided) { + result[key] = vm._provided[provideKey]; + } + else if ('default' in inject[key]) { + const provideDefault = inject[key].default; + result[key] = isFunction(provideDefault) + ? provideDefault.call(vm) + : provideDefault; + } + else ; + } + return result; + } +} + +function resolveConstructorOptions(Ctor) { + let options = Ctor.options; + if (Ctor.super) { + const superOptions = resolveConstructorOptions(Ctor.super); + const cachedSuperOptions = Ctor.superOptions; + if (superOptions !== cachedSuperOptions) { + // super option changed, + // need to resolve new options. + Ctor.superOptions = superOptions; + // check if there are any late-modified/attached options (#4976) + const modifiedOptions = resolveModifiedOptions(Ctor); + // update base extend options + if (modifiedOptions) { + extend(Ctor.extendOptions, modifiedOptions); + } + options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions); + if (options.name) { + options.components[options.name] = Ctor; + } + } + } + return options; +} +function resolveModifiedOptions(Ctor) { + let modified; + const latest = Ctor.options; + const sealed = Ctor.sealedOptions; + for (const key in latest) { + if (latest[key] !== sealed[key]) { + if (!modified) + modified = {}; + modified[key] = latest[key]; + } + } + return modified; +} + +function FunctionalRenderContext(data, props, children, parent, Ctor) { + const options = Ctor.options; + // ensure the createElement function in functional components + // gets a unique context - this is necessary for correct named slot check + let contextVm; + if (hasOwn(parent, '_uid')) { + contextVm = Object.create(parent); + contextVm._original = parent; + } + else { + // the context vm passed in is a functional context as well. + // in this case we want to make sure we are able to get a hold to the + // real context instance. + contextVm = parent; + // @ts-ignore + parent = parent._original; + } + const isCompiled = isTrue(options._compiled); + const needNormalization = !isCompiled; + this.data = data; + this.props = props; + this.children = children; + this.parent = parent; + this.listeners = data.on || emptyObject; + this.injections = resolveInject(options.inject, parent); + this.slots = () => { + if (!this.$slots) { + normalizeScopedSlots(parent, data.scopedSlots, (this.$slots = resolveSlots(children, parent))); + } + return this.$slots; + }; + Object.defineProperty(this, 'scopedSlots', { + enumerable: true, + get() { + return normalizeScopedSlots(parent, data.scopedSlots, this.slots()); + } + }); + // support for compiled functional template + if (isCompiled) { + // exposing $options for renderStatic() + this.$options = options; + // pre-resolve slots for renderSlot() + this.$slots = this.slots(); + this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots); + } + if (options._scopeId) { + this._c = (a, b, c, d) => { + const vnode = createElement(contextVm, a, b, c, d, needNormalization); + if (vnode && !isArray(vnode)) { + vnode.fnScopeId = options._scopeId; + vnode.fnContext = parent; + } + return vnode; + }; + } + else { + this._c = (a, b, c, d) => createElement(contextVm, a, b, c, d, needNormalization); + } +} +installRenderHelpers(FunctionalRenderContext.prototype); +function createFunctionalComponent(Ctor, propsData, data, contextVm, children) { + const options = Ctor.options; + const props = {}; + const propOptions = options.props; + if (isDef(propOptions)) { + for (const key in propOptions) { + props[key] = validateProp(key, propOptions, propsData || emptyObject); + } + } + else { + if (isDef(data.attrs)) + mergeProps(props, data.attrs); + if (isDef(data.props)) + mergeProps(props, data.props); + } + const renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor); + const vnode = options.render.call(null, renderContext._c, renderContext); + if (vnode instanceof VNode) { + return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options); + } + else if (isArray(vnode)) { + const vnodes = normalizeChildren(vnode) || []; + const res = new Array(vnodes.length); + for (let i = 0; i < vnodes.length; i++) { + res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options); + } + return res; + } +} +function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) { + // #7817 clone node before setting fnContext, otherwise if the node is reused + // (e.g. it was from a cached normal slot) the fnContext causes named slots + // that should not be matched to match. + const clone = cloneVNode(vnode); + clone.fnContext = contextVm; + clone.fnOptions = options; + if (data.slot) { + (clone.data || (clone.data = {})).slot = data.slot; + } + return clone; +} +function mergeProps(to, from) { + for (const key in from) { + to[camelize(key)] = from[key]; + } +} + +function getComponentName(options) { + return options.name || options.__name || options._componentTag; +} +// inline hooks to be invoked on component VNodes during patch +const componentVNodeHooks = { + init(vnode, hydrating) { + if (vnode.componentInstance && + !vnode.componentInstance._isDestroyed && + vnode.data.keepAlive) { + // kept-alive components, treat as a patch + const mountedNode = vnode; // work around flow + componentVNodeHooks.prepatch(mountedNode, mountedNode); + } + else { + const child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance)); + child.$mount(hydrating ? vnode.elm : undefined, hydrating); + } + }, + prepatch(oldVnode, vnode) { + const options = vnode.componentOptions; + const child = (vnode.componentInstance = oldVnode.componentInstance); + updateChildComponent(child, options.propsData, // updated props + options.listeners, // updated listeners + vnode, // new parent vnode + options.children // new children + ); + }, + insert(vnode) { + const { context, componentInstance } = vnode; + if (!componentInstance._isMounted) { + componentInstance._isMounted = true; + callHook(componentInstance, 'mounted'); + } + if (vnode.data.keepAlive) { + if (context._isMounted) { + // vue-router#1212 + // During updates, a kept-alive component's child components may + // change, so directly walking the tree here may call activated hooks + // on incorrect children. Instead we push them into a queue which will + // be processed after the whole patch process ended. + queueActivatedComponent(componentInstance); + } + else { + activateChildComponent(componentInstance, true /* direct */); + } + } + }, + destroy(vnode) { + const { componentInstance } = vnode; + if (!componentInstance._isDestroyed) { + if (!vnode.data.keepAlive) { + componentInstance.$destroy(); + } + else { + deactivateChildComponent(componentInstance, true /* direct */); + } + } + } +}; +const hooksToMerge = Object.keys(componentVNodeHooks); +function createComponent(Ctor, data, context, children, tag) { + if (isUndef(Ctor)) { + return; + } + const baseCtor = context.$options._base; + // plain options object: turn it into a constructor + if (isObject$1(Ctor)) { + Ctor = baseCtor.extend(Ctor); + } + // if at this stage it's not a constructor or an async component factory, + // reject. + if (typeof Ctor !== 'function') { + return; + } + // async component + let asyncFactory; + // @ts-expect-error + if (isUndef(Ctor.cid)) { + asyncFactory = Ctor; + Ctor = resolveAsyncComponent(asyncFactory); + if (Ctor === undefined) { + // return a placeholder node for async component, which is rendered + // as a comment node but preserves all the raw information for the node. + // the information will be used for async server-rendering and hydration. + return createAsyncPlaceholder(asyncFactory, data, context, children, tag); + } + } + data = data || {}; + // resolve constructor options in case global mixins are applied after + // component constructor creation + resolveConstructorOptions(Ctor); + // transform component v-model data into props & events + if (isDef(data.model)) { + // @ts-expect-error + transformModel(Ctor.options, data); + } + // extract props + // @ts-expect-error + const propsData = extractPropsFromVNodeData(data, Ctor); + // functional component + // @ts-expect-error + if (isTrue(Ctor.options.functional)) { + return createFunctionalComponent(Ctor, propsData, data, context, children); + } + // extract listeners, since these needs to be treated as + // child component listeners instead of DOM listeners + const listeners = data.on; + // replace with listeners with .native modifier + // so it gets processed during parent component patch. + data.on = data.nativeOn; + // @ts-expect-error + if (isTrue(Ctor.options.abstract)) { + // abstract components do not keep anything + // other than props & listeners & slot + // work around flow + const slot = data.slot; + data = {}; + if (slot) { + data.slot = slot; + } + } + // install component management hooks onto the placeholder node + installComponentHooks(data); + // return a placeholder vnode + // @ts-expect-error + const name = getComponentName(Ctor.options) || tag; + const vnode = new VNode( + // @ts-expect-error + `vue-component-${Ctor.cid}${name ? `-${name}` : ''}`, data, undefined, undefined, undefined, context, + // @ts-expect-error + { Ctor, propsData, listeners, tag, children }, asyncFactory); + return vnode; +} +function createComponentInstanceForVnode( +// we know it's MountedComponentVNode but flow doesn't +vnode, +// activeInstance in lifecycle state +parent) { + const options = { + _isComponent: true, + _parentVnode: vnode, + parent + }; + // check inline-template render functions + const inlineTemplate = vnode.data.inlineTemplate; + if (isDef(inlineTemplate)) { + options.render = inlineTemplate.render; + options.staticRenderFns = inlineTemplate.staticRenderFns; + } + return new vnode.componentOptions.Ctor(options); +} +function installComponentHooks(data) { + const hooks = data.hook || (data.hook = {}); + for (let i = 0; i < hooksToMerge.length; i++) { + const key = hooksToMerge[i]; + const existing = hooks[key]; + const toMerge = componentVNodeHooks[key]; + // @ts-expect-error + if (existing !== toMerge && !(existing && existing._merged)) { + hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge; + } + } +} +function mergeHook(f1, f2) { + const merged = (a, b) => { + // flow complains about extra args which is why we use any + f1(a, b); + f2(a, b); + }; + merged._merged = true; + return merged; +} +// transform component v-model info (value and callback) into +// prop and event handler respectively. +function transformModel(options, data) { + const prop = (options.model && options.model.prop) || 'value'; + const event = (options.model && options.model.event) || 'input'; + (data.attrs || (data.attrs = {}))[prop] = data.model.value; + const on = data.on || (data.on = {}); + const existing = on[event]; + const callback = data.model.callback; + if (isDef(existing)) { + if (isArray(existing) + ? existing.indexOf(callback) === -1 + : existing !== callback) { + on[event] = [callback].concat(existing); + } + } + else { + on[event] = callback; + } +} + +let warn$2 = noop; + +/** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ +const strats = config.optionMergeStrategies; +/** + * Helper that recursively merges two data objects together. + */ +function mergeData(to, from, recursive = true) { + if (!from) + return to; + let key, toVal, fromVal; + const keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + for (let i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') + continue; + toVal = to[key]; + fromVal = from[key]; + if (!recursive || !hasOwn(to, key)) { + set(to, key, fromVal); + } + else if (toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal)) { + mergeData(toVal, fromVal); + } + } + return to; +} +/** + * Data + */ +function mergeDataOrFn(parentVal, childVal, vm) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal; + } + if (!parentVal) { + return childVal; + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn() { + return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal); + }; + } + else { + return function mergedInstanceDataFn() { + // instance merge + const instanceData = isFunction(childVal) + ? childVal.call(vm, vm) + : childVal; + const defaultData = isFunction(parentVal) + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData); + } + else { + return defaultData; + } + }; + } +} +strats.data = function (parentVal, childVal, vm) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + return parentVal; + } + return mergeDataOrFn(parentVal, childVal); + } + return mergeDataOrFn(parentVal, childVal, vm); +}; +/** + * Hooks and props are merged as arrays. + */ +function mergeLifecycleHook(parentVal, childVal) { + const res = childVal + ? parentVal + ? parentVal.concat(childVal) + : isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res ? dedupeHooks(res) : res; +} +function dedupeHooks(hooks) { + const res = []; + for (let i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res; +} +LIFECYCLE_HOOKS.forEach(hook => { + strats[hook] = mergeLifecycleHook; +}); +/** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ +function mergeAssets(parentVal, childVal, vm, key) { + const res = Object.create(parentVal || null); + if (childVal) { + return extend(res, childVal); + } + else { + return res; + } +} +ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; +}); +/** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ +strats.watch = function (parentVal, childVal, vm, key) { + // work around Firefox's Object.prototype.watch... + //@ts-expect-error work around + if (parentVal === nativeWatch) + parentVal = undefined; + //@ts-expect-error work around + if (childVal === nativeWatch) + childVal = undefined; + /* istanbul ignore if */ + if (!childVal) + return Object.create(parentVal || null); + if (!parentVal) + return childVal; + const ret = {}; + extend(ret, parentVal); + for (const key in childVal) { + let parent = ret[key]; + const child = childVal[key]; + if (parent && !isArray(parent)) { + parent = [parent]; + } + ret[key] = parent ? parent.concat(child) : isArray(child) ? child : [child]; + } + return ret; +}; +/** + * Other object hashes. + */ +strats.props = + strats.methods = + strats.inject = + strats.computed = + function (parentVal, childVal, vm, key) { + if (childVal && "production" !== 'production') { + assertObjectType(key, childVal); + } + if (!parentVal) + return childVal; + const ret = Object.create(null); + extend(ret, parentVal); + if (childVal) + extend(ret, childVal); + return ret; + }; +strats.provide = function (parentVal, childVal) { + if (!parentVal) + return childVal; + return function () { + const ret = Object.create(null); + mergeData(ret, isFunction(parentVal) ? parentVal.call(this) : parentVal); + if (childVal) { + mergeData(ret, isFunction(childVal) ? childVal.call(this) : childVal, false // non-recursive + ); + } + return ret; + }; +}; +/** + * Default strategy. + */ +const defaultStrat = function (parentVal, childVal) { + return childVal === undefined ? parentVal : childVal; +}; +/** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ +function normalizeProps(options, vm) { + const props = options.props; + if (!props) + return; + const res = {}; + let i, val, name; + if (isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } + } + } + else if (isPlainObject(props)) { + for (const key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) ? val : { type: val }; + } + } + else ; + options.props = res; +} +/** + * Normalize all injections into Object-based format + */ +function normalizeInject(options, vm) { + const inject = options.inject; + if (!inject) + return; + const normalized = (options.inject = {}); + if (isArray(inject)) { + for (let i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } + else if (isPlainObject(inject)) { + for (const key in inject) { + const val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } + else ; +} +/** + * Normalize raw function directives into object format. + */ +function normalizeDirectives(options) { + const dirs = options.directives; + if (dirs) { + for (const key in dirs) { + const def = dirs[key]; + if (isFunction(def)) { + dirs[key] = { bind: def, update: def }; + } + } + } +} +function assertObjectType(name, value, vm) { + if (!isPlainObject(value)) { + warn$2(`Invalid value for option "${name}": expected an Object, ` + + `but got ${toRawType(value)}.`); + } +} +/** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ +function mergeOptions(parent, child, vm) { + if (isFunction(child)) { + // @ts-expect-error + child = child.options; + } + normalizeProps(child); + normalizeInject(child); + normalizeDirectives(child); + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (let i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + const options = {}; + let key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField(key) { + const strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options; +} +/** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ +function resolveAsset(options, type, id, warnMissing) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return; + } + const assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) + return assets[id]; + const camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) + return assets[camelizedId]; + const PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) + return assets[PascalCaseId]; + // fallback to prototype chain + const res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + return res; +} + +function validateProp(key, propOptions, propsData, vm) { + const prop = propOptions[key]; + const absent = !hasOwn(propsData, key); + let value = propsData[key]; + // boolean casting + const booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } + else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + const stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + const prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + return value; +} +/** + * Get the default value of a prop. + */ +function getPropDefaultValue(vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined; + } + const def = prop.default; + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && + vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined) { + return vm._props[key]; + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return isFunction(def) && getType(prop.type) !== 'Function' + ? def.call(vm) + : def; +} +const functionTypeCheckRE = /^\s*function (\w+)/; +/** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ +function getType(fn) { + const match = fn && fn.toString().match(functionTypeCheckRE); + return match ? match[1] : ''; +} +function isSameType(a, b) { + return getType(a) === getType(b); +} +function getTypeIndex(type, expectedTypes) { + if (!isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1; + } + for (let i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i; + } + } + return -1; +} + +// these are reserved for web because they are directly compiled away +// during template compilation +makeMap('style,class'); +// attributes that should be using props for binding +const acceptValue = makeMap('input,textarea,option,select,progress'); +const mustUseProp = (tag, type, attr) => { + return ((attr === 'value' && acceptValue(tag) && type !== 'button') || + (attr === 'selected' && tag === 'option') || + (attr === 'checked' && tag === 'input') || + (attr === 'muted' && tag === 'video')); +}; +const isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck'); +makeMap('events,caret,typing,plaintext-only'); +const isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' + + 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' + + 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' + + 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' + + 'required,reversed,scoped,seamless,selected,sortable,' + + 'truespeed,typemustmatch,visible'); + +const isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' + + 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' + + 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' + + 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' + + 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' + + 'embed,object,param,source,canvas,script,noscript,del,ins,' + + 'caption,col,colgroup,table,thead,tbody,td,th,tr,' + + 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' + + 'output,progress,select,textarea,' + + 'details,dialog,menu,menuitem,summary,' + + 'content,element,shadow,template,blockquote,iframe,tfoot'); +// this map is intentionally selective, only covering SVG elements that may +// contain child elements. +const isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' + + 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' + + 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true); +const isPreTag = (tag) => tag === 'pre'; +const isReservedTag = (tag) => { + return isHTMLTag(tag) || isSVG(tag); +}; +function getTagNamespace(tag) { + if (isSVG(tag)) { + return 'svg'; + } + // basic support for MathML + // note it doesn't support other MathML elements being component roots + if (tag === 'math') { + return 'math'; + } +} +makeMap('text,number,password,search,email,tel,url'); + +const validDivisionCharRE = /[\w).+\-_$\]]/; +function parseFilters(exp) { + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 0x27 && prev !== 0x5c) + inSingle = false; + } + else if (inDouble) { + if (c === 0x22 && prev !== 0x5c) + inDouble = false; + } + else if (inTemplateString) { + if (c === 0x60 && prev !== 0x5c) + inTemplateString = false; + } + else if (inRegex) { + if (c === 0x2f && prev !== 0x5c) + inRegex = false; + } + else if (c === 0x7c && // pipe + exp.charCodeAt(i + 1) !== 0x7c && + exp.charCodeAt(i - 1) !== 0x7c && + !curly && + !square && + !paren) { + if (expression === undefined) { + // first filter, end of expression + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } + else { + pushFilter(); + } + } + else { + switch (c) { + case 0x22: + inDouble = true; + break; // " + case 0x27: + inSingle = true; + break; // ' + case 0x60: + inTemplateString = true; + break; // ` + case 0x28: + paren++; + break; // ( + case 0x29: + paren--; + break; // ) + case 0x5b: + square++; + break; // [ + case 0x5d: + square--; + break; // ] + case 0x7b: + curly++; + break; // { + case 0x7d: + curly--; + break; // } + } + if (c === 0x2f) { + // / + let j = i - 1; + let p; + // find first non-whitespace prev char + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== ' ') + break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === undefined) { + expression = exp.slice(0, i).trim(); + } + else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters) { + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i]); + } + } + return expression; +} +function wrapFilter(exp, filter) { + const i = filter.indexOf('('); + if (i < 0) { + // _f: resolveFilter + return `_f("${filter}")(${exp})`; + } + else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + return `_f("${name}")(${exp}${args !== ')' ? ',' + args : args}`; + } +} + +const defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g; +const regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; +const buildRegex = cached(delimiters => { + const open = delimiters[0].replace(regexEscapeRE, '\\$&'); + const close = delimiters[1].replace(regexEscapeRE, '\\$&'); + return new RegExp(open + '((?:.|\\n)+?)' + close, 'g'); +}); +function parseText(text, delimiters) { + //@ts-expect-error + const tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE; + if (!tagRE.test(text)) { + return; + } + const tokens = []; + const rawTokens = []; + let lastIndex = (tagRE.lastIndex = 0); + let match, index, tokenValue; + while ((match = tagRE.exec(text))) { + index = match.index; + // push text token + if (index > lastIndex) { + rawTokens.push((tokenValue = text.slice(lastIndex, index))); + tokens.push(JSON.stringify(tokenValue)); + } + // tag token + const exp = parseFilters(match[1].trim()); + tokens.push(`_s(${exp})`); + rawTokens.push({ '@binding': exp }); + lastIndex = index + match[0].length; + } + if (lastIndex < text.length) { + rawTokens.push((tokenValue = text.slice(lastIndex))); + tokens.push(JSON.stringify(tokenValue)); + } + return { + expression: tokens.join('+'), + tokens: rawTokens + }; +} + +/* eslint-disable no-unused-vars */ +function baseWarn(msg, range) { + console.error(`[Vue compiler]: ${msg}`); +} +/* eslint-enable no-unused-vars */ +function pluckModuleFunction(modules, key) { + return modules ? modules.map(m => m[key]).filter(_ => _) : []; +} +function addProp(el, name, value, range, dynamic) { + (el.props || (el.props = [])).push(rangeSetItem({ name, value, dynamic }, range)); + el.plain = false; +} +function addAttr(el, name, value, range, dynamic) { + const attrs = dynamic + ? el.dynamicAttrs || (el.dynamicAttrs = []) + : el.attrs || (el.attrs = []); + attrs.push(rangeSetItem({ name, value, dynamic }, range)); + el.plain = false; +} +// add a raw attr (use this in preTransforms) +function addRawAttr(el, name, value, range) { + el.attrsMap[name] = value; + el.attrsList.push(rangeSetItem({ name, value }, range)); +} +function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) { + (el.directives || (el.directives = [])).push(rangeSetItem({ + name, + rawName, + value, + arg, + isDynamicArg, + modifiers + }, range)); + el.plain = false; +} +function prependModifierMarker(symbol, name, dynamic) { + return dynamic ? `_p(${name},"${symbol}")` : symbol + name; // mark the event as captured +} +function addHandler(el, name, value, modifiers, important, warn, range, dynamic) { + modifiers = modifiers || emptyObject; + // normalize click.right and click.middle since they don't actually fire + // this is technically browser-specific, but at least for now browsers are + // the only target envs that have right/middle clicks. + if (modifiers.right) { + if (dynamic) { + name = `(${name})==='click'?'contextmenu':(${name})`; + } + else if (name === 'click') { + name = 'contextmenu'; + delete modifiers.right; + } + } + else if (modifiers.middle) { + if (dynamic) { + name = `(${name})==='click'?'mouseup':(${name})`; + } + else if (name === 'click') { + name = 'mouseup'; + } + } + // check capture modifier + if (modifiers.capture) { + delete modifiers.capture; + name = prependModifierMarker('!', name, dynamic); + } + if (modifiers.once) { + delete modifiers.once; + name = prependModifierMarker('~', name, dynamic); + } + /* istanbul ignore if */ + if (modifiers.passive) { + delete modifiers.passive; + name = prependModifierMarker('&', name, dynamic); + } + let events; + if (modifiers.native) { + delete modifiers.native; + events = el.nativeEvents || (el.nativeEvents = {}); + } + else { + events = el.events || (el.events = {}); + } + const newHandler = rangeSetItem({ value: value.trim(), dynamic }, range); + if (modifiers !== emptyObject) { + newHandler.modifiers = modifiers; + } + const handlers = events[name]; + /* istanbul ignore if */ + if (Array.isArray(handlers)) { + important ? handlers.unshift(newHandler) : handlers.push(newHandler); + } + else if (handlers) { + events[name] = important ? [newHandler, handlers] : [handlers, newHandler]; + } + else { + events[name] = newHandler; + } + el.plain = false; +} +function getRawBindingAttr(el, name) { + return (el.rawAttrsMap[':' + name] || + el.rawAttrsMap['v-bind:' + name] || + el.rawAttrsMap[name]); +} +function getBindingAttr(el, name, getStatic) { + const dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name); + if (dynamicValue != null) { + return parseFilters(dynamicValue); + } + else if (getStatic !== false) { + const staticValue = getAndRemoveAttr(el, name); + if (staticValue != null) { + return JSON.stringify(staticValue); + } + } +} +// note: this only removes the attr from the Array (attrsList) so that it +// doesn't get processed by processAttrs. +// By default it does NOT remove it from the map (attrsMap) because the map is +// needed during codegen. +function getAndRemoveAttr(el, name, removeFromMap) { + let val; + if ((val = el.attrsMap[name]) != null) { + const list = el.attrsList; + for (let i = 0, l = list.length; i < l; i++) { + if (list[i].name === name) { + list.splice(i, 1); + break; + } + } + } + if (removeFromMap) { + delete el.attrsMap[name]; + } + return val; +} +function getAndRemoveAttrByRegex(el, name) { + const list = el.attrsList; + for (let i = 0, l = list.length; i < l; i++) { + const attr = list[i]; + if (name.test(attr.name)) { + list.splice(i, 1); + return attr; + } + } +} +function rangeSetItem(item, range) { + if (range) { + if (range.start != null) { + item.start = range.start; + } + if (range.end != null) { + item.end = range.end; + } + } + return item; +} + +function transformNode$1(el, options) { + options.warn || baseWarn; + const staticClass = getAndRemoveAttr(el, 'class'); + if (staticClass) { + el.staticClass = JSON.stringify(staticClass.replace(/\s+/g, ' ').trim()); + } + const classBinding = getBindingAttr(el, 'class', false /* getStatic */); + if (classBinding) { + el.classBinding = classBinding; + } +} +function genData$2(el) { + let data = ''; + if (el.staticClass) { + data += `staticClass:${el.staticClass},`; + } + if (el.classBinding) { + data += `class:${el.classBinding},`; + } + return data; +} +var klass = { + staticKeys: ['staticClass'], + transformNode: transformNode$1, + genData: genData$2 +}; + +const parseStyleText = cached(function (cssText) { + const res = {}; + const listDelimiter = /;(?![^(]*\))/g; + const propertyDelimiter = /:(.+)/; + cssText.split(listDelimiter).forEach(function (item) { + if (item) { + const tmp = item.split(propertyDelimiter); + tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim()); + } + }); + return res; +}); + +function transformNode(el, options) { + options.warn || baseWarn; + const staticStyle = getAndRemoveAttr(el, 'style'); + if (staticStyle) { + el.staticStyle = JSON.stringify(parseStyleText(staticStyle)); + } + const styleBinding = getBindingAttr(el, 'style', false /* getStatic */); + if (styleBinding) { + el.styleBinding = styleBinding; + } +} +function genData$1(el) { + let data = ''; + if (el.staticStyle) { + data += `staticStyle:${el.staticStyle},`; + } + if (el.styleBinding) { + data += `style:(${el.styleBinding}),`; + } + return data; +} +var style = { + staticKeys: ['staticStyle'], + transformNode, + genData: genData$1 +}; + +/** + * Cross-platform code generation for component v-model + */ +function genComponentModel(el, value, modifiers) { + const { number, trim } = modifiers || {}; + const baseValueExpression = '$$v'; + let valueExpression = baseValueExpression; + if (trim) { + valueExpression = + `(typeof ${baseValueExpression} === 'string'` + + `? ${baseValueExpression}.trim()` + + `: ${baseValueExpression})`; + } + if (number) { + valueExpression = `_n(${valueExpression})`; + } + const assignment = genAssignmentCode(value, valueExpression); + el.model = { + value: `(${value})`, + expression: JSON.stringify(value), + callback: `function (${baseValueExpression}) {${assignment}}` + }; +} +/** + * Cross-platform codegen helper for generating v-model value assignment code. + */ +function genAssignmentCode(value, assignment) { + const res = parseModel(value); + if (res.key === null) { + return `${value}=${assignment}`; + } + else { + return `$set(${res.exp}, ${res.key}, ${assignment})`; + } +} +/** + * Parse a v-model expression into a base path and a final key segment. + * Handles both dot-path and possible square brackets. + * + * Possible cases: + * + * - test + * - test[key] + * - test[test1[key]] + * - test["a"][key] + * - xxx.test[a[a].test1[key]] + * - test.xxx.a["asa"][test1[key]] + * + */ +let len, str, chr, index, expressionPos, expressionEndPos; +function parseModel(val) { + // Fix https://github.com/vuejs/vue/pull/7730 + // allow v-model="obj.val " (trailing whitespace) + val = val.trim(); + len = val.length; + if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) { + index = val.lastIndexOf('.'); + if (index > -1) { + return { + exp: val.slice(0, index), + key: '"' + val.slice(index + 1) + '"' + }; + } + else { + return { + exp: val, + key: null + }; + } + } + str = val; + index = expressionPos = expressionEndPos = 0; + while (!eof()) { + chr = next(); + /* istanbul ignore if */ + if (isStringStart(chr)) { + parseString(chr); + } + else if (chr === 0x5b) { + parseBracket(chr); + } + } + return { + exp: val.slice(0, expressionPos), + key: val.slice(expressionPos + 1, expressionEndPos) + }; +} +function next() { + return str.charCodeAt(++index); +} +function eof() { + return index >= len; +} +function isStringStart(chr) { + return chr === 0x22 || chr === 0x27; +} +function parseBracket(chr) { + let inBracket = 1; + expressionPos = index; + while (!eof()) { + chr = next(); + if (isStringStart(chr)) { + parseString(chr); + continue; + } + if (chr === 0x5b) + inBracket++; + if (chr === 0x5d) + inBracket--; + if (inBracket === 0) { + expressionEndPos = index; + break; + } + } +} +function parseString(chr) { + const stringQuote = chr; + while (!eof()) { + chr = next(); + if (chr === stringQuote) { + break; + } + } +} + +const onRE = /^@|^v-on:/; +const dirRE = /^v-|^@|^:|^#/; +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +const dynamicArgRE = /^\[.*\]$/; +const argRE = /:(.*)$/; +const bindRE = /^:|^\.|^v-bind:/; +const modifierRE = /\.[^.\]]+(?=[^\]]*$)/g; +const slotRE = /^v-slot(:|$)|^#/; +const lineBreakRE = /[\r\n]/; +const whitespaceRE = /[ \f\t\r\n]+/g; +const decodeHTMLCached = cached(he__default["default"].decode); +const emptySlotScopeToken = `_empty_`; +// configurable state +let warn$1; +let delimiters; +let transforms; +let preTransforms; +let postTransforms; +let platformIsPreTag; +let platformMustUseProp; +let platformGetTagNamespace; +function createASTElement(tag, attrs, parent) { + return { + type: 1, + tag, + attrsList: attrs, + attrsMap: makeAttrsMap(attrs), + rawAttrsMap: {}, + parent, + children: [] + }; +} +/** + * Convert HTML string to AST. + */ +function parse$a(template, options) { + warn$1 = options.warn || baseWarn; + platformIsPreTag = options.isPreTag || no; + platformMustUseProp = options.mustUseProp || no; + platformGetTagNamespace = options.getTagNamespace || no; + options.isReservedTag || no; + transforms = pluckModuleFunction(options.modules, 'transformNode'); + preTransforms = pluckModuleFunction(options.modules, 'preTransformNode'); + postTransforms = pluckModuleFunction(options.modules, 'postTransformNode'); + delimiters = options.delimiters; + const stack = []; + const preserveWhitespace = options.preserveWhitespace !== false; + const whitespaceOption = options.whitespace; + let root; + let currentParent; + let inVPre = false; + let inPre = false; + function closeElement(element) { + trimEndingWhitespace(element); + if (!inVPre && !element.processed) { + element = processElement(element, options); + } + // tree management + if (!stack.length && element !== root) { + // allow root elements with v-if, v-else-if and v-else + if (root.if && (element.elseif || element.else)) { + addIfCondition(root, { + exp: element.elseif, + block: element + }); + } + } + if (currentParent && !element.forbidden) { + if (element.elseif || element.else) { + processIfConditions(element, currentParent); + } + else { + if (element.slotScope) { + // scoped slot + // keep it in the children list so that v-else(-if) conditions can + // find it as the prev node. + const name = element.slotTarget || '"default"'; + (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element; + } + currentParent.children.push(element); + element.parent = currentParent; + } + } + // final children cleanup + // filter out scoped slots + element.children = element.children.filter(c => !c.slotScope); + // remove trailing whitespace node again + trimEndingWhitespace(element); + // check pre state + if (element.pre) { + inVPre = false; + } + if (platformIsPreTag(element.tag)) { + inPre = false; + } + // apply post-transforms + for (let i = 0; i < postTransforms.length; i++) { + postTransforms[i](element, options); + } + } + function trimEndingWhitespace(el) { + // remove trailing whitespace node + if (!inPre) { + let lastNode; + while ((lastNode = el.children[el.children.length - 1]) && + lastNode.type === 3 && + lastNode.text === ' ') { + el.children.pop(); + } + } + } + parseHTML(template, { + warn: warn$1, + expectHTML: options.expectHTML, + isUnaryTag: options.isUnaryTag, + canBeLeftOpenTag: options.canBeLeftOpenTag, + shouldDecodeNewlines: options.shouldDecodeNewlines, + shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, + shouldKeepComment: options.comments, + outputSourceRange: options.outputSourceRange, + start(tag, attrs, unary, start, end) { + // check namespace. + // inherit parent ns if there is one + const ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag); + // handle IE svg bug + /* istanbul ignore if */ + if (isIE && ns === 'svg') { + attrs = guardIESVGBug(attrs); + } + let element = createASTElement(tag, attrs, currentParent); + if (ns) { + element.ns = ns; + } + if (isForbiddenTag(element) && !isServerRendering()) { + element.forbidden = true; + } + // apply pre-transforms + for (let i = 0; i < preTransforms.length; i++) { + element = preTransforms[i](element, options) || element; + } + if (!inVPre) { + processPre(element); + if (element.pre) { + inVPre = true; + } + } + if (platformIsPreTag(element.tag)) { + inPre = true; + } + if (inVPre) { + processRawAttrs(element); + } + else if (!element.processed) { + // structural directives + processFor(element); + processIf(element); + processOnce(element); + } + if (!root) { + root = element; + } + if (!unary) { + currentParent = element; + stack.push(element); + } + else { + closeElement(element); + } + }, + end(tag, start, end) { + const element = stack[stack.length - 1]; + // pop stack + stack.length -= 1; + currentParent = stack[stack.length - 1]; + closeElement(element); + }, + chars(text, start, end) { + if (!currentParent) { + return; + } + // IE textarea placeholder bug + /* istanbul ignore if */ + if (isIE && + currentParent.tag === 'textarea' && + currentParent.attrsMap.placeholder === text) { + return; + } + const children = currentParent.children; + if (inPre || text.trim()) { + text = isTextTag(currentParent) + ? text + : decodeHTMLCached(text); + } + else if (!children.length) { + // remove the whitespace-only node right after an opening tag + text = ''; + } + else if (whitespaceOption) { + if (whitespaceOption === 'condense') { + // in condense mode, remove the whitespace node if it contains + // line break, otherwise condense to a single space + text = lineBreakRE.test(text) ? '' : ' '; + } + else { + text = ' '; + } + } + else { + text = preserveWhitespace ? ' ' : ''; + } + if (text) { + if (!inPre && whitespaceOption === 'condense') { + // condense consecutive whitespaces into single space + text = text.replace(whitespaceRE, ' '); + } + let res; + let child; + if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) { + child = { + type: 2, + expression: res.expression, + tokens: res.tokens, + text + }; + } + else if (text !== ' ' || + !children.length || + children[children.length - 1].text !== ' ') { + child = { + type: 3, + text + }; + } + if (child) { + children.push(child); + } + } + }, + comment(text, start, end) { + // adding anything as a sibling to the root node is forbidden + // comments should still be allowed, but ignored + if (currentParent) { + const child = { + type: 3, + text, + isComment: true + }; + currentParent.children.push(child); + } + } + }); + return root; +} +function processPre(el) { + if (getAndRemoveAttr(el, 'v-pre') != null) { + el.pre = true; + } +} +function processRawAttrs(el) { + const list = el.attrsList; + const len = list.length; + if (len) { + const attrs = (el.attrs = new Array(len)); + for (let i = 0; i < len; i++) { + attrs[i] = { + name: list[i].name, + value: JSON.stringify(list[i].value) + }; + if (list[i].start != null) { + attrs[i].start = list[i].start; + attrs[i].end = list[i].end; + } + } + } + else if (!el.pre) { + // non root node in pre blocks with no attributes + el.plain = true; + } +} +function processElement(element, options) { + processKey(element); + // determine whether this is a plain element after + // removing structural attributes + element.plain = + !element.key && !element.scopedSlots && !element.attrsList.length; + processRef(element); + processSlotContent(element); + processSlotOutlet(element); + processComponent(element); + for (let i = 0; i < transforms.length; i++) { + element = transforms[i](element, options) || element; + } + processAttrs(element); + return element; +} +function processKey(el) { + const exp = getBindingAttr(el, 'key'); + if (exp) { + el.key = exp; + } +} +function processRef(el) { + const ref = getBindingAttr(el, 'ref'); + if (ref) { + el.ref = ref; + el.refInFor = checkInFor(el); + } +} +function processFor(el) { + let exp; + if ((exp = getAndRemoveAttr(el, 'v-for'))) { + const res = parseFor(exp); + if (res) { + extend(el, res); + } + } +} +function parseFor(exp) { + const inMatch = exp.match(forAliasRE); + if (!inMatch) + return; + const res = {}; + res.for = inMatch[2].trim(); + const alias = inMatch[1].trim().replace(stripParensRE, ''); + const iteratorMatch = alias.match(forIteratorRE); + if (iteratorMatch) { + res.alias = alias.replace(forIteratorRE, '').trim(); + res.iterator1 = iteratorMatch[1].trim(); + if (iteratorMatch[2]) { + res.iterator2 = iteratorMatch[2].trim(); + } + } + else { + res.alias = alias; + } + return res; +} +function processIf(el) { + const exp = getAndRemoveAttr(el, 'v-if'); + if (exp) { + el.if = exp; + addIfCondition(el, { + exp: exp, + block: el + }); + } + else { + if (getAndRemoveAttr(el, 'v-else') != null) { + el.else = true; + } + const elseif = getAndRemoveAttr(el, 'v-else-if'); + if (elseif) { + el.elseif = elseif; + } + } +} +function processIfConditions(el, parent) { + const prev = findPrevElement(parent.children); + if (prev && prev.if) { + addIfCondition(prev, { + exp: el.elseif, + block: el + }); + } +} +function findPrevElement(children) { + let i = children.length; + while (i--) { + if (children[i].type === 1) { + return children[i]; + } + else { + children.pop(); + } + } +} +function addIfCondition(el, condition) { + if (!el.ifConditions) { + el.ifConditions = []; + } + el.ifConditions.push(condition); +} +function processOnce(el) { + const once = getAndRemoveAttr(el, 'v-once'); + if (once != null) { + el.once = true; + } +} +// handle content being passed to a component as slot, +// e.g. <template slot="xxx">, <div slot-scope="xxx"> +function processSlotContent(el) { + let slotScope; + if (el.tag === 'template') { + slotScope = getAndRemoveAttr(el, 'scope'); + el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope'); + } + else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) { + el.slotScope = slotScope; + } + // slot="xxx" + const slotTarget = getBindingAttr(el, 'slot'); + if (slotTarget) { + el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; + el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']); + // preserve slot as an attribute for native shadow DOM compat + // only for non-scoped slots. + if (el.tag !== 'template' && !el.slotScope) { + addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot')); + } + } + // 2.6 v-slot syntax + { + if (el.tag === 'template') { + // v-slot on <template> + const slotBinding = getAndRemoveAttrByRegex(el, slotRE); + if (slotBinding) { + const { name, dynamic } = getSlotName(slotBinding); + el.slotTarget = name; + el.slotTargetDynamic = dynamic; + el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf + } + } + else { + // v-slot on component, denotes default slot + const slotBinding = getAndRemoveAttrByRegex(el, slotRE); + if (slotBinding) { + // add the component's children to its default slot + const slots = el.scopedSlots || (el.scopedSlots = {}); + const { name, dynamic } = getSlotName(slotBinding); + const slotContainer = (slots[name] = createASTElement('template', [], el)); + slotContainer.slotTarget = name; + slotContainer.slotTargetDynamic = dynamic; + slotContainer.children = el.children.filter((c) => { + if (!c.slotScope) { + c.parent = slotContainer; + return true; + } + }); + slotContainer.slotScope = slotBinding.value || emptySlotScopeToken; + // remove children as they are returned from scopedSlots now + el.children = []; + // mark el non-plain so data gets generated + el.plain = false; + } + } + } +} +function getSlotName(binding) { + let name = binding.name.replace(slotRE, ''); + if (!name) { + if (binding.name[0] !== '#') { + name = 'default'; + } + } + return dynamicArgRE.test(name) + ? // dynamic [name] + { name: name.slice(1, -1), dynamic: true } + : // static name + { name: `"${name}"`, dynamic: false }; +} +// handle <slot/> outlets +function processSlotOutlet(el) { + if (el.tag === 'slot') { + el.slotName = getBindingAttr(el, 'name'); + } +} +function processComponent(el) { + let binding; + if ((binding = getBindingAttr(el, 'is'))) { + el.component = binding; + } + if (getAndRemoveAttr(el, 'inline-template') != null) { + el.inlineTemplate = true; + } +} +function processAttrs(el) { + const list = el.attrsList; + let i, l, name, rawName, value, modifiers, syncGen, isDynamic; + for (i = 0, l = list.length; i < l; i++) { + name = rawName = list[i].name; + value = list[i].value; + if (dirRE.test(name)) { + // mark element as dynamic + el.hasBindings = true; + // modifiers + modifiers = parseModifiers(name.replace(dirRE, '')); + // support .foo shorthand syntax for the .prop modifier + if (modifiers) { + name = name.replace(modifierRE, ''); + } + if (bindRE.test(name)) { + // v-bind + name = name.replace(bindRE, ''); + value = parseFilters(value); + isDynamic = dynamicArgRE.test(name); + if (isDynamic) { + name = name.slice(1, -1); + } + if (modifiers) { + if (modifiers.prop && !isDynamic) { + name = camelize(name); + if (name === 'innerHtml') + name = 'innerHTML'; + } + if (modifiers.camel && !isDynamic) { + name = camelize(name); + } + if (modifiers.sync) { + syncGen = genAssignmentCode(value, `$event`); + if (!isDynamic) { + addHandler(el, `update:${camelize(name)}`, syncGen, null, false, warn$1, list[i]); + if (hyphenate(name) !== camelize(name)) { + addHandler(el, `update:${hyphenate(name)}`, syncGen, null, false, warn$1, list[i]); + } + } + else { + // handler w/ dynamic event name + addHandler(el, `"update:"+(${name})`, syncGen, null, false, warn$1, list[i], true // dynamic + ); + } + } + } + if ((modifiers && modifiers.prop) || + (!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))) { + addProp(el, name, value, list[i], isDynamic); + } + else { + addAttr(el, name, value, list[i], isDynamic); + } + } + else if (onRE.test(name)) { + // v-on + name = name.replace(onRE, ''); + isDynamic = dynamicArgRE.test(name); + if (isDynamic) { + name = name.slice(1, -1); + } + addHandler(el, name, value, modifiers, false, warn$1, list[i], isDynamic); + } + else { + // normal directives + name = name.replace(dirRE, ''); + // parse arg + const argMatch = name.match(argRE); + let arg = argMatch && argMatch[1]; + isDynamic = false; + if (arg) { + name = name.slice(0, -(arg.length + 1)); + if (dynamicArgRE.test(arg)) { + arg = arg.slice(1, -1); + isDynamic = true; + } + } + addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]); + } + } + else { + addAttr(el, name, JSON.stringify(value), list[i]); + // #6887 firefox doesn't update muted state if set via attribute + // even immediately after element creation + if (!el.component && + name === 'muted' && + platformMustUseProp(el.tag, el.attrsMap.type, name)) { + addProp(el, name, 'true', list[i]); + } + } + } +} +function checkInFor(el) { + let parent = el; + while (parent) { + if (parent.for !== undefined) { + return true; + } + parent = parent.parent; + } + return false; +} +function parseModifiers(name) { + const match = name.match(modifierRE); + if (match) { + const ret = {}; + match.forEach(m => { + ret[m.slice(1)] = true; + }); + return ret; + } +} +function makeAttrsMap(attrs) { + const map = {}; + for (let i = 0, l = attrs.length; i < l; i++) { + map[attrs[i].name] = attrs[i].value; + } + return map; +} +// for script (e.g. type="x/template") or style, do not decode content +function isTextTag(el) { + return el.tag === 'script' || el.tag === 'style'; +} +function isForbiddenTag(el) { + return (el.tag === 'style' || + (el.tag === 'script' && + (!el.attrsMap.type || el.attrsMap.type === 'text/javascript'))); +} +const ieNSBug = /^xmlns:NS\d+/; +const ieNSPrefix = /^NS\d+:/; +/* istanbul ignore next */ +function guardIESVGBug(attrs) { + const res = []; + for (let i = 0; i < attrs.length; i++) { + const attr = attrs[i]; + if (!ieNSBug.test(attr.name)) { + attr.name = attr.name.replace(ieNSPrefix, ''); + res.push(attr); + } + } + return res; +} + +/** + * Expand input[v-model] with dynamic type bindings into v-if-else chains + * Turn this: + * <input v-model="data[type]" :type="type"> + * into this: + * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]"> + * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]"> + * <input v-else :type="type" v-model="data[type]"> + */ +function preTransformNode(el, options) { + if (el.tag === 'input') { + const map = el.attrsMap; + if (!map['v-model']) { + return; + } + let typeBinding; + if (map[':type'] || map['v-bind:type']) { + typeBinding = getBindingAttr(el, 'type'); + } + if (!map.type && !typeBinding && map['v-bind']) { + typeBinding = `(${map['v-bind']}).type`; + } + if (typeBinding) { + const ifCondition = getAndRemoveAttr(el, 'v-if', true); + const ifConditionExtra = ifCondition ? `&&(${ifCondition})` : ``; + const hasElse = getAndRemoveAttr(el, 'v-else', true) != null; + const elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); + // 1. checkbox + const branch0 = cloneASTElement(el); + // process for on the main node + processFor(branch0); + addRawAttr(branch0, 'type', 'checkbox'); + processElement(branch0, options); + branch0.processed = true; // prevent it from double-processed + branch0.if = `(${typeBinding})==='checkbox'` + ifConditionExtra; + addIfCondition(branch0, { + exp: branch0.if, + block: branch0 + }); + // 2. add radio else-if condition + const branch1 = cloneASTElement(el); + getAndRemoveAttr(branch1, 'v-for', true); + addRawAttr(branch1, 'type', 'radio'); + processElement(branch1, options); + addIfCondition(branch0, { + exp: `(${typeBinding})==='radio'` + ifConditionExtra, + block: branch1 + }); + // 3. other + const branch2 = cloneASTElement(el); + getAndRemoveAttr(branch2, 'v-for', true); + addRawAttr(branch2, ':type', typeBinding); + processElement(branch2, options); + addIfCondition(branch0, { + exp: ifCondition, + block: branch2 + }); + if (hasElse) { + branch0.else = true; + } + else if (elseIfCondition) { + branch0.elseif = elseIfCondition; + } + return branch0; + } + } +} +function cloneASTElement(el) { + return createASTElement(el.tag, el.attrsList.slice(), el.parent); +} +var model$1 = { + preTransformNode +}; + +var modules = [klass, style, model$1]; +// in some cases, the event used has to be determined at runtime +// so we used some reserved tokens during compile. +const RANGE_TOKEN = '__r'; +function model(el, dir, _warn) { + const value = dir.value; + const modifiers = dir.modifiers; + const tag = el.tag; + const type = el.attrsMap.type; + if (el.component) { + genComponentModel(el, value, modifiers); + // component v-model doesn't need extra runtime + return false; + } + else if (tag === 'select') { + genSelect(el, value, modifiers); + } + else if (tag === 'input' && type === 'checkbox') { + genCheckboxModel(el, value, modifiers); + } + else if (tag === 'input' && type === 'radio') { + genRadioModel(el, value, modifiers); + } + else if (tag === 'input' || tag === 'textarea') { + genDefaultModel(el, value, modifiers); + } + else { + genComponentModel(el, value, modifiers); + // component v-model doesn't need extra runtime + return false; + } + // ensure runtime directive metadata + return true; +} +function genCheckboxModel(el, value, modifiers) { + const number = modifiers && modifiers.number; + const valueBinding = getBindingAttr(el, 'value') || 'null'; + const trueValueBinding = getBindingAttr(el, 'true-value') || 'true'; + const falseValueBinding = getBindingAttr(el, 'false-value') || 'false'; + addProp(el, 'checked', `Array.isArray(${value})` + + `?_i(${value},${valueBinding})>-1` + + (trueValueBinding === 'true' + ? `:(${value})` + : `:_q(${value},${trueValueBinding})`)); + addHandler(el, 'change', `var $$a=${value},` + + '$$el=$event.target,' + + `$$c=$$el.checked?(${trueValueBinding}):(${falseValueBinding});` + + 'if(Array.isArray($$a)){' + + `var $$v=${number ? '_n(' + valueBinding + ')' : valueBinding},` + + '$$i=_i($$a,$$v);' + + `if($$el.checked){$$i<0&&(${genAssignmentCode(value, '$$a.concat([$$v])')})}` + + `else{$$i>-1&&(${genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')})}` + + `}else{${genAssignmentCode(value, '$$c')}}`, null, true); +} +function genRadioModel(el, value, modifiers) { + const number = modifiers && modifiers.number; + let valueBinding = getBindingAttr(el, 'value') || 'null'; + valueBinding = number ? `_n(${valueBinding})` : valueBinding; + addProp(el, 'checked', `_q(${value},${valueBinding})`); + addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true); +} +function genSelect(el, value, modifiers) { + const number = modifiers && modifiers.number; + const selectedVal = `Array.prototype.filter` + + `.call($event.target.options,function(o){return o.selected})` + + `.map(function(o){var val = "_value" in o ? o._value : o.value;` + + `return ${number ? '_n(val)' : 'val'}})`; + const assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'; + let code = `var $$selectedVal = ${selectedVal};`; + code = `${code} ${genAssignmentCode(value, assignment)}`; + addHandler(el, 'change', code, null, true); +} +function genDefaultModel(el, value, modifiers) { + const type = el.attrsMap.type; + const { lazy, number, trim } = modifiers || {}; + const needCompositionGuard = !lazy && type !== 'range'; + const event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input'; + let valueExpression = '$event.target.value'; + if (trim) { + valueExpression = `$event.target.value.trim()`; + } + if (number) { + valueExpression = `_n(${valueExpression})`; + } + let code = genAssignmentCode(value, valueExpression); + if (needCompositionGuard) { + code = `if($event.target.composing)return;${code}`; + } + addProp(el, 'value', `(${value})`); + addHandler(el, event, code, null, true); + if (trim || number) { + addHandler(el, 'blur', '$forceUpdate()'); + } +} + +function text(el, dir) { + if (dir.value) { + addProp(el, 'textContent', `_s(${dir.value})`, dir); + } +} + +function html$3(el, dir) { + if (dir.value) { + addProp(el, 'innerHTML', `_s(${dir.value})`, dir); + } +} + +var directives$1 = { + model, + text, + html: html$3 +}; + +const baseOptions = { + expectHTML: true, + modules, + directives: directives$1, + isPreTag, + isUnaryTag, + mustUseProp, + canBeLeftOpenTag, + isReservedTag, + getTagNamespace, + staticKeys: genStaticKeys$1(modules) +}; + +let isStaticKey; +let isPlatformReservedTag$1; +const genStaticKeysCached = cached(genStaticKeys); +/** + * Goal of the optimizer: walk the generated template AST tree + * and detect sub-trees that are purely static, i.e. parts of + * the DOM that never needs to change. + * + * Once we detect these sub-trees, we can: + * + * 1. Hoist them into constants, so that we no longer need to + * create fresh nodes for them on each re-render; + * 2. Completely skip them in the patching process. + */ +function optimize$1(root, options) { + if (!root) + return; + isStaticKey = genStaticKeysCached(options.staticKeys || ''); + isPlatformReservedTag$1 = options.isReservedTag || no; + // first pass: mark all non-static nodes. + markStatic(root); + // second pass: mark static roots. + markStaticRoots(root, false); +} +function genStaticKeys(keys) { + return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' + + (keys ? ',' + keys : '')); +} +function markStatic(node) { + node.static = isStatic(node); + if (node.type === 1) { + // do not make component slot content static. this avoids + // 1. components not able to mutate slot nodes + // 2. static slot content fails for hot-reloading + if (!isPlatformReservedTag$1(node.tag) && + node.tag !== 'slot' && + node.attrsMap['inline-template'] == null) { + return; + } + for (let i = 0, l = node.children.length; i < l; i++) { + const child = node.children[i]; + markStatic(child); + if (!child.static) { + node.static = false; + } + } + if (node.ifConditions) { + for (let i = 1, l = node.ifConditions.length; i < l; i++) { + const block = node.ifConditions[i].block; + markStatic(block); + if (!block.static) { + node.static = false; + } + } + } + } +} +function markStaticRoots(node, isInFor) { + if (node.type === 1) { + if (node.static || node.once) { + node.staticInFor = isInFor; + } + // For a node to qualify as a static root, it should have children that + // are not just static text. Otherwise the cost of hoisting out will + // outweigh the benefits and it's better off to just always render it fresh. + if (node.static && + node.children.length && + !(node.children.length === 1 && node.children[0].type === 3)) { + node.staticRoot = true; + return; + } + else { + node.staticRoot = false; + } + if (node.children) { + for (let i = 0, l = node.children.length; i < l; i++) { + markStaticRoots(node.children[i], isInFor || !!node.for); + } + } + if (node.ifConditions) { + for (let i = 1, l = node.ifConditions.length; i < l; i++) { + markStaticRoots(node.ifConditions[i].block, isInFor); + } + } + } +} +function isStatic(node) { + if (node.type === 2) { + // expression + return false; + } + if (node.type === 3) { + // text + return true; + } + return !!(node.pre || + (!node.hasBindings && // no dynamic bindings + !node.if && + !node.for && // not v-if or v-for or v-else + !isBuiltInTag(node.tag) && // not a built-in + isPlatformReservedTag$1(node.tag) && // not a component + !isDirectChildOfTemplateFor(node) && + Object.keys(node).every(isStaticKey))); +} +function isDirectChildOfTemplateFor(node) { + while (node.parent) { + node = node.parent; + if (node.tag !== 'template') { + return false; + } + if (node.for) { + return true; + } + } + return false; +} + +const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/; +const fnInvokeRE = /\([^)]*?\);*$/; +const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; +// KeyboardEvent.keyCode aliases +const keyCodes = { + esc: 27, + tab: 9, + enter: 13, + space: 32, + up: 38, + left: 37, + right: 39, + down: 40, + delete: [8, 46] +}; +// KeyboardEvent.key aliases +const keyNames = { + // #7880: IE11 and Edge use `Esc` for Escape key name. + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + // #9112: IE11 uses `Spacebar` for Space key name. + space: [' ', 'Spacebar'], + // #7806: IE11 uses key names without `Arrow` prefix for arrow keys. + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + // #9112: IE11 uses `Del` for Delete key name. + delete: ['Backspace', 'Delete', 'Del'] +}; +// #4868: modifiers that prevent the execution of the listener +// need to explicitly return null so that we can determine whether to remove +// the listener for .once +const genGuard = condition => `if(${condition})return null;`; +const modifierCode = { + stop: '$event.stopPropagation();', + prevent: '$event.preventDefault();', + self: genGuard(`$event.target !== $event.currentTarget`), + ctrl: genGuard(`!$event.ctrlKey`), + shift: genGuard(`!$event.shiftKey`), + alt: genGuard(`!$event.altKey`), + meta: genGuard(`!$event.metaKey`), + left: genGuard(`'button' in $event && $event.button !== 0`), + middle: genGuard(`'button' in $event && $event.button !== 1`), + right: genGuard(`'button' in $event && $event.button !== 2`) +}; +function genHandlers(events, isNative) { + const prefix = isNative ? 'nativeOn:' : 'on:'; + let staticHandlers = ``; + let dynamicHandlers = ``; + for (const name in events) { + const handlerCode = genHandler(events[name]); + //@ts-expect-error + if (events[name] && events[name].dynamic) { + dynamicHandlers += `${name},${handlerCode},`; + } + else { + staticHandlers += `"${name}":${handlerCode},`; + } + } + staticHandlers = `{${staticHandlers.slice(0, -1)}}`; + if (dynamicHandlers) { + return prefix + `_d(${staticHandlers},[${dynamicHandlers.slice(0, -1)}])`; + } + else { + return prefix + staticHandlers; + } +} +function genHandler(handler) { + if (!handler) { + return 'function(){}'; + } + if (Array.isArray(handler)) { + return `[${handler.map(handler => genHandler(handler)).join(',')}]`; + } + const isMethodPath = simplePathRE.test(handler.value); + const isFunctionExpression = fnExpRE.test(handler.value); + const isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, '')); + if (!handler.modifiers) { + if (isMethodPath || isFunctionExpression) { + return handler.value; + } + return `function($event){${isFunctionInvocation ? `return ${handler.value}` : handler.value}}`; // inline statement + } + else { + let code = ''; + let genModifierCode = ''; + const keys = []; + for (const key in handler.modifiers) { + if (modifierCode[key]) { + genModifierCode += modifierCode[key]; + // left/right + if (keyCodes[key]) { + keys.push(key); + } + } + else if (key === 'exact') { + const modifiers = handler.modifiers; + genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta'] + .filter(keyModifier => !modifiers[keyModifier]) + .map(keyModifier => `$event.${keyModifier}Key`) + .join('||')); + } + else { + keys.push(key); + } + } + if (keys.length) { + code += genKeyFilter(keys); + } + // Make sure modifiers like prevent and stop get executed after key filtering + if (genModifierCode) { + code += genModifierCode; + } + const handlerCode = isMethodPath + ? `return ${handler.value}.apply(null, arguments)` + : isFunctionExpression + ? `return (${handler.value}).apply(null, arguments)` + : isFunctionInvocation + ? `return ${handler.value}` + : handler.value; + return `function($event){${code}${handlerCode}}`; + } +} +function genKeyFilter(keys) { + return ( + // make sure the key filters only apply to KeyboardEvents + // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake + // key events that do not have keyCode property... + `if(!$event.type.indexOf('key')&&` + + `${keys.map(genFilterCode).join('&&')})return null;`); +} +function genFilterCode(key) { + const keyVal = parseInt(key, 10); + if (keyVal) { + return `$event.keyCode!==${keyVal}`; + } + const keyCode = keyCodes[key]; + const keyName = keyNames[key]; + return (`_k($event.keyCode,` + + `${JSON.stringify(key)},` + + `${JSON.stringify(keyCode)},` + + `$event.key,` + + `${JSON.stringify(keyName)}` + + `)`); +} + +function on(el, dir) { + el.wrapListeners = (code) => `_g(${code},${dir.value})`; +} + +function bind(el, dir) { + el.wrapData = (code) => { + return `_b(${code},'${el.tag}',${dir.value},${dir.modifiers && dir.modifiers.prop ? 'true' : 'false'}${dir.modifiers && dir.modifiers.sync ? ',true' : ''})`; + }; +} + +var baseDirectives = { + on, + bind, + cloak: noop +}; + +class CodegenState { + constructor(options) { + this.options = options; + this.warn = options.warn || baseWarn; + this.transforms = pluckModuleFunction(options.modules, 'transformCode'); + this.dataGenFns = pluckModuleFunction(options.modules, 'genData'); + this.directives = extend(extend({}, baseDirectives), options.directives); + const isReservedTag = options.isReservedTag || no; + this.maybeComponent = (el) => !!el.component || !isReservedTag(el.tag); + this.onceId = 0; + this.staticRenderFns = []; + this.pre = false; + } +} +function generate$1(ast, options) { + const state = new CodegenState(options); + // fix #11483, Root level <script> tags should not be rendered. + const code = ast + ? ast.tag === 'script' + ? 'null' + : genElement(ast, state) + : '_c("div")'; + return { + render: `with(this){return ${code}}`, + staticRenderFns: state.staticRenderFns + }; +} +function genElement(el, state) { + if (el.parent) { + el.pre = el.pre || el.parent.pre; + } + if (el.staticRoot && !el.staticProcessed) { + return genStatic(el, state); + } + else if (el.once && !el.onceProcessed) { + return genOnce(el, state); + } + else if (el.for && !el.forProcessed) { + return genFor(el, state); + } + else if (el.if && !el.ifProcessed) { + return genIf(el, state); + } + else if (el.tag === 'template' && !el.slotTarget && !state.pre) { + return genChildren(el, state) || 'void 0'; + } + else if (el.tag === 'slot') { + return genSlot(el, state); + } + else { + // component or element + let code; + if (el.component) { + code = genComponent(el.component, el, state); + } + else { + let data; + const maybeComponent = state.maybeComponent(el); + if (!el.plain || (el.pre && maybeComponent)) { + data = genData(el, state); + } + let tag; + // check if this is a component in <script setup> + const bindings = state.options.bindings; + if (maybeComponent && bindings && bindings.__isScriptSetup !== false) { + tag = checkBindingType(bindings, el.tag); + } + if (!tag) + tag = `'${el.tag}'`; + const children = el.inlineTemplate ? null : genChildren(el, state, true); + code = `_c(${tag}${data ? `,${data}` : '' // data + }${children ? `,${children}` : '' // children + })`; + } + // module transforms + for (let i = 0; i < state.transforms.length; i++) { + code = state.transforms[i](el, code); + } + return code; + } +} +function checkBindingType(bindings, key) { + const camelName = camelize(key); + const PascalName = capitalize(camelName); + const checkType = (type) => { + if (bindings[key] === type) { + return key; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const" /* BindingTypes.SETUP_CONST */) || + checkType("setup-reactive-const" /* BindingTypes.SETUP_REACTIVE_CONST */); + if (fromConst) { + return fromConst; + } + const fromMaybeRef = checkType("setup-let" /* BindingTypes.SETUP_LET */) || + checkType("setup-ref" /* BindingTypes.SETUP_REF */) || + checkType("setup-maybe-ref" /* BindingTypes.SETUP_MAYBE_REF */); + if (fromMaybeRef) { + return fromMaybeRef; + } +} +// hoist static sub-trees out +function genStatic(el, state) { + el.staticProcessed = true; + // Some elements (templates) need to behave differently inside of a v-pre + // node. All pre nodes are static roots, so we can use this as a location to + // wrap a state change and reset it upon exiting the pre node. + const originalPreState = state.pre; + if (el.pre) { + state.pre = el.pre; + } + state.staticRenderFns.push(`with(this){return ${genElement(el, state)}}`); + state.pre = originalPreState; + return `_m(${state.staticRenderFns.length - 1}${el.staticInFor ? ',true' : ''})`; +} +// v-once +function genOnce(el, state) { + el.onceProcessed = true; + if (el.if && !el.ifProcessed) { + return genIf(el, state); + } + else if (el.staticInFor) { + let key = ''; + let parent = el.parent; + while (parent) { + if (parent.for) { + key = parent.key; + break; + } + parent = parent.parent; + } + if (!key) { + return genElement(el, state); + } + return `_o(${genElement(el, state)},${state.onceId++},${key})`; + } + else { + return genStatic(el, state); + } +} +function genIf(el, state, altGen, altEmpty) { + el.ifProcessed = true; // avoid recursion + return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty); +} +function genIfConditions(conditions, state, altGen, altEmpty) { + if (!conditions.length) { + return altEmpty || '_e()'; + } + const condition = conditions.shift(); + if (condition.exp) { + return `(${condition.exp})?${genTernaryExp(condition.block)}:${genIfConditions(conditions, state, altGen, altEmpty)}`; + } + else { + return `${genTernaryExp(condition.block)}`; + } + // v-if with v-once should generate code like (a)?_m(0):_m(1) + function genTernaryExp(el) { + return altGen + ? altGen(el, state) + : el.once + ? genOnce(el, state) + : genElement(el, state); + } +} +function genFor(el, state, altGen, altHelper) { + const exp = el.for; + const alias = el.alias; + const iterator1 = el.iterator1 ? `,${el.iterator1}` : ''; + const iterator2 = el.iterator2 ? `,${el.iterator2}` : ''; + el.forProcessed = true; // avoid recursion + return (`${altHelper || '_l'}((${exp}),` + + `function(${alias}${iterator1}${iterator2}){` + + `return ${(altGen || genElement)(el, state)}` + + '})'); +} +function genData(el, state) { + let data = '{'; + // directives first. + // directives may mutate the el's other properties before they are generated. + const dirs = genDirectives(el, state); + if (dirs) + data += dirs + ','; + // key + if (el.key) { + data += `key:${el.key},`; + } + // ref + if (el.ref) { + data += `ref:${el.ref},`; + } + if (el.refInFor) { + data += `refInFor:true,`; + } + // pre + if (el.pre) { + data += `pre:true,`; + } + // record original tag name for components using "is" attribute + if (el.component) { + data += `tag:"${el.tag}",`; + } + // module data generation functions + for (let i = 0; i < state.dataGenFns.length; i++) { + data += state.dataGenFns[i](el); + } + // attributes + if (el.attrs) { + data += `attrs:${genProps(el.attrs)},`; + } + // DOM props + if (el.props) { + data += `domProps:${genProps(el.props)},`; + } + // event handlers + if (el.events) { + data += `${genHandlers(el.events, false)},`; + } + if (el.nativeEvents) { + data += `${genHandlers(el.nativeEvents, true)},`; + } + // slot target + // only for non-scoped slots + if (el.slotTarget && !el.slotScope) { + data += `slot:${el.slotTarget},`; + } + // scoped slots + if (el.scopedSlots) { + data += `${genScopedSlots(el, el.scopedSlots, state)},`; + } + // component v-model + if (el.model) { + data += `model:{value:${el.model.value},callback:${el.model.callback},expression:${el.model.expression}},`; + } + // inline-template + if (el.inlineTemplate) { + const inlineTemplate = genInlineTemplate(el, state); + if (inlineTemplate) { + data += `${inlineTemplate},`; + } + } + data = data.replace(/,$/, '') + '}'; + // v-bind dynamic argument wrap + // v-bind with dynamic arguments must be applied using the same v-bind object + // merge helper so that class/style/mustUseProp attrs are handled correctly. + if (el.dynamicAttrs) { + data = `_b(${data},"${el.tag}",${genProps(el.dynamicAttrs)})`; + } + // v-bind data wrap + if (el.wrapData) { + data = el.wrapData(data); + } + // v-on data wrap + if (el.wrapListeners) { + data = el.wrapListeners(data); + } + return data; +} +function genDirectives(el, state) { + const dirs = el.directives; + if (!dirs) + return; + let res = 'directives:['; + let hasRuntime = false; + let i, l, dir, needRuntime; + for (i = 0, l = dirs.length; i < l; i++) { + dir = dirs[i]; + needRuntime = true; + const gen = state.directives[dir.name]; + if (gen) { + // compile-time directive that manipulates AST. + // returns true if it also needs a runtime counterpart. + needRuntime = !!gen(el, dir, state.warn); + } + if (needRuntime) { + hasRuntime = true; + res += `{name:"${dir.name}",rawName:"${dir.rawName}"${dir.value + ? `,value:(${dir.value}),expression:${JSON.stringify(dir.value)}` + : ''}${dir.arg ? `,arg:${dir.isDynamicArg ? dir.arg : `"${dir.arg}"`}` : ''}${dir.modifiers ? `,modifiers:${JSON.stringify(dir.modifiers)}` : ''}},`; + } + } + if (hasRuntime) { + return res.slice(0, -1) + ']'; + } +} +function genInlineTemplate(el, state) { + const ast = el.children[0]; + if (ast && ast.type === 1) { + const inlineRenderFns = generate$1(ast, state.options); + return `inlineTemplate:{render:function(){${inlineRenderFns.render}},staticRenderFns:[${inlineRenderFns.staticRenderFns + .map(code => `function(){${code}}`) + .join(',')}]}`; + } +} +function genScopedSlots(el, slots, state) { + // by default scoped slots are considered "stable", this allows child + // components with only scoped slots to skip forced updates from parent. + // but in some cases we have to bail-out of this optimization + // for example if the slot contains dynamic names, has v-if or v-for on them... + let needsForceUpdate = el.for || + Object.keys(slots).some(key => { + const slot = slots[key]; + return (slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic + ); + }); + // #9534: if a component with scoped slots is inside a conditional branch, + // it's possible for the same component to be reused but with different + // compiled slot content. To avoid that, we generate a unique key based on + // the generated code of all the slot contents. + let needsKey = !!el.if; + // OR when it is inside another scoped slot or v-for (the reactivity may be + // disconnected due to the intermediate scope variable) + // #9438, #9506 + // TODO: this can be further optimized by properly analyzing in-scope bindings + // and skip force updating ones that do not actually use scope variables. + if (!needsForceUpdate) { + let parent = el.parent; + while (parent) { + if ((parent.slotScope && parent.slotScope !== emptySlotScopeToken) || + parent.for) { + needsForceUpdate = true; + break; + } + if (parent.if) { + needsKey = true; + } + parent = parent.parent; + } + } + const generatedSlots = Object.keys(slots) + .map(key => genScopedSlot(slots[key], state)) + .join(','); + return `scopedSlots:_u([${generatedSlots}]${needsForceUpdate ? `,null,true` : ``}${!needsForceUpdate && needsKey ? `,null,false,${hash(generatedSlots)}` : ``})`; +} +function hash(str) { + let hash = 5381; + let i = str.length; + while (i) { + hash = (hash * 33) ^ str.charCodeAt(--i); + } + return hash >>> 0; +} +function containsSlotChild(el) { + if (el.type === 1) { + if (el.tag === 'slot') { + return true; + } + return el.children.some(containsSlotChild); + } + return false; +} +function genScopedSlot(el, state) { + const isLegacySyntax = el.attrsMap['slot-scope']; + if (el.if && !el.ifProcessed && !isLegacySyntax) { + return genIf(el, state, genScopedSlot, `null`); + } + if (el.for && !el.forProcessed) { + return genFor(el, state, genScopedSlot); + } + const slotScope = el.slotScope === emptySlotScopeToken ? `` : String(el.slotScope); + const fn = `function(${slotScope}){` + + `return ${el.tag === 'template' + ? el.if && isLegacySyntax + ? `(${el.if})?${genChildren(el, state) || 'undefined'}:undefined` + : genChildren(el, state) || 'undefined' + : genElement(el, state)}}`; + // reverse proxy v-slot without scope on this.$slots + const reverseProxy = slotScope ? `` : `,proxy:true`; + return `{key:${el.slotTarget || `"default"`},fn:${fn}${reverseProxy}}`; +} +function genChildren(el, state, checkSkip, altGenElement, altGenNode) { + const children = el.children; + if (children.length) { + const el = children[0]; + // optimize single v-for + if (children.length === 1 && + el.for && + el.tag !== 'template' && + el.tag !== 'slot') { + const normalizationType = checkSkip + ? state.maybeComponent(el) + ? `,1` + : `,0` + : ``; + return `${(altGenElement || genElement)(el, state)}${normalizationType}`; + } + const normalizationType = checkSkip + ? getNormalizationType(children, state.maybeComponent) + : 0; + const gen = altGenNode || genNode; + return `[${children.map(c => gen(c, state)).join(',')}]${normalizationType ? `,${normalizationType}` : ''}`; + } +} +// determine the normalization needed for the children array. +// 0: no normalization needed +// 1: simple normalization needed (possible 1-level deep nested array) +// 2: full normalization needed +function getNormalizationType(children, maybeComponent) { + let res = 0; + for (let i = 0; i < children.length; i++) { + const el = children[i]; + if (el.type !== 1) { + continue; + } + if (needsNormalization(el) || + (el.ifConditions && + el.ifConditions.some(c => needsNormalization(c.block)))) { + res = 2; + break; + } + if (maybeComponent(el) || + (el.ifConditions && el.ifConditions.some(c => maybeComponent(c.block)))) { + res = 1; + } + } + return res; +} +function needsNormalization(el) { + return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'; +} +function genNode(node, state) { + if (node.type === 1) { + return genElement(node, state); + } + else if (node.type === 3 && node.isComment) { + return genComment(node); + } + else { + return genText(node); + } +} +function genText(text) { + return `_v(${text.type === 2 + ? text.expression // no need for () because already wrapped in _s() + : transformSpecialNewlines(JSON.stringify(text.text))})`; +} +function genComment(comment) { + return `_e(${JSON.stringify(comment.text)})`; +} +function genSlot(el, state) { + const slotName = el.slotName || '"default"'; + const children = genChildren(el, state); + let res = `_t(${slotName}${children ? `,function(){return ${children}}` : ''}`; + const attrs = el.attrs || el.dynamicAttrs + ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(attr => ({ + // slot props are camelized + name: camelize(attr.name), + value: attr.value, + dynamic: attr.dynamic + }))) + : null; + const bind = el.attrsMap['v-bind']; + if ((attrs || bind) && !children) { + res += `,null`; + } + if (attrs) { + res += `,${attrs}`; + } + if (bind) { + res += `${attrs ? '' : ',null'},${bind}`; + } + return res + ')'; +} +// componentName is el.component, take it as argument to shun flow's pessimistic refinement +function genComponent(componentName, el, state) { + const children = el.inlineTemplate ? null : genChildren(el, state, true); + return `_c(${componentName},${genData(el, state)}${children ? `,${children}` : ''})`; +} +function genProps(props) { + let staticProps = ``; + let dynamicProps = ``; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + const value = transformSpecialNewlines(prop.value); + if (prop.dynamic) { + dynamicProps += `${prop.name},${value},`; + } + else { + staticProps += `"${prop.name}":${value},`; + } + } + staticProps = `{${staticProps.slice(0, -1)}}`; + if (dynamicProps) { + return `_d(${staticProps},[${dynamicProps.slice(0, -1)}])`; + } + else { + return staticProps; + } +} +// #3895, #4268 +function transformSpecialNewlines(text) { + return text.replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); +} + +// these keywords should not appear inside expressions, but operators like +// typeof, instanceof and in are allowed +new RegExp('\\b' + + ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + + 'super,throw,while,yield,delete,export,import,return,switch,default,' + + 'extends,finally,continue,debugger,function,arguments') + .split(',') + .join('\\b|\\b') + + '\\b'); +// these unary operators should not be used as property/method names +new RegExp('\\b' + + 'delete,typeof,void'.split(',').join('\\s*\\([^\\)]*\\)|\\b') + + '\\s*\\([^\\)]*\\)'); + +const range$1 = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + const lines = source.split(/\r?\n/); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (let j = i - range$1; j <= i + range$1 || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + res.push(`${j + 1}${repeat$3(` `, 3 - String(j + 1).length)}| ${lines[j]}`); + const lineLength = lines[j].length; + if (j === i) { + // push underline + const pad = start - (count - lineLength) + 1; + const length = end > count ? lineLength - pad : end - start; + res.push(` | ` + repeat$3(` `, pad) + repeat$3(`^`, length)); + } + else if (j > i) { + if (end > count) { + const length = Math.min(end - count, lineLength); + res.push(` | ` + repeat$3(`^`, length)); + } + count += lineLength + 1; + } + } + break; + } + } + return res.join('\n'); +} +function repeat$3(str, n) { + let result = ''; + if (n > 0) { + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-line + if (n & 1) + result += str; + n >>>= 1; + if (n <= 0) + break; + str += str; + } + } + return result; +} + +function createFunction(code, errors) { + try { + return new Function(code); + } + catch (err) { + errors.push({ err, code }); + return noop; + } +} +function createCompileToFunctionFn(compile) { + const cache = Object.create(null); + return function compileToFunctions(template, options, vm) { + options = extend({}, options); + options.warn || warn$2; + delete options.warn; + // check cache + const key = options.delimiters + ? String(options.delimiters) + template + : template; + if (cache[key]) { + return cache[key]; + } + // compile + const compiled = compile(template, options); + // turn code into functions + const res = {}; + const fnGenErrors = []; + res.render = createFunction(compiled.render, fnGenErrors); + res.staticRenderFns = compiled.staticRenderFns.map(code => { + return createFunction(code, fnGenErrors); + }); + return (cache[key] = res); + }; +} + +function createCompilerCreator(baseCompile) { + return function createCompiler(baseOptions) { + function compile(template, options) { + const finalOptions = Object.create(baseOptions); + const errors = []; + const tips = []; + let warn = (msg, range, tip) => { + (tip ? tips : errors).push(msg); + }; + if (options) { + // merge custom modules + if (options.modules) { + finalOptions.modules = (baseOptions.modules || []).concat(options.modules); + } + // merge custom directives + if (options.directives) { + finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives); + } + // copy other options + for (const key in options) { + if (key !== 'modules' && key !== 'directives') { + finalOptions[key] = options[key]; + } + } + } + finalOptions.warn = warn; + const compiled = baseCompile(template.trim(), finalOptions); + compiled.errors = errors; + compiled.tips = tips; + return compiled; + } + return { + compile, + compileToFunctions: createCompileToFunctionFn(compile) + }; + }; +} + +// `createCompilerCreator` allows creating compilers that use alternative +// parser/optimizer/codegen, e.g the SSR optimizing compiler. +// Here we just export a default compiler using the default parts. +const createCompiler$1 = createCompilerCreator(function baseCompile(template, options) { + const ast = parse$a(template.trim(), options); + if (options.optimize !== false) { + optimize$1(ast, options); + } + const code = generate$1(ast, options); + return { + ast, + render: code.render, + staticRenderFns: code.staticRenderFns + }; +}); + +const { compile: compile$1, compileToFunctions: compileToFunctions$1 } = createCompiler$1(baseOptions); + +const isAttr = makeMap('accept,accept-charset,accesskey,action,align,alt,async,autocomplete,' + + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,' + + 'checked,cite,class,code,codebase,color,cols,colspan,content,' + + 'contenteditable,contextmenu,controls,coords,data,datetime,default,' + + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,for,' + + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,' + + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,' + + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,' + + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,' + + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,' + + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,' + + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,' + + 'target,title,usemap,value,width,wrap'); +/* istanbul ignore next */ +const isRenderableAttr = (name) => { + return (isAttr(name) || name.indexOf('data-') === 0 || name.indexOf('aria-') === 0); +}; +const propsToAttrMap = { + acceptCharset: 'accept-charset', + className: 'class', + htmlFor: 'for', + httpEquiv: 'http-equiv' +}; +const ESC = { + '<': '<', + '>': '>', + '"': '"', + '&': '&' +}; +function escape(s) { + return s.replace(/[<>"&]/g, escapeChar); +} +function escapeChar(a) { + return ESC[a] || a; +} + +const plainStringRE = /^"(?:[^"\\]|\\.)*"$|^'(?:[^'\\]|\\.)*'$/; +// let the model AST transform translate v-model into appropriate +// props bindings +function applyModelTransform(el, state) { + if (el.directives) { + for (let i = 0; i < el.directives.length; i++) { + const dir = el.directives[i]; + if (dir.name === 'model') { + state.directives.model(el, dir, state.warn); + // remove value for textarea as its converted to text + if (el.tag === 'textarea' && el.props) { + el.props = el.props.filter(p => p.name !== 'value'); + } + break; + } + } + } +} +function genAttrSegments(attrs) { + return attrs.map(({ name, value }) => genAttrSegment(name, value)); +} +function genDOMPropSegments(props, attrs) { + const segments = []; + props.forEach(({ name, value }) => { + name = propsToAttrMap[name] || name.toLowerCase(); + if (isRenderableAttr(name) && + !(attrs && attrs.some(a => a.name === name))) { + segments.push(genAttrSegment(name, value)); + } + }); + return segments; +} +function genAttrSegment(name, value) { + if (plainStringRE.test(value)) { + // force double quote + value = value.replace(/^'|'$/g, '"'); + // force enumerated attr to "true" + if (isEnumeratedAttr(name) && value !== `"false"`) { + value = `"true"`; + } + return { + type: RAW, + value: isBooleanAttr(name) + ? ` ${name}="${name}"` + : value === '""' + ? ` ${name}` + : ` ${name}="${JSON.parse(value)}"` + }; + } + else { + return { + type: EXPRESSION, + value: `_ssrAttr(${JSON.stringify(name)},${value})` + }; + } +} +function genClassSegments(staticClass, classBinding) { + if (staticClass && !classBinding) { + return [{ type: RAW, value: ` class="${JSON.parse(staticClass)}"` }]; + } + else { + return [ + { + type: EXPRESSION, + value: `_ssrClass(${staticClass || 'null'},${classBinding || 'null'})` + } + ]; + } +} +function genStyleSegments(staticStyle, parsedStaticStyle, styleBinding, vShowExpression) { + if (staticStyle && !styleBinding && !vShowExpression) { + return [{ type: RAW, value: ` style=${JSON.stringify(staticStyle)}` }]; + } + else { + return [ + { + type: EXPRESSION, + value: `_ssrStyle(${parsedStaticStyle || 'null'},${styleBinding || 'null'}, ${vShowExpression + ? `{ display: (${vShowExpression}) ? '' : 'none' }` + : 'null'})` + } + ]; + } +} + +/** + * In SSR, the vdom tree is generated only once and never patched, so + * we can optimize most element / trees into plain string render functions. + * The SSR optimizer walks the AST tree to detect optimizable elements and trees. + * + * The criteria for SSR optimizability is quite a bit looser than static tree + * detection (which is designed for client re-render). In SSR we bail only for + * components/slots/custom directives. + */ +// optimizability constants +const optimizability = { + FALSE: 0, + FULL: 1, + SELF: 2, + CHILDREN: 3, + PARTIAL: 4 // self un-optimizable with some un-optimizable children +}; +let isPlatformReservedTag; +function optimize(root, options) { + if (!root) + return; + isPlatformReservedTag = options.isReservedTag || no; + walk(root, true); +} +function walk(node, isRoot) { + if (isUnOptimizableTree(node)) { + node.ssrOptimizability = optimizability.FALSE; + return; + } + // root node or nodes with custom directives should always be a VNode + const selfUnoptimizable = isRoot || hasCustomDirective(node); + const check = child => { + if (child.ssrOptimizability !== optimizability.FULL) { + node.ssrOptimizability = selfUnoptimizable + ? optimizability.PARTIAL + : optimizability.SELF; + } + }; + if (selfUnoptimizable) { + node.ssrOptimizability = optimizability.CHILDREN; + } + if (node.type === 1) { + for (let i = 0, l = node.children.length; i < l; i++) { + const child = node.children[i]; + walk(child); + check(child); + } + if (node.ifConditions) { + for (let i = 1, l = node.ifConditions.length; i < l; i++) { + const block = node.ifConditions[i].block; + walk(block, isRoot); + check(block); + } + } + if (node.ssrOptimizability == null || + (!isRoot && (node.attrsMap['v-html'] || node.attrsMap['v-text']))) { + node.ssrOptimizability = optimizability.FULL; + } + else { + node.children = optimizeSiblings(node); + } + } + else { + node.ssrOptimizability = optimizability.FULL; + } +} +function optimizeSiblings(el) { + const children = el.children; + const optimizedChildren = []; + let currentOptimizableGroup = []; + const pushGroup = () => { + if (currentOptimizableGroup.length) { + optimizedChildren.push({ + type: 1, + parent: el, + tag: 'template', + attrsList: [], + attrsMap: {}, + rawAttrsMap: {}, + children: currentOptimizableGroup, + ssrOptimizability: optimizability.FULL + }); + } + currentOptimizableGroup = []; + }; + for (let i = 0; i < children.length; i++) { + const c = children[i]; + if (c.ssrOptimizability === optimizability.FULL) { + currentOptimizableGroup.push(c); + } + else { + // wrap fully-optimizable adjacent siblings inside a template tag + // so that they can be optimized into a single ssrNode by codegen + pushGroup(); + optimizedChildren.push(c); + } + } + pushGroup(); + return optimizedChildren; +} +function isUnOptimizableTree(node) { + if (node.type === 2 || node.type === 3) { + // text or expression + return false; + } + return (isBuiltInTag(node.tag) || // built-in (slot, component) + !isPlatformReservedTag(node.tag) || // custom component + !!node.component || // "is" component + isSelectWithModel(node) // <select v-model> requires runtime inspection + ); +} +const isBuiltInDir = makeMap('text,html,show,on,bind,model,pre,cloak,once'); +function hasCustomDirective(node) { + return (node.type === 1 && + node.directives && + node.directives.some(d => !isBuiltInDir(d.name))); +} +// <select v-model> cannot be optimized because it requires a runtime check +// to determine proper selected option +function isSelectWithModel(node) { + return (node.type === 1 && + node.tag === 'select' && + node.directives != null && + node.directives.some(d => d.name === 'model')); +} + +// The SSR codegen is essentially extending the default codegen to handle +// segment types +const RAW = 0; +const INTERPOLATION = 1; +const EXPRESSION = 2; +function generate(ast, options) { + const state = new CodegenState(options); + const code = ast ? genSSRElement(ast, state) : '_c("div")'; + return { + render: `with(this){return ${code}}`, + staticRenderFns: state.staticRenderFns + }; +} +function genSSRElement(el, state) { + if (el.for && !el.forProcessed) { + return genFor(el, state, genSSRElement); + } + else if (el.if && !el.ifProcessed) { + return genIf(el, state, genSSRElement); + } + else if (el.tag === 'template' && !el.slotTarget) { + return el.ssrOptimizability === optimizability.FULL + ? genChildrenAsStringNode(el, state) + : genSSRChildren(el, state) || 'void 0'; + } + switch (el.ssrOptimizability) { + case optimizability.FULL: + // stringify whole tree + return genStringElement(el, state); + case optimizability.SELF: + // stringify self and check children + return genStringElementWithChildren(el, state); + case optimizability.CHILDREN: + // generate self as VNode and stringify children + return genNormalElement(el, state, true); + case optimizability.PARTIAL: + // generate self as VNode and check children + return genNormalElement(el, state, false); + default: + // bail whole tree + return genElement(el, state); + } +} +function genNormalElement(el, state, stringifyChildren) { + const data = el.plain ? undefined : genData(el, state); + const children = stringifyChildren + ? `[${genChildrenAsStringNode(el, state)}]` + : genSSRChildren(el, state, true); + return `_c('${el.tag}'${data ? `,${data}` : ''}${children ? `,${children}` : ''})`; +} +function genSSRChildren(el, state, checkSkip) { + return genChildren(el, state, checkSkip, genSSRElement, genSSRNode); +} +function genSSRNode(el, state) { + return el.type === 1 ? genSSRElement(el, state) : genText(el); +} +function genChildrenAsStringNode(el, state) { + return el.children.length + ? `_ssrNode(${flattenSegments(childrenToSegments(el, state))})` + : ''; +} +function genStringElement(el, state) { + return `_ssrNode(${elementToString(el, state)})`; +} +function genStringElementWithChildren(el, state) { + const children = genSSRChildren(el, state, true); + return `_ssrNode(${flattenSegments(elementToOpenTagSegments(el, state))},"</${el.tag}>"${children ? `,${children}` : ''})`; +} +function elementToString(el, state) { + return `(${flattenSegments(elementToSegments(el, state))})`; +} +function elementToSegments(el, state) { + // v-for / v-if + if (el.for && !el.forProcessed) { + el.forProcessed = true; + return [ + { + type: EXPRESSION, + value: genFor(el, state, elementToString, '_ssrList') + } + ]; + } + else if (el.if && !el.ifProcessed) { + el.ifProcessed = true; + return [ + { + type: EXPRESSION, + value: genIf(el, state, elementToString, '"<!---->"') + } + ]; + } + else if (el.tag === 'template') { + return childrenToSegments(el, state); + } + const openSegments = elementToOpenTagSegments(el, state); + const childrenSegments = childrenToSegments(el, state); + const { isUnaryTag } = state.options; + const close = isUnaryTag && isUnaryTag(el.tag) + ? [] + : [{ type: RAW, value: `</${el.tag}>` }]; + return openSegments.concat(childrenSegments, close); +} +function elementToOpenTagSegments(el, state) { + applyModelTransform(el, state); + let binding; + const segments = [{ type: RAW, value: `<${el.tag}` }]; + // attrs + if (el.attrs) { + segments.push.apply(segments, genAttrSegments(el.attrs)); + } + // domProps + if (el.props) { + segments.push.apply(segments, genDOMPropSegments(el.props, el.attrs)); + } + // v-bind="object" + if ((binding = el.attrsMap['v-bind'])) { + segments.push({ type: EXPRESSION, value: `_ssrAttrs(${binding})` }); + } + // v-bind.prop="object" + if ((binding = el.attrsMap['v-bind.prop'])) { + segments.push({ type: EXPRESSION, value: `_ssrDOMProps(${binding})` }); + } + // class + if (el.staticClass || el.classBinding) { + segments.push.apply(segments, genClassSegments(el.staticClass, el.classBinding)); + } + // style & v-show + if (el.staticStyle || el.styleBinding || el.attrsMap['v-show']) { + segments.push.apply(segments, genStyleSegments(el.attrsMap.style, el.staticStyle, el.styleBinding, el.attrsMap['v-show'])); + } + // _scopedId + if (state.options.scopeId) { + segments.push({ type: RAW, value: ` ${state.options.scopeId}` }); + } + segments.push({ type: RAW, value: `>` }); + return segments; +} +function childrenToSegments(el, state) { + let binding; + if ((binding = el.attrsMap['v-html'])) { + return [{ type: EXPRESSION, value: `_s(${binding})` }]; + } + if ((binding = el.attrsMap['v-text'])) { + return [{ type: INTERPOLATION, value: `_s(${binding})` }]; + } + if (el.tag === 'textarea' && (binding = el.attrsMap['v-model'])) { + return [{ type: INTERPOLATION, value: `_s(${binding})` }]; + } + return el.children ? nodesToSegments(el.children, state) : []; +} +function nodesToSegments(children, state) { + const segments = []; + for (let i = 0; i < children.length; i++) { + const c = children[i]; + if (c.type === 1) { + segments.push.apply(segments, elementToSegments(c, state)); + } + else if (c.type === 2) { + segments.push({ type: INTERPOLATION, value: c.expression }); + } + else if (c.type === 3) { + let text = escape(c.text); + if (c.isComment) { + text = '<!--' + text + '-->'; + } + segments.push({ type: RAW, value: text }); + } + } + return segments; +} +function flattenSegments(segments) { + const mergedSegments = []; + let textBuffer = ''; + const pushBuffer = () => { + if (textBuffer) { + mergedSegments.push(JSON.stringify(textBuffer)); + textBuffer = ''; + } + }; + for (let i = 0; i < segments.length; i++) { + const s = segments[i]; + if (s.type === RAW) { + textBuffer += s.value; + } + else if (s.type === INTERPOLATION) { + pushBuffer(); + mergedSegments.push(`_ssrEscape(${s.value})`); + } + else if (s.type === EXPRESSION) { + pushBuffer(); + mergedSegments.push(`(${s.value})`); + } + } + pushBuffer(); + return mergedSegments.join('+'); +} + +const createCompiler = createCompilerCreator(function baseCompile(template, options) { + const ast = parse$a(template.trim(), options); + optimize(ast, options); + const code = generate(ast, options); + return { + ast, + render: code.render, + staticRenderFns: code.staticRenderFns + }; +}); + +const { compile: compile$2, compileToFunctions } = createCompiler(baseOptions); + +build.compile = compile$1; +build.compileToFunctions = compileToFunctions$1; +build.generateCodeFrame = generateCodeFrame; +build.parseComponent = parseComponent; +build.ssrCompile = compile$2; +build.ssrCompileToFunctions = compileToFunctions; + +Object.defineProperty(vue2TemplateCompiler, "__esModule", { value: true }); +vue2TemplateCompiler.compile = void 0; +const CompilerDOM$1 = compilerDom_cjs; +const Vue2TemplateCompiler = build; +const compile = (template, options = {}) => { + if (typeof template !== 'string') { + throw new Error(`[@vue/language-core] compile() first argument must be string.`); + } + const onError = options.onError; + const onWarn = options.onWarn; + options.onError = error => { + if (error.code === 33 // :key binding allowed in v-for template child in vue 2 + || error.code === 29 // fix https://github.com/vuejs/language-tools/issues/1638 + ) { + return; + } + if (onError) { + onError(error); + } + else { + throw error; + } + }; + const vue2Result = Vue2TemplateCompiler.compile(template, { outputSourceRange: true }); + for (const error of vue2Result.errors) { + onError?.({ + code: 'vue-template-compiler', + name: '', + message: error.msg, + loc: { + source: '', + start: { column: -1, line: -1, offset: error.start }, + end: { column: -1, line: -1, offset: error.end ?? error.start }, + }, + }); + } + for (const error of vue2Result.tips) { + onWarn?.({ + code: 'vue-template-compiler', + name: '', + message: error.msg, + loc: { + source: '', + start: { column: -1, line: -1, offset: error.start }, + end: { column: -1, line: -1, offset: error.end ?? error.start }, + }, + }); + } + return baseCompile(template, Object.assign({}, CompilerDOM$1.parserOptions, options, { + nodeTransforms: [ + ...CompilerDOM$1.DOMNodeTransforms, + ...(options.nodeTransforms || []) + ], + directiveTransforms: Object.assign({}, CompilerDOM$1.DOMDirectiveTransforms, options.directiveTransforms || {}), + })); +}; +vue2TemplateCompiler.compile = compile; +function baseCompile(template, options = {}) { + const onError = options.onError || (error => { throw error; }); + const isModuleMode = options.mode === 'module'; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(CompilerDOM$1.createCompilerError(49)); + } + if (options.scopeId && !isModuleMode) { + onError(CompilerDOM$1.createCompilerError(50)); + } + const ast = CompilerDOM$1.baseParse(template, options); + const [nodeTransforms, directiveTransforms] = CompilerDOM$1.getBaseTransformPreset(prefixIdentifiers); + // v-for > v-if in vue 2 + const transformIf = nodeTransforms[1]; + const transformFor = nodeTransforms[3]; + nodeTransforms[1] = transformFor; + nodeTransforms[3] = transformIf; + CompilerDOM$1.transform(ast, Object.assign({}, options, { + prefixIdentifiers, + nodeTransforms: [ + ...nodeTransforms, + ...(options.nodeTransforms || []) // user transforms + ], + directiveTransforms: Object.assign({}, directiveTransforms, options.directiveTransforms || {} // user transforms + ) + })); + return CompilerDOM$1.generate(ast, Object.assign({}, options, { + prefixIdentifiers + })); +} + +var vueFile = {}; + +var computedEmbeddedCodes$1 = {}; + +var embeddedFile = {}; + +Object.defineProperty(embeddedFile, "__esModule", { value: true }); +embeddedFile.VueEmbeddedCode = void 0; +class VueEmbeddedCode { + constructor(id, lang, content) { + this.id = id; + this.lang = lang; + this.content = content; + this.linkedCodeMappings = []; + this.embeddedCodes = []; + } +} +embeddedFile.VueEmbeddedCode = VueEmbeddedCode; + +Object.defineProperty(computedEmbeddedCodes$1, "__esModule", { value: true }); +computedEmbeddedCodes$1.computedEmbeddedCodes = computedEmbeddedCodes; +computedEmbeddedCodes$1.resolveCommonLanguageId = resolveCommonLanguageId; +const computeds_1$4 = out$1; +const muggle_string_1 = out$2; +const buildMappings_1 = buildMappings$1; +const embeddedFile_1 = embeddedFile; +function computedEmbeddedCodes(plugins, fileName, sfc) { + const nameToBlock = (0, computeds_1$4.computed)(() => { + const blocks = {}; + if (sfc.template) { + blocks[sfc.template.name] = sfc.template; + } + if (sfc.script) { + blocks[sfc.script.name] = sfc.script; + } + if (sfc.scriptSetup) { + blocks[sfc.scriptSetup.name] = sfc.scriptSetup; + } + for (const block of sfc.styles) { + blocks[block.name] = block; + } + for (const block of sfc.customBlocks) { + blocks[block.name] = block; + } + return blocks; + }); + const pluginsResult = plugins.map(plugin => computedPluginEmbeddedCodes(plugins, plugin, fileName, sfc, nameToBlock)); + const flatResult = (0, computeds_1$4.computed)(() => pluginsResult.map(r => r()).flat()); + const structuredResult = (0, computeds_1$4.computed)(() => { + const embeddedCodes = []; + let remain = [...flatResult()]; + while (remain.length) { + const beforeLength = remain.length; + consumeRemain(); + if (beforeLength === remain.length) { + break; + } + } + for (const { code } of remain) { + console.error('Unable to resolve embedded: ' + code.parentCodeId + ' -> ' + code.id); + } + return embeddedCodes; + function consumeRemain() { + for (let i = remain.length - 1; i >= 0; i--) { + const { code, snapshot, mappings } = remain[i]; + if (!code.parentCodeId) { + embeddedCodes.push({ + id: code.id, + languageId: resolveCommonLanguageId(code.lang), + linkedCodeMappings: code.linkedCodeMappings, + snapshot, + mappings, + embeddedCodes: [], + }); + remain.splice(i, 1); + } + else { + const parent = findParentStructure(code.parentCodeId, embeddedCodes); + if (parent) { + parent.embeddedCodes ??= []; + parent.embeddedCodes.push({ + id: code.id, + languageId: resolveCommonLanguageId(code.lang), + linkedCodeMappings: code.linkedCodeMappings, + snapshot, + mappings, + embeddedCodes: [], + }); + remain.splice(i, 1); + } + } + } + } + function findParentStructure(id, current) { + for (const child of current) { + if (child.id === id) { + return child; + } + let parent = findParentStructure(id, child.embeddedCodes ?? []); + if (parent) { + return parent; + } + } + } + }); + return structuredResult; +} +function computedPluginEmbeddedCodes(plugins, plugin, fileName, sfc, nameToBlock) { + const computeds = new Map(); + const getComputedKey = (code) => code.id + '__' + code.lang; + const codes = (0, computeds_1$4.computed)(() => { + try { + if (!plugin.getEmbeddedCodes) { + return [...computeds.values()]; + } + const embeddedCodeInfos = plugin.getEmbeddedCodes(fileName, sfc); + for (const oldId of computeds.keys()) { + if (!embeddedCodeInfos.some(code => getComputedKey(code) === oldId)) { + computeds.delete(oldId); + } + } + for (const codeInfo of embeddedCodeInfos) { + if (!computeds.has(getComputedKey(codeInfo))) { + computeds.set(getComputedKey(codeInfo), (0, computeds_1$4.computed)(() => { + const content = []; + const code = new embeddedFile_1.VueEmbeddedCode(codeInfo.id, codeInfo.lang, content); + for (const plugin of plugins) { + if (!plugin.resolveEmbeddedCode) { + continue; + } + try { + plugin.resolveEmbeddedCode(fileName, sfc, code); + } + catch (e) { + console.error(e); + } + } + const newText = (0, muggle_string_1.toString)(code.content); + const changeRanges = new Map(); + const snapshot = { + getText: (start, end) => newText.slice(start, end), + getLength: () => newText.length, + getChangeRange(oldSnapshot) { + if (!changeRanges.has(oldSnapshot)) { + changeRanges.set(oldSnapshot, undefined); + const oldText = oldSnapshot.getText(0, oldSnapshot.getLength()); + const changeRange = fullDiffTextChangeRange(oldText, newText); + if (changeRange) { + changeRanges.set(oldSnapshot, changeRange); + } + } + return changeRanges.get(oldSnapshot); + }, + }; + return { + code, + snapshot, + }; + })); + } + } + } + catch (e) { + console.error(e); + } + return [...computeds.values()]; + }); + return (0, computeds_1$4.computed)(() => { + return codes().map(_file => { + const { code, snapshot } = _file(); + const mappings = (0, buildMappings_1.buildMappings)(code.content.map(segment => { + if (typeof segment === 'string') { + return segment; + } + const source = segment[1]; + if (source === undefined) { + return segment; + } + const block = nameToBlock()[source]; + if (!block) { + // console.warn('Unable to find block: ' + source); + return segment; + } + return [ + segment[0], + undefined, + segment[2] + block.startTagEnd, + segment[3], + ]; + })); + const newMappings = []; + let lastValidMapping; + for (let i = 0; i < mappings.length; i++) { + const mapping = mappings[i]; + if (mapping.data.__combineOffsetMapping !== undefined) { + const offsetMapping = mappings[i - mapping.data.__combineOffsetMapping]; + if (typeof offsetMapping === 'string' || !offsetMapping) { + throw new Error('Invalid offset mapping, mappings: ' + mappings.length + ', i: ' + i + ', offset: ' + mapping.data.__combineOffsetMapping); + } + offsetMapping.sourceOffsets.push(...mapping.sourceOffsets); + offsetMapping.generatedOffsets.push(...mapping.generatedOffsets); + offsetMapping.lengths.push(...mapping.lengths); + continue; + } + else if (mapping.data.__combineLastMapping) { + lastValidMapping.sourceOffsets.push(...mapping.sourceOffsets); + lastValidMapping.generatedOffsets.push(...mapping.generatedOffsets); + lastValidMapping.lengths.push(...mapping.lengths); + continue; + } + else { + lastValidMapping = mapping; + } + newMappings.push(mapping); + } + return { + code, + snapshot, + mappings: newMappings, + }; + }); + }); +} +function fullDiffTextChangeRange(oldText, newText) { + for (let start = 0; start < oldText.length && start < newText.length; start++) { + if (oldText[start] !== newText[start]) { + let end = oldText.length; + for (let i = 0; i < oldText.length - start && i < newText.length - start; i++) { + if (oldText[oldText.length - i - 1] !== newText[newText.length - i - 1]) { + break; + } + end--; + } + let length = end - start; + let newLength = length + (newText.length - oldText.length); + if (newLength < 0) { + length -= newLength; + newLength = 0; + } + return { + span: { start, length }, + newLength, + }; + } + } +} +function resolveCommonLanguageId(lang) { + switch (lang) { + case 'js': return 'javascript'; + case 'cjs': return 'javascript'; + case 'mjs': return 'javascript'; + case 'ts': return 'typescript'; + case 'cts': return 'typescript'; + case 'mts': return 'typescript'; + case 'jsx': return 'javascriptreact'; + case 'tsx': return 'typescriptreact'; + case 'pug': return 'jade'; + case 'md': return 'markdown'; + } + return lang; +} + +var computedSfc$1 = {}; + +var parseCssClassNames$1 = {}; + +var parseCssVars$1 = {}; + +// https://github.com/vuejs/core/blob/main/packages/compiler-sfc/src/cssVars.ts#L47-L61 +Object.defineProperty(parseCssVars$1, "__esModule", { value: true }); +parseCssVars$1.parseCssVars = parseCssVars; +parseCssVars$1.clearComments = clearComments; +const vBindCssVarReg = /\bv-bind\(\s*(?:'([^']+)'|"([^"]+)"|([a-z_]\w*))\s*\)/gi; +const commentReg1 = /\/\*([\s\S]*?)\*\//g; +const commentReg2 = /\/\/([\s\S]*?)\n/g; +function* parseCssVars(styleContent) { + styleContent = clearComments(styleContent); + const matchs = styleContent.matchAll(vBindCssVarReg); + for (const match of matchs) { + const matchText = match.slice(1).find(t => t); + if (matchText) { + const offset = match.index + styleContent.slice(match.index).indexOf(matchText); + yield { offset, text: matchText }; + } + } +} +function clearComments(css) { + return css + .replace(commentReg1, match => `/*${' '.repeat(match.length - 4)}*/`) + .replace(commentReg2, match => `//${' '.repeat(match.length - 3)}\n`); +} + +Object.defineProperty(parseCssClassNames$1, "__esModule", { value: true }); +parseCssClassNames$1.parseCssClassNames = parseCssClassNames; +const parseCssVars_1$1 = parseCssVars$1; +const cssClassNameReg = /(?=(\.[a-z_][-\w]*)[\s.,+~>:#[{])/gi; +function* parseCssClassNames(styleContent) { + styleContent = (0, parseCssVars_1$1.clearComments)(styleContent); + const matches = styleContent.matchAll(cssClassNameReg); + for (const match of matches) { + const matchText = match[1]; + if (matchText) { + yield { offset: match.index, text: matchText }; + } + } +} + +Object.defineProperty(computedSfc$1, "__esModule", { value: true }); +computedSfc$1.computedSfc = computedSfc; +const computeds_1$3 = out$1; +const parseCssClassNames_1 = parseCssClassNames$1; +const parseCssVars_1 = parseCssVars$1; +function computedSfc(ts, plugins, fileName, getSnapshot, parsed) { + const untrackedSnapshot = () => { + (0, computeds_1$3.pauseTracking)(); + const res = getSnapshot(); + (0, computeds_1$3.resetTracking)(); + return res; + }; + const content = (0, computeds_1$3.computed)(() => { + const snapshot = getSnapshot(); + return snapshot.getText(0, snapshot.getLength()); + }); + const template = computedNullableSfcBlock('template', 'html', (0, computeds_1$3.computed)(() => parsed()?.descriptor.template ?? undefined), (_block, base) => { + const compiledAst = computedTemplateAst(base); + return mergeObject(base, { + get ast() { return compiledAst()?.ast; }, + get errors() { return compiledAst()?.errors; }, + get warnings() { return compiledAst()?.warnings; }, + }); + }); + const script = computedNullableSfcBlock('script', 'js', (0, computeds_1$3.computed)(() => parsed()?.descriptor.script ?? undefined), (block, base) => { + const src = (0, computeds_1$3.computed)(() => block().src); + const srcOffset = (0, computeds_1$3.computed)(() => { + const _src = src(); + return _src ? untrackedSnapshot().getText(0, base.startTagEnd).lastIndexOf(_src) - base.startTagEnd : -1; + }); + const ast = (0, computeds_1$3.computed)(() => { + for (const plugin of plugins) { + const ast = plugin.compileSFCScript?.(base.lang, base.content); + if (ast) { + return ast; + } + } + return ts.createSourceFile(fileName + '.' + base.lang, '', 99); + }); + return mergeObject(base, { + get src() { return src(); }, + get srcOffset() { return srcOffset(); }, + get ast() { return ast(); }, + }); + }); + const scriptSetupOriginal = computedNullableSfcBlock('scriptSetup', 'js', (0, computeds_1$3.computed)(() => parsed()?.descriptor.scriptSetup ?? undefined), (block, base) => { + const generic = (0, computeds_1$3.computed)(() => { + const _block = block(); + return typeof _block.attrs.generic === 'string' ? _block.attrs.generic : undefined; + }); + const genericOffset = (0, computeds_1$3.computed)(() => { + const _generic = generic(); + return _generic !== undefined ? untrackedSnapshot().getText(0, base.startTagEnd).lastIndexOf(_generic) - base.startTagEnd : -1; + }); + const ast = (0, computeds_1$3.computed)(() => { + for (const plugin of plugins) { + const ast = plugin.compileSFCScript?.(base.lang, base.content); + if (ast) { + return ast; + } + } + return ts.createSourceFile(fileName + '.' + base.lang, '', 99); + }); + return mergeObject(base, { + get generic() { return generic(); }, + get genericOffset() { return genericOffset(); }, + get ast() { return ast(); }, + }); + }); + const hasScript = (0, computeds_1$3.computed)(() => !!parsed()?.descriptor.script); + const hasScriptSetup = (0, computeds_1$3.computed)(() => !!parsed()?.descriptor.scriptSetup); + const scriptSetup = (0, computeds_1$3.computed)(() => { + if (!hasScript() && !hasScriptSetup()) { + //#region monkey fix: https://github.com/vuejs/language-tools/pull/2113 + return { + content: '', + lang: 'ts', + name: '', + start: 0, + end: 0, + startTagEnd: 0, + endTagStart: 0, + generic: undefined, + genericOffset: 0, + attrs: {}, + ast: ts.createSourceFile('', '', 99, false, ts.ScriptKind.TS), + }; + } + return scriptSetupOriginal(); + }); + const styles = (0, computeds_1$3.computedArray)((0, computeds_1$3.computed)(() => parsed()?.descriptor.styles ?? []), (block, i) => { + const base = computedSfcBlock('style_' + i, 'css', block); + const module = (0, computeds_1$3.computed)(() => { + const _module = block().module; + return _module ? { + name: _module.name, + offset: _module.offset ? base.start + _module.offset : undefined + } : undefined; + }); + const scoped = (0, computeds_1$3.computed)(() => !!block().scoped); + const cssVars = (0, computeds_1$3.computed)(() => [...(0, parseCssVars_1.parseCssVars)(base.content)]); + const classNames = (0, computeds_1$3.computed)(() => [...(0, parseCssClassNames_1.parseCssClassNames)(base.content)]); + return (0, computeds_1$3.computed)(() => mergeObject(base, { + get module() { return module(); }, + get scoped() { return scoped(); }, + get cssVars() { return cssVars(); }, + get classNames() { return classNames(); }, + })); + }); + const customBlocks = (0, computeds_1$3.computedArray)((0, computeds_1$3.computed)(() => parsed()?.descriptor.customBlocks ?? []), (block, i) => { + const base = computedSfcBlock('custom_block_' + i, 'txt', block); + const type = (0, computeds_1$3.computed)(() => block().type); + return (0, computeds_1$3.computed)(() => mergeObject(base, { + get type() { return type(); }, + })); + }); + return { + get content() { return content(); }, + get template() { return template(); }, + get script() { return script(); }, + get scriptSetup() { return scriptSetup(); }, + get styles() { return styles; }, + get customBlocks() { return customBlocks; }, + }; + function computedTemplateAst(base) { + let cache; + return (0, computeds_1$3.computed)(() => { + if (cache?.template === base.content) { + return { + errors: [], + warnings: [], + ast: cache?.result.ast, + }; + } + // incremental update + if (cache?.plugin.updateSFCTemplate) { + const change = untrackedSnapshot().getChangeRange(cache.snapshot); + if (change) { + (0, computeds_1$3.pauseTracking)(); + const templateOffset = base.startTagEnd; + (0, computeds_1$3.resetTracking)(); + const newText = untrackedSnapshot().getText(change.span.start, change.span.start + change.newLength); + const newResult = cache.plugin.updateSFCTemplate(cache.result, { + start: change.span.start - templateOffset, + end: change.span.start + change.span.length - templateOffset, + newText, + }); + if (newResult) { + cache.template = base.content; + cache.snapshot = untrackedSnapshot(); + cache.result = newResult; + return { + errors: [], + warnings: [], + ast: newResult.ast, + }; + } + } + } + const errors = []; + const warnings = []; + let options = { + onError: (err) => errors.push(err), + onWarn: (err) => warnings.push(err), + expressionPlugins: ['typescript'], + }; + for (const plugin of plugins) { + if (plugin.resolveTemplateCompilerOptions) { + options = plugin.resolveTemplateCompilerOptions(options); + } + } + for (const plugin of plugins) { + let result; + try { + result = plugin.compileSFCTemplate?.(base.lang, base.content, options); + } + catch (e) { + const err = e; + errors.push(err); + } + if (result || errors.length) { + if (result && !errors.length && !warnings.length) { + cache = { + template: base.content, + snapshot: untrackedSnapshot(), + result: result, + plugin, + }; + } + else { + cache = undefined; + } + return { + errors, + warnings, + ast: result?.ast, + }; + } + } + return { + errors, + warnings, + ast: undefined, + }; + }); + } + function computedNullableSfcBlock(name, defaultLang, block, resolve) { + const hasBlock = (0, computeds_1$3.computed)(() => !!block()); + return (0, computeds_1$3.computed)(() => { + if (!hasBlock()) { + return; + } + const _block = (0, computeds_1$3.computed)(() => block()); + return resolve(_block, computedSfcBlock(name, defaultLang, _block)); + }); + } + function computedSfcBlock(name, defaultLang, block) { + const lang = (0, computeds_1$3.computed)(() => block().lang ?? defaultLang); + const attrs = (0, computeds_1$3.computed)(() => block().attrs); // TODO: computed it + const content = (0, computeds_1$3.computed)(() => block().content); + const startTagEnd = (0, computeds_1$3.computed)(() => block().loc.start.offset); + const endTagStart = (0, computeds_1$3.computed)(() => block().loc.end.offset); + const start = (0, computeds_1$3.computed)(() => untrackedSnapshot().getText(0, startTagEnd()).lastIndexOf('<' + block().type)); + const end = (0, computeds_1$3.computed)(() => endTagStart() + untrackedSnapshot().getText(endTagStart(), untrackedSnapshot().getLength()).indexOf('>') + 1); + return { + name, + get lang() { return lang(); }, + get attrs() { return attrs(); }, + get content() { return content(); }, + get startTagEnd() { return startTagEnd(); }, + get endTagStart() { return endTagStart(); }, + get start() { return start(); }, + get end() { return end(); }, + }; + } +} +function mergeObject(a, b) { + return Object.defineProperties(a, Object.getOwnPropertyDescriptors(b)); +} + +var computedVueSfc$1 = {}; + +Object.defineProperty(computedVueSfc$1, "__esModule", { value: true }); +computedVueSfc$1.computedVueSfc = computedVueSfc; +const computeds_1$2 = out$1; +function computedVueSfc(plugins, fileName, languageId, snapshot) { + let cache; + return (0, computeds_1$2.computed)(() => { + // incremental update + if (cache?.plugin.updateSFC) { + const change = snapshot().getChangeRange(cache.snapshot); + if (change) { + const newSfc = cache.plugin.updateSFC(cache.sfc, { + start: change.span.start, + end: change.span.start + change.span.length, + newText: snapshot().getText(change.span.start, change.span.start + change.newLength), + }); + if (newSfc) { + cache.snapshot = snapshot(); + // force dirty + cache.sfc = JSON.parse(JSON.stringify(newSfc)); + return cache.sfc; + } + } + } + for (const plugin of plugins) { + const sfc = plugin.parseSFC?.(fileName, snapshot().getText(0, snapshot().getLength())) + ?? plugin.parseSFC2?.(fileName, languageId, snapshot().getText(0, snapshot().getLength())); + if (sfc) { + if (!sfc.errors.length) { + cache = { + snapshot: snapshot(), + sfc, + plugin, + }; + } + return sfc; + } + } + }); +} + +Object.defineProperty(vueFile, "__esModule", { value: true }); +vueFile.VueVirtualCode = void 0; +const computeds_1$1 = out$1; +const computedEmbeddedCodes_1 = computedEmbeddedCodes$1; +const computedSfc_1 = computedSfc$1; +const computedVueSfc_1 = computedVueSfc$1; +const plugins_1$1 = plugins; +class VueVirtualCode { + // others + get embeddedCodes() { + return this.getEmbeddedCodes(); + } + get snapshot() { + return this.getSnapshot(); + } + get mappings() { + return this.getMappings(); + } + constructor(fileName, languageId, initSnapshot, vueCompilerOptions, plugins, ts) { + this.fileName = fileName; + this.languageId = languageId; + this.initSnapshot = initSnapshot; + this.vueCompilerOptions = vueCompilerOptions; + this.plugins = plugins; + this.ts = ts; + // sources + this.id = 'main'; + // computeds + this.getVueSfc = (0, computedVueSfc_1.computedVueSfc)(this.plugins, this.fileName, this.languageId, () => this.getSnapshot()); + this.sfc = (0, computedSfc_1.computedSfc)(this.ts, this.plugins, this.fileName, () => this.getSnapshot(), this.getVueSfc); + this.getMappings = (0, computeds_1$1.computed)(() => { + const snapshot = this.getSnapshot(); + return [{ + sourceOffsets: [0], + generatedOffsets: [0], + lengths: [snapshot.getLength()], + data: plugins_1$1.allCodeFeatures, + }]; + }); + this.getEmbeddedCodes = (0, computedEmbeddedCodes_1.computedEmbeddedCodes)(this.plugins, this.fileName, this.sfc); + this.getSnapshot = (0, computeds_1$1.signal)(initSnapshot); + } + update(newSnapshot) { + this.getSnapshot.set(newSnapshot); + } +} +vueFile.VueVirtualCode = VueVirtualCode; + +/// <reference types="@volar/typescript" /> +Object.defineProperty(languagePlugin, "__esModule", { value: true }); +languagePlugin.createVueLanguagePlugin = createVueLanguagePlugin; +languagePlugin.getAllExtensions = getAllExtensions; +const language_core_1$a = languageCore$1; +const CompilerDOM = compilerDom_cjs; +const plugins_1 = plugins; +const CompilerVue2 = vue2TemplateCompiler; +const vueFile_1 = vueFile; +const fileRegistries = []; +function getVueFileRegistry(key, plugins) { + let fileRegistry = fileRegistries.find(r => r.key === key + && r.plugins.length === plugins.length + && r.plugins.every(plugin => plugins.includes(plugin)))?.files; + if (!fileRegistry) { + fileRegistry = new Map(); + fileRegistries.push({ + key: key, + plugins: plugins, + files: fileRegistry, + }); + } + return fileRegistry; +} +function getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins) { + const values = [ + ...Object.keys(vueCompilerOptions) + .sort() + .filter(key => key !== 'plugins') + .map(key => [key, vueCompilerOptions[key]]), + [...new Set(plugins.map(plugin => plugin.requiredCompilerOptions ?? []).flat())] + .sort() + .map(key => [key, compilerOptions[key]]), + ]; + return JSON.stringify(values); +} +function createVueLanguagePlugin(ts, compilerOptions, vueCompilerOptions, asFileName) { + const pluginContext = { + modules: { + '@vue/compiler-dom': vueCompilerOptions.target < 3 + ? { + ...CompilerDOM, + compile: CompilerVue2.compile, + } + : CompilerDOM, + typescript: ts, + }, + compilerOptions, + vueCompilerOptions, + }; + const plugins = (0, plugins_1.createPlugins)(pluginContext); + const fileRegistry = getVueFileRegistry(getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins), vueCompilerOptions.plugins); + return { + getLanguageId(scriptId) { + const fileName = asFileName(scriptId); + for (const plugin of plugins) { + const languageId = plugin.getLanguageId?.(fileName); + if (languageId) { + return languageId; + } + } + }, + createVirtualCode(scriptId, languageId, snapshot) { + const fileName = asFileName(scriptId); + if (plugins.some(plugin => plugin.isValidFile?.(fileName, languageId))) { + const code = fileRegistry.get(fileName); + if (code) { + code.update(snapshot); + return code; + } + else { + const code = new vueFile_1.VueVirtualCode(fileName, languageId, snapshot, vueCompilerOptions, plugins, ts); + fileRegistry.set(fileName, code); + return code; + } + } + }, + updateVirtualCode(_fileId, code, snapshot) { + code.update(snapshot); + return code; + }, + typescript: { + extraFileExtensions: getAllExtensions(vueCompilerOptions) + .map(ext => ({ + extension: ext.slice(1), + isMixedContent: true, + scriptKind: 7, + })), + getServiceScript(root) { + for (const code of (0, language_core_1$a.forEachEmbeddedCode)(root)) { + if (/script_(js|jsx|ts|tsx)/.test(code.id)) { + const lang = code.id.substring('script_'.length); + return { + code, + extension: '.' + lang, + scriptKind: lang === 'js' ? ts.ScriptKind.JS + : lang === 'jsx' ? ts.ScriptKind.JSX + : lang === 'tsx' ? ts.ScriptKind.TSX + : ts.ScriptKind.TS, + }; + } + } + }, + }, + }; +} +function getAllExtensions(options) { + const result = new Set(); + for (const key in options) { + if (key === 'extensions' || key.endsWith('Extensions')) { + const value = options[key]; + if (Array.isArray(value) && value.every(v => typeof v === 'string')) { + for (const ext of value) { + result.add(ext); + } + } + } + } + return [...result]; +} + +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} + +var ts$1 = {}; + +Object.defineProperty(ts$1, "__esModule", { value: true }); +ts$1.createParsedCommandLineByJson = createParsedCommandLineByJson; +ts$1.createParsedCommandLine = createParsedCommandLine; +ts$1.resolveVueCompilerOptions = resolveVueCompilerOptions; +ts$1.setupGlobalTypes = setupGlobalTypes; +const shared_1$d = require$$1$1; +const path_browserify_1$1 = pathBrowserify; +const languagePlugin_1 = languagePlugin; +const globalTypes_1 = globalTypes; +function createParsedCommandLineByJson(ts, parseConfigHost, rootDir, json, configFileName = rootDir + '/jsconfig.json', skipGlobalTypesSetup = false) { + const proxyHost = proxyParseConfigHostForExtendConfigPaths(parseConfigHost); + ts.parseJsonConfigFileContent(json, proxyHost.host, rootDir, {}, configFileName); + let vueOptions = {}; + for (const extendPath of proxyHost.extendConfigPaths.reverse()) { + try { + vueOptions = { + ...vueOptions, + ...getPartialVueCompilerOptions(ts, ts.readJsonConfigFile(extendPath, proxyHost.host.readFile)), + }; + } + catch (err) { } + } + const resolvedVueOptions = resolveVueCompilerOptions(vueOptions); + if (skipGlobalTypesSetup) { + resolvedVueOptions.__setupedGlobalTypes = true; + } + else { + resolvedVueOptions.__setupedGlobalTypes = setupGlobalTypes(rootDir, resolvedVueOptions, parseConfigHost); + } + const parsed = ts.parseJsonConfigFileContent(json, proxyHost.host, rootDir, {}, configFileName, undefined, (0, languagePlugin_1.getAllExtensions)(resolvedVueOptions) + .map(extension => ({ + extension: extension.slice(1), + isMixedContent: true, + scriptKind: ts.ScriptKind.Deferred, + }))); + // fix https://github.com/vuejs/language-tools/issues/1786 + // https://github.com/microsoft/TypeScript/issues/30457 + // patching ts server broke with outDir + rootDir + composite/incremental + parsed.options.outDir = undefined; + return { + ...parsed, + vueOptions: resolvedVueOptions, + }; +} +function createParsedCommandLine(ts, parseConfigHost, tsConfigPath, skipGlobalTypesSetup = false) { + try { + const proxyHost = proxyParseConfigHostForExtendConfigPaths(parseConfigHost); + const config = ts.readJsonConfigFile(tsConfigPath, proxyHost.host.readFile); + ts.parseJsonSourceFileConfigFileContent(config, proxyHost.host, path_browserify_1$1.posix.dirname(tsConfigPath), {}, tsConfigPath); + let vueOptions = {}; + for (const extendPath of proxyHost.extendConfigPaths.reverse()) { + try { + vueOptions = { + ...vueOptions, + ...getPartialVueCompilerOptions(ts, ts.readJsonConfigFile(extendPath, proxyHost.host.readFile)), + }; + } + catch (err) { } + } + const resolvedVueOptions = resolveVueCompilerOptions(vueOptions); + if (skipGlobalTypesSetup) { + resolvedVueOptions.__setupedGlobalTypes = true; + } + else { + resolvedVueOptions.__setupedGlobalTypes = setupGlobalTypes(path_browserify_1$1.posix.dirname(tsConfigPath), resolvedVueOptions, parseConfigHost); + } + const parsed = ts.parseJsonSourceFileConfigFileContent(config, proxyHost.host, path_browserify_1$1.posix.dirname(tsConfigPath), {}, tsConfigPath, undefined, (0, languagePlugin_1.getAllExtensions)(resolvedVueOptions) + .map(extension => ({ + extension: extension.slice(1), + isMixedContent: true, + scriptKind: ts.ScriptKind.Deferred, + }))); + // fix https://github.com/vuejs/language-tools/issues/1786 + // https://github.com/microsoft/TypeScript/issues/30457 + // patching ts server broke with outDir + rootDir + composite/incremental + parsed.options.outDir = undefined; + return { + ...parsed, + vueOptions: resolvedVueOptions, + }; + } + catch (err) { + // console.warn('Failed to resolve tsconfig path:', tsConfigPath, err); + return { + fileNames: [], + options: {}, + vueOptions: resolveVueCompilerOptions({}), + errors: [], + }; + } +} +function proxyParseConfigHostForExtendConfigPaths(parseConfigHost) { + const extendConfigPaths = []; + const host = new Proxy(parseConfigHost, { + get(target, key) { + if (key === 'readFile') { + return (fileName) => { + if (!fileName.endsWith('/package.json') && !extendConfigPaths.includes(fileName)) { + extendConfigPaths.push(fileName); + } + return target.readFile(fileName); + }; + } + return target[key]; + } + }); + return { + host, + extendConfigPaths, + }; +} +function getPartialVueCompilerOptions(ts, tsConfigSourceFile) { + const folder = path_browserify_1$1.posix.dirname(tsConfigSourceFile.fileName); + const obj = ts.convertToObject(tsConfigSourceFile, []); + const rawOptions = obj?.vueCompilerOptions ?? {}; + const result = { + ...rawOptions, + }; + const target = rawOptions.target ?? 'auto'; + if (target === 'auto') { + const resolvedPath = resolvePath('vue/package.json'); + if (resolvedPath) { + const vuePackageJson = commonjsRequire(resolvedPath); + const versionNumbers = vuePackageJson.version.split('.'); + result.target = Number(versionNumbers[0] + '.' + versionNumbers[1]); + } + } + else { + result.target = target; + } + if (rawOptions.plugins) { + const plugins = rawOptions.plugins + .map((pluginPath) => { + try { + const resolvedPath = resolvePath(pluginPath); + if (resolvedPath) { + const plugin = commonjsRequire(resolvedPath); + plugin.__moduleName = pluginPath; + return plugin; + } + else { + console.warn('[Vue] Load plugin failed:', pluginPath); + } + } + catch (error) { + console.warn('[Vue] Resolve plugin path failed:', pluginPath, error); + } + return []; + }); + result.plugins = plugins; + } + return result; + function resolvePath(scriptPath) { + try { + if (require?.resolve) { + return require.resolve(scriptPath, { paths: [folder] }); + } + else { + // console.warn('failed to resolve path:', scriptPath, 'require.resolve is not supported in web'); + } + } + catch (error) { + // console.warn(error); + } + } +} +function resolveVueCompilerOptions(vueOptions) { + const target = vueOptions.target ?? 3.3; + const lib = vueOptions.lib ?? 'vue'; + return { + ...vueOptions, + target, + extensions: vueOptions.extensions ?? ['.vue'], + vitePressExtensions: vueOptions.vitePressExtensions ?? [], + petiteVueExtensions: vueOptions.petiteVueExtensions ?? [], + lib, + jsxSlots: vueOptions.jsxSlots ?? false, + strictTemplates: vueOptions.strictTemplates ?? false, + skipTemplateCodegen: vueOptions.skipTemplateCodegen ?? false, + fallthroughAttributes: vueOptions.fallthroughAttributes ?? false, + dataAttributes: vueOptions.dataAttributes ?? [], + htmlAttributes: vueOptions.htmlAttributes ?? ['aria-*'], + optionsWrapper: vueOptions.optionsWrapper ?? (target >= 2.7 + ? [`(await import('${lib}')).defineComponent(`, `)`] + : [`(await import('${lib}')).default.extend(`, `)`]), + macros: { + defineProps: ['defineProps'], + defineSlots: ['defineSlots'], + defineEmits: ['defineEmits'], + defineExpose: ['defineExpose'], + defineModel: ['defineModel'], + defineOptions: ['defineOptions'], + withDefaults: ['withDefaults'], + ...vueOptions.macros, + }, + composibles: { + useCssModule: ['useCssModule'], + useTemplateRef: ['useTemplateRef', 'templateRef'], + ...vueOptions.composibles, + }, + plugins: vueOptions.plugins ?? [], + // experimental + experimentalDefinePropProposal: vueOptions.experimentalDefinePropProposal ?? false, + experimentalResolveStyleCssClasses: vueOptions.experimentalResolveStyleCssClasses ?? 'scoped', + // https://github.com/vuejs/vue-next/blob/master/packages/compiler-dom/src/transforms/vModel.ts#L49-L51 + // https://vuejs.org/guide/essentials/forms.html#form-input-bindings + experimentalModelPropName: Object.fromEntries(Object.entries(vueOptions.experimentalModelPropName ?? { + '': { + input: true + }, + value: { + input: { type: 'text' }, + textarea: true, + select: true + } + }).map(([k, v]) => [(0, shared_1$d.camelize)(k), v])), + }; +} +function setupGlobalTypes(rootDir, vueOptions, host) { + if (!host.writeFile) { + return false; + } + try { + let dir = rootDir; + while (!host.fileExists(path_browserify_1$1.posix.join(dir, 'node_modules', vueOptions.lib, 'package.json'))) { + const parentDir = path_browserify_1$1.posix.dirname(dir); + if (dir === parentDir) { + throw 0; + } + dir = parentDir; + } + const globalTypesPath = path_browserify_1$1.posix.join(dir, 'node_modules', '.vue-global-types', `${vueOptions.lib}_${vueOptions.target}_${vueOptions.strictTemplates}.d.ts`); + const globalTypesContents = `// @ts-nocheck\nexport {};\n` + (0, globalTypes_1.generateGlobalTypes)(vueOptions.lib, vueOptions.target, vueOptions.strictTemplates); + host.writeFile(globalTypesPath, globalTypesContents); + return true; + } + catch { + return false; + } +} + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.tsCodegen = exports.scriptRanges = void 0; + __exportStar(globalTypes, exports); + __exportStar(template$1, exports); + __exportStar(languagePlugin, exports); + __exportStar(requireScriptSetupRanges(), exports); + __exportStar(plugins, exports); + __exportStar(types$1, exports); + __exportStar(parseSfc, exports); + __exportStar(ts$1, exports); + __exportStar(vueFile, exports); + exports.scriptRanges = scriptRanges; + var vue_tsx_1 = vueTsx; + Object.defineProperty(exports, "tsCodegen", { enumerable: true, get: function () { return vue_tsx_1.tsCodegen; } }); + __exportStar(shared$3, exports); + __exportStar(languageCore$1, exports); + +} (languageCore)); + +var nameCasing = {}; + +var types = {}; + +(function (exports) { + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.commands = exports.AttrNameCasing = exports.TagNameCasing = void 0; + var TagNameCasing; + (function (TagNameCasing) { + TagNameCasing[TagNameCasing["Kebab"] = 0] = "Kebab"; + TagNameCasing[TagNameCasing["Pascal"] = 1] = "Pascal"; + })(TagNameCasing || (exports.TagNameCasing = TagNameCasing = {})); + var AttrNameCasing; + (function (AttrNameCasing) { + AttrNameCasing[AttrNameCasing["Kebab"] = 0] = "Kebab"; + AttrNameCasing[AttrNameCasing["Camel"] = 1] = "Camel"; + })(AttrNameCasing || (exports.AttrNameCasing = AttrNameCasing = {})); + exports.commands = { + parseSfc: 'vue.parseSfc', + detectNameCasing: 'vue.detectNameCasing', + convertTagsToKebabCase: 'vue.convertTagsToKebabCase', + convertTagsToPascalCase: 'vue.convertTagsToPascalCase', + convertPropsToKebabCase: 'vue.convertPropsToKebabCase', + convertPropsToCamelCase: 'vue.convertPropsToCamelCase', + }; + // only export types of depend packages + __exportStar(types$5, exports); + __exportStar(types$1, exports); + +} (types)); + +Object.defineProperty(nameCasing, "__esModule", { value: true }); +nameCasing.convertTagName = convertTagName; +nameCasing.convertAttrName = convertAttrName; +nameCasing.getNameCasing = getNameCasing; +nameCasing.detect = detect; +const vue$3 = languageCore; +const language_core_1$9 = languageCore; +const computeds_1 = out$1; +const types_1$2 = types; +async function convertTagName(context, uri, casing, tsPluginClient) { + const sourceFile = context.language.scripts.get(uri); + if (!sourceFile) { + return; + } + const rootCode = sourceFile?.generated?.root; + if (!(rootCode instanceof language_core_1$9.VueVirtualCode)) { + return; + } + const desc = rootCode.sfc; + if (!desc.template) { + return; + } + const template = desc.template; + const document = context.documents.get(sourceFile.id, sourceFile.languageId, sourceFile.snapshot); + const edits = []; + const components = await tsPluginClient?.getComponentNames(rootCode.fileName) ?? []; + const tags = getTemplateTagsAndAttrs(rootCode); + for (const [tagName, { offsets }] of tags) { + const componentName = components.find(component => component === tagName || (0, language_core_1$9.hyphenateTag)(component) === tagName); + if (componentName) { + for (const offset of offsets) { + const start = document.positionAt(template.startTagEnd + offset); + const end = document.positionAt(template.startTagEnd + offset + tagName.length); + const range = { start, end }; + if (casing === types_1$2.TagNameCasing.Kebab && tagName !== (0, language_core_1$9.hyphenateTag)(componentName)) { + edits.push({ range, newText: (0, language_core_1$9.hyphenateTag)(componentName) }); + } + if (casing === types_1$2.TagNameCasing.Pascal && tagName !== componentName) { + edits.push({ range, newText: componentName }); + } + } + } + } + return edits; +} +async function convertAttrName(context, uri, casing, tsPluginClient) { + const sourceFile = context.language.scripts.get(uri); + if (!sourceFile) { + return; + } + const rootCode = sourceFile?.generated?.root; + if (!(rootCode instanceof language_core_1$9.VueVirtualCode)) { + return; + } + const desc = rootCode.sfc; + if (!desc.template) { + return; + } + const template = desc.template; + const document = context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot); + const edits = []; + const components = await tsPluginClient?.getComponentNames(rootCode.fileName) ?? []; + const tags = getTemplateTagsAndAttrs(rootCode); + for (const [tagName, { attrs }] of tags) { + const componentName = components.find(component => component === tagName || (0, language_core_1$9.hyphenateTag)(component) === tagName); + if (componentName) { + const props = (await tsPluginClient?.getComponentProps(rootCode.fileName, componentName) ?? []).map(prop => prop.name); + for (const [attrName, { offsets }] of attrs) { + const propName = props.find(prop => prop === attrName || (0, language_core_1$9.hyphenateAttr)(prop) === attrName); + if (propName) { + for (const offset of offsets) { + const start = document.positionAt(template.startTagEnd + offset); + const end = document.positionAt(template.startTagEnd + offset + attrName.length); + const range = { start, end }; + if (casing === types_1$2.AttrNameCasing.Kebab && attrName !== (0, language_core_1$9.hyphenateAttr)(propName)) { + edits.push({ range, newText: (0, language_core_1$9.hyphenateAttr)(propName) }); + } + if (casing === types_1$2.AttrNameCasing.Camel && attrName !== propName) { + edits.push({ range, newText: propName }); + } + } + } + } + } + } + return edits; +} +async function getNameCasing(context, uri) { + const detected = await detect(context, uri); + const [attr, tag] = await Promise.all([ + context.env.getConfiguration?.('vue.complete.casing.props', uri.toString()), + context.env.getConfiguration?.('vue.complete.casing.tags', uri.toString()), + ]); + const tagNameCasing = detected.tag.length === 1 && (tag === 'autoPascal' || tag === 'autoKebab') ? detected.tag[0] : (tag === 'autoKebab' || tag === 'kebab') ? types_1$2.TagNameCasing.Kebab : types_1$2.TagNameCasing.Pascal; + const attrNameCasing = detected.attr.length === 1 && (attr === 'autoCamel' || attr === 'autoKebab') ? detected.attr[0] : (attr === 'autoCamel' || attr === 'camel') ? types_1$2.AttrNameCasing.Camel : types_1$2.AttrNameCasing.Kebab; + return { + tag: tagNameCasing, + attr: attrNameCasing, + }; +} +async function detect(context, uri) { + const rootFile = context.language.scripts.get(uri)?.generated?.root; + if (!(rootFile instanceof language_core_1$9.VueVirtualCode)) { + return { + tag: [], + attr: [], + }; + } + return { + tag: await getTagNameCase(rootFile), + attr: getAttrNameCase(rootFile), + }; + function getAttrNameCase(file) { + const tags = getTemplateTagsAndAttrs(file); + const result = []; + for (const [_, { attrs }] of tags) { + for (const [tagName] of attrs) { + // attrName + if (tagName !== (0, language_core_1$9.hyphenateTag)(tagName)) { + result.push(types_1$2.AttrNameCasing.Camel); + break; + } + } + for (const [tagName] of attrs) { + // attr-name + if (tagName.indexOf('-') >= 0) { + result.push(types_1$2.AttrNameCasing.Kebab); + break; + } + } + } + return result; + } + function getTagNameCase(file) { + const result = new Set(); + if (file.sfc.template?.ast) { + for (const element of vue$3.forEachElementNode(file.sfc.template.ast)) { + if (element.tagType === 1) { + if (element.tag !== (0, language_core_1$9.hyphenateTag)(element.tag)) { + // TagName + result.add(types_1$2.TagNameCasing.Pascal); + } + else { + // Tagname -> tagname + // TagName -> tag-name + result.add(types_1$2.TagNameCasing.Kebab); + } + } + } + } + return [...result]; + } +} +const map = new WeakMap(); +function getTemplateTagsAndAttrs(sourceFile) { + if (!map.has(sourceFile)) { + const getter = (0, computeds_1.computed)(() => { + if (!(sourceFile instanceof vue$3.VueVirtualCode)) { + return; + } + const ast = sourceFile.sfc.template?.ast; + const tags = new Map(); + if (ast) { + for (const node of vue$3.forEachElementNode(ast)) { + if (!tags.has(node.tag)) { + tags.set(node.tag, { offsets: [], attrs: new Map() }); + } + const tag = tags.get(node.tag); + const startTagHtmlOffset = node.loc.start.offset + node.loc.source.indexOf(node.tag); + const endTagHtmlOffset = node.loc.start.offset + node.loc.source.lastIndexOf(node.tag); + tag.offsets.push(startTagHtmlOffset); + if (!node.isSelfClosing) { + tag.offsets.push(endTagHtmlOffset); + } + for (const prop of node.props) { + let name; + let offset; + if (prop.type === 7 + && prop.arg?.type === 4 + && prop.arg.isStatic) { + name = prop.arg.content; + offset = prop.arg.loc.start.offset; + } + else if (prop.type === 6) { + name = prop.name; + offset = prop.loc.start.offset; + } + if (name !== undefined && offset !== undefined) { + if (!tag.attrs.has(name)) { + tag.attrs.set(name, { offsets: [] }); + } + tag.attrs.get(name).offsets.push(offset); + } + } + } + } + return tags; + }); + map.set(sourceFile, getter); + } + return map.get(sourceFile)() ?? new Map(); +} + +var empty$1 = {}; + +Object.defineProperty(empty$1, "__esModule", { value: true }); +empty$1.create = create$m; +console.warn('[volar-service-emmet] this module is not yet supported for web.'); +function create$m() { + return { + name: 'emmet (stub)', + capabilities: {}, + create() { + return {}; + }, + }; +} + +var volarServiceJson = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Creates a JSON scanner on the given text. + * If ignoreTrivia is set, whitespaces or comments are ignored. + */ +function createScanner$2(text, ignoreTrivia = false) { + const len = text.length; + let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */; + function scanHexDigits(count, exact) { + let digits = 0; + let value = 0; + while (digits < count || !exact) { + let ch = text.charCodeAt(pos); + if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) { + value = value * 16 + ch - 48 /* CharacterCodes._0 */; + } + else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) { + value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10; + } + else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) { + value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10; + } + else { + break; + } + pos++; + digits++; + } + if (digits < count) { + value = -1; + } + return value; + } + function setPosition(newPosition) { + pos = newPosition; + value = ''; + tokenOffset = 0; + token = 16 /* SyntaxKind.Unknown */; + scanError = 0 /* ScanError.None */; + } + function scanNumber() { + let start = pos; + if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) { + pos++; + } + else { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) { + pos++; + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + return text.substring(start, pos); + } + } + let end = pos; + if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) { + pos++; + if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) { + pos++; + } + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + end = pos; + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + } + } + return text.substring(start, end); + } + function scanString() { + let result = '', start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch = text.charCodeAt(pos); + if (ch === 34 /* CharacterCodes.doubleQuote */) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92 /* CharacterCodes.backslash */) { + result += text.substring(start, pos); + pos++; + if (pos >= len) { + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch2 = text.charCodeAt(pos++); + switch (ch2) { + case 34 /* CharacterCodes.doubleQuote */: + result += '\"'; + break; + case 92 /* CharacterCodes.backslash */: + result += '\\'; + break; + case 47 /* CharacterCodes.slash */: + result += '/'; + break; + case 98 /* CharacterCodes.b */: + result += '\b'; + break; + case 102 /* CharacterCodes.f */: + result += '\f'; + break; + case 110 /* CharacterCodes.n */: + result += '\n'; + break; + case 114 /* CharacterCodes.r */: + result += '\r'; + break; + case 116 /* CharacterCodes.t */: + result += '\t'; + break; + case 117 /* CharacterCodes.u */: + const ch3 = scanHexDigits(4, true); + if (ch3 >= 0) { + result += String.fromCharCode(ch3); + } + else { + scanError = 4 /* ScanError.InvalidUnicode */; + } + break; + default: + scanError = 5 /* ScanError.InvalidEscapeCharacter */; + } + start = pos; + continue; + } + if (ch >= 0 && ch <= 0x1f) { + if (isLineBreak(ch)) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + else { + scanError = 6 /* ScanError.InvalidCharacter */; + // mark as error but continue with string + } + } + pos++; + } + return result; + } + function scanNext() { + value = ''; + scanError = 0 /* ScanError.None */; + tokenOffset = pos; + lineStartOffset = lineNumber; + prevTokenLineStartOffset = tokenLineStartOffset; + if (pos >= len) { + // at the end + tokenOffset = len; + return token = 17 /* SyntaxKind.EOF */; + } + let code = text.charCodeAt(pos); + // trivia: whitespace + if (isWhiteSpace$1(code)) { + do { + pos++; + value += String.fromCharCode(code); + code = text.charCodeAt(pos); + } while (isWhiteSpace$1(code)); + return token = 15 /* SyntaxKind.Trivia */; + } + // trivia: newlines + if (isLineBreak(code)) { + pos++; + value += String.fromCharCode(code); + if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + value += '\n'; + } + lineNumber++; + tokenLineStartOffset = pos; + return token = 14 /* SyntaxKind.LineBreakTrivia */; + } + switch (code) { + // tokens: []{}:, + case 123 /* CharacterCodes.openBrace */: + pos++; + return token = 1 /* SyntaxKind.OpenBraceToken */; + case 125 /* CharacterCodes.closeBrace */: + pos++; + return token = 2 /* SyntaxKind.CloseBraceToken */; + case 91 /* CharacterCodes.openBracket */: + pos++; + return token = 3 /* SyntaxKind.OpenBracketToken */; + case 93 /* CharacterCodes.closeBracket */: + pos++; + return token = 4 /* SyntaxKind.CloseBracketToken */; + case 58 /* CharacterCodes.colon */: + pos++; + return token = 6 /* SyntaxKind.ColonToken */; + case 44 /* CharacterCodes.comma */: + pos++; + return token = 5 /* SyntaxKind.CommaToken */; + // strings + case 34 /* CharacterCodes.doubleQuote */: + pos++; + value = scanString(); + return token = 10 /* SyntaxKind.StringLiteral */; + // comments + case 47 /* CharacterCodes.slash */: + const start = pos - 1; + // Single-line comment + if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + value = text.substring(start, pos); + return token = 12 /* SyntaxKind.LineCommentTrivia */; + } + // Multi-line comment + if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) { + pos += 2; + const safeLength = len - 1; // For lookahead. + let commentClosed = false; + while (pos < safeLength) { + const ch = text.charCodeAt(pos); + if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + commentClosed = true; + break; + } + pos++; + if (isLineBreak(ch)) { + if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + } + lineNumber++; + tokenLineStartOffset = pos; + } + } + if (!commentClosed) { + pos++; + scanError = 1 /* ScanError.UnexpectedEndOfComment */; + } + value = text.substring(start, pos); + return token = 13 /* SyntaxKind.BlockCommentTrivia */; + } + // just a single slash + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + // numbers + case 45 /* CharacterCodes.minus */: + value += String.fromCharCode(code); + pos++; + if (pos === len || !isDigit(text.charCodeAt(pos))) { + return token = 16 /* SyntaxKind.Unknown */; + } + // found a minus, followed by a number so + // we fall through to proceed with scanning + // numbers + case 48 /* CharacterCodes._0 */: + case 49 /* CharacterCodes._1 */: + case 50 /* CharacterCodes._2 */: + case 51 /* CharacterCodes._3 */: + case 52 /* CharacterCodes._4 */: + case 53 /* CharacterCodes._5 */: + case 54 /* CharacterCodes._6 */: + case 55 /* CharacterCodes._7 */: + case 56 /* CharacterCodes._8 */: + case 57 /* CharacterCodes._9 */: + value += scanNumber(); + return token = 11 /* SyntaxKind.NumericLiteral */; + // literals and unknown symbols + default: + // is a literal? Read the full word. + while (pos < len && isUnknownContentCharacter(code)) { + pos++; + code = text.charCodeAt(pos); + } + if (tokenOffset !== pos) { + value = text.substring(tokenOffset, pos); + // keywords: true, false, null + switch (value) { + case 'true': return token = 8 /* SyntaxKind.TrueKeyword */; + case 'false': return token = 9 /* SyntaxKind.FalseKeyword */; + case 'null': return token = 7 /* SyntaxKind.NullKeyword */; + } + return token = 16 /* SyntaxKind.Unknown */; + } + // some + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + } + } + function isUnknownContentCharacter(code) { + if (isWhiteSpace$1(code) || isLineBreak(code)) { + return false; + } + switch (code) { + case 125 /* CharacterCodes.closeBrace */: + case 93 /* CharacterCodes.closeBracket */: + case 123 /* CharacterCodes.openBrace */: + case 91 /* CharacterCodes.openBracket */: + case 34 /* CharacterCodes.doubleQuote */: + case 58 /* CharacterCodes.colon */: + case 44 /* CharacterCodes.comma */: + case 47 /* CharacterCodes.slash */: + return false; + } + return true; + } + function scanNextNonTrivia() { + let result; + do { + result = scanNext(); + } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */); + return result; + } + return { + setPosition: setPosition, + getPosition: () => pos, + scan: ignoreTrivia ? scanNextNonTrivia : scanNext, + getToken: () => token, + getTokenValue: () => value, + getTokenOffset: () => tokenOffset, + getTokenLength: () => pos - tokenOffset, + getTokenStartLine: () => lineStartOffset, + getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset, + getTokenError: () => scanError, + }; +} +function isWhiteSpace$1(ch) { + return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */; +} +function isLineBreak(ch) { + return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */; +} +function isDigit(ch) { + return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */; +} +var CharacterCodes; +(function (CharacterCodes) { + CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed"; + CharacterCodes[CharacterCodes["carriageReturn"] = 13] = "carriageReturn"; + CharacterCodes[CharacterCodes["space"] = 32] = "space"; + CharacterCodes[CharacterCodes["_0"] = 48] = "_0"; + CharacterCodes[CharacterCodes["_1"] = 49] = "_1"; + CharacterCodes[CharacterCodes["_2"] = 50] = "_2"; + CharacterCodes[CharacterCodes["_3"] = 51] = "_3"; + CharacterCodes[CharacterCodes["_4"] = 52] = "_4"; + CharacterCodes[CharacterCodes["_5"] = 53] = "_5"; + CharacterCodes[CharacterCodes["_6"] = 54] = "_6"; + CharacterCodes[CharacterCodes["_7"] = 55] = "_7"; + CharacterCodes[CharacterCodes["_8"] = 56] = "_8"; + CharacterCodes[CharacterCodes["_9"] = 57] = "_9"; + CharacterCodes[CharacterCodes["a"] = 97] = "a"; + CharacterCodes[CharacterCodes["b"] = 98] = "b"; + CharacterCodes[CharacterCodes["c"] = 99] = "c"; + CharacterCodes[CharacterCodes["d"] = 100] = "d"; + CharacterCodes[CharacterCodes["e"] = 101] = "e"; + CharacterCodes[CharacterCodes["f"] = 102] = "f"; + CharacterCodes[CharacterCodes["g"] = 103] = "g"; + CharacterCodes[CharacterCodes["h"] = 104] = "h"; + CharacterCodes[CharacterCodes["i"] = 105] = "i"; + CharacterCodes[CharacterCodes["j"] = 106] = "j"; + CharacterCodes[CharacterCodes["k"] = 107] = "k"; + CharacterCodes[CharacterCodes["l"] = 108] = "l"; + CharacterCodes[CharacterCodes["m"] = 109] = "m"; + CharacterCodes[CharacterCodes["n"] = 110] = "n"; + CharacterCodes[CharacterCodes["o"] = 111] = "o"; + CharacterCodes[CharacterCodes["p"] = 112] = "p"; + CharacterCodes[CharacterCodes["q"] = 113] = "q"; + CharacterCodes[CharacterCodes["r"] = 114] = "r"; + CharacterCodes[CharacterCodes["s"] = 115] = "s"; + CharacterCodes[CharacterCodes["t"] = 116] = "t"; + CharacterCodes[CharacterCodes["u"] = 117] = "u"; + CharacterCodes[CharacterCodes["v"] = 118] = "v"; + CharacterCodes[CharacterCodes["w"] = 119] = "w"; + CharacterCodes[CharacterCodes["x"] = 120] = "x"; + CharacterCodes[CharacterCodes["y"] = 121] = "y"; + CharacterCodes[CharacterCodes["z"] = 122] = "z"; + CharacterCodes[CharacterCodes["A"] = 65] = "A"; + CharacterCodes[CharacterCodes["B"] = 66] = "B"; + CharacterCodes[CharacterCodes["C"] = 67] = "C"; + CharacterCodes[CharacterCodes["D"] = 68] = "D"; + CharacterCodes[CharacterCodes["E"] = 69] = "E"; + CharacterCodes[CharacterCodes["F"] = 70] = "F"; + CharacterCodes[CharacterCodes["G"] = 71] = "G"; + CharacterCodes[CharacterCodes["H"] = 72] = "H"; + CharacterCodes[CharacterCodes["I"] = 73] = "I"; + CharacterCodes[CharacterCodes["J"] = 74] = "J"; + CharacterCodes[CharacterCodes["K"] = 75] = "K"; + CharacterCodes[CharacterCodes["L"] = 76] = "L"; + CharacterCodes[CharacterCodes["M"] = 77] = "M"; + CharacterCodes[CharacterCodes["N"] = 78] = "N"; + CharacterCodes[CharacterCodes["O"] = 79] = "O"; + CharacterCodes[CharacterCodes["P"] = 80] = "P"; + CharacterCodes[CharacterCodes["Q"] = 81] = "Q"; + CharacterCodes[CharacterCodes["R"] = 82] = "R"; + CharacterCodes[CharacterCodes["S"] = 83] = "S"; + CharacterCodes[CharacterCodes["T"] = 84] = "T"; + CharacterCodes[CharacterCodes["U"] = 85] = "U"; + CharacterCodes[CharacterCodes["V"] = 86] = "V"; + CharacterCodes[CharacterCodes["W"] = 87] = "W"; + CharacterCodes[CharacterCodes["X"] = 88] = "X"; + CharacterCodes[CharacterCodes["Y"] = 89] = "Y"; + CharacterCodes[CharacterCodes["Z"] = 90] = "Z"; + CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk"; + CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash"; + CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace"; + CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket"; + CharacterCodes[CharacterCodes["colon"] = 58] = "colon"; + CharacterCodes[CharacterCodes["comma"] = 44] = "comma"; + CharacterCodes[CharacterCodes["dot"] = 46] = "dot"; + CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote"; + CharacterCodes[CharacterCodes["minus"] = 45] = "minus"; + CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace"; + CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket"; + CharacterCodes[CharacterCodes["plus"] = 43] = "plus"; + CharacterCodes[CharacterCodes["slash"] = 47] = "slash"; + CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed"; + CharacterCodes[CharacterCodes["tab"] = 9] = "tab"; +})(CharacterCodes || (CharacterCodes = {})); + +const cachedSpaces = new Array(20).fill(0).map((_, index) => { + return ' '.repeat(index); +}); +const maxCachedValues = 200; +const cachedBreakLinesWithSpaces = { + ' ': { + '\n': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\n' + ' '.repeat(index); + }), + '\r': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\r' + ' '.repeat(index); + }), + '\r\n': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\r\n' + ' '.repeat(index); + }), + }, + '\t': { + '\n': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\n' + '\t'.repeat(index); + }), + '\r': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\r' + '\t'.repeat(index); + }), + '\r\n': new Array(maxCachedValues).fill(0).map((_, index) => { + return '\r\n' + '\t'.repeat(index); + }), + } +}; +const supportedEols = ['\n', '\r', '\r\n']; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function format$5(documentText, range, options) { + let initialIndentLevel; + let formatText; + let formatTextStart; + let rangeStart; + let rangeEnd; + if (range) { + rangeStart = range.offset; + rangeEnd = rangeStart + range.length; + formatTextStart = rangeStart; + while (formatTextStart > 0 && !isEOL$3(documentText, formatTextStart - 1)) { + formatTextStart--; + } + let endOffset = rangeEnd; + while (endOffset < documentText.length && !isEOL$3(documentText, endOffset)) { + endOffset++; + } + formatText = documentText.substring(formatTextStart, endOffset); + initialIndentLevel = computeIndentLevel$2(formatText, options); + } + else { + formatText = documentText; + initialIndentLevel = 0; + formatTextStart = 0; + rangeStart = 0; + rangeEnd = documentText.length; + } + const eol = getEOL(options, documentText); + const eolFastPathSupported = supportedEols.includes(eol); + let numberLineBreaks = 0; + let indentLevel = 0; + let indentValue; + if (options.insertSpaces) { + indentValue = cachedSpaces[options.tabSize || 4] ?? repeat$2(cachedSpaces[1], options.tabSize || 4); + } + else { + indentValue = '\t'; + } + const indentType = indentValue === '\t' ? '\t' : ' '; + let scanner = createScanner$2(formatText, false); + let hasError = false; + function newLinesAndIndent() { + if (numberLineBreaks > 1) { + return repeat$2(eol, numberLineBreaks) + repeat$2(indentValue, initialIndentLevel + indentLevel); + } + const amountOfSpaces = indentValue.length * (initialIndentLevel + indentLevel); + if (!eolFastPathSupported || amountOfSpaces > cachedBreakLinesWithSpaces[indentType][eol].length) { + return eol + repeat$2(indentValue, initialIndentLevel + indentLevel); + } + if (amountOfSpaces <= 0) { + return eol; + } + return cachedBreakLinesWithSpaces[indentType][eol][amountOfSpaces]; + } + function scanNext() { + let token = scanner.scan(); + numberLineBreaks = 0; + while (token === 15 /* SyntaxKind.Trivia */ || token === 14 /* SyntaxKind.LineBreakTrivia */) { + if (token === 14 /* SyntaxKind.LineBreakTrivia */ && options.keepLines) { + numberLineBreaks += 1; + } + else if (token === 14 /* SyntaxKind.LineBreakTrivia */) { + numberLineBreaks = 1; + } + token = scanner.scan(); + } + hasError = token === 16 /* SyntaxKind.Unknown */ || scanner.getTokenError() !== 0 /* ScanError.None */; + return token; + } + const editOperations = []; + function addEdit(text, startOffset, endOffset) { + if (!hasError && (!range || (startOffset < rangeEnd && endOffset > rangeStart)) && documentText.substring(startOffset, endOffset) !== text) { + editOperations.push({ offset: startOffset, length: endOffset - startOffset, content: text }); + } + } + let firstToken = scanNext(); + if (options.keepLines && numberLineBreaks > 0) { + addEdit(repeat$2(eol, numberLineBreaks), 0, 0); + } + if (firstToken !== 17 /* SyntaxKind.EOF */) { + let firstTokenStart = scanner.getTokenOffset() + formatTextStart; + let initialIndent = (indentValue.length * initialIndentLevel < 20) && options.insertSpaces + ? cachedSpaces[indentValue.length * initialIndentLevel] + : repeat$2(indentValue, initialIndentLevel); + addEdit(initialIndent, formatTextStart, firstTokenStart); + } + while (firstToken !== 17 /* SyntaxKind.EOF */) { + let firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart; + let secondToken = scanNext(); + let replaceContent = ''; + let needsLineBreak = false; + while (numberLineBreaks === 0 && (secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */)) { + let commentTokenStart = scanner.getTokenOffset() + formatTextStart; + addEdit(cachedSpaces[1], firstTokenEnd, commentTokenStart); + firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart; + needsLineBreak = secondToken === 12 /* SyntaxKind.LineCommentTrivia */; + replaceContent = needsLineBreak ? newLinesAndIndent() : ''; + secondToken = scanNext(); + } + if (secondToken === 2 /* SyntaxKind.CloseBraceToken */) { + if (firstToken !== 1 /* SyntaxKind.OpenBraceToken */) { + indentLevel--; + } + if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 1 /* SyntaxKind.OpenBraceToken */) { + replaceContent = newLinesAndIndent(); + } + else if (options.keepLines) { + replaceContent = cachedSpaces[1]; + } + } + else if (secondToken === 4 /* SyntaxKind.CloseBracketToken */) { + if (firstToken !== 3 /* SyntaxKind.OpenBracketToken */) { + indentLevel--; + } + if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 3 /* SyntaxKind.OpenBracketToken */) { + replaceContent = newLinesAndIndent(); + } + else if (options.keepLines) { + replaceContent = cachedSpaces[1]; + } + } + else { + switch (firstToken) { + case 3 /* SyntaxKind.OpenBracketToken */: + case 1 /* SyntaxKind.OpenBraceToken */: + indentLevel++; + if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) { + replaceContent = newLinesAndIndent(); + } + else { + replaceContent = cachedSpaces[1]; + } + break; + case 5 /* SyntaxKind.CommaToken */: + if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) { + replaceContent = newLinesAndIndent(); + } + else { + replaceContent = cachedSpaces[1]; + } + break; + case 12 /* SyntaxKind.LineCommentTrivia */: + replaceContent = newLinesAndIndent(); + break; + case 13 /* SyntaxKind.BlockCommentTrivia */: + if (numberLineBreaks > 0) { + replaceContent = newLinesAndIndent(); + } + else if (!needsLineBreak) { + replaceContent = cachedSpaces[1]; + } + break; + case 6 /* SyntaxKind.ColonToken */: + if (options.keepLines && numberLineBreaks > 0) { + replaceContent = newLinesAndIndent(); + } + else if (!needsLineBreak) { + replaceContent = cachedSpaces[1]; + } + break; + case 10 /* SyntaxKind.StringLiteral */: + if (options.keepLines && numberLineBreaks > 0) { + replaceContent = newLinesAndIndent(); + } + else if (secondToken === 6 /* SyntaxKind.ColonToken */ && !needsLineBreak) { + replaceContent = ''; + } + break; + case 7 /* SyntaxKind.NullKeyword */: + case 8 /* SyntaxKind.TrueKeyword */: + case 9 /* SyntaxKind.FalseKeyword */: + case 11 /* SyntaxKind.NumericLiteral */: + case 2 /* SyntaxKind.CloseBraceToken */: + case 4 /* SyntaxKind.CloseBracketToken */: + if (options.keepLines && numberLineBreaks > 0) { + replaceContent = newLinesAndIndent(); + } + else { + if ((secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */) && !needsLineBreak) { + replaceContent = cachedSpaces[1]; + } + else if (secondToken !== 5 /* SyntaxKind.CommaToken */ && secondToken !== 17 /* SyntaxKind.EOF */) { + hasError = true; + } + } + break; + case 16 /* SyntaxKind.Unknown */: + hasError = true; + break; + } + if (numberLineBreaks > 0 && (secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */)) { + replaceContent = newLinesAndIndent(); + } + } + if (secondToken === 17 /* SyntaxKind.EOF */) { + if (options.keepLines && numberLineBreaks > 0) { + replaceContent = newLinesAndIndent(); + } + else { + replaceContent = options.insertFinalNewline ? eol : ''; + } + } + const secondTokenStart = scanner.getTokenOffset() + formatTextStart; + addEdit(replaceContent, firstTokenEnd, secondTokenStart); + firstToken = secondToken; + } + return editOperations; +} +function repeat$2(s, count) { + let result = ''; + for (let i = 0; i < count; i++) { + result += s; + } + return result; +} +function computeIndentLevel$2(content, options) { + let i = 0; + let nChars = 0; + const tabSize = options.tabSize || 4; + while (i < content.length) { + let ch = content.charAt(i); + if (ch === cachedSpaces[1]) { + nChars++; + } + else if (ch === '\t') { + nChars += tabSize; + } + else { + break; + } + i++; + } + return Math.floor(nChars / tabSize); +} +function getEOL(options, text) { + for (let i = 0; i < text.length; i++) { + const ch = text.charAt(i); + if (ch === '\r') { + if (i + 1 < text.length && text.charAt(i + 1) === '\n') { + return '\r\n'; + } + return '\r'; + } + else if (ch === '\n') { + return '\n'; + } + } + return (options && options.eol) || '\n'; +} +function isEOL$3(text, offset) { + return '\r\n'.indexOf(text.charAt(offset)) !== -1; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ParseOptions; +(function (ParseOptions) { + ParseOptions.DEFAULT = { + allowTrailingComma: false + }; +})(ParseOptions || (ParseOptions = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore always check the errors list to find out if the input was valid. + */ +function parse$9(text, errors = [], options = ParseOptions.DEFAULT) { + let currentProperty = null; + let currentParent = []; + const previousParents = []; + function onValue(value) { + if (Array.isArray(currentParent)) { + currentParent.push(value); + } + else if (currentProperty !== null) { + currentParent[currentProperty] = value; + } + } + const visitor = { + onObjectBegin: () => { + const object = {}; + onValue(object); + previousParents.push(currentParent); + currentParent = object; + currentProperty = null; + }, + onObjectProperty: (name) => { + currentProperty = name; + }, + onObjectEnd: () => { + currentParent = previousParents.pop(); + }, + onArrayBegin: () => { + const array = []; + onValue(array); + previousParents.push(currentParent); + currentParent = array; + currentProperty = null; + }, + onArrayEnd: () => { + currentParent = previousParents.pop(); + }, + onLiteralValue: onValue, + onError: (error, offset, length) => { + errors.push({ error, offset, length }); + } + }; + visit(text, visitor, options); + return currentParent[0]; +} +/** + * Gets the JSON path of the given JSON DOM node + */ +function getNodePath$3(node) { + if (!node.parent || !node.parent.children) { + return []; + } + const path = getNodePath$3(node.parent); + if (node.parent.type === 'property') { + const key = node.parent.children[0].value; + path.push(key); + } + else if (node.parent.type === 'array') { + const index = node.parent.children.indexOf(node); + if (index !== -1) { + path.push(index); + } + } + return path; +} +/** + * Evaluates the JavaScript object of the given JSON DOM node + */ +function getNodeValue$2(node) { + switch (node.type) { + case 'array': + return node.children.map(getNodeValue$2); + case 'object': + const obj = Object.create(null); + for (let prop of node.children) { + const valueNode = prop.children[1]; + if (valueNode) { + obj[prop.children[0].value] = getNodeValue$2(valueNode); + } + } + return obj; + case 'null': + case 'string': + case 'number': + case 'boolean': + return node.value; + default: + return undefined; + } +} +function contains$1(node, offset, includeRightBound = false) { + return (offset >= node.offset && offset < (node.offset + node.length)) || includeRightBound && (offset === (node.offset + node.length)); +} +/** + * Finds the most inner node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset. + */ +function findNodeAtOffset$1(node, offset, includeRightBound = false) { + if (contains$1(node, offset, includeRightBound)) { + const children = node.children; + if (Array.isArray(children)) { + for (let i = 0; i < children.length && children[i].offset <= offset; i++) { + const item = findNodeAtOffset$1(children[i], offset, includeRightBound); + if (item) { + return item; + } + } + } + return node; + } + return undefined; +} +/** + * Parses the given text and invokes the visitor functions for each object, array and literal reached. + */ +function visit(text, visitor, options = ParseOptions.DEFAULT) { + const _scanner = createScanner$2(text, false); + // Important: Only pass copies of this to visitor functions to prevent accidental modification, and + // to not affect visitor functions which stored a reference to a previous JSONPath + const _jsonPath = []; + // Depth of onXXXBegin() callbacks suppressed. onXXXEnd() decrements this if it isn't 0 already. + // Callbacks are only called when this value is 0. + let suppressedCallbacks = 0; + function toNoArgVisit(visitFunction) { + return visitFunction ? () => suppressedCallbacks === 0 && visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toOneArgVisit(visitFunction) { + return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toOneArgVisitWithPath(visitFunction) { + return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; + } + function toBeginVisit(visitFunction) { + return visitFunction ? + () => { + if (suppressedCallbacks > 0) { + suppressedCallbacks++; + } + else { + let cbReturn = visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()); + if (cbReturn === false) { + suppressedCallbacks = 1; + } + } + } + : () => true; + } + function toEndVisit(visitFunction) { + return visitFunction ? + () => { + if (suppressedCallbacks > 0) { + suppressedCallbacks--; + } + if (suppressedCallbacks === 0) { + visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()); + } + } + : () => true; + } + const onObjectBegin = toBeginVisit(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toEndVisit(visitor.onObjectEnd), onArrayBegin = toBeginVisit(visitor.onArrayBegin), onArrayEnd = toEndVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError); + const disallowComments = options && options.disallowComments; + const allowTrailingComma = options && options.allowTrailingComma; + function scanNext() { + while (true) { + const token = _scanner.scan(); + switch (_scanner.getTokenError()) { + case 4 /* ScanError.InvalidUnicode */: + handleError(14 /* ParseErrorCode.InvalidUnicode */); + break; + case 5 /* ScanError.InvalidEscapeCharacter */: + handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */); + break; + case 3 /* ScanError.UnexpectedEndOfNumber */: + handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */); + break; + case 1 /* ScanError.UnexpectedEndOfComment */: + if (!disallowComments) { + handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */); + } + break; + case 2 /* ScanError.UnexpectedEndOfString */: + handleError(12 /* ParseErrorCode.UnexpectedEndOfString */); + break; + case 6 /* ScanError.InvalidCharacter */: + handleError(16 /* ParseErrorCode.InvalidCharacter */); + break; + } + switch (token) { + case 12 /* SyntaxKind.LineCommentTrivia */: + case 13 /* SyntaxKind.BlockCommentTrivia */: + if (disallowComments) { + handleError(10 /* ParseErrorCode.InvalidCommentToken */); + } + else { + onComment(); + } + break; + case 16 /* SyntaxKind.Unknown */: + handleError(1 /* ParseErrorCode.InvalidSymbol */); + break; + case 15 /* SyntaxKind.Trivia */: + case 14 /* SyntaxKind.LineBreakTrivia */: + break; + default: + return token; + } + } + } + function handleError(error, skipUntilAfter = [], skipUntil = []) { + onError(error); + if (skipUntilAfter.length + skipUntil.length > 0) { + let token = _scanner.getToken(); + while (token !== 17 /* SyntaxKind.EOF */) { + if (skipUntilAfter.indexOf(token) !== -1) { + scanNext(); + break; + } + else if (skipUntil.indexOf(token) !== -1) { + break; + } + token = scanNext(); + } + } + } + function parseString(isValue) { + const value = _scanner.getTokenValue(); + if (isValue) { + onLiteralValue(value); + } + else { + onObjectProperty(value); + // add property name afterwards + _jsonPath.push(value); + } + scanNext(); + return true; + } + function parseLiteral() { + switch (_scanner.getToken()) { + case 11 /* SyntaxKind.NumericLiteral */: + const tokenValue = _scanner.getTokenValue(); + let value = Number(tokenValue); + if (isNaN(value)) { + handleError(2 /* ParseErrorCode.InvalidNumberFormat */); + value = 0; + } + onLiteralValue(value); + break; + case 7 /* SyntaxKind.NullKeyword */: + onLiteralValue(null); + break; + case 8 /* SyntaxKind.TrueKeyword */: + onLiteralValue(true); + break; + case 9 /* SyntaxKind.FalseKeyword */: + onLiteralValue(false); + break; + default: + return false; + } + scanNext(); + return true; + } + function parseProperty() { + if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) { + handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + return false; + } + parseString(false); + if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) { + onSeparator(':'); + scanNext(); // consume colon + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + } + else { + handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + _jsonPath.pop(); // remove processed property name + return true; + } + function parseObject() { + onObjectBegin(); + scanNext(); // consume open brace + let needsComma = false; + while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (!parseProperty()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onObjectEnd(); + if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) { + handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []); + } + else { + scanNext(); // consume close brace + } + return true; + } + function parseArray() { + onArrayBegin(); + scanNext(); // consume open bracket + let isFirstElement = true; + let needsComma = false; + while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (isFirstElement) { + _jsonPath.push(0); + isFirstElement = false; + } + else { + _jsonPath[_jsonPath.length - 1]++; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onArrayEnd(); + if (!isFirstElement) { + _jsonPath.pop(); // remove array index + } + if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) { + handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []); + } + else { + scanNext(); // consume close bracket + } + return true; + } + function parseValue() { + switch (_scanner.getToken()) { + case 3 /* SyntaxKind.OpenBracketToken */: + return parseArray(); + case 1 /* SyntaxKind.OpenBraceToken */: + return parseObject(); + case 10 /* SyntaxKind.StringLiteral */: + return parseString(true); + default: + return parseLiteral(); + } + } + scanNext(); + if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) { + if (options.allowEmptyContent) { + return true; + } + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []); + } + return true; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Creates a JSON scanner on the given text. + * If ignoreTrivia is set, whitespaces or comments are ignored. + */ +const createScanner$1 = createScanner$2; +var ScanError; +(function (ScanError) { + ScanError[ScanError["None"] = 0] = "None"; + ScanError[ScanError["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment"; + ScanError[ScanError["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString"; + ScanError[ScanError["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber"; + ScanError[ScanError["InvalidUnicode"] = 4] = "InvalidUnicode"; + ScanError[ScanError["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter"; + ScanError[ScanError["InvalidCharacter"] = 6] = "InvalidCharacter"; +})(ScanError || (ScanError = {})); +var SyntaxKind; +(function (SyntaxKind) { + SyntaxKind[SyntaxKind["OpenBraceToken"] = 1] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 2] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 3] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 4] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 5] = "CommaToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 6] = "ColonToken"; + SyntaxKind[SyntaxKind["NullKeyword"] = 7] = "NullKeyword"; + SyntaxKind[SyntaxKind["TrueKeyword"] = 8] = "TrueKeyword"; + SyntaxKind[SyntaxKind["FalseKeyword"] = 9] = "FalseKeyword"; + SyntaxKind[SyntaxKind["StringLiteral"] = 10] = "StringLiteral"; + SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral"; + SyntaxKind[SyntaxKind["LineCommentTrivia"] = 12] = "LineCommentTrivia"; + SyntaxKind[SyntaxKind["BlockCommentTrivia"] = 13] = "BlockCommentTrivia"; + SyntaxKind[SyntaxKind["LineBreakTrivia"] = 14] = "LineBreakTrivia"; + SyntaxKind[SyntaxKind["Trivia"] = 15] = "Trivia"; + SyntaxKind[SyntaxKind["Unknown"] = 16] = "Unknown"; + SyntaxKind[SyntaxKind["EOF"] = 17] = "EOF"; +})(SyntaxKind || (SyntaxKind = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore, always check the errors list to find out if the input was valid. + */ +const parse$8 = parse$9; +/** + * Finds the innermost node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset. + */ +const findNodeAtOffset = findNodeAtOffset$1; +/** + * Gets the JSON path of the given JSON DOM node + */ +const getNodePath$2 = getNodePath$3; +/** + * Evaluates the JavaScript object of the given JSON DOM node + */ +const getNodeValue$1 = getNodeValue$2; +var ParseErrorCode; +(function (ParseErrorCode) { + ParseErrorCode[ParseErrorCode["InvalidSymbol"] = 1] = "InvalidSymbol"; + ParseErrorCode[ParseErrorCode["InvalidNumberFormat"] = 2] = "InvalidNumberFormat"; + ParseErrorCode[ParseErrorCode["PropertyNameExpected"] = 3] = "PropertyNameExpected"; + ParseErrorCode[ParseErrorCode["ValueExpected"] = 4] = "ValueExpected"; + ParseErrorCode[ParseErrorCode["ColonExpected"] = 5] = "ColonExpected"; + ParseErrorCode[ParseErrorCode["CommaExpected"] = 6] = "CommaExpected"; + ParseErrorCode[ParseErrorCode["CloseBraceExpected"] = 7] = "CloseBraceExpected"; + ParseErrorCode[ParseErrorCode["CloseBracketExpected"] = 8] = "CloseBracketExpected"; + ParseErrorCode[ParseErrorCode["EndOfFileExpected"] = 9] = "EndOfFileExpected"; + ParseErrorCode[ParseErrorCode["InvalidCommentToken"] = 10] = "InvalidCommentToken"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber"; + ParseErrorCode[ParseErrorCode["InvalidUnicode"] = 14] = "InvalidUnicode"; + ParseErrorCode[ParseErrorCode["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter"; + ParseErrorCode[ParseErrorCode["InvalidCharacter"] = 16] = "InvalidCharacter"; +})(ParseErrorCode || (ParseErrorCode = {})); +/** + * Computes the edit operations needed to format a JSON document. + * + * @param documentText The input text + * @param range The range to format or `undefined` to format the full content + * @param options The formatting options + * @returns The edit operations describing the formatting changes to the original document following the format described in {@linkcode EditResult}. + * To apply the edit operations to the input, use {@linkcode applyEdits}. + */ +function format$4(documentText, range, options) { + return format$5(documentText, range, options); +} + +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.txt in the project root for license information. +*--------------------------------------------------------------------------------------------*/ +function equals(one, other) { + if (one === other) { + return true; + } + if (one === null || one === undefined || other === null || other === undefined) { + return false; + } + if (typeof one !== typeof other) { + return false; + } + if (typeof one !== 'object') { + return false; + } + if ((Array.isArray(one)) !== (Array.isArray(other))) { + return false; + } + let i, key; + if (Array.isArray(one)) { + if (one.length !== other.length) { + return false; + } + for (i = 0; i < one.length; i++) { + if (!equals(one[i], other[i])) { + return false; + } + } + } + else { + const oneKeys = []; + for (key in one) { + oneKeys.push(key); + } + oneKeys.sort(); + const otherKeys = []; + for (key in other) { + otherKeys.push(key); + } + otherKeys.sort(); + if (!equals(oneKeys, otherKeys)) { + return false; + } + for (i = 0; i < oneKeys.length; i++) { + if (!equals(one[oneKeys[i]], other[oneKeys[i]])) { + return false; + } + } + } + return true; +} +function isNumber(val) { + return typeof val === 'number'; +} +function isDefined$2(val) { + return typeof val !== 'undefined'; +} +function isBoolean(val) { + return typeof val === 'boolean'; +} +function isString(val) { + return typeof val === 'string'; +} +function isObject(val) { + return typeof val === 'object' && val !== null && !Array.isArray(val); +} + +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.txt in the project root for license information. +*--------------------------------------------------------------------------------------------*/ +function startsWith$2(haystack, needle) { + if (haystack.length < needle.length) { + return false; + } + for (let i = 0; i < needle.length; i++) { + if (haystack[i] !== needle[i]) { + return false; + } + } + return true; +} +/** + * Determines if haystack ends with needle. + */ +function endsWith$2(haystack, needle) { + const diff = haystack.length - needle.length; + if (diff > 0) { + return haystack.lastIndexOf(needle) === diff; + } + else if (diff === 0) { + return haystack === needle; + } + else { + return false; + } +} +function extendedRegExp(pattern) { + let flags = ''; + if (startsWith$2(pattern, '(?i)')) { + pattern = pattern.substring(4); + flags = 'i'; + } + try { + return new RegExp(pattern, flags + 'u'); + } + catch (e) { + // could be an exception due to the 'u ' flag + try { + return new RegExp(pattern, flags); + } + catch (e) { + // invalid pattern + return undefined; + } + } +} +// from https://tanishiking.github.io/posts/count-unicode-codepoint/#work-hard-with-for-statements +function stringLength(str) { + let count = 0; + for (let i = 0; i < str.length; i++) { + count++; + // obtain the i-th 16-bit + const code = str.charCodeAt(i); + if (0xD800 <= code && code <= 0xDBFF) { + // if the i-th 16bit is an upper surrogate + // skip the next 16 bits (lower surrogate) + i++; + } + } + return count; +} + +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +var DocumentUri; +(function (DocumentUri) { + function is(value) { + return typeof value === 'string'; + } + DocumentUri.is = is; +})(DocumentUri || (DocumentUri = {})); +var URI; +(function (URI) { + function is(value) { + return typeof value === 'string'; + } + URI.is = is; +})(URI || (URI = {})); +var integer; +(function (integer) { + integer.MIN_VALUE = -2147483648; + integer.MAX_VALUE = 2147483647; + function is(value) { + return typeof value === 'number' && integer.MIN_VALUE <= value && value <= integer.MAX_VALUE; + } + integer.is = is; +})(integer || (integer = {})); +var uinteger; +(function (uinteger) { + uinteger.MIN_VALUE = 0; + uinteger.MAX_VALUE = 2147483647; + function is(value) { + return typeof value === 'number' && uinteger.MIN_VALUE <= value && value <= uinteger.MAX_VALUE; + } + uinteger.is = is; +})(uinteger || (uinteger = {})); +/** + * The Position namespace provides helper functions to work with + * {@link Position} literals. + */ +var Position; +(function (Position) { + /** + * Creates a new Position literal from the given line and character. + * @param line The position's line. + * @param character The position's character. + */ + function create(line, character) { + if (line === Number.MAX_VALUE) { + line = uinteger.MAX_VALUE; + } + if (character === Number.MAX_VALUE) { + character = uinteger.MAX_VALUE; + } + return { line, character }; + } + Position.create = create; + /** + * Checks whether the given literal conforms to the {@link Position} interface. + */ + function is(value) { + let candidate = value; + return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character); + } + Position.is = is; +})(Position || (Position = {})); +/** + * The Range namespace provides helper functions to work with + * {@link Range} literals. + */ +var Range$a; +(function (Range) { + function create(one, two, three, four) { + if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) { + return { start: Position.create(one, two), end: Position.create(three, four) }; + } + else if (Position.is(one) && Position.is(two)) { + return { start: one, end: two }; + } + else { + throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`); + } + } + Range.create = create; + /** + * Checks whether the given literal conforms to the {@link Range} interface. + */ + function is(value) { + let candidate = value; + return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end); + } + Range.is = is; +})(Range$a || (Range$a = {})); +/** + * The Location namespace provides helper functions to work with + * {@link Location} literals. + */ +var Location; +(function (Location) { + /** + * Creates a Location literal. + * @param uri The location's uri. + * @param range The location's range. + */ + function create(uri, range) { + return { uri, range }; + } + Location.create = create; + /** + * Checks whether the given literal conforms to the {@link Location} interface. + */ + function is(value) { + let candidate = value; + return Is.objectLiteral(candidate) && Range$a.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri)); + } + Location.is = is; +})(Location || (Location = {})); +/** + * The LocationLink namespace provides helper functions to work with + * {@link LocationLink} literals. + */ +var LocationLink; +(function (LocationLink) { + /** + * Creates a LocationLink literal. + * @param targetUri The definition's uri. + * @param targetRange The full range of the definition. + * @param targetSelectionRange The span of the symbol definition at the target. + * @param originSelectionRange The span of the symbol being defined in the originating source file. + */ + function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) { + return { targetUri, targetRange, targetSelectionRange, originSelectionRange }; + } + LocationLink.create = create; + /** + * Checks whether the given literal conforms to the {@link LocationLink} interface. + */ + function is(value) { + let candidate = value; + return Is.objectLiteral(candidate) && Range$a.is(candidate.targetRange) && Is.string(candidate.targetUri) + && Range$a.is(candidate.targetSelectionRange) + && (Range$a.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange)); + } + LocationLink.is = is; +})(LocationLink || (LocationLink = {})); +/** + * The Color namespace provides helper functions to work with + * {@link Color} literals. + */ +var Color; +(function (Color) { + /** + * Creates a new Color literal. + */ + function create(red, green, blue, alpha) { + return { + red, + green, + blue, + alpha, + }; + } + Color.create = create; + /** + * Checks whether the given literal conforms to the {@link Color} interface. + */ + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) + && Is.numberRange(candidate.green, 0, 1) + && Is.numberRange(candidate.blue, 0, 1) + && Is.numberRange(candidate.alpha, 0, 1); + } + Color.is = is; +})(Color || (Color = {})); +/** + * The ColorInformation namespace provides helper functions to work with + * {@link ColorInformation} literals. + */ +var ColorInformation; +(function (ColorInformation) { + /** + * Creates a new ColorInformation literal. + */ + function create(range, color) { + return { + range, + color, + }; + } + ColorInformation.create = create; + /** + * Checks whether the given literal conforms to the {@link ColorInformation} interface. + */ + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Range$a.is(candidate.range) && Color.is(candidate.color); + } + ColorInformation.is = is; +})(ColorInformation || (ColorInformation = {})); +/** + * The Color namespace provides helper functions to work with + * {@link ColorPresentation} literals. + */ +var ColorPresentation; +(function (ColorPresentation) { + /** + * Creates a new ColorInformation literal. + */ + function create(label, textEdit, additionalTextEdits) { + return { + label, + textEdit, + additionalTextEdits, + }; + } + ColorPresentation.create = create; + /** + * Checks whether the given literal conforms to the {@link ColorInformation} interface. + */ + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.label) + && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) + && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is)); + } + ColorPresentation.is = is; +})(ColorPresentation || (ColorPresentation = {})); +/** + * A set of predefined range kinds. + */ +var FoldingRangeKind; +(function (FoldingRangeKind) { + /** + * Folding range for a comment + */ + FoldingRangeKind.Comment = 'comment'; + /** + * Folding range for an import or include + */ + FoldingRangeKind.Imports = 'imports'; + /** + * Folding range for a region (e.g. `#region`) + */ + FoldingRangeKind.Region = 'region'; +})(FoldingRangeKind || (FoldingRangeKind = {})); +/** + * The folding range namespace provides helper functions to work with + * {@link FoldingRange} literals. + */ +var FoldingRange; +(function (FoldingRange) { + /** + * Creates a new FoldingRange literal. + */ + function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) { + const result = { + startLine, + endLine + }; + if (Is.defined(startCharacter)) { + result.startCharacter = startCharacter; + } + if (Is.defined(endCharacter)) { + result.endCharacter = endCharacter; + } + if (Is.defined(kind)) { + result.kind = kind; + } + if (Is.defined(collapsedText)) { + result.collapsedText = collapsedText; + } + return result; + } + FoldingRange.create = create; + /** + * Checks whether the given literal conforms to the {@link FoldingRange} interface. + */ + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) + && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) + && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) + && (Is.undefined(candidate.kind) || Is.string(candidate.kind)); + } + FoldingRange.is = is; +})(FoldingRange || (FoldingRange = {})); +/** + * The DiagnosticRelatedInformation namespace provides helper functions to work with + * {@link DiagnosticRelatedInformation} literals. + */ +var DiagnosticRelatedInformation; +(function (DiagnosticRelatedInformation) { + /** + * Creates a new DiagnosticRelatedInformation literal. + */ + function create(location, message) { + return { + location, + message + }; + } + DiagnosticRelatedInformation.create = create; + /** + * Checks whether the given literal conforms to the {@link DiagnosticRelatedInformation} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message); + } + DiagnosticRelatedInformation.is = is; +})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {})); +/** + * The diagnostic's severity. + */ +var DiagnosticSeverity; +(function (DiagnosticSeverity) { + /** + * Reports an error. + */ + DiagnosticSeverity.Error = 1; + /** + * Reports a warning. + */ + DiagnosticSeverity.Warning = 2; + /** + * Reports an information. + */ + DiagnosticSeverity.Information = 3; + /** + * Reports a hint. + */ + DiagnosticSeverity.Hint = 4; +})(DiagnosticSeverity || (DiagnosticSeverity = {})); +/** + * The diagnostic tags. + * + * @since 3.15.0 + */ +var DiagnosticTag; +(function (DiagnosticTag) { + /** + * Unused or unnecessary code. + * + * Clients are allowed to render diagnostics with this tag faded out instead of having + * an error squiggle. + */ + DiagnosticTag.Unnecessary = 1; + /** + * Deprecated or obsolete code. + * + * Clients are allowed to rendered diagnostics with this tag strike through. + */ + DiagnosticTag.Deprecated = 2; +})(DiagnosticTag || (DiagnosticTag = {})); +/** + * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes. + * + * @since 3.16.0 + */ +var CodeDescription; +(function (CodeDescription) { + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.href); + } + CodeDescription.is = is; +})(CodeDescription || (CodeDescription = {})); +/** + * The Diagnostic namespace provides helper functions to work with + * {@link Diagnostic} literals. + */ +var Diagnostic; +(function (Diagnostic) { + /** + * Creates a new Diagnostic literal. + */ + function create(range, message, severity, code, source, relatedInformation) { + let result = { range, message }; + if (Is.defined(severity)) { + result.severity = severity; + } + if (Is.defined(code)) { + result.code = code; + } + if (Is.defined(source)) { + result.source = source; + } + if (Is.defined(relatedInformation)) { + result.relatedInformation = relatedInformation; + } + return result; + } + Diagnostic.create = create; + /** + * Checks whether the given literal conforms to the {@link Diagnostic} interface. + */ + function is(value) { + var _a; + let candidate = value; + return Is.defined(candidate) + && Range$a.is(candidate.range) + && Is.string(candidate.message) + && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) + && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) + && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href))) + && (Is.string(candidate.source) || Is.undefined(candidate.source)) + && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is)); + } + Diagnostic.is = is; +})(Diagnostic || (Diagnostic = {})); +/** + * The Command namespace provides helper functions to work with + * {@link Command} literals. + */ +var Command; +(function (Command) { + /** + * Creates a new Command literal. + */ + function create(title, command, ...args) { + let result = { title, command }; + if (Is.defined(args) && args.length > 0) { + result.arguments = args; + } + return result; + } + Command.create = create; + /** + * Checks whether the given literal conforms to the {@link Command} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command); + } + Command.is = is; +})(Command || (Command = {})); +/** + * The TextEdit namespace provides helper function to create replace, + * insert and delete edits more easily. + */ +var TextEdit; +(function (TextEdit) { + /** + * Creates a replace text edit. + * @param range The range of text to be replaced. + * @param newText The new text. + */ + function replace(range, newText) { + return { range, newText }; + } + TextEdit.replace = replace; + /** + * Creates an insert text edit. + * @param position The position to insert the text at. + * @param newText The text to be inserted. + */ + function insert(position, newText) { + return { range: { start: position, end: position }, newText }; + } + TextEdit.insert = insert; + /** + * Creates a delete text edit. + * @param range The range of text to be deleted. + */ + function del(range) { + return { range, newText: '' }; + } + TextEdit.del = del; + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) + && Is.string(candidate.newText) + && Range$a.is(candidate.range); + } + TextEdit.is = is; +})(TextEdit || (TextEdit = {})); +var ChangeAnnotation; +(function (ChangeAnnotation) { + function create(label, needsConfirmation, description) { + const result = { label }; + if (needsConfirmation !== undefined) { + result.needsConfirmation = needsConfirmation; + } + if (description !== undefined) { + result.description = description; + } + return result; + } + ChangeAnnotation.create = create; + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.label) && + (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === undefined) && + (Is.string(candidate.description) || candidate.description === undefined); + } + ChangeAnnotation.is = is; +})(ChangeAnnotation || (ChangeAnnotation = {})); +var ChangeAnnotationIdentifier; +(function (ChangeAnnotationIdentifier) { + function is(value) { + const candidate = value; + return Is.string(candidate); + } + ChangeAnnotationIdentifier.is = is; +})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {})); +var AnnotatedTextEdit; +(function (AnnotatedTextEdit) { + /** + * Creates an annotated replace text edit. + * + * @param range The range of text to be replaced. + * @param newText The new text. + * @param annotation The annotation. + */ + function replace(range, newText, annotation) { + return { range, newText, annotationId: annotation }; + } + AnnotatedTextEdit.replace = replace; + /** + * Creates an annotated insert text edit. + * + * @param position The position to insert the text at. + * @param newText The text to be inserted. + * @param annotation The annotation. + */ + function insert(position, newText, annotation) { + return { range: { start: position, end: position }, newText, annotationId: annotation }; + } + AnnotatedTextEdit.insert = insert; + /** + * Creates an annotated delete text edit. + * + * @param range The range of text to be deleted. + * @param annotation The annotation. + */ + function del(range, annotation) { + return { range, newText: '', annotationId: annotation }; + } + AnnotatedTextEdit.del = del; + function is(value) { + const candidate = value; + return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + AnnotatedTextEdit.is = is; +})(AnnotatedTextEdit || (AnnotatedTextEdit = {})); +/** + * The TextDocumentEdit namespace provides helper function to create + * an edit that manipulates a text document. + */ +var TextDocumentEdit; +(function (TextDocumentEdit) { + /** + * Creates a new `TextDocumentEdit` + */ + function create(textDocument, edits) { + return { textDocument, edits }; + } + TextDocumentEdit.create = create; + function is(value) { + let candidate = value; + return Is.defined(candidate) + && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) + && Array.isArray(candidate.edits); + } + TextDocumentEdit.is = is; +})(TextDocumentEdit || (TextDocumentEdit = {})); +var CreateFile; +(function (CreateFile) { + function create(uri, options, annotation) { + let result = { + kind: 'create', + uri + }; + if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) { + result.options = options; + } + if (annotation !== undefined) { + result.annotationId = annotation; + } + return result; + } + CreateFile.create = create; + function is(value) { + let candidate = value; + return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined || + ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + CreateFile.is = is; +})(CreateFile || (CreateFile = {})); +var RenameFile; +(function (RenameFile) { + function create(oldUri, newUri, options, annotation) { + let result = { + kind: 'rename', + oldUri, + newUri + }; + if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) { + result.options = options; + } + if (annotation !== undefined) { + result.annotationId = annotation; + } + return result; + } + RenameFile.create = create; + function is(value) { + let candidate = value; + return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined || + ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + RenameFile.is = is; +})(RenameFile || (RenameFile = {})); +var DeleteFile; +(function (DeleteFile) { + function create(uri, options, annotation) { + let result = { + kind: 'delete', + uri + }; + if (options !== undefined && (options.recursive !== undefined || options.ignoreIfNotExists !== undefined)) { + result.options = options; + } + if (annotation !== undefined) { + result.annotationId = annotation; + } + return result; + } + DeleteFile.create = create; + function is(value) { + let candidate = value; + return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined || + ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + DeleteFile.is = is; +})(DeleteFile || (DeleteFile = {})); +var WorkspaceEdit; +(function (WorkspaceEdit) { + function is(value) { + let candidate = value; + return candidate && + (candidate.changes !== undefined || candidate.documentChanges !== undefined) && + (candidate.documentChanges === undefined || candidate.documentChanges.every((change) => { + if (Is.string(change.kind)) { + return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change); + } + else { + return TextDocumentEdit.is(change); + } + })); + } + WorkspaceEdit.is = is; +})(WorkspaceEdit || (WorkspaceEdit = {})); +/** + * The TextDocumentIdentifier namespace provides helper functions to work with + * {@link TextDocumentIdentifier} literals. + */ +var TextDocumentIdentifier; +(function (TextDocumentIdentifier) { + /** + * Creates a new TextDocumentIdentifier literal. + * @param uri The document's uri. + */ + function create(uri) { + return { uri }; + } + TextDocumentIdentifier.create = create; + /** + * Checks whether the given literal conforms to the {@link TextDocumentIdentifier} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri); + } + TextDocumentIdentifier.is = is; +})(TextDocumentIdentifier || (TextDocumentIdentifier = {})); +/** + * The VersionedTextDocumentIdentifier namespace provides helper functions to work with + * {@link VersionedTextDocumentIdentifier} literals. + */ +var VersionedTextDocumentIdentifier; +(function (VersionedTextDocumentIdentifier) { + /** + * Creates a new VersionedTextDocumentIdentifier literal. + * @param uri The document's uri. + * @param version The document's version. + */ + function create(uri, version) { + return { uri, version }; + } + VersionedTextDocumentIdentifier.create = create; + /** + * Checks whether the given literal conforms to the {@link VersionedTextDocumentIdentifier} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version); + } + VersionedTextDocumentIdentifier.is = is; +})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {})); +/** + * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with + * {@link OptionalVersionedTextDocumentIdentifier} literals. + */ +var OptionalVersionedTextDocumentIdentifier; +(function (OptionalVersionedTextDocumentIdentifier) { + /** + * Creates a new OptionalVersionedTextDocumentIdentifier literal. + * @param uri The document's uri. + * @param version The document's version. + */ + function create(uri, version) { + return { uri, version }; + } + OptionalVersionedTextDocumentIdentifier.create = create; + /** + * Checks whether the given literal conforms to the {@link OptionalVersionedTextDocumentIdentifier} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version)); + } + OptionalVersionedTextDocumentIdentifier.is = is; +})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {})); +/** + * The TextDocumentItem namespace provides helper functions to work with + * {@link TextDocumentItem} literals. + */ +var TextDocumentItem; +(function (TextDocumentItem) { + /** + * Creates a new TextDocumentItem literal. + * @param uri The document's uri. + * @param languageId The document's language identifier. + * @param version The document's version number. + * @param text The document's text. + */ + function create(uri, languageId, version, text) { + return { uri, languageId, version, text }; + } + TextDocumentItem.create = create; + /** + * Checks whether the given literal conforms to the {@link TextDocumentItem} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text); + } + TextDocumentItem.is = is; +})(TextDocumentItem || (TextDocumentItem = {})); +/** + * Describes the content type that a client supports in various + * result literals like `Hover`, `ParameterInfo` or `CompletionItem`. + * + * Please note that `MarkupKinds` must not start with a `$`. This kinds + * are reserved for internal usage. + */ +var MarkupKind; +(function (MarkupKind) { + /** + * Plain text is supported as a content format + */ + MarkupKind.PlainText = 'plaintext'; + /** + * Markdown is supported as a content format + */ + MarkupKind.Markdown = 'markdown'; + /** + * Checks whether the given value is a value of the {@link MarkupKind} type. + */ + function is(value) { + const candidate = value; + return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown; + } + MarkupKind.is = is; +})(MarkupKind || (MarkupKind = {})); +var MarkupContent; +(function (MarkupContent) { + /** + * Checks whether the given value conforms to the {@link MarkupContent} interface. + */ + function is(value) { + const candidate = value; + return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value); + } + MarkupContent.is = is; +})(MarkupContent || (MarkupContent = {})); +/** + * The kind of a completion entry. + */ +var CompletionItemKind; +(function (CompletionItemKind) { + CompletionItemKind.Text = 1; + CompletionItemKind.Method = 2; + CompletionItemKind.Function = 3; + CompletionItemKind.Constructor = 4; + CompletionItemKind.Field = 5; + CompletionItemKind.Variable = 6; + CompletionItemKind.Class = 7; + CompletionItemKind.Interface = 8; + CompletionItemKind.Module = 9; + CompletionItemKind.Property = 10; + CompletionItemKind.Unit = 11; + CompletionItemKind.Value = 12; + CompletionItemKind.Enum = 13; + CompletionItemKind.Keyword = 14; + CompletionItemKind.Snippet = 15; + CompletionItemKind.Color = 16; + CompletionItemKind.File = 17; + CompletionItemKind.Reference = 18; + CompletionItemKind.Folder = 19; + CompletionItemKind.EnumMember = 20; + CompletionItemKind.Constant = 21; + CompletionItemKind.Struct = 22; + CompletionItemKind.Event = 23; + CompletionItemKind.Operator = 24; + CompletionItemKind.TypeParameter = 25; +})(CompletionItemKind || (CompletionItemKind = {})); +/** + * Defines whether the insert text in a completion item should be interpreted as + * plain text or a snippet. + */ +var InsertTextFormat; +(function (InsertTextFormat) { + /** + * The primary text to be inserted is treated as a plain string. + */ + InsertTextFormat.PlainText = 1; + /** + * The primary text to be inserted is treated as a snippet. + * + * A snippet can define tab stops and placeholders with `$1`, `$2` + * and `${3:foo}`. `$0` defines the final tab stop, it defaults to + * the end of the snippet. Placeholders with equal identifiers are linked, + * that is typing in one will update others too. + * + * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax + */ + InsertTextFormat.Snippet = 2; +})(InsertTextFormat || (InsertTextFormat = {})); +/** + * Completion item tags are extra annotations that tweak the rendering of a completion + * item. + * + * @since 3.15.0 + */ +var CompletionItemTag; +(function (CompletionItemTag) { + /** + * Render a completion as obsolete, usually using a strike-out. + */ + CompletionItemTag.Deprecated = 1; +})(CompletionItemTag || (CompletionItemTag = {})); +/** + * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits. + * + * @since 3.16.0 + */ +var InsertReplaceEdit; +(function (InsertReplaceEdit) { + /** + * Creates a new insert / replace edit + */ + function create(newText, insert, replace) { + return { newText, insert, replace }; + } + InsertReplaceEdit.create = create; + /** + * Checks whether the given literal conforms to the {@link InsertReplaceEdit} interface. + */ + function is(value) { + const candidate = value; + return candidate && Is.string(candidate.newText) && Range$a.is(candidate.insert) && Range$a.is(candidate.replace); + } + InsertReplaceEdit.is = is; +})(InsertReplaceEdit || (InsertReplaceEdit = {})); +/** + * How whitespace and indentation is handled during completion + * item insertion. + * + * @since 3.16.0 + */ +var InsertTextMode; +(function (InsertTextMode) { + /** + * The insertion or replace strings is taken as it is. If the + * value is multi line the lines below the cursor will be + * inserted using the indentation defined in the string value. + * The client will not apply any kind of adjustments to the + * string. + */ + InsertTextMode.asIs = 1; + /** + * The editor adjusts leading whitespace of new lines so that + * they match the indentation up to the cursor of the line for + * which the item is accepted. + * + * Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a + * multi line completion item is indented using 2 tabs and all + * following lines inserted will be indented using 2 tabs as well. + */ + InsertTextMode.adjustIndentation = 2; +})(InsertTextMode || (InsertTextMode = {})); +var CompletionItemLabelDetails; +(function (CompletionItemLabelDetails) { + function is(value) { + const candidate = value; + return candidate && (Is.string(candidate.detail) || candidate.detail === undefined) && + (Is.string(candidate.description) || candidate.description === undefined); + } + CompletionItemLabelDetails.is = is; +})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {})); +/** + * The CompletionItem namespace provides functions to deal with + * completion items. + */ +var CompletionItem; +(function (CompletionItem) { + /** + * Create a completion item and seed it with a label. + * @param label The completion item's label + */ + function create(label) { + return { label }; + } + CompletionItem.create = create; +})(CompletionItem || (CompletionItem = {})); +/** + * The CompletionList namespace provides functions to deal with + * completion lists. + */ +var CompletionList; +(function (CompletionList) { + /** + * Creates a new completion list. + * + * @param items The completion items. + * @param isIncomplete The list is not complete. + */ + function create(items, isIncomplete) { + return { items: items ? items : [], isIncomplete: !!isIncomplete }; + } + CompletionList.create = create; +})(CompletionList || (CompletionList = {})); +var MarkedString; +(function (MarkedString) { + /** + * Creates a marked string from plain text. + * + * @param plainText The plain text. + */ + function fromPlainText(plainText) { + return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash + } + MarkedString.fromPlainText = fromPlainText; + /** + * Checks whether the given value conforms to the {@link MarkedString} type. + */ + function is(value) { + const candidate = value; + return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value)); + } + MarkedString.is = is; +})(MarkedString || (MarkedString = {})); +var Hover; +(function (Hover) { + /** + * Checks whether the given value conforms to the {@link Hover} interface. + */ + function is(value) { + let candidate = value; + return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || + MarkedString.is(candidate.contents) || + Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range$a.is(value.range)); + } + Hover.is = is; +})(Hover || (Hover = {})); +/** + * The ParameterInformation namespace provides helper functions to work with + * {@link ParameterInformation} literals. + */ +var ParameterInformation; +(function (ParameterInformation) { + /** + * Creates a new parameter information literal. + * + * @param label A label string. + * @param documentation A doc string. + */ + function create(label, documentation) { + return documentation ? { label, documentation } : { label }; + } + ParameterInformation.create = create; +})(ParameterInformation || (ParameterInformation = {})); +/** + * The SignatureInformation namespace provides helper functions to work with + * {@link SignatureInformation} literals. + */ +var SignatureInformation; +(function (SignatureInformation) { + function create(label, documentation, ...parameters) { + let result = { label }; + if (Is.defined(documentation)) { + result.documentation = documentation; + } + if (Is.defined(parameters)) { + result.parameters = parameters; + } + else { + result.parameters = []; + } + return result; + } + SignatureInformation.create = create; +})(SignatureInformation || (SignatureInformation = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind.Text = 1; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind.Read = 2; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind.Write = 3; +})(DocumentHighlightKind || (DocumentHighlightKind = {})); +/** + * DocumentHighlight namespace to provide helper functions to work with + * {@link DocumentHighlight} literals. + */ +var DocumentHighlight; +(function (DocumentHighlight) { + /** + * Create a DocumentHighlight object. + * @param range The range the highlight applies to. + * @param kind The highlight kind + */ + function create(range, kind) { + let result = { range }; + if (Is.number(kind)) { + result.kind = kind; + } + return result; + } + DocumentHighlight.create = create; +})(DocumentHighlight || (DocumentHighlight = {})); +/** + * A symbol kind. + */ +var SymbolKind$1; +(function (SymbolKind) { + SymbolKind.File = 1; + SymbolKind.Module = 2; + SymbolKind.Namespace = 3; + SymbolKind.Package = 4; + SymbolKind.Class = 5; + SymbolKind.Method = 6; + SymbolKind.Property = 7; + SymbolKind.Field = 8; + SymbolKind.Constructor = 9; + SymbolKind.Enum = 10; + SymbolKind.Interface = 11; + SymbolKind.Function = 12; + SymbolKind.Variable = 13; + SymbolKind.Constant = 14; + SymbolKind.String = 15; + SymbolKind.Number = 16; + SymbolKind.Boolean = 17; + SymbolKind.Array = 18; + SymbolKind.Object = 19; + SymbolKind.Key = 20; + SymbolKind.Null = 21; + SymbolKind.EnumMember = 22; + SymbolKind.Struct = 23; + SymbolKind.Event = 24; + SymbolKind.Operator = 25; + SymbolKind.TypeParameter = 26; +})(SymbolKind$1 || (SymbolKind$1 = {})); +/** + * Symbol tags are extra annotations that tweak the rendering of a symbol. + * + * @since 3.16 + */ +var SymbolTag; +(function (SymbolTag) { + /** + * Render a symbol as obsolete, usually using a strike-out. + */ + SymbolTag.Deprecated = 1; +})(SymbolTag || (SymbolTag = {})); +var SymbolInformation; +(function (SymbolInformation) { + /** + * Creates a new symbol information literal. + * + * @param name The name of the symbol. + * @param kind The kind of the symbol. + * @param range The range of the location of the symbol. + * @param uri The resource of the location of symbol. + * @param containerName The name of the symbol containing the symbol. + */ + function create(name, kind, range, uri, containerName) { + let result = { + name, + kind, + location: { uri, range } + }; + if (containerName) { + result.containerName = containerName; + } + return result; + } + SymbolInformation.create = create; +})(SymbolInformation || (SymbolInformation = {})); +var WorkspaceSymbol; +(function (WorkspaceSymbol) { + /** + * Create a new workspace symbol. + * + * @param name The name of the symbol. + * @param kind The kind of the symbol. + * @param uri The resource of the location of the symbol. + * @param range An options range of the location. + * @returns A WorkspaceSymbol. + */ + function create(name, kind, uri, range) { + return range !== undefined + ? { name, kind, location: { uri, range } } + : { name, kind, location: { uri } }; + } + WorkspaceSymbol.create = create; +})(WorkspaceSymbol || (WorkspaceSymbol = {})); +var DocumentSymbol; +(function (DocumentSymbol) { + /** + * Creates a new symbol information literal. + * + * @param name The name of the symbol. + * @param detail The detail of the symbol. + * @param kind The kind of the symbol. + * @param range The range of the symbol. + * @param selectionRange The selectionRange of the symbol. + * @param children Children of the symbol. + */ + function create(name, detail, kind, range, selectionRange, children) { + let result = { + name, + detail, + kind, + range, + selectionRange + }; + if (children !== undefined) { + result.children = children; + } + return result; + } + DocumentSymbol.create = create; + /** + * Checks whether the given literal conforms to the {@link DocumentSymbol} interface. + */ + function is(value) { + let candidate = value; + return candidate && + Is.string(candidate.name) && Is.number(candidate.kind) && + Range$a.is(candidate.range) && Range$a.is(candidate.selectionRange) && + (candidate.detail === undefined || Is.string(candidate.detail)) && + (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) && + (candidate.children === undefined || Array.isArray(candidate.children)) && + (candidate.tags === undefined || Array.isArray(candidate.tags)); + } + DocumentSymbol.is = is; +})(DocumentSymbol || (DocumentSymbol = {})); +/** + * A set of predefined code action kinds + */ +var CodeActionKind; +(function (CodeActionKind) { + /** + * Empty kind. + */ + CodeActionKind.Empty = ''; + /** + * Base kind for quickfix actions: 'quickfix' + */ + CodeActionKind.QuickFix = 'quickfix'; + /** + * Base kind for refactoring actions: 'refactor' + */ + CodeActionKind.Refactor = 'refactor'; + /** + * Base kind for refactoring extraction actions: 'refactor.extract' + * + * Example extract actions: + * + * - Extract method + * - Extract function + * - Extract variable + * - Extract interface from class + * - ... + */ + CodeActionKind.RefactorExtract = 'refactor.extract'; + /** + * Base kind for refactoring inline actions: 'refactor.inline' + * + * Example inline actions: + * + * - Inline function + * - Inline variable + * - Inline constant + * - ... + */ + CodeActionKind.RefactorInline = 'refactor.inline'; + /** + * Base kind for refactoring rewrite actions: 'refactor.rewrite' + * + * Example rewrite actions: + * + * - Convert JavaScript function to class + * - Add or remove parameter + * - Encapsulate field + * - Make method static + * - Move method to base class + * - ... + */ + CodeActionKind.RefactorRewrite = 'refactor.rewrite'; + /** + * Base kind for source actions: `source` + * + * Source code actions apply to the entire file. + */ + CodeActionKind.Source = 'source'; + /** + * Base kind for an organize imports source action: `source.organizeImports` + */ + CodeActionKind.SourceOrganizeImports = 'source.organizeImports'; + /** + * Base kind for auto-fix source actions: `source.fixAll`. + * + * Fix all actions automatically fix errors that have a clear fix that do not require user input. + * They should not suppress errors or perform unsafe fixes such as generating new types or classes. + * + * @since 3.15.0 + */ + CodeActionKind.SourceFixAll = 'source.fixAll'; +})(CodeActionKind || (CodeActionKind = {})); +/** + * The reason why code actions were requested. + * + * @since 3.17.0 + */ +var CodeActionTriggerKind; +(function (CodeActionTriggerKind) { + /** + * Code actions were explicitly requested by the user or by an extension. + */ + CodeActionTriggerKind.Invoked = 1; + /** + * Code actions were requested automatically. + * + * This typically happens when current selection in a file changes, but can + * also be triggered when file content changes. + */ + CodeActionTriggerKind.Automatic = 2; +})(CodeActionTriggerKind || (CodeActionTriggerKind = {})); +/** + * The CodeActionContext namespace provides helper functions to work with + * {@link CodeActionContext} literals. + */ +var CodeActionContext; +(function (CodeActionContext) { + /** + * Creates a new CodeActionContext literal. + */ + function create(diagnostics, only, triggerKind) { + let result = { diagnostics }; + if (only !== undefined && only !== null) { + result.only = only; + } + if (triggerKind !== undefined && triggerKind !== null) { + result.triggerKind = triggerKind; + } + return result; + } + CodeActionContext.create = create; + /** + * Checks whether the given literal conforms to the {@link CodeActionContext} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) + && (candidate.only === undefined || Is.typedArray(candidate.only, Is.string)) + && (candidate.triggerKind === undefined || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic); + } + CodeActionContext.is = is; +})(CodeActionContext || (CodeActionContext = {})); +var CodeAction; +(function (CodeAction) { + function create(title, kindOrCommandOrEdit, kind) { + let result = { title }; + let checkKind = true; + if (typeof kindOrCommandOrEdit === 'string') { + checkKind = false; + result.kind = kindOrCommandOrEdit; + } + else if (Command.is(kindOrCommandOrEdit)) { + result.command = kindOrCommandOrEdit; + } + else { + result.edit = kindOrCommandOrEdit; + } + if (checkKind && kind !== undefined) { + result.kind = kind; + } + return result; + } + CodeAction.create = create; + function is(value) { + let candidate = value; + return candidate && Is.string(candidate.title) && + (candidate.diagnostics === undefined || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && + (candidate.kind === undefined || Is.string(candidate.kind)) && + (candidate.edit !== undefined || candidate.command !== undefined) && + (candidate.command === undefined || Command.is(candidate.command)) && + (candidate.isPreferred === undefined || Is.boolean(candidate.isPreferred)) && + (candidate.edit === undefined || WorkspaceEdit.is(candidate.edit)); + } + CodeAction.is = is; +})(CodeAction || (CodeAction = {})); +/** + * The CodeLens namespace provides helper functions to work with + * {@link CodeLens} literals. + */ +var CodeLens; +(function (CodeLens) { + /** + * Creates a new CodeLens literal. + */ + function create(range, data) { + let result = { range }; + if (Is.defined(data)) { + result.data = data; + } + return result; + } + CodeLens.create = create; + /** + * Checks whether the given literal conforms to the {@link CodeLens} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Range$a.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command)); + } + CodeLens.is = is; +})(CodeLens || (CodeLens = {})); +/** + * The FormattingOptions namespace provides helper functions to work with + * {@link FormattingOptions} literals. + */ +var FormattingOptions; +(function (FormattingOptions) { + /** + * Creates a new FormattingOptions literal. + */ + function create(tabSize, insertSpaces) { + return { tabSize, insertSpaces }; + } + FormattingOptions.create = create; + /** + * Checks whether the given literal conforms to the {@link FormattingOptions} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces); + } + FormattingOptions.is = is; +})(FormattingOptions || (FormattingOptions = {})); +/** + * The DocumentLink namespace provides helper functions to work with + * {@link DocumentLink} literals. + */ +var DocumentLink; +(function (DocumentLink) { + /** + * Creates a new DocumentLink literal. + */ + function create(range, target, data) { + return { range, target, data }; + } + DocumentLink.create = create; + /** + * Checks whether the given literal conforms to the {@link DocumentLink} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Range$a.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target)); + } + DocumentLink.is = is; +})(DocumentLink || (DocumentLink = {})); +/** + * The SelectionRange namespace provides helper function to work with + * SelectionRange literals. + */ +var SelectionRange; +(function (SelectionRange) { + /** + * Creates a new SelectionRange + * @param range the range. + * @param parent an optional parent. + */ + function create(range, parent) { + return { range, parent }; + } + SelectionRange.create = create; + function is(value) { + let candidate = value; + return Is.objectLiteral(candidate) && Range$a.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent)); + } + SelectionRange.is = is; +})(SelectionRange || (SelectionRange = {})); +/** + * A set of predefined token types. This set is not fixed + * an clients can specify additional token types via the + * corresponding client capabilities. + * + * @since 3.16.0 + */ +var SemanticTokenTypes; +(function (SemanticTokenTypes) { + SemanticTokenTypes["namespace"] = "namespace"; + /** + * Represents a generic type. Acts as a fallback for types which can't be mapped to + * a specific type like class or enum. + */ + SemanticTokenTypes["type"] = "type"; + SemanticTokenTypes["class"] = "class"; + SemanticTokenTypes["enum"] = "enum"; + SemanticTokenTypes["interface"] = "interface"; + SemanticTokenTypes["struct"] = "struct"; + SemanticTokenTypes["typeParameter"] = "typeParameter"; + SemanticTokenTypes["parameter"] = "parameter"; + SemanticTokenTypes["variable"] = "variable"; + SemanticTokenTypes["property"] = "property"; + SemanticTokenTypes["enumMember"] = "enumMember"; + SemanticTokenTypes["event"] = "event"; + SemanticTokenTypes["function"] = "function"; + SemanticTokenTypes["method"] = "method"; + SemanticTokenTypes["macro"] = "macro"; + SemanticTokenTypes["keyword"] = "keyword"; + SemanticTokenTypes["modifier"] = "modifier"; + SemanticTokenTypes["comment"] = "comment"; + SemanticTokenTypes["string"] = "string"; + SemanticTokenTypes["number"] = "number"; + SemanticTokenTypes["regexp"] = "regexp"; + SemanticTokenTypes["operator"] = "operator"; + /** + * @since 3.17.0 + */ + SemanticTokenTypes["decorator"] = "decorator"; +})(SemanticTokenTypes || (SemanticTokenTypes = {})); +/** + * A set of predefined token modifiers. This set is not fixed + * an clients can specify additional token types via the + * corresponding client capabilities. + * + * @since 3.16.0 + */ +var SemanticTokenModifiers; +(function (SemanticTokenModifiers) { + SemanticTokenModifiers["declaration"] = "declaration"; + SemanticTokenModifiers["definition"] = "definition"; + SemanticTokenModifiers["readonly"] = "readonly"; + SemanticTokenModifiers["static"] = "static"; + SemanticTokenModifiers["deprecated"] = "deprecated"; + SemanticTokenModifiers["abstract"] = "abstract"; + SemanticTokenModifiers["async"] = "async"; + SemanticTokenModifiers["modification"] = "modification"; + SemanticTokenModifiers["documentation"] = "documentation"; + SemanticTokenModifiers["defaultLibrary"] = "defaultLibrary"; +})(SemanticTokenModifiers || (SemanticTokenModifiers = {})); +/** + * @since 3.16.0 + */ +var SemanticTokens; +(function (SemanticTokens) { + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && (candidate.resultId === undefined || typeof candidate.resultId === 'string') && + Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === 'number'); + } + SemanticTokens.is = is; +})(SemanticTokens || (SemanticTokens = {})); +/** + * The InlineValueText namespace provides functions to deal with InlineValueTexts. + * + * @since 3.17.0 + */ +var InlineValueText; +(function (InlineValueText) { + /** + * Creates a new InlineValueText literal. + */ + function create(range, text) { + return { range, text }; + } + InlineValueText.create = create; + function is(value) { + const candidate = value; + return candidate !== undefined && candidate !== null && Range$a.is(candidate.range) && Is.string(candidate.text); + } + InlineValueText.is = is; +})(InlineValueText || (InlineValueText = {})); +/** + * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups. + * + * @since 3.17.0 + */ +var InlineValueVariableLookup; +(function (InlineValueVariableLookup) { + /** + * Creates a new InlineValueText literal. + */ + function create(range, variableName, caseSensitiveLookup) { + return { range, variableName, caseSensitiveLookup }; + } + InlineValueVariableLookup.create = create; + function is(value) { + const candidate = value; + return candidate !== undefined && candidate !== null && Range$a.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) + && (Is.string(candidate.variableName) || candidate.variableName === undefined); + } + InlineValueVariableLookup.is = is; +})(InlineValueVariableLookup || (InlineValueVariableLookup = {})); +/** + * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression. + * + * @since 3.17.0 + */ +var InlineValueEvaluatableExpression; +(function (InlineValueEvaluatableExpression) { + /** + * Creates a new InlineValueEvaluatableExpression literal. + */ + function create(range, expression) { + return { range, expression }; + } + InlineValueEvaluatableExpression.create = create; + function is(value) { + const candidate = value; + return candidate !== undefined && candidate !== null && Range$a.is(candidate.range) + && (Is.string(candidate.expression) || candidate.expression === undefined); + } + InlineValueEvaluatableExpression.is = is; +})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {})); +/** + * The InlineValueContext namespace provides helper functions to work with + * {@link InlineValueContext} literals. + * + * @since 3.17.0 + */ +var InlineValueContext; +(function (InlineValueContext) { + /** + * Creates a new InlineValueContext literal. + */ + function create(frameId, stoppedLocation) { + return { frameId, stoppedLocation }; + } + InlineValueContext.create = create; + /** + * Checks whether the given literal conforms to the {@link InlineValueContext} interface. + */ + function is(value) { + const candidate = value; + return Is.defined(candidate) && Range$a.is(value.stoppedLocation); + } + InlineValueContext.is = is; +})(InlineValueContext || (InlineValueContext = {})); +/** + * Inlay hint kinds. + * + * @since 3.17.0 + */ +var InlayHintKind; +(function (InlayHintKind) { + /** + * An inlay hint that for a type annotation. + */ + InlayHintKind.Type = 1; + /** + * An inlay hint that is for a parameter. + */ + InlayHintKind.Parameter = 2; + function is(value) { + return value === 1 || value === 2; + } + InlayHintKind.is = is; +})(InlayHintKind || (InlayHintKind = {})); +var InlayHintLabelPart; +(function (InlayHintLabelPart) { + function create(value) { + return { value }; + } + InlayHintLabelPart.create = create; + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) + && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) + && (candidate.location === undefined || Location.is(candidate.location)) + && (candidate.command === undefined || Command.is(candidate.command)); + } + InlayHintLabelPart.is = is; +})(InlayHintLabelPart || (InlayHintLabelPart = {})); +var InlayHint; +(function (InlayHint) { + function create(position, label, kind) { + const result = { position, label }; + if (kind !== undefined) { + result.kind = kind; + } + return result; + } + InlayHint.create = create; + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && Position.is(candidate.position) + && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) + && (candidate.kind === undefined || InlayHintKind.is(candidate.kind)) + && (candidate.textEdits === undefined) || Is.typedArray(candidate.textEdits, TextEdit.is) + && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) + && (candidate.paddingLeft === undefined || Is.boolean(candidate.paddingLeft)) + && (candidate.paddingRight === undefined || Is.boolean(candidate.paddingRight)); + } + InlayHint.is = is; +})(InlayHint || (InlayHint = {})); +var StringValue; +(function (StringValue) { + function createSnippet(value) { + return { kind: 'snippet', value }; + } + StringValue.createSnippet = createSnippet; +})(StringValue || (StringValue = {})); +var InlineCompletionItem; +(function (InlineCompletionItem) { + function create(insertText, filterText, range, command) { + return { insertText, filterText, range, command }; + } + InlineCompletionItem.create = create; +})(InlineCompletionItem || (InlineCompletionItem = {})); +var InlineCompletionList; +(function (InlineCompletionList) { + function create(items) { + return { items }; + } + InlineCompletionList.create = create; +})(InlineCompletionList || (InlineCompletionList = {})); +/** + * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered. + * + * @since 3.18.0 + * @proposed + */ +var InlineCompletionTriggerKind; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered explicitly by a user gesture. + */ + InlineCompletionTriggerKind.Invoked = 0; + /** + * Completion was triggered automatically while editing. + */ + InlineCompletionTriggerKind.Automatic = 1; +})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {})); +var SelectedCompletionInfo; +(function (SelectedCompletionInfo) { + function create(range, text) { + return { range, text }; + } + SelectedCompletionInfo.create = create; +})(SelectedCompletionInfo || (SelectedCompletionInfo = {})); +var InlineCompletionContext; +(function (InlineCompletionContext) { + function create(triggerKind, selectedCompletionInfo) { + return { triggerKind, selectedCompletionInfo }; + } + InlineCompletionContext.create = create; +})(InlineCompletionContext || (InlineCompletionContext = {})); +var WorkspaceFolder; +(function (WorkspaceFolder) { + function is(value) { + const candidate = value; + return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name); + } + WorkspaceFolder.is = is; +})(WorkspaceFolder || (WorkspaceFolder = {})); +/** + * @deprecated Use the text document from the new vscode-languageserver-textdocument package. + */ +var TextDocument; +(function (TextDocument) { + /** + * Creates a new ITextDocument literal from the given uri and content. + * @param uri The document's uri. + * @param languageId The document's language Id. + * @param version The document's version. + * @param content The document's content. + */ + function create(uri, languageId, version, content) { + return new FullTextDocument(uri, languageId, version, content); + } + TextDocument.create = create; + /** + * Checks whether the given literal conforms to the {@link ITextDocument} interface. + */ + function is(value) { + let candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) + && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false; + } + TextDocument.is = is; + function applyEdits(document, edits) { + let text = document.getText(); + let sortedEdits = mergeSort(edits, (a, b) => { + let diff = a.range.start.line - b.range.start.line; + if (diff === 0) { + return a.range.start.character - b.range.start.character; + } + return diff; + }); + let lastModifiedOffset = text.length; + for (let i = sortedEdits.length - 1; i >= 0; i--) { + let e = sortedEdits[i]; + let startOffset = document.offsetAt(e.range.start); + let endOffset = document.offsetAt(e.range.end); + if (endOffset <= lastModifiedOffset) { + text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length); + } + else { + throw new Error('Overlapping edit'); + } + lastModifiedOffset = startOffset; + } + return text; + } + TextDocument.applyEdits = applyEdits; + function mergeSort(data, compare) { + if (data.length <= 1) { + // sorted + return data; + } + const p = (data.length / 2) | 0; + const left = data.slice(0, p); + const right = data.slice(p); + mergeSort(left, compare); + mergeSort(right, compare); + let leftIdx = 0; + let rightIdx = 0; + let i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + let ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + // smaller_equal -> take left to preserve order + data[i++] = left[leftIdx++]; + } + else { + // greater -> take right + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; + } +})(TextDocument || (TextDocument = {})); +/** + * @deprecated Use the text document from the new vscode-languageserver-textdocument package. + */ +class FullTextDocument { + constructor(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = undefined; + } + get uri() { + return this._uri; + } + get languageId() { + return this._languageId; + } + get version() { + return this._version; + } + getText(range) { + if (range) { + let start = this.offsetAt(range.start); + let end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + } + update(event, version) { + this._content = event.text; + this._version = version; + this._lineOffsets = undefined; + } + getLineOffsets() { + if (this._lineOffsets === undefined) { + let lineOffsets = []; + let text = this._content; + let isLineStart = true; + for (let i = 0; i < text.length; i++) { + if (isLineStart) { + lineOffsets.push(i); + isLineStart = false; + } + let ch = text.charAt(i); + isLineStart = (ch === '\r' || ch === '\n'); + if (ch === '\r' && i + 1 < text.length && text.charAt(i + 1) === '\n') { + i++; + } + } + if (isLineStart && text.length > 0) { + lineOffsets.push(text.length); + } + this._lineOffsets = lineOffsets; + } + return this._lineOffsets; + } + positionAt(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + let lineOffsets = this.getLineOffsets(); + let low = 0, high = lineOffsets.length; + if (high === 0) { + return Position.create(0, offset); + } + while (low < high) { + let mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } + else { + low = mid + 1; + } + } + // low is the least x for which the line offset is larger than the current offset + // or array.length if no line offset is larger than the current offset + let line = low - 1; + return Position.create(line, offset - lineOffsets[line]); + } + offsetAt(position) { + let lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } + else if (position.line < 0) { + return 0; + } + let lineOffset = lineOffsets[position.line]; + let nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length; + return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset); + } + get lineCount() { + return this.getLineOffsets().length; + } +} +var Is; +(function (Is) { + const toString = Object.prototype.toString; + function defined(value) { + return typeof value !== 'undefined'; + } + Is.defined = defined; + function undefined$1(value) { + return typeof value === 'undefined'; + } + Is.undefined = undefined$1; + function boolean(value) { + return value === true || value === false; + } + Is.boolean = boolean; + function string(value) { + return toString.call(value) === '[object String]'; + } + Is.string = string; + function number(value) { + return toString.call(value) === '[object Number]'; + } + Is.number = number; + function numberRange(value, min, max) { + return toString.call(value) === '[object Number]' && min <= value && value <= max; + } + Is.numberRange = numberRange; + function integer(value) { + return toString.call(value) === '[object Number]' && -2147483648 <= value && value <= 2147483647; + } + Is.integer = integer; + function uinteger(value) { + return toString.call(value) === '[object Number]' && 0 <= value && value <= 2147483647; + } + Is.uinteger = uinteger; + function func(value) { + return toString.call(value) === '[object Function]'; + } + Is.func = func; + function objectLiteral(value) { + // Strictly speaking class instances pass this check as well. Since the LSP + // doesn't use classes we ignore this for now. If we do we need to add something + // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null` + return value !== null && typeof value === 'object'; + } + Is.objectLiteral = objectLiteral; + function typedArray(value, check) { + return Array.isArray(value) && value.every(check); + } + Is.typedArray = typedArray; +})(Is || (Is = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Error codes used by diagnostics + */ +var ErrorCode; +(function (ErrorCode) { + ErrorCode[ErrorCode["Undefined"] = 0] = "Undefined"; + ErrorCode[ErrorCode["EnumValueMismatch"] = 1] = "EnumValueMismatch"; + ErrorCode[ErrorCode["Deprecated"] = 2] = "Deprecated"; + ErrorCode[ErrorCode["UnexpectedEndOfComment"] = 257] = "UnexpectedEndOfComment"; + ErrorCode[ErrorCode["UnexpectedEndOfString"] = 258] = "UnexpectedEndOfString"; + ErrorCode[ErrorCode["UnexpectedEndOfNumber"] = 259] = "UnexpectedEndOfNumber"; + ErrorCode[ErrorCode["InvalidUnicode"] = 260] = "InvalidUnicode"; + ErrorCode[ErrorCode["InvalidEscapeCharacter"] = 261] = "InvalidEscapeCharacter"; + ErrorCode[ErrorCode["InvalidCharacter"] = 262] = "InvalidCharacter"; + ErrorCode[ErrorCode["PropertyExpected"] = 513] = "PropertyExpected"; + ErrorCode[ErrorCode["CommaExpected"] = 514] = "CommaExpected"; + ErrorCode[ErrorCode["ColonExpected"] = 515] = "ColonExpected"; + ErrorCode[ErrorCode["ValueExpected"] = 516] = "ValueExpected"; + ErrorCode[ErrorCode["CommaOrCloseBacketExpected"] = 517] = "CommaOrCloseBacketExpected"; + ErrorCode[ErrorCode["CommaOrCloseBraceExpected"] = 518] = "CommaOrCloseBraceExpected"; + ErrorCode[ErrorCode["TrailingComma"] = 519] = "TrailingComma"; + ErrorCode[ErrorCode["DuplicateKey"] = 520] = "DuplicateKey"; + ErrorCode[ErrorCode["CommentNotPermitted"] = 521] = "CommentNotPermitted"; + ErrorCode[ErrorCode["PropertyKeysMustBeDoublequoted"] = 528] = "PropertyKeysMustBeDoublequoted"; + ErrorCode[ErrorCode["SchemaResolveError"] = 768] = "SchemaResolveError"; + ErrorCode[ErrorCode["SchemaUnsupportedFeature"] = 769] = "SchemaUnsupportedFeature"; +})(ErrorCode || (ErrorCode = {})); +var SchemaDraft; +(function (SchemaDraft) { + SchemaDraft[SchemaDraft["v3"] = 3] = "v3"; + SchemaDraft[SchemaDraft["v4"] = 4] = "v4"; + SchemaDraft[SchemaDraft["v6"] = 6] = "v6"; + SchemaDraft[SchemaDraft["v7"] = 7] = "v7"; + SchemaDraft[SchemaDraft["v2019_09"] = 19] = "v2019_09"; + SchemaDraft[SchemaDraft["v2020_12"] = 20] = "v2020_12"; +})(SchemaDraft || (SchemaDraft = {})); +var ClientCapabilities$2; +(function (ClientCapabilities) { + ClientCapabilities.LATEST = { + textDocument: { + completion: { + completionItem: { + documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText], + commitCharactersSupport: true, + labelDetailsSupport: true + } + } + } + }; +})(ClientCapabilities$2 || (ClientCapabilities$2 = {})); + +// src/browser/reader.ts +function t$2(...args) { + const firstArg = args[0]; + let key; + let message; + let formatArgs; + if (typeof firstArg === "string") { + key = firstArg; + message = firstArg; + args.splice(0, 1); + formatArgs = !args || typeof args[0] !== "object" ? args : args[0]; + } else if (firstArg instanceof Array) { + const replacements = args.slice(1); + if (firstArg.length !== replacements.length + 1) { + throw new Error("expected a string as the first argument to l10n.t"); + } + let str = firstArg[0]; + for (let i = 1; i < firstArg.length; i++) { + str += `{${i - 1}}` + firstArg[i]; + } + return t$2(str, ...replacements); + } else { + message = firstArg.message; + key = message; + if (firstArg.comment && firstArg.comment.length > 0) { + key += `/${Array.isArray(firstArg.comment) ? firstArg.comment.join("") : firstArg.comment}`; + } + formatArgs = firstArg.args ?? {}; + } + { + return format$3(message, formatArgs); + } +} +var _format2Regexp = /{([^}]+)}/g; +function format$3(template, values) { + if (Object.keys(values).length === 0) { + return template; + } + return template.replace(_format2Regexp, (match, group) => values[group] ?? match); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const formats = { + 'color-hex': { errorMessage: t$2('Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'), pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ }, + 'date-time': { errorMessage: t$2('String is not a RFC3339 date-time.'), pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i }, + 'date': { errorMessage: t$2('String is not a RFC3339 date.'), pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i }, + 'time': { errorMessage: t$2('String is not a RFC3339 time.'), pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i }, + 'email': { errorMessage: t$2('String is not an e-mail address.'), pattern: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}))$/ }, + 'hostname': { errorMessage: t$2('String is not a hostname.'), pattern: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i }, + 'ipv4': { errorMessage: t$2('String is not an IPv4 address.'), pattern: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/ }, + 'ipv6': { errorMessage: t$2('String is not an IPv6 address.'), pattern: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i }, +}; +class ASTNodeImpl { + constructor(parent, offset, length = 0) { + this.offset = offset; + this.length = length; + this.parent = parent; + } + get children() { + return []; + } + toString() { + return 'type: ' + this.type + ' (' + this.offset + '/' + this.length + ')' + (this.parent ? ' parent: {' + this.parent.toString() + '}' : ''); + } +} +class NullASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset) { + super(parent, offset); + this.type = 'null'; + this.value = null; + } +} +class BooleanASTNodeImpl extends ASTNodeImpl { + constructor(parent, boolValue, offset) { + super(parent, offset); + this.type = 'boolean'; + this.value = boolValue; + } +} +class ArrayASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset) { + super(parent, offset); + this.type = 'array'; + this.items = []; + } + get children() { + return this.items; + } +} +class NumberASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset) { + super(parent, offset); + this.type = 'number'; + this.isInteger = true; + this.value = Number.NaN; + } +} +class StringASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset, length) { + super(parent, offset, length); + this.type = 'string'; + this.value = ''; + } +} +class PropertyASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset, keyNode) { + super(parent, offset); + this.type = 'property'; + this.colonOffset = -1; + this.keyNode = keyNode; + } + get children() { + return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode]; + } +} +class ObjectASTNodeImpl extends ASTNodeImpl { + constructor(parent, offset) { + super(parent, offset); + this.type = 'object'; + this.properties = []; + } + get children() { + return this.properties; + } +} +function asSchema(schema) { + if (isBoolean(schema)) { + return schema ? {} : { "not": {} }; + } + return schema; +} +var EnumMatch; +(function (EnumMatch) { + EnumMatch[EnumMatch["Key"] = 0] = "Key"; + EnumMatch[EnumMatch["Enum"] = 1] = "Enum"; +})(EnumMatch || (EnumMatch = {})); +const schemaDraftFromId = { + 'http://json-schema.org/draft-03/schema#': SchemaDraft.v3, + 'http://json-schema.org/draft-04/schema#': SchemaDraft.v4, + 'http://json-schema.org/draft-06/schema#': SchemaDraft.v6, + 'http://json-schema.org/draft-07/schema#': SchemaDraft.v7, + 'https://json-schema.org/draft/2019-09/schema': SchemaDraft.v2019_09, + 'https://json-schema.org/draft/2020-12/schema': SchemaDraft.v2020_12 +}; +class EvaluationContext { + constructor(schemaDraft) { + this.schemaDraft = schemaDraft; + } +} +class SchemaCollector { + constructor(focusOffset = -1, exclude) { + this.focusOffset = focusOffset; + this.exclude = exclude; + this.schemas = []; + } + add(schema) { + this.schemas.push(schema); + } + merge(other) { + Array.prototype.push.apply(this.schemas, other.schemas); + } + include(node) { + return (this.focusOffset === -1 || contains(node, this.focusOffset)) && (node !== this.exclude); + } + newSub() { + return new SchemaCollector(-1, this.exclude); + } +} +class NoOpSchemaCollector { + constructor() { } + get schemas() { return []; } + add(_schema) { } + merge(_other) { } + include(_node) { return true; } + newSub() { return this; } +} +NoOpSchemaCollector.instance = new NoOpSchemaCollector(); +class ValidationResult { + constructor() { + this.problems = []; + this.propertiesMatches = 0; + this.processedProperties = new Set(); + this.propertiesValueMatches = 0; + this.primaryValueMatches = 0; + this.enumValueMatch = false; + this.enumValues = undefined; + } + hasProblems() { + return !!this.problems.length; + } + merge(validationResult) { + this.problems = this.problems.concat(validationResult.problems); + this.propertiesMatches += validationResult.propertiesMatches; + this.propertiesValueMatches += validationResult.propertiesValueMatches; + this.mergeProcessedProperties(validationResult); + } + mergeEnumValues(validationResult) { + if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) { + this.enumValues = this.enumValues.concat(validationResult.enumValues); + for (const error of this.problems) { + if (error.code === ErrorCode.EnumValueMismatch) { + error.message = t$2('Value is not accepted. Valid values: {0}.', this.enumValues.map(v => JSON.stringify(v)).join(', ')); + } + } + } + } + mergePropertyMatch(propertyValidationResult) { + this.problems = this.problems.concat(propertyValidationResult.problems); + this.propertiesMatches++; + if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) { + this.propertiesValueMatches++; + } + if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues && propertyValidationResult.enumValues.length === 1) { + this.primaryValueMatches++; + } + } + mergeProcessedProperties(validationResult) { + validationResult.processedProperties.forEach(p => this.processedProperties.add(p)); + } + compare(other) { + const hasProblems = this.hasProblems(); + if (hasProblems !== other.hasProblems()) { + return hasProblems ? -1 : 1; + } + if (this.enumValueMatch !== other.enumValueMatch) { + return other.enumValueMatch ? -1 : 1; + } + if (this.primaryValueMatches !== other.primaryValueMatches) { + return this.primaryValueMatches - other.primaryValueMatches; + } + if (this.propertiesValueMatches !== other.propertiesValueMatches) { + return this.propertiesValueMatches - other.propertiesValueMatches; + } + return this.propertiesMatches - other.propertiesMatches; + } +} +function newJSONDocument(root, diagnostics = []) { + return new JSONDocument(root, diagnostics, []); +} +function getNodeValue(node) { + return getNodeValue$1(node); +} +function getNodePath$1(node) { + return getNodePath$2(node); +} +function contains(node, offset, includeRightBound = false) { + return offset >= node.offset && offset < (node.offset + node.length) || includeRightBound && offset === (node.offset + node.length); +} +class JSONDocument { + constructor(root, syntaxErrors = [], comments = []) { + this.root = root; + this.syntaxErrors = syntaxErrors; + this.comments = comments; + } + getNodeFromOffset(offset, includeRightBound = false) { + if (this.root) { + return findNodeAtOffset(this.root, offset, includeRightBound); + } + return undefined; + } + visit(visitor) { + if (this.root) { + const doVisit = (node) => { + let ctn = visitor(node); + const children = node.children; + if (Array.isArray(children)) { + for (let i = 0; i < children.length && ctn; i++) { + ctn = doVisit(children[i]); + } + } + return ctn; + }; + doVisit(this.root); + } + } + validate(textDocument, schema, severity = DiagnosticSeverity.Warning, schemaDraft) { + if (this.root && schema) { + const validationResult = new ValidationResult(); + validate(this.root, schema, validationResult, NoOpSchemaCollector.instance, new EvaluationContext(schemaDraft ?? getSchemaDraft(schema))); + return validationResult.problems.map(p => { + const range = Range$a.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length)); + return Diagnostic.create(range, p.message, p.severity ?? severity, p.code); + }); + } + return undefined; + } + getMatchingSchemas(schema, focusOffset = -1, exclude) { + if (this.root && schema) { + const matchingSchemas = new SchemaCollector(focusOffset, exclude); + const schemaDraft = getSchemaDraft(schema); + const context = new EvaluationContext(schemaDraft); + validate(this.root, schema, new ValidationResult(), matchingSchemas, context); + return matchingSchemas.schemas; + } + return []; + } +} +function getSchemaDraft(schema, fallBack = SchemaDraft.v2020_12) { + let schemaId = schema.$schema; + if (schemaId) { + return schemaDraftFromId[schemaId] ?? fallBack; + } + return fallBack; +} +function validate(n, schema, validationResult, matchingSchemas, context) { + if (!n || !matchingSchemas.include(n)) { + return; + } + if (n.type === 'property') { + return validate(n.valueNode, schema, validationResult, matchingSchemas, context); + } + const node = n; + _validateNode(); + switch (node.type) { + case 'object': + _validateObjectNode(node); + break; + case 'array': + _validateArrayNode(node); + break; + case 'string': + _validateStringNode(node); + break; + case 'number': + _validateNumberNode(node); + break; + } + matchingSchemas.add({ node: node, schema: schema }); + function _validateNode() { + function matchesType(type) { + return node.type === type || (type === 'integer' && node.type === 'number' && node.isInteger); + } + if (Array.isArray(schema.type)) { + if (!schema.type.some(matchesType)) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2('Incorrect type. Expected one of {0}.', schema.type.join(', ')) + }); + } + } + else if (schema.type) { + if (!matchesType(schema.type)) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2('Incorrect type. Expected "{0}".', schema.type) + }); + } + } + if (Array.isArray(schema.allOf)) { + for (const subSchemaRef of schema.allOf) { + const subValidationResult = new ValidationResult(); + const subMatchingSchemas = matchingSchemas.newSub(); + validate(node, asSchema(subSchemaRef), subValidationResult, subMatchingSchemas, context); + validationResult.merge(subValidationResult); + matchingSchemas.merge(subMatchingSchemas); + } + } + const notSchema = asSchema(schema.not); + if (notSchema) { + const subValidationResult = new ValidationResult(); + const subMatchingSchemas = matchingSchemas.newSub(); + validate(node, notSchema, subValidationResult, subMatchingSchemas, context); + if (!subValidationResult.hasProblems()) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2("Matches a schema that is not allowed.") + }); + } + for (const ms of subMatchingSchemas.schemas) { + ms.inverted = !ms.inverted; + matchingSchemas.add(ms); + } + } + const testAlternatives = (alternatives, maxOneMatch) => { + const matches = []; + // remember the best match that is used for error messages + let bestMatch = undefined; + for (const subSchemaRef of alternatives) { + const subSchema = asSchema(subSchemaRef); + const subValidationResult = new ValidationResult(); + const subMatchingSchemas = matchingSchemas.newSub(); + validate(node, subSchema, subValidationResult, subMatchingSchemas, context); + if (!subValidationResult.hasProblems()) { + matches.push(subSchema); + } + if (!bestMatch) { + bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas }; + } + else { + if (!maxOneMatch && !subValidationResult.hasProblems() && !bestMatch.validationResult.hasProblems()) { + // no errors, both are equally good matches + bestMatch.matchingSchemas.merge(subMatchingSchemas); + bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches; + bestMatch.validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches; + bestMatch.validationResult.mergeProcessedProperties(subValidationResult); + } + else { + const compareResult = subValidationResult.compare(bestMatch.validationResult); + if (compareResult > 0) { + // our node is the best matching so far + bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas }; + } + else if (compareResult === 0) { + // there's already a best matching but we are as good + bestMatch.matchingSchemas.merge(subMatchingSchemas); + bestMatch.validationResult.mergeEnumValues(subValidationResult); + } + } + } + } + if (matches.length > 1 && maxOneMatch) { + validationResult.problems.push({ + location: { offset: node.offset, length: 1 }, + message: t$2("Matches multiple schemas when only one must validate.") + }); + } + if (bestMatch) { + validationResult.merge(bestMatch.validationResult); + matchingSchemas.merge(bestMatch.matchingSchemas); + } + return matches.length; + }; + if (Array.isArray(schema.anyOf)) { + testAlternatives(schema.anyOf, false); + } + if (Array.isArray(schema.oneOf)) { + testAlternatives(schema.oneOf, true); + } + const testBranch = (schema) => { + const subValidationResult = new ValidationResult(); + const subMatchingSchemas = matchingSchemas.newSub(); + validate(node, asSchema(schema), subValidationResult, subMatchingSchemas, context); + validationResult.merge(subValidationResult); + matchingSchemas.merge(subMatchingSchemas); + }; + const testCondition = (ifSchema, thenSchema, elseSchema) => { + const subSchema = asSchema(ifSchema); + const subValidationResult = new ValidationResult(); + const subMatchingSchemas = matchingSchemas.newSub(); + validate(node, subSchema, subValidationResult, subMatchingSchemas, context); + matchingSchemas.merge(subMatchingSchemas); + validationResult.mergeProcessedProperties(subValidationResult); + if (!subValidationResult.hasProblems()) { + if (thenSchema) { + testBranch(thenSchema); + } + } + else if (elseSchema) { + testBranch(elseSchema); + } + }; + const ifSchema = asSchema(schema.if); + if (ifSchema) { + testCondition(ifSchema, asSchema(schema.then), asSchema(schema.else)); + } + if (Array.isArray(schema.enum)) { + const val = getNodeValue(node); + let enumValueMatch = false; + for (const e of schema.enum) { + if (equals(val, e)) { + enumValueMatch = true; + break; + } + } + validationResult.enumValues = schema.enum; + validationResult.enumValueMatch = enumValueMatch; + if (!enumValueMatch) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + code: ErrorCode.EnumValueMismatch, + message: schema.errorMessage || t$2('Value is not accepted. Valid values: {0}.', schema.enum.map(v => JSON.stringify(v)).join(', ')) + }); + } + } + if (isDefined$2(schema.const)) { + const val = getNodeValue(node); + if (!equals(val, schema.const)) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + code: ErrorCode.EnumValueMismatch, + message: schema.errorMessage || t$2('Value must be {0}.', JSON.stringify(schema.const)) + }); + validationResult.enumValueMatch = false; + } + else { + validationResult.enumValueMatch = true; + } + validationResult.enumValues = [schema.const]; + } + let deprecationMessage = schema.deprecationMessage; + if (deprecationMessage || schema.deprecated) { + deprecationMessage = deprecationMessage || t$2('Value is deprecated'); + let targetNode = node.parent?.type === 'property' ? node.parent : node; + validationResult.problems.push({ + location: { offset: targetNode.offset, length: targetNode.length }, + severity: DiagnosticSeverity.Warning, + message: deprecationMessage, + code: ErrorCode.Deprecated + }); + } + } + function _validateNumberNode(node) { + const val = node.value; + function normalizeFloats(float) { + const parts = /^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(float.toString()); + return parts && { + value: Number(parts[1] + (parts[2] || '')), + multiplier: (parts[2]?.length || 0) - (parseInt(parts[3]) || 0) + }; + } + if (isNumber(schema.multipleOf)) { + let remainder = -1; + if (Number.isInteger(schema.multipleOf)) { + remainder = val % schema.multipleOf; + } + else { + let normMultipleOf = normalizeFloats(schema.multipleOf); + let normValue = normalizeFloats(val); + if (normMultipleOf && normValue) { + const multiplier = 10 ** Math.abs(normValue.multiplier - normMultipleOf.multiplier); + if (normValue.multiplier < normMultipleOf.multiplier) { + normValue.value *= multiplier; + } + else { + normMultipleOf.value *= multiplier; + } + remainder = normValue.value % normMultipleOf.value; + } + } + if (remainder !== 0) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Value is not divisible by {0}.', schema.multipleOf) + }); + } + } + function getExclusiveLimit(limit, exclusive) { + if (isNumber(exclusive)) { + return exclusive; + } + if (isBoolean(exclusive) && exclusive) { + return limit; + } + return undefined; + } + function getLimit(limit, exclusive) { + if (!isBoolean(exclusive) || !exclusive) { + return limit; + } + return undefined; + } + const exclusiveMinimum = getExclusiveLimit(schema.minimum, schema.exclusiveMinimum); + if (isNumber(exclusiveMinimum) && val <= exclusiveMinimum) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Value is below the exclusive minimum of {0}.', exclusiveMinimum) + }); + } + const exclusiveMaximum = getExclusiveLimit(schema.maximum, schema.exclusiveMaximum); + if (isNumber(exclusiveMaximum) && val >= exclusiveMaximum) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Value is above the exclusive maximum of {0}.', exclusiveMaximum) + }); + } + const minimum = getLimit(schema.minimum, schema.exclusiveMinimum); + if (isNumber(minimum) && val < minimum) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Value is below the minimum of {0}.', minimum) + }); + } + const maximum = getLimit(schema.maximum, schema.exclusiveMaximum); + if (isNumber(maximum) && val > maximum) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Value is above the maximum of {0}.', maximum) + }); + } + } + function _validateStringNode(node) { + if (isNumber(schema.minLength) && stringLength(node.value) < schema.minLength) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('String is shorter than the minimum length of {0}.', schema.minLength) + }); + } + if (isNumber(schema.maxLength) && stringLength(node.value) > schema.maxLength) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('String is longer than the maximum length of {0}.', schema.maxLength) + }); + } + if (isString(schema.pattern)) { + const regex = extendedRegExp(schema.pattern); + if (!(regex?.test(node.value))) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.patternErrorMessage || schema.errorMessage || t$2('String does not match the pattern of "{0}".', schema.pattern) + }); + } + } + if (schema.format) { + switch (schema.format) { + case 'uri': + case 'uri-reference': + { + let errorMessage; + if (!node.value) { + errorMessage = t$2('URI expected.'); + } + else { + const match = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(node.value); + if (!match) { + errorMessage = t$2('URI is expected.'); + } + else if (!match[2] && schema.format === 'uri') { + errorMessage = t$2('URI with a scheme is expected.'); + } + } + if (errorMessage) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.patternErrorMessage || schema.errorMessage || t$2('String is not a URI: {0}', errorMessage) + }); + } + } + break; + case 'color-hex': + case 'date-time': + case 'date': + case 'time': + case 'email': + case 'hostname': + case 'ipv4': + case 'ipv6': + const format = formats[schema.format]; + if (!node.value || !format.pattern.exec(node.value)) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.patternErrorMessage || schema.errorMessage || format.errorMessage + }); + } + } + } + } + function _validateArrayNode(node) { + let prefixItemsSchemas; + let additionalItemSchema; + if (context.schemaDraft >= SchemaDraft.v2020_12) { + prefixItemsSchemas = schema.prefixItems; + additionalItemSchema = !Array.isArray(schema.items) ? schema.items : undefined; + } + else { + prefixItemsSchemas = Array.isArray(schema.items) ? schema.items : undefined; + additionalItemSchema = !Array.isArray(schema.items) ? schema.items : schema.additionalItems; + } + let index = 0; + if (prefixItemsSchemas !== undefined) { + const max = Math.min(prefixItemsSchemas.length, node.items.length); + for (; index < max; index++) { + const subSchemaRef = prefixItemsSchemas[index]; + const subSchema = asSchema(subSchemaRef); + const itemValidationResult = new ValidationResult(); + const item = node.items[index]; + if (item) { + validate(item, subSchema, itemValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(itemValidationResult); + } + validationResult.processedProperties.add(String(index)); + } + } + if (additionalItemSchema !== undefined && index < node.items.length) { + if (typeof additionalItemSchema === 'boolean') { + if (additionalItemSchema === false) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Array has too many items according to schema. Expected {0} or fewer.', index) + }); + } + for (; index < node.items.length; index++) { + validationResult.processedProperties.add(String(index)); + validationResult.propertiesValueMatches++; + } + } + else { + for (; index < node.items.length; index++) { + const itemValidationResult = new ValidationResult(); + validate(node.items[index], additionalItemSchema, itemValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(itemValidationResult); + validationResult.processedProperties.add(String(index)); + } + } + } + const containsSchema = asSchema(schema.contains); + if (containsSchema) { + let containsCount = 0; + for (let index = 0; index < node.items.length; index++) { + const item = node.items[index]; + const itemValidationResult = new ValidationResult(); + validate(item, containsSchema, itemValidationResult, NoOpSchemaCollector.instance, context); + if (!itemValidationResult.hasProblems()) { + containsCount++; + if (context.schemaDraft >= SchemaDraft.v2020_12) { + validationResult.processedProperties.add(String(index)); + } + } + } + if (containsCount === 0 && !isNumber(schema.minContains)) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2('Array does not contain required item.') + }); + } + if (isNumber(schema.minContains) && containsCount < schema.minContains) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2('Array has too few items that match the contains contraint. Expected {0} or more.', schema.minContains) + }); + } + if (isNumber(schema.maxContains) && containsCount > schema.maxContains) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: schema.errorMessage || t$2('Array has too many items that match the contains contraint. Expected {0} or less.', schema.maxContains) + }); + } + } + const unevaluatedItems = schema.unevaluatedItems; + if (unevaluatedItems !== undefined) { + for (let i = 0; i < node.items.length; i++) { + if (!validationResult.processedProperties.has(String(i))) { + if (unevaluatedItems === false) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Item does not match any validation rule from the array.') + }); + } + else { + const itemValidationResult = new ValidationResult(); + validate(node.items[i], schema.unevaluatedItems, itemValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(itemValidationResult); + } + } + validationResult.processedProperties.add(String(i)); + validationResult.propertiesValueMatches++; + } + } + if (isNumber(schema.minItems) && node.items.length < schema.minItems) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Array has too few items. Expected {0} or more.', schema.minItems) + }); + } + if (isNumber(schema.maxItems) && node.items.length > schema.maxItems) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Array has too many items. Expected {0} or fewer.', schema.maxItems) + }); + } + if (schema.uniqueItems === true) { + const values = getNodeValue(node); + function hasDuplicates() { + for (let i = 0; i < values.length - 1; i++) { + const value = values[i]; + for (let j = i + 1; j < values.length; j++) { + if (equals(value, values[j])) { + return true; + } + } + } + return false; + } + if (hasDuplicates()) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Array has duplicate items.') + }); + } + } + } + function _validateObjectNode(node) { + const seenKeys = Object.create(null); + const unprocessedProperties = new Set(); + for (const propertyNode of node.properties) { + const key = propertyNode.keyNode.value; + seenKeys[key] = propertyNode.valueNode; + unprocessedProperties.add(key); + } + if (Array.isArray(schema.required)) { + for (const propertyName of schema.required) { + if (!seenKeys[propertyName]) { + const keyNode = node.parent && node.parent.type === 'property' && node.parent.keyNode; + const location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node.offset, length: 1 }; + validationResult.problems.push({ + location: location, + message: t$2('Missing property "{0}".', propertyName) + }); + } + } + } + const propertyProcessed = (prop) => { + unprocessedProperties.delete(prop); + validationResult.processedProperties.add(prop); + }; + if (schema.properties) { + for (const propertyName of Object.keys(schema.properties)) { + propertyProcessed(propertyName); + const propertySchema = schema.properties[propertyName]; + const child = seenKeys[propertyName]; + if (child) { + if (isBoolean(propertySchema)) { + if (!propertySchema) { + const propertyNode = child.parent; + validationResult.problems.push({ + location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, + message: schema.errorMessage || t$2('Property {0} is not allowed.', propertyName) + }); + } + else { + validationResult.propertiesMatches++; + validationResult.propertiesValueMatches++; + } + } + else { + const propertyValidationResult = new ValidationResult(); + validate(child, propertySchema, propertyValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(propertyValidationResult); + } + } + } + } + if (schema.patternProperties) { + for (const propertyPattern of Object.keys(schema.patternProperties)) { + const regex = extendedRegExp(propertyPattern); + if (regex) { + const processed = []; + for (const propertyName of unprocessedProperties) { + if (regex.test(propertyName)) { + processed.push(propertyName); + const child = seenKeys[propertyName]; + if (child) { + const propertySchema = schema.patternProperties[propertyPattern]; + if (isBoolean(propertySchema)) { + if (!propertySchema) { + const propertyNode = child.parent; + validationResult.problems.push({ + location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, + message: schema.errorMessage || t$2('Property {0} is not allowed.', propertyName) + }); + } + else { + validationResult.propertiesMatches++; + validationResult.propertiesValueMatches++; + } + } + else { + const propertyValidationResult = new ValidationResult(); + validate(child, propertySchema, propertyValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(propertyValidationResult); + } + } + } + } + processed.forEach(propertyProcessed); + } + } + } + const additionalProperties = schema.additionalProperties; + if (additionalProperties !== undefined) { + for (const propertyName of unprocessedProperties) { + propertyProcessed(propertyName); + const child = seenKeys[propertyName]; + if (child) { + if (additionalProperties === false) { + const propertyNode = child.parent; + validationResult.problems.push({ + location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, + message: schema.errorMessage || t$2('Property {0} is not allowed.', propertyName) + }); + } + else if (additionalProperties !== true) { + const propertyValidationResult = new ValidationResult(); + validate(child, additionalProperties, propertyValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(propertyValidationResult); + } + } + } + } + const unevaluatedProperties = schema.unevaluatedProperties; + if (unevaluatedProperties !== undefined) { + const processed = []; + for (const propertyName of unprocessedProperties) { + if (!validationResult.processedProperties.has(propertyName)) { + processed.push(propertyName); + const child = seenKeys[propertyName]; + if (child) { + if (unevaluatedProperties === false) { + const propertyNode = child.parent; + validationResult.problems.push({ + location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, + message: schema.errorMessage || t$2('Property {0} is not allowed.', propertyName) + }); + } + else if (unevaluatedProperties !== true) { + const propertyValidationResult = new ValidationResult(); + validate(child, unevaluatedProperties, propertyValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(propertyValidationResult); + } + } + } + } + processed.forEach(propertyProcessed); + } + if (isNumber(schema.maxProperties)) { + if (node.properties.length > schema.maxProperties) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Object has more properties than limit of {0}.', schema.maxProperties) + }); + } + } + if (isNumber(schema.minProperties)) { + if (node.properties.length < schema.minProperties) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Object has fewer properties than the required number of {0}', schema.minProperties) + }); + } + } + if (schema.dependentRequired) { + for (const key in schema.dependentRequired) { + const prop = seenKeys[key]; + const propertyDeps = schema.dependentRequired[key]; + if (prop && Array.isArray(propertyDeps)) { + _validatePropertyDependencies(key, propertyDeps); + } + } + } + if (schema.dependentSchemas) { + for (const key in schema.dependentSchemas) { + const prop = seenKeys[key]; + const propertyDeps = schema.dependentSchemas[key]; + if (prop && isObject(propertyDeps)) { + _validatePropertyDependencies(key, propertyDeps); + } + } + } + if (schema.dependencies) { + for (const key in schema.dependencies) { + const prop = seenKeys[key]; + if (prop) { + _validatePropertyDependencies(key, schema.dependencies[key]); + } + } + } + const propertyNames = asSchema(schema.propertyNames); + if (propertyNames) { + for (const f of node.properties) { + const key = f.keyNode; + if (key) { + validate(key, propertyNames, validationResult, NoOpSchemaCollector.instance, context); + } + } + } + function _validatePropertyDependencies(key, propertyDep) { + if (Array.isArray(propertyDep)) { + for (const requiredProp of propertyDep) { + if (!seenKeys[requiredProp]) { + validationResult.problems.push({ + location: { offset: node.offset, length: node.length }, + message: t$2('Object is missing property {0} required by property {1}.', requiredProp, key) + }); + } + else { + validationResult.propertiesValueMatches++; + } + } + } + else { + const propertySchema = asSchema(propertyDep); + if (propertySchema) { + const propertyValidationResult = new ValidationResult(); + validate(node, propertySchema, propertyValidationResult, matchingSchemas, context); + validationResult.mergePropertyMatch(propertyValidationResult); + } + } + } + } +} +function parse$7(textDocument, config) { + const problems = []; + let lastProblemOffset = -1; + const text = textDocument.getText(); + const scanner = createScanner$1(text, false); + const commentRanges = config && config.collectComments ? [] : undefined; + function _scanNext() { + while (true) { + const token = scanner.scan(); + _checkScanError(); + switch (token) { + case 12 /* Json.SyntaxKind.LineCommentTrivia */: + case 13 /* Json.SyntaxKind.BlockCommentTrivia */: + if (Array.isArray(commentRanges)) { + commentRanges.push(Range$a.create(textDocument.positionAt(scanner.getTokenOffset()), textDocument.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()))); + } + break; + case 15 /* Json.SyntaxKind.Trivia */: + case 14 /* Json.SyntaxKind.LineBreakTrivia */: + break; + default: + return token; + } + } + } + function _errorAtRange(message, code, startOffset, endOffset, severity = DiagnosticSeverity.Error) { + if (problems.length === 0 || startOffset !== lastProblemOffset) { + const range = Range$a.create(textDocument.positionAt(startOffset), textDocument.positionAt(endOffset)); + problems.push(Diagnostic.create(range, message, severity, code, textDocument.languageId)); + lastProblemOffset = startOffset; + } + } + function _error(message, code, node = undefined, skipUntilAfter = [], skipUntil = []) { + let start = scanner.getTokenOffset(); + let end = scanner.getTokenOffset() + scanner.getTokenLength(); + if (start === end && start > 0) { + start--; + while (start > 0 && /\s/.test(text.charAt(start))) { + start--; + } + end = start + 1; + } + _errorAtRange(message, code, start, end); + if (node) { + _finalize(node, false); + } + if (skipUntilAfter.length + skipUntil.length > 0) { + let token = scanner.getToken(); + while (token !== 17 /* Json.SyntaxKind.EOF */) { + if (skipUntilAfter.indexOf(token) !== -1) { + _scanNext(); + break; + } + else if (skipUntil.indexOf(token) !== -1) { + break; + } + token = _scanNext(); + } + } + return node; + } + function _checkScanError() { + switch (scanner.getTokenError()) { + case 4 /* Json.ScanError.InvalidUnicode */: + _error(t$2('Invalid unicode sequence in string.'), ErrorCode.InvalidUnicode); + return true; + case 5 /* Json.ScanError.InvalidEscapeCharacter */: + _error(t$2('Invalid escape character in string.'), ErrorCode.InvalidEscapeCharacter); + return true; + case 3 /* Json.ScanError.UnexpectedEndOfNumber */: + _error(t$2('Unexpected end of number.'), ErrorCode.UnexpectedEndOfNumber); + return true; + case 1 /* Json.ScanError.UnexpectedEndOfComment */: + _error(t$2('Unexpected end of comment.'), ErrorCode.UnexpectedEndOfComment); + return true; + case 2 /* Json.ScanError.UnexpectedEndOfString */: + _error(t$2('Unexpected end of string.'), ErrorCode.UnexpectedEndOfString); + return true; + case 6 /* Json.ScanError.InvalidCharacter */: + _error(t$2('Invalid characters in string. Control characters must be escaped.'), ErrorCode.InvalidCharacter); + return true; + } + return false; + } + function _finalize(node, scanNext) { + node.length = scanner.getTokenOffset() + scanner.getTokenLength() - node.offset; + if (scanNext) { + _scanNext(); + } + return node; + } + function _parseArray(parent) { + if (scanner.getToken() !== 3 /* Json.SyntaxKind.OpenBracketToken */) { + return undefined; + } + const node = new ArrayASTNodeImpl(parent, scanner.getTokenOffset()); + _scanNext(); // consume OpenBracketToken + let needsComma = false; + while (scanner.getToken() !== 4 /* Json.SyntaxKind.CloseBracketToken */ && scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) { + if (scanner.getToken() === 5 /* Json.SyntaxKind.CommaToken */) { + if (!needsComma) { + _error(t$2('Value expected'), ErrorCode.ValueExpected); + } + const commaOffset = scanner.getTokenOffset(); + _scanNext(); // consume comma + if (scanner.getToken() === 4 /* Json.SyntaxKind.CloseBracketToken */) { + if (needsComma) { + _errorAtRange(t$2('Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1); + } + continue; + } + } + else if (needsComma) { + _error(t$2('Expected comma'), ErrorCode.CommaExpected); + } + const item = _parseValue(node); + if (!item) { + _error(t$2('Value expected'), ErrorCode.ValueExpected, undefined, [], [4 /* Json.SyntaxKind.CloseBracketToken */, 5 /* Json.SyntaxKind.CommaToken */]); + } + else { + node.items.push(item); + } + needsComma = true; + } + if (scanner.getToken() !== 4 /* Json.SyntaxKind.CloseBracketToken */) { + return _error(t$2('Expected comma or closing bracket'), ErrorCode.CommaOrCloseBacketExpected, node); + } + return _finalize(node, true); + } + const keyPlaceholder = new StringASTNodeImpl(undefined, 0, 0); + function _parseProperty(parent, keysSeen) { + const node = new PropertyASTNodeImpl(parent, scanner.getTokenOffset(), keyPlaceholder); + let key = _parseString(node); + if (!key) { + if (scanner.getToken() === 16 /* Json.SyntaxKind.Unknown */) { + // give a more helpful error message + _error(t$2('Property keys must be doublequoted'), ErrorCode.PropertyKeysMustBeDoublequoted); + const keyNode = new StringASTNodeImpl(node, scanner.getTokenOffset(), scanner.getTokenLength()); + keyNode.value = scanner.getTokenValue(); + key = keyNode; + _scanNext(); // consume Unknown + } + else { + return undefined; + } + } + node.keyNode = key; + // For JSON files that forbid code comments, there is a convention to use the key name "//" to add comments. + // Multiple instances of "//" are okay. + if (key.value !== "//") { + const seen = keysSeen[key.value]; + if (seen) { + _errorAtRange(t$2("Duplicate object key"), ErrorCode.DuplicateKey, node.keyNode.offset, node.keyNode.offset + node.keyNode.length, DiagnosticSeverity.Warning); + if (isObject(seen)) { + _errorAtRange(t$2("Duplicate object key"), ErrorCode.DuplicateKey, seen.keyNode.offset, seen.keyNode.offset + seen.keyNode.length, DiagnosticSeverity.Warning); + } + keysSeen[key.value] = true; // if the same key is duplicate again, avoid duplicate error reporting + } + else { + keysSeen[key.value] = node; + } + } + if (scanner.getToken() === 6 /* Json.SyntaxKind.ColonToken */) { + node.colonOffset = scanner.getTokenOffset(); + _scanNext(); // consume ColonToken + } + else { + _error(t$2('Colon expected'), ErrorCode.ColonExpected); + if (scanner.getToken() === 10 /* Json.SyntaxKind.StringLiteral */ && textDocument.positionAt(key.offset + key.length).line < textDocument.positionAt(scanner.getTokenOffset()).line) { + node.length = key.length; + return node; + } + } + const value = _parseValue(node); + if (!value) { + return _error(t$2('Value expected'), ErrorCode.ValueExpected, node, [], [2 /* Json.SyntaxKind.CloseBraceToken */, 5 /* Json.SyntaxKind.CommaToken */]); + } + node.valueNode = value; + node.length = value.offset + value.length - node.offset; + return node; + } + function _parseObject(parent) { + if (scanner.getToken() !== 1 /* Json.SyntaxKind.OpenBraceToken */) { + return undefined; + } + const node = new ObjectASTNodeImpl(parent, scanner.getTokenOffset()); + const keysSeen = Object.create(null); + _scanNext(); // consume OpenBraceToken + let needsComma = false; + while (scanner.getToken() !== 2 /* Json.SyntaxKind.CloseBraceToken */ && scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) { + if (scanner.getToken() === 5 /* Json.SyntaxKind.CommaToken */) { + if (!needsComma) { + _error(t$2('Property expected'), ErrorCode.PropertyExpected); + } + const commaOffset = scanner.getTokenOffset(); + _scanNext(); // consume comma + if (scanner.getToken() === 2 /* Json.SyntaxKind.CloseBraceToken */) { + if (needsComma) { + _errorAtRange(t$2('Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1); + } + continue; + } + } + else if (needsComma) { + _error(t$2('Expected comma'), ErrorCode.CommaExpected); + } + const property = _parseProperty(node, keysSeen); + if (!property) { + _error(t$2('Property expected'), ErrorCode.PropertyExpected, undefined, [], [2 /* Json.SyntaxKind.CloseBraceToken */, 5 /* Json.SyntaxKind.CommaToken */]); + } + else { + node.properties.push(property); + } + needsComma = true; + } + if (scanner.getToken() !== 2 /* Json.SyntaxKind.CloseBraceToken */) { + return _error(t$2('Expected comma or closing brace'), ErrorCode.CommaOrCloseBraceExpected, node); + } + return _finalize(node, true); + } + function _parseString(parent) { + if (scanner.getToken() !== 10 /* Json.SyntaxKind.StringLiteral */) { + return undefined; + } + const node = new StringASTNodeImpl(parent, scanner.getTokenOffset()); + node.value = scanner.getTokenValue(); + return _finalize(node, true); + } + function _parseNumber(parent) { + if (scanner.getToken() !== 11 /* Json.SyntaxKind.NumericLiteral */) { + return undefined; + } + const node = new NumberASTNodeImpl(parent, scanner.getTokenOffset()); + if (scanner.getTokenError() === 0 /* Json.ScanError.None */) { + const tokenValue = scanner.getTokenValue(); + try { + const numberValue = JSON.parse(tokenValue); + if (!isNumber(numberValue)) { + return _error(t$2('Invalid number format.'), ErrorCode.Undefined, node); + } + node.value = numberValue; + } + catch (e) { + return _error(t$2('Invalid number format.'), ErrorCode.Undefined, node); + } + node.isInteger = tokenValue.indexOf('.') === -1; + } + return _finalize(node, true); + } + function _parseLiteral(parent) { + switch (scanner.getToken()) { + case 7 /* Json.SyntaxKind.NullKeyword */: + return _finalize(new NullASTNodeImpl(parent, scanner.getTokenOffset()), true); + case 8 /* Json.SyntaxKind.TrueKeyword */: + return _finalize(new BooleanASTNodeImpl(parent, true, scanner.getTokenOffset()), true); + case 9 /* Json.SyntaxKind.FalseKeyword */: + return _finalize(new BooleanASTNodeImpl(parent, false, scanner.getTokenOffset()), true); + default: + return undefined; + } + } + function _parseValue(parent) { + return _parseArray(parent) || _parseObject(parent) || _parseString(parent) || _parseNumber(parent) || _parseLiteral(parent); + } + let _root = undefined; + const token = _scanNext(); + if (token !== 17 /* Json.SyntaxKind.EOF */) { + _root = _parseValue(_root); + if (!_root) { + _error(t$2('Expected a JSON object, array or literal.'), ErrorCode.Undefined); + } + else if (scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) { + _error(t$2('End of file expected.'), ErrorCode.Undefined); + } + } + return new JSONDocument(_root, problems, commentRanges); +} + +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.txt in the project root for license information. +*--------------------------------------------------------------------------------------------*/ +function stringifyObject(obj, indent, stringifyLiteral) { + if (obj !== null && typeof obj === 'object') { + const newIndent = indent + '\t'; + if (Array.isArray(obj)) { + if (obj.length === 0) { + return '[]'; + } + let result = '[\n'; + for (let i = 0; i < obj.length; i++) { + result += newIndent + stringifyObject(obj[i], newIndent, stringifyLiteral); + if (i < obj.length - 1) { + result += ','; + } + result += '\n'; + } + result += indent + ']'; + return result; + } + else { + const keys = Object.keys(obj); + if (keys.length === 0) { + return '{}'; + } + let result = '{\n'; + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + result += newIndent + JSON.stringify(key) + ': ' + stringifyObject(obj[key], newIndent, stringifyLiteral); + if (i < keys.length - 1) { + result += ','; + } + result += '\n'; + } + result += indent + '}'; + return result; + } + } + return stringifyLiteral(obj); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class JSONCompletion { + constructor(schemaService, contributions = [], promiseConstructor = Promise, clientCapabilities = {}) { + this.schemaService = schemaService; + this.contributions = contributions; + this.promiseConstructor = promiseConstructor; + this.clientCapabilities = clientCapabilities; + } + doResolve(item) { + for (let i = this.contributions.length - 1; i >= 0; i--) { + const resolveCompletion = this.contributions[i].resolveCompletion; + if (resolveCompletion) { + const resolver = resolveCompletion(item); + if (resolver) { + return resolver; + } + } + } + return this.promiseConstructor.resolve(item); + } + doComplete(document, position, doc) { + const result = { + items: [], + isIncomplete: false + }; + const text = document.getText(); + const offset = document.offsetAt(position); + let node = doc.getNodeFromOffset(offset, true); + if (this.isInComment(document, node ? node.offset : 0, offset)) { + return Promise.resolve(result); + } + if (node && (offset === node.offset + node.length) && offset > 0) { + const ch = text[offset - 1]; + if (node.type === 'object' && ch === '}' || node.type === 'array' && ch === ']') { + // after ] or } + node = node.parent; + } + } + const currentWord = this.getCurrentWord(document, offset); + let overwriteRange; + if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) { + overwriteRange = Range$a.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length)); + } + else { + let overwriteStart = offset - currentWord.length; + if (overwriteStart > 0 && text[overwriteStart - 1] === '"') { + overwriteStart--; + } + overwriteRange = Range$a.create(document.positionAt(overwriteStart), position); + } + const proposed = new Map(); + const collector = { + add: (suggestion) => { + let label = suggestion.label; + const existing = proposed.get(label); + if (!existing) { + label = label.replace(/[\n]/g, '↵'); + if (label.length > 60) { + const shortendedLabel = label.substr(0, 57).trim() + '...'; + if (!proposed.has(shortendedLabel)) { + label = shortendedLabel; + } + } + suggestion.textEdit = TextEdit.replace(overwriteRange, suggestion.insertText); + suggestion.label = label; + proposed.set(label, suggestion); + result.items.push(suggestion); + } + else { + if (!existing.documentation) { + existing.documentation = suggestion.documentation; + } + if (!existing.detail) { + existing.detail = suggestion.detail; + } + if (!existing.labelDetails) { + existing.labelDetails = suggestion.labelDetails; + } + } + }, + setAsIncomplete: () => { + result.isIncomplete = true; + }, + error: (message) => { + console.error(message); + }, + getNumberOfProposals: () => { + return result.items.length; + } + }; + return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => { + const collectionPromises = []; + let addValue = true; + let currentKey = ''; + let currentProperty = undefined; + if (node) { + if (node.type === 'string') { + const parent = node.parent; + if (parent && parent.type === 'property' && parent.keyNode === node) { + addValue = !parent.valueNode; + currentProperty = parent; + currentKey = text.substr(node.offset + 1, node.length - 2); + if (parent) { + node = parent.parent; + } + } + } + } + // proposals for properties + if (node && node.type === 'object') { + // don't suggest keys when the cursor is just before the opening curly brace + if (node.offset === offset) { + return result; + } + // don't suggest properties that are already present + const properties = node.properties; + properties.forEach(p => { + if (!currentProperty || currentProperty !== p) { + proposed.set(p.keyNode.value, CompletionItem.create('__')); + } + }); + let separatorAfter = ''; + if (addValue) { + separatorAfter = this.evaluateSeparatorAfter(document, document.offsetAt(overwriteRange.end)); + } + if (schema) { + // property proposals with schema + this.getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector); + } + else { + // property proposals without schema + this.getSchemaLessPropertyCompletions(doc, node, currentKey, collector); + } + const location = getNodePath$1(node); + this.contributions.forEach((contribution) => { + const collectPromise = contribution.collectPropertyCompletions(document.uri, location, currentWord, addValue, separatorAfter === '', collector); + if (collectPromise) { + collectionPromises.push(collectPromise); + } + }); + if ((!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '"')) { + collector.add({ + kind: CompletionItemKind.Property, + label: this.getLabelForValue(currentWord), + insertText: this.getInsertTextForProperty(currentWord, undefined, false, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, documentation: '', + }); + collector.setAsIncomplete(); + } + } + // proposals for values + const types = {}; + if (schema) { + // value proposals with schema + this.getValueCompletions(schema, doc, node, offset, document, collector, types); + } + else { + // value proposals without schema + this.getSchemaLessValueCompletions(doc, node, offset, document, collector); + } + if (this.contributions.length > 0) { + this.getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises); + } + return this.promiseConstructor.all(collectionPromises).then(() => { + if (collector.getNumberOfProposals() === 0) { + let offsetForSeparator = offset; + if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) { + offsetForSeparator = node.offset + node.length; + } + const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator); + this.addFillerValueCompletions(types, separatorAfter, collector); + } + return result; + }); + }); + } + getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector) { + const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset); + matchingSchemas.forEach((s) => { + if (s.node === node && !s.inverted) { + const schemaProperties = s.schema.properties; + if (schemaProperties) { + Object.keys(schemaProperties).forEach((key) => { + const propertySchema = schemaProperties[key]; + if (typeof propertySchema === 'object' && !propertySchema.deprecationMessage && !propertySchema.doNotSuggest) { + const proposal = { + kind: CompletionItemKind.Property, + label: key, + insertText: this.getInsertTextForProperty(key, propertySchema, addValue, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + filterText: this.getFilterTextForValue(key), + documentation: this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || '', + }; + if (propertySchema.suggestSortText !== undefined) { + proposal.sortText = propertySchema.suggestSortText; + } + if (proposal.insertText && endsWith$2(proposal.insertText, `$1${separatorAfter}`)) { + proposal.command = { + title: 'Suggest', + command: 'editor.action.triggerSuggest' + }; + } + collector.add(proposal); + } + }); + } + const schemaPropertyNames = s.schema.propertyNames; + if (typeof schemaPropertyNames === 'object' && !schemaPropertyNames.deprecationMessage && !schemaPropertyNames.doNotSuggest) { + const propertyNameCompletionItem = (name, enumDescription = undefined) => { + const proposal = { + kind: CompletionItemKind.Property, + label: name, + insertText: this.getInsertTextForProperty(name, undefined, addValue, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + filterText: this.getFilterTextForValue(name), + documentation: enumDescription || this.fromMarkup(schemaPropertyNames.markdownDescription) || schemaPropertyNames.description || '', + }; + if (schemaPropertyNames.suggestSortText !== undefined) { + proposal.sortText = schemaPropertyNames.suggestSortText; + } + if (proposal.insertText && endsWith$2(proposal.insertText, `$1${separatorAfter}`)) { + proposal.command = { + title: 'Suggest', + command: 'editor.action.triggerSuggest' + }; + } + collector.add(proposal); + }; + if (schemaPropertyNames.enum) { + for (let i = 0; i < schemaPropertyNames.enum.length; i++) { + let enumDescription = undefined; + if (schemaPropertyNames.markdownEnumDescriptions && i < schemaPropertyNames.markdownEnumDescriptions.length) { + enumDescription = this.fromMarkup(schemaPropertyNames.markdownEnumDescriptions[i]); + } + else if (schemaPropertyNames.enumDescriptions && i < schemaPropertyNames.enumDescriptions.length) { + enumDescription = schemaPropertyNames.enumDescriptions[i]; + } + propertyNameCompletionItem(schemaPropertyNames.enum[i], enumDescription); + } + } + if (schemaPropertyNames.const) { + propertyNameCompletionItem(schemaPropertyNames.const); + } + } + } + }); + } + getSchemaLessPropertyCompletions(doc, node, currentKey, collector) { + const collectCompletionsForSimilarObject = (obj) => { + obj.properties.forEach((p) => { + const key = p.keyNode.value; + collector.add({ + kind: CompletionItemKind.Property, + label: key, + insertText: this.getInsertTextForValue(key, ''), + insertTextFormat: InsertTextFormat.Snippet, + filterText: this.getFilterTextForValue(key), + documentation: '' + }); + }); + }; + if (node.parent) { + if (node.parent.type === 'property') { + // if the object is a property value, check the tree for other objects that hang under a property of the same name + const parentKey = node.parent.keyNode.value; + doc.visit(n => { + if (n.type === 'property' && n !== node.parent && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === 'object') { + collectCompletionsForSimilarObject(n.valueNode); + } + return true; + }); + } + else if (node.parent.type === 'array') { + // if the object is in an array, use all other array elements as similar objects + node.parent.items.forEach(n => { + if (n.type === 'object' && n !== node) { + collectCompletionsForSimilarObject(n); + } + }); + } + } + else if (node.type === 'object') { + collector.add({ + kind: CompletionItemKind.Property, + label: '$schema', + insertText: this.getInsertTextForProperty('$schema', undefined, true, ''), + insertTextFormat: InsertTextFormat.Snippet, documentation: '', + filterText: this.getFilterTextForValue("$schema") + }); + } + } + getSchemaLessValueCompletions(doc, node, offset, document, collector) { + let offsetForSeparator = offset; + if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) { + offsetForSeparator = node.offset + node.length; + node = node.parent; + } + if (!node) { + collector.add({ + kind: this.getSuggestionKind('object'), + label: 'Empty object', + insertText: this.getInsertTextForValue({}, ''), + insertTextFormat: InsertTextFormat.Snippet, + documentation: '' + }); + collector.add({ + kind: this.getSuggestionKind('array'), + label: 'Empty array', + insertText: this.getInsertTextForValue([], ''), + insertTextFormat: InsertTextFormat.Snippet, + documentation: '' + }); + return; + } + const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator); + const collectSuggestionsForValues = (value) => { + if (value.parent && !contains(value.parent, offset, true)) { + collector.add({ + kind: this.getSuggestionKind(value.type), + label: this.getLabelTextForMatchingNode(value, document), + insertText: this.getInsertTextForMatchingNode(value, document, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, documentation: '' + }); + } + if (value.type === 'boolean') { + this.addBooleanValueCompletion(!value.value, separatorAfter, collector); + } + }; + if (node.type === 'property') { + if (offset > (node.colonOffset || 0)) { + const valueNode = node.valueNode; + if (valueNode && (offset > (valueNode.offset + valueNode.length) || valueNode.type === 'object' || valueNode.type === 'array')) { + return; + } + // suggest values at the same key + const parentKey = node.keyNode.value; + doc.visit(n => { + if (n.type === 'property' && n.keyNode.value === parentKey && n.valueNode) { + collectSuggestionsForValues(n.valueNode); + } + return true; + }); + if (parentKey === '$schema' && node.parent && !node.parent.parent) { + this.addDollarSchemaCompletions(separatorAfter, collector); + } + } + } + if (node.type === 'array') { + if (node.parent && node.parent.type === 'property') { + // suggest items of an array at the same key + const parentKey = node.parent.keyNode.value; + doc.visit((n) => { + if (n.type === 'property' && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === 'array') { + n.valueNode.items.forEach(collectSuggestionsForValues); + } + return true; + }); + } + else { + // suggest items in the same array + node.items.forEach(collectSuggestionsForValues); + } + } + } + getValueCompletions(schema, doc, node, offset, document, collector, types) { + let offsetForSeparator = offset; + let parentKey = undefined; + let valueNode = undefined; + if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) { + offsetForSeparator = node.offset + node.length; + valueNode = node; + node = node.parent; + } + if (!node) { + this.addSchemaValueCompletions(schema.schema, '', collector, types); + return; + } + if ((node.type === 'property') && offset > (node.colonOffset || 0)) { + const valueNode = node.valueNode; + if (valueNode && offset > (valueNode.offset + valueNode.length)) { + return; // we are past the value node + } + parentKey = node.keyNode.value; + node = node.parent; + } + if (node && (parentKey !== undefined || node.type === 'array')) { + const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator); + const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset, valueNode); + for (const s of matchingSchemas) { + if (s.node === node && !s.inverted && s.schema) { + if (node.type === 'array' && s.schema.items) { + let c = collector; + if (s.schema.uniqueItems) { + const existingValues = new Set(); + node.children.forEach(n => { + if (n.type !== 'array' && n.type !== 'object') { + existingValues.add(this.getLabelForValue(getNodeValue(n))); + } + }); + c = { + ...collector, + add(suggestion) { + if (!existingValues.has(suggestion.label)) { + collector.add(suggestion); + } + } + }; + } + if (Array.isArray(s.schema.items)) { + const index = this.findItemAtOffset(node, document, offset); + if (index < s.schema.items.length) { + this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, c, types); + } + } + else { + this.addSchemaValueCompletions(s.schema.items, separatorAfter, c, types); + } + } + if (parentKey !== undefined) { + let propertyMatched = false; + if (s.schema.properties) { + const propertySchema = s.schema.properties[parentKey]; + if (propertySchema) { + propertyMatched = true; + this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); + } + } + if (s.schema.patternProperties && !propertyMatched) { + for (const pattern of Object.keys(s.schema.patternProperties)) { + const regex = extendedRegExp(pattern); + if (regex?.test(parentKey)) { + propertyMatched = true; + const propertySchema = s.schema.patternProperties[pattern]; + this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); + } + } + } + if (s.schema.additionalProperties && !propertyMatched) { + const propertySchema = s.schema.additionalProperties; + this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); + } + } + } + } + if (parentKey === '$schema' && !node.parent) { + this.addDollarSchemaCompletions(separatorAfter, collector); + } + if (types['boolean']) { + this.addBooleanValueCompletion(true, separatorAfter, collector); + this.addBooleanValueCompletion(false, separatorAfter, collector); + } + if (types['null']) { + this.addNullValueCompletion(separatorAfter, collector); + } + } + } + getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises) { + if (!node) { + this.contributions.forEach((contribution) => { + const collectPromise = contribution.collectDefaultCompletions(document.uri, collector); + if (collectPromise) { + collectionPromises.push(collectPromise); + } + }); + } + else { + if (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null') { + node = node.parent; + } + if (node && (node.type === 'property') && offset > (node.colonOffset || 0)) { + const parentKey = node.keyNode.value; + const valueNode = node.valueNode; + if ((!valueNode || offset <= (valueNode.offset + valueNode.length)) && node.parent) { + const location = getNodePath$1(node.parent); + this.contributions.forEach((contribution) => { + const collectPromise = contribution.collectValueCompletions(document.uri, location, parentKey, collector); + if (collectPromise) { + collectionPromises.push(collectPromise); + } + }); + } + } + } + } + addSchemaValueCompletions(schema, separatorAfter, collector, types) { + if (typeof schema === 'object') { + this.addEnumValueCompletions(schema, separatorAfter, collector); + this.addDefaultValueCompletions(schema, separatorAfter, collector); + this.collectTypes(schema, types); + if (Array.isArray(schema.allOf)) { + schema.allOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types)); + } + if (Array.isArray(schema.anyOf)) { + schema.anyOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types)); + } + if (Array.isArray(schema.oneOf)) { + schema.oneOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types)); + } + } + } + addDefaultValueCompletions(schema, separatorAfter, collector, arrayDepth = 0) { + let hasProposals = false; + if (isDefined$2(schema.default)) { + let type = schema.type; + let value = schema.default; + for (let i = arrayDepth; i > 0; i--) { + value = [value]; + type = 'array'; + } + const completionItem = { + kind: this.getSuggestionKind(type), + label: this.getLabelForValue(value), + insertText: this.getInsertTextForValue(value, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet + }; + if (this.doesSupportsLabelDetails()) { + completionItem.labelDetails = { description: t$2('Default value') }; + } + else { + completionItem.detail = t$2('Default value'); + } + collector.add(completionItem); + hasProposals = true; + } + if (Array.isArray(schema.examples)) { + schema.examples.forEach(example => { + let type = schema.type; + let value = example; + for (let i = arrayDepth; i > 0; i--) { + value = [value]; + type = 'array'; + } + collector.add({ + kind: this.getSuggestionKind(type), + label: this.getLabelForValue(value), + insertText: this.getInsertTextForValue(value, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet + }); + hasProposals = true; + }); + } + if (Array.isArray(schema.defaultSnippets)) { + schema.defaultSnippets.forEach(s => { + let type = schema.type; + let value = s.body; + let label = s.label; + let insertText; + let filterText; + if (isDefined$2(value)) { + schema.type; + for (let i = arrayDepth; i > 0; i--) { + value = [value]; + } + insertText = this.getInsertTextForSnippetValue(value, separatorAfter); + filterText = this.getFilterTextForSnippetValue(value); + label = label || this.getLabelForSnippetValue(value); + } + else if (typeof s.bodyText === 'string') { + let prefix = '', suffix = '', indent = ''; + for (let i = arrayDepth; i > 0; i--) { + prefix = prefix + indent + '[\n'; + suffix = suffix + '\n' + indent + ']'; + indent += '\t'; + type = 'array'; + } + insertText = prefix + indent + s.bodyText.split('\n').join('\n' + indent) + suffix + separatorAfter; + label = label || insertText, + filterText = insertText.replace(/[\n]/g, ''); // remove new lines + } + else { + return; + } + collector.add({ + kind: this.getSuggestionKind(type), + label, + documentation: this.fromMarkup(s.markdownDescription) || s.description, + insertText, + insertTextFormat: InsertTextFormat.Snippet, + filterText + }); + hasProposals = true; + }); + } + if (!hasProposals && typeof schema.items === 'object' && !Array.isArray(schema.items) && arrayDepth < 5 /* beware of recursion */) { + this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1); + } + } + addEnumValueCompletions(schema, separatorAfter, collector) { + if (isDefined$2(schema.const)) { + collector.add({ + kind: this.getSuggestionKind(schema.type), + label: this.getLabelForValue(schema.const), + insertText: this.getInsertTextForValue(schema.const, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + documentation: this.fromMarkup(schema.markdownDescription) || schema.description + }); + } + if (Array.isArray(schema.enum)) { + for (let i = 0, length = schema.enum.length; i < length; i++) { + const enm = schema.enum[i]; + let documentation = this.fromMarkup(schema.markdownDescription) || schema.description; + if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) { + documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]); + } + else if (schema.enumDescriptions && i < schema.enumDescriptions.length) { + documentation = schema.enumDescriptions[i]; + } + collector.add({ + kind: this.getSuggestionKind(schema.type), + label: this.getLabelForValue(enm), + insertText: this.getInsertTextForValue(enm, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + documentation + }); + } + } + } + collectTypes(schema, types) { + if (Array.isArray(schema.enum) || isDefined$2(schema.const)) { + return; + } + const type = schema.type; + if (Array.isArray(type)) { + type.forEach(t => types[t] = true); + } + else if (type) { + types[type] = true; + } + } + addFillerValueCompletions(types, separatorAfter, collector) { + if (types['object']) { + collector.add({ + kind: this.getSuggestionKind('object'), + label: '{}', + insertText: this.getInsertTextForGuessedValue({}, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + detail: t$2('New object'), + documentation: '' + }); + } + if (types['array']) { + collector.add({ + kind: this.getSuggestionKind('array'), + label: '[]', + insertText: this.getInsertTextForGuessedValue([], separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + detail: t$2('New array'), + documentation: '' + }); + } + } + addBooleanValueCompletion(value, separatorAfter, collector) { + collector.add({ + kind: this.getSuggestionKind('boolean'), + label: value ? 'true' : 'false', + insertText: this.getInsertTextForValue(value, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, + documentation: '' + }); + } + addNullValueCompletion(separatorAfter, collector) { + collector.add({ + kind: this.getSuggestionKind('null'), + label: 'null', + insertText: 'null' + separatorAfter, + insertTextFormat: InsertTextFormat.Snippet, + documentation: '' + }); + } + addDollarSchemaCompletions(separatorAfter, collector) { + const schemaIds = this.schemaService.getRegisteredSchemaIds(schema => schema === 'http' || schema === 'https'); + schemaIds.forEach(schemaId => { + if (schemaId.startsWith('http://json-schema.org/draft-')) { + schemaId = schemaId + '#'; + } + collector.add({ + kind: CompletionItemKind.Module, + label: this.getLabelForValue(schemaId), + filterText: this.getFilterTextForValue(schemaId), + insertText: this.getInsertTextForValue(schemaId, separatorAfter), + insertTextFormat: InsertTextFormat.Snippet, documentation: '' + }); + }); + } + getLabelForValue(value) { + return JSON.stringify(value); + } + getValueFromLabel(value) { + return JSON.parse(value); + } + getFilterTextForValue(value) { + return JSON.stringify(value); + } + getFilterTextForSnippetValue(value) { + return JSON.stringify(value).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1'); + } + getLabelForSnippetValue(value) { + const label = JSON.stringify(value); + return label.replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1'); + } + getInsertTextForPlainText(text) { + return text.replace(/[\\\$\}]/g, '\\$&'); // escape $, \ and } + } + getInsertTextForValue(value, separatorAfter) { + const text = JSON.stringify(value, null, '\t'); + if (text === '{}') { + return '{$1}' + separatorAfter; + } + else if (text === '[]') { + return '[$1]' + separatorAfter; + } + return this.getInsertTextForPlainText(text + separatorAfter); + } + getInsertTextForSnippetValue(value, separatorAfter) { + const replacer = (value) => { + if (typeof value === 'string') { + if (value[0] === '^') { + return value.substr(1); + } + } + return JSON.stringify(value); + }; + return stringifyObject(value, '', replacer) + separatorAfter; + } + getInsertTextForGuessedValue(value, separatorAfter) { + switch (typeof value) { + case 'object': + if (value === null) { + return '${1:null}' + separatorAfter; + } + return this.getInsertTextForValue(value, separatorAfter); + case 'string': + let snippetValue = JSON.stringify(value); + snippetValue = snippetValue.substr(1, snippetValue.length - 2); // remove quotes + snippetValue = this.getInsertTextForPlainText(snippetValue); // escape \ and } + return '"${1:' + snippetValue + '}"' + separatorAfter; + case 'number': + case 'boolean': + return '${1:' + JSON.stringify(value) + '}' + separatorAfter; + } + return this.getInsertTextForValue(value, separatorAfter); + } + getSuggestionKind(type) { + if (Array.isArray(type)) { + const array = type; + type = array.length > 0 ? array[0] : undefined; + } + if (!type) { + return CompletionItemKind.Value; + } + switch (type) { + case 'string': return CompletionItemKind.Value; + case 'object': return CompletionItemKind.Module; + case 'property': return CompletionItemKind.Property; + default: return CompletionItemKind.Value; + } + } + getLabelTextForMatchingNode(node, document) { + switch (node.type) { + case 'array': + return '[]'; + case 'object': + return '{}'; + default: + const content = document.getText().substr(node.offset, node.length); + return content; + } + } + getInsertTextForMatchingNode(node, document, separatorAfter) { + switch (node.type) { + case 'array': + return this.getInsertTextForValue([], separatorAfter); + case 'object': + return this.getInsertTextForValue({}, separatorAfter); + default: + const content = document.getText().substr(node.offset, node.length) + separatorAfter; + return this.getInsertTextForPlainText(content); + } + } + getInsertTextForProperty(key, propertySchema, addValue, separatorAfter) { + const propertyText = this.getInsertTextForValue(key, ''); + if (!addValue) { + return propertyText; + } + const resultText = propertyText + ': '; + let value; + let nValueProposals = 0; + if (propertySchema) { + if (Array.isArray(propertySchema.defaultSnippets)) { + if (propertySchema.defaultSnippets.length === 1) { + const body = propertySchema.defaultSnippets[0].body; + if (isDefined$2(body)) { + value = this.getInsertTextForSnippetValue(body, ''); + } + } + nValueProposals += propertySchema.defaultSnippets.length; + } + if (propertySchema.enum) { + if (!value && propertySchema.enum.length === 1) { + value = this.getInsertTextForGuessedValue(propertySchema.enum[0], ''); + } + nValueProposals += propertySchema.enum.length; + } + if (isDefined$2(propertySchema.const)) { + if (!value) { + value = this.getInsertTextForGuessedValue(propertySchema.const, ''); + } + nValueProposals++; + } + if (isDefined$2(propertySchema.default)) { + if (!value) { + value = this.getInsertTextForGuessedValue(propertySchema.default, ''); + } + nValueProposals++; + } + if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) { + if (!value) { + value = this.getInsertTextForGuessedValue(propertySchema.examples[0], ''); + } + nValueProposals += propertySchema.examples.length; + } + if (nValueProposals === 0) { + let type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type; + if (!type) { + if (propertySchema.properties) { + type = 'object'; + } + else if (propertySchema.items) { + type = 'array'; + } + } + switch (type) { + case 'boolean': + value = '$1'; + break; + case 'string': + value = '"$1"'; + break; + case 'object': + value = '{$1}'; + break; + case 'array': + value = '[$1]'; + break; + case 'number': + case 'integer': + value = '${1:0}'; + break; + case 'null': + value = '${1:null}'; + break; + default: + return propertyText; + } + } + } + if (!value || nValueProposals > 1) { + value = '$1'; + } + return resultText + value + separatorAfter; + } + getCurrentWord(document, offset) { + let i = offset - 1; + const text = document.getText(); + while (i >= 0 && ' \t\n\r\v":{[,]}'.indexOf(text.charAt(i)) === -1) { + i--; + } + return text.substring(i + 1, offset); + } + evaluateSeparatorAfter(document, offset) { + const scanner = createScanner$1(document.getText(), true); + scanner.setPosition(offset); + const token = scanner.scan(); + switch (token) { + case 5 /* Json.SyntaxKind.CommaToken */: + case 2 /* Json.SyntaxKind.CloseBraceToken */: + case 4 /* Json.SyntaxKind.CloseBracketToken */: + case 17 /* Json.SyntaxKind.EOF */: + return ''; + default: + return ','; + } + } + findItemAtOffset(node, document, offset) { + const scanner = createScanner$1(document.getText(), true); + const children = node.items; + for (let i = children.length - 1; i >= 0; i--) { + const child = children[i]; + if (offset > child.offset + child.length) { + scanner.setPosition(child.offset + child.length); + const token = scanner.scan(); + if (token === 5 /* Json.SyntaxKind.CommaToken */ && offset >= scanner.getTokenOffset() + scanner.getTokenLength()) { + return i + 1; + } + return i; + } + else if (offset >= child.offset) { + return i; + } + } + return 0; + } + isInComment(document, start, offset) { + const scanner = createScanner$1(document.getText(), false); + scanner.setPosition(start); + let token = scanner.scan(); + while (token !== 17 /* Json.SyntaxKind.EOF */ && (scanner.getTokenOffset() + scanner.getTokenLength() < offset)) { + token = scanner.scan(); + } + return (token === 12 /* Json.SyntaxKind.LineCommentTrivia */ || token === 13 /* Json.SyntaxKind.BlockCommentTrivia */) && scanner.getTokenOffset() <= offset; + } + fromMarkup(markupString) { + if (markupString && this.doesSupportMarkdown()) { + return { + kind: MarkupKind.Markdown, + value: markupString + }; + } + return undefined; + } + doesSupportMarkdown() { + if (!isDefined$2(this.supportsMarkdown)) { + const documentationFormat = this.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat; + this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + } + doesSupportsCommitCharacters() { + if (!isDefined$2(this.supportsCommitCharacters)) { + this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.commitCharactersSupport; + } + return this.supportsCommitCharacters; + } + doesSupportsLabelDetails() { + if (!isDefined$2(this.labelDetailsSupport)) { + this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.labelDetailsSupport; + } + return this.labelDetailsSupport; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class JSONHover { + constructor(schemaService, contributions = [], promiseConstructor) { + this.schemaService = schemaService; + this.contributions = contributions; + this.promise = promiseConstructor || Promise; + } + doHover(document, position, doc) { + const offset = document.offsetAt(position); + let node = doc.getNodeFromOffset(offset); + if (!node || (node.type === 'object' || node.type === 'array') && offset > node.offset + 1 && offset < node.offset + node.length - 1) { + return this.promise.resolve(null); + } + const hoverRangeNode = node; + // use the property description when hovering over an object key + if (node.type === 'string') { + const parent = node.parent; + if (parent && parent.type === 'property' && parent.keyNode === node) { + node = parent.valueNode; + if (!node) { + return this.promise.resolve(null); + } + } + } + const hoverRange = Range$a.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length)); + const createHover = (contents) => { + const result = { + contents: contents, + range: hoverRange + }; + return result; + }; + const location = getNodePath$1(node); + for (let i = this.contributions.length - 1; i >= 0; i--) { + const contribution = this.contributions[i]; + const promise = contribution.getInfoContribution(document.uri, location); + if (promise) { + return promise.then(htmlContent => createHover(htmlContent)); + } + } + return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => { + if (schema && node) { + const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset); + let title = undefined; + let markdownDescription = undefined; + let markdownEnumValueDescription = undefined, enumValue = undefined; + matchingSchemas.every((s) => { + if (s.node === node && !s.inverted && s.schema) { + title = title || s.schema.title; + markdownDescription = markdownDescription || s.schema.markdownDescription || toMarkdown(s.schema.description); + if (s.schema.enum) { + const idx = s.schema.enum.indexOf(getNodeValue(node)); + if (s.schema.markdownEnumDescriptions) { + markdownEnumValueDescription = s.schema.markdownEnumDescriptions[idx]; + } + else if (s.schema.enumDescriptions) { + markdownEnumValueDescription = toMarkdown(s.schema.enumDescriptions[idx]); + } + if (markdownEnumValueDescription) { + enumValue = s.schema.enum[idx]; + if (typeof enumValue !== 'string') { + enumValue = JSON.stringify(enumValue); + } + } + } + } + return true; + }); + let result = ''; + if (title) { + result = toMarkdown(title); + } + if (markdownDescription) { + if (result.length > 0) { + result += "\n\n"; + } + result += markdownDescription; + } + if (markdownEnumValueDescription) { + if (result.length > 0) { + result += "\n\n"; + } + result += `\`${toMarkdownCodeBlock(enumValue)}\`: ${markdownEnumValueDescription}`; + } + return createHover([result]); + } + return null; + }); + } +} +function toMarkdown(plain) { + if (plain) { + const res = plain.replace(/([^\n\r])(\r?\n)([^\n\r])/gm, '$1\n\n$3'); // single new lines to \n\n (Markdown paragraph) + return res.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash + } + return undefined; +} +function toMarkdownCodeBlock(content) { + // see https://daringfireball.net/projects/markdown/syntax#precode + if (content.indexOf('`') !== -1) { + return '`` ' + content + ' ``'; + } + return content; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class JSONValidation { + constructor(jsonSchemaService, promiseConstructor) { + this.jsonSchemaService = jsonSchemaService; + this.promise = promiseConstructor; + this.validationEnabled = true; + } + configure(raw) { + if (raw) { + this.validationEnabled = raw.validate !== false; + this.commentSeverity = raw.allowComments ? undefined : DiagnosticSeverity.Error; + } + } + doValidation(textDocument, jsonDocument, documentSettings, schema) { + if (!this.validationEnabled) { + return this.promise.resolve([]); + } + const diagnostics = []; + const added = {}; + const addProblem = (problem) => { + // remove duplicated messages + const signature = problem.range.start.line + ' ' + problem.range.start.character + ' ' + problem.message; + if (!added[signature]) { + added[signature] = true; + diagnostics.push(problem); + } + }; + const getDiagnostics = (schema) => { + let trailingCommaSeverity = documentSettings?.trailingCommas ? toDiagnosticSeverity(documentSettings.trailingCommas) : DiagnosticSeverity.Error; + let commentSeverity = documentSettings?.comments ? toDiagnosticSeverity(documentSettings.comments) : this.commentSeverity; + let schemaValidation = documentSettings?.schemaValidation ? toDiagnosticSeverity(documentSettings.schemaValidation) : DiagnosticSeverity.Warning; + let schemaRequest = documentSettings?.schemaRequest ? toDiagnosticSeverity(documentSettings.schemaRequest) : DiagnosticSeverity.Warning; + if (schema) { + const addSchemaProblem = (errorMessage, errorCode) => { + if (jsonDocument.root && schemaRequest) { + const astRoot = jsonDocument.root; + const property = astRoot.type === 'object' ? astRoot.properties[0] : undefined; + if (property && property.keyNode.value === '$schema') { + const node = property.valueNode || property; + const range = Range$a.create(textDocument.positionAt(node.offset), textDocument.positionAt(node.offset + node.length)); + addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode)); + } + else { + const range = Range$a.create(textDocument.positionAt(astRoot.offset), textDocument.positionAt(astRoot.offset + 1)); + addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode)); + } + } + }; + if (schema.errors.length) { + addSchemaProblem(schema.errors[0], ErrorCode.SchemaResolveError); + } + else if (schemaValidation) { + for (const warning of schema.warnings) { + addSchemaProblem(warning, ErrorCode.SchemaUnsupportedFeature); + } + const semanticErrors = jsonDocument.validate(textDocument, schema.schema, schemaValidation, documentSettings?.schemaDraft); + if (semanticErrors) { + semanticErrors.forEach(addProblem); + } + } + if (schemaAllowsComments(schema.schema)) { + commentSeverity = undefined; + } + if (schemaAllowsTrailingCommas(schema.schema)) { + trailingCommaSeverity = undefined; + } + } + for (const p of jsonDocument.syntaxErrors) { + if (p.code === ErrorCode.TrailingComma) { + if (typeof trailingCommaSeverity !== 'number') { + continue; + } + p.severity = trailingCommaSeverity; + } + addProblem(p); + } + if (typeof commentSeverity === 'number') { + const message = t$2('Comments are not permitted in JSON.'); + jsonDocument.comments.forEach(c => { + addProblem(Diagnostic.create(c, message, commentSeverity, ErrorCode.CommentNotPermitted)); + }); + } + return diagnostics; + }; + if (schema) { + const uri = schema.id || ('schemaservice://untitled/' + idCounter$1++); + const handle = this.jsonSchemaService.registerExternalSchema({ uri, schema }); + return handle.getResolvedSchema().then(resolvedSchema => { + return getDiagnostics(resolvedSchema); + }); + } + return this.jsonSchemaService.getSchemaForResource(textDocument.uri, jsonDocument).then(schema => { + return getDiagnostics(schema); + }); + } + getLanguageStatus(textDocument, jsonDocument) { + return { schemas: this.jsonSchemaService.getSchemaURIsForResource(textDocument.uri, jsonDocument) }; + } +} +let idCounter$1 = 0; +function schemaAllowsComments(schemaRef) { + if (schemaRef && typeof schemaRef === 'object') { + if (isBoolean(schemaRef.allowComments)) { + return schemaRef.allowComments; + } + if (schemaRef.allOf) { + for (const schema of schemaRef.allOf) { + const allow = schemaAllowsComments(schema); + if (isBoolean(allow)) { + return allow; + } + } + } + } + return undefined; +} +function schemaAllowsTrailingCommas(schemaRef) { + if (schemaRef && typeof schemaRef === 'object') { + if (isBoolean(schemaRef.allowTrailingCommas)) { + return schemaRef.allowTrailingCommas; + } + const deprSchemaRef = schemaRef; + if (isBoolean(deprSchemaRef['allowsTrailingCommas'])) { // deprecated + return deprSchemaRef['allowsTrailingCommas']; + } + if (schemaRef.allOf) { + for (const schema of schemaRef.allOf) { + const allow = schemaAllowsTrailingCommas(schema); + if (isBoolean(allow)) { + return allow; + } + } + } + } + return undefined; +} +function toDiagnosticSeverity(severityLevel) { + switch (severityLevel) { + case 'error': return DiagnosticSeverity.Error; + case 'warning': return DiagnosticSeverity.Warning; + case 'ignore': return undefined; + } + return undefined; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const Digit0$1 = 48; +const Digit9$1 = 57; +const A$1 = 65; +const a$1 = 97; +const f$1 = 102; +function hexDigit$1(charCode) { + if (charCode < Digit0$1) { + return 0; + } + if (charCode <= Digit9$1) { + return charCode - Digit0$1; + } + if (charCode < a$1) { + charCode += (a$1 - A$1); + } + if (charCode >= a$1 && charCode <= f$1) { + return charCode - a$1 + 10; + } + return 0; +} +function colorFromHex$1(text) { + if (text[0] !== '#') { + return undefined; + } + switch (text.length) { + case 4: + return { + red: (hexDigit$1(text.charCodeAt(1)) * 0x11) / 255.0, + green: (hexDigit$1(text.charCodeAt(2)) * 0x11) / 255.0, + blue: (hexDigit$1(text.charCodeAt(3)) * 0x11) / 255.0, + alpha: 1 + }; + case 5: + return { + red: (hexDigit$1(text.charCodeAt(1)) * 0x11) / 255.0, + green: (hexDigit$1(text.charCodeAt(2)) * 0x11) / 255.0, + blue: (hexDigit$1(text.charCodeAt(3)) * 0x11) / 255.0, + alpha: (hexDigit$1(text.charCodeAt(4)) * 0x11) / 255.0, + }; + case 7: + return { + red: (hexDigit$1(text.charCodeAt(1)) * 0x10 + hexDigit$1(text.charCodeAt(2))) / 255.0, + green: (hexDigit$1(text.charCodeAt(3)) * 0x10 + hexDigit$1(text.charCodeAt(4))) / 255.0, + blue: (hexDigit$1(text.charCodeAt(5)) * 0x10 + hexDigit$1(text.charCodeAt(6))) / 255.0, + alpha: 1 + }; + case 9: + return { + red: (hexDigit$1(text.charCodeAt(1)) * 0x10 + hexDigit$1(text.charCodeAt(2))) / 255.0, + green: (hexDigit$1(text.charCodeAt(3)) * 0x10 + hexDigit$1(text.charCodeAt(4))) / 255.0, + blue: (hexDigit$1(text.charCodeAt(5)) * 0x10 + hexDigit$1(text.charCodeAt(6))) / 255.0, + alpha: (hexDigit$1(text.charCodeAt(7)) * 0x10 + hexDigit$1(text.charCodeAt(8))) / 255.0 + }; + } + return undefined; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class JSONDocumentSymbols { + constructor(schemaService) { + this.schemaService = schemaService; + } + findDocumentSymbols(document, doc, context = { resultLimit: Number.MAX_VALUE }) { + const root = doc.root; + if (!root) { + return []; + } + let limit = context.resultLimit || Number.MAX_VALUE; + // special handling for key bindings + const resourceString = document.uri; + if ((resourceString === 'vscode://defaultsettings/keybindings.json') || endsWith$2(resourceString.toLowerCase(), '/user/keybindings.json')) { + if (root.type === 'array') { + const result = []; + for (const item of root.items) { + if (item.type === 'object') { + for (const property of item.properties) { + if (property.keyNode.value === 'key' && property.valueNode) { + const location = Location.create(document.uri, getRange$1(document, item)); + result.push({ name: getName(property.valueNode), kind: SymbolKind$1.Function, location: location }); + limit--; + if (limit <= 0) { + if (context && context.onResultLimitExceeded) { + context.onResultLimitExceeded(resourceString); + } + return result; + } + } + } + } + } + return result; + } + } + const toVisit = [ + { node: root, containerName: '' } + ]; + let nextToVisit = 0; + let limitExceeded = false; + const result = []; + const collectOutlineEntries = (node, containerName) => { + if (node.type === 'array') { + node.items.forEach(node => { + if (node) { + toVisit.push({ node, containerName }); + } + }); + } + else if (node.type === 'object') { + node.properties.forEach((property) => { + const valueNode = property.valueNode; + if (valueNode) { + if (limit > 0) { + limit--; + const location = Location.create(document.uri, getRange$1(document, property)); + const childContainerName = containerName ? containerName + '.' + property.keyNode.value : property.keyNode.value; + result.push({ name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), location: location, containerName: containerName }); + toVisit.push({ node: valueNode, containerName: childContainerName }); + } + else { + limitExceeded = true; + } + } + }); + } + }; + // breath first traversal + while (nextToVisit < toVisit.length) { + const next = toVisit[nextToVisit++]; + collectOutlineEntries(next.node, next.containerName); + } + if (limitExceeded && context && context.onResultLimitExceeded) { + context.onResultLimitExceeded(resourceString); + } + return result; + } + findDocumentSymbols2(document, doc, context = { resultLimit: Number.MAX_VALUE }) { + const root = doc.root; + if (!root) { + return []; + } + let limit = context.resultLimit || Number.MAX_VALUE; + // special handling for key bindings + const resourceString = document.uri; + if ((resourceString === 'vscode://defaultsettings/keybindings.json') || endsWith$2(resourceString.toLowerCase(), '/user/keybindings.json')) { + if (root.type === 'array') { + const result = []; + for (const item of root.items) { + if (item.type === 'object') { + for (const property of item.properties) { + if (property.keyNode.value === 'key' && property.valueNode) { + const range = getRange$1(document, item); + const selectionRange = getRange$1(document, property.keyNode); + result.push({ name: getName(property.valueNode), kind: SymbolKind$1.Function, range, selectionRange }); + limit--; + if (limit <= 0) { + if (context && context.onResultLimitExceeded) { + context.onResultLimitExceeded(resourceString); + } + return result; + } + } + } + } + } + return result; + } + } + const result = []; + const toVisit = [ + { node: root, result } + ]; + let nextToVisit = 0; + let limitExceeded = false; + const collectOutlineEntries = (node, result) => { + if (node.type === 'array') { + node.items.forEach((node, index) => { + if (node) { + if (limit > 0) { + limit--; + const range = getRange$1(document, node); + const selectionRange = range; + const name = String(index); + const symbol = { name, kind: this.getSymbolKind(node.type), range, selectionRange, children: [] }; + result.push(symbol); + toVisit.push({ result: symbol.children, node }); + } + else { + limitExceeded = true; + } + } + }); + } + else if (node.type === 'object') { + node.properties.forEach((property) => { + const valueNode = property.valueNode; + if (valueNode) { + if (limit > 0) { + limit--; + const range = getRange$1(document, property); + const selectionRange = getRange$1(document, property.keyNode); + const children = []; + const symbol = { name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), range, selectionRange, children, detail: this.getDetail(valueNode) }; + result.push(symbol); + toVisit.push({ result: children, node: valueNode }); + } + else { + limitExceeded = true; + } + } + }); + } + }; + // breath first traversal + while (nextToVisit < toVisit.length) { + const next = toVisit[nextToVisit++]; + collectOutlineEntries(next.node, next.result); + } + if (limitExceeded && context && context.onResultLimitExceeded) { + context.onResultLimitExceeded(resourceString); + } + return result; + } + getSymbolKind(nodeType) { + switch (nodeType) { + case 'object': + return SymbolKind$1.Module; + case 'string': + return SymbolKind$1.String; + case 'number': + return SymbolKind$1.Number; + case 'array': + return SymbolKind$1.Array; + case 'boolean': + return SymbolKind$1.Boolean; + default: // 'null' + return SymbolKind$1.Variable; + } + } + getKeyLabel(property) { + let name = property.keyNode.value; + if (name) { + name = name.replace(/[\n]/g, '↵'); + } + if (name && name.trim()) { + return name; + } + return `"${name}"`; + } + getDetail(node) { + if (!node) { + return undefined; + } + if (node.type === 'boolean' || node.type === 'number' || node.type === 'null' || node.type === 'string') { + return String(node.value); + } + else { + if (node.type === 'array') { + return node.children.length ? undefined : '[]'; + } + else if (node.type === 'object') { + return node.children.length ? undefined : '{}'; + } + } + return undefined; + } + findDocumentColors(document, doc, context) { + return this.schemaService.getSchemaForResource(document.uri, doc).then(schema => { + const result = []; + if (schema) { + let limit = context && typeof context.resultLimit === 'number' ? context.resultLimit : Number.MAX_VALUE; + const matchingSchemas = doc.getMatchingSchemas(schema.schema); + const visitedNode = {}; + for (const s of matchingSchemas) { + if (!s.inverted && s.schema && (s.schema.format === 'color' || s.schema.format === 'color-hex') && s.node && s.node.type === 'string') { + const nodeId = String(s.node.offset); + if (!visitedNode[nodeId]) { + const color = colorFromHex$1(getNodeValue(s.node)); + if (color) { + const range = getRange$1(document, s.node); + result.push({ color, range }); + } + visitedNode[nodeId] = true; + limit--; + if (limit <= 0) { + if (context && context.onResultLimitExceeded) { + context.onResultLimitExceeded(document.uri); + } + return result; + } + } + } + } + } + return result; + }); + } + getColorPresentations(document, doc, color, range) { + const result = []; + const red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255); + function toTwoDigitHex(n) { + const r = n.toString(16); + return r.length !== 2 ? '0' + r : r; + } + let label; + if (color.alpha === 1) { + label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}`; + } + else { + label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}${toTwoDigitHex(Math.round(color.alpha * 255))}`; + } + result.push({ label: label, textEdit: TextEdit.replace(range, JSON.stringify(label)) }); + return result; + } +} +function getRange$1(document, node) { + return Range$a.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length)); +} +function getName(node) { + return getNodeValue(node) || t$2('<empty>'); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const schemaContributions = { + schemaAssociations: [], + schemas: { + // bundle the schema-schema to include (localized) descriptions + 'http://json-schema.org/draft-04/schema#': { + '$schema': 'http://json-schema.org/draft-04/schema#', + 'definitions': { + 'schemaArray': { + 'type': 'array', + 'minItems': 1, + 'items': { + '$ref': '#' + } + }, + 'positiveInteger': { + 'type': 'integer', + 'minimum': 0 + }, + 'positiveIntegerDefault0': { + 'allOf': [ + { + '$ref': '#/definitions/positiveInteger' + }, + { + 'default': 0 + } + ] + }, + 'simpleTypes': { + 'type': 'string', + 'enum': [ + 'array', + 'boolean', + 'integer', + 'null', + 'number', + 'object', + 'string' + ] + }, + 'stringArray': { + 'type': 'array', + 'items': { + 'type': 'string' + }, + 'minItems': 1, + 'uniqueItems': true + } + }, + 'type': 'object', + 'properties': { + 'id': { + 'type': 'string', + 'format': 'uri' + }, + '$schema': { + 'type': 'string', + 'format': 'uri' + }, + 'title': { + 'type': 'string' + }, + 'description': { + 'type': 'string' + }, + 'default': {}, + 'multipleOf': { + 'type': 'number', + 'minimum': 0, + 'exclusiveMinimum': true + }, + 'maximum': { + 'type': 'number' + }, + 'exclusiveMaximum': { + 'type': 'boolean', + 'default': false + }, + 'minimum': { + 'type': 'number' + }, + 'exclusiveMinimum': { + 'type': 'boolean', + 'default': false + }, + 'maxLength': { + 'allOf': [ + { + '$ref': '#/definitions/positiveInteger' + } + ] + }, + 'minLength': { + 'allOf': [ + { + '$ref': '#/definitions/positiveIntegerDefault0' + } + ] + }, + 'pattern': { + 'type': 'string', + 'format': 'regex' + }, + 'additionalItems': { + 'anyOf': [ + { + 'type': 'boolean' + }, + { + '$ref': '#' + } + ], + 'default': {} + }, + 'items': { + 'anyOf': [ + { + '$ref': '#' + }, + { + '$ref': '#/definitions/schemaArray' + } + ], + 'default': {} + }, + 'maxItems': { + 'allOf': [ + { + '$ref': '#/definitions/positiveInteger' + } + ] + }, + 'minItems': { + 'allOf': [ + { + '$ref': '#/definitions/positiveIntegerDefault0' + } + ] + }, + 'uniqueItems': { + 'type': 'boolean', + 'default': false + }, + 'maxProperties': { + 'allOf': [ + { + '$ref': '#/definitions/positiveInteger' + } + ] + }, + 'minProperties': { + 'allOf': [ + { + '$ref': '#/definitions/positiveIntegerDefault0' + } + ] + }, + 'required': { + 'allOf': [ + { + '$ref': '#/definitions/stringArray' + } + ] + }, + 'additionalProperties': { + 'anyOf': [ + { + 'type': 'boolean' + }, + { + '$ref': '#' + } + ], + 'default': {} + }, + 'definitions': { + 'type': 'object', + 'additionalProperties': { + '$ref': '#' + }, + 'default': {} + }, + 'properties': { + 'type': 'object', + 'additionalProperties': { + '$ref': '#' + }, + 'default': {} + }, + 'patternProperties': { + 'type': 'object', + 'additionalProperties': { + '$ref': '#' + }, + 'default': {} + }, + 'dependencies': { + 'type': 'object', + 'additionalProperties': { + 'anyOf': [ + { + '$ref': '#' + }, + { + '$ref': '#/definitions/stringArray' + } + ] + } + }, + 'enum': { + 'type': 'array', + 'minItems': 1, + 'uniqueItems': true + }, + 'type': { + 'anyOf': [ + { + '$ref': '#/definitions/simpleTypes' + }, + { + 'type': 'array', + 'items': { + '$ref': '#/definitions/simpleTypes' + }, + 'minItems': 1, + 'uniqueItems': true + } + ] + }, + 'format': { + 'anyOf': [ + { + 'type': 'string', + 'enum': [ + 'date-time', + 'uri', + 'email', + 'hostname', + 'ipv4', + 'ipv6', + 'regex' + ] + }, + { + 'type': 'string' + } + ] + }, + 'allOf': { + 'allOf': [ + { + '$ref': '#/definitions/schemaArray' + } + ] + }, + 'anyOf': { + 'allOf': [ + { + '$ref': '#/definitions/schemaArray' + } + ] + }, + 'oneOf': { + 'allOf': [ + { + '$ref': '#/definitions/schemaArray' + } + ] + }, + 'not': { + 'allOf': [ + { + '$ref': '#' + } + ] + } + }, + 'dependencies': { + 'exclusiveMaximum': [ + 'maximum' + ], + 'exclusiveMinimum': [ + 'minimum' + ] + }, + 'default': {} + }, + 'http://json-schema.org/draft-07/schema#': { + 'definitions': { + 'schemaArray': { + 'type': 'array', + 'minItems': 1, + 'items': { '$ref': '#' } + }, + 'nonNegativeInteger': { + 'type': 'integer', + 'minimum': 0 + }, + 'nonNegativeIntegerDefault0': { + 'allOf': [ + { '$ref': '#/definitions/nonNegativeInteger' }, + { 'default': 0 } + ] + }, + 'simpleTypes': { + 'enum': [ + 'array', + 'boolean', + 'integer', + 'null', + 'number', + 'object', + 'string' + ] + }, + 'stringArray': { + 'type': 'array', + 'items': { 'type': 'string' }, + 'uniqueItems': true, + 'default': [] + } + }, + 'type': ['object', 'boolean'], + 'properties': { + '$id': { + 'type': 'string', + 'format': 'uri-reference' + }, + '$schema': { + 'type': 'string', + 'format': 'uri' + }, + '$ref': { + 'type': 'string', + 'format': 'uri-reference' + }, + '$comment': { + 'type': 'string' + }, + 'title': { + 'type': 'string' + }, + 'description': { + 'type': 'string' + }, + 'default': true, + 'readOnly': { + 'type': 'boolean', + 'default': false + }, + 'examples': { + 'type': 'array', + 'items': true + }, + 'multipleOf': { + 'type': 'number', + 'exclusiveMinimum': 0 + }, + 'maximum': { + 'type': 'number' + }, + 'exclusiveMaximum': { + 'type': 'number' + }, + 'minimum': { + 'type': 'number' + }, + 'exclusiveMinimum': { + 'type': 'number' + }, + 'maxLength': { '$ref': '#/definitions/nonNegativeInteger' }, + 'minLength': { '$ref': '#/definitions/nonNegativeIntegerDefault0' }, + 'pattern': { + 'type': 'string', + 'format': 'regex' + }, + 'additionalItems': { '$ref': '#' }, + 'items': { + 'anyOf': [ + { '$ref': '#' }, + { '$ref': '#/definitions/schemaArray' } + ], + 'default': true + }, + 'maxItems': { '$ref': '#/definitions/nonNegativeInteger' }, + 'minItems': { '$ref': '#/definitions/nonNegativeIntegerDefault0' }, + 'uniqueItems': { + 'type': 'boolean', + 'default': false + }, + 'contains': { '$ref': '#' }, + 'maxProperties': { '$ref': '#/definitions/nonNegativeInteger' }, + 'minProperties': { '$ref': '#/definitions/nonNegativeIntegerDefault0' }, + 'required': { '$ref': '#/definitions/stringArray' }, + 'additionalProperties': { '$ref': '#' }, + 'definitions': { + 'type': 'object', + 'additionalProperties': { '$ref': '#' }, + 'default': {} + }, + 'properties': { + 'type': 'object', + 'additionalProperties': { '$ref': '#' }, + 'default': {} + }, + 'patternProperties': { + 'type': 'object', + 'additionalProperties': { '$ref': '#' }, + 'propertyNames': { 'format': 'regex' }, + 'default': {} + }, + 'dependencies': { + 'type': 'object', + 'additionalProperties': { + 'anyOf': [ + { '$ref': '#' }, + { '$ref': '#/definitions/stringArray' } + ] + } + }, + 'propertyNames': { '$ref': '#' }, + 'const': true, + 'enum': { + 'type': 'array', + 'items': true, + 'minItems': 1, + 'uniqueItems': true + }, + 'type': { + 'anyOf': [ + { '$ref': '#/definitions/simpleTypes' }, + { + 'type': 'array', + 'items': { '$ref': '#/definitions/simpleTypes' }, + 'minItems': 1, + 'uniqueItems': true + } + ] + }, + 'format': { 'type': 'string' }, + 'contentMediaType': { 'type': 'string' }, + 'contentEncoding': { 'type': 'string' }, + 'if': { '$ref': '#' }, + 'then': { '$ref': '#' }, + 'else': { '$ref': '#' }, + 'allOf': { '$ref': '#/definitions/schemaArray' }, + 'anyOf': { '$ref': '#/definitions/schemaArray' }, + 'oneOf': { '$ref': '#/definitions/schemaArray' }, + 'not': { '$ref': '#' } + }, + 'default': true + } + } +}; +const descriptions = { + id: t$2("A unique identifier for the schema."), + $schema: t$2("The schema to verify this document against."), + title: t$2("A descriptive title of the element."), + description: t$2("A long description of the element. Used in hover menus and suggestions."), + default: t$2("A default value. Used by suggestions."), + multipleOf: t$2("A number that should cleanly divide the current value (i.e. have no remainder)."), + maximum: t$2("The maximum numerical value, inclusive by default."), + exclusiveMaximum: t$2("Makes the maximum property exclusive."), + minimum: t$2("The minimum numerical value, inclusive by default."), + exclusiveMinimum: t$2("Makes the minimum property exclusive."), + maxLength: t$2("The maximum length of a string."), + minLength: t$2("The minimum length of a string."), + pattern: t$2("A regular expression to match the string against. It is not implicitly anchored."), + additionalItems: t$2("For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail."), + items: t$2("For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on."), + maxItems: t$2("The maximum number of items that can be inside an array. Inclusive."), + minItems: t$2("The minimum number of items that can be inside an array. Inclusive."), + uniqueItems: t$2("If all of the items in the array must be unique. Defaults to false."), + maxProperties: t$2("The maximum number of properties an object can have. Inclusive."), + minProperties: t$2("The minimum number of properties an object can have. Inclusive."), + required: t$2("An array of strings that lists the names of all properties required on this object."), + additionalProperties: t$2("Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail."), + definitions: t$2("Not used for validation. Place subschemas here that you wish to reference inline with $ref."), + properties: t$2("A map of property names to schemas for each property."), + patternProperties: t$2("A map of regular expressions on property names to schemas for matching properties."), + dependencies: t$2("A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object."), + enum: t$2("The set of literal values that are valid."), + type: t$2("Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types."), + format: t$2("Describes the format expected for the value."), + allOf: t$2("An array of schemas, all of which must match."), + anyOf: t$2("An array of schemas, where at least one must match."), + oneOf: t$2("An array of schemas, exactly one of which must match."), + not: t$2("A schema which must not match."), + $id: t$2("A unique identifier for the schema."), + $ref: t$2("Reference a definition hosted on any location."), + $comment: t$2("Comments from schema authors to readers or maintainers of the schema."), + readOnly: t$2("Indicates that the value of the instance is managed exclusively by the owning authority."), + examples: t$2("Sample JSON values associated with a particular schema, for the purpose of illustrating usage."), + contains: t$2("An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema."), + propertyNames: t$2("If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema."), + const: t$2("An instance validates successfully against this keyword if its value is equal to the value of the keyword."), + contentMediaType: t$2("Describes the media type of a string property."), + contentEncoding: t$2("Describes the content encoding of a string property."), + if: t$2("The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated."), + then: t$2("The \"if\" subschema is used for validation when the \"if\" subschema succeeds."), + else: t$2("The \"else\" subschema is used for validation when the \"if\" subschema fails.") +}; +for (const schemaName in schemaContributions.schemas) { + const schema = schemaContributions.schemas[schemaName]; + for (const property in schema.properties) { + let propertyObject = schema.properties[property]; + if (typeof propertyObject === 'boolean') { + propertyObject = schema.properties[property] = {}; + } + const description = descriptions[property]; + if (description) { + propertyObject['description'] = description; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Copyright (c) 2013, Nick Fitzgerald + * Licensed under the MIT License. See LICENCE.md in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function createRegex(glob, opts) { + if (typeof glob !== 'string') { + throw new TypeError('Expected a string'); + } + const str = String(glob); + // The regexp we are building, as a string. + let reStr = ""; + // Whether we are matching so called "extended" globs (like bash) and should + // support single character matching, matching ranges of characters, group + // matching, etc. + const extended = opts ? !!opts.extended : false; + // When globstar is _false_ (default), '/foo/*' is translated a regexp like + // '^\/foo\/.*$' which will match any string beginning with '/foo/' + // When globstar is _true_, '/foo/*' is translated to regexp like + // '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' BUT + // which does not have a '/' to the right of it. + // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but + // these will not '/foo/bar/baz', '/foo/bar/baz.txt' + // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when + // globstar is _false_ + const globstar = opts ? !!opts.globstar : false; + // If we are doing extended matching, this boolean is true when we are inside + // a group (eg {*.html,*.js}), and false otherwise. + let inGroup = false; + // RegExp flags (eg "i" ) to pass in to RegExp constructor. + const flags = opts && typeof (opts.flags) === "string" ? opts.flags : ""; + let c; + for (let i = 0, len = str.length; i < len; i++) { + c = str[i]; + switch (c) { + case "/": + case "$": + case "^": + case "+": + case ".": + case "(": + case ")": + case "=": + case "!": + case "|": + reStr += "\\" + c; + break; + case "?": + if (extended) { + reStr += "."; + break; + } + case "[": + case "]": + if (extended) { + reStr += c; + break; + } + case "{": + if (extended) { + inGroup = true; + reStr += "("; + break; + } + case "}": + if (extended) { + inGroup = false; + reStr += ")"; + break; + } + case ",": + if (inGroup) { + reStr += "|"; + break; + } + reStr += "\\" + c; + break; + case "*": + // Move over all consecutive "*"'s. + // Also store the previous and next characters + const prevChar = str[i - 1]; + let starCount = 1; + while (str[i + 1] === "*") { + starCount++; + i++; + } + const nextChar = str[i + 1]; + if (!globstar) { + // globstar is disabled, so treat any number of "*" as one + reStr += ".*"; + } + else { + // globstar is enabled, so determine if this is a globstar segment + const isGlobstar = starCount > 1 // multiple "*"'s + && (prevChar === "/" || prevChar === undefined || prevChar === '{' || prevChar === ',') // from the start of the segment + && (nextChar === "/" || nextChar === undefined || nextChar === ',' || nextChar === '}'); // to the end of the segment + if (isGlobstar) { + if (nextChar === "/") { + i++; // move over the "/" + } + else if (prevChar === '/' && reStr.endsWith('\\/')) { + reStr = reStr.substr(0, reStr.length - 2); + } + // it's a globstar, so match zero or more path segments + reStr += "((?:[^/]*(?:\/|$))*)"; + } + else { + // it's not a globstar, so only match one path segment + reStr += "([^/]*)"; + } + } + break; + default: + reStr += c; + } + } + // When regexp 'g' flag is specified don't + // constrain the regular expression with ^ & $ + if (!flags || !~flags.indexOf('g')) { + reStr = "^" + reStr + "$"; + } + return new RegExp(reStr, flags); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const BANG = '!'; +const PATH_SEP = '/'; +class FilePatternAssociation { + constructor(pattern, folderUri, uris) { + this.folderUri = folderUri; + this.uris = uris; + this.globWrappers = []; + try { + for (let patternString of pattern) { + const include = patternString[0] !== BANG; + if (!include) { + patternString = patternString.substring(1); + } + if (patternString.length > 0) { + if (patternString[0] === PATH_SEP) { + patternString = patternString.substring(1); + } + this.globWrappers.push({ + regexp: createRegex('**/' + patternString, { extended: true, globstar: true }), + include: include, + }); + } + } + ; + if (folderUri) { + folderUri = normalizeResourceForMatching(folderUri); + if (!folderUri.endsWith('/')) { + folderUri = folderUri + '/'; + } + this.folderUri = folderUri; + } + } + catch (e) { + this.globWrappers.length = 0; + this.uris = []; + } + } + matchesPattern(fileName) { + if (this.folderUri && !fileName.startsWith(this.folderUri)) { + return false; + } + let match = false; + for (const { regexp, include } of this.globWrappers) { + if (regexp.test(fileName)) { + match = include; + } + } + return match; + } + getURIs() { + return this.uris; + } +} +class SchemaHandle { + constructor(service, uri, unresolvedSchemaContent) { + this.service = service; + this.uri = uri; + this.dependencies = new Set(); + this.anchors = undefined; + if (unresolvedSchemaContent) { + this.unresolvedSchema = this.service.promise.resolve(new UnresolvedSchema(unresolvedSchemaContent)); + } + } + getUnresolvedSchema() { + if (!this.unresolvedSchema) { + this.unresolvedSchema = this.service.loadSchema(this.uri); + } + return this.unresolvedSchema; + } + getResolvedSchema() { + if (!this.resolvedSchema) { + this.resolvedSchema = this.getUnresolvedSchema().then(unresolved => { + return this.service.resolveSchemaContent(unresolved, this); + }); + } + return this.resolvedSchema; + } + clearSchema() { + const hasChanges = !!this.unresolvedSchema; + this.resolvedSchema = undefined; + this.unresolvedSchema = undefined; + this.dependencies.clear(); + this.anchors = undefined; + return hasChanges; + } +} +class UnresolvedSchema { + constructor(schema, errors = []) { + this.schema = schema; + this.errors = errors; + } +} +class ResolvedSchema { + constructor(schema, errors = [], warnings = [], schemaDraft) { + this.schema = schema; + this.errors = errors; + this.warnings = warnings; + this.schemaDraft = schemaDraft; + } + getSection(path) { + const schemaRef = this.getSectionRecursive(path, this.schema); + if (schemaRef) { + return asSchema(schemaRef); + } + return undefined; + } + getSectionRecursive(path, schema) { + if (!schema || typeof schema === 'boolean' || path.length === 0) { + return schema; + } + const next = path.shift(); + if (schema.properties && typeof schema.properties[next]) { + return this.getSectionRecursive(path, schema.properties[next]); + } + else if (schema.patternProperties) { + for (const pattern of Object.keys(schema.patternProperties)) { + const regex = extendedRegExp(pattern); + if (regex?.test(next)) { + return this.getSectionRecursive(path, schema.patternProperties[pattern]); + } + } + } + else if (typeof schema.additionalProperties === 'object') { + return this.getSectionRecursive(path, schema.additionalProperties); + } + else if (next.match('[0-9]+')) { + if (Array.isArray(schema.items)) { + const index = parseInt(next, 10); + if (!isNaN(index) && schema.items[index]) { + return this.getSectionRecursive(path, schema.items[index]); + } + } + else if (schema.items) { + return this.getSectionRecursive(path, schema.items); + } + } + return undefined; + } +} +class JSONSchemaService { + constructor(requestService, contextService, promiseConstructor) { + this.contextService = contextService; + this.requestService = requestService; + this.promiseConstructor = promiseConstructor || Promise; + this.callOnDispose = []; + this.contributionSchemas = {}; + this.contributionAssociations = []; + this.schemasById = {}; + this.filePatternAssociations = []; + this.registeredSchemasIds = {}; + } + getRegisteredSchemaIds(filter) { + return Object.keys(this.registeredSchemasIds).filter(id => { + const scheme = URI$1.parse(id).scheme; + return scheme !== 'schemaservice' && (!filter || filter(scheme)); + }); + } + get promise() { + return this.promiseConstructor; + } + dispose() { + while (this.callOnDispose.length > 0) { + this.callOnDispose.pop()(); + } + } + onResourceChange(uri) { + // always clear this local cache when a resource changes + this.cachedSchemaForResource = undefined; + let hasChanges = false; + uri = normalizeId(uri); + const toWalk = [uri]; + const all = Object.keys(this.schemasById).map(key => this.schemasById[key]); + while (toWalk.length) { + const curr = toWalk.pop(); + for (let i = 0; i < all.length; i++) { + const handle = all[i]; + if (handle && (handle.uri === curr || handle.dependencies.has(curr))) { + if (handle.uri !== curr) { + toWalk.push(handle.uri); + } + if (handle.clearSchema()) { + hasChanges = true; + } + all[i] = undefined; + } + } + } + return hasChanges; + } + setSchemaContributions(schemaContributions) { + if (schemaContributions.schemas) { + const schemas = schemaContributions.schemas; + for (const id in schemas) { + const normalizedId = normalizeId(id); + this.contributionSchemas[normalizedId] = this.addSchemaHandle(normalizedId, schemas[id]); + } + } + if (Array.isArray(schemaContributions.schemaAssociations)) { + const schemaAssociations = schemaContributions.schemaAssociations; + for (let schemaAssociation of schemaAssociations) { + const uris = schemaAssociation.uris.map(normalizeId); + const association = this.addFilePatternAssociation(schemaAssociation.pattern, schemaAssociation.folderUri, uris); + this.contributionAssociations.push(association); + } + } + } + addSchemaHandle(id, unresolvedSchemaContent) { + const schemaHandle = new SchemaHandle(this, id, unresolvedSchemaContent); + this.schemasById[id] = schemaHandle; + return schemaHandle; + } + getOrAddSchemaHandle(id, unresolvedSchemaContent) { + return this.schemasById[id] || this.addSchemaHandle(id, unresolvedSchemaContent); + } + addFilePatternAssociation(pattern, folderUri, uris) { + const fpa = new FilePatternAssociation(pattern, folderUri, uris); + this.filePatternAssociations.push(fpa); + return fpa; + } + registerExternalSchema(config) { + const id = normalizeId(config.uri); + this.registeredSchemasIds[id] = true; + this.cachedSchemaForResource = undefined; + if (config.fileMatch && config.fileMatch.length) { + this.addFilePatternAssociation(config.fileMatch, config.folderUri, [id]); + } + return config.schema ? this.addSchemaHandle(id, config.schema) : this.getOrAddSchemaHandle(id); + } + clearExternalSchemas() { + this.schemasById = {}; + this.filePatternAssociations = []; + this.registeredSchemasIds = {}; + this.cachedSchemaForResource = undefined; + for (const id in this.contributionSchemas) { + this.schemasById[id] = this.contributionSchemas[id]; + this.registeredSchemasIds[id] = true; + } + for (const contributionAssociation of this.contributionAssociations) { + this.filePatternAssociations.push(contributionAssociation); + } + } + getResolvedSchema(schemaId) { + const id = normalizeId(schemaId); + const schemaHandle = this.schemasById[id]; + if (schemaHandle) { + return schemaHandle.getResolvedSchema(); + } + return this.promise.resolve(undefined); + } + loadSchema(url) { + if (!this.requestService) { + const errorMessage = t$2('Unable to load schema from \'{0}\'. No schema request service available', toDisplayString(url)); + return this.promise.resolve(new UnresolvedSchema({}, [errorMessage])); + } + if (url.startsWith('http://json-schema.org/')) { + url = 'https' + url.substring(4); // always access json-schema.org with https. See https://github.com/microsoft/vscode/issues/195189 + } + return this.requestService(url).then(content => { + if (!content) { + const errorMessage = t$2('Unable to load schema from \'{0}\': No content.', toDisplayString(url)); + return new UnresolvedSchema({}, [errorMessage]); + } + const errors = []; + if (content.charCodeAt(0) === 65279) { + errors.push(t$2('Problem reading content from \'{0}\': UTF-8 with BOM detected, only UTF 8 is allowed.', toDisplayString(url))); + content = content.trimStart(); + } + let schemaContent = {}; + const jsonErrors = []; + schemaContent = parse$8(content, jsonErrors); + if (jsonErrors.length) { + errors.push(t$2('Unable to parse content from \'{0}\': Parse error at offset {1}.', toDisplayString(url), jsonErrors[0].offset)); + } + return new UnresolvedSchema(schemaContent, errors); + }, (error) => { + let errorMessage = error.toString(); + const errorSplit = error.toString().split('Error: '); + if (errorSplit.length > 1) { + // more concise error message, URL and context are attached by caller anyways + errorMessage = errorSplit[1]; + } + if (endsWith$2(errorMessage, '.')) { + errorMessage = errorMessage.substr(0, errorMessage.length - 1); + } + return new UnresolvedSchema({}, [t$2('Unable to load schema from \'{0}\': {1}.', toDisplayString(url), errorMessage)]); + }); + } + resolveSchemaContent(schemaToResolve, handle) { + const resolveErrors = schemaToResolve.errors.slice(0); + const schema = schemaToResolve.schema; + let schemaDraft = schema.$schema ? normalizeId(schema.$schema) : undefined; + if (schemaDraft === 'http://json-schema.org/draft-03/schema') { + return this.promise.resolve(new ResolvedSchema({}, [t$2("Draft-03 schemas are not supported.")], [], schemaDraft)); + } + let usesUnsupportedFeatures = new Set(); + const contextService = this.contextService; + const findSectionByJSONPointer = (schema, path) => { + path = decodeURIComponent(path); + let current = schema; + if (path[0] === '/') { + path = path.substring(1); + } + path.split('/').some((part) => { + part = part.replace(/~1/g, '/').replace(/~0/g, '~'); + current = current[part]; + return !current; + }); + return current; + }; + const findSchemaById = (schema, handle, id) => { + if (!handle.anchors) { + handle.anchors = collectAnchors(schema); + } + return handle.anchors.get(id); + }; + const merge = (target, section) => { + for (const key in section) { + if (section.hasOwnProperty(key) && key !== 'id' && key !== '$id') { + target[key] = section[key]; + } + } + }; + const mergeRef = (target, sourceRoot, sourceHandle, refSegment) => { + let section; + if (refSegment === undefined || refSegment.length === 0) { + section = sourceRoot; + } + else if (refSegment.charAt(0) === '/') { + // A $ref to a JSON Pointer (i.e #/definitions/foo) + section = findSectionByJSONPointer(sourceRoot, refSegment); + } + else { + // A $ref to a sub-schema with an $id (i.e #hello) + section = findSchemaById(sourceRoot, sourceHandle, refSegment); + } + if (section) { + merge(target, section); + } + else { + resolveErrors.push(t$2('$ref \'{0}\' in \'{1}\' can not be resolved.', refSegment || '', sourceHandle.uri)); + } + }; + const resolveExternalLink = (node, uri, refSegment, parentHandle) => { + if (contextService && !/^[A-Za-z][A-Za-z0-9+\-.+]*:\/\/.*/.test(uri)) { + uri = contextService.resolveRelativePath(uri, parentHandle.uri); + } + uri = normalizeId(uri); + const referencedHandle = this.getOrAddSchemaHandle(uri); + return referencedHandle.getUnresolvedSchema().then(unresolvedSchema => { + parentHandle.dependencies.add(uri); + if (unresolvedSchema.errors.length) { + const loc = refSegment ? uri + '#' + refSegment : uri; + resolveErrors.push(t$2('Problems loading reference \'{0}\': {1}', loc, unresolvedSchema.errors[0])); + } + mergeRef(node, unresolvedSchema.schema, referencedHandle, refSegment); + return resolveRefs(node, unresolvedSchema.schema, referencedHandle); + }); + }; + const resolveRefs = (node, parentSchema, parentHandle) => { + const openPromises = []; + this.traverseNodes(node, next => { + const seenRefs = new Set(); + while (next.$ref) { + const ref = next.$ref; + const segments = ref.split('#', 2); + delete next.$ref; + if (segments[0].length > 0) { + // This is a reference to an external schema + openPromises.push(resolveExternalLink(next, segments[0], segments[1], parentHandle)); + return; + } + else { + // This is a reference inside the current schema + if (!seenRefs.has(ref)) { + const id = segments[1]; + mergeRef(next, parentSchema, parentHandle, id); + seenRefs.add(ref); + } + } + } + if (next.$recursiveRef) { + usesUnsupportedFeatures.add('$recursiveRef'); + } + if (next.$dynamicRef) { + usesUnsupportedFeatures.add('$dynamicRef'); + } + }); + return this.promise.all(openPromises); + }; + const collectAnchors = (root) => { + const result = new Map(); + this.traverseNodes(root, next => { + const id = next.$id || next.id; + const anchor = isString(id) && id.charAt(0) === '#' ? id.substring(1) : next.$anchor; + if (anchor) { + if (result.has(anchor)) { + resolveErrors.push(t$2('Duplicate anchor declaration: \'{0}\'', anchor)); + } + else { + result.set(anchor, next); + } + } + if (next.$recursiveAnchor) { + usesUnsupportedFeatures.add('$recursiveAnchor'); + } + if (next.$dynamicAnchor) { + usesUnsupportedFeatures.add('$dynamicAnchor'); + } + }); + return result; + }; + return resolveRefs(schema, schema, handle).then(_ => { + let resolveWarnings = []; + if (usesUnsupportedFeatures.size) { + resolveWarnings.push(t$2('The schema uses meta-schema features ({0}) that are not yet supported by the validator.', Array.from(usesUnsupportedFeatures.keys()).join(', '))); + } + return new ResolvedSchema(schema, resolveErrors, resolveWarnings, schemaDraft); + }); + } + traverseNodes(root, handle) { + if (!root || typeof root !== 'object') { + return Promise.resolve(null); + } + const seen = new Set(); + const collectEntries = (...entries) => { + for (const entry of entries) { + if (isObject(entry)) { + toWalk.push(entry); + } + } + }; + const collectMapEntries = (...maps) => { + for (const map of maps) { + if (isObject(map)) { + for (const k in map) { + const key = k; + const entry = map[key]; + if (isObject(entry)) { + toWalk.push(entry); + } + } + } + } + }; + const collectArrayEntries = (...arrays) => { + for (const array of arrays) { + if (Array.isArray(array)) { + for (const entry of array) { + if (isObject(entry)) { + toWalk.push(entry); + } + } + } + } + }; + const collectEntryOrArrayEntries = (items) => { + if (Array.isArray(items)) { + for (const entry of items) { + if (isObject(entry)) { + toWalk.push(entry); + } + } + } + else if (isObject(items)) { + toWalk.push(items); + } + }; + const toWalk = [root]; + let next = toWalk.pop(); + while (next) { + if (!seen.has(next)) { + seen.add(next); + handle(next); + collectEntries(next.additionalItems, next.additionalProperties, next.not, next.contains, next.propertyNames, next.if, next.then, next.else, next.unevaluatedItems, next.unevaluatedProperties); + collectMapEntries(next.definitions, next.$defs, next.properties, next.patternProperties, next.dependencies, next.dependentSchemas); + collectArrayEntries(next.anyOf, next.allOf, next.oneOf, next.prefixItems); + collectEntryOrArrayEntries(next.items); + } + next = toWalk.pop(); + } + } + ; + getSchemaFromProperty(resource, document) { + if (document.root?.type === 'object') { + for (const p of document.root.properties) { + if (p.keyNode.value === '$schema' && p.valueNode?.type === 'string') { + let schemaId = p.valueNode.value; + if (this.contextService && !/^\w[\w\d+.-]*:/.test(schemaId)) { // has scheme + schemaId = this.contextService.resolveRelativePath(schemaId, resource); + } + return schemaId; + } + } + } + return undefined; + } + getAssociatedSchemas(resource) { + const seen = Object.create(null); + const schemas = []; + const normalizedResource = normalizeResourceForMatching(resource); + for (const entry of this.filePatternAssociations) { + if (entry.matchesPattern(normalizedResource)) { + for (const schemaId of entry.getURIs()) { + if (!seen[schemaId]) { + schemas.push(schemaId); + seen[schemaId] = true; + } + } + } + } + return schemas; + } + getSchemaURIsForResource(resource, document) { + let schemeId = document && this.getSchemaFromProperty(resource, document); + if (schemeId) { + return [schemeId]; + } + return this.getAssociatedSchemas(resource); + } + getSchemaForResource(resource, document) { + if (document) { + // first use $schema if present + let schemeId = this.getSchemaFromProperty(resource, document); + if (schemeId) { + const id = normalizeId(schemeId); + return this.getOrAddSchemaHandle(id).getResolvedSchema(); + } + } + if (this.cachedSchemaForResource && this.cachedSchemaForResource.resource === resource) { + return this.cachedSchemaForResource.resolvedSchema; + } + const schemas = this.getAssociatedSchemas(resource); + const resolvedSchema = schemas.length > 0 ? this.createCombinedSchema(resource, schemas).getResolvedSchema() : this.promise.resolve(undefined); + this.cachedSchemaForResource = { resource, resolvedSchema }; + return resolvedSchema; + } + createCombinedSchema(resource, schemaIds) { + if (schemaIds.length === 1) { + return this.getOrAddSchemaHandle(schemaIds[0]); + } + else { + const combinedSchemaId = 'schemaservice://combinedSchema/' + encodeURIComponent(resource); + const combinedSchema = { + allOf: schemaIds.map(schemaId => ({ $ref: schemaId })) + }; + return this.addSchemaHandle(combinedSchemaId, combinedSchema); + } + } + getMatchingSchemas(document, jsonDocument, schema) { + if (schema) { + const id = schema.id || ('schemaservice://untitled/matchingSchemas/' + idCounter++); + const handle = this.addSchemaHandle(id, schema); + return handle.getResolvedSchema().then(resolvedSchema => { + return jsonDocument.getMatchingSchemas(resolvedSchema.schema).filter(s => !s.inverted); + }); + } + return this.getSchemaForResource(document.uri, jsonDocument).then(schema => { + if (schema) { + return jsonDocument.getMatchingSchemas(schema.schema).filter(s => !s.inverted); + } + return []; + }); + } +} +let idCounter = 0; +function normalizeId(id) { + // remove trailing '#', normalize drive capitalization + try { + return URI$1.parse(id).toString(true); + } + catch (e) { + return id; + } +} +function normalizeResourceForMatching(resource) { + // remove queries and fragments, normalize drive capitalization + try { + return URI$1.parse(resource).with({ fragment: null, query: null }).toString(true); + } + catch (e) { + return resource; + } +} +function toDisplayString(url) { + try { + const uri = URI$1.parse(url); + if (uri.scheme === 'file') { + return uri.fsPath; + } + } + catch (e) { + // ignore + } + return url; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getFoldingRanges$1(document, context) { + const ranges = []; + const nestingLevels = []; + const stack = []; + let prevStart = -1; + const scanner = createScanner$1(document.getText(), false); + let token = scanner.scan(); + function addRange(range) { + ranges.push(range); + nestingLevels.push(stack.length); + } + while (token !== 17 /* SyntaxKind.EOF */) { + switch (token) { + case 1 /* SyntaxKind.OpenBraceToken */: + case 3 /* SyntaxKind.OpenBracketToken */: { + const startLine = document.positionAt(scanner.getTokenOffset()).line; + const range = { startLine, endLine: startLine, kind: token === 1 /* SyntaxKind.OpenBraceToken */ ? 'object' : 'array' }; + stack.push(range); + break; + } + case 2 /* SyntaxKind.CloseBraceToken */: + case 4 /* SyntaxKind.CloseBracketToken */: { + const kind = token === 2 /* SyntaxKind.CloseBraceToken */ ? 'object' : 'array'; + if (stack.length > 0 && stack[stack.length - 1].kind === kind) { + const range = stack.pop(); + const line = document.positionAt(scanner.getTokenOffset()).line; + if (range && line > range.startLine + 1 && prevStart !== range.startLine) { + range.endLine = line - 1; + addRange(range); + prevStart = range.startLine; + } + } + break; + } + case 13 /* SyntaxKind.BlockCommentTrivia */: { + const startLine = document.positionAt(scanner.getTokenOffset()).line; + const endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line; + if (scanner.getTokenError() === 1 /* ScanError.UnexpectedEndOfComment */ && startLine + 1 < document.lineCount) { + scanner.setPosition(document.offsetAt(Position.create(startLine + 1, 0))); + } + else { + if (startLine < endLine) { + addRange({ startLine, endLine, kind: FoldingRangeKind.Comment }); + prevStart = startLine; + } + } + break; + } + case 12 /* SyntaxKind.LineCommentTrivia */: { + const text = document.getText().substr(scanner.getTokenOffset(), scanner.getTokenLength()); + const m = text.match(/^\/\/\s*#(region\b)|(endregion\b)/); + if (m) { + const line = document.positionAt(scanner.getTokenOffset()).line; + if (m[1]) { // start pattern match + const range = { startLine: line, endLine: line, kind: FoldingRangeKind.Region }; + stack.push(range); + } + else { + let i = stack.length - 1; + while (i >= 0 && stack[i].kind !== FoldingRangeKind.Region) { + i--; + } + if (i >= 0) { + const range = stack[i]; + stack.length = i; + if (line > range.startLine && prevStart !== range.startLine) { + range.endLine = line; + addRange(range); + prevStart = range.startLine; + } + } + } + } + break; + } + } + token = scanner.scan(); + } + const rangeLimit = context && context.rangeLimit; + if (typeof rangeLimit !== 'number' || ranges.length <= rangeLimit) { + return ranges; + } + if (context && context.onRangeLimitExceeded) { + context.onRangeLimitExceeded(document.uri); + } + const counts = []; + for (let level of nestingLevels) { + if (level < 30) { + counts[level] = (counts[level] || 0) + 1; + } + } + let entries = 0; + let maxLevel = 0; + for (let i = 0; i < counts.length; i++) { + const n = counts[i]; + if (n) { + if (n + entries > rangeLimit) { + maxLevel = i; + break; + } + entries += n; + } + } + const result = []; + for (let i = 0; i < ranges.length; i++) { + const level = nestingLevels[i]; + if (typeof level === 'number') { + if (level < maxLevel || (level === maxLevel && entries++ < rangeLimit)) { + result.push(ranges[i]); + } + } + } + return result; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getSelectionRanges$1(document, positions, doc) { + function getSelectionRange(position) { + let offset = document.offsetAt(position); + let node = doc.getNodeFromOffset(offset, true); + const result = []; + while (node) { + switch (node.type) { + case 'string': + case 'object': + case 'array': + // range without ", [ or { + const cStart = node.offset + 1, cEnd = node.offset + node.length - 1; + if (cStart < cEnd && offset >= cStart && offset <= cEnd) { + result.push(newRange(cStart, cEnd)); + } + result.push(newRange(node.offset, node.offset + node.length)); + break; + case 'number': + case 'boolean': + case 'null': + case 'property': + result.push(newRange(node.offset, node.offset + node.length)); + break; + } + if (node.type === 'property' || node.parent && node.parent.type === 'array') { + const afterCommaOffset = getOffsetAfterNextToken(node.offset + node.length, 5 /* SyntaxKind.CommaToken */); + if (afterCommaOffset !== -1) { + result.push(newRange(node.offset, afterCommaOffset)); + } + } + node = node.parent; + } + let current = undefined; + for (let index = result.length - 1; index >= 0; index--) { + current = SelectionRange.create(result[index], current); + } + if (!current) { + current = SelectionRange.create(Range$a.create(position, position)); + } + return current; + } + function newRange(start, end) { + return Range$a.create(document.positionAt(start), document.positionAt(end)); + } + const scanner = createScanner$1(document.getText(), true); + function getOffsetAfterNextToken(offset, expectedToken) { + scanner.setPosition(offset); + let token = scanner.scan(); + if (token === expectedToken) { + return scanner.getTokenOffset() + scanner.getTokenLength(); + } + return -1; + } + return positions.map(getSelectionRange); +} + +function format$2(documentToFormat, formattingOptions, formattingRange) { + let range = undefined; + if (formattingRange) { + const offset = documentToFormat.offsetAt(formattingRange.start); + const length = documentToFormat.offsetAt(formattingRange.end) - offset; + range = { offset, length }; + } + const options = { + tabSize: formattingOptions ? formattingOptions.tabSize : 4, + insertSpaces: formattingOptions?.insertSpaces === true, + insertFinalNewline: formattingOptions?.insertFinalNewline === true, + eol: '\n', + keepLines: formattingOptions?.keepLines === true + }; + return format$4(documentToFormat.getText(), range, options).map(edit => { + return TextEdit.replace(Range$a.create(documentToFormat.positionAt(edit.offset), documentToFormat.positionAt(edit.offset + edit.length)), edit.content); + }); +} + +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.txt in the project root for license information. +*--------------------------------------------------------------------------------------------*/ +var Container$1; +(function (Container) { + Container[Container["Object"] = 0] = "Object"; + Container[Container["Array"] = 1] = "Array"; +})(Container$1 || (Container$1 = {})); +class PropertyTree { + constructor(propertyName, beginningLineNumber) { + this.propertyName = propertyName ?? ''; + this.beginningLineNumber = beginningLineNumber; + this.childrenProperties = []; + this.lastProperty = false; + this.noKeyName = false; + } + addChildProperty(childProperty) { + childProperty.parent = this; + if (this.childrenProperties.length > 0) { + let insertionIndex = 0; + if (childProperty.noKeyName) { + insertionIndex = this.childrenProperties.length; + } + else { + insertionIndex = binarySearchOnPropertyArray(this.childrenProperties, childProperty, compareProperties); + } + if (insertionIndex < 0) { + insertionIndex = (insertionIndex * -1) - 1; + } + this.childrenProperties.splice(insertionIndex, 0, childProperty); + } + else { + this.childrenProperties.push(childProperty); + } + return childProperty; + } +} +function compareProperties(propertyTree1, propertyTree2) { + const propertyName1 = propertyTree1.propertyName.toLowerCase(); + const propertyName2 = propertyTree2.propertyName.toLowerCase(); + if (propertyName1 < propertyName2) { + return -1; + } + else if (propertyName1 > propertyName2) { + return 1; + } + return 0; +} +function binarySearchOnPropertyArray(propertyTreeArray, propertyTree, compare_fn) { + const propertyName = propertyTree.propertyName.toLowerCase(); + const firstPropertyInArrayName = propertyTreeArray[0].propertyName.toLowerCase(); + const lastPropertyInArrayName = propertyTreeArray[propertyTreeArray.length - 1].propertyName.toLowerCase(); + if (propertyName < firstPropertyInArrayName) { + return 0; + } + if (propertyName > lastPropertyInArrayName) { + return propertyTreeArray.length; + } + let m = 0; + let n = propertyTreeArray.length - 1; + while (m <= n) { + let k = (n + m) >> 1; + let cmp = compare_fn(propertyTree, propertyTreeArray[k]); + if (cmp > 0) { + m = k + 1; + } + else if (cmp < 0) { + n = k - 1; + } + else { + return k; + } + } + return -m - 1; +} + +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.txt in the project root for license information. +*--------------------------------------------------------------------------------------------*/ +function sort$2(documentToSort, formattingOptions) { + const options = { + ...formattingOptions, + keepLines: false, // keepLines must be false so that the properties are on separate lines for the sorting + }; + const formattedJsonString = TextDocument$1.applyEdits(documentToSort, format$2(documentToSort, options, undefined)); + const formattedJsonDocument = TextDocument$1.create('test://test.json', 'json', 0, formattedJsonString); + const jsonPropertyTree = findJsoncPropertyTree(formattedJsonDocument); + const sortedJsonDocument = sortJsoncDocument(formattedJsonDocument, jsonPropertyTree); + const edits = format$2(sortedJsonDocument, options, undefined); + const sortedAndFormattedJsonDocument = TextDocument$1.applyEdits(sortedJsonDocument, edits); + return [TextEdit.replace(Range$a.create(Position.create(0, 0), documentToSort.positionAt(documentToSort.getText().length)), sortedAndFormattedJsonDocument)]; +} +function findJsoncPropertyTree(formattedDocument) { + const formattedString = formattedDocument.getText(); + const scanner = createScanner$1(formattedString, false); + // The tree that will be returned + let rootTree = new PropertyTree(); + // The tree where the current properties can be added as children + let currentTree = rootTree; + // The tree representing the current property analyzed + let currentProperty = rootTree; + // The tree representing the previous property analyzed + let lastProperty = rootTree; + // The current scanned token + let token = undefined; + // Line number of the last token found + let lastTokenLine = 0; + // Total number of characters on the lines prior to current line + let numberOfCharactersOnPreviousLines = 0; + // The last token scanned that is not trivial, nor a comment + let lastNonTriviaNonCommentToken = undefined; + // The second to last token scanned that is not trivial, nor a comment + let secondToLastNonTriviaNonCommentToken = undefined; + // Line number of last token that is not trivial, nor a comment + let lineOfLastNonTriviaNonCommentToken = -1; + // End index on its line of last token that is not trivial, nor a comment + let endIndexOfLastNonTriviaNonCommentToken = -1; + // Line number of the start of the range of current/next property + let beginningLineNumber = 0; + // Line number of the end of the range of current/next property + let endLineNumber = 0; + // Stack indicating whether we are inside of an object or an array + let currentContainerStack = []; + // Boolean indicating that the current property end line number needs to be updated. Used only when block comments are encountered. + let updateLastPropertyEndLineNumber = false; + // Boolean indicating that the beginning line number should be updated. Used only when block comments are encountered. + let updateBeginningLineNumber = false; + while ((token = scanner.scan()) !== 17 /* SyntaxKind.EOF */) { + // In the case when a block comment has been encountered that starts on the same line as the comma ending a property, update the end line of that + // property so that it covers the block comment. For example, if we have: + // 1. "key" : {}, /* some block + // 2. comment */ + // Then, the end line of the property "key" should be line 2 not line 1 + if (updateLastPropertyEndLineNumber === true + && token !== 14 /* SyntaxKind.LineBreakTrivia */ + && token !== 15 /* SyntaxKind.Trivia */ + && token !== 12 /* SyntaxKind.LineCommentTrivia */ + && token !== 13 /* SyntaxKind.BlockCommentTrivia */ + && currentProperty.endLineNumber === undefined) { + let endLineNumber = scanner.getTokenStartLine(); + // Update the end line number in the case when the last property visited is a container (object or array) + if (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ + || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) { + lastProperty.endLineNumber = endLineNumber - 1; + } + // Update the end line number in the case when the last property visited is a simple property + else { + currentProperty.endLineNumber = endLineNumber - 1; + } + beginningLineNumber = endLineNumber; + updateLastPropertyEndLineNumber = false; + } + // When a block comment follows an open brace or an open bracket, that block comment should be associated to that brace or bracket, not the property below it. For example, for: + // 1. { /* + // 2. ... */ + // 3. "key" : {} + // 4. } + // Instead of associating the block comment to the property on line 3, it is associate to the property on line 1 + if (updateBeginningLineNumber === true + && token !== 14 /* SyntaxKind.LineBreakTrivia */ + && token !== 15 /* SyntaxKind.Trivia */ + && token !== 12 /* SyntaxKind.LineCommentTrivia */ + && token !== 13 /* SyntaxKind.BlockCommentTrivia */) { + beginningLineNumber = scanner.getTokenStartLine(); + updateBeginningLineNumber = false; + } + // Update the number of characters on all the previous lines each time the new token is on a different line to the previous token + if (scanner.getTokenStartLine() !== lastTokenLine) { + for (let i = lastTokenLine; i < scanner.getTokenStartLine(); i++) { + const lengthOfLine = formattedDocument.getText(Range$a.create(Position.create(i, 0), Position.create(i + 1, 0))).length; + numberOfCharactersOnPreviousLines = numberOfCharactersOnPreviousLines + lengthOfLine; + } + lastTokenLine = scanner.getTokenStartLine(); + } + switch (token) { + // When a string is found, if it follows an open brace or a comma token and it is within an object, then it corresponds to a key name, not a simple string + case 10 /* SyntaxKind.StringLiteral */: { + if ((lastNonTriviaNonCommentToken === undefined + || lastNonTriviaNonCommentToken === 1 /* SyntaxKind.OpenBraceToken */ + || (lastNonTriviaNonCommentToken === 5 /* SyntaxKind.CommaToken */ + && currentContainerStack[currentContainerStack.length - 1] === Container$1.Object))) { + // In that case create the child property which starts at beginningLineNumber, add it to the current tree + const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber); + lastProperty = currentProperty; + currentProperty = currentTree.addChildProperty(childProperty); + } + break; + } + // When the token is an open bracket, then we enter into an array + case 3 /* SyntaxKind.OpenBracketToken */: { + // If the root tree beginning line number is not defined, then this open bracket is the first open bracket in the document + if (rootTree.beginningLineNumber === undefined) { + rootTree.beginningLineNumber = scanner.getTokenStartLine(); + } + // Suppose we are inside of an object, then the current array is associated to a key, and has already been created + // We have the following configuration: {"a": "val", "array": [...], "b": "val"} + // In that case navigate down to the child property + if (currentContainerStack[currentContainerStack.length - 1] === Container$1.Object) { + currentTree = currentProperty; + } + // Suppose we are inside of an array, then since the current array is not associated to a key, it has not been created yet + // We have the following configuration: ["a", [...], "b"] + // In that case create the property and navigate down + else if (currentContainerStack[currentContainerStack.length - 1] === Container$1.Array) { + const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber); + childProperty.noKeyName = true; + lastProperty = currentProperty; + currentProperty = currentTree.addChildProperty(childProperty); + currentTree = currentProperty; + } + currentContainerStack.push(Container$1.Array); + currentProperty.type = Container$1.Array; + beginningLineNumber = scanner.getTokenStartLine(); + beginningLineNumber++; + break; + } + // When the token is an open brace, then we enter into an object + case 1 /* SyntaxKind.OpenBraceToken */: { + // If the root tree beginning line number is not defined, then this open brace is the first open brace in the document + if (rootTree.beginningLineNumber === undefined) { + rootTree.beginningLineNumber = scanner.getTokenStartLine(); + } + // 1. If we are inside of an objet, the current object is associated to a key and has already been created + // We have the following configuration: {"a": "val", "object": {...}, "b": "val"} + // 2. Otherwise the current object property is inside of an array, not associated to a key name and the property has not yet been created + // We have the following configuration: ["a", {...}, "b"] + else if (currentContainerStack[currentContainerStack.length - 1] === Container$1.Array) { + const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber); + childProperty.noKeyName = true; + lastProperty = currentProperty; + currentProperty = currentTree.addChildProperty(childProperty); + } + currentProperty.type = Container$1.Object; + currentContainerStack.push(Container$1.Object); + currentTree = currentProperty; + beginningLineNumber = scanner.getTokenStartLine(); + beginningLineNumber++; + break; + } + case 4 /* SyntaxKind.CloseBracketToken */: { + endLineNumber = scanner.getTokenStartLine(); + currentContainerStack.pop(); + // If the last non-trivial non-comment token is a closing brace or bracket, then the currentProperty end line number has not been set yet so set it + // The configuration considered is: [..., {}] or [..., []] + if (currentProperty.endLineNumber === undefined + && (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ + || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */)) { + currentProperty.endLineNumber = endLineNumber - 1; + currentProperty.lastProperty = true; + currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken; + currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken; + lastProperty = currentProperty; + currentProperty = currentProperty ? currentProperty.parent : undefined; + currentTree = currentProperty; + } + rootTree.endLineNumber = endLineNumber; + beginningLineNumber = endLineNumber + 1; + break; + } + case 2 /* SyntaxKind.CloseBraceToken */: { + endLineNumber = scanner.getTokenStartLine(); + currentContainerStack.pop(); + // If we are not inside of an empty object + if (lastNonTriviaNonCommentToken !== 1 /* SyntaxKind.OpenBraceToken */) { + // If current property end line number has not yet been defined, define it + if (currentProperty.endLineNumber === undefined) { + currentProperty.endLineNumber = endLineNumber - 1; + // The current property is also the last property + currentProperty.lastProperty = true; + // The last property of an object is associated with the line and index of where to add the comma, in case after sorting, it is no longer the last property + currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken; + currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken; + } + lastProperty = currentProperty; + currentProperty = currentProperty ? currentProperty.parent : undefined; + currentTree = currentProperty; + } + rootTree.endLineNumber = scanner.getTokenStartLine(); + beginningLineNumber = endLineNumber + 1; + break; + } + case 5 /* SyntaxKind.CommaToken */: { + endLineNumber = scanner.getTokenStartLine(); + // If the current container is an object or the current container is an array and the last non-trivia non-comment token is a closing brace or a closing bracket + // Then update the end line number of the current property + if (currentProperty.endLineNumber === undefined + && (currentContainerStack[currentContainerStack.length - 1] === Container$1.Object + || (currentContainerStack[currentContainerStack.length - 1] === Container$1.Array + && (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ + || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */)))) { + currentProperty.endLineNumber = endLineNumber; + // Store the line and the index of the comma in case it needs to be removed during the sorting + currentProperty.commaIndex = scanner.getTokenOffset() - numberOfCharactersOnPreviousLines; + currentProperty.commaLine = endLineNumber; + } + if (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ + || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) { + lastProperty = currentProperty; + currentProperty = currentProperty ? currentProperty.parent : undefined; + currentTree = currentProperty; + } + beginningLineNumber = endLineNumber + 1; + break; + } + case 13 /* SyntaxKind.BlockCommentTrivia */: { + // If the last non trivia non-comment token is a comma and the block comment starts on the same line as the comma, then update the end line number of the current property. For example if: + // 1. {}, /* ... + // 2. ..*/ + // The the property on line 1 shoud end on line 2, not line 1 + // In the case we are in an array we update the end line number only if the second to last non-trivia non-comment token is a closing brace or bracket + if (lastNonTriviaNonCommentToken === 5 /* SyntaxKind.CommaToken */ + && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine() + && (currentContainerStack[currentContainerStack.length - 1] === Container$1.Array + && (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ + || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) + || currentContainerStack[currentContainerStack.length - 1] === Container$1.Object)) { + if (currentContainerStack[currentContainerStack.length - 1] === Container$1.Array && (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) || currentContainerStack[currentContainerStack.length - 1] === Container$1.Object) { + currentProperty.endLineNumber = undefined; + updateLastPropertyEndLineNumber = true; + } + } + // When the block comment follows an open brace or an open token, we have the following scenario: + // { /** + // ../ + // } + // The block comment should be assigned to the open brace not the first property below it + if ((lastNonTriviaNonCommentToken === 1 /* SyntaxKind.OpenBraceToken */ + || lastNonTriviaNonCommentToken === 3 /* SyntaxKind.OpenBracketToken */) + && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine()) { + updateBeginningLineNumber = true; + } + break; + } + } + // Update the last and second to last non-trivia non-comment tokens + if (token !== 14 /* SyntaxKind.LineBreakTrivia */ + && token !== 13 /* SyntaxKind.BlockCommentTrivia */ + && token !== 12 /* SyntaxKind.LineCommentTrivia */ + && token !== 15 /* SyntaxKind.Trivia */) { + secondToLastNonTriviaNonCommentToken = lastNonTriviaNonCommentToken; + lastNonTriviaNonCommentToken = token; + lineOfLastNonTriviaNonCommentToken = scanner.getTokenStartLine(); + endIndexOfLastNonTriviaNonCommentToken = scanner.getTokenOffset() + scanner.getTokenLength() - numberOfCharactersOnPreviousLines; + } + } + return rootTree; +} +function sortJsoncDocument(jsonDocument, propertyTree) { + if (propertyTree.childrenProperties.length === 0) { + return jsonDocument; + } + const sortedJsonDocument = TextDocument$1.create('test://test.json', 'json', 0, jsonDocument.getText()); + const queueToSort = []; + updateSortingQueue(queueToSort, propertyTree, propertyTree.beginningLineNumber); + while (queueToSort.length > 0) { + const dataToSort = queueToSort.shift(); + const propertyTreeArray = dataToSort.propertyTreeArray; + let beginningLineNumber = dataToSort.beginningLineNumber; + for (let i = 0; i < propertyTreeArray.length; i++) { + const propertyTree = propertyTreeArray[i]; + const range = Range$a.create(Position.create(propertyTree.beginningLineNumber, 0), Position.create(propertyTree.endLineNumber + 1, 0)); + const jsonContentToReplace = jsonDocument.getText(range); + const jsonDocumentToReplace = TextDocument$1.create('test://test.json', 'json', 0, jsonContentToReplace); + if (propertyTree.lastProperty === true && i !== propertyTreeArray.length - 1) { + const lineWhereToAddComma = propertyTree.lineWhereToAddComma - propertyTree.beginningLineNumber; + const indexWhereToAddComma = propertyTree.indexWhereToAddComa; + const edit = { + range: Range$a.create(Position.create(lineWhereToAddComma, indexWhereToAddComma), Position.create(lineWhereToAddComma, indexWhereToAddComma)), + text: ',' + }; + TextDocument$1.update(jsonDocumentToReplace, [edit], 1); + } + else if (propertyTree.lastProperty === false && i === propertyTreeArray.length - 1) { + const commaIndex = propertyTree.commaIndex; + const commaLine = propertyTree.commaLine; + const lineWhereToRemoveComma = commaLine - propertyTree.beginningLineNumber; + const edit = { + range: Range$a.create(Position.create(lineWhereToRemoveComma, commaIndex), Position.create(lineWhereToRemoveComma, commaIndex + 1)), + text: '' + }; + TextDocument$1.update(jsonDocumentToReplace, [edit], 1); + } + const length = propertyTree.endLineNumber - propertyTree.beginningLineNumber + 1; + const edit = { + range: Range$a.create(Position.create(beginningLineNumber, 0), Position.create(beginningLineNumber + length, 0)), + text: jsonDocumentToReplace.getText() + }; + TextDocument$1.update(sortedJsonDocument, [edit], 1); + updateSortingQueue(queueToSort, propertyTree, beginningLineNumber); + beginningLineNumber = beginningLineNumber + length; + } + } + return sortedJsonDocument; +} +function sortPropertiesCaseSensitive(properties) { + properties.sort((a, b) => { + const aName = a.propertyName ?? ''; + const bName = b.propertyName ?? ''; + return aName < bName ? -1 : aName > bName ? 1 : 0; + }); +} +function updateSortingQueue(queue, propertyTree, beginningLineNumber) { + if (propertyTree.childrenProperties.length === 0) { + return; + } + if (propertyTree.type === Container$1.Object) { + let minimumBeginningLineNumber = Infinity; + for (const childProperty of propertyTree.childrenProperties) { + if (childProperty.beginningLineNumber < minimumBeginningLineNumber) { + minimumBeginningLineNumber = childProperty.beginningLineNumber; + } + } + const diff = minimumBeginningLineNumber - propertyTree.beginningLineNumber; + beginningLineNumber = beginningLineNumber + diff; + sortPropertiesCaseSensitive(propertyTree.childrenProperties); + queue.push(new SortingRange(beginningLineNumber, propertyTree.childrenProperties)); + } + else if (propertyTree.type === Container$1.Array) { + updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber); + } +} +function updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber) { + for (const subObject of propertyTree.childrenProperties) { + // If the child property of the array is an object, then you can sort the properties within this object + if (subObject.type === Container$1.Object) { + let minimumBeginningLineNumber = Infinity; + for (const childProperty of subObject.childrenProperties) { + if (childProperty.beginningLineNumber < minimumBeginningLineNumber) { + minimumBeginningLineNumber = childProperty.beginningLineNumber; + } + } + const diff = minimumBeginningLineNumber - subObject.beginningLineNumber; + queue.push(new SortingRange(beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber + diff, subObject.childrenProperties)); + } + // If the child property of the array is an array, then you need to recurse on the children properties, until you find an object to sort + if (subObject.type === Container$1.Array) { + updateSortingQueueForArrayProperties(queue, subObject, beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber); + } + } +} +class SortingRange { + constructor(beginningLineNumber, propertyTreeArray) { + this.beginningLineNumber = beginningLineNumber; + this.propertyTreeArray = propertyTreeArray; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function findLinks(document, doc) { + const links = []; + doc.visit(node => { + if (node.type === "property" && node.keyNode.value === "$ref" && node.valueNode?.type === 'string') { + const path = node.valueNode.value; + const targetNode = findTargetNode(doc, path); + if (targetNode) { + const targetPos = document.positionAt(targetNode.offset); + links.push({ + target: `${document.uri}#${targetPos.line + 1},${targetPos.character + 1}`, + range: createRange(document, node.valueNode) + }); + } + } + return true; + }); + return Promise.resolve(links); +} +function createRange(document, node) { + return Range$a.create(document.positionAt(node.offset + 1), document.positionAt(node.offset + node.length - 1)); +} +function findTargetNode(doc, path) { + const tokens = parseJSONPointer(path); + if (!tokens) { + return null; + } + return findNode(tokens, doc.root); +} +function findNode(pointer, node) { + if (!node) { + return null; + } + if (pointer.length === 0) { + return node; + } + const token = pointer.shift(); + if (node && node.type === 'object') { + const propertyNode = node.properties.find((propertyNode) => propertyNode.keyNode.value === token); + if (!propertyNode) { + return null; + } + return findNode(pointer, propertyNode.valueNode); + } + else if (node && node.type === 'array') { + if (token.match(/^(0|[1-9][0-9]*)$/)) { + const index = Number.parseInt(token); + const arrayItem = node.items[index]; + if (!arrayItem) { + return null; + } + return findNode(pointer, arrayItem); + } + } + return null; +} +function parseJSONPointer(path) { + if (path === "#") { + return []; + } + if (path[0] !== '#' || path[1] !== '/') { + return null; + } + return path.substring(2).split(/\//).map(unescape$2); +} +function unescape$2(str) { + return str.replace(/~1/g, '/').replace(/~0/g, '~'); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getLanguageService$1(params) { + const promise = params.promiseConstructor || Promise; + const jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise); + jsonSchemaService.setSchemaContributions(schemaContributions); + const jsonCompletion = new JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities); + const jsonHover = new JSONHover(jsonSchemaService, params.contributions, promise); + const jsonDocumentSymbols = new JSONDocumentSymbols(jsonSchemaService); + const jsonValidation = new JSONValidation(jsonSchemaService, promise); + return { + configure: (settings) => { + jsonSchemaService.clearExternalSchemas(); + settings.schemas?.forEach(jsonSchemaService.registerExternalSchema.bind(jsonSchemaService)); + jsonValidation.configure(settings); + }, + resetSchema: (uri) => jsonSchemaService.onResourceChange(uri), + doValidation: jsonValidation.doValidation.bind(jsonValidation), + getLanguageStatus: jsonValidation.getLanguageStatus.bind(jsonValidation), + parseJSONDocument: (document) => parse$7(document, { collectComments: true }), + newJSONDocument: (root, diagnostics) => newJSONDocument(root, diagnostics), + getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService), + doResolve: jsonCompletion.doResolve.bind(jsonCompletion), + doComplete: jsonCompletion.doComplete.bind(jsonCompletion), + findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols), + findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols), + findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols), + getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols), + doHover: jsonHover.doHover.bind(jsonHover), + getFoldingRanges: getFoldingRanges$1, + getSelectionRanges: getSelectionRanges$1, + findDefinition: () => Promise.resolve([]), + findLinks, + format: (document, range, options) => format$2(document, options, range), + sort: (document, options) => sort$2(document, options) + }; +} + +var jsonLanguageService = /*#__PURE__*/Object.freeze({ + __proto__: null, + get ClientCapabilities () { return ClientCapabilities$2; }, + get CodeAction () { return CodeAction; }, + get CodeActionContext () { return CodeActionContext; }, + get CodeActionKind () { return CodeActionKind; }, + get Color () { return Color; }, + get ColorInformation () { return ColorInformation; }, + get ColorPresentation () { return ColorPresentation; }, + get Command () { return Command; }, + get CompletionItem () { return CompletionItem; }, + get CompletionItemKind () { return CompletionItemKind; }, + get CompletionItemTag () { return CompletionItemTag; }, + get CompletionList () { return CompletionList; }, + get Diagnostic () { return Diagnostic; }, + get DiagnosticSeverity () { return DiagnosticSeverity; }, + get DocumentHighlight () { return DocumentHighlight; }, + get DocumentHighlightKind () { return DocumentHighlightKind; }, + get DocumentLink () { return DocumentLink; }, + get DocumentSymbol () { return DocumentSymbol; }, + get DocumentUri () { return DocumentUri; }, + get ErrorCode () { return ErrorCode; }, + get FoldingRange () { return FoldingRange; }, + get FoldingRangeKind () { return FoldingRangeKind; }, + get Hover () { return Hover; }, + get InsertTextFormat () { return InsertTextFormat; }, + get Location () { return Location; }, + get MarkedString () { return MarkedString; }, + get MarkupContent () { return MarkupContent; }, + get MarkupKind () { return MarkupKind; }, + get Position () { return Position; }, + get Range () { return Range$a; }, + get SchemaDraft () { return SchemaDraft; }, + get SelectionRange () { return SelectionRange; }, + get SymbolInformation () { return SymbolInformation; }, + get SymbolKind () { return SymbolKind$1; }, + get TextDocument () { return TextDocument$1; }, + get TextDocumentEdit () { return TextDocumentEdit; }, + get TextEdit () { return TextEdit; }, + get VersionedTextDocumentIdentifier () { return VersionedTextDocumentIdentifier; }, + get WorkspaceEdit () { return WorkspaceEdit; }, + getLanguageService: getLanguageService$1 +}); + +var require$$0$2 = /*@__PURE__*/getAugmentedNamespace(jsonLanguageService); + +Object.defineProperty(volarServiceJson, "__esModule", { value: true }); +volarServiceJson.resolveReference = resolveReference$2; +volarServiceJson.create = create$l; +const json = require$$0$2; +const vscode_uri_1$e = umdExports; +function resolveReference$2(ref, baseUri, workspaceFolders) { + if (ref.match(/^\w[\w\d+.-]*:/)) { + // starts with a schema + return ref; + } + if (ref[0] === '/') { // resolve absolute path against the current workspace folder + const folderUri = getRootFolder(); + if (folderUri) { + return folderUri + ref.substr(1); + } + } + const baseUriDir = baseUri.path.endsWith('/') ? baseUri : vscode_uri_1$e.Utils.dirname(baseUri); + return vscode_uri_1$e.Utils.resolvePath(baseUriDir, ref).toString(true); + function getRootFolder() { + for (const folder of workspaceFolders) { + let folderURI = folder.toString(); + if (!folderURI.endsWith('/')) { + folderURI = folderURI + '/'; + } + if (baseUri.toString().startsWith(folderURI)) { + return folderURI; + } + } + } +} +function create$l({ documentSelector = ['json', 'jsonc'], getWorkspaceContextService = context => { + return { + resolveRelativePath(ref, resource) { + const base = resource.substring(0, resource.lastIndexOf('/') + 1); + let baseUri = vscode_uri_1$e.URI.parse(base); + const decoded = context.decodeEmbeddedDocumentUri(baseUri); + if (decoded) { + baseUri = decoded[0]; + } + return resolveReference$2(ref, baseUri, context.env.workspaceFolders); + }, + }; +}, isFormattingEnabled = async (_document, context) => { + return await context.env.getConfiguration?.('json.format.enable') ?? true; +}, getFormattingOptions = async (_document, options, context) => { + return { + ...options, + ...await context.env.getConfiguration?.('json.format'), + }; +}, getLanguageSettings = async (context) => { + const languageSettings = {}; + languageSettings.validate = await context.env.getConfiguration?.('json.validate') ?? true; + languageSettings.schemas ??= []; + const schemas = await context.env.getConfiguration?.('json.schemas') ?? []; + for (let i = 0; i < schemas.length; i++) { + const schema = schemas[i]; + let uri = schema.url; + if (!uri && schema.schema) { + uri = schema.schema.id || `vscode://schemas/custom/${i}`; + } + if (uri) { + languageSettings.schemas.push({ uri, fileMatch: schema.fileMatch, schema: schema.schema, folderUri: schema.folderUri }); + } + } + return languageSettings; +}, getDocumentLanguageSettings = document => { + return document.languageId === 'jsonc' + ? { comments: 'ignore', trailingCommas: 'warning' } + : { comments: 'error', trailingCommas: 'error' }; +}, onDidChangeLanguageSettings = (listener, context) => { + const disposable = context.env.onDidChangeConfiguration?.(listener); + return { + dispose() { + disposable?.dispose(); + }, + }; +}, } = {}) { + return { + name: 'json', + capabilities: { + completionProvider: { + // https://github.com/microsoft/vscode/blob/09850876e652688fb142e2e19fd00fd38c0bc4ba/extensions/json-language-features/server/src/jsonServer.ts#L150 + triggerCharacters: ['"', ':'], + resolveProvider: true, + }, + definitionProvider: true, + diagnosticProvider: { + interFileDependencies: false, + workspaceDiagnostics: false, + }, + hoverProvider: true, + documentLinkProvider: {}, + documentSymbolProvider: true, + colorProvider: true, + foldingRangeProvider: true, + selectionRangeProvider: true, + documentFormattingProvider: true, + }, + create(context) { + const jsonDocuments = new WeakMap(); + const jsonLs = json.getLanguageService({ + schemaRequestService: async (uri) => await context.env.fs?.readFile(vscode_uri_1$e.URI.parse(uri)) ?? '', + workspaceContext: getWorkspaceContextService(context), + clientCapabilities: context.env.clientCapabilities, + }); + const disposable = onDidChangeLanguageSettings(() => initializing = undefined, context); + let initializing; + return { + dispose() { + disposable.dispose(); + }, + provide: { + 'json/jsonDocument': getJsonDocument, + 'json/languageService': () => jsonLs, + }, + provideCompletionItems(document, position) { + return worker(document, async (jsonDocument) => { + return await jsonLs.doComplete(document, position, jsonDocument); + }); + }, + resolveCompletionItem(item) { + return jsonLs.doResolve(item); + }, + provideDefinition(document, position) { + return worker(document, async (jsonDocument) => { + return await jsonLs.findDefinition(document, position, jsonDocument); + }); + }, + provideDiagnostics(document) { + return worker(document, async (jsonDocument) => { + const settings = await getDocumentLanguageSettings(document, context); + return await jsonLs.doValidation(document, jsonDocument, settings); + }); + }, + provideHover(document, position) { + return worker(document, async (jsonDocument) => { + return await jsonLs.doHover(document, position, jsonDocument); + }); + }, + provideDocumentLinks(document) { + return worker(document, async (jsonDocument) => { + return await jsonLs.findLinks(document, jsonDocument); + }); + }, + provideDocumentSymbols(document) { + return worker(document, async (jsonDocument) => { + return await jsonLs.findDocumentSymbols2(document, jsonDocument); + }); + }, + provideDocumentColors(document) { + return worker(document, async (jsonDocument) => { + return await jsonLs.findDocumentColors(document, jsonDocument); + }); + }, + provideColorPresentations(document, color, range) { + return worker(document, async (jsonDocument) => { + return await jsonLs.getColorPresentations(document, jsonDocument, color, range); + }); + }, + provideFoldingRanges(document) { + return worker(document, async () => { + return await jsonLs.getFoldingRanges(document, context.env.clientCapabilities?.textDocument?.foldingRange); + }); + }, + provideSelectionRanges(document, positions) { + return worker(document, async (jsonDocument) => { + return await jsonLs.getSelectionRanges(document, positions, jsonDocument); + }); + }, + provideDocumentFormattingEdits(document, range, options) { + return worker(document, async () => { + if (!await isFormattingEnabled(document, context)) { + return; + } + const formatOptions = await getFormattingOptions(document, options, context); + return jsonLs.format(document, range, formatOptions); + }); + }, + }; + async function worker(document, callback) { + const jsonDocument = getJsonDocument(document); + if (!jsonDocument) { + return; + } + await (initializing ??= initialize()); + return await callback(jsonDocument); + } + async function initialize() { + const settings = await getLanguageSettings(context); + jsonLs.configure(settings); + } + function getJsonDocument(textDocument) { + if (!matchDocument$3(documentSelector, textDocument)) { + return; + } + const cache = jsonDocuments.get(textDocument); + if (cache) { + const [cacheVersion, cacheDoc] = cache; + if (cacheVersion === textDocument.version) { + return cacheDoc; + } + } + const doc = jsonLs.parseJSONDocument(textDocument); + jsonDocuments.set(textDocument, [textDocument.version, doc]); + return doc; + } + }, + }; +} +function matchDocument$3(selector, document) { + for (const sel of selector) { + if (sel === document.languageId || (typeof sel === 'object' && sel.language === document.languageId)) { + return true; + } + } + return false; +} + +var volarServicePugBeautify = {}; + +/** + * Beautify Pug(former jade) file. + * + * const pugBeautify = require('pug-beautify'); + * const beautifiedString = pugBeautify-beautify(code,{fill_tab:true,omit_div:false,tab_size:4}); + * + * @param {string} code - strings to be beautified. + * @param {Object} opt - options. + * @param {boolean} opt.fill_tab - fill whether tab or space, default true. + * @param {boolean} opt.omit_div - whether omit 'div' tag, default false. + * @param {number} opt.tab_size - when 'fill_tab' is false, fill 'tab_size' spaces, default 4. + * @param {boolean} opt.separator_space - When 'separator_space' is true, the attribute separator is comma, default true. + * @param {boolean} opt.omit_empty_lines - When 'separator_space' is false, delete line blank, default true. + * @return {string} code - strings beautified. + */ + +var pugBeautify; +var hasRequiredPugBeautify; + +function requirePugBeautify () { + if (hasRequiredPugBeautify) return pugBeautify; + hasRequiredPugBeautify = 1; + pugBeautify = function(code, opt) { + + opt = (typeof opt === 'undefined') ? {} : opt; + if (typeof code !== 'string') quit('Code must be a string text.'); + if (typeof opt !== 'undefined' && typeof opt !== 'object') quit('Option must be a object.'); + + const fill_tab = (typeof opt.fill_tab !== 'undefined') ? opt.fill_tab : true; + const omit_div = (typeof opt.omit_div !== 'undefined') ? opt.omit_div : false; + const tab_size = (typeof opt.tab_size !== 'undefined') ? opt.tab_size : 4; + const separator = opt.separator_space ? ' ' : ', '; + const empty_lines = (typeof opt.omit_empty_lines !== 'undefined') ? opt.omit_empty_lines : true; + const debug = (typeof opt.debug !== 'undefined') ? opt.debug : false; + + if (debug) console.log(fill_tab, omit_div, tab_size, debug, separator); + + // list of indents + const indentList = []; + + let prevIndent = { + type: 'code', // type 'code' or 'remark' + indent: 0, // count of indent space. it replace tab with space + tab: 0, // count of tab ,line indent will be filled up with this value. + input: '', // input line after removing indent. + }; + + if (!empty_lines) { + code = code.replace(/^\s*[\r\n]/gm, ''); + } + + const lines = code.split('\n'); + + lines.forEach(function(line, n) { // array.forEach is blocking, no async function. + // it return matching space --> data[0], data[index] = 0, remained input --> data.input + const data = line.match(/^\s*/); + + // when tab and space mixed, it replace all tab to spaces. + const tmp = data[0].replace(/\t/g, Array(tab_size + 1).join(' ')); + let remainedInput = data.input.replace(/^\s*/, ''); + const indent = (remainedInput.length === 0) ? 0 : tmp.length; + + let tab = 0; + const type = (remainedInput.match(/^\/\/|^\/\*|^\*/)) ? 'remark' : 'code'; + + if (omit_div) { + remainedInput = remainedInput.replace(/^div(\.|#)/i, '$1'); + } + + if (indent === 0) { + tab = 0; + } else { + // when this line & prev line is 'remark', it fallow prev line tab. + if (indentList.length > 0 && type === 'remark' && indentList[indentList.length - 1].type === 'remark') { + tab = prevIndent.tab; + } else { + if (indent === prevIndent.indent) { // when same indent, follow prev tab. + tab = prevIndent.tab; + } else if (indent > prevIndent.indent) { // when indented, add tab + tab = prevIndent.tab + 1; + } else { // when new indent, if find the same indent, and follow it's tab. + for (let i = indentList.length - 1; i >= 0; i--) { + if (indent == indentList[i].indent) { + tab = indentList[i].tab; + break; + } + } + } + } + } + if (debug) console.log(n + 1, indent, tab, prevIndent.indent); + + if (remainedInput.match(/\w+\(.+(,|\s).*\)/)) { + if (debug) console.log('antes =>', remainedInput); + if (remainedInput.match(/\w+=('|").+('|")\s?,\s/)) { + remainedInput = remainedInput.replace(/('|")(,\s+)(([\w-]+=("|'))|$)/g, '$1' + separator + '$4'); + if (debug) console.log('new(' + separator + ')=>', remainedInput); + } + } + + const curIndent = { + type: type, + indent: indent, + tab: tab, + input: remainedInput, + }; + + indentList.push(curIndent); + + if (remainedInput.length !== 0) { // discard null line + prevIndent = curIndent; + } + }); + + // // Here,it reformat with it's tab count. + const formatedLine = indentList.map(function(line, n) { + let space = Array(line.tab + 1).join('\t'); + //when fill with space + if (!fill_tab) space = space.replace(/\t/g, Array(tab_size + 1).join(' ')); + + if (debug) console.log(n + 1, line.indent, line.tab, space + line.input); + return space + line.input; + }); + + //Rewrite data + return formatedLine.join('\n'); + }; + + function quit(reason) { + throw new Error(reason); + } + return pugBeautify; +} + +Object.defineProperty(volarServicePugBeautify, "__esModule", { value: true }); +volarServicePugBeautify.create = create$k; +function create$k({ documentSelector = ['jade'], isFormattingEnabled = () => true, getFormattingOptions = (_document, options) => { + return { + tab_size: options.tabSize, + fill_tab: !options.insertSpaces, + }; +}, } = {}) { + return { + name: 'pug-beautify', + capabilities: { + documentFormattingProvider: true, + }, + create(context) { + return { + async provideDocumentFormattingEdits(document, range, options) { + if (!matchDocument$2(documentSelector, document)) { + return; + } + if (!await isFormattingEnabled(document, context)) { + return; + } + const pugCode = document.getText(range); + // fix https://github.com/johnsoncodehk/volar/issues/304 + if (pugCode.trim() === '') { + return; + } + const pugBeautify = requirePugBeautify(); + const prefixesLength = pugCode.length - pugCode.trimStart().length; + const suffixesLength = pugCode.length - pugCode.trimEnd().length; + const prefixes = pugCode.slice(0, prefixesLength); + const suffixes = pugCode.slice(pugCode.length - suffixesLength); + const formatOptions = await getFormattingOptions(document, options, context); + const newText = pugBeautify(pugCode, formatOptions); + return [{ + range, + newText: prefixes + newText.trim() + suffixes, + }]; + }, + }; + }, + }; +} +function matchDocument$2(selector, document) { + for (const sel of selector) { + if (sel === document.languageId || (typeof sel === 'object' && sel.language === document.languageId)) { + return true; + } + } + return false; +} + +var volarServiceTypescript = {}; + +var directiveComment = {}; + +var main = {}; + +var ral = {}; + +Object.defineProperty(ral, "__esModule", { value: true }); +var _ral; +function RAL() { + if (_ral === undefined) { + throw new Error("No runtime abstraction layer installed"); + } + return _ral; +} +(function (RAL) { + function install(ral) { + if (ral === undefined) { + throw new Error("No runtime abstraction layer provided"); + } + _ral = ral; + } + RAL.install = install; +})(RAL || (RAL = {})); +ral.default = RAL; + +var common$1 = {}; + +(function (exports) { + /* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.config = exports.loadMessageBundle = exports.localize = exports.format = exports.setPseudo = exports.isPseudo = exports.isDefined = exports.BundleFormat = exports.MessageFormat = void 0; + var ral_1 = ral; + (function (MessageFormat) { + MessageFormat["file"] = "file"; + MessageFormat["bundle"] = "bundle"; + MessageFormat["both"] = "both"; + })(exports.MessageFormat || (exports.MessageFormat = {})); + (function (BundleFormat) { + // the nls.bundle format + BundleFormat["standalone"] = "standalone"; + BundleFormat["languagePack"] = "languagePack"; + })(exports.BundleFormat || (exports.BundleFormat = {})); + var LocalizeInfo; + (function (LocalizeInfo) { + function is(value) { + var candidate = value; + return candidate && isDefined(candidate.key) && isDefined(candidate.comment); + } + LocalizeInfo.is = is; + })(LocalizeInfo || (LocalizeInfo = {})); + function isDefined(value) { + return typeof value !== 'undefined'; + } + exports.isDefined = isDefined; + exports.isPseudo = false; + function setPseudo(pseudo) { + exports.isPseudo = pseudo; + } + exports.setPseudo = setPseudo; + function format(message, args) { + var result; + if (exports.isPseudo) { + // FF3B and FF3D is the Unicode zenkaku representation for [ and ] + message = '\uFF3B' + message.replace(/[aouei]/g, '$&$&') + '\uFF3D'; + } + if (args.length === 0) { + result = message; + } + else { + result = message.replace(/\{(\d+)\}/g, function (match, rest) { + var index = rest[0]; + var arg = args[index]; + var replacement = match; + if (typeof arg === 'string') { + replacement = arg; + } + else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) { + replacement = String(arg); + } + return replacement; + }); + } + return result; + } + exports.format = format; + function localize(_key, message) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + return format(message, args); + } + exports.localize = localize; + function loadMessageBundle(file) { + return (0, ral_1.default)().loadMessageBundle(file); + } + exports.loadMessageBundle = loadMessageBundle; + function config(opts) { + return (0, ral_1.default)().config(opts); + } + exports.config = config; + +} (common$1)); + +(function (exports) { + /* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ + var __spreadArray = (commonjsGlobal && commonjsGlobal.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.config = exports.loadMessageBundle = exports.BundleFormat = exports.MessageFormat = void 0; + var ral_1 = ral; + var common_1 = common$1; + var common_2 = common$1; + Object.defineProperty(exports, "MessageFormat", { enumerable: true, get: function () { return common_2.MessageFormat; } }); + Object.defineProperty(exports, "BundleFormat", { enumerable: true, get: function () { return common_2.BundleFormat; } }); + function loadMessageBundle(_file) { + return function (key, message) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + if (typeof key === 'number') { + throw new Error("Browser implementation does currently not support externalized strings."); + } + else { + return common_1.localize.apply(void 0, __spreadArray([key, message], args, false)); + } + }; + } + exports.loadMessageBundle = loadMessageBundle; + function config(options) { + var _a; + (0, common_1.setPseudo)(((_a = options === null || options === void 0 ? void 0 : options.locale) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'pseudo'); + return loadMessageBundle; + } + exports.config = config; + ral_1.default.install(Object.freeze({ + loadMessageBundle: loadMessageBundle, + config: config + })); + +} (main)); + +var shared = {}; + +Object.defineProperty(shared, "__esModule", { value: true }); +shared.getConfigTitle = getConfigTitle; +shared.isTsDocument = isTsDocument$2; +shared.isJsonDocument = isJsonDocument; +shared.safeCall = safeCall; +function getConfigTitle(document) { + if (document.languageId === 'javascriptreact') { + return 'javascript'; + } + if (document.languageId === 'typescriptreact') { + return 'typescript'; + } + return document.languageId; +} +function isTsDocument$2(document) { + return document.languageId === 'javascript' || + document.languageId === 'typescript' || + document.languageId === 'javascriptreact' || + document.languageId === 'typescriptreact'; +} +function isJsonDocument(document) { + return document.languageId === 'json' || + document.languageId === 'jsonc'; +} +function safeCall(cb) { + try { + return cb(); + } + catch { } +} + +Object.defineProperty(directiveComment, "__esModule", { value: true }); +directiveComment.create = create$j; +const nls$1 = main; +const shared_1$c = shared; +const localize$1 = nls$1.loadMessageBundle(); // TODO: not working +const directives = [ + { + value: '@ts-check', + description: localize$1('ts-check', "Enables semantic checking in a JavaScript file. Must be at the top of a file.") + }, { + value: '@ts-nocheck', + description: localize$1('ts-nocheck', "Disables semantic checking in a JavaScript file. Must be at the top of a file.") + }, { + value: '@ts-ignore', + description: localize$1('ts-ignore', "Suppresses @ts-check errors on the next line of a file.") + }, { + value: '@ts-expect-error', + description: localize$1('ts-expect-error', "Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.") + } +]; +function create$j() { + return { + name: 'typescript-directive-comment', + capabilities: { + completionProvider: { + triggerCharacters: ['@'], + }, + }, + create() { + return { + provideCompletionItems(document, position) { + if (!(0, shared_1$c.isTsDocument)(document)) { + return; + } + const prefix = document.getText({ + start: { line: position.line, character: 0 }, + end: position, + }); + const match = prefix.match(/^\s*\/\/+\s?(@[a-zA-Z\-]*)?$/); + if (match) { + const items = directives.map(directive => { + const item = { label: directive.value }; + item.insertTextFormat = 2; + item.detail = directive.description; + const range = { + start: { + line: position.line, + character: Math.max(0, position.character - (match[1] ? match[1].length : 0)), + }, + end: position, + }; + item.textEdit = { + range, + newText: directive.value, + }; + return item; + }); + return { + isIncomplete: false, + items, + }; + } + }, + }; + }, + }; +} + +var docCommentTemplate = {}; + +var lspConverters = {}; + +var re$2 = {exports: {}}; + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0'; + +const MAX_LENGTH$1 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991; + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16; + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6; + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +]; + +var constants$1 = { + MAX_LENGTH: MAX_LENGTH$1, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +}; + +const debug$1 = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {}; + +var debug_1 = debug$1; + +(function (module, exports) { + const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, + } = constants$1; + const debug = debug_1; + exports = module.exports = {}; + + // The actual regexps go on exports.re + const re = exports.re = []; + const safeRe = exports.safeRe = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; + + const LETTERDASHNUMBER = '[a-zA-Z0-9-]'; + + // Replace some greedy regex tokens to prevent regex dos issues. These regex are + // used internally via the safeRe object since all inputs in this library get + // normalized first to trim and collapse all extra whitespace. The original + // regexes are exported for userland consumption and lower level usage. A + // future breaking change could export the safer regex only with a note that + // all input should have extra whitespace removed. + const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], + ]; + + const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`); + } + return value + }; + + const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value); + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined); + }; + + // The following Regular Expressions can be used for tokenizing, + // validating, and parsing SemVer version strings. + + // ## Numeric Identifier + // A single `0`, or a non-zero digit followed by zero or more digits. + + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '\\d+'); + + // ## Non-numeric Identifier + // Zero or more digits, followed by a letter or hyphen, and then zero or + // more letters, digits, or hyphens. + + createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + + // ## Main Version + // Three dot-separated numeric identifiers. + + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`); + + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + + // ## Pre-release Version Identifier + // A numeric identifier, or a non-numeric identifier. + + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] + }|${src[t.NONNUMERICIDENTIFIER]})`); + + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] + }|${src[t.NONNUMERICIDENTIFIER]})`); + + // ## Pre-release Version + // Hyphen, followed by one or more dot-separated pre-release version + // identifiers. + + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] + }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] + }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + + // ## Build Metadata Identifier + // Any combination of digits, letters, or hyphens. + + createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`); + + // ## Build Metadata + // Plus sign, followed by one or more period-separated build metadata + // identifiers. + + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] + }(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + + // ## Full Version String + // A main version, followed optionally by a pre-release version and + // build metadata. + + // Note that the only major, minor, patch, and pre-release sections of + // the version string are capturing groups. The build metadata is not a + // capturing group, because it should not ever be used in version + // comparison. + + createToken('FULLPLAIN', `v?${src[t.MAINVERSION] + }${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`); + + createToken('FULL', `^${src[t.FULLPLAIN]}$`); + + // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. + // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty + // common in the npm registry. + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] + }${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`); + + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + + createToken('GTLT', '((?:<|>)?=?)'); + + // Something like "2.*" or "1.2.x". + // Note that "x.x" is a valid xRange identifer, meaning "any version" + // Only the first item is strictly required. + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`); + + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`); + + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + + // Coercion. + // Extract anything that could conceivably be a part of a valid semver + createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); + createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); + createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); + createToken('COERCERTLFULL', src[t.COERCEFULL], true); + + // Tilde ranges. + // Meaning is "reasonably at or greater than" + createToken('LONETILDE', '(?:~>?)'); + + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + + // Caret ranges. + // Meaning is "at least and backwards compatible with" + createToken('LONECARET', '(?:\\^)'); + + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + + // A simple gt/lt/eq thing, or just "" to indicate "any version" + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + + // An expression to strip any whitespace between the gtlt and the thing + // it modifies, so that `> 1.2.3` ==> `>1.2.3` + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] + }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; + + // Something like `1.2.3 - 1.2.4` + // Note that these all use the loose form, because they'll be + // checked against either the strict or loose comparator form + // later. + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`); + + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`); + + // Star ranges basically just allow anything at all. + createToken('STAR', '(<|>)?=?\\s*\\*'); + // >=0.0.0 is like a star + createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); +} (re$2, re$2.exports)); + +var reExports = re$2.exports; + +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }); +const emptyOpts = Object.freeze({ }); +const parseOptions$1 = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +}; +var parseOptions_1 = parseOptions$1; + +const numeric = /^[0-9]+$/; +const compareIdentifiers$1 = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + + if (anum && bnum) { + a = +a; + b = +b; + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +}; + +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); + +var identifiers$1 = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers, +}; + +const debug = debug_1; +const { MAX_LENGTH, MAX_SAFE_INTEGER } = constants$1; +const { safeRe: re$1, t: t$1 } = reExports; + +const parseOptions = parseOptions_1; +const { compareIdentifiers } = identifiers$1; +let SemVer$d = class SemVer { + constructor (version, options) { + options = parseOptions(options); + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease; + + const m = version.trim().match(options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]); + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version; + + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }); + } + + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options); + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug('build compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier, identifierBase); + break + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier, identifierBase); + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier, identifierBase); + this.inc('pre', identifier, identifierBase); + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase); + } + this.inc('pre', identifier, identifierBase); + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0; + + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + + if (this.prerelease.length === 0) { + this.prerelease = [base]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base); + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base]; + if (identifierBase === false) { + prerelease = [identifier]; + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease; + } + } else { + this.prerelease = prerelease; + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format(); + if (this.build.length) { + this.raw += `+${this.build.join('.')}`; + } + return this + } +}; + +var semver$4 = SemVer$d; + +const SemVer$c = semver$4; +const parse$6 = (version, options, throwErrors = false) => { + if (version instanceof SemVer$c) { + return version + } + try { + return new SemVer$c(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +}; + +var parse_1 = parse$6; + +const parse$5 = parse_1; +const valid$2 = (version, options) => { + const v = parse$5(version, options); + return v ? v.version : null +}; +var valid_1 = valid$2; + +const parse$4 = parse_1; +const clean$1 = (version, options) => { + const s = parse$4(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null +}; +var clean_1 = clean$1; + +const SemVer$b = semver$4; + +const inc$1 = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier; + identifier = options; + options = undefined; + } + + try { + return new SemVer$b( + version instanceof SemVer$b ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +}; +var inc_1 = inc$1; + +const parse$3 = parse_1; + +const diff$1 = (version1, version2) => { + const v1 = parse$3(version1, null, true); + const v2 = parse$3(version2, null, true); + const comparison = v1.compare(v2); + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0; + const highVersion = v1Higher ? v1 : v2; + const lowVersion = v1Higher ? v2 : v1; + const highHasPre = !!highVersion.prerelease.length; + const lowHasPre = !!lowVersion.prerelease.length; + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // Otherwise it can be determined by checking the high version + + if (highVersion.patch) { + // anything higher than a patch bump would result in the wrong version + return 'patch' + } + + if (highVersion.minor) { + // anything higher than a minor bump would result in the wrong version + return 'minor' + } + + // bumping major/minor/patch all have same result + return 'major' + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : ''; + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are preleases + return 'prerelease' +}; + +var diff_1 = diff$1; + +const SemVer$a = semver$4; +const major$1 = (a, loose) => new SemVer$a(a, loose).major; +var major_1 = major$1; + +const SemVer$9 = semver$4; +const minor$1 = (a, loose) => new SemVer$9(a, loose).minor; +var minor_1 = minor$1; + +const SemVer$8 = semver$4; +const patch$1 = (a, loose) => new SemVer$8(a, loose).patch; +var patch_1 = patch$1; + +const parse$2 = parse_1; +const prerelease$1 = (version, options) => { + const parsed = parse$2(version, options); + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +}; +var prerelease_1 = prerelease$1; + +const SemVer$7 = semver$4; +const compare$b = (a, b, loose) => + new SemVer$7(a, loose).compare(new SemVer$7(b, loose)); + +var compare_1 = compare$b; + +const compare$a = compare_1; +const rcompare$1 = (a, b, loose) => compare$a(b, a, loose); +var rcompare_1 = rcompare$1; + +const compare$9 = compare_1; +const compareLoose$1 = (a, b) => compare$9(a, b, true); +var compareLoose_1 = compareLoose$1; + +const SemVer$6 = semver$4; +const compareBuild$3 = (a, b, loose) => { + const versionA = new SemVer$6(a, loose); + const versionB = new SemVer$6(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB) +}; +var compareBuild_1 = compareBuild$3; + +const compareBuild$2 = compareBuild_1; +const sort$1 = (list, loose) => list.sort((a, b) => compareBuild$2(a, b, loose)); +var sort_1 = sort$1; + +const compareBuild$1 = compareBuild_1; +const rsort$1 = (list, loose) => list.sort((a, b) => compareBuild$1(b, a, loose)); +var rsort_1 = rsort$1; + +const compare$8 = compare_1; +const gt$4 = (a, b, loose) => compare$8(a, b, loose) > 0; +var gt_1 = gt$4; + +const compare$7 = compare_1; +const lt$3 = (a, b, loose) => compare$7(a, b, loose) < 0; +var lt_1 = lt$3; + +const compare$6 = compare_1; +const eq$2 = (a, b, loose) => compare$6(a, b, loose) === 0; +var eq_1 = eq$2; + +const compare$5 = compare_1; +const neq$2 = (a, b, loose) => compare$5(a, b, loose) !== 0; +var neq_1 = neq$2; + +const compare$4 = compare_1; +const gte$3 = (a, b, loose) => compare$4(a, b, loose) >= 0; +var gte_1 = gte$3; + +const compare$3 = compare_1; +const lte$3 = (a, b, loose) => compare$3(a, b, loose) <= 0; +var lte_1 = lte$3; + +const eq$1 = eq_1; +const neq$1 = neq_1; +const gt$3 = gt_1; +const gte$2 = gte_1; +const lt$2 = lt_1; +const lte$2 = lte_1; + +const cmp$1 = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a !== b + + case '': + case '=': + case '==': + return eq$1(a, b, loose) + + case '!=': + return neq$1(a, b, loose) + + case '>': + return gt$3(a, b, loose) + + case '>=': + return gte$2(a, b, loose) + + case '<': + return lt$2(a, b, loose) + + case '<=': + return lte$2(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +}; +var cmp_1 = cmp$1; + +const SemVer$5 = semver$4; +const parse$1 = parse_1; +const { safeRe: re, t } = reExports; + +const coerce$1 = (version, options) => { + if (version instanceof SemVer$5) { + return version + } + + if (typeof version === 'number') { + version = String(version); + } + + if (typeof version !== 'string') { + return null + } + + options = options || {}; + + let match = null; + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; + let next; + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1; + } + + if (match === null) { + return null + } + + const major = match[2]; + const minor = match[3] || '0'; + const patch = match[4] || '0'; + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''; + const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''; + + return parse$1(`${major}.${minor}.${patch}${prerelease}${build}`, options) +}; +var coerce_1 = coerce$1; + +class LRUCache { + constructor () { + this.max = 1000; + this.map = new Map(); + } + + get (key) { + const value = this.map.get(key); + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key); + this.map.set(key, value); + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key); + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value; + this.delete(firstKey); + } + + this.map.set(key, value); + } + + return this + } +} + +var lrucache = LRUCache; + +var range; +var hasRequiredRange; + +function requireRange () { + if (hasRequiredRange) return range; + hasRequiredRange = 1; + const SPACE_CHARACTERS = /\s+/g; + + // hoisted class for cyclic dependency + class Range { + constructor (range, options) { + options = parseOptions(options); + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value; + this.set = [[range]]; + this.formatted = undefined; + return this + } + + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' '); + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length); + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0]; + this.set = this.set.filter(c => !isNullSet(c[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break + } + } + } + } + + this.formatted = undefined; + } + + get range () { + if (this.formatted === undefined) { + this.formatted = ''; + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||'; + } + const comps = this.set[i]; + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' '; + } + this.formatted += comps[k].toString().trim(); + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE); + const memoKey = memoOpts + ':' + range; + const cached = cache.get(memoKey); + if (cached) { + return cached + } + + const loose = this.options.loose; + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug('hyphen replace', range); + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range); + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + debug('tilde trim', range); + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + debug('caret trim', range); + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)); + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]) + }); + } + debug('range list', rangeList); + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map(); + const comparators = rangeList.map(comp => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete(''); + } + + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } + } + + range = Range; + + const LRU = lrucache; + const cache = new LRU(); + + const parseOptions = parseOptions_1; + const Comparator = requireComparator(); + const debug = debug_1; + const SemVer = semver$4; + const { + safeRe: re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, + } = reExports; + const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = constants$1; + + const isNullSet = c => c.value === '<0.0.0-0'; + const isAny = c => c.value === ''; + + // take a set of comparators and determine whether there + // exists a version which can satisfy it + const isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }); + + testComparator = remainingComparators.pop(); + } + + return result + }; + + // comprised of xranges, tildes, stars, and gtlt's at this point. + // already replaced the hyphen ranges + // turn into a set of JUST comparators. + const parseComparator = (comp, options) => { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp + }; + + const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; + + // ~, ~> --> * (any, kinda silly) + // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 + // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 + // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 + // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 + // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 + // ~0.0.1 --> >=0.0.1 <0.1.0-0 + const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') + }; + + const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0`; + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0`; + } + + debug('tilde return', ret); + return ret + }) + }; + + // ^ --> * (any, kinda silly) + // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 + // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 + // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 + // ^1.2.3 --> >=1.2.3 <2.0.0-0 + // ^1.2.0 --> >=1.2.0 <2.0.0-0 + // ^0.0.1 --> >=0.0.1 <0.0.2-0 + // ^0.1.0 --> >=0.1.0 <0.2.0-0 + const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') + }; + + const replaceCaret = (comp, options) => { + debug('caret', comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug('replaceCaret pr', pr); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0`; + } + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0`; + } + } + + debug('caret return', ret); + return ret + }) + }; + + const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options); + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') + }; + + const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + + if (gtlt === '=' && anyX) { + gtlt = ''; + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : ''; + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0'; + } else { + // nothing is forbidden + ret = '*'; + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0; + } + p = 0; + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<'; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + + if (gtlt === '<') { + pr = '-0'; + } + + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0`; + } + + debug('xRange return', ret); + + return ret + }) + }; + + // Because * is AND-ed with everything else in the comparator, + // and '' means "any version", just remove the *s entirely. + const replaceStars = (comp, options) => { + debug('replaceStars', comp, options); + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') + }; + + const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options); + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') + }; + + // This function is passed to string.replace(re[t.HYPHENRANGE]) + // M, m, patch, prerelease, build + // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 + // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do + // 1.2 - 3.4 => >=1.2.0 <3.5.0-0 + // TODO build? + const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? '-0' : ''}`; + } + + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + + return `${from} ${to}`.trim() + }; + + const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true + }; + return range; +} + +var comparator; +var hasRequiredComparator; + +function requireComparator () { + if (hasRequiredComparator) return comparator; + hasRequiredComparator = 1; + const ANY = Symbol('SemVer ANY'); + // hoisted class for cyclic dependency + class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options); + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value; + } + } + + comp = comp.trim().split(/\s+/).join(' '); + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } + + debug('comp', this); + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : ''; + if (this.operator === '=') { + this.operator = ''; + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose); + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options); + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } + } + + comparator = Comparator; + + const parseOptions = parseOptions_1; + const { safeRe: re, t } = reExports; + const cmp = cmp_1; + const debug = debug_1; + const SemVer = semver$4; + const Range = requireRange(); + return comparator; +} + +const Range$9 = requireRange(); +const satisfies$4 = (version, range, options) => { + try { + range = new Range$9(range, options); + } catch (er) { + return false + } + return range.test(version) +}; +var satisfies_1 = satisfies$4; + +const Range$8 = requireRange(); + +// Mostly just for testing and legacy API reasons +const toComparators$1 = (range, options) => + new Range$8(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); + +var toComparators_1 = toComparators$1; + +const SemVer$4 = semver$4; +const Range$7 = requireRange(); + +const maxSatisfying$1 = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range$7(range, options); + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v; + maxSV = new SemVer$4(max, options); + } + } + }); + return max +}; +var maxSatisfying_1 = maxSatisfying$1; + +const SemVer$3 = semver$4; +const Range$6 = requireRange(); +const minSatisfying$1 = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range$6(range, options); + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v; + minSV = new SemVer$3(min, options); + } + } + }); + return min +}; +var minSatisfying_1 = minSatisfying$1; + +const SemVer$2 = semver$4; +const Range$5 = requireRange(); +const gt$2 = gt_1; + +const minVersion$1 = (range, loose) => { + range = new Range$5(range, loose); + + let minver = new SemVer$2('0.0.0'); + if (range.test(minver)) { + return minver + } + + minver = new SemVer$2('0.0.0-0'); + if (range.test(minver)) { + return minver + } + + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + + let setMin = null; + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer$2(comparator.semver.version); + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt$2(compver, setMin)) { + setMin = compver; + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }); + if (setMin && (!minver || gt$2(minver, setMin))) { + minver = setMin; + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +}; +var minVersion_1 = minVersion$1; + +const Range$4 = requireRange(); +const validRange$1 = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range$4(range, options).range || '*' + } catch (er) { + return null + } +}; +var valid$1 = validRange$1; + +const SemVer$1 = semver$4; +const Comparator$2 = requireComparator(); +const { ANY: ANY$1 } = Comparator$2; +const Range$3 = requireRange(); +const satisfies$3 = satisfies_1; +const gt$1 = gt_1; +const lt$1 = lt_1; +const lte$1 = lte_1; +const gte$1 = gte_1; + +const outside$3 = (version, range, hilo, options) => { + version = new SemVer$1(version, options); + range = new Range$3(range, options); + + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt$1; + ltefn = lte$1; + ltfn = lt$1; + comp = '>'; + ecomp = '>='; + break + case '<': + gtfn = lt$1; + ltefn = gte$1; + ltfn = gt$1; + comp = '<'; + ecomp = '<='; + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies$3(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + + let high = null; + let low = null; + + comparators.forEach((comparator) => { + if (comparator.semver === ANY$1) { + comparator = new Comparator$2('>=0.0.0'); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +}; + +var outside_1 = outside$3; + +// Determine if version is greater than all the versions possible in the range. +const outside$2 = outside_1; +const gtr$1 = (version, range, options) => outside$2(version, range, '>', options); +var gtr_1 = gtr$1; + +const outside$1 = outside_1; +// Determine if version is less than all the versions possible in the range +const ltr$1 = (version, range, options) => outside$1(version, range, '<', options); +var ltr_1 = ltr$1; + +const Range$2 = requireRange(); +const intersects$1 = (r1, r2, options) => { + r1 = new Range$2(r1, options); + r2 = new Range$2(r2, options); + return r1.intersects(r2, options) +}; +var intersects_1 = intersects$1; + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies$2 = satisfies_1; +const compare$2 = compare_1; +var simplify = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v = versions.sort((a, b) => compare$2(a, b, options)); + for (const version of v) { + const included = satisfies$2(version, range, options); + if (included) { + prev = version; + if (!first) { + first = version; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push('*'); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(' || '); + const original = typeof range.raw === 'string' ? range.raw : String(range); + return simplified.length < original.length ? simplified : range +}; + +const Range$1 = requireRange(); +const Comparator$1 = requireComparator(); +const { ANY } = Comparator$1; +const satisfies$1 = satisfies_1; +const compare$1 = compare_1; + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset$1 = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range$1(sub, options); + dom = new Range$1(dom, options); + let sawNonNull = false; + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +}; + +const minimumVersionWithPreRelease = [new Comparator$1('>=0.0.0-0')]; +const minimumVersion = [new Comparator$1('>=0.0.0')]; + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease; + } else { + sub = minimumVersion; + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion; + } + } + + const eqSet = new Set(); + let gt, lt; + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options); + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options); + } else { + eqSet.add(c.semver); + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp; + if (gt && lt) { + gtltComp = compare$1(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies$1(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies$1(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies$1(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower; + let hasDomLT, hasDomGT; + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false; + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies$1(gt.semver, String(c), options)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies$1(lt.semver, String(c), options)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +}; + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare$1(a.semver, b.semver, options); + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +}; + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare$1(a.semver, b.semver, options); + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +}; + +var subset_1 = subset$1; + +// just pre-load all the stuff that index.js lazily exports +const internalRe = reExports; +const constants = constants$1; +const SemVer = semver$4; +const identifiers = identifiers$1; +const parse = parse_1; +const valid = valid_1; +const clean = clean_1; +const inc = inc_1; +const diff = diff_1; +const major = major_1; +const minor = minor_1; +const patch = patch_1; +const prerelease = prerelease_1; +const compare = compare_1; +const rcompare = rcompare_1; +const compareLoose = compareLoose_1; +const compareBuild = compareBuild_1; +const sort = sort_1; +const rsort = rsort_1; +const gt = gt_1; +const lt = lt_1; +const eq = eq_1; +const neq = neq_1; +const gte = gte_1; +const lte = lte_1; +const cmp = cmp_1; +const coerce = coerce_1; +const Comparator = requireComparator(); +const Range = requireRange(); +const satisfies = satisfies_1; +const toComparators = toComparators_1; +const maxSatisfying = maxSatisfying_1; +const minSatisfying = minSatisfying_1; +const minVersion = minVersion_1; +const validRange = valid$1; +const outside = outside_1; +const gtr = gtr_1; +const ltr = ltr_1; +const intersects = intersects_1; +const simplifyRange = simplify; +const subset = subset_1; +var semver$3 = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +}; + +var protocol_const = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +Object.defineProperty(protocol_const, "__esModule", { value: true }); +protocol_const.EventName = protocol_const.DisplayPartKind = protocol_const.KindModifiers = protocol_const.DiagnosticCategory = protocol_const.Kind = void 0; +class Kind { +} +protocol_const.Kind = Kind; +Kind.alias = 'alias'; +Kind.callSignature = 'call'; +Kind.class = 'class'; +Kind.const = 'const'; +Kind.constructorImplementation = 'constructor'; +Kind.constructSignature = 'construct'; +Kind.directory = 'directory'; +Kind.enum = 'enum'; +Kind.enumMember = 'enum member'; +Kind.externalModuleName = 'external module name'; +Kind.function = 'function'; +Kind.indexSignature = 'index'; +Kind.interface = 'interface'; +Kind.keyword = 'keyword'; +Kind.let = 'let'; +Kind.localFunction = 'local function'; +Kind.localVariable = 'local var'; +Kind.method = 'method'; +Kind.memberGetAccessor = 'getter'; +Kind.memberSetAccessor = 'setter'; +Kind.memberVariable = 'property'; +Kind.module = 'module'; +Kind.primitiveType = 'primitive type'; +Kind.script = 'script'; +Kind.type = 'type'; +Kind.variable = 'var'; +Kind.warning = 'warning'; +Kind.string = 'string'; +Kind.parameter = 'parameter'; +Kind.typeParameter = 'type parameter'; +class DiagnosticCategory { +} +protocol_const.DiagnosticCategory = DiagnosticCategory; +DiagnosticCategory.error = 'error'; +DiagnosticCategory.warning = 'warning'; +DiagnosticCategory.suggestion = 'suggestion'; +class KindModifiers { +} +protocol_const.KindModifiers = KindModifiers; +KindModifiers.optional = 'optional'; +KindModifiers.deprecated = 'deprecated'; +KindModifiers.color = 'color'; +KindModifiers.dtsFile = '.d.ts'; +KindModifiers.tsFile = '.ts'; +KindModifiers.tsxFile = '.tsx'; +KindModifiers.jsFile = '.js'; +KindModifiers.jsxFile = '.jsx'; +KindModifiers.jsonFile = '.json'; +KindModifiers.fileExtensionKindModifiers = [ + KindModifiers.dtsFile, + KindModifiers.tsFile, + KindModifiers.tsxFile, + KindModifiers.jsFile, + KindModifiers.jsxFile, + KindModifiers.jsonFile, +]; +class DisplayPartKind { +} +protocol_const.DisplayPartKind = DisplayPartKind; +DisplayPartKind.functionName = 'functionName'; +DisplayPartKind.methodName = 'methodName'; +DisplayPartKind.parameterName = 'parameterName'; +DisplayPartKind.propertyName = 'propertyName'; +DisplayPartKind.punctuation = 'punctuation'; +DisplayPartKind.text = 'text'; +var EventName; +(function (EventName) { + EventName["syntaxDiag"] = "syntaxDiag"; + EventName["semanticDiag"] = "semanticDiag"; + EventName["suggestionDiag"] = "suggestionDiag"; + EventName["configFileDiag"] = "configFileDiag"; + EventName["telemetry"] = "telemetry"; + EventName["projectLanguageServiceState"] = "projectLanguageServiceState"; + EventName["projectsUpdatedInBackground"] = "projectsUpdatedInBackground"; + EventName["beginInstallTypes"] = "beginInstallTypes"; + EventName["endInstallTypes"] = "endInstallTypes"; + EventName["typesInstallerInitializationFailed"] = "typesInstallerInitializationFailed"; + EventName["surveyReady"] = "surveyReady"; + EventName["projectLoadingStart"] = "projectLoadingStart"; + EventName["projectLoadingFinish"] = "projectLoadingFinish"; +})(EventName || (protocol_const.EventName = EventName = {})); + +var modifiers = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +Object.defineProperty(modifiers, "__esModule", { value: true }); +modifiers.parseKindModifier = parseKindModifier; +function parseKindModifier(kindModifiers) { + return new Set(kindModifiers.split(/,|\s+/g)); +} + +var previewer$1 = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +Object.defineProperty(previewer$1, "__esModule", { value: true }); +previewer$1.plainWithLinks = plainWithLinks; +previewer$1.tagsMarkdownPreview = tagsMarkdownPreview; +previewer$1.markdownDocumentation = markdownDocumentation; +previewer$1.addMarkdownDocumentation = addMarkdownDocumentation; +function replaceLinks(text) { + return text + // Http(s) links + .replace(/\{@(link|linkplain|linkcode) (https?:\/\/[^ |}]+?)(?:[| ]([^{}\n]+?))?\}/gi, (_, tag, link, text) => { + switch (tag) { + case 'linkcode': + return `[\`${text ? text.trim() : link}\`](${link})`; + default: + return `[${text ? text.trim() : link}](${link})`; + } + }); +} +function processInlineTags(text) { + return replaceLinks(text); +} +function getTagBodyText(tag, fileNameToUri, getTextDocument) { + if (!tag.text) { + return undefined; + } + // Convert to markdown code block if it is not already one + function makeCodeblock(text) { + if (text.match(/^\s*[~`]{3}/g)) { + return text; + } + return '```\n' + text + '\n```'; + } + const text = convertLinkTags(tag.text, fileNameToUri, getTextDocument); + switch (tag.name) { + case 'example': + // check for caption tags, fix for #79704 + const captionTagMatches = text.match(/<caption>(.*?)<\/caption>\s*(\r\n|\n)/); + if (captionTagMatches && captionTagMatches.index === 0) { + return captionTagMatches[1] + '\n\n' + makeCodeblock(text.slice(captionTagMatches[0].length)); + } + else { + return makeCodeblock(text); + } + case 'author': + // fix obfuscated email address, #80898 + const emailMatch = text.match(/(.+)\s<([-.\w]+@[-.\w]+)>/); + if (emailMatch === null) { + return text; + } + else { + return `${emailMatch[1]} ${emailMatch[2]}`; + } + case 'default': + return makeCodeblock(text); + } + return processInlineTags(text); +} +function getTagDocumentation(tag, fileNameToUri, getTextDocument) { + switch (tag.name) { + case 'augments': + case 'extends': + case 'param': + case 'template': + const body = (convertLinkTags(tag.text, fileNameToUri, getTextDocument)).split(/^(\S+)\s*-?\s*/); + if (body?.length === 3) { + const param = body[1]; + const doc = body[2]; + const label = `*@${tag.name}* \`${param}\``; + if (!doc) { + return label; + } + return label + (doc.match(/\r\n|\n/g) ? ' \n' + processInlineTags(doc) : ` — ${processInlineTags(doc)}`); + } + } + // Generic tag + const label = `*@${tag.name}*`; + const text = getTagBodyText(tag, fileNameToUri, getTextDocument); + if (!text) { + return label; + } + return label + (text.match(/\r\n|\n/g) ? ' \n' + text : ` — ${text}`); +} +function plainWithLinks(parts, fileNameToUri, getTextDocument) { + return processInlineTags(convertLinkTags(parts, fileNameToUri, getTextDocument)); +} +/** + * Convert `@link` inline tags to markdown links + */ +function convertLinkTags(parts, fileNameToUri, getTextDocument) { + if (!parts) { + return ''; + } + if (typeof parts === 'string') { + return parts; + } + const out = []; + let currentLink; + for (const part of parts) { + switch (part.kind) { + case 'link': + if (currentLink) { + const text = currentLink.text ?? currentLink.name; + let target = currentLink.target; + if (typeof currentLink.target === 'object' && 'fileName' in currentLink.target) { + const _target = currentLink.target; + const fileDoc = getTextDocument(fileNameToUri(_target.fileName)); + if (fileDoc) { + const start = fileDoc.positionAt(_target.textSpan.start); + const end = fileDoc.positionAt(_target.textSpan.start + _target.textSpan.length); + target = { + file: _target.fileName, + start: { + line: start.line + 1, + offset: start.character + 1, + }, + end: { + line: end.line + 1, + offset: end.character + 1, + }, + }; + } + else { + target = { + file: _target.fileName, + start: { + line: 1, + offset: 1, + }, + end: { + line: 1, + offset: 1, + }, + }; + } + } + if (target) { + const link = fileNameToUri(target.file) + '#' + `L${target.start.line},${target.start.offset}`; + out.push(`[${text}](${link})`); + } + else { + if (text) { + out.push(text); + } + } + currentLink = undefined; + } + else { + currentLink = {}; + } + break; + case 'linkName': + if (currentLink) { + currentLink.name = part.text; + currentLink.target = part.target; + } + break; + case 'linkText': + if (currentLink) { + currentLink.text = part.text; + } + break; + default: + out.push(part.text); + break; + } + } + return processInlineTags(out.join('')); +} +function tagsMarkdownPreview(tags, fileNameToUri, getTextDocument) { + return tags.map(tag => getTagDocumentation(tag, fileNameToUri, getTextDocument)).join(' \n\n'); +} +function markdownDocumentation(documentation, tags, fileNameToUri, getTextDocument) { + return addMarkdownDocumentation('', documentation, tags, fileNameToUri, getTextDocument); +} +function addMarkdownDocumentation(out, documentation, tags, fileNameToUri, getTextDocument) { + if (documentation) { + out += plainWithLinks(documentation, fileNameToUri, getTextDocument); + } + if (tags) { + const tagsPreview = tagsMarkdownPreview(tags, fileNameToUri, getTextDocument); + if (tagsPreview) { + out += '\n\n' + tagsPreview; + } + } + return out; +} + +var typeConverters$1 = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +Object.defineProperty(typeConverters$1, "__esModule", { value: true }); +typeConverters$1.SymbolKind = void 0; +const PConst$2 = protocol_const; +var SymbolKind; +(function (SymbolKind) { + function fromProtocolScriptElementKind(kind) { + switch (kind) { + case PConst$2.Kind.module: return 2; + case PConst$2.Kind.class: return 5; + case PConst$2.Kind.enum: return 10; + case PConst$2.Kind.enumMember: return 22; + case PConst$2.Kind.interface: return 11; + case PConst$2.Kind.indexSignature: return 6; + case PConst$2.Kind.callSignature: return 6; + case PConst$2.Kind.method: return 6; + case PConst$2.Kind.memberVariable: return 7; + case PConst$2.Kind.memberGetAccessor: return 7; + case PConst$2.Kind.memberSetAccessor: return 7; + case PConst$2.Kind.variable: return 13; + case PConst$2.Kind.let: return 13; + case PConst$2.Kind.const: return 13; + case PConst$2.Kind.localVariable: return 13; + case PConst$2.Kind.alias: return 13; + case PConst$2.Kind.function: return 12; + case PConst$2.Kind.localFunction: return 12; + case PConst$2.Kind.constructSignature: return 9; + case PConst$2.Kind.constructorImplementation: return 9; + case PConst$2.Kind.typeParameter: return 26; + case PConst$2.Kind.string: return 15; + default: return 13; + } + } + SymbolKind.fromProtocolScriptElementKind = fromProtocolScriptElementKind; +})(SymbolKind || (typeConverters$1.SymbolKind = SymbolKind = {})); + +Object.defineProperty(lspConverters, "__esModule", { value: true }); +lspConverters.convertDiagnostic = convertDiagnostic; +lspConverters.applyCompletionEntryDetails = applyCompletionEntryDetails; +lspConverters.convertCompletionInfo = convertCompletionInfo; +lspConverters.getLineText = getLineText; +lspConverters.convertNavigateToItem = convertNavigateToItem; +lspConverters.convertInlayHint = convertInlayHint; +lspConverters.convertHighlightSpan = convertHighlightSpan; +lspConverters.convertSelectionRange = convertSelectionRange; +lspConverters.convertFileTextChanges = convertFileTextChanges; +lspConverters.convertRenameLocations = convertRenameLocations; +lspConverters.convertQuickInfo = convertQuickInfo; +lspConverters.convertNavTree = convertNavTree; +lspConverters.convertOutliningSpan = convertOutliningSpan; +lspConverters.convertOutliningSpanKind = convertOutliningSpanKind; +lspConverters.convertTextChange = convertTextChange; +lspConverters.convertCallHierarchyIncomingCall = convertCallHierarchyIncomingCall; +lspConverters.convertCallHierarchyOutgoingCall = convertCallHierarchyOutgoingCall; +lspConverters.convertCallHierarchyItem = convertCallHierarchyItem; +lspConverters.convertDocumentSpanToLocation = convertDocumentSpanToLocation; +lspConverters.convertDefinitionInfoAndBoundSpan = convertDefinitionInfoAndBoundSpan; +lspConverters.convertDocumentSpantoLocationLink = convertDocumentSpantoLocationLink; +lspConverters.convertTextSpan = convertTextSpan; +const path$2 = pathBrowserify; +const semver$2 = semver$3; +const PConst$1 = protocol_const; +const modifiers_1 = modifiers; +const previewer = previewer$1; +const typeConverters = typeConverters$1; +// diagnostics +function convertDiagnostic(diag, document, fileNameToUri, getTextDocument) { + if (diag.start === undefined) { + return; + } + if (diag.length === undefined) { + return; + } + const diagnostic = { + range: { + start: document.positionAt(diag.start), + end: document.positionAt(diag.start + diag.length), + }, + severity: convertDiagnosticCategory(diag.category), + source: 'ts', + code: diag.code, + message: getMessageText(diag), + }; + if (diag.relatedInformation) { + diagnostic.relatedInformation = diag.relatedInformation + .map(rErr => convertDiagnosticRelatedInformation(rErr, fileNameToUri, getTextDocument)) + .filter((v) => !!v); + } + if (diag.reportsUnnecessary) { + if (diagnostic.tags === undefined) { + diagnostic.tags = []; + } + diagnostic.tags.push(1); + } + if (diag.reportsDeprecated) { + if (diagnostic.tags === undefined) { + diagnostic.tags = []; + } + diagnostic.tags.push(2); + } + return diagnostic; +} +function convertDiagnosticRelatedInformation(diag, fileNameToUri, getTextDocument) { + if (diag.start === undefined) { + return; + } + if (diag.length === undefined) { + return; + } + let document; + if (diag.file) { + document = getTextDocument(fileNameToUri(diag.file.fileName)); + } + if (!document) { + return; + } + const diagnostic = { + location: { + uri: document.uri, + range: { + start: document.positionAt(diag.start), + end: document.positionAt(diag.start + diag.length), + }, + }, + message: getMessageText(diag), + }; + return diagnostic; +} +function convertDiagnosticCategory(input) { + switch (input) { + case 0: return 2; + case 1: return 1; + case 2: return 4; + case 3: return 3; + } + return 1; +} +function getMessageText(diag, level = 0) { + let messageText = ' '.repeat(level); + if (typeof diag.messageText === 'string') { + messageText += diag.messageText; + } + else { + messageText += diag.messageText.messageText; + if (diag.messageText.next) { + for (const info of diag.messageText.next) { + messageText += '\n' + getMessageText(info, level + 1); + } + } + } + return messageText; +} +// completion resolve +function applyCompletionEntryDetails(ts, item, data, document, fileNameToUri, getTextDocument) { + const { sourceDisplay } = data; + if (sourceDisplay) { + item.labelDetails ??= {}; + item.labelDetails.description = ts.displayPartsToString(sourceDisplay); + } + const detailTexts = []; + if (data.codeActions) { + item.additionalTextEdits ??= []; + for (const action of data.codeActions) { + detailTexts.push(action.description); + for (const changes of action.changes) { + const ranges = changes.textChanges.map(change => convertTextSpan(change.span, document)); + ranges.forEach((range, index) => { + item.additionalTextEdits?.push({ range, newText: changes.textChanges[index].newText }); + }); + } + } + } + if (data.displayParts) { + detailTexts.push(previewer.plainWithLinks(data.displayParts, fileNameToUri, getTextDocument)); + } + if (detailTexts.length) { + item.detail = detailTexts.join('\n'); + } + item.documentation = { + kind: 'markdown', + value: previewer.markdownDocumentation(data.documentation, data.tags, fileNameToUri, getTextDocument), + }; + if (data) { + handleKindModifiers(item, data); + } +} +// completion +function convertCompletionInfo(ts, completionContext, document, position, createData) { + const lt_320 = semver$2.lt(ts.version, '3.2.0'); + const gte_300 = semver$2.gte(ts.version, '3.0.0'); + const wordRange = completionContext.optionalReplacementSpan + ? convertTextSpan(completionContext.optionalReplacementSpan, document) + : undefined; + const line = getLineText(document, position.line); + const dotAccessorContext = getDotAccessorContext(document); + const entries = completionContext.entries + .map(tsEntry => ({ + ...convertCompletionEntry(tsEntry, document), + data: createData(tsEntry), + })); + return { + isIncomplete: !!completionContext.isIncomplete, + items: entries, + }; + function convertCompletionEntry(tsEntry, document) { + const item = { label: tsEntry.name }; + item.kind = convertCompletionItemKind(tsEntry.kind); + if (tsEntry.source && tsEntry.hasAction) { + // De-prioritize auto-imports + // https://github.com/microsoft/vscode/issues/40311 + item.sortText = '\uffff' + tsEntry.sortText; + } + else { + item.sortText = tsEntry.sortText; + } + const { sourceDisplay, isSnippet, labelDetails } = tsEntry; + if (sourceDisplay) { + item.labelDetails ??= {}; + item.labelDetails.description = ts.displayPartsToString(sourceDisplay); + } + if (labelDetails) { + item.labelDetails ??= {}; + Object.assign(item.labelDetails, labelDetails); + } + item.preselect = tsEntry.isRecommended; + let range = getRangeFromReplacementSpan(tsEntry, document); + item.commitCharacters = getCommitCharacters(tsEntry, { + isNewIdentifierLocation: completionContext.isNewIdentifierLocation, + isInValidCommitCharacterContext: isInValidCommitCharacterContext(document, position), + enableCallCompletions: true, // TODO: suggest.completeFunctionCalls + }); + item.insertText = tsEntry.insertText; + item.insertTextFormat = isSnippet ? 2 : 1; + item.filterText = getFilterText(tsEntry, wordRange, line, tsEntry.insertText); + if (completionContext?.isMemberCompletion && dotAccessorContext && !isSnippet) { + item.filterText = dotAccessorContext.text + (item.insertText || item.label); + if (!range) { + const replacementRange = wordRange; + if (replacementRange) { + range = { + inserting: dotAccessorContext.range, + replacing: rangeUnion(dotAccessorContext.range, replacementRange), + }; + } + else { + range = dotAccessorContext.range; + } + item.insertText = item.filterText; + } + } + handleKindModifiers(item, tsEntry); + if (!range && wordRange) { + range = { + inserting: { start: wordRange.start, end: position }, + replacing: wordRange, + }; + } + if (range) { + if ('start' in range) { + item.textEdit = { + range, + newText: item.insertText || item.label, + }; + } + else { + item.textEdit = { + insert: range.inserting, + replace: range.replacing, + newText: item.insertText || item.label, + }; + } + } + return item; + } + function getDotAccessorContext(document) { + let dotAccessorContext; + if (gte_300) { + if (!completionContext) { + return; + } + const isMemberCompletion = completionContext.isMemberCompletion; + if (isMemberCompletion) { + const dotMatch = line.slice(0, position.character).match(/\??\.\s*$/) || undefined; + if (dotMatch) { + const range = { + start: { line: position.line, character: position.character - dotMatch[0].length }, + end: position, + }; + const text = document.getText(range); + dotAccessorContext = { range, text }; + } + } + } + return dotAccessorContext; + } + // from vscode typescript + function getRangeFromReplacementSpan(tsEntry, document) { + if (!tsEntry.replacementSpan) { + return; + } + let replaceRange = { + start: document.positionAt(tsEntry.replacementSpan.start), + end: document.positionAt(tsEntry.replacementSpan.start + tsEntry.replacementSpan.length), + }; + // Make sure we only replace a single line at most + if (replaceRange.start.line !== replaceRange.end.line) { + replaceRange = { + start: { + line: replaceRange.start.line, + character: replaceRange.start.character, + }, + end: { + line: replaceRange.start.line, + character: document.positionAt(document.offsetAt({ line: replaceRange.start.line + 1, character: 0 }) - 1).character, + }, + }; + } + // If TS returns an explicit replacement range, we should use it for both types of completion + return { + inserting: replaceRange, + replacing: replaceRange, + }; + } + function getFilterText(tsEntry, wordRange, line, insertText) { + // Handle private field completions + if (tsEntry.name.startsWith('#')) { + const wordStart = wordRange ? line.charAt(wordRange.start.character) : undefined; + if (insertText) { + if (insertText.startsWith('this.#')) { + return wordStart === '#' ? insertText : insertText.replace(/^this\.#/, ''); + } + else { + return insertText; + } + } + else { + return wordStart === '#' ? undefined : tsEntry.name.replace(/^#/, ''); + } + } + // For `this.` completions, generally don't set the filter text since we don't want them to be overly prioritized. #74164 + if (insertText?.startsWith('this.')) { + return undefined; + } + // Handle the case: + // ``` + // const xyz = { 'ab c': 1 }; + // xyz.ab| + // ``` + // In which case we want to insert a bracket accessor but should use `.abc` as the filter text instead of + // the bracketed insert text. + else if (insertText?.startsWith('[')) { + return insertText.replace(/^\[['"](.+)[['"]\]$/, '.$1'); + } + // In all other cases, fallback to using the insertText + return insertText; + } + function getCommitCharacters(entry, context) { + if (entry.kind === PConst$1.Kind.warning) { // Ambient JS word based suggestion + return undefined; + } + if (context.isNewIdentifierLocation || !context.isInValidCommitCharacterContext) { + return undefined; + } + const commitCharacters = ['.', ',', ';']; + { + commitCharacters.push('('); + } + return commitCharacters; + } + function isInValidCommitCharacterContext(document, position) { + if (lt_320) { + // Workaround for https://github.com/microsoft/TypeScript/issues/27742 + // Only enable dot completions when the previous character is not a dot preceded by whitespace. + // Prevents incorrectly completing while typing spread operators. + if (position.character > 1) { + const preText = document.getText({ + start: { line: position.line, character: 0 }, + end: position, + }); + return preText.match(/(\s|^)\.$/ig) === null; + } + } + return true; + } +} +function convertCompletionItemKind(kind) { + switch (kind) { + case PConst$1.Kind.primitiveType: + case PConst$1.Kind.keyword: + return 14; + case PConst$1.Kind.const: + case PConst$1.Kind.let: + case PConst$1.Kind.variable: + case PConst$1.Kind.localVariable: + case PConst$1.Kind.alias: + case PConst$1.Kind.parameter: + return 6; + case PConst$1.Kind.memberVariable: + case PConst$1.Kind.memberGetAccessor: + case PConst$1.Kind.memberSetAccessor: + return 5; + case PConst$1.Kind.function: + case PConst$1.Kind.localFunction: + return 3; + case PConst$1.Kind.method: + case PConst$1.Kind.constructSignature: + case PConst$1.Kind.callSignature: + case PConst$1.Kind.indexSignature: + return 2; + case PConst$1.Kind.enum: + return 13; + case PConst$1.Kind.enumMember: + return 20; + case PConst$1.Kind.module: + case PConst$1.Kind.externalModuleName: + return 9; + case PConst$1.Kind.class: + case PConst$1.Kind.type: + return 7; + case PConst$1.Kind.interface: + return 8; + case PConst$1.Kind.warning: + return 1; + case PConst$1.Kind.script: + return 17; + case PConst$1.Kind.directory: + return 19; + case PConst$1.Kind.string: + return 21; + default: + return 10; + } +} +function handleKindModifiers(item, tsEntry) { + if (tsEntry.kindModifiers) { + const kindModifiers = (0, modifiers_1.parseKindModifier)(tsEntry.kindModifiers); + if (kindModifiers.has(PConst$1.KindModifiers.optional)) { + if (!item.insertText) { + item.insertText = item.label; + } + if (!item.filterText) { + item.filterText = item.label; + } + item.label += '?'; + } + if (kindModifiers.has(PConst$1.KindModifiers.deprecated)) { + item.tags = [1]; + } + if (kindModifiers.has(PConst$1.KindModifiers.color)) { + item.kind = 16; + } + if (tsEntry.kind === PConst$1.Kind.script) { + for (const extModifier of PConst$1.KindModifiers.fileExtensionKindModifiers) { + if (kindModifiers.has(extModifier)) { + if (tsEntry.name.toLowerCase().endsWith(extModifier)) { + item.detail = tsEntry.name; + } + else { + item.detail = tsEntry.name + extModifier; + } + break; + } + } + } + } +} +function rangeUnion(a, b) { + const start = (a.start.line < b.start.line || (a.start.line === b.start.line && a.start.character < b.start.character)) ? a.start : b.start; + const end = (a.end.line > b.end.line || (a.end.line === b.end.line && a.end.character > b.end.character)) ? a.end : b.end; + return { start, end }; +} +function getLineText(document, line) { + const endOffset = document.offsetAt({ line: line + 1, character: 0 }); + const end = document.positionAt(endOffset); + const text = document.getText({ + start: { line: line, character: 0 }, + end: end.line === line ? end : document.positionAt(endOffset - 1), + }); + return text; +} +// workspaceSymbol +function convertNavigateToItem(item, document) { + const info = { + name: getLabel(item), + kind: convertScriptElementKind(item.kind), + location: { + uri: document.uri, + range: convertTextSpan(item.textSpan, document), + }, + }; + const kindModifiers = item.kindModifiers ? (0, modifiers_1.parseKindModifier)(item.kindModifiers) : undefined; + if (kindModifiers?.has(PConst$1.KindModifiers.deprecated)) { + info.tags = [1]; + } + return info; +} +function getLabel(item) { + const label = item.name; + if (item.kind === 'method' || item.kind === 'function') { + return label + '()'; + } + return label; +} +function convertScriptElementKind(kind) { + switch (kind) { + case PConst$1.Kind.method: return 6; + case PConst$1.Kind.enum: return 10; + case PConst$1.Kind.enumMember: return 22; + case PConst$1.Kind.function: return 12; + case PConst$1.Kind.class: return 5; + case PConst$1.Kind.interface: return 11; + case PConst$1.Kind.type: return 5; + case PConst$1.Kind.memberVariable: return 8; + case PConst$1.Kind.memberGetAccessor: return 8; + case PConst$1.Kind.memberSetAccessor: return 8; + case PConst$1.Kind.variable: return 13; + default: return 13; + } +} +// inlayHints +function convertInlayHint(hint, document) { + const result = { + position: document.positionAt(hint.position), + label: hint.text, + kind: hint.kind === 'Type' ? 1 + : hint.kind === 'Parameter' ? 2 + : undefined, + }; + result.paddingLeft = hint.whitespaceBefore; + result.paddingRight = hint.whitespaceAfter; + return result; +} +// documentHighlight +function convertHighlightSpan(span, document) { + return { + kind: span.kind === 'writtenReference' + ? 3 + : 2, + range: convertTextSpan(span.textSpan, document), + }; +} +// selectionRanges +function convertSelectionRange(range, document) { + return { + parent: range.parent + ? convertSelectionRange(range.parent, document) + : undefined, + range: convertTextSpan(range.textSpan, document), + }; +} +// rename +function convertFileTextChanges(changes, fileNameToUri, getTextDocument) { + const workspaceEdit = {}; + for (const change of changes) { + if (!workspaceEdit.documentChanges) { + workspaceEdit.documentChanges = []; + } + const uri = fileNameToUri(change.fileName); + if (change.isNewFile) { + workspaceEdit.documentChanges.push({ kind: 'create', uri: uri.toString() }); + workspaceEdit.documentChanges.push({ + textDocument: { + uri: uri.toString(), + version: null, // fix https://github.com/johnsoncodehk/volar/issues/2025 + }, + edits: change.textChanges.map(edit => ({ + newText: edit.newText, + range: { + start: { line: 0, character: edit.span.start }, + end: { line: 0, character: edit.span.start + edit.span.length }, + }, + })), + }); + } + else { + const doc = getTextDocument(uri); + workspaceEdit.documentChanges.push({ + textDocument: { + uri: uri.toString(), + version: null, // fix https://github.com/johnsoncodehk/volar/issues/2025 + }, + edits: change.textChanges.map(edit => convertTextChange(edit, doc)), + }); + } + } + return workspaceEdit; +} +// rename file +function convertRenameLocations(newText, locations, fileNameToUri, getTextDocument) { + const workspaceEdit = {}; + for (const location of locations) { + if (!workspaceEdit.changes) { + workspaceEdit.changes = {}; + } + const uri = fileNameToUri(location.fileName); + const doc = getTextDocument(uri); + if (!workspaceEdit.changes[uri.toString()]) { + workspaceEdit.changes[uri.toString()] = []; + } + let _newText = newText; + if (location.prefixText) { + _newText = location.prefixText + _newText; + } + if (location.suffixText) { + _newText = _newText + location.suffixText; + } + workspaceEdit.changes[uri.toString()].push({ + newText: _newText, + range: convertTextSpan(location.textSpan, doc), + }); + } + return workspaceEdit; +} +// hover +function convertQuickInfo(ts, info, document, fileNameToUri, getTextDocument) { + const parts = []; + const displayString = ts.displayPartsToString(info.displayParts); + const documentation = previewer.markdownDocumentation(info.documentation ?? [], info.tags, fileNameToUri, getTextDocument); + if (displayString) { + parts.push(['```typescript', displayString, '```'].join('\n')); + } + if (documentation) { + parts.push(documentation); + } + const markdown = { + kind: 'markdown', + value: parts.join('\n\n'), + }; + return { + contents: markdown, + range: convertTextSpan(info.textSpan, document), + }; +} +// documentSymbol +function convertNavTree(item, document) { + if (!shouldIncludeEntry(item)) { + return []; + } + let remain = item.childItems ?? []; + return item.spans.map(span => { + const childItems = []; + remain = remain.filter(child => { + const childStart = child.spans[0].start; + const childEnd = child.spans[child.spans.length - 1].start + child.spans[child.spans.length - 1].length; + if (childStart >= span.start && childEnd <= span.start + span.length) { + childItems.push(child); + return false; + } + return true; + }); + const nameSpan = item.spans.length === 1 + ? (item.nameSpan ?? span) + : span; + const fullRange = { + start: Math.min(span.start, nameSpan.start), + end: Math.max(span.start + span.length, nameSpan.start + nameSpan.length), + }; + const symbol = { + name: item.text, + kind: getSymbolKind(item.kind), + range: convertTextSpan({ + start: fullRange.start, + length: fullRange.end - fullRange.start, + }, document), + selectionRange: convertTextSpan(nameSpan, document), + children: childItems.map(item => convertNavTree(item, document)).flat(), + }; + const kindModifiers = (0, modifiers_1.parseKindModifier)(item.kindModifiers); + if (kindModifiers.has(PConst$1.KindModifiers.deprecated)) { + symbol.deprecated = true; + symbol.tags ??= []; + symbol.tags.push(1); + } + return symbol; + }); +} +const getSymbolKind = (kind) => { + switch (kind) { + case PConst$1.Kind.module: return 2; + case PConst$1.Kind.class: return 5; + case PConst$1.Kind.enum: return 10; + case PConst$1.Kind.interface: return 11; + case PConst$1.Kind.method: return 6; + case PConst$1.Kind.memberVariable: return 7; + case PConst$1.Kind.memberGetAccessor: return 7; + case PConst$1.Kind.memberSetAccessor: return 7; + case PConst$1.Kind.variable: return 13; + case PConst$1.Kind.const: return 13; + case PConst$1.Kind.localVariable: return 13; + case PConst$1.Kind.function: return 12; + case PConst$1.Kind.localFunction: return 12; + case PConst$1.Kind.constructSignature: return 9; + case PConst$1.Kind.constructorImplementation: return 9; + } + return 13; +}; +function shouldIncludeEntry(item) { + if (item.kind === PConst$1.Kind.alias) { + return false; + } + return !!(item.text && item.text !== '<function>' && item.text !== '<class>'); +} +// foldingRanges +function convertOutliningSpan(outliningSpan, document) { + const start = document.positionAt(outliningSpan.textSpan.start); + const end = adjustFoldingEnd(start, document.positionAt(outliningSpan.textSpan.start + outliningSpan.textSpan.length), document); + return { + startLine: start.line, + endLine: end.line, + startCharacter: start.character, + endCharacter: end.character, + kind: convertOutliningSpanKind(outliningSpan.kind), + }; +} +function convertOutliningSpanKind(kind) { + switch (kind) { + case 'comment': return 'comment'; + case 'region': return 'region'; + case 'imports': return 'imports'; + case 'code': + default: return undefined; + } +} +const foldEndPairCharacters = ['}', ']', ')', '`']; +// https://github.com/microsoft/vscode/blob/bed61166fb604e519e82e4d1d1ed839bc45d65f8/extensions/typescript-language-features/src/languageFeatures/folding.ts#L61-L73 +function adjustFoldingEnd(start, end, document) { + // workaround for #47240 + if (end.character > 0) { + const foldEndCharacter = document.getText({ + start: { line: end.line, character: end.character - 1 }, + end, + }); + if (foldEndPairCharacters.includes(foldEndCharacter)) { + const endOffset = Math.max(document.offsetAt({ line: end.line, character: 0 }) - 1, document.offsetAt(start)); + return document.positionAt(endOffset); + } + } + return end; +} +// formatting +function convertTextChange(edit, document) { + return { + range: convertTextSpan(edit.span, document), + newText: edit.newText, + }; +} +// callHierarchy +function convertCallHierarchyIncomingCall(item, ctx) { + const uri = ctx.fileNameToUri(item.from.file); + const document = ctx.getTextDocument(uri); + return { + from: convertCallHierarchyItem(item.from, ctx), + fromRanges: item.fromSpans + .map(span => convertTextSpan(span, document)) + .filter(span => !!span), + }; +} +function convertCallHierarchyOutgoingCall(item, fromDocument, ctx) { + return { + to: convertCallHierarchyItem(item.to, ctx), + fromRanges: item.fromSpans + .map(span => convertTextSpan(span, fromDocument)) + .filter(span => !!span), + }; +} +function convertCallHierarchyItem(item, ctx) { + const rootPath = ctx.languageService.getProgram()?.getCompilerOptions().rootDir ?? ''; + const uri = ctx.fileNameToUri(item.file); + const document = ctx.getTextDocument(uri); + const useFileName = isSourceFileItem(item); + const name = useFileName ? path$2.basename(item.file) : item.name; + const detail = useFileName ? path$2.relative(rootPath, path$2.dirname(item.file)) : item.containerName ?? ''; + const result = { + kind: typeConverters.SymbolKind.fromProtocolScriptElementKind(item.kind), + name, + detail, + uri: uri.toString(), + range: convertTextSpan(item.span, document), + selectionRange: convertTextSpan(item.selectionSpan, document), + }; + const kindModifiers = item.kindModifiers ? (0, modifiers_1.parseKindModifier)(item.kindModifiers) : undefined; + if (kindModifiers?.has(PConst$1.KindModifiers.deprecated)) { + result.tags = [1]; + } + return result; +} +function isSourceFileItem(item) { + return item.kind === PConst$1.Kind.script || item.kind === PConst$1.Kind.module && item.selectionSpan.start === 0; +} +// base +function convertDocumentSpanToLocation(documentSpan, ctx) { + const uri = ctx.fileNameToUri(documentSpan.fileName); + const document = ctx.getTextDocument(uri); + const range = convertTextSpan(documentSpan.textSpan, document); + return { + uri: uri.toString(), + range, + }; +} +function convertDefinitionInfoAndBoundSpan(info, document, ctx) { + if (!info.definitions) { + return []; + } + const originSelectionRange = convertTextSpan(info.textSpan, document); + return info.definitions + .map(entry => { + const link = convertDocumentSpantoLocationLink(entry, ctx); + if (link) { + link.originSelectionRange ??= originSelectionRange; + return link; + } + }) + .filter(entry => !!entry); +} +function convertDocumentSpantoLocationLink(documentSpan, ctx) { + const targetUri = ctx.fileNameToUri(documentSpan.fileName); + const document = ctx.getTextDocument(targetUri); + const targetSelectionRange = convertTextSpan(documentSpan.textSpan, document); + const targetRange = documentSpan.contextSpan + ? convertTextSpan(documentSpan.contextSpan, document) + : targetSelectionRange; + const originSelectionRange = documentSpan.originalTextSpan + ? convertTextSpan(documentSpan.originalTextSpan, document) + : undefined; + return { + targetUri: targetUri.toString(), + targetRange, + targetSelectionRange, + originSelectionRange, + }; +} +function convertTextSpan(textSpan, document) { + if (!document) { + return { + start: { line: 0, character: 0 }, + end: { line: 0, character: 0 }, + }; + } + return { + start: document.positionAt(textSpan.start), + end: document.positionAt(textSpan.start + textSpan.length), + }; +} + +var syntactic = {}; + +var getFormatCodeSettings$1 = {}; + +Object.defineProperty(getFormatCodeSettings$1, "__esModule", { value: true }); +getFormatCodeSettings$1.getFormatCodeSettings = getFormatCodeSettings; +const shared_1$b = shared; +async function getFormatCodeSettings(ctx, document, options) { + const config = await ctx.env.getConfiguration?.((0, shared_1$b.getConfigTitle)(document) + '.format') ?? {}; + return { + convertTabsToSpaces: options?.insertSpaces, + tabSize: options?.tabSize, + indentSize: options?.tabSize, + indentStyle: 2, + newLineCharacter: '\n', + insertSpaceAfterCommaDelimiter: config.insertSpaceAfterCommaDelimiter ?? true, + insertSpaceAfterConstructor: config.insertSpaceAfterConstructor ?? false, + insertSpaceAfterSemicolonInForStatements: config.insertSpaceAfterSemicolonInForStatements ?? true, + insertSpaceBeforeAndAfterBinaryOperators: config.insertSpaceBeforeAndAfterBinaryOperators ?? true, + insertSpaceAfterKeywordsInControlFlowStatements: config.insertSpaceAfterKeywordsInControlFlowStatements ?? true, + insertSpaceAfterFunctionKeywordForAnonymousFunctions: config.insertSpaceAfterFunctionKeywordForAnonymousFunctions ?? true, + insertSpaceBeforeFunctionParenthesis: config.insertSpaceBeforeFunctionParenthesis ?? false, + insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis ?? false, + insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets ?? false, + insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces ?? true, + insertSpaceAfterOpeningAndBeforeClosingEmptyBraces: config.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces ?? true, + insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces ?? false, + insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces ?? false, + insertSpaceAfterTypeAssertion: config.insertSpaceAfterTypeAssertion ?? false, + placeOpenBraceOnNewLineForFunctions: config.placeOpenBraceOnNewLineForFunctions ?? false, + placeOpenBraceOnNewLineForControlBlocks: config.placeOpenBraceOnNewLineForControlBlocks ?? false, + semicolons: config.semicolons ?? 'ignore', + }; +} + +var syntaxOnlyService = {}; + +Object.defineProperty(syntaxOnlyService, "__esModule", { value: true }); +syntaxOnlyService.createSyntaxOnlyService = createSyntaxOnlyService; +function createSyntaxOnlyService(ts, syntaxOnly) { + let currentProjectVersion = -1; + let fileNames = []; + const scriptInfos = new Map(); + const host = { + getProjectVersion: () => currentProjectVersion.toString(), + getScriptFileNames: () => fileNames, + getScriptSnapshot: fileName => scriptInfos.get(fileName).snapshot, + getScriptKind: fileName => scriptInfos.get(fileName).kind, + getScriptVersion: fileName => scriptInfos.get(fileName).version.toString(), + getCompilationSettings: () => ({}), + getCurrentDirectory: () => '', + getDefaultLibFileName: () => '', + readFile: () => undefined, + fileExists: fileName => scriptInfos.has(fileName), + }; + return { + languageService: syntaxOnly + ? ts.createLanguageService(host, undefined, ts.LanguageServiceMode.Syntactic) + : ts.createLanguageService(host), + updateFile, + }; + function updateFile(fileName, snapshot, scriptKind) { + let scriptInfo = scriptInfos.get(fileName); + if (scriptInfo?.snapshot === snapshot && scriptInfo.kind === scriptKind) { + return; + } + currentProjectVersion++; + scriptInfo = { + snapshot, + kind: scriptKind, + version: (scriptInfo?.version ?? 0) + 1, + }; + const filesChanged = !scriptInfos.has(fileName); + scriptInfos.set(fileName, scriptInfo); + if (filesChanged) { + fileNames = [...scriptInfos.keys()]; + } + } +} + +Object.defineProperty(syntactic, "__esModule", { value: true }); +syntactic.getLanguageServiceByDocument = getLanguageServiceByDocument; +syntactic.create = create$i; +const getFormatCodeSettings_1$3 = getFormatCodeSettings$1; +const shared_1$a = shared; +const syntaxOnlyService_1 = syntaxOnlyService; +const lspConverters_1$4 = lspConverters; +const snapshots = new WeakMap(); +let created; +function getLanguageServiceByDocument(ts, document) { + if (!created) { + created = (0, syntaxOnlyService_1.createSyntaxOnlyService)(ts, true); + } + let cache = snapshots.get(document); + if (!cache || cache[0] !== document.version) { + const snapshot = ts.ScriptSnapshot.fromString(document.getText()); + cache = [document.version, snapshot]; + snapshots.set(document, cache); + created.updateFile(document.uri, cache[1], document.languageId === 'javascript' + ? ts.ScriptKind.JS + : document.languageId === 'javascriptreact' + ? ts.ScriptKind.JSX + : document.languageId === 'typescriptreact' + ? ts.ScriptKind.TSX + : ts.ScriptKind.TS); + } + return { + languageService: created.languageService, + fileName: document.uri, + }; +} +function create$i(ts, { isFormattingEnabled = async (document, context) => { + return await context.env.getConfiguration?.((0, shared_1$a.getConfigTitle)(document) + '.format.enable') ?? true; +}, } = {}) { + return { + name: 'typescript-syntactic', + capabilities: { + autoInsertionProvider: { + triggerCharacters: ['>', '>'], + configurationSections: ['javascript.autoClosingTags', 'typescript.autoClosingTags'], + }, + foldingRangeProvider: true, + selectionRangeProvider: true, + documentSymbolProvider: true, + documentFormattingProvider: true, + documentOnTypeFormattingProvider: { + // https://github.com/microsoft/vscode/blob/ce119308e8fd4cd3f992d42b297588e7abe33a0c/extensions/typescript-language-features/src/languageFeatures/formatting.ts#L99 + triggerCharacters: [';', '}', '\n'], + }, + }, + create(context) { + return { + async provideAutoInsertSnippet(document, selection, change) { + // selection must at end of change + if (document.offsetAt(selection) !== change.rangeOffset + change.text.length) { + return; + } + if ((document.languageId === 'javascriptreact' || document.languageId === 'typescriptreact') + && change.text.endsWith('>') + && (await context.env.getConfiguration?.((0, shared_1$a.getConfigTitle)(document) + '.autoClosingTags') ?? true)) { + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const close = languageService.getJsxClosingTagAtPosition(fileName, document.offsetAt(selection)); + if (close) { + return '$0' + close.newText; + } + } + }, + provideFoldingRanges(document) { + if (!(0, shared_1$a.isTsDocument)(document)) { + return; + } + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const outliningSpans = (0, shared_1$a.safeCall)(() => languageService.getOutliningSpans(fileName)); + if (!outliningSpans) { + return []; + } + return outliningSpans.map(span => (0, lspConverters_1$4.convertOutliningSpan)(span, document)); + }, + provideSelectionRanges(document, positions) { + if (!(0, shared_1$a.isTsDocument)(document)) { + return; + } + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const ranges = positions + .map(position => { + const offset = document.offsetAt(position); + const range = (0, shared_1$a.safeCall)(() => languageService.getSmartSelectionRange(fileName, offset)); + if (!range) { + return; + } + return (0, lspConverters_1$4.convertSelectionRange)(range, document); + }); + if (ranges.every(range => !!range)) { + return ranges; + } + }, + provideDocumentSymbols(document) { + if (!(0, shared_1$a.isTsDocument)(document)) { + return; + } + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const barItems = (0, shared_1$a.safeCall)(() => languageService.getNavigationTree(fileName)); + if (!barItems) { + return []; + } + // The root represents the file. Ignore this when showing in the UI + return barItems.childItems + ?.map(item => (0, lspConverters_1$4.convertNavTree)(item, document)) + .flat() + ?? []; + }, + async provideDocumentFormattingEdits(document, range, options, codeOptions) { + if (!(0, shared_1$a.isTsDocument)(document)) { + return; + } + if (!await isFormattingEnabled(document, context)) { + return; + } + const tsOptions = await (0, getFormatCodeSettings_1$3.getFormatCodeSettings)(context, document, options); + if (codeOptions) { + tsOptions.baseIndentSize = codeOptions.initialIndentLevel * options.tabSize; + } + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const scriptEdits = range + ? (0, shared_1$a.safeCall)(() => languageService.getFormattingEditsForRange(fileName, document.offsetAt(range.start), document.offsetAt(range.end), tsOptions)) + : (0, shared_1$a.safeCall)(() => languageService.getFormattingEditsForDocument(fileName, tsOptions)); + if (!scriptEdits) { + return []; + } + return scriptEdits.map(edit => (0, lspConverters_1$4.convertTextChange)(edit, document)); + }, + async provideOnTypeFormattingEdits(document, position, key, options, codeOptions) { + if (!(0, shared_1$a.isTsDocument)(document)) { + return; + } + if (!await isFormattingEnabled(document, context)) { + return; + } + const tsOptions = await (0, getFormatCodeSettings_1$3.getFormatCodeSettings)(context, document, options); + if (codeOptions) { + tsOptions.baseIndentSize = codeOptions.initialIndentLevel * options.tabSize; + } + const { languageService, fileName } = getLanguageServiceByDocument(ts, document); + const scriptEdits = (0, shared_1$a.safeCall)(() => languageService.getFormattingEditsAfterKeystroke(fileName, document.offsetAt(position), key, tsOptions)); + if (!scriptEdits) { + return []; + } + return scriptEdits.map(edit => (0, lspConverters_1$4.convertTextChange)(edit, document)); + }, + }; + }, + }; +} + +Object.defineProperty(docCommentTemplate, "__esModule", { value: true }); +docCommentTemplate.create = create$h; +const nls = main; +const shared_1$9 = shared; +const lspConverters_1$3 = lspConverters; +const syntactic_1$1 = syntactic; +const localize = nls.loadMessageBundle(); // TODO: not working +const defaultJsDoc = `/**\n * $0\n */`; +function create$h(ts) { + return { + name: 'typescript-doc-comment-template', + capabilities: { + completionProvider: { + triggerCharacters: ['*'], + }, + }, + create() { + return { + provideCompletionItems(document, position) { + if (!(0, shared_1$9.isTsDocument)(document)) { + return; + } + if (!isPotentiallyValidDocCompletionPosition(document, position)) { + return; + } + const { languageService, fileName } = (0, syntactic_1$1.getLanguageServiceByDocument)(ts, document); + const offset = document.offsetAt(position); + const docCommentTemplate = languageService.getDocCommentTemplateAtPosition(fileName, offset); + if (!docCommentTemplate) { + return; + } + let insertText; + // Workaround for #43619 + // docCommentTemplate previously returned undefined for empty jsdoc templates. + // TS 2.7 now returns a single line doc comment, which breaks indentation. + if (docCommentTemplate.newText === '/** */') { + insertText = defaultJsDoc; + } + else { + insertText = templateToSnippet(docCommentTemplate.newText); + } + const item = createCompletionItem$2(document, position, insertText); + return { + isIncomplete: false, + items: [item], + }; + }, + }; + }, + }; +} +function createCompletionItem$2(document, position, insertText) { + const item = { label: '/** */' }; + item.kind = 1; + item.detail = localize('typescript.jsDocCompletionItem.documentation', 'JSDoc comment'); + item.sortText = '\0'; + item.insertTextFormat = 2; + const line = (0, lspConverters_1$3.getLineText)(document, position.line); + const prefix = line.slice(0, position.character).match(/\/\**\s*$/); + const suffix = line.slice(position.character).match(/^\s*\**\//); + const start = { line: position.line, character: position.character + (prefix ? -prefix[0].length : 0) }; + const end = { line: position.line, character: position.character + (suffix ? suffix[0].length : 0) }; + const range = { start, end }; + item.textEdit = { range, newText: insertText }; + return item; +} +function isPotentiallyValidDocCompletionPosition(document, position) { + // Only show the JSdoc completion when the everything before the cursor is whitespace + // or could be the opening of a comment + const line = (0, lspConverters_1$3.getLineText)(document, position.line); + const prefix = line.slice(0, position.character); + if (!/^\s*$|\/\*\*\s*$|^\s*\/\*\*+\s*$/.test(prefix)) { + return false; + } + // And everything after is possibly a closing comment or more whitespace + const suffix = line.slice(position.character); + return /^\s*(\*+\/)?\s*$/.test(suffix); +} +function templateToSnippet(template) { + // TODO: use append placeholder + let snippetIndex = 1; + template = template.replace(/\$/g, '\\$'); + template = template.replace(/^[ \t]*(?=(\/|[ ]\*))/gm, ''); + template = template.replace(/^(\/\*\*\s*\*[ ]*)$/m, x => x + `\$0`); + template = template.replace(/\* @param([ ]\{\S+\})?\s+(\S+)[ \t]*$/gm, (_param, type, post) => { + let out = '* @param '; + if (type === ' {any}' || type === ' {*}') { + out += `{\$\{${snippetIndex++}:*\}} `; + } + else if (type) { + out += type + ' '; + } + out += post + ` \${${snippetIndex++}}`; + return out; + }); + template = template.replace(/\* @returns[ \t]*$/gm, `* @returns \${${snippetIndex++}}`); + return template; +} + +var semantic = {}; + +var out = {}; + +var _4_0 = {}; + +Object.defineProperty(_4_0, "__esModule", { value: true }); +function default_1$5(ts, host, _service) { + var _a, _b; + // @ts-expect-error + const importSuggestionsCache = (_b = (_a = ts.Completions) === null || _a === void 0 ? void 0 : _a.createImportSuggestionsForFileCache) === null || _b === void 0 ? void 0 : _b.call(_a); + // @ts-expect-error + // TODO: crash on 'addListener' from 'node:process', reuse because TS has same problem + host.getImportSuggestionsCache = () => importSuggestionsCache; +} +_4_0.default = default_1$5; + +var _4_4 = {}; + +var moduleSpecifierCache$3 = {}; + +Object.defineProperty(moduleSpecifierCache$3, "__esModule", { value: true }); +moduleSpecifierCache$3.createModuleSpecifierCache = void 0; +// export interface ModuleSpecifierResolutionCacheHost { +// watchNodeModulesForPackageJsonChanges(directoryPath: string): FileWatcher; +// } +function createModuleSpecifierCache$3( +// host: ModuleSpecifierResolutionCacheHost +) { + // let containedNodeModulesWatchers: Map<string, FileWatcher> | undefined; // TODO + let cache; + let currentKey; + const result = { + get(fromFileName, toFileName, preferences) { + if (!cache || currentKey !== key(fromFileName, preferences)) + return undefined; + return cache.get(toFileName); + }, + set(fromFileName, toFileName, preferences, modulePaths, moduleSpecifiers) { + ensureCache(fromFileName, preferences).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isAutoImportable*/ true)); + // If any module specifiers were generated based off paths in node_modules, + // a package.json file in that package was read and is an input to the cached. + // Instead of watching each individual package.json file, set up a wildcard + // directory watcher for any node_modules referenced and clear the cache when + // it sees any changes. + if (moduleSpecifiers) { + for (const p of modulePaths) { + if (p.isInNodeModules) ; + } + } + }, + setModulePaths(fromFileName, toFileName, preferences, modulePaths) { + const cache = ensureCache(fromFileName, preferences); + const info = cache.get(toFileName); + if (info) { + info.modulePaths = modulePaths; + } + else { + cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isAutoImportable*/ undefined)); + } + }, + setIsAutoImportable(fromFileName, toFileName, preferences, isAutoImportable) { + const cache = ensureCache(fromFileName, preferences); + const info = cache.get(toFileName); + if (info) { + info.isAutoImportable = isAutoImportable; + } + else { + cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isAutoImportable)); + } + }, + clear() { + // containedNodeModulesWatchers?.forEach(watcher => watcher.close()); + cache === null || cache === void 0 ? void 0 : cache.clear(); + // containedNodeModulesWatchers?.clear(); + currentKey = undefined; + }, + count() { + return cache ? cache.size : 0; + } + }; + // if (Debug.isDebugging) { + // Object.defineProperty(result, "__cache", { get: () => cache }); + // } + return result; + function ensureCache(fromFileName, preferences) { + const newKey = key(fromFileName, preferences); + if (cache && (currentKey !== newKey)) { + result.clear(); + } + currentKey = newKey; + return cache || (cache = new Map()); + } + function key(fromFileName, preferences) { + return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference}`; + } + function createInfo(modulePaths, moduleSpecifiers, isAutoImportable) { + return { modulePaths, moduleSpecifiers, isAutoImportable }; + } +} +moduleSpecifierCache$3.createModuleSpecifierCache = createModuleSpecifierCache$3; + +var packageJsonCache$2 = {}; + +Object.defineProperty(packageJsonCache$2, "__esModule", { value: true }); +packageJsonCache$2.createPackageJsonCache = packageJsonCache$2.canCreatePackageJsonCache = void 0; +function canCreatePackageJsonCache(ts) { + return 'createPackageJsonInfo' in ts && 'getDirectoryPath' in ts && 'combinePaths' in ts && 'tryFileExists' in ts && 'forEachAncestorDirectory' in ts; +} +packageJsonCache$2.canCreatePackageJsonCache = canCreatePackageJsonCache; +function createPackageJsonCache$2(ts, host) { + const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts; + const packageJsons = new Map(); + const directoriesWithoutPackageJson = new Map(); + return { + addOrUpdate, + // @ts-expect-error + forEach: packageJsons.forEach.bind(packageJsons), + get: packageJsons.get.bind(packageJsons), + delete: fileName => { + packageJsons.delete(fileName); + directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true); + }, + getInDirectory: directory => { + return packageJsons.get(combinePaths(directory, "package.json")) || undefined; + }, + directoryHasPackageJson, + searchDirectoryAndAncestors: directory => { + // @ts-expect-error + forEachAncestorDirectory(directory, ancestor => { + if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) { + return true; + } + const packageJsonFileName = host.toPath(combinePaths(ancestor, "package.json")); + if (tryFileExists(host, packageJsonFileName)) { + addOrUpdate(packageJsonFileName); + } + else { + directoriesWithoutPackageJson.set(ancestor, true); + } + }); + }, + }; + function addOrUpdate(fileName) { + const packageJsonInfo = + // Debug.checkDefined( + createPackageJsonInfo(fileName, host.host); + // ); + packageJsons.set(fileName, packageJsonInfo); + directoriesWithoutPackageJson.delete(getDirectoryPath(fileName)); + } + function directoryHasPackageJson(directory) { + return packageJsons.has(combinePaths(directory, "package.json")) ? -1 /* Ternary.True */ : + directoriesWithoutPackageJson.has(directory) ? 0 /* Ternary.False */ : + 3 /* Ternary.Maybe */; + } +} +packageJsonCache$2.createPackageJsonCache = createPackageJsonCache$2; + +Object.defineProperty(_4_4, "__esModule", { value: true }); +const moduleSpecifierCache_1$2 = moduleSpecifierCache$3; +const packageJsonCache_1$2 = packageJsonCache$2; +function default_1$4(ts, host, service) { + const _createCacheableExportInfoMap = ts.createCacheableExportInfoMap; + const _combinePaths = ts.combinePaths; + const _forEachAncestorDirectory = ts.forEachAncestorDirectory; + const _getDirectoryPath = ts.getDirectoryPath; + const _toPath = ts.toPath; + const _createGetCanonicalFileName = ts.createGetCanonicalFileName; + if (!_createCacheableExportInfoMap + || !_combinePaths + || !_forEachAncestorDirectory + || !_getDirectoryPath + || !_toPath + || !_createGetCanonicalFileName + || !(0, packageJsonCache_1$2.canCreatePackageJsonCache)(ts)) + return; + const moduleSpecifierCache = (0, moduleSpecifierCache_1$2.createModuleSpecifierCache)(); + const exportMapCache = _createCacheableExportInfoMap({ + getCurrentProgram() { + return service.getProgram(); + }, + getPackageJsonAutoImportProvider() { + return service.getProgram(); + }, + }); + const packageJsonCache = (0, packageJsonCache_1$2.createPackageJsonCache)(ts, Object.assign(Object.assign({}, host), { + // @ts-expect-error + host: Object.assign({}, host), toPath })); + // @ts-expect-error + host.getCachedExportInfoMap = () => exportMapCache; + // @ts-expect-error + host.getModuleSpecifierCache = () => moduleSpecifierCache; + // @ts-expect-error + host.getPackageJsonsVisibleToFile = (fileName, rootDir) => { + const rootPath = rootDir && toPath(rootDir); + const filePath = toPath(fileName); + const result = []; + const processDirectory = (directory) => { + switch (packageJsonCache.directoryHasPackageJson(directory)) { + // Sync and check same directory again + case 3 /* Ternary.Maybe */: + packageJsonCache.searchDirectoryAndAncestors(directory); + return processDirectory(directory); + // Check package.json + case -1 /* Ternary.True */: + // const packageJsonFileName = _combinePaths(directory, "package.json"); + // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO + const info = packageJsonCache.getInDirectory(directory); + if (info) + result.push(info); + } + if (rootPath && rootPath === directory) { + return true; + } + }; + _forEachAncestorDirectory(_getDirectoryPath(filePath), processDirectory); + return result; + }; + function toPath(fileName) { + var _a; + return _toPath(fileName, host.getCurrentDirectory(), _createGetCanonicalFileName((_a = host.useCaseSensitiveFileNames) === null || _a === void 0 ? void 0 : _a.call(host))); + } +} +_4_4.default = default_1$4; + +var _4_7 = {}; + +var moduleSpecifierCache$2 = {}; + +Object.defineProperty(moduleSpecifierCache$2, "__esModule", { value: true }); +moduleSpecifierCache$2.createModuleSpecifierCache = moduleSpecifierCache$2.nodeModulesPathPart = void 0; +moduleSpecifierCache$2.nodeModulesPathPart = "/node_modules/"; +function createModuleSpecifierCache$2( +// host: ModuleSpecifierResolutionCacheHost +) { + let cache; + let currentKey; + const result = { + get(fromFileName, toFileName, preferences, options) { + if (!cache || currentKey !== key(fromFileName, preferences, options)) + return undefined; + return cache.get(toFileName); + }, + set(fromFileName, toFileName, preferences, options, modulePaths, moduleSpecifiers) { + ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false)); + // If any module specifiers were generated based off paths in node_modules, + // a package.json file in that package was read and is an input to the cached. + // Instead of watching each individual package.json file, set up a wildcard + // directory watcher for any node_modules referenced and clear the cache when + // it sees any changes. + if (moduleSpecifiers) { + for (const p of modulePaths) { + if (p.isInNodeModules) ; + } + } + }, + setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.modulePaths = modulePaths; + } + else { + cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined)); + } + }, + setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies; + } + else { + cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies)); + } + }, + clear() { + cache === null || cache === void 0 ? void 0 : cache.clear(); + currentKey = undefined; + }, + count() { + return cache ? cache.size : 0; + } + }; + // if (Debug.isDebugging) { + // Object.defineProperty(result, "__cache", { get: () => cache }); + // } + return result; + function ensureCache(fromFileName, preferences, options) { + const newKey = key(fromFileName, preferences, options); + if (cache && (currentKey !== newKey)) { + result.clear(); + } + currentKey = newKey; + return cache || (cache = new Map()); + } + function key(fromFileName, preferences, options) { + return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`; + } + function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) { + return { modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies }; + } +} +moduleSpecifierCache$2.createModuleSpecifierCache = createModuleSpecifierCache$2; + +var packageJsonCache$1 = {}; + +Object.defineProperty(packageJsonCache$1, "__esModule", { value: true }); +packageJsonCache$1.createPackageJsonCache = void 0; +function createPackageJsonCache$1(ts, host) { + const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts; + const packageJsons = new Map(); + const directoriesWithoutPackageJson = new Map(); + return { + addOrUpdate, + forEach: packageJsons.forEach.bind(packageJsons), + get: packageJsons.get.bind(packageJsons), + delete: fileName => { + packageJsons.delete(fileName); + directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true); + }, + getInDirectory: directory => { + return packageJsons.get(combinePaths(directory, "package.json")) || undefined; + }, + directoryHasPackageJson, + searchDirectoryAndAncestors: directory => { + forEachAncestorDirectory(directory, (ancestor) => { + if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) { + return true; + } + const packageJsonFileName = host.toPath(combinePaths(ancestor, "package.json")); + if (tryFileExists(host, packageJsonFileName)) { + addOrUpdate(packageJsonFileName); + } + else { + directoriesWithoutPackageJson.set(ancestor, true); + } + }); + }, + }; + function addOrUpdate(fileName) { + const packageJsonInfo = + // Debug.checkDefined( + createPackageJsonInfo(fileName, host.host); + // ); + packageJsons.set(fileName, packageJsonInfo); + directoriesWithoutPackageJson.delete(getDirectoryPath(fileName)); + } + function directoryHasPackageJson(directory) { + return packageJsons.has(combinePaths(directory, "package.json")) ? -1 /* Ternary.True */ : + directoriesWithoutPackageJson.has(directory) ? 0 /* Ternary.False */ : + 3 /* Ternary.Maybe */; + } +} +packageJsonCache$1.createPackageJsonCache = createPackageJsonCache$1; + +Object.defineProperty(_4_7, "__esModule", { value: true }); +const moduleSpecifierCache_1$1 = moduleSpecifierCache$2; +const packageJsonCache_1$1 = packageJsonCache$1; +function default_1$3(ts, host, service) { + const _createCacheableExportInfoMap = ts.createCacheableExportInfoMap; + const _combinePaths = ts.combinePaths; + const _forEachAncestorDirectory = ts.forEachAncestorDirectory; + const _getDirectoryPath = ts.getDirectoryPath; + const _toPath = ts.toPath; + const _createGetCanonicalFileName = ts.createGetCanonicalFileName; + if (!_createCacheableExportInfoMap + || !_combinePaths + || !_forEachAncestorDirectory + || !_getDirectoryPath + || !_toPath + || !_createGetCanonicalFileName) + return; + const moduleSpecifierCache = (0, moduleSpecifierCache_1$1.createModuleSpecifierCache)(); + const exportMapCache = _createCacheableExportInfoMap({ + getCurrentProgram() { + return service.getProgram(); + }, + getPackageJsonAutoImportProvider() { + return service.getProgram(); + }, + getGlobalTypingsCacheLocation() { + return undefined; + }, + }); + const packageJsonCache = (0, packageJsonCache_1$1.createPackageJsonCache)(ts, Object.assign(Object.assign({}, host), { + // @ts-expect-error + host: Object.assign({}, host), toPath })); + // @ts-expect-error + host.getCachedExportInfoMap = () => exportMapCache; + // @ts-expect-error + host.getModuleSpecifierCache = () => moduleSpecifierCache; + // @ts-expect-error + host.getPackageJsonsVisibleToFile = (fileName, rootDir) => { + const rootPath = rootDir && toPath(rootDir); + const filePath = toPath(fileName); + const result = []; + const processDirectory = (directory) => { + switch (packageJsonCache.directoryHasPackageJson(directory)) { + // Sync and check same directory again + case 3 /* Ternary.Maybe */: + packageJsonCache.searchDirectoryAndAncestors(directory); + return processDirectory(directory); + // Check package.json + case -1 /* Ternary.True */: + // const packageJsonFileName = _combinePaths(directory, "package.json"); + // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO + const info = packageJsonCache.getInDirectory(directory); + if (info) + result.push(info); + } + if (rootPath && rootPath === directory) { + return true; + } + }; + _forEachAncestorDirectory(_getDirectoryPath(filePath), processDirectory); + return result; + }; + function toPath(fileName) { + var _a; + return _toPath(fileName, host.getCurrentDirectory(), _createGetCanonicalFileName((_a = host.useCaseSensitiveFileNames) === null || _a === void 0 ? void 0 : _a.call(host))); + } +} +_4_7.default = default_1$3; + +var _5_0 = {}; + +var projectService$1 = {}; + +var packageJsonCache = {}; + +Object.defineProperty(packageJsonCache, "__esModule", { value: true }); +packageJsonCache.createPackageJsonCache = void 0; +function createPackageJsonCache(ts, host) { + const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts; + const packageJsons = new Map(); + const directoriesWithoutPackageJson = new Map(); + return { + addOrUpdate, + // @ts-expect-error + forEach: packageJsons.forEach.bind(packageJsons), + get: packageJsons.get.bind(packageJsons), + delete: (fileName) => { + packageJsons.delete(fileName); + directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true); + }, + getInDirectory: (directory) => { + return packageJsons.get(combinePaths(directory, 'package.json')) || undefined; + }, + directoryHasPackageJson, + searchDirectoryAndAncestors: (directory) => { + // @ts-expect-error + forEachAncestorDirectory(directory, (ancestor) => { + if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) { + return true; + } + const packageJsonFileName = host.toPath(combinePaths(ancestor, 'package.json')); + if (tryFileExists(host, packageJsonFileName)) { + addOrUpdate(packageJsonFileName); + } + else { + directoriesWithoutPackageJson.set(ancestor, true); + } + }); + }, + }; + function addOrUpdate(fileName) { + const packageJsonInfo = /*Debug.checkDefined( */ createPackageJsonInfo(fileName, host.host); /*);*/ + packageJsons.set(fileName, packageJsonInfo); + directoriesWithoutPackageJson.delete(getDirectoryPath(fileName)); + } + function directoryHasPackageJson(directory) { + return packageJsons.has(combinePaths(directory, 'package.json')) + ? -1 /* Ternary.True */ + : directoriesWithoutPackageJson.has(directory) + ? 0 /* Ternary.False */ + : 3 /* Ternary.Maybe */; + } +} +packageJsonCache.createPackageJsonCache = createPackageJsonCache; + +Object.defineProperty(projectService$1, "__esModule", { value: true }); +projectService$1.createProjectService = void 0; +const packageJsonCache_1 = packageJsonCache; +function createProjectService(ts, sys, currentDirectory, hostConfiguration, serverMode) { + const { toPath, getNormalizedAbsolutePath, normalizePath: toNormalizedPath, createGetCanonicalFileName, forEachAncestorDirectory, getDirectoryPath, } = ts; + const projectService = { + serverMode, + host: sys, + currentDirectory: toNormalizedPath(currentDirectory), + toCanonicalFileName: createGetCanonicalFileName(sys.useCaseSensitiveFileNames), + toPath(fileName) { + return toPath(fileName, this.currentDirectory, this.toCanonicalFileName); + }, + getExecutingFilePath() { + return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath()); + }, + getNormalizedAbsolutePath(fileName) { + return getNormalizedAbsolutePath(fileName, this.host.getCurrentDirectory()); + }, + packageJsonCache: undefined, + getPackageJsonsVisibleToFile(fileName, rootDir) { + const packageJsonCache = this.packageJsonCache; + const rootPath = rootDir && this.toPath(rootDir); + const filePath = this.toPath(fileName); + const result = []; + const processDirectory = (directory) => { + switch (packageJsonCache.directoryHasPackageJson(directory)) { + // Sync and check same directory again + case 3 /* Ternary.Maybe */: + packageJsonCache.searchDirectoryAndAncestors(directory); + return processDirectory(directory); + // Check package.json + case -1 /* Ternary.True */: + // const packageJsonFileName = _combinePaths(directory, "package.json"); + // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO + const info = packageJsonCache.getInDirectory(directory); + if (info) + result.push(info); + } + if (rootPath && rootPath === directory) { + return true; + } + }; + forEachAncestorDirectory(getDirectoryPath(filePath), processDirectory); + return result; + }, + includePackageJsonAutoImports() { + switch (hostConfiguration.preferences.includePackageJsonAutoImports) { + case 'on': return 1 /* PackageJsonAutoImportPreference.On */; + case 'off': return 0 /* PackageJsonAutoImportPreference.Off */; + default: return 2 /* PackageJsonAutoImportPreference.Auto */; + } + }, + fileExists(fileName) { + return this.host.fileExists(fileName); + }, + }; + projectService.packageJsonCache = (0, packageJsonCache_1.createPackageJsonCache)(ts, projectService); + return projectService; +} +projectService$1.createProjectService = createProjectService; + +var project$2 = {}; + +var moduleSpecifierCache$1 = {}; + +Object.defineProperty(moduleSpecifierCache$1, "__esModule", { value: true }); +moduleSpecifierCache$1.createModuleSpecifierCache = moduleSpecifierCache$1.nodeModulesPathPart = void 0; +moduleSpecifierCache$1.nodeModulesPathPart = "/node_modules/"; +function createModuleSpecifierCache$1( +// host: ModuleSpecifierResolutionCacheHost +) { + let cache; + let currentKey; + const result = { + get(fromFileName, toFileName, preferences, options) { + if (!cache || currentKey !== key(fromFileName, preferences, options)) + return undefined; + return cache.get(toFileName); + }, + set(fromFileName, toFileName, preferences, options, modulePaths, moduleSpecifiers) { + ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false)); + // If any module specifiers were generated based off paths in node_modules, + // a package.json file in that package was read and is an input to the cached. + // Instead of watching each individual package.json file, set up a wildcard + // directory watcher for any node_modules referenced and clear the cache when + // it sees any changes. + if (moduleSpecifiers) { + for (const p of modulePaths) { + if (p.isInNodeModules) ; + } + } + }, + setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.modulePaths = modulePaths; + } + else { + cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined)); + } + }, + setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies; + } + else { + cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies)); + } + }, + clear() { + cache === null || cache === void 0 ? void 0 : cache.clear(); + currentKey = undefined; + }, + count() { + return cache ? cache.size : 0; + } + }; + // if (Debug.isDebugging) { + // Object.defineProperty(result, "__cache", { get: () => cache }); + // } + return result; + function ensureCache(fromFileName, preferences, options) { + const newKey = key(fromFileName, preferences, options); + if (cache && (currentKey !== newKey)) { + result.clear(); + } + currentKey = newKey; + return cache || (cache = new Map()); + } + function key(fromFileName, preferences, options) { + return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`; + } + function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) { + return { modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies }; + } +} +moduleSpecifierCache$1.createModuleSpecifierCache = createModuleSpecifierCache$1; + +var autoImportProviderProject = {}; + +var hasRequiredAutoImportProviderProject; + +function requireAutoImportProviderProject () { + if (hasRequiredAutoImportProviderProject) return autoImportProviderProject; + hasRequiredAutoImportProviderProject = 1; + Object.defineProperty(autoImportProviderProject, "__esModule", { value: true }); + autoImportProviderProject.createAutoImportProviderProjectStatic = void 0; + const project_1 = requireProject(); + function createAutoImportProviderProjectStatic(tsBase, host, createLanguageService) { + const ts = tsBase; + const { combinePaths, inferredTypesContainingFile, arrayFrom, resolvePackageNameToPackageJson, concatenate, forEach, startsWith, getEntrypointsFromPackageJsonInfo, mapDefined, timestamp, } = ts; + return { + maxDependencies: 10, + compilerOptionsOverrides: { + diagnostics: false, + skipLibCheck: true, + sourceMap: false, + types: ts.emptyArray, + lib: ts.emptyArray, + noLib: true, + }, + getRootFileNames(dependencySelection, hostProject, moduleResolutionHost, compilerOptions) { + var _a, _b; + if (!dependencySelection) { + return ts.emptyArray; + } + const program = hostProject.getCurrentProgram(); + if (!program) { + return ts.emptyArray; + } + const start = timestamp(); + let dependencyNames; + let rootNames; + const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile); + const packageJsons = hostProject.getPackageJsonsForAutoImport(combinePaths(hostProject.currentDirectory, rootFileName)); + for (const packageJson of packageJsons) { + (_a = packageJson.dependencies) === null || _a === void 0 ? void 0 : _a.forEach((_, dependenyName) => addDependency(dependenyName)); + (_b = packageJson.peerDependencies) === null || _b === void 0 ? void 0 : _b.forEach((_, dependencyName) => addDependency(dependencyName)); + } + let dependenciesAdded = 0; + if (dependencyNames) { + const symlinkCache = hostProject.getSymlinkCache(); + for (const name of arrayFrom(dependencyNames.keys())) { + // Avoid creating a large project that would significantly slow down time to editor interactivity + if (dependencySelection === 2 /* PackageJsonAutoImportPreference.Auto */ && dependenciesAdded > this.maxDependencies) { + hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`); + return ts.emptyArray; + } + // 1. Try to load from the implementation package. For many dependencies, the + // package.json will exist, but the package will not contain any typings, + // so `entrypoints` will be undefined. In that case, or if the dependency + // is missing altogether, we will move on to trying the @types package (2). + const packageJson = resolvePackageNameToPackageJson(name, hostProject.currentDirectory, compilerOptions, moduleResolutionHost, + // @ts-expect-error + program.getModuleResolutionCache()); + if (packageJson) { + const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache); + if (entrypoints) { + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += entrypoints.length ? 1 : 0; + continue; + } + } + // 2. Try to load from the @types package in the tree and in the global + // typings cache location, if enabled. + // @ts-expect-error + const done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], (directory) => { + if (directory) { + const typesPackageJson = resolvePackageNameToPackageJson(`@types/${name}`, directory, compilerOptions, moduleResolutionHost, + // @ts-expect-error + program.getModuleResolutionCache()); + if (typesPackageJson) { + const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache); + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += (entrypoints === null || entrypoints === void 0 ? void 0 : entrypoints.length) ? 1 : 0; + return true; + } + } + }); + if (done) + continue; + // 3. If the @types package did not exist and the user has settings that + // allow processing JS from node_modules, go back to the implementation + // package and load the JS. + if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) { + const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache, /*allowJs*/ true); + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += (entrypoints === null || entrypoints === void 0 ? void 0 : entrypoints.length) ? 1 : 0; + } + } + } + if (rootNames === null || rootNames === void 0 ? void 0 : rootNames.length) { + hostProject.log(`AutoImportProviderProject: found ${rootNames.length} root files in ${dependenciesAdded} dependencies in ${timestamp() - start} ms`); + } + return rootNames || ts.emptyArray; + function addDependency(dependency) { + if (!startsWith(dependency, '@types/')) { + (dependencyNames || (dependencyNames = new Set())).add(dependency); + } + } + function getRootNamesFromPackageJson(packageJson, program, symlinkCache, resolveJs) { + var _a; + const entrypoints = getEntrypointsFromPackageJsonInfo(packageJson, compilerOptions, moduleResolutionHost, + // @ts-expect-error + program.getModuleResolutionCache(), resolveJs); + if (entrypoints) { + const real = (_a = moduleResolutionHost.realpath) === null || _a === void 0 ? void 0 : _a.call(moduleResolutionHost, packageJson.packageDirectory); + const isSymlink = real && real !== packageJson.packageDirectory; + if (isSymlink) { + symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, { + real, + realPath: hostProject.toPath(real), + }); + } + // @ts-expect-error + return mapDefined(entrypoints, (entrypoint) => { + const resolvedFileName = isSymlink ? entrypoint.replace(packageJson.packageDirectory, real) : entrypoint; + if (!program.getSourceFile(resolvedFileName) && !(isSymlink && program.getSourceFile(entrypoint))) { + return resolvedFileName; + } + }); + } + } + }, + create(dependencySelection, hostProject, moduleResolutionHost) { + if (dependencySelection === 0 /* PackageJsonAutoImportPreference.Off */) { + return undefined; + } + const compilerOptions = Object.assign(Object.assign({}, hostProject.getCompilerOptions()), this.compilerOptionsOverrides); + let rootNames = this.getRootFileNames(dependencySelection, hostProject, moduleResolutionHost, compilerOptions); + if (!rootNames.length) { + return undefined; + } + return createAutoImportProviderProject(tsBase, host, createLanguageService, { self: this, hostProject, rootNames, compilerOptions }); + } + }; + } + autoImportProviderProject.createAutoImportProviderProjectStatic = createAutoImportProviderProjectStatic; + function createAutoImportProviderProject(tsBase, host, createLanguageService, options) { + const { self, rootNames, compilerOptions, hostProject } = options; + const ts = tsBase; + const { some } = ts; + const project = Object.assign(Object.assign({}, (0, project_1.createProject)(tsBase, host, createLanguageService, { + projectService: hostProject.projectService, + currentDirectory: hostProject.currentDirectory, + compilerOptions, + })), { projectVersion: 0, getProjectVersion() { + return this.projectVersion.toString(); + }, rootFileNames: rootNames, hostProject, + isEmpty() { + return !some(this.rootFileNames); + }, + isOrphan() { + return true; + }, + updateGraph() { + var _a; + let rootFileNames = this.rootFileNames; + if (!rootFileNames) { + rootFileNames = self.getRootFileNames(this.hostProject.includePackageJsonAutoImports(), this.hostProject, this.hostProject.getModuleResolutionHostForAutoImportProvider(), this.getCompilationSettings()); + } + this.rootFileNames = rootFileNames; + const oldProgram = this.getCurrentProgram(); + this.program = (_a = this.languageService) === null || _a === void 0 ? void 0 : _a.getProgram(); + this.dirty = false; + if (oldProgram && oldProgram !== this.getCurrentProgram()) { + this.hostProject.clearCachedExportInfoMap(); + } + }, + scheduleInvalidateResolutionsOfFailedLookupLocations() { + // Invalidation will happen on-demand as part of updateGraph + return; + }, + hasRoots() { + var _a; + return !!((_a = this.rootFileNames) === null || _a === void 0 ? void 0 : _a.length); + }, + markAsDirty() { + if (!this.dirty) { + this.rootFileNames = undefined; + this.projectVersion++; + this.dirty = true; + } + }, + getScriptFileNames() { + return this.rootFileNames || ts.emptyArray; + }, + getLanguageService() { + throw new Error("AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`."); + }, + onAutoImportProviderSettingsChanged() { + throw new Error("AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead."); + }, + onPackageJsonChange() { + throw new Error("package.json changes should be notified on an AutoImportProvider's host project"); + }, + getModuleResolutionHostForAutoImportProvider() { + throw new Error("AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead."); + }, + includePackageJsonAutoImports() { + return 0 /* PackageJsonAutoImportPreference.Off */; + }, + getTypeAcquisition() { + return { enable: false }; + }, + getSymlinkCache() { + return this.hostProject.getSymlinkCache(); + }, + getModuleResolutionCache() { + var _a, _b; + // @ts-expect-error + return (_b = (_a = this.hostProject.languageService) === null || _a === void 0 ? void 0 : _a.getProgram()) === null || _b === void 0 ? void 0 : _b.getModuleResolutionCache(); + } }); + return (0, project_1.initProject)(project, new Proxy(host, { + get(target, key) { + return key in project ? project[key] : target[key]; + }, + set(_target, key, value) { + project[key] = value; + return true; + } + }), createLanguageService); + } + return autoImportProviderProject; +} + +var hasRequiredProject; + +function requireProject () { + if (hasRequiredProject) return project$2; + hasRequiredProject = 1; + Object.defineProperty(project$2, "__esModule", { value: true }); + project$2.initProject = project$2.createProject = void 0; + const moduleSpecifierCache_1 = moduleSpecifierCache$1; + const autoImportProviderProject_1 = requireAutoImportProviderProject(); + function createProject(ts, host, createLanguageService, options) { + var _a; + const { combinePaths, inferredTypesContainingFile, createSymlinkCache, toPath, createCacheableExportInfoMap, timestamp, isInsideNodeModules, LanguageServiceMode, } = ts; + const AutoImportProviderProject = (0, autoImportProviderProject_1.createAutoImportProviderProjectStatic)(ts, host, createLanguageService); + const { projectService, compilerOptions, currentDirectory } = options; + function updateProjectIfDirty(project) { + return project.dirty && project.updateGraph(); + } + return { + dirty: false, + hostProject: undefined, + languageServiceEnabled: true, + languageService: undefined, + projectService, + getCanonicalFileName: projectService.toCanonicalFileName, + exportMapCache: undefined, + getCachedExportInfoMap() { + return (this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this))); + }, + clearCachedExportInfoMap() { + var _a; + (_a = this.exportMapCache) === null || _a === void 0 ? void 0 : _a.clear(); + }, + moduleSpecifierCache: ((_a = options.createModuleSpecifierCache) !== null && _a !== void 0 ? _a : moduleSpecifierCache_1.createModuleSpecifierCache)(), + getModuleSpecifierCache() { + return this.moduleSpecifierCache; + }, + compilerOptions, + getCompilationSettings() { + return this.compilerOptions; + }, + getCompilerOptions() { + return this.compilerOptions; + }, + program: undefined, + getCurrentProgram() { + return this.program; + }, + currentDirectory: projectService.getNormalizedAbsolutePath(currentDirectory || ''), + getCurrentDirectory() { + return this.currentDirectory; + }, + symlinks: undefined, + getSymlinkCache() { + if (!this.symlinks) { + this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName); + } + if (this.program && !this.symlinks.hasProcessedResolutions()) { + this.symlinks.setSymlinksFromResolutions(this.program.getSourceFiles(), + // @ts-expect-error + this.program.getAutomaticTypeDirectiveResolutions()); + } + return this.symlinks; + }, + packageJsonsForAutoImport: undefined, + getPackageJsonsForAutoImport(rootDir) { + const packageJsons = this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir); + this.packageJsonsForAutoImport = new Set(packageJsons.map((p) => p.fileName)); + return packageJsons; + }, + getPackageJsonsVisibleToFile(fileName, rootDir) { + return this.projectService.getPackageJsonsVisibleToFile(fileName, rootDir); + }, + getModuleResolutionHostForAutoImportProvider() { + var _a; + if (this.program) { + return { + // @ts-expect-error + fileExists: this.program.fileExists, + // @ts-expect-error + directoryExists: this.program.directoryExists, + // @ts-expect-error + realpath: this.program.realpath || ((_a = this.projectService.host.realpath) === null || _a === void 0 ? void 0 : _a.bind(this.projectService.host)), + getCurrentDirectory: this.getCurrentDirectory.bind(this), + readFile: this.projectService.host.readFile.bind(this.projectService.host), + getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host), + // trace: this.projectService.host.trace?.bind(this.projectService.host), + trace: () => { }, + // @ts-expect-error + useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(), + }; + } + return this.projectService.host; + }, + autoImportProviderHost: undefined, + getPackageJsonAutoImportProvider() { + if (this.autoImportProviderHost === false) { + return undefined; + } + if (this.projectService.serverMode !== LanguageServiceMode.Semantic) { + this.autoImportProviderHost = false; + return undefined; + } + if (this.autoImportProviderHost) { + updateProjectIfDirty(this.autoImportProviderHost); + if (this.autoImportProviderHost.isEmpty()) { + this.autoImportProviderHost.close(); + this.autoImportProviderHost = undefined; + return undefined; + } + return this.autoImportProviderHost.getCurrentProgram(); + } + const dependencySelection = projectService.includePackageJsonAutoImports(); + if (dependencySelection) { + // tracing?.push(tracing.Phase.Session, "getPackageJsonAutoImportProvider"); + const start = timestamp(); + this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getModuleResolutionHostForAutoImportProvider()); + if (this.autoImportProviderHost) { + updateProjectIfDirty(this.autoImportProviderHost); + this.sendPerformanceEvent('CreatePackageJsonAutoImportProvider', timestamp() - start); + // tracing?.pop(); + return this.autoImportProviderHost.getCurrentProgram(); + } + // tracing?.pop(); + } + }, + includePackageJsonAutoImports() { + if (this.projectService.includePackageJsonAutoImports() === 0 /* PackageJsonAutoImportPreference.Off */ || + !this.languageServiceEnabled || + isInsideNodeModules(this.currentDirectory) /* || + !this.isDefaultProjectForOpenFiles()*/) { + return 0 /* PackageJsonAutoImportPreference.Off */; + } + return this.projectService.includePackageJsonAutoImports(); + }, + close() { }, + log(_message) { }, + sendPerformanceEvent(_kind, _durationMs) { }, + toPath(fileName) { + return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName); + }, + getGlobalTypingsCacheLocation() { + return undefined; + }, + useSourceOfProjectReferenceRedirect() { + return !this.getCompilerOptions().disableSourceOfProjectReferenceRedirect; + }, + onAutoImportProviderSettingsChanged() { + var _a; + if (this.autoImportProviderHost === false) { + this.autoImportProviderHost = undefined; + } + else { + (_a = this.autoImportProviderHost) === null || _a === void 0 ? void 0 : _a.markAsDirty(); + } + }, + }; + } + project$2.createProject = createProject; + function initProject(project, host, createLanguageService) { + const languageService = createLanguageService(host); + project.languageService = languageService; + project.program = languageService.getProgram(); + return project; + } + project$2.initProject = initProject; + return project$2; +} + +Object.defineProperty(_5_0, "__esModule", { value: true }); +const projectService_1 = projectService$1; +const project_1$4 = requireProject(); +// only create the once for all hosts, as this will improve performance as the internal cache can be reused +let projectService; +const projects = new Set(); +function default_1$2(ts, sys, host, createLanguageService, _createProject = project_1$4.createProject) { + const hostConfiguration = { preferences: { includePackageJsonAutoImports: 'auto' } }; + if (!projectService) { + projectService = (0, projectService_1.createProjectService)(ts, sys, host.getCurrentDirectory(), hostConfiguration, ts.LanguageServiceMode.Semantic); + } + const project = _createProject(ts, host, createLanguageService, { + projectService, + currentDirectory: host.getCurrentDirectory(), + compilerOptions: host.getCompilationSettings(), + }); + const proxyMethods = [ + 'getCachedExportInfoMap', + 'getModuleSpecifierCache', + 'getGlobalTypingsCacheLocation', + 'getSymlinkCache', + 'getPackageJsonsVisibleToFile', + 'getPackageJsonAutoImportProvider', + 'includePackageJsonAutoImports', + 'useSourceOfProjectReferenceRedirect' + ]; + proxyMethods.forEach(key => host[key] = project[key].bind(project)); + (0, project_1$4.initProject)(project, host, createLanguageService); + projects.add(project); + return { + languageService: project.languageService, + setPreferences(newPreferences) { + let onAutoImportProviderSettingsChanged = newPreferences.includePackageJsonAutoImports !== hostConfiguration.preferences.includePackageJsonAutoImports; + hostConfiguration.preferences = newPreferences; + if (onAutoImportProviderSettingsChanged) { + project.onAutoImportProviderSettingsChanged(); + } + }, + projectUpdated(path) { + projects.forEach(projectToUpdate => { + var _a, _b, _c; + if (project === projectToUpdate || !projectToUpdate.autoImportProviderHost) + return; + const realPaths = [...(_c = (_b = (_a = projectToUpdate.symlinks) === null || _a === void 0 ? void 0 : _a.getSymlinkedDirectoriesByRealpath()) === null || _b === void 0 ? void 0 : _b.keys()) !== null && _c !== void 0 ? _c : []] + .map(name => projectToUpdate.projectService.getNormalizedAbsolutePath(name)); + if (realPaths.includes(projectToUpdate.projectService.toCanonicalFileName(path))) { + projectToUpdate.autoImportProviderHost.markAsDirty(); + } + }); + }, + }; +} +_5_0.default = default_1$2; + +var _5_3 = {}; + +var project$1 = {}; + +Object.defineProperty(project$1, "__esModule", { value: true }); +project$1.createProject = void 0; +const project_1$3 = requireProject(); +function createProject$1(ts, host, createLanguageService, options) { + const { createSymlinkCache, ensureTrailingDirectorySeparator } = ts; + const project = (0, project_1$3.createProject)(ts, host, createLanguageService, options); + project.getSymlinkCache = () => { + if (!project.symlinks) { + project.symlinks = createSymlinkCache(project.getCurrentDirectory(), project.getCanonicalFileName); + const setSymlinkedDirectory = project.symlinks.setSymlinkedDirectory; + project.symlinks.setSymlinkedDirectory = (symlink, real) => { + if (typeof real === 'object') { + real.real = ensureTrailingDirectorySeparator(real.real); + real.realPath = ensureTrailingDirectorySeparator(real.realPath); + } + setSymlinkedDirectory(symlink, real); + }; + } + if (project.program && !project.symlinks.hasProcessedResolutions()) { + project.symlinks.setSymlinksFromResolutions( + // @ts-expect-error + project.program.forEachResolvedModule, + // @ts-expect-error + project.program.forEachResolvedTypeReferenceDirective, + // @ts-expect-error + project.program.getAutomaticTypeDirectiveResolutions()); + } + return project.symlinks; + }; + return project; +} +project$1.createProject = createProject$1; + +Object.defineProperty(_5_3, "__esModule", { value: true }); +const _5_0_1$2 = _5_0; +const project_1$2 = project$1; +function default_1$1(ts, sys, host, createLanguageService) { + return (0, _5_0_1$2.default)(ts, sys, host, createLanguageService, project_1$2.createProject); +} +_5_3.default = default_1$1; + +var _5_5 = {}; + +var project = {}; + +var moduleSpecifierCache = {}; + +Object.defineProperty(moduleSpecifierCache, "__esModule", { value: true }); +moduleSpecifierCache.createModuleSpecifierCache = void 0; +function createModuleSpecifierCache( +// host: ModuleSpecifierResolutionCacheHost +) { + let cache; + let currentKey; + const result = { + get(fromFileName, toFileName, preferences, options) { + if (!cache || currentKey !== key(fromFileName, preferences, options)) + return undefined; + return cache.get(toFileName); + }, + set(fromFileName, toFileName, preferences, options, kind, modulePaths, moduleSpecifiers) { + ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(kind, modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false)); + // If any module specifiers were generated based off paths in node_modules, + // a package.json file in that package was read and is an input to the cached. + // Instead of watching each individual package.json file, set up a wildcard + // directory watcher for any node_modules referenced and clear the cache when + // it sees any changes. + if (moduleSpecifiers) { + for (const p of modulePaths) { + if (p.isInNodeModules) ; + } + } + }, + setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.modulePaths = modulePaths; + } + else { + cache.set(toFileName, createInfo(/*kind*/ undefined, modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined)); + } + }, + setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) { + const cache = ensureCache(fromFileName, preferences, options); + const info = cache.get(toFileName); + if (info) { + info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies; + } + else { + cache.set(toFileName, createInfo(/*kind*/ undefined, /*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies)); + } + }, + clear() { + cache === null || cache === void 0 ? void 0 : cache.clear(); + currentKey = undefined; + }, + count() { + return cache ? cache.size : 0; + } + }; + // if (Debug.isDebugging) { + // Object.defineProperty(result, "__cache", { get: () => cache }); + // } + return result; + function ensureCache(fromFileName, preferences, options) { + const newKey = key(fromFileName, preferences, options); + if (cache && (currentKey !== newKey)) { + result.clear(); + } + currentKey = newKey; + return cache || (cache = new Map()); + } + function key(fromFileName, preferences, options) { + return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`; + } + function createInfo(kind, modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) { + return { kind, modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies }; + } +} +moduleSpecifierCache.createModuleSpecifierCache = createModuleSpecifierCache; + +Object.defineProperty(project, "__esModule", { value: true }); +project.createProject = void 0; +const project_1$1 = project$1; +const moduleSpecifierCache_1 = moduleSpecifierCache; +function createProject(ts, host, createLanguageService, options) { + // @ts-expect-error + options.createModuleSpecifierCache = moduleSpecifierCache_1.createModuleSpecifierCache; + return (0, project_1$1.createProject)(ts, host, createLanguageService, options); +} +project.createProject = createProject; + +Object.defineProperty(_5_5, "__esModule", { value: true }); +const _5_0_1$1 = _5_0; +const project_1 = project; +function default_1(ts, sys, host, createLanguageService) { + return (0, _5_0_1$1.default)(ts, sys, host, createLanguageService, project_1.createProject); +} +_5_5.default = default_1; + +Object.defineProperty(out, "__esModule", { value: true }); +out.createLanguageService = void 0; +const semver$1 = semver$3; +const _4_0_1 = _4_0; +const _4_4_1 = _4_4; +const _4_7_1 = _4_7; +const _5_0_1 = _5_0; +const _5_3_1 = _5_3; +const _5_5_1 = _5_5; +function createLanguageService(ts, sys, host, createLanguageService) { + if (semver$1.gte(ts.version, '5.5.1')) { + return (0, _5_5_1.default)(ts, sys, host, createLanguageService); + } + else if (semver$1.gte(ts.version, '5.3.0')) { + return (0, _5_3_1.default)(ts, sys, host, createLanguageService); + } + else if (semver$1.gte(ts.version, '5.0.0')) { + return (0, _5_0_1.default)(ts, sys, host, createLanguageService); + } + else if (semver$1.gte(ts.version, '4.7.0')) { + const service = createLanguageService(host); + (0, _4_7_1.default)(ts, host, service); + return { languageService: service }; + } + else if (semver$1.gte(ts.version, '4.4.0')) { + const service = createLanguageService(host); + (0, _4_4_1.default)(ts, host, service); + return { languageService: service }; + } + else if (semver$1.gte(ts.version, '4.0.0')) { + const service = createLanguageService(host); + (0, _4_0_1.default)(ts, host, service); + return { languageService: service }; + } + return { languageService: createLanguageService(host) }; +} +out.createLanguageService = createLanguageService; + +var getUserPreferences$1 = {}; + +Object.defineProperty(getUserPreferences$1, "__esModule", { value: true }); +getUserPreferences$1.getUserPreferences = getUserPreferences; +const path$1 = pathBrowserify; +const shared_1$8 = shared; +const vscode_uri_1$d = umdExports; +async function getUserPreferences(ctx, document) { + let currentDirectory = ''; + if (ctx.project.typescript) { + currentDirectory = ctx.project.typescript.languageServiceHost.getCurrentDirectory(); + } + const uri = vscode_uri_1$d.URI.parse(document.uri); + const documentUri = ctx.decodeEmbeddedDocumentUri(uri)?.[0] ?? uri; + const config = await ctx.env.getConfiguration?.((0, shared_1$8.getConfigTitle)(document)) ?? {}; + const preferencesConfig = config?.preferences ?? {}; + const preferences = { + ...config.unstable ?? {}, + quotePreference: getQuoteStylePreference(preferencesConfig), + importModuleSpecifierPreference: getImportModuleSpecifierPreference(preferencesConfig), + importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(preferencesConfig), + jsxAttributeCompletionStyle: getJsxAttributeCompletionStyle(preferencesConfig), + allowTextChangesInNewFiles: documentUri.scheme === 'file', + providePrefixAndSuffixTextForRename: (preferencesConfig.renameShorthandProperties ?? true) === false ? false : (preferencesConfig.useAliasesForRenames ?? true), + allowRenameOfImportPath: true, + includeAutomaticOptionalChainCompletions: config.suggest?.includeAutomaticOptionalChainCompletions ?? true, + provideRefactorNotApplicableReason: true, + generateReturnInDocTemplate: config.suggest?.jsdoc?.generateReturns ?? true, + includeCompletionsForImportStatements: config.suggest?.includeCompletionsForImportStatements ?? true, + includeCompletionsWithSnippetText: config.suggest?.includeCompletionsWithSnippetText ?? true, + includeCompletionsWithClassMemberSnippets: config.suggest?.classMemberSnippets?.enabled ?? true, + includeCompletionsWithObjectLiteralMethodSnippets: config.suggest?.objectLiteralMethodSnippets?.enabled ?? true, + autoImportFileExcludePatterns: getAutoImportFileExcludePatternsPreference(preferencesConfig, currentDirectory), + useLabelDetailsInCompletionEntries: true, + allowIncompleteCompletions: true, + displayPartsForJSDoc: true, + // inlay hints + includeInlayParameterNameHints: getInlayParameterNameHintsPreference(config), + includeInlayParameterNameHintsWhenArgumentMatchesName: !(config.inlayHints?.parameterNames?.suppressWhenArgumentMatchesName ?? true), + includeInlayFunctionParameterTypeHints: config.inlayHints?.parameterTypes?.enabled ?? false, + includeInlayVariableTypeHints: config.inlayHints?.variableTypes?.enabled ?? false, + includeInlayVariableTypeHintsWhenTypeMatchesName: !(config.inlayHints?.variableTypes?.suppressWhenTypeMatchesName ?? true), + includeInlayPropertyDeclarationTypeHints: config.inlayHints?.propertyDeclarationTypes?.enabled ?? false, + includeInlayFunctionLikeReturnTypeHints: config.inlayHints?.functionLikeReturnTypes?.enabled ?? false, + includeInlayEnumMemberValueHints: config.inlayHints?.enumMemberValues?.enabled ?? false, + // https://github.com/microsoft/vscode/blob/main/extensions/typescript-language-features/src/languageFeatures/completions.ts#L728-L730 + includeCompletionsForModuleExports: config.suggest?.autoImports ?? true, + includeCompletionsWithInsertText: true, + includePackageJsonAutoImports: preferencesConfig.includePackageJsonAutoImports ?? 'auto', + }; + return preferences; +} +function getQuoteStylePreference(config) { + switch (config.quoteStyle) { + case 'single': return 'single'; + case 'double': return 'double'; + default: return 'auto'; + } +} +function getAutoImportFileExcludePatternsPreference(config, workspacePath) { + return workspacePath && config.autoImportFileExcludePatterns?.map(p => { + // Normalization rules: https://github.com/microsoft/TypeScript/pull/49578 + const slashNormalized = p.replace(/\\/g, '/'); + const isRelative = /^\.\.?($|\/)/.test(slashNormalized); + return path$1.isAbsolute(p) ? p : + p.startsWith('*') ? '/' + slashNormalized : + isRelative ? path$1.join(workspacePath, p) : + '/**/' + slashNormalized; + }); +} +function getImportModuleSpecifierPreference(config) { + switch (config.importModuleSpecifier) { + case 'project-relative': return 'project-relative'; + case 'relative': return 'relative'; + case 'non-relative': return 'non-relative'; + default: return undefined; + } +} +function getImportModuleSpecifierEndingPreference(config) { + switch (config.importModuleSpecifierEnding) { + case 'minimal': return 'minimal'; + case 'index': return 'index'; + case 'js': return 'js'; + default: return 'minimal'; // fix https://github.com/johnsoncodehk/volar/issues/1667 + // default: return 'auto'; + } +} +function getJsxAttributeCompletionStyle(config) { + switch (config.jsxAttributeCompletionStyle) { + case 'braces': return 'braces'; + case 'none': return 'none'; + default: return 'auto'; + } +} +function getInlayParameterNameHintsPreference(config) { + switch (config.inlayHints?.parameterNames?.enabled) { + case 'none': return 'none'; + case 'literals': return 'literals'; + case 'all': return 'all'; + default: return undefined; + } +} + +var codeAction = {}; + +var fixNames$1 = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +Object.defineProperty(fixNames$1, "__esModule", { value: true }); +fixNames$1.addMissingOverride = fixNames$1.addMissingAwait = fixNames$1.fixImport = fixNames$1.spelling = fixNames$1.forgottenThisPropertyAccess = fixNames$1.unusedIdentifier = fixNames$1.unreachableCode = fixNames$1.classDoesntImplementInheritedAbstractMember = fixNames$1.classIncorrectlyImplementsInterface = fixNames$1.awaitInSyncFunction = fixNames$1.extendsInterfaceBecomesImplements = fixNames$1.constructorForDerivedNeedSuperCall = fixNames$1.annotateWithTypeFromJSDoc = void 0; +fixNames$1.annotateWithTypeFromJSDoc = 'annotateWithTypeFromJSDoc'; +fixNames$1.constructorForDerivedNeedSuperCall = 'constructorForDerivedNeedSuperCall'; +fixNames$1.extendsInterfaceBecomesImplements = 'extendsInterfaceBecomesImplements'; +fixNames$1.awaitInSyncFunction = 'fixAwaitInSyncFunction'; +fixNames$1.classIncorrectlyImplementsInterface = 'fixClassIncorrectlyImplementsInterface'; +fixNames$1.classDoesntImplementInheritedAbstractMember = 'fixClassDoesntImplementInheritedAbstractMember'; +fixNames$1.unreachableCode = 'fixUnreachableCode'; +fixNames$1.unusedIdentifier = 'unusedIdentifier'; +fixNames$1.forgottenThisPropertyAccess = 'forgottenThisPropertyAccess'; +fixNames$1.spelling = 'spelling'; +fixNames$1.fixImport = 'import'; +fixNames$1.addMissingAwait = 'addMissingAwait'; +fixNames$1.addMissingOverride = 'fixOverrideModifier'; + +var codeActionResolve$1 = {}; + +Object.defineProperty(codeActionResolve$1, "__esModule", { value: true }); +codeActionResolve$1.register = register$2; +codeActionResolve$1.resolveFixAllCodeAction = resolveFixAllCodeAction; +codeActionResolve$1.resolveRefactorCodeAction = resolveRefactorCodeAction; +codeActionResolve$1.resolveOrganizeImportsCodeAction = resolveOrganizeImportsCodeAction; +const getFormatCodeSettings_1$2 = getFormatCodeSettings$1; +const getUserPreferences_1$3 = getUserPreferences$1; +const shared_1$7 = shared; +const lspConverters_1$2 = lspConverters; +const vscode_uri_1$c = umdExports; +function register$2(ctx) { + return async (codeAction, formattingOptions) => { + const data = codeAction.data; + const document = ctx.getTextDocument(vscode_uri_1$c.URI.parse(data.uri)); + const [formatOptions, preferences] = await Promise.all([ + (0, getFormatCodeSettings_1$2.getFormatCodeSettings)(ctx, document, formattingOptions), + (0, getUserPreferences_1$3.getUserPreferences)(ctx, document), + ]); + if (data?.type === 'fixAll') { + resolveFixAllCodeAction(ctx, codeAction, data, formatOptions, preferences); + } + else if (data?.type === 'refactor') { + resolveRefactorCodeAction(ctx, codeAction, data, document, formatOptions, preferences); + } + else if (data?.type === 'organizeImports') { + resolveOrganizeImportsCodeAction(ctx, codeAction, data, formatOptions, preferences); + } + return codeAction; + }; +} +function resolveFixAllCodeAction(ctx, codeAction, data, formatOptions, preferences) { + const fixes = data.fixIds.map(fixId => (0, shared_1$7.safeCall)(() => ctx.languageService.getCombinedCodeFix({ type: 'file', fileName: data.fileName }, fixId, formatOptions, preferences))); + const changes = fixes.map(fix => fix?.changes ?? []).flat(); + codeAction.edit = (0, lspConverters_1$2.convertFileTextChanges)(changes, ctx.fileNameToUri, ctx.getTextDocument); +} +function resolveRefactorCodeAction(ctx, codeAction, data, document, formatOptions, preferences) { + const editInfo = (0, shared_1$7.safeCall)(() => ctx.languageService.getEditsForRefactor(data.fileName, formatOptions, data.range, data.refactorName, data.actionName, preferences)); + if (!editInfo) { + return; + } + codeAction.edit = (0, lspConverters_1$2.convertFileTextChanges)(editInfo.edits, ctx.fileNameToUri, ctx.getTextDocument); + if (editInfo.renameLocation !== undefined && editInfo.renameFilename !== undefined) { + codeAction.command = ctx.commands.rename.create(document.uri, document.positionAt(editInfo.renameLocation)); + } +} +function resolveOrganizeImportsCodeAction(ctx, codeAction, data, formatOptions, preferences) { + const changes = (0, shared_1$7.safeCall)(() => ctx.languageService.organizeImports({ type: 'file', fileName: data.fileName }, formatOptions, preferences)); + codeAction.edit = (0, lspConverters_1$2.convertFileTextChanges)(changes ?? [], ctx.fileNameToUri, ctx.getTextDocument); +} + +Object.defineProperty(codeAction, "__esModule", { value: true }); +codeAction.register = register$1; +const getFormatCodeSettings_1$1 = getFormatCodeSettings$1; +const getUserPreferences_1$2 = getUserPreferences$1; +const shared_1$6 = shared; +const fixNames = fixNames$1; +const lspConverters_1$1 = lspConverters; +const codeActionResolve_1 = codeActionResolve$1; +const renameCommandRefactors = new Set([ + 'refactor.rewrite.property.generateAccessors', + 'refactor.extract.type', + 'refactor.extract.interface', + 'refactor.extract.typedef', + 'refactor.extract.constant', + 'refactor.extract.function', +]); +function register$1(ctx) { + let resolveCommandSupport = ctx.env.clientCapabilities?.textDocument?.codeAction?.resolveSupport?.properties?.includes('command'); + let resolveEditSupport = ctx.env.clientCapabilities?.textDocument?.codeAction?.resolveSupport?.properties?.includes('edit'); + let loged = false; + const wranUnsupportResolve = () => { + if (loged) { + return; + } + loged = true; + console.warn('[volar-service-typescript] The language client lacks support for the command/edit properties in the resolve code action. Therefore, the code action resolve is pre-calculated.'); + }; + if (!ctx.env.clientCapabilities) { + resolveCommandSupport = true; + resolveEditSupport = true; + } + return async (uri, document, range, context, formattingOptions) => { + const [formatOptions, preferences] = await Promise.all([ + (0, getFormatCodeSettings_1$1.getFormatCodeSettings)(ctx, document, formattingOptions), + (0, getUserPreferences_1$2.getUserPreferences)(ctx, document), + ]); + const fileName = ctx.uriToFileName(uri); + const start = document.offsetAt(range.start); + const end = document.offsetAt(range.end); + let result = []; + const onlyQuickFix = matchOnlyKind(`${'quickfix'}.ts`); + if (!context.only || onlyQuickFix) { + for (const error of context.diagnostics) { + const codeFixes = (0, shared_1$6.safeCall)(() => ctx.languageService.getCodeFixesAtPosition(fileName, document.offsetAt(error.range.start), document.offsetAt(error.range.end), [Number(error.code)], formatOptions, preferences)) ?? []; + for (const codeFix of codeFixes) { + result = result.concat(convertCodeFixAction(codeFix, [error], onlyQuickFix ?? '')); + } + } + } + if (context.only) { + for (const only of context.only) { + if (only.split('.')[0] === 'refactor') { + const refactors = (0, shared_1$6.safeCall)(() => ctx.languageService.getApplicableRefactors(fileName, { pos: start, end: end }, preferences, undefined, only)) ?? []; + for (const refactor of refactors) { + result = result.concat(convertApplicableRefactorInfo(refactor)); + } + } + } + } + else { + const refactors = (0, shared_1$6.safeCall)(() => ctx.languageService.getApplicableRefactors(fileName, { pos: start, end: end }, preferences, undefined, undefined)) ?? []; + for (const refactor of refactors) { + result = result.concat(convertApplicableRefactorInfo(refactor)); + } + } + const onlySourceOrganizeImports = matchOnlyKind(`${'source.organizeImports'}.ts`); + if (onlySourceOrganizeImports) { + const action = { + title: 'Organize Imports', + kind: onlySourceOrganizeImports, + }; + const data = { + type: 'organizeImports', + uri: document.uri, + fileName, + }; + if (resolveEditSupport) { + action.data = data; + } + else { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveOrganizeImportsCodeAction)(ctx, action, data, formatOptions, preferences); + } + result.push(action); + } + const onlySourceFixAll = matchOnlyKind(`${'source.fixAll'}.ts`); + if (onlySourceFixAll) { + const action = { + title: 'Fix All', + kind: onlySourceFixAll, + }; + const data = { + uri: document.uri, + type: 'fixAll', + fileName, + fixIds: [ + fixNames.classIncorrectlyImplementsInterface, + fixNames.awaitInSyncFunction, + fixNames.unreachableCode, + ], + }; + if (resolveEditSupport) { + action.data = data; + } + else { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences); + } + result.push(action); + } + const onlyRemoveUnused = matchOnlyKind(`${'source'}.removeUnused.ts`); + if (onlyRemoveUnused) { + const action = { + title: 'Remove all unused code', + kind: onlyRemoveUnused, + }; + const data = { + uri: document.uri, + type: 'fixAll', + fileName, + fixIds: [ + // not working and throw + fixNames.unusedIdentifier, + // TODO: remove patching + 'unusedIdentifier_prefix', + 'unusedIdentifier_deleteImports', + 'unusedIdentifier_delete', + 'unusedIdentifier_infer', + ], + }; + if (resolveEditSupport) { + action.data = data; + } + else { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences); + } + result.push(action); + } + const onlyAddMissingImports = matchOnlyKind(`${'source'}.addMissingImports.ts`); + if (onlyAddMissingImports) { + const action = { + title: 'Add all missing imports', + kind: onlyAddMissingImports, + }; + const data = { + uri: document.uri, + type: 'fixAll', + fileName, + fixIds: [ + // not working and throw + fixNames.fixImport, + // TODO: remove patching + 'fixMissingImport', + ], + }; + if (resolveEditSupport) { + action.data = data; + } + else { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences); + } + result.push(action); + } + for (const codeAction of result) { + if (codeAction.diagnostics === undefined) { + codeAction.diagnostics = context.diagnostics; + } + } + return result; + function matchOnlyKind(kind) { + if (context.only) { + for (const only of context.only) { + const a = only.split('.'); + const b = kind.split('.'); + if (a.length <= b.length) { + let matchNums = 0; + for (let i = 0; i < a.length; i++) { + if (a[i] == b[i]) { + matchNums++; + } + } + if (matchNums === a.length) { + return only; + } + } + } + } + } + function convertCodeFixAction(codeFix, diagnostics, kind) { + const edit = (0, lspConverters_1$1.convertFileTextChanges)(codeFix.changes, ctx.fileNameToUri, ctx.getTextDocument); + const codeActions = []; + const fix = { + title: codeFix.description, + kind, + edit, + }; + fix.diagnostics = diagnostics; + codeActions.push(fix); + if (codeFix.fixAllDescription && codeFix.fixId) { + const fixAll = { + title: codeFix.fixAllDescription, + kind, + }; + const data = { + uri: document.uri, + type: 'fixAll', + fileName, + fixIds: [codeFix.fixId], + }; + if (resolveEditSupport) { + fixAll.data = data; + } + else { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, fixAll, data, formatOptions, preferences); + } + fixAll.diagnostics = diagnostics; + codeActions.push(fixAll); + } + return codeActions; + } + function convertApplicableRefactorInfo(refactor) { + const codeActions = []; + for (const action of refactor.actions) { + const codeAction = { + title: action.description, + kind: action.kind, + }; + if (action.notApplicableReason) { + codeAction.disabled = { reason: action.notApplicableReason }; + } + if (refactor.inlineable) { + codeAction.isPreferred = true; + } + const data = { + uri: document.uri, + type: 'refactor', + fileName, + range: { pos: start, end: end }, + refactorName: refactor.name, + actionName: action.name, + }; + const hasCommand = renameCommandRefactors.has(action.kind); + if (hasCommand && resolveCommandSupport && resolveEditSupport) { + codeAction.data = data; + } + else if (!hasCommand && resolveEditSupport) { + codeAction.data = data; + } + else if (!codeAction.disabled) { + wranUnsupportResolve(); + (0, codeActionResolve_1.resolveRefactorCodeAction)(ctx, codeAction, data, document, formatOptions, preferences); + } + codeActions.push(codeAction); + } + return codeActions; + } + }; +} + +var semanticTokens$1 = {}; + +Object.defineProperty(semanticTokens$1, "__esModule", { value: true }); +semanticTokens$1.register = register; +const shared_1$5 = shared; +function register(ts, ctx) { + return (uri, document, range, legend) => { + const fileName = ctx.uriToFileName(uri); + const start = range ? document.offsetAt(range.start) : 0; + const length = range ? (document.offsetAt(range.end) - start) : document.getText().length; + if (ctx.project.typescript?.languageServiceHost.getCancellationToken?.().isCancellationRequested()) { + return; + } + const response = (0, shared_1$5.safeCall)(() => ctx.languageService.getEncodedSemanticClassifications(fileName, { start, length }, ts.SemanticClassificationFormat.TwentyTwenty)); + if (!response) { + return; + } + let tokenModifiersTable = []; + tokenModifiersTable[2 /* TokenModifier.async */] = 1 << legend.tokenModifiers.indexOf('async'); + tokenModifiersTable[0 /* TokenModifier.declaration */] = 1 << legend.tokenModifiers.indexOf('declaration'); + tokenModifiersTable[3 /* TokenModifier.readonly */] = 1 << legend.tokenModifiers.indexOf('readonly'); + tokenModifiersTable[1 /* TokenModifier.static */] = 1 << legend.tokenModifiers.indexOf('static'); + tokenModifiersTable[5 /* TokenModifier.local */] = 1 << legend.tokenModifiers.indexOf('local'); + tokenModifiersTable[4 /* TokenModifier.defaultLibrary */] = 1 << legend.tokenModifiers.indexOf('defaultLibrary'); + tokenModifiersTable = tokenModifiersTable.map(mod => Math.max(mod, 0)); + const end = start + length; + const tokenSpan = response.spans; + const tokens = []; + let i = 0; + while (i < tokenSpan.length) { + const offset = tokenSpan[i++]; + if (offset >= end) { + break; + } + const length = tokenSpan[i++]; + const tsClassification = tokenSpan[i++]; + const tokenType = getTokenTypeFromClassification(tsClassification); + if (tokenType === undefined) { + continue; + } + const tokenModifiers = getTokenModifierFromClassification(tsClassification); + // we can use the document's range conversion methods because the result is at the same version as the document + const startPos = document.positionAt(offset); + const endPos = document.positionAt(offset + length); + const serverToken = tsTokenTypeToServerTokenType(tokenType); + if (serverToken === undefined) { + continue; + } + const serverTokenModifiers = tsTokenModifierToServerTokenModifier(tokenModifiers); + for (let line = startPos.line; line <= endPos.line; line++) { + const startCharacter = (line === startPos.line ? startPos.character : 0); + const endCharacter = (line === endPos.line ? endPos.character : docLineLength(document, line)); + tokens.push([line, startCharacter, endCharacter - startCharacter, serverToken, serverTokenModifiers]); + } + } + return tokens; + function tsTokenTypeToServerTokenType(tokenType) { + return legend.tokenTypes.indexOf(tokenTypes[tokenType]); + } + function tsTokenModifierToServerTokenModifier(input) { + let m = 0; + let i = 0; + while (input) { + if (input & 1) { + m |= tokenModifiersTable[i]; + } + input = input >> 1; + i++; + } + return m; + } + }; +} +function docLineLength(document, line) { + const currentLineOffset = document.offsetAt({ line, character: 0 }); + const nextLineOffset = document.offsetAt({ line: line + 1, character: 0 }); + return nextLineOffset - currentLineOffset; +} +function getTokenTypeFromClassification(tsClassification) { + if (tsClassification > 255 /* TokenEncodingConsts.modifierMask */) { + return (tsClassification >> 8 /* TokenEncodingConsts.typeOffset */) - 1; + } + return undefined; +} +function getTokenModifierFromClassification(tsClassification) { + return tsClassification & 255 /* TokenEncodingConsts.modifierMask */; +} +const tokenTypes = []; +tokenTypes[0 /* TokenType.class */] = 'class'; +tokenTypes[1 /* TokenType.enum */] = 'enum'; +tokenTypes[2 /* TokenType.interface */] = 'interface'; +tokenTypes[3 /* TokenType.namespace */] = 'namespace'; +tokenTypes[4 /* TokenType.typeParameter */] = 'typeParameter'; +tokenTypes[5 /* TokenType.type */] = 'type'; +tokenTypes[6 /* TokenType.parameter */] = 'parameter'; +tokenTypes[7 /* TokenType.variable */] = 'variable'; +tokenTypes[8 /* TokenType.enumMember */] = 'enumMember'; +tokenTypes[9 /* TokenType.property */] = 'property'; +tokenTypes[10 /* TokenType.function */] = 'function'; +tokenTypes[11 /* TokenType.method */] = 'method'; + +var snippetForFunctionCall$1 = {}; + +Object.defineProperty(snippetForFunctionCall$1, "__esModule", { value: true }); +snippetForFunctionCall$1.snippetForFunctionCall = snippetForFunctionCall; +const PConst = protocol_const; +function snippetForFunctionCall(item, displayParts) { + if (item.insertText && typeof item.insertText !== 'string') { + return { snippet: item.insertText, parameterCount: 0 }; + } + let _tabstop = 1; + const parameterListParts = getParameterListParts(displayParts); + let snippet = ''; + snippet += `${item.insertText || item.label}(`; + snippet = appendJoinedPlaceholders(snippet, parameterListParts.parts, ', '); + if (parameterListParts.hasOptionalParameters) { + snippet += '$' + _tabstop++; + } + snippet += ')'; + snippet += '$' + _tabstop++; + return { snippet, parameterCount: parameterListParts.parts.length + (parameterListParts.hasOptionalParameters ? 1 : 0) }; + function appendJoinedPlaceholders(snippet, parts, joiner) { + for (let i = 0; i < parts.length; ++i) { + const paramterPart = parts[i]; + snippet += '${' + _tabstop++ + ':' + paramterPart.text + '}'; + if (i !== parts.length - 1) { + snippet += joiner; + } + } + return snippet; + } +} +function getParameterListParts(displayParts) { + const parts = []; + let isInMethod = false; + let hasOptionalParameters = false; + let parenCount = 0; + let braceCount = 0; + outer: { + for (let i = 0; i < displayParts.length; ++i) { + const part = displayParts[i]; + switch (part.kind) { + case PConst.DisplayPartKind.methodName: + case PConst.DisplayPartKind.functionName: + case PConst.DisplayPartKind.text: + case PConst.DisplayPartKind.propertyName: + if (parenCount === 0 && braceCount === 0) { + isInMethod = true; + } + break; + case PConst.DisplayPartKind.parameterName: + if (parenCount === 1 && braceCount === 0 && isInMethod) { + // Only take top level paren names + const next = displayParts[i + 1]; + // Skip optional parameters + const nameIsFollowedByOptionalIndicator = next && next.text === '?'; + // Skip this parameter + const nameIsThis = part.text === 'this'; + if (!nameIsFollowedByOptionalIndicator && !nameIsThis) { + parts.push(part); + } + hasOptionalParameters = hasOptionalParameters || nameIsFollowedByOptionalIndicator; + } + break; + case PConst.DisplayPartKind.punctuation: + if (part.text === '(') { + ++parenCount; + } + else if (part.text === ')') { + --parenCount; + if (parenCount <= 0 && isInMethod) { + break outer; + } + } + else if (part.text === '...' && parenCount === 1) { + // Found rest parmeter. Do not fill in any further arguments + hasOptionalParameters = true; + break outer; + } + else if (part.text === '{') { + ++braceCount; + } + else if (part.text === '}') { + --braceCount; + } + break; + } + } + } + return { hasOptionalParameters, parts }; +} + +Object.defineProperty(semantic, "__esModule", { value: true }); +semantic.create = create$g; +const path = pathBrowserify; +const semver = semver$3; +const tsWithImportCache = out; +const vscode_uri_1$b = umdExports; +const getFormatCodeSettings_1 = getFormatCodeSettings$1; +const getUserPreferences_1$1 = getUserPreferences$1; +const codeActions = codeAction; +const codeActionResolve = codeActionResolve$1; +const semanticTokens = semanticTokens$1; +const shared_1$4 = shared; +const lspConverters_1 = lspConverters; +const snippetForFunctionCall_1 = snippetForFunctionCall$1; +const documentRegistries = []; +function getDocumentRegistry(ts, useCaseSensitiveFileNames, currentDirectory) { + let documentRegistry = documentRegistries.find(item => item[0] === useCaseSensitiveFileNames && item[1] === currentDirectory)?.[2]; + if (!documentRegistry) { + documentRegistry = ts.createDocumentRegistry(useCaseSensitiveFileNames, currentDirectory); + documentRegistries.push([useCaseSensitiveFileNames, currentDirectory, documentRegistry]); + } + return documentRegistry; +} +function create$g(ts, { disableAutoImportCache = false, isValidationEnabled = async (document, context) => { + return await context.env.getConfiguration?.((0, shared_1$4.getConfigTitle)(document) + '.validate.enable') ?? true; +}, isSuggestionsEnabled = async (document, context) => { + return await context.env.getConfiguration?.((0, shared_1$4.getConfigTitle)(document) + '.suggest.enabled') ?? true; +}, } = {}) { + return { + name: 'typescript-semantic', + capabilities: { + completionProvider: { + triggerCharacters: getBasicTriggerCharacters(ts.version), + resolveProvider: true, + }, + renameProvider: { + prepareProvider: true, + }, + fileRenameEditsProvider: true, + codeActionProvider: { + codeActionKinds: [ + '', + 'quickfix', + 'refactor', + 'refactor.extract', + 'refactor.inline', + 'refactor.rewrite', + 'source', + 'source.fixAll', + 'source.organizeImports', + ], + resolveProvider: true, + }, + inlayHintProvider: {}, + callHierarchyProvider: true, + definitionProvider: true, + typeDefinitionProvider: true, + diagnosticProvider: { + interFileDependencies: true, + workspaceDiagnostics: false, + }, + hoverProvider: true, + implementationProvider: true, + referencesProvider: true, + fileReferencesProvider: true, + documentHighlightProvider: true, + semanticTokensProvider: { + // https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers + legend: { + tokenTypes: [ + 'namespace', + 'class', + 'enum', + 'interface', + 'typeParameter', + 'type', + 'parameter', + 'variable', + 'property', + 'enumMember', + 'function', + 'method', + ], + tokenModifiers: [ + 'declaration', + 'readonly', + 'static', + 'async', + 'defaultLibrary', + 'local', // additional + ], + }, + }, + workspaceSymbolProvider: {}, + signatureHelpProvider: { + triggerCharacters: ['(', ',', '<'], + retriggerCharacters: [')'], + }, + }, + create(context) { + if (!context.project.typescript) { + console.warn(`[volar] typescript-semantic requires typescript project.`); + return {}; + } + const { sys, languageServiceHost, uriConverter, getExtraServiceScript } = context.project.typescript; + let languageService; + let created; + if (disableAutoImportCache) { + languageService = ts.createLanguageService(languageServiceHost, getDocumentRegistry(ts, sys.useCaseSensitiveFileNames, languageServiceHost.getCurrentDirectory())); + } + else { + created = tsWithImportCache.createLanguageService(ts, sys, languageServiceHost, proxiedHost => ts.createLanguageService(proxiedHost, getDocumentRegistry(ts, sys.useCaseSensitiveFileNames, languageServiceHost.getCurrentDirectory()))); + languageService = created.languageService; + } + const ctx = { + ...context, + languageServiceHost, + languageService, + uriToFileName(uri) { + const virtualScript = getVirtualScriptByUri(uri); + if (virtualScript) { + return virtualScript.fileName; + } + return uriConverter.asFileName(uri); + }, + fileNameToUri(fileName) { + const extraServiceScript = getExtraServiceScript(fileName); + if (extraServiceScript) { + const sourceScript = context.language.scripts.fromVirtualCode(extraServiceScript.code); + return context.encodeEmbeddedDocumentUri(sourceScript.id, extraServiceScript.code.id); + } + const uri = uriConverter.asUri(fileName); + const sourceScript = context.language.scripts.get(uri); + const serviceScript = sourceScript?.generated?.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (sourceScript && serviceScript) { + return context.encodeEmbeddedDocumentUri(sourceScript.id, serviceScript.code.id); + } + return uri; + }, + getTextDocument(uri) { + const decoded = context.decodeEmbeddedDocumentUri(uri); + if (decoded) { + const sourceScript = context.language.scripts.get(decoded[0]); + const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode) { + return context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot); + } + } + else { + const sourceFile = context.language.scripts.get(uri); + if (sourceFile) { + return context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot); + } + } + }, + }; + const getCodeActions = codeActions.register(ctx); + const doCodeActionResolve = codeActionResolve.register(ctx); + const getDocumentSemanticTokens = semanticTokens.register(ts, ctx); + /* typescript-language-features is hardcode true */ + const renameInfoOptions = { allowRenameOfImportPath: true }; + let formattingOptions; + if (created?.setPreferences && context.env.getConfiguration) { + updatePreferences(); + context.env.onDidChangeConfiguration?.(updatePreferences); + async function updatePreferences() { + const preferences = await context.env.getConfiguration?.('typescript.preferences'); + if (preferences) { + created.setPreferences?.(preferences); + } + } + } + if (created?.projectUpdated) { + const sourceScriptNames = new Set(); + const normalizeFileName = sys.useCaseSensitiveFileNames + ? (id) => id + : (id) => id.toLowerCase(); + updateSourceScriptFileNames(); + context.env.onDidChangeWatchedFiles?.(params => { + const someFileCreateOrDeiete = params.changes.some(change => change.type !== 2); + if (someFileCreateOrDeiete) { + updateSourceScriptFileNames(); + } + for (const change of params.changes) { + const fileName = uriConverter.asFileName(vscode_uri_1$b.URI.parse(change.uri)); + if (sourceScriptNames.has(normalizeFileName(fileName))) { + created.projectUpdated?.(languageServiceHost.getCurrentDirectory()); + } + } + }); + function updateSourceScriptFileNames() { + sourceScriptNames.clear(); + for (const fileName of languageServiceHost.getScriptFileNames()) { + const maybeEmbeddedUri = ctx.fileNameToUri(fileName); + const decoded = context.decodeEmbeddedDocumentUri(maybeEmbeddedUri); + const uri = decoded ? decoded[0] : maybeEmbeddedUri; + const sourceScript = context.language.scripts.get(uri); + if (sourceScript?.generated) { + const tsCode = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (tsCode) { + sourceScriptNames.add(normalizeFileName(fileName)); + } + } + else if (sourceScript) { + sourceScriptNames.add(normalizeFileName(fileName)); + } + } + } + } + return { + provide: { + 'typescript/languageService': () => languageService, + 'typescript/languageServiceHost': () => languageServiceHost, + 'typescript/documentFileName': uri => ctx.uriToFileName(uri), + 'typescript/documentUri': fileName => ctx.fileNameToUri(fileName), + }, + dispose() { + languageService.dispose(); + }, + provideDocumentFormattingEdits(_document, _range, options) { + formattingOptions = options; + return undefined; + }, + provideOnTypeFormattingEdits(_document, _position, _key, options) { + formattingOptions = options; + return undefined; + }, + async provideCompletionItems(document, position, completeContext, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (!await isSuggestionsEnabled(document, context)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const preferences = await (0, getUserPreferences_1$1.getUserPreferences)(ctx, document); + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const info = (0, shared_1$4.safeCall)(() => ctx.languageService.getCompletionsAtPosition(fileName, offset, { + ...preferences, + triggerCharacter: completeContext.triggerCharacter, + triggerKind: completeContext.triggerKind, + })); + if (info) { + return (0, lspConverters_1.convertCompletionInfo)(ts, info, document, position, tsEntry => ({ + uri: document.uri, + fileName, + offset, + originalItem: { + name: tsEntry.name, + source: tsEntry.source, + data: tsEntry.data, + labelDetails: tsEntry.labelDetails, + }, + })); + } + }, + async resolveCompletionItem(item, token) { + if (await isCancellationRequestedWhileSync(token)) { + return item; + } + const data = item.data; + if (!data) { + return item; + } + const { fileName, offset } = data; + const uri = vscode_uri_1$b.URI.parse(data.uri); + const document = ctx.getTextDocument(uri); + const [formatOptions, preferences] = await Promise.all([ + (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions), + (0, getUserPreferences_1$1.getUserPreferences)(ctx, document), + ]); + const details = (0, shared_1$4.safeCall)(() => ctx.languageService.getCompletionEntryDetails(fileName, offset, data.originalItem.name, formatOptions, data.originalItem.source, preferences, data.originalItem.data)); + if (!details) { + return item; + } + if (data.originalItem.labelDetails) { + item.labelDetails ??= {}; + Object.assign(item.labelDetails, data.originalItem.labelDetails); + } + (0, lspConverters_1.applyCompletionEntryDetails)(ts, item, details, document, ctx.fileNameToUri, ctx.getTextDocument); + const useCodeSnippetsOnMethodSuggest = await ctx.env.getConfiguration?.((0, shared_1$4.getConfigTitle)(document) + '.suggest.completeFunctionCalls') ?? false; + const useCodeSnippet = useCodeSnippetsOnMethodSuggest + && (item.kind === 3 + || item.kind === 2); + if (useCodeSnippet) { + const shouldCompleteFunction = isValidFunctionCompletionContext(ctx.languageService, fileName, offset, document); + if (shouldCompleteFunction) { + const { snippet, parameterCount } = (0, snippetForFunctionCall_1.snippetForFunctionCall)({ + insertText: item.insertText ?? item.textEdit?.newText, // insertText is dropped by LSP in some case: https://github.com/microsoft/vscode-languageserver-node/blob/9b742021fb04ad081aa3676a9eecf4fa612084b4/client/src/common/codeConverter.ts#L659-L664 + label: item.label, + }, details.displayParts); + if (item.textEdit) { + item.textEdit.newText = snippet; + } + if (item.insertText) { + item.insertText = snippet; + } + item.insertTextFormat = 2; + } + } + return item; + function isValidFunctionCompletionContext(client, filepath, offset, document) { + // Workaround for https://github.com/microsoft/TypeScript/issues/12677 + // Don't complete function calls inside of destructive assignments or imports + try { + const response = client.getQuickInfoAtPosition(filepath, offset); + if (response) { + switch (response.kind) { + case 'var': + case 'let': + case 'const': + case 'alias': + return false; + } + } + } + catch { + // Noop + } + // Don't complete function call if there is already something that looks like a function call + // https://github.com/microsoft/vscode/issues/18131 + const position = document.positionAt(offset); + const after = (0, lspConverters_1.getLineText)(document, position.line).slice(position.character); + return after.match(/^[a-z_$0-9]*\s*\(/gi) === null; + } + }, + async provideRenameRange(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const renameInfo = (0, shared_1$4.safeCall)(() => ctx.languageService.getRenameInfo(fileName, offset, renameInfoOptions)); + if (!renameInfo) { + return; + } + if (!renameInfo.canRename) { + return { message: renameInfo.localizedErrorMessage }; + } + return (0, lspConverters_1.convertTextSpan)(renameInfo.triggerSpan, document); + }, + async provideRenameEdits(document, position, newName, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document, true)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const renameInfo = (0, shared_1$4.safeCall)(() => ctx.languageService.getRenameInfo(fileName, offset, renameInfoOptions)); + if (!renameInfo?.canRename) { + return; + } + if (renameInfo.fileToRename) { + const [formatOptions, preferences] = await Promise.all([ + (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions), + (0, getUserPreferences_1$1.getUserPreferences)(ctx, document), + ]); + return renameFile(renameInfo.fileToRename, newName, formatOptions, preferences); + } + const { providePrefixAndSuffixTextForRename } = await (0, getUserPreferences_1$1.getUserPreferences)(ctx, document); + const entries = ctx.languageService.findRenameLocations(fileName, offset, false, false, providePrefixAndSuffixTextForRename); + if (!entries) { + return; + } + return (0, lspConverters_1.convertRenameLocations)(newName, entries, ctx.fileNameToUri, ctx.getTextDocument); + function renameFile(fileToRename, newName, formatOptions, preferences) { + // Make sure we preserve file extension if none provided + if (!path.extname(newName)) { + newName += path.extname(fileToRename); + } + const dirname = path.dirname(fileToRename); + const newFilePath = path.join(dirname, newName); + const response = (0, shared_1$4.safeCall)(() => ctx.languageService.getEditsForFileRename(fileToRename, newFilePath, formatOptions, preferences)); + if (!response) { + return; + } + const edits = (0, lspConverters_1.convertFileTextChanges)(response, ctx.fileNameToUri, ctx.getTextDocument); + if (!edits.documentChanges) { + edits.documentChanges = []; + } + edits.documentChanges.push({ + kind: 'rename', + oldUri: ctx.fileNameToUri(fileToRename).toString(), + newUri: ctx.fileNameToUri(newFilePath).toString(), + }); + return edits; + } + }, + async provideCodeActions(document, range, context, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + return getCodeActions(uri, document, range, context, formattingOptions); + }, + async resolveCodeAction(codeAction, token) { + if (await isCancellationRequestedWhileSync(token)) { + return codeAction; + } + return doCodeActionResolve(codeAction, formattingOptions); + }, + async provideInlayHints(document, range, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const preferences = await (0, getUserPreferences_1$1.getUserPreferences)(ctx, document); + const fileName = ctx.uriToFileName(uri); + const start = document.offsetAt(range.start); + const end = document.offsetAt(range.end); + const inlayHints = (0, shared_1$4.safeCall)(() => 'provideInlayHints' in ctx.languageService + ? ctx.languageService.provideInlayHints(fileName, { start, length: end - start }, preferences) + : []); + if (!inlayHints) { + return []; + } + return inlayHints.map(hint => (0, lspConverters_1.convertInlayHint)(hint, document)); + }, + async provideCallHierarchyItems(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const calls = (0, shared_1$4.safeCall)(() => ctx.languageService.prepareCallHierarchy(fileName, offset)); + if (!calls) { + return []; + } + const items = Array.isArray(calls) ? calls : [calls]; + return items.map(item => (0, lspConverters_1.convertCallHierarchyItem)(item, ctx)); + }, + async provideCallHierarchyIncomingCalls(item, token) { + if (await isCancellationRequestedWhileSync(token)) { + return []; + } + const uri = vscode_uri_1$b.URI.parse(item.uri); + const document = ctx.getTextDocument(uri); + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(item.selectionRange.start); + const calls = (0, shared_1$4.safeCall)(() => ctx.languageService.provideCallHierarchyIncomingCalls(fileName, offset)); + if (!calls) { + return []; + } + const items = Array.isArray(calls) ? calls : [calls]; + return items.map(item => (0, lspConverters_1.convertCallHierarchyIncomingCall)(item, ctx)); + }, + async provideCallHierarchyOutgoingCalls(item, token) { + if (await isCancellationRequestedWhileSync(token)) { + return []; + } + const uri = vscode_uri_1$b.URI.parse(item.uri); + const document = ctx.getTextDocument(uri); + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(item.selectionRange.start); + const calls = (0, shared_1$4.safeCall)(() => ctx.languageService.provideCallHierarchyOutgoingCalls(fileName, offset)); + if (!calls) { + return []; + } + const items = Array.isArray(calls) ? calls : [calls]; + return items.map(item => (0, lspConverters_1.convertCallHierarchyOutgoingCall)(item, document, ctx)); + }, + async provideDefinition(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const info = (0, shared_1$4.safeCall)(() => ctx.languageService.getDefinitionAndBoundSpan(fileName, offset)); + if (!info) { + return []; + } + return (0, lspConverters_1.convertDefinitionInfoAndBoundSpan)(info, document, ctx); + }, + async provideTypeDefinition(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const entries = (0, shared_1$4.safeCall)(() => ctx.languageService.getTypeDefinitionAtPosition(fileName, offset)); + if (!entries) { + return []; + } + return entries.map(entry => (0, lspConverters_1.convertDocumentSpantoLocationLink)(entry, ctx)); + }, + async provideDiagnostics(document, token) { + return [ + ...await provideDiagnosticsWorker(document, token, 'syntactic') ?? [], + ...await provideDiagnosticsWorker(document, token, 'semantic') ?? [], + ]; + }, + async provideHover(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const info = (0, shared_1$4.safeCall)(() => ctx.languageService.getQuickInfoAtPosition(fileName, offset)); + if (!info) { + return; + } + return (0, lspConverters_1.convertQuickInfo)(ts, info, document, ctx.fileNameToUri, ctx.getTextDocument); + }, + async provideImplementation(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const entries = (0, shared_1$4.safeCall)(() => ctx.languageService.getImplementationAtPosition(fileName, offset)); + if (!entries) { + return []; + } + return entries.map(entry => (0, lspConverters_1.convertDocumentSpantoLocationLink)(entry, ctx)); + }, + async provideReferences(document, position, referenceContext, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document, true)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const references = (0, shared_1$4.safeCall)(() => ctx.languageService.findReferences(fileName, offset)); + if (!references) { + return []; + } + const result = []; + for (const reference of references) { + if (referenceContext.includeDeclaration) { + const definition = (0, lspConverters_1.convertDocumentSpanToLocation)(reference.definition, ctx); + if (definition) { + result.push(definition); + } + } + for (const referenceEntry of reference.references) { + const reference = (0, lspConverters_1.convertDocumentSpanToLocation)(referenceEntry, ctx); + if (reference) { + result.push(reference); + } + } + } + return result; + }, + async provideFileReferences(document, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document, true)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const entries = (0, shared_1$4.safeCall)(() => ctx.languageService.getFileReferences(fileName)); + if (!entries) { + return []; + } + return entries.map(entry => (0, lspConverters_1.convertDocumentSpanToLocation)(entry, ctx)); + }, + async provideDocumentHighlights(document, position, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const highlights = (0, shared_1$4.safeCall)(() => ctx.languageService.getDocumentHighlights(fileName, offset, [fileName])); + if (!highlights) { + return []; + } + const results = []; + for (const highlight of highlights) { + for (const span of highlight.highlightSpans) { + results.push((0, lspConverters_1.convertHighlightSpan)(span, document)); + } + } + return results; + }, + async provideDocumentSemanticTokens(document, range, legend, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + return getDocumentSemanticTokens(uri, document, range, legend); + }, + async provideWorkspaceSymbols(query, token) { + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const items = (0, shared_1$4.safeCall)(() => ctx.languageService.getNavigateToItems(query)); + if (!items) { + return []; + } + return items + .filter(item => item.containerName || item.kind !== 'alias') + .map(item => (0, lspConverters_1.convertNavigateToItem)(item, ctx.getTextDocument(ctx.fileNameToUri(item.fileName)))) + .filter(item => !!item); + }, + async provideFileRenameEdits(oldUri, newUri, token) { + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const document = ctx.getTextDocument(oldUri); + const [formatOptions, preferences] = await Promise.all([ + (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions), + (0, getUserPreferences_1$1.getUserPreferences)(ctx, document), + ]); + const fileToRename = ctx.uriToFileName(oldUri); + const newFilePath = ctx.uriToFileName(newUri); + const response = (0, shared_1$4.safeCall)(() => ctx.languageService.getEditsForFileRename(fileToRename, newFilePath, formatOptions, preferences)); + if (!response?.length) { + return; + } + return (0, lspConverters_1.convertFileTextChanges)(response, ctx.fileNameToUri, ctx.getTextDocument); + }, + async provideSignatureHelp(document, position, context, token) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (await isCancellationRequestedWhileSync(token)) { + return; + } + const options = {}; + if (context?.triggerKind === 1) { + options.triggerReason = { + kind: 'invoked' + }; + } + else if (context?.triggerKind === 2) { + options.triggerReason = { + kind: 'characterTyped', + triggerCharacter: context.triggerCharacter, + }; + } + else if (context?.triggerKind === 3) { + options.triggerReason = { + kind: 'retrigger', + triggerCharacter: context.triggerCharacter, + }; + } + const fileName = ctx.uriToFileName(uri); + const offset = document.offsetAt(position); + const helpItems = (0, shared_1$4.safeCall)(() => ctx.languageService.getSignatureHelpItems(fileName, offset, options)); + if (!helpItems) { + return; + } + return { + activeSignature: helpItems.selectedItemIndex, + activeParameter: helpItems.argumentIndex, + signatures: helpItems.items.map(item => { + const signature = { + label: '', + documentation: undefined, + parameters: [] + }; + signature.label += ts.displayPartsToString(item.prefixDisplayParts); + item.parameters.forEach((p, i, a) => { + const label = ts.displayPartsToString(p.displayParts); + const parameter = { + label, + documentation: ts.displayPartsToString(p.documentation) + }; + signature.label += label; + signature.parameters.push(parameter); + if (i < a.length - 1) { + signature.label += ts.displayPartsToString(item.separatorDisplayParts); + } + }); + signature.label += ts.displayPartsToString(item.suffixDisplayParts); + return signature; + }), + }; + }, + }; + async function provideDiagnosticsWorker(document, token, mode) { + const uri = vscode_uri_1$b.URI.parse(document.uri); + if (!isSemanticDocument(uri, document)) { + return; + } + if (!await isValidationEnabled(document, context)) { + return; + } + if (mode === 'semantic' && await isCancellationRequestedWhileSync(token)) { + return; + } + const fileName = ctx.uriToFileName(uri); + const program = ctx.languageService.getProgram(); + const sourceFile = program?.getSourceFile(fileName); + if (!program || !sourceFile) { + return []; + } + const tsToken = { + isCancellationRequested() { + return ctx.project.typescript?.languageServiceHost.getCancellationToken?.().isCancellationRequested() ?? false; + }, + throwIfCancellationRequested() { }, + }; + if (mode === 'syntactic') { + const syntacticDiagnostics = (0, shared_1$4.safeCall)(() => program.getSyntacticDiagnostics(sourceFile, tsToken)) ?? []; + const suggestionDiagnostics = (0, shared_1$4.safeCall)(() => ctx.languageService.getSuggestionDiagnostics(fileName)) ?? []; + return [...syntacticDiagnostics, ...suggestionDiagnostics] + .map(diagnostic => (0, lspConverters_1.convertDiagnostic)(diagnostic, document, ctx.fileNameToUri, ctx.getTextDocument)) + .filter(diagnostic => !!diagnostic); + } + else if (mode === 'semantic') { + const semanticDiagnostics = (0, shared_1$4.safeCall)(() => program.getSemanticDiagnostics(sourceFile, tsToken)) ?? []; + const declarationDiagnostics = getEmitDeclarations(program.getCompilerOptions()) + ? (0, shared_1$4.safeCall)(() => program.getDeclarationDiagnostics(sourceFile, tsToken)) ?? [] + : []; + return [...semanticDiagnostics, ...declarationDiagnostics] + .map(diagnostic => (0, lspConverters_1.convertDiagnostic)(diagnostic, document, ctx.fileNameToUri, ctx.getTextDocument)) + .filter(diagnostic => !!diagnostic); + } + } + function getEmitDeclarations(compilerOptions) { + return !!(compilerOptions.declaration || compilerOptions.composite); + } + function isSemanticDocument(uri, document, withJson = false) { + const virtualScript = getVirtualScriptByUri(uri); + if (virtualScript) { + return true; + } + if (withJson && (0, shared_1$4.isJsonDocument)(document)) { + return true; + } + return (0, shared_1$4.isTsDocument)(document); + } + async function isCancellationRequestedWhileSync(token) { + if (sys.sync) { + let oldSysVersion; + let newSysVersion = sys.version; + do { + oldSysVersion = newSysVersion; + languageService.getProgram(); // trigger file requests + newSysVersion = await aggressiveSync(sys.sync); + } while (newSysVersion !== oldSysVersion && !token.isCancellationRequested); + } + return token.isCancellationRequested; + } + async function aggressiveSync(fn) { + const promise = fn(); + let newVersion; + let syncing = true; + promise.then(version => { + newVersion = version; + syncing = false; + }); + while (syncing) { + languageService.getProgram(); // trigger file requests before old requests are completed + await Promise.race([promise, sleep(10)]); + } + return newVersion; + } + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + function getVirtualScriptByUri(uri) { + const decoded = context.decodeEmbeddedDocumentUri(uri); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode && sourceScript?.generated?.languagePlugin.typescript) { + const { getServiceScript, getExtraServiceScripts } = sourceScript.generated?.languagePlugin.typescript; + const sourceFileName = uriConverter.asFileName(sourceScript.id); + if (getServiceScript(sourceScript.generated.root)?.code === virtualCode) { + return { + fileName: sourceFileName, + code: virtualCode, + }; + } + for (const extraScript of getExtraServiceScripts?.(sourceFileName, sourceScript.generated.root) ?? []) { + if (extraScript.code === virtualCode) { + return extraScript; + } + } + } + } + }, + }; +} +function getBasicTriggerCharacters(tsVersion) { + const triggerCharacters = ['.', '"', '\'', '`', '/', '<']; + // https://github.com/microsoft/vscode/blob/8e65ae28d5fb8b3c931135da1a41edb9c80ae46f/extensions/typescript-language-features/src/languageFeatures/completions.ts#L811-L833 + if (semver.lt(tsVersion, '3.1.0') || semver.gte(tsVersion, '3.2.0')) { + triggerCharacters.push('@'); + } + if (semver.gte(tsVersion, '3.8.1')) { + triggerCharacters.push('#'); + } + if (semver.gte(tsVersion, '4.3.0')) { + triggerCharacters.push(' '); + } + return triggerCharacters; +} + +Object.defineProperty(volarServiceTypescript, "__esModule", { value: true }); +volarServiceTypescript.create = create$f; +const directiveComment_1 = directiveComment; +const docCommentTemplate_1 = docCommentTemplate; +const semantic_1 = semantic; +const syntactic_1 = syntactic; +function create$f(ts, options) { + return [ + (0, semantic_1.create)(ts, options), + (0, syntactic_1.create)(ts, options), + (0, docCommentTemplate_1.create)(ts), + (0, directiveComment_1.create)(), + ]; +} + +var volarServiceTypescriptTwoslashQueries = {}; + +Object.defineProperty(volarServiceTypescriptTwoslashQueries, "__esModule", { value: true }); +volarServiceTypescriptTwoslashQueries.create = create$e; +const vscode_uri_1$a = umdExports; +function create$e(ts) { + return { + name: 'typescript-twoslash-queries', + capabilities: { + inlayHintProvider: {}, + }, + create(context) { + return { + provideInlayHints(document, range) { + if (isTsDocument$1(document.languageId)) { + const languageService = context.inject('typescript/languageService'); + const fileName = context.inject('typescript/documentFileName', vscode_uri_1$a.URI.parse(document.uri)); + if (!languageService || !fileName) { + return; + } + const inlayHints = []; + for (const pointer of document.getText(range).matchAll(/^\s*\/\/\s*\^\?/gm)) { + const pointerOffset = pointer.index + pointer[0].indexOf('^?') + document.offsetAt(range.start); + const pointerPosition = document.positionAt(pointerOffset); + const hoverOffset = document.offsetAt({ + line: pointerPosition.line - 1, + character: pointerPosition.character, + }); + const quickInfo = languageService.getQuickInfoAtPosition(fileName, hoverOffset); + if (quickInfo) { + inlayHints.push({ + position: { line: pointerPosition.line, character: pointerPosition.character + 2 }, + label: ts.displayPartsToString(quickInfo.displayParts), + paddingLeft: true, + paddingRight: false, + }); + } + } + return inlayHints; + } + }, + }; + }, + }; +} +function isTsDocument$1(languageId) { + return languageId === 'javascript' || + languageId === 'typescript' || + languageId === 'javascriptreact' || + languageId === 'typescriptreact'; +} + +var css$1 = {}; + +var volarServiceCss = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var TokenType$1; +(function (TokenType) { + TokenType[TokenType["Ident"] = 0] = "Ident"; + TokenType[TokenType["AtKeyword"] = 1] = "AtKeyword"; + TokenType[TokenType["String"] = 2] = "String"; + TokenType[TokenType["BadString"] = 3] = "BadString"; + TokenType[TokenType["UnquotedString"] = 4] = "UnquotedString"; + TokenType[TokenType["Hash"] = 5] = "Hash"; + TokenType[TokenType["Num"] = 6] = "Num"; + TokenType[TokenType["Percentage"] = 7] = "Percentage"; + TokenType[TokenType["Dimension"] = 8] = "Dimension"; + TokenType[TokenType["UnicodeRange"] = 9] = "UnicodeRange"; + TokenType[TokenType["CDO"] = 10] = "CDO"; + TokenType[TokenType["CDC"] = 11] = "CDC"; + TokenType[TokenType["Colon"] = 12] = "Colon"; + TokenType[TokenType["SemiColon"] = 13] = "SemiColon"; + TokenType[TokenType["CurlyL"] = 14] = "CurlyL"; + TokenType[TokenType["CurlyR"] = 15] = "CurlyR"; + TokenType[TokenType["ParenthesisL"] = 16] = "ParenthesisL"; + TokenType[TokenType["ParenthesisR"] = 17] = "ParenthesisR"; + TokenType[TokenType["BracketL"] = 18] = "BracketL"; + TokenType[TokenType["BracketR"] = 19] = "BracketR"; + TokenType[TokenType["Whitespace"] = 20] = "Whitespace"; + TokenType[TokenType["Includes"] = 21] = "Includes"; + TokenType[TokenType["Dashmatch"] = 22] = "Dashmatch"; + TokenType[TokenType["SubstringOperator"] = 23] = "SubstringOperator"; + TokenType[TokenType["PrefixOperator"] = 24] = "PrefixOperator"; + TokenType[TokenType["SuffixOperator"] = 25] = "SuffixOperator"; + TokenType[TokenType["Delim"] = 26] = "Delim"; + TokenType[TokenType["EMS"] = 27] = "EMS"; + TokenType[TokenType["EXS"] = 28] = "EXS"; + TokenType[TokenType["Length"] = 29] = "Length"; + TokenType[TokenType["Angle"] = 30] = "Angle"; + TokenType[TokenType["Time"] = 31] = "Time"; + TokenType[TokenType["Freq"] = 32] = "Freq"; + TokenType[TokenType["Exclamation"] = 33] = "Exclamation"; + TokenType[TokenType["Resolution"] = 34] = "Resolution"; + TokenType[TokenType["Comma"] = 35] = "Comma"; + TokenType[TokenType["Charset"] = 36] = "Charset"; + TokenType[TokenType["EscapedJavaScript"] = 37] = "EscapedJavaScript"; + TokenType[TokenType["BadEscapedJavaScript"] = 38] = "BadEscapedJavaScript"; + TokenType[TokenType["Comment"] = 39] = "Comment"; + TokenType[TokenType["SingleLineComment"] = 40] = "SingleLineComment"; + TokenType[TokenType["EOF"] = 41] = "EOF"; + TokenType[TokenType["ContainerQueryLength"] = 42] = "ContainerQueryLength"; + TokenType[TokenType["CustomToken"] = 43] = "CustomToken"; // must be last token type +})(TokenType$1 || (TokenType$1 = {})); +let MultiLineStream$1 = class MultiLineStream { + constructor(source) { + this.source = source; + this.len = source.length; + this.position = 0; + } + substring(from, to = this.position) { + return this.source.substring(from, to); + } + eos() { + return this.len <= this.position; + } + pos() { + return this.position; + } + goBackTo(pos) { + this.position = pos; + } + goBack(n) { + this.position -= n; + } + advance(n) { + this.position += n; + } + nextChar() { + return this.source.charCodeAt(this.position++) || 0; + } + peekChar(n = 0) { + return this.source.charCodeAt(this.position + n) || 0; + } + lookbackChar(n = 0) { + return this.source.charCodeAt(this.position - n) || 0; + } + advanceIfChar(ch) { + if (ch === this.source.charCodeAt(this.position)) { + this.position++; + return true; + } + return false; + } + advanceIfChars(ch) { + if (this.position + ch.length > this.source.length) { + return false; + } + let i = 0; + for (; i < ch.length; i++) { + if (this.source.charCodeAt(this.position + i) !== ch[i]) { + return false; + } + } + this.advance(i); + return true; + } + advanceWhileChar(condition) { + const posNow = this.position; + while (this.position < this.len && condition(this.source.charCodeAt(this.position))) { + this.position++; + } + return this.position - posNow; + } +}; +const _a$1 = 'a'.charCodeAt(0); +const _f = 'f'.charCodeAt(0); +const _z$1 = 'z'.charCodeAt(0); +const _A$1 = 'A'.charCodeAt(0); +const _F = 'F'.charCodeAt(0); +const _Z$1 = 'Z'.charCodeAt(0); +const _0$2 = '0'.charCodeAt(0); +const _9$2 = '9'.charCodeAt(0); +const _TLD = '~'.charCodeAt(0); +const _HAT = '^'.charCodeAt(0); +const _EQS$2 = '='.charCodeAt(0); +const _PIP = '|'.charCodeAt(0); +const _MIN$1 = '-'.charCodeAt(0); +const _USC = '_'.charCodeAt(0); +const _PRC = '%'.charCodeAt(0); +const _MUL = '*'.charCodeAt(0); +const _LPA = '('.charCodeAt(0); +const _RPA = ')'.charCodeAt(0); +const _LAN$2 = '<'.charCodeAt(0); +const _RAN$2 = '>'.charCodeAt(0); +const _ATS = '@'.charCodeAt(0); +const _HSH$1 = '#'.charCodeAt(0); +const _DLR$1 = '$'.charCodeAt(0); +const _BSL = '\\'.charCodeAt(0); +const _FSL$3 = '/'.charCodeAt(0); +const _NWL$3 = '\n'.charCodeAt(0); +const _CAR$3 = '\r'.charCodeAt(0); +const _LFD$3 = '\f'.charCodeAt(0); +const _DQO$1 = '"'.charCodeAt(0); +const _SQO$1 = '\''.charCodeAt(0); +const _WSP$1 = ' '.charCodeAt(0); +const _TAB$1 = '\t'.charCodeAt(0); +const _SEM = ';'.charCodeAt(0); +const _COL = ':'.charCodeAt(0); +const _CUL$2 = '{'.charCodeAt(0); +const _CUR$1 = '}'.charCodeAt(0); +const _BRL = '['.charCodeAt(0); +const _BRR = ']'.charCodeAt(0); +const _CMA = ','.charCodeAt(0); +const _DOT$2 = '.'.charCodeAt(0); +const _BNG$2 = '!'.charCodeAt(0); +const _QSM = '?'.charCodeAt(0); +const _PLS = '+'.charCodeAt(0); +const staticTokenTable = {}; +staticTokenTable[_SEM] = TokenType$1.SemiColon; +staticTokenTable[_COL] = TokenType$1.Colon; +staticTokenTable[_CUL$2] = TokenType$1.CurlyL; +staticTokenTable[_CUR$1] = TokenType$1.CurlyR; +staticTokenTable[_BRR] = TokenType$1.BracketR; +staticTokenTable[_BRL] = TokenType$1.BracketL; +staticTokenTable[_LPA] = TokenType$1.ParenthesisL; +staticTokenTable[_RPA] = TokenType$1.ParenthesisR; +staticTokenTable[_CMA] = TokenType$1.Comma; +const staticUnitTable = {}; +staticUnitTable['em'] = TokenType$1.EMS; +staticUnitTable['ex'] = TokenType$1.EXS; +staticUnitTable['px'] = TokenType$1.Length; +staticUnitTable['cm'] = TokenType$1.Length; +staticUnitTable['mm'] = TokenType$1.Length; +staticUnitTable['in'] = TokenType$1.Length; +staticUnitTable['pt'] = TokenType$1.Length; +staticUnitTable['pc'] = TokenType$1.Length; +staticUnitTable['deg'] = TokenType$1.Angle; +staticUnitTable['rad'] = TokenType$1.Angle; +staticUnitTable['grad'] = TokenType$1.Angle; +staticUnitTable['ms'] = TokenType$1.Time; +staticUnitTable['s'] = TokenType$1.Time; +staticUnitTable['hz'] = TokenType$1.Freq; +staticUnitTable['khz'] = TokenType$1.Freq; +staticUnitTable['%'] = TokenType$1.Percentage; +staticUnitTable['fr'] = TokenType$1.Percentage; +staticUnitTable['dpi'] = TokenType$1.Resolution; +staticUnitTable['dpcm'] = TokenType$1.Resolution; +staticUnitTable['cqw'] = TokenType$1.ContainerQueryLength; +staticUnitTable['cqh'] = TokenType$1.ContainerQueryLength; +staticUnitTable['cqi'] = TokenType$1.ContainerQueryLength; +staticUnitTable['cqb'] = TokenType$1.ContainerQueryLength; +staticUnitTable['cqmin'] = TokenType$1.ContainerQueryLength; +staticUnitTable['cqmax'] = TokenType$1.ContainerQueryLength; +class Scanner { + constructor() { + this.stream = new MultiLineStream$1(''); + this.ignoreComment = true; + this.ignoreWhitespace = true; + this.inURL = false; + } + setSource(input) { + this.stream = new MultiLineStream$1(input); + } + finishToken(offset, type, text) { + return { + offset: offset, + len: this.stream.pos() - offset, + type: type, + text: text || this.stream.substring(offset) + }; + } + substring(offset, len) { + return this.stream.substring(offset, offset + len); + } + pos() { + return this.stream.pos(); + } + goBackTo(pos) { + this.stream.goBackTo(pos); + } + scanUnquotedString() { + const offset = this.stream.pos(); + const content = []; + if (this._unquotedString(content)) { + return this.finishToken(offset, TokenType$1.UnquotedString, content.join('')); + } + return null; + } + scan() { + // processes all whitespaces and comments + const triviaToken = this.trivia(); + if (triviaToken !== null) { + return triviaToken; + } + const offset = this.stream.pos(); + // End of file/input + if (this.stream.eos()) { + return this.finishToken(offset, TokenType$1.EOF); + } + return this.scanNext(offset); + } + /** + * Read the range as described in https://www.w3.org/TR/CSS21/syndata.html#tokenization + * Assume the `u` has aleady been consumed + * @returns if reading the unicode was successful + */ + tryScanUnicode() { + const offset = this.stream.pos(); + if (!this.stream.eos() && this._unicodeRange()) { + return this.finishToken(offset, TokenType$1.UnicodeRange); + } + this.stream.goBackTo(offset); + return undefined; + } + scanNext(offset) { + // CDO <!-- + if (this.stream.advanceIfChars([_LAN$2, _BNG$2, _MIN$1, _MIN$1])) { + return this.finishToken(offset, TokenType$1.CDO); + } + // CDC --> + if (this.stream.advanceIfChars([_MIN$1, _MIN$1, _RAN$2])) { + return this.finishToken(offset, TokenType$1.CDC); + } + let content = []; + if (this.ident(content)) { + return this.finishToken(offset, TokenType$1.Ident, content.join('')); + } + // at-keyword + if (this.stream.advanceIfChar(_ATS)) { + content = ['@']; + if (this._name(content)) { + const keywordText = content.join(''); + if (keywordText === '@charset') { + return this.finishToken(offset, TokenType$1.Charset, keywordText); + } + return this.finishToken(offset, TokenType$1.AtKeyword, keywordText); + } + else { + return this.finishToken(offset, TokenType$1.Delim); + } + } + // hash + if (this.stream.advanceIfChar(_HSH$1)) { + content = ['#']; + if (this._name(content)) { + return this.finishToken(offset, TokenType$1.Hash, content.join('')); + } + else { + return this.finishToken(offset, TokenType$1.Delim); + } + } + // Important + if (this.stream.advanceIfChar(_BNG$2)) { + return this.finishToken(offset, TokenType$1.Exclamation); + } + // Numbers + if (this._number()) { + const pos = this.stream.pos(); + content = [this.stream.substring(offset, pos)]; + if (this.stream.advanceIfChar(_PRC)) { + // Percentage 43% + return this.finishToken(offset, TokenType$1.Percentage); + } + else if (this.ident(content)) { + const dim = this.stream.substring(pos).toLowerCase(); + const tokenType = staticUnitTable[dim]; + if (typeof tokenType !== 'undefined') { + // Known dimension 43px + return this.finishToken(offset, tokenType, content.join('')); + } + else { + // Unknown dimension 43ft + return this.finishToken(offset, TokenType$1.Dimension, content.join('')); + } + } + return this.finishToken(offset, TokenType$1.Num); + } + // String, BadString + content = []; + let tokenType = this._string(content); + if (tokenType !== null) { + return this.finishToken(offset, tokenType, content.join('')); + } + // single character tokens + tokenType = staticTokenTable[this.stream.peekChar()]; + if (typeof tokenType !== 'undefined') { + this.stream.advance(1); + return this.finishToken(offset, tokenType); + } + // includes ~= + if (this.stream.peekChar(0) === _TLD && this.stream.peekChar(1) === _EQS$2) { + this.stream.advance(2); + return this.finishToken(offset, TokenType$1.Includes); + } + // DashMatch |= + if (this.stream.peekChar(0) === _PIP && this.stream.peekChar(1) === _EQS$2) { + this.stream.advance(2); + return this.finishToken(offset, TokenType$1.Dashmatch); + } + // Substring operator *= + if (this.stream.peekChar(0) === _MUL && this.stream.peekChar(1) === _EQS$2) { + this.stream.advance(2); + return this.finishToken(offset, TokenType$1.SubstringOperator); + } + // Substring operator ^= + if (this.stream.peekChar(0) === _HAT && this.stream.peekChar(1) === _EQS$2) { + this.stream.advance(2); + return this.finishToken(offset, TokenType$1.PrefixOperator); + } + // Substring operator $= + if (this.stream.peekChar(0) === _DLR$1 && this.stream.peekChar(1) === _EQS$2) { + this.stream.advance(2); + return this.finishToken(offset, TokenType$1.SuffixOperator); + } + // Delim + this.stream.nextChar(); + return this.finishToken(offset, TokenType$1.Delim); + } + trivia() { + while (true) { + const offset = this.stream.pos(); + if (this._whitespace()) { + if (!this.ignoreWhitespace) { + return this.finishToken(offset, TokenType$1.Whitespace); + } + } + else if (this.comment()) { + if (!this.ignoreComment) { + return this.finishToken(offset, TokenType$1.Comment); + } + } + else { + return null; + } + } + } + comment() { + if (this.stream.advanceIfChars([_FSL$3, _MUL])) { + let success = false, hot = false; + this.stream.advanceWhileChar((ch) => { + if (hot && ch === _FSL$3) { + success = true; + return false; + } + hot = ch === _MUL; + return true; + }); + if (success) { + this.stream.advance(1); + } + return true; + } + return false; + } + _number() { + let npeek = 0, ch; + if (this.stream.peekChar() === _DOT$2) { + npeek = 1; + } + ch = this.stream.peekChar(npeek); + if (ch >= _0$2 && ch <= _9$2) { + this.stream.advance(npeek + 1); + this.stream.advanceWhileChar((ch) => { + return ch >= _0$2 && ch <= _9$2 || npeek === 0 && ch === _DOT$2; + }); + return true; + } + return false; + } + _newline(result) { + const ch = this.stream.peekChar(); + switch (ch) { + case _CAR$3: + case _LFD$3: + case _NWL$3: + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + if (ch === _CAR$3 && this.stream.advanceIfChar(_NWL$3)) { + result.push('\n'); + } + return true; + } + return false; + } + _escape(result, includeNewLines) { + let ch = this.stream.peekChar(); + if (ch === _BSL) { + this.stream.advance(1); + ch = this.stream.peekChar(); + let hexNumCount = 0; + while (hexNumCount < 6 && (ch >= _0$2 && ch <= _9$2 || ch >= _a$1 && ch <= _f || ch >= _A$1 && ch <= _F)) { + this.stream.advance(1); + ch = this.stream.peekChar(); + hexNumCount++; + } + if (hexNumCount > 0) { + try { + const hexVal = parseInt(this.stream.substring(this.stream.pos() - hexNumCount), 16); + if (hexVal) { + result.push(String.fromCharCode(hexVal)); + } + } + catch (e) { + // ignore + } + // optional whitespace or new line, not part of result text + if (ch === _WSP$1 || ch === _TAB$1) { + this.stream.advance(1); + } + else { + this._newline([]); + } + return true; + } + if (ch !== _CAR$3 && ch !== _LFD$3 && ch !== _NWL$3) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + else if (includeNewLines) { + return this._newline(result); + } + } + return false; + } + _stringChar(closeQuote, result) { + // not closeQuote, not backslash, not newline + const ch = this.stream.peekChar(); + if (ch !== 0 && ch !== closeQuote && ch !== _BSL && ch !== _CAR$3 && ch !== _LFD$3 && ch !== _NWL$3) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + } + _string(result) { + if (this.stream.peekChar() === _SQO$1 || this.stream.peekChar() === _DQO$1) { + const closeQuote = this.stream.nextChar(); + result.push(String.fromCharCode(closeQuote)); + while (this._stringChar(closeQuote, result) || this._escape(result, true)) { + // loop + } + if (this.stream.peekChar() === closeQuote) { + this.stream.nextChar(); + result.push(String.fromCharCode(closeQuote)); + return TokenType$1.String; + } + else { + return TokenType$1.BadString; + } + } + return null; + } + _unquotedChar(result) { + // not closeQuote, not backslash, not newline + const ch = this.stream.peekChar(); + if (ch !== 0 && ch !== _BSL && ch !== _SQO$1 && ch !== _DQO$1 && ch !== _LPA && ch !== _RPA && ch !== _WSP$1 && ch !== _TAB$1 && ch !== _NWL$3 && ch !== _LFD$3 && ch !== _CAR$3) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + } + _unquotedString(result) { + let hasContent = false; + while (this._unquotedChar(result) || this._escape(result)) { + hasContent = true; + } + return hasContent; + } + _whitespace() { + const n = this.stream.advanceWhileChar((ch) => { + return ch === _WSP$1 || ch === _TAB$1 || ch === _NWL$3 || ch === _LFD$3 || ch === _CAR$3; + }); + return n > 0; + } + _name(result) { + let matched = false; + while (this._identChar(result) || this._escape(result)) { + matched = true; + } + return matched; + } + ident(result) { + const pos = this.stream.pos(); + const hasMinus = this._minus(result); + if (hasMinus) { + if (this._minus(result) /* -- */ || this._identFirstChar(result) || this._escape(result)) { + while (this._identChar(result) || this._escape(result)) { + // loop + } + return true; + } + } + else if (this._identFirstChar(result) || this._escape(result)) { + while (this._identChar(result) || this._escape(result)) { + // loop + } + return true; + } + this.stream.goBackTo(pos); + return false; + } + _identFirstChar(result) { + const ch = this.stream.peekChar(); + if (ch === _USC || // _ + ch >= _a$1 && ch <= _z$1 || // a-z + ch >= _A$1 && ch <= _Z$1 || // A-Z + ch >= 0x80 && ch <= 0xFFFF) { // nonascii + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + } + _minus(result) { + const ch = this.stream.peekChar(); + if (ch === _MIN$1) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + } + _identChar(result) { + const ch = this.stream.peekChar(); + if (ch === _USC || // _ + ch === _MIN$1 || // - + ch >= _a$1 && ch <= _z$1 || // a-z + ch >= _A$1 && ch <= _Z$1 || // A-Z + ch >= _0$2 && ch <= _9$2 || // 0/9 + ch >= 0x80 && ch <= 0xFFFF) { // nonascii + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + } + _unicodeRange() { + // follow https://www.w3.org/TR/CSS21/syndata.html#tokenization and https://www.w3.org/TR/css-syntax-3/#urange-syntax + // assume u has already been parsed + if (this.stream.advanceIfChar(_PLS)) { + const isHexDigit = (ch) => (ch >= _0$2 && ch <= _9$2 || ch >= _a$1 && ch <= _f || ch >= _A$1 && ch <= _F); + const codePoints = this.stream.advanceWhileChar(isHexDigit) + this.stream.advanceWhileChar(ch => ch === _QSM); + if (codePoints >= 1 && codePoints <= 6) { + if (this.stream.advanceIfChar(_MIN$1)) { + const digits = this.stream.advanceWhileChar(isHexDigit); + if (digits >= 1 && digits <= 6) { + return true; + } + } + else { + return true; + } + } + } + return false; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function startsWith$1(haystack, needle) { + if (haystack.length < needle.length) { + return false; + } + for (let i = 0; i < needle.length; i++) { + if (haystack[i] !== needle[i]) { + return false; + } + } + return true; +} +/** + * Determines if haystack ends with needle. + */ +function endsWith$1(haystack, needle) { + let diff = haystack.length - needle.length; + if (diff > 0) { + return haystack.lastIndexOf(needle) === diff; + } + else if (diff === 0) { + return haystack === needle; + } + else { + return false; + } +} +/** + * Computes the difference score for two strings. More similar strings have a higher score. + * We use largest common subsequence dynamic programming approach but penalize in the end for length differences. + * Strings that have a large length difference will get a bad default score 0. + * Complexity - both time and space O(first.length * second.length) + * Dynamic programming LCS computation http://en.wikipedia.org/wiki/Longest_common_subsequence_problem + * + * @param first a string + * @param second a string + */ +function difference(first, second, maxLenDelta = 4) { + let lengthDifference = Math.abs(first.length - second.length); + // We only compute score if length of the currentWord and length of entry.name are similar. + if (lengthDifference > maxLenDelta) { + return 0; + } + // Initialize LCS (largest common subsequence) matrix. + let LCS = []; + let zeroArray = []; + let i, j; + for (i = 0; i < second.length + 1; ++i) { + zeroArray.push(0); + } + for (i = 0; i < first.length + 1; ++i) { + LCS.push(zeroArray); + } + for (i = 1; i < first.length + 1; ++i) { + for (j = 1; j < second.length + 1; ++j) { + if (first[i - 1] === second[j - 1]) { + LCS[i][j] = LCS[i - 1][j - 1] + 1; + } + else { + LCS[i][j] = Math.max(LCS[i - 1][j], LCS[i][j - 1]); + } + } + } + return LCS[first.length][second.length] - Math.sqrt(lengthDifference); +} +/** + * Limit of string length. + */ +function getLimitedString(str, ellipsis = true) { + if (!str) { + return ''; + } + if (str.length < 140) { + return str; + } + return str.slice(0, 140) + (ellipsis ? '\u2026' : ''); +} +/** + * Limit of string length. + */ +function trim(str, regexp) { + const m = regexp.exec(str); + if (m && m[0].length) { + return str.substr(0, str.length - m[0].length); + } + return str; +} +function repeat$1(value, count) { + let s = ''; + while (count > 0) { + if ((count & 1) === 1) { + s += value; + } + value += value; + count = count >>> 1; + } + return s; +} +function convertSimple2RegExpPattern(pattern) { + return pattern.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&').replace(/[\*]/g, '.*'); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/// <summary> +/// Nodes for the css 2.1 specification. See for reference: +/// http://www.w3.org/TR/CSS21/grammar.html#grammar +/// </summary> +var NodeType; +(function (NodeType) { + NodeType[NodeType["Undefined"] = 0] = "Undefined"; + NodeType[NodeType["Identifier"] = 1] = "Identifier"; + NodeType[NodeType["Stylesheet"] = 2] = "Stylesheet"; + NodeType[NodeType["Ruleset"] = 3] = "Ruleset"; + NodeType[NodeType["Selector"] = 4] = "Selector"; + NodeType[NodeType["SimpleSelector"] = 5] = "SimpleSelector"; + NodeType[NodeType["SelectorInterpolation"] = 6] = "SelectorInterpolation"; + NodeType[NodeType["SelectorCombinator"] = 7] = "SelectorCombinator"; + NodeType[NodeType["SelectorCombinatorParent"] = 8] = "SelectorCombinatorParent"; + NodeType[NodeType["SelectorCombinatorSibling"] = 9] = "SelectorCombinatorSibling"; + NodeType[NodeType["SelectorCombinatorAllSiblings"] = 10] = "SelectorCombinatorAllSiblings"; + NodeType[NodeType["SelectorCombinatorShadowPiercingDescendant"] = 11] = "SelectorCombinatorShadowPiercingDescendant"; + NodeType[NodeType["Page"] = 12] = "Page"; + NodeType[NodeType["PageBoxMarginBox"] = 13] = "PageBoxMarginBox"; + NodeType[NodeType["ClassSelector"] = 14] = "ClassSelector"; + NodeType[NodeType["IdentifierSelector"] = 15] = "IdentifierSelector"; + NodeType[NodeType["ElementNameSelector"] = 16] = "ElementNameSelector"; + NodeType[NodeType["PseudoSelector"] = 17] = "PseudoSelector"; + NodeType[NodeType["AttributeSelector"] = 18] = "AttributeSelector"; + NodeType[NodeType["Declaration"] = 19] = "Declaration"; + NodeType[NodeType["Declarations"] = 20] = "Declarations"; + NodeType[NodeType["Property"] = 21] = "Property"; + NodeType[NodeType["Expression"] = 22] = "Expression"; + NodeType[NodeType["BinaryExpression"] = 23] = "BinaryExpression"; + NodeType[NodeType["Term"] = 24] = "Term"; + NodeType[NodeType["Operator"] = 25] = "Operator"; + NodeType[NodeType["Value"] = 26] = "Value"; + NodeType[NodeType["StringLiteral"] = 27] = "StringLiteral"; + NodeType[NodeType["URILiteral"] = 28] = "URILiteral"; + NodeType[NodeType["EscapedValue"] = 29] = "EscapedValue"; + NodeType[NodeType["Function"] = 30] = "Function"; + NodeType[NodeType["NumericValue"] = 31] = "NumericValue"; + NodeType[NodeType["HexColorValue"] = 32] = "HexColorValue"; + NodeType[NodeType["RatioValue"] = 33] = "RatioValue"; + NodeType[NodeType["MixinDeclaration"] = 34] = "MixinDeclaration"; + NodeType[NodeType["MixinReference"] = 35] = "MixinReference"; + NodeType[NodeType["VariableName"] = 36] = "VariableName"; + NodeType[NodeType["VariableDeclaration"] = 37] = "VariableDeclaration"; + NodeType[NodeType["Prio"] = 38] = "Prio"; + NodeType[NodeType["Interpolation"] = 39] = "Interpolation"; + NodeType[NodeType["NestedProperties"] = 40] = "NestedProperties"; + NodeType[NodeType["ExtendsReference"] = 41] = "ExtendsReference"; + NodeType[NodeType["SelectorPlaceholder"] = 42] = "SelectorPlaceholder"; + NodeType[NodeType["Debug"] = 43] = "Debug"; + NodeType[NodeType["If"] = 44] = "If"; + NodeType[NodeType["Else"] = 45] = "Else"; + NodeType[NodeType["For"] = 46] = "For"; + NodeType[NodeType["Each"] = 47] = "Each"; + NodeType[NodeType["While"] = 48] = "While"; + NodeType[NodeType["MixinContentReference"] = 49] = "MixinContentReference"; + NodeType[NodeType["MixinContentDeclaration"] = 50] = "MixinContentDeclaration"; + NodeType[NodeType["Media"] = 51] = "Media"; + NodeType[NodeType["Keyframe"] = 52] = "Keyframe"; + NodeType[NodeType["FontFace"] = 53] = "FontFace"; + NodeType[NodeType["Import"] = 54] = "Import"; + NodeType[NodeType["Namespace"] = 55] = "Namespace"; + NodeType[NodeType["Invocation"] = 56] = "Invocation"; + NodeType[NodeType["FunctionDeclaration"] = 57] = "FunctionDeclaration"; + NodeType[NodeType["ReturnStatement"] = 58] = "ReturnStatement"; + NodeType[NodeType["MediaQuery"] = 59] = "MediaQuery"; + NodeType[NodeType["MediaCondition"] = 60] = "MediaCondition"; + NodeType[NodeType["MediaFeature"] = 61] = "MediaFeature"; + NodeType[NodeType["FunctionParameter"] = 62] = "FunctionParameter"; + NodeType[NodeType["FunctionArgument"] = 63] = "FunctionArgument"; + NodeType[NodeType["KeyframeSelector"] = 64] = "KeyframeSelector"; + NodeType[NodeType["ViewPort"] = 65] = "ViewPort"; + NodeType[NodeType["Document"] = 66] = "Document"; + NodeType[NodeType["AtApplyRule"] = 67] = "AtApplyRule"; + NodeType[NodeType["CustomPropertyDeclaration"] = 68] = "CustomPropertyDeclaration"; + NodeType[NodeType["CustomPropertySet"] = 69] = "CustomPropertySet"; + NodeType[NodeType["ListEntry"] = 70] = "ListEntry"; + NodeType[NodeType["Supports"] = 71] = "Supports"; + NodeType[NodeType["SupportsCondition"] = 72] = "SupportsCondition"; + NodeType[NodeType["NamespacePrefix"] = 73] = "NamespacePrefix"; + NodeType[NodeType["GridLine"] = 74] = "GridLine"; + NodeType[NodeType["Plugin"] = 75] = "Plugin"; + NodeType[NodeType["UnknownAtRule"] = 76] = "UnknownAtRule"; + NodeType[NodeType["Use"] = 77] = "Use"; + NodeType[NodeType["ModuleConfiguration"] = 78] = "ModuleConfiguration"; + NodeType[NodeType["Forward"] = 79] = "Forward"; + NodeType[NodeType["ForwardVisibility"] = 80] = "ForwardVisibility"; + NodeType[NodeType["Module"] = 81] = "Module"; + NodeType[NodeType["UnicodeRange"] = 82] = "UnicodeRange"; + NodeType[NodeType["Layer"] = 83] = "Layer"; + NodeType[NodeType["LayerNameList"] = 84] = "LayerNameList"; + NodeType[NodeType["LayerName"] = 85] = "LayerName"; + NodeType[NodeType["PropertyAtRule"] = 86] = "PropertyAtRule"; + NodeType[NodeType["Container"] = 87] = "Container"; + NodeType[NodeType["ModuleConfig"] = 88] = "ModuleConfig"; +})(NodeType || (NodeType = {})); +var ReferenceType; +(function (ReferenceType) { + ReferenceType[ReferenceType["Mixin"] = 0] = "Mixin"; + ReferenceType[ReferenceType["Rule"] = 1] = "Rule"; + ReferenceType[ReferenceType["Variable"] = 2] = "Variable"; + ReferenceType[ReferenceType["Function"] = 3] = "Function"; + ReferenceType[ReferenceType["Keyframe"] = 4] = "Keyframe"; + ReferenceType[ReferenceType["Unknown"] = 5] = "Unknown"; + ReferenceType[ReferenceType["Module"] = 6] = "Module"; + ReferenceType[ReferenceType["Forward"] = 7] = "Forward"; + ReferenceType[ReferenceType["ForwardVisibility"] = 8] = "ForwardVisibility"; + ReferenceType[ReferenceType["Property"] = 9] = "Property"; +})(ReferenceType || (ReferenceType = {})); +function getNodeAtOffset(node, offset) { + let candidate = null; + if (!node || offset < node.offset || offset > node.end) { + return null; + } + // Find the shortest node at the position + node.accept((node) => { + if (node.offset === -1 && node.length === -1) { + return true; + } + if (node.offset <= offset && node.end >= offset) { + if (!candidate) { + candidate = node; + } + else if (node.length <= candidate.length) { + candidate = node; + } + return true; + } + return false; + }); + return candidate; +} +function getNodePath(node, offset) { + let candidate = getNodeAtOffset(node, offset); + const path = []; + while (candidate) { + path.unshift(candidate); + candidate = candidate.parent; + } + return path; +} +function getParentDeclaration(node) { + const decl = node.findParent(NodeType.Declaration); + const value = decl && decl.getValue(); + if (value && value.encloses(node)) { + return decl; + } + return null; +} +let Node$1 = class Node { + get end() { return this.offset + this.length; } + constructor(offset = -1, len = -1, nodeType) { + this.parent = null; + this.offset = offset; + this.length = len; + if (nodeType) { + this.nodeType = nodeType; + } + } + set type(type) { + this.nodeType = type; + } + get type() { + return this.nodeType || NodeType.Undefined; + } + getTextProvider() { + let node = this; + while (node && !node.textProvider) { + node = node.parent; + } + if (node) { + return node.textProvider; + } + return () => { return 'unknown'; }; + } + getText() { + return this.getTextProvider()(this.offset, this.length); + } + matches(str) { + return this.length === str.length && this.getTextProvider()(this.offset, this.length) === str; + } + startsWith(str) { + return this.length >= str.length && this.getTextProvider()(this.offset, str.length) === str; + } + endsWith(str) { + return this.length >= str.length && this.getTextProvider()(this.end - str.length, str.length) === str; + } + accept(visitor) { + if (visitor(this) && this.children) { + for (const child of this.children) { + child.accept(visitor); + } + } + } + acceptVisitor(visitor) { + this.accept(visitor.visitNode.bind(visitor)); + } + adoptChild(node, index = -1) { + if (node.parent && node.parent.children) { + const idx = node.parent.children.indexOf(node); + if (idx >= 0) { + node.parent.children.splice(idx, 1); + } + } + node.parent = this; + let children = this.children; + if (!children) { + children = this.children = []; + } + if (index !== -1) { + children.splice(index, 0, node); + } + else { + children.push(node); + } + return node; + } + attachTo(parent, index = -1) { + if (parent) { + parent.adoptChild(this, index); + } + return this; + } + collectIssues(results) { + if (this.issues) { + results.push.apply(results, this.issues); + } + } + addIssue(issue) { + if (!this.issues) { + this.issues = []; + } + this.issues.push(issue); + } + hasIssue(rule) { + return Array.isArray(this.issues) && this.issues.some(i => i.getRule() === rule); + } + isErroneous(recursive = false) { + if (this.issues && this.issues.length > 0) { + return true; + } + return recursive && Array.isArray(this.children) && this.children.some(c => c.isErroneous(true)); + } + setNode(field, node, index = -1) { + if (node) { + node.attachTo(this, index); + this[field] = node; + return true; + } + return false; + } + addChild(node) { + if (node) { + if (!this.children) { + this.children = []; + } + node.attachTo(this); + this.updateOffsetAndLength(node); + return true; + } + return false; + } + updateOffsetAndLength(node) { + if (node.offset < this.offset || this.offset === -1) { + this.offset = node.offset; + } + const nodeEnd = node.end; + if ((nodeEnd > this.end) || this.length === -1) { + this.length = nodeEnd - this.offset; + } + } + hasChildren() { + return !!this.children && this.children.length > 0; + } + getChildren() { + return this.children ? this.children.slice(0) : []; + } + getChild(index) { + if (this.children && index < this.children.length) { + return this.children[index]; + } + return null; + } + addChildren(nodes) { + for (const node of nodes) { + this.addChild(node); + } + } + findFirstChildBeforeOffset(offset) { + if (this.children) { + let current = null; + for (let i = this.children.length - 1; i >= 0; i--) { + // iterate until we find a child that has a start offset smaller than the input offset + current = this.children[i]; + if (current.offset <= offset) { + return current; + } + } + } + return null; + } + findChildAtOffset(offset, goDeep) { + const current = this.findFirstChildBeforeOffset(offset); + if (current && current.end >= offset) { + if (goDeep) { + return current.findChildAtOffset(offset, true) || current; + } + return current; + } + return null; + } + encloses(candidate) { + return this.offset <= candidate.offset && this.offset + this.length >= candidate.offset + candidate.length; + } + getParent() { + let result = this.parent; + while (result instanceof Nodelist) { + result = result.parent; + } + return result; + } + findParent(type) { + let result = this; + while (result && result.type !== type) { + result = result.parent; + } + return result; + } + findAParent(...types) { + let result = this; + while (result && !types.some(t => result.type === t)) { + result = result.parent; + } + return result; + } + setData(key, value) { + if (!this.options) { + this.options = {}; + } + this.options[key] = value; + } + getData(key) { + if (!this.options || !this.options.hasOwnProperty(key)) { + return null; + } + return this.options[key]; + } +}; +class Nodelist extends Node$1 { + constructor(parent, index = -1) { + super(-1, -1); + this.attachTo(parent, index); + this.offset = -1; + this.length = -1; + } +} +class UnicodeRange extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.UnicodeRange; + } + setRangeStart(rangeStart) { + return this.setNode('rangeStart', rangeStart); + } + getRangeStart() { + return this.rangeStart; + } + setRangeEnd(rangeEnd) { + return this.setNode('rangeEnd', rangeEnd); + } + getRangeEnd() { + return this.rangeEnd; + } +} +class Identifier extends Node$1 { + constructor(offset, length) { + super(offset, length); + this.isCustomProperty = false; + } + get type() { + return NodeType.Identifier; + } + containsInterpolation() { + return this.hasChildren(); + } +} +class Stylesheet extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Stylesheet; + } +} +class Declarations extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Declarations; + } +} +class BodyDeclaration extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + getDeclarations() { + return this.declarations; + } + setDeclarations(decls) { + return this.setNode('declarations', decls); + } +} +class RuleSet extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Ruleset; + } + getSelectors() { + if (!this.selectors) { + this.selectors = new Nodelist(this); + } + return this.selectors; + } + isNested() { + return !!this.parent && this.parent.findParent(NodeType.Declarations) !== null; + } +} +class Selector extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Selector; + } +} +class SimpleSelector extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.SimpleSelector; + } +} +class AbstractDeclaration extends Node$1 { + constructor(offset, length) { + super(offset, length); + } +} +class CustomPropertySet extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.CustomPropertySet; + } +} +class Declaration extends AbstractDeclaration { + constructor(offset, length) { + super(offset, length); + this.property = null; + } + get type() { + return NodeType.Declaration; + } + setProperty(node) { + return this.setNode('property', node); + } + getProperty() { + return this.property; + } + getFullPropertyName() { + const propertyName = this.property ? this.property.getName() : 'unknown'; + if (this.parent instanceof Declarations && this.parent.getParent() instanceof NestedProperties) { + const parentDecl = this.parent.getParent().getParent(); + if (parentDecl instanceof Declaration) { + return parentDecl.getFullPropertyName() + propertyName; + } + } + return propertyName; + } + getNonPrefixedPropertyName() { + const propertyName = this.getFullPropertyName(); + if (propertyName && propertyName.charAt(0) === '-') { + const vendorPrefixEnd = propertyName.indexOf('-', 1); + if (vendorPrefixEnd !== -1) { + return propertyName.substring(vendorPrefixEnd + 1); + } + } + return propertyName; + } + setValue(value) { + return this.setNode('value', value); + } + getValue() { + return this.value; + } + setNestedProperties(value) { + return this.setNode('nestedProperties', value); + } + getNestedProperties() { + return this.nestedProperties; + } +} +class CustomPropertyDeclaration extends Declaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.CustomPropertyDeclaration; + } + setPropertySet(value) { + return this.setNode('propertySet', value); + } + getPropertySet() { + return this.propertySet; + } +} +class Property extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Property; + } + setIdentifier(value) { + return this.setNode('identifier', value); + } + getIdentifier() { + return this.identifier; + } + getName() { + return trim(this.getText(), /[_\+]+$/); /* +_: less merge */ + } + isCustomProperty() { + return !!this.identifier && this.identifier.isCustomProperty; + } +} +class Invocation extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Invocation; + } + getArguments() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + } +} +let Function$1 = class Function extends Invocation { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Function; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } +}; +class FunctionParameter extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.FunctionParameter; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + setDefaultValue(node) { + return this.setNode('defaultValue', node, 0); + } + getDefaultValue() { + return this.defaultValue; + } +} +class FunctionArgument extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.FunctionArgument; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + setValue(node) { + return this.setNode('value', node, 0); + } + getValue() { + return this.value; + } +} +class IfStatement extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.If; + } + setExpression(node) { + return this.setNode('expression', node, 0); + } + setElseClause(elseClause) { + return this.setNode('elseClause', elseClause); + } +} +class ForStatement extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.For; + } + setVariable(node) { + return this.setNode('variable', node, 0); + } +} +class EachStatement extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Each; + } + getVariables() { + if (!this.variables) { + this.variables = new Nodelist(this); + } + return this.variables; + } +} +class WhileStatement extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.While; + } +} +class ElseStatement extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Else; + } +} +class FunctionDeclaration extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.FunctionDeclaration; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + getParameters() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + } +} +class ViewPort extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.ViewPort; + } +} +class FontFace extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.FontFace; + } +} +class NestedProperties extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.NestedProperties; + } +} +class Keyframe extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Keyframe; + } + setKeyword(keyword) { + return this.setNode('keyword', keyword, 0); + } + getKeyword() { + return this.keyword; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } +} +class KeyframeSelector extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.KeyframeSelector; + } +} +class Import extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Import; + } + setMedialist(node) { + if (node) { + node.attachTo(this); + return true; + } + return false; + } +} +class Use extends Node$1 { + get type() { + return NodeType.Use; + } + setParameters(value) { + return this.setNode('parameters', value); + } + getParameters() { + return this.parameters; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } +} +class ModuleConfiguration extends Node$1 { + get type() { + return NodeType.ModuleConfiguration; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + setValue(node) { + return this.setNode('value', node, 0); + } + getValue() { + return this.value; + } +} +class Forward extends Node$1 { + get type() { + return NodeType.Forward; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + setParameters(value) { + return this.setNode('parameters', value); + } + getParameters() { + return this.parameters; + } +} +class ForwardVisibility extends Node$1 { + get type() { + return NodeType.ForwardVisibility; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } +} +class Namespace extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Namespace; + } +} +class Media extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Media; + } +} +class Supports extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Supports; + } +} +class Layer extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Layer; + } + setNames(names) { + return this.setNode('names', names); + } + getNames() { + return this.names; + } +} +class PropertyAtRule extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.PropertyAtRule; + } + setName(node) { + if (node) { + node.attachTo(this); + this.name = node; + return true; + } + return false; + } + getName() { + return this.name; + } +} +class Document extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Document; + } +} +class Container extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Container; + } +} +class Medialist extends Node$1 { + constructor(offset, length) { + super(offset, length); + } +} +class MediaQuery extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MediaQuery; + } +} +class MediaCondition extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MediaCondition; + } +} +class MediaFeature extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MediaFeature; + } +} +class SupportsCondition extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.SupportsCondition; + } +} +class Page extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Page; + } +} +class PageBoxMarginBox extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.PageBoxMarginBox; + } +} +class Expression extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Expression; + } +} +class BinaryExpression extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.BinaryExpression; + } + setLeft(left) { + return this.setNode('left', left); + } + getLeft() { + return this.left; + } + setRight(right) { + return this.setNode('right', right); + } + getRight() { + return this.right; + } + setOperator(value) { + return this.setNode('operator', value); + } + getOperator() { + return this.operator; + } +} +class Term extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Term; + } + setOperator(value) { + return this.setNode('operator', value); + } + getOperator() { + return this.operator; + } + setExpression(value) { + return this.setNode('expression', value); + } + getExpression() { + return this.expression; + } +} +class AttributeSelector extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.AttributeSelector; + } + setNamespacePrefix(value) { + return this.setNode('namespacePrefix', value); + } + getNamespacePrefix() { + return this.namespacePrefix; + } + setIdentifier(value) { + return this.setNode('identifier', value); + } + getIdentifier() { + return this.identifier; + } + setOperator(operator) { + return this.setNode('operator', operator); + } + getOperator() { + return this.operator; + } + setValue(value) { + return this.setNode('value', value); + } + getValue() { + return this.value; + } +} +class HexColorValue extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.HexColorValue; + } +} +class RatioValue extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.RatioValue; + } +} +const _dot = '.'.charCodeAt(0), _0$1 = '0'.charCodeAt(0), _9$1 = '9'.charCodeAt(0); +class NumericValue extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.NumericValue; + } + getValue() { + const raw = this.getText(); + let unitIdx = 0; + let code; + for (let i = 0, len = raw.length; i < len; i++) { + code = raw.charCodeAt(i); + if (!(_0$1 <= code && code <= _9$1 || code === _dot)) { + break; + } + unitIdx += 1; + } + return { + value: raw.substring(0, unitIdx), + unit: unitIdx < raw.length ? raw.substring(unitIdx) : undefined + }; + } +} +class VariableDeclaration extends AbstractDeclaration { + constructor(offset, length) { + super(offset, length); + this.needsSemicolon = true; + } + get type() { + return NodeType.VariableDeclaration; + } + setVariable(node) { + if (node) { + node.attachTo(this); + this.variable = node; + return true; + } + return false; + } + getVariable() { + return this.variable; + } + getName() { + return this.variable ? this.variable.getName() : ''; + } + setValue(node) { + if (node) { + node.attachTo(this); + this.value = node; + return true; + } + return false; + } + getValue() { + return this.value; + } +} +class Interpolation extends Node$1 { + // private _interpolations: void; // workaround for https://github.com/Microsoft/TypeScript/issues/18276 + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.Interpolation; + } +} +class Variable extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.VariableName; + } + getName() { + return this.getText(); + } +} +class ExtendsReference extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.ExtendsReference; + } + getSelectors() { + if (!this.selectors) { + this.selectors = new Nodelist(this); + } + return this.selectors; + } +} +class MixinContentReference extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MixinContentReference; + } + getArguments() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + } +} +class MixinContentDeclaration extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MixinContentDeclaration; + } + getParameters() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + } +} +class MixinReference extends Node$1 { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MixinReference; + } + getNamespaces() { + if (!this.namespaces) { + this.namespaces = new Nodelist(this); + } + return this.namespaces; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + getArguments() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + } + setContent(node) { + return this.setNode('content', node); + } + getContent() { + return this.content; + } +} +class MixinDeclaration extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.MixinDeclaration; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } + getName() { + return this.identifier ? this.identifier.getText() : ''; + } + getParameters() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + } + setGuard(node) { + if (node) { + node.attachTo(this); + this.guard = node; + } + return false; + } +} +class UnknownAtRule extends BodyDeclaration { + constructor(offset, length) { + super(offset, length); + } + get type() { + return NodeType.UnknownAtRule; + } + setAtRuleName(atRuleName) { + this.atRuleName = atRuleName; + } + getAtRuleName() { + return this.atRuleName; + } +} +class ListEntry extends Node$1 { + get type() { + return NodeType.ListEntry; + } + setKey(node) { + return this.setNode('key', node, 0); + } + setValue(node) { + return this.setNode('value', node, 1); + } +} +class LessGuard extends Node$1 { + getConditions() { + if (!this.conditions) { + this.conditions = new Nodelist(this); + } + return this.conditions; + } +} +class GuardCondition extends Node$1 { + setVariable(node) { + return this.setNode('variable', node); + } +} +class Module extends Node$1 { + get type() { + return NodeType.Module; + } + setIdentifier(node) { + return this.setNode('identifier', node, 0); + } + getIdentifier() { + return this.identifier; + } +} +var Level; +(function (Level) { + Level[Level["Ignore"] = 1] = "Ignore"; + Level[Level["Warning"] = 2] = "Warning"; + Level[Level["Error"] = 4] = "Error"; +})(Level || (Level = {})); +class Marker { + constructor(node, rule, level, message, offset = node.offset, length = node.length) { + this.node = node; + this.rule = rule; + this.level = level; + this.message = message || rule.message; + this.offset = offset; + this.length = length; + } + getRule() { + return this.rule; + } + getLevel() { + return this.level; + } + getOffset() { + return this.offset; + } + getLength() { + return this.length; + } + getNode() { + return this.node; + } + getMessage() { + return this.message; + } +} +/* +export class DefaultVisitor implements IVisitor { + + public visitNode(node:Node):boolean { + switch (node.type) { + case NodeType.Stylesheet: + return this.visitStylesheet(<Stylesheet> node); + case NodeType.FontFace: + return this.visitFontFace(<FontFace> node); + case NodeType.Ruleset: + return this.visitRuleSet(<RuleSet> node); + case NodeType.Selector: + return this.visitSelector(<Selector> node); + case NodeType.SimpleSelector: + return this.visitSimpleSelector(<SimpleSelector> node); + case NodeType.Declaration: + return this.visitDeclaration(<Declaration> node); + case NodeType.Function: + return this.visitFunction(<Function> node); + case NodeType.FunctionDeclaration: + return this.visitFunctionDeclaration(<FunctionDeclaration> node); + case NodeType.FunctionParameter: + return this.visitFunctionParameter(<FunctionParameter> node); + case NodeType.FunctionArgument: + return this.visitFunctionArgument(<FunctionArgument> node); + case NodeType.Term: + return this.visitTerm(<Term> node); + case NodeType.Declaration: + return this.visitExpression(<Expression> node); + case NodeType.NumericValue: + return this.visitNumericValue(<NumericValue> node); + case NodeType.Page: + return this.visitPage(<Page> node); + case NodeType.PageBoxMarginBox: + return this.visitPageBoxMarginBox(<PageBoxMarginBox> node); + case NodeType.Property: + return this.visitProperty(<Property> node); + case NodeType.NumericValue: + return this.visitNodelist(<Nodelist> node); + case NodeType.Import: + return this.visitImport(<Import> node); + case NodeType.Namespace: + return this.visitNamespace(<Namespace> node); + case NodeType.Keyframe: + return this.visitKeyframe(<Keyframe> node); + case NodeType.KeyframeSelector: + return this.visitKeyframeSelector(<KeyframeSelector> node); + case NodeType.MixinDeclaration: + return this.visitMixinDeclaration(<MixinDeclaration> node); + case NodeType.MixinReference: + return this.visitMixinReference(<MixinReference> node); + case NodeType.Variable: + return this.visitVariable(<Variable> node); + case NodeType.VariableDeclaration: + return this.visitVariableDeclaration(<VariableDeclaration> node); + } + return this.visitUnknownNode(node); + } + + public visitFontFace(node:FontFace):boolean { + return true; + } + + public visitKeyframe(node:Keyframe):boolean { + return true; + } + + public visitKeyframeSelector(node:KeyframeSelector):boolean { + return true; + } + + public visitStylesheet(node:Stylesheet):boolean { + return true; + } + + public visitProperty(Node:Property):boolean { + return true; + } + + public visitRuleSet(node:RuleSet):boolean { + return true; + } + + public visitSelector(node:Selector):boolean { + return true; + } + + public visitSimpleSelector(node:SimpleSelector):boolean { + return true; + } + + public visitDeclaration(node:Declaration):boolean { + return true; + } + + public visitFunction(node:Function):boolean { + return true; + } + + public visitFunctionDeclaration(node:FunctionDeclaration):boolean { + return true; + } + + public visitInvocation(node:Invocation):boolean { + return true; + } + + public visitTerm(node:Term):boolean { + return true; + } + + public visitImport(node:Import):boolean { + return true; + } + + public visitNamespace(node:Namespace):boolean { + return true; + } + + public visitExpression(node:Expression):boolean { + return true; + } + + public visitNumericValue(node:NumericValue):boolean { + return true; + } + + public visitPage(node:Page):boolean { + return true; + } + + public visitPageBoxMarginBox(node:PageBoxMarginBox):boolean { + return true; + } + + public visitNodelist(node:Nodelist):boolean { + return true; + } + + public visitVariableDeclaration(node:VariableDeclaration):boolean { + return true; + } + + public visitVariable(node:Variable):boolean { + return true; + } + + public visitMixinDeclaration(node:MixinDeclaration):boolean { + return true; + } + + public visitMixinReference(node:MixinReference):boolean { + return true; + } + + public visitUnknownNode(node:Node):boolean { + return true; + } +} +*/ +class ParseErrorCollector { + static entries(node) { + const visitor = new ParseErrorCollector(); + node.acceptVisitor(visitor); + return visitor.entries; + } + constructor() { + this.entries = []; + } + visitNode(node) { + if (node.isErroneous()) { + node.collectIssues(this.entries); + } + return true; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSIssueType { + constructor(id, message) { + this.id = id; + this.message = message; + } +} +const ParseError = { + NumberExpected: new CSSIssueType('css-numberexpected', t$2("number expected")), + ConditionExpected: new CSSIssueType('css-conditionexpected', t$2("condition expected")), + RuleOrSelectorExpected: new CSSIssueType('css-ruleorselectorexpected', t$2("at-rule or selector expected")), + DotExpected: new CSSIssueType('css-dotexpected', t$2("dot expected")), + ColonExpected: new CSSIssueType('css-colonexpected', t$2("colon expected")), + SemiColonExpected: new CSSIssueType('css-semicolonexpected', t$2("semi-colon expected")), + TermExpected: new CSSIssueType('css-termexpected', t$2("term expected")), + ExpressionExpected: new CSSIssueType('css-expressionexpected', t$2("expression expected")), + OperatorExpected: new CSSIssueType('css-operatorexpected', t$2("operator expected")), + IdentifierExpected: new CSSIssueType('css-identifierexpected', t$2("identifier expected")), + PercentageExpected: new CSSIssueType('css-percentageexpected', t$2("percentage expected")), + URIOrStringExpected: new CSSIssueType('css-uriorstringexpected', t$2("uri or string expected")), + URIExpected: new CSSIssueType('css-uriexpected', t$2("URI expected")), + VariableNameExpected: new CSSIssueType('css-varnameexpected', t$2("variable name expected")), + VariableValueExpected: new CSSIssueType('css-varvalueexpected', t$2("variable value expected")), + PropertyValueExpected: new CSSIssueType('css-propertyvalueexpected', t$2("property value expected")), + LeftCurlyExpected: new CSSIssueType('css-lcurlyexpected', t$2("{ expected")), + RightCurlyExpected: new CSSIssueType('css-rcurlyexpected', t$2("} expected")), + LeftSquareBracketExpected: new CSSIssueType('css-rbracketexpected', t$2("[ expected")), + RightSquareBracketExpected: new CSSIssueType('css-lbracketexpected', t$2("] expected")), + LeftParenthesisExpected: new CSSIssueType('css-lparentexpected', t$2("( expected")), + RightParenthesisExpected: new CSSIssueType('css-rparentexpected', t$2(") expected")), + CommaExpected: new CSSIssueType('css-commaexpected', t$2("comma expected")), + PageDirectiveOrDeclarationExpected: new CSSIssueType('css-pagedirordeclexpected', t$2("page directive or declaraton expected")), + UnknownAtRule: new CSSIssueType('css-unknownatrule', t$2("at-rule unknown")), + UnknownKeyword: new CSSIssueType('css-unknownkeyword', t$2("unknown keyword")), + SelectorExpected: new CSSIssueType('css-selectorexpected', t$2("selector expected")), + StringLiteralExpected: new CSSIssueType('css-stringliteralexpected', t$2("string literal expected")), + WhitespaceExpected: new CSSIssueType('css-whitespaceexpected', t$2("whitespace expected")), + MediaQueryExpected: new CSSIssueType('css-mediaqueryexpected', t$2("media query expected")), + IdentifierOrWildcardExpected: new CSSIssueType('css-idorwildcardexpected', t$2("identifier or wildcard expected")), + WildcardExpected: new CSSIssueType('css-wildcardexpected', t$2("wildcard expected")), + IdentifierOrVariableExpected: new CSSIssueType('css-idorvarexpected', t$2("identifier or variable expected")), +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ClientCapabilities$1; +(function (ClientCapabilities) { + ClientCapabilities.LATEST = { + textDocument: { + completion: { + completionItem: { + documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + }, + hover: { + contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + } + }; +})(ClientCapabilities$1 || (ClientCapabilities$1 = {})); +var FileType$1; +(function (FileType) { + /** + * The file type is unknown. + */ + FileType[FileType["Unknown"] = 0] = "Unknown"; + /** + * A regular file. + */ + FileType[FileType["File"] = 1] = "File"; + /** + * A directory. + */ + FileType[FileType["Directory"] = 2] = "Directory"; + /** + * A symbolic link to a file. + */ + FileType[FileType["SymbolicLink"] = 64] = "SymbolicLink"; +})(FileType$1 || (FileType$1 = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const browserNames = { + E: 'Edge', + FF: 'Firefox', + S: 'Safari', + C: 'Chrome', + IE: 'IE', + O: 'Opera' +}; +function getEntryStatus(status) { + switch (status) { + case 'experimental': + return '⚠️ Property is experimental. Be cautious when using it.️\n\n'; + case 'nonstandard': + return '🚨️ Property is nonstandard. Avoid using it.\n\n'; + case 'obsolete': + return '🚨️️️ Property is obsolete. Avoid using it.\n\n'; + default: + return ''; + } +} +function getEntryDescription(entry, doesSupportMarkdown, settings) { + let result; + if (doesSupportMarkdown) { + result = { + kind: 'markdown', + value: getEntryMarkdownDescription(entry, settings) + }; + } + else { + result = { + kind: 'plaintext', + value: getEntryStringDescription(entry, settings) + }; + } + if (result.value === '') { + return undefined; + } + return result; +} +function textToMarkedString(text) { + text = text.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash + return text.replace(/</g, '<').replace(/>/g, '>'); +} +function getEntryStringDescription(entry, settings) { + if (!entry.description || entry.description === '') { + return ''; + } + if (typeof entry.description !== 'string') { + return entry.description.value; + } + let result = ''; + if (settings?.documentation !== false) { + if (entry.status) { + result += getEntryStatus(entry.status); + } + result += entry.description; + const browserLabel = getBrowserLabel(entry.browsers); + if (browserLabel) { + result += '\n(' + browserLabel + ')'; + } + if ('syntax' in entry) { + result += `\n\nSyntax: ${entry.syntax}`; + } + } + if (entry.references && entry.references.length > 0 && settings?.references !== false) { + if (result.length > 0) { + result += '\n\n'; + } + result += entry.references.map(r => { + return `${r.name}: ${r.url}`; + }).join(' | '); + } + return result; +} +function getEntryMarkdownDescription(entry, settings) { + if (!entry.description || entry.description === '') { + return ''; + } + let result = ''; + if (settings?.documentation !== false) { + if (entry.status) { + result += getEntryStatus(entry.status); + } + if (typeof entry.description === 'string') { + result += textToMarkedString(entry.description); + } + else { + result += entry.description.kind === MarkupKind.Markdown ? entry.description.value : textToMarkedString(entry.description.value); + } + const browserLabel = getBrowserLabel(entry.browsers); + if (browserLabel) { + result += '\n\n(' + textToMarkedString(browserLabel) + ')'; + } + if ('syntax' in entry && entry.syntax) { + result += `\n\nSyntax: ${textToMarkedString(entry.syntax)}`; + } + } + if (entry.references && entry.references.length > 0 && settings?.references !== false) { + if (result.length > 0) { + result += '\n\n'; + } + result += entry.references.map(r => { + return `[${r.name}](${r.url})`; + }).join(' | '); + } + return result; +} +/** + * Input is like `["E12","FF49","C47","IE","O"]` + * Output is like `Edge 12, Firefox 49, Chrome 47, IE, Opera` + */ +function getBrowserLabel(browsers = []) { + if (browsers.length === 0) { + return null; + } + return browsers + .map(b => { + let result = ''; + const matches = b.match(/([A-Z]+)(\d+)?/); + const name = matches[1]; + const version = matches[2]; + if (name in browserNames) { + result += browserNames[name]; + } + if (version) { + result += ' ' + version; + } + return result; + }) + .join(', '); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const hexColorRegExp = /(^#([0-9A-F]{3}){1,2}$)|(^#([0-9A-F]{4}){1,2}$)/i; +const colorFunctions = [ + { + label: 'rgb', + func: 'rgb($red, $green, $blue)', + insertText: 'rgb(${1:red}, ${2:green}, ${3:blue})', + desc: t$2('Creates a Color from red, green, and blue values.') + }, + { + label: 'rgba', + func: 'rgba($red, $green, $blue, $alpha)', + insertText: 'rgba(${1:red}, ${2:green}, ${3:blue}, ${4:alpha})', + desc: t$2('Creates a Color from red, green, blue, and alpha values.') + }, + { + label: 'rgb relative', + func: 'rgb(from $color $red $green $blue)', + insertText: 'rgb(from ${1:color} ${2:r} ${3:g} ${4:b})', + desc: t$2('Creates a Color from the red, green, and blue values of another Color.') + }, + { + label: 'hsl', + func: 'hsl($hue, $saturation, $lightness)', + insertText: 'hsl(${1:hue}, ${2:saturation}, ${3:lightness})', + desc: t$2('Creates a Color from hue, saturation, and lightness values.') + }, + { + label: 'hsla', + func: 'hsla($hue, $saturation, $lightness, $alpha)', + insertText: 'hsla(${1:hue}, ${2:saturation}, ${3:lightness}, ${4:alpha})', + desc: t$2('Creates a Color from hue, saturation, lightness, and alpha values.') + }, + { + label: 'hsl relative', + func: 'hsl(from $color $hue $saturation $lightness)', + insertText: 'hsl(from ${1:color} ${2:h} ${3:s} ${4:l})', + desc: t$2('Creates a Color from the hue, saturation, and lightness values of another Color.') + }, + { + label: 'hwb', + func: 'hwb($hue $white $black)', + insertText: 'hwb(${1:hue} ${2:white} ${3:black})', + desc: t$2('Creates a Color from hue, white, and black values.') + }, + { + label: 'hwb relative', + func: 'hwb(from $color $hue $white $black)', + insertText: 'hwb(from ${1:color} ${2:h} ${3:w} ${4:b})', + desc: t$2('Creates a Color from the hue, white, and black values of another Color.') + }, + { + label: 'lab', + func: 'lab($lightness $a $b)', + insertText: 'lab(${1:lightness} ${2:a} ${3:b})', + desc: t$2('Creates a Color from lightness, a, and b values.') + }, + { + label: 'lab relative', + func: 'lab(from $color $lightness $a $b)', + insertText: 'lab(from ${1:color} ${2:l} ${3:a} ${4:b})', + desc: t$2('Creates a Color from the lightness, a, and b values of another Color.') + }, + { + label: 'oklab', + func: 'oklab($lightness $a $b)', + insertText: 'oklab(${1:lightness} ${2:a} ${3:b})', + desc: t$2('Creates a Color from lightness, a, and b values.') + }, + { + label: 'oklab relative', + func: 'oklab(from $color $lightness $a $b)', + insertText: 'oklab(from ${1:color} ${2:l} ${3:a} ${4:b})', + desc: t$2('Creates a Color from the lightness, a, and b values of another Color.') + }, + { + label: 'lch', + func: 'lch($lightness $chroma $hue)', + insertText: 'lch(${1:lightness} ${2:chroma} ${3:hue})', + desc: t$2('Creates a Color from lightness, chroma, and hue values.') + }, + { + label: 'lch relative', + func: 'lch(from $color $lightness $chroma $hue)', + insertText: 'lch(from ${1:color} ${2:l} ${3:c} ${4:h})', + desc: t$2('Creates a Color from the lightness, chroma, and hue values of another Color.') + }, + { + label: 'oklch', + func: 'oklch($lightness $chroma $hue)', + insertText: 'oklch(${1:lightness} ${2:chroma} ${3:hue})', + desc: t$2('Creates a Color from lightness, chroma, and hue values.') + }, + { + label: 'oklch relative', + func: 'oklch(from $color $lightness $chroma $hue)', + insertText: 'oklch(from ${1:color} ${2:l} ${3:c} ${4:h})', + desc: t$2('Creates a Color from the lightness, chroma, and hue values of another Color.') + }, + { + label: 'color', + func: 'color($color-space $red $green $blue)', + insertText: 'color(${1|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${2:red} ${3:green} ${4:blue})', + desc: t$2('Creates a Color in a specific color space from red, green, and blue values.') + }, + { + label: 'color relative', + func: 'color(from $color $color-space $red $green $blue)', + insertText: 'color(from ${1:color} ${2|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${3:r} ${4:g} ${5:b})', + desc: t$2('Creates a Color in a specific color space from the red, green, and blue values of another Color.') + }, + { + label: 'color-mix', + func: 'color-mix(in $color-space, $color $percentage, $color $percentage)', + insertText: 'color-mix(in ${1|srgb,srgb-linear,lab,oklab,xyz,xyz-d50,xyz-d65|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})', + desc: t$2('Mix two colors together in a rectangular color space.') + }, + { + label: 'color-mix hue', + func: 'color-mix(in $color-space $interpolation-method hue, $color $percentage, $color $percentage)', + insertText: 'color-mix(in ${1|hsl,hwb,lch,oklch|} ${2|shorter hue,longer hue,increasing hue,decreasing hue|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})', + desc: t$2('Mix two colors together in a polar color space.') + }, +]; +const colorFunctionNameRegExp = /^(rgb|rgba|hsl|hsla|hwb)$/i; +const colors = { + aliceblue: '#f0f8ff', + antiquewhite: '#faebd7', + aqua: '#00ffff', + aquamarine: '#7fffd4', + azure: '#f0ffff', + beige: '#f5f5dc', + bisque: '#ffe4c4', + black: '#000000', + blanchedalmond: '#ffebcd', + blue: '#0000ff', + blueviolet: '#8a2be2', + brown: '#a52a2a', + burlywood: '#deb887', + cadetblue: '#5f9ea0', + chartreuse: '#7fff00', + chocolate: '#d2691e', + coral: '#ff7f50', + cornflowerblue: '#6495ed', + cornsilk: '#fff8dc', + crimson: '#dc143c', + cyan: '#00ffff', + darkblue: '#00008b', + darkcyan: '#008b8b', + darkgoldenrod: '#b8860b', + darkgray: '#a9a9a9', + darkgrey: '#a9a9a9', + darkgreen: '#006400', + darkkhaki: '#bdb76b', + darkmagenta: '#8b008b', + darkolivegreen: '#556b2f', + darkorange: '#ff8c00', + darkorchid: '#9932cc', + darkred: '#8b0000', + darksalmon: '#e9967a', + darkseagreen: '#8fbc8f', + darkslateblue: '#483d8b', + darkslategray: '#2f4f4f', + darkslategrey: '#2f4f4f', + darkturquoise: '#00ced1', + darkviolet: '#9400d3', + deeppink: '#ff1493', + deepskyblue: '#00bfff', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1e90ff', + firebrick: '#b22222', + floralwhite: '#fffaf0', + forestgreen: '#228b22', + fuchsia: '#ff00ff', + gainsboro: '#dcdcdc', + ghostwhite: '#f8f8ff', + gold: '#ffd700', + goldenrod: '#daa520', + gray: '#808080', + grey: '#808080', + green: '#008000', + greenyellow: '#adff2f', + honeydew: '#f0fff0', + hotpink: '#ff69b4', + indianred: '#cd5c5c', + indigo: '#4b0082', + ivory: '#fffff0', + khaki: '#f0e68c', + lavender: '#e6e6fa', + lavenderblush: '#fff0f5', + lawngreen: '#7cfc00', + lemonchiffon: '#fffacd', + lightblue: '#add8e6', + lightcoral: '#f08080', + lightcyan: '#e0ffff', + lightgoldenrodyellow: '#fafad2', + lightgray: '#d3d3d3', + lightgrey: '#d3d3d3', + lightgreen: '#90ee90', + lightpink: '#ffb6c1', + lightsalmon: '#ffa07a', + lightseagreen: '#20b2aa', + lightskyblue: '#87cefa', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#b0c4de', + lightyellow: '#ffffe0', + lime: '#00ff00', + limegreen: '#32cd32', + linen: '#faf0e6', + magenta: '#ff00ff', + maroon: '#800000', + mediumaquamarine: '#66cdaa', + mediumblue: '#0000cd', + mediumorchid: '#ba55d3', + mediumpurple: '#9370d8', + mediumseagreen: '#3cb371', + mediumslateblue: '#7b68ee', + mediumspringgreen: '#00fa9a', + mediumturquoise: '#48d1cc', + mediumvioletred: '#c71585', + midnightblue: '#191970', + mintcream: '#f5fffa', + mistyrose: '#ffe4e1', + moccasin: '#ffe4b5', + navajowhite: '#ffdead', + navy: '#000080', + oldlace: '#fdf5e6', + olive: '#808000', + olivedrab: '#6b8e23', + orange: '#ffa500', + orangered: '#ff4500', + orchid: '#da70d6', + palegoldenrod: '#eee8aa', + palegreen: '#98fb98', + paleturquoise: '#afeeee', + palevioletred: '#d87093', + papayawhip: '#ffefd5', + peachpuff: '#ffdab9', + peru: '#cd853f', + pink: '#ffc0cb', + plum: '#dda0dd', + powderblue: '#b0e0e6', + purple: '#800080', + red: '#ff0000', + rebeccapurple: '#663399', + rosybrown: '#bc8f8f', + royalblue: '#4169e1', + saddlebrown: '#8b4513', + salmon: '#fa8072', + sandybrown: '#f4a460', + seagreen: '#2e8b57', + seashell: '#fff5ee', + sienna: '#a0522d', + silver: '#c0c0c0', + skyblue: '#87ceeb', + slateblue: '#6a5acd', + slategray: '#708090', + slategrey: '#708090', + snow: '#fffafa', + springgreen: '#00ff7f', + steelblue: '#4682b4', + tan: '#d2b48c', + teal: '#008080', + thistle: '#d8bfd8', + tomato: '#ff6347', + turquoise: '#40e0d0', + violet: '#ee82ee', + wheat: '#f5deb3', + white: '#ffffff', + whitesmoke: '#f5f5f5', + yellow: '#ffff00', + yellowgreen: '#9acd32' +}; +const colorsRegExp = new RegExp(`^(${Object.keys(colors).join('|')})$`, "i"); +const colorKeywords = { + 'currentColor': 'The value of the \'color\' property. The computed value of the \'currentColor\' keyword is the computed value of the \'color\' property. If the \'currentColor\' keyword is set on the \'color\' property itself, it is treated as \'color:inherit\' at parse time.', + 'transparent': 'Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.', +}; +const colorKeywordsRegExp = new RegExp(`^(${Object.keys(colorKeywords).join('|')})$`, "i"); +function getNumericValue(node, factor) { + const val = node.getText(); + const m = val.match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/); + if (m) { + if (m[2]) { + factor = 100.0; + } + const result = parseFloat(m[1]) / factor; + if (result >= 0 && result <= 1) { + return result; + } + } + throw new Error(); +} +function getAngle(node) { + const val = node.getText(); + const m = val.match(/^([-+]?[0-9]*\.?[0-9]+)(deg|rad|grad|turn)?$/); + if (m) { + switch (m[2]) { + case 'deg': + return parseFloat(val) % 360; + case 'rad': + return (parseFloat(val) * 180 / Math.PI) % 360; + case 'grad': + return (parseFloat(val) * 0.9) % 360; + case 'turn': + return (parseFloat(val) * 360) % 360; + default: + if ('undefined' === typeof m[2]) { + return parseFloat(val) % 360; + } + } + } + throw new Error(); +} +function isColorConstructor(node) { + const name = node.getName(); + if (!name) { + return false; + } + return colorFunctionNameRegExp.test(name); +} +function isColorString(s) { + return hexColorRegExp.test(s) || colorsRegExp.test(s) || colorKeywordsRegExp.test(s); +} +const Digit0 = 48; +const Digit9 = 57; +const A = 65; +const a = 97; +const f = 102; +function hexDigit(charCode) { + if (charCode < Digit0) { + return 0; + } + if (charCode <= Digit9) { + return charCode - Digit0; + } + if (charCode < a) { + charCode += (a - A); + } + if (charCode >= a && charCode <= f) { + return charCode - a + 10; + } + return 0; +} +function colorFromHex(text) { + if (text[0] !== '#') { + return null; + } + switch (text.length) { + case 4: + return { + red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0, + green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0, + blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0, + alpha: 1 + }; + case 5: + return { + red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0, + green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0, + blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0, + alpha: (hexDigit(text.charCodeAt(4)) * 0x11) / 255.0, + }; + case 7: + return { + red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0, + green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0, + blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0, + alpha: 1 + }; + case 9: + return { + red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0, + green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0, + blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0, + alpha: (hexDigit(text.charCodeAt(7)) * 0x10 + hexDigit(text.charCodeAt(8))) / 255.0 + }; + } + return null; +} +function colorFromHSL(hue, sat, light, alpha = 1.0) { + hue = hue / 60.0; + if (sat === 0) { + return { red: light, green: light, blue: light, alpha }; + } + else { + const hueToRgb = (t1, t2, hue) => { + while (hue < 0) { + hue += 6; + } + while (hue >= 6) { + hue -= 6; + } + if (hue < 1) { + return (t2 - t1) * hue + t1; + } + if (hue < 3) { + return t2; + } + if (hue < 4) { + return (t2 - t1) * (4 - hue) + t1; + } + return t1; + }; + const t2 = light <= 0.5 ? (light * (sat + 1)) : (light + sat - (light * sat)); + const t1 = light * 2 - t2; + return { red: hueToRgb(t1, t2, hue + 2), green: hueToRgb(t1, t2, hue), blue: hueToRgb(t1, t2, hue - 2), alpha }; + } +} +function hslFromColor(rgba) { + const r = rgba.red; + const g = rgba.green; + const b = rgba.blue; + const a = rgba.alpha; + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + let s = 0; + const l = (min + max) / 2; + const chroma = max - min; + if (chroma > 0) { + s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1); + switch (max) { + case r: + h = (g - b) / chroma + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / chroma + 2; + break; + case b: + h = (r - g) / chroma + 4; + break; + } + h *= 60; + h = Math.round(h); + } + return { h, s, l, a }; +} +function colorFromHWB(hue, white, black, alpha = 1.0) { + if (white + black >= 1) { + const gray = white / (white + black); + return { red: gray, green: gray, blue: gray, alpha }; + } + const rgb = colorFromHSL(hue, 1, 0.5, alpha); + let red = rgb.red; + red *= (1 - white - black); + red += white; + let green = rgb.green; + green *= (1 - white - black); + green += white; + let blue = rgb.blue; + blue *= (1 - white - black); + blue += white; + return { + red: red, + green: green, + blue: blue, + alpha + }; +} +function hwbFromColor(rgba) { + const hsl = hslFromColor(rgba); + const white = Math.min(rgba.red, rgba.green, rgba.blue); + const black = 1 - Math.max(rgba.red, rgba.green, rgba.blue); + return { + h: hsl.h, + w: white, + b: black, + a: hsl.a + }; +} +function getColorValue(node) { + if (node.type === NodeType.HexColorValue) { + const text = node.getText(); + return colorFromHex(text); + } + else if (node.type === NodeType.Function) { + const functionNode = node; + const name = functionNode.getName(); + let colorValues = functionNode.getArguments().getChildren(); + if (colorValues.length === 1) { + const functionArg = colorValues[0].getChildren(); + if (functionArg.length === 1 && functionArg[0].type === NodeType.Expression) { + colorValues = functionArg[0].getChildren(); + if (colorValues.length === 3) { + const lastValue = colorValues[2]; + if (lastValue instanceof BinaryExpression) { + const left = lastValue.getLeft(), right = lastValue.getRight(), operator = lastValue.getOperator(); + if (left && right && operator && operator.matches('/')) { + colorValues = [colorValues[0], colorValues[1], left, right]; + } + } + } + } + } + if (!name || colorValues.length < 3 || colorValues.length > 4) { + return null; + } + try { + const alpha = colorValues.length === 4 ? getNumericValue(colorValues[3], 1) : 1; + if (name === 'rgb' || name === 'rgba') { + return { + red: getNumericValue(colorValues[0], 255.0), + green: getNumericValue(colorValues[1], 255.0), + blue: getNumericValue(colorValues[2], 255.0), + alpha + }; + } + else if (name === 'hsl' || name === 'hsla') { + const h = getAngle(colorValues[0]); + const s = getNumericValue(colorValues[1], 100.0); + const l = getNumericValue(colorValues[2], 100.0); + return colorFromHSL(h, s, l, alpha); + } + else if (name === 'hwb') { + const h = getAngle(colorValues[0]); + const w = getNumericValue(colorValues[1], 100.0); + const b = getNumericValue(colorValues[2], 100.0); + return colorFromHWB(h, w, b, alpha); + } + } + catch (e) { + // parse error on numeric value + return null; + } + } + else if (node.type === NodeType.Identifier) { + if (node.parent && node.parent.type !== NodeType.Term) { + return null; + } + const term = node.parent; + if (term && term.parent && term.parent.type === NodeType.BinaryExpression) { + const expression = term.parent; + if (expression.parent && expression.parent.type === NodeType.ListEntry && expression.parent.key === expression) { + return null; + } + } + const candidateColor = node.getText().toLowerCase(); + if (candidateColor === 'none') { + return null; + } + const colorHex = colors[candidateColor]; + if (colorHex) { + return colorFromHex(colorHex); + } + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const positionKeywords = { + 'bottom': 'Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.', + 'center': 'Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.', + 'left': 'Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.', + 'right': 'Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.', + 'top': 'Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.' +}; +const repeatStyleKeywords = { + 'no-repeat': 'Placed once and not repeated in this direction.', + 'repeat': 'Repeated in this direction as often as needed to cover the background painting area.', + 'repeat-x': 'Computes to ‘repeat no-repeat’.', + 'repeat-y': 'Computes to ‘no-repeat repeat’.', + 'round': 'Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.', + 'space': 'Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.' +}; +const lineStyleKeywords = { + 'dashed': 'A series of square-ended dashes.', + 'dotted': 'A series of round dots.', + 'double': 'Two parallel solid lines with some space between them.', + 'groove': 'Looks as if it were carved in the canvas.', + 'hidden': 'Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.', + 'inset': 'Looks as if the content on the inside of the border is sunken into the canvas.', + 'none': 'No border. Color and width are ignored.', + 'outset': 'Looks as if the content on the inside of the border is coming out of the canvas.', + 'ridge': 'Looks as if it were coming out of the canvas.', + 'solid': 'A single line segment.' +}; +const lineWidthKeywords = ['medium', 'thick', 'thin']; +const boxKeywords = { + 'border-box': 'The background is painted within (clipped to) the border box.', + 'content-box': 'The background is painted within (clipped to) the content box.', + 'padding-box': 'The background is painted within (clipped to) the padding box.' +}; +const geometryBoxKeywords = { + 'margin-box': 'Uses the margin box as reference box.', + 'fill-box': 'Uses the object bounding box as reference box.', + 'stroke-box': 'Uses the stroke bounding box as reference box.', + 'view-box': 'Uses the nearest SVG viewport as reference box.' +}; +const cssWideKeywords = { + 'initial': 'Represents the value specified as the property’s initial value.', + 'inherit': 'Represents the computed value of the property on the element’s parent.', + 'unset': 'Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.' +}; +const cssWideFunctions = { + 'var()': 'Evaluates the value of a custom variable.', + 'calc()': 'Evaluates an mathematical expression. The following operators can be used: + - * /.' +}; +const imageFunctions = { + 'url()': 'Reference an image file by URL', + 'image()': 'Provide image fallbacks and annotations.', + '-webkit-image-set()': 'Provide multiple resolutions. Remember to use unprefixed image-set() in addition.', + 'image-set()': 'Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.', + '-moz-element()': 'Use an element in the document as an image. Remember to use unprefixed element() in addition.', + 'element()': 'Use an element in the document as an image.', + 'cross-fade()': 'Indicates the two images to be combined and how far along in the transition the combination is.', + '-webkit-gradient()': 'Deprecated. Use modern linear-gradient() or radial-gradient() instead.', + '-webkit-linear-gradient()': 'Linear gradient. Remember to use unprefixed version in addition.', + '-moz-linear-gradient()': 'Linear gradient. Remember to use unprefixed version in addition.', + '-o-linear-gradient()': 'Linear gradient. Remember to use unprefixed version in addition.', + 'linear-gradient()': 'A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.', + '-webkit-repeating-linear-gradient()': 'Repeating Linear gradient. Remember to use unprefixed version in addition.', + '-moz-repeating-linear-gradient()': 'Repeating Linear gradient. Remember to use unprefixed version in addition.', + '-o-repeating-linear-gradient()': 'Repeating Linear gradient. Remember to use unprefixed version in addition.', + 'repeating-linear-gradient()': 'Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.', + '-webkit-radial-gradient()': 'Radial gradient. Remember to use unprefixed version in addition.', + '-moz-radial-gradient()': 'Radial gradient. Remember to use unprefixed version in addition.', + 'radial-gradient()': 'Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.', + '-webkit-repeating-radial-gradient()': 'Repeating radial gradient. Remember to use unprefixed version in addition.', + '-moz-repeating-radial-gradient()': 'Repeating radial gradient. Remember to use unprefixed version in addition.', + 'repeating-radial-gradient()': 'Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.' +}; +const transitionTimingFunctions = { + 'ease': 'Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).', + 'ease-in': 'Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).', + 'ease-in-out': 'Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).', + 'ease-out': 'Equivalent to cubic-bezier(0, 0, 0.58, 1.0).', + 'linear': 'Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).', + 'step-end': 'Equivalent to steps(1, end).', + 'step-start': 'Equivalent to steps(1, start).', + 'steps()': 'The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.', + 'cubic-bezier()': 'Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).', + 'cubic-bezier(0.6, -0.28, 0.735, 0.045)': 'Ease-in Back. Overshoots.', + 'cubic-bezier(0.68, -0.55, 0.265, 1.55)': 'Ease-in-out Back. Overshoots.', + 'cubic-bezier(0.175, 0.885, 0.32, 1.275)': 'Ease-out Back. Overshoots.', + 'cubic-bezier(0.6, 0.04, 0.98, 0.335)': 'Ease-in Circular. Based on half circle.', + 'cubic-bezier(0.785, 0.135, 0.15, 0.86)': 'Ease-in-out Circular. Based on half circle.', + 'cubic-bezier(0.075, 0.82, 0.165, 1)': 'Ease-out Circular. Based on half circle.', + 'cubic-bezier(0.55, 0.055, 0.675, 0.19)': 'Ease-in Cubic. Based on power of three.', + 'cubic-bezier(0.645, 0.045, 0.355, 1)': 'Ease-in-out Cubic. Based on power of three.', + 'cubic-bezier(0.215, 0.610, 0.355, 1)': 'Ease-out Cubic. Based on power of three.', + 'cubic-bezier(0.95, 0.05, 0.795, 0.035)': 'Ease-in Exponential. Based on two to the power ten.', + 'cubic-bezier(1, 0, 0, 1)': 'Ease-in-out Exponential. Based on two to the power ten.', + 'cubic-bezier(0.19, 1, 0.22, 1)': 'Ease-out Exponential. Based on two to the power ten.', + 'cubic-bezier(0.47, 0, 0.745, 0.715)': 'Ease-in Sine.', + 'cubic-bezier(0.445, 0.05, 0.55, 0.95)': 'Ease-in-out Sine.', + 'cubic-bezier(0.39, 0.575, 0.565, 1)': 'Ease-out Sine.', + 'cubic-bezier(0.55, 0.085, 0.68, 0.53)': 'Ease-in Quadratic. Based on power of two.', + 'cubic-bezier(0.455, 0.03, 0.515, 0.955)': 'Ease-in-out Quadratic. Based on power of two.', + 'cubic-bezier(0.25, 0.46, 0.45, 0.94)': 'Ease-out Quadratic. Based on power of two.', + 'cubic-bezier(0.895, 0.03, 0.685, 0.22)': 'Ease-in Quartic. Based on power of four.', + 'cubic-bezier(0.77, 0, 0.175, 1)': 'Ease-in-out Quartic. Based on power of four.', + 'cubic-bezier(0.165, 0.84, 0.44, 1)': 'Ease-out Quartic. Based on power of four.', + 'cubic-bezier(0.755, 0.05, 0.855, 0.06)': 'Ease-in Quintic. Based on power of five.', + 'cubic-bezier(0.86, 0, 0.07, 1)': 'Ease-in-out Quintic. Based on power of five.', + 'cubic-bezier(0.23, 1, 0.320, 1)': 'Ease-out Quintic. Based on power of five.' +}; +const basicShapeFunctions = { + 'circle()': 'Defines a circle.', + 'ellipse()': 'Defines an ellipse.', + 'inset()': 'Defines an inset rectangle.', + 'polygon()': 'Defines a polygon.' +}; +const units = { + 'length': ['cap', 'ch', 'cm', 'cqb', 'cqh', 'cqi', 'cqmax', 'cqmin', 'cqw', 'dvb', 'dvh', 'dvi', 'dvw', 'em', 'ex', 'ic', 'in', 'lh', 'lvb', 'lvh', 'lvi', 'lvw', 'mm', 'pc', 'pt', 'px', 'q', 'rcap', 'rch', 'rem', 'rex', 'ric', 'rlh', 'svb', 'svh', 'svi', 'svw', 'vb', 'vh', 'vi', 'vmax', 'vmin', 'vw'], + 'angle': ['deg', 'rad', 'grad', 'turn'], + 'time': ['ms', 's'], + 'frequency': ['Hz', 'kHz'], + 'resolution': ['dpi', 'dpcm', 'dppx'], + 'percentage': ['%', 'fr'] +}; +const html5Tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', + 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', + 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', + 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', + 'rb', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', + 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'const', 'video', 'wbr']; +const svgElements = ['circle', 'clipPath', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', + 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', + 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'foreignObject', 'g', 'hatch', 'hatchpath', 'image', 'line', 'linearGradient', + 'marker', 'mask', 'mesh', 'meshpatch', 'meshrow', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'set', 'solidcolor', 'stop', 'svg', 'switch', + 'symbol', 'text', 'textPath', 'tspan', 'use', 'view']; +const pageBoxDirectives = [ + '@bottom-center', '@bottom-left', '@bottom-left-corner', '@bottom-right', '@bottom-right-corner', + '@left-bottom', '@left-middle', '@left-top', '@right-bottom', '@right-middle', '@right-top', + '@top-center', '@top-left', '@top-left-corner', '@top-right', '@top-right-corner' +]; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function values(obj) { + return Object.keys(obj).map(key => obj[key]); +} +function isDefined$1(obj) { + return typeof obj !== 'undefined'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/// <summary> +/// A parser for the css core specification. See for reference: +/// https://www.w3.org/TR/CSS21/grammar.html +/// http://www.w3.org/TR/CSS21/syndata.html#tokenization +/// </summary> +class Parser { + constructor(scnr = new Scanner()) { + this.keyframeRegex = /^@(\-(webkit|ms|moz|o)\-)?keyframes$/i; + this.scanner = scnr; + this.token = { type: TokenType$1.EOF, offset: -1, len: 0, text: '' }; + this.prevToken = undefined; + } + peekIdent(text) { + return TokenType$1.Ident === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase(); + } + peekKeyword(text) { + return TokenType$1.AtKeyword === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase(); + } + peekDelim(text) { + return TokenType$1.Delim === this.token.type && text === this.token.text; + } + peek(type) { + return type === this.token.type; + } + peekOne(...types) { + return types.indexOf(this.token.type) !== -1; + } + peekRegExp(type, regEx) { + if (type !== this.token.type) { + return false; + } + return regEx.test(this.token.text); + } + hasWhitespace() { + return !!this.prevToken && (this.prevToken.offset + this.prevToken.len !== this.token.offset); + } + consumeToken() { + this.prevToken = this.token; + this.token = this.scanner.scan(); + } + acceptUnicodeRange() { + const token = this.scanner.tryScanUnicode(); + if (token) { + this.prevToken = token; + this.token = this.scanner.scan(); + return true; + } + return false; + } + mark() { + return { + prev: this.prevToken, + curr: this.token, + pos: this.scanner.pos() + }; + } + restoreAtMark(mark) { + this.prevToken = mark.prev; + this.token = mark.curr; + this.scanner.goBackTo(mark.pos); + } + try(func) { + const pos = this.mark(); + const node = func(); + if (!node) { + this.restoreAtMark(pos); + return null; + } + return node; + } + acceptOneKeyword(keywords) { + if (TokenType$1.AtKeyword === this.token.type) { + for (const keyword of keywords) { + if (keyword.length === this.token.text.length && keyword === this.token.text.toLowerCase()) { + this.consumeToken(); + return true; + } + } + } + return false; + } + accept(type) { + if (type === this.token.type) { + this.consumeToken(); + return true; + } + return false; + } + acceptIdent(text) { + if (this.peekIdent(text)) { + this.consumeToken(); + return true; + } + return false; + } + acceptKeyword(text) { + if (this.peekKeyword(text)) { + this.consumeToken(); + return true; + } + return false; + } + acceptDelim(text) { + if (this.peekDelim(text)) { + this.consumeToken(); + return true; + } + return false; + } + acceptRegexp(regEx) { + if (regEx.test(this.token.text)) { + this.consumeToken(); + return true; + } + return false; + } + _parseRegexp(regEx) { + let node = this.createNode(NodeType.Identifier); + do { } while (this.acceptRegexp(regEx)); + return this.finish(node); + } + acceptUnquotedString() { + const pos = this.scanner.pos(); + this.scanner.goBackTo(this.token.offset); + const unquoted = this.scanner.scanUnquotedString(); + if (unquoted) { + this.token = unquoted; + this.consumeToken(); + return true; + } + this.scanner.goBackTo(pos); + return false; + } + resync(resyncTokens, resyncStopTokens) { + while (true) { + if (resyncTokens && resyncTokens.indexOf(this.token.type) !== -1) { + this.consumeToken(); + return true; + } + else if (resyncStopTokens && resyncStopTokens.indexOf(this.token.type) !== -1) { + return true; + } + else { + if (this.token.type === TokenType$1.EOF) { + return false; + } + this.token = this.scanner.scan(); + } + } + } + createNode(nodeType) { + return new Node$1(this.token.offset, this.token.len, nodeType); + } + create(ctor) { + return new ctor(this.token.offset, this.token.len); + } + finish(node, error, resyncTokens, resyncStopTokens) { + // parseNumeric misuses error for boolean flagging (however the real error mustn't be a false) + // + nodelist offsets mustn't be modified, because there is a offset hack in rulesets for smartselection + if (!(node instanceof Nodelist)) { + if (error) { + this.markError(node, error, resyncTokens, resyncStopTokens); + } + // set the node end position + if (this.prevToken) { + // length with more elements belonging together + const prevEnd = this.prevToken.offset + this.prevToken.len; + node.length = prevEnd > node.offset ? prevEnd - node.offset : 0; // offset is taken from current token, end from previous: Use 0 for empty nodes + } + } + return node; + } + markError(node, error, resyncTokens, resyncStopTokens) { + if (this.token !== this.lastErrorToken) { // do not report twice on the same token + node.addIssue(new Marker(node, error, Level.Error, undefined, this.token.offset, this.token.len)); + this.lastErrorToken = this.token; + } + if (resyncTokens || resyncStopTokens) { + this.resync(resyncTokens, resyncStopTokens); + } + } + parseStylesheet(textDocument) { + const versionId = textDocument.version; + const text = textDocument.getText(); + const textProvider = (offset, length) => { + if (textDocument.version !== versionId) { + throw new Error('Underlying model has changed, AST is no longer valid'); + } + return text.substr(offset, length); + }; + return this.internalParse(text, this._parseStylesheet, textProvider); + } + internalParse(input, parseFunc, textProvider) { + this.scanner.setSource(input); + this.token = this.scanner.scan(); + const node = parseFunc.bind(this)(); + if (node) { + if (textProvider) { + node.textProvider = textProvider; + } + else { + node.textProvider = (offset, length) => { return input.substr(offset, length); }; + } + } + return node; + } + _parseStylesheet() { + const node = this.create(Stylesheet); + while (node.addChild(this._parseStylesheetStart())) { + // Parse statements only valid at the beginning of stylesheets. + } + let inRecovery = false; + do { + let hasMatch = false; + do { + hasMatch = false; + const statement = this._parseStylesheetStatement(); + if (statement) { + node.addChild(statement); + hasMatch = true; + inRecovery = false; + if (!this.peek(TokenType$1.EOF) && this._needsSemicolonAfter(statement) && !this.accept(TokenType$1.SemiColon)) { + this.markError(node, ParseError.SemiColonExpected); + } + } + while (this.accept(TokenType$1.SemiColon) || this.accept(TokenType$1.CDO) || this.accept(TokenType$1.CDC)) { + // accept empty statements + hasMatch = true; + inRecovery = false; + } + } while (hasMatch); + if (this.peek(TokenType$1.EOF)) { + break; + } + if (!inRecovery) { + if (this.peek(TokenType$1.AtKeyword)) { + this.markError(node, ParseError.UnknownAtRule); + } + else { + this.markError(node, ParseError.RuleOrSelectorExpected); + } + inRecovery = true; + } + this.consumeToken(); + } while (!this.peek(TokenType$1.EOF)); + return this.finish(node); + } + _parseStylesheetStart() { + return this._parseCharset(); + } + _parseStylesheetStatement(isNested = false) { + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseStylesheetAtStatement(isNested); + } + return this._parseRuleset(isNested); + } + _parseStylesheetAtStatement(isNested = false) { + return this._parseImport() + || this._parseMedia(isNested) + || this._parsePage() + || this._parseFontFace() + || this._parseKeyframe() + || this._parseSupports(isNested) + || this._parseLayer(isNested) + || this._parsePropertyAtRule() + || this._parseViewPort() + || this._parseNamespace() + || this._parseDocument() + || this._parseContainer(isNested) + || this._parseUnknownAtRule(); + } + _tryParseRuleset(isNested) { + const mark = this.mark(); + if (this._parseSelector(isNested)) { + while (this.accept(TokenType$1.Comma) && this._parseSelector(isNested)) { + // loop + } + if (this.accept(TokenType$1.CurlyL)) { + this.restoreAtMark(mark); + return this._parseRuleset(isNested); + } + } + this.restoreAtMark(mark); + return null; + } + _parseRuleset(isNested = false) { + const node = this.create(RuleSet); + const selectors = node.getSelectors(); + if (!selectors.addChild(this._parseSelector(isNested))) { + return null; + } + while (this.accept(TokenType$1.Comma)) { + if (!selectors.addChild(this._parseSelector(isNested))) { + return this.finish(node, ParseError.SelectorExpected); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parseRuleSetDeclarationAtStatement() { + return this._parseMedia(true) + || this._parseSupports(true) + || this._parseLayer(true) + || this._parseContainer(true) + || this._parseUnknownAtRule(); + } + _parseRuleSetDeclaration() { + // https://www.w3.org/TR/css-syntax-3/#consume-a-list-of-declarations + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseRuleSetDeclarationAtStatement(); + } + if (!this.peek(TokenType$1.Ident)) { + return this._parseRuleset(true); + } + return this._tryParseRuleset(true) || this._parseDeclaration(); + } + _needsSemicolonAfter(node) { + switch (node.type) { + case NodeType.Keyframe: + case NodeType.ViewPort: + case NodeType.Media: + case NodeType.Ruleset: + case NodeType.Namespace: + case NodeType.If: + case NodeType.For: + case NodeType.Each: + case NodeType.While: + case NodeType.MixinDeclaration: + case NodeType.FunctionDeclaration: + case NodeType.MixinContentDeclaration: + return false; + case NodeType.ExtendsReference: + case NodeType.MixinContentReference: + case NodeType.ReturnStatement: + case NodeType.MediaQuery: + case NodeType.Debug: + case NodeType.Import: + case NodeType.AtApplyRule: + case NodeType.CustomPropertyDeclaration: + return true; + case NodeType.VariableDeclaration: + return node.needsSemicolon; + case NodeType.MixinReference: + return !node.getContent(); + case NodeType.Declaration: + return !node.getNestedProperties(); + } + return false; + } + _parseDeclarations(parseDeclaration) { + const node = this.create(Declarations); + if (!this.accept(TokenType$1.CurlyL)) { + return null; + } + let decl = parseDeclaration(); + while (node.addChild(decl)) { + if (this.peek(TokenType$1.CurlyR)) { + break; + } + if (this._needsSemicolonAfter(decl) && !this.accept(TokenType$1.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected, [TokenType$1.SemiColon, TokenType$1.CurlyR]); + } + // We accepted semicolon token. Link it to declaration. + if (decl && this.prevToken && this.prevToken.type === TokenType$1.SemiColon) { + decl.semicolonPosition = this.prevToken.offset; + } + while (this.accept(TokenType$1.SemiColon)) { + // accept empty statements + } + decl = parseDeclaration(); + } + if (!this.accept(TokenType$1.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected, [TokenType$1.CurlyR, TokenType$1.SemiColon]); + } + return this.finish(node); + } + _parseBody(node, parseDeclaration) { + if (!node.setDeclarations(this._parseDeclarations(parseDeclaration))) { + return this.finish(node, ParseError.LeftCurlyExpected, [TokenType$1.CurlyR, TokenType$1.SemiColon]); + } + return this.finish(node); + } + _parseSelector(isNested) { + const node = this.create(Selector); + let hasContent = false; + if (isNested) { + // nested selectors can start with a combinator + hasContent = node.addChild(this._parseCombinator()); + } + while (node.addChild(this._parseSimpleSelector())) { + hasContent = true; + node.addChild(this._parseCombinator()); // optional + } + return hasContent ? this.finish(node) : null; + } + _parseDeclaration(stopTokens) { + const customProperty = this._tryParseCustomPropertyDeclaration(stopTokens); + if (customProperty) { + return customProperty; + } + const node = this.create(Declaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType$1.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType$1.Colon], stopTokens || [TokenType$1.SemiColon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.PropertyValueExpected); + } + node.addChild(this._parsePrio()); + if (this.peek(TokenType$1.SemiColon)) { + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + } + return this.finish(node); + } + _tryParseCustomPropertyDeclaration(stopTokens) { + if (!this.peekRegExp(TokenType$1.Ident, /^--/)) { + return null; + } + const node = this.create(CustomPropertyDeclaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType$1.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType$1.Colon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + const mark = this.mark(); + if (this.peek(TokenType$1.CurlyL)) { + // try to parse it as nested declaration + const propertySet = this.create(CustomPropertySet); + const declarations = this._parseDeclarations(this._parseRuleSetDeclaration.bind(this)); + if (propertySet.setDeclarations(declarations) && !declarations.isErroneous(true)) { + propertySet.addChild(this._parsePrio()); + if (this.peek(TokenType$1.SemiColon)) { + this.finish(propertySet); + node.setPropertySet(propertySet); + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + return this.finish(node); + } + } + this.restoreAtMark(mark); + } + // try to parse as expression + const expression = this._parseExpr(); + if (expression && !expression.isErroneous(true)) { + this._parsePrio(); + if (this.peekOne(...(stopTokens || []), TokenType$1.SemiColon, TokenType$1.EOF)) { + node.setValue(expression); + if (this.peek(TokenType$1.SemiColon)) { + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + } + return this.finish(node); + } + } + this.restoreAtMark(mark); + node.addChild(this._parseCustomPropertyValue(stopTokens)); + node.addChild(this._parsePrio()); + if (isDefined$1(node.colonPosition) && this.token.offset === node.colonPosition + 1) { + return this.finish(node, ParseError.PropertyValueExpected); + } + return this.finish(node); + } + /** + * Parse custom property values. + * + * Based on https://www.w3.org/TR/css-variables/#syntax + * + * This code is somewhat unusual, as the allowed syntax is incredibly broad, + * parsing almost any sequence of tokens, save for a small set of exceptions. + * Unbalanced delimitors, invalid tokens, and declaration + * terminators like semicolons and !important directives (when not inside + * of delimitors). + */ + _parseCustomPropertyValue(stopTokens = [TokenType$1.CurlyR]) { + const node = this.create(Node$1); + const isTopLevel = () => curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0; + const onStopToken = () => stopTokens.indexOf(this.token.type) !== -1; + let curlyDepth = 0; + let parensDepth = 0; + let bracketsDepth = 0; + done: while (true) { + switch (this.token.type) { + case TokenType$1.SemiColon: + // A semicolon only ends things if we're not inside a delimitor. + if (isTopLevel()) { + break done; + } + break; + case TokenType$1.Exclamation: + // An exclamation ends the value if we're not inside delims. + if (isTopLevel()) { + break done; + } + break; + case TokenType$1.CurlyL: + curlyDepth++; + break; + case TokenType$1.CurlyR: + curlyDepth--; + if (curlyDepth < 0) { + // The property value has been terminated without a semicolon, and + // this is the last declaration in the ruleset. + if (onStopToken() && parensDepth === 0 && bracketsDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftCurlyExpected); + } + break; + case TokenType$1.ParenthesisL: + parensDepth++; + break; + case TokenType$1.ParenthesisR: + parensDepth--; + if (parensDepth < 0) { + if (onStopToken() && bracketsDepth === 0 && curlyDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftParenthesisExpected); + } + break; + case TokenType$1.BracketL: + bracketsDepth++; + break; + case TokenType$1.BracketR: + bracketsDepth--; + if (bracketsDepth < 0) { + return this.finish(node, ParseError.LeftSquareBracketExpected); + } + break; + case TokenType$1.BadString: // fall through + break done; + case TokenType$1.EOF: + // We shouldn't have reached the end of input, something is + // unterminated. + let error = ParseError.RightCurlyExpected; + if (bracketsDepth > 0) { + error = ParseError.RightSquareBracketExpected; + } + else if (parensDepth > 0) { + error = ParseError.RightParenthesisExpected; + } + return this.finish(node, error); + } + this.consumeToken(); + } + return this.finish(node); + } + _tryToParseDeclaration(stopTokens) { + const mark = this.mark(); + if (this._parseProperty() && this.accept(TokenType$1.Colon)) { + // looks like a declaration, go ahead + this.restoreAtMark(mark); + return this._parseDeclaration(stopTokens); + } + this.restoreAtMark(mark); + return null; + } + _parseProperty() { + const node = this.create(Property); + const mark = this.mark(); + if (this.acceptDelim('*') || this.acceptDelim('_')) { + // support for IE 5.x, 6 and 7 star hack: see http://en.wikipedia.org/wiki/CSS_filter#Star_hack + if (this.hasWhitespace()) { + this.restoreAtMark(mark); + return null; + } + } + if (node.setIdentifier(this._parsePropertyIdentifier())) { + return this.finish(node); + } + return null; + } + _parsePropertyIdentifier() { + return this._parseIdent(); + } + _parseCharset() { + if (!this.peek(TokenType$1.Charset)) { + return null; + } + const node = this.create(Node$1); + this.consumeToken(); // charset + if (!this.accept(TokenType$1.String)) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType$1.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseImport() { + // @import [ <url> | <string> ] + // [ layer | layer(<layer-name>) ]? + // <import-condition> ; + // <import-conditions> = [ supports( [ <supports-condition> | <declaration> ] ) ]? + // <media-query-list>? + if (!this.peekKeyword('@import')) { + return null; + } + const node = this.create(Import); + this.consumeToken(); // @import + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + return this._completeParseImport(node); + } + _completeParseImport(node) { + if (this.acceptIdent('layer')) { + if (this.accept(TokenType$1.ParenthesisL)) { + if (!node.addChild(this._parseLayerName())) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.SemiColon]); + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.ParenthesisR], []); + } + } + } + if (this.acceptIdent('supports')) { + if (this.accept(TokenType$1.ParenthesisL)) { + node.addChild(this._tryToParseDeclaration() || this._parseSupportsCondition()); + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.ParenthesisR], []); + } + } + } + if (!this.peek(TokenType$1.SemiColon) && !this.peek(TokenType$1.EOF)) { + node.setMedialist(this._parseMediaQueryList()); + } + return this.finish(node); + } + _parseNamespace() { + // http://www.w3.org/TR/css3-namespace/ + // namespace : NAMESPACE_SYM S* [IDENT S*]? [STRING|URI] S* ';' S* + if (!this.peekKeyword('@namespace')) { + return null; + } + const node = this.create(Namespace); + this.consumeToken(); // @namespace + if (!node.addChild(this._parseURILiteral())) { // url literal also starts with ident + node.addChild(this._parseIdent()); // optional prefix + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIExpected, [TokenType$1.SemiColon]); + } + } + if (!this.accept(TokenType$1.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseFontFace() { + if (!this.peekKeyword('@font-face')) { + return null; + } + const node = this.create(FontFace); + this.consumeToken(); // @font-face + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parseViewPort() { + if (!this.peekKeyword('@-ms-viewport') && + !this.peekKeyword('@-o-viewport') && + !this.peekKeyword('@viewport')) { + return null; + } + const node = this.create(ViewPort); + this.consumeToken(); // @-ms-viewport + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parseKeyframe() { + if (!this.peekRegExp(TokenType$1.AtKeyword, this.keyframeRegex)) { + return null; + } + const node = this.create(Keyframe); + const atNode = this.create(Node$1); + this.consumeToken(); // atkeyword + node.setKeyword(this.finish(atNode)); + if (atNode.matches('@-ms-keyframes')) { // -ms-keyframes never existed + this.markError(atNode, ParseError.UnknownKeyword); + } + if (!node.setIdentifier(this._parseKeyframeIdent())) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.CurlyR]); + } + return this._parseBody(node, this._parseKeyframeSelector.bind(this)); + } + _parseKeyframeIdent() { + return this._parseIdent([ReferenceType.Keyframe]); + } + _parseKeyframeSelector() { + const node = this.create(KeyframeSelector); + let hasContent = false; + if (node.addChild(this._parseIdent())) { + hasContent = true; + } + if (this.accept(TokenType$1.Percentage)) { + hasContent = true; + } + if (!hasContent) { + return null; + } + while (this.accept(TokenType$1.Comma)) { + hasContent = false; + if (node.addChild(this._parseIdent())) { + hasContent = true; + } + if (this.accept(TokenType$1.Percentage)) { + hasContent = true; + } + if (!hasContent) { + return this.finish(node, ParseError.PercentageExpected); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _tryParseKeyframeSelector() { + const node = this.create(KeyframeSelector); + const pos = this.mark(); + let hasContent = false; + if (node.addChild(this._parseIdent())) { + hasContent = true; + } + if (this.accept(TokenType$1.Percentage)) { + hasContent = true; + } + if (!hasContent) { + return null; + } + while (this.accept(TokenType$1.Comma)) { + hasContent = false; + if (node.addChild(this._parseIdent())) { + hasContent = true; + } + if (this.accept(TokenType$1.Percentage)) { + hasContent = true; + } + if (!hasContent) { + this.restoreAtMark(pos); + return null; + } + } + if (!this.peek(TokenType$1.CurlyL)) { + this.restoreAtMark(pos); + return null; + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parsePropertyAtRule() { + // @property <custom-property-name> { + // <declaration-list> + // } + if (!this.peekKeyword('@property')) { + return null; + } + const node = this.create(PropertyAtRule); + this.consumeToken(); // @layer + if (!this.peekRegExp(TokenType$1.Ident, /^--/) || !node.setName(this._parseIdent([ReferenceType.Property]))) { + return this.finish(node, ParseError.IdentifierExpected); + } + return this._parseBody(node, this._parseDeclaration.bind(this)); + } + _parseLayer(isNested = false) { + // @layer layer-name {rules} + // @layer layer-name; + // @layer layer-name, layer-name, layer-name; + // @layer {rules} + if (!this.peekKeyword('@layer')) { + return null; + } + const node = this.create(Layer); + this.consumeToken(); // @layer + const names = this._parseLayerNameList(); + if (names) { + node.setNames(names); + } + if ((!names || names.getChildren().length === 1) && this.peek(TokenType$1.CurlyL)) { + return this._parseBody(node, this._parseLayerDeclaration.bind(this, isNested)); + } + if (!this.accept(TokenType$1.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseLayerDeclaration(isNested = false) { + if (isNested) { + // if nested, the body can contain rulesets, but also declarations + return this._tryParseRuleset(true) + || this._tryToParseDeclaration() + || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + } + _parseLayerNameList() { + const node = this.createNode(NodeType.LayerNameList); + if (!node.addChild(this._parseLayerName())) { + return null; + } + while (this.accept(TokenType$1.Comma)) { + if (!node.addChild(this._parseLayerName())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + return this.finish(node); + } + _parseLayerName() { + // <layer-name> = <ident> [ '.' <ident> ]* + const node = this.createNode(NodeType.LayerName); + if (!node.addChild(this._parseIdent())) { + return null; + } + while (!this.hasWhitespace() && this.acceptDelim('.')) { + if (this.hasWhitespace() || !node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + return this.finish(node); + } + _parseSupports(isNested = false) { + // SUPPORTS_SYM S* supports_condition '{' S* ruleset* '}' S* + if (!this.peekKeyword('@supports')) { + return null; + } + const node = this.create(Supports); + this.consumeToken(); // @supports + node.addChild(this._parseSupportsCondition()); + return this._parseBody(node, this._parseSupportsDeclaration.bind(this, isNested)); + } + _parseSupportsDeclaration(isNested = false) { + if (isNested) { + // if nested, the body can contain rulesets, but also declarations + return this._tryParseRuleset(true) + || this._tryToParseDeclaration() + || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + } + _parseSupportsCondition() { + // supports_condition : supports_negation | supports_conjunction | supports_disjunction | supports_condition_in_parens ; + // supports_condition_in_parens: ( '(' S* supports_condition S* ')' ) | supports_declaration_condition | general_enclosed ; + // supports_negation: NOT S+ supports_condition_in_parens ; + // supports_conjunction: supports_condition_in_parens ( S+ AND S+ supports_condition_in_parens )+; + // supports_disjunction: supports_condition_in_parens ( S+ OR S+ supports_condition_in_parens )+; + // supports_declaration_condition: '(' S* declaration ')'; + // general_enclosed: ( FUNCTION | '(' ) ( any | unused )* ')' ; + const node = this.create(SupportsCondition); + if (this.acceptIdent('not')) { + node.addChild(this._parseSupportsConditionInParens()); + } + else { + node.addChild(this._parseSupportsConditionInParens()); + if (this.peekRegExp(TokenType$1.Ident, /^(and|or)$/i)) { + const text = this.token.text.toLowerCase(); + while (this.acceptIdent(text)) { + node.addChild(this._parseSupportsConditionInParens()); + } + } + } + return this.finish(node); + } + _parseSupportsConditionInParens() { + const node = this.create(SupportsCondition); + if (this.accept(TokenType$1.ParenthesisL)) { + if (this.prevToken) { + node.lParent = this.prevToken.offset; + } + if (!node.addChild(this._tryToParseDeclaration([TokenType$1.ParenthesisR]))) { + if (!this._parseSupportsCondition()) { + return this.finish(node, ParseError.ConditionExpected); + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.ParenthesisR], []); + } + if (this.prevToken) { + node.rParent = this.prevToken.offset; + } + return this.finish(node); + } + else if (this.peek(TokenType$1.Ident)) { + const pos = this.mark(); + this.consumeToken(); + if (!this.hasWhitespace() && this.accept(TokenType$1.ParenthesisL)) { + let openParentCount = 1; + while (this.token.type !== TokenType$1.EOF && openParentCount !== 0) { + if (this.token.type === TokenType$1.ParenthesisL) { + openParentCount++; + } + else if (this.token.type === TokenType$1.ParenthesisR) { + openParentCount--; + } + this.consumeToken(); + } + return this.finish(node); + } + else { + this.restoreAtMark(pos); + } + } + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType$1.ParenthesisL]); + } + _parseMediaDeclaration(isNested = false) { + if (isNested) { + // if nested, the body can contain rulesets, but also declarations + return this._tryParseRuleset(true) + || this._tryToParseDeclaration() + || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + } + _parseMedia(isNested = false) { + // MEDIA_SYM S* media_query_list '{' S* ruleset* '}' S* + // media_query_list : S* [media_query [ ',' S* media_query ]* ]? + if (!this.peekKeyword('@media')) { + return null; + } + const node = this.create(Media); + this.consumeToken(); // @media + if (!node.addChild(this._parseMediaQueryList())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + return this._parseBody(node, this._parseMediaDeclaration.bind(this, isNested)); + } + _parseMediaQueryList() { + const node = this.create(Medialist); + if (!node.addChild(this._parseMediaQuery())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + while (this.accept(TokenType$1.Comma)) { + if (!node.addChild(this._parseMediaQuery())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + } + return this.finish(node); + } + _parseMediaQuery() { + // <media-query> = <media-condition> | [ not | only ]? <media-type> [ and <media-condition-without-or> ]? + const node = this.create(MediaQuery); + const pos = this.mark(); + this.acceptIdent('not'); + if (!this.peek(TokenType$1.ParenthesisL)) { + if (this.acceptIdent('only')) ; + if (!node.addChild(this._parseIdent())) { + return null; + } + if (this.acceptIdent('and')) { + node.addChild(this._parseMediaCondition()); + } + } + else { + this.restoreAtMark(pos); // 'not' is part of the MediaCondition + node.addChild(this._parseMediaCondition()); + } + return this.finish(node); + } + _parseRatio() { + const pos = this.mark(); + const node = this.create(RatioValue); + if (!this._parseNumeric()) { + return null; + } + if (!this.acceptDelim('/')) { + this.restoreAtMark(pos); + return null; + } + if (!this._parseNumeric()) { + return this.finish(node, ParseError.NumberExpected); + } + return this.finish(node); + } + _parseMediaCondition() { + // <media-condition> = <media-not> | <media-and> | <media-or> | <media-in-parens> + // <media-not> = not <media-in-parens> + // <media-and> = <media-in-parens> [ and <media-in-parens> ]+ + // <media-or> = <media-in-parens> [ or <media-in-parens> ]+ + // <media-in-parens> = ( <media-condition> ) | <media-feature> | <general-enclosed> + const node = this.create(MediaCondition); + this.acceptIdent('not'); + let parseExpression = true; + while (parseExpression) { + if (!this.accept(TokenType$1.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType$1.CurlyL]); + } + if (this.peek(TokenType$1.ParenthesisL) || this.peekIdent('not')) { + // <media-condition> + node.addChild(this._parseMediaCondition()); + } + else { + node.addChild(this._parseMediaFeature()); + } + // not yet implemented: general enclosed + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType$1.CurlyL]); + } + parseExpression = this.acceptIdent('and') || this.acceptIdent('or'); + } + return this.finish(node); + } + _parseMediaFeature() { + const resyncStopToken = [TokenType$1.ParenthesisR]; + const node = this.create(MediaFeature); + // <media-feature> = ( [ <mf-plain> | <mf-boolean> | <mf-range> ] ) + // <mf-plain> = <mf-name> : <mf-value> + // <mf-boolean> = <mf-name> + // <mf-range> = <mf-name> [ '<' | '>' ]? '='? <mf-value> | <mf-value> [ '<' | '>' ]? '='? <mf-name> | <mf-value> '<' '='? <mf-name> '<' '='? <mf-value> | <mf-value> '>' '='? <mf-name> '>' '='? <mf-value> + if (node.addChild(this._parseMediaFeatureName())) { + if (this.accept(TokenType$1.Colon)) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } + else if (this._parseMediaFeatureRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + if (this._parseMediaFeatureRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } + } + else ; + } + else if (node.addChild(this._parseMediaFeatureValue())) { + if (!this._parseMediaFeatureRangeOperator()) { + return this.finish(node, ParseError.OperatorExpected, [], resyncStopToken); + } + if (!node.addChild(this._parseMediaFeatureName())) { + return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken); + } + if (this._parseMediaFeatureRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } + } + else { + return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken); + } + return this.finish(node); + } + _parseMediaFeatureRangeOperator() { + if (this.acceptDelim('<') || this.acceptDelim('>')) { + if (!this.hasWhitespace()) { + this.acceptDelim('='); + } + return true; + } + else if (this.acceptDelim('=')) { + return true; + } + return false; + } + _parseMediaFeatureName() { + return this._parseIdent(); + } + _parseMediaFeatureValue() { + return this._parseRatio() || this._parseTermExpression(); + } + _parseMedium() { + const node = this.create(Node$1); + if (node.addChild(this._parseIdent())) { + return this.finish(node); + } + else { + return null; + } + } + _parsePageDeclaration() { + return this._parsePageMarginBox() || this._parseRuleSetDeclaration(); + } + _parsePage() { + // http://www.w3.org/TR/css3-page/ + // page_rule : PAGE_SYM S* page_selector_list '{' S* page_body '}' S* + // page_body : /* Can be empty */ declaration? [ ';' S* page_body ]? | page_margin_box page_body + if (!this.peekKeyword('@page')) { + return null; + } + const node = this.create(Page); + this.consumeToken(); + if (node.addChild(this._parsePageSelector())) { + while (this.accept(TokenType$1.Comma)) { + if (!node.addChild(this._parsePageSelector())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + } + return this._parseBody(node, this._parsePageDeclaration.bind(this)); + } + _parsePageMarginBox() { + // page_margin_box : margin_sym S* '{' S* declaration? [ ';' S* declaration? ]* '}' S* + if (!this.peek(TokenType$1.AtKeyword)) { + return null; + } + const node = this.create(PageBoxMarginBox); + if (!this.acceptOneKeyword(pageBoxDirectives)) { + this.markError(node, ParseError.UnknownAtRule, [], [TokenType$1.CurlyL]); + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parsePageSelector() { + // page_selector : pseudo_page+ | IDENT pseudo_page* + // pseudo_page : ':' [ "left" | "right" | "first" | "blank" ]; + if (!this.peek(TokenType$1.Ident) && !this.peek(TokenType$1.Colon)) { + return null; + } + const node = this.create(Node$1); + node.addChild(this._parseIdent()); // optional ident + if (this.accept(TokenType$1.Colon)) { + if (!node.addChild(this._parseIdent())) { // optional ident + return this.finish(node, ParseError.IdentifierExpected); + } + } + return this.finish(node); + } + _parseDocument() { + // -moz-document is experimental but has been pushed to css4 + if (!this.peekKeyword('@-moz-document')) { + return null; + } + const node = this.create(Document); + this.consumeToken(); // @-moz-document + this.resync([], [TokenType$1.CurlyL]); // ignore all the rules + return this._parseBody(node, this._parseStylesheetStatement.bind(this)); + } + _parseContainerDeclaration(isNested = false) { + if (isNested) { + // if nested, the body can contain rulesets, but also declarations + return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + } + _parseContainer(isNested = false) { + if (!this.peekKeyword('@container')) { + return null; + } + const node = this.create(Container); + this.consumeToken(); // @container + node.addChild(this._parseIdent()); // optional container name + node.addChild(this._parseContainerQuery()); + return this._parseBody(node, this._parseContainerDeclaration.bind(this, isNested)); + } + _parseContainerQuery() { + // <container-query> = not <query-in-parens> + // | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ] + const node = this.create(Node$1); + if (this.acceptIdent('not')) { + node.addChild(this._parseContainerQueryInParens()); + } + else { + node.addChild(this._parseContainerQueryInParens()); + if (this.peekIdent('and')) { + while (this.acceptIdent('and')) { + node.addChild(this._parseContainerQueryInParens()); + } + } + else if (this.peekIdent('or')) { + while (this.acceptIdent('or')) { + node.addChild(this._parseContainerQueryInParens()); + } + } + } + return this.finish(node); + } + _parseContainerQueryInParens() { + // <query-in-parens> = ( <container-query> ) + // | ( <size-feature> ) + // | style( <style-query> ) + // | <general-enclosed> + const node = this.create(Node$1); + if (this.accept(TokenType$1.ParenthesisL)) { + if (this.peekIdent('not') || this.peek(TokenType$1.ParenthesisL)) { + node.addChild(this._parseContainerQuery()); + } + else { + node.addChild(this._parseMediaFeature()); + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType$1.CurlyL]); + } + } + else if (this.acceptIdent('style')) { + if (this.hasWhitespace() || !this.accept(TokenType$1.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType$1.CurlyL]); + } + node.addChild(this._parseStyleQuery()); + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType$1.CurlyL]); + } + } + else { + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType$1.CurlyL]); + } + return this.finish(node); + } + _parseStyleQuery() { + // <style-query> = not <style-in-parens> + // | <style-in-parens> [ [ and <style-in-parens> ]* | [ or <style-in-parens> ]* ] + // | <style-feature> + // <style-in-parens> = ( <style-query> ) + // | ( <style-feature> ) + // | <general-enclosed> + const node = this.create(Node$1); + if (this.acceptIdent('not')) { + node.addChild(this._parseStyleInParens()); + } + else if (this.peek(TokenType$1.ParenthesisL)) { + node.addChild(this._parseStyleInParens()); + if (this.peekIdent('and')) { + while (this.acceptIdent('and')) { + node.addChild(this._parseStyleInParens()); + } + } + else if (this.peekIdent('or')) { + while (this.acceptIdent('or')) { + node.addChild(this._parseStyleInParens()); + } + } + } + else { + node.addChild(this._parseDeclaration([TokenType$1.ParenthesisR])); + } + return this.finish(node); + } + _parseStyleInParens() { + const node = this.create(Node$1); + if (this.accept(TokenType$1.ParenthesisL)) { + node.addChild(this._parseStyleQuery()); + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType$1.CurlyL]); + } + } + else { + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType$1.CurlyL]); + } + return this.finish(node); + } + // https://www.w3.org/TR/css-syntax-3/#consume-an-at-rule + _parseUnknownAtRule() { + if (!this.peek(TokenType$1.AtKeyword)) { + return null; + } + const node = this.create(UnknownAtRule); + node.addChild(this._parseUnknownAtRuleName()); + const isTopLevel = () => curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0; + let curlyLCount = 0; + let curlyDepth = 0; + let parensDepth = 0; + let bracketsDepth = 0; + done: while (true) { + switch (this.token.type) { + case TokenType$1.SemiColon: + if (isTopLevel()) { + break done; + } + break; + case TokenType$1.EOF: + if (curlyDepth > 0) { + return this.finish(node, ParseError.RightCurlyExpected); + } + else if (bracketsDepth > 0) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + else if (parensDepth > 0) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + else { + return this.finish(node); + } + case TokenType$1.CurlyL: + curlyLCount++; + curlyDepth++; + break; + case TokenType$1.CurlyR: + curlyDepth--; + // End of at-rule, consume CurlyR and return node + if (curlyLCount > 0 && curlyDepth === 0) { + this.consumeToken(); + if (bracketsDepth > 0) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + else if (parensDepth > 0) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + break done; + } + if (curlyDepth < 0) { + // The property value has been terminated without a semicolon, and + // this is the last declaration in the ruleset. + if (parensDepth === 0 && bracketsDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftCurlyExpected); + } + break; + case TokenType$1.ParenthesisL: + parensDepth++; + break; + case TokenType$1.ParenthesisR: + parensDepth--; + if (parensDepth < 0) { + return this.finish(node, ParseError.LeftParenthesisExpected); + } + break; + case TokenType$1.BracketL: + bracketsDepth++; + break; + case TokenType$1.BracketR: + bracketsDepth--; + if (bracketsDepth < 0) { + return this.finish(node, ParseError.LeftSquareBracketExpected); + } + break; + } + this.consumeToken(); + } + return node; + } + _parseUnknownAtRuleName() { + const node = this.create(Node$1); + if (this.accept(TokenType$1.AtKeyword)) { + return this.finish(node); + } + return node; + } + _parseOperator() { + // these are operators for binary expressions + if (this.peekDelim('/') || + this.peekDelim('*') || + this.peekDelim('+') || + this.peekDelim('-') || + this.peek(TokenType$1.Dashmatch) || + this.peek(TokenType$1.Includes) || + this.peek(TokenType$1.SubstringOperator) || + this.peek(TokenType$1.PrefixOperator) || + this.peek(TokenType$1.SuffixOperator) || + this.peekDelim('=')) { // doesn't stick to the standard here + const node = this.createNode(NodeType.Operator); + this.consumeToken(); + return this.finish(node); + } + else { + return null; + } + } + _parseUnaryOperator() { + if (!this.peekDelim('+') && !this.peekDelim('-')) { + return null; + } + const node = this.create(Node$1); + this.consumeToken(); + return this.finish(node); + } + _parseCombinator() { + if (this.peekDelim('>')) { + const node = this.create(Node$1); + this.consumeToken(); + const mark = this.mark(); + if (!this.hasWhitespace() && this.acceptDelim('>')) { + if (!this.hasWhitespace() && this.acceptDelim('>')) { + node.type = NodeType.SelectorCombinatorShadowPiercingDescendant; + return this.finish(node); + } + this.restoreAtMark(mark); + } + node.type = NodeType.SelectorCombinatorParent; + return this.finish(node); + } + else if (this.peekDelim('+')) { + const node = this.create(Node$1); + this.consumeToken(); + node.type = NodeType.SelectorCombinatorSibling; + return this.finish(node); + } + else if (this.peekDelim('~')) { + const node = this.create(Node$1); + this.consumeToken(); + node.type = NodeType.SelectorCombinatorAllSiblings; + return this.finish(node); + } + else if (this.peekDelim('/')) { + const node = this.create(Node$1); + this.consumeToken(); + const mark = this.mark(); + if (!this.hasWhitespace() && this.acceptIdent('deep') && !this.hasWhitespace() && this.acceptDelim('/')) { + node.type = NodeType.SelectorCombinatorShadowPiercingDescendant; + return this.finish(node); + } + this.restoreAtMark(mark); + } + return null; + } + _parseSimpleSelector() { + // simple_selector + // : element_name [ HASH | class | attrib | pseudo ]* | [ HASH | class | attrib | pseudo ]+ ; + const node = this.create(SimpleSelector); + let c = 0; + if (node.addChild(this._parseElementName() || this._parseNestingSelector())) { + c++; + } + while ((c === 0 || !this.hasWhitespace()) && node.addChild(this._parseSimpleSelectorBody())) { + c++; + } + return c > 0 ? this.finish(node) : null; + } + _parseNestingSelector() { + if (this.peekDelim('&')) { + const node = this.createNode(NodeType.SelectorCombinator); + this.consumeToken(); + return this.finish(node); + } + return null; + } + _parseSimpleSelectorBody() { + return this._parsePseudo() || this._parseHash() || this._parseClass() || this._parseAttrib(); + } + _parseSelectorIdent() { + return this._parseIdent(); + } + _parseHash() { + if (!this.peek(TokenType$1.Hash) && !this.peekDelim('#')) { + return null; + } + const node = this.createNode(NodeType.IdentifierSelector); + if (this.acceptDelim('#')) { + if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + else { + this.consumeToken(); // TokenType.Hash + } + return this.finish(node); + } + _parseClass() { + // class: '.' IDENT ; + if (!this.peekDelim('.')) { + return null; + } + const node = this.createNode(NodeType.ClassSelector); + this.consumeToken(); // '.' + if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + return this.finish(node); + } + _parseElementName() { + // element_name: (ns? '|')? IDENT | '*'; + const pos = this.mark(); + const node = this.createNode(NodeType.ElementNameSelector); + node.addChild(this._parseNamespacePrefix()); + if (!node.addChild(this._parseSelectorIdent()) && !this.acceptDelim('*')) { + this.restoreAtMark(pos); + return null; + } + return this.finish(node); + } + _parseNamespacePrefix() { + const pos = this.mark(); + const node = this.createNode(NodeType.NamespacePrefix); + if (!node.addChild(this._parseIdent()) && !this.acceptDelim('*')) ; + if (!this.acceptDelim('|')) { + this.restoreAtMark(pos); + return null; + } + return this.finish(node); + } + _parseAttrib() { + // attrib : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']' + if (!this.peek(TokenType$1.BracketL)) { + return null; + } + const node = this.create(AttributeSelector); + this.consumeToken(); // BracketL + // Optional attrib namespace + node.setNamespacePrefix(this._parseNamespacePrefix()); + if (!node.setIdentifier(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (node.setOperator(this._parseOperator())) { + node.setValue(this._parseBinaryExpr()); + this.acceptIdent('i'); // case insensitive matching + this.acceptIdent('s'); // case sensitive matching + } + if (!this.accept(TokenType$1.BracketR)) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + return this.finish(node); + } + _parsePseudo() { + // pseudo: ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ] + const node = this._tryParsePseudoIdentifier(); + if (node) { + if (!this.hasWhitespace() && this.accept(TokenType$1.ParenthesisL)) { + const tryAsSelector = () => { + const selectors = this.create(Node$1); + if (!selectors.addChild(this._parseSelector(true))) { + return null; + } + while (this.accept(TokenType$1.Comma) && selectors.addChild(this._parseSelector(true))) { + // loop + } + if (this.peek(TokenType$1.ParenthesisR)) { + return this.finish(selectors); + } + return null; + }; + let hasSelector = node.addChild(this.try(tryAsSelector)); + if (!hasSelector) { + if (node.addChild(this._parseBinaryExpr()) && + this.acceptIdent('of') && + !node.addChild(this.try(tryAsSelector))) { + return this.finish(node, ParseError.SelectorExpected); + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + return this.finish(node); + } + return null; + } + _tryParsePseudoIdentifier() { + if (!this.peek(TokenType$1.Colon)) { + return null; + } + const pos = this.mark(); + const node = this.createNode(NodeType.PseudoSelector); + this.consumeToken(); // Colon + if (this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + // optional, support :: + this.accept(TokenType$1.Colon); + if (this.hasWhitespace() || !node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + return this.finish(node); + } + _tryParsePrio() { + const mark = this.mark(); + const prio = this._parsePrio(); + if (prio) { + return prio; + } + this.restoreAtMark(mark); + return null; + } + _parsePrio() { + if (!this.peek(TokenType$1.Exclamation)) { + return null; + } + const node = this.createNode(NodeType.Prio); + if (this.accept(TokenType$1.Exclamation) && this.acceptIdent('important')) { + return this.finish(node); + } + return null; + } + _parseExpr(stopOnComma = false) { + const node = this.create(Expression); + if (!node.addChild(this._parseBinaryExpr())) { + return null; + } + while (true) { + if (this.peek(TokenType$1.Comma)) { // optional + if (stopOnComma) { + return this.finish(node); + } + this.consumeToken(); + } + if (!node.addChild(this._parseBinaryExpr())) { + break; + } + } + return this.finish(node); + } + _parseUnicodeRange() { + if (!this.peekIdent('u')) { + return null; + } + const node = this.create(UnicodeRange); + if (!this.acceptUnicodeRange()) { + return null; + } + return this.finish(node); + } + _parseNamedLine() { + // https://www.w3.org/TR/css-grid-1/#named-lines + if (!this.peek(TokenType$1.BracketL)) { + return null; + } + const node = this.createNode(NodeType.GridLine); + this.consumeToken(); + while (node.addChild(this._parseIdent())) { + // repeat + } + if (!this.accept(TokenType$1.BracketR)) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + return this.finish(node); + } + _parseBinaryExpr(preparsedLeft, preparsedOper) { + let node = this.create(BinaryExpression); + if (!node.setLeft((preparsedLeft || this._parseTerm()))) { + return null; + } + if (!node.setOperator(preparsedOper || this._parseOperator())) { + return this.finish(node); + } + if (!node.setRight(this._parseTerm())) { + return this.finish(node, ParseError.TermExpected); + } + // things needed for multiple binary expressions + node = this.finish(node); + const operator = this._parseOperator(); + if (operator) { + node = this._parseBinaryExpr(node, operator); + } + return this.finish(node); + } + _parseTerm() { + let node = this.create(Term); + node.setOperator(this._parseUnaryOperator()); // optional + if (node.setExpression(this._parseTermExpression())) { + return this.finish(node); + } + return null; + } + _parseTermExpression() { + return this._parseURILiteral() || // url before function + this._parseUnicodeRange() || + this._parseFunction() || // function before ident + this._parseIdent() || + this._parseStringLiteral() || + this._parseNumeric() || + this._parseHexColor() || + this._parseOperation() || + this._parseNamedLine(); + } + _parseOperation() { + if (!this.peek(TokenType$1.ParenthesisL)) { + return null; + } + const node = this.create(Node$1); + this.consumeToken(); // ParenthesisL + node.addChild(this._parseExpr()); + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseNumeric() { + if (this.peek(TokenType$1.Num) || + this.peek(TokenType$1.Percentage) || + this.peek(TokenType$1.Resolution) || + this.peek(TokenType$1.Length) || + this.peek(TokenType$1.EMS) || + this.peek(TokenType$1.EXS) || + this.peek(TokenType$1.Angle) || + this.peek(TokenType$1.Time) || + this.peek(TokenType$1.Dimension) || + this.peek(TokenType$1.ContainerQueryLength) || + this.peek(TokenType$1.Freq)) { + const node = this.create(NumericValue); + this.consumeToken(); + return this.finish(node); + } + return null; + } + _parseStringLiteral() { + if (!this.peek(TokenType$1.String) && !this.peek(TokenType$1.BadString)) { + return null; + } + const node = this.createNode(NodeType.StringLiteral); + this.consumeToken(); + return this.finish(node); + } + _parseURILiteral() { + if (!this.peekRegExp(TokenType$1.Ident, /^url(-prefix)?$/i)) { + return null; + } + const pos = this.mark(); + const node = this.createNode(NodeType.URILiteral); + this.accept(TokenType$1.Ident); + if (this.hasWhitespace() || !this.peek(TokenType$1.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + this.scanner.inURL = true; + this.consumeToken(); // consume () + node.addChild(this._parseURLArgument()); // argument is optional + this.scanner.inURL = false; + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseURLArgument() { + const node = this.create(Node$1); + if (!this.accept(TokenType$1.String) && !this.accept(TokenType$1.BadString) && !this.acceptUnquotedString()) { + return null; + } + return this.finish(node); + } + _parseIdent(referenceTypes) { + if (!this.peek(TokenType$1.Ident)) { + return null; + } + const node = this.create(Identifier); + if (referenceTypes) { + node.referenceTypes = referenceTypes; + } + node.isCustomProperty = this.peekRegExp(TokenType$1.Ident, /^--/); + this.consumeToken(); + return this.finish(node); + } + _parseFunction() { + const pos = this.mark(); + const node = this.create(Function$1); + if (!node.setIdentifier(this._parseFunctionIdentifier())) { + return null; + } + if (this.hasWhitespace() || !this.accept(TokenType$1.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + this.markError(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseFunctionIdentifier() { + if (!this.peek(TokenType$1.Ident)) { + return null; + } + const node = this.create(Identifier); + node.referenceTypes = [ReferenceType.Function]; + if (this.acceptIdent('progid')) { + // support for IE7 specific filters: 'progid:DXImageTransform.Microsoft.MotionBlur(strength=13, direction=310)' + if (this.accept(TokenType$1.Colon)) { + while (this.accept(TokenType$1.Ident) && this.acceptDelim('.')) { + // loop + } + } + return this.finish(node); + } + this.consumeToken(); + return this.finish(node); + } + _parseFunctionArgument() { + const node = this.create(FunctionArgument); + if (node.setValue(this._parseExpr(true))) { + return this.finish(node); + } + return null; + } + _parseHexColor() { + if (this.peekRegExp(TokenType$1.Hash, /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)) { + const node = this.create(HexColorValue); + this.consumeToken(); + return this.finish(node); + } + else { + return null; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false + * are located before all elements where p(x) is true. + * @returns the least x for which p(x) is true or array.length if no element fullfills the given function. + */ +function findFirst$1(array, p) { + let low = 0, high = array.length; + if (high === 0) { + return 0; // no children + } + while (low < high) { + let mid = Math.floor((low + high) / 2); + if (p(array[mid])) { + high = mid; + } + else { + low = mid + 1; + } + } + return low; +} +function includes(array, item) { + return array.indexOf(item) !== -1; +} +function union(...arrays) { + const result = []; + for (const array of arrays) { + for (const item of array) { + if (!includes(result, item)) { + result.push(item); + } + } + } + return result; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Scope { + constructor(offset, length) { + this.offset = offset; + this.length = length; + this.symbols = []; + this.parent = null; + this.children = []; + } + addChild(scope) { + this.children.push(scope); + scope.setParent(this); + } + setParent(scope) { + this.parent = scope; + } + findScope(offset, length = 0) { + if (this.offset <= offset && this.offset + this.length > offset + length || this.offset === offset && this.length === length) { + return this.findInScope(offset, length); + } + return null; + } + findInScope(offset, length = 0) { + // find the first scope child that has an offset larger than offset + length + const end = offset + length; + const idx = findFirst$1(this.children, s => s.offset > end); + if (idx === 0) { + // all scopes have offsets larger than our end + return this; + } + const res = this.children[idx - 1]; + if (res.offset <= offset && res.offset + res.length >= offset + length) { + return res.findInScope(offset, length); + } + return this; + } + addSymbol(symbol) { + this.symbols.push(symbol); + } + getSymbol(name, type) { + for (let index = 0; index < this.symbols.length; index++) { + const symbol = this.symbols[index]; + if (symbol.name === name && symbol.type === type) { + return symbol; + } + } + return null; + } + getSymbols() { + return this.symbols; + } +} +class GlobalScope extends Scope { + constructor() { + super(0, Number.MAX_VALUE); + } +} +let Symbol$1 = class Symbol { + constructor(name, value, node, type) { + this.name = name; + this.value = value; + this.node = node; + this.type = type; + } +}; +class ScopeBuilder { + constructor(scope) { + this.scope = scope; + } + addSymbol(node, name, value, type) { + if (node.offset !== -1) { + const current = this.scope.findScope(node.offset, node.length); + if (current) { + current.addSymbol(new Symbol$1(name, value, node, type)); + } + } + } + addScope(node) { + if (node.offset !== -1) { + const current = this.scope.findScope(node.offset, node.length); + if (current && (current.offset !== node.offset || current.length !== node.length)) { // scope already known? + const newScope = new Scope(node.offset, node.length); + current.addChild(newScope); + return newScope; + } + return current; + } + return null; + } + addSymbolToChildScope(scopeNode, node, name, value, type) { + if (scopeNode && scopeNode.offset !== -1) { + const current = this.addScope(scopeNode); // create the scope or gets the existing one + if (current) { + current.addSymbol(new Symbol$1(name, value, node, type)); + } + } + } + visitNode(node) { + switch (node.type) { + case NodeType.Keyframe: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Keyframe); + return true; + case NodeType.CustomPropertyDeclaration: + return this.visitCustomPropertyDeclarationNode(node); + case NodeType.VariableDeclaration: + return this.visitVariableDeclarationNode(node); + case NodeType.Ruleset: + return this.visitRuleSet(node); + case NodeType.MixinDeclaration: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Mixin); + return true; + case NodeType.FunctionDeclaration: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Function); + return true; + case NodeType.FunctionParameter: { + return this.visitFunctionParameterNode(node); + } + case NodeType.Declarations: + this.addScope(node); + return true; + case NodeType.For: + const forNode = node; + const scopeNode = forNode.getDeclarations(); + if (scopeNode && forNode.variable) { + this.addSymbolToChildScope(scopeNode, forNode.variable, forNode.variable.getName(), void 0, ReferenceType.Variable); + } + return true; + case NodeType.Each: { + const eachNode = node; + const scopeNode = eachNode.getDeclarations(); + if (scopeNode) { + const variables = eachNode.getVariables().getChildren(); + for (const variable of variables) { + this.addSymbolToChildScope(scopeNode, variable, variable.getName(), void 0, ReferenceType.Variable); + } + } + return true; + } + } + return true; + } + visitRuleSet(node) { + const current = this.scope.findScope(node.offset, node.length); + if (current) { + for (const child of node.getSelectors().getChildren()) { + if (child instanceof Selector) { + if (child.getChildren().length === 1) { // only selectors with a single element can be extended + current.addSymbol(new Symbol$1(child.getChild(0).getText(), void 0, child, ReferenceType.Rule)); + } + } + } + } + return true; + } + visitVariableDeclarationNode(node) { + const value = node.getValue() ? node.getValue().getText() : void 0; + this.addSymbol(node, node.getName(), value, ReferenceType.Variable); + return true; + } + visitFunctionParameterNode(node) { + // parameters are part of the body scope + const scopeNode = node.getParent().getDeclarations(); + if (scopeNode) { + const valueNode = node.getDefaultValue(); + const value = valueNode ? valueNode.getText() : void 0; + this.addSymbolToChildScope(scopeNode, node, node.getName(), value, ReferenceType.Variable); + } + return true; + } + visitCustomPropertyDeclarationNode(node) { + const value = node.getValue() ? node.getValue().getText() : ''; + this.addCSSVariable(node.getProperty(), node.getProperty().getName(), value, ReferenceType.Variable); + return true; + } + addCSSVariable(node, name, value, type) { + if (node.offset !== -1) { + this.scope.addSymbol(new Symbol$1(name, value, node, type)); + } + } +} +class Symbols { + constructor(node) { + this.global = new GlobalScope(); + node.acceptVisitor(new ScopeBuilder(this.global)); + } + findSymbolsAtOffset(offset, referenceType) { + let scope = this.global.findScope(offset, 0); + const result = []; + const names = {}; + while (scope) { + const symbols = scope.getSymbols(); + for (let i = 0; i < symbols.length; i++) { + const symbol = symbols[i]; + if (symbol.type === referenceType && !names[symbol.name]) { + result.push(symbol); + names[symbol.name] = true; + } + } + scope = scope.parent; + } + return result; + } + internalFindSymbol(node, referenceTypes) { + let scopeNode = node; + if (node.parent instanceof FunctionParameter && node.parent.getParent() instanceof BodyDeclaration) { + scopeNode = node.parent.getParent().getDeclarations(); + } + if (node.parent instanceof FunctionArgument && node.parent.getParent() instanceof Function$1) { + const funcId = node.parent.getParent().getIdentifier(); + if (funcId) { + const functionSymbol = this.internalFindSymbol(funcId, [ReferenceType.Function]); + if (functionSymbol) { + scopeNode = functionSymbol.node.getDeclarations(); + } + } + } + if (!scopeNode) { + return null; + } + const name = node.getText(); + let scope = this.global.findScope(scopeNode.offset, scopeNode.length); + while (scope) { + for (let index = 0; index < referenceTypes.length; index++) { + const type = referenceTypes[index]; + const symbol = scope.getSymbol(name, type); + if (symbol) { + return symbol; + } + } + scope = scope.parent; + } + return null; + } + evaluateReferenceTypes(node) { + if (node instanceof Identifier) { + const referenceTypes = node.referenceTypes; + if (referenceTypes) { + return referenceTypes; + } + else { + if (node.isCustomProperty) { + return [ReferenceType.Variable]; + } + // are a reference to a keyframe? + const decl = getParentDeclaration(node); + if (decl) { + const propertyName = decl.getNonPrefixedPropertyName(); + if ((propertyName === 'animation' || propertyName === 'animation-name') + && decl.getValue() && decl.getValue().offset === node.offset) { + return [ReferenceType.Keyframe]; + } + } + } + } + else if (node instanceof Variable) { + return [ReferenceType.Variable]; + } + const selector = node.findAParent(NodeType.Selector, NodeType.ExtendsReference); + if (selector) { + return [ReferenceType.Rule]; + } + return null; + } + findSymbolFromNode(node) { + if (!node) { + return null; + } + while (node.type === NodeType.Interpolation) { + node = node.getParent(); + } + const referenceTypes = this.evaluateReferenceTypes(node); + if (referenceTypes) { + return this.internalFindSymbol(node, referenceTypes); + } + return null; + } + matchesSymbol(node, symbol) { + if (!node) { + return false; + } + while (node.type === NodeType.Interpolation) { + node = node.getParent(); + } + if (!node.matches(symbol.name)) { + return false; + } + const referenceTypes = this.evaluateReferenceTypes(node); + if (!referenceTypes || referenceTypes.indexOf(symbol.type) === -1) { + return false; + } + const nodeSymbol = this.internalFindSymbol(node, referenceTypes); + return nodeSymbol === symbol; + } + findSymbol(name, type, offset) { + let scope = this.global.findScope(offset); + while (scope) { + const symbol = scope.getSymbol(name, type); + if (symbol) { + return symbol; + } + scope = scope.parent; + } + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function dirname(uriString) { + return Utils.dirname(URI$1.parse(uriString)).toString(true); +} +function joinPath(uriString, ...paths) { + return Utils.joinPath(URI$1.parse(uriString), ...paths).toString(true); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let PathCompletionParticipant$1 = class PathCompletionParticipant { + constructor(readDirectory) { + this.readDirectory = readDirectory; + this.literalCompletions = []; + this.importCompletions = []; + } + onCssURILiteralValue(context) { + this.literalCompletions.push(context); + } + onCssImportPath(context) { + this.importCompletions.push(context); + } + async computeCompletions(document, documentContext) { + const result = { items: [], isIncomplete: false }; + for (const literalCompletion of this.literalCompletions) { + const uriValue = literalCompletion.uriValue; + const fullValue = stripQuotes$1(uriValue); + if (fullValue === '.' || fullValue === '..') { + result.isIncomplete = true; + } + else { + const items = await this.providePathSuggestions(uriValue, literalCompletion.position, literalCompletion.range, document, documentContext); + for (let item of items) { + result.items.push(item); + } + } + } + for (const importCompletion of this.importCompletions) { + const pathValue = importCompletion.pathValue; + const fullValue = stripQuotes$1(pathValue); + if (fullValue === '.' || fullValue === '..') { + result.isIncomplete = true; + } + else { + let suggestions = await this.providePathSuggestions(pathValue, importCompletion.position, importCompletion.range, document, documentContext); + if (document.languageId === 'scss') { + suggestions.forEach(s => { + if (startsWith$1(s.label, '_') && endsWith$1(s.label, '.scss')) { + if (s.textEdit) { + s.textEdit.newText = s.label.slice(1, -5); + } + else { + s.label = s.label.slice(1, -5); + } + } + }); + } + for (let item of suggestions) { + result.items.push(item); + } + } + } + return result; + } + async providePathSuggestions(pathValue, position, range, document, documentContext) { + const fullValue = stripQuotes$1(pathValue); + const isValueQuoted = startsWith$1(pathValue, `'`) || startsWith$1(pathValue, `"`); + const valueBeforeCursor = isValueQuoted + ? fullValue.slice(0, position.character - (range.start.character + 1)) + : fullValue.slice(0, position.character - range.start.character); + const currentDocUri = document.uri; + const fullValueRange = isValueQuoted ? shiftRange$1(range, 1, -1) : range; + const replaceRange = pathToReplaceRange$1(valueBeforeCursor, fullValue, fullValueRange); + const valueBeforeLastSlash = valueBeforeCursor.substring(0, valueBeforeCursor.lastIndexOf('/') + 1); // keep the last slash + let parentDir = documentContext.resolveReference(valueBeforeLastSlash || '.', currentDocUri); + if (parentDir) { + try { + const result = []; + const infos = await this.readDirectory(parentDir); + for (const [name, type] of infos) { + // Exclude paths that start with `.` + if (name.charCodeAt(0) !== CharCode_dot$1 && (type === FileType$1.Directory || joinPath(parentDir, name) !== currentDocUri)) { + result.push(createCompletionItem$1(name, type === FileType$1.Directory, replaceRange)); + } + } + return result; + } + catch (e) { + // ignore + } + } + return []; + } +}; +const CharCode_dot$1 = '.'.charCodeAt(0); +function stripQuotes$1(fullValue) { + if (startsWith$1(fullValue, `'`) || startsWith$1(fullValue, `"`)) { + return fullValue.slice(1, -1); + } + else { + return fullValue; + } +} +function pathToReplaceRange$1(valueBeforeCursor, fullValue, fullValueRange) { + let replaceRange; + const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/'); + if (lastIndexOfSlash === -1) { + replaceRange = fullValueRange; + } + else { + // For cases where cursor is in the middle of attribute value, like <script src="./s|rc/test.js"> + // Find the last slash before cursor, and calculate the start of replace range from there + const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1); + const startPos = shiftPosition$1(fullValueRange.end, -valueAfterLastSlash.length); + // If whitespace exists, replace until it + const whitespaceIndex = valueAfterLastSlash.indexOf(' '); + let endPos; + if (whitespaceIndex !== -1) { + endPos = shiftPosition$1(startPos, whitespaceIndex); + } + else { + endPos = fullValueRange.end; + } + replaceRange = Range$a.create(startPos, endPos); + } + return replaceRange; +} +function createCompletionItem$1(name, isDir, replaceRange) { + if (isDir) { + name = name + '/'; + return { + label: escapePath(name), + kind: CompletionItemKind.Folder, + textEdit: TextEdit.replace(replaceRange, escapePath(name)), + command: { + title: 'Suggest', + command: 'editor.action.triggerSuggest' + } + }; + } + else { + return { + label: escapePath(name), + kind: CompletionItemKind.File, + textEdit: TextEdit.replace(replaceRange, escapePath(name)) + }; + } +} +// Escape https://www.w3.org/TR/CSS1/#url +function escapePath(p) { + return p.replace(/(\s|\(|\)|,|"|')/g, '\\$1'); +} +function shiftPosition$1(pos, offset) { + return Position.create(pos.line, pos.character + offset); +} +function shiftRange$1(range, startOffset, endOffset) { + const start = shiftPosition$1(range.start, startOffset); + const end = shiftPosition$1(range.end, endOffset); + return Range$a.create(start, end); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const SnippetFormat = InsertTextFormat.Snippet; +const retriggerCommand = { + title: 'Suggest', + command: 'editor.action.triggerSuggest' +}; +var SortTexts; +(function (SortTexts) { + // char code 32, comes before everything + SortTexts["Enums"] = " "; + SortTexts["Normal"] = "d"; + SortTexts["VendorPrefixed"] = "x"; + SortTexts["Term"] = "y"; + SortTexts["Variable"] = "z"; +})(SortTexts || (SortTexts = {})); +class CSSCompletion { + constructor(variablePrefix = null, lsOptions, cssDataManager) { + this.variablePrefix = variablePrefix; + this.lsOptions = lsOptions; + this.cssDataManager = cssDataManager; + this.completionParticipants = []; + } + configure(settings) { + this.defaultSettings = settings; + } + getSymbolContext() { + if (!this.symbolContext) { + this.symbolContext = new Symbols(this.styleSheet); + } + return this.symbolContext; + } + setCompletionParticipants(registeredCompletionParticipants) { + this.completionParticipants = registeredCompletionParticipants || []; + } + async doComplete2(document, position, styleSheet, documentContext, completionSettings = this.defaultSettings) { + if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory) { + return this.doComplete(document, position, styleSheet, completionSettings); + } + const participant = new PathCompletionParticipant$1(this.lsOptions.fileSystemProvider.readDirectory); + const contributedParticipants = this.completionParticipants; + this.completionParticipants = [participant].concat(contributedParticipants); + const result = this.doComplete(document, position, styleSheet, completionSettings); + try { + const pathCompletionResult = await participant.computeCompletions(document, documentContext); + return { + isIncomplete: result.isIncomplete || pathCompletionResult.isIncomplete, + itemDefaults: result.itemDefaults, + items: pathCompletionResult.items.concat(result.items) + }; + } + finally { + this.completionParticipants = contributedParticipants; + } + } + doComplete(document, position, styleSheet, documentSettings) { + this.offset = document.offsetAt(position); + this.position = position; + this.currentWord = getCurrentWord(document, this.offset); + this.defaultReplaceRange = Range$a.create(Position.create(this.position.line, this.position.character - this.currentWord.length), this.position); + this.textDocument = document; + this.styleSheet = styleSheet; + this.documentSettings = documentSettings; + try { + const result = { + isIncomplete: false, + itemDefaults: { + editRange: { + start: { line: position.line, character: position.character - this.currentWord.length }, + end: position + } + }, + items: [] + }; + this.nodePath = getNodePath(this.styleSheet, this.offset); + for (let i = this.nodePath.length - 1; i >= 0; i--) { + const node = this.nodePath[i]; + if (node instanceof Property) { + this.getCompletionsForDeclarationProperty(node.getParent(), result); + } + else if (node instanceof Expression) { + if (node.parent instanceof Interpolation) { + this.getVariableProposals(null, result); + } + else { + this.getCompletionsForExpression(node, result); + } + } + else if (node instanceof SimpleSelector) { + const parentRef = node.findAParent(NodeType.ExtendsReference, NodeType.Ruleset); + if (parentRef) { + if (parentRef.type === NodeType.ExtendsReference) { + this.getCompletionsForExtendsReference(parentRef, node, result); + } + else { + const parentRuleSet = parentRef; + this.getCompletionsForSelector(parentRuleSet, parentRuleSet && parentRuleSet.isNested(), result); + } + } + } + else if (node instanceof FunctionArgument) { + this.getCompletionsForFunctionArgument(node, node.getParent(), result); + } + else if (node instanceof Declarations) { + this.getCompletionsForDeclarations(node, result); + } + else if (node instanceof VariableDeclaration) { + this.getCompletionsForVariableDeclaration(node, result); + } + else if (node instanceof RuleSet) { + this.getCompletionsForRuleSet(node, result); + } + else if (node instanceof Interpolation) { + this.getCompletionsForInterpolation(node, result); + } + else if (node instanceof FunctionDeclaration) { + this.getCompletionsForFunctionDeclaration(node, result); + } + else if (node instanceof MixinReference) { + this.getCompletionsForMixinReference(node, result); + } + else if (node instanceof Function$1) { + this.getCompletionsForFunctionArgument(null, node, result); + } + else if (node instanceof Supports) { + this.getCompletionsForSupports(node, result); + } + else if (node instanceof SupportsCondition) { + this.getCompletionsForSupportsCondition(node, result); + } + else if (node instanceof ExtendsReference) { + this.getCompletionsForExtendsReference(node, null, result); + } + else if (node.type === NodeType.URILiteral) { + this.getCompletionForUriLiteralValue(node, result); + } + else if (node.parent === null) { + this.getCompletionForTopLevel(result); + } + else if (node.type === NodeType.StringLiteral && this.isImportPathParent(node.parent.type)) { + this.getCompletionForImportPath(node, result); + // } else if (node instanceof nodes.Variable) { + // this.getCompletionsForVariableDeclaration() + } + else { + continue; + } + if (result.items.length > 0 || this.offset > node.offset) { + return this.finalize(result); + } + } + this.getCompletionsForStylesheet(result); + if (result.items.length === 0) { + if (this.variablePrefix && this.currentWord.indexOf(this.variablePrefix) === 0) { + this.getVariableProposals(null, result); + } + } + return this.finalize(result); + } + finally { + // don't hold on any state, clear symbolContext + this.position = null; + this.currentWord = null; + this.textDocument = null; + this.styleSheet = null; + this.symbolContext = null; + this.defaultReplaceRange = null; + this.nodePath = null; + } + } + isImportPathParent(type) { + return type === NodeType.Import; + } + finalize(result) { + return result; + } + findInNodePath(...types) { + for (let i = this.nodePath.length - 1; i >= 0; i--) { + const node = this.nodePath[i]; + if (types.indexOf(node.type) !== -1) { + return node; + } + } + return null; + } + getCompletionsForDeclarationProperty(declaration, result) { + return this.getPropertyProposals(declaration, result); + } + getPropertyProposals(declaration, result) { + const triggerPropertyValueCompletion = this.isTriggerPropertyValueCompletionEnabled; + const completePropertyWithSemicolon = this.isCompletePropertyWithSemicolonEnabled; + const properties = this.cssDataManager.getProperties(); + properties.forEach(entry => { + let range; + let insertText; + let retrigger = false; + if (declaration) { + range = this.getCompletionRange(declaration.getProperty()); + insertText = entry.name; + if (!isDefined$1(declaration.colonPosition)) { + insertText += ': '; + retrigger = true; + } + } + else { + range = this.getCompletionRange(null); + insertText = entry.name + ': '; + retrigger = true; + } + // Empty .selector { | } case + if (!declaration && completePropertyWithSemicolon) { + insertText += '$0;'; + } + // Cases such as .selector { p; } or .selector { p:; } + if (declaration && !declaration.semicolonPosition) { + if (completePropertyWithSemicolon && this.offset >= this.textDocument.offsetAt(range.end)) { + insertText += '$0;'; + } + } + const item = { + label: entry.name, + documentation: getEntryDescription(entry, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [], + textEdit: TextEdit.replace(range, insertText), + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Property + }; + if (!entry.restrictions) { + retrigger = false; + } + if (triggerPropertyValueCompletion && retrigger) { + item.command = retriggerCommand; + } + const relevance = typeof entry.relevance === 'number' ? Math.min(Math.max(entry.relevance, 0), 99) : 50; + const sortTextSuffix = (255 - relevance).toString(16); + const sortTextPrefix = startsWith$1(entry.name, '-') ? SortTexts.VendorPrefixed : SortTexts.Normal; + item.sortText = sortTextPrefix + '_' + sortTextSuffix; + result.items.push(item); + }); + this.completionParticipants.forEach(participant => { + if (participant.onCssProperty) { + participant.onCssProperty({ + propertyName: this.currentWord, + range: this.defaultReplaceRange + }); + } + }); + return result; + } + get isTriggerPropertyValueCompletionEnabled() { + return this.documentSettings?.triggerPropertyValueCompletion ?? true; + } + get isCompletePropertyWithSemicolonEnabled() { + return this.documentSettings?.completePropertyWithSemicolon ?? true; + } + getCompletionsForDeclarationValue(node, result) { + const propertyName = node.getFullPropertyName(); + const entry = this.cssDataManager.getProperty(propertyName); + let existingNode = node.getValue() || null; + while (existingNode && existingNode.hasChildren()) { + existingNode = existingNode.findChildAtOffset(this.offset, false); + } + this.completionParticipants.forEach(participant => { + if (participant.onCssPropertyValue) { + participant.onCssPropertyValue({ + propertyName, + propertyValue: this.currentWord, + range: this.getCompletionRange(existingNode) + }); + } + }); + if (entry) { + if (entry.restrictions) { + for (const restriction of entry.restrictions) { + switch (restriction) { + case 'color': + this.getColorProposals(entry, existingNode, result); + break; + case 'position': + this.getPositionProposals(entry, existingNode, result); + break; + case 'repeat': + this.getRepeatStyleProposals(entry, existingNode, result); + break; + case 'line-style': + this.getLineStyleProposals(entry, existingNode, result); + break; + case 'line-width': + this.getLineWidthProposals(entry, existingNode, result); + break; + case 'geometry-box': + this.getGeometryBoxProposals(entry, existingNode, result); + break; + case 'box': + this.getBoxProposals(entry, existingNode, result); + break; + case 'image': + this.getImageProposals(entry, existingNode, result); + break; + case 'timing-function': + this.getTimingFunctionProposals(entry, existingNode, result); + break; + case 'shape': + this.getBasicShapeProposals(entry, existingNode, result); + break; + } + } + } + this.getValueEnumProposals(entry, existingNode, result); + this.getCSSWideKeywordProposals(entry, existingNode, result); + this.getUnitProposals(entry, existingNode, result); + } + else { + const existingValues = collectValues(this.styleSheet, node); + for (const existingValue of existingValues.getEntries()) { + result.items.push({ + label: existingValue, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), existingValue), + kind: CompletionItemKind.Value + }); + } + } + this.getVariableProposals(existingNode, result); + this.getTermProposals(entry, existingNode, result); + return result; + } + getValueEnumProposals(entry, existingNode, result) { + if (entry.values) { + for (const value of entry.values) { + let insertString = value.name; + let insertTextFormat; + if (endsWith$1(insertString, ')')) { + const from = insertString.lastIndexOf('('); + if (from !== -1) { + insertString = insertString.substring(0, from + 1) + '$1' + insertString.substring(from + 1); + insertTextFormat = SnippetFormat; + } + } + let sortText = SortTexts.Enums; + if (startsWith$1(value.name, '-')) { + sortText += SortTexts.VendorPrefixed; + } + const item = { + label: value.name, + documentation: getEntryDescription(value, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertString), + sortText, + kind: CompletionItemKind.Value, + insertTextFormat + }; + result.items.push(item); + } + } + return result; + } + getCSSWideKeywordProposals(entry, existingNode, result) { + for (const keywords in cssWideKeywords) { + result.items.push({ + label: keywords, + documentation: cssWideKeywords[keywords], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), keywords), + kind: CompletionItemKind.Value + }); + } + for (const func in cssWideFunctions) { + const insertText = moveCursorInsideParenthesis(func); + result.items.push({ + label: func, + documentation: cssWideFunctions[func], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Function, + insertTextFormat: SnippetFormat, + command: startsWith$1(func, 'var') ? retriggerCommand : undefined + }); + } + return result; + } + getCompletionsForInterpolation(node, result) { + if (this.offset >= node.offset + 2) { + this.getVariableProposals(null, result); + } + return result; + } + getVariableProposals(existingNode, result) { + const symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable); + for (const symbol of symbols) { + const insertText = startsWith$1(symbol.name, '--') ? `var(${symbol.name})` : symbol.name; + const completionItem = { + label: symbol.name, + documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Variable, + sortText: SortTexts.Variable + }; + if (typeof completionItem.documentation === 'string' && isColorString(completionItem.documentation)) { + completionItem.kind = CompletionItemKind.Color; + } + if (symbol.node.type === NodeType.FunctionParameter) { + const mixinNode = (symbol.node.getParent()); + if (mixinNode.type === NodeType.MixinDeclaration) { + completionItem.detail = t$2('argument from \'{0}\'', mixinNode.getName()); + } + } + result.items.push(completionItem); + } + return result; + } + getVariableProposalsForCSSVarFunction(result) { + const allReferencedVariables = new Set$1(); + this.styleSheet.acceptVisitor(new VariableCollector(allReferencedVariables, this.offset)); + let symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable); + for (const symbol of symbols) { + if (startsWith$1(symbol.name, '--')) { + const completionItem = { + label: symbol.name, + documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value, + textEdit: TextEdit.replace(this.getCompletionRange(null), symbol.name), + kind: CompletionItemKind.Variable + }; + if (typeof completionItem.documentation === 'string' && isColorString(completionItem.documentation)) { + completionItem.kind = CompletionItemKind.Color; + } + result.items.push(completionItem); + } + allReferencedVariables.remove(symbol.name); + } + for (const name of allReferencedVariables.getEntries()) { + if (startsWith$1(name, '--')) { + const completionItem = { + label: name, + textEdit: TextEdit.replace(this.getCompletionRange(null), name), + kind: CompletionItemKind.Variable + }; + result.items.push(completionItem); + } + } + return result; + } + getUnitProposals(entry, existingNode, result) { + let currentWord = '0'; + if (this.currentWord.length > 0) { + const numMatch = this.currentWord.match(/^-?\d[\.\d+]*/); + if (numMatch) { + currentWord = numMatch[0]; + result.isIncomplete = currentWord.length === this.currentWord.length; + } + } + else if (this.currentWord.length === 0) { + result.isIncomplete = true; + } + if (existingNode && existingNode.parent && existingNode.parent.type === NodeType.Term) { + existingNode = existingNode.getParent(); // include the unary operator + } + if (entry.restrictions) { + for (const restriction of entry.restrictions) { + const units$1 = units[restriction]; + if (units$1) { + for (const unit of units$1) { + const insertText = currentWord + unit; + result.items.push({ + label: insertText, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Unit + }); + } + } + } + } + return result; + } + getCompletionRange(existingNode) { + if (existingNode && existingNode.offset <= this.offset && this.offset <= existingNode.end) { + const end = existingNode.end !== -1 ? this.textDocument.positionAt(existingNode.end) : this.position; + const start = this.textDocument.positionAt(existingNode.offset); + if (start.line === end.line) { + return Range$a.create(start, end); // multi line edits are not allowed + } + } + return this.defaultReplaceRange; + } + getColorProposals(entry, existingNode, result) { + for (const color in colors) { + result.items.push({ + label: color, + documentation: colors[color], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: CompletionItemKind.Color + }); + } + for (const color in colorKeywords) { + result.items.push({ + label: color, + documentation: colorKeywords[color], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: CompletionItemKind.Value + }); + } + const colorValues = new Set$1(); + this.styleSheet.acceptVisitor(new ColorValueCollector(colorValues, this.offset)); + for (const color of colorValues.getEntries()) { + result.items.push({ + label: color, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: CompletionItemKind.Color + }); + } + for (const p of colorFunctions) { + result.items.push({ + label: p.label, + detail: p.func, + documentation: p.desc, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), p.insertText), + insertTextFormat: SnippetFormat, + kind: CompletionItemKind.Function + }); + } + return result; + } + getPositionProposals(entry, existingNode, result) { + for (const position in positionKeywords) { + result.items.push({ + label: position, + documentation: positionKeywords[position], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), position), + kind: CompletionItemKind.Value + }); + } + return result; + } + getRepeatStyleProposals(entry, existingNode, result) { + for (const repeat in repeatStyleKeywords) { + result.items.push({ + label: repeat, + documentation: repeatStyleKeywords[repeat], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), repeat), + kind: CompletionItemKind.Value + }); + } + return result; + } + getLineStyleProposals(entry, existingNode, result) { + for (const lineStyle in lineStyleKeywords) { + result.items.push({ + label: lineStyle, + documentation: lineStyleKeywords[lineStyle], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineStyle), + kind: CompletionItemKind.Value + }); + } + return result; + } + getLineWidthProposals(entry, existingNode, result) { + for (const lineWidth of lineWidthKeywords) { + result.items.push({ + label: lineWidth, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineWidth), + kind: CompletionItemKind.Value + }); + } + return result; + } + getGeometryBoxProposals(entry, existingNode, result) { + for (const box in geometryBoxKeywords) { + result.items.push({ + label: box, + documentation: geometryBoxKeywords[box], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box), + kind: CompletionItemKind.Value + }); + } + return result; + } + getBoxProposals(entry, existingNode, result) { + for (const box in boxKeywords) { + result.items.push({ + label: box, + documentation: boxKeywords[box], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box), + kind: CompletionItemKind.Value + }); + } + return result; + } + getImageProposals(entry, existingNode, result) { + for (const image in imageFunctions) { + const insertText = moveCursorInsideParenthesis(image); + result.items.push({ + label: image, + documentation: imageFunctions[image], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Function, + insertTextFormat: image !== insertText ? SnippetFormat : void 0 + }); + } + return result; + } + getTimingFunctionProposals(entry, existingNode, result) { + for (const timing in transitionTimingFunctions) { + const insertText = moveCursorInsideParenthesis(timing); + result.items.push({ + label: timing, + documentation: transitionTimingFunctions[timing], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Function, + insertTextFormat: timing !== insertText ? SnippetFormat : void 0 + }); + } + return result; + } + getBasicShapeProposals(entry, existingNode, result) { + for (const shape in basicShapeFunctions) { + const insertText = moveCursorInsideParenthesis(shape); + result.items.push({ + label: shape, + documentation: basicShapeFunctions[shape], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: CompletionItemKind.Function, + insertTextFormat: shape !== insertText ? SnippetFormat : void 0 + }); + } + return result; + } + getCompletionsForStylesheet(result) { + const node = this.styleSheet.findFirstChildBeforeOffset(this.offset); + if (!node) { + return this.getCompletionForTopLevel(result); + } + if (node instanceof RuleSet) { + return this.getCompletionsForRuleSet(node, result); + } + if (node instanceof Supports) { + return this.getCompletionsForSupports(node, result); + } + return result; + } + getCompletionForTopLevel(result) { + this.cssDataManager.getAtDirectives().forEach(entry => { + result.items.push({ + label: entry.name, + textEdit: TextEdit.replace(this.getCompletionRange(null), entry.name), + documentation: getEntryDescription(entry, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [], + kind: CompletionItemKind.Keyword + }); + }); + this.getCompletionsForSelector(null, false, result); + return result; + } + getCompletionsForRuleSet(ruleSet, result) { + const declarations = ruleSet.getDeclarations(); + const isAfter = declarations && declarations.endsWith('}') && this.offset >= declarations.end; + if (isAfter) { + return this.getCompletionForTopLevel(result); + } + const isInSelectors = !declarations || this.offset <= declarations.offset; + if (isInSelectors) { + return this.getCompletionsForSelector(ruleSet, ruleSet.isNested(), result); + } + return this.getCompletionsForDeclarations(ruleSet.getDeclarations(), result); + } + getCompletionsForSelector(ruleSet, isNested, result) { + const existingNode = this.findInNodePath(NodeType.PseudoSelector, NodeType.IdentifierSelector, NodeType.ClassSelector, NodeType.ElementNameSelector); + if (!existingNode && this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, ':')) { + // after the ':' of a pseudo selector, no node generated for just ':' + this.currentWord = ':' + this.currentWord; + if (this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, ':')) { + this.currentWord = ':' + this.currentWord; // for '::' + } + this.defaultReplaceRange = Range$a.create(Position.create(this.position.line, this.position.character - this.currentWord.length), this.position); + } + const pseudoClasses = this.cssDataManager.getPseudoClasses(); + pseudoClasses.forEach(entry => { + const insertText = moveCursorInsideParenthesis(entry.name); + const item = { + label: entry.name, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + documentation: getEntryDescription(entry, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [], + kind: CompletionItemKind.Function, + insertTextFormat: entry.name !== insertText ? SnippetFormat : void 0 + }; + if (startsWith$1(entry.name, ':-')) { + item.sortText = SortTexts.VendorPrefixed; + } + result.items.push(item); + }); + const pseudoElements = this.cssDataManager.getPseudoElements(); + pseudoElements.forEach(entry => { + const insertText = moveCursorInsideParenthesis(entry.name); + const item = { + label: entry.name, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + documentation: getEntryDescription(entry, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [], + kind: CompletionItemKind.Function, + insertTextFormat: entry.name !== insertText ? SnippetFormat : void 0 + }; + if (startsWith$1(entry.name, '::-')) { + item.sortText = SortTexts.VendorPrefixed; + } + result.items.push(item); + }); + if (!isNested) { // show html tags only for top level + for (const entry of html5Tags) { + result.items.push({ + label: entry, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry), + kind: CompletionItemKind.Keyword + }); + } + for (const entry of svgElements) { + result.items.push({ + label: entry, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry), + kind: CompletionItemKind.Keyword + }); + } + } + const visited = {}; + visited[this.currentWord] = true; + const docText = this.textDocument.getText(); + this.styleSheet.accept(n => { + if (n.type === NodeType.SimpleSelector && n.length > 0) { + const selector = docText.substr(n.offset, n.length); + if (selector.charAt(0) === '.' && !visited[selector]) { + visited[selector] = true; + result.items.push({ + label: selector, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), selector), + kind: CompletionItemKind.Keyword + }); + } + return false; + } + return true; + }); + if (ruleSet && ruleSet.isNested()) { + const selector = ruleSet.getSelectors().findFirstChildBeforeOffset(this.offset); + if (selector && ruleSet.getSelectors().getChildren().indexOf(selector) === 0) { + this.getPropertyProposals(null, result); + } + } + return result; + } + getCompletionsForDeclarations(declarations, result) { + if (!declarations || this.offset === declarations.offset) { // incomplete nodes + return result; + } + const node = declarations.findFirstChildBeforeOffset(this.offset); + if (!node) { + return this.getCompletionsForDeclarationProperty(null, result); + } + if (node instanceof AbstractDeclaration) { + const declaration = node; + if (!isDefined$1(declaration.colonPosition) || this.offset <= declaration.colonPosition) { + // complete property + return this.getCompletionsForDeclarationProperty(declaration, result); + } + else if ((isDefined$1(declaration.semicolonPosition) && declaration.semicolonPosition < this.offset)) { + if (this.offset === declaration.semicolonPosition + 1) { + return result; // don't show new properties right after semicolon (see Bug 15421:[intellisense] [css] Be less aggressive when manually typing CSS) + } + // complete next property + return this.getCompletionsForDeclarationProperty(null, result); + } + if (declaration instanceof Declaration) { + // complete value + return this.getCompletionsForDeclarationValue(declaration, result); + } + } + else if (node instanceof ExtendsReference) { + this.getCompletionsForExtendsReference(node, null, result); + } + else if (this.currentWord && this.currentWord[0] === '@') { + this.getCompletionsForDeclarationProperty(null, result); + } + else if (node instanceof RuleSet) { + this.getCompletionsForDeclarationProperty(null, result); + } + return result; + } + getCompletionsForVariableDeclaration(declaration, result) { + if (this.offset && isDefined$1(declaration.colonPosition) && this.offset > declaration.colonPosition) { + this.getVariableProposals(declaration.getValue() || null, result); + } + return result; + } + getCompletionsForExpression(expression, result) { + const parent = expression.getParent(); + if (parent instanceof FunctionArgument) { + this.getCompletionsForFunctionArgument(parent, parent.getParent(), result); + return result; + } + const declaration = expression.findParent(NodeType.Declaration); + if (!declaration) { + this.getTermProposals(undefined, null, result); + return result; + } + const node = expression.findChildAtOffset(this.offset, true); + if (!node) { + return this.getCompletionsForDeclarationValue(declaration, result); + } + if (node instanceof NumericValue || node instanceof Identifier) { + return this.getCompletionsForDeclarationValue(declaration, result); + } + return result; + } + getCompletionsForFunctionArgument(arg, func, result) { + const identifier = func.getIdentifier(); + if (identifier && identifier.matches('var')) { + if (!func.getArguments().hasChildren() || func.getArguments().getChild(0) === arg) { + this.getVariableProposalsForCSSVarFunction(result); + } + } + return result; + } + getCompletionsForFunctionDeclaration(decl, result) { + const declarations = decl.getDeclarations(); + if (declarations && this.offset > declarations.offset && this.offset < declarations.end) { + this.getTermProposals(undefined, null, result); + } + return result; + } + getCompletionsForMixinReference(ref, result) { + const allMixins = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Mixin); + for (const mixinSymbol of allMixins) { + if (mixinSymbol.node instanceof MixinDeclaration) { + result.items.push(this.makeTermProposal(mixinSymbol, mixinSymbol.node.getParameters(), null)); + } + } + const identifierNode = ref.getIdentifier() || null; + this.completionParticipants.forEach(participant => { + if (participant.onCssMixinReference) { + participant.onCssMixinReference({ + mixinName: this.currentWord, + range: this.getCompletionRange(identifierNode) + }); + } + }); + return result; + } + getTermProposals(entry, existingNode, result) { + const allFunctions = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Function); + for (const functionSymbol of allFunctions) { + if (functionSymbol.node instanceof FunctionDeclaration) { + result.items.push(this.makeTermProposal(functionSymbol, functionSymbol.node.getParameters(), existingNode)); + } + } + return result; + } + makeTermProposal(symbol, parameters, existingNode) { + symbol.node; + const params = parameters.getChildren().map((c) => { + return (c instanceof FunctionParameter) ? c.getName() : c.getText(); + }); + const insertText = symbol.name + '(' + params.map((p, index) => '${' + (index + 1) + ':' + p + '}').join(', ') + ')'; + return { + label: symbol.name, + detail: symbol.name + '(' + params.join(', ') + ')', + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + insertTextFormat: SnippetFormat, + kind: CompletionItemKind.Function, + sortText: SortTexts.Term + }; + } + getCompletionsForSupportsCondition(supportsCondition, result) { + const child = supportsCondition.findFirstChildBeforeOffset(this.offset); + if (child) { + if (child instanceof Declaration) { + if (!isDefined$1(child.colonPosition) || this.offset <= child.colonPosition) { + return this.getCompletionsForDeclarationProperty(child, result); + } + else { + return this.getCompletionsForDeclarationValue(child, result); + } + } + else if (child instanceof SupportsCondition) { + return this.getCompletionsForSupportsCondition(child, result); + } + } + if (isDefined$1(supportsCondition.lParent) && this.offset > supportsCondition.lParent && (!isDefined$1(supportsCondition.rParent) || this.offset <= supportsCondition.rParent)) { + return this.getCompletionsForDeclarationProperty(null, result); + } + return result; + } + getCompletionsForSupports(supports, result) { + const declarations = supports.getDeclarations(); + const inInCondition = !declarations || this.offset <= declarations.offset; + if (inInCondition) { + const child = supports.findFirstChildBeforeOffset(this.offset); + if (child instanceof SupportsCondition) { + return this.getCompletionsForSupportsCondition(child, result); + } + return result; + } + return this.getCompletionForTopLevel(result); + } + getCompletionsForExtendsReference(extendsRef, existingNode, result) { + return result; + } + getCompletionForUriLiteralValue(uriLiteralNode, result) { + let uriValue; + let position; + let range; + // No children, empty value + if (!uriLiteralNode.hasChildren()) { + uriValue = ''; + position = this.position; + const emptyURIValuePosition = this.textDocument.positionAt(uriLiteralNode.offset + 'url('.length); + range = Range$a.create(emptyURIValuePosition, emptyURIValuePosition); + } + else { + const uriValueNode = uriLiteralNode.getChild(0); + uriValue = uriValueNode.getText(); + position = this.position; + range = this.getCompletionRange(uriValueNode); + } + this.completionParticipants.forEach(participant => { + if (participant.onCssURILiteralValue) { + participant.onCssURILiteralValue({ + uriValue, + position, + range + }); + } + }); + return result; + } + getCompletionForImportPath(importPathNode, result) { + this.completionParticipants.forEach(participant => { + if (participant.onCssImportPath) { + participant.onCssImportPath({ + pathValue: importPathNode.getText(), + position: this.position, + range: this.getCompletionRange(importPathNode) + }); + } + }); + return result; + } + hasCharacterAtPosition(offset, char) { + const text = this.textDocument.getText(); + return (offset >= 0 && offset < text.length) && text.charAt(offset) === char; + } + doesSupportMarkdown() { + if (!isDefined$1(this.supportsMarkdown)) { + if (!isDefined$1(this.lsOptions.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + const documentationFormat = this.lsOptions.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat; + this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + } +} +function isDeprecated(entry) { + if (entry.status && (entry.status === 'nonstandard' || entry.status === 'obsolete')) { + return true; + } + return false; +} +let Set$1 = class Set { + constructor() { + this.entries = {}; + } + add(entry) { + this.entries[entry] = true; + } + remove(entry) { + delete this.entries[entry]; + } + getEntries() { + return Object.keys(this.entries); + } +}; +function moveCursorInsideParenthesis(text) { + return text.replace(/\(\)$/, "($1)"); +} +function collectValues(styleSheet, declaration) { + const fullPropertyName = declaration.getFullPropertyName(); + const entries = new Set$1(); + function visitValue(node) { + if (node instanceof Identifier || node instanceof NumericValue || node instanceof HexColorValue) { + entries.add(node.getText()); + } + return true; + } + function matchesProperty(decl) { + const propertyName = decl.getFullPropertyName(); + return fullPropertyName === propertyName; + } + function vistNode(node) { + if (node instanceof Declaration && node !== declaration) { + if (matchesProperty(node)) { + const value = node.getValue(); + if (value) { + value.accept(visitValue); + } + } + } + return true; + } + styleSheet.accept(vistNode); + return entries; +} +class ColorValueCollector { + constructor(entries, currentOffset) { + this.entries = entries; + this.currentOffset = currentOffset; + // nothing to do + } + visitNode(node) { + if (node instanceof HexColorValue || (node instanceof Function$1 && isColorConstructor(node))) { + if (this.currentOffset < node.offset || node.end < this.currentOffset) { + this.entries.add(node.getText()); + } + } + return true; + } +} +class VariableCollector { + constructor(entries, currentOffset) { + this.entries = entries; + this.currentOffset = currentOffset; + // nothing to do + } + visitNode(node) { + if (node instanceof Identifier && node.isCustomProperty) { + if (this.currentOffset < node.offset || node.end < this.currentOffset) { + this.entries.add(node.getText()); + } + } + return true; + } +} +function getCurrentWord(document, offset) { + let i = offset - 1; + const text = document.getText(); + while (i >= 0 && ' \t\n\r":{[()]},*>+'.indexOf(text.charAt(i)) === -1) { + i--; + } + return text.substring(i + 1, offset); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +let Element$1 = class Element { + constructor() { + this.parent = null; + this.children = null; + this.attributes = null; + } + findAttribute(name) { + if (this.attributes) { + for (const attribute of this.attributes) { + if (attribute.name === name) { + return attribute.value; + } + } + } + return null; + } + addChild(child) { + if (child instanceof Element) { + child.parent = this; + } + if (!this.children) { + this.children = []; + } + this.children.push(child); + } + append(text) { + if (this.attributes) { + const last = this.attributes[this.attributes.length - 1]; + last.value = last.value + text; + } + } + prepend(text) { + if (this.attributes) { + const first = this.attributes[0]; + first.value = text + first.value; + } + } + findRoot() { + let curr = this; + while (curr.parent && !(curr.parent instanceof RootElement)) { + curr = curr.parent; + } + return curr; + } + removeChild(child) { + if (this.children) { + const index = this.children.indexOf(child); + if (index !== -1) { + this.children.splice(index, 1); + return true; + } + } + return false; + } + addAttr(name, value) { + if (!this.attributes) { + this.attributes = []; + } + for (const attribute of this.attributes) { + if (attribute.name === name) { + attribute.value += ' ' + value; + return; + } + } + this.attributes.push({ name, value }); + } + clone(cloneChildren = true) { + const elem = new Element(); + if (this.attributes) { + elem.attributes = []; + for (const attribute of this.attributes) { + elem.addAttr(attribute.name, attribute.value); + } + } + if (cloneChildren && this.children) { + elem.children = []; + for (let index = 0; index < this.children.length; index++) { + elem.addChild(this.children[index].clone()); + } + } + return elem; + } + cloneWithParent() { + const clone = this.clone(false); + if (this.parent && !(this.parent instanceof RootElement)) { + const parentClone = this.parent.cloneWithParent(); + parentClone.addChild(clone); + } + return clone; + } +}; +class RootElement extends Element$1 { +} +class LabelElement extends Element$1 { + constructor(label) { + super(); + this.addAttr('name', label); + } +} +class MarkedStringPrinter { + constructor(quote) { + this.quote = quote; + this.result = []; + // empty + } + print(element, flagOpts) { + this.result = []; + if (element instanceof RootElement) { + if (element.children) { + this.doPrint(element.children, 0); + } + } + else { + this.doPrint([element], 0); + } + let value; + if (flagOpts) { + value = `${flagOpts.text}\n … ` + this.result.join('\n'); + } + else { + value = this.result.join('\n'); + } + return [{ language: 'html', value }]; + } + doPrint(elements, indent) { + for (const element of elements) { + this.doPrintElement(element, indent); + if (element.children) { + this.doPrint(element.children, indent + 1); + } + } + } + writeLine(level, content) { + const indent = new Array(level + 1).join(' '); + this.result.push(indent + content); + } + doPrintElement(element, indent) { + const name = element.findAttribute('name'); + // special case: a simple label + if (element instanceof LabelElement || name === '\u2026') { + this.writeLine(indent, name); + return; + } + // the real deal + const content = ['<']; + // element name + if (name) { + content.push(name); + } + else { + content.push('element'); + } + // attributes + if (element.attributes) { + for (const attr of element.attributes) { + if (attr.name !== 'name') { + content.push(' '); + content.push(attr.name); + const value = attr.value; + if (value) { + content.push('='); + content.push(quotes.ensure(value, this.quote)); + } + } + } + } + content.push('>'); + this.writeLine(indent, content.join('')); + } +} +var quotes; +(function (quotes) { + function ensure(value, which) { + return which + remove(value) + which; + } + quotes.ensure = ensure; + function remove(value) { + const match = value.match(/^['"](.*)["']$/); + if (match) { + return match[1]; + } + return value; + } + quotes.remove = remove; +})(quotes || (quotes = {})); +class Specificity { + constructor() { + /** Count of identifiers (e.g., `#app`) */ + this.id = 0; + /** Count of attributes (`[type="number"]`), classes (`.container-fluid`), and pseudo-classes (`:hover`) */ + this.attr = 0; + /** Count of tag names (`div`), and pseudo-elements (`::before`) */ + this.tag = 0; + } +} +function toElement(node, parentElement) { + let result = new Element$1(); + for (const child of node.getChildren()) { + switch (child.type) { + case NodeType.SelectorCombinator: + if (parentElement) { + const segments = child.getText().split('&'); + if (segments.length === 1) { + // should not happen + result.addAttr('name', segments[0]); + break; + } + result = parentElement.cloneWithParent(); + if (segments[0]) { + const root = result.findRoot(); + root.prepend(segments[0]); + } + for (let i = 1; i < segments.length; i++) { + if (i > 1) { + const clone = parentElement.cloneWithParent(); + result.addChild(clone.findRoot()); + result = clone; + } + result.append(segments[i]); + } + } + break; + case NodeType.SelectorPlaceholder: + if (child.matches('@at-root')) { + return result; + } + // fall through + case NodeType.ElementNameSelector: + const text = child.getText(); + result.addAttr('name', text === '*' ? 'element' : unescape$1(text)); + break; + case NodeType.ClassSelector: + result.addAttr('class', unescape$1(child.getText().substring(1))); + break; + case NodeType.IdentifierSelector: + result.addAttr('id', unescape$1(child.getText().substring(1))); + break; + case NodeType.MixinDeclaration: + result.addAttr('class', child.getName()); + break; + case NodeType.PseudoSelector: + result.addAttr(unescape$1(child.getText()), ''); + break; + case NodeType.AttributeSelector: + const selector = child; + const identifier = selector.getIdentifier(); + if (identifier) { + const expression = selector.getValue(); + const operator = selector.getOperator(); + let value; + if (expression && operator) { + switch (unescape$1(operator.getText())) { + case '|=': + // excatly or followed by -words + value = `${quotes.remove(unescape$1(expression.getText()))}-\u2026`; + break; + case '^=': + // prefix + value = `${quotes.remove(unescape$1(expression.getText()))}\u2026`; + break; + case '$=': + // suffix + value = `\u2026${quotes.remove(unescape$1(expression.getText()))}`; + break; + case '~=': + // one of a list of words + value = ` \u2026 ${quotes.remove(unescape$1(expression.getText()))} \u2026 `; + break; + case '*=': + // substring + value = `\u2026${quotes.remove(unescape$1(expression.getText()))}\u2026`; + break; + default: + value = quotes.remove(unescape$1(expression.getText())); + break; + } + } + result.addAttr(unescape$1(identifier.getText()), value); + } + break; + } + } + return result; +} +function unescape$1(content) { + const scanner = new Scanner(); + scanner.setSource(content); + const token = scanner.scanUnquotedString(); + if (token) { + return token.text; + } + return content; +} +class SelectorPrinting { + constructor(cssDataManager) { + this.cssDataManager = cssDataManager; + } + selectorToMarkedString(node, flagOpts) { + const root = selectorToElement(node); + if (root) { + const markedStrings = new MarkedStringPrinter('"').print(root, flagOpts); + markedStrings.push(this.selectorToSpecificityMarkedString(node)); + return markedStrings; + } + else { + return []; + } + } + simpleSelectorToMarkedString(node) { + const element = toElement(node); + const markedStrings = new MarkedStringPrinter('"').print(element); + markedStrings.push(this.selectorToSpecificityMarkedString(node)); + return markedStrings; + } + isPseudoElementIdentifier(text) { + const match = text.match(/^::?([\w-]+)/); + if (!match) { + return false; + } + return !!this.cssDataManager.getPseudoElement('::' + match[1]); + } + selectorToSpecificityMarkedString(node) { + const calculateMostSpecificListItem = (childElements) => { + const specificity = new Specificity(); + let mostSpecificListItem = new Specificity(); + for (const containerElement of childElements) { + for (const childElement of containerElement.getChildren()) { + const itemSpecificity = calculateScore(childElement); + if (itemSpecificity.id > mostSpecificListItem.id) { + mostSpecificListItem = itemSpecificity; + continue; + } + else if (itemSpecificity.id < mostSpecificListItem.id) { + continue; + } + if (itemSpecificity.attr > mostSpecificListItem.attr) { + mostSpecificListItem = itemSpecificity; + continue; + } + else if (itemSpecificity.attr < mostSpecificListItem.attr) { + continue; + } + if (itemSpecificity.tag > mostSpecificListItem.tag) { + mostSpecificListItem = itemSpecificity; + continue; + } + } + } + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + return specificity; + }; + //https://www.w3.org/TR/selectors-3/#specificity + const calculateScore = (node) => { + const specificity = new Specificity(); + elementLoop: for (const element of node.getChildren()) { + switch (element.type) { + case NodeType.IdentifierSelector: + specificity.id++; + break; + case NodeType.ClassSelector: + case NodeType.AttributeSelector: + specificity.attr++; + break; + case NodeType.ElementNameSelector: + //ignore universal selector + if (element.matches('*')) { + break; + } + specificity.tag++; + break; + case NodeType.PseudoSelector: + const text = element.getText(); + const childElements = element.getChildren(); + if (this.isPseudoElementIdentifier(text)) { + if (text.match(/^::slotted/i) && childElements.length > 0) { + // The specificity of ::slotted() is that of a pseudo-element, plus the specificity of its argument. + // ::slotted() does not allow a selector list as its argument, but this isn't the right place to give feedback on validity. + // Reporting the most specific child will be correct for correct CSS and will be forgiving in case of mistakes. + specificity.tag++; + let mostSpecificListItem = calculateMostSpecificListItem(childElements); + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + continue elementLoop; + } + specificity.tag++; // pseudo element + continue elementLoop; + } + // where and child selectors have zero specificity + if (text.match(/^:where/i)) { + continue elementLoop; + } + // the most specific child selector + if (text.match(/^:(?:not|has|is)/i) && childElements.length > 0) { + let mostSpecificListItem = calculateMostSpecificListItem(childElements); + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + continue elementLoop; + } + if (text.match(/^:(?:host|host-context)/i) && childElements.length > 0) { + // The specificity of :host() is that of a pseudo-class, plus the specificity of its argument. + // The specificity of :host-context() is that of a pseudo-class, plus the specificity of its argument. + specificity.attr++; + let mostSpecificListItem = calculateMostSpecificListItem(childElements); + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + continue elementLoop; + } + if (text.match(/^:(?:nth-child|nth-last-child)/i) && childElements.length > 0) { + /* The specificity of the :nth-child(An+B [of S]?) pseudo-class is the specificity of a single pseudo-class plus, if S is specified, the specificity of the most specific complex selector in S */ + // https://www.w3.org/TR/selectors-4/#the-nth-child-pseudo + specificity.attr++; + // 23 = Binary Expression. + if (childElements.length === 3 && childElements[1].type === 23) { + let mostSpecificListItem = calculateMostSpecificListItem(childElements[2].getChildren()); + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + continue elementLoop; + } + // Edge case: 'n' without integer prefix A, with B integer non-existent, is not regarded as a binary expression token. + const parser = new Parser(); + const pseudoSelectorText = childElements[1].getText(); + parser.scanner.setSource(pseudoSelectorText); + const firstToken = parser.scanner.scan(); + const secondToken = parser.scanner.scan(); + if (firstToken.text === 'n' || (firstToken.text === '-n' && secondToken.text === 'of')) { + const complexSelectorListNodes = []; + const complexSelectorText = pseudoSelectorText.slice(secondToken.offset + 2); + const complexSelectorArray = complexSelectorText.split(','); + for (const selector of complexSelectorArray) { + const node = parser.internalParse(selector, parser._parseSelector); + if (node) { + complexSelectorListNodes.push(node); + } + } + let mostSpecificListItem = calculateMostSpecificListItem(complexSelectorListNodes); + specificity.id += mostSpecificListItem.id; + specificity.attr += mostSpecificListItem.attr; + specificity.tag += mostSpecificListItem.tag; + continue elementLoop; + } + continue elementLoop; + } + specificity.attr++; //pseudo class + continue elementLoop; + } + if (element.getChildren().length > 0) { + const itemSpecificity = calculateScore(element); + specificity.id += itemSpecificity.id; + specificity.attr += itemSpecificity.attr; + specificity.tag += itemSpecificity.tag; + } + } + return specificity; + }; + const specificity = calculateScore(node); + return `[${t$2('Selector Specificity')}](https://developer.mozilla.org/docs/Web/CSS/Specificity): (${specificity.id}, ${specificity.attr}, ${specificity.tag})`; + } +} +class SelectorElementBuilder { + constructor(element) { + this.prev = null; + this.element = element; + } + processSelector(selector) { + let parentElement = null; + if (!(this.element instanceof RootElement)) { + if (selector.getChildren().some((c) => c.hasChildren() && c.getChild(0).type === NodeType.SelectorCombinator)) { + const curr = this.element.findRoot(); + if (curr.parent instanceof RootElement) { + parentElement = this.element; + this.element = curr.parent; + this.element.removeChild(curr); + this.prev = null; + } + } + } + for (const selectorChild of selector.getChildren()) { + if (selectorChild instanceof SimpleSelector) { + if (this.prev instanceof SimpleSelector) { + const labelElement = new LabelElement('\u2026'); + this.element.addChild(labelElement); + this.element = labelElement; + } + else if (this.prev && (this.prev.matches('+') || this.prev.matches('~')) && this.element.parent) { + this.element = this.element.parent; + } + if (this.prev && this.prev.matches('~')) { + this.element.addChild(new LabelElement('\u22EE')); + } + const thisElement = toElement(selectorChild, parentElement); + const root = thisElement.findRoot(); + this.element.addChild(root); + this.element = thisElement; + } + if (selectorChild instanceof SimpleSelector || + selectorChild.type === NodeType.SelectorCombinatorParent || + selectorChild.type === NodeType.SelectorCombinatorShadowPiercingDescendant || + selectorChild.type === NodeType.SelectorCombinatorSibling || + selectorChild.type === NodeType.SelectorCombinatorAllSiblings) { + this.prev = selectorChild; + } + } + } +} +function isNewSelectorContext(node) { + switch (node.type) { + case NodeType.MixinDeclaration: + case NodeType.Stylesheet: + return true; + } + return false; +} +function selectorToElement(node) { + if (node.matches('@at-root')) { + return null; + } + const root = new RootElement(); + const parentRuleSets = []; + const ruleSet = node.getParent(); + if (ruleSet instanceof RuleSet) { + let parent = ruleSet.getParent(); // parent of the selector's ruleset + while (parent && !isNewSelectorContext(parent)) { + if (parent instanceof RuleSet) { + if (parent.getSelectors().matches('@at-root')) { + break; + } + parentRuleSets.push(parent); + } + parent = parent.getParent(); + } + } + const builder = new SelectorElementBuilder(root); + for (let i = parentRuleSets.length - 1; i >= 0; i--) { + const selector = parentRuleSets[i].getSelectors().getChild(0); + if (selector) { + builder.processSelector(selector); + } + } + builder.processSelector(node); + return root; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSHover { + constructor(clientCapabilities, cssDataManager) { + this.clientCapabilities = clientCapabilities; + this.cssDataManager = cssDataManager; + this.selectorPrinting = new SelectorPrinting(cssDataManager); + } + configure(settings) { + this.defaultSettings = settings; + } + doHover(document, position, stylesheet, settings = this.defaultSettings) { + function getRange(node) { + return Range$a.create(document.positionAt(node.offset), document.positionAt(node.end)); + } + const offset = document.offsetAt(position); + const nodepath = getNodePath(stylesheet, offset); + /** + * nodepath is top-down + * Build up the hover by appending inner node's information + */ + let hover = null; + let flagOpts; + for (let i = 0; i < nodepath.length; i++) { + const node = nodepath[i]; + if (node instanceof Media) { + const regex = /@media[^\{]+/g; + const matches = node.getText().match(regex); + flagOpts = { + isMedia: true, + text: matches?.[0], + }; + } + if (node instanceof Selector) { + hover = { + contents: this.selectorPrinting.selectorToMarkedString(node, flagOpts), + range: getRange(node), + }; + break; + } + if (node instanceof SimpleSelector) { + /** + * Some sass specific at rules such as `@at-root` are parsed as `SimpleSelector` + */ + if (!startsWith$1(node.getText(), '@')) { + hover = { + contents: this.selectorPrinting.simpleSelectorToMarkedString(node), + range: getRange(node), + }; + } + break; + } + if (node instanceof Declaration) { + const propertyName = node.getFullPropertyName(); + const entry = this.cssDataManager.getProperty(propertyName); + if (entry) { + const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange(node), + }; + } + else { + hover = null; + } + } + continue; + } + if (node instanceof UnknownAtRule) { + const atRuleName = node.getText(); + const entry = this.cssDataManager.getAtDirective(atRuleName); + if (entry) { + const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange(node), + }; + } + else { + hover = null; + } + } + continue; + } + if (node instanceof Node$1 && node.type === NodeType.PseudoSelector) { + const selectorName = node.getText(); + const entry = selectorName.slice(0, 2) === '::' ? this.cssDataManager.getPseudoElement(selectorName) : this.cssDataManager.getPseudoClass(selectorName); + if (entry) { + const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange(node), + }; + } + else { + hover = null; + } + } + continue; + } + } + if (hover) { + hover.contents = this.convertContents(hover.contents); + } + return hover; + } + convertContents(contents) { + if (!this.doesSupportMarkdown()) { + if (typeof contents === 'string') { + return contents; + } + // MarkupContent + else if ('kind' in contents) { + return { + kind: 'plaintext', + value: contents.value, + }; + } + // MarkedString[] + else if (Array.isArray(contents)) { + return contents.map((c) => { + return typeof c === 'string' ? c : c.value; + }); + } + // MarkedString + else { + return contents.value; + } + } + return contents; + } + doesSupportMarkdown() { + if (!isDefined$1(this.supportsMarkdown)) { + if (!isDefined$1(this.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + const hover = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.hover; + this.supportsMarkdown = hover && hover.contentFormat && Array.isArray(hover.contentFormat) && hover.contentFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const startsWithSchemeRegex = /^\w+:\/\//; +const startsWithData = /^data:/; +class CSSNavigation { + constructor(fileSystemProvider, resolveModuleReferences) { + this.fileSystemProvider = fileSystemProvider; + this.resolveModuleReferences = resolveModuleReferences; + } + configure(settings) { + this.defaultSettings = settings; + } + findDefinition(document, position, stylesheet) { + const symbols = new Symbols(stylesheet); + const offset = document.offsetAt(position); + const node = getNodeAtOffset(stylesheet, offset); + if (!node) { + return null; + } + const symbol = symbols.findSymbolFromNode(node); + if (!symbol) { + return null; + } + return { + uri: document.uri, + range: getRange(symbol.node, document) + }; + } + findReferences(document, position, stylesheet) { + const highlights = this.findDocumentHighlights(document, position, stylesheet); + return highlights.map(h => { + return { + uri: document.uri, + range: h.range + }; + }); + } + getHighlightNode(document, position, stylesheet) { + const offset = document.offsetAt(position); + let node = getNodeAtOffset(stylesheet, offset); + if (!node || node.type === NodeType.Stylesheet || node.type === NodeType.Declarations || node.type === NodeType.ModuleConfig) { + return; + } + if (node.type === NodeType.Identifier && node.parent && node.parent.type === NodeType.ClassSelector) { + node = node.parent; + } + return node; + } + findDocumentHighlights(document, position, stylesheet) { + const result = []; + const node = this.getHighlightNode(document, position, stylesheet); + if (!node) { + return result; + } + const symbols = new Symbols(stylesheet); + const symbol = symbols.findSymbolFromNode(node); + const name = node.getText(); + stylesheet.accept(candidate => { + if (symbol) { + if (symbols.matchesSymbol(candidate, symbol)) { + result.push({ + kind: getHighlightKind(candidate), + range: getRange(candidate, document) + }); + return false; + } + } + else if (node && node.type === candidate.type && candidate.matches(name)) { + // Same node type and data + result.push({ + kind: getHighlightKind(candidate), + range: getRange(candidate, document) + }); + } + return true; + }); + return result; + } + isRawStringDocumentLinkNode(node) { + return node.type === NodeType.Import; + } + findDocumentLinks(document, stylesheet, documentContext) { + const linkData = this.findUnresolvedLinks(document, stylesheet); + const resolvedLinks = []; + for (let data of linkData) { + const link = data.link; + const target = link.target; + if (!target || startsWithData.test(target)) ; + else if (startsWithSchemeRegex.test(target)) { + resolvedLinks.push(link); + } + else { + const resolved = documentContext.resolveReference(target, document.uri); + if (resolved) { + link.target = resolved; + } + resolvedLinks.push(link); + } + } + return resolvedLinks; + } + async findDocumentLinks2(document, stylesheet, documentContext) { + const linkData = this.findUnresolvedLinks(document, stylesheet); + const resolvedLinks = []; + for (let data of linkData) { + const link = data.link; + const target = link.target; + if (!target || startsWithData.test(target)) ; + else if (startsWithSchemeRegex.test(target)) { + resolvedLinks.push(link); + } + else { + const resolvedTarget = await this.resolveReference(target, document.uri, documentContext, data.isRawLink); + if (resolvedTarget !== undefined) { + link.target = resolvedTarget; + resolvedLinks.push(link); + } + } + } + return resolvedLinks; + } + findUnresolvedLinks(document, stylesheet) { + const result = []; + const collect = (uriStringNode) => { + let rawUri = uriStringNode.getText(); + const range = getRange(uriStringNode, document); + // Make sure the range is not empty + if (range.start.line === range.end.line && range.start.character === range.end.character) { + return; + } + if (startsWith$1(rawUri, `'`) || startsWith$1(rawUri, `"`)) { + rawUri = rawUri.slice(1, -1); + } + const isRawLink = uriStringNode.parent ? this.isRawStringDocumentLinkNode(uriStringNode.parent) : false; + result.push({ link: { target: rawUri, range }, isRawLink }); + }; + stylesheet.accept(candidate => { + if (candidate.type === NodeType.URILiteral) { + const first = candidate.getChild(0); + if (first) { + collect(first); + } + return false; + } + /** + * In @import, it is possible to include links that do not use `url()` + * For example, `@import 'foo.css';` + */ + if (candidate.parent && this.isRawStringDocumentLinkNode(candidate.parent)) { + const rawText = candidate.getText(); + if (startsWith$1(rawText, `'`) || startsWith$1(rawText, `"`)) { + collect(candidate); + } + return false; + } + return true; + }); + return result; + } + findSymbolInformations(document, stylesheet) { + const result = []; + const addSymbolInformation = (name, kind, symbolNodeOrRange) => { + const range = symbolNodeOrRange instanceof Node$1 ? getRange(symbolNodeOrRange, document) : symbolNodeOrRange; + const entry = { + name: name || t$2('<undefined>'), + kind, + location: Location.create(document.uri, range) + }; + result.push(entry); + }; + this.collectDocumentSymbols(document, stylesheet, addSymbolInformation); + return result; + } + findDocumentSymbols(document, stylesheet) { + const result = []; + const parents = []; + const addDocumentSymbol = (name, kind, symbolNodeOrRange, nameNodeOrRange, bodyNode) => { + const range = symbolNodeOrRange instanceof Node$1 ? getRange(symbolNodeOrRange, document) : symbolNodeOrRange; + let selectionRange = nameNodeOrRange instanceof Node$1 ? getRange(nameNodeOrRange, document) : nameNodeOrRange; + if (!selectionRange || !containsRange(range, selectionRange)) { + selectionRange = Range$a.create(range.start, range.start); + } + const entry = { + name: name || t$2('<undefined>'), + kind, + range, + selectionRange + }; + let top = parents.pop(); + while (top && !containsRange(top[1], range)) { + top = parents.pop(); + } + if (top) { + const topSymbol = top[0]; + if (!topSymbol.children) { + topSymbol.children = []; + } + topSymbol.children.push(entry); + parents.push(top); // put back top + } + else { + result.push(entry); + } + if (bodyNode) { + parents.push([entry, getRange(bodyNode, document)]); + } + }; + this.collectDocumentSymbols(document, stylesheet, addDocumentSymbol); + return result; + } + collectDocumentSymbols(document, stylesheet, collect) { + stylesheet.accept(node => { + if (node instanceof RuleSet) { + for (const selector of node.getSelectors().getChildren()) { + if (selector instanceof Selector) { + const range = Range$a.create(document.positionAt(selector.offset), document.positionAt(node.end)); + collect(selector.getText(), SymbolKind$1.Class, range, selector, node.getDeclarations()); + } + } + } + else if (node instanceof VariableDeclaration) { + collect(node.getName(), SymbolKind$1.Variable, node, node.getVariable(), undefined); + } + else if (node instanceof MixinDeclaration) { + collect(node.getName(), SymbolKind$1.Method, node, node.getIdentifier(), node.getDeclarations()); + } + else if (node instanceof FunctionDeclaration) { + collect(node.getName(), SymbolKind$1.Function, node, node.getIdentifier(), node.getDeclarations()); + } + else if (node instanceof Keyframe) { + const name = t$2("@keyframes {0}", node.getName()); + collect(name, SymbolKind$1.Class, node, node.getIdentifier(), node.getDeclarations()); + } + else if (node instanceof FontFace) { + const name = t$2("@font-face"); + collect(name, SymbolKind$1.Class, node, undefined, node.getDeclarations()); + } + else if (node instanceof Media) { + const mediaList = node.getChild(0); + if (mediaList instanceof Medialist) { + const name = '@media ' + mediaList.getText(); + collect(name, SymbolKind$1.Module, node, mediaList, node.getDeclarations()); + } + } + return true; + }); + } + findDocumentColors(document, stylesheet) { + const result = []; + stylesheet.accept((node) => { + const colorInfo = getColorInformation(node, document); + if (colorInfo) { + result.push(colorInfo); + } + return true; + }); + return result; + } + getColorPresentations(document, stylesheet, color, range) { + const result = []; + const red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255); + let label; + if (color.alpha === 1) { + label = `rgb(${red256}, ${green256}, ${blue256})`; + } + else { + label = `rgba(${red256}, ${green256}, ${blue256}, ${color.alpha})`; + } + result.push({ label: label, textEdit: TextEdit.replace(range, label) }); + if (color.alpha === 1) { + label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}`; + } + else { + label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}${toTwoDigitHex(Math.round(color.alpha * 255))}`; + } + result.push({ label: label, textEdit: TextEdit.replace(range, label) }); + const hsl = hslFromColor(color); + if (hsl.a === 1) { + label = `hsl(${hsl.h}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%)`; + } + else { + label = `hsla(${hsl.h}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%, ${hsl.a})`; + } + result.push({ label: label, textEdit: TextEdit.replace(range, label) }); + const hwb = hwbFromColor(color); + if (hwb.a === 1) { + label = `hwb(${hwb.h} ${Math.round(hwb.w * 100)}% ${Math.round(hwb.b * 100)}%)`; + } + else { + label = `hwb(${hwb.h} ${Math.round(hwb.w * 100)}% ${Math.round(hwb.b * 100)}% / ${hwb.a})`; + } + result.push({ label: label, textEdit: TextEdit.replace(range, label) }); + return result; + } + prepareRename(document, position, stylesheet) { + const node = this.getHighlightNode(document, position, stylesheet); + if (node) { + return Range$a.create(document.positionAt(node.offset), document.positionAt(node.end)); + } + } + doRename(document, position, newName, stylesheet) { + const highlights = this.findDocumentHighlights(document, position, stylesheet); + const edits = highlights.map(h => TextEdit.replace(h.range, newName)); + return { + changes: { [document.uri]: edits } + }; + } + async resolveModuleReference(ref, documentUri, documentContext) { + if (startsWith$1(documentUri, 'file://')) { + const moduleName = getModuleNameFromPath(ref); + if (moduleName && moduleName !== '.' && moduleName !== '..') { + const rootFolderUri = documentContext.resolveReference('/', documentUri); + const documentFolderUri = dirname(documentUri); + const modulePath = await this.resolvePathToModule(moduleName, documentFolderUri, rootFolderUri); + if (modulePath) { + const pathWithinModule = ref.substring(moduleName.length + 1); + return joinPath(modulePath, pathWithinModule); + } + } + } + return undefined; + } + async mapReference(target, isRawLink) { + return target; + } + async resolveReference(target, documentUri, documentContext, isRawLink = false, settings = this.defaultSettings) { + // Following [css-loader](https://github.com/webpack-contrib/css-loader#url) + // and [sass-loader's](https://github.com/webpack-contrib/sass-loader#imports) + // convention, if an import path starts with ~ then use node module resolution + // *unless* it starts with "~/" as this refers to the user's home directory. + if (target[0] === '~' && target[1] !== '/' && this.fileSystemProvider) { + target = target.substring(1); + return this.mapReference(await this.resolveModuleReference(target, documentUri, documentContext), isRawLink); + } + const ref = await this.mapReference(documentContext.resolveReference(target, documentUri), isRawLink); + // Following [less-loader](https://github.com/webpack-contrib/less-loader#imports) + // and [sass-loader's](https://github.com/webpack-contrib/sass-loader#resolving-import-at-rules) + // new resolving import at-rules (~ is deprecated). The loader will first try to resolve @import as a relative path. If it cannot be resolved, + // then the loader will try to resolve @import inside node_modules. + if (this.resolveModuleReferences) { + if (ref && await this.fileExists(ref)) { + return ref; + } + const moduleReference = await this.mapReference(await this.resolveModuleReference(target, documentUri, documentContext), isRawLink); + if (moduleReference) { + return moduleReference; + } + } + // Try resolving the reference from the language configuration alias settings + if (ref && !(await this.fileExists(ref))) { + const rootFolderUri = documentContext.resolveReference('/', documentUri); + if (settings && rootFolderUri) { + // Specific file reference + if (target in settings) { + return this.mapReference(joinPath(rootFolderUri, settings[target]), isRawLink); + } + // Reference folder + const firstSlash = target.indexOf('/'); + const prefix = `${target.substring(0, firstSlash)}/`; + if (prefix in settings) { + const aliasPath = (settings[prefix]).slice(0, -1); + let newPath = joinPath(rootFolderUri, aliasPath); + return this.mapReference(newPath = joinPath(newPath, target.substring(prefix.length - 1)), isRawLink); + } + } + } + // fall back. it might not exists + return ref; + } + async resolvePathToModule(_moduleName, documentFolderUri, rootFolderUri) { + // resolve the module relative to the document. We can't use `require` here as the code is webpacked. + const packPath = joinPath(documentFolderUri, 'node_modules', _moduleName, 'package.json'); + if (await this.fileExists(packPath)) { + return dirname(packPath); + } + else if (rootFolderUri && documentFolderUri.startsWith(rootFolderUri) && (documentFolderUri.length !== rootFolderUri.length)) { + return this.resolvePathToModule(_moduleName, dirname(documentFolderUri), rootFolderUri); + } + return undefined; + } + async fileExists(uri) { + if (!this.fileSystemProvider) { + return false; + } + try { + const stat = await this.fileSystemProvider.stat(uri); + if (stat.type === FileType$1.Unknown && stat.size === -1) { + return false; + } + return true; + } + catch (err) { + return false; + } + } + async getContent(uri) { + if (!this.fileSystemProvider || !this.fileSystemProvider.getContent) { + return null; + } + try { + return await this.fileSystemProvider.getContent(uri); + } + catch (err) { + return null; + } + } +} +function getColorInformation(node, document) { + const color = getColorValue(node); + if (color) { + const range = getRange(node, document); + return { color, range }; + } + return null; +} +function getRange(node, document) { + return Range$a.create(document.positionAt(node.offset), document.positionAt(node.end)); +} +/** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ +function containsRange(range, otherRange) { + const otherStartLine = otherRange.start.line, otherEndLine = otherRange.end.line; + const rangeStartLine = range.start.line, rangeEndLine = range.end.line; + if (otherStartLine < rangeStartLine || otherEndLine < rangeStartLine) { + return false; + } + if (otherStartLine > rangeEndLine || otherEndLine > rangeEndLine) { + return false; + } + if (otherStartLine === rangeStartLine && otherRange.start.character < range.start.character) { + return false; + } + if (otherEndLine === rangeEndLine && otherRange.end.character > range.end.character) { + return false; + } + return true; +} +function getHighlightKind(node) { + if (node.type === NodeType.Selector) { + return DocumentHighlightKind.Write; + } + if (node instanceof Identifier) { + if (node.parent && node.parent instanceof Property) { + if (node.isCustomProperty) { + return DocumentHighlightKind.Write; + } + } + } + if (node.parent) { + switch (node.parent.type) { + case NodeType.FunctionDeclaration: + case NodeType.MixinDeclaration: + case NodeType.Keyframe: + case NodeType.VariableDeclaration: + case NodeType.FunctionParameter: + return DocumentHighlightKind.Write; + } + } + return DocumentHighlightKind.Read; +} +function toTwoDigitHex(n) { + const r = n.toString(16); + return r.length !== 2 ? '0' + r : r; +} +function getModuleNameFromPath(path) { + const firstSlash = path.indexOf('/'); + if (firstSlash === -1) { + return ''; + } + // If a scoped module (starts with @) then get up until second instance of '/', or to the end of the string for root-level imports. + if (path[0] === '@') { + const secondSlash = path.indexOf('/', firstSlash + 1); + if (secondSlash === -1) { + return path; + } + return path.substring(0, secondSlash); + } + // Otherwise get until first instance of '/' + return path.substring(0, firstSlash); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const Warning = Level.Warning; +const Error$1 = Level.Error; +const Ignore = Level.Ignore; +class Rule { + constructor(id, message, defaultValue) { + this.id = id; + this.message = message; + this.defaultValue = defaultValue; + // nothing to do + } +} +class Setting { + constructor(id, message, defaultValue) { + this.id = id; + this.message = message; + this.defaultValue = defaultValue; + // nothing to do + } +} +const Rules = { + AllVendorPrefixes: new Rule('compatibleVendorPrefixes', t$2("When using a vendor-specific prefix make sure to also include all other vendor-specific properties"), Ignore), + IncludeStandardPropertyWhenUsingVendorPrefix: new Rule('vendorPrefix', t$2("When using a vendor-specific prefix also include the standard property"), Warning), + DuplicateDeclarations: new Rule('duplicateProperties', t$2("Do not use duplicate style definitions"), Ignore), + EmptyRuleSet: new Rule('emptyRules', t$2("Do not use empty rulesets"), Warning), + ImportStatemement: new Rule('importStatement', t$2("Import statements do not load in parallel"), Ignore), + BewareOfBoxModelSize: new Rule('boxModel', t$2("Do not use width or height when using padding or border"), Ignore), + UniversalSelector: new Rule('universalSelector', t$2("The universal selector (*) is known to be slow"), Ignore), + ZeroWithUnit: new Rule('zeroUnits', t$2("No unit for zero needed"), Ignore), + RequiredPropertiesForFontFace: new Rule('fontFaceProperties', t$2("@font-face rule must define 'src' and 'font-family' properties"), Warning), + HexColorLength: new Rule('hexColorLength', t$2("Hex colors must consist of three, four, six or eight hex numbers"), Error$1), + ArgsInColorFunction: new Rule('argumentsInColorFunction', t$2("Invalid number of parameters"), Error$1), + UnknownProperty: new Rule('unknownProperties', t$2("Unknown property."), Warning), + UnknownAtRules: new Rule('unknownAtRules', t$2("Unknown at-rule."), Warning), + IEStarHack: new Rule('ieHack', t$2("IE hacks are only necessary when supporting IE7 and older"), Ignore), + UnknownVendorSpecificProperty: new Rule('unknownVendorSpecificProperties', t$2("Unknown vendor specific property."), Ignore), + PropertyIgnoredDueToDisplay: new Rule('propertyIgnoredDueToDisplay', t$2("Property is ignored due to the display."), Warning), + AvoidImportant: new Rule('important', t$2("Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."), Ignore), + AvoidFloat: new Rule('float', t$2("Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."), Ignore), + AvoidIdSelector: new Rule('idSelector', t$2("Selectors should not contain IDs because these rules are too tightly coupled with the HTML."), Ignore), +}; +const Settings = { + ValidProperties: new Setting('validProperties', t$2("A list of properties that are not validated against the `unknownProperties` rule."), []) +}; +class LintConfigurationSettings { + constructor(conf = {}) { + this.conf = conf; + } + getRule(rule) { + if (this.conf.hasOwnProperty(rule.id)) { + const level = toLevel(this.conf[rule.id]); + if (level) { + return level; + } + } + return rule.defaultValue; + } + getSetting(setting) { + return this.conf[setting.id]; + } +} +function toLevel(level) { + switch (level) { + case 'ignore': return Level.Ignore; + case 'warning': return Level.Warning; + case 'error': return Level.Error; + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSCodeActions { + constructor(cssDataManager) { + this.cssDataManager = cssDataManager; + } + doCodeActions(document, range, context, stylesheet) { + return this.doCodeActions2(document, range, context, stylesheet).map(ca => { + const textDocumentEdit = ca.edit && ca.edit.documentChanges && ca.edit.documentChanges[0]; + return Command.create(ca.title, '_css.applyCodeAction', document.uri, document.version, textDocumentEdit && textDocumentEdit.edits); + }); + } + doCodeActions2(document, range, context, stylesheet) { + const result = []; + if (context.diagnostics) { + for (const diagnostic of context.diagnostics) { + this.appendFixesForMarker(document, stylesheet, diagnostic, result); + } + } + return result; + } + getFixesForUnknownProperty(document, property, marker, result) { + const propertyName = property.getName(); + const candidates = []; + this.cssDataManager.getProperties().forEach(p => { + const score = difference(propertyName, p.name); + if (score >= propertyName.length / 2 /*score_lim*/) { + candidates.push({ property: p.name, score }); + } + }); + // Sort in descending order. + candidates.sort((a, b) => { + return b.score - a.score || a.property.localeCompare(b.property); + }); + let maxActions = 3; + for (const candidate of candidates) { + const propertyName = candidate.property; + const title = t$2("Rename to '{0}'", propertyName); + const edit = TextEdit.replace(marker.range, propertyName); + const documentIdentifier = VersionedTextDocumentIdentifier.create(document.uri, document.version); + const workspaceEdit = { documentChanges: [TextDocumentEdit.create(documentIdentifier, [edit])] }; + const codeAction = CodeAction.create(title, workspaceEdit, CodeActionKind.QuickFix); + codeAction.diagnostics = [marker]; + result.push(codeAction); + if (--maxActions <= 0) { + return; + } + } + } + appendFixesForMarker(document, stylesheet, marker, result) { + if (marker.code !== Rules.UnknownProperty.id) { + return; + } + const offset = document.offsetAt(marker.range.start); + const end = document.offsetAt(marker.range.end); + const nodepath = getNodePath(stylesheet, offset); + for (let i = nodepath.length - 1; i >= 0; i--) { + const node = nodepath[i]; + if (node instanceof Declaration) { + const property = node.getProperty(); + if (property && property.offset === offset && property.end === end) { + this.getFixesForUnknownProperty(document, property, marker, result); + return; + } + } + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Element { + constructor(decl) { + this.fullPropertyName = decl.getFullPropertyName().toLowerCase(); + this.node = decl; + } +} +function setSide(model, side, value, property) { + const state = model[side]; + state.value = value; + if (value) { + if (!includes(state.properties, property)) { + state.properties.push(property); + } + } +} +function setAllSides(model, value, property) { + setSide(model, 'top', value, property); + setSide(model, 'right', value, property); + setSide(model, 'bottom', value, property); + setSide(model, 'left', value, property); +} +function updateModelWithValue(model, side, value, property) { + if (side === 'top' || side === 'right' || + side === 'bottom' || side === 'left') { + setSide(model, side, value, property); + } + else { + setAllSides(model, value, property); + } +} +function updateModelWithList(model, values, property) { + switch (values.length) { + case 1: + updateModelWithValue(model, undefined, values[0], property); + break; + case 2: + updateModelWithValue(model, 'top', values[0], property); + updateModelWithValue(model, 'bottom', values[0], property); + updateModelWithValue(model, 'right', values[1], property); + updateModelWithValue(model, 'left', values[1], property); + break; + case 3: + updateModelWithValue(model, 'top', values[0], property); + updateModelWithValue(model, 'right', values[1], property); + updateModelWithValue(model, 'left', values[1], property); + updateModelWithValue(model, 'bottom', values[2], property); + break; + case 4: + updateModelWithValue(model, 'top', values[0], property); + updateModelWithValue(model, 'right', values[1], property); + updateModelWithValue(model, 'bottom', values[2], property); + updateModelWithValue(model, 'left', values[3], property); + break; + } +} +function matches(value, candidates) { + for (let candidate of candidates) { + if (value.matches(candidate)) { + return true; + } + } + return false; +} +/** + * @param allowsKeywords whether the initial value of property is zero, so keywords `initial` and `unset` count as zero + * @return `true` if this node represents a non-zero border; otherwise, `false` + */ +function checkLineWidth(value, allowsKeywords = true) { + if (allowsKeywords && matches(value, ['initial', 'unset'])) { + return false; + } + // a <length> is a value and a unit + // so use `parseFloat` to strip the unit + return parseFloat(value.getText()) !== 0; +} +function checkLineWidthList(nodes, allowsKeywords = true) { + return nodes.map(node => checkLineWidth(node, allowsKeywords)); +} +/** + * @param allowsKeywords whether keywords `initial` and `unset` count as zero + * @return `true` if this node represents a non-zero border; otherwise, `false` + */ +function checkLineStyle(valueNode, allowsKeywords = true) { + if (matches(valueNode, ['none', 'hidden'])) { + return false; + } + if (allowsKeywords && matches(valueNode, ['initial', 'unset'])) { + return false; + } + return true; +} +function checkLineStyleList(nodes, allowsKeywords = true) { + return nodes.map(node => checkLineStyle(node, allowsKeywords)); +} +function checkBorderShorthand(node) { + const children = node.getChildren(); + // the only child can be a keyword, a <line-width>, or a <line-style> + // if either check returns false, the result is no border + if (children.length === 1) { + const value = children[0]; + return checkLineWidth(value) && checkLineStyle(value); + } + // multiple children can't contain keywords + // if any child means no border, the result is no border + for (const child of children) { + const value = child; + if (!checkLineWidth(value, /* allowsKeywords: */ false) || + !checkLineStyle(value, /* allowsKeywords: */ false)) { + return false; + } + } + return true; +} +function calculateBoxModel(propertyTable) { + const model = { + top: { value: false, properties: [] }, + right: { value: false, properties: [] }, + bottom: { value: false, properties: [] }, + left: { value: false, properties: [] }, + }; + for (const property of propertyTable) { + const value = property.node.value; + if (typeof value === 'undefined') { + continue; + } + switch (property.fullPropertyName) { + case 'box-sizing': + // has `box-sizing`, bail out + return { + top: { value: false, properties: [] }, + right: { value: false, properties: [] }, + bottom: { value: false, properties: [] }, + left: { value: false, properties: [] }, + }; + case 'width': + model.width = property; + break; + case 'height': + model.height = property; + break; + default: + const segments = property.fullPropertyName.split('-'); + switch (segments[0]) { + case 'border': + switch (segments[1]) { + case undefined: + case 'top': + case 'right': + case 'bottom': + case 'left': + switch (segments[2]) { + case undefined: + updateModelWithValue(model, segments[1], checkBorderShorthand(value), property); + break; + case 'width': + // the initial value of `border-width` is `medium`, not zero + updateModelWithValue(model, segments[1], checkLineWidth(value, false), property); + break; + case 'style': + // the initial value of `border-style` is `none` + updateModelWithValue(model, segments[1], checkLineStyle(value, true), property); + break; + } + break; + case 'width': + // the initial value of `border-width` is `medium`, not zero + updateModelWithList(model, checkLineWidthList(value.getChildren(), false), property); + break; + case 'style': + // the initial value of `border-style` is `none` + updateModelWithList(model, checkLineStyleList(value.getChildren(), true), property); + break; + } + break; + case 'padding': + if (segments.length === 1) { + // the initial value of `padding` is zero + updateModelWithList(model, checkLineWidthList(value.getChildren(), true), property); + } + else { + // the initial value of `padding` is zero + updateModelWithValue(model, segments[1], checkLineWidth(value, true), property); + } + break; + } + break; + } + } + return model; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class NodesByRootMap { + constructor() { + this.data = {}; + } + add(root, name, node) { + let entry = this.data[root]; + if (!entry) { + entry = { nodes: [], names: [] }; + this.data[root] = entry; + } + entry.names.push(name); + if (node) { + entry.nodes.push(node); + } + } +} +class LintVisitor { + static entries(node, document, settings, cssDataManager, entryFilter) { + const visitor = new LintVisitor(document, settings, cssDataManager); + node.acceptVisitor(visitor); + visitor.completeValidations(); + return visitor.getEntries(entryFilter); + } + constructor(document, settings, cssDataManager) { + this.cssDataManager = cssDataManager; + this.warnings = []; + this.settings = settings; + this.documentText = document.getText(); + this.keyframes = new NodesByRootMap(); + this.validProperties = {}; + const properties = settings.getSetting(Settings.ValidProperties); + if (Array.isArray(properties)) { + properties.forEach((p) => { + if (typeof p === 'string') { + const name = p.trim().toLowerCase(); + if (name.length) { + this.validProperties[name] = true; + } + } + }); + } + } + isValidPropertyDeclaration(element) { + const propertyName = element.fullPropertyName; + return this.validProperties[propertyName]; + } + fetch(input, s) { + const elements = []; + for (const curr of input) { + if (curr.fullPropertyName === s) { + elements.push(curr); + } + } + return elements; + } + fetchWithValue(input, s, v) { + const elements = []; + for (const inputElement of input) { + if (inputElement.fullPropertyName === s) { + const expression = inputElement.node.getValue(); + if (expression && this.findValueInExpression(expression, v)) { + elements.push(inputElement); + } + } + } + return elements; + } + findValueInExpression(expression, v) { + let found = false; + expression.accept(node => { + if (node.type === NodeType.Identifier && node.matches(v)) { + found = true; + } + return !found; + }); + return found; + } + getEntries(filter = (Level.Warning | Level.Error)) { + return this.warnings.filter(entry => { + return (entry.getLevel() & filter) !== 0; + }); + } + addEntry(node, rule, details) { + const entry = new Marker(node, rule, this.settings.getRule(rule), details); + this.warnings.push(entry); + } + getMissingNames(expected, actual) { + const expectedClone = expected.slice(0); // clone + for (let i = 0; i < actual.length; i++) { + const k = expectedClone.indexOf(actual[i]); + if (k !== -1) { + expectedClone[k] = null; + } + } + let result = null; + for (let i = 0; i < expectedClone.length; i++) { + const curr = expectedClone[i]; + if (curr) { + if (result === null) { + result = t$2("'{0}'", curr); + } + else { + result = t$2("{0}, '{1}'", result, curr); + } + } + } + return result; + } + visitNode(node) { + switch (node.type) { + case NodeType.UnknownAtRule: + return this.visitUnknownAtRule(node); + case NodeType.Keyframe: + return this.visitKeyframe(node); + case NodeType.FontFace: + return this.visitFontFace(node); + case NodeType.Ruleset: + return this.visitRuleSet(node); + case NodeType.SimpleSelector: + return this.visitSimpleSelector(node); + case NodeType.Function: + return this.visitFunction(node); + case NodeType.NumericValue: + return this.visitNumericValue(node); + case NodeType.Import: + return this.visitImport(node); + case NodeType.HexColorValue: + return this.visitHexColorValue(node); + case NodeType.Prio: + return this.visitPrio(node); + case NodeType.IdentifierSelector: + return this.visitIdentifierSelector(node); + } + return true; + } + completeValidations() { + this.validateKeyframes(); + } + visitUnknownAtRule(node) { + const atRuleName = node.getChild(0); + if (!atRuleName) { + return false; + } + const atDirective = this.cssDataManager.getAtDirective(atRuleName.getText()); + if (atDirective) { + return false; + } + this.addEntry(atRuleName, Rules.UnknownAtRules, `Unknown at rule ${atRuleName.getText()}`); + return true; + } + visitKeyframe(node) { + const keyword = node.getKeyword(); + if (!keyword) { + return false; + } + const text = keyword.getText(); + this.keyframes.add(node.getName(), text, (text !== '@keyframes') ? keyword : null); + return true; + } + validateKeyframes() { + // @keyframe and it's vendor specific alternatives + // @keyframe should be included + const expected = ['@-webkit-keyframes', '@-moz-keyframes', '@-o-keyframes']; + for (const name in this.keyframes.data) { + const actual = this.keyframes.data[name].names; + const needsStandard = (actual.indexOf('@keyframes') === -1); + if (!needsStandard && actual.length === 1) { + continue; // only the non-vendor specific keyword is used, that's fine, no warning + } + const missingVendorSpecific = this.getMissingNames(expected, actual); + if (missingVendorSpecific || needsStandard) { + for (const node of this.keyframes.data[name].nodes) { + if (needsStandard) { + const message = t$2("Always define standard rule '@keyframes' when defining keyframes."); + this.addEntry(node, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message); + } + if (missingVendorSpecific) { + const message = t$2("Always include all vendor specific rules: Missing: {0}", missingVendorSpecific); + this.addEntry(node, Rules.AllVendorPrefixes, message); + } + } + } + } + return true; + } + visitSimpleSelector(node) { + ///////////////////////////////////////////////////////////// + // Lint - The universal selector (*) is known to be slow. + ///////////////////////////////////////////////////////////// + const firstChar = this.documentText.charAt(node.offset); + if (node.length === 1 && firstChar === '*') { + this.addEntry(node, Rules.UniversalSelector); + } + return true; + } + visitIdentifierSelector(node) { + ///////////////////////////////////////////////////////////// + // Lint - Avoid id selectors + ///////////////////////////////////////////////////////////// + this.addEntry(node, Rules.AvoidIdSelector); + return true; + } + visitImport(node) { + ///////////////////////////////////////////////////////////// + // Lint - Import statements shouldn't be used, because they aren't offering parallel downloads. + ///////////////////////////////////////////////////////////// + this.addEntry(node, Rules.ImportStatemement); + return true; + } + visitRuleSet(node) { + ///////////////////////////////////////////////////////////// + // Lint - Don't use empty rulesets. + ///////////////////////////////////////////////////////////// + const declarations = node.getDeclarations(); + if (!declarations) { + // syntax error + return false; + } + if (!declarations.hasChildren()) { + this.addEntry(node.getSelectors(), Rules.EmptyRuleSet); + } + const propertyTable = []; + for (const element of declarations.getChildren()) { + if (element instanceof Declaration) { + propertyTable.push(new Element(element)); + } + } + ///////////////////////////////////////////////////////////// + // the rule warns when it finds: + // width being used with border, border-left, border-right, padding, padding-left, or padding-right + // height being used with border, border-top, border-bottom, padding, padding-top, or padding-bottom + // No error when box-sizing property is specified, as it assumes the user knows what he's doing. + // see https://github.com/CSSLint/csslint/wiki/Beware-of-box-model-size + ///////////////////////////////////////////////////////////// + const boxModel = calculateBoxModel(propertyTable); + if (boxModel.width) { + let properties = []; + if (boxModel.right.value) { + properties = union(properties, boxModel.right.properties); + } + if (boxModel.left.value) { + properties = union(properties, boxModel.left.properties); + } + if (properties.length !== 0) { + for (const item of properties) { + this.addEntry(item.node, Rules.BewareOfBoxModelSize); + } + this.addEntry(boxModel.width.node, Rules.BewareOfBoxModelSize); + } + } + if (boxModel.height) { + let properties = []; + if (boxModel.top.value) { + properties = union(properties, boxModel.top.properties); + } + if (boxModel.bottom.value) { + properties = union(properties, boxModel.bottom.properties); + } + if (properties.length !== 0) { + for (const item of properties) { + this.addEntry(item.node, Rules.BewareOfBoxModelSize); + } + this.addEntry(boxModel.height.node, Rules.BewareOfBoxModelSize); + } + } + ///////////////////////////////////////////////////////////// + // Properties ignored due to display + ///////////////////////////////////////////////////////////// + // With 'display: inline-block', 'float' has no effect + let displayElems = this.fetchWithValue(propertyTable, 'display', 'inline-block'); + if (displayElems.length > 0) { + const elem = this.fetch(propertyTable, 'float'); + for (let index = 0; index < elem.length; index++) { + const node = elem[index].node; + const value = node.getValue(); + if (value && !value.matches('none')) { + this.addEntry(node, Rules.PropertyIgnoredDueToDisplay, t$2("inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'")); + } + } + } + // With 'display: block', 'vertical-align' has no effect + displayElems = this.fetchWithValue(propertyTable, 'display', 'block'); + if (displayElems.length > 0) { + const elem = this.fetch(propertyTable, 'vertical-align'); + for (let index = 0; index < elem.length; index++) { + this.addEntry(elem[index].node, Rules.PropertyIgnoredDueToDisplay, t$2("Property is ignored due to the display. With 'display: block', vertical-align should not be used.")); + } + } + ///////////////////////////////////////////////////////////// + // Avoid 'float' + ///////////////////////////////////////////////////////////// + const elements = this.fetch(propertyTable, 'float'); + for (let index = 0; index < elements.length; index++) { + const element = elements[index]; + if (!this.isValidPropertyDeclaration(element)) { + this.addEntry(element.node, Rules.AvoidFloat); + } + } + ///////////////////////////////////////////////////////////// + // Don't use duplicate declarations. + ///////////////////////////////////////////////////////////// + for (let i = 0; i < propertyTable.length; i++) { + const element = propertyTable[i]; + if (element.fullPropertyName !== 'background' && !this.validProperties[element.fullPropertyName]) { + const value = element.node.getValue(); + if (value && this.documentText.charAt(value.offset) !== '-') { + const elements = this.fetch(propertyTable, element.fullPropertyName); + if (elements.length > 1) { + for (let k = 0; k < elements.length; k++) { + const value = elements[k].node.getValue(); + if (value && this.documentText.charAt(value.offset) !== '-' && elements[k] !== element) { + this.addEntry(element.node, Rules.DuplicateDeclarations); + } + } + } + } + } + } + ///////////////////////////////////////////////////////////// + // Unknown propery & When using a vendor-prefixed gradient, make sure to use them all. + ///////////////////////////////////////////////////////////// + const isExportBlock = node.getSelectors().matches(":export"); + if (!isExportBlock) { + const propertiesBySuffix = new NodesByRootMap(); + let containsUnknowns = false; + for (const element of propertyTable) { + const decl = element.node; + if (this.isCSSDeclaration(decl)) { + let name = element.fullPropertyName; + const firstChar = name.charAt(0); + if (firstChar === '-') { + if (name.charAt(1) !== '-') { // avoid css variables + if (!this.cssDataManager.isKnownProperty(name) && !this.validProperties[name]) { + this.addEntry(decl.getProperty(), Rules.UnknownVendorSpecificProperty); + } + const nonPrefixedName = decl.getNonPrefixedPropertyName(); + propertiesBySuffix.add(nonPrefixedName, name, decl.getProperty()); + } + } + else { + const fullName = name; + if (firstChar === '*' || firstChar === '_') { + this.addEntry(decl.getProperty(), Rules.IEStarHack); + name = name.substr(1); + } + // _property and *property might be contributed via custom data + if (!this.cssDataManager.isKnownProperty(fullName) && !this.cssDataManager.isKnownProperty(name)) { + if (!this.validProperties[name]) { + this.addEntry(decl.getProperty(), Rules.UnknownProperty, t$2("Unknown property: '{0}'", decl.getFullPropertyName())); + } + } + propertiesBySuffix.add(name, name, null); // don't pass the node as we don't show errors on the standard + } + } + else { + containsUnknowns = true; + } + } + if (!containsUnknowns) { // don't perform this test if there are + for (const suffix in propertiesBySuffix.data) { + const entry = propertiesBySuffix.data[suffix]; + const actual = entry.names; + const needsStandard = this.cssDataManager.isStandardProperty(suffix) && (actual.indexOf(suffix) === -1); + if (!needsStandard && actual.length === 1) { + continue; // only the non-vendor specific rule is used, that's fine, no warning + } + /** + * We should ignore missing standard properties, if there's an explicit contextual reference to a + * vendor specific pseudo-element selector with the same vendor (prefix) + * + * (See https://github.com/microsoft/vscode/issues/164350) + */ + const entriesThatNeedStandard = new Set(needsStandard ? entry.nodes : []); + if (needsStandard) { + const pseudoElements = this.getContextualVendorSpecificPseudoElements(node); + for (const node of entry.nodes) { + const propertyName = node.getName(); + const prefix = propertyName.substring(0, propertyName.length - suffix.length); + if (pseudoElements.some(x => x.startsWith(prefix))) { + entriesThatNeedStandard.delete(node); + } + } + } + const expected = []; + for (let i = 0, len = LintVisitor.prefixes.length; i < len; i++) { + const prefix = LintVisitor.prefixes[i]; + if (this.cssDataManager.isStandardProperty(prefix + suffix)) { + expected.push(prefix + suffix); + } + } + const missingVendorSpecific = this.getMissingNames(expected, actual); + if (missingVendorSpecific || needsStandard) { + for (const node of entry.nodes) { + if (needsStandard && entriesThatNeedStandard.has(node)) { + const message = t$2("Also define the standard property '{0}' for compatibility", suffix); + this.addEntry(node, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message); + } + if (missingVendorSpecific) { + const message = t$2("Always include all vendor specific properties: Missing: {0}", missingVendorSpecific); + this.addEntry(node, Rules.AllVendorPrefixes, message); + } + } + } + } + } + } + return true; + } + /** + * Walks up the syntax tree (starting from given `node`) and captures vendor + * specific pseudo-element selectors. + * @returns An array of vendor specific pseudo-elements; or empty if none + * was found. + */ + getContextualVendorSpecificPseudoElements(node) { + function walkDown(s, n) { + for (const child of n.getChildren()) { + if (child.type === NodeType.PseudoSelector) { + const pseudoElement = child.getChildren()[0]?.getText(); + if (pseudoElement) { + s.add(pseudoElement); + } + } + walkDown(s, child); + } + } + function walkUp(s, n) { + if (n.type === NodeType.Ruleset) { + for (const selector of n.getSelectors().getChildren()) { + walkDown(s, selector); + } + } + return n.parent ? walkUp(s, n.parent) : undefined; + } + const result = new Set(); + walkUp(result, node); + return Array.from(result); + } + visitPrio(node) { + ///////////////////////////////////////////////////////////// + // Don't use !important + ///////////////////////////////////////////////////////////// + this.addEntry(node, Rules.AvoidImportant); + return true; + } + visitNumericValue(node) { + ///////////////////////////////////////////////////////////// + // 0 has no following unit + ///////////////////////////////////////////////////////////// + const funcDecl = node.findParent(NodeType.Function); + if (funcDecl && funcDecl.getName() === 'calc') { + return true; + } + const decl = node.findParent(NodeType.Declaration); + if (decl) { + const declValue = decl.getValue(); + if (declValue) { + const value = node.getValue(); + if (!value.unit || units.length.indexOf(value.unit.toLowerCase()) === -1) { + return true; + } + if (parseFloat(value.value) === 0.0 && !!value.unit && !this.validProperties[decl.getFullPropertyName()]) { + this.addEntry(node, Rules.ZeroWithUnit); + } + } + } + return true; + } + visitFontFace(node) { + const declarations = node.getDeclarations(); + if (!declarations) { + // syntax error + return false; + } + let definesSrc = false, definesFontFamily = false; + let containsUnknowns = false; + for (const node of declarations.getChildren()) { + if (this.isCSSDeclaration(node)) { + const name = node.getProperty().getName().toLowerCase(); + if (name === 'src') { + definesSrc = true; + } + if (name === 'font-family') { + definesFontFamily = true; + } + } + else { + containsUnknowns = true; + } + } + if (!containsUnknowns && (!definesSrc || !definesFontFamily)) { + this.addEntry(node, Rules.RequiredPropertiesForFontFace); + } + return true; + } + isCSSDeclaration(node) { + if (node instanceof Declaration) { + if (!node.getValue()) { + return false; + } + const property = node.getProperty(); + if (!property) { + return false; + } + const identifier = property.getIdentifier(); + if (!identifier || identifier.containsInterpolation()) { + return false; + } + return true; + } + return false; + } + visitHexColorValue(node) { + // Rule: #eeff0011 or #eeff00 or #ef01 or #ef0 + const length = node.length; + if (length !== 9 && length !== 7 && length !== 5 && length !== 4) { + this.addEntry(node, Rules.HexColorLength); + } + return false; + } + visitFunction(node) { + const fnName = node.getName().toLowerCase(); + let expectedAttrCount = -1; + let actualAttrCount = 0; + switch (fnName) { + case 'rgb(': + case 'hsl(': + expectedAttrCount = 3; + break; + case 'rgba(': + case 'hsla(': + expectedAttrCount = 4; + break; + } + if (expectedAttrCount !== -1) { + node.getArguments().accept(n => { + if (n instanceof BinaryExpression) { + actualAttrCount += 1; + return false; + } + return true; + }); + if (actualAttrCount !== expectedAttrCount) { + this.addEntry(node, Rules.ArgsInColorFunction); + } + } + return true; + } +} +LintVisitor.prefixes = [ + '-ms-', '-moz-', '-o-', '-webkit-', // Quite common + // '-xv-', '-atsc-', '-wap-', '-khtml-', 'mso-', 'prince-', '-ah-', '-hp-', '-ro-', '-rim-', '-tc-' // Quite un-common +]; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSValidation { + constructor(cssDataManager) { + this.cssDataManager = cssDataManager; + } + configure(settings) { + this.settings = settings; + } + doValidation(document, stylesheet, settings = this.settings) { + if (settings && settings.validate === false) { + return []; + } + const entries = []; + entries.push.apply(entries, ParseErrorCollector.entries(stylesheet)); + entries.push.apply(entries, LintVisitor.entries(stylesheet, document, new LintConfigurationSettings(settings && settings.lint), this.cssDataManager)); + const ruleIds = []; + for (const r in Rules) { + ruleIds.push(Rules[r].id); + } + function toDiagnostic(marker) { + const range = Range$a.create(document.positionAt(marker.getOffset()), document.positionAt(marker.getOffset() + marker.getLength())); + const source = document.languageId; + return { + code: marker.getRule().id, + source: source, + message: marker.getMessage(), + severity: marker.getLevel() === Level.Warning ? DiagnosticSeverity.Warning : DiagnosticSeverity.Error, + range: range + }; + } + return entries.filter(entry => entry.getLevel() !== Level.Ignore).map(toDiagnostic); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const _FSL$2 = '/'.charCodeAt(0); +const _NWL$2 = '\n'.charCodeAt(0); +const _CAR$2 = '\r'.charCodeAt(0); +const _LFD$2 = '\f'.charCodeAt(0); +const _DLR = '$'.charCodeAt(0); +const _HSH = '#'.charCodeAt(0); +const _CUL$1 = '{'.charCodeAt(0); +const _EQS$1 = '='.charCodeAt(0); +const _BNG$1 = '!'.charCodeAt(0); +const _LAN$1 = '<'.charCodeAt(0); +const _RAN$1 = '>'.charCodeAt(0); +const _DOT$1 = '.'.charCodeAt(0); +let customTokenValue$1 = TokenType$1.CustomToken; +const VariableName = customTokenValue$1++; +const InterpolationFunction = customTokenValue$1++; +customTokenValue$1++; +const EqualsOperator = customTokenValue$1++; +const NotEqualsOperator = customTokenValue$1++; +const GreaterEqualsOperator = customTokenValue$1++; +const SmallerEqualsOperator = customTokenValue$1++; +const Ellipsis$1 = customTokenValue$1++; +customTokenValue$1++; +class SCSSScanner extends Scanner { + scanNext(offset) { + // scss variable + if (this.stream.advanceIfChar(_DLR)) { + const content = ['$']; + if (this.ident(content)) { + return this.finishToken(offset, VariableName, content.join('')); + } + else { + this.stream.goBackTo(offset); + } + } + // scss: interpolation function #{..}) + if (this.stream.advanceIfChars([_HSH, _CUL$1])) { + return this.finishToken(offset, InterpolationFunction); + } + // operator == + if (this.stream.advanceIfChars([_EQS$1, _EQS$1])) { + return this.finishToken(offset, EqualsOperator); + } + // operator != + if (this.stream.advanceIfChars([_BNG$1, _EQS$1])) { + return this.finishToken(offset, NotEqualsOperator); + } + // operators <, <= + if (this.stream.advanceIfChar(_LAN$1)) { + if (this.stream.advanceIfChar(_EQS$1)) { + return this.finishToken(offset, SmallerEqualsOperator); + } + return this.finishToken(offset, TokenType$1.Delim); + } + // ooperators >, >= + if (this.stream.advanceIfChar(_RAN$1)) { + if (this.stream.advanceIfChar(_EQS$1)) { + return this.finishToken(offset, GreaterEqualsOperator); + } + return this.finishToken(offset, TokenType$1.Delim); + } + // ellipis + if (this.stream.advanceIfChars([_DOT$1, _DOT$1, _DOT$1])) { + return this.finishToken(offset, Ellipsis$1); + } + return super.scanNext(offset); + } + comment() { + if (super.comment()) { + return true; + } + if (!this.inURL && this.stream.advanceIfChars([_FSL$2, _FSL$2])) { + this.stream.advanceWhileChar((ch) => { + switch (ch) { + case _NWL$2: + case _CAR$2: + case _LFD$2: + return false; + default: + return true; + } + }); + return true; + } + else { + return false; + } + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class SCSSIssueType { + constructor(id, message) { + this.id = id; + this.message = message; + } +} +const SCSSParseError = { + FromExpected: new SCSSIssueType('scss-fromexpected', t$2("'from' expected")), + ThroughOrToExpected: new SCSSIssueType('scss-throughexpected', t$2("'through' or 'to' expected")), + InExpected: new SCSSIssueType('scss-fromexpected', t$2("'in' expected")), +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/// <summary> +/// A parser for scss +/// http://sass-lang.com/documentation/file.SASS_REFERENCE.html +/// </summary> +class SCSSParser extends Parser { + constructor() { + super(new SCSSScanner()); + } + _parseStylesheetStatement(isNested = false) { + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseWarnAndDebug() // @warn, @debug and @error statements + || this._parseControlStatement() // @if, @while, @for, @each + || this._parseMixinDeclaration() // @mixin + || this._parseMixinContent() // @content + || this._parseMixinReference() // @include + || this._parseFunctionDeclaration() // @function + || this._parseForward() // @forward + || this._parseUse() // @use + || this._parseRuleset(isNested) // @at-rule + || super._parseStylesheetAtStatement(isNested); + } + return this._parseRuleset(true) || this._parseVariableDeclaration(); + } + _parseImport() { + if (!this.peekKeyword('@import')) { + return null; + } + const node = this.create(Import); + this.consumeToken(); + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + while (this.accept(TokenType$1.Comma)) { + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + } + return this._completeParseImport(node); + } + // scss variables: $font-size: 12px; + _parseVariableDeclaration(panic = []) { + if (!this.peek(VariableName)) { + return null; + } + const node = this.create(VariableDeclaration); + if (!node.setVariable(this._parseVariable())) { + return null; + } + if (!this.accept(TokenType$1.Colon)) { + return this.finish(node, ParseError.ColonExpected); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.VariableValueExpected, [], panic); + } + while (this.peek(TokenType$1.Exclamation)) { + if (node.addChild(this._tryParsePrio())) ; + else { + this.consumeToken(); + if (!this.peekRegExp(TokenType$1.Ident, /^(default|global)$/)) { + return this.finish(node, ParseError.UnknownKeyword); + } + this.consumeToken(); + } + } + if (this.peek(TokenType$1.SemiColon)) { + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + } + return this.finish(node); + } + _parseMediaCondition() { + return this._parseInterpolation() || super._parseMediaCondition(); + } + _parseMediaFeatureRangeOperator() { + return this.accept(SmallerEqualsOperator) || this.accept(GreaterEqualsOperator) || super._parseMediaFeatureRangeOperator(); + } + _parseMediaFeatureName() { + return this._parseModuleMember() + || this._parseFunction() // function before ident + || this._parseIdent() + || this._parseVariable(); + } + _parseKeyframeSelector() { + return this._tryParseKeyframeSelector() + || this._parseControlStatement(this._parseKeyframeSelector.bind(this)) + || this._parseWarnAndDebug() // @warn, @debug and @error statements + || this._parseMixinReference() // @include + || this._parseFunctionDeclaration() // @function + || this._parseVariableDeclaration() + || this._parseMixinContent(); + } + _parseVariable() { + if (!this.peek(VariableName)) { + return null; + } + const node = this.create(Variable); + this.consumeToken(); + return node; + } + _parseModuleMember() { + const pos = this.mark(); + const node = this.create(Module); + if (!node.setIdentifier(this._parseIdent([ReferenceType.Module]))) { + return null; + } + if (this.hasWhitespace() + || !this.acceptDelim('.') + || this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + if (!node.addChild(this._parseVariable() || this._parseFunction())) { + return this.finish(node, ParseError.IdentifierOrVariableExpected); + } + return node; + } + _parseIdent(referenceTypes) { + if (!this.peek(TokenType$1.Ident) && !this.peek(InterpolationFunction) && !this.peekDelim('-')) { + return null; + } + const node = this.create(Identifier); + node.referenceTypes = referenceTypes; + node.isCustomProperty = this.peekRegExp(TokenType$1.Ident, /^--/); + let hasContent = false; + const indentInterpolation = () => { + const pos = this.mark(); + if (this.acceptDelim('-')) { + if (!this.hasWhitespace()) { + this.acceptDelim('-'); + } + if (this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + } + return this._parseInterpolation(); + }; + while (this.accept(TokenType$1.Ident) || node.addChild(indentInterpolation()) || (hasContent && this.acceptRegexp(/^[\w-]/))) { + hasContent = true; + if (this.hasWhitespace()) { + break; + } + } + return hasContent ? this.finish(node) : null; + } + _parseTermExpression() { + return this._parseModuleMember() || + this._parseVariable() || + this._parseNestingSelector() || + //this._tryParsePrio() || + super._parseTermExpression(); + } + _parseInterpolation() { + if (this.peek(InterpolationFunction)) { + const node = this.create(Interpolation); + this.consumeToken(); + if (!node.addChild(this._parseExpr()) && !this._parseNestingSelector()) { + if (this.accept(TokenType$1.CurlyR)) { + return this.finish(node); + } + return this.finish(node, ParseError.ExpressionExpected); + } + if (!this.accept(TokenType$1.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected); + } + return this.finish(node); + } + return null; + } + _parseOperator() { + if (this.peek(EqualsOperator) || this.peek(NotEqualsOperator) + || this.peek(GreaterEqualsOperator) || this.peek(SmallerEqualsOperator) + || this.peekDelim('>') || this.peekDelim('<') + || this.peekIdent('and') || this.peekIdent('or') + || this.peekDelim('%')) { + const node = this.createNode(NodeType.Operator); + this.consumeToken(); + return this.finish(node); + } + return super._parseOperator(); + } + _parseUnaryOperator() { + if (this.peekIdent('not')) { + const node = this.create(Node$1); + this.consumeToken(); + return this.finish(node); + } + return super._parseUnaryOperator(); + } + _parseRuleSetDeclaration() { + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseKeyframe() // nested @keyframe + || this._parseImport() // nested @import + || this._parseMedia(true) // nested @media + || this._parseFontFace() // nested @font-face + || this._parseWarnAndDebug() // @warn, @debug and @error statements + || this._parseControlStatement() // @if, @while, @for, @each + || this._parseFunctionDeclaration() // @function + || this._parseExtends() // @extends + || this._parseMixinReference() // @include + || this._parseMixinContent() // @content + || this._parseMixinDeclaration() // nested @mixin + || this._parseRuleset(true) // @at-rule + || this._parseSupports(true) // @supports + || this._parseLayer() // @layer + || this._parsePropertyAtRule() // @property + || this._parseContainer(true) // nested @container + || this._parseRuleSetDeclarationAtStatement(); + } + return this._parseVariableDeclaration() // variable declaration + || this._tryParseRuleset(true) // nested ruleset + || this._parseDeclaration(); // try css ruleset declaration as last so in the error case, the ast will contain a declaration + } + _parseDeclaration(stopTokens) { + const custonProperty = this._tryParseCustomPropertyDeclaration(stopTokens); + if (custonProperty) { + return custonProperty; + } + const node = this.create(Declaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType$1.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType$1.Colon], stopTokens || [TokenType$1.SemiColon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + let hasContent = false; + if (node.setValue(this._parseExpr())) { + hasContent = true; + node.addChild(this._parsePrio()); + } + if (this.peek(TokenType$1.CurlyL)) { + node.setNestedProperties(this._parseNestedProperties()); + } + else { + if (!hasContent) { + return this.finish(node, ParseError.PropertyValueExpected); + } + } + if (this.peek(TokenType$1.SemiColon)) { + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + } + return this.finish(node); + } + _parseNestedProperties() { + const node = this.create(NestedProperties); + return this._parseBody(node, this._parseDeclaration.bind(this)); + } + _parseExtends() { + if (this.peekKeyword('@extend')) { + const node = this.create(ExtendsReference); + this.consumeToken(); + if (!node.getSelectors().addChild(this._parseSimpleSelector())) { + return this.finish(node, ParseError.SelectorExpected); + } + while (this.accept(TokenType$1.Comma)) { + node.getSelectors().addChild(this._parseSimpleSelector()); + } + if (this.accept(TokenType$1.Exclamation)) { + if (!this.acceptIdent('optional')) { + return this.finish(node, ParseError.UnknownKeyword); + } + } + return this.finish(node); + } + return null; + } + _parseSimpleSelectorBody() { + return this._parseSelectorPlaceholder() || super._parseSimpleSelectorBody(); + } + _parseNestingSelector() { + if (this.peekDelim('&')) { + const node = this.createNode(NodeType.SelectorCombinator); + this.consumeToken(); + while (!this.hasWhitespace() && (this.acceptDelim('-') || this.accept(TokenType$1.Num) || this.accept(TokenType$1.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim('&'))) { + // support &-foo-1 + } + return this.finish(node); + } + return null; + } + _parseSelectorPlaceholder() { + if (this.peekDelim('%')) { + const node = this.createNode(NodeType.SelectorPlaceholder); + this.consumeToken(); + this._parseIdent(); + return this.finish(node); + } + else if (this.peekKeyword('@at-root')) { + const node = this.createNode(NodeType.SelectorPlaceholder); + this.consumeToken(); + if (this.accept(TokenType$1.ParenthesisL)) { + if (!this.acceptIdent('with') && !this.acceptIdent('without')) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType$1.Colon)) { + return this.finish(node, ParseError.ColonExpected); + } + if (!node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.CurlyR]); + } + } + return this.finish(node); + } + return null; + } + _parseElementName() { + const pos = this.mark(); + const node = super._parseElementName(); + if (node && !this.hasWhitespace() && this.peek(TokenType$1.ParenthesisL)) { // for #49589 + this.restoreAtMark(pos); + return null; + } + return node; + } + _tryParsePseudoIdentifier() { + return this._parseInterpolation() || super._tryParsePseudoIdentifier(); // for #49589 + } + _parseWarnAndDebug() { + if (!this.peekKeyword('@debug') + && !this.peekKeyword('@warn') + && !this.peekKeyword('@error')) { + return null; + } + const node = this.createNode(NodeType.Debug); + this.consumeToken(); // @debug, @warn or @error + node.addChild(this._parseExpr()); // optional + return this.finish(node); + } + _parseControlStatement(parseStatement = this._parseRuleSetDeclaration.bind(this)) { + if (!this.peek(TokenType$1.AtKeyword)) { + return null; + } + return this._parseIfStatement(parseStatement) || this._parseForStatement(parseStatement) + || this._parseEachStatement(parseStatement) || this._parseWhileStatement(parseStatement); + } + _parseIfStatement(parseStatement) { + if (!this.peekKeyword('@if')) { + return null; + } + return this._internalParseIfStatement(parseStatement); + } + _internalParseIfStatement(parseStatement) { + const node = this.create(IfStatement); + this.consumeToken(); // @if or if + if (!node.setExpression(this._parseExpr(true))) { + return this.finish(node, ParseError.ExpressionExpected); + } + this._parseBody(node, parseStatement); + if (this.acceptKeyword('@else')) { + if (this.peekIdent('if')) { + node.setElseClause(this._internalParseIfStatement(parseStatement)); + } + else if (this.peek(TokenType$1.CurlyL)) { + const elseNode = this.create(ElseStatement); + this._parseBody(elseNode, parseStatement); + node.setElseClause(elseNode); + } + } + return this.finish(node); + } + _parseForStatement(parseStatement) { + if (!this.peekKeyword('@for')) { + return null; + } + const node = this.create(ForStatement); + this.consumeToken(); // @for + if (!node.setVariable(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType$1.CurlyR]); + } + if (!this.acceptIdent('from')) { + return this.finish(node, SCSSParseError.FromExpected, [TokenType$1.CurlyR]); + } + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType$1.CurlyR]); + } + if (!this.acceptIdent('to') && !this.acceptIdent('through')) { + return this.finish(node, SCSSParseError.ThroughOrToExpected, [TokenType$1.CurlyR]); + } + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType$1.CurlyR]); + } + return this._parseBody(node, parseStatement); + } + _parseEachStatement(parseStatement) { + if (!this.peekKeyword('@each')) { + return null; + } + const node = this.create(EachStatement); + this.consumeToken(); // @each + const variables = node.getVariables(); + if (!variables.addChild(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType$1.CurlyR]); + } + while (this.accept(TokenType$1.Comma)) { + if (!variables.addChild(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType$1.CurlyR]); + } + } + this.finish(variables); + if (!this.acceptIdent('in')) { + return this.finish(node, SCSSParseError.InExpected, [TokenType$1.CurlyR]); + } + if (!node.addChild(this._parseExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType$1.CurlyR]); + } + return this._parseBody(node, parseStatement); + } + _parseWhileStatement(parseStatement) { + if (!this.peekKeyword('@while')) { + return null; + } + const node = this.create(WhileStatement); + this.consumeToken(); // @while + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType$1.CurlyR]); + } + return this._parseBody(node, parseStatement); + } + _parseFunctionBodyDeclaration() { + return this._parseVariableDeclaration() || this._parseReturnStatement() || this._parseWarnAndDebug() + || this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this)); + } + _parseFunctionDeclaration() { + if (!this.peekKeyword('@function')) { + return null; + } + const node = this.create(FunctionDeclaration); + this.consumeToken(); // @function + if (!node.setIdentifier(this._parseIdent([ReferenceType.Function]))) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.CurlyR]); + } + if (!this.accept(TokenType$1.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType$1.CurlyR]); + } + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.CurlyR]); + } + return this._parseBody(node, this._parseFunctionBodyDeclaration.bind(this)); + } + _parseReturnStatement() { + if (!this.peekKeyword('@return')) { + return null; + } + const node = this.createNode(NodeType.ReturnStatement); + this.consumeToken(); // @function + if (!node.addChild(this._parseExpr())) { + return this.finish(node, ParseError.ExpressionExpected); + } + return this.finish(node); + } + _parseMixinDeclaration() { + if (!this.peekKeyword('@mixin')) { + return null; + } + const node = this.create(MixinDeclaration); + this.consumeToken(); + if (!node.setIdentifier(this._parseIdent([ReferenceType.Mixin]))) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.CurlyR]); + } + if (this.accept(TokenType$1.ParenthesisL)) { + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.CurlyR]); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + } + _parseParameterDeclaration() { + const node = this.create(FunctionParameter); + if (!node.setIdentifier(this._parseVariable())) { + return null; + } + if (this.accept(Ellipsis$1)) ; + if (this.accept(TokenType$1.Colon)) { + if (!node.setDefaultValue(this._parseExpr(true))) { + return this.finish(node, ParseError.VariableValueExpected, [], [TokenType$1.Comma, TokenType$1.ParenthesisR]); + } + } + return this.finish(node); + } + _parseMixinContent() { + if (!this.peekKeyword('@content')) { + return null; + } + const node = this.create(MixinContentReference); + this.consumeToken(); + if (this.accept(TokenType$1.ParenthesisL)) { + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + return this.finish(node); + } + _parseMixinReference() { + if (!this.peekKeyword('@include')) { + return null; + } + const node = this.create(MixinReference); + this.consumeToken(); + // Could be module or mixin identifier, set as mixin as default. + const firstIdent = this._parseIdent([ReferenceType.Mixin]); + if (!node.setIdentifier(firstIdent)) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.CurlyR]); + } + // Is a module accessor. + if (!this.hasWhitespace() && this.acceptDelim('.') && !this.hasWhitespace()) { + const secondIdent = this._parseIdent([ReferenceType.Mixin]); + if (!secondIdent) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.CurlyR]); + } + const moduleToken = this.create(Module); + // Re-purpose first matched ident as identifier for module token. + firstIdent.referenceTypes = [ReferenceType.Module]; + moduleToken.setIdentifier(firstIdent); + // Override identifier with second ident. + node.setIdentifier(secondIdent); + node.addChild(moduleToken); + } + if (this.accept(TokenType$1.ParenthesisL)) { + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + if (this.peekIdent('using') || this.peek(TokenType$1.CurlyL)) { + node.setContent(this._parseMixinContentDeclaration()); + } + return this.finish(node); + } + _parseMixinContentDeclaration() { + const node = this.create(MixinContentDeclaration); + if (this.acceptIdent('using')) { + if (!this.accept(TokenType$1.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType$1.CurlyL]); + } + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.CurlyL]); + } + } + if (this.peek(TokenType$1.CurlyL)) { + this._parseBody(node, this._parseMixinReferenceBodyStatement.bind(this)); + } + return this.finish(node); + } + _parseMixinReferenceBodyStatement() { + return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration(); + } + _parseFunctionArgument() { + // [variableName ':'] expression | variableName '...' + const node = this.create(FunctionArgument); + const pos = this.mark(); + const argument = this._parseVariable(); + if (argument) { + if (!this.accept(TokenType$1.Colon)) { + if (this.accept(Ellipsis$1)) { // optional + node.setValue(argument); + return this.finish(node); + } + else { + this.restoreAtMark(pos); + } + } + else { + node.setIdentifier(argument); + } + } + if (node.setValue(this._parseExpr(true))) { + this.accept(Ellipsis$1); // #43746 + node.addChild(this._parsePrio()); // #9859 + return this.finish(node); + } + else if (node.setValue(this._tryParsePrio())) { + return this.finish(node); + } + return null; + } + _parseURLArgument() { + const pos = this.mark(); + const node = super._parseURLArgument(); + if (!node || !this.peek(TokenType$1.ParenthesisR)) { + this.restoreAtMark(pos); + const node = this.create(Node$1); + node.addChild(this._parseBinaryExpr()); + return this.finish(node); + } + return node; + } + _parseOperation() { + if (!this.peek(TokenType$1.ParenthesisL)) { + return null; + } + const node = this.create(Node$1); + this.consumeToken(); + while (node.addChild(this._parseListElement())) { + this.accept(TokenType$1.Comma); // optional + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseListElement() { + const node = this.create(ListEntry); + const child = this._parseBinaryExpr(); + if (!child) { + return null; + } + if (this.accept(TokenType$1.Colon)) { + node.setKey(child); + if (!node.setValue(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + else { + node.setValue(child); + } + return this.finish(node); + } + _parseUse() { + if (!this.peekKeyword('@use')) { + return null; + } + const node = this.create(Use); + this.consumeToken(); // @use + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (!this.peek(TokenType$1.SemiColon) && !this.peek(TokenType$1.EOF)) { + if (!this.peekRegExp(TokenType$1.Ident, /as|with/)) { + return this.finish(node, ParseError.UnknownKeyword); + } + if (this.acceptIdent('as') && + (!node.setIdentifier(this._parseIdent([ReferenceType.Module])) && !this.acceptDelim('*'))) { + return this.finish(node, ParseError.IdentifierOrWildcardExpected); + } + if (this.acceptIdent('with')) { + if (!node.setParameters(this._parseModuleConfig())) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType$1.ParenthesisR]); + } + } + } + if (!this.accept(TokenType$1.SemiColon) && !this.accept(TokenType$1.EOF)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseModuleConfig() { + const node = this.createNode(NodeType.ModuleConfig); + if (!this.accept(TokenType$1.ParenthesisL)) { + return null; + } + // First variable statement, no comma. + if (!node.addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + while (this.accept(TokenType$1.Comma)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseModuleConfigDeclaration() { + const node = this.create(ModuleConfiguration); + if (!node.setIdentifier(this._parseVariable())) { + return null; + } + if (!this.accept(TokenType$1.Colon) || !node.setValue(this._parseExpr(true))) { + return this.finish(node, ParseError.VariableValueExpected, [], [TokenType$1.Comma, TokenType$1.ParenthesisR]); + } + if (this.accept(TokenType$1.Exclamation)) { + if (this.hasWhitespace() || !this.acceptIdent('default')) { + return this.finish(node, ParseError.UnknownKeyword); + } + } + return this.finish(node); + } + _parseForward() { + if (!this.peekKeyword('@forward')) { + return null; + } + const node = this.create(Forward); + this.consumeToken(); + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (this.acceptIdent('as')) { + const identifier = this._parseIdent([ReferenceType.Forward]); + if (!node.setIdentifier(identifier)) { + return this.finish(node, ParseError.IdentifierExpected); + } + // Wildcard must be the next character after the identifier string. + if (this.hasWhitespace() || !this.acceptDelim('*')) { + return this.finish(node, ParseError.WildcardExpected); + } + } + if (this.acceptIdent('with')) { + if (!node.setParameters(this._parseModuleConfig())) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType$1.ParenthesisR]); + } + } + else if (this.peekIdent('hide') || this.peekIdent('show')) { + if (!node.addChild(this._parseForwardVisibility())) { + return this.finish(node, ParseError.IdentifierOrVariableExpected); + } + } + if (!this.accept(TokenType$1.SemiColon) && !this.accept(TokenType$1.EOF)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseForwardVisibility() { + const node = this.create(ForwardVisibility); + // Assume to be "hide" or "show". + node.setIdentifier(this._parseIdent()); + while (node.addChild(this._parseVariable() || this._parseIdent())) { + // Consume all variables and idents ahead. + this.accept(TokenType$1.Comma); + } + // More than just identifier + return node.getChildren().length > 1 ? node : null; + } + _parseSupportsCondition() { + return this._parseInterpolation() || super._parseSupportsCondition(); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const sassDocumentationName = t$2('Sass documentation'); +class SCSSCompletion extends CSSCompletion { + constructor(lsServiceOptions, cssDataManager) { + super('$', lsServiceOptions, cssDataManager); + addReferencesToDocumentation(SCSSCompletion.scssModuleLoaders); + addReferencesToDocumentation(SCSSCompletion.scssModuleBuiltIns); + } + isImportPathParent(type) { + return type === NodeType.Forward + || type === NodeType.Use + || super.isImportPathParent(type); + } + getCompletionForImportPath(importPathNode, result) { + const parentType = importPathNode.getParent().type; + if (parentType === NodeType.Forward || parentType === NodeType.Use) { + for (let p of SCSSCompletion.scssModuleBuiltIns) { + const item = { + label: p.label, + documentation: p.documentation, + textEdit: TextEdit.replace(this.getCompletionRange(importPathNode), `'${p.label}'`), + kind: CompletionItemKind.Module + }; + result.items.push(item); + } + } + return super.getCompletionForImportPath(importPathNode, result); + } + createReplaceFunction() { + let tabStopCounter = 1; + return (_match, p1) => { + return '\\' + p1 + ': ${' + tabStopCounter++ + ':' + (SCSSCompletion.variableDefaults[p1] || '') + '}'; + }; + } + createFunctionProposals(proposals, existingNode, sortToEnd, result) { + for (const p of proposals) { + const insertText = p.func.replace(/\[?(\$\w+)\]?/g, this.createReplaceFunction()); + const label = p.func.substr(0, p.func.indexOf('(')); + const item = { + label: label, + detail: p.func, + documentation: p.desc, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Function + }; + if (sortToEnd) { + item.sortText = 'z'; + } + result.items.push(item); + } + return result; + } + getCompletionsForSelector(ruleSet, isNested, result) { + this.createFunctionProposals(SCSSCompletion.selectorFuncs, null, true, result); + return super.getCompletionsForSelector(ruleSet, isNested, result); + } + getTermProposals(entry, existingNode, result) { + let functions = SCSSCompletion.builtInFuncs; + if (entry) { + functions = functions.filter(f => !f.type || !entry.restrictions || entry.restrictions.indexOf(f.type) !== -1); + } + this.createFunctionProposals(functions, existingNode, true, result); + return super.getTermProposals(entry, existingNode, result); + } + getColorProposals(entry, existingNode, result) { + this.createFunctionProposals(SCSSCompletion.colorProposals, existingNode, false, result); + return super.getColorProposals(entry, existingNode, result); + } + getCompletionsForDeclarationProperty(declaration, result) { + this.getCompletionForAtDirectives(result); + this.getCompletionsForSelector(null, true, result); + return super.getCompletionsForDeclarationProperty(declaration, result); + } + getCompletionsForExtendsReference(_extendsRef, existingNode, result) { + const symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Rule); + for (const symbol of symbols) { + const suggest = { + label: symbol.name, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), symbol.name), + kind: CompletionItemKind.Function, + }; + result.items.push(suggest); + } + return result; + } + getCompletionForAtDirectives(result) { + result.items.push(...SCSSCompletion.scssAtDirectives); + return result; + } + getCompletionForTopLevel(result) { + this.getCompletionForAtDirectives(result); + this.getCompletionForModuleLoaders(result); + super.getCompletionForTopLevel(result); + return result; + } + getCompletionForModuleLoaders(result) { + result.items.push(...SCSSCompletion.scssModuleLoaders); + return result; + } +} +SCSSCompletion.variableDefaults = { + '$red': '1', + '$green': '2', + '$blue': '3', + '$alpha': '1.0', + '$color': '#000000', + '$weight': '0.5', + '$hue': '0', + '$saturation': '0%', + '$lightness': '0%', + '$degrees': '0', + '$amount': '0', + '$string': '""', + '$substring': '"s"', + '$number': '0', + '$limit': '1' +}; +SCSSCompletion.colorProposals = [ + { func: 'red($color)', desc: t$2('Gets the red component of a color.') }, + { func: 'green($color)', desc: t$2('Gets the green component of a color.') }, + { func: 'blue($color)', desc: t$2('Gets the blue component of a color.') }, + { func: 'mix($color, $color, [$weight])', desc: t$2('Mixes two colors together.') }, + { func: 'hue($color)', desc: t$2('Gets the hue component of a color.') }, + { func: 'saturation($color)', desc: t$2('Gets the saturation component of a color.') }, + { func: 'lightness($color)', desc: t$2('Gets the lightness component of a color.') }, + { func: 'adjust-hue($color, $degrees)', desc: t$2('Changes the hue of a color.') }, + { func: 'lighten($color, $amount)', desc: t$2('Makes a color lighter.') }, + { func: 'darken($color, $amount)', desc: t$2('Makes a color darker.') }, + { func: 'saturate($color, $amount)', desc: t$2('Makes a color more saturated.') }, + { func: 'desaturate($color, $amount)', desc: t$2('Makes a color less saturated.') }, + { func: 'grayscale($color)', desc: t$2('Converts a color to grayscale.') }, + { func: 'complement($color)', desc: t$2('Returns the complement of a color.') }, + { func: 'invert($color)', desc: t$2('Returns the inverse of a color.') }, + { func: 'alpha($color)', desc: t$2('Gets the opacity component of a color.') }, + { func: 'opacity($color)', desc: 'Gets the alpha component (opacity) of a color.' }, + { func: 'rgba($color, $alpha)', desc: t$2('Changes the alpha component for a color.') }, + { func: 'opacify($color, $amount)', desc: t$2('Makes a color more opaque.') }, + { func: 'fade-in($color, $amount)', desc: t$2('Makes a color more opaque.') }, + { func: 'transparentize($color, $amount)', desc: t$2('Makes a color more transparent.') }, + { func: 'fade-out($color, $amount)', desc: t$2('Makes a color more transparent.') }, + { func: 'adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])', desc: t$2('Increases or decreases one or more components of a color.') }, + { func: 'scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])', desc: t$2('Fluidly scales one or more properties of a color.') }, + { func: 'change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])', desc: t$2('Changes one or more properties of a color.') }, + { func: 'ie-hex-str($color)', desc: t$2('Converts a color into the format understood by IE filters.') } +]; +SCSSCompletion.selectorFuncs = [ + { func: 'selector-nest($selectors…)', desc: t$2('Nests selector beneath one another like they would be nested in the stylesheet.') }, + { func: 'selector-append($selectors…)', desc: t$2('Appends selectors to one another without spaces in between.') }, + { func: 'selector-extend($selector, $extendee, $extender)', desc: t$2('Extends $extendee with $extender within $selector.') }, + { func: 'selector-replace($selector, $original, $replacement)', desc: t$2('Replaces $original with $replacement within $selector.') }, + { func: 'selector-unify($selector1, $selector2)', desc: t$2('Unifies two selectors to produce a selector that matches elements matched by both.') }, + { func: 'is-superselector($super, $sub)', desc: t$2('Returns whether $super matches all the elements $sub does, and possibly more.') }, + { func: 'simple-selectors($selector)', desc: t$2('Returns the simple selectors that comprise a compound selector.') }, + { func: 'selector-parse($selector)', desc: t$2('Parses a selector into the format returned by &.') } +]; +SCSSCompletion.builtInFuncs = [ + { func: 'unquote($string)', desc: t$2('Removes quotes from a string.') }, + { func: 'quote($string)', desc: t$2('Adds quotes to a string.') }, + { func: 'str-length($string)', desc: t$2('Returns the number of characters in a string.') }, + { func: 'str-insert($string, $insert, $index)', desc: t$2('Inserts $insert into $string at $index.') }, + { func: 'str-index($string, $substring)', desc: t$2('Returns the index of the first occurance of $substring in $string.') }, + { func: 'str-slice($string, $start-at, [$end-at])', desc: t$2('Extracts a substring from $string.') }, + { func: 'to-upper-case($string)', desc: t$2('Converts a string to upper case.') }, + { func: 'to-lower-case($string)', desc: t$2('Converts a string to lower case.') }, + { func: 'percentage($number)', desc: t$2('Converts a unitless number to a percentage.'), type: 'percentage' }, + { func: 'round($number)', desc: t$2('Rounds a number to the nearest whole number.') }, + { func: 'ceil($number)', desc: t$2('Rounds a number up to the next whole number.') }, + { func: 'floor($number)', desc: t$2('Rounds a number down to the previous whole number.') }, + { func: 'abs($number)', desc: t$2('Returns the absolute value of a number.') }, + { func: 'min($numbers)', desc: t$2('Finds the minimum of several numbers.') }, + { func: 'max($numbers)', desc: t$2('Finds the maximum of several numbers.') }, + { func: 'random([$limit])', desc: t$2('Returns a random number.') }, + { func: 'length($list)', desc: t$2('Returns the length of a list.') }, + { func: 'nth($list, $n)', desc: t$2('Returns a specific item in a list.') }, + { func: 'set-nth($list, $n, $value)', desc: t$2('Replaces the nth item in a list.') }, + { func: 'join($list1, $list2, [$separator])', desc: t$2('Joins together two lists into one.') }, + { func: 'append($list1, $val, [$separator])', desc: t$2('Appends a single value onto the end of a list.') }, + { func: 'zip($lists)', desc: t$2('Combines several lists into a single multidimensional list.') }, + { func: 'index($list, $value)', desc: t$2('Returns the position of a value within a list.') }, + { func: 'list-separator(#list)', desc: t$2('Returns the separator of a list.') }, + { func: 'map-get($map, $key)', desc: t$2('Returns the value in a map associated with a given key.') }, + { func: 'map-merge($map1, $map2)', desc: t$2('Merges two maps together into a new map.') }, + { func: 'map-remove($map, $keys)', desc: t$2('Returns a new map with keys removed.') }, + { func: 'map-keys($map)', desc: t$2('Returns a list of all keys in a map.') }, + { func: 'map-values($map)', desc: t$2('Returns a list of all values in a map.') }, + { func: 'map-has-key($map, $key)', desc: t$2('Returns whether a map has a value associated with a given key.') }, + { func: 'keywords($args)', desc: t$2('Returns the keywords passed to a function that takes variable arguments.') }, + { func: 'feature-exists($feature)', desc: t$2('Returns whether a feature exists in the current Sass runtime.') }, + { func: 'variable-exists($name)', desc: t$2('Returns whether a variable with the given name exists in the current scope.') }, + { func: 'global-variable-exists($name)', desc: t$2('Returns whether a variable with the given name exists in the global scope.') }, + { func: 'function-exists($name)', desc: t$2('Returns whether a function with the given name exists.') }, + { func: 'mixin-exists($name)', desc: t$2('Returns whether a mixin with the given name exists.') }, + { func: 'inspect($value)', desc: t$2('Returns the string representation of a value as it would be represented in Sass.') }, + { func: 'type-of($value)', desc: t$2('Returns the type of a value.') }, + { func: 'unit($number)', desc: t$2('Returns the unit(s) associated with a number.') }, + { func: 'unitless($number)', desc: t$2('Returns whether a number has units.') }, + { func: 'comparable($number1, $number2)', desc: t$2('Returns whether two numbers can be added, subtracted, or compared.') }, + { func: 'call($name, $args…)', desc: t$2('Dynamically calls a Sass function.') } +]; +SCSSCompletion.scssAtDirectives = [ + { + label: "@extend", + documentation: t$2("Inherits the styles of another selector."), + kind: CompletionItemKind.Keyword + }, + { + label: "@at-root", + documentation: t$2("Causes one or more rules to be emitted at the root of the document."), + kind: CompletionItemKind.Keyword + }, + { + label: "@debug", + documentation: t$2("Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files."), + kind: CompletionItemKind.Keyword + }, + { + label: "@warn", + documentation: t$2("Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option."), + kind: CompletionItemKind.Keyword + }, + { + label: "@error", + documentation: t$2("Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions."), + kind: CompletionItemKind.Keyword + }, + { + label: "@if", + documentation: t$2("Includes the body if the expression does not evaluate to `false` or `null`."), + insertText: "@if ${1:expr} {\n\t$0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@for", + documentation: t$2("For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."), + insertText: "@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n\t$0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@each", + documentation: t$2("Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."), + insertText: "@each \\$${1:var} in ${2:list} {\n\t$0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@while", + documentation: t$2("While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."), + insertText: "@while ${1:condition} {\n\t$0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@mixin", + documentation: t$2("Defines styles that can be re-used throughout the stylesheet with `@include`."), + insertText: "@mixin ${1:name} {\n\t$0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@include", + documentation: t$2("Includes the styles defined by another mixin into the current rule."), + kind: CompletionItemKind.Keyword + }, + { + label: "@function", + documentation: t$2("Defines complex operations that can be re-used throughout stylesheets."), + kind: CompletionItemKind.Keyword + } +]; +SCSSCompletion.scssModuleLoaders = [ + { + label: "@use", + documentation: t$2("Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/at-rules/use' }], + insertText: "@use $0;", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, + { + label: "@forward", + documentation: t$2("Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/at-rules/forward' }], + insertText: "@forward $0;", + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Keyword + }, +]; +SCSSCompletion.scssModuleBuiltIns = [ + { + label: 'sass:math', + documentation: t$2('Provides functions that operate on numbers.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/math' }] + }, + { + label: 'sass:string', + documentation: t$2('Makes it easy to combine, search, or split apart strings.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/string' }] + }, + { + label: 'sass:color', + documentation: t$2('Generates new colors based on existing ones, making it easy to build color themes.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/color' }] + }, + { + label: 'sass:list', + documentation: t$2('Lets you access and modify values in lists.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/list' }] + }, + { + label: 'sass:map', + documentation: t$2('Makes it possible to look up the value associated with a key in a map, and much more.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/map' }] + }, + { + label: 'sass:selector', + documentation: t$2('Provides access to Sass’s powerful selector engine.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/selector' }] + }, + { + label: 'sass:meta', + documentation: t$2('Exposes the details of Sass’s inner workings.'), + references: [{ name: sassDocumentationName, url: 'https://sass-lang.com/documentation/modules/meta' }] + }, +]; +/** + * Todo @Pine: Remove this and do it through custom data + */ +function addReferencesToDocumentation(items) { + items.forEach(i => { + if (i.documentation && i.references && i.references.length > 0) { + const markdownDoc = typeof i.documentation === 'string' + ? { kind: 'markdown', value: i.documentation } + : { kind: 'markdown', value: i.documentation.value }; + markdownDoc.value += '\n\n'; + markdownDoc.value += i.references + .map(r => { + return `[${r.name}](${r.url})`; + }) + .join(' | '); + i.documentation = markdownDoc; + } + }); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const _FSL$1 = '/'.charCodeAt(0); +const _NWL$1 = '\n'.charCodeAt(0); +const _CAR$1 = '\r'.charCodeAt(0); +const _LFD$1 = '\f'.charCodeAt(0); +const _TIC = '`'.charCodeAt(0); +const _DOT = '.'.charCodeAt(0); +let customTokenValue = TokenType$1.CustomToken; +const Ellipsis = customTokenValue++; +class LESSScanner extends Scanner { + scanNext(offset) { + // LESS: escaped JavaScript code `const a = "dddd"` + const tokenType = this.escapedJavaScript(); + if (tokenType !== null) { + return this.finishToken(offset, tokenType); + } + if (this.stream.advanceIfChars([_DOT, _DOT, _DOT])) { + return this.finishToken(offset, Ellipsis); + } + return super.scanNext(offset); + } + comment() { + if (super.comment()) { + return true; + } + if (!this.inURL && this.stream.advanceIfChars([_FSL$1, _FSL$1])) { + this.stream.advanceWhileChar((ch) => { + switch (ch) { + case _NWL$1: + case _CAR$1: + case _LFD$1: + return false; + default: + return true; + } + }); + return true; + } + else { + return false; + } + } + escapedJavaScript() { + const ch = this.stream.peekChar(); + if (ch === _TIC) { + this.stream.advance(1); + this.stream.advanceWhileChar((ch) => { return ch !== _TIC; }); + return this.stream.advanceIfChar(_TIC) ? TokenType$1.EscapedJavaScript : TokenType$1.BadEscapedJavaScript; + } + return null; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/// <summary> +/// A parser for LESS +/// http://lesscss.org/ +/// </summary> +class LESSParser extends Parser { + constructor() { + super(new LESSScanner()); + } + _parseStylesheetStatement(isNested = false) { + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseVariableDeclaration() + || this._parsePlugin() + || super._parseStylesheetAtStatement(isNested); + } + return this._tryParseMixinDeclaration() + || this._tryParseMixinReference() + || this._parseFunction() + || this._parseRuleset(true); + } + _parseImport() { + if (!this.peekKeyword('@import') && !this.peekKeyword('@import-once') /* deprecated in less 1.4.1 */) { + return null; + } + const node = this.create(Import); + this.consumeToken(); + // less 1.4.1: @import (css) "lib" + if (this.accept(TokenType$1.ParenthesisL)) { + if (!this.accept(TokenType$1.Ident)) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType$1.SemiColon]); + } + do { + if (!this.accept(TokenType$1.Comma)) { + break; + } + } while (this.accept(TokenType$1.Ident)); + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType$1.SemiColon]); + } + } + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected, [TokenType$1.SemiColon]); + } + if (!this.peek(TokenType$1.SemiColon) && !this.peek(TokenType$1.EOF)) { + node.setMedialist(this._parseMediaQueryList()); + } + return this._completeParseImport(node); + } + _parsePlugin() { + if (!this.peekKeyword('@plugin')) { + return null; + } + const node = this.createNode(NodeType.Plugin); + this.consumeToken(); // @import + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (!this.accept(TokenType$1.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + } + _parseMediaQuery() { + const node = super._parseMediaQuery(); + if (!node) { + const node = this.create(MediaQuery); + if (node.addChild(this._parseVariable())) { + return this.finish(node); + } + return null; + } + return node; + } + _parseMediaDeclaration(isNested = false) { + return this._tryParseRuleset(isNested) + || this._tryToParseDeclaration() + || this._tryParseMixinDeclaration() + || this._tryParseMixinReference() + || this._parseDetachedRuleSetMixin() + || this._parseStylesheetStatement(isNested); + } + _parseMediaFeatureName() { + return this._parseIdent() || this._parseVariable(); + } + _parseVariableDeclaration(panic = []) { + const node = this.create(VariableDeclaration); + const mark = this.mark(); + if (!node.setVariable(this._parseVariable(true))) { + return null; + } + if (this.accept(TokenType$1.Colon)) { + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (node.setValue(this._parseDetachedRuleSet())) { + node.needsSemicolon = false; + } + else if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.VariableValueExpected, [], panic); + } + node.addChild(this._parsePrio()); + } + else { + this.restoreAtMark(mark); + return null; // at keyword, but no ':', not a variable declaration but some at keyword + } + if (this.peek(TokenType$1.SemiColon)) { + node.semicolonPosition = this.token.offset; // not part of the declaration, but useful information for code assist + } + return this.finish(node); + } + _parseDetachedRuleSet() { + let mark = this.mark(); + // "Anonymous mixin" used in each() and possibly a generic type in the future + if (this.peekDelim('#') || this.peekDelim('.')) { + this.consumeToken(); + if (!this.hasWhitespace() && this.accept(TokenType$1.ParenthesisL)) { + let node = this.create(MixinDeclaration); + if (node.getParameters().addChild(this._parseMixinParameter())) { + while (this.accept(TokenType$1.Comma) || this.accept(TokenType$1.SemiColon)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseMixinParameter())) { + this.markError(node, ParseError.IdentifierExpected, [], [TokenType$1.ParenthesisR]); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + this.restoreAtMark(mark); + return null; + } + } + else { + this.restoreAtMark(mark); + return null; + } + } + if (!this.peek(TokenType$1.CurlyL)) { + return null; + } + const content = this.create(BodyDeclaration); + this._parseBody(content, this._parseDetachedRuleSetBody.bind(this)); + return this.finish(content); + } + _parseDetachedRuleSetBody() { + return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration(); + } + _addLookupChildren(node) { + if (!node.addChild(this._parseLookupValue())) { + return false; + } + let expectsValue = false; + while (true) { + if (this.peek(TokenType$1.BracketL)) { + expectsValue = true; + } + if (!node.addChild(this._parseLookupValue())) { + break; + } + expectsValue = false; + } + return !expectsValue; + } + _parseLookupValue() { + const node = this.create(Node$1); + const mark = this.mark(); + if (!this.accept(TokenType$1.BracketL)) { + this.restoreAtMark(mark); + return null; + } + if (((node.addChild(this._parseVariable(false, true)) || + node.addChild(this._parsePropertyIdentifier())) && + this.accept(TokenType$1.BracketR)) || this.accept(TokenType$1.BracketR)) { + return node; + } + this.restoreAtMark(mark); + return null; + } + _parseVariable(declaration = false, insideLookup = false) { + const isPropertyReference = !declaration && this.peekDelim('$'); + if (!this.peekDelim('@') && !isPropertyReference && !this.peek(TokenType$1.AtKeyword)) { + return null; + } + const node = this.create(Variable); + const mark = this.mark(); + while (this.acceptDelim('@') || (!declaration && this.acceptDelim('$'))) { + if (this.hasWhitespace()) { + this.restoreAtMark(mark); + return null; + } + } + if (!this.accept(TokenType$1.AtKeyword) && !this.accept(TokenType$1.Ident)) { + this.restoreAtMark(mark); + return null; + } + if (!insideLookup && this.peek(TokenType$1.BracketL)) { + if (!this._addLookupChildren(node)) { + this.restoreAtMark(mark); + return null; + } + } + return node; + } + _parseTermExpression() { + return this._parseVariable() || + this._parseEscaped() || + super._parseTermExpression() || // preference for colors before mixin references + this._tryParseMixinReference(false); + } + _parseEscaped() { + if (this.peek(TokenType$1.EscapedJavaScript) || + this.peek(TokenType$1.BadEscapedJavaScript)) { + const node = this.createNode(NodeType.EscapedValue); + this.consumeToken(); + return this.finish(node); + } + if (this.peekDelim('~')) { + const node = this.createNode(NodeType.EscapedValue); + this.consumeToken(); + if (this.accept(TokenType$1.String) || this.accept(TokenType$1.EscapedJavaScript)) { + return this.finish(node); + } + else { + return this.finish(node, ParseError.TermExpected); + } + } + return null; + } + _parseOperator() { + const node = this._parseGuardOperator(); + if (node) { + return node; + } + else { + return super._parseOperator(); + } + } + _parseGuardOperator() { + if (this.peekDelim('>')) { + const node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim('='); + return node; + } + else if (this.peekDelim('=')) { + const node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim('<'); + return node; + } + else if (this.peekDelim('<')) { + const node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim('='); + return node; + } + return null; + } + _parseRuleSetDeclaration() { + if (this.peek(TokenType$1.AtKeyword)) { + return this._parseKeyframe() + || this._parseMedia(true) + || this._parseImport() + || this._parseSupports(true) // @supports + || this._parseLayer() // @layer + || this._parsePropertyAtRule() // @property + || this._parseContainer(true) // @container + || this._parseDetachedRuleSetMixin() // less detached ruleset mixin + || this._parseVariableDeclaration() // Variable declarations + || this._parseRuleSetDeclarationAtStatement(); + } + return this._tryParseMixinDeclaration() + || this._tryParseRuleset(true) // nested ruleset + || this._tryParseMixinReference() // less mixin reference + || this._parseFunction() + || this._parseExtend() // less extend declaration + || this._parseDeclaration(); // try css ruleset declaration as the last option + } + _parseKeyframeIdent() { + return this._parseIdent([ReferenceType.Keyframe]) || this._parseVariable(); + } + _parseKeyframeSelector() { + return this._parseDetachedRuleSetMixin() // less detached ruleset mixin + || super._parseKeyframeSelector(); + } + // public _parseSimpleSelectorBody(): nodes.Node | null { + // return this._parseNestingSelector() || super._parseSimpleSelectorBody(); + // } + _parseSelector(isNested) { + // CSS Guards + const node = this.create(Selector); + let hasContent = false; + if (isNested) { + // nested selectors can start with a combinator + hasContent = node.addChild(this._parseCombinator()); + } + while (node.addChild(this._parseSimpleSelector())) { + hasContent = true; + const mark = this.mark(); + if (node.addChild(this._parseGuard()) && this.peek(TokenType$1.CurlyL)) { + break; + } + this.restoreAtMark(mark); + node.addChild(this._parseCombinator()); // optional + } + return hasContent ? this.finish(node) : null; + } + _parseNestingSelector() { + if (this.peekDelim('&')) { + const node = this.createNode(NodeType.SelectorCombinator); + this.consumeToken(); + while (!this.hasWhitespace() && (this.acceptDelim('-') || this.accept(TokenType$1.Num) || this.accept(TokenType$1.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim('&'))) { + // support &-foo + } + return this.finish(node); + } + return null; + } + _parseSelectorIdent() { + if (!this.peekInterpolatedIdent()) { + return null; + } + const node = this.createNode(NodeType.SelectorInterpolation); + const hasContent = this._acceptInterpolatedIdent(node); + return hasContent ? this.finish(node) : null; + } + _parsePropertyIdentifier(inLookup = false) { + const propertyRegex = /^[\w-]+/; + if (!this.peekInterpolatedIdent() && !this.peekRegExp(this.token.type, propertyRegex)) { + return null; + } + const mark = this.mark(); + const node = this.create(Identifier); + node.isCustomProperty = this.acceptDelim('-') && this.acceptDelim('-'); + let childAdded = false; + if (!inLookup) { + if (node.isCustomProperty) { + childAdded = this._acceptInterpolatedIdent(node); + } + else { + childAdded = this._acceptInterpolatedIdent(node, propertyRegex); + } + } + else { + if (node.isCustomProperty) { + childAdded = node.addChild(this._parseIdent()); + } + else { + childAdded = node.addChild(this._parseRegexp(propertyRegex)); + } + } + if (!childAdded) { + this.restoreAtMark(mark); + return null; + } + if (!inLookup && !this.hasWhitespace()) { + this.acceptDelim('+'); + if (!this.hasWhitespace()) { + this.acceptIdent('_'); + } + } + return this.finish(node); + } + peekInterpolatedIdent() { + return this.peek(TokenType$1.Ident) || + this.peekDelim('@') || + this.peekDelim('$') || + this.peekDelim('-'); + } + _acceptInterpolatedIdent(node, identRegex) { + let hasContent = false; + const indentInterpolation = () => { + const pos = this.mark(); + if (this.acceptDelim('-')) { + if (!this.hasWhitespace()) { + this.acceptDelim('-'); + } + if (this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + } + return this._parseInterpolation(); + }; + const accept = identRegex ? + () => this.acceptRegexp(identRegex) : + () => this.accept(TokenType$1.Ident); + while (accept() || + node.addChild(this._parseInterpolation() || + this.try(indentInterpolation))) { + hasContent = true; + if (this.hasWhitespace()) { + break; + } + } + return hasContent; + } + _parseInterpolation() { + // @{name} Variable or + // ${name} Property + const mark = this.mark(); + if (this.peekDelim('@') || this.peekDelim('$')) { + const node = this.createNode(NodeType.Interpolation); + this.consumeToken(); + if (this.hasWhitespace() || !this.accept(TokenType$1.CurlyL)) { + this.restoreAtMark(mark); + return null; + } + if (!node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType$1.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected); + } + return this.finish(node); + } + return null; + } + _tryParseMixinDeclaration() { + const mark = this.mark(); + const node = this.create(MixinDeclaration); + if (!node.setIdentifier(this._parseMixinDeclarationIdentifier()) || !this.accept(TokenType$1.ParenthesisL)) { + this.restoreAtMark(mark); + return null; + } + if (node.getParameters().addChild(this._parseMixinParameter())) { + while (this.accept(TokenType$1.Comma) || this.accept(TokenType$1.SemiColon)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseMixinParameter())) { + this.markError(node, ParseError.IdentifierExpected, [], [TokenType$1.ParenthesisR]); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + this.restoreAtMark(mark); + return null; + } + node.setGuard(this._parseGuard()); + if (!this.peek(TokenType$1.CurlyL)) { + this.restoreAtMark(mark); + return null; + } + return this._parseBody(node, this._parseMixInBodyDeclaration.bind(this)); + } + _parseMixInBodyDeclaration() { + return this._parseFontFace() || this._parseRuleSetDeclaration(); + } + _parseMixinDeclarationIdentifier() { + let identifier; + if (this.peekDelim('#') || this.peekDelim('.')) { + identifier = this.create(Identifier); + this.consumeToken(); // # or . + if (this.hasWhitespace() || !identifier.addChild(this._parseIdent())) { + return null; + } + } + else if (this.peek(TokenType$1.Hash)) { + identifier = this.create(Identifier); + this.consumeToken(); // TokenType.Hash + } + else { + return null; + } + identifier.referenceTypes = [ReferenceType.Mixin]; + return this.finish(identifier); + } + _parsePseudo() { + if (!this.peek(TokenType$1.Colon)) { + return null; + } + const mark = this.mark(); + const node = this.create(ExtendsReference); + this.consumeToken(); // : + if (this.acceptIdent('extend')) { + return this._completeExtends(node); + } + this.restoreAtMark(mark); + return super._parsePseudo(); + } + _parseExtend() { + if (!this.peekDelim('&')) { + return null; + } + const mark = this.mark(); + const node = this.create(ExtendsReference); + this.consumeToken(); // & + if (this.hasWhitespace() || !this.accept(TokenType$1.Colon) || !this.acceptIdent('extend')) { + this.restoreAtMark(mark); + return null; + } + return this._completeExtends(node); + } + _completeExtends(node) { + if (!this.accept(TokenType$1.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected); + } + const selectors = node.getSelectors(); + if (!selectors.addChild(this._parseSelector(true))) { + return this.finish(node, ParseError.SelectorExpected); + } + while (this.accept(TokenType$1.Comma)) { + if (!selectors.addChild(this._parseSelector(true))) { + return this.finish(node, ParseError.SelectorExpected); + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseDetachedRuleSetMixin() { + if (!this.peek(TokenType$1.AtKeyword)) { + return null; + } + const mark = this.mark(); + const node = this.create(MixinReference); + if (node.addChild(this._parseVariable(true)) && (this.hasWhitespace() || !this.accept(TokenType$1.ParenthesisL))) { + this.restoreAtMark(mark); + return null; + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _tryParseMixinReference(atRoot = true) { + const mark = this.mark(); + const node = this.create(MixinReference); + let identifier = this._parseMixinDeclarationIdentifier(); + while (identifier) { + this.acceptDelim('>'); + const nextId = this._parseMixinDeclarationIdentifier(); + if (nextId) { + node.getNamespaces().addChild(identifier); + identifier = nextId; + } + else { + break; + } + } + if (!node.setIdentifier(identifier)) { + this.restoreAtMark(mark); + return null; + } + let hasArguments = false; + if (this.accept(TokenType$1.ParenthesisL)) { + hasArguments = true; + if (node.getArguments().addChild(this._parseMixinArgument())) { + while (this.accept(TokenType$1.Comma) || this.accept(TokenType$1.SemiColon)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseMixinArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + identifier.referenceTypes = [ReferenceType.Mixin]; + } + else { + identifier.referenceTypes = [ReferenceType.Mixin, ReferenceType.Rule]; + } + if (this.peek(TokenType$1.BracketL)) { + if (!atRoot) { + this._addLookupChildren(node); + } + } + else { + node.addChild(this._parsePrio()); + } + if (!hasArguments && !this.peek(TokenType$1.SemiColon) && !this.peek(TokenType$1.CurlyR) && !this.peek(TokenType$1.EOF)) { + this.restoreAtMark(mark); + return null; + } + return this.finish(node); + } + _parseMixinArgument() { + // [variableName ':'] expression | variableName '...' + const node = this.create(FunctionArgument); + const pos = this.mark(); + const argument = this._parseVariable(); + if (argument) { + if (!this.accept(TokenType$1.Colon)) { + this.restoreAtMark(pos); + } + else { + node.setIdentifier(argument); + } + } + if (node.setValue(this._parseDetachedRuleSet() || this._parseExpr(true))) { + return this.finish(node); + } + this.restoreAtMark(pos); + return null; + } + _parseMixinParameter() { + const node = this.create(FunctionParameter); + // special rest variable: @rest... + if (this.peekKeyword('@rest')) { + const restNode = this.create(Node$1); + this.consumeToken(); + if (!this.accept(Ellipsis)) { + return this.finish(node, ParseError.DotExpected, [], [TokenType$1.Comma, TokenType$1.ParenthesisR]); + } + node.setIdentifier(this.finish(restNode)); + return this.finish(node); + } + // special const args: ... + if (this.peek(Ellipsis)) { + const varargsNode = this.create(Node$1); + this.consumeToken(); + node.setIdentifier(this.finish(varargsNode)); + return this.finish(node); + } + let hasContent = false; + // default variable declaration: @param: 12 or @name + if (node.setIdentifier(this._parseVariable())) { + this.accept(TokenType$1.Colon); + hasContent = true; + } + if (!node.setDefaultValue(this._parseDetachedRuleSet() || this._parseExpr(true)) && !hasContent) { + return null; + } + return this.finish(node); + } + _parseGuard() { + if (!this.peekIdent('when')) { + return null; + } + const node = this.create(LessGuard); + this.consumeToken(); // when + if (!node.getConditions().addChild(this._parseGuardCondition())) { + return this.finish(node, ParseError.ConditionExpected); + } + while (this.acceptIdent('and') || this.accept(TokenType$1.Comma)) { + if (!node.getConditions().addChild(this._parseGuardCondition())) { + return this.finish(node, ParseError.ConditionExpected); + } + } + return this.finish(node); + } + _parseGuardCondition() { + const node = this.create(GuardCondition); + node.isNegated = this.acceptIdent('not'); + if (!this.accept(TokenType$1.ParenthesisL)) { + if (node.isNegated) { + return this.finish(node, ParseError.LeftParenthesisExpected); + } + return null; + } + if (!node.addChild(this._parseExpr())) ; + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseFunction() { + const pos = this.mark(); + const node = this.create(Function$1); + if (!node.setIdentifier(this._parseFunctionIdentifier())) { + return null; + } + if (this.hasWhitespace() || !this.accept(TokenType$1.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + if (node.getArguments().addChild(this._parseMixinArgument())) { + while (this.accept(TokenType$1.Comma) || this.accept(TokenType$1.SemiColon)) { + if (this.peek(TokenType$1.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseMixinArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType$1.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + } + _parseFunctionIdentifier() { + if (this.peekDelim('%')) { + const node = this.create(Identifier); + node.referenceTypes = [ReferenceType.Function]; + this.consumeToken(); + return this.finish(node); + } + return super._parseFunctionIdentifier(); + } + _parseURLArgument() { + const pos = this.mark(); + const node = super._parseURLArgument(); + if (!node || !this.peek(TokenType$1.ParenthesisR)) { + this.restoreAtMark(pos); + const node = this.create(Node$1); + node.addChild(this._parseBinaryExpr()); + return this.finish(node); + } + return node; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class LESSCompletion extends CSSCompletion { + constructor(lsOptions, cssDataManager) { + super('@', lsOptions, cssDataManager); + } + createFunctionProposals(proposals, existingNode, sortToEnd, result) { + for (const p of proposals) { + const item = { + label: p.name, + detail: p.example, + documentation: p.description, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), p.name + '($0)'), + insertTextFormat: InsertTextFormat.Snippet, + kind: CompletionItemKind.Function + }; + if (sortToEnd) { + item.sortText = 'z'; + } + result.items.push(item); + } + return result; + } + getTermProposals(entry, existingNode, result) { + let functions = LESSCompletion.builtInProposals; + if (entry) { + functions = functions.filter(f => !f.type || !entry.restrictions || entry.restrictions.indexOf(f.type) !== -1); + } + this.createFunctionProposals(functions, existingNode, true, result); + return super.getTermProposals(entry, existingNode, result); + } + getColorProposals(entry, existingNode, result) { + this.createFunctionProposals(LESSCompletion.colorProposals, existingNode, false, result); + return super.getColorProposals(entry, existingNode, result); + } + getCompletionsForDeclarationProperty(declaration, result) { + this.getCompletionsForSelector(null, true, result); + return super.getCompletionsForDeclarationProperty(declaration, result); + } +} +LESSCompletion.builtInProposals = [ + // Boolean functions + { + 'name': 'if', + 'example': 'if(condition, trueValue [, falseValue]);', + 'description': t$2('returns one of two values depending on a condition.') + }, + { + 'name': 'boolean', + 'example': 'boolean(condition);', + 'description': t$2('"store" a boolean test for later evaluation in a guard or if().') + }, + // List functions + { + 'name': 'length', + 'example': 'length(@list);', + 'description': t$2('returns the number of elements in a value list') + }, + { + 'name': 'extract', + 'example': 'extract(@list, index);', + 'description': t$2('returns a value at the specified position in the list') + }, + { + 'name': 'range', + 'example': 'range([start, ] end [, step]);', + 'description': t$2('generate a list spanning a range of values') + }, + { + 'name': 'each', + 'example': 'each(@list, ruleset);', + 'description': t$2('bind the evaluation of a ruleset to each member of a list.') + }, + // Other built-ins + { + 'name': 'escape', + 'example': 'escape(@string);', + 'description': t$2('URL encodes a string') + }, + { + 'name': 'e', + 'example': 'e(@string);', + 'description': t$2('escape string content') + }, + { + 'name': 'replace', + 'example': 'replace(@string, @pattern, @replacement[, @flags]);', + 'description': t$2('string replace') + }, + { + 'name': 'unit', + 'example': 'unit(@dimension, [@unit: \'\']);', + 'description': t$2('remove or change the unit of a dimension') + }, + { + 'name': 'color', + 'example': 'color(@string);', + 'description': t$2('parses a string to a color'), + 'type': 'color' + }, + { + 'name': 'convert', + 'example': 'convert(@value, unit);', + 'description': t$2('converts numbers from one type into another') + }, + { + 'name': 'data-uri', + 'example': 'data-uri([mimetype,] url);', + 'description': t$2('inlines a resource and falls back to `url()`'), + 'type': 'url' + }, + { + 'name': 'abs', + 'description': t$2('absolute value of a number'), + 'example': 'abs(number);' + }, + { + 'name': 'acos', + 'description': t$2('arccosine - inverse of cosine function'), + 'example': 'acos(number);' + }, + { + 'name': 'asin', + 'description': t$2('arcsine - inverse of sine function'), + 'example': 'asin(number);' + }, + { + 'name': 'ceil', + 'example': 'ceil(@number);', + 'description': t$2('rounds up to an integer') + }, + { + 'name': 'cos', + 'description': t$2('cosine function'), + 'example': 'cos(number);' + }, + { + 'name': 'floor', + 'description': t$2('rounds down to an integer'), + 'example': 'floor(@number);' + }, + { + 'name': 'percentage', + 'description': t$2('converts to a %, e.g. 0.5 > 50%'), + 'example': 'percentage(@number);', + 'type': 'percentage' + }, + { + 'name': 'round', + 'description': t$2('rounds a number to a number of places'), + 'example': 'round(number, [places: 0]);' + }, + { + 'name': 'sqrt', + 'description': t$2('calculates square root of a number'), + 'example': 'sqrt(number);' + }, + { + 'name': 'sin', + 'description': t$2('sine function'), + 'example': 'sin(number);' + }, + { + 'name': 'tan', + 'description': t$2('tangent function'), + 'example': 'tan(number);' + }, + { + 'name': 'atan', + 'description': t$2('arctangent - inverse of tangent function'), + 'example': 'atan(number);' + }, + { + 'name': 'pi', + 'description': t$2('returns pi'), + 'example': 'pi();' + }, + { + 'name': 'pow', + 'description': t$2('first argument raised to the power of the second argument'), + 'example': 'pow(@base, @exponent);' + }, + { + 'name': 'mod', + 'description': t$2('first argument modulus second argument'), + 'example': 'mod(number, number);' + }, + { + 'name': 'min', + 'description': t$2('returns the lowest of one or more values'), + 'example': 'min(@x, @y);' + }, + { + 'name': 'max', + 'description': t$2('returns the lowest of one or more values'), + 'example': 'max(@x, @y);' + } +]; +LESSCompletion.colorProposals = [ + { + 'name': 'argb', + 'example': 'argb(@color);', + 'description': t$2('creates a #AARRGGBB') + }, + { + 'name': 'hsl', + 'example': 'hsl(@hue, @saturation, @lightness);', + 'description': t$2('creates a color') + }, + { + 'name': 'hsla', + 'example': 'hsla(@hue, @saturation, @lightness, @alpha);', + 'description': t$2('creates a color') + }, + { + 'name': 'hsv', + 'example': 'hsv(@hue, @saturation, @value);', + 'description': t$2('creates a color') + }, + { + 'name': 'hsva', + 'example': 'hsva(@hue, @saturation, @value, @alpha);', + 'description': t$2('creates a color') + }, + { + 'name': 'hue', + 'example': 'hue(@color);', + 'description': t$2('returns the `hue` channel of `@color` in the HSL space') + }, + { + 'name': 'saturation', + 'example': 'saturation(@color);', + 'description': t$2('returns the `saturation` channel of `@color` in the HSL space') + }, + { + 'name': 'lightness', + 'example': 'lightness(@color);', + 'description': t$2('returns the `lightness` channel of `@color` in the HSL space') + }, + { + 'name': 'hsvhue', + 'example': 'hsvhue(@color);', + 'description': t$2('returns the `hue` channel of `@color` in the HSV space') + }, + { + 'name': 'hsvsaturation', + 'example': 'hsvsaturation(@color);', + 'description': t$2('returns the `saturation` channel of `@color` in the HSV space') + }, + { + 'name': 'hsvvalue', + 'example': 'hsvvalue(@color);', + 'description': t$2('returns the `value` channel of `@color` in the HSV space') + }, + { + 'name': 'red', + 'example': 'red(@color);', + 'description': t$2('returns the `red` channel of `@color`') + }, + { + 'name': 'green', + 'example': 'green(@color);', + 'description': t$2('returns the `green` channel of `@color`') + }, + { + 'name': 'blue', + 'example': 'blue(@color);', + 'description': t$2('returns the `blue` channel of `@color`') + }, + { + 'name': 'alpha', + 'example': 'alpha(@color);', + 'description': t$2('returns the `alpha` channel of `@color`') + }, + { + 'name': 'luma', + 'example': 'luma(@color);', + 'description': t$2('returns the `luma` value (perceptual brightness) of `@color`') + }, + { + 'name': 'saturate', + 'example': 'saturate(@color, 10%);', + 'description': t$2('return `@color` 10% points more saturated') + }, + { + 'name': 'desaturate', + 'example': 'desaturate(@color, 10%);', + 'description': t$2('return `@color` 10% points less saturated') + }, + { + 'name': 'lighten', + 'example': 'lighten(@color, 10%);', + 'description': t$2('return `@color` 10% points lighter') + }, + { + 'name': 'darken', + 'example': 'darken(@color, 10%);', + 'description': t$2('return `@color` 10% points darker') + }, + { + 'name': 'fadein', + 'example': 'fadein(@color, 10%);', + 'description': t$2('return `@color` 10% points less transparent') + }, + { + 'name': 'fadeout', + 'example': 'fadeout(@color, 10%);', + 'description': t$2('return `@color` 10% points more transparent') + }, + { + 'name': 'fade', + 'example': 'fade(@color, 50%);', + 'description': t$2('return `@color` with 50% transparency') + }, + { + 'name': 'spin', + 'example': 'spin(@color, 10);', + 'description': t$2('return `@color` with a 10 degree larger in hue') + }, + { + 'name': 'mix', + 'example': 'mix(@color1, @color2, [@weight: 50%]);', + 'description': t$2('return a mix of `@color1` and `@color2`') + }, + { + 'name': 'greyscale', + 'example': 'greyscale(@color);', + 'description': t$2('returns a grey, 100% desaturated color'), + }, + { + 'name': 'contrast', + 'example': 'contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);', + 'description': t$2('return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes') + }, + { + 'name': 'multiply', + 'example': 'multiply(@color1, @color2);' + }, + { + 'name': 'screen', + 'example': 'screen(@color1, @color2);' + }, + { + 'name': 'overlay', + 'example': 'overlay(@color1, @color2);' + }, + { + 'name': 'softlight', + 'example': 'softlight(@color1, @color2);' + }, + { + 'name': 'hardlight', + 'example': 'hardlight(@color1, @color2);' + }, + { + 'name': 'difference', + 'example': 'difference(@color1, @color2);' + }, + { + 'name': 'exclusion', + 'example': 'exclusion(@color1, @color2);' + }, + { + 'name': 'average', + 'example': 'average(@color1, @color2);' + }, + { + 'name': 'negation', + 'example': 'negation(@color1, @color2);' + } +]; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getFoldingRanges(document, context) { + const ranges = computeFoldingRanges(document); + return limitFoldingRanges(ranges, context); +} +function computeFoldingRanges(document) { + function getStartLine(t) { + return document.positionAt(t.offset).line; + } + function getEndLine(t) { + return document.positionAt(t.offset + t.len).line; + } + function getScanner() { + switch (document.languageId) { + case 'scss': + return new SCSSScanner(); + case 'less': + return new LESSScanner(); + default: + return new Scanner(); + } + } + function tokenToRange(t, kind) { + const startLine = getStartLine(t); + const endLine = getEndLine(t); + if (startLine !== endLine) { + return { + startLine, + endLine, + kind + }; + } + else { + return null; + } + } + const ranges = []; + const delimiterStack = []; + const scanner = getScanner(); + scanner.ignoreComment = false; + scanner.setSource(document.getText()); + let token = scanner.scan(); + let prevToken = null; + while (token.type !== TokenType$1.EOF) { + switch (token.type) { + case TokenType$1.CurlyL: + case InterpolationFunction: + { + delimiterStack.push({ line: getStartLine(token), type: 'brace', isStart: true }); + break; + } + case TokenType$1.CurlyR: { + if (delimiterStack.length !== 0) { + const prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, 'brace'); + if (!prevDelimiter) { + break; + } + let endLine = getEndLine(token); + if (prevDelimiter.type === 'brace') { + /** + * Other than the case when curly brace is not on a new line by itself, for example + * .foo { + * color: red; } + * Use endLine minus one to show ending curly brace + */ + if (prevToken && getEndLine(prevToken) !== endLine) { + endLine--; + } + if (prevDelimiter.line !== endLine) { + ranges.push({ + startLine: prevDelimiter.line, + endLine, + kind: undefined + }); + } + } + } + break; + } + /** + * In CSS, there is no single line comment prefixed with // + * All comments are marked as `Comment` + */ + case TokenType$1.Comment: { + const commentRegionMarkerToDelimiter = (marker) => { + if (marker === '#region') { + return { line: getStartLine(token), type: 'comment', isStart: true }; + } + else { + return { line: getEndLine(token), type: 'comment', isStart: false }; + } + }; + const getCurrDelimiter = (token) => { + const matches = token.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//); + if (matches) { + return commentRegionMarkerToDelimiter(matches[1]); + } + else if (document.languageId === 'scss' || document.languageId === 'less') { + const matches = token.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/); + if (matches) { + return commentRegionMarkerToDelimiter(matches[1]); + } + } + return null; + }; + const currDelimiter = getCurrDelimiter(token); + // /* */ comment region folding + // All #region and #endregion cases + if (currDelimiter) { + if (currDelimiter.isStart) { + delimiterStack.push(currDelimiter); + } + else { + const prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, 'comment'); + if (!prevDelimiter) { + break; + } + if (prevDelimiter.type === 'comment') { + if (prevDelimiter.line !== currDelimiter.line) { + ranges.push({ + startLine: prevDelimiter.line, + endLine: currDelimiter.line, + kind: 'region' + }); + } + } + } + } + // Multiline comment case + else { + const range = tokenToRange(token, 'comment'); + if (range) { + ranges.push(range); + } + } + break; + } + } + prevToken = token; + token = scanner.scan(); + } + return ranges; +} +function popPrevStartDelimiterOfType(stack, type) { + if (stack.length === 0) { + return null; + } + for (let i = stack.length - 1; i >= 0; i--) { + if (stack[i].type === type && stack[i].isStart) { + return stack.splice(i, 1)[0]; + } + } + return null; +} +/** + * - Sort regions + * - Remove invalid regions (intersections) + * - If limit exceeds, only return `rangeLimit` amount of ranges + */ +function limitFoldingRanges(ranges, context) { + const maxRanges = context && context.rangeLimit || Number.MAX_VALUE; + const sortedRanges = ranges.sort((r1, r2) => { + let diff = r1.startLine - r2.startLine; + if (diff === 0) { + diff = r1.endLine - r2.endLine; + } + return diff; + }); + const validRanges = []; + let prevEndLine = -1; + sortedRanges.forEach(r => { + if (!(r.startLine < prevEndLine && prevEndLine < r.endLine)) { + validRanges.push(r); + prevEndLine = r.endLine; + } + }); + if (validRanges.length < maxRanges) { + return validRanges; + } + else { + return validRanges.slice(0, maxRanges); + } +} + +// copied from js-beautify/js/lib/beautify-css.js +// version: 1.15.1 +/* AUTO-GENERATED. DO NOT MODIFY. */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + CSS Beautifier +--------------- + + Written by Harutyun Amirjanyan, (amirjanyan@gmail.com) + + Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io> + https://beautifier.io/ + + Usage: + css_beautify(source_text); + css_beautify(source_text, options); + + The options are (default in brackets): + indent_size (4) — indentation size, + indent_char (space) — character to indent with, + selector_separator_newline (true) - separate selectors with newline or + not (e.g. "a,\nbr" or "a, br") + end_with_newline (false) - end with a newline + newline_between_rules (true) - add a new line after every css rule + space_around_selector_separator (false) - ensure space around selector separators: + '>', '+', '~' (e.g. "a>b" -> "a > b") + e.g + + css_beautify(css_source_text, { + 'indent_size': 1, + 'indent_char': '\t', + 'selector_separator': ' ', + 'end_with_newline': false, + 'newline_between_rules': true, + 'space_around_selector_separator': true + }); +*/ + +// http://www.w3.org/TR/CSS21/syndata.html#tokenization +// http://www.w3.org/TR/css3-syntax/ + +var legacy_beautify_css$1; +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */, +/* 2 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function OutputLine(parent) { + this.__parent = parent; + this.__character_count = 0; + // use indent_count as a marker for this.__lines that have preserved indentation + this.__indent_count = -1; + this.__alignment_count = 0; + this.__wrap_point_index = 0; + this.__wrap_point_character_count = 0; + this.__wrap_point_indent_count = -1; + this.__wrap_point_alignment_count = 0; + + this.__items = []; +} + +OutputLine.prototype.clone_empty = function() { + var line = new OutputLine(this.__parent); + line.set_indent(this.__indent_count, this.__alignment_count); + return line; +}; + +OutputLine.prototype.item = function(index) { + if (index < 0) { + return this.__items[this.__items.length + index]; + } else { + return this.__items[index]; + } +}; + +OutputLine.prototype.has_match = function(pattern) { + for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) { + if (this.__items[lastCheckedOutput].match(pattern)) { + return true; + } + } + return false; +}; + +OutputLine.prototype.set_indent = function(indent, alignment) { + if (this.is_empty()) { + this.__indent_count = indent || 0; + this.__alignment_count = alignment || 0; + this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count); + } +}; + +OutputLine.prototype._set_wrap_point = function() { + if (this.__parent.wrap_line_length) { + this.__wrap_point_index = this.__items.length; + this.__wrap_point_character_count = this.__character_count; + this.__wrap_point_indent_count = this.__parent.next_line.__indent_count; + this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count; + } +}; + +OutputLine.prototype._should_wrap = function() { + return this.__wrap_point_index && + this.__character_count > this.__parent.wrap_line_length && + this.__wrap_point_character_count > this.__parent.next_line.__character_count; +}; + +OutputLine.prototype._allow_wrap = function() { + if (this._should_wrap()) { + this.__parent.add_new_line(); + var next = this.__parent.current_line; + next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count); + next.__items = this.__items.slice(this.__wrap_point_index); + this.__items = this.__items.slice(0, this.__wrap_point_index); + + next.__character_count += this.__character_count - this.__wrap_point_character_count; + this.__character_count = this.__wrap_point_character_count; + + if (next.__items[0] === " ") { + next.__items.splice(0, 1); + next.__character_count -= 1; + } + return true; + } + return false; +}; + +OutputLine.prototype.is_empty = function() { + return this.__items.length === 0; +}; + +OutputLine.prototype.last = function() { + if (!this.is_empty()) { + return this.__items[this.__items.length - 1]; + } else { + return null; + } +}; + +OutputLine.prototype.push = function(item) { + this.__items.push(item); + var last_newline_index = item.lastIndexOf('\n'); + if (last_newline_index !== -1) { + this.__character_count = item.length - last_newline_index; + } else { + this.__character_count += item.length; + } +}; + +OutputLine.prototype.pop = function() { + var item = null; + if (!this.is_empty()) { + item = this.__items.pop(); + this.__character_count -= item.length; + } + return item; +}; + + +OutputLine.prototype._remove_indent = function() { + if (this.__indent_count > 0) { + this.__indent_count -= 1; + this.__character_count -= this.__parent.indent_size; + } +}; + +OutputLine.prototype._remove_wrap_indent = function() { + if (this.__wrap_point_indent_count > 0) { + this.__wrap_point_indent_count -= 1; + } +}; +OutputLine.prototype.trim = function() { + while (this.last() === ' ') { + this.__items.pop(); + this.__character_count -= 1; + } +}; + +OutputLine.prototype.toString = function() { + var result = ''; + if (this.is_empty()) { + if (this.__parent.indent_empty_lines) { + result = this.__parent.get_indent_string(this.__indent_count); + } + } else { + result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count); + result += this.__items.join(''); + } + return result; +}; + +function IndentStringCache(options, baseIndentString) { + this.__cache = ['']; + this.__indent_size = options.indent_size; + this.__indent_string = options.indent_char; + if (!options.indent_with_tabs) { + this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char); + } + + // Set to null to continue support for auto detection of base indent + baseIndentString = baseIndentString || ''; + if (options.indent_level > 0) { + baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string); + } + + this.__base_string = baseIndentString; + this.__base_string_length = baseIndentString.length; +} + +IndentStringCache.prototype.get_indent_size = function(indent, column) { + var result = this.__base_string_length; + column = column || 0; + if (indent < 0) { + result = 0; + } + result += indent * this.__indent_size; + result += column; + return result; +}; + +IndentStringCache.prototype.get_indent_string = function(indent_level, column) { + var result = this.__base_string; + column = column || 0; + if (indent_level < 0) { + indent_level = 0; + result = ''; + } + column += indent_level * this.__indent_size; + this.__ensure_cache(column); + result += this.__cache[column]; + return result; +}; + +IndentStringCache.prototype.__ensure_cache = function(column) { + while (column >= this.__cache.length) { + this.__add_column(); + } +}; + +IndentStringCache.prototype.__add_column = function() { + var column = this.__cache.length; + var indent = 0; + var result = ''; + if (this.__indent_size && column >= this.__indent_size) { + indent = Math.floor(column / this.__indent_size); + column -= indent * this.__indent_size; + result = new Array(indent + 1).join(this.__indent_string); + } + if (column) { + result += new Array(column + 1).join(' '); + } + + this.__cache.push(result); +}; + +function Output(options, baseIndentString) { + this.__indent_cache = new IndentStringCache(options, baseIndentString); + this.raw = false; + this._end_with_newline = options.end_with_newline; + this.indent_size = options.indent_size; + this.wrap_line_length = options.wrap_line_length; + this.indent_empty_lines = options.indent_empty_lines; + this.__lines = []; + this.previous_line = null; + this.current_line = null; + this.next_line = new OutputLine(this); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; + // initialize + this.__add_outputline(); +} + +Output.prototype.__add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = this.next_line.clone_empty(); + this.__lines.push(this.current_line); +}; + +Output.prototype.get_line_number = function() { + return this.__lines.length; +}; + +Output.prototype.get_indent_string = function(indent, column) { + return this.__indent_cache.get_indent_string(indent, column); +}; + +Output.prototype.get_indent_size = function(indent, column) { + return this.__indent_cache.get_indent_size(indent, column); +}; + +Output.prototype.is_empty = function() { + return !this.previous_line && this.current_line.is_empty(); +}; + +Output.prototype.add_new_line = function(force_newline) { + // never newline at the start of file + // otherwise, newline only if we didn't just add one or we're forced + if (this.is_empty() || + (!force_newline && this.just_added_newline())) { + return false; + } + + // if raw output is enabled, don't print additional newlines, + // but still return True as though you had + if (!this.raw) { + this.__add_outputline(); + } + return true; +}; + +Output.prototype.get_code = function(eol) { + this.trim(true); + + // handle some edge cases where the last tokens + // has text that ends with newline(s) + var last_item = this.current_line.pop(); + if (last_item) { + if (last_item[last_item.length - 1] === '\n') { + last_item = last_item.replace(/\n+$/g, ''); + } + this.current_line.push(last_item); + } + + if (this._end_with_newline) { + this.__add_outputline(); + } + + var sweet_code = this.__lines.join('\n'); + + if (eol !== '\n') { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + return sweet_code; +}; + +Output.prototype.set_wrap_point = function() { + this.current_line._set_wrap_point(); +}; + +Output.prototype.set_indent = function(indent, alignment) { + indent = indent || 0; + alignment = alignment || 0; + + // Next line stores alignment values + this.next_line.set_indent(indent, alignment); + + // Never indent your first output indent at the start of the file + if (this.__lines.length > 1) { + this.current_line.set_indent(indent, alignment); + return true; + } + + this.current_line.set_indent(); + return false; +}; + +Output.prototype.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.__add_outputline(); + } + this.current_line.set_indent(-1); + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; +}; + +Output.prototype.add_token = function(printable_token) { + this.__add_space_before_token(); + this.current_line.push(printable_token); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = this.current_line._allow_wrap(); +}; + +Output.prototype.__add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + if (!this.non_breaking_space) { + this.set_wrap_point(); + } + this.current_line.push(' '); + } +}; + +Output.prototype.remove_indent = function(index) { + var output_length = this.__lines.length; + while (index < output_length) { + this.__lines[index]._remove_indent(); + index++; + } + this.current_line._remove_wrap_indent(); +}; + +Output.prototype.trim = function(eat_newlines) { + eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + + this.current_line.trim(); + + while (eat_newlines && this.__lines.length > 1 && + this.current_line.is_empty()) { + this.__lines.pop(); + this.current_line = this.__lines[this.__lines.length - 1]; + this.current_line.trim(); + } + + this.previous_line = this.__lines.length > 1 ? + this.__lines[this.__lines.length - 2] : null; +}; + +Output.prototype.just_added_newline = function() { + return this.current_line.is_empty(); +}; + +Output.prototype.just_added_blankline = function() { + return this.is_empty() || + (this.current_line.is_empty() && this.previous_line.is_empty()); +}; + +Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) { + var index = this.__lines.length - 2; + while (index >= 0) { + var potentialEmptyLine = this.__lines[index]; + if (potentialEmptyLine.is_empty()) { + break; + } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && + potentialEmptyLine.item(-1) !== ends_with) { + this.__lines.splice(index + 1, 0, new OutputLine(this)); + this.previous_line = this.__lines[this.__lines.length - 2]; + break; + } + index--; + } +}; + +module.exports.Output = Output; + + +/***/ }), +/* 3 */, +/* 4 */, +/* 5 */, +/* 6 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Options(options, merge_child_field) { + this.raw_options = _mergeOpts(options, merge_child_field); + + // Support passing the source text back with no change + this.disabled = this._get_boolean('disabled'); + + this.eol = this._get_characters('eol', 'auto'); + this.end_with_newline = this._get_boolean('end_with_newline'); + this.indent_size = this._get_number('indent_size', 4); + this.indent_char = this._get_characters('indent_char', ' '); + this.indent_level = this._get_number('indent_level'); + + this.preserve_newlines = this._get_boolean('preserve_newlines', true); + this.max_preserve_newlines = this._get_number('max_preserve_newlines', 32786); + if (!this.preserve_newlines) { + this.max_preserve_newlines = 0; + } + + this.indent_with_tabs = this._get_boolean('indent_with_tabs', this.indent_char === '\t'); + if (this.indent_with_tabs) { + this.indent_char = '\t'; + + // indent_size behavior changed after 1.8.6 + // It used to be that indent_size would be + // set to 1 for indent_with_tabs. That is no longer needed and + // actually doesn't make sense - why not use spaces? Further, + // that might produce unexpected behavior - tabs being used + // for single-column alignment. So, when indent_with_tabs is true + // and indent_size is 1, reset indent_size to 4. + if (this.indent_size === 1) { + this.indent_size = 4; + } + } + + // Backwards compat with 1.3.x + this.wrap_line_length = this._get_number('wrap_line_length', this._get_number('max_char')); + + this.indent_empty_lines = this._get_boolean('indent_empty_lines'); + + // valid templating languages ['django', 'erb', 'handlebars', 'php', 'smarty', 'angular'] + // For now, 'auto' = all off for javascript, all except angular on for html (and inline javascript/css). + // other values ignored + this.templating = this._get_selection_list('templating', ['auto', 'none', 'angular', 'django', 'erb', 'handlebars', 'php', 'smarty'], ['auto']); +} + +Options.prototype._get_array = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || []; + if (typeof option_value === 'object') { + if (option_value !== null && typeof option_value.concat === 'function') { + result = option_value.concat(); + } + } else if (typeof option_value === 'string') { + result = option_value.split(/[^a-zA-Z0-9_\/\-]+/); + } + return result; +}; + +Options.prototype._get_boolean = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = option_value === undefined ? !!default_value : !!option_value; + return result; +}; + +Options.prototype._get_characters = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || ''; + if (typeof option_value === 'string') { + result = option_value.replace(/\\r/, '\r').replace(/\\n/, '\n').replace(/\\t/, '\t'); + } + return result; +}; + +Options.prototype._get_number = function(name, default_value) { + var option_value = this.raw_options[name]; + default_value = parseInt(default_value, 10); + if (isNaN(default_value)) { + default_value = 0; + } + var result = parseInt(option_value, 10); + if (isNaN(result)) { + result = default_value; + } + return result; +}; + +Options.prototype._get_selection = function(name, selection_list, default_value) { + var result = this._get_selection_list(name, selection_list, default_value); + if (result.length !== 1) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can only be one of the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result[0]; +}; + + +Options.prototype._get_selection_list = function(name, selection_list, default_value) { + if (!selection_list || selection_list.length === 0) { + throw new Error("Selection list cannot be empty."); + } + + default_value = default_value || [selection_list[0]]; + if (!this._is_valid_selection(default_value, selection_list)) { + throw new Error("Invalid Default Value!"); + } + + var result = this._get_array(name, default_value); + if (!this._is_valid_selection(result, selection_list)) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can contain only the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result; +}; + +Options.prototype._is_valid_selection = function(result, selection_list) { + return result.length && selection_list.length && + !result.some(function(item) { return selection_list.indexOf(item) === -1; }); +}; + + +// merges child options up with the parent options object +// Example: obj = {a: 1, b: {a: 2}} +// mergeOpts(obj, 'b') +// +// Returns: {a: 2} +function _mergeOpts(allOptions, childFieldName) { + var finalOpts = {}; + allOptions = _normalizeOpts(allOptions); + var name; + + for (name in allOptions) { + if (name !== childFieldName) { + finalOpts[name] = allOptions[name]; + } + } + + //merge in the per type settings for the childFieldName + if (childFieldName && allOptions[childFieldName]) { + for (name in allOptions[childFieldName]) { + finalOpts[name] = allOptions[childFieldName][name]; + } + } + return finalOpts; +} + +function _normalizeOpts(options) { + var convertedOpts = {}; + var key; + + for (key in options) { + var newKey = key.replace(/-/g, "_"); + convertedOpts[newKey] = options[key]; + } + return convertedOpts; +} + +module.exports.Options = Options; +module.exports.normalizeOpts = _normalizeOpts; +module.exports.mergeOpts = _mergeOpts; + + +/***/ }), +/* 7 */, +/* 8 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var regexp_has_sticky = RegExp.prototype.hasOwnProperty('sticky'); + +function InputScanner(input_string) { + this.__input = input_string || ''; + this.__input_length = this.__input.length; + this.__position = 0; +} + +InputScanner.prototype.restart = function() { + this.__position = 0; +}; + +InputScanner.prototype.back = function() { + if (this.__position > 0) { + this.__position -= 1; + } +}; + +InputScanner.prototype.hasNext = function() { + return this.__position < this.__input_length; +}; + +InputScanner.prototype.next = function() { + var val = null; + if (this.hasNext()) { + val = this.__input.charAt(this.__position); + this.__position += 1; + } + return val; +}; + +InputScanner.prototype.peek = function(index) { + var val = null; + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__input_length) { + val = this.__input.charAt(index); + } + return val; +}; + +// This is a JavaScript only helper function (not in python) +// Javascript doesn't have a match method +// and not all implementation support "sticky" flag. +// If they do not support sticky then both this.match() and this.test() method +// must get the match and check the index of the match. +// If sticky is supported and set, this method will use it. +// Otherwise it will check that global is set, and fall back to the slower method. +InputScanner.prototype.__match = function(pattern, index) { + pattern.lastIndex = index; + var pattern_match = pattern.exec(this.__input); + + if (pattern_match && !(regexp_has_sticky && pattern.sticky)) { + if (pattern_match.index !== index) { + pattern_match = null; + } + } + + return pattern_match; +}; + +InputScanner.prototype.test = function(pattern, index) { + index = index || 0; + index += this.__position; + + if (index >= 0 && index < this.__input_length) { + return !!this.__match(pattern, index); + } else { + return false; + } +}; + +InputScanner.prototype.testChar = function(pattern, index) { + // test one character regex match + var val = this.peek(index); + pattern.lastIndex = 0; + return val !== null && pattern.test(val); +}; + +InputScanner.prototype.match = function(pattern) { + var pattern_match = this.__match(pattern, this.__position); + if (pattern_match) { + this.__position += pattern_match[0].length; + } else { + pattern_match = null; + } + return pattern_match; +}; + +InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) { + var val = ''; + var match; + if (starting_pattern) { + match = this.match(starting_pattern); + if (match) { + val += match[0]; + } + } + if (until_pattern && (match || !starting_pattern)) { + val += this.readUntil(until_pattern, until_after); + } + return val; +}; + +InputScanner.prototype.readUntil = function(pattern, until_after) { + var val = ''; + var match_index = this.__position; + pattern.lastIndex = this.__position; + var pattern_match = pattern.exec(this.__input); + if (pattern_match) { + match_index = pattern_match.index; + if (until_after) { + match_index += pattern_match[0].length; + } + } else { + match_index = this.__input_length; + } + + val = this.__input.substring(this.__position, match_index); + this.__position = match_index; + return val; +}; + +InputScanner.prototype.readUntilAfter = function(pattern) { + return this.readUntil(pattern, true); +}; + +InputScanner.prototype.get_regexp = function(pattern, match_from) { + var result = null; + var flags = 'g'; + if (match_from && regexp_has_sticky) { + flags = 'y'; + } + // strings are converted to regexp + if (typeof pattern === "string" && pattern !== '') { + // result = new RegExp(pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), flags); + result = new RegExp(pattern, flags); + } else if (pattern) { + result = new RegExp(pattern.source, flags); + } + return result; +}; + +InputScanner.prototype.get_literal_regexp = function(literal_string) { + return RegExp(literal_string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); +}; + +/* css beautifier legacy helpers */ +InputScanner.prototype.peekUntilAfter = function(pattern) { + var start = this.__position; + var val = this.readUntilAfter(pattern); + this.__position = start; + return val; +}; + +InputScanner.prototype.lookBack = function(testVal) { + var start = this.__position - 1; + return start >= testVal.length && this.__input.substring(start - testVal.length, start) + .toLowerCase() === testVal; +}; + +module.exports.InputScanner = InputScanner; + + +/***/ }), +/* 9 */, +/* 10 */, +/* 11 */, +/* 12 */, +/* 13 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Directives(start_block_pattern, end_block_pattern) { + start_block_pattern = typeof start_block_pattern === 'string' ? start_block_pattern : start_block_pattern.source; + end_block_pattern = typeof end_block_pattern === 'string' ? end_block_pattern : end_block_pattern.source; + this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \w+[:]\w+)+ /.source + end_block_pattern, 'g'); + this.__directive_pattern = / (\w+)[:](\w+)/g; + + this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\sbeautify\signore:end\s/.source + end_block_pattern, 'g'); +} + +Directives.prototype.get_directives = function(text) { + if (!text.match(this.__directives_block_pattern)) { + return null; + } + + var directives = {}; + this.__directive_pattern.lastIndex = 0; + var directive_match = this.__directive_pattern.exec(text); + + while (directive_match) { + directives[directive_match[1]] = directive_match[2]; + directive_match = this.__directive_pattern.exec(text); + } + + return directives; +}; + +Directives.prototype.readIgnored = function(input) { + return input.readUntilAfter(this.__directives_end_ignore_pattern); +}; + + +module.exports.Directives = Directives; + + +/***/ }), +/* 14 */, +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Beautifier = (__webpack_require__(16).Beautifier), + Options = (__webpack_require__(17).Options); + +function css_beautify(source_text, options) { + var beautifier = new Beautifier(source_text, options); + return beautifier.beautify(); +} + +module.exports = css_beautify; +module.exports.defaultOptions = function() { + return new Options(); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Options = (__webpack_require__(17).Options); +var Output = (__webpack_require__(2).Output); +var InputScanner = (__webpack_require__(8).InputScanner); +var Directives = (__webpack_require__(13).Directives); + +var directives_core = new Directives(/\/\*/, /\*\//); + +var lineBreak = /\r\n|[\r\n]/; +var allLineBreaks = /\r\n|[\r\n]/g; + +// tokenizer +var whitespaceChar = /\s/; +var whitespacePattern = /(?:\s|\n)+/g; +var block_comment_pattern = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g; +var comment_pattern = /\/\/(?:[^\n\r\u2028\u2029]*)/g; + +function Beautifier(source_text, options) { + this._source_text = source_text || ''; + // Allow the setting of language/file-type specific options + // with inheritance of overall settings + this._options = new Options(options); + this._ch = null; + this._input = null; + + // https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule + this.NESTED_AT_RULE = { + "page": true, + "font-face": true, + "keyframes": true, + // also in CONDITIONAL_GROUP_RULE below + "media": true, + "supports": true, + "document": true + }; + this.CONDITIONAL_GROUP_RULE = { + "media": true, + "supports": true, + "document": true + }; + this.NON_SEMICOLON_NEWLINE_PROPERTY = [ + "grid-template-areas", + "grid-template" + ]; + +} + +Beautifier.prototype.eatString = function(endChars) { + var result = ''; + this._ch = this._input.next(); + while (this._ch) { + result += this._ch; + if (this._ch === "\\") { + result += this._input.next(); + } else if (endChars.indexOf(this._ch) !== -1 || this._ch === "\n") { + break; + } + this._ch = this._input.next(); + } + return result; +}; + +// Skips any white space in the source text from the current position. +// When allowAtLeastOneNewLine is true, will output new lines for each +// newline character found; if the user has preserve_newlines off, only +// the first newline will be output +Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) { + var result = whitespaceChar.test(this._input.peek()); + var newline_count = 0; + while (whitespaceChar.test(this._input.peek())) { + this._ch = this._input.next(); + if (allowAtLeastOneNewLine && this._ch === '\n') { + if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) { + newline_count++; + this._output.add_new_line(true); + } + } + } + return result; +}; + +// Nested pseudo-class if we are insideRule +// and the next special character found opens +// a new block +Beautifier.prototype.foundNestedPseudoClass = function() { + var openParen = 0; + var i = 1; + var ch = this._input.peek(i); + while (ch) { + if (ch === "{") { + return true; + } else if (ch === '(') { + // pseudoclasses can contain () + openParen += 1; + } else if (ch === ')') { + if (openParen === 0) { + return false; + } + openParen -= 1; + } else if (ch === ";" || ch === "}") { + return false; + } + i++; + ch = this._input.peek(i); + } + return false; +}; + +Beautifier.prototype.print_string = function(output_string) { + this._output.set_indent(this._indentLevel); + this._output.non_breaking_space = true; + this._output.add_token(output_string); +}; + +Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) { + if (isAfterSpace) { + this._output.space_before_token = true; + } +}; + +Beautifier.prototype.indent = function() { + this._indentLevel++; +}; + +Beautifier.prototype.outdent = function() { + if (this._indentLevel > 0) { + this._indentLevel--; + } +}; + +/*_____________________--------------------_____________________*/ + +Beautifier.prototype.beautify = function() { + if (this._options.disabled) { + return this._source_text; + } + + var source_text = this._source_text; + var eol = this._options.eol; + if (eol === 'auto') { + eol = '\n'; + if (source_text && lineBreak.test(source_text || '')) { + eol = source_text.match(lineBreak)[0]; + } + } + + + // HACK: newline parsing inconsistent. This brute force normalizes the this._input. + source_text = source_text.replace(allLineBreaks, '\n'); + + // reset + var baseIndentString = source_text.match(/^[\t ]*/)[0]; + + this._output = new Output(this._options, baseIndentString); + this._input = new InputScanner(source_text); + this._indentLevel = 0; + this._nestedLevel = 0; + + this._ch = null; + var parenLevel = 0; + + var insideRule = false; + // This is the value side of a property value pair (blue in the following ex) + // label { content: blue } + var insidePropertyValue = false; + var enteringConditionalGroup = false; + var insideNonNestedAtRule = false; + var insideScssMap = false; + var topCharacter = this._ch; + var insideNonSemiColonValues = false; + var whitespace; + var isAfterSpace; + var previous_ch; + + while (true) { + whitespace = this._input.read(whitespacePattern); + isAfterSpace = whitespace !== ''; + previous_ch = topCharacter; + this._ch = this._input.next(); + if (this._ch === '\\' && this._input.hasNext()) { + this._ch += this._input.next(); + } + topCharacter = this._ch; + + if (!this._ch) { + break; + } else if (this._ch === '/' && this._input.peek() === '*') { + // /* css comment */ + // Always start block comments on a new line. + // This handles scenarios where a block comment immediately + // follows a property definition on the same line or where + // minified code is being beautified. + this._output.add_new_line(); + this._input.back(); + + var comment = this._input.read(block_comment_pattern); + + // Handle ignore directive + var directives = directives_core.get_directives(comment); + if (directives && directives.ignore === 'start') { + comment += directives_core.readIgnored(this._input); + } + + this.print_string(comment); + + // Ensures any new lines following the comment are preserved + this.eatWhitespace(true); + + // Block comments are followed by a new line so they don't + // share a line with other properties + this._output.add_new_line(); + } else if (this._ch === '/' && this._input.peek() === '/') { + // // single line comment + // Preserves the space before a comment + // on the same line as a rule + this._output.space_before_token = true; + this._input.back(); + this.print_string(this._input.read(comment_pattern)); + + // Ensures any new lines following the comment are preserved + this.eatWhitespace(true); + } else if (this._ch === '$') { + this.preserveSingleSpace(isAfterSpace); + + this.print_string(this._ch); + + // strip trailing space, if present, for hash property checks + var variable = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); + + if (variable.match(/[ :]$/)) { + // we have a variable or pseudo-class, add it and insert one space before continuing + variable = this.eatString(": ").replace(/\s+$/, ''); + this.print_string(variable); + this._output.space_before_token = true; + } + + // might be sass variable + if (parenLevel === 0 && variable.indexOf(':') !== -1) { + insidePropertyValue = true; + this.indent(); + } + } else if (this._ch === '@') { + this.preserveSingleSpace(isAfterSpace); + + // deal with less property mixins @{...} + if (this._input.peek() === '{') { + this.print_string(this._ch + this.eatString('}')); + } else { + this.print_string(this._ch); + + // strip trailing space, if present, for hash property checks + var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); + + if (variableOrRule.match(/[ :]$/)) { + // we have a variable or pseudo-class, add it and insert one space before continuing + variableOrRule = this.eatString(": ").replace(/\s+$/, ''); + this.print_string(variableOrRule); + this._output.space_before_token = true; + } + + // might be less variable + if (parenLevel === 0 && variableOrRule.indexOf(':') !== -1) { + insidePropertyValue = true; + this.indent(); + + // might be a nesting at-rule + } else if (variableOrRule in this.NESTED_AT_RULE) { + this._nestedLevel += 1; + if (variableOrRule in this.CONDITIONAL_GROUP_RULE) { + enteringConditionalGroup = true; + } + + // might be a non-nested at-rule + } else if (parenLevel === 0 && !insidePropertyValue) { + insideNonNestedAtRule = true; + } + } + } else if (this._ch === '#' && this._input.peek() === '{') { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch + this.eatString('}')); + } else if (this._ch === '{') { + if (insidePropertyValue) { + insidePropertyValue = false; + this.outdent(); + } + + // non nested at rule becomes nested + insideNonNestedAtRule = false; + + // when entering conditional groups, only rulesets are allowed + if (enteringConditionalGroup) { + enteringConditionalGroup = false; + insideRule = (this._indentLevel >= this._nestedLevel); + } else { + // otherwise, declarations are also allowed + insideRule = (this._indentLevel >= this._nestedLevel - 1); + } + if (this._options.newline_between_rules && insideRule) { + if (this._output.previous_line && this._output.previous_line.item(-1) !== '{') { + this._output.ensure_empty_line_above('/', ','); + } + } + + this._output.space_before_token = true; + + // The difference in print_string and indent order is necessary to indent the '{' correctly + if (this._options.brace_style === 'expand') { + this._output.add_new_line(); + this.print_string(this._ch); + this.indent(); + this._output.set_indent(this._indentLevel); + } else { + // inside mixin and first param is object + if (previous_ch === '(') { + this._output.space_before_token = false; + } else if (previous_ch !== ',') { + this.indent(); + } + this.print_string(this._ch); + } + + this.eatWhitespace(true); + this._output.add_new_line(); + } else if (this._ch === '}') { + this.outdent(); + this._output.add_new_line(); + if (previous_ch === '{') { + this._output.trim(true); + } + + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + this.print_string(this._ch); + insideRule = false; + if (this._nestedLevel) { + this._nestedLevel--; + } + + this.eatWhitespace(true); + this._output.add_new_line(); + + if (this._options.newline_between_rules && !this._output.just_added_blankline()) { + if (this._input.peek() !== '}') { + this._output.add_new_line(true); + } + } + if (this._input.peek() === ')') { + this._output.trim(true); + if (this._options.brace_style === "expand") { + this._output.add_new_line(true); + } + } + } else if (this._ch === ":") { + + for (var i = 0; i < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; i++) { + if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[i])) { + insideNonSemiColonValues = true; + break; + } + } + + if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !insideNonNestedAtRule && parenLevel === 0) { + // 'property: value' delimiter + // which could be in a conditional group query + + this.print_string(':'); + if (!insidePropertyValue) { + insidePropertyValue = true; + this._output.space_before_token = true; + this.eatWhitespace(true); + this.indent(); + } + } else { + // sass/less parent reference don't use a space + // sass nested pseudo-class don't use a space + + // preserve space before pseudoclasses/pseudoelements, as it means "in any child" + if (this._input.lookBack(" ")) { + this._output.space_before_token = true; + } + if (this._input.peek() === ":") { + // pseudo-element + this._ch = this._input.next(); + this.print_string("::"); + } else { + // pseudo-class + this.print_string(':'); + } + } + } else if (this._ch === '"' || this._ch === '\'') { + var preserveQuoteSpace = previous_ch === '"' || previous_ch === '\''; + this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace); + this.print_string(this._ch + this.eatString(this._ch)); + this.eatWhitespace(true); + } else if (this._ch === ';') { + insideNonSemiColonValues = false; + if (parenLevel === 0) { + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + insideNonNestedAtRule = false; + this.print_string(this._ch); + this.eatWhitespace(true); + + // This maintains single line comments on the same + // line. Block comments are also affected, but + // a new line is always output before one inside + // that section + if (this._input.peek() !== '/') { + this._output.add_new_line(); + } + } else { + this.print_string(this._ch); + this.eatWhitespace(true); + this._output.space_before_token = true; + } + } else if (this._ch === '(') { // may be a url + if (this._input.lookBack("url")) { + this.print_string(this._ch); + this.eatWhitespace(); + parenLevel++; + this.indent(); + this._ch = this._input.next(); + if (this._ch === ')' || this._ch === '"' || this._ch === '\'') { + this._input.back(); + } else if (this._ch) { + this.print_string(this._ch + this.eatString(')')); + if (parenLevel) { + parenLevel--; + this.outdent(); + } + } + } else { + var space_needed = false; + if (this._input.lookBack("with")) { + // look back is not an accurate solution, we need tokens to confirm without whitespaces + space_needed = true; + } + this.preserveSingleSpace(isAfterSpace || space_needed); + this.print_string(this._ch); + + // handle scss/sass map + if (insidePropertyValue && previous_ch === "$" && this._options.selector_separator_newline) { + this._output.add_new_line(); + insideScssMap = true; + } else { + this.eatWhitespace(); + parenLevel++; + this.indent(); + } + } + } else if (this._ch === ')') { + if (parenLevel) { + parenLevel--; + this.outdent(); + } + if (insideScssMap && this._input.peek() === ";" && this._options.selector_separator_newline) { + insideScssMap = false; + this.outdent(); + this._output.add_new_line(); + } + this.print_string(this._ch); + } else if (this._ch === ',') { + this.print_string(this._ch); + this.eatWhitespace(true); + if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) { + this._output.add_new_line(); + } else { + this._output.space_before_token = true; + } + } else if ((this._ch === '>' || this._ch === '+' || this._ch === '~') && !insidePropertyValue && parenLevel === 0) { + //handle combinator spacing + if (this._options.space_around_combinator) { + this._output.space_before_token = true; + this.print_string(this._ch); + this._output.space_before_token = true; + } else { + this.print_string(this._ch); + this.eatWhitespace(); + // squash extra whitespace + if (this._ch && whitespaceChar.test(this._ch)) { + this._ch = ''; + } + } + } else if (this._ch === ']') { + this.print_string(this._ch); + } else if (this._ch === '[') { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch); + } else if (this._ch === '=') { // no whitespace before or after + this.eatWhitespace(); + this.print_string('='); + if (whitespaceChar.test(this._ch)) { + this._ch = ''; + } + } else if (this._ch === '!' && !this._input.lookBack("\\")) { // !important + this._output.space_before_token = true; + this.print_string(this._ch); + } else { + var preserveAfterSpace = previous_ch === '"' || previous_ch === '\''; + this.preserveSingleSpace(preserveAfterSpace || isAfterSpace); + this.print_string(this._ch); + + if (!this._output.just_added_newline() && this._input.peek() === '\n' && insideNonSemiColonValues) { + this._output.add_new_line(); + } + } + } + + var sweetCode = this._output.get_code(eol); + + return sweetCode; +}; + +module.exports.Beautifier = Beautifier; + + +/***/ }), +/* 17 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var BaseOptions = (__webpack_require__(6).Options); + +function Options(options) { + BaseOptions.call(this, options, 'css'); + + this.selector_separator_newline = this._get_boolean('selector_separator_newline', true); + this.newline_between_rules = this._get_boolean('newline_between_rules', true); + var space_around_selector_separator = this._get_boolean('space_around_selector_separator'); + this.space_around_combinator = this._get_boolean('space_around_combinator') || space_around_selector_separator; + + var brace_style_split = this._get_selection_list('brace_style', ['collapse', 'expand', 'end-expand', 'none', 'preserve-inline']); + this.brace_style = 'collapse'; + for (var bs = 0; bs < brace_style_split.length; bs++) { + if (brace_style_split[bs] !== 'expand') { + // default to collapse, as only collapse|expand is implemented for now + this.brace_style = 'collapse'; + } else { + this.brace_style = brace_style_split[bs]; + } + } +} +Options.prototype = new BaseOptions(); + + + +module.exports.Options = Options; + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__(15); +/******/ legacy_beautify_css$1 = __webpack_exports__; +/******/ +/******/ })() +; + +var css_beautify$1 = legacy_beautify_css$1; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function format$1(document, range, options) { + let value = document.getText(); + let includesEnd = true; + let initialIndentLevel = 0; + let inRule = false; + const tabSize = options.tabSize || 4; + if (range) { + let startOffset = document.offsetAt(range.start); + // include all leading whitespace iff at the beginning of the line + let extendedStart = startOffset; + while (extendedStart > 0 && isWhitespace$1(value, extendedStart - 1)) { + extendedStart--; + } + if (extendedStart === 0 || isEOL$2(value, extendedStart - 1)) { + startOffset = extendedStart; + } + else { + // else keep at least one whitespace + if (extendedStart < startOffset) { + startOffset = extendedStart + 1; + } + } + // include all following whitespace until the end of the line + let endOffset = document.offsetAt(range.end); + let extendedEnd = endOffset; + while (extendedEnd < value.length && isWhitespace$1(value, extendedEnd)) { + extendedEnd++; + } + if (extendedEnd === value.length || isEOL$2(value, extendedEnd)) { + endOffset = extendedEnd; + } + range = Range$a.create(document.positionAt(startOffset), document.positionAt(endOffset)); + // Test if inside a rule + inRule = isInRule(value, startOffset); + includesEnd = endOffset === value.length; + value = value.substring(startOffset, endOffset); + if (startOffset !== 0) { + const startOfLineOffset = document.offsetAt(Position.create(range.start.line, 0)); + initialIndentLevel = computeIndentLevel$1(document.getText(), startOfLineOffset, options); + } + if (inRule) { + value = `{\n${trimLeft$1(value)}`; + } + } + else { + range = Range$a.create(Position.create(0, 0), document.positionAt(value.length)); + } + const cssOptions = { + indent_size: tabSize, + indent_char: options.insertSpaces ? ' ' : '\t', + end_with_newline: includesEnd && getFormatOption$1(options, 'insertFinalNewline', false), + selector_separator_newline: getFormatOption$1(options, 'newlineBetweenSelectors', true), + newline_between_rules: getFormatOption$1(options, 'newlineBetweenRules', true), + space_around_selector_separator: getFormatOption$1(options, 'spaceAroundSelectorSeparator', false), + brace_style: getFormatOption$1(options, 'braceStyle', 'collapse'), + indent_empty_lines: getFormatOption$1(options, 'indentEmptyLines', false), + max_preserve_newlines: getFormatOption$1(options, 'maxPreserveNewLines', undefined), + preserve_newlines: getFormatOption$1(options, 'preserveNewLines', true), + wrap_line_length: getFormatOption$1(options, 'wrapLineLength', undefined), + eol: '\n' + }; + let result = css_beautify$1(value, cssOptions); + if (inRule) { + result = trimLeft$1(result.substring(2)); + } + if (initialIndentLevel > 0) { + const indent = options.insertSpaces ? repeat$1(' ', tabSize * initialIndentLevel) : repeat$1('\t', initialIndentLevel); + result = result.split('\n').join('\n' + indent); + if (range.start.character === 0) { + result = indent + result; // keep the indent + } + } + return [{ + range: range, + newText: result + }]; +} +function trimLeft$1(str) { + return str.replace(/^\s+/, ''); +} +const _CUL = '{'.charCodeAt(0); +const _CUR = '}'.charCodeAt(0); +function isInRule(str, offset) { + while (offset >= 0) { + const ch = str.charCodeAt(offset); + if (ch === _CUL) { + return true; + } + else if (ch === _CUR) { + return false; + } + offset--; + } + return false; +} +function getFormatOption$1(options, key, dflt) { + if (options && options.hasOwnProperty(key)) { + const value = options[key]; + if (value !== null) { + return value; + } + } + return dflt; +} +function computeIndentLevel$1(content, offset, options) { + let i = offset; + let nChars = 0; + const tabSize = options.tabSize || 4; + while (i < content.length) { + const ch = content.charAt(i); + if (ch === ' ') { + nChars++; + } + else if (ch === '\t') { + nChars += tabSize; + } + else { + break; + } + i++; + } + return Math.floor(nChars / tabSize); +} +function isEOL$2(text, offset) { + return '\r\n'.indexOf(text.charAt(offset)) !== -1; +} +function isWhitespace$1(text, offset) { + return ' \t'.indexOf(text.charAt(offset)) !== -1; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// file generated from @vscode/web-custom-data NPM package +const cssData = { + "version": 1.1, + "properties": [ + { + "name": "additive-symbols", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "[ <integer> && <symbol> ]#", + "relevance": 50, + "description": "@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.", + "restrictions": [ + "integer", + "string", + "image", + "identifier" + ] + }, + { + "name": "align-content", + "browsers": [ + "E12", + "FF28", + "S9", + "C29", + "IE11", + "O16" + ], + "values": [ + { + "name": "center", + "description": "Lines are packed toward the center of the flex container." + }, + { + "name": "flex-end", + "description": "Lines are packed toward the end of the flex container." + }, + { + "name": "flex-start", + "description": "Lines are packed toward the start of the flex container." + }, + { + "name": "space-around", + "description": "Lines are evenly distributed in the flex container, with half-size spaces on either end." + }, + { + "name": "space-between", + "description": "Lines are evenly distributed in the flex container." + }, + { + "name": "stretch", + "description": "Lines stretch to take up the remaining space." + }, + { + "name": "start" + }, + { + "name": "end" + }, + { + "name": "normal" + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "space-around" + }, + { + "name": "space-between" + }, + { + "name": "space-evenly" + }, + { + "name": "stretch" + }, + { + "name": "safe" + }, + { + "name": "unsafe" + } + ], + "syntax": "normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>", + "relevance": 66, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/align-content" + } + ], + "description": "Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "align-items", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O16" + ], + "values": [ + { + "name": "baseline", + "description": "If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item's margin box is centered in the cross axis within the line." + }, + { + "name": "flex-end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "flex-start", + "description": "The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "normal" + }, + { + "name": "start" + }, + { + "name": "end" + }, + { + "name": "self-start" + }, + { + "name": "self-end" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "stretch" + }, + { + "name": "safe" + }, + { + "name": "unsafe" + } + ], + "syntax": "normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]", + "relevance": 87, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/align-items" + } + ], + "description": "Aligns flex items along the cross axis of the current line of the flex container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "justify-items", + "browsers": [ + "E12", + "FF20", + "S9", + "C52", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "normal" + }, + { + "name": "end" + }, + { + "name": "start" + }, + { + "name": "flex-end", + "description": "\"Flex items are packed toward the end of the line.\"" + }, + { + "name": "flex-start", + "description": "\"Flex items are packed toward the start of the line.\"" + }, + { + "name": "self-end", + "description": "The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis." + }, + { + "name": "self-start", + "description": "The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.." + }, + { + "name": "center", + "description": "The items are packed flush to each other toward the center of the of the alignment container." + }, + { + "name": "left" + }, + { + "name": "right" + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "safe" + }, + { + "name": "unsafe" + }, + { + "name": "legacy" + } + ], + "syntax": "normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/justify-items" + } + ], + "description": "Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis", + "restrictions": [ + "enum" + ] + }, + { + "name": "justify-self", + "browsers": [ + "E16", + "FF45", + "S10.1", + "C57", + "IE10", + "O44" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "normal" + }, + { + "name": "end" + }, + { + "name": "start" + }, + { + "name": "flex-end", + "description": "\"Flex items are packed toward the end of the line.\"" + }, + { + "name": "flex-start", + "description": "\"Flex items are packed toward the start of the line.\"" + }, + { + "name": "self-end", + "description": "The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis." + }, + { + "name": "self-start", + "description": "The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.." + }, + { + "name": "center", + "description": "The items are packed flush to each other toward the center of the of the alignment container." + }, + { + "name": "left" + }, + { + "name": "right" + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "save" + }, + { + "name": "unsave" + } + ], + "syntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/justify-self" + } + ], + "description": "Defines the way of justifying a box inside its container along the appropriate axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "align-self", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE10", + "O12.1" + ], + "values": [ + { + "name": "auto", + "description": "Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself." + }, + { + "name": "normal" + }, + { + "name": "self-end" + }, + { + "name": "self-start" + }, + { + "name": "baseline", + "description": "If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item's margin box is centered in the cross axis within the line." + }, + { + "name": "flex-end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "flex-start", + "description": "The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "safe" + }, + { + "name": "unsafe" + } + ], + "syntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>", + "relevance": 72, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/align-self" + } + ], + "description": "Allows the default alignment along the cross axis to be overridden for individual flex items.", + "restrictions": [ + "enum" + ] + }, + { + "name": "all", + "browsers": [ + "E79", + "FF27", + "S9.1", + "C37", + "O24" + ], + "values": [], + "syntax": "initial | inherit | unset | revert | revert-layer", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/all" + } + ], + "description": "Shorthand that resets all properties except 'direction' and 'unicode-bidi'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "alt", + "browsers": [ + "S9" + ], + "values": [], + "relevance": 50, + "description": "Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.", + "restrictions": [ + "string", + "enum" + ] + }, + { + "name": "animation", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + }, + { + "name": "none", + "description": "No animation is performed" + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "syntax": "<single-animation>#", + "relevance": 82, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation" + } + ], + "description": "Shorthand property combines six of the animation properties into a single property.", + "restrictions": [ + "time", + "timing-function", + "enum", + "identifier", + "number" + ] + }, + { + "name": "animation-delay", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "syntax": "<time>#", + "relevance": 66, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-delay" + } + ], + "description": "Defines when the animation will start.", + "restrictions": [ + "time" + ] + }, + { + "name": "animation-direction", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "syntax": "<single-animation-direction>#", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-direction" + } + ], + "description": "Defines whether or not the animation should play in reverse on alternate cycles.", + "restrictions": [ + "enum" + ] + }, + { + "name": "animation-duration", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "syntax": "<time>#", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-duration" + } + ], + "description": "Defines the length of time that an animation takes to complete one cycle.", + "restrictions": [ + "time" + ] + }, + { + "name": "animation-fill-mode", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "none", + "description": "There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes." + } + ], + "syntax": "<single-animation-fill-mode>#", + "relevance": 64, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode" + } + ], + "description": "Defines what values are applied by the animation outside the time it is executing.", + "restrictions": [ + "enum" + ] + }, + { + "name": "animation-iteration-count", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + } + ], + "syntax": "<single-animation-iteration-count>#", + "relevance": 64, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count" + } + ], + "description": "Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.", + "restrictions": [ + "number", + "enum" + ] + }, + { + "name": "animation-name", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "none", + "description": "No animation is performed" + } + ], + "syntax": "[ none | <keyframes-name> ]#", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-name" + } + ], + "description": "Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.", + "restrictions": [ + "identifier", + "enum" + ] + }, + { + "name": "animation-play-state", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "values": [ + { + "name": "paused", + "description": "A running animation will be paused." + }, + { + "name": "running", + "description": "Resume playback of a paused animation." + } + ], + "syntax": "<single-animation-play-state>#", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-play-state" + } + ], + "description": "Defines whether the animation is running or paused.", + "restrictions": [ + "enum" + ] + }, + { + "name": "animation-timing-function", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "syntax": "<easing-function>#", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-timing-function" + } + ], + "description": "Describes how the animation will progress over one cycle of its duration.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "backface-visibility", + "browsers": [ + "E12", + "FF16", + "S15.4", + "C36", + "IE10", + "O23" + ], + "values": [ + { + "name": "hidden", + "description": "Back side is hidden." + }, + { + "name": "visible", + "description": "Back side is visible." + } + ], + "syntax": "visible | hidden", + "relevance": 59, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/backface-visibility" + } + ], + "description": "Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.", + "restrictions": [ + "enum" + ] + }, + { + "name": "background", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "fixed", + "description": "The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page." + }, + { + "name": "local", + "description": "The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents." + }, + { + "name": "none", + "description": "A value of 'none' counts as an image layer but draws nothing." + }, + { + "name": "scroll", + "description": "The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)" + } + ], + "syntax": "[ <bg-layer> , ]* <final-bg-layer>", + "relevance": 92, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background" + } + ], + "description": "Shorthand property for setting most background properties at the same place in the style sheet.", + "restrictions": [ + "enum", + "image", + "color", + "position", + "length", + "repeat", + "percentage", + "box" + ] + }, + { + "name": "background-attachment", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "fixed", + "description": "The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page." + }, + { + "name": "local", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "description": "The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents." + }, + { + "name": "scroll", + "description": "The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)" + } + ], + "syntax": "<attachment>#", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-attachment" + } + ], + "description": "Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').", + "restrictions": [ + "enum" + ] + }, + { + "name": "background-blend-mode", + "browsers": [ + "E79", + "FF30", + "S8", + "C35", + "O22" + ], + "values": [ + { + "name": "normal", + "description": "Default attribute which specifies no blending" + }, + { + "name": "multiply", + "description": "The source color is multiplied by the destination color and replaces the destination." + }, + { + "name": "screen", + "description": "Multiplies the complements of the backdrop and source color values, then complements the result." + }, + { + "name": "overlay", + "description": "Multiplies or screens the colors, depending on the backdrop color value." + }, + { + "name": "darken", + "description": "Selects the darker of the backdrop and source colors." + }, + { + "name": "lighten", + "description": "Selects the lighter of the backdrop and source colors." + }, + { + "name": "color-dodge", + "description": "Brightens the backdrop color to reflect the source color." + }, + { + "name": "color-burn", + "description": "Darkens the backdrop color to reflect the source color." + }, + { + "name": "hard-light", + "description": "Multiplies or screens the colors, depending on the source color value." + }, + { + "name": "soft-light", + "description": "Darkens or lightens the colors, depending on the source color value." + }, + { + "name": "difference", + "description": "Subtracts the darker of the two constituent colors from the lighter color.." + }, + { + "name": "exclusion", + "description": "Produces an effect similar to that of the Difference mode but lower in contrast." + }, + { + "name": "hue", + "browsers": [ + "E79", + "FF30", + "S8", + "C35", + "O22" + ], + "description": "Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color." + }, + { + "name": "saturation", + "browsers": [ + "E79", + "FF30", + "S8", + "C35", + "O22" + ], + "description": "Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color." + }, + { + "name": "color", + "browsers": [ + "E79", + "FF30", + "S8", + "C35", + "O22" + ], + "description": "Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color." + }, + { + "name": "luminosity", + "browsers": [ + "E79", + "FF30", + "S8", + "C35", + "O22" + ], + "description": "Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color." + } + ], + "syntax": "<blend-mode>#", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-blend-mode" + } + ], + "description": "Defines the blending mode of each background layer.", + "restrictions": [ + "enum" + ] + }, + { + "name": "background-clip", + "browsers": [ + "E12", + "FF4", + "S5", + "C1", + "IE9", + "O10.5" + ], + "syntax": "<box>#", + "relevance": 67, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-clip" + } + ], + "description": "Determines the background painting area.", + "restrictions": [ + "box" + ] + }, + { + "name": "background-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<color>", + "relevance": 93, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-color" + } + ], + "description": "Sets the background color of an element.", + "restrictions": [ + "color" + ] + }, + { + "name": "background-image", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "none", + "description": "Counts as an image layer but draws nothing." + } + ], + "syntax": "<bg-image>#", + "relevance": 86, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-image" + } + ], + "description": "Sets the background image(s) of an element.", + "restrictions": [ + "image", + "enum" + ] + }, + { + "name": "background-origin", + "browsers": [ + "E12", + "FF4", + "S3", + "C1", + "IE9", + "O10.5" + ], + "syntax": "<box>#", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-origin" + } + ], + "description": "For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).", + "restrictions": [ + "box" + ] + }, + { + "name": "background-position", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<bg-position>#", + "relevance": 85, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-position" + } + ], + "description": "Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "background-position-x", + "browsers": [ + "E12", + "FF49", + "S1", + "C1", + "IE6", + "O15" + ], + "values": [ + { + "name": "center", + "description": "Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is." + }, + { + "name": "left", + "description": "Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset." + }, + { + "name": "right", + "description": "Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset." + } + ], + "syntax": "[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-position-x" + } + ], + "description": "If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "background-position-y", + "browsers": [ + "E12", + "FF49", + "S1", + "C1", + "IE6", + "O15" + ], + "values": [ + { + "name": "bottom", + "description": "Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset." + }, + { + "name": "center", + "description": "Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is." + }, + { + "name": "top", + "description": "Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset." + } + ], + "syntax": "[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-position-y" + } + ], + "description": "If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "background-repeat", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [], + "syntax": "<repeat-style>#", + "relevance": 84, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-repeat" + } + ], + "description": "Specifies how background images are tiled after they have been sized and positioned.", + "restrictions": [ + "repeat" + ] + }, + { + "name": "background-size", + "browsers": [ + "E12", + "FF4", + "S5", + "C3", + "IE9", + "O10" + ], + "values": [ + { + "name": "auto", + "description": "Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%." + }, + { + "name": "contain", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area." + }, + { + "name": "cover", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area." + } + ], + "syntax": "<bg-size>#", + "relevance": 84, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/background-size" + } + ], + "description": "Specifies the size of the background images.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "behavior", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "IE only. Used to extend behaviors of the browser.", + "restrictions": [ + "url" + ] + }, + { + "name": "block-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "Depends on the values of other properties." + } + ], + "syntax": "<'width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/block-size" + } + ], + "description": "Size of an element in the direction opposite that of the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width> || <line-style> || <color>", + "relevance": 94, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border" + } + ], + "description": "Shorthand property for setting border width, style, and color.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-block-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-end" + } + ], + "description": "Logical 'border-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-block-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-start" + } + ], + "description": "Logical 'border-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-block-end-color", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-color'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-end-color" + } + ], + "description": "Logical 'border-bottom-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-block-start-color", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-color'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-start-color" + } + ], + "description": "Logical 'border-top-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-block-end-style", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-style'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-end-style" + } + ], + "description": "Logical 'border-bottom-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-block-start-style", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-style'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-start-style" + } + ], + "description": "Logical 'border-top-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-block-end-width", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-end-width" + } + ], + "description": "Logical 'border-bottom-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-block-start-width", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-start-width" + } + ], + "description": "Logical 'border-top-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-bottom", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width> || <line-style> || <color>", + "relevance": 86, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom" + } + ], + "description": "Shorthand property for setting border width, style and color.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-bottom-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<'border-top-color'>", + "relevance": 69, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-color" + } + ], + "description": "Sets the color of the bottom border.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-bottom-left-radius", + "browsers": [ + "E12", + "FF4", + "S5", + "C4", + "IE9", + "O10.5" + ], + "syntax": "<length-percentage>{1,2}", + "relevance": 73, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius" + } + ], + "description": "Defines the radii of the bottom left outer border edge.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border-bottom-right-radius", + "browsers": [ + "E12", + "FF4", + "S5", + "C4", + "IE9", + "O10.5" + ], + "syntax": "<length-percentage>{1,2}", + "relevance": 73, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius" + } + ], + "description": "Defines the radii of the bottom right outer border edge.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border-bottom-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O9.2" + ], + "syntax": "<line-style>", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-style" + } + ], + "description": "Sets the style of the bottom border.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-bottom-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width>", + "relevance": 62, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-width" + } + ], + "description": "Sets the thickness of the bottom border.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-collapse", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE5", + "O4" + ], + "values": [ + { + "name": "collapse", + "description": "Selects the collapsing borders model." + }, + { + "name": "separate", + "description": "Selects the separated borders border model." + } + ], + "syntax": "collapse | separate", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-collapse" + } + ], + "description": "Selects a table's border model.", + "restrictions": [ + "enum" + ] + }, + { + "name": "border-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [], + "syntax": "<color>{1,4}", + "relevance": 86, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-color" + } + ], + "description": "The color of the border around all four edges of an element.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-image", + "browsers": [ + "E12", + "FF15", + "S6", + "C16", + "IE11", + "O11" + ], + "values": [ + { + "name": "auto", + "description": "If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead." + }, + { + "name": "fill", + "description": "Causes the middle part of the border-image to be preserved." + }, + { + "name": "none", + "description": "Use the border styles." + }, + { + "name": "repeat", + "description": "The image is tiled (repeated) to fill the area." + }, + { + "name": "round", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does." + }, + { + "name": "space", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles." + }, + { + "name": "stretch", + "description": "The image is stretched to fill the area." + }, + { + "name": "url()" + } + ], + "syntax": "<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image" + } + ], + "description": "Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "percentage", + "number", + "url", + "enum" + ] + }, + { + "name": "border-image-outset", + "browsers": [ + "E12", + "FF15", + "S6", + "C15", + "IE11", + "O15" + ], + "syntax": "[ <length> | <number> ]{1,4}", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image-outset" + } + ], + "description": "The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.", + "restrictions": [ + "length", + "number" + ] + }, + { + "name": "border-image-repeat", + "browsers": [ + "E12", + "FF15", + "S6", + "C15", + "IE11", + "O15" + ], + "values": [ + { + "name": "repeat", + "description": "The image is tiled (repeated) to fill the area." + }, + { + "name": "round", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does." + }, + { + "name": "space", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles." + }, + { + "name": "stretch", + "description": "The image is stretched to fill the area." + } + ], + "syntax": "[ stretch | repeat | round | space ]{1,2}", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image-repeat" + } + ], + "description": "Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.", + "restrictions": [ + "enum" + ] + }, + { + "name": "border-image-slice", + "browsers": [ + "E12", + "FF15", + "S6", + "C15", + "IE11", + "O15" + ], + "values": [ + { + "name": "fill", + "description": "Causes the middle part of the border-image to be preserved." + } + ], + "syntax": "<number-percentage>{1,4} && fill?", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image-slice" + } + ], + "description": "Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.", + "restrictions": [ + "number", + "percentage" + ] + }, + { + "name": "border-image-source", + "browsers": [ + "E12", + "FF15", + "S6", + "C15", + "IE11", + "O15" + ], + "values": [ + { + "name": "none", + "description": "Use the border styles." + } + ], + "syntax": "none | <image>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image-source" + } + ], + "description": "Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.", + "restrictions": [ + "image" + ] + }, + { + "name": "border-image-width", + "browsers": [ + "E12", + "FF13", + "S6", + "C15", + "IE11", + "O15" + ], + "values": [ + { + "name": "auto", + "description": "The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead." + } + ], + "syntax": "[ <length-percentage> | <number> | auto ]{1,4}", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-image-width" + } + ], + "description": "The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.", + "restrictions": [ + "length", + "percentage", + "number" + ] + }, + { + "name": "border-inline-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-end" + } + ], + "description": "Logical 'border-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-inline-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-start" + } + ], + "description": "Logical 'border-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-inline-end-color", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-color'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color" + } + ], + "description": "Logical 'border-right-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-inline-start-color", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-color'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color" + } + ], + "description": "Logical 'border-left-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-inline-end-style", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-style'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style" + } + ], + "description": "Logical 'border-right-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-inline-start-style", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-style'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style" + } + ], + "description": "Logical 'border-left-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-inline-end-width", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width" + } + ], + "description": "Logical 'border-right-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-inline-start-width", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'border-top-width'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width" + } + ], + "description": "Logical 'border-left-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-left", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width> || <line-style> || <color>", + "relevance": 79, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-left" + } + ], + "description": "Shorthand property for setting border width, style and color", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-left-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<color>", + "relevance": 66, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-left-color" + } + ], + "description": "Sets the color of the left border.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-left-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O9.2" + ], + "syntax": "<line-style>", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-left-style" + } + ], + "description": "Sets the style of the left border.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-left-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width>", + "relevance": 61, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-left-width" + } + ], + "description": "Sets the thickness of the left border.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-radius", + "browsers": [ + "E12", + "FF4", + "S5", + "C4", + "IE9", + "O10.5" + ], + "syntax": "<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?", + "relevance": 91, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-radius" + } + ], + "description": "Defines the radii of the outer border edge.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border-right", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O9.2" + ], + "syntax": "<line-width> || <line-style> || <color>", + "relevance": 78, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-right" + } + ], + "description": "Shorthand property for setting border width, style and color", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-right-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<color>", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-right-color" + } + ], + "description": "Sets the color of the right border.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-right-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O9.2" + ], + "syntax": "<line-style>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-right-style" + } + ], + "description": "Sets the style of the right border.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-right-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width>", + "relevance": 61, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-right-width" + } + ], + "description": "Sets the thickness of the right border.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-spacing", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE8", + "O4" + ], + "syntax": "<length> <length>?", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-spacing" + } + ], + "description": "The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.", + "restrictions": [ + "length" + ] + }, + { + "name": "border-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [], + "syntax": "<line-style>{1,4}", + "relevance": 78, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-style" + } + ], + "description": "The style of the border around edges of an element.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-top", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width> || <line-style> || <color>", + "relevance": 84, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top" + } + ], + "description": "Shorthand property for setting border width, style and color", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "border-top-color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<color>", + "relevance": 69, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top-color" + } + ], + "description": "Sets the color of the top border.", + "restrictions": [ + "color" + ] + }, + { + "name": "border-top-left-radius", + "browsers": [ + "E12", + "FF4", + "S5", + "C4", + "IE9", + "O10.5" + ], + "syntax": "<length-percentage>{1,2}", + "relevance": 74, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius" + } + ], + "description": "Defines the radii of the top left outer border edge.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border-top-right-radius", + "browsers": [ + "E12", + "FF4", + "S5", + "C4", + "IE9", + "O10.5" + ], + "syntax": "<length-percentage>{1,2}", + "relevance": 74, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius" + } + ], + "description": "Defines the radii of the top right outer border edge.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "border-top-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O9.2" + ], + "syntax": "<line-style>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top-style" + } + ], + "description": "Sets the style of the top border.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "border-top-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<line-width>", + "relevance": 60, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-top-width" + } + ], + "description": "Sets the thickness of the top border.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "border-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [], + "syntax": "<line-width>{1,4}", + "relevance": 80, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-width" + } + ], + "description": "Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "bottom", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5", + "O6" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 89, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/bottom" + } + ], + "description": "Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "box-decoration-break", + "browsers": [ + "E79", + "FF32", + "S7", + "C22", + "O15" + ], + "values": [ + { + "name": "clone", + "description": "Each box is independently wrapped with the border and padding." + }, + { + "name": "slice", + "description": "The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward." + } + ], + "syntax": "slice | clone", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-decoration-break" + } + ], + "description": "Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.", + "restrictions": [ + "enum" + ] + }, + { + "name": "box-shadow", + "browsers": [ + "E12", + "FF4", + "S5.1", + "C10", + "IE9", + "O10.5" + ], + "values": [ + { + "name": "inset", + "description": "Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it)." + }, + { + "name": "none", + "description": "No shadow." + } + ], + "syntax": "none | <shadow>#", + "relevance": 89, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-shadow" + } + ], + "description": "Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.", + "restrictions": [ + "length", + "color", + "enum" + ] + }, + { + "name": "box-sizing", + "browsers": [ + "E12", + "FF29", + "S5.1", + "C10", + "IE8", + "O7" + ], + "values": [ + { + "name": "border-box", + "description": "The specified width and height (and respective min/max properties) on this element determine the border box of the element." + }, + { + "name": "content-box", + "description": "Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element." + } + ], + "syntax": "content-box | border-box", + "relevance": 91, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-sizing" + } + ], + "description": "Specifies the behavior of the 'width' and 'height' properties.", + "restrictions": [ + "enum" + ] + }, + { + "name": "break-after", + "browsers": [ + "E12", + "FF65", + "S10", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the principal box." + }, + { + "name": "avoid", + "description": "Avoid a break before/after the principal box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the principal box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the principal box." + }, + { + "name": "column", + "description": "Always force a column break before/after the principal box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the principal box." + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "syntax": "auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/break-after" + } + ], + "description": "Describes the page/column/region break behavior after the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "break-before", + "browsers": [ + "E12", + "FF65", + "S10", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the principal box." + }, + { + "name": "avoid", + "description": "Avoid a break before/after the principal box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the principal box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the principal box." + }, + { + "name": "column", + "description": "Always force a column break before/after the principal box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the principal box." + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "syntax": "auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/break-before" + } + ], + "description": "Describes the page/column/region break behavior before the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "break-inside", + "browsers": [ + "E12", + "FF65", + "S10", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "auto", + "description": "Impose no additional breaking constraints within the box." + }, + { + "name": "avoid", + "description": "Avoid breaks within the box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break within the box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break within the box." + } + ], + "syntax": "auto | avoid | avoid-page | avoid-column | avoid-region", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/break-inside" + } + ], + "description": "Describes the page/column/region break behavior inside the principal box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "caption-side", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE8", + "O4" + ], + "values": [ + { + "name": "bottom", + "description": "Positions the caption box below the table box." + }, + { + "name": "top", + "description": "Positions the caption box above the table box." + } + ], + "syntax": "top | bottom | block-start | block-end | inline-start | inline-end", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/caption-side" + } + ], + "description": "Specifies the position of the caption box with respect to the table box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "caret-color", + "browsers": [ + "E79", + "FF53", + "S11.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors." + } + ], + "syntax": "auto | <color>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/caret-color" + } + ], + "description": "Controls the color of the text insertion indicator.", + "restrictions": [ + "color", + "enum" + ] + }, + { + "name": "clear", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "both", + "description": "The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document." + }, + { + "name": "left", + "description": "The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document." + }, + { + "name": "none", + "description": "No constraint on the box's position with respect to floats." + }, + { + "name": "right", + "description": "The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document." + } + ], + "syntax": "none | left | right | both | inline-start | inline-end", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/clear" + } + ], + "description": "Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.", + "restrictions": [ + "enum" + ] + }, + { + "name": "clip", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "The element does not clip." + }, + { + "name": "rect()", + "description": "Specifies offsets from the edges of the border box." + } + ], + "syntax": "<shape> | auto", + "relevance": 72, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/clip" + } + ], + "description": "Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element's box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "clip-path", + "browsers": [ + "E79", + "FF3.5", + "S9.1", + "C55", + "IE10", + "O42" + ], + "values": [ + { + "name": "none", + "description": "No clipping path gets created." + }, + { + "name": "url()", + "description": "References a <clipPath> element to create a clipping path." + } + ], + "syntax": "<clip-source> | [ <basic-shape> || <geometry-box> ] | none", + "relevance": 66, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/clip-path" + } + ], + "description": "Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.", + "restrictions": [ + "url", + "shape", + "geometry-box", + "enum" + ] + }, + { + "name": "clip-rule", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "evenodd", + "description": "Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses." + }, + { + "name": "nonzero", + "description": "Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/clip-rule" + } + ], + "description": "Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.", + "restrictions": [ + "enum" + ] + }, + { + "name": "color", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "syntax": "<color>", + "relevance": 94, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/color" + } + ], + "description": "Sets the color of an element's text", + "restrictions": [ + "color" + ] + }, + { + "name": "color-interpolation-filters", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "auto", + "description": "Color operations are not required to occur in a particular color space." + }, + { + "name": "linearRGB", + "description": "Color operations should occur in the linearized RGB color space." + }, + { + "name": "sRGB", + "description": "Color operations should occur in the sRGB color space." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/color-interpolation-filters" + } + ], + "description": "Specifies the color space for imaging operations performed via filter effects.", + "restrictions": [ + "enum" + ] + }, + { + "name": "column-count", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "auto", + "description": "Determines the number of columns by the 'column-width' property and the element width." + } + ], + "syntax": "<integer> | auto", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-count" + } + ], + "description": "Describes the optimal number of columns into which the content of the element will be flowed.", + "restrictions": [ + "integer", + "enum" + ] + }, + { + "name": "column-fill", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "auto", + "description": "Fills columns sequentially." + }, + { + "name": "balance", + "description": "Balance content equally between columns, if possible." + } + ], + "syntax": "auto | balance | balance-all", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-fill" + } + ], + "description": "In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.", + "restrictions": [ + "enum" + ] + }, + { + "name": "column-gap", + "browsers": [ + "E12", + "FF1.5", + "S3", + "C1", + "IE10", + "O11.1" + ], + "values": [ + { + "name": "normal", + "description": "User agent specific and typically equivalent to 1em." + } + ], + "syntax": "normal | <length-percentage>", + "relevance": 60, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-gap" + } + ], + "description": "Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.", + "restrictions": [ + "length", + "enum" + ] + }, + { + "name": "column-rule", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O11.1" + ], + "syntax": "<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-rule" + } + ], + "description": "Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "column-rule-color", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O11.1" + ], + "syntax": "<color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-rule-color" + } + ], + "description": "Sets the color of the column rule", + "restrictions": [ + "color" + ] + }, + { + "name": "column-rule-style", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O11.1" + ], + "syntax": "<'border-style'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-rule-style" + } + ], + "description": "Sets the style of the rule between columns of an element.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "column-rule-width", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O11.1" + ], + "syntax": "<'border-width'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-rule-width" + } + ], + "description": "Sets the width of the rule between columns. Negative values are not allowed.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "columns", + "browsers": [ + "E12", + "FF52", + "S9", + "C50", + "IE10", + "O11.1" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "syntax": "<'column-width'> || <'column-count'>", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/columns" + } + ], + "description": "A shorthand property which sets both 'column-width' and 'column-count'.", + "restrictions": [ + "length", + "integer", + "enum" + ] + }, + { + "name": "column-span", + "browsers": [ + "E12", + "FF71", + "S9", + "C50", + "IE10", + "O37" + ], + "values": [ + { + "name": "all", + "description": "The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear." + }, + { + "name": "none", + "description": "The element does not span multiple columns." + } + ], + "syntax": "none | all", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-span" + } + ], + "description": "Describes the page/column break behavior after the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "column-width", + "browsers": [ + "E12", + "FF50", + "S9", + "C50", + "IE10", + "O11.1" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "syntax": "<length> | auto", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/column-width" + } + ], + "description": "Describes the width of columns in multicol elements.", + "restrictions": [ + "length", + "enum" + ] + }, + { + "name": "contain", + "browsers": [ + "E79", + "FF69", + "S15.4", + "C52", + "O39" + ], + "values": [ + { + "name": "none", + "description": "Indicates that the property has no effect." + }, + { + "name": "strict", + "description": "Turns on all forms of containment for the element." + }, + { + "name": "content", + "description": "All containment rules except size are applied to the element." + }, + { + "name": "size", + "description": "For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element." + }, + { + "name": "layout", + "description": "Turns on layout containment for the element." + }, + { + "name": "style", + "description": "Turns on style containment for the element." + }, + { + "name": "paint", + "description": "Turns on paint containment for the element." + } + ], + "syntax": "none | strict | content | [ [ size || inline-size ] || layout || style || paint ]", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain" + } + ], + "description": "Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.", + "restrictions": [ + "enum" + ] + }, + { + "name": "content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE8", + "O4" + ], + "values": [ + { + "name": "attr()", + "description": "The attr(n) function returns as a string the value of attribute n for the subject of the selector." + }, + { + "name": "counter(name)", + "description": "Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties)." + }, + { + "name": "icon", + "description": "The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element." + }, + { + "name": "none", + "description": "On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content." + }, + { + "name": "normal", + "description": "See http://www.w3.org/TR/css3-content/#content for computation rules." + }, + { + "name": "url()" + } + ], + "syntax": "normal | none | [ <content-replacement> | <content-list> ] [/ [ <string> | <counter> ]+ ]?", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/content" + } + ], + "description": "Determines which page-based occurrence of a given element is applied to a counter or string value.", + "restrictions": [ + "string", + "url" + ] + }, + { + "name": "counter-increment", + "browsers": [ + "E12", + "FF1", + "S3", + "C2", + "IE8", + "O9.2" + ], + "values": [ + { + "name": "none", + "description": "This element does not alter the value of any counters." + } + ], + "syntax": "[ <counter-name> <integer>? ]+ | none", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/counter-increment" + } + ], + "description": "Manipulate the value of existing counters.", + "restrictions": [ + "identifier", + "integer" + ] + }, + { + "name": "counter-reset", + "browsers": [ + "E12", + "FF1", + "S3", + "C2", + "IE8", + "O9.2" + ], + "values": [ + { + "name": "none", + "description": "The counter is not modified." + } + ], + "syntax": "[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/counter-reset" + } + ], + "description": "Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.", + "restrictions": [ + "identifier", + "integer" + ] + }, + { + "name": "cursor", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "alias", + "description": "Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it." + }, + { + "name": "all-scroll", + "description": "Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle." + }, + { + "name": "auto", + "description": "The UA determines the cursor to display based on the current context." + }, + { + "name": "cell", + "description": "Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle." + }, + { + "name": "col-resize", + "description": "Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them." + }, + { + "name": "context-menu", + "description": "A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it." + }, + { + "name": "copy", + "description": "Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it." + }, + { + "name": "crosshair", + "description": "A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode." + }, + { + "name": "default", + "description": "The platform-dependent default cursor. Often rendered as an arrow." + }, + { + "name": "e-resize", + "description": "Indicates that east edge is to be moved." + }, + { + "name": "ew-resize", + "description": "Indicates a bidirectional east-west resize cursor." + }, + { + "name": "grab", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be grabbed." + }, + { + "name": "grabbing", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something is being grabbed." + }, + { + "name": "help", + "description": "Help is available for the object under the cursor. Often rendered as a question mark or a balloon." + }, + { + "name": "move", + "description": "Indicates something is to be moved." + }, + { + "name": "-moz-grab", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be grabbed." + }, + { + "name": "-moz-grabbing", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something is being grabbed." + }, + { + "name": "-moz-zoom-in", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) in." + }, + { + "name": "-moz-zoom-out", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) out." + }, + { + "name": "ne-resize", + "description": "Indicates that movement starts from north-east corner." + }, + { + "name": "nesw-resize", + "description": "Indicates a bidirectional north-east/south-west cursor." + }, + { + "name": "no-drop", + "description": "Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it." + }, + { + "name": "none", + "description": "No cursor is rendered for the element." + }, + { + "name": "not-allowed", + "description": "Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it." + }, + { + "name": "n-resize", + "description": "Indicates that north edge is to be moved." + }, + { + "name": "ns-resize", + "description": "Indicates a bidirectional north-south cursor." + }, + { + "name": "nw-resize", + "description": "Indicates that movement starts from north-west corner." + }, + { + "name": "nwse-resize", + "description": "Indicates a bidirectional north-west/south-east cursor." + }, + { + "name": "pointer", + "description": "The cursor is a pointer that indicates a link." + }, + { + "name": "progress", + "description": "A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass." + }, + { + "name": "row-resize", + "description": "Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them." + }, + { + "name": "se-resize", + "description": "Indicates that movement starts from south-east corner." + }, + { + "name": "s-resize", + "description": "Indicates that south edge is to be moved." + }, + { + "name": "sw-resize", + "description": "Indicates that movement starts from south-west corner." + }, + { + "name": "text", + "description": "Indicates text that may be selected. Often rendered as a vertical I-beam." + }, + { + "name": "vertical-text", + "description": "Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam." + }, + { + "name": "wait", + "description": "Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass." + }, + { + "name": "-webkit-grab", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be grabbed." + }, + { + "name": "-webkit-grabbing", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something is being grabbed." + }, + { + "name": "-webkit-zoom-in", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) in." + }, + { + "name": "-webkit-zoom-out", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) out." + }, + { + "name": "w-resize", + "description": "Indicates that west edge is to be moved." + }, + { + "name": "zoom-in", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) in." + }, + { + "name": "zoom-out", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "description": "Indicates that something can be zoomed (magnified) out." + } + ], + "syntax": "[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/cursor" + } + ], + "description": "Allows control over cursor appearance in an element", + "restrictions": [ + "url", + "number", + "enum" + ] + }, + { + "name": "direction", + "browsers": [ + "E12", + "FF1", + "S1", + "C2", + "IE5.5", + "O9.2" + ], + "values": [ + { + "name": "ltr", + "description": "Left-to-right direction." + }, + { + "name": "rtl", + "description": "Right-to-left direction." + } + ], + "syntax": "ltr | rtl", + "relevance": 70, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/direction" + } + ], + "description": "Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.", + "restrictions": [ + "enum" + ] + }, + { + "name": "display", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "block", + "description": "The element generates a block-level box" + }, + { + "name": "contents", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal." + }, + { + "name": "flex", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element generates a principal flex container box and establishes a flex formatting context." + }, + { + "name": "flexbox", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'." + }, + { + "name": "flow-root", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element generates a block container box, and lays out its contents using flow layout." + }, + { + "name": "grid", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element generates a principal grid container box, and establishes a grid formatting context." + }, + { + "name": "inline", + "description": "The element generates an inline-level box." + }, + { + "name": "inline-block", + "description": "A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box." + }, + { + "name": "inline-flex", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container." + }, + { + "name": "inline-flexbox", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container. Standardized as 'inline-flex'" + }, + { + "name": "inline-table", + "description": "Inline-level table wrapper box containing table box." + }, + { + "name": "list-item", + "description": "One or more block boxes and one marker box." + }, + { + "name": "-moz-box", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'." + }, + { + "name": "-moz-deck", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-grid", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-grid-group", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-grid-line", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-groupbox", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-inline-box", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container. Standardized as 'inline-flex'" + }, + { + "name": "-moz-inline-grid", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-inline-stack", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-marker", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-popup", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-moz-stack", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ] + }, + { + "name": "-ms-flexbox", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'." + }, + { + "name": "-ms-grid", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element generates a principal grid container box, and establishes a grid formatting context." + }, + { + "name": "-ms-inline-flexbox", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container. Standardized as 'inline-flex'" + }, + { + "name": "-ms-inline-grid", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level grid container." + }, + { + "name": "none", + "description": "The element and its descendants generates no boxes." + }, + { + "name": "ruby", + "description": "The element generates a principal ruby container box, and establishes a ruby formatting context." + }, + { + "name": "ruby-base" + }, + { + "name": "ruby-base-container" + }, + { + "name": "ruby-text" + }, + { + "name": "ruby-text-container" + }, + { + "name": "run-in", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements." + }, + { + "name": "table", + "description": "The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context." + }, + { + "name": "table-caption" + }, + { + "name": "table-cell" + }, + { + "name": "table-column" + }, + { + "name": "table-column-group" + }, + { + "name": "table-footer-group" + }, + { + "name": "table-header-group" + }, + { + "name": "table-row" + }, + { + "name": "table-row-group" + }, + { + "name": "-webkit-box", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'." + }, + { + "name": "-webkit-flex", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "The element lays out its contents using flow layout (block-and-inline layout)." + }, + { + "name": "-webkit-inline-box", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container. Standardized as 'inline-flex'" + }, + { + "name": "-webkit-inline-flex", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Inline-level flex container." + } + ], + "syntax": "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>", + "relevance": 95, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/display" + } + ], + "description": "In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "empty-cells", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE8", + "O4" + ], + "values": [ + { + "name": "hide", + "description": "No borders or backgrounds are drawn around/behind empty cells." + }, + { + "name": "-moz-show-background", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE8", + "O4" + ] + }, + { + "name": "show", + "description": "Borders and backgrounds are drawn around/behind empty cells (like normal cells)." + } + ], + "syntax": "show | hide", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/empty-cells" + } + ], + "description": "In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.", + "restrictions": [ + "enum" + ] + }, + { + "name": "enable-background", + "values": [ + { + "name": "accumulate", + "description": "If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target." + }, + { + "name": "new", + "description": "Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device." + } + ], + "relevance": 50, + "description": "Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.", + "restrictions": [ + "integer", + "length", + "percentage", + "enum" + ] + }, + { + "name": "fallback", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<counter-style-name>", + "relevance": 50, + "description": "@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can't create a representation for a given counter value.", + "restrictions": [ + "identifier" + ] + }, + { + "name": "fill", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "url()", + "description": "A URL reference to a paint server element, which is an element that defines a paint server: 'hatch', 'linearGradient', 'mesh', 'pattern', 'radialGradient' and 'solidcolor'." + }, + { + "name": "none", + "description": "No paint is applied in this layer." + } + ], + "relevance": 79, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/fill" + } + ], + "description": "Paints the interior of the given graphical element.", + "restrictions": [ + "color", + "enum", + "url" + ] + }, + { + "name": "fill-opacity", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/fill-opacity" + } + ], + "description": "Specifies the opacity of the painting operation used to paint the interior the current object.", + "restrictions": [ + "number(0-1)" + ] + }, + { + "name": "fill-rule", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "evenodd", + "description": "Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses." + }, + { + "name": "nonzero", + "description": "Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray." + } + ], + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/fill-rule" + } + ], + "description": "Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.", + "restrictions": [ + "enum" + ] + }, + { + "name": "filter", + "browsers": [ + "E12", + "FF35", + "S9.1", + "C53", + "O40" + ], + "values": [ + { + "name": "none", + "description": "No filter effects are applied." + }, + { + "name": "blur()", + "description": "Applies a Gaussian blur to the input image." + }, + { + "name": "brightness()", + "description": "Applies a linear multiplier to input image, making it appear more or less bright." + }, + { + "name": "contrast()", + "description": "Adjusts the contrast of the input." + }, + { + "name": "drop-shadow()", + "description": "Applies a drop shadow effect to the input image." + }, + { + "name": "grayscale()", + "description": "Converts the input image to grayscale." + }, + { + "name": "hue-rotate()", + "description": "Applies a hue rotation on the input image. " + }, + { + "name": "invert()", + "description": "Inverts the samples in the input image." + }, + { + "name": "opacity()", + "description": "Applies transparency to the samples in the input image." + }, + { + "name": "saturate()", + "description": "Saturates the input image." + }, + { + "name": "sepia()", + "description": "Converts the input image to sepia." + }, + { + "name": "url()", + "browsers": [ + "E12", + "FF35", + "S9.1", + "C53", + "O40" + ], + "description": "A filter reference to a <filter> element." + } + ], + "syntax": "none | <filter-function-list>", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/filter" + } + ], + "description": "Processes an element's rendering before it is displayed in the document, by applying one or more filter effects.", + "restrictions": [ + "enum", + "url" + ] + }, + { + "name": "flex", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "auto", + "description": "Retrieves the value of the main size property as the used 'flex-basis'." + }, + { + "name": "content", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "description": "Indicates automatic sizing, based on the flex item's content." + }, + { + "name": "none", + "description": "Expands to '0 0 auto'." + } + ], + "syntax": "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex" + } + ], + "description": "Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.", + "restrictions": [ + "length", + "number", + "percentage" + ] + }, + { + "name": "flex-basis", + "browsers": [ + "E12", + "FF22", + "S9", + "C29", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "auto", + "description": "Retrieves the value of the main size property as the used 'flex-basis'." + }, + { + "name": "content", + "browsers": [ + "E12", + "FF22", + "S9", + "C29", + "IE11", + "O12.1" + ], + "description": "Indicates automatic sizing, based on the flex item's content." + } + ], + "syntax": "content | <'width'>", + "relevance": 69, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-basis" + } + ], + "description": "Sets the flex basis.", + "restrictions": [ + "length", + "number", + "percentage" + ] + }, + { + "name": "flex-direction", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "column", + "description": "The flex container's main axis has the same orientation as the block axis of the current writing mode." + }, + { + "name": "column-reverse", + "description": "Same as 'column', except the main-start and main-end directions are swapped." + }, + { + "name": "row", + "description": "The flex container's main axis has the same orientation as the inline axis of the current writing mode." + }, + { + "name": "row-reverse", + "description": "Same as 'row', except the main-start and main-end directions are swapped." + } + ], + "syntax": "row | row-reverse | column | column-reverse", + "relevance": 84, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-direction" + } + ], + "description": "Specifies how flex items are placed in the flex container, by setting the direction of the flex container's main axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "flex-flow", + "browsers": [ + "E12", + "FF28", + "S9", + "C29", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "column", + "description": "The flex container's main axis has the same orientation as the block axis of the current writing mode." + }, + { + "name": "column-reverse", + "description": "Same as 'column', except the main-start and main-end directions are swapped." + }, + { + "name": "nowrap", + "description": "The flex container is single-line." + }, + { + "name": "row", + "description": "The flex container's main axis has the same orientation as the inline axis of the current writing mode." + }, + { + "name": "row-reverse", + "description": "Same as 'row', except the main-start and main-end directions are swapped." + }, + { + "name": "wrap", + "description": "The flexbox is multi-line." + }, + { + "name": "wrap-reverse", + "description": "Same as 'wrap', except the cross-start and cross-end directions are swapped." + } + ], + "syntax": "<'flex-direction'> || <'flex-wrap'>", + "relevance": 63, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-flow" + } + ], + "description": "Specifies how flexbox items are placed in the flexbox.", + "restrictions": [ + "enum" + ] + }, + { + "name": "flex-grow", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "syntax": "<number>", + "relevance": 76, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-grow" + } + ], + "description": "Sets the flex grow factor. Negative numbers are invalid.", + "restrictions": [ + "number" + ] + }, + { + "name": "flex-shrink", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE10", + "O12.1" + ], + "syntax": "<number>", + "relevance": 76, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-shrink" + } + ], + "description": "Sets the flex shrink factor. Negative numbers are invalid.", + "restrictions": [ + "number" + ] + }, + { + "name": "flex-wrap", + "browsers": [ + "E12", + "FF28", + "S9", + "C29", + "IE11", + "O16" + ], + "values": [ + { + "name": "nowrap", + "description": "The flex container is single-line." + }, + { + "name": "wrap", + "description": "The flexbox is multi-line." + }, + { + "name": "wrap-reverse", + "description": "Same as 'wrap', except the cross-start and cross-end directions are swapped." + } + ], + "syntax": "nowrap | wrap | wrap-reverse", + "relevance": 82, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/flex-wrap" + } + ], + "description": "Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.", + "restrictions": [ + "enum" + ] + }, + { + "name": "float", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "inline-end", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts." + }, + { + "name": "inline-start", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts." + }, + { + "name": "left", + "description": "The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property)." + }, + { + "name": "none", + "description": "The box is not floated." + }, + { + "name": "right", + "description": "Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top." + } + ], + "syntax": "left | right | none | inline-start | inline-end", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/float" + } + ], + "description": "Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.", + "restrictions": [ + "enum" + ] + }, + { + "name": "flood-color", + "browsers": [ + "E12", + "FF3", + "S6", + "C5", + "IE11", + "O15" + ], + "relevance": 50, + "description": "Indicates what color to use to flood the current filter primitive subregion.", + "restrictions": [ + "color" + ] + }, + { + "name": "flood-opacity", + "browsers": [ + "E12", + "FF3", + "S6", + "C5", + "IE11", + "O15" + ], + "relevance": 50, + "description": "Indicates what opacity to use to flood the current filter primitive subregion.", + "restrictions": [ + "number(0-1)", + "percentage" + ] + }, + { + "name": "font", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "100", + "description": "Thin" + }, + { + "name": "200", + "description": "Extra Light (Ultra Light)" + }, + { + "name": "300", + "description": "Light" + }, + { + "name": "400", + "description": "Normal" + }, + { + "name": "500", + "description": "Medium" + }, + { + "name": "600", + "description": "Semi Bold (Demi Bold)" + }, + { + "name": "700", + "description": "Bold" + }, + { + "name": "800", + "description": "Extra Bold (Ultra Bold)" + }, + { + "name": "900", + "description": "Black (Heavy)" + }, + { + "name": "bold", + "description": "Same as 700" + }, + { + "name": "bolder", + "description": "Specifies the weight of the face bolder than the inherited value." + }, + { + "name": "caption", + "description": "The font used for captioned controls (e.g., buttons, drop-downs, etc.)." + }, + { + "name": "icon", + "description": "The font used to label icons." + }, + { + "name": "italic", + "description": "Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'." + }, + { + "name": "large" + }, + { + "name": "larger" + }, + { + "name": "lighter", + "description": "Specifies the weight of the face lighter than the inherited value." + }, + { + "name": "medium" + }, + { + "name": "menu", + "description": "The font used in menus (e.g., dropdown menus and menu lists)." + }, + { + "name": "message-box", + "description": "The font used in dialog boxes." + }, + { + "name": "normal", + "description": "Specifies a face that is not labeled as a small-caps font." + }, + { + "name": "oblique", + "description": "Selects a font that is labeled 'oblique'." + }, + { + "name": "small" + }, + { + "name": "small-caps", + "description": "Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font." + }, + { + "name": "small-caption", + "description": "The font used for labeling small controls." + }, + { + "name": "smaller" + }, + { + "name": "status-bar", + "description": "The font used in window status bars." + }, + { + "name": "x-large" + }, + { + "name": "x-small" + }, + { + "name": "xx-large" + }, + { + "name": "xx-small" + } + ], + "syntax": "[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font" + } + ], + "description": "Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.", + "restrictions": [ + "font" + ] + }, + { + "name": "font-family", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif" + }, + { + "name": "Arial, Helvetica, sans-serif" + }, + { + "name": "Cambria, Cochin, Georgia, Times, 'Times New Roman', serif" + }, + { + "name": "'Courier New', Courier, monospace" + }, + { + "name": "cursive" + }, + { + "name": "fantasy" + }, + { + "name": "'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif" + }, + { + "name": "Georgia, 'Times New Roman', Times, serif" + }, + { + "name": "'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif" + }, + { + "name": "Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif" + }, + { + "name": "'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif" + }, + { + "name": "monospace" + }, + { + "name": "sans-serif" + }, + { + "name": "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif" + }, + { + "name": "serif" + }, + { + "name": "'Times New Roman', Times, serif" + }, + { + "name": "'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif" + }, + { + "name": "Verdana, Geneva, Tahoma, sans-serif" + } + ], + "atRule": "@font-face", + "syntax": "<family-name>", + "relevance": 92, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-family" + } + ], + "description": "Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.", + "restrictions": [ + "font" + ] + }, + { + "name": "font-feature-settings", + "browsers": [ + "E15", + "FF34", + "S9.1", + "C48", + "IE10", + "O35" + ], + "values": [ + { + "name": "\"aalt\"", + "description": "Access All Alternates." + }, + { + "name": "\"abvf\"", + "description": "Above-base Forms. Required in Khmer script." + }, + { + "name": "\"abvm\"", + "description": "Above-base Mark Positioning. Required in Indic scripts." + }, + { + "name": "\"abvs\"", + "description": "Above-base Substitutions. Required in Indic scripts." + }, + { + "name": "\"afrc\"", + "description": "Alternative Fractions." + }, + { + "name": "\"akhn\"", + "description": "Akhand. Required in most Indic scripts." + }, + { + "name": "\"blwf\"", + "description": "Below-base Form. Required in a number of Indic scripts." + }, + { + "name": "\"blwm\"", + "description": "Below-base Mark Positioning. Required in Indic scripts." + }, + { + "name": "\"blws\"", + "description": "Below-base Substitutions. Required in Indic scripts." + }, + { + "name": "\"calt\"", + "description": "Contextual Alternates." + }, + { + "name": "\"case\"", + "description": "Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting." + }, + { + "name": "\"ccmp\"", + "description": "Glyph Composition/Decomposition." + }, + { + "name": "\"cfar\"", + "description": "Conjunct Form After Ro. Required in Khmer scripts." + }, + { + "name": "\"cjct\"", + "description": "Conjunct Forms. Required in Indic scripts that show similarity to Devanagari." + }, + { + "name": "\"clig\"", + "description": "Contextual Ligatures." + }, + { + "name": "\"cpct\"", + "description": "Centered CJK Punctuation. Used primarily in Chinese fonts." + }, + { + "name": "\"cpsp\"", + "description": "Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic)." + }, + { + "name": "\"cswh\"", + "description": "Contextual Swash." + }, + { + "name": "\"curs\"", + "description": "Cursive Positioning. Can be used in any cursive script." + }, + { + "name": "\"c2pc\"", + "description": "Petite Capitals From Capitals. Applies only to bicameral scripts." + }, + { + "name": "\"c2sc\"", + "description": "Small Capitals From Capitals. Applies only to bicameral scripts." + }, + { + "name": "\"dist\"", + "description": "Distances. Required in Indic scripts." + }, + { + "name": "\"dlig\"", + "description": "Discretionary ligatures." + }, + { + "name": "\"dnom\"", + "description": "Denominators." + }, + { + "name": "\"dtls\"", + "description": "Dotless Forms. Applied to math formula layout." + }, + { + "name": "\"expt\"", + "description": "Expert Forms. Applies only to Japanese." + }, + { + "name": "\"falt\"", + "description": "Final Glyph on Line Alternates. Can be used in any cursive script." + }, + { + "name": "\"fin2\"", + "description": "Terminal Form #2. Used only with the Syriac script." + }, + { + "name": "\"fin3\"", + "description": "Terminal Form #3. Used only with the Syriac script." + }, + { + "name": "\"fina\"", + "description": "Terminal Forms. Can be used in any alphabetic script." + }, + { + "name": "\"flac\"", + "description": "Flattened ascent forms. Applied to math formula layout." + }, + { + "name": "\"frac\"", + "description": "Fractions." + }, + { + "name": "\"fwid\"", + "description": "Full Widths. Applies to any script which can use monospaced forms." + }, + { + "name": "\"half\"", + "description": "Half Forms. Required in Indic scripts that show similarity to Devanagari." + }, + { + "name": "\"haln\"", + "description": "Halant Forms. Required in Indic scripts." + }, + { + "name": "\"halt\"", + "description": "Alternate Half Widths. Used only in CJKV fonts." + }, + { + "name": "\"hist\"", + "description": "Historical Forms." + }, + { + "name": "\"hkna\"", + "description": "Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana)." + }, + { + "name": "\"hlig\"", + "description": "Historical Ligatures." + }, + { + "name": "\"hngl\"", + "description": "Hangul. Korean only." + }, + { + "name": "\"hojo\"", + "description": "Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script." + }, + { + "name": "\"hwid\"", + "description": "Half Widths. Generally used only in CJKV fonts." + }, + { + "name": "\"init\"", + "description": "Initial Forms. Can be used in any alphabetic script." + }, + { + "name": "\"isol\"", + "description": "Isolated Forms. Can be used in any cursive script." + }, + { + "name": "\"ital\"", + "description": "Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well." + }, + { + "name": "\"jalt\"", + "description": "Justification Alternates. Can be used in any cursive script." + }, + { + "name": "\"jp78\"", + "description": "JIS78 Forms. Applies only to Japanese." + }, + { + "name": "\"jp83\"", + "description": "JIS83 Forms. Applies only to Japanese." + }, + { + "name": "\"jp90\"", + "description": "JIS90 Forms. Applies only to Japanese." + }, + { + "name": "\"jp04\"", + "description": "JIS2004 Forms. Applies only to Japanese." + }, + { + "name": "\"kern\"", + "description": "Kerning." + }, + { + "name": "\"lfbd\"", + "description": "Left Bounds." + }, + { + "name": "\"liga\"", + "description": "Standard Ligatures." + }, + { + "name": "\"ljmo\"", + "description": "Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported." + }, + { + "name": "\"lnum\"", + "description": "Lining Figures." + }, + { + "name": "\"locl\"", + "description": "Localized Forms." + }, + { + "name": "\"ltra\"", + "description": "Left-to-right glyph alternates." + }, + { + "name": "\"ltrm\"", + "description": "Left-to-right mirrored forms." + }, + { + "name": "\"mark\"", + "description": "Mark Positioning." + }, + { + "name": "\"med2\"", + "description": "Medial Form #2. Used only with the Syriac script." + }, + { + "name": "\"medi\"", + "description": "Medial Forms." + }, + { + "name": "\"mgrk\"", + "description": "Mathematical Greek." + }, + { + "name": "\"mkmk\"", + "description": "Mark to Mark Positioning." + }, + { + "name": "\"nalt\"", + "description": "Alternate Annotation Forms." + }, + { + "name": "\"nlck\"", + "description": "NLC Kanji Forms. Used only with Kanji script." + }, + { + "name": "\"nukt\"", + "description": "Nukta Forms. Required in Indic scripts.." + }, + { + "name": "\"numr\"", + "description": "Numerators." + }, + { + "name": "\"onum\"", + "description": "Oldstyle Figures." + }, + { + "name": "\"opbd\"", + "description": "Optical Bounds." + }, + { + "name": "\"ordn\"", + "description": "Ordinals. Applies mostly to Latin script." + }, + { + "name": "\"ornm\"", + "description": "Ornaments." + }, + { + "name": "\"palt\"", + "description": "Proportional Alternate Widths. Used mostly in CJKV fonts." + }, + { + "name": "\"pcap\"", + "description": "Petite Capitals." + }, + { + "name": "\"pkna\"", + "description": "Proportional Kana. Generally used only in Japanese fonts." + }, + { + "name": "\"pnum\"", + "description": "Proportional Figures." + }, + { + "name": "\"pref\"", + "description": "Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra." + }, + { + "name": "\"pres\"", + "description": "Pre-base Substitutions. Required in Indic scripts." + }, + { + "name": "\"pstf\"", + "description": "Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer." + }, + { + "name": "\"psts\"", + "description": "Post-base Substitutions." + }, + { + "name": "\"pwid\"", + "description": "Proportional Widths." + }, + { + "name": "\"qwid\"", + "description": "Quarter Widths. Generally used only in CJKV fonts." + }, + { + "name": "\"rand\"", + "description": "Randomize." + }, + { + "name": "\"rclt\"", + "description": "Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic." + }, + { + "name": "\"rlig\"", + "description": "Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts." + }, + { + "name": "\"rkrf\"", + "description": "Rakar Forms. Required in Devanagari and Gujarati scripts." + }, + { + "name": "\"rphf\"", + "description": "Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada." + }, + { + "name": "\"rtbd\"", + "description": "Right Bounds." + }, + { + "name": "\"rtla\"", + "description": "Right-to-left alternates." + }, + { + "name": "\"rtlm\"", + "description": "Right-to-left mirrored forms." + }, + { + "name": "\"ruby\"", + "description": "Ruby Notation Forms. Applies only to Japanese." + }, + { + "name": "\"salt\"", + "description": "Stylistic Alternates." + }, + { + "name": "\"sinf\"", + "description": "Scientific Inferiors." + }, + { + "name": "\"size\"", + "description": "Optical size." + }, + { + "name": "\"smcp\"", + "description": "Small Capitals. Applies only to bicameral scripts." + }, + { + "name": "\"smpl\"", + "description": "Simplified Forms. Applies only to Chinese and Japanese." + }, + { + "name": "\"ssty\"", + "description": "Math script style alternates." + }, + { + "name": "\"stch\"", + "description": "Stretching Glyph Decomposition." + }, + { + "name": "\"subs\"", + "description": "Subscript." + }, + { + "name": "\"sups\"", + "description": "Superscript." + }, + { + "name": "\"swsh\"", + "description": "Swash. Does not apply to ideographic scripts." + }, + { + "name": "\"titl\"", + "description": "Titling." + }, + { + "name": "\"tjmo\"", + "description": "Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported." + }, + { + "name": "\"tnam\"", + "description": "Traditional Name Forms. Applies only to Japanese." + }, + { + "name": "\"tnum\"", + "description": "Tabular Figures." + }, + { + "name": "\"trad\"", + "description": "Traditional Forms. Applies only to Chinese and Japanese." + }, + { + "name": "\"twid\"", + "description": "Third Widths. Generally used only in CJKV fonts." + }, + { + "name": "\"unic\"", + "description": "Unicase." + }, + { + "name": "\"valt\"", + "description": "Alternate Vertical Metrics. Applies only to scripts with vertical writing modes." + }, + { + "name": "\"vatu\"", + "description": "Vattu Variants. Used for Indic scripts. E.g. Devanagari." + }, + { + "name": "\"vert\"", + "description": "Vertical Alternates. Applies only to scripts with vertical writing modes." + }, + { + "name": "\"vhal\"", + "description": "Alternate Vertical Half Metrics. Used only in CJKV fonts." + }, + { + "name": "\"vjmo\"", + "description": "Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported." + }, + { + "name": "\"vkna\"", + "description": "Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana)." + }, + { + "name": "\"vkrn\"", + "description": "Vertical Kerning." + }, + { + "name": "\"vpal\"", + "description": "Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts." + }, + { + "name": "\"vrt2\"", + "description": "Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes." + }, + { + "name": "\"zero\"", + "description": "Slashed Zero." + }, + { + "name": "normal", + "description": "No change in glyph substitution or positioning occurs." + }, + { + "name": "off", + "description": "Disable feature." + }, + { + "name": "on", + "description": "Enable feature." + } + ], + "atRule": "@font-face", + "syntax": "normal | <feature-tag-value>#", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-feature-settings" + } + ], + "description": "Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.", + "restrictions": [ + "string", + "integer" + ] + }, + { + "name": "font-kerning", + "browsers": [ + "E79", + "FF32", + "S9", + "C33", + "O20" + ], + "values": [ + { + "name": "auto", + "description": "Specifies that kerning is applied at the discretion of the user agent." + }, + { + "name": "none", + "description": "Specifies that kerning is not applied." + }, + { + "name": "normal", + "description": "Specifies that kerning is applied." + } + ], + "syntax": "auto | normal | none", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-kerning" + } + ], + "description": "Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-language-override", + "browsers": [ + "FF34" + ], + "values": [ + { + "name": "normal", + "description": "Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering." + } + ], + "syntax": "normal | <string>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-language-override" + } + ], + "description": "The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.", + "restrictions": [ + "string" + ] + }, + { + "name": "font-size", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O7" + ], + "values": [ + { + "name": "large" + }, + { + "name": "larger" + }, + { + "name": "medium" + }, + { + "name": "small" + }, + { + "name": "smaller" + }, + { + "name": "x-large" + }, + { + "name": "x-small" + }, + { + "name": "xx-large" + }, + { + "name": "xx-small" + } + ], + "syntax": "<absolute-size> | <relative-size> | <length-percentage>", + "relevance": 93, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-size" + } + ], + "description": "Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "font-size-adjust", + "browsers": [ + "E127", + "FF3", + "S16.4", + "C127", + "O113" + ], + "values": [ + { + "name": "none", + "description": "Do not preserve the font's x-height." + } + ], + "syntax": "none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-size-adjust" + } + ], + "description": "Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.", + "restrictions": [ + "number" + ] + }, + { + "name": "font-stretch", + "browsers": [ + "E12", + "FF9", + "S11", + "C60", + "IE9", + "O47" + ], + "values": [ + { + "name": "condensed" + }, + { + "name": "expanded" + }, + { + "name": "extra-condensed" + }, + { + "name": "extra-expanded" + }, + { + "name": "narrower", + "browsers": [ + "E12", + "FF9", + "S11", + "C60", + "IE9", + "O47" + ], + "description": "Indicates a narrower value relative to the width of the parent element." + }, + { + "name": "normal" + }, + { + "name": "semi-condensed" + }, + { + "name": "semi-expanded" + }, + { + "name": "ultra-condensed" + }, + { + "name": "ultra-expanded" + }, + { + "name": "wider", + "browsers": [ + "E12", + "FF9", + "S11", + "C60", + "IE9", + "O47" + ], + "description": "Indicates a wider value relative to the width of the parent element." + } + ], + "atRule": "@font-face", + "syntax": "<font-stretch-absolute>{1,2}", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-stretch" + } + ], + "description": "Selects a normal, condensed, or expanded face from a font family.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "italic", + "description": "Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not" + }, + { + "name": "normal", + "description": "Selects a face that is classified as 'normal'." + }, + { + "name": "oblique", + "description": "Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not." + } + ], + "atRule": "@font-face", + "syntax": "normal | italic | oblique <angle>{0,2}", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-style" + } + ], + "description": "Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-synthesis", + "browsers": [ + "E97", + "FF34", + "S9", + "C97", + "O83" + ], + "values": [ + { + "name": "none", + "description": "Disallow all synthetic faces." + }, + { + "name": "style", + "description": "Allow synthetic italic faces." + }, + { + "name": "weight", + "description": "Allow synthetic bold faces." + } + ], + "syntax": "none | [ weight || style || small-caps || position]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis" + } + ], + "description": "Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "normal", + "description": "Specifies a face that is not labeled as a small-caps font." + }, + { + "name": "small-caps", + "description": "Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font." + } + ], + "syntax": "normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]", + "relevance": 63, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant" + } + ], + "description": "Specifies variant representations of the font", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-alternates", + "browsers": [ + "E111", + "FF34", + "S9.1", + "C111", + "O97" + ], + "values": [ + { + "name": "annotation()", + "description": "Enables display of alternate annotation forms." + }, + { + "name": "character-variant()", + "description": "Enables display of specific character variants." + }, + { + "name": "historical-forms", + "description": "Enables display of historical forms." + }, + { + "name": "normal", + "description": "None of the features are enabled." + }, + { + "name": "ornaments()", + "description": "Enables replacement of default glyphs with ornaments, if provided in the font." + }, + { + "name": "styleset()", + "description": "Enables display with stylistic sets." + }, + { + "name": "stylistic()", + "description": "Enables display of stylistic alternates." + }, + { + "name": "swash()", + "description": "Enables display of swash glyphs." + } + ], + "syntax": "normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates" + } + ], + "description": "For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-caps", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C52", + "O39" + ], + "values": [ + { + "name": "all-petite-caps", + "description": "Enables display of petite capitals for both upper and lowercase letters." + }, + { + "name": "all-small-caps", + "description": "Enables display of small capitals for both upper and lowercase letters." + }, + { + "name": "normal", + "description": "None of the features are enabled." + }, + { + "name": "petite-caps", + "description": "Enables display of petite capitals." + }, + { + "name": "small-caps", + "description": "Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters." + }, + { + "name": "titling-caps", + "description": "Enables display of titling capitals." + }, + { + "name": "unicase", + "description": "Enables display of mixture of small capitals for uppercase letters with normal lowercase letters." + } + ], + "syntax": "normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-caps" + } + ], + "description": "Specifies control over capitalized forms.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-east-asian", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C63", + "O50" + ], + "values": [ + { + "name": "full-width", + "description": "Enables rendering of full-width variants." + }, + { + "name": "jis04", + "description": "Enables rendering of JIS04 forms." + }, + { + "name": "jis78", + "description": "Enables rendering of JIS78 forms." + }, + { + "name": "jis83", + "description": "Enables rendering of JIS83 forms." + }, + { + "name": "jis90", + "description": "Enables rendering of JIS90 forms." + }, + { + "name": "normal", + "description": "None of the features are enabled." + }, + { + "name": "proportional-width", + "description": "Enables rendering of proportionally-spaced variants." + }, + { + "name": "ruby", + "description": "Enables display of ruby variant glyphs." + }, + { + "name": "simplified", + "description": "Enables rendering of simplified forms." + }, + { + "name": "traditional", + "description": "Enables rendering of traditional forms." + } + ], + "syntax": "normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian" + } + ], + "description": "Allows control of glyph substitute and positioning in East Asian text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-ligatures", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C34", + "O21" + ], + "values": [ + { + "name": "additional-ligatures", + "description": "Enables display of additional ligatures." + }, + { + "name": "common-ligatures", + "description": "Enables display of common ligatures." + }, + { + "name": "contextual", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C34", + "O21" + ], + "description": "Enables display of contextual alternates." + }, + { + "name": "discretionary-ligatures", + "description": "Enables display of discretionary ligatures." + }, + { + "name": "historical-ligatures", + "description": "Enables display of historical ligatures." + }, + { + "name": "no-additional-ligatures", + "description": "Disables display of additional ligatures." + }, + { + "name": "no-common-ligatures", + "description": "Disables display of common ligatures." + }, + { + "name": "no-contextual", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C34", + "O21" + ], + "description": "Disables display of contextual alternates." + }, + { + "name": "no-discretionary-ligatures", + "description": "Disables display of discretionary ligatures." + }, + { + "name": "no-historical-ligatures", + "description": "Disables display of historical ligatures." + }, + { + "name": "none", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C34", + "O21" + ], + "description": "Disables all ligatures." + }, + { + "name": "normal", + "description": "Implies that the defaults set by the font are used." + } + ], + "syntax": "normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures" + } + ], + "description": "Specifies control over which ligatures are enabled or disabled. A value of 'normal' implies that the defaults set by the font are used.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-numeric", + "browsers": [ + "E79", + "FF34", + "S9.1", + "C52", + "O39" + ], + "values": [ + { + "name": "diagonal-fractions", + "description": "Enables display of lining diagonal fractions." + }, + { + "name": "lining-nums", + "description": "Enables display of lining numerals." + }, + { + "name": "normal", + "description": "None of the features are enabled." + }, + { + "name": "oldstyle-nums", + "description": "Enables display of old-style numerals." + }, + { + "name": "ordinal", + "description": "Enables display of letter forms used with ordinal numbers." + }, + { + "name": "proportional-nums", + "description": "Enables display of proportional numerals." + }, + { + "name": "slashed-zero", + "description": "Enables display of slashed zeros." + }, + { + "name": "stacked-fractions", + "description": "Enables display of lining stacked fractions." + }, + { + "name": "tabular-nums", + "description": "Enables display of tabular numerals." + } + ], + "syntax": "normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric" + } + ], + "description": "Specifies control over numerical forms.", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-variant-position", + "browsers": [ + "E117", + "FF34", + "S9.1", + "C117", + "O103" + ], + "values": [ + { + "name": "normal", + "description": "None of the features are enabled." + }, + { + "name": "sub", + "description": "Enables display of subscript variants (OpenType feature: subs)." + }, + { + "name": "super", + "description": "Enables display of superscript variants (OpenType feature: sups)." + } + ], + "syntax": "normal | sub | super", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-position" + } + ], + "description": "Specifies the vertical position", + "restrictions": [ + "enum" + ] + }, + { + "name": "font-weight", + "browsers": [ + "E12", + "FF1", + "S1", + "C2", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "100", + "description": "Thin" + }, + { + "name": "200", + "description": "Extra Light (Ultra Light)" + }, + { + "name": "300", + "description": "Light" + }, + { + "name": "400", + "description": "Normal" + }, + { + "name": "500", + "description": "Medium" + }, + { + "name": "600", + "description": "Semi Bold (Demi Bold)" + }, + { + "name": "700", + "description": "Bold" + }, + { + "name": "800", + "description": "Extra Bold (Ultra Bold)" + }, + { + "name": "900", + "description": "Black (Heavy)" + }, + { + "name": "bold", + "description": "Same as 700" + }, + { + "name": "bolder", + "description": "Specifies the weight of the face bolder than the inherited value." + }, + { + "name": "lighter", + "description": "Specifies the weight of the face lighter than the inherited value." + }, + { + "name": "normal", + "description": "Same as 400" + } + ], + "atRule": "@font-face", + "syntax": "<font-weight-absolute>{1,2}", + "relevance": 92, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-weight" + } + ], + "description": "Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.", + "restrictions": [ + "enum" + ] + }, + { + "name": "glyph-orientation-horizontal", + "relevance": 50, + "description": "Controls glyph orientation when the inline-progression-direction is horizontal.", + "restrictions": [ + "angle", + "number" + ] + }, + { + "name": "glyph-orientation-vertical", + "browsers": [ + "S13.1" + ], + "values": [ + { + "name": "auto", + "description": "Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation." + } + ], + "relevance": 50, + "description": "Controls glyph orientation when the inline-progression-direction is vertical.", + "restrictions": [ + "angle", + "number", + "enum" + ] + }, + { + "name": "grid-area", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line> [ / <grid-line> ]{0,3}", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-area" + } + ], + "description": "Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.", + "restrictions": [ + "identifier", + "integer" + ] + }, + { + "name": "grid", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "syntax": "<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid" + } + ], + "description": "The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.", + "restrictions": [ + "identifier", + "length", + "percentage", + "string", + "enum" + ] + }, + { + "name": "grid-auto-columns", + "browsers": [ + "E16", + "FF70", + "S10.1", + "C57", + "IE10", + "O44" + ], + "values": [ + { + "name": "min-content", + "description": "Represents the largest min-content contribution of the grid items occupying the grid track." + }, + { + "name": "max-content", + "description": "Represents the largest max-content contribution of the grid items occupying the grid track." + }, + { + "name": "auto", + "description": "As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track." + }, + { + "name": "minmax()", + "description": "Defines a size range greater than or equal to min and less than or equal to max." + } + ], + "syntax": "<track-size>+", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns" + } + ], + "description": "Specifies the size of implicitly created columns.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "grid-auto-flow", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "row", + "description": "The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary." + }, + { + "name": "column", + "description": "The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary." + }, + { + "name": "dense", + "description": "If specified, the auto-placement algorithm uses a \"dense\" packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later." + } + ], + "syntax": "[ row | column ] || dense", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow" + } + ], + "description": "Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.", + "restrictions": [ + "enum" + ] + }, + { + "name": "grid-auto-rows", + "browsers": [ + "E16", + "FF70", + "S10.1", + "C57", + "IE10", + "O44" + ], + "values": [ + { + "name": "min-content", + "description": "Represents the largest min-content contribution of the grid items occupying the grid track." + }, + { + "name": "max-content", + "description": "Represents the largest max-content contribution of the grid items occupying the grid track." + }, + { + "name": "auto", + "description": "As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track." + }, + { + "name": "minmax()", + "description": "Defines a size range greater than or equal to min and less than or equal to max." + } + ], + "syntax": "<track-size>+", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows" + } + ], + "description": "Specifies the size of implicitly created rows.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "grid-column", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line> [ / <grid-line> ]?", + "relevance": 59, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-column" + } + ], + "description": "Shorthand for 'grid-column-start' and 'grid-column-end'.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-column-end", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line>", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-column-end" + } + ], + "description": "Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-column-gap", + "browsers": [ + "FF52", + "C57", + "S10.1", + "O44" + ], + "status": "obsolete", + "syntax": "<length-percentage>", + "relevance": 4, + "description": "Specifies the gutters between grid columns. Replaced by 'column-gap' property.", + "restrictions": [ + "length" + ] + }, + { + "name": "grid-column-start", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line>", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-column-start" + } + ], + "description": "Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-gap", + "browsers": [ + "FF52", + "C57", + "S10.1", + "O44" + ], + "status": "obsolete", + "syntax": "<'grid-row-gap'> <'grid-column-gap'>?", + "relevance": 8, + "description": "Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.", + "restrictions": [ + "length" + ] + }, + { + "name": "grid-row", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line> [ / <grid-line> ]?", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-row" + } + ], + "description": "Shorthand for 'grid-row-start' and 'grid-row-end'.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-row-end", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line>", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-row-end" + } + ], + "description": "Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-row-gap", + "browsers": [ + "FF52", + "C57", + "S10.1", + "O44" + ], + "status": "obsolete", + "syntax": "<length-percentage>", + "relevance": 2, + "description": "Specifies the gutters between grid rows. Replaced by 'row-gap' property.", + "restrictions": [ + "length" + ] + }, + { + "name": "grid-row-start", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one." + }, + { + "name": "span", + "description": "Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge." + } + ], + "syntax": "<grid-line>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-row-start" + } + ], + "description": "Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.", + "restrictions": [ + "identifier", + "integer", + "enum" + ] + }, + { + "name": "grid-template", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "none", + "description": "Sets all three properties to their initial values." + }, + { + "name": "min-content", + "description": "Represents the largest min-content contribution of the grid items occupying the grid track." + }, + { + "name": "max-content", + "description": "Represents the largest max-content contribution of the grid items occupying the grid track." + }, + { + "name": "auto", + "description": "As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track." + }, + { + "name": "subgrid", + "description": "Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value." + }, + { + "name": "minmax()", + "description": "Defines a size range greater than or equal to min and less than or equal to max." + }, + { + "name": "repeat()", + "description": "Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form." + } + ], + "syntax": "none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-template" + } + ], + "description": "Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.", + "restrictions": [ + "identifier", + "length", + "percentage", + "string", + "enum" + ] + }, + { + "name": "grid-template-areas", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "values": [ + { + "name": "none", + "description": "The grid container doesn't define any named grid areas." + } + ], + "syntax": "none | <string>+", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-template-areas" + } + ], + "description": "Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.", + "restrictions": [ + "string" + ] + }, + { + "name": "grid-template-columns", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "IE10", + "O44" + ], + "values": [ + { + "name": "none", + "description": "There is no explicit grid; any rows/columns will be implicitly generated." + }, + { + "name": "min-content", + "description": "Represents the largest min-content contribution of the grid items occupying the grid track." + }, + { + "name": "max-content", + "description": "Represents the largest max-content contribution of the grid items occupying the grid track." + }, + { + "name": "auto", + "description": "As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track." + }, + { + "name": "subgrid", + "description": "Indicates that the grid will align to its parent grid in that axis." + }, + { + "name": "minmax()", + "description": "Defines a size range greater than or equal to min and less than or equal to max." + }, + { + "name": "repeat()", + "description": "Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form." + } + ], + "syntax": "none | <track-list> | <auto-track-list> | subgrid <line-name-list>?", + "relevance": 66, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-template-columns" + } + ], + "description": "specifies, as a space-separated track list, the line names and track sizing functions of the grid.", + "restrictions": [ + "identifier", + "length", + "percentage", + "enum" + ] + }, + { + "name": "grid-template-rows", + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "IE10", + "O44" + ], + "values": [ + { + "name": "none", + "description": "There is no explicit grid; any rows/columns will be implicitly generated." + }, + { + "name": "min-content", + "description": "Represents the largest min-content contribution of the grid items occupying the grid track." + }, + { + "name": "max-content", + "description": "Represents the largest max-content contribution of the grid items occupying the grid track." + }, + { + "name": "auto", + "description": "As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track." + }, + { + "name": "subgrid", + "description": "Indicates that the grid will align to its parent grid in that axis." + }, + { + "name": "minmax()", + "description": "Defines a size range greater than or equal to min and less than or equal to max." + }, + { + "name": "repeat()", + "description": "Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form." + } + ], + "syntax": "none | <track-list> | <auto-track-list> | subgrid <line-name-list>?", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/grid-template-rows" + } + ], + "description": "specifies, as a space-separated track list, the line names and track sizing functions of the grid.", + "restrictions": [ + "identifier", + "length", + "percentage", + "string", + "enum" + ] + }, + { + "name": "height", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "The height depends on the values of other properties." + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 95, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/height" + } + ], + "description": "Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "hyphens", + "browsers": [ + "E79", + "FF43", + "S17", + "C55", + "IE10", + "O42" + ], + "values": [ + { + "name": "auto", + "description": "Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word." + }, + { + "name": "manual", + "description": "Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities" + }, + { + "name": "none", + "description": "Words are not broken at line breaks, even if characters inside the word suggest line break points." + } + ], + "syntax": "none | manual | auto", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/hyphens" + } + ], + "description": "Controls whether hyphenation is allowed to create more break opportunities within a line of text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "image-orientation", + "browsers": [ + "E81", + "FF26", + "S13.1", + "C81", + "O67" + ], + "values": [ + { + "name": "flip", + "description": "After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted." + }, + { + "name": "from-image", + "description": "If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image." + } + ], + "syntax": "from-image | <angle> | [ <angle>? flip ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/image-orientation" + } + ], + "description": "Specifies an orthogonal rotation to be applied to an image before it is laid out.", + "restrictions": [ + "angle" + ] + }, + { + "name": "image-rendering", + "browsers": [ + "E79", + "FF3.6", + "S6", + "C13", + "O15" + ], + "values": [ + { + "name": "auto", + "description": "The image should be scaled with an algorithm that maximizes the appearance of the image." + }, + { + "name": "crisp-edges", + "description": "The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process." + }, + { + "name": "-moz-crisp-edges", + "browsers": [ + "E79", + "FF3.6", + "S6", + "C13", + "O15" + ] + }, + { + "name": "optimizeQuality", + "description": "Deprecated." + }, + { + "name": "optimizeSpeed", + "description": "Deprecated." + }, + { + "name": "pixelated", + "description": "When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels." + } + ], + "syntax": "auto | crisp-edges | pixelated", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/image-rendering" + } + ], + "description": "Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.", + "restrictions": [ + "enum" + ] + }, + { + "name": "ime-mode", + "browsers": [ + "E12", + "FF3", + "IE5" + ], + "values": [ + { + "name": "active", + "description": "The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it." + }, + { + "name": "auto", + "description": "No change is made to the current input method editor state. This is the default." + }, + { + "name": "disabled", + "description": "The input method editor is disabled and may not be activated by the user." + }, + { + "name": "inactive", + "description": "The input method editor is initially inactive, but the user may activate it if they wish." + }, + { + "name": "normal", + "description": "The IME state should be normal; this value can be used in a user style sheet to override the page setting." + } + ], + "status": "obsolete", + "syntax": "auto | normal | active | inactive | disabled", + "relevance": 0, + "description": "Controls the state of the input method editor for text fields.", + "restrictions": [ + "enum" + ] + }, + { + "name": "inline-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "auto", + "description": "Depends on the values of other properties." + } + ], + "syntax": "<'width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inline-size" + } + ], + "description": "Size of an element in the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "isolation", + "browsers": [ + "E79", + "FF36", + "S8", + "C41", + "O30" + ], + "values": [ + { + "name": "auto", + "description": "Elements are not isolated unless an operation is applied that causes the creation of a stacking context." + }, + { + "name": "isolate", + "description": "In CSS will turn the element into a stacking context." + } + ], + "syntax": "auto | isolate", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/isolation" + } + ], + "description": "In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.", + "restrictions": [ + "enum" + ] + }, + { + "name": "justify-content", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "values": [ + { + "name": "center", + "description": "Flex items are packed toward the center of the line." + }, + { + "name": "start", + "description": "The items are packed flush to each other toward the start edge of the alignment container in the main axis." + }, + { + "name": "end", + "description": "The items are packed flush to each other toward the end edge of the alignment container in the main axis." + }, + { + "name": "left", + "description": "The items are packed flush to each other toward the left edge of the alignment container in the main axis." + }, + { + "name": "right", + "description": "The items are packed flush to each other toward the right edge of the alignment container in the main axis." + }, + { + "name": "safe", + "description": "If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start." + }, + { + "name": "unsafe", + "description": "Regardless of the relative sizes of the item and alignment container, the given alignment value is honored." + }, + { + "name": "stretch", + "description": "If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container." + }, + { + "name": "space-evenly", + "description": "The items are evenly distributed within the alignment container along the main axis." + }, + { + "name": "flex-end", + "description": "Flex items are packed toward the end of the line." + }, + { + "name": "flex-start", + "description": "Flex items are packed toward the start of the line." + }, + { + "name": "space-around", + "description": "Flex items are evenly distributed in the line, with half-size spaces on either end." + }, + { + "name": "space-between", + "description": "Flex items are evenly distributed in the line." + }, + { + "name": "baseline", + "description": "Specifies participation in first-baseline alignment." + }, + { + "name": "first baseline", + "description": "Specifies participation in first-baseline alignment." + }, + { + "name": "last baseline", + "description": "Specifies participation in last-baseline alignment." + } + ], + "syntax": "normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]", + "relevance": 87, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/justify-content" + } + ], + "description": "Aligns flex items along the main axis of the current line of the flex container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "kerning", + "values": [ + { + "name": "auto", + "description": "Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used." + } + ], + "relevance": 50, + "description": "Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.", + "restrictions": [ + "length", + "enum" + ] + }, + { + "name": "left", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O5" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 94, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/left" + } + ], + "description": "Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "letter-spacing", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "normal", + "description": "The spacing is the normal spacing for the current font. It is typically zero-length." + } + ], + "syntax": "normal | <length>", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/letter-spacing" + } + ], + "description": "Specifies the minimum, maximum, and optimal spacing between grapheme clusters.", + "restrictions": [ + "length" + ] + }, + { + "name": "lighting-color", + "browsers": [ + "E12", + "FF3", + "S6", + "C5", + "IE11", + "O15" + ], + "relevance": 50, + "description": "Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.", + "restrictions": [ + "color" + ] + }, + { + "name": "line-break", + "browsers": [ + "E14", + "FF69", + "S11", + "C58", + "IE5.5", + "O45" + ], + "values": [ + { + "name": "auto", + "description": "The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines." + }, + { + "name": "loose", + "description": "Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers." + }, + { + "name": "normal", + "description": "Breaks text using the most common set of line-breaking rules." + }, + { + "name": "strict", + "description": "Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'." + }, + { + "name": "anywhere", + "description": "There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved white spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ line breaking classes or mandated by the word-break property." + } + ], + "syntax": "auto | loose | normal | strict | anywhere", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/line-break" + } + ], + "description": "Specifies what set of line breaking restrictions are in effect within the element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "line-height", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "normal", + "description": "Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element." + } + ], + "syntax": "normal | <number> | <length> | <percentage>", + "relevance": 91, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/line-height" + } + ], + "description": "Determines the block-progression dimension of the text content area of an inline box.", + "restrictions": [ + "number", + "length", + "percentage" + ] + }, + { + "name": "list-style", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "armenian" + }, + { + "name": "circle", + "description": "A hollow circle." + }, + { + "name": "decimal" + }, + { + "name": "decimal-leading-zero" + }, + { + "name": "disc", + "description": "A filled circle." + }, + { + "name": "georgian" + }, + { + "name": "inside", + "description": "The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below." + }, + { + "name": "lower-alpha" + }, + { + "name": "lower-greek" + }, + { + "name": "lower-latin" + }, + { + "name": "lower-roman" + }, + { + "name": "none" + }, + { + "name": "outside", + "description": "The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows." + }, + { + "name": "square", + "description": "A filled square." + }, + { + "name": "symbols()", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Allows a counter style to be defined inline." + }, + { + "name": "upper-alpha" + }, + { + "name": "upper-latin" + }, + { + "name": "upper-roman" + }, + { + "name": "url()" + } + ], + "syntax": "<'list-style-type'> || <'list-style-position'> || <'list-style-image'>", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/list-style" + } + ], + "description": "Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'", + "restrictions": [ + "image", + "enum", + "url" + ] + }, + { + "name": "list-style-image", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "none", + "description": "The default contents of the of the list item's marker are given by 'list-style-type' instead." + } + ], + "syntax": "<image> | none", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/list-style-image" + } + ], + "description": "Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.", + "restrictions": [ + "image" + ] + }, + { + "name": "list-style-position", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "inside", + "description": "The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below." + }, + { + "name": "outside", + "description": "The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows." + } + ], + "syntax": "inside | outside", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/list-style-position" + } + ], + "description": "Specifies the position of the '::marker' pseudo-element's box in the list item.", + "restrictions": [ + "enum" + ] + }, + { + "name": "list-style-type", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "armenian", + "description": "Traditional uppercase Armenian numbering." + }, + { + "name": "circle", + "description": "A hollow circle." + }, + { + "name": "decimal", + "description": "Western decimal numbers." + }, + { + "name": "decimal-leading-zero", + "description": "Decimal numbers padded by initial zeros." + }, + { + "name": "disc", + "description": "A filled circle." + }, + { + "name": "georgian", + "description": "Traditional Georgian numbering." + }, + { + "name": "lower-alpha", + "description": "Lowercase ASCII letters." + }, + { + "name": "lower-greek", + "description": "Lowercase classical Greek." + }, + { + "name": "lower-latin", + "description": "Lowercase ASCII letters." + }, + { + "name": "lower-roman", + "description": "Lowercase ASCII Roman numerals." + }, + { + "name": "none", + "description": "No marker" + }, + { + "name": "square", + "description": "A filled square." + }, + { + "name": "symbols()", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "description": "Allows a counter style to be defined inline." + }, + { + "name": "upper-alpha", + "description": "Uppercase ASCII letters." + }, + { + "name": "upper-latin", + "description": "Uppercase ASCII letters." + }, + { + "name": "upper-roman", + "description": "Uppercase ASCII Roman numerals." + } + ], + "syntax": "<counter-style> | <string> | none", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/list-style-type" + } + ], + "description": "Used to construct the default contents of a list item's marker", + "restrictions": [ + "enum", + "string" + ] + }, + { + "name": "margin", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "[ <length> | <percentage> | auto ]{1,4}", + "relevance": 95, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin" + } + ], + "description": "Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-block-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<'margin-left'>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-block-end" + } + ], + "description": "Logical 'margin-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-block-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<'margin-left'>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-block-start" + } + ], + "description": "Logical 'margin-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-bottom", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-bottom" + } + ], + "description": "Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-inline-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<'margin-left'>", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-inline-end" + } + ], + "description": "Logical 'margin-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-inline-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<'margin-left'>", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-inline-start" + } + ], + "description": "Logical 'margin-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-left", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-left" + } + ], + "description": "Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-right", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-right" + } + ], + "description": "Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "margin-top", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "auto" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 93, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-top" + } + ], + "description": "Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "marker", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "none", + "description": "Indicates that no marker symbol will be drawn at the given vertex or vertices." + }, + { + "name": "url()", + "description": "Indicates that the <marker> element referenced will be used." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/marker" + } + ], + "description": "Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given 'path' element or basic shape.", + "restrictions": [ + "url" + ] + }, + { + "name": "marker-end", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "none", + "description": "Indicates that no marker symbol will be drawn at the given vertex or vertices." + }, + { + "name": "url()", + "description": "Indicates that the <marker> element referenced will be used." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/marker-end" + } + ], + "description": "Specifies the marker that will be drawn at the last vertices of the given markable element.", + "restrictions": [ + "url" + ] + }, + { + "name": "marker-mid", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "none", + "description": "Indicates that no marker symbol will be drawn at the given vertex or vertices." + }, + { + "name": "url()", + "description": "Indicates that the <marker> element referenced will be used." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/marker-mid" + } + ], + "description": "Specifies the marker that will be drawn at all vertices except the first and last.", + "restrictions": [ + "url" + ] + }, + { + "name": "marker-start", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "none", + "description": "Indicates that no marker symbol will be drawn at the given vertex or vertices." + }, + { + "name": "url()", + "description": "Indicates that the <marker> element referenced will be used." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/marker-start" + } + ], + "description": "Specifies the marker that will be drawn at the first vertices of the given markable element.", + "restrictions": [ + "url" + ] + }, + { + "name": "mask-image", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O15" + ], + "values": [ + { + "name": "none", + "description": "Counts as a transparent black image layer." + }, + { + "name": "url()", + "description": "Reference to a <mask element or to a CSS image." + } + ], + "syntax": "<mask-reference>#", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-image" + } + ], + "description": "Sets the mask layer image of an element.", + "restrictions": [ + "url", + "image", + "enum" + ] + }, + { + "name": "mask-mode", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "values": [ + { + "name": "alpha", + "description": "Alpha values of the mask layer image should be used as the mask values." + }, + { + "name": "auto", + "description": "Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image." + }, + { + "name": "luminance", + "description": "Luminance values of the mask layer image should be used as the mask values." + } + ], + "syntax": "<masking-mode>#", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-mode" + } + ], + "description": "Indicates whether the mask layer image is treated as luminance mask or alpha mask.", + "restrictions": [ + "url", + "image", + "enum" + ] + }, + { + "name": "mask-origin", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "syntax": "<geometry-box>#", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-origin" + } + ], + "description": "Specifies the mask positioning area.", + "restrictions": [ + "geometry-box", + "enum" + ] + }, + { + "name": "mask-position", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "syntax": "<position>#", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-position" + } + ], + "description": "Specifies how mask layer images are positioned.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "mask-repeat", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "syntax": "<repeat-style>#", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-repeat" + } + ], + "description": "Specifies how mask layer images are tiled after they have been sized and positioned.", + "restrictions": [ + "repeat" + ] + }, + { + "name": "mask-size", + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "values": [ + { + "name": "auto", + "description": "Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%." + }, + { + "name": "contain", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area." + }, + { + "name": "cover", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area." + } + ], + "syntax": "<bg-size>#", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-size" + } + ], + "description": "Specifies the size of the mask layer images.", + "restrictions": [ + "length", + "percentage", + "enum" + ] + }, + { + "name": "mask-type", + "browsers": [ + "E79", + "FF35", + "S7", + "C24", + "O15" + ], + "values": [ + { + "name": "alpha", + "description": "Indicates that the alpha values of the mask should be used." + }, + { + "name": "luminance", + "description": "Indicates that the luminance values of the mask should be used." + } + ], + "syntax": "luminance | alpha", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-type" + } + ], + "description": "Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.", + "restrictions": [ + "enum" + ] + }, + { + "name": "max-block-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "none", + "description": "No limit on the width of the box." + } + ], + "syntax": "<'max-width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/max-block-size" + } + ], + "description": "Maximum size of an element in the direction opposite that of the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "max-height", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C18", + "IE7", + "O7" + ], + "values": [ + { + "name": "none", + "description": "No limit on the height of the box." + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C18", + "IE7", + "O7" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C18", + "IE7", + "O7" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C18", + "IE7", + "O7" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "none | <length-percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 85, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/max-height" + } + ], + "description": "Allows authors to constrain content height to a certain range.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "max-inline-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "none", + "description": "No limit on the height of the box." + } + ], + "syntax": "<'max-width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/max-inline-size" + } + ], + "description": "Maximum size of an element in the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "max-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "values": [ + { + "name": "none", + "description": "No limit on the width of the box." + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "none | <length-percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/max-width" + } + ], + "description": "Allows authors to constrain content width to a certain range.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "min-block-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "syntax": "<'min-width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/min-block-size" + } + ], + "description": "Minimal size of an element in the direction opposite that of the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "min-height", + "browsers": [ + "E12", + "FF3", + "S1.3", + "C1", + "IE7", + "O4" + ], + "values": [ + { + "name": "auto", + "browsers": [ + "E12", + "FF3", + "S1.3", + "C1", + "IE7", + "O4" + ] + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF3", + "S1.3", + "C1", + "IE7", + "O4" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF3", + "S1.3", + "C1", + "IE7", + "O4" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF3", + "S1.3", + "C1", + "IE7", + "O4" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/min-height" + } + ], + "description": "Allows authors to constrain content height to a certain range.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "min-inline-size", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C57", + "O44" + ], + "syntax": "<'min-width'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/min-inline-size" + } + ], + "description": "Minimal size of an element in the direction specified by 'writing-mode'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "min-width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "values": [ + { + "name": "auto", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ] + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE7", + "O4" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 87, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/min-width" + } + ], + "description": "Allows authors to constrain content width to a certain range.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "mix-blend-mode", + "browsers": [ + "E79", + "FF32", + "S8", + "C41", + "O28" + ], + "values": [ + { + "name": "normal", + "description": "Default attribute which specifies no blending" + }, + { + "name": "multiply", + "description": "The source color is multiplied by the destination color and replaces the destination." + }, + { + "name": "screen", + "description": "Multiplies the complements of the backdrop and source color values, then complements the result." + }, + { + "name": "overlay", + "description": "Multiplies or screens the colors, depending on the backdrop color value." + }, + { + "name": "darken", + "description": "Selects the darker of the backdrop and source colors." + }, + { + "name": "lighten", + "description": "Selects the lighter of the backdrop and source colors." + }, + { + "name": "color-dodge", + "description": "Brightens the backdrop color to reflect the source color." + }, + { + "name": "color-burn", + "description": "Darkens the backdrop color to reflect the source color." + }, + { + "name": "hard-light", + "description": "Multiplies or screens the colors, depending on the source color value." + }, + { + "name": "soft-light", + "description": "Darkens or lightens the colors, depending on the source color value." + }, + { + "name": "difference", + "description": "Subtracts the darker of the two constituent colors from the lighter color.." + }, + { + "name": "exclusion", + "description": "Produces an effect similar to that of the Difference mode but lower in contrast." + }, + { + "name": "hue", + "browsers": [ + "E79", + "FF32", + "S8", + "C41", + "O28" + ], + "description": "Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color." + }, + { + "name": "saturation", + "browsers": [ + "E79", + "FF32", + "S8", + "C41", + "O28" + ], + "description": "Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color." + }, + { + "name": "color", + "browsers": [ + "E79", + "FF32", + "S8", + "C41", + "O28" + ], + "description": "Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color." + }, + { + "name": "luminosity", + "browsers": [ + "E79", + "FF32", + "S8", + "C41", + "O28" + ], + "description": "Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color." + } + ], + "syntax": "<blend-mode> | plus-lighter", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode" + } + ], + "description": "Defines the formula that must be used to mix the colors with the backdrop.", + "restrictions": [ + "enum" + ] + }, + { + "name": "motion", + "browsers": [ + "C46", + "O33" + ], + "values": [ + { + "name": "none", + "description": "No motion path gets created." + }, + { + "name": "path()", + "description": "Defines an SVG path as a string, with optional 'fill-rule' as the first argument." + }, + { + "name": "auto", + "description": "Indicates that the object is rotated by the angle of the direction of the motion path." + }, + { + "name": "reverse", + "description": "Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees." + } + ], + "relevance": 50, + "description": "Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.", + "restrictions": [ + "url", + "length", + "percentage", + "angle", + "shape", + "geometry-box", + "enum" + ] + }, + { + "name": "motion-offset", + "browsers": [ + "C46", + "O33" + ], + "relevance": 50, + "description": "A distance that describes the position along the specified motion path.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "motion-path", + "browsers": [ + "C46", + "O33" + ], + "values": [ + { + "name": "none", + "description": "No motion path gets created." + }, + { + "name": "path()", + "description": "Defines an SVG path as a string, with optional 'fill-rule' as the first argument." + } + ], + "relevance": 50, + "description": "Specifies the motion path the element gets positioned at.", + "restrictions": [ + "url", + "shape", + "geometry-box", + "enum" + ] + }, + { + "name": "motion-rotation", + "browsers": [ + "C46", + "O33" + ], + "values": [ + { + "name": "auto", + "description": "Indicates that the object is rotated by the angle of the direction of the motion path." + }, + { + "name": "reverse", + "description": "Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees." + } + ], + "relevance": 50, + "description": "Defines the direction of the element while positioning along the motion path.", + "restrictions": [ + "angle" + ] + }, + { + "name": "-moz-animation", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + }, + { + "name": "none", + "description": "No animation is performed" + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Shorthand property combines six of the animation properties into a single property.", + "restrictions": [ + "time", + "enum", + "timing-function", + "identifier", + "number" + ] + }, + { + "name": "-moz-animation-delay", + "browsers": [ + "FF9" + ], + "relevance": 50, + "description": "Defines when the animation will start.", + "restrictions": [ + "time" + ] + }, + { + "name": "-moz-animation-direction", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Defines whether or not the animation should play in reverse on alternate cycles.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-animation-duration", + "browsers": [ + "FF9" + ], + "relevance": 50, + "description": "Defines the length of time that an animation takes to complete one cycle.", + "restrictions": [ + "time" + ] + }, + { + "name": "-moz-animation-iteration-count", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + } + ], + "relevance": 50, + "description": "Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.", + "restrictions": [ + "number", + "enum" + ] + }, + { + "name": "-moz-animation-name", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "none", + "description": "No animation is performed" + } + ], + "relevance": 50, + "description": "Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.", + "restrictions": [ + "identifier", + "enum" + ] + }, + { + "name": "-moz-animation-play-state", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "paused", + "description": "A running animation will be paused." + }, + { + "name": "running", + "description": "Resume playback of a paused animation." + } + ], + "relevance": 50, + "description": "Defines whether the animation is running or paused.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-animation-timing-function", + "browsers": [ + "FF9" + ], + "relevance": 50, + "description": "Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "-moz-appearance", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "button" + }, + { + "name": "button-arrow-down" + }, + { + "name": "button-arrow-next" + }, + { + "name": "button-arrow-previous" + }, + { + "name": "button-arrow-up" + }, + { + "name": "button-bevel" + }, + { + "name": "checkbox" + }, + { + "name": "checkbox-container" + }, + { + "name": "checkbox-label" + }, + { + "name": "dialog" + }, + { + "name": "groupbox" + }, + { + "name": "listbox" + }, + { + "name": "menuarrow" + }, + { + "name": "menuimage" + }, + { + "name": "menuitem" + }, + { + "name": "menuitemtext" + }, + { + "name": "menulist" + }, + { + "name": "menulist-button" + }, + { + "name": "menulist-text" + }, + { + "name": "menulist-textfield" + }, + { + "name": "menupopup" + }, + { + "name": "menuradio" + }, + { + "name": "menuseparator" + }, + { + "name": "-moz-mac-unified-toolbar" + }, + { + "name": "-moz-win-borderless-glass" + }, + { + "name": "-moz-win-browsertabbar-toolbox" + }, + { + "name": "-moz-win-communications-toolbox" + }, + { + "name": "-moz-win-glass" + }, + { + "name": "-moz-win-media-toolbox" + }, + { + "name": "none" + }, + { + "name": "progressbar" + }, + { + "name": "progresschunk" + }, + { + "name": "radio" + }, + { + "name": "radio-container" + }, + { + "name": "radio-label" + }, + { + "name": "radiomenuitem" + }, + { + "name": "resizer" + }, + { + "name": "resizerpanel" + }, + { + "name": "scrollbarbutton-down" + }, + { + "name": "scrollbarbutton-left" + }, + { + "name": "scrollbarbutton-right" + }, + { + "name": "scrollbarbutton-up" + }, + { + "name": "scrollbar-small" + }, + { + "name": "scrollbartrack-horizontal" + }, + { + "name": "scrollbartrack-vertical" + }, + { + "name": "separator" + }, + { + "name": "spinner" + }, + { + "name": "spinner-downbutton" + }, + { + "name": "spinner-textfield" + }, + { + "name": "spinner-upbutton" + }, + { + "name": "statusbar" + }, + { + "name": "statusbarpanel" + }, + { + "name": "tab" + }, + { + "name": "tabpanels" + }, + { + "name": "tab-scroll-arrow-back" + }, + { + "name": "tab-scroll-arrow-forward" + }, + { + "name": "textfield" + }, + { + "name": "textfield-multiline" + }, + { + "name": "toolbar" + }, + { + "name": "toolbox" + }, + { + "name": "tooltip" + }, + { + "name": "treeheadercell" + }, + { + "name": "treeheadersortarrow" + }, + { + "name": "treeitem" + }, + { + "name": "treetwistyopen" + }, + { + "name": "treeview" + }, + { + "name": "treewisty" + }, + { + "name": "window" + } + ], + "status": "nonstandard", + "syntax": "none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized", + "relevance": 0, + "description": "Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-backface-visibility", + "browsers": [ + "FF10" + ], + "values": [ + { + "name": "hidden" + }, + { + "name": "visible" + } + ], + "relevance": 50, + "description": "Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-background-clip", + "browsers": [ + "FF1-3.6" + ], + "values": [ + { + "name": "padding" + } + ], + "relevance": 50, + "description": "Determines the background painting area.", + "restrictions": [ + "box", + "enum" + ] + }, + { + "name": "-moz-background-inline-policy", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "bounding-box" + }, + { + "name": "continuous" + }, + { + "name": "each-box" + } + ], + "relevance": 50, + "description": "In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-background-origin", + "browsers": [ + "FF1" + ], + "relevance": 50, + "description": "For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).", + "restrictions": [ + "box" + ] + }, + { + "name": "-moz-border-bottom-colors", + "browsers": [ + "FF1" + ], + "status": "nonstandard", + "syntax": "<color>+ | none", + "relevance": 0, + "description": "Sets a list of colors for the bottom border.", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-border-image", + "browsers": [ + "FF3.6" + ], + "values": [ + { + "name": "auto", + "description": "If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead." + }, + { + "name": "fill", + "description": "Causes the middle part of the border-image to be preserved." + }, + { + "name": "none" + }, + { + "name": "repeat", + "description": "The image is tiled (repeated) to fill the area." + }, + { + "name": "round", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does." + }, + { + "name": "space", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles." + }, + { + "name": "stretch", + "description": "The image is stretched to fill the area." + }, + { + "name": "url()" + } + ], + "relevance": 50, + "description": "Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "percentage", + "number", + "url", + "enum" + ] + }, + { + "name": "-moz-border-left-colors", + "browsers": [ + "FF1" + ], + "status": "nonstandard", + "syntax": "<color>+ | none", + "relevance": 0, + "description": "Sets a list of colors for the bottom border.", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-border-right-colors", + "browsers": [ + "FF1" + ], + "status": "nonstandard", + "syntax": "<color>+ | none", + "relevance": 0, + "description": "Sets a list of colors for the bottom border.", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-border-top-colors", + "browsers": [ + "FF1" + ], + "status": "nonstandard", + "syntax": "<color>+ | none", + "relevance": 0, + "description": "Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-box-align", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "baseline", + "description": "If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used." + }, + { + "name": "center", + "description": "Any extra space is divided evenly, with half placed above the child and the other half placed after the child." + }, + { + "name": "end", + "description": "For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element." + }, + { + "name": "start", + "description": "For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element." + }, + { + "name": "stretch", + "description": "The height of each child is adjusted to that of the containing block." + } + ], + "relevance": 50, + "description": "Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-box-direction", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "normal", + "description": "A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom." + }, + { + "name": "reverse", + "description": "A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top." + } + ], + "relevance": 50, + "description": "Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-box-flex", + "browsers": [ + "FF1" + ], + "relevance": 50, + "description": "Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.", + "restrictions": [ + "number" + ] + }, + { + "name": "-moz-box-flexgroup", + "browsers": [ + "FF1" + ], + "relevance": 50, + "description": "Flexible elements can be assigned to flex groups using the 'box-flex-group' property.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-moz-box-ordinal-group", + "browsers": [ + "FF1" + ], + "relevance": 50, + "description": "Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-moz-box-orient", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "block-axis", + "description": "Elements are oriented along the box's axis." + }, + { + "name": "horizontal", + "description": "The box displays its children from left to right in a horizontal line." + }, + { + "name": "inline-axis", + "description": "Elements are oriented vertically." + }, + { + "name": "vertical", + "description": "The box displays its children from stacked from top to bottom vertically." + } + ], + "relevance": 50, + "description": "In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-box-pack", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "center", + "description": "The extra space is divided evenly, with half placed before the first child and the other half placed after the last child." + }, + { + "name": "end", + "description": "For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child." + }, + { + "name": "justify", + "description": "The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start." + }, + { + "name": "start", + "description": "For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child." + } + ], + "relevance": 50, + "description": "Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-box-sizing", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "border-box", + "description": "The specified width and height (and respective min/max properties) on this element determine the border box of the element." + }, + { + "name": "content-box", + "description": "Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element." + }, + { + "name": "padding-box", + "description": "The specified width and height (and respective min/max properties) on this element determine the padding box of the element." + } + ], + "relevance": 50, + "description": "Box Model addition in CSS3.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-column-count", + "browsers": [ + "FF3.5" + ], + "values": [ + { + "name": "auto", + "description": "Determines the number of columns by the 'column-width' property and the element width." + } + ], + "relevance": 50, + "description": "Describes the optimal number of columns into which the content of the element will be flowed.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-moz-column-gap", + "browsers": [ + "FF3.5" + ], + "values": [ + { + "name": "normal", + "description": "User agent specific and typically equivalent to 1em." + } + ], + "relevance": 50, + "description": "Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.", + "restrictions": [ + "length" + ] + }, + { + "name": "-moz-column-rule", + "browsers": [ + "FF3.5" + ], + "relevance": 50, + "description": "Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "-moz-column-rule-color", + "browsers": [ + "FF3.5" + ], + "relevance": 50, + "description": "Sets the color of the column rule", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-column-rule-style", + "browsers": [ + "FF3.5" + ], + "relevance": 50, + "description": "Sets the style of the rule between columns of an element.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "-moz-column-rule-width", + "browsers": [ + "FF3.5" + ], + "relevance": 50, + "description": "Sets the width of the rule between columns. Negative values are not allowed.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "-moz-columns", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "relevance": 50, + "description": "A shorthand property which sets both 'column-width' and 'column-count'.", + "restrictions": [ + "length", + "integer" + ] + }, + { + "name": "-moz-column-width", + "browsers": [ + "FF3.5" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "relevance": 50, + "description": "This property describes the width of columns in multicol elements.", + "restrictions": [ + "length" + ] + }, + { + "name": "-moz-font-feature-settings", + "browsers": [ + "FF4" + ], + "values": [ + { + "name": "\"c2cs\"" + }, + { + "name": "\"dlig\"" + }, + { + "name": "\"kern\"" + }, + { + "name": "\"liga\"" + }, + { + "name": "\"lnum\"" + }, + { + "name": "\"onum\"" + }, + { + "name": "\"smcp\"" + }, + { + "name": "\"swsh\"" + }, + { + "name": "\"tnum\"" + }, + { + "name": "normal", + "description": "No change in glyph substitution or positioning occurs." + }, + { + "name": "off", + "browsers": [ + "FF4" + ] + }, + { + "name": "on", + "browsers": [ + "FF4" + ] + } + ], + "relevance": 50, + "description": "Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.", + "restrictions": [ + "string", + "integer" + ] + }, + { + "name": "-moz-hyphens", + "browsers": [ + "FF9" + ], + "values": [ + { + "name": "auto", + "description": "Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word." + }, + { + "name": "manual", + "description": "Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities" + }, + { + "name": "none", + "description": "Words are not broken at line breaks, even if characters inside the word suggest line break points." + } + ], + "relevance": 50, + "description": "Controls whether hyphenation is allowed to create more break opportunities within a line of text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-perspective", + "browsers": [ + "FF10" + ], + "values": [ + { + "name": "none", + "description": "No perspective transform is applied." + } + ], + "relevance": 50, + "description": "Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.", + "restrictions": [ + "length" + ] + }, + { + "name": "-moz-perspective-origin", + "browsers": [ + "FF10" + ], + "relevance": 50, + "description": "Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "-moz-text-align-last", + "browsers": [ + "FF12" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "center", + "description": "The inline contents are centered within the line box." + }, + { + "name": "justify", + "description": "The text is justified according to the method specified by the 'text-justify' property." + }, + { + "name": "left", + "description": "The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text." + }, + { + "name": "right", + "description": "The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text." + } + ], + "relevance": 50, + "description": "Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-text-decoration-color", + "browsers": [ + "FF6" + ], + "relevance": 50, + "description": "Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.", + "restrictions": [ + "color" + ] + }, + { + "name": "-moz-text-decoration-line", + "browsers": [ + "FF6" + ], + "values": [ + { + "name": "line-through", + "description": "Each line of text has a line through the middle." + }, + { + "name": "none", + "description": "Neither produces nor inhibits text decoration." + }, + { + "name": "overline", + "description": "Each line of text has a line above it." + }, + { + "name": "underline", + "description": "Each line of text is underlined." + } + ], + "relevance": 50, + "description": "Specifies what line decorations, if any, are added to the element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-text-decoration-style", + "browsers": [ + "FF6" + ], + "values": [ + { + "name": "dashed", + "description": "Produces a dashed line style." + }, + { + "name": "dotted", + "description": "Produces a dotted line." + }, + { + "name": "double", + "description": "Produces a double line." + }, + { + "name": "none", + "description": "Produces no line." + }, + { + "name": "solid", + "description": "Produces a solid line." + }, + { + "name": "wavy", + "description": "Produces a wavy line." + } + ], + "relevance": 50, + "description": "Specifies the line style for underline, line-through and overline text decoration.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-text-size-adjust", + "browsers": [ + "FF" + ], + "values": [ + { + "name": "auto", + "description": "Renderers must use the default size adjustment when displaying on a small device." + }, + { + "name": "none", + "description": "Renderers must not do size adjustment when displaying on a small device." + } + ], + "relevance": 50, + "description": "Specifies a size adjustment for displaying text content in mobile browsers.", + "restrictions": [ + "enum", + "percentage" + ] + }, + { + "name": "-moz-transform", + "browsers": [ + "FF3.5" + ], + "values": [ + { + "name": "matrix()", + "description": "Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]" + }, + { + "name": "matrix3d()", + "description": "Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order." + }, + { + "name": "none" + }, + { + "name": "perspective", + "description": "Specifies a perspective projection matrix." + }, + { + "name": "rotate()", + "description": "Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property." + }, + { + "name": "rotate3d()", + "description": "Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters." + }, + { + "name": "rotateX('angle')", + "description": "Specifies a clockwise rotation by the given angle about the X axis." + }, + { + "name": "rotateY('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Y axis." + }, + { + "name": "rotateZ('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Z axis." + }, + { + "name": "scale()", + "description": "Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first." + }, + { + "name": "scale3d()", + "description": "Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters." + }, + { + "name": "scaleX()", + "description": "Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter." + }, + { + "name": "scaleY()", + "description": "Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter." + }, + { + "name": "scaleZ()", + "description": "Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter." + }, + { + "name": "skew()", + "description": "Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)." + }, + { + "name": "skewX()", + "description": "Specifies a skew transformation along the X axis by the given angle." + }, + { + "name": "skewY()", + "description": "Specifies a skew transformation along the Y axis by the given angle." + }, + { + "name": "translate()", + "description": "Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter." + }, + { + "name": "translate3d()", + "description": "Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively." + }, + { + "name": "translateX()", + "description": "Specifies a translation by the given amount in the X direction." + }, + { + "name": "translateY()", + "description": "Specifies a translation by the given amount in the Y direction." + }, + { + "name": "translateZ()", + "description": "Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0." + } + ], + "relevance": 50, + "description": "A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-moz-transform-origin", + "browsers": [ + "FF3.5" + ], + "relevance": 50, + "description": "Establishes the origin of transformation for an element.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "-moz-transition", + "browsers": [ + "FF4" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Shorthand property combines four of the transition properties into a single property.", + "restrictions": [ + "time", + "property", + "timing-function", + "enum" + ] + }, + { + "name": "-moz-transition-delay", + "browsers": [ + "FF4" + ], + "relevance": 50, + "description": "Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.", + "restrictions": [ + "time" + ] + }, + { + "name": "-moz-transition-duration", + "browsers": [ + "FF4" + ], + "relevance": 50, + "description": "Specifies how long the transition from the old value to the new value should take.", + "restrictions": [ + "time" + ] + }, + { + "name": "-moz-transition-property", + "browsers": [ + "FF4" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Specifies the name of the CSS property to which the transition is applied.", + "restrictions": [ + "property" + ] + }, + { + "name": "-moz-transition-timing-function", + "browsers": [ + "FF4" + ], + "relevance": 50, + "description": "Describes how the intermediate values used during a transition will be calculated.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "-moz-user-focus", + "browsers": [ + "FF1" + ], + "values": [ + { + "name": "ignore" + }, + { + "name": "normal" + } + ], + "status": "obsolete", + "syntax": "ignore | normal | select-after | select-before | select-menu | select-same | select-all | none", + "relevance": 0, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus" + } + ], + "description": "Used to indicate whether the element can have focus." + }, + { + "name": "-moz-user-select", + "browsers": [ + "FF1.5" + ], + "values": [ + { + "name": "all" + }, + { + "name": "element" + }, + { + "name": "elements" + }, + { + "name": "-moz-all" + }, + { + "name": "-moz-none" + }, + { + "name": "none" + }, + { + "name": "text" + }, + { + "name": "toggle" + } + ], + "relevance": 50, + "description": "Controls the appearance of selection.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-accelerator", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "false", + "description": "The element does not contain an accelerator key sequence." + }, + { + "name": "true", + "description": "The element contains an accelerator key sequence." + } + ], + "status": "nonstandard", + "syntax": "false | true", + "relevance": 0, + "description": "IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-behavior", + "browsers": [ + "IE8" + ], + "relevance": 50, + "description": "IE only. Used to extend behaviors of the browser", + "restrictions": [ + "url" + ] + }, + { + "name": "-ms-block-progression", + "browsers": [ + "IE8" + ], + "values": [ + { + "name": "bt", + "description": "Bottom-to-top block flow. Layout is horizontal." + }, + { + "name": "lr", + "description": "Left-to-right direction. The flow orientation is vertical." + }, + { + "name": "rl", + "description": "Right-to-left direction. The flow orientation is vertical." + }, + { + "name": "tb", + "description": "Top-to-bottom direction. The flow orientation is horizontal." + } + ], + "status": "nonstandard", + "syntax": "tb | rl | bt | lr", + "relevance": 0, + "description": "Sets the block-progression value and the flow orientation", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-content-zoom-chaining", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "chained", + "description": "The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown." + }, + { + "name": "none", + "description": "A bounce effect is shown when the user hits a zoom limit during a manipulation." + } + ], + "status": "nonstandard", + "syntax": "none | chained", + "relevance": 0, + "description": "Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation." + }, + { + "name": "-ms-content-zooming", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none", + "description": "The element is not zoomable." + }, + { + "name": "zoom", + "description": "The element is zoomable." + } + ], + "status": "nonstandard", + "syntax": "none | zoom", + "relevance": 0, + "description": "Specifies whether zooming is enabled.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-content-zoom-limit", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>", + "relevance": 0, + "description": "Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.", + "restrictions": [ + "percentage" + ] + }, + { + "name": "-ms-content-zoom-limit-max", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<percentage>", + "relevance": 0, + "description": "Specifies the maximum zoom factor.", + "restrictions": [ + "percentage" + ] + }, + { + "name": "-ms-content-zoom-limit-min", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<percentage>", + "relevance": 0, + "description": "Specifies the minimum zoom factor.", + "restrictions": [ + "percentage" + ] + }, + { + "name": "-ms-content-zoom-snap", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "mandatory", + "description": "Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point." + }, + { + "name": "none", + "description": "Indicates that zooming is unaffected by any defined snap-points." + }, + { + "name": "proximity", + "description": "Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point." + }, + { + "name": "snapInterval(100%, 100%)", + "description": "Specifies where the snap-points will be placed." + }, + { + "name": "snapList()", + "description": "Specifies the position of individual snap-points as a comma-separated list of zoom factors." + } + ], + "status": "nonstandard", + "syntax": "<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>", + "relevance": 0, + "description": "Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties." + }, + { + "name": "-ms-content-zoom-snap-points", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "snapInterval(100%, 100%)", + "description": "Specifies where the snap-points will be placed." + }, + { + "name": "snapList()", + "description": "Specifies the position of individual snap-points as a comma-separated list of zoom factors." + } + ], + "status": "nonstandard", + "syntax": "snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )", + "relevance": 0, + "description": "Defines where zoom snap-points are located." + }, + { + "name": "-ms-content-zoom-snap-type", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "mandatory", + "description": "Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point." + }, + { + "name": "none", + "description": "Indicates that zooming is unaffected by any defined snap-points." + }, + { + "name": "proximity", + "description": "Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point." + } + ], + "status": "nonstandard", + "syntax": "none | proximity | mandatory", + "relevance": 0, + "description": "Specifies how zooming is affected by defined snap-points.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-filter", + "browsers": [ + "IE8-9" + ], + "status": "nonstandard", + "syntax": "<string>", + "relevance": 0, + "description": "IE only. Used to produce visual effects.", + "restrictions": [ + "string" + ] + }, + { + "name": "-ms-flex", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Retrieves the value of the main size property as the used 'flex-basis'." + }, + { + "name": "none", + "description": "Expands to '0 0 auto'." + } + ], + "relevance": 50, + "description": "specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.", + "restrictions": [ + "length", + "number", + "percentage" + ] + }, + { + "name": "-ms-flex-align", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "baseline", + "description": "If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item's margin box is centered in the cross axis within the line." + }, + { + "name": "end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "start", + "description": "The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'." + } + ], + "relevance": 50, + "description": "Aligns flex items along the cross axis of the current line of the flex container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-direction", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "column", + "description": "The flex container's main axis has the same orientation as the block axis of the current writing mode." + }, + { + "name": "column-reverse", + "description": "Same as 'column', except the main-start and main-end directions are swapped." + }, + { + "name": "row", + "description": "The flex container's main axis has the same orientation as the inline axis of the current writing mode." + }, + { + "name": "row-reverse", + "description": "Same as 'row', except the main-start and main-end directions are swapped." + } + ], + "relevance": 50, + "description": "Specifies how flex items are placed in the flex container, by setting the direction of the flex container's main axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-flow", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "column", + "description": "The flex container's main axis has the same orientation as the block axis of the current writing mode." + }, + { + "name": "column-reverse", + "description": "Same as 'column', except the main-start and main-end directions are swapped." + }, + { + "name": "nowrap", + "description": "The flex container is single-line." + }, + { + "name": "row", + "description": "The flex container's main axis has the same orientation as the inline axis of the current writing mode." + }, + { + "name": "wrap", + "description": "The flexbox is multi-line." + }, + { + "name": "wrap-reverse", + "description": "Same as 'wrap', except the cross-start and cross-end directions are swapped." + } + ], + "relevance": 50, + "description": "Specifies how flexbox items are placed in the flexbox.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-item-align", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself." + }, + { + "name": "baseline", + "description": "If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item's margin box is centered in the cross axis within the line." + }, + { + "name": "end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "start", + "description": "The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + } + ], + "relevance": 50, + "description": "Allows the default alignment along the cross axis to be overridden for individual flex items.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-line-pack", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "center", + "description": "Lines are packed toward the center of the flex container." + }, + { + "name": "distribute", + "description": "Lines are evenly distributed in the flex container, with half-size spaces on either end." + }, + { + "name": "end", + "description": "Lines are packed toward the end of the flex container." + }, + { + "name": "justify", + "description": "Lines are evenly distributed in the flex container." + }, + { + "name": "start", + "description": "Lines are packed toward the start of the flex container." + }, + { + "name": "stretch", + "description": "Lines stretch to take up the remaining space." + } + ], + "relevance": 50, + "description": "Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-order", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-flex-pack", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "center", + "description": "Flex items are packed toward the center of the line." + }, + { + "name": "distribute", + "description": "Flex items are evenly distributed in the line, with half-size spaces on either end." + }, + { + "name": "end", + "description": "Flex items are packed toward the end of the line." + }, + { + "name": "justify", + "description": "Flex items are evenly distributed in the line." + }, + { + "name": "start", + "description": "Flex items are packed toward the start of the line." + } + ], + "relevance": 50, + "description": "Aligns flex items along the main axis of the current line of the flex container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flex-wrap", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "nowrap", + "description": "The flex container is single-line." + }, + { + "name": "wrap", + "description": "The flexbox is multi-line." + }, + { + "name": "wrap-reverse", + "description": "Same as 'wrap', except the cross-start and cross-end directions are swapped." + } + ], + "relevance": 50, + "description": "Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-flow-from", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none", + "description": "The block container is not a CSS Region." + } + ], + "status": "nonstandard", + "syntax": "[ none | <custom-ident> ]#", + "relevance": 0, + "description": "Makes a block container a region and associates it with a named flow.", + "restrictions": [ + "identifier" + ] + }, + { + "name": "-ms-flow-into", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none", + "description": "The element is not moved to a named flow and normal CSS processing takes place." + } + ], + "status": "nonstandard", + "syntax": "[ none | <custom-ident> ]#", + "relevance": 0, + "description": "Places an element or its contents into a named flow.", + "restrictions": [ + "identifier" + ] + }, + { + "name": "-ms-grid-column", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "end" + }, + { + "name": "start" + } + ], + "relevance": 50, + "description": "Used to place grid items and explicitly defined grid cells in the Grid.", + "restrictions": [ + "integer", + "string", + "enum" + ] + }, + { + "name": "-ms-grid-column-align", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "center", + "description": "Places the center of the Grid Item's margin box at the center of the Grid Item's column." + }, + { + "name": "end", + "description": "Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column." + }, + { + "name": "start", + "description": "Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column." + }, + { + "name": "stretch", + "description": "Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column." + } + ], + "relevance": 50, + "description": "Aligns the columns in a grid.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-grid-columns", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "none | <track-list> | <auto-track-list>", + "relevance": 0, + "description": "Lays out the columns of the grid." + }, + { + "name": "-ms-grid-column-span", + "browsers": [ + "E", + "IE10" + ], + "relevance": 50, + "description": "Specifies the number of columns to span.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-grid-layer", + "browsers": [ + "E", + "IE10" + ], + "relevance": 50, + "description": "Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-grid-row", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "end" + }, + { + "name": "start" + } + ], + "relevance": 50, + "description": "grid-row is used to place grid items and explicitly defined grid cells in the Grid.", + "restrictions": [ + "integer", + "string", + "enum" + ] + }, + { + "name": "-ms-grid-row-align", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "center", + "description": "Places the center of the Grid Item's margin box at the center of the Grid Item's row." + }, + { + "name": "end", + "description": "Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row." + }, + { + "name": "start", + "description": "Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row." + }, + { + "name": "stretch", + "description": "Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row." + } + ], + "relevance": 50, + "description": "Aligns the rows in a grid.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-grid-rows", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "none | <track-list> | <auto-track-list>", + "relevance": 0, + "description": "Lays out the columns of the grid." + }, + { + "name": "-ms-grid-row-span", + "browsers": [ + "E", + "IE10" + ], + "relevance": 50, + "description": "Specifies the number of rows to span.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-high-contrast-adjust", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Properties will be adjusted as applicable." + }, + { + "name": "none", + "description": "No adjustments will be applied." + } + ], + "status": "nonstandard", + "syntax": "auto | none", + "relevance": 0, + "description": "Specifies if properties should be adjusted in high contrast mode.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-hyphenate-limit-chars", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "The user agent chooses a value that adapts to the current layout." + } + ], + "status": "nonstandard", + "syntax": "auto | <integer>{1,3}", + "relevance": 0, + "description": "Specifies the minimum number of characters in a hyphenated word.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-hyphenate-limit-lines", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "no-limit", + "description": "There is no limit." + } + ], + "status": "nonstandard", + "syntax": "no-limit | <integer>", + "relevance": 0, + "description": "Indicates the maximum number of successive hyphenated lines in an element.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-ms-hyphenate-limit-zone", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<percentage> | <length>", + "relevance": 0, + "description": "Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.", + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "-ms-hyphens", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word." + }, + { + "name": "manual", + "description": "Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities" + }, + { + "name": "none", + "description": "Words are not broken at line breaks, even if characters inside the word suggest line break points." + } + ], + "relevance": 50, + "description": "Controls whether hyphenation is allowed to create more break opportunities within a line of text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-ime-mode", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "active", + "description": "The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it." + }, + { + "name": "auto", + "description": "No change is made to the current input method editor state. This is the default." + }, + { + "name": "disabled", + "description": "The input method editor is disabled and may not be activated by the user." + }, + { + "name": "inactive", + "description": "The input method editor is initially inactive, but the user may activate it if they wish." + }, + { + "name": "normal", + "description": "The IME state should be normal; this value can be used in a user style sheet to override the page setting." + } + ], + "relevance": 50, + "description": "Controls the state of the input method editor for text fields.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-interpolation-mode", + "browsers": [ + "IE7" + ], + "values": [ + { + "name": "bicubic" + }, + { + "name": "nearest-neighbor" + } + ], + "relevance": 50, + "description": "Gets or sets the interpolation (resampling) method used to stretch images.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-layout-grid", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "char", + "description": "Any of the range of character values available to the -ms-layout-grid-char property." + }, + { + "name": "line", + "description": "Any of the range of line values available to the -ms-layout-grid-line property." + }, + { + "name": "mode", + "description": "Any of the range of mode values available to the -ms-layout-grid-mode property." + }, + { + "name": "type", + "description": "Any of the range of type values available to the -ms-layout-grid-type property." + } + ], + "relevance": 50, + "description": "Sets or retrieves the composite document grid properties that specify the layout of text characters." + }, + { + "name": "-ms-layout-grid-char", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Largest character in the font of the element is used to set the character grid." + }, + { + "name": "none", + "description": "Default. No character grid is set." + } + ], + "relevance": 50, + "description": "Sets or retrieves the size of the character grid used for rendering the text content of an element.", + "restrictions": [ + "enum", + "length", + "percentage" + ] + }, + { + "name": "-ms-layout-grid-line", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Largest character in the font of the element is used to set the character grid." + }, + { + "name": "none", + "description": "Default. No grid line is set." + } + ], + "relevance": 50, + "description": "Sets or retrieves the gridline value used for rendering the text content of an element.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-layout-grid-mode", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "both", + "description": "Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element." + }, + { + "name": "char", + "description": "Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled." + }, + { + "name": "line", + "description": "Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout." + }, + { + "name": "none", + "description": "No grid is used." + } + ], + "relevance": 50, + "description": "Gets or sets whether the text layout grid uses two dimensions.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-layout-grid-type", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "fixed", + "description": "Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default." + }, + { + "name": "loose", + "description": "Default. Grid used for Japanese and Korean characters." + }, + { + "name": "strict", + "description": "Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid." + } + ], + "relevance": 50, + "description": "Sets or retrieves the type of grid used for rendering the text content of an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-line-break", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines." + }, + { + "name": "keep-all", + "description": "Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean." + }, + { + "name": "newspaper", + "description": "Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers." + }, + { + "name": "normal", + "description": "Breaks CJK scripts using a normal set of line-breaking rules." + }, + { + "name": "strict", + "description": "Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'." + } + ], + "relevance": 50, + "description": "Specifies what set of line breaking restrictions are in effect within the element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-overflow-style", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "No preference, UA should use the first scrolling method in the list that it supports." + }, + { + "name": "-ms-autohiding-scrollbar", + "description": "Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions." + }, + { + "name": "none", + "description": "Indicates the element does not display scrollbars or panning indicators, even when its content overflows." + }, + { + "name": "scrollbar", + "description": "Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element." + } + ], + "status": "nonstandard", + "syntax": "auto | none | scrollbar | -ms-autohiding-scrollbar", + "relevance": 0, + "description": "Specify whether content is clipped when it overflows the element's content area.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-perspective", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "none", + "description": "No perspective transform is applied." + } + ], + "relevance": 50, + "description": "Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-perspective-origin", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "-ms-perspective-origin-x", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "Establishes the origin for the perspective property. It effectively sets the X position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "-ms-perspective-origin-y", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "-ms-progress-appearance", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "bar" + }, + { + "name": "ring" + } + ], + "relevance": 50, + "description": "Gets or sets a value that specifies whether a progress control displays as a bar or a ring.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scrollbar-3dlight-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-arrow-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the arrow elements of a scroll arrow.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-base-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-darkshadow-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the gutter of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-face-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-highlight-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-shadow-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scrollbar-track-color", + "browsers": [ + "IE8" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "Determines the color of the track element of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "-ms-scroll-chaining", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "chained" + }, + { + "name": "none" + } + ], + "status": "nonstandard", + "syntax": "chained | none", + "relevance": 0, + "description": "Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.", + "restrictions": [ + "enum", + "length" + ] + }, + { + "name": "-ms-scroll-limit", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto" + } + ], + "status": "nonstandard", + "syntax": "<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>", + "relevance": 0, + "description": "Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-scroll-limit-x-max", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto" + } + ], + "status": "nonstandard", + "syntax": "auto | <length>", + "relevance": 0, + "description": "Gets or sets a value that specifies the maximum value for the scrollLeft property.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-scroll-limit-x-min", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<length>", + "relevance": 0, + "description": "Gets or sets a value that specifies the minimum value for the scrollLeft property.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-scroll-limit-y-max", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto" + } + ], + "status": "nonstandard", + "syntax": "auto | <length>", + "relevance": 0, + "description": "Gets or sets a value that specifies the maximum value for the scrollTop property.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-scroll-limit-y-min", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<length>", + "relevance": 0, + "description": "Gets or sets a value that specifies the minimum value for the scrollTop property.", + "restrictions": [ + "length" + ] + }, + { + "name": "-ms-scroll-rails", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none" + }, + { + "name": "railed" + } + ], + "status": "nonstandard", + "syntax": "none | railed", + "relevance": 0, + "description": "Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).", + "restrictions": [ + "enum", + "length" + ] + }, + { + "name": "-ms-scroll-snap-points-x", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "snapInterval(100%, 100%)" + }, + { + "name": "snapList()" + } + ], + "status": "nonstandard", + "syntax": "snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )", + "relevance": 0, + "description": "Gets or sets a value that defines where snap-points will be located along the x-axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scroll-snap-points-y", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "snapInterval(100%, 100%)" + }, + { + "name": "snapList()" + } + ], + "status": "nonstandard", + "syntax": "snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )", + "relevance": 0, + "description": "Gets or sets a value that defines where snap-points will be located along the y-axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scroll-snap-type", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none", + "description": "The visual viewport of this scroll container must ignore snap points, if any, when scrolled." + }, + { + "name": "mandatory", + "description": "The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations." + }, + { + "name": "proximity", + "description": "The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll." + } + ], + "status": "nonstandard", + "syntax": "none | proximity | mandatory", + "relevance": 0, + "description": "Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scroll-snap-x", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "mandatory" + }, + { + "name": "none" + }, + { + "name": "proximity" + }, + { + "name": "snapInterval(100%, 100%)" + }, + { + "name": "snapList()" + } + ], + "status": "nonstandard", + "syntax": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>", + "relevance": 0, + "description": "Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scroll-snap-y", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "mandatory" + }, + { + "name": "none" + }, + { + "name": "proximity" + }, + { + "name": "snapInterval(100%, 100%)" + }, + { + "name": "snapList()" + } + ], + "status": "nonstandard", + "syntax": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>", + "relevance": 0, + "description": "Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-scroll-translation", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none" + }, + { + "name": "vertical-to-horizontal" + } + ], + "status": "nonstandard", + "syntax": "none | vertical-to-horizontal", + "relevance": 0, + "description": "Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-text-align-last", + "browsers": [ + "E", + "IE8" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "center", + "description": "The inline contents are centered within the line box." + }, + { + "name": "justify", + "description": "The text is justified according to the method specified by the 'text-justify' property." + }, + { + "name": "left", + "description": "The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text." + }, + { + "name": "right", + "description": "The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text." + } + ], + "relevance": 50, + "description": "Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-text-autospace", + "browsers": [ + "E", + "IE8" + ], + "values": [ + { + "name": "ideograph-alpha", + "description": "Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew." + }, + { + "name": "ideograph-numeric", + "description": "Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs." + }, + { + "name": "ideograph-parenthesis", + "description": "Creates extra spacing between normal (non wide) parenthesis and ideographs." + }, + { + "name": "ideograph-space", + "description": "Extends the width of the space character while surrounded by ideographs." + }, + { + "name": "none", + "description": "No extra space is created." + }, + { + "name": "punctuation", + "description": "Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions." + } + ], + "status": "nonstandard", + "syntax": "none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space", + "relevance": 0, + "description": "Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-text-combine-horizontal", + "browsers": [ + "E", + "IE11" + ], + "values": [ + { + "name": "all", + "description": "Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box." + }, + { + "name": "digits", + "description": "Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030-U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box." + }, + { + "name": "none", + "description": "No special processing." + } + ], + "relevance": 50, + "description": "This property specifies the combination of multiple characters into the space of a single character.", + "restrictions": [ + "enum", + "integer" + ] + }, + { + "name": "-ms-text-justify", + "browsers": [ + "E", + "IE8" + ], + "values": [ + { + "name": "auto", + "description": "The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality." + }, + { + "name": "distribute", + "description": "Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property." + }, + { + "name": "inter-cluster", + "description": "Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai." + }, + { + "name": "inter-ideograph", + "description": "Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages." + }, + { + "name": "inter-word", + "description": "Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean." + }, + { + "name": "kashida", + "description": "Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation." + } + ], + "relevance": 50, + "description": "Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-text-kashida-space", + "browsers": [ + "E", + "IE10" + ], + "relevance": 50, + "description": "Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.", + "restrictions": [ + "percentage" + ] + }, + { + "name": "-ms-text-overflow", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "clip", + "description": "Clip inline content that overflows. Characters may be only partially rendered." + }, + { + "name": "ellipsis", + "description": "Render an ellipsis character (U+2026) to represent clipped inline content." + } + ], + "relevance": 50, + "description": "Text can overflow for example when it is prevented from wrapping", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-text-size-adjust", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "Renderers must use the default size adjustment when displaying on a small device." + }, + { + "name": "none", + "description": "Renderers must not do size adjustment when displaying on a small device." + } + ], + "relevance": 50, + "description": "Specifies a size adjustment for displaying text content in mobile browsers.", + "restrictions": [ + "enum", + "percentage" + ] + }, + { + "name": "-ms-text-underline-position", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "alphabetic", + "description": "The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders." + }, + { + "name": "auto", + "description": "The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over." + }, + { + "name": "over", + "description": "The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides." + }, + { + "name": "under", + "description": "The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline." + } + ], + "relevance": 50, + "description": "Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-touch-action", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "The element is a passive element, with several exceptions." + }, + { + "name": "double-tap-zoom", + "description": "The element will zoom on double-tap." + }, + { + "name": "manipulation", + "description": "The element is a manipulation-causing element." + }, + { + "name": "none", + "description": "The element is a manipulation-blocking element." + }, + { + "name": "pan-x", + "description": "The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content." + }, + { + "name": "pan-y", + "description": "The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content." + }, + { + "name": "pinch-zoom", + "description": "The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content." + } + ], + "relevance": 50, + "description": "Gets or sets a value that indicates whether and how a given region can be manipulated by the user.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-touch-select", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "grippers", + "description": "Grippers are always on." + }, + { + "name": "none", + "description": "Grippers are always off." + } + ], + "status": "nonstandard", + "syntax": "grippers | none", + "relevance": 0, + "description": "Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-transform", + "browsers": [ + "IE9-9" + ], + "values": [ + { + "name": "matrix()", + "description": "Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]" + }, + { + "name": "matrix3d()", + "description": "Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order." + }, + { + "name": "none" + }, + { + "name": "rotate()", + "description": "Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property." + }, + { + "name": "rotate3d()", + "description": "Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters." + }, + { + "name": "rotateX('angle')", + "description": "Specifies a clockwise rotation by the given angle about the X axis." + }, + { + "name": "rotateY('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Y axis." + }, + { + "name": "rotateZ('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Z axis." + }, + { + "name": "scale()", + "description": "Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first." + }, + { + "name": "scale3d()", + "description": "Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters." + }, + { + "name": "scaleX()", + "description": "Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter." + }, + { + "name": "scaleY()", + "description": "Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter." + }, + { + "name": "scaleZ()", + "description": "Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter." + }, + { + "name": "skew()", + "description": "Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)." + }, + { + "name": "skewX()", + "description": "Specifies a skew transformation along the X axis by the given angle." + }, + { + "name": "skewY()", + "description": "Specifies a skew transformation along the Y axis by the given angle." + }, + { + "name": "translate()", + "description": "Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter." + }, + { + "name": "translate3d()", + "description": "Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively." + }, + { + "name": "translateX()", + "description": "Specifies a translation by the given amount in the X direction." + }, + { + "name": "translateY()", + "description": "Specifies a translation by the given amount in the Y direction." + }, + { + "name": "translateZ()", + "description": "Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0." + } + ], + "relevance": 50, + "description": "A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-transform-origin", + "browsers": [ + "IE9-9" + ], + "relevance": 50, + "description": "Establishes the origin of transformation for an element.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "-ms-transform-origin-x", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "The x coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-ms-transform-origin-y", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "The y coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-ms-transform-origin-z", + "browsers": [ + "IE10" + ], + "relevance": 50, + "description": "The z coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-ms-user-select", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "element" + }, + { + "name": "none" + }, + { + "name": "text" + } + ], + "status": "nonstandard", + "syntax": "none | element | text", + "relevance": 0, + "description": "Controls the appearance of selection.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-word-break", + "browsers": [ + "IE8" + ], + "values": [ + { + "name": "break-all", + "description": "Lines may break between any two grapheme clusters for non-CJK scripts." + }, + { + "name": "keep-all", + "description": "Block characters can no longer create implied break points." + }, + { + "name": "normal", + "description": "Breaks non-CJK scripts according to their own rules." + } + ], + "relevance": 50, + "description": "Specifies line break opportunities for non-CJK scripts.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-word-wrap", + "browsers": [ + "IE8" + ], + "values": [ + { + "name": "break-word", + "description": "An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line." + }, + { + "name": "normal", + "description": "Lines may break only at allowed break points." + } + ], + "relevance": 50, + "description": "Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-wrap-flow", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "auto", + "description": "For floats an exclusion is created, for all other elements an exclusion is not created." + }, + { + "name": "both", + "description": "Inline flow content can flow on all sides of the exclusion." + }, + { + "name": "clear", + "description": "Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty." + }, + { + "name": "end", + "description": "Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty." + }, + { + "name": "maximum", + "description": "Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty." + }, + { + "name": "minimum", + "description": "Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content's containing block, and must leave the other edge of the exclusion empty." + }, + { + "name": "start", + "description": "Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty." + } + ], + "status": "nonstandard", + "syntax": "auto | both | start | end | maximum | clear", + "relevance": 0, + "description": "An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-wrap-margin", + "browsers": [ + "E", + "IE10" + ], + "status": "nonstandard", + "syntax": "<length>", + "relevance": 0, + "description": "Gets or sets a value that is used to offset the inner wrap shape from other shapes.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-ms-wrap-through", + "browsers": [ + "E", + "IE10" + ], + "values": [ + { + "name": "none", + "description": "The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element." + }, + { + "name": "wrap", + "description": "The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element." + } + ], + "status": "nonstandard", + "syntax": "wrap | none", + "relevance": 0, + "description": "Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-writing-mode", + "browsers": [ + "IE8" + ], + "values": [ + { + "name": "bt-lr" + }, + { + "name": "bt-rl" + }, + { + "name": "lr-bt" + }, + { + "name": "lr-tb" + }, + { + "name": "rl-bt" + }, + { + "name": "rl-tb" + }, + { + "name": "tb-lr" + }, + { + "name": "tb-rl" + } + ], + "relevance": 50, + "description": "Shorthand property for both 'direction' and 'block-progression'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-ms-zoom", + "browsers": [ + "IE8" + ], + "values": [ + { + "name": "normal" + } + ], + "relevance": 50, + "description": "Sets or retrieves the magnification scale of the object.", + "restrictions": [ + "enum", + "integer", + "number", + "percentage" + ] + }, + { + "name": "-ms-zoom-animation", + "browsers": [ + "IE10" + ], + "values": [ + { + "name": "default" + }, + { + "name": "none" + } + ], + "relevance": 50, + "description": "Gets or sets a value that indicates whether an animation is used when zooming.", + "restrictions": [ + "enum" + ] + }, + { + "name": "nav-down", + "browsers": [ + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The user agent automatically determines which element to navigate the focus to in response to directional navigational input." + }, + { + "name": "current", + "description": "Indicates that the user agent should target the frame that the element is in." + }, + { + "name": "root", + "description": "Indicates that the user agent should target the full window." + } + ], + "relevance": 50, + "description": "Provides an way to control directional focus navigation.", + "restrictions": [ + "enum", + "identifier", + "string" + ] + }, + { + "name": "nav-index", + "browsers": [ + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The element's sequential navigation order is assigned automatically by the user agent." + } + ], + "relevance": 50, + "description": "Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').", + "restrictions": [ + "number" + ] + }, + { + "name": "nav-left", + "browsers": [ + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The user agent automatically determines which element to navigate the focus to in response to directional navigational input." + }, + { + "name": "current", + "description": "Indicates that the user agent should target the frame that the element is in." + }, + { + "name": "root", + "description": "Indicates that the user agent should target the full window." + } + ], + "relevance": 50, + "description": "Provides an way to control directional focus navigation.", + "restrictions": [ + "enum", + "identifier", + "string" + ] + }, + { + "name": "nav-right", + "browsers": [ + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The user agent automatically determines which element to navigate the focus to in response to directional navigational input." + }, + { + "name": "current", + "description": "Indicates that the user agent should target the frame that the element is in." + }, + { + "name": "root", + "description": "Indicates that the user agent should target the full window." + } + ], + "relevance": 50, + "description": "Provides an way to control directional focus navigation.", + "restrictions": [ + "enum", + "identifier", + "string" + ] + }, + { + "name": "nav-up", + "browsers": [ + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The user agent automatically determines which element to navigate the focus to in response to directional navigational input." + }, + { + "name": "current", + "description": "Indicates that the user agent should target the frame that the element is in." + }, + { + "name": "root", + "description": "Indicates that the user agent should target the full window." + } + ], + "relevance": 50, + "description": "Provides an way to control directional focus navigation.", + "restrictions": [ + "enum", + "identifier", + "string" + ] + }, + { + "name": "negative", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<symbol> <symbol>?", + "relevance": 50, + "description": "@counter-style descriptor. Defines how to alter the representation when the counter value is negative.", + "restrictions": [ + "image", + "identifier", + "string" + ] + }, + { + "name": "-o-animation", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + }, + { + "name": "none", + "description": "No animation is performed" + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Shorthand property combines six of the animation properties into a single property.", + "restrictions": [ + "time", + "enum", + "timing-function", + "identifier", + "number" + ] + }, + { + "name": "-o-animation-delay", + "browsers": [ + "O12" + ], + "relevance": 50, + "description": "Defines when the animation will start.", + "restrictions": [ + "time" + ] + }, + { + "name": "-o-animation-direction", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Defines whether or not the animation should play in reverse on alternate cycles.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-animation-duration", + "browsers": [ + "O12" + ], + "relevance": 50, + "description": "Defines the length of time that an animation takes to complete one cycle.", + "restrictions": [ + "time" + ] + }, + { + "name": "-o-animation-fill-mode", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "none", + "description": "There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes." + } + ], + "relevance": 50, + "description": "Defines what values are applied by the animation outside the time it is executing.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-animation-iteration-count", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + } + ], + "relevance": 50, + "description": "Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.", + "restrictions": [ + "number", + "enum" + ] + }, + { + "name": "-o-animation-name", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "none", + "description": "No animation is performed" + } + ], + "relevance": 50, + "description": "Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.", + "restrictions": [ + "identifier", + "enum" + ] + }, + { + "name": "-o-animation-play-state", + "browsers": [ + "O12" + ], + "values": [ + { + "name": "paused", + "description": "A running animation will be paused." + }, + { + "name": "running", + "description": "Resume playback of a paused animation." + } + ], + "relevance": 50, + "description": "Defines whether the animation is running or paused.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-animation-timing-function", + "browsers": [ + "O12" + ], + "relevance": 50, + "description": "Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "object-fit", + "browsers": [ + "E79", + "FF36", + "S10", + "C32", + "O19" + ], + "values": [ + { + "name": "contain", + "description": "The replaced content is sized to maintain its aspect ratio while fitting within the element's content box: its concrete object size is resolved as a contain constraint against the element's used width and height." + }, + { + "name": "cover", + "description": "The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element's used width and height." + }, + { + "name": "fill", + "description": "The replaced content is sized to fill the element's content box: the object's concrete object size is the element's used width and height." + }, + { + "name": "none", + "description": "The replaced content is not resized to fit inside the element's content box" + }, + { + "name": "scale-down", + "description": "Size the content as if 'none' or 'contain' were specified, whichever would result in a smaller concrete object size." + } + ], + "syntax": "fill | contain | cover | none | scale-down", + "relevance": 72, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/object-fit" + } + ], + "description": "Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.", + "restrictions": [ + "enum" + ] + }, + { + "name": "object-position", + "browsers": [ + "E79", + "FF36", + "S10", + "C32", + "O19" + ], + "syntax": "<position>", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/object-position" + } + ], + "description": "Determines the alignment of the replaced element inside its box.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "-o-border-image", + "browsers": [ + "O11.6" + ], + "values": [ + { + "name": "auto", + "description": "If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead." + }, + { + "name": "fill", + "description": "Causes the middle part of the border-image to be preserved." + }, + { + "name": "none" + }, + { + "name": "repeat", + "description": "The image is tiled (repeated) to fill the area." + }, + { + "name": "round", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does." + }, + { + "name": "space", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles." + }, + { + "name": "stretch", + "description": "The image is stretched to fill the area." + } + ], + "relevance": 50, + "description": "Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "percentage", + "number", + "image", + "enum" + ] + }, + { + "name": "-o-object-fit", + "browsers": [ + "O10.6" + ], + "values": [ + { + "name": "contain", + "description": "The replaced content is sized to maintain its aspect ratio while fitting within the element's content box: its concrete object size is resolved as a contain constraint against the element's used width and height." + }, + { + "name": "cover", + "description": "The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element's used width and height." + }, + { + "name": "fill", + "description": "The replaced content is sized to fill the element's content box: the object's concrete object size is the element's used width and height." + }, + { + "name": "none", + "description": "The replaced content is not resized to fit inside the element's content box" + }, + { + "name": "scale-down", + "description": "Size the content as if 'none' or 'contain' were specified, whichever would result in a smaller concrete object size." + } + ], + "relevance": 50, + "description": "Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-object-position", + "browsers": [ + "O10.6" + ], + "relevance": 50, + "description": "Determines the alignment of the replaced element inside its box.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "opacity", + "browsers": [ + "E12", + "FF1", + "S2", + "C1", + "IE9", + "O9" + ], + "syntax": "<alpha-value>", + "relevance": 92, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/opacity" + } + ], + "description": "Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.", + "restrictions": [ + "number(0-1)" + ] + }, + { + "name": "order", + "browsers": [ + "E12", + "FF20", + "S9", + "C29", + "IE11", + "O12.1" + ], + "syntax": "<integer>", + "relevance": 67, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/order" + } + ], + "description": "Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.", + "restrictions": [ + "integer" + ] + }, + { + "name": "orphans", + "browsers": [ + "E12", + "S1.3", + "C25", + "IE8", + "O9.2" + ], + "syntax": "<integer>", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/orphans" + } + ], + "description": "Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-o-table-baseline", + "browsers": [ + "O9.6" + ], + "relevance": 50, + "description": "Determines which row of a inline-table should be used as baseline of inline-table.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-o-tab-size", + "browsers": [ + "O10.6" + ], + "relevance": 50, + "description": "This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.", + "restrictions": [ + "integer", + "length" + ] + }, + { + "name": "-o-text-overflow", + "browsers": [ + "O10" + ], + "values": [ + { + "name": "clip", + "description": "Clip inline content that overflows. Characters may be only partially rendered." + }, + { + "name": "ellipsis", + "description": "Render an ellipsis character (U+2026) to represent clipped inline content." + } + ], + "relevance": 50, + "description": "Text can overflow for example when it is prevented from wrapping", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-transform", + "browsers": [ + "O10.5" + ], + "values": [ + { + "name": "matrix()", + "description": "Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]" + }, + { + "name": "matrix3d()", + "description": "Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order." + }, + { + "name": "none" + }, + { + "name": "rotate()", + "description": "Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property." + }, + { + "name": "rotate3d()", + "description": "Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters." + }, + { + "name": "rotateX('angle')", + "description": "Specifies a clockwise rotation by the given angle about the X axis." + }, + { + "name": "rotateY('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Y axis." + }, + { + "name": "rotateZ('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Z axis." + }, + { + "name": "scale()", + "description": "Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first." + }, + { + "name": "scale3d()", + "description": "Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters." + }, + { + "name": "scaleX()", + "description": "Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter." + }, + { + "name": "scaleY()", + "description": "Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter." + }, + { + "name": "scaleZ()", + "description": "Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter." + }, + { + "name": "skew()", + "description": "Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)." + }, + { + "name": "skewX()", + "description": "Specifies a skew transformation along the X axis by the given angle." + }, + { + "name": "skewY()", + "description": "Specifies a skew transformation along the Y axis by the given angle." + }, + { + "name": "translate()", + "description": "Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter." + }, + { + "name": "translate3d()", + "description": "Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively." + }, + { + "name": "translateX()", + "description": "Specifies a translation by the given amount in the X direction." + }, + { + "name": "translateY()", + "description": "Specifies a translation by the given amount in the Y direction." + }, + { + "name": "translateZ()", + "description": "Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0." + } + ], + "relevance": 50, + "description": "A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-o-transform-origin", + "browsers": [ + "O10.5" + ], + "relevance": 50, + "description": "Establishes the origin of transformation for an element.", + "restrictions": [ + "positon", + "length", + "percentage" + ] + }, + { + "name": "-o-transition", + "browsers": [ + "O11.5" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Shorthand property combines four of the transition properties into a single property.", + "restrictions": [ + "time", + "property", + "timing-function", + "enum" + ] + }, + { + "name": "-o-transition-delay", + "browsers": [ + "O11.5" + ], + "relevance": 50, + "description": "Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.", + "restrictions": [ + "time" + ] + }, + { + "name": "-o-transition-duration", + "browsers": [ + "O11.5" + ], + "relevance": 50, + "description": "Specifies how long the transition from the old value to the new value should take.", + "restrictions": [ + "time" + ] + }, + { + "name": "-o-transition-property", + "browsers": [ + "O11.5" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Specifies the name of the CSS property to which the transition is applied.", + "restrictions": [ + "property" + ] + }, + { + "name": "-o-transition-timing-function", + "browsers": [ + "O11.5" + ], + "relevance": 50, + "description": "Describes how the intermediate values used during a transition will be calculated.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "offset-block-end", + "browsers": [ + "FF41" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well." + } + ], + "relevance": 50, + "description": "Logical 'bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "offset-block-start", + "browsers": [ + "FF41" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well." + } + ], + "relevance": 50, + "description": "Logical 'top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "offset-inline-end", + "browsers": [ + "FF41" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well." + } + ], + "relevance": 50, + "description": "Logical 'right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "offset-inline-start", + "browsers": [ + "FF41" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well." + } + ], + "relevance": 50, + "description": "Logical 'left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "outline", + "browsers": [ + "E94", + "FF88", + "S16.4", + "C94", + "IE8", + "O80" + ], + "values": [ + { + "name": "auto", + "description": "Permits the user agent to render a custom outline style, typically the default platform style." + }, + { + "name": "invert", + "browsers": [ + "E94", + "FF88", + "S16.4", + "C94", + "IE8", + "O80" + ], + "description": "Performs a color inversion on the pixels on the screen." + } + ], + "syntax": "[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]", + "relevance": 86, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/outline" + } + ], + "description": "Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color", + "enum" + ] + }, + { + "name": "outline-color", + "browsers": [ + "E12", + "FF1.5", + "S1.2", + "C1", + "IE8", + "O7" + ], + "values": [ + { + "name": "invert", + "browsers": [ + "E12", + "FF1.5", + "S1.2", + "C1", + "IE8", + "O7" + ], + "description": "Performs a color inversion on the pixels on the screen." + } + ], + "syntax": "auto | <color>", + "relevance": 61, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/outline-color" + } + ], + "description": "The color of the outline.", + "restrictions": [ + "enum", + "color" + ] + }, + { + "name": "outline-offset", + "browsers": [ + "E15", + "FF1.5", + "S1.2", + "C1", + "O9.5" + ], + "syntax": "<length>", + "relevance": 68, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/outline-offset" + } + ], + "description": "Offset the outline and draw it beyond the border edge.", + "restrictions": [ + "length" + ] + }, + { + "name": "outline-style", + "browsers": [ + "E12", + "FF1.5", + "S1.2", + "C1", + "IE8", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "Permits the user agent to render a custom outline style, typically the default platform style." + } + ], + "syntax": "auto | <'border-style'>", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/outline-style" + } + ], + "description": "Style of the outline.", + "restrictions": [ + "line-style", + "enum" + ] + }, + { + "name": "outline-width", + "browsers": [ + "E12", + "FF1.5", + "S1.2", + "C1", + "IE8", + "O7" + ], + "syntax": "<line-width>", + "relevance": 62, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/outline-width" + } + ], + "description": "Width of the outline.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "overflow", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes." + }, + { + "name": "hidden", + "description": "Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region." + }, + { + "name": "-moz-hidden-unscrollable", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "description": "Same as the standardized 'clip', except doesn't establish a block formatting context." + }, + { + "name": "scroll", + "description": "Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped." + }, + { + "name": "visible", + "description": "Content is not clipped, i.e., it may be rendered outside the content box." + } + ], + "syntax": "[ visible | hidden | clip | scroll | auto ]{1,2}", + "relevance": 92, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow" + } + ], + "description": "Shorthand for setting 'overflow-x' and 'overflow-y'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "overflow-wrap", + "browsers": [ + "E18", + "FF49", + "S7", + "C23", + "IE5.5", + "O12.1" + ], + "values": [ + { + "name": "break-word", + "description": "An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line." + }, + { + "name": "normal", + "description": "Lines may break only at allowed break points." + }, + { + "name": "anywhere", + "description": "There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved white spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ line breaking classes or mandated by the word-break property." + } + ], + "syntax": "normal | break-word | anywhere", + "relevance": 64, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-wrap" + } + ], + "description": "Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "overflow-x", + "browsers": [ + "E12", + "FF3.5", + "S3", + "C1", + "IE5", + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes." + }, + { + "name": "hidden", + "description": "Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region." + }, + { + "name": "scroll", + "description": "Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped." + }, + { + "name": "visible", + "description": "Content is not clipped, i.e., it may be rendered outside the content box." + } + ], + "syntax": "visible | hidden | clip | scroll | auto", + "relevance": 80, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-x" + } + ], + "description": "Specifies the handling of overflow in the horizontal direction.", + "restrictions": [ + "enum" + ] + }, + { + "name": "overflow-y", + "browsers": [ + "E12", + "FF3.5", + "S3", + "C1", + "IE5", + "O9.5" + ], + "values": [ + { + "name": "auto", + "description": "The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes." + }, + { + "name": "hidden", + "description": "Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region." + }, + { + "name": "scroll", + "description": "Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped." + }, + { + "name": "visible", + "description": "Content is not clipped, i.e., it may be rendered outside the content box." + } + ], + "syntax": "visible | hidden | clip | scroll | auto", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-y" + } + ], + "description": "Specifies the handling of overflow in the vertical direction.", + "restrictions": [ + "enum" + ] + }, + { + "name": "pad", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<integer> && <symbol>", + "relevance": 50, + "description": "@counter-style descriptor. Specifies a \"fixed-width\" counter style, where representations shorter than the pad value are padded with a particular <symbol>", + "restrictions": [ + "integer", + "image", + "string", + "identifier" + ] + }, + { + "name": "padding", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [], + "syntax": "[ <length> | <percentage> ]{1,4}", + "relevance": 95, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding" + } + ], + "description": "Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-bottom", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<length> | <percentage>", + "relevance": 87, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-bottom" + } + ], + "description": "Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-block-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'padding-left'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-block-end" + } + ], + "description": "Logical 'padding-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-block-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'padding-left'>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-block-start" + } + ], + "description": "Logical 'padding-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-inline-end", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'padding-left'>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-inline-end" + } + ], + "description": "Logical 'padding-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-inline-start", + "browsers": [ + "E79", + "FF41", + "S12.1", + "C69", + "O56" + ], + "syntax": "<'padding-left'>", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-inline-start" + } + ], + "description": "Logical 'padding-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-left", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<length> | <percentage>", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-left" + } + ], + "description": "Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-right", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<length> | <percentage>", + "relevance": 87, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-right" + } + ], + "description": "Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "padding-top", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "syntax": "<length> | <percentage>", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-top" + } + ], + "description": "Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "page-break-after", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page break after generated box." + }, + { + "name": "avoid", + "description": "Avoid a page break after the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks after the generated box so that the next page is formatted as a left page." + }, + { + "name": "right", + "description": "Force one or two page breaks after the generated box so that the next page is formatted as a right page." + } + ], + "syntax": "auto | always | avoid | left | right | recto | verso", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/page-break-after" + } + ], + "description": "Defines rules for page breaks after an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "page-break-before", + "browsers": [ + "E12", + "FF1", + "S1.2", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page break before the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page break before the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks before the generated box so that the next page is formatted as a left page." + }, + { + "name": "right", + "description": "Force one or two page breaks before the generated box so that the next page is formatted as a right page." + } + ], + "syntax": "auto | always | avoid | left | right | recto | verso", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/page-break-before" + } + ], + "description": "Defines rules for page breaks before an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "page-break-inside", + "browsers": [ + "E12", + "FF19", + "S1.3", + "C1", + "IE8", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "Neither force nor forbid a page break inside the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page break inside the generated box." + } + ], + "syntax": "auto | avoid", + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/page-break-inside" + } + ], + "description": "Defines rules for page breaks inside an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "paint-order", + "browsers": [ + "E123", + "FF60", + "S11", + "C123", + "O109" + ], + "values": [ + { + "name": "fill" + }, + { + "name": "markers" + }, + { + "name": "normal", + "description": "The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers." + }, + { + "name": "stroke" + } + ], + "syntax": "normal | [ fill || stroke || markers ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/paint-order" + } + ], + "description": "Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.", + "restrictions": [ + "enum" + ] + }, + { + "name": "perspective", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "IE10", + "O23" + ], + "values": [ + { + "name": "none", + "description": "No perspective transform is applied." + } + ], + "syntax": "none | <length>", + "relevance": 54, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/perspective" + } + ], + "description": "Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.", + "restrictions": [ + "length", + "enum" + ] + }, + { + "name": "perspective-origin", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "IE10", + "O23" + ], + "syntax": "<position>", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/perspective-origin" + } + ], + "description": "Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "pointer-events", + "browsers": [ + "E12", + "FF1.5", + "S4", + "C1", + "IE11", + "O9" + ], + "values": [ + { + "name": "all", + "description": "The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element." + }, + { + "name": "fill", + "description": "The given element can be the target element for pointer events whenever the pointer is over the interior of the element." + }, + { + "name": "none", + "description": "The given element does not receive pointer events." + }, + { + "name": "painted", + "description": "The given element can be the target element for pointer events when the pointer is over a \"painted\" area. " + }, + { + "name": "stroke", + "description": "The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element." + }, + { + "name": "visible", + "description": "The given element can be the target element for pointer events when the 'visibility' property is set to visible and the pointer is over either the interior or the perimeter of the element." + }, + { + "name": "visibleFill", + "description": "The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over the interior of the element." + }, + { + "name": "visiblePainted", + "description": "The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over a 'painted' area." + }, + { + "name": "visibleStroke", + "description": "The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over the perimeter of the element." + } + ], + "syntax": "auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit", + "relevance": 81, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/pointer-events" + } + ], + "description": "Specifies under what circumstances a given element can be the target element for a pointer event.", + "restrictions": [ + "enum" + ] + }, + { + "name": "position", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "values": [ + { + "name": "absolute", + "description": "The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'." + }, + { + "name": "fixed", + "description": "The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins." + }, + { + "name": "-ms-page", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "description": "The box's position is calculated according to the 'absolute' model." + }, + { + "name": "relative", + "description": "The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position." + }, + { + "name": "static", + "description": "The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply." + }, + { + "name": "sticky", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "description": "The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes." + }, + { + "name": "-webkit-sticky", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "description": "The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes." + } + ], + "syntax": "static | relative | absolute | sticky | fixed", + "relevance": 94, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/position" + } + ], + "description": "The position CSS property sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements.", + "restrictions": [ + "enum" + ] + }, + { + "name": "prefix", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<symbol>", + "relevance": 50, + "description": "@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.", + "restrictions": [ + "image", + "string", + "identifier" + ] + }, + { + "name": "quotes", + "browsers": [ + "E12", + "FF1.5", + "S9", + "C11", + "IE8", + "O4" + ], + "values": [ + { + "name": "none", + "description": "The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively." + } + ], + "syntax": "none | auto | [ <string> <string> ]+", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/quotes" + } + ], + "description": "Specifies quotation marks for any number of embedded quotations.", + "restrictions": [ + "string" + ] + }, + { + "name": "range", + "browsers": [ + "FF33" + ], + "values": [ + { + "name": "auto", + "description": "The range depends on the counter system." + }, + { + "name": "infinite", + "description": "If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity." + } + ], + "atRule": "@counter-style", + "syntax": "[ [ <integer> | infinite ]{2} ]# | auto", + "relevance": 50, + "description": "@counter-style descriptor. Defines the ranges over which the counter style is defined.", + "restrictions": [ + "integer", + "enum" + ] + }, + { + "name": "resize", + "browsers": [ + "E79", + "FF4", + "S3", + "C1", + "O12.1" + ], + "values": [ + { + "name": "both", + "description": "The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element." + }, + { + "name": "horizontal", + "description": "The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element." + }, + { + "name": "none", + "description": "The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element." + }, + { + "name": "vertical", + "description": "The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element." + } + ], + "syntax": "none | both | horizontal | vertical | block | inline", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/resize" + } + ], + "description": "Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.", + "restrictions": [ + "enum" + ] + }, + { + "name": "right", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O5" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/right" + } + ], + "description": "Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "ruby-align", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "values": [ + { + "name": "auto", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "The user agent determines how the ruby contents are aligned. This is the initial value." + }, + { + "name": "center", + "description": "The ruby content is centered within its box." + }, + { + "name": "distribute-letter", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text." + }, + { + "name": "distribute-space", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text." + }, + { + "name": "left", + "description": "The ruby text content is aligned with the start edge of the base." + }, + { + "name": "line-edge", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base." + }, + { + "name": "right", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "The ruby text content is aligned with the end edge of the base." + }, + { + "name": "start", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "The ruby text content is aligned with the start edge of the base." + }, + { + "name": "space-between", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "The ruby content expands as defined for normal text justification (as defined by 'text-justify')," + }, + { + "name": "space-around", + "browsers": [ + "E128", + "FF38", + "C128" + ], + "description": "As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content." + } + ], + "syntax": "start | center | space-between | space-around", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/ruby-align" + } + ], + "description": "Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.", + "restrictions": [ + "enum" + ] + }, + { + "name": "ruby-overhang", + "browsers": [ + "FF10", + "IE5" + ], + "values": [ + { + "name": "auto", + "description": "The ruby text can overhang text adjacent to the base on either side. This is the initial value." + }, + { + "name": "end", + "description": "The ruby text can overhang the text that follows it." + }, + { + "name": "none", + "description": "The ruby text cannot overhang any text adjacent to its base, only its own base." + }, + { + "name": "start", + "description": "The ruby text can overhang the text that precedes it." + } + ], + "relevance": 50, + "description": "Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.", + "restrictions": [ + "enum" + ] + }, + { + "name": "ruby-position", + "browsers": [ + "E84", + "FF38", + "S7", + "C84", + "O70" + ], + "values": [ + { + "name": "after", + "description": "The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text." + }, + { + "name": "before", + "description": "The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems." + }, + { + "name": "inline" + }, + { + "name": "right", + "description": "The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction." + } + ], + "syntax": "[ alternate || [ over | under ] ] | inter-character", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/ruby-position" + } + ], + "description": "Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.", + "restrictions": [ + "enum" + ] + }, + { + "name": "ruby-span", + "browsers": [ + "FF10" + ], + "values": [ + { + "name": "attr(x)", + "description": "The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element." + }, + { + "name": "none", + "description": "No spanning. The computed value is '1'." + } + ], + "relevance": 50, + "description": "Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.", + "restrictions": [ + "enum" + ] + }, + { + "name": "scrollbar-3dlight-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-arrow-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the arrow elements of a scroll arrow.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-base-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-darkshadow-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the gutter of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-face-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-highlight-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-shadow-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scrollbar-track-color", + "browsers": [ + "IE6" + ], + "relevance": 50, + "description": "Determines the color of the track element of a scroll bar.", + "restrictions": [ + "color" + ] + }, + { + "name": "scroll-behavior", + "browsers": [ + "E79", + "FF36", + "S15.4", + "C61", + "O48" + ], + "values": [ + { + "name": "auto", + "description": "Scrolls in an instant fashion." + }, + { + "name": "smooth", + "description": "Scrolls in a smooth fashion using a user-agent-defined timing function and time period." + } + ], + "syntax": "auto | smooth", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-behavior" + } + ], + "description": "Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.", + "restrictions": [ + "enum" + ] + }, + { + "name": "scroll-snap-coordinate", + "browsers": [ + "FF39" + ], + "values": [ + { + "name": "none", + "description": "Specifies that this element does not contribute a snap point." + } + ], + "status": "obsolete", + "syntax": "none | <position>#", + "relevance": 0, + "description": "Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container's snap-destination for the respective axis.", + "restrictions": [ + "position", + "length", + "percentage", + "enum" + ] + }, + { + "name": "scroll-snap-destination", + "browsers": [ + "FF39" + ], + "status": "obsolete", + "syntax": "<position>", + "relevance": 0, + "description": "Define the x and y coordinate within the scroll container's visual viewport which element snap points will align with.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "scroll-snap-points-x", + "browsers": [ + "FF39" + ], + "values": [ + { + "name": "none", + "description": "No snap points are defined by this scroll container." + }, + { + "name": "repeat()", + "description": "Defines an interval at which snap points are defined, starting from the container's relevant start edge." + } + ], + "status": "obsolete", + "syntax": "none | repeat( <length-percentage> )", + "relevance": 0, + "description": "Defines the positioning of snap points along the x axis of the scroll container it is applied to.", + "restrictions": [ + "enum" + ] + }, + { + "name": "scroll-snap-points-y", + "browsers": [ + "FF39" + ], + "values": [ + { + "name": "none", + "description": "No snap points are defined by this scroll container." + }, + { + "name": "repeat()", + "description": "Defines an interval at which snap points are defined, starting from the container's relevant start edge." + } + ], + "status": "obsolete", + "syntax": "none | repeat( <length-percentage> )", + "relevance": 0, + "description": "Defines the positioning of snap points along the y axis of the scroll container it is applied to.", + "restrictions": [ + "enum" + ] + }, + { + "name": "scroll-snap-type", + "browsers": [ + "E79", + "FF99", + "S11", + "C69", + "IE10", + "O56" + ], + "values": [ + { + "name": "none", + "description": "The visual viewport of this scroll container must ignore snap points, if any, when scrolled." + }, + { + "name": "mandatory", + "description": "The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations." + }, + { + "name": "proximity", + "description": "The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll." + } + ], + "syntax": "none | [ x | y | block | inline | both ] [ mandatory | proximity ]?", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type" + } + ], + "description": "Defines how strictly snap points are enforced on the scroll container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "shape-image-threshold", + "browsers": [ + "E79", + "FF62", + "S10.1", + "C37", + "O24" + ], + "syntax": "<alpha-value>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold" + } + ], + "description": "Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.", + "restrictions": [ + "number" + ] + }, + { + "name": "shape-margin", + "browsers": [ + "E79", + "FF62", + "S10.1", + "C37", + "O24" + ], + "syntax": "<length-percentage>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/shape-margin" + } + ], + "description": "Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.", + "restrictions": [ + "url", + "length", + "percentage" + ] + }, + { + "name": "shape-outside", + "browsers": [ + "E79", + "FF62", + "S10.1", + "C37", + "O24" + ], + "values": [ + { + "name": "margin-box", + "description": "The background is painted within (clipped to) the margin box." + }, + { + "name": "none", + "description": "The float area is unaffected." + } + ], + "syntax": "none | [ <shape-box> || <basic-shape> ] | <image>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/shape-outside" + } + ], + "description": "Specifies an orthogonal rotation to be applied to an image before it is laid out.", + "restrictions": [ + "image", + "box", + "shape", + "enum" + ] + }, + { + "name": "shape-rendering", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "auto", + "description": "Suppresses aural rendering." + }, + { + "name": "crispEdges", + "description": "Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision." + }, + { + "name": "geometricPrecision", + "description": "Emphasize geometric precision over speed and crisp edges." + }, + { + "name": "optimizeSpeed", + "description": "Emphasize rendering speed over geometric precision and crisp edges." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/shape-rendering" + } + ], + "description": "Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.", + "restrictions": [ + "enum" + ] + }, + { + "name": "size", + "browsers": [ + "C", + "O8" + ], + "atRule": "@page", + "syntax": "<length>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]", + "relevance": 53, + "description": "The size CSS at-rule descriptor, used with the @page at-rule, defines the size and orientation of the box which is used to represent a page. Most of the time, this size corresponds to the target size of the printed page if applicable.", + "restrictions": [ + "length" + ] + }, + { + "name": "src", + "values": [ + { + "name": "url()", + "description": "Reference font by URL" + }, + { + "name": "format()", + "description": "Optional hint describing the format of the font resource." + }, + { + "name": "local()", + "description": "Format-specific string that identifies a locally available copy of a given font." + } + ], + "atRule": "@font-face", + "syntax": "[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#", + "relevance": 84, + "description": "@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.", + "restrictions": [ + "enum", + "url", + "identifier" + ] + }, + { + "name": "stop-color", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/stop-color" + } + ], + "description": "Indicates what color to use at that gradient stop.", + "restrictions": [ + "color" + ] + }, + { + "name": "stop-opacity", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 52, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/stop-opacity" + } + ], + "description": "Defines the opacity of a given gradient stop.", + "restrictions": [ + "number(0-1)" + ] + }, + { + "name": "stroke", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "url()", + "description": "A URL reference to a paint server element, which is an element that defines a paint server: 'hatch', 'linearGradient', 'mesh', 'pattern', 'radialGradient' and 'solidcolor'." + }, + { + "name": "none", + "description": "No paint is applied in this layer." + } + ], + "relevance": 68, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/stroke" + } + ], + "description": "Paints along the outline of the given graphical element.", + "restrictions": [ + "color", + "enum", + "url" + ] + }, + { + "name": "stroke-dasharray", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "none", + "description": "Indicates that no dashing is used." + } + ], + "relevance": 61, + "description": "Controls the pattern of dashes and gaps used to stroke paths.", + "restrictions": [ + "length", + "percentage", + "number", + "enum" + ] + }, + { + "name": "stroke-dashoffset", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 62, + "description": "Specifies the distance into the dash pattern to start the dash.", + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "stroke-linecap", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "butt", + "description": "Indicates that the stroke for each subpath does not extend beyond its two endpoints." + }, + { + "name": "round", + "description": "Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width." + }, + { + "name": "square", + "description": "Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width." + } + ], + "relevance": 53, + "description": "Specifies the shape to be used at the end of open subpaths when they are stroked.", + "restrictions": [ + "enum" + ] + }, + { + "name": "stroke-linejoin", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "bevel", + "description": "Indicates that a bevelled corner is to be used to join path segments." + }, + { + "name": "miter", + "description": "Indicates that a sharp corner is to be used to join path segments." + }, + { + "name": "round", + "description": "Indicates that a round corner is to be used to join path segments." + } + ], + "relevance": 51, + "description": "Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.", + "restrictions": [ + "enum" + ] + }, + { + "name": "stroke-miterlimit", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 53, + "description": "When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.", + "restrictions": [ + "number" + ] + }, + { + "name": "stroke-opacity", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 52, + "description": "Specifies the opacity of the painting operation used to stroke the current object.", + "restrictions": [ + "number(0-1)" + ] + }, + { + "name": "stroke-width", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "relevance": 69, + "description": "Specifies the width of the stroke on the current object.", + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "suffix", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<symbol>", + "relevance": 50, + "description": "@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.", + "restrictions": [ + "image", + "string", + "identifier" + ] + }, + { + "name": "system", + "browsers": [ + "FF33" + ], + "values": [ + { + "name": "additive", + "description": "Represents \"sign-value\" numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together." + }, + { + "name": "alphabetic", + "description": "Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\"." + }, + { + "name": "cyclic", + "description": "Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list." + }, + { + "name": "extends", + "description": "Use the algorithm of another counter style, but alter other aspects." + }, + { + "name": "fixed", + "description": "Runs through its list of counter symbols once, then falls back." + }, + { + "name": "numeric", + "description": "interprets the list of counter symbols as digits to a \"place-value\" numbering system, similar to the default 'decimal' counter style." + }, + { + "name": "symbolic", + "description": "Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list." + } + ], + "atRule": "@counter-style", + "syntax": "cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]", + "relevance": 50, + "description": "@counter-style descriptor. Specifies which algorithm will be used to construct the counter's representation based on the counter value.", + "restrictions": [ + "enum", + "integer" + ] + }, + { + "name": "symbols", + "browsers": [ + "FF33" + ], + "atRule": "@counter-style", + "syntax": "<symbol>+", + "relevance": 50, + "description": "@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.", + "restrictions": [ + "image", + "string", + "identifier" + ] + }, + { + "name": "table-layout", + "browsers": [ + "E12", + "FF1", + "S1", + "C14", + "IE5", + "O7" + ], + "values": [ + { + "name": "auto", + "description": "Use any automatic table layout algorithm." + }, + { + "name": "fixed", + "description": "Use the fixed table layout algorithm." + } + ], + "syntax": "auto | fixed", + "relevance": 58, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/table-layout" + } + ], + "description": "Controls the algorithm used to lay out the table cells, rows, and columns.", + "restrictions": [ + "enum" + ] + }, + { + "name": "tab-size", + "browsers": [ + "E79", + "FF91", + "S7", + "C21", + "O15" + ], + "syntax": "<integer> | <length>", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/tab-size" + } + ], + "description": "Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.", + "restrictions": [ + "integer", + "length" + ] + }, + { + "name": "text-align", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "center", + "description": "The inline contents are centered within the line box." + }, + { + "name": "end", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "description": "The inline contents are aligned to the end edge of the line box." + }, + { + "name": "justify", + "description": "The text is justified according to the method specified by the 'text-justify' property." + }, + { + "name": "left", + "description": "The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text." + }, + { + "name": "right", + "description": "The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text." + }, + { + "name": "start", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "description": "The inline contents are aligned to the start edge of the line box." + } + ], + "syntax": "start | end | left | right | center | justify | match-parent", + "relevance": 93, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-align" + } + ], + "description": "Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.", + "restrictions": [ + "string" + ] + }, + { + "name": "text-align-last", + "browsers": [ + "E12", + "FF49", + "S16", + "C47", + "IE5.5", + "O34" + ], + "values": [ + { + "name": "auto", + "description": "Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'." + }, + { + "name": "center", + "description": "The inline contents are centered within the line box." + }, + { + "name": "justify", + "description": "The text is justified according to the method specified by the 'text-justify' property." + }, + { + "name": "left", + "description": "The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text." + }, + { + "name": "right", + "description": "The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text." + } + ], + "syntax": "auto | start | end | left | right | center | justify", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-align-last" + } + ], + "description": "Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-anchor", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "end", + "description": "The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position." + }, + { + "name": "middle", + "description": "The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position." + }, + { + "name": "start", + "description": "The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position." + } + ], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-anchor" + } + ], + "description": "Used to align (start-, middle- or end-alignment) a string of text relative to a given point.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-decoration", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [ + { + "name": "dashed", + "description": "Produces a dashed line style." + }, + { + "name": "dotted", + "description": "Produces a dotted line." + }, + { + "name": "double", + "description": "Produces a double line." + }, + { + "name": "line-through", + "description": "Each line of text has a line through the middle." + }, + { + "name": "none", + "description": "Produces no line." + }, + { + "name": "overline", + "description": "Each line of text has a line above it." + }, + { + "name": "solid", + "description": "Produces a solid line." + }, + { + "name": "underline", + "description": "Each line of text is underlined." + }, + { + "name": "wavy", + "description": "Produces a wavy line." + } + ], + "syntax": "<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>", + "relevance": 90, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration" + } + ], + "description": "Decorations applied to font used for an element's text.", + "restrictions": [ + "enum", + "color" + ] + }, + { + "name": "text-decoration-color", + "browsers": [ + "E79", + "FF36", + "S12.1", + "C57", + "O44" + ], + "syntax": "<color>", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-color" + } + ], + "description": "Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.", + "restrictions": [ + "color" + ] + }, + { + "name": "text-decoration-line", + "browsers": [ + "E79", + "FF36", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "line-through", + "description": "Each line of text has a line through the middle." + }, + { + "name": "none", + "description": "Neither produces nor inhibits text decoration." + }, + { + "name": "overline", + "description": "Each line of text has a line above it." + }, + { + "name": "underline", + "description": "Each line of text is underlined." + } + ], + "syntax": "none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-line" + } + ], + "description": "Specifies what line decorations, if any, are added to the element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-decoration-style", + "browsers": [ + "E79", + "FF36", + "S12.1", + "C57", + "O44" + ], + "values": [ + { + "name": "dashed", + "description": "Produces a dashed line style." + }, + { + "name": "dotted", + "description": "Produces a dotted line." + }, + { + "name": "double", + "description": "Produces a double line." + }, + { + "name": "none", + "description": "Produces no line." + }, + { + "name": "solid", + "description": "Produces a solid line." + }, + { + "name": "wavy", + "description": "Produces a wavy line." + } + ], + "syntax": "solid | double | dotted | dashed | wavy", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-style" + } + ], + "description": "Specifies the line style for underline, line-through and overline text decoration.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-indent", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "values": [], + "syntax": "<length-percentage> && hanging? && each-line?", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-indent" + } + ], + "description": "Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.", + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "text-justify", + "browsers": [ + "E79", + "FF55", + "C32", + "IE11", + "O19" + ], + "values": [ + { + "name": "auto", + "description": "The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality." + }, + { + "name": "distribute", + "description": "Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property." + }, + { + "name": "distribute-all-lines" + }, + { + "name": "inter-cluster", + "description": "Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai." + }, + { + "name": "inter-ideograph", + "description": "Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages." + }, + { + "name": "inter-word", + "description": "Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean." + }, + { + "name": "kashida", + "description": "Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation." + }, + { + "name": "newspaper" + } + ], + "syntax": "auto | inter-character | inter-word | none", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-justify" + } + ], + "description": "Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-orientation", + "browsers": [ + "E79", + "FF41", + "S14", + "C48", + "O35" + ], + "values": [ + { + "name": "sideways", + "browsers": [ + "E79", + "FF41", + "S14", + "C48", + "O35" + ], + "description": "This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode." + }, + { + "name": "sideways-right", + "browsers": [ + "E79", + "FF41", + "S14", + "C48", + "O35" + ], + "description": "In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90° clockwise." + }, + { + "name": "upright", + "description": "In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation." + } + ], + "syntax": "mixed | upright | sideways", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-orientation" + } + ], + "description": "Specifies the orientation of text within a line.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-overflow", + "browsers": [ + "E12", + "FF7", + "S1.3", + "C1", + "IE6", + "O11" + ], + "values": [ + { + "name": "clip", + "description": "Clip inline content that overflows. Characters may be only partially rendered." + }, + { + "name": "ellipsis", + "description": "Render an ellipsis character (U+2026) to represent clipped inline content." + } + ], + "syntax": "[ clip | ellipsis | <string> ]{1,2}", + "relevance": 80, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-overflow" + } + ], + "description": "Text can overflow for example when it is prevented from wrapping.", + "restrictions": [ + "enum", + "string" + ] + }, + { + "name": "text-rendering", + "browsers": [ + "E79", + "FF1", + "S5", + "C4", + "O15" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "geometricPrecision", + "description": "Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed." + }, + { + "name": "optimizeLegibility", + "description": "Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision." + }, + { + "name": "optimizeSpeed", + "description": "Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision." + } + ], + "syntax": "auto | optimizeSpeed | optimizeLegibility | geometricPrecision", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-rendering" + } + ], + "description": "The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The 'text-rendering' property provides these hints.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-shadow", + "browsers": [ + "E12", + "FF3.5", + "S1.1", + "C2", + "IE10", + "O9.5" + ], + "values": [ + { + "name": "none", + "description": "No shadow." + } + ], + "syntax": "none | <shadow-t>#", + "relevance": 71, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-shadow" + } + ], + "description": "Enables shadow effects to be applied to the text of the element.", + "restrictions": [ + "length", + "color" + ] + }, + { + "name": "text-transform", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O7" + ], + "values": [ + { + "name": "capitalize", + "description": "Puts the first typographic letter unit of each word in titlecase." + }, + { + "name": "lowercase", + "description": "Puts all letters in lowercase." + }, + { + "name": "none", + "description": "No effects." + }, + { + "name": "uppercase", + "description": "Puts all letters in uppercase." + } + ], + "syntax": "none | capitalize | uppercase | lowercase | full-width | full-size-kana", + "relevance": 84, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-transform" + } + ], + "description": "Controls capitalization effects of an element's text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "text-underline-position", + "browsers": [ + "E12", + "FF74", + "S12.1", + "C33", + "IE6", + "O20" + ], + "values": [ + { + "name": "above" + }, + { + "name": "auto", + "description": "The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over." + }, + { + "name": "below", + "description": "The underline is aligned with the under edge of the element's content box." + } + ], + "syntax": "auto | from-font | [ under || [ left | right ] ]", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-underline-position" + } + ], + "description": "Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text", + "restrictions": [ + "enum" + ] + }, + { + "name": "top", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5", + "O6" + ], + "values": [ + { + "name": "auto", + "description": "For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well" + } + ], + "syntax": "<length> | <percentage> | auto", + "relevance": 94, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/top" + } + ], + "description": "Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "touch-action", + "browsers": [ + "E12", + "FF52", + "S13", + "C36", + "IE11", + "O23" + ], + "values": [ + { + "name": "auto", + "description": "The user agent may determine any permitted touch behaviors for touches that begin on the element." + }, + { + "name": "cross-slide-x", + "browsers": [ + "E12", + "FF52", + "S13", + "C36", + "IE11", + "O23" + ] + }, + { + "name": "cross-slide-y", + "browsers": [ + "E12", + "FF52", + "S13", + "C36", + "IE11", + "O23" + ] + }, + { + "name": "double-tap-zoom", + "browsers": [ + "E12", + "FF52", + "S13", + "C36", + "IE11", + "O23" + ] + }, + { + "name": "manipulation", + "description": "The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming." + }, + { + "name": "none", + "description": "Touches that begin on the element must not trigger default touch behaviors." + }, + { + "name": "pan-x", + "description": "The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element's nearest ancestor with horizontally scrollable content." + }, + { + "name": "pan-y", + "description": "The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element's nearest ancestor with vertically scrollable content." + }, + { + "name": "pinch-zoom", + "browsers": [ + "E12", + "FF52", + "S13", + "C36", + "IE11", + "O23" + ] + } + ], + "syntax": "auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation", + "relevance": 69, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/touch-action" + } + ], + "description": "Determines whether touch input may trigger default behavior supplied by user agent.", + "restrictions": [ + "enum" + ] + }, + { + "name": "transform", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "IE10", + "O23" + ], + "values": [ + { + "name": "matrix()", + "description": "Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]" + }, + { + "name": "matrix3d()", + "description": "Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order." + }, + { + "name": "none" + }, + { + "name": "perspective()", + "description": "Specifies a perspective projection matrix." + }, + { + "name": "rotate()", + "description": "Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property." + }, + { + "name": "rotate3d()", + "description": "Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters." + }, + { + "name": "rotateX('angle')", + "description": "Specifies a clockwise rotation by the given angle about the X axis." + }, + { + "name": "rotateY('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Y axis." + }, + { + "name": "rotateZ('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Z axis." + }, + { + "name": "scale()", + "description": "Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first." + }, + { + "name": "scale3d()", + "description": "Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters." + }, + { + "name": "scaleX()", + "description": "Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter." + }, + { + "name": "scaleY()", + "description": "Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter." + }, + { + "name": "scaleZ()", + "description": "Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter." + }, + { + "name": "skew()", + "description": "Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)." + }, + { + "name": "skewX()", + "description": "Specifies a skew transformation along the X axis by the given angle." + }, + { + "name": "skewY()", + "description": "Specifies a skew transformation along the Y axis by the given angle." + }, + { + "name": "translate()", + "description": "Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter." + }, + { + "name": "translate3d()", + "description": "Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively." + }, + { + "name": "translateX()", + "description": "Specifies a translation by the given amount in the X direction." + }, + { + "name": "translateY()", + "description": "Specifies a translation by the given amount in the Y direction." + }, + { + "name": "translateZ()", + "description": "Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0." + } + ], + "syntax": "none | <transform-list>", + "relevance": 89, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transform" + } + ], + "description": "A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.", + "restrictions": [ + "enum" + ] + }, + { + "name": "transform-origin", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "IE10", + "O23" + ], + "syntax": "[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?", + "relevance": 74, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transform-origin" + } + ], + "description": "Establishes the origin of transformation for an element.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "transform-style", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "O23" + ], + "values": [ + { + "name": "flat", + "description": "All children of this element are rendered flattened into the 2D plane of the element." + }, + { + "name": "preserve-3d", + "browsers": [ + "E12", + "FF16", + "S9", + "C36", + "O23" + ], + "description": "Flattening is not performed, so children maintain their position in 3D space." + } + ], + "syntax": "flat | preserve-3d", + "relevance": 55, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transform-style" + } + ], + "description": "Defines how nested elements are rendered in 3D space.", + "restrictions": [ + "enum" + ] + }, + { + "name": "transition", + "browsers": [ + "E12", + "FF16", + "S9", + "C26", + "IE10", + "O12.1" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "syntax": "<single-transition>#", + "relevance": 88, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition" + } + ], + "description": "Shorthand property combines four of the transition properties into a single property.", + "restrictions": [ + "time", + "property", + "timing-function", + "enum" + ] + }, + { + "name": "transition-delay", + "browsers": [ + "E12", + "FF16", + "S9", + "C26", + "IE10", + "O12.1" + ], + "syntax": "<time>#", + "relevance": 63, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition-delay" + } + ], + "description": "Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.", + "restrictions": [ + "time" + ] + }, + { + "name": "transition-duration", + "browsers": [ + "E12", + "FF16", + "S9", + "C26", + "IE10", + "O12.1" + ], + "syntax": "<time>#", + "relevance": 68, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition-duration" + } + ], + "description": "Specifies how long the transition from the old value to the new value should take.", + "restrictions": [ + "time" + ] + }, + { + "name": "transition-property", + "browsers": [ + "E12", + "FF16", + "S9", + "C26", + "IE10", + "O12.1" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "syntax": "none | <single-transition-property>#", + "relevance": 67, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition-property" + } + ], + "description": "Specifies the name of the CSS property to which the transition is applied.", + "restrictions": [ + "property" + ] + }, + { + "name": "transition-timing-function", + "browsers": [ + "E12", + "FF16", + "S9", + "C26", + "IE10", + "O12.1" + ], + "syntax": "<easing-function>#", + "relevance": 67, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition-timing-function" + } + ], + "description": "Describes how the intermediate values used during a transition will be calculated.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "unicode-bidi", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C2", + "IE5.5", + "O9.2" + ], + "values": [ + { + "name": "bidi-override", + "description": "Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored." + }, + { + "name": "embed", + "description": "If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property." + }, + { + "name": "isolate", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C2", + "IE5.5", + "O9.2" + ], + "description": "The contents of the element are considered to be inside a separate, independent paragraph." + }, + { + "name": "isolate-override", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C2", + "IE5.5", + "O9.2" + ], + "description": "This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'" + }, + { + "name": "normal", + "description": "The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries." + }, + { + "name": "plaintext", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C2", + "IE5.5", + "O9.2" + ], + "description": "For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'." + } + ], + "syntax": "normal | embed | isolate | bidi-override | isolate-override | plaintext", + "relevance": 56, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/unicode-bidi" + } + ], + "description": "The level of embedding with respect to the bidirectional algorithm.", + "restrictions": [ + "enum" + ] + }, + { + "name": "unicode-range", + "values": [ + { + "name": "U+26", + "description": "Ampersand." + }, + { + "name": "U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00-FB4F", + "description": "WGL4 character set (Pan-European)." + }, + { + "name": "U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF", + "description": "The Multilingual European Subset No. 1. Latin. Covers ~44 languages." + }, + { + "name": "U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD", + "description": "The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language." + }, + { + "name": "U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD", + "description": "The Multilingual European Subset No. 3. Covers all characters belonging to European scripts." + }, + { + "name": "U+00-7F", + "description": "Basic Latin (ASCII)." + }, + { + "name": "U+80-FF", + "description": "Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs." + }, + { + "name": "U+100-17F", + "description": "Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish." + }, + { + "name": "U+180-24F", + "description": "Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology." + }, + { + "name": "U+1E00-1EFF", + "description": "Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use." + }, + { + "name": "U+250-2AF", + "description": "International Phonetic Alphabet Extensions." + }, + { + "name": "U+370-3FF", + "description": "Greek and Coptic." + }, + { + "name": "U+1F00-1FFF", + "description": "Greek Extended. Accented characters for polytonic Greek." + }, + { + "name": "U+400-4FF", + "description": "Cyrillic." + }, + { + "name": "U+500-52F", + "description": "Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok." + }, + { + "name": "U+00-52F, U+1E00-1FFF, U+2200-22FF", + "description": "Latin, Greek, Cyrillic, some punctuation and symbols." + }, + { + "name": "U+530-58F", + "description": "Armenian." + }, + { + "name": "U+590-5FF", + "description": "Hebrew." + }, + { + "name": "U+600-6FF", + "description": "Arabic." + }, + { + "name": "U+750-77F", + "description": "Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian." + }, + { + "name": "U+8A0-8FF", + "description": "Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs." + }, + { + "name": "U+700-74F", + "description": "Syriac." + }, + { + "name": "U+900-97F", + "description": "Devanagari." + }, + { + "name": "U+980-9FF", + "description": "Bengali." + }, + { + "name": "U+A00-A7F", + "description": "Gurmukhi." + }, + { + "name": "U+A80-AFF", + "description": "Gujarati." + }, + { + "name": "U+B00-B7F", + "description": "Oriya." + }, + { + "name": "U+B80-BFF", + "description": "Tamil." + }, + { + "name": "U+C00-C7F", + "description": "Telugu." + }, + { + "name": "U+C80-CFF", + "description": "Kannada." + }, + { + "name": "U+D00-D7F", + "description": "Malayalam." + }, + { + "name": "U+D80-DFF", + "description": "Sinhala." + }, + { + "name": "U+118A0-118FF", + "description": "Warang Citi." + }, + { + "name": "U+E00-E7F", + "description": "Thai." + }, + { + "name": "U+1A20-1AAF", + "description": "Tai Tham." + }, + { + "name": "U+AA80-AADF", + "description": "Tai Viet." + }, + { + "name": "U+E80-EFF", + "description": "Lao." + }, + { + "name": "U+F00-FFF", + "description": "Tibetan." + }, + { + "name": "U+1000-109F", + "description": "Myanmar (Burmese)." + }, + { + "name": "U+10A0-10FF", + "description": "Georgian." + }, + { + "name": "U+1200-137F", + "description": "Ethiopic." + }, + { + "name": "U+1380-139F", + "description": "Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks" + }, + { + "name": "U+2D80-2DDF", + "description": "Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit." + }, + { + "name": "U+AB00-AB2F", + "description": "Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz." + }, + { + "name": "U+1780-17FF", + "description": "Khmer." + }, + { + "name": "U+1800-18AF", + "description": "Mongolian." + }, + { + "name": "U+1B80-1BBF", + "description": "Sundanese." + }, + { + "name": "U+1CC0-1CCF", + "description": "Sundanese Supplement. Punctuation." + }, + { + "name": "U+4E00-9FD5", + "description": "CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese." + }, + { + "name": "U+3400-4DB5", + "description": "CJK Unified Ideographs Extension A. Rare ideographs." + }, + { + "name": "U+2F00-2FDF", + "description": "Kangxi Radicals." + }, + { + "name": "U+2E80-2EFF", + "description": "CJK Radicals Supplement. Alternative forms of Kangxi Radicals." + }, + { + "name": "U+1100-11FF", + "description": "Hangul Jamo." + }, + { + "name": "U+AC00-D7AF", + "description": "Hangul Syllables." + }, + { + "name": "U+3040-309F", + "description": "Hiragana." + }, + { + "name": "U+30A0-30FF", + "description": "Katakana." + }, + { + "name": "U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F", + "description": "Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol." + }, + { + "name": "U+A4D0-A4FF", + "description": "Lisu." + }, + { + "name": "U+A000-A48F", + "description": "Yi Syllables." + }, + { + "name": "U+A490-A4CF", + "description": "Yi Radicals." + }, + { + "name": "U+2000-206F", + "description": "General Punctuation." + }, + { + "name": "U+3000-303F", + "description": "CJK Symbols and Punctuation." + }, + { + "name": "U+2070-209F", + "description": "Superscripts and Subscripts." + }, + { + "name": "U+20A0-20CF", + "description": "Currency Symbols." + }, + { + "name": "U+2100-214F", + "description": "Letterlike Symbols." + }, + { + "name": "U+2150-218F", + "description": "Number Forms." + }, + { + "name": "U+2190-21FF", + "description": "Arrows." + }, + { + "name": "U+2200-22FF", + "description": "Mathematical Operators." + }, + { + "name": "U+2300-23FF", + "description": "Miscellaneous Technical." + }, + { + "name": "U+E000-F8FF", + "description": "Private Use Area." + }, + { + "name": "U+FB00-FB4F", + "description": "Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew." + }, + { + "name": "U+FB50-FDFF", + "description": "Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures." + }, + { + "name": "U+1F600-1F64F", + "description": "Emoji: Emoticons." + }, + { + "name": "U+2600-26FF", + "description": "Emoji: Miscellaneous Symbols." + }, + { + "name": "U+1F300-1F5FF", + "description": "Emoji: Miscellaneous Symbols and Pictographs." + }, + { + "name": "U+1F900-1F9FF", + "description": "Emoji: Supplemental Symbols and Pictographs." + }, + { + "name": "U+1F680-1F6FF", + "description": "Emoji: Transport and Map Symbols." + } + ], + "atRule": "@font-face", + "syntax": "<unicode-range>#", + "relevance": 71, + "description": "@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.", + "restrictions": [ + "unicode-range" + ] + }, + { + "name": "user-select", + "browsers": [ + "E79", + "FF69", + "S3", + "C54", + "IE10", + "O41" + ], + "values": [ + { + "name": "all", + "description": "The content of the element must be selected atomically" + }, + { + "name": "auto" + }, + { + "name": "contain", + "description": "UAs must not allow a selection which is started in this element to be extended outside of this element." + }, + { + "name": "none", + "description": "The UA must not allow selections to be started in this element." + }, + { + "name": "text", + "description": "The element imposes no constraint on the selection." + } + ], + "syntax": "auto | text | none | contain | all", + "relevance": 80, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/user-select" + } + ], + "description": "Controls the appearance of selection.", + "restrictions": [ + "enum" + ] + }, + { + "name": "vertical-align", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "values": [ + { + "name": "auto", + "description": "Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box." + }, + { + "name": "baseline", + "description": "Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element." + }, + { + "name": "bottom", + "description": "Align the after edge of the extended inline box with the after-edge of the line box." + }, + { + "name": "middle", + "description": "Align the 'middle' baseline of the inline element with the middle baseline of the parent." + }, + { + "name": "sub", + "description": "Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)" + }, + { + "name": "super", + "description": "Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)" + }, + { + "name": "text-bottom", + "description": "Align the bottom of the box with the after-edge of the parent element's font." + }, + { + "name": "text-top", + "description": "Align the top of the box with the before-edge of the parent element's font." + }, + { + "name": "top", + "description": "Align the before edge of the extended inline box with the before-edge of the line box." + }, + { + "name": "-webkit-baseline-middle", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ] + } + ], + "syntax": "baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>", + "relevance": 89, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/vertical-align" + } + ], + "description": "Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.", + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "visibility", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "values": [ + { + "name": "collapse", + "description": "Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'." + }, + { + "name": "hidden", + "description": "The generated box is invisible (fully transparent, nothing is drawn), but still affects layout." + }, + { + "name": "visible", + "description": "The generated box is visible." + } + ], + "syntax": "visible | hidden | collapse", + "relevance": 85, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/visibility" + } + ], + "description": "Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether).", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-animation", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + }, + { + "name": "none", + "description": "No animation is performed" + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Shorthand property combines six of the animation properties into a single property.", + "restrictions": [ + "time", + "enum", + "timing-function", + "identifier", + "number" + ] + }, + { + "name": "-webkit-animation-delay", + "browsers": [ + "C", + "S5" + ], + "relevance": 50, + "description": "Defines when the animation will start.", + "restrictions": [ + "time" + ] + }, + { + "name": "-webkit-animation-direction", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "relevance": 50, + "description": "Defines whether or not the animation should play in reverse on alternate cycles.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-animation-duration", + "browsers": [ + "C", + "S5" + ], + "relevance": 50, + "description": "Defines the length of time that an animation takes to complete one cycle.", + "restrictions": [ + "time" + ] + }, + { + "name": "-webkit-animation-fill-mode", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "none", + "description": "There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes." + } + ], + "relevance": 50, + "description": "Defines what values are applied by the animation outside the time it is executing.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-animation-iteration-count", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + } + ], + "relevance": 50, + "description": "Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.", + "restrictions": [ + "number", + "enum" + ] + }, + { + "name": "-webkit-animation-name", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "none", + "description": "No animation is performed" + } + ], + "relevance": 50, + "description": "Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.", + "restrictions": [ + "identifier", + "enum" + ] + }, + { + "name": "-webkit-animation-play-state", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "paused", + "description": "A running animation will be paused." + }, + { + "name": "running", + "description": "Resume playback of a paused animation." + } + ], + "relevance": 50, + "description": "Defines whether the animation is running or paused.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-animation-timing-function", + "browsers": [ + "C", + "S5" + ], + "relevance": 50, + "description": "Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "-webkit-appearance", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "button" + }, + { + "name": "button-bevel" + }, + { + "name": "caps-lock-indicator" + }, + { + "name": "caret" + }, + { + "name": "checkbox" + }, + { + "name": "default-button" + }, + { + "name": "listbox" + }, + { + "name": "listitem" + }, + { + "name": "media-fullscreen-button" + }, + { + "name": "media-mute-button" + }, + { + "name": "media-play-button" + }, + { + "name": "media-seek-back-button" + }, + { + "name": "media-seek-forward-button" + }, + { + "name": "media-slider" + }, + { + "name": "media-sliderthumb" + }, + { + "name": "menulist" + }, + { + "name": "menulist-button" + }, + { + "name": "menulist-text" + }, + { + "name": "menulist-textfield" + }, + { + "name": "none" + }, + { + "name": "push-button" + }, + { + "name": "radio" + }, + { + "name": "scrollbarbutton-down" + }, + { + "name": "scrollbarbutton-left" + }, + { + "name": "scrollbarbutton-right" + }, + { + "name": "scrollbarbutton-up" + }, + { + "name": "scrollbargripper-horizontal" + }, + { + "name": "scrollbargripper-vertical" + }, + { + "name": "scrollbarthumb-horizontal" + }, + { + "name": "scrollbarthumb-vertical" + }, + { + "name": "scrollbartrack-horizontal" + }, + { + "name": "scrollbartrack-vertical" + }, + { + "name": "searchfield" + }, + { + "name": "searchfield-cancel-button" + }, + { + "name": "searchfield-decoration" + }, + { + "name": "searchfield-results-button" + }, + { + "name": "searchfield-results-decoration" + }, + { + "name": "slider-horizontal" + }, + { + "name": "sliderthumb-horizontal" + }, + { + "name": "sliderthumb-vertical" + }, + { + "name": "slider-vertical" + }, + { + "name": "square-button" + }, + { + "name": "textarea" + }, + { + "name": "textfield" + } + ], + "status": "nonstandard", + "syntax": "none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button", + "relevance": 0, + "description": "Changes the appearance of buttons and other controls to resemble native controls.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-backdrop-filter", + "browsers": [ + "S9" + ], + "values": [ + { + "name": "none", + "description": "No filter effects are applied." + }, + { + "name": "blur()", + "description": "Applies a Gaussian blur to the input image." + }, + { + "name": "brightness()", + "description": "Applies a linear multiplier to input image, making it appear more or less bright." + }, + { + "name": "contrast()", + "description": "Adjusts the contrast of the input." + }, + { + "name": "drop-shadow()", + "description": "Applies a drop shadow effect to the input image." + }, + { + "name": "grayscale()", + "description": "Converts the input image to grayscale." + }, + { + "name": "hue-rotate()", + "description": "Applies a hue rotation on the input image. " + }, + { + "name": "invert()", + "description": "Inverts the samples in the input image." + }, + { + "name": "opacity()", + "description": "Applies transparency to the samples in the input image." + }, + { + "name": "saturate()", + "description": "Saturates the input image." + }, + { + "name": "sepia()", + "description": "Converts the input image to sepia." + }, + { + "name": "url()", + "description": "A filter reference to a <filter> element." + } + ], + "relevance": 50, + "description": "Applies a filter effect where the first filter in the list takes the element's background image as the input image.", + "restrictions": [ + "enum", + "url" + ] + }, + { + "name": "-webkit-backface-visibility", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "hidden" + }, + { + "name": "visible" + } + ], + "relevance": 50, + "description": "Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-background-clip", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Determines the background painting area.", + "restrictions": [ + "box" + ] + }, + { + "name": "-webkit-background-composite", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "border" + }, + { + "name": "padding" + } + ], + "relevance": 50, + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-background-origin", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).", + "restrictions": [ + "box" + ] + }, + { + "name": "-webkit-border-image", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "auto", + "description": "If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead." + }, + { + "name": "fill", + "description": "Causes the middle part of the border-image to be preserved." + }, + { + "name": "none" + }, + { + "name": "repeat", + "description": "The image is tiled (repeated) to fill the area." + }, + { + "name": "round", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does." + }, + { + "name": "space", + "description": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles." + }, + { + "name": "stretch", + "description": "The image is stretched to fill the area." + }, + { + "name": "url()" + } + ], + "relevance": 50, + "description": "Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "percentage", + "number", + "url", + "enum" + ] + }, + { + "name": "-webkit-box-align", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "baseline", + "description": "If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used." + }, + { + "name": "center", + "description": "Any extra space is divided evenly, with half placed above the child and the other half placed after the child." + }, + { + "name": "end", + "description": "For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element." + }, + { + "name": "start", + "description": "For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element." + }, + { + "name": "stretch", + "description": "The height of each child is adjusted to that of the containing block." + } + ], + "relevance": 50, + "description": "Specifies the alignment of nested elements within an outer flexible box element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-box-direction", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "normal", + "description": "A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom." + }, + { + "name": "reverse", + "description": "A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top." + } + ], + "relevance": 50, + "description": "In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-box-flex", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Specifies an element's flexibility.", + "restrictions": [ + "number" + ] + }, + { + "name": "-webkit-box-flex-group", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Flexible elements can be assigned to flex groups using the 'box-flex-group' property.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-webkit-box-ordinal-group", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-webkit-box-orient", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "block-axis", + "description": "Elements are oriented along the box's axis." + }, + { + "name": "horizontal", + "description": "The box displays its children from left to right in a horizontal line." + }, + { + "name": "inline-axis", + "description": "Elements are oriented vertically." + }, + { + "name": "vertical", + "description": "The box displays its children from stacked from top to bottom vertically." + } + ], + "relevance": 50, + "description": "In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-box-pack", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "center", + "description": "The extra space is divided evenly, with half placed before the first child and the other half placed after the last child." + }, + { + "name": "end", + "description": "For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child." + }, + { + "name": "justify", + "description": "The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start." + }, + { + "name": "start", + "description": "For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child." + } + ], + "relevance": 50, + "description": "Specifies alignment of child elements within the current element in the direction of orientation.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-box-reflect", + "browsers": [ + "E79", + "S4", + "C4", + "O15" + ], + "values": [ + { + "name": "above", + "description": "The reflection appears above the border box." + }, + { + "name": "below", + "description": "The reflection appears below the border box." + }, + { + "name": "left", + "description": "The reflection appears to the left of the border box." + }, + { + "name": "right", + "description": "The reflection appears to the right of the border box." + } + ], + "status": "nonstandard", + "syntax": "[ above | below | right | left ]? <length>? <image>?", + "relevance": 0, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect" + } + ], + "description": "Defines a reflection of a border box." + }, + { + "name": "-webkit-box-sizing", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "border-box", + "description": "The specified width and height (and respective min/max properties) on this element determine the border box of the element." + }, + { + "name": "content-box", + "description": "Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element." + } + ], + "relevance": 50, + "description": "Box Model addition in CSS3.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-break-after", + "browsers": [ + "S7" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break before/after the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the generated box." + }, + { + "name": "avoid-region" + }, + { + "name": "column", + "description": "Always force a column break before/after the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "region" + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior before the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-break-before", + "browsers": [ + "S7" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break before/after the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the generated box." + }, + { + "name": "avoid-region" + }, + { + "name": "column", + "description": "Always force a column break before/after the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "region" + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior before the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-break-inside", + "browsers": [ + "S7" + ], + "values": [ + { + "name": "auto", + "description": "Neither force nor forbid a page/column break inside the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break inside the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break inside the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break inside the generated box." + }, + { + "name": "avoid-region" + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior inside the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-column-break-after", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break before/after the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the generated box." + }, + { + "name": "avoid-region" + }, + { + "name": "column", + "description": "Always force a column break before/after the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "region" + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior before the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-column-break-before", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "always", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "auto", + "description": "Neither force nor forbid a page/column break before/after the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break before/after the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break before/after the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break before/after the generated box." + }, + { + "name": "avoid-region" + }, + { + "name": "column", + "description": "Always force a column break before/after the generated box." + }, + { + "name": "left", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a left page." + }, + { + "name": "page", + "description": "Always force a page break before/after the generated box." + }, + { + "name": "region" + }, + { + "name": "right", + "description": "Force one or two page breaks before/after the generated box so that the next page is formatted as a right page." + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior before the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-column-break-inside", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "auto", + "description": "Neither force nor forbid a page/column break inside the generated box." + }, + { + "name": "avoid", + "description": "Avoid a page/column break inside the generated box." + }, + { + "name": "avoid-column", + "description": "Avoid a column break inside the generated box." + }, + { + "name": "avoid-page", + "description": "Avoid a page break inside the generated box." + }, + { + "name": "avoid-region" + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior inside the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-column-count", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "auto", + "description": "Determines the number of columns by the 'column-width' property and the element width." + } + ], + "relevance": 50, + "description": "Describes the optimal number of columns into which the content of the element will be flowed.", + "restrictions": [ + "integer" + ] + }, + { + "name": "-webkit-column-gap", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "normal", + "description": "User agent specific and typically equivalent to 1em." + } + ], + "relevance": 50, + "description": "Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.", + "restrictions": [ + "length" + ] + }, + { + "name": "-webkit-column-rule", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.", + "restrictions": [ + "length", + "line-width", + "line-style", + "color" + ] + }, + { + "name": "-webkit-column-rule-color", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Sets the color of the column rule", + "restrictions": [ + "color" + ] + }, + { + "name": "-webkit-column-rule-style", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Sets the style of the rule between columns of an element.", + "restrictions": [ + "line-style" + ] + }, + { + "name": "-webkit-column-rule-width", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "description": "Sets the width of the rule between columns. Negative values are not allowed.", + "restrictions": [ + "length", + "line-width" + ] + }, + { + "name": "-webkit-columns", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "relevance": 50, + "description": "A shorthand property which sets both 'column-width' and 'column-count'.", + "restrictions": [ + "length", + "integer" + ] + }, + { + "name": "-webkit-column-span", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "all", + "description": "The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear." + }, + { + "name": "none", + "description": "The element does not span multiple columns." + } + ], + "relevance": 50, + "description": "Describes the page/column break behavior after the generated box.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-column-width", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + } + ], + "relevance": 50, + "description": "This property describes the width of columns in multicol elements.", + "restrictions": [ + "length" + ] + }, + { + "name": "-webkit-filter", + "browsers": [ + "C18", + "O15", + "S6" + ], + "values": [ + { + "name": "none", + "description": "No filter effects are applied." + }, + { + "name": "blur()", + "description": "Applies a Gaussian blur to the input image." + }, + { + "name": "brightness()", + "description": "Applies a linear multiplier to input image, making it appear more or less bright." + }, + { + "name": "contrast()", + "description": "Adjusts the contrast of the input." + }, + { + "name": "drop-shadow()", + "description": "Applies a drop shadow effect to the input image." + }, + { + "name": "grayscale()", + "description": "Converts the input image to grayscale." + }, + { + "name": "hue-rotate()", + "description": "Applies a hue rotation on the input image. " + }, + { + "name": "invert()", + "description": "Inverts the samples in the input image." + }, + { + "name": "opacity()", + "description": "Applies transparency to the samples in the input image." + }, + { + "name": "saturate()", + "description": "Saturates the input image." + }, + { + "name": "sepia()", + "description": "Converts the input image to sepia." + }, + { + "name": "url()", + "description": "A filter reference to a <filter> element." + } + ], + "relevance": 50, + "description": "Processes an element's rendering before it is displayed in the document, by applying one or more filter effects.", + "restrictions": [ + "enum", + "url" + ] + }, + { + "name": "-webkit-flow-from", + "browsers": [ + "S6.1" + ], + "values": [ + { + "name": "none", + "description": "The block container is not a CSS Region." + } + ], + "relevance": 50, + "description": "Makes a block container a region and associates it with a named flow.", + "restrictions": [ + "identifier" + ] + }, + { + "name": "-webkit-flow-into", + "browsers": [ + "S6.1" + ], + "values": [ + { + "name": "none", + "description": "The element is not moved to a named flow and normal CSS processing takes place." + } + ], + "relevance": 50, + "description": "Places an element or its contents into a named flow.", + "restrictions": [ + "identifier" + ] + }, + { + "name": "-webkit-font-feature-settings", + "browsers": [ + "C16" + ], + "values": [ + { + "name": "\"c2cs\"" + }, + { + "name": "\"dlig\"" + }, + { + "name": "\"kern\"" + }, + { + "name": "\"liga\"" + }, + { + "name": "\"lnum\"" + }, + { + "name": "\"onum\"" + }, + { + "name": "\"smcp\"" + }, + { + "name": "\"swsh\"" + }, + { + "name": "\"tnum\"" + }, + { + "name": "normal", + "description": "No change in glyph substitution or positioning occurs." + }, + { + "name": "off" + }, + { + "name": "on" + } + ], + "relevance": 50, + "description": "This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.", + "restrictions": [ + "string", + "integer" + ] + }, + { + "name": "-webkit-hyphens", + "browsers": [ + "S5.1" + ], + "values": [ + { + "name": "auto", + "description": "Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word." + }, + { + "name": "manual", + "description": "Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities" + }, + { + "name": "none", + "description": "Words are not broken at line breaks, even if characters inside the word suggest line break points." + } + ], + "relevance": 50, + "description": "Controls whether hyphenation is allowed to create more break opportunities within a line of text.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-line-break", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "after-white-space" + }, + { + "name": "normal" + } + ], + "relevance": 50, + "description": "Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text." + }, + { + "name": "-webkit-margin-bottom-collapse", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "collapse" + }, + { + "name": "discard" + }, + { + "name": "separate" + } + ], + "relevance": 50, + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-margin-collapse", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "collapse" + }, + { + "name": "discard" + }, + { + "name": "separate" + } + ], + "relevance": 50, + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-margin-start", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "auto" + } + ], + "relevance": 50, + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "-webkit-margin-top-collapse", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "collapse" + }, + { + "name": "discard" + }, + { + "name": "separate" + } + ], + "relevance": 50, + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-mask-clip", + "browsers": [ + "C", + "O15", + "S4" + ], + "status": "nonstandard", + "syntax": "[ <box> | border | padding | content | text ]#", + "relevance": 0, + "description": "Determines the mask painting area, which determines the area that is affected by the mask.", + "restrictions": [ + "box" + ] + }, + { + "name": "-webkit-mask-image", + "browsers": [ + "C", + "O15", + "S4" + ], + "values": [ + { + "name": "none", + "description": "Counts as a transparent black image layer." + }, + { + "name": "url()", + "description": "Reference to a <mask element or to a CSS image." + } + ], + "status": "nonstandard", + "syntax": "<mask-reference>#", + "relevance": 0, + "description": "Sets the mask layer image of an element.", + "restrictions": [ + "url", + "image", + "enum" + ] + }, + { + "name": "-webkit-mask-origin", + "browsers": [ + "C", + "O15", + "S4" + ], + "status": "nonstandard", + "syntax": "[ <box> | border | padding | content ]#", + "relevance": 0, + "description": "Specifies the mask positioning area.", + "restrictions": [ + "box" + ] + }, + { + "name": "-webkit-mask-repeat", + "browsers": [ + "C", + "O15", + "S4" + ], + "status": "nonstandard", + "syntax": "<repeat-style>#", + "relevance": 0, + "description": "Specifies how mask layer images are tiled after they have been sized and positioned.", + "restrictions": [ + "repeat" + ] + }, + { + "name": "-webkit-mask-size", + "browsers": [ + "C", + "O15", + "S4" + ], + "values": [ + { + "name": "auto", + "description": "Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%." + }, + { + "name": "contain", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area." + }, + { + "name": "cover", + "description": "Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area." + } + ], + "status": "nonstandard", + "syntax": "<bg-size>#", + "relevance": 0, + "description": "Specifies the size of the mask layer images.", + "restrictions": [ + "length", + "percentage", + "enum" + ] + }, + { + "name": "-webkit-nbsp-mode", + "browsers": [ + "S13.1" + ], + "values": [ + { + "name": "normal" + }, + { + "name": "space" + } + ], + "relevance": 50, + "description": "Defines the behavior of nonbreaking spaces within text." + }, + { + "name": "-webkit-overflow-scrolling", + "browsers": [ + "C", + "S5" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "touch" + } + ], + "status": "nonstandard", + "syntax": "auto | touch", + "relevance": 0, + "description": "Specifies whether to use native-style scrolling in an overflow:scroll element." + }, + { + "name": "-webkit-padding-start", + "browsers": [ + "C", + "S3" + ], + "relevance": 50, + "restrictions": [ + "percentage", + "length" + ] + }, + { + "name": "-webkit-perspective", + "browsers": [ + "C", + "S4" + ], + "values": [ + { + "name": "none", + "description": "No perspective transform is applied." + } + ], + "relevance": 50, + "description": "Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.", + "restrictions": [ + "length" + ] + }, + { + "name": "-webkit-perspective-origin", + "browsers": [ + "C", + "S4" + ], + "relevance": 50, + "description": "Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.", + "restrictions": [ + "position", + "percentage", + "length" + ] + }, + { + "name": "-webkit-region-fragment", + "browsers": [ + "S7" + ], + "values": [ + { + "name": "auto", + "description": "Content flows as it would in a regular content box." + }, + { + "name": "break", + "description": "If the content fits within the CSS Region, then this property has no effect." + } + ], + "relevance": 50, + "description": "The 'region-fragment' property controls the behavior of the last region associated with a named flow.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-tap-highlight-color", + "browsers": [ + "E12", + "C16", + "O15" + ], + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color" + } + ], + "restrictions": [ + "color" + ] + }, + { + "name": "-webkit-text-fill-color", + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "syntax": "<color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color" + } + ], + "restrictions": [ + "color" + ] + }, + { + "name": "-webkit-text-size-adjust", + "browsers": [ + "E", + "C", + "S3" + ], + "values": [ + { + "name": "auto", + "description": "Renderers must use the default size adjustment when displaying on a small device." + }, + { + "name": "none", + "description": "Renderers must not do size adjustment when displaying on a small device." + } + ], + "relevance": 50, + "description": "Specifies a size adjustment for displaying text content in mobile browsers.", + "restrictions": [ + "percentage" + ] + }, + { + "name": "-webkit-text-stroke", + "browsers": [ + "E15", + "FF49", + "S3", + "C4", + "O15" + ], + "syntax": "<length> || <color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke" + } + ], + "restrictions": [ + "length", + "line-width", + "color", + "percentage" + ] + }, + { + "name": "-webkit-text-stroke-color", + "browsers": [ + "E15", + "FF49", + "S3", + "C1", + "O15" + ], + "syntax": "<color>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color" + } + ], + "restrictions": [ + "color" + ] + }, + { + "name": "-webkit-text-stroke-width", + "browsers": [ + "E15", + "FF49", + "S3", + "C1", + "O15" + ], + "syntax": "<length>", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width" + } + ], + "restrictions": [ + "length", + "line-width", + "percentage" + ] + }, + { + "name": "-webkit-touch-callout", + "browsers": [ + "S3" + ], + "values": [ + { + "name": "none" + } + ], + "status": "nonstandard", + "syntax": "default | none", + "relevance": 0, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout" + } + ], + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-transform", + "browsers": [ + "C", + "O12", + "S3.1" + ], + "values": [ + { + "name": "matrix()", + "description": "Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]" + }, + { + "name": "matrix3d()", + "description": "Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order." + }, + { + "name": "none" + }, + { + "name": "perspective()", + "description": "Specifies a perspective projection matrix." + }, + { + "name": "rotate()", + "description": "Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property." + }, + { + "name": "rotate3d()", + "description": "Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters." + }, + { + "name": "rotateX('angle')", + "description": "Specifies a clockwise rotation by the given angle about the X axis." + }, + { + "name": "rotateY('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Y axis." + }, + { + "name": "rotateZ('angle')", + "description": "Specifies a clockwise rotation by the given angle about the Z axis." + }, + { + "name": "scale()", + "description": "Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first." + }, + { + "name": "scale3d()", + "description": "Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters." + }, + { + "name": "scaleX()", + "description": "Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter." + }, + { + "name": "scaleY()", + "description": "Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter." + }, + { + "name": "scaleZ()", + "description": "Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter." + }, + { + "name": "skew()", + "description": "Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)." + }, + { + "name": "skewX()", + "description": "Specifies a skew transformation along the X axis by the given angle." + }, + { + "name": "skewY()", + "description": "Specifies a skew transformation along the Y axis by the given angle." + }, + { + "name": "translate()", + "description": "Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter." + }, + { + "name": "translate3d()", + "description": "Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively." + }, + { + "name": "translateX()", + "description": "Specifies a translation by the given amount in the X direction." + }, + { + "name": "translateY()", + "description": "Specifies a translation by the given amount in the Y direction." + }, + { + "name": "translateZ()", + "description": "Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0." + } + ], + "relevance": 50, + "description": "A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-transform-origin", + "browsers": [ + "C", + "O15", + "S3.1" + ], + "relevance": 50, + "description": "Establishes the origin of transformation for an element.", + "restrictions": [ + "position", + "length", + "percentage" + ] + }, + { + "name": "-webkit-transform-origin-x", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "relevance": 50, + "description": "The x coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-webkit-transform-origin-y", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "relevance": 50, + "description": "The y coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-webkit-transform-origin-z", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "relevance": 50, + "description": "The z coordinate of the origin for transforms applied to an element with respect to its border box.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "-webkit-transform-style", + "browsers": [ + "C", + "S4" + ], + "values": [ + { + "name": "flat", + "description": "All children of this element are rendered flattened into the 2D plane of the element." + } + ], + "relevance": 50, + "description": "Defines how nested elements are rendered in 3D space.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-transition", + "browsers": [ + "C", + "O12", + "S5" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Shorthand property combines four of the transition properties into a single property.", + "restrictions": [ + "time", + "property", + "timing-function", + "enum" + ] + }, + { + "name": "-webkit-transition-delay", + "browsers": [ + "C", + "O12", + "S5" + ], + "relevance": 50, + "description": "Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.", + "restrictions": [ + "time" + ] + }, + { + "name": "-webkit-transition-duration", + "browsers": [ + "C", + "O12", + "S5" + ], + "relevance": 50, + "description": "Specifies how long the transition from the old value to the new value should take.", + "restrictions": [ + "time" + ] + }, + { + "name": "-webkit-transition-property", + "browsers": [ + "C", + "O12", + "S5" + ], + "values": [ + { + "name": "all", + "description": "Every property that is able to undergo a transition will do so." + }, + { + "name": "none", + "description": "No property will transition." + } + ], + "relevance": 50, + "description": "Specifies the name of the CSS property to which the transition is applied.", + "restrictions": [ + "property" + ] + }, + { + "name": "-webkit-transition-timing-function", + "browsers": [ + "C", + "O12", + "S5" + ], + "relevance": 50, + "description": "Describes how the intermediate values used during a transition will be calculated.", + "restrictions": [ + "timing-function" + ] + }, + { + "name": "-webkit-user-drag", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "element" + }, + { + "name": "none" + } + ], + "relevance": 50, + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-user-modify", + "browsers": [ + "E80", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "read-only" + }, + { + "name": "read-write" + }, + { + "name": "read-write-plaintext-only" + } + ], + "status": "nonstandard", + "syntax": "read-only | read-write | read-write-plaintext-only", + "relevance": 0, + "description": "Determines whether a user can edit the content of an element.", + "restrictions": [ + "enum" + ] + }, + { + "name": "-webkit-user-select", + "browsers": [ + "C", + "S3" + ], + "values": [ + { + "name": "auto" + }, + { + "name": "none" + }, + { + "name": "text" + } + ], + "relevance": 50, + "description": "Controls the appearance of selection.", + "restrictions": [ + "enum" + ] + }, + { + "name": "widows", + "browsers": [ + "E12", + "S1.3", + "C25", + "IE8", + "O9.2" + ], + "syntax": "<integer>", + "relevance": 51, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/widows" + } + ], + "description": "Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.", + "restrictions": [ + "integer" + ] + }, + { + "name": "width", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "values": [ + { + "name": "auto", + "description": "The width depends on the values of other properties." + }, + { + "name": "fit-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "description": "Use the fit-content inline size or fit-content block size, as appropriate to the writing mode." + }, + { + "name": "max-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "description": "Use the max-content inline size or max-content block size, as appropriate to the writing mode." + }, + { + "name": "min-content", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "description": "Use the min-content inline size or min-content block size, as appropriate to the writing mode." + } + ], + "syntax": "auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)", + "relevance": 95, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/width" + } + ], + "description": "Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "will-change", + "browsers": [ + "E79", + "FF36", + "S9.1", + "C36", + "O23" + ], + "values": [ + { + "name": "auto", + "description": "Expresses no particular intent." + }, + { + "name": "contents", + "description": "Indicates that the author expects to animate or change something about the element's contents in the near future." + }, + { + "name": "scroll-position", + "description": "Indicates that the author expects to animate or change the scroll position of the element in the near future." + } + ], + "syntax": "auto | <animateable-feature>#", + "relevance": 65, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/will-change" + } + ], + "description": "Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.", + "restrictions": [ + "enum", + "identifier" + ] + }, + { + "name": "word-break", + "browsers": [ + "E12", + "FF15", + "S3", + "C1", + "IE5.5", + "O15" + ], + "values": [ + { + "name": "break-all", + "description": "Lines may break between any two grapheme clusters for non-CJK scripts." + }, + { + "name": "keep-all", + "description": "Block characters can no longer create implied break points." + }, + { + "name": "normal", + "description": "Breaks non-CJK scripts according to their own rules." + } + ], + "syntax": "normal | break-all | keep-all | break-word", + "relevance": 75, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/word-break" + } + ], + "description": "Specifies line break opportunities for non-CJK scripts.", + "restrictions": [ + "enum" + ] + }, + { + "name": "word-spacing", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE6", + "O3.5" + ], + "values": [ + { + "name": "normal", + "description": "No additional spacing is applied. Computes to zero." + } + ], + "syntax": "normal | <length>", + "relevance": 57, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/word-spacing" + } + ], + "description": "Specifies additional spacing between \"words\".", + "restrictions": [ + "length", + "percentage" + ] + }, + { + "name": "word-wrap", + "browsers": [ + "E80", + "FF72", + "S13.1", + "C80", + "O67" + ], + "values": [ + { + "name": "break-word", + "description": "An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line." + }, + { + "name": "normal", + "description": "Lines may break only at allowed break points." + } + ], + "syntax": "normal | break-word", + "relevance": 75, + "description": "Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.", + "restrictions": [ + "enum" + ] + }, + { + "name": "writing-mode", + "browsers": [ + "E12", + "FF41", + "S10.1", + "C48", + "IE9", + "O35" + ], + "values": [ + { + "name": "horizontal-tb", + "description": "Top-to-bottom block flow direction. The writing mode is horizontal." + }, + { + "name": "sideways-lr", + "browsers": [ + "E12", + "FF41", + "S10.1", + "C48", + "IE9", + "O35" + ], + "description": "Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal." + }, + { + "name": "sideways-rl", + "browsers": [ + "E12", + "FF41", + "S10.1", + "C48", + "IE9", + "O35" + ], + "description": "Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal." + }, + { + "name": "vertical-lr", + "description": "Left-to-right block flow direction. The writing mode is vertical." + }, + { + "name": "vertical-rl", + "description": "Right-to-left block flow direction. The writing mode is vertical." + } + ], + "syntax": "horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr", + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/writing-mode" + } + ], + "description": "This is a shorthand property for both 'direction' and 'block-progression'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "z-index", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O4" + ], + "values": [ + { + "name": "auto", + "description": "The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element." + } + ], + "syntax": "auto | <integer>", + "relevance": 91, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/z-index" + } + ], + "description": "For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.", + "restrictions": [ + "integer" + ] + }, + { + "name": "zoom", + "browsers": [ + "E12", + "FF126", + "S3.1", + "C1", + "IE5.5", + "O15" + ], + "values": [ + { + "name": "normal" + } + ], + "syntax": "normal | reset | <number> | <percentage>", + "relevance": 63, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/zoom" + } + ], + "description": "Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.", + "restrictions": [ + "enum", + "integer", + "number", + "percentage" + ] + }, + { + "name": "-ms-ime-align", + "status": "nonstandard", + "syntax": "auto | after", + "values": [ + { + "name": "auto" + }, + { + "name": "after" + } + ], + "relevance": 0, + "description": "Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active." + }, + { + "name": "-moz-binding", + "status": "nonstandard", + "syntax": "<url> | none", + "relevance": 0, + "description": "The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element." + }, + { + "name": "-moz-context-properties", + "status": "nonstandard", + "syntax": "none | [ fill | fill-opacity | stroke | stroke-opacity ]#", + "relevance": 0, + "description": "If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\n\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true." + }, + { + "name": "-moz-float-edge", + "status": "obsolete", + "syntax": "border-box | content-box | margin-box | padding-box", + "values": [ + { + "name": "border-box" + }, + { + "name": "content-box" + }, + { + "name": "margin-box" + }, + { + "name": "padding-box" + } + ], + "relevance": 0, + "browsers": [ + "FF1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge" + } + ], + "description": "The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness." + }, + { + "name": "-moz-force-broken-image-icon", + "status": "obsolete", + "syntax": "0 | 1", + "values": [ + { + "name": "0" + }, + { + "name": "1" + } + ], + "relevance": 0, + "browsers": [ + "FF1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon" + } + ], + "description": "The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute." + }, + { + "name": "-moz-image-region", + "status": "nonstandard", + "syntax": "<shape> | auto", + "relevance": 0, + "browsers": [ + "FF1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-image-region" + } + ], + "description": "For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance." + }, + { + "name": "-moz-orient", + "status": "nonstandard", + "syntax": "inline | block | horizontal | vertical", + "values": [ + { + "name": "inline" + }, + { + "name": "block" + }, + { + "name": "horizontal" + }, + { + "name": "vertical" + } + ], + "relevance": 0, + "browsers": [ + "FF6" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-orient" + } + ], + "description": "The -moz-orient CSS property specifies the orientation of the element to which it's applied." + }, + { + "name": "-moz-outline-radius", + "status": "nonstandard", + "syntax": "<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?", + "relevance": 0, + "description": "In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners." + }, + { + "name": "-moz-outline-radius-bottomleft", + "status": "nonstandard", + "syntax": "<outline-radius>", + "relevance": 0, + "description": "In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline." + }, + { + "name": "-moz-outline-radius-bottomright", + "status": "nonstandard", + "syntax": "<outline-radius>", + "relevance": 0, + "description": "In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline." + }, + { + "name": "-moz-outline-radius-topleft", + "status": "nonstandard", + "syntax": "<outline-radius>", + "relevance": 0, + "description": "In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline." + }, + { + "name": "-moz-outline-radius-topright", + "status": "nonstandard", + "syntax": "<outline-radius>", + "relevance": 0, + "description": "In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline." + }, + { + "name": "-moz-stack-sizing", + "status": "nonstandard", + "syntax": "ignore | stretch-to-fit", + "values": [ + { + "name": "ignore" + }, + { + "name": "stretch-to-fit" + } + ], + "relevance": 0, + "description": "-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible." + }, + { + "name": "-moz-text-blink", + "status": "nonstandard", + "syntax": "none | blink", + "values": [ + { + "name": "none" + }, + { + "name": "blink" + } + ], + "relevance": 0, + "description": "The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode." + }, + { + "name": "-moz-user-input", + "status": "obsolete", + "syntax": "auto | none | enabled | disabled", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + }, + { + "name": "enabled" + }, + { + "name": "disabled" + } + ], + "relevance": 0, + "browsers": [ + "FF1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-moz-user-input" + } + ], + "description": "In Mozilla applications, -moz-user-input determines if an element will accept user input." + }, + { + "name": "-moz-user-modify", + "status": "nonstandard", + "syntax": "read-only | read-write | write-only", + "values": [ + { + "name": "read-only" + }, + { + "name": "read-write" + }, + { + "name": "write-only" + } + ], + "relevance": 0, + "description": "The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user." + }, + { + "name": "-moz-window-dragging", + "status": "nonstandard", + "syntax": "drag | no-drag", + "values": [ + { + "name": "drag" + }, + { + "name": "no-drag" + } + ], + "relevance": 0, + "description": "The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X." + }, + { + "name": "-moz-window-shadow", + "status": "nonstandard", + "syntax": "default | menu | tooltip | sheet | none", + "values": [ + { + "name": "default" + }, + { + "name": "menu" + }, + { + "name": "tooltip" + }, + { + "name": "sheet" + }, + { + "name": "none" + } + ], + "relevance": 0, + "description": "The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X." + }, + { + "name": "-webkit-border-before", + "status": "nonstandard", + "syntax": "<'border-width'> || <'border-style'> || <color>", + "relevance": 0, + "browsers": [ + "E79", + "S5.1", + "C8", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before" + } + ], + "description": "The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet." + }, + { + "name": "-webkit-border-before-color", + "status": "nonstandard", + "syntax": "<color>", + "relevance": 0, + "description": "The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet." + }, + { + "name": "-webkit-border-before-style", + "status": "nonstandard", + "syntax": "<'border-style'>", + "relevance": 0, + "description": "The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet." + }, + { + "name": "-webkit-border-before-width", + "status": "nonstandard", + "syntax": "<'border-width'>", + "relevance": 0, + "description": "The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet." + }, + { + "name": "-webkit-line-clamp", + "syntax": "none | <integer>", + "relevance": 50, + "description": "The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines." + }, + { + "name": "-webkit-mask", + "status": "nonstandard", + "syntax": "[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#", + "relevance": 0, + "description": "The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points." + }, + { + "name": "-webkit-mask-attachment", + "status": "nonstandard", + "syntax": "<attachment>#", + "relevance": 0, + "description": "If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block." + }, + { + "name": "-webkit-mask-composite", + "status": "nonstandard", + "syntax": "<composite-style>#", + "relevance": 0, + "browsers": [ + "E18", + "S3.1", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite" + } + ], + "description": "The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property." + }, + { + "name": "-webkit-mask-position", + "status": "nonstandard", + "syntax": "<position>#", + "relevance": 0, + "description": "The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image." + }, + { + "name": "-webkit-mask-position-x", + "status": "nonstandard", + "syntax": "[ <length-percentage> | left | center | right ]#", + "relevance": 0, + "browsers": [ + "E18", + "FF49", + "S3.1", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x" + } + ], + "description": "The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image." + }, + { + "name": "-webkit-mask-position-y", + "status": "nonstandard", + "syntax": "[ <length-percentage> | top | center | bottom ]#", + "relevance": 0, + "browsers": [ + "E18", + "FF49", + "S3.1", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y" + } + ], + "description": "The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image." + }, + { + "name": "-webkit-mask-repeat-x", + "status": "nonstandard", + "syntax": "repeat | no-repeat | space | round", + "values": [ + { + "name": "repeat" + }, + { + "name": "no-repeat" + }, + { + "name": "space" + }, + { + "name": "round" + } + ], + "relevance": 0, + "browsers": [ + "E79", + "S5", + "C3", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x" + } + ], + "description": "The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally." + }, + { + "name": "-webkit-mask-repeat-y", + "status": "nonstandard", + "syntax": "repeat | no-repeat | space | round", + "values": [ + { + "name": "repeat" + }, + { + "name": "no-repeat" + }, + { + "name": "space" + }, + { + "name": "round" + } + ], + "relevance": 0, + "browsers": [ + "E79", + "S5", + "C3", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y" + } + ], + "description": "The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically." + }, + { + "name": "accent-color", + "syntax": "auto | <color>", + "relevance": 50, + "browsers": [ + "E93", + "FF92", + "S15.4", + "C93", + "O79" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/accent-color" + } + ], + "description": "Sets the color of the elements accent" + }, + { + "name": "align-tracks", + "status": "experimental", + "syntax": "[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#", + "relevance": 50, + "description": "The align-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their block axis." + }, + { + "name": "anchor-name", + "status": "experimental", + "syntax": "none | <dashed-ident>#", + "relevance": 50, + "browsers": [ + "E125", + "C125", + "O111" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/anchor-name" + } + ], + "description": "The anchor-name property declares that an element is an anchor element, and gives it a list of anchor names to be targeted by." + }, + { + "name": "anchor-scope", + "status": "experimental", + "syntax": "none | all | <dashed-ident>#", + "relevance": 50, + "description": "This property scopes the specified anchor names, and lookups for these anchor names, to this element’s subtree" + }, + { + "name": "animation-composition", + "syntax": "<single-animation-composition>#", + "relevance": 50, + "browsers": [ + "E112", + "FF115", + "S16", + "C112", + "O98" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-composition" + } + ], + "description": "The composite operation to use when multiple animations affect the same property." + }, + { + "name": "animation-range", + "status": "experimental", + "syntax": "[ <'animation-range-start'> <'animation-range-end'>? ]#", + "relevance": 50, + "browsers": [ + "E115", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-range" + } + ], + "description": "The animation-range CSS shorthand property is used to set the start and end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start and end." + }, + { + "name": "animation-range-end", + "status": "experimental", + "syntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#", + "relevance": 50, + "browsers": [ + "E115", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-range-end" + } + ], + "description": "The animation-range-end CSS property is used to set the end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will end." + }, + { + "name": "animation-range-start", + "status": "experimental", + "syntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#", + "relevance": 50, + "browsers": [ + "E115", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-range-start" + } + ], + "description": "The animation-range-start CSS property is used to set the start of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start." + }, + { + "name": "animation-timeline", + "status": "experimental", + "syntax": "<single-animation-timeline>#", + "relevance": 50, + "browsers": [ + "E115", + "FF110", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation-timeline" + } + ], + "description": "Specifies the names of one or more @scroll-timeline at-rules to describe the element's scroll animations." + }, + { + "name": "appearance", + "syntax": "none | auto | textfield | menulist-button | <compat-auto>", + "relevance": 69, + "browsers": [ + "E84", + "FF80", + "S15.4", + "C84", + "O70" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/appearance" + } + ], + "description": "Changes the appearance of buttons and other controls to resemble native controls." + }, + { + "name": "aspect-ratio", + "syntax": "auto | <ratio>", + "relevance": 61, + "browsers": [ + "E88", + "FF89", + "S15", + "C88", + "O74" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/aspect-ratio" + } + ], + "description": "The aspect-ratio CSS property sets a preferred aspect ratio for the box, which will be used in the calculation of auto sizes and some other layout functions." + }, + { + "name": "azimuth", + "status": "obsolete", + "syntax": "<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards", + "relevance": 0, + "description": "In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage." + }, + { + "name": "backdrop-filter", + "syntax": "none | <filter-function-list>", + "relevance": 60, + "browsers": [ + "E79", + "FF103", + "S18", + "C76", + "O63" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/backdrop-filter" + } + ], + "description": "The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent." + }, + { + "name": "border-block", + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block" + } + ], + "description": "The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet." + }, + { + "name": "border-block-color", + "syntax": "<'border-top-color'>{1,2}", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-color" + } + ], + "description": "The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-block-style", + "syntax": "<'border-top-style'>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-style" + } + ], + "description": "The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-block-width", + "syntax": "<'border-top-width'>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-block-width" + } + ], + "description": "The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-end-end-radius", + "syntax": "<length-percentage>{1,2}", + "relevance": 54, + "browsers": [ + "E89", + "FF66", + "S15", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius" + } + ], + "description": "The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation." + }, + { + "name": "border-end-start-radius", + "syntax": "<length-percentage>{1,2}", + "relevance": 54, + "browsers": [ + "E89", + "FF66", + "S15", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius" + } + ], + "description": "The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation." + }, + { + "name": "border-inline", + "syntax": "<'border-top-width'> || <'border-top-style'> || <color>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline" + } + ], + "description": "The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet." + }, + { + "name": "border-inline-color", + "syntax": "<'border-top-color'>{1,2}", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-color" + } + ], + "description": "The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-inline-style", + "syntax": "<'border-top-style'>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-style" + } + ], + "description": "The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-inline-width", + "syntax": "<'border-top-width'>", + "relevance": 50, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-inline-width" + } + ], + "description": "The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "border-start-end-radius", + "syntax": "<length-percentage>{1,2}", + "relevance": 53, + "browsers": [ + "E89", + "FF66", + "S15", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius" + } + ], + "description": "The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation." + }, + { + "name": "border-start-start-radius", + "syntax": "<length-percentage>{1,2}", + "relevance": 54, + "browsers": [ + "E89", + "FF66", + "S15", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius" + } + ], + "description": "The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation." + }, + { + "name": "box-align", + "status": "obsolete", + "syntax": "start | center | end | baseline | stretch", + "values": [ + { + "name": "start" + }, + { + "name": "center" + }, + { + "name": "end" + }, + { + "name": "baseline" + }, + { + "name": "stretch" + } + ], + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-align" + } + ], + "description": "The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box." + }, + { + "name": "box-direction", + "status": "obsolete", + "syntax": "normal | reverse | inherit", + "values": [ + { + "name": "normal" + }, + { + "name": "reverse" + }, + { + "name": "inherit" + } + ], + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-direction" + } + ], + "description": "The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge)." + }, + { + "name": "box-flex", + "status": "obsolete", + "syntax": "<number>", + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-flex" + } + ], + "description": "The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout." + }, + { + "name": "box-flex-group", + "status": "obsolete", + "syntax": "<integer>", + "relevance": 0, + "browsers": [ + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-flex-group" + } + ], + "description": "The box-flex-group CSS property assigns the flexbox's child elements to a flex group." + }, + { + "name": "box-lines", + "status": "obsolete", + "syntax": "single | multiple", + "values": [ + { + "name": "single" + }, + { + "name": "multiple" + } + ], + "relevance": 0, + "browsers": [ + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-lines" + } + ], + "description": "The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes)." + }, + { + "name": "box-ordinal-group", + "status": "obsolete", + "syntax": "<integer>", + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group" + } + ], + "description": "The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group." + }, + { + "name": "box-orient", + "status": "obsolete", + "syntax": "horizontal | vertical | inline-axis | block-axis | inherit", + "values": [ + { + "name": "horizontal" + }, + { + "name": "vertical" + }, + { + "name": "inline-axis" + }, + { + "name": "block-axis" + }, + { + "name": "inherit" + } + ], + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-orient" + } + ], + "description": "The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically." + }, + { + "name": "box-pack", + "status": "obsolete", + "syntax": "start | center | end | justify", + "values": [ + { + "name": "start" + }, + { + "name": "center" + }, + { + "name": "end" + }, + { + "name": "justify" + } + ], + "relevance": 0, + "browsers": [ + "E12", + "FF49", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/box-pack" + } + ], + "description": "The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box." + }, + { + "name": "caret", + "syntax": "<'caret-color'> || <'caret-shape'>", + "relevance": 50, + "description": "Shorthand for setting caret-color and caret-shape." + }, + { + "name": "caret-shape", + "syntax": "auto | bar | block | underscore", + "values": [ + { + "name": "auto" + }, + { + "name": "bar" + }, + { + "name": "block" + }, + { + "name": "underscore" + } + ], + "relevance": 50, + "description": "Specifies the desired shape of the text insertion caret." + }, + { + "name": "color-scheme", + "syntax": "normal | [ light | dark | <custom-ident> ]+ && only?", + "relevance": 57, + "browsers": [ + "E81", + "FF96", + "S13", + "C81", + "O68" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/color-scheme" + } + ], + "description": "The color-scheme CSS property allows an element to indicate which color schemes it can comfortably be rendered in." + }, + { + "name": "contain-intrinsic-size", + "syntax": "[ auto? [ none | <length> ] ]{1,2}", + "relevance": 50, + "browsers": [ + "E83", + "FF107", + "S17", + "C83", + "O69" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size" + } + ], + "description": "Size of an element when the element is subject to size containment." + }, + { + "name": "contain-intrinsic-block-size", + "syntax": "auto? [ none | <length> ]", + "relevance": 50, + "browsers": [ + "E95", + "FF107", + "S17", + "C95", + "O81" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-block-size" + } + ], + "description": "Block size of an element when the element is subject to size containment." + }, + { + "name": "contain-intrinsic-height", + "syntax": "auto? [ none | <length> ]", + "relevance": 50, + "browsers": [ + "E95", + "FF107", + "S17", + "C95", + "O81" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height" + } + ], + "description": "Height of an element when the element is subject to size containment." + }, + { + "name": "contain-intrinsic-inline-size", + "syntax": "auto? [ none | <length> ]", + "relevance": 50, + "browsers": [ + "E95", + "FF107", + "S17", + "C95", + "O81" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-inline-size" + } + ], + "description": "Inline size of an element when the element is subject to size containment." + }, + { + "name": "contain-intrinsic-width", + "syntax": "auto? [ none | <length> ]", + "relevance": 50, + "browsers": [ + "E95", + "FF107", + "S17", + "C95", + "O81" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width" + } + ], + "description": "Width of an element when the element is subject to size containment." + }, + { + "name": "container", + "syntax": "<'container-name'> [ / <'container-type'> ]?", + "relevance": 53, + "browsers": [ + "E105", + "FF110", + "S16", + "C105", + "O91" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/container" + } + ], + "description": "The container shorthand CSS property establishes the element as a query container and specifies the name or name for the containment context used in a container query." + }, + { + "name": "container-name", + "syntax": "none | <custom-ident>+", + "relevance": 50, + "browsers": [ + "E105", + "FF110", + "S16", + "C105", + "O91" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/container-name" + } + ], + "description": "The container-name CSS property specifies a list of query container names used by the @container at-rule in a container query." + }, + { + "name": "container-type", + "syntax": "normal | size | inline-size", + "values": [ + { + "name": "normal" + }, + { + "name": "size" + }, + { + "name": "inline-size" + } + ], + "relevance": 51, + "browsers": [ + "E105", + "FF110", + "S16", + "C105", + "O91" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/container-type" + } + ], + "description": "The container-type CSS property is used to define the type of containment used in a container query." + }, + { + "name": "content-visibility", + "syntax": "visible | auto | hidden", + "values": [ + { + "name": "visible" + }, + { + "name": "auto" + }, + { + "name": "hidden" + } + ], + "relevance": 52, + "browsers": [ + "E85", + "FF125", + "S18", + "C85", + "O71" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/content-visibility" + } + ], + "description": "Controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed." + }, + { + "name": "counter-set", + "syntax": "[ <counter-name> <integer>? ]+ | none", + "relevance": 50, + "browsers": [ + "E85", + "FF68", + "S17.2", + "C85", + "O71" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/counter-set" + } + ], + "description": "The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element." + }, + { + "name": "field-sizing", + "syntax": "content | fixed", + "values": [ + { + "name": "content" + }, + { + "name": "fixed" + } + ], + "relevance": 50, + "browsers": [ + "E123", + "C123", + "O109" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/field-sizing" + } + ], + "description": "The field-sizing CSS property enables you to control the sizing behavior of elements that are given a default preferred size, such as form control elements. This property enables you to override the default sizing behavior, allowing form controls to adjust in size to fit their contents." + }, + { + "name": "font-optical-sizing", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "browsers": [ + "E17", + "FF62", + "S13.1", + "C79", + "O66" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing" + } + ], + "description": "The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis." + }, + { + "name": "font-palette", + "syntax": "normal | light | dark | <palette-identifier>", + "relevance": 50, + "browsers": [ + "E101", + "FF107", + "S15.4", + "C101", + "O87" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-palette" + } + ], + "description": "The font-palette CSS property allows specifying one of the many palettes contained in a font that a user agent should use for the font. Users can also override the values in a palette or create a new palette by using the @font-palette-values at-rule." + }, + { + "name": "font-variation-settings", + "atRule": "@font-face", + "syntax": "normal | [ <string> <number> ]#", + "relevance": 54, + "browsers": [ + "E17", + "FF62", + "S11", + "C62", + "O49" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variation-settings" + } + ], + "description": "The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values." + }, + { + "name": "font-smooth", + "status": "nonstandard", + "syntax": "auto | never | always | <absolute-size> | <length>", + "relevance": 0, + "browsers": [ + "E79", + "FF25", + "S4", + "C5", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-smooth" + } + ], + "description": "The font-smooth CSS property controls the application of anti-aliasing when fonts are rendered." + }, + { + "name": "font-synthesis-position", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "browsers": [ + "FF118" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis-position" + } + ], + "description": "The font-synthesis-position CSS property lets you specify whether or not a browser may synthesize the subscript and superscript \"position\" typefaces when they are missing in a font family, while using font-variant-position to set the positions." + }, + { + "name": "font-synthesis-small-caps", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "browsers": [ + "E97", + "FF111", + "S16.4", + "C97", + "O83" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps" + } + ], + "description": "The font-synthesis-small-caps CSS property lets you specify whether or not the browser may synthesize small-caps typeface when it is missing in a font family. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters." + }, + { + "name": "font-synthesis-style", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "browsers": [ + "E97", + "FF111", + "S16.4", + "C97", + "O83" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style" + } + ], + "description": "The font-synthesis-style CSS property lets you specify whether or not the browser may synthesize the oblique typeface when it is missing in a font family." + }, + { + "name": "font-synthesis-weight", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "browsers": [ + "E97", + "FF111", + "S16.4", + "C97", + "O83" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight" + } + ], + "description": "The font-synthesis-weight CSS property lets you specify whether or not the browser may synthesize the bold typeface when it is missing in a font family." + }, + { + "name": "font-variant-emoji", + "syntax": "normal | text | emoji | unicode", + "values": [ + { + "name": "normal" + }, + { + "name": "text" + }, + { + "name": "emoji" + }, + { + "name": "unicode" + } + ], + "relevance": 50, + "browsers": [ + "FF108", + "S17.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/font-variant-emoji" + } + ], + "description": "The font-variant-emoji CSS property specifies the default presentation style for displaying emojis." + }, + { + "name": "forced-color-adjust", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 57, + "browsers": [ + "E79", + "FF113", + "C89", + "IE10", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust" + } + ], + "description": "Allows authors to opt certain elements out of forced colors mode. This then restores the control of those values to CSS" + }, + { + "name": "gap", + "syntax": "<'row-gap'> <'column-gap'>?", + "relevance": 72, + "browsers": [ + "E16", + "FF52", + "S10.1", + "C57", + "O44" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/gap" + } + ], + "description": "The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns." + }, + { + "name": "hanging-punctuation", + "syntax": "none | [ first || [ force-end | allow-end ] || last ]", + "relevance": 50, + "browsers": [ + "S10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation" + } + ], + "description": "The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box." + }, + { + "name": "hyphenate-character", + "syntax": "auto | <string>", + "relevance": 50, + "browsers": [ + "E106", + "FF98", + "S17", + "C106", + "O92" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/hyphenate-character" + } + ], + "description": "A hyphenate character used at the end of a line." + }, + { + "name": "hyphenate-limit-chars", + "syntax": "[ auto | <integer> ]{1,3}", + "relevance": 50, + "browsers": [ + "E109", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/hyphenate-limit-chars" + } + ], + "description": "The hyphenate-limit-chars CSS property specifies the minimum word length to allow hyphenation of words as well as the minimum number of characters before and after the hyphen." + }, + { + "name": "image-resolution", + "status": "experimental", + "syntax": "[ from-image || <resolution> ] && snap?", + "relevance": 50, + "description": "The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions." + }, + { + "name": "initial-letter", + "syntax": "normal | [ <number> <integer>? ]", + "relevance": 50, + "browsers": [ + "E110", + "S9", + "C110", + "O96" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/initial-letter" + } + ], + "description": "The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters." + }, + { + "name": "initial-letter-align", + "status": "experimental", + "syntax": "[ auto | alphabetic | hanging | ideographic ]", + "relevance": 50, + "description": "The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph." + }, + { + "name": "input-security", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 50, + "description": "Enables or disables the obscuring a sensitive test input." + }, + { + "name": "inset", + "syntax": "<'top'>{1,4}", + "relevance": 61, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset" + } + ], + "description": "The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-area", + "status": "experimental", + "syntax": "none | <inset-area>", + "relevance": 50, + "description": "Most common use-cases of anchor positioning only need to worry about the edges of the positioned element’s containing block, and the edges of the default anchor element. These lines can be thought of as defining a 3x3 grid; inset-area lets you easily set up the positioned element’s inset properties by specifying what area of this inset-area grid you want the positioned element to be in" + }, + { + "name": "inset-block", + "syntax": "<'top'>{1,2}", + "relevance": 53, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-block" + } + ], + "description": "The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-block-end", + "syntax": "<'top'>", + "relevance": 50, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-block-end" + } + ], + "description": "The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-block-start", + "syntax": "<'top'>", + "relevance": 53, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-block-start" + } + ], + "description": "The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-inline", + "syntax": "<'top'>{1,2}", + "relevance": 53, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-inline" + } + ], + "description": "The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-inline-end", + "syntax": "<'top'>", + "relevance": 54, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-inline-end" + } + ], + "description": "The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "inset-inline-start", + "syntax": "<'top'>", + "relevance": 54, + "browsers": [ + "E87", + "FF63", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/inset-inline-start" + } + ], + "description": "The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation." + }, + { + "name": "justify-tracks", + "status": "experimental", + "syntax": "[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#", + "relevance": 50, + "description": "The justify-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their inline axis" + }, + { + "name": "line-clamp", + "syntax": "none | <integer>", + "relevance": 50, + "browsers": [ + "E17", + "FF68", + "S5", + "C6", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp" + } + ], + "description": "The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content." + }, + { + "name": "line-height-step", + "status": "experimental", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "C60", + "O47" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/line-height-step" + } + ], + "description": "The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid." + }, + { + "name": "margin-block", + "syntax": "<'margin-left'>{1,2}", + "relevance": 54, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-block" + } + ], + "description": "The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation." + }, + { + "name": "margin-inline", + "syntax": "<'margin-left'>{1,2}", + "relevance": 54, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-inline" + } + ], + "description": "The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation." + }, + { + "name": "margin-trim", + "status": "experimental", + "syntax": "none | in-flow | all", + "values": [ + { + "name": "none" + }, + { + "name": "in-flow" + }, + { + "name": "all" + } + ], + "relevance": 50, + "browsers": [ + "S16.4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/margin-trim" + } + ], + "description": "The margin-trim property allows the container to trim the margins of its children where they adjoin the container’s edges." + }, + { + "name": "mask", + "syntax": "<mask-layer>#", + "relevance": 57, + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask" + } + ], + "description": "The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points." + }, + { + "name": "mask-border", + "syntax": "<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border" + } + ], + "description": "The mask-border CSS property lets you create a mask along the edge of an element's border.\n\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value." + }, + { + "name": "mask-border-mode", + "syntax": "luminance | alpha", + "values": [ + { + "name": "luminance" + }, + { + "name": "alpha" + } + ], + "relevance": 50, + "description": "The mask-border-mode CSS property specifies the blending mode used in a mask border." + }, + { + "name": "mask-border-outset", + "syntax": "[ <length> | <number> ]{1,4}", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border-outset" + } + ], + "description": "The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box." + }, + { + "name": "mask-border-repeat", + "syntax": "[ stretch | repeat | round | space ]{1,2}", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat" + } + ], + "description": "The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border." + }, + { + "name": "mask-border-slice", + "syntax": "<number-percentage>{1,4} fill?", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border-slice" + } + ], + "description": "The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border." + }, + { + "name": "mask-border-source", + "syntax": "none | <image>", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border-source" + } + ], + "description": "The mask-border-source CSS property specifies the source image used to create an element's mask border.\n\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border." + }, + { + "name": "mask-border-width", + "syntax": "[ <length-percentage> | <number> | auto ]{1,4}", + "relevance": 50, + "browsers": [ + "E79", + "S17.2", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-border-width" + } + ], + "description": "The mask-border-width CSS property specifies the width of an element's mask border." + }, + { + "name": "mask-clip", + "syntax": "[ <geometry-box> | no-clip ]#", + "relevance": 50, + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-clip" + } + ], + "description": "The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area." + }, + { + "name": "mask-composite", + "syntax": "<compositing-operator>#", + "relevance": 52, + "browsers": [ + "E120", + "FF53", + "S15.4", + "C120", + "O106" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/mask-composite" + } + ], + "description": "The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it." + }, + { + "name": "masonry-auto-flow", + "status": "experimental", + "syntax": "[ pack | next ] || [ definite-first | ordered ]", + "relevance": 50, + "description": "The masonry-auto-flow CSS property modifies how items are placed when using masonry in CSS Grid Layout." + }, + { + "name": "math-depth", + "syntax": "auto-add | add(<integer>) | <integer>", + "relevance": 50, + "browsers": [ + "E109", + "FF117", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/math-depth" + } + ], + "description": "Describe a notion of \"depth\" for each element of a mathematical formula, with respect to the top-level container of that formula." + }, + { + "name": "math-shift", + "syntax": "normal | compact", + "values": [ + { + "name": "normal" + }, + { + "name": "compact" + } + ], + "relevance": 50, + "browsers": [ + "E109", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/math-shift" + } + ], + "description": "Used for positioning superscript during the layout of MathML scripted elements." + }, + { + "name": "math-style", + "syntax": "normal | compact", + "values": [ + { + "name": "normal" + }, + { + "name": "compact" + } + ], + "relevance": 50, + "browsers": [ + "E109", + "FF117", + "S14.1", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/math-style" + } + ], + "description": "The math-style property indicates whether MathML equations should render with normal or compact height." + }, + { + "name": "max-lines", + "status": "experimental", + "syntax": "none | <integer>", + "relevance": 50, + "description": "The max-lines property forces a break after a set number of lines" + }, + { + "name": "offset", + "syntax": "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?", + "relevance": 50, + "browsers": [ + "E79", + "FF72", + "S16", + "C55", + "O42" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset" + } + ], + "description": "The offset CSS property is a shorthand property for animating an element along a defined path." + }, + { + "name": "offset-anchor", + "syntax": "auto | <position>", + "relevance": 50, + "browsers": [ + "E116", + "FF72", + "S16", + "C116", + "O102" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset-anchor" + } + ], + "description": "Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path." + }, + { + "name": "offset-distance", + "syntax": "<length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF72", + "S16", + "C55", + "O42" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset-distance" + } + ], + "description": "The offset-distance CSS property specifies a position along an offset-path." + }, + { + "name": "offset-path", + "syntax": "none | <offset-path> || <coord-box>", + "relevance": 50, + "browsers": [ + "E79", + "FF72", + "S15.4", + "C55", + "O45" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset-path" + } + ], + "description": "The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\n\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied." + }, + { + "name": "offset-position", + "syntax": "normal | auto | <position>", + "relevance": 50, + "browsers": [ + "E116", + "FF122", + "S16", + "C116", + "O102" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset-position" + } + ], + "description": "Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored." + }, + { + "name": "offset-rotate", + "syntax": "[ auto | reverse ] || <angle>", + "relevance": 50, + "browsers": [ + "E79", + "FF72", + "S16", + "C56", + "O43" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/offset-rotate" + } + ], + "description": "The offset-rotate CSS property defines the direction of the element while positioning along the offset path." + }, + { + "name": "overflow-anchor", + "syntax": "auto | none", + "values": [ + { + "name": "auto" + }, + { + "name": "none" + } + ], + "relevance": 52, + "browsers": [ + "E79", + "FF66", + "Spreview", + "C56", + "O43" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-anchor" + } + ], + "description": "The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts." + }, + { + "name": "overflow-block", + "syntax": "visible | hidden | clip | scroll | auto", + "values": [ + { + "name": "visible" + }, + { + "name": "hidden" + }, + { + "name": "clip" + }, + { + "name": "scroll" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "FF69" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-block" + } + ], + "description": "The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis." + }, + { + "name": "overflow-clip-box", + "status": "nonstandard", + "syntax": "padding-box | content-box", + "values": [ + { + "name": "padding-box" + }, + { + "name": "content-box" + } + ], + "relevance": 0, + "description": "The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties." + }, + { + "name": "overflow-clip-margin", + "syntax": "<visual-box> || <length [0,∞]>", + "relevance": 50, + "browsers": [ + "E90", + "FF102", + "C90", + "O76" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin" + } + ], + "description": "The overflow-clip-margin CSS property determines how far outside its bounds an element with overflow: clip may be painted before being clipped." + }, + { + "name": "overflow-inline", + "syntax": "visible | hidden | clip | scroll | auto", + "values": [ + { + "name": "visible" + }, + { + "name": "hidden" + }, + { + "name": "clip" + }, + { + "name": "scroll" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "FF69" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overflow-inline" + } + ], + "description": "The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis." + }, + { + "name": "overlay", + "status": "experimental", + "syntax": "none | auto", + "values": [ + { + "name": "none" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E117", + "C117", + "O103" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overlay" + } + ], + "description": "The overlay CSS property specifies whether an element appearing in the top layer (for example, a shown popover or modal {{htmlelement(\"dialog\")}} element) is actually rendered in the top layer. This property is only relevant within a list of transition-property values, and only if allow-discrete is set as the transition-behavior." + }, + { + "name": "overscroll-behavior", + "syntax": "[ contain | none | auto ]{1,2}", + "relevance": 50, + "browsers": [ + "E18", + "FF59", + "S16", + "C63", + "O50" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior" + } + ], + "description": "The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached." + }, + { + "name": "overscroll-behavior-block", + "syntax": "contain | none | auto", + "values": [ + { + "name": "contain" + }, + { + "name": "none" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E79", + "FF73", + "S16", + "C77", + "O64" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block" + } + ], + "description": "The overscroll-behavior-block CSS property sets the browser's behavior when the block direction boundary of a scrolling area is reached." + }, + { + "name": "overscroll-behavior-inline", + "syntax": "contain | none | auto", + "values": [ + { + "name": "contain" + }, + { + "name": "none" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E79", + "FF73", + "S16", + "C77", + "O64" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline" + } + ], + "description": "The overscroll-behavior-inline CSS property sets the browser's behavior when the inline direction boundary of a scrolling area is reached." + }, + { + "name": "overscroll-behavior-x", + "syntax": "contain | none | auto", + "values": [ + { + "name": "contain" + }, + { + "name": "none" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E18", + "FF59", + "S16", + "C63", + "O50" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x" + } + ], + "description": "The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction." + }, + { + "name": "overscroll-behavior-y", + "syntax": "contain | none | auto", + "values": [ + { + "name": "contain" + }, + { + "name": "none" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E18", + "FF59", + "S16", + "C63", + "O50" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y" + } + ], + "description": "The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction." + }, + { + "name": "padding-block", + "syntax": "<'padding-left'>{1,2}", + "relevance": 55, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-block" + } + ], + "description": "The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation." + }, + { + "name": "padding-inline", + "syntax": "<'padding-left'>{1,2}", + "relevance": 56, + "browsers": [ + "E87", + "FF66", + "S14.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/padding-inline" + } + ], + "description": "The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation." + }, + { + "name": "page", + "syntax": "auto | <custom-ident>", + "relevance": 50, + "browsers": [ + "E85", + "FF110", + "S13.1", + "C85", + "O71" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/page" + } + ], + "description": "The page CSS property is used to specify the named page, a specific type of page defined by the @page at-rule." + }, + { + "name": "place-content", + "syntax": "<'align-content'> <'justify-content'>?", + "relevance": 52, + "browsers": [ + "E79", + "FF45", + "S9", + "C59", + "O46" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/place-content" + } + ], + "description": "The place-content CSS shorthand property sets both the align-content and justify-content properties." + }, + { + "name": "place-items", + "syntax": "<'align-items'> <'justify-items'>?", + "relevance": 52, + "browsers": [ + "E79", + "FF45", + "S11", + "C59", + "O46" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/place-items" + } + ], + "description": "The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it." + }, + { + "name": "place-self", + "syntax": "<'align-self'> <'justify-self'>?", + "relevance": 53, + "browsers": [ + "E79", + "FF45", + "S11", + "C59", + "O46" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/place-self" + } + ], + "description": "The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it." + }, + { + "name": "position-anchor", + "status": "experimental", + "syntax": "<anchor-element>", + "relevance": 50, + "browsers": [ + "E125", + "C125", + "O111" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/position-anchor" + } + ], + "description": "The position-anchor property defines the default anchor specifier for all anchor functions on the element, allowing multiple elements to use the same set of anchor functions (and position options lists!) while changing which anchor element each is referring to." + }, + { + "name": "position-try", + "status": "experimental", + "syntax": "<'position-try-order'>? <'position-try-options'>", + "relevance": 50, + "browsers": [ + "E125", + "C125", + "O111" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/position-try" + } + ], + "description": "This shorthand sets both position-try-options and position-try-order. If <'position-try-order'> is omitted, it’s set to the property’s initial value." + }, + { + "name": "position-try-options", + "status": "experimental", + "syntax": "none | [ [<dashed-ident> || <try-tactic>] | inset-area( <'inset-area'> ) ]#", + "relevance": 50, + "description": "This property provides a list of alternate positioning styles to try when the absolutely positioned box overflows its inset-modified containing block. This position options list is initially empty." + }, + { + "name": "position-try-order", + "status": "experimental", + "syntax": "normal | <try-size>", + "relevance": 50, + "browsers": [ + "E125", + "C125", + "O111" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/position-try-order" + } + ], + "description": "This property specifies the order in which the position options list will be tried." + }, + { + "name": "position-visibility", + "status": "experimental", + "syntax": "always | [ anchors-valid || anchors-visible || no-overflow ]", + "relevance": 50, + "browsers": [ + "E125", + "C125", + "O111" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/position-visibility" + } + ], + "description": "There are times when an element’s anchors are not appropriate for positioning the element with, and it would be better to simply not display the element at all. position-visibility provides several conditions where this could be the case." + }, + { + "name": "print-color-adjust", + "syntax": "economy | exact", + "values": [ + { + "name": "economy" + }, + { + "name": "exact" + } + ], + "relevance": 50, + "browsers": [ + "E79", + "FF97", + "S15.4", + "C17", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/print-color-adjust" + } + ], + "description": "Defines what optimization the user agent is allowed to do when adjusting the appearance for an output device." + }, + { + "name": "rotate", + "syntax": "none | <angle> | [ x | y | z | <number>{3} ] && <angle>", + "relevance": 50, + "browsers": [ + "E104", + "FF72", + "S14.1", + "C104", + "O90" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/rotate" + } + ], + "description": "The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value." + }, + { + "name": "row-gap", + "syntax": "normal | <length-percentage>", + "relevance": 59, + "browsers": [ + "E16", + "FF52", + "S10.1", + "C47", + "O34" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/row-gap" + } + ], + "description": "The row-gap CSS property specifies the gutter between grid rows." + }, + { + "name": "ruby-merge", + "status": "experimental", + "syntax": "separate | collapse | auto", + "values": [ + { + "name": "separate" + }, + { + "name": "collapse" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "description": "This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available." + }, + { + "name": "scale", + "syntax": "none | <number>{1,3}", + "relevance": 51, + "browsers": [ + "E104", + "FF72", + "S14.1", + "C104", + "O90" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scale" + } + ], + "description": "The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value." + }, + { + "name": "scrollbar-color", + "syntax": "auto | <color>{2}", + "relevance": 53, + "browsers": [ + "E121", + "FF64", + "C121", + "O107" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scrollbar-color" + } + ], + "description": "The scrollbar-color CSS property sets the color of the scrollbar track and thumb." + }, + { + "name": "scrollbar-gutter", + "syntax": "auto | stable && both-edges?", + "relevance": 51, + "browsers": [ + "E94", + "FF97", + "S17", + "C94", + "O80" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter" + } + ], + "description": "The scrollbar-gutter CSS property allows authors to reserve space for the scrollbar, preventing unwanted layout changes as the content grows while also avoiding unnecessary visuals when scrolling isn't needed." + }, + { + "name": "scrollbar-width", + "syntax": "auto | thin | none", + "values": [ + { + "name": "auto" + }, + { + "name": "thin" + }, + { + "name": "none" + } + ], + "relevance": 65, + "browsers": [ + "E121", + "FF64", + "C121", + "O107" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scrollbar-width" + } + ], + "description": "The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. " + }, + { + "name": "scroll-margin", + "syntax": "<length>{1,4}", + "relevance": 50, + "browsers": [ + "E79", + "FF90", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin" + } + ], + "description": "The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands." + }, + { + "name": "scroll-margin-block", + "syntax": "<length>{1,2}", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block" + } + ], + "description": "The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension." + }, + { + "name": "scroll-margin-block-start", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start" + } + ], + "description": "The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-block-end", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end" + } + ], + "description": "The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-bottom", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom" + } + ], + "description": "The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-inline", + "syntax": "<length>{1,2}", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline" + } + ], + "description": "The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension." + }, + { + "name": "scroll-margin-inline-start", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start" + } + ], + "description": "The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-inline-end", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end" + } + ], + "description": "The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-left", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left" + } + ], + "description": "The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-right", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right" + } + ], + "description": "The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-margin-top", + "syntax": "<length>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top" + } + ], + "description": "The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets." + }, + { + "name": "scroll-padding", + "syntax": "[ auto | <length-percentage> ]{1,4}", + "relevance": 52, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding" + } + ], + "description": "The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands." + }, + { + "name": "scroll-padding-block", + "syntax": "[ auto | <length-percentage> ]{1,2}", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block" + } + ], + "description": "The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension." + }, + { + "name": "scroll-padding-block-start", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start" + } + ], + "description": "The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-block-end", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end" + } + ], + "description": "The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-bottom", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom" + } + ], + "description": "The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-inline", + "syntax": "[ auto | <length-percentage> ]{1,2}", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline" + } + ], + "description": "The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension." + }, + { + "name": "scroll-padding-inline-start", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start" + } + ], + "description": "The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-inline-end", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S15", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end" + } + ], + "description": "The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-left", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left" + } + ], + "description": "The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-right", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right" + } + ], + "description": "The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-padding-top", + "syntax": "auto | <length-percentage>", + "relevance": 50, + "browsers": [ + "E79", + "FF68", + "S14.1", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top" + } + ], + "description": "The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport." + }, + { + "name": "scroll-snap-align", + "syntax": "[ none | start | end | center ]{1,2}", + "relevance": 53, + "browsers": [ + "E79", + "FF68", + "S11", + "C69", + "O56" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align" + } + ], + "description": "The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value." + }, + { + "name": "scroll-snap-stop", + "syntax": "normal | always", + "values": [ + { + "name": "normal" + }, + { + "name": "always" + } + ], + "relevance": 51, + "browsers": [ + "E79", + "FF103", + "S15", + "C75", + "O62" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop" + } + ], + "description": "The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions." + }, + { + "name": "scroll-snap-type-x", + "status": "obsolete", + "syntax": "none | mandatory | proximity", + "values": [ + { + "name": "none" + }, + { + "name": "mandatory" + }, + { + "name": "proximity" + } + ], + "relevance": 0, + "description": "The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\n\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent." + }, + { + "name": "scroll-snap-type-y", + "status": "obsolete", + "syntax": "none | mandatory | proximity", + "values": [ + { + "name": "none" + }, + { + "name": "mandatory" + }, + { + "name": "proximity" + } + ], + "relevance": 0, + "description": "The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\n\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent." + }, + { + "name": "scroll-timeline", + "status": "experimental", + "syntax": "[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#", + "relevance": 50, + "browsers": [ + "E115", + "FF111", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-timeline" + } + ], + "description": "Defines a name that can be used to identify the source element of a scroll timeline, along with the scrollbar axis that should provide the timeline." + }, + { + "name": "scroll-timeline-axis", + "status": "experimental", + "syntax": "[ block | inline | x | y ]#", + "relevance": 50, + "browsers": [ + "E115", + "FF111", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-axis" + } + ], + "description": "Specifies the scrollbar that will be used to provide the timeline for a scroll-timeline animation" + }, + { + "name": "scroll-timeline-name", + "status": "experimental", + "syntax": "none | <dashed-ident>#", + "relevance": 50, + "browsers": [ + "E115", + "FF111", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-name" + } + ], + "description": "Defines a name that can be used to identify an element as the source of a scroll-timeline." + }, + { + "name": "text-combine-upright", + "syntax": "none | all | [ digits <integer>? ]", + "relevance": 50, + "browsers": [ + "E79", + "FF48", + "S15.4", + "C48", + "IE11", + "O35" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-combine-upright" + } + ], + "description": "The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\n\nThis is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese." + }, + { + "name": "text-decoration-skip", + "status": "experimental", + "syntax": "none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]", + "relevance": 52, + "browsers": [ + "S12.1", + "C57", + "O44" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip" + } + ], + "description": "The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors." + }, + { + "name": "text-decoration-skip-ink", + "syntax": "auto | all | none", + "values": [ + { + "name": "auto" + }, + { + "name": "all" + }, + { + "name": "none" + } + ], + "relevance": 51, + "browsers": [ + "E79", + "FF70", + "S15.4", + "C64", + "O50" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink" + } + ], + "description": "The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders." + }, + { + "name": "text-decoration-thickness", + "syntax": "auto | from-font | <length> | <percentage> ", + "relevance": 51, + "browsers": [ + "E89", + "FF70", + "S12.1", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness" + } + ], + "description": "The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline." + }, + { + "name": "text-emphasis", + "syntax": "<'text-emphasis-style'> || <'text-emphasis-color'>", + "relevance": 50, + "browsers": [ + "E99", + "FF46", + "S7", + "C99", + "O85" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-emphasis" + } + ], + "description": "The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces, and control characters." + }, + { + "name": "text-emphasis-color", + "syntax": "<color>", + "relevance": 50, + "browsers": [ + "E99", + "FF46", + "S7", + "C99", + "O85" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color" + } + ], + "description": "The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand." + }, + { + "name": "text-emphasis-position", + "syntax": "[ over | under ] && [ right | left ]", + "relevance": 50, + "browsers": [ + "E99", + "FF46", + "S7", + "C99", + "O85" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position" + } + ], + "description": "The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased." + }, + { + "name": "text-emphasis-style", + "syntax": "none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>", + "relevance": 50, + "browsers": [ + "E99", + "FF46", + "S7", + "C99", + "O85" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style" + } + ], + "description": "The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand." + }, + { + "name": "text-size-adjust", + "status": "experimental", + "syntax": "none | auto | <percentage>", + "relevance": 58, + "browsers": [ + "E79", + "C54", + "O41" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-size-adjust" + } + ], + "description": "The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property." + }, + { + "name": "text-spacing-trim", + "status": "experimental", + "syntax": "space-all | normal | space-first | trim-start | trim-both | trim-all | auto", + "values": [ + { + "name": "space-all" + }, + { + "name": "normal" + }, + { + "name": "space-first" + }, + { + "name": "trim-start" + }, + { + "name": "trim-both" + }, + { + "name": "trim-all" + }, + { + "name": "auto" + } + ], + "relevance": 50, + "browsers": [ + "E123", + "C123", + "O109" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-spacing-trim" + } + ], + "description": "The text-spacing-trim CSS property controls the internal spacing set on Chinese/Japanese/Korean (CJK) punctuation characters between adjacent characters (kerning) and at the start or end of text lines." + }, + { + "name": "text-underline-offset", + "syntax": "auto | <length> | <percentage> ", + "relevance": 52, + "browsers": [ + "E87", + "FF70", + "S12.1", + "C87", + "O73" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-underline-offset" + } + ], + "description": "The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position." + }, + { + "name": "text-wrap", + "syntax": "wrap | nowrap | balance | stable | pretty", + "values": [ + { + "name": "wrap" + }, + { + "name": "nowrap" + }, + { + "name": "balance" + }, + { + "name": "stable" + }, + { + "name": "pretty" + } + ], + "relevance": 55, + "browsers": [ + "E114", + "FF121", + "S17.4", + "C114", + "O100" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-wrap" + } + ], + "description": "The text-wrap CSS property controls how text inside an element is wrapped." + }, + { + "name": "text-wrap-mode", + "syntax": "auto | wrap | nowrap", + "values": [ + { + "name": "auto" + }, + { + "name": "wrap" + }, + { + "name": "nowrap" + } + ], + "relevance": 50, + "browsers": [ + "FF124", + "S17.4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-wrap-mode" + } + ], + "description": "The text-wrap-mode CSS property controls whether the text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef(\"text-wrap\")}} shorthand." + }, + { + "name": "text-wrap-style", + "syntax": "auto | balance | stable | pretty", + "values": [ + { + "name": "auto" + }, + { + "name": "balance" + }, + { + "name": "stable" + }, + { + "name": "pretty" + } + ], + "relevance": 50, + "browsers": [ + "FF124", + "S17.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/text-wrap-style" + } + ], + "description": "The text-wrap-style CSS property controls how text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef(\"text-wrap\")}} shorthand." + }, + { + "name": "timeline-scope", + "status": "experimental", + "syntax": "none | <dashed-ident>#", + "relevance": 50, + "browsers": [ + "E116", + "C116", + "O102" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/timeline-scope" + } + ], + "description": "The timeline-scope CSS property modifies the scope of a named animation timeline." + }, + { + "name": "transform-box", + "syntax": "content-box | border-box | fill-box | stroke-box | view-box", + "values": [ + { + "name": "content-box" + }, + { + "name": "border-box" + }, + { + "name": "fill-box" + }, + { + "name": "stroke-box" + }, + { + "name": "view-box" + } + ], + "relevance": 50, + "browsers": [ + "E79", + "FF55", + "S11", + "C64", + "O51" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transform-box" + } + ], + "description": "The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate." + }, + { + "name": "transition-behavior", + "syntax": "<transition-behavior-value>#", + "relevance": 50, + "browsers": [ + "E117", + "FF129", + "S17.4", + "C117", + "O103" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/transition-behavior" + } + ], + "description": "The transition-behavior CSS property specifies whether transitions will be started for properties whose animation behavior is discrete." + }, + { + "name": "translate", + "syntax": "none | <length-percentage> [ <length-percentage> <length>? ]?", + "relevance": 50, + "browsers": [ + "E104", + "FF72", + "S14.1", + "C104", + "O90" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/translate" + } + ], + "description": "The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value." + }, + { + "name": "view-timeline", + "status": "experimental", + "syntax": "[ <'view-timeline-name'> <'view-timeline-axis'>? ]#", + "relevance": 50, + "browsers": [ + "E115", + "FF114", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/view-timeline" + } + ], + "description": "The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject." + }, + { + "name": "view-timeline-axis", + "status": "experimental", + "syntax": "[ block | inline | x | y ]#", + "relevance": 50, + "browsers": [ + "E115", + "FF114", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/view-timeline-axis" + } + ], + "description": "The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details." + }, + { + "name": "view-timeline-inset", + "status": "experimental", + "syntax": "[ [ auto | <length-percentage> ]{1,2} ]#", + "relevance": 50, + "browsers": [ + "E115", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/view-timeline-inset" + } + ], + "description": "The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline." + }, + { + "name": "view-timeline-name", + "status": "experimental", + "syntax": "none | <dashed-ident>#", + "relevance": 50, + "browsers": [ + "E115", + "FF111", + "C115", + "O101" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/view-timeline-name" + } + ], + "description": "The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject." + }, + { + "name": "view-transition-name", + "syntax": "none | <custom-ident>", + "relevance": 50, + "browsers": [ + "E111", + "S18", + "C111", + "O97" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/view-transition-name" + } + ], + "description": "The view-transition-name CSS property provides the selected element with a distinct identifying name (a custom-ident) and causes it to participate in a separate view transition from the root view transition — or no view transition if the none value is specified." + }, + { + "name": "white-space", + "syntax": "normal | pre | nowrap | pre-wrap | pre-line | break-spaces | [ <'white-space-collapse'> || <'text-wrap'> || <'white-space-trim'> ]", + "relevance": 88, + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/white-space" + } + ], + "description": "Specifies how whitespace is handled in an element." + }, + { + "name": "white-space-collapse", + "syntax": "collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces", + "values": [ + { + "name": "collapse" + }, + { + "name": "discard" + }, + { + "name": "preserve" + }, + { + "name": "preserve-breaks" + }, + { + "name": "preserve-spaces" + }, + { + "name": "break-spaces" + } + ], + "relevance": 50, + "browsers": [ + "E114", + "FF124", + "S17.4", + "C114", + "O100" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/white-space-collapse" + } + ], + "description": "The white-space-collapse CSS property controls how white space inside an element is collapsed." + }, + { + "name": "speak-as", + "atRule": "@counter-style", + "syntax": "auto | bullets | numbers | words | spell-out | <counter-style-name>", + "relevance": 50, + "browsers": [ + "S11.1" + ], + "description": "The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue." + }, + { + "name": "base-palette", + "atRule": "@font-palette-values", + "syntax": "light | dark | <integer [0,∞]>", + "relevance": 50, + "description": "The base-palette CSS descriptor is used to specify the name or index of a pre-defined palette to be used for creating a new palette. If the specified base-palette does not exist, then the palette defined at index 0 will be used." + }, + { + "name": "override-colors", + "atRule": "@font-palette-values", + "syntax": "[ <integer [0,∞]> <absolute-color-base> ]#", + "relevance": 50, + "description": "The override-colors CSS descriptor is used to override colors in the chosen base-palette for a color font." + }, + { + "name": "ascent-override", + "atRule": "@font-face", + "status": "experimental", + "syntax": "normal | <percentage>", + "relevance": 50, + "description": "Describes the ascent metric of a font." + }, + { + "name": "descent-override", + "atRule": "@font-face", + "status": "experimental", + "syntax": "normal | <percentage>", + "relevance": 50, + "description": "Describes the descent metric of a font." + }, + { + "name": "font-display", + "atRule": "@font-face", + "status": "experimental", + "syntax": "[ auto | block | swap | fallback | optional ]", + "relevance": 74, + "description": "The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use." + }, + { + "name": "line-gap-override", + "atRule": "@font-face", + "status": "experimental", + "syntax": "normal | <percentage>", + "relevance": 50, + "description": "Describes the line-gap metric of a font." + }, + { + "name": "size-adjust", + "atRule": "@font-face", + "status": "experimental", + "syntax": "<percentage>", + "relevance": 50, + "description": "A multiplier for glyph outlines and metrics of a font." + }, + { + "name": "bleed", + "atRule": "@page", + "syntax": "auto | <length>", + "relevance": 50, + "description": "The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property." + }, + { + "name": "marks", + "atRule": "@page", + "syntax": "none | [ crop || cross ]", + "relevance": 50, + "description": "The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets." + }, + { + "name": "page-orientation", + "atRule": "@page", + "syntax": "upright | rotate-left | rotate-right ", + "relevance": 50, + "description": "The page-orientation CSS descriptor for the @page at-rule controls the rotation of a printed page. It handles the flow of content across pages when the orientation of a page is changed. This behavior differs from the size descriptor in that a user can define the direction in which to rotate the page." + }, + { + "name": "syntax", + "atRule": "@property", + "status": "experimental", + "syntax": "<string>", + "relevance": 50, + "description": "Specifies the syntax of the custom property registration represented by the @property rule, controlling how the property’s value is parsed at computed value time." + }, + { + "name": "inherits", + "atRule": "@property", + "status": "experimental", + "syntax": "true | false", + "values": [ + { + "name": "true" + }, + { + "name": "false" + } + ], + "relevance": 50, + "description": "Specifies the inherit flag of the custom property registration represented by the @property rule, controlling whether or not the property inherits by default." + }, + { + "name": "initial-value", + "atRule": "@property", + "status": "experimental", + "syntax": "<declaration-value>?", + "relevance": 50, + "description": "Specifies the initial value of the custom property registration represented by the @property rule, controlling the property’s initial value." + } + ], + "atDirectives": [ + { + "name": "@charset", + "browsers": [ + "E12", + "FF1.5", + "S4", + "C2", + "IE5.5", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@charset" + } + ], + "description": "Defines character set of the document." + }, + { + "name": "@counter-style", + "browsers": [ + "E91", + "FF33", + "S17", + "C91", + "O77" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@counter-style" + } + ], + "description": "Defines a custom counter style." + }, + { + "name": "@font-face", + "browsers": [ + "E12", + "FF3.5", + "S3.1", + "C1", + "IE4", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@font-face" + } + ], + "description": "Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment." + }, + { + "name": "@font-feature-values", + "browsers": [ + "E111", + "FF34", + "S9.1", + "C111", + "O97" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@font-feature-values" + } + ], + "description": "Defines named values for the indices used to select alternate glyphs for a given font family." + }, + { + "name": "@import", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE5.5", + "O3.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@import" + } + ], + "description": "Includes content of another file." + }, + { + "name": "@keyframes", + "browsers": [ + "E12", + "FF16", + "S9", + "C43", + "IE10", + "O30" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@keyframes" + } + ], + "description": "Defines set of animation key frames." + }, + { + "name": "@layer", + "browsers": [ + "E99", + "FF97", + "S15.4", + "C99", + "O85" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@layer" + } + ], + "description": "Declare a cascade layer and the order of precedence in case of multiple cascade layers." + }, + { + "name": "@media", + "browsers": [ + "E12", + "FF1", + "S3", + "C1", + "IE6", + "O9.2" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@media" + } + ], + "description": "Defines a stylesheet for a particular media type." + }, + { + "name": "@-moz-document", + "browsers": [ + "FF1.8" + ], + "description": "Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document." + }, + { + "name": "@-moz-keyframes", + "browsers": [ + "FF5" + ], + "description": "Defines set of animation key frames." + }, + { + "name": "@-ms-viewport", + "browsers": [ + "E", + "IE10" + ], + "description": "Specifies the size, zoom factor, and orientation of the viewport." + }, + { + "name": "@namespace", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE9", + "O8" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@namespace" + } + ], + "description": "Declares a prefix and associates it with a namespace name." + }, + { + "name": "@-o-keyframes", + "browsers": [ + "O12" + ], + "description": "Defines set of animation key frames." + }, + { + "name": "@-o-viewport", + "browsers": [ + "O11" + ], + "description": "Specifies the size, zoom factor, and orientation of the viewport." + }, + { + "name": "@page", + "browsers": [ + "E12", + "FF19", + "S13.1", + "C2", + "IE8", + "O6" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@page" + } + ], + "description": "Directive defines various page parameters." + }, + { + "name": "@property", + "browsers": [ + "E85", + "FF128", + "S16.4", + "C85", + "O71" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@property" + } + ], + "description": "Describes the aspect of custom properties and variables." + }, + { + "name": "@supports", + "browsers": [ + "E12", + "FF22", + "S9", + "C28", + "O12.1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/@supports" + } + ], + "description": "A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs." + }, + { + "name": "@-webkit-keyframes", + "browsers": [ + "C", + "S4" + ], + "description": "Defines set of animation key frames." + } + ], + "pseudoClasses": [ + { + "name": ":active", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:active" + } + ], + "description": "Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it." + }, + { + "name": ":any-link", + "browsers": [ + "E79", + "FF50", + "S9", + "C65", + "O52" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:any-link" + } + ], + "description": "Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links." + }, + { + "name": ":checked", + "browsers": [ + "E12", + "FF1", + "S3.1", + "C1", + "IE9", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:checked" + } + ], + "description": "Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies." + }, + { + "name": ":corner-present", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Indicates whether or not a scrollbar corner is present." + }, + { + "name": ":decrement", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view's position when used." + }, + { + "name": ":default", + "browsers": [ + "E79", + "FF4", + "S5", + "C10", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:default" + } + ], + "description": "Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus." + }, + { + "name": ":disabled", + "browsers": [ + "E12", + "FF1", + "S3.1", + "C1", + "IE9", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:disabled" + } + ], + "description": "Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state." + }, + { + "name": ":double-button", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar." + }, + { + "name": ":empty", + "browsers": [ + "E12", + "FF1", + "S3.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:empty" + } + ], + "description": "Represents an element that has no children at all." + }, + { + "name": ":enabled", + "browsers": [ + "E12", + "FF1", + "S3.1", + "C1", + "IE9", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:enabled" + } + ], + "description": "Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state." + }, + { + "name": ":end", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb." + }, + { + "name": ":first", + "browsers": [ + "E12", + "FF116", + "S6", + "C18", + "IE8", + "O9.2" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:first" + } + ], + "description": "When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context." + }, + { + "name": ":first-child", + "browsers": [ + "E12", + "FF3", + "S3.1", + "C4", + "IE7", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:first-child" + } + ], + "description": "Same as :nth-child(1). Represents an element that is the first child of some other element." + }, + { + "name": ":first-of-type", + "browsers": [ + "E12", + "FF3.5", + "S3.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:first-of-type" + } + ], + "description": "Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element." + }, + { + "name": ":focus", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE8", + "O7" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:focus" + } + ], + "description": "Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input)." + }, + { + "name": ":fullscreen", + "browsers": [ + "E12", + "FF64", + "S16.4", + "C71", + "IE11", + "O58" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:fullscreen" + } + ], + "description": "Matches any element that has its fullscreen flag set." + }, + { + "name": ":future", + "browsers": [ + "E79", + "S7", + "C23", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:future" + } + ], + "description": "Represents any element that is defined to occur entirely after a :current element." + }, + { + "name": ":horizontal", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to any scrollbar pieces that have a horizontal orientation." + }, + { + "name": ":host", + "browsers": [ + "E79", + "FF63", + "S10", + "C54", + "O41" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:host" + } + ], + "description": "When evaluated in the context of a shadow tree, matches the shadow tree's host element." + }, + { + "name": ":host()", + "browsers": [ + "C35", + "O22" + ], + "description": "When evaluated in the context of a shadow tree, it matches the shadow tree's host element if the host element, in its normal context, matches the selector argument." + }, + { + "name": ":host-context()", + "browsers": [ + "C35", + "O22" + ], + "description": "Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector." + }, + { + "name": ":hover", + "browsers": [ + "E12", + "FF1", + "S2", + "C1", + "IE4", + "O4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:hover" + } + ], + "description": "Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element." + }, + { + "name": ":increment", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view's position when used." + }, + { + "name": ":indeterminate", + "browsers": [ + "E12", + "FF2", + "S3", + "C1", + "IE10", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:indeterminate" + } + ], + "description": "Applies to UI elements whose value is in an indeterminate state." + }, + { + "name": ":in-range", + "browsers": [ + "E13", + "FF29", + "S5.1", + "C10", + "O11" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:in-range" + } + ], + "description": "Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes." + }, + { + "name": ":invalid", + "browsers": [ + "E12", + "FF4", + "S5", + "C10", + "IE10", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:invalid" + } + ], + "description": "An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification." + }, + { + "name": ":lang()", + "browsers": [ + "E", + "C", + "FF1", + "IE8", + "O8", + "S3" + ], + "description": "Represents an element that is in language specified." + }, + { + "name": ":last-child", + "browsers": [ + "E12", + "FF1", + "S3.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:last-child" + } + ], + "description": "Same as :nth-last-child(1). Represents an element that is the last child of some other element." + }, + { + "name": ":last-of-type", + "browsers": [ + "E12", + "FF3.5", + "S3.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:last-of-type" + } + ], + "description": "Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element." + }, + { + "name": ":left", + "browsers": [ + "E12", + "S5", + "C6", + "IE8", + "O9.2" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:left" + } + ], + "description": "When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context." + }, + { + "name": ":link", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE3", + "O3.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:link" + } + ], + "description": "Applies to links that have not yet been visited." + }, + { + "name": ":matches()", + "browsers": [ + "S9" + ], + "description": "Takes a selector list as its argument. It represents an element that is represented by its argument." + }, + { + "name": ":-moz-any()", + "browsers": [ + "FF4" + ], + "description": "Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()." + }, + { + "name": ":-moz-any-link", + "browsers": [ + "FF1" + ], + "description": "Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links." + }, + { + "name": ":-moz-broken", + "browsers": [ + "FF3" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-broken" + } + ], + "description": "Non-standard. Matches elements representing broken images." + }, + { + "name": ":-moz-drag-over", + "browsers": [ + "FF1" + ], + "description": "Non-standard. Matches elements when a drag-over event applies to it." + }, + { + "name": ":-moz-first-node", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-first-node" + } + ], + "description": "Non-standard. Represents an element that is the first child node of some other element." + }, + { + "name": ":-moz-focusring", + "browsers": [ + "FF4" + ], + "description": "Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser." + }, + { + "name": ":-moz-full-screen", + "browsers": [ + "FF9" + ], + "description": "Matches any element that has its fullscreen flag set. Standardized as :fullscreen." + }, + { + "name": ":-moz-last-node", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-last-node" + } + ], + "description": "Non-standard. Represents an element that is the last child node of some other element." + }, + { + "name": ":-moz-loading", + "browsers": [ + "FF3" + ], + "description": "Non-standard. Matches elements, such as images, that haven't started loading yet." + }, + { + "name": ":-moz-only-whitespace", + "browsers": [ + "FF1" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace" + } + ], + "description": "The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank." + }, + { + "name": ":-moz-placeholder", + "browsers": [ + "FF4" + ], + "description": "Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+." + }, + { + "name": ":-moz-submit-invalid", + "browsers": [ + "FF88" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid" + } + ], + "description": "Non-standard. Represents any submit button when the contents of the associated form are not valid." + }, + { + "name": ":-moz-suppressed", + "browsers": [ + "FF3" + ], + "description": "Non-standard. Matches elements representing images that have been blocked from loading." + }, + { + "name": ":-moz-ui-invalid", + "browsers": [ + "FF4" + ], + "description": "Non-standard. Represents any validated form element whose value isn't valid " + }, + { + "name": ":-moz-ui-valid", + "browsers": [ + "FF4" + ], + "description": "Non-standard. Represents any validated form element whose value is valid " + }, + { + "name": ":-moz-user-disabled", + "browsers": [ + "FF3" + ], + "description": "Non-standard. Matches elements representing images that have been disabled due to the user's preferences." + }, + { + "name": ":-moz-window-inactive", + "browsers": [ + "FF4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive" + } + ], + "description": "Non-standard. Matches elements in an inactive window." + }, + { + "name": ":-ms-fullscreen", + "browsers": [ + "IE11" + ], + "description": "Matches any element that has its fullscreen flag set." + }, + { + "name": ":-ms-input-placeholder", + "browsers": [ + "IE10" + ], + "description": "Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder." + }, + { + "name": ":-ms-keyboard-active", + "browsers": [ + "IE10" + ], + "description": "Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar." + }, + { + "name": ":-ms-lang()", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents an element that is in the language specified. Accepts a comma separated list of language tokens." + }, + { + "name": ":no-button", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to track pieces. Applies when there is no button at that end of the track." + }, + { + "name": ":not()", + "browsers": [ + "E", + "C", + "FF1", + "IE9", + "O9.5", + "S2" + ], + "description": "The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument." + }, + { + "name": ":nth-child()", + "browsers": [ + "E", + "C", + "FF3.5", + "IE9", + "O9.5", + "S3.1" + ], + "description": "Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element." + }, + { + "name": ":nth-last-child()", + "browsers": [ + "E", + "C", + "FF3.5", + "IE9", + "O9.5", + "S3.1" + ], + "description": "Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element." + }, + { + "name": ":nth-last-of-type()", + "browsers": [ + "E", + "C", + "FF3.5", + "IE9", + "O9.5", + "S3.1" + ], + "description": "Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element." + }, + { + "name": ":nth-of-type()", + "browsers": [ + "E", + "C", + "FF3.5", + "IE9", + "O9.5", + "S3.1" + ], + "description": "Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element." + }, + { + "name": ":only-child", + "browsers": [ + "E12", + "FF1.5", + "S3.1", + "C2", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:only-child" + } + ], + "description": "Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity." + }, + { + "name": ":only-of-type", + "browsers": [ + "E12", + "FF3.5", + "S3.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:only-of-type" + } + ], + "description": "Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity." + }, + { + "name": ":optional", + "browsers": [ + "E12", + "FF4", + "S5", + "C10", + "IE10", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:optional" + } + ], + "description": "A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional." + }, + { + "name": ":out-of-range", + "browsers": [ + "E13", + "FF29", + "S5.1", + "C10", + "O11" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:out-of-range" + } + ], + "description": "Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes." + }, + { + "name": ":past", + "browsers": [ + "E79", + "S7", + "C23", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:past" + } + ], + "description": "Represents any element that is defined to occur entirely prior to a :current element." + }, + { + "name": ":read-only", + "browsers": [ + "E13", + "FF78", + "S4", + "C1", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:read-only" + } + ], + "description": "An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only." + }, + { + "name": ":read-write", + "browsers": [ + "E13", + "FF78", + "S4", + "C1", + "O9" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:read-write" + } + ], + "description": "An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only." + }, + { + "name": ":required", + "browsers": [ + "E12", + "FF4", + "S5", + "C10", + "IE10", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:required" + } + ], + "description": "A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional." + }, + { + "name": ":right", + "browsers": [ + "E12", + "S5", + "C6", + "IE8", + "O9.2" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:right" + } + ], + "description": "When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context." + }, + { + "name": ":root", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:root" + } + ], + "description": "Represents an element that is the root of the document. In HTML 4, this is always the HTML element." + }, + { + "name": ":scope", + "browsers": [ + "E79", + "FF32", + "S7", + "C27", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:scope" + } + ], + "description": "Represents any element that is in the contextual reference element set." + }, + { + "name": ":single-button", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar." + }, + { + "name": ":start", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb." + }, + { + "name": ":target", + "browsers": [ + "E12", + "FF1", + "S1.3", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:target" + } + ], + "description": "Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier)." + }, + { + "name": ":valid", + "browsers": [ + "E12", + "FF4", + "S5", + "C10", + "IE10", + "O10" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:valid" + } + ], + "description": "An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification." + }, + { + "name": ":vertical", + "browsers": [ + "C", + "S5" + ], + "description": "Non-standard. Applies to any scrollbar pieces that have a vertical orientation." + }, + { + "name": ":visited", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE4", + "O3.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:visited" + } + ], + "description": "Applies once the link has been visited by the user." + }, + { + "name": ":-webkit-any()", + "browsers": [ + "C", + "S5" + ], + "description": "Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()." + }, + { + "name": ":-webkit-full-screen", + "browsers": [ + "C", + "S6" + ], + "description": "Matches any element that has its fullscreen flag set. Standardized as :fullscreen." + }, + { + "name": ":window-inactive", + "browsers": [ + "C", + "S3" + ], + "description": "Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active." + }, + { + "name": ":current", + "status": "experimental", + "description": "The :current CSS pseudo-class selector is a time-dimensional pseudo-class that represents the element, or an ancestor of the element, that is currently being displayed" + }, + { + "name": ":blank", + "status": "experimental", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:blank" + } + ], + "description": "The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>)." + }, + { + "name": ":defined", + "status": "experimental", + "browsers": [ + "E79", + "FF63", + "S10", + "C54", + "O41" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:defined" + } + ], + "description": "The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method)." + }, + { + "name": ":dir", + "browsers": [ + "E120", + "FF49", + "S16.4", + "C120", + "O106" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:dir" + } + ], + "description": "The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them." + }, + { + "name": ":focus-visible", + "browsers": [ + "E86", + "FF85", + "S15.4", + "C86", + "O72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:focus-visible" + } + ], + "description": "The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element." + }, + { + "name": ":focus-within", + "browsers": [ + "E79", + "FF52", + "S10.1", + "C60", + "O47" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:focus-within" + } + ], + "description": "The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus." + }, + { + "name": ":has", + "status": "experimental", + "browsers": [ + "E105", + "FF121", + "S15.4", + "C105", + "O91" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:has" + } + ], + "description": ":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element." + }, + { + "name": ":is", + "status": "experimental", + "browsers": [ + "E88", + "FF78", + "S14", + "C88", + "O74" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:is" + } + ], + "description": "The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form." + }, + { + "name": ":local-link", + "status": "experimental", + "description": "The :local-link CSS pseudo-class represents an link to the same document" + }, + { + "name": ":paused", + "status": "experimental", + "browsers": [ + "S15.4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:paused" + } + ], + "description": "The :paused CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being “played” or “paused”, when that element is “paused”." + }, + { + "name": ":placeholder-shown", + "status": "experimental", + "browsers": [ + "E79", + "FF51", + "S9", + "C47", + "IE10", + "O34" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown" + } + ], + "description": "The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text." + }, + { + "name": ":playing", + "status": "experimental", + "browsers": [ + "S15.4" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:playing" + } + ], + "description": "The :playing CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being “played” or “paused”, when that element is “playing”. " + }, + { + "name": ":target-within", + "status": "experimental", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:target-within" + } + ], + "description": "The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment." + }, + { + "name": ":user-invalid", + "status": "experimental", + "browsers": [ + "E119", + "FF88", + "S16.5", + "C119", + "O105" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:user-invalid" + } + ], + "description": "The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it." + }, + { + "name": ":user-valid", + "status": "experimental", + "browsers": [ + "E119", + "FF88", + "S16.5", + "C119", + "O105" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:user-valid" + } + ], + "description": "The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it." + }, + { + "name": ":where", + "status": "experimental", + "browsers": [ + "E88", + "FF78", + "S14", + "C88", + "O74" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:where" + } + ], + "description": "The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list." + }, + { + "name": ":picture-in-picture", + "status": "experimental", + "browsers": [ + "E110", + "S13.1", + "C110", + "O96" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/:picture-in-picture" + } + ], + "description": "The :picture-in-picture CSS pseudo-class matches the element which is currently in picture-in-picture mode." + } + ], + "pseudoElements": [ + { + "name": "::after", + "browsers": [ + "E12", + "FF1.5", + "S4", + "C1", + "IE9", + "O7" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::after" + } + ], + "description": "Represents a styleable child pseudo-element immediately after the originating element's actual content." + }, + { + "name": "::backdrop", + "browsers": [ + "E79", + "FF47", + "S15.4", + "C37", + "IE11", + "O24" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::backdrop" + } + ], + "description": "Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)." + }, + { + "name": "::before", + "browsers": [ + "E12", + "FF1.5", + "S4", + "C1", + "IE9", + "O7" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::before" + } + ], + "description": "Represents a styleable child pseudo-element immediately before the originating element's actual content." + }, + { + "name": "::content", + "browsers": [ + "C35", + "O22" + ], + "description": "Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility." + }, + { + "name": "::cue", + "browsers": [ + "E79", + "FF55", + "S7", + "C26", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::cue" + } + ] + }, + { + "name": "::cue()", + "browsers": [ + "C", + "O16", + "S6" + ] + }, + { + "name": "::cue-region", + "browsers": [ + "C", + "O16", + "S6" + ] + }, + { + "name": "::cue-region()", + "browsers": [ + "C", + "O16", + "S6" + ] + }, + { + "name": "::first-letter", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE9", + "O7" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::first-letter" + } + ], + "description": "Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line." + }, + { + "name": "::first-line", + "browsers": [ + "E12", + "FF1", + "S1", + "C1", + "IE9", + "O7" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::first-line" + } + ], + "description": "Describes the contents of the first formatted line of its originating element." + }, + { + "name": "::-moz-focus-inner", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-focus-inner" + } + ] + }, + { + "name": "::-moz-focus-outer", + "browsers": [ + "FF4" + ] + }, + { + "name": "::-moz-list-bullet", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-list-bullet" + } + ], + "description": "Used to style the bullet of a list element. Similar to the standardized ::marker." + }, + { + "name": "::-moz-list-number", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-list-number" + } + ], + "description": "Used to style the numbers of a list element. Similar to the standardized ::marker." + }, + { + "name": "::-moz-placeholder", + "browsers": [ + "FF19" + ], + "description": "Represents placeholder text in an input field" + }, + { + "name": "::-moz-progress-bar", + "browsers": [ + "FF72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-progress-bar" + } + ], + "description": "Represents the bar portion of a progress bar." + }, + { + "name": "::-moz-selection", + "browsers": [ + "FF1" + ], + "description": "Represents the portion of a document that has been highlighted by the user." + }, + { + "name": "::-ms-backdrop", + "browsers": [ + "IE11" + ], + "description": "Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)." + }, + { + "name": "::-ms-browse", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the browse button of an input type=file control." + }, + { + "name": "::-ms-check", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the check of a checkbox or radio button input control." + }, + { + "name": "::-ms-clear", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the clear button of a text input control" + }, + { + "name": "::-ms-expand", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the drop-down button of a select control." + }, + { + "name": "::-ms-fill", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the bar portion of a progress bar." + }, + { + "name": "::-ms-fill-lower", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb." + }, + { + "name": "::-ms-fill-upper", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb." + }, + { + "name": "::-ms-reveal", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the password reveal button of an input type=password control." + }, + { + "name": "::-ms-thumb", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the portion of range input control (also known as a slider control) that the user drags." + }, + { + "name": "::-ms-ticks-after", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb." + }, + { + "name": "::-ms-ticks-before", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb." + }, + { + "name": "::-ms-tooltip", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the tooltip of a slider (input type=range)." + }, + { + "name": "::-ms-track", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the track of a slider." + }, + { + "name": "::-ms-value", + "browsers": [ + "E", + "IE10" + ], + "description": "Represents the content of a text or password input control, or a select control." + }, + { + "name": "::selection", + "browsers": [ + "E12", + "FF62", + "S1.1", + "C1", + "IE9", + "O9.5" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::selection" + } + ], + "description": "Represents the portion of a document that has been highlighted by the user." + }, + { + "name": "::shadow", + "browsers": [ + "C35", + "O22" + ], + "description": "Matches the shadow root if an element has a shadow tree." + }, + { + "name": "::-webkit-file-upload-button", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-inner-spin-button", + "browsers": [ + "E79", + "S5", + "C6", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button" + } + ] + }, + { + "name": "::-webkit-input-placeholder", + "browsers": [ + "C", + "S4" + ] + }, + { + "name": "::-webkit-keygen-select", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-meter-bar", + "browsers": [ + "E79", + "S5.1", + "C12", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar" + } + ] + }, + { + "name": "::-webkit-meter-even-less-good-value", + "browsers": [ + "E79", + "S5.1", + "C12", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value" + } + ] + }, + { + "name": "::-webkit-meter-optimum-value", + "browsers": [ + "E79", + "S5.1", + "C12", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value" + } + ] + }, + { + "name": "::-webkit-meter-suboptimum-value", + "browsers": [ + "E79", + "S5.1", + "C12", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-suboptimum-value" + } + ] + }, + { + "name": "::-webkit-outer-spin-button", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-progress-bar", + "browsers": [ + "E79", + "S7", + "C25", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar" + } + ] + }, + { + "name": "::-webkit-progress-inner-element", + "browsers": [ + "E79", + "S7", + "C23", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element" + } + ] + }, + { + "name": "::-webkit-progress-value", + "browsers": [ + "E79", + "S7", + "C25", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value" + } + ] + }, + { + "name": "::-webkit-resizer", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar-button", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar-corner", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar-thumb", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar-track", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-scrollbar-track-piece", + "browsers": [ + "E79", + "S4", + "C2", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar" + } + ] + }, + { + "name": "::-webkit-search-cancel-button", + "browsers": [ + "E79", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button" + } + ] + }, + { + "name": "::-webkit-search-decoration", + "browsers": [ + "C", + "S4" + ] + }, + { + "name": "::-webkit-search-results-button", + "browsers": [ + "E79", + "S3", + "C1", + "O15" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button" + } + ] + }, + { + "name": "::-webkit-search-results-decoration", + "browsers": [ + "C", + "S4" + ] + }, + { + "name": "::-webkit-slider-runnable-track", + "browsers": [ + "E83", + "C83", + "O69" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-slider-runnable-track" + } + ] + }, + { + "name": "::-webkit-slider-thumb", + "browsers": [ + "E83", + "C83", + "O69" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-webkit-slider-thumb" + } + ] + }, + { + "name": "::-webkit-textfield-decoration-container", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble-arrow", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble-arrow-clipper", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble-heading", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble-message", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::-webkit-validation-bubble-text-block", + "browsers": [ + "C", + "O", + "S6" + ] + }, + { + "name": "::target-text", + "status": "experimental", + "browsers": [ + "E89", + "C89", + "O75" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::target-text" + } + ], + "description": "The ::target-text CSS pseudo-element represents the text that has been scrolled to if the browser supports scroll-to-text fragments. It allows authors to choose how to highlight that section of text." + }, + { + "name": "::-moz-range-progress", + "status": "nonstandard", + "browsers": [ + "FF22" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress" + } + ], + "description": "The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob)." + }, + { + "name": "::-moz-range-thumb", + "status": "nonstandard", + "browsers": [ + "FF21" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb" + } + ], + "description": "The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input's track to alter its numerical value." + }, + { + "name": "::-moz-range-track", + "status": "nonstandard", + "browsers": [ + "FF21" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track" + } + ], + "description": "The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\"." + }, + { + "name": "::-webkit-progress-inner-value", + "status": "nonstandard", + "description": "The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\n\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element." + }, + { + "name": "::grammar-error", + "status": "experimental", + "browsers": [ + "E121", + "S17.4", + "C121", + "O107" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::grammar-error" + } + ], + "description": "The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect." + }, + { + "name": "::marker", + "browsers": [ + "E86", + "FF68", + "S11.1", + "C86", + "O72" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::marker" + } + ], + "description": "The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements." + }, + { + "name": "::part", + "status": "experimental", + "browsers": [ + "E79", + "FF72", + "S13.1", + "C73", + "O60" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::part" + } + ], + "description": "The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute." + }, + { + "name": "::placeholder", + "browsers": [ + "E79", + "FF51", + "S10.1", + "C57", + "O44" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::placeholder" + } + ], + "description": "The ::placeholder CSS pseudo-element represents the placeholder text of a form element." + }, + { + "name": "::slotted", + "browsers": [ + "E79", + "FF63", + "S10", + "C50", + "O37" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::slotted" + } + ], + "description": "The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template." + }, + { + "name": "::spelling-error", + "status": "experimental", + "browsers": [ + "E121", + "S17.4", + "C121", + "O107" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::spelling-error" + } + ], + "description": "The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled." + }, + { + "name": "::view-transition", + "status": "experimental", + "browsers": [ + "E109", + "S18", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::view-transition" + } + ], + "description": "The ::view-transition CSS pseudo-element represents the root of the view transitions overlay, which contains all view transitions and sits over the top of all other page content." + }, + { + "name": "::view-transition-group", + "status": "experimental", + "browsers": [ + "E109", + "S18", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::view-transition-group" + } + ], + "description": "The ::view-transition-group CSS pseudo-element represents a single view transition group." + }, + { + "name": "::view-transition-image-pair", + "status": "experimental", + "browsers": [ + "E109", + "S18", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::view-transition-image-pair" + } + ], + "description": "The ::view-transition-image-pair CSS pseudo-element represents a container for a view transition's \"old\" and \"new\" view states — before and after the transition." + }, + { + "name": "::view-transition-new", + "status": "experimental", + "browsers": [ + "E109", + "S18", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::view-transition-new" + } + ], + "description": "The ::view-transition-new CSS pseudo-element represents the \"new\" view state of a view transition — a live representation of the new view, after the transition." + }, + { + "name": "::view-transition-old", + "status": "experimental", + "browsers": [ + "E109", + "S18", + "C109", + "O95" + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/::view-transition-old" + } + ], + "description": "The ::view-transition-old CSS pseudo-element represents the \"old\" view state of a view transition — a static screenshot of the old view, before the transition." + } + ] +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSDataProvider { + /** + * Currently, unversioned data uses the V1 implementation + * In the future when the provider handles multiple versions of HTML custom data, + * use the latest implementation for unversioned data + */ + constructor(data) { + this._properties = []; + this._atDirectives = []; + this._pseudoClasses = []; + this._pseudoElements = []; + this.addData(data); + } + provideProperties() { + return this._properties; + } + provideAtDirectives() { + return this._atDirectives; + } + providePseudoClasses() { + return this._pseudoClasses; + } + providePseudoElements() { + return this._pseudoElements; + } + addData(data) { + if (Array.isArray(data.properties)) { + for (const prop of data.properties) { + if (isPropertyData(prop)) { + this._properties.push(prop); + } + } + } + if (Array.isArray(data.atDirectives)) { + for (const prop of data.atDirectives) { + if (isAtDirective(prop)) { + this._atDirectives.push(prop); + } + } + } + if (Array.isArray(data.pseudoClasses)) { + for (const prop of data.pseudoClasses) { + if (isPseudoClassData(prop)) { + this._pseudoClasses.push(prop); + } + } + } + if (Array.isArray(data.pseudoElements)) { + for (const prop of data.pseudoElements) { + if (isPseudoElementData(prop)) { + this._pseudoElements.push(prop); + } + } + } + } +} +function isPropertyData(d) { + return typeof d.name === 'string'; +} +function isAtDirective(d) { + return typeof d.name === 'string'; +} +function isPseudoClassData(d) { + return typeof d.name === 'string'; +} +function isPseudoElementData(d) { + return typeof d.name === 'string'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class CSSDataManager { + constructor(options) { + this.dataProviders = []; + this._propertySet = {}; + this._atDirectiveSet = {}; + this._pseudoClassSet = {}; + this._pseudoElementSet = {}; + this._properties = []; + this._atDirectives = []; + this._pseudoClasses = []; + this._pseudoElements = []; + this.setDataProviders(options?.useDefaultDataProvider !== false, options?.customDataProviders || []); + } + setDataProviders(builtIn, providers) { + this.dataProviders = []; + if (builtIn) { + this.dataProviders.push(new CSSDataProvider(cssData)); + } + this.dataProviders.push(...providers); + this.collectData(); + } + /** + * Collect all data & handle duplicates + */ + collectData() { + this._propertySet = {}; + this._atDirectiveSet = {}; + this._pseudoClassSet = {}; + this._pseudoElementSet = {}; + this.dataProviders.forEach(provider => { + provider.provideProperties().forEach(p => { + if (!this._propertySet[p.name]) { + this._propertySet[p.name] = p; + } + }); + provider.provideAtDirectives().forEach(p => { + if (!this._atDirectiveSet[p.name]) { + this._atDirectiveSet[p.name] = p; + } + }); + provider.providePseudoClasses().forEach(p => { + if (!this._pseudoClassSet[p.name]) { + this._pseudoClassSet[p.name] = p; + } + }); + provider.providePseudoElements().forEach(p => { + if (!this._pseudoElementSet[p.name]) { + this._pseudoElementSet[p.name] = p; + } + }); + }); + this._properties = values(this._propertySet); + this._atDirectives = values(this._atDirectiveSet); + this._pseudoClasses = values(this._pseudoClassSet); + this._pseudoElements = values(this._pseudoElementSet); + } + getProperty(name) { return this._propertySet[name]; } + getAtDirective(name) { return this._atDirectiveSet[name]; } + getPseudoClass(name) { return this._pseudoClassSet[name]; } + getPseudoElement(name) { return this._pseudoElementSet[name]; } + getProperties() { + return this._properties; + } + getAtDirectives() { + return this._atDirectives; + } + getPseudoClasses() { + return this._pseudoClasses; + } + getPseudoElements() { + return this._pseudoElements; + } + isKnownProperty(name) { + return name.toLowerCase() in this._propertySet; + } + isStandardProperty(name) { + return this.isKnownProperty(name) && + (!this._propertySet[name.toLowerCase()].status || this._propertySet[name.toLowerCase()].status === 'standard'); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getSelectionRanges(document, positions, stylesheet) { + function getSelectionRange(position) { + const applicableRanges = getApplicableRanges(position); + let current = undefined; + for (let index = applicableRanges.length - 1; index >= 0; index--) { + current = SelectionRange.create(Range$a.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current); + } + if (!current) { + current = SelectionRange.create(Range$a.create(position, position)); + } + return current; + } + return positions.map(getSelectionRange); + function getApplicableRanges(position) { + const offset = document.offsetAt(position); + let currNode = stylesheet.findChildAtOffset(offset, true); + if (!currNode) { + return []; + } + const result = []; + while (currNode) { + if (currNode.parent && + currNode.offset === currNode.parent.offset && + currNode.end === currNode.parent.end) { + currNode = currNode.parent; + continue; + } + // The `{ }` part of `.a { }` + if (currNode.type === NodeType.Declarations) { + if (offset > currNode.offset && offset < currNode.end) { + // Return `{ }` and the range inside `{` and `}` + result.push([currNode.offset + 1, currNode.end - 1]); + } + } + result.push([currNode.offset, currNode.end]); + currNode = currNode.parent; + } + return result; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class SCSSNavigation extends CSSNavigation { + constructor(fileSystemProvider) { + super(fileSystemProvider, true); + } + isRawStringDocumentLinkNode(node) { + return (super.isRawStringDocumentLinkNode(node) || + node.type === NodeType.Use || + node.type === NodeType.Forward); + } + async mapReference(target, isRawLink) { + if (this.fileSystemProvider && target && isRawLink) { + const pathVariations = toPathVariations(target); + for (const variation of pathVariations) { + if (await this.fileExists(variation)) { + return variation; + } + } + } + return target; + } + async resolveReference(target, documentUri, documentContext, isRawLink = false) { + if (startsWith$1(target, 'sass:')) { + return undefined; // sass library + } + // Following the [sass package importer](https://github.com/sass/sass/blob/f6832f974c61e35c42ff08b3640ff155071a02dd/js-api-doc/importer.d.ts#L349), + // look for the `exports` field of the module and any `sass`, `style` or `default` that matches the import. + // If it's only `pkg:module`, also look for `sass` and `style` on the root of package.json. + if (target.startsWith('pkg:')) { + return this.resolvePkgModulePath(target, documentUri, documentContext); + } + return super.resolveReference(target, documentUri, documentContext, isRawLink); + } + async resolvePkgModulePath(target, documentUri, documentContext) { + const bareTarget = target.replace('pkg:', ''); + const moduleName = bareTarget.includes('/') ? getModuleNameFromPath(bareTarget) : bareTarget; + const rootFolderUri = documentContext.resolveReference('/', documentUri); + const documentFolderUri = dirname(documentUri); + const modulePath = await this.resolvePathToModule(moduleName, documentFolderUri, rootFolderUri); + if (!modulePath) { + return undefined; + } + // Since submodule exports import strings don't match the file system, + // we need the contents of `package.json` to look up the correct path. + let packageJsonContent = await this.getContent(joinPath(modulePath, 'package.json')); + if (!packageJsonContent) { + return undefined; + } + let packageJson; + try { + packageJson = JSON.parse(packageJsonContent); + } + catch (e) { + // problems parsing package.json + return undefined; + } + const subpath = bareTarget.substring(moduleName.length + 1); + if (packageJson.exports) { + if (!subpath) { + // exports may look like { "sass": "./_index.scss" } or { ".": { "sass": "./_index.scss" } } + const rootExport = packageJson.exports["."] || packageJson.exports; + // look for the default/index export + // @ts-expect-error If ['.'] is a string this just produces undefined + const entry = rootExport && (rootExport['sass'] || rootExport['style'] || rootExport['default']); + // the 'default' entry can be whatever, typically .js – confirm it looks like `scss` + if (entry && entry.endsWith('.scss')) { + const entryPath = joinPath(modulePath, entry); + return entryPath; + } + } + else { + // The import string may be with or without .scss. + // Likewise the exports entry. Look up both paths. + // However, they need to be relative (start with ./). + const lookupSubpath = subpath.endsWith('.scss') ? `./${subpath.replace('.scss', '')}` : `./${subpath}`; + const lookupSubpathScss = subpath.endsWith('.scss') ? `./${subpath}` : `./${subpath}.scss`; + const subpathObject = packageJson.exports[lookupSubpathScss] || packageJson.exports[lookupSubpath]; + if (subpathObject) { + // @ts-expect-error If subpathObject is a string this just produces undefined + const entry = subpathObject['sass'] || subpathObject['styles'] || subpathObject['default']; + // the 'default' entry can be whatever, typically .js – confirm it looks like `scss` + if (entry && entry.endsWith('.scss')) { + const entryPath = joinPath(modulePath, entry); + return entryPath; + } + } + else { + // We have a subpath, but found no matches on direct lookup. + // It may be a [subpath pattern](https://nodejs.org/api/packages.html#subpath-patterns). + for (const [maybePattern, subpathObject] of Object.entries(packageJson.exports)) { + if (!maybePattern.includes("*")) { + continue; + } + // Patterns may also be without `.scss` on the left side, so compare without on both sides + const re = new RegExp(convertSimple2RegExpPattern(maybePattern.replace('.scss', '')).replace(/\.\*/g, '(.*)')); + const match = re.exec(lookupSubpath); + if (match) { + // @ts-expect-error If subpathObject is a string this just produces undefined + const entry = subpathObject['sass'] || subpathObject['styles'] || subpathObject['default']; + // the 'default' entry can be whatever, typically .js – confirm it looks like `scss` + if (entry && entry.endsWith('.scss')) { + // The right-hand side of a subpath pattern is also a pattern. + // Replace the pattern with the match from our regexp capture group above. + const expandedPattern = entry.replace('*', match[1]); + const entryPath = joinPath(modulePath, expandedPattern); + return entryPath; + } + } + } + } + } + } + else if (!subpath && (packageJson.sass || packageJson.style)) { + // Fall back to a direct lookup on `sass` and `style` on package root + const entry = packageJson.sass || packageJson.style; + if (entry) { + const entryPath = joinPath(modulePath, entry); + return entryPath; + } + } + return undefined; + } +} +function toPathVariations(target) { + // No variation for links that ends with .css suffix + if (target.endsWith('.css')) { + return [target]; + } + // If a link is like a/, try resolving a/index.scss and a/_index.scss + if (target.endsWith('/')) { + return [target + 'index.scss', target + '_index.scss']; + } + const targetUri = URI$1.parse(target.replace(/\.scss$/, '')); + const basename = Utils.basename(targetUri); + const dirname = Utils.dirname(targetUri); + if (basename.startsWith('_')) { + // No variation for links such as _a + return [Utils.joinPath(dirname, basename + '.scss').toString(true)]; + } + return [ + Utils.joinPath(dirname, basename + '.scss').toString(true), + Utils.joinPath(dirname, '_' + basename + '.scss').toString(true), + target + '/index.scss', + target + '/_index.scss', + Utils.joinPath(dirname, basename + '.css').toString(true) + ]; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function getDefaultCSSDataProvider() { + return newCSSDataProvider(cssData); +} +function newCSSDataProvider(data) { + return new CSSDataProvider(data); +} +function createFacade(parser, completion, hover, navigation, codeActions, validation, cssDataManager) { + return { + configure: (settings) => { + validation.configure(settings); + completion.configure(settings?.completion); + hover.configure(settings?.hover); + navigation.configure(settings?.importAliases); + }, + setDataProviders: cssDataManager.setDataProviders.bind(cssDataManager), + doValidation: validation.doValidation.bind(validation), + parseStylesheet: parser.parseStylesheet.bind(parser), + doComplete: completion.doComplete.bind(completion), + doComplete2: completion.doComplete2.bind(completion), + setCompletionParticipants: completion.setCompletionParticipants.bind(completion), + doHover: hover.doHover.bind(hover), + format: format$1, + findDefinition: navigation.findDefinition.bind(navigation), + findReferences: navigation.findReferences.bind(navigation), + findDocumentHighlights: navigation.findDocumentHighlights.bind(navigation), + findDocumentLinks: navigation.findDocumentLinks.bind(navigation), + findDocumentLinks2: navigation.findDocumentLinks2.bind(navigation), + findDocumentSymbols: navigation.findSymbolInformations.bind(navigation), + findDocumentSymbols2: navigation.findDocumentSymbols.bind(navigation), + doCodeActions: codeActions.doCodeActions.bind(codeActions), + doCodeActions2: codeActions.doCodeActions2.bind(codeActions), + findDocumentColors: navigation.findDocumentColors.bind(navigation), + getColorPresentations: navigation.getColorPresentations.bind(navigation), + prepareRename: navigation.prepareRename.bind(navigation), + doRename: navigation.doRename.bind(navigation), + getFoldingRanges, + getSelectionRanges + }; +} +const defaultLanguageServiceOptions$1 = {}; +function getCSSLanguageService(options = defaultLanguageServiceOptions$1) { + const cssDataManager = new CSSDataManager(options); + return createFacade(new Parser(), new CSSCompletion(null, options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, false), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager); +} +function getSCSSLanguageService(options = defaultLanguageServiceOptions$1) { + const cssDataManager = new CSSDataManager(options); + return createFacade(new SCSSParser(), new SCSSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new SCSSNavigation(options && options.fileSystemProvider), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager); +} +function getLESSLanguageService(options = defaultLanguageServiceOptions$1) { + const cssDataManager = new CSSDataManager(options); + return createFacade(new LESSParser(), new LESSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, true), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager); +} + +var cssLanguageService = /*#__PURE__*/Object.freeze({ + __proto__: null, + get ClientCapabilities () { return ClientCapabilities$1; }, + get CodeAction () { return CodeAction; }, + get CodeActionContext () { return CodeActionContext; }, + get CodeActionKind () { return CodeActionKind; }, + get Color () { return Color; }, + get ColorInformation () { return ColorInformation; }, + get ColorPresentation () { return ColorPresentation; }, + get Command () { return Command; }, + get CompletionItem () { return CompletionItem; }, + get CompletionItemKind () { return CompletionItemKind; }, + get CompletionItemTag () { return CompletionItemTag; }, + get CompletionList () { return CompletionList; }, + get Diagnostic () { return Diagnostic; }, + get DiagnosticSeverity () { return DiagnosticSeverity; }, + get DocumentHighlight () { return DocumentHighlight; }, + get DocumentHighlightKind () { return DocumentHighlightKind; }, + get DocumentLink () { return DocumentLink; }, + get DocumentSymbol () { return DocumentSymbol; }, + get DocumentUri () { return DocumentUri; }, + get FileType () { return FileType$1; }, + get FoldingRange () { return FoldingRange; }, + get FoldingRangeKind () { return FoldingRangeKind; }, + get Hover () { return Hover; }, + get InsertTextFormat () { return InsertTextFormat; }, + get Location () { return Location; }, + get MarkedString () { return MarkedString; }, + get MarkupContent () { return MarkupContent; }, + get MarkupKind () { return MarkupKind; }, + get Position () { return Position; }, + get Range () { return Range$a; }, + get SelectionRange () { return SelectionRange; }, + get SymbolInformation () { return SymbolInformation; }, + get SymbolKind () { return SymbolKind$1; }, + get TextDocument () { return TextDocument$1; }, + get TextDocumentEdit () { return TextDocumentEdit; }, + get TextEdit () { return TextEdit; }, + get VersionedTextDocumentIdentifier () { return VersionedTextDocumentIdentifier; }, + get WorkspaceEdit () { return WorkspaceEdit; }, + getCSSLanguageService: getCSSLanguageService, + getDefaultCSSDataProvider: getDefaultCSSDataProvider, + getLESSLanguageService: getLESSLanguageService, + getSCSSLanguageService: getSCSSLanguageService, + newCSSDataProvider: newCSSDataProvider +}); + +var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(cssLanguageService); + +Object.defineProperty(volarServiceCss, "__esModule", { value: true }); +volarServiceCss.resolveReference = resolveReference$1; +volarServiceCss.create = create$d; +const css = require$$0$1; +const vscode_languageserver_textdocument_1$1 = require$$1$2; +const vscode_uri_1$9 = umdExports; +function resolveReference$1(ref, baseUri, workspaceFolders) { + if (ref.match(/^\w[\w\d+.-]*:/)) { + // starts with a schema + return ref; + } + if (ref[0] === '/') { // resolve absolute path against the current workspace folder + const folderUri = getRootFolder(); + if (folderUri) { + return folderUri + ref.substr(1); + } + } + const baseUriDir = baseUri.path.endsWith('/') ? baseUri : vscode_uri_1$9.Utils.dirname(baseUri); + return vscode_uri_1$9.Utils.resolvePath(baseUriDir, ref).toString(true); + function getRootFolder() { + for (const folder of workspaceFolders) { + let folderURI = folder.toString(); + if (!folderURI.endsWith('/')) { + folderURI = folderURI + '/'; + } + if (baseUri.toString().startsWith(folderURI)) { + return folderURI; + } + } + } +} +function create$d({ cssDocumentSelector = ['css'], scssDocumentSelector = ['scss'], lessDocumentSelector = ['less'], useDefaultDataProvider = true, getDocumentContext = context => { + return { + resolveReference(ref, base) { + let baseUri = vscode_uri_1$9.URI.parse(base); + const decoded = context.decodeEmbeddedDocumentUri(baseUri); + if (decoded) { + baseUri = decoded[0]; + } + return resolveReference$1(ref, baseUri, context.env.workspaceFolders); + }, + }; +}, isFormattingEnabled = async (document, context) => { + return await context.env.getConfiguration?.(document.languageId + '.format.enable') ?? true; +}, getFormattingOptions = async (document, options, context) => { + return { + ...options, + ...await context.env.getConfiguration?.(document.languageId + '.format'), + }; +}, getLanguageSettings = async (document, context) => { + return await context.env.getConfiguration?.(document.languageId); +}, getCustomData = async (context) => { + const customData = await context.env.getConfiguration?.('css.customData') ?? []; + const newData = []; + for (const customDataPath of customData) { + for (const workspaceFolder of context.env.workspaceFolders) { + const uri = vscode_uri_1$9.Utils.resolvePath(workspaceFolder, customDataPath); + const json = await context.env.fs?.readFile?.(uri); + if (json) { + try { + const data = JSON.parse(json); + newData.push(css.newCSSDataProvider(data)); + } + catch (error) { + console.error(error); + } + break; + } + } + } + return newData; +}, onDidChangeCustomData = (listener, context) => { + const disposable = context.env.onDidChangeConfiguration?.(listener); + return { + dispose() { + disposable?.dispose(); + }, + }; +}, } = {}) { + return { + name: 'css', + capabilities: { + completionProvider: { + // https://github.com/microsoft/vscode/blob/09850876e652688fb142e2e19fd00fd38c0bc4ba/extensions/css-language-features/server/src/cssServer.ts#L97 + triggerCharacters: ['/', '-', ':'], + }, + renameProvider: { + prepareProvider: true, + }, + codeActionProvider: {}, + definitionProvider: true, + diagnosticProvider: { + interFileDependencies: false, + workspaceDiagnostics: false, + }, + hoverProvider: true, + referencesProvider: true, + documentHighlightProvider: true, + documentLinkProvider: {}, + documentSymbolProvider: true, + colorProvider: true, + foldingRangeProvider: true, + selectionRangeProvider: true, + documentFormattingProvider: true, + }, + create(context) { + const stylesheets = new WeakMap(); + const fileSystemProvider = { + stat: async (uri) => await context.env.fs?.stat(vscode_uri_1$9.URI.parse(uri)) + ?? { type: css.FileType.Unknown, ctime: 0, mtime: 0, size: 0 }, + readDirectory: async (uri) => await context.env.fs?.readDirectory(vscode_uri_1$9.URI.parse(uri)) ?? [], + }; + const documentContext = getDocumentContext(context); + const disposable = onDidChangeCustomData(() => initializing = undefined, context); + let cssLs; + let scssLs; + let lessLs; + let customData = []; + let initializing; + return { + dispose() { + disposable.dispose(); + }, + provide: { + 'css/stylesheet': getStylesheet, + 'css/languageService': getCssLs, + }, + async provideCompletionItems(document, position) { + return worker(document, async (stylesheet, cssLs) => { + const settings = await getLanguageSettings(document, context); + return await cssLs.doComplete2(document, position, stylesheet, documentContext, settings?.completion); + }); + }, + provideRenameRange(document, position) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.prepareRename(document, position, stylesheet); + }); + }, + provideRenameEdits(document, position, newName) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.doRename(document, position, newName, stylesheet); + }); + }, + provideCodeActions(document, range, context) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.doCodeActions2(document, range, context, stylesheet); + }); + }, + provideDefinition(document, position) { + return worker(document, (stylesheet, cssLs) => { + const location = cssLs.findDefinition(document, position, stylesheet); + if (location) { + return [{ + targetUri: location.uri, + targetRange: location.range, + targetSelectionRange: location.range, + }]; + } + }); + }, + async provideDiagnostics(document) { + return worker(document, async (stylesheet, cssLs) => { + const settings = await getLanguageSettings(document, context); + return cssLs.doValidation(document, stylesheet, settings); + }); + }, + async provideHover(document, position) { + return worker(document, async (stylesheet, cssLs) => { + const settings = await getLanguageSettings(document, context); + return cssLs.doHover(document, position, stylesheet, settings?.hover); + }); + }, + provideReferences(document, position) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.findReferences(document, position, stylesheet); + }); + }, + provideDocumentHighlights(document, position) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.findDocumentHighlights(document, position, stylesheet); + }); + }, + async provideDocumentLinks(document) { + return await worker(document, (stylesheet, cssLs) => { + return cssLs.findDocumentLinks2(document, stylesheet, documentContext); + }); + }, + provideDocumentSymbols(document) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.findDocumentSymbols2(document, stylesheet); + }); + }, + provideDocumentColors(document) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.findDocumentColors(document, stylesheet); + }); + }, + provideColorPresentations(document, color, range) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.getColorPresentations(document, stylesheet, color, range); + }); + }, + provideFoldingRanges(document) { + return worker(document, (_stylesheet, cssLs) => { + return cssLs.getFoldingRanges(document, context.env.clientCapabilities?.textDocument?.foldingRange); + }); + }, + provideSelectionRanges(document, positions) { + return worker(document, (stylesheet, cssLs) => { + return cssLs.getSelectionRanges(document, positions, stylesheet); + }); + }, + async provideDocumentFormattingEdits(document, formatRange, options, codeOptions) { + return worker(document, async (_stylesheet, cssLs) => { + if (!await isFormattingEnabled(document, context)) { + return; + } + const formatOptions = await getFormattingOptions(document, options, context); + let formatDocument = document; + let prefixes = []; + let suffixes = []; + if (codeOptions?.initialIndentLevel) { + for (let i = 0; i < codeOptions.initialIndentLevel; i++) { + if (i === codeOptions.initialIndentLevel - 1) { + prefixes.push('_', '{'); + suffixes.unshift('}'); + } + else { + prefixes.push('_', '{\n'); + suffixes.unshift('\n}'); + } + } + formatDocument = vscode_languageserver_textdocument_1$1.TextDocument.create(document.uri, document.languageId, document.version, prefixes.join('') + document.getText() + suffixes.join('')); + formatRange = { + start: formatDocument.positionAt(0), + end: formatDocument.positionAt(formatDocument.getText().length), + }; + } + let edits = cssLs.format(formatDocument, formatRange, formatOptions); + if (codeOptions) { + let newText = vscode_languageserver_textdocument_1$1.TextDocument.applyEdits(formatDocument, edits); + for (const prefix of prefixes) { + newText = newText.trimStart().slice(prefix.trim().length); + } + for (const suffix of suffixes.reverse()) { + newText = newText.trimEnd().slice(0, -suffix.trim().length); + } + if (!codeOptions.initialIndentLevel && codeOptions.level > 0) { + newText = ensureNewLines(newText); + } + edits = [{ + range: { + start: document.positionAt(0), + end: document.positionAt(document.getText().length), + }, + newText, + }]; + } + return edits; + function ensureNewLines(newText) { + const verifyDocument = vscode_languageserver_textdocument_1$1.TextDocument.create(document.uri, document.languageId, document.version, '_ {' + newText + '}'); + const verifyEdits = cssLs.format(verifyDocument, undefined, formatOptions); + let verifyText = vscode_languageserver_textdocument_1$1.TextDocument.applyEdits(verifyDocument, verifyEdits); + verifyText = verifyText.trimStart().slice('_'.length); + verifyText = verifyText.trim().slice('{'.length, -'}'.length); + if (startWithNewLine(verifyText) !== startWithNewLine(newText)) { + if (startWithNewLine(verifyText)) { + newText = '\n' + newText; + } + else if (newText.startsWith('\n')) { + newText = newText.slice(1); + } + else if (newText.startsWith('\r\n')) { + newText = newText.slice(2); + } + } + if (endWithNewLine(verifyText) !== endWithNewLine(newText)) { + if (endWithNewLine(verifyText)) { + newText = newText + '\n'; + } + else if (newText.endsWith('\n')) { + newText = newText.slice(0, -1); + } + else if (newText.endsWith('\r\n')) { + newText = newText.slice(0, -2); + } + } + return newText; + } + function startWithNewLine(text) { + return text.startsWith('\n') || text.startsWith('\r\n'); + } + function endWithNewLine(text) { + return text.endsWith('\n') || text.endsWith('\r\n'); + } + }); + }, + }; + function getCssLs(document) { + if (matchDocument$1(cssDocumentSelector, document)) { + if (!cssLs) { + cssLs = css.getCSSLanguageService({ + fileSystemProvider, + clientCapabilities: context.env.clientCapabilities, + useDefaultDataProvider, + customDataProviders: customData, + }); + cssLs.setDataProviders(useDefaultDataProvider, customData); + } + return cssLs; + } + else if (matchDocument$1(scssDocumentSelector, document)) { + if (!scssLs) { + scssLs = css.getSCSSLanguageService({ + fileSystemProvider, + clientCapabilities: context.env.clientCapabilities, + useDefaultDataProvider, + customDataProviders: customData, + }); + scssLs.setDataProviders(useDefaultDataProvider, customData); + } + return scssLs; + } + else if (matchDocument$1(lessDocumentSelector, document)) { + if (!lessLs) { + lessLs = css.getLESSLanguageService({ + fileSystemProvider, + clientCapabilities: context.env.clientCapabilities, + useDefaultDataProvider, + customDataProviders: customData, + }); + lessLs.setDataProviders(useDefaultDataProvider, customData); + } + return lessLs; + } + } + async function worker(document, callback) { + const cssLs = getCssLs(document); + if (!cssLs) { + return; + } + await (initializing ??= initialize()); + return callback(getStylesheet(document, cssLs), cssLs); + } + function getStylesheet(document, ls) { + const cache = stylesheets.get(document); + if (cache) { + const [cacheVersion, cacheStylesheet] = cache; + if (cacheVersion === document.version) { + return cacheStylesheet; + } + } + const stylesheet = ls.parseStylesheet(document); + stylesheets.set(document, [document.version, stylesheet]); + return stylesheet; + } + async function initialize() { + customData = await getCustomData(context); + cssLs?.setDataProviders(useDefaultDataProvider, customData); + scssLs?.setDataProviders(useDefaultDataProvider, customData); + lessLs?.setDataProviders(useDefaultDataProvider, customData); + } + }, + }; +} +function matchDocument$1(selector, document) { + for (const sel of selector) { + if (sel === document.languageId || (typeof sel === 'object' && sel.language === document.languageId)) { + return true; + } + } + return false; +} + +Object.defineProperty(css$1, "__esModule", { value: true }); +css$1.create = create$c; +const volar_service_css_1 = volarServiceCss; +function create$c() { + const base = (0, volar_service_css_1.create)({ scssDocumentSelector: ['scss', 'postcss'] }); + return { + ...base, + create(context) { + const baseInstance = base.create(context); + return { + ...baseInstance, + async provideDiagnostics(document, token) { + let diagnostics = await baseInstance.provideDiagnostics?.(document, token) ?? []; + if (document.languageId === 'postcss') { + diagnostics = diagnostics.filter(diag => diag.code !== 'css-semicolonexpected'); + diagnostics = diagnostics.filter(diag => diag.code !== 'css-ruleorselectorexpected'); + diagnostics = diagnostics.filter(diag => diag.code !== 'unknownAtRules'); + } + return diagnostics; + }, + }; + }, + }; +} + +var vueAutoinsertDotvalue = {}; + +Object.defineProperty(vueAutoinsertDotvalue, "__esModule", { value: true }); +vueAutoinsertDotvalue.create = create$b; +vueAutoinsertDotvalue.isCharacterTyping = isCharacterTyping; +vueAutoinsertDotvalue.isBlacklistNode = isBlacklistNode; +const language_core_1$8 = languageCore; +const vscode_uri_1$8 = umdExports; +const asts = new WeakMap(); +function getAst(ts, fileName, snapshot, scriptKind) { + let ast = asts.get(snapshot); + if (!ast) { + ast = ts.createSourceFile(fileName, snapshot.getText(0, snapshot.getLength()), ts.ScriptTarget.Latest, undefined, scriptKind); + asts.set(snapshot, ast); + } + return ast; +} +function create$b(ts, getTsPluginClient) { + return { + name: 'vue-autoinsert-dotvalue', + capabilities: { + autoInsertionProvider: { + triggerCharacters: ['\\w'], + configurationSections: ['vue.autoInsert.dotValue'], + }, + }, + create(context) { + const tsPluginClient = getTsPluginClient?.(context); + let currentReq = 0; + return { + async provideAutoInsertSnippet(document, selection, change) { + // selection must at end of change + if (document.offsetAt(selection) !== change.rangeOffset + change.text.length) { + return; + } + if (!isTsDocument(document)) { + return; + } + if (!isCharacterTyping(document, change)) { + return; + } + const req = ++currentReq; + // Wait for tsserver to sync + await sleep(250); + if (req !== currentReq) { + return; + } + const enabled = await context.env.getConfiguration?.('vue.autoInsert.dotValue') ?? true; + if (!enabled) { + return; + } + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$8.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!sourceScript) { + return; + } + let ast; + let sourceCodeOffset = document.offsetAt(selection); + const fileName = context.project.typescript?.uriConverter.asFileName(sourceScript.id) + ?? sourceScript.id.fsPath.replace(/\\/g, '/'); + if (sourceScript.generated) { + const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root); + if (!serviceScript || serviceScript?.code !== virtualCode) { + return; + } + ast = getAst(ts, fileName, virtualCode.snapshot, serviceScript.scriptKind); + let mapped = false; + for (const [_sourceScript, map] of context.language.maps.forEach(virtualCode)) { + for (const [sourceOffset] of map.toSourceLocation(document.offsetAt(selection))) { + sourceCodeOffset = sourceOffset; + mapped = true; + break; + } + if (mapped) { + break; + } + } + if (!mapped) { + return; + } + } + else { + ast = getAst(ts, fileName, sourceScript.snapshot); + } + if (isBlacklistNode(ts, ast, document.offsetAt(selection), false)) { + return; + } + const props = await tsPluginClient?.getPropertiesAtLocation(fileName, sourceCodeOffset) ?? []; + if (props.some(prop => prop === 'value')) { + return '${1:.value}'; + } + }, + }; + }, + }; +} +function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} +function isTsDocument(document) { + return document.languageId === 'javascript' || + document.languageId === 'typescript' || + document.languageId === 'javascriptreact' || + document.languageId === 'typescriptreact'; +} +const charReg = /\w/; +function isCharacterTyping(document, change) { + const lastCharacter = change.text[change.text.length - 1]; + const nextCharacter = document.getText().substring(change.rangeOffset + change.text.length, change.rangeOffset + change.text.length + 1); + if (lastCharacter === undefined) { // delete text + return false; + } + if (change.text.indexOf('\n') >= 0) { // multi-line change + return false; + } + return charReg.test(lastCharacter) && !charReg.test(nextCharacter); +} +function isBlacklistNode(ts, node, pos, allowAccessDotValue) { + if (ts.isVariableDeclaration(node) && pos >= node.name.getFullStart() && pos <= node.name.getEnd()) { + return true; + } + else if (ts.isFunctionDeclaration(node) && node.name && pos >= node.name.getFullStart() && pos <= node.name.getEnd()) { + return true; + } + else if (ts.isParameter(node) && pos >= node.name.getFullStart() && pos <= node.name.getEnd()) { + return true; + } + else if (ts.isPropertyAssignment(node) && pos >= node.name.getFullStart() && pos <= node.name.getEnd()) { + return true; + } + else if (ts.isShorthandPropertyAssignment(node)) { + return true; + } + else if (ts.isImportDeclaration(node)) { + return true; + } + else if (ts.isLiteralTypeNode(node)) { + return true; + } + else if (ts.isTypeReferenceNode(node)) { + return true; + } + else if (!allowAccessDotValue && ts.isPropertyAccessExpression(node) && node.expression.end === pos && node.name.text === 'value') { + return true; + } + else if (ts.isCallExpression(node) + && ts.isIdentifier(node.expression) + && isWatchOrUseFunction(node.expression.text) + && isTopLevelArgOrArrayTopLevelItemItem(node)) { + return true; + } + else { + let _isBlacklistNode = false; + node.forEachChild(node => { + if (_isBlacklistNode) { + return; + } + if (pos >= node.getFullStart() && pos <= node.getEnd()) { + if (isBlacklistNode(ts, node, pos, allowAccessDotValue)) { + _isBlacklistNode = true; + } + } + }); + return _isBlacklistNode; + } + function isWatchOrUseFunction(fnName) { + return fnName === 'watch' + || fnName === 'unref' + || fnName === 'triggerRef' + || fnName === 'isRef' + || (0, language_core_1$8.hyphenateAttr)(fnName).startsWith('use-'); + } + function isTopLevelArgOrArrayTopLevelItemItem(node) { + for (const arg of node.arguments) { + if (pos >= arg.getFullStart() && pos <= arg.getEnd()) { + if (ts.isIdentifier(arg)) { + return true; + } + if (ts.isArrayLiteralExpression(arg)) { + for (const el of arg.elements) { + if (pos >= el.getFullStart() && pos <= el.getEnd()) { + return ts.isIdentifier(el); + } + } + } + return false; + } + } + } +} + +var vueAutoinsertSpace = {}; + +Object.defineProperty(vueAutoinsertSpace, "__esModule", { value: true }); +vueAutoinsertSpace.create = create$a; +function create$a() { + return { + name: 'vue-autoinsert-space', + capabilities: { + autoInsertionProvider: { + triggerCharacters: ['}'], + configurationSections: ['vue.autoInsert.bracketSpacing'], + }, + }, + create(context) { + return { + async provideAutoInsertSnippet(document, selection, change) { + if (document.languageId === 'html' || document.languageId === 'jade') { + const enabled = await context.env.getConfiguration?.('vue.autoInsert.bracketSpacing') ?? true; + if (!enabled) { + return; + } + if (change.text === '{}' + && document.getText().substring(change.rangeOffset - 1, change.rangeOffset + 3) === '{{}}' + && document.offsetAt(selection) === change.rangeOffset + 1) { + return ` $0 `; + } + } + }, + }; + }, + }; +} + +var vueDirectiveComments = {}; + +Object.defineProperty(vueDirectiveComments, "__esModule", { value: true }); +vueDirectiveComments.create = create$9; +const cmds = [ + 'vue-ignore', + 'vue-skip', + 'vue-expect-error', +]; +const directiveCommentReg = /<!--\s*@/; +function create$9() { + return { + name: 'vue-directive-comments', + capabilities: { + completionProvider: { + triggerCharacters: ['@'], + }, + }, + create() { + return { + provideCompletionItems(document, position) { + if (document.languageId !== 'html') { + return; + } + const line = document.getText({ start: { line: position.line, character: 0 }, end: position }); + const cmdStart = line.match(directiveCommentReg); + if (!cmdStart) { + return; + } + const startIndex = cmdStart.index + cmdStart[0].length; + const remainText = line.substring(startIndex); + const result = []; + for (const cmd of cmds) { + let match = true; + for (let i = 0; i < remainText.length; i++) { + if (remainText[i] !== cmd[i]) { + match = false; + break; + } + } + if (match) { + result.push({ + label: '@' + cmd, + textEdit: { + range: { + start: { + line: position.line, + character: startIndex - 1, + }, + end: position, + }, + newText: '@' + cmd, + }, + }); + } + } + return { + isIncomplete: false, + items: result, + }; + }, + }; + }, + }; +} + +var vueDocumentDrop = {}; + +var vueExtractFile = {}; + +Object.defineProperty(vueExtractFile, "__esModule", { value: true }); +vueExtractFile.create = create$8; +vueExtractFile.getLastImportNode = getLastImportNode; +vueExtractFile.createAddComponentToOptionEdit = createAddComponentToOptionEdit; +const language_core_1$7 = languageCore; +const vscode_uri_1$7 = umdExports; +const unicodeReg = /\\u/g; +function create$8(ts, getTsPluginClient) { + return { + name: 'vue-extract-file', + capabilities: { + codeActionProvider: { + resolveProvider: true, + }, + }, + create(context) { + const tsPluginClient = getTsPluginClient?.(context); + return { + provideCodeActions(document, range, _context) { + const startOffset = document.offsetAt(range.start); + const endOffset = document.offsetAt(range.end); + if (startOffset === endOffset) { + return; + } + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$7.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!(sourceScript?.generated?.root instanceof language_core_1$7.VueVirtualCode) || virtualCode?.id !== 'template') { + return; + } + const { sfc } = sourceScript.generated.root; + const script = sfc.scriptSetup ?? sfc.script; + if (!sfc.template || !script) { + return; + } + const templateCodeRange = selectTemplateCode(startOffset, endOffset, sfc.template); + if (!templateCodeRange) { + return; + } + return [ + { + title: 'Extract into new dumb component', + kind: 'refactor.move.newFile.dumb', + data: { + uri: document.uri, + range: [startOffset, endOffset], + newName: 'NewComponent', + }, + }, + ]; + }, + async resolveCodeAction(codeAction) { + const { uri, range, newName } = codeAction.data; + const [startOffset, endOffset] = range; + const parsedUri = vscode_uri_1$7.URI.parse(uri); + const decoded = context.decodeEmbeddedDocumentUri(parsedUri); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!(sourceScript?.generated?.root instanceof language_core_1$7.VueVirtualCode) || virtualCode?.id !== 'template') { + return codeAction; + } + const document = context.documents.get(parsedUri, virtualCode.languageId, virtualCode.snapshot); + const sfcDocument = context.documents.get(sourceScript.id, sourceScript.languageId, sourceScript.snapshot); + const { sfc } = sourceScript.generated.root; + const script = sfc.scriptSetup ?? sfc.script; + if (!sfc.template || !script) { + return codeAction; + } + const templateCodeRange = selectTemplateCode(startOffset, endOffset, sfc.template); + if (!templateCodeRange) { + return codeAction; + } + const toExtract = await tsPluginClient?.collectExtractProps(sourceScript.generated.root.fileName, templateCodeRange) ?? []; + if (!toExtract) { + return codeAction; + } + const templateInitialIndent = await context.env.getConfiguration('vue.format.template.initialIndent') ?? true; + const scriptInitialIndent = await context.env.getConfiguration('vue.format.script.initialIndent') ?? false; + const newUri = sfcDocument.uri.substring(0, sfcDocument.uri.lastIndexOf('/') + 1) + `${newName}.vue`; + const lastImportNode = getLastImportNode(ts, script.ast); + let newFileTags = []; + newFileTags.push(constructTag('template', [], templateInitialIndent, sfc.template.content.substring(templateCodeRange[0], templateCodeRange[1]))); + if (toExtract.length) { + newFileTags.push(constructTag('script', ['setup', 'lang="ts"'], scriptInitialIndent, generateNewScriptContents())); + } + if (sfc.template.startTagEnd > script.startTagEnd) { + newFileTags = newFileTags.reverse(); + } + const templateEdits = [ + { + range: { + start: document.positionAt(templateCodeRange[0]), + end: document.positionAt(templateCodeRange[1]), + }, + newText: generateReplaceTemplate(), + }, + ]; + const sfcEdits = [ + { + range: lastImportNode ? { + start: sfcDocument.positionAt(script.startTagEnd + lastImportNode.end), + end: sfcDocument.positionAt(script.startTagEnd + lastImportNode.end), + } : { + start: sfcDocument.positionAt(script.startTagEnd), + end: sfcDocument.positionAt(script.startTagEnd), + }, + newText: `\nimport ${newName} from './${newName}.vue'`, + }, + ]; + if (sfc.script) { + const edit = createAddComponentToOptionEdit(ts, sfc.script.ast, newName); + if (edit) { + sfcEdits.push({ + range: { + start: sfcDocument.positionAt(sfc.script.startTagEnd + edit.range.start), + end: sfcDocument.positionAt(sfc.script.startTagEnd + edit.range.end), + }, + newText: edit.newText, + }); + } + } + return { + ...codeAction, + edit: { + documentChanges: [ + // editing template virtual document + { + textDocument: { + uri: document.uri, + version: null, + }, + edits: templateEdits, + }, + // editing vue sfc + { + textDocument: { + uri: sourceScript.id.toString(), + version: null, + }, + edits: sfcEdits, + }, + // creating new file with content + { + uri: newUri, + kind: 'create', + }, + { + textDocument: { + uri: newUri, + version: null, + }, + edits: [ + { + range: { + start: { line: 0, character: 0 }, + end: { line: 0, character: 0 }, + }, + newText: newFileTags.join('\n'), + }, + ], + }, + ], + }, + }; + function generateNewScriptContents() { + const lines = []; + const props = toExtract.filter(p => !p.model); + const models = toExtract.filter(p => p.model); + if (props.length) { + lines.push(`defineProps<{ \n\t${props.map(p => `${p.name}: ${p.type};`).join('\n\t')}\n}>()`); + } + for (const model of models) { + lines.push(`const ${model.name} = defineModel<${model.type}>('${model.name}', { required: true })`); + } + return lines.join('\n'); + } + function generateReplaceTemplate() { + const props = toExtract.filter(p => !p.model); + const models = toExtract.filter(p => p.model); + return [ + `<${newName}`, + ...props.map(p => `:${p.name}="${p.name}"`), + ...models.map(p => `v-model:${p.name}="${p.name}"`), + `/>`, + ].join(' '); + } + }, + }; + }, + }; +} +function selectTemplateCode(startOffset, endOffset, templateBlock) { + const insideNodes = []; + templateBlock.ast?.children.forEach(function visit(node) { + if (node.loc.start.offset >= startOffset + && node.loc.end.offset <= endOffset) { + insideNodes.push(node); + } + if ('children' in node) { + node.children.forEach(node => { + if (typeof node === 'object') { + visit(node); + } + }); + } + else if ('branches' in node) { + node.branches.forEach(visit); + } + else if ('content' in node) { + if (typeof node.content === 'object') { + visit(node.content); + } + } + }); + if (insideNodes.length) { + const first = insideNodes.sort((a, b) => a.loc.start.offset - b.loc.start.offset)[0]; + const last = insideNodes.sort((a, b) => b.loc.end.offset - a.loc.end.offset)[0]; + return [first.loc.start.offset, last.loc.end.offset]; + } +} +function constructTag(name, attributes, initialIndent, content) { + if (initialIndent) { + content = content.split('\n').map(line => `\t${line}`).join('\n'); + } + const attributesString = attributes.length ? ` ${attributes.join(' ')}` : ''; + return `<${name}${attributesString}>\n${content}\n</${name}>\n`; +} +function getLastImportNode(ts, sourceFile) { + let lastImportNode; + for (const statement of sourceFile.statements) { + if (ts.isImportDeclaration(statement)) { + lastImportNode = statement; + } + else { + break; + } + } + return lastImportNode; +} +function createAddComponentToOptionEdit(ts, ast, componentName) { + const exportDefault = language_core_1$7.scriptRanges.parseScriptRanges(ts, ast, false, true).exportDefault; + if (!exportDefault) { + return; + } + // https://github.com/microsoft/TypeScript/issues/36174 + const printer = ts.createPrinter(); + if (exportDefault.componentsOption && exportDefault.componentsOptionNode) { + const newNode = { + ...exportDefault.componentsOptionNode, + properties: [ + ...exportDefault.componentsOptionNode.properties, + ts.factory.createShorthandPropertyAssignment(componentName), + ], + }; + const printText = printer.printNode(ts.EmitHint.Expression, newNode, ast); + return { + range: exportDefault.componentsOption, + newText: unescape(printText.replace(unicodeReg, '%u')), + }; + } + else if (exportDefault.args && exportDefault.argsNode) { + const newNode = { + ...exportDefault.argsNode, + properties: [ + ...exportDefault.argsNode.properties, + ts.factory.createShorthandPropertyAssignment(`components: { ${componentName} }`), + ], + }; + const printText = printer.printNode(ts.EmitHint.Expression, newNode, ast); + return { + range: exportDefault.args, + newText: unescape(printText.replace(unicodeReg, '%u')), + }; + } +} + +Object.defineProperty(vueDocumentDrop, "__esModule", { value: true }); +vueDocumentDrop.create = create$7; +const language_core_1$6 = languageCore; +const shared_1$3 = require$$1$1; +const path_browserify_1 = pathBrowserify; +const getUserPreferences_1 = getUserPreferences$1; +const vscode_uri_1$6 = umdExports; +const vue_extract_file_1 = vueExtractFile; +const types_1$1 = types; +function create$7(ts, getTsPluginClient) { + return { + name: 'vue-document-drop', + capabilities: { + documentDropEditsProvider: true, + }, + create(context) { + if (!context.project.vue) { + return {}; + } + let casing = types_1$1.TagNameCasing.Pascal; // TODO + const tsPluginClient = getTsPluginClient?.(context); + const vueCompilerOptions = context.project.vue.compilerOptions; + return { + async provideDocumentDropEdits(document, _position, dataTransfer) { + if (document.languageId !== 'html') { + return; + } + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$6.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + const vueVirtualCode = sourceScript?.generated?.root; + if (!sourceScript || !virtualCode || !(vueVirtualCode instanceof language_core_1$6.VueVirtualCode)) { + return; + } + let importUri; + for (const [mimeType, item] of dataTransfer) { + if (mimeType === 'text/uri-list') { + importUri = item.value; + } + } + if (!importUri || !vueCompilerOptions.extensions.some(ext => importUri.endsWith(ext))) { + return; + } + let baseName = importUri.substring(importUri.lastIndexOf('/') + 1); + baseName = baseName.substring(0, baseName.lastIndexOf('.')); + const newName = (0, shared_1$3.capitalize)((0, shared_1$3.camelize)(baseName)); + const { sfc } = vueVirtualCode; + const script = sfc.scriptSetup ?? sfc.script; + if (!script) { + return; + } + const additionalEdit = {}; + const code = [...(0, language_core_1$6.forEachEmbeddedCode)(vueVirtualCode)].find(code => code.id === (sfc.scriptSetup ? 'scriptsetup_raw' : 'script_raw')); + const lastImportNode = (0, vue_extract_file_1.getLastImportNode)(ts, script.ast); + const incomingFileName = context.project.typescript?.uriConverter.asFileName(vscode_uri_1$6.URI.parse(importUri)) + ?? vscode_uri_1$6.URI.parse(importUri).fsPath.replace(/\\/g, '/'); + let importPath; + const serviceScript = sourceScript.generated?.languagePlugin.typescript?.getServiceScript(vueVirtualCode); + if (tsPluginClient && serviceScript) { + const tsDocumentUri = context.encodeEmbeddedDocumentUri(sourceScript.id, serviceScript.code.id); + const tsDocument = context.documents.get(tsDocumentUri, serviceScript.code.languageId, serviceScript.code.snapshot); + const preferences = await (0, getUserPreferences_1.getUserPreferences)(context, tsDocument); + const importPathRequest = await tsPluginClient.getImportPathForFile(vueVirtualCode.fileName, incomingFileName, preferences); + if (importPathRequest) { + importPath = importPathRequest; + } + } + if (!importPath) { + importPath = path_browserify_1.posix.relative(path_browserify_1.posix.dirname(vueVirtualCode.fileName), incomingFileName) + || importUri.substring(importUri.lastIndexOf('/') + 1); + if (!importPath.startsWith('./') && !importPath.startsWith('../')) { + importPath = './' + importPath; + } + } + const embeddedDocumentUriStr = context.encodeEmbeddedDocumentUri(sourceScript.id, code.id).toString(); + additionalEdit.changes ??= {}; + additionalEdit.changes[embeddedDocumentUriStr] = []; + additionalEdit.changes[embeddedDocumentUriStr].push({ + range: lastImportNode ? { + start: script.ast.getLineAndCharacterOfPosition(lastImportNode.end), + end: script.ast.getLineAndCharacterOfPosition(lastImportNode.end), + } : { + start: script.ast.getLineAndCharacterOfPosition(0), + end: script.ast.getLineAndCharacterOfPosition(0), + }, + newText: `\nimport ${newName} from '${importPath}'` + + (lastImportNode ? '' : '\n'), + }); + if (sfc.script) { + const edit = (0, vue_extract_file_1.createAddComponentToOptionEdit)(ts, sfc.script.ast, newName); + if (edit) { + additionalEdit.changes[embeddedDocumentUriStr].push({ + range: { + start: document.positionAt(edit.range.start), + end: document.positionAt(edit.range.end), + }, + newText: edit.newText, + }); + } + } + return { + insertText: `<${casing === types_1$1.TagNameCasing.Kebab ? (0, shared_1$3.hyphenate)(newName) : newName}$0 />`, + insertTextFormat: 2, + additionalEdit, + }; + }, + }; + }, + }; +} + +var vueDocumentLinks = {}; + +Object.defineProperty(vueDocumentLinks, "__esModule", { value: true }); +vueDocumentLinks.create = create$6; +const language_core_1$5 = languageCore; +const vscode_uri_1$5 = umdExports; +function create$6() { + return { + name: 'vue-document-links', + capabilities: { + documentLinkProvider: {}, + }, + create(context) { + return { + provideDocumentLinks(document) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$5.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (sourceScript?.generated?.root instanceof language_core_1$5.VueVirtualCode && virtualCode?.id === 'template') { + const result = []; + const codegen = language_core_1$5.tsCodegen.get(sourceScript.generated.root.sfc); + const scopedClasses = codegen?.generatedTemplate()?.scopedClasses ?? []; + const styleClasses = new Map(); + const option = sourceScript.generated.root.vueCompilerOptions.experimentalResolveStyleCssClasses; + for (let i = 0; i < sourceScript.generated.root.sfc.styles.length; i++) { + const style = sourceScript.generated.root.sfc.styles[i]; + if (option === 'always' || (option === 'scoped' && style.scoped)) { + for (const className of style.classNames) { + if (!styleClasses.has(className.text.substring(1))) { + styleClasses.set(className.text.substring(1), []); + } + styleClasses.get(className.text.substring(1)).push({ + index: i, + style, + classOffset: className.offset, + }); + } + } + } + for (const { className, offset } of scopedClasses) { + const styles = styleClasses.get(className); + if (styles) { + for (const style of styles) { + const styleDocumentUri = context.encodeEmbeddedDocumentUri(decoded[0], 'style_' + style.index); + const styleVirtualCode = sourceScript.generated.embeddedCodes.get('style_' + style.index); + if (!styleVirtualCode) { + continue; + } + const styleDocument = context.documents.get(styleDocumentUri, styleVirtualCode.languageId, styleVirtualCode.snapshot); + const start = styleDocument.positionAt(style.classOffset); + const end = styleDocument.positionAt(style.classOffset + className.length + 1); + result.push({ + range: { + start: document.positionAt(offset), + end: document.positionAt(offset + className.length), + }, + target: context.encodeEmbeddedDocumentUri(decoded[0], 'style_' + style.index) + `#L${start.line + 1},${start.character + 1}-L${end.line + 1},${end.character + 1}`, + }); + } + } + } + return result; + } + }, + }; + }, + }; +} + +var vueSfc = {}; + +var volarServiceHtml = {}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var TokenType; +(function (TokenType) { + TokenType[TokenType["StartCommentTag"] = 0] = "StartCommentTag"; + TokenType[TokenType["Comment"] = 1] = "Comment"; + TokenType[TokenType["EndCommentTag"] = 2] = "EndCommentTag"; + TokenType[TokenType["StartTagOpen"] = 3] = "StartTagOpen"; + TokenType[TokenType["StartTagClose"] = 4] = "StartTagClose"; + TokenType[TokenType["StartTagSelfClose"] = 5] = "StartTagSelfClose"; + TokenType[TokenType["StartTag"] = 6] = "StartTag"; + TokenType[TokenType["EndTagOpen"] = 7] = "EndTagOpen"; + TokenType[TokenType["EndTagClose"] = 8] = "EndTagClose"; + TokenType[TokenType["EndTag"] = 9] = "EndTag"; + TokenType[TokenType["DelimiterAssign"] = 10] = "DelimiterAssign"; + TokenType[TokenType["AttributeName"] = 11] = "AttributeName"; + TokenType[TokenType["AttributeValue"] = 12] = "AttributeValue"; + TokenType[TokenType["StartDoctypeTag"] = 13] = "StartDoctypeTag"; + TokenType[TokenType["Doctype"] = 14] = "Doctype"; + TokenType[TokenType["EndDoctypeTag"] = 15] = "EndDoctypeTag"; + TokenType[TokenType["Content"] = 16] = "Content"; + TokenType[TokenType["Whitespace"] = 17] = "Whitespace"; + TokenType[TokenType["Unknown"] = 18] = "Unknown"; + TokenType[TokenType["Script"] = 19] = "Script"; + TokenType[TokenType["Styles"] = 20] = "Styles"; + TokenType[TokenType["EOS"] = 21] = "EOS"; +})(TokenType || (TokenType = {})); +var ScannerState; +(function (ScannerState) { + ScannerState[ScannerState["WithinContent"] = 0] = "WithinContent"; + ScannerState[ScannerState["AfterOpeningStartTag"] = 1] = "AfterOpeningStartTag"; + ScannerState[ScannerState["AfterOpeningEndTag"] = 2] = "AfterOpeningEndTag"; + ScannerState[ScannerState["WithinDoctype"] = 3] = "WithinDoctype"; + ScannerState[ScannerState["WithinTag"] = 4] = "WithinTag"; + ScannerState[ScannerState["WithinEndTag"] = 5] = "WithinEndTag"; + ScannerState[ScannerState["WithinComment"] = 6] = "WithinComment"; + ScannerState[ScannerState["WithinScriptContent"] = 7] = "WithinScriptContent"; + ScannerState[ScannerState["WithinStyleContent"] = 8] = "WithinStyleContent"; + ScannerState[ScannerState["AfterAttributeName"] = 9] = "AfterAttributeName"; + ScannerState[ScannerState["BeforeAttributeValue"] = 10] = "BeforeAttributeValue"; +})(ScannerState || (ScannerState = {})); +var ClientCapabilities; +(function (ClientCapabilities) { + ClientCapabilities.LATEST = { + textDocument: { + completion: { + completionItem: { + documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + }, + hover: { + contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + } + }; +})(ClientCapabilities || (ClientCapabilities = {})); +var FileType; +(function (FileType) { + /** + * The file type is unknown. + */ + FileType[FileType["Unknown"] = 0] = "Unknown"; + /** + * A regular file. + */ + FileType[FileType["File"] = 1] = "File"; + /** + * A directory. + */ + FileType[FileType["Directory"] = 2] = "Directory"; + /** + * A symbolic link to a file. + */ + FileType[FileType["SymbolicLink"] = 64] = "SymbolicLink"; +})(FileType || (FileType = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class MultiLineStream { + constructor(source, position) { + this.source = source; + this.len = source.length; + this.position = position; + } + eos() { + return this.len <= this.position; + } + getSource() { + return this.source; + } + pos() { + return this.position; + } + goBackTo(pos) { + this.position = pos; + } + goBack(n) { + this.position -= n; + } + advance(n) { + this.position += n; + } + goToEnd() { + this.position = this.source.length; + } + nextChar() { + return this.source.charCodeAt(this.position++) || 0; + } + peekChar(n = 0) { + return this.source.charCodeAt(this.position + n) || 0; + } + advanceIfChar(ch) { + if (ch === this.source.charCodeAt(this.position)) { + this.position++; + return true; + } + return false; + } + advanceIfChars(ch) { + let i; + if (this.position + ch.length > this.source.length) { + return false; + } + for (i = 0; i < ch.length; i++) { + if (this.source.charCodeAt(this.position + i) !== ch[i]) { + return false; + } + } + this.advance(i); + return true; + } + advanceIfRegExp(regex) { + const str = this.source.substr(this.position); + const match = str.match(regex); + if (match) { + this.position = this.position + match.index + match[0].length; + return match[0]; + } + return ''; + } + advanceUntilRegExp(regex) { + const str = this.source.substr(this.position); + const match = str.match(regex); + if (match) { + this.position = this.position + match.index; + return match[0]; + } + else { + this.goToEnd(); + } + return ''; + } + advanceUntilChar(ch) { + while (this.position < this.source.length) { + if (this.source.charCodeAt(this.position) === ch) { + return true; + } + this.advance(1); + } + return false; + } + advanceUntilChars(ch) { + while (this.position + ch.length <= this.source.length) { + let i = 0; + for (; i < ch.length && this.source.charCodeAt(this.position + i) === ch[i]; i++) { + } + if (i === ch.length) { + return true; + } + this.advance(1); + } + this.goToEnd(); + return false; + } + skipWhitespace() { + const n = this.advanceWhileChar(ch => { + return ch === _WSP || ch === _TAB || ch === _NWL || ch === _LFD || ch === _CAR; + }); + return n > 0; + } + advanceWhileChar(condition) { + const posNow = this.position; + while (this.position < this.len && condition(this.source.charCodeAt(this.position))) { + this.position++; + } + return this.position - posNow; + } +} +const _BNG = '!'.charCodeAt(0); +const _MIN = '-'.charCodeAt(0); +const _LAN = '<'.charCodeAt(0); +const _RAN = '>'.charCodeAt(0); +const _FSL = '/'.charCodeAt(0); +const _EQS = '='.charCodeAt(0); +const _DQO = '"'.charCodeAt(0); +const _SQO = '\''.charCodeAt(0); +const _NWL = '\n'.charCodeAt(0); +const _CAR = '\r'.charCodeAt(0); +const _LFD = '\f'.charCodeAt(0); +const _WSP = ' '.charCodeAt(0); +const _TAB = '\t'.charCodeAt(0); +const htmlScriptContents = { + 'text/x-handlebars-template': true, + // Fix for https://github.com/microsoft/vscode/issues/77977 + 'text/html': true, +}; +function createScanner(input, initialOffset = 0, initialState = ScannerState.WithinContent, emitPseudoCloseTags = false) { + const stream = new MultiLineStream(input, initialOffset); + let state = initialState; + let tokenOffset = 0; + let tokenType = TokenType.Unknown; + let tokenError; + let hasSpaceAfterTag; + let lastTag; + let lastAttributeName; + let lastTypeValue; + function nextElementName() { + return stream.advanceIfRegExp(/^[_:\w][_:\w-.\d]*/).toLowerCase(); + } + function nextAttributeName() { + return stream.advanceIfRegExp(/^[^\s"'></=\x00-\x0F\x7F\x80-\x9F]*/).toLowerCase(); + } + function finishToken(offset, type, errorMessage) { + tokenType = type; + tokenOffset = offset; + tokenError = errorMessage; + return type; + } + function scan() { + const offset = stream.pos(); + const oldState = state; + const token = internalScan(); + if (token !== TokenType.EOS && offset === stream.pos() && !(emitPseudoCloseTags && (token === TokenType.StartTagClose || token === TokenType.EndTagClose))) { + console.warn('Scanner.scan has not advanced at offset ' + offset + ', state before: ' + oldState + ' after: ' + state); + stream.advance(1); + return finishToken(offset, TokenType.Unknown); + } + return token; + } + function internalScan() { + const offset = stream.pos(); + if (stream.eos()) { + return finishToken(offset, TokenType.EOS); + } + let errorMessage; + switch (state) { + case ScannerState.WithinComment: + if (stream.advanceIfChars([_MIN, _MIN, _RAN])) { // --> + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.EndCommentTag); + } + stream.advanceUntilChars([_MIN, _MIN, _RAN]); // --> + return finishToken(offset, TokenType.Comment); + case ScannerState.WithinDoctype: + if (stream.advanceIfChar(_RAN)) { + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.EndDoctypeTag); + } + stream.advanceUntilChar(_RAN); // > + return finishToken(offset, TokenType.Doctype); + case ScannerState.WithinContent: + if (stream.advanceIfChar(_LAN)) { // < + if (!stream.eos() && stream.peekChar() === _BNG) { // ! + if (stream.advanceIfChars([_BNG, _MIN, _MIN])) { // <!-- + state = ScannerState.WithinComment; + return finishToken(offset, TokenType.StartCommentTag); + } + if (stream.advanceIfRegExp(/^!doctype/i)) { + state = ScannerState.WithinDoctype; + return finishToken(offset, TokenType.StartDoctypeTag); + } + } + if (stream.advanceIfChar(_FSL)) { // / + state = ScannerState.AfterOpeningEndTag; + return finishToken(offset, TokenType.EndTagOpen); + } + state = ScannerState.AfterOpeningStartTag; + return finishToken(offset, TokenType.StartTagOpen); + } + stream.advanceUntilChar(_LAN); + return finishToken(offset, TokenType.Content); + case ScannerState.AfterOpeningEndTag: + const tagName = nextElementName(); + if (tagName.length > 0) { + state = ScannerState.WithinEndTag; + return finishToken(offset, TokenType.EndTag); + } + if (stream.skipWhitespace()) { // white space is not valid here + return finishToken(offset, TokenType.Whitespace, t$2('Tag name must directly follow the open bracket.')); + } + state = ScannerState.WithinEndTag; + stream.advanceUntilChar(_RAN); + if (offset < stream.pos()) { + return finishToken(offset, TokenType.Unknown, t$2('End tag name expected.')); + } + return internalScan(); + case ScannerState.WithinEndTag: + if (stream.skipWhitespace()) { // white space is valid here + return finishToken(offset, TokenType.Whitespace); + } + if (stream.advanceIfChar(_RAN)) { // > + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.EndTagClose); + } + if (emitPseudoCloseTags && stream.peekChar() === _LAN) { // < + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.EndTagClose, t$2('Closing bracket missing.')); + } + errorMessage = t$2('Closing bracket expected.'); + break; + case ScannerState.AfterOpeningStartTag: + lastTag = nextElementName(); + lastTypeValue = void 0; + lastAttributeName = void 0; + if (lastTag.length > 0) { + hasSpaceAfterTag = false; + state = ScannerState.WithinTag; + return finishToken(offset, TokenType.StartTag); + } + if (stream.skipWhitespace()) { // white space is not valid here + return finishToken(offset, TokenType.Whitespace, t$2('Tag name must directly follow the open bracket.')); + } + state = ScannerState.WithinTag; + stream.advanceUntilChar(_RAN); + if (offset < stream.pos()) { + return finishToken(offset, TokenType.Unknown, t$2('Start tag name expected.')); + } + return internalScan(); + case ScannerState.WithinTag: + if (stream.skipWhitespace()) { + hasSpaceAfterTag = true; // remember that we have seen a whitespace + return finishToken(offset, TokenType.Whitespace); + } + if (hasSpaceAfterTag) { + lastAttributeName = nextAttributeName(); + if (lastAttributeName.length > 0) { + state = ScannerState.AfterAttributeName; + hasSpaceAfterTag = false; + return finishToken(offset, TokenType.AttributeName); + } + } + if (stream.advanceIfChars([_FSL, _RAN])) { // /> + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.StartTagSelfClose); + } + if (stream.advanceIfChar(_RAN)) { // > + if (lastTag === 'script') { + if (lastTypeValue && htmlScriptContents[lastTypeValue]) { + // stay in html + state = ScannerState.WithinContent; + } + else { + state = ScannerState.WithinScriptContent; + } + } + else if (lastTag === 'style') { + state = ScannerState.WithinStyleContent; + } + else { + state = ScannerState.WithinContent; + } + return finishToken(offset, TokenType.StartTagClose); + } + if (emitPseudoCloseTags && stream.peekChar() === _LAN) { // < + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.StartTagClose, t$2('Closing bracket missing.')); + } + stream.advance(1); + return finishToken(offset, TokenType.Unknown, t$2('Unexpected character in tag.')); + case ScannerState.AfterAttributeName: + if (stream.skipWhitespace()) { + hasSpaceAfterTag = true; + return finishToken(offset, TokenType.Whitespace); + } + if (stream.advanceIfChar(_EQS)) { + state = ScannerState.BeforeAttributeValue; + return finishToken(offset, TokenType.DelimiterAssign); + } + state = ScannerState.WithinTag; + return internalScan(); // no advance yet - jump to WithinTag + case ScannerState.BeforeAttributeValue: + if (stream.skipWhitespace()) { + return finishToken(offset, TokenType.Whitespace); + } + let attributeValue = stream.advanceIfRegExp(/^[^\s"'`=<>]+/); + if (attributeValue.length > 0) { + if (stream.peekChar() === _RAN && stream.peekChar(-1) === _FSL) { // <foo bar=http://foo/> + stream.goBack(1); + attributeValue = attributeValue.substring(0, attributeValue.length - 1); + } + if (lastAttributeName === 'type') { + lastTypeValue = attributeValue; + } + if (attributeValue.length > 0) { + state = ScannerState.WithinTag; + hasSpaceAfterTag = false; + return finishToken(offset, TokenType.AttributeValue); + } + } + const ch = stream.peekChar(); + if (ch === _SQO || ch === _DQO) { + stream.advance(1); // consume quote + if (stream.advanceUntilChar(ch)) { + stream.advance(1); // consume quote + } + if (lastAttributeName === 'type') { + lastTypeValue = stream.getSource().substring(offset + 1, stream.pos() - 1); + } + state = ScannerState.WithinTag; + hasSpaceAfterTag = false; + return finishToken(offset, TokenType.AttributeValue); + } + state = ScannerState.WithinTag; + hasSpaceAfterTag = false; + return internalScan(); // no advance yet - jump to WithinTag + case ScannerState.WithinScriptContent: + // see http://stackoverflow.com/questions/14574471/how-do-browsers-parse-a-script-tag-exactly + let sciptState = 1; + while (!stream.eos()) { + const match = stream.advanceIfRegExp(/<!--|-->|<\/?script\s*\/?>?/i); + if (match.length === 0) { + stream.goToEnd(); + return finishToken(offset, TokenType.Script); + } + else if (match === '<!--') { + if (sciptState === 1) { + sciptState = 2; + } + } + else if (match === '-->') { + sciptState = 1; + } + else if (match[1] !== '/') { // <script + if (sciptState === 2) { + sciptState = 3; + } + } + else { // </script + if (sciptState === 3) { + sciptState = 2; + } + else { + stream.goBack(match.length); // to the beginning of the closing tag + break; + } + } + } + state = ScannerState.WithinContent; + if (offset < stream.pos()) { + return finishToken(offset, TokenType.Script); + } + return internalScan(); // no advance yet - jump to content + case ScannerState.WithinStyleContent: + stream.advanceUntilRegExp(/<\/style/i); + state = ScannerState.WithinContent; + if (offset < stream.pos()) { + return finishToken(offset, TokenType.Styles); + } + return internalScan(); // no advance yet - jump to content + } + stream.advance(1); + state = ScannerState.WithinContent; + return finishToken(offset, TokenType.Unknown, errorMessage); + } + return { + scan, + getTokenType: () => tokenType, + getTokenOffset: () => tokenOffset, + getTokenLength: () => stream.pos() - tokenOffset, + getTokenEnd: () => stream.pos(), + getTokenText: () => stream.getSource().substring(tokenOffset, stream.pos()), + getScannerState: () => state, + getTokenError: () => tokenError + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false + * are located before all elements where p(x) is true. + * @returns the least x for which p(x) is true or array.length if no element fullfills the given function. + */ +function findFirst(array, p) { + let low = 0, high = array.length; + if (high === 0) { + return 0; // no children + } + while (low < high) { + let mid = Math.floor((low + high) / 2); + if (p(array[mid])) { + high = mid; + } + else { + low = mid + 1; + } + } + return low; +} +function binarySearch(array, key, comparator) { + let low = 0, high = array.length - 1; + while (low <= high) { + const mid = ((low + high) / 2) | 0; + const comp = comparator(array[mid], key); + if (comp < 0) { + low = mid + 1; + } + else if (comp > 0) { + high = mid - 1; + } + else { + return mid; + } + } + return -(low + 1); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Node { + get attributeNames() { return this.attributes ? Object.keys(this.attributes) : []; } + constructor(start, end, children, parent) { + this.start = start; + this.end = end; + this.children = children; + this.parent = parent; + this.closed = false; + } + isSameTag(tagInLowerCase) { + if (this.tag === undefined) { + return tagInLowerCase === undefined; + } + else { + return tagInLowerCase !== undefined && this.tag.length === tagInLowerCase.length && this.tag.toLowerCase() === tagInLowerCase; + } + } + get firstChild() { return this.children[0]; } + get lastChild() { return this.children.length ? this.children[this.children.length - 1] : void 0; } + findNodeBefore(offset) { + const idx = findFirst(this.children, c => offset <= c.start) - 1; + if (idx >= 0) { + const child = this.children[idx]; + if (offset > child.start) { + if (offset < child.end) { + return child.findNodeBefore(offset); + } + const lastChild = child.lastChild; + if (lastChild && lastChild.end === child.end) { + return child.findNodeBefore(offset); + } + return child; + } + } + return this; + } + findNodeAt(offset) { + const idx = findFirst(this.children, c => offset <= c.start) - 1; + if (idx >= 0) { + const child = this.children[idx]; + if (offset > child.start && offset <= child.end) { + return child.findNodeAt(offset); + } + } + return this; + } +} +class HTMLParser { + constructor(dataManager) { + this.dataManager = dataManager; + } + parseDocument(document) { + return this.parse(document.getText(), this.dataManager.getVoidElements(document.languageId)); + } + parse(text, voidElements) { + const scanner = createScanner(text, undefined, undefined, true); + const htmlDocument = new Node(0, text.length, [], void 0); + let curr = htmlDocument; + let endTagStart = -1; + let endTagName = undefined; + let pendingAttribute = null; + let token = scanner.scan(); + while (token !== TokenType.EOS) { + switch (token) { + case TokenType.StartTagOpen: + const child = new Node(scanner.getTokenOffset(), text.length, [], curr); + curr.children.push(child); + curr = child; + break; + case TokenType.StartTag: + curr.tag = scanner.getTokenText(); + break; + case TokenType.StartTagClose: + if (curr.parent) { + curr.end = scanner.getTokenEnd(); // might be later set to end tag position + if (scanner.getTokenLength()) { + curr.startTagEnd = scanner.getTokenEnd(); + if (curr.tag && this.dataManager.isVoidElement(curr.tag, voidElements)) { + curr.closed = true; + curr = curr.parent; + } + } + else { + // pseudo close token from an incomplete start tag + curr = curr.parent; + } + } + break; + case TokenType.StartTagSelfClose: + if (curr.parent) { + curr.closed = true; + curr.end = scanner.getTokenEnd(); + curr.startTagEnd = scanner.getTokenEnd(); + curr = curr.parent; + } + break; + case TokenType.EndTagOpen: + endTagStart = scanner.getTokenOffset(); + endTagName = undefined; + break; + case TokenType.EndTag: + endTagName = scanner.getTokenText().toLowerCase(); + break; + case TokenType.EndTagClose: + let node = curr; + // see if we can find a matching tag + while (!node.isSameTag(endTagName) && node.parent) { + node = node.parent; + } + if (node.parent) { + while (curr !== node) { + curr.end = endTagStart; + curr.closed = false; + curr = curr.parent; + } + curr.closed = true; + curr.endTagStart = endTagStart; + curr.end = scanner.getTokenEnd(); + curr = curr.parent; + } + break; + case TokenType.AttributeName: { + pendingAttribute = scanner.getTokenText(); + let attributes = curr.attributes; + if (!attributes) { + curr.attributes = attributes = {}; + } + attributes[pendingAttribute] = null; // Support valueless attributes such as 'checked' + break; + } + case TokenType.AttributeValue: { + const value = scanner.getTokenText(); + const attributes = curr.attributes; + if (attributes && pendingAttribute) { + attributes[pendingAttribute] = value; + pendingAttribute = null; + } + break; + } + } + token = scanner.scan(); + } + while (curr.parent) { + curr.end = text.length; + curr.closed = false; + curr = curr.parent; + } + return { + roots: htmlDocument.children, + findNodeBefore: htmlDocument.findNodeBefore.bind(htmlDocument), + findNodeAt: htmlDocument.findNodeAt.bind(htmlDocument) + }; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * HTML 5 character entities + * https://www.w3.org/TR/html5/syntax.html#named-character-references + */ +const entities = { + "Aacute;": "\u00C1", + "Aacute": "\u00C1", + "aacute;": "\u00E1", + "aacute": "\u00E1", + "Abreve;": "\u0102", + "abreve;": "\u0103", + "ac;": "\u223E", + "acd;": "\u223F", + "acE;": "\u223E\u0333", + "Acirc;": "\u00C2", + "Acirc": "\u00C2", + "acirc;": "\u00E2", + "acirc": "\u00E2", + "acute;": "\u00B4", + "acute": "\u00B4", + "Acy;": "\u0410", + "acy;": "\u0430", + "AElig;": "\u00C6", + "AElig": "\u00C6", + "aelig;": "\u00E6", + "aelig": "\u00E6", + "af;": "\u2061", + "Afr;": "\uD835\uDD04", + "afr;": "\uD835\uDD1E", + "Agrave;": "\u00C0", + "Agrave": "\u00C0", + "agrave;": "\u00E0", + "agrave": "\u00E0", + "alefsym;": "\u2135", + "aleph;": "\u2135", + "Alpha;": "\u0391", + "alpha;": "\u03B1", + "Amacr;": "\u0100", + "amacr;": "\u0101", + "amalg;": "\u2A3F", + "AMP;": "\u0026", + "AMP": "\u0026", + "amp;": "\u0026", + "amp": "\u0026", + "And;": "\u2A53", + "and;": "\u2227", + "andand;": "\u2A55", + "andd;": "\u2A5C", + "andslope;": "\u2A58", + "andv;": "\u2A5A", + "ang;": "\u2220", + "ange;": "\u29A4", + "angle;": "\u2220", + "angmsd;": "\u2221", + "angmsdaa;": "\u29A8", + "angmsdab;": "\u29A9", + "angmsdac;": "\u29AA", + "angmsdad;": "\u29AB", + "angmsdae;": "\u29AC", + "angmsdaf;": "\u29AD", + "angmsdag;": "\u29AE", + "angmsdah;": "\u29AF", + "angrt;": "\u221F", + "angrtvb;": "\u22BE", + "angrtvbd;": "\u299D", + "angsph;": "\u2222", + "angst;": "\u00C5", + "angzarr;": "\u237C", + "Aogon;": "\u0104", + "aogon;": "\u0105", + "Aopf;": "\uD835\uDD38", + "aopf;": "\uD835\uDD52", + "ap;": "\u2248", + "apacir;": "\u2A6F", + "apE;": "\u2A70", + "ape;": "\u224A", + "apid;": "\u224B", + "apos;": "\u0027", + "ApplyFunction;": "\u2061", + "approx;": "\u2248", + "approxeq;": "\u224A", + "Aring;": "\u00C5", + "Aring": "\u00C5", + "aring;": "\u00E5", + "aring": "\u00E5", + "Ascr;": "\uD835\uDC9C", + "ascr;": "\uD835\uDCB6", + "Assign;": "\u2254", + "ast;": "\u002A", + "asymp;": "\u2248", + "asympeq;": "\u224D", + "Atilde;": "\u00C3", + "Atilde": "\u00C3", + "atilde;": "\u00E3", + "atilde": "\u00E3", + "Auml;": "\u00C4", + "Auml": "\u00C4", + "auml;": "\u00E4", + "auml": "\u00E4", + "awconint;": "\u2233", + "awint;": "\u2A11", + "backcong;": "\u224C", + "backepsilon;": "\u03F6", + "backprime;": "\u2035", + "backsim;": "\u223D", + "backsimeq;": "\u22CD", + "Backslash;": "\u2216", + "Barv;": "\u2AE7", + "barvee;": "\u22BD", + "Barwed;": "\u2306", + "barwed;": "\u2305", + "barwedge;": "\u2305", + "bbrk;": "\u23B5", + "bbrktbrk;": "\u23B6", + "bcong;": "\u224C", + "Bcy;": "\u0411", + "bcy;": "\u0431", + "bdquo;": "\u201E", + "becaus;": "\u2235", + "Because;": "\u2235", + "because;": "\u2235", + "bemptyv;": "\u29B0", + "bepsi;": "\u03F6", + "bernou;": "\u212C", + "Bernoullis;": "\u212C", + "Beta;": "\u0392", + "beta;": "\u03B2", + "beth;": "\u2136", + "between;": "\u226C", + "Bfr;": "\uD835\uDD05", + "bfr;": "\uD835\uDD1F", + "bigcap;": "\u22C2", + "bigcirc;": "\u25EF", + "bigcup;": "\u22C3", + "bigodot;": "\u2A00", + "bigoplus;": "\u2A01", + "bigotimes;": "\u2A02", + "bigsqcup;": "\u2A06", + "bigstar;": "\u2605", + "bigtriangledown;": "\u25BD", + "bigtriangleup;": "\u25B3", + "biguplus;": "\u2A04", + "bigvee;": "\u22C1", + "bigwedge;": "\u22C0", + "bkarow;": "\u290D", + "blacklozenge;": "\u29EB", + "blacksquare;": "\u25AA", + "blacktriangle;": "\u25B4", + "blacktriangledown;": "\u25BE", + "blacktriangleleft;": "\u25C2", + "blacktriangleright;": "\u25B8", + "blank;": "\u2423", + "blk12;": "\u2592", + "blk14;": "\u2591", + "blk34;": "\u2593", + "block;": "\u2588", + "bne;": "\u003D\u20E5", + "bnequiv;": "\u2261\u20E5", + "bNot;": "\u2AED", + "bnot;": "\u2310", + "Bopf;": "\uD835\uDD39", + "bopf;": "\uD835\uDD53", + "bot;": "\u22A5", + "bottom;": "\u22A5", + "bowtie;": "\u22C8", + "boxbox;": "\u29C9", + "boxDL;": "\u2557", + "boxDl;": "\u2556", + "boxdL;": "\u2555", + "boxdl;": "\u2510", + "boxDR;": "\u2554", + "boxDr;": "\u2553", + "boxdR;": "\u2552", + "boxdr;": "\u250C", + "boxH;": "\u2550", + "boxh;": "\u2500", + "boxHD;": "\u2566", + "boxHd;": "\u2564", + "boxhD;": "\u2565", + "boxhd;": "\u252C", + "boxHU;": "\u2569", + "boxHu;": "\u2567", + "boxhU;": "\u2568", + "boxhu;": "\u2534", + "boxminus;": "\u229F", + "boxplus;": "\u229E", + "boxtimes;": "\u22A0", + "boxUL;": "\u255D", + "boxUl;": "\u255C", + "boxuL;": "\u255B", + "boxul;": "\u2518", + "boxUR;": "\u255A", + "boxUr;": "\u2559", + "boxuR;": "\u2558", + "boxur;": "\u2514", + "boxV;": "\u2551", + "boxv;": "\u2502", + "boxVH;": "\u256C", + "boxVh;": "\u256B", + "boxvH;": "\u256A", + "boxvh;": "\u253C", + "boxVL;": "\u2563", + "boxVl;": "\u2562", + "boxvL;": "\u2561", + "boxvl;": "\u2524", + "boxVR;": "\u2560", + "boxVr;": "\u255F", + "boxvR;": "\u255E", + "boxvr;": "\u251C", + "bprime;": "\u2035", + "Breve;": "\u02D8", + "breve;": "\u02D8", + "brvbar;": "\u00A6", + "brvbar": "\u00A6", + "Bscr;": "\u212C", + "bscr;": "\uD835\uDCB7", + "bsemi;": "\u204F", + "bsim;": "\u223D", + "bsime;": "\u22CD", + "bsol;": "\u005C", + "bsolb;": "\u29C5", + "bsolhsub;": "\u27C8", + "bull;": "\u2022", + "bullet;": "\u2022", + "bump;": "\u224E", + "bumpE;": "\u2AAE", + "bumpe;": "\u224F", + "Bumpeq;": "\u224E", + "bumpeq;": "\u224F", + "Cacute;": "\u0106", + "cacute;": "\u0107", + "Cap;": "\u22D2", + "cap;": "\u2229", + "capand;": "\u2A44", + "capbrcup;": "\u2A49", + "capcap;": "\u2A4B", + "capcup;": "\u2A47", + "capdot;": "\u2A40", + "CapitalDifferentialD;": "\u2145", + "caps;": "\u2229\uFE00", + "caret;": "\u2041", + "caron;": "\u02C7", + "Cayleys;": "\u212D", + "ccaps;": "\u2A4D", + "Ccaron;": "\u010C", + "ccaron;": "\u010D", + "Ccedil;": "\u00C7", + "Ccedil": "\u00C7", + "ccedil;": "\u00E7", + "ccedil": "\u00E7", + "Ccirc;": "\u0108", + "ccirc;": "\u0109", + "Cconint;": "\u2230", + "ccups;": "\u2A4C", + "ccupssm;": "\u2A50", + "Cdot;": "\u010A", + "cdot;": "\u010B", + "cedil;": "\u00B8", + "cedil": "\u00B8", + "Cedilla;": "\u00B8", + "cemptyv;": "\u29B2", + "cent;": "\u00A2", + "cent": "\u00A2", + "CenterDot;": "\u00B7", + "centerdot;": "\u00B7", + "Cfr;": "\u212D", + "cfr;": "\uD835\uDD20", + "CHcy;": "\u0427", + "chcy;": "\u0447", + "check;": "\u2713", + "checkmark;": "\u2713", + "Chi;": "\u03A7", + "chi;": "\u03C7", + "cir;": "\u25CB", + "circ;": "\u02C6", + "circeq;": "\u2257", + "circlearrowleft;": "\u21BA", + "circlearrowright;": "\u21BB", + "circledast;": "\u229B", + "circledcirc;": "\u229A", + "circleddash;": "\u229D", + "CircleDot;": "\u2299", + "circledR;": "\u00AE", + "circledS;": "\u24C8", + "CircleMinus;": "\u2296", + "CirclePlus;": "\u2295", + "CircleTimes;": "\u2297", + "cirE;": "\u29C3", + "cire;": "\u2257", + "cirfnint;": "\u2A10", + "cirmid;": "\u2AEF", + "cirscir;": "\u29C2", + "ClockwiseContourIntegral;": "\u2232", + "CloseCurlyDoubleQuote;": "\u201D", + "CloseCurlyQuote;": "\u2019", + "clubs;": "\u2663", + "clubsuit;": "\u2663", + "Colon;": "\u2237", + "colon;": "\u003A", + "Colone;": "\u2A74", + "colone;": "\u2254", + "coloneq;": "\u2254", + "comma;": "\u002C", + "commat;": "\u0040", + "comp;": "\u2201", + "compfn;": "\u2218", + "complement;": "\u2201", + "complexes;": "\u2102", + "cong;": "\u2245", + "congdot;": "\u2A6D", + "Congruent;": "\u2261", + "Conint;": "\u222F", + "conint;": "\u222E", + "ContourIntegral;": "\u222E", + "Copf;": "\u2102", + "copf;": "\uD835\uDD54", + "coprod;": "\u2210", + "Coproduct;": "\u2210", + "COPY;": "\u00A9", + "COPY": "\u00A9", + "copy;": "\u00A9", + "copy": "\u00A9", + "copysr;": "\u2117", + "CounterClockwiseContourIntegral;": "\u2233", + "crarr;": "\u21B5", + "Cross;": "\u2A2F", + "cross;": "\u2717", + "Cscr;": "\uD835\uDC9E", + "cscr;": "\uD835\uDCB8", + "csub;": "\u2ACF", + "csube;": "\u2AD1", + "csup;": "\u2AD0", + "csupe;": "\u2AD2", + "ctdot;": "\u22EF", + "cudarrl;": "\u2938", + "cudarrr;": "\u2935", + "cuepr;": "\u22DE", + "cuesc;": "\u22DF", + "cularr;": "\u21B6", + "cularrp;": "\u293D", + "Cup;": "\u22D3", + "cup;": "\u222A", + "cupbrcap;": "\u2A48", + "CupCap;": "\u224D", + "cupcap;": "\u2A46", + "cupcup;": "\u2A4A", + "cupdot;": "\u228D", + "cupor;": "\u2A45", + "cups;": "\u222A\uFE00", + "curarr;": "\u21B7", + "curarrm;": "\u293C", + "curlyeqprec;": "\u22DE", + "curlyeqsucc;": "\u22DF", + "curlyvee;": "\u22CE", + "curlywedge;": "\u22CF", + "curren;": "\u00A4", + "curren": "\u00A4", + "curvearrowleft;": "\u21B6", + "curvearrowright;": "\u21B7", + "cuvee;": "\u22CE", + "cuwed;": "\u22CF", + "cwconint;": "\u2232", + "cwint;": "\u2231", + "cylcty;": "\u232D", + "Dagger;": "\u2021", + "dagger;": "\u2020", + "daleth;": "\u2138", + "Darr;": "\u21A1", + "dArr;": "\u21D3", + "darr;": "\u2193", + "dash;": "\u2010", + "Dashv;": "\u2AE4", + "dashv;": "\u22A3", + "dbkarow;": "\u290F", + "dblac;": "\u02DD", + "Dcaron;": "\u010E", + "dcaron;": "\u010F", + "Dcy;": "\u0414", + "dcy;": "\u0434", + "DD;": "\u2145", + "dd;": "\u2146", + "ddagger;": "\u2021", + "ddarr;": "\u21CA", + "DDotrahd;": "\u2911", + "ddotseq;": "\u2A77", + "deg;": "\u00B0", + "deg": "\u00B0", + "Del;": "\u2207", + "Delta;": "\u0394", + "delta;": "\u03B4", + "demptyv;": "\u29B1", + "dfisht;": "\u297F", + "Dfr;": "\uD835\uDD07", + "dfr;": "\uD835\uDD21", + "dHar;": "\u2965", + "dharl;": "\u21C3", + "dharr;": "\u21C2", + "DiacriticalAcute;": "\u00B4", + "DiacriticalDot;": "\u02D9", + "DiacriticalDoubleAcute;": "\u02DD", + "DiacriticalGrave;": "\u0060", + "DiacriticalTilde;": "\u02DC", + "diam;": "\u22C4", + "Diamond;": "\u22C4", + "diamond;": "\u22C4", + "diamondsuit;": "\u2666", + "diams;": "\u2666", + "die;": "\u00A8", + "DifferentialD;": "\u2146", + "digamma;": "\u03DD", + "disin;": "\u22F2", + "div;": "\u00F7", + "divide;": "\u00F7", + "divide": "\u00F7", + "divideontimes;": "\u22C7", + "divonx;": "\u22C7", + "DJcy;": "\u0402", + "djcy;": "\u0452", + "dlcorn;": "\u231E", + "dlcrop;": "\u230D", + "dollar;": "\u0024", + "Dopf;": "\uD835\uDD3B", + "dopf;": "\uD835\uDD55", + "Dot;": "\u00A8", + "dot;": "\u02D9", + "DotDot;": "\u20DC", + "doteq;": "\u2250", + "doteqdot;": "\u2251", + "DotEqual;": "\u2250", + "dotminus;": "\u2238", + "dotplus;": "\u2214", + "dotsquare;": "\u22A1", + "doublebarwedge;": "\u2306", + "DoubleContourIntegral;": "\u222F", + "DoubleDot;": "\u00A8", + "DoubleDownArrow;": "\u21D3", + "DoubleLeftArrow;": "\u21D0", + "DoubleLeftRightArrow;": "\u21D4", + "DoubleLeftTee;": "\u2AE4", + "DoubleLongLeftArrow;": "\u27F8", + "DoubleLongLeftRightArrow;": "\u27FA", + "DoubleLongRightArrow;": "\u27F9", + "DoubleRightArrow;": "\u21D2", + "DoubleRightTee;": "\u22A8", + "DoubleUpArrow;": "\u21D1", + "DoubleUpDownArrow;": "\u21D5", + "DoubleVerticalBar;": "\u2225", + "DownArrow;": "\u2193", + "Downarrow;": "\u21D3", + "downarrow;": "\u2193", + "DownArrowBar;": "\u2913", + "DownArrowUpArrow;": "\u21F5", + "DownBreve;": "\u0311", + "downdownarrows;": "\u21CA", + "downharpoonleft;": "\u21C3", + "downharpoonright;": "\u21C2", + "DownLeftRightVector;": "\u2950", + "DownLeftTeeVector;": "\u295E", + "DownLeftVector;": "\u21BD", + "DownLeftVectorBar;": "\u2956", + "DownRightTeeVector;": "\u295F", + "DownRightVector;": "\u21C1", + "DownRightVectorBar;": "\u2957", + "DownTee;": "\u22A4", + "DownTeeArrow;": "\u21A7", + "drbkarow;": "\u2910", + "drcorn;": "\u231F", + "drcrop;": "\u230C", + "Dscr;": "\uD835\uDC9F", + "dscr;": "\uD835\uDCB9", + "DScy;": "\u0405", + "dscy;": "\u0455", + "dsol;": "\u29F6", + "Dstrok;": "\u0110", + "dstrok;": "\u0111", + "dtdot;": "\u22F1", + "dtri;": "\u25BF", + "dtrif;": "\u25BE", + "duarr;": "\u21F5", + "duhar;": "\u296F", + "dwangle;": "\u29A6", + "DZcy;": "\u040F", + "dzcy;": "\u045F", + "dzigrarr;": "\u27FF", + "Eacute;": "\u00C9", + "Eacute": "\u00C9", + "eacute;": "\u00E9", + "eacute": "\u00E9", + "easter;": "\u2A6E", + "Ecaron;": "\u011A", + "ecaron;": "\u011B", + "ecir;": "\u2256", + "Ecirc;": "\u00CA", + "Ecirc": "\u00CA", + "ecirc;": "\u00EA", + "ecirc": "\u00EA", + "ecolon;": "\u2255", + "Ecy;": "\u042D", + "ecy;": "\u044D", + "eDDot;": "\u2A77", + "Edot;": "\u0116", + "eDot;": "\u2251", + "edot;": "\u0117", + "ee;": "\u2147", + "efDot;": "\u2252", + "Efr;": "\uD835\uDD08", + "efr;": "\uD835\uDD22", + "eg;": "\u2A9A", + "Egrave;": "\u00C8", + "Egrave": "\u00C8", + "egrave;": "\u00E8", + "egrave": "\u00E8", + "egs;": "\u2A96", + "egsdot;": "\u2A98", + "el;": "\u2A99", + "Element;": "\u2208", + "elinters;": "\u23E7", + "ell;": "\u2113", + "els;": "\u2A95", + "elsdot;": "\u2A97", + "Emacr;": "\u0112", + "emacr;": "\u0113", + "empty;": "\u2205", + "emptyset;": "\u2205", + "EmptySmallSquare;": "\u25FB", + "emptyv;": "\u2205", + "EmptyVerySmallSquare;": "\u25AB", + "emsp;": "\u2003", + "emsp13;": "\u2004", + "emsp14;": "\u2005", + "ENG;": "\u014A", + "eng;": "\u014B", + "ensp;": "\u2002", + "Eogon;": "\u0118", + "eogon;": "\u0119", + "Eopf;": "\uD835\uDD3C", + "eopf;": "\uD835\uDD56", + "epar;": "\u22D5", + "eparsl;": "\u29E3", + "eplus;": "\u2A71", + "epsi;": "\u03B5", + "Epsilon;": "\u0395", + "epsilon;": "\u03B5", + "epsiv;": "\u03F5", + "eqcirc;": "\u2256", + "eqcolon;": "\u2255", + "eqsim;": "\u2242", + "eqslantgtr;": "\u2A96", + "eqslantless;": "\u2A95", + "Equal;": "\u2A75", + "equals;": "\u003D", + "EqualTilde;": "\u2242", + "equest;": "\u225F", + "Equilibrium;": "\u21CC", + "equiv;": "\u2261", + "equivDD;": "\u2A78", + "eqvparsl;": "\u29E5", + "erarr;": "\u2971", + "erDot;": "\u2253", + "Escr;": "\u2130", + "escr;": "\u212F", + "esdot;": "\u2250", + "Esim;": "\u2A73", + "esim;": "\u2242", + "Eta;": "\u0397", + "eta;": "\u03B7", + "ETH;": "\u00D0", + "ETH": "\u00D0", + "eth;": "\u00F0", + "eth": "\u00F0", + "Euml;": "\u00CB", + "Euml": "\u00CB", + "euml;": "\u00EB", + "euml": "\u00EB", + "euro;": "\u20AC", + "excl;": "\u0021", + "exist;": "\u2203", + "Exists;": "\u2203", + "expectation;": "\u2130", + "ExponentialE;": "\u2147", + "exponentiale;": "\u2147", + "fallingdotseq;": "\u2252", + "Fcy;": "\u0424", + "fcy;": "\u0444", + "female;": "\u2640", + "ffilig;": "\uFB03", + "fflig;": "\uFB00", + "ffllig;": "\uFB04", + "Ffr;": "\uD835\uDD09", + "ffr;": "\uD835\uDD23", + "filig;": "\uFB01", + "FilledSmallSquare;": "\u25FC", + "FilledVerySmallSquare;": "\u25AA", + "fjlig;": "\u0066\u006A", + "flat;": "\u266D", + "fllig;": "\uFB02", + "fltns;": "\u25B1", + "fnof;": "\u0192", + "Fopf;": "\uD835\uDD3D", + "fopf;": "\uD835\uDD57", + "ForAll;": "\u2200", + "forall;": "\u2200", + "fork;": "\u22D4", + "forkv;": "\u2AD9", + "Fouriertrf;": "\u2131", + "fpartint;": "\u2A0D", + "frac12;": "\u00BD", + "frac12": "\u00BD", + "frac13;": "\u2153", + "frac14;": "\u00BC", + "frac14": "\u00BC", + "frac15;": "\u2155", + "frac16;": "\u2159", + "frac18;": "\u215B", + "frac23;": "\u2154", + "frac25;": "\u2156", + "frac34;": "\u00BE", + "frac34": "\u00BE", + "frac35;": "\u2157", + "frac38;": "\u215C", + "frac45;": "\u2158", + "frac56;": "\u215A", + "frac58;": "\u215D", + "frac78;": "\u215E", + "frasl;": "\u2044", + "frown;": "\u2322", + "Fscr;": "\u2131", + "fscr;": "\uD835\uDCBB", + "gacute;": "\u01F5", + "Gamma;": "\u0393", + "gamma;": "\u03B3", + "Gammad;": "\u03DC", + "gammad;": "\u03DD", + "gap;": "\u2A86", + "Gbreve;": "\u011E", + "gbreve;": "\u011F", + "Gcedil;": "\u0122", + "Gcirc;": "\u011C", + "gcirc;": "\u011D", + "Gcy;": "\u0413", + "gcy;": "\u0433", + "Gdot;": "\u0120", + "gdot;": "\u0121", + "gE;": "\u2267", + "ge;": "\u2265", + "gEl;": "\u2A8C", + "gel;": "\u22DB", + "geq;": "\u2265", + "geqq;": "\u2267", + "geqslant;": "\u2A7E", + "ges;": "\u2A7E", + "gescc;": "\u2AA9", + "gesdot;": "\u2A80", + "gesdoto;": "\u2A82", + "gesdotol;": "\u2A84", + "gesl;": "\u22DB\uFE00", + "gesles;": "\u2A94", + "Gfr;": "\uD835\uDD0A", + "gfr;": "\uD835\uDD24", + "Gg;": "\u22D9", + "gg;": "\u226B", + "ggg;": "\u22D9", + "gimel;": "\u2137", + "GJcy;": "\u0403", + "gjcy;": "\u0453", + "gl;": "\u2277", + "gla;": "\u2AA5", + "glE;": "\u2A92", + "glj;": "\u2AA4", + "gnap;": "\u2A8A", + "gnapprox;": "\u2A8A", + "gnE;": "\u2269", + "gne;": "\u2A88", + "gneq;": "\u2A88", + "gneqq;": "\u2269", + "gnsim;": "\u22E7", + "Gopf;": "\uD835\uDD3E", + "gopf;": "\uD835\uDD58", + "grave;": "\u0060", + "GreaterEqual;": "\u2265", + "GreaterEqualLess;": "\u22DB", + "GreaterFullEqual;": "\u2267", + "GreaterGreater;": "\u2AA2", + "GreaterLess;": "\u2277", + "GreaterSlantEqual;": "\u2A7E", + "GreaterTilde;": "\u2273", + "Gscr;": "\uD835\uDCA2", + "gscr;": "\u210A", + "gsim;": "\u2273", + "gsime;": "\u2A8E", + "gsiml;": "\u2A90", + "GT;": "\u003E", + "GT": "\u003E", + "Gt;": "\u226B", + "gt;": "\u003E", + "gt": "\u003E", + "gtcc;": "\u2AA7", + "gtcir;": "\u2A7A", + "gtdot;": "\u22D7", + "gtlPar;": "\u2995", + "gtquest;": "\u2A7C", + "gtrapprox;": "\u2A86", + "gtrarr;": "\u2978", + "gtrdot;": "\u22D7", + "gtreqless;": "\u22DB", + "gtreqqless;": "\u2A8C", + "gtrless;": "\u2277", + "gtrsim;": "\u2273", + "gvertneqq;": "\u2269\uFE00", + "gvnE;": "\u2269\uFE00", + "Hacek;": "\u02C7", + "hairsp;": "\u200A", + "half;": "\u00BD", + "hamilt;": "\u210B", + "HARDcy;": "\u042A", + "hardcy;": "\u044A", + "hArr;": "\u21D4", + "harr;": "\u2194", + "harrcir;": "\u2948", + "harrw;": "\u21AD", + "Hat;": "\u005E", + "hbar;": "\u210F", + "Hcirc;": "\u0124", + "hcirc;": "\u0125", + "hearts;": "\u2665", + "heartsuit;": "\u2665", + "hellip;": "\u2026", + "hercon;": "\u22B9", + "Hfr;": "\u210C", + "hfr;": "\uD835\uDD25", + "HilbertSpace;": "\u210B", + "hksearow;": "\u2925", + "hkswarow;": "\u2926", + "hoarr;": "\u21FF", + "homtht;": "\u223B", + "hookleftarrow;": "\u21A9", + "hookrightarrow;": "\u21AA", + "Hopf;": "\u210D", + "hopf;": "\uD835\uDD59", + "horbar;": "\u2015", + "HorizontalLine;": "\u2500", + "Hscr;": "\u210B", + "hscr;": "\uD835\uDCBD", + "hslash;": "\u210F", + "Hstrok;": "\u0126", + "hstrok;": "\u0127", + "HumpDownHump;": "\u224E", + "HumpEqual;": "\u224F", + "hybull;": "\u2043", + "hyphen;": "\u2010", + "Iacute;": "\u00CD", + "Iacute": "\u00CD", + "iacute;": "\u00ED", + "iacute": "\u00ED", + "ic;": "\u2063", + "Icirc;": "\u00CE", + "Icirc": "\u00CE", + "icirc;": "\u00EE", + "icirc": "\u00EE", + "Icy;": "\u0418", + "icy;": "\u0438", + "Idot;": "\u0130", + "IEcy;": "\u0415", + "iecy;": "\u0435", + "iexcl;": "\u00A1", + "iexcl": "\u00A1", + "iff;": "\u21D4", + "Ifr;": "\u2111", + "ifr;": "\uD835\uDD26", + "Igrave;": "\u00CC", + "Igrave": "\u00CC", + "igrave;": "\u00EC", + "igrave": "\u00EC", + "ii;": "\u2148", + "iiiint;": "\u2A0C", + "iiint;": "\u222D", + "iinfin;": "\u29DC", + "iiota;": "\u2129", + "IJlig;": "\u0132", + "ijlig;": "\u0133", + "Im;": "\u2111", + "Imacr;": "\u012A", + "imacr;": "\u012B", + "image;": "\u2111", + "ImaginaryI;": "\u2148", + "imagline;": "\u2110", + "imagpart;": "\u2111", + "imath;": "\u0131", + "imof;": "\u22B7", + "imped;": "\u01B5", + "Implies;": "\u21D2", + "in;": "\u2208", + "incare;": "\u2105", + "infin;": "\u221E", + "infintie;": "\u29DD", + "inodot;": "\u0131", + "Int;": "\u222C", + "int;": "\u222B", + "intcal;": "\u22BA", + "integers;": "\u2124", + "Integral;": "\u222B", + "intercal;": "\u22BA", + "Intersection;": "\u22C2", + "intlarhk;": "\u2A17", + "intprod;": "\u2A3C", + "InvisibleComma;": "\u2063", + "InvisibleTimes;": "\u2062", + "IOcy;": "\u0401", + "iocy;": "\u0451", + "Iogon;": "\u012E", + "iogon;": "\u012F", + "Iopf;": "\uD835\uDD40", + "iopf;": "\uD835\uDD5A", + "Iota;": "\u0399", + "iota;": "\u03B9", + "iprod;": "\u2A3C", + "iquest;": "\u00BF", + "iquest": "\u00BF", + "Iscr;": "\u2110", + "iscr;": "\uD835\uDCBE", + "isin;": "\u2208", + "isindot;": "\u22F5", + "isinE;": "\u22F9", + "isins;": "\u22F4", + "isinsv;": "\u22F3", + "isinv;": "\u2208", + "it;": "\u2062", + "Itilde;": "\u0128", + "itilde;": "\u0129", + "Iukcy;": "\u0406", + "iukcy;": "\u0456", + "Iuml;": "\u00CF", + "Iuml": "\u00CF", + "iuml;": "\u00EF", + "iuml": "\u00EF", + "Jcirc;": "\u0134", + "jcirc;": "\u0135", + "Jcy;": "\u0419", + "jcy;": "\u0439", + "Jfr;": "\uD835\uDD0D", + "jfr;": "\uD835\uDD27", + "jmath;": "\u0237", + "Jopf;": "\uD835\uDD41", + "jopf;": "\uD835\uDD5B", + "Jscr;": "\uD835\uDCA5", + "jscr;": "\uD835\uDCBF", + "Jsercy;": "\u0408", + "jsercy;": "\u0458", + "Jukcy;": "\u0404", + "jukcy;": "\u0454", + "Kappa;": "\u039A", + "kappa;": "\u03BA", + "kappav;": "\u03F0", + "Kcedil;": "\u0136", + "kcedil;": "\u0137", + "Kcy;": "\u041A", + "kcy;": "\u043A", + "Kfr;": "\uD835\uDD0E", + "kfr;": "\uD835\uDD28", + "kgreen;": "\u0138", + "KHcy;": "\u0425", + "khcy;": "\u0445", + "KJcy;": "\u040C", + "kjcy;": "\u045C", + "Kopf;": "\uD835\uDD42", + "kopf;": "\uD835\uDD5C", + "Kscr;": "\uD835\uDCA6", + "kscr;": "\uD835\uDCC0", + "lAarr;": "\u21DA", + "Lacute;": "\u0139", + "lacute;": "\u013A", + "laemptyv;": "\u29B4", + "lagran;": "\u2112", + "Lambda;": "\u039B", + "lambda;": "\u03BB", + "Lang;": "\u27EA", + "lang;": "\u27E8", + "langd;": "\u2991", + "langle;": "\u27E8", + "lap;": "\u2A85", + "Laplacetrf;": "\u2112", + "laquo;": "\u00AB", + "laquo": "\u00AB", + "Larr;": "\u219E", + "lArr;": "\u21D0", + "larr;": "\u2190", + "larrb;": "\u21E4", + "larrbfs;": "\u291F", + "larrfs;": "\u291D", + "larrhk;": "\u21A9", + "larrlp;": "\u21AB", + "larrpl;": "\u2939", + "larrsim;": "\u2973", + "larrtl;": "\u21A2", + "lat;": "\u2AAB", + "lAtail;": "\u291B", + "latail;": "\u2919", + "late;": "\u2AAD", + "lates;": "\u2AAD\uFE00", + "lBarr;": "\u290E", + "lbarr;": "\u290C", + "lbbrk;": "\u2772", + "lbrace;": "\u007B", + "lbrack;": "\u005B", + "lbrke;": "\u298B", + "lbrksld;": "\u298F", + "lbrkslu;": "\u298D", + "Lcaron;": "\u013D", + "lcaron;": "\u013E", + "Lcedil;": "\u013B", + "lcedil;": "\u013C", + "lceil;": "\u2308", + "lcub;": "\u007B", + "Lcy;": "\u041B", + "lcy;": "\u043B", + "ldca;": "\u2936", + "ldquo;": "\u201C", + "ldquor;": "\u201E", + "ldrdhar;": "\u2967", + "ldrushar;": "\u294B", + "ldsh;": "\u21B2", + "lE;": "\u2266", + "le;": "\u2264", + "LeftAngleBracket;": "\u27E8", + "LeftArrow;": "\u2190", + "Leftarrow;": "\u21D0", + "leftarrow;": "\u2190", + "LeftArrowBar;": "\u21E4", + "LeftArrowRightArrow;": "\u21C6", + "leftarrowtail;": "\u21A2", + "LeftCeiling;": "\u2308", + "LeftDoubleBracket;": "\u27E6", + "LeftDownTeeVector;": "\u2961", + "LeftDownVector;": "\u21C3", + "LeftDownVectorBar;": "\u2959", + "LeftFloor;": "\u230A", + "leftharpoondown;": "\u21BD", + "leftharpoonup;": "\u21BC", + "leftleftarrows;": "\u21C7", + "LeftRightArrow;": "\u2194", + "Leftrightarrow;": "\u21D4", + "leftrightarrow;": "\u2194", + "leftrightarrows;": "\u21C6", + "leftrightharpoons;": "\u21CB", + "leftrightsquigarrow;": "\u21AD", + "LeftRightVector;": "\u294E", + "LeftTee;": "\u22A3", + "LeftTeeArrow;": "\u21A4", + "LeftTeeVector;": "\u295A", + "leftthreetimes;": "\u22CB", + "LeftTriangle;": "\u22B2", + "LeftTriangleBar;": "\u29CF", + "LeftTriangleEqual;": "\u22B4", + "LeftUpDownVector;": "\u2951", + "LeftUpTeeVector;": "\u2960", + "LeftUpVector;": "\u21BF", + "LeftUpVectorBar;": "\u2958", + "LeftVector;": "\u21BC", + "LeftVectorBar;": "\u2952", + "lEg;": "\u2A8B", + "leg;": "\u22DA", + "leq;": "\u2264", + "leqq;": "\u2266", + "leqslant;": "\u2A7D", + "les;": "\u2A7D", + "lescc;": "\u2AA8", + "lesdot;": "\u2A7F", + "lesdoto;": "\u2A81", + "lesdotor;": "\u2A83", + "lesg;": "\u22DA\uFE00", + "lesges;": "\u2A93", + "lessapprox;": "\u2A85", + "lessdot;": "\u22D6", + "lesseqgtr;": "\u22DA", + "lesseqqgtr;": "\u2A8B", + "LessEqualGreater;": "\u22DA", + "LessFullEqual;": "\u2266", + "LessGreater;": "\u2276", + "lessgtr;": "\u2276", + "LessLess;": "\u2AA1", + "lesssim;": "\u2272", + "LessSlantEqual;": "\u2A7D", + "LessTilde;": "\u2272", + "lfisht;": "\u297C", + "lfloor;": "\u230A", + "Lfr;": "\uD835\uDD0F", + "lfr;": "\uD835\uDD29", + "lg;": "\u2276", + "lgE;": "\u2A91", + "lHar;": "\u2962", + "lhard;": "\u21BD", + "lharu;": "\u21BC", + "lharul;": "\u296A", + "lhblk;": "\u2584", + "LJcy;": "\u0409", + "ljcy;": "\u0459", + "Ll;": "\u22D8", + "ll;": "\u226A", + "llarr;": "\u21C7", + "llcorner;": "\u231E", + "Lleftarrow;": "\u21DA", + "llhard;": "\u296B", + "lltri;": "\u25FA", + "Lmidot;": "\u013F", + "lmidot;": "\u0140", + "lmoust;": "\u23B0", + "lmoustache;": "\u23B0", + "lnap;": "\u2A89", + "lnapprox;": "\u2A89", + "lnE;": "\u2268", + "lne;": "\u2A87", + "lneq;": "\u2A87", + "lneqq;": "\u2268", + "lnsim;": "\u22E6", + "loang;": "\u27EC", + "loarr;": "\u21FD", + "lobrk;": "\u27E6", + "LongLeftArrow;": "\u27F5", + "Longleftarrow;": "\u27F8", + "longleftarrow;": "\u27F5", + "LongLeftRightArrow;": "\u27F7", + "Longleftrightarrow;": "\u27FA", + "longleftrightarrow;": "\u27F7", + "longmapsto;": "\u27FC", + "LongRightArrow;": "\u27F6", + "Longrightarrow;": "\u27F9", + "longrightarrow;": "\u27F6", + "looparrowleft;": "\u21AB", + "looparrowright;": "\u21AC", + "lopar;": "\u2985", + "Lopf;": "\uD835\uDD43", + "lopf;": "\uD835\uDD5D", + "loplus;": "\u2A2D", + "lotimes;": "\u2A34", + "lowast;": "\u2217", + "lowbar;": "\u005F", + "LowerLeftArrow;": "\u2199", + "LowerRightArrow;": "\u2198", + "loz;": "\u25CA", + "lozenge;": "\u25CA", + "lozf;": "\u29EB", + "lpar;": "\u0028", + "lparlt;": "\u2993", + "lrarr;": "\u21C6", + "lrcorner;": "\u231F", + "lrhar;": "\u21CB", + "lrhard;": "\u296D", + "lrm;": "\u200E", + "lrtri;": "\u22BF", + "lsaquo;": "\u2039", + "Lscr;": "\u2112", + "lscr;": "\uD835\uDCC1", + "Lsh;": "\u21B0", + "lsh;": "\u21B0", + "lsim;": "\u2272", + "lsime;": "\u2A8D", + "lsimg;": "\u2A8F", + "lsqb;": "\u005B", + "lsquo;": "\u2018", + "lsquor;": "\u201A", + "Lstrok;": "\u0141", + "lstrok;": "\u0142", + "LT;": "\u003C", + "LT": "\u003C", + "Lt;": "\u226A", + "lt;": "\u003C", + "lt": "\u003C", + "ltcc;": "\u2AA6", + "ltcir;": "\u2A79", + "ltdot;": "\u22D6", + "lthree;": "\u22CB", + "ltimes;": "\u22C9", + "ltlarr;": "\u2976", + "ltquest;": "\u2A7B", + "ltri;": "\u25C3", + "ltrie;": "\u22B4", + "ltrif;": "\u25C2", + "ltrPar;": "\u2996", + "lurdshar;": "\u294A", + "luruhar;": "\u2966", + "lvertneqq;": "\u2268\uFE00", + "lvnE;": "\u2268\uFE00", + "macr;": "\u00AF", + "macr": "\u00AF", + "male;": "\u2642", + "malt;": "\u2720", + "maltese;": "\u2720", + "Map;": "\u2905", + "map;": "\u21A6", + "mapsto;": "\u21A6", + "mapstodown;": "\u21A7", + "mapstoleft;": "\u21A4", + "mapstoup;": "\u21A5", + "marker;": "\u25AE", + "mcomma;": "\u2A29", + "Mcy;": "\u041C", + "mcy;": "\u043C", + "mdash;": "\u2014", + "mDDot;": "\u223A", + "measuredangle;": "\u2221", + "MediumSpace;": "\u205F", + "Mellintrf;": "\u2133", + "Mfr;": "\uD835\uDD10", + "mfr;": "\uD835\uDD2A", + "mho;": "\u2127", + "micro;": "\u00B5", + "micro": "\u00B5", + "mid;": "\u2223", + "midast;": "\u002A", + "midcir;": "\u2AF0", + "middot;": "\u00B7", + "middot": "\u00B7", + "minus;": "\u2212", + "minusb;": "\u229F", + "minusd;": "\u2238", + "minusdu;": "\u2A2A", + "MinusPlus;": "\u2213", + "mlcp;": "\u2ADB", + "mldr;": "\u2026", + "mnplus;": "\u2213", + "models;": "\u22A7", + "Mopf;": "\uD835\uDD44", + "mopf;": "\uD835\uDD5E", + "mp;": "\u2213", + "Mscr;": "\u2133", + "mscr;": "\uD835\uDCC2", + "mstpos;": "\u223E", + "Mu;": "\u039C", + "mu;": "\u03BC", + "multimap;": "\u22B8", + "mumap;": "\u22B8", + "nabla;": "\u2207", + "Nacute;": "\u0143", + "nacute;": "\u0144", + "nang;": "\u2220\u20D2", + "nap;": "\u2249", + "napE;": "\u2A70\u0338", + "napid;": "\u224B\u0338", + "napos;": "\u0149", + "napprox;": "\u2249", + "natur;": "\u266E", + "natural;": "\u266E", + "naturals;": "\u2115", + "nbsp;": "\u00A0", + "nbsp": "\u00A0", + "nbump;": "\u224E\u0338", + "nbumpe;": "\u224F\u0338", + "ncap;": "\u2A43", + "Ncaron;": "\u0147", + "ncaron;": "\u0148", + "Ncedil;": "\u0145", + "ncedil;": "\u0146", + "ncong;": "\u2247", + "ncongdot;": "\u2A6D\u0338", + "ncup;": "\u2A42", + "Ncy;": "\u041D", + "ncy;": "\u043D", + "ndash;": "\u2013", + "ne;": "\u2260", + "nearhk;": "\u2924", + "neArr;": "\u21D7", + "nearr;": "\u2197", + "nearrow;": "\u2197", + "nedot;": "\u2250\u0338", + "NegativeMediumSpace;": "\u200B", + "NegativeThickSpace;": "\u200B", + "NegativeThinSpace;": "\u200B", + "NegativeVeryThinSpace;": "\u200B", + "nequiv;": "\u2262", + "nesear;": "\u2928", + "nesim;": "\u2242\u0338", + "NestedGreaterGreater;": "\u226B", + "NestedLessLess;": "\u226A", + "NewLine;": "\u000A", + "nexist;": "\u2204", + "nexists;": "\u2204", + "Nfr;": "\uD835\uDD11", + "nfr;": "\uD835\uDD2B", + "ngE;": "\u2267\u0338", + "nge;": "\u2271", + "ngeq;": "\u2271", + "ngeqq;": "\u2267\u0338", + "ngeqslant;": "\u2A7E\u0338", + "nges;": "\u2A7E\u0338", + "nGg;": "\u22D9\u0338", + "ngsim;": "\u2275", + "nGt;": "\u226B\u20D2", + "ngt;": "\u226F", + "ngtr;": "\u226F", + "nGtv;": "\u226B\u0338", + "nhArr;": "\u21CE", + "nharr;": "\u21AE", + "nhpar;": "\u2AF2", + "ni;": "\u220B", + "nis;": "\u22FC", + "nisd;": "\u22FA", + "niv;": "\u220B", + "NJcy;": "\u040A", + "njcy;": "\u045A", + "nlArr;": "\u21CD", + "nlarr;": "\u219A", + "nldr;": "\u2025", + "nlE;": "\u2266\u0338", + "nle;": "\u2270", + "nLeftarrow;": "\u21CD", + "nleftarrow;": "\u219A", + "nLeftrightarrow;": "\u21CE", + "nleftrightarrow;": "\u21AE", + "nleq;": "\u2270", + "nleqq;": "\u2266\u0338", + "nleqslant;": "\u2A7D\u0338", + "nles;": "\u2A7D\u0338", + "nless;": "\u226E", + "nLl;": "\u22D8\u0338", + "nlsim;": "\u2274", + "nLt;": "\u226A\u20D2", + "nlt;": "\u226E", + "nltri;": "\u22EA", + "nltrie;": "\u22EC", + "nLtv;": "\u226A\u0338", + "nmid;": "\u2224", + "NoBreak;": "\u2060", + "NonBreakingSpace;": "\u00A0", + "Nopf;": "\u2115", + "nopf;": "\uD835\uDD5F", + "Not;": "\u2AEC", + "not;": "\u00AC", + "not": "\u00AC", + "NotCongruent;": "\u2262", + "NotCupCap;": "\u226D", + "NotDoubleVerticalBar;": "\u2226", + "NotElement;": "\u2209", + "NotEqual;": "\u2260", + "NotEqualTilde;": "\u2242\u0338", + "NotExists;": "\u2204", + "NotGreater;": "\u226F", + "NotGreaterEqual;": "\u2271", + "NotGreaterFullEqual;": "\u2267\u0338", + "NotGreaterGreater;": "\u226B\u0338", + "NotGreaterLess;": "\u2279", + "NotGreaterSlantEqual;": "\u2A7E\u0338", + "NotGreaterTilde;": "\u2275", + "NotHumpDownHump;": "\u224E\u0338", + "NotHumpEqual;": "\u224F\u0338", + "notin;": "\u2209", + "notindot;": "\u22F5\u0338", + "notinE;": "\u22F9\u0338", + "notinva;": "\u2209", + "notinvb;": "\u22F7", + "notinvc;": "\u22F6", + "NotLeftTriangle;": "\u22EA", + "NotLeftTriangleBar;": "\u29CF\u0338", + "NotLeftTriangleEqual;": "\u22EC", + "NotLess;": "\u226E", + "NotLessEqual;": "\u2270", + "NotLessGreater;": "\u2278", + "NotLessLess;": "\u226A\u0338", + "NotLessSlantEqual;": "\u2A7D\u0338", + "NotLessTilde;": "\u2274", + "NotNestedGreaterGreater;": "\u2AA2\u0338", + "NotNestedLessLess;": "\u2AA1\u0338", + "notni;": "\u220C", + "notniva;": "\u220C", + "notnivb;": "\u22FE", + "notnivc;": "\u22FD", + "NotPrecedes;": "\u2280", + "NotPrecedesEqual;": "\u2AAF\u0338", + "NotPrecedesSlantEqual;": "\u22E0", + "NotReverseElement;": "\u220C", + "NotRightTriangle;": "\u22EB", + "NotRightTriangleBar;": "\u29D0\u0338", + "NotRightTriangleEqual;": "\u22ED", + "NotSquareSubset;": "\u228F\u0338", + "NotSquareSubsetEqual;": "\u22E2", + "NotSquareSuperset;": "\u2290\u0338", + "NotSquareSupersetEqual;": "\u22E3", + "NotSubset;": "\u2282\u20D2", + "NotSubsetEqual;": "\u2288", + "NotSucceeds;": "\u2281", + "NotSucceedsEqual;": "\u2AB0\u0338", + "NotSucceedsSlantEqual;": "\u22E1", + "NotSucceedsTilde;": "\u227F\u0338", + "NotSuperset;": "\u2283\u20D2", + "NotSupersetEqual;": "\u2289", + "NotTilde;": "\u2241", + "NotTildeEqual;": "\u2244", + "NotTildeFullEqual;": "\u2247", + "NotTildeTilde;": "\u2249", + "NotVerticalBar;": "\u2224", + "npar;": "\u2226", + "nparallel;": "\u2226", + "nparsl;": "\u2AFD\u20E5", + "npart;": "\u2202\u0338", + "npolint;": "\u2A14", + "npr;": "\u2280", + "nprcue;": "\u22E0", + "npre;": "\u2AAF\u0338", + "nprec;": "\u2280", + "npreceq;": "\u2AAF\u0338", + "nrArr;": "\u21CF", + "nrarr;": "\u219B", + "nrarrc;": "\u2933\u0338", + "nrarrw;": "\u219D\u0338", + "nRightarrow;": "\u21CF", + "nrightarrow;": "\u219B", + "nrtri;": "\u22EB", + "nrtrie;": "\u22ED", + "nsc;": "\u2281", + "nsccue;": "\u22E1", + "nsce;": "\u2AB0\u0338", + "Nscr;": "\uD835\uDCA9", + "nscr;": "\uD835\uDCC3", + "nshortmid;": "\u2224", + "nshortparallel;": "\u2226", + "nsim;": "\u2241", + "nsime;": "\u2244", + "nsimeq;": "\u2244", + "nsmid;": "\u2224", + "nspar;": "\u2226", + "nsqsube;": "\u22E2", + "nsqsupe;": "\u22E3", + "nsub;": "\u2284", + "nsubE;": "\u2AC5\u0338", + "nsube;": "\u2288", + "nsubset;": "\u2282\u20D2", + "nsubseteq;": "\u2288", + "nsubseteqq;": "\u2AC5\u0338", + "nsucc;": "\u2281", + "nsucceq;": "\u2AB0\u0338", + "nsup;": "\u2285", + "nsupE;": "\u2AC6\u0338", + "nsupe;": "\u2289", + "nsupset;": "\u2283\u20D2", + "nsupseteq;": "\u2289", + "nsupseteqq;": "\u2AC6\u0338", + "ntgl;": "\u2279", + "Ntilde;": "\u00D1", + "Ntilde": "\u00D1", + "ntilde;": "\u00F1", + "ntilde": "\u00F1", + "ntlg;": "\u2278", + "ntriangleleft;": "\u22EA", + "ntrianglelefteq;": "\u22EC", + "ntriangleright;": "\u22EB", + "ntrianglerighteq;": "\u22ED", + "Nu;": "\u039D", + "nu;": "\u03BD", + "num;": "\u0023", + "numero;": "\u2116", + "numsp;": "\u2007", + "nvap;": "\u224D\u20D2", + "nVDash;": "\u22AF", + "nVdash;": "\u22AE", + "nvDash;": "\u22AD", + "nvdash;": "\u22AC", + "nvge;": "\u2265\u20D2", + "nvgt;": "\u003E\u20D2", + "nvHarr;": "\u2904", + "nvinfin;": "\u29DE", + "nvlArr;": "\u2902", + "nvle;": "\u2264\u20D2", + "nvlt;": "\u003C\u20D2", + "nvltrie;": "\u22B4\u20D2", + "nvrArr;": "\u2903", + "nvrtrie;": "\u22B5\u20D2", + "nvsim;": "\u223C\u20D2", + "nwarhk;": "\u2923", + "nwArr;": "\u21D6", + "nwarr;": "\u2196", + "nwarrow;": "\u2196", + "nwnear;": "\u2927", + "Oacute;": "\u00D3", + "Oacute": "\u00D3", + "oacute;": "\u00F3", + "oacute": "\u00F3", + "oast;": "\u229B", + "ocir;": "\u229A", + "Ocirc;": "\u00D4", + "Ocirc": "\u00D4", + "ocirc;": "\u00F4", + "ocirc": "\u00F4", + "Ocy;": "\u041E", + "ocy;": "\u043E", + "odash;": "\u229D", + "Odblac;": "\u0150", + "odblac;": "\u0151", + "odiv;": "\u2A38", + "odot;": "\u2299", + "odsold;": "\u29BC", + "OElig;": "\u0152", + "oelig;": "\u0153", + "ofcir;": "\u29BF", + "Ofr;": "\uD835\uDD12", + "ofr;": "\uD835\uDD2C", + "ogon;": "\u02DB", + "Ograve;": "\u00D2", + "Ograve": "\u00D2", + "ograve;": "\u00F2", + "ograve": "\u00F2", + "ogt;": "\u29C1", + "ohbar;": "\u29B5", + "ohm;": "\u03A9", + "oint;": "\u222E", + "olarr;": "\u21BA", + "olcir;": "\u29BE", + "olcross;": "\u29BB", + "oline;": "\u203E", + "olt;": "\u29C0", + "Omacr;": "\u014C", + "omacr;": "\u014D", + "Omega;": "\u03A9", + "omega;": "\u03C9", + "Omicron;": "\u039F", + "omicron;": "\u03BF", + "omid;": "\u29B6", + "ominus;": "\u2296", + "Oopf;": "\uD835\uDD46", + "oopf;": "\uD835\uDD60", + "opar;": "\u29B7", + "OpenCurlyDoubleQuote;": "\u201C", + "OpenCurlyQuote;": "\u2018", + "operp;": "\u29B9", + "oplus;": "\u2295", + "Or;": "\u2A54", + "or;": "\u2228", + "orarr;": "\u21BB", + "ord;": "\u2A5D", + "order;": "\u2134", + "orderof;": "\u2134", + "ordf;": "\u00AA", + "ordf": "\u00AA", + "ordm;": "\u00BA", + "ordm": "\u00BA", + "origof;": "\u22B6", + "oror;": "\u2A56", + "orslope;": "\u2A57", + "orv;": "\u2A5B", + "oS;": "\u24C8", + "Oscr;": "\uD835\uDCAA", + "oscr;": "\u2134", + "Oslash;": "\u00D8", + "Oslash": "\u00D8", + "oslash;": "\u00F8", + "oslash": "\u00F8", + "osol;": "\u2298", + "Otilde;": "\u00D5", + "Otilde": "\u00D5", + "otilde;": "\u00F5", + "otilde": "\u00F5", + "Otimes;": "\u2A37", + "otimes;": "\u2297", + "otimesas;": "\u2A36", + "Ouml;": "\u00D6", + "Ouml": "\u00D6", + "ouml;": "\u00F6", + "ouml": "\u00F6", + "ovbar;": "\u233D", + "OverBar;": "\u203E", + "OverBrace;": "\u23DE", + "OverBracket;": "\u23B4", + "OverParenthesis;": "\u23DC", + "par;": "\u2225", + "para;": "\u00B6", + "para": "\u00B6", + "parallel;": "\u2225", + "parsim;": "\u2AF3", + "parsl;": "\u2AFD", + "part;": "\u2202", + "PartialD;": "\u2202", + "Pcy;": "\u041F", + "pcy;": "\u043F", + "percnt;": "\u0025", + "period;": "\u002E", + "permil;": "\u2030", + "perp;": "\u22A5", + "pertenk;": "\u2031", + "Pfr;": "\uD835\uDD13", + "pfr;": "\uD835\uDD2D", + "Phi;": "\u03A6", + "phi;": "\u03C6", + "phiv;": "\u03D5", + "phmmat;": "\u2133", + "phone;": "\u260E", + "Pi;": "\u03A0", + "pi;": "\u03C0", + "pitchfork;": "\u22D4", + "piv;": "\u03D6", + "planck;": "\u210F", + "planckh;": "\u210E", + "plankv;": "\u210F", + "plus;": "\u002B", + "plusacir;": "\u2A23", + "plusb;": "\u229E", + "pluscir;": "\u2A22", + "plusdo;": "\u2214", + "plusdu;": "\u2A25", + "pluse;": "\u2A72", + "PlusMinus;": "\u00B1", + "plusmn;": "\u00B1", + "plusmn": "\u00B1", + "plussim;": "\u2A26", + "plustwo;": "\u2A27", + "pm;": "\u00B1", + "Poincareplane;": "\u210C", + "pointint;": "\u2A15", + "Popf;": "\u2119", + "popf;": "\uD835\uDD61", + "pound;": "\u00A3", + "pound": "\u00A3", + "Pr;": "\u2ABB", + "pr;": "\u227A", + "prap;": "\u2AB7", + "prcue;": "\u227C", + "prE;": "\u2AB3", + "pre;": "\u2AAF", + "prec;": "\u227A", + "precapprox;": "\u2AB7", + "preccurlyeq;": "\u227C", + "Precedes;": "\u227A", + "PrecedesEqual;": "\u2AAF", + "PrecedesSlantEqual;": "\u227C", + "PrecedesTilde;": "\u227E", + "preceq;": "\u2AAF", + "precnapprox;": "\u2AB9", + "precneqq;": "\u2AB5", + "precnsim;": "\u22E8", + "precsim;": "\u227E", + "Prime;": "\u2033", + "prime;": "\u2032", + "primes;": "\u2119", + "prnap;": "\u2AB9", + "prnE;": "\u2AB5", + "prnsim;": "\u22E8", + "prod;": "\u220F", + "Product;": "\u220F", + "profalar;": "\u232E", + "profline;": "\u2312", + "profsurf;": "\u2313", + "prop;": "\u221D", + "Proportion;": "\u2237", + "Proportional;": "\u221D", + "propto;": "\u221D", + "prsim;": "\u227E", + "prurel;": "\u22B0", + "Pscr;": "\uD835\uDCAB", + "pscr;": "\uD835\uDCC5", + "Psi;": "\u03A8", + "psi;": "\u03C8", + "puncsp;": "\u2008", + "Qfr;": "\uD835\uDD14", + "qfr;": "\uD835\uDD2E", + "qint;": "\u2A0C", + "Qopf;": "\u211A", + "qopf;": "\uD835\uDD62", + "qprime;": "\u2057", + "Qscr;": "\uD835\uDCAC", + "qscr;": "\uD835\uDCC6", + "quaternions;": "\u210D", + "quatint;": "\u2A16", + "quest;": "\u003F", + "questeq;": "\u225F", + "QUOT;": "\u0022", + "QUOT": "\u0022", + "quot;": "\u0022", + "quot": "\u0022", + "rAarr;": "\u21DB", + "race;": "\u223D\u0331", + "Racute;": "\u0154", + "racute;": "\u0155", + "radic;": "\u221A", + "raemptyv;": "\u29B3", + "Rang;": "\u27EB", + "rang;": "\u27E9", + "rangd;": "\u2992", + "range;": "\u29A5", + "rangle;": "\u27E9", + "raquo;": "\u00BB", + "raquo": "\u00BB", + "Rarr;": "\u21A0", + "rArr;": "\u21D2", + "rarr;": "\u2192", + "rarrap;": "\u2975", + "rarrb;": "\u21E5", + "rarrbfs;": "\u2920", + "rarrc;": "\u2933", + "rarrfs;": "\u291E", + "rarrhk;": "\u21AA", + "rarrlp;": "\u21AC", + "rarrpl;": "\u2945", + "rarrsim;": "\u2974", + "Rarrtl;": "\u2916", + "rarrtl;": "\u21A3", + "rarrw;": "\u219D", + "rAtail;": "\u291C", + "ratail;": "\u291A", + "ratio;": "\u2236", + "rationals;": "\u211A", + "RBarr;": "\u2910", + "rBarr;": "\u290F", + "rbarr;": "\u290D", + "rbbrk;": "\u2773", + "rbrace;": "\u007D", + "rbrack;": "\u005D", + "rbrke;": "\u298C", + "rbrksld;": "\u298E", + "rbrkslu;": "\u2990", + "Rcaron;": "\u0158", + "rcaron;": "\u0159", + "Rcedil;": "\u0156", + "rcedil;": "\u0157", + "rceil;": "\u2309", + "rcub;": "\u007D", + "Rcy;": "\u0420", + "rcy;": "\u0440", + "rdca;": "\u2937", + "rdldhar;": "\u2969", + "rdquo;": "\u201D", + "rdquor;": "\u201D", + "rdsh;": "\u21B3", + "Re;": "\u211C", + "real;": "\u211C", + "realine;": "\u211B", + "realpart;": "\u211C", + "reals;": "\u211D", + "rect;": "\u25AD", + "REG;": "\u00AE", + "REG": "\u00AE", + "reg;": "\u00AE", + "reg": "\u00AE", + "ReverseElement;": "\u220B", + "ReverseEquilibrium;": "\u21CB", + "ReverseUpEquilibrium;": "\u296F", + "rfisht;": "\u297D", + "rfloor;": "\u230B", + "Rfr;": "\u211C", + "rfr;": "\uD835\uDD2F", + "rHar;": "\u2964", + "rhard;": "\u21C1", + "rharu;": "\u21C0", + "rharul;": "\u296C", + "Rho;": "\u03A1", + "rho;": "\u03C1", + "rhov;": "\u03F1", + "RightAngleBracket;": "\u27E9", + "RightArrow;": "\u2192", + "Rightarrow;": "\u21D2", + "rightarrow;": "\u2192", + "RightArrowBar;": "\u21E5", + "RightArrowLeftArrow;": "\u21C4", + "rightarrowtail;": "\u21A3", + "RightCeiling;": "\u2309", + "RightDoubleBracket;": "\u27E7", + "RightDownTeeVector;": "\u295D", + "RightDownVector;": "\u21C2", + "RightDownVectorBar;": "\u2955", + "RightFloor;": "\u230B", + "rightharpoondown;": "\u21C1", + "rightharpoonup;": "\u21C0", + "rightleftarrows;": "\u21C4", + "rightleftharpoons;": "\u21CC", + "rightrightarrows;": "\u21C9", + "rightsquigarrow;": "\u219D", + "RightTee;": "\u22A2", + "RightTeeArrow;": "\u21A6", + "RightTeeVector;": "\u295B", + "rightthreetimes;": "\u22CC", + "RightTriangle;": "\u22B3", + "RightTriangleBar;": "\u29D0", + "RightTriangleEqual;": "\u22B5", + "RightUpDownVector;": "\u294F", + "RightUpTeeVector;": "\u295C", + "RightUpVector;": "\u21BE", + "RightUpVectorBar;": "\u2954", + "RightVector;": "\u21C0", + "RightVectorBar;": "\u2953", + "ring;": "\u02DA", + "risingdotseq;": "\u2253", + "rlarr;": "\u21C4", + "rlhar;": "\u21CC", + "rlm;": "\u200F", + "rmoust;": "\u23B1", + "rmoustache;": "\u23B1", + "rnmid;": "\u2AEE", + "roang;": "\u27ED", + "roarr;": "\u21FE", + "robrk;": "\u27E7", + "ropar;": "\u2986", + "Ropf;": "\u211D", + "ropf;": "\uD835\uDD63", + "roplus;": "\u2A2E", + "rotimes;": "\u2A35", + "RoundImplies;": "\u2970", + "rpar;": "\u0029", + "rpargt;": "\u2994", + "rppolint;": "\u2A12", + "rrarr;": "\u21C9", + "Rrightarrow;": "\u21DB", + "rsaquo;": "\u203A", + "Rscr;": "\u211B", + "rscr;": "\uD835\uDCC7", + "Rsh;": "\u21B1", + "rsh;": "\u21B1", + "rsqb;": "\u005D", + "rsquo;": "\u2019", + "rsquor;": "\u2019", + "rthree;": "\u22CC", + "rtimes;": "\u22CA", + "rtri;": "\u25B9", + "rtrie;": "\u22B5", + "rtrif;": "\u25B8", + "rtriltri;": "\u29CE", + "RuleDelayed;": "\u29F4", + "ruluhar;": "\u2968", + "rx;": "\u211E", + "Sacute;": "\u015A", + "sacute;": "\u015B", + "sbquo;": "\u201A", + "Sc;": "\u2ABC", + "sc;": "\u227B", + "scap;": "\u2AB8", + "Scaron;": "\u0160", + "scaron;": "\u0161", + "sccue;": "\u227D", + "scE;": "\u2AB4", + "sce;": "\u2AB0", + "Scedil;": "\u015E", + "scedil;": "\u015F", + "Scirc;": "\u015C", + "scirc;": "\u015D", + "scnap;": "\u2ABA", + "scnE;": "\u2AB6", + "scnsim;": "\u22E9", + "scpolint;": "\u2A13", + "scsim;": "\u227F", + "Scy;": "\u0421", + "scy;": "\u0441", + "sdot;": "\u22C5", + "sdotb;": "\u22A1", + "sdote;": "\u2A66", + "searhk;": "\u2925", + "seArr;": "\u21D8", + "searr;": "\u2198", + "searrow;": "\u2198", + "sect;": "\u00A7", + "sect": "\u00A7", + "semi;": "\u003B", + "seswar;": "\u2929", + "setminus;": "\u2216", + "setmn;": "\u2216", + "sext;": "\u2736", + "Sfr;": "\uD835\uDD16", + "sfr;": "\uD835\uDD30", + "sfrown;": "\u2322", + "sharp;": "\u266F", + "SHCHcy;": "\u0429", + "shchcy;": "\u0449", + "SHcy;": "\u0428", + "shcy;": "\u0448", + "ShortDownArrow;": "\u2193", + "ShortLeftArrow;": "\u2190", + "shortmid;": "\u2223", + "shortparallel;": "\u2225", + "ShortRightArrow;": "\u2192", + "ShortUpArrow;": "\u2191", + "shy;": "\u00AD", + "shy": "\u00AD", + "Sigma;": "\u03A3", + "sigma;": "\u03C3", + "sigmaf;": "\u03C2", + "sigmav;": "\u03C2", + "sim;": "\u223C", + "simdot;": "\u2A6A", + "sime;": "\u2243", + "simeq;": "\u2243", + "simg;": "\u2A9E", + "simgE;": "\u2AA0", + "siml;": "\u2A9D", + "simlE;": "\u2A9F", + "simne;": "\u2246", + "simplus;": "\u2A24", + "simrarr;": "\u2972", + "slarr;": "\u2190", + "SmallCircle;": "\u2218", + "smallsetminus;": "\u2216", + "smashp;": "\u2A33", + "smeparsl;": "\u29E4", + "smid;": "\u2223", + "smile;": "\u2323", + "smt;": "\u2AAA", + "smte;": "\u2AAC", + "smtes;": "\u2AAC\uFE00", + "SOFTcy;": "\u042C", + "softcy;": "\u044C", + "sol;": "\u002F", + "solb;": "\u29C4", + "solbar;": "\u233F", + "Sopf;": "\uD835\uDD4A", + "sopf;": "\uD835\uDD64", + "spades;": "\u2660", + "spadesuit;": "\u2660", + "spar;": "\u2225", + "sqcap;": "\u2293", + "sqcaps;": "\u2293\uFE00", + "sqcup;": "\u2294", + "sqcups;": "\u2294\uFE00", + "Sqrt;": "\u221A", + "sqsub;": "\u228F", + "sqsube;": "\u2291", + "sqsubset;": "\u228F", + "sqsubseteq;": "\u2291", + "sqsup;": "\u2290", + "sqsupe;": "\u2292", + "sqsupset;": "\u2290", + "sqsupseteq;": "\u2292", + "squ;": "\u25A1", + "Square;": "\u25A1", + "square;": "\u25A1", + "SquareIntersection;": "\u2293", + "SquareSubset;": "\u228F", + "SquareSubsetEqual;": "\u2291", + "SquareSuperset;": "\u2290", + "SquareSupersetEqual;": "\u2292", + "SquareUnion;": "\u2294", + "squarf;": "\u25AA", + "squf;": "\u25AA", + "srarr;": "\u2192", + "Sscr;": "\uD835\uDCAE", + "sscr;": "\uD835\uDCC8", + "ssetmn;": "\u2216", + "ssmile;": "\u2323", + "sstarf;": "\u22C6", + "Star;": "\u22C6", + "star;": "\u2606", + "starf;": "\u2605", + "straightepsilon;": "\u03F5", + "straightphi;": "\u03D5", + "strns;": "\u00AF", + "Sub;": "\u22D0", + "sub;": "\u2282", + "subdot;": "\u2ABD", + "subE;": "\u2AC5", + "sube;": "\u2286", + "subedot;": "\u2AC3", + "submult;": "\u2AC1", + "subnE;": "\u2ACB", + "subne;": "\u228A", + "subplus;": "\u2ABF", + "subrarr;": "\u2979", + "Subset;": "\u22D0", + "subset;": "\u2282", + "subseteq;": "\u2286", + "subseteqq;": "\u2AC5", + "SubsetEqual;": "\u2286", + "subsetneq;": "\u228A", + "subsetneqq;": "\u2ACB", + "subsim;": "\u2AC7", + "subsub;": "\u2AD5", + "subsup;": "\u2AD3", + "succ;": "\u227B", + "succapprox;": "\u2AB8", + "succcurlyeq;": "\u227D", + "Succeeds;": "\u227B", + "SucceedsEqual;": "\u2AB0", + "SucceedsSlantEqual;": "\u227D", + "SucceedsTilde;": "\u227F", + "succeq;": "\u2AB0", + "succnapprox;": "\u2ABA", + "succneqq;": "\u2AB6", + "succnsim;": "\u22E9", + "succsim;": "\u227F", + "SuchThat;": "\u220B", + "Sum;": "\u2211", + "sum;": "\u2211", + "sung;": "\u266A", + "Sup;": "\u22D1", + "sup;": "\u2283", + "sup1;": "\u00B9", + "sup1": "\u00B9", + "sup2;": "\u00B2", + "sup2": "\u00B2", + "sup3;": "\u00B3", + "sup3": "\u00B3", + "supdot;": "\u2ABE", + "supdsub;": "\u2AD8", + "supE;": "\u2AC6", + "supe;": "\u2287", + "supedot;": "\u2AC4", + "Superset;": "\u2283", + "SupersetEqual;": "\u2287", + "suphsol;": "\u27C9", + "suphsub;": "\u2AD7", + "suplarr;": "\u297B", + "supmult;": "\u2AC2", + "supnE;": "\u2ACC", + "supne;": "\u228B", + "supplus;": "\u2AC0", + "Supset;": "\u22D1", + "supset;": "\u2283", + "supseteq;": "\u2287", + "supseteqq;": "\u2AC6", + "supsetneq;": "\u228B", + "supsetneqq;": "\u2ACC", + "supsim;": "\u2AC8", + "supsub;": "\u2AD4", + "supsup;": "\u2AD6", + "swarhk;": "\u2926", + "swArr;": "\u21D9", + "swarr;": "\u2199", + "swarrow;": "\u2199", + "swnwar;": "\u292A", + "szlig;": "\u00DF", + "szlig": "\u00DF", + "Tab;": "\u0009", + "target;": "\u2316", + "Tau;": "\u03A4", + "tau;": "\u03C4", + "tbrk;": "\u23B4", + "Tcaron;": "\u0164", + "tcaron;": "\u0165", + "Tcedil;": "\u0162", + "tcedil;": "\u0163", + "Tcy;": "\u0422", + "tcy;": "\u0442", + "tdot;": "\u20DB", + "telrec;": "\u2315", + "Tfr;": "\uD835\uDD17", + "tfr;": "\uD835\uDD31", + "there4;": "\u2234", + "Therefore;": "\u2234", + "therefore;": "\u2234", + "Theta;": "\u0398", + "theta;": "\u03B8", + "thetasym;": "\u03D1", + "thetav;": "\u03D1", + "thickapprox;": "\u2248", + "thicksim;": "\u223C", + "ThickSpace;": "\u205F\u200A", + "thinsp;": "\u2009", + "ThinSpace;": "\u2009", + "thkap;": "\u2248", + "thksim;": "\u223C", + "THORN;": "\u00DE", + "THORN": "\u00DE", + "thorn;": "\u00FE", + "thorn": "\u00FE", + "Tilde;": "\u223C", + "tilde;": "\u02DC", + "TildeEqual;": "\u2243", + "TildeFullEqual;": "\u2245", + "TildeTilde;": "\u2248", + "times;": "\u00D7", + "times": "\u00D7", + "timesb;": "\u22A0", + "timesbar;": "\u2A31", + "timesd;": "\u2A30", + "tint;": "\u222D", + "toea;": "\u2928", + "top;": "\u22A4", + "topbot;": "\u2336", + "topcir;": "\u2AF1", + "Topf;": "\uD835\uDD4B", + "topf;": "\uD835\uDD65", + "topfork;": "\u2ADA", + "tosa;": "\u2929", + "tprime;": "\u2034", + "TRADE;": "\u2122", + "trade;": "\u2122", + "triangle;": "\u25B5", + "triangledown;": "\u25BF", + "triangleleft;": "\u25C3", + "trianglelefteq;": "\u22B4", + "triangleq;": "\u225C", + "triangleright;": "\u25B9", + "trianglerighteq;": "\u22B5", + "tridot;": "\u25EC", + "trie;": "\u225C", + "triminus;": "\u2A3A", + "TripleDot;": "\u20DB", + "triplus;": "\u2A39", + "trisb;": "\u29CD", + "tritime;": "\u2A3B", + "trpezium;": "\u23E2", + "Tscr;": "\uD835\uDCAF", + "tscr;": "\uD835\uDCC9", + "TScy;": "\u0426", + "tscy;": "\u0446", + "TSHcy;": "\u040B", + "tshcy;": "\u045B", + "Tstrok;": "\u0166", + "tstrok;": "\u0167", + "twixt;": "\u226C", + "twoheadleftarrow;": "\u219E", + "twoheadrightarrow;": "\u21A0", + "Uacute;": "\u00DA", + "Uacute": "\u00DA", + "uacute;": "\u00FA", + "uacute": "\u00FA", + "Uarr;": "\u219F", + "uArr;": "\u21D1", + "uarr;": "\u2191", + "Uarrocir;": "\u2949", + "Ubrcy;": "\u040E", + "ubrcy;": "\u045E", + "Ubreve;": "\u016C", + "ubreve;": "\u016D", + "Ucirc;": "\u00DB", + "Ucirc": "\u00DB", + "ucirc;": "\u00FB", + "ucirc": "\u00FB", + "Ucy;": "\u0423", + "ucy;": "\u0443", + "udarr;": "\u21C5", + "Udblac;": "\u0170", + "udblac;": "\u0171", + "udhar;": "\u296E", + "ufisht;": "\u297E", + "Ufr;": "\uD835\uDD18", + "ufr;": "\uD835\uDD32", + "Ugrave;": "\u00D9", + "Ugrave": "\u00D9", + "ugrave;": "\u00F9", + "ugrave": "\u00F9", + "uHar;": "\u2963", + "uharl;": "\u21BF", + "uharr;": "\u21BE", + "uhblk;": "\u2580", + "ulcorn;": "\u231C", + "ulcorner;": "\u231C", + "ulcrop;": "\u230F", + "ultri;": "\u25F8", + "Umacr;": "\u016A", + "umacr;": "\u016B", + "uml;": "\u00A8", + "uml": "\u00A8", + "UnderBar;": "\u005F", + "UnderBrace;": "\u23DF", + "UnderBracket;": "\u23B5", + "UnderParenthesis;": "\u23DD", + "Union;": "\u22C3", + "UnionPlus;": "\u228E", + "Uogon;": "\u0172", + "uogon;": "\u0173", + "Uopf;": "\uD835\uDD4C", + "uopf;": "\uD835\uDD66", + "UpArrow;": "\u2191", + "Uparrow;": "\u21D1", + "uparrow;": "\u2191", + "UpArrowBar;": "\u2912", + "UpArrowDownArrow;": "\u21C5", + "UpDownArrow;": "\u2195", + "Updownarrow;": "\u21D5", + "updownarrow;": "\u2195", + "UpEquilibrium;": "\u296E", + "upharpoonleft;": "\u21BF", + "upharpoonright;": "\u21BE", + "uplus;": "\u228E", + "UpperLeftArrow;": "\u2196", + "UpperRightArrow;": "\u2197", + "Upsi;": "\u03D2", + "upsi;": "\u03C5", + "upsih;": "\u03D2", + "Upsilon;": "\u03A5", + "upsilon;": "\u03C5", + "UpTee;": "\u22A5", + "UpTeeArrow;": "\u21A5", + "upuparrows;": "\u21C8", + "urcorn;": "\u231D", + "urcorner;": "\u231D", + "urcrop;": "\u230E", + "Uring;": "\u016E", + "uring;": "\u016F", + "urtri;": "\u25F9", + "Uscr;": "\uD835\uDCB0", + "uscr;": "\uD835\uDCCA", + "utdot;": "\u22F0", + "Utilde;": "\u0168", + "utilde;": "\u0169", + "utri;": "\u25B5", + "utrif;": "\u25B4", + "uuarr;": "\u21C8", + "Uuml;": "\u00DC", + "Uuml": "\u00DC", + "uuml;": "\u00FC", + "uuml": "\u00FC", + "uwangle;": "\u29A7", + "vangrt;": "\u299C", + "varepsilon;": "\u03F5", + "varkappa;": "\u03F0", + "varnothing;": "\u2205", + "varphi;": "\u03D5", + "varpi;": "\u03D6", + "varpropto;": "\u221D", + "vArr;": "\u21D5", + "varr;": "\u2195", + "varrho;": "\u03F1", + "varsigma;": "\u03C2", + "varsubsetneq;": "\u228A\uFE00", + "varsubsetneqq;": "\u2ACB\uFE00", + "varsupsetneq;": "\u228B\uFE00", + "varsupsetneqq;": "\u2ACC\uFE00", + "vartheta;": "\u03D1", + "vartriangleleft;": "\u22B2", + "vartriangleright;": "\u22B3", + "Vbar;": "\u2AEB", + "vBar;": "\u2AE8", + "vBarv;": "\u2AE9", + "Vcy;": "\u0412", + "vcy;": "\u0432", + "VDash;": "\u22AB", + "Vdash;": "\u22A9", + "vDash;": "\u22A8", + "vdash;": "\u22A2", + "Vdashl;": "\u2AE6", + "Vee;": "\u22C1", + "vee;": "\u2228", + "veebar;": "\u22BB", + "veeeq;": "\u225A", + "vellip;": "\u22EE", + "Verbar;": "\u2016", + "verbar;": "\u007C", + "Vert;": "\u2016", + "vert;": "\u007C", + "VerticalBar;": "\u2223", + "VerticalLine;": "\u007C", + "VerticalSeparator;": "\u2758", + "VerticalTilde;": "\u2240", + "VeryThinSpace;": "\u200A", + "Vfr;": "\uD835\uDD19", + "vfr;": "\uD835\uDD33", + "vltri;": "\u22B2", + "vnsub;": "\u2282\u20D2", + "vnsup;": "\u2283\u20D2", + "Vopf;": "\uD835\uDD4D", + "vopf;": "\uD835\uDD67", + "vprop;": "\u221D", + "vrtri;": "\u22B3", + "Vscr;": "\uD835\uDCB1", + "vscr;": "\uD835\uDCCB", + "vsubnE;": "\u2ACB\uFE00", + "vsubne;": "\u228A\uFE00", + "vsupnE;": "\u2ACC\uFE00", + "vsupne;": "\u228B\uFE00", + "Vvdash;": "\u22AA", + "vzigzag;": "\u299A", + "Wcirc;": "\u0174", + "wcirc;": "\u0175", + "wedbar;": "\u2A5F", + "Wedge;": "\u22C0", + "wedge;": "\u2227", + "wedgeq;": "\u2259", + "weierp;": "\u2118", + "Wfr;": "\uD835\uDD1A", + "wfr;": "\uD835\uDD34", + "Wopf;": "\uD835\uDD4E", + "wopf;": "\uD835\uDD68", + "wp;": "\u2118", + "wr;": "\u2240", + "wreath;": "\u2240", + "Wscr;": "\uD835\uDCB2", + "wscr;": "\uD835\uDCCC", + "xcap;": "\u22C2", + "xcirc;": "\u25EF", + "xcup;": "\u22C3", + "xdtri;": "\u25BD", + "Xfr;": "\uD835\uDD1B", + "xfr;": "\uD835\uDD35", + "xhArr;": "\u27FA", + "xharr;": "\u27F7", + "Xi;": "\u039E", + "xi;": "\u03BE", + "xlArr;": "\u27F8", + "xlarr;": "\u27F5", + "xmap;": "\u27FC", + "xnis;": "\u22FB", + "xodot;": "\u2A00", + "Xopf;": "\uD835\uDD4F", + "xopf;": "\uD835\uDD69", + "xoplus;": "\u2A01", + "xotime;": "\u2A02", + "xrArr;": "\u27F9", + "xrarr;": "\u27F6", + "Xscr;": "\uD835\uDCB3", + "xscr;": "\uD835\uDCCD", + "xsqcup;": "\u2A06", + "xuplus;": "\u2A04", + "xutri;": "\u25B3", + "xvee;": "\u22C1", + "xwedge;": "\u22C0", + "Yacute;": "\u00DD", + "Yacute": "\u00DD", + "yacute;": "\u00FD", + "yacute": "\u00FD", + "YAcy;": "\u042F", + "yacy;": "\u044F", + "Ycirc;": "\u0176", + "ycirc;": "\u0177", + "Ycy;": "\u042B", + "ycy;": "\u044B", + "yen;": "\u00A5", + "yen": "\u00A5", + "Yfr;": "\uD835\uDD1C", + "yfr;": "\uD835\uDD36", + "YIcy;": "\u0407", + "yicy;": "\u0457", + "Yopf;": "\uD835\uDD50", + "yopf;": "\uD835\uDD6A", + "Yscr;": "\uD835\uDCB4", + "yscr;": "\uD835\uDCCE", + "YUcy;": "\u042E", + "yucy;": "\u044E", + "Yuml;": "\u0178", + "yuml;": "\u00FF", + "yuml": "\u00FF", + "Zacute;": "\u0179", + "zacute;": "\u017A", + "Zcaron;": "\u017D", + "zcaron;": "\u017E", + "Zcy;": "\u0417", + "zcy;": "\u0437", + "Zdot;": "\u017B", + "zdot;": "\u017C", + "zeetrf;": "\u2128", + "ZeroWidthSpace;": "\u200B", + "Zeta;": "\u0396", + "zeta;": "\u03B6", + "Zfr;": "\u2128", + "zfr;": "\uD835\uDD37", + "ZHcy;": "\u0416", + "zhcy;": "\u0436", + "zigrarr;": "\u21DD", + "Zopf;": "\u2124", + "zopf;": "\uD835\uDD6B", + "Zscr;": "\uD835\uDCB5", + "zscr;": "\uD835\uDCCF", + "zwj;": "\u200D", + "zwnj;": "\u200C" +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function startsWith(haystack, needle) { + if (haystack.length < needle.length) { + return false; + } + for (let i = 0; i < needle.length; i++) { + if (haystack[i] !== needle[i]) { + return false; + } + } + return true; +} +/** + * Determines if haystack ends with needle. + */ +function endsWith(haystack, needle) { + const diff = haystack.length - needle.length; + if (diff > 0) { + return haystack.lastIndexOf(needle) === diff; + } + else if (diff === 0) { + return haystack === needle; + } + else { + return false; + } +} +function repeat(value, count) { + let s = ''; + while (count > 0) { + if ((count & 1) === 1) { + s += value; + } + value += value; + count = count >>> 1; + } + return s; +} +const _a = 'a'.charCodeAt(0); +const _z = 'z'.charCodeAt(0); +const _A = 'A'.charCodeAt(0); +const _Z = 'Z'.charCodeAt(0); +const _0 = '0'.charCodeAt(0); +const _9 = '9'.charCodeAt(0); +function isLetterOrDigit(text, index) { + const c = text.charCodeAt(index); + return (_a <= c && c <= _z) || (_A <= c && c <= _Z) || (_0 <= c && c <= _9); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function isDefined(obj) { + return typeof obj !== 'undefined'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function normalizeMarkupContent(input) { + if (!input) { + return undefined; + } + if (typeof input === 'string') { + return { + kind: 'markdown', + value: input + }; + } + return { + kind: 'markdown', + value: input.value + }; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLDataProvider { + isApplicable() { + return true; + } + /** + * Currently, unversioned data uses the V1 implementation + * In the future when the provider handles multiple versions of HTML custom data, + * use the latest implementation for unversioned data + */ + constructor(id, customData) { + this.id = id; + this._tags = []; + this._tagMap = {}; + this._valueSetMap = {}; + this._tags = customData.tags || []; + this._globalAttributes = customData.globalAttributes || []; + this._tags.forEach(t => { + this._tagMap[t.name.toLowerCase()] = t; + }); + if (customData.valueSets) { + customData.valueSets.forEach(vs => { + this._valueSetMap[vs.name] = vs.values; + }); + } + } + getId() { + return this.id; + } + provideTags() { + return this._tags; + } + provideAttributes(tag) { + const attributes = []; + const processAttribute = (a) => { + attributes.push(a); + }; + const tagEntry = this._tagMap[tag.toLowerCase()]; + if (tagEntry) { + tagEntry.attributes.forEach(processAttribute); + } + this._globalAttributes.forEach(processAttribute); + return attributes; + } + provideValues(tag, attribute) { + const values = []; + attribute = attribute.toLowerCase(); + const processAttributes = (attributes) => { + attributes.forEach(a => { + if (a.name.toLowerCase() === attribute) { + if (a.values) { + a.values.forEach(v => { + values.push(v); + }); + } + if (a.valueSet) { + if (this._valueSetMap[a.valueSet]) { + this._valueSetMap[a.valueSet].forEach(v => { + values.push(v); + }); + } + } + } + }); + }; + const tagEntry = this._tagMap[tag.toLowerCase()]; + if (tagEntry) { + processAttributes(tagEntry.attributes); + } + processAttributes(this._globalAttributes); + return values; + } +} +/** + * Generate Documentation used in hover/complete + * From `documentation` and `references` + */ +function generateDocumentation(item, settings = {}, doesSupportMarkdown) { + const result = { + kind: doesSupportMarkdown ? 'markdown' : 'plaintext', + value: '' + }; + if (item.description && settings.documentation !== false) { + const normalizedDescription = normalizeMarkupContent(item.description); + if (normalizedDescription) { + result.value += normalizedDescription.value; + } + } + if (item.references && item.references.length > 0 && settings.references !== false) { + if (result.value.length) { + result.value += `\n\n`; + } + if (doesSupportMarkdown) { + result.value += item.references.map(r => { + return `[${r.name}](${r.url})`; + }).join(' | '); + } + else { + result.value += item.references.map(r => { + return `${r.name}: ${r.url}`; + }).join('\n'); + } + } + if (result.value === '') { + return undefined; + } + return result; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class PathCompletionParticipant { + constructor(dataManager, readDirectory) { + this.dataManager = dataManager; + this.readDirectory = readDirectory; + this.atributeCompletions = []; + } + onHtmlAttributeValue(context) { + if (this.dataManager.isPathAttribute(context.tag, context.attribute)) { + this.atributeCompletions.push(context); + } + } + async computeCompletions(document, documentContext) { + const result = { items: [], isIncomplete: false }; + for (const attributeCompletion of this.atributeCompletions) { + const fullValue = stripQuotes(document.getText(attributeCompletion.range)); + if (isCompletablePath(fullValue)) { + if (fullValue === '.' || fullValue === '..') { + result.isIncomplete = true; + } + else { + const replaceRange = pathToReplaceRange(attributeCompletion.value, fullValue, attributeCompletion.range); + const suggestions = await this.providePathSuggestions(attributeCompletion.value, replaceRange, document, documentContext); + for (const item of suggestions) { + result.items.push(item); + } + } + } + } + return result; + } + async providePathSuggestions(valueBeforeCursor, replaceRange, document, documentContext) { + const valueBeforeLastSlash = valueBeforeCursor.substring(0, valueBeforeCursor.lastIndexOf('/') + 1); // keep the last slash + let parentDir = documentContext.resolveReference(valueBeforeLastSlash || '.', document.uri); + if (parentDir) { + try { + const result = []; + const infos = await this.readDirectory(parentDir); + for (const [name, type] of infos) { + // Exclude paths that start with `.` + if (name.charCodeAt(0) !== CharCode_dot) { + result.push(createCompletionItem(name, type === FileType.Directory, replaceRange)); + } + } + return result; + } + catch (e) { + // ignore + } + } + return []; + } +} +const CharCode_dot = '.'.charCodeAt(0); +function stripQuotes(fullValue) { + if (startsWith(fullValue, `'`) || startsWith(fullValue, `"`)) { + return fullValue.slice(1, -1); + } + else { + return fullValue; + } +} +function isCompletablePath(value) { + if (startsWith(value, 'http') || startsWith(value, 'https') || startsWith(value, '//')) { + return false; + } + return true; +} +function pathToReplaceRange(valueBeforeCursor, fullValue, range) { + let replaceRange; + const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/'); + if (lastIndexOfSlash === -1) { + replaceRange = shiftRange(range, 1, -1); + } + else { + // For cases where cursor is in the middle of attribute value, like <script src="./s|rc/test.js"> + // Find the last slash before cursor, and calculate the start of replace range from there + const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1); + const startPos = shiftPosition(range.end, -1 - valueAfterLastSlash.length); + // If whitespace exists, replace until there is no more + const whitespaceIndex = valueAfterLastSlash.indexOf(' '); + let endPos; + if (whitespaceIndex !== -1) { + endPos = shiftPosition(startPos, whitespaceIndex); + } + else { + endPos = shiftPosition(range.end, -1); + } + replaceRange = Range$a.create(startPos, endPos); + } + return replaceRange; +} +function createCompletionItem(p, isDir, replaceRange) { + if (isDir) { + p = p + '/'; + return { + label: p, + kind: CompletionItemKind.Folder, + textEdit: TextEdit.replace(replaceRange, p), + command: { + title: 'Suggest', + command: 'editor.action.triggerSuggest' + } + }; + } + else { + return { + label: p, + kind: CompletionItemKind.File, + textEdit: TextEdit.replace(replaceRange, p) + }; + } +} +function shiftPosition(pos, offset) { + return Position.create(pos.line, pos.character + offset); +} +function shiftRange(range, startOffset, endOffset) { + const start = shiftPosition(range.start, startOffset); + const end = shiftPosition(range.end, endOffset); + return Range$a.create(start, end); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLCompletion { + constructor(lsOptions, dataManager) { + this.lsOptions = lsOptions; + this.dataManager = dataManager; + this.completionParticipants = []; + } + setCompletionParticipants(registeredCompletionParticipants) { + this.completionParticipants = registeredCompletionParticipants || []; + } + async doComplete2(document, position, htmlDocument, documentContext, settings) { + if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory) { + return this.doComplete(document, position, htmlDocument, settings); + } + const participant = new PathCompletionParticipant(this.dataManager, this.lsOptions.fileSystemProvider.readDirectory); + const contributedParticipants = this.completionParticipants; + this.completionParticipants = [participant].concat(contributedParticipants); + const result = this.doComplete(document, position, htmlDocument, settings); + try { + const pathCompletionResult = await participant.computeCompletions(document, documentContext); + return { + isIncomplete: result.isIncomplete || pathCompletionResult.isIncomplete, + items: pathCompletionResult.items.concat(result.items) + }; + } + finally { + this.completionParticipants = contributedParticipants; + } + } + doComplete(document, position, htmlDocument, settings) { + const result = this._doComplete(document, position, htmlDocument, settings); + return this.convertCompletionList(result); + } + _doComplete(document, position, htmlDocument, settings) { + const result = { + isIncomplete: false, + items: [] + }; + const completionParticipants = this.completionParticipants; + const dataProviders = this.dataManager.getDataProviders().filter(p => p.isApplicable(document.languageId) && (!settings || settings[p.getId()] !== false)); + const doesSupportMarkdown = this.doesSupportMarkdown(); + const text = document.getText(); + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeBefore(offset); + if (!node) { + return result; + } + const scanner = createScanner(text, node.start); + let currentTag = ''; + let currentAttributeName; + let voidElements; + function getReplaceRange(replaceStart, replaceEnd = offset) { + if (replaceStart > offset) { + replaceStart = offset; + } + return { start: document.positionAt(replaceStart), end: document.positionAt(replaceEnd) }; + } + function collectOpenTagSuggestions(afterOpenBracket, tagNameEnd) { + const range = getReplaceRange(afterOpenBracket, tagNameEnd); + dataProviders.forEach((provider) => { + provider.provideTags().forEach(tag => { + result.items.push({ + label: tag.name, + kind: CompletionItemKind.Property, + documentation: generateDocumentation(tag, undefined, doesSupportMarkdown), + textEdit: TextEdit.replace(range, tag.name), + insertTextFormat: InsertTextFormat.PlainText + }); + }); + }); + return result; + } + function getLineIndent(offset) { + let start = offset; + while (start > 0) { + const ch = text.charAt(start - 1); + if ("\n\r".indexOf(ch) >= 0) { + return text.substring(start, offset); + } + if (!isWhiteSpace(ch)) { + return null; + } + start--; + } + return text.substring(0, offset); + } + function collectCloseTagSuggestions(afterOpenBracket, inOpenTag, tagNameEnd = offset) { + const range = getReplaceRange(afterOpenBracket, tagNameEnd); + const closeTag = isFollowedBy(text, tagNameEnd, ScannerState.WithinEndTag, TokenType.EndTagClose) ? '' : '>'; + let curr = node; + if (inOpenTag) { + curr = curr.parent; // don't suggest the own tag, it's not yet open + } + while (curr) { + const tag = curr.tag; + if (tag && (!curr.closed || curr.endTagStart && (curr.endTagStart > offset))) { + const item = { + label: '/' + tag, + kind: CompletionItemKind.Property, + filterText: '/' + tag, + textEdit: TextEdit.replace(range, '/' + tag + closeTag), + insertTextFormat: InsertTextFormat.PlainText + }; + const startIndent = getLineIndent(curr.start); + const endIndent = getLineIndent(afterOpenBracket - 1); + if (startIndent !== null && endIndent !== null && startIndent !== endIndent) { + const insertText = startIndent + '</' + tag + closeTag; + item.textEdit = TextEdit.replace(getReplaceRange(afterOpenBracket - 1 - endIndent.length), insertText); + item.filterText = endIndent + '</' + tag; + } + result.items.push(item); + return result; + } + curr = curr.parent; + } + if (inOpenTag) { + return result; + } + dataProviders.forEach(provider => { + provider.provideTags().forEach(tag => { + result.items.push({ + label: '/' + tag.name, + kind: CompletionItemKind.Property, + documentation: generateDocumentation(tag, undefined, doesSupportMarkdown), + filterText: '/' + tag.name + closeTag, + textEdit: TextEdit.replace(range, '/' + tag.name + closeTag), + insertTextFormat: InsertTextFormat.PlainText + }); + }); + }); + return result; + } + const collectAutoCloseTagSuggestion = (tagCloseEnd, tag) => { + if (settings && settings.hideAutoCompleteProposals) { + return result; + } + voidElements ?? (voidElements = this.dataManager.getVoidElements(dataProviders)); + if (!this.dataManager.isVoidElement(tag, voidElements)) { + const pos = document.positionAt(tagCloseEnd); + result.items.push({ + label: '</' + tag + '>', + kind: CompletionItemKind.Property, + filterText: '</' + tag + '>', + textEdit: TextEdit.insert(pos, '$0</' + tag + '>'), + insertTextFormat: InsertTextFormat.Snippet + }); + } + return result; + }; + function collectTagSuggestions(tagStart, tagEnd) { + collectOpenTagSuggestions(tagStart, tagEnd); + collectCloseTagSuggestions(tagStart, true, tagEnd); + return result; + } + function getExistingAttributes() { + const existingAttributes = Object.create(null); + node.attributeNames.forEach(attribute => { + existingAttributes[attribute] = true; + }); + return existingAttributes; + } + function collectAttributeNameSuggestions(nameStart, nameEnd = offset) { + let replaceEnd = offset; + while (replaceEnd < nameEnd && text[replaceEnd] !== '<') { // < is a valid attribute name character, but we rather assume the attribute name ends. See #23236. + replaceEnd++; + } + const currentAttribute = text.substring(nameStart, nameEnd); + const range = getReplaceRange(nameStart, replaceEnd); + let value = ''; + if (!isFollowedBy(text, nameEnd, ScannerState.AfterAttributeName, TokenType.DelimiterAssign)) { + const defaultValue = settings?.attributeDefaultValue ?? 'doublequotes'; + if (defaultValue === 'empty') { + value = '=$1'; + } + else if (defaultValue === 'singlequotes') { + value = '=\'$1\''; + } + else { + value = '="$1"'; + } + } + const seenAttributes = getExistingAttributes(); + // include current typing attribute + seenAttributes[currentAttribute] = false; + dataProviders.forEach(provider => { + provider.provideAttributes(currentTag).forEach(attr => { + if (seenAttributes[attr.name]) { + return; + } + seenAttributes[attr.name] = true; + let codeSnippet = attr.name; + let command; + if (attr.valueSet !== 'v' && value.length) { + codeSnippet = codeSnippet + value; + if (attr.valueSet || attr.name === 'style') { + command = { + title: 'Suggest', + command: 'editor.action.triggerSuggest' + }; + } + } + result.items.push({ + label: attr.name, + kind: attr.valueSet === 'handler' ? CompletionItemKind.Function : CompletionItemKind.Value, + documentation: generateDocumentation(attr, undefined, doesSupportMarkdown), + textEdit: TextEdit.replace(range, codeSnippet), + insertTextFormat: InsertTextFormat.Snippet, + command + }); + }); + }); + collectDataAttributesSuggestions(range, seenAttributes); + return result; + } + function collectDataAttributesSuggestions(range, seenAttributes) { + const dataAttr = 'data-'; + const dataAttributes = {}; + dataAttributes[dataAttr] = `${dataAttr}$1="$2"`; + function addNodeDataAttributes(node) { + node.attributeNames.forEach(attr => { + if (startsWith(attr, dataAttr) && !dataAttributes[attr] && !seenAttributes[attr]) { + dataAttributes[attr] = attr + '="$1"'; + } + }); + node.children.forEach(child => addNodeDataAttributes(child)); + } + if (htmlDocument) { + htmlDocument.roots.forEach(root => addNodeDataAttributes(root)); + } + Object.keys(dataAttributes).forEach(attr => result.items.push({ + label: attr, + kind: CompletionItemKind.Value, + textEdit: TextEdit.replace(range, dataAttributes[attr]), + insertTextFormat: InsertTextFormat.Snippet + })); + } + function collectAttributeValueSuggestions(valueStart, valueEnd = offset) { + let range; + let addQuotes; + let valuePrefix; + if (offset > valueStart && offset <= valueEnd && isQuote(text[valueStart])) { + // inside quoted attribute + const valueContentStart = valueStart + 1; + let valueContentEnd = valueEnd; + // valueEnd points to the char after quote, which encloses the replace range + if (valueEnd > valueStart && text[valueEnd - 1] === text[valueStart]) { + valueContentEnd--; + } + const wsBefore = getWordStart(text, offset, valueContentStart); + const wsAfter = getWordEnd(text, offset, valueContentEnd); + range = getReplaceRange(wsBefore, wsAfter); + valuePrefix = offset >= valueContentStart && offset <= valueContentEnd ? text.substring(valueContentStart, offset) : ''; + addQuotes = false; + } + else { + range = getReplaceRange(valueStart, valueEnd); + valuePrefix = text.substring(valueStart, offset); + addQuotes = true; + } + if (completionParticipants.length > 0) { + const tag = currentTag.toLowerCase(); + const attribute = currentAttributeName.toLowerCase(); + const fullRange = getReplaceRange(valueStart, valueEnd); + for (const participant of completionParticipants) { + if (participant.onHtmlAttributeValue) { + participant.onHtmlAttributeValue({ document, position, tag, attribute, value: valuePrefix, range: fullRange }); + } + } + } + dataProviders.forEach(provider => { + provider.provideValues(currentTag, currentAttributeName).forEach(value => { + const insertText = addQuotes ? '"' + value.name + '"' : value.name; + result.items.push({ + label: value.name, + filterText: insertText, + kind: CompletionItemKind.Unit, + documentation: generateDocumentation(value, undefined, doesSupportMarkdown), + textEdit: TextEdit.replace(range, insertText), + insertTextFormat: InsertTextFormat.PlainText + }); + }); + }); + collectCharacterEntityProposals(); + return result; + } + function scanNextForEndPos(nextToken) { + if (offset === scanner.getTokenEnd()) { + token = scanner.scan(); + if (token === nextToken && scanner.getTokenOffset() === offset) { + return scanner.getTokenEnd(); + } + } + return offset; + } + function collectInsideContent() { + for (const participant of completionParticipants) { + if (participant.onHtmlContent) { + participant.onHtmlContent({ document, position }); + } + } + return collectCharacterEntityProposals(); + } + function collectCharacterEntityProposals() { + // character entities + let k = offset - 1; + let characterStart = position.character; + while (k >= 0 && isLetterOrDigit(text, k)) { + k--; + characterStart--; + } + if (k >= 0 && text[k] === '&') { + const range = Range$a.create(Position.create(position.line, characterStart - 1), position); + for (const entity in entities) { + if (endsWith(entity, ';')) { + const label = '&' + entity; + result.items.push({ + label, + kind: CompletionItemKind.Keyword, + documentation: t$2('Character entity representing \'{0}\'', entities[entity]), + textEdit: TextEdit.replace(range, label), + insertTextFormat: InsertTextFormat.PlainText + }); + } + } + } + return result; + } + function suggestDoctype(replaceStart, replaceEnd) { + const range = getReplaceRange(replaceStart, replaceEnd); + result.items.push({ + label: '!DOCTYPE', + kind: CompletionItemKind.Property, + documentation: 'A preamble for an HTML document.', + textEdit: TextEdit.replace(range, '!DOCTYPE html>'), + insertTextFormat: InsertTextFormat.PlainText + }); + } + let token = scanner.scan(); + while (token !== TokenType.EOS && scanner.getTokenOffset() <= offset) { + switch (token) { + case TokenType.StartTagOpen: + if (scanner.getTokenEnd() === offset) { + const endPos = scanNextForEndPos(TokenType.StartTag); + if (position.line === 0) { + suggestDoctype(offset, endPos); + } + return collectTagSuggestions(offset, endPos); + } + break; + case TokenType.StartTag: + if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) { + return collectOpenTagSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd()); + } + currentTag = scanner.getTokenText(); + break; + case TokenType.AttributeName: + if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) { + return collectAttributeNameSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd()); + } + currentAttributeName = scanner.getTokenText(); + break; + case TokenType.DelimiterAssign: + if (scanner.getTokenEnd() === offset) { + const endPos = scanNextForEndPos(TokenType.AttributeValue); + return collectAttributeValueSuggestions(offset, endPos); + } + break; + case TokenType.AttributeValue: + if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) { + return collectAttributeValueSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd()); + } + break; + case TokenType.Whitespace: + if (offset <= scanner.getTokenEnd()) { + switch (scanner.getScannerState()) { + case ScannerState.AfterOpeningStartTag: + const startPos = scanner.getTokenOffset(); + const endTagPos = scanNextForEndPos(TokenType.StartTag); + return collectTagSuggestions(startPos, endTagPos); + case ScannerState.WithinTag: + case ScannerState.AfterAttributeName: + return collectAttributeNameSuggestions(scanner.getTokenEnd()); + case ScannerState.BeforeAttributeValue: + return collectAttributeValueSuggestions(scanner.getTokenEnd()); + case ScannerState.AfterOpeningEndTag: + return collectCloseTagSuggestions(scanner.getTokenOffset() - 1, false); + case ScannerState.WithinContent: + return collectInsideContent(); + } + } + break; + case TokenType.EndTagOpen: + if (offset <= scanner.getTokenEnd()) { + const afterOpenBracket = scanner.getTokenOffset() + 1; + const endOffset = scanNextForEndPos(TokenType.EndTag); + return collectCloseTagSuggestions(afterOpenBracket, false, endOffset); + } + break; + case TokenType.EndTag: + if (offset <= scanner.getTokenEnd()) { + let start = scanner.getTokenOffset() - 1; + while (start >= 0) { + const ch = text.charAt(start); + if (ch === '/') { + return collectCloseTagSuggestions(start, false, scanner.getTokenEnd()); + } + else if (!isWhiteSpace(ch)) { + break; + } + start--; + } + } + break; + case TokenType.StartTagClose: + if (offset <= scanner.getTokenEnd()) { + if (currentTag) { + return collectAutoCloseTagSuggestion(scanner.getTokenEnd(), currentTag); + } + } + break; + case TokenType.Content: + if (offset <= scanner.getTokenEnd()) { + return collectInsideContent(); + } + break; + default: + if (offset <= scanner.getTokenEnd()) { + return result; + } + break; + } + token = scanner.scan(); + } + return result; + } + doQuoteComplete(document, position, htmlDocument, settings) { + const offset = document.offsetAt(position); + if (offset <= 0) { + return null; + } + const defaultValue = settings?.attributeDefaultValue ?? 'doublequotes'; + if (defaultValue === 'empty') { + return null; + } + const char = document.getText().charAt(offset - 1); + if (char !== '=') { + return null; + } + const value = defaultValue === 'doublequotes' ? '"$1"' : '\'$1\''; + const node = htmlDocument.findNodeBefore(offset); + if (node && node.attributes && node.start < offset && (!node.endTagStart || node.endTagStart > offset)) { + const scanner = createScanner(document.getText(), node.start); + let token = scanner.scan(); + while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) { + if (token === TokenType.AttributeName && scanner.getTokenEnd() === offset - 1) { + // Ensure the token is a valid standalone attribute name + token = scanner.scan(); // this should be the = just written + if (token !== TokenType.DelimiterAssign) { + return null; + } + token = scanner.scan(); + // Any non-attribute valid tag + if (token === TokenType.Unknown || token === TokenType.AttributeValue) { + return null; + } + return value; + } + token = scanner.scan(); + } + } + return null; + } + doTagComplete(document, position, htmlDocument) { + const offset = document.offsetAt(position); + if (offset <= 0) { + return null; + } + const char = document.getText().charAt(offset - 1); + if (char === '>') { + const node = htmlDocument.findNodeBefore(offset); + if (node && node.tag && node.start < offset && (!node.endTagStart || node.endTagStart > offset)) { + const voidElements = this.dataManager.getVoidElements(document.languageId); + if (!this.dataManager.isVoidElement(node.tag, voidElements)) { + const scanner = createScanner(document.getText(), node.start); + let token = scanner.scan(); + while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) { + if (token === TokenType.StartTagClose && scanner.getTokenEnd() === offset) { + return `$0</${node.tag}>`; + } + token = scanner.scan(); + } + } + } + } + else if (char === '/') { + let node = htmlDocument.findNodeBefore(offset); + while (node && node.closed && !(node.endTagStart && (node.endTagStart > offset))) { + node = node.parent; + } + if (node && node.tag) { + const scanner = createScanner(document.getText(), node.start); + let token = scanner.scan(); + while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) { + if (token === TokenType.EndTagOpen && scanner.getTokenEnd() === offset) { + if (document.getText().charAt(offset) !== '>') { + return `${node.tag}>`; + } + else { + return node.tag; + } + } + token = scanner.scan(); + } + } + } + return null; + } + convertCompletionList(list) { + if (!this.doesSupportMarkdown()) { + list.items.forEach(item => { + if (item.documentation && typeof item.documentation !== 'string') { + item.documentation = { + kind: 'plaintext', + value: item.documentation.value + }; + } + }); + } + return list; + } + doesSupportMarkdown() { + if (!isDefined(this.supportsMarkdown)) { + if (!isDefined(this.lsOptions.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + const documentationFormat = this.lsOptions.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat; + this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + } +} +function isQuote(s) { + return /^["']*$/.test(s); +} +function isWhiteSpace(s) { + return /^\s*$/.test(s); +} +function isFollowedBy(s, offset, intialState, expectedToken) { + const scanner = createScanner(s, offset, intialState); + let token = scanner.scan(); + while (token === TokenType.Whitespace) { + token = scanner.scan(); + } + return token === expectedToken; +} +function getWordStart(s, offset, limit) { + while (offset > limit && !isWhiteSpace(s[offset - 1])) { + offset--; + } + return offset; +} +function getWordEnd(s, offset, limit) { + while (offset < limit && !isWhiteSpace(s[offset])) { + offset++; + } + return offset; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLHover { + constructor(lsOptions, dataManager) { + this.lsOptions = lsOptions; + this.dataManager = dataManager; + } + doHover(document, position, htmlDocument, options) { + const convertContents = this.convertContents.bind(this); + const doesSupportMarkdown = this.doesSupportMarkdown(); + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeAt(offset); + const text = document.getText(); + if (!node || !node.tag) { + return null; + } + const dataProviders = this.dataManager.getDataProviders().filter(p => p.isApplicable(document.languageId)); + function getTagHover(currTag, range, open) { + for (const provider of dataProviders) { + let hover = null; + provider.provideTags().forEach(tag => { + if (tag.name.toLowerCase() === currTag.toLowerCase()) { + let markupContent = generateDocumentation(tag, options, doesSupportMarkdown); + if (!markupContent) { + markupContent = { + kind: doesSupportMarkdown ? 'markdown' : 'plaintext', + value: '' + }; + } + hover = { contents: markupContent, range }; + } + }); + if (hover) { + hover.contents = convertContents(hover.contents); + return hover; + } + } + return null; + } + function getAttrHover(currTag, currAttr, range) { + for (const provider of dataProviders) { + let hover = null; + provider.provideAttributes(currTag).forEach(attr => { + if (currAttr === attr.name && attr.description) { + const contentsDoc = generateDocumentation(attr, options, doesSupportMarkdown); + if (contentsDoc) { + hover = { contents: contentsDoc, range }; + } + else { + hover = null; + } + } + }); + if (hover) { + hover.contents = convertContents(hover.contents); + return hover; + } + } + return null; + } + function getAttrValueHover(currTag, currAttr, currAttrValue, range) { + for (const provider of dataProviders) { + let hover = null; + provider.provideValues(currTag, currAttr).forEach(attrValue => { + if (currAttrValue === attrValue.name && attrValue.description) { + const contentsDoc = generateDocumentation(attrValue, options, doesSupportMarkdown); + if (contentsDoc) { + hover = { contents: contentsDoc, range }; + } + else { + hover = null; + } + } + }); + if (hover) { + hover.contents = convertContents(hover.contents); + return hover; + } + } + return null; + } + function getEntityHover(text, range) { + let currEntity = filterEntity(text); + for (const entity in entities) { + let hover = null; + const label = '&' + entity; + if (currEntity === label) { + let code = entities[entity].charCodeAt(0).toString(16).toUpperCase(); + let hex = 'U+'; + if (code.length < 4) { + const zeroes = 4 - code.length; + let k = 0; + while (k < zeroes) { + hex += '0'; + k += 1; + } + } + hex += code; + const contentsDoc = t$2('Character entity representing \'{0}\', unicode equivalent \'{1}\'', entities[entity], hex); + if (contentsDoc) { + hover = { contents: contentsDoc, range }; + } + else { + hover = null; + } + } + if (hover) { + hover.contents = convertContents(hover.contents); + return hover; + } + } + return null; + } + function getTagNameRange(tokenType, startOffset) { + const scanner = createScanner(document.getText(), startOffset); + let token = scanner.scan(); + while (token !== TokenType.EOS && (scanner.getTokenEnd() < offset || scanner.getTokenEnd() === offset && token !== tokenType)) { + token = scanner.scan(); + } + if (token === tokenType && offset <= scanner.getTokenEnd()) { + return { start: document.positionAt(scanner.getTokenOffset()), end: document.positionAt(scanner.getTokenEnd()) }; + } + return null; + } + function getEntityRange() { + let k = offset - 1; + let characterStart = position.character; + while (k >= 0 && isLetterOrDigit(text, k)) { + k--; + characterStart--; + } + let n = k + 1; + let characterEnd = characterStart; + while (isLetterOrDigit(text, n)) { + n++; + characterEnd++; + } + if (k >= 0 && text[k] === '&') { + let range = null; + if (text[n] === ';') { + range = Range$a.create(Position.create(position.line, characterStart), Position.create(position.line, characterEnd + 1)); + } + else { + range = Range$a.create(Position.create(position.line, characterStart), Position.create(position.line, characterEnd)); + } + return range; + } + return null; + } + function filterEntity(text) { + let k = offset - 1; + let newText = '&'; + while (k >= 0 && isLetterOrDigit(text, k)) { + k--; + } + k = k + 1; + while (isLetterOrDigit(text, k)) { + newText += text[k]; + k += 1; + } + newText += ';'; + return newText; + } + if (node.endTagStart && offset >= node.endTagStart) { + const tagRange = getTagNameRange(TokenType.EndTag, node.endTagStart); + if (tagRange) { + return getTagHover(node.tag, tagRange); + } + return null; + } + const tagRange = getTagNameRange(TokenType.StartTag, node.start); + if (tagRange) { + return getTagHover(node.tag, tagRange); + } + const attrRange = getTagNameRange(TokenType.AttributeName, node.start); + if (attrRange) { + const tag = node.tag; + const attr = document.getText(attrRange); + return getAttrHover(tag, attr, attrRange); + } + const entityRange = getEntityRange(); + if (entityRange) { + return getEntityHover(text, entityRange); + } + function scanAttrAndAttrValue(nodeStart, attrValueStart) { + const scanner = createScanner(document.getText(), nodeStart); + let token = scanner.scan(); + let prevAttr = undefined; + while (token !== TokenType.EOS && (scanner.getTokenEnd() <= attrValueStart)) { + token = scanner.scan(); + if (token === TokenType.AttributeName) { + prevAttr = scanner.getTokenText(); + } + } + return prevAttr; + } + const attrValueRange = getTagNameRange(TokenType.AttributeValue, node.start); + if (attrValueRange) { + const tag = node.tag; + const attrValue = trimQuotes(document.getText(attrValueRange)); + const matchAttr = scanAttrAndAttrValue(node.start, document.offsetAt(attrValueRange.start)); + if (matchAttr) { + return getAttrValueHover(tag, matchAttr, attrValue, attrValueRange); + } + } + return null; + } + convertContents(contents) { + if (!this.doesSupportMarkdown()) { + if (typeof contents === 'string') { + return contents; + } + // MarkupContent + else if ('kind' in contents) { + return { + kind: 'plaintext', + value: contents.value + }; + } + // MarkedString[] + else if (Array.isArray(contents)) { + contents.map(c => { + return typeof c === 'string' ? c : c.value; + }); + } + // MarkedString + else { + return contents.value; + } + } + return contents; + } + doesSupportMarkdown() { + if (!isDefined(this.supportsMarkdown)) { + if (!isDefined(this.lsOptions.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + const contentFormat = this.lsOptions.clientCapabilities?.textDocument?.hover?.contentFormat; + this.supportsMarkdown = Array.isArray(contentFormat) && contentFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + } +} +function trimQuotes(s) { + if (s.length <= 1) { + return s.replace(/['"]/, ''); // CodeQL [SM02383] False positive: The string length is at most one, so we don't need the global flag. + } + if (s[0] === `'` || s[0] === `"`) { + s = s.slice(1); + } + if (s[s.length - 1] === `'` || s[s.length - 1] === `"`) { + s = s.slice(0, -1); + } + return s; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/* + * Mock for the JS formatter. Ignore formatting of JS content in HTML. + */ +function js_beautify(js_source_text, options) { + // no formatting + return js_source_text; +} + +// copied from js-beautify/js/lib/beautify-css.js +// version: 1.15.1 +/* AUTO-GENERATED. DO NOT MODIFY. */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + CSS Beautifier +--------------- + + Written by Harutyun Amirjanyan, (amirjanyan@gmail.com) + + Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io> + https://beautifier.io/ + + Usage: + css_beautify(source_text); + css_beautify(source_text, options); + + The options are (default in brackets): + indent_size (4) — indentation size, + indent_char (space) — character to indent with, + selector_separator_newline (true) - separate selectors with newline or + not (e.g. "a,\nbr" or "a, br") + end_with_newline (false) - end with a newline + newline_between_rules (true) - add a new line after every css rule + space_around_selector_separator (false) - ensure space around selector separators: + '>', '+', '~' (e.g. "a>b" -> "a > b") + e.g + + css_beautify(css_source_text, { + 'indent_size': 1, + 'indent_char': '\t', + 'selector_separator': ' ', + 'end_with_newline': false, + 'newline_between_rules': true, + 'space_around_selector_separator': true + }); +*/ + +// http://www.w3.org/TR/CSS21/syndata.html#tokenization +// http://www.w3.org/TR/css3-syntax/ + +var legacy_beautify_css; +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */, +/* 2 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function OutputLine(parent) { + this.__parent = parent; + this.__character_count = 0; + // use indent_count as a marker for this.__lines that have preserved indentation + this.__indent_count = -1; + this.__alignment_count = 0; + this.__wrap_point_index = 0; + this.__wrap_point_character_count = 0; + this.__wrap_point_indent_count = -1; + this.__wrap_point_alignment_count = 0; + + this.__items = []; +} + +OutputLine.prototype.clone_empty = function() { + var line = new OutputLine(this.__parent); + line.set_indent(this.__indent_count, this.__alignment_count); + return line; +}; + +OutputLine.prototype.item = function(index) { + if (index < 0) { + return this.__items[this.__items.length + index]; + } else { + return this.__items[index]; + } +}; + +OutputLine.prototype.has_match = function(pattern) { + for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) { + if (this.__items[lastCheckedOutput].match(pattern)) { + return true; + } + } + return false; +}; + +OutputLine.prototype.set_indent = function(indent, alignment) { + if (this.is_empty()) { + this.__indent_count = indent || 0; + this.__alignment_count = alignment || 0; + this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count); + } +}; + +OutputLine.prototype._set_wrap_point = function() { + if (this.__parent.wrap_line_length) { + this.__wrap_point_index = this.__items.length; + this.__wrap_point_character_count = this.__character_count; + this.__wrap_point_indent_count = this.__parent.next_line.__indent_count; + this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count; + } +}; + +OutputLine.prototype._should_wrap = function() { + return this.__wrap_point_index && + this.__character_count > this.__parent.wrap_line_length && + this.__wrap_point_character_count > this.__parent.next_line.__character_count; +}; + +OutputLine.prototype._allow_wrap = function() { + if (this._should_wrap()) { + this.__parent.add_new_line(); + var next = this.__parent.current_line; + next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count); + next.__items = this.__items.slice(this.__wrap_point_index); + this.__items = this.__items.slice(0, this.__wrap_point_index); + + next.__character_count += this.__character_count - this.__wrap_point_character_count; + this.__character_count = this.__wrap_point_character_count; + + if (next.__items[0] === " ") { + next.__items.splice(0, 1); + next.__character_count -= 1; + } + return true; + } + return false; +}; + +OutputLine.prototype.is_empty = function() { + return this.__items.length === 0; +}; + +OutputLine.prototype.last = function() { + if (!this.is_empty()) { + return this.__items[this.__items.length - 1]; + } else { + return null; + } +}; + +OutputLine.prototype.push = function(item) { + this.__items.push(item); + var last_newline_index = item.lastIndexOf('\n'); + if (last_newline_index !== -1) { + this.__character_count = item.length - last_newline_index; + } else { + this.__character_count += item.length; + } +}; + +OutputLine.prototype.pop = function() { + var item = null; + if (!this.is_empty()) { + item = this.__items.pop(); + this.__character_count -= item.length; + } + return item; +}; + + +OutputLine.prototype._remove_indent = function() { + if (this.__indent_count > 0) { + this.__indent_count -= 1; + this.__character_count -= this.__parent.indent_size; + } +}; + +OutputLine.prototype._remove_wrap_indent = function() { + if (this.__wrap_point_indent_count > 0) { + this.__wrap_point_indent_count -= 1; + } +}; +OutputLine.prototype.trim = function() { + while (this.last() === ' ') { + this.__items.pop(); + this.__character_count -= 1; + } +}; + +OutputLine.prototype.toString = function() { + var result = ''; + if (this.is_empty()) { + if (this.__parent.indent_empty_lines) { + result = this.__parent.get_indent_string(this.__indent_count); + } + } else { + result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count); + result += this.__items.join(''); + } + return result; +}; + +function IndentStringCache(options, baseIndentString) { + this.__cache = ['']; + this.__indent_size = options.indent_size; + this.__indent_string = options.indent_char; + if (!options.indent_with_tabs) { + this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char); + } + + // Set to null to continue support for auto detection of base indent + baseIndentString = baseIndentString || ''; + if (options.indent_level > 0) { + baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string); + } + + this.__base_string = baseIndentString; + this.__base_string_length = baseIndentString.length; +} + +IndentStringCache.prototype.get_indent_size = function(indent, column) { + var result = this.__base_string_length; + column = column || 0; + if (indent < 0) { + result = 0; + } + result += indent * this.__indent_size; + result += column; + return result; +}; + +IndentStringCache.prototype.get_indent_string = function(indent_level, column) { + var result = this.__base_string; + column = column || 0; + if (indent_level < 0) { + indent_level = 0; + result = ''; + } + column += indent_level * this.__indent_size; + this.__ensure_cache(column); + result += this.__cache[column]; + return result; +}; + +IndentStringCache.prototype.__ensure_cache = function(column) { + while (column >= this.__cache.length) { + this.__add_column(); + } +}; + +IndentStringCache.prototype.__add_column = function() { + var column = this.__cache.length; + var indent = 0; + var result = ''; + if (this.__indent_size && column >= this.__indent_size) { + indent = Math.floor(column / this.__indent_size); + column -= indent * this.__indent_size; + result = new Array(indent + 1).join(this.__indent_string); + } + if (column) { + result += new Array(column + 1).join(' '); + } + + this.__cache.push(result); +}; + +function Output(options, baseIndentString) { + this.__indent_cache = new IndentStringCache(options, baseIndentString); + this.raw = false; + this._end_with_newline = options.end_with_newline; + this.indent_size = options.indent_size; + this.wrap_line_length = options.wrap_line_length; + this.indent_empty_lines = options.indent_empty_lines; + this.__lines = []; + this.previous_line = null; + this.current_line = null; + this.next_line = new OutputLine(this); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; + // initialize + this.__add_outputline(); +} + +Output.prototype.__add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = this.next_line.clone_empty(); + this.__lines.push(this.current_line); +}; + +Output.prototype.get_line_number = function() { + return this.__lines.length; +}; + +Output.prototype.get_indent_string = function(indent, column) { + return this.__indent_cache.get_indent_string(indent, column); +}; + +Output.prototype.get_indent_size = function(indent, column) { + return this.__indent_cache.get_indent_size(indent, column); +}; + +Output.prototype.is_empty = function() { + return !this.previous_line && this.current_line.is_empty(); +}; + +Output.prototype.add_new_line = function(force_newline) { + // never newline at the start of file + // otherwise, newline only if we didn't just add one or we're forced + if (this.is_empty() || + (!force_newline && this.just_added_newline())) { + return false; + } + + // if raw output is enabled, don't print additional newlines, + // but still return True as though you had + if (!this.raw) { + this.__add_outputline(); + } + return true; +}; + +Output.prototype.get_code = function(eol) { + this.trim(true); + + // handle some edge cases where the last tokens + // has text that ends with newline(s) + var last_item = this.current_line.pop(); + if (last_item) { + if (last_item[last_item.length - 1] === '\n') { + last_item = last_item.replace(/\n+$/g, ''); + } + this.current_line.push(last_item); + } + + if (this._end_with_newline) { + this.__add_outputline(); + } + + var sweet_code = this.__lines.join('\n'); + + if (eol !== '\n') { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + return sweet_code; +}; + +Output.prototype.set_wrap_point = function() { + this.current_line._set_wrap_point(); +}; + +Output.prototype.set_indent = function(indent, alignment) { + indent = indent || 0; + alignment = alignment || 0; + + // Next line stores alignment values + this.next_line.set_indent(indent, alignment); + + // Never indent your first output indent at the start of the file + if (this.__lines.length > 1) { + this.current_line.set_indent(indent, alignment); + return true; + } + + this.current_line.set_indent(); + return false; +}; + +Output.prototype.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.__add_outputline(); + } + this.current_line.set_indent(-1); + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; +}; + +Output.prototype.add_token = function(printable_token) { + this.__add_space_before_token(); + this.current_line.push(printable_token); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = this.current_line._allow_wrap(); +}; + +Output.prototype.__add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + if (!this.non_breaking_space) { + this.set_wrap_point(); + } + this.current_line.push(' '); + } +}; + +Output.prototype.remove_indent = function(index) { + var output_length = this.__lines.length; + while (index < output_length) { + this.__lines[index]._remove_indent(); + index++; + } + this.current_line._remove_wrap_indent(); +}; + +Output.prototype.trim = function(eat_newlines) { + eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + + this.current_line.trim(); + + while (eat_newlines && this.__lines.length > 1 && + this.current_line.is_empty()) { + this.__lines.pop(); + this.current_line = this.__lines[this.__lines.length - 1]; + this.current_line.trim(); + } + + this.previous_line = this.__lines.length > 1 ? + this.__lines[this.__lines.length - 2] : null; +}; + +Output.prototype.just_added_newline = function() { + return this.current_line.is_empty(); +}; + +Output.prototype.just_added_blankline = function() { + return this.is_empty() || + (this.current_line.is_empty() && this.previous_line.is_empty()); +}; + +Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) { + var index = this.__lines.length - 2; + while (index >= 0) { + var potentialEmptyLine = this.__lines[index]; + if (potentialEmptyLine.is_empty()) { + break; + } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && + potentialEmptyLine.item(-1) !== ends_with) { + this.__lines.splice(index + 1, 0, new OutputLine(this)); + this.previous_line = this.__lines[this.__lines.length - 2]; + break; + } + index--; + } +}; + +module.exports.Output = Output; + + +/***/ }), +/* 3 */, +/* 4 */, +/* 5 */, +/* 6 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Options(options, merge_child_field) { + this.raw_options = _mergeOpts(options, merge_child_field); + + // Support passing the source text back with no change + this.disabled = this._get_boolean('disabled'); + + this.eol = this._get_characters('eol', 'auto'); + this.end_with_newline = this._get_boolean('end_with_newline'); + this.indent_size = this._get_number('indent_size', 4); + this.indent_char = this._get_characters('indent_char', ' '); + this.indent_level = this._get_number('indent_level'); + + this.preserve_newlines = this._get_boolean('preserve_newlines', true); + this.max_preserve_newlines = this._get_number('max_preserve_newlines', 32786); + if (!this.preserve_newlines) { + this.max_preserve_newlines = 0; + } + + this.indent_with_tabs = this._get_boolean('indent_with_tabs', this.indent_char === '\t'); + if (this.indent_with_tabs) { + this.indent_char = '\t'; + + // indent_size behavior changed after 1.8.6 + // It used to be that indent_size would be + // set to 1 for indent_with_tabs. That is no longer needed and + // actually doesn't make sense - why not use spaces? Further, + // that might produce unexpected behavior - tabs being used + // for single-column alignment. So, when indent_with_tabs is true + // and indent_size is 1, reset indent_size to 4. + if (this.indent_size === 1) { + this.indent_size = 4; + } + } + + // Backwards compat with 1.3.x + this.wrap_line_length = this._get_number('wrap_line_length', this._get_number('max_char')); + + this.indent_empty_lines = this._get_boolean('indent_empty_lines'); + + // valid templating languages ['django', 'erb', 'handlebars', 'php', 'smarty', 'angular'] + // For now, 'auto' = all off for javascript, all except angular on for html (and inline javascript/css). + // other values ignored + this.templating = this._get_selection_list('templating', ['auto', 'none', 'angular', 'django', 'erb', 'handlebars', 'php', 'smarty'], ['auto']); +} + +Options.prototype._get_array = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || []; + if (typeof option_value === 'object') { + if (option_value !== null && typeof option_value.concat === 'function') { + result = option_value.concat(); + } + } else if (typeof option_value === 'string') { + result = option_value.split(/[^a-zA-Z0-9_\/\-]+/); + } + return result; +}; + +Options.prototype._get_boolean = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = option_value === undefined ? !!default_value : !!option_value; + return result; +}; + +Options.prototype._get_characters = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || ''; + if (typeof option_value === 'string') { + result = option_value.replace(/\\r/, '\r').replace(/\\n/, '\n').replace(/\\t/, '\t'); + } + return result; +}; + +Options.prototype._get_number = function(name, default_value) { + var option_value = this.raw_options[name]; + default_value = parseInt(default_value, 10); + if (isNaN(default_value)) { + default_value = 0; + } + var result = parseInt(option_value, 10); + if (isNaN(result)) { + result = default_value; + } + return result; +}; + +Options.prototype._get_selection = function(name, selection_list, default_value) { + var result = this._get_selection_list(name, selection_list, default_value); + if (result.length !== 1) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can only be one of the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result[0]; +}; + + +Options.prototype._get_selection_list = function(name, selection_list, default_value) { + if (!selection_list || selection_list.length === 0) { + throw new Error("Selection list cannot be empty."); + } + + default_value = default_value || [selection_list[0]]; + if (!this._is_valid_selection(default_value, selection_list)) { + throw new Error("Invalid Default Value!"); + } + + var result = this._get_array(name, default_value); + if (!this._is_valid_selection(result, selection_list)) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can contain only the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result; +}; + +Options.prototype._is_valid_selection = function(result, selection_list) { + return result.length && selection_list.length && + !result.some(function(item) { return selection_list.indexOf(item) === -1; }); +}; + + +// merges child options up with the parent options object +// Example: obj = {a: 1, b: {a: 2}} +// mergeOpts(obj, 'b') +// +// Returns: {a: 2} +function _mergeOpts(allOptions, childFieldName) { + var finalOpts = {}; + allOptions = _normalizeOpts(allOptions); + var name; + + for (name in allOptions) { + if (name !== childFieldName) { + finalOpts[name] = allOptions[name]; + } + } + + //merge in the per type settings for the childFieldName + if (childFieldName && allOptions[childFieldName]) { + for (name in allOptions[childFieldName]) { + finalOpts[name] = allOptions[childFieldName][name]; + } + } + return finalOpts; +} + +function _normalizeOpts(options) { + var convertedOpts = {}; + var key; + + for (key in options) { + var newKey = key.replace(/-/g, "_"); + convertedOpts[newKey] = options[key]; + } + return convertedOpts; +} + +module.exports.Options = Options; +module.exports.normalizeOpts = _normalizeOpts; +module.exports.mergeOpts = _mergeOpts; + + +/***/ }), +/* 7 */, +/* 8 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var regexp_has_sticky = RegExp.prototype.hasOwnProperty('sticky'); + +function InputScanner(input_string) { + this.__input = input_string || ''; + this.__input_length = this.__input.length; + this.__position = 0; +} + +InputScanner.prototype.restart = function() { + this.__position = 0; +}; + +InputScanner.prototype.back = function() { + if (this.__position > 0) { + this.__position -= 1; + } +}; + +InputScanner.prototype.hasNext = function() { + return this.__position < this.__input_length; +}; + +InputScanner.prototype.next = function() { + var val = null; + if (this.hasNext()) { + val = this.__input.charAt(this.__position); + this.__position += 1; + } + return val; +}; + +InputScanner.prototype.peek = function(index) { + var val = null; + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__input_length) { + val = this.__input.charAt(index); + } + return val; +}; + +// This is a JavaScript only helper function (not in python) +// Javascript doesn't have a match method +// and not all implementation support "sticky" flag. +// If they do not support sticky then both this.match() and this.test() method +// must get the match and check the index of the match. +// If sticky is supported and set, this method will use it. +// Otherwise it will check that global is set, and fall back to the slower method. +InputScanner.prototype.__match = function(pattern, index) { + pattern.lastIndex = index; + var pattern_match = pattern.exec(this.__input); + + if (pattern_match && !(regexp_has_sticky && pattern.sticky)) { + if (pattern_match.index !== index) { + pattern_match = null; + } + } + + return pattern_match; +}; + +InputScanner.prototype.test = function(pattern, index) { + index = index || 0; + index += this.__position; + + if (index >= 0 && index < this.__input_length) { + return !!this.__match(pattern, index); + } else { + return false; + } +}; + +InputScanner.prototype.testChar = function(pattern, index) { + // test one character regex match + var val = this.peek(index); + pattern.lastIndex = 0; + return val !== null && pattern.test(val); +}; + +InputScanner.prototype.match = function(pattern) { + var pattern_match = this.__match(pattern, this.__position); + if (pattern_match) { + this.__position += pattern_match[0].length; + } else { + pattern_match = null; + } + return pattern_match; +}; + +InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) { + var val = ''; + var match; + if (starting_pattern) { + match = this.match(starting_pattern); + if (match) { + val += match[0]; + } + } + if (until_pattern && (match || !starting_pattern)) { + val += this.readUntil(until_pattern, until_after); + } + return val; +}; + +InputScanner.prototype.readUntil = function(pattern, until_after) { + var val = ''; + var match_index = this.__position; + pattern.lastIndex = this.__position; + var pattern_match = pattern.exec(this.__input); + if (pattern_match) { + match_index = pattern_match.index; + if (until_after) { + match_index += pattern_match[0].length; + } + } else { + match_index = this.__input_length; + } + + val = this.__input.substring(this.__position, match_index); + this.__position = match_index; + return val; +}; + +InputScanner.prototype.readUntilAfter = function(pattern) { + return this.readUntil(pattern, true); +}; + +InputScanner.prototype.get_regexp = function(pattern, match_from) { + var result = null; + var flags = 'g'; + if (match_from && regexp_has_sticky) { + flags = 'y'; + } + // strings are converted to regexp + if (typeof pattern === "string" && pattern !== '') { + // result = new RegExp(pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), flags); + result = new RegExp(pattern, flags); + } else if (pattern) { + result = new RegExp(pattern.source, flags); + } + return result; +}; + +InputScanner.prototype.get_literal_regexp = function(literal_string) { + return RegExp(literal_string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); +}; + +/* css beautifier legacy helpers */ +InputScanner.prototype.peekUntilAfter = function(pattern) { + var start = this.__position; + var val = this.readUntilAfter(pattern); + this.__position = start; + return val; +}; + +InputScanner.prototype.lookBack = function(testVal) { + var start = this.__position - 1; + return start >= testVal.length && this.__input.substring(start - testVal.length, start) + .toLowerCase() === testVal; +}; + +module.exports.InputScanner = InputScanner; + + +/***/ }), +/* 9 */, +/* 10 */, +/* 11 */, +/* 12 */, +/* 13 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Directives(start_block_pattern, end_block_pattern) { + start_block_pattern = typeof start_block_pattern === 'string' ? start_block_pattern : start_block_pattern.source; + end_block_pattern = typeof end_block_pattern === 'string' ? end_block_pattern : end_block_pattern.source; + this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \w+[:]\w+)+ /.source + end_block_pattern, 'g'); + this.__directive_pattern = / (\w+)[:](\w+)/g; + + this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\sbeautify\signore:end\s/.source + end_block_pattern, 'g'); +} + +Directives.prototype.get_directives = function(text) { + if (!text.match(this.__directives_block_pattern)) { + return null; + } + + var directives = {}; + this.__directive_pattern.lastIndex = 0; + var directive_match = this.__directive_pattern.exec(text); + + while (directive_match) { + directives[directive_match[1]] = directive_match[2]; + directive_match = this.__directive_pattern.exec(text); + } + + return directives; +}; + +Directives.prototype.readIgnored = function(input) { + return input.readUntilAfter(this.__directives_end_ignore_pattern); +}; + + +module.exports.Directives = Directives; + + +/***/ }), +/* 14 */, +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Beautifier = (__webpack_require__(16).Beautifier), + Options = (__webpack_require__(17).Options); + +function css_beautify(source_text, options) { + var beautifier = new Beautifier(source_text, options); + return beautifier.beautify(); +} + +module.exports = css_beautify; +module.exports.defaultOptions = function() { + return new Options(); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Options = (__webpack_require__(17).Options); +var Output = (__webpack_require__(2).Output); +var InputScanner = (__webpack_require__(8).InputScanner); +var Directives = (__webpack_require__(13).Directives); + +var directives_core = new Directives(/\/\*/, /\*\//); + +var lineBreak = /\r\n|[\r\n]/; +var allLineBreaks = /\r\n|[\r\n]/g; + +// tokenizer +var whitespaceChar = /\s/; +var whitespacePattern = /(?:\s|\n)+/g; +var block_comment_pattern = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g; +var comment_pattern = /\/\/(?:[^\n\r\u2028\u2029]*)/g; + +function Beautifier(source_text, options) { + this._source_text = source_text || ''; + // Allow the setting of language/file-type specific options + // with inheritance of overall settings + this._options = new Options(options); + this._ch = null; + this._input = null; + + // https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule + this.NESTED_AT_RULE = { + "page": true, + "font-face": true, + "keyframes": true, + // also in CONDITIONAL_GROUP_RULE below + "media": true, + "supports": true, + "document": true + }; + this.CONDITIONAL_GROUP_RULE = { + "media": true, + "supports": true, + "document": true + }; + this.NON_SEMICOLON_NEWLINE_PROPERTY = [ + "grid-template-areas", + "grid-template" + ]; + +} + +Beautifier.prototype.eatString = function(endChars) { + var result = ''; + this._ch = this._input.next(); + while (this._ch) { + result += this._ch; + if (this._ch === "\\") { + result += this._input.next(); + } else if (endChars.indexOf(this._ch) !== -1 || this._ch === "\n") { + break; + } + this._ch = this._input.next(); + } + return result; +}; + +// Skips any white space in the source text from the current position. +// When allowAtLeastOneNewLine is true, will output new lines for each +// newline character found; if the user has preserve_newlines off, only +// the first newline will be output +Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) { + var result = whitespaceChar.test(this._input.peek()); + var newline_count = 0; + while (whitespaceChar.test(this._input.peek())) { + this._ch = this._input.next(); + if (allowAtLeastOneNewLine && this._ch === '\n') { + if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) { + newline_count++; + this._output.add_new_line(true); + } + } + } + return result; +}; + +// Nested pseudo-class if we are insideRule +// and the next special character found opens +// a new block +Beautifier.prototype.foundNestedPseudoClass = function() { + var openParen = 0; + var i = 1; + var ch = this._input.peek(i); + while (ch) { + if (ch === "{") { + return true; + } else if (ch === '(') { + // pseudoclasses can contain () + openParen += 1; + } else if (ch === ')') { + if (openParen === 0) { + return false; + } + openParen -= 1; + } else if (ch === ";" || ch === "}") { + return false; + } + i++; + ch = this._input.peek(i); + } + return false; +}; + +Beautifier.prototype.print_string = function(output_string) { + this._output.set_indent(this._indentLevel); + this._output.non_breaking_space = true; + this._output.add_token(output_string); +}; + +Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) { + if (isAfterSpace) { + this._output.space_before_token = true; + } +}; + +Beautifier.prototype.indent = function() { + this._indentLevel++; +}; + +Beautifier.prototype.outdent = function() { + if (this._indentLevel > 0) { + this._indentLevel--; + } +}; + +/*_____________________--------------------_____________________*/ + +Beautifier.prototype.beautify = function() { + if (this._options.disabled) { + return this._source_text; + } + + var source_text = this._source_text; + var eol = this._options.eol; + if (eol === 'auto') { + eol = '\n'; + if (source_text && lineBreak.test(source_text || '')) { + eol = source_text.match(lineBreak)[0]; + } + } + + + // HACK: newline parsing inconsistent. This brute force normalizes the this._input. + source_text = source_text.replace(allLineBreaks, '\n'); + + // reset + var baseIndentString = source_text.match(/^[\t ]*/)[0]; + + this._output = new Output(this._options, baseIndentString); + this._input = new InputScanner(source_text); + this._indentLevel = 0; + this._nestedLevel = 0; + + this._ch = null; + var parenLevel = 0; + + var insideRule = false; + // This is the value side of a property value pair (blue in the following ex) + // label { content: blue } + var insidePropertyValue = false; + var enteringConditionalGroup = false; + var insideNonNestedAtRule = false; + var insideScssMap = false; + var topCharacter = this._ch; + var insideNonSemiColonValues = false; + var whitespace; + var isAfterSpace; + var previous_ch; + + while (true) { + whitespace = this._input.read(whitespacePattern); + isAfterSpace = whitespace !== ''; + previous_ch = topCharacter; + this._ch = this._input.next(); + if (this._ch === '\\' && this._input.hasNext()) { + this._ch += this._input.next(); + } + topCharacter = this._ch; + + if (!this._ch) { + break; + } else if (this._ch === '/' && this._input.peek() === '*') { + // /* css comment */ + // Always start block comments on a new line. + // This handles scenarios where a block comment immediately + // follows a property definition on the same line or where + // minified code is being beautified. + this._output.add_new_line(); + this._input.back(); + + var comment = this._input.read(block_comment_pattern); + + // Handle ignore directive + var directives = directives_core.get_directives(comment); + if (directives && directives.ignore === 'start') { + comment += directives_core.readIgnored(this._input); + } + + this.print_string(comment); + + // Ensures any new lines following the comment are preserved + this.eatWhitespace(true); + + // Block comments are followed by a new line so they don't + // share a line with other properties + this._output.add_new_line(); + } else if (this._ch === '/' && this._input.peek() === '/') { + // // single line comment + // Preserves the space before a comment + // on the same line as a rule + this._output.space_before_token = true; + this._input.back(); + this.print_string(this._input.read(comment_pattern)); + + // Ensures any new lines following the comment are preserved + this.eatWhitespace(true); + } else if (this._ch === '$') { + this.preserveSingleSpace(isAfterSpace); + + this.print_string(this._ch); + + // strip trailing space, if present, for hash property checks + var variable = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); + + if (variable.match(/[ :]$/)) { + // we have a variable or pseudo-class, add it and insert one space before continuing + variable = this.eatString(": ").replace(/\s+$/, ''); + this.print_string(variable); + this._output.space_before_token = true; + } + + // might be sass variable + if (parenLevel === 0 && variable.indexOf(':') !== -1) { + insidePropertyValue = true; + this.indent(); + } + } else if (this._ch === '@') { + this.preserveSingleSpace(isAfterSpace); + + // deal with less property mixins @{...} + if (this._input.peek() === '{') { + this.print_string(this._ch + this.eatString('}')); + } else { + this.print_string(this._ch); + + // strip trailing space, if present, for hash property checks + var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); + + if (variableOrRule.match(/[ :]$/)) { + // we have a variable or pseudo-class, add it and insert one space before continuing + variableOrRule = this.eatString(": ").replace(/\s+$/, ''); + this.print_string(variableOrRule); + this._output.space_before_token = true; + } + + // might be less variable + if (parenLevel === 0 && variableOrRule.indexOf(':') !== -1) { + insidePropertyValue = true; + this.indent(); + + // might be a nesting at-rule + } else if (variableOrRule in this.NESTED_AT_RULE) { + this._nestedLevel += 1; + if (variableOrRule in this.CONDITIONAL_GROUP_RULE) { + enteringConditionalGroup = true; + } + + // might be a non-nested at-rule + } else if (parenLevel === 0 && !insidePropertyValue) { + insideNonNestedAtRule = true; + } + } + } else if (this._ch === '#' && this._input.peek() === '{') { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch + this.eatString('}')); + } else if (this._ch === '{') { + if (insidePropertyValue) { + insidePropertyValue = false; + this.outdent(); + } + + // non nested at rule becomes nested + insideNonNestedAtRule = false; + + // when entering conditional groups, only rulesets are allowed + if (enteringConditionalGroup) { + enteringConditionalGroup = false; + insideRule = (this._indentLevel >= this._nestedLevel); + } else { + // otherwise, declarations are also allowed + insideRule = (this._indentLevel >= this._nestedLevel - 1); + } + if (this._options.newline_between_rules && insideRule) { + if (this._output.previous_line && this._output.previous_line.item(-1) !== '{') { + this._output.ensure_empty_line_above('/', ','); + } + } + + this._output.space_before_token = true; + + // The difference in print_string and indent order is necessary to indent the '{' correctly + if (this._options.brace_style === 'expand') { + this._output.add_new_line(); + this.print_string(this._ch); + this.indent(); + this._output.set_indent(this._indentLevel); + } else { + // inside mixin and first param is object + if (previous_ch === '(') { + this._output.space_before_token = false; + } else if (previous_ch !== ',') { + this.indent(); + } + this.print_string(this._ch); + } + + this.eatWhitespace(true); + this._output.add_new_line(); + } else if (this._ch === '}') { + this.outdent(); + this._output.add_new_line(); + if (previous_ch === '{') { + this._output.trim(true); + } + + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + this.print_string(this._ch); + insideRule = false; + if (this._nestedLevel) { + this._nestedLevel--; + } + + this.eatWhitespace(true); + this._output.add_new_line(); + + if (this._options.newline_between_rules && !this._output.just_added_blankline()) { + if (this._input.peek() !== '}') { + this._output.add_new_line(true); + } + } + if (this._input.peek() === ')') { + this._output.trim(true); + if (this._options.brace_style === "expand") { + this._output.add_new_line(true); + } + } + } else if (this._ch === ":") { + + for (var i = 0; i < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; i++) { + if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[i])) { + insideNonSemiColonValues = true; + break; + } + } + + if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !insideNonNestedAtRule && parenLevel === 0) { + // 'property: value' delimiter + // which could be in a conditional group query + + this.print_string(':'); + if (!insidePropertyValue) { + insidePropertyValue = true; + this._output.space_before_token = true; + this.eatWhitespace(true); + this.indent(); + } + } else { + // sass/less parent reference don't use a space + // sass nested pseudo-class don't use a space + + // preserve space before pseudoclasses/pseudoelements, as it means "in any child" + if (this._input.lookBack(" ")) { + this._output.space_before_token = true; + } + if (this._input.peek() === ":") { + // pseudo-element + this._ch = this._input.next(); + this.print_string("::"); + } else { + // pseudo-class + this.print_string(':'); + } + } + } else if (this._ch === '"' || this._ch === '\'') { + var preserveQuoteSpace = previous_ch === '"' || previous_ch === '\''; + this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace); + this.print_string(this._ch + this.eatString(this._ch)); + this.eatWhitespace(true); + } else if (this._ch === ';') { + insideNonSemiColonValues = false; + if (parenLevel === 0) { + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + insideNonNestedAtRule = false; + this.print_string(this._ch); + this.eatWhitespace(true); + + // This maintains single line comments on the same + // line. Block comments are also affected, but + // a new line is always output before one inside + // that section + if (this._input.peek() !== '/') { + this._output.add_new_line(); + } + } else { + this.print_string(this._ch); + this.eatWhitespace(true); + this._output.space_before_token = true; + } + } else if (this._ch === '(') { // may be a url + if (this._input.lookBack("url")) { + this.print_string(this._ch); + this.eatWhitespace(); + parenLevel++; + this.indent(); + this._ch = this._input.next(); + if (this._ch === ')' || this._ch === '"' || this._ch === '\'') { + this._input.back(); + } else if (this._ch) { + this.print_string(this._ch + this.eatString(')')); + if (parenLevel) { + parenLevel--; + this.outdent(); + } + } + } else { + var space_needed = false; + if (this._input.lookBack("with")) { + // look back is not an accurate solution, we need tokens to confirm without whitespaces + space_needed = true; + } + this.preserveSingleSpace(isAfterSpace || space_needed); + this.print_string(this._ch); + + // handle scss/sass map + if (insidePropertyValue && previous_ch === "$" && this._options.selector_separator_newline) { + this._output.add_new_line(); + insideScssMap = true; + } else { + this.eatWhitespace(); + parenLevel++; + this.indent(); + } + } + } else if (this._ch === ')') { + if (parenLevel) { + parenLevel--; + this.outdent(); + } + if (insideScssMap && this._input.peek() === ";" && this._options.selector_separator_newline) { + insideScssMap = false; + this.outdent(); + this._output.add_new_line(); + } + this.print_string(this._ch); + } else if (this._ch === ',') { + this.print_string(this._ch); + this.eatWhitespace(true); + if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) { + this._output.add_new_line(); + } else { + this._output.space_before_token = true; + } + } else if ((this._ch === '>' || this._ch === '+' || this._ch === '~') && !insidePropertyValue && parenLevel === 0) { + //handle combinator spacing + if (this._options.space_around_combinator) { + this._output.space_before_token = true; + this.print_string(this._ch); + this._output.space_before_token = true; + } else { + this.print_string(this._ch); + this.eatWhitespace(); + // squash extra whitespace + if (this._ch && whitespaceChar.test(this._ch)) { + this._ch = ''; + } + } + } else if (this._ch === ']') { + this.print_string(this._ch); + } else if (this._ch === '[') { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch); + } else if (this._ch === '=') { // no whitespace before or after + this.eatWhitespace(); + this.print_string('='); + if (whitespaceChar.test(this._ch)) { + this._ch = ''; + } + } else if (this._ch === '!' && !this._input.lookBack("\\")) { // !important + this._output.space_before_token = true; + this.print_string(this._ch); + } else { + var preserveAfterSpace = previous_ch === '"' || previous_ch === '\''; + this.preserveSingleSpace(preserveAfterSpace || isAfterSpace); + this.print_string(this._ch); + + if (!this._output.just_added_newline() && this._input.peek() === '\n' && insideNonSemiColonValues) { + this._output.add_new_line(); + } + } + } + + var sweetCode = this._output.get_code(eol); + + return sweetCode; +}; + +module.exports.Beautifier = Beautifier; + + +/***/ }), +/* 17 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var BaseOptions = (__webpack_require__(6).Options); + +function Options(options) { + BaseOptions.call(this, options, 'css'); + + this.selector_separator_newline = this._get_boolean('selector_separator_newline', true); + this.newline_between_rules = this._get_boolean('newline_between_rules', true); + var space_around_selector_separator = this._get_boolean('space_around_selector_separator'); + this.space_around_combinator = this._get_boolean('space_around_combinator') || space_around_selector_separator; + + var brace_style_split = this._get_selection_list('brace_style', ['collapse', 'expand', 'end-expand', 'none', 'preserve-inline']); + this.brace_style = 'collapse'; + for (var bs = 0; bs < brace_style_split.length; bs++) { + if (brace_style_split[bs] !== 'expand') { + // default to collapse, as only collapse|expand is implemented for now + this.brace_style = 'collapse'; + } else { + this.brace_style = brace_style_split[bs]; + } + } +} +Options.prototype = new BaseOptions(); + + + +module.exports.Options = Options; + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__(15); +/******/ legacy_beautify_css = __webpack_exports__; +/******/ +/******/ })() +; + +var css_beautify = legacy_beautify_css; + +// copied from js-beautify/js/lib/beautify-html.js +// version: 1.15.1 +/* AUTO-GENERATED. DO NOT MODIFY. */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + Style HTML +--------------- + + Written by Nochum Sossonko, (nsossonko@hotmail.com) + + Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io> + https://beautifier.io/ + + Usage: + style_html(html_source); + + style_html(html_source, options); + + The options are: + indent_inner_html (default false) — indent <head> and <body> sections, + indent_size (default 4) — indentation size, + indent_char (default space) — character to indent with, + wrap_line_length (default 250) - maximum amount of characters per line (0 = disable) + brace_style (default "collapse") - "collapse" | "expand" | "end-expand" | "none" + put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line, or attempt to keep them where they are. + inline (defaults to inline tags) - list of tags to be considered inline tags + unformatted (defaults to inline tags) - list of tags, that shouldn't be reformatted + content_unformatted (defaults to ["pre", "textarea"] tags) - list of tags, whose content shouldn't be reformatted + indent_scripts (default normal) - "keep"|"separate"|"normal" + preserve_newlines (default true) - whether existing line breaks before elements should be preserved + Only works before elements, not inside tags or for text. + max_preserve_newlines (default unlimited) - maximum number of line breaks to be preserved in one chunk + indent_handlebars (default false) - format and indent {{#foo}} and {{/foo}} + end_with_newline (false) - end with a newline + extra_liners (default [head,body,/html]) -List of tags that should have an extra newline before them. + + e.g. + + style_html(html_source, { + 'indent_inner_html': false, + 'indent_size': 2, + 'indent_char': ' ', + 'wrap_line_length': 78, + 'brace_style': 'expand', + 'preserve_newlines': true, + 'max_preserve_newlines': 5, + 'indent_handlebars': false, + 'extra_liners': ['/html'] + }); +*/ + + +var legacy_beautify_html; +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */, +/* 2 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function OutputLine(parent) { + this.__parent = parent; + this.__character_count = 0; + // use indent_count as a marker for this.__lines that have preserved indentation + this.__indent_count = -1; + this.__alignment_count = 0; + this.__wrap_point_index = 0; + this.__wrap_point_character_count = 0; + this.__wrap_point_indent_count = -1; + this.__wrap_point_alignment_count = 0; + + this.__items = []; +} + +OutputLine.prototype.clone_empty = function() { + var line = new OutputLine(this.__parent); + line.set_indent(this.__indent_count, this.__alignment_count); + return line; +}; + +OutputLine.prototype.item = function(index) { + if (index < 0) { + return this.__items[this.__items.length + index]; + } else { + return this.__items[index]; + } +}; + +OutputLine.prototype.has_match = function(pattern) { + for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) { + if (this.__items[lastCheckedOutput].match(pattern)) { + return true; + } + } + return false; +}; + +OutputLine.prototype.set_indent = function(indent, alignment) { + if (this.is_empty()) { + this.__indent_count = indent || 0; + this.__alignment_count = alignment || 0; + this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count); + } +}; + +OutputLine.prototype._set_wrap_point = function() { + if (this.__parent.wrap_line_length) { + this.__wrap_point_index = this.__items.length; + this.__wrap_point_character_count = this.__character_count; + this.__wrap_point_indent_count = this.__parent.next_line.__indent_count; + this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count; + } +}; + +OutputLine.prototype._should_wrap = function() { + return this.__wrap_point_index && + this.__character_count > this.__parent.wrap_line_length && + this.__wrap_point_character_count > this.__parent.next_line.__character_count; +}; + +OutputLine.prototype._allow_wrap = function() { + if (this._should_wrap()) { + this.__parent.add_new_line(); + var next = this.__parent.current_line; + next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count); + next.__items = this.__items.slice(this.__wrap_point_index); + this.__items = this.__items.slice(0, this.__wrap_point_index); + + next.__character_count += this.__character_count - this.__wrap_point_character_count; + this.__character_count = this.__wrap_point_character_count; + + if (next.__items[0] === " ") { + next.__items.splice(0, 1); + next.__character_count -= 1; + } + return true; + } + return false; +}; + +OutputLine.prototype.is_empty = function() { + return this.__items.length === 0; +}; + +OutputLine.prototype.last = function() { + if (!this.is_empty()) { + return this.__items[this.__items.length - 1]; + } else { + return null; + } +}; + +OutputLine.prototype.push = function(item) { + this.__items.push(item); + var last_newline_index = item.lastIndexOf('\n'); + if (last_newline_index !== -1) { + this.__character_count = item.length - last_newline_index; + } else { + this.__character_count += item.length; + } +}; + +OutputLine.prototype.pop = function() { + var item = null; + if (!this.is_empty()) { + item = this.__items.pop(); + this.__character_count -= item.length; + } + return item; +}; + + +OutputLine.prototype._remove_indent = function() { + if (this.__indent_count > 0) { + this.__indent_count -= 1; + this.__character_count -= this.__parent.indent_size; + } +}; + +OutputLine.prototype._remove_wrap_indent = function() { + if (this.__wrap_point_indent_count > 0) { + this.__wrap_point_indent_count -= 1; + } +}; +OutputLine.prototype.trim = function() { + while (this.last() === ' ') { + this.__items.pop(); + this.__character_count -= 1; + } +}; + +OutputLine.prototype.toString = function() { + var result = ''; + if (this.is_empty()) { + if (this.__parent.indent_empty_lines) { + result = this.__parent.get_indent_string(this.__indent_count); + } + } else { + result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count); + result += this.__items.join(''); + } + return result; +}; + +function IndentStringCache(options, baseIndentString) { + this.__cache = ['']; + this.__indent_size = options.indent_size; + this.__indent_string = options.indent_char; + if (!options.indent_with_tabs) { + this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char); + } + + // Set to null to continue support for auto detection of base indent + baseIndentString = baseIndentString || ''; + if (options.indent_level > 0) { + baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string); + } + + this.__base_string = baseIndentString; + this.__base_string_length = baseIndentString.length; +} + +IndentStringCache.prototype.get_indent_size = function(indent, column) { + var result = this.__base_string_length; + column = column || 0; + if (indent < 0) { + result = 0; + } + result += indent * this.__indent_size; + result += column; + return result; +}; + +IndentStringCache.prototype.get_indent_string = function(indent_level, column) { + var result = this.__base_string; + column = column || 0; + if (indent_level < 0) { + indent_level = 0; + result = ''; + } + column += indent_level * this.__indent_size; + this.__ensure_cache(column); + result += this.__cache[column]; + return result; +}; + +IndentStringCache.prototype.__ensure_cache = function(column) { + while (column >= this.__cache.length) { + this.__add_column(); + } +}; + +IndentStringCache.prototype.__add_column = function() { + var column = this.__cache.length; + var indent = 0; + var result = ''; + if (this.__indent_size && column >= this.__indent_size) { + indent = Math.floor(column / this.__indent_size); + column -= indent * this.__indent_size; + result = new Array(indent + 1).join(this.__indent_string); + } + if (column) { + result += new Array(column + 1).join(' '); + } + + this.__cache.push(result); +}; + +function Output(options, baseIndentString) { + this.__indent_cache = new IndentStringCache(options, baseIndentString); + this.raw = false; + this._end_with_newline = options.end_with_newline; + this.indent_size = options.indent_size; + this.wrap_line_length = options.wrap_line_length; + this.indent_empty_lines = options.indent_empty_lines; + this.__lines = []; + this.previous_line = null; + this.current_line = null; + this.next_line = new OutputLine(this); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; + // initialize + this.__add_outputline(); +} + +Output.prototype.__add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = this.next_line.clone_empty(); + this.__lines.push(this.current_line); +}; + +Output.prototype.get_line_number = function() { + return this.__lines.length; +}; + +Output.prototype.get_indent_string = function(indent, column) { + return this.__indent_cache.get_indent_string(indent, column); +}; + +Output.prototype.get_indent_size = function(indent, column) { + return this.__indent_cache.get_indent_size(indent, column); +}; + +Output.prototype.is_empty = function() { + return !this.previous_line && this.current_line.is_empty(); +}; + +Output.prototype.add_new_line = function(force_newline) { + // never newline at the start of file + // otherwise, newline only if we didn't just add one or we're forced + if (this.is_empty() || + (!force_newline && this.just_added_newline())) { + return false; + } + + // if raw output is enabled, don't print additional newlines, + // but still return True as though you had + if (!this.raw) { + this.__add_outputline(); + } + return true; +}; + +Output.prototype.get_code = function(eol) { + this.trim(true); + + // handle some edge cases where the last tokens + // has text that ends with newline(s) + var last_item = this.current_line.pop(); + if (last_item) { + if (last_item[last_item.length - 1] === '\n') { + last_item = last_item.replace(/\n+$/g, ''); + } + this.current_line.push(last_item); + } + + if (this._end_with_newline) { + this.__add_outputline(); + } + + var sweet_code = this.__lines.join('\n'); + + if (eol !== '\n') { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + return sweet_code; +}; + +Output.prototype.set_wrap_point = function() { + this.current_line._set_wrap_point(); +}; + +Output.prototype.set_indent = function(indent, alignment) { + indent = indent || 0; + alignment = alignment || 0; + + // Next line stores alignment values + this.next_line.set_indent(indent, alignment); + + // Never indent your first output indent at the start of the file + if (this.__lines.length > 1) { + this.current_line.set_indent(indent, alignment); + return true; + } + + this.current_line.set_indent(); + return false; +}; + +Output.prototype.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.__add_outputline(); + } + this.current_line.set_indent(-1); + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; +}; + +Output.prototype.add_token = function(printable_token) { + this.__add_space_before_token(); + this.current_line.push(printable_token); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = this.current_line._allow_wrap(); +}; + +Output.prototype.__add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + if (!this.non_breaking_space) { + this.set_wrap_point(); + } + this.current_line.push(' '); + } +}; + +Output.prototype.remove_indent = function(index) { + var output_length = this.__lines.length; + while (index < output_length) { + this.__lines[index]._remove_indent(); + index++; + } + this.current_line._remove_wrap_indent(); +}; + +Output.prototype.trim = function(eat_newlines) { + eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + + this.current_line.trim(); + + while (eat_newlines && this.__lines.length > 1 && + this.current_line.is_empty()) { + this.__lines.pop(); + this.current_line = this.__lines[this.__lines.length - 1]; + this.current_line.trim(); + } + + this.previous_line = this.__lines.length > 1 ? + this.__lines[this.__lines.length - 2] : null; +}; + +Output.prototype.just_added_newline = function() { + return this.current_line.is_empty(); +}; + +Output.prototype.just_added_blankline = function() { + return this.is_empty() || + (this.current_line.is_empty() && this.previous_line.is_empty()); +}; + +Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) { + var index = this.__lines.length - 2; + while (index >= 0) { + var potentialEmptyLine = this.__lines[index]; + if (potentialEmptyLine.is_empty()) { + break; + } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && + potentialEmptyLine.item(-1) !== ends_with) { + this.__lines.splice(index + 1, 0, new OutputLine(this)); + this.previous_line = this.__lines[this.__lines.length - 2]; + break; + } + index--; + } +}; + +module.exports.Output = Output; + + +/***/ }), +/* 3 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Token(type, text, newlines, whitespace_before) { + this.type = type; + this.text = text; + + // comments_before are + // comments that have a new line before them + // and may or may not have a newline after + // this is a set of comments before + this.comments_before = null; /* inline comment*/ + + + // this.comments_after = new TokenStream(); // no new line before and newline after + this.newlines = newlines || 0; + this.whitespace_before = whitespace_before || ''; + this.parent = null; + this.next = null; + this.previous = null; + this.opened = null; + this.closed = null; + this.directives = null; +} + + +module.exports.Token = Token; + + +/***/ }), +/* 4 */, +/* 5 */, +/* 6 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Options(options, merge_child_field) { + this.raw_options = _mergeOpts(options, merge_child_field); + + // Support passing the source text back with no change + this.disabled = this._get_boolean('disabled'); + + this.eol = this._get_characters('eol', 'auto'); + this.end_with_newline = this._get_boolean('end_with_newline'); + this.indent_size = this._get_number('indent_size', 4); + this.indent_char = this._get_characters('indent_char', ' '); + this.indent_level = this._get_number('indent_level'); + + this.preserve_newlines = this._get_boolean('preserve_newlines', true); + this.max_preserve_newlines = this._get_number('max_preserve_newlines', 32786); + if (!this.preserve_newlines) { + this.max_preserve_newlines = 0; + } + + this.indent_with_tabs = this._get_boolean('indent_with_tabs', this.indent_char === '\t'); + if (this.indent_with_tabs) { + this.indent_char = '\t'; + + // indent_size behavior changed after 1.8.6 + // It used to be that indent_size would be + // set to 1 for indent_with_tabs. That is no longer needed and + // actually doesn't make sense - why not use spaces? Further, + // that might produce unexpected behavior - tabs being used + // for single-column alignment. So, when indent_with_tabs is true + // and indent_size is 1, reset indent_size to 4. + if (this.indent_size === 1) { + this.indent_size = 4; + } + } + + // Backwards compat with 1.3.x + this.wrap_line_length = this._get_number('wrap_line_length', this._get_number('max_char')); + + this.indent_empty_lines = this._get_boolean('indent_empty_lines'); + + // valid templating languages ['django', 'erb', 'handlebars', 'php', 'smarty', 'angular'] + // For now, 'auto' = all off for javascript, all except angular on for html (and inline javascript/css). + // other values ignored + this.templating = this._get_selection_list('templating', ['auto', 'none', 'angular', 'django', 'erb', 'handlebars', 'php', 'smarty'], ['auto']); +} + +Options.prototype._get_array = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || []; + if (typeof option_value === 'object') { + if (option_value !== null && typeof option_value.concat === 'function') { + result = option_value.concat(); + } + } else if (typeof option_value === 'string') { + result = option_value.split(/[^a-zA-Z0-9_\/\-]+/); + } + return result; +}; + +Options.prototype._get_boolean = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = option_value === undefined ? !!default_value : !!option_value; + return result; +}; + +Options.prototype._get_characters = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || ''; + if (typeof option_value === 'string') { + result = option_value.replace(/\\r/, '\r').replace(/\\n/, '\n').replace(/\\t/, '\t'); + } + return result; +}; + +Options.prototype._get_number = function(name, default_value) { + var option_value = this.raw_options[name]; + default_value = parseInt(default_value, 10); + if (isNaN(default_value)) { + default_value = 0; + } + var result = parseInt(option_value, 10); + if (isNaN(result)) { + result = default_value; + } + return result; +}; + +Options.prototype._get_selection = function(name, selection_list, default_value) { + var result = this._get_selection_list(name, selection_list, default_value); + if (result.length !== 1) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can only be one of the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result[0]; +}; + + +Options.prototype._get_selection_list = function(name, selection_list, default_value) { + if (!selection_list || selection_list.length === 0) { + throw new Error("Selection list cannot be empty."); + } + + default_value = default_value || [selection_list[0]]; + if (!this._is_valid_selection(default_value, selection_list)) { + throw new Error("Invalid Default Value!"); + } + + var result = this._get_array(name, default_value); + if (!this._is_valid_selection(result, selection_list)) { + throw new Error( + "Invalid Option Value: The option '" + name + "' can contain only the following values:\n" + + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + + return result; +}; + +Options.prototype._is_valid_selection = function(result, selection_list) { + return result.length && selection_list.length && + !result.some(function(item) { return selection_list.indexOf(item) === -1; }); +}; + + +// merges child options up with the parent options object +// Example: obj = {a: 1, b: {a: 2}} +// mergeOpts(obj, 'b') +// +// Returns: {a: 2} +function _mergeOpts(allOptions, childFieldName) { + var finalOpts = {}; + allOptions = _normalizeOpts(allOptions); + var name; + + for (name in allOptions) { + if (name !== childFieldName) { + finalOpts[name] = allOptions[name]; + } + } + + //merge in the per type settings for the childFieldName + if (childFieldName && allOptions[childFieldName]) { + for (name in allOptions[childFieldName]) { + finalOpts[name] = allOptions[childFieldName][name]; + } + } + return finalOpts; +} + +function _normalizeOpts(options) { + var convertedOpts = {}; + var key; + + for (key in options) { + var newKey = key.replace(/-/g, "_"); + convertedOpts[newKey] = options[key]; + } + return convertedOpts; +} + +module.exports.Options = Options; +module.exports.normalizeOpts = _normalizeOpts; +module.exports.mergeOpts = _mergeOpts; + + +/***/ }), +/* 7 */, +/* 8 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var regexp_has_sticky = RegExp.prototype.hasOwnProperty('sticky'); + +function InputScanner(input_string) { + this.__input = input_string || ''; + this.__input_length = this.__input.length; + this.__position = 0; +} + +InputScanner.prototype.restart = function() { + this.__position = 0; +}; + +InputScanner.prototype.back = function() { + if (this.__position > 0) { + this.__position -= 1; + } +}; + +InputScanner.prototype.hasNext = function() { + return this.__position < this.__input_length; +}; + +InputScanner.prototype.next = function() { + var val = null; + if (this.hasNext()) { + val = this.__input.charAt(this.__position); + this.__position += 1; + } + return val; +}; + +InputScanner.prototype.peek = function(index) { + var val = null; + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__input_length) { + val = this.__input.charAt(index); + } + return val; +}; + +// This is a JavaScript only helper function (not in python) +// Javascript doesn't have a match method +// and not all implementation support "sticky" flag. +// If they do not support sticky then both this.match() and this.test() method +// must get the match and check the index of the match. +// If sticky is supported and set, this method will use it. +// Otherwise it will check that global is set, and fall back to the slower method. +InputScanner.prototype.__match = function(pattern, index) { + pattern.lastIndex = index; + var pattern_match = pattern.exec(this.__input); + + if (pattern_match && !(regexp_has_sticky && pattern.sticky)) { + if (pattern_match.index !== index) { + pattern_match = null; + } + } + + return pattern_match; +}; + +InputScanner.prototype.test = function(pattern, index) { + index = index || 0; + index += this.__position; + + if (index >= 0 && index < this.__input_length) { + return !!this.__match(pattern, index); + } else { + return false; + } +}; + +InputScanner.prototype.testChar = function(pattern, index) { + // test one character regex match + var val = this.peek(index); + pattern.lastIndex = 0; + return val !== null && pattern.test(val); +}; + +InputScanner.prototype.match = function(pattern) { + var pattern_match = this.__match(pattern, this.__position); + if (pattern_match) { + this.__position += pattern_match[0].length; + } else { + pattern_match = null; + } + return pattern_match; +}; + +InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) { + var val = ''; + var match; + if (starting_pattern) { + match = this.match(starting_pattern); + if (match) { + val += match[0]; + } + } + if (until_pattern && (match || !starting_pattern)) { + val += this.readUntil(until_pattern, until_after); + } + return val; +}; + +InputScanner.prototype.readUntil = function(pattern, until_after) { + var val = ''; + var match_index = this.__position; + pattern.lastIndex = this.__position; + var pattern_match = pattern.exec(this.__input); + if (pattern_match) { + match_index = pattern_match.index; + if (until_after) { + match_index += pattern_match[0].length; + } + } else { + match_index = this.__input_length; + } + + val = this.__input.substring(this.__position, match_index); + this.__position = match_index; + return val; +}; + +InputScanner.prototype.readUntilAfter = function(pattern) { + return this.readUntil(pattern, true); +}; + +InputScanner.prototype.get_regexp = function(pattern, match_from) { + var result = null; + var flags = 'g'; + if (match_from && regexp_has_sticky) { + flags = 'y'; + } + // strings are converted to regexp + if (typeof pattern === "string" && pattern !== '') { + // result = new RegExp(pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), flags); + result = new RegExp(pattern, flags); + } else if (pattern) { + result = new RegExp(pattern.source, flags); + } + return result; +}; + +InputScanner.prototype.get_literal_regexp = function(literal_string) { + return RegExp(literal_string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); +}; + +/* css beautifier legacy helpers */ +InputScanner.prototype.peekUntilAfter = function(pattern) { + var start = this.__position; + var val = this.readUntilAfter(pattern); + this.__position = start; + return val; +}; + +InputScanner.prototype.lookBack = function(testVal) { + var start = this.__position - 1; + return start >= testVal.length && this.__input.substring(start - testVal.length, start) + .toLowerCase() === testVal; +}; + +module.exports.InputScanner = InputScanner; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var InputScanner = (__webpack_require__(8).InputScanner); +var Token = (__webpack_require__(3).Token); +var TokenStream = (__webpack_require__(10).TokenStream); +var WhitespacePattern = (__webpack_require__(11).WhitespacePattern); + +var TOKEN = { + START: 'TK_START', + RAW: 'TK_RAW', + EOF: 'TK_EOF' +}; + +var Tokenizer = function(input_string, options) { + this._input = new InputScanner(input_string); + this._options = options || {}; + this.__tokens = null; + + this._patterns = {}; + this._patterns.whitespace = new WhitespacePattern(this._input); +}; + +Tokenizer.prototype.tokenize = function() { + this._input.restart(); + this.__tokens = new TokenStream(); + + this._reset(); + + var current; + var previous = new Token(TOKEN.START, ''); + var open_token = null; + var open_stack = []; + var comments = new TokenStream(); + + while (previous.type !== TOKEN.EOF) { + current = this._get_next_token(previous, open_token); + while (this._is_comment(current)) { + comments.add(current); + current = this._get_next_token(previous, open_token); + } + + if (!comments.isEmpty()) { + current.comments_before = comments; + comments = new TokenStream(); + } + + current.parent = open_token; + + if (this._is_opening(current)) { + open_stack.push(open_token); + open_token = current; + } else if (open_token && this._is_closing(current, open_token)) { + current.opened = open_token; + open_token.closed = current; + open_token = open_stack.pop(); + current.parent = open_token; + } + + current.previous = previous; + previous.next = current; + + this.__tokens.add(current); + previous = current; + } + + return this.__tokens; +}; + + +Tokenizer.prototype._is_first_token = function() { + return this.__tokens.isEmpty(); +}; + +Tokenizer.prototype._reset = function() {}; + +Tokenizer.prototype._get_next_token = function(previous_token, open_token) { // jshint unused:false + this._readWhitespace(); + var resulting_string = this._input.read(/.+/g); + if (resulting_string) { + return this._create_token(TOKEN.RAW, resulting_string); + } else { + return this._create_token(TOKEN.EOF, ''); + } +}; + +Tokenizer.prototype._is_comment = function(current_token) { // jshint unused:false + return false; +}; + +Tokenizer.prototype._is_opening = function(current_token) { // jshint unused:false + return false; +}; + +Tokenizer.prototype._is_closing = function(current_token, open_token) { // jshint unused:false + return false; +}; + +Tokenizer.prototype._create_token = function(type, text) { + var token = new Token(type, text, + this._patterns.whitespace.newline_count, + this._patterns.whitespace.whitespace_before_token); + return token; +}; + +Tokenizer.prototype._readWhitespace = function() { + return this._patterns.whitespace.read(); +}; + + + +module.exports.Tokenizer = Tokenizer; +module.exports.TOKEN = TOKEN; + + +/***/ }), +/* 10 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function TokenStream(parent_token) { + // private + this.__tokens = []; + this.__tokens_length = this.__tokens.length; + this.__position = 0; + this.__parent_token = parent_token; +} + +TokenStream.prototype.restart = function() { + this.__position = 0; +}; + +TokenStream.prototype.isEmpty = function() { + return this.__tokens_length === 0; +}; + +TokenStream.prototype.hasNext = function() { + return this.__position < this.__tokens_length; +}; + +TokenStream.prototype.next = function() { + var val = null; + if (this.hasNext()) { + val = this.__tokens[this.__position]; + this.__position += 1; + } + return val; +}; + +TokenStream.prototype.peek = function(index) { + var val = null; + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__tokens_length) { + val = this.__tokens[index]; + } + return val; +}; + +TokenStream.prototype.add = function(token) { + if (this.__parent_token) { + token.parent = this.__parent_token; + } + this.__tokens.push(token); + this.__tokens_length += 1; +}; + +module.exports.TokenStream = TokenStream; + + +/***/ }), +/* 11 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Pattern = (__webpack_require__(12).Pattern); + +function WhitespacePattern(input_scanner, parent) { + Pattern.call(this, input_scanner, parent); + if (parent) { + this._line_regexp = this._input.get_regexp(parent._line_regexp); + } else { + this.__set_whitespace_patterns('', ''); + } + + this.newline_count = 0; + this.whitespace_before_token = ''; +} +WhitespacePattern.prototype = new Pattern(); + +WhitespacePattern.prototype.__set_whitespace_patterns = function(whitespace_chars, newline_chars) { + whitespace_chars += '\\t '; + newline_chars += '\\n\\r'; + + this._match_pattern = this._input.get_regexp( + '[' + whitespace_chars + newline_chars + ']+', true); + this._newline_regexp = this._input.get_regexp( + '\\r\\n|[' + newline_chars + ']'); +}; + +WhitespacePattern.prototype.read = function() { + this.newline_count = 0; + this.whitespace_before_token = ''; + + var resulting_string = this._input.read(this._match_pattern); + if (resulting_string === ' ') { + this.whitespace_before_token = ' '; + } else if (resulting_string) { + var matches = this.__split(this._newline_regexp, resulting_string); + this.newline_count = matches.length - 1; + this.whitespace_before_token = matches[this.newline_count]; + } + + return resulting_string; +}; + +WhitespacePattern.prototype.matching = function(whitespace_chars, newline_chars) { + var result = this._create(); + result.__set_whitespace_patterns(whitespace_chars, newline_chars); + result._update(); + return result; +}; + +WhitespacePattern.prototype._create = function() { + return new WhitespacePattern(this._input, this); +}; + +WhitespacePattern.prototype.__split = function(regexp, input_string) { + regexp.lastIndex = 0; + var start_index = 0; + var result = []; + var next_match = regexp.exec(input_string); + while (next_match) { + result.push(input_string.substring(start_index, next_match.index)); + start_index = next_match.index + next_match[0].length; + next_match = regexp.exec(input_string); + } + + if (start_index < input_string.length) { + result.push(input_string.substring(start_index, input_string.length)); + } else { + result.push(''); + } + + return result; +}; + + + +module.exports.WhitespacePattern = WhitespacePattern; + + +/***/ }), +/* 12 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Pattern(input_scanner, parent) { + this._input = input_scanner; + this._starting_pattern = null; + this._match_pattern = null; + this._until_pattern = null; + this._until_after = false; + + if (parent) { + this._starting_pattern = this._input.get_regexp(parent._starting_pattern, true); + this._match_pattern = this._input.get_regexp(parent._match_pattern, true); + this._until_pattern = this._input.get_regexp(parent._until_pattern); + this._until_after = parent._until_after; + } +} + +Pattern.prototype.read = function() { + var result = this._input.read(this._starting_pattern); + if (!this._starting_pattern || result) { + result += this._input.read(this._match_pattern, this._until_pattern, this._until_after); + } + return result; +}; + +Pattern.prototype.read_match = function() { + return this._input.match(this._match_pattern); +}; + +Pattern.prototype.until_after = function(pattern) { + var result = this._create(); + result._until_after = true; + result._until_pattern = this._input.get_regexp(pattern); + result._update(); + return result; +}; + +Pattern.prototype.until = function(pattern) { + var result = this._create(); + result._until_after = false; + result._until_pattern = this._input.get_regexp(pattern); + result._update(); + return result; +}; + +Pattern.prototype.starting_with = function(pattern) { + var result = this._create(); + result._starting_pattern = this._input.get_regexp(pattern, true); + result._update(); + return result; +}; + +Pattern.prototype.matching = function(pattern) { + var result = this._create(); + result._match_pattern = this._input.get_regexp(pattern, true); + result._update(); + return result; +}; + +Pattern.prototype._create = function() { + return new Pattern(this._input, this); +}; + +Pattern.prototype._update = function() {}; + +module.exports.Pattern = Pattern; + + +/***/ }), +/* 13 */ +/***/ (function(module) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +function Directives(start_block_pattern, end_block_pattern) { + start_block_pattern = typeof start_block_pattern === 'string' ? start_block_pattern : start_block_pattern.source; + end_block_pattern = typeof end_block_pattern === 'string' ? end_block_pattern : end_block_pattern.source; + this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \w+[:]\w+)+ /.source + end_block_pattern, 'g'); + this.__directive_pattern = / (\w+)[:](\w+)/g; + + this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\sbeautify\signore:end\s/.source + end_block_pattern, 'g'); +} + +Directives.prototype.get_directives = function(text) { + if (!text.match(this.__directives_block_pattern)) { + return null; + } + + var directives = {}; + this.__directive_pattern.lastIndex = 0; + var directive_match = this.__directive_pattern.exec(text); + + while (directive_match) { + directives[directive_match[1]] = directive_match[2]; + directive_match = this.__directive_pattern.exec(text); + } + + return directives; +}; + +Directives.prototype.readIgnored = function(input) { + return input.readUntilAfter(this.__directives_end_ignore_pattern); +}; + + +module.exports.Directives = Directives; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Pattern = (__webpack_require__(12).Pattern); + + +var template_names = { + django: false, + erb: false, + handlebars: false, + php: false, + smarty: false, + angular: false +}; + +// This lets templates appear anywhere we would do a readUntil +// The cost is higher but it is pay to play. +function TemplatablePattern(input_scanner, parent) { + Pattern.call(this, input_scanner, parent); + this.__template_pattern = null; + this._disabled = Object.assign({}, template_names); + this._excluded = Object.assign({}, template_names); + + if (parent) { + this.__template_pattern = this._input.get_regexp(parent.__template_pattern); + this._excluded = Object.assign(this._excluded, parent._excluded); + this._disabled = Object.assign(this._disabled, parent._disabled); + } + var pattern = new Pattern(input_scanner); + this.__patterns = { + handlebars_comment: pattern.starting_with(/{{!--/).until_after(/--}}/), + handlebars_unescaped: pattern.starting_with(/{{{/).until_after(/}}}/), + handlebars: pattern.starting_with(/{{/).until_after(/}}/), + php: pattern.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/), + erb: pattern.starting_with(/<%[^%]/).until_after(/[^%]%>/), + // django coflicts with handlebars a bit. + django: pattern.starting_with(/{%/).until_after(/%}/), + django_value: pattern.starting_with(/{{/).until_after(/}}/), + django_comment: pattern.starting_with(/{#/).until_after(/#}/), + smarty: pattern.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/), + smarty_comment: pattern.starting_with(/{\*/).until_after(/\*}/), + smarty_literal: pattern.starting_with(/{literal}/).until_after(/{\/literal}/) + }; +} +TemplatablePattern.prototype = new Pattern(); + +TemplatablePattern.prototype._create = function() { + return new TemplatablePattern(this._input, this); +}; + +TemplatablePattern.prototype._update = function() { + this.__set_templated_pattern(); +}; + +TemplatablePattern.prototype.disable = function(language) { + var result = this._create(); + result._disabled[language] = true; + result._update(); + return result; +}; + +TemplatablePattern.prototype.read_options = function(options) { + var result = this._create(); + for (var language in template_names) { + result._disabled[language] = options.templating.indexOf(language) === -1; + } + result._update(); + return result; +}; + +TemplatablePattern.prototype.exclude = function(language) { + var result = this._create(); + result._excluded[language] = true; + result._update(); + return result; +}; + +TemplatablePattern.prototype.read = function() { + var result = ''; + if (this._match_pattern) { + result = this._input.read(this._starting_pattern); + } else { + result = this._input.read(this._starting_pattern, this.__template_pattern); + } + var next = this._read_template(); + while (next) { + if (this._match_pattern) { + next += this._input.read(this._match_pattern); + } else { + next += this._input.readUntil(this.__template_pattern); + } + result += next; + next = this._read_template(); + } + + if (this._until_after) { + result += this._input.readUntilAfter(this._until_pattern); + } + return result; +}; + +TemplatablePattern.prototype.__set_templated_pattern = function() { + var items = []; + + if (!this._disabled.php) { + items.push(this.__patterns.php._starting_pattern.source); + } + if (!this._disabled.handlebars) { + items.push(this.__patterns.handlebars._starting_pattern.source); + } + if (!this._disabled.erb) { + items.push(this.__patterns.erb._starting_pattern.source); + } + if (!this._disabled.django) { + items.push(this.__patterns.django._starting_pattern.source); + // The starting pattern for django is more complex because it has different + // patterns for value, comment, and other sections + items.push(this.__patterns.django_value._starting_pattern.source); + items.push(this.__patterns.django_comment._starting_pattern.source); + } + if (!this._disabled.smarty) { + items.push(this.__patterns.smarty._starting_pattern.source); + } + + if (this._until_pattern) { + items.push(this._until_pattern.source); + } + this.__template_pattern = this._input.get_regexp('(?:' + items.join('|') + ')'); +}; + +TemplatablePattern.prototype._read_template = function() { + var resulting_string = ''; + var c = this._input.peek(); + if (c === '<') { + var peek1 = this._input.peek(1); + //if we're in a comment, do something special + // We treat all comments as literals, even more than preformatted tags + // we just look for the appropriate close tag + if (!this._disabled.php && !this._excluded.php && peek1 === '?') { + resulting_string = resulting_string || + this.__patterns.php.read(); + } + if (!this._disabled.erb && !this._excluded.erb && peek1 === '%') { + resulting_string = resulting_string || + this.__patterns.erb.read(); + } + } else if (c === '{') { + if (!this._disabled.handlebars && !this._excluded.handlebars) { + resulting_string = resulting_string || + this.__patterns.handlebars_comment.read(); + resulting_string = resulting_string || + this.__patterns.handlebars_unescaped.read(); + resulting_string = resulting_string || + this.__patterns.handlebars.read(); + } + if (!this._disabled.django) { + // django coflicts with handlebars a bit. + if (!this._excluded.django && !this._excluded.handlebars) { + resulting_string = resulting_string || + this.__patterns.django_value.read(); + } + if (!this._excluded.django) { + resulting_string = resulting_string || + this.__patterns.django_comment.read(); + resulting_string = resulting_string || + this.__patterns.django.read(); + } + } + if (!this._disabled.smarty) { + // smarty cannot be enabled with django or handlebars enabled + if (this._disabled.django && this._disabled.handlebars) { + resulting_string = resulting_string || + this.__patterns.smarty_comment.read(); + resulting_string = resulting_string || + this.__patterns.smarty_literal.read(); + resulting_string = resulting_string || + this.__patterns.smarty.read(); + } + } + } + return resulting_string; +}; + + +module.exports.TemplatablePattern = TemplatablePattern; + + +/***/ }), +/* 15 */, +/* 16 */, +/* 17 */, +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Beautifier = (__webpack_require__(19).Beautifier), + Options = (__webpack_require__(20).Options); + +function style_html(html_source, options, js_beautify, css_beautify) { + var beautifier = new Beautifier(html_source, options, js_beautify, css_beautify); + return beautifier.beautify(); +} + +module.exports = style_html; +module.exports.defaultOptions = function() { + return new Options(); +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var Options = (__webpack_require__(20).Options); +var Output = (__webpack_require__(2).Output); +var Tokenizer = (__webpack_require__(21).Tokenizer); +var TOKEN = (__webpack_require__(21).TOKEN); + +var lineBreak = /\r\n|[\r\n]/; +var allLineBreaks = /\r\n|[\r\n]/g; + +var Printer = function(options, base_indent_string) { //handles input/output and some other printing functions + + this.indent_level = 0; + this.alignment_size = 0; + this.max_preserve_newlines = options.max_preserve_newlines; + this.preserve_newlines = options.preserve_newlines; + + this._output = new Output(options, base_indent_string); + +}; + +Printer.prototype.current_line_has_match = function(pattern) { + return this._output.current_line.has_match(pattern); +}; + +Printer.prototype.set_space_before_token = function(value, non_breaking) { + this._output.space_before_token = value; + this._output.non_breaking_space = non_breaking; +}; + +Printer.prototype.set_wrap_point = function() { + this._output.set_indent(this.indent_level, this.alignment_size); + this._output.set_wrap_point(); +}; + + +Printer.prototype.add_raw_token = function(token) { + this._output.add_raw_token(token); +}; + +Printer.prototype.print_preserved_newlines = function(raw_token) { + var newlines = 0; + if (raw_token.type !== TOKEN.TEXT && raw_token.previous.type !== TOKEN.TEXT) { + newlines = raw_token.newlines ? 1 : 0; + } + + if (this.preserve_newlines) { + newlines = raw_token.newlines < this.max_preserve_newlines + 1 ? raw_token.newlines : this.max_preserve_newlines + 1; + } + for (var n = 0; n < newlines; n++) { + this.print_newline(n > 0); + } + + return newlines !== 0; +}; + +Printer.prototype.traverse_whitespace = function(raw_token) { + if (raw_token.whitespace_before || raw_token.newlines) { + if (!this.print_preserved_newlines(raw_token)) { + this._output.space_before_token = true; + } + return true; + } + return false; +}; + +Printer.prototype.previous_token_wrapped = function() { + return this._output.previous_token_wrapped; +}; + +Printer.prototype.print_newline = function(force) { + this._output.add_new_line(force); +}; + +Printer.prototype.print_token = function(token) { + if (token.text) { + this._output.set_indent(this.indent_level, this.alignment_size); + this._output.add_token(token.text); + } +}; + +Printer.prototype.indent = function() { + this.indent_level++; +}; + +Printer.prototype.deindent = function() { + if (this.indent_level > 0) { + this.indent_level--; + this._output.set_indent(this.indent_level, this.alignment_size); + } +}; + +Printer.prototype.get_full_indent = function(level) { + level = this.indent_level + (level || 0); + if (level < 1) { + return ''; + } + + return this._output.get_indent_string(level); +}; + +var get_type_attribute = function(start_token) { + var result = null; + var raw_token = start_token.next; + + // Search attributes for a type attribute + while (raw_token.type !== TOKEN.EOF && start_token.closed !== raw_token) { + if (raw_token.type === TOKEN.ATTRIBUTE && raw_token.text === 'type') { + if (raw_token.next && raw_token.next.type === TOKEN.EQUALS && + raw_token.next.next && raw_token.next.next.type === TOKEN.VALUE) { + result = raw_token.next.next.text; + } + break; + } + raw_token = raw_token.next; + } + + return result; +}; + +var get_custom_beautifier_name = function(tag_check, raw_token) { + var typeAttribute = null; + var result = null; + + if (!raw_token.closed) { + return null; + } + + if (tag_check === 'script') { + typeAttribute = 'text/javascript'; + } else if (tag_check === 'style') { + typeAttribute = 'text/css'; + } + + typeAttribute = get_type_attribute(raw_token) || typeAttribute; + + // For script and style tags that have a type attribute, only enable custom beautifiers for matching values + // For those without a type attribute use default; + if (typeAttribute.search('text/css') > -1) { + result = 'css'; + } else if (typeAttribute.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/) > -1) { + result = 'javascript'; + } else if (typeAttribute.search(/(text|application|dojo)\/(x-)?(html)/) > -1) { + result = 'html'; + } else if (typeAttribute.search(/test\/null/) > -1) { + // Test only mime-type for testing the beautifier when null is passed as beautifing function + result = 'null'; + } + + return result; +}; + +function in_array(what, arr) { + return arr.indexOf(what) !== -1; +} + +function TagFrame(parent, parser_token, indent_level) { + this.parent = parent || null; + this.tag = parser_token ? parser_token.tag_name : ''; + this.indent_level = indent_level || 0; + this.parser_token = parser_token || null; +} + +function TagStack(printer) { + this._printer = printer; + this._current_frame = null; +} + +TagStack.prototype.get_parser_token = function() { + return this._current_frame ? this._current_frame.parser_token : null; +}; + +TagStack.prototype.record_tag = function(parser_token) { //function to record a tag and its parent in this.tags Object + var new_frame = new TagFrame(this._current_frame, parser_token, this._printer.indent_level); + this._current_frame = new_frame; +}; + +TagStack.prototype._try_pop_frame = function(frame) { //function to retrieve the opening tag to the corresponding closer + var parser_token = null; + + if (frame) { + parser_token = frame.parser_token; + this._printer.indent_level = frame.indent_level; + this._current_frame = frame.parent; + } + + return parser_token; +}; + +TagStack.prototype._get_frame = function(tag_list, stop_list) { //function to retrieve the opening tag to the corresponding closer + var frame = this._current_frame; + + while (frame) { //till we reach '' (the initial value); + if (tag_list.indexOf(frame.tag) !== -1) { //if this is it use it + break; + } else if (stop_list && stop_list.indexOf(frame.tag) !== -1) { + frame = null; + break; + } + frame = frame.parent; + } + + return frame; +}; + +TagStack.prototype.try_pop = function(tag, stop_list) { //function to retrieve the opening tag to the corresponding closer + var frame = this._get_frame([tag], stop_list); + return this._try_pop_frame(frame); +}; + +TagStack.prototype.indent_to_tag = function(tag_list) { + var frame = this._get_frame(tag_list); + if (frame) { + this._printer.indent_level = frame.indent_level; + } +}; + +function Beautifier(source_text, options, js_beautify, css_beautify) { + //Wrapper function to invoke all the necessary constructors and deal with the output. + this._source_text = source_text || ''; + options = options || {}; + this._js_beautify = js_beautify; + this._css_beautify = css_beautify; + this._tag_stack = null; + + // Allow the setting of language/file-type specific options + // with inheritance of overall settings + var optionHtml = new Options(options, 'html'); + + this._options = optionHtml; + + this._is_wrap_attributes_force = this._options.wrap_attributes.substr(0, 'force'.length) === 'force'; + this._is_wrap_attributes_force_expand_multiline = (this._options.wrap_attributes === 'force-expand-multiline'); + this._is_wrap_attributes_force_aligned = (this._options.wrap_attributes === 'force-aligned'); + this._is_wrap_attributes_aligned_multiple = (this._options.wrap_attributes === 'aligned-multiple'); + this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, 'preserve'.length) === 'preserve'; + this._is_wrap_attributes_preserve_aligned = (this._options.wrap_attributes === 'preserve-aligned'); +} + +Beautifier.prototype.beautify = function() { + + // if disabled, return the input unchanged. + if (this._options.disabled) { + return this._source_text; + } + + var source_text = this._source_text; + var eol = this._options.eol; + if (this._options.eol === 'auto') { + eol = '\n'; + if (source_text && lineBreak.test(source_text)) { + eol = source_text.match(lineBreak)[0]; + } + } + + // HACK: newline parsing inconsistent. This brute force normalizes the input. + source_text = source_text.replace(allLineBreaks, '\n'); + + var baseIndentString = source_text.match(/^[\t ]*/)[0]; + + var last_token = { + text: '', + type: '' + }; + + var last_tag_token = new TagOpenParserToken(); + + var printer = new Printer(this._options, baseIndentString); + var tokens = new Tokenizer(source_text, this._options).tokenize(); + + this._tag_stack = new TagStack(printer); + + var parser_token = null; + var raw_token = tokens.next(); + while (raw_token.type !== TOKEN.EOF) { + + if (raw_token.type === TOKEN.TAG_OPEN || raw_token.type === TOKEN.COMMENT) { + parser_token = this._handle_tag_open(printer, raw_token, last_tag_token, last_token, tokens); + last_tag_token = parser_token; + } else if ((raw_token.type === TOKEN.ATTRIBUTE || raw_token.type === TOKEN.EQUALS || raw_token.type === TOKEN.VALUE) || + (raw_token.type === TOKEN.TEXT && !last_tag_token.tag_complete)) { + parser_token = this._handle_inside_tag(printer, raw_token, last_tag_token, last_token); + } else if (raw_token.type === TOKEN.TAG_CLOSE) { + parser_token = this._handle_tag_close(printer, raw_token, last_tag_token); + } else if (raw_token.type === TOKEN.TEXT) { + parser_token = this._handle_text(printer, raw_token, last_tag_token); + } else if (raw_token.type === TOKEN.CONTROL_FLOW_OPEN) { + parser_token = this._handle_control_flow_open(printer, raw_token); + } else if (raw_token.type === TOKEN.CONTROL_FLOW_CLOSE) { + parser_token = this._handle_control_flow_close(printer, raw_token); + } else { + // This should never happen, but if it does. Print the raw token + printer.add_raw_token(raw_token); + } + + last_token = parser_token; + + raw_token = tokens.next(); + } + var sweet_code = printer._output.get_code(eol); + + return sweet_code; +}; + +Beautifier.prototype._handle_control_flow_open = function(printer, raw_token) { + var parser_token = { + text: raw_token.text, + type: raw_token.type + }; + printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true); + if (raw_token.newlines) { + printer.print_preserved_newlines(raw_token); + } else { + printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true); + } + printer.print_token(raw_token); + printer.indent(); + return parser_token; +}; + +Beautifier.prototype._handle_control_flow_close = function(printer, raw_token) { + var parser_token = { + text: raw_token.text, + type: raw_token.type + }; + + printer.deindent(); + if (raw_token.newlines) { + printer.print_preserved_newlines(raw_token); + } else { + printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true); + } + printer.print_token(raw_token); + return parser_token; +}; + +Beautifier.prototype._handle_tag_close = function(printer, raw_token, last_tag_token) { + var parser_token = { + text: raw_token.text, + type: raw_token.type + }; + printer.alignment_size = 0; + last_tag_token.tag_complete = true; + + printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true); + if (last_tag_token.is_unformatted) { + printer.add_raw_token(raw_token); + } else { + if (last_tag_token.tag_start_char === '<') { + printer.set_space_before_token(raw_token.text[0] === '/', true); // space before />, no space before > + if (this._is_wrap_attributes_force_expand_multiline && last_tag_token.has_wrapped_attrs) { + printer.print_newline(false); + } + } + printer.print_token(raw_token); + + } + + if (last_tag_token.indent_content && + !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) { + printer.indent(); + + // only indent once per opened tag + last_tag_token.indent_content = false; + } + + if (!last_tag_token.is_inline_element && + !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) { + printer.set_wrap_point(); + } + + return parser_token; +}; + +Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_token, last_token) { + var wrapped = last_tag_token.has_wrapped_attrs; + var parser_token = { + text: raw_token.text, + type: raw_token.type + }; + + printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true); + if (last_tag_token.is_unformatted) { + printer.add_raw_token(raw_token); + } else if (last_tag_token.tag_start_char === '{' && raw_token.type === TOKEN.TEXT) { + // For the insides of handlebars allow newlines or a single space between open and contents + if (printer.print_preserved_newlines(raw_token)) { + raw_token.newlines = 0; + printer.add_raw_token(raw_token); + } else { + printer.print_token(raw_token); + } + } else { + if (raw_token.type === TOKEN.ATTRIBUTE) { + printer.set_space_before_token(true); + } else if (raw_token.type === TOKEN.EQUALS) { //no space before = + printer.set_space_before_token(false); + } else if (raw_token.type === TOKEN.VALUE && raw_token.previous.type === TOKEN.EQUALS) { //no space before value + printer.set_space_before_token(false); + } + + if (raw_token.type === TOKEN.ATTRIBUTE && last_tag_token.tag_start_char === '<') { + if (this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) { + printer.traverse_whitespace(raw_token); + wrapped = wrapped || raw_token.newlines !== 0; + } + + // Wrap for 'force' options, and if the number of attributes is at least that specified in 'wrap_attributes_min_attrs': + // 1. always wrap the second and beyond attributes + // 2. wrap the first attribute only if 'force-expand-multiline' is specified + if (this._is_wrap_attributes_force && + last_tag_token.attr_count >= this._options.wrap_attributes_min_attrs && + (last_token.type !== TOKEN.TAG_OPEN || // ie. second attribute and beyond + this._is_wrap_attributes_force_expand_multiline)) { + printer.print_newline(false); + wrapped = true; + } + } + printer.print_token(raw_token); + wrapped = wrapped || printer.previous_token_wrapped(); + last_tag_token.has_wrapped_attrs = wrapped; + } + return parser_token; +}; + +Beautifier.prototype._handle_text = function(printer, raw_token, last_tag_token) { + var parser_token = { + text: raw_token.text, + type: 'TK_CONTENT' + }; + if (last_tag_token.custom_beautifier_name) { //check if we need to format javascript + this._print_custom_beatifier_text(printer, raw_token, last_tag_token); + } else if (last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) { + printer.add_raw_token(raw_token); + } else { + printer.traverse_whitespace(raw_token); + printer.print_token(raw_token); + } + return parser_token; +}; + +Beautifier.prototype._print_custom_beatifier_text = function(printer, raw_token, last_tag_token) { + var local = this; + if (raw_token.text !== '') { + + var text = raw_token.text, + _beautifier, + script_indent_level = 1, + pre = '', + post = ''; + if (last_tag_token.custom_beautifier_name === 'javascript' && typeof this._js_beautify === 'function') { + _beautifier = this._js_beautify; + } else if (last_tag_token.custom_beautifier_name === 'css' && typeof this._css_beautify === 'function') { + _beautifier = this._css_beautify; + } else if (last_tag_token.custom_beautifier_name === 'html') { + _beautifier = function(html_source, options) { + var beautifier = new Beautifier(html_source, options, local._js_beautify, local._css_beautify); + return beautifier.beautify(); + }; + } + + if (this._options.indent_scripts === "keep") { + script_indent_level = 0; + } else if (this._options.indent_scripts === "separate") { + script_indent_level = -printer.indent_level; + } + + var indentation = printer.get_full_indent(script_indent_level); + + // if there is at least one empty line at the end of this text, strip it + // we'll be adding one back after the text but before the containing tag. + text = text.replace(/\n[ \t]*$/, ''); + + // Handle the case where content is wrapped in a comment or cdata. + if (last_tag_token.custom_beautifier_name !== 'html' && + text[0] === '<' && text.match(/^(<!--|<!\[CDATA\[)/)) { + var matched = /^(<!--[^\n]*|<!\[CDATA\[)(\n?)([ \t\n]*)([\s\S]*)(-->|]]>)$/.exec(text); + + // if we start to wrap but don't finish, print raw + if (!matched) { + printer.add_raw_token(raw_token); + return; + } + + pre = indentation + matched[1] + '\n'; + text = matched[4]; + if (matched[5]) { + post = indentation + matched[5]; + } + + // if there is at least one empty line at the end of this text, strip it + // we'll be adding one back after the text but before the containing tag. + text = text.replace(/\n[ \t]*$/, ''); + + if (matched[2] || matched[3].indexOf('\n') !== -1) { + // if the first line of the non-comment text has spaces + // use that as the basis for indenting in null case. + matched = matched[3].match(/[ \t]+$/); + if (matched) { + raw_token.whitespace_before = matched[0]; + } + } + } + + if (text) { + if (_beautifier) { + + // call the Beautifier if avaliable + var Child_options = function() { + this.eol = '\n'; + }; + Child_options.prototype = this._options.raw_options; + var child_options = new Child_options(); + text = _beautifier(indentation + text, child_options); + } else { + // simply indent the string otherwise + var white = raw_token.whitespace_before; + if (white) { + text = text.replace(new RegExp('\n(' + white + ')?', 'g'), '\n'); + } + + text = indentation + text.replace(/\n/g, '\n' + indentation); + } + } + + if (pre) { + if (!text) { + text = pre + post; + } else { + text = pre + text + '\n' + post; + } + } + + printer.print_newline(false); + if (text) { + raw_token.text = text; + raw_token.whitespace_before = ''; + raw_token.newlines = 0; + printer.add_raw_token(raw_token); + printer.print_newline(true); + } + } +}; + +Beautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token, tokens) { + var parser_token = this._get_tag_open_token(raw_token); + + if ((last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) && + !last_tag_token.is_empty_element && + raw_token.type === TOKEN.TAG_OPEN && !parser_token.is_start_tag) { + // End element tags for unformatted or content_unformatted elements + // are printed raw to keep any newlines inside them exactly the same. + printer.add_raw_token(raw_token); + parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name); + } else { + printer.traverse_whitespace(raw_token); + this._set_tag_position(printer, raw_token, parser_token, last_tag_token, last_token); + if (!parser_token.is_inline_element) { + printer.set_wrap_point(); + } + printer.print_token(raw_token); + } + + // count the number of attributes + if (parser_token.is_start_tag && this._is_wrap_attributes_force) { + var peek_index = 0; + var peek_token; + do { + peek_token = tokens.peek(peek_index); + if (peek_token.type === TOKEN.ATTRIBUTE) { + parser_token.attr_count += 1; + } + peek_index += 1; + } while (peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE); + } + + //indent attributes an auto, forced, aligned or forced-align line-wrap + if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) { + parser_token.alignment_size = raw_token.text.length + 1; + } + + if (!parser_token.tag_complete && !parser_token.is_unformatted) { + printer.alignment_size = parser_token.alignment_size; + } + + return parser_token; +}; + +var TagOpenParserToken = function(parent, raw_token) { + this.parent = parent || null; + this.text = ''; + this.type = 'TK_TAG_OPEN'; + this.tag_name = ''; + this.is_inline_element = false; + this.is_unformatted = false; + this.is_content_unformatted = false; + this.is_empty_element = false; + this.is_start_tag = false; + this.is_end_tag = false; + this.indent_content = false; + this.multiline_content = false; + this.custom_beautifier_name = null; + this.start_tag_token = null; + this.attr_count = 0; + this.has_wrapped_attrs = false; + this.alignment_size = 0; + this.tag_complete = false; + this.tag_start_char = ''; + this.tag_check = ''; + + if (!raw_token) { + this.tag_complete = true; + } else { + var tag_check_match; + + this.tag_start_char = raw_token.text[0]; + this.text = raw_token.text; + + if (this.tag_start_char === '<') { + tag_check_match = raw_token.text.match(/^<([^\s>]*)/); + this.tag_check = tag_check_match ? tag_check_match[1] : ''; + } else { + tag_check_match = raw_token.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/); + this.tag_check = tag_check_match ? tag_check_match[1] : ''; + + // handle "{{#> myPartial}}" or "{{~#> myPartial}}" + if ((raw_token.text.startsWith('{{#>') || raw_token.text.startsWith('{{~#>')) && this.tag_check[0] === '>') { + if (this.tag_check === '>' && raw_token.next !== null) { + this.tag_check = raw_token.next.text.split(' ')[0]; + } else { + this.tag_check = raw_token.text.split('>')[1]; + } + } + } + + this.tag_check = this.tag_check.toLowerCase(); + + if (raw_token.type === TOKEN.COMMENT) { + this.tag_complete = true; + } + + this.is_start_tag = this.tag_check.charAt(0) !== '/'; + this.tag_name = !this.is_start_tag ? this.tag_check.substr(1) : this.tag_check; + this.is_end_tag = !this.is_start_tag || + (raw_token.closed && raw_token.closed.text === '/>'); + + // if whitespace handler ~ included (i.e. {{~#if true}}), handlebars tags start at pos 3 not pos 2 + var handlebar_starts = 2; + if (this.tag_start_char === '{' && this.text.length >= 3) { + if (this.text.charAt(2) === '~') { + handlebar_starts = 3; + } + } + + // handlebars tags that don't start with # or ^ are single_tags, and so also start and end. + this.is_end_tag = this.is_end_tag || + (this.tag_start_char === '{' && (this.text.length < 3 || (/[^#\^]/.test(this.text.charAt(handlebar_starts))))); + } +}; + +Beautifier.prototype._get_tag_open_token = function(raw_token) { //function to get a full tag and parse its type + var parser_token = new TagOpenParserToken(this._tag_stack.get_parser_token(), raw_token); + + parser_token.alignment_size = this._options.wrap_attributes_indent_size; + + parser_token.is_end_tag = parser_token.is_end_tag || + in_array(parser_token.tag_check, this._options.void_elements); + + parser_token.is_empty_element = parser_token.tag_complete || + (parser_token.is_start_tag && parser_token.is_end_tag); + + parser_token.is_unformatted = !parser_token.tag_complete && in_array(parser_token.tag_check, this._options.unformatted); + parser_token.is_content_unformatted = !parser_token.is_empty_element && in_array(parser_token.tag_check, this._options.content_unformatted); + parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || (this._options.inline_custom_elements && parser_token.tag_name.includes("-")) || parser_token.tag_start_char === '{'; + + return parser_token; +}; + +Beautifier.prototype._set_tag_position = function(printer, raw_token, parser_token, last_tag_token, last_token) { + + if (!parser_token.is_empty_element) { + if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending + parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name); //remove it and all ancestors + } else { // it's a start-tag + // check if this tag is starting an element that has optional end element + // and do an ending needed + if (this._do_optional_end_element(parser_token)) { + if (!parser_token.is_inline_element) { + printer.print_newline(false); + } + } + + this._tag_stack.record_tag(parser_token); //push it on the tag stack + + if ((parser_token.tag_name === 'script' || parser_token.tag_name === 'style') && + !(parser_token.is_unformatted || parser_token.is_content_unformatted)) { + parser_token.custom_beautifier_name = get_custom_beautifier_name(parser_token.tag_check, raw_token); + } + } + } + + if (in_array(parser_token.tag_check, this._options.extra_liners)) { //check if this double needs an extra line + printer.print_newline(false); + if (!printer._output.just_added_blankline()) { + printer.print_newline(true); + } + } + + if (parser_token.is_empty_element) { //if this tag name is a single tag type (either in the list or has a closing /) + + // if you hit an else case, reset the indent level if you are inside an: + // 'if', 'unless', or 'each' block. + if (parser_token.tag_start_char === '{' && parser_token.tag_check === 'else') { + this._tag_stack.indent_to_tag(['if', 'unless', 'each']); + parser_token.indent_content = true; + // Don't add a newline if opening {{#if}} tag is on the current line + var foundIfOnCurrentLine = printer.current_line_has_match(/{{#if/); + if (!foundIfOnCurrentLine) { + printer.print_newline(false); + } + } + + // Don't add a newline before elements that should remain where they are. + if (parser_token.tag_name === '!--' && last_token.type === TOKEN.TAG_CLOSE && + last_tag_token.is_end_tag && parser_token.text.indexOf('\n') === -1) ; else { + if (!(parser_token.is_inline_element || parser_token.is_unformatted)) { + printer.print_newline(false); + } + this._calcluate_parent_multiline(printer, parser_token); + } + } else if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending + var do_end_expand = false; + + // deciding whether a block is multiline should not be this hard + do_end_expand = parser_token.start_tag_token && parser_token.start_tag_token.multiline_content; + do_end_expand = do_end_expand || (!parser_token.is_inline_element && + !(last_tag_token.is_inline_element || last_tag_token.is_unformatted) && + !(last_token.type === TOKEN.TAG_CLOSE && parser_token.start_tag_token === last_tag_token) && + last_token.type !== 'TK_CONTENT' + ); + + if (parser_token.is_content_unformatted || parser_token.is_unformatted) { + do_end_expand = false; + } + + if (do_end_expand) { + printer.print_newline(false); + } + } else { // it's a start-tag + parser_token.indent_content = !parser_token.custom_beautifier_name; + + if (parser_token.tag_start_char === '<') { + if (parser_token.tag_name === 'html') { + parser_token.indent_content = this._options.indent_inner_html; + } else if (parser_token.tag_name === 'head') { + parser_token.indent_content = this._options.indent_head_inner_html; + } else if (parser_token.tag_name === 'body') { + parser_token.indent_content = this._options.indent_body_inner_html; + } + } + + if (!(parser_token.is_inline_element || parser_token.is_unformatted) && + (last_token.type !== 'TK_CONTENT' || parser_token.is_content_unformatted)) { + printer.print_newline(false); + } + + this._calcluate_parent_multiline(printer, parser_token); + } +}; + +Beautifier.prototype._calcluate_parent_multiline = function(printer, parser_token) { + if (parser_token.parent && printer._output.just_added_newline() && + !((parser_token.is_inline_element || parser_token.is_unformatted) && parser_token.parent.is_inline_element)) { + parser_token.parent.multiline_content = true; + } +}; + +//To be used for <p> tag special case: +var p_closers = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul']; +var p_parent_excludes = ['a', 'audio', 'del', 'ins', 'map', 'noscript', 'video']; + +Beautifier.prototype._do_optional_end_element = function(parser_token) { + var result = null; + // NOTE: cases of "if there is no more content in the parent element" + // are handled automatically by the beautifier. + // It assumes parent or ancestor close tag closes all children. + // https://www.w3.org/TR/html5/syntax.html#optional-tags + if (parser_token.is_empty_element || !parser_token.is_start_tag || !parser_token.parent) { + return; + + } + + if (parser_token.tag_name === 'body') { + // A head element’s end tag may be omitted if the head element is not immediately followed by a space character or a comment. + result = result || this._tag_stack.try_pop('head'); + + //} else if (parser_token.tag_name === 'body') { + // DONE: A body element’s end tag may be omitted if the body element is not immediately followed by a comment. + + } else if (parser_token.tag_name === 'li') { + // An li element’s end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element. + result = result || this._tag_stack.try_pop('li', ['ol', 'ul', 'menu']); + + } else if (parser_token.tag_name === 'dd' || parser_token.tag_name === 'dt') { + // A dd element’s end tag may be omitted if the dd element is immediately followed by another dd element or a dt element, or if there is no more content in the parent element. + // A dt element’s end tag may be omitted if the dt element is immediately followed by another dt element or a dd element. + result = result || this._tag_stack.try_pop('dt', ['dl']); + result = result || this._tag_stack.try_pop('dd', ['dl']); + + + } else if (parser_token.parent.tag_name === 'p' && p_closers.indexOf(parser_token.tag_name) !== -1) { + // IMPORTANT: this else-if works because p_closers has no overlap with any other element we look for in this method + // check for the parent element is an HTML element that is not an <a>, <audio>, <del>, <ins>, <map>, <noscript>, or <video> element, or an autonomous custom element. + // To do this right, this needs to be coded as an inclusion of the inverse of the exclusion above. + // But to start with (if we ignore "autonomous custom elements") the exclusion would be fine. + var p_parent = parser_token.parent.parent; + if (!p_parent || p_parent_excludes.indexOf(p_parent.tag_name) === -1) { + result = result || this._tag_stack.try_pop('p'); + } + } else if (parser_token.tag_name === 'rp' || parser_token.tag_name === 'rt') { + // An rt element’s end tag may be omitted if the rt element is immediately followed by an rt or rp element, or if there is no more content in the parent element. + // An rp element’s end tag may be omitted if the rp element is immediately followed by an rt or rp element, or if there is no more content in the parent element. + result = result || this._tag_stack.try_pop('rt', ['ruby', 'rtc']); + result = result || this._tag_stack.try_pop('rp', ['ruby', 'rtc']); + + } else if (parser_token.tag_name === 'optgroup') { + // An optgroup element’s end tag may be omitted if the optgroup element is immediately followed by another optgroup element, or if there is no more content in the parent element. + // An option element’s end tag may be omitted if the option element is immediately followed by another option element, or if it is immediately followed by an optgroup element, or if there is no more content in the parent element. + result = result || this._tag_stack.try_pop('optgroup', ['select']); + //result = result || this._tag_stack.try_pop('option', ['select']); + + } else if (parser_token.tag_name === 'option') { + // An option element’s end tag may be omitted if the option element is immediately followed by another option element, or if it is immediately followed by an optgroup element, or if there is no more content in the parent element. + result = result || this._tag_stack.try_pop('option', ['select', 'datalist', 'optgroup']); + + } else if (parser_token.tag_name === 'colgroup') { + // DONE: A colgroup element’s end tag may be omitted if the colgroup element is not immediately followed by a space character or a comment. + // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started. + result = result || this._tag_stack.try_pop('caption', ['table']); + + } else if (parser_token.tag_name === 'thead') { + // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started. + // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started. + result = result || this._tag_stack.try_pop('caption', ['table']); + result = result || this._tag_stack.try_pop('colgroup', ['table']); + + //} else if (parser_token.tag_name === 'caption') { + // DONE: A caption element’s end tag may be omitted if the caption element is not immediately followed by a space character or a comment. + + } else if (parser_token.tag_name === 'tbody' || parser_token.tag_name === 'tfoot') { + // A thead element’s end tag may be omitted if the thead element is immediately followed by a tbody or tfoot element. + // A tbody element’s end tag may be omitted if the tbody element is immediately followed by a tbody or tfoot element, or if there is no more content in the parent element. + // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started. + // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started. + result = result || this._tag_stack.try_pop('caption', ['table']); + result = result || this._tag_stack.try_pop('colgroup', ['table']); + result = result || this._tag_stack.try_pop('thead', ['table']); + result = result || this._tag_stack.try_pop('tbody', ['table']); + + //} else if (parser_token.tag_name === 'tfoot') { + // DONE: A tfoot element’s end tag may be omitted if there is no more content in the parent element. + + } else if (parser_token.tag_name === 'tr') { + // A tr element’s end tag may be omitted if the tr element is immediately followed by another tr element, or if there is no more content in the parent element. + // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started. + // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started. + result = result || this._tag_stack.try_pop('caption', ['table']); + result = result || this._tag_stack.try_pop('colgroup', ['table']); + result = result || this._tag_stack.try_pop('tr', ['table', 'thead', 'tbody', 'tfoot']); + + } else if (parser_token.tag_name === 'th' || parser_token.tag_name === 'td') { + // A td element’s end tag may be omitted if the td element is immediately followed by a td or th element, or if there is no more content in the parent element. + // A th element’s end tag may be omitted if the th element is immediately followed by a td or th element, or if there is no more content in the parent element. + result = result || this._tag_stack.try_pop('td', ['table', 'thead', 'tbody', 'tfoot', 'tr']); + result = result || this._tag_stack.try_pop('th', ['table', 'thead', 'tbody', 'tfoot', 'tr']); + } + + // Start element omission not handled currently + // A head element’s start tag may be omitted if the element is empty, or if the first thing inside the head element is an element. + // A tbody element’s start tag may be omitted if the first thing inside the tbody element is a tr element, and if the element is not immediately preceded by a tbody, thead, or tfoot element whose end tag has been omitted. (It can’t be omitted if the element is empty.) + // A colgroup element’s start tag may be omitted if the first thing inside the colgroup element is a col element, and if the element is not immediately preceded by another colgroup element whose end tag has been omitted. (It can’t be omitted if the element is empty.) + + // Fix up the parent of the parser token + parser_token.parent = this._tag_stack.get_parser_token(); + + return result; +}; + +module.exports.Beautifier = Beautifier; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var BaseOptions = (__webpack_require__(6).Options); + +function Options(options) { + BaseOptions.call(this, options, 'html'); + if (this.templating.length === 1 && this.templating[0] === 'auto') { + this.templating = ['django', 'erb', 'handlebars', 'php']; + } + + this.indent_inner_html = this._get_boolean('indent_inner_html'); + this.indent_body_inner_html = this._get_boolean('indent_body_inner_html', true); + this.indent_head_inner_html = this._get_boolean('indent_head_inner_html', true); + + this.indent_handlebars = this._get_boolean('indent_handlebars', true); + this.wrap_attributes = this._get_selection('wrap_attributes', + ['auto', 'force', 'force-aligned', 'force-expand-multiline', 'aligned-multiple', 'preserve', 'preserve-aligned']); + this.wrap_attributes_min_attrs = this._get_number('wrap_attributes_min_attrs', 2); + this.wrap_attributes_indent_size = this._get_number('wrap_attributes_indent_size', this.indent_size); + this.extra_liners = this._get_array('extra_liners', ['head', 'body', '/html']); + + // Block vs inline elements + // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements + // https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements + // https://www.w3.org/TR/html5/dom.html#phrasing-content + this.inline = this._get_array('inline', [ + 'a', 'abbr', 'area', 'audio', 'b', 'bdi', 'bdo', 'br', 'button', 'canvas', 'cite', + 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'i', 'iframe', 'img', + 'input', 'ins', 'kbd', 'keygen', 'label', 'map', 'mark', 'math', 'meter', 'noscript', + 'object', 'output', 'progress', 'q', 'ruby', 's', 'samp', /* 'script', */ 'select', 'small', + 'span', 'strong', 'sub', 'sup', 'svg', 'template', 'textarea', 'time', 'u', 'var', + 'video', 'wbr', 'text', + // obsolete inline tags + 'acronym', 'big', 'strike', 'tt' + ]); + this.inline_custom_elements = this._get_boolean('inline_custom_elements', true); + this.void_elements = this._get_array('void_elements', [ + // HTLM void elements - aka self-closing tags - aka singletons + // https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements + 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', + 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr', + // NOTE: Optional tags are too complex for a simple list + // they are hard coded in _do_optional_end_element + + // Doctype and xml elements + '!doctype', '?xml', + + // obsolete tags + // basefont: https://www.computerhope.com/jargon/h/html-basefont-tag.htm + // isndex: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/isindex + 'basefont', 'isindex' + ]); + this.unformatted = this._get_array('unformatted', []); + this.content_unformatted = this._get_array('content_unformatted', [ + 'pre', 'textarea' + ]); + this.unformatted_content_delimiter = this._get_characters('unformatted_content_delimiter'); + this.indent_scripts = this._get_selection('indent_scripts', ['normal', 'keep', 'separate']); + +} +Options.prototype = new BaseOptions(); + + + +module.exports.Options = Options; + + +/***/ }), +/* 21 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*jshint node:true */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + + + +var BaseTokenizer = (__webpack_require__(9).Tokenizer); +var BASETOKEN = (__webpack_require__(9).TOKEN); +var Directives = (__webpack_require__(13).Directives); +var TemplatablePattern = (__webpack_require__(14).TemplatablePattern); +var Pattern = (__webpack_require__(12).Pattern); + +var TOKEN = { + TAG_OPEN: 'TK_TAG_OPEN', + TAG_CLOSE: 'TK_TAG_CLOSE', + CONTROL_FLOW_OPEN: 'TK_CONTROL_FLOW_OPEN', + CONTROL_FLOW_CLOSE: 'TK_CONTROL_FLOW_CLOSE', + ATTRIBUTE: 'TK_ATTRIBUTE', + EQUALS: 'TK_EQUALS', + VALUE: 'TK_VALUE', + COMMENT: 'TK_COMMENT', + TEXT: 'TK_TEXT', + UNKNOWN: 'TK_UNKNOWN', + START: BASETOKEN.START, + RAW: BASETOKEN.RAW, + EOF: BASETOKEN.EOF +}; + +var directives_core = new Directives(/<\!--/, /-->/); + +var Tokenizer = function(input_string, options) { + BaseTokenizer.call(this, input_string, options); + this._current_tag_name = ''; + + // Words end at whitespace or when a tag starts + // if we are indenting handlebars, they are considered tags + var templatable_reader = new TemplatablePattern(this._input).read_options(this._options); + var pattern_reader = new Pattern(this._input); + + this.__patterns = { + word: templatable_reader.until(/[\n\r\t <]/), + word_control_flow_close_excluded: templatable_reader.until(/[\n\r\t <}]/), + single_quote: templatable_reader.until_after(/'/), + double_quote: templatable_reader.until_after(/"/), + attribute: templatable_reader.until(/[\n\r\t =>]|\/>/), + element_name: templatable_reader.until(/[\n\r\t >\/]/), + + angular_control_flow_start: pattern_reader.matching(/\@[a-zA-Z]+[^({]*[({]/), + handlebars_comment: pattern_reader.starting_with(/{{!--/).until_after(/--}}/), + handlebars: pattern_reader.starting_with(/{{/).until_after(/}}/), + handlebars_open: pattern_reader.until(/[\n\r\t }]/), + handlebars_raw_close: pattern_reader.until(/}}/), + comment: pattern_reader.starting_with(/<!--/).until_after(/-->/), + cdata: pattern_reader.starting_with(/<!\[CDATA\[/).until_after(/]]>/), + // https://en.wikipedia.org/wiki/Conditional_comment + conditional_comment: pattern_reader.starting_with(/<!\[/).until_after(/]>/), + processing: pattern_reader.starting_with(/<\?/).until_after(/\?>/) + }; + + if (this._options.indent_handlebars) { + this.__patterns.word = this.__patterns.word.exclude('handlebars'); + this.__patterns.word_control_flow_close_excluded = this.__patterns.word_control_flow_close_excluded.exclude('handlebars'); + } + + this._unformatted_content_delimiter = null; + + if (this._options.unformatted_content_delimiter) { + var literal_regexp = this._input.get_literal_regexp(this._options.unformatted_content_delimiter); + this.__patterns.unformatted_content_delimiter = + pattern_reader.matching(literal_regexp) + .until_after(literal_regexp); + } +}; +Tokenizer.prototype = new BaseTokenizer(); + +Tokenizer.prototype._is_comment = function(current_token) { // jshint unused:false + return false; //current_token.type === TOKEN.COMMENT || current_token.type === TOKEN.UNKNOWN; +}; + +Tokenizer.prototype._is_opening = function(current_token) { + return current_token.type === TOKEN.TAG_OPEN || current_token.type === TOKEN.CONTROL_FLOW_OPEN; +}; + +Tokenizer.prototype._is_closing = function(current_token, open_token) { + return (current_token.type === TOKEN.TAG_CLOSE && + (open_token && ( + ((current_token.text === '>' || current_token.text === '/>') && open_token.text[0] === '<') || + (current_token.text === '}}' && open_token.text[0] === '{' && open_token.text[1] === '{'))) + ) || (current_token.type === TOKEN.CONTROL_FLOW_CLOSE && + (current_token.text === '}' && open_token.text.endsWith('{'))); +}; + +Tokenizer.prototype._reset = function() { + this._current_tag_name = ''; +}; + +Tokenizer.prototype._get_next_token = function(previous_token, open_token) { // jshint unused:false + var token = null; + this._readWhitespace(); + var c = this._input.peek(); + + if (c === null) { + return this._create_token(TOKEN.EOF, ''); + } + + token = token || this._read_open_handlebars(c, open_token); + token = token || this._read_attribute(c, previous_token, open_token); + token = token || this._read_close(c, open_token); + token = token || this._read_control_flows(c, open_token); + token = token || this._read_raw_content(c, previous_token, open_token); + token = token || this._read_content_word(c, open_token); + token = token || this._read_comment_or_cdata(c); + token = token || this._read_processing(c); + token = token || this._read_open(c, open_token); + token = token || this._create_token(TOKEN.UNKNOWN, this._input.next()); + + return token; +}; + +Tokenizer.prototype._read_comment_or_cdata = function(c) { // jshint unused:false + var token = null; + var resulting_string = null; + var directives = null; + + if (c === '<') { + var peek1 = this._input.peek(1); + // We treat all comments as literals, even more than preformatted tags + // we only look for the appropriate closing marker + if (peek1 === '!') { + resulting_string = this.__patterns.comment.read(); + + // only process directive on html comments + if (resulting_string) { + directives = directives_core.get_directives(resulting_string); + if (directives && directives.ignore === 'start') { + resulting_string += directives_core.readIgnored(this._input); + } + } else { + resulting_string = this.__patterns.cdata.read(); + } + } + + if (resulting_string) { + token = this._create_token(TOKEN.COMMENT, resulting_string); + token.directives = directives; + } + } + + return token; +}; + +Tokenizer.prototype._read_processing = function(c) { // jshint unused:false + var token = null; + var resulting_string = null; + var directives = null; + + if (c === '<') { + var peek1 = this._input.peek(1); + if (peek1 === '!' || peek1 === '?') { + resulting_string = this.__patterns.conditional_comment.read(); + resulting_string = resulting_string || this.__patterns.processing.read(); + } + + if (resulting_string) { + token = this._create_token(TOKEN.COMMENT, resulting_string); + token.directives = directives; + } + } + + return token; +}; + +Tokenizer.prototype._read_open = function(c, open_token) { + var resulting_string = null; + var token = null; + if (!open_token || open_token.type === TOKEN.CONTROL_FLOW_OPEN) { + if (c === '<') { + + resulting_string = this._input.next(); + if (this._input.peek() === '/') { + resulting_string += this._input.next(); + } + resulting_string += this.__patterns.element_name.read(); + token = this._create_token(TOKEN.TAG_OPEN, resulting_string); + } + } + return token; +}; + +Tokenizer.prototype._read_open_handlebars = function(c, open_token) { + var resulting_string = null; + var token = null; + if (!open_token || open_token.type === TOKEN.CONTROL_FLOW_OPEN) { + if (this._options.indent_handlebars && c === '{' && this._input.peek(1) === '{') { + if (this._input.peek(2) === '!') { + resulting_string = this.__patterns.handlebars_comment.read(); + resulting_string = resulting_string || this.__patterns.handlebars.read(); + token = this._create_token(TOKEN.COMMENT, resulting_string); + } else { + resulting_string = this.__patterns.handlebars_open.read(); + token = this._create_token(TOKEN.TAG_OPEN, resulting_string); + } + } + } + return token; +}; + +Tokenizer.prototype._read_control_flows = function(c, open_token) { + var resulting_string = ''; + var token = null; + // Only check for control flows if angular templating is set AND indenting is set + if (!this._options.templating.includes('angular') || !this._options.indent_handlebars) { + return token; + } + + if (c === '@') { + resulting_string = this.__patterns.angular_control_flow_start.read(); + if (resulting_string === '') { + return token; + } + + var opening_parentheses_count = resulting_string.endsWith('(') ? 1 : 0; + var closing_parentheses_count = 0; + // The opening brace of the control flow is where the number of opening and closing parentheses equal + // e.g. @if({value: true} !== null) { + while (!(resulting_string.endsWith('{') && opening_parentheses_count === closing_parentheses_count)) { + var next_char = this._input.next(); + if (next_char === null) { + break; + } else if (next_char === '(') { + opening_parentheses_count++; + } else if (next_char === ')') { + closing_parentheses_count++; + } + resulting_string += next_char; + } + token = this._create_token(TOKEN.CONTROL_FLOW_OPEN, resulting_string); + } else if (c === '}' && open_token && open_token.type === TOKEN.CONTROL_FLOW_OPEN) { + resulting_string = this._input.next(); + token = this._create_token(TOKEN.CONTROL_FLOW_CLOSE, resulting_string); + } + return token; +}; + + +Tokenizer.prototype._read_close = function(c, open_token) { + var resulting_string = null; + var token = null; + if (open_token && open_token.type === TOKEN.TAG_OPEN) { + if (open_token.text[0] === '<' && (c === '>' || (c === '/' && this._input.peek(1) === '>'))) { + resulting_string = this._input.next(); + if (c === '/') { // for close tag "/>" + resulting_string += this._input.next(); + } + token = this._create_token(TOKEN.TAG_CLOSE, resulting_string); + } else if (open_token.text[0] === '{' && c === '}' && this._input.peek(1) === '}') { + this._input.next(); + this._input.next(); + token = this._create_token(TOKEN.TAG_CLOSE, '}}'); + } + } + + return token; +}; + +Tokenizer.prototype._read_attribute = function(c, previous_token, open_token) { + var token = null; + var resulting_string = ''; + if (open_token && open_token.text[0] === '<') { + + if (c === '=') { + token = this._create_token(TOKEN.EQUALS, this._input.next()); + } else if (c === '"' || c === "'") { + var content = this._input.next(); + if (c === '"') { + content += this.__patterns.double_quote.read(); + } else { + content += this.__patterns.single_quote.read(); + } + token = this._create_token(TOKEN.VALUE, content); + } else { + resulting_string = this.__patterns.attribute.read(); + + if (resulting_string) { + if (previous_token.type === TOKEN.EQUALS) { + token = this._create_token(TOKEN.VALUE, resulting_string); + } else { + token = this._create_token(TOKEN.ATTRIBUTE, resulting_string); + } + } + } + } + return token; +}; + +Tokenizer.prototype._is_content_unformatted = function(tag_name) { + // void_elements have no content and so cannot have unformatted content + // script and style tags should always be read as unformatted content + // finally content_unformatted and unformatted element contents are unformatted + return this._options.void_elements.indexOf(tag_name) === -1 && + (this._options.content_unformatted.indexOf(tag_name) !== -1 || + this._options.unformatted.indexOf(tag_name) !== -1); +}; + + +Tokenizer.prototype._read_raw_content = function(c, previous_token, open_token) { // jshint unused:false + var resulting_string = ''; + if (open_token && open_token.text[0] === '{') { + resulting_string = this.__patterns.handlebars_raw_close.read(); + } else if (previous_token.type === TOKEN.TAG_CLOSE && + previous_token.opened.text[0] === '<' && previous_token.text[0] !== '/') { + // ^^ empty tag has no content + var tag_name = previous_token.opened.text.substr(1).toLowerCase(); + if (tag_name === 'script' || tag_name === 'style') { + // Script and style tags are allowed to have comments wrapping their content + // or just have regular content. + var token = this._read_comment_or_cdata(c); + if (token) { + token.type = TOKEN.TEXT; + return token; + } + resulting_string = this._input.readUntil(new RegExp('</' + tag_name + '[\\n\\r\\t ]*?>', 'ig')); + } else if (this._is_content_unformatted(tag_name)) { + + resulting_string = this._input.readUntil(new RegExp('</' + tag_name + '[\\n\\r\\t ]*?>', 'ig')); + } + } + + if (resulting_string) { + return this._create_token(TOKEN.TEXT, resulting_string); + } + + return null; +}; + +Tokenizer.prototype._read_content_word = function(c, open_token) { + var resulting_string = ''; + if (this._options.unformatted_content_delimiter) { + if (c === this._options.unformatted_content_delimiter[0]) { + resulting_string = this.__patterns.unformatted_content_delimiter.read(); + } + } + + if (!resulting_string) { + resulting_string = (open_token && open_token.type === TOKEN.CONTROL_FLOW_OPEN) ? this.__patterns.word_control_flow_close_excluded.read() : this.__patterns.word.read(); + } + if (resulting_string) { + return this._create_token(TOKEN.TEXT, resulting_string); + } +}; + +module.exports.Tokenizer = Tokenizer; +module.exports.TOKEN = TOKEN; + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__(18); +/******/ legacy_beautify_html = __webpack_exports__; +/******/ +/******/ })() +; + +function html_beautify(html_source, options) { + return legacy_beautify_html(html_source, options, js_beautify, css_beautify); +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function format(document, range, options) { + let value = document.getText(); + let includesEnd = true; + let initialIndentLevel = 0; + const tabSize = options.tabSize || 4; + if (range) { + let startOffset = document.offsetAt(range.start); + // include all leading whitespace iff at the beginning of the line + let extendedStart = startOffset; + while (extendedStart > 0 && isWhitespace(value, extendedStart - 1)) { + extendedStart--; + } + if (extendedStart === 0 || isEOL$1(value, extendedStart - 1)) { + startOffset = extendedStart; + } + else { + // else keep at least one whitespace + if (extendedStart < startOffset) { + startOffset = extendedStart + 1; + } + } + // include all following whitespace until the end of the line + let endOffset = document.offsetAt(range.end); + let extendedEnd = endOffset; + while (extendedEnd < value.length && isWhitespace(value, extendedEnd)) { + extendedEnd++; + } + if (extendedEnd === value.length || isEOL$1(value, extendedEnd)) { + endOffset = extendedEnd; + } + range = Range$a.create(document.positionAt(startOffset), document.positionAt(endOffset)); + // Do not modify if substring starts in inside an element + // Ending inside an element is fine as it doesn't cause formatting errors + const firstHalf = value.substring(0, startOffset); + if (new RegExp(/.*[<][^>]*$/).test(firstHalf)) { + //return without modification + value = value.substring(startOffset, endOffset); + return [{ + range: range, + newText: value + }]; + } + includesEnd = endOffset === value.length; + value = value.substring(startOffset, endOffset); + if (startOffset !== 0) { + const startOfLineOffset = document.offsetAt(Position.create(range.start.line, 0)); + initialIndentLevel = computeIndentLevel(document.getText(), startOfLineOffset, options); + } + } + else { + range = Range$a.create(Position.create(0, 0), document.positionAt(value.length)); + } + const htmlOptions = { + indent_size: tabSize, + indent_char: options.insertSpaces ? ' ' : '\t', + indent_empty_lines: getFormatOption(options, 'indentEmptyLines', false), + wrap_line_length: getFormatOption(options, 'wrapLineLength', 120), + unformatted: getTagsFormatOption(options, 'unformatted', void 0), + content_unformatted: getTagsFormatOption(options, 'contentUnformatted', void 0), + indent_inner_html: getFormatOption(options, 'indentInnerHtml', false), + preserve_newlines: getFormatOption(options, 'preserveNewLines', true), + max_preserve_newlines: getFormatOption(options, 'maxPreserveNewLines', 32786), + indent_handlebars: getFormatOption(options, 'indentHandlebars', false), + end_with_newline: includesEnd && getFormatOption(options, 'endWithNewline', false), + extra_liners: getTagsFormatOption(options, 'extraLiners', void 0), + wrap_attributes: getFormatOption(options, 'wrapAttributes', 'auto'), + wrap_attributes_indent_size: getFormatOption(options, 'wrapAttributesIndentSize', void 0), + eol: '\n', + indent_scripts: getFormatOption(options, 'indentScripts', 'normal'), + templating: getTemplatingFormatOption(options, 'all'), + unformatted_content_delimiter: getFormatOption(options, 'unformattedContentDelimiter', ''), + }; + let result = html_beautify(trimLeft(value), htmlOptions); + if (initialIndentLevel > 0) { + const indent = options.insertSpaces ? repeat(' ', tabSize * initialIndentLevel) : repeat('\t', initialIndentLevel); + result = result.split('\n').join('\n' + indent); + if (range.start.character === 0) { + result = indent + result; // keep the indent + } + } + return [{ + range: range, + newText: result + }]; +} +function trimLeft(str) { + return str.replace(/^\s+/, ''); +} +function getFormatOption(options, key, dflt) { + if (options && options.hasOwnProperty(key)) { + const value = options[key]; + if (value !== null) { + return value; + } + } + return dflt; +} +function getTagsFormatOption(options, key, dflt) { + const list = getFormatOption(options, key, null); + if (typeof list === 'string') { + if (list.length > 0) { + return list.split(',').map(t => t.trim().toLowerCase()); + } + return []; + } + return dflt; +} +function getTemplatingFormatOption(options, dflt) { + const value = getFormatOption(options, 'templating', dflt); + if (value === true) { + return ['auto']; + } + if (value === false || value === dflt || Array.isArray(value) === false) { + return ['none']; + } + return value; +} +function computeIndentLevel(content, offset, options) { + let i = offset; + let nChars = 0; + const tabSize = options.tabSize || 4; + while (i < content.length) { + const ch = content.charAt(i); + if (ch === ' ') { + nChars++; + } + else if (ch === '\t') { + nChars += tabSize; + } + else { + break; + } + i++; + } + return Math.floor(nChars / tabSize); +} +function isEOL$1(text, offset) { + return '\r\n'.indexOf(text.charAt(offset)) !== -1; +} +function isWhitespace(text, offset) { + return ' \t'.indexOf(text.charAt(offset)) !== -1; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function normalizeRef(url) { + const first = url[0]; + const last = url[url.length - 1]; + if (first === last && (first === '\'' || first === '\"')) { + url = url.substring(1, url.length - 1); + } + return url; +} +function validateRef(url, languageId) { + if (!url.length) { + return false; + } + if (languageId === 'handlebars' && /{{|}}/.test(url)) { + return false; + } + return /\b(w[\w\d+.-]*:\/\/)?[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))/.test(url); +} +function getWorkspaceUrl(documentUri, tokenContent, documentContext, base) { + if (/^\s*javascript\:/i.test(tokenContent) || /[\n\r]/.test(tokenContent)) { + return undefined; + } + tokenContent = tokenContent.replace(/^\s*/g, ''); + const match = tokenContent.match(/^(\w[\w\d+.-]*):/); + if (match) { + // Absolute link that needs no treatment + const schema = match[1].toLowerCase(); + if (schema === 'http' || schema === 'https' || schema === 'file') { + return tokenContent; + } + return undefined; + } + if (/^\#/i.test(tokenContent)) { + return documentUri + tokenContent; + } + if (/^\/\//i.test(tokenContent)) { + // Absolute link (that does not name the protocol) + const pickedScheme = startsWith(documentUri, 'https://') ? 'https' : 'http'; + return pickedScheme + ':' + tokenContent.replace(/^\s*/g, ''); + } + if (documentContext) { + return documentContext.resolveReference(tokenContent, base || documentUri); + } + return tokenContent; +} +function createLink(document, documentContext, attributeValue, startOffset, endOffset, base) { + const tokenContent = normalizeRef(attributeValue); + if (!validateRef(tokenContent, document.languageId)) { + return undefined; + } + if (tokenContent.length < attributeValue.length) { + startOffset++; + endOffset--; + } + const workspaceUrl = getWorkspaceUrl(document.uri, tokenContent, documentContext, base); + if (!workspaceUrl) { + return undefined; + } + const target = validateAndCleanURI(workspaceUrl, document); + return { + range: Range$a.create(document.positionAt(startOffset), document.positionAt(endOffset)), + target + }; +} +const _hash = '#'.charCodeAt(0); +function validateAndCleanURI(uriStr, document) { + try { + let uri = URI$1.parse(uriStr); + if (uri.scheme === 'file' && uri.query) { + // see https://github.com/microsoft/vscode/issues/194577 & https://github.com/microsoft/vscode/issues/206238 + uri = uri.with({ query: null }); + uriStr = uri.toString(/* skipEncodig*/ true); + } + if (uri.scheme === 'file' && uri.fragment && !(uriStr.startsWith(document.uri) && uriStr.charCodeAt(document.uri.length) === _hash)) { + return uri.with({ fragment: null }).toString(/* skipEncodig*/ true); + } + return uriStr; + } + catch (e) { + return undefined; + } +} +class HTMLDocumentLinks { + constructor(dataManager) { + this.dataManager = dataManager; + } + findDocumentLinks(document, documentContext) { + const newLinks = []; + const scanner = createScanner(document.getText(), 0); + let token = scanner.scan(); + let lastAttributeName = undefined; + let lastTagName = undefined; + let afterBase = false; + let base = void 0; + const idLocations = {}; + while (token !== TokenType.EOS) { + switch (token) { + case TokenType.StartTag: + lastTagName = scanner.getTokenText().toLowerCase(); + if (!base) { + afterBase = lastTagName === 'base'; + } + break; + case TokenType.AttributeName: + lastAttributeName = scanner.getTokenText().toLowerCase(); + break; + case TokenType.AttributeValue: + if (lastTagName && lastAttributeName && this.dataManager.isPathAttribute(lastTagName, lastAttributeName)) { + const attributeValue = scanner.getTokenText(); + if (!afterBase) { // don't highlight the base link itself + const link = createLink(document, documentContext, attributeValue, scanner.getTokenOffset(), scanner.getTokenEnd(), base); + if (link) { + newLinks.push(link); + } + } + if (afterBase && typeof base === 'undefined') { + base = normalizeRef(attributeValue); + if (base && documentContext) { + base = documentContext.resolveReference(base, document.uri); + } + } + afterBase = false; + lastAttributeName = undefined; + } + else if (lastAttributeName === 'id') { + const id = normalizeRef(scanner.getTokenText()); + idLocations[id] = scanner.getTokenOffset(); + } + break; + } + token = scanner.scan(); + } + // change local links with ids to actual positions + for (const link of newLinks) { + const localWithHash = document.uri + '#'; + if (link.target && startsWith(link.target, localWithHash)) { + const target = link.target.substring(localWithHash.length); + const offset = idLocations[target]; + if (offset !== undefined) { + const pos = document.positionAt(offset); + link.target = `${localWithHash}${pos.line + 1},${pos.character + 1}`; + } + else { + link.target = document.uri; + } + } + } + return newLinks; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function findDocumentHighlights(document, position, htmlDocument) { + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeAt(offset); + if (!node.tag) { + return []; + } + const result = []; + const startTagRange = getTagNameRange(TokenType.StartTag, document, node.start); + const endTagRange = typeof node.endTagStart === 'number' && getTagNameRange(TokenType.EndTag, document, node.endTagStart); + if (startTagRange && covers(startTagRange, position) || endTagRange && covers(endTagRange, position)) { + if (startTagRange) { + result.push({ kind: DocumentHighlightKind.Read, range: startTagRange }); + } + if (endTagRange) { + result.push({ kind: DocumentHighlightKind.Read, range: endTagRange }); + } + } + return result; +} +function isBeforeOrEqual(pos1, pos2) { + return pos1.line < pos2.line || (pos1.line === pos2.line && pos1.character <= pos2.character); +} +function covers(range, position) { + return isBeforeOrEqual(range.start, position) && isBeforeOrEqual(position, range.end); +} +function getTagNameRange(tokenType, document, startOffset) { + const scanner = createScanner(document.getText(), startOffset); + let token = scanner.scan(); + while (token !== TokenType.EOS && token !== tokenType) { + token = scanner.scan(); + } + if (token !== TokenType.EOS) { + return { start: document.positionAt(scanner.getTokenOffset()), end: document.positionAt(scanner.getTokenEnd()) }; + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function findDocumentSymbols(document, htmlDocument) { + const symbols = []; + const symbols2 = findDocumentSymbols2(document, htmlDocument); + for (const symbol of symbols2) { + walk(symbol, undefined); + } + return symbols; + function walk(node, parent) { + const symbol = SymbolInformation.create(node.name, node.kind, node.range, document.uri, parent?.name); + symbol.containerName ?? (symbol.containerName = ''); + symbols.push(symbol); + if (node.children) { + for (const child of node.children) { + walk(child, node); + } + } + } +} +function findDocumentSymbols2(document, htmlDocument) { + const symbols = []; + htmlDocument.roots.forEach(node => { + provideFileSymbolsInternal(document, node, symbols); + }); + return symbols; +} +function provideFileSymbolsInternal(document, node, symbols) { + const name = nodeToName(node); + const range = Range$a.create(document.positionAt(node.start), document.positionAt(node.end)); + const symbol = DocumentSymbol.create(name, undefined, SymbolKind$1.Field, range, range); + symbols.push(symbol); + node.children.forEach(child => { + symbol.children ?? (symbol.children = []); + provideFileSymbolsInternal(document, child, symbol.children); + }); +} +function nodeToName(node) { + let name = node.tag; + if (node.attributes) { + const id = node.attributes['id']; + const classes = node.attributes['class']; + if (id) { + name += `#${id.replace(/[\"\']/g, '')}`; + } + if (classes) { + name += classes.replace(/[\"\']/g, '').split(/\s+/).map(className => `.${className}`).join(''); + } + } + return name || '?'; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function doRename(document, position, newName, htmlDocument) { + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeAt(offset); + if (!node.tag) { + return null; + } + if (!isWithinTagRange(node, offset, node.tag)) { + return null; + } + const edits = []; + const startTagRange = { + start: document.positionAt(node.start + '<'.length), + end: document.positionAt(node.start + '<'.length + node.tag.length) + }; + edits.push({ + range: startTagRange, + newText: newName + }); + if (node.endTagStart) { + const endTagRange = { + start: document.positionAt(node.endTagStart + '</'.length), + end: document.positionAt(node.endTagStart + '</'.length + node.tag.length) + }; + edits.push({ + range: endTagRange, + newText: newName + }); + } + const changes = { + [document.uri.toString()]: edits + }; + return { + changes + }; +} +function isWithinTagRange(node, offset, nodeTag) { + // Self-closing tag + if (node.endTagStart) { + if (node.endTagStart + '</'.length <= offset && offset <= node.endTagStart + '</'.length + nodeTag.length) { + return true; + } + } + return node.start + '<'.length <= offset && offset <= node.start + '<'.length + nodeTag.length; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function findMatchingTagPosition(document, position, htmlDocument) { + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeAt(offset); + if (!node.tag) { + return null; + } + if (!node.endTagStart) { + return null; + } + // Within open tag, compute close tag + if (node.start + '<'.length <= offset && offset <= node.start + '<'.length + node.tag.length) { + const mirrorOffset = (offset - '<'.length - node.start) + node.endTagStart + '</'.length; + return document.positionAt(mirrorOffset); + } + // Within closing tag, compute open tag + if (node.endTagStart + '</'.length <= offset && offset <= node.endTagStart + '</'.length + node.tag.length) { + const mirrorOffset = (offset - '</'.length - node.endTagStart) + node.start + '<'.length; + return document.positionAt(mirrorOffset); + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function findLinkedEditingRanges(document, position, htmlDocument) { + const offset = document.offsetAt(position); + const node = htmlDocument.findNodeAt(offset); + const tagLength = node.tag ? node.tag.length : 0; + if (!node.endTagStart) { + return null; + } + if ( + // Within open tag, compute close tag + (node.start + '<'.length <= offset && offset <= node.start + '<'.length + tagLength) || + // Within closing tag, compute open tag + node.endTagStart + '</'.length <= offset && offset <= node.endTagStart + '</'.length + tagLength) { + return [ + Range$a.create(document.positionAt(node.start + '<'.length), document.positionAt(node.start + '<'.length + tagLength)), + Range$a.create(document.positionAt(node.endTagStart + '</'.length), document.positionAt(node.endTagStart + '</'.length + tagLength)) + ]; + } + return null; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLFolding { + constructor(dataManager) { + this.dataManager = dataManager; + } + limitRanges(ranges, rangeLimit) { + ranges = ranges.sort((r1, r2) => { + let diff = r1.startLine - r2.startLine; + if (diff === 0) { + diff = r1.endLine - r2.endLine; + } + return diff; + }); + // compute each range's nesting level in 'nestingLevels'. + // count the number of ranges for each level in 'nestingLevelCounts' + let top = void 0; + const previous = []; + const nestingLevels = []; + const nestingLevelCounts = []; + const setNestingLevel = (index, level) => { + nestingLevels[index] = level; + if (level < 30) { + nestingLevelCounts[level] = (nestingLevelCounts[level] || 0) + 1; + } + }; + // compute nesting levels and sanitize + for (let i = 0; i < ranges.length; i++) { + const entry = ranges[i]; + if (!top) { + top = entry; + setNestingLevel(i, 0); + } + else { + if (entry.startLine > top.startLine) { + if (entry.endLine <= top.endLine) { + previous.push(top); + top = entry; + setNestingLevel(i, previous.length); + } + else if (entry.startLine > top.endLine) { + do { + top = previous.pop(); + } while (top && entry.startLine > top.endLine); + if (top) { + previous.push(top); + } + top = entry; + setNestingLevel(i, previous.length); + } + } + } + } + let entries = 0; + let maxLevel = 0; + for (let i = 0; i < nestingLevelCounts.length; i++) { + const n = nestingLevelCounts[i]; + if (n) { + if (n + entries > rangeLimit) { + maxLevel = i; + break; + } + entries += n; + } + } + const result = []; + for (let i = 0; i < ranges.length; i++) { + const level = nestingLevels[i]; + if (typeof level === 'number') { + if (level < maxLevel || (level === maxLevel && entries++ < rangeLimit)) { + result.push(ranges[i]); + } + } + } + return result; + } + getFoldingRanges(document, context) { + const scanner = createScanner(document.getText()); + let token = scanner.scan(); + const ranges = []; + const stack = []; + let lastTagName = null; + let prevStart = -1; + let voidElements; + function addRange(range) { + ranges.push(range); + prevStart = range.startLine; + } + while (token !== TokenType.EOS) { + switch (token) { + case TokenType.StartTag: { + const tagName = scanner.getTokenText(); + const startLine = document.positionAt(scanner.getTokenOffset()).line; + stack.push({ startLine, tagName }); + lastTagName = tagName; + break; + } + case TokenType.EndTag: { + lastTagName = scanner.getTokenText(); + break; + } + case TokenType.StartTagClose: + if (!lastTagName) { + break; + } + voidElements ?? (voidElements = this.dataManager.getVoidElements(document.languageId)); + if (!this.dataManager.isVoidElement(lastTagName, voidElements)) { + break; + } + // fallthrough + case TokenType.EndTagClose: + case TokenType.StartTagSelfClose: { + let i = stack.length - 1; + while (i >= 0 && stack[i].tagName !== lastTagName) { + i--; + } + if (i >= 0) { + const stackElement = stack[i]; + stack.length = i; + const line = document.positionAt(scanner.getTokenOffset()).line; + const startLine = stackElement.startLine; + const endLine = line - 1; + if (endLine > startLine && prevStart !== startLine) { + addRange({ startLine, endLine }); + } + } + break; + } + case TokenType.Comment: { + let startLine = document.positionAt(scanner.getTokenOffset()).line; + const text = scanner.getTokenText(); + const m = text.match(/^\s*#(region\b)|(endregion\b)/); + if (m) { + if (m[1]) { // start pattern match + stack.push({ startLine, tagName: '' }); // empty tagName marks region + } + else { + let i = stack.length - 1; + while (i >= 0 && stack[i].tagName.length) { + i--; + } + if (i >= 0) { + const stackElement = stack[i]; + stack.length = i; + const endLine = startLine; + startLine = stackElement.startLine; + if (endLine > startLine && prevStart !== startLine) { + addRange({ startLine, endLine, kind: FoldingRangeKind.Region }); + } + } + } + } + else { + const endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line; + if (startLine < endLine) { + addRange({ startLine, endLine, kind: FoldingRangeKind.Comment }); + } + } + break; + } + } + token = scanner.scan(); + } + const rangeLimit = context && context.rangeLimit || Number.MAX_VALUE; + if (ranges.length > rangeLimit) { + return this.limitRanges(ranges, rangeLimit); + } + return ranges; + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLSelectionRange { + constructor(htmlParser) { + this.htmlParser = htmlParser; + } + getSelectionRanges(document, positions) { + const htmlDocument = this.htmlParser.parseDocument(document); + return positions.map(p => this.getSelectionRange(p, document, htmlDocument)); + } + getSelectionRange(position, document, htmlDocument) { + const applicableRanges = this.getApplicableRanges(document, position, htmlDocument); + let prev = undefined; + let current = undefined; + for (let index = applicableRanges.length - 1; index >= 0; index--) { + const range = applicableRanges[index]; + if (!prev || range[0] !== prev[0] || range[1] !== prev[1]) { + current = SelectionRange.create(Range$a.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current); + } + prev = range; + } + if (!current) { + current = SelectionRange.create(Range$a.create(position, position)); + } + return current; + } + getApplicableRanges(document, position, htmlDoc) { + const currOffset = document.offsetAt(position); + const currNode = htmlDoc.findNodeAt(currOffset); + let result = this.getAllParentTagRanges(currNode); + // Self-closing or void elements + if (currNode.startTagEnd && !currNode.endTagStart) { + // THe rare case of unmatching tag pairs like <div></div1> + if (currNode.startTagEnd !== currNode.end) { + return [[currNode.start, currNode.end]]; + } + const closeRange = Range$a.create(document.positionAt(currNode.startTagEnd - 2), document.positionAt(currNode.startTagEnd)); + const closeText = document.getText(closeRange); + // Self-closing element + if (closeText === '/>') { + result.unshift([currNode.start + 1, currNode.startTagEnd - 2]); + } + // Void element + else { + result.unshift([currNode.start + 1, currNode.startTagEnd - 1]); + } + const attributeLevelRanges = this.getAttributeLevelRanges(document, currNode, currOffset); + result = attributeLevelRanges.concat(result); + return result; + } + if (!currNode.startTagEnd || !currNode.endTagStart) { + return result; + } + /** + * For html like + * `<div class="foo">bar</div>` + */ + result.unshift([currNode.start, currNode.end]); + /** + * Cursor inside `<div class="foo">` + */ + if (currNode.start < currOffset && currOffset < currNode.startTagEnd) { + result.unshift([currNode.start + 1, currNode.startTagEnd - 1]); + const attributeLevelRanges = this.getAttributeLevelRanges(document, currNode, currOffset); + result = attributeLevelRanges.concat(result); + return result; + } + /** + * Cursor inside `bar` + */ + else if (currNode.startTagEnd <= currOffset && currOffset <= currNode.endTagStart) { + result.unshift([currNode.startTagEnd, currNode.endTagStart]); + return result; + } + /** + * Cursor inside `</div>` + */ + else { + // `div` inside `</div>` + if (currOffset >= currNode.endTagStart + 2) { + result.unshift([currNode.endTagStart + 2, currNode.end - 1]); + } + return result; + } + } + getAllParentTagRanges(initialNode) { + let currNode = initialNode; + const result = []; + while (currNode.parent) { + currNode = currNode.parent; + this.getNodeRanges(currNode).forEach(r => result.push(r)); + } + return result; + } + getNodeRanges(n) { + if (n.startTagEnd && n.endTagStart && n.startTagEnd < n.endTagStart) { + return [ + [n.startTagEnd, n.endTagStart], + [n.start, n.end] + ]; + } + return [ + [n.start, n.end] + ]; + } + ; + getAttributeLevelRanges(document, currNode, currOffset) { + const currNodeRange = Range$a.create(document.positionAt(currNode.start), document.positionAt(currNode.end)); + const currNodeText = document.getText(currNodeRange); + const relativeOffset = currOffset - currNode.start; + /** + * Tag level semantic selection + */ + const scanner = createScanner(currNodeText); + let token = scanner.scan(); + /** + * For text like + * <div class="foo">bar</div> + */ + const positionOffset = currNode.start; + const result = []; + let isInsideAttribute = false; + let attrStart = -1; + while (token !== TokenType.EOS) { + switch (token) { + case TokenType.AttributeName: { + if (relativeOffset < scanner.getTokenOffset()) { + isInsideAttribute = false; + break; + } + if (relativeOffset <= scanner.getTokenEnd()) { + // `class` + result.unshift([scanner.getTokenOffset(), scanner.getTokenEnd()]); + } + isInsideAttribute = true; + attrStart = scanner.getTokenOffset(); + break; + } + case TokenType.AttributeValue: { + if (!isInsideAttribute) { + break; + } + const valueText = scanner.getTokenText(); + if (relativeOffset < scanner.getTokenOffset()) { + // `class="foo"` + result.push([attrStart, scanner.getTokenEnd()]); + break; + } + if (relativeOffset >= scanner.getTokenOffset() && relativeOffset <= scanner.getTokenEnd()) { + // `"foo"` + result.unshift([scanner.getTokenOffset(), scanner.getTokenEnd()]); + // `foo` + if ((valueText[0] === `"` && valueText[valueText.length - 1] === `"`) || (valueText[0] === `'` && valueText[valueText.length - 1] === `'`)) { + if (relativeOffset >= scanner.getTokenOffset() + 1 && relativeOffset <= scanner.getTokenEnd() - 1) { + result.unshift([scanner.getTokenOffset() + 1, scanner.getTokenEnd() - 1]); + } + } + // `class="foo"` + result.push([attrStart, scanner.getTokenEnd()]); + } + break; + } + } + token = scanner.scan(); + } + return result.map(pair => { + return [pair[0] + positionOffset, pair[1] + positionOffset]; + }); + } +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// file generated from @vscode/web-custom-data NPM package +const htmlData = { + "version": 1.1, + "tags": [ + { + "name": "html", + "description": { + "kind": "markdown", + "value": "The html element represents the root of an HTML document." + }, + "attributes": [ + { + "name": "manifest", + "description": { + "kind": "markdown", + "value": "Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details." + } + }, + { + "name": "version", + "description": "Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration." + }, + { + "name": "xmlns", + "description": "Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/html" + } + ] + }, + { + "name": "head", + "description": { + "kind": "markdown", + "value": "The head element represents a collection of metadata for the Document." + }, + "attributes": [ + { + "name": "profile", + "description": "The URIs of one or more metadata profiles, separated by white space." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/head" + } + ] + }, + { + "name": "title", + "description": { + "kind": "markdown", + "value": "The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/title" + } + ] + }, + { + "name": "base", + "description": { + "kind": "markdown", + "value": "The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information." + }, + "void": true, + "attributes": [ + { + "name": "href", + "description": { + "kind": "markdown", + "value": "The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed." + } + }, + { + "name": "target", + "valueSet": "target", + "description": { + "kind": "markdown", + "value": "A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\n\n* `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the result into a new unnamed browsing context.\n* `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/base" + } + ] + }, + { + "name": "link", + "description": { + "kind": "markdown", + "value": "The link element allows authors to link their document to other resources." + }, + "void": true, + "attributes": [ + { + "name": "href", + "description": { + "kind": "markdown", + "value": "This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative." + } + }, + { + "name": "crossorigin", + "valueSet": "xo", + "description": { + "kind": "markdown", + "value": "This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\n\n`anonymous`\n\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn't include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn't disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\n\n`use-credentials`\n\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request's credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\n\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information." + } + }, + { + "name": "rel", + "description": { + "kind": "markdown", + "value": "This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)." + } + }, + { + "name": "media", + "description": { + "kind": "markdown", + "value": "This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\n\n**Notes:**\n\n* In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\n* Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4." + } + }, + { + "name": "hreflang", + "description": { + "kind": "markdown", + "value": "This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports." + } + }, + { + "name": "sizes", + "description": { + "kind": "markdown", + "value": "This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\n\n* `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\n* a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\n\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it." + } + }, + { + "name": "as", + "description": "This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.\") request header." + }, + { + "name": "importance", + "description": "Indicates the relative importance of the resource. Priority hints are delegated using the values:" + }, + { + "name": "importance", + "description": "**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\n\n**`high`**: Indicates to the browser that the resource is of **high** priority.\n\n**`low`**: Indicates to the browser that the resource is of **low** priority.\n\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present." + }, + { + "name": "integrity", + "description": "Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)." + }, + { + "name": "referrerpolicy", + "description": "A string indicating which referrer to use when fetching the resource:\n\n* `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n* `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\n* `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\n* `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer's path.\n* `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins." + }, + { + "name": "title", + "description": "The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets)." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/link" + } + ] + }, + { + "name": "meta", + "description": { + "kind": "markdown", + "value": "The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements." + }, + "void": true, + "attributes": [ + { + "name": "name", + "description": { + "kind": "markdown", + "value": "This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\n\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\n\n* `application-name` which defines the name of the application running in the web page.\n \n **Note:**\n \n * Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document's title that is shown in a browser's title bar or a page's tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\n * Simple web pages shouldn't define an application-name.\n \n* `author` which defines the name of the document's author.\n* `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\n* `generator` which contains the identifier of the software that generated the page.\n* `keywords` which contains words relevant to the page's content separated by commas.\n* `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\n \n Values for the `content` attribute of `<meta name=\"referrer\">`\n \n `no-referrer`\n \n Do not send a HTTP `Referrer` header.\n \n `origin`\n \n Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\n \n `no-referrer-when-downgrade`\n \n Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\n \n `origin-when-cross-origin`\n \n Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\n \n `same-origin`\n \n A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\n \n `strict-origin`\n \n Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don't send it to a less secure destination (HTTPS->HTTP).\n \n `strict-origin-when-cross-origin`\n \n Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\n \n `unsafe-URL`\n \n Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\n \n **Notes:**\n \n * Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\n * Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\n * When several conflicting policies are defined, the no-referrer policy is applied.\n \n\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\n\n* `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\n* `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\n* `publisher` which defines the name of the document's publisher.\n* `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\n \n Values for the content of `<meta name=\"robots\">`\n \n Value\n \n Description\n \n Used by\n \n `index`\n \n Allows the robot to index the page (default).\n \n All\n \n `noindex`\n \n Requests the robot to not index the page.\n \n All\n \n `follow`\n \n Allows the robot to follow the links on the page (default).\n \n All\n \n `nofollow`\n \n Requests the robot to not follow the links on the page.\n \n All\n \n `none`\n \n Equivalent to `noindex, nofollow`\n \n [Google](https://support.google.com/webmasters/answer/79812)\n \n `noodp`\n \n Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\n \n [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `noarchive`\n \n Requests the search engine not to cache the page content.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `nosnippet`\n \n Prevents displaying any description of the page in search engine results.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `noimageindex`\n \n Requests this page not to appear as the referring page of an indexed image.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\n \n `nocache`\n \n Synonym of `noarchive`.\n \n [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n **Notes:**\n \n * Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\n * The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.\")_ file.\n * If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\n * Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot's behaviour is undefined and may vary between them.\n * Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\n \n* `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\n* `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you're viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\n \n Values for the content of `<meta name=\"viewport\">`\n \n Value\n \n Possible subvalues\n \n Description\n \n `width`\n \n A positive integer number, or the text `device-width`\n \n Defines the pixel width of the viewport that you want the web site to be rendered at.\n \n `height`\n \n A positive integer, or the text `device-height`\n \n Defines the height of the viewport. Not used by any browser.\n \n `initial-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\n \n `maximum-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n \n `minimum-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n \n `user-scalable`\n \n `yes` or `no`\n \n If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\n \n Specification\n \n Status\n \n Comment\n \n [CSS Device Adaptation \n The definition of '<meta name=\"viewport\">' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\n \n Working Draft\n \n Non-normatively describes the Viewport META element\n \n See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It's primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\n \n **Notes:**\n \n * Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\n * The default values may vary between devices and browsers.\n * To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\")." + } + }, + { + "name": "http-equiv", + "description": { + "kind": "markdown", + "value": "Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\n\n* `\"content-language\"` \n Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\n \n **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\n \n* `\"content-security-policy\"` \n Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\n* `\"content-type\"` \n Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string '`text/html`' followed by a character set with the following syntax: '`; charset=_IANAcharset_`', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\n \n **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\n \n **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can't change documents' types in XHTML or HTML5's XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\n \n* `\"refresh\"` \n This instruction specifies:\n * The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\n * The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string '`;url=`', and a valid URL.\n* `\"set-cookie\"` \n Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\n \n **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead." + } + }, + { + "name": "content", + "description": { + "kind": "markdown", + "value": "This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used." + } + }, + { + "name": "charset", + "description": { + "kind": "markdown", + "value": "This attribute declares the page's character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn't request a specific encoding, it suggests:\n\n* Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\n* Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\n\n**Note:** ASCII-incompatible encodings are those that don't map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\n\n* Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\n* Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\n\n**Notes:**\n\n* The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\n* The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\n* This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page's character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\n* It is strongly recommended to define the character encoding. If a page's encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\n* The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended." + } + }, + { + "name": "scheme", + "description": "This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\n\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/meta" + } + ] + }, + { + "name": "style", + "description": { + "kind": "markdown", + "value": "The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user." + }, + "attributes": [ + { + "name": "media", + "description": { + "kind": "markdown", + "value": "This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing." + } + }, + { + "name": "nonce", + "description": { + "kind": "markdown", + "value": "A cryptographic nonce (number used once) used to allow inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents." + } + }, + { + "name": "scoped", + "valueSet": "v" + }, + { + "name": "title", + "description": "This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/style" + } + ] + }, + { + "name": "body", + "description": { + "kind": "markdown", + "value": "The body element represents the content of the document." + }, + "attributes": [ + { + "name": "onafterprint", + "description": { + "kind": "markdown", + "value": "Function to call after the user has printed the document." + } + }, + { + "name": "onbeforeprint", + "description": { + "kind": "markdown", + "value": "Function to call when the user requests printing of the document." + } + }, + { + "name": "onbeforeunload", + "description": { + "kind": "markdown", + "value": "Function to call when the document is about to be unloaded." + } + }, + { + "name": "onhashchange", + "description": { + "kind": "markdown", + "value": "Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed." + } + }, + { + "name": "onlanguagechange", + "description": { + "kind": "markdown", + "value": "Function to call when the preferred languages changed." + } + }, + { + "name": "onmessage", + "description": { + "kind": "markdown", + "value": "Function to call when the document has received a message." + } + }, + { + "name": "onoffline", + "description": { + "kind": "markdown", + "value": "Function to call when network communication has failed." + } + }, + { + "name": "ononline", + "description": { + "kind": "markdown", + "value": "Function to call when network communication has been restored." + } + }, + { + "name": "onpagehide" + }, + { + "name": "onpageshow" + }, + { + "name": "onpopstate", + "description": { + "kind": "markdown", + "value": "Function to call when the user has navigated session history." + } + }, + { + "name": "onstorage", + "description": { + "kind": "markdown", + "value": "Function to call when the storage area has changed." + } + }, + { + "name": "onunload", + "description": { + "kind": "markdown", + "value": "Function to call when the document is going away." + } + }, + { + "name": "alink", + "description": "Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._" + }, + { + "name": "background", + "description": "URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._" + }, + { + "name": "bgcolor", + "description": "Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._" + }, + { + "name": "bottommargin", + "description": "The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._" + }, + { + "name": "leftmargin", + "description": "The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._" + }, + { + "name": "link", + "description": "Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._" + }, + { + "name": "onblur", + "description": "Function to call when the document loses focus." + }, + { + "name": "onerror", + "description": "Function to call when the document fails to load properly." + }, + { + "name": "onfocus", + "description": "Function to call when the document receives focus." + }, + { + "name": "onload", + "description": "Function to call when the document has finished loading." + }, + { + "name": "onredo", + "description": "Function to call when the user has moved forward in undo transaction history." + }, + { + "name": "onresize", + "description": "Function to call when the document has been resized." + }, + { + "name": "onundo", + "description": "Function to call when the user has moved backward in undo transaction history." + }, + { + "name": "rightmargin", + "description": "The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._" + }, + { + "name": "text", + "description": "Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value.\") property on the element instead._" + }, + { + "name": "topmargin", + "description": "The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._" + }, + { + "name": "vlink", + "description": "Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._" + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/body" + } + ] + }, + { + "name": "article", + "description": { + "kind": "markdown", + "value": "The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/article" + } + ] + }, + { + "name": "section", + "description": { + "kind": "markdown", + "value": "The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/section" + } + ] + }, + { + "name": "nav", + "description": { + "kind": "markdown", + "value": "The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/nav" + } + ] + }, + { + "name": "aside", + "description": { + "kind": "markdown", + "value": "The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/aside" + } + ] + }, + { + "name": "h1", + "description": { + "kind": "markdown", + "value": "The h1 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "h2", + "description": { + "kind": "markdown", + "value": "The h2 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "h3", + "description": { + "kind": "markdown", + "value": "The h3 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "h4", + "description": { + "kind": "markdown", + "value": "The h4 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "h5", + "description": { + "kind": "markdown", + "value": "The h5 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "h6", + "description": { + "kind": "markdown", + "value": "The h6 element represents a section heading." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements" + } + ] + }, + { + "name": "header", + "description": { + "kind": "markdown", + "value": "The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/header" + } + ] + }, + { + "name": "footer", + "description": { + "kind": "markdown", + "value": "The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/footer" + } + ] + }, + { + "name": "address", + "description": { + "kind": "markdown", + "value": "The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/address" + } + ] + }, + { + "name": "p", + "description": { + "kind": "markdown", + "value": "The p element represents a paragraph." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/p" + } + ] + }, + { + "name": "hr", + "description": { + "kind": "markdown", + "value": "The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book." + }, + "void": true, + "attributes": [ + { + "name": "align", + "description": "Sets the alignment of the rule on the page. If no value is specified, the default value is `left`." + }, + { + "name": "color", + "description": "Sets the color of the rule through color name or hexadecimal value." + }, + { + "name": "noshade", + "description": "Sets the rule to have no shading." + }, + { + "name": "size", + "description": "Sets the height, in pixels, of the rule." + }, + { + "name": "width", + "description": "Sets the length of the rule on the page through a pixel or percentage value." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/hr" + } + ] + }, + { + "name": "pre", + "description": { + "kind": "markdown", + "value": "The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements." + }, + "attributes": [ + { + "name": "cols", + "description": "Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element's width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead." + }, + { + "name": "width", + "description": "Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element's width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead." + }, + { + "name": "wrap", + "description": "Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/pre" + } + ] + }, + { + "name": "blockquote", + "description": { + "kind": "markdown", + "value": "The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations." + }, + "attributes": [ + { + "name": "cite", + "description": { + "kind": "markdown", + "value": "A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/blockquote" + } + ] + }, + { + "name": "ol", + "description": { + "kind": "markdown", + "value": "The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document." + }, + "attributes": [ + { + "name": "reversed", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute specifies that the items of the list are specified in reversed order." + } + }, + { + "name": "start", + "description": { + "kind": "markdown", + "value": "This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5." + } + }, + { + "name": "type", + "valueSet": "lt", + "description": { + "kind": "markdown", + "value": "Indicates the numbering type:\n\n* `'a'` indicates lowercase letters,\n* `'A'` indicates uppercase letters,\n* `'i'` indicates lowercase Roman numerals,\n* `'I'` indicates uppercase Roman numerals,\n* and `'1'` indicates numbers (default).\n\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\") element.\n\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property should be used instead." + } + }, + { + "name": "compact", + "description": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn't work in all browsers.\n\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/ol" + } + ] + }, + { + "name": "ul", + "description": { + "kind": "markdown", + "value": "The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document." + }, + "attributes": [ + { + "name": "compact", + "description": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn't work in all browsers.\n\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/ul" + } + ] + }, + { + "name": "li", + "description": { + "kind": "markdown", + "value": "The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element." + }, + "attributes": [ + { + "name": "value", + "description": { + "kind": "markdown", + "value": "This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed." + } + }, + { + "name": "type", + "description": "This character attribute indicates the numbering type:\n\n* `a`: lowercase letters\n* `A`: uppercase letters\n* `i`: lowercase Roman numerals\n* `I`: uppercase Roman numerals\n* `1`: numbers\n\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\n\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/li" + } + ] + }, + { + "name": "dl", + "description": { + "kind": "markdown", + "value": "The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/dl" + } + ] + }, + { + "name": "dt", + "description": { + "kind": "markdown", + "value": "The dt element represents the term, or name, part of a term-description group in a description list (dl element)." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/dt" + } + ] + }, + { + "name": "dd", + "description": { + "kind": "markdown", + "value": "The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element)." + }, + "attributes": [ + { + "name": "nowrap", + "description": "If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/dd" + } + ] + }, + { + "name": "figure", + "description": { + "kind": "markdown", + "value": "The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/figure" + } + ] + }, + { + "name": "figcaption", + "description": { + "kind": "markdown", + "value": "The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/figcaption" + } + ] + }, + { + "name": "main", + "description": { + "kind": "markdown", + "value": "The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/main" + } + ] + }, + { + "name": "div", + "description": { + "kind": "markdown", + "value": "The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/div" + } + ] + }, + { + "name": "a", + "description": { + "kind": "markdown", + "value": "If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents." + }, + "attributes": [ + { + "name": "href", + "description": { + "kind": "markdown", + "value": "Contains a URL or a URL fragment that the hyperlink points to.\nA URL fragment is a name preceded by a hash mark (`#`), which specifies an internal target location (an [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of an HTML element) within the current document. URLs are not restricted to Web (HTTP)-based documents, but can use any protocol supported by the browser. For example, [`file:`](https://en.wikipedia.org/wiki/File_URI_scheme), `ftp:`, and `mailto:` work in most browsers.\n\n**Note:** You can use `href=\"#top\"` or the empty fragment `href=\"#\"` to link to the top of the current page. [This behavior is specified by HTML5](https://www.w3.org/TR/html5/single-page.html#scroll-to-fragid)." + } + }, + { + "name": "target", + "valueSet": "target", + "description": { + "kind": "markdown", + "value": "Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\n\n* `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\n* `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\n* `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\n* `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\n\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\n\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page's performance may suffer. To avoid this use `rel=\"noopener\"`." + } + }, + { + "name": "download", + "description": { + "kind": "markdown", + "value": "This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\n\n**Notes:**\n\n* This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\n* If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\n* If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute." + } + }, + { + "name": "ping", + "description": { + "kind": "markdown", + "value": "Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking." + } + }, + { + "name": "rel", + "description": { + "kind": "markdown", + "value": "Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)." + } + }, + { + "name": "hreflang", + "description": { + "kind": "markdown", + "value": "This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\")." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A MIME type (now properly called \"media type\", but also sometimes \"content type\") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).\") for the linked URL. It is purely advisory, with no built-in functionality." + } + }, + { + "name": "referrerpolicy", + "description": "Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\n\n* `'no-referrer'` means the `Referer:` header will not be sent.\n* `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\n* `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\n* `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\n* `'strict-origin-when-cross-origin'`\n* `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/a" + } + ] + }, + { + "name": "em", + "description": { + "kind": "markdown", + "value": "The em element represents stress emphasis of its contents." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/em" + } + ] + }, + { + "name": "strong", + "description": { + "kind": "markdown", + "value": "The strong element represents strong importance, seriousness, or urgency for its contents." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/strong" + } + ] + }, + { + "name": "small", + "description": { + "kind": "markdown", + "value": "The small element represents side comments such as small print." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/small" + } + ] + }, + { + "name": "s", + "description": { + "kind": "markdown", + "value": "The s element represents contents that are no longer accurate or no longer relevant." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/s" + } + ] + }, + { + "name": "cite", + "description": { + "kind": "markdown", + "value": "The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/cite" + } + ] + }, + { + "name": "q", + "description": { + "kind": "markdown", + "value": "The q element represents some phrasing content quoted from another source." + }, + "attributes": [ + { + "name": "cite", + "description": { + "kind": "markdown", + "value": "The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/q" + } + ] + }, + { + "name": "dfn", + "description": { + "kind": "markdown", + "value": "The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/dfn" + } + ] + }, + { + "name": "abbr", + "description": { + "kind": "markdown", + "value": "The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/abbr" + } + ] + }, + { + "name": "ruby", + "description": { + "kind": "markdown", + "value": "The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]" + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/ruby" + } + ] + }, + { + "name": "rb", + "description": { + "kind": "markdown", + "value": "The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/rb" + } + ] + }, + { + "name": "rt", + "description": { + "kind": "markdown", + "value": "The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/rt" + } + ] + }, + { + "name": "rp", + "description": { + "kind": "markdown", + "value": "The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/rp" + } + ] + }, + { + "name": "time", + "description": { + "kind": "markdown", + "value": "The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below." + }, + "attributes": [ + { + "name": "datetime", + "description": { + "kind": "markdown", + "value": "This attribute indicates the time and/or date of the element and must be in one of the formats described below." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/time" + } + ] + }, + { + "name": "code", + "description": { + "kind": "markdown", + "value": "The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/code" + } + ] + }, + { + "name": "var", + "description": { + "kind": "markdown", + "value": "The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/var" + } + ] + }, + { + "name": "samp", + "description": { + "kind": "markdown", + "value": "The samp element represents sample or quoted output from another program or computing system." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/samp" + } + ] + }, + { + "name": "kbd", + "description": { + "kind": "markdown", + "value": "The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands)." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/kbd" + } + ] + }, + { + "name": "sub", + "description": { + "kind": "markdown", + "value": "The sub element represents a subscript." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/sub" + } + ] + }, + { + "name": "sup", + "description": { + "kind": "markdown", + "value": "The sup element represents a superscript." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/sup" + } + ] + }, + { + "name": "i", + "description": { + "kind": "markdown", + "value": "The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/i" + } + ] + }, + { + "name": "b", + "description": { + "kind": "markdown", + "value": "The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/b" + } + ] + }, + { + "name": "u", + "description": { + "kind": "markdown", + "value": "The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/u" + } + ] + }, + { + "name": "mark", + "description": { + "kind": "markdown", + "value": "The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/mark" + } + ] + }, + { + "name": "bdi", + "description": { + "kind": "markdown", + "value": "The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]" + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/bdi" + } + ] + }, + { + "name": "bdo", + "description": { + "kind": "markdown", + "value": "The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]" + }, + "attributes": [ + { + "name": "dir", + "description": "The direction in which text should be rendered in this element's contents. Possible values are:\n\n* `ltr`: Indicates that the text should go in a left-to-right direction.\n* `rtl`: Indicates that the text should go in a right-to-left direction." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/bdo" + } + ] + }, + { + "name": "span", + "description": { + "kind": "markdown", + "value": "The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/span" + } + ] + }, + { + "name": "br", + "description": { + "kind": "markdown", + "value": "The br element represents a line break." + }, + "void": true, + "attributes": [ + { + "name": "clear", + "description": "Indicates where to begin the next line after the break." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/br" + } + ] + }, + { + "name": "wbr", + "description": { + "kind": "markdown", + "value": "The wbr element represents a line break opportunity." + }, + "void": true, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/wbr" + } + ] + }, + { + "name": "ins", + "description": { + "kind": "markdown", + "value": "The ins element represents an addition to the document." + }, + "attributes": [ + { + "name": "cite", + "description": "This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system." + }, + { + "name": "datetime", + "description": "This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\")." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/ins" + } + ] + }, + { + "name": "del", + "description": { + "kind": "markdown", + "value": "The del element represents a removal from the document." + }, + "attributes": [ + { + "name": "cite", + "description": { + "kind": "markdown", + "value": "A URI for a resource that explains the change (for example, meeting minutes)." + } + }, + { + "name": "datetime", + "description": { + "kind": "markdown", + "value": "This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\")." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/del" + } + ] + }, + { + "name": "picture", + "description": { + "kind": "markdown", + "value": "The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/picture" + } + ] + }, + { + "name": "img", + "description": { + "kind": "markdown", + "value": "An img element represents an image." + }, + "void": true, + "attributes": [ + { + "name": "alt", + "description": { + "kind": "markdown", + "value": "This attribute defines an alternative text description of the image.\n\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element's `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\n\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering." + } + }, + { + "name": "src", + "description": { + "kind": "markdown", + "value": "The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors." + } + }, + { + "name": "srcset", + "description": { + "kind": "markdown", + "value": "A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\n\n1. a URL to an image,\n2. optionally, whitespace followed by one of:\n * A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\n * A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\n\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\n\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\n\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example." + } + }, + { + "name": "crossorigin", + "valueSet": "xo", + "description": { + "kind": "markdown", + "value": "This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:\n`anonymous`\n\nA cross-origin request (i.e., with `Origin:` HTTP header) is performed, but no credential is sent (i.e., no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header), the image will be tainted and its usage restricted.\n\n`use-credentials`\n\nA cross-origin request (i.e., with the [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn't include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn't disclose the whole path.\") HTTP header) performed along with credentials sent (i.e., a cookie, certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (through the `Access-Control-Allow-Credentials` HTTP header), the image will be tainted and its usage restricted.\n\nIf the attribute is not present, the resource is fetched without a CORS request (i.e., without sending the `Origin` HTTP header), preventing its non-tainted usage in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the `anonymous` value was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information." + } + }, + { + "name": "usemap", + "description": { + "kind": "markdown", + "value": "The partial URL (starting with '#') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\n\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element." + } + }, + { + "name": "ismap", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\n\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute." + } + }, + { + "name": "width", + "description": { + "kind": "markdown", + "value": "The intrinsic width of the image in pixels." + } + }, + { + "name": "height", + "description": { + "kind": "markdown", + "value": "The intrinsic height of the image in pixels." + } + }, + { + "name": "decoding", + "valueSet": "decoding", + "description": { + "kind": "markdown", + "value": "Provides an image decoding hint to the browser. The allowed values are:\n`sync`\n\nDecode the image synchronously for atomic presentation with other content.\n\n`async`\n\nDecode the image asynchronously to reduce delay in presenting other content.\n\n`auto`\n\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user." + } + }, + { + "name": "loading", + "valueSet": "loading", + "description": { + "kind": "markdown", + "value": "Indicates how the browser should load the image." + } + }, + { + "name": "referrerpolicy", + "valueSet": "referrerpolicy", + "description": { + "kind": "markdown", + "value": "A string indicating which referrer to use when fetching the resource:\n\n* `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n* `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\n* `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\n* `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\n* `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins." + } + }, + { + "name": "sizes", + "description": { + "kind": "markdown", + "value": "A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\n\n1. a media condition. This must be omitted for the last item.\n2. a source size value.\n\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect." + } + }, + { + "name": "importance", + "description": "Indicates the relative importance of the resource. Priority hints are delegated using the values:" + }, + { + "name": "importance", + "description": "`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\n\n`high`: Indicates to the browser that the image is of **high** priority.\n\n`low`: Indicates to the browser that the image is of **low** priority." + }, + { + "name": "intrinsicsize", + "description": "This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)" + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/img" + } + ] + }, + { + "name": "iframe", + "description": { + "kind": "markdown", + "value": "The iframe element represents a nested browsing context." + }, + "attributes": [ + { + "name": "src", + "description": { + "kind": "markdown", + "value": "The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS." + } + }, + { + "name": "srcdoc", + "description": { + "kind": "markdown", + "value": "Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The Window interface's open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn't exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method." + } + }, + { + "name": "sandbox", + "valueSet": "sb", + "description": { + "kind": "markdown", + "value": "Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\n\n* `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\n* `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\n* `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\n* `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\n* `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\n* `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\n* `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\n* `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\n* `allow-scripts`: Lets the resource run scripts (but not create popup windows).\n* `allow-storage-access-by-user-activation` : Lets the resource request access to the parent's storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\n* `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\n* `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\n\n**Notes about sandboxing:**\n\n* When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\n* Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\n* The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier." + } + }, + { + "name": "seamless", + "valueSet": "v" + }, + { + "name": "allowfullscreen", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.\nThis attribute is considered a legacy attribute and redefined as `allow=\"fullscreen\"`." + } + }, + { + "name": "width", + "description": { + "kind": "markdown", + "value": "The width of the frame in CSS pixels. Default is `300`." + } + }, + { + "name": "height", + "description": { + "kind": "markdown", + "value": "The height of the frame in CSS pixels. Default is `150`." + } + }, + { + "name": "allow", + "description": "Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`." + }, + { + "name": "allowpaymentrequest", + "description": "Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API)." + }, + { + "name": "allowpaymentrequest", + "description": "This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`." + }, + { + "name": "csp", + "description": "A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details." + }, + { + "name": "importance", + "description": "The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\n\n`auto` (default)\n\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\n\n`high`\n\nThe resource should be downloaded before other lower-priority page resources.\n\n`low`\n\nThe resource should be downloaded after other higher-priority page resources." + }, + { + "name": "referrerpolicy", + "description": "Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame's resource:\n\n* `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n* `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content's origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\n* `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\n* `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n* `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\n* `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don't send it to a less secure destination (HTTPS→HTTP).\n* `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\n* `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/iframe" + } + ] + }, + { + "name": "embed", + "description": { + "kind": "markdown", + "value": "The embed element provides an integration point for an external (typically non-HTML) application or interactive content." + }, + "void": true, + "attributes": [ + { + "name": "src", + "description": { + "kind": "markdown", + "value": "The URL of the resource being embedded." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "The MIME type to use to select the plug-in to instantiate." + } + }, + { + "name": "width", + "description": { + "kind": "markdown", + "value": "The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed." + } + }, + { + "name": "height", + "description": { + "kind": "markdown", + "value": "The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/embed" + } + ] + }, + { + "name": "object", + "description": { + "kind": "markdown", + "value": "The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin." + }, + "attributes": [ + { + "name": "data", + "description": { + "kind": "markdown", + "value": "The address of the resource as a valid URL. At least one of **data** and **type** must be defined." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined." + } + }, + { + "name": "typemustmatch", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name of valid browsing context (HTML5), or the name of the control (HTML 4)." + } + }, + { + "name": "usemap", + "description": { + "kind": "markdown", + "value": "A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document." + } + }, + { + "name": "width", + "description": { + "kind": "markdown", + "value": "The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))" + } + }, + { + "name": "height", + "description": { + "kind": "markdown", + "value": "The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))" + } + }, + { + "name": "archive", + "description": "A space-separated list of URIs for archives of resources for the object." + }, + { + "name": "border", + "description": "The width of a border around the control, in pixels." + }, + { + "name": "classid", + "description": "The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute." + }, + { + "name": "codebase", + "description": "The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document." + }, + { + "name": "codetype", + "description": "The content type of the data specified by **classid**." + }, + { + "name": "declare", + "description": "The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused." + }, + { + "name": "standby", + "description": "A message that the browser can show while loading the object's implementation and data." + }, + { + "name": "tabindex", + "description": "The position of the element in the tabbing navigation order for the current document." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/object" + } + ] + }, + { + "name": "param", + "description": { + "kind": "markdown", + "value": "The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own." + }, + "void": true, + "attributes": [ + { + "name": "name", + "description": { + "kind": "markdown", + "value": "Name of the parameter." + } + }, + { + "name": "value", + "description": { + "kind": "markdown", + "value": "Specifies the value of the parameter." + } + }, + { + "name": "type", + "description": "Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value." + }, + { + "name": "valuetype", + "description": "Specifies the type of the `value` attribute. Possible values are:\n\n* data: Default value. The value is passed to the object's implementation as a string.\n* ref: The value is a URI to a resource where run-time values are stored.\n* object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/param" + } + ] + }, + { + "name": "video", + "description": { + "kind": "markdown", + "value": "A video element is used for playing videos or movies, and audio files with captions." + }, + "attributes": [ + { + "name": "src" + }, + { + "name": "crossorigin", + "valueSet": "xo" + }, + { + "name": "poster" + }, + { + "name": "preload", + "valueSet": "pl" + }, + { + "name": "autoplay", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\n**Note**: Sites that automatically play audio (or video with an audio track) can be an unpleasant experience for users, so it should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\n\nTo disable video autoplay, `autoplay=\"false\"` will not work; the video will autoplay if the attribute is there in the `<video>` tag at all. To remove autoplay the attribute needs to be removed altogether.\n\nIn some browsers (e.g. Chrome 70.0) autoplay is not working if no `muted` attribute is present." + } + }, + { + "name": "mediagroup" + }, + { + "name": "loop", + "valueSet": "v" + }, + { + "name": "muted", + "valueSet": "v" + }, + { + "name": "controls", + "valueSet": "v" + }, + { + "name": "width" + }, + { + "name": "height" + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/video" + } + ] + }, + { + "name": "audio", + "description": { + "kind": "markdown", + "value": "An audio element represents a sound or audio stream." + }, + "attributes": [ + { + "name": "src", + "description": { + "kind": "markdown", + "value": "The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed." + } + }, + { + "name": "crossorigin", + "valueSet": "xo", + "description": { + "kind": "markdown", + "value": "This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\n\nanonymous\n\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\n\nuse-credentials\n\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\n\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information." + } + }, + { + "name": "preload", + "valueSet": "pl", + "description": { + "kind": "markdown", + "value": "This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\n\n* `none`: Indicates that the audio should not be preloaded.\n* `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\n* `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\n* _empty string_: A synonym of the `auto` value.\n\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\n\n**Usage notes:**\n\n* The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\n* The browser is not forced by the specification to follow the value of this attribute; it is a mere hint." + } + }, + { + "name": "autoplay", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\n\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control." + } + }, + { + "name": "mediagroup" + }, + { + "name": "loop", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio." + } + }, + { + "name": "muted", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`." + } + }, + { + "name": "controls", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/audio" + } + ] + }, + { + "name": "source", + "description": { + "kind": "markdown", + "value": "The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own." + }, + "void": true, + "attributes": [ + { + "name": "src", + "description": { + "kind": "markdown", + "value": "Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs." + } + }, + { + "name": "sizes", + "description": "Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use. \nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element." + }, + { + "name": "srcset", + "description": "A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\n\n1. one URL to an image,\n2. a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\n3. a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\n\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor. \nThe browser chooses the most adequate image to display at a given point of time. \nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element." + }, + { + "name": "media", + "description": "[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource's intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/source" + } + ] + }, + { + "name": "track", + "description": { + "kind": "markdown", + "value": "The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own." + }, + "void": true, + "attributes": [ + { + "name": "default", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element." + } + }, + { + "name": "kind", + "valueSet": "tk", + "description": { + "kind": "markdown", + "value": "How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\n\n* `subtitles`\n * Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\n * Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\n* `captions`\n * Closed captions provide a transcription and possibly a translation of audio.\n * It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\n * Suitable for users who are deaf or when the sound is muted.\n* `descriptions`\n * Textual description of the video content.\n * Suitable for users who are blind or where the video cannot be seen.\n* `chapters`\n * Chapter titles are intended to be used when the user is navigating the media resource.\n* `metadata`\n * Tracks used by scripts. Not visible to the user." + } + }, + { + "name": "label", + "description": { + "kind": "markdown", + "value": "A user-readable title of the text track which is used by the browser when listing available text tracks." + } + }, + { + "name": "src", + "description": { + "kind": "markdown", + "value": "Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute." + } + }, + { + "name": "srclang", + "description": { + "kind": "markdown", + "value": "Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/track" + } + ] + }, + { + "name": "map", + "description": { + "kind": "markdown", + "value": "The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children." + }, + "attributes": [ + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/map" + } + ] + }, + { + "name": "area", + "description": { + "kind": "markdown", + "value": "The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map." + }, + "void": true, + "attributes": [ + { + "name": "alt" + }, + { + "name": "coords" + }, + { + "name": "shape", + "valueSet": "sh" + }, + { + "name": "href" + }, + { + "name": "target", + "valueSet": "target" + }, + { + "name": "download" + }, + { + "name": "ping" + }, + { + "name": "rel" + }, + { + "name": "hreflang" + }, + { + "name": "type" + }, + { + "name": "accesskey", + "description": "Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/area" + } + ] + }, + { + "name": "table", + "description": { + "kind": "markdown", + "value": "The table element represents data with more than one dimension, in the form of a table." + }, + "attributes": [ + { + "name": "border" + }, + { + "name": "align", + "description": "This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\n\n* left: the table is displayed on the left side of the document;\n* center: the table is displayed in the center of the document;\n* right: the table is displayed on the right side of the document.\n\n**Usage Note**\n\n* **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\n* Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/table" + } + ] + }, + { + "name": "caption", + "description": { + "kind": "markdown", + "value": "The caption element represents the title of the table that is its parent, if it has a parent and that is a table element." + }, + "attributes": [ + { + "name": "align", + "description": "This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\n\n`left`\n\nThe caption is displayed to the left of the table.\n\n`top`\n\nThe caption is displayed above the table.\n\n`right`\n\nThe caption is displayed to the right of the table.\n\n`bottom`\n\nThe caption is displayed below the table.\n\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table's <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\")." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/caption" + } + ] + }, + { + "name": "colgroup", + "description": { + "kind": "markdown", + "value": "The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element." + }, + "attributes": [ + { + "name": "span" + }, + { + "name": "align", + "description": "This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\n\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n * Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won't inherit it.\n * If the table doesn't use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\n * If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/colgroup" + } + ] + }, + { + "name": "col", + "description": { + "kind": "markdown", + "value": "If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup." + }, + "void": true, + "attributes": [ + { + "name": "span" + }, + { + "name": "align", + "description": "This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\n\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n * Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won't inherit it.\n * If the table doesn't use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\n * If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/col" + } + ] + }, + { + "name": "tbody", + "description": { + "kind": "markdown", + "value": "The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table." + }, + "attributes": [ + { + "name": "align", + "description": "This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/tbody" + } + ] + }, + { + "name": "thead", + "description": { + "kind": "markdown", + "value": "The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table." + }, + "attributes": [ + { + "name": "align", + "description": "This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/thead" + } + ] + }, + { + "name": "tfoot", + "description": { + "kind": "markdown", + "value": "The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table." + }, + "attributes": [ + { + "name": "align", + "description": "This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/tfoot" + } + ] + }, + { + "name": "tr", + "description": { + "kind": "markdown", + "value": "The tr element represents a row of cells in a table." + }, + "attributes": [ + { + "name": "align", + "description": "A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell's context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\n\n`left`\n\nAlign the content of each cell at its left edge.\n\n`center`\n\nCenter the contents of each cell between their left and right edges.\n\n`right`\n\nAlign the content of each cell at its right edge.\n\n`justify`\n\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\n\n`char`\n\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\n\nIf no value is expressly set for `align`, the parent node's value is inherited.\n\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row's cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`)." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/tr" + } + ] + }, + { + "name": "td", + "description": { + "kind": "markdown", + "value": "The td element represents a data cell in a table." + }, + "attributes": [ + { + "name": "colspan" + }, + { + "name": "rowspan" + }, + { + "name": "headers" + }, + { + "name": "abbr", + "description": "This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute." + }, + { + "name": "align", + "description": "This enumerated attribute specifies how the cell content's horizontal alignment will be handled. Possible values are:\n\n* `left`: The content is aligned to the left of the cell.\n* `center`: The content is centered in the cell.\n* `right`: The content is aligned to the right of the cell.\n* `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n* `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\n* To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3." + }, + { + "name": "axis", + "description": "This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard." + }, + { + "name": "bgcolor", + "description": "This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by '#'. This attribute may be used with one of sixteen predefined color strings:\n\n \n\n`black` = \"#000000\"\n\n \n\n`green` = \"#008000\"\n\n \n\n`silver` = \"#C0C0C0\"\n\n \n\n`lime` = \"#00FF00\"\n\n \n\n`gray` = \"#808080\"\n\n \n\n`olive` = \"#808000\"\n\n \n\n`white` = \"#FFFFFF\"\n\n \n\n`yellow` = \"#FFFF00\"\n\n \n\n`maroon` = \"#800000\"\n\n \n\n`navy` = \"#000080\"\n\n \n\n`red` = \"#FF0000\"\n\n \n\n`blue` = \"#0000FF\"\n\n \n\n`purple` = \"#800080\"\n\n \n\n`teal` = \"#008080\"\n\n \n\n`fuchsia` = \"#FF00FF\"\n\n \n\n`aqua` = \"#00FFFF\"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/td" + } + ] + }, + { + "name": "th", + "description": { + "kind": "markdown", + "value": "The th element represents a header cell in a table." + }, + "attributes": [ + { + "name": "colspan" + }, + { + "name": "rowspan" + }, + { + "name": "headers" + }, + { + "name": "scope", + "valueSet": "s" + }, + { + "name": "sorted" + }, + { + "name": "abbr", + "description": { + "kind": "markdown", + "value": "This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself." + } + }, + { + "name": "align", + "description": "This enumerated attribute specifies how the cell content's horizontal alignment will be handled. Possible values are:\n\n* `left`: The content is aligned to the left of the cell.\n* `center`: The content is centered in the cell.\n* `right`: The content is aligned to the right of the cell.\n* `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n* `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\n* To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3." + }, + { + "name": "axis", + "description": "This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead." + }, + { + "name": "bgcolor", + "description": "This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by '#'. This attribute may be used with one of sixteen predefined color strings:\n\n \n\n`black` = \"#000000\"\n\n \n\n`green` = \"#008000\"\n\n \n\n`silver` = \"#C0C0C0\"\n\n \n\n`lime` = \"#00FF00\"\n\n \n\n`gray` = \"#808080\"\n\n \n\n`olive` = \"#808000\"\n\n \n\n`white` = \"#FFFFFF\"\n\n \n\n`yellow` = \"#FFFF00\"\n\n \n\n`maroon` = \"#800000\"\n\n \n\n`navy` = \"#000080\"\n\n \n\n`red` = \"#FF0000\"\n\n \n\n`blue` = \"#0000FF\"\n\n \n\n`purple` = \"#800080\"\n\n \n\n`teal` = \"#008080\"\n\n \n\n`fuchsia` = \"#FF00FF\"\n\n \n\n`aqua` = \"#00FFFF\"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/th" + } + ] + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing." + }, + "attributes": [ + { + "name": "accept-charset", + "description": { + "kind": "markdown", + "value": "A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element. \nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters." + } + }, + { + "name": "action", + "description": { + "kind": "markdown", + "value": "The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element." + } + }, + { + "name": "autocomplete", + "valueSet": "o", + "description": { + "kind": "markdown", + "value": "Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\n\n* `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\n* `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\n\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\n**Note:** If you set `autocomplete` to `off` in a form because the document provides its own auto-completion, then you should also set `autocomplete` to `off` for each of the form's `input` elements that the document can auto-complete. For details, see the note regarding Google Chrome in the [Browser Compatibility chart](#compatChart)." + } + }, + { + "name": "enctype", + "valueSet": "et", + "description": { + "kind": "markdown", + "value": "When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\n\n* `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n* `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\n* `text/plain`: (HTML5)\n\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element." + } + }, + { + "name": "method", + "valueSet": "m", + "description": { + "kind": "markdown", + "value": "The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\n\n* `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\n* `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n* `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\n\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5." + } + }, + { + "name": "novalidate", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form." + } + }, + { + "name": "target", + "valueSet": "target", + "description": { + "kind": "markdown", + "value": "A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\n\n* `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\n* `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n* _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\n\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element." + } + }, + { + "name": "accept", + "description": "A comma-separated list of content types that the server accepts.\n\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element." + }, + { + "name": "autocapitalize", + "description": "This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\n\n* `none`: Completely disables automatic capitalization\n* `sentences`: Automatically capitalize the first letter of sentences.\n* `words`: Automatically capitalize the first letter of words.\n* `characters`: Automatically capitalize all characters.\n* `on`: Deprecated since iOS 5.\n* `off`: Deprecated since iOS 5." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/form" + } + ] + }, + { + "name": "label", + "description": { + "kind": "markdown", + "value": "The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself." + }, + "attributes": [ + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements." + } + }, + { + "name": "for", + "description": { + "kind": "markdown", + "value": "The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\n\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/label" + } + ] + }, + { + "name": "input", + "description": { + "kind": "markdown", + "value": "The input element represents a typed data field, usually with a form control to allow the user to edit the data." + }, + "void": true, + "attributes": [ + { + "name": "accept" + }, + { + "name": "alt" + }, + { + "name": "autocomplete", + "valueSet": "inputautocomplete" + }, + { + "name": "autofocus", + "valueSet": "v" + }, + { + "name": "checked", + "valueSet": "v" + }, + { + "name": "dirname" + }, + { + "name": "disabled", + "valueSet": "v" + }, + { + "name": "form" + }, + { + "name": "formaction" + }, + { + "name": "formenctype", + "valueSet": "et" + }, + { + "name": "formmethod", + "valueSet": "fm" + }, + { + "name": "formnovalidate", + "valueSet": "v" + }, + { + "name": "formtarget" + }, + { + "name": "height" + }, + { + "name": "inputmode", + "valueSet": "im" + }, + { + "name": "list" + }, + { + "name": "max" + }, + { + "name": "maxlength" + }, + { + "name": "min" + }, + { + "name": "minlength" + }, + { + "name": "multiple", + "valueSet": "v" + }, + { + "name": "name" + }, + { + "name": "pattern" + }, + { + "name": "placeholder" + }, + { + "name": "readonly", + "valueSet": "v" + }, + { + "name": "required", + "valueSet": "v" + }, + { + "name": "size" + }, + { + "name": "src" + }, + { + "name": "step" + }, + { + "name": "type", + "valueSet": "t" + }, + { + "name": "value" + }, + { + "name": "width" + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/input" + } + ] + }, + { + "name": "button", + "description": { + "kind": "markdown", + "value": "The button element represents a button labeled by its contents." + }, + "attributes": [ + { + "name": "autofocus", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified." + } + }, + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\n\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements." + } + }, + { + "name": "formaction", + "description": { + "kind": "markdown", + "value": "The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner." + } + }, + { + "name": "formenctype", + "valueSet": "et", + "description": { + "kind": "markdown", + "value": "If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\n\n* `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n* `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\n* `text/plain`\n\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button's form owner." + } + }, + { + "name": "formmethod", + "valueSet": "fm", + "description": { + "kind": "markdown", + "value": "If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\n\n* `post`: The data from the form are included in the body of the form and sent to the server.\n* `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner." + } + }, + { + "name": "formnovalidate", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner." + } + }, + { + "name": "formtarget", + "description": { + "kind": "markdown", + "value": "If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\n\n* `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the response into a new unnamed browsing context.\n* `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name of the button, which is submitted with the form data." + } + }, + { + "name": "type", + "valueSet": "bt", + "description": { + "kind": "markdown", + "value": "The type of the button. Possible values are:\n\n* `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\n* `reset`: The button resets all the controls to their initial values.\n* `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur." + } + }, + { + "name": "value", + "description": { + "kind": "markdown", + "value": "The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted." + } + }, + { + "name": "autocomplete", + "description": "The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn't return after refreshing the page\")." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/button" + } + ] + }, + { + "name": "select", + "description": { + "kind": "markdown", + "value": "The select element represents a control for selecting amongst a set of options." + }, + "attributes": [ + { + "name": "autocomplete", + "valueSet": "inputautocomplete", + "description": { + "kind": "markdown", + "value": "A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent's](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent's: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete." + } + }, + { + "name": "autofocus", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute." + } + }, + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "This attribute lets you specify the form element to which the select element is associated (that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements." + } + }, + { + "name": "multiple", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "This attribute is used to specify the name of the control." + } + }, + { + "name": "required", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "A Boolean attribute indicating that an option with a non-empty string value must be selected." + } + }, + { + "name": "size", + "description": { + "kind": "markdown", + "value": "If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\n\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/select" + } + ] + }, + { + "name": "datalist", + "description": { + "kind": "markdown", + "value": "The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/datalist" + } + ] + }, + { + "name": "optgroup", + "description": { + "kind": "markdown", + "value": "The optgroup element represents a group of option elements with a common label." + }, + "attributes": [ + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones." + } + }, + { + "name": "label", + "description": { + "kind": "markdown", + "value": "The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/optgroup" + } + ] + }, + { + "name": "option", + "description": { + "kind": "markdown", + "value": "The option element represents an option in a select element or as part of a list of suggestions in a datalist element." + }, + "attributes": [ + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won't receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element." + } + }, + { + "name": "label", + "description": { + "kind": "markdown", + "value": "This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content." + } + }, + { + "name": "selected", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute." + } + }, + { + "name": "value", + "description": { + "kind": "markdown", + "value": "The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/option" + } + ] + }, + { + "name": "textarea", + "description": { + "kind": "markdown", + "value": "The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value." + }, + "attributes": [ + { + "name": "autocomplete", + "valueSet": "inputautocomplete", + "description": { + "kind": "markdown", + "value": "This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\n\n* `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\n* `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\n\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element's form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\")." + } + }, + { + "name": "autofocus", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified." + } + }, + { + "name": "cols", + "description": { + "kind": "markdown", + "value": "The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`." + } + }, + { + "name": "dirname" + }, + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements." + } + }, + { + "name": "inputmode", + "valueSet": "im" + }, + { + "name": "maxlength", + "description": { + "kind": "markdown", + "value": "The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters." + } + }, + { + "name": "minlength", + "description": { + "kind": "markdown", + "value": "The minimum number of characters (unicode code points) required that the user should enter." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name of the control." + } + }, + { + "name": "placeholder", + "description": { + "kind": "markdown", + "value": "A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\n\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation." + } + }, + { + "name": "readonly", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form." + } + }, + { + "name": "required", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This attribute specifies that the user must fill in a value before submitting a form." + } + }, + { + "name": "rows", + "description": { + "kind": "markdown", + "value": "The number of visible text lines for the control." + } + }, + { + "name": "wrap", + "valueSet": "w", + "description": { + "kind": "markdown", + "value": "Indicates how the control wraps text. Possible values are:\n\n* `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\n* `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\n* `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\n\nIf this attribute is not specified, `soft` is its default value." + } + }, + { + "name": "autocapitalize", + "description": "This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\n\n* `none`: Completely disables automatic capitalization.\n* `sentences`: Automatically capitalize the first letter of sentences.\n* `words`: Automatically capitalize the first letter of words.\n* `characters`: Automatically capitalize all characters.\n* `on`: Deprecated since iOS 5.\n* `off`: Deprecated since iOS 5." + }, + { + "name": "spellcheck", + "description": "Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\n\n* `true`: Indicates that the element needs to have its spelling and grammar checked.\n* `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\n* `false` : Indicates that the element should not be spell checked." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/textarea" + } + ] + }, + { + "name": "output", + "description": { + "kind": "markdown", + "value": "The output element represents the result of a calculation performed by the application, or the result of a user action." + }, + "attributes": [ + { + "name": "for", + "description": { + "kind": "markdown", + "value": "A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/output" + } + ] + }, + { + "name": "progress", + "description": { + "kind": "markdown", + "value": "The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed." + }, + "attributes": [ + { + "name": "value", + "description": { + "kind": "markdown", + "value": "This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take." + } + }, + { + "name": "max", + "description": { + "kind": "markdown", + "value": "This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/progress" + } + ] + }, + { + "name": "meter", + "description": { + "kind": "markdown", + "value": "The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate." + }, + "attributes": [ + { + "name": "value", + "description": { + "kind": "markdown", + "value": "The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\n\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it." + } + }, + { + "name": "min", + "description": { + "kind": "markdown", + "value": "The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0." + } + }, + { + "name": "max", + "description": { + "kind": "markdown", + "value": "The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1." + } + }, + { + "name": "low", + "description": { + "kind": "markdown", + "value": "The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value." + } + }, + { + "name": "high", + "description": { + "kind": "markdown", + "value": "The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value." + } + }, + { + "name": "optimum", + "description": { + "kind": "markdown", + "value": "This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred." + } + }, + { + "name": "form", + "description": "This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/meter" + } + ] + }, + { + "name": "fieldset", + "description": { + "kind": "markdown", + "value": "The fieldset element represents a set of form controls optionally grouped under a common name." + }, + "attributes": [ + { + "name": "disabled", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element won't be disabled." + } + }, + { + "name": "form", + "description": { + "kind": "markdown", + "value": "This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form." + } + }, + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The name associated with the group.\n\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/fieldset" + } + ] + }, + { + "name": "legend", + "description": { + "kind": "markdown", + "value": "The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/legend" + } + ] + }, + { + "name": "details", + "description": { + "kind": "markdown", + "value": "The details element represents a disclosure widget from which the user can obtain additional information or controls." + }, + "attributes": [ + { + "name": "open", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/details" + } + ] + }, + { + "name": "summary", + "description": { + "kind": "markdown", + "value": "The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/summary" + } + ] + }, + { + "name": "dialog", + "description": { + "kind": "markdown", + "value": "The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window." + }, + "attributes": [ + { + "name": "open", + "description": "Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/dialog" + } + ] + }, + { + "name": "script", + "description": { + "kind": "markdown", + "value": "The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user." + }, + "attributes": [ + { + "name": "src", + "description": { + "kind": "markdown", + "value": "This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\n\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags." + } + }, + { + "name": "type", + "description": { + "kind": "markdown", + "value": "This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\n\n* **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\n* **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\n* **Any other value:** The embedded content is treated as a data block which won't be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\n\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\"))." + } + }, + { + "name": "charset" + }, + { + "name": "async", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\n\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\n\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn't recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\n\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts)." + } + }, + { + "name": "defer", + "valueSet": "v", + "description": { + "kind": "markdown", + "value": "This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\n\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\n\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document." + } + }, + { + "name": "crossorigin", + "valueSet": "xo", + "description": { + "kind": "markdown", + "value": "Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments." + } + }, + { + "name": "nonce", + "description": { + "kind": "markdown", + "value": "A cryptographic nonce (number used once) to list the allowed inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial." + } + }, + { + "name": "integrity", + "description": "This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)." + }, + { + "name": "nomodule", + "description": "This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code." + }, + { + "name": "referrerpolicy", + "description": "Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\n\n* `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n* `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content's origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\n* `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\n* `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n* `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\n* `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don't send it to a less secure destination (e.g. HTTPS→HTTP).\n* `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\n* `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\n\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`." + }, + { + "name": "text", + "description": "Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/script" + } + ] + }, + { + "name": "noscript", + "description": { + "kind": "markdown", + "value": "The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/noscript" + } + ] + }, + { + "name": "template", + "description": { + "kind": "markdown", + "value": "The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/template" + } + ] + }, + { + "name": "canvas", + "description": { + "kind": "markdown", + "value": "The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly." + }, + "attributes": [ + { + "name": "width", + "description": { + "kind": "markdown", + "value": "The width of the coordinate space in CSS pixels. Defaults to 300." + } + }, + { + "name": "height", + "description": { + "kind": "markdown", + "value": "The height of the coordinate space in CSS pixels. Defaults to 150." + } + }, + { + "name": "moz-opaque", + "description": "Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\") instead." + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/canvas" + } + ] + }, + { + "name": "slot", + "description": { + "kind": "markdown", + "value": "The slot element is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together." + }, + "attributes": [ + { + "name": "name", + "description": { + "kind": "markdown", + "value": "The slot's name.\nA **named slot** is a `<slot>` element with a `name` attribute." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/slot" + } + ] + }, + { + "name": "data", + "description": { + "kind": "markdown", + "value": "The data element links a given piece of content with a machine-readable translation." + }, + "attributes": [ + { + "name": "value", + "description": { + "kind": "markdown", + "value": "This attribute specifies the machine-readable translation of the content of the element." + } + } + ], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/data" + } + ] + }, + { + "name": "hgroup", + "description": { + "kind": "markdown", + "value": "The hgroup element represents a heading and related content. It groups a single h1–h6 element with one or more p." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/hgroup" + } + ] + }, + { + "name": "menu", + "description": { + "kind": "markdown", + "value": "The menu element represents an unordered list of interactive items." + }, + "attributes": [], + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Element/menu" + } + ] + } + ], + "globalAttributes": [ + { + "name": "accesskey", + "description": { + "kind": "markdown", + "value": "Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey" + } + ] + }, + { + "name": "autocapitalize", + "description": { + "kind": "markdown", + "value": "Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\n\n* `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\n* `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\n* `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\n* `characters`, all letters should default to uppercase" + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize" + } + ] + }, + { + "name": "class", + "description": { + "kind": "markdown", + "value": "A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](https://developer.mozilla.org/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\")." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class" + } + ] + }, + { + "name": "contenteditable", + "description": { + "kind": "markdown", + "value": "An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\n\n* `true` or the _empty string_, which indicates that the element must be editable;\n* `false`, which indicates that the element must not be editable." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable" + } + ] + }, + { + "name": "contextmenu", + "description": { + "kind": "markdown", + "value": "The `[**id**](#attr-id)` of a [`<menu>`](https://developer.mozilla.org/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element." + } + }, + { + "name": "dir", + "description": { + "kind": "markdown", + "value": "An enumerated attribute indicating the directionality of the element's text. It can have the following values:\n\n* `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\n* `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\n* `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element." + }, + "valueSet": "d", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir" + } + ] + }, + { + "name": "draggable", + "description": { + "kind": "markdown", + "value": "An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n* `true`, which indicates that the element may be dragged\n* `false`, which indicates that the element may not be dragged." + }, + "valueSet": "b", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable" + } + ] + }, + { + "name": "dropzone", + "description": { + "kind": "markdown", + "value": "An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n* `copy`, which indicates that dropping will create a copy of the element that was dragged\n* `move`, which indicates that the element that was dragged will be moved to this new location.\n* `link`, will create a link to the dragged data." + } + }, + { + "name": "exportparts", + "description": { + "kind": "markdown", + "value": "Used to transitively export shadow parts from a nested shadow tree into a containing light tree." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts" + } + ] + }, + { + "name": "hidden", + "description": { + "kind": "markdown", + "value": "A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown." + }, + "valueSet": "v", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden" + } + ] + }, + { + "name": "id", + "description": { + "kind": "markdown", + "value": "Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS)." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id" + } + ] + }, + { + "name": "inputmode", + "description": { + "kind": "markdown", + "value": "Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](https://developer.mozilla.org/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode" + } + ] + }, + { + "name": "is", + "description": { + "kind": "markdown", + "value": "Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](https://developer.mozilla.org/docs/Web/Web_Components/Using_custom_elements) for more details)." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is" + } + ] + }, + { + "name": "itemid", + "description": { + "kind": "markdown", + "value": "The unique, global identifier of an item." + } + }, + { + "name": "itemprop", + "description": { + "kind": "markdown", + "value": "Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair." + } + }, + { + "name": "itemref", + "description": { + "kind": "markdown", + "value": "Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document." + } + }, + { + "name": "itemscope", + "description": { + "kind": "markdown", + "value": "`itemscope` (usually) works along with `[itemtype](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context." + }, + "valueSet": "v" + }, + { + "name": "itemtype", + "description": { + "kind": "markdown", + "value": "Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active." + } + }, + { + "name": "lang", + "description": { + "kind": "markdown", + "value": "Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang" + } + ] + }, + { + "name": "part", + "description": { + "kind": "markdown", + "value": "A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](https://developer.mozilla.org/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part" + } + ] + }, + { + "name": "role", + "valueSet": "roles" + }, + { + "name": "slot", + "description": { + "kind": "markdown", + "value": "Assigns a slot in a [shadow DOM](https://developer.mozilla.org/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](https://developer.mozilla.org/docs/Web/HTML/Element/slot \"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\") element whose `[name](https://developer.mozilla.org/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot" + } + ] + }, + { + "name": "spellcheck", + "description": { + "kind": "markdown", + "value": "An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\n\n* `true`, which indicates that the element should be, if possible, checked for spelling errors;\n* `false`, which indicates that the element should not be checked for spelling errors." + }, + "valueSet": "b", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck" + } + ] + }, + { + "name": "style", + "description": { + "kind": "markdown", + "value": "Contains [CSS](https://developer.mozilla.org/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](https://developer.mozilla.org/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style" + } + ] + }, + { + "name": "tabindex", + "description": { + "kind": "markdown", + "value": "An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\n\n* a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\n* `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\n* a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex" + } + ] + }, + { + "name": "title", + "description": { + "kind": "markdown", + "value": "Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip." + }, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title" + } + ] + }, + { + "name": "translate", + "description": { + "kind": "markdown", + "value": "An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](https://developer.mozilla.org/docs/Web/API/Text \"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\n\n* empty string and `yes`, which indicates that the element will be translated.\n* `no`, which indicates that the element will not be translated." + }, + "valueSet": "y", + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate" + } + ] + }, + { + "name": "onabort", + "description": { + "kind": "markdown", + "value": "The loading of a resource has been aborted." + } + }, + { + "name": "onblur", + "description": { + "kind": "markdown", + "value": "An element has lost focus (does not bubble)." + } + }, + { + "name": "oncanplay", + "description": { + "kind": "markdown", + "value": "The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content." + } + }, + { + "name": "oncanplaythrough", + "description": { + "kind": "markdown", + "value": "The user agent can play the media up to its end without having to stop for further buffering of content." + } + }, + { + "name": "onchange", + "description": { + "kind": "markdown", + "value": "The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user." + } + }, + { + "name": "onclick", + "description": { + "kind": "markdown", + "value": "A pointing device button has been pressed and released on an element." + } + }, + { + "name": "oncontextmenu", + "description": { + "kind": "markdown", + "value": "The right button of the mouse is clicked (before the context menu is displayed)." + } + }, + { + "name": "ondblclick", + "description": { + "kind": "markdown", + "value": "A pointing device button is clicked twice on an element." + } + }, + { + "name": "ondrag", + "description": { + "kind": "markdown", + "value": "An element or text selection is being dragged (every 350ms)." + } + }, + { + "name": "ondragend", + "description": { + "kind": "markdown", + "value": "A drag operation is being ended (by releasing a mouse button or hitting the escape key)." + } + }, + { + "name": "ondragenter", + "description": { + "kind": "markdown", + "value": "A dragged element or text selection enters a valid drop target." + } + }, + { + "name": "ondragleave", + "description": { + "kind": "markdown", + "value": "A dragged element or text selection leaves a valid drop target." + } + }, + { + "name": "ondragover", + "description": { + "kind": "markdown", + "value": "An element or text selection is being dragged over a valid drop target (every 350ms)." + } + }, + { + "name": "ondragstart", + "description": { + "kind": "markdown", + "value": "The user starts dragging an element or text selection." + } + }, + { + "name": "ondrop", + "description": { + "kind": "markdown", + "value": "An element is dropped on a valid drop target." + } + }, + { + "name": "ondurationchange", + "description": { + "kind": "markdown", + "value": "The duration attribute has been updated." + } + }, + { + "name": "onemptied", + "description": { + "kind": "markdown", + "value": "The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it." + } + }, + { + "name": "onended", + "description": { + "kind": "markdown", + "value": "Playback has stopped because the end of the media was reached." + } + }, + { + "name": "onerror", + "description": { + "kind": "markdown", + "value": "A resource failed to load." + } + }, + { + "name": "onfocus", + "description": { + "kind": "markdown", + "value": "An element has received focus (does not bubble)." + } + }, + { + "name": "onformchange" + }, + { + "name": "onforminput" + }, + { + "name": "oninput", + "description": { + "kind": "markdown", + "value": "The value of an element changes or the content of an element with the attribute contenteditable is modified." + } + }, + { + "name": "oninvalid", + "description": { + "kind": "markdown", + "value": "A submittable element has been checked and doesn't satisfy its constraints." + } + }, + { + "name": "onkeydown", + "description": { + "kind": "markdown", + "value": "A key is pressed down." + } + }, + { + "name": "onkeypress", + "description": { + "kind": "markdown", + "value": "A key is pressed down and that key normally produces a character value (use input instead)." + } + }, + { + "name": "onkeyup", + "description": { + "kind": "markdown", + "value": "A key is released." + } + }, + { + "name": "onload", + "description": { + "kind": "markdown", + "value": "A resource and its dependent resources have finished loading." + } + }, + { + "name": "onloadeddata", + "description": { + "kind": "markdown", + "value": "The first frame of the media has finished loading." + } + }, + { + "name": "onloadedmetadata", + "description": { + "kind": "markdown", + "value": "The metadata has been loaded." + } + }, + { + "name": "onloadstart", + "description": { + "kind": "markdown", + "value": "Progress has begun." + } + }, + { + "name": "onmousedown", + "description": { + "kind": "markdown", + "value": "A pointing device button (usually a mouse) is pressed on an element." + } + }, + { + "name": "onmousemove", + "description": { + "kind": "markdown", + "value": "A pointing device is moved over an element." + } + }, + { + "name": "onmouseout", + "description": { + "kind": "markdown", + "value": "A pointing device is moved off the element that has the listener attached or off one of its children." + } + }, + { + "name": "onmouseover", + "description": { + "kind": "markdown", + "value": "A pointing device is moved onto the element that has the listener attached or onto one of its children." + } + }, + { + "name": "onmouseup", + "description": { + "kind": "markdown", + "value": "A pointing device button is released over an element." + } + }, + { + "name": "onmousewheel" + }, + { + "name": "onmouseenter", + "description": { + "kind": "markdown", + "value": "A pointing device is moved onto the element that has the listener attached." + } + }, + { + "name": "onmouseleave", + "description": { + "kind": "markdown", + "value": "A pointing device is moved off the element that has the listener attached." + } + }, + { + "name": "onpause", + "description": { + "kind": "markdown", + "value": "Playback has been paused." + } + }, + { + "name": "onplay", + "description": { + "kind": "markdown", + "value": "Playback has begun." + } + }, + { + "name": "onplaying", + "description": { + "kind": "markdown", + "value": "Playback is ready to start after having been paused or delayed due to lack of data." + } + }, + { + "name": "onprogress", + "description": { + "kind": "markdown", + "value": "In progress." + } + }, + { + "name": "onratechange", + "description": { + "kind": "markdown", + "value": "The playback rate has changed." + } + }, + { + "name": "onreset", + "description": { + "kind": "markdown", + "value": "A form is reset." + } + }, + { + "name": "onresize", + "description": { + "kind": "markdown", + "value": "The document view has been resized." + } + }, + { + "name": "onreadystatechange", + "description": { + "kind": "markdown", + "value": "The readyState attribute of a document has changed." + } + }, + { + "name": "onscroll", + "description": { + "kind": "markdown", + "value": "The document view or an element has been scrolled." + } + }, + { + "name": "onseeked", + "description": { + "kind": "markdown", + "value": "A seek operation completed." + } + }, + { + "name": "onseeking", + "description": { + "kind": "markdown", + "value": "A seek operation began." + } + }, + { + "name": "onselect", + "description": { + "kind": "markdown", + "value": "Some text is being selected." + } + }, + { + "name": "onshow", + "description": { + "kind": "markdown", + "value": "A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute" + } + }, + { + "name": "onstalled", + "description": { + "kind": "markdown", + "value": "The user agent is trying to fetch media data, but data is unexpectedly not forthcoming." + } + }, + { + "name": "onsubmit", + "description": { + "kind": "markdown", + "value": "A form is submitted." + } + }, + { + "name": "onsuspend", + "description": { + "kind": "markdown", + "value": "Media data loading has been suspended." + } + }, + { + "name": "ontimeupdate", + "description": { + "kind": "markdown", + "value": "The time indicated by the currentTime attribute has been updated." + } + }, + { + "name": "onvolumechange", + "description": { + "kind": "markdown", + "value": "The volume has changed." + } + }, + { + "name": "onwaiting", + "description": { + "kind": "markdown", + "value": "Playback has stopped because of a temporary lack of data." + } + }, + { + "name": "onpointercancel", + "description": { + "kind": "markdown", + "value": "The pointer is unlikely to produce any more events." + } + }, + { + "name": "onpointerdown", + "description": { + "kind": "markdown", + "value": "The pointer enters the active buttons state." + } + }, + { + "name": "onpointerenter", + "description": { + "kind": "markdown", + "value": "Pointing device is moved inside the hit-testing boundary." + } + }, + { + "name": "onpointerleave", + "description": { + "kind": "markdown", + "value": "Pointing device is moved out of the hit-testing boundary." + } + }, + { + "name": "onpointerlockchange", + "description": { + "kind": "markdown", + "value": "The pointer was locked or released." + } + }, + { + "name": "onpointerlockerror", + "description": { + "kind": "markdown", + "value": "It was impossible to lock the pointer for technical reasons or because the permission was denied." + } + }, + { + "name": "onpointermove", + "description": { + "kind": "markdown", + "value": "The pointer changed coordinates." + } + }, + { + "name": "onpointerout", + "description": { + "kind": "markdown", + "value": "The pointing device moved out of hit-testing boundary or leaves detectable hover range." + } + }, + { + "name": "onpointerover", + "description": { + "kind": "markdown", + "value": "The pointing device is moved into the hit-testing boundary." + } + }, + { + "name": "onpointerup", + "description": { + "kind": "markdown", + "value": "The pointer leaves the active buttons state." + } + }, + { + "name": "aria-activedescendant", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application)." + } + }, + { + "name": "aria-atomic", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-atomic" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute." + } + }, + { + "name": "aria-autocomplete", + "valueSet": "autocomplete", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made." + } + }, + { + "name": "aria-busy", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-busy" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user." + } + }, + { + "name": "aria-checked", + "valueSet": "tristate", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-checked" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected)." + } + }, + { + "name": "aria-colcount", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-colcount" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex)." + } + }, + { + "name": "aria-colindex", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-colindex" + } + ], + "description": { + "kind": "markdown", + "value": "Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)." + } + }, + { + "name": "aria-colspan", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-colspan" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)." + } + }, + { + "name": "aria-controls", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-controls" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns)." + } + }, + { + "name": "aria-current", + "valueSet": "current", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-current" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements." + } + }, + { + "name": "aria-describedby", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-describedby" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)." + } + }, + { + "name": "aria-disabled", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-disabled" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly)." + } + }, + { + "name": "aria-dropeffect", + "valueSet": "dropeffect", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect" + } + ], + "description": { + "kind": "markdown", + "value": "\\[Deprecated in ARIA 1.1\\] Indicates what functions can be performed when a dragged object is released on the drop target." + } + }, + { + "name": "aria-errormessage", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)." + } + }, + { + "name": "aria-expanded", + "valueSet": "u", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-expanded" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed." + } + }, + { + "name": "aria-flowto", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-flowto" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order." + } + }, + { + "name": "aria-grabbed", + "valueSet": "u", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed" + } + ], + "description": { + "kind": "markdown", + "value": "\\[Deprecated in ARIA 1.1\\] Indicates an element's \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation." + } + }, + { + "name": "aria-haspopup", + "valueSet": "haspopup", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)." + } + }, + { + "name": "aria-hidden", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-hidden" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)." + } + }, + { + "name": "aria-invalid", + "valueSet": "invalid", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-invalid" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage)." + } + }, + { + "name": "aria-label", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-label" + } + ], + "description": { + "kind": "markdown", + "value": "Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)." + } + }, + { + "name": "aria-labelledby", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)." + } + }, + { + "name": "aria-level", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-level" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure." + } + }, + { + "name": "aria-live", + "valueSet": "live", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-live" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region)." + } + }, + { + "name": "aria-modal", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-modal" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed." + } + }, + { + "name": "aria-multiline", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-multiline" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether a text box accepts multiple lines of input or only a single line." + } + }, + { + "name": "aria-multiselectable", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates that the user may select more than one item from the current selectable descendants." + } + }, + { + "name": "aria-orientation", + "valueSet": "orientation", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-orientation" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous." + } + }, + { + "name": "aria-owns", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-owns" + } + ], + "description": { + "kind": "markdown", + "value": "Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls)." + } + }, + { + "name": "aria-placeholder", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder" + } + ], + "description": { + "kind": "markdown", + "value": "Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format." + } + }, + { + "name": "aria-posinset", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-posinset" + } + ], + "description": { + "kind": "markdown", + "value": "Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize)." + } + }, + { + "name": "aria-pressed", + "valueSet": "tristate", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-pressed" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected)." + } + }, + { + "name": "aria-readonly", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-readonly" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)." + } + }, + { + "name": "aria-relevant", + "valueSet": "relevant", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-relevant" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic)." + } + }, + { + "name": "aria-required", + "valueSet": "b", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-required" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted." + } + }, + { + "name": "aria-roledescription", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription" + } + ], + "description": { + "kind": "markdown", + "value": "Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)." + } + }, + { + "name": "aria-rowcount", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex)." + } + }, + { + "name": "aria-rowindex", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex" + } + ], + "description": { + "kind": "markdown", + "value": "Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)." + } + }, + { + "name": "aria-rowspan", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)." + } + }, + { + "name": "aria-selected", + "valueSet": "u", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-selected" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed)." + } + }, + { + "name": "aria-setsize", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-setsize" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset)." + } + }, + { + "name": "aria-sort", + "valueSet": "sort", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-sort" + } + ], + "description": { + "kind": "markdown", + "value": "Indicates if items in a table or grid are sorted in ascending or descending order." + } + }, + { + "name": "aria-valuemax", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)." + } + }, + { + "name": "aria-valuemin", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)." + } + }, + { + "name": "aria-valuenow", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext)." + } + }, + { + "name": "aria-valuetext", + "references": [ + { + "name": "WAI-ARIA Reference", + "url": "https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext" + } + ], + "description": { + "kind": "markdown", + "value": "Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)." + } + }, + { + "name": "aria-details", + "description": { + "kind": "markdown", + "value": "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)." + } + }, + { + "name": "aria-keyshortcuts", + "description": { + "kind": "markdown", + "value": "Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element." + } + } + ], + "valueSets": [ + { + "name": "b", + "values": [ + { + "name": "true" + }, + { + "name": "false" + } + ] + }, + { + "name": "u", + "values": [ + { + "name": "true" + }, + { + "name": "false" + }, + { + "name": "undefined" + } + ] + }, + { + "name": "o", + "values": [ + { + "name": "on" + }, + { + "name": "off" + } + ] + }, + { + "name": "y", + "values": [ + { + "name": "yes" + }, + { + "name": "no" + } + ] + }, + { + "name": "w", + "values": [ + { + "name": "soft" + }, + { + "name": "hard" + } + ] + }, + { + "name": "d", + "values": [ + { + "name": "ltr" + }, + { + "name": "rtl" + }, + { + "name": "auto" + } + ] + }, + { + "name": "m", + "values": [ + { + "name": "get", + "description": { + "kind": "markdown", + "value": "Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters." + } + }, + { + "name": "post", + "description": { + "kind": "markdown", + "value": "Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server." + } + }, + { + "name": "dialog", + "description": { + "kind": "markdown", + "value": "Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted." + } + } + ] + }, + { + "name": "fm", + "values": [ + { + "name": "get" + }, + { + "name": "post" + } + ] + }, + { + "name": "s", + "values": [ + { + "name": "row" + }, + { + "name": "col" + }, + { + "name": "rowgroup" + }, + { + "name": "colgroup" + } + ] + }, + { + "name": "t", + "values": [ + { + "name": "hidden" + }, + { + "name": "text" + }, + { + "name": "search" + }, + { + "name": "tel" + }, + { + "name": "url" + }, + { + "name": "email" + }, + { + "name": "password" + }, + { + "name": "datetime" + }, + { + "name": "date" + }, + { + "name": "month" + }, + { + "name": "week" + }, + { + "name": "time" + }, + { + "name": "datetime-local" + }, + { + "name": "number" + }, + { + "name": "range" + }, + { + "name": "color" + }, + { + "name": "checkbox" + }, + { + "name": "radio" + }, + { + "name": "file" + }, + { + "name": "submit" + }, + { + "name": "image" + }, + { + "name": "reset" + }, + { + "name": "button" + } + ] + }, + { + "name": "im", + "values": [ + { + "name": "verbatim" + }, + { + "name": "latin" + }, + { + "name": "latin-name" + }, + { + "name": "latin-prose" + }, + { + "name": "full-width-latin" + }, + { + "name": "kana" + }, + { + "name": "kana-name" + }, + { + "name": "katakana" + }, + { + "name": "numeric" + }, + { + "name": "tel" + }, + { + "name": "email" + }, + { + "name": "url" + } + ] + }, + { + "name": "bt", + "values": [ + { + "name": "button" + }, + { + "name": "submit" + }, + { + "name": "reset" + }, + { + "name": "menu" + } + ] + }, + { + "name": "lt", + "values": [ + { + "name": "1" + }, + { + "name": "a" + }, + { + "name": "A" + }, + { + "name": "i" + }, + { + "name": "I" + } + ] + }, + { + "name": "mt", + "values": [ + { + "name": "context" + }, + { + "name": "toolbar" + } + ] + }, + { + "name": "mit", + "values": [ + { + "name": "command" + }, + { + "name": "checkbox" + }, + { + "name": "radio" + } + ] + }, + { + "name": "et", + "values": [ + { + "name": "application/x-www-form-urlencoded" + }, + { + "name": "multipart/form-data" + }, + { + "name": "text/plain" + } + ] + }, + { + "name": "tk", + "values": [ + { + "name": "subtitles" + }, + { + "name": "captions" + }, + { + "name": "descriptions" + }, + { + "name": "chapters" + }, + { + "name": "metadata" + } + ] + }, + { + "name": "pl", + "values": [ + { + "name": "none" + }, + { + "name": "metadata" + }, + { + "name": "auto" + } + ] + }, + { + "name": "sh", + "values": [ + { + "name": "circle" + }, + { + "name": "default" + }, + { + "name": "poly" + }, + { + "name": "rect" + } + ] + }, + { + "name": "xo", + "values": [ + { + "name": "anonymous" + }, + { + "name": "use-credentials" + } + ] + }, + { + "name": "target", + "values": [ + { + "name": "_self" + }, + { + "name": "_blank" + }, + { + "name": "_parent" + }, + { + "name": "_top" + } + ] + }, + { + "name": "sb", + "values": [ + { + "name": "allow-forms" + }, + { + "name": "allow-modals" + }, + { + "name": "allow-pointer-lock" + }, + { + "name": "allow-popups" + }, + { + "name": "allow-popups-to-escape-sandbox" + }, + { + "name": "allow-same-origin" + }, + { + "name": "allow-scripts" + }, + { + "name": "allow-top-navigation" + } + ] + }, + { + "name": "tristate", + "values": [ + { + "name": "true" + }, + { + "name": "false" + }, + { + "name": "mixed" + }, + { + "name": "undefined" + } + ] + }, + { + "name": "inputautocomplete", + "values": [ + { + "name": "additional-name" + }, + { + "name": "address-level1" + }, + { + "name": "address-level2" + }, + { + "name": "address-level3" + }, + { + "name": "address-level4" + }, + { + "name": "address-line1" + }, + { + "name": "address-line2" + }, + { + "name": "address-line3" + }, + { + "name": "bday" + }, + { + "name": "bday-year" + }, + { + "name": "bday-day" + }, + { + "name": "bday-month" + }, + { + "name": "billing" + }, + { + "name": "cc-additional-name" + }, + { + "name": "cc-csc" + }, + { + "name": "cc-exp" + }, + { + "name": "cc-exp-month" + }, + { + "name": "cc-exp-year" + }, + { + "name": "cc-family-name" + }, + { + "name": "cc-given-name" + }, + { + "name": "cc-name" + }, + { + "name": "cc-number" + }, + { + "name": "cc-type" + }, + { + "name": "country" + }, + { + "name": "country-name" + }, + { + "name": "current-password" + }, + { + "name": "email" + }, + { + "name": "family-name" + }, + { + "name": "fax" + }, + { + "name": "given-name" + }, + { + "name": "home" + }, + { + "name": "honorific-prefix" + }, + { + "name": "honorific-suffix" + }, + { + "name": "impp" + }, + { + "name": "language" + }, + { + "name": "mobile" + }, + { + "name": "name" + }, + { + "name": "new-password" + }, + { + "name": "nickname" + }, + { + "name": "off" + }, + { + "name": "on" + }, + { + "name": "organization" + }, + { + "name": "organization-title" + }, + { + "name": "pager" + }, + { + "name": "photo" + }, + { + "name": "postal-code" + }, + { + "name": "sex" + }, + { + "name": "shipping" + }, + { + "name": "street-address" + }, + { + "name": "tel-area-code" + }, + { + "name": "tel" + }, + { + "name": "tel-country-code" + }, + { + "name": "tel-extension" + }, + { + "name": "tel-local" + }, + { + "name": "tel-local-prefix" + }, + { + "name": "tel-local-suffix" + }, + { + "name": "tel-national" + }, + { + "name": "transaction-amount" + }, + { + "name": "transaction-currency" + }, + { + "name": "url" + }, + { + "name": "username" + }, + { + "name": "work" + } + ] + }, + { + "name": "autocomplete", + "values": [ + { + "name": "inline" + }, + { + "name": "list" + }, + { + "name": "both" + }, + { + "name": "none" + } + ] + }, + { + "name": "current", + "values": [ + { + "name": "page" + }, + { + "name": "step" + }, + { + "name": "location" + }, + { + "name": "date" + }, + { + "name": "time" + }, + { + "name": "true" + }, + { + "name": "false" + } + ] + }, + { + "name": "dropeffect", + "values": [ + { + "name": "copy" + }, + { + "name": "move" + }, + { + "name": "link" + }, + { + "name": "execute" + }, + { + "name": "popup" + }, + { + "name": "none" + } + ] + }, + { + "name": "invalid", + "values": [ + { + "name": "grammar" + }, + { + "name": "false" + }, + { + "name": "spelling" + }, + { + "name": "true" + } + ] + }, + { + "name": "live", + "values": [ + { + "name": "off" + }, + { + "name": "polite" + }, + { + "name": "assertive" + } + ] + }, + { + "name": "orientation", + "values": [ + { + "name": "vertical" + }, + { + "name": "horizontal" + }, + { + "name": "undefined" + } + ] + }, + { + "name": "relevant", + "values": [ + { + "name": "additions" + }, + { + "name": "removals" + }, + { + "name": "text" + }, + { + "name": "all" + }, + { + "name": "additions text" + } + ] + }, + { + "name": "sort", + "values": [ + { + "name": "ascending" + }, + { + "name": "descending" + }, + { + "name": "none" + }, + { + "name": "other" + } + ] + }, + { + "name": "roles", + "values": [ + { + "name": "alert" + }, + { + "name": "alertdialog" + }, + { + "name": "button" + }, + { + "name": "checkbox" + }, + { + "name": "dialog" + }, + { + "name": "gridcell" + }, + { + "name": "link" + }, + { + "name": "log" + }, + { + "name": "marquee" + }, + { + "name": "menuitem" + }, + { + "name": "menuitemcheckbox" + }, + { + "name": "menuitemradio" + }, + { + "name": "option" + }, + { + "name": "progressbar" + }, + { + "name": "radio" + }, + { + "name": "scrollbar" + }, + { + "name": "searchbox" + }, + { + "name": "slider" + }, + { + "name": "spinbutton" + }, + { + "name": "status" + }, + { + "name": "switch" + }, + { + "name": "tab" + }, + { + "name": "tabpanel" + }, + { + "name": "textbox" + }, + { + "name": "timer" + }, + { + "name": "tooltip" + }, + { + "name": "treeitem" + }, + { + "name": "combobox" + }, + { + "name": "grid" + }, + { + "name": "listbox" + }, + { + "name": "menu" + }, + { + "name": "menubar" + }, + { + "name": "radiogroup" + }, + { + "name": "tablist" + }, + { + "name": "tree" + }, + { + "name": "treegrid" + }, + { + "name": "application" + }, + { + "name": "article" + }, + { + "name": "cell" + }, + { + "name": "columnheader" + }, + { + "name": "definition" + }, + { + "name": "directory" + }, + { + "name": "document" + }, + { + "name": "feed" + }, + { + "name": "figure" + }, + { + "name": "group" + }, + { + "name": "heading" + }, + { + "name": "img" + }, + { + "name": "list" + }, + { + "name": "listitem" + }, + { + "name": "math" + }, + { + "name": "none" + }, + { + "name": "note" + }, + { + "name": "presentation" + }, + { + "name": "region" + }, + { + "name": "row" + }, + { + "name": "rowgroup" + }, + { + "name": "rowheader" + }, + { + "name": "separator" + }, + { + "name": "table" + }, + { + "name": "term" + }, + { + "name": "text" + }, + { + "name": "toolbar" + }, + { + "name": "banner" + }, + { + "name": "complementary" + }, + { + "name": "contentinfo" + }, + { + "name": "form" + }, + { + "name": "main" + }, + { + "name": "navigation" + }, + { + "name": "region" + }, + { + "name": "search" + }, + { + "name": "doc-abstract" + }, + { + "name": "doc-acknowledgments" + }, + { + "name": "doc-afterword" + }, + { + "name": "doc-appendix" + }, + { + "name": "doc-backlink" + }, + { + "name": "doc-biblioentry" + }, + { + "name": "doc-bibliography" + }, + { + "name": "doc-biblioref" + }, + { + "name": "doc-chapter" + }, + { + "name": "doc-colophon" + }, + { + "name": "doc-conclusion" + }, + { + "name": "doc-cover" + }, + { + "name": "doc-credit" + }, + { + "name": "doc-credits" + }, + { + "name": "doc-dedication" + }, + { + "name": "doc-endnote" + }, + { + "name": "doc-endnotes" + }, + { + "name": "doc-epigraph" + }, + { + "name": "doc-epilogue" + }, + { + "name": "doc-errata" + }, + { + "name": "doc-example" + }, + { + "name": "doc-footnote" + }, + { + "name": "doc-foreword" + }, + { + "name": "doc-glossary" + }, + { + "name": "doc-glossref" + }, + { + "name": "doc-index" + }, + { + "name": "doc-introduction" + }, + { + "name": "doc-noteref" + }, + { + "name": "doc-notice" + }, + { + "name": "doc-pagebreak" + }, + { + "name": "doc-pagelist" + }, + { + "name": "doc-part" + }, + { + "name": "doc-preface" + }, + { + "name": "doc-prologue" + }, + { + "name": "doc-pullquote" + }, + { + "name": "doc-qna" + }, + { + "name": "doc-subtitle" + }, + { + "name": "doc-tip" + }, + { + "name": "doc-toc" + } + ] + }, + { + "name": "metanames", + "values": [ + { + "name": "application-name" + }, + { + "name": "author" + }, + { + "name": "description" + }, + { + "name": "format-detection" + }, + { + "name": "generator" + }, + { + "name": "keywords" + }, + { + "name": "publisher" + }, + { + "name": "referrer" + }, + { + "name": "robots" + }, + { + "name": "theme-color" + }, + { + "name": "viewport" + } + ] + }, + { + "name": "haspopup", + "values": [ + { + "name": "false", + "description": { + "kind": "markdown", + "value": "(default) Indicates the element does not have a popup." + } + }, + { + "name": "true", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a menu." + } + }, + { + "name": "menu", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a menu." + } + }, + { + "name": "listbox", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a listbox." + } + }, + { + "name": "tree", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a tree." + } + }, + { + "name": "grid", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a grid." + } + }, + { + "name": "dialog", + "description": { + "kind": "markdown", + "value": "Indicates the popup is a dialog." + } + } + ] + }, + { + "name": "decoding", + "values": [ + { + "name": "sync" + }, + { + "name": "async" + }, + { + "name": "auto" + } + ] + }, + { + "name": "loading", + "values": [ + { + "name": "eager", + "description": { + "kind": "markdown", + "value": "Loads the image immediately, regardless of whether or not the image is currently within the visible viewport (this is the default value)." + } + }, + { + "name": "lazy", + "description": { + "kind": "markdown", + "value": "Defers loading the image until it reaches a calculated distance from the viewport, as defined by the browser. The intent is to avoid the network and storage bandwidth needed to handle the image until it's reasonably certain that it will be needed. This generally improves the performance of the content in most typical use cases." + } + } + ] + }, + { + "name": "referrerpolicy", + "values": [ + { + "name": "no-referrer" + }, + { + "name": "no-referrer-when-downgrade" + }, + { + "name": "origin" + }, + { + "name": "origin-when-cross-origin" + }, + { + "name": "same-origin" + }, + { + "name": "strict-origin" + }, + { + "name": "strict-origin-when-cross-origin" + }, + { + "name": "unsafe-url" + } + ] + } + ] +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class HTMLDataManager { + constructor(options) { + this.dataProviders = []; + this.setDataProviders(options.useDefaultDataProvider !== false, options.customDataProviders || []); + } + setDataProviders(builtIn, providers) { + this.dataProviders = []; + if (builtIn) { + this.dataProviders.push(new HTMLDataProvider('html5', htmlData)); + } + this.dataProviders.push(...providers); + } + getDataProviders() { + return this.dataProviders; + } + isVoidElement(e, voidElements) { + return !!e && binarySearch(voidElements, e.toLowerCase(), (s1, s2) => s1.localeCompare(s2)) >= 0; + } + getVoidElements(languageOrProviders) { + const dataProviders = Array.isArray(languageOrProviders) ? languageOrProviders : this.getDataProviders().filter(p => p.isApplicable(languageOrProviders)); + const voidTags = []; + dataProviders.forEach((provider) => { + provider.provideTags().filter(tag => tag.void).forEach(tag => voidTags.push(tag.name)); + }); + return voidTags.sort(); + } + isPathAttribute(tag, attr) { + // should eventually come from custom data + if (attr === 'src' || attr === 'href') { + return true; + } + const a = PATH_TAG_AND_ATTR[tag]; + if (a) { + if (typeof a === 'string') { + return a === attr; + } + else { + return a.indexOf(attr) !== -1; + } + } + return false; + } +} +// Selected from https://stackoverflow.com/a/2725168/1780148 +const PATH_TAG_AND_ATTR = { + // HTML 4 + a: 'href', + area: 'href', + body: 'background', + blockquote: 'cite', + del: 'cite', + form: 'action', + frame: ['src', 'longdesc'], + img: ['src', 'longdesc'], + ins: 'cite', + link: 'href', + object: 'data', + q: 'cite', + script: 'src', + // HTML 5 + audio: 'src', + button: 'formaction', + command: 'icon', + embed: 'src', + html: 'manifest', + input: ['src', 'formaction'], + source: 'src', + track: 'src', + video: ['src', 'poster'] +}; + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +const defaultLanguageServiceOptions = {}; +function getLanguageService(options = defaultLanguageServiceOptions) { + const dataManager = new HTMLDataManager(options); + const htmlHover = new HTMLHover(options, dataManager); + const htmlCompletion = new HTMLCompletion(options, dataManager); + const htmlParser = new HTMLParser(dataManager); + const htmlSelectionRange = new HTMLSelectionRange(htmlParser); + const htmlFolding = new HTMLFolding(dataManager); + const htmlDocumentLinks = new HTMLDocumentLinks(dataManager); + return { + setDataProviders: dataManager.setDataProviders.bind(dataManager), + createScanner, + parseHTMLDocument: htmlParser.parseDocument.bind(htmlParser), + doComplete: htmlCompletion.doComplete.bind(htmlCompletion), + doComplete2: htmlCompletion.doComplete2.bind(htmlCompletion), + setCompletionParticipants: htmlCompletion.setCompletionParticipants.bind(htmlCompletion), + doHover: htmlHover.doHover.bind(htmlHover), + format, + findDocumentHighlights, + findDocumentLinks: htmlDocumentLinks.findDocumentLinks.bind(htmlDocumentLinks), + findDocumentSymbols, + findDocumentSymbols2, + getFoldingRanges: htmlFolding.getFoldingRanges.bind(htmlFolding), + getSelectionRanges: htmlSelectionRange.getSelectionRanges.bind(htmlSelectionRange), + doQuoteComplete: htmlCompletion.doQuoteComplete.bind(htmlCompletion), + doTagComplete: htmlCompletion.doTagComplete.bind(htmlCompletion), + doRename, + findMatchingTagPosition, + findOnTypeRenameRanges: findLinkedEditingRanges, + findLinkedEditingRanges + }; +} +function newHTMLDataProvider(id, customData) { + return new HTMLDataProvider(id, customData); +} +function getDefaultHTMLDataProvider() { + return newHTMLDataProvider('default', htmlData); +} + +var htmlLanguageService = /*#__PURE__*/Object.freeze({ + __proto__: null, + get ClientCapabilities () { return ClientCapabilities; }, + get Color () { return Color; }, + get ColorInformation () { return ColorInformation; }, + get ColorPresentation () { return ColorPresentation; }, + get Command () { return Command; }, + get CompletionItem () { return CompletionItem; }, + get CompletionItemKind () { return CompletionItemKind; }, + get CompletionItemTag () { return CompletionItemTag; }, + get CompletionList () { return CompletionList; }, + get Diagnostic () { return Diagnostic; }, + get DocumentHighlight () { return DocumentHighlight; }, + get DocumentHighlightKind () { return DocumentHighlightKind; }, + get DocumentLink () { return DocumentLink; }, + get DocumentSymbol () { return DocumentSymbol; }, + get DocumentUri () { return DocumentUri; }, + get FileType () { return FileType; }, + get FoldingRange () { return FoldingRange; }, + get FoldingRangeKind () { return FoldingRangeKind; }, + get FormattingOptions () { return FormattingOptions; }, + get Hover () { return Hover; }, + get InsertReplaceEdit () { return InsertReplaceEdit; }, + get InsertTextFormat () { return InsertTextFormat; }, + get InsertTextMode () { return InsertTextMode; }, + get Location () { return Location; }, + get MarkedString () { return MarkedString; }, + get MarkupContent () { return MarkupContent; }, + get MarkupKind () { return MarkupKind; }, + get Position () { return Position; }, + get Range () { return Range$a; }, + get ScannerState () { return ScannerState; }, + get SelectionRange () { return SelectionRange; }, + get SymbolInformation () { return SymbolInformation; }, + get SymbolKind () { return SymbolKind$1; }, + get TextDocument () { return TextDocument$1; }, + get TextEdit () { return TextEdit; }, + get TokenType () { return TokenType; }, + get WorkspaceEdit () { return WorkspaceEdit; }, + getDefaultHTMLDataProvider: getDefaultHTMLDataProvider, + getLanguageService: getLanguageService, + newHTMLDataProvider: newHTMLDataProvider +}); + +var require$$5$1 = /*@__PURE__*/getAugmentedNamespace(htmlLanguageService); + +Object.defineProperty(volarServiceHtml, "__esModule", { value: true }); +volarServiceHtml.resolveReference = resolveReference; +volarServiceHtml.create = create$5; +const html$2 = require$$5$1; +const vscode_languageserver_textdocument_1 = require$$1$2; +const vscode_uri_1$4 = umdExports; +function resolveReference(ref, baseUri, workspaceFolders) { + if (ref.match(/^\w[\w\d+.-]*:/)) { + // starts with a schema + return ref; + } + if (ref[0] === '/') { // resolve absolute path against the current workspace folder + const folderUri = getRootFolder(); + if (folderUri) { + return folderUri + ref.substr(1); + } + } + const baseUriDir = baseUri.path.endsWith('/') ? baseUri : vscode_uri_1$4.Utils.dirname(baseUri); + return vscode_uri_1$4.Utils.resolvePath(baseUriDir, ref).toString(true); + function getRootFolder() { + for (const folder of workspaceFolders) { + let folderURI = folder.toString(); + if (!folderURI.endsWith('/')) { + folderURI = folderURI + '/'; + } + if (baseUri.toString().startsWith(folderURI)) { + return folderURI; + } + } + } +} +function create$5({ documentSelector = ['html'], configurationSections = { + autoCreateQuotes: 'html.autoCreateQuotes', + autoClosingTags: 'html.autoClosingTags', +}, useDefaultDataProvider = true, getDocumentContext = context => { + return { + resolveReference(ref, base) { + let baseUri = vscode_uri_1$4.URI.parse(base); + const decoded = context.decodeEmbeddedDocumentUri(baseUri); + if (decoded) { + baseUri = decoded[0]; + } + return resolveReference(ref, baseUri, context.env.workspaceFolders); + }, + }; +}, isFormattingEnabled = async (_document, context) => { + return await context.env.getConfiguration?.('html.format.enable') ?? true; +}, getFormattingOptions = async (_document, options, context) => { + const formatSettings = { + ...options, + endWithNewline: options.insertFinalNewline ? true : options.trimFinalNewlines ? false : undefined, + ...await context.env.getConfiguration?.('html.format'), + }; + // https://github.com/microsoft/vscode/blob/a8f73340be02966c3816a2f23cb7e446a3a7cb9b/extensions/html-language-features/server/src/modes/htmlMode.ts#L47-L51 + if (formatSettings.contentUnformatted) { + formatSettings.contentUnformatted = formatSettings.contentUnformatted + ',script'; + } + else { + formatSettings.contentUnformatted = 'script'; + } + return formatSettings; +}, getCompletionConfiguration = async (_document, context) => { + return await context.env.getConfiguration?.('html.completion'); +}, getHoverSettings = async (_document, context) => { + return await context.env.getConfiguration?.('html.hover'); +}, getCustomData = async (context) => { + const customData = await context.env.getConfiguration?.('html.customData') ?? []; + const newData = []; + for (const customDataPath of customData) { + for (const workspaceFolder of context.env.workspaceFolders) { + const uri = vscode_uri_1$4.Utils.resolvePath(workspaceFolder, customDataPath); + const json = await context.env.fs?.readFile?.(uri); + if (json) { + try { + const data = JSON.parse(json); + newData.push(html$2.newHTMLDataProvider(customDataPath, data)); + } + catch (error) { + console.error(error); + } + break; + } + } + } + return newData; +}, onDidChangeCustomData = (listener, context) => { + const disposable = context.env.onDidChangeConfiguration?.(listener); + return { + dispose() { + disposable?.dispose(); + }, + }; +}, } = {}) { + return { + name: 'html', + capabilities: { + completionProvider: { + // https://github.com/microsoft/vscode/blob/09850876e652688fb142e2e19fd00fd38c0bc4ba/extensions/html-language-features/server/src/htmlServer.ts#L183 + triggerCharacters: ['.', ':', '<', '"', '=', '/'], + }, + renameProvider: { + prepareProvider: true, + }, + hoverProvider: true, + documentHighlightProvider: true, + documentLinkProvider: {}, + documentSymbolProvider: true, + foldingRangeProvider: true, + selectionRangeProvider: true, + documentFormattingProvider: true, + linkedEditingRangeProvider: true, + autoInsertionProvider: { + triggerCharacters: ['=', '>', '/'], + configurationSections: [ + configurationSections.autoCreateQuotes, + configurationSections.autoClosingTags, + configurationSections.autoClosingTags, + ], + }, + }, + create(context) { + const htmlDocuments = new WeakMap(); + const fileSystemProvider = { + stat: async (uri) => await context.env.fs?.stat(vscode_uri_1$4.URI.parse(uri)) + ?? { type: html$2.FileType.Unknown, ctime: 0, mtime: 0, size: 0 }, + readDirectory: async (uri) => await context.env.fs?.readDirectory(vscode_uri_1$4.URI.parse(uri)) ?? [], + }; + const documentContext = getDocumentContext(context); + const htmlLs = html$2.getLanguageService({ + fileSystemProvider, + clientCapabilities: context.env.clientCapabilities, + useDefaultDataProvider, + }); + const disposable = onDidChangeCustomData(() => initializing = undefined, context); + let initializing; + return { + dispose() { + disposable.dispose(); + }, + provide: { + 'html/htmlDocument': document => { + if (matchDocument(documentSelector, document)) { + return getHtmlDocument(document); + } + }, + 'html/languageService': () => htmlLs, + 'html/documentContext': () => documentContext, + }, + async provideCompletionItems(document, position) { + return worker(document, async (htmlDocument) => { + const configs = await getCompletionConfiguration(document, context); + return htmlLs.doComplete2(document, position, htmlDocument, documentContext, configs); + }); + }, + provideRenameRange(document, position) { + return worker(document, htmlDocument => { + const offset = document.offsetAt(position); + return htmlLs + .findDocumentHighlights(document, position, htmlDocument) + ?.find(h => offset >= document.offsetAt(h.range.start) && offset <= document.offsetAt(h.range.end)) + ?.range; + }); + }, + provideRenameEdits(document, position, newName) { + return worker(document, htmlDocument => { + return htmlLs.doRename(document, position, newName, htmlDocument); + }); + }, + async provideHover(document, position) { + return worker(document, async (htmlDocument) => { + const hoverSettings = await getHoverSettings(document, context); + return htmlLs.doHover(document, position, htmlDocument, hoverSettings); + }); + }, + provideDocumentHighlights(document, position) { + return worker(document, htmlDocument => { + return htmlLs.findDocumentHighlights(document, position, htmlDocument); + }); + }, + provideDocumentLinks(document) { + return worker(document, () => { + return htmlLs.findDocumentLinks(document, documentContext); + }); + }, + provideDocumentSymbols(document) { + return worker(document, htmlDocument => { + return htmlLs.findDocumentSymbols2(document, htmlDocument); + }); + }, + provideFoldingRanges(document) { + return worker(document, () => { + return htmlLs.getFoldingRanges(document, context.env.clientCapabilities?.textDocument?.foldingRange); + }); + }, + provideSelectionRanges(document, positions) { + return worker(document, () => { + return htmlLs.getSelectionRanges(document, positions); + }); + }, + async provideDocumentFormattingEdits(document, formatRange, options, codeOptions) { + return worker(document, async () => { + if (!await isFormattingEnabled(document, context)) { + return; + } + // https://github.com/microsoft/vscode/blob/dce493cb6e36346ef2714e82c42ce14fc461b15c/extensions/html-language-features/server/src/modes/formatting.ts#L13-L23 + const endPos = formatRange.end; + let endOffset = document.offsetAt(endPos); + const content = document.getText(); + if (endPos.character === 0 && endPos.line > 0 && endOffset !== content.length) { + // if selection ends after a new line, exclude that new line + const prevLineStart = document.offsetAt({ line: endPos.line - 1, character: 0 }); + while (isEOL(content, endOffset - 1) && endOffset > prevLineStart) { + endOffset--; + } + formatRange = { + start: formatRange.start, + end: document.positionAt(endOffset), + }; + } + const formatSettings = await getFormattingOptions(document, options, context); + let formatDocument = document; + let prefixes = []; + let suffixes = []; + if (codeOptions?.initialIndentLevel) { + for (let i = 0; i < codeOptions.initialIndentLevel; i++) { + if (i === codeOptions.initialIndentLevel - 1) { + prefixes.push('<template>'); + suffixes.unshift('</template>'); + } + else { + prefixes.push('<template>\n'); + suffixes.unshift('\n</template>'); + } + } + formatDocument = vscode_languageserver_textdocument_1.TextDocument.create(document.uri, document.languageId, document.version, prefixes.join('') + document.getText() + suffixes.join('')); + formatRange = { + start: formatDocument.positionAt(0), + end: formatDocument.positionAt(formatDocument.getText().length), + }; + } + let edits = htmlLs.format(formatDocument, formatRange, formatSettings); + if (codeOptions) { + let newText = vscode_languageserver_textdocument_1.TextDocument.applyEdits(formatDocument, edits); + for (const prefix of prefixes) { + newText = newText.trimStart().slice(prefix.trim().length); + } + for (const suffix of suffixes.reverse()) { + newText = newText.trimEnd().slice(0, -suffix.trim().length); + } + if (!codeOptions.initialIndentLevel && codeOptions.level > 0) { + newText = ensureNewLines(newText); + } + edits = [{ + range: { + start: document.positionAt(0), + end: document.positionAt(document.getText().length), + }, + newText, + }]; + } + return edits; + function ensureNewLines(newText) { + const verifyDocument = vscode_languageserver_textdocument_1.TextDocument.create(document.uri, document.languageId, document.version, '<template>' + newText + '</template>'); + const verifyEdits = htmlLs.format(verifyDocument, undefined, formatSettings); + let verifyText = vscode_languageserver_textdocument_1.TextDocument.applyEdits(verifyDocument, verifyEdits); + verifyText = verifyText.trim().slice('<template>'.length, -'</template>'.length); + if (startWithNewLine(verifyText) !== startWithNewLine(newText)) { + if (startWithNewLine(verifyText)) { + newText = '\n' + newText; + } + else if (newText.startsWith('\n')) { + newText = newText.slice(1); + } + else if (newText.startsWith('\r\n')) { + newText = newText.slice(2); + } + } + if (endWithNewLine(verifyText) !== endWithNewLine(newText)) { + if (endWithNewLine(verifyText)) { + newText = newText + '\n'; + } + else if (newText.endsWith('\n')) { + newText = newText.slice(0, -1); + } + else if (newText.endsWith('\r\n')) { + newText = newText.slice(0, -2); + } + } + return newText; + } + function startWithNewLine(text) { + return text.startsWith('\n') || text.startsWith('\r\n'); + } + function endWithNewLine(text) { + return text.endsWith('\n') || text.endsWith('\r\n'); + } + }); + }, + provideLinkedEditingRanges(document, position) { + return worker(document, htmlDocument => { + const ranges = htmlLs.findLinkedEditingRanges(document, position, htmlDocument); + if (!ranges) { + return; + } + return { ranges }; + }); + }, + async provideAutoInsertSnippet(document, selection, change) { + // selection must at end of change + if (document.offsetAt(selection) !== change.rangeOffset + change.text.length) { + return; + } + return worker(document, async (htmlDocument) => { + if (change.rangeLength === 0 && change.text.endsWith('=')) { + const enabled = await context.env.getConfiguration?.(configurationSections.autoCreateQuotes) ?? true; + if (enabled) { + const completionConfiguration = await getCompletionConfiguration(document, context); + const text = htmlLs.doQuoteComplete(document, selection, htmlDocument, completionConfiguration); + if (text) { + return text; + } + } + } + if (change.rangeLength === 0 && (change.text.endsWith('>') || change.text.endsWith('/'))) { + const enabled = await context.env.getConfiguration?.(configurationSections.autoClosingTags) ?? true; + if (enabled) { + const text = htmlLs.doTagComplete(document, selection, htmlDocument); + if (text) { + return text; + } + } + } + }); + }, + }; + function getHtmlDocument(document) { + const cache = htmlDocuments.get(document); + if (cache) { + const [cacheVersion, cacheDoc] = cache; + if (cacheVersion === document.version) { + return cacheDoc; + } + } + const doc = htmlLs.parseHTMLDocument(document); + htmlDocuments.set(document, [document.version, doc]); + return doc; + } + async function worker(document, callback) { + if (!matchDocument(documentSelector, document)) { + return; + } + const htmlDocument = getHtmlDocument(document); + if (!htmlDocument) { + return; + } + await (initializing ??= initialize()); + return callback(htmlDocument); + } + async function initialize() { + const customData = await getCustomData(context); + htmlLs.setDataProviders(useDefaultDataProvider, customData); + } + }, + }; +} +function isEOL(content, offset) { + return isNewlineCharacter(content.charCodeAt(offset)); +} +const CR = '\r'.charCodeAt(0); +const NL = '\n'.charCodeAt(0); +function isNewlineCharacter(charCode) { + return charCode === CR || charCode === NL; +} +function matchDocument(selector, document) { + for (const sel of selector) { + if (sel === document.languageId || (typeof sel === 'object' && sel.language === document.languageId)) { + return true; + } + } + return false; +} + +var data = {}; + +const version$t = 1.1; +const tags$j = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\n**単一の**要素またはコンポーネントにアニメーションのトランジション効果を提供します。\n\n- **props**\n\n ```ts\n interface TransitionProps {\n /**\n * トランジションの CSS クラス名を自動生成するために使用します。\n * 例: `name: 'fade'` は `.fade-enter` や `.fade-enter-active`\n * などに自動展開されます。\n */\n name?: string\n /**\n * CSS のトランジションクラスを適用するかどうか。\n * デフォルト: true\n */\n css?: boolean\n /**\n * トランジション終了タイミングを決定するために待機する、\n * トランジションイベントの種類を指定します。\n * デフォルトの動作は、持続時間がより長い方のタイプを\n * 自動検出します。\n */\n type?: 'transition' | 'animation'\n /**\n * トランジションの持続時間を明示的に指定します。\n * デフォルトの動作は、ルートトランジション要素の最初の\n * `transitionend` または `animationend` イベントを待ちます。\n */\n duration?: number | { enter: number; leave: number }\n /**\n * leaving/entering トランジションのタイミングシーケンスを制御。\n * デフォルトの動作は同時です。\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * 初回レンダリング時にトランジションを適用するかどうか。\n * デフォルト: false\n */\n appear?: boolean\n\n /**\n * トランジションクラスをカスタマイズするための props。\n * テンプレートでは kebab-case を使用(例: enter-from-class=\"xxx\")\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **イベント**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled`(`v-show` のみ)\n - `@appear-cancelled`\n\n- **例**\n\n シンプルな要素:\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n `key` 属性を変更することで強制的にトランジションさせる:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n トランジションモードと出現時のアニメーションを備えている動的コンポーネント:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n トランジションイベントを購読する:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **参照** [ガイド - Transition](https://ja.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nリスト内の**複数**の要素またはコンポーネントにトランジション効果を提供します。\n\n- **props**\n\n `<TransitionGroup>` は `<Transition>` と同じ props(`mode` 以外)と追加の 2 つの props を受け取ります:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * 未定義の場合はフラグメントとしてレンダリングされます。\n */\n tag?: string\n /**\n * 移動のトランジション中に適用される CSS クラスのカスタマイズ。\n * テンプレートでは kebab-case を使用(例: move-class=\"xxx\")\n */\n moveClass?: string\n }\n ```\n\n- **イベント**\n\n `<TransitionGroup>` は `<Transition>` と同じイベントを発行します。\n\n- **詳細**\n\n デフォルトでは、`<TransitionGroup>` はラッパー DOM 要素をレンダリングしませんが、 `tag` props によって定義できます。\n\n アニメーションが正しく動作するためには、`<transition-group>` 内のすべての子に[**一意なキーを指定**](https://ja.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)する必要があることに注意してください。\n\n `<TransitionGroup>` は CSS の transform による移動トランジションに対応しています。更新後に画面上の子の位置が変化した場合、移動用の CSS クラス(`name` 属性から自動生成されるか、`move-class` props で設定)が適用されます。移動用のクラスが適用されたときに、CSS の `transform` プロパティが「トランジション可能」であれば、その要素は [FLIP テクニック](https://aerotwist.com/blog/flip-your-animations/)を使って移動先までスムーズにアニメーションします。\n\n- **例**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **参照** [ガイド - TransitionGroup](https://ja.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\n動的に切り替えられる、内側のコンポーネントをキャッシュします。\n\n- **props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * 指定された場合、`include` でマッチした名前の\n * コンポーネントのみがキャッシュされます。\n */\n include?: MatchPattern\n /**\n * `exclude` でマッチした名前のコンポーネントは\n * キャッシュされません。\n */\n exclude?: MatchPattern\n /**\n * キャッシュするコンポーネントインスタンスの最大数。\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **詳細**\n\n 動的コンポーネントをラップすると、`<KeepAlive>` は非アクティブなコンポーネントインスタンスを破棄せずにキャッシュします。\n\n `<KeepAlive>` の直接の子として、アクティブなコンポーネントのインスタンスは常に 1 つだけです。\n\n `<KeepAlive>` の内部でコンポーネントが切り替えられると、その `activated` と `deactivated` ライフサイクルフックが呼び出されます(`mounted` と `unmounted` は呼び出されず、その代わりとして提供されています)。これは `<KeepAlive>` の直接の子だけでなく、そのすべての子孫にも適用されます。\n\n- **例**\n\n 基本的な使い方:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n `v-if` / `v-else` の分岐を使用する場合、一度にレンダリングされるコンポーネントは 1 つだけである必要があります:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n `<Transition>` と共に使用:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n `include` / `exclude` の使用:\n\n ```html\n <!-- カンマ区切りの文字列 -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 正規表現(`v-bind` を使用) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 配列(`v-bind` を使用) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n `max` の使用:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **参照** [ガイド - KeepAlive](https://ja.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nスロットの内容を DOM の別の場所にレンダリングします。\n\n- **props**\n\n ```ts\n interface TeleportProps {\n /**\n * 必須。ターゲットコンテナーを指定します。\n * セレクターまたは実際の要素のいずれかを指定できます。\n */\n to: string | HTMLElement\n /**\n * `true` の場合、コンテンツはターゲットコンテナーに\n * 移動せずに元の場所に残ります。\n * 動的に変更できます。\n */\n disabled?: boolean\n }\n ```\n\n- **例**\n\n ターゲットコンテナーの指定:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n 条件によって無効化:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **参照** [ガイド - Teleport](https://ja.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nコンポーネントツリー内のネストした非同期な依存関係を管理するために使用します。\n\n- **props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **イベント**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **詳細**\n\n `<Suspense>` は `#default` スロットと `#fallback` スロットの 2 つのスロットを受け付けます。default スロットをメモリー内にレンダリングする間、fallback スロットの内容を表示します。\n\n デフォルトスロットのレンダリング中に非同期な依存関係([非同期コンポーネント](https://ja.vuejs.org/guide/components/async.html)や [`async setup()`](https://ja.vuejs.org/guide/built-ins/suspense.html#async-setup) のコンポーネント)が発生すると、それらが全て解決するまで待ってからデフォルトスロットを表示します。\n\n Suspense を `suspensible` に設定することで、すべての非同期依存処理は親の Suspense によって処理されます。[実装の詳細](https://github.com/vuejs/core/pull/6736) を参照してください。\n\n- **参照** [ガイド - Suspense](https://ja.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n動的コンポーネントや動的な要素をレンダリングするための「メタ・コンポーネント」です。\n\n- **props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **詳細**\n\n 実際にレンダリングするコンポーネントは `is` props によって決定されます。\n\n - `is` が文字列の場合、HTML タグ名か、コンポーネントの登録名となります。\n\n - また、`is` はコンポーネントの定義に直接バインドもできます。\n\n- **例**\n\n 登録名によるコンポーネントのレンダリング(Options API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n 定義によるコンポーネントのレンダリング(`<script setup>` の Composition API):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n HTML 要素のレンダリング:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n [ビルトインのコンポーネント](./built-in-components)はすべて `is` に渡すことができますが、名前で渡したい場合は登録しなければなりません。例えば:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n 例えば `<script setup>` などで、コンポーネント名ではなく、コンポーネント自体を `is` に渡す場合は、登録は必要ありません。\n\n もし `v-model` が `<component>` タグで使用された場合、テンプレートコンパイラーは他のコンポーネントと同じように、`modelValue` props と `update:modelValue` イベントリスナーに展開されます。しかし、これは `<input>` や `<select>` のようなネイティブ HTML 要素とは互換性がありません。そのため、動的に生成されるネイティブ要素に対して `v-model` を使用しても動作しません:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- 'input' はネイティブ HTML 要素なので、動作しません -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n 実際のアプリケーションでは、ネイティブのフォームフィールドはコンポーネントでラップされるのが一般的なので、このようなエッジケースはあまりありません。もし、ネイティブ要素を直接使用する必要がある場合は、 `v-model` を属性とイベントに手動で分割できます。\n\n- **参照** [動的コンポーネント](https://ja.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nテンプレート内でスロットコンテンツのアウトレットを表します。\n\n- **props**\n\n ```ts\n interface SlotProps {\n /**\n * <slot> に渡されたすべての props は、スコープ付き\n * スロットの引数として渡されます\n */\n [key: string]: any\n /**\n * スロット名を指定するために予約済み。\n */\n name?: string\n }\n ```\n\n- **詳細**\n\n `<slot>` 要素では `name` 属性を使用してスロット名を指定できます。`name` が指定されない場合は、デフォルトのスロットがレンダリングされます。slot 要素に渡された追加の属性は、親で定義されたスコープ付きスロットにスロット props として渡されます。\n\n この要素そのものは、一致したスロットの内容に置き換えられます。\n\n Vue テンプレートの `<slot>` 要素は JavaScript にコンパイルされているので、[ネイティブの `<slot>` 要素](https://developer.mozilla.org/ja/docs/Web/HTML/Element/slot)と混同しないように注意してください。\n\n- **参照** [コンポーネント - スロット](https://ja.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nDOM に要素をレンダリングせずに組み込みディレクティブを使用したい場合、`<template>` タグをプレースホルダーとして使用します。\n\n- **詳細**\n\n `<template>` の特別な処理は、以下のディレクティブと一緒に使われた場合のみ発生します:\n\n - `v-if`、`v-else-if`、または `v-else`\n - `v-for`\n - `v-slot`\n\n これらのディレクティブが存在しない場合は、代わりに[ネイティブの `<template>` 要素](https://developer.mozilla.org/ja/docs/Web/HTML/Element/template)としてレンダリングされます。\n\n `v-for` を持つ `<template>` は [`key` 属性](https://ja.vuejs.org/api/built-in-special-attributes.html#key)を持たせることができます。それ以外の属性やディレクティブは、対応する要素がなければ意味をなさないので、すべて破棄されます。\n\n 単一ファイルコンポーネントは、テンプレート全体をラップするために[トップレベルの `<template>` タグ](https://ja.vuejs.org/api/sfc-spec.html#language-blocks)を使用します。この使い方は、上記で説明した `<template>` の使い方とは別のものです。このトップレベルタグはテンプレート自体の一部ではなく、ディレクティブのようなテンプレートの構文もサポートしていません。\n\n- **参照**\n - [ガイド - `<template>` に `v-if` を適用する](https://ja.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [ガイド - `<template>` に `v-for` を適用する](https://ja.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [ガイド - 名前付きスロット](https://ja.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$t = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\n要素のテキスト内容を更新します。\n\n- **期待する値:** `string`\n\n- **詳細**\n\n `v-text` は要素の [textContent](https://developer.mozilla.org/ja/docs/Web/API/Node/textContent) プロパティをセットする動作なので、要素内の既存のコンテンツはすべて上書きされます。`textContent` の一部を更新する必要がある場合は、代わりに[マスタッシュ展開](https://ja.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)を使用します。\n\n- **例**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **参照** [テンプレート構文 - テキスト展開](https://ja.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\n要素の [innerHTML](https://developer.mozilla.org/ja/docs/Web/API/Element/innerHTML) を更新します。\n\n- **期待する値:** `string`\n\n- **詳細**\n\n `v-html` の内容は、プレーンな HTML として挿入されます - Vue テンプレートの構文は処理されません。もし、`v-html` を使ってテンプレートを構成しようとしているのであれば、代わりにコンポーネントを使うなどして解決策を見直してみてください。\n\n ::: warning セキュリティーに関する注意\n ウェブサイト上で任意の HTML を動的にレンダリングすることは、[XSS 攻撃](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0)につながりやすいため、非常に危険です。信頼できるコンテンツにのみ `v-html` を使用し、ユーザーが提供するコンテンツには**絶対に**使用しないでください。\n :::\n\n [単一ファイルコンポーネント](https://ja.vuejs.org/guide/scaling-up/sfc.html)では、`scoped` スタイルは `v-html` 内のコンテンツには適用されません。これは、その HTML が Vue のテンプレートコンパイラーによって処理されないからです。もし `v-html` のコンテンツにスコープ付き CSS を適用したい場合は、代わりに [CSS modules](./sfc-css-features#css-modules) を使ったり、BEM などの手動スコープ戦略を持つ追加のグローバル `<style>` 要素を使用可能です。\n\n- **例**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **参照** [テンプレート構文 - 生の HTML](https://ja.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\n式の値の真偽に基づいて、要素の可視性を切り替えます。\n\n- **期待する値:** `any`\n\n- **詳細**\n\n `v-show` はインラインスタイルで `display` CSS プロパティをセットする動作で、要素が表示されている場合は `display` の初期値を尊重しようとします。また、その状態が変化したときにトランジションを引き起こします。\n\n- **参照** [条件付きレンダリング - v-show](https://ja.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\n式の値の真偽に基づいて、要素またはテンプレートフラグメントを条件付きでレンダリングします。\n\n- **期待する値:** `any`\n\n- **詳細**\n\n `v-if` 要素がトグルされると、要素とそれに含まれるディレクティブ/コンポーネントは破棄され、再構築されます。初期条件が falsy な場合、内部のコンテンツは全くレンダリングされません。\n\n `<template>` に使用すると、テキストのみ、または複数の要素を含む条件ブロックを表すことができます。\n\n このディレクティブは、条件が変化したときにトランジションをトリガーします。\n\n 一緒に使用した場合、 `v-if` は `v-for` よりも高い優先度を持ちます。この 2 つのディレクティブを 1 つの要素で同時に使うことはお勧めしません。詳しくは [リストレンダリングガイド](https://ja.vuejs.org/guide/essentials/list.html#v-for-with-v-if) を参照してください。\n\n- **参照** [条件付きレンダリング - v-if](https://ja.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`v-if` または `v-if` / `v-else-if` チェーンの「else ブロック」を表します。\n\n- **式を受け取りません**\n\n- **詳細**\n\n - 制限: 直前の兄弟要素には `v-if` または `v-else-if` が必要です。\n\n - `<template>` に使用すると、テキストのみ、または複数の要素を含む条件ブロックを表すことができます。\n\n- **例**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **参照** [条件付きレンダリング - v-else](https://ja.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\n`v-if` の「else if ブロック」を表します。連鎖させることができます。\n\n- **期待する値:** `any`\n\n- **詳細**\n\n - 制限: 直前の兄弟要素には `v-if` または `v-else-if` が必要です。\n\n - `<template>` に使用すると、テキストのみ、または複数の要素を含む条件ブロックを表すことができます。\n\n- **例**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **参照** [条件付きレンダリング - v-else-if](https://ja.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\n元となるデータに基づいて、要素またはテンプレートブロックを複数回レンダリングします。\n\n- **期待する値:** `Array | Object | number | string | Iterable`\n\n- **詳細**\n\n ディレクティブの値は、反復処理されている現在の要素のエイリアスを提供するために、特別な構文 `エイリアス in 式` を使用する必要があります:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n または、インデックス(Object で使用する場合はキー)のエイリアスも指定できます:\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n `v-for` のデフォルトの動作は、要素を移動することなく、その場でパッチを適用しようとします。強制的に要素を並べ替えるには、特別な属性 `key` で順番のヒントを指定する必要があります:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n また、`v-for` はネイティブの `Map` や `Set` を含む、[反復処理プロトコル](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol)を実装した値に対しても動作させることができます。\n\n- **参照**\n - [リストレンダリング](https://ja.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\n要素にイベントリスナーを追加します。\n\n- **省略記法:** `@`\n\n- **期待する値:** `Function | Inline Statement | Object (without argument)`\n\n- **引数:** `event`(オブジェクト構文を使用する場合は省略可能)\n\n- **修飾子**\n\n - `.stop` - `event.stopPropagation()` を呼び出します。\n - `.prevent` - `event.preventDefault()` を呼び出します。\n - `.capture` - キャプチャーモードでイベントリスナーを追加します。\n - `.self` - イベントがこの要素からディスパッチされた場合にのみハンドラーをトリガーします。\n - `.{keyAlias}` - 特定のキーでのみハンドラーをトリガーします。\n - `.once` - 一度だけハンドラーをトリガーします。\n - `.left` - 左ボタンのマウスイベントに対してのみ、ハンドラーをトリガーします。\n - `.right` - 右ボタンのマウスイベントに対してのみ、ハンドラーをトリガーします。\n - `.middle` - 中央ボタンのマウスイベントに対してのみ、ハンドラーをトリガーします。\n - `.passive` - DOM イベントを `{ passive: true }` で追加します。\n\n- **詳細**\n\n イベントの種類は引数で示されます。式はメソッド名かインラインステートメントで、修飾子が存在する場合は省略可能です。\n\n 通常の要素で使用する場合、[**ネイティブ DOM イベント**](https://developer.mozilla.org/ja/docs/Web/Events)のみを購読します。カスタム要素コンポーネントで使用された場合、その子コンポーネントで発行された**カスタムイベント**を購読します。\n\n ネイティブ DOM イベントを購読する場合、このメソッドは唯一の引数としてネイティブイベントを受け取ります。インラインステートメントを使用する場合、ステートメントは特別な `$event` プロパティにアクセスできます: `v-on:click=\"handle('ok', $event)\"`\n\n `v-on` は引数なしで、イベントとリスナーのペアのオブジェクトにバインドすることもサポートしています。オブジェクト構文を使用する場合、修飾子をサポートしないことに注意してください。\n\n- **例**\n\n ```html\n <!-- メソッドハンドラー -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- 動的イベント -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- インラインステートメント -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- 省略記法 -->\n <button @click=\"doThis\"></button>\n\n <!-- 動的イベントの省略記法 -->\n <button @[event]=\"doThis\"></button>\n\n <!-- stop propagation -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- prevent default -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- 式なしで prevent default -->\n <form @submit.prevent></form>\n\n <!-- 修飾子の連鎖 -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- キーのエイリアスを用いたキー修飾子 -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- 一度だけトリガーされるクリックイベント -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- オブジェクト構文 -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n 子コンポーネントのカスタムイベントを購読する(子コンポーネントで \"my-event\" が発行されたときにハンドラーが呼び出される):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- インラインステートメント -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **参照**\n - [イベントハンドリング](https://ja.vuejs.org/guide/essentials/event-handling.html)\n - [コンポーネント - カスタムイベント](https://ja.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\n1 つ以上の属性やコンポーネントの props を式に動的にバインドします。\n\n- **省略記法:**\n - `:` or `.`(`.prop` 修飾子使用時)\n - 値の省略(属性とバインドされた値が同じ名前の場合)<sup class=\"vt-badge\">3.4+</sup>\n\n- **期待する値:** `any(引数ありの場合)| Object(引数なしの場合)`\n\n- **引数:** `attrOrProp(省略可能)`\n\n- **修飾子**\n\n - `.camel` - kebab-case の属性名を camelCase に変換します。\n - `.prop` - バインディングを DOM プロパティとして設定するよう強制します。<sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - バインディングを DOM 属性として設定するよう強制します。<sup class=\"vt-badge\">3.2+</sup>\n\n- **使用法**\n\n `class` や `style` 属性をバインドする際に使用する `v-bind` は、Array や Object などの追加の値の型をサポートします。詳しくは、以下のリンク先のガイドを参照してください。\n\n 要素にバインディングを設定するとき、Vue はデフォルトで、`in` 演算子チェックを使用して、プロパティとして定義されたキーが要素にあるかどうかを確認します。プロパティが定義されている場合、Vue はその値を属性ではなく DOM プロパティとして設定します。これはほとんどの場合において有効ですが、`.prop` や `.attr` という修飾子を明示的に使用することでこの動作をオーバーライドできます。これは、特に[カスタム要素を扱う](https://ja.vuejs.org/guide/extras/web-components.html#passing-dom-properties)ときに必要になることがあります。\n\n コンポーネントの props をバインドするために使用する場合、その props は子コンポーネントで適切に宣言されている必要があります。\n\n 引数なしで使用する場合、属性の名前と値のペアを含むオブジェクトをバインドするために使用できます。\n\n- **例**\n\n ```html\n <!-- 属性をバインドする -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- 動的な属性名 -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- 省略記法 -->\n <img :src=\"imageSrc\" />\n\n <!-- 同名省略記法(3.4+), :src=\"src\" のように展開する -->\n <img :src />\n\n <!-- 動的な属性名の省略記法 -->\n <button :[key]=\"value\"></button>\n\n <!-- インラインの文字列連結 -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- クラスのバインド -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- スタイルのバインド -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- 属性のオブジェクトをバインド -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- props のバインド。\"prop\" は子コンポーネントで宣言する必要があります。 -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- 親の props を子コンポーネントと共有するために渡す -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n `.prop` 修飾子には、専用の短縮形 `.` もあります:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- 以下と同じ -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n `.camel` 修飾子は、DOM 内テンプレートを使用する際に、 `v-bind` 属性名をキャメル化できます(例: SVG の `viewBox` 属性):\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n 文字列テンプレートを使用する場合や、ビルドステップでテンプレートを事前コンパイルする場合は、`.camel` は必要ありません。\n\n- **参照**\n - [クラスとスタイルのバインディング](https://ja.vuejs.org/guide/essentials/class-and-style.html)\n - [コンポーネント - props 渡しの詳細](https://ja.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nフォーム入力要素またはコンポーネントに双方向バインディングを作成します。\n\n- **期待する値:** フォームの入力要素の値や構成要素の出力によって異なります\n\n- **以下に限定:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - コンポーネント\n\n- **修飾子**\n\n - [`.lazy`](https://ja.vuejs.org/guide/essentials/forms.html#lazy) - `input` の代わりに `change` イベントを購読する\n - [`.number`](https://ja.vuejs.org/guide/essentials/forms.html#number) - 有効な入力文字列を数値に変換する\n - [`.trim`](https://ja.vuejs.org/guide/essentials/forms.html#trim) - 入力をトリムする\n\n- **参照**\n\n - [フォーム入力バインディング](https://ja.vuejs.org/guide/essentials/forms.html)\n - [コンポーネントのイベント - `v-model` での使用](https://ja.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nprops の受け取りを期待する名前付きスロットまたはスコープ付きスロットを表します。\n\n- **省略記法:** `#`\n\n- **期待する値:** 関数の引数の位置で有効な JavaScript 式(分割代入のサポートを含む)。省略可能 - props がスロットに渡されることを期待している場合のみ必要です。\n\n- **引数:** スロット名(省略可能で、デフォルトは `default`)\n\n- **以下に限定:**\n\n - `<template>`\n - [コンポーネント](https://ja.vuejs.org/guide/components/slots.html#scoped-slots)(props のある単独のデフォルトスロット用)\n\n- **例**\n\n ```html\n <!-- 名前付きスロット -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- props を受け取る名前付きスロット -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- props を受け取るデフォルトスロット、分割代入あり -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **参照**\n - [コンポーネント - スロット](https://ja.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nこの要素とすべての子要素のコンパイルをスキップします。\n\n- **式を受け取りません**\n\n- **詳細**\n\n `v-pre` を指定した要素の内部では、Vue テンプレートの構文はすべて維持され、そのままレンダリングされます。この最も一般的な使用例は、未加工のマスタッシュタグを表示することです。\n\n- **例**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\n要素やコンポーネントを一度だけレンダリングし、その後の更新はスキップします。\n\n- **式を受け取りません**\n\n- **詳細**\n\n その後の再レンダリングでは、要素/コンポーネントとそのすべての子要素は静的コンテンツとして扱われ、スキップされます。これは、更新のパフォーマンスを最適化するために使用できます。\n\n ```html\n <!-- 単一要素 -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- 子要素を持つ要素 -->\n <div v-once>\n <h1>Comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- コンポーネント -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- `v-for` ディレクティブ -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n 3.2 以降では、[`v-memo`](#v-memo) を使って、テンプレートの一部を無効化する条件付きでメモ化できます。\n\n- **参照**\n - [データバインディング構文 - 展開](https://ja.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **期待する値:** `any[]`\n\n- **詳細**\n\n テンプレートのサブツリーをメモ化します。要素とコンポーネントの両方で使用できます。このディレクティブは、メモ化のために比較する依存関係の値の固定長の配列を受け取ります。配列内のすべての値が直前のレンダリングと同じであった場合、サブツリー全体の更新はスキップされます。たとえば:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n コンポーネントの再レンダリング時に、 `valueA` と `valueB` の両方が同じであれば、この `<div>` とその子のすべての更新はスキップされます。実際には、仮想 DOM の VNode の生成もスキップされます。なぜなら、サブツリーのメモ化されたコピーを再利用できるからです。\n\n メモ化の配列を正しく指定することは重要であり、そうでない場合は、実際に適用されるべき更新をスキップしてしまう可能性があります。依存関係の配列を空にした `v-memo`(`v-memo=\"[]\"`)は、機能的には `v-once` と同等です。\n\n **`v-for` での使用**\n\n `v-memo` は、パフォーマンスが重要なシナリオでのミクロな最適化を行うためにのみ提供されており、ほとんど必要ありません。この機能が役に立つ最も一般的なケースは、大きな `v-for` リスト(`length > 1000`)をレンダリングするときです:\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n コンポーネントの `selected` 状態が変化すると、ほとんどの項目がまったく同じままであっても、大量の VNode が作成されます。ここでの `v-memo` の使い方は、基本的に「非選択状態から選択状態になった場合のみ、またはその逆の場合のみ、この項目を更新する」というものです。これにより、影響を受けない項目はすべて以前の VNode を再利用し、差分を完全にスキップできます。メモの依存関係の配列に `item.id` を含める必要はないことに注意してください。Vue は自動的に項目の `:key` から推測します。\n\n :::warning\n `v-memo` と `v-for` を併用する場合は、同じ要素で使用されているか確認してください。**`v-memo` は `v-for` の中では動作しません。**\n :::\n\n 子コンポーネントの更新チェックが最適化されていない特定のエッジケースで、不要な更新を手動で防ぐために `v-memo` をコンポーネントに使用できます。しかし、ここでも、必要な更新をスキップしないように正しい依存関係を指定するのは、開発者の責任です。\n\n- **参照**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nコンパイルされていないテンプレートを、準備が整うまで非表示にするために使用します。\n\n- **式を受け取りません**\n\n- **詳細**\n\n **このディレクティブは、ビルドステップがないセットアップでのみ必要です。**\n\n DOM 内テンプレートを使用する場合、「コンパイルされていないテンプレートのフラッシュ」が発生することがあります。マウントされたコンポーネントがそれをレンダリングされたコンテンツに置き換えるまで、未加工のマスタッシュタグがユーザーに表示される場合があります。\n\n `v-cloak` は関連するコンポーネントインスタンスがマウントされるまで、その要素に残ります。`[v-cloak] { display: none }` のような CSS ルールと組み合わせることで、コンポーネントの準備が整うまで未加工のテンプレートを非表示にできます。\n\n- **例**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n この `<div>` はコンパイルが完了するまで表示されません。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\n特別な属性 `key` は、主に Vue の仮想 DOM アルゴリズムが新しいノードリストを古いリストに対して差分する際に、vnode を識別するためのヒントとして使用されます。\n\n- **期待する値:** `number | string | symbol`\n\n- **詳細**\n\n キーがない場合、Vue は要素の移動を最小限に抑え、同じタイプの要素をできるだけその場でパッチ/再利用しようとするアルゴリズムを使用します。キーがある場合は、キーの順序変更に基づいて要素を並べ替え、存在しなくなったキーを持つ要素は常に削除/破棄されます。\n\n 共通の同じ親を持つ子は、**ユニークなキー**を持つ必要があります。キーが重複するとレンダリングエラーになります。\n\n `v-for` と組み合わせるのが最も一般的な使用例です:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n また、要素/コンポーネントを再利用するのではなく、強制的に置き換えるためにも使用できます。これは、次のような場合に便利です:\n\n - コンポーネントのライフサイクルフックを適切にトリガーする\n - トランジションをトリガーする\n\n 例えば:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n `text` が変更されると、`<span>` はパッチされるのではなく、常に置き換えられるので、トランジションがトリガーされます。\n\n- **参照** [ガイド - リストレンダリング - `key` による状態管理](https://ja.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\n[テンプレート参照](https://ja.vuejs.org/guide/essentials/template-refs.html)を表します。\n\n- **期待する値:** `string | Function`\n\n- **詳細**\n\n `ref` は、要素や子コンポーネントへの参照を登録するために使用します。\n\n Options API では、この参照はコンポーネントの `this.$refs` オブジェクトの下に登録されます:\n\n ```html\n <!-- this.$refs.p として格納される -->\n <p ref=\"p\">hello</p>\n ```\n\n Composition API では、一致する名前の ref に参照が格納されます:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n もしプレーンな DOM 要素で使用された場合、その要素への参照になります。もし子コンポーネントで使用された場合は、そのコンポーネントのインスタンスへの参照になります。\n\n また、`ref` には関数も受け付けるので、参照を保存する場所を完全に制御できます:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n ref の登録タイミングに関する重要な注意点として、ref 自体はレンダー関数の結果として作成されるので、コンポーネントがマウントされるまで待ってからアクセスする必要があります。\n\n `this.$refs` はリアクティブではないので、テンプレート内でデータバインディングのために使わないでください。\n\n- **参照**\n - [ガイド - テンプレート参照](https://ja.vuejs.org/guide/essentials/template-refs.html)\n - [ガイド - テンプレート参照の型付け](https://ja.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [ガイド - コンポーネントのテンプレート参照の型付け](https://ja.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\n[動的コンポーネント](https://ja.vuejs.org/guide/essentials/component-basics.html#dynamic-components)のバインディングに使用します。\n\n- **期待する値:** `string | Component`\n\n- **ネイティブ要素での使用** <sup class=\"vt-badge\">3.1+</sup>\n\n ネイティブの HTML 要素で `is` 属性が使われている場合、[Customized built-in element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example) として解釈されます。これは、ネイティブの Web プラットフォームの機能です。\n\n しかし、[DOM 内テンプレート解析の注意点](https://ja.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats)で説明したように、ネイティブ要素を Vue コンポーネントに置き換えるためには Vue が必要になる場合があります。`is` 属性の値の前に `vue:` を付けると、Vue はその要素を Vue コンポーネントとしてレンダリングします:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **参照**\n\n - [ビルトインの特別な要素 - `<component>`](https://ja.vuejs.org/api/built-in-special-elements.html#component)\n - [動的コンポーネント](https://ja.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$0 = { + version: version$t, + tags: tags$j, + globalAttributes: globalAttributes$t +}; + +const version$s = 1.1; +const tags$i = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nFournit des effets de transition animés à **un seul** élément ou composant.\n\n- **Props :**\n\n ```ts\n interface TransitionProps {\n /**\n * Utilisé pour générer automatiquement des noms de classe pour les transitions CSS\n * par exemple `name: 'fade'` s'étendra automatiquement à `.fade-enter`,\n * `.fade-enter-active`, etc.\n */\n name?: string\n /**\n * S'il faut appliquer les classes de transition CSS ou non\n * Default: true\n */\n css?: boolean\n /**\n * Spécifie le type d'événements de transition à attendre pour\n * déterminer le moment de la fin de la transition.\n * Le comportement par défaut consiste à détecter automatiquement le type qui a\n * la plus longue durée.\n */\n type?: 'transition' | 'animation'\n /**\n * Spécifie les durées explicites de la transition.\n * Le comportement par défaut consiste à attendre le premier événement `transitionend`.\n * ou `animationend` sur l'élément de transition racine.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Contrôle la séquence temporelle des transitions de sortie/entrée.\n * Simultané par défaut.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Si la transition doit être appliquée au rendu initial ou non.\n * Default: false\n */\n appear?: boolean\n\n /**\n * Props pour la personnaliser les classes de transition.\n * Utilisez kebab-case dans les templates, par exemple enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **Événements :**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show` only)\n - `@appear-cancelled`\n\n- **Exemple**\n\n Élément simple :\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n Transition forcée en modifiant l'attribut `key` :\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Composant dynamique, avec mode de transition + animation à l'apparition :\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Écoute des événements de transition :\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **Voir aussi** [Guide sur `<Transition>`](https://fr.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nFournit des effets de transition pour de **multiples** éléments ou composants dans une liste.\n\n- **Props :**\n\n `<TransitionGroup>` accepte les mêmes props que `<Transition>` à l'exception de `mode`, plus deux props additionnelles :\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * S'il n'est pas défini, le rendu sera un fragment.\n */\n tag?: string\n /**\n * Pour personnaliser la classe CSS appliquée lors des transitions de mouvement.\n * Utilisez kebab-case dans les templates, par exemple move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **Événements :**\n\n `<TransitionGroup>` émet les mêmes événements que `<Transition>`.\n\n- **Détails**\n\n Par défaut, `<TransitionGroup>` ne rend pas d'élément du DOM en enveloppant d'autres, mais on peut en définir un via la prop `tag`.\n\n Notez que chaque enfant d'un `<transition-group>` doit avoir une [**clé unique**](https://fr.vuejs.org/guide/essentials/list.html#maintaining-state-with-key) pour que les animations fonctionnent correctement.\n\n `<TransitionGroup>` prend en charge les transitions de mouvement via une transformation CSS. Lorsque la position d'un enfant à l'écran a changé après une mise à jour, il se verra appliquer une classe CSS de mouvement (générée automatiquement à partir de l'attribut `name` ou configurée avec la prop `move-class`). Si la propriété CSS `transform` est \"transition-able\" lorsque la classe de mouvement est appliquée, l'élément sera animé en douceur vers sa destination en utilisant la [technique FLIP](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Exemple**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **Voir aussi** [Guide - TransitionGroup](https://fr.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nMet en cache les composants activés dynamiquement qui y sont imbriqués.\n\n- **Props :**\n\n ```ts\n interface KeepAliveProps {\n /**\n * Si spécifié, seuls les composants dont les noms correspondent à\n * `include` seront mis en cache.\n */\n include?: MatchPattern\n /**\n * Un composant avec un nom ne correspondant pas à `exclude` ne sera\n * pas mis en cache.\n */\n exclude?: MatchPattern\n /**\n * Le nombre maximum d'instances de composant à mettre en cache.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Détails**\n\n Lorsqu'il enveloppe un composant dynamique, `<KeepAlive>` met en cache les instances inactives du composant sans les détruire.\n\n Il ne peut y avoir qu'une seule instance de composant active comme enfant direct de `<KeepAlive>` à un moment donné.\n\nLorsqu'un composant est activé/désactivé à l'intérieur de `<KeepAlive>`, ses hooks de cycle de vie `activated` et `deactivated` seront invoqués en conséquence, fournissant une alternative à `mounted` et `unmounted`, qui ne sont pas appelés. Ceci s'applique à l'enfant direct de `<KeepAlive>` ainsi qu'à tous ses descendants.\n\n- **Exemple**\n\n Utilisation basique :\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Lorsqu'il est utilisé avec les branches `v-if` / `v-else`, il ne doit y avoir qu'un seul composant rendu à la fois :\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Utilisé en combinaison avec `<Transition>` :\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n En utilisant `include` / `exclude` :\n\n ```html\n <!-- chaîne de caractères délimitée par des virgules -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- regex (utilisez `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- Tableau (utilisez `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Utilisation avec `max` :\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **Voir aussi** [Guide - KeepAlive](https://fr.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nRend le contenu de son slot à une autre partie du DOM.\n\n- **Props :**\n\n ```ts\n interface TeleportProps {\n /**\n * Requis. Spécifie le conteneur cible.\n * Peut être un sélecteur ou un élément.\n */\n to: string | HTMLElement\n /**\n * S'il vaut `true`, le contenu restera à son emplacement\n * original au lieu d'être déplacé dans le conteneur cible.\n * Peut être changé de manière dynamique.\n */\n disabled?: boolean\n }\n ```\n\n- **Exemple**\n\n En spécifiant le conteneur cible :\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n En le désactivant de manière conditionnelle :\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **Voir aussi** [Guide - Teleport](https://fr.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nUtilisé pour orchestrer des dépendances asynchrones imbriquées dans un arbre de composants.\n\n- **Props :**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number,\n suspensible?: boolean\n }\n ```\n\n- **Événements :**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Détails**\n\n `<Suspense>` accepte deux slots : le slot `#default` et le slot `#fallback`. Il affichera le contenu du slot de secours tout en rendant le slot par défaut en mémoire.\n\n S'il rencontre des dépendances asynchrones ([Composants asynchrones](https://fr.vuejs.org/guide/components/async.html) et des composants avec [`async setup()`](https://fr.vuejs.org/guide/built-ins/suspense.html#async-setup)) lors du rendu du slot par défaut, il attendra qu'elles soient toutes résolues avant d'afficher le slot par défaut.\n\n En définissant Suspense comme `suspensible`, toutes les dépendances asynchrones seront gérées par le Suspense parent. Voir [les détails d'implémentation](https://github.com/vuejs/core/pull/6736)\n\n- **Voir aussi** [Guide - Suspense](https://fr.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\nUn \"méta-composant\" pour rendre des composants ou éléments dynamiques.\n\n- **Props :**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Détails**\n\n Le composant à rendre est déterminé par la propriété \"is\".\n\n - Lorsque `is` est une chaîne de caractères, il peut s'agir du nom d'une balise HTML ou du nom d'un composant enregistré.\n\n - De manière alternative, `is` peut également être directement lié à la définition d'un composant.\n\n- **Exemple**\n\n Rendu des composants par nom d'enregistrement (Options API) :\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Rendu de composants par définition (Composition API avec `<script setup>`) :\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Rendu d'éléments HTML :\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n Les [composants natifs](./built-in-components) peuvent tous être passés à `is`, mais vous devez les enregistrer si vous voulez les passer par leur nom. Par exemple :\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n L'enregistrement n'est pas nécessaire si vous passez directement le composant à `is` plutôt que son nom, par exemple dans `<script setup>`.\n\n Si `v-model` est utilisée sur une balise `<component>`, le compilateur de templates le transformera en une prop `modelValue` et un écouteur d'événements `update:modelValue`, comme il le ferait pour tout autre composant. Cependant, cela ne sera pas compatible avec les éléments HTML natifs, tels que `<input>` ou `<select>`. Par conséquent, l'utilisation de `v-model` avec un élément natif créé dynamiquement ne fonctionnera pas :\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- Cela ne fonctionnera pas car \"input\" est un élément HTML natif. -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n En pratique, ce cas de figure n'est pas courant car les champs de formulaire natifs sont généralement enveloppés dans des composants dans les applications réelles. Si vous avez besoin d'utiliser directement un élément natif, vous pouvez diviser manuellement le \"v-model\" en un attribut et un événement.\n\n- **Voir aussi** [Composants dynamiques](https://fr.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nIndique l'emplacement du contenu d'un slot dans les templates.\n\n- **Props :**\n\n ```ts\n interface SlotProps {\n /**\n * Toutes les props passées à <slot> à passer comme arguments\n * aux slots scopés\n */\n [key: string]: any\n /**\n * Réservé pour spécifier le nom du slot.\n */\n name?: string\n }\n ```\n\n- **Détails**\n\n L'élément `<slot>` peut utiliser l'attribut `name` pour spécifier un nom de slot. Si aucun `name` n'est spécifié, l'élément rendra le slot par défaut. Les attributs supplémentaires passés à l'élément slot seront passés comme des props de slot au slot scopé défini dans le parent.\n\n L'élément lui-même sera remplacé par le contenu du slot correspondant.\n\n Les éléments `<slot>` dans les templates Vue sont compilés en JavaScript, ils ne doivent donc pas être confondus avec les [éléments `<slot>` natifs](https://developer.mozilla.org/fr/docs/Web/HTML/Element/slot).\n\n- **Voir aussi** [Composant - Slots](https://fr.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nLa balise `<template>` est utilisée comme placeholder lorsque nous voulons utiliser une directive native sans rendre un élément dans le DOM.\n\n- **Détails**\n\n Le traitement spécial de `<template>` n'est déclenché que s'il est utilisé avec l'une de ces directives :\n\n - `v-if`, `v-else-if`, or `v-else`\n - `v-for`\n - `v-slot`\n \n Si aucune de ces directives n'est présente, il sera rendu comme un [élément natif `<template>`](https://developer.mozilla.org/fr/docs/Web/HTML/Element/template) à la place.\n\n Un `<template>` avec un `v-for` peut aussi avoir un attribut [`key`](https://fr.vuejs.org/api/built-in-special-attributes.html#key). Tous les autres attributs et directives seront rejetés, car ils n'ont pas de sens sans l'élément correspondant.\n\n Les composants monofichiers utilisent une [top-level `<template>` tag](https://fr.vuejs.org/api/sfc-spec.html#language-blocks) pour envelopper l'ensemble du template. Cette utilisation est distincte de l'utilisation de `<template>` décrite ci-dessus. Cette balise de haut niveau ne fait pas partie du modèle lui-même et ne supporte pas la syntaxe template, comme les directives.\n\n- **Voir aussi**\n - [Guide - `v-if` avec `<template>`](https://fr.vuejs.org/guide/essentials/conditional.html#v-if-on-template) \n - [Guide - `v-for` avec `<template>`](https://fr.vuejs.org/guide/essentials/list.html#v-for-on-template) \n - [Guide - Slots nommés](https://fr.vuejs.org/guide/components/slots.html#named-slots) \n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$s = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nMet à jour le contenu texte d'un élément.\n\n- **Attendu :** `string`\n\n- **Détails**\n\n `v-text` fonctionne en définissant la propriété [textContent](https://developer.mozilla.org/fr/docs/Web/API/Node/textContent) de l'élément, de sorte qu'elle écrasera tout contenu existant dans l'élément. Si vous devez mettre à jour `textContent`, vous devez utiliser les [interpolations moustaches](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) à la place.\n\n- **Exemple**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **Voir aussi** [Syntaxe de template - Interpolation de texte](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nMet à jour [innerHTML](https://developer.mozilla.org/fr/docs/Web/API/Element/innerHTML) de l'élément.\n\n- **Attendu :** `string`\n\n- **Détails**\n\n Le contenu de `v-html` est inséré en tant qu'HTML simple - la syntaxe des templates de Vue ne sera pas traitée. Si vous vous retrouvez à essayer de composer des templates en utilisant `v-html`, essayez de repenser la solution en utilisant plutôt des composants.\n\n ::: warning Remarque sur la sécurité\n Rendre dynamiquement du HTML arbitraire sur votre site web peut être très dangereux car cela peut facilement conduire à des [attaques XSS](https://fr.wikipedia.org/wiki/Cross-site_scripting). N'utilisez `v-html` que sur du contenu de confiance et **jamais** sur du contenu fourni par l'utilisateur.\n :::\n\n Dans les [composants monofichiers](https://fr.vuejs.org/guide/scaling-up/sfc.html), les styles `scoped` ne s'appliqueront pas au contenu de `v-html`, car ce HTML n'est pas traité par le compilateur de templates de Vue. Si vous souhaitez cibler le contenu de `v-html` avec un CSS scopé, vous pouvez utiliser des [modules CSS](./sfc-css-features#css-modules) ou un élément `<style>` global supplémentaire avec une stratégie de scoping manuelle telle que BEM.\n\n- **Exemple**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **Voir aussi** [Syntaxe de template - HTML brut](https://fr.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nFait basculer la visibilité de l'élément en fonction de la valeur évaluée à vrai ou faux de l'expression.\n\n- **Attendu :** `any`\n\n- **Détails**\n\n `v-show` fonctionne en fixant la propriété CSS `display` via des styles littéraux, et essaiera de respecter la valeur initiale `display` lorsque l'élément est visible. Elle déclenche également des transitions lorsque sa condition change.\n\n- **Voir aussi** [Rendu conditionnel - v-show](https://fr.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nRend conditionnellement un élément ou un fragment de template en fonction de la valeur de l'expression, évaluée à vrai ou faux.\n\n- **Attendu :** `any`\n\n- **Détails**\n\n Lorsqu'un élément comportant `v-if` est activé / désactivé, l'élément et les directives / composants qu'il contient sont détruits et reconstruits. Si la condition initiale est fausse, le contenu interne ne sera pas rendu du tout.\n\n Peut être utilisée sur `<template>` pour désigner un bloc conditionnel contenant uniquement du texte ou plusieurs éléments.\n\n Cette directive déclenche des transitions lorsque sa condition change.\n\n Lorsqu'elles sont utilisées ensemble, `v-if' a une priorité plus élevée que `v-for'. Il est déconseillé d'utiliser ces deux directives ensemble sur un même élément - voir le [guide du rendu de liste](https://fr.vuejs.org/guide/essentials/list.html#v-for-with-v-if) pour plus de détails.\n\n- **Voir aussi** [Rendu conditionnel - v-if](https://fr.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nReprésente le bloc \"else\" pour `v-if` ou une chaîne `v-if` / `v-else-if`.\n\n- **N'attend pas d'expression**\n\n- **Détails**\n\n - Restriction : l'élément frère précédent doit posséder `v-if` ou `v-else-if`.\n\n - Peut être utilisée sur `<template>` pour désigner un bloc conditionnel contenant uniquement du texte ou plusieurs éléments.\n\n- **Exemple**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **Voir aussi** [Rendu conditionnel - v-else](https://fr.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nDésigne le bloc \"else if\" pour `v-if`. Peut être chaîné.\n\n- **Attendu :** `any`\n\n- **Détails**\n\n - Restriction : l'élément frère précédent doit avoir `v-if` ou `v-else-if`.\n\n - Peut être utilisé sur `<template>` pour désigner un bloc conditionnel contenant uniquement du texte ou plusieurs éléments.\n\n- **Exemple**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **Voir aussi** [Rendu conditionnel - v-else-if](https://fr.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nRend l'élément ou le bloc d'un template plusieurs fois en fonction des données sources.\n\n- **Attendu :** `Array | Object | number | string | Iterable`\n\n- **Détails**\n\n La valeur de la directive doit utiliser la syntaxe spéciale `alias in expression` pour fournir un alias pour l'élément courant sur lequel on itère :\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n De manière alternative, vous pouvez également spécifier un alias pour l'index (ou la clé si elle est utilisée sur un objet) :\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n Le comportement par défaut de `v-for` essaiera de corriger les éléments en place sans les déplacer. Pour forcer la réorganisation des éléments, vous devez fournir un indice d'ordre avec l'attribut spécial `key` :\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` peut également fonctionner sur les valeurs qui implémentent le [protocole d'itération](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), y compris les `Map` et `Set` natifs.\n\n- **Voir aussi**\n - [Rendu de liste](https://fr.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nAttache un écouteur d'événements à l'élément.\n\n- **Raccourci :** `@`\n\n- **Attendu :** `Function | Inline Statement | Object (sans argument)`\n\n- **Argument :** `event` (optionnel lors de l'utilisation de la syntaxe objet)\n\n- **Modificateurs**\n\n - `.stop` - appelle `event.stopPropagation()`.\n - `.prevent` - appelle `event.preventDefault()`.\n - `.capture` - ajoute un écouteur d'événements en mode capture.\n - `.self` - ne déclenche le gestionnaire que si l'événement a été envoyé par cet élément.\n - `.{keyAlias}` - ne déclenche le gestionnaire que sur certaines clés.\n - `.once` - déclenche le gestionnaire au moins une fois.\n - `.left` - ne déclenche le gestionnaire que pour les événements liés au bouton gauche de la souris.\n - `.right` - ne déclenche le gestionnaire que pour les événements liés au bouton droit de la souris.\n - `.middle` - ne déclenche le gestionnaire que pour les événements liés au bouton du milieu de la souris.\n - `.passive` - attache un événement DOM avec `{ passive : true }`.\n\n- **Détails**\n\n Le type d'événement est indiqué par l'argument. L'expression peut être un nom de méthode, une déclaration littérale, ou omise si des modificateurs sont présents.\n\n Lorsqu'elle est utilisée sur un élément normal, elle écoute uniquement les [**événements natifs du DOM**](https://developer.mozilla.org/fr/docs/Web/Events). Lorsqu'elle est utilisée sur un composant d'éléments personnalisés, elle écoute les **événements personnalisés** émis sur ce composant enfant.\n\n Lorsqu'elle écoute les événements natifs du DOM, la méthode reçoit l'événement natif comme seul argument. Si vous utilisez une déclaration en ligne, la déclaration a accès à la propriété spéciale `$event` : `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` supporte également la liaison à un objet de paires événement / écouteur sans argument. Notez que lorsque vous utilisez la syntaxe objet, elle ne supporte aucun modificateur.\n\n- **Exemple**\n\n ```html\n <!-- méthode gestionnaire -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- événement dynamique -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- expression littérale -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- raccourci -->\n <button @click=\"doThis\"></button>\n\n <!-- raccourci d'un événement dynamique -->\n <button @[event]=\"doThis\"></button>\n\n <!-- arrête la propagation -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- empêche le comportement par défaut -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- empêche le comportement par défaut sans expression -->\n <form @submit.prevent></form>\n\n <!-- modificateurs enchaînés -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- modificateur de clé en utilisant keyAlias -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- l'événement de clic sera déclenché seulement une fois -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- syntaxe objet -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Écoute des événements personnalisés sur un composant enfant (le gestionnaire est appelé lorsque \"my-event\" est émis sur l'enfant) :\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- expression en ligne -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **Voir aussi**\n - [Gestion d'événement](https://fr.vuejs.org/guide/essentials/event-handling.html)\n - [Composants - Événements personnalisés](https://fr.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nLie dynamiquement un ou plusieurs attributs, ou une prop d'un composant à une expression.\n\n- **Raccourci :**\n - `:` ou `.` (lorsqu'on utilise le modificateur `.prop`)\n - En omettant la valeur (lorsque l'attribut et la valeur liée portent le même nom) <sup class=\"vt-badge\">3.4+</sup>\n\n- **Attendu :** `any (avec argument) | Object (sans argument)`\n\n- **Argument :** `attrOrProp (optionnel)`\n\n- **Modificateurs**\n\n - `.camel` - transforme le nom de l'attribut kebab-case en camelCase.\n - `.prop` - force une liaison à être définie comme une propriété du DOM. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - force une liaison à être définie comme un attribut du DOM. <sup class=\"vt-badge\">3.2+</sup>\n\n- **Utilisation :**\n\n Lorsqu'elle est utilisée pour lier l'attribut `class` ou `style`, `v-bind` supporte des types de valeurs supplémentaires comme Array ou Objects. Voir la section du guide lié ci-dessous pour plus de détails.\n\n Lors de la mise en place d'une liaison sur un élément, Vue va vérifier par défaut si l'élément a la clé définie comme une propriété en faisant une vérification de l'opérateur `in`. Si la propriété est définie, Vue définira la valeur comme une propriété du DOM au lieu d'un attribut. Cela devrait fonctionner dans la plupart des cas, mais vous pouvez outrepasser ce comportement en utilisant explicitement les modificateurs `.prop` ou `.attr`. Cela est parfois nécessaire, notamment lorsque vous [travaillez avec des éléments personnalisés](https://fr.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n Lorsqu'elle est utilisée pour lier les props du composant, la prop doit être correctement déclarée dans le composant enfant.\n\n Lorsqu'elle est utilisée sans argument, elle peut être utilisée pour lier un objet contenant des paires nom-valeur d'attributs.\n\n- **Exemple**\n\n ```html\n <!-- lie un attribut -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- nom d'attribut dynamique -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- raccourci -->\n <img :src=\"imageSrc\" />\n\n <!-- raccourci même nom (3.4+), se transforme en :src=\"src\" -->\n <img :src />\n\n <!-- raccourci d'un nom d'attribut dynamique -->\n <button :[key]=\"value\"></button>\n\n <!-- avec une concaténation de chaînes de caractères en ligne -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- liaison de classe -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- liaison de style -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- liaison d'un objet d'attributs -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- liaison de prop. \"prop\" doit être déclaré dans le composant enfant. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- transmet les props du parent en commun avec un composant enfant -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n Le modificateur `.prop` a également un raccourci dédié, `.` :\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- équivalent à -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n Le modificateur `.camel` permet de formatter un nom d'attribut `v-bind` en camelCase lors de l'utilisation de templates à l'intérieur du DOM, par exemple l'attribut SVG `viewBox` :\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n `.camel` n'est pas nécessaire si vous utilisez des templates en chaînes de caractères, ou si vous pré-compilez le template avec un outil de build.\n\n- **Voir aussi**\n - [Liaison de classes et de styles](https://fr.vuejs.org/guide/essentials/class-and-style.html)\n - [Composant - Détails sur le passage de props](https://fr.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nCrée une liaison bidirectionnelle sur un élément de saisie de formulaire ou un composant.\n\n- **Attendu :** varie en fonction de la valeur de l'élément d'entrée du formulaire ou de la sortie des composants\n\n- **Limitée à :**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - composants\n\n- **Modificateurs**\n\n - [`.lazy`](https://fr.vuejs.org/guide/essentials/forms.html#lazy) - écoute les événements `change` au lieu de `input`.\n - [`.number`](https://fr.vuejs.org/guide/essentials/forms.html#number) - convertit une entrée valide en chaînes de caractères en nombres\n - [`.trim`](https://fr.vuejs.org/guide/essentials/forms.html#trim) - élague l'entrée\n\n- **Voir aussi**\n\n - [Liaisons des entrées d'un formulaire](https://fr.vuejs.org/guide/essentials/forms.html)\n - [Événements du composant - Utilisation avec `v-model`](https://fr.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nDésigne les slots nommés ou les slots scopés qui s'attendent à recevoir des props.\n\n- **Raccourci :** `#`\n\n- **Attendu :** Une expression JavaScript valide en tant qu'argument de fonction, y compris concernant la déstructuration. Facultatif - uniquement nécessaire si l'on s'attend à ce que des props soient passés au slot.\n\n- **Argument :** nom du slot (facultatif, la valeur par défaut est `default`)\n\n- **Limitée à :**\n\n - `<template>`\n - [composants](https://fr.vuejs.org/guide/components/slots.html#scoped-slots) (pour un seul slot par défaut avec des props)\n\n- **Exemple**\n\n ```html\n <!-- Slots nommés -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- Slot nommé recevant des props -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Slot par défaut recevant des props, via la déstructuration -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **Voir aussi**\n - [Composants - Slots](https://fr.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nIgnore la compilation pour cet élément et tous ses enfants.\n\n- **N'attend pas d'expression**\n\n- **Détails**\n\n À l'intérieur de l'élément contenant `v-pre`, toute la syntaxe du template Vue sera préservée et rendue telle quelle. Le cas d'utilisation le plus courant est l'affichage brut des balises moustaches.\n\n- **Exemple**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nRend l'élément et le composant une seule fois, et ignore les mises à jour futures.\n\n- **N'attend pas d'expression**\n\n- **Détails**\n\n Lors des rendus suivants, l'élément/composant et tous ses enfants seront traités comme du contenu statique et ignorés. Cela peut être utilisé pour optimiser les performances de mise à jour.\n\n ```html\n <!-- élément simple -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- l'élément a des enfants -->\n <div v-once>\n <h1>Comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- composant -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- directive `v-for` -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Depuis la version 3.2, vous pouvez également mémoriser une partie du template avec des conditions d'invalidation en utilisant [`v-memo`](#v-memo).\n\n- **Voir aussi**\n - [Syntaxe de la liaison bidirectionnelle - interpolations](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **Attendu :** `any[]`\n\n- **Détails**\n\n Mémorise une sous-arborescence du template. Peut être utilisée à la fois sur les éléments et les composants. La directive attend un tableau de longueur connue composé de valeurs de dépendances à comparer pour la mémorisation. Si toutes les valeurs du tableau sont identiques à celles du dernier rendu, les mises à jour de l'ensemble du sous-arbre seront ignorées. Par exemple :\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n Lors du rendu du composant, si `valueA` et `valueB` restent les mêmes, toutes les mises à jour de cette `<div>` et de ses enfants seront ignorées. En fait, même la création du VNode du DOM virtuel sera ignorée puisque la copie mémorisée de la sous-arborescence peut être réutilisée.\n\n Il est important de spécifier le tableau de mémorisation correctement, sinon nous pourrions sauter des mises à jour qui devraient normalement être appliquées. `v-memo` avec un tableau de dépendances vide (`v-memo=\"[]\"`) serait fonctionnellement équivalent à `v-once`.\n\n **Utilisation avec `v-for`**\n\n `v-memo` est fourni uniquement pour des micro-optimisations dans des scénarios de performances critiques et devrait être rarement utilisée. Le cas le plus courant où cela peut s'avérer utile est lors du rendu de grandes listes `v-for` (où `length > 1000`) :\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n Lorsque l'état `selected` du composant change, une grande quantité de VNodes sera créée même si la plupart des éléments restent exactement les mêmes. L'utilisation de `v-memo` ici consiste essentiellement à dire \"met à jour cet élément seulement s'il est passé de non sélectionné à sélectionné, ou vice-versa\". Cela permet à chaque élément non affecté de réutiliser son précédent VNode et d'éviter de changer entièrement. Notez que nous n'avons pas besoin d'inclure `item.id` dans le tableau de dépendances des mémos ici puisque Vue le déduit automatiquement à partir de `:key`.\n\n :::warning\n Lorsque vous utilisez les directives `v-memo` avec `v-for`, assurez-vous qu'elles sont utilisées sur le même élément. **`v-memo` ne fonctionne pas à l'intérieur de `v-for`.**\n :::\n\n `v-memo` peut également être utilisée sur les composants pour empêcher manuellement les mises à jour non désirées dans certains cas limites où la vérification de la mise à jour du composant enfant n'est pas optimisée. Mais une fois de plus, il est de la responsabilité du développeur de spécifier des tableaux de dépendances corrects pour éviter d'ignorer des mises à jour nécessaires.\n\n- **Voir aussi**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUtilisée pour cacher un template non compilé jusqu'à ce qu'il soit prêt.\n\n- **N'attend pas d'expression**\n\n- **Détails**\n\n **Cette directive n'est nécessaire que dans les configurations sans étape de build.**\n\n Lors de l'utilisation de templates à l'intérieur du DOM, il peut y avoir un \"flash de templates non compilés\" : l'utilisateur peut voir des balises moustaches brutes jusqu'à ce que le composant monté les remplace par du contenu rendu.\n\n `v-cloak` restera sur l'élément jusqu'à ce que l'instance du composant associé soit montée. Combiné à des règles CSS telles que `[v-cloak] { display : none }`, elle peut être utilisée pour masquer les templates bruts jusqu'à ce que le composant soit prêt.\n\n- **Exemple**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n La `<div>` ne sera pas visible tant que la compilation n'est pas terminée.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\nL'attribut spécial `key` est principalement utilisé comme une indication aidant l'algorithme du DOM virtuel de Vue à identifier les VNodes lors de la comparaison de la nouvelle et de l'ancienne liste de nœuds.\n\n- **Attendu :** `number | string | symbol`\n\n- **Détails**\n\n Sans clés, Vue utilise un algorithme qui minimise le mouvement des éléments et essaie de remplacer/réutiliser les éléments du même type déjà en place autant que possible. Avec des clés, il réorganisera les éléments en fonction du changement d'ordre des clés, et les éléments dont les clés ne sont plus présentes seront toujours supprimés / détruits.\n\n Les clés des enfants d'un même parent doivent être **uniques**. Les clés dupliquées entraîneront des erreurs de rendu.\n\n Le cas d'utilisation le plus courant est en combinaison avec `v-for` :\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n Elle peut également être utilisée pour forcer le remplacement d'un élément/composant au lieu de le réutiliser. Cela peut être utile lorsque vous voulez :\n\n - Déclencher correctement les hooks de cycle de vie d'un composant\n - Déclencher des transitions\n\n Par exemple :\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n Quand `text` change, le `<span>` sera toujours remplacé au lieu d'être corrigé, donc une transition sera déclenchée.\n\n- **Voir aussi** [Guide - Rendu de liste - Maintenir l'état avec `key`](https://fr.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nDésigne une [ref du template](https://fr.vuejs.org/guide/essentials/template-refs.html).\n\n- **Attendu :** `string | Function`\n\n- **Détails**\n\n `ref` est utilisée pour enregistrer une référence à un élément ou à un composant enfant.\n\n Dans l'Options API, la référence sera enregistrée sous l'objet `this.$refs` du composant :\n\n ```html\n <!-- stockée sous this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n Dans la Composition API, la référence sera stockée dans une ref avec le nom correspondant :\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n Si elle est utilisée sur un élément simple du DOM, la référence sera cet élément ; si elle est utilisée sur un composant enfant, la référence sera l'instance du composant enfant.\n\n De manière alternative, `ref` peut accepter une valeur de fonction qui fournit un contrôle total sur l'endroit où la référence sera stockée :\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n Une remarque importante concernant le timing de l'enregistrement des refs : comme les refs elles-mêmes sont créées à la suite de la fonction de rendu, vous devez attendre que le composant soit monté avant d'y accéder.\n\n `this.$refs` est également non réactive, vous ne devez donc pas l'utiliser dans les templates pour la liaison de données.\n\n- **Voir aussi**\n - [Guide - Template Refs](https://fr.vuejs.org/guide/essentials/template-refs.html)\n - [Guide - Typer les refs du template](https://fr.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Guide - Typer les refs du template d'un composant](https://fr.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\n Utilisé pour lier les [composants dynamiques](https://fr.vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Attendu :** `string | Component`\n\n- **Utilisation sur des éléments natifs** <sup class=\"vt-badge\">3.1+</sup>\n\n Lorsque l'attribut \"is\" est utilisé sur un élément HTML natif, il sera interprété comme un [élément natif personnalisé](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example), qui est une fonctionnalité native de la plate-forme Web.\n\n Il existe cependant un cas d'utilisation où vous pouvez avoir besoin que Vue remplace un élément natif par un composant Vue, comme expliqué dans [Mises en garde concernant l'analyse du template DOM](https://fr.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats). Vous pouvez préfixer la valeur de l'attribut `is` avec `vue:` pour que Vue rende l'élément comme un composant Vue :\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **Voir aussi**\n\n - [Éléments spéciaux natifs - `<component>`](https://fr.vuejs.org/api/built-in-special-elements.html#component)\n - [Composants dynamiques](https://fr.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$1 = { + version: version$s, + tags: tags$i, + globalAttributes: globalAttributes$s +}; + +const version$r = 1.1; +const tags$h = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\n**싱글** 엘리먼트 또는 컴포넌트에 애니메이션 트랜지션 효과를 제공합니다.\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * 트랜지션 CSS 클래스 이름 자동 생성에 사용.\n * 예를 들어 `name: 'fade'`는 `.fade-enter`,\n * `.fade-enter-active` 등으로 자동 확장됨.\n */\n name?: string\n /**\n * CSS 트랜지션 클래스를 적용할지 여부입니다.\n * 기본 값: true\n */\n css?: boolean\n /**\n * 트랜지션 종료 타이밍을 결정하기 위해,\n * 대기할 트랜지션 이벤트의 유형을 지정.\n * 기본 동작은 지속 시간이 더 긴 유형을\n * 자동으로 감지.\n */\n type?: 'transition' | 'animation'\n /**\n * 명시적으로 트랜지션의 지속 시간을 지정.\n * 기본 동작은 루트 트랜지션 엘리먼트의 첫 번째\n * `transitionend` 또는 `animationend` 이벤트를 기다리는 것.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * 진입/진출 트랜지션의 타이밍 순서를 제어.\n * 기본 동작은 동시.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * 최초 렌더링에 트랜지션을 적용할지 여부.\n * 기본 값: false\n */\n appear?: boolean\n\n /**\n * 트랜지션 클래스를 커스텀하기 위한 props.\n * 템플릿에서 kebab-case를 사용해야 함. 예: enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **이벤트**:\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show`에서만)\n - `@appear-cancelled`\n\n- **예제**\n\n 간단한 엘리먼트:\n\n ```html\n <Transition>\n <div v-if=\"ok\">토글된 컨텐츠</div>\n </Transition>\n ```\n\n `key` 속성을 변경하여 강제로 트랜지션(전환):\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n \n 트랜지션 모드 + 등장 애니메이션을 가진 동적 컴포넌트:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n 트랜지션 이벤트 수신:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">토글된 컨텐츠</div>\n </Transition>\n ```\n\n- **참고** [가이드 - Transition](https://ko.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\n리스트의 **여러** 엘리먼트 또는 컴포넌트에 트랜지션 효과를 제공합니다.\n\n- **Props**\n\n `<TransitionGroup>`은 `<Transition>`과 동일한 props에서 `mode`를 제외하고 두 개의 추가 props를 허용합니다:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * 정의하지 않으면, 렌더는 프래그먼트처럼 취급함.\n */\n tag?: string\n /**\n * 이동 전환 중에 적용되는 CSS 클래스를 사용자 정의합니다.\n * 템플릿에서 kebab-case를 사용해야 함. 예: move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **이벤트**:\n\n `<TransitionGroup>`은 `<Transition>`과 동일한 이벤트를 발생시킵니다.\n\n- **세부 사항**:\n\n 기본적으로 `<TransitionGroup>`은 래퍼 DOM 엘리먼트를 렌더링하지 않지만 `tag` prop을 통해 정의할 수 있습니다.\n\n 애니메이션이 제대로 작동하려면 `<transition-group>`의 모든 자식이 [**고유 키**](https://ko.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)를 가져야 합니다.\n\n `<TransitionGroup>`은 CSS `transform`으로 이동 트랜지션을 지원합니다. 업데이트 후 화면에서 자식의 위치가 변경되면, 움직이는 CSS 클래스가 적용됩니다(`name` 속성에서 자동 생성되거나 `move-class` prop으로 구성됨). 이동 클래스가 적용될 때 CSS의 `transform` 속성이 \"트랜지션 가능\"이면, [FLIP 기술](https://aerotwist.com/blog/flip-your-animations/)을 사용하여 엘리먼트가 목적지까지 부드럽게 애니메이션됩니다.\n\n- **예제**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **참고** [가이드 - TransitionGroup](https://ko.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\n내부에 래핑된 동적으로 토글되는 컴포넌트를 캐시합니다.\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * `include`와 이름이 일치하는\n * 컴포넌트만 캐시됨.\n */\n include?: MatchPattern\n /**\n * `exclude`와 이름이 일치하는\n * 컴포넌트는 캐시되지 않음.\n */\n exclude?: MatchPattern\n /**\n * 캐시할 컴포넌트 인스턴스의 최대 수.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **세부 사항**:\n\n `<KeepAlive>`로 래핑된 동적 컴포넌트는 비활성화 되면, 컴포넌트 인스턴스가 파괴되지 않고 캐시됩니다.\n\n `<KeepAlive>`에는 언제나 활성화된 직계 자식의 컴포넌트 인스턴스가 하나만 있을 수 있습니다.\n\n 컴포넌트가 `<KeepAlive>` 내에서 토글되면, `mounted` 및 `unmounted` 대신 `activated` 및 `deactivated` 생명 주기 훅이 호출됩니다. 이는 `<KeepAlive>`의 직계 자식과 모든 하위 항목에 적용됩니다.\n\n- **예제**\n\n 기본 사용법:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n `v-if` / `v-else`를 사용할 때, 한 번에 하나의 컴포넌트만 렌더링되어야 합니다:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n `<Transition>`과 함께 사용:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n `include` / `exclude` 사용:\n\n ```html\n <!-- 쉼표로 구분된 문자열 -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 정규식 사용(`v-bind` 포함) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 배열 사용(`v-bind` 포함) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n `max`를 활용한 사용:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **참고** [가이드 - KeepAlive](https://ko.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\n슬롯 컨텐츠를 DOM 내 다른 위치에서 렌더링합니다.\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * 필수. 대상이 될 컨테이너를 지정.\n * 셀렉터 또는 실제 엘리먼트일 수 있음.\n */\n to: string | HTMLElement\n /**\n * `true`이면 컨텐츠가 대상이 될 컨테이너로\n * 이동하지 않고 원래 위치에 남아 있음.\n * 동적으로 변경할 수 있음.\n */\n disabled?: boolean\n }\n ```\n\n- **예제**\n\n 대상이 될 컨테이너 지정:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n 조건부 비활성화:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **참고** [가이드 - Teleport](https://ko.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\n컴포넌트 트리에서 중첩된 비동기 의존성을 조정하는 데 사용됩니다.\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **이벤트**:\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **세부 사항**:\n\n `<Suspense>`는 `#default` 슬롯과 `#fallback` 슬롯이라는 두 개의 슬롯을 사용합니다. 메모리에서 기본 슬롯을 렌더링하는 동안, 폴백 슬롯의 대체 컨텐츠를 노출합니다.\n\n 기본 슬롯을 렌더링하는 동안 비동기 의존성([비동기 컴포넌트](https://ko.vuejs.org/guide/components/async.html) 및 [`async setup()`](https://ko.vuejs.org/guide/built-ins/suspense.html#async-setup)이 있는 컴포넌트)을 만나면, 기본 슬롯을 표시하기 전에 모든 것이 해결될 때까지 대기합니다.\n\n Suspense를 `suspensible`로 설정하면 모든 비동기 종속성 처리가 부모 Suspense에 의해 처리됩니다. [구현 세부 사항](https://github.com/vuejs/core/pull/6736)을 참조하세요.\n\n- **참고** [가이드 - Suspense](https://ko.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n동적 컴포넌트 또는 엘리먼트를 렌더링하기 위한 \"메타 컴포넌트\"입니다.\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **세부 사항**:\n\n `is`라는 prop의 값으로 렌더링할 실제 컴포넌트가 결정됩니다:\n\n - 문자열인 경우, HTML 태그 이름 또는 컴포넌트로 등록된 이름일 수 있음.\n\n - 컴포넌트의 정의에 직접 바인딩될 수도 있음.\n\n- **예제**\n\n 등록된 이름으로 컴포넌트 렌더링(옵션 API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n 정의에 따른 컴포넌트 렌더링(`<script setup>`이 있는 컴포지션 API):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n HTML 엘리먼트 렌더링:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n [빌트인 컴포넌트](./built-in-components)는 모두 `is`에 전달할 수 있지만,\n 이름으로 전달하려면 등록해야 합니다.\n 예를 들어:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n 이름이 아닌 컴포넌트 자체를 `is`에 전달하는 경우,\n 등록이 필요하지 않습니다(예를 들어 `<script setup>`에서).\n\n `v-model`이 `<component>` 태그에 사용되면, 템플릿 컴파일러는 다른 컴포넌트와 마찬가지로 이를 `modelValue` prop 및 `update:modelValue` 이벤트 리스너로 확장합니다.\n 그러나 이것은 `<input>` 또는 `<select>`와 같은 기본 HTML 엘리먼트와 호환되지 않습니다.\n 결과적으로 동적으로 생성된 기본 엘리먼트와 함께 `v-model`을 사용하면 작동하지 않습니다:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n \n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- 'input'이 기본 HTML 엘리먼트이므로 작동하지 않음 -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n 실제로는 기본 양식(form) 필드가 일반적으로 실제 앱의 컴포넌트에 래핑되기 때문에 이러한 예외적인 경우는 일반적이지 않습니다.\n 네이티브 엘리먼트를 직접 사용해야 하는 경우, `v-model`을 속성과 이벤트로 수동으로 분할할 수 있습니다.\n\n- **참고**: [가이드 - 컴포넌트 기초: 동적 컴포넌트](https://ko.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\n템플릿의 슬롯 컨텐츠를 내보낼 지점을 나타냅니다.\n\n- **Props**\n\n ```ts\n interface SlotProps {\n /**\n * 범위가 지정된 슬롯의 인자로 전달하기 위해\n * <slot>에 전달된 모든 props\n */\n [key: string]: any\n /**\n * 슬롯 이름을 지정.\n */\n name?: string\n }\n ```\n\n- **세부 사항**:\n\n `<slot>` 엘리먼트는 `name` 속성을 사용하여 슬롯 이름을 지정할 수 있습니다.\n `name`을 지정하지 않으면 기본 슬롯으로 렌더링됩니다.\n 슬롯 엘리먼트에 전달된 추가 속성은 부모 내부에서 범위가 정의된 슬롯에 슬롯 props로 전달됩니다.\n\n 엘리먼트는 일치하는 슬롯의 컨텐츠로 대체됩니다.\n\n Vue 템플릿의 `<slot>` 엘리먼트는 JavaScript로 컴파일되므로 [네이티브 `<slot>` 엘리먼트](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)와 혼동하면 안됩니다.\n\n- **참고**: [가이드 - 슬롯](https://ko.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\n`<template>` 태그는 DOM에 렌더링없이 사용할 앨리먼트들에 대한 위치기술을 위해(placeholder)로 사용할수 있습니다. \nThe `<template>` tag is used as a placeholder when we want to use a built-in directive without rendering an element in the DOM.\n\n- **세부 사항:**\n `<template>` 의 이런 특수한 취급은 다음 디렉티브들과 함께 사용될때만 적용됩니다. \n \n - `v-if`, `v-else-if`, or `v-else`\n - `v-for`\n - `v-slot`\n \n 만약 이런 디렉티브가 없다면, [네이티브 `<template>` 앨리먼트](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)로 렌더링됩니다. \n \n `v-for`가 있는 `<template>`은 [`key` 속성](https://ko.vuejs.org/api/built-in-special-attributes.html#key)도 가질 수 있습니다. 다른 모든 속성과 디렉티브는 해당 엘리먼트가가 없으면 의미가 없으므로 버려집니다.\n\n \n 싱글 파일 컴포넌트는 [최상위 `<template>` 태그](https://ko.vuejs.org/api/sfc-spec.html#language-blocks)를 사용하여 전체 템플릿을 래핑합니다. 그 사용법은 위에서 설명한 `<template>`의 사용과는 별개입니다. 해당 최상위 태그는 템플릿 자체의 일부가 아니며 지시문과 같은 템플릿 문법을 지원하지 않습니다.\n\n- **See also:**\n - [가이드 - `v-if` on `<template>`](https://ko.vuejs.org/guide/essentials/conditional.html#v-if-on-template) \n - [가이드 - `v-for` on `<template>`](https://ko.vuejs.org/guide/essentials/list.html#v-for-on-template) \n - [가이드 - Named slots](https://ko.vuejs.org/guide/components/slots.html#named-slots) \n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$r = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\n엘리먼트의 텍스트 컨텐츠를 업데이트합니다.\n\n- **요구되는 값**: `string`\n\n- **세부 사항**:\n\n `v-text`는 엘리먼트의 [텍스트 컨텐츠](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) 속성을 설정하므로, 엘리먼트 내부의 기존 컨텐츠를 덮어씁니다. `텍스트 컨텐츠`의 일부를 업데이트해야 하는 경우, [이중 중괄호](https://ko.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)를 사용해야 합니다.\n\n- **예제**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- 아래와 같음 -->\n <span>{{msg}}</span>\n ```\n\n- **참고**: [템플릿 문법 - 텍스트 보간법](https://ko.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\n엘리먼트의 [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML)을 업데이트합니다.\n\n- **요구되는 값**: `string`\n\n- **세부 사항**:\n\n `v-html`의 내용은 Vue 템플릿 문법을 처리하지 않고 일반 HTML로 삽입됩니다. `v-html`을 사용하여 템플릿을 작성하려고 한다면, 이 방법 대신 컴포넌트를 사용하여 해결하는 방법을 고민해봐야 합니다.\n\n ::: warning 보안 참고 사항\n 웹사이트에서 임의의 HTML을 동적으로 렌더링하는 것은 [XSS 공격](https://en.wikipedia.org/wiki/Cross-site_scripting)으로 쉽게 이어질 수 있기 때문에 매우 위험할 수 있습니다. 신뢰할 수 있는 컨텐츠에만 `v-html`을 사용하고, 사용자가 제공하는 컨텐츠에는 **절대** 사용하면 안됩니다.\n :::\n\n [싱글 파일 컴포넌트(SFC)](https://ko.vuejs.org/guide/scaling-up/sfc.html)에서 `scoped`(범위를 지정한) Style은 `v-html` 내부 컨텐츠에 적용되지 않습니다. 왜냐하면 해당 HTML은 Vue의 템플릿 컴파일러에서 처리되지 않기 때문입니다. 범위를 지정한 CSS로 `v-html` 컨텐츠를 대상으로 지정하려는 경우, [CSS 모듈](./sfc-css-features#css-modules) 또는 BEM과 같은 수동 범위 지정 방법과 함께 전역 `<style>` 엘리먼트를 사용할 수 있습니다.\n\n- **예제**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **참고**: [템플릿 문법 - HTML 출력](https://ko.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\n표현식의 [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) 값을 기반으로 엘리먼트의 가시성을 전환합니다.\n\n- **요구되는 값**: `any`\n\n- **세부 사항**:\n\n `v-show`는 인라인 스타일을 통해 `display` CSS 속성을 설정하며, 엘리먼트가 표시될 때 초기 `display` 값을 설정하려고 시도합니다. 또한 조건이 변경될 때 전환을 트리거합니다.\n\n- **참고**: [조건부 렌더링 - v-show](https://ko.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\n표현식의 truthy 값을 기반으로 엘리먼트 또는 템플릿 일부를 조건부로 렌더링합니다.\n\n- **요구되는 값**: `any`\n\n- **세부 사항**:\n\n `v-if` 엘리먼트가 토글되면, 엘리먼트와 여기에 포함된 디렉티브/컴포넌트가 파괴되고 재구성됩니다. 초기 조건 값이 falsy이면, 내부 컨텐츠가 전혀 렌더링되지 않습니다.\n\n 텍스트 또는 여러 엘리먼트를 포함하는 조건부 블록을 나타내기 위해 `<template>`에 사용할 수도 있습니다.\n\n 이 디렉티브는 조건이 변경될 때, [트랜지션](https://ko.vuejs.org/guide/built-ins/transition.html)을 트리거합니다.\n\n `v-for`와 함께 사용하는 경우, `v-if`의 우선 순위가 높습니다. 하나의 엘리먼트에 이 두 디렉티브을 함께 사용하는 것은 권장되지 않습니다. 자세한 내용은 [리스트 렌더링](https://ko.vuejs.org/guide/essentials/list.html#v-for-with-v-if)을 참고하세요.\n\n- **참고**: [조건부 렌더링 - v-if](https://ko.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`v-if` 또는 `v-else-if` 체인에 대한 `else`입니다.\n\n- **표현식을 허용하지 않습니다**.\n\n- **세부 사항**:\n\n - 제한사항: 이전 형제 엘리먼트에 `v-if` 또는 `v-else-if`가 있어야 합니다.\n\n - `<template>`에서 텍스트 또는 여러 엘리먼트를 포함하는 조건부 블록을 나타내는 데 사용할 수 있습니다.\n\n- **예제**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n 이제 나를 볼 수 있어요!\n </div>\n <div v-else>\n 아직이에요!\n </div>\n ```\n\n- **참고**: [조건부 렌더링 - v-else](https://ko.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\n`v-if`에 대한 `else if` 블록을 나타냅니다. `v-else-if`는 계속 이어서 사용할 수 있습니다.\n\n- **요구되는 값**: `any`\n\n- **세부 사항**:\n\n - 제한사항: 이전 형제 엘리먼트에 `v-if` 또는 `v-else-if`가 있어야 합니다.\n\n - `<template>`에서 텍스트 또는 여러 엘리먼트를 포함하는 조건부 블록을 나타내는 데 사용할 수 있습니다.\n\n- **예제**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n A/B/C 가 아니야!\n </div>\n ```\n\n- **참고**: [조건부 렌더링 - v-else-if](https://ko.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\n소스 데이터를 기반으로 엘리먼트 또는 템플릿 블록을 여러 번 렌더링합니다.\n\n- **요구되는 값**: `Array | Object | number | string | Iterable`\n\n- **세부 사항**:\n\n 디렉티브는 반복되는 과정의 현재 값에 별칭을 제공하기 위해, 특수 문법인 `alias in expression`(표현식 내 별칭)을 사용해야 합니다:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n 또한 인덱스(객체에서 사용되는 경우 키)의 별칭을 지정할 수도 있습니다:\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n `v-for`의 기본 동작은 엘리먼트를 이동하지 않고 제자리에 패치(patch)하려고 합니다. 강제로 엘리먼트를 재정렬하려면, 특수 속성 `key`를 사용하여 순서 지정을 위한 힌트를 제공해야 합니다:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for`는 네이티브 `Map`,`Set`과 더불어 [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol)을 구현한 값에서도 작동합니다.\n\n- **참고**:\n - [가이드 - 리스트 렌더링](https://ko.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\n엘리먼트에 이벤트 리스너를 연결합니다.\n\n- **단축 문법:** `@`\n\n- **요구되는 값**: `Function | Inline Statement | Object (without argument)`\n\n- **인자:** `event` (선택사항: 객체 문법을 사용하는 경우)\n\n- **수식어:**\n\n - `.stop` - `event.stopPropagation()` 호출.\n - `.prevent` - `event.preventDefault()` 호출.\n - `.capture` - 캡처 모드로 이벤트 등록.\n - `.self` - 이벤트가 이 엘리먼트에서 전달된 경우에만 트리거 됨.\n - `.{keyAlias}` - 이벤트가 특정 키에 대해서만 트리거 됨.\n - `.once` - 이벤트가 한 번만 트리거 됨(일회용처럼).\n - `.left` - 마우스 왼쪽 버튼으로만 이벤트가 트리거 됨.\n - `.right` - 마우스 오른쪽 버튼으로만 이벤트가 트리거 됨.\n - `.middle` - 마우스 중앙(힐 클릭) 버튼으로만 이벤트가 트리거 됨.\n - `.passive` - `{ passive: true }` 옵션으로 DOM 이벤트를 등록.\n\n- **세부 사항**:\n\n 이벤트 타입은 인자로 표시됩니다. 표현식은 메서드 이름 또는 인라인 명령문이거나, 수식어가 있는 경우 생략될 수 있습니다.\n\n 일반 엘리먼트에 사용되면 [**네이티브 DOM 이벤트**](https://developer.mozilla.org/en-US/docs/Web/Events)만 수신합니다. 커스텀 엘리먼트 컴포넌트에서 사용되는 경우, 해당 자식 컴포넌트에서 발송(emit)하는 **커스텀 이벤트**를 수신합니다.\n\n 네이티브 DOM 이벤트를 수신할 때, 메서드의 인자는 네이티브 이벤트 뿐 입니다. 인라인 명령문을 사용하는 경우, 명령문은 특수 속성인 `$event`로 `v-on:click=\"handle('ok', $event)\"`와 같이 이벤트 객체에 접근할 수 있습니다.\n\n `v-on`은 인자 없이 `이벤트(키): 리스너(값)` 형식의 객체 바인딩도 지원합니다. 수식어는 객체 문법을 사용할 때는 지원하지 않습니다.\n\n- **예제**\n\n ```html\n <!-- 메서드 핸들러 -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- 동적 이벤트 -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- 인라인 표현식 -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- 단축 문법 -->\n <button @click=\"doThis\"></button>\n\n <!-- 단축 문법 동적 이벤트 -->\n <button @[event]=\"doThis\"></button>\n\n <!-- 전파 중지 -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- event.preventDefault() 작동 -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- 표현식 없이 event.preventDefault()만 사용 -->\n <form @submit.prevent></form>\n\n <!-- 수식어 이어서 사용 -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- 키 별칭을 수식어로 사용 -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- 클릭 이벤트 단 한 번만 트리거 -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- 객체 문법 -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n 자식 컴포넌트의 커스텀 이벤트 수신 대기(자식에서 \"my-event\"가 발생하면 핸들러가 호출됨):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- 인라인 표현식 -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **참고**:\n - [이벤트 핸들링](https://ko.vuejs.org/guide/essentials/event-handling.html)\n - [컴포넌트 - 이벤트 청취하기](https://ko.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\n하나 이상의 속성 또는 컴포넌트 prop을 표현식에 동적으로 바인딩합니다.\n\n- **단축 문법:**\n - `:` 또는 `.`(`.prop` 수식어를 사용할 때)\n - 속성(attribute)과 바인딩된 값이 같은 이름을 가질 경우 값을 생략할 수 있음 <sup class=\"vt-badge\">3.4+</sup>\n\n- **요구되는 값**: `any (인자 있이) | Object (인자 없이)`\n\n- **인자:** `attrOrProp (optional)`\n\n- **수식어:**\n\n - `.camel` - kebab-case 속성 이름을 camelCase로 변환.\n - `.prop` - 바인딩을 [DOM 속성(property: 이하 프로퍼티)](https://developer.mozilla.org/en-US/docs/Web/API/Element#properties)으로 강제 설정. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - 바인딩을 [DOM 속성(attribute)](https://developer.mozilla.org/en-US/docs/Glossary/Attribute)으로 강제 설정. <sup class=\"vt-badge\">3.2+</sup>\n\n- **사용법**:\n\n `class` 또는 `style` 속성을 바인딩하는 데 사용되는 경우, `v-bind`는 배열 또는 객체와 같이 값을 추가할 수 있는 타입을 지원합니다. 자세한 내용은 아래 링크된 가이드 섹션을 참고합시다.\n\n 엘리먼트에 바인딩을 설정할 때, Vue는 기본적으로 연산자 검사를 위한 `in`을 사용하여, 엘리먼트에 프로퍼티로 정의된 키가 있는지 확인합니다. 프로퍼티가 정의되면, Vue는 속성 대신 DOM 프로퍼티로 값을 설정합니다. 이것은 대부분의 경우 작동하지만, `.prop` 또는 `.attr` 수식어를 명시적으로 사용하여 이 동작을 재정의할 수 있습니다. 이것은 특히 [커스텀 엘리먼트로 작업](https://ko.vuejs.org/guide/extras/web-components.html#passing-dom-properties)할 때 필요합니다.\n\n 컴포넌트 prop 바인딩에 사용될 때 prop은 자식 컴포넌트에서 적절하게 선언되어야 합니다.\n\n 인자 없이 사용하는 경우, 속성을 이름-값 쌍으로 포함하는 객체를 바인딩하는 데 사용할 수 있습니다. 이 모드에서 `class`와 `style`은 배열 또는 객체를 지원하지 않습니다.\n\n- **예제**\n\n ```html\n <!-- 속성 바인딩 -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- 동적인 속성명 -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- 단축 문법 -->\n <img :src=\"imageSrc\" />\n\n <!-- 같은 이름 생략 가능 (3.4+), 오른쪽과 같음 :src=\"src\" -->\n <img :src />\n \n <!-- 단축 문법과 동적 속성명 -->\n <button :[key]=\"value\"></button>\n\n <!-- 인라인으로 문자열 결합 -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- class 바인딩 -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- style 바인딩 -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- 속성을 객체로 바인딩 -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- prop 바인딩. \"prop\"은 자식 컴포넌트에서 선언되어 있어야 함 -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- 자식 컴포넌트와 공유될 부모 props를 전달 -->\n <MyComponent v-bind=\"$props\" />\n \n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n `.prop` 수식어에는 전용 단축 문법 `.`가 있습니다:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- 위 코드는 아래와 같이 단축할 수 있음 -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n `.camel` 수식어는 DOM 내 템플릿을 사용할 때, `v-bind`의 속성명을 카멜라이징(camelizing)할 수 있습니다. 예를 들면, SVG `viewBox` 속성:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n 문자열 템플릿을 사용하거나 템플릿을 빌드 과정으로 미리 컴파일하는 경우에는 `.camel`이 필요하지 않습니다.\n\n- **참고**:\n - [가이드 - 클래스와 스타일 바인딩](https://ko.vuejs.org/guide/essentials/class-and-style.html)\n - [가이드 - Props: Props 전달에 관한 심화](https://ko.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\n사용자 입력을 받는 폼(form) 엘리먼트 또는 컴포넌트에 양방향 바인딩을 만듭니다.\n\n- **요구되는 값**: 사용자 입력을 받는 폼 엘리먼트 또는 컴포넌트의 출력 값에 따라 다름.\n\n- **다음으로 제한됨**:\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - 컴포넌트\n\n- **수식어:**\n\n - [`.lazy`](https://ko.vuejs.org/guide/essentials/forms.html#lazy) - `input` 대신 `change` 이벤트를 수신함.\n - [`.number`](https://ko.vuejs.org/guide/essentials/forms.html#number) - 유효한 입력 문자열을 숫자로 변환하여 전달.\n - [`.trim`](https://ko.vuejs.org/guide/essentials/forms.html#trim) - 사용자 입력의 공백을 트리밍.\n\n- **참고**:\n\n - [가이드 - Form 입력 바인딩](https://ko.vuejs.org/guide/essentials/forms.html)\n - [가이드 - 이벤트: `v-model`과 함께 사용하기](https://ko.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\n이름이 있는 슬롯 또는 props를 받을 것으로 예상되는 범위형 (Scoped) 슬롯을 나타냅니다.\n\n- **단축 문법:** `#`\n\n- **요구되는 값**: JavaScript expression that is valid in a function argument position, including support for destructuring. Optional - only needed if expecting props to be passed to the slot.\n\n- **인자:** 슬롯 이름 (선택적, 기본값은 `default`)\n\n- **다음으로 제한됨**:\n\n - `<template>`\n - [컴포넌트](https://ko.vuejs.org/guide/components/slots.html#scoped-slots) (props를 수신할 기본 슬롯만 있는 경우)\n\n- **예제**\n\n ```html\n <!-- 이름이 있는 슬롯 -->\n <BaseLayout>\n <template v-slot:header>\n 해더 컨텐츠\n </template>\n\n <template v-slot:default>\n 기본 슬롯 컨텐츠\n </template>\n\n <template v-slot:footer>\n 푸터 컨텐츠\n </template>\n </BaseLayout>\n\n <!-- props를 수신할 기본 슬롯 -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- props를 수신할 기본 슬롯, 분해할당을 사용 -->\n <Mouse v-slot=\"{ x, y }\">\n 마우스 위치: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **참고**:\n - [가이드 - 슬롯](https://ko.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\n이 엘리먼트와 모든 자식 엘리먼트의 컴파일을 생략합니다.\n\n- **표현식을 허용하지 않습니다**.\n\n- **세부 사항**:\n\n `v-pre`가 있는 엘리먼트 내에서 모든 Vue 템플릿 구문은 그대로 유지되고 렌더링됩니다. 가장 일반적인 사용 사례는 이중 중괄호 태그를 표시하는 것입니다.\n\n- **예제**\n\n ```html\n <span v-pre>{{ 이곳은 컴파일되지 않습니다. }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\n엘리먼트와 컴포넌트를 한 번만 렌더링하고, 향후 업데이트를 생략합니다.\n\n- **표현식을 허용하지 않습니다**.\n\n- **세부 사항**:\n\n 이후 다시 렌더링할 때 엘리먼트/컴포넌트 및 모든 자식들은 정적 컨텐츠로 처리되어 생략됩니다. 이것은 업데이트 성능을 최적화하는 데 사용할 수 있습니다.\n\n ```html\n <!-- 단일 엘리먼트 -->\n <span v-once>절대 바뀌지 않음: {{msg}}</span>\n <!-- 자식이 있는 엘리먼트 -->\n <div v-once>\n <h1>댓글</h1>\n <p>{{msg}}</p>\n </div>\n <!-- 컴포넌트 -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- `v-for` 디렉티브 -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n 3.2부터는 [`v-memo`](#v-memo)를 사용하여 무효화 조건으로 템플릿의 일부를 메모화할 수도 있습니다.\n\n- **참고**:\n - [가이드 - 템플릿 문법: 텍스트 보간법](https://ko.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **요구되는 값**: `any[]`\n\n- **세부 사항**:\n\n 템플릿의 하위 트리를 메모합니다. 엘리먼트와 컴포넌트 모두에 사용할 수 있습니다. 디렉티브는 메모이제이션을 위해 비교할 의존성 값의 고정된 길이의 배열을 요구합니다. 배열의 모든 값이 마지막 렌더링과 같으면 전체 하위 트리에 대한 업데이트를 생략합니다. 예를 들어:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n 컴포넌트가 다시 렌더링될 때 `valueA`와 `valueB`가 모두 동일하게 유지되면, 이 `<div>`와 하위 항목에 대한 모든 업데이트를 생략합니다. 사실, 하위 트리의 메모된 복사본을 재사용할 수 있기 때문에 가상 DOM VNode 생성도 생략합니다.\n\n 메모이제이션 배열을 올바르게 지정하는 것이 중요합니다. 그렇지 않으면 실제로 적용되어야 하는 업데이트를 건너뛸 수 있습니다. 빈 의존성 배열(`v-memo=\"[]\"`)이 있는 `v-memo`는 기능적으로 `v-once`와 동일합니다.\n\n **`v-for`과 함께 사용하기**\n\n `v-memo`는 성능이 중요한 시나리오에서 마이크로 최적화를 위해 제공되는 것으로, 일반적으로 거의 필요하지 않습니다. 이것이 도움이 될 수 있는 가장 일반적인 경우는 큰 리스트(`length > 1000`)를 `v-for`로 렌더링할 때입니다:\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - 선택됨: {{ item.id === selected }}</p>\n <p>...더 많은 자식 노드</p>\n </div>\n ```\n\n 컴포넌트의 `selected` 상태가 변경되면, 대부분의 아이템이 정확히 동일하게 유지되더라도 많은 양의 VNode가 생성됩니다. 여기서 `v-memo` 사용법은 본질적으로 \"아이템의 선택여부가 바뀐 경우에만, 이 아이템을 업데이트하십시오\"입니다. 이렇게 하면 영향을 받지 않는 모든 아이템이 이전 VNode를 재사용하고, 차이점 비교를 생략할 수 있습니다. Vue는 아이템의 `:key`로 자동 추론하므로, 메모 의존성 배열에 `item.id`를 포함할 필요가 없습니다.\n\n :::warning\n `v-for`와 함께 `v-memo`를 사용할 때, 동일한 엘리먼트에 사용되는지 확인이 필요합니다. **`v-memo`는 `v-for` 내에서 작동하지 않습니다**.\n :::\n\n `v-memo`는 자식 컴포넌트 업데이트 확인이 최적화되지 않은 특정 엣지 케이스에서 원치 않는 업데이트를 수동으로 방지하기 위해 컴포넌트에 사용할 수도 있습니다. 그러나 필요한 업데이트를 건너뛰지 않도록 올바른 의존성 배열을 지정하는 것은 개발자의 책임입니다.\n\n- **참고**:\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\n준비될 때까지 컴파일되지 않은 템플릿을 숨기는 데 사용됩니다.\n\n- **표현식을 허용하지 않습니다**.\n\n- **세부 사항**:\n\n **이 디렉티브는 빌드 과정이 없는 설정에서만 필요합니다**.\n\n DOM 내 템플릿을 사용할 때, \"컴파일되지 않은 템플릿이 순간 보이는 현상\"이 있을 수 있습니다. 이러면 사용자는 컴포넌트가 렌더링된 컨텐츠로 대체할 때까지 이중 중괄호 태그를 볼 수 있습니다.\n\n `v-cloak`은 연결된 컴포넌트 인스턴스가 마운트될 때까지 엘리먼트에 남아 있습니다. `[v-cloak] { display: none }`과 같은 CSS 규칙과 결합하여, 컴포넌트가 준비될 때까지 템플릿을 숨기는 데 사용할 수 있습니다.\n\n- **예제**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n `<div>`는 컴파일이 완료될 때까지 표시되지 않습니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\n특수 속성 `key`는 Vue의 가상 DOM 알고리즘이 이전 목록과 새 노드 목록을 비교할 때 vnode를 식별하는 힌트로 주로 사용됩니다.\n\n- **요구되는 값**: `number | string | symbol`\n\n- **세부 사항**:\n\n 키가 없으면 Vue는 엘리먼트 이동을 최소화하고 동일한 유형의 엘리먼트를 가능한 한 제자리에서 패치/재사용하는 알고리즘을 사용합니다.\n 키를 사용하면 키의 순서 변경에 따라 엘리먼트를 재정렬하고 더 이상 존재하지 않는 키가 있는 엘리먼트는 항상 제거/파기됩니다.\n\n 동일한 공통 부모의 자식들은 **고유 키**가 있어야 합니다.\n 키가 중복되면 렌더링 에러가 발생합니다.\n\n `v-for`에서 가장 일반적으로 사용 됩니다:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n 또는 엘리먼트/컴포넌트를 재사용하는 대신 강제로 교체하는 데 사용할 수도 있습니다.\n 다음과 같은 경우에 유용할 수 있습니다:\n\n - 컴포넌트의 생명 주기 훅을 올바르게 트리거함.\n - 트랜지션 트리거\n\n 예제:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n `text`가 변경되면 `<span>`이 패치 대신 항상 교체되므로 트랜지션이 트리거됩니다.\n\n- **참고**: [가이드 - 리스트 렌더링: `key`를 통한 상태유지](https://ko.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\n[템플릿 참조](https://ko.vuejs.org/guide/essentials/template-refs.html)를 의미합니다.\n\n- **요구되는 값**: `string | Function`\n\n- **세부 사항**:\n\n `ref` is used to register a reference to an element or a child component.\n\n In Options API, the reference will be registered under the component's `this.$refs` object:\n\n `ref`는 엘리먼트 또는 자식 컴포넌트를 참조하기 위해 사용됩니다.\n\n 옵션 API에서 참조는 컴포넌트의 `this.$refs` 객체 내에 등록됩니다.\n\n ```html\n <!-- 저장됨: this.$refs.p -->\n <p ref=\"p\">안녕!</p>\n ```\n\n 컴포지션 API에서 참조는 이름이 일치하는 `ref`에 저장됩니다.\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">안녕!</p>\n </template>\n ```\n\n 일반 DOM 엘리먼트에서 사용되는 경우, 참조는 해당 엘리먼트가 됩니다.\n 자식 컴포넌트에 사용되는 경우, 참조는 자식 컴포넌트 인스턴스가 됩니다.\n\n `ref`는 함수를 사용하여 참조 저장을 완전히 제어할 수 있습니다:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n 참조 등록 타이밍에 대한 중요한 참고 사항:\n 참조는 렌더 함수의 결과로 생성되므로,\n 접근하기 전에 컴포넌트가 마운트될 때까지 기다려야 합니다.\n\n `this.$refs`도 반응형이 아니므로 데이터 바인딩을 위한 템플릿에서 사용하면 안됩니다.\n\n- **참고**: \n - [가이드 - 템플릿 refs](https://ko.vuejs.org/guide/essentials/template-refs.html)\n - [Guide - 템플릿 Refs에 타입 적용하기Typing Template Refs](https://ko.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Guide - 컴포넌트 템플릿 Refs에 타입 적용하기](https://ko.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\n[동적 컴포넌트](https://ko.vuejs.org/guide/essentials/component-basics.html#dynamic-components) 바인딩에 사용합니다.\n\n- **요구되는 값**: `string | Component`\n\n- **네이티브 엘리먼트에 사용** <sup class=\"vt-badge\">3.1+</sup>\n\n `is` 속성이 네이티브 HTML 엘리먼트에 사용되면,\n 네이티브 웹 플랫폼 함수인 [커스터마이즈 빌트인 엘리먼트](https://html.spec.whatwg.org/multipage/custom-elements#custom-elements-customized-builtin-example)로 해석됩니다.\n\n 그러나 [in-DOM 템플릿 파싱 주의 사항](https://ko.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats)에 설명된 대로,\n 기본 엘리먼트를 Vue 컴포넌트로 교체하기 위해 Vue가 필요할 수 있는 사용 사례가 있습니다.\n Vue가 엘리먼트를 Vue 컴포넌트로 렌더링하도록 `is` 속성 값에 `vue:` 접두사를 붙일 수 있습니다:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **참고**:\n\n - [API - 특수 엘리먼트: `<component>`](https://ko.vuejs.org/api/built-in-special-elements.html#component)\n - [가이드 - 컴포넌트 기초: 동적 컴포넌트](https://ko.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$2 = { + version: version$r, + tags: tags$h, + globalAttributes: globalAttributes$r +}; + +const version$q = 1.1; +const tags$g = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nFornece efeitos de transição animados para um **único** elemento ou componente.\n\n- **Propriedades**\n\n ```ts\n interface TransitionProps {\n /**\n * Usado para gerar automaticamente nomes de classes CSS de transição.\n * exemplo `name: 'fade'` expandirá automaticamente para `.fade-enter`,\n * `.fade-enter-active`, etc.\n */\n name?: string\n /**\n * Decide aplicar classes CSS de transição.\n * Padrão: true\n */\n css?: boolean\n /**\n * Especifica o tipo de eventos de transição à aguardar\n * para determinar a transição e o tempo.\n * O comportamento padrão é detetar automaticamente o tipo\n * que tiver a maior duração.\n */\n type?: 'transition' | 'animation'\n /**\n * Especifica durações explícitas para as transições.\n * O comportamento padrão é esperar pelo primeiro evento `transitionend`\n * ou `animationend` no elemento de transição raiz.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Controla a sequência de tempo das transições que entram ou saem.\n * O comportamento padrão é simultâneo.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Define aplicar a transição na interpretação inicial.\n * Padrão: false\n */\n appear?: boolean\n\n /**\n * Propriedades para personalizar as classes de transição.\n * Use kebab-case nos modelos de marcação, exemplo enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **Eventos**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (apenas `v-show`)\n - `@appear-cancelled`\n\n- **Exemplo**\n\n Elemento simples:\n\n ```html\n <Transition>\n <div v-if=\"ok\">conteúdo alternado</div>\n </Transition>\n ```\n\n Forçar uma transição mudando o atributo `key`:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Componente dinâmico, com o modo de transição + animação ao aparecer:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Ouvir eventos de transição:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">conteúdo ativado</div>\n </Transition>\n ```\n\n- **Consultar também:** [Guia - Transição](https://pt.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nFornece efeitos de transição para **múltiplos** elementos ou componentes numa lista.\n\n- **Propriedades**\n\n `<TransitionGroup>` aceita as mesmas propriedades que o `<Transition>` exceto `mode`, e mais duas propriedades adicionais:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * Se não definido, desenha um fragmento.\n */\n tag?: string\n /**\n * Para personalizar as classes CSS aplicadas durante as transições de movimento.\n * Use kebab-case em modelos de marcação, exemplo move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **Eventos**\n\n `<TransitionGroup>` emite os mesmos eventos que `<Transition>`.\n\n- **Detalhes**\n\n Por padrão, `<TransitionGroup>` não desenha um elemento de DOM que envolve, mas pode ser definido através da propriedade `tag`.\n\n Note que todo filho num `<transition-group>` deve ser [**identificado unicamente**](https://pt.vuejs.org/guide/essentials/list.html#maintaining-state-with-key) para que as animações funcionem apropriadamente.\n\n `<TransitionGroup>` suporta transições de movimento através de transformações de CSS. Quando a posição dum filho na tela é mudada após uma atualização, será aplicada uma classe de movimento CSS (gerada automaticamente pelo atributo `name` ou configurada pela propriedade `move-class`). Se a propriedade de CSS `transform` é passível de transição quando a classe de movimento é aplicada, o elemento será suavemente animado até o seu destino usando a [técnica FLIP](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Exemplo**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **Consultar também:** [Guia - `TransitionGroup`](https://pt.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nArmazena para consulta imediata os componentes alternados dinamicamente envolvidos dentro.\n\n- **Propriedades**\n\n ```ts\n interface KeepAliveProps {\n /**\n * Se especificado, apenas componentes com nomes correspondidos\n * pelo `include` estarão na memória de consulta imediata.\n */\n include?: MatchPattern\n /**\n * Qualquer componente com um nome correspondidos pelo `exclude`\n * não estarão na memória de consulta imediata.\n */\n exclude?: MatchPattern\n /**\n * O número máximo de instâncias de componente à armazenar\n * na memória de consulta imediata.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Detalhes**\n\n Quando envolvido em torno dum componente dinâmico, `<KeepAlive>` armazena para consulta imediata as instâncias de componente inativo sem destruí-las.\n\n Só pode existir uma instância de componente como filho direto de `<KeepAlive>` em qualquer momento.\n\n Quando um componente é alternado dentro de `<KeepAlive>`, seus gatilhos de ciclo de vida `activated` e `deactivated` são invocados de acordo, fornecendo uma alternativa ao `mounted` e `unmounted`, que não são chamados. Isto aplica-se ao filho direto de `<KeepAlive>` e também a todos os seus descendentes.\n\n- **Exemplo**\n\n Uso básico:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Quando usado com os ramos `v-if` / `v-else`, só deve existir um componente desenhado de cada vez:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Usado em conjunto com `<Transition>`:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n Usando `include` / `exclude`:\n\n ```html\n <!-- sequência de caracteres delimitada por vírgula -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- regex (use `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- vetor (use `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Uso com `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **Consultar também:** [Guia - `KeepAlive`](https://pt.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nDesenha o conteúdo da sua ranhura numa outra parte do DOM.\n\n- **Propriedades**\n\n ```ts\n interface TeleportProps {\n /**\n * Obrigatório. Específica o contentor alvo.\n * Pode ser ou um seletor ou um elemento verdadeiro.\n */\n to: string | HTMLElement\n /**\n * Quando `true`, o conteúdo continuará na sua localização\n * original ao invés de ser movido para o contentor alvo.\n * Pode ser mudado dinamicamente.\n */\n disabled?: boolean\n }\n ```\n\n- **Exemplo**\n\n Especificando o contentor alvo:\n\n ```html\n <teleport to=\"#some-id\" />\n <teleport to=\".some-class\" />\n <teleport to=\"[data-teleport]\" />\n ```\n\n Desativar condicionalmente:\n\n ```html\n <teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </teleport>\n ```\n\n- **Consultar também:** [Guia - `Teleport`](https://pt.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nUsado para orquestrar dependências assíncronas encaixadas numa árvore de componente.\n\n- **Propriedades**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n }\n ```\n\n- **Eventos**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Detalhes**\n\n `<Suspense>` aceita duas ranhuras: a ranhura `#default` e a ranhura `#fallback`. Ele exibirá o conteúdo da ranhura de retorno (`#fallback`) enquanto desenha a ranhura padrão (`#default`) na memória.\n\n Se encontrar dependências assíncronas ([Componentes Assíncronos](https://pt.vuejs.org/guide/components/async.html) e componentes com [`async setup()`](https://pt.vuejs.org/guide/built-ins/suspense.html#async-setup)) enquanto desenha a ranhura padrão, aguardará até todos serem resolvidos antes de exibir a ranhura padrão.\n\n- **Consultar também:** [Guia - `Suspense`](https://pt.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\nUma \"meta componente\" para desenhar componentes ou elementos dinâmicos.\n\n- **Propriedades**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Detalhes**\n\n O verdadeiro componente à desenhar é determinado pela propriedade `is`.\n\n - Quando `is` for uma sequência de caracteres, poderia ser ou nome dum marcador de HTML ou o nome dum componente registado.\n\n - Alternativamente, `is` também pode ser diretamente vinculado à definição dum componente.\n\n- **Exemplo**\n\n Interpretação dos componentes com nome registado (API de Opções):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Interpretação dos componentes com a definição (API de Composição com `<script setup></script>`):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Interpretação dos elementos de HTML:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n Os todos os [componentes embutidos](./built-in-components) podem ser passados para `is`, mas devemos registá-los se quisermos passá-los pelo nome. Por exemplo:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n O registo não é obrigatório se passarmos o próprio componente à `is` no lugar do seu nome, por exemplo no `<script setup>`.\n\n Se `v-model` for usada num marcador `<component>`, o compilador do modelo de marcação a expandirá à uma propriedade `modelValue` e um ouvinte de evento `update:modelValue`, tal como faria com qualquer outro componente. No entanto, isto não será compatível com os elementos de HTML nativos, tais como `<input>` ou `<select>`. Como resultado, usar `v-model` com um elemento nativo criado dinamicamente não funcionará:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n \n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- Isto não funcionará porque 'input' é um elemento de HTML nativo -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n Na prática, este caso extremo não é comum, porque os campos de formulário nativos normalmente são envolvidos dentro de componentes em aplicações reais. Se precisarmos usar diretamente um elemento nativo então podemos dividir a `v-model` num atributo e evento manualmente.\n\n- **Consulte também** [Componentes Dinâmicos](https://pt.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nDenota as saídas de conteúdo da ranhura nos modelos de marcação\n\n- **Propriedades**\n\n ```ts\n interface SlotProps {\n /**\n * Quaisquer propriedades passadas ao <slot>\n * são passadas como argumentos para ranhuras isoladas\n */\n [key: string]: any\n /**\n * Reservada para especificação do nome da ranhura.\n */\n name?: string\n }\n ```\n\n- **Detalhes**\n\n O elemento `<slot>` pode usar o atributo `name` para especificar um nome de ranhura. Quando nenhum `name` for especificado, desenhará a ranhura padrão. Os atributos adicionais passados ao elemento da ranhura serão passados como propriedades de ranhura à ranhura isolada definida no pai.\n\n O próprio elemento será substituído pelo seu conteúdo de ranhura correspondente.\n\n Os elementos de `<slot>` nos modelos de marcação da Vue são compilados para JavaScript, então não são para serem confundidos com os [elementos `<slot>` nativos](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).\n\n- **Consulte também** [Componentes - Ranhuras](https://pt.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nO marcador `<template>` é usado como um espaço reservado quando queremos usar uma diretiva embutida sem desenhar um elemento no DOM.\n\n- **Detalhes**\n\n O manipulação especial do `<template>` apenas é acionada se for usada com uma destas diretivas:\n\n - `v-if`, `v-else-if`, ou `v-else`\n - `v-for`\n - `v-slot`\n \n Se nenhuma destas diretivas estiver presente, então será desenhado como um [elemento `<template>` nativo](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template).\n\n Um `<template>` com uma `v-for` também pode ter um [atributo `key`](https://pt.vuejs.org/api/built-in-special-attributes.html#key). Todos os outros atributos e diretivas serão descartados, porque não são relevantes sem um elemento correspondente.\n\n Os componentes de ficheiro único usam [marcador `<template>` de alto nível](https://pt.vuejs.org/api/sfc-spec.html#language-blocks) para envolver todo o modelo de marcação. Este uso é separado do uso de `<template>` descrito acima. Este marcador de alto nível não faz parte do próprio modelo de marcação e suporta a sintaxe de modelo de marcação, tais como as diretivas.\n\n- **Consulte também**\n - [Guia - `v-if` sobre o `<template>`](https://pt.vuejs.org/guide/essentials/conditional.html#v-if-on-template) \n - [Guia - `v-for` sobre o `<template>`](https://pt.vuejs.org/guide/essentials/list.html#v-for-on-template) \n - [Guia - Ranhuras Nomeadas](https://pt.vuejs.org/guide/components/slots.html#named-slots) \n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$q = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nAtualiza o conteúdo de texto do elemento.\n\n- **Espera:** `string`\n\n- **Detalhes**\n\n `v-text` funciona definindo a propriedade [`textContent`](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) do elemento, sobrescreverá qualquer conteúdo existente dentro do elemento. Se precisarmos de atualizar a parte da `textContent`, devemos usar as [interpolações de bigodes](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation).\n\n- **Exemplo**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- é o mesmo que -->\n <span>{{msg}}</span>\n ```\n\n- **Consultar também** [Sintaxe do Modelo de Marcação - Interpolação de Texto](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nAtualiza a [`innerHTML`](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML) do elemento.\n\n- **Espera:** `string`\n\n- **Detalhes:**\n\n Os conteúdos da `v-html` são inseridos como HTML simples - a sintaxe de modelo de marcação da Vue não será processada. Se estivermos a tentar compor modelos de marcação usando `v-html`, vamos tentar repensar a solução usando componentes.\n\n :::warning NOTA DE SEGURANÇA\n Interpretar dinamicamente HTML arbitrário na nossa aplicação pode ser muito perigoso porque pode facilmente conduzir a [ataques de XSS](https://en.wikipedia.org/wiki/Cross-site_scripting). Só deveríamos usar `v-html` sobre conteúdo confiável e **nunca** sobre conteúdo fornecido pelo utilizador.\n :::\n\n Nos [Componentes de Ficheiro Único](https://pt.vuejs.org/guide/scaling-up/sfc.html), os estilos `scoped` não serão aplicados ao conteúdo dentro de `v-html`, porque este HTML não é processado pelo compilador de modelos de marcação da Vue. Se quisermos mirar o conteúdo de `v-html` com CSS isolada, podemos usar os [módulos de CSS](./sfc-css-features#css-modules) ou elemento `<style>` adicional e global com uma estratégia de isolamento manual, como a BEM.\n\n- **Exemplo**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **Consultar também** [Sintaxe do Modelo de Marcação - HTML Puro](https://pt.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nAlterna a visibilidade do elemento baseado na veracidade do valor da expressão.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n `v-show` funciona definindo a propriedade de CSS `display` através de estilos em linha, e tentará respeitar o valor inicial da `display` quando o elemento estiver visível. Também aciona transições quando sua condição muda.\n\n- **Consultar também** [Interpretação Condicional - `v-show`](https://pt.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nInterpreta condicionalmente um elemento ou um fragmento de modelo de marcação baseado na veracidade do valor da expressão.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n Quando um elemento de `v-if` é alternado, o elemento e suas diretivas ou componentes contidos são destruídos e construídos novamente. Se a condição inicial for falsa, então o conteúdo interno não será interpretado de todo.\n\n Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n Esta diretiva aciona transições quando sua condição muda.\n\n Quando usada em conjunto, a `v-if` tem uma prioridade superior à `v-for`. Não recomendados usar estas duas diretivas ao mesmo tempo sobre um elemento — consulte o [guia de interpretação de lista](https://pt.vuejs.org/guide/essentials/list.html#v-for-with-v-if) por mais detalhes.\n\n- **Consultar também** [Interpretação Condicional - `v-if`](https://pt.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nDenota um \"bloco `else`\" para a `v-if` ou para uma cadeia `v-if` / `v-else-if`.\n\n- **Não espera expressões**\n\n- **Detalhes**\n\n - Restrição: o anterior elemento irmão deve ter a `v-if` ou `v-else-if`.\n\n - Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n- **Exemplo**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **Consultar também** [Interpretação Condicional - `v-else`](https://pt.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nDenota o \"bloco `else if`\" para a `v-if`. Pode ser encadeada.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n - Restrição: o anterior elemento irmão deve ter a `v-if` ou `v-else-if`.\n\n - Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n- **Exemplo**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **Consultar também** [Interpretação Condicional - `v-else-if`](https://pt.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nInterpreta o elemento ou bloco de modelo de marcação várias vezes baseada na fonte dos dados.\n\n- **Espera:** `Array | Object | number | string | Iterable`\n\n- **Detalhes**\n\n O valor da diretiva deve usar a sintaxe especial `alias in expression` para fornecer um pseudónimo para o elemento atual a ser iterado:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Alternativamente, também podemos especificar um pseudónimo para o índice (ou a chave se usada sobre um objeto):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n O comportamento padrão da `v-for` tentará remendar os elementos no lugar sem movê-los. Para forçar a reordenação de elementos, devemos fornecer uma sugestão de ordenação com o atributo especial `key`:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` também pode trabalhar com valores que implementam o [Protocolo Iterável](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), incluindo os `Map` e `Set` nativos.\n\n- **Consultar também**\n - [Interpretação de Lista](https://pt.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nAnexa um ouvinte de evento ao elemento.\n\n- **Atalho:** `@`\n\n- **Espera:** `Function | Inline Statement | Object (sem argumento)`\n\n- **Argumento:** `event` (opcional se estivermos usando a sintaxe de Objeto)\n\n- **Modificadores**\n\n - `.stop` - chama `event.stopPropagation()`.\n - `.prevent` - chama `event.preventDefault()`.\n - `.capture` - adiciona ouvinte de evento no modo de captura.\n - `.self` - apenas aciona o manipulador se o evento fosse despachado a partir deste elemento.\n - `.{keyAlias}` - apenas aciona o manipulador sobre certas teclas.\n - `.once` - aciona o manipulador no máximo uma vez.\n - `.left` - apenas aciona o manipulador para os eventos de rato do botão esquerdo.\n - `.right` - apenas aciona o manipulador para os eventos de rato do botão direito.\n - `.middle` - apenas aciona o manipulador para os eventos de rato do botão do meio.\n - `.passive` - anexa um evento de DOM com `{ passive: true }`.\n\n- **Detalhes**\n\n O tipo de evento é denotado pelo argumento. A expressão pode ser um nome de método, uma declaração em linha, ou omitida se existirem modificadores presentes.\n\n Quando usada num elemento normal, apenas ouve os [**eventos de DOM nativos**](https://developer.mozilla.org/en-US/docs/Web/Events). Quando usada num componente de elemento personalizado, ouve os **eventos personalizados** emitidos sobre este componente filho.\n\n Quando ouvimos os eventos de DOM nativos, o método recebe o evento nativo como único argumento. Se usarmos a declaração em linha, a declaração tem acesso à propriedade `$event` especial: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` também suporta vínculo a um objeto de pares de evento / ouvinte sem um argumento. Nota que quando usamos a sintaxe de objeto, esta não suporta quaisquer modificadores.\n\n- **Exemplo**\n\n ```html\n <!-- manipulador de método -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- evento dinâmico -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- declaração em linha -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- atalho -->\n <button @click=\"doThis\"></button>\n\n <!-- atalho de evento dinâmico -->\n <button @[event]=\"doThis\"></button>\n\n <!-- parar propagação -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- impedir o padrão -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- impedir o padrão sem expressão -->\n <form @submit.prevent></form>\n\n <!-- encadear modificadores -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- modificador de tecla usando pseudónimo de tecla -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- o evento de clique será acionado no máximo uma vez -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- sintaxe de objeto -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Ouvindo eventos personalizados dum componente filho (o manipulador é chamado quando \"my-event\" é emitido sobre o filho):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- declaração em linha -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **Consultar também**\n - [Manipulação de Eventos](https://pt.vuejs.org/guide/essentials/event-handling.html)\n - [Componentes - Eventos Personalizados](https://pt.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nVincula dinamicamente um ou mais atributos, ou uma propriedade de componente à uma expressão.\n\n- **Atalho:**\n - `:` ou `.` (quando usamos o modificador `.prop`)\n - Omitir o valor (quando o atributo e o valor vinculado tiverem o mesmo nome) <sup class=\"vt-badge\">3.4+</sup>\n\n- **Espera:** `any (com argumento) | Object (sem argumento)`\n\n- **Argumento:** `attrOrProp (opcional)`\n\n- **Modificadores**\n\n - `.camel` - transforma o nome de atributo em caixa espetada em caixa de camelo.\n - `.prop` - força um vínculo a ser definido como uma propriedade do DOM. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - força um vínculo a ser definido como um atributo de DOM. <sup class=\"vt-badge\">3.2+</sup>\n\n- **Uso**\n\n Quando usada para vincular o atributo `class` ou `style`, `v-bind` suporta tipos de valores adicionar como Vetor ou Objeto. Consulte a seção do guia ligado abaixo por mais detalhes.\n\n Quando definimos um vínculo num elemento, a Vue por padrão verifica se o elemento tem a chave definida como uma propriedade usando uma verificação do operador `in`. Se a propriedade for definida, a Vue definirá o valor como uma propriedade de DOM ao invés dum atributo. Isto deve funciona na maioria dos casos, mas podemos sobrepor este comportamento ao usar explicitamente os modificadores `.prop` ou `.attr`. Isto é algumas vezes necessário, especialmente quando [trabalhamos com elementos personalizados](https://pt.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n Quando usada para vínculos de propriedade de componente, a propriedade deve ser declarada apropriadamente no componente filho.\n\n Quando usada sem um argumento, pode ser usada para vincular um objeto contendo pares de nome-valor de atributo.\n\n- **Exemplo**\n\n ```html\n <!-- vincular um atributo -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- nome de atributo dinâmico -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- atalho -->\n <img :src=\"imageSrc\" />\n\n <!-- atalho de mesmo nome (3.4+), expande a `:src=\"src\"` -->\n <img :src />\n\n <!-- atalho de nome de atributo dinâmico -->\n <button :[key]=\"value\"></button>\n\n <!-- com concatenação de sequência de caracteres em linha -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- vínculos de classe -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- vínculos de estilo -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- vincular um objeto de atributos -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- vincular propriedades. -->\n <!-- \"prop\" deve ser declarada no componente filho. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- passar as propriedades do pai em comum com um componente filho -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n O modificador `.prop` também tem um atalho dedicado `.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- equivalente a -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n O modificador `.camel` permite a camelização dum nome de atributo de `v-bind` quando usamos modelos de marcação no DOM, por exemplo o atributo `viewBox` de SVG:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n `.camel` não é necessário se estivermos a usar modelos de marcação de sequência de caracteres, pré-compilar o modelo de marcação com uma etapa de construção.\n\n- **Consultar também**\n - [Vínculos de Classe e Estilo](https://pt.vuejs.org/guide/essentials/class-and-style.html)\n - [Componentes - Detalhes da Passagem de Propriedade](https://pt.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nCria um vínculo bidirecional num elemento de entrada de formulário ou um componente.\n\n- **Espera:** variar baseado no valor do elemento de entradas de formulário ou na saída de componentes\n\n- **Limitado a:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - componentes\n\n- **Modificadores**\n\n - [`.lazy`](https://pt.vuejs.org/guide/essentials/forms.html#lazy) - ouve os eventos de `change` ao invés de `input`\n - [`.number`](https://pt.vuejs.org/guide/essentials/forms.html#number) - converte uma sequência de caracteres de entrada válida em números.\n - [`.trim`](https://pt.vuejs.org/guide/essentials/forms.html#trim) - apara a entrada\n\n- **Consultar também**\n\n - [Vínculos de Entrada de Formulário](https://pt.vuejs.org/guide/essentials/forms.html)\n - [Eventos de Componente - Uso com `v-model`](https://pt.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nDenota ranhuras nomeadas ou ranhuras isoladas que esperam receber propriedades.\n\n- **Atalho:** `#`\n\n- **Espera:** expressão de JavaScript que é válido numa posição de argumento de função, incluindo suporte para desestruturação. Opcional - apenas necessário se esperamos propriedades serem passadas para a ranhura.\n\n- **Argumento:** nome da ranhura (opcional, predefinido para `default`)\n\n- **Limitado a:**\n\n - `<template>`\n - [componentes](https://pt.vuejs.org/guide/components/slots.html#scoped-slots) (para única ranhura padrão com propriedades)\n\n- **Exemplo**\n\n ```html\n <!-- Ranhuras nomeadas -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- Ranhura nomeada que recebe propriedades -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Ranhura padrão que recebe propriedades, com desestruturação -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **Consultar também**\n - [Componentes - Ranhuras](https://pt.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nIgnora a compilação para este elemento e todos os seus filhos.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n Dentro do elemento com `v-pre`, toda a sintaxe de modelo de marcação da Vue será preservada e desenhada como está. O caso de uso mais comum disto é a exibição de marcadores de bigodes puros.\n\n- **Exemplo**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nDesenha o elemento e o componente apenas uma vez, e ignora as futuras atualizações.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n Nos redesenhos subsequentes, o elemento ou componente e todos os seus filhos serão tratados como conteúdo estático e ignorados. Isto pode ser usado para otimizar o desempenho da atualização.\n\n ```html\n <!-- elemento único -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- o elemento tem filhos -->\n <div v-once>\n <h1>comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- componente -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- diretiva `v-for` -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Desde a 3.2, também podemos memorizar parte do modelo de marcação com condições de invalidação usando a [`v-memo`](#v-memo).\n\n- **Consultar também**\n - [Sintaxe de Vínculo de Dados - Interpolações](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [`v-memo`](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **Espera:** `any[]`\n\n- **Detalhes**\n\n Memoriza uma sub-árvore do modelo de marcação. Pode ser usada em ambos elementos e componentes. A diretiva espera um vetor de valores de dependência de comprimento fixo à comparar para a memorização. Se todos os valores no vetor fossem os mesmos que os da última interpretação, então as atualizações para a sub-árvore inteira serão ignoradas. Por exemplo:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n Quando o componente redesenha-se, se ambos `valueA` e `valueB` continuarem os mesmos, todas as atualizações para este `<div>` e seus filhos serão ignoradas. De fato, mesmo a criação nó virtual do DOM virtual também será ignorada uma vez que a cópia memorizada da sub-árvore pode ser usada novamente.\n\n É importante especificar o vetor de memorização corretamente, de outro modo podemos ignorar atualizações que deveriam de fato ser aplicadas. `v-memo` com um vetor de dependência vazio (`v-memo=\"[]\"`) seria funcionalmente equivalente à `v-once`.\n\n **Uso com `v-for`**\n\n `v-memo` é fornecida exclusivamente para micro otimizações em cenários de desempenho crítico e deveriam ser raramente necessários. O caso de uso mais comum onde isto pode ser útil é quando desenhamos grandes listas `v-for` (onde `length > 1000`):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n Quando o estado `selected` do componente mudar, será criada uma grande quantidade de nós virtuais, embora a maioria dos itens permaneça exatamente igual. O uso de `v-memo` neste contexto está essencialmente a dizer \"apenas atualize este item se tiver passado de não selecionado para selecionado, ou o contrário\". Isto permite que todos os itens não afetados reusarem seus anteriores nós virtuais e ignorar a diferenciação inteiramente. Nota que não precisamos incluir `item.id` no vetor de dependência da `v-memo` neste contexto, uma vez que a Vue atualmente a infere a partir da `:key` do item.\n\n :::warning AVISO\n Quando usamos a `v-memo` com a `v-for`, devemos certificar-nos que são usados no mesmo elemento. **`v-memo` não funciona dentro da `v-for`**.\n :::\n\n `v-memo` também pode ser usada nos componentes para manualmente impedir atualizações indesejadas em certos casos extremos onde a verificação da atualização do componente filho não foi otimizado. Mas novamente, é responsabilidade do programador especificar os vetores de dependência correta para evitar ignorar atualizações necessárias.\n\n- **Consultar também**\n - [`v-once`](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUsada para esconder o modelo de marcação que ainda não foi compilado até que estiver pronto.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n **Esta diretiva apenas é necessária nas configurações sem etapa de construção.**\n\n Quando usamos os modelos de marcação no DOM, pode existir um \"piscar de modelos de marcação não compilados\": o utilizador pode ver os marcadores de bigodes puros até o componente montado substituí-los com componente desenhado.\n\n `v-cloak` permanecerá no elemento até que a instância do componente associado for montada. Combinada com as regras de CSS como `[v-cloak] { display: none }`, pode ser usada para esconder os modelos de marcação puros até o componente estiver pronto.\n\n- **Exemplo**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n O `<div>` não será visível até que a compilação estiver concluída.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\nO atributo especial `key` é primariamente usado como uma sugestão para o algoritmo do DOM virtual da Vue identificar os nós virtuais quando diferenciar a nova lista de nós contra a antiga lista.\n\n- **Espera:** `number | string | symbol`\n\n- **Detalhes**\n\n Sem chaves, a Vue usa um algoritmo que minimiza o movimento de elemento e tenta remendar ou reusar elementos do mesmo tipo no lugar o máximo possível. Com chaves, reorganizará os elementos baseado na mudança de ordem das chaves, e os elementos com chaves que não estão mais presentes sempre serão removidos ou destruídos.\n\n Os filhos do mesmo pai comum devem ter **chaves únicas**. As chaves duplicadas causarão erros de interpretação.\n\n O caso de uso mais comum é combinado com `v-for`:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n Também pode ser usado para forçar a substituição dum elemento ou componente ao invés de reusá-lo. Isto pode ser útil quando queremos:\n\n - Acionar corretamente os gatilhos do ciclo de vida dum componente\n - Acionar transições\n\n Por exemplo:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n Quando `text` mudar, o `<span>` sempre será substituído ao invés de ser remendado, depois uma transição será acionada.\n\n- **Consulte também** [Guia - Interpretação de Lista - Mantendo o Estado com `key`](https://pt.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nDenota uma [referência do modelo de marcação](https://pt.vuejs.org/guide/essentials/template-refs.html).\n\n- **Espera:** `string | Function`\n\n- **Detalhes**\n\n `ref` é usado para registar uma referência à um elemento ou à um componente filho.\n\n Na API de Opções, a referência será registada sob o objeto `this.$refs` do componente:\n\n ```html\n <!-- armazenado como this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n Na API de Composição, a referência será armazenada em uma `ref` com o nome correspondente:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n Se usado sobre um elemento de DOM simples, a referência será este elemento; se usada sobre um componente filho, a referência será a instância do componente filho.\n\n Alternativamente, a `ref` pode aceitar um valor de função que fornece controlo total sobre onde armazenar a referência:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n Uma nota importante sobre o tempo de registo da referência: uma vez que as próprias referências são criadas como resultado da função de interpretação, devemos esperar até o componente ser montado antes de acessá-las.\n\n `this.$refs` também não é reativa, portanto não devemos tentar usá-la nos modelos de marcação para vínculo de dados.\n\n- **Consulte também**\n - [Guia - Referências do Modelo de Marcação](https://pt.vuejs.org/guide/essentials/template-refs.html)\n - [Guia - Tipos para Referências do Modelo de Marcação](https://pt.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" data-text=\"typescript\" />\n - [Guia - Tipos para Referências do Modelo de Marcação do Componente](https://pt.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" data-text=\"typescript\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\nUsado para vincular os [componentes dinâmicos](https://pt.vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Espera:** `string | Component`\n\n- **Uso sobre os elementos nativos** <sup class=\"vt-badge\">3.1+</sup>\n\n Quando o atributo `is` for usado sobre um elemento de HTML nativo, será interpretado como um [elemento embutido personalizado](https://html.spec.whatwg.org/multipage/custom-elements#custom-elements-customized-builtin-example), que é uma funcionalidade da plataforma da Web nativa.\n\n Existe, no entanto, um caso de uso onde podemos precisar que a Vue substitua um elemento nativo por um elemento da Vue, como explicado nas [Advertências de Analise do Modelo de Marcação de DOM](https://pt.vuejs.org/guide/essentials/component-basics.html#dom-template-parsing-caveats). Nós podemos prefixar o valor do atributo `is` com `vue:` assim a Vue interpretará o elemento como um componente de Vue:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **Consulte também**\n\n - [Elementos Especiais Embutidos - `<component>`](https://pt.vuejs.org/api/built-in-special-elements.html#component)\n - [Componentes Dinâmicos](https://pt.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$3 = { + version: version$q, + tags: tags$g, + globalAttributes: globalAttributes$q +}; + +const version$p = 1.1; +const tags$f = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\n为**单个**元素或组件提供动画过渡效果。\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * 用于自动生成过渡 CSS class 名。\n * 例如 `name: 'fade'` 将自动扩展为 `.fade-enter`、\n * `.fade-enter-active` 等。\n */\n name?: string\n /**\n * 是否应用 CSS 过渡 class。\n * 默认:true\n */\n css?: boolean\n /**\n * 指定要等待的过渡事件类型\n * 来确定过渡结束的时间。\n * 默认情况下会自动检测\n * 持续时间较长的类型。\n */\n type?: 'transition' | 'animation'\n /**\n * 显式指定过渡的持续时间。\n * 默认情况下是等待过渡效果的根元素的第一个 `transitionend`\n * 或`animationend`事件。\n */\n duration?: number | { enter: number; leave: number }\n /**\n * 控制离开/进入过渡的时序。\n * 默认情况下是同时的。\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * 是否对初始渲染使用过渡。\n * 默认:false\n */\n appear?: boolean\n\n /**\n * 用于自定义过渡 class 的 prop。\n * 在模板中使用短横线命名,例如:enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **事件**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show` only)\n - `@appear-cancelled`\n\n- **示例**\n\n 简单元素:\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n 通过改变 `key` 属性来强制过度执行:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n 动态组件,初始渲染时带有过渡模式 + 动画出现:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n 监听过渡事件:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **参考**[指南 - `<Transition>`](https://cn.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\n为列表中的**多个**元素或组件提供过渡效果。\n\n- **Props**\n\n `<TransitionGroup>` 拥有与 `<Transition>` 除了 `mode` 以外所有的 props,并增加了两个额外的 props:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * 如果未定义,则渲染为片段 (fragment)。\n */\n tag?: string\n /**\n * 用于自定义过渡期间被应用的 CSS class。\n * 在模板中使用 kebab-case,例如 move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **事件**\n\n `<TransitionGroup>` 抛出与 `<Transition>` 相同的事件。\n\n- **详细信息**\n\n 默认情况下,`<TransitionGroup>` 不会渲染一个容器 DOM 元素,但是可以通过 `tag` prop 启用。\n\n 注意,每个 `<transition-group>` 的子节点必须有[**独立的 key**](https://cn.vuejs.org/guide/essentials/list.html#maintaining-state-with-key),动画才能正常工作。\n\n `<TransitionGroup>` 支持通过 CSS transform 控制移动效果。当一个子节点在屏幕上的位置在更新之后发生变化时,它会被添加一个使其位移的 CSS class (基于 `name` attribute 推导,或使用 `move-class` prop 显式配置)。如果使其位移的 class 被添加时 CSS 的 `transform` 属性是“可过渡的”,那么该元素会基于 [FLIP 技巧](https://aerotwist.com/blog/flip-your-animations/)平滑地到达动画终点。\n\n- **示例**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **参考**[指南 - TransitionGroup](https://cn.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\n缓存包裹在其中的动态切换组件。\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * 如果指定,则只有与 `include` 名称\n * 匹配的组件才会被缓存。\n */\n include?: MatchPattern\n /**\n * 任何名称与 `exclude`\n * 匹配的组件都不会被缓存。\n */\n exclude?: MatchPattern\n /**\n * 最多可以缓存多少组件实例。\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **详细信息**\n\n `<KeepAlive>` 包裹动态组件时,会缓存不活跃的组件实例,而不是销毁它们。\n\n 任何时候都只能有一个活跃组件实例作为 `<KeepAlive>` 的直接子节点。\n\n 当一个组件在 `<KeepAlive>` 中被切换时,它的 `activated` 和 `deactivated` 生命周期钩子将被调用,用来替代 `mounted` 和 `unmounted`。这适用于 `<KeepAlive>` 的直接子节点及其所有子孙节点。\n\n- **示例**\n\n 基本用法:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n 与 `v-if` / `v-else` 分支一起使用时,同一时间只能有一个组件被渲染:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n 与 `<Transition>` 一起使用:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n 使用 `include` / `exclude`:\n\n ```html\n <!-- 用逗号分隔的字符串 -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 正则表达式 (使用 `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 数组 (使用 `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n 使用 `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **参考**[指南 - KeepAlive](https://cn.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\n将其插槽内容渲染到 DOM 中的另一个位置。\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * 必填项。指定目标容器。\n * 可以是选择器或实际元素。\n */\n to: string | HTMLElement\n /**\n * 当值为 `true` 时,内容将保留在其原始位置\n * 而不是移动到目标容器中。\n * 可以动态更改。\n */\n disabled?: boolean\n }\n ```\n\n- **示例**\n\n 指定目标容器:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n 有条件地禁用:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **参考**[指南 - Teleport](https://cn.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\n用于协调对组件树中嵌套的异步依赖的处理。\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **事件**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **详细信息**\n\n `<Suspense>` 接受两个插槽:`#default` 和 `#fallback`。它将在内存中渲染默认插槽的同时展示后备插槽内容。\n\n 如果在渲染时遇到异步依赖项 ([异步组件](https://cn.vuejs.org/guide/components/async.html)和具有 [`async setup()`](https://cn.vuejs.org/guide/built-ins/suspense.html#async-setup) 的组件),它将等到所有异步依赖项解析完成时再显示默认插槽。\n\n 通过将 Suspense 设置为 `suspensible`,所有的异步依赖将由父级 Suspense 处理。请参阅[实现细节](https://github.com/vuejs/core/pull/6736)\n\n- **参考**[指南 - Suspense](https://cn.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n一个用于渲染动态组件或元素的“元组件”。\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **详细信息**\n\n 要渲染的实际组件由 `is` prop 决定。\n\n - 当 `is` 是字符串,它既可以是 HTML 标签名也可以是组件的注册名。\n\n - 或者,`is` 也可以直接绑定到组件的定义。\n\n- **示例**\n\n 按注册名渲染组件 (选项式 API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n 按定义渲染组件 (`<script setup>` 组合式 API):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n 渲染 HTML 元素:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n [内置组件](./built-in-components)都可以传递给 `is`,但是如果想通过名称传递则必须先对其进行注册。举例来说:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n 如果将组件本身传递给 `is` 而不是其名称,则不需要注册,例如在 `<script setup>` 中。\n\n 如果在 `<component>` 标签上使用 `v-model`,模板编译器会将其扩展为 `modelValue` prop 和 `update:modelValue` 事件监听器,就像对任何其他组件一样。但是,这与原生 HTML 元素不兼容,例如 `<input>` 或 `<select>`。因此,在动态创建的原生元素上使用 `v-model` 将不起作用:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- 由于 'input' 是原生 HTML 元素,因此这个 v-model 不起作用 -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n 在实践中,这种极端情况并不常见,因为原生表单字段通常包裹在实际应用的组件中。如果确实需要直接使用原生元素,那么你可以手动将 `v-model` 拆分为 attribute 和事件。\n\n- **参考**[动态组件](https://cn.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\n表示模板中的插槽内容出口。\n\n- **Props**\n\n ```ts\n interface SlotProps {\n /**\n * 任何传递给 <slot> 的 prop 都可以作为作用域插槽\n * 的参数传递\n */\n [key: string]: any\n /**\n * 保留,用于指定插槽名。\n */\n name?: string\n }\n ```\n\n- **详细信息**\n\n `<slot>` 元素可以使用 `name` attribute 来指定插槽名。当没有指定 `name` 时,将会渲染默认插槽。传递给插槽元素的附加 attributes 将作为插槽 props,传递给父级中定义的作用域插槽。\n\n 元素本身将被其所匹配的插槽内容替换。\n\n Vue 模板里的 `<slot>` 元素会被编译到 JavaScript,因此不要与[原生 `<slot>` 元素](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)进行混淆。\n\n- **参考**[组件 - 插槽](https://cn.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\n当我们想要使用内置指令而不在 DOM 中渲染元素时,`<template>` 标签可以作为占位符使用。\n\n- **详细信息**\n\n 对 `<template>` 的特殊处理只有在它与以下任一指令一起使用时才会被触发:\n\n - `v-if`、`v-else-if` 或 `v-else`\n - `v-for`\n - `v-slot`\n\n 如果这些指令都不存在,那么它将被渲染成一个[原生的 `<template>` 元素](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)。\n\n 带有 `v-for` 的 `<template>` 也可以有一个 [`key` 属性](https://cn.vuejs.org/api/built-in-special-attributes.html#key)。所有其他的属性和指令都将被丢弃,因为没有相应的元素,它们就没有意义。\n\n 单文件组件使用[顶层的 `<template>` 标签](https://cn.vuejs.org/api/sfc-spec.html#language-blocks)来包裹整个模板。这种用法与上面描述的 `<template>` 使用方式是有区别的。该顶层标签不是模板本身的一部分,不支持指令等模板语法。\n\n- **参考**\n - [指南 - `<template>` 上的 `v-if`](https://cn.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [指南 - `<template>` 上的 `v-for`](https://cn.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [指南 - 具名插槽](https://cn.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$p = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\n更新元素的文本内容。\n\n- **期望的绑定值类型:**`string`\n\n- **详细信息**\n\n `v-text` 通过设置元素的 [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) 属性来工作,因此它将覆盖元素中所有现有的内容。如果你需要更新 `textContent` 的部分,应该使用 [mustache interpolations](https://cn.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) 代替。\n\n- **示例**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- 等同于 -->\n <span>{{msg}}</span>\n ```\n\n- **参考**[模板语法 - 文本插值](https://cn.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\n更新元素的 [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML)。\n\n- **期望的绑定值类型:**`string`\n\n- **详细信息**\n\n `v-html` 的内容直接作为普通 HTML 插入—— Vue 模板语法是不会被解析的。如果你发现自己正打算用 `v-html` 来编写模板,不如重新想想怎么使用组件来代替。\n\n ::: warning 安全说明\n 在你的站点上动态渲染任意的 HTML 是非常危险的,因为它很容易导致 [XSS 攻击](https://en.wikipedia.org/wiki/Cross-site_scripting)。请只对可信内容使用 HTML 插值,**绝不要**将用户提供的内容作为插值\n :::\n\n 在[单文件组件](https://cn.vuejs.org/guide/scaling-up/sfc.html),`scoped` 样式将不会作用于 `v-html` 里的内容,因为 HTML 内容不会被 Vue 的模板编译器解析。如果你想让 `v-html` 的内容也支持 scoped CSS,你可以使用 [CSS modules](./sfc-css-features#css-modules) 或使用一个额外的全局 `<style>` 元素,手动设置类似 BEM 的作用域策略。\n\n- **示例**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **参考**[模板语法 - 原始 HTML](https://cn.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\n基于表达式值的真假性,来改变元素的可见性。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n `v-show` 通过设置内联样式的 `display` CSS 属性来工作,当元素可见时将使用初始 `display` 值。当条件改变时,也会触发过渡效果。\n\n- **参考**[条件渲染 - v-show](https://cn.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\n基于表达式值的真假性,来条件性地渲染元素或者模板片段。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n 当 `v-if` 元素被触发,元素及其所包含的指令/组件都会销毁和重构。如果初始条件是假,那么其内部的内容根本都不会被渲染。\n\n 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n 当条件改变时会触发过渡效果。\n\n 当同时使用时,`v-if` 比 `v-for` 优先级更高。我们并不推荐在一元素上同时使用这两个指令 — 查看[列表渲染指南](https://cn.vuejs.org/guide/essentials/list.html#v-for-with-v-if)详情。\n\n- **参考**[条件渲染 - v-if](https://cn.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\n表示 `v-if` 或 `v-if` / `v-else-if` 链式调用的“else 块”。\n\n- **无需传入表达式**\n\n- **详细信息**\n\n - 限定:上一个兄弟元素必须有 `v-if` 或 `v-else-if`。\n\n - 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n- **示例**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **参考**[条件渲染 - v-else](https://cn.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\n表示 `v-if` 的“else if 块”。可以进行链式调用。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n - 限定:上一个兄弟元素必须有 `v-if` 或 `v-else-if`。\n\n - 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n- **示例**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **参考**[条件渲染 - v-else-if](https://cn.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\n基于原始数据多次渲染元素或模板块。\n\n- **期望的绑定值类型:**`Array | Object | number | string | Iterable`\n\n- **详细信息**\n\n 指令值必须使用特殊语法 `alias in expression` 为正在迭代的元素提供一个别名:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n 或者,你也可以为索引指定别名 (如果用在对象,则是键值):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n `v-for` 的默认方式是尝试就地更新元素而不移动它们。要强制其重新排序元素,你需要用特殊 attribute `key` 来提供一个排序提示:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` 也可以用于 [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) 的实现,包括原生 `Map` 和 `Set`。\n\n- **参考**\n - [列表渲染](https://cn.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\n给元素绑定事件监听器。\n\n- **缩写:**`@`\n\n- **期望的绑定值类型:**`Function | Inline Statement | Object (不带参数)`\n\n- **参数:**`event` (使用对象语法则为可选项)\n\n- **修饰符**\n\n - `.stop` - 调用 `event.stopPropagation()`。\n - `.prevent` - 调用 `event.preventDefault()`。\n - `.capture` - 在捕获模式添加事件监听器。\n - `.self` - 只有事件从元素本身发出才触发处理函数。\n - `.{keyAlias}` - 只在某些按键下触发处理函数。\n - `.once` - 最多触发一次处理函数。\n - `.left` - 只在鼠标左键事件触发处理函数。\n - `.right` - 只在鼠标右键事件触发处理函数。\n - `.middle` - 只在鼠标中键事件触发处理函数。\n - `.passive` - 通过 `{ passive: true }` 附加一个 DOM 事件。\n\n- **详细信息**\n\n 事件类型由参数来指定。表达式可以是一个方法名,一个内联声明,如果有修饰符则可省略。\n\n 当用于普通元素,只监听[**原生 DOM 事件**](https://developer.mozilla.org/en-US/docs/Web/Events)。当用于自定义元素组件,则监听子组件触发的**自定义事件**。\n\n 当监听原生 DOM 事件时,方法接收原生事件作为唯一参数。如果使用内联声明,声明可以访问一个特殊的 `$event` 变量:`v-on:click=\"handle('ok', $event)\"`。\n\n `v-on` 还支持绑定不带参数的事件/监听器对的对象。请注意,当使用对象语法时,不支持任何修饰符。\n\n- **示例**\n\n ```html\n <!-- 方法处理函数 -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- 动态事件 -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- 内联声明 -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- 缩写 -->\n <button @click=\"doThis\"></button>\n\n <!-- 使用缩写的动态事件 -->\n <button @[event]=\"doThis\"></button>\n\n <!-- 停止传播 -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- 阻止默认事件 -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- 不带表达式地阻止默认事件 -->\n <form @submit.prevent></form>\n\n <!-- 链式调用修饰符 -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- 按键用于 keyAlias 修饰符-->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- 点击事件将最多触发一次 -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- 对象语法 -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n 监听子组件的自定义事件 (当子组件的“my-event”事件被触发,处理函数将被调用):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- 内联声明 -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **参考**\n - [事件处理](https://cn.vuejs.org/guide/essentials/event-handling.html)\n - [组件 - 自定义事件](https://cn.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\n动态的绑定一个或多个 attribute,也可以是组件的 prop。\n\n- **缩写:**\n - `:` 或者 `.` (当使用 `.prop` 修饰符)\n - 值可以省略 (当 attribute 和绑定的值同名时) <sup class=\"vt-badge\">3.4+</sup>\n\n- **期望:**`any (带参数) | Object (不带参数)`\n\n- **参数:**`attrOrProp (可选的)`\n\n- **修饰符**\n\n - `.camel` - 将短横线命名的 attribute 转变为驼峰式命名。\n - `.prop` - 强制绑定为 DOM property。<sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - 强制绑定为 DOM attribute。<sup class=\"vt-badge\">3.2+</sup>\n\n- **用途**\n\n 当用于绑定 `class` 或 `style` attribute,`v-bind` 支持额外的值类型如数组或对象。详见下方的指南链接。\n\n 在处理绑定时,Vue 默认会利用 `in` 操作符来检查该元素上是否定义了和绑定的 key 同名的 DOM property。如果存在同名的 property,则 Vue 会将它作为 DOM property 赋值,而不是作为 attribute 设置。这个行为在大多数情况都符合期望的绑定值类型,但是你也可以显式用 `.prop` 和 `.attr` 修饰符来强制绑定方式。有时这是必要的,特别是在和[自定义元素](https://cn.vuejs.org/guide/extras/web-components.html#passing-dom-properties)打交道时。\n\n 当用于组件 props 绑定时,所绑定的 props 必须在子组件中已被正确声明。\n\n 当不带参数使用时,可以用于绑定一个包含了多个 attribute 名称-绑定值对的对象。\n\n- **示例**\n\n ```html\n <!-- 绑定 attribute -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- 动态 attribute 名 -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- 缩写 -->\n <img :src=\"imageSrc\" />\n\n <!-- 缩写形式的动态 attribute 名 (3.4+),扩展为 :src=\"src\" -->\n <img :src />\n\n <!-- 动态 attribute 名的缩写 -->\n <button :[key]=\"value\"></button>\n\n <!-- 内联字符串拼接 -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- class 绑定 -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- style 绑定 -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- 绑定对象形式的 attribute -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- prop 绑定。“prop” 必须在子组件中已声明。 -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- 传递子父组件共有的 prop -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n `.prop` 修饰符也有专门的缩写,`.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- 等同于 -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n 当在 DOM 内模板使用 `.camel` 修饰符,可以驼峰化 `v-bind` attribute 的名称,例如 SVG `viewBox` attribute:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n 如果使用字符串模板或使用构建步骤预编译模板,则不需要 `.camel`。\n\n- **参考**\n - [Class 与 Style 绑定](https://cn.vuejs.org/guide/essentials/class-and-style.html)\n - [组件 - Prop 传递细节](https://cn.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\n在表单输入元素或组件上创建双向绑定。\n\n- **期望的绑定值类型**:根据表单输入元素或组件输出的值而变化\n\n- **仅限:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - components\n\n- **修饰符**\n\n - [`.lazy`](https://cn.vuejs.org/guide/essentials/forms.html#lazy) - 监听 `change` 事件而不是 `input`\n - [`.number`](https://cn.vuejs.org/guide/essentials/forms.html#number) - 将输入的合法字符串转为数字\n - [`.trim`](https://cn.vuejs.org/guide/essentials/forms.html#trim) - 移除输入内容两端空格\n\n- **参考**\n\n - [表单输入绑定](https://cn.vuejs.org/guide/essentials/forms.html)\n - [组件事件 - 配合 `v-model` 使用](https://cn.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\n用于声明具名插槽或是期望接收 props 的作用域插槽。\n\n- **缩写:**`#`\n\n- **期望的绑定值类型**:能够合法在函数参数位置使用的 JavaScript 表达式。支持解构语法。绑定值是可选的——只有在给作用域插槽传递 props 才需要。\n\n- **参数**:插槽名 (可选,默认是 `default`)\n\n- **仅限:**\n\n - `<template>`\n - [components](https://cn.vuejs.org/guide/components/slots.html#scoped-slots) (用于带有 prop 的单个默认插槽)\n\n- **示例**\n\n ```html\n <!-- 具名插槽 -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- 接收 prop 的具名插槽 -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- 接收 prop 的默认插槽,并解构 -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **参考**\n - [组件 - 插槽](https://cn.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\n跳过该元素及其所有子元素的编译。\n\n- **无需传入**\n\n- **详细信息**\n\n 元素内具有 `v-pre`,所有 Vue 模板语法都会被保留并按原样渲染。最常见的用例就是显示原始双大括号标签及内容。\n\n- **示例**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\n仅渲染元素和组件一次,并跳过之后的更新。\n\n- **无需传入**\n\n- **详细信息**\n\n 在随后的重新渲染,元素/组件及其所有子项将被当作静态内容并跳过渲染。这可以用来优化更新时的性能。\n\n ```html\n <!-- 单个元素 -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- 带有子元素的元素 -->\n <div v-once>\n <h1>Comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- 组件 -->\n <MyComponent v-once :comment=\"msg\" />\n <!-- `v-for` 指令 -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n 从 3.2 起,你也可以搭配 [`v-memo`](#v-memo) 的无效条件来缓存部分模板。\n\n- **参考**\n - [数据绑定语法 - 插值](https://cn.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **期望的绑定值类型:**`any[]`\n\n- **详细信息**\n\n 缓存一个模板的子树。在元素和组件上都可以使用。为了实现缓存,该指令需要传入一个固定长度的依赖值数组进行比较。如果数组里的每个值都与最后一次的渲染相同,那么整个子树的更新将被跳过。举例来说:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n 当组件重新渲染,如果 `valueA` 和 `valueB` 都保持不变,这个 `<div>` 及其子项的所有更新都将被跳过。实际上,甚至虚拟 DOM 的 vnode 创建也将被跳过,因为缓存的子树副本可以被重新使用。\n\n 正确指定缓存数组很重要,否则应该生效的更新可能被跳过。`v-memo` 传入空依赖数组 (`v-memo=\"[]\"`) 将与 `v-once` 效果相同。\n\n **与 `v-for` 一起使用**\n\n `v-memo` 仅用于性能至上场景中的微小优化,应该很少需要。最常见的情况可能是有助于渲染海量 `v-for` 列表 (长度超过 1000 的情况):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n 当组件的 `selected` 状态改变,默认会重新创建大量的 vnode,尽管绝大部分都跟之前是一模一样的。`v-memo` 用在这里本质上是在说“只有当该项的被选中状态改变时才需要更新”。这使得每个选中状态没有变的项能完全重用之前的 vnode 并跳过差异比较。注意这里 memo 依赖数组中并不需要包含 `item.id`,因为 Vue 也会根据 item 的 `:key` 进行判断。\n\n :::warning 警告\n 当搭配 `v-for` 使用 `v-memo`,确保两者都绑定在同一个元素上。**`v-memo` 不能用在 `v-for` 内部。**\n :::\n\n `v-memo` 也能被用于在一些默认优化失败的边际情况下,手动避免子组件出现不需要的更新。但是一样的,开发者需要负责指定正确的依赖数组以免跳过必要的更新。\n\n- **参考**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\n用于隐藏尚未完成编译的 DOM 模板。\n\n- **无需传入**\n\n- **详细信息**\n\n **该指令只在没有构建步骤的环境下需要使用。**\n\n 当使用直接在 DOM 中书写的模板时,可能会出现一种叫做“未编译模板闪现”的情况:用户可能先看到的是还没编译完成的双大括号标签,直到挂载的组件将它们替换为实际渲染的内容。\n\n `v-cloak` 会保留在所绑定的元素上,直到相关组件实例被挂载后才移除。配合像 `[v-cloak] { display: none }` 这样的 CSS 规则,它可以在组件编译完毕前隐藏原始模板。\n\n- **示例**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n 直到编译完成前,`<div>` 将不可见。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\n`key` 这个特殊的 attribute 主要作为 Vue 的虚拟 DOM 算法提示,在比较新旧节点列表时用于识别 vnode。\n\n- **预期**:`number | string | symbol`\n\n- **详细信息**\n\n 在没有 key 的情况下,Vue 将使用一种最小化元素移动的算法,并尽可能地就地更新/复用相同类型的元素。如果传了 key,则将根据 key 的变化顺序来重新排列元素,并且将始终移除/销毁 key 已经不存在的元素。\n\n 同一个父元素下的子元素必须具有**唯一的 key**。重复的 key 将会导致渲染异常。\n\n 最常见的用例是与 `v-for` 结合:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n 也可以用于强制替换一个元素/组件而不是复用它。当你想这么做时它可能会很有用:\n\n - 在适当的时候触发组件的生命周期钩子\n - 触发过渡\n\n 举例来说:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n 当 `text` 变化时,`<span>` 总是会被替换而不是更新,因此 transition 将会被触发。\n\n- **参考**[指南 - 列表渲染 - 通过 `key` 管理状态](https://cn.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\n用于注册[模板引用](https://cn.vuejs.org/guide/essentials/template-refs.html)。\n\n- **预期**:`string | Function`\n\n- **详细信息**\n\n `ref` 用于注册元素或子组件的引用。\n\n 使用选项式 API,引用将被注册在组件的 `this.$refs` 对象里:\n\n ```html\n <!-- 存储为 this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n 使用组合式 API,引用将存储在与名字匹配的 ref 里:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n 如果用于普通 DOM 元素,引用将是元素本身;如果用于子组件,引用将是子组件的实例。\n\n 或者 `ref` 可以接收一个函数值,用于对存储引用位置的完全控制:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n 关于 ref 注册时机的重要说明:因为 ref 本身是作为渲染函数的结果来创建的,必须等待组件挂载后才能对它进行访问。\n\n `this.$refs` 也是非响应式的,因此你不应该尝试在模板中使用它来进行数据绑定。\n\n- **参考**\n - [指南 - 模板引用](https://cn.vuejs.org/guide/essentials/template-refs.html)\n - [指南 - 为模板引用标注类型](https://cn.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [指南 - 为组件模板引用标注类型](https://cn.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\n用于绑定[动态组件](https://cn.vuejs.org/guide/essentials/component-basics.html#dynamic-components)。\n\n- **预期**:`string | Component`\n\n- **用于原生元素** <sup class=\"vt-badge\">3.1+</sup>\n\n 当 `is` attribute 用于原生 HTML 元素时,它将被当作 [Customized built-in element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example),其为原生 web 平台的特性。\n\n 但是,在这种用例中,你可能需要 Vue 用其组件来替换原生元素,如 [DOM 内模板解析注意事项](https://cn.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats)所述。你可以在 `is` attribute 的值中加上 `vue:` 前缀,这样 Vue 就会把该元素渲染为 Vue 组件:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **参考**\n\n - [内置特殊元素 - `<component>`](https://cn.vuejs.org/api/built-in-special-elements.html#component)\n - [动态组件](https://cn.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$4 = { + version: version$p, + tags: tags$f, + globalAttributes: globalAttributes$p +}; + +const version$o = 1.1; +const tags$e = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\n为**单个**元素或组件提供动画过渡效果。\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * 用于自动生成过渡 CSS class 名。\n * 例如 `name: 'fade'` 将自动扩展为 `.fade-enter`、\n * `.fade-enter-active` 等。\n */\n name?: string\n /**\n * 是否应用 CSS 过渡 class。\n * 默认:true\n */\n css?: boolean\n /**\n * 指定要等待的过渡事件类型\n * 来确定过渡结束的时间。\n * 默认情况下会自动检测\n * 持续时间较长的类型。\n */\n type?: 'transition' | 'animation'\n /**\n * 显式指定过渡的持续时间。\n * 默认情况下是等待过渡效果的根元素的第一个 `transitionend`\n * 或`animationend`事件。\n */\n duration?: number | { enter: number; leave: number }\n /**\n * 控制离开/进入过渡的时序。\n * 默认情况下是同时的。\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * 是否对初始渲染使用过渡。\n * 默认:false\n */\n appear?: boolean\n\n /**\n * 用于自定义过渡 class 的 prop。\n * 在模板中使用短横线命名,例如:enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **事件**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show` only)\n - `@appear-cancelled`\n\n- **示例**\n\n 简单元素:\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n 通过改变 `key` 属性来强制过度执行:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n 动态组件,初始渲染时带有过渡模式 + 动画出现:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n 监听过渡事件:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **参考**[指南 - `<Transition>`](https://zh-hk.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\n为列表中的**多个**元素或组件提供过渡效果。\n\n- **Props**\n\n `<TransitionGroup>` 拥有与 `<Transition>` 除了 `mode` 以外所有的 props,并增加了两个额外的 props:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * 如果未定义,则渲染为片段 (fragment)。\n */\n tag?: string\n /**\n * 用于自定义过渡期间被应用的 CSS class。\n * 在模板中使用 kebab-case,例如 move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **事件**\n\n `<TransitionGroup>` 抛出与 `<Transition>` 相同的事件。\n\n- **详细信息**\n\n 默认情况下,`<TransitionGroup>` 不会渲染一个容器 DOM 元素,但是可以通过 `tag` prop 启用。\n\n 注意,每个 `<transition-group>` 的子节点必须有[**独立的 key**](https://zh-hk.vuejs.org/guide/essentials/list.html#maintaining-state-with-key),动画才能正常工作。\n\n `<TransitionGroup>` 支持通过 CSS transform 控制移动效果。当一个子节点在屏幕上的位置在更新之后发生变化时,它会被添加一个使其位移的 CSS class (基于 `name` attribute 推导,或使用 `move-class` prop 显式配置)。如果使其位移的 class 被添加时 CSS 的 `transform` 属性是“可过渡的”,那么该元素会基于 [FLIP 技巧](https://aerotwist.com/blog/flip-your-animations/)平滑地到达动画终点。\n\n- **示例**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **参考**[指南 - TransitionGroup](https://zh-hk.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\n缓存包裹在其中的动态切换组件。\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * 如果指定,则只有与 `include` 名称\n * 匹配的组件才会被缓存。\n */\n include?: MatchPattern\n /**\n * 任何名称与 `exclude`\n * 匹配的组件都不会被缓存。\n */\n exclude?: MatchPattern\n /**\n * 最多可以缓存多少组件实例。\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **详细信息**\n\n `<KeepAlive>` 包裹动态组件时,会缓存不活跃的组件实例,而不是销毁它们。\n\n 任何时候都只能有一个活跃组件实例作为 `<KeepAlive>` 的直接子节点。\n\n 当一个组件在 `<KeepAlive>` 中被切换时,它的 `activated` 和 `deactivated` 生命周期钩子将被调用,用来替代 `mounted` 和 `unmounted`。这适用于 `<KeepAlive>` 的直接子节点及其所有子孙节点。\n\n- **示例**\n\n 基本用法:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n 与 `v-if` / `v-else` 分支一起使用时,同一时间只能有一个组件被渲染:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n 与 `<Transition>` 一起使用:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n 使用 `include` / `exclude`:\n\n ```html\n <!-- 用逗号分隔的字符串 -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 正则表达式 (使用 `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- 数组 (使用 `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n 使用 `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **参考**[指南 - KeepAlive](https://zh-hk.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\n将其插槽内容渲染到 DOM 中的另一个位置。\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * 必填项。指定目标容器。\n * 可以是选择器或实际元素。\n */\n to: string | HTMLElement\n /**\n * 当值为 `true` 时,内容将保留在其原始位置\n * 而不是移动到目标容器中。\n * 可以动态更改。\n */\n disabled?: boolean\n }\n ```\n\n- **示例**\n\n 指定目标容器:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n 有条件地禁用:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **参考**[指南 - Teleport](https://zh-hk.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\n用于协调对组件树中嵌套的异步依赖的处理。\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **事件**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **详细信息**\n\n `<Suspense>` 接受两个插槽:`#default` 和 `#fallback`。它将在内存中渲染默认插槽的同时展示后备插槽内容。\n\n 如果在渲染时遇到异步依赖项 ([异步组件](https://zh-hk.vuejs.org/guide/components/async.html)和具有 [`async setup()`](https://zh-hk.vuejs.org/guide/built-ins/suspense.html#async-setup) 的组件),它将等到所有异步依赖项解析完成时再显示默认插槽。\n\n 通過將 Suspense 設置為 `suspensible`,所有異步依賴處理將由父 Suspense 處理。參見[實現細節](https://github.com/vuejs/core/pull/673)\n\n- **参考**[指南 - Suspense](https://zh-hk.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n一个用于渲染动态组件或元素的“元组件”。\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **详细信息**\n\n 要渲染的实际组件由 `is` prop 决定。\n\n - 当 `is` 是字符串,它既可以是 HTML 标签名也可以是组件的注册名。\n\n - 或者,`is` 也可以直接绑定到组件的定义。\n\n- **示例**\n\n 按注册名渲染组件 (选项式 API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n 按定义渲染组件 (`<script setup>` 组合式 API):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n 渲染 HTML 元素:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n [内置组件](./built-in-components)都可以传递给 `is`,但是如果想通过名称传递则必须先对其进行注册。举例来说:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n 如果将组件本身传递给 `is` 而不是其名称,则不需要注册,例如在 `<script setup>` 中。\n\n 如果在 `<component>` 标签上使用 `v-model`,模板编译器会将其扩展为 `modelValue` prop 和 `update:modelValue` 事件监听器,就像对任何其他组件一样。但是,这与原生 HTML 元素不兼容,例如 `<input>` 或 `<select>`。因此,在动态创建的原生元素上使用 `v-model` 将不起作用:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- 由于 'input' 是原生 HTML 元素,因此这个 v-model 不起作用 -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n 在实践中,这种极端情况并不常见,因为原生表单字段通常包裹在实际应用的组件中。如果确实需要直接使用原生元素,那么你可以手动将 `v-model` 拆分为 attribute 和事件。\n\n- **参考**[动态组件](https://zh-hk.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\n表示模板中的插槽内容出口。\n\n- **Props**\n\n ```ts\n interface SlotProps {\n /**\n * 任何传递给 <slot> 的 prop 都可以作为作用域插槽\n * 的参数传递\n */\n [key: string]: any\n /**\n * 保留,用于指定插槽名。\n */\n name?: string\n }\n ```\n\n- **详细信息**\n\n `<slot>` 元素可以使用 `name` attribute 来指定插槽名。当没有指定 `name` 时,将会渲染默认插槽。传递给插槽元素的附加 attributes 将作为插槽 props,传递给父级中定义的作用域插槽。\n\n 元素本身将被其所匹配的插槽内容替换。\n\n Vue 模板里的 `<slot>` 元素会被编译到 JavaScript,因此不要与[原生 `<slot>` 元素](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)进行混淆。\n\n- **参考**[组件 - 插槽](https://zh-hk.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\n当我们想要使用内置指令而不在 DOM 中渲染元素时,`<template>` 标签可以作为占位符使用。\n\n- **详细信息**\n\n 对 `<template>` 的特殊处理只有在它与以下任一指令一起使用时才会被触发:\n\n - `v-if`、`v-else-if` 或 `v-else`\n - `v-for`\n - `v-slot`\n\n 如果这些指令都不存在,那么它将被渲染成一个[原生的 `<template>` 元素](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)。\n\n 带有 `v-for` 的 `<template>` 也可以有一个 [`key` 属性](https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key)。所有其他的属性和指令都将被丢弃,因为没有相应的元素,它们就没有意义。\n\n 单文件组件使用[顶层的 `<template>` 标签](https://zh-hk.vuejs.org/api/sfc-spec.html#language-blocks)来包裹整个模板。这种用法与上面描述的 `<template>` 使用方式是有区别的。该顶层标签不是模板本身的一部分,不支持指令等模板语法。\n\n- **参考**\n - [指南 - `<template>` 上的 `v-if`](https://zh-hk.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [指南 - `<template>` 上的 `v-for`](https://zh-hk.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [指南 - 具名插槽](https://zh-hk.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$o = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\n更新元素的文本内容。\n\n- **期望的绑定值类型:**`string`\n\n- **详细信息**\n\n `v-text` 通过设置元素的 [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) 属性来工作,因此它将覆盖元素中所有现有的内容。如果你需要更新 `textContent` 的部分,应该使用 [mustache interpolations](https://zh-hk.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) 代替。\n\n- **示例**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- 等同于 -->\n <span>{{msg}}</span>\n ```\n\n- **参考**[模板语法 - 文本插值](https://zh-hk.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\n更新元素的 [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML)。\n\n- **期望的绑定值类型:**`string`\n\n- **详细信息**\n\n `v-html` 的内容直接作为普通 HTML 插入—— Vue 模板语法是不会被解析的。如果你发现自己正打算用 `v-html` 来编写模板,不如重新想想怎么使用组件来代替。\n\n ::: warning 安全说明\n 在你的站点上动态渲染任意的 HTML 是非常危险的,因为它很容易导致 [XSS 攻击](https://en.wikipedia.org/wiki/Cross-site_scripting)。请只对可信内容使用 HTML 插值,**绝不要**将用户提供的内容作为插值\n :::\n\n 在[单文件组件](https://zh-hk.vuejs.org/guide/scaling-up/sfc.html),`scoped` 样式将不会作用于 `v-html` 里的内容,因为 HTML 内容不会被 Vue 的模板编译器解析。如果你想让 `v-html` 的内容也支持 scoped CSS,你可以使用 [CSS modules](./sfc-css-features#css-modules) 或使用一个额外的全局 `<style>` 元素,手动设置类似 BEM 的作用域策略。\n\n- **示例**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **参考**[模板语法 - 原始 HTML](https://zh-hk.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\n基于表达式值的真假性,来改变元素的可见性。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n `v-show` 通过设置内联样式的 `display` CSS 属性来工作,当元素可见时将使用初始 `display` 值。当条件改变时,也会触发过渡效果。\n\n- **参考**[条件渲染 - v-show](https://zh-hk.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\n基于表达式值的真假性,来条件性地渲染元素或者模板片段。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n 当 `v-if` 元素被触发,元素及其所包含的指令/组件都会销毁和重构。如果初始条件是假,那么其内部的内容根本都不会被渲染。\n\n 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n 当条件改变时会触发过渡效果。\n\n 当同时使用时,`v-if` 比 `v-for` 优先级更高。我们并不推荐在一元素上同时使用这两个指令 — 查看[列表渲染指南](https://zh-hk.vuejs.org/guide/essentials/list.html#v-for-with-v-if)详情。\n\n- **参考**[条件渲染 - v-if](https://zh-hk.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\n表示 `v-if` 或 `v-if` / `v-else-if` 链式调用的“else 块”。\n\n- **无需传入表达式**\n\n- **详细信息**\n\n - 限定:上一个兄弟元素必须有 `v-if` 或 `v-else-if`。\n\n - 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n- **示例**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **参考**[条件渲染 - v-else](https://zh-hk.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\n表示 `v-if` 的“else if 块”。可以进行链式调用。\n\n- **期望的绑定值类型:**`any`\n\n- **详细信息**\n\n - 限定:上一个兄弟元素必须有 `v-if` 或 `v-else-if`。\n\n - 可用于 `<template>` 表示仅包含文本或多个元素的条件块。\n\n- **示例**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **参考**[条件渲染 - v-else-if](https://zh-hk.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\n基于原始数据多次渲染元素或模板块。\n\n- **期望的绑定值类型:**`Array | Object | number | string | Iterable`\n\n- **详细信息**\n\n 指令值必须使用特殊语法 `alias in expression` 为正在迭代的元素提供一个别名:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n 或者,你也可以为索引指定别名 (如果用在对象,则是键值):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n `v-for` 的默认方式是尝试就地更新元素而不移动它们。要强制其重新排序元素,你需要用特殊 attribute `key` 来提供一个排序提示:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` 也可以用于 [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) 的实现,包括原生 `Map` 和 `Set`。\n\n- **参考**\n - [列表渲染](https://zh-hk.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\n给元素绑定事件监听器。\n\n- **缩写:**`@`\n\n- **期望的绑定值类型:**`Function | Inline Statement | Object (不带参数)`\n\n- **参数:**`event` (使用对象语法则为可选项)\n\n- **修饰符**\n\n - `.stop` - 调用 `event.stopPropagation()`。\n - `.prevent` - 调用 `event.preventDefault()`。\n - `.capture` - 在捕获模式添加事件监听器。\n - `.self` - 只有事件从元素本身发出才触发处理函数。\n - `.{keyAlias}` - 只在某些按键下触发处理函数。\n - `.once` - 最多触发一次处理函数。\n - `.left` - 只在鼠标左键事件触发处理函数。\n - `.right` - 只在鼠标右键事件触发处理函数。\n - `.middle` - 只在鼠标中键事件触发处理函数。\n - `.passive` - 通过 `{ passive: true }` 附加一个 DOM 事件。\n\n- **详细信息**\n\n 事件类型由参数来指定。表达式可以是一个方法名,一个内联声明,如果有修饰符则可省略。\n\n 当用于普通元素,只监听[**原生 DOM 事件**](https://developer.mozilla.org/en-US/docs/Web/Events)。当用于自定义元素组件,则监听子组件触发的**自定义事件**。\n\n 当监听原生 DOM 事件时,方法接收原生事件作为唯一参数。如果使用内联声明,声明可以访问一个特殊的 `$event` 变量:`v-on:click=\"handle('ok', $event)\"`。\n\n `v-on` 还支持绑定不带参数的事件/监听器对的对象。请注意,当使用对象语法时,不支持任何修饰符。\n\n- **示例**\n\n ```html\n <!-- 方法处理函数 -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- 动态事件 -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- 内联声明 -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- 缩写 -->\n <button @click=\"doThis\"></button>\n\n <!-- 使用缩写的动态事件 -->\n <button @[event]=\"doThis\"></button>\n\n <!-- 停止传播 -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- 阻止默认事件 -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- 不带表达式地阻止默认事件 -->\n <form @submit.prevent></form>\n\n <!-- 链式调用修饰符 -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- 按键用于 keyAlias 修饰符-->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- 点击事件将最多触发一次 -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- 对象语法 -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n 监听子组件的自定义事件 (当子组件的“my-event”事件被触发,处理函数将被调用):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- 内联声明 -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **参考**\n - [事件处理](https://zh-hk.vuejs.org/guide/essentials/event-handling.html)\n - [组件 - 自定义事件](https://zh-hk.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\n动态的绑定一个或多个 attribute,也可以是组件的 prop。\n\n- **缩写:**\n - `:` 或者 `.` (当使用 `.prop` 修饰符)\n - 值可以省略 (当 attribute 和绑定的值同名时) <sup class=\"vt-badge\">3.4+</sup>\n\n- **期望:**`any (带参数) | Object (不带参数)`\n\n- **参数:**`attrOrProp (可选的)`\n\n- **修饰符**\n\n - `.camel` - 将短横线命名的 attribute 转变为驼峰式命名。\n - `.prop` - 强制绑定为 DOM property。<sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - 强制绑定为 DOM attribute。<sup class=\"vt-badge\">3.2+</sup>\n\n- **用途**\n\n 当用于绑定 `class` 或 `style` attribute,`v-bind` 支持额外的值类型如数组或对象。详见下方的指南链接。\n\n 在处理绑定时,Vue 默认会利用 `in` 操作符来检查该元素上是否定义了和绑定的 key 同名的 DOM property。如果存在同名的 property,则 Vue 会将它作为 DOM property 赋值,而不是作为 attribute 设置。这个行为在大多数情况都符合期望的绑定值类型,但是你也可以显式用 `.prop` 和 `.attr` 修饰符来强制绑定方式。有时这是必要的,特别是在和[自定义元素](https://zh-hk.vuejs.org/guide/extras/web-components.html#passing-dom-properties)打交道时。\n\n 当用于组件 props 绑定时,所绑定的 props 必须在子组件中已被正确声明。\n\n 当不带参数使用时,可以用于绑定一个包含了多个 attribute 名称-绑定值对的对象。\n\n- **示例**\n\n ```html\n <!-- 绑定 attribute -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- 动态 attribute 名 -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- 缩写 -->\n <img :src=\"imageSrc\" />\n\n <!-- 缩写形式的动态 attribute 名 (3.4+),扩展为 :src=\"src\" -->\n <img :src />\n\n <!-- 动态 attribute 名的缩写 -->\n <button :[key]=\"value\"></button>\n\n <!-- 内联字符串拼接 -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- class 绑定 -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- style 绑定 -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- 绑定对象形式的 attribute -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- prop 绑定。“prop” 必须在子组件中已声明。 -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- 传递子父组件共有的 prop -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n `.prop` 修饰符也有专门的缩写,`.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- 等同于 -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n 当在 DOM 内模板使用 `.camel` 修饰符,可以驼峰化 `v-bind` attribute 的名称,例如 SVG `viewBox` attribute:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n 如果使用字符串模板或使用构建步骤预编译模板,则不需要 `.camel`。\n\n- **参考**\n - [Class 与 Style 绑定](https://zh-hk.vuejs.org/guide/essentials/class-and-style.html)\n - [组件 - Prop 传递细节](https://zh-hk.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\n在表单输入元素或组件上创建双向绑定。\n\n- **期望的绑定值类型**:根据表单输入元素或组件输出的值而变化\n\n- **仅限:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - components\n\n- **修饰符**\n\n - [`.lazy`](https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy) - 监听 `change` 事件而不是 `input`\n - [`.number`](https://zh-hk.vuejs.org/guide/essentials/forms.html#number) - 将输入的合法字符串转为数字\n - [`.trim`](https://zh-hk.vuejs.org/guide/essentials/forms.html#trim) - 移除输入内容两端空格\n\n- **参考**\n\n - [表单输入绑定](https://zh-hk.vuejs.org/guide/essentials/forms.html)\n - [组件事件 - 配合 `v-model` 使用](https://zh-hk.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\n用于声明具名插槽或是期望接收 props 的作用域插槽。\n\n- **缩写:**`#`\n\n- **期望的绑定值类型**:能够合法在函数参数位置使用的 JavaScript 表达式。支持解构语法。绑定值是可选的——只有在给作用域插槽传递 props 才需要。\n\n- **参数**:插槽名 (可选,默认是 `default`)\n\n- **仅限:**\n\n - `<template>`\n - [components](https://zh-hk.vuejs.org/guide/components/slots.html#scoped-slots) (用于带有 prop 的单个默认插槽)\n\n- **示例**\n\n ```html\n <!-- 具名插槽 -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- 接收 prop 的具名插槽 -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- 接收 prop 的默认插槽,并解构 -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **参考**\n - [组件 - 插槽](https://zh-hk.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\n跳过该元素及其所有子元素的编译。\n\n- **无需传入**\n\n- **详细信息**\n\n 元素内具有 `v-pre`,所有 Vue 模板语法都会被保留并按原样渲染。最常见的用例就是显示原始双大括号标签及内容。\n\n- **示例**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\n仅渲染元素和组件一次,并跳过之后的更新。\n\n- **无需传入**\n\n- **详细信息**\n\n 在随后的重新渲染,元素/组件及其所有子项将被当作静态内容并跳过渲染。这可以用来优化更新时的性能。\n\n ```html\n <!-- 单个元素 -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- 带有子元素的元素 -->\n <div v-once>\n <h1>Comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- 组件 -->\n <MyComponent v-once :comment=\"msg\" />\n <!-- `v-for` 指令 -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n 从 3.2 起,你也可以搭配 [`v-memo`](#v-memo) 的无效条件来缓存部分模板。\n\n- **参考**\n - [数据绑定语法 - 插值](https://zh-hk.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **期望的绑定值类型:**`any[]`\n\n- **详细信息**\n\n 缓存一个模板的子树。在元素和组件上都可以使用。为了实现缓存,该指令需要传入一个固定长度的依赖值数组进行比较。如果数组里的每个值都与最后一次的渲染相同,那么整个子树的更新将被跳过。举例来说:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n 当组件重新渲染,如果 `valueA` 和 `valueB` 都保持不变,这个 `<div>` 及其子项的所有更新都将被跳过。实际上,甚至虚拟 DOM 的 vnode 创建也将被跳过,因为缓存的子树副本可以被重新使用。\n\n 正确指定缓存数组很重要,否则应该生效的更新可能被跳过。`v-memo` 传入空依赖数组 (`v-memo=\"[]\"`) 将与 `v-once` 效果相同。\n\n **与 `v-for` 一起使用**\n\n `v-memo` 仅用于性能至上场景中的微小优化,应该很少需要。最常见的情况可能是有助于渲染海量 `v-for` 列表 (长度超过 1000 的情况):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n 当组件的 `selected` 状态改变,默认会重新创建大量的 vnode,尽管绝大部分都跟之前是一模一样的。`v-memo` 用在这里本质上是在说“只有当该项的被选中状态改变时才需要更新”。这使得每个选中状态没有变的项能完全重用之前的 vnode 并跳过差异比较。注意这里 memo 依赖数组中并不需要包含 `item.id`,因为 Vue 也会根据 item 的 `:key` 进行判断。\n\n :::warning 警告\n 当搭配 `v-for` 使用 `v-memo`,确保两者都绑定在同一个元素上。**`v-memo` 不能用在 `v-for` 内部。**\n :::\n\n `v-memo` 也能被用于在一些默认优化失败的边际情况下,手动避免子组件出现不需要的更新。但是一样的,开发者需要负责指定正确的依赖数组以免跳过必要的更新。\n\n- **参考**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\n用于隐藏尚未完成编译的 DOM 模板。\n\n- **无需传入**\n\n- **详细信息**\n\n **该指令只在没有构建步骤的环境下需要使用。**\n\n 当使用直接在 DOM 中书写的模板时,可能会出现一种叫做“未编译模板闪现”的情况:用户可能先看到的是还没编译完成的双大括号标签,直到挂载的组件将它们替换为实际渲染的内容。\n\n `v-cloak` 会保留在所绑定的元素上,直到相关组件实例被挂载后才移除。配合像 `[v-cloak] { display: none }` 这样的 CSS 规则,它可以在组件编译完毕前隐藏原始模板。\n\n- **示例**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n 直到编译完成前,`<div>` 将不可见。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\n`key` 这个特殊的 attribute 主要作为 Vue 的虚拟 DOM 算法提示,在比较新旧节点列表时用于识别 vnode。\n\n- **预期**:`number | string | symbol`\n\n- **详细信息**\n\n 在没有 key 的情况下,Vue 将使用一种最小化元素移动的算法,并尽可能地就地更新/复用相同类型的元素。如果传了 key,则将根据 key 的变化顺序来重新排列元素,并且将始终移除/销毁 key 已经不存在的元素。\n\n 同一个父元素下的子元素必须具有**唯一的 key**。重复的 key 将会导致渲染异常。\n\n 最常见的用例是与 `v-for` 结合:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n 也可以用于强制替换一个元素/组件而不是复用它。当你想这么做时它可能会很有用:\n\n - 在适当的时候触发组件的生命周期钩子\n - 触发过渡\n\n 举例来说:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n 当 `text` 变化时,`<span>` 总是会被替换而不是更新,因此 transition 将会被触发。\n\n- **参考**[指南 - 列表渲染 - 通过 `key` 管理状态](https://zh-hk.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\n用于注册[模板引用](https://zh-hk.vuejs.org/guide/essentials/template-refs.html)。\n\n- **预期**:`string | Function`\n\n- **详细信息**\n\n `ref` 用于注册元素或子组件的引用。\n\n 使用选项式 API,引用将被注册在组件的 `this.$refs` 对象里:\n\n ```html\n <!-- 存储为 this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n 使用组合式 API,引用将存储在与名字匹配的 ref 里:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n 如果用于普通 DOM 元素,引用将是元素本身;如果用于子组件,引用将是子组件的实例。\n\n 或者 `ref` 可以接收一个函数值,用于对存储引用位置的完全控制:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n 关于 ref 注册时机的重要说明:因为 ref 本身是作为渲染函数的结果来创建的,必须等待组件挂载后才能对它进行访问。\n\n `this.$refs` 也是非响应式的,因此你不应该尝试在模板中使用它来进行数据绑定。\n\n- **参考**\n - [指南 - 模板引用](https://zh-hk.vuejs.org/guide/essentials/template-refs.html)\n - [指南 - 为模板引用标注类型](https://zh-hk.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [指南 - 为组件模板引用标注类型](https://zh-hk.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\n用于绑定[动态组件](https://zh-hk.vuejs.org/guide/essentials/component-basics.html#dynamic-components)。\n\n- **预期**:`string | Component`\n\n- **用于原生元素** <sup class=\"vt-badge\">3.1+</sup>\n\n 当 `is` attribute 用于原生 HTML 元素时,它将被当作 [Customized built-in element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example),其为原生 web 平台的特性。\n\n 但是,在这种用例中,你可能需要 Vue 用其组件来替换原生元素,如 [DOM 内模板解析注意事项](https://zh-hk.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats)所述。你可以在 `is` attribute 的值中加上 `vue:` 前缀,这样 Vue 就会把该元素渲染为 Vue 组件:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **参考**\n\n - [内置特殊元素 - `<component>`](https://zh-hk.vuejs.org/api/built-in-special-elements.html#component)\n - [动态组件](https://zh-hk.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$5 = { + version: version$o, + tags: tags$e, + globalAttributes: globalAttributes$o +}; + +const version$n = 1.1; +const tags$d = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nProvides animated transition effects to a **single** element or component.\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * Used to automatically generate transition CSS class names.\n * e.g. `name: 'fade'` will auto expand to `.fade-enter`,\n * `.fade-enter-active`, etc.\n */\n name?: string\n /**\n * Whether to apply CSS transition classes.\n * Default: true\n */\n css?: boolean\n /**\n * Specifies the type of transition events to wait for to\n * determine transition end timing.\n * Default behavior is auto detecting the type that has\n * longer duration.\n */\n type?: 'transition' | 'animation'\n /**\n * Specifies explicit durations of the transition.\n * Default behavior is wait for the first `transitionend`\n * or `animationend` event on the root transition element.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Controls the timing sequence of leaving/entering transitions.\n * Default behavior is simultaneous.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Whether to apply transition on initial render.\n * Default: false\n */\n appear?: boolean\n\n /**\n * Props for customizing transition classes.\n * Use kebab-case in templates, e.g. enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **Events**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show` only)\n - `@appear-cancelled`\n\n- **Example**\n\n Simple element:\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n Forcing a transition by changing the `key` attribute:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Dynamic component, with transition mode + animate on appear:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Listening to transition events:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **See also** [`<Transition>` Guide](https://it.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nProvides transition effects for **multiple** elements or components in a list.\n\n- **Props**\n\n `<TransitionGroup>` accepts the same props as `<Transition>` except `mode`, plus two additional props:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * If not defined, renders as a fragment.\n */\n tag?: string\n /**\n * For customizing the CSS class applied during move transitions.\n * Use kebab-case in templates, e.g. move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **Events**\n\n `<TransitionGroup>` emits the same events as `<Transition>`.\n\n- **Details**\n\n By default, `<TransitionGroup>` doesn't render a wrapper DOM element, but one can be defined via the `tag` prop.\n\n Note that every child in a `<transition-group>` must be [**uniquely keyed**](https://it.vuejs.org/guide/essentials/list.html#maintaining-state-with-key) for the animations to work properly.\n\n `<TransitionGroup>` supports moving transitions via CSS transform. When a child's position on screen has changed after an update, it will get applied a moving CSS class (auto generated from the `name` attribute or configured with the `move-class` prop). If the CSS `transform` property is \"transition-able\" when the moving class is applied, the element will be smoothly animated to its destination using the [FLIP technique](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Example**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **See also** [Guide - TransitionGroup](https://it.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nCaches dynamically toggled components wrapped inside.\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * If specified, only components with names matched by\n * `include` will be cached.\n */\n include?: MatchPattern\n /**\n * Any component with a name matched by `exclude` will\n * not be cached.\n */\n exclude?: MatchPattern\n /**\n * The maximum number of component instances to cache.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Details**\n\n When wrapped around a dynamic component, `<KeepAlive>` caches the inactive component instances without destroying them.\n\n There can only be one active component instance as the direct child of `<KeepAlive>` at any time.\n\n When a component is toggled inside `<KeepAlive>`, its `activated` and `deactivated` lifecycle hooks will be invoked accordingly, providing an alternative to `mounted` and `unmounted`, which are not called. This applies to the direct child of `<KeepAlive>` as well as to all of its descendants.\n\n- **Example**\n\n Utilizzo Base:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n When used with `v-if` / `v-else` branches, there must be only one component rendered at a time:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Used together with `<Transition>`:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n Using `include` / `exclude`:\n\n ```html\n <!-- comma-delimited string -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- regex (use `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- Array (use `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Usage with `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **See also** [Guide - KeepAlive](https://it.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nRenders its slot content to another part of the DOM.\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * Required. Specify target container.\n * Can either be a selector or an actual element.\n */\n to: string | HTMLElement\n /**\n * When `true`, the content will remain in its original\n * location instead of moved into the target container.\n * Can be changed dynamically.\n */\n disabled?: boolean\n }\n ```\n\n- **Example**\n\n Specifying target container:\n\n ```html\n <teleport to=\"#some-id\" />\n <teleport to=\".some-class\" />\n <teleport to=\"[data-teleport]\" />\n ```\n\n Conditionally disabling:\n\n ```html\n <teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </teleport>\n ```\n\n- **See also** [Guide - Teleport](https://it.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nUsed for orchestrating nested async dependencies in a component tree.\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n }\n ```\n\n- **Events**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Details**\n\n `<Suspense>` accepts two slots: the `#default` slot and the `#fallback` slot. It will display the content of the fallback slot while rendering the default slot in memory.\n\n If it encounters async dependencies ([Async Components](https://it.vuejs.org/guide/components/async.html) and components with [`async setup()`](https://it.vuejs.org/guide/built-ins/suspense.html#async-setup)) while rendering the default slot, it will wait until all of them are resolved before displaying the default slot.\n\n- **See also** [Guide - Suspense](https://it.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\nA \"meta component\" for rendering dynamic components or elements.\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Details**\n\n The actual component to render is determined by the `is` prop.\n\n - When `is` is a string, it could be either an HTML tag name or a component's registered name.\n\n - Alternatively, `is` can also be directly bound to the definition of a component.\n\n- **Example**\n\n Rendering components by registered name (Options API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Rendering components by definition (Composition API with `<script setup>`):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Rendering HTML elements:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n The [built-in components](./built-in-components) can all be passed to `is`, but you must register them if you want to pass them by name. For example:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n Registration is not required if you pass the component itself to `is` rather than its name, e.g. in `<script setup>`.\n\n If `v-model` is used on a `<component>` tag, the template compiler will expand it to a `modelValue` prop and `update:modelValue` event listener, much like it would for any other component. However, this won't be compatible with native HTML elements, such as `<input>` or `<select>`. As a result, using `v-model` with a dynamically created native element won't work:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- This won't work as 'input' is a native HTML element -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n In practice, this edge case isn't common as native form fields are typically wrapped in components in real applications. If you do need to use a native element directly then you can split the `v-model` into an attribute and event manually.\n\n- **See also** [Dynamic Components](https://it.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nDenotes slot content outlets in templates.\n\n- **Props**\n\n ```ts\n interface SlotProps {\n /**\n * Any props passed to <slot> to passed as arguments\n * for scoped slots\n */\n [key: string]: any\n /**\n * Reserved for specifying slot name.\n */\n name?: string\n }\n ```\n\n- **Details**\n\n The `<slot>` element can use the `name` attribute to specify a slot name. When no `name` is specified, it will render the default slot. Additional attributes passed to the slot element will be passed as slot props to the scoped slot defined in the parent.\n\n The element itself will be replaced by its matched slot content.\n\n `<slot>` elements in Vue templates are compiled into JavaScript, so they are not to be confused with [native `<slot>` elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).\n\n- **See also** [Component - Slots](https://it.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nThe `<template>` tag is used as a placeholder when we want to use a built-in directive without rendering an element in the DOM.\n\n- **Details**\n\n The special handling for `<template>` is only triggered if it is used with one of these directives:\n\n - `v-if`, `v-else-if`, or `v-else`\n - `v-for`\n - `v-slot`\n\n If none of those directives are present then it will be rendered as a [native `<template>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) instead.\n\n A `<template>` with a `v-for` can also have a [`key` attribute](https://it.vuejs.org/api/built-in-special-attributes.html#key). All other attributes and directives will be discarded, as they aren't meaningful without a corresponding element.\n\n Single-file components use a [top-level `<template>` tag](https://it.vuejs.org/api/sfc-spec.html#language-blocks) to wrap the entire template. That usage is separate from the use of `<template>` described above. That top-level tag is not part of the template itself and doesn't support template syntax, such as directives.\n\n- **See also**\n - [Guide - `v-if` on `<template>`](https://it.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [Guide - `v-for` on `<template>`](https://it.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [Guide - Named slots](https://it.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$n = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nUpdate the element's text content.\n\n- **Expects:** `string`\n\n- **Details**\n\n `v-text` works by setting the element's [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) property, so it will overwrite any existing content inside the element. If you need to update the part of `textContent`, you should use [mustache interpolations](https://it.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) instead.\n\n- **Example**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **See also** [Template Syntax - Text Interpolation](https://it.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nUpdate the element's [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML).\n\n- **Expects:** `string`\n\n- **Details**\n\n Contents of `v-html` are inserted as plain HTML - Vue template syntax will not be processed. If you find yourself trying to compose templates using `v-html`, try to rethink the solution by using components instead.\n\n ::: warning Security Note\n Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to [XSS attacks](https://en.wikipedia.org/wiki/Cross-site_scripting). Only use `v-html` on trusted content and **never** on user-provided content.\n :::\n\n In [Single-File Components](https://it.vuejs.org/guide/scaling-up/sfc.html), `scoped` styles will not apply to content inside `v-html`, because that HTML is not processed by Vue's template compiler. If you want to target `v-html` content with scoped CSS, you can instead use [CSS modules](./sfc-css-features#css-modules) or an additional, global `<style>` element with a manual scoping strategy such as BEM.\n\n- **Example**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **See also** [Template Syntax - Raw HTML](https://it.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nToggle the element's visibility based on the truthy-ness of the expression value.\n\n- **Expects:** `any`\n\n- **Details**\n\n `v-show` works by setting the `display` CSS property via inline styles, and will try to respect the initial `display` value when the element is visible. It also triggers transitions when its condition changes.\n\n- **See also** [Conditional Rendering - v-show](https://it.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nConditionally render an element or a template fragment based on the truthy-ness of the expression value.\n\n- **Expects:** `any`\n\n- **Details**\n\n When a `v-if` element is toggled, the element and its contained directives / components are destroyed and re-constructed. If the initial condition is falsy, then the inner content won't be rendered at all.\n\n Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n This directive triggers transitions when its condition changes.\n\n When used together, `v-if` has a higher priority than `v-for`. We don't recommend using these two directives together on one element — see the [list rendering guide](https://it.vuejs.org/guide/essentials/list.html#v-for-with-v-if) for details.\n\n- **See also** [Conditional Rendering - v-if](https://it.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nDenote the \"else block\" for `v-if` or a `v-if` / `v-else-if` chain.\n\n- **Does not expect expression**\n\n- **Details**\n\n - Restriction: previous sibling element must have `v-if` or `v-else-if`.\n\n - Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n- **Example**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **See also** [Conditional Rendering - v-else](https://it.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nDenote the \"else if block\" for `v-if`. Can be chained.\n\n- **Expects:** `any`\n\n- **Details**\n\n - Restriction: previous sibling element must have `v-if` or `v-else-if`.\n\n - Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n- **Example**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **See also** [Conditional Rendering - v-else-if](https://it.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nRender the element or template block multiple times based on the source data.\n\n- **Expects:** `Array | Object | number | string | Iterable`\n\n- **Details**\n\n The directive's value must use the special syntax `alias in expression` to provide an alias for the current element being iterated on:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Alternatively, you can also specify an alias for the index (or the key if used on an Object):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n The default behavior of `v-for` will try to patch the elements in-place without moving them. To force it to reorder elements, you should provide an ordering hint with the `key` special attribute:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` can also work on values that implement the [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), including native `Map` and `Set`.\n\n- **See also**\n - [List Rendering](https://it.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nAttach an event listener to the element.\n\n- **Shorthand:** `@`\n\n- **Expects:** `Function | Inline Statement | Object (without argument)`\n\n- **Argument:** `event` (optional if using Object syntax)\n\n- **Modifiers**\n\n - `.stop` - call `event.stopPropagation()`.\n - `.prevent` - call `event.preventDefault()`.\n - `.capture` - add event listener in capture mode.\n - `.self` - only trigger handler if event was dispatched from this element.\n - `.{keyAlias}` - only trigger handler on certain keys.\n - `.once` - trigger handler at most once.\n - `.left` - only trigger handler for left button mouse events.\n - `.right` - only trigger handler for right button mouse events.\n - `.middle` - only trigger handler for middle button mouse events.\n - `.passive` - attaches a DOM event with `{ passive: true }`.\n\n- **Details**\n\n The event type is denoted by the argument. The expression can be a method name, an inline statement, or omitted if there are modifiers present.\n\n When used on a normal element, it listens to [**native DOM events**](https://developer.mozilla.org/en-US/docs/Web/Events) only. When used on a custom element component, it listens to **custom events** emitted on that child component.\n\n When listening to native DOM events, the method receives the native event as the only argument. If using inline statement, the statement has access to the special `$event` property: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` also supports binding to an object of event / listener pairs without an argument. Note when using the object syntax, it does not support any modifiers.\n\n- **Example**\n\n ```html\n <!-- method handler -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- dynamic event -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- inline statement -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- shorthand -->\n <button @click=\"doThis\"></button>\n\n <!-- shorthand dynamic event -->\n <button @[event]=\"doThis\"></button>\n\n <!-- stop propagation -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- prevent default -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- prevent default without expression -->\n <form @submit.prevent></form>\n\n <!-- chain modifiers -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- key modifier using keyAlias -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- the click event will be triggered at most once -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- object syntax -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Listening to custom events on a child component (the handler is called when \"my-event\" is emitted on the child):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- inline statement -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **See also**\n - [Event Handling](https://it.vuejs.org/guide/essentials/event-handling.html)\n - [Components - Custom Events](https://it.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nDynamically bind one or more attributes, or a component prop to an expression.\n\n- **Shorthand:** `:` or `.` (when using `.prop` modifier)\n\n- **Expects:** `any (with argument) | Object (without argument)`\n\n- **Argument:** `attrOrProp (optional)`\n\n- **Modifiers**\n\n - `.camel` - transform the kebab-case attribute name into camelCase.\n - `.prop` - force a binding to be set as a DOM property. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - force a binding to be set as a DOM attribute. <sup class=\"vt-badge\">3.2+</sup>\n\n- **Usage**\n\n When used to bind the `class` or `style` attribute, `v-bind` supports additional value types such as Array or Objects. See linked guide section below for more details.\n\n When setting a binding on an element, Vue by default checks whether the element has the key defined as a property using an `in` operator check. If the property is defined, Vue will set the value as a DOM property instead of an attribute. This should work in most cases, but you can override this behavior by explicitly using `.prop` or `.attr` modifiers. This is sometimes necessary, especially when [working with custom elements](https://it.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n When used for component prop binding, the prop must be properly declared in the child component.\n\n When used without an argument, can be used to bind an object containing attribute name-value pairs.\n\n- **Example**\n\n ```html\n <!-- bind an attribute -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- dynamic attribute name -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- shorthand -->\n <img :src=\"imageSrc\" />\n\n <!-- shorthand dynamic attribute name -->\n <button :[key]=\"value\"></button>\n\n <!-- with inline string concatenation -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- class binding -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- style binding -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- binding an object of attributes -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- prop binding. \"prop\" must be declared in the child component. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- pass down parent props in common with a child component -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n The `.prop` modifier also has a dedicated shorthand, `.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- equivalent to -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n The `.camel` modifier allows camelizing a `v-bind` attribute name when using in-DOM templates, e.g. the SVG `viewBox` attribute:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n `.camel` is not needed if you are using string templates, or pre-compiling the template with a build step.\n\n- **See also**\n - [Class and Style Bindings](https://it.vuejs.org/guide/essentials/class-and-style.html)\n - [Components - Prop Passing Details](https://it.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nCreate a two-way binding on a form input element or a component.\n\n- **Expects:** varies based on value of form inputs element or output of components\n\n- **Limited to:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - components\n\n- **Modifiers**\n\n - [`.lazy`](https://it.vuejs.org/guide/essentials/forms.html#lazy) - listen to `change` events instead of `input`\n - [`.number`](https://it.vuejs.org/guide/essentials/forms.html#number) - cast valid input string to numbers\n - [`.trim`](https://it.vuejs.org/guide/essentials/forms.html#trim) - trim input\n\n- **See also**\n\n - [Form Input Bindings](https://it.vuejs.org/guide/essentials/forms.html)\n - [Component Events - Usage with `v-model`](https://it.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nDenote named slots or scoped slots that expect to receive props.\n\n- **Shorthand:** `#`\n\n- **Expects:** JavaScript expression that is valid in a function argument position, including support for destructuring. Optional - only needed if expecting props to be passed to the slot.\n\n- **Argument:** slot name (optional, defaults to `default`)\n\n- **Limited to:**\n\n - `<template>`\n - [components](https://it.vuejs.org/guide/components/slots.html#scoped-slots) (for a lone default slot with props)\n\n- **Example**\n\n ```html\n <!-- Named slots -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- Named slot that receives props -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Default slot that receive props, with destructuring -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **See also**\n - [Components - Slots](https://it.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nSkip compilation for this element and all its children.\n\n- **Does not expect expression**\n\n- **Details**\n\n Inside the element with `v-pre`, all Vue template syntax will be preserved and rendered as-is. The most common use case of this is displaying raw mustache tags.\n\n- **Example**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nRender the element and component once only, and skip future updates.\n\n- **Does not expect expression**\n\n- **Details**\n\n On subsequent re-renders, the element/component and all its children will be treated as static content and skipped. This can be used to optimize update performance.\n\n ```html\n <!-- single element -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- the element have children -->\n <div v-once>\n <h1>comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- component -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- `v-for` directive -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Since 3.2, you can also memoize part of the template with invalidation conditions using [`v-memo`](#v-memo).\n\n- **See also**\n - [Data Binding Syntax - interpolations](https://it.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **Expects:** `any[]`\n\n- **Details**\n\n Memoize a sub-tree of the template. Can be used on both elements and components. The directive expects a fixed-length array of dependency values to compare for the memoization. If every value in the array was the same as last render, then updates for the entire sub-tree will be skipped. For example:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n When the component re-renders, if both `valueA` and `valueB` remain the same, all updates for this `<div>` and its children will be skipped. In fact, even the Virtual DOM VNode creation will also be skipped since the memoized copy of the sub-tree can be reused.\n\n It is important to specify the memoization array correctly, otherwise we may skip updates that should indeed be applied. `v-memo` with an empty dependency array (`v-memo=\"[]\"`) would be functionally equivalent to `v-once`.\n\n **Usage with `v-for`**\n\n `v-memo` is provided solely for micro optimizations in performance-critical scenarios and should be rarely needed. The most common case where this may prove helpful is when rendering large `v-for` lists (where `length > 1000`):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n When the component's `selected` state changes, a large amount of VNodes will be created even though most of the items remained exactly the same. The `v-memo` usage here is essentially saying \"only update this item if it went from non-selected to selected, or the other way around\". This allows every unaffected item to reuse its previous VNode and skip diffing entirely. Note we don't need to include `item.id` in the memo dependency array here since Vue automatically infers it from the item's `:key`.\n\n :::warning\n When using `v-memo` with `v-for`, make sure they are used on the same element. **`v-memo` does not work inside `v-for`.**\n :::\n\n `v-memo` can also be used on components to manually prevent unwanted updates in certain edge cases where the child component update check has been de-optimized. But again, it is the developer's responsibility to specify correct dependency arrays to avoid skipping necessary updates.\n\n- **See also**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUsed to hide un-compiled template until it is ready.\n\n- **Does not expect expression**\n\n- **Details**\n\n **This directive is only needed in no-build-step setups.**\n\n When using in-DOM templates, there can be a \"flash of un-compiled templates\": the user may see raw mustache tags until the mounted component replaces them with rendered content.\n\n `v-cloak` will remain on the element until the associated component instance is mounted. Combined with CSS rules such as `[v-cloak] { display: none }`, it can be used to hide the raw templates until the component is ready.\n\n- **Example**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n The `<div>` will not be visible until the compilation is done.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\nThe `key` special attribute is primarily used as a hint for Vue's virtual DOM algorithm to identify vnodes when diffing the new list of nodes against the old list.\n\n- **Expects:** `number | string | symbol`\n\n- **Details**\n\n Without keys, Vue uses an algorithm that minimizes element movement and tries to patch/reuse elements of the same type in-place as much as possible. With keys, it will reorder elements based on the order change of keys, and elements with keys that are no longer present will always be removed / destroyed.\n\n Children of the same common parent must have **unique keys**. Duplicate keys will cause render errors.\n\n The most common use case is combined with `v-for`:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n It can also be used to force replacement of an element/component instead of reusing it. This can be useful when you want to:\n\n - Properly trigger lifecycle hooks of a component\n - Trigger transitions\n\n For example:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n When `text` changes, the `<span>` will always be replaced instead of patched, so a transition will be triggered.\n\n- **See also** [Guide - List Rendering - Maintaining State with `key`](https://it.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nDenotes a [template ref](https://it.vuejs.org/guide/essentials/template-refs.html).\n\n- **Expects:** `string | Function`\n\n- **Details**\n\n `ref` is used to register a reference to an element or a child component.\n\n In Options API, the reference will be registered under the component's `this.$refs` object:\n\n ```html\n <!-- stored as this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n In Composition API, the reference will be stored in a ref with matching name:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n If used on a plain DOM element, the reference will be that element; if used on a child component, the reference will be the child component instance.\n\n Alternatively `ref` can accept a function value which provides full control over where to store the reference:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n An important note about the ref registration timing: because the refs themselves are created as a result of the render function, you must wait until the component is mounted before accessing them.\n\n `this.$refs` is also non-reactive, therefore you should not attempt to use it in templates for data-binding.\n\n- **See also**\n - [Guide - Template Refs](https://it.vuejs.org/guide/essentials/template-refs.html)\n - [Guide - Typing Template Refs](https://it.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Guide - Typing Component Template Refs](https://it.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\nUsed for binding [dynamic components](https://it.vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Expects:** `string | Component`\n\n- **Usage on native elements** <sup class=\"vt-badge\">3.1+</sup>\n\n When the `is` attribute is used on a native HTML element, it will be interpreted as a [Customized built-in element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example), which is a native web platform feature.\n\n There is, however, a use case where you may need Vue to replace a native element with a Vue component, as explained in [DOM Template Parsing Caveats](https://it.vuejs.org/guide/essentials/component-basics.html#dom-template-parsing-caveats). You can prefix the value of the `is` attribute with `vue:` so that Vue will render the element as a Vue component instead:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **See also**\n\n - [Built-in Special Element - `<component>`](https://it.vuejs.org/api/built-in-special-elements.html#component)\n - [Dynamic Components](https://it.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$6 = { + version: version$n, + tags: tags$d, + globalAttributes: globalAttributes$n +}; + +const version$m = 1.1; +const tags$c = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nPoskytuje animované přechodové (transition) efekty pro **jeden** element nebo **jednu** komponentu.\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * Slouží k automatickému generování názvů CSS tříd pro přechody.\n * Např. `name: 'fade'` se automaticky rozšíří na `.fade-enter`,\n * `.fade-enter-active`, atd.\n */\n name?: string\n /**\n * Určuje, zda se mají CSS třídy přechodů použít.\n * Výchozí hodnota: true\n */\n css?: boolean\n /**\n * Určuje typ událostí přechodů, na které se má čekat\n * pro určení času ukončení přechodu.\n * Výchozí chování je automatické detekování typu s delší dobou trvání.\n */\n type?: 'transition' | 'animation'\n /**\n * Určuje explicitní doby trvání přechodu.\n * Výchozí chování je čekání na první událost `transitionend`\n * nebo `animationend` na root elementu přechodu.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Ovládá časovou posloupnost přechodů při vstupu/výstupu.\n * Výchozí chování je současné provedení.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Určuje, zda se má přechod aplikovat při počátečním vykreslení.\n * Výchozí hodnota: false\n */\n appear?: boolean\n\n /**\n * Vlastnosti pro přizpůsobení tříd přechodů.\n * V šablonách použijte kebab-case zápis, např. enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **Události**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (pouze pro `v-show`)\n - `@appear-cancelled`\n\n- **Příklad**\n\n Jednoduchý element:\n\n ```html\n <Transition>\n <div v-if=\"ok\">přepnutý obsah</div>\n </Transition>\n ```\n\n Vynucení přechodu změnou atributu `key`:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Dynamická komponenta s režimem přechodu + animace při zobrazení:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Naslouchání událostem přechodu:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">přepnutý obsah</div>\n </Transition>\n ```\n\n- **Viz také:** [Průvodce - Transition](https://cs.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nPoskytuje přechodové efekty pro **více** elementů nebo komponent v seznamu.\n\n- **Props**\n\n `<TransitionGroup>` přijímá stejné props jako `<Transition>` s výjimkou `mode`, plus dvě další vlastnosti:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * Pokud není definováno, vykresluje se jako fragment.\n */\n tag?: string\n /**\n * Pro přizpůsobení CSS třídy použité během přechodových animací.\n * V šablonách použijte kebab-case zápis, např. move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **Události**\n\n `<TransitionGroup>` emituje stejné události jako `<Transition>`.\n\n- **Podrobnosti**\n\n Ve výchozím nastavení `<TransitionGroup>` nevykresluje obalový DOM element, ale lze jej definovat pomocí vlastnosti `tag`.\n\n Pamatujte, že každý potomek v `<transition-group>` musí být [**jednoznačně označen**](https://cs.vuejs.org/guide/essentials/list.html#maintaining-state-with-key), aby animace fungovaly správně.\n\n `<TransitionGroup>` podporuje pohyblivé přechody pomocí CSS transformace. Pokud se pozice potomka na obrazovce po aktualizaci změní, bude mu aplikována pohybová CSS třída (automaticky generovaná z atributu `name` nebo konfigurovaná pomocí vlastnosti `move-class`). Pokud je CSS vlastnost `transform` při aplikaci pohybové třídy „transition-able“, element bude na své cílové místo plynule animován pomocí [techniky FLIP](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Příklad**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **Viz také:** [Průvodce - TransitionGroup](https://cs.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nUkládá stav dynamicky přepínatelných komponent obalených uvnitř do cache.\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * Pokud je specifikováno, budou do cache ukládány pouze komponenty\n * s názvy odpovídajícími `include`.\n */\n include?: MatchPattern\n /**\n * Jakákoli komponenta s názvem odpovídajícím `exclude` nebude \n * ukládána do cache.\n */\n exclude?: MatchPattern\n /**\n * Maximální počet instancí komponenty, které se mají ukládat do cache.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Podrobnosti**\n\n Když obaluje dynamickou komponentu, `<KeepAlive>` ukládá neaktivní instance komponent, aniž by je ničila.\n\n V `<KeepAlive>` může být v každém okamžiku pouze jedna aktivní instance komponenty jako přímý potomek.\n\n Když je komponenta uvnitř `<KeepAlive>` přepnuta, budou se volat odpovídající lifecycle hooky `activated` a `deactivated` poskytující alternativu k `mounted` a `unmounted`, které volány nejsou. To platí jak pro přímého potomka `<KeepAlive>`, tak pro všechny jeho potomky.\n\n- **Příklad**\n\n Základní použití:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Při použití s větvemi `v-if` / `v-else` musí být vždy zobrazena pouze jedna komponenta:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Použití společně s `<Transition>`:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n Použití `include` / `exclude`:\n\n ```html\n <!-- čárkami oddělený řetězec -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- regex (použijte `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- Pole (použijte `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Použití s `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **Viz také:** [Průvodce - KeepAlive](https://cs.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nVykresluje obsah svého slotu na jiné části DOM.\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * Povinné. Určuje cílový kontejner.\n * Může být buď selektor nebo samotný element.\n */\n to: string | HTMLElement\n /**\n * Když je `true`, obsah zůstane na svém původním\n * místě místo přesunu do cílového kontejneru.\n * Lze měnit dynamicky.\n */\n disabled?: boolean\n }\n ```\n\n- **Příklad**\n\n Určení cílového kontejneru:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n Podmíněné vypnutí:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **Viz také:** [Průvodce - Teleport](https://cs.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nPoužívá se pro orchestraci vnořených asynchronních závislostí ve stromu komponent.\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **Události**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Podrobnosti**\n\n `<Suspense>` přijímá dva sloty: `#default` a `#fallback`. Zobrazí obsah fallback slotu, zatímco v paměti vykresluje default slot.\n\n Pokud narazí na asynchronní závislosti ([Asynchronní komponenty](https://cs.vuejs.org/guide/components/async.html) a komponenty s [`async setup()`](https://cs.vuejs.org/guide/built-ins/suspense.html#async-setup)) při vykreslování default slotu, počká, dokud nebudou všechny vyřešeny, než ho zobrazí.\n\n Nastavením komponenty Suspense na `suspensible` budou všechny asynchronní závislosti obsluhovány nadřazenou Suspense. Podívejte se na [detaily implementace](https://github.com/vuejs/core/pull/6736).\n\n- **Viz také:** [Průvodce - Suspense](https://cs.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n„Meta komponenta“ pro vykreslování dynamických komponent nebo elementů.\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Podrobnosti**\n\n Skutečná komponenta k vykreslení je určena vlastností `is`.\n\n - Když je `is` řetězec, může to být buď název HTML tagu nebo zaregistrovaný název komponenty.\n\n - Alternativně může být `is` vázán přímo na definici komponenty.\n\n- **Příklad**\n\n Vykreslování komponent podle zaregistrovaného názvu (Options API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Vykreslování komponent podle definice (Composition API se `<script setup>`):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Vykreslování HTML elementů:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n Do `is` lze předat všechny [vestavěné komponenty](./built-in-components), ale musíte je zaregistrovat, pokud je chcete předávat jménem. Například:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n Registrace není vyžadována, pokud do `is` místo jejího názvu předáte samotnou komponentu, např. ve `<script setup>`.\n\n Pokud je na tagu `<component>` použit `v-model`, kompilátor šablony jej transformuje na vlastnost (prop) `modelValue` a event listener `update:modelValue`, podobně jako by to udělal pro jakoukoli jinou komponentu. Není to však kompatibilní s nativními HTML elementy, jako jsou `<input>` nebo `<select>`. Kvůli tomu nebude použití `v-model` s dynamicky vytvořeným nativním elementem fungovat:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- Toto nebude fungovat, protože 'input' je nativní HTML element -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n V praxi se tento okrajový případ běžně nevyskytuje, protože nativní formulářová pole jsou ve skutečných aplikacích obvykle obalena komponentami. Pokud však skutečně potřebujete použít nativní element přímo, můžete `v-model` ručně rozdělit na atribut a událost.\n\n- **Viz také:** [Dynamické komponenty](https://cs.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nUrčuje prostor pro vložený obsah uvnitř šablon.\n\n- **Props** \n\n ```ts\n interface SlotProps {\n /**\n * Jakékoli vlastnosti předané do <slot> budou předány jako argumenty\n * pro scoped sloty\n */\n [key: string]: any\n /**\n * Rezervováno pro specifikaci jména slotu.\n */\n name?: string\n }\n ```\n\n- **Podrobnosti**\n\n Element `<slot>` může použít atribut `name` k určení jména slotu. Pokud není specifikováno žádné jméno, bude vykreslen výchozí (default) slot. Další atributy předané do elementu slotu budou předány jako vlastnosti (props) scoped slotu definovaného v rodičovské komponentě.\n\n Samotný element bude nahrazen obsahem odpovídajícího slotu.\n\n `<slot>` elementy ve Vue šablonách jsou kompilovány do JavaScriptu, aby nedocházelo k jejich záměně s [nativními `<slot>` elementy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).\n\n- **Viz také:** [Průvodce - Sloty](https://cs.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nTag `<template>` se používá jako placeholder, když chceme použít vestavěnou direktivu, aniž bychom vykreslovali element v DOM.\n\n- **Podrobnosti**\n\n Speciální obsluha je pro `<template>` spuštěna pouze tehdy, pokud je tag použit spolu s jednou z těchto direktiv:\n\n - `v-if`, `v-else-if` nebo `v-else`\n - `v-for`\n - `v-slot`\n\n Pokud žádná z těchto direktiv přítomna není, bude vykreslen jako [nativní `<template>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template).\n\n `<template>` s `v-for` může mít také atribut [`key`](https://cs.vuejs.org/api/built-in-special-attributes.html#key). Všechny ostatní atributy a direktivy budou igorovány, protože nemají bez odpovídajícího prvku význam.\n\n Single-file komponenty (SFC) používají [tag `<template>` nejvyšší úrovně](https://cs.vuejs.org/api/sfc-spec.html#language-blocks) k obalení celé šablony. Tento způsob použití je oddělen od použití `<template>` popsaného výše. Tento tag nejvyšší úrovně není součástí samotné šablony a nepodporuje syntaxi šablony, jako jsou direktivy.\n\n- **Viz také:**\n - [Průvodce - `v-if` na `<template>`](https://cs.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [Průvodce - `v-for` nad `<template>`](https://cs.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [Průvodce - Pojmenované sloty](https://cs.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$m = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nAktualizuje textový obsah elementu.\n\n- **Očekává:** `string`\n\n- **Podrobnosti**\n\n `v-text` funguje tak, že elementu nastavuje vlastnost [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent), což přepíše jakýkoli existující obsah uvnitř elementu. Pokud potřebujete aktualizovat část `textContent`, měli byste místo toho použít [„mustache“ interpolaci](https://cs.vuejs.org/guide/essentials/template-syntax.html#text-interpolation).\n\n- **Příklad**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- stejné jako -->\n <span>{{msg}}</span>\n ```\n\n- **Viz také:** [Syntaxe šablon - Interpolace textu](https://cs.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nAktualizuje [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML) elementu.\n\n- **Očekává:** `string`\n\n- **Podrobnosti**\n\n Obsah `v-html` je vložen jako prosté HTML - syntaxe Vue šablony nebude zpracována. Pokud se snažíte sestavit šablony pomocí `v-html`, zkuste raději řešení přehodnotit a použít komponenty.\n\n ::: warning Bezpečnostní poznámka\n Dynamické vykreslování libovolného HTML na vašem webu může být velmi nebezpečné, protože může snadno vést k [XSS útokům](https://en.wikipedia.org/wiki/Cross-site_scripting). Používejte `v-html` pouze na důvěryhodný obsah a **nikdy** na obsah poskytovaný uživatelem.\n :::\n\n V [Single-file komponentách (SFC)](https://cs.vuejs.org/guide/scaling-up/sfc.html) se `scoped` styly na obsah uvnitř `v-html` nebudou aplikovat, protože toto HTML není zpracováváno kompilátorem Vue šablony. Pokud chcete cílit na obsah `v-html` pomocí scoped CSS, můžete místo toho použít [CSS moduly](./sfc-css-features#css-modules) nebo další, globální `<style>` element s manuální strategií omezování rozsahu, jako je BEM.\n\n- **Příklad**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **Viz také:** [Syntaxe šablon - HTML kód](https://cs.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nPřepíná viditelnost elementu na základě pravdivostní hodnoty výrazu.\n\n- **Očekává:** `any`\n\n- **Podrobnosti**\n\n `v-show` funguje tak, že nastavuje vlastnost `display` v CSS pomocí inline stylů a snaží se respektovat původní hodnotu `display`, když je prvek viditelný. Také spouští přechody, když se změní jeho podmínka.\n\n- **Viz také:** [Podmíněné vykreslování - v-show](https://cs.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nPodmíněné vykreslování elementu nebo fragmentu šablony na základě pravdivostní hodnoty výrazu.\n\n- **Očekává:** `any`\n\n- **Podrobnosti**\n\n Když je element s `v-if` přepnut, element a jeho obsažené direktivy / komponenty jsou zničeny a znovu vytvořeny. Pokud je počáteční podmínka nepravdivá, vnitřní obsah nebude vůbec vykreslen.\n\n Lze použít na `<template>` pro označení podmíněného bloku obsahujícího pouze text nebo více elementů.\n\n Tato direktiva spouští přechody, když se změní její podmínka.\n\n Pokud jsou použity společně, `v-if` má vyšší prioritu než `v-for`. Nedoporučujeme používat tyto dvě direktivy společně na jednom elementu - pro podrobnosti se podívejte na [průvodce vykreslováním seznamu](https://cs.vuejs.org/guide/essentials/list.html#v-for-with-v-if).\n\n- **Viz také:** [Podmíněné vykreslování - v-if](https://cs.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nOznačuje „else blok“ pro `v-if` nebo řetězec `v-if` / `v-else-if`.\n\n- **Nepředpokládá výraz**\n\n- **Podrobnosti**\n\n - Omezení: předchozí element (sibling) musí mít `v-if` nebo `v-else-if`.\n\n - Lze použít na `<template>` pro označení podmíněného bloku obsahujícího pouze text nebo více prvků.\n\n- **Příklad**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Teď mě vidíš\n </div>\n <div v-else>\n Teď mě nevidíš\n </div>\n ```\n\n- **Viz také:** [Podmíněné vykreslování - v-else](https://cs.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nOznačuje „else if blok“ pro `v-if`. Může být řetězený (více „else if“ větví).\n\n- **Očekává:** `any`\n\n- **Podrobnosti**\n\n - Omezení: předchozí element (sibling) musí mít `v-if` nebo `v-else-if`.\n\n - Lze použít na `<template>` pro označení podmíněného bloku obsahujícího pouze text nebo více prvků.\n\n- **Příklad**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Není A/B/C\n </div>\n ```\n\n- **Viz také:** [Podmíněné vykreslování - v-else-if](https://cs.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nVykreslí element nebo blok šablony vícekrát na základě zdrojových dat.\n\n- **Očekává:** `Array | Object | number | string | Iterable`\n\n- **Podrobnosti**\n\n Hodnota direktivy musí používat speciální syntaxi `alias in expression` pro poskytnutí aliasu na aktuální element, který je iterován:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Alternativně můžete také specifikovat alias pro index (nebo klíč, pokud se používá na objektu):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n Výchozí chování `v-for` je pokusit se opravit elementy na místě, aniž by byly přesouvány. Pokud chcete, aby byly přeuspořádány, měli byste poskytnout nápovědu pro řazení pomocí speciálního atributu `key`:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` může také pracovat s hodnotami, které implementují [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), včetně nativních `Map` a `Set`.\n\n- **Viz také:**\n - [Vykreslování seznamu](https://cs.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nPřipojí k elementu event listener.\n\n- **Zkratka:** `@`\n\n- **Očekává:** `Function | Inline Statement | Object (bez parametru)`\n\n- **Parametr:** `event` (volitelné při použití objektové syntaxe)\n\n- **Modifikátory**\n\n - `.stop` - zavolá `event.stopPropagation()`.\n - `.prevent` - zavolá `event.preventDefault()`.\n - `.capture` - přidá event listener v režimu zachycení (capture mode).\n - `.self` - spustí handler pouze pokud byla událost vyvolána z tohoto elementu.\n - `.{keyAlias}` - spustí handler pouze pro určité klávesy.\n - `.once` - spustí handler maximálně jednou.\n - `.left` - spustí handler pouze pro události levého tlačítka myši.\n - `.right` - spustí handler pouze pro události pravého tlačítka myši.\n - `.middle` - spustí handler pouze pro události středního tlačítka myši.\n - `.passive` - připojí DOM událost s `{ passive: true }`.\n\n- **Podrobnosti**\n\n Typ události je určen parametrem. Výraz může být název metody, vložený příkaz nebo může být vynechán, pokud jsou přítomny modifikátory.\n\n Pokud je použito na běžném elementu, naslouchá pouze [**nativním DOM událostem**](https://developer.mozilla.org/en-US/docs/Web/Events). Pokud je použito na elementu vlastní komponenty, naslouchá **vlastním událostem** emitovaným na tomto potomkovi.\n\n Při naslouchání nativním DOM událostem metoda přijímá jako jediný argument nativní událost. Pokud je použit vložený příkaz, příkaz má přístup k speciální vlastnosti `$event`: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` také podporuje binding na objekt párů událost / listener bez argumentu. Pozor, při použití objektové syntaxe nepodporuje žádné modifikátory.\n\n- **Příklad**\n\n ```html\n <!-- handler metody -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- dynamická událost -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- inline příkaz -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- zkratka -->\n <button @click=\"doThis\"></button>\n\n <!-- zkratka pro dynamickou událost -->\n <button @[event]=\"doThis\"></button>\n\n <!-- zastavení propagace -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- zamezení výchozího chování -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- zamezení výchozího chování bez výrazu -->\n <form @submit.prevent></form>\n\n <!-- řetězení modifikátorů -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- modifikátor klávesy pomocí keyAlias -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- událost click bude spuštěna nejvýše jednou -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- objektová syntaxe -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Naslouchání vlastním událostem na komponentě potomka (handler je volán při emitování „my-event“ z potomka):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- inline příkaz -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **Viz také:**\n - [Obsluha událostí](https://cs.vuejs.org/guide/essentials/event-handling.html)\n - [Základy komponent - Naslouchání událostem](https://cs.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nDynamicky váže jeden nebo více atributů nebo vlastností (props) komponenty na výraz.\n\n- **Zkratka:** \n - `:` nebo `.` (pokud se používá modifikátor `.prop`)\n - Vynechání hodnoty (pokud mají atribut a vázaná hodnota stejný název), podporováno až od verze 3.4+\n\n- **Očekává:** `libovolný (s parametrem) | Objekt (bez parametru)`\n\n- **Parametr:** `attrOrProp (volitelné)`\n\n- **Modifikátory**\n\n - `.camel` - převede název atributu z kebab-case na camelCase.\n - `.prop` - vynutí binding jako vlastnost (prop) DOM (3.2+).\n - `.attr` - vynutí binding jako atribut DOM (3.2+).\n\n- **Použití**\n\n Pokud se používá pro binding atributu `class` nebo `style`, `v-bind` podporuje další typy hodnot, jako jsou pole nebo objekty. Podrobnosti naleznete v příslušné části průvodce níže.\n\n Při nastavování bindingu na element Vue ve výchozím nastavení kontroluje, zda má element klíč definovaný jako vlastnost pomocí operátoru `in`. Pokud je vlastnost definována, Vue nastaví hodnotu jako vlastnost DOM místo atributu. To by mělo fungovat ve většině případů, ale toto chování můžete přepsat explicitním použitím modifikátorů `.prop` nebo `.attr`. To je někdy nutné, zejména při [práci s custom elementy](https://cs.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n Při použití pro binding vlastností (props) komponenty musí být vlastnost v komponentě potomka správně deklarována.\n\n Pokud se používá bez parametru, může být použito pro binding objektu obsahujícího páry název-hodnota atributu.\n\n- **Příklad**\n\n ```html\n <!-- binding atributu -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- dynamický název atributu -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- zkratka -->\n <img :src=\"imageSrc\" />\n\n <!-- zkratka stejného názvu (3.4+), bude rozšířeno na :src=\"src\" -->\n <img :src />\n\n <!-- zkratka s dynamickým názvem atributu -->\n <button :[key]=\"value\"></button>\n\n <!-- se spojením řetězců -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- binding třídy -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- binding stylů -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- binding objektu attributů -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- binding vlastnosti, `prop` musí být deklarována v komponentě potomka -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- předání props z rodiče, které jsou společné s komponentnou potomka -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\nModifikátor `.prop` má také zkrácenou formu, `.`:\n\n```html\n<div :someProperty.prop=\"someObject\"></div>\n\n<!-- ekvivalentní zápis -->\n<div .someProperty=\"someObject\"></div>\n```\n\nModifikátor `.camel` umožňuje převést jméno atributu `v-bind` na camelCase, například atribut `viewBox` ve SVG:\n\n```html\n<svg :view-box.camel=\"viewBox\"></svg>\n```\n\n`.camel` není potřeba, pokud používáte řetězcové šablony nebo předkompilujete šablonu pomocí build fáze.\n\n- **Viz také:**\n - [Binding tříd a stylů](https://cs.vuejs.org/guide/essentials/class-and-style.html)\n - [Vlastnosti (Props) - Detaily předávání vlastností](https://cs.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nVytvoří oboustranný binding na input element formuláře nebo komponenty.\n\n- **Očekává:** hodnota závisí na hodnotě input elementu formuláře nebo výstupu komponenty\n\n- **Omezeno na:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - komponenty\n\n- **Modifikátory**\n\n - [`.lazy`](https://cs.vuejs.org/guide/essentials/forms.html#lazy) - naslouchá událostem `change` místo `input`\n - [`.number`](https://cs.vuejs.org/guide/essentials/forms.html#number) - převede platný řetězcový vstup na čísla\n - [`.trim`](https://cs.vuejs.org/guide/essentials/forms.html#trim) - odstraní přebytečné mezery\n\n- **Viz také:**\n\n - [Binding dat z formulářů](https://cs.vuejs.org/guide/essentials/forms.html)\n - [Binding přes v-model](https://cs.vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nUrčuje pojmenované sloty nebo scoped sloty, které očekávají předání vlastností (props).\n\n- **Zkrácený zápis:** `#`\n\n- **Očekává:** JavaScriptový výraz, který je platný v pozici argumentu funkce, včetně podpory destrukturování. Volitelné - je potřeba pouze pokud očekáváte, že budou do slotu předány vlastnosti.\n\n- **Parametr:** název slotu (volitelné, výchozí hodnota je `default`)\n\n- **Omezeno na:**\n\n - `<template>`\n - [komponenty](https://cs.vuejs.org/guide/components/slots.html#scoped-slots) (pro samostatný default slot s props)\n\n- **Příklad**\n\n ```html\n <!-- Pojmenované sloty -->\n <BaseLayout>\n <template v-slot:header>\n Obsah záhlaví\n </template>\n\n <template v-slot:default>\n Obsah default slotu\n </template>\n\n <template v-slot:footer>\n Obsah zápatí\n </template>\n </BaseLayout>\n\n <!-- Pojmenovaný slot, který přijímá props -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Default slot, který přijímá props s destrukturováním -->\n <Mouse v-slot=\"{ x, y }\">\n Pozice myši: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **Viz také:**\n - [Komponenty - Sloty (Slots)](https://cs.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nPřeskočit kompilaci tohoto elementu a všech jeho potomků.\n\n- **Nepředpokládá výraz** \n\n- **Podrobnosti**\n\n Uvnitř elementu s `v-pre` budou všechny syntaxe Vue šablony zachovány a vykresleny tak, jak jsou. Nejběžnějším použitím je zobrazení nezpracovaných „mustache“ tagů.\n\n- **Příklad**\n\n ```html\n <span v-pre>{{ toto nebude zkompilováno }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nVykreslit element nebo komponentu pouze jednou a přeskočit budoucí aktualizace.\n\n- **Nepředpokládá výraz** \n\n- **Podrobnosti**\n\n Při dalších překreslováních budou element/komponenta a všichni potomci považováni za statický obsah a přeskočeni. To lze použít k optimalizaci výkonu aktualizace.\n\n ```html\n <!-- jediný prvek -->\n <span v-once>Toto se nikdy nezmění: {{msg}}</span>\n <!-- element s potomky -->\n <div v-once>\n <h1>Komentář</h1>\n <p>{{msg}}</p>\n </div>\n <!-- komponenta -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- direktiva `v-for` -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Od verze 3.2 si můžete také část šablony „zapamatovat“ (memoize) s podmínkami neplatnosti pomocí [`v-memo`](#v-memo).\n\n- **Viz také:**\n - [Syntaxe šablon - Interpolace textu](https://cs.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- Podporováno až od verze 3.2+\n\n- **Očekává:** `any[]`\n\n- **Podrobnosti**\n\n Uloží si (memoize) podstrom šablony. Může být použito jak na elementech, tak na komponentách. Direktiva očekává pole hodnot závislostí pevné délky, které se porovnávají pro zapamatování. Pokud každá hodnota v poli byla stejná jako při posledním vykreslení, aktualizace pro celý podstrom bude přeskočena. Například:\n\n ```html\n <div v-memo=\"[hodnotaA, hodnotaB]\">\n ...\n </div>\n ```\n\n Pokud při opětovném vykreslení komponenty zůstanou jak `hodnotaA`, tak `hodnotaB` stejné, všechny aktualizace pro tento `<div>` a jeho potomky budou přeskočeny. Ve skutečnosti bude přeskočeno i vytváření Virtual DOM VNode, protože memoizovaná kopie podstromu může být znovu použita.\n\n Je důležité správně specifikovat pole pro zapamatování, jinak můžeme přeskočit aktualizace, které by aplikovány být měly. `v-memo` s prázdným polem závislostí (`v-memo=\"[]\"`) by bylo funkčně ekvivalentní `v-once`.\n\n **Použití s `v-for`**\n\n `v-memo` je poskytováno výhradně pro mikrooptimalizace výkonu a je potřeba jen zřídka. Nejběžnější případ, kdy se to může hodit, je při vykreslování velkých seznamů `v-for` (kde `length > 1000`):\n\n ```html\n <div v-for=\"prvek in seznam\" :key=\"prvek.id\" v-memo=\"[prvek.id === vybrano]\">\n <p>ID: {{ prvek.id }} - vybráno: {{ prvek.id === vybrano }}</p>\n <p>...další potomci</p>\n </div>\n ```\n\n Při změně stavu `vybrano` komponenty bude vytvořeno velké množství VNodes, i když většina položek zůstala přesně stejná. Použití `v-memo` zde znamená _„aktualizujte tuto položku pouze tehdy, pokud se změnila z nevybrané na vybranou nebo naopak“_. To umožňuje každé neovlivněné položce znovu použít její předchozí VNode a úplně přeskočit porovnávání rozdílů. Poznamenejme, že zde do pole závislostí pro zapamatování nemusíme zahrnout `prvek.id`, protože Vue ji automaticky odvodí z `:key` položky.\n\n :::warning Varování\n Při použití `v-memo` s `v-for` se ujistěte, že jsou použity na stejném elementu. **`v-memo` nefunguje uvnitř `v-for`.**\n :::\n\n `v-memo` lze také použít na komponentách k manuálnímu zabránění nechtěným aktualizacím v určitých okrajových případech, kdy byla kontrola aktualizace potomka de-optimalizována. Ale opět je zodpovědností vývojáře specifikovat správné pole závislostí, aby se zabránilo vynechání nutných aktualizací.\n\n- **Viz také:**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nPoužívá se k skrytí nezkompilované šablony, dokud není připravena.\n\n- **Nepředpokládá výraz**\n\n- **Podrobnosti**\n\n **Tato direktiva je potřeba pouze při použití bez build fáze.**\n\n Při použití in-DOM šablon může dojít k „blikání (flashing) nezkompilovaných šablon“: uživatel může vidět nezpracované „mustache“ značky, dokud je připojená (mounted) komponenta nenahradí vykresleným obsahem.\n\n `v-cloak` zůstane na elementu, dokud není připojena příslušná instance komponenty. Spolu s CSS pravidly jako `[v-cloak] { display: none }` lze použít k skrytí nezpracovaných šablon, dokud není komponenta připravena.\n\n- **Příklad**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n `<div>` nebude viditelný, dokud nebude dokončena kompilace.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\nSpeciální atribut `key` se používá především jako nápověda pro virtuální DOM algoritmus Vue pro identifikaci elementů (VNodes) při porovnávání nového seznamu s původním seznamem.\n\n- **Očekává:** `number | string | symbol`\n\n- **Podrobnosti**\n\n Bez `key` atributů Vue používá algoritmus, který minimalizuje pohyb elementů a snaží se co nejvíce upravit / znovupoužít elementy stejného typu na stejném místě. S použitím `key` se elementy přeuspořádávají na základě změny pořadí klíčů a elementy s klíči, které již nejsou přítomny, budou vždy odstraněny / zničeny.\n\n Potomci stejného společného rodiče musí mít **unikátní klíče**. Duplicitní atributy `key` způsobí chyby při vykreslování.\n\n Nejběžnější použití je v kombinaci s `v-for`:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n Mohou být také použity k vynucenému nahrazení elementu/komponenty místo jejího znovupoužití. To může být užitečné, když chcete:\n\n - Správně spustit lifecycle hooky komponenty\n - Spustit přechody (transitions)\n\n Například:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n Když se změní `text`, `<span>` bude vždy nahrazen místo pouhé úpravy, takže se přechod spustí.\n\n- **Viz také:** [Průvodce - Vykreslování seznamu - Udržování stavu pomocí `key`](https://cs.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nUrčuje [Template ref](https://cs.vuejs.org/guide/essentials/template-refs.html).\n\n- **Očekává:** `string | Function`\n\n- **Podrobnosti**\n\n `ref` se používá k zaregistrování reference na element nebo komponentu potomka.\n\n V Options API bude reference zaregistrována v objektu `this.$refs` komponenty:\n\n ```html\n <!-- uloženo jako this.$refs.p -->\n <p ref=\"p\">ahoj</p>\n ```\n\n V Composition API bude reference uložena jako `ref` se shodným názvem:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">ahoj</p>\n </template>\n ```\n\n Pokud je použito na obyčejném DOM elementu, reference bude odkazovat na tento element; pokud je použito na komponentě potomka, reference bude odkazovat na příslušnou instanci komponenty.\n\n Alternativně může `ref` přijmout hodnotu funkce, která poskytuje plnou kontrolu, kam referenci uložit:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n Důležitá poznámka ohledně času registrace ref: protože samotné refs jsou vytvořeny jako výsledek vykreslovací funkce, musíte počkat, až je komponenta připojena (mounted), než k nim lze přistoupit.\n\n `this.$refs` také není reaktivní, proto byste se neměli pokoušet tento objekt použít v šablonách pro data-binding.\n\n- **Viz také:**\n - [Průvodce - Template Refs](https://cs.vuejs.org/guide/essentials/template-refs.html)\n - [Průvodce - Typování template refs](https://cs.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Průvodce - Typování template refs komponenty](https://cs.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\nPoužívá se pro binding [dynamických komponent](https://cs.vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Očekává:** `string | Komponenta`\n\n- **Použití na nativních elementech** <sup class=\"vt-badge\">3.1+</sup>\n\n Když je atribut `is` použit na nativním HTML elementu, bude interpretován jako [custom vestavěný element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example), což je nativní funkce webové platformy.\n\n Existuje však případ použití, kdy můžete potřebovat, aby Vue nahradilo nativní element Vue komponentou, jak je vysvětleno v [upozornění na omezení při parsování in-DOM šablon](https://cs.vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats). Můžete atributu `is` přidat předponu `vue:`, aby Vue vykreslilo element jako Vue komponentu:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **Viz také:**\n\n - [Vestavěné speciální elementy - `<component>`](https://cs.vuejs.org/api/built-in-special-elements.html#component)\n - [Dynamické komponenty](https://cs.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$7 = { + version: version$m, + tags: tags$c, + globalAttributes: globalAttributes$m +}; + +const version$l = 1.1; +const tags$b = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nОбеспечивает эффекты анимированного перехода **одного** элемента или компонента.\n\n- **Входные параметры**\n\n ```ts\n interface TransitionProps {\n /**\n * Используется для автоматической генерации CSS-классов перехода.\n * Например, `name: 'fade'` автоматически раскроется в `.fade-enter`,\n * `.fade-enter-active` и т.д.\n */\n name?: string\n /**\n * Применять ли СSS-классы переходов.\n * По умолчанию: true\n */\n css?: boolean\n /**\n * Указывает тип событий перехода, которые необходимо ждать \n * для определения момента окончания перехода.\n * По умолчанию автоматически выбирается тип с большей длительностью.\n */\n type?: 'transition' | 'animation'\n /**\n * Определяет длительность перехода.\n * По умолчанию Vue ждёт первого события `transitionend`\n * или `animationend` на корневом элементе.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Управляет последовательностью переходов исчезновения/появления.\n * По умолчанию — одновременно.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Применять ли переход при первоначальном рендере.\n * По умолчанию: false\n */\n appear?: boolean\n\n /**\n * Параметры для настройки классов перехода.\n * Используйте kebab-case в шаблонах, например enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **События**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (только для `v-show`)\n - `@appear-cancelled`\n\n- **Пример**\n\n Простой элемент:\n\n ```html\n <Transition>\n <div v-if=\"ok\">переключаемое содержимое</div>\n </Transition>\n ```\n\n Принудительный эффект перехода путем изменения атрибута `key`:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Динамический компонент, используются параметры mode и appear:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Прослушивание событий перехода:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">переключаемое содержимое</div>\n </Transition>\n ```\n\n- **См. также** [Руководство — Transition](https://ru.vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nОбеспечивает эффекты перехода для **нескольких** элементов или компонентов в списке.\n\n- **Входные параметры**\n\n `<TransitionGroup>` принимает те же параметры, что и `<Transition>`, за исключением `mode`, плюс два дополнительных параметра:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /*\n * Если не определен, то рендерится как fragment.\n */\n tag?: string\n /**\n * Для переопределения CSS-класса, применяемого во время анимаций перемещения.\n * Используйте kebab-case в шаблонах, например move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **События**\n\n `<TransitionGroup>` генерирует те же события, что и `<Transition>`.\n\n- **Подробности**\n\n По умолчанию `<TransitionGroup>` не создаёт DOM-элемент, но его можно задать с помощью параметра `tag`.\n\n Обратите внимание, что у каждого потомка `<transition-group>` должен быть [**уникальный ключ**](https://ru.vuejs.org/guide/essentials/list.html#maintaining-state-with-key) для правильной работы анимаций.\n\n `<TransitionGroup>` поддерживает анимации перемещения с помощью CSS трансформаций. Если положение потомка на экране изменится после обновления, ему будет добавлен CSS-класс (автоматически сгенерированный из атрибута `name` или заданный параметром `move-class`). Если после применения этого класса CSS-свойство `transform` возможно анимировать, элемент будет плавно перемещён в новое положение с помощью [техники FLIP](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Пример**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **См. также** [Руководство — TransitionGroup](https://ru.vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nКэширует содержащиеся внутри динамически переключаемые компоненты.\n\n- **Входные параметры**\n\n ```ts\n interface KeepAliveProps {\n /**\n * Если определено, то только компоненты с подходящими под\n * `include` именами будут кэшированы.\n */\n include?: MatchPattern\n /**\n * Любой компонент с именем подходящим под `exclude`\n * не будет кэшироваться.\n */\n exclude?: MatchPattern\n /**\n * Максимальное количество кэшируемых экземпляров компонентов.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Подробности**\n\n При оборачивании вокруг динамического компонента, `<KeepAlive>` кэширует неактивные экземпляры компонентов, не уничтожая их.\n\n В любой момент времени в качестве прямого потомка `<KeepAlive>` может быть только один активный экземпляр компонента.\n\n При переключении компонента внутри `<KeepAlive>` будут вызываться его хуки жизненного цикла `activated` и `deactivated` соответственно, предоставляя альтернативу хукам `mounted` и `unmounted`, которые не вызываются. Это относится как к непосредственному потомку `<KeepAlive>`, так и ко всем прочим его потомкам.\n\n- **Пример**\n\n Базовое использование:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Когда используется с `v-if` / `v-else` ветвями, одновременно должен рендериться только один компонент:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Использование вместе с `<Transition>`:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n Использование `include` / `exclude`:\n\n ```html\n <!-- строка, с перечислением через запятую -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- регулярное выражение (используется `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- массив (используется `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Использование с `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **См. также** [Руководство — KeepAlive](https://ru.vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nПеремещает содержимое своего слота в другую часть DOM.\n\n- **Входные параметры**\n\n ```ts\n interface TeleportProps {\n /**\n * Обязательный. Задаёт целевой контейнер.\n * Может быть селектором или непосредственно элементом.\n */\n to: string | HTMLElement\n /**\n * Если `true`, содержимое останется на своем первоначальном\n * месте, вместо перемещения в целевой контейнер.\n * Может изменяться динамически.\n */\n disabled?: boolean\n }\n ```\n\n- **Пример**\n\n Указание целевого контейнера:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n Перемещение по условию:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n- **См. также** [Руководство — Teleport](https://ru.vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nИспользуется для оркестровки вложенных асинхронных зависимостей в дереве компонентов.\n\n- **Входные параметры**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **События**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Подробности**\n\n `<Suspense>` принимает два слота: `#default` и `#fallback`. Он будет отображать содержимое `#fallback` слота во время рендеринга `#default` слота в памяти.\n\n Если он встречает асинхронные зависимости ([Асинхронные компоненты](https://ru.vuejs.org/guide/components/async.html) и компоненты с [`async setup()`](https://ru.vuejs.org/guide/built-ins/suspense.html#async-setup)) во время рендеринга `#default` слота, он будет ждать, пока все они не будут разрешены, прежде чем отобразить `#default` слот.\n\n Если установить для Suspense значение `suspensible`, вся обработка асинхронных зависимостей будет выполняться родительским Suspense. См. [подробности реализации](https://github.com/vuejs/core/pull/6736)\n\n- **См. также** [Руководство — Suspense](https://ru.vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\n«Мета-компонент» для отрисовки динамических компонентов.\n\n- **Входные параметры**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Подробности**\n\n - Фактический компонент, который будет отображаться, определяется параметром `is`.\n\n - Когда `is` является строкой, это может быть либо имя HTML-тега, либо зарегистрированное имя компонента.\n\n - Кроме того, `is` может быть непосредственно связано с определением компонента.\n\n- **Пример**\n\n Рендеринг компонентов по зарегистрированному имени (Options API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Рендеринг компонентов по определению (Composition API с `<script setup>`):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Рендеринг HTML-элементов:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n Все [встроенные компоненты](./built-in-components) могут быть переданы в `is`, но их необходимо зарегистрировать, если хотите передать их по имени. Например:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n Регистрация не требуется, если передаете сам компонент в `is`, а не его имя, например, в `<script setup>`.\n\n Если `v-model` используется в теге `<component>`, компилятор шаблона расширит его до входного параметра `modelValue` и прослушивателя событий `update:modelValue`, как и для любого другого компонента. Однако это не будет совместимо с собственными HTML-элементами, такими как `<input>` или `<select>`. В результате использование `v-model` с динамически созданным собственным элементом не будет работать:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- ЭТО НЕ СРАБОТАЕТ, так как 'input' является собственным элементом HTML -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n На практике этот крайний случай встречается нечасто, поскольку в реальных приложениях нативные поля форм обычно оборачиваются в компоненты. Если необходимо использовать нативный элемент напрямую, то можно разделить `v-model` на атрибут и событие вручную.\n\n- **См. также** [Динамические компоненты](https://ru.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nОбозначает выходы содержимого слотов в шаблонах.\n\n- **Входные параметры**\n\n ```ts\n interface SlotProps {\n /**\n * Любые входные параметры, переданные в <slot>, передаются в качестве аргументов\n * для слотов с ограниченным пространством\n */\n [key: string]: any\n /**\n * Зарезервировано для указания имени слота.\n */\n name?: string\n }\n ```\n\n- **Подробности**\n\n Элемент `<slot>` может использовать атрибут `name` для указания имени слота. Если `name` не указано, он отобразит слот по умолчанию. Дополнительные атрибуты, переданные элементу slot, будут переданы в качестве входного параметра слота в слот с ограниченной областью действия, определенный в родительском элементе.\n\n Сам элемент будет заменен соответствующим содержимым слота.\n\n Элементы `<slot>` в шаблонах Vue скомпилированы в JavaScript, поэтому их не следует путать с [собственными элементами `<slot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).\n\n- **См. также** [Компонент - Слоты](https://ru.vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nТег `<template>` используется как \"псевдоэлемент\", когда мы хотим использовать встроенную директиву без отрисовки элемента в DOM.\n\n- **Подробности**\n\n Специальная обработка для `<template>` срабатывает только в том случае, если он используется с одной из этих директив:\n\n - `v-if`, `v-else-if` или `v-else`\n - `v-for`\n - `v-slot`\n\n Если не присутствует ни одна из этих директив, то вместо этого он будет отображаться как [нативный элемент `<template>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template).\n\n Элемент`<template>` в связке с `v-for` также может иметь [атрибут `key`](https://ru.vuejs.org/api/built-in-special-attributes.html#key). Все остальные атрибуты и директивы будут проигнорированы, так как они не имеют смысла без соответствующего элемента.\n\n Однофайловые компоненты используют [тег верхнего уровня `<template>`](https://ru.vuejs.org/api/sfc-spec.html#language-blocks) для оборачивания всего шаблона. Это использование отличается от описанного выше использования `<template>`. Этот тег верхнего уровня не является частью самого шаблона и не поддерживает синтаксис шаблона, например директивы.\n\n- **См. также**\n - [Руководство - `v-if` и `<template>`](https://ru.vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [Руководство - `v-for` и `<template>`](https://ru.vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [Руководство - Именованные слоты](https://ru.vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$l = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nОбновление текстового содержимого элемента.\n\n- **Ожидает:** `string`\n\n- **Подробности**\n\n `v-text` работает путём установки свойства [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) элемента, поэтому он будет перезаписывать всё существующее содержимое внутри элемента. Если необходимо обновить часть `textContent`, то вместо этого следует использовать [текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation).\n\n- **Пример**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- тоже самое -->\n <span>{{msg}}</span>\n ```\n\n- **См. также** [Синтаксис шаблонов - Текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nОбновление свойства [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML) элемента.\n\n- **Ожидает:** `string`\n\n- **Подробности**\n\n Содержимое `v-html` вставляется как обычный HTML - синтаксис шаблонов Vue не обрабатывается. Если вы пытаетесь составить шаблоны с помощью `v-html`, попробуйте переосмыслить решение, используя вместо этого компоненты.\n\n :::warning Примечание о безопасности\n Динамический рендеринг произвольного HTML на вашем сайте может быть очень опасен, поскольку легко может привести к [XSS-атакам](https://en.wikipedia.org/wiki/Cross-site_scripting). Используйте `v-html` только для доверенного содержимого и **никогда** для содержимого, предоставляемого пользователем.\n :::\n\n В [однофайловых компонентах](https://ru.vuejs.org/guide/scaling-up/sfc.html) стили `scoped` не будут применяться к содержимому внутри `v-html`, поскольку этот HTML не обрабатывается компилятором шаблонов Vue. Если вы хотите использовать на содержимом `v-html` скопированный CSS, то вместо этого можно использовать [CSS модули](./sfc-css-features.html#css-modules) или дополнительный глобальный элемент `<style>` с ручной стратегией области применения, например BEM.\n\n\n- **Пример**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **См. также** [Синтаксис шаблонов - Сырой HTML](https://ru.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nПереключение видимости элемента в зависимости от истинности значения выражения.\n\n- **Ожидает:** `any`\n\n- **Подробности**\n\n `v-show` работает, устанавливая CSS-свойство `display` с помощью встроенных стилей, и будет стараться соблюдать начальное значение `display`, когда элемент становится видимым. Также он запускает переходы анимации при изменении состояния.\n\n- **См. также** [Условная отрисовка - v-show](https://ru.vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nУсловное отображение элемента или фрагмента шаблона на основе истинности значения выражения.\n\n- **Ожидает:** `any`\n\n- **Подробности**\n\n При переключении директивы компонента `v-if`, элемент и содержащиеся в нём директивы/компоненты уничтожаются и создаются заново. Если начальное условие false, то внутреннее содержимое вообще не будет выведено.\n\n Может использоваться на `<template>` для обозначения условного блока, содержащего только текст или несколько элементов.\n\n Эта директива запускает переходы анимации при изменении своего состояния.\n\n При совместном использовании `v-if` имеет более высокий приоритет, чем `v-for`. Мы не рекомендуем использовать эти две директивы вместе на одном элементе — подробнее об этом см. в руководстве [по отрисовке списков](https://ru.vuejs.org/guide/essentials/list.html#v-for-with-v-if).\n\n- **См. также** [Условная отрисовка - v-if](https://ru.vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nОбозначает \"блок else\" для `v-if` или цепочку `v-if` / `v-else-if`.\n\n- **Не ожидает выражения**\n\n- **Подробности**\n\n - Ограничение: предыдущий соседний элемент должен иметь `v-if` или `v-else-if`.\n\n - Может использоваться на `<template>` для обозначения условного блока, содержащего только текст или несколько элементов.\n\n- **Пример**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Сейчас ты видишь меня\n </div>\n <div v-else>\n А сейчас нет\n </div>\n ```\n\n- **См. также** [Условная отрисовка - v-else](https://ru.vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nОбозначает \"блок else if\" для `v-if`. Можно использовать для создания цепочек условий.\n\n- **Ожидает:** `any`\n\n- **Подробности**\n\n - Ограничение: предыдущий соседний элемент должен иметь `v-if` или `v-else-if`.\n\n - Может использоваться на `<template>` для обозначения условного блока, содержащего только текст или несколько элементов.\n\n- **Пример**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Не A/B/C\n </div>\n ```\n\n- **См. также** [Условная отрисовка - v-else-if](https://ru.vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nМногократная отрисовка элемента или блока шаблона на основе исходных данных.\n\n- **Ожидает:** `Array | Object | number | string | Iterable`\n\n- **Подробности**\n\n Значение директивы должно использовать специальный синтаксис `alias in expression` для указания псевдонима текущего итерируемого элемента:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Кроме того, можно указать псевдоним для индекса (или ключа, если он используется для объекта):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n По умолчанию `v-for` будет обновлять элементы «на месте», не перемещая их. Если необходимо переупорядочивать элементы при изменениях, то потребуется указывать специальный атрибут `key`:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` может также работать со значениями, реализующими [протокол Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), включая нативные `Map` и `Set`.\n\n- **См. также**\n - [Отрисовка списков](https://ru.vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nПрикрепление к элементу обработчика событий.\n\n- **Сокращённая запись:** `@`\n\n- **Ожидает:** `Function | Inline Statement | Object (без аргументов)`\n\n- **Аргумент:** `event` (необязательно, если используется синтаксис Object)\n\n- **Модификаторы**\n\n - `.stop` - вызывает `event.stopPropagation()`.\n - `.prevent` - вызывает `event.preventDefault()`.\n - `.capture` - добавить обработчик событий в capture режиме.\n - `.self` - запускать обработчик только в том случае, если событие было отправлено именно от этого элемента.\n - `.{keyAlias}` - запускать обработчик только по определенным клавишам.\n - `.once` - обработчик сработает только один раз.\n - `.left` - обработчик срабатывания только для событий левой кнопки мыши.\n - `.right` - обработчик срабатывания только для событий правой кнопки мыши.\n - `.middle` - обработчик срабатывания только для событий средней кнопки мыши.\n - `.passive` - добавляет обработчик DOM события с параметром `{ passive: true }`.\n\n- **Подробности**\n\n Тип события обозначается аргументом. Выражение может быть именем метода, строковым оператором или опущено, если присутствуют модификаторы.\n\n При использовании на обычном элементе он прослушивает только [**нативные DOM события**](https://developer.mozilla.org/en-US/docs/Web/Events). При использовании на компоненте он прослушивает **пользовательские события**, генерируемые в дочернем компоненте.\n\n При прослушивании нативных DOM событий метод получает нативное событие в качестве единственного аргумента. При использовании inline-выражения, выражение имеет доступ к специальному свойству `$event`: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` также поддерживает привязку к объекту пар событие/слушатель без аргумента. Обратите внимание, что при использовании синтаксиса объекта он не поддерживает никаких модификаторов.\n\n- **Пример**\n\n ```html\n <!-- метод в качестве обработчика -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- динамическое событие -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- inline-выражение -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- сокращённая запись -->\n <button @click=\"doThis\"></button>\n\n <!-- окращённая запись динамического события -->\n <button @[event]=\"doThis\"></button>\n\n <!-- stop propagation -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- prevent default -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- prevent default без выражения -->\n <form @submit.prevent></form>\n\n <!-- цепочка из модификаторов -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- модификатор клавиши с использованием keyAlias -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- обработчик события будет вызван не больше одного раза -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- объектный синтаксис -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Отслеживание пользовательских событий на дочернем компоненте (обработчик вызывается, когда в дочернем компоненте будет сгенерировано событие \"my-event\"):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- inline statement -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **См. также**\n - [Обработка событий](https://ru.vuejs.org/guide/essentials/event-handling.html)\n - [Компоненты - Прослушивание событий](https://ru.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nДинамически привязывает один или несколько атрибутов или входных параметров компонента к выражению.\n\n- **Сокращённая запись**\n - `:` или `.` (при использовании модификатора `.prop`)\n - Пропуск значения (когда атрибут и связанное значение имеют одинаковое имя) <sup class=\"vt-badge\">3.4+</sup>\n\n- **Ожидает:** `any (если указан аргумент) | Object (без аргумента)`\n\n- **Аргумент:** `attrOrProp (опционально)`\n\n- **Модификаторы**\n\n - `.camel` - преобразование имён атрибутов из kebab-case в camelCase.\n - `.prop` - принудительная установить привязку в качестве свойства DOM. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - принудительно установить привязку в качестве атрибута DOM. <sup class=\"vt-badge\">3.2+</sup>\n\n- **Применение**\n\n При использовании для привязки атрибутов `class` или `style`, `v-bind` поддерживает дополнительные типы значений, такие как Array или Objects. Более подробная информация приведена в разделе руководства по ссылкам ниже.\n\n Устанавливая привязку к элементу, Vue по умолчанию проверяет, имеет ли элемент ключ, определенный как свойство, используя проверку оператора `in`. Если свойство определено, то Vue установит значение как свойство DOM, а не как атрибут. В большинстве случаев это должно работать, но вы можете переопределить это поведение, явно используя модификаторы `.prop` или `.attr`. Иногда это необходимо, особенно при [работе с пользовательскими элементами](https://ru.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n При привязке входных параметров к дочернему компоненту необходимо также объявлять их внутри него.\n\n При использовании без аргумента можно привязать объект из пар имя-значение.\n\n- **Пример**\n\n ```html\n <!-- привязка атрибута -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- динамическое название атрибута -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- сокращённая запись -->\n <img :src=\"imageSrc\" />\n\n <!-- сокращение при одинаковом названии (3.4+), расширяется до :src=\"src\" -->\n <img :src />\n\n <!-- сокращённая запись при динамическом названии атрибута -->\n <button :[key]=\"value\"></button>\n\n <!-- инлайн-выражение с конкатенацией строк -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- привязка классов -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- привязка стилей -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- привязка объекта с атрибутами -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- привязка входного параметра. \"prop\" должен быть объявлен в my-component. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- передача всех входных параметров родительского компонента в дочерний -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n Модификатор `.prop` также имеет сокращённую запись `.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- эквивалент -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n Модификатор `.camel` позволяет приводить имя атрибута `v-bind` в camelCase при использовании DOM-шаблонов, например для атрибута SVG `viewBox`:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n Модификатор `.camel` не нужен, если вы используете строковые шаблоны или предварительно компилируете шаблон на этапе сборки.\n\n- **См. также**\n - [Работа с классами и стилями](https://ru.vuejs.org/guide/essentials/class-and-style.html)\n - [Компоненты - Детали передачи входных параметров](https://ru.vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nСоздает двустороннее связывание с элементом ввода формы или с компонентом.\n\n- **Ожидает:** варьируется в зависимости от элемента формы или работы компонента\n\n- **Использование ограничено**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - компоненты\n\n- **Модификаторы**\n\n - [`.lazy`](https://ru.vuejs.org/guide/essentials/forms.html#lazy) - отслеживание события `change` вместо `input`\n - [`.number`](https://ru.vuejs.org/guide/essentials/forms.html#number) - приведение корректной строки со значением к числу\n - [`.trim`](https://ru.vuejs.org/guide/essentials/forms.html#trim) - удаление пробелов в начале и в конце строки\n\n- **См. также**\n\n - [Работа с формами](https://ru.vuejs.org/guide/essentials/forms.html)\n - [События компонентов - Использование вместе с `v-model`](https://ru.vuejs.org/guide/components/events.html#usage-with-v-model)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nОбозначение именованного слота или слота, который получает входные параметры.\n\n- **Сокращённая запись:** `#`\n\n- **Ожидает:** JavaScript-выражение, допустимое в позиции аргумента функции, включая поддержку деструктуризации. Необязательный - нужен только в том случае, если ожидается передача входного параметра в слот.\n\n- **Аргумент:** название слота (опционально, по умолчанию `default`)\n\n- **Использование ограничено:**\n\n - `<template>`\n - [компонентами](https://ru.vuejs.org/guide/components/slots.html#scoped-slots) (для единственного слота по умолчанию с входными параметрами)\n\n\n- **Пример**\n\n ```html\n <!-- Именованный слот -->\n <BaseLayout>\n <template v-slot:header>\n Содержимое для заголовка\n </template>\n\n <template v-slot:default>\n Содержимое для слота по умолчанию\n </template>\n\n <template v-slot:footer>\n Содержимое для подвала\n </template>\n </BaseLayout>\n\n <!-- Именованный слот с входными параметрами -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Слот по умолчанию с входными параметрами и деструктуризацией -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **См. также**\n - [Компоненты - Слоты](https://ru.vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nПропускает компиляцию для элемента и всех его потомков.\n\n- **Не ожидает выражения**\n\n- **Подробности**\n\n Внутри элемента с `v-pre` весь синтаксис шаблона Vue будет сохранен и отображён как есть. Наиболее распространённый вариант использования этого элемента - отображение тегов фигурных скобок.\n\n- **Пример**\n\n ```html\n <span v-pre>{{ это не будет скомпилировано }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nОтрисовка элемента и компонента выполняется только один раз, а последующие обновления пропускаются.\n\n- **Не ожидает выражения**\n\n- **Подробности**\n\n При последующих повторных отрисовках этот элемент/компонент и все его дочерние элементы будут рассматриваться как статическое содержимое и пропускаться. Это может быть использовано для оптимизации производительности при обновлении.\n\n ```html\n <!-- элемент -->\n <span v-once>Это значение никогда не изменится: {{msg}}</span>\n <!-- элемент с потомками -->\n <div v-once>\n <h1>Комментарий</h1>\n <p>{{msg}}</p>\n </div>\n <!-- компонент -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- директива `v-for` -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Начиная с версии 3.2, можно использовать мемоизацию части шаблона, с возможностью указания условий для инвалидации, с помощью директивы [`v-memo`](#v-memo).\n\n- **См. также**\n - [Синтаксис шаблонов - Текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- **Ожидает:** `any[]`\n\n- **Подробности**\n\n Мемоизация части поддерева шаблона. Может использоваться как для элементов, так и для компонентов. Директива ожидает массив фиксированной длины зависимых значений, которые станут использоваться для сравнения при мемоизации. Если каждое значение массива осталось таким же, как при последней отрисовке, то обновление всего поддерева будет пропущено. Например:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n При повторном рендеринге компонента, если `valueA` и `valueB` остались прежними, все обновления для этого `<div>` и его дочерних элементов будут пропущены. Фактически, будет пропущено даже создание VNode виртуального DOM, поскольку мемоизированная копия поддерева может быть использована повторно.\n\n Важно правильно указать массив мемоизации, иначе мы можем пропустить обновления, которые действительно должны быть применены. `v-memo` с пустым массивом зависимостей (`v-memo=\"[]\"`) будет функционально эквивалентен `v-once`.\n\n **Использование вместе с `v-for`**\n\n `v-memo` предоставляется исключительно для микрооптимизации в критичных к производительности сценариях и может понадобиться крайне редко. Наиболее распространённым случаем, когда это может оказаться полезным, является отрисовка больших списков `v-for` (когда `length > 1000`):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - выбран: {{ item.id === selected }}</p>\n <p>...больше дочерних элементов</p>\n </div>\n ```\n\n При изменении состояния компонента `selected` будет создано большое количество VNodes, даже если большинство элементов остались прежними. Использование `v-memo` здесь, по сути, говорит: \"обновляйте этот элемент только в том случае, если он перешел из состояния `не выбран` в состояние `выбран`, или наоборот\". Это позволяет каждому незатронутому элементу повторно использовать свой предыдущий VNode и полностью пропустить операцию сравнения. Обратите внимание, что нам не нужно включать `item.id` в массив зависимостей memo, поскольку Vue автоматически определяет его из `:key` элемента.\n\n :::warning Предупреждение\n При использовании `v-memo` с `v-for` убедитесь, что они используются на одном и том же элементе. **`v-memo` не работает внутри `v-for`.**.\n :::\n\n `v-memo` также может быть использовано для компонентов, чтобы вручную предотвратить нежелательные обновления в некоторых крайних случаях, когда проверка обновлений дочерних компонентов была де-оптимизирована. Но, повторимся, ответственность за корректное указание массивов зависимостей во избежание пропуска необходимых обновлений лежит на разработчике.\n\n- **См. также**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nИспользуется для скрытия еще нескомпилированного шаблона до тех пор, пока он не будет готов.\n\n- **Не ожидает выражения**\n\n- **Подробности**\n\n **Данная директива нужна только для окружения без этапа сборки.**\n\n При использовании DOM шаблонов может возникнуть \"вспышка некомпилированных шаблонов\": пользователь может видеть необработанные теги фигурных скобок, пока монтируемый компонент не заменит их отрисованным содержимым.\n\n `v-cloak` будет оставаться на элементе до тех пор, пока не будет смонтирован связанный с ним экземпляр компонента. В сочетании с правилами CSS, такими как `[v-cloak] { display: none }`, это может быть использовано для скрытия необработанных шаблонов до тех пор, пока компонент не будет готов.\n\n- **Пример**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n До завершения компиляции `<div>` не будет виден.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\n Специальный атрибут `key` (ключ) в первую очередь используется как подсказка для алгоритма виртуального DOM Vue для идентификации VNodes (виртуальных узлов) при вычислении разницы между обновленным списком узлов и старым.\n\n- **Ожидает** `number | string | symbol`\n\n- **Подробности**\n\n Без ключей Vue использует алгоритм, который минимизирует перемещение элементов и пытается изменять/переиспользовать элементы одного типа как можно больше. При использовании ключей Vue переупорядочивает элементы на основании изменения ключей, а элементы с ключами, которые уже отсутствуют, будут всегда удаляться/уничтожаться. \n\n Потомки одного и того же общего родителя должны иметь **уникальные ключи**. Дубликаты ключей будут приводить к ошибкам рендера.\n\n Чаще всего используется в сочетании с `v-for`:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n Также может использоваться для принудительной замены элемент/компонента вместо его переиспользования. Это может пригодиться, если вы хотите:\n\n - Корректно вызвать хуки жизненного цикла компонента\n - Запускать анимации перехода\n\n Например:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n При изменении значения `text`, элемент `<span>` будет всегда заменяться, вместо обновления его содержимого, поэтому будет запускаться анимация перехода.\n\n- **См. также** [Руководство — Рендер списка - Сохранение состояния с помощью `key`](https://ru.vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nОзначает [ссылку на элементы шаблона](https://ru.vuejs.org/guide/essentials/template-refs.html).\n\n- **Ожидает** `string | Function`\n\n- **Подробности**\n\n Атрибут `ref` используется для регистрации ссылки на элемент или дочерний компонент.\n\n В Options API, ссылка будет зарегистрирована в объекте компонента `this.$refs`:\n\n ```html\n <!-- Хранится в this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n В Composition API, ссылка будет храниться в ref с соответствующим именем:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">Привет</p>\n </template>\n ```\n\n При использовании на обычном DOM-элементе ссылка будет указывать на этот элемент; при использовании на дочернем компоненте ссылка будет указывать на экземпляр дочернего компонента.\n\n В качестве альтернативы `ref` может принимать функцию, что даёт полный контроль над тем, где хранить ссылку:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n Важное замечание о времени регистрации ref-ссылок: поскольку эти ссылки создаются render-функцией, нужно подождать, пока компонент будет смонтирован, прежде чем обращаться к ним.\n\n Так же свойство `this.$refs` не реактивно, поэтому не следует использовать его в шаблонах для привязки данных.\n\n- **См. также**\n - [Руководство — Ссылки на элементы шаблона](https://ru.vuejs.org/guide/essentials/template-refs.html)\n - [Руководство - Типизация ссылок на шаблоны](https://ru.vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Руководство - Типизация ссылок на шаблоны компонентов](https://ru.vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\nИспользуется для [динамических компонентов](https://ru.vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Ожидает** `string | Component`\n\n- **Использование на нативных элементах** <sup class=\"vt-badge\">3.1+</sup>\n\n Когда атрибут `is` используется на нативном HTML-элементе, то он интерпретируется как [пользовательский встроенный элемент](https://html.spec.whatwg.org/multipage/custom-elements#custom-elements-customized-builtin-example). Это нативная возможность веб-платформы.\n\n Однако есть случай использования, когда может понадобиться, чтобы Vue заменил нативный элемент на компонент Vue, как это разъясняется в [Особенности парсинга DOM-шаблона](https://ru.vuejs.org/guide/essentials/component-basics.html#dom-template-parsing-caveats). В таком случае можно добавить значению атрибута `is` префикс `vue:`, чтобы Vue вместо элемента отрисовал компонент Vue:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **См. также**\n\n - [Специальные встроенные элементы - `<component>`](https://ru.vuejs.org/api/built-in-special-elements.html#component)\n - [Динамические компоненты](https://ru.vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$8 = { + version: version$l, + tags: tags$b, + globalAttributes: globalAttributes$l +}; + +const version$k = 1.1; +const tags$a = [ + { + name: "Transition", + description: { + kind: "markdown", + value: "\nProvides animated transition effects to a **single** element or component.\n\n- **Props**\n\n ```ts\n interface TransitionProps {\n /**\n * Used to automatically generate transition CSS class names.\n * e.g. `name: 'fade'` will auto expand to `.fade-enter`,\n * `.fade-enter-active`, etc.\n */\n name?: string\n /**\n * Whether to apply CSS transition classes.\n * Default: true\n */\n css?: boolean\n /**\n * Specifies the type of transition events to wait for to\n * determine transition end timing.\n * Default behavior is auto detecting the type that has\n * longer duration.\n */\n type?: 'transition' | 'animation'\n /**\n * Specifies explicit durations of the transition.\n * Default behavior is wait for the first `transitionend`\n * or `animationend` event on the root transition element.\n */\n duration?: number | { enter: number; leave: number }\n /**\n * Controls the timing sequence of leaving/entering transitions.\n * Default behavior is simultaneous.\n */\n mode?: 'in-out' | 'out-in' | 'default'\n /**\n * Whether to apply transition on initial render.\n * Default: false\n */\n appear?: boolean\n\n /**\n * Props for customizing transition classes.\n * Use kebab-case in templates, e.g. enter-from-class=\"xxx\"\n */\n enterFromClass?: string\n enterActiveClass?: string\n enterToClass?: string\n appearFromClass?: string\n appearActiveClass?: string\n appearToClass?: string\n leaveFromClass?: string\n leaveActiveClass?: string\n leaveToClass?: string\n }\n ```\n\n- **Events**\n\n - `@before-enter`\n - `@before-leave`\n - `@enter`\n - `@leave`\n - `@appear`\n - `@after-enter`\n - `@after-leave`\n - `@after-appear`\n - `@enter-cancelled`\n - `@leave-cancelled` (`v-show` only)\n - `@appear-cancelled`\n\n- **Example**\n\n Simple element:\n\n ```html\n <Transition>\n <div v-if=\"ok\">toggled content</div>\n </Transition>\n ```\n\n Forcing a transition by changing the `key` attribute:\n\n ```html\n <Transition>\n <div :key=\"text\">{{ text }}</div>\n </Transition>\n ```\n\n Dynamic component, with transition mode + animate on appear:\n\n ```html\n <Transition name=\"fade\" mode=\"out-in\" appear>\n <component :is=\"view\"></component>\n </Transition>\n ```\n\n Listening to transition events:\n\n ```html\n <Transition @after-enter=\"onTransitionComplete\">\n <div v-show=\"ok\">toggled content</div>\n </Transition>\n ```\n\n- **See also** [Guide - Transition](https://vuejs.org/guide/built-ins/transition.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transition" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transition" + } + ] + }, + { + name: "TransitionGroup", + description: { + kind: "markdown", + value: "\nProvides transition effects for **multiple** elements or components in a list.\n\n- **Props**\n\n `<TransitionGroup>` accepts the same props as `<Transition>` except `mode`, plus two additional props:\n\n ```ts\n interface TransitionGroupProps extends Omit<TransitionProps, 'mode'> {\n /**\n * If not defined, renders as a fragment.\n */\n tag?: string\n /**\n * For customizing the CSS class applied during move transitions.\n * Use kebab-case in templates, e.g. move-class=\"xxx\"\n */\n moveClass?: string\n }\n ```\n\n- **Events**\n\n `<TransitionGroup>` emits the same events as `<Transition>`.\n\n- **Details**\n\n By default, `<TransitionGroup>` doesn't render a wrapper DOM element, but one can be defined via the `tag` prop.\n\n Note that every child in a `<transition-group>` must be [**uniquely keyed**](https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key) for the animations to work properly.\n\n `<TransitionGroup>` supports moving transitions via CSS transform. When a child's position on screen has changed after an update, it will get applied a moving CSS class (auto generated from the `name` attribute or configured with the `move-class` prop). If the CSS `transform` property is \"transition-able\" when the moving class is applied, the element will be smoothly animated to its destination using the [FLIP technique](https://aerotwist.com/blog/flip-your-animations/).\n\n- **Example**\n\n ```html\n <TransitionGroup tag=\"ul\" name=\"slide\">\n <li v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </li>\n </TransitionGroup>\n ```\n\n- **See also** [Guide - TransitionGroup](https://vuejs.org/guide/built-ins/transition-group.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#transitiongroup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#transitiongroup" + } + ] + }, + { + name: "KeepAlive", + description: { + kind: "markdown", + value: "\nCaches dynamically toggled components wrapped inside.\n\n- **Props**\n\n ```ts\n interface KeepAliveProps {\n /**\n * If specified, only components with names matched by\n * `include` will be cached.\n */\n include?: MatchPattern\n /**\n * Any component with a name matched by `exclude` will\n * not be cached.\n */\n exclude?: MatchPattern\n /**\n * The maximum number of component instances to cache.\n */\n max?: number | string\n }\n\n type MatchPattern = string | RegExp | (string | RegExp)[]\n ```\n\n- **Details**\n\n When wrapped around a dynamic component, `<KeepAlive>` caches the inactive component instances without destroying them.\n\n There can only be one active component instance as the direct child of `<KeepAlive>` at any time.\n\n When a component is toggled inside `<KeepAlive>`, its `activated` and `deactivated` lifecycle hooks will be invoked accordingly, providing an alternative to `mounted` and `unmounted`, which are not called. This applies to the direct child of `<KeepAlive>` as well as to all of its descendants.\n\n- **Example**\n\n Basic usage:\n\n ```html\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n When used with `v-if` / `v-else` branches, there must be only one component rendered at a time:\n\n ```html\n <KeepAlive>\n <comp-a v-if=\"a > 1\"></comp-a>\n <comp-b v-else></comp-b>\n </KeepAlive>\n ```\n\n Used together with `<Transition>`:\n\n ```html\n <Transition>\n <KeepAlive>\n <component :is=\"view\"></component>\n </KeepAlive>\n </Transition>\n ```\n\n Using `include` / `exclude`:\n\n ```html\n <!-- comma-delimited string -->\n <KeepAlive include=\"a,b\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- regex (use `v-bind`) -->\n <KeepAlive :include=\"/a|b/\">\n <component :is=\"view\"></component>\n </KeepAlive>\n\n <!-- Array (use `v-bind`) -->\n <KeepAlive :include=\"['a', 'b']\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n Usage with `max`:\n\n ```html\n <KeepAlive :max=\"10\">\n <component :is=\"view\"></component>\n </KeepAlive>\n ```\n\n- **See also** [Guide - KeepAlive](https://vuejs.org/guide/built-ins/keep-alive.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#keepalive" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#keepalive" + } + ] + }, + { + name: "Teleport", + description: { + kind: "markdown", + value: "\nRenders its slot content to another part of the DOM.\n\n- **Props**\n\n ```ts\n interface TeleportProps {\n /**\n * Required. Specify target container.\n * Can either be a selector or an actual element.\n */\n to: string | HTMLElement\n /**\n * When `true`, the content will remain in its original\n * location instead of moved into the target container.\n * Can be changed dynamically.\n */\n disabled?: boolean\n /**\n * When `true`, the Teleport will defer until other\n * parts of the application have been mounted before\n * resolving its target. (3.5+)\n */\n defer?: boolean\n }\n ```\n\n- **Example**\n\n Specifying target container:\n\n ```html\n <Teleport to=\"#some-id\" />\n <Teleport to=\".some-class\" />\n <Teleport to=\"[data-teleport]\" />\n ```\n\n Conditionally disabling:\n\n ```html\n <Teleport to=\"#popup\" :disabled=\"displayVideoInline\">\n <video src=\"./my-movie.mp4\">\n </Teleport>\n ```\n\n Defer target resolution <sup class=\"vt-badge\" data-text=\"3.5+\" />:\n\n ```html\n <Teleport defer to=\"#late-div\">...</Teleport>\n\n <!-- somewhere later in the template -->\n <div id=\"late-div\"></div>\n ```\n\n- **See also** [Guide - Teleport](https://vuejs.org/guide/built-ins/teleport.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#teleport" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#teleport" + } + ] + }, + { + name: "Suspense", + description: { + kind: "markdown", + value: "\nUsed for orchestrating nested async dependencies in a component tree.\n\n- **Props**\n\n ```ts\n interface SuspenseProps {\n timeout?: string | number\n suspensible?: boolean\n }\n ```\n\n- **Events**\n\n - `@resolve`\n - `@pending`\n - `@fallback`\n\n- **Details**\n\n `<Suspense>` accepts two slots: the `#default` slot and the `#fallback` slot. It will display the content of the fallback slot while rendering the default slot in memory.\n\n If it encounters async dependencies ([Async Components](https://vuejs.org/guide/components/async.html) and components with [`async setup()`](https://vuejs.org/guide/built-ins/suspense.html#async-setup)) while rendering the default slot, it will wait until all of them are resolved before displaying the default slot.\n\n By setting the Suspense as `suspensible`, all the async dependency handling will be handled by the parent Suspense. See [implementation details](https://github.com/vuejs/core/pull/6736)\n\n- **See also** [Guide - Suspense](https://vuejs.org/guide/built-ins/suspense.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-components.html#suspense" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-components.html#suspense" + } + ] + }, + { + name: "component", + description: { + kind: "markdown", + value: "\nA \"meta component\" for rendering dynamic components or elements.\n\n- **Props**\n\n ```ts\n interface DynamicComponentProps {\n is: string | Component\n }\n ```\n\n- **Details**\n\n The actual component to render is determined by the `is` prop.\n\n - When `is` is a string, it could be either an HTML tag name or a component's registered name.\n\n - Alternatively, `is` can also be directly bound to the definition of a component.\n\n- **Example**\n\n Rendering components by registered name (Options API):\n\n ```vue\n <script>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n\n export default {\n components: { Foo, Bar },\n data() {\n return {\n view: 'Foo'\n }\n }\n }\n </script>\n\n <template>\n <component :is=\"view\" />\n </template>\n ```\n\n Rendering components by definition (Composition API with `<script setup>`):\n\n ```vue\n <script setup>\n import Foo from './Foo.vue'\n import Bar from './Bar.vue'\n </script>\n\n <template>\n <component :is=\"Math.random() > 0.5 ? Foo : Bar\" />\n </template>\n ```\n\n Rendering HTML elements:\n\n ```html\n <component :is=\"href ? 'a' : 'span'\"></component>\n ```\n\n The [built-in components](./built-in-components) can all be passed to `is`, but you must register them if you want to pass them by name. For example:\n\n ```vue\n <script>\n import { Transition, TransitionGroup } from 'vue'\n\n export default {\n components: {\n Transition,\n TransitionGroup\n }\n }\n </script>\n\n <template>\n <component :is=\"isGroup ? 'TransitionGroup' : 'Transition'\">\n ...\n </component>\n </template>\n ```\n\n Registration is not required if you pass the component itself to `is` rather than its name, e.g. in `<script setup>`.\n\n If `v-model` is used on a `<component>` tag, the template compiler will expand it to a `modelValue` prop and `update:modelValue` event listener, much like it would for any other component. However, this won't be compatible with native HTML elements, such as `<input>` or `<select>`. As a result, using `v-model` with a dynamically created native element won't work:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const tag = ref('input')\n const username = ref('')\n </script>\n\n <template>\n <!-- This won't work as 'input' is a native HTML element -->\n <component :is=\"tag\" v-model=\"username\" />\n </template>\n ```\n\n In practice, this edge case isn't common as native form fields are typically wrapped in components in real applications. If you do need to use a native element directly then you can split the `v-model` into an attribute and event manually.\n\n- **See also** [Dynamic Components](https://vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#component" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#component" + } + ] + }, + { + name: "slot", + description: { + kind: "markdown", + value: "\nDenotes slot content outlets in templates.\n\n- **Props**\n\n ```ts\n interface SlotProps {\n /**\n * Any props passed to <slot> to passed as arguments\n * for scoped slots\n */\n [key: string]: any\n /**\n * Reserved for specifying slot name.\n */\n name?: string\n }\n ```\n\n- **Details**\n\n The `<slot>` element can use the `name` attribute to specify a slot name. When no `name` is specified, it will render the default slot. Additional attributes passed to the slot element will be passed as slot props to the scoped slot defined in the parent.\n\n The element itself will be replaced by its matched slot content.\n\n `<slot>` elements in Vue templates are compiled into JavaScript, so they are not to be confused with [native `<slot>` elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).\n\n- **See also** [Component - Slots](https://vuejs.org/guide/components/slots.html)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#slot" + } + ] + }, + { + name: "template", + description: { + kind: "markdown", + value: "\nThe `<template>` tag is used as a placeholder when we want to use a built-in directive without rendering an element in the DOM.\n\n- **Details**\n\n The special handling for `<template>` is only triggered if it is used with one of these directives:\n\n - `v-if`, `v-else-if`, or `v-else`\n - `v-for`\n - `v-slot`\n\n If none of those directives are present then it will be rendered as a [native `<template>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) instead.\n\n A `<template>` with a `v-for` can also have a [`key` attribute](https://vuejs.org/api/built-in-special-attributes.html#key). All other attributes and directives will be discarded, as they aren't meaningful without a corresponding element.\n\n Single-file components use a [top-level `<template>` tag](https://vuejs.org/api/sfc-spec.html#language-blocks) to wrap the entire template. That usage is separate from the use of `<template>` described above. That top-level tag is not part of the template itself and doesn't support template syntax, such as directives.\n\n- **See also**\n - [Guide - `v-if` on `<template>`](https://vuejs.org/guide/essentials/conditional.html#v-if-on-template)\n - [Guide - `v-for` on `<template>`](https://vuejs.org/guide/essentials/list.html#v-for-on-template)\n - [Guide - Named slots](https://vuejs.org/guide/components/slots.html#named-slots)\n" + }, + attributes: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-elements.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-elements.html#template" + } + ] + } +]; +const globalAttributes$k = [ + { + name: "v-text", + description: { + kind: "markdown", + value: "\nUpdate the element's text content.\n\n- **Expects:** `string`\n\n- **Details**\n\n `v-text` works by setting the element's [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) property, so it will overwrite any existing content inside the element. If you need to update the part of `textContent`, you should use [mustache interpolations](https://vuejs.org/guide/essentials/template-syntax.html#text-interpolation) instead.\n\n- **Example**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **See also** [Template Syntax - Text Interpolation](https://vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-text" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-text" + } + ] + }, + { + name: "v-html", + description: { + kind: "markdown", + value: "\nUpdate the element's [innerHTML](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML).\n\n- **Expects:** `string`\n\n- **Details**\n\n Contents of `v-html` are inserted as plain HTML - Vue template syntax will not be processed. If you find yourself trying to compose templates using `v-html`, try to rethink the solution by using components instead.\n\n ::: warning Security Note\n Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to [XSS attacks](https://en.wikipedia.org/wiki/Cross-site_scripting). Only use `v-html` on trusted content and **never** on user-provided content.\n :::\n\n In [Single-File Components](https://vuejs.org/guide/scaling-up/sfc.html), `scoped` styles will not apply to content inside `v-html`, because that HTML is not processed by Vue's template compiler. If you want to target `v-html` content with scoped CSS, you can instead use [CSS modules](./sfc-css-features#css-modules) or an additional, global `<style>` element with a manual scoping strategy such as BEM.\n\n- **Example**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **See also** [Template Syntax - Raw HTML](https://vuejs.org/guide/essentials/template-syntax.html#raw-html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-html" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-html" + } + ] + }, + { + name: "v-show", + description: { + kind: "markdown", + value: "\nToggle the element's visibility based on the truthy-ness of the expression value.\n\n- **Expects:** `any`\n\n- **Details**\n\n `v-show` works by setting the `display` CSS property via inline styles, and will try to respect the initial `display` value when the element is visible. It also triggers transitions when its condition changes.\n\n- **See also** [Conditional Rendering - v-show](https://vuejs.org/guide/essentials/conditional.html#v-show)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-show" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-show" + } + ] + }, + { + name: "v-if", + description: { + kind: "markdown", + value: "\nConditionally render an element or a template fragment based on the truthy-ness of the expression value.\n\n- **Expects:** `any`\n\n- **Details**\n\n When a `v-if` element is toggled, the element and its contained directives / components are destroyed and re-constructed. If the initial condition is falsy, then the inner content won't be rendered at all.\n\n Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n This directive triggers transitions when its condition changes.\n\n When used together, `v-if` has a higher priority than `v-for`. We don't recommend using these two directives together on one element — see the [list rendering guide](https://vuejs.org/guide/essentials/list.html#v-for-with-v-if) for details.\n\n- **See also** [Conditional Rendering - v-if](https://vuejs.org/guide/essentials/conditional.html#v-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-if" + } + ] + }, + { + name: "v-else", + valueSet: "v", + description: { + kind: "markdown", + value: "\nDenote the \"else block\" for `v-if` or a `v-if` / `v-else-if` chain.\n\n- **Does not expect expression**\n\n- **Details**\n\n - Restriction: previous sibling element must have `v-if` or `v-else-if`.\n\n - Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n- **Example**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **See also** [Conditional Rendering - v-else](https://vuejs.org/guide/essentials/conditional.html#v-else)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else" + } + ] + }, + { + name: "v-else-if", + description: { + kind: "markdown", + value: "\nDenote the \"else if block\" for `v-if`. Can be chained.\n\n- **Expects:** `any`\n\n- **Details**\n\n - Restriction: previous sibling element must have `v-if` or `v-else-if`.\n\n - Can be used on `<template>` to denote a conditional block containing only text or multiple elements.\n\n- **Example**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **See also** [Conditional Rendering - v-else-if](https://vuejs.org/guide/essentials/conditional.html#v-else-if)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-else-if" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-else-if" + } + ] + }, + { + name: "v-for", + description: { + kind: "markdown", + value: "\nRender the element or template block multiple times based on the source data.\n\n- **Expects:** `Array | Object | number | string | Iterable`\n\n- **Details**\n\n The directive's value must use the special syntax `alias in expression` to provide an alias for the current element being iterated on:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Alternatively, you can also specify an alias for the index (or the key if used on an Object):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n The default behavior of `v-for` will try to patch the elements in-place without moving them. To force it to reorder elements, you should provide an ordering hint with the `key` special attribute:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` can also work on values that implement the [Iterable Protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), including native `Map` and `Set`.\n\n- **See also**\n - [List Rendering](https://vuejs.org/guide/essentials/list.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-for" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-for" + } + ] + }, + { + name: "v-on", + description: { + kind: "markdown", + value: "\nAttach an event listener to the element.\n\n- **Shorthand:** `@`\n\n- **Expects:** `Function | Inline Statement | Object (without argument)`\n\n- **Argument:** `event` (optional if using Object syntax)\n\n- **Modifiers**\n\n - `.stop` - call `event.stopPropagation()`.\n - `.prevent` - call `event.preventDefault()`.\n - `.capture` - add event listener in capture mode.\n - `.self` - only trigger handler if event was dispatched from this element.\n - `.{keyAlias}` - only trigger handler on certain keys.\n - `.once` - trigger handler at most once.\n - `.left` - only trigger handler for left button mouse events.\n - `.right` - only trigger handler for right button mouse events.\n - `.middle` - only trigger handler for middle button mouse events.\n - `.passive` - attaches a DOM event with `{ passive: true }`.\n\n- **Details**\n\n The event type is denoted by the argument. The expression can be a method name, an inline statement, or omitted if there are modifiers present.\n\n When used on a normal element, it listens to [**native DOM events**](https://developer.mozilla.org/en-US/docs/Web/Events) only. When used on a custom element component, it listens to **custom events** emitted on that child component.\n\n When listening to native DOM events, the method receives the native event as the only argument. If using inline statement, the statement has access to the special `$event` property: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` also supports binding to an object of event / listener pairs without an argument. Note when using the object syntax, it does not support any modifiers.\n\n- **Example**\n\n ```html\n <!-- method handler -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- dynamic event -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- inline statement -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- shorthand -->\n <button @click=\"doThis\"></button>\n\n <!-- shorthand dynamic event -->\n <button @[event]=\"doThis\"></button>\n\n <!-- stop propagation -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- prevent default -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- prevent default without expression -->\n <form @submit.prevent></form>\n\n <!-- chain modifiers -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- key modifier using keyAlias -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- the click event will be triggered at most once -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- object syntax -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Listening to custom events on a child component (the handler is called when \"my-event\" is emitted on the child):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- inline statement -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **See also**\n - [Event Handling](https://vuejs.org/guide/essentials/event-handling.html)\n - [Components - Custom Events](https://vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-on" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-on" + } + ] + }, + { + name: "v-bind", + description: { + kind: "markdown", + value: "\nDynamically bind one or more attributes, or a component prop to an expression.\n\n- **Shorthand:**\n - `:` or `.` (when using `.prop` modifier)\n - Omitting value (when attribute and bound value has the same name, requires 3.4+)\n\n- **Expects:** `any (with argument) | Object (without argument)`\n\n- **Argument:** `attrOrProp (optional)`\n\n- **Modifiers**\n\n - `.camel` - transform the kebab-case attribute name into camelCase.\n - `.prop` - force a binding to be set as a DOM property (3.2+).\n - `.attr` - force a binding to be set as a DOM attribute (3.2+).\n\n- **Usage**\n\n When used to bind the `class` or `style` attribute, `v-bind` supports additional value types such as Array or Objects. See linked guide section below for more details.\n\n When setting a binding on an element, Vue by default checks whether the element has the key defined as a property using an `in` operator check. If the property is defined, Vue will set the value as a DOM property instead of an attribute. This should work in most cases, but you can override this behavior by explicitly using `.prop` or `.attr` modifiers. This is sometimes necessary, especially when [working with custom elements](https://vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n When used for component prop binding, the prop must be properly declared in the child component.\n\n When used without an argument, can be used to bind an object containing attribute name-value pairs.\n\n- **Example**\n\n ```html\n <!-- bind an attribute -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- dynamic attribute name -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- shorthand -->\n <img :src=\"imageSrc\" />\n\n <!-- same-name shorthand (3.4+), expands to :src=\"src\" -->\n <img :src />\n\n <!-- shorthand dynamic attribute name -->\n <button :[key]=\"value\"></button>\n\n <!-- with inline string concatenation -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- class binding -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- style binding -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- binding an object of attributes -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- prop binding. \"prop\" must be declared in the child component. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- pass down parent props in common with a child component -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n The `.prop` modifier also has a dedicated shorthand, `.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- equivalent to -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n The `.camel` modifier allows camelizing a `v-bind` attribute name when using in-DOM templates, e.g. the SVG `viewBox` attribute:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n `.camel` is not needed if you are using string templates, or pre-compiling the template with a build step.\n\n- **See also**\n - [Class and Style Bindings](https://vuejs.org/guide/essentials/class-and-style.html)\n - [Components - Prop Passing Details](https://vuejs.org/guide/components/props.html#prop-passing-details)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-bind" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-bind" + } + ] + }, + { + name: "v-model", + description: { + kind: "markdown", + value: "\nCreate a two-way binding on a form input element or a component.\n\n- **Expects:** varies based on value of form inputs element or output of components\n\n- **Limited to:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - components\n\n- **Modifiers**\n\n - [`.lazy`](https://vuejs.org/guide/essentials/forms.html#lazy) - listen to `change` events instead of `input`\n - [`.number`](https://vuejs.org/guide/essentials/forms.html#number) - cast valid input string to numbers\n - [`.trim`](https://vuejs.org/guide/essentials/forms.html#trim) - trim input\n\n- **See also**\n\n - [Form Input Bindings](https://vuejs.org/guide/essentials/forms.html)\n - [Component Events - Usage with `v-model`](https://vuejs.org/guide/components/v-model.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-model" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-model" + } + ] + }, + { + name: "v-slot", + description: { + kind: "markdown", + value: "\nDenote named slots or scoped slots that expect to receive props.\n\n- **Shorthand:** `#`\n\n- **Expects:** JavaScript expression that is valid in a function argument position, including support for destructuring. Optional - only needed if expecting props to be passed to the slot.\n\n- **Argument:** slot name (optional, defaults to `default`)\n\n- **Limited to:**\n\n - `<template>`\n - [components](https://vuejs.org/guide/components/slots.html#scoped-slots) (for a lone default slot with props)\n\n- **Example**\n\n ```html\n <!-- Named slots -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- Named slot that receives props -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Default slot that receive props, with destructuring -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **See also**\n - [Components - Slots](https://vuejs.org/guide/components/slots.html)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-slot" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-slot" + } + ] + }, + { + name: "v-pre", + valueSet: "v", + description: { + kind: "markdown", + value: "\nSkip compilation for this element and all its children.\n\n- **Does not expect expression**\n\n- **Details**\n\n Inside the element with `v-pre`, all Vue template syntax will be preserved and rendered as-is. The most common use case of this is displaying raw mustache tags.\n\n- **Example**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-pre" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-pre" + } + ] + }, + { + name: "v-once", + valueSet: "v", + description: { + kind: "markdown", + value: "\nRender the element and component once only, and skip future updates.\n\n- **Does not expect expression**\n\n- **Details**\n\n On subsequent re-renders, the element/component and all its children will be treated as static content and skipped. This can be used to optimize update performance.\n\n ```html\n <!-- single element -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- the element have children -->\n <div v-once>\n <h1>Comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- component -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- `v-for` directive -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Since 3.2, you can also memoize part of the template with invalidation conditions using [`v-memo`](#v-memo).\n\n- **See also**\n - [Data Binding Syntax - interpolations](https://vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [v-memo](#v-memo)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-once" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-once" + } + ] + }, + { + name: "v-memo", + description: { + kind: "markdown", + value: "\n- Only supported in 3.2+\n\n- **Expects:** `any[]`\n\n- **Details**\n\n Memoize a sub-tree of the template. Can be used on both elements and components. The directive expects a fixed-length array of dependency values to compare for the memoization. If every value in the array was the same as last render, then updates for the entire sub-tree will be skipped. For example:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n When the component re-renders, if both `valueA` and `valueB` remain the same, all updates for this `<div>` and its children will be skipped. In fact, even the Virtual DOM VNode creation will also be skipped since the memoized copy of the sub-tree can be reused.\n\n It is important to specify the memoization array correctly, otherwise we may skip updates that should indeed be applied. `v-memo` with an empty dependency array (`v-memo=\"[]\"`) would be functionally equivalent to `v-once`.\n\n **Usage with `v-for`**\n\n `v-memo` is provided solely for micro optimizations in performance-critical scenarios and should be rarely needed. The most common case where this may prove helpful is when rendering large `v-for` lists (where `length > 1000`):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n When the component's `selected` state changes, a large amount of VNodes will be created even though most of the items remained exactly the same. The `v-memo` usage here is essentially saying \"only update this item if it went from non-selected to selected, or the other way around\". This allows every unaffected item to reuse its previous VNode and skip diffing entirely. Note we don't need to include `item.id` in the memo dependency array here since Vue automatically infers it from the item's `:key`.\n\n :::warning\n When using `v-memo` with `v-for`, make sure they are used on the same element. **`v-memo` does not work inside `v-for`.**\n :::\n\n `v-memo` can also be used on components to manually prevent unwanted updates in certain edge cases where the child component update check has been de-optimized. But again, it is the developer's responsibility to specify correct dependency arrays to avoid skipping necessary updates.\n\n- **See also**\n - [v-once](#v-once)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-memo" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-memo" + } + ] + }, + { + name: "v-cloak", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUsed to hide un-compiled template until it is ready.\n\n- **Does not expect expression**\n\n- **Details**\n\n **This directive is only needed in no-build-step setups.**\n\n When using in-DOM templates, there can be a \"flash of un-compiled templates\": the user may see raw mustache tags until the mounted component replaces them with rendered content.\n\n `v-cloak` will remain on the element until the associated component instance is mounted. Combined with CSS rules such as `[v-cloak] { display: none }`, it can be used to hide the raw templates until the component is ready.\n\n- **Example**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n The `<div>` will not be visible until the compilation is done.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-directives.html#v-cloak" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-directives.html#v-cloak" + } + ] + }, + { + name: "key", + description: { + kind: "markdown", + value: "\nThe `key` special attribute is primarily used as a hint for Vue's virtual DOM algorithm to identify vnodes when diffing the new list of nodes against the old list.\n\n- **Expects:** `number | string | symbol`\n\n- **Details**\n\n Without keys, Vue uses an algorithm that minimizes element movement and tries to patch/reuse elements of the same type in-place as much as possible. With keys, it will reorder elements based on the order change of keys, and elements with keys that are no longer present will always be removed / destroyed.\n\n Children of the same common parent must have **unique keys**. Duplicate keys will cause render errors.\n\n The most common use case is combined with `v-for`:\n\n ```html\n <ul>\n <li v-for=\"item in items\" :key=\"item.id\">...</li>\n </ul>\n ```\n\n It can also be used to force replacement of an element/component instead of reusing it. This can be useful when you want to:\n\n - Properly trigger lifecycle hooks of a component\n - Trigger transitions\n\n For example:\n\n ```html\n <transition>\n <span :key=\"text\">{{ text }}</span>\n </transition>\n ```\n\n When `text` changes, the `<span>` will always be replaced instead of patched, so a transition will be triggered.\n\n- **See also** [Guide - List Rendering - Maintaining State with `key`](https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#key" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#key" + } + ] + }, + { + name: "ref", + description: { + kind: "markdown", + value: "\nDenotes a [template ref](https://vuejs.org/guide/essentials/template-refs.html).\n\n- **Expects:** `string | Function`\n\n- **Details**\n\n `ref` is used to register a reference to an element or a child component.\n\n In Options API, the reference will be registered under the component's `this.$refs` object:\n\n ```html\n <!-- stored as this.$refs.p -->\n <p ref=\"p\">hello</p>\n ```\n\n In Composition API, the reference will be stored in a ref with matching name:\n\n ```vue\n <script setup>\n import { ref } from 'vue'\n\n const p = ref()\n </script>\n\n <template>\n <p ref=\"p\">hello</p>\n </template>\n ```\n\n If used on a plain DOM element, the reference will be that element; if used on a child component, the reference will be the child component instance.\n\n Alternatively `ref` can accept a function value which provides full control over where to store the reference:\n\n ```html\n <ChildComponent :ref=\"(el) => child = el\" />\n ```\n\n An important note about the ref registration timing: because the refs themselves are created as a result of the render function, you must wait until the component is mounted before accessing them.\n\n `this.$refs` is also non-reactive, therefore you should not attempt to use it in templates for data-binding.\n\n- **See also**\n - [Guide - Template Refs](https://vuejs.org/guide/essentials/template-refs.html)\n - [Guide - Typing Template Refs](https://vuejs.org/guide/typescript/composition-api.html#typing-template-refs) <sup class=\"vt-badge ts\" />\n - [Guide - Typing Component Template Refs](https://vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs) <sup class=\"vt-badge ts\" />\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#ref" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#ref" + } + ] + }, + { + name: "is", + description: { + kind: "markdown", + value: "\nUsed for binding [dynamic components](https://vuejs.org/guide/essentials/component-basics.html#dynamic-components).\n\n- **Expects:** `string | Component`\n\n- **Usage on native elements** <sup class=\"vt-badge\">3.1+</sup>\n\n When the `is` attribute is used on a native HTML element, it will be interpreted as a [Customized built-in element](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example), which is a native web platform feature.\n\n There is, however, a use case where you may need Vue to replace a native element with a Vue component, as explained in [in-DOM Template Parsing Caveats](https://vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats). You can prefix the value of the `is` attribute with `vue:` so that Vue will render the element as a Vue component instead:\n\n ```html\n <table>\n <tr is=\"vue:my-row-component\"></tr>\n </table>\n ```\n\n- **See also**\n\n - [Built-in Special Element - `<component>`](https://vuejs.org/api/built-in-special-elements.html#component)\n - [Dynamic Components](https://vuejs.org/guide/essentials/component-basics.html#dynamic-components)\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "it", + url: "https://it.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/built-in-special-attributes.html#is" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/built-in-special-attributes.html#is" + } + ] + } +]; +var require$$9 = { + version: version$k, + tags: tags$a, + globalAttributes: globalAttributes$k +}; + +const version$j = 1.1; +const tags$9 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` コンポーネントを複数のファイルに分割したい場合は、`src` 属性を使用して言語ブロックに外部ファイルをインポートできます:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` でのインポートは webpack のモジュールリクエストと同じパス解決ルールに従うので注意してください。つまり:\n\n- 相対パスは `./` で始める必要があります\n- npm の依存関係からリソースをインポートできます:\n\n```vue\n<!-- インストール済みの \"todomvc-app-css\" npm パッケージからファイルをインポート -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` でのインポートは、カスタムブロックでも動作します。例:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nブロックに `lang` 属性を使ってプリプロセッサーの言語を宣言できます。最も一般的なケースは、`<script>` ブロックでの TypeScript の使用です:\n\n```html\n<script lang=\"ts\">\n // TypeScript を使う\n</script>\n```\n\n`lang` はどのブロックにも適用できます - 例えば、`<style>` で [Sass](https://sass-lang.com/) を使用したり、`<template>` で [Pug](https://pugjs.org/api/getting-started.html) を使用できます:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nなお、各種プリプロセッサーとの統合はツールチェーンによって異なる場合があることに注意してください。例については、それぞれのドキュメントを参照してください:\n\n- [Vite](https://ja.vitejs.dev/guide/features.html#css-%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 各 `*.vue` ファイルには、最大 1 つのトップレベル `<template>` ブロックを含めることができます。\n\n- コンテンツは抽出されて `@vue/compiler-dom` に渡され、JavaScript のレンダー関数に事前コンパイルされ、エクスポートされたコンポーネントに `render` オプションとしてアタッチされます。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` コンポーネントを複数のファイルに分割したい場合は、`src` 属性を使用して言語ブロックに外部ファイルをインポートできます:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` でのインポートは webpack のモジュールリクエストと同じパス解決ルールに従うので注意してください。つまり:\n\n- 相対パスは `./` で始める必要があります\n- npm の依存関係からリソースをインポートできます:\n\n```vue\n<!-- インストール済みの \"todomvc-app-css\" npm パッケージからファイルをインポート -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` でのインポートは、カスタムブロックでも動作します。例:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nブロックに `lang` 属性を使ってプリプロセッサーの言語を宣言できます。最も一般的なケースは、`<script>` ブロックでの TypeScript の使用です:\n\n```html\n<script lang=\"ts\">\n // TypeScript を使う\n</script>\n```\n\n`lang` はどのブロックにも適用できます - 例えば、`<style>` で [Sass](https://sass-lang.com/) を使用したり、`<template>` で [Pug](https://pugjs.org/api/getting-started.html) を使用できます:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nなお、各種プリプロセッサーとの統合はツールチェーンによって異なる場合があることに注意してください。例については、それぞれのドキュメントを参照してください:\n\n- [Vite](https://ja.vitejs.dev/guide/features.html#css-%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- 各 `*.vue` ファイルには、最大 1 つの `<script setup>` ブロックを含めることができます(通常の `<script>` は除く)。\n\n- スクリプトは前処理され、コンポーネントの `setup()` 関数として使用されます。これは、**コンポーネントの各インスタンスに対して**実行されることを意味します。`<script setup>` のトップレベルのバインディングは、自動的にテンプレートに公開されます。詳細は [`<script setup>` に関する専用のドキュメント](https://ja.vuejs.org/api/sfc-script-setup.html)を参照してください。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 各 `*.vue` ファイルには、最大 1 つの `<script>` ブロックを含めることができます([`<script setup>`](https://ja.vuejs.org/api/sfc-script-setup.html) は除く)。\n\n- スクリプトは、ES モジュールとして実行されます。\n\n- **default export** は、プレーンオブジェクトか [defineComponent](https://ja.vuejs.org/api/general.html#definecomponent) の戻り値のどちらかで、Vue のコンポーネントオプションオブジェクトになっている必要があります。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- 各 `*.vue` ファイルには、最大 1 つの `<script setup>` ブロックを含めることができます(通常の `<script>` は除く)。\n\n- スクリプトは前処理され、コンポーネントの `setup()` 関数として使用されます。これは、**コンポーネントの各インスタンスに対して**実行されることを意味します。`<script setup>` のトップレベルのバインディングは、自動的にテンプレートに公開されます。詳細は [`<script setup>` に関する専用のドキュメント](https://ja.vuejs.org/api/sfc-script-setup.html)を参照してください。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` コンポーネントを複数のファイルに分割したい場合は、`src` 属性を使用して言語ブロックに外部ファイルをインポートできます:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` でのインポートは webpack のモジュールリクエストと同じパス解決ルールに従うので注意してください。つまり:\n\n- 相対パスは `./` で始める必要があります\n- npm の依存関係からリソースをインポートできます:\n\n```vue\n<!-- インストール済みの \"todomvc-app-css\" npm パッケージからファイルをインポート -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` でのインポートは、カスタムブロックでも動作します。例:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nブロックに `lang` 属性を使ってプリプロセッサーの言語を宣言できます。最も一般的なケースは、`<script>` ブロックでの TypeScript の使用です:\n\n```html\n<script lang=\"ts\">\n // TypeScript を使う\n</script>\n```\n\n`lang` はどのブロックにも適用できます - 例えば、`<style>` で [Sass](https://sass-lang.com/) を使用したり、`<template>` で [Pug](https://pugjs.org/api/getting-started.html) を使用できます:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nなお、各種プリプロセッサーとの統合はツールチェーンによって異なる場合があることに注意してください。例については、それぞれのドキュメントを参照してください:\n\n- [Vite](https://ja.vitejs.dev/guide/features.html#css-%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`<style>` タグに `scoped` 属性が指定されている場合、その CSS は現在のコンポーネントの要素のみに適用されます。これは、Shadow DOM に見られるスタイルのカプセル化に似ています。これはいくつかの注意点がありますが、ポリフィルは必要ありません。これは、PostCSS を使って変換することで実現されます。次のコードは:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\n以下のように変換されます:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### 子コンポーネントのルート要素 \n\n`scoped` を使用すると、親コンポーネントのスタイルが子コンポーネントに漏れることはありません。しかし、子コンポーネントのルートノードは親のスコープ付き CSS と子のスコープ付き CSS の両方の影響を受けることになります。これは、親コンポーネントがレイアウトのために子コンポーネントのルート要素のスタイルを設定できるようにするための設計です。\n\n### deep セレクター \n\n`scoped` スタイルのセレクターを \"deep\" にしたい場合、つまり子コンポーネントに影響を与えたい場合は、`:deep()` 擬似クラスを使用できます:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\n上記は次のようにコンパイルされます:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\n`v-html` で作成された DOM コンテンツは、スコープ付きスタイルの影響を受けませんが、deep セレクターを使用してスタイルを設定可能です。\n:::\n\n### slotted セレクター \n\n`<slot/>` によってレンダリングされるコンテンツは、デフォルトでは親コンポーネントによって所有されていると見なされるため、スコープ付きスタイルの影響を受けません。明示的にスロットのコンテンツをターゲットにするには、`:slotted` 疑似クラスを使用します:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### global セレクター \n\nもし 1 つのルールだけをグローバルに適用したい場合は、別の `<style>` を作成するかわりに、`:global` 疑似クラスを使用できます(以下を参照):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### ローカルスタイルとグローバルスタイルの混在 \n\nスコープ付きスタイルとスコープなしスタイルの両方を同じコンポーネントに含めることもできます:\n\n```vue\n<style>\n/* グローバルスタイル */\n</style>\n\n<style scoped>\n/* ローカルスタイル */\n</style>\n```\n\n### スコープ付きスタイルのヒント \n\n- **スコープ付きスタイルでクラスが不要になるわけではありません**。ブラウザーの様々な CSS セレクターのレンダリング方法により、`p { color: red }` をスコープ付きにした場合(つまり属性セレクターと組み合わせた場合)、何倍も遅くなります。その代わり、`.example { color: red }` のようにクラスや ID を使用すれば、このパフォーマンス低下をほぼ排除できます。\n\n- **再帰的コンポーネントでの子孫セレクターに注意!** `.a .b` というセレクターがある CSS ルールにおいて、`.a` にマッチする要素が再帰的な子コンポーネントを含む場合、その子コンポーネントのすべての `.b` がルールにマッチされます。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`<style module>` タグは [CSS モジュール](https://github.com/css-modules/css-modules)としてコンパイルされ、結果として得られる CSS クラスを `$style` というキーの下にオブジェクトとしてコンポーネントに公開します:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\n生成されたクラスは衝突を避けるためにハッシュ化され、CSS を現在のコンポーネントのみにスコープするのと同じ効果を得ることができます。\n\n[グローバルの例外](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions)や[コンポジション](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition)などの詳細は、[CSS モジュールの仕様](https://github.com/css-modules/css-modules)を参照してください。\n\n### カスタム注入名 \n\n`module` 属性に値を与えることで、注入されるクラスオブジェクトのプロパティキーをカスタマイズできます:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Composition API での使用 \n\n注入されたクラスは、`useCssModule` API を介して `setup()` や `<script setup>` の中でアクセスできます。カスタム注入名を持つ `<style module>` ブロックの場合、`useCssModule` は最初の引数としてマッチする `module` 属性の値を受け取ります:\n\n```js\nimport { useCssModule } from 'vue'\n\n// setup() スコープの内側...\n// デフォルトでは <style module> のクラスを返します\nuseCssModule()\n\n// 名前付きの例、<style module=\"classes\"> のクラスを返します\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 1 つの `*.vue` ファイルに複数の `<style>` タグを含めることができます。\n\n- スタイルを現在のコンポーネントにカプセル化するため、`<style>` タグに `scoped` または `module` 属性を指定できます(詳細は [SFC スタイル機能](https://ja.vuejs.org/api/sfc-css-features.html)を参照)。同じコンポーネント内に、異なるカプセル化モードを持つ複数の `<style>` タグを混在させることができます。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "カスタムブロック", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` コンポーネントを複数のファイルに分割したい場合は、`src` 属性を使用して言語ブロックに外部ファイルをインポートできます:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` でのインポートは webpack のモジュールリクエストと同じパス解決ルールに従うので注意してください。つまり:\n\n- 相対パスは `./` で始める必要があります\n- npm の依存関係からリソースをインポートできます:\n\n```vue\n<!-- インストール済みの \"todomvc-app-css\" npm パッケージからファイルをインポート -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` でのインポートは、カスタムブロックでも動作します。例:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nプロジェクト固有のニーズに応じて、`*.vue` ファイルに `<docs>` ブロックのような追加のカスタムブロックを含めることができます。カスタムブロックの実際の例としては、以下のようなものがあります:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\nカスタムブロックの扱いはツールに依存します - 独自のカスタムブロック統合を構築したい場合は、[SFC カスタムブロック統合ツールのセクション](https://ja.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations)で詳細を確認してください。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#カスタムブロック" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#カスタムブロック" + } + ] + } +]; +const globalAttributes$j = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nブロックに `lang` 属性を使ってプリプロセッサーの言語を宣言できます。最も一般的なケースは、`<script>` ブロックでの TypeScript の使用です:\n\n```html\n<script lang=\"ts\">\n // TypeScript を使う\n</script>\n```\n\n`lang` はどのブロックにも適用できます - 例えば、`<style>` で [Sass](https://sass-lang.com/) を使用したり、`<template>` で [Pug](https://pugjs.org/api/getting-started.html) を使用できます:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nなお、各種プリプロセッサーとの統合はツールチェーンによって異なる場合があることに注意してください。例については、それぞれのドキュメントを参照してください:\n\n- [Vite](https://ja.vitejs.dev/guide/features.html#css-%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` コンポーネントを複数のファイルに分割したい場合は、`src` 属性を使用して言語ブロックに外部ファイルをインポートできます:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` でのインポートは webpack のモジュールリクエストと同じパス解決ルールに従うので注意してください。つまり:\n\n- 相対パスは `./` で始める必要があります\n- npm の依存関係からリソースをインポートできます:\n\n```vue\n<!-- インストール済みの \"todomvc-app-css\" npm パッケージからファイルをインポート -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` でのインポートは、カスタムブロックでも動作します。例:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$10 = { + version: version$j, + tags: tags$9, + globalAttributes: globalAttributes$j +}; + +const version$i = 1.1; +const tags$8 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSi vous préférez séparer vos composants `*.vue` en plusieurs fichiers, vous pouvez utiliser l'attribut `src` pour importer un fichier externe pour un bloc de langage :\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nAttention, les importations `src` suivent les mêmes règles de résolution de chemin que les requêtes de modules de webpack, ce qui signifie que :\n\n- Les chemins relatifs doivent commencer par `./`.\n- Vous pouvez importer des ressources à partir des dépendances npm :\n\n```vue\n<!-- importe un fichier depuis le paquet npm installé \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nLes importations `src` fonctionnent également avec des blocs personnalisés, par exemple :\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nLes blocs peuvent déclarer des langages de pré-processeur en utilisant l'attribut `lang`. Le cas le plus courant est l'utilisation de TypeScript pour le bloc `<script>` :\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` peut être appliqué à n'importe quel bloc - par exemple, nous pouvons utiliser `<style>` avec [Sass](https://sass-lang.com/) et `<template>` avec [Pug](https://pugjs.org/api/getting-started.html) :\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNotez que l'intégration avec divers pré-processeurs peut différer selon les outils utilisés. Consultez la documentation correspondante pour des exemples :\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Chaque fichier `*.vue` peut contenir au maximum un bloc de haut niveau `<template>` à la fois.\n\n- Le contenu sera extrait et transmis à `@vue/compiler-dom`, pré-compilé en fonctions de rendu JavaScript, et attaché au composant exporté en tant que son option `render`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSi vous préférez séparer vos composants `*.vue` en plusieurs fichiers, vous pouvez utiliser l'attribut `src` pour importer un fichier externe pour un bloc de langage :\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nAttention, les importations `src` suivent les mêmes règles de résolution de chemin que les requêtes de modules de webpack, ce qui signifie que :\n\n- Les chemins relatifs doivent commencer par `./`.\n- Vous pouvez importer des ressources à partir des dépendances npm :\n\n```vue\n<!-- importe un fichier depuis le paquet npm installé \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nLes importations `src` fonctionnent également avec des blocs personnalisés, par exemple :\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nLes blocs peuvent déclarer des langages de pré-processeur en utilisant l'attribut `lang`. Le cas le plus courant est l'utilisation de TypeScript pour le bloc `<script>` :\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` peut être appliqué à n'importe quel bloc - par exemple, nous pouvons utiliser `<style>` avec [Sass](https://sass-lang.com/) et `<template>` avec [Pug](https://pugjs.org/api/getting-started.html) :\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNotez que l'intégration avec divers pré-processeurs peut différer selon les outils utilisés. Consultez la documentation correspondante pour des exemples :\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- Chaque fichier `*.vue` peut contenir au maximum un bloc `<script setup>` à la fois (à l'exclusion des `<script>` normaux).\n\n- Le script est pré-traité et utilisé comme fonction `setup()` du composant, ce qui signifie qu'il sera exécuté **pour chaque instance du composant**. Les liaisons de haut niveau dans `<script setup>` sont automatiquement exposées au template. Pour plus de détails, voir la [documentation dédiée à `<script setup>`](https://fr.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Chaque fichier `*.vue` peut contenir au maximum un bloc `<script>` à la fois (sauf [`<script setup>`](https://fr.vuejs.org/api/sfc-script-setup.html)).\n\n- Le script est exécuté comme un module ES.\n\n- L'**export par défaut** doit être un objet composé d'options de composant Vue, soit en tant qu'objet simple, soit en tant que valeur de retour de [defineComponent](https://fr.vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- Chaque fichier `*.vue` peut contenir au maximum un bloc `<script setup>` à la fois (à l'exclusion des `<script>` normaux).\n\n- Le script est pré-traité et utilisé comme fonction `setup()` du composant, ce qui signifie qu'il sera exécuté **pour chaque instance du composant**. Les liaisons de haut niveau dans `<script setup>` sont automatiquement exposées au template. Pour plus de détails, voir la [documentation dédiée à `<script setup>`](https://fr.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSi vous préférez séparer vos composants `*.vue` en plusieurs fichiers, vous pouvez utiliser l'attribut `src` pour importer un fichier externe pour un bloc de langage :\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nAttention, les importations `src` suivent les mêmes règles de résolution de chemin que les requêtes de modules de webpack, ce qui signifie que :\n\n- Les chemins relatifs doivent commencer par `./`.\n- Vous pouvez importer des ressources à partir des dépendances npm :\n\n```vue\n<!-- importe un fichier depuis le paquet npm installé \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nLes importations `src` fonctionnent également avec des blocs personnalisés, par exemple :\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nLes blocs peuvent déclarer des langages de pré-processeur en utilisant l'attribut `lang`. Le cas le plus courant est l'utilisation de TypeScript pour le bloc `<script>` :\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` peut être appliqué à n'importe quel bloc - par exemple, nous pouvons utiliser `<style>` avec [Sass](https://sass-lang.com/) et `<template>` avec [Pug](https://pugjs.org/api/getting-started.html) :\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNotez que l'intégration avec divers pré-processeurs peut différer selon les outils utilisés. Consultez la documentation correspondante pour des exemples :\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nLorsqu'une balise `<style>` possède l'attribut `scoped`, son CSS s'appliquera uniquement aux éléments du composant actuel. Cela est comparable à l'encapsulation des styles que l'on trouve dans le Shadow DOM. Il y a cependant quelques mises en gardes, mais cela ne nécessite aucun polyfill. PostCSS est utilisé pour transformer les éléments suivants :\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\nEn ce qui suit :\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### Éléments racines du composant enfant \n\nAvec `scoped`, les styles du composant parent ne ruisselleront pas dans les composants enfants. Toutefois, le nœud racine d'un composant enfant sera affecté à la fois par le CSS à portée limitée du parent et par le CSS à portée limitée de l'enfant. Cela a été conçu afin que le parent puisse donner un style à l'élément racine de l'enfant à des fins de mise en page.\n\n### Sélecteurs profonds \n\nSi vous voulez qu'un sélecteur dans les styles `scoped` soit \"profond\", c'est-à-dire qu'il affecte les composants enfants, vous pouvez utiliser la pseudo-classe `:deep()` :\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nLe code ci-dessus sera compilé en :\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\nLes contenus du DOM créés avec `v-html` ne sont pas affectés par les styles à portée limitée, mais vous pouvez tout de même les styliser en utilisant des sélecteurs profonds.\n:::\n\n### Sélecteurs de slots \n\nPar défaut, les styles à portée limitée n'affectent pas les contenus rendus par `<slot/>`, car ils sont considérés comme appartenant au composant parent qui les transmet. Pour cibler explicitement le contenu des slots, utilisez la pseudo-classe `:slotted` :\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Sélecteurs globaux \n\nSi vous voulez qu'une seule règle s'applique de manière globale, vous pouvez utiliser la pseudo-classe `:global` plutôt que de créer un autre `<style>` (voir ci-dessous) :\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Mélanger les styles locaux et globaux \n\nVous pouvez également inclure des styles généraux et d'autres à portée limitée dans le même composant :\n\n```vue\n<style>\n/* styles globaux */\n</style>\n\n<style scoped>\n/* styles locaux */\n</style>\n```\n\n### Conseils concernant les styles à portée limitée \n\n- **Les styles à portée limitée ne rendent pas les classes inutiles**. En raison de la façon dont les navigateurs rendent les différents sélecteurs CSS, `p { color : red }` sera bien plus lent lorsqu'il a une portée limitée (c'est-à-dire lorsqu'il est combiné avec un sélecteur d'attribut). Si vous utilisez des classes ou des identifiants à la place, comme dans `.example { color : red }`, vous éliminez en grande partie ce problème de performances.\n\n- **Faites attention aux sélecteurs descendants dans les composants récursifs!** Pour une règle CSS avec le sélecteur `.a .b`, si l'élément qui correspond à `.a` contient un composant enfant récursif, alors tous les `.b` de ce composant enfant seront pris en compte par la règle.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUne balise `<style module>` est compilée en tant que [modules CSS](https://github.com/css-modules/css-modules) et expose les classes CSS résultantes au composant en tant qu'objet via la clé `$style` :\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nLes classes qui en résultent sont hachées pour éviter les collisions, ce qui permet d'obtenir le même effet que de limiter la portée du CSS au seul composant actuel.\n\nConsultez la [spécification des modules CSS](https://github.com/css-modules/css-modules) pour plus de détails, notamment les parties sur les [exceptions globales](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) et la [composition](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition).\n\n### Nom d'injection personnalisé \n\nVous pouvez personnaliser la clé de propriété de l'objet de classes injectées en donnant une valeur à l'attribut `module` :\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Utilisation avec la Composition API \n\nLes classes injectées sont accessibles dans `setup()` et `<script setup>` via l'API `useCssModule`. Pour les blocs `<style module>` avec des noms d'injection personnalisés, `useCssModule` accepte la valeur de l'attribut `module` correspondant comme premier argument :\n\n```js\nimport { useCssModule } from 'vue'\n\n// à l'intérieur de setup()...\n// par défaut, renvoie les classes pour <style module>\nuseCssModule()\n\n// nommé, renvoie les classes pour <style module=\"classes\">\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Un seul fichier `*.vue` peut contenir plusieurs balises `<style>`.\n\n- Une balise `<style>` peut avoir des attributs `scoped` ou `module` (voir [les fonctionnalités de style pour les composants monofichiers](https://fr.vuejs.org/api/sfc-css-features.html) pour plus de détails) pour aider à encapsuler les styles dans le composant actuel. Plusieurs balises `<style>` avec différents modes d'encapsulation peuvent coexister dans le même composant.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Blocs personnalisés", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSi vous préférez séparer vos composants `*.vue` en plusieurs fichiers, vous pouvez utiliser l'attribut `src` pour importer un fichier externe pour un bloc de langage :\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nAttention, les importations `src` suivent les mêmes règles de résolution de chemin que les requêtes de modules de webpack, ce qui signifie que :\n\n- Les chemins relatifs doivent commencer par `./`.\n- Vous pouvez importer des ressources à partir des dépendances npm :\n\n```vue\n<!-- importe un fichier depuis le paquet npm installé \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nLes importations `src` fonctionnent également avec des blocs personnalisés, par exemple :\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nDes blocs personnalisés supplémentaires peuvent être inclus dans un fichier `*.vue` pour tout besoin spécifique au projet, par exemple un bloc `<docs>`. Voici quelques exemples concrets de blocs personnalisés :\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\nLa gestion des blocs personnalisés dépendra des outils utilisés - si vous souhaitez créer vos propres intégrations de blocs personnalisés, consultez [la section dédiée aux outils](https://fr.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) pour plus de détails.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#blocs-personnalisés" + } + ] + } +]; +const globalAttributes$i = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nLes blocs peuvent déclarer des langages de pré-processeur en utilisant l'attribut `lang`. Le cas le plus courant est l'utilisation de TypeScript pour le bloc `<script>` :\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` peut être appliqué à n'importe quel bloc - par exemple, nous pouvons utiliser `<style>` avec [Sass](https://sass-lang.com/) et `<template>` avec [Pug](https://pugjs.org/api/getting-started.html) :\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNotez que l'intégration avec divers pré-processeurs peut différer selon les outils utilisés. Consultez la documentation correspondante pour des exemples :\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nSi vous préférez séparer vos composants `*.vue` en plusieurs fichiers, vous pouvez utiliser l'attribut `src` pour importer un fichier externe pour un bloc de langage :\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nAttention, les importations `src` suivent les mêmes règles de résolution de chemin que les requêtes de modules de webpack, ce qui signifie que :\n\n- Les chemins relatifs doivent commencer par `./`.\n- Vous pouvez importer des ressources à partir des dépendances npm :\n\n```vue\n<!-- importe un fichier depuis le paquet npm installé \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nLes importations `src` fonctionnent également avec des blocs personnalisés, par exemple :\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$11 = { + version: version$i, + tags: tags$8, + globalAttributes: globalAttributes$i +}; + +const version$h = 1.1; +const tags$7 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 각 `*.vue` 파일은 최상위 `<template>` 블록을 하나만 포함할 수 있습니다.\n\n- 컨텐츠는 추출되어 `@vue/compiler-dom`으로 전달되고,\n JavaScript 렌더 함수로 사전 컴파일되며,\n 내보낸 컴포넌트에 `render` 옵션으로 첨부됩니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- 각 `*.vue` 파일은 하나의 `<script setup>` 블록만 포함할 수 있습니다(일반 `<script>` 제외).\n\n- 스크립트는 전처리되어 컴포넌트의 `setup()` 함수로 사용됩니다.\n 즉, **컴포넌트의 각 인스턴스**에 대해 실행됩니다.\n `<script setup>` 내에 최상위 바인딩은 템플릿에 자동으로 노출됩니다.\n 자세한 내용은 [`<script setup>` 전용 문서](https://ko.vuejs.org/api/sfc-script-setup.html)를 참고하십시오.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 각 `*.vue` 파일은 하나의 `<script>` 블록만 포함할 수 있습니다([`<script setup>`](https://ko.vuejs.org/api/sfc-script-setup.html) 제외).\n\n- 스크립트는 ES 모듈로 실행됩니다.\n\n- **기본 내보내기**는 일반 객체 또는 [defineComponent](https://ko.vuejs.org/api/general.html#definecomponent)의 반환 값으로 Vue 컴포넌트 옵션 객체여야 합니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- 각 `*.vue` 파일은 하나의 `<script setup>` 블록만 포함할 수 있습니다(일반 `<script>` 제외).\n\n- 스크립트는 전처리되어 컴포넌트의 `setup()` 함수로 사용됩니다.\n 즉, **컴포넌트의 각 인스턴스**에 대해 실행됩니다.\n `<script setup>` 내에 최상위 바인딩은 템플릿에 자동으로 노출됩니다.\n 자세한 내용은 [`<script setup>` 전용 문서](https://ko.vuejs.org/api/sfc-script-setup.html)를 참고하십시오.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`<style>` 태그에 `scoped` 속성이 있으면, 해당 CSS는 현재 컴포넌트의 엘리먼트에만 적용됩니다. 이것은 Shadow DOM에서 발견되는 스타일 캡슐화와 유사합니다. 몇 가지 주의 사항이 있지만, 폴리필이 필요하지 않습니다. PostCSS를 사용하여 다음을 변환함으로써 달성됩니다:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">안녕!</div>\n</template>\n```\n\n다음으로:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>안녕!</div>\n</template>\n```\n\n### 자식 컴포넌트 루트 엘리먼트 \n\n`scoped`를 사용하면 부모 컴포넌트의 스타일이 자식 컴포넌트로 누출되지 않습니다. 그러나 자식 컴포넌트의 루트 노드는 부모의 범위가 지정된 CSS와 자식의 범위가 지정된 CSS 모두의 영향을 받습니다. 이것은 부모가 레이아웃 목적으로 자식 루트 엘리먼트의 스타일을 지정할 수 있도록 의도적으로 설계된 것입니다:\n\n### 깊은 셀렉터 \n\n`scoped` 스타일의 셀렉터를 \"깊게\"(즉, 자식 컴포넌트에 영향을 미치게 하려면) `:deep()` 의사 클래스를 사용할 수 있습니다:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\n위의 내용은 다음과 같이 컴파일됩니다:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\n`v-html`로 만든 DOM 컨텐츠는 범위가 지정된 스타일의 영향을 받지 않지만, 깊은 셀렉터를 사용하여 스타일을 지정할 수 있습니다.\n:::\n\n### 슬롯형 셀렉터 \n\n기본적으로 범위가 지정된 스타일은 `<slot/>`에 의해 렌더링된 컨텐츠에 영향을 미치지 않습니다. 스타일을 전달하는 부모 컴포넌트가 소유한 것으로 간주되기 때문입니다. 슬롯 컨텐츠를 명시적으로 대상으로 지정하려면, `:slotted` 의사 클래스를 사용해야 합니다:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### 전역 셀렉터 \n\n하나의 규칙만 전역적으로 적용하려면, 다른 `<style>`을 만드는 대신 `:global` 의사 클래스를 사용할 수 있습니다(아래 참고):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### 로컬 및 전역 스타일 혼합 \n\n동일한 컴포넌트에 범위가 지정된 스타일과 범위가 지정되지 않은 스타일을 모두 포함할 수도 있습니다:\n\n```vue\n<style>\n/* 전역 스타일 */\n</style>\n\n<style scoped>\n/* 로컬 스타일 */\n</style>\n```\n\n### 범위가 지정된 스타일 팁 \n\n- **범위가 지정된 스타일은 클래스의 필요성을 제거하지 않습니다**. 브라우저가 다양한 CSS 셀렉터를 렌더링하는 방식 때문에, `p { color: red }`처럼 범위를 지정할 때(즉, 속성 셀렉터와 결합될 때) 속도가 몇 배 느려집니다. `.example { color: red }`와 같이 클래스나 ID를 사용하면, 성능 저하를 거의 제거할 수 있습니다.\n\n- **재귀적 컴포넌트의 자손 셀렉터에 주의해야 합니다!** 셀렉터가 `.a .b`인 CSS 규칙의 경우, `.a`와 일치하는 엘리먼트가 재귀적인 자식 컴포넌트를 포함한다면, 해당 자식 컴포넌트의 모든 `.b`는 규칙과 일치하게 됩니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\n`<style module>` 태그는 [CSS 모듈](https://github.com/css-modules/css-modules)로 컴파일되고, 결과적으로 CSS 클래스를 `$style` 키(key) 내부에 객체로 컴포넌트에 노출합니다:\n\n```vue\n<template>\n <p :class=\"$style.red\">이것은 빨간색이어야 합니다.</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\n결과적인 클래스는 충돌을 피하기 위해 해시되어, CSS 범위를 현재 컴포넌트로만 지정하는 것과 동일한 효과를 얻습니다.\n\n[전역 예외](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions), [컴포지션](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition) 등의 자세한 사항은 [CSS 모듈 스팩](https://github.com/css-modules/css-modules)을 참고하십시오.\n\n### 커스텀 이름 삽입 \n\n`module` 속성에 값을 지정하여, 주입된 클래스 객체의 속성 키를 커스텀할 수 있습니다:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### 컴포지션 API와 함께 사용 \n\n주입된 클래스는 `useCssModule` API를 통해 `setup()` 및 `<script setup>`에서 접근할 수 있습니다. 커스텀 주입 이름이 있는 `<style module>` 블록의 경우 `useCssModule`은 일치하는 `module` 속성 값을 첫 번째 인자로 받습니다:\n\n```js\nimport { useCssModule } from 'vue'\n\n// setup() 내부에서...\n// 기본값은, <style module>의 클래스 반환\nuseCssModule()\n\n// 이름을 지정한 경우, <style module=\"classes\">의 클래스 반환\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- `*.vue` 파일에는 여러 `<style>` 태그가 포함될 수 있습니다.\n\n- `<style>` 태그는 현재 컴포넌트에 스타일을 캡슐화하는 데 도움이 되도록,\n `scoped` 또는 `module` 속성(자세한 내용은 [SFC 스타일 특징](https://ko.vuejs.org/api/sfc-css-features.html) 참고)을 가질 수 있습니다.\n 캡슐화 모드가 다른 여러 `<style>` 태그를 동일한 컴포넌트에 혼합할 수 있습니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "커스텀 블럭", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n프로젝트별 요구 사항에 따라 `*.vue` 파일에 추가 커스텀 블록을 포함할 수 있습니다(예: `<docs>` 블록).\n커스텀 블록의 실제 예는 다음과 같습니다:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\n커스텀 블록 처리는 도구에 따라 다릅니다.\n자체 커스텀 블록 통합을 구축하려는 경우 자세한 내용은 [SFC 커스텀 블록 통합 도구 섹션](https://ko.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations)을 참고하십시오.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#커스텀-블럭" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#커스텀-블럭" + } + ] + } +]; +const globalAttributes$h = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$12 = { + version: version$h, + tags: tags$7, + globalAttributes: globalAttributes$h +}; + +const version$g = 1.1; +const tags$6 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<template>` de alto nível.\n\n- O conteúdo será extraído e passado ao `@vuw/compiler-dom`, pré-compilado dentro de funções de interpretação de JavaScript, e anexado ao componente exportado como sua opção `render`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<script setup>` (excluindo o `<script>` normal).\n\n- O programa é pré-processado e usado como a função `setup()` do componente, o que significa que será executado **para cada instância do componente**. Os vínculos de alto nível no `<script setup>` são automaticamente expostos ao modelo de marcação. Para mais detalhes, consulte a [documentação dedicada ao `<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Cada ficheiro `*.vue` poder conter no máximo um bloco `<script>` de alto nível (excluindo [`<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html)).\n\n- O programa é executado como um módulo de ECMAScript.\n\n- A **exportação padrão** deve ser um objeto de opções de componente da Vue, ou como um objeto simples ou como valor de retorno da [`defineComponent`](https://pt.vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<script setup>` (excluindo o `<script>` normal).\n\n- O programa é pré-processado e usado como a função `setup()` do componente, o que significa que será executado **para cada instância do componente**. Os vínculos de alto nível no `<script setup>` são automaticamente expostos ao modelo de marcação. Para mais detalhes, consulte a [documentação dedicada ao `<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nQuando um marcador `<style>` tiver o atributo `scoped`, o seu CSS apenas aplicar-se-á aos elementos do componente atual. Isto é semelhante ao encapsulamento de estilo encontrado no DOM de Sombra. Ele vem com algumas advertências, mas não exige quaisquer preenchimento de funcionalidade. Ele é alcançado usando PostCSS para transformar o seguinte:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\nNo seguinte:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### Elementos de Raiz do Componente Filho \n\nCom `scoped`, os estilos do componente pai não passarão para os componentes filhos. No entanto, um nó de raiz do componente filho será afetado por ambas CSS isolada do pai e a CSS isolada do filho. Isto é de propósito para que o pai possa estilizar o elemento de raiz filho para fins de disposição.\n\n### Seletores Profundos \n\nSe quisermos que um seletor nos estilos `scoped` torne-se \"profundo\", ou seja, afete componentes filho, podemos usar a pseudo-classe `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nO código acima será compilado para:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip DICA\nOs conteúdos do DOM criados com `v-html` não são afetados pelos estilos isolados, mas ainda podemos estilizá-los usando seletores profundos.\n:::\n\n### Seletores Inseridos \n\nPor padrão, os estilos isolados não afetam os conteúdos interpretados pelo `<slot/>`, uma vez que são considerados ser propriedade do componente pai que está a passá-los. Para explicitamente atingir o conteúdo da ranhura, usamos a pseudo-classe `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Seletores Globais \n\nSe quisermos que apenas uma regra aplique-se globalmente, podemos usar a pseudo-classe `:global` ao invés de criar um outro `<style>` (consulte o exemplo abaixo):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Misturando Estilos Locais e Globais \n\nNós também podemos incluir ambos estilos isolados e não isolados no mesmo componente:\n\n```vue\n<style>\n/* estilos globais */\n</style>\n\n<style scoped>\n/* estilos locais */\n</style>\n```\n\n### Dicas de Estilo Isolado \n\n- **Os estilos isolados não eliminam a necessidade de classes**. Por causa da maneira que os navegadores interpretam os vários seletores de CSS, `p { color: red }` será muitas vezes mais lento quando isolado (ou seja, quando combinado com um seletor de atributo). Se usarmos as classes (por exemplo, `.class-name`) ou identificadores (por exemplo, `#id-name`), tal como em `.example { color: red }`, então eliminamos virtualmente este impacto de desempenho.\n\n- **Temos que ter cuidado com os seletores de descendentes nos componentes recursivos!** Para um regara de CSS com o seletor `.a .b`, se o elemento que corresponde `.a` contiver um componente filho recursivo, então todos os `.b` neste componente filho serão correspondidos pela regra.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUm marcador `<style module>` é compilado como [Módulos de CSS](https://github.com/css-modules/css-modules) e expõe as classes de CSS resultantes ao componente como um objeto sob a chave de `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nAs classes resultantes têm o seu nome gerados com caracteres embaralhados para evitar colisões, alcançando o mesmo efeito de isolar o CSS apenas ao componente atual.\n\nConsulte a [especificação dos Módulos de CSS](https://github.com/css-modules/css-modules) por mais detalhes, tais como [exceções globais](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) e [composição](https://github.com/css-modules/css-modules#composition).\n\n### Nome de Injeção Personalizado \n\nNós podemos personalizar a chave da propriedade do objeto de classes injetadas dando ao atributo `module` um valor:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Uso com API de Composição \n\nAs classes injetadas podem ser acessadas na `setup()` e no `<script setup>` através da API `useCssModule`. Para os blocos `<style module>` com nomes de injeção personalizados, `useCssModule` aceita o valor do atributo `module` correspondente como primeiro argumento:\n\n```js\nimport { useCssModule } from 'vue'\n\n// dentro do âmbito de setup()...\n// padrão, retorna as classes do marcador `<style module>`\nuseCssModule()\n\n// personalizado, retorna as classes do marcador `<style module=\"classes\">`\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Um único ficheiro `*.vue` pode conter vários marcadores de `<style>`.\n\n- Um marcador `<style>` pode ter os atributos `scoped` ou `module` (consulte [Funcionalidades de Estilo do Componente de Ficheiro Único](https://pt.vuejs.org/api/sfc-css-features.html) por mais detalhes) para ajudar a encapsular os estilos ao componente atual. Vários marcadores de `<style>` com diferentes modos de encapsulamento podem ser misturados no mesmo componente.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Blocos Personalizados", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nOs blocos personalizados podem ser incluídos num ficheiro `*.vue` por qualquer necessidade específica do projeto, por exemplo um bloco `<docs>`. Alguns exemplos do mundo real de blocos personalizados incluem:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\nA manipulação dos blocos personalizados dependerá do ferramental - se quisermos construir as nossas próprias integrações de bloco personalizado, podemos consultar a [seção de ferramental de integrações de bloco personalizado do Componente de Ficheiro Único](https://pt.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) por mais detalhes.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#blocos-personalizados" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#blocos-personalizados" + } + ] + } +]; +const globalAttributes$g = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$13 = { + version: version$g, + tags: tags$6, + globalAttributes: globalAttributes$g +}; + +const version$f = 1.1; +const tags$5 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个顶层 `<template>` 块。\n\n- 语块包裹的内容将会被提取、传递给 `@vue/compiler-dom`,预编译为 JavaScript 渲染函数,并附在导出的组件上作为其 `render` 选项。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script setup>`。(不包括一般的 `<script>`)\n\n- 这个脚本块将被预处理为组件的 `setup()` 函数,这意味着它将**为每一个组件实例**都执行。`<script setup>` 中的顶层绑定都将自动暴露给模板。要了解更多细节,请看 [`<script setup>` 的专门文档](https://cn.vuejs.org/api/sfc-script-setup.html)。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script>` 块。(使用 [`<script setup>`](https://cn.vuejs.org/api/sfc-script-setup.html) 的情况除外)\n\n- 这个脚本代码块将作为 ES 模块执行。\n\n- **默认导出**应该是 Vue 的组件选项对象,可以是一个对象字面量或是 [defineComponent](https://cn.vuejs.org/api/general.html#definecomponent) 函数的返回值。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script setup>`。(不包括一般的 `<script>`)\n\n- 这个脚本块将被预处理为组件的 `setup()` 函数,这意味着它将**为每一个组件实例**都执行。`<script setup>` 中的顶层绑定都将自动暴露给模板。要了解更多细节,请看 [`<script setup>` 的专门文档](https://cn.vuejs.org/api/sfc-script-setup.html)。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\n当 `<style>` 标签带有 `scoped` attribute 的时候,它的 CSS 只会影响当前组件的元素,和 Shadow DOM 中的样式封装类似。使用时有一些注意事项,不过好处是不需要任何的 polyfill。它的实现方式是通过 PostCSS 将以下内容:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\n转换为:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### 子组件的根元素 \n\n使用 `scoped` 后,父组件的样式将不会渗透到子组件中。不过,子组件的根节点会同时被父组件的作用域样式和子组件的作用域样式影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。\n\n### 深度选择器 \n\n处于 `scoped` 样式中的选择器如果想要做更“深度”的选择,也即:影响到子组件,可以使用 `:deep()` 这个伪类:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\n上面的代码会被编译成:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\n通过 `v-html` 创建的 DOM 内容不会被作用域样式影响,但你仍然可以使用深度选择器来设置其样式。\n:::\n\n### 插槽选择器 \n\n默认情况下,作用域样式不会影响到 `<slot/>` 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 `:slotted` 伪类以明确地将插槽内容作为选择器的目标:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### 全局选择器 \n\n如果想让其中一个样式规则应用到全局,比起另外创建一个 `<style>`,可以使用 `:global` 伪类来实现 (看下面的代码):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### 混合使用局部与全局样式 \n\n你也可以在同一个组件中同时包含作用域样式和非作用域样式:\n\n```vue\n<style>\n/* 全局样式 */\n</style>\n\n<style scoped>\n/* 局部样式 */\n</style>\n```\n\n### 作用域样式须知 \n\n- **作用域样式并没有消除对 class 的需求**。由于浏览器渲染各种各样 CSS 选择器的方式,`p { color: red }` 结合作用域样式使用时 (即当与 attribute 选择器组合的时候) 会慢很多倍。如果你使用 class 或者 id 来替代,例如 `.example { color: red }`,那你几乎就可以避免性能的损失。\n\n- **小心递归组件中的后代选择器**!对于一个使用了 `.a .b` 选择器的样式规则来说,如果匹配到 `.a` 的元素包含了一个递归的子组件,那么所有的在那个子组件中的 `.b` 都会匹配到这条样式规则。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\n一个 `<style module>` 标签会被编译为 [CSS Modules](https://github.com/css-modules/css-modules) 并且将生成的 CSS class 作为 `$style` 对象暴露给组件:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\n得出的 class 将被哈希化以避免冲突,实现了同样的将 CSS 仅作用于当前组件的效果。\n\n参考 [CSS Modules spec](https://github.com/css-modules/css-modules) 以查看更多详情,例如 [global exceptions](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) 和 [composition](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition)。\n\n### 自定义注入名称 \n\n你可以通过给 `module` attribute 一个值来自定义注入 class 对象的属性名:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### 与组合式 API 一同使用 \n\n可以通过 `useCssModule` API 在 `setup()` 和 `<script setup>` 中访问注入的 class。对于使用了自定义注入名称的 `<style module>` 块,`useCssModule` 接收一个匹配的 `module` attribute 值作为第一个参数:\n\n```js\nimport { useCssModule } from 'vue'\n\n// 在 setup() 作用域中...\n// 默认情况下,返回 <style module> 的 class\nuseCssModule()\n\n// 具名情况下,返回 <style module=\"classes\"> 的 class\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件可以包含多个 `<style>` 标签。\n\n- 一个 `<style>` 标签可以使用 `scoped` 或 `module` attribute (查看 [SFC 样式功能](https://cn.vuejs.org/api/sfc-css-features.html)了解更多细节) 来帮助封装当前组件的样式。使用了不同封装模式的多个 `<style>` 标签可以被混合入同一个组件。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "自定义块", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n在一个 `*.vue` 文件中可以为任何项目特定需求使用额外的自定义块。举例来说,一个用作写文档的 `<docs>` 块。这里是一些自定义块的真实用例:\n\n- [Gridsome:`<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql:`<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n:`<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\n自定义块的处理需要依赖工具链。如果你想要在构建中集成你的自定义语块,请参见 [SFC 自定义块集成工具链指南](https://cn.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations)获取更多细节。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#自定义块" + } + ] + } +]; +const globalAttributes$f = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$14 = { + version: version$f, + tags: tags$5, + globalAttributes: globalAttributes$f +}; + +const version$e = 1.1; +const tags$4 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个顶层 `<template>` 块。\n\n- 语块包裹的内容将会被提取、传递给 `@vue/compiler-dom`,预编译为 JavaScript 渲染函数,并附在导出的组件上作为其 `render` 选项。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script setup>`。(不包括一般的 `<script>`)\n\n- 这个脚本块将被预处理为组件的 `setup()` 函数,这意味着它将**为每一个组件实例**都执行。`<script setup>` 中的顶层绑定都将自动暴露给模板。要了解更多细节,请看 [`<script setup>` 的专门文档](https://zh-hk.vuejs.org/api/sfc-script-setup.html)。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script>` 块。(使用 [`<script setup>`](https://zh-hk.vuejs.org/api/sfc-script-setup.html) 的情况除外)\n\n- 这个脚本代码块将作为 ES 模块执行。\n\n- **默认导出**应该是 Vue 的组件选项对象,可以是一个对象字面量或是 [defineComponent](https://zh-hk.vuejs.org/api/general.html#definecomponent) 函数的返回值。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件最多可以包含一个 `<script setup>`。(不包括一般的 `<script>`)\n\n- 这个脚本块将被预处理为组件的 `setup()` 函数,这意味着它将**为每一个组件实例**都执行。`<script setup>` 中的顶层绑定都将自动暴露给模板。要了解更多细节,请看 [`<script setup>` 的专门文档](https://zh-hk.vuejs.org/api/sfc-script-setup.html)。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\n当 `<style>` 标签带有 `scoped` attribute 的时候,它的 CSS 只会影响当前组件的元素,和 Shadow DOM 中的样式封装类似。使用时有一些注意事项,不过好处是不需要任何的 polyfill。它的实现方式是通过 PostCSS 将以下内容:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\n转换为:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### 子组件的根元素 \n\n使用 `scoped` 后,父组件的样式将不会渗透到子组件中。不过,子组件的根节点会同时被父组件的作用域样式和子组件的作用域样式影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。\n\n### 深度选择器 \n\n处于 `scoped` 样式中的选择器如果想要做更“深度”的选择,也即:影响到子组件,可以使用 `:deep()` 这个伪类:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\n上面的代码会被编译成:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\n通过 `v-html` 创建的 DOM 内容不会被作用域样式影响,但你仍然可以使用深度选择器来设置其样式。\n:::\n\n### 插槽选择器 \n\n默认情况下,作用域样式不会影响到 `<slot/>` 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 `:slotted` 伪类以明确地将插槽内容作为选择器的目标:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### 全局选择器 \n\n如果想让其中一个样式规则应用到全局,比起另外创建一个 `<style>`,可以使用 `:global` 伪类来实现 (看下面的代码):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### 混合使用局部与全局样式 \n\n你也可以在同一个组件中同时包含作用域样式和非作用域样式:\n\n```vue\n<style>\n/* 全局样式 */\n</style>\n\n<style scoped>\n/* 局部样式 */\n</style>\n```\n\n### 作用域样式须知 \n\n- **作用域样式并没有消除对 class 的需求**。由于浏览器渲染各种各样 CSS 选择器的方式,`p { color: red }` 结合作用域样式使用时 (即当与 attribute 选择器组合的时候) 会慢很多倍。如果你使用 class 或者 id 来替代,例如 `.example { color: red }`,那你几乎就可以避免性能的损失。\n\n- **小心递归组件中的后代选择器**!对于一个使用了 `.a .b` 选择器的样式规则来说,如果匹配到 `.a` 的元素包含了一个递归的子组件,那么所有的在那个子组件中的 `.b` 都会匹配到这条样式规则。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\n一个 `<style module>` 标签会被编译为 [CSS Modules](https://github.com/css-modules/css-modules) 并且将生成的 CSS class 作为 `$style` 对象暴露给组件:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\n得出的 class 将被哈希化以避免冲突,实现了同样的将 CSS 仅作用于当前组件的效果。\n\n参考 [CSS Modules spec](https://github.com/css-modules/css-modules) 以查看更多详情,例如 [global exceptions](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) 和 [composition](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition)。\n\n### 自定义注入名称 \n\n你可以通过给 `module` attribute 一个值来自定义注入 class 对象的属性名:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### 与组合式 API 一同使用 \n\n可以通过 `useCssModule` API 在 `setup()` 和 `<script setup>` 中访问注入的 class。对于使用了自定义注入名称的 `<style module>` 块,`useCssModule` 接收一个匹配的 `module` attribute 值作为第一个参数:\n\n```js\nimport { useCssModule } from 'vue'\n\n// 在 setup() 作用域中...\n// 默认情况下, 返回 <style module> 的 class\nuseCssModule()\n\n// 具名情况下, 返回 <style module=\"classes\"> 的 class\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- 每个 `*.vue` 文件可以包含多个 `<style>` 标签。\n\n- 一个 `<style>` 标签可以使用 `scoped` 或 `module` attribute (查看 [SFC 样式功能](https://zh-hk.vuejs.org/api/sfc-css-features.html)了解更多细节) 来帮助封装当前组件的样式。使用了不同封装模式的多个 `<style>` 标签可以被混合入同一个组件。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "自定义块", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n在一个 `*.vue` 文件中可以为任何项目特定需求使用额外的自定义块。举例来说,一个用作写文档的 `<docs>` 块。这里是一些自定义块的真实用例:\n\n- [Gridsome:`<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql:`<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n:`<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\n自定义块的处理需要依赖工具链。如果你想要在构建中集成你的自定义语块,请参见 [SFC 自定义块集成工具链指南](https://zh-hk.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations)获取更多细节。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#自定义块" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#自定义块" + } + ] + } +]; +const globalAttributes$e = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\n代码块可以使用 `lang` 这个 attribute 来声明预处理器语言,最常见的用例就是在 `<script>` 中使用 TypeScript:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` 在任意块上都能使用,比如我们可以在 `<style>` 标签中使用 [Sass](https://sass-lang.com/) 或是 `<template>` 中使用 [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n注意对不同预处理器的集成会根据你所使用的工具链而有所不同,具体细节请查看相应的工具链文档来确认:\n\n- [Vite](https://cn.vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/zh/guide/css.html#%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/zh/guide/pre-processors.html#%E4%BD%BF%E7%94%A8%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\n如果你更喜欢将 `*.vue` 组件分散到多个文件中,可以为一个语块使用 `src` 这个 attribute 来导入一个外部文件:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n请注意 `src` 导入和 JS 模块导入遵循相同的路径解析规则,这意味着:\n\n- 相对路径需要以 `./` 开头\n- 你也可以从 npm 依赖中导入资源\n\n```vue\n<!-- 从所安装的 \"todomvc-app-css\" npm 包中导入一个文件 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 导入对自定义语块也同样适用:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$15 = { + version: version$e, + tags: tags$4, + globalAttributes: globalAttributes$e +}; + +const version$d = 1.1; +const tags$3 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferisci suddividere i tuoi componenti `*.vue` in file multipli, puoi utilizzare l'attributo `src` per importare un file esterno per un blocco di linguaggio:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nTieni presente che gli import `src` seguono le stesse regole di risoluzione del percorso delle richieste dei moduli webpack, il che significa:\n\n- I percorsi relativi devono iniziare con `./`\n- Puoi importare risorse tramite dipendenze npm:\n\n```vue\n<!-- importa un file dal pacchetto npm \"todomvc-app-css\" installato -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nGli import `src` funzionano anche con blocchi custom, per esempio:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nI blocchi possono dichiarare linguaggi di pre-processore utilizzando l'attributo `lang`. Il caso più comune è l'utilizzo di TypeScript per il blocco `<script>`:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` può essere applicato su ogni blocco - per esempio possiamo usare `<style>` con [Sass](https://sass-lang.com/) e `<template>` con [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nTieni presente che l'integrazione con diversi pre-processori può variare in base alla catena di strumenti utilizzata. Consulta la rispettiva documentazione per ulteriori esempi:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Ogni file `*.vue` può contenere massimo un blocco `<template>`.\n\n- I suoi contenuti verranno estratti e passati al `@vue/compiler-dom`, pre-compilati in render function di JavaScript, e collegati al componente esportato come sua opzione`render`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferisci suddividere i tuoi componenti `*.vue` in file multipli, puoi utilizzare l'attributo `src` per importare un file esterno per un blocco di linguaggio:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nTieni presente che gli import `src` seguono le stesse regole di risoluzione del percorso delle richieste dei moduli webpack, il che significa:\n\n- I percorsi relativi devono iniziare con `./`\n- Puoi importare risorse tramite dipendenze npm:\n\n```vue\n<!-- importa un file dal pacchetto npm \"todomvc-app-css\" installato -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nGli import `src` funzionano anche con blocchi custom, per esempio:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nI blocchi possono dichiarare linguaggi di pre-processore utilizzando l'attributo `lang`. Il caso più comune è l'utilizzo di TypeScript per il blocco `<script>`:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` può essere applicato su ogni blocco - per esempio possiamo usare `<style>` con [Sass](https://sass-lang.com/) e `<template>` con [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nTieni presente che l'integrazione con diversi pre-processori può variare in base alla catena di strumenti utilizzata. Consulta la rispettiva documentazione per ulteriori esempi:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- Ogni file `*.vue` può contenere al massimo un blocco `<script setup>` (escludendo lo `<script>` classico).\n\n- Lo script viene pre-processato e utilizzato come la funzione `setup()` del componente, il che significa che verrà eseguito **per ogni istanza del componente**. Le associazioni al livello superiore in `<script setup>` vengono automaticamente esposte al template. Per ulteriori dettagli, consulta la [documentazione dedicata a `<script setup>`](https://it.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Ogni file `*.vue` può contenere al massimo un blocco `<script>` (escludendo [`<script setup>`](https://it.vuejs.org/api/sfc-script-setup.html)).\n\n- Lo script viene eseguito come un ES Module.\n\n- Il **default export** dovrebbe essere un oggetto di opzioni del componente Vue, sia come oggetto semplice che come valore restituito da [defineComponent](https://it.vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- Ogni file `*.vue` può contenere al massimo un blocco `<script setup>` (escludendo lo `<script>` classico).\n\n- Lo script viene pre-processato e utilizzato come la funzione `setup()` del componente, il che significa che verrà eseguito **per ogni istanza del componente**. Le associazioni al livello superiore in `<script setup>` vengono automaticamente esposte al template. Per ulteriori dettagli, consulta la [documentazione dedicata a `<script setup>`](https://it.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferisci suddividere i tuoi componenti `*.vue` in file multipli, puoi utilizzare l'attributo `src` per importare un file esterno per un blocco di linguaggio:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nTieni presente che gli import `src` seguono le stesse regole di risoluzione del percorso delle richieste dei moduli webpack, il che significa:\n\n- I percorsi relativi devono iniziare con `./`\n- Puoi importare risorse tramite dipendenze npm:\n\n```vue\n<!-- importa un file dal pacchetto npm \"todomvc-app-css\" installato -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nGli import `src` funzionano anche con blocchi custom, per esempio:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nI blocchi possono dichiarare linguaggi di pre-processore utilizzando l'attributo `lang`. Il caso più comune è l'utilizzo di TypeScript per il blocco `<script>`:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` può essere applicato su ogni blocco - per esempio possiamo usare `<style>` con [Sass](https://sass-lang.com/) e `<template>` con [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nTieni presente che l'integrazione con diversi pre-processori può variare in base alla catena di strumenti utilizzata. Consulta la rispettiva documentazione per ulteriori esempi:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nQuando un tag `<style>` ha l'attributo `scoped`, il suo CSS verrà applicato solo agli elementi del componente corrente. Questo è simile all'incapsulamento dello stile presente in Shadow DOM. Ha alcune limitazioni, ma non richiede alcun polyfill. Ciò è ottenuto utilizzando PostCSS per trasformare quanto segue:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">ciao</div>\n</template>\n```\n\nIn questo:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>ciao</div>\n</template>\n```\n\n### Elementi Root dei componenti figli \n\nCon l'attributo `scoped`, gli stili del componente genitore non si propagheranno nei componenti figlio. Tuttavia, il nodo radice di un componente figlio sarà influenzato sia dagli stili scoped del genitore che da quelli del figlio. Questo è progettato in modo che il genitore possa stilizzare l'elemento radice del figlio per scopi di layout.\n\n### Selettori in profondità \n\nSe desideri che un selettore negli stili `scoped` abbia effetto anche sui componenti figlio, puoi utilizzare la pseudo-classe `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nIl codice sopra verrà compilato in:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\nIl contenuto DOM creato con `v-html` non è influenzato dagli stili scoped, ma puoi comunque stilizzarlo utilizzando i selettori deep.\n:::\n\n### Selettori degli slot \n\nPer impostazione predefinita, gli stili scoped non influenzano il contenuto renderizzato da `<slot/>`, poiché sono considerati di proprietà del componente genitore che li passa. Per puntare in modo esplicito al contenuto dello slot, utilizza la pseudo-classe `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Selettori globali \n\nSe vuoi applicare una regola globalmente, puoi utilizzare la pseudo-classe `:global` anziché creare un altro blocco `<style>` (vedi sotto):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Mixare stili locali e globali \n\nPuoi anche includere stili sia scoped che non scoped nello stesso componente:\n\n```vue\n<style>\n/* global styles */\n</style>\n\n<style scoped>\n/* local styles */\n</style>\n```\n\n### Tips per lo style scoped \n\n- **Gli stili scoped non eliminano la necessità delle classi.**. A causa del modo in cui i browser interpretano i diversi selettori CSS, `p { color: red }` sarà molto più lento quando è scoped (ossia quando è combinato con un selettore di attributo). Se invece usi classi o id, come ad esempio `.example { color: red }`, eliminerai praticamente questo impatto sulle prestazioni.\n\n- **Fai attenzione ai selettori discendenti nei componenti ricorsivi!** Per una regola CSS con il selettore `.a .b`, se l'elemento che corrisponde a `.a` contiene un componente figlio ricorsivo, allora a tutti i `.b` in quel componente figlio verrà applicata quella regola.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nUn tag `<style module>` viene compilato come [moduli CSS](https://github.com/css-modules/css-modules) ed espone le classi CSS risultanti al componente come un oggetto con chiave `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">Questo dovrebbe essere rosso</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nLe classi risultanti sono hashate per evitare collisioni, ottenendo lo stesso effetto di delimitazione degli stili CSS per il solo componente corrente.\n\nFai riferimento alle [spec dei moduli CSS](https://github.com/css-modules/css-modules) per ulteriori dettagli come le [eccezioni globali](https://github.com/css-modules/css-modules#exceptions) e [composition](https://github.com/css-modules/css-modules#composition).\n\n### Nome Personalizzato per Inject \n\nPuoi personalizzare la chiave di proprietà dell'oggetto delle classi iniettate assegnando un valore all'attributo `module`:\n\n```vue\n<template>\n <p :class=\"classes.red\">rosso</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Utilizzo con Composition API \n\nPuoi avere accesso alle classi iniettate in `setup()` e `<script setup>` via l'API `useCssModule`. Per i blocchi `<style module>` con nomi di iniezione custom, `useCssModule` accetta il valore corrispondente dell'attributo `module` come primo argomento:\n\n```js\nimport { useCssModule } from 'vue'\n\n// dentro lo scope setup()...\n// default, ritorna classi per <style module>\nuseCssModule()\n\n// nominate, ritorna classi per <style module=\"classes\">\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Un singolo file `*.vue` può contenere più tag `<style>`.\n\n- Un tag `<style>` può avere gli attributi `scoped` o `module` (guarda [Funzionalità CSS dei SFC](https://it.vuejs.org/api/sfc-css-features.html) per maggiori dettagli) per aiutare ad incapsulare gli stili all'interno del componente corrente. È possibile mescolare più tag `<style>` con diverse modalità di incapsulamento nello stesso componente.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Blocchi custom", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferisci suddividere i tuoi componenti `*.vue` in file multipli, puoi utilizzare l'attributo `src` per importare un file esterno per un blocco di linguaggio:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nTieni presente che gli import `src` seguono le stesse regole di risoluzione del percorso delle richieste dei moduli webpack, il che significa:\n\n- I percorsi relativi devono iniziare con `./`\n- Puoi importare risorse tramite dipendenze npm:\n\n```vue\n<!-- importa un file dal pacchetto npm \"todomvc-app-css\" installato -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nGli import `src` funzionano anche con blocchi custom, per esempio:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nBlocchi personalizzati aggiuntivi possono essere inclusi in un file `*.vue` per soddisfare esigenze specifiche del progetto, ad esempio un blocco `<docs>`. Alcuni esempi concreti di blocchi personalizzati includono:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\nLa gestione dei blocchi personalizzati dipenderà dagli strumenti utilizzati. Se desideri creare le tue integrazioni personalizzate per i blocchi, consulta la [sezione degli strumenti per integrazioni di blocchi personalizzati negli SFC](https://it.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) per ulteriori dettagli.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#blocchi-custom" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#blocchi-custom" + } + ] + } +]; +const globalAttributes$d = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nI blocchi possono dichiarare linguaggi di pre-processore utilizzando l'attributo `lang`. Il caso più comune è l'utilizzo di TypeScript per il blocco `<script>`:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` può essere applicato su ogni blocco - per esempio possiamo usare `<style>` con [Sass](https://sass-lang.com/) e `<template>` con [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nTieni presente che l'integrazione con diversi pre-processori può variare in base alla catena di strumenti utilizzata. Consulta la rispettiva documentazione per ulteriori esempi:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nSe preferisci suddividere i tuoi componenti `*.vue` in file multipli, puoi utilizzare l'attributo `src` per importare un file esterno per un blocco di linguaggio:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nTieni presente che gli import `src` seguono le stesse regole di risoluzione del percorso delle richieste dei moduli webpack, il che significa:\n\n- I percorsi relativi devono iniziare con `./`\n- Puoi importare risorse tramite dipendenze npm:\n\n```vue\n<!-- importa un file dal pacchetto npm \"todomvc-app-css\" installato -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nGli import `src` funzionano anche con blocchi custom, per esempio:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$16 = { + version: version$d, + tags: tags$3, + globalAttributes: globalAttributes$d +}; + +const version$c = 1.1; +const tags$2 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nPokud dáváte přednost rozdělení vašich `*.vue` komponent do více souborů, můžete použít atribut `src` pro import externího souboru do příslušného bloku jazyka:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nPozor na to, že pro importy pomocí `src` platí stejná pravidla pro zadávání cest jako pro požadavky na webpack moduly, což znamená:\n\n- Relativní cesty musí začínat s `./`\n- Můžete importovat zdroje z npm závislostí:\n\n```vue\n<!-- import souboru z nainstalovaného npm balíčku \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` importy fungují í s vlastními bloky, např.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBloky mohou pomocí atributu `lang` deklarovat programovací jazyk, v němž má proběhnout pre-processing. Nejběžnější případ je použití TypeScriptu pro blok `<script>`:\n\n```html\n<script lang=\"ts\">\n // použití TypeScriptu\n</script>\n```\n\n`lang` lze použít na jakýkoli blok - například můžeme použít `<style>` se [Sass](https://sass-lang.com/) a `<template>` + [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nDejte pozor, že integrace s různými pre-procesory se může lišit podle zvolené sady softwarových nástrojů. Pro příklady se podívejte do příslušné dokumentace:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Každý soubor `*.vue` může obsahovat maximálně jeden blok `<template>` nejvyšší úrovně.\n\n- Obsah bude extrahován a předán do `@vue/compiler-dom`, předkompilován do JavaScriptových funkcí pro vykreslování a připojen k exportované komponentě jako její možnost (option) `render`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nPokud dáváte přednost rozdělení vašich `*.vue` komponent do více souborů, můžete použít atribut `src` pro import externího souboru do příslušného bloku jazyka:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nPozor na to, že pro importy pomocí `src` platí stejná pravidla pro zadávání cest jako pro požadavky na webpack moduly, což znamená:\n\n- Relativní cesty musí začínat s `./`\n- Můžete importovat zdroje z npm závislostí:\n\n```vue\n<!-- import souboru z nainstalovaného npm balíčku \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` importy fungují í s vlastními bloky, např.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBloky mohou pomocí atributu `lang` deklarovat programovací jazyk, v němž má proběhnout pre-processing. Nejběžnější případ je použití TypeScriptu pro blok `<script>`:\n\n```html\n<script lang=\"ts\">\n // použití TypeScriptu\n</script>\n```\n\n`lang` lze použít na jakýkoli blok - například můžeme použít `<style>` se [Sass](https://sass-lang.com/) a `<template>` + [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nDejte pozor, že integrace s různými pre-procesory se může lišit podle zvolené sady softwarových nástrojů. Pro příklady se podívejte do příslušné dokumentace:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- Každý soubor `*.vue` může obsahovat maximálně jeden blok `<script setup>` (s výjimkou normálního `<script>`).\n\n- Skript je předzpracován a používán jako `setup()` funkce komponenty, což znamená, že bude spuštěn **pro každou instanci komponenty**. Hlavní (top-level) vazby uvnitř `<script setup>` jsou automaticky vystaveny šabloně. Pro více informací se podívejte na [samostatnou dokumentaci pro `<script setup>`](https://cs.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Každý soubor `*.vue` může obsahovat maximálně jeden blok `<script>` (s výjimkou [`<script setup>`](https://cs.vuejs.org/api/sfc-script-setup.html)).\n\n- Skript je spuštěn jako ES modul.\n\n- **Default export** by měl být objekt s možnostmi Vue komponenty, buď jako prostý objekt nebo jako návratová hodnota funkce [defineComponent](https://cs.vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- Každý soubor `*.vue` může obsahovat maximálně jeden blok `<script setup>` (s výjimkou normálního `<script>`).\n\n- Skript je předzpracován a používán jako `setup()` funkce komponenty, což znamená, že bude spuštěn **pro každou instanci komponenty**. Hlavní (top-level) vazby uvnitř `<script setup>` jsou automaticky vystaveny šabloně. Pro více informací se podívejte na [samostatnou dokumentaci pro `<script setup>`](https://cs.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nPokud dáváte přednost rozdělení vašich `*.vue` komponent do více souborů, můžete použít atribut `src` pro import externího souboru do příslušného bloku jazyka:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nPozor na to, že pro importy pomocí `src` platí stejná pravidla pro zadávání cest jako pro požadavky na webpack moduly, což znamená:\n\n- Relativní cesty musí začínat s `./`\n- Můžete importovat zdroje z npm závislostí:\n\n```vue\n<!-- import souboru z nainstalovaného npm balíčku \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` importy fungují í s vlastními bloky, např.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBloky mohou pomocí atributu `lang` deklarovat programovací jazyk, v němž má proběhnout pre-processing. Nejběžnější případ je použití TypeScriptu pro blok `<script>`:\n\n```html\n<script lang=\"ts\">\n // použití TypeScriptu\n</script>\n```\n\n`lang` lze použít na jakýkoli blok - například můžeme použít `<style>` se [Sass](https://sass-lang.com/) a `<template>` + [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nDejte pozor, že integrace s různými pre-procesory se může lišit podle zvolené sady softwarových nástrojů. Pro příklady se podívejte do příslušné dokumentace:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nKdyž má sekce `<style>` atribut `scoped`, její CSS se aplikuje pouze na prvky aktuální komponenty. To je podobné zapouzdření stylů v Shadow DOM. S tím jsou spojena některá omezení, ale nejsou vyžadovány žádné polyfills. Toho se dosáhne pomocí PostCSS transformace následujícího kódu:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">ahoj</div>\n</template>\n```\n\nNa toto:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>ahoj</div>\n</template>\n```\n\n### Root elementy komponent potomka\n\nSe `scoped` atributem nebudou styly komponenty rodiče prosakovat do komponent potomků. Nicméně root element komponenty potomka bude ovlivněn jak rodičovským `scoped` CSS, tak vlastním `scoped` CSS. Toto je záměr, aby rodič mohl stylovat root element svého potomka pro účely rozvržení (layout).\n\n### Deep selektory \n\nPokud chcete, aby selektor ve `scoped` stylech byl „hluboký“ a ovlivňoval i komponenty potomků, můžete použít pseudotřídu `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nVýše uvedený kód se zkompiluje na:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\nObsah DOM vytvořený pomocí `v-html` není ovlivněn `scoped` styly, ale pomocí deep selektorů jej stále lze stylovat.\n:::\n\n### Selektory pro sloty \n\nVe výchozím nastavení `scoped` styly neovlivňují obsah vykreslený pomocí `<slot/>`, protože ty jsou považovány za vlastnictví komponenty rodiče, která je předává. Pro explicitní cílení na obsah slotu použijte pseudotřídu `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Globální selektory \n\nPokud chcete, aby se pravidlo aplikovalo globálně, můžete místo vytváření dalšího `<style>` použít pseudotřídu `:global` (viz níže):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Kombinace lokálních a globálních stylů \n\nMůžete také do stejné komponenty zahrnout jak lokální, tak globální styly:\n\n```vue\n<style>\n/* globální styly */\n</style>\n\n<style scoped>\n/* lokální styly */\n</style>\n```\n\n### Tipy pro lokální styly \n\n- **Lokální styly neodstraňují potřebu tříd**. Kvůli způsobu, jakým prohlížeče vyhodnocují různé CSS selektory, bude `p { color: red }` mnohem pomalejší, když je použit s atributovým selektorem. Pokud místo toho použijete třídy nebo id, například `.example { color: red }`, prakticky tím tento problém výkonosti eliminujete.\n\n- **Buďte opatrní s selektory potomků v rekurzivních komponentách!** Pro CSS pravidlo se selektorem `.a .b`, pokud prvek odpovídající `.a` obsahuje rekurzivní komponentu potomka, pak všechny `.b` v této komponentě potomka budou pravidlu odpovídat.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nTag `<style module>` je kompilován jako [CSS moduly](https://github.com/css-modules/css-modules) a vystavuje výsledné CSS třídy komponenty jako objekt pod klíčem `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">Toto by mělo být červené</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nVýsledné třídy jsou hashovány, aby se předešlo kolizím, čímž se dosáhne stejného efektu omezování platnosti CSS pouze na aktuální komponentu.\n\nPro více podrobností, jako jsou [globální výjimky](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) a [kompozice](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition), se podívejte na [specifikaci CSS modulů](https://github.com/css-modules/css-modules).\n\n### Vlastní název implementovaných tříd \n\nMůžete přizpůsobit klíč vlastnosti implementovaného objektu tříd tím, že atributu `module` přiřadíte hodnotu:\n\n```vue\n<template>\n <p :class=\"classes.red\">červená</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Použití s Composition API \n\nNa implementované třídy lze přistupovat v `setup()` a `<script setup>` pomocí API `useCssModule`. Pro bloky `<style module>` s vlastními implementovanými názvy přijímá `useCssModule` odpovídající hodnotu atributu `module` jako první argument:\n\n```js\nimport { useCssModule } from 'vue'\n\n// uvnitř scope setup()...\n// výchozí, vrací třídy pro <style module>\nuseCssModule()\n\n// pojmenovaný, vrací třídy pro <style module=\"classes\">\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Každý soubor `*.vue` může obsahovat více bloků `<style>`.\n\n- Element `<style>` může mít atributy `scoped` nebo `module` (podrobnosti naleznete na stránce [CSS funkce pro SFC](https://cs.vuejs.org/api/sfc-css-features.html)), které pomáhají zapouzdřit styly do aktuální komponenty. V jedné komponentě mohou být smíchány různé značky `<style>` s různými režimy zapouzdření.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Vlastní bloky", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nPokud dáváte přednost rozdělení vašich `*.vue` komponent do více souborů, můžete použít atribut `src` pro import externího souboru do příslušného bloku jazyka:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nPozor na to, že pro importy pomocí `src` platí stejná pravidla pro zadávání cest jako pro požadavky na webpack moduly, což znamená:\n\n- Relativní cesty musí začínat s `./`\n- Můžete importovat zdroje z npm závislostí:\n\n```vue\n<!-- import souboru z nainstalovaného npm balíčku \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` importy fungují í s vlastními bloky, např.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nDo souboru `*.vue` můžete navíc přidat další vlastní bloky pro potřeby konkrétního projektu, například blok `<docs>`. Některé příklady vlastních bloků z reálného světa zahrnují:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\nZpracování vlastních bloků závisí na nástrojích - pokud chcete vytvořit vlastní integrace, podívejte se pro další informace na sekci [Nástroje pro integraci vlastních SFC bloků](https://cs.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#vlastní-bloky" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#vlastní-bloky" + } + ] + } +]; +const globalAttributes$c = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nBloky mohou pomocí atributu `lang` deklarovat programovací jazyk, v němž má proběhnout pre-processing. Nejběžnější případ je použití TypeScriptu pro blok `<script>`:\n\n```html\n<script lang=\"ts\">\n // použití TypeScriptu\n</script>\n```\n\n`lang` lze použít na jakýkoli blok - například můžeme použít `<style>` se [Sass](https://sass-lang.com/) a `<template>` + [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nDejte pozor, že integrace s různými pre-procesory se může lišit podle zvolené sady softwarových nástrojů. Pro příklady se podívejte do příslušné dokumentace:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nPokud dáváte přednost rozdělení vašich `*.vue` komponent do více souborů, můžete použít atribut `src` pro import externího souboru do příslušného bloku jazyka:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nPozor na to, že pro importy pomocí `src` platí stejná pravidla pro zadávání cest jako pro požadavky na webpack moduly, což znamená:\n\n- Relativní cesty musí začínat s `./`\n- Můžete importovat zdroje z npm závislostí:\n\n```vue\n<!-- import souboru z nainstalovaného npm balíčku \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` importy fungují í s vlastními bloky, např.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$17 = { + version: version$c, + tags: tags$2, + globalAttributes: globalAttributes$c +}; + +const version$b = 1.1; +const tags$1 = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nЕсли вы предпочитаете разделять компоненты `*.vue` на несколько файлов, вы можете использовать атрибут `src` для импорта внешнего файла для языковой секции:\n\n```vue\n<template src=\"./template\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nИмпорты через `src` следуют тем же правилам разрешения путей, что и запросы модулей webpack, что означает:\n\n- Относительные пути должны начинаться с `./`\n- Можно импортировать ресурсы из зависимостей npm:\n\n```vue\n<!-- импорт файла из установленного npm-пакета \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nИмпорты через `src` также работают с пользовательскими секциями, например:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nВ секциях можно объявить язык пре-процессора с помощью атрибута `lang`. Наиболее распространённый случай — использование TypeScript для секции `<script>`:\n\n```html\n<script lang=\"ts\">\n // используем TypeScript\n</script>\n```\n\nАтрибут `lang` можно применить к любой секции — например можно использовать [SASS](https://sass-lang.com/) в секции `<style>` и [Pug](https://pugjs.org/api/getting-started.html) в секции `<template>`:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nОбратите внимание, что интеграция с различными пре-процессорами может отличаться в зависимости от инструментария. Примеры можно найти в соответствующей документации:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- В каждом файле `*.vue` может быть не более одной секции `<template>` верхнего уровня.\n\n- Содержимое будет извлечено и передано в `@vue/compiler-dom`, где предварительно скомпилируется в render-функцию JavaScript и будет присоединено к экспортируемому компоненту в качестве его опции `render`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nЕсли вы предпочитаете разделять компоненты `*.vue` на несколько файлов, вы можете использовать атрибут `src` для импорта внешнего файла для языковой секции:\n\n```vue\n<template src=\"./template\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nИмпорты через `src` следуют тем же правилам разрешения путей, что и запросы модулей webpack, что означает:\n\n- Относительные пути должны начинаться с `./`\n- Можно импортировать ресурсы из зависимостей npm:\n\n```vue\n<!-- импорт файла из установленного npm-пакета \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nИмпорты через `src` также работают с пользовательскими секциями, например:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nВ секциях можно объявить язык пре-процессора с помощью атрибута `lang`. Наиболее распространённый случай — использование TypeScript для секции `<script>`:\n\n```html\n<script lang=\"ts\">\n // используем TypeScript\n</script>\n```\n\nАтрибут `lang` можно применить к любой секции — например можно использовать [SASS](https://sass-lang.com/) в секции `<style>` и [Pug](https://pugjs.org/api/getting-started.html) в секции `<template>`:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nОбратите внимание, что интеграция с различными пре-процессорами может отличаться в зависимости от инструментария. Примеры можно найти в соответствующей документации:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- В каждом файле `*.vue` может быть не более одной секции`<script setup>` (не считая обычной секции `<script>`).\n\n- Секция предварительно обрабатывается и используется в качестве функции компонента `setup()`, то есть он будет выполняться **для каждого экземпляра компонента**. Привязки верхнего уровня в `<script setup>` автоматически становятся доступны шаблону. Подробнее об этом см. на [специальной странице документации про `<script setup>`](https://ru.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Каждый файл `*.vue` может иметь не более одной секции `<script>` (за исключением случаев использования [`<script setup>`](https://ru.vuejs.org/api/sfc-script-setup.html)).\n\n- Скрипт выполняется как ES-модуль.\n\n- **Экспорт по умолчанию** должен быть объектом опций компонента Vue, либо обычным объектом, либо значением, которое возвращает [defineComponent](https://ru.vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- В каждом файле `*.vue` может быть не более одной секции`<script setup>` (не считая обычной секции `<script>`).\n\n- Секция предварительно обрабатывается и используется в качестве функции компонента `setup()`, то есть он будет выполняться **для каждого экземпляра компонента**. Привязки верхнего уровня в `<script setup>` автоматически становятся доступны шаблону. Подробнее об этом см. на [специальной странице документации про `<script setup>`](https://ru.vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nЕсли вы предпочитаете разделять компоненты `*.vue` на несколько файлов, вы можете использовать атрибут `src` для импорта внешнего файла для языковой секции:\n\n```vue\n<template src=\"./template\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nИмпорты через `src` следуют тем же правилам разрешения путей, что и запросы модулей webpack, что означает:\n\n- Относительные пути должны начинаться с `./`\n- Можно импортировать ресурсы из зависимостей npm:\n\n```vue\n<!-- импорт файла из установленного npm-пакета \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nИмпорты через `src` также работают с пользовательскими секциями, например:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nВ секциях можно объявить язык пре-процессора с помощью атрибута `lang`. Наиболее распространённый случай — использование TypeScript для секции `<script>`:\n\n```html\n<script lang=\"ts\">\n // используем TypeScript\n</script>\n```\n\nАтрибут `lang` можно применить к любой секции — например можно использовать [SASS](https://sass-lang.com/) в секции `<style>` и [Pug](https://pugjs.org/api/getting-started.html) в секции `<template>`:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nОбратите внимание, что интеграция с различными пре-процессорами может отличаться в зависимости от инструментария. Примеры можно найти в соответствующей документации:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nКогда секция `<style>` имеет атрибут `scoped`, его CSS будет применяться только к элементам текущего компонента. Это похоже на инкапсуляцию стилей в Shadow DOM. Есть некоторые оговорки, но зато не требуется никаких полифилов. Это достигается путем использования PostCSS для преобразования следующего кода:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">привет</div>\n</template>\n```\n\nВ этот код:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>привет</div>\n</template>\n```\n\n### Корневые элементы дочернего компонента \n\nПри использовании `scoped` стили родительского компонента не будут проникать в дочерние компоненты. Однако корневой элемент дочернего компонента будет подвержен влиянию как родительского, так и дочернего CSS. Это сделано специально для того, чтобы родитель мог стилизовать корневой элемент дочернего компонента в целях вёрстки.\n\n### Глубокие селекторы \n\nЕсли требуется, чтобы селектор в `scoped` стилях был \"глубоким\", т.е. влиял на дочерние компоненты, можно использовать псевдокласс `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nКод выше будет скомпилирован в:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip Совет\nСодержимое DOM, созданное при помощи `v-html`, не подвержено влиянию стилей c ограниченной областью действия, но его все же можно стилизовать с помощью глубоких селекторов.\n:::\n\n### Селекторы слотов \n\nПо умолчанию стили с ограниченной областью действия не влияют на содержимое, отображаемое с помощью `<slot/>`, так как считается, что оно принадлежит родительскому компоненту, который его передаёт. Чтобы явно указать на содержимое слота, используйте псевдокласс `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Глобальные селекторы \n\nЕсли необходимо, чтобы одно правило применялось глобально, можно использовать псевдокласс `:global`, а не создавать еще одну секцию `<style>` (см. ниже):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Сочетание локальных и глобальных стилей \n\nВ одном компоненте можно вместе использовать как scoped, так и обычные секции style:\n\n```vue\n<style>\n/* глобальные стили */\n</style>\n\n<style scoped>\n/* локальные стили */\n</style>\n```\n\n### Советы по использованию стилей с ограниченной областью действия \n\n- **Стили с ограниченной областью действия не избавляют от необходимости использования классов**. Ввиду того, как браузеры отрисовывают различные CSS-селекторы, `p { color: red }` будет работать гораздо медленнее при использовании стилей с ограниченной областью действия (т.е. в сочетании с селектором атрибутов). Если вместо этого использовать классы или идентификаторы, как, например, в `.example { color: red }`, то это практически исключает снижение производительности.\n\n- **Будьте осторожны с селекторами потомков в рекурсивных компонентах!** Для правила CSS с селектором `.a .b`, если элемент, соответствующий `.a`, содержит рекурсивный дочерний компонент, то все `.b` в этом дочернем компоненте будут соответствовать правилу.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nСекция `<style module>` компилируется как [CSS модуль](https://github.com/css-modules/css-modules) и объявляет результирующие CSS-классы компоненту в виде объекта под ключом `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">Это должно быть красным</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nПолученные классы хэшируются во избежание коллизий, что позволяет добиться того же эффекта, что и при выборе CSS с ограниченной областью действия только для текущего компонента.\n\nОбратитесь к [спецификации CSS модулей](https://github.com/css-modules/css-modules) для получения более подробной информации, такой как [глобальные исключения](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) и [композиция](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition).\n\n### Внедрение пользовательского имени \n\nМожно настроить ключ свойства объекта внедряемых классов, указав значение атрибуту `module`:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Использование с Composition API \n\nДоступ к внедряемым классам можно получить в `setup()` и `<script setup>` через API `useCssModule`. Для секций `<style module>` с пользовательским внедряемым именем, `useCssModule` принимает в качестве первого аргумента соответствующее значение атрибута `module`:\n\n```js\nimport { useCssModule } from 'vue'\n\n// внутри области видимости setup()...\n// по умолчанию, возвращает классы для <style module>\nuseCssModule()\n\n// при указании имени, возвращает классы для <style module=\"classes\">\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- В одном файле `*.vue` может быть несколько секций `<style>`.\n\n- Тег `<style>` может иметь атрибуты `scoped` или `module` (подробнее см. разделе [возможности стилей SFC](https://ru.vuejs.org/api/sfc-css-features.html)), помогающие инкапсулировать стили для текущего компонента. В одном компоненте можно смешивать несколько тегов `<style>` с различными режимами инкапсуляции.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Пользовательские секции", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nЕсли вы предпочитаете разделять компоненты `*.vue` на несколько файлов, вы можете использовать атрибут `src` для импорта внешнего файла для языковой секции:\n\n```vue\n<template src=\"./template\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nИмпорты через `src` следуют тем же правилам разрешения путей, что и запросы модулей webpack, что означает:\n\n- Относительные пути должны начинаться с `./`\n- Можно импортировать ресурсы из зависимостей npm:\n\n```vue\n<!-- импорт файла из установленного npm-пакета \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nИмпорты через `src` также работают с пользовательскими секциями, например:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nВ файл `*.vue` могут быть включены дополнительные пользовательские секции для любых специфических нужд проекта, например, секция `<docs>`. Некоторые реальные примеры пользовательских секций:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\nОбработка пользовательских секций зависит от инструментария — если вы хотите создать свои собственные интеграции пользовательских секций, обратитесь к разделу [инструментарий SFC](https://ru.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) для более подробной информации.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#пользовательские-секции" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#пользовательские-секции" + } + ] + } +]; +const globalAttributes$b = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nВ секциях можно объявить язык пре-процессора с помощью атрибута `lang`. Наиболее распространённый случай — использование TypeScript для секции `<script>`:\n\n```html\n<script lang=\"ts\">\n // используем TypeScript\n</script>\n```\n\nАтрибут `lang` можно применить к любой секции — например можно использовать [SASS](https://sass-lang.com/) в секции `<style>` и [Pug](https://pugjs.org/api/getting-started.html) в секции `<template>`:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nОбратите внимание, что интеграция с различными пре-процессорами может отличаться в зависимости от инструментария. Примеры можно найти в соответствующей документации:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nЕсли вы предпочитаете разделять компоненты `*.vue` на несколько файлов, вы можете использовать атрибут `src` для импорта внешнего файла для языковой секции:\n\n```vue\n<template src=\"./template\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nИмпорты через `src` следуют тем же правилам разрешения путей, что и запросы модулей webpack, что означает:\n\n- Относительные пути должны начинаться с `./`\n- Можно импортировать ресурсы из зависимостей npm:\n\n```vue\n<!-- импорт файла из установленного npm-пакета \"todomvc-app-css\" -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nИмпорты через `src` также работают с пользовательскими секциями, например:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$18 = { + version: version$b, + tags: tags$1, + globalAttributes: globalAttributes$b +}; + +const version$a = 1.1; +const tags = [ + { + name: "template", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nIf you prefer splitting up your `*.vue` components into multiple files, you can use the `src` attribute to import an external file for a language block:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nBeware that `src` imports follow the same path resolution rules as webpack module requests, which means:\n\n- Relative paths need to start with `./`\n- You can import resources from npm dependencies:\n\n```vue\n<!-- import a file from the installed \"todomvc-app-css\" npm package -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` imports also work with custom blocks, e.g.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBlocks can declare pre-processor languages using the `lang` attribute. The most common case is using TypeScript for the `<script>` block:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` can be applied to any block - for example we can use `<style>` with [Sass](https://sass-lang.com/) and `<template>` with [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNote that integration with various pre-processors may differ by toolchain. Check out the respective documentation for examples:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "html" + }, + { + name: "pug" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Each `*.vue` file can contain at most one top-level `<template>` block.\n\n- Contents will be extracted and passed on to `@vue/compiler-dom`, pre-compiled into JavaScript render functions, and attached to the exported component as its `render` option.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#template" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#template" + } + ] + }, + { + name: "script", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nIf you prefer splitting up your `*.vue` components into multiple files, you can use the `src` attribute to import an external file for a language block:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nBeware that `src` imports follow the same path resolution rules as webpack module requests, which means:\n\n- Relative paths need to start with `./`\n- You can import resources from npm dependencies:\n\n```vue\n<!-- import a file from the installed \"todomvc-app-css\" npm package -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` imports also work with custom blocks, e.g.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBlocks can declare pre-processor languages using the `lang` attribute. The most common case is using TypeScript for the `<script>` block:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` can be applied to any block - for example we can use `<style>` with [Sass](https://sass-lang.com/) and `<template>` with [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNote that integration with various pre-processors may differ by toolchain. Check out the respective documentation for examples:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "ts" + }, + { + name: "js" + }, + { + name: "tsx" + }, + { + name: "jsx" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "generic" + }, + { + name: "setup", + valueSet: "v", + description: { + kind: "markdown", + value: "\n- Each `*.vue` file can contain at most one `<script setup>` block (excluding normal `<script>`).\n\n- The script is pre-processed and used as the component's `setup()` function, which means it will be executed **for each instance of the component**. Top-level bindings in `<script setup>` are automatically exposed to the template. For more details, see [dedicated documentation on `<script setup>`](https://vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- Each `*.vue` file can contain at most one `<script>` block (excluding [`<script setup>`](https://vuejs.org/api/sfc-script-setup.html)).\n\n- The script is executed as an ES Module.\n\n- The **default export** should be a Vue component options object, either as a plain object or as the return value of [defineComponent](https://vuejs.org/api/general.html#definecomponent).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script" + } + ] + }, + { + name: "script setup", + attributes: [ + ], + description: { + kind: "markdown", + value: "\n- Each `*.vue` file can contain at most one `<script setup>` block (excluding normal `<script>`).\n\n- The script is pre-processed and used as the component's `setup()` function, which means it will be executed **for each instance of the component**. Top-level bindings in `<script setup>` are automatically exposed to the template. For more details, see [dedicated documentation on `<script setup>`](https://vuejs.org/api/sfc-script-setup.html).\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#script-setup" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#script-setup" + } + ] + }, + { + name: "style", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nIf you prefer splitting up your `*.vue` components into multiple files, you can use the `src` attribute to import an external file for a language block:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nBeware that `src` imports follow the same path resolution rules as webpack module requests, which means:\n\n- Relative paths need to start with `./`\n- You can import resources from npm dependencies:\n\n```vue\n<!-- import a file from the installed \"todomvc-app-css\" npm package -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` imports also work with custom blocks, e.g.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + }, + { + name: "lang", + description: { + kind: "markdown", + value: "\nBlocks can declare pre-processor languages using the `lang` attribute. The most common case is using TypeScript for the `<script>` block:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` can be applied to any block - for example we can use `<style>` with [Sass](https://sass-lang.com/) and `<template>` with [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNote that integration with various pre-processors may differ by toolchain. Check out the respective documentation for examples:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + { + name: "css" + }, + { + name: "scss" + }, + { + name: "less" + }, + { + name: "stylus" + }, + { + name: "postcss" + }, + { + name: "sass" + } + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "scoped", + valueSet: "v", + description: { + kind: "markdown", + value: "\nWhen a `<style>` tag has the `scoped` attribute, its CSS will apply to elements of the current component only. This is similar to the style encapsulation found in Shadow DOM. It comes with some caveats, but doesn't require any polyfills. It is achieved by using PostCSS to transform the following:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\nInto the following:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### Child Component Root Elements \n\nWith `scoped`, the parent component's styles will not leak into child components. However, a child component's root node will be affected by both the parent's scoped CSS and the child's scoped CSS. This is by design so that the parent can style the child root element for layout purposes.\n\n### Deep Selectors \n\nIf you want a selector in `scoped` styles to be \"deep\", i.e. affecting child components, you can use the `:deep()` pseudo-class:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nThe above will be compiled into:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\nDOM content created with `v-html` are not affected by scoped styles, but you can still style them using deep selectors.\n:::\n\n### Slotted Selectors \n\nBy default, scoped styles do not affect contents rendered by `<slot/>`, as they are considered to be owned by the parent component passing them in. To explicitly target slot content, use the `:slotted` pseudo-class:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Global Selectors \n\nIf you want just one rule to apply globally, you can use the `:global` pseudo-class rather than creating another `<style>` (see below):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Mixing Local and Global Styles \n\nYou can also include both scoped and non-scoped styles in the same component:\n\n```vue\n<style>\n/* global styles */\n</style>\n\n<style scoped>\n/* local styles */\n</style>\n```\n\n### Scoped Style Tips \n\n- **Scoped styles do not eliminate the need for classes**. Due to the way browsers render various CSS selectors, `p { color: red }` will be many times slower when scoped (i.e. when combined with an attribute selector). If you use classes or ids instead, such as in `.example { color: red }`, then you virtually eliminate that performance hit.\n\n- **Be careful with descendant selectors in recursive components!** For a CSS rule with the selector `.a .b`, if the element that matches `.a` contains a recursive child component, then all `.b` in that child component will be matched by the rule.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css" + } + ] + }, + { + name: "module", + valueSet: "v", + description: { + kind: "markdown", + value: "\nA `<style module>` tag is compiled as [CSS Modules](https://github.com/css-modules/css-modules) and exposes the resulting CSS classes to the component as an object under the key of `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nThe resulting classes are hashed to avoid collision, achieving the same effect of scoping the CSS to the current component only.\n\nRefer to the [CSS Modules spec](https://github.com/css-modules/css-modules) for more details such as [global exceptions](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) and [composition](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#composition).\n\n### Custom Inject Name \n\nYou can customize the property key of the injected classes object by giving the `module` attribute a value:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Usage with Composition API \n\nThe injected classes can be accessed in `setup()` and `<script setup>` via the `useCssModule` API. For `<style module>` blocks with custom injection names, `useCssModule` accepts the matching `module` attribute value as the first argument:\n\n```js\nimport { useCssModule } from 'vue'\n\n// inside setup() scope...\n// default, returns classes for <style module>\nuseCssModule()\n\n// named, returns classes for <style module=\"classes\">\nuseCssModule('classes')\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-css-features.html#css-modules" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-css-features.html#css-modules" + } + ] + } + ], + description: { + kind: "markdown", + value: "\n- A single `*.vue` file can contain multiple `<style>` tags.\n\n- A `<style>` tag can have `scoped` or `module` attributes (see [SFC Style Features](https://vuejs.org/api/sfc-css-features.html) for more details) to help encapsulate the styles to the current component. Multiple `<style>` tags with different encapsulation modes can be mixed in the same component.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#style" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#style" + } + ] + }, + { + name: "Custom Blocks", + attributes: [ + { + name: "src", + description: { + kind: "markdown", + value: "\nIf you prefer splitting up your `*.vue` components into multiple files, you can use the `src` attribute to import an external file for a language block:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nBeware that `src` imports follow the same path resolution rules as webpack module requests, which means:\n\n- Relative paths need to start with `./`\n- You can import resources from npm dependencies:\n\n```vue\n<!-- import a file from the installed \"todomvc-app-css\" npm package -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` imports also work with custom blocks, e.g.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } + ], + description: { + kind: "markdown", + value: "\nAdditional custom blocks can be included in a `*.vue` file for any project-specific needs, for example a `<docs>` block. Some real-world examples of custom blocks include:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n#i18n-custom-block)\n\nHandling of Custom Blocks will depend on tooling - if you want to build your own custom block integrations, see the [SFC custom block integrations tooling section](https://vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) for more details.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#custom-blocks" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#custom-blocks" + } + ] + } +]; +const globalAttributes$a = [ + { + name: "lang", + description: { + kind: "markdown", + value: "\nBlocks can declare pre-processor languages using the `lang` attribute. The most common case is using TypeScript for the `<script>` block:\n\n```html\n<script lang=\"ts\">\n // use TypeScript\n</script>\n```\n\n`lang` can be applied to any block - for example we can use `<style>` with [Sass](https://sass-lang.com/) and `<template>` with [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNote that integration with various pre-processors may differ by toolchain. Check out the respective documentation for examples:\n\n- [Vite](https://vitejs.dev/guide/features.html#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n" + }, + values: [ + ], + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#pre-processors" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#pre-processors" + } + ] + }, + { + name: "src", + description: { + kind: "markdown", + value: "\nIf you prefer splitting up your `*.vue` components into multiple files, you can use the `src` attribute to import an external file for a language block:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nBeware that `src` imports follow the same path resolution rules as webpack module requests, which means:\n\n- Relative paths need to start with `./`\n- You can import resources from npm dependencies:\n\n```vue\n<!-- import a file from the installed \"todomvc-app-css\" npm package -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` imports also work with custom blocks, e.g.:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ja", + url: "https://ja.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ua", + url: "https://ua.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fr", + url: "https://fr.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ko", + url: "https://ko.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "pt", + url: "https://pt.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "bn", + url: "https://bn.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "it", + url: "https://it.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "cs", + url: "https://cs.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "ru", + url: "https://ru.vuejs.org/api/sfc-spec.html#src-imports" + }, + { + name: "fa", + url: "https://fa.vuejs.org/api/sfc-spec.html#src-imports" + } + ] + } +]; +var require$$19 = { + version: version$a, + tags: tags, + globalAttributes: globalAttributes$a +}; + +const version$9 = 1.1; +const globalAttributes$9 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nデフォルトでは、 `v-model` は各 `input` イベントの後に、入力とデータを同期します([上記](#vmodel-ime-tip) の IME による入力は例外とします)。 代わりに `change` イベント後に同期する `lazy` 修飾子を追加することができます。\n\n```html\n<!-- \"input\" の代わりに \"change\" イベント後に同期されます -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nユーザー入力を自動で数値として型変換したい場合、 `v-model` で管理している入力に `number` 修飾子を追加することができます。\n\n```html\n<input v-model.number=\"age\" />\n```\n\nもし値が `parseFloat()` で解析できない場合は、代わりに元の値が使用されます。\n\ninput が `type=\"number\"` を持つ場合は `number` 修飾子が自動で適用されます。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nユーザー入力から自動で空白を取り除きたい場合、 `v-model` で管理している入力に `trim` 修飾子を追加することができます。\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$20 = { + version: version$9, + globalAttributes: globalAttributes$9 +}; + +const version$8 = 1.1; +const globalAttributes$8 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nPar défaut, `v-model` synchronise l'entrée avec les données après chaque événement `input` (à l'exception de la composition IME comme [indiqué ci-dessus](#vmodel-ime-tip)). Vous pouvez ajouter le modificateur `lazy` pour enclencher la synchronisation après les événements `change` :\n\n```html\n<!-- synchronisé après \"change\" au lieu de \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nSi vous voulez que l'entrée de l'utilisateur soit automatiquement typée comme un nombre, vous pouvez ajouter le modificateur `number` à vos entrées gérées par `v-model` :\n\n```html\n<input v-model.number=\"age\" />\n```\n\nSi la valeur ne peut pas être analysée avec `parseFloat()`, alors la valeur originale est utilisée à la place.\n\nLe modificateur `number` est appliqué automatiquement si l'entrée possède `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nSi vous voulez que les espaces blancs des entrées utilisateur soient automatiquement supprimés, vous pouvez ajouter le modificateur `trim` à vos entrées gérées par `v-model` :\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$21 = { + version: version$8, + globalAttributes: globalAttributes$8 +}; + +const version$7 = 1.1; +const globalAttributes$7 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\n기본적으로 `v-model`은 각 `input` 이벤트 이후 데이터와 입력을 동기화합니다([위에 언급된 IME 구성 제외](#vmodel-ime-tip)).\n대신 `change` 이벤트 이후에 동기화하기 위해 `.lazy` 수식어를 추가할 수 있습니다.\n\n```html\n<!-- \"input\" 대신 \"change\" 이벤트 후에 동기화됨 -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\n사용자 입력이 자동으로 숫자로 유형 변환되도록 하려면, `v-model` 수식어로 `.number`를 추가하면 됩니다:\n\n```html\n<input v-model.number=\"age\" />\n```\n\n값을 `parseFloat()`로 파싱할 수 없으면 원래 값이 대신 사용됩니다.\n\n인풋에 `type=\"number\"`가 있으면 `.number` 수식어가 자동으로 적용됩니다.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\n사용자 입력의 공백이 자동으로 트리밍되도록 하려면 `v-model` 수식어로 `.trim`을 추가하면 됩니다:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$22 = { + version: version$7, + globalAttributes: globalAttributes$7 +}; + +const version$6 = 1.1; +const globalAttributes$6 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nPor padrão, a `v-model` sincroniza a entrada com o dado depois de cada evento de `input` (com a exceção da composição de IME como [especificada acima](#vmodel-ime-tip)). Tu podes adicionar o modificador `lazy` no lugar de sincronizar depois dos eventos `change`:\n\n```html\n<!-- sincronizado depois de \"change\" no lugar de \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nSe quiseres que a entrada do utilizador seja automaticamente tratada como um número, podes adicionar o modificador `number` as tuas entradas geridas pela `v-model`:\n\n```html\n<input v-model.number=\"age\" />\n```\n\nSe o valor não puder ser analisado com `parseFloat()`, então o valor original é utilizado no lugar.\n\nO modificador `number` é aplicado automaticamente se a entrada tiver o `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nSe quiseres que espaços em branco da entrada do utilizador sejam cortados automaticamente, podes adicionar o modificador `trim` as tuas entradas geridas pela `v-model`:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$23 = { + version: version$6, + globalAttributes: globalAttributes$6 +}; + +const version$5 = 1.1; +const globalAttributes$5 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\n默认情况下,`v-model` 会在每次 `input` 事件后更新数据 ([IME 拼字阶段的状态](#vmodel-ime-tip)例外)。你可以添加 `lazy` 修饰符来改为在每次 `change` 事件后更新数据:\n\n```html\n<!-- 在 \"change\" 事件后同步更新而不是 \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\n如果你想让用户输入自动转换为数字,你可以在 `v-model` 后添加 `.number` 修饰符来管理输入:\n\n```html\n<input v-model.number=\"age\" />\n```\n\n如果该值无法被 `parseFloat()` 处理,那么将返回原始值。\n\n`number` 修饰符会在输入框有 `type=\"number\"` 时自动启用。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\n如果你想要默认自动去除用户输入内容中两端的空格,你可以在 `v-model` 后添加 `.trim` 修饰符:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$24 = { + version: version$5, + globalAttributes: globalAttributes$5 +}; + +const version$4 = 1.1; +const globalAttributes$4 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\n默認情況下,`v-model` 會在每次 `input` 事件後更新數據 ([IME 拼字階段的狀態](#vmodel-ime-tip)例外)。你可以添加 `lazy` 修飾符來改為在每次 `change` 事件後更新數據:\n\n```html\n<!-- 在 \"change\" 事件後同步更新而不是 \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\n如果你想讓用戶輸入自動轉換為數字,你可以在 `v-model` 後添加 `.number` 修飾符來管理輸入:\n\n```html\n<input v-model.number=\"age\" />\n```\n\n如果該值無法被 `parseFloat()` 處理,那麼將返回原始值。\n\n`number` 修飾符會在輸入框有 `type=\"number\"` 時自動啟用。\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\n如果你想要默認自動去除用戶輸入內容中兩端的空格,你可以在 `v-model` 後添加 `.trim` 修飾符:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$25 = { + version: version$4, + globalAttributes: globalAttributes$4 +}; + +const version$3 = 1.1; +const globalAttributes$3 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nDi default, `v-model` sincronizza l'input con i dati dopo ogni evento `input` (con l'eccezione della composizione IME come [indicato sopra](#vmodel-ime-tip)). Aggiungendo il modificatore `lazy`, la sincronizzazione avviene dopo gli eventi `change`, anziché dopo ogni evento `input`:\n\n```html\n<!-- Sincronizzati dopo \"change\" al posto di \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nSe desideri che l'input dell'utente venga automaticamente convertito in un numero, puoi aggiungere il modificatore `number` agli input gestiti da `v-model`:\n\n```html\n<input v-model.number=\"age\" />\n```\n\nSe il valore non può essere interpretato con `parseFloat()`, verrà allora utilizzato il valore originale.\n\nIl modificatore `number` viene applicato automaticamente se l'input ha `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nSe vuoi che gli spazi bianchi inseriti dall'utente vengano rimossi automaticamente, puoi aggiungere il modificatore `trim` agli input gestiti da `v-model`:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$26 = { + version: version$3, + globalAttributes: globalAttributes$3 +}; + +const version$2 = 1.1; +const globalAttributes$2 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nVe výchozím nastavení `v-model` synchronizuje vstup s daty po každé události `input` (s výjimkou IME kompozice, jak je [uvedeno výše](#vmodel-ime-tip)). Místo toho můžete přidat modifikátor`lazy` k synchronizaci po události `change`:\n\n```html\n<!-- synchronizuje se po „change“ místo „input“ -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nPokud chcete, aby byl uživatelský vstup automaticky přetypován jako číslo, můžete do vašich vstupů spravovaných přes `v-model` přidat modifikátor `number`:\n\n```html\n<input v-model.number=\"age\" />\n```\n\nPokud hodnotu nelze přetypovat pomocí `parseFloat()`, bude použita původní hodnota.\n\nModifikátor `number` se aplikuje automaticky, pokud má vstupní pole atribut `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nPokud chcete z uživatelského vstupu automaticky odstranit bílé znaky (whitespace), můžete do vašich vstupů spravovaných přes `v-model` přidat modifikátor `trim`:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$27 = { + version: version$2, + globalAttributes: globalAttributes$2 +}; + +const version$1 = 1.1; +const globalAttributes$1 = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nПо умолчанию `v-model` синхронизирует поле ввода с данными по событию `input` (кроме [вышеупомянутых исключений](#vmodel-ime-tip) для композиции IME). Можно воспользоваться модификатором `lazy`, чтобы синхронизация происходила по событию `change`:\n\n```html\n<!-- синхронизация после события \"change\" вместо \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nДля автоматического приведения введённого пользователем к числу можно добавить модификатор `number`:\n\n```html\n<input v-model.number=\"age\" />\n```\n\nЕсли значение не получится привести к числу с помощью `parseFloat()`, то будет возвращено исходное значение.\n\nМодификатор `number` автоматически применяется к полям `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nЕсли необходимо автоматически удалять пробельные символы в начале и в конце строки, можно добавить модификатор `trim`:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$28 = { + version: version$1, + globalAttributes: globalAttributes$1 +}; + +const version = 1.1; +const globalAttributes = [ + { + name: "lazy", + description: { + kind: "markdown", + value: "\nBy default, `v-model` syncs the input with the data after each `input` event (with the exception of IME composition as [stated above](#vmodel-ime-tip)). You can add the `lazy` modifier to instead sync after `change` events:\n\n```html\n<!-- synced after \"change\" instead of \"input\" -->\n<input v-model.lazy=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#lazy" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#lazy" + } + ] + }, + { + name: "number", + description: { + kind: "markdown", + value: "\nIf you want user input to be automatically typecast as a number, you can add the `number` modifier to your `v-model` managed inputs:\n\n```html\n<input v-model.number=\"age\" />\n```\n\nIf the value cannot be parsed with `parseFloat()`, then the original value is used instead.\n\nThe `number` modifier is applied automatically if the input has `type=\"number\"`.\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#number" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#number" + } + ] + }, + { + name: "trim", + description: { + kind: "markdown", + value: "\nIf you want whitespace from user input to be trimmed automatically, you can add the `trim` modifier to your `v-model`-managed inputs:\n\n```html\n<input v-model.trim=\"msg\" />\n```\n" + }, + references: [ + { + name: "en", + url: "https://vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-cn", + url: "https://cn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "zh-hk", + url: "https://zh-hk.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ja", + url: "https://ja.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ua", + url: "https://ua.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fr", + url: "https://fr.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ko", + url: "https://ko.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "pt", + url: "https://pt.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "bn", + url: "https://bn.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "it", + url: "https://it.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "cs", + url: "https://cs.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "ru", + url: "https://ru.vuejs.org/guide/essentials/forms.html#trim" + }, + { + name: "fa", + url: "https://fa.vuejs.org/guide/essentials/forms.html#trim" + } + ] + } +]; +var require$$29 = { + version: version, + globalAttributes: globalAttributes +}; + +Object.defineProperty(data, "__esModule", { value: true }); +data.loadTemplateData = loadTemplateData; +data.loadLanguageBlocks = loadLanguageBlocks; +data.loadModelModifiersData = loadModelModifiersData; +function loadTemplateData(lang) { + lang = lang.toLowerCase(); + let data; + if (lang === 'ja') { + data = require$$0; + } + else if (lang === 'fr') { + data = require$$1; + } + else if (lang === 'ko') { + data = require$$2; + } + else if (lang === 'pt-br') { + data = require$$3; + } + else if (lang === 'zh-cn') { + data = require$$4; + } + else if (lang === 'zh-tw') { + data = require$$5; + } + else if (lang === 'it') { + data = require$$6; + } + else if (lang === 'cs') { + data = require$$7; + } + else if (lang === 'ru') { + data = require$$8; + } + else { + data = require$$9; + } + for (const attr of [...data.globalAttributes ?? []]) { + if (!attr.name.startsWith('v-')) { + data.globalAttributes?.push({ ...attr, name: `:${attr.name}` }, { ...attr, name: `v-bind:${attr.name}` }); + } + } + const vOn = data.globalAttributes?.find(d => d.name === 'v-on'); + const vSlot = data.globalAttributes?.find(d => d.name === 'v-slot'); + const vBind = data.globalAttributes?.find(d => d.name === 'v-bind'); + if (vOn) { + data.globalAttributes?.push({ ...vOn, name: '@' }); + } + if (vSlot) { + data.globalAttributes?.push({ ...vSlot, name: '#' }); + } + if (vBind) { + data.globalAttributes?.push({ ...vBind, name: ':' }); + } + return data; +} +function loadLanguageBlocks(lang) { + lang = lang.toLowerCase(); + if (lang === 'ja') { + return require$$10; + } + else if (lang === 'fr') { + return require$$11; + } + else if (lang === 'ko') { + return require$$12; + } + else if (lang === 'pt-br') { + return require$$13; + } + else if (lang === 'zh-cn') { + return require$$14; + } + else if (lang === 'zh-tw') { + return require$$15; + } + else if (lang === 'it') { + return require$$16; + } + else if (lang === 'cs') { + return require$$17; + } + else if (lang === 'ru') { + return require$$18; + } + return require$$19; +} +function loadModelModifiersData(lang) { + lang = lang.toLowerCase(); + if (lang === 'ja') { + return require$$20; + } + else if (lang === 'fr') { + return require$$21; + } + else if (lang === 'ko') { + return require$$22; + } + else if (lang === 'pt-br') { + return require$$23; + } + else if (lang === 'zh-cn') { + return require$$24; + } + else if (lang === 'zh-tw') { + return require$$25; + } + else if (lang === 'it') { + return require$$26; + } + else if (lang === 'cs') { + return require$$27; + } + else if (lang === 'ru') { + return require$$28; + } + return require$$29; +} + +Object.defineProperty(vueSfc, "__esModule", { value: true }); +vueSfc.create = create$4; +const vue$2 = languageCore; +const volar_service_html_1$1 = volarServiceHtml; +const html$1 = require$$5$1; +const data_1$1 = data; +const vscode_uri_1$3 = umdExports; +let sfcDataProvider; +function create$4() { + const htmlPlugin = (0, volar_service_html_1$1.create)({ + documentSelector: ['vue-root-tags'], + useDefaultDataProvider: false, + getCustomData(context) { + sfcDataProvider ??= html$1.newHTMLDataProvider('vue', (0, data_1$1.loadLanguageBlocks)(context.env.locale ?? 'en')); + return [sfcDataProvider]; + }, + async getFormattingOptions(document, options, context) { + return await worker(document, context, async (vueCode) => { + const formatSettings = await context.env.getConfiguration?.('html.format') ?? {}; + const blockTypes = ['template', 'script', 'style']; + for (const customBlock of vueCode.sfc.customBlocks) { + blockTypes.push(customBlock.type); + } + return { + ...options, + ...formatSettings, + wrapAttributes: await context.env.getConfiguration?.('vue.format.wrapAttributes') ?? 'auto', + unformatted: '', + contentUnformatted: blockTypes.join(','), + endWithNewline: options.insertFinalNewline ? true + : options.trimFinalNewlines ? false + : document.getText().endsWith('\n'), + }; + }) ?? {}; + }, + }); + return { + ...htmlPlugin, + name: 'vue-sfc', + create(context) { + const htmlPluginInstance = htmlPlugin.create(context); + return { + ...htmlPluginInstance, + provideDocumentLinks: undefined, + async resolveEmbeddedCodeFormattingOptions(sourceScript, virtualCode, options) { + if (sourceScript.generated?.root instanceof vue$2.VueVirtualCode) { + if (virtualCode.id === 'script_raw' || virtualCode.id === 'scriptsetup_raw') { + if (await context.env.getConfiguration?.('vue.format.script.initialIndent') ?? false) { + options.initialIndentLevel++; + } + } + else if (virtualCode.id.startsWith('style_')) { + if (await context.env.getConfiguration?.('vue.format.style.initialIndent') ?? false) { + options.initialIndentLevel++; + } + } + else if (virtualCode.id === 'template') { + if (await context.env.getConfiguration?.('vue.format.template.initialIndent') ?? true) { + options.initialIndentLevel++; + } + } + } + return options; + }, + provideDocumentSymbols(document) { + return worker(document, context, vueSourceFile => { + const result = []; + const descriptor = vueSourceFile.sfc; + if (descriptor.template) { + result.push({ + name: 'template', + kind: 2, + range: { + start: document.positionAt(descriptor.template.start), + end: document.positionAt(descriptor.template.end), + }, + selectionRange: { + start: document.positionAt(descriptor.template.start), + end: document.positionAt(descriptor.template.startTagEnd), + }, + }); + } + if (descriptor.script) { + result.push({ + name: 'script', + kind: 2, + range: { + start: document.positionAt(descriptor.script.start), + end: document.positionAt(descriptor.script.end), + }, + selectionRange: { + start: document.positionAt(descriptor.script.start), + end: document.positionAt(descriptor.script.startTagEnd), + }, + }); + } + if (descriptor.scriptSetup) { + result.push({ + name: 'script setup', + kind: 2, + range: { + start: document.positionAt(descriptor.scriptSetup.start), + end: document.positionAt(descriptor.scriptSetup.end), + }, + selectionRange: { + start: document.positionAt(descriptor.scriptSetup.start), + end: document.positionAt(descriptor.scriptSetup.startTagEnd), + }, + }); + } + for (const style of descriptor.styles) { + let name = 'style'; + if (style.scoped) { + name += ' scoped'; + } + if (style.module) { + name += ' module'; + } + result.push({ + name, + kind: 2, + range: { + start: document.positionAt(style.start), + end: document.positionAt(style.end), + }, + selectionRange: { + start: document.positionAt(style.start), + end: document.positionAt(style.startTagEnd), + }, + }); + } + for (const customBlock of descriptor.customBlocks) { + result.push({ + name: `${customBlock.type}`, + kind: 2, + range: { + start: document.positionAt(customBlock.start), + end: document.positionAt(customBlock.end), + }, + selectionRange: { + start: document.positionAt(customBlock.start), + end: document.positionAt(customBlock.startTagEnd), + }, + }); + } + return result; + }); + }, + async provideCompletionItems(document, position, context, token) { + const result = await htmlPluginInstance.provideCompletionItems?.(document, position, context, token); + if (!result) { + return; + } + result.items = result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'); + const tags = sfcDataProvider?.provideTags(); + const scriptLangs = getLangs('script'); + const scriptItems = result.items.filter(item => item.label === 'script' || item.label === 'script setup'); + for (const scriptItem of scriptItems) { + scriptItem.kind = 17; + scriptItem.detail = '.js'; + for (const lang of scriptLangs) { + result.items.push({ + ...scriptItem, + detail: `.${lang}`, + kind: 17, + label: scriptItem.label + ' lang="' + lang + '"', + textEdit: scriptItem.textEdit ? { + ...scriptItem.textEdit, + newText: scriptItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + const styleLangs = getLangs('style'); + const styleItem = result.items.find(item => item.label === 'style'); + if (styleItem) { + styleItem.kind = 17; + styleItem.detail = '.css'; + for (const lang of styleLangs) { + result.items.push(getStyleCompletionItem(styleItem, lang), getStyleCompletionItem(styleItem, lang, 'scoped'), getStyleCompletionItem(styleItem, lang, 'module')); + } + } + const templateLangs = getLangs('template'); + const templateItem = result.items.find(item => item.label === 'template'); + if (templateItem) { + templateItem.kind = 17; + templateItem.detail = '.html'; + for (const lang of templateLangs) { + if (lang === 'html') { + continue; + } + result.items.push({ + ...templateItem, + kind: 17, + detail: `.${lang}`, + label: templateItem.label + ' lang="' + lang + '"', + textEdit: templateItem.textEdit ? { + ...templateItem.textEdit, + newText: templateItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + return result; + function getLangs(label) { + return tags + ?.find(tag => tag.name === label)?.attributes + .find(attr => attr.name === 'lang')?.values + ?.map(({ name }) => name) ?? []; + } + }, + }; + }, + }; + function worker(document, context, callback) { + if (document.languageId !== 'vue-root-tags') { + return; + } + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$3.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + if (sourceScript?.generated?.root instanceof vue$2.VueVirtualCode) { + return callback(sourceScript.generated.root); + } + } +} +function getStyleCompletionItem(styleItem, lang, attr) { + return { + ...styleItem, + kind: 17, + detail: lang === 'postcss' ? '.css' : `.${lang}`, + label: styleItem.label + ' lang="' + lang + '"' + (attr ? ` ${attr}` : ''), + textEdit: styleItem.textEdit ? { + ...styleItem.textEdit, + newText: styleItem.textEdit.newText + ' lang="' + lang + '"' + (attr ? ` ${attr}` : ''), + } : undefined + }; +} + +var vueTemplate = {}; + +var common = {}; + +var componentInfos = {}; + +Object.defineProperty(componentInfos, "__esModule", { value: true }); +componentInfos.getComponentProps = getComponentProps; +componentInfos.getComponentEvents = getComponentEvents; +componentInfos.getTemplateContextProps = getTemplateContextProps; +componentInfos.getComponentNames = getComponentNames; +componentInfos._getComponentNames = _getComponentNames; +componentInfos.getElementAttrs = getElementAttrs; +const vue$1 = languageCore; +const shared_1$2 = require$$1$1; +function getComponentProps(fileName, tag, requiredOnly = false) { + const { typescript: ts, language, languageService, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof vue$1.VueVirtualCode)) { + return; + } + const vueCode = volarFile.generated.root; + const program = languageService.getProgram(); + const checker = program.getTypeChecker(); + const components = getVariableType(ts, languageService, vueCode, '__VLS_components'); + if (!components) { + return []; + } + const name = tag.split('.'); + let componentSymbol = components.type.getProperty(name[0]); + if (!componentSymbol) { + componentSymbol = components.type.getProperty((0, shared_1$2.camelize)(name[0])) + ?? components.type.getProperty((0, shared_1$2.capitalize)((0, shared_1$2.camelize)(name[0]))); + } + if (!componentSymbol) { + return []; + } + let componentType = checker.getTypeOfSymbolAtLocation(componentSymbol, components.node); + for (let i = 1; i < name.length; i++) { + componentSymbol = componentType.getProperty(name[i]); + if (componentSymbol) { + componentType = checker.getTypeOfSymbolAtLocation(componentSymbol, components.node); + } + else { + return []; + } + } + const result = new Map(); + for (const sig of componentType.getCallSignatures()) { + const propParam = sig.parameters[0]; + if (propParam) { + const propsType = checker.getTypeOfSymbolAtLocation(propParam, components.node); + const props = propsType.getProperties(); + for (const prop of props) { + if (!requiredOnly || !(prop.flags & ts.SymbolFlags.Optional)) { + const name = prop.name; + const commentMarkdown = generateCommentMarkdown(prop.getDocumentationComment(checker), prop.getJsDocTags()); + result.set(name, { name, commentMarkdown }); + } + } + } + } + for (const sig of componentType.getConstructSignatures()) { + const instanceType = sig.getReturnType(); + const propsSymbol = instanceType.getProperty('$props'); + if (propsSymbol) { + const propsType = checker.getTypeOfSymbolAtLocation(propsSymbol, components.node); + const props = propsType.getProperties(); + for (const prop of props) { + if (prop.flags & ts.SymbolFlags.Method) { // #2443 + continue; + } + if (!requiredOnly || !(prop.flags & ts.SymbolFlags.Optional)) { + const name = prop.name; + const commentMarkdown = generateCommentMarkdown(prop.getDocumentationComment(checker), prop.getJsDocTags()); + result.set(name, { name, commentMarkdown }); + } + } + } + } + return [...result.values()]; +} +function getComponentEvents(fileName, tag) { + const { typescript: ts, language, languageService, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof vue$1.VueVirtualCode)) { + return; + } + const vueCode = volarFile.generated.root; + const program = languageService.getProgram(); + const checker = program.getTypeChecker(); + const components = getVariableType(ts, languageService, vueCode, '__VLS_components'); + if (!components) { + return []; + } + const name = tag.split('.'); + let componentSymbol = components.type.getProperty(name[0]); + if (!componentSymbol) { + componentSymbol = components.type.getProperty((0, shared_1$2.camelize)(name[0])) + ?? components.type.getProperty((0, shared_1$2.capitalize)((0, shared_1$2.camelize)(name[0]))); + } + if (!componentSymbol) { + return []; + } + let componentType = checker.getTypeOfSymbolAtLocation(componentSymbol, components.node); + for (let i = 1; i < name.length; i++) { + componentSymbol = componentType.getProperty(name[i]); + if (componentSymbol) { + componentType = checker.getTypeOfSymbolAtLocation(componentSymbol, components.node); + } + else { + return []; + } + } + const result = new Set(); + // for (const sig of componentType.getCallSignatures()) { + // const emitParam = sig.parameters[1]; + // if (emitParam) { + // // TODO + // } + // } + for (const sig of componentType.getConstructSignatures()) { + const instanceType = sig.getReturnType(); + const emitSymbol = instanceType.getProperty('$emit'); + if (emitSymbol) { + const emitType = checker.getTypeOfSymbolAtLocation(emitSymbol, components.node); + for (const call of emitType.getCallSignatures()) { + const eventNameParamSymbol = call.parameters[0]; + if (eventNameParamSymbol) { + const eventNameParamType = checker.getTypeOfSymbolAtLocation(eventNameParamSymbol, components.node); + if (eventNameParamType.isStringLiteral()) { + result.add(eventNameParamType.value); + } + } + } + } + } + return [...result]; +} +function getTemplateContextProps(fileName) { + const { typescript: ts, language, languageService, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof vue$1.VueVirtualCode)) { + return; + } + const vueCode = volarFile.generated.root; + return getVariableType(ts, languageService, vueCode, '__VLS_ctx') + ?.type + ?.getProperties() + .map(c => c.name); +} +function getComponentNames(fileName) { + const { typescript: ts, language, languageService, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof vue$1.VueVirtualCode)) { + return; + } + const vueCode = volarFile.generated.root; + return getVariableType(ts, languageService, vueCode, '__VLS_components') + ?.type + ?.getProperties() + .map(c => c.name) + .filter(entry => entry.indexOf('$') === -1 && !entry.startsWith('_')) + ?? []; +} +function _getComponentNames(ts, tsLs, vueCode) { + return getVariableType(ts, tsLs, vueCode, '__VLS_components') + ?.type + ?.getProperties() + .map(c => c.name) + .filter(entry => entry.indexOf('$') === -1 && !entry.startsWith('_')) + ?? []; +} +function getElementAttrs(fileName, tagName) { + const { typescript: ts, language, languageService, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof vue$1.VueVirtualCode)) { + return; + } + const program = languageService.getProgram(); + let tsSourceFile; + if (tsSourceFile = program.getSourceFile(fileName)) { + const typeNode = tsSourceFile.statements.find((node) => ts.isTypeAliasDeclaration(node) && node.name.getText() === '__VLS_IntrinsicElementsCompletion'); + const checker = program.getTypeChecker(); + if (checker && typeNode) { + const type = checker.getTypeFromTypeNode(typeNode.type); + const el = type.getProperty(tagName); + if (el) { + const attrs = checker.getTypeOfSymbolAtLocation(el, typeNode).getProperties(); + return attrs.map(c => c.name); + } + } + } + return []; +} +function getVariableType(ts, languageService, vueCode, name) { + const program = languageService.getProgram(); + let tsSourceFile; + if (tsSourceFile = program.getSourceFile(vueCode.fileName)) { + const node = searchVariableDeclarationNode(ts, tsSourceFile, name); + const checker = program.getTypeChecker(); + if (checker && node) { + return { + node: node, + type: checker.getTypeAtLocation(node), + }; + } + } +} +function searchVariableDeclarationNode(ts, sourceFile, name) { + let componentsNode; + walk(sourceFile); + return componentsNode; + function walk(node) { + if (componentsNode) { + return; + } + else if (ts.isVariableDeclaration(node) && node.name.getText() === name) { + componentsNode = node; + } + else { + node.forEachChild(walk); + } + } +} +function generateCommentMarkdown(parts, jsDocTags) { + const parsedComment = _symbolDisplayPartsToMarkdown(parts); + const parsedJsDoc = _jsDocTagInfoToMarkdown(jsDocTags); + let result = [parsedComment, parsedJsDoc].filter(str => !!str).join('\n\n'); + return result; +} +function _symbolDisplayPartsToMarkdown(parts) { + return parts.map(part => { + switch (part.kind) { + case 'keyword': + return `\`${part.text}\``; + case 'functionName': + return `**${part.text}**`; + default: + return part.text; + } + }).join(''); +} +function _jsDocTagInfoToMarkdown(jsDocTags) { + return jsDocTags.map(tag => { + const tagName = `*@${tag.name}*`; + const tagText = tag.text?.map(t => { + if (t.kind === 'parameterName') { + return `\`${t.text}\``; + } + else { + return t.text; + } + }).join('') || ''; + return `${tagName} ${tagText}`; + }).join('\n\n'); +} + +Object.defineProperty(common, "__esModule", { value: true }); +common.proxyLanguageServiceForVue = proxyLanguageServiceForVue; +common.getComponentSpans = getComponentSpans; +const language_core_1$4 = languageCore; +const shared_1$1 = require$$1$1; +const componentInfos_1 = componentInfos; +const windowsPathReg = /\\/g; +function proxyLanguageServiceForVue(ts, language, languageService, vueOptions, asScriptId) { + const proxyCache = new Map(); + const getProxyMethod = (target, p) => { + switch (p) { + case 'getCompletionsAtPosition': return getCompletionsAtPosition(vueOptions, target[p]); + case 'getCompletionEntryDetails': return getCompletionEntryDetails(language, asScriptId, target[p]); + case 'getCodeFixesAtPosition': return getCodeFixesAtPosition(target[p]); + case 'getQuickInfoAtPosition': return getQuickInfoAtPosition(ts, target, target[p]); + // TS plugin only + case 'getEncodedSemanticClassifications': return getEncodedSemanticClassifications(ts, language, target, asScriptId, target[p]); + } + }; + return new Proxy(languageService, { + get(target, p, receiver) { + if (getProxyMethod) { + if (!proxyCache.has(p)) { + proxyCache.set(p, getProxyMethod(target, p)); + } + const proxyMethod = proxyCache.get(p); + if (proxyMethod) { + return proxyMethod; + } + } + return Reflect.get(target, p, receiver); + }, + set(target, p, value, receiver) { + return Reflect.set(target, p, value, receiver); + }, + }); +} +function getCompletionsAtPosition(vueOptions, getCompletionsAtPosition) { + return (filePath, position, options, formattingSettings) => { + const fileName = filePath.replace(windowsPathReg, '/'); + const result = getCompletionsAtPosition(fileName, position, options, formattingSettings); + if (result) { + // filter __VLS_ + result.entries = result.entries.filter(entry => entry.name.indexOf('__VLS_') === -1 + && (!entry.labelDetails?.description || entry.labelDetails.description.indexOf('__VLS_') === -1)); + // modify label + for (const item of result.entries) { + if (item.source) { + const originalName = item.name; + for (const vueExt of vueOptions.extensions) { + const suffix = (0, shared_1$1.capitalize)(vueExt.slice(1)); // .vue -> Vue + if (item.source.endsWith(vueExt) && item.name.endsWith(suffix)) { + item.name = (0, shared_1$1.capitalize)(item.name.slice(0, -suffix.length)); + if (item.insertText) { + // #2286 + item.insertText = item.insertText.replace(`${suffix}$1`, '$1'); + } + if (item.data) { + // @ts-expect-error + item.data.__isComponentAutoImport = { + ext: vueExt, + suffix, + originalName, + newName: item.insertText, + }; + } + break; + } + } + if (item.data) { + // @ts-expect-error + item.data.__isAutoImport = { + fileName, + }; + } + } + } + } + return result; + }; +} +function getCompletionEntryDetails(language, asScriptId, getCompletionEntryDetails) { + return (...args) => { + const details = getCompletionEntryDetails(...args); + // modify import statement + // @ts-expect-error + if (args[6]?.__isComponentAutoImport) { + // @ts-expect-error + const { ext, suffix, originalName, newName } = args[6]?.__isComponentAutoImport; + for (const codeAction of details?.codeActions ?? []) { + for (const change of codeAction.changes) { + for (const textChange of change.textChanges) { + textChange.newText = textChange.newText.replace('import ' + originalName + ' from ', 'import ' + newName + ' from '); + } + } + } + } + // @ts-expect-error + if (args[6]?.__isAutoImport) { + // @ts-expect-error + const { fileName } = args[6]?.__isAutoImport; + const sourceScript = language.scripts.get(asScriptId(fileName)); + if (sourceScript?.generated?.root instanceof language_core_1$4.VueVirtualCode) { + const sfc = sourceScript.generated.root.getVueSfc(); + if (!sfc?.descriptor.script && !sfc?.descriptor.scriptSetup) { + for (const codeAction of details?.codeActions ?? []) { + for (const change of codeAction.changes) { + for (const textChange of change.textChanges) { + textChange.newText = `<script setup lang="ts">${textChange.newText}</script>\n\n`; + break; + } + break; + } + break; + } + } + } + } + return details; + }; +} +function getCodeFixesAtPosition(getCodeFixesAtPosition) { + return (...args) => { + let result = getCodeFixesAtPosition(...args); + // filter __VLS_ + result = result.filter(entry => entry.description.indexOf('__VLS_') === -1); + return result; + }; +} +function getQuickInfoAtPosition(ts, languageService, getQuickInfoAtPosition) { + return (...args) => { + const result = getQuickInfoAtPosition(...args); + if (result && result.documentation?.length === 1 && result.documentation[0].text.startsWith('__VLS_emit,')) { + const [_, emitVarName, eventName] = result.documentation[0].text.split(','); + const program = languageService.getProgram(); + const typeChecker = program.getTypeChecker(); + const sourceFile = program.getSourceFile(args[0]); + result.documentation = undefined; + let symbolNode; + sourceFile?.forEachChild(function visit(node) { + if (ts.isIdentifier(node) && node.text === emitVarName) { + symbolNode = node; + } + if (symbolNode) { + return; + } + ts.forEachChild(node, visit); + }); + if (symbolNode) { + const emitSymbol = typeChecker.getSymbolAtLocation(symbolNode); + if (emitSymbol) { + const type = typeChecker.getTypeOfSymbolAtLocation(emitSymbol, symbolNode); + const calls = type.getCallSignatures(); + for (const call of calls) { + const callEventName = typeChecker.getTypeOfSymbolAtLocation(call.parameters[0], symbolNode).value; + call.getJsDocTags(); + if (callEventName === eventName) { + result.documentation = call.getDocumentationComment(typeChecker); + result.tags = call.getJsDocTags(); + } + } + } + } + } + return result; + }; +} +function getEncodedSemanticClassifications(ts, language, languageService, asScriptId, getEncodedSemanticClassifications) { + return (filePath, span, format) => { + const fileName = filePath.replace(windowsPathReg, '/'); + const result = getEncodedSemanticClassifications(fileName, span, format); + const file = language.scripts.get(asScriptId(fileName)); + if (file?.generated?.root instanceof language_core_1$4.VueVirtualCode) { + const { template } = file.generated.root.sfc; + if (template) { + for (const componentSpan of getComponentSpans.call({ typescript: ts, languageService }, file.generated.root, template, { + start: span.start - template.startTagEnd, + length: span.length, + })) { + result.spans.push(componentSpan.start + template.startTagEnd, componentSpan.length, 256 // class + ); + } + } + } + return result; + }; +} +function getComponentSpans(vueCode, template, spanTemplateRange) { + const { typescript: ts, languageService } = this; + const result = []; + const validComponentNames = (0, componentInfos_1._getComponentNames)(ts, languageService, vueCode); + const components = new Set([ + ...validComponentNames, + ...validComponentNames.map(language_core_1$4.hyphenateTag), + ]); + if (template.ast) { + for (const node of (0, language_core_1$4.forEachElementNode)(template.ast)) { + if (node.loc.end.offset <= spanTemplateRange.start || node.loc.start.offset >= (spanTemplateRange.start + spanTemplateRange.length)) { + continue; + } + if (components.has(node.tag)) { + let start = node.loc.start.offset; + if (template.lang === 'html') { + start += '<'.length; + } + result.push({ + start, + length: node.tag.length, + }); + if (template.lang === 'html' && !node.isSelfClosing) { + result.push({ + start: node.loc.start.offset + node.loc.source.lastIndexOf(node.tag), + length: node.tag.length, + }); + } + } + } + } + return result; +} + +var empty = {}; + +Object.defineProperty(empty, "__esModule", { value: true }); +empty.create = create$3; +console.warn('[volar-service-pug] this module is not yet supported for web.'); +function create$3() { + return { + name: 'pug (stub)', + capabilities: {}, + create() { + return {}; + }, + }; +} + +Object.defineProperty(vueTemplate, "__esModule", { value: true }); +vueTemplate.create = create$2; +const language_core_1$3 = languageCore; +const shared_1 = require$$1$1; +const common_1$1 = common; +const volar_service_html_1 = volarServiceHtml; +const volar_service_pug_1 = empty; +const html = require$$5$1; +const vscode_uri_1$2 = umdExports; +const nameCasing_1 = nameCasing; +const types_1 = types; +const data_1 = data; +const specialTags = new Set(['slot', 'component', 'template']); +const specialProps = new Set(['class', 'is', 'key', 'ref', 'style']); +let builtInData; +let modelData; +function create$2(mode, ts, getTsPluginClient) { + let customData = []; + let extraCustomData = []; + let lastCompletionComponentNames = new Set(); + const tsDocumentations = new Map(); + const onDidChangeCustomDataListeners = new Set(); + const onDidChangeCustomData = (listener) => { + onDidChangeCustomDataListeners.add(listener); + return { + dispose() { + onDidChangeCustomDataListeners.delete(listener); + }, + }; + }; + const baseService = mode === 'pug' + ? (0, volar_service_pug_1.create)({ + getCustomData() { + return [ + ...customData, + ...extraCustomData, + ]; + }, + onDidChangeCustomData, + }) + : (0, volar_service_html_1.create)({ + documentSelector: ['html', 'markdown'], + getCustomData() { + return [ + ...customData, + ...extraCustomData, + ]; + }, + onDidChangeCustomData, + }); + return { + name: `vue-template (${mode})`, + capabilities: { + ...baseService.capabilities, + completionProvider: { + triggerCharacters: [ + ...baseService.capabilities.completionProvider?.triggerCharacters ?? [], + '@', // vue event shorthand + ], + }, + inlayHintProvider: {}, + hoverProvider: true, + diagnosticProvider: { + interFileDependencies: false, + workspaceDiagnostics: false, + }, + semanticTokensProvider: { + legend: { + tokenTypes: ['class'], + tokenModifiers: [], + }, + } + }, + create(context) { + const tsPluginClient = getTsPluginClient?.(context); + const baseServiceInstance = baseService.create(context); + builtInData ??= (0, data_1.loadTemplateData)(context.env.locale ?? 'en'); + modelData ??= (0, data_1.loadModelModifiersData)(context.env.locale ?? 'en'); + // https://vuejs.org/api/built-in-directives.html#v-on + // https://vuejs.org/api/built-in-directives.html#v-bind + const eventModifiers = {}; + const propModifiers = {}; + const vOn = builtInData.globalAttributes?.find(x => x.name === 'v-on'); + const vBind = builtInData.globalAttributes?.find(x => x.name === 'v-bind'); + if (vOn) { + const markdown = (typeof vOn.description === 'string' ? vOn.description : vOn.description?.value) ?? ''; + const modifiers = markdown + .split('\n- ')[4] + .split('\n').slice(2, -1); + for (let text of modifiers) { + text = text.substring(' - `.'.length); + const [name, disc] = text.split('` - '); + eventModifiers[name] = disc; + } + } + if (vBind) { + const markdown = (typeof vBind.description === 'string' ? vBind.description : vBind.description?.value) ?? ''; + const modifiers = markdown + .split('\n- ')[4] + .split('\n').slice(2, -1); + for (let text of modifiers) { + text = text.substring(' - `.'.length); + const [name, disc] = text.split('` - '); + propModifiers[name] = disc; + } + } + const disposable = context.env.onDidChangeConfiguration?.(() => initializing = undefined); + let initializing; + return { + ...baseServiceInstance, + dispose() { + baseServiceInstance.dispose?.(); + disposable?.dispose(); + }, + async provideCompletionItems(document, position, completionContext, token) { + if (!isSupportedDocument(document)) { + return; + } + if (!context.project.vue) { + return; + } + const vueCompilerOptions = context.project.vue.compilerOptions; + let sync; + let currentVersion; + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$2.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + if (sourceScript?.generated?.root instanceof language_core_1$3.VueVirtualCode) { + // #4298: Precompute HTMLDocument before provideHtmlData to avoid parseHTMLDocument requesting component names from tsserver + baseServiceInstance.provideCompletionItems?.(document, position, completionContext, token); + sync = (await provideHtmlData(vueCompilerOptions, sourceScript.id, sourceScript.generated.root)).sync; + currentVersion = await sync(); + } + let htmlComplete = await baseServiceInstance.provideCompletionItems?.(document, position, completionContext, token); + while (currentVersion !== (currentVersion = await sync?.())) { + htmlComplete = await baseServiceInstance.provideCompletionItems?.(document, position, completionContext, token); + } + if (!htmlComplete) { + return; + } + if (sourceScript?.generated) { + const virtualCode = sourceScript.generated.embeddedCodes.get('template'); + if (virtualCode) { + const embeddedDocumentUri = context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id); + afterHtmlCompletion(htmlComplete, context.documents.get(embeddedDocumentUri, virtualCode.languageId, virtualCode.snapshot)); + } + } + return htmlComplete; + }, + async provideInlayHints(document) { + if (!isSupportedDocument(document)) { + return; + } + if (!context.project.vue) { + return; + } + const vueCompilerOptions = context.project.vue.compilerOptions; + const enabled = await context.env.getConfiguration?.('vue.inlayHints.missingProps') ?? false; + if (!enabled) { + return; + } + const result = []; + const uri = vscode_uri_1$2.URI.parse(document.uri); + const decoded = context.decodeEmbeddedDocumentUri(uri); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!virtualCode) { + return; + } + const code = context.language.scripts.get(decoded[0])?.generated?.root; + const scanner = getScanner(baseServiceInstance, document); + if (code instanceof language_core_1$3.VueVirtualCode && scanner) { + // visualize missing required props + const casing = await (0, nameCasing_1.getNameCasing)(context, decoded[0]); + const components = await tsPluginClient?.getComponentNames(code.fileName) ?? []; + const componentProps = {}; + let token; + let current; + while ((token = scanner.scan()) !== html.TokenType.EOS) { + if (token === html.TokenType.StartTag) { + const tagName = scanner.getTokenText(); + const checkTag = tagName.indexOf('.') >= 0 + ? tagName + : components.find(component => component === tagName || (0, language_core_1$3.hyphenateTag)(component) === tagName); + if (checkTag) { + componentProps[checkTag] ??= (await tsPluginClient?.getComponentProps(code.fileName, checkTag, true) ?? []).map(prop => prop.name); + current = { + unburnedRequiredProps: [...componentProps[checkTag]], + labelOffset: scanner.getTokenOffset() + scanner.getTokenLength(), + insertOffset: scanner.getTokenOffset() + scanner.getTokenLength(), + }; + } + } + else if (token === html.TokenType.AttributeName) { + if (current) { + let attrText = scanner.getTokenText(); + if (attrText === 'v-bind') { + current.unburnedRequiredProps = []; + } + else { + // remove modifiers + if (attrText.indexOf('.') >= 0) { + attrText = attrText.split('.')[0]; + } + // normalize + if (attrText.startsWith('v-bind:')) { + attrText = attrText.substring('v-bind:'.length); + } + else if (attrText.startsWith(':')) { + attrText = attrText.substring(':'.length); + } + else if (attrText.startsWith('v-model:')) { + attrText = attrText.substring('v-model:'.length); + } + else if (attrText === 'v-model') { + attrText = vueCompilerOptions.target >= 3 ? 'modelValue' : 'value'; // TODO: support for experimentalModelPropName? + } + else if (attrText.startsWith('@')) { + attrText = 'on-' + (0, language_core_1$3.hyphenateAttr)(attrText.substring('@'.length)); + } + current.unburnedRequiredProps = current.unburnedRequiredProps.filter(propName => { + return attrText !== propName + && attrText !== (0, language_core_1$3.hyphenateAttr)(propName); + }); + } + } + } + else if (token === html.TokenType.StartTagSelfClose || token === html.TokenType.StartTagClose) { + if (current) { + for (const requiredProp of current.unburnedRequiredProps) { + result.push({ + label: `${requiredProp}!`, + paddingLeft: true, + position: document.positionAt(current.labelOffset), + kind: 2, + textEdits: [{ + range: { + start: document.positionAt(current.insertOffset), + end: document.positionAt(current.insertOffset), + }, + newText: ` :${casing.attr === types_1.AttrNameCasing.Kebab ? (0, language_core_1$3.hyphenateAttr)(requiredProp) : requiredProp}=`, + }], + }); + } + current = undefined; + } + } + if (token === html.TokenType.AttributeName || token === html.TokenType.AttributeValue) { + if (current) { + current.insertOffset = scanner.getTokenOffset() + scanner.getTokenLength(); + } + } + } + } + return result; + }, + provideHover(document, position, token) { + if (!isSupportedDocument(document)) { + return; + } + if (context.decodeEmbeddedDocumentUri(vscode_uri_1$2.URI.parse(document.uri))) { + updateExtraCustomData([]); + } + return baseServiceInstance.provideHover?.(document, position, token); + }, + async provideDiagnostics(document, token) { + if (!isSupportedDocument(document)) { + return; + } + const originalResult = await baseServiceInstance.provideDiagnostics?.(document, token); + const uri = vscode_uri_1$2.URI.parse(document.uri); + const decoded = context.decodeEmbeddedDocumentUri(uri); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!virtualCode) { + return; + } + const code = context.language.scripts.get(decoded[0])?.generated?.root; + if (!(code instanceof language_core_1$3.VueVirtualCode)) { + return; + } + const templateErrors = []; + const { template } = code.sfc; + if (template) { + for (const error of template.errors) { + onCompilerError(error, 1); + } + for (const warning of template.warnings) { + onCompilerError(warning, 2); + } + function onCompilerError(error, severity) { + const templateHtmlRange = { + start: error.loc?.start.offset ?? 0, + end: error.loc?.end.offset ?? 0, + }; + let errorMessage = error.message; + templateErrors.push({ + range: { + start: document.positionAt(templateHtmlRange.start), + end: document.positionAt(templateHtmlRange.end), + }, + severity, + code: error.code, + source: 'vue', + message: errorMessage, + }); + } + } + return [ + ...originalResult ?? [], + ...templateErrors, + ]; + }, + provideDocumentSemanticTokens(document, range, legend) { + if (!isSupportedDocument(document)) { + return; + } + if (!context.project.vue) { + return; + } + const vueCompilerOptions = context.project.vue.compilerOptions; + const languageService = context.inject('typescript/languageService'); + if (!languageService) { + return; + } + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$2.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + if (!sourceScript + || !(sourceScript.generated?.root instanceof language_core_1$3.VueVirtualCode) + || !sourceScript.generated.root.sfc.template) { + return []; + } + const { template } = sourceScript.generated.root.sfc; + const spans = common_1$1.getComponentSpans.call({ + files: context.language.scripts, + languageService, + typescript: ts, + vueOptions: vueCompilerOptions, + }, sourceScript.generated.root, template, { + start: document.offsetAt(range.start), + length: document.offsetAt(range.end) - document.offsetAt(range.start), + }); + const classTokenIndex = legend.tokenTypes.indexOf('class'); + return spans.map(span => { + const start = document.positionAt(span.start); + return [ + start.line, + start.character, + span.length, + classTokenIndex, + 0, + ]; + }); + }, + }; + async function provideHtmlData(vueCompilerOptions, sourceDocumentUri, vueCode) { + await (initializing ??= initialize()); + const casing = await (0, nameCasing_1.getNameCasing)(context, sourceDocumentUri); + if (builtInData.tags) { + for (const tag of builtInData.tags) { + if (isItemKey(tag.name)) { + continue; + } + if (specialTags.has(tag.name)) { + tag.name = parseItemKey('specialTag', tag.name, ''); + } + else if (casing.tag === types_1.TagNameCasing.Kebab) { + tag.name = (0, language_core_1$3.hyphenateTag)(tag.name); + } + else { + tag.name = (0, shared_1.camelize)((0, shared_1.capitalize)(tag.name)); + } + } + } + const promises = []; + const tagInfos = new Map(); + let version = 0; + let components; + let templateContextProps; + tsDocumentations.clear(); + updateExtraCustomData([ + html.newHTMLDataProvider('vue-template-built-in', builtInData), + { + getId: () => 'vue-template', + isApplicable: () => true, + provideTags: () => { + if (!components) { + promises.push((async () => { + components = (await tsPluginClient?.getComponentNames(vueCode.fileName) ?? []) + .filter(name => name !== 'Transition' + && name !== 'TransitionGroup' + && name !== 'KeepAlive' + && name !== 'Suspense' + && name !== 'Teleport'); + lastCompletionComponentNames = new Set(components); + version++; + })()); + return []; + } + const scriptSetupRanges = vueCode.sfc.scriptSetup + ? (0, language_core_1$3.parseScriptSetupRanges)(ts, vueCode.sfc.scriptSetup.ast, vueCompilerOptions) + : undefined; + const names = new Set(); + const tags = []; + for (const tag of components) { + if (casing.tag === types_1.TagNameCasing.Kebab) { + names.add((0, language_core_1$3.hyphenateTag)(tag)); + } + else if (casing.tag === types_1.TagNameCasing.Pascal) { + names.add(tag); + } + } + for (const binding of scriptSetupRanges?.bindings ?? []) { + const name = vueCode.sfc.scriptSetup.content.substring(binding.start, binding.end); + if (casing.tag === types_1.TagNameCasing.Kebab) { + names.add((0, language_core_1$3.hyphenateTag)(name)); + } + else if (casing.tag === types_1.TagNameCasing.Pascal) { + names.add(name); + } + } + for (const name of names) { + tags.push({ + name: name, + attributes: [], + }); + } + return tags; + }, + provideAttributes: tag => { + const tagInfo = tagInfos.get(tag); + if (!tagInfo) { + promises.push((async () => { + const attrs = await tsPluginClient?.getElementAttrs(vueCode.fileName, tag) ?? []; + const propsInfo = await tsPluginClient?.getComponentProps(vueCode.fileName, tag) ?? []; + const events = await tsPluginClient?.getComponentEvents(vueCode.fileName, tag) ?? []; + tagInfos.set(tag, { + attrs, + propsInfo: propsInfo.filter(prop => !prop.name.startsWith('ref_')), + events, + }); + version++; + })()); + return []; + } + const { attrs, propsInfo, events } = tagInfo; + const props = propsInfo.map(prop => prop.name); + const attributes = []; + const _tsCodegen = language_core_1$3.tsCodegen.get(vueCode.sfc); + if (_tsCodegen) { + if (!templateContextProps) { + promises.push((async () => { + templateContextProps = await tsPluginClient?.getTemplateContextProps(vueCode.fileName) ?? []; + version++; + })()); + return []; + } + let ctxVars = [ + ..._tsCodegen.scriptRanges()?.bindings.map(binding => vueCode.sfc.script.content.substring(binding.start, binding.end)) ?? [], + ..._tsCodegen.scriptSetupRanges()?.bindings.map(binding => vueCode.sfc.scriptSetup.content.substring(binding.start, binding.end)) ?? [], + ...templateContextProps, + ]; + ctxVars = [...new Set(ctxVars)]; + const dirs = ctxVars.map(language_core_1$3.hyphenateAttr).filter(v => v.startsWith('v-')); + for (const dir of dirs) { + attributes.push({ + name: dir, + }); + } + } + const propsSet = new Set(props); + for (const prop of [...props, ...attrs]) { + const isGlobal = !propsSet.has(prop); + const name = casing.attr === types_1.AttrNameCasing.Camel ? prop : (0, language_core_1$3.hyphenateAttr)(prop); + const isEvent = (0, language_core_1$3.hyphenateAttr)(name).startsWith('on-'); + if (isEvent) { + const propNameBase = name.startsWith('on-') + ? name.slice('on-'.length) + : (name['on'.length].toLowerCase() + name.slice('onX'.length)); + const propKey = parseItemKey('componentEvent', isGlobal ? '*' : tag, propNameBase); + attributes.push({ + name: 'v-on:' + propNameBase, + description: propKey, + }, { + name: '@' + propNameBase, + description: propKey, + }); + } + else { + const propName = name; + const propKey = parseItemKey('componentProp', isGlobal ? '*' : tag, propName); + const propDescription = propsInfo.find(prop => { + const name = casing.attr === types_1.AttrNameCasing.Camel ? prop.name : (0, language_core_1$3.hyphenateAttr)(prop.name); + return name === propName; + })?.commentMarkdown; + if (propDescription) { + tsDocumentations.set(propName, propDescription); + } + attributes.push({ + name: propName, + description: propKey, + }, { + name: ':' + propName, + description: propKey, + }, { + name: 'v-bind:' + propName, + description: propKey, + }); + } + } + for (const event of events) { + const name = casing.attr === types_1.AttrNameCasing.Camel ? event : (0, language_core_1$3.hyphenateAttr)(event); + const propKey = parseItemKey('componentEvent', tag, name); + attributes.push({ + name: 'v-on:' + name, + description: propKey, + }, { + name: '@' + name, + description: propKey, + }); + } + const models = []; + for (const prop of [...props, ...attrs]) { + if (prop.startsWith('onUpdate:')) { + const isGlobal = !propsSet.has(prop); + models.push([isGlobal, prop.substring('onUpdate:'.length)]); + } + } + for (const event of events) { + if (event.startsWith('update:')) { + models.push([false, event.substring('update:'.length)]); + } + } + for (const [isGlobal, model] of models) { + const name = casing.attr === types_1.AttrNameCasing.Camel ? model : (0, language_core_1$3.hyphenateAttr)(model); + const propKey = parseItemKey('componentProp', isGlobal ? '*' : tag, name); + attributes.push({ + name: 'v-model:' + name, + description: propKey, + }); + if (model === 'modelValue') { + attributes.push({ + name: 'v-model', + description: propKey, + }); + } + } + return attributes; + }, + provideValues: () => [], + }, + ]); + return { + async sync() { + await Promise.all(promises); + return version; + } + }; + } + function afterHtmlCompletion(completionList, document) { + const replacement = getReplacement(completionList, document); + if (replacement) { + const isEvent = replacement.text.startsWith('v-on:') || replacement.text.startsWith('@'); + const isProp = replacement.text.startsWith('v-bind:') || replacement.text.startsWith(':'); + const isModel = replacement.text.startsWith('v-model:') || replacement.text.split('.')[0] === 'v-model'; + const hasModifier = replacement.text.includes('.'); + const validModifiers = isEvent ? eventModifiers + : isProp ? propModifiers + : undefined; + const modifiers = replacement.text.split('.').slice(1); + const textWithoutModifier = replacement.text.split('.')[0]; + if (validModifiers && hasModifier) { + for (const modifier in validModifiers) { + if (modifiers.includes(modifier)) { + continue; + } + const modifierDes = validModifiers[modifier]; + const insertText = textWithoutModifier + modifiers.slice(0, -1).map(m => '.' + m).join('') + '.' + modifier; + const newItem = { + label: modifier, + filterText: insertText, + documentation: { + kind: 'markdown', + value: modifierDes, + }, + textEdit: { + range: replacement.textEdit.range, + newText: insertText, + }, + kind: 20, + }; + completionList.items.push(newItem); + } + } + else if (hasModifier && isModel) { + for (const modifier of modelData.globalAttributes ?? []) { + if (modifiers.includes(modifier.name)) { + continue; + } + const insertText = textWithoutModifier + modifiers.slice(0, -1).map(m => '.' + m).join('') + '.' + modifier.name; + const newItem = { + label: modifier.name, + filterText: insertText, + documentation: { + kind: 'markdown', + value: (typeof modifier.description === 'object' ? modifier.description.value : modifier.description) + + '\n\n' + modifier.references?.map(ref => `[${ref.name}](${ref.url})`).join(' | '), + }, + textEdit: { + range: replacement.textEdit.range, + newText: insertText, + }, + kind: 20, + }; + completionList.items.push(newItem); + } + } + } + completionList.items = completionList.items.filter(item => !specialTags.has(item.label)); + const htmlDocumentations = new Map(); + for (const item of completionList.items) { + const documentation = typeof item.documentation === 'string' ? item.documentation : item.documentation?.value; + if (documentation && !isItemKey(documentation) && item.documentation) { + htmlDocumentations.set(item.label, documentation); + } + } + for (const item of completionList.items) { + const resolvedLabelKey = resolveItemKey(item.label); + if (resolvedLabelKey) { + const name = resolvedLabelKey.tag; + item.label = name; + if (item.textEdit) { + item.textEdit.newText = name; + } + if (item.insertText) { + item.insertText = name; + } + if (item.sortText) { + item.sortText = name; + } + } + const itemKeyStr = typeof item.documentation === 'string' ? item.documentation : item.documentation?.value; + let resolvedKey = itemKeyStr ? resolveItemKey(itemKeyStr) : undefined; + if (resolvedKey) { + const documentations = []; + if (tsDocumentations.has(resolvedKey.prop)) { + documentations.push(tsDocumentations.get(resolvedKey.prop)); + } + let { isEvent, propName } = getPropName(resolvedKey); + if (isEvent) { + // click -> onclick + propName = 'on' + propName; + } + if (htmlDocumentations.has(propName)) { + documentations.push(htmlDocumentations.get(propName)); + } + if (documentations.length) { + item.documentation = { + kind: 'markdown', + value: documentations.join('\n\n'), + }; + } + else { + item.documentation = undefined; + } + } + else { + let propName = item.label; + const isVBind = propName.startsWith('v-bind:') ? (propName = propName.slice('v-bind:'.length), true) : false; + const isVBindAbbr = propName.startsWith(':') && propName !== ':' ? (propName = propName.slice(':'.length), true) : false; + /** + * for `is`, `key` and `ref` starting with `v-bind:` or `:` + * that without `internalItemId`. + */ + if (isVBind || isVBindAbbr) { + resolvedKey = { + type: 'componentProp', + tag: '^', + prop: propName, + }; + } + if (tsDocumentations.has(propName)) { + const originalDocumentation = typeof item.documentation === 'string' ? item.documentation : item.documentation?.value; + item.documentation = { + kind: 'markdown', + value: [ + tsDocumentations.get(propName), + originalDocumentation, + ].filter(str => !!str).join('\n\n'), + }; + } + } + const tokens = []; + if (item.kind === 10 && lastCompletionComponentNames.has((0, language_core_1$3.hyphenateTag)(item.label))) { + item.kind = 6; + tokens.push('\u0000'); + } + else if (resolvedKey) { + const isComponent = resolvedKey.tag !== '*'; + const { isEvent, propName } = getPropName(resolvedKey); + if (resolvedKey.type === 'componentProp') { + if (isComponent || specialProps.has(propName)) { + item.kind = 5; + } + } + else if (isEvent) { + item.kind = 23; + if (propName.startsWith('vnode-')) { + tokens.push('\u0004'); + } + } + if (isComponent + || (isComponent && isEvent) + || specialProps.has(propName)) { + tokens.push('\u0000'); + if (item.label.startsWith(':')) { + tokens.push('\u0001'); + } + else if (item.label.startsWith('@')) { + tokens.push('\u0002'); + } + else if (item.label.startsWith('v-bind:')) { + tokens.push('\u0003'); + } + else if (item.label.startsWith('v-on:')) { + tokens.push('\u0004'); + } + else { + tokens.push('\u0000'); + } + if (specialProps.has(propName)) { + tokens.push('\u0001'); + } + else { + tokens.push('\u0000'); + } + } + } + else if (specialProps.has(item.label)) { + item.kind = 5; + tokens.push('\u0000', '\u0000', '\u0001'); + } + else if (item.label === 'v-if' + || item.label === 'v-else-if' + || item.label === 'v-else' + || item.label === 'v-for') { + item.kind = 14; + tokens.push('\u0003'); + } + else if (item.label.startsWith('v-')) { + item.kind = 3; + tokens.push('\u0002'); + } + else { + tokens.push('\u0001'); + } + item.sortText = tokens.join('') + (item.sortText ?? item.label); + } + updateExtraCustomData([]); + } + async function initialize() { + customData = await getHtmlCustomData(); + } + async function getHtmlCustomData() { + const customData = await context.env.getConfiguration?.('html.customData') ?? []; + const newData = []; + for (const customDataPath of customData) { + for (const workspaceFolder of context.env.workspaceFolders) { + const uri = vscode_uri_1$2.Utils.resolvePath(workspaceFolder, customDataPath); + const json = await context.env.fs?.readFile?.(uri); + if (json) { + try { + const data = JSON.parse(json); + newData.push(html.newHTMLDataProvider(customDataPath, data)); + } + catch (error) { + console.error(error); + } + } + } + } + return newData; + } + }, + }; + function getScanner(service, document) { + if (mode === 'html') { + return service.provide['html/languageService']().createScanner(document.getText()); + } + else { + const pugDocument = service.provide['pug/pugDocument'](document); + if (pugDocument) { + return service.provide['pug/languageService']().createScanner(pugDocument); + } + } + } + function updateExtraCustomData(extraData) { + extraCustomData = extraData; + onDidChangeCustomDataListeners.forEach(l => l()); + } + function isSupportedDocument(document) { + if (mode === 'pug') { + return document.languageId === 'jade'; + } + else { + return document.languageId === 'html'; + } + } +} +function parseItemKey(type, tag, prop) { + return '__VLS_data=' + type + ',' + tag + ',' + prop; +} +function isItemKey(key) { + return key.startsWith('__VLS_data='); +} +function resolveItemKey(key) { + if (isItemKey(key)) { + const strs = key.slice('__VLS_data='.length).split(','); + return { + type: strs[0], + tag: strs[1], + prop: strs[2], + }; + } +} +function getReplacement(list, doc) { + for (const item of list.items) { + if (item.textEdit && 'range' in item.textEdit) { + return { + item: item, + textEdit: item.textEdit, + text: doc.getText(item.textEdit.range) + }; + } + } +} +function getPropName(itemKey) { + const name = (0, language_core_1$3.hyphenateAttr)(itemKey.prop); + if (name.startsWith('on-')) { + return { isEvent: true, propName: name.slice('on-'.length) }; + } + else if (itemKey.type === 'componentEvent') { + return { isEvent: true, propName: name }; + } + return { isEvent: false, propName: name }; +} + +var vueTwoslashQueries = {}; + +Object.defineProperty(vueTwoslashQueries, "__esModule", { value: true }); +vueTwoslashQueries.create = create$1; +const vue = languageCore; +const vscode_uri_1$1 = umdExports; +const twoslashReg = /<!--\s*\^\?\s*-->/g; +function create$1(getTsPluginClient) { + return { + name: 'vue-twoslash-queries', + capabilities: { + inlayHintProvider: {}, + }, + create(context) { + const tsPluginClient = getTsPluginClient?.(context); + return { + async provideInlayHints(document, range) { + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1$1.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (!(sourceScript?.generated?.root instanceof vue.VueVirtualCode) || virtualCode?.id !== 'template') { + return; + } + const hoverOffsets = []; + const inlayHints = []; + for (const pointer of document.getText(range).matchAll(twoslashReg)) { + const offset = pointer.index + pointer[0].indexOf('^?') + document.offsetAt(range.start); + const position = document.positionAt(offset); + hoverOffsets.push([position, document.offsetAt({ + line: position.line - 1, + character: position.character, + })]); + } + for (const [pointerPosition, hoverOffset] of hoverOffsets) { + const map = context.language.maps.get(virtualCode, sourceScript); + for (const [sourceOffset] of map.toSourceLocation(hoverOffset)) { + const quickInfo = await tsPluginClient?.getQuickInfoAtPosition(sourceScript.generated.root.fileName, sourceOffset); + if (quickInfo) { + inlayHints.push({ + position: { line: pointerPosition.line, character: pointerPosition.character + 2 }, + label: quickInfo, + paddingLeft: true, + paddingRight: false, + }); + break; + } + } + } + return inlayHints; + }, + }; + }, + }; +} + +var vueInlayhints = {}; + +Object.defineProperty(vueInlayhints, "__esModule", { value: true }); +vueInlayhints.create = create; +vueInlayhints.findDestructuredProps = findDestructuredProps; +const language_core_1$2 = languageCore; +const vscode_uri_1 = umdExports; +const common_1 = requireCommon(); +function create(ts) { + return { + name: 'vue-inlay-hints', + capabilities: { + inlayHintProvider: {}, + }, + create(context) { + return { + async provideInlayHints(document, range) { + const settings = {}; + const result = []; + const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1.URI.parse(document.uri)); + const sourceScript = decoded && context.language.scripts.get(decoded[0]); + const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]); + if (virtualCode instanceof language_core_1$2.VueVirtualCode) { + const codegen = language_core_1$2.tsCodegen.get(virtualCode.sfc); + const inlayHints = [ + ...codegen?.generatedTemplate()?.inlayHints ?? [], + ...codegen?.generatedScript()?.inlayHints ?? [], + ]; + const scriptSetupRanges = codegen?.scriptSetupRanges(); + if (scriptSetupRanges?.props.destructured && virtualCode.sfc.scriptSetup?.ast) { + for (const [prop, isShorthand] of findDestructuredProps(ts, virtualCode.sfc.scriptSetup.ast, scriptSetupRanges.props.destructured)) { + const name = prop.text; + const end = prop.getEnd(); + const pos = isShorthand ? end : end - name.length; + const label = isShorthand ? `: props.${name}` : 'props.'; + inlayHints.push({ + blockName: 'scriptSetup', + offset: pos, + setting: 'vue.inlayHints.destructuredProps', + label, + }); + } + } + const blocks = [ + virtualCode.sfc.template, + virtualCode.sfc.script, + virtualCode.sfc.scriptSetup, + ]; + const start = document.offsetAt(range.start); + const end = document.offsetAt(range.end); + for (const hint of inlayHints) { + const block = blocks.find(block => block?.name === hint.blockName); + const hintOffset = (block?.startTagEnd ?? 0) + hint.offset; + if (hintOffset >= start && hintOffset <= end) { + settings[hint.setting] ??= await context.env.getConfiguration?.(hint.setting) ?? false; + if (!settings[hint.setting]) { + continue; + } + result.push({ + label: hint.label, + paddingRight: hint.paddingRight, + paddingLeft: hint.paddingLeft, + position: document.positionAt(hintOffset), + kind: 2, + tooltip: hint.tooltip ? { + kind: 'markdown', + value: hint.tooltip, + } : undefined, + }); + } + } + } + return result; + }, + }; + }, + }; +} +/** + * Refactored from https://github.com/vuejs/core/blob/main/packages/compiler-sfc/src/script/definePropsDestructure.ts + */ +function findDestructuredProps(ts, ast, props) { + const rootScope = {}; + const scopeStack = [rootScope]; + let currentScope = rootScope; + const excludedIds = new WeakSet(); + for (const prop of props) { + rootScope[prop] = true; + } + function pushScope() { + scopeStack.push((currentScope = Object.create(currentScope))); + } + function popScope() { + scopeStack.pop(); + currentScope = scopeStack[scopeStack.length - 1] || null; + } + function registerLocalBinding(id) { + excludedIds.add(id); + if (currentScope) { + currentScope[id.text] = false; + } + } + const references = []; + walkScope(ast, true); + walk(ast); + return references; + function walkScope(node, isRoot = false) { + ts.forEachChild(node, stmt => { + if (ts.isVariableStatement(stmt)) { + for (const decl of stmt.declarationList.declarations) { + walkVariableDeclaration(decl, isRoot); + } + } + else if (ts.isFunctionDeclaration(stmt) || + ts.isClassDeclaration(stmt)) { + const declare = ts.getModifiers(stmt)?.find(modifier => modifier.kind === ts.SyntaxKind.DeclareKeyword); + if (!stmt.name || declare) { + return; + } + registerLocalBinding(stmt.name); + } + else if ((ts.isForOfStatement(stmt) || ts.isForInStatement(stmt)) && + ts.isVariableDeclarationList(stmt.initializer)) { + walkVariableDeclaration(stmt.initializer.declarations[0], isRoot); + } + else if (ts.isLabeledStatement(stmt) && + ts.isVariableDeclaration(stmt.statement)) { + walkVariableDeclaration(stmt.statement, isRoot); + } + }); + } + function walkVariableDeclaration(decl, isRoot = false) { + const { initializer, name } = decl; + const isDefineProps = isRoot + && initializer + && ts.isCallExpression(initializer) + && initializer.expression.getText(ast) === 'defineProps'; + for (const id of (0, common_1.collectIdentifiers)(ts, name)) { + if (isDefineProps) { + excludedIds.add(id); + } + else { + registerLocalBinding(id); + } + } + } + function walkFunctionDeclaration(node) { + const { name, parameters } = node; + if (name && ts.isIdentifier(name)) { + registerLocalBinding(name); + } + for (const p of parameters) { + for (const id of (0, common_1.collectIdentifiers)(ts, p)) { + registerLocalBinding(id); + } + } + } + function walk(parent) { + ts.forEachChild(parent, node => { + if (enter(node) ?? true) { + walk(node); + leave(node); + } + }); + function enter(node) { + if (ts.isTypeLiteralNode(node) || + ts.isTypeReferenceNode(node)) { + return false; + } + if (ts.isFunctionLike(node)) { + pushScope(); + walkFunctionDeclaration(node); + if ('body' in node) { + walkScope(node.body); + } + return; + } + if (ts.isCatchClause(node)) { + pushScope(); + const { variableDeclaration: p } = node; + if (p && ts.isIdentifier(p.name)) { + registerLocalBinding(p.name); + } + walkScope(node.block); + return; + } + if (ts.isBlock(node) + && !ts.isFunctionLike(parent) + && !ts.isCatchClause(parent)) { + pushScope(); + walkScope(node); + return; + } + if (ts.isIdentifier(node) + && isReferencedIdentifier(node, parent) + && !excludedIds.has(node)) { + const name = node.text; + if (currentScope[name]) { + const isShorthand = ts.isShorthandPropertyAssignment(parent); + references.push([node, isShorthand]); + } + } + } + function leave(node) { + if (ts.isFunctionLike(node) + || ts.isCatchClause(node) + || (ts.isBlock(node) + && !ts.isFunctionLike(parent) + && !ts.isCatchClause(parent))) { + popScope(); + } + } + } + // TODO: more conditions + function isReferencedIdentifier(id, parent) { + if (!parent) { + return false; + } + if (id.text === 'arguments') { + return false; + } + if (ts.isExpressionWithTypeArguments(parent) || + ts.isInterfaceDeclaration(parent) || + ts.isTypeAliasDeclaration(parent) || + ts.isPropertySignature(parent)) { + return false; + } + if (ts.isPropertyAccessExpression(parent) || + ts.isPropertyAssignment(parent) || + ts.isPropertyDeclaration(parent)) { + if (parent.name === id) { + return false; + } + } + return true; + } +} + +var collectExtractProps$1 = {}; + +Object.defineProperty(collectExtractProps$1, "__esModule", { value: true }); +collectExtractProps$1.collectExtractProps = collectExtractProps; +const language_core_1$1 = languageCore; +function collectExtractProps(fileName, templateCodeRange) { + const { typescript: ts, languageService, language, isTsPlugin, getFileId } = this; + const volarFile = language.scripts.get(getFileId(fileName)); + if (!(volarFile?.generated?.root instanceof language_core_1$1.VueVirtualCode)) { + return; + } + const result = new Map(); + const program = languageService.getProgram(); + const sourceFile = program.getSourceFile(fileName); + const checker = program.getTypeChecker(); + const script = volarFile.generated?.languagePlugin.typescript?.getServiceScript(volarFile.generated.root); + const maps = script ? [...language.maps.forEach(script.code)].map(([_sourceScript, map]) => map) : []; + const sfc = volarFile.generated.root.sfc; + sourceFile.forEachChild(function visit(node) { + if (ts.isPropertyAccessExpression(node) + && ts.isIdentifier(node.expression) + && node.expression.text === '__VLS_ctx' + && ts.isIdentifier(node.name)) { + const { name } = node; + for (const map of maps) { + let mapped = false; + for (const source of map.toSourceLocation(name.getEnd() - (isTsPlugin ? volarFile.snapshot.getLength() : 0))) { + if (source[0] >= sfc.template.startTagEnd + templateCodeRange[0] + && source[0] <= sfc.template.startTagEnd + templateCodeRange[1] + && (0, language_core_1$1.isSemanticTokensEnabled)(source[1].data)) { + mapped = true; + if (!result.has(name.text)) { + const type = checker.getTypeAtLocation(node); + const typeString = checker.typeToString(type, node, ts.TypeFormatFlags.NoTruncation); + result.set(name.text, { + name: name.text, + type: typeString.includes('__VLS_') ? 'any' : typeString, + model: false, + }); + } + const isModel = ts.isPostfixUnaryExpression(node.parent) || ts.isBinaryExpression(node.parent); + if (isModel) { + result.get(name.text).model = true; + } + break; + } + } + if (mapped) { + break; + } + } + } + node.forEachChild(visit); + }); + return [...result.values()]; +} + +var getImportPathForFile$1 = {}; + +Object.defineProperty(getImportPathForFile$1, "__esModule", { value: true }); +getImportPathForFile$1.getImportPathForFile = getImportPathForFile; +function getImportPathForFile(fileName, incomingFileName, preferences) { + const { typescript: ts, languageService, languageServiceHost } = this; + const program = languageService.getProgram(); + const incomingFile = program?.getSourceFile(incomingFileName); + const sourceFile = program?.getSourceFile(fileName); + if (!program || !sourceFile || !incomingFile) { + return; + } + const getModuleSpecifiersWithCacheInfo = ts.moduleSpecifiers.getModuleSpecifiersWithCacheInfo; + const resolutionHost = ts.createModuleSpecifierResolutionHost(program, languageServiceHost); + const moduleSpecifiers = getModuleSpecifiersWithCacheInfo(incomingFile.symbol, program.getTypeChecker(), languageServiceHost.getCompilationSettings(), sourceFile, resolutionHost, preferences); + for (const moduleSpecifier of moduleSpecifiers.moduleSpecifiers) { + return moduleSpecifier; + } +} + +var getPropertiesAtLocation$1 = {}; + +Object.defineProperty(getPropertiesAtLocation$1, "__esModule", { value: true }); +getPropertiesAtLocation$1.getPropertiesAtLocation = getPropertiesAtLocation; +const language_core_1 = languageCore; +function getPropertiesAtLocation(fileName, position) { + const { languageService, language, typescript: ts, isTsPlugin, getFileId } = this; + // mapping + const file = language.scripts.get(getFileId(fileName)); + if (file?.generated) { + const virtualScript = file.generated.languagePlugin.typescript?.getServiceScript(file.generated.root); + if (!virtualScript) { + return; + } + let mapped = false; + for (const [_sourceScript, map] of language.maps.forEach(virtualScript.code)) { + for (const [position2, mapping] of map.toGeneratedLocation(position)) { + if ((0, language_core_1.isCompletionEnabled)(mapping.data)) { + position = position2; + mapped = true; + break; + } + } + if (mapped) { + break; + } + } + if (!mapped) { + return; + } + if (isTsPlugin) { + position += file.snapshot.getLength(); + } + } + const program = languageService.getProgram(); + const sourceFile = program.getSourceFile(fileName); + if (!sourceFile) { + return; + } + const node = findPositionIdentifier(sourceFile, sourceFile, position); + if (!node) { + return; + } + const checker = program.getTypeChecker(); + const type = checker.getTypeAtLocation(node); + const props = type.getProperties(); + return props.map(prop => prop.name); + function findPositionIdentifier(sourceFile, node, offset) { + let result; + node.forEachChild(child => { + if (!result) { + if (child.end === offset && ts.isIdentifier(child)) { + result = child; + } + else if (child.end >= offset && child.getStart(sourceFile) < offset) { + result = findPositionIdentifier(sourceFile, child, offset); + } + } + }); + return result; + } +} + +(function (exports) { + /// <reference types="@volar/typescript" /> + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getFullLanguageServicePlugins = getFullLanguageServicePlugins; + exports.getHybridModeLanguageServicePlugins = getHybridModeLanguageServicePlugins; + __exportStar(languageService$2, exports); + __exportStar(languageCore, exports); + __exportStar(nameCasing, exports); + __exportStar(types, exports); + const types_1 = types; + const volar_service_emmet_1 = empty$1; + const volar_service_json_1 = volarServiceJson; + const volar_service_pug_beautify_1 = volarServicePugBeautify; + const volar_service_typescript_1 = volarServiceTypescript; + const volar_service_typescript_twoslash_queries_1 = volarServiceTypescriptTwoslashQueries; + const docCommentTemplate_1 = docCommentTemplate; + const syntactic_1 = syntactic; + const css_1 = css$1; + const vue_autoinsert_dotvalue_1 = vueAutoinsertDotvalue; + const vue_autoinsert_space_1 = vueAutoinsertSpace; + const vue_directive_comments_1 = vueDirectiveComments; + const vue_document_drop_1 = vueDocumentDrop; + const vue_document_links_1 = vueDocumentLinks; + const vue_extract_file_1 = vueExtractFile; + const vue_sfc_1 = vueSfc; + const vue_template_1 = vueTemplate; + const vue_twoslash_queries_1 = vueTwoslashQueries; + const vue_inlayhints_1 = vueInlayhints; + const language_core_1 = languageCore; + const common_1 = common; + const collectExtractProps_1 = collectExtractProps$1; + const componentInfos_1 = componentInfos; + const getImportPathForFile_1 = getImportPathForFile$1; + const getPropertiesAtLocation_1 = getPropertiesAtLocation$1; + const vscode_uri_1 = umdExports; + const nameCasing_1 = nameCasing; + function getFullLanguageServicePlugins(ts, { disableAutoImportCache } = {}) { + const plugins = [ + ...(0, volar_service_typescript_1.create)(ts, { disableAutoImportCache }), + ...getCommonLanguageServicePlugins(ts, getTsPluginClientForLSP) + ]; + for (let i = 0; i < plugins.length; i++) { + const plugin = plugins[i]; + if (plugin.name === 'typescript-semantic') { + plugins[i] = { + ...plugin, + create(context) { + const created = plugin.create(context); + if (!context.project.typescript) { + return created; + } + const languageService = created.provide['typescript/languageService'](); + if (context.project.vue) { + const proxy = (0, common_1.proxyLanguageServiceForVue)(ts, context.language, languageService, context.project.vue.compilerOptions, s => context.project.typescript?.uriConverter.asUri(s)); + languageService.getCompletionsAtPosition = proxy.getCompletionsAtPosition; + languageService.getCompletionEntryDetails = proxy.getCompletionEntryDetails; + languageService.getCodeFixesAtPosition = proxy.getCodeFixesAtPosition; + languageService.getQuickInfoAtPosition = proxy.getQuickInfoAtPosition; + } + return created; + }, + }; + break; + } + } + return plugins; + function getTsPluginClientForLSP(context) { + if (!context.project.typescript) { + return; + } + const languageService = context.inject('typescript/languageService'); + if (!languageService) { + return; + } + const requestContext = { + typescript: ts, + language: context.language, + languageService, + languageServiceHost: context.project.typescript.languageServiceHost, + isTsPlugin: false, + getFileId: s => context.project.typescript.uriConverter.asUri(s), + }; + return { + async collectExtractProps(...args) { + return await collectExtractProps_1.collectExtractProps.apply(requestContext, args); + }, + async getPropertiesAtLocation(...args) { + return await getPropertiesAtLocation_1.getPropertiesAtLocation.apply(requestContext, args); + }, + async getImportPathForFile(...args) { + return await getImportPathForFile_1.getImportPathForFile.apply(requestContext, args); + }, + async getComponentEvents(...args) { + return await componentInfos_1.getComponentEvents.apply(requestContext, args); + }, + async getComponentNames(...args) { + return await componentInfos_1.getComponentNames.apply(requestContext, args); + }, + async getComponentProps(...args) { + return await componentInfos_1.getComponentProps.apply(requestContext, args); + }, + async getElementAttrs(...args) { + return await componentInfos_1.getElementAttrs.apply(requestContext, args); + }, + async getTemplateContextProps(...args) { + return await componentInfos_1.getTemplateContextProps.apply(requestContext, args); + }, + async getQuickInfoAtPosition(fileName, position) { + const languageService = context.getLanguageService(); + const uri = context.project.typescript.uriConverter.asUri(fileName); + const sourceScript = context.language.scripts.get(uri); + if (!sourceScript) { + return; + } + const document = context.documents.get(uri, sourceScript.languageId, sourceScript.snapshot); + const hover = await languageService.getHover(uri, document.positionAt(position)); + let text = ''; + if (typeof hover?.contents === 'string') { + text = hover.contents; + } + else if (Array.isArray(hover?.contents)) { + text = hover.contents.map(c => typeof c === 'string' ? c : c.value).join('\n'); + } + else if (hover) { + text = hover.contents.value; + } + text = text.replace(/```typescript/g, ''); + text = text.replace(/```/g, ''); + text = text.replace(/---/g, ''); + text = text.trim(); + while (true) { + const newText = text.replace(/\n\n/g, '\n'); + if (newText === text) { + break; + } + text = newText; + } + text = text.replace(/\n/g, ' | '); + return text; + }, + }; + } + } + function getHybridModeLanguageServicePlugins(ts, getTsPluginClient) { + const plugins = [ + (0, syntactic_1.create)(ts), + (0, docCommentTemplate_1.create)(ts), + ...getCommonLanguageServicePlugins(ts, () => getTsPluginClient) + ]; + for (const plugin of plugins) { + // avoid affecting TS plugin + delete plugin.capabilities.semanticTokensProvider; + } + return plugins; + } + function getCommonLanguageServicePlugins(ts, getTsPluginClient) { + return [ + (0, volar_service_typescript_twoslash_queries_1.create)(ts), + (0, css_1.create)(), + (0, volar_service_pug_beautify_1.create)(), + (0, volar_service_json_1.create)(), + (0, vue_template_1.create)('html', ts, getTsPluginClient), + (0, vue_template_1.create)('pug', ts, getTsPluginClient), + (0, vue_sfc_1.create)(), + (0, vue_twoslash_queries_1.create)(getTsPluginClient), + (0, vue_document_links_1.create)(), + (0, vue_document_drop_1.create)(ts, getTsPluginClient), + (0, vue_autoinsert_dotvalue_1.create)(ts, getTsPluginClient), + (0, vue_autoinsert_space_1.create)(), + (0, vue_inlayhints_1.create)(ts), + (0, vue_directive_comments_1.create)(), + (0, vue_extract_file_1.create)(ts, getTsPluginClient), + (0, volar_service_emmet_1.create)({ + mappedLanguages: { + 'vue-root-tags': 'html', + 'postcss': 'scss', + }, + }), + { + name: 'vue-parse-sfc', + capabilities: { + executeCommandProvider: { + commands: [types_1.commands.parseSfc], + }, + }, + create() { + return { + executeCommand(_command, [source]) { + return (0, language_core_1.parse)(source); + }, + }; + }, + }, + { + name: 'vue-name-casing', + capabilities: { + executeCommandProvider: { + commands: [ + types_1.commands.detectNameCasing, + types_1.commands.convertTagsToKebabCase, + types_1.commands.convertTagsToPascalCase, + types_1.commands.convertPropsToKebabCase, + types_1.commands.convertPropsToCamelCase, + ], + } + }, + create(context) { + return { + executeCommand(command, [uri]) { + if (command === types_1.commands.detectNameCasing) { + return (0, nameCasing_1.detect)(context, vscode_uri_1.URI.parse(uri)); + } + else if (command === types_1.commands.convertTagsToKebabCase) { + return (0, nameCasing_1.convertTagName)(context, vscode_uri_1.URI.parse(uri), types_1.TagNameCasing.Kebab, getTsPluginClient(context)); + } + else if (command === types_1.commands.convertTagsToPascalCase) { + return (0, nameCasing_1.convertTagName)(context, vscode_uri_1.URI.parse(uri), types_1.TagNameCasing.Pascal, getTsPluginClient(context)); + } + else if (command === types_1.commands.convertPropsToKebabCase) { + return (0, nameCasing_1.convertAttrName)(context, vscode_uri_1.URI.parse(uri), types_1.AttrNameCasing.Kebab, getTsPluginClient(context)); + } + else if (command === types_1.commands.convertPropsToCamelCase) { + return (0, nameCasing_1.convertAttrName)(context, vscode_uri_1.URI.parse(uri), types_1.AttrNameCasing.Camel, getTsPluginClient(context)); + } + }, + }; + }, + } + ]; + } + +} (languageService)); + +let ts; +let locale; +self.onmessage = async (msg) => { + if (msg.data?.event === "init") { + locale = msg.data.tsLocale; + ts = await importTsFromCdn(msg.data.tsVersion); + self.postMessage("inited"); + return; + } + initialize( + (ctx, { tsconfig, dependencies }) => { + const asFileName = (uri) => uri.path; + const asUri = (fileName) => URI$1.file(fileName); + const env = { + workspaceFolders: [URI$1.file("/")], + locale, + fs: jsdelivr.createNpmFileSystem( + (uri) => { + if (uri.scheme === "file") { + if (uri.path === "/node_modules") { + return ""; + } else if (uri.path.startsWith("/node_modules/")) { + return uri.path.slice("/node_modules/".length); + } + } + }, + (pkgName) => dependencies[pkgName], + (path, content) => { + ctx.host.onFetchCdnFile( + asUri("/node_modules/" + path).toString(), + content + ); + } + ) + }; + const { options: compilerOptions } = ts.convertCompilerOptionsFromJson( + tsconfig?.compilerOptions || {}, + "" + ); + const vueCompilerOptions = languageService.resolveVueCompilerOptions( + tsconfig.vueCompilerOptions || {} + ); + return createTypeScriptWorkerLanguageService({ + typescript: ts, + compilerOptions, + workerContext: ctx, + env, + uriConverter: { + asFileName, + asUri + }, + languagePlugins: [ + languageService.createVueLanguagePlugin( + ts, + compilerOptions, + vueCompilerOptions, + asFileName + ) + ], + languageServicePlugins: languageService.getFullLanguageServicePlugins(ts), + setup({ project }) { + project.vue = { compilerOptions: vueCompilerOptions }; + } + }); + } + ); +}; +async function importTsFromCdn(tsVersion) { + const _module = globalThis.module; + globalThis.module = { exports: {} }; + const tsUrl = `https://cdn.jsdelivr.net/npm/typescript@${tsVersion}/lib/typescript.js`; + await import( + /* @vite-ignore */ + tsUrl + ); + const ts2 = globalThis.module.exports; + globalThis.module = _module; + return ts2; +} diff --git a/assets/wasm-Dhj7AXtS-CsTmP73Z.js b/assets/wasm-Dhj7AXtS-CsTmP73Z.js new file mode 100644 index 0000000..96ed770 --- /dev/null +++ b/assets/wasm-Dhj7AXtS-CsTmP73Z.js @@ -0,0 +1 @@ +var Q=Uint8Array.from(atob("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawBCuGICtEBFgBB/MsSQYzLEjYCAEG0yxJBKjYCAAsDAAELZgEDf0EBIQICQCAAKAIEIgMgACgCACIAayIEIAEoAgQgASgCACIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC+cBAQZ/AkAgACgCACIBIAAoAgQiAE8NACAAIAFrIgJBB3EhAwJAIAFBf3MgAGpBB0kEQEEAIQIgASEADAELIAJBeHEhBkEAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgAhASAFQQhqIgUgBkcNAAsLIANFDQADQCAALQAAIAJB5QdsaiECIABBAWohACAEQQFqIgQgA0cNAAsLIAJBBXYgAmoLgAEBA39BASECAkAgACgCACABKAIARw0AIAAoAgQgASgCBEcNACAAKAIMIgMgACgCCCIAayIEIAEoAgwgASgCCCIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC/MBAQd/AkAgACgCCCIBIAAoAgwiA08NACADIAFrIgJBB3EhBAJAIAFBf3MgA2pBB0kEQEEAIQIgASEDDAELIAJBeHEhB0EAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgMhASAGQQhqIgYgB0cNAAsLIARFDQADQCADLQAAIAJB5QdsaiECIANBAWohAyAFQQFqIgUgBEcNAAsLIAAvAQAgACgCBCACQQV2IAJqamoLJQAgASgCABDMASABKAIUIgIEQCACEMwBCyAAEMwBIAEQzAFBAgtqAQJ/AkAgASgCCCIAQQJOBEAgASgCFCEDQQAhAANAIAMgAEECdGoiBCACIAQoAgBBAnRqKAIANgIAIABBAWoiACABKAIISA0ACwwBCyAAQQFHDQAgASACIAEoAhBBAnRqKAIANgIQC0EAC/0JAQd/IwBBEGsiDiQAQZh+IQkCQCAFQQRLDQAgB0EASA0AIAUgB0gNACADQQNxRQ0AIARFDQAgBQRAIAUgB2shDANAIAYgCkECdGooAgAiC0UNAgJAIAogDE4EQCALQRBLDQRBASALdEGWgARxDQEMBAsgC0EBa0EFSQ0AIAtBEGtBAUsNAwsgCkEBaiIKIAVHDQALCyAAIAEgAhANRQRAQZx+IQkMAQsjAEEgayIJJABB5L8SKAIAIQwgDkEMaiIPQQA2AgACQCACIAFrIg1BAEwEQEGcfiELDAELIAlBADYCDAJAAkAgDARAIAkgAjYCHCAJIAE2AhggCUEANgIUIAkgADYCECAMIAlBEGogCUEMahCPASEKAkAgAEGUvRJGDQAgCg0AIAAtAExBAXFFDQAgCSACNgIcIAkgATYCGCAJQQA2AhQgCUGUvRI2AhAgDCAJQRBqIAlBDGoQjwEaCyAJKAIMIgpFDQEgCigCCCELDAILQYSYERCMASIMRQRAQXshCwwDC0HkvxIgDDYCAAtBeyELQQwQywEiCkUNASAKIAAgASACEHYiATYCACABRQRAIAoQzAEMAgtBEBDLASICRQ0BIAIgATYCCCACQQA2AgQgAiAANgIAIAIgASANajYCDCAMIAIgChCQASILBEAgAhDMASALQQBIDQILQei/EkHovxIoAgBBAWoiCzYCACAKIA02AgQgCiALNgIICyAPIAo2AgALIAlBIGokAAJAIAsiAUEASA0AQeC/EigCACIJRQRAAn9B4L8SQQA2AgBBDBDLASICBH9B+AUQywEiCUUEQCACEMwBQXsMAgsgAiAJNgIIIAJCgICAgKABNwIAQeC/EiACNgIAQQAFQXsLCyIJDQJB4L8SKAIAIQkLIAkoAgAiCiABTARAA0AgCSgCCCELIAkoAgQiAiAKTAR/IAsgAkGYAWwQzQEiC0UEQEF7IQkMBQsgCSALNgIIIAkgAkEBdDYCBCAJKAIABSAKC0HMAGwgC2pBAEHMABCoARogCSAJKAIAIgtBAWoiCjYCACABIAtKDQALCyAJKAIIIgwgAUHMAGxqIgogBzYCFCAKIAU2AhAgCkEANgIMIAogBDYCCCAKIAM2AgRBACEJIApBADYCACAKIA4oAgwoAgA2AkgCQCAFRQ0AIAVBA3EhBCAFQQFrQQNPBEAgBUF8cSECIAwgAUHMAGxqQRhqIQtBACEDA0AgCyAJQQJ0IgpqIAYgCmooAgA2AgAgCyAKQQRyIg1qIAYgDWooAgA2AgAgCyAKQQhyIg1qIAYgDWooAgA2AgAgCyAKQQxyIgpqIAYgCmooAgA2AgAgCUEEaiEJIANBBGoiAyACRw0ACwsgBEUNAEEAIQogDCABQcwAbGohAwNAIAMgCUECdCILaiAGIAtqKAIANgIYIAlBAWohCSAKQQFqIgogBEcNAAsLIAdBAEwNAEFiIQkgCEUNASAFIAdrIQlBACEKIAwgAUHMAGxqIQYDQAJAIAYgCUECdGooAhhBBEYEQCAAIAggCkEDdGoiBygCACAHKAIEEHYiC0UEQEF7IQkMBQsgBiAJQQN0aiIDIAs2AiggAyALIAcoAgQgBygCAGtqNgIsDAELIAYgCUEDdGogCCAKQQN0aikCADcCKAsgCkEBaiEKIAlBAWoiCSAFSA0ACwsgASEJCyAOQRBqJAAgCQtoAQR/AkAgASACTw0AIAEhAwNAIAMgAiAAKAIUEQAAIgVBX3FBwQBrQRpPBEAgBUEwa0EKSSIGIAEgA0ZxDQIgBUHfAEYgBnJFDQILIAMgACgCABEBACADaiIDIAJJDQALQQEhBAsgBAs3AQF/AkAgAUEATA0AIAAoAoQDIgBFDQAgACgCDCABSA0AIAAoAhQgAUHcAGxqQdwAayECCyACCwkAIAAQzAFBAgsQACAABEAgABARIAAQzAELC7cCAQJ/AkAgAEUNAAJAAkACQAJAAkACQAJAAkAgACgCAA4JAAIIBAUDBgEBCAsgACgCMEUNByAAKAIMIgFFDQcgASAAQRhqRw0GDAcLIAAoAgwiAQRAIAEQESABEMwBCyAAKAIQIgBFDQYDQCAAKAIQIQEgACgCDCICBEAgAhARIAIQzAELIAAQzAEgASIADQALDAYLIAAoAjAiAUUNBSABKAIAIgBFDQQgABDMAQwECyAAKAIMIgEEQCABEBEgARDMAQsgACgCEEEDRw0EIAAoAhQiAQRAIAEQESABEMwBCyAAKAIYIgFFDQQgARARDAMLIAAoAigiAUUNAwwCCyAAKAIMIgFFDQIgARARDAELIAAoAgwiAQRAIAEQESABEMwBCyAAKAIgIgFFDQEgARARCyABEMwBCwvlAgIFfwF+IABBADYCAEF6IQMCQCABKAIAIgJBCEsNAEEBIAJ0QccDcUUNAEEBQTgQzwEiAkUEQEF7DwsgAiABKQIAIgc3AgAgAiABKQIwNwIwIAIgASkCKDcCKCACIAEpAiA3AiAgAkEYaiIDIAEpAhg3AgAgAiABKQIQNwIQIAIgASkCCDcCCAJAAkACQAJAIAenDgIAAQILIAEoAhAhBCABKAIMIQEgAkEANgIwIAIgAzYCECACIAM2AgwgAkEANgIUIAIgASAEEBMiA0UNAQwCCyABKAIwIgRFDQAgAkEMEMsBIgE2AjBBeyEDIAFFDQECQCAEKAIIIgZBAEwEQCABQQA2AgBBACEGDAELIAEgBhDLASIFNgIAIAUNACABEMwBIAJBADYCMAwCCyABIAY2AgggASAEKAIEIgM2AgQgBSAEKAIAIAMQpgEaCyAAIAI2AgBBAA8LIAIQESACEMwBCyADC4QCAQV/IAIgAWsiAkEASgRAAkACQCAAKAIQIAAoAgwiBWsiBCACaiIDQRhIIAAoAjAiBkEATHFFBEAgBiADQRBqIgdOBEAgBCAFaiABIAIQpgEgAmpBADoAAAwDCyAAQRhqIAVGBEAgA0ERahDLASIDRQRAQXsPCyAEQQBMDQIgAyAFIAQQpgEgBGpBADoAAAwCCyADQRFqIQMCfyAFBEAgBSADEM0BDAELIAMQywELIgMNAUF7DwsgBCAFaiABIAIQpgEgAmpBADoAAAwBCyADIARqIAEgAhCmASACakEAOgAAIAAgBzYCMCAAIAM2AgwLIAAgACgCDCAEaiACajYCEAtBAAsnAQF/QQFBOBDPASIBBEAgAUEANgIQIAEgADYCDCABQQc2AgALIAELJwEBf0EBQTgQzwEiAQRAIAFBADYCECABIAA2AgwgAUEINgIACyABCz0BAn9BAUE4EM8BIgIEQCACIAJBGGoiAzYCECACIAM2AgwgAiAAIAEQE0UEQCACDwsgAhARIAIQzAELQQALvAUBBX8gACgCECECIAAoAgwhAQJ/AkAgACgCGARAAkACQCACDgIAAQMLQQFBfyAAKAIUIgNBf0YbQQAgA0EBRxsMAwsgACgCFEF/Rw0BQQIMAgsCQAJAIAIOAgABAgtBA0EEQX8gACgCFCIDQX9GGyADQQFGGwwCCyAAKAIUQX9HDQBBBQwBC0F/CyEFIAEoAhAhAwJAAkACQAJAAkACfyABKAIYBEACQAJAIAMOAgABBAtBAUF/IAEoAhQiBEF/RhtBACAEQQFHGwwCCyABKAIUQX9HDQJBAgwBCwJAAkAgAw4CAAEDC0EDQQRBfyABKAIUIgRBf0YbIARBAUYbDAELIAEoAhRBf0cNAUEFCyEEIAVBAEgNACAEQQBODQELIAIgACgCFEcNAyADIAEoAhRHDQNBACEEAkAgAkUNACADRQ0AQX8gAiADbEH/////ByADbSACTBshBAsgBCICQQBODQFBt34PCwJAAkACQAJAAkACQCAEQRhsQYAIaiAFQQJ0aigCAEEBaw4GAAECAwQFCAsgACABKQIANwIAIAAgASkCMDcCMCAAIAEpAig3AiggACABKQIgNwIgIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIDAYLIAEoAgwhAiAAQQE2AhggAEKAgICAcDcCECAAIAI2AgwMBQsgASgCDCECIABBATYCGCAAQoGAgIBwNwIQIAAgAjYCDAwECyABKAIMIQIgAEEANgIYIABCgICAgHA3AhAgACACNgIMDAMLIAEoAgwhAiAAQQA2AhggAEKAgICAEDcCECAAIAI2AgwMAgsgAEEANgIYIABCgICAgBA3AhAgAUEBNgIYIAFCgYCAgHA3AhBBAA8LIAAgAjYCECAAIAI2AhQgACABKAIMNgIMCyABQQA2AgwgARARIAEQzAELQQALsQEBBX8gAEEANgIAQQFBOBDPASIFRQRAQXsPCyAFQQE2AgAgAkEASgRAIAVBMGohBwNAAkACQCABKAIMQQFMBEAgAyAGQQJ0aiIEKAIAIAEoAhgRAQBBAUYNAQsgByADIAZBAnRqKAIAIgQgBBAZGgwBCyAFIAQoAgAiBEEDdkH8////AXFqQRBqIgggCCgCAEEBIAR0cjYCAAsgBkEBaiIGIAJHDQALCyAAIAU2AgBBAAvDBwEJfyABIAIgASACSRshCgJAAkAgACgCACIDRQRAIABBDBDLASIDNgIAQXshBSADRQ0CIANBFBDLASIINgIAIAhFBEAgAxDMASAAQQA2AgBBew8LIANBFDYCCCAIQQA2AAAgA0EENgIEIAhBBGohBkEAIQAMAQsgAygCACIIQQRqIQZBACEAIAgoAgAiCUEATA0AIAkhBANAIAAgBGoiBUEBdSIHQQFqIAAgCiAGIAVBAnRBBHJqKAIASyIFGyIAIAQgByAFGyIESA0ACwsgCSAJIAAgASACIAEgAksbIgtBf0YbIgRKBEAgC0EBaiEBIAkhBQNAIAQgBCAFaiIHQQF1IgJBAWogASAGIAdB/v///wNxQQJ0aigCAEkiBxsiBCACIAUgBxsiBUgNAAsLQbN+IQUgAEEBaiIHIARrIgIgCWoiAUGQzgBLDQAgAkEBRwRAIAsgCCAEQQN0aigCACIFIAUgC0kbIQsgCiAGIABBA3RqKAIAIgUgBSAKSxshCgsCQCAEIAdGDQAgBCAJTw0AIAdBA3RBBHIhBiAEQQN0QQRyIQcgAkEASgRAAkAgCSAEa0EDdCICIAZqIgUgAygCCCIETQ0AA0AgBEEBdCIEIAVJDQALIAMgBDYCCCADIAggBBDNASIINgIAIAgNAEF7DwsgBiAIaiAHIAhqIAIQpwEgBSADKAIETQ0BIAMgBTYCBAwBCyAGIAhqIAcgCGogAygCBCAHaxCnASADIAMoAgQgBiAHa2o2AgQLIABBA3QiB0EMaiEFIAMoAggiBiEEA0AgBCIAQQF0IQQgACAFSQ0ACyAAIAZHBEAgAyADKAIAIAAQzQEiBDYCACAERQRAQXsPCyADIAA2AgggACEGCwJAIAdBCGoiBCAGSwRAA0AgBkEBdCIGIARJDQALIAMgBjYCCCADIAMoAgAgBhDNASIANgIAIAANAUF7DwsgAygCACEACyAAIAdBBHJqIAo2AAAgBCADKAIESwRAIAMgBDYCBAsCQCAFIAMoAggiAEsEQANAIABBAXQiACAFSQ0ACyADIAA2AgggAyADKAIAIAAQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACAEaiALNgAAIAUgAygCBEsEQCADIAU2AgQLAkAgAygCCCIAQQRJBEADQCAAQQJJIQQgAEEBdCIFIQAgBA0ACyADIAU2AgggAyADKAIAIAUQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACABNgAAQQAhBSADKAIEQQNLDQAgA0EENgIECyAFC5ouAQl/IwBBMGsiBSQAIAMoAgwhCCADKAIIIQcgBSABKAIAIgY2AiQCQAJAAkACQCAAKAIEBEAgACgCDCEMQQEhCyAGIQQCQAJAA0ACQAJAAkAgAiAESwRAIAQgAiAHKAIUEQAAIQogBCAHKAIAEQEAIARqIQkgCkEKRg0DIApBIEYNAyAKQf0ARg0BCyAFIAQ2AiwgBUEsaiACIAcgBUEoaiAMEB4iCw0BQQAhCyAFKAIsIQkLIAUgCTYCJCAJIQYLIAsOAgIDCAsgCSIEIAJJDQALQfB8IQsMBgsgAEEENgIAIAAgBSgCKDYCFAwCCyAAQQA2AgQLIAIgBk0NAiAIQQZqIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgACAGNgIQIABBADYCDCAAQQM2AgAgBiACIAcoAhQRAAAhBCAGIAcoAgARAQAgBmohBgJAIAQgCCgCEEcNACAKLQAAQRBxDQAgBSAGNgIkQZh/IQsgAiAGTQ0TIAAgBjYCECAGIAIgBygCFBEAACEJIAUgBiAHKAIAEQEAIAZqIgo2AiRBASEEIABBATYCCCAAIAk2AhQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBJ2sOVh8FBgABLi4uLicmJiYmJiYmJiYuLg0uDgIuGgouEi4uHRQuLhUuLhcYLSwWEC4lLggZDBsuLi4uLh4uCS4RLi4rEy4uKi4uLiAtLi4PLiQuByELHAMELgsgCC0AAEEIcUUNPgw6CyAILQAAQSBxRQ09DDgLQQAhBiAILQAAQYABcUUNPAw5CyAILQABQQJxRQ07IAVBJGogAiAAIAMQHyILQQBIDT4gCw4DOTs1OwsgCC0AAUEIcUUNOiAAQQ02AgAMOgsgCC0AAUEgcUUNOSAAQQ42AgAMOQsgCC0AAUEgcUUNOCAAQQ82AgAMOAsgCC0AAkEEcUUNNyAAQgw3AhQgAEEGNgIADDcLIAgtAAJBBHFFDTYgAEKMgICAEDcCFCAAQQY2AgAMNgsgCC0AAkEQcUUNNSAAQYAINgIUIABBCTYCAAw1CyAILQACQRBxRQ00IABBgBA2AhQgAEEJNgIADDQLIAgtAANBBHFFDTMgAEGAgAQ2AhQgAEEJNgIADDMLIAgtAANBBHFFDTIgAEGAgAg2AhQgAEEJNgIADDILIAgtAAJBCHFFDTEgAEGAIDYCFCAAQQk2AgAMMQsgCC0AAkEIcUUNMCAAQYDAADYCFCAAQQk2AgAMMAsgCC0AAkEgcUUNLyAAQgk3AhQgAEEGNgIADC8LIAgtAAJBIHFFDS4gAEKJgICAEDcCFCAAQQY2AgAMLgsgCC0AAkHAAHFFDS0gAEIENwIUIABBBjYCAAwtCyAILQACQcAAcUUNLCAAQoSAgIAQNwIUIABBBjYCAAwsCyAILQAGQQhxRQ0rIABCCzcCFCAAQQY2AgAMKwsgCC0ABkEIcUUNKiAAQouAgIAQNwIUIABBBjYCAAwqCyAILQAGQcAAcUUNKSAAQRM2AgAMKQsgCC0ABkGAAXFFDSggAEEUNgIADCgLIAgtAAdBAXFFDScgAEEVNgIADCcLIAgtAAdBAXFFDSYgAEEWNgIADCYLIAgtAAdBBHFFDSUgAEEXNgIADCULIAgtAAFBwABxRQ0kDB0LIAgtAAlBEHENGyAILQABQcAAcUUNIyAAQYACNgIUIABBCTYCAAwjC0GrfiELIAgtAAlBEHENJSAILQABQcAAcUUNIgwaCyAILQABQYABcUUNISAAQcAANgIUIABBCTYCAAwhCyAILQAFQYABcQ0ZDCALIAgtAAVBgAFxDRcMHwsgAiAKTQ0eIAogAiAHKAIUEQAAQfsARw0eIAgoAgBBAE4NHiAFIAogBygCABEBACAKajYCJCAFQSRqIAJBCyAHIAVBKGoQICILQQBIDSFBCCEGIAUoAiQiBCACTw0BIAQgAiAHKAIUEQAAQf8ASw0BIAcoAjAhCUGsfiELIAQgAiAHKAIUEQAAQQQgCREAAEUNAQwhCyACIApNDR0gCiACIAcoAhQRAAAhBiAIKAIAIQQgBkH7AEcNASAEQYCAgIAEcUUNASAFIAogBygCABEBACAKajYCJCAFQSRqIAJBAEEIIAcgBUEoahAhIgtBAEgNIEEQIQYgBSgCJCIEIAJPDQAgBCACIAcoAhQRAABB/wBLDQAgBygCMCEJQax+IQsgBCACIAcoAhQRAABBCyAJEQAADSALIAAgBjYCDCAKIAcoAgARAQAgCmogBEkEQEHwfCELIAIgBE0NIAJAIAQgAiAHKAIUEQAAQf0ARgRAIAUgBCAHKAIAEQEAIARqNgIkDAELIAAoAgwhCEEAIQNBACEMIwBBEGsiCiQAAkACQCACIgYgBE0NAANAIAQgBiAHKAIUEQAAIQkgBCAHKAIAEQEAIQICQAJAAkAgCUEKRg0AIAlBIEYNACAJQf0ARw0BIAMhBAwFCwJAIAIgBGoiAiAGTw0AA0AgAiIEIAYgBygCFBEAACEJIAQgBygCABEBACECIAlBIEcgCUEKR3ENASACIARqIgIgBkkNAAsLIAlBCkYNAyAJQSBGDQMMAQsgDEUNACAIQRBGBEAgCUH/AEsNA0GsfiEEIAlBCyAHKAIwEQAARQ0DDAQLIAhBCEcNAiAJQf8ASw0CIAlBBCAHKAIwEQAARQ0CQax+IQQgCUE4Tw0CDAMLIAlB/QBGBEAgAyEEDAMLIAogBDYCDCAKQQxqIAYgByAKQQhqIAgQHiIEDQJBASEMIANBAWohAyAKKAIMIgQgBkkNAAsLQfB8IQQLIApBEGokACAEQQBIBEAgBCELDCILIARFDSEgAEEBNgIECyAAQQQ2AgAgACAFKAIoNgIUDB0LIAUgCjYCJAwcCyAEQYCAgIACcUUNGyAFQSRqIAJBAEECIAcgBUEoahAhIgtBAEgNHiAFLQAoIQQgBSgCJCECIABBEDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMGwsgAiAKTQ0aQQQhBCAILQAFQcAAcUUNGgwRCyACIApNDRlBCCEEIAgtAAlBEHENEAwZCyAFIAY2AiQCQCAFQSRqIAIgBxAiIgRB6AdLDQAgCC0AAkEBcUUNACADKAI0IgogBEggBEEKT3ENACAILQAIQSBxBEBBsH4hCyAEIApKDR0gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0dCyAAQQE2AhQgAEEHNgIAIABCADcCICAAIAQ2AhgMGQsgCUF+cUE4RgRAIAUgBiAHKAIAEQEAIAZqNgIkDBkLIAUgBjYCJCAILQADQRBxRQ0CIAYhCgwBCyAILQADQRBxRQ0XCyAFQSRqIAJBAkEDIAlBMEYbIAcgBUEoahAgQQBIBEBBuH4hCwwaCyAFLQAoIQQgBSgCJCECIABBCDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMFgsgBSAGIAcoAgARAQAgBmo2AiQMFQsgAiAKTQ0UIAgtAAVBAXFFDRQgCiACIAcoAhQRAAAhBCAFIAogBygCABEBACAKaiIMNgIkQQAhByAEQTxGDQogBEEnRg0KIAUgCjYCJAwUCyACIApNDRMgCC0ABUECcUUNEyAKIAIgBygCFBEAACEEIAUgCiAHKAIAEQEAIApqIgw2AiRBACEHIARBPEYNCCAEQSdGDQggBSAKNgIkDBMLIAgtAARBAXFFDRIgAEERNgIADBILIAIgCk0NESAKIAIgBygCFBEAAEH7AEcNESAILQAGQQFxRQ0RIAUgCiAHKAIAEQEAIApqIgQ2AiQgACAJQdAARjYCGCAAQRI2AgAgAiAETQ0RIAgtAAZBAnFFDREgBCACIAcoAhQRAAAhAiAFIAQgBygCABEBACAEajYCJCACQd4ARgRAIAAgACgCGEU2AhgMEgsgBSAENgIkDBELIAUgBjYCJCAFQSRqIAIgAyAFQSxqECMiC0UEQCAFKAIsIAMoAggoAhgRAQAiBEEfdSAEcSELCyALQQBIDRMgBSgCLCIEIAAoAhRHBEAgACAENgIUIABBBDYCAAwRCyAFIAAoAhAiBCAHKAIAEQEAIARqNgIkDBALIABBADYCCCAAIAQ2AhQCQAJAAkACQAJAIARFDQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAIKAIAIglBAXFFDQAgBCAIKAIURg0BIAQgCCgCGEYNBCAEIAgoAhxGDQggBCAIKAIgRg0GIAQgCCgCJEcNACAFIAY2AiQgAEEMNgIADCcLAkAgBEEJaw50EhITEhITExMTExMTExMTExMTExMTExMSExMRDhMTEwsMAwUTEwATExMTExMTExMTExMTExMTBxMTExMTExMTExMTExMTExMTExMTExMTExMTEw8TEA0TExMTExMTExMTExMTExMTExMTExMTExMTExMTCQoTCyAFIAY2AiQgCUECcQ0BDCYLIAUgBjYCJAsgAEEFNgIADCQLIAUgBjYCJCAJQQRxDR8MIwsgBSAGNgIkDB4LIAUgBjYCJCAJQRBxDRwMIQsgBSAGNgIkDBsLIAUgBjYCJCAJQcAAcUUNHwwTCyAFIAY2AiQMEgsgBSAGNgIkIAlBgAJxRQ0dIAVBJGogAiAAIAMQHyILQQBIDSACQCALDgMcHgAeCyAILQAJQQJxRQ0bDBwLIAUgBjYCJCAJQYAIcUUNHCAAQQ02AgAMHAsCQCACIAZNDQAgBiACIAcoAhQRAABBP0cNACAILQAEQQJxRQ0AAkAgAiAGIAcoAgARAQAgBmoiBEsEQCAEIAIgBygCFBEAACIJQSNGBEAgBCACIAcoAhQRAAAaIAQgBygCABEBACAEaiIGIAJPDQwDQCAGIAIgBygCFBEAACEEIAYgBygCABEBACAGaiEGAkAgCCgCECAERgRAIAIgBk0NASAGIAIgBygCFBEAABogBiAHKAIAEQEAIAZqIQYMAQsgBEEpRg0QCyACIAZLDQALIAUgBjYCJAwNCyAFIAQ2AiQgCC0AB0EIcQRAAkACQAJAAkAgCUEmaw4IAAICAgIDAgMBCyAFIAQgBygCABEBACAEaiIGNgIkQSggBUEkaiACIAVBBGogAyAFQSxqIAVBABAkIgtBAEgNJSAAQQg2AgAgACAGNgIUIABCADcCHCAFKAIEIQkMFAsgCUHSAEYNEQsgCUEEIAcoAjARAABFDQMLQSggBUEkaiACIAVBBGogAyAFQSxqIAVBARAkIgtBAEgNIkGpfiELAkACQAJAIAUoAgAOAyUBAAELIAMoAjQhAgJAAn8gBSgCLCIHQQBKBEAgAkH/////B3MgB0kNAiACIAdqDAELIAIgB2pBAWoLIgJBAE4NAgsgAyAFKAIENgIoIAMgBDYCJEGmfiELDCQLIAUoAiwhAgsgACAENgIUIABBCDYCACAAIAI2AhwgAEEBNgIgIAUoAgQhCSAGIQQMEQsgCUHQAEcNASADKAIMKAIEQQBODQFBin8hCyAEIAcoAgARAQAgBGoiBCACTw0hIAQgAiAHKAIUEQAAIQkgBSAEIAcoAgARAQAgBGoiDDYCJEEBIQdBKCEEIAlBPWsOAhQTAgsgBSAENgIkCyAFIAY2AiQMDwsgBSAGNgIkDA4LIAUgBjYCJCAJQYAgcUUNGiAAQQ82AgAMGgsgBSAGNgIkIAlBgICABHFFDRkgAEEJNgIAIABBEEEgIAMoAgBBCHEbNgIUDBkLIAUgBjYCJCAJQYCAgARxRQ0YIABBCTYCACAAQYACQYAEIAMoAgBBCHEbNgIUDBgLIAUgBjYCJCAJQYCACHFFDRcgAEEQNgIADBcLIAUgBjYCJCABKAIAIAMoAhxNDRYjAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgAygCDC0AC0EBcUUNACADKAIgIQQgAygCHCEGIAMoAgghAyACQd8JNgIAIAJBEGogAyAGIARB1AwgAhCLASACQRBqQeyXESgCABEEAAsgAkGQAmokAAwWCyADLQAAQQJxRQ0BA0AgAiAGTQ0FIAYgAiAHKAIUEQAAIQQgBiAHKAIAEQEAIAZqIQYgBEEAIAcoAjARAABFDQALDAQLIAMtAABBAnENAwsgBSAGNgIkDBMLIAUgBDYCJAtBin8hCwwUCyACIAZNDREMAQsLIABBCDYCACAAIAQ2AhQgAEKAgICAEDcCHCAFIAQgBygCABEBACAEaiIJNgIkQYl/IQsgAiAJTQ0RIAkgAiAHKAIUEQAAQSlHDRELIAAgCTYCGCAFIAQ2AiQLIAgtAAFBEHFFDQwgAEEONgIADAwLQQEhBEEAIQYMCAtBACEGIAQgBUEkaiACIAVBDGogAyAFQRBqIAVBCGpBARAkIgtBAEgNDUEAIQQCQCAFKAIIIgJFDQBBpn4hCyAHDQ5BASEGIAUoAhAhBCACQQJHDQAgAygCNCECAkACfyAEQQBKBEAgAkH/////B3MgBEkNAiACIARqDAELIAIgBGpBAWoLIgRBAE4NAQsgAyAFKAIMNgIoIAMgDDYCJAwOCyAAIAw2AhQgAEEINgIAIAAgBDYCHCAAIAY2AiAgACAFKAIMNgIYDAoLIAVBADYCIAJAIAQgBUEkaiACIAVBIGogAyAFQRhqIABBKGogBUEUahAlIgtBAUYEQCAAQQE2AiQMAQsgAEEANgIkIAtBAEgNDQsgBSgCFCICBEBBsH4hCyAHDQ0CfyAFKAIYIgQgAkECRw0AGkGwfiAEIAMoAjQiAmogAkH/////B3MgBEkbIARBAEoNABogAiAEakEBagsiBEEATA0NIAgtAAhBIHEEQCAEIAMoAjRKDQ4gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0OCyAAQQc2AgAgAEEBNgIUIABBADYCICAAIAQ2AhgMCgsgAyAMIAUoAiAgBUEcahAmIgdBAEwEQEGnfiELDA0LIAgtAAhBIHEEQCADQUBrIQggAygCNCEJQQAhBCAFKAIcIQoDQEGwfiELIAogBEECdGooAgAiAiAJSg0OIAJBA3QgAygCgAEiBiAIIAYbaigCAEUNDiAEQQFqIgQgB0cNAAsLIABBBzYCACAAQQE2AiAgB0EBRgRAIABBATYCFCAAIAUoAhwoAgA2AhgMCgsgACAHNgIUIAAgBSgCHDYCHAwJCyAFQSRqIAIgBCAEIAcgBUEoahAhIgtBAEgNCyAFKAIoIQQgBSgCJCECIABBEDYCDCAAQQQ2AgAgACAEQQAgAiAKRxs2AhQMCAsgAEGAATYCFCAAQQk2AgAMBwsgAEEQNgIUIABBCTYCAAwGCyAILQAJQQJxRQ0DDAQLQX8hBEEBIQYMAQtBfyEEQQAhBgsgACAGNgIUIABBCjYCACAAQQA2AiAgACAENgIYCyAFKAIkIgQgAk8NACAEIAIgBygCFBEAAEE/Rw0AIAgtAANBAnFFDQAgACgCIA0AIAQgAiAHKAIUEQAAGiAFIAQgBygCABEBACAEajYCJCAAQgA3AhwMAQsgAEEBNgIcIAUoAiQiBCACTw0AIAQgAiAHKAIUEQAAQStHDQACQCAIKAIEIgZBEHEEQCAAKAIAQQtHDQELIAZBIHFFDQEgACgCAEELRw0BCyAAKAIgDQAgBCACIAcoAhQRAAAaIAUgBCAHKAIAEQEAIARqNgIkIABBATYCIAsgASAFKAIkNgIAIAAoAgAhCwwCCyAFIAY2AiQLQQAhCyAAQQA2AgALIAVBMGokACALC7YDAQV/IwBBEGsiCSQAIABBADYCACAFIAUoApwBQQFqIgc2ApwBQXAhCAJAIAdB+JcRKAIASw0AIAUoAgAhCyAJQQxqIAEgAiADIAQgBSAGECciCEEASARAIAkoAgwiBUUNASAFEBEgBRDMAQwBCwJAAkACQAJAAkAgAiAIRgRAIAAgCSgCDDYCACACIQgMAQsgCSgCDCEHIAhBDUcNAUEBQTgQzwEiBkUNBCAGQQA2AhAgBiAHNgIMIAZBCDYCACAAIAY2AgADQCABIAMgBCAFEBoiCEEASA0GIAlBDGogASACIAMgBCAFQQAQJyEIIAkoAgwhCiAIQQBIBEAgChAQDAcLQQFBOBDPASIHRQ0EIAdBADYCECAHIAo2AgwgB0EINgIAIAYgBzYCECAHIQYgCEENRg0ACyABKAIAIAJHDQILIAUgCzYCACAFIAUoApwBQQFrNgKcAQwECyAHRQ0AIAcQESAHEMwBC0GLf0F1IAJBD0YbIQgMAgsgBkEANgIQIAoQECAAKAIAEBBBeyEIDAELIABBADYCAEF7IQggB0UNACAHEBEgBxDMAQsgCUEQaiQAIAgLIQAgAigCFCABQdwAbGpB3ABrIgEgASgCAEEBcjYCAEEACxAAIAAgAjYCKCAAIAE2AiQL+AIBBn9B8HwhCQJAAkACQAJAIARBCGsOCQEDAwMDAwMDAAMLIAAoAgAiBCABTw0CA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEKIAVB/wBLDQAgBUELIAIoAjARAABFDQBBUCEIIAcgBUEEIAIoAjARAAAEfyAIBUFJQal/IAVBCiACKAIwEQAAGwsgBWoiBUF/c0EEdksEQEG4fg8LIAUgB0EEdGohByAEIApqIgQgAU8NAyAGQQdJIQUgBkEBaiEGIAUNAQwDCwsgBg0BDAILIAAoAgAiBCABTw0BA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEIIAVB/wBLDQAgBUEEIAIoAjARAABFDQAgBUE3Sw0AIAdBLyAFa0EDdksEQEG4fg8LIAdBA3QgBWpBMGshByAEIAhqIgQgAU8NAiAGQQpJIQUgBkEBaiEGIAUNAQwCCwsgBkUNAQsgAyAHNgIAIAAgBDYCAEEAIQkLIAkLsQUBDH8gAygCDCgCCEEIcSELIAEgACgCACIETQRAQQFBnH8gCxsPCyADKAIIIgkhBQJAAkAgC0UEQEGcfyEHIAQgASAJKAIUEQAAIgVBKGtBAkkNASAFQfwARg0BIAMoAgghBQsDQAJAIAQgASAFKAIUEQAAIQcgBCAFKAIAEQEAIQYgB0H/AEsNACAHQQQgBSgCMBEAAEUNACAIQa+AgIB4IAdrQQptSgRAQbd+DwsgCEEKbCAHakEwayEIIAQgBmoiBCABSQ0BCwtBt34hByAIQaCNBksNACAEIAAoAgAiBUciDkUEQEEAIQggAygCDC0ACEEQcUUNAgsgASAETQ0BIAQgASAJKAIUEQAAIQYgBCAJKAIAEQEAIQoCQCAGQSxGBEBBACEGIAQgCmoiDCEEIAEgDEsEQCADKAIIIQogDCEEA0ACQCAEIAEgCigCFBEAACEFIAQgCigCABEBACEPIAVB/wBLDQAgBUEEIAooAjARAABFDQBBr4CAgHggBWtBCm0gBkgNBSAGQQpsIAVqQTBrIQYgBCAPaiIEIAFJDQELCyAGQaCNBksNAwsgBkF/IAQgDEciBxshBiAHDQEgDg0BDAMLQQIhDSAIIQYgBCAFRg0CCyABIARNDQEgBCABIAkoAhQRAAAhByAEIAkoAgARAQAgBGohBCADKAIMIgUtAAFBAnEEQCAHIAUoAhBHDQIgASAETQ0CIAQgASAJKAIUEQAAIQcgBCAJKAIAEQEAIARqIQQLIAdB/QBHDQFBACEFAkACQCAGQX9GDQAgBiAITg0AQbZ+IQdBASEFIAghASADKAIMLQAEQSBxDQIMAQsgBiEBIAghBgsgAiAGNgIUIAJBCzYCACACIAE2AhggAiAFNgIgIAAgBDYCACANIQcLIAcPC0EBQYV/IAsbC6oBAQV/AkAgASAAKAIAIgVNDQAgAkEATA0AA0AgBSABIAMoAhQRAAAhBiAFIAMoAgARAQAhCSAGQf8ASw0BIAZBBCADKAIwEQAARQ0BIAZBN0sNASAHQS8gBmtBA3ZLBEBBuH4PCyAIQQFqIQggB0EDdCAGakEwayEHIAUgCWoiBSABTw0BIAIgCEoNAAsLIAhBAE4EfyAEIAc2AgAgACAFNgIAQQAFQfB8CwvVAQEGfwJAIAEgACgCACIJTQRADAELIANBAEwEQAwBCwNAIAkgASAEKAIUEQAAIQYgCSAEKAIAEQEAIQogBkH/AEsNASAGQQsgBCgCMBEAAEUNAUFQIQsgCCAGQQQgBCgCMBEAAAR/IAsFQUlBqX8gBkEKIAQoAjARAAAbCyAGaiIGQX9zQQR2SwRAQbh+DwsgB0EBaiEHIAYgCEEEdGohCCAJIApqIgkgAU8NASADIAdKDQALC0HwfCEGIAIgB0wEfyAFIAg2AgAgACAJNgIAQQAFIAYLC34BBH8CQCAAKAIAIgQgAU8NAANAIAQgASACKAIUEQAAIQUgBCACKAIAEQEAIQYgBUH/AEsNASAFQQQgAigCMBEAAEUNASADQa+AgIB4IAVrQQptSgRAQX8PCyADQQpsIAVqQTBrIQMgBCAGaiIEIAFJDQALCyAAIAQ2AgAgAwudBQEGfyMAQRBrIgYkAEGYfyEFAkAgACgCACIEIAFPDQAgBCABIAIoAggiBygCFBEAACEFIAYgBCAHKAIAEQEAIARqIgQ2AggCQAJAAkACQAJAAkACQAJAIAVBwwBrDgsDAQEBAQEBAQEBAgALIAVB4wBGDQMLIAIoAgwhCAwECyACKAIMIggtAAVBEHFFDQNBl38hBSABIARNDQUgBCABIAcoAhQRAAAhCCAEIAcoAgARAQAhCUGUfyEFIAhBLUcNBUGXfyEFIAQgCWoiBCABTw0FIAYgBCABIAcoAhQRAAAiBTYCDCAGIAQgBygCABEBACAEajYCCCACKAIMKAIQIAVGBH8gBkEIaiABIAIgBkEMahAjIgVBAEgNBiAGKAIMBSAFC0H/AHFBgAFyIQQMBAsgAigCDCIILQAFQQhxRQ0CQZZ/IQUgASAETQ0EIAQgASAHKAIUEQAAIQggBCAHKAIAEQEAIQlBk38hBSAIQS1HDQQgBCAJaiEEDAELIAIoAgwiCC0AA0EIcUUNAQtBln8hBSABIARNDQIgBiAEIAEgBygCFBEAACIFNgIMIAYgBCAHKAIAEQEAIARqNgIIQf8AIQQgBUE/Rg0BIAIoAgwoAhAgBUYEfyAGQQhqIAEgAiAGQQxqECMiBUEASA0DIAYoAgwFIAULQZ8BcSEEDAELAkAgCC0AA0EEcUUNAEEKIQQCQAJAAkACQAJAAkACQCAFQeEAaw4WAwQHBwUCBwcHBwcHBwgHBwcBBwAHBgcLQQkhBAwHC0ENIQQMBgtBDCEEDAULQQchBAwEC0EIIQQMAwtBGyEEDAILQQshBCAILQAFQSBxDQELIAUhBAsgACAGKAIINgIAIAMgBDYCAEEAIQULIAZBEGokACAFC4sGAQd/IAEoAgAhCiAEKAIIIQkgBUEANgIAQT4hCwJAAkACQAJAIABBJ2sOFgABAgICAgICAgICAgICAgICAgICAgMCC0EnIQsMAgtBKSELDAELQQAhCwsgBkEANgIAQap+IQwCQCACIApNDQAgCiACIAkoAhQRAAAhCCAKIAkoAgARAQAhACAIIAtGDQAgACAKaiEAAkACQAJAAkACQCAIQf8ASw0AIAhBBCAJKAIwEQAARQ0AQQEhDkGpfiEMQQEhDSAHQQFHDQMMAQsCQAJAAkAgCEEraw4DAgEAAQtBqX4hDCAHQQFHDQRBfyENQQIhDiAAIQoMAgtBASENIAhBDCAJKAIwEQAADQJBqH4hDAwDC0EBIQ1BqX4hDEECIQ4gACEKIAdBAUcNAgsgBiAONgIACwJAIAAgAk8EQCACIQcMAQsDQCAAIgcgAiAJKAIUEQAAIQggACAJKAIAEQEAIABqIQAgCCALRg0BIAhBKUYNAQJAIAYoAgAEQCAIQf8ATQRAIAhBBCAJKAIwEQAADQILIAhBDCAJKAIwEQAAGiAGQQA2AgAMAQsgCEEMIAkoAjARAAAaCyAAIAJJDQALC0GpfiEMIAggC0cNASAGKAIABEACQAJAIAcgCk0EQCAFQQA2AgAMAQtBACEIA0ACQCAKIAcgCSgCFBEAACECIAogCSgCABEBACELIAJB/wBLDQAgAkEEIAkoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4PCyAIQQpsIAJqQTBrIQggCiALaiIKIAdJDQELCyAFIAg2AgAgCEEASARAQbh+DwsgCA0BC0EAIQggBigCAEECRg0DCyAFIAggDWw2AgALIAMgBzYCACABIAA2AgBBAA8LAkAgACACTwRAIAIhCAwBCwNAIAAiCCACIAkoAhQRAAAhCiAIIAkoAgARAQAgCGohACAKIAtGDQEgCkEpRg0BIAAgAkkNAAsLIAggAiAAIAJJGyEHCyABKAIAIQkgBCAHNgIoIAQgCTYCJAsgDAuMCAELfyMAQRBrIhAkACAEKAIIIQsgASgCACEMIAVBADYCACAHQQA2AgBBPiENAkACQAJAAkAgAEEnaw4WAAECAgICAgICAgICAgICAgICAgICAwILQSchDQwCC0EpIQ0MAQtBACENC0GqfiEKAkAgAiAMTQ0AIAEoAgAhACAMIAIgCygCFBEAACEIIAwgCygCABEBACEJIAggDUYNACAJIAxqIQkCQAJAAn8CQCAIQf8ASw0AIAhBBCALKAIwEQAARQ0AQQEhDyAHQQE2AgBBAAwBCwJAAkACQCAIQStrDgMBAgACCyAHQQI2AgBBfyERDAMLIAdBAjYCAEEBIREMAgtBAEGofiAIQQwgCygCMBEAABsLIQpBASERDAELIAkhAEEAIQoLAkAgAiAJTQRAIAIhDAwBCwNAIAkiDCACIAsoAhQRAAAhCCAJIAsoAgARAQAgCWohCQJAAkAgCCANRgRAIA0hCAwBCyAIQSlrIg5BBEsNAUEBIA50QRVxRQ0BCyAKQal+IA8bIAogBygCABshCgwCCwJAIAcoAgAEQAJAIAhB/wBLDQAgCEEEIAsoAjARAABFDQAgD0EBaiEPDAILIAdBADYCAEGpfiEKDAELIApBqH4gCEEMIAsoAjARAAAbIQoLIAIgCUsNAAsLQQAhDgJ/AkAgCg0AIAggDUYEQEEAIQoMAQsCQAJAIAhBK2sOAwABAAELIAIgCU0EQEGofiEKDAILIAkgAiALKAIUEQAAIQ8gCSALKAIAEQEAIAlqIRIgD0H/AEsEQCASIQkMAQsgD0EEIAsoAjARAABFBEAgEiEJDAELIBAgCTYCDCAQQQxqIAIgCxAiIglBAEgEQEG4fiEKDAQLIAZBACAJayAJIAhBLUYbNgIAQQEhDiAQKAIMIgkgAk8NACAJIAIgCygCFBEAACEIIAkgCygCABEBACAJaiEJQQAhCiAIIA1GDQELQQAMAQtBAQshCANAIAhFBEBBqX4hCiACIQxBASEIDAELAkAgCkUEQCAHKAIABEACQAJAIAAgDE8EQCAFQQA2AgAMAQtBACEIA0ACQCAAIAwgCygCFBEAACECIAAgCygCABEBACENIAJB/wBLDQAgAkEEIAsoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4hCgwJCyAIQQpsIAJqQTBrIQggACANaiIAIAxJDQELCyAFIAg2AgAgCEEASARAQbh+IQoMBwsgCA0BCyAHKAIAQQJGBEAgDCECDAQLQQAhCAsgBSAIIBFsNgIACyADIAw2AgAgASAJNgIAIA5BAEchCgwDCyABKAIAIQIgBCAMNgIoIAQgAjYCJAwCC0EAIQgMAAsACyAQQRBqJAAgCguaAQECfyMAQRBrIgQkACAAKAIsKAJUIQUgBEEANgIEAkACQCAFBEAgBCACNgIMIAQgATYCCCAFIARBCGogBEEEahCPARogBCgCBCIFDQELIAAgAjYCKCAAIAE2AiRBp34hAAwBCwJAAkAgBSgCCCIADgICAAELIAMgBUEQajYCAEEBIQAMAQsgAyAFKAIUNgIACyAEQRBqJAAgAAukAwEDfyMAQRBrIgkkACAAQQA2AgAgBSAFKAKcAUEBaiIHNgKcAUFwIQgCQCAHQfiXESgCAEsNACAJQQxqIAEgAiADIAQgBSAGECgiCEEASARAIAkoAgwiB0UNASAHEBEgBxDMAQwBCwJAAkACQAJAAkACQCAIRQ0AIAIgCEYNACAIQQ1HDQELIAAgCSgCDDYCAAwBCyAJKAIMIQdBAUE4EM8BIgZFDQIgBkEANgIQIAYgBzYCDCAGQQc2AgAgACAGNgIAA0AgAiAIRg0BIAhBDUYNASAJQQxqIAEgAiADIAQgBUEAECghCCAJKAIMIQcgCEEASARAIAcQEAwGCwJAIAcoAgBBB0YEQCAGIAc2AhADQCAHIgYoAhAiBw0ACyAJIAY2AgwMAQtBAUE4EM8BIgBFDQMgAEEANgIQIAAgBzYCDCAAQQc2AgAgBiAANgIQIAAhBgsgCA0AC0EAIQgLIAUgBSgCnAFBAWs2ApwBDAMLIAZBADYCEAwBCyAAQQA2AgAgBw0AQXshCAwBCyAHEBEgBxDMAUF7IQgLIAlBEGokACAIC7phARF/IwBBwAJrIgwkACAAQQA2AgACQAJAAkAgASgCACIHIAJGDQAgBUFAayETIAVBDGohEQJ/AkADQCAFKAKcASEWQXUhCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBw4YJxMoEhALDgkIBwYGCicAEQwPDQUEAwIBKAsgDCADKAIAIgc2AjggBSgCCCEKIABBADYCAEGLfyEIIAQgB00NJyAFKAIAIQkgByAEIAooAhQRAAAiCEEqRg0VIAhBP0cNFiARKAIALQAEQQJxRQ0WIAQgByAKKAIAEQEAIAdqIghNBEBBin8hCAwoCyAIIAQgCigCFBEAACELIAwgCCAKKAIAEQEAIAhqIgc2AjhBiX8hCAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkAgC0Ehaw5eATU1NTU1Awg1NTU1DTU1NTU1NTU1NTU1NS01BAACNQk1NQoMNTU1NQo1NQo1NTULNTUMNTU1DDU1NTU1NTU1NQ01NTU1NTU1DTU1NQ01NTU1NQ01NTU1DQw1BzU1BjULQQFBOBDPASIIBEAgCEF/NgIYIAhBATYCECAIQQY2AgALIAAgCDYCAAwrC0EBQTgQzwEiCARAIAhBfzYCGCAIQQI2AhAgCEEGNgIACyAAIAg2AgAMKgtBAUE4EM8BIggEQCAIQQA2AjQgCEECNgIQIAhBBTYCAAsgACAINgIADCkLIBEoAgAtAARBgAFxRQ0xQScMAQtBi38hCCAEIAdNDTAgByAEIAooAhQRAAAhCCAMIAcgCigCABEBACAHajYCOAJAIAhBIUcEQCAIQT1HDQFBAUE4EM8BIggEQCAIQX82AhggCEEENgIQIAhBBjYCAAsgACAINgIADCkLQQFBOBDPASIIBEAgCEF/NgIYIAhBCDYCECAIQQY2AgALIAAgCDYCAAwoC0GJfyEIIBEoAgAtAARBgAFxRQ0wIAwgBzYCOEE8CyEJQQAhCiAHIQ4MIwsgESgCAC0AB0ECcUUNLkGKfyEIIAQgB00NLgJAIAcgBCAKKAIUEQAAQfwARyIJDQAgDCAHIAooAgARAQAgB2oiBzYCOCAEIAdNDS8gByAEIAooAhQRAABBKUcNACAMIAcgCigCABEBACAHajYCOCMAQRBrIgokACAAQQA2AgAgBSAFKAKMASIHQQFqNgKMAUF7IQsCQEEBQTgQzwEiCEUNACAIIAc2AhggCEEKNgIAIAhCgYCAgCA3AgwgCkEBQTgQzwEiDjYCCAJAAkACQAJAIA5FBEBBACEHDAELIA4gBzYCGCAOQQo2AgAgDkKCgICAIDcCDCAKQQFBOBDPASIHNgIMIAdFBEBBACEHDAILIAdBCjYCAEEHQQIgCkEIahAtIglFDQEgCiAJNgIMIApBAUE4EM8BIg42AgggDkUEQCAJIQcMAQsgDkEANgIYIA5CioCAgICAgIABNwIAIA5CgoCAgNAANwIMIAkhB0EIQQIgCkEIahAtIglFDQEgCSAJKAIEQYCAIHI2AgQgCiAJNgIMIAogCDYCCCAJIQcgCCEOQQdBAiAKQQhqEC0iCEUNAiAAIAg2AgBBACELDAQLQQAhDgsgCBARIAgQzAEgDkUNAQsgDhARIA4QzAELIAdFDQAgBxARIAcQzAELIApBEGokACALIggNJEEAIQcMKAsgASAMQThqIAQgBRAaIghBAEgNLiAMQSxqIAFBDyAMQThqIAQgBUEBEBshCCAMKAIsIQogCEEASARAIAoQEAwvC0EAIQcCQCAJBEAgCiEOQQAhCUEAIQgMAQtBASEIQQAhCSAKKAIAQQhHBEAgCiEODAELIAooAhAiC0UEQCAKIQ4MAQsgCigCDCEOIApCADcCDCAKEBEgChDMAUEAIQggCygCEARAIAshCQwBCyALKAIMIQkgC0EANgIMIAsQESALEMwBCyAFIQtBACEPQQAhFyMAQTBrIhAkACAQQRBqIgpCADcDACAQQQA2AhggCiAJNgIAIBBCADcDCCAQQgA3AwAgECAOIhI2AhQCQAJAAkACQAJAAkAgCA0AAkAgCUUEQEEBQTgQzwEiCkUEQEF7IQkMBgsgCkL/////HzcCFCAKQQQ2AgBBAUE4EM8BIg5FBEBBeyEJDAULIA5BfzYCDCAOQoKAgICAgIAgNwIADAELAkACQCAJIgooAgBBBGsOAgEAAwsgCSgCEEECRw0CQQEhFyAJKAIMIgooAgBBBEcNAgsgCigCGEUNAQJAAkAgCigCDCIOKAIADgIAAQMLIA4oAgwiFCAOKAIQTw0CA0AgDyIVQQFqIQ8gFCALKAIIKAIAEQEAIBRqIhQgDigCEEkNAAsgFQ0CCyAJIApHBEAgCUEANgIMIAkQESAJEMwBCyAKQQA2AgwLIABBADYCACAQIBI2AiwgECAONgIoIBBBADYCJCAKKAIUIRQgCigCECEPIAsgCygCjAEiCEEBajYCjAEgEEEBQTgQzwEiCTYCIAJAAkAgCUUEQEF7IQkMAQsgCSAINgIYIAlBCjYCACAJQoGAgIAgNwIMAkAgEEEgakEEciAIIBIgDiAPIBQgF0EAIAsQOSIJDQAgEEEANgIsIBBBAUE4EM8BIgs2AihBeyEJIAtFDQAgCyAINgIYIAtBCjYCACALQoKAgIAgNwIMQQdBAyAQQSBqEC0iC0UNACAAIAs2AgBBACEJDAILIBAoAiAiC0UNACALEBEgCxDMAQsgECgCJCILBEAgCxARIAsQzAELIBAoAigiCwRAIAsQESALEMwBCyAQKAIsIgtFDQAgCxARIAsQzAELIAoQESAKEMwBIAkNAUEAIQkMBQsgCyALKAKMASIKQQFqIhQ2AowBIBBBAUE4EM8BIgk2AgAgCUUEQEF7IQkMBAsgCSAKNgIYIAlBCjYCACAJQoGAgIAgNwIMIAsgCkECajYCjAEgEEEBQTgQzwEiCTYCBCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgYCAgBA3AgxBAUE4EM8BIglFBEBBeyEJDAMLIAlBfzYCDCAJQoKAgICAgIAgNwIAIBAgCTYCDCAQQQhyIAogEiAJQQBBf0EBIAggCxA5IgkNAiAQQQA2AhQgEEEBQTgQzwEiCTYCDCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgoCAgBA3AgwCfyAIBEBBB0EEIBAQLQwBCyMAQRBrIg4kACAQQRhqIhVBADYCACAQQRRqIhRBADYCACALIAsoAowBIglBAWo2AowBQXshEgJAQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgD0KBgICAIDcCDCAOQQFBOBDPASILNgIIAkACQCALRQRAQQAhCQwBCyALIAk2AhggC0EKNgIAIAtCgoCAgCA3AgwgDkEBQTgQzwEiCTYCDCAJRQRAQQAhCQwCCyAJQQo2AgBBB0ECIA5BCGoQLSIIRQ0BIA4gCDYCDCAOQQFBOBDPASILNgIIIAtFBEAgCCEJDAELIAsgCjYCGCALQQo2AgAgC0KCgICAIDcCDCAIIQlBCEECIA5BCGoQLSIKRQ0BIBQgDzYCACAVIAo2AgBBACESDAILQQAhCwsgDxARIA8QzAEgCwRAIAsQESALEMwBCyAJRQ0AIAkQESAJEMwBCyAOQRBqJAAgEiIJDQNBB0EHIBAQLQshC0F7IQkgC0UNAiAAIAs2AgBBACEJDAQLIBBBADYCECAOIQoLIAoQESAKEMwBCyAQKAIAIgtFDQAgCxARIAsQzAELIBAoAgQiCwRAIAsQESALEMwBCyAQKAIIIgsEQCALEBEgCxDMAQsgECgCDCILBEAgCxARIAsQzAELIBAoAhAiCwRAIAsQESALEMwBCyAQKAIUIgsEQCALEBEgCxDMAQsgECgCGCILRQ0AIAsQESALEMwBCyAQQTBqJAAgCSIIRQ0nDCMLIBEoAgAtAAdBEHFFDS0gACAMQThqIAQgBRApIggNIkEAIQcMJgsgESgCAC0ABkEgcUUNLEGKfyEIIAQgB00NISAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjggBCAOTQ0hAkACQAJAAkAgCUH/AE0EQCAJQQQgCigCMBEAAA0BIAlBLUYNAQsgCUEnaw4ZACAgAgAgICAgICAgICAgICAgICAgACAgASALAkAgCUEnRiILBEAgCSEIDAELIAkiCEE8Rg0AIAwgBzYCOEEoIQggByEOCyAMQQA2AiQgCCAMQThqIAQgDEEkaiAFIAxBIGogDEEoaiAMQRxqECUiCEEASARAIAsgCUE8RnMNJQwgCyAIQQFGIRUCQAJAAkACQAJAIAwoAhwOAwMBAAELIAUoAjQhCCAMKAIgIgdBAEoEQCAMQbB+IAcgCGogCEH/////B3MgB0kbIgc2AiAMAgsgDCAHIAhqQQFqIgc2AiAMAQsgDCgCICEHC0GwfiEIIAdBAEwNJiARKAIALQAIQSBxBEAgByAFKAI0Sg0nIAdBA3QgBSgCgAEiDiATIA4baigCAEUNJwtBASAMQSBqQQAgFSAMKAIoIAUQKiIHRQ0BIAcgBygCBEGAgAhyNgIEDAELIAUgDiAMKAIkIAxBGGoQJiIPQQBMBEBBp34hCAwmCyAMKAIYIRIgESgCAC0ACEEgcQRAIAUoAjQhEEEAIQcDQEGwfiEIIBIgB0ECdGooAgAiDiAQSg0nIA5BA3QgBSgCgAEiCyATIAsbaigCAEUNJyAHQQFqIgcgD0cNAAsLIA8gEkEBIBUgDCgCKCAFECoiB0UNACAHIAcoAgRBgIAIcjYCBAsgDCAHNgIsIAlBPEcgCUEnR3FFBEAgDCgCOCIIIARPDSIgCCAEIAooAhQRAAAhCSAMIAggCigCABEBACAIajYCOCAJQSlHDSILQQAhDgwgCyARKAIALQAHQRBxRQ0eIA4gBCAKKAIUEQAAQfsARw0eIA4gBCAKKAIUEQAAGiAMIA4gCigCABEBACAOajYCOCAMQSxqIAxBOGogBCAFECkiCA0jDAELIBEoAgAtAAdBIHFFDR0gDEEsaiAMQThqIAQgBRArIggNIgtBASEODB0LIBEoAgAoAgQiCUGACHFFDSsgCUGAAXEEQCAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjhBASEKIAlBJ0YNICAJQTxGDSAgDCAHNgI4C0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDCwLIAhBBTYCACAIQv////8fNwIYIAAgCDYCACAMIAUQLCIINgJAIAhBAEgNKyAIQR9LBEBBon4hCAwsCyAAKAIAIAg2AhQgBSAFKAIQQQEgCHRyNgIQDCELIBEoAgAtAAlBIHENAgwqCyARKAIAKAIEQQBODQBBin8hCCAEIAdNDSkgByAEIAooAhQRAAAhCyAMIAcgCigCABEBACAHaiIONgI4QTwhCUEAIQpBiX8hCCALQTxGDR0MKQsgESgCAC0AB0HAAHENAAwoC0EAIQ9BACESA0BBASEOQYl/IQgCQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALQSlrDlEPPj4+FT4+Pj4+Pj4+Pj4+PhA+Pj4+Pj4+PgwGPj4+Pg0+Pg4+Pj4IPj4HPj4+BT4+Pj4+Pj4+Pgo+Pj4+Pj4+AT4+PgM+Pj4+PgI+Pj4+AAk+CyAPRQ0QIAlBfXEhCQwUCyAPBEAgCUF+cSEJDBQLIAlBAXIMEAsgESgCAC0ABEEEcUUNOyAPRQ0BIAlBe3EhCQwSCyARKAIAKAIEIghBBHEEQCAJQXdxIA9FDQ8aIAlBCHIhCQwSCyAIQYiAgIAEcUUEQEGJfyEIDDsLIA9FDQAgCUF7cSEJDBELIAlBBHIMDQsgESgCAC0AB0HAAHFFDTggDwRAIAlB//97cSEJDBALIAlBgIAEcgwMCyARKAIALQAHQcAAcUUNNyAPBEAgCUH//3dxIQkMDwsgCUGAgAhyDAsLIBEoAgAtAAdBwABxRQ02IA8EQCAJQf//b3EhCQwOCyAJQYCAEHIMCgsgESgCAC0AB0HAAHFFDTUgD0UNAiAJQf//X3EhCQwMCyAPQQFGDTQgESgCACgCBEGAgICABHFFDTQgBCAHTQRAQYp/IQgMNQsgByAEIAooAhQRAABB+wBHDTQgByAEIAooAhQRAAAaIAQgByAKKAIAEQEAIAdqIgdNBEBBin8hCAw1CyAHIAQgCigCFBEAACEOIAcgCigCABEBACELAkACQAJAIA5B5wBrDhEANzc3Nzc3Nzc3Nzc3Nzc3ATcLQYCAwAAhDiAKLQBMQQJxDQEMNgtBgICAASEOIAotAExBAnENAAw1CyAEIAcgC2oiCE0EQEGKfyEIDDULIAggBCAKKAIUEQAAIQcgCCAKKAIAEQEAIQsgB0H9AEcEQEGJfyEIDDULIAggC2ohByAOIAlB//+/fnFyDAgLIBEoAgAtAAlBEHFFDTMgD0UNACAJQf//X3EhCQwKCyAJQYCAIHIMBgsgESgCAC0ACUEgcUUNMSAPQQFGBEBBiH8hCAwyCyAJQYABciEJDAcLIBEoAgAtAAlBIHFFDTAgD0EBRgRAQYh/IQgMMQsgCUGAgAJyIQkMBgsgESgCAC0ACUEgcUUNLyAPQQFGBEBBiH8hCAwwCyAJQRByIQkMBQsgDCAHNgI4QQFBOBDPASIKRQRAIABBADYCAEF7IQgMLwsgCiAJNgIUIApBATYCECAKQQU2AgAgACAKNgIAQQIhByASQQFHDScMAwsgDCAHNgI4IAUoAgAhByAFIAk2AgAgASAMQThqIAQgBRAaIghBAEgNLSAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAFIAc2AgAgCEEASARAIAwoAjwQEAwuC0EBQTgQzwEiCkUEQCAAQQA2AgBBeyEIDC4LIAogCTYCFCAKQQE2AhAgCkEFNgIAIAAgCjYCACAKIAwoAjw2AgxBACEHIBJBAUYNAiADIAwoAjg2AgAMKQsgCUECcgshCUEAIQ4MAgsgBSgCoAEiDkECcQRAQYh/IQgMKwsgBSAOQQJyNgKgASAKIAooAgRBgICAgAFyNgIEAkAgCUGAAXFFDQAgBSgCLCIKIAooAkhBgAFyNgJIIAlBgANxQYADRw0AQe18IQgMKwsgCUGAgAJxBEAgBSgCLCIKIAooAkhBgIACcjYCSCAKIAooAlBB/v+//3txQQFyNgJQCyAJQRBxRQ0jIAUoAiwiCiAKKAJIQRByNgJIDCMLQQAhDkEBIRILIAQgB00EQEGKfyEIDCkFIAcgBCAKKAIUEQAAIQsgByAKKAIAEQEAIAdqIQcgDiEPDAELAAsACyAFKAIAIQ0CQAJAQQFBOBDPASIHRQ0AIAdBfzYCGCAHQYCACDYCECAHQQY2AgAgDUGAgIABcQRAIAdBgICABDYCBAsgDCAHNgJAAkACQEEBQTgQzwEiDUUEQEEAIQ0MAQsgDUF/NgIMIA1CgoCAgICAgCA3AgAgDCANNgJEQQdBAiAMQUBrEC0iAkUNAEEBQTgQzwEiDUUEQEEAIQ0gAiEHDAELIA1BATYCGCANQoCAgIBwNwIQIA1ChICAgICAEDcCACANIAI2AgwgDCANNgJEQQFBOBDPASIHRQ0BIAdBfzYCDCAHQoKAgICAgIAgNwIAIAwgBzYCQEEHQQIgDEFAaxAtIgJFDQBBAUE4EM8BIgcNA0EAIQ0gAiEHCyAHEBEgBxDMASANRQ0BCyANEBEgDRDMAQtBeyEIDCcLQQAhDSAHQQA2AjQgB0ECNgIQIAdBBTYCACAHIAI2AgwgACAHNgIADCILQQFBOBDPASIHRQRAQXshCAwmCyAHQX82AgwgB0KCgICAgICAIDcCACAAIAc2AgAMIQtBAUE4EM8BIgdFBEBBeyEIDCULIAdBfzYCDCAHQQI2AgAgACAHNgIADCALQQ0gDEFAayAFKAIIKAIcEQAAIgdBAEgEQCAHIQgMJAtBCiAMQUBrIAdqIgogBSgCCCgCHBEAACICQQBIBEAgAiEIDCQLQXshCEEBQTgQzwEiDUUNIyANIA1BGGoiCTYCECANIAk2AgwCQCANIAxBQGsgAiAKahATDQAgDSANKAIUQQFyNgIUQQFBOBDPASICRQ0AIAJBATYCAAJAAkAgB0EBRgRAIAJBgPgANgIQDAELIAJBMGpBCkENEBkNAQsgBSgCCC0ATEECcQRAIAJBMGoiB0GFAUGFARAZDQEgB0GowABBqcAAEBkNAQtBAUE4EM8BIgdFDQAgB0EFNgIAIAdCAzcCECAHIA02AgwgByACNgIYIAAgBzYCAEEAIQ0MIQsgAhARIAIQzAELIA0QESANEMwBDCMLIAUgBSgCjAEiDUEBajYCjAEgAEEBQTgQzwEiBzYCACAHRQRAQXshCAwjCyAHIA02AhggB0EKNgIAIAdBATYCDCAFIAUoAogBQQFqNgKIAUEAIQ0MHgsgESgCACgCCCIHQQFxRQ0LQY9/IQggB0ECcQ0hQQFBOBDPASIHRQRAIABBADYCAEF7IQgMIgsgByAHQRhqIg02AhAgByANNgIMIAAgBzYCAEEAIQ0MHQsgBSgCACECIAEoAhQhDUEBQTgQzwEiBwRAIAdBfzYCGCAHIA02AhAgB0EGNgIAAkAgAkGAgCRxRQRAQQAhCgwBC0EBIQogDUGACEYNACANQYAQRg0AIA1BgCBGDQAgDUGAwABGIQoLIAcgCjYCHAJAIA1BgIAIRyANQYCABEdxDQAgAkGAgIABcUUNACAHQYCAgAQ2AgQLIAAgBzYCAEEAIQ0MHQsgAEEANgIAQXshCAwgCyABKAIgIQogASgCGCEJIAEoAhwhAiABKAIUIQ5BAUE4EM8BIgdFBEAgAEEANgIAQXshCAwgCyAHIAk2AhwgByAONgIYIAcgCjYCECAHQQk2AgAgB0EBNgIgIAcgAjYCFCAAIAc2AgAgBSAFKAIwQQFqNgIwIAINGyABKAIgRQ0bIAUgBSgCoAFBAXI2AqABDBsLAn8gASgCFCIHQQJOBEAgASgCHAwBCyABQRhqCyENIAAgByANIAEoAiAgASgCJCABKAIoIAUQKiIHNgIAQQAhDSAHDRpBeyEIDB4LIAUoAgAhDUEBQTgQzwEiBwRAIAdBfzYCDCAHQQI2AgAgDUEEcQRAIAdBgICAAjYCBAsgACAHNgIAQQFBOBDPASINRQRAQXshCAwfCyANQQE2AhggDUKAgICAcDcCECANQQQ2AgAgDSAHNgIMIAAgDTYCAEEAIQ0MGgsgAEEANgIAQXshCAwdCyAFKAIAIQ1BAUE4EM8BIgcEQCAHQX82AgwgB0ECNgIAIA1BBHEEQCAHQYCAgAI2AgQLIAAgBzYCAEEAIQ0MGQsgAEEANgIAQXshCAwcCyAAIAEgAyAEIAUQLiIIDRsgBS0AAEEBcUUNFyAAKAIAIQggDCAMQcgAajYCTCAMQQA2AkggDCAINgJEIAwgBTYCQCAFKAIEQQYgDEFAayAFKAIIKAIkEQIAIQggDCgCSCEHIAgEQCAHEBAMHAsgBwRAIAAoAgAhAkEBQTgQzwEiDUUEQCAHEBEgBxDMAUF7IQgMHQsgDSAHNgIQIA0gAjYCDCANQQg2AgAgACANNgIAC0EAIQ0MFwsgBSgCCCENIAMoAgAiCSEHA0BBi38hCCAEIAdNDRsgByAEIA0oAhQRAAAhAiAHIA0oAgARAQAgB2ohCgJAAkAgAkH7AGsOAx0dAQALIAohByACQShrQQJPDQEMHAsLIA0gCSAHIA0oAiwRAgAiCEEASARAIAMoAgAhACAFIAc2AiggBSAANgIkDBsLIAMgCjYCAEEBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBsLIAdBATYCACAAIAc2AgBBACENIAcgCEEAIAUQMCIIDRogASgCGEUNFiAHIAcoAgxBAXI2AgwMFgsCQAJAIAEoAhRBBGsOCQEbGxsbARsBABsLIAEoAhghBiAFKAIAIQdBAUE4EM8BIgIEQCACIAY2AhAgAkEMNgIMIAJBAjYCAEEBIQYCQCAHQYCAIHENACAHQYCAJHENAEEAIQYLIAIgBjYCFAsgACACIgc2AgAgBw0WQXshCAwaC0EBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBoLIAdBATYCACAAIAc2AgAgByABKAIUQQAgBRAwIggEQCAAKAIAEBAgAEEANgIADBoLIAEoAhhFDRUgByAHKAIMQQFyNgIMDBULAkACQCADKAIAIg4gBE8NACAFKAIIIQIgBSgCDCgCECEJIA4hBwNAAkAgByINIAQgAigCFBEAACEKIAcgAigCABEBACAHaiEHAkAgCSAKRw0AIAQgB00NACAHIAQgAigCFBEAAEHFAEYNAQsgBCAHSw0BDAILCyAHIAIoAgARAQAhAiANRQ0AIAIgB2ohCQwBCyAEIgkhDQsgBSgCACEKQQAhAgJAQQFBOBDPASIHRQ0AIAcgB0EYaiILNgIQIAcgCzYCDCAHIA4gDRATRQRAIAchAgwBCyAHEBEgBxDMAQsCQCAKQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAAwBCyAAIAI2AgAgAg0AQXshCAwZCyADIAk2AgBBACENDBQLIAEoAhQgBSgCCCgCGBEBACIIQQBIDRcgASgCFCAMQUBrIAUoAggoAhwRAAAhCiAFKAIAIQ1BACECAkBBAUE4EM8BIgdFDQAgByAHQRhqIgk2AhAgByAJNgIMIAcgDEFAayAMQUBrIApqEBNFBEAgByECDAELIAcQESAHEMwBCyANQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAEEAIQ0MFAsgACACNgIAQQAhDSACDRNBeyEIDBcLQYx/IQggESgCAC0ACEEEcUUNFiABKAIIDQELIAUoAgAhDSADKAIAIQIgASgCECEKQQAhBwJAQQFBOBDPASIIRQ0AIAggCEEYaiIJNgIQIAggCTYCDCAIIAogAhATRQRAIAghBwwBCyAIEBEgCBDMAQsgDUEBcQRAIAcgBygCBEGAgIABcjYCBCAAIAc2AgAMAgsgACAHNgIAIAcNAUF7IQgMFQsgBSgCACENIAwgAS0AFDoAQEEAIQgCQEEBQTgQzwEiB0UNACAHIAdBGGoiAjYCECAHIAI2AgwgByAMQUBrIAxBwQBqEBNFBEAgByEIDAELIAcQESAHEMwBCwJAAkAgDUEBcQRAIAggCCgCBEGAgIABcjYCBAwBCyAIRQ0BCyAIIAgoAhRBAXI2AhQLIAhCADcAKCAIQgA3ACEgCEIANwAZIAAgCDYCACAMQcEAaiENQQEhBwNAAkACQCAHIAUoAggiCCgCDEgNACAAKAIAKAIMIAgoAgARAQAgB0cNACABIAMgBCAFEBohCCAAKAIAIgcoAgwgBygCECAFKAIIKAJIEQAADQFB8HwhCAwXCyABIAMgBCAFEBoiCEEASA0WIAhBAUcEQEGyfiEIDBcLIAAoAgAhCCAMIAEtABQ6AEAgB0EBaiEHIAggDEFAayANEBMiCEEATg0BDBYLCyAAKAIAIgcgBygCFEF+cTYCFEEAIQ0MAQsDQCABIAMgBCAFEBoiCEEASA0UIAhBA0cEQEEAIQ0MAgsgACgCACABKAIQIAMoAgAQEyIIQQBODQALDBMLQQEMDwsgESgCAC0AB0EgcUUNACAMIAcgCigCABEBACAHajYCOCAAIAxBOGogBCAFECsiCA0GQQAhBwwKCyAFLQAAQYABcQ0IQQFBOBDPASIHRQRAIABBADYCAEF7IQgMEQsgB0EFNgIAIAdC/////x83AhggACAHNgIAAkAgBSgCNCIKQfSXESgCACIISA0AIAhFDQBBrn4hCAwRCyAKQQFqIQgCQCAKQQdOBEAgCCAFKAI8IglIBEAgBSAINgI0IAwgCDYCQAwCCwJ/IAUoAoABIgdFBEBBgAEQywEiB0UEQEF7IQgMFQsgByATKQIANwIAIAcgEykCODcCOCAHIBMpAjA3AjAgByATKQIoNwIoIAcgEykCIDcCICAHIBMpAhg3AhggByATKQIQNwIQIAcgEykCCDcCCEEQDAELIAcgCUEEdBDNASIHRQRAQXshCAwUCyAFKAI0IgpBAWohCCAJQQF0CyEJIAggCUgEQCAKQQN0IAdqQQhqQQAgCSAKQX9zakEDdBCoARoLIAUgCTYCPCAFIAc2AoABCyAFIAg2AjQgDCAINgJAIAhBAEgNESAAKAIAIQcLIAcgCDYCFAwGCyAMIAc2AjggASAMQThqIAQgBRAaIghBAEgNBEEBIQ4gDEEsaiABQQ8gDEE4aiAEIAVBABAbIghBAE4NACAMKAIsEBAMBAtBeyEIIAwoAiwiB0UNAyAMKAI4IgkgBEkNAQsgBxAQQYp/IQgMAgsCQAJAAkAgCSAEIAooAhQRAABBKUYEQCAORQ0BIAcQESAHEMwBQaB+IQgMBQsgCSAEIAooAhQRAAAiDkH8AEYEQCAJIAQgCigCFBEAABogDCAJIAooAgARAQAgCWo2AjgLIAEgDEE4aiAEIAUQGiIIQQBIBEAgBxARIAcQzAEMBQsgDEE8aiABQQ8gDEE4aiAEIAVBARAbIghBAEgEQCAHEBEgBxDMASAMKAI8EBAMBQtBACEJIAwoAjwhCgJAIA5B/ABGBEAgCiEODAELQQAhDiAKKAIAQQhHBEAgCiEJDAELIAooAgwhCQJAIAooAhAiCygCEARAIAshDgwBCyALKAIMIQ4gCxAxCyAKEDELQQFBOBDPASIKDQEgAEEANgIAIAcQESAHEMwBIAkQECAOEBBBeyEIDAQLIAkgBCAKKAIUEQAAGiAMIAkgCigCABEBACAJajYCOAwBCyAKQQM2AhAgCkEFNgIAIAogCTYCFCAKIAc2AgwgCiAONgIYIAohBwsgACAHNgIAQQAhBwwFCyAJIAxBOGogBCAMQTRqIAUgDEFAayAMQTBqQQAQJCIIQQBIDQsgBRAsIgdBAEgEQCAHIQgMDAsgB0EfSyAKcQRAQaJ+IQgMDAsgBSgCLCEVIAwoAjQhCyAFIQkjAEEQayISJAACQCALIA5rIhBBAEwEQEGqfiEJDAELIBUoAlQhDyASQQA2AgQCQAJAAkACQAJAIA8EQCASIAs2AgwgEiAONgIIIA8gEkEIaiASQQRqEI8BGiASKAIEIghFDQEgCCgCCCIPQQBMDQIgCSgCDC0ACUEBcQ0DIAkgCzYCKCAJIA42AiRBpX4hCQwGC0H8lxEQjAEiD0UEQEF7IQkMBgsgFSAPNgJUC0F7IQlBGBDLASIIRQ0EIAggFSgCRCAOIAsQdiIONgIAIA5FBEAgCBDMAQwFC0EIEMsBIgtFDQQgCyAONgIAIAsgDiAQajYCBCAPIAsgCBCQASIJBEAgCxDMASAJQQBIDQULIAhBADYCFCAIIBA2AgQgCEIBNwIIIAggBzYCEAwDCyAIIA9BAWoiDjYCCCAPDQEgCCAHNgIQDAILIAggD0EBaiIONgIIIA5BAkcNACAIQSAQywEiDjYCFCAORQRAQXshCQwDCyAIQQg2AgwgCCgCECELIA4gBzYCBCAOIAs2AgAMAQsgCCgCFCELIAgoAgwiCSAPTARAIAggCyAJQQN0EM0BIgs2AhQgC0UEQEF7IQkMAwsgCCAJQQF0NgIMIAgoAgghDgsgDkECdCALakEEayAHNgIAC0EAIQkLIBJBEGokACAJIggNAEEBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAwLIAhChYCAgIDAADcCACAIQv////8fNwIYIAAgCDYCACAIIAc2AhQgB0EgSSAKcQRAIAUgBSgCEEEBIAd0cjYCEAsgBSAFKAI4QQFqNgI4DAELIAgiB0EATg0EDAoLIAAoAgAhCAsgCEUEQEF7IQgMCQsgASAMQThqIAQgBRAaIghBAEgNCCAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAMKAI8IQcgCEEASARAIAcQEAwJCyAAKAIAIAc2AgxBACEHIAAoAgAiCigCAEEFRw0BIAooAhANASAKKAIUIgkgBSgCNEoEQEF1IQgMCQsgCUEDdCAFKAKAASIOIBMgDhtqIAo2AgAMAQsgASAMQThqIAQgBRAaIghBAEgNB0EBIQcgACABQQ8gDEE4aiAEIAVBABAbIghBAEgNBwsgAyAMKAI4NgIACyAHQQJHBEAgB0EBRw0CIAZFBEBBASENDAMLIAAoAgAhDUEBQTgQzwEiB0UEQCAAQQA2AgAgDRAQQXshCAwHCyAHIA02AgwgB0EHNgIAIAAgBzYCAEECIQ0MAgsgESgCAC0ACUEEcQRAIAUgACgCACgCFDYCACABIAMgBCAFEBoiCEEASA0GIAAoAgAiCARAIAgQESAIEMwBCyAAQQA2AgAgASgCACIHIAJGDQQMAQsLIAUoAgAhByAFIAAoAgAoAhQ2AgAgASADIAQgBRAaIghBAEgNBCAMQUBrIAEgAiADIAQgBUEAEBshCCAFIAc2AgAgDCgCQCEFIAhBAEgEQCAFEBAMBQsgACgCACAFNgIMIAEoAgAhCAwEC0EACyEHA0AgB0UEQCABIAMgBCAFEBoiCEEASA0EQQEhBwwBCyAIQX5xQQpHDQMgACgCABAyBEBBjn8hCAwECyAWQQFqIhZB+JcRKAIASwRAQXAhCAwECyABKAIYIQIgASgCFCEKQQFBOBDPASIHRQRAQXshCAwECyAHQQE2AhggByACNgIUIAcgCjYCECAHQQQ2AgAgCEELRgRAIAdBgIABNgIECyAHIAEoAhw2AhggACgCACEIAkAgDUECRwRAIAghAgwBCyAIKAIMIQIgCEEANgIMIAgQESAIEMwBIABBADYCACAHKAIQIQoLQQEhCAJAIApBAUYEQCAHKAIUQQFGDQELQQAhCAJAAkACQAJAIAIiCSgCAA4FAAMDAwEDCyANDQIgAigCDCINIAIoAhBPDQIgDSAFKAIIKAIAEQEAIAIoAhAiDSACKAIMIgprTg0CIAogDU8NAiAFKAIIIAogDRB4Ig1FDQIgAigCDCANTw0CIAIoAhAhCkEBQTgQzwEiCUUEQCACIQkMAwsgCSAJQRhqIg42AhAgCSAONgIMIAkgDSAKEBNFDQEgCRARIAkQzAEgAiEJDAILAkACQCAHKAIYIg4EQAJAAkAgCg4CAAEDC0EBQX8gBygCFCIIQX9GG0EAIAhBAUcbIQ0MAwtBAiENIAcoAhRBf0cNAQwCCwJAAkAgCg4CAAECC0EDQQRBfyAHKAIUIghBf0YbIAhBAUYbIQ0MAgtBBSENIAcoAhRBf0YNAQtBfyENCyACKAIQIQgCQAJAAkAgAigCGARAAkAgCA4CAAIEC0EBQX8gAigCFCIIQX9GG0EAIAhBAUcbIQkMAgsCQAJAIAgOAgABBAtBA0EEQX8gAigCFCIIQX9GGyAIQQFGGyEJDAILQQUhCSACKAIUQX9HDQIMAQtBAiEJIAIoAhRBf0cNAQsCQCAJQQBIIggNACANQQBIDQAgESgCAC0AC0ECcUUNAQJAAkACQCAJQRhsQYAIaiANQQJ0aigCACIIDgIEAAELQfCXESgCAEEBRg0DIAxBQGsgBSgCCCAFKAIcIAUoAiBB/RVBABCLAQwBC0HwlxEoAgBBAUYNAiAFKAIgIQ4gBSgCHCELIAUoAgghDyAMIAhBAnRB8JkRaigCADYCCCAMIA1BAnRB0JkRaigCADYCBCAMIAlBAnRB0JkRaigCADYCACAMQUBrIA8gCyAOQboWIAwQiwELIAxBQGtB8JcRKAIAEQQADAELIAgNACANQQBODQBBACEIIAlBAWtBAUsEQCACIQkMAwsgBygCFEECSARAIAIhCQwDCyAORQRAIAIhCQwDCyAHIApBASAKGzYCFCACIQkMAgsgByACNgIMIAcQFyIIQQBODQIgBxARIAcQzAEgAEEANgIADAYLIAIgDTYCECAJIAIoAhQ2AhQgCSACKAIENgIEQQIhCAsgByAJNgIMCwJAIAEoAiBFBEAgByEKDAELQQFBOBDPASIKRQRAIAcQESAHEMwBQXshCAwFCyAKQQA2AjQgCkECNgIQIApBBTYCACAKIAc2AgwLQQAhDQJAAkACQAJAAkAgCA4DAAECAwsgACAKNgIADAILIAoQESAKEMwBIAAgAjYCAAwBCyAAKAIAIQdBAUE4EM8BIgJFBEAgAEEANgIADAILIAJBADYCECACIAc2AgwgAkEHNgIAIAAgAjYCAEEBQTgQzwEiB0UEQCACQQA2AhAMAgsgB0EANgIQIAcgCjYCDCAHQQc2AgAgACgCACAHNgIQIAdBDGohAAtBACEHDAELCyAKEBEgChDMAUF7IQgMAgsgAiEHC0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAELIAggCEEYaiIFNgIQIAggBTYCDCAAIAg2AgAgByEICyAMQcACaiQAIAgL1wYBCn8jAEEQayIMJABBnX4hCAJAIAEoAgAiCiACTw0AIAMoAgghBQNAIAIgCk0NASAKIAIgBSgCFBEAAEH7AEcEQCAKIQsDQCALIAIgBSgCFBEAACEHIAsgBSgCABEBACALaiEEAkAgB0H9AEcNACAGIQcgBgRAA0AgAiAETQ0GIAQgAiAFKAIUEQAAIQkgBCAFKAIAEQEAIARqIQQgCUH9AEcNAiAHQQFKIQkgB0EBayEHIAkNAAsLQYp/IQggAiAETQ0EIAQgAiAFKAIUEQAAIQcgBCAFKAIAEQEAIARqIQkCfyAHQdsARwRAQQAhBCAJDAELIAIgCU0NBSAJIQYDQAJAIAYiBCACIAUoAhQRAAAhByAEIAUoAgARAQAgBGohBiAHQd0ARg0AIAIgBksNAQsLQYp/QZl+IAUgCSAEEA0iBxshCCAHRQ0FIAIgBk0NBSAGIAIgBSgCFBEAACEHIAkhDSAGIAUoAgARAQAgBmoLIQZBASEJAkACQAJAAkACQCAHQTxrDh0BBAIEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQLQQMhCUGKfyEIIAIgBksNAgwIC0ECIQlBin8hCCACIAZLDQEMBwtBin8hCCACIAZNDQYLIAYgAiAFKAIUEQAAIQcgBiAFKAIAEQEAIAZqIQYLQZ1+IQggB0EpRw0EIAMgDEEMahA6IggNBCADKAIsED0iAkUEQEF7IQgMBQsgAigCAEUEQCADKAIsIAMoAhwgAygCIBA+IggNBQsgBCANRwRAIAMgAygCLCANIAQgDCgCDBA7IggNBQsgBSAKIAsQdiICRQRAQXshCAwFCwJAIAwoAgwiBUEATA0AIAMoAiwoAoQDIgRFDQAgBCgCDCAFSA0AIAQoAhQiB0UNACAAQQFBOBDPASIENgIAIARFDQAgBEF/NgIYIARBCjYCACAEIAU2AhQgBEIDNwIMIAcgBUEBa0HcAGxqIgUgAjYCJCAFQX82AgwgBSAJNgIIQQAhCCAFQQA2AgQgBSACIAsgCmtqNgIoIAEgBjYCAAwFCyACEMwBQXshCAwECyAEIgsgAkkNAAsMAgsgBkEBaiEGIAogBSgCABEBACAKaiIKIAJJDQALCyAMQRBqJAAgCAu0AgEDf0EBQTgQzwEiBkUEQEEADwsgBiAANgIMIAZBAzYCACACBH8gBkGAgAI2AgRBgIACBUEACyEHIAUtAABBAXEEQCAGIAdBgICAAXIiBzYCBAsgAwRAIAYgBDYCLCAGIAdBgMAAciIHNgIECwJAIABBAEwNACAFQUBrIQggBSgCNCEEQQAhAwNAAkACQCABIANBAnRqKAIAIgIgBEoNACACQQN0IAUoAoABIgIgCCACG2ooAgANACAGIAdBwAByNgIEDAELIANBAWoiAyAARw0BCwsgAEEGTARAIABBAEwNASAGQRBqIAEgAEECdBCmARoMAQsgAEECdCICEMsBIgNFBEAgBhARIAYQzAFBAA8LIAYgAzYCKCADIAEgAhCmARoLIAUgBSgChAFBAWo2AoQBIAYL6RMBHX8jAEHQAGsiDSQAAkAgAiABKAIAIg5NBEBBnX4hBwwBCyADKAIIIQUgDiEPA0BBin8hByAPIgkgAk8NASAJIAIgBSgCFBEAACEGIAkgBSgCABEBACAJaiEPAkAgBkEpRg0AIAZB+wBGDQAgBkHbAEcNAQsLIAkgDk0EQEGcfiEHDAELIA4hCgNAAkAgCiAJIAUoAhQRAAAiBEFfcUHBAGtBGkkNACAEQTBrQQpJIgggCiAORnEEQEGcfiEHDAMLIARB3wBGIAhyDQBBnH4hBwwCCyAKIAUoAgARAQAgCmoiCiAJSQ0AC0EAIQoCQCAGQdsARwRAIA8hEEEAIQ8MAQsgAiAPTQ0BIA8hBANAAkAgBCIKIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEEIAZB3QBGDQAgAiAESw0BCwsgCiAPTQRAQZl+IQcMAgsgDyEGA0ACQCAGIAogBSgCFBEAACIIQV9xQcEAa0EaSQ0AIAhBMGtBCkkiCyAGIA9GcQRAQZl+IQcMBAsgCEHfAEYgC3INAEGZfiEHDAMLIAYgBSgCABEBACAGaiIGIApJDQALIAIgBE0NASAEIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEQCwJAAkAgBkH7AEYEQCACIBBNDQMgAygCCCELIBAhBgNAQQAhB0EAIQggAiAGTQRAQZ1+IQcMBQsCQANAIAYgAiALKAIUEQAAIQQgBiALKAIAEQEAIAZqIQYCfwJAIAcEQCAEQSxGDQEgBEHcAEYNASAEQf0ARg0BIAhBAWohCAwBC0EBIARB3ABGDQEaIARBLEYNAyAEQf0ARg0DCyAIQQFqIQhBAAshByACIAZLDQALQZ1+IQcMBQsgBEH9AEcEQCAMIAhBAEdqIgxBBEkNAQsLQZ1+IQcgBEH9AEcNA0EAIQQgAiAGSwRAIAYgAiAFKAIUEQAAIQQLIA0gEDYCDCAFIARBKUcgDiAJIA1ByABqEDwiBw0DQeC/EigCACgCCCANKAJIIglBzABsaiIGKAIQIg5BAEoEQCANQTBqIAZBGGogDkECdBCmARoLIA1BMGohGSANQRBqIRcgAyEEQQAhCCMAQZABayITJABBnX4hCwJAIA1BDGoiHSgCACIGIAJPDQAgBCgCCCEUAkACQAJAA0BBnX4hCyACIAZNDQEgE0EQaiEVIAYhBEEAIRZBACEQQQAhDEEAIRIDQAJAIAQgAiAUKAIUEQAAIREgBCAUKAIAEQEAIARqIQcCQAJAIAwEQCARQSxGDQEgEUHcAEYNASARQf0ARg0BIBJBAWohEiAQIQQMAQtBASEMIBFB3ABGBEAgBCEQDAILIBFBLEYNAiARQf0ARg0CCyAHIARrIhEgFmoiFkGAAUoEQEGYfiELDAYLIBUgBCAREKYBGiASQQFqIRJBACEMCyATQRBqIBZqIRUgByIEIAJJDQEMBAsLIBIEQAJAIA5BAEgNACAIIA5IDQBBmH4hCwwECwJAIBkgCEECdGoiFigCACIMQQFxRQ0AAkAgFiASQQBKBH8gE0EMaiEeQQAhC0EAIRpBmH4hGwJAIBUgE0EQaiIYTQ0AQQEhHANAIBggFSAUKAIUEQAAIQwgGCAUKAIAEQEAIR8CQCAMQTBrIiBBCU0EQCALQa+AgIB4IAxrQQpuSg0DICAgC0EKbGohCwwBCyAaDQICQCAMQStrDgMBAwADC0F/IRwLQQEhGiAYIB9qIhggFUkNAAsgHiALIBxsNgIAQQAhGwsgG0UNASAWKAIABSAMC0F+cSIMNgIAIAwNAUGYfiELDAULIBcgCEEDdGogEygCDDYCAEEBIQwgFkEBNgIAC0F1IQsCQAJAAkACQCAMQR93DgkHAAEDBwMDAwIDCyASQQFHBEBBmH4hCwwHCyAXIAhBA3RqIBNBEGogFSAUKAIUEQAANgIADAILIBQgE0EQaiAVEHYiDEUEQEF7IQsMBgsgFyAIQQN0aiISIAwgBCAGa2o2AgQgEiAMNgIADAELQZl+IQsgEA0EIBQgBiAEEA1FDQQgFyAIQQN0aiIMIAQ2AgQgDCAGNgIACyAIQQFqIQgLIBFB/QBHBEAgByEGIAhBBEgNAQsLIBFB/QBGDQILQZ1+IQsLIAhBAEwNAUEAIQQDQAJAIBkgBEECdGooAgBBBEcNACAXIARBA3RqKAIAIgdFDQAgBxDMAQsgBEEBaiIEIAhHDQALDAELIB0gBzYCACAIIQsLIBNBkAFqJAAgCyIEQQBIBEAgBCEHDAQLQYp/IQcgDSgCDCIIIAJPDQIgCCACIAUoAhQRAAAhBiAIIAUoAgARAQAgCGohEAwBC0EAIQQgBUEAIA4gCSANQcgAahA8IgcNAkHgvxIoAgAoAgggDSgCSCIJQcwAbGoiBSgCECIOQQBMDQAgDUEwaiAFQRhqIA5BAnQQpgEaC0EAIQJB4L8SKAIAIQUCQCAJQQBIDQAgBSgCACAJTA0AIAUoAgggCUHMAGxqKAIEIQILQZh+IQcgBCAOSg0AIAQgDiAFKAIIIAlBzABsaigCFGtIDQBBnX4hByAGQSlHDQAgAyANQcwAahA6IgcNAEF7IQcgAygCLBA9IgVFDQACQCAFKAIADQAgAygCLCADKAIcIAMoAiAQPiIFRQ0AIAUhBwwBCwJAIAogD0YEQCANKAJMIQUMAQsgAyADKAIsIA8gCiANKAJMIgUQOyIKRQ0AIAohBwwBCyAFQQBMDQAgAygCLCgChAMiCkUNACAKKAIMIAVIDQAgCigCFCIKRQ0AQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgDyAFNgIUIA9Cg4CAgBA3AgwgCiAFQQFrIgZB3ABsaiIFIAk2AgwgBSACNgIIIAVBATYCBEEAIQICQCAJQQBOBEAgCUHgvxIoAgAiBSgCAE4EQCAKIAZB3ABsakIANwIYDAILIAogBkHcAGxqIgIgCUHMAGwiByAFKAIIaiIIKAIANgIYIAIgCCgCCDYCHCAFKAIIIAdqKAIMIQIMAQsgBUIANwIYCyAKIAZB3ABsaiIKIA42AiQgCiACNgIgIAogBDYCKCAOQQBKBEBB4L8SKAIAIQZBACEFIAlBzABsIQIDQCAKIAVBAnQiCWogDUEwaiAJaigCADYCLCAKIAVBA3RqIAQgBUoEfyANQRBqIAVBA3RqBSAGKAIIIAJqIAVBA3RqQShqCykCADcCPCAFQQFqIgUgDkcNAAsLIAAgDzYCACABIBA2AgBBACEHDAELIARFDQBBACEJA0ACQCANQTBqIAlBAnRqKAIAQQRHDQAgDUEQaiAJQQN0aigCACIFRQ0AIAUQzAELIAlBAWoiCSAERw0ACwsgDUHQAGokACAHC5UCAQR/AkAgACgCNCIEQfSXESgCACIBTgRAQa5+IQIgAQ0BCyAEQQFqIQICQCAEQQdIDQAgACgCPCIDIAJKDQACfyAAKAKAASIBRQRAQYABEMsBIgFFBEBBew8LIAEgACkCQDcCACABIAApAng3AjggASAAKQJwNwIwIAEgACkCaDcCKCABIAApAmA3AiAgASAAKQJYNwIYIAEgACkCUDcCECABIAApAkg3AghBEAwBCyABIANBBHQQzQEiAUUEQEF7DwsgACgCNCIEQQFqIQIgA0EBdAshAyACIANIBEAgBEEDdCABakEIakEAIAMgBEF/c2pBA3QQqAEaCyAAIAM2AjwgACABNgKAAQsgACACNgI0CyACC4EBAQJ/AkAgAUEATA0AQQFBOBDPASEDAkAgAUEBRgRAIANFDQIgAyAANgIAIAMgAigCADYCDAwBCyADRQ0BIAAgAUEBayACQQRqEC0iAUUEQCADEBEgAxDMAUEADwsgAyAANgIAIAIoAgAhBCADIAE2AhAgAyAENgIMCyADIQQLIAQLqyUBEn8jAEHQA2siByQAIABBADYCACAEIAQoApwBQQFqIgU2ApwBQXAhBgJAIAVB+JcRKAIASw0AIAdBAzYCSEECIQUCQCABIAIgAyAEQQMQMyIGQQJHIgtFBEBBASESIAEoAhRB3gBHDQEgASgCCA0BIAEgAiADIARBAxAzIQYLIAZBAEgNASAGQRhHBEAgCyESIAYhBQwBC0GafyEGIAIoAgAiBSAEKAIgIghPDQEgBCgCCCEKA0ACQCAJBH9BAAUgBSAIIAooAhQRAAAhCSAFIAooAgARAQAhEiAJQd0ARg0BIAUgEmohBSAJIAQoAgwoAhBGCyEJIAUgCEkNAQwDCwsCQEHslxEoAgBBAUYNACAEKAIMKAIIQYCAgAlxQYCAgAlHDQAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0HfCTYCMCAHQZABaiAIIAkgBkGlDyAHQTBqEIsBIAdBkAFqQeyXESgCABEEAAtBAiEFIAFBAjYCACALIRILQQFBOBDPASIKRQRAIABBADYCAEF7IQYMAQsgCkEBNgIAIAAgCjYCACAHQQA2AkQgByACKAIANgKIASAHQZcBaiEVA0AgBSEJA0ACQEGZfyEFQXUhBgJAAkAgASAHQYgBaiADIAQCfwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCQ4dGAAVGgEaAxoaGhoaGhoaGhoaBBoaGhoaCQUCBwYaCwJAIAQoAggiBigCCCIJQQFGDQAgASgCDCIIRQ0AIAcgAS0AFDoAkAFBASEFIAcoAogBIQsCQAJAAkAgCUECTgRAAkADQCABIAdBiAFqIAMgBEECEDMiBkEASA0gQQEhCSAGQQFHDQEgASgCDCAIRw0BIAdBkAFqIAVqIAEtABQ6AAAgBUEBaiIFIAQoAggoAghIDQALQQAhCQsgBSAEKAIIIgYoAgxODQFBsn4hBgweC0EAIQkgBigCDEEBTA0BQbJ+IQYMHQsgBUEGSw0BCyAHQZABaiAFakEAIAVBB3MQqAEaCyAHQZABaiAGKAIAEQEAIgggBUoEQEGyfiEGDBsLAkAgBSAISgR/IAcgCzYCiAFBACEJQQEhBSAIQQJIDQEDQCABIAdBiAFqIAMgBEECEDMiBkEASA0dIAVBAWoiBSAIRw0ACyAIBSAFC0EBRg0AIAdBkAFqIBUgBCgCCCgCFBEAACEGQQEhCEECDBcLIActAJABIQYMFAsgAS0AFCEGQQAhCQwTCyABKAIUIQZBACEJQQEhCAwRCyAEKAIIIQZBACEJAkAgBygCiAEiBSADTw0AIAUgAyAGKAIUEQAAQd4ARw0AIAUgBigCABEBACAFaiEFQQEhCQtBACEQIAMgBSILSwRAA0AgEEEBaiEQIAsgBigCABEBACALaiILIANJDQALCwJAIBBBB0gNACAGIAUgA0GHEEEFEIYBRQRAQZCYESEIDA8LIAYgBSADQecQQQUQhgFFBEBBnJgRIQgMDwsgBiAFIANB2RFBBRCGAUUEQEGomBEhCAwPCyAGIAUgA0GgEkEFEIYBRQRAQbSYESEIDA8LIAYgBSADQa4SQQUQhgFFBEBBwJgRIQgMDwsgBiAFIANB4RJBBRCGAUUEQEHMmBEhCAwPCyAGIAUgA0GQE0EFEIYBRQRAQdiYESEIDA8LIAYgBSADQagTQQUQhgFFBEBB5JgRIQgMDwsgBiAFIANB0xNBBRCGAUUEQEHwmBEhCAwPCyAGIAUgA0GqFEEFEIYBRQRAQfyYESEIDA8LIAYgBSADQbAUQQUQhgFFBEBBiJkRIQgMDwsgBiAFIANB9xRBBhCGAUUEQEGUmREhCAwPCyAGIAUgA0GoFUEFEIYBRQRAQaCZESEIDA8LIAYgBSADQcgVQQQQhgENAEGsmREhCAwOC0EAIQkDQCADIAVNDQ8CQCAFIAMgBigCFBEAACIIQTpGDQAgCEHdAEYNECAFIAYoAgARAQAhCCAJQRRGDRAgBSAIaiIFIANPDRAgBSADIAYoAhQRAAAiCEE6Rg0AIAhB3QBGDRAgCUECaiEJIAUgBigCABEBACAFaiEFDAELCyAFIAYoAgARAQAgBWoiBSADTw0OIAUgAyAGKAIUEQAAIQkgBSAGKAIAEQEAGiAJQd0ARw0OQYd/IQYMFwsgCiABKAIUIAEoAhggBBAwIgUNFAwOCyAEKAIIIQkgBygCiAEiDSEFA0BBi38hBiADIAVNDRYgBSADIAkoAhQRAAAhCCAFIAkoAgARAQAgBWohCwJAAkAgCEH7AGsOAxgYAQALIAshBSAIQShrQQJPDQEMFwsLIAkgDSAFIAkoAiwRAgAiBkEASARAIAQgBTYCKCAEIA02AiQMFgsgByALNgKIASAKIAYgASgCGCAEEDAiBUUNDQwTCwJAAkACQAJAIAcoAkgOBAACAwEDCyABIAdBiAFqIAMgBEEBEDMiBUEASA0VQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQSAQEAAQsgBEG6DhA0DBELIAcoAkRBA0cNBUGQfyEGDBcLIAEoAhQhBiABIAdBiAFqIAMgBEEAEDMiBUEASA0UQQEhCUEAIQggFkUgBUEZR3END0HslxEoAgBBAUYNDyAEKAIMKAIIQYCAgAlxQYCAgAlHDQ8gBCgCICELIAQoAhwhDSAEKAIIIQ8gB0G6DjYCECAHQZABaiAPIA0gC0GlDyAHQRBqEIsBIAdBkAFqQeyXESgCABEEAAwPC0HslxEoAgBBAUYNECAEKAIMKAIIQYCAgAlxQYCAgAlHDRAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0G6DjYCICAHQZABaiAIIAkgBkGlDyAHQSBqEIsBIAdBkAFqQeyXESgCABEEAAwQCyABIAdBiAFqIAMgBEEAEDMiBUEASA0SQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQPAQEAAQsgBEG6DhA0DA4LIAQoAgwtAApBgAFxRQRAQZB/IQYMFQsgBEG6DhA0DA0LIAcoAkhFBEAgCiAHQYwBakEAIAdBzABqQQAgBygCRCAHQcQAaiAHQcgAaiAEEDUiBg0UCyAHQQI2AkggB0FAayABIAdBiAFqIAMgBBAuIQYgBygCQCEJIAYEQCAJRQ0UIAkQESAJEMwBDBQLIAlBEGohBiAJKAIMQQFxIQ0gCkEQaiIOIQUgCigCDEEBcSILBEAgByAKKAIQQX9zNgKQASAHIAooAhRBf3M2ApQBIAcgCigCGEF/czYCmAEgByAKKAIcQX9zNgKcASAHIAooAiBBf3M2AqABIAcgCigCJEF/czYCpAEgByAKKAIoQX9zNgKoASAHIAooAixBf3M2AqwBIAdBkAFqIQULIAYoAgAhCCANBEAgByAJKAIUQX9zNgKkAyAHIAkoAhhBf3M2AqgDIAcgCSgCHEF/czYCrAMgByAJKAIgQX9zNgKwAyAHIAkoAiRBf3M2ArQDIAcgCSgCKEF/czYCuAMgByAJKAIsQX9zNgK8AyAIQX9zIQggB0GgA2ohBgsgBCgCCCEPIAkoAjAhESAKKAIwIRMgBSAFKAIAIAhyIgg2AgAgBSAFKAIEIAYoAgRyNgIEIAUgBSgCCCAGKAIIcjYCCCAFIAUoAgwgBigCDHI2AgwgBSAFKAIQIAYoAhByNgIQIAUgBSgCFCAGKAIUcjYCFCAFIAUoAhggBigCGHI2AhggBSAFKAIcIAYoAhxyNgIcIAUgDkcEQCAKIAg2AhAgCiAFKAIENgIUIAogBSgCCDYCGCAKIAUoAgw2AhwgCiAFKAIQNgIgIAogBSgCFDYCJCAKIAUoAhg2AiggCiAFKAIcNgIsCyALBEAgCiAKKAIQQX9zNgIQIApBFGoiBSAFKAIAQX9zNgIAIApBGGoiBSAFKAIAQX9zNgIAIApBHGoiBSAFKAIAQX9zNgIAIApBIGoiBSAFKAIAQX9zNgIAIApBJGoiBSAFKAIAQX9zNgIAIApBKGoiBSAFKAIAQX9zNgIAIApBLGoiBSAFKAIAQX9zNgIAC0EAIQYgDygCCEEBRg0HAkACQAJAIAtFDQAgDUUNACAHQQA2AswDIBNFBEAgCkEANgIwDAsLIBFFDQEgEygCACIFKAIAIhRFDQEgBUEEaiEQIBEoAgAiBUEEaiEOIAUoAgAhD0EAIREDQAJAIA9FDQAgECARQQN0aiIFKAIAIQsgBSgCBCEIQQAhBQNAIA4gBUEDdGoiBigCACINIAhLDQEgCyAGKAIEIgZNBEAgB0HMA2ogCyANIAsgDUsbIAggBiAGIAhLGxAZIgYNDQsgBUEBaiIFIA9HDQALCyARQQFqIhEgFEcNAAsMBgsgDyATIAsgESANIAdBzANqEDYiBg0BIAtFDQEgDyAHKALMAyIFIAdBnANqEDciBgRAIAVFDQogBSgCACIIBEAgCBDMAQsgBRDMAQwKCyAFBEAgBSgCACIGBEAgBhDMAQsgBRDMAQsgByAHKAKcAzYCzAMMBQsgCkEANgIwDAULIAZFDQMMBwsgBygCSEUEQCAKIAdBjAFqQQAgB0HMAGpBACAHKAJEIAdBxABqIAdByABqIAQQNSIFDRELIAdBAzYCSAJ/IAxFBEAgCiEMIAdB0ABqDAELIAwgCiAEKAIIEDgiBQ0RIAooAjAiBQRAIAUoAgAiBgRAIAYQzAELIAUQzAELIAoLIgZCADcCDCAGQgA3AiwgBkIANwIkIAZCADcCHCAGQgA3AhRBASEWIAYhCkEDDA8LIAdBATYCSAwQCyAHKAJIRQRAIAogB0GMAWpBACAHQcwAakEAIAcoAkQgB0HEAGogB0HIAGogBBA1IgYNEQsCQCAMRQRAIAohDAwBCyAMIAogBCgCCBA4IgYNESAKKAIwIgAEQCAAKAIAIgEEQCABEMwBCyAAEMwBCwsgDCAMKAIMQX5xIBJBAXNyNgIMAkAgEg0AIAQoAgwtAApBEHFFDQACQCAMKAIwDQAgDCgCEA0AIAwoAhQNACAMKAIYDQAgDCgCHA0AIAwoAiANACAMKAIkDQAgDCgCKA0AIAwoAixFDQELQQpBACAEKAIIKAIwEQAARQ0AQQogBCgCCCgCGBEBAEEBRgRAIAwgDCgCEEGACHI2AhAMAQsgDEEwakEKQQoQGRoLIAIgBygCiAE2AgAgBCAEKAKcAUEBazYCnAFBACEGDBMLIAogBygCzAM2AjAgE0UNAQsgEygCACIFBEAgBRDMAQsgExDMAQtBACEGCyAJRQ0BCyAJEBEgCRDMAQsgBg0KQQIMBwtBACEUAkAgCC4BCCIOQQBMDQAgDkEBayEQIA5BA3EiCwRAA0AgDkEBayEOIAUgBigCABEBACAFaiEFIBRBAWoiFCALRw0ACwsgEEEDSQ0AA0AgBSAGKAIAEQEAIAVqIgUgBigCABEBACAFaiIFIAYoAgARAQAgBWoiBSAGKAIAEQEAIAVqIQUgDkEFayEUIA5BBGshDiAUQX5JDQALCyAGIAVBACADIAVPGyINIANB6RVBAhCGAQRAQYd/IQYMCgsgCiAIKAIEIAkgBBAwIgVFBEAgByANIAYoAgARAQAgDWoiBSAGKAIAEQEAIAVqNgKIAQwCCyAFQQBIDQcgBUEBRw0BCwJAQeyXESgCAEEBRg0AIAQoAgwoAghBgICACXFBgICACUcNACAEKAIgIQYgBCgCHCEJIAQoAgghCCAHQckNNgIAIAdBkAFqIAggCSAGQaUPIAcQiwEgB0GQAWpB7JcRKAIAEQQACyAHIAEoAhA2AogBIAEoAhQhBkEAIQhBACEJDAELQZJ/IQUCQAJAIAcoAkgOAgAHAQsCQAJAIAcoAkRBAWsOAgEAAgsgCkEwaiAHKAKMASIFIAUQGSIFQQBODQEMBwsgCiAHKAKMASIFQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgBXRyNgIACyAHQQM2AkQgB0EANgJIQQAMBAsgBiAEKAIIKAIYEQEAIgVBAEgEQCAHKAJIQQFHDQUgBkGAAkkNBSAEKAIMKAIIQYCAgCBxRQ0FIAQoAggoAghBAUYNBQtBAUECIAVBAUYbDAILQQEhCEEBDAELIAEoAhQgBCgCCCgCGBEBACIFQQBIDQIgASgCFCEGQQAhCEEAIQlBAUECIAVBAUYbCyEFIAogB0GMAWogBiAHQcwAaiAIIAUgB0HEAGogB0HIAGogBBA1IgUNASAJDQIgBygCSAsQMyIFQQBODQQLIAUhBgwBCyABKAIAIQkMAQsLCyAKIAAoAgBGDQAgCigCMCIERQ0AIAQoAgAiBQRAIAUQzAELIAQQzAELIAdB0ANqJAAgBguaBwELfyMAQSBrIgYkACADKAIEIQQgAygCACgCCCEHAkACQAJAAkACfwJAAkACQCACQQFGBEAgByAAIAQQVCEAIAQoAgxBAXEhBQJAIAAEQEEAIQAgBUUNAQwKC0EAIQAgBUUNCQsgBygCDEEBTARAIAEoAgAgBygCGBEBAEEBRg0CCyAEQTBqIAEoAgAiBCAEEBkaDAcLIAcgACAEEFRFDQYgBC0ADEEBcQ0GIAJBAEwEQAwDCwNAQQAhBAJAAkACQAJAIActAExBAnFFDQAgASAJQQJ0aiIKEJoBIgRBAEgNAEEBQTgQzwEiBUUNBiAFQQE2AgAgBEECdCIEQYCcEWooAgQiC0EASgRAIAVBMGohDCAEQYicEWohDUEAIQADQCANIABBAnRqKAIAIQQCQAJAIAcoAgxBAUwEQCAEIAcoAhgRAQBBAUYNAQsgDCAEIAQQGRoMAQsgBSAEQQN2Qfz///8BcWpBEGoiDiAOKAIAQQEgBHRyNgIACyAAQQFqIgAgC0cNAAsLIAcoAgxBAUwEQCAKKAIAIAcoAhgRAQBBAUYNAgsgBUEwaiAKKAIAIgQgBBAZGgwCCyABIAlBAnRqKAIAIAZBGWogBygCHBEAACEAAkAgCARAIAhBAnQgBmooAggiBSgCAEUNAQtBAUE4EM8BIgVFDQYgBSAFQRhqIgs2AhAgBSALNgIMIAUgBkEZaiAGQRlqIABqEBMEQCAFEBEgBRDMAQwHCyAFQRRBBCAEG2oiACAAKAIAQQJBgICAASAEG3I2AgAMAgsgBSAGQRlqIAZBGWogAGoQE0EASA0FDAILIAUgCigCACIEQQN2Qfz///8BcWpBEGoiACAAKAIAQQEgBHRyNgIACyAGQQxqIAhBAnRqIAU2AgAgCEEBaiEICyAJQQFqIgkgAkcNAAsgCEEBRw0CIAYoAgwMAwsgBCABKAIAIgBBA3ZB/P///wFxakEQaiIEIAQoAgBBASAAdHI2AgAMBQsgCEEATA0CQQAhBANAIAZBDGogBEECdGooAgAiAARAIAAQESAAEMwBCyAEQQFqIgQgCEcNAAsMAgtBByAIIAZBDGoQLQshAEEBQTgQzwEiBARAIARBADYCECAEIAA2AgwgBEEINgIACyADKAIMIAQ2AgAgAygCDCgCACIEDQEgAEUNACAAEBEgABDMAQtBeyEADAILIAMgBEEQajYCDAtBACEACyAGQSBqJAAgAAuYFAEKfyMAQRBrIgokACADKAIIIQUCQCABQQBIDQAgAUENTQRAQQEhByADLQACQQhxDQELQYCAJCEEQQAhBwJAAkACQCABQQRrDgkAAwMDAwEDAwIDC0GAgCghBAwBC0GAgDAhBAsgAygCACAEcUEARyEHCwJAAkACQAJAAkACQCABIApBCGogCkEMaiAFKAI0EQIAIgZBAmoOAwEFAAULIAooAgwiASgCACEIIAooAgghBSAHRQRAAkACQCACBEBBACEDAkAgCEEASgRAQQAhAgNAIAEgAkEDdGpBBGoiBigCACADSwRAIAMgBSADIAVLGyEHA0AgAyAHRg0EIAAgA0EDdkH8////AXFqQRBqIgQgBCgCAEEBIAN0cjYCACADQQFqIgMgBigCAEkNAAsLIAJBA3QgAWooAghBAWohAyACQQFqIgIgCEcNAAsLIAMgBU8NACADQQFqIQQgBSADa0EBcQRAIAAgA0EDdkH8////AXFqQRBqIgYgBigCAEEBIAN0cjYCACAEIQMLIAQgBUYNACAAQRBqIQQDQCAEIANBA3ZB/P///wFxaiIGIAYoAgBBASADdHI2AgAgBCADQQFqIgZBA3ZB/P///wFxaiIHIAcoAgBBASAGdHI2AgAgA0ECaiIDIAVHDQALCyAIQQBMDQIgAEEwaiEHQQAhAwwBC0EAIQZBACEHIAhBAEwNBQNAAkAgASAHQQN0aiIEQQRqIgsoAgAiAyAEQQhqIgIoAgAiBEsNACADIAUgAyAFSxshCSADIAVJBH8DQCAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgAyACKAIAIgRPDQIgA0EBaiIDIAlHDQALIAsoAgAFIAMLIAlPDQcgAEEwaiAJIAQQGSIGDQkgB0EBaiEHDAcLIAdBAWoiByAIRw0ACwwHCwNAIAEgA0EDdGooAgQiBCAFSwRAIAcgBSAEQQFrEBkiBg0ICyADQQN0IAFqKAIIQQFqIgVFDQYgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBQwECwJAAkAgAgRAQQAhAyAIQQBKBEBBACECA0AgASACQQN0aigCBCIGQf8ASw0DIAMgBkkEQCADIAUgAyAFSxshBwNAIAMgB0YNBiAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgA0EBaiIDIAZHDQALC0H/ACACQQN0IAFqKAIIIgMgA0H/AE8bQQFqIQMgAkEBaiICIAhHDQALCyADIAVPDQIgA0EBaiEEIAUgA2tBAXEEQCAAIANBA3ZB/P///wFxakEQaiIGIAYoAgBBASADdHI2AgAgBCEDCyAEIAVGDQIgAEEQaiEEA0AgBCADQQN2Qfz///8BcWoiBiAGKAIAQQEgA3RyNgIAIAQgA0EBaiIGQQN2Qfz///8BcWoiByAHKAIAQQEgBnRyNgIAIANBAmoiAyAFRw0ACwwCC0EAIQZBACEEIAhBAEwNAwNAIAEgBEEDdGoiB0EEaiIMKAIAIgMgB0EIaiIJKAIAIgJNBEAgAyAFIAMgBUsbIQtBgAEgAyADQYABTRshDQNAIAMgDUYNCCADIAtGBEAgCyAMKAIATQ0HIABBMGogC0H/ACACIAJB/wBPGxAZIgYNCiAEQQFqIQQMBwsgACADQQN2Qfz///8BcWpBEGoiByAHKAIAQQEgA3RyNgIAIAMgCSgCACICSSEHIANBAWohAyAHDQALCyAEQQFqIgQgCEcNAAsMBgsgAyAFTw0AIANBAWohBCAFIANrQQFxBEAgACADQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgA3RyNgIAIAQhAwsgBCAFRg0AIABBEGohBANAIAQgA0EDdkH8////AXFqIgYgBigCAEEBIAN0cjYCACAEIANBAWoiBkEDdkH8////AXFqIgcgBygCAEEBIAZ0cjYCACADQQJqIgMgBUcNAAsLAkAgCEEATA0AIABBMGohB0EAIQMDQCABIANBA3RqKAIEIgRB/wBLDQEgBCAFSwRAIAcgBSAEQQFrEBkiBg0HC0H/ACADQQN0IAFqKAIIIgUgBUH/AE8bQQFqIQUgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBAwDC0F1IQYgAUEOSw0DQf8AQYACIAcbIQQgBSgCCCEJAkACQEEBIAF0IgNB3t4BcUUEQCADQaAhcUUNBkEAIQMgAg0BIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgAyABIAUoAjARAABFDQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyADQQFqIgMgBEcNAAsgByAJQQFGcg0FIAUoAghBAUYNBSAAQTBqIAUoAgxBAkhBB3RBfxAZIgZFDQUMBgtBACEDIAJFBEAgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAEUNACAAIANBA3ZB/P///wFxakEQaiIIIAgoAgBBASADdHI2AgALIANBAWoiAyAERw0ACwwFCyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAMgASAFKAIwEQAADQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyAEIANBAWoiA0cNAAsMAQsgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAA0AIAAgA0EDdkH8////AXFqQRBqIgggCCgCAEEBIAN0cjYCAAsgA0EBaiIDIARHDQALIAdFDQNB/wEgBCAEQf8BTRshBEH/ACEDIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgACADQQN2Qfz///8BcWpBEGoiASABKAIAQQEgA3RyNgIACyADIARHIQEgA0EBaiEDIAENAAsgByAJQQFHcUUNAyAFKAIIQQFGDQMgAEEwaiAFKAIMQQJIQQd0QX8QGSIGDQQMAwsgBwRAQf8BIAQgBEH/AU0bIQRB/wAhAyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAAgA0EDdkH8////AXFqQRBqIgEgASgCAEEBIAN0cjYCAAsgAyAERyEBIANBAWohAyABDQALCyAJQQFGDQIgBSgCCEEBRg0CIABBMGogBSgCDEECSEEHdEF/EBkiBg0DDAILIAQgCE4NASAAQTBqIQADQCABIARBA3RqKAIEIgNB/wBLDQIgACADQf8AIARBA3QgAWooAggiBSAFQf8ATxsQGSIGDQMgCCAEQQFqIgRHDQALDAELIAcgCE4NACAAQTBqIQUDQCAFIAEgB0EDdGoiAygCBCADKAIIEBkiBg0CIAdBAWoiByAIRw0ACwtBACEGCyAKQRBqJAAgBgsSACAAQgA3AgwgABARIAAQzAELWwEBf0EBIQECQAJAAkACQCAAKAIAQQZrDgUDAAECAwILA0BBACEBIAAoAgwQMkUNAyAAKAIQIgANAAsMAgsDQCAAKAIMEDINAiAAKAIQIgANAAsLQQAhAQsgAQurFAEJfyMAQRBrIgYkACAGIAEoAgAiCzYCCCADKAIMIQwgAygCCCEHAkACQCAAKAIEBEAgACgCDCENIAshBQJAAkACQANAAkACQCACIAVNDQAgBSACIAcoAhQRAAAhCSAFIAcoAgARAQAgBWohCEECIQoCQCAJQSBrDg4CAQEBAQEBAQEBAQEBBQALIAlBCkYNASAJQf0ARg0DCyAGIAU2AgAgBiACIAcgBkEMaiANEB4iCg0EQQAhCiAGKAIAIQgMAwsgCCIFIAJJDQALQfB8IQoMBQtBASEKCyAGIAg2AgggCCELCwJAAkACQCAKDgMBAgAFCyAAQRk2AgAMAwsgAEEENgIAIAAgBigCDDYCFAwCCyAAQQA2AgQLIAIgC00EQEEAIQogAEEANgIADAILIAsgAiAHKAIUEQAAIQUgBiALIAcoAgARAQAgC2oiCDYCCCAAIAU2AhQgAEECNgIAIABCADcCCAJAIAVBLUcEQCAFQd0ARw0BIABBGDYCAAwCCyAAQRk2AgAMAQsCQCAMKAIQIAVGBEAgDC0ACkEgcUUNAkGYfyEKIAIgCE0NAyAIIAIgBygCFBEAACEFIAYgCCAHKAIAEQEAIAhqIgk2AgggACAFNgIUIABBATYCCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUEwaw5JDw8PDw8PDw8QEBAQEBAQEBAQEBADEBAQBxAQEBAQEBAIEBAFEA4QARAQEBAQEBAQEBAQEAIQEBAGEBAQEBAQCQgQEAQQDRAAChALIABCDDcCFCAAQQY2AgAMEgsgAEKMgICAEDcCFCAAQQY2AgAMEQsgAEIENwIUIABBBjYCAAwQCyAAQoSAgIAQNwIUIABBBjYCAAwPCyAAQgk3AhQgAEEGNgIADA4LIABCiYCAgBA3AhQgAEEGNgIADA0LIAwtAAZBCHFFDQwgAEILNwIUIABBBjYCAAwMCyAMLQAGQQhxRQ0LIABCi4CAgBA3AhQgAEEGNgIADAsLIAIgCU0NCiAJIAIgBygCFBEAAEH7AEcNCiAMLQAGQQFxRQ0KIAYgCSAHKAIAEQEAIAlqIgg2AgggACAFQdAARjYCGCAAQRI2AgAgAiAITQ0KIAwtAAZBAnFFDQogCCACIAcoAhQRAAAhBSAGIAggBygCABEBACAIajYCCCAFQd4ARgRAIAAgACgCGEU2AhgMCwsgBiAINgIIDAoLIAIgCU0NCSAJIAIgBygCFBEAAEH7AEcNCSAMKAIAQQBODQkgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQsgByAGQQxqECAiCkEASA0KQQghCCAGKAIIIgUgAk8NASAFIAIgBygCFBEAACILQf8ASw0BQax+IQogC0EEIAcoAjARAABFDQEMCgsgAiAJTQ0IIAkgAiAHKAIUEQAAIQggDCgCACEFIAhB+wBHDQEgBUGAgICABHFFDQEgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQBBCCAHIAZBDGoQISIKQQBIDQlBECEIIAYoAggiBSACTw0AIAUgAiAHKAIUEQAAIgtB/wBLDQBBrH4hCiALQQsgBygCMBEAAA0JCyAAIAg2AgwgCSAHKAIAEQEAIAlqIAVJBEBB8HwhCiACIAVNDQkCQCAFIAIgBygCFBEAAEH9AEYEQCAGIAUgBygCABEBACAFajYCCAwBCyAAKAIMIQwgBEEBRyEIQQAhCUEAIQ0jAEEQayILJAACQAJAAkAgAiIDIAVNDQADQCAFIAMgBygCFBEAACEEIAUgBygCABEBACAFaiECAkACQAJAAkACQAJAIARBIGsODgECAgICAgICAgICAgIEAAsgBEEKRg0AIARB/QBHDQEMBwsCQCACIANPDQADQCACIgUgAyAHKAIUEQAAIQQgBSAHKAIAEQEAIAVqIQIgBEEgRyAEQQpHcQ0BIAIgA0kNAAsLIARBCkYNBSAEQSBGDQUMAQsgCUUNACAMQRBGBEAgBEH/AEsNBUGsfiEFIARBCyAHKAIwEQAARQ0FDAcLIAxBCEcNBCAEQf8ASw0EIARBBCAHKAIwEQAARQ0EQax+IQUgBEE4Tw0EDAYLIARBLUcNAQsgCEEBRw0CQQAhCUECIQggAiIFIANJDQEMAgsgBEH9AEYNAiALIAU2AgwgC0EMaiADIAcgC0EIaiAMEB4iBQ0DIAhBAkchCEEBIQkgDUEBaiENIAsoAgwiBSADSQ0ACwtB8HwhBQwBC0HwfCANIAhBAkYbIQULIAtBEGokACAFQQBIBEAgBSEKDAsLIAVFDQogAEEBNgIECyAAQQQ2AgAgACAGKAIMNgIUDAgLIAYgCTYCCAwHCyAFQYCAgIACcUUNBiAGQQhqIAJBAEECIAcgBkEMahAhIgpBAEgNByAGLQAMIQUgBigCCCECIABBEDYCDCAAQQE2AgAgACAFQQAgAiAJRxs6ABQMBgsgAiAJTQ0FQQQhBSAMLQAFQcAAcUUNBQwECyACIAlNDQRBCCEFIAwtAAlBEHENAwwECyAMLQADQRBxRQ0DIAYgCDYCCCAGQQhqIAJBAyAHIAZBDGoQICIKQQBIDQRBuH4hCiAGKAIMIgVB/wFLDQQgBigCCCECIABBCDYCDCAAQQE2AgAgACAFQQAgAiAIRxs6ABQMAwsgBiAINgIIIAZBCGogAiADIAYQIyIKRQRAIAYoAgAgAygCCCgCGBEBACIFQR91IAVxIQoLIApBAEgNAyAGKAIAIgUgACgCFEYNAiAAQQQ2AgAgACAFNgIUDAILIAVBJkcEQCAFQdsARw0CAkAgDC0AA0EBcUUNACACIAhNDQAgCCACIAcoAhQRAABBOkcNACAGQrqAgIDQCzcDACAAIAg2AhAgBiAIIAcoAgARAQAgCGoiBTYCCAJ/QQAhBCACIAVLBH8DQAJAIAICfyAEBEBBACEEIAUgBygCABEBACAFagwBCyAFIAIgBygCFBEAACEEIAUgBygCABEBACAFaiELIAYoAgAgBEYEQAJAIAIgC00NACALIAIgBygCFBEAACAGKAIERw0AIAsgBygCABEBABpBAQwGC0EAIQQgBSAHKAIAEQEAIAVqDAELIAUgAiAHKAIUEQAAIgVB3QBGDQEgBSAMKAIQRiEEIAsLIgVLDQELC0EABUEACwsEQCAAQRo2AgAMBAsgBiAINgIICyAMLQAEQcAAcQRAIABBHDYCAAwDCyADQckNEDQMAgsgDC0ABEHAAHFFDQEgAiAITQ0BIAggAiAHKAIUEQAAQSZHDQEgBiAIIAcoAgARAQAgCGo2AgggAEEbNgIADAELIAZBCGogAiAFIAUgByAGQQxqECEiCkEASA0BIAYoAgwhBSAGKAIIIQIgAEEQNgIMIABBBDYCACAAIAVBACACIAlHGzYCFAsgASAGKAIINgIAIAAoAgAhCgsgBkEQaiQAIAoLgQEBA38jAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgACgCDCgCCEGAgIAJcUGAgIAJRw0AIAAoAiAhAyAAKAIcIQQgACgCCCEAIAIgATYCACACQRBqIAAgBCADQQAiAUGlD2ogAhCLASACQRBqIAFB7JcRaigCABEEAAsgAkGQAmokAAuoBAEEfwJAAkACQAJAAkAgBygCAA4EAAECAgMLAkACQCAGKAIAQQFrDgIAAQQLQfB8IQogASgCACIJQf8BSw0EIAAgCUEDdkH8////AXFqQRBqIgcgBygCAEEBIAl0cjYCAAwDCyAAQTBqIAEoAgAiCSAJEBkiCkEATg0CDAMLAkAgBSAGKAIARgRAIAEoAgAhCSAFQQFGBEBB8HwhCiACIAlyQf8BSw0FIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQMMBgsgAEEQaiEAA0AgACAJQQN2Qfz///8BcWoiCiAKKAIAQQEgCXRyNgIAIAIgCUwNAyAJQf8BSCEKIAlBAWohCSAKDQALDAILIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQIMBQsgAEEwaiAJIAIQGSIKQQBODQEMBAsgAiABKAIAIglJBEBBtX4hCiAIKAIMLQAKQcAAcQ0BDAQLAkAgCUH/ASACIAJB/wFPGyILSg0AIAlB/wFKDQAgAEEQaiEMA0ACQCAMIAlBA3ZB/P///wFxaiIKIAooAgBBASAJdHI2AgAgCSALTg0AIAlB/wFIIQogCUEBaiEJIAoNAQsLIAEoAgAhCQsgAiAJSQRAQbV+IQogCCgCDC0ACkHAAHENAQwECyAAQTBqIAkgAhAZIgpBAEgNAwsgB0ECNgIADAELIAdBADYCAAsgAyAENgIAIAEgAjYCACAGIAU2AgBBACEKCyAKC+wDAQJ/IAVBADYCAAJAAkAgASADckUEQCACIARyRQ0BIAUgACgCDEECSEEHdEF/EBkPCyADQQAgARtFBEAgAiAEIAMbBEAgBSAAKAIMQQJIQQd0QX8QGQ8LIAMgASADGyEBIAQgAiADG0UEQCAFQQwQywEiAzYCAEF7IQYgA0UNAkEAIQYgASgCCCICQQBMBEAgA0EANgIAQQAhAgwECyADIAIQywEiBjYCACAGDQMgAxDMASAFQQA2AgBBew8LIAAgASAFEDcPCwJAAkACQCACRQRAIAEoAgAiBkEEaiEHIAYoAgAhAiAEBEAgAyEBDAILIAVBDBDLASIBNgIAQXshBiABRQ0EQQAhBiADKAIIIgRBAEwEQCABQQA2AgBBACEEDAMLIAEgBBDLASIGNgIAIAYNAiABEMwBIAVBADYCAEF7DwsgAygCACIDQQRqIQcgAygCACECIAQNAgsgACABIAUQNyIGDQIMAQsgASAENgIIIAEgAygCBCIENgIEIAYgAygCACAEEKYBGgsgAkUEQEEADwtBACEDA0AgBSAHIANBA3RqIgYoAgAgBigCBBAZIgYNASADQQFqIgMgAkcNAAtBAA8LIAYPCyADIAI2AgggAyABKAIEIgU2AgQgBiABKAIAIAUQpgEaQQAL9QEBBH8gAkEANgIAAkAgAUUNACABKAIAIgEoAgAiBUEATA0AIAFBBGohBiAAKAIMQQJIQQd0IQRBACEBAkADQCAGIAFBA3RqIgMoAgQhAAJAIAQgAygCAEEBayIDSw0AIAIgBCADEBkiA0UNACACKAIAIgFFDQIgASgCACIABEAgABDMAQsgARDMASADDwtBACEDIABBf0YNASAAQQFqIQQgAUEBaiIBIAVHDQALIAIgAEEBakF/EBkiAUUNACACKAIAIgAEQCAAKAIAIgQEQCAEEMwBCyAAEMwBCyABIQMLIAMPCyACIAAoAgxBAkhBB3RBfxAZC6sMAQ1/IwBB4ABrIgUkACABQRBqIQQgASgCDEEBcSEHIABBEGoiCSEDIAAoAgxBAXEiCwRAIAUgACgCEEF/czYCMCAFIAAoAhRBf3M2AjQgBSAAKAIYQX9zNgI4IAUgACgCHEF/czYCPCAFIAAoAiBBf3M2AkAgBSAAKAIkQX9zNgJEIAUgACgCKEF/czYCSCAFIAAoAixBf3M2AkwgBUEwaiEDCyAEKAIAIQYgBwRAIAUgBkF/cyIGNgIQIAUgASgCFEF/czYCFCAFIAEoAhhBf3M2AhggBSABKAIcQX9zNgIcIAUgASgCIEF/czYCICAFIAEoAiRBf3M2AiQgBSABKAIoQX9zNgIoIAUgASgCLEF/czYCLCAFQRBqIQQLIAEoAjAhASAAKAIwIQggAyADKAIAIAZxIgY2AgAgAyADKAIEIAQoAgRxNgIEIAMgAygCCCAEKAIIcTYCCCADIAMoAgwgBCgCDHE2AgwgAyADKAIQIAQoAhBxNgIQIAMgAygCFCAEKAIUcTYCFCADIAMoAhggBCgCGHE2AhggAyADKAIcIAQoAhxxNgIcIAMgCUcEQCAAIAY2AhAgACADKAIENgIUIAAgAygCCDYCGCAAIAMoAgw2AhwgACADKAIQNgIgIAAgAygCFDYCJCAAIAMoAhg2AiggACADKAIcNgIsCyALBEAgACAAKAIQQX9zNgIQIABBFGoiAyADKAIAQX9zNgIAIABBGGoiAyADKAIAQX9zNgIAIABBHGoiAyADKAIAQX9zNgIAIABBIGoiAyADKAIAQX9zNgIAIABBJGoiAyADKAIAQX9zNgIAIABBKGoiAyADKAIAQX9zNgIAIABBLGoiAyADKAIAQX9zNgIACwJAAkAgAigCCEEBRg0AAkACQAJAAkACQAJAAkACQCALQQAgBxtFBEAgBUEANgJcIAhFBEAgC0UNBCABRQ0EIAVBDBDLASIENgJcQXshAyAERQ0LQQAhBiABKAIIIgdBAEwEQCAEQQA2AgBBACEHDAYLIAQgBxDLASIGNgIAIAYNBSAEEMwBDAsLIAFFBEAgB0UNBCAFQQwQywEiBDYCXEF7IQMgBEUNC0EAIQEgCCgCCCIGQQBMBEAgBEEANgIAQQAhBgwECyAEIAYQywEiATYCACABDQMgBBDMAQwLCyABKAIAIgNBBGohDCADKAIAIQoCfyALBEAgBw0HIAgoAgAiA0EEaiEJIAohDSAMIQ4gAygCAAwBCyAIKAIAIgNBBGohDiADKAIAIQ0gB0UNAiAMIQkgCgshDyANRQ0DQQAhCiAPQQBMIQwDQCAOIApBA3RqIgQoAgAhAyAEKAIEIQdBACEEAkAgDA0AA0AgCSAEQQN0aiIGKAIEIQECQAJAAkAgAyAGKAIAIgZLBEAgASADTw0BDAMLIAYgB0sEQCAGIQMMAgsgBkEBayEGIAEgB08EQCAGIQcMAgsgAyAGSw0AIAVB3ABqIAMgBhAZIgMNEAsgAUEBaiEDCyADIAdLDQILIARBAWoiBCAPRw0ACwsgAyAHTQRAIAVB3ABqIAMgBxAZIgMNDAsgCkEBaiIKIA1HDQALDAMLIAIgCEEAIAFBACAFQdwAahA2IgMNCQwFCyANRQRAIABBADYCMAwGC0EAIQkDQAJAIApFDQAgDiAJQQN0aiIDKAIAIQYgAygCBCEBQQAhBANAIAwgBEEDdGoiAygCACIHIAFLDQEgBiADKAIEIgNNBEAgBUHcAGogBiAHIAYgB0sbIAEgAyABIANJGxAZIgMNDAsgBEEBaiIEIApHDQALCyAJQQFqIgkgDUcNAAsMAQsgBCAGNgIIIAQgCCgCBCIDNgIEIAEgCCgCACADEKYBGgsgC0UNAgwBCyAEIAc2AgggBCABKAIEIgM2AgQgBiABKAIAIAMQpgEaCyACIAUoAlwiBCAFQQxqEDciAwRAIARFDQUgBCgCACIABEAgABDMAQsgBBDMAQwFCyAEBEAgBCgCACIDBEAgAxDMAQsgBBDMAQsgBSAFKAIMNgJcCyAAIAUoAlw2AjAgCEUNAiAIKAIAIgNFDQELIAMQzAELIAgQzAELQQAhAwsgBUHgAGokACADC5kFAQR/IwBBEGsiCSQAIAlCADcDACAJQgA3AwggCSACNgIEIAggCCgCjAEiC0EBajYCjAEgCUEBQTgQzwEiCjYCAAJAAkAgCkUEQEEAIQggAyELDAELIAogCzYCGCAKQQo2AgAgCkKBgICAEDcCDCAJQQFBOBDPASIINgIIAkAgCEUEQEEAIQggAyELDAELIAggCzYCGCAIQQo2AgAgCEKCgICAMDcCDCAHBEAgCEGAgIAINgIECyAJQQFBOBDPASILNgIMIAtFBEBBACELDAELIAtBCjYCAEEHQQQgCRAtIgxFDQAgCSADNgIEIAkgDDYCACAJQgA3AwhBACELQQhBAiAJEC0iCkUEQEEAIQggAyECIAwhCgwBC0EBQTgQzwEiDEUEQEEAIQggAyECDAELIAxBATYCGCAMIAU2AhQgDCAENgIQIAxBBDYCACAMIAo2AgwgCSAMNgIAAkAgBkUEQCAMIQoMAQtBAUE4EM8BIgpFBEBBACEIIAMhAiAMIQoMAgsgCkEANgI0IApBAjYCECAKQQU2AgAgCiAMNgIMIAkgCjYCAAsgCUEBQTgQzwEiAzYCBCADRQRAQQAhCEEAIQIMAQsgAyABNgIYIANBCjYCACADQoKAgIAgNwIMIAlBAUE4EM8BIgg2AgggCEUEQEEAIQggAyECDAELIAhBCjYCAEEHQQIgCUEEchAtIgJFBEAgAyECDAELIAlBADYCCCAJIAI2AgRBACEIQQhBAiAJEC0iA0UNACAHBEAgAyADKAIEQYCAIHI2AgQLIAAgAzYCAAwCCyAKEBEgChDMAQsgAgRAIAIQESACEMwBCyAIBEAgCBARIAgQzAELQXshCCALRQ0AIAsQESALEMwBCyAJQRBqJAAgCAvEAQEFf0F7IQUCQCAAKAIsED0iAEUNAAJAIAAoAhQiAkUEQEGUAhDLASICRQ0CIABBAzYCECAAIAI2AhRBASEEDAELIAAoAgwiA0EBaiEEIAMgACgCECIGSA0AIAIgBkG4AWwQzQEiAkUNASAAIAI2AhQgACAGQQF0NgIQCyACIANB3ABsaiICQgA3AhBBACEFIAJBADYCCCACQgA3AgAgAkIANwIYIAJCADcCICACQQA2AiggACAENgIMIAEgBDYCAAsgBQu8AgEEfyMAQRBrIgYkAEF7IQgCQCABED0iBUUNACAFKAIIRQRAQfyXERCMASIHRQ0BIAUgBzYCCAsgARA9IgVFDQACQCADIAJrQQBMBEBBmX4hBwwBCyAFKAIIIQUgBkF/NgIEAkAgBUUNACAGIAM2AgwgBiACNgIIIAUgBkEIaiAGQQRqEI8BGiAGKAIEQQBIDQAgACADNgIoIAAgAjYCJEGlfiEHDAELAkBBCBDLASIARQRAQXshBQwBCyAAIAM2AgQgACACNgIAQQAhByAFIAAgBBCQASIFRQ0BIAAQzAEgBUEATg0BCyAFIQcLIARBAEwNACABKAKEAyIBRQ0AIAEoAgwgBEgNACABKAIUIgFFDQAgBEHcAGwgAWpB3ABrIgEgAzYCFCABIAI2AhAgByEICyAGQRBqJAAgCAuqAgEFfyMAQSBrIgUkAEGcfiEHAkAgAiADTw0AIAIhBgNAIAYgAyAAKAIUEQAAIglBX3FBwQBrQRpPBEAgCUEwa0EKSSIIIAIgBkZxDQIgCUHfAEYgCHJFDQILIAYgACgCABEBACAGaiIGIANJDQALIAVBADYCDEHkvxIoAgAiBkUEQEGbfiEHDAELIAUgAzYCHCAFIAI2AhggBSABNgIUIAUgADYCECAGIAVBEGogBUEMahCPASEIAkAgAEGUvRJGDQAgCA0AIAAtAExBAXFFDQAgBSADNgIcIAUgAjYCGCAFIAE2AhQgBUGUvRI2AhAgBiAFQRBqIAVBDGoQjwEaCyAFKAIMIgZFBEBBm34hBwwBCyAEIAYoAgg2AgBBACEHCyAFQSBqJAAgBws9AQF/IAAoAoQDIgFFBEBBGBDLASIBRQRAQQAPCyABQgA3AgAgAUIANwIQIAFCADcCCCAAIAE2AoQDCyABC2UBAX8gACgChAMiA0UEQEEYEMsBIgNFBEBBew8LIANCADcCACADQgA3AhAgA0IANwIIIAAgAzYChAMLIAAoAkQgASACEHYiAEUEQEF7DwsgAyAANgIAIAMgACACIAFrajYCBEEAC6YFAQh/IAAEQCAAKAIAIgIEQCAAKAIMIgNBAEoEf0EAIQIDQCAAKAIAIQECQAJAAn8CQAJAAkACQAJAAkAgACgCBCACQQJ0aigCAEEHaw4sAQgICAEBAAIDBAIDBAgICAgICAgICAgICAgICAgICAgICAgICAgFBQUFBQUICyABIAJBFGxqKAIEIgEgACgCFEkNBiAAKAIYIAFNDQYMBwsgASACQRRsaigCBCIBIAAoAhRJDQUgACgCGCABTQ0FDAYLIAEgAkEUbGpBBGoMAwsgASACQRRsakEEagwCCyABIAJBFGxqIgEoAgQQzAEgAUEIagwBCyABIAJBFGxqIgEoAghBAUYNAiABQQRqCygCACEBCyABEMwBIAAoAgwhAwsgAkEBaiICIANIDQALIAAoAgAFIAILEMwBIAAoAgQQzAEgAEEANgIQIABCADcCCCAAQgA3AgALIAAoAhQiAgRAIAIQzAEgAEIANwIUCyAAKAJwIgIEQCACEMwBCyAAKAJAIgIEQCACEMwBCyAAKAKEAyICBEAgAigCACIBBEAgARDMAQsgAigCCCIBBEAgAUEEQQAQkQEgARCOAQsgAigCFCIBBEAgAigCDCEGIAEEQCAGQQBKBEADQCABIAVB3ABsaiIDQSRqIQQCQCADKAIEQQFGBEBBACEDIAQoAgQiB0EATA0BA0ACQCAEIANBAnRqKAIIQQRHDQAgBCADQQN0aigCGCIIRQ0AIAgQzAEgBCgCBCEHCyADQQFqIgMgB0gNAAsMAQsgBCgCACIDRQ0AIAMQzAELIAVBAWoiBSAGRw0ACwsgARDMAQsLIAIQzAEgAEEANgKEAwsCQCAAKAJUIgFFDQAgAUECQQAQkQEgACgCVCIBRQ0AIAEQjgELIABBADYCVAsLoBgBC38jAEHQA2siBSQAIAIoAgghByABQQA6AFggAUIANwJQIAFCADcCSCABQgA3AkAgAUIANwJwIAFCADcCeCABQgA3AoABIAFBADoAiAEgAUGgAWpBAEGUAhCoASEGIAFBADoAKCABQgA3AiAgAUIANwIYIAFBEGoiA0IANwIAIAFCADcCCCABQgA3AgAgAyACKAIANgIAIAEgAigCBDYCFCABIAIoAgA2AnAgASACKAIENgJ0IAEgAigCADYCoAEgASACKAIENgKkAQJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAIgMoAgAOCwIKCQcFBAgAAQYLAwsgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwADQCAAKAIMIAVBGGogBRBAIgQNCyAFQX9Bf0F/IAUoAhgiAyAFKAIAIgJqIANBf0YbIAJBf0YbIAIgA0F/c0sbNgIAIAVBf0F/QX8gBSgCHCIDIAUoAgQiAmogA0F/RhsgAkF/RhsgAiADQX9zSxs2AgQgByABIAVBGGoQYiAAKAIQIgANAAsMCgsDQCADKAIMIAVBGGogAhBAIgQNCgJAIAAgA0YEQCABIAVBGGpBtAMQpgEaDAELIAEgBUEYaiACEGMLIAMoAhAiAw0AC0EAIQQMCQsgACgCECIGIAAoAgwiA2shCgJAIAMgBkkEQANAIAMgBygCABEBACIIIARqQRlOBEAgASAENgIkDAMLAkAgAyAGTw0AQQAhAiAIQQBMDQADQCABIARqIAMtAAA6ACggBEEBaiEEIANBAWohAyACQQFqIgIgCE4NASADIAZJDQALCyADIAZJIARBF0xxDQALIAEgBDYCJCADIAZJDQELIAFBATYCIAsCQCAKQQBMDQAgASAAKAIMLQAAIgNqQbQBaiIELQAADQAgBEEBOgAAAn9BBCADQRh0QRh1IgRBAEgNABogBEUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyEEIAFBsAFqIgMgAygCACAEajYCAAsgASAKNgIEIAEgCjYCAEEAIQQMCAtBeiEEDAcLAkACQAJAIAAoAhAOBAEAAAIJCyAAKAIMIAEgAhBAIQQMCAsgACAAKAI0IgNBAWo2AjQgA0EFTgRAQQAhAyAAKAIEIgJBAXEEQCAAKAIkIQMLQX8hBCABIAJBAnEEfyAAKAIoBSAECzYCBCABIAM2AgBBACEEDAgLIAAoAgwgASACEEAhBCABKAIIIgZBgIADcUUEQCABLQANQcABcUUNCAsgAigCECgCGCEDAkAgACgCFCICQQFrQR5NBEAgAyACdkEBcQ0BDAkLIANBAXFFDQgLIAEgBkH//3xxNgIIDAcLIAAoAhhFDQYgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwAgACgCDCAFQRhqIAUQQCIEDQYgBUF/QX9BfyAFKAIYIgMgBSgCACIEaiADQX9GGyAEQX9GGyAEIANBf3NLGzYCACAFQX9Bf0F/IAUoAhwiAyAFKAIEIgRqIANBf0YbIARBf0YbIAQgA0F/c0sbNgIEIAcgASAFQRhqEGICQCAAKAIUIgNFDQAgAyAFQRhqIAUQQA0AIAcgASAFQRhqEGILIAAoAhggBUEYaiACEEAiBA0GIAEgBUEYaiACEGNBACEEDAYLIAAoAhRFBEAgAUIANwIADAYLIAAoAgwgBUEYaiACEEAiBA0FAkAgACgCECIDQQBMBEAgACgCFCEGDAELIAEgBUEYakG0AxCmASEJAkACQCAFKAI8QQBMDQAgBSgCOCIIRQ0AQQIhBgJAIAAoAhAiA0ECSA0AQQIhCyAJKAIkIgRBF0oEQAwBCyAFQUBrIQwDQCAMIAUoAjwiBmohCiAMIQNBACENIAZBAEoEQANAIAMgBygCABEBACIIIARqQRhKIg1FBEACQCAIQQBMDQBBACEGIAMgCk8NAANAIAQgCWogAy0AADoAKCAEQQFqIQQgA0EBaiEDIAZBAWoiBiAITg0BIAMgCkkNAAsLIAMgCkkNAQsLIAUoAjghCAsgCSAENgIkIAkgCEEAIAMgCkYbIgM2AiAgCSAJNQIYIAUoAjQgCSgCHEECcXJBACADG61CIIaENwIYIA0EQCAAKAIQIQMgCyEGDAILIAtBAWohBiALIAAoAhAiA04NASAGIQsgBEEYSA0ACwsgAyAGTA0BIAlBADYCIAwBCyAAKAIQIQMLIAAoAhQiBiADRwRAIAlBADYCUCAJQQA2AiALIANBAkgNACAJQQA2AlALAkACQAJAIAZBAWoOAgACAQsCQCACKAIEDQAgACgCDCIDKAIAQQJHDQAgAygCDEF/Rw0AIAAoAhhFDQAgASABKAIIQYCAAkGAgAEgAygCBEGAgIACcRtyNgIIC0F/QQAgBSgCHBshBiAAKAIQIQMMAQtBfyAFKAIcIgQgBmxBfyAGbiAETRshBgtBACEEQQAhAiADBEBBfyAFKAIYIgIgA2xBfyADbiACTRshAgsgASAGNgIEIAEgAjYCAAwFCyAALQAEQcAAcQRAIAFCgICAgHA3AgAMBQsgACgCDCABIAIQQCEEDAQLIAAtAAZBAnEEQAwECyAAIAIoAhAQXyEDIAEgACACKAIQEGQ2AgQgASADNgIADAMLAkACfwJAAkAgACgCECIDQT9MBEAgA0EBayIIQR9LBEAMCAtBASAIdEGKgIKAeHENASAIDQcgACgCDCAFQRhqIAIQQCIEDQcgBSgCPEEATA0CIAVBKGoMAwsgA0H/AUwEQCADQcAARg0BIANBgAFGDQEMBwsgA0GABEYNACADQYACRg0ADAYLIAFBCGohBAJAAkAgA0H/AUwEQCADQQJGDQEgA0GAAUYNAQwCCyADQYAERg0AIANBgAJHDQELIAFBDGohBAsgBCADNgIAQQAhBAwFCyAFKAJsQQBMDQEgBUHYAGoLIQMgAUHwAGoiBCADKQIANwIAIAQgAykCKDcCKCAEIAMpAiA3AiAgBCADKQIYNwIYIAQgAykCEDcCECAEIAMpAgg3AggLQQAhBCABQQA2AoABIAUoAsgBQQBMDQIgBiAFQbgBakGUAhCmARoMAgtBASEEAkACQCAHKAIIIghBAUYEQCAAKAIMQQxHDQJBgAFBgAIgACgCFCIKGyECQQAhAyAAKAIQDQEDQAJAIANBDCAHKAIwEQAARQ0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELQQEhBCADQQFqIgMgAkcNAAsMAgsgBygCDCEEDAELA0ACQCADQQwgBygCMBEAAA0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELIANBAWoiAyACRw0ACyAKRQRAQQEhBAwBC0H/ASACIAJB/wFNGyEGQYABIQMDQCABIANB/wFxIgRqQbQBaiICLQAARQRAIAJBAToAACABAn9BBCADQRh0QRh1QQBIDQAaIARFBEBBFCAHKAIMQQFKDQEaCyAEQQF0QYAbai4BAAsgASgCsAFqNgKwAQtBASEEIAMgBkYhAiADQQFqIQMgAkUNAAsLIAEgCDYCBCABIAQ2AgBBACEEDAELAkACQCAAKAIwDQAgAC0ADEEBcQ0AQQAhAiAALQAQQQFxRQ0BIAFBAToAtAEgAUEUQQUgBygCDEEBShsiAjYCsAEMAQsgASAHKQIIQiCJNwIADAELQQEhAwNAIAAoAgxBAXEhBAJAAkAgACADQQN2Qfz///8BcWooAhAgA3ZBAXEEQCAERQ0BDAILIARFDQELIAEgA2pBtAFqIgQtAAANACAEQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiADQf8BcUUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyACaiICNgKwAQsgA0EBaiIDQYACRw0ACyABQoGAgIAQNwIAQQAhBAsgBUHQA2okACAEC6wDAQZ/AkAgAigCFCIERQ0AAkAgASgCFCIDRQ0AAkAgA0ECSg0AIARBAkoNAEEEIQYCf0EEIAEtABgiB0EYdEEYdSIIQQBIDQAaIAhFBEBBFCAAKAIMQQFKDQEaCyAHQQF0QYAbai4BAAshBQJAIAItABgiB0EYdEEYdSIIQQBIDQAgCEUEQEEUIQYgACgCDEEBSg0BCyAHQQF0QYAbai4BACEGCyAFQQVqIAUgBEEBShshBCAGQQVqIAYgA0EBShshAwsgBEEATA0BIANBAEwNACADQQF0IQZBACEDAn9BACABKAIEIgVBf0YNABpBASAFIAEoAgBrIgVB4wBLDQAaIAVBAXRBsBlqLgEACyEAIARBAXQhBSAAIAZsIQQCQCACKAIEIgBBf0YNAEEBIQMgACACKAIAayIAQeMASw0AIABBAXRBsBlqLgEAIQMLIAMgBWwiAyAESg0AIAMgBEgNASACKAIAIAEoAgBPDQELIAEgAikCADcCACABIAIpAig3AiggASACKQIgNwIgIAEgAikCGDcCGCABIAIpAhA3AhAgASACKQIINwIICwv/fQEOfyABQQRqIQsgAUEQaiEHIAFBDGohBSABQQhqIQ0CQAJAA0ACQEEAIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAiAygCAA4LAgMEBQcICQABBgoTCwNAIAAoAgwgASACEEIiBA0TIAAoAhAiAA0ACwwTCwNAIAMoAgwgARBPIAZqIgRBAmohBiADKAIQIgMNAAsgBSgCACAEaiEKA0AgACgCDCABEE8hAyAAKAIQBEAgAC0ABiEIAkAgBSgCACIEIAcoAgAiBkkNACAGRQ0AIAZBAXQiCUEATARAQXUPC0F7IQQgASgCACAGQShsEM0BIgxFDRQgASAMNgIAIAEoAgQgBkEDdBDNASIGRQ0UIAsgBjYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE8QTsgCEEIcRs2AgAgASgCCCADQQJqNgIECyAAKAIMIAEgAhBCIgQNEiAAKAIQRQRAQQAPCyAFKAIAIgYhBAJAIAYgBygCACIDSQ0AIAYhBCADRQ0AIANBAXQiCEEATARAQXUPC0F7IQQgASgCACADQShsEM0BIglFDRMgASAJNgIAIAEoAgQgA0EDdBDNASIDRQ0TIAsgAzYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIIAogBms2AgQgACgCECIADQALDBELIAAtABRBAXEEQCAAKAIQIgMgACgCDCIATQ0RIABBASADIABrIAEQUA8LIAAoAhAiBiAAKAIMIgJNDRBBASEHIAYgAiACIAEoAkQiCCgCABEBACIFaiIASwRAA0ACQCAFIAAgCCgCABEBACIDRgRAIAdBAWohBwwBCyACIAUgByABEFAhBCAAIQJBASEHIAMhBSAEDRMLIAAgA2oiACAGSQ0ACwsgAiAFIAcgARBQDwsgACgCMEUEQCAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRFBDiACQQFxGzYCAEEgEMsBIQQgASgCCCAENgIEIAEoAggoAgQiAUUEQEF7DwsgASAAKQIQNwIAIAEgACkCKDcCGCABIAApAiA3AhAgASAAKQIYNwIIQQAPCwJAIAEoAkQoAgxBAUwEQCAAKAIQDQEgACgCFA0BIAAoAhgNASAAKAIcDQEgACgCIA0BIAAoAiQNASAAKAIoDQEgACgCLA0BCyAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRJBDyACQQFxGzYCACAAKAIwIgEoAgQiABDLASIERQRAQXsPCyAEIAEoAgAgABCmASEBIA0oAgAgATYCBEEADwsgAC0ADCECAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIghFDRAgASAINgIAIAEoAgQgA0EDdBDNASIDRQ0QIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akETQRAgAkEBcRs2AgBBIBDLASEEIAEoAgggBDYCCEF7IQQgASgCCCgCCCIBRQ0PIAEgAEEQaiIDKQIANwIAIAEgAykCGDcCGCABIAMpAhA3AhAgASADKQIINwIIIAAoAjAiASgCBCIAEMsBIgNFDQ8gAyABKAIAIAAQpgEhASANKAIAIAE2AgRBAA8LQXohBAJAAkAgACgCDEEBag4OABAQEBAQEBAQEBAQEAEQCyAALQAGIQICQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiBkUNECABIAY2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRVBFCACQcAAcRs2AgBBAA8LIAAoAhAhAyAAKAIUIQYCQCAFKAIAIgAgBygCACICSQ0AIAJFDQAgAkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAJBKGwQzQEiCEUNDyABIAg2AgAgASgCBCACQQN0EM0BIgJFDQ8gCyACNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQR1BGyADG0EcQRogAxsgBhs2AgBBAA8LIAAoAgQiBEGAwABxIQMCQCAEQYCACHEEQCAHKAIAIQIgBSgCACEEIAMEQAJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDREgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0RIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akEyNgIAIAEoAgggACgCLDYCDAwCCwJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDRAgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0QIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akExNgIADAELIAMEQCABQTBBLyAEQYCAgAFxGxBRIgQNDyANKAIAIAAoAiw2AgwMAQsgACgCDEEBRgRAIAAoAhAhACAEQYCAgAFxBEAgAUEsEFEiBA0QIA0oAgAgADYCBEEADwsCQAJAAkAgAEEBaw4CAAECCyABQSkQUQ8LIAFBKhBRDwsgAUErEFEiBA0PIA0oAgAgADYCBEEADwsgAUEuQS0gBEGAgIABcRsQUSIEDQ4LIA0oAgAgACgCDCIDNgIIIANBAUYEQCANKAIAIAAoAhA2AgRBAA8LIANBAnQQywEiBUUEQEF7DwsgDSgCACAFNgIEQQAhBCADQQBMDQ0gACgCKCIBIABBEGogARshBCADQQNxIQYCQCADQQFrQQNJBEBBACEBDAELIANBfHEhCEEAIQFBACECA0AgBSABQQJ0IgBqIANBAnQgBGoiB0EEaygCADYCACAFIABBBHJqIAdBCGsoAgA2AgAgBSAAQQhyaiAHQQxrKAIANgIAIAUgAEEMcmogBCADQQRrIgNBAnRqKAIANgIAIAFBBGohASACQQRqIgIgCEcNAAsLIAZFDQ5BACEAA0AgBSABQQJ0aiAEIANBAWsiA0ECdGooAgA2AgAgAUEBaiEBIABBAWoiACAGRw0ACwwOCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0NIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDSALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgASgCCEEANgIEIAEoAgAhAyABKAIIIQUgACgCDCEHIAIoApgBIgEoAgghACABKAIAIgQgASgCBCICTgRAIAAgAkEEdBDNASIARQRAQXsPCyABIAA2AgggASACQQF0NgIEIAEoAgAhBAsgACAEQQN0aiIAIAc2AgQgACAFIANrQQRqNgIAIAEgBEEBajYCAEEADwsgACgCHCEMIAAoAhQhBCAAKAIMIAEQTyIDQQBIBEAgAw8LIANFDQwgAEEMaiEIAkACQAJAAkACQAJAAkACQAJAIAAoAhgiCkUNACAAKAIUQX9HDQAgCCgCACIJKAIAQQJHDQAgCSgCDEF/Rw0AIAAoAhAiDkECSA0BQX8gDm4hDyADIA5sQQpLDQAgAyAPSQ0CCyAEQX9HDQUgACgCECIJQQJIDQNBfyAJbiEEIAMgCWxBCksNBiADIARPDQYgA0ECaiADIAwbIQYgAEEYaiEHDAQLIA5BAUcNAQtBACEDA0AgCSABIAIQQiIEDRIgA0EBaiIDIA5HDQALIAgoAgAhCQsgCSgCBEGAgIACcSEEIAAoAiQEQCABQRlBGCAEGxBRIgQNESANKAIAIAAoAiQoAgwtAAA6AARBAA8LIAFBF0EWIAQbEFEPCyADQQJqIAMgDBshBiAAQRhqIQcCQCAJQQFHDQAgA0ELSQ0AIAFBOhBRIgQNECANKAIAQQI2AgQMDgsgCUEATA0NCyAIKAIAIQVBACEDA0AgBSABIAIQQiIEDQ8gCSADQQFqIgNHDQALDAwLIAAoAhQiCUUNCiAKRQ0BIAlBAUcEQEF/IAluIQRBwQAhCiAJIANBAWoiBmxBCksNCiAEIAZNDQoLQQAhBiAAKAIQIgpBAEoEQCAAKAIMIQADQCAAIAEgAhBCIgQNDyAGQQFqIgYgCkcNAAsLIAkgCmsiDEEATARAQQAPCyADQQFqIQlBACEDA0BBACEGIAkEQEG3fiEEIAwgA2siAEH/////ByAJbU4NDyAAIAlsIgZBAEgNDwsCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiDkUNDyABIA42AgAgASgCBCAKQQN0EM0BIgpFDQ8gCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAGNgIEIAgoAgAgASACEEIiBA0OQQAhBCAMIANBAWoiA0cNAAsMDQsgACgCFCIJRQ0JIApFDQBBwQAhCgwIC0HCACEKIAlBAUcNByAAKAIQDQcCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiCUUNDCABIAk2AgAgASgCBCAKQQN0EM0BIgpFDQwgCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCEECNgIEAkAgASgCDCIAIAEoAhAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQwgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0MIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMCgsCQAJAAkACQCAAKAIQDgQAAQIDDgsgAC0ABEGAAXEEQAJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0PIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDyALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgACABKAIMQQFqIgQ2AhggACAAKAIEQYACcjYCBCABKAIIIAQ2AgQgACgCFCEGIAAoAgwgARBPIQggASgCECEDIAEoAgwhBCAGRQRAAkAgAyAESw0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCkUNECABIAo2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTo2AgAgASgCCCAIQQJqNgIEIAAoAgwgASACEEIiBEUNCgwPCwJAIAMgBEsNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIgpFDQ8gASAKNgIAIAEoAgQgA0EDdBDNASIDRQ0PIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggCEEEajYCBAsgASgCMCEEAkAgACgCFCIDQQFrQR5NBEAgBCADdkEBcQ0BDAcLIARBAXFFDQYLQTQhAyAFKAIAIgQgBygCACIGSQ0HIAZFDQcgBkEBdCIIQQBMBEBBdQ8LQXshBCABKAIAIAZBKGwQzQEiA0UNDSABIAM2AgBBNCEDIAEoAgQgBkEDdBDNASIGDQYMDQsgACgCDCEADAsLIAAtAARBIHEEQEEAIQMgACgCDCIHKAIMIQAgBygCECIFQQBKBH8DQCAAIAEgAhBCIgQNDiADQQFqIgMgBUcNAAsgBygCDAUgAAsgARBPIgBBAEgEQCAADwsgAUE7EFEiBA0MIAEoAgggAEEDajYCBCAHKAIMIAEgAhBCIgQNDCABQT0QUSIEDQwgAUE6EFEiBA0MIA0oAgBBfiAAazYCBEEADwsgAiACKAKMASIDQQFqNgKMASABQc0AEFEiBA0LIAEoAgggAzYCBCABKAIIQQA2AgggACgCDCABIAIQQiIEDQsgAUHMABBRIgQNCyANKAIAIAM2AgQgDSgCAEEANgIIQQAPCyAAKAIYIQggACgCFCEDIAAoAgwhCSACIAIoAowBIgpBAWo2AowBAkAgBSgCACIAIAcoAgAiDEkNACAMRQ0AIAxBAXQiAEEATARAQXUPC0F7IQQgASgCACAMQShsEM0BIg5FDQsgASAONgIAIAEoAgQgDEEDdBDNASIMRQ0LIAsgDDYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAo2AgQgASgCCEEANgIIIAkgARBPIg9BAEgEQCAPDwsCQCADRQRAQQAhDAwBCyADIAEQTyIMIQQgDEEASA0LCwJAIAUoAgAiACAHKAIAIg5JDQAgDkUNACAOQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgDkEobBDNASIQRQ0LIAEgEDYCACABKAIEIA5BA3QQzQEiDkUNCyALIA42AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAwgD2pBA2o2AgQgCSABIAIQQiIEDQoCQCAFKAIAIgAgBygCACIJSQ0AIAlFDQAgCUEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAlBKGwQzQEiDEUNCyABIAw2AgAgASgCBCAJQQN0EM0BIglFDQsgCyAJNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggAwRAIAMgASACEEIiBA0LCwJAIAhFBEBBACEDDAELIAggARBPIgMhBCADQQBIDQsLAkAgBSgCACIAIAcoAgAiCUkNACAJRQ0AIAlBAXQiAEEATARAQXUPC0F7IQQgASgCACAJQShsEM0BIgxFDQsgASAMNgIAIAEoAgQgCUEDdBDNASIJRQ0LIAsgCTYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0ECajYCBAJAIAEoAgwiACABKAIQIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIJRQ0LIAEgCTYCACABKAIEIANBA3QQzQEiA0UNCyALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhBCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggCCIADQkMCgtBeiEEAkACQAJAAkAgAQJ/AkACQAJAAkACQAJAIAAoAhAiA0H/AUwEQCADQQFrDkAICRUKFRUVCxUVFRUVFRUBFRUVFRUVFRUVFRUVFRUVAxUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUFAgsgA0H/H0wEQCADQf8HTARAIANBgAJGDQUgA0GABEcNFiABQSYQUQ8LQR4gA0GACEYNBxogA0GAEEcNFUEfDAcLIANB//8DTARAIANBgCBGDQYgA0GAwABHDRVBIQwHCyADQYCABEcgA0GAgAhHcQ0UIAFBIhBRIgQNFCANKAIAIAAoAgRBF3ZBAXE2AgQgDSgCACAAKAIQQYCACEY2AghBAA8LIAFBIxBRDwsgA0GAAUcNEiABQSQQUQ8LIAFBJRBRDwsgAUEnEFEPCyABQSgQUSIEDQ8gDSgCAEEANgIEQQAPC0EgCxBRIgQNDSANKAIAIAAoAhw2AgRBAA8LIAIgAigCjAEiA0EBajYCjAEgAUHNABBRIgQNDCABKAIIIAM2AgQgASgCCEEBNgIIIAAoAgwgASACEEIiBA0MIAFBzAAQUSIEDQwgDSgCACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAAKAIUIgQ2AgQgASgCCEF/IAMgBGsgA0F/Rhs2AgggASgCCEECNgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHLADYCACAAKAIMIAEgAhBCIgMNACABQSgQUSIDDQAgASgCCEEBNgIEIAFBPhBRIgMNACABKAIIIAY2AgQgAUHPABBRIgMNACABKAIIQQI2AgQgASgCCCAHNgIIIAEoAghBADYCDCABQT0QUSIDDQAgAUE5EFEiAw0AIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQA2AgwgAUE9EFEiAw0AIAFBPRBRIQMLIApBEGokACADDwsCQAJAAkACQCAAKAIMDgQAAQIDDAsCQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LIAEoAgAgA0EobBDNASIERQRAQXsPCyABIAQ2AgBBeyEEIAEoAgQgA0EDdBDNASIDRQ0MIAsgAzYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAQQAPCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQsgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAgggACgCEDYCBCABKAIIIAAoAhg2AghBAA8LAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCCAAKAIQNgIEIAEoAgggACgCGDYCCCABKAIIQQA2AgxBAA8LQXohBCAAKAIQIgJBAUsNCCAHKAIAIQMgBSgCACEEIAJBAUYEQAJAIAMgBEsNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0wA2AgAgASgCCCAAKAIYNgIIIAEoAgggACgCFDYCBEEADwsCQCADIARLDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQkgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiAzYCCEEAIQQgA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHSADYCACABKAIIIAAoAhQ2AgQMCAtBMyEDIAUoAgAiBCAHKAIAIgZJDQEgBkUNASAGQQF0IghBAEwEQEF1DwtBeyEEIAEoAgAgBkEobBDNASIDRQ0HIAEgAzYCAEEzIQMgASgCBCAGQQN0EM0BIgZFDQcLIAsgBjYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiADNgIAIAEoAgggACgCFDYCBCAAKAIMIAEgAhBCIgQNBSABKAI0IQQCQAJAAkACQCAAKAIUIgNBAWtBHk0EQCAEIAN2QQFxDQEMAgsgBEEBcUUNAQtBNkE1IAAtAARBwABxGyECIAUoAgAiBCAHKAIAIgNJDQIgA0UNAiADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0IIAEgCDYCACABKAIEIANBA3QQzQEiAw0BDAgLQThBNyAALQAEQcAAcRshAiAFKAIAIgQgBygCACIDSQ0BIANFDQEgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNByABIAg2AgAgASgCBCADQQN0EM0BIgNFDQcLIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGogAjYCACABKAIIIAAoAhQ2AgQgAC0ABEGAAXFFDQULIAFB0QAQUQ8LIAEgASgCICIGQQFqNgIgAkAgASgCDCIEIAEoAhAiCEkNACAIRQ0AIAhBAXQiCUEATARAQXUPC0F7IQQgASgCACAIQShsEM0BIg5FDQQgASAONgIAIAEoAgQgCEEDdBDNASIIRQ0EIAsgCDYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiAKNgIAIAEoAgggBjYCBCABKAIIIANBAmogAyAMG0ECajYCCCABKAIMIQggACgCFCEEIAAoAhAhCgJAIAEoAjwiA0UEQEEwEMsBIgNFBEBBew8LIAFBBDYCPCABIAM2AkAMAQsgAyAGTARAIAEoAkAgA0EEaiIJQQxsEM0BIgNFBEBBew8LIAEgCTYCPCABIAM2AkAMAQsgASgCQCEDCyADIAZBDGxqIgMgCDYCCCADQf////8HIAQgBEF/Rhs2AgQgAyAKNgIAIAAgASACEFIiBA0DIAAoAhghAgJAIAUoAgAiACAHKAIAIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0EIAEgCDYCACABKAIEIANBA3QQzQEiA0UNBCALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBwwBBxAAgAhs2AgAgASgCCCAGNgIEQQAPCyAAKAIoRQ0DAkAgBSgCACIAIAcoAgAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQMgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0DIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMAQsLIAcoAgAEQAJAIAAoAiAEQCABQT8QUSIEDQMgASgCCCAGQQJqNgIEIAEoAgggACgCICgCDC0AADoACAwBCyAAKAIkBEAgAUHAABBRIgQNAyABKAIIIAZBAmo2AgQgASgCCCAAKAIkKAIMLQAAOgAIDAELIAFBOxBRIgQNAiABKAIIIAZBAmo2AgQLIAAgASACEFIiBA0BIAFBOhBRIgQNASANKAIAIAZBf3M2AgRBAA8LIAFBOhBRIgQNACABKAIIIAZBAWo2AgQgACABIAIQUiIEDQAgAUE7EFEiBA0AIA0oAgBBACAGazYCBEEADwsgBA8LQQALswMBBH8CQAJAAkACQAJAAkACQAJAIAAoAgAOCQQGBgYAAgMBBQYLIAAoAgwgARBDIQIMBQsDQCAAIgQoAhAhAAJAAkAgBCgCDCIDKAIARQRAIAJFDQEgAygCFCACKAIURw0BIAMoAgQgAigCBEcNASACIAMoAgwgAygCEBATIgMNCSAEIAUoAhBGBEAgBSAEKAIQNgIQIARBADYCEAsgBBAQDAILAkAgAkUNACACKAIMIAIoAhAgASgCSBEAAA0AQfB8DwsgAyABEEMiAw0IQQAhAiAEIQUgAA0CDAcLIAQhBSADIQILIAANAAsgAigCECEAIAIoAgwhBEEAIQIgBCAAIAEoAkgRAAANBEHwfA8LIAAoAgwgARBDIgMNBCAAKAIQQQNHBEAMBAsgACgCFCICBEAgAiABEEMiAw0FCyAAKAIYIgBFBEBBACECDAQLQQAhAiAAIAEQQyIDDQQMAwsgACgCDCIARQ0CIAAgARBDIQIMAgsgACgCDCAAKAIQIAEoAkgRAAANAUHwfA8LA0AgACgCDCABEEMiAg0BIAAoAhAiAA0AC0EAIQILIAIhAwsgAwvFAQECfwJAAkACQAJAAkACQAJAIAAoAgBBA2sOBgQAAwIBAQULIAAoAgwQRCEBDAQLA0AgACgCDBBEIgENBCAAKAIQIgANAAtBACEBDAMLIAAoAgwiAEUNAiAAEEQhAQwCCyAAKAIMEEQiAg0CIAAoAhBBA0cEQAwCCyAAKAIUIgEEQCABEEQiAg0DCyAAKAIYIgBFBEBBACEBDAILQQAhASAAEEQiAkUNAQwCC0GvfiECIAAtAAVBgAFxRQ0BCyABIQILIAILlAIBBH8CQAJAA0ACQAJAAkACQAJAIAAoAgBBA2sOBgQCAwEAAAcLA0AgACgCDCABEEUiAg0HIAAoAhAiAA0ACwwFCyAAKAIQQQ9KDQULIAAoAgwhAAwCCyAAKAIMIAEQRSECIAAoAhBBA0cNAyACDQMgACgCFCICBEAgAiABEEUiAg0EC0EAIQIgACgCGCIADQEMAwsLIAAoAgxBAEwNASABKAKAASICIAFBQGsgAhshBCAAKAIoIgIgAEEQaiACGyEFQQAhAgNAIAUgAkECdGooAgAiAyABKAI0SgRAQbB+DwsgBCADQQN0aigCACIDIAMoAgRBgIAEcjYCBCACQQFqIgIgACgCDEgNAAsLQQAhAgsgAgvHBQEGfyMAQRBrIgYkAANAIAJBEHEhBANAQQAhAwJAAkACQAJAAkACQAJAAkAgACgCAEEEaw4GAQMCAAAEBgsDQCAAKAIMIAEgAhBGIgMNBiAAKAIQIgANAAsMBAsgAiACQRByIAAoAhQbIQIgACgCDCEADAcLIAAoAhBBD0oNAwwECwJAAkAgACgCEA4EAAUFAQULIARFDQQgACAAKAIEQYAQcjYCBCAAQRxqIgMgAygCAEEBazYCACAAKAIMIQAMBQsgACgCDCABIAIQRiIDDQIgACgCFCIDBEAgAyABIAIQRiIDDQMLQQAhAyAAKAIYIgANBAwCCyAEBEAgACAAKAIEQYAQcjYCBCAAIAAoAiBBAWs2AiALIAEoAoABIQICQCAAKAIQBEAgACgCFCEEAkAgASgCOEEATA0AIAEoAgwtAAhBgAFxRQ0AQa9+IQMgAS0AAUEBcUUNBAsgBCABKAI0TA0BQaZ+IQMgASAAKAIYIAAoAhwQHQwDCyABKAIsIQMgACgCGCEIIAAoAhwhBSAGQQxqIQcjAEEQayIEJAAgAygCVCEDIARBADYCBAJAIANFBEBBp34hAwwBCyAEIAU2AgwgBCAINgIIIAMgBEEIaiAEQQRqEI8BGiAEKAIEIgVFBEBBp34hAwwBCwJAAkAgBSgCCCIDDgICAAELIAcgBUEQajYCAEEBIQMMAQsgByAFKAIUNgIACyAEQRBqJAACQAJAIAMiBEEATARAQad+IQMMAQtBpH4hAyAEQQFGDQELIAEgACgCGCAAKAIcEB0MAwsgACAGKAIMKAIAIgQ2AhQLIAAgBEEDdCACIAFBQGsgAhtqKAIAIgM2AgwgA0UEQEGnfiEDIAEgACgCGCAAKAIcEB0MAgsgAyADKAIEQYCAgCByNgIEC0EAIQMLIAZBEGokACADDwsgACgCDCEADAALAAsAC6cBAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYBAwIAAAQFCwNAIAAoAgwQRyAAKAIQIgANAAsMBAsgACgCFEUNAwwECyAAKAIQQRBIDQMMAgsgAC0ABUEIcUUEQCAAKAIMEEcLIAAoAhBBA0cNASAAKAIUIgEEQCABEEcLIAAoAhgiAA0DDAELIAAtAAVBCHENACAAEFcLDwsgACgCDCEADAALAAuRAwEDfwJAA0ACQCAAKAIAIgRBBkcEQAJAAkAgBEEEaw4FAQMFAAAFCwNAQQEhBCAAKAIMIAEgAhBIIgNBAUcEQCAFIQQgA0EASA0GCyAEIQUgBCEDIAAoAhAiAA0ACwwECyAAKAIMIAEgAhBIIQMgACgCFA0DIANBAUcNAyAAQQE2AihBAQ8LIAAoAhBBD0oNAiAAKAIMIQAMAQsLIAAoAgQhBAJAIAAoAhANAEEBIQMgBEGAAXFFBEBBACEDIAJBAXFFDQELIARBwABxDQAgACAEQQhyNgIEAkAgACgCDBBYRQ0AIAAgACgCBEHAAHI2AgRBASEEIAEgACgCFCIFQR9MBH8gBUUNAUEBIAV0BSAECyABKAIUcjYCFAsgACAAKAIEQXdxIgQ2AgQLQQEgAyAAKAIMIAFBASACIARBwABxGyIEEEhBAUYbIQMgACgCEEEDRw0AIAAoAhQiBQRAQQEgAyAFIAEgBBBIQQFGGyEDCyAAKAIYIgBFDQBBASADIAAgASAEEEhBAUYbIQMLIAML4wEBAX8DQEEAIQICQAJAAkACQAJAIAAoAgBBBGsOBQQCAQAAAwsDQCAAKAIMIAEQSSICDQMgACgCECIADQALQQAPCyAAKAIQQQ9MDQJBAA8LAkACQCAAKAIQDgQAAwMBAwsgACgCBCICQcABcUHAAUcNAiAAIAJBCHI2AgQgACgCDCABQQEQWSICQQBIDQEgAkEGcQRAQaN+DwsgACAAKAIEQXdxNgIEDAILIAAoAhQiAgRAIAIgARBJIgINAQsgACgCGCICRQ0BIAIgARBJIgJFDQELIAIPCyAAKAIMIQAMAAsAC/UCAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYEAwUBAAIGCyABQQFyIQELA0AgACgCDCABEEogACgCECIADQALDAQLIAFBgAJxBEAgACAAKAIEQYCAgMAAcjYCBAsgAUEEcQRAIAAgACgCBEGACHI2AgQLIAAgARBaDwsCQAJAAkAgACgCEA4EAAEBAgULIABBIGoiAiABQSByIAEgACgCHEEBShsiASACKAIAcjYCAAsgACgCDCEADAQLIAAoAgwgAUEBciIBEEogACgCFCICBEAgAiABEEoLIAAoAhgiAA0DDAILIAFBBHIiAiACIAEgACgCFCICQQFKGyACQX9GGyIBIAFBCHIgACgCECACRhsiAUGAAnEEQCAAIAAoAgRBgICAwAByNgIECyAAKAIMIQAMAgsCQAJAIAAoAhBBAWsOCAEAAgECAgIAAgsgAUGCAnIhASAAKAIMIQAMAgsgAUGAAnIhASAAKAIMIQAMAQsLC547ARN/IwBB0AJrIgYkAAJAAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkAgACgCAA4JCg0NCQMBAgALDQsDQCAAIgkoAgwgASACIAMQSyEAAkACQCAFRQ0AIAANACAJKAIMIQtBACEAA0AgBSgCACIEQQVHBEAgBEEERw0DIAUoAhhFDQMgBSgCFEF/Rw0DIAshBAJAIAANAAJAA0ACQAJAAkACQAJAAkAgBCgCAA4IAQgICAIDBAAICyAEKAIMIQQMBQsgBCgCDCIHIAQoAhBPDQYgBC0ABkEgcUUNBSAELQAUQQFxDQUMBgsgBCgCEEEATA0FIAQoAiAiAA0CIAQoAgwhBAwDCyAEKAIQQQNLDQQgBCgCDCEEDAILIAQoAhBBAUcNAyAEKAIMIQQMAQsLIAAoAgwhByAAIQQLIActAABFDQAgBSAENgIkCyAFKAIQQQFKDQMCQAJAIAUoAgwiACgCACIEDgMAAQEFCyAAKAIQIAAoAgxGDQQLA0AgACEHAkACQAJAAkACQAJAAkAgBA4IAAUECwECAwYLCyAAKAIQIAAoAgxLDQQMCgsgACgCEEEATA0JIAAoAiAiBw0DDAQLIAAoAhBBA00NAwwICyAAKAIQQQFGDQIMBwsgACgCDEF/Rg0GCyALQQAQWyIARQ0FAn8gASENIAAoAgAhCAJAAkADQCAHIQQgACEHIAghCkEAIQACQAJAIAQoAgAiCA4DAwEABAtBACAEKAIMIhFBf0YNBBpBACAHKAIMIhRBf0YNBBogBCEAIApBAkkNAUEAIApBAkcNBBoCQCARIBRHDQAgBygCECAEKAIQRg0AQQEhACAHKAIUIAQoAhRGDQQLQQAMBAsgBCEAIApFDQALQQAhAAJAAkAgCkEBaw4CAQADC0EAIAcoAgxBDEcNAxogBCgCMCEAIAcoAhBFBEBBACAADQQaQQAhACAELQAMQQFxDQNBgAFBgAIgBygCFBshCEEAIQcDQAJAIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AIAdBDCANKAJEKAIwEQAARQ0AQQAMBgtBASEAIAdBAWoiByAIRw0ACwwDC0EAIAANAxpBACEAIAQtAAxBAXENAkGAAUGAAiAHKAIUIggbIQBBACEHA0ACQCAHQQwgDSgCRCgCMBEAAA0AIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AQQAMBQsgB0EBaiIHIABHDQALQQEgCEUNAxpB/wEgACAAQf8BTRshCkGAASEHA0AgBCAHQQN2Qfz///8BcWooAhAgB3ZBAXFFBEBBASEAIAcgCkYhCCAHQQFqIQcgCEUNAQwECwtBAAwDCyAEKAIMIg1BAXEhEQNAAkACQEEBIAB0IgogBCAAQQV2QQJ0IghqKAIQcQRAIBFFDQEMAgsgEUUNAQsgBygCDEEBcSEUIAcgCGooAhAgCnEEQCAUDQFBAAwFCyAURQ0AQQAMBAsgAEEBaiIAQYACRw0ACyAEKAIwRQRAQQEhACANQQFxRQ0CCyAHKAIwRQRAQQEhACAHLQAMQQFxRQ0CC0EADAILQQAgBCgCECIIIAQoAgwiBEYNARoCQAJAAkAgCg4DAgEAAwsgBygCDEEMRw0CIA0oAkQhACAHKAIURQRAIAAoAjAhCiAEIAggACgCFBEAAEEMIAoRAAAhBCAHKAIQIQAgBA0DIABFDAQLIAAgBCAIEIcBIQQgBygCECEAIAQNAiAARQwDCyAEIAQgDSgCRCIAKAIIaiAAKAIUEQAAIRFBASEAAkACQAJAIA0oAkQiBCgCDEEBSg0AIBEgBCgCGBEBACIEQQBIDQQgEUH/AUsNACAEQQJJDQELIAcoAjAiBEUEQEEAIQ0MAgsgBCgCACIAQQRqIRRBACENQQAhBCAAKAIAIgsEQCALIQADQCAAIARqIghBAXYiCkEBaiAEIBQgCEECdEEEcmooAgAgEUkiCBsiBCAAIAogCBsiAEkNAAsLIAQgC08NASAUIARBA3RqKAIAIBFNIQ0MAQsgByARQQN2Qfz///8BcWooAhAgEXZBAXEhDQsgDSAHKAIMQQFxc0EBcwwCCyAIIARrIgggBygCECAHKAIMIgdrIgogCCAKSBsiCkEATA0AQQAhCANAQQEgBy0AACAELQAARw0CGiAEQQFqIQQgB0EBaiEHIAhBAWoiCCAKRw0ACwsgAAtFDQVBAUE4EM8BIgAEQCAAQQI2AhAgAEEFNgIAIABBADYCNAsgAEUEQEF7IQUMFAsgACAAKAIEQSByNgIEIwBBQGoiD0E4aiIMIAUiBEEwaiIOKQIANwMAIA9BMGoiESAEQShqIhApAgA3AwAgD0EoaiIUIARBIGoiEikCADcDACAPQSBqIgggBEEYaiIVKQIANwMAIA9BGGoiCiAEQRBqIhYpAgA3AwAgD0EQaiINIARBCGoiCykCADcDACAPIAQpAgA3AwggDiAAQTBqIgcpAgA3AgAgECAAQShqIg4pAgA3AgAgEiAAQSBqIhApAgA3AgAgFSAAQRhqIhIpAgA3AgAgFiAAQRBqIhUpAgA3AgAgCyAAQQhqIhYpAgA3AgAgBCAAKQIANwIAIAcgDCkDADcCACAOIBEpAwA3AgAgECAUKQMANwIAIBIgCCkDADcCACAVIAopAwA3AgAgFiANKQMANwIAIAAgDykDCDcCAAJAIAQoAgANACAEKAIwDQAgBCgCDCEPIAQgBEEYaiIMNgIMIAQgDCAEKAIQIA9rajYCEAsCQCAAKAIADQAgACgCMA0AIAAoAgwhBCAAIABBGGoiDzYCDCAAIA8gACgCECAEa2o2AhALIAUgADYCDAwFCyAAKAIMIgAoAgAhBAwACwALIAUoAhANAkEBIAAgBS0ABEGAAXEbIQAgBSgCDCEFDAALAAsgACEFIAANDgsgCSgCDCEFIAkoAhAiAA0ACwwLCyAAKAIQDgQEBQMCCwsCQAJAAkAgACgCECIEQQFrDggAAQ0CDQ0NAg0LIAJBwAByIQIgACgCDCEADAcLIAJBwgByIQIgACgCDCEADAYLIAZBADYCkAIgACgCDCAEQQhGIAZBkAJqEFxBAEoEQEGGfyEFDAsLIAAoAgwiByABIAJBAnIgAiAAKAIQQQhGG0GAAXIgAxBLIgUNCgJAAkACQAJAIAciCyIEKAIAQQRrDgUCAwMBAAMLA0ACQAJAAkAgCygCDCIEKAIAQQRrDgQAAgIBAgsgBCgCDCgCAEEDSw0BIAQgBCgCEDYCFAwBCwNAIAQoAgwiBSgCAEEERw0BIAUoAgwoAgBBA0sNASAFIAUoAhAiCTYCFCAJDQEgBCgCECIEDQALQQEhBQwPCyALKAIQIgsNAAsMAgsDQCAEKAIMIgUoAgBBBEcNAiAFKAIMKAIAQQNLDQIgBSAFKAIQIgk2AhQgCQ0CQQEhBSAEKAIQIgQNAAsMDAsgBygCDCgCAEEDSw0AIAcgBygCEDYCFAsgByABIAYgA0EAEF0iBUEASA0KIAYoAgQiCUGAgARrQf//e0kEQEGGfyEFDAsLIAYoAgAiBEH//wNLBEBBhn8hBQwLCwJAIAQNACAGKAIIRQ0AIAYoApACDQAgACgCEEEIRgRAIAAQESAAQQA2AgwgAEEKNgIAQQAhBQwMCyAAEBEgAEEANgIUIABBADYCACAAQQA2AjAgACAAQRhqIgE2AhAgACABNgIMQQAhBQwLCwJAIAVBAUcNACADKAIMKAIIIgVBwABxBEAjAEFAaiIPJAAgACIFQRBqIgwoAgAhFCAAKAIMIhMoAgwhDiAPQThqIhAgAEEwaiISKQIANwMAIA9BMGoiCSAAQShqIhUpAgA3AwAgD0EoaiIIIABBIGoiFikCADcDACAPQSBqIgogAEEYaiIRKQIANwMAIA9BGGoiDSAMKQIANwMAIA9BEGoiCyAAQQhqIgcpAgA3AwAgDyAAKQIANwMIIBIgE0EwaiIEKQIANwIAIBUgE0EoaiISKQIANwIAIBYgE0EgaiIVKQIANwIAIBEgE0EYaiIWKQIANwIAIAwgE0EQaiIRKQIANwIAIAcgE0EIaiIMKQIANwIAIAAgEykCADcCACAEIBApAwA3AgAgEiAJKQMANwIAIBUgCCkDADcCACAWIAopAwA3AgAgESANKQMANwIAIAwgCykDADcCACATIA8pAwg3AgACQCAAKAIADQAgBSgCMA0AIAUoAgwhDCAFIAVBGGoiEDYCDCAFIBAgBSgCECAMa2o2AhALAkAgEygCAA0AIBMoAjANACATIBMgEygCECATKAIMa2pBGGo2AhALIAUgEzYCDCATIA42AgwCQCAFKAIQIgwEQANAIA9BCGogExASIg4NAiAPKAIIIg5FBEBBeyEODAMLIA4gDCgCDDYCDCAMIA42AgwgDCgCECIMDQALC0EAIQ4gFEEIRw0AA0AgBUEHNgIAIAUoAhAiBQ0ACwsgD0FAayQAIA4iBQ0MIAAgASACIAMQSyEFDAwLIAVBgBBxDQBBhn8hBQwLCyAEIAlHBEBBhn8hBSADKAIMLQAJQQhxRQ0LCyAAKAIgDQkgACAJNgIYIAAgBDYCFCAHIAZBzAJqQQAQXkEBRw0JIABBIGogBigCzAIQEiIFRQ0JDAoLIAJBwAFxBEAgACAAKAIEQYCAgMAAcjYCBAsgAkEEcQRAIAAgACgCBEGACHI2AgQLIAJBIHEEQCAAIAAoAgRBgCByNgIECyAAKAIMIQQCQCAAKAIUIgVBf0cgBUEATHENACAEIAMQXw0AIAAgBBBgNgIcCyAEIAEgAkEEciIJIAkgAiAAKAIUIgVBAUobIAVBf0YbIgIgAkEIciAAKAIQIAVGGyADEEsiBQ0JAkAgBCgCAA0AIAAoAhAiAkF/Rg0AIAJBAmtB4gBLDQAgAiAAKAIURw0AIAQoAhAgBCgCDGsgAmxB5ABKDQAgAEIANwIAIABBMGoiAUIANwIAIABCADcCKCAAQgA3AiAgAEEYaiIFQgA3AgAgAEEQaiIJQgA3AgAgAEIANwIIIAAgBCgCBDYCBCAEKAIUIQtBACEDIAFBADYCACAJIAU2AgAgACAFNgIMIAAgCzYCFANAQXohBSAAKAIEIAQoAgRHDQsgACgCFCAEKAIURw0LIAAgBCgCDCAEKAIQEBMiBQ0LIANBAWoiAyACRw0ACyAEEBAMCQtBACEFIAAoAhhFDQkgACgCHA0JIAQoAgBBBEYEQCAEKAIgIgJFDQogACACNgIgIARBADYCIAwKCyAAIAAoAgxBARBbNgIgDAkLIAAoAgwgASACQQFyIgIgAxBLIgUNCCAAKAIUIgUEQCAFIAEgAiADEEsiBQ0JC0EAIQUgACgCGCIADQMMCAsgACgCDCIEIAEgAiADEEshBSAEKAIAQQRHDQcgBCgCFEF/Rw0HIAQoAhBBAUoNByAEKAIYRQ0HAkACQCAEKAIMIgIoAgAOAwABAQkLIAIoAhAgAigCDEYNCAsgACAAKAIEQSByNgIEDAcLAkAgACgCICACciICQStxRQRAIAAtAARBwABxRQ0BCyADIAAoAhQiBEEfTAR/IARFDQFBASAEdAVBAQsgAygCFHI2AhQLIAAoAgwhAAwBCwsgASgCSCEEIAEgACgCFDYCSCAAKAIMIAEgAiADEEshBSABIAQ2AkgMBAsgACgCDCIBQQBMDQIgACgCKCIFIABBEGogBRshCSADKAI0IQtBACEFA0AgCyAJIAVBAnRqIgQoAgAiAEgEQEGwfiEFDAULAkAgAyAAQR9MBH8gAEUNAUEBIAB0BUEBCyADKAIYcjYCGAsCQCADIAQoAgAiAkEfTAR/IAJFDQFBASACdAVBAQsgAygCFHI2AhQLIAVBAWoiBSABRw0ACwwCCyAAKAIEIgRBgICAAXFFDQIgACgCFCIDQQFxDQIgA0ECcQ0CIAAgBEH///9+cTYCBCAAKAIMIgwgACgCECIWTw0CIAEoAkQhEiAGQQA2AowCIAJBgAFxIRECQAJAA0AgASgCUCAMIBYgBiASKAIoEQMAIgpBAEgEQCAKIQUMAgsgDCASKAIAEQEAIQQgFgJ/IApFBEAgBiAGKAKMAiICNgKQAiAWIAQgDGoiBSAFIBZLGyEDAkACQCAIBEAgCCgCFEUNAQtBeyEFIAwgAxAWIgRFDQUgBEEANgIUIAQQFCEJAn8gAkUEQCAGQZACaiAJDQEaDAcLIAlFDQYDQCACIgUoAhAiAg0ACyAFQRBqCyAJNgIAIAYoApACIQIgBCEIDAELIAggDCADEBMiBQ0ECyAGIAI2AowCIAMMAQsCQAJAAkACQAJAAkAgEUUEQCAKQQNxIRBBfyECQQAhDkEAIQVBACEEIApBAWtBA0kiFEUEQCAKQXxxIRVBACENA0AgBiAFQQNyQRRsaigCACIDIAYgBUECckEUbGooAgAiCSAGIAVBAXJBFGxqKAIAIgsgBiAFQRRsaigCACIHIAQgBCAHSRsiBCAEIAtJGyIEIAQgCUkbIgQgAyAESxshBCADIAkgCyAHIAIgAiAHSxsiAiACIAtLGyICIAIgCUsbIgIgAiADSxshAiAFQQRqIQUgDUEEaiINIBVHDQALCyAQBEADQCAGIAVBFGxqKAIAIgMgBCADIARLGyEEIAMgAiACIANLGyECIAVBAWohBSAOQQFqIg4gEEcNAAsLIAIgBEYNAUF1IQUMCQsgBCAMaiEJAkACQCAEIAYoAgBHBEAgASgCUCAMIAkgBiASKAIoEQMAIgpBAEgEQCAKIQUMDAsgCkUNAQtBACEFA0AgBCAGIAVBFGxqIgIoAgBGBEAgAigCBEEBRg0DCyAFQQFqIgUgCkcNAAsLIAYgBigCjAIiAjYCkAICQCAIBEAgCCgCFEUNAQtBeyEFIAwgCRAWIgRFDQogBEEANgIUIAQQFCEDAkAgAkUEQCAGQZACaiECIANFDQwMAQsgA0UNCwNAIAIiBSgCECICDQALIAVBEGohAgsgAiADNgIAIAYoApACIQIgBCEIDAcLIAggDCAJEBMiBQ0JDAYLIAYgDCAJIBIoAhQRAAA2ApACQQAhBUEBIQMDQAJAIAYgBUEUbGoiAigCACAERw0AIAIoAgRBAUcNACAGQZACaiADQQJ0aiACKAIINgIAIANBAWohAwsgBUEBaiIFIApHDQALIAZBzAJqIBIgAyAGQZACahAYIgUNCCAGKAKMAiECIAYoAswCEBQhBCACRQRAIARFDQIgBiAENgKMAgwFCyAERQ0CA0AgAiIFKAIQIgINAAsgBSAENgIQDAQLIAIgDGohDkEAIQUCQAJAAkADQCAGIAVBFGxqKAIEQQFGBEAgCiAFQQFqIgVHDQEMAgsLQXshBSAMIA4QFiICRQ0KQQAhByAGIAIQFSILNgLMAiALIQ0gCw0BIAIQEAwKCyAGIAwgDiASKAIUEQAANgKQAkEAIQJBACEFIBRFBEAgCkF8cSELQQAhBANAIAZBkAJqIAVBAXIiA0ECdGogBiAFQRRsaigCCDYCACAGQZACaiAFQQJyIglBAnRqIAYgA0EUbGooAgg2AgAgBkGQAmogBUEDciIDQQJ0aiAGIAlBFGxqKAIINgIAIAZBkAJqIAVBBGoiBUECdGogBiADQRRsaigCCDYCACAEQQRqIgQgC0cNAAsLIBAEQANAIAVBFGwhBCAGQZACaiAFQQFqIgVBAnRqIAQgBmooAgg2AgAgAkEBaiICIBBHDQALCyAGQcwCaiASIApBAWogBkGQAmoQGCIFDQkgBigCzAIhCwwBCwNAIAYgB0EUbGoiBSgCBCEDQQBBABAWIgRFBEBBeyEFIAsQEAwKC0EAIQICQCADQQBMDQAgBUEIaiEJA0ACQCAJIAJBAnRqKAIAIAZBkAJqIBIoAhwRAAAiBUEASA0AIAQgBkGQAmogBkGQAmogBWoQEyIFDQAgAyACQQFqIgJHDQEMAgsLIAQQECALEBAMCgsgBBAVIgVFBEAgBBAQIAsQEEF7IQUMCgsgDSAFNgIQIAUhDSAHQQFqIgcgCkcNAAsLIAYoAowCIQUgCxAUIQQCfyAFRQRAIAZBjAJqIAQNARoMBAsgBEUNAwNAIAUiAigCECIFDQALIAJBEGoLIAQ2AgBBACEIIA4MBQsgBigCzAIQEEF7IQUMCgsgBigCzAIQEEF7IQUMBgsgBigCzAIQEEF7IQUMBAtBACEIIAkMAQsgBiACNgKMAiAJCyIMSw0ACyAGKAKMAiIDBEBBASEFIAMhAgNAIAUiBEEBaiEFIAIoAhAiAg0ACwJAIARBAUYEQCADKAIMIQUgBkHAAmoiAiAAQTBqIgQpAgA3AwAgBkG4AmoiASAAQShqIgkpAgA3AwAgBkGwAmoiCyAAQSBqIgcpAgA3AwAgBkGoAmoiCiAAQRhqIg4pAgA3AwAgBkGgAmoiDSAAQRBqIhApAgA3AwAgBkGYAmoiDCAAQQhqIhUpAgA3AwAgBiAAKQIANwOQAiAEIAVBMGoiEikCADcCACAJIAVBKGoiBCkCADcCACAHIAVBIGoiCSkCADcCACAOIAVBGGoiBykCADcCACAQIAVBEGoiDikCADcCACAVIAVBCGoiECkCADcCACAAIAUpAgA3AgAgEiACKQMANwIAIAQgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAQIAwpAwA3AgAgBSAGKQOQAjcCAAJAIAAoAgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgCDCEFIAggCEEYaiIANgIMIAggACAIKAIQIAVrajYCEAsgCBAQDAMLIAYoAowCIgINACAIRQ0DIAgQEAwDCyACEBAMAgsgAkEBciECA0AgACgCDCABIAIgAxBLIgUNAiAAKAIQIgANAAsLQQAhBQsgBkHQAmokACAFC5QBAQF/A0ACQCAAIgIgATYCCAJAAkACQAJAIAIoAgBBBGsOBQIDAQAABAsDQCACKAIMIAIQTCACKAIQIgINAAsMAwsgAigCEEEPSg0CCyACKAIMIQAgAiEBDAILIAIoAgwiAQRAIAEgAhBMCyACKAIQQQNHDQAgAigCFCIBBEAgASACEEwLIAIhASACKAIYIgANAQsLC/UBAQF/A0ACQCAAKAIAIgNBBUcEQAJAAkACQCADQQRrDgUCBAEAAAQLA0AgACgCDCABIAIQTSAAKAIQIgANAAsMAwsgACgCECIDQQ9KDQICQAJAIANBAWsOBAABAQABC0EAIQELIAAoAgwhAAwDCyAAIAEgACgCHBshASAAKAIMIQAMAgsgACgCDCIDBEAgAyABIAIQTQsgACgCECIDQQNHBEAgAw0BIAFFDQEgACgCBEGAgARxRQ0BIAAoAhRBA3QgAigCgAEiAyACQUBrIAMbaiABNgIEDwsgACgCFCIDBEAgAyABIAIQTQsgACgCGCIADQELCwvVAgEHfwJAA0ACQAJAAkACQAJAIAAoAgBBA2sOBgQCAwEAAAYLA0AgACgCDCABEE4gACgCECIADQALDAULIAAoAhBBD0oNBAsgACgCDCEADAILIAAoAgwiAgRAIAIgARBOCyAAKAIQQQNHDQIgACgCFCICBEAgAiABEE4LIAAoAhgiAA0BDAILCyAAKAIMIgVBAEwNACAAKAIoIgIgAEEQaiACGyEHIAEoAoABIgIgAUFAayACGyEGA0AgACEBAkAgBiAHIANBAnRqIggoAgAiBEEDdGooAgQiAkUNAANAIAEoAggiAQRAIAEgAkcNAQwCCwsCQCAEQR9KDQAgBEUNACACIAIoAixBASAEdHI2AiwLIAIgAigCBEGAgMAAcjYCBCAGIAgoAgBBA3RqKAIAIgEgASgCBEGAgMAAcjYCBCAAKAIMIQULIANBAWoiAyAFSA0ACwsLvQoBBn9BASEDQXohBAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAgkJCQMEBQABCQYKCwNAIAAoAgwgARBPIgRBAEgNCiAEIAZqIgYhAyAAKAIQIgANAAsMCAsDQCAFIgRBAWohBSAAKAIMIAEQTyACaiECIAAoAhAiAA0ACyACIARBAXRqIQMMBwsgAC0AFEEBcQRAIAAoAhAgACgCDEshAwwHC0EAIQMgACgCDCICIAAoAhBPDQZBASEDIAIgAiABKAJEIgYoAgARAQAiAWoiAiAAKAIQTw0GQQAhBANAIAQgAiAGKAIAEQEAIgUgAUdqIQQgBSIBIAJqIgIgACgCEEkNAAsgBEEBaiEDDAYLIAAoAhwhBSAAKAIUIQRBACEDIAAoAgwgARBPIgJBAEgEQCACIQMMBgsgAkUNBQJAIAAoAhgiBkUNACAAKAIUQX9HDQAgACgCDCIBKAIAQQJHDQAgASgCDEF/Rw0AAkAgACgCECIBQQFMBEAgASACbCEBDAELQX8gAW4hAyABIAJsIgFBCksNASACIANPDQELIAFBAWohAwwGCyACQQJqIgMgAiAFGyEBAkACQAJAIARBf0YEQAJAIAAoAhAiBUEBTARAIAIgBWwhBAwBC0F/IAVuIQcgAiAFbCIEQQpLDQIgAiAHTw0CCyABQQEgBCACQQpLGyAEIAVBAUYbakECaiEDDAkLIAAoAhQiBUUNByAGRQ0BIAJBAWohBCAFQQFHBEBBfyAFbiEDIAQgBWxBCksNAyADIARNDQMLIAUgACgCECIAayAEbCAAIAJsaiEDDAgLIAAoAhQiBUUNBiAGDQELIAVBAUcNACAAKAIQRQ0GCyABQQJqIQMMBQsgACgCDCECIAAoAhAiBUEBRgRAIAIgARBPIQMMBQtBACEDQQAhBAJAAkACQCACBH8gAiABEE8iBEEASARAIAQhAwwJCyAAKAIQBSAFCw4EAAcBAgcLIAAoAgRBgAFxIQICQCAAKAIUIgANACACRQ0AIARBA2ohAwwHCyACBEAgASgCNCECAkAgAEEBa0EeTQRAIAIgAHZBAXENAQwHCyACQQFxRQ0GCyAEQQVqIQMMBwsgBEECaiEDDAYLIAAtAARBIHEEQEEAIQIgACgCDCIFKAIMIAEQTyIAQQBIBEAgACEDDAcLAkAgAEUNACAFKAIQIgVFDQBBt34hA0H/////ByAAbiAFTA0HIAAgBWwiAkEASA0HCyAAIAJqQQNqIQMMBgsgBEECaiEDDAULIAAoAhghBSAAKAIUIQIgACgCDCABEE8iA0EASA0EIANBA2ohACACBH8gAiABEE8iA0EASA0FIAAgA2oFIAALQQJqIQMgBUUNBCADQQAgBSABEE8iAEEAThsgAGohAwwECwJAIAAoAgwiAkUEQEEAIQIMAQsgAiABEE8iAiEDIAJBAEgNBAtBASEDAkACQAJAAkAgACgCEEEBaw4IAAEHAgcHBwMHCyACQQJqIQMMBgsgAkEFaiEDDAULIAAoAhQgACgCGEYEQCACQQNqIQMMBQsgACgCICIARQRAIAJBDGohAwwFCyAAIAEQTyIDQQBIDQQgAiADakENaiEDDAQLIAAoAhQgACgCGEYEQCACQQZqIQMMBAsgACgCICIARQRAIAJBDmohAwwECyAAIAEQTyIDQQBIDQMgAiADakEPaiEDDAMLIAAoAgxBA0cNAkF6QQEgACgCEEEBSxshAwwCCyAEQQVqIQMMAQsgAkEBakEAIAAoAigbIQMLIAMhBAsgBAu1AwEFf0EMIQUCQAJAAkACQCABQQFrDgMAAQMCC0EHIAJBAWogAkEBa0EFTxshBQwCC0ELIAJBB2ogAkEBa0EDTxshBQwBC0ENIQULAkACQCADKAIMIgQgAygCECIGSQ0AIAZFDQAgBkEBdCIEQQBMBEBBdQ8LQXshByADKAIAIAZBKGwQzQEiCEUNASADIAg2AgAgAygCBCAGQQN0EM0BIgZFDQEgAyAENgIQIAMgBjYCBCADKAIMIQQLIAMgBEEBajYCDCADIAMoAgAgBEEUbGoiBDYCCEEAIQcgBEEANgIQIARCADcCCCAEQgA3AgAgAygCBCADKAIIIAMoAgBrQRRtQQJ0aiAFNgIAIAAgASACbCIGaiEEAkACQAJAIAVBB2sOBwECAgIBAQACCyADKAJEIAAgBBB2IgVFBEBBew8LIAMoAgggATYCDCADKAIIIAI2AgggAygCCCAFNgIEQQAPCyADKAJEIAAgBBB2IgVFBEBBew8LIAMoAgggAjYCCCADKAIIIAU2AgRBAA8LIAMoAggiBUIANwIEIAVCADcCDCADKAIIQQRqIAAgBhCmARoLIAcLxwEBBH8CQAJAIAAoAgwiAiAAKAIQIgNJDQAgA0UNACADQQF0IgJBAEwEQEF1DwtBeyEEIAAoAgAgA0EobBDNASIFRQ0BIAAgBTYCACAAKAIEIANBA3QQzQEiA0UNASAAIAI2AhAgACADNgIEIAAoAgwhAgsgACACQQFqNgIMIAAgACgCACACQRRsaiICNgIIQQAhBCACQQA2AhAgAkIANwIIIAJCADcCACAAKAIEIAAoAgggACgCAGtBFG1BAnRqIAE2AgALIAQL2AgBB38gACgCDCEEIAAoAhwiBUUEQCAEIAEgAhBCDwsgASgCJCEHAkACQCABKAIMIgMgASgCECIGSQ0AIAZFDQAgBkEBdCIIQQBMBEBBdQ8LQXshAyABKAIAIAZBKGwQzQEiCUUNASABIAk2AgAgASgCBCAGQQN0EM0BIgZFDQEgASAINgIQIAEgBjYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcUANgIAIAEoAgggASgCJDYCBCABIAEoAiRBAWo2AiQgBCABIAIQQiIDDQAgBUUNAAJAAkACQAJAIAVBAWsOAwABAgMLAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUPC0F7IQMgASgCACACQShsEM0BIgRFDQQgASAENgIAIAEoAgQgAkEDdBDNASICRQ0EIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHGADYCAAwCCwJAIAAtAAZBEHFFDQAgACgCLEUNAAJAIAEoAgwiAyABKAIQIgJJDQAgAkUNACACQQF0IgRBAEwEQEF1DwtBeyEDIAEoAgAgAkEobBDNASIFRQ0EIAEgBTYCACABKAIEIAJBA3QQzQEiAkUNBCABIAQ2AhAgASACNgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBxwA2AgAgASgCCCAAKAIsNgIIDAILAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUPC0F7IQMgASgCACACQShsEM0BIgRFDQMgASAENgIAIAEoAgQgAkEDdBDNASICRQ0DIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHGADYCAAwBCwJAIAEoAgwiAyABKAIQIgJJDQAgAkUNACACQQF0IgRBAEwEQEF1DwtBeyEDIAEoAgAgAkEobBDNASIFRQ0CIAEgBTYCACABKAIEIAJBA3QQzQEiAkUNAiABIAQ2AhAgASACNgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpByAA2AgAgASgCCCAAKAIsNgIICyABKAIIIAc2AgRBACEDCyADC2gBBn8gAEEEaiEEIAAoAgAiBQRAIAUhAANAIAAgAmoiA0EBdiIHQQFqIAIgBCADQQJ0QQRyaigCACABSSIDGyICIAAgByADGyIASQ0ACwsgAiAFSQR/IAQgAkEDdGooAgAgAU0FIAYLC9wBAQZ/An8CQAJAAkAgACgCDEEBSg0AQQAgASAAKAIYEQEAIgBBAEgNAxogAUH/AUsNACAAQQJJDQELIAIoAjAiAEUEQAwCCyAAKAIAIgNBBGohBkEAIQAgAygCACIHBEAgByEDA0AgACADaiIFQQF2IghBAWogACAGIAVBAnRBBHJqKAIAIAFJIgUbIgAgAyAIIAUbIgNJDQALCyAAIAdPDQEgBiAAQQN0aigCACABTSEEDAELIAIgAUEDdkH8////AXFqKAIQIAF2QQFxIQQLIAIoAgxBAXEgBHMLC/oCAQJ/AkACQAJAAkACQAJAIAAoAgAiAygCAEEEaw4FAQIDAAAECwNAIANBDGogASACEFUiAEEASA0FIAMoAhAiAw0ACwwDCyADQQxqIgQgASACEFUiAEEASA0DIABBAUcNAiAEKAIAKAIAQQRHDQIgAxAXDwsCQAJAAkAgAygCEA4EAAICAQILIAMtAAVBAnEEQCACIAIoAgBBAWoiADYCACABIAMoAhRBAnRqIAA2AgAgAyACKAIANgIUIANBDGogASACEFUiAEEATg0EDAULIAAgAygCDDYCACADQQA2AgwgAxAQQQEgACABIAIQVSIDIANBAE4bDwsgA0EMaiABIAIQVSIAQQBIDQMgAygCFARAIANBFGogASACEFUiAEEASA0ECyADQRhqIgMoAgBFDQIgAyABIAIQVSIAQQBIDQMMAgsgA0EMaiABIAIQVSIAQQBIDQIMAQsgAygCDEUNACADQQxqIAEgAhBVIgBBAEgNAQtBAA8LIAALwgMBCH8DQAJAAkACQAJAAkACQCAAKAIAQQNrDgYDAQIEAAAFCwNAIAAoAgwgARBWIgINBSAAKAIQIgANAAtBAA8LIAAoAgwhAAwECwJAIAAoAgwgARBWIgMNACAAKAIQQQNHBEBBAA8LIAAoAhQiAgRAIAIgARBWIgMNAQsgACgCGCIARQRAQQAPC0EAIQIgACABEFYiA0UNAwsgAw8LQa9+IQIgAC0ABUGAAXFFDQFBACECAkAgACgCDCIEQQBMDQAgACgCKCICIABBEGogAhshAyAEQQFxIQcCQCAEQQFGBEBBACEEQQAhAgwBCyAEQX5xIQhBACEEQQAhAgNAIAEgAyAEQQJ0IgVqKAIAQQJ0aigCACIJQQBKBEAgAyACQQJ0aiAJNgIAIAJBAWohAgsgASADIAVBBHJqKAIAQQJ0aigCACIFQQBKBEAgAyACQQJ0aiAFNgIAIAJBAWohAgsgBEECaiEEIAZBAmoiBiAIRw0ACwsgB0UNACABIAMgBEECdGooAgBBAnRqKAIAIgFBAEwNACADIAJBAnRqIAE2AgAgAkEBaiECCyAAIAI2AgxBAA8LIAAoAgwiAA0BCwsgAguRAgECfwNAAkACQAJAAkACQAJAAkAgACgCAEEEaw4GBgIBAAADBQsDQCAAKAIMEFcgACgCECIADQALDAQLIAAoAhBBEE4NAwwECwJAAkAgACgCEA4EAAUFAQULIAAoAgQiAUEIcQ0DIABBBGohAiAAIAFBCHI2AgQgACgCDCEADAILIAAoAgwQVyAAKAIUIgIEQCACEFcLIAAoAhgiAA0EDAILIAAoAgQiAUEIcQ0BIABBBGohAiAAIAFBCHI2AgQgACAAKAIgQQFqNgIgIAAoAgwiACAAKAIEQYABcjYCBCAAQRxqIgEgASgCAEEBajYCAAsgABBXIAIgAigCAEF3cTYCAAsPCyAAKAIMIQAMAAsAC5cCAQN/A0BBACEBAkACQAJAAkACQAJAAkAgACgCAEEEaw4GBgMBAAACBAsDQCAAKAIMEFggAXIhASAAKAIQIgANAAsMAwsgACgCEEEPSg0CDAQLIAAoAgwQWCICRQ0BIAAoAgwtAARBCHFFBEAgAiADcg8LIAAgACgCBEHAAHI2AgQgAiADcg8LAkAgACgCEA4EAAMDAgMLIAAoAgQiAkEQcQ0AQQEhASACQQhxDQAgACACQRByNgIEIAAoAgwQWCEBIAAgACgCBEFvcTYCBAsgASADcg8LIAAoAhQiAQR/IAEQWAVBAAshASAAKAIYIgIEfyACEFggAXIFIAELIANyIQMgACgCDCEADAELIAAoAgwhAAwACwAL7QMBA38DQEECIQMCQAJAAkACQAJAAkACQCAAKAIAQQRrDgYCBAMAAQYFCwNAIAAoAgwgASACEFkiA0GEgICAeHEEQCADDwsgAgR/IAAoAgwgARBfRQVBAAshAiADIARyIQQgACgCECIADQALDAQLA0AgACgCDCABIAIQWSIFQYSAgIB4cQRAIAUPCyADIAVxIQMgBUEBcSAEciEEIAAoAhAiAA0ACyADIARyDwsgACgCFEUNAiAAKAIMIAEgAhBZIgRBgoCAgHhxQQJHDQIgBCAEQX1xIAAoAhAbDwsgACgCEEEPSg0BDAILAkACQCAAKAIQDgQAAwMBAwsgACgCBCIDQRBxDQEgA0EIcQRAQQdBAyACGyEEDAILIAAgA0EQcjYCBCAAKAIMIAEgAhBZIQQgACAAKAIEQW9xNgIEIAQPCyAAKAIMIAEgAhBZIgRBhICAgHhxDQAgACgCFCIDBH8CQCACRQRADAELQQAgAiAAKAIMIAEQXxshBSAAKAIUIQMLIAMgASAFEFkiA0GEgICAeHEEQCADDwsgAyAEcgUgBAshAyAAKAIYIgAEQCAAIAEgAhBZIgRBhICAgHhxDQEgBEEBcSADciIAIABBfXEgBEECcRsPCyADQX1xDwsgBA8LIAAoAgwhAAwACwALvQMBA38DQCABQQRxIQMgAUGAAnEhBANAAkACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYCBAMBAAYFCyABQQFyIQELA0AgACgCDCABEFogACgCECIADQALDAMLIAFBBHIiAyADIAEgACgCFCICQQFKGyACQX9GGyIBIAFBCHIgACgCECACRhsiAUGAAnEEQCAAIAAoAgRBgICAwAByNgIECyAAKAIMIQAMBgsCQAJAIAAoAhBBAWsOCAEAAwEDAwMAAwsgAUGCAnIhASAAKAIMIQAMBgsgAUGAAnIhASAAKAIMIQAMBQsCQAJAIAAoAhAOBAAEBAEECyAAKAIEIgJBCHEEQCABIAAoAiAiAkF/c3FFDQIgACABIAJyNgIgDAQLIAAgAkEIcjYCBCAAQSBqIgIgAigCACABcjYCACAAKAIMIAEQWiAAIAAoAgRBd3E2AgQPCyAAKAIMIAFBAXIiARBaIAAoAhQiAgRAIAIgARBaCyAAKAIYIgANBAsPCyAEBEAgACAAKAIEQYCAgMAAcjYCBAsgA0UNACAAIAAoAgRBgAhyNgIEIAAoAgwhAAwBCyAAKAIMIQAMAAsACwALyAEBAX8DQAJAQQAhAgJAAkACQAJAAkACQAJAAkAgACgCAA4IAwEACAUGBwIICyABDQcgACgCDEF/Rw0DDAcLIAFFDQIMBgsgACgCDCEADAYLIAAoAhAgACgCDE0NBCABRQ0AIAAtAAZBIHFFDQAgAC0AFEEBcUUNBAsgACECDAMLIAAoAhBBAEwNAiAAKAIgIgINAiAAKAIMIQAMAwsgACgCEEEDSw0BIAAoAgwhAAwCCyAAKAIQQQFHDQAgACgCDCEADAELCyACC/cCAQR/IAAoAgAiBEEKSwRAQQEPCyABQQJ0IgVBAEGgGWpqIQYgA0GoGWogBWohBQNAAkACQAJAAkACfwJAAkACQAJAIARBBGsOBwECAwAABgUHCwNAIAAoAgwgASACEFwEQEEBDwsgACgCECIADQALQQAPCyAAKAIMIQAMBgtBASEDIAYoAgAgACgCEHZBAXFFDQQgACgCDCABIAIQXA0EIAAoAhAiBEEDRwRAIAQEQEEADwsgACgCBEGAgYQgcUUEQEEADwsgAkEBNgIAQQAPCyAAKAIUIgQEQCAEIAEgAhBcDQULIAAoAhgMAQsgBSgCACAAKAIQcUUEQEEBDwsgACgCDAshAEEAIQMgAA0DDAILQQEhAyAALQAHQQFxDQEgACgCDEEBRwRAQQAPCyAAKAIQBEBBAA8LIAJBATYCAEEADwsgAC0ABEHAAHEEQCACQQE2AgBBAA8LIAAoAgwQYSEDCyADDwsgACgCACIEQQpNDQALQQELiQ8BCH8jAEEgayIGJAAgBEEBaiEHQXUhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAgUFCAMGCQABBAcKC0EBIQQDQCAAKAIMIAEgBkEQaiADIAcQXSIFQQBIDQoCQCAEQQFxBEAgAiAGKQMQNwIAIAIgBigCGDYCCAwBCyACQX9Bf0F/IAYoAhAiBCACKAIAIgpqIARBf0YbIApBf0YbIAogBEF/c0sbNgIAIAJBf0F/QX8gBigCFCIEIAIoAgQiCmogBEF/RhsgCkF/RhsgCiAEQX9zSxs2AgQgAiAGKAIYBH8gAigCCEEARwVBAAs2AggLQQAhBCAAKAIQIgANAAsMCQsgACgCDCABIAIgAyAHEF0iBUEASA0IAkAgACgCECIKRQRAIAIoAgQhCSACKAIAIQhBASELDAELQQEhCwNAIAooAgwgASAGQRBqIAMgBxBdIgVBAEgNCiAGKAIQIgAgBigCFCIFRyEJAkACQCAAIAIoAgAiCEkEQCACIAA2AgAgBigCGCEMDAELIAAgCEcNAUEBIQwgBigCGEUNAQsgAiAMNgIIIAAhCAtBACALIAkbIQsgAEF/RiEAIAUgAigCBCIJSwRAIAIgBTYCBCAFIQkLQQAgCyAAGyELIAooAhAiCg0ACwsgCEF/RwRAQQAhBSAIIAlGDQkLIARFIAtBAUZxIQUMCAsgACgCDCEHAkAgAC0ABkEgcUUNACAALQAUQQFxDQBBhn8hBSADLQAEQQFxRQ0IC0EAIQVBACEDIAAoAhAgB0sEQANAQX8gA0EBaiADQX9GGyEDIAcgASgCRCgCABEBACAHaiIHIAAoAhBJDQALCyACQQE2AgggAiADNgIEIAIgAzYCAAwHCyAAKAIQIgUgACgCFEYEQCAFRQRAIAJBATYCCCACQgA3AgBBACEFDAgLIAAoAgwgASACIAMgBxBdIgVBAEgNByAAKAIQIgBFBEAgAkEANgIAIAJBADYCBAwICyACQX8gAigCACIBIABsQX8gAG4iAyABTRs2AgAgAkF/IAIoAgQiAiAAbCACIANPGzYCBAwHCyAAKAIMIAEgAiADIAcQXSIFQQBIDQYgACgCFCEBIAIgACgCECIABH9BfyACKAIAIgMgAGxBfyAAbiADTRsFQQALNgIAIAIgAUEBakECTwR/QX8gAigCBCIAIAFsQX8gAW4gAE0bBSABCzYCBAwGCyAALQAEQcAAcQRAQQAhBSACQQA2AgggAkKAgICAcDcCAAwGCyAAKAIMIAEgAiADIAcQXSEFDAULIAJBATYCCCACQoGAgIAQNwIAQQAhBQwECwJAAkACQCAAKAIQDgQAAQECBgsCQCAAKAIEIgVBBHEEQCACIAApAiw3AgBBACEFDAELIAVBCHEEQCACQoCAgIBwNwIAQQAhBQwBCyAAIAVBCHI2AgQgACgCDCABIAIgAyAHEF0hBSAAIAAoAgRBd3EiATYCBCAFQQBIDQYgACACKAIANgIsIAIoAgQhAyAAIAFBBHI2AgQgACADNgIwIAIoAghFDQAgACABQYSAgBByNgIECyACQQA2AggMBQsgACgCDCABIAIgAyAHEF0hBQwECyAAKAIMIAEgAiADIAcQXSIFQQBIDQMgACgCFCIEBEAgBCABIAZBEGogAyAHEF0iBUEASA0EIAJBf0F/QX8gBkEQaiIEKAIAIgggAigCACIJaiAIQX9GGyAJQX9GGyAJIAhBf3NLGzYCACACQX9Bf0F/IAQoAgQiCCACKAIEIglqIAhBf0YbIAlBf0YbIAkgCEF/c0sbNgIEAkAgBCgCCEUEQCACQQA2AggMAQsgAiACKAIIQQBHNgIICwsCfyAAKAIYIgAEQCAAIAEgBiADIAcQXSIFQQBIDQUgBigCAAwBCyAGQoCAgIAQNwIEQQALIQACQAJAIAAgAigCACIBSQRAIAIgADYCACAGKAIIIQAMAQsgACABRw0BQQEhACAGKAIIRQ0BCyACIAA2AggLIAYoAgQiACACKAIETQ0DIAIgADYCBAwDCyACQQE2AgggAkIANwIAQQAhBQwCCyAAKAIEIgRBgIAIcQ0AIARBwABxBEBBACEFIAJBADYCACAEQYDAAHEEQCACQv////8PNwIEDAMLIAJCADcCBAwCCyADKAKAASIFIANBQGsgBRsiCSAAKAIoIgUgAEEQaiAFGyIMKAIAQQN0aigCACABIAIgAyAHEF0iBUEASA0BAkAgAigCACIEQX9HBEAgBCACKAIERg0BCyACQQA2AggLIAAoAgxBAkgNAUEBIQgDQCAJIAwgCEECdGooAgBBA3RqKAIAIAEgBkEQaiADIAcQXSIFQQBIDQIgBigCECIEQX9HIAYoAhQiCiAERnFFBEAgBkEANgIYCwJAAkAgBCACKAIAIgtJBEAgAiAENgIAIAYoAhghBAwBCyAEIAtHDQFBASEEIAYoAhhFDQELIAIgBDYCCAsgCiACKAIESwRAIAIgCjYCBAsgCEEBaiIIIAAoAgxIDQALDAELQQAhBSACQQA2AgggAkIANwIACyAGQSBqJAAgBQv5AQECfwJAIAJBDkoNAANAIAJBAWohAkEAIQMCQAJAAkACQAJAAkACQAJAIAAoAgAOCwIGAQkDBAUACQcFCQsgACgCECIDRQ0GIAMgASACEF4iA0UNBgwEC0F/IQMgACgCDEF/Rg0DDAQLIAAoAhAgACgCDE0NAiAALQAGQSBxRQ0DQX8hAyAALQAUQQFxDQMMAgsgACgCEA0DDAULIAAoAhANAkF/IQMgACgCBCIEQQhxDQAgACAEQQhyNgIEIAAoAgwgASACEF4hAyAAIAAoAgRBd3E2AgQLIAMPCyABIAA2AgBBAQ8LIAAoAgwhACACQQ9HDQALC0F/C8UEAQV/AkACQANAIAAhAwJAAkACQAJAAkACQAJAAkAgACgCAA4LBAUFAAYHCgIDAQkKCyAAKAIEIgNBgIAIcQ0JIANBwABxDQkgASgCgAEiAiABQUBrIAIbIgUgACgCKCICIABBEGogAhsiBigCAEEDdGooAgAgARBfIQIgACgCDEECSA0JQQEhAwNAIAIgBSAGIANBAnRqKAIAQQN0aigCACABEF8iBCACIARJGyECIANBAWoiAyAAKAIMSA0ACwwJCyAAKAIMIgAtAARBAXFFDQYgACgCJA8LA0BBf0F/QX8gACgCDCABEF8iAyACaiADQX9GGyACQX9GGyACIANBf3NLGyECIAAoAhAiAA0ACwwHCwNAIAMoAgwgARBfIgQgAiAEIAIgBEkbIAAgA0YbIQIgAygCECIDDQALDAYLIAAoAhAgACgCDGsPCyABKAIIKAIMDwsgACgCEEEATA0DIAAoAgwgARBfIQMgACgCECIARQ0DQX8gACADbEF/IABuIANNGw8LAkAgACgCECIDQQFrQQJPBEACQCADDgQABQUCBQsgACgCBCIDQQFxBEAgACgCJA8LIANBCHENBCAAIANBCHI2AgQgACAAKAIMIAEQXyICNgIkIAAgACgCBEF2cUEBcjYCBCACDwsgACgCDCEADAELCyAAKAIMIAEQXyECIAAoAhQiAwRAIAMgARBfIAJqIQILIAAoAhgiAAR/IAAgARBfBUEACyIAIAIgACACSRsPC0EAQX8gACgCDBshAgsgAgvfAQECfwNAQQEhAQJAAkACQAJAAkACQCAAKAIAQQRrDgYCAwQAAAEECwNAIAAoAgwQYCICIAEgASACSBshASAAKAIQIgANAAsMAwsgAC0ABEHAAHFFDQNBAw8LIAAoAhRFDQEMAgsgACgCECICQQFrQQJJDQECQAJAIAIOBAECAgACCyAAKAIMEGAhASAAKAIUIgIEQCACEGAiAiABIAEgAkgbIQELIAAoAhgiAEUNASAAEGAiACABIAAgAUobDwtBA0ECIAAtAARBwABxGyEBCyABDwsgACgCDCEADAALAAvzAQECfwJ/AkACQAJAAkACQAJAIAAoAgBBBGsOBwECAwAABQQFCwNAIAAoAgwQYQRAQQEhAQwGCyAAKAIQIgANAAsMBAsgACgCDBBhIQEMAwsgACgCEEUEQEEAIAAoAgQiAUEIcQ0EGiAAIAFBCHI2AgQgACgCDBBhIQEgACAAKAIEQXdxNgIEDAMLQQEhASAAKAIMEGENAiAAKAIQQQNHBEBBACEBDAMLIAAoAhQiAgRAIAIQYQ0DC0EAIQEgACgCGCIARQ0CIAAQYSEBDAILIAAoAgwiAEUNASAAEGEhAQwBC0EBIAAtAAdBAXENARoLIAELC+4IAQd/IAEoAgghAyACKAIEIQQgASgCBCIGRQRAIAIoAgggA3IhAwsgASADrSACKAIMIAEoAgwiBUECcSAFIAQbciIFrUIghoQ3AggCQCACKAIkIgRBAEwNACAGDQAgAkEYaiIGIAYoAgAgA3KtIAIoAhwgBUECcSAFIAIoAgQbcq1CIIaENwIACwJAIAIoArABQQBMDQAgASgCBA0AIAIoAqQBDQAgAkGoAWoiAyADKAIAIAEoAghyNgIACyABKAJQIQUgASgCICEDIAIoAgQEQCABQQA2AiAgAUEANgJQCyACQRBqIQggAUFAayEJAkAgBEEATA0AAn8gAwRAIAJBKGoiAyAEaiEHIAEoAiQhBANAIAMgACgCABEBACIGIARqQRhMBEACQCAGQQBMDQBBACEFIAMgB08NAANAIAEgBGogAy0AADoAKCAEQQFqIQQgA0EBaiEDIAVBAWoiBSAGTg0BIAMgB0kNAAsLIAMgB0kNAQsLIAEgBDYCJEEAIQQgAyAHRgRAIAIoAiAhBAsgASAENgIgIAFBHGohBSABQRhqDAELIAVFDQEgAkEoaiIDIARqIQcgASgCVCEEA0AgAyAAKAIAEQEAIgYgBGpBGEwEQAJAIAZBAEwNAEEAIQUgAyAHTw0AA0AgASAEaiADLQAAOgBYIARBAWohBCADQQFqIQMgBUEBaiIFIAZODQEgAyAHSQ0ACwsgAyAHSQ0BCwsgASAENgJUQQAhBCADIAdGBEAgAigCICEECyABIAQ2AlAgAUHMAGohBSABQcgAagsiAyADNQIAIAIoAhwgBSgCAEECcXJBACAEG61CIIaENwIAIAhBADoAGCAIQgA3AhAgCEIANwIIIAhCADcCAAsgACAJIAgQQSAAIAkgAkFAaxBBIAFB8ABqIQMCQCABKAKEAUEASgRAIAIoAgRFDQEgASgCdEUEQCAAIAFBEGogAxBBDAILIAAgCSADEEEMAQsgAigChAFBAEwNACADIAIpAnA3AgAgAyACKQKYATcCKCADIAIpApABNwIgIAMgAikCiAE3AhggAyACKQKAATcCECADIAIpAng3AggLAkAgAigCsAEiA0UNACABQaABaiEEIAJBoAFqIQUCQCABKAKwASIGRQ0AQYCAAiAGbSEGQYCAAiADbSIDQQBMDQEgBkEATA0AQQAhBwJ/QQAgASgCpAEiCEF/Rg0AGkEBIAggBCgCAGsiCEHjAEsNABogCEEBdEGwGWouAQALIAZsIQYCQCACKAKkASIAQX9GDQBBASEHIAAgBSgCAGsiAEHjAEsNACAAQQF0QbAZai4BACEHCyADIAdsIgMgBkoNACADIAZIDQEgBSgCACAEKAIATw0BCyAEIAVBlAIQpgEaCyABQX9Bf0F/IAIoAgAiAyABKAIAIgRqIANBf0YbIARBf0YbIAQgA0F/c0sbNgIAIAFBf0F/QX8gAigCBCIDIAEoAgQiBGogA0F/RhsgBEF/RhsgBCADQX9zSxs2AgQLvwMBA38gACAAKAIIIAEoAghxNgIIIABBDGoiAyADKAIAIAEoAgxxNgIAIABBEGogAUEQaiACEGUgAEFAayABQUBrIAIQZSAAQfAAaiABQfAAaiACEGUCQCAAKAKwAUUNACAAQaABaiEDAkAgASgCsAEEQCAAKAKkASIFIAEoAqABIgRPDQELIANBAEGUAhCoARoMAQsgAigCCCECIAQgAygCAEkEQCADIAQ2AgALIAEoAqQBIgMgBUsEQCAAIAM2AqQBCwJ/AkAgAS0AtAEEQCAAQQE6ALQBDAELIAAtALQBDQBBAAwBC0EUQQUgAigCDEEBShsLIQRBASECA0AgACACakG0AWohAwJAAkAgASACai0AtAEEQCADQQE6AAAMAQsgAy0AAEUNAQtBBCEDIAJB/wBNBH8gAkEBdEGAG2ouAQAFIAMLIARqIQQLIAJBAWoiAkGAAkcNAAsgACAENgKwASAAQagBaiICIAIoAgAgASgCqAFxNgIAIABBrAFqIgIgAigCACABKAKsAXE2AgALIAEoAgAiAiAAKAIASQRAIAAgAjYCAAsgASgCBCICIAAoAgRLBEAgACACNgIECwvZBAEFfwNAQQAhAgJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4KAgMDBAYHCQABBQkLA0BBf0F/QX8gACgCDCABEGQiAyACaiADQX9GGyACQX9GGyACIANBf3NLGyICIQMgACgCECIADQALDAgLA0AgAiAAKAIMIAEQZCIDIAIgA0sbIgIhAyAAKAIQIgANAAsMBwsgACgCECAAKAIMaw8LIAEoAggoAggPCyAAKAIEIgJBgIAIcQ0EIAJBwABxBEAgAkESdEEfdQ8LIAAoAgxBAEwNBCABKAKAASICIAFBQGsgAhshBCAAKAIoIgIgAEEQaiACGyEFQQAhAgNAIAMgBCAFIAJBAnRqKAIAQQN0aigCACABEGQiBiADIAZLGyEDIAJBAWoiAiAAKAIMSA0ACwwECyAALQAEQcAAcUUNBEF/DwsgACgCFEUNASAAKAIMIAEQZCICRQ0BAkAgACgCFCIDQQFqDgIDAgALQX8gAiADbEF/IANuIAJNGw8LIAAoAhAiAkEBa0ECSQ0CAkACQCACDgQAAwMBAwsgACgCBCICQQJxBEAgACgCKA8LQX8hAyACQQhxDQIgACACQQhyNgIEIAAgACgCDCABEGQiAjYCKCAAIAAoAgRBdXFBAnI2AgQgAg8LIAAoAgwgARBkIQIgACgCFCIDBEBBf0F/QX8gAyABEGQiAyACaiADQX9GGyACQX9GGyACIANBf3NLGyECCyAAKAIYIgAEfyAAIAEQZAVBAAsiACACIAAgAksbDwtBACEDCyADDwsgACgCDCEADAALAAu8AgEFfwJAIAEoAhRFDQAgACgCFCIERQ0AIAAoAgAgASgCAEcNACAAKAIEIAEoAgRHDQACQCAEQQBMBEAMAQsgAEEYaiEGA0AgAyABKAIUTg0BIAAgA2otABggASADai0AGEcNAUEBIQQgAyAGaiACKAIIKAIAEQEAIgVBAUoEQANAIAAgAyAEaiIHai0AGCABIAdqLQAYRw0DIARBAWoiBCAFRw0ACwsgAyAFaiIDIAAoAhRIDQALCwJ/AkAgASgCEEUNACADIAEoAhRIDQAgAyAAKAIUSA0AIAAoAhBFDAELIABBADYCEEEBCyEEIAAgAzYCFCAAIAAoAgggASgCCHE2AgggAEEMaiIAQQAgACgCACABKAIMcSAEGzYCAA8LIABCADcCACAAQQA6ABggAEIANwIQIABCADcCCAuaAgEGfyAAKAIQIgJBAEoEQANAIAAoAhQgAUECdGooAgAiAwRAIAMQZiAAKAIQIQILIAFBAWoiASACSA0ACwsCQCAAKAIMIgJBAEwNACACQQNxIQRBACEDQQAhASACQQFrQQNPBEAgAkF8cSEGA0AgAUECdCICIAAoAhRqQQA2AgAgACgCFCACQQRyakEANgIAIAAoAhQgAkEIcmpBADYCACAAKAIUIAJBDHJqQQA2AgAgAUEEaiEBIAVBBGoiBSAGRw0ACwsgBEUNAANAIAAoAhQgAUECdGpBADYCACABQQFqIQEgA0EBaiIDIARHDQALCyAAQX82AgggAEEANgIQIABCfzcCACAAKAIUIgEEQCABEMwBCyAAEMwBC54BAQN/IAAgATYCBEEKIAEgAUEKTBshAQJAAkAgACgCACIDRQRAIAAgAUECdCICEMsBIgM2AgggACACEMsBIgQ2AgxBeyECIANFDQIgBA0BDAILIAEgA0wNASAAIAAoAgggAUECdCICEM0BNgIIIAAgACgCDCACEM0BIgM2AgxBeyECIANFDQEgACgCCEUNAQsgACABNgIAQQAhAgsgAguBlQEBJn8jAEHgAWsiCCEHIAgkACAAKAIAIQYCQCAFRQRAIAAoAgwiCkUEQEEAIQgMAgsgCkEDcSELIAAoAgQhDEEAIQgCQCAKQQFrQQNJBEBBACEKDAELIApBfHEhGEEAIQoDQCAGIAwgCkECdCITaigCAEECdEGAHWooAgA2AgAgBiAMIBNBBHJqKAIAQQJ0QYAdaigCADYCFCAGIAwgE0EIcmooAgBBAnRBgB1qKAIANgIoIAYgDCATQQxyaigCAEECdEGAHWooAgA2AjwgCkEEaiEKIAZB0ABqIQYgEkEEaiISIBhHDQALCyALRQ0BA0AgBiAMIApBAnRqKAIAQQJ0QYAdaigCADYCACAKQQFqIQogBkEUaiEGIAlBAWoiCSALRw0ACwwBCyAAKAJQIR0gACgCRCEOIAUoAgghDSAFKAIoIgogCigCGEEBajYCGCAFKAIcIR4gBSgCICIKBEAgCiAFKAIkayIKIB4gCiAeSRshHgsgACgCHCEWIAAoAjghJgJAIAUoAgAiEgRAIAdBADYCmAEgByASNgKUASAHIBIgBSgCEEECdGoiCjYCjAEgByAKNgKQASAHIAogBSgCBEEUbGo2AogBDAELIAUoAhAiCkECdCIJQYAZaiEMIApBM04EQCAHQQA2ApgBIAcgDBDLASISNgKUASASRQRAQXshCAwDCyAHIAkgEmoiCjYCjAEgByAKNgKQASAHIApBgBlqNgKIAQwBCyAHQQE2ApgBIAggDEEPakFwcWsiEiQAIAcgCSASaiIKNgKQASAHIBI2ApQBIAcgCjYCjAEgByAKQYAZajYCiAELIBIgFkECdGpBBGohE0EBIQggFkEASgRAIBZBA3EhCyAWQQFrQQNPBEAgFkF8cSEYQQAhDANAIBMgCEECdCIKakF/NgIAIAogEmpBfzYCACATIApBBGoiCWpBfzYCACAJIBJqQX82AgAgEyAKQQhqIglqQX82AgAgCSASakF/NgIAIBMgCkEMaiIKakF/NgIAIAogEmpBfzYCACAIQQRqIQggDEEEaiIMIBhHDQALCyALBEBBACEKA0AgEyAIQQJ0IgxqQX82AgAgDCASakF/NgIAIAhBAWohCCAKQQFqIgogC0cNAAsLIAcoAowBIQoLIApBAzYCACAKQaCaETYCCCAHIApBFGo2AowBIA1BgICAEHEhJyANQRBxISIgDUEgcSEoIA1BgICAAnEhKSANQYAEcSEjIA1BgIiABHEhKiANQYCAgARxISQgDUGACHEhISANQYCAgAhxIStBfyEbIAdBvwFqISVBACEYIAQiCSEgIAMhFAJAA0BBASEKQQAhDCAbIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBiILKAIAQQJrDlMBAgMEBQYHCAkKCwwNDg8SExQZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6O15dXFpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQUBiZAALAkAgBCAJRw0AIChFDQAgBCEJQX8hGwxiCyAJIARrIgYgGyAGIBtKGyEQAkAgBiAbTA0AICJFDQAgBSgCLCIQIAZIBEAgBSAENgIwIAUgBjYCLCAbIAYgAyAJSxshEAwBCyADIAlLDWIgBSgCMCAERw1iCwJAIAUoAgwiEUUNACARKAIIIg0gCSAgIAkgIEkbIiAgAWsiDzYCACARKAIMIgsgCSABayIXNgIAQQEhBiAWQQBKBEAgBygCkAEhGwNAQX8hCAJ/IBMgBkECdCIMaiIKKAIAQX9HBEAgDCASaiEIIA0gBkECdGpBAUEBIAZ0IAZBIE8bIgwgACgCMHEEfyAbIAgoAgBBFGxqQQhqBSAICygCACABazYCACAAKAI0IAxxBH8gGyAKKAIAQRRsakEIagUgCgsoAgAgAWshCCALDAELIAsgDGpBfzYCACANCyAGQQJ0aiAINgIAIAYgFkchCCAGQQFqIQYgCA0ACwsgACgCLEUNAAJAIBEoAhAiBkUEQEEYEMsBIggEQCAIQgA3AhAgCEL/////DzcCCCAIQn83AgALIBEgCDYCECAIIgYNAUF7IQgMZwsgBigCECIKQQBKBEBBACEIA0AgBigCFCAIQQJ0aigCACIMBEAgDBBmIAYoAhAhCgsgCEEBaiIIIApIDQALCwJAIAYoAgwiCkEATA0AIApBA3EhDUEAIQxBACEIIApBAWtBA08EQCAKQXxxIRtBACELA0AgCEECdCIKIAYoAhRqQQA2AgAgBigCFCAKQQRyakEANgIAIAYoAhQgCkEIcmpBADYCACAGKAIUIApBDHJqQQA2AgAgCEEEaiEIIAtBBGoiCyAbRw0ACwsgDUUNAANAIAYoAhQgCEECdGpBADYCACAIQQFqIQggDEEBaiIMIA1HDQALCyAGQX82AgggBkEANgIQIAZCfzcCACARKAIQIQgLIAYgFzYCCCAGIA82AgQgBkEANgIAIAcgBygCkAE2AoQBIAggB0GEAWogBygCjAEgASAAEGkiCEEASA1kCyAnRQRAIBAhCAxkC0HwvxIoAgAiBkUEQCAQIQgMZAsgASACIAQgESAFKAIoKAIMIAYRBQAiCEEASA1jIBBBfyAiGyEbDGELIBQgCWtBAEwNYCALLQAEIAktAABHDWAgC0EUaiEGIAlBAWohCQxhCyAUIAlrQQJIDV8gCy0ABCAJLQAARw1fIAstAAUgCS0AAUYNOSAJQQFqIQkMXwsgFCAJa0EDSA1eIAstAAQgCS0AAEcNXiALLQAFIAktAAFHBEAgCUEBaiEJDF8LIAstAAYgCS0AAkcEQCAJQQJqIQkMXwsgC0EUaiEGIAlBA2ohCQxfCyAUIAlrQQRIDV0gCy0ABCAJLQAARw1dIAstAAUgCS0AAUcEQCAJQQFqIQkMXgsgCy0ABiAJLQACRwRAIAlBAmohCQxeCyALLQAHIAktAANHBEAgCUEDaiEJDF4LIAtBFGohBiAJQQRqIQkMXgsgFCAJa0EFSA1cIAstAAQgCS0AAEcNXCALLQAFIAktAAFHBEAgCUEBaiEJDF0LIAstAAYgCS0AAkcEQCAJQQJqIQkMXQsgCy0AByAJLQADRwRAIAlBA2ohCQxdCyALLQAIIAktAARHBEAgCUEEaiEJDF0LIAtBFGohBiAJQQVqIQkMXQsgCygCCCIGIBQgCWtKDVsgCygCBCEIAkADQCAGQQBMDQEgBkEBayEGIAktAAAhCiAILQAAIQwgCUEBaiINIQkgCEEBaiEIIAogDEYNAAsgDSEJDFwLIAtBFGohBgxcCyAUIAlrQQJIDVogCy0ABCAJLQAARw1aIAstAAUgCS0AAUcEQCAJQQFqIQkMWwsgC0EUaiEGIAlBAmohCQxbCyAUIAlrQQRIDVkgCy0ABCAJLQAARw1ZIAstAAUgCS0AAUcEQCAJQQFqIQkMWgsgCy0ABiAJLQACRwRAIAlBAmohCQxaCyALLQAHIAktAANHBEAgCUEDaiEJDFoLIAtBFGohBiAJQQRqIQkMWgsgFCAJa0EGSA1YIAstAAQgCS0AAEcNWCALLQAFIAktAAFHBEAgCUEBaiEJDFkLIAstAAYgCS0AAkcEQCAJQQJqIQkMWQsgCy0AByAJLQADRwRAIAlBA2ohCQxZCyALLQAIIAktAARHBEAgCUEEaiEJDFkLIAstAAkgCS0ABUcEQCAJQQVqIQkMWQsgC0EUaiEGIAlBBmohCQxZCyALKAIIIghBAXQiBiAUIAlrSg1XIAhBAEoEQCAGIAlqIQwgCygCBCEGA0AgBi0AACAJLQAARw1ZIAYtAAEgCS0AAUcNNiAJQQJqIQkgBkECaiEGIAhBAUshCiAIQQFrIQggCg0ACyAMIQkLIAtBFGohBgxYCyALKAIIIghBA2wiBiAUIAlrSg1WIAhBAEoEQCAGIAlqIQwgCygCBCEGA0AgBi0AACAJLQAARw1YIAYtAAEgCS0AAUcNMyAGLQACIAktAAJHDTQgCUEDaiEJIAZBA2ohBiAIQQFLIQogCEEBayEIIAoNAAsgDCEJCyALQRRqIQYMVwsgCygCCCALKAIMbCIGIBQgCWtKDVUgBkEASgRAIAYgCWohDCALKAIEIQgDQCAILQAAIAktAABHDVcgCUEBaiEJIAhBAWohCCAGQQFKIQogBkEBayEGIAoNAAsgDCEJCyALQRRqIQYMVgsgFCAJa0EATA1UIAsoAgQgCS0AACIGQQN2QRxxaigCACAGdkEBcUUNVCAJIA4oAgARAQBBAUcNVCALQRRqIQYgCUEBaiEJDFULIBQgCWsiBkEATA1TIAkgDigCABEBAEEBRg1TDAELIBQgCWsiBkEATA1SIAkgDigCABEBAEEBRg0BCyAGIAkgDigCABEBACIISA1RIAkgCCAJaiIIIA4oAhQRAAAhBiALKAIEIAYQU0UEQCAIIQkMUgsgC0EUaiEGIAghCQxSCyALKAIIIAktAAAiBkEDdkEccWooAgAgBnZBAXFFDVAgC0EUaiEGIAlBAWohCQxRCyAUIAlrQQBMDU8gCygCBCAJLQAAIgZBA3ZBHHFqKAIAIAZ2QQFxDU8gC0EUaiEGIAkgDigCABEBACAJaiEJDFALIBQgCWsiBkEATA1OIAkgDigCABEBAEEBRw0BIAlBAWohCAwCCyAUIAlrIgZBAEwNTSAJIA4oAgARAQBBAUYNAwsgAiEIIAkgDigCABEBACIKIAZKDQAgCSAJIApqIgggDigCFBEAACEGIAsoAgQgBhBTDQELIAtBFGohBiAIIQkMTAsgCCEJDEoLIAsoAgggCS0AACIGQQN2QRxxaigCACAGdkEBcQ1JIAtBFGohBiAJQQFqIQkMSgsgFCAJayIGQQBMDUggBiAJIA4oAgARAQAiCEgNSCAJIAIgDigCEBEAAA1IIAtBFGohBiAIIAlqIQkMSQsgFCAJayIGQQBMDUcgBiAJIA4oAgARAQAiCEgNRyALQRRqIQYgCCAJaiEJDEgLIAtBFGohBiAJIBRPDUcDQCAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDUsgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAggBjYCCCAIQQM2AgAgCCAJNgIMIAcgCEEUajYCjAEgCSAOKAIAEQEAIgggFCAJa0oNRyAJIAIgDigCEBEAAA1HIAggCWoiCSAUSQ0ACwxHCyALQRRqIQYgCSAUTw1GA0AgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA1KIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAY2AgggCEEDNgIAIAggCTYCDCAHIAhBFGo2AowBQQEhCCAJIA4oAgARAQAiCkECTgRAIAoiCCAUIAlrSg1HCyAIIAlqIgkgFEkNAAsMRgsgC0EUaiEGIAkgFE8NRSALLQAEIQoDQCAJLQAAIApB/wFxRgRAIAcoAogBIAcoAowBIghrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNSiAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhCAsgCCAGNgIIIAhBAzYCACAIIAk2AgwgByAIQRRqNgKMAQsgCSAOKAIAEQEAIgggFCAJa0oNRSAJIAIgDigCEBEAAA1FIAggCWoiCSAUSQ0ACwxFCyALQRRqIQYgCSAUTw1EIAstAAQhDANAIAktAAAgDEH/AXFGBEAgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA1JIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAY2AgggCEEDNgIAIAggCTYCDCAHIAhBFGo2AowBC0EBIQggCSAOKAIAEQEAIgpBAk4EQCAKIgggFCAJa0oNRQsgCCAJaiIJIBRJDQALDEQLIBQgCWtBAEwNQiAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ1CIAtBFGohBiAJIA4oAgARAQAgCWohCQxDCyAUIAlrQQBMDUEgDiAJIAIQhwFFDUEgC0EUaiEGIAkgDigCABEBACAJaiEJDEILIBQgCWtBAEwNQCAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAADUAgC0EUaiEGIAkgDigCABEBACAJaiEJDEELIBQgCWtBAEwNPyAOIAkgAhCHAQ0/IAtBFGohBiAJIA4oAgARAQAgCWohCQxACyALKAIEIQYCQCABIAlGBEAgFCABa0EATARAIAEhCQxBCyAGRQRAIA4oAjAhBiABIAIgDigCFBEAAEEMIAYRAAANAiABIQkMQQsgDiABIAIQhwENASABIQkMQAsgDiABIAkQeCEIIAIgCUYEQCAGRQRAIA4oAjAhBiAIIAIgDigCFBEAAEEMIAYRAAANAiACIQkMQQsgDiAIIAIQhwENASACIQkMQAsCfyAGRQRAIA4oAjAhBiAJIAIgDigCFBEAAEEMIAYRAAAhBiAOKAIwIQogCCACIA4oAhQRAABBDCAKEQAADAELIA4gCSACEIcBIQYgDiAIIAIQhwELIAZGDT8LIAtBFGohBgw/CyALKAIEIQYCQCABIAlGBEAgASAUTw0BIAZFBEAgDigCMCEGIAEgAiAOKAIUEQAAQQwgBhEAAEUNAiABIQkMQAsgDiABIAIQhwFFDQEgASEJDD8LIA4gASAJEHghCCACIAlGBEAgBkUEQCAOKAIwIQYgCCACIA4oAhQRAABBDCAGEQAARQ0CIAIhCQxACyAOIAggAhCHAUUNASACIQkMPwsCfyAGRQRAIA4oAjAhBiAJIAIgDigCFBEAAEEMIAYRAAAhBiAOKAIwIQogCCACIA4oAhQRAABBDCAKEQAADAELIA4gCSACEIcBIQYgDiAIIAIQhwELIAZHDT4LIAtBFGohBgw+CyAJIBRPDTwCQAJAAkAgCygCBEUEQCAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ1AIAEgCUYNASAOIAEgCRB4IQYgDigCMCEIIAYgAiAOKAIUEQAAQQwgCBEAAEUNAwxACyAOIAkgAhCHAUUNPyABIAlHDQELIAtBFGohBgw/CyAOIA4gASAJEHggAhCHAQ09CyALQRRqIQYMPQsgASAJRgRAIAEhCQw8CyALKAIEIQYgDiABIAkQeCEIAkAgBkUEQCAOKAIwIQYgCCACIA4oAhQRAABBDCAGEQAARQ09IAIgCUYNASAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ0BDD0LIA4gCCACEIcBRQ08IAIgCUYNACAOIAkgAhCHAQ08CyALQRRqIQYMPAsgDiABIAkQeCEGQXMhCAJ/AkACQCALKAIEDgIAAT8LAn9BASEPAkACQCABIAkiCEYNACACIAhGDQAgBkUEQCAOIAEgCBB4IgZFDQELIAYgAiAOKAIUEQAAIQwgCCACIA4oAhQRAAAhDSAOLQBMQQJxRQ0BQcsKIQ9BACEIA0AgCCAPakEBdiIQQQFqIAggEEEMbEHAmAFqKAIEIAxJIgobIgggDyAQIAobIg9JDQALQQAhDwJ/QQAgCEHKCksNABpBACAIQQxsIghBwJgBaigCACAMSw0AGiAIQcCYAWooAggLIQxBywohCANAIAggD2pBAXYiEEEBaiAPIBBBDGxBwJgBaigCBCANSSIKGyIPIAggECAKGyIISQ0AC0EAIQgCQCAPQcoKSw0AIA9BDGwiD0HAmAFqKAIAIA1LDQAgD0HAmAFqKAIIIQgLAkAgCCAMckUNAEEAIQ8gDEEBRiAIQQJGcQ0BIAxBAWtBA0kNACAIQQFrQQNJDQACQCAMQQ1JDQAgCEENSQ0AIAxBDUYgCEEQR3ENAgJAAkAgDEEOaw4EAAEBAAELIAhBfnFBEEYNAwsgCEEQRw0BIAxBD2tBAk8NAQwCCyAIQQhNQQBBASAIdEGQA3EbDQECQAJAIAxBBWsOBAMBAQABC0HA6gcgDRBTRQ0BA0AgDiABIAYQeCIGRQ0CQcsKIQhBACEPQcDqByAGIAIgDigCFBEAACINEFMNAwNAIAggD2pBAXYiEEEBaiAPIBBBDGxBwJgBaigCBCANSSIKGyIPIAggECAKGyIISQ0ACyAPQcoKSw0CIA9BDGwiCEHAmAFqKAIAIA1LDQIgCEHAmAFqKAIIQQRGDQALDAELIAxBBkcNACAIQQZHDQAgDiABIAYQeCIGRQ0BA0BBywohEEEAIQggBiACIA4oAhQRAAAhDANAIAggEGpBAXYiCkEBaiAIIApBDGxBwJgBaigCBCAMSSINGyIIIBAgCiANGyIQSQ0ACwJAIAhBygpLDQAgCEEMbCIIQcCYAWooAgAgDEsNACAIQcCYAWooAghBBkcNACAPQQFqIQ8gDiABIAYQeCIGDQELCyAPQQFxIQhBACEPIAhFDQELQQEhDwsgDwwBCyAMQQ1HIA1BCkdyCwwBCyMAQRBrIhAkAAJAIAEgCUYNACACIAlGDQAgBkUEQCAOIAEgCRB4IgZFDQELIAYgAiAOKAIUEQAAIQ9BhwghCEEAIQogCSACIA4oAhQRAAAhDQNAIAggCmpBAXYiFUEBaiAKIBVBDGxB4DdqKAIEIA9JIgwbIgogCCAVIAwbIghJDQALQQAhCAJ/QQAgCkGGCEsNABpBACAKQQxsIgpB4DdqKAIAIA9LDQAaIApB4DdqKAIICyEPQYcIIQoDQCAIIApqQQF2IhVBAWogCCAVQQxsQeA3aigCBCANSSIMGyIIIAogFSAMGyIKSQ0AC0EAIRUCQCAIQYYISw0AIAhBDGwiCkHgN2ooAgAgDUsNACAKQeA3aigCCCEVCwJAIA8gFXJFDQACQCAPQQJHDQAgFUEJRw0AQQAhCgwCC0EBIQogD0ENTUEAQQEgD3RBhMQAcRsNASAVQQ1NQQBBASAVdEGExABxGw0BAkAgD0ESRgRAQcDqByANEFNFDQFBACEKDAMLIA9BEUcNACAVQRFHDQBBACEKDAILAkAgFUESSw0AQQEgFXRB0IAQcUUNAEEAIQoMAgsCQCAPQRJLDQBBASAPdEHQgBBxRQ0AIA4gASAGEHgiCkUNAANAIAoiBiACIA4oAhQRAAAQlQEiD0ESSw0BQQEgD3RB0IAQcUUNASAOIAEgBhB4IgoNAAsLAkACQAJAAkAgD0EQSw0AQQEgD3QiCkGAqARxRQRAIApBggFxRQ0BIBVBEEsNAUEBIBV0IgpBgKgEcUUEQCAKQYIBcUUNAkEAIQoMBwsgDiAJIAIgEEEMaiAQQQhqEJYBQQFHDQFBACEKIBAoAghBAWsOBwYBAQEBAQYBCwJAIBVBAWsOBwACAgICAgACCyAOIAEgBhB4IgpFDQIDQCAKIgYgAiAOKAIUEQAAEJUBIghBEksNAUEBIAh0QdCAEHFFBEBBASAIdEGCAXFFDQJBACEKDAcLIA4gASAGEHgiCg0AC0EAIQogCEEBaw4HBQAAAAAABQALIA9BB0YEQEEAIQoCQCAVQQNrDg4AAgICAgICAgICAgICBgILIA4gCSACIBBBDGogEEEIahCWAUEBRw0EIBAoAghBB0cNBAwFCyAPQQNHDQAgFUEHRw0AIA4gASAGEHgiCEUEQEEAIQxBACEIDAMLA0BBACEKAkAgCCIGIAIgDigCFBEAABCVASIMQQRrDg8AAgAGAgICAgICAgICAgACCyAOIAEgBhB4IggNAAsgDEEHRg0ECyAVQQ5HDQAgD0EQSw0AQQEgD3QiCkGCgQFxBEBBACEKDAQLIApBgLAEcUUNACAOIAEgBhB4IghFDQADQEEAIQoCQCAIIgYgAiAOKAIUEQAAEJUBIgxBBGtBH3cOCAAAAgICBQIAAgsgDiABIAYQeCIIDQALIAxBDkcNAAwDCyAPQQ5GBEBBACEIQQEhDCAVQRBLDQFBASAVdCINQYCwBHFFBEBBACEKIA1BggFxRQ0CDAQLIA4gCSACIBBBDGogEEEIahCWAUEBRw0BQQAhCiAQKAIIQQ5HDQEMAwsgD0EIRiEIQQAhDCAPQQhHDQBBACEKIBVBCEYNAgsCQCAPQQVHIgogD0EBRiAIciAMckF/cyAPQQdHcXENACAVQQVHDQBBACEKDAILIApFBEAgFUEOSw0BQQAhCkEBIBV0QYKDAXFFDQEMAgsgD0EPRw0AIBVBD0cNAEEAIQogDiABIAYQeCIIRQ0BQQAhFQNAIAggAiAOKAIUEQAAEJUBQQ9GBEAgFUEBaiEVIA4gASAIEHgiCA0BCwsgFUEBcUUNAQtBASEKCyAQQRBqJAAgCgsiBkUgBiALKAIIG0UNOiALQRRqIQYMOwsgASAJRw05ICMNOSApDTkgC0EUaiEGIAEhCQw6CyACIAlHDTggIQ04ICQNOCALQRRqIQYgAiEJDDkLIAEgCUYEQCAjBEAgASEJDDkLIAtBFGohBiABIQkMOQsgAiAJRgRAIAIhCQw4CyAOIAEgCRB4IAIgDigCEBEAAEUNNyALQRRqIQYMOAsgAiAJRgRAICEEQCACIQkMOAsgC0EUaiEGIAIhCQw4CyAJIAIgDigCEBEAAEUNNiALQRRqIQYMNwsgAiAJRgRAICoEQCACIQkMNwsgC0EUaiEGIAIhCQw3CyAJIAIgDigCEBEAAEUNNSAJIA4oAgARAQAgCWogAkcNNSAhDTUgJA01IAtBFGohBgw2CwJAAkACQCALKAIEDgIAAQILIAkgBSgCFEcNNiArRQ0BDDYLIAkgFEcNNQsgC0EUaiEGDDULIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDTcgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCTYCCCAGIAo2AgQgBkEQNgIAIAYgEiAKQQJ0IghqIgooAgA2AgwgBiAIIBNqIggoAgA2AhAgCiAGIAcoApABa0EUbTYCACAIQX82AgAgByAHKAKMAUEUajYCjAEgC0EUaiEGDDQLIBIgCygCBEECdGogCTYCACALQRRqIQYMMwsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNNSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiAJNgIIIAYgCjYCBCAGQbCAAjYCACAGIBIgCkECdCIIaigCADYCDCAGIAggE2oiCCgCADYCECAIIAYgBygCkAFrQRRtNgIAIAcgBygCjAFBFGo2AowBIAtBFGohBgwyCyATIAsoAgRBAnRqIAk2AgAgC0EUaiEGDDELIAsoAgQhESAHKAKMASIQIQYCQCAQIAcoApABIg1NDQADQAJAIAYiCEEUayIGKAIAIgpBgIACcQRAIAwgCEEQaygCACARRmohDAwBCyAKQRBHDQAgCEEQaygCACARRw0AIAxFDQIgDEEBayEMCyAGIA1LDQALCyAHIAY2AoQBIAYgDWtBFG0hBiAHKAKIASAQa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDTMgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIRAgBygCkAEhDQsgECAJNgIIIBAgETYCBCAQQbCAAjYCACAQIBIgEUECdCIIaiIKKAIANgIMIBAgCCATaiIIKAIANgIQIAggECANa0EUbTYCACAHIAcoAowBQRRqNgKMASAKIAY2AgAgC0EUaiEGDDALIBMgCygCBCIRQQJ0aiAJNgIAAkAgBygCjAEiBiAHKAKQASINTQ0AA0ACQCAGIghBFGsiBigCACIKQYCAAnEEQCAMIAhBEGsoAgAgEUZqIQwMAQsgCkEQRw0AIAhBEGsoAgAgEUcNACAMRQ0CIAxBAWshDAsgBiANSw0ACwsgByAGNgKEASAAKAIwIQgCQAJAAkAgEUEfTARAIAggEXZBAXENAgwBCyAIQQFxDQELIBIgEUECdGogBigCCDYCAAwBCyASIBFBAnRqIAYgDWtBFG02AgALIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNMiAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiARNgIEIAZBgIICNgIAIAcgBkEUajYCjAEgC0EUaiEGDC8LQQIhCgwBCyALKAIEIQoLIBMgCkECdCIGaiIIKAIAIgxBf0YNKyAGIBJqIgYoAgAiDUF/Rg0rIAAoAjAhEQJ/IApBH0wEQCAHKAKQASIQIA1BFGxqQQhqIAYgEUEBIAp0IgpxGyEGIAAoAjQgCnEMAQsgBygCkAEiECANQRRsakEIaiAGIBFBAXEbIQYgACgCNEEBcQshCgJAIBAgDEEUbGpBCGogCCAKGygCACAGKAIAIghrIgZFDQAgFCAJayAGSA0sA0AgBkEATA0BIAZBAWshBiAILQAAIQogCS0AACEMIAlBAWoiDSEJIAhBAWohCCAKIAxGDQALIA0hCQwsCyALQRRqIQYMLAsgEyALKAIEIghBAnQiBmoiCigCACIMQX9GDSogBiASaiIGKAIAIg1Bf0YNKiAAKAIwIRECfyAIQR9MBEAgBygCkAEiECANQRRsakEIaiAGIBFBASAIdCIIcRshBiAAKAI0IAhxDAELIAcoApABIhAgDUEUbGpBCGogBiARQQFxGyEGIAAoAjRBAXELIQggECAMQRRsakEIaiAKIAgbKAIAIgggBigCACIGRwRAIAggBmsiCCAUIAlrSg0rIAcgBjYC3AEgByAJNgKcAQJAIAhBAEwEQCAJIQgMAQsgBiAIaiERIAggCWohDQNAIB0gB0HcAWogESAHQcABaiAOKAIgEQMAIgYgHSAHQZwBaiANIAdBoAFqIA4oAiARAwBHDS0gBkEASgRAIAYgJWohDCAHQaABaiEIIAdBwAFqIQYDQCAGLQAAIAgtAABHDS8gCEEBaiEIIAYgDEchCiAGQQFqIQYgCg0ACwsgBygC3AEhBiANIAcoApwBIghLBEAgBiARTw0CDAELCyAGIBFJDSwLIAghCQsgC0EUaiEGDCsLIAsoAggiEEEATARAQQAhEQwpCyALQQRqIQ8gFCAJayEVQQAhESAHKAKQASEXA0AgDyEGAkAgEyAQQQFHBH8gDygCACARQQJ0agUgBgsoAgAiCEECdCIGaiIKKAIAIgxBf0YNACAGIBJqIgYoAgAiDUF/Rg0AIAAoAjAhGiAXIAxBFGxqQQhqIAoCfyAIQR9MBEAgFyANQRRsakEIaiAGIBpBASAIdCIIcRshBiAAKAI0IAhxDAELIBcgDUEUbGpBCGogBiAaQQFxGyEGIAAoAjRBAXELGygCACAGKAIAIgprIgZFDSogCSEIIAYgFUoNAANAIAZBAEwEQCAIIQkMLAsgBkEBayEGIAotAAAhDCAILQAAIQ0gCEEBaiEIIApBAWohCiAMIA1GDQALCyARQQFqIhEgEEcNAAsMKQsgCygCCCIRQQBMBEBBACENDCYLIAtBBGohECAUIAlrIRVBACENIAcoApABIRoDQCAQIQYCQCATIBFBAUcEfyAQKAIAIA1BAnRqBSAGCygCACIIQQJ0IgZqIgooAgAiDEF/Rg0AIAYgEmoiBigCACIPQX9GDQAgACgCMCEXIBogDEEUbGpBCGogCgJ/IAhBH0wEQCAaIA9BFGxqQQhqIAYgF0EBIAh0IghxGyEGIAAoAjQgCHEMAQsgGiAPQRRsakEIaiAGIBdBAXEbIQYgACgCNEEBcQsbKAIAIgggBigCACIGRg0nIAggBmsiCCAVSg0AIAcgBjYC3AEgByAJNgKcASAIQQBMDScgBiAIaiEXIAggCWohDwNAIB0gB0HcAWogFyAHQcABaiAOKAIgEQMAIgYgHSAHQZwBaiAPIAdBoAFqIA4oAiARAwBHDQEgBkEASgRAIAYgJWohDCAHQaABaiEIIAdBwAFqIQYDQCAGLQAAIAgtAABHDQMgCEEBaiEIIAYgDEchCiAGQQFqIQYgCg0ACwsgBygC3AEhBiAPIAcoApwBIghLBEAgBiAXTw0qDAELCyAGIBdPDSgLIA1BAWoiDSARRw0ACwwoC0EBIQwLIAtBBGohDyALKAIIIhBBAUcEQCAPKAIAIQ8LIAcoAowBIgZBFGsiCCAHKAKQASIaSQ0mIAsoAgwhFUEAIRFBACEKA0AgCiENIAYhFwJAAkAgCCIGKAIAIghBkApHBEAgCEGQCEcNASARQQFrIREMAgsgEUEBaiERDAELIBEgFUcNAAJ/AkACfwJAIAhBsIACRwRAIAhBEEcNA0EAIQggEEEATA0DIBdBEGsoAgAhCgNAIAogDyAIQQJ0aigCAEcEQCAQIAhBAWoiCEcNAQwFCwtBACEKIBUhESANRQ0FIA0gF0EMaygCACIGayIIIAIgCWtKDS0gByAJNgLAASAMRQ0BIAkhCANAIAggBiANTw0DGiAILQAAIQogBi0AACEMIAhBAWohCCAGQQFqIQYgCiAMRg0ACwwtC0EAIQggEEEATA0CIBdBEGsoAgAhCgNAIAogDyAIQQJ0aigCAEcEQCAQIAhBAWoiCEcNAQwECwsgF0EMaygCAAwDCyAAKAJEIRUgHSEKQQAhDyMAQdAAayIZJAAgGSAGNgJMIBkgB0HAAWoiDSgCACIcNgIMAkACQCAGIAYgCGoiEU8NACAIIBxqIRcgGUEvaiEMA0AgCiAZQcwAaiARIBlBMGogFSgCIBEDACIGIAogGUEMaiAXIBlBEGogFSgCIBEDAEcNAiAGQQBKBEAgBiAMaiEQIBlBEGohHCAZQTBqIQYDQCAGLQAAIBwtAABHDQQgHEEBaiEcIAYgEEchCCAGQQFqIQYgCA0ACwsgGSgCTCEGIBcgGSgCDCIcSwRAIAYgEU8NAgwBCwsgBiARSQ0BCyANIBw2AgBBASEPCyAZQdAAaiQAIA9FDSsgBygCwAELIQkgC0EUaiEGDCsLIA0LIQogFSERCyAGQRRrIgggGk8NAAsMJgsgC0EUaiEGIAlBAmohCQwmCyAJQQFqIQkMJAsgCUECaiEJDCMLIAlBAWohCQwiCyAAIAsoAgQiChAOKAIIIQhBfyEMQQAhDSAFKAIoKAIQDAELIAAgCygCBCIKEA4hBiALKAIIIQwgBigCCCEIQQEhDSAAIQZBACEQAkAgCkEATA0AIAYoAoQDIgZFDQAgBigCDCAKSA0AIAYoAhQiBkUNACAKQdwAbCAGakFAaigCACEQCyAQCyIGRQ0AIAhBAXFFDQAgByAfNgJsIAcgCTYCaCAHIBQ2AmQgByAENgJgIAcgAjYCXCAHIAE2AlggByAANgJUIAcgCjYCUCAHIAw2AkwgByAHKAKQATYCdCAHIBM2AoABIAcgEjYCfCAHIAcoAowBNgJ4IAdBATYCSCAHIAU2AnACQCAHQcgAaiAFKAIoKAIMIAYRAAAiEQ4CASAAC0FiIBEgEUEAShshCAwhCwJAIAhBAnFFDQAgDQRAIAZFDQEgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0kIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAo2AgggCCAMNgIEIAhB8AA2AgAgCCAGNgIMIAcgCEEUajYCjAEMAQsgBSgCKCgCFCIMRQ0AIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNIyAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiAKNgIIIAZC8ICAgHA3AgAgBiAMNgIMIAcgBkEUajYCjAELIAtBFGohBgwfC0EBIRECQAJAAkACQAJAAkACQCALKAIEDgYAAQIDBAUGCyAHKAKMASIIIAcoApABIgpNDQUDQAJAIAhBFGsiBigCAEGADEcNACAIQQxrKAIADQAgCEEIaygCACEgDAcLIAYhCCAGIApLDQALDAULIAcoAowBIgYgBygCkAEiDU0NBCALKAIIIREDQAJAAkAgBiIKQRRrIgYoAgAiCEGQCEcEQCAIQZAKRg0BIAhBgAxHDQIgCkEMaygCAEEBRw0CIApBEGsoAgAgEUcNAiAMDQIgCkEIaygCACEJDAgLIAxBAWshDAwBCyAMQQFqIQwLIAYgDUsNAAsMBAtBAiERCyAHKAKMASIGIAcoApABIg1NDQIgCygCCCEQA0ACQAJAIAYiCkEUayIGKAIAIghBkAhHBEAgCEGQCkYNASAIQYAMRw0CIApBDGsoAgAgEUcNAiAKQRBrKAIAIBBHDQIgDA0CIApBCGsoAgAhFCALKAIMRQ0GIAZBADYCAAwGCyAMQQFrIQwMAQsgDEEBaiEMCyAGIA1LDQALDAILIAkhFAwBCyADIRQLIAtBFGohBgweCyALKAIIIQYCQAJAAkACQCALKAIEDgMAAQIDCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSMgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBADYCCCAIIAY2AgQgCEGADDYCACAIIAk2AgwgByAIQRRqNgKMAQwCCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSIgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBATYCCCAIIAY2AgQgCEGADDYCACAIIAk2AgwgByAIQRRqNgKMAQwBCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSEgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBAjYCCCAIIAY2AgQgCEGADDYCACAIIBQ2AgwgByAIQRRqNgKMAQsgC0EUaiEGDB0LIAcoAogBIAcoAowBIgZrIQggCygCBCEKAkAgCygCCARAIAhBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0hIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGIAo2AgQgBkGEDjYCACAGIAk2AgwMAQsgCEETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSAgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCjYCBCAGQYQONgIACyAHIAZBFGo2AowBIAtBFGohBgwcCyALKAIEIQwgBygCjAEhBgNAIAYiCkEUayIGKAIAIghBjiBxRQ0AIAhBhA5GBEAgCkEQaygCACAMRw0BIAcgBjYChAEgBkEANgIAIAsoAggEQCAKQQhrKAIAIQkLIAtBFGohBgwdBSAGQQA2AgAMAQsACwALIAcoAowBKAIEIQYgDiABIAlBARB5IglFBEBBACEJDBoLQX8gBkEBayAGQX9GGyIKBEAgBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0eIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGIAs2AgggBiAKNgIEIAZBAzYCACAGIAk2AgwgByAGQRRqNgKMAQsgC0EUaiEGDBoLAkAgCygCBCIGRQ0AIA4gASAJIAYQeSIJDQBBACEJDBkLIAsoAggEQCAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDR0gBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBAzYCACALKAIIIQggBiAJNgIMIAYgC0EUajYCCCAGIAg2AgQgByAGQRRqNgKMASALIAsoAgxBFGxqIQYMGgsgC0EUaiEGDBkLAkAgCygCBCIGQQBOBEAgBkUNAQNAIAkgDigCABEBACAJaiIJIAJLDRogAiAJRgRAIAIhCSAGQQFGDQMMGwsgBkEBSiEIIAZBAWshBiAIDQALDAELIA4gASAJQQAgBmsQeSIJDQBBACEJDBgLIAtBFGohBgwYCyAHKAKMASILIQYDQCAGIgpBFGsiBigCACIIQZAKRwRAIAhBkAhHDQEgDEUEQCAKQQxrKAIAIQYgBygCiAEgC2tBFEgEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0dIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASELCyALQZAKNgIAIAcgC0EUajYCjAEgGEEBayEYDBoLIAxBAWshDAwBBSAMQQFqIQwMAQsACwALIBhBlJoRKAIARg0VAkBB/L8SKAIAIgZFDQAgBSAFKAI0QQFqIgg2AjQgBiAITw0AQW0hCAwYCyALKAIEIQogBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0ZIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAYQQFqIRggBiALQRRqNgIIIAZBkAg2AgAgByAGQRRqNgKMASAAKAIAIApBFGxqIQYMFgsgCygCBCEMIAcoAowBIg0hBgNAAkACQCAGIgpBFGsiBigCACIIQZAKRgRAQX8hCgwBCyAIQcAARw0CIApBEGsoAgAgDEcNAiAKQQxrKAIAIQYgBygCiAEgDWtBFEgEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0bIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASENCyANIAZBAWoiBjYCCCANIAw2AgQgDUHAADYCACAHIA1BFGoiCDYCjAEgBiAAKAJAIgogDEEMbGoiDSgCBEcNASALQRRqIQYMGAsDQCAGQRRrIgYoAgAiCEGQCkYEQCAKQQFrIQoMAQsgCEGQCEcNACAKQQFqIgoNAAsMAQsLIA0oAgAgBkwEQCAHKAKIASAIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRkgBygClAEiEiAWQQJ0akEEaiETIAAoAkAhCiAHKAKMASEICyAIQQM2AgAgCiAMQQxsaigCCCEGIAggCTYCDCAIIAY2AgggByAIQRRqNgKMASALQRRqIQYMFgsgCiAMQQxsaigCCCEGDBULIAsoAgQhDCAHKAKMASINIQYCfwNAAkACQCAGIgpBFGsiBigCACIIQZAKRgRAQX8hCgwBCyAIQcAARw0CIApBEGsoAgAgDEcNAiAKQQxrKAIAQQFqIgogACgCQCIIIAxBDGxqIgYoAgRIDQEgC0EUagwDCwNAIAZBFGsiBigCACIIQZAKRgRAIApBAWshCgwBCyAIQZAIRw0AIApBAWoiCg0ACwwBCwsgBigCACAKTARAIAcoAogBIA1rQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNGSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhDQsgDSALQRRqNgIIIA1BAzYCACANIAk2AgwgByANQRRqIg02AowBIAAoAkAgDEEMbGooAggMAQsgCCAMQQxsaigCCAshBiAHKAKIASANa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRcgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQ0LIA0gCjYCCCANIAw2AgQgDUHAADYCACAHIA1BFGo2AowBDBQLIAsoAgghDCALKAIEIQogBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0WIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGQQA2AgggBiAKNgIEIAZBwAA2AgAgByAGQRRqIgY2AowBIAAoAkAgCkEMbGooAgBFBEAgBygCiAEgBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0XIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGQQM2AgAgBiAJNgIMIAYgC0EUajYCCCAHIAZBFGo2AowBIAsgDEEUbGohBgwUCyALQRRqIQYMEwsgCygCCCEMIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRUgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBADYCCCAGIAo2AgQgBkHAADYCACAHIAZBFGoiBjYCjAEgACgCQCAKQQxsaigCAEUEQCAHKAKIASAGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRYgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBAzYCACAGIAk2AgwgBiALIAxBFGxqNgIIIAcgBkEUajYCjAELIAtBFGohBgwSCwJAIAkgFE8NACALLQAIIAktAABHDQAgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNFSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEDNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMAQsgC0EUaiEGDBELIAsoAgQhBgJAIAkgFE8NACALLQAIIAktAABHDQAgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0UIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIQQM2AgAgCCAJNgIMIAggCyAGQRRsajYCCCAHIAhBFGo2AowBIAtBFGohBgwRCyALIAZBFGxqIQYMEAsDQCAHIAcoAowBIghBFGsiBjYCjAEgBigCACIGQRRxRQ0AIAZBjwpMBEAgBkEQRgRAIBIgCEEUayIGKAIEQQJ0aiAGKAIMNgIAIBMgBygCjAEiBigCBEECdGogBigCEDYCAAwCCyAGQZAIRw0BIBhBAWshGAwBCyAGQZAKRwRAIAZBsIACRwRAIAZBhA5HDQIgCEEQaygCACALKAIERw0CIAtBFGohBgwSCyASIAhBFGsiBigCBEECdGogBigCDDYCACATIAcoAowBIgYoAgRBAnRqIAYoAhA2AgAMAQUgGEEBaiEYDAELAAsACyAHIAcoAowBQRRrNgKMASALQRRqIQYMDgsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNECAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEBNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMASALQRRqIQYMDQsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNDyAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEDNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMASALQRRqIQYMDAsgCyALKAIEQRRsaiEGDAsLIAsoAgQhDEEAIQ0gBygCjAEiECEGA0ACQCAGIghBFGsiBigCACIKQYDgAEcEQCAKQYCgAUcNAiAIQRBrKAIAIAxGIQoMAQsgCEEQaygCACAMRw0BQX8hCiANDQACQCAIQQxrKAIAIAlHDQAgCygCCCIXRQ0FIAYgEE8NBUEAIREgBygCkAEhFSAQIQoDQAJAAkAgCiIGQRRrIgooAgAiDUGA4ABHBEAgDUGAoAFGDQEgDUGwgAJHDQIgEQ0CQQAhESAGQRBrKAIAIg9BH0oNAkEBIA90IhogF3FFDQIgCCENIAggCkkEQANAAkAgDSgCAEEQRw0AIA0oAgQgD0cNACANKAIQIg9Bf0YNBwJAAkAgFSAPQRRsaigCCCIcIAZBDGsoAgAiD0cEQCAVIAZBCGsoAgBBFGxqKAIIIRkMAQsgFSAGQQhrKAIAQRRsaigCCCIZIBUgDSgCDEEUbGooAghGDQELIA8gGUcNCCAVIA0oAgxBFGxqKAIIIBxHDQgLIBcgGkF/c3EiF0UNDAwFCyANQRRqIg0gCkkNAAsLIBdFDQkMAgsgESAGQRBrKAIAIAxGaiERDAELIBEgBkEQaygCACAMRmshEQsgBiAISw0ACwwFCyAHKAKIASAQa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDQ8gBygClAEiEiAWQQJ0akEEaiETIAcoAowBIRALIAtBFGohBiAQIAw2AgQgEEGAoAE2AgAgByAQQRRqNgKMAQwMCyAKIA1qIQ0MAAsACyALKAIEIQogBygCjAEiDCEGA0AgBiIIQRRrIgYoAgBBgOAARw0AIAhBEGsoAgAgCkcNAAsCQCAIQQxrKAIAIAlHDQAgBiAMTw0CIAsoAgghECAHKAKQASEXA0ACQCAMIg1BFGsiDCgCAEGwgAJHDQAgDUEQaygCACIRQR9KDQBBASARdCIPIBBxRQ0AIAYhCgJAIAggDU8NAANAAkAgCigCAEEQRw0AIAooAgQgEUcNACAKKAIQIhFBf0YNBQJAAkAgFyARQRRsaigCCCIVIA1BDGsoAgAiEUcEQCAXIA1BCGsoAgBBFGxqKAIIIRoMAQsgFyANQQhrKAIAQRRsaigCCCIaIBcgCigCDEEUbGooAghGDQELIBEgGkcNBiAXIAooAgxBFGxqKAIIIBVHDQYLIBAgD0F/c3EhEAwCCyAKQRRqIgogDEkNAAsLIBBFDQQLIAggDUkNAAsMAgsgC0EUaiEGDAkLIAsoAgQhCiAHKAKMASEGA0AgBiIIQRRrIgYoAgBBgOAARw0AIAhBEGsoAgAgCkcNAAsgC0EUaiEGIAhBDGsoAgAgCUcNCAsgC0EoaiEGDAcLIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDQkgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCTYCCCAGIAo2AgQgBkGA4AA2AgAgByAGQRRqNgKMASALQRRqIQYMBgsgC0EEaiEKIAsoAggiDEEBRwRAIAooAgAhCgsgBygCjAEiCEEUayIGIAcoApABIhFJDQQgCygCDCEPQQAhDQNAAkAgCCEQAkAgBiIIKAIAIgZBkApHBEAgBkGQCEYEQCANQQFrIQ0MAgsgDSAPRw0BIAZBsIACRw0BQQAhBiAPIQ0gDEEATA0BIBBBEGsoAgAhDQNAIAogBkECdGooAgAgDUYNAyAGQQFqIgYgDEcNAAsgDyENDAELIA1BAWohDQsgCEEUayIGIBFPDQEMBgsLIAtBFGohBgwFCyALQQRqIQwCQAJAIAsoAggiCkEBRwRAIApBAEwNASAMKAIAIQwLQQAhBgNAIBMgDCAGQQJ0aigCAEECdCIIaigCAEF/RwRAIAggEmooAgBBf0cNAwsgBkEBaiIGIApHDQALDAULQQAhBgsgBiAKRg0DIAtBFGohBgwECyAJIQgLIA0gEUYEQCAIIQkMAgsgC0EUaiEGIAghCQwCCyAQIBFGDQAgC0EUaiEGDAELAkACQAJAAkAgJg4CAQACCyAHIAcoAowBIgpBFGsiBjYCjAEgBigCACIIQQFxDQIDQCAHIAhBEEYEfyASIApBFGsiBigCBEECdGogBigCDDYCACATIAcoAowBIgYoAgRBAnRqIAYoAhA2AgAgBygCjAEFIAYLIgpBFGsiBjYCjAEgBigCACIIQQFxRQ0ACwwCCyAHKAKMASEGA0AgBkEUayIGLQAAQQFxRQ0ACyAHIAY2AowBDAELIAcgBygCjAEiCkEUayIGNgKMASAGKAIAIghBAXENAANAAkAgCEEQcUUNAAJAIAhBjwhMBEAgCEEQRg0BIAhB8ABHDQIgB0ECNgIIIAcgCkEUayIIKAIENgIMIAgoAgghCiAHIB82AiwgByAJNgIoIAcgFDYCJCAHIAQ2AiAgByACNgIcIAcgATYCGCAHIAA2AhQgByAKNgIQIAcgEzYCQCAHIBI2AjwgByAGNgI4IAcgBygCkAE2AjQgByAFNgIwIAdBCGogBSgCKCgCDCAIKAIMEQAAIgZBAkkNAkFiIAYgBkEAShshCAwGCyAIQZAIRwRAIAhBkApHBEAgCEGwgAJHDQMgEiAKQRRrIgYoAgRBAnRqIAYoAgw2AgAgEyAHKAKMASIGKAIEQQJ0aiAGKAIQNgIADAMLIBhBAWohGAwCCyAYQQFrIRgMAQsgEiAKQRRrIgYoAgRBAnRqIAYoAgw2AgAgEyAHKAKMASIGKAIEQQJ0aiAGKAIQNgIACyAHIAcoAowBIgpBFGsiBjYCjAEgBigCACIIQQFxRQ0ACwsgBigCDCEJIAYoAgghBiAfQQFqIh8gHk0NAAtBb0FuIB8gBSgCHEsbIQgLIAUoAiAEQCAFIAUoAiQgH2o2AiQLIAUgBygCiAEgBygCkAFrIgZBFG02AgQgBygCmAEEQCAFIAUoAhBBAnQgBmoiChDLASIGNgIAIAZFBEBBeyEIDAILIAYgBygClAEgChCmARoMAQsgBSAHKAKUATYCAAsgB0HgAWokACAIC/kDAQd/QQEhBgJAIAEoAgAiByACTw0AA0ACQCAHKAIAIgVBsIACRwRAIAVBEEcNASAHKAIEIgVBH0oNASAEKAIsIAV2QQFxRQ0BQXshBkEYEMsBIghFDQMgCEIANwIMIAhBADYCFCAIQn83AgQgCCAFNgIAIAggBygCCCADazYCBCAAKAIQIgUgACgCDCIKTgRAIAACfyAAKAIUIgVFBEBBCCEJQSAQywEMAQsgCkEBdCEJIAUgCkEDdBDNAQsiBTYCFCAFRQ0EAkAgCSAAKAIMIgVMDQAgCSAFQX9zaiELQQAhBiAJIAVrQQNxIgoEQANAIAAoAhQgBUECdGpBADYCACAFQQFqIQUgBkEBaiIGIApHDQALCyALQQNJDQADQCAFQQJ0IgYgACgCFGpBADYCACAGIAAoAhRqQQA2AgQgBiAAKAIUakEANgIIIAYgACgCFGpBADYCDCAFQQRqIgUgCUcNAAsLIAAgCTYCDCAAKAIQIQULIAAoAhQgBUECdGogCDYCACAAIAVBAWo2AhAgASAHQRRqNgIAIAggASACIAMgBBBpIgYNAyAIIAEoAgAiBygCCCADazYCCAwBCyAHKAIEIAAoAgBHDQAgACAHKAIIIANrNgIIIAEgBzYCAEEAIQYMAgsgB0EUaiIHIAJJDQALQQEPCyAGC4oDAQl/IAUoAhBBAnQiBiADKAIAIAIoAgAiDWsiDGohCCAMQRRtIglBKGwgBmohBiAJQQF0IQogBCgCACEOIAEoAgAhBwJ/AkACQAJAIAAoAgAEQCAGEMsBIgYNAiAFIAk2AgQgACgCAEUNASAFIAgQywEiAjYCAEF7IAJFDQQaIAIgByAIEKYBGkF7DwsCQCAFKAIYIgtFDQAgCiALTQ0AIAshCiAJIAtHDQAgBSAJNgIEIAAoAgAEQCAFIAgQywEiAjYCACACRQRAQXsPCyACIAcgCBCmARpBcQ8LIAUgBzYCAEFxDwsgByAGEM0BIgYNAiAFIAk2AgQgACgCAEUNACAFIAUoAhBBAnQgDGoiABDLASICNgIAQXsgAkUNAxogAiAHIAAQpgEaQXsPCyAFIAc2AgBBew8LIAYgByAIEKYBGiAAQQA2AgALIAEgBjYCACACIAYgBSgCEEECdGoiBTYCACAEIAUgDiANa0EUbUEUbGo2AgAgAyACKAIAIApBFGxqNgIAQQALC+4HAQ5/IAMhBwJAAkAgACgC/AIiCUUNACACIANrIAlNDQEgAyAJaiEIIAAoAkQoAghBAUYEQCAIIQcMAQsgCUEATA0AA0AgByAAKAJEKAIAEQEAIAdqIgcgCEkNAAsLIAIgBGshEiAAQfgAaiETA0ACQAJAAkACQAJAAkAgACgCWEEBaw4EAAECAwULIAQgACgCcCIMIAAoAnQiCmsgAmpBAWoiCCAEIAhJGyINIAdNDQYgACgCRCEOA0AgByEJIActAAAgDCIILQAARgRAA0AgCiAIQQFqIghLBEAgCS0AASEPIAlBAWohCSAPIAgtAABGDQELCyAIIApGDQYLIAcgDigCABEBACAHaiIHIA1JDQALDAYLIAAoAvgCIQoCfyASIAAoAnQiCSAAKAJwIg9rIghIBEAgAiAIIAIgB2tMDQEaQQAPCyAEIAhqCyEMIAcgCGpBAWsiByAMTw0FIA8gCWtBAWohESAJQQFrIg0tAAAhDgNAIA0hCCAHIQkgBy0AACAOQf8BcUYEQANAIAggD0YNBSAJQQFrIgktAAAgCEEBayIILQAARg0ACwsgAiAHayAKTA0GIAAgByAKai0AAGotAHgiCCAMIAdrTg0GIAcgCGohBwwACwALIAIgACgCdEEBayIMIAAoAnAiD2siDmsgBCAOIBJKGyINIAdNDQQgACgC+AIhESAAKAJEIRQDQCAHIA5qIgohCSAKLQAAIAwiCC0AAEYEQANAIAggD0YNBSAJQQFrIgktAAAgCEEBayIILQAARg0ACwsgCiARaiIIIAJPDQUgByAAIAgtAABqLQB4aiIIIA1PDQUgFCAHIAgQdyIHIA1JDQALDAQLIAQgB00NAyAAKAJEIQgDQCATIActAABqLQAADQIgByAIKAIAEQEAIAdqIgcgBEkNAAsMAwsgByARaiEHCyAHRQ0BIAQgB00NAQJAIAAoAvwCIAcgA2tLDQACQCAAKAJsIghBgARHBEAgCEEgRw0BIAEgB0YEQCABIQcMAgsgACgCRCAQIAEgEBsgBxB4IAIgACgCRCgCEBEAAEUNAgwBCyACIAdGBEAgAiEHDAELIAcgAiAAKAJEKAIQEQAARQ0BCwJAAkACQAJAAkAgACgCgAMiCEEBag4CAAECCyAHIAFrIQkMAgsgBSAHNgIAIAchAQwCCyAIIAcgAWsiCUsEQCAFIAE2AgAMAQsgBSAHIAhrIgg2AgAgAyAITw0AIAUgACgCRCADIAgQdzYCAAsgCSAAKAL8AiIISQ0AIAcgCGshAQsgBiABNgIAQQEhCwwCCyAHIRAgByAAKAJEKAIAEQEAIAdqIQcMAAsACyALC4ARAQZ/IwBBQGoiCyQAIAAoAoQDIQkgCEEANgIYAkACQCAJRQ0AIAkoAgwiCkUNAAJAIAgoAiAiDCAKTgRAIAgoAhwhCgwBCyAKQQZ0IQoCfyAIKAIcIgwEQCAMIAoQzQEMAQsgChDLAQsiCkUEQEF7IQoMAwsgCCAKNgIcIAggCSgCDCIMNgIgCyAKQQAgDEEGdBCoARoLQWIhCiAHQYAQcQ0AAkAgBkUNACAGIAAoAhxBAWoQZyIKDQEgBigCBEEASgRAIAYoAgghDCAGKAIMIQ1BACEJA0AgDSAJQQJ0IgpqQX82AgAgCiAMakF/NgIAIAlBAWoiCSAGKAIESA0ACwsgBigCECIJRQ0AIAkQZiAGQQA2AhALQX8hCiACIANJDQAgASADSw0AAkAgB0GAIHFFDQAgASACIAAoAkQoAkgRAAANAEHwfCEKDAELAkACQAJAAkACQAJAAkACQAJAIAEgAk8NACAAKAJgIglFDQAgCUHAAHENAyAJQRBxBEAgAyAETw0CIAEgA0cNCiADQQFqIQQgAyEJDAULIAIhDCAJQYABcQ0CIAlBgAJxBEAgACgCRCABIAJBARB5IgkgAiAJIAIgACgCRCgCEBEAACINGyEMIAEgCUkgAyAJTXENAyANRQ0DIAMhCQwFCyADIARPBEAgAyEJDAULIAlBgIACcQ0DIAMhCQwECyADIQkgASACRw0DIAAoAlwNCCALQQA2AgggACgCSCEKIAtBnA0iATYCHCALIAY2AhQgCyAHIApyNgIQIAsgCCgCADYCICALIAgoAgQ2AiQgCCgCCCEJIAtBADYCPCALQQA2AiwgCyAJNgIoIAsgCDYCMCALQX82AjQgCyAAKAIcQQF0QQJqNgIYIABBnA1BnA1BnA1BnA0gC0EIahBoIgpBf0YNBCAKQQBIDQdBnA0hCQwGCyABIARJIQwgASEEIAEhCSAMDQcMAgsgAiABayIOIAAoAmQiDUkNBiAAKAJoIQkgAyAESQRAAkAgCSAMIANrTwRAIAMhCQwBCyAMIAlrIgkgAk8NACAAKAJEIAEgCRB3IQkgACgCZCENCyANIAIgBGtBAWpLBEAgDkEBaiANSQ0IIAIgDWtBAWohBAsgBCAJTw0CDAcLIAwgCWsgBCAMIARrIAlLGyIEIA0gAiADIglrSwRAIAEgAiANayAAKAJEKAI4EQAAIQkLIAlNDQEMBgsgAyADIARJaiEEIAMhCQsgC0EANgIIIAAoAkghCiALIAM2AhwgCyAGNgIUIAsgByAKcjYCECALIAgoAgA2AiAgCyAIKAIENgIkIAgoAgghCiALQQA2AjwgC0EANgIsIAsgCjYCKCALQX82AjQgCyAINgIwIAsgACgCHEEBdEECajYCGCAEIAlLBEACQCAAKAJYRQ0AAkACQAJAAkACQCAAKAKAAyIKQQFqDgIDAAELIAQhDCAAKAJcIAIgCWtMDQEMBgsgACgCXCACIAlrSg0FIAIgBCAKaiACIARrIApJGyEMIApBf0YNAgsDQCAAIAEgAiAJIAwgC0EEaiALEGtFDQUgCygCBCIKIAkgCSAKSRsiCSALKAIAIghNBEADQCAAIAEgAiAFIAkgC0EIahBoIgpBf0cEQCAKQQBIDQsMCgsgCSAAKAJEKAIAEQEAIAlqIgkgCE0NAAsLIAQgCUsNAAsMBAsgAiEMIAAoAlwgAiAJa0oNAwsgACABIAIgCSAMIAtBBGogCxBrRQ0CIAAoAmBBhoABcUGAgAFHDQADQCAAIAEgAiAFIAkgC0EIahBoIgpBf0cNBCAJIAAoAkQoAgARAQAgCWohCgJAIAkgAiAAKAJEKAIQEQAABEAgCiEJDAELIAoiCSAETw0AA0AgCiAAKAJEKAIAEQEAIApqIQkgCiACIAAoAkQoAhARAAANASAJIQogBCAJSw0ACwsgBCAJSw0ACwwCCwNAIAAgASACIAUgCSALQQhqEGgiCkF/RwRAIApBAEgNBgwFCyAJIAAoAkQoAgARAQAgCWoiCSAESQ0ACyAEIAlHDQEgACABIAIgBSAEIAtBCGoQaCIKQX9GDQEgBCEJIApBAEgNBAwDCyABIARLDQAgAiADSwRAIAMgACgCRCgCABEBACADaiEDCyAAKAJYBEAgAiAEayIKIAAoAlxIDQEgAiEMIAIgBEsEQCABIAQgACgCRCgCOBEAACEMCyAEIAAoAvwCIghqIAIgCCAKSRshDSAAKAKAA0F/RwRAA0AgACABIAICfyAAKAKAAyIKIAIgCWtJBEAgCSAKagwBCyAAKAJEIAEgAhB4CyANIAwgC0EEaiALEG5BAEwNAyALKAIAIgogCSAJIApLGyIJQQBHIQoCQCAJRQ0AIAkgCygCBCIISQ0AA0AgACABIAIgAyAJIAtBCGoQaCIKQX9HBEAgCkEATg0IDAkLIAAoAkQgASAJEHgiCUEARyEKIAlFDQEgCCAJTQ0ACwsgCkUNAyAEIAlNDQAMAwsACyAAIAEgAiAAKAJEIAEgAhB4IA0gDCALQQRqIAsQbkEATA0BCwNAIAAgASACIAMgCSALQQhqEGgiCkF/RwRAIApBAEgNBQwECyAAKAJEIAEgCRB4IglFDQEgBCAJTQ0ACwtBfyEKIAAtAEhBEHFFDQIgCygCNEEASA0CIAsoAjghCQwBCyAKQQBIDQELIAsoAggiAARAIAAQzAELIAkgAWshCgwBCyALKAIIIgkEQCAJEMwBCyAGRQ0AIAAoAkhBIHFFDQBBACEAIAYoAgRBAEoEQCAGKAIIIQEgBigCDCECA0AgAiAAQQJ0IgNqQX82AgAgASADakF/NgIAIABBAWoiACAGKAIESA0ACwsgBigCECIABEAgABBmIAZBADYCEAsLIAtBQGskACAKC6YBAQJ/IwBBMGsiByQAIAdBADYCFCAHQQA2AiggB0IANwMgIAdBAEH0vxJqKAIANgIIIAcgCEGQmhFqKAIANgIMIAcgCEH4vxJqKAIANgIQIAcgCEGAwBJqKAIANgIYIAcgCEGEwBJqKAIANgIcIAAgASACIAMgBCAEIAIgAyAESRsgBSAGIAdBCGoQbCEIIAcoAiQiBARAIAQQzAELIAdBMGokACAIC+cDAQh/IABB+ABqIQ4CQAJAA0ACQAJAAkACQCAAKAJYQQFrDgQAAAABAgsgACgCRCEMIAMgAiAAKAJwIg8gACgCdCINa2oiCE8EQCAFIAggDCgCOBEAACEDCyADRQ0FIAMgBEkNBQNAIAMhCSADLQAAIA8iCC0AAEYEQANAIA0gCEEBaiIISwRAIAktAAEhCyAJQQFqIQkgCyAILQAARg0BCwsgCCANRg0DCyAMIAUgAxB4IgNFDQYgAyAETw0ACwwFCyADRQ0EIAMgBEkNBCAAKAJEIQgDQCAOIAMtAABqLQAADQIgCCAFIAMQeCIDRQ0FIAMgBE8NAAsMBAsgAw0AQQAPCyADIQggACgCbCIJQYAERwRAIAlBIEcNAiABIAhGBEAgASEIDAMLIAAoAkQgASAIEHgiA0UNAiADIAIgACgCRCgCEBEAAEUNAQwCCyACIAhGBEAgAiEIDAILIAggAiAAKAJEKAIQEQAADQEgACgCRCAFIAgQeCIDDQALQQAPC0EBIQogACgCgAMiCUF/Rg0AIAYgASAIIAlrIAggAWsiCyAJSRs2AgACQCAAKAL8AiIJRQRAIAghAQwBCyAJIAtLDQAgCCAJayEBCyAHIAE2AgAgByAAKAJEIAUgARB3NgIACyAKCwQAQQELBABBfwtcAEFiIQECQCAAKAIMIAAoAggQDiIARQ0AIAAoAgRBAUcNAEGafiEBIAAoAjwiAEEATg0AQZp+IAAgAEHfAWoiAEEITQR/IABBAnRBtDJqKAIABUEACxshAQsgAQtzAQF/IAAoAigoAigiAigCHCAAKAIIQQZ0akFAaiIBKAIAIAIoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAIoAhg2AgALIAAgARBzC/ACAgd/AX4gACgCDCAAKAIIEA4iAUUEQEFiDwsgASgCBEEBRwRAQWIPC0GYfiECAkAgASgCPCIDQTxrIgFBHEsNAEEBIAF0QYWAgIABcUUNACAAKAIIIgFBAEwEQEFiDwsgACgCKCgCKCIFKAIcIgYgAUEBayIHQQZ0aiICQQhqIggpAgAiCadBACACKAIEGyEBIAJBBGohAiAJQoCAgIBwgyEJQQIhBAJAIAAoAgBBAkYEQCADQdgARwRAIANBPEcNAiABQQFqIQEMAgsgAUEBayEBDAELIAEgA0E8R2ohAUEBIQQLIAJBATYCACAIIAkgAa2ENwIAIAYgB0EGdGogBSgCGDYCAEFiIQIgACgCCCIBQQBMDQAgACgCKCgCKCIAKAIcIAFBBnRqQUBqIgEgBEEMbGoiAkEEaiIDKAIAIQQgA0EBNgIAIAJBCGoiAiACKQIAQgF8QgEgBBs+AgAgASAAKAIYNgIAQQAhAgsgAguUBQIEfwF+IAAoAigoAigiBCgCHCAAKAIIIgJBBnRqQUBqIgEoAgAgBCgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBCgCGDYCACAAKAIIIQILQWIhBAJAIAJBAEwNACAAKAIoKAIoIgMoAhwgAkEBa0EGdGoiASgCACADKAIYRwRAIAFCADcCACABQgA3AjggAUIANwIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggASADKAIYNgIAIAAoAgghAgsgASgCBCEDIAEpAgghBiAAKAIMIAIQDiIBRQ0AIAEoAgRBAUcNACABKAI8IQIgASgCLEEQRgRAIAJBAEwNASAAKAIoKAIoIgUoAhwgAkEBa0EGdGoiASgCACAFKAIYRwRAIAFCADcCACABQgA3AjggAUIANwIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggASAFKAIYNgIACyABKAIIQQAgASgCBBshAgsgACgCDCAAKAIIEA4iAUUNACABKAIEQQFHDQBBmH4hBCABKAJEIgFBPGsiBUEcSw0AQQEgBXRBhYCAgAFxRQ0AIAanQQAgAxshAwJAIAAoAgBBAkYEQCABQdgARwRAIAFBPEcNAkEBIQQgAiADTA0DIANBAWohAwwCCyADQQFrIQMMAQsgAUE8Rg0AQQEhBCACIANMDQEgA0EBaiEDC0FiIQQgACgCCCIBQQBMDQAgAUEGdCAAKAIoKAIoIgEoAhxqQUBqIgBBATYCBCAAIAOtIAZCgICAgHCDhDcCCCAAIAEoAhg2AgBBACEECyAEC4kHAQd/QWIhAwJAIAAoAgwiByAAKAIIEA4iAUUNACABKAIEQQFHDQAgASgCPCEEIAEoAixBEEYEQCAEQQBMDQEgACgCKCgCKCICKAIcIARBAWtBBnRqIgEoAgAgAigCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgAigCGDYCAAsgASgCCEEAIAEoAgQbIQQLIAAoAgwgACgCCBAOIgFFDQAgASgCBEEBRw0AIAEoAkwhAiABKAI0QRBGBEAgAkEATA0BIAAoAigoAigiBSgCHCACQQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0PC0GxLQ8LQdEtDwtB7y0PC0GOLg8LQaouDwtBzi4PC0HlLg8LQZEvDwtBti8PC0HNLw8LQeovDwtBkTAPC0GpMA8LQb4wDwtB1TAPC0HqMA8LQYMxDwtBlzEPC0G6MQ8LQdkxDwtB8jEPC0GNMiEBCyABC8UJAQV/IwBBIGsiByQAIAcgBTYCFCAAQYACIAQgBRC8ASADIAJrQQJ0akEEakGAAkgEQCAAEK0BIABqQbrAvAE2AABBlL0SIAAQeiAAaiEAIAIgA0kEQCAHQRlqIQoDQAJAIAIgASgCABEBAEEBRwRAIAIgASgCABEBACEFAkAgASgCDEEBRwRAIAVBAEoNAQwDCyAFQQBMDQIgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAgNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAgsDQCAFIQggByACLQAANgIQIAdBGmpBBUGrMiAHQRBqEKkBAkBBlL0SIAdBGmoQeiIJQQBMDQAgB0EaaiEFIAlBB3EiBARAQQAhBgNAIAAgBS0AADoAACAAQQFqIQAgBUEBaiEFIAZBAWoiBiAERw0ACwsgCUEBa0EHSQ0AIAkgCmohBANAIAAgBS0AADoAACAAIAUtAAE6AAEgACAFLQACOgACIAAgBS0AAzoAAyAAIAUtAAQ6AAQgACAFLQAFOgAFIAAgBS0ABjoABiAAIAUtAAc6AAcgAEEIaiEAIAVBB2ohBiAFQQhqIQUgBCAGRw0ACwsgAkEBaiECIAhBAWshBSAIQQJODQALDAELAn8gAi0AACIFQS9HBEAgBUHcAEYEQCAAQdwAOgAAIABBAWohACACQQFqIgIgASgCABEBACIFQQBMDQMgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAwNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAwtBASEGIAAgBUEHIAEoAjARAAANARogACACLQAAQQkgASgCMBEAAA0BGiAHIAItAAA2AgAgB0EaakEFQasyIAcQqQEgAkEBaiECQZS9EiAHQRpqEHoiCEEATA0CIAhBAWshCSAHQRpqIQUgCEEHcSIEBEBBACEGA0AgACAFLQAAOgAAIABBAWohACAFQQFqIQUgBkEBaiIGIARHDQALCyAJQQdJDQIgCCAKaiEEA0AgACAFLQAAOgAAIAAgBS0AAToAASAAIAUtAAI6AAIgACAFLQADOgADIAAgBS0ABDoABCAAIAUtAAU6AAUgACAFLQAGOgAGIAAgBS0ABzoAByAAQQhqIQAgBUEHaiEGIAVBCGohBSAEIAZHDQALDAILIABB3AA6AABBAiEGIABBAWoLIAItAAA6AAAgACAGaiEAIAJBAWohAgsgAiADSQ0ACwsgAEEvOwAACyAHQSBqJAALTwECfwJAQQUQjQEiAkEATA0AQRAQywEiAUUNACABQQA2AgggASAANgIAIAEgAjYCBCABIAJBBBDPASICNgIMIAIEQCABDwsgARDMAQtBAAuAAwEBfwJAIABBB0wNAEEBIQEgAEEQSQ0AQQIhASAAQSBJDQBBAyEBIABBwABJDQBBBCEBIABBgAFJDQBBBSEBIABBgAJJDQBBBiEBIABBgARJDQBBByEBIABBgAhJDQBBCCEBIABBgBBJDQBBCSEBIABBgCBJDQBBCiEBIABBgMAASQ0AQQshASAAQYCAAUkNAEEMIQEgAEGAgAJJDQBBDSEBIABBgIAESQ0AQQ4hASAAQYCACEkNAEEPIQEgAEGAgBBJDQBBECEBIABBgIAgSQ0AQREhASAAQYCAwABJDQBBEiEBIABBgICAAUkNAEETIQEgAEGAgIACSQ0AQRQhASAAQYCAgARJDQBBFSEBIABBgICACEkNAEEWIQEgAEGAgIAQSQ0AQRchASAAQYCAgCBJDQBBGCEBIABBgICAwABJDQBBGSEBIABBgICAgAFJDQBBGiEBIABBgICAgAJJDQBBGyEBIABBgICAgARJDQBBfw8LIAFBAnRB4DJqKAIAC14BA38gACgCBCIBQQBKBEADQCAAKAIMIAJBAnRqKAIAIgMEQANAIAMoAgwhASADEMwBIAEhAyABDQALIAAoAgQhAQsgAkEBaiICIAFIDQALCyAAKAIMEMwBIAAQzAEL4AEBBX8gASAAKAIAKAIEEQEAIQUCQCAAKAIMIAUgACgCBHBBAnRqKAIAIgRFDQACQAJAIAQoAgAgBUcNACABIAQoAgQiA0YEQCAEIQMMAgsgASADIAAoAgAoAgARAAANACAEIQMMAQsgBCgCDCIDRQ0BIARBDGohBANAAkAgBSADKAIARgRAIAMoAgQiBiABRg0DIAEgBiAAKAIAKAIAEQAAIQYgBCgCACEDIAZFDQELIANBDGohBCADKAIMIgMNAQwDCwsgA0UNAQtBASEHIAJFDQAgAiADKAIINgIACyAHC9MDAQl/IAEgACgCACgCBBEBACEGAkACQAJAIAAoAgwgBiAAKAIEcCIFQQJ0aigCACIERQ0AIAYgBCgCAEYEQCAEKAIEIgMgAUYNAiABIAMgACgCACgCABEAAEUNAgsgBCgCDCIDRQ0AIARBDGohBANAAkAgBiADKAIARgRAIAMoAgQiByABRg0FIAEgByAAKAIAKAIAEQAAIQcgBCgCACEDIAdFDQELIANBDGohBCADKAIMIgMNAQwCCwsgAw0CCyAAKAIIIAAoAgQiCG1BBk4EQAJAIAhBAWoQjQEiBUEATARAIAghBQwBCyAFQQQQzwEiCkUEQCAIIQUMAQsgACgCDCELIAhBAEoEQANAIAsgCUECdGooAgAiAwRAA0AgAygCDCEEIAMgCiADKAIAIAVwQQJ0aiIHKAIANgIMIAcgAzYCACAEIgMNAAsLIAlBAWoiCSAIRw0ACwsgCxDMASAAIAo2AgwgACAFNgIECyAGIAVwIQULQRAQywEiA0UEQEF7DwsgAyACNgIIIAMgATYCBCADIAY2AgAgAyAAKAIMIAVBAnRqIgQoAgA2AgwgBCADNgIAIAAgACgCCEEBajYCCEEADwsgBCEDCyADIAI2AghBAQvtAQEFfyAAKAIEIgNBAEoEQANAAkBBACEFIAZBAnQiByAAKAIMaigCACIEBEADQCAEIQMCQAJAAkACQCAEKAIEIAQoAgggAiABEQIADgQBBgIAAwsgBiAAKAIETg0FIAAoAgwgB2ooAgAiA0UNBQNAIAMgBEYNASADKAIMIgMNAAsMBQsgBCgCDCEDIAQhBQwBCyAEKAIMIQMCfyAFRQRAIAAoAgwgB2oMAQsgBUEMagsgAzYCACAEKAIMIQMgBBDMASAAIAAoAghBAWs2AggLIAMiBA0ACyAAKAIEIQMLIAZBAWoiBiADSA0BCwsLC48DAQp/AkAgAEEAQfcgIAEgAhCTASIDDQAgAEH3IEH6ICABIAIQkwEiAw0AQQAhAyAAQYCAgIAEcUUNAEEAQYUCIAEgAhCUASIDDQBBhQJBiQIgASACEJQBIgMNACMAQRBrIgQkAEGgqBIiB0EMaiEIQbCoEiEJQQEhAAJ/A0AgAEEBcyEMAkADQEEBIQpBACEDIAgoAgAiBUEATA0BA0AgBCAJIANBAnRqKAIAIgA2AgwCQAJAIAAgB0EDIAIgAREDACILDQBBACEAIANFDQEDQCAEIAkgAEECdGooAgA2AgggBCgCDCAEQQhqQQEgAiABEQMAIgsNASAEKAIIIARBDGpBASACIAERAwAiCw0BIAMgAEEBaiIARw0ACwwBCyAKIAxyQQFxRQ0CIAtBACAKGwwFCyADQQFqIgMgBUghCiADIAVHDQALCyAIKAIAIQULIAUgBmpBBGoiBkECdEGgqBJqIgdBEGohCSAHQQxqIQggBkHIAEgiAA0AC0EACyEAIARBEGokACAAIQMLIAMLygIBBn8jAEEQayIFJAACQAJAIAEgAk4NACAAQQFxIQgDQCAFIAFBAnQiAEGAnBFqIgYoAgAiBzYCDCAHQYABTyAIcQ0BIAEgAEGEnBFqIgooAgAiAUEASgR/IAZBCGohCUEAIQcDQCAFIAkgB0ECdGooAgAiADYCCAJAIABB/wBLIAhxDQAgBSgCDCAFQQhqQQEgBCADEQMAIgYNBSAFKAIIIAVBDGpBASAEIAMRAwAiBg0FQQAhACAHRQ0AA0AgBSAJIABBAnRqKAIAIgY2AgQgBkH/AEsgCHFFBEAgBSgCCCAFQQRqQQEgBCADEQMAIgYNByAFKAIEIAVBCGpBASAEIAMRAwAiBg0HCyAAQQFqIgAgB0cNAAsLIAdBAWoiByABRw0ACyAKKAIABSABC2pBAmoiASACSA0ACwtBACEGCyAFQRBqJAAgBgutAgEKfyMAQRBrIgUkAAJ/QQAgACABTg0AGiAAIAFIIQQDQCAEQQFzIQ0gAEECdEHwnxJqIgpBDGohCyAKQQhqIQwCQANAQQEhCEEAIQYgDCgCACIHQQBMDQEDQCAFIAsgBkECdGooAgAiBDYCDAJAAkAgBCAKQQIgAyACEQMAIgkNAEEAIQQgBkUNAQNAIAUgCyAEQQJ0aigCADYCCCAFKAIMIAVBCGpBASADIAIRAwAiCQ0BIAUoAgggBUEMakEBIAMgAhEDACIJDQEgBiAEQQFqIgRHDQALDAELIAggDXJBAXFFDQIgCUEAIAgbDAULIAZBAWoiBiAHSCEIIAYgB0cNAAsLIAwoAgAhBwsgACAHakEDaiIAIAFIIgQNAAtBAAshBCAFQRBqJAAgBAtqAQR/QYcIIQIDQCABIAJqQQF2IgNBAWogASADQQxsQeA3aigCBCAASSIEGyIBIAIgAyAEGyICSQ0AC0EAIQICQCABQYYISw0AIAFBDGwiAUHgN2ooAgAgAEsNACABQeA3aigCCCECCyACC84BAQV/IAIgASAAKAIAEQEAIAFqIgZLBH8CQANAQYcIIQVBACEBIAYgAiAAKAIUEQAAIQcDQCABIAVqQQF2IghBAWogASAIQQxsQeA3aigCBCAHSSIJGyIBIAUgCCAJGyIFSQ0AC0EAIQUgAUGGCEsNASABQQxsIgFB4DdqKAIAIAdLDQEgAUHgN2ooAggiBUESSw0BQQEgBXRB0IAQcUUNASAGIAAoAgARAQAgBmoiBiACSQ0AC0EADwsgAyAHNgIAIAQgBTYCAEEBBSAFCwtrAAJAIABB/wFLDQAgAUEOSw0AIABBAXRB4DNqLwEAIAF2QQFxDwsCfyABQdUETwRAQXogAUHVBGsiAUGwwRIoAgBODQEaIAFBA3RBwMESaigCBCAAEFMPCyABQQJ0QcCqEmooAgAgABBTCwu7BQEIfyMAQdAAayIDJAACQCABIAJJBEADQEGhfiEIIAEgAiAAKAIUEQAAIgVB/wBLDQICQAJAAkAgBUEgaw4OAgEBAQEBAQEBAQEBAQIACyAFQd8ARg0BCyADQRBqIARqIAU6AAAgBEE7Sg0DIARBAWohBAsgASAAKAIAEQEAIAFqIgEgAkkNAAsLIANBEGogBGoiAUEAOgAAAkBBtMESKAIAIgVFDQAgA0EANgIMIwBBEGsiACQAIAAgATYCDCAAIANBEGo2AgggBSAAQQhqIANBDGoQjwEaIABBEGokACADKAIMIgFFDQAgASgCACEIDAELQaF+IQggBEEBayIBQSxLDQAgBCEGIAQhCSAEIQcgBCEAIAQhAiAEIQUCQAJAAkACQAJAAkACQCABDg8GBQQEAwICAgICAgEBAQEACyAEIAMtAB9BAXRBgNsPai8BAGohBgsgBiADLQAbQQF0QYDbD2ovAQBqIQkLIAkgAy0AFUEBdEGA2w9qLwEAaiEHCyAHIAMtABRBAXRBgNsPai8BAGohAAsgACADLQASQQF0QYDbD2ovAQBqIQILIAIgAy0AEUEBdEGA2w9qLwEAaiEFCyADQRBqIAFqLQAAQQF0QYDbD2ovAQAgBSADLQAQIgBBAXRBgNsPai8BBGpqIgZBoDBLDQAgBkECdEHwzQ1qLgEAIgFBAEgNACABQf//A3FB9I4PaiIKLQAAIABzQd8BcQ0AIANBEGohBSAKIQIgBCEBAkADQCABRQ0BIAItAABB8O8Pai0AACEAIAUtAAAiCUHw7w9qLQAAIQcgCQRAIAFBAWshASACQQFqIQIgBUEBaiEFIAdB/wFxIABB/wFxRg0BCwsgB0H/AXEgAEH/AXFHDQELIAQgCmotAAANACAGQQJ0QfDNDWouAQIhCAsgA0HQAGokACAIC6QBAQN/IwBBEGsiASQAIAEgADYCDCABQQxqQQIQiQEhAwJAQZDfDyIAIAFBDGpBARCJAUH/AXFBAXRqLwECIANB/wFxQQF0IABqLwFGaiAAIAFBDGpBABCJAUH/AXFBAXRqLwEAaiIAQZsPSw0AIAEoAgwgAEEDdCIAQfDxD2oiAigCAEYEQCAAQfDxD2ouAQRBAE4NAQtBACECCyABQRBqJAAgAguPAQEDfyAAQQIQiQEhA0F/IQICQEHg4w8iASAAQQEQiQFB/wFxQQF0ai8BACADQf8BcUEBdCABai8BBmogASAAQQAQiQFB/wFxQQF0ai8BAGoiAUHMDksNACABQQF0QdDrEGouAQAiAUEATgRAIAAgAUH//wNxIgJBAnRBgJwRakEBEIgBRQ0BC0F/IQILIAILIgEBfyAAQf8ATQR/IABBAXRB0CFqLwEAIAF2QQFxBSACCwuOAwEDfyMAQTBrIgEkAAJAQZS9EiICQZENIgAgAiAAEHogAGpBAUEHQQBBAEEAQQAQDCIAQQBIDQBBlL0SQcsNIgAgAiAAEHogAGpBAUEIQQBBAEEAQQAQDCIAQQBIDQAgAUHYADYCACABQpGAgIAgNwMgQZS9EkG2DiIAIAIgABB6IABqQQNBCUECIAFBIGpBASABEAwiAEEASA0AIAFBfTYCACABQQE2AiBBlL0SQc0PIgAgAiAAEHogAGpBAUEKQQEgAUEgakEBIAEQDCIAQQBIDQAgAUE+NgIAIAFBAjYCIEGUvRJBnBAiACACIAAQeiAAakEDQQtBASABQSBqQQEgARAMIgBBAEgNACABQT42AgAgAUECNgIgQZS9EkHtECIAIAIgABB6IABqQQNBDEEBIAFBIGpBASABEAwiAEEASA0AIAFBETYCKCABQpGAgIDAADcDIEGUvRJB3xEiACACIAAQeiAAakEBQQ1BAyABQSBqQQBBABAMIgBBH3UgAHEhAAsgAUEwaiQAIAALEgAgAC0AAEECdEGQihFqKAIAC9YBAQR/AkAgAC0AACICQQJ0QZCKEWooAgAiAyABIABrIgEgASADShsiAUECSA0AIAFBAmshBEF/QQcgAWt0QX9zIAJxIQIgAUEBayIBQQNxIgUEQEEAIQMDQCAALQABQT9xIAJBBnRyIQIgAUEBayEBIABBAWohACADQQFqIgMgBUcNAAsLIARBA0kNAANAIAAtAARBP3EgAC0AAkE/cSACQQx0IAAtAAFBP3FBBnRyckEMdCAALQADQT9xQQZ0cnIhAiAAQQRqIQAgAUEEayIBDQALCyACCzUAAn9BASAAQYABSQ0AGkECIABBgBBJDQAaQQMgAEGAgARJDQAaQQRB8HwgAEGAgIABSRsLC8QBAQF/IABB/wBNBEAgASAAOgAAQQEPCwJ/An8gAEH/D00EQCABIABBBnZBwAFyOgAAIAFBAWoMAQsgAEH//wNNBEAgASAAQQx2QeABcjoAACABIABBBnZBP3FBgAFyOgABIAFBAmoMAQtB73wgAEH///8ASw0BGiABIABBEnZB8AFyOgAAIAEgAEEGdkE/cUGAAXI6AAIgASAAQQx2QT9xQYABcjoAASABQQNqCyICIABBP3FBgAFyOgAAIAIgAWtBAWoLC/IDAQN/IAEoAgAsAAAiBUEATgRAIAMgBUH/AXFB0B9qLQAAOgAAIAEgASgCAEEBajYCAEEBDwsCfyABKAIAIgQgAkGAvhIoAgARAAAhAiABIARB7L0SKAIAEQEAIgUgASgCAGo2AgACQAJAIABBAXEiBiACQf8AS3ENACACEJkBIgBFDQBB8J8SIQJB8HwhAQJAAkACQCAALwEGQQFrDgMAAgEECyAALgEEQQJ0QYCcEWooAgAiAUH/AEsgBnENAiABIANBiL4SKAIAEQAADAQLQaCoEiECCyACIAAuAQRBAnRqIQVBACEBQQAhBANAIAUgBEECdGooAgAgA0GIvhIoAgARAAAiAiABaiEBIAIgA2ohAyAEQQFqIgQgAC4BBkgNAAsMAQsCQCAFQQBMDQAgBUEHcSECIAVBAWtBB08EQCAFQXhxIQBBACEBA0AgAyAELQAAOgAAIAMgBC0AAToAASADIAQtAAI6AAIgAyAELQADOgADIAMgBC0ABDoABCADIAQtAAU6AAUgAyAELQAGOgAGIAMgBC0ABzoAByADQQhqIQMgBEEIaiEEIAFBCGoiASAARw0ACwsgAkUNAEEAIQEDQCADIAQtAAA6AAAgA0EBaiEDIARBAWohBCABQQFqIgEgAkcNAAsLIAUhAQsgAQsL7h4BEH8gAyEKQQAhAyMAQdAAayIFJAACQCAAIgZBAXEiCCABIAJBgL4SKAIAEQAAIgxB/wBLcQ0AIAFB7L0SKAIAEQEAIQAgBSAMNgIIIAUCfyAMIAwQmQEiB0UNABogDCAHLwEGQQFHDQAaIAcuAQRBAnRBgJwRaigCAAs2AhQCQCAGQYCAgIAEcSINRQ0AIAAgAWoiASACTw0AIAUgASACQYC+EigCABEAACIONgIMIAFB7L0SKAIAEQEAIQkCQCAOIgsQmQEiBkUNACAGLwEGQQFHDQAgBi4BBEECdEGAnBFqKAIAIQsLIAAgCWohBiAFIAs2AhgCQCABIAlqIgEgAk8NACAFIAEgAkGAvhIoAgARAAAiCzYCECABQey9EigCABEBACEBAkAgCyIDEJkBIgJFDQAgAi8BBkEBRw0AIAIuAQRBAnRBgJwRaigCACEDCyAFIAM2AhxBACEDIAVBFGoiCUEIEIkBIQICQCAJQQUQiQFB/wFxQfDpD2otAAAgAkH/AXFB8OkPai0AAGogCUECEIkBQf8BcUHw6Q9qLQAAaiICQQ1NBEAgCSACQQF0QfCJEWouAQAiAkECdEGgqBJqQQMQiAFFDQELQX8hAgsgAkEASA0AIAEgBmohCUEBIRAgAkECdCIHQaCoEmooAgwiBkEASgRAIAZBAXEhDSAHQbCoEmohBCAGQQFHBEAgBkF+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgCTYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAk2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAk2AgAgAiAEIANBAnRqKAIANgIICyAGIQMLIAUgB0GgqBJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIRALIAUgAigCBDYCMEEBIQhBASEPIAVBMGoQmgEiBEEATgRAIARBAnQiAEGAnBFqKAIEIgRBAEoEQCAFQTRqIABBiJwRaiAEQQJ0EKYBGgsgBEEBaiEPCyAFIAIoAgg2AkAgBUFAaxCaASICQQBOBEAgAkECdCIEQYCcEWooAgQiAkEASgRAIAVBxABqIARBiJwRaiACQQJ0EKYBGgsgAkEBaiEICyAQQQBMBEAgAyEEDAMLIA9BAEwhESADIQQDQCARRQRAIAVBIGogEkECdGohE0EAIQ0DQCAIQQBKBEAgEygCACIHIAxGIA1BAnQgBWooAjAiASAORnEhBkEAIQIDQCABIQACQCAGBEAgDiEAIAJBAnQgBWpBQGsoAgAgC0YNAQsgCiAEQRRsaiIDIAc2AgggA0EDNgIEIAMgCTYCACADIAA2AgwgAyACQQJ0IAVqQUBrKAIANgIQIARBAWohBAsgAkEBaiICIAhHDQALCyANQQFqIg0gD0cNAAsLIBJBAWoiEiAQRw0ACwwCCyAFQRRqIgJBBRCJASEBAkAgAkECEIkBQf8BcUHw5w9qLQAAIAFB/wFxQfDnD2otAABqIgFBOk0EQCACIAFBAXRB8IgRai4BACIBQQJ0QfCfEmpBAhCIAUUNAQtBfyEBCyABIgJBAEgNAEEBIQkgAkECdCILQfCfEmooAggiB0EASgRAIAdBAXEhDSALQfyfEmohBCAHQQFHBEAgB0F+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgBjYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAY2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAY2AgAgAiAEIANBAnRqKAIANgIICyAHIQMLIAUgC0HwnxJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIQkLIAUgAigCBDYCMCAFQTBqEJoBIgJBAEgEf0EBBSACQQJ0IgRBgJwRaigCBCICQQBKBEAgBUE0aiAEQYicEWogAkECdBCmARoLIAJBAWoLIQEgCUEATARAIAMhBAwCC0EAIQcgAUEATCELIAMhBANAIAtFBEAgBUEgaiAHQQJ0aigCACEIQQAhAwNAIAggDEYgDiADQQJ0IAVqKAIwIgJGcUUEQCAKIARBFGxqIgAgCDYCCCAAQQI2AgQgACAGNgIAIAAgAjYCDCAEQQFqIQQLIANBAWoiAyABRw0ACwsgB0EBaiIHIAlHDQALDAELAkACQAJAAkAgBwRAIAcvAQYiA0EBRgRAIAcuAQQhAwJ/IAgEQEEAIANBAnRBgJwRaigCAEH/AEsNARoLIApBATYCBCAKIAA2AgAgCiADQQJ0QYCcEWooAgA2AghBAQshBCADQQJ0IgNBgJwRaigCBCIGQQBMDQYgA0GInBFqIQdBACEDA0ACQCAHIANBAnRqKAIAIgIgDEYNACAIRSACQYABSXJFDQAgCiAEQRRsaiIBIAI2AgggAUEBNgIEIAEgADYCACAEQQFqIQQLIANBAWoiAyAGRw0ACwwGCyANRQ0FIAcuAQQhCyADQQJGBEBBASEPIAtBAnRB8J8SaigCCCIDQQBMDQUgA0EBcSENIAtBAnRB/J8SaiECIANBAUYEQEEAIQMMBQsgA0F+cSEOQQAhA0EAIQgDQCAMIAIgA0ECdCIBaigCACIGRwRAIAogBEEUbGoiCSAGNgIIIAlBATYCBCAJIAA2AgAgBEEBaiEECyAMIAIgAUEEcmooAgAiAUcEQCAKIARBFGxqIgYgATYCCCAGQQE2AgQgBiAANgIAIARBAWohBAsgA0ECaiEDIA4gCEECaiIIRw0ACwwEC0EBIREgC0ECdEGgqBJqKAIMIgNBAEwNAiADQQFxIQ0gC0ECdEGwqBJqIQIgA0EBRgRAQQAhAwwCCyADQX5xIQ5BACEDQQAhCANAIAwgAiADQQJ0IgFqKAIAIgZHBEAgCiAEQRRsaiIJIAY2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAwgAiABQQRyaigCACIBRwRAIAogBEEUbGoiBiABNgIIIAZBATYCBCAGIAA2AgAgBEEBaiEECyADQQJqIQMgDiAIQQJqIghHDQALDAELIAVBCGoQmgEiA0EASA0EIANBAnQiAkGAnBFqKAIEIgNBAEwNBCADQQFxIQsgAkGInBFqIQECQCADQQFGBEBBACEDDAELIANBfnEhDkEAIQNBACEGA0AgCEEAIAEgA0ECdCIHaigCACICQf8ASxtFBEAgCiAEQRRsaiIJIAI2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAhBACABIAdBBHJqKAIAIgJB/wBLG0UEQCAKIARBFGxqIgcgAjYCCCAHQQE2AgQgByAANgIAIARBAWohBAsgA0ECaiEDIAZBAmoiBiAORw0ACwsgC0UNBCAIQQAgASADQQJ0aigCACIDQf8ASxsNBCAKIARBFGxqIgIgAzYCCCACQQE2AgQgAiAANgIAIARBAWohBAwECyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRBoKgSaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIRELIAUgBy4BBEECdEGgqBJqKAIENgIwQQEhDEEBIQ8gBUEwahCaASIDQQBOBEAgA0ECdCICQYCcEWooAgQiA0EASgRAIAVBNGogAkGInBFqIANBAnQQpgEaCyADQQFqIQ8LIAUgBy4BBEECdEGgqBJqKAIINgJAIAVBQGsQmgEiA0EATgRAIANBAnRBgJwRaigCBCICQQBKBEAgBUHEAGogA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQwLIBFBAEwNAiAMQX5xIQsgDEEBcSESA0AgD0EASgRAIAVBIGogEEECdGohE0EAIQ0DQAJAIAxBAEwNACANQQJ0IAVqKAIwIQggEygCACEBQQAhAkEAIQYgDEEBRwRAA0AgCiAEQRRsaiIDIAE2AgggA0EDNgIEIAMgADYCACADIAg2AgwgBUFAayIHIAJBAnQiCWooAgAhDiADIAA2AhQgAyAONgIQIAMgATYCHCADIAg2AiAgA0EDNgIYIAMgByAJQQRyaigCADYCJCACQQJqIQIgBEECaiEEIAZBAmoiBiALRw0ACwsgEkUNACAKIARBFGxqIgMgATYCCCADQQM2AgQgAyAANgIAIAMgCDYCDCADIAJBAnQgBWpBQGsoAgA2AhAgBEEBaiEECyANQQFqIg0gD0cNAAsLIBBBAWoiECARRw0ACwwCCyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRB8J8SaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQ8LIAUgBy4BBEECdEHwnxJqKAIENgIwIAVBMGoQmgEiA0EASAR/QQEFIANBAnQiAkGAnBFqKAIEIgNBAEoEQCAFQTRqIAJBiJwRaiADQQJ0EKYBGgsgA0EBagshDSAPQQBMDQAgDUF+cSEOIA1BAXEhDEEAIQsDQAJAIA1BAEwNACAFQSBqIAtBAnRqKAIAIQhBACECQQAhASANQQFHBEADQCAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAVBMGoiBiACQQJ0IgdqKAIAIQkgAyAANgIUIAMgCTYCDCADIAg2AhwgA0ECNgIYIAMgBiAHQQRyaigCADYCICACQQJqIQIgBEECaiEEIAFBAmoiASAORw0ACwsgDEUNACAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAMgAkECdCAFaigCMDYCDCAEQQFqIQQLIAtBAWoiCyAPRw0ACwsgBUHQAGokACAEC04AIAFBgAE2AgACfyACAn8gAEHVBE8EQEF6IABB1QRrIgBBsMESKAIATg0CGiAAQQN0QcTBEmoMAQsgAEECdEHAqhJqCygCADYCAEEACwszAQF/IAAgAU8EQCABDwsDQCAAIAEiAkkEQCACQQFrIQEgAi0AAEFAcUGAAUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCADIAEoAgA2AgAgAUEEaiEBIANBBGohAyACQQRrIgJBA0sNAAsLIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQQFrIgINAAsLC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACycBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQvAEaIARBEGokAAvbAgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQYgA0EQaiEEQQIhBwJ/AkACQAJAIAAoAjwgA0EQakECIANBDGoQAhC+AQRAIAQhBQwBCwNAIAYgAygCDCIBRg0CIAFBAEgEQCAEIQUMBAsgBCABIAQoAgQiCEsiCUEDdGoiBSABIAhBACAJG2siCCAFKAIAajYCACAEQQxBBCAJG2oiBCAEKAIAIAhrNgIAIAYgAWshBiAAKAI8IAUiBCAHIAlrIgcgA0EMahACEL4BRQ0ACwsgBkF/Rw0BCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAQsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAHQQJGDQAaIAIgBSgCBGsLIQEgA0EgaiQAIAELBABBAAsEAEIAC2kBA38CQCAAIgFBA3EEQANAIAEtAABFDQIgAUEBaiIBQQNxDQALCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAAawtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAsKACAAQTBrQQpJCwYAQejKEgt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARCxASEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC8IBAQN/AkAgASACKAIQIgMEfyADBSACEK4BDQEgAigCEAsgAigCFCIFa0sEQCACIAAgASACKAIkEQIADwsCQCACKAJQQQBIBEBBACEDDAELIAEhBANAIAQiA0UEQEEAIQMMAgsgACADQQFrIgRqLQAAQQpHDQALIAIgACADIAIoAiQRAgAiBCADSQ0BIAAgA2ohACABIANrIQEgAigCFCEFCyAFIAAgARCmARogAiACKAIUIAFqNgIUIAEgA2ohBAsgBAvgAgEEfyMAQdABayIFJAAgBSACNgLMASAFQaABakEAQSgQqAEaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBC0AUEASARAQX8hBAwBC0EBIAYgACgCTEEAThshBiAAKAIAIQcgACgCSEEATARAIAAgB0FfcTYCAAsCfwJAAkAgACgCMEUEQCAAQdAANgIwIABBADYCHCAAQgA3AxAgACgCLCEIIAAgBTYCLAwBCyAAKAIQDQELQX8gABCuAQ0BGgsgACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBC0AQshAiAHQSBxIQQgCARAIABBAEEAIAAoAiQRAgAaIABBADYCMCAAIAg2AiwgAEEANgIcIAAoAhQhAyAAQgA3AxAgAkF/IAMbIQILIAAgACgCACIDIARyNgIAQX8gAiADQSBxGyEEIAZFDQALIAVB0AFqJAAgBAumFAISfwF+IwBB0ABrIggkACAIIAE2AkwgCEE3aiEYIAhBOGohEwJAAkACQAJAA0AgASEOIAcgEEH/////B3NKDQEgByAQaiEQAkACQAJAIA4iBy0AACIPBEADQAJAAkAgD0H/AXEiD0UEQCAHIQEMAQsgD0ElRw0BIAchDwNAIA8tAAFBJUcEQCAPIQEMAgsgB0EBaiEHIA8tAAIhCSAPQQJqIgEhDyAJQSVGDQALCyAHIA5rIgcgEEH/////B3MiD0oNByAABEAgACAOIAcQtQELIAcNBiAIIAE2AkwgAUEBaiEHQX8hEQJAIAEsAAEQrwFFDQAgAS0AAkEkRw0AIAFBA2ohByABLAABQTBrIRFBASEUCyAIIAc2AkxBACELAkAgBywAACIKQSBrIgFBH0sEQCAHIQkMAQsgByEJQQEgAXQiAUGJ0QRxRQ0AA0AgCCAHQQFqIgk2AkwgASALciELIAcsAAEiCkEgayIBQSBPDQEgCSEHQQEgAXQiAUGJ0QRxDQALCwJAIApBKkYEQAJ/AkAgCSwAARCvAUUNACAJLQACQSRHDQAgCSwAAUECdCAEakHAAWtBCjYCACAJQQNqIQpBASEUIAksAAFBA3QgA2pBgANrKAIADAELIBQNBiAJQQFqIQogAEUEQCAIIAo2AkxBACEUQQAhEgwDCyACIAIoAgAiB0EEajYCAEEAIRQgBygCAAshEiAIIAo2AkwgEkEATg0BQQAgEmshEiALQYDAAHIhCwwBCyAIQcwAahC2ASISQQBIDQggCCgCTCEKC0EAIQdBfyEMAn8gCi0AAEEuRwRAIAohAUEADAELIAotAAFBKkYEQAJ/AkAgCiwAAhCvAUUNACAKLQADQSRHDQAgCiwAAkECdCAEakHAAWtBCjYCACAKQQRqIQEgCiwAAkEDdCADakGAA2soAgAMAQsgFA0GIApBAmohAUEAIABFDQAaIAIgAigCACIJQQRqNgIAIAkoAgALIQwgCCABNgJMIAxBf3NBH3YMAQsgCCAKQQFqNgJMIAhBzABqELYBIQwgCCgCTCEBQQELIRYDQCAHIQlBHCENIAEiCiwAACIHQfsAa0FGSQ0JIApBAWohASAHIAlBOmxqQc+REWotAAAiB0EBa0EISQ0ACyAIIAE2AkwCQAJAIAdBG0cEQCAHRQ0LIBFBAE4EQCAEIBFBAnRqIAc2AgAgCCADIBFBA3RqKQMANwNADAILIABFDQggCEFAayAHIAIgBhC3AQwCCyARQQBODQoLQQAhByAARQ0HCyALQf//e3EiFSALIAtBgMAAcRshC0EAIRFBvQkhFyATIQ0CQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCAKLAAAIgdBX3EgByAHQQ9xQQNGGyAHIAkbIgdB2ABrDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAdBwQBrDgcOFAsUDg4OAAsgB0HTAEYNCQwTCyAIKQNAIRlBvQkMBQtBACEHAkACQAJAAkACQAJAAkAgCUH/AXEOCAABAgMEGgUGGgsgCCgCQCAQNgIADBkLIAgoAkAgEDYCAAwYCyAIKAJAIBCsNwMADBcLIAgoAkAgEDsBAAwWCyAIKAJAIBA6AAAMFQsgCCgCQCAQNgIADBQLIAgoAkAgEKw3AwAMEwtBCCAMIAxBCE0bIQwgC0EIciELQfgAIQcLIBMhDiAHQSBxIQkgCCkDQCIZQgBSBEADQCAOQQFrIg4gGadBD3FB4JURai0AACAJcjoAACAZQg9WIRUgGUIEiCEZIBUNAAsLIAgpA0BQDQMgC0EIcUUNAyAHQQR2Qb0JaiEXQQIhEQwDCyATIQcgCCkDQCIZQgBSBEADQCAHQQFrIgcgGadBB3FBMHI6AAAgGUIHViEOIBlCA4ghGSAODQALCyAHIQ4gC0EIcUUNAiAMIBMgDmsiB0EBaiAHIAxIGyEMDAILIAgpA0AiGUIAUwRAIAhCACAZfSIZNwNAQQEhEUG9CQwBCyALQYAQcQRAQQEhEUG+CQwBC0G/CUG9CSALQQFxIhEbCyEXIBkgExC4ASEOCyAWQQAgDEEASBsNDiALQf//e3EgCyAWGyELAkAgCCkDQCIZQgBSDQAgDA0AIBMiDiENQQAhDAwMCyAMIBlQIBMgDmtqIgcgByAMSBshDAwLCwJ/Qf////8HIAwgDEH/////B08bIgkiCkEARyELAkACQAJAIAgoAkAiB0GWDSAHGyIOIgciDUEDcUUNACAKRQ0AA0AgDS0AAEUNAiAKQQFrIgpBAEchCyANQQFqIg1BA3FFDQEgCg0ACwsgC0UNAQJAIA0tAABFDQAgCkEESQ0AA0AgDSgCACILQX9zIAtBgYKECGtxQYCBgoR4cQ0CIA1BBGohDSAKQQRrIgpBA0sNAAsLIApFDQELA0AgDSANLQAARQ0CGiANQQFqIQ0gCkEBayIKDQALC0EACyINIAdrIAkgDRsiByAOaiENIAxBAE4EQCAVIQsgByEMDAsLIBUhCyAHIQwgDS0AAA0NDAoLIAwEQCAIKAJADAILQQAhByAAQSAgEkEAIAsQuQEMAgsgCEEANgIMIAggCCkDQD4CCCAIIAhBCGo2AkBBfyEMIAhBCGoLIQ9BACEHAkADQCAPKAIAIglFDQECQCAIQQRqIAkQvwEiCUEASCIODQAgCSAMIAdrSw0AIA9BBGohDyAMIAcgCWoiB0sNAQwCCwsgDg0NC0E9IQ0gB0EASA0LIABBICASIAcgCxC5ASAHRQRAQQAhBwwBC0EAIQkgCCgCQCEPA0AgDygCACIORQ0BIAhBBGogDhC/ASIOIAlqIgkgB0sNASAAIAhBBGogDhC1ASAPQQRqIQ8gByAJSw0ACwsgAEEgIBIgByALQYDAAHMQuQEgEiAHIAcgEkgbIQcMCAsgFkEAIAxBAEgbDQhBPSENIAAgCCsDQCASIAwgCyAHIAUREAAiB0EATg0HDAkLIAggCCkDQDwAN0EBIQwgGCEOIBUhCwwECyAHLQABIQ8gB0EBaiEHDAALAAsgAA0HIBRFDQJBASEHA0AgBCAHQQJ0aigCACIPBEAgAyAHQQN0aiAPIAIgBhC3AUEBIRAgB0EBaiIHQQpHDQEMCQsLQQEhECAHQQpPDQcDQCAEIAdBAnRqKAIADQEgB0EBaiIHQQpHDQALDAcLQRwhDQwECyAMIA0gDmsiCiAKIAxIGyIMIBFB/////wdzSg0CQT0hDSASIAwgEWoiCSAJIBJIGyIHIA9KDQMgAEEgIAcgCSALELkBIAAgFyARELUBIABBMCAHIAkgC0GAgARzELkBIABBMCAMIApBABC5ASAAIA4gChC1ASAAQSAgByAJIAtBgMAAcxC5AQwBCwtBACEQDAMLQT0hDQtB6MoSIA02AgALQX8hEAsgCEHQAGokACAQCxgAIAAtAABBIHFFBEAgASACIAAQsgEaCwttAQN/IAAoAgAsAAAQrwFFBEBBAA8LA0AgACgCACEDQX8hASACQcyZs+YATQRAQX8gAywAAEEwayIBIAJBCmwiAmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRAQQEhEUH6DSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFB/Q0hEwwBC0GADkH7DSAEQQFxIhEbIRMgEUUhFwsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIGIARB//97cRC5ASAAIBMgERC1ASAAQeMQQeMRIAVBIHEiBxtBoQ9BohAgBxsgASABYhtBAxC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQwBCyAKQRBqIRICQAJ/AkAgASAKQSxqELEBIgEgAaAiAUQAAAAAAAAAAGIEQCAKIAooAiwiBkEBazYCLCAFQSByIhVB4QBHDQEMAwsgBUEgciIVQeEARg0CIAooAiwhFEEGIAMgA0EASBsMAQsgCiAGQR1rIhQ2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQwgCkEwakGgAkEAIBRBAE4baiIPIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiBjYCACAHQQRqIQcgASAGuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgFEEATARAIBQhAyAHIQYgDyEIDAELIA8hCCAUIQMDQEEdIAMgA0EdThshAwJAIAdBBGsiBiAISQ0AIAOtIRpCACEZA0AgBiAZQv////8PgyAGNQIAIBqGfCIZIBlCgJTr3AOAIhlCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgGaciBkUNACAIQQRrIgggBjYCAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAKIAooAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgA0EASARAIAxBGWpBCW5BAWohECAVQeYARiEWA0BBCUEAIANrIgcgB0EJThshCwJAIAYgCE0EQCAIKAIAIQcMAQtBgJTr3AMgC3YhDUF/IAt0QX9zIQ5BACEDIAghBwNAIAcgBygCACIJIAt2IANqNgIAIAkgDnEgDWwhAyAHQQRqIgcgBkkNAAsgCCgCACEHIANFDQAgBiADNgIAIAZBBGohBgsgCiAKKAIsIAtqIgM2AiwgDyAIIAdFQQJ0aiIIIBYbIgcgEEECdGogBiAGIAdrQQJ1IBBKGyEGIANBAEgNAAsLQQAhAwJAIAYgCE0NACAPIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCUEKSQ0AA0AgA0EBaiEDIAkgB0EKbCIHTw0ACwsgDCADQQAgFUHmAEcbayAVQecARiAMQQBHcWsiByAGIA9rQQJ1QQlsQQlrSARAQQRBpAIgFEEASBsgCmogB0GAyABqIglBCW0iDUECdGpB0B9rIQtBCiEHIAkgDUEJbGsiCUEHTARAA0AgB0EKbCEHIAlBAWoiCUEIRw0ACwsCQCALKAIAIgkgCSAHbiIQIAdsayINRSALQQRqIg4gBkZxDQACQCAQQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cNASAIIAtPDQEgC0EEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAORhtEAAAAAAAA+D8gDSAHQQF2Ig5GGyANIA5JGyEYAkAgFw0AIBMtAABBLUcNACAYmiEYIAGaIQELIAsgCSANayIJNgIAIAEgGKAgAWENACALIAcgCWoiBzYCACAHQYCU69wDTwRAA0AgC0EANgIAIAggC0EEayILSwRAIAhBBGsiCEEANgIACyALIAsoAgBBAWoiBzYCACAHQf+T69wDSw0ACwsgDyAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAtBBGoiByAGIAYgB0sbIQYLA0AgBiIHIAhNIglFBEAgB0EEayIGKAIARQ0BCwsCQCAVQecARwRAIARBCHEhCwwBCyADQX9zQX8gDEEBIAwbIgYgA0ogA0F7SnEiCxsgBmohDEF/QX4gCxsgBWohBSAEQQhxIgsNAEF3IQYCQCAJDQAgB0EEaygCACILRQ0AQQohCUEAIQYgC0EKcA0AA0AgBiINQQFqIQYgCyAJQQpsIglwRQ0ACyANQX9zIQYLIAcgD2tBAnVBCWwhCSAFQV9xQcYARgRAQQAhCyAMIAYgCWpBCWsiBkEAIAZBAEobIgYgBiAMShshDAwBC0EAIQsgDCADIAlqIAZqQQlrIgZBACAGQQBKGyIGIAYgDEobIQwLQX8hCSAMQf3///8HQf7///8HIAsgDHIiDRtKDQEgDCANQQBHakEBaiEOAkAgBUFfcSIWQcYARgRAIAMgDkH/////B3NKDQMgA0EAIANBAEobIQYMAQsgEiADIANBH3UiBnMgBmutIBIQuAEiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiECAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgEGsiBiAOQf////8Hc0oNAgsgBiAOaiIGIBFB/////wdzSg0BIABBICACIAYgEWoiDiAEELkBIAAgEyARELUBIABBMCACIA4gBEGAgARzELkBAkACQAJAIBZBxgBGBEAgCkEQakEIciELIApBEGpBCXIhAyAPIAggCCAPSxsiCSEIA0AgCDUCACADELgBIQYCQCAIIAlHBEAgBiAKQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwwBCyADIAZHDQAgCkEwOgAYIAshBgsgACAGIAMgBmsQtQEgCEEEaiIIIA9NDQALIA0EQCAAQawSQQEQtQELIAcgCE0NASAMQQBMDQEDQCAINQIAIAMQuAEiBiAKQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwsgACAGQQkgDCAMQQlOGxC1ASAMQQlrIQYgCEEEaiIIIAdPDQMgDEEJSiEJIAYhDCAJDQALDAILAkAgDEEASA0AIAcgCEEEaiAHIAhLGyENIApBEGpBCHIhDyAKQRBqQQlyIQMgCCEHA0AgAyAHNQIAIAMQuAEiBkYEQCAKQTA6ABggDyEGCwJAIAcgCEcEQCAGIApBEGpNDQEDQCAGQQFrIgZBMDoAACAGIApBEGpLDQALDAELIAAgBkEBELUBIAZBAWohBiALIAxyRQ0AIABBrBJBARC1AQsgACAGIAwgAyAGayIJIAkgDEobELUBIAwgCWshDCAHQQRqIgcgDU8NASAMQQBODQALCyAAQTAgDEESakESQQAQuQEgACAQIBIgEGsQtQEMAgsgDCEGCyAAQTAgBkEJakEJQQAQuQELIABBICACIA4gBEGAwABzELkBIA4gAiACIA5IGyEJDAELIBMgBUEadEEfdUEJcWohDgJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIA4tAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBIgCigCLCIGIAZBH3UiBnMgBmutIBIQuAEiBkYEQCAKQTA6AA8gCkEPaiEGCyARQQJyIQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBKBEADQCAbIA1BAnQiCmogACAKaigCACEVIAEgCmooAgAhE0EAIQVBACEWQQAhFCMAQRBrIhokAEGUzBICf0HolxEoAgAhCCAaQQxqIhdBAUGIAxDPASIDNgIAQXsgA0UNABogEyAVaiEGQYyaESgCACEJAkACQAJAAkBB7L8SLQAARQRAQYjAEi0AAEUEQEGIwBJBAToAAAtB7L8SQQE6AABBaSEQAkACQEG4vhItAABBAXFFDQBB1L0SKAIAIgdFDQACQEGMwBIoAgAiBEEATA0AA0AgBUEDdEGQwBJqKAIAQZS9EkcEQCAFQQFqIgUgBEcNAQwCCwsgBUEDdEGQwBJqKAIEDQELIAcRCgAiBA0BQYzAEigCACIEQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQZS9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgBEcNAAsgBEESSg0BC0GMwBIgBEEBajYCACAEQQN0QZDAEmoiBUEBNgIEIAVBlL0SNgIACwJAQay+EigCACIHRQ0AAkBBjMASKAIAIgRBAEwNAEEAIQUDQCAFQQN0QZDAEmooAgBB7L0SRwRAIAVBAWoiBSAERw0BDAILC0EAIQQgBUEDdEGQwBJqKAIEDQILIAcRCgAiBA0BQYzAEigCACIHQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQey9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgB0cNAAtBACEEIAdBEkoNAgtBjMASIAdBAWo2AgAgB0EDdEGQwBJqIgVBATYCBCAFQey9EjYCAAtBACEECyAEDQFB7JcRKAIAIhBBAUcEQEGQCSAQEQQACwsMAQsgFygCABDMAQwBCyAIKAIMIQVBACEQIANBADYChAMgA0EANgJwIAMgCDYCTCADQey9EjYCRCADQgA3AlQgA0EANgIQIANCADcCCCADQQA2AgAgAyAFQYACciIINgJIIAMgCUH+/7//e3FBAXIgCSAIQYCAAnEbNgJQIBcoAgAhBCAVIQUgBiEDIwBBkAVrIggkACAIQQA2AhAgCEIANwMIAkACQAJAAkAgBCgCEEUEQCAEKAIAQaABEM0BIglFDQEgBCAJNgIAIAQoAgRBIBDNASIJRQ0BIARBCDYCECAEQQA2AgggBCAJNgIECyAEQQA2AgwgCEG8AWohEiAIQQhqIQwjAEEQayIJJAAgCUEANgIMIAQoAkQhC0GczBJBADYCAEGYzBIgCzYCACAJQQxqIREgCEEYaiIHIQYjAEFAaiILJAAgBEIANwIUIARCADcCPCAEQgA3AhwgBEEANgIkIAQoAlQiDwRAIA9BAkEAEJEBCyAGQgA3AiQgBkEANgIYIAZCADcCECAGQTBqQQBB9AAQqAEaIAYgBCgCSDYCACAGIAQoAlA2AgQgBiAEKAJENgIIIAQoAkwhDyAGIAQ2AiwgBiADNgIgIAYgBTYCHCAGIA82AgwgEUEANgIAAkAgBSADIAYoAggoAkgRAABFBEBB8HwhBQwBCyALIAU2AgwgC0EANgIUIAtBEGogC0EMaiADIAYQGiIFQQBIDQAgESALQRBqQQAgC0EMaiADIAZBABAbIgNBAEgEQCADQR91IANxIQUMAQsCQCAGLQCgAUEBcUUEQCAGKAI0IQUMAQsgESgCACEFQQFBOBDPASIDRQRAQXshBQwCCyADQQU2AgAgAyAFNgIMIANC/////x83AhggBigCNCIFQQBIBEAgAxARIAMQzAFBdSEFDAILIAYoAoABIg8gBkFAayAPGyADNgIAIBEgAzYCAAsgBCAFNgIcQQAhBSAEKAKEAyIORQ0AIA4oAgwiA0EATA0AIA4oAggiBgRAIAZBBSAOEJEBIA4oAgwiA0EATA0BCwNAAkAgDigCFCAWQdwAbGoiBigCBEEBRw0AIAYoAiQiBUEATA0AIAZBJGohA0EAIQYDQCADIAZBAnRqKAIIQRBGBEACQAJAIAQoAoQDIgVFDQAgBSgCCCIFRQ0AIAMgBkEDdGoiEUEYaiIcKAIAIQ8gCyARKAIcNgIUIAsgDzYCECAFIAtBEGogC0E8ahCPAQ0BC0GZfiEFDAULIAsoAjwiBUEASA0EIBwgBTYCACADKAIAIQULIAZBAWoiBiAFSA0ACyAOKAIMIQMLQQAhBSAWQQFqIhYgA0gNAAsLIAtBQGskAAJAAkAgBSIGDQACQCAHLQCgAUECcUUNAEEAIQUgCUEMaiEDQYh/IQYDQCADKAIAIgMoAgAiC0EHRwRAIAtBBUcNAyADKAIQQQFHDQMgAy0AB0EQcUUNAyAFQQFHDQIgAygCDA0DBUEBIAUgAygCEBshBSADQQxqIQMMAQsLCyAJKAIMIAQoAkQQQyIGDQACQCAHKAI4IgNBAEwNACAHKAIMLQAIQYABcUUNACAELQBJQQFxDQACfyAHKAI0IANHBEAgCUEMaiEGIAQhBSMAQRBrIgMhFiADJAAgAyAHKAI0IgtBAnQiDkETakFwcWsiDyQAIAtBAEoEQCAPQQRqQQAgDhCoARoLIBZBADYCDAJAIAYgDyAWQQxqEFUiA0EASA0AIAYoAgAgDxBWIgMNACAHKAI0Ig5BAEoEQCAHQUBrIRFBASELQQEhAwNAIA8gA0ECdGooAgBBAEoEQCAHKAKAASIGIBEgBhsiBiALQQN0aiAGIANBA3RqKQIANwIAIAcoAjQhDiALQQFqIQsLIAMgDkghBiADQQFqIQMgBg0ACwsgBygCECERQQAhDiAHQQA2AhBBASEDA0ACQCARIAN2IgZBAXFFDQAgDyADQQJ0aigCACILQR9KDQAgByAOQQEgC3RyIg42AhALIANBAWoiC0EgRwRAAkAgBkECcUUNACAPIAtBAnRqKAIAIgZBH0oNACAHIA5BASAGdHIiDjYCEAsgA0ECaiEDDAELCyAHIAcoAjgiAzYCNCAFIAM2AhwgBSgCVCIFBEAgBUEDIA8QkQELQQAhAwsgFkEQaiQAIAMMAQsgCSgCDBBECyIGDQELIAkoAgwgBxBFIgYNAAJAIAQgBygCMCIDQQBKBH8gA0EDdBDLASIFRQRAQXshBgwDCyAMIAU2AgggDCADNgIEIAxBADYCACAHIAw2ApgBIAkoAgwgB0EAEEYiBg0BIAkoAgwQRyAJKAIMIAdBABBIIgZBAEgNASAJKAIMIAcQSSIGDQEgCSgCDEEAEEogBygCMAUgAws2AiggCSgCDCAEQQAgBxBLIgYNACAHKAKEAQRAIAkoAgxBABBMIAkoAgxBACAHEE0gCSgCDCAHEE4LQQAhBiAJKAIMIQMMAgsgBygCMEEATA0AIAwoAggiA0UNACADEMwBCyAHKAIkIgMEQEGczBIgAzYCAEGgzBIgBygCKDYCAAsgCSgCDBAQQQAhAyAHKAKAASIFRQ0AIAUQzAELIBIgAzYCACAJQRBqJAAgBiIDDQMgBCAIKAIoIgU2AiwgBCAFIAgoAiwiB3IiAzYCMCAEKAKEAyIJBEAgCSgCDA0DCyAIKAIwIQkgA0EBcUUNASAFIAlyIQMMAgtBeyEDIAQoAkQhBEGczBJBADYCAEGYzBIgBDYCAAwCCyAHIAlxIAVyIQMLIARBADYC+AIgBEEANgJ0IAQgAzYCNCAEQgA3AlggBEIANwJgIARCADcCaCAEKAJwIgMEQCADEMwBIARBADYCcAsgCCgCvAEhDiAIIAQoAkQ2AsgBIAggBCgCUDYCzAEgCEIANwPAASAIIAhBGGo2AtABAkACQAJ/AkACQAJAIA4gCEHYAWogCEHAAWoQQCIDRQRAIARB1IABQdSAAyAIKALgASIFQQZxGyAFcSAIKALkASIDQYIDcXI2AmAgA0GAA3EEQCAEIAgoAtgBNgJkIAQgCCgC3AE2AmgLIAgoAvwBQQBMBEAgCCgCrAJBAEwNAgsgBCgCRCIHIAhB6AFqIAhBmAJqEEECQCAIKAKIAyIFQQBMBEAgCCgC/AEhAwwBC0HIASAFbiEJIAgoAvwBIQMgBUHIAUsNACADQTxsIgxBAEwNA0EAIQUCf0EAIAgoAuwBIhJBf0YNABpBASASIAgoAugBayISQeMASw0AGiASQQF0QbAZai4BAAsgDGwhBgJAIAgoAvwCIgxBf0YNAEEBIQUgDCAIKAL4AmsiDEHjAEsNACAMQQF0QbAZai4BACEFCyAFIAlsIgUgBkoNAyAFIAZIDQAgCCgC+AIgCCgC6AFJDQMLAkAgA0UEQEEAIQNBASEJDAELIAQgAxDLASIFNgJwQQAhCSAFRQRAQXshAwwBCyAEIAUgCEGAAmogAxCmASIFIANqIgM2AnRBASEGIAUgAyAHKAI8EQAAIQ8CQCAIKAL8ASIDQQFMBEAgA0EBRw0BIA9FDQELIAQoAnQhCyAEKAJwIQcgBCgCRCIRKAJMQQJ2QQdxIgVBB0YEQCAHIQMDQCADIAMgESgCABEBACIFaiIDIAtJDQALIAVBAUYhBQtBdSEDIAUgCyAHa2oiBkH+AUoNASAEIAU2AvgCIARB+ABqIAZBgAIQqAEhEiAHIAtJBEAgBSALakEBayEMA0BBACEDAkAgCyAHayAHIBEoAgARAQAiBSAFIAdqIAtLGyIGQQBMDQADQCAMIAMgB2oiBWsiCUEATA0BIBIgBS0AAGogCToAACADQQFqIgMgBkgNAAsLIAYgB2oiByALSQ0ACwtBAkEDIA8bIQYLIAQgBjYCWCAEIAgoAugBIgU2AvwCIAQgCCgC7AE2AoADQQAhA0EBIQkgBUF/Rg0AIAQgBSAEKAJ0aiAEKAJwazYCXAsgBCAIKAL0AUGABHEgBCgCbCAIKALwAUEgcXJyNgJsIAkNBQsgCCgCSEEATA0FIAgoAhAiBEUNBSAEEMwBDAULIAgoAogDQQBMDQELIARB+ABqIAhBjANqQYACEKYBGiAEQQQ2AlggBCAIKAL4AiIDNgL8AiAEIAgoAvwCNgKAAyADQX9HBEAgBCAEKAJEKAIMIANqNgJcCyAEKAJsIAgoAoADQSBxciEFIAgoAoQDIQMgBEHsAGoMAQsgBCAEKAJsIAVBIHFyIgU2AmwgCCgC3AENASAEQewAagsgBSADQYAEcXI2AgALIAgoApgBIgMEQCADEMwBIAhBADYCmAELAkACQAJAIA4gBCAIQRhqEEIiA0UEQCAIKAKgAUEASgRAAkAgBCgCDCIDIAQoAhAiBUkNACAFRQ0AIAVBAXQiCUEATARAQXUhAwwHC0F7IQMgBCgCACAFQShsEM0BIgdFDQYgBCAHNgIAIAQoAgQgBUEDdBDNASIFRQ0GIAQgCTYCECAEIAU2AgQgBCgCDCEDCyAEIANBAWo2AgwgBCAEKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgBCgCBCAEKAIIIAQoAgBrQRRtQQJ0akHPADYCACAEKAIIQQA2AgQgBCgCCEEANgIIIAQoAghBADYCDAsCQCAEKAIMIgMgBCgCECIFSQ0AIAVFDQAgBUEBdCIJQQBMBEBBdSEDDAYLQXshAyAEKAIAIAVBKGwQzQEiB0UNBSAEIAc2AgAgBCgCBCAFQQN0EM0BIgVFDQUgBCAJNgIQIAQgBTYCBCAEKAIMIQMLIAQgA0EBajYCDCAEIAQoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACAEKAIEIAQoAgggBCgCAGtBFG1BAnRqQQE2AgAgCCgCSEEASgRAAn9BACEFIAhBCGoiDCgCACILQQBKBEAgDCgCCCEDA0ACQCADIAVBA3RqIgcoAgQiCSgCBCIGQYACcUUEQCAGQYABcUUNAUF1DAQLIAQoAgAgBygCAGogCSgCGDYCACAMKAIAIQsLIAVBAWoiBSALSA0ACwtBAAshAyAIKAIQIgUEQCAFEMwBCyADDQULAn9BACEHAkAgBCgCDCIDIAQoAhBGDQBBdSADQQBMDQEaQXshByAEKAIAIANBFGwQzQEiBUUNACAEIAU2AgAgBCgCBCADQQJ0EM0BIgVFDQAgBCADNgIQIAQgBTYCBEEAIQcgBCAEKAIMIgUEfyAEKAIAIAVBFGxqQRRrBUEACzYCCAsgBwsiAw0EIAQoAiBBAEoEQEEAIQMDQCAEKAJAIANBDGxqIgUgBCgCACAFKAIIQRRsajYCCCADQQFqIgMgBCgCIEgNAAsLAkAgBCgCNA0AIAQoAoQDIgMEQCADKAIMDQEgCCgCSEEASg0BDAMLIAgoAkhBAEwNAgsgBEECNgI4DAILIAgoAkhBAEwNAiAIKAIQIgVFDQIgBRDMAQwCCyAEKAIwBEAgBEEBNgI4DAELIARBADYCOAsCf0EAIQdBACEGAkAgBCgCACIMRQ0AIAQoAgwiCUEATA0AIAQoAgQhBQNAAkACQAJAAkAgBSAHQQJ0aigCAEEHaw4HAQMDAwECAAMLIAwgB0EUbGoiAygCCCADKAIMbCAGaiEGDAILIAwgB0EUbGooAghBAXQgBmohBgwBCyAMIAdBFGxqKAIIQQNsIAZqIQYLIAdBAWoiByAJRw0ACyAGQQBKBEBBeyAGEMsBIgNFDQIaQQAhByADIQUDQCAEKAIAIQkCQCAFAn8CQAJAAkACQAJAIAQoAgQgB0ECdGooAgBBB2sOBwAGBgYBAgMGCyAJIAdBFGxqKAIIIQwMAwsgCSAHQRRsaigCCEEBdCEMDAILIAkgB0EUbGooAghBA2whDAwBCyAJIAdBFGxqIgkoAgggCSgCDGwhDCAJQQRqDAELIAkgB0EUbGpBBGoLIgkoAgAgDBCmASEFIAkoAgAQzAEgCSAFNgIAIAUgDGohBQsgB0EBaiIHIAQoAgxIDQALIAQgAzYCFCAEIAMgBmo2AhgLC0EACyIDDQFBACEDCyAOEBBBACELQQAhEgJAIAQoAgwiBUUNACAFQQNxIQYgBCgCBCEHIAQoAgAhBAJAIAVBAWtBA0kEQEEAIQUMAQsgBUF8cSEMQQAhBQNAIAQgByAFQQJ0IglqKAIAQQJ0QYAdaigCADYCACAEIAcgCUEEcmooAgBBAnRBgB1qKAIANgIUIAQgByAJQQhyaigCAEECdEGAHWooAgA2AiggBCAHIAlBDHJqKAIAQQJ0QYAdaigCADYCPCAFQQRqIQUgBEHQAGohBCALQQRqIgsgDEcNAAsLIAZFDQADQCAEIAcgBUECdGooAgBBAnRBgB1qKAIANgIAIAVBAWohBSAEQRRqIQQgEkEBaiISIAZHDQALCwwBCyAIKAI8IgQEQEGczBIgBDYCAEGgzBIgCCgCQDYCAAsgDhAQIAgoApgBIgRFDQAgBBDMAQsgCEGQBWokACADRQ0BIBcoAgAiCARAIAgQPyAIEMwBCyADIRALIBdBADYCAAsgEAsiAzYCACADRQRAQSQQywEiFCATNgIEIBQgExDLASIDNgIAIAMgFSATEKYBGiAUIBooAgw2AghBFBDLASIQBEAgEEIANwIAIBBBADYCECAQQgA3AggLIBQgEDYCDEEBIQVBACEDAkAgE0EATARAQQAhBQwBCwNAIAMiEEEBaiEDAkAgECAVai0AAEHcAEcNACADIBNODQAgAyAVai0AAEHHAEYNAgsgAyATSCEFIAMgE0cNAAsLIBRCADcCFCAUIAU6ABAgFEIANwAZCyAaQRBqJAAgFCIDNgIAIAogGWogAygCCDYCACANQQFqIg0gAkcNAAsLIAIhASAZIQAgGEEMaiIVQQA2AgACQAJAQSQQywEiCgR/QQogASABQQpMGyIFQQN0EMsBIgRFDQEgCiAFNgIIQQAhBSAKQQA2AgQgCiAENgIAIAFBAEoEQANAAn9BYiEDAkAgACAFQQJ0aigCACINLQBIQRBxDQAgCigCBCIGBEAgDSgCRCAKKAIMRw0BCyAKKAIIIgMgBkwEQEF7IAooAgAgA0EEdBDNASIGRQ0CGiAKIAY2AgAgCiADQQF0NgIIC0F7QRQQywEiA0UNARogA0IANwIAIANBADYCECADQgA3AgggCigCACAKKAIEIgZBA3RqIhAgAzYCBCAQIA02AgAgCiAGQQFqNgIEAkAgBkUEQCAKIA0oAkQ2AgwgCiANKAJgIgM2AhAgCiANKAJkNgIUIAogDSgCaDYCGCAKIA0oAlgEfyANKAKAA0F/RwVBAAs2AhwgA0EOdkEBcSENDAELIA0oAmAiBiAKKAIQcSIDBEAgDSgCZCEQIAogCigCGCIHIA0oAmgiBCAEIAdJGzYCGCAKIAooAhQiByAQIAcgEEkbNgIUCyAKIAM2AhACQCANKAJYBEAgDSgCgANBf0cNAQsgCkEANgIcC0EBIQ1BACEDIAZBgIABcUUNAQsgCiANNgIgQQAhAwsgAwsEQCAKKAIEIgBBAEoEQEEAIQEDQCAKKAIAIAFBA3RqKAIEIgUEQCAFKAIAQQBKBEAgBSgCCCIABEAgABDMAQsgBSgCDCIABEAgABDMAQsgBUEANgIACyAFKAIQIgAEQCAAEGYLIAUQzAEgCigCBCEACyABQQFqIgEgAEgNAAsLIAooAgAQzAEMBAsgBUEBaiIFIAFIDQALCyAVIAo2AgBBAAVBewsaDAELIAoQzAELIBkQzAFBDBDLASEKIBgoAgwhDSAKIAI2AgggCiAbNgIEIAogDTYCACAYQRBqJAAgCgu/AgEEfyAAKAIIQQBKBEADQCAAKAIEIANBAnRqKAIAIgQoAgAQzAEgBCgCDCIBBEAgASgCAEEASgRAIAEoAggiAgRAIAIQzAELIAEoAgwiAgRAIAIQzAELIAFBADYCAAsgASgCECICBEAgAhBmIAFBADYCEAsgARDMAQsgBBDMASADQQFqIgMgACgCCEgNAAsLIAAoAgQQzAFBACEEIAAoAgAiAygCBEEASgRAA0AgAygCACAEQQN0aiIBKAIEIQIgASgCACIBBEAgARA/IAEQzAELIAIEQCACKAIAQQBKBEAgAigCCCIBBEAgARDMAQsgAigCDCIBBEAgARDMAQsgAkEANgIACyACKAIQIgEEQCABEGYLIAIQzAELIARBAWoiBCADKAIESA0ACwsgAygCABDMASADEMwBIAAQzAFBAAvKHQETfyMAQRBrIhUkACAVQQA2AgwgBUEWdEGAgIAOcSEQAkACQCADQegHTgRAIAAoAghBAEwNAkEAIQUDQAJAIAAoAgQgBUECdGooAgAgASACIAMgBCAQEMMBIgZFDQAgBigCBEEATA0AIAUgESAMRSAGKAIIKAIAIhQgE0hyIggbIREgBiAMIAgbIQwgBCAURg0DIBQgEyAIGyETCyAFQQFqIgUgACgCCEgNAAsgDA0BQQAhEwwCCwJ/IAIgA2ohBUEAIQNBeyAAKAIAIgsoAgQiAUEobBDLASIRRQ0AGiACIARqIQogFUEMaiEWIBEgAUECdGohFAJAIAFBAEwNACABQQFxIQdBhMASKAIAIQRBgMASKAIAIQZB+L8SKAIAIQxBkJoRKAIAIQhB9L8SKAIAIQkgAUEBRwRAIAFBfnEhDQNAIBQgA0EkbGoiAUEANgIgIAFCADcCGCABIAQ2AhQgASAGNgIQIAFBADYCDCABIAw2AgggASAINgIEIAEgCTYCACARIANBAnRqIAE2AgAgFCADQQFyIg5BJGxqIgFBADYCICABQgA3AhggASAENgIUIAEgBjYCECABQQA2AgwgASAMNgIIIAEgCDYCBCABIAk2AgAgESAOQQJ0aiABNgIAIANBAmohAyAPQQJqIg8gDUcNAAsLIAdFDQAgFCADQSRsaiIBQQA2AiAgAUIANwIYIAEgBDYCFCABIAY2AhAgAUEANgIMIAEgDDYCCCABIAg2AgQgASAJNgIAIBEgA0ECdGogATYCAAsCfyACIQMgCiEBIAUhDCARIQlBACEOQX8gCygCBCIGRQ0AGkFiIQoCQCAQQYCQgBBxDQAgCygCDCESIAZBAEoEQANAIAsoAgAgDkEDdGoiBigCBCEHIAYoAgAiCigChAMhBiAJIA5BAnRqKAIAIghBADYCGAJAIAZFDQAgBigCDCINRQ0AAkAgCCgCICIPIA1OBEAgCCgCHCENDAELIA1BBnQhDUF7An8gCCgCHCIPBEAgDyANEM0BDAELIA0QywELIg1FDQUaIAggDTYCHCAIIAYoAgwiDzYCIAsgDUEAIA9BBnQQqAEaCwJAIAdFDQAgByAKKAIcQQFqEGciCg0DIAcoAgRBAEoEQCAHKAIIIQogBygCDCENQQAhBgNAIA0gBkECdCIIakF/NgIAIAggCmpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAOQQFqIg4gCygCBEgNAAsLQX8gASAFSw0BGkF/IAEgA0kNARogAyAFTyIGRQRAQWIhCiABIAxLDQELAkAgEEGAIHFFDQAgAyAFIBIoAkgRAAANAEHwfAwCCwJAAkACQAJAAkACQAJAAkACQCAGDQAgCygCECIGRQ0AIAZBwABxDQQgBkEQcQRAQX8hCiABIANHDQogAUEBaiEEIAEhAgwGCyAFIQggBkGAAXENAyAGQYACcUUNASASIAMgBUEBEHkiBiAFIAYgBSASKAIQEQAAIgcbIQggAyAGSSABIAZNcQ0DIAwhBCABIQIgB0UNAwwFCyAMIQQgASECIAMgBUcNBEF7IAsoAgQiDkE4bBDLASIPRQ0JGiAOQQBMBEBBfyEKDAYLIAsoAgAhAUEAIQgDQCABIAhBA3RqIgcoAgAhCiAPIAhBOGxqIgZBADYCACAGIAooAkggEHI2AgggBygCBCEHIAYgBTYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsMAQsgDCEEIAEhAiAGQYCAAnENAgwDC0EAIQogDkEATARAQX8hCgwECwJAA0AgCygCACAKQQN0aigCACIGKAJcRQRAIAYgBSAFIAUgBSAPIApBOGxqEGgiBkF/Rw0CIAsoAgQhDgsgCkEBaiIKIA5IDQALQX8hCgwECyAGQQBIBEAgBiEKDAQLIBZBADYCAAwEC0F/IAsoAhQiBiAFIANrSw0GGgJAIAsoAhgiByAIIAFrTwRAIAEhAgwBCyAIIAdrIgIgBU8NACASIAMgAhB3IQIgCygCFCEGC0F/IQogAiAFIAZrQQFqIAwgBSAMa0EBaiAGSRsiBE0NAQwFCyABQQFqIQQgASECC0F7IAsoAgQiDkE4bBDLASIPRQ0EGiAOQQBKBEAgCygCACESQQAhCANAIA8gCEE4bGoiBkEANgIAIAYgEiAIQQN0aiIHKAIAIgooAkggEHI2AgggBygCBCEHIAYgATYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsLIAMhECAFIQFBACEFIwBBEGsiBiQAIAsoAgwhFwJAIAsoAgQiCEEEdBDLASIHRQRAQXshAwwBCyAIQQBKBEAgASAEayENA0AgCygCACAFQQN0aigCACEJIAcgBUEEdGoiA0EANgIAAkAgCSgCWARAIAkoAoADIgpBf0cEQCAJIBAgASACIAQgCmogASAKIA1JGyIKIAZBDGogBkEIahBrRQ0CIANBATYCACADIAYoAgw2AgQgBigCCCEJIAMgCjYCDCADIAk2AggMAgsgCSAQIAEgAiABIAZBDGogBkEIahBrRQ0BCyADQQI2AgAgAyAENgIIIAMgAjYCBAsgBUEBaiIFIAhHDQALCwJAAkACQAJAIAQgAmtB9QNIDQAgCygCHEUNACAIQQBMIg4NAiAIQX5xIQ0gCEEBcSESIAhBAEohGANAQQAhCUEAIQUDQAJAIAcgBUEEdGoiAygCAEUNACACIAMoAgRJDQACQCADKAIIIAJNBEAgCygCACAFQQN0aigCACAQIAEgAiADKAIMIAZBDGogBkEIahBrRQ0BIAMgBigCDCIKNgIEIAMgBigCCDYCCCACIApJDQILIAsoAgAgBUEDdGooAgAgECABIAwgAiAPIAVBOGxqEGgiA0F/RwRAIANBAEgNBgwICyAJQQFqIQkMAQsgA0EANgIACyAFQQFqIgUgCEcNAAsgAiAETw0DAkAgCUUEQCAODQVBACEFIAQhAkEAIQMgCEEBRwRAA0AgByAFQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgByAFQQFyQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgBUECaiEFIANBAmoiAyANRw0ACwsCQCASRQ0AIAcgBUEEdGoiBSgCAEEBRw0AIAUoAgQiBSACIAIgBUsbIQILIAYgAjYCDCACIARHDQEMBQsgAiAXKAIAEQEAIAJqIQILIBgNAAsMAgsgCEEATCENQQEhCQNAIA1FBEBBACEFA0ACQAJAAkACQCAHIAVBBHRqIgMoAgAOAgMAAQsgAiADKAIESQ0CIAIgAygCCEkNACALKAIAIAVBA3RqKAIAIBAgASACIAMoAgwgBkEMaiAGQQhqEGtFDQEgAyAGKAIMIgo2AgQgAyAGKAIINgIIIAIgCkkNAgtBACALKAIAIAVBA3RqKAIAIgMtAGFBwABxIAkbDQEgAyAQIAEgDCACIA8gBUE4bGoQaCIDQX9GDQEgA0EATg0HDAULIANBADYCAAsgBUEBaiIFIAhHDQALCyACIARPDQIgCygCIARAIAIgASALKAIMKAIQEQAAIQkLIAIgFygCABEBACACaiECDAALAAsgBxDMAQwCCyAHEMwBQX8hAwwBCyAHEMwBIBYgAiAQazYCACAFIQMLIAZBEGokACADIgpBAE4NAQsgCygCBEEASgRAQQAhCQNAAkAgD0UNACAPIAlBOGxqKAIAIgZFDQAgBhDMAQsCQCALKAIAIAlBA3RqIgYoAgAtAEhBIHFFDQAgBigCBCIHRQ0AIAcoAgRBAEoEQCAHKAIIIQ0gBygCDCEOQQAhBgNAIA4gBkECdCIIakF/NgIAIAggDWpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAJQQFqIgkgCygCBEgNAAsLIA8NAQwCCyALKAIEQQBKBEBBACEJA0ACQCAPRQ0AIA8gCUE4bGooAgAiBkUNACAGEMwBCwJAIAsoAgAgCUEDdGoiBigCAC0ASEEgcUUNACAGKAIEIgdFDQAgBygCBEEASgRAIAcoAgghDSAHKAIMIQ5BACEGA0AgDiAGQQJ0IghqQX82AgAgCCANakF/NgIAIAZBAWoiBiAHKAIESA0ACwsgBygCECIGRQ0AIAYQZiAHQQA2AhALIAlBAWoiCSALKAIESA0ACwsgD0UNAQsgDxDMAQsgCgshDCALKAIEIgNBAEoEQEEAIQEDQCAUIAFBJGxqIgQoAhwiBgRAIAYQzAEgBEEANgIcIAsoAgQhAwsgAUEBaiIBIANIDQALCyAREMwBIAwLIgZBAEgNASAAKAIAIQBBACEBAkAgBkEASA0AIAAoAgQgBkwNACAAKAIAIAZBA3RqKAIEIQELIAEiDEUNASAMKAIEIgBB6AdKDQFBACEFQZTNEiAANgIAQZDNEiAGNgIAQZDNEiETIAwoAgRBAEwNASAMKAIMIQQgDCgCCCEDA0AgBUEDdCIGQZjNEmogAyAFQQJ0IgBqKAIANgIAIAZBnM0SaiAAIARqKAIANgIAIAVBAWoiBSAMKAIESA0ACwwBC0EAIRMgDCgCBCIGQegHSg0AQQAhBUGUzRIgBjYCAEGQzRIgETYCAEGQzRIhEyAMKAIEQQBMDQAgDCgCDCEEIAwoAgghAwNAIAVBA3QiBkGYzRJqIAMgBUECdCIAaigCADYCACAGQZzNEmogACAEaigCADYCACAFQQFqIgUgDCgCBEgNAAsLIBVBEGokACATC8MDAgh/AXwjAEFAaiIGJAAgBiACNgI0IAYgAzYCMEGQlhEgBkEwahDIAQJAIAAoAghBAEwEQBDKAQwBCyAFQRZ0QYCAgA5xIQ1BACEFAkACQANAIAYgBUECdCIHIAAoAgRqKAIAKQIAQiCJNwMgQc6WESAGQSBqEMgBEAEhDiAAKAIEIAdqKAIAIAEgAiADIAQgDRDDASEHEAEgDqEhDgJAAkAgB0UNACAHKAIEQQBMDQAgBiAHKAIIKAIAIgo2AhggBiAOOQMQQYqXESAGQRBqEMkBIAUgCyAIRSAJIApKciIMGyELIAcgCCAMGyEIIAQgCkYNAyAKIAkgDBshCQwBCyAGIA45AwBB8JURIAYQyQELIAVBAWoiBSAAKAIISA0ACxDKASAIDQFBACEJDAILEMoBC0EAIQkgCCgCBCIHQegHSg0AQQAhBUGUzRIgBzYCAEGQzRIgCzYCAEGQzRIhCSAIKAIEQQBMDQAgCCgCDCEKIAgoAgghBANAIAVBA3QiB0GYzRJqIAQgBUECdCIAaigCADYCACAHQZzNEmogACAKaigCADYCACAFQQFqIgUgCCgCBEgNAAsLIAZBQGskACAJCysBAX8jAEEQayICJAAgAiABNgIMQci+EiAAIAFBAEEAELMBGiACQRBqJAALKwEBfyMAQRBrIgIkACACIAE2AgxByL4SIAAgAUEOQQAQswEaIAJBEGokAAueAgECf0GUvxIoAgAaAkBBf0EAAn9B6JYREK0BIgACf0GUvxIoAgBBAEgEQEHolhEgAEHIvhIQsgEMAQtB6JYRIABByL4SELIBCyIBIABGDQAaIAELIABHG0EASA0AAkBBmL8SKAIAQQpGDQBB3L4SKAIAIgBB2L4SKAIARg0AQdy+EiAAQQFqNgIAIABBCjoAAAwBCyMAQRBrIgAkACAAQQo6AA8CQAJAQdi+EigCACIBBH8gAQVByL4SEK4BDQJB2L4SKAIAC0HcvhIoAgAiAUYNAEGYvxIoAgBBCkYNAEHcvhIgAUEBajYCACABQQo6AAAMAQtByL4SIABBD2pBAUHsvhIoAgARAgBBAUcNACAALQAPGgsgAEEQaiQACwugLgELfyMAQRBrIgskAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHYixMoAgAiBkEQIABBC2pBeHEgAEELSRsiBEEDdiIBdiIAQQNxBEACQCAAQX9zQQFxIAFqIgJBA3QiAUGAjBNqIgAgAUGIjBNqKAIAIgEoAggiBEYEQEHYixMgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBEHgixMoAgAiCE0NASAABEACQCAAIAF0QQIgAXQiAEEAIABrcnEiAEEBayAAQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgFBA3QiAEGAjBNqIgIgAEGIjBNqKAIAIgAoAggiA0YEQEHYixMgBkF+IAF3cSIGNgIADAELIAMgAjYCDCACIAM2AggLIAAgBEEDcjYCBCAAIARqIgMgAUEDdCIBIARrIgJBAXI2AgQgACABaiACNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAQJ/IAZBASAIQQN2dCIFcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCABNgIIIAUgATYCDCABIAQ2AgwgASAFNgIICyAAQQhqIQBB7IsTIAM2AgBB4IsTIAI2AgAMDAtB3IsTKAIAIglFDQEgCUEBayAJQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QYiOE2ooAgAiAygCBEF4cSAEayEBIAMhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAEayICIAEgASACSyICGyEBIAAgAyACGyEDIAAhAgwBCwsgAygCGCEKIAMgAygCDCIFRwRAIAMoAggiAEHoixMoAgBJGiAAIAU2AgwgBSAANgIIDAsLIANBFGoiAigCACIARQRAIAMoAhAiAEUNAyADQRBqIQILA0AgAiEHIAAiBUEUaiICKAIAIgANACAFQRBqIQIgBSgCECIADQALIAdBADYCAAwKC0F/IQQgAEG/f0sNACAAQQtqIgBBeHEhBEHcixMoAgAiCEUNAAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAHQiASABQYDgH2pBEHZBBHEiAXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgACABciACcmsiAEEBdCAEIABBFWp2QQFxckEcagshB0EAIARrIQECQAJAAkAgB0ECdEGIjhNqKAIAIgJFBEBBACEADAELQQAhACAEQRkgB0EBdmtBACAHQR9HG3QhAwNAAkAgAigCBEF4cSAEayIGIAFPDQAgAiEFIAYiAQ0AQQAhASACIQAMAwsgACACKAIUIgYgBiACIANBHXZBBHFqKAIQIgJGGyAAIAYbIQAgA0EBdCEDIAINAAsLIAAgBXJFBEBBACEFQQIgB3QiAEEAIABrciAIcSIARQ0DIABBAWsgAEF/c3EiACAAQQx2QRBxIgB2IgJBBXZBCHEiAyAAciACIAN2IgBBAnZBBHEiAnIgACACdiIAQQF2QQJxIgJyIAAgAnYiAEEBdkEBcSICciAAIAJ2akECdEGIjhNqKAIAIQALIABFDQELA0AgACgCBEF4cSAEayIGIAFJIQMgBiABIAMbIQEgACAFIAMbIQUgACgCECICBH8gAgUgACgCFAsiAA0ACwsgBUUNACABQeCLEygCACAEa08NACAFKAIYIQcgBSAFKAIMIgNHBEAgBSgCCCIAQeiLEygCAEkaIAAgAzYCDCADIAA2AggMCQsgBUEUaiICKAIAIgBFBEAgBSgCECIARQ0DIAVBEGohAgsDQCACIQYgACIDQRRqIgIoAgAiAA0AIANBEGohAiADKAIQIgANAAsgBkEANgIADAgLIARB4IsTKAIAIgBNBEBB7IsTKAIAIQECQCAAIARrIgJBEE8EQEHgixMgAjYCAEHsixMgASAEaiIDNgIAIAMgAkEBcjYCBCAAIAFqIAI2AgAgASAEQQNyNgIEDAELQeyLE0EANgIAQeCLE0EANgIAIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsgAUEIaiEADAoLIARB5IsTKAIAIgNJBEBB5IsTIAMgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwKC0EAIQAgBEEvaiIIAn9BsI8TKAIABEBBuI8TKAIADAELQbyPE0J/NwIAQbSPE0KAoICAgIAENwIAQbCPEyALQQxqQXBxQdiq1aoFczYCAEHEjxNBADYCAEGUjxNBADYCAEGAIAsiAWoiBkEAIAFrIgdxIgUgBE0NCUGQjxMoAgAiAQRAQYiPEygCACICIAVqIgkgAk0NCiABIAlJDQoLQZSPEy0AAEEEcQ0EAkACQEHwixMoAgAiAQRAQZiPEyEAA0AgASAAKAIAIgJPBEAgAiAAKAIEaiABSw0DCyAAKAIIIgANAAsLQQAQ0AEiA0F/Rg0FIAUhBkG0jxMoAgAiAEEBayIBIANxBEAgBSADayABIANqQQAgAGtxaiEGCyAEIAZPDQUgBkH+////B0sNBUGQjxMoAgAiAARAQYiPEygCACIBIAZqIgIgAU0NBiAAIAJJDQYLIAYQ0AEiACADRw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGENABIgMgACgCACAAKAIEakYNAyADIQALAkAgAEF/Rg0AIARBMGogBk0NAEG4jxMoAgAiASAIIAZrakEAIAFrcSIBQf7///8HSwRAIAAhAwwHCyABENABQX9HBEAgASAGaiEGIAAhAwwHC0EAIAZrENABGgwECyAAIQMgAEF/Rw0FDAMLQQAhBQwHC0EAIQMMBQsgA0F/Rw0CC0GUjxNBlI8TKAIAQQRyNgIACyAFQf7///8HSw0BIAUQ0AEhA0EAENABIQAgA0F/Rg0BIABBf0YNASAAIANNDQEgACADayIGIARBKGpNDQELQYiPE0GIjxMoAgAgBmoiADYCAEGMjxMoAgAgAEkEQEGMjxMgADYCAAsCQAJAAkBB8IsTKAIAIgEEQEGYjxMhAANAIAMgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQeiLEygCACIAQQAgACADTRtFBEBB6IsTIAM2AgALQQAhAEGcjxMgBjYCAEGYjxMgAzYCAEH4ixNBfzYCAEH8ixNBsI8TKAIANgIAQaSPE0EANgIAA0AgAEEDdCIBQYiME2ogAUGAjBNqIgI2AgAgAUGMjBNqIAI2AgAgAEEBaiIAQSBHDQALQeSLEyAGQShrIgBBeCADa0EHcUEAIANBCGpBB3EbIgFrIgI2AgBB8IsTIAEgA2oiATYCACABIAJBAXI2AgQgACADakEoNgIEQfSLE0HAjxMoAgA2AgAMAgsgAC0ADEEIcQ0AIAEgAkkNACABIANPDQAgACAFIAZqNgIEQfCLEyABQXggAWtBB3FBACABQQhqQQdxGyIAaiICNgIAQeSLE0HkixMoAgAgBmoiAyAAayIANgIAIAIgAEEBcjYCBCABIANqQSg2AgRB9IsTQcCPEygCADYCAAwBC0HoixMoAgAgA0sEQEHoixMgAzYCAAsgAyAGaiECQZiPEyEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0GYjxMhAANAIAEgACgCACICTwRAIAIgACgCBGoiAiABSw0DCyAAKAIIIQAMAAsACyAAIAM2AgAgACAAKAIEIAZqNgIEIANBeCADa0EHcUEAIANBCGpBB3EbaiIHIARBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgYgBCAHaiIEayEAIAEgBkYEQEHwixMgBDYCAEHkixNB5IsTKAIAIABqIgA2AgAgBCAAQQFyNgIEDAMLQeyLEygCACAGRgRAQeyLEyAENgIAQeCLE0HgixMoAgAgAGoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAMLIAYoAgQiAUEDcUEBRgRAIAFBeHEhCAJAIAFB/wFNBEAgBigCCCICIAFBA3YiBUEDdEGAjBNqRhogAiAGKAIMIgFGBEBB2IsTQdiLEygCAEF+IAV3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAYoAhghCQJAIAYgBigCDCIDRwRAIAYoAggiASADNgIMIAMgATYCCAwBCwJAIAZBFGoiASgCACICDQAgBkEQaiIBKAIAIgINAEEAIQMMAQsDQCABIQUgAiIDQRRqIgEoAgAiAg0AIANBEGohASADKAIQIgINAAsgBUEANgIACyAJRQ0AAkAgBigCHCICQQJ0QYiOE2oiASgCACAGRgRAIAEgAzYCACADDQFB3IsTQdyLEygCAEF+IAJ3cTYCAAwCCyAJQRBBFCAJKAIQIAZGG2ogAzYCACADRQ0BCyADIAk2AhggBigCECIBBEAgAyABNgIQIAEgAzYCGAsgBigCFCIBRQ0AIAMgATYCFCABIAM2AhgLIAYgCGoiBigCBCEBIAAgCGohAAsgBiABQX5xNgIEIAQgAEEBcjYCBCAAIARqIAA2AgAgAEH/AU0EQCAAQXhxQYCME2ohAQJ/QdiLEygCACICQQEgAEEDdnQiAHFFBEBB2IsTIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBDYCCCAAIAQ2AgwgBCABNgIMIAQgADYCCAwDC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASACciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyAEIAE2AhwgBEIANwIQIAFBAnRBiI4TaiECAkBB3IsTKAIAIgNBASABdCIFcUUEQEHcixMgAyAFcjYCACACIAQ2AgAgBCACNgIYDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAIoAgAhAwNAIAMiAigCBEF4cSAARg0DIAFBHXYhAyABQQF0IQEgAiADQQRxakEQaiIFKAIAIgMNAAsgBSAENgIAIAQgAjYCGAsgBCAENgIMIAQgBDYCCAwCC0HkixMgBkEoayIAQXggA2tBB3FBACADQQhqQQdxGyIFayIHNgIAQfCLEyADIAVqIgU2AgAgBSAHQQFyNgIEIAAgA2pBKDYCBEH0ixNBwI8TKAIANgIAIAEgAkEnIAJrQQdxQQAgAkEna0EHcRtqQS9rIgAgACABQRBqSRsiBUEbNgIEIAVBoI8TKQIANwIQIAVBmI8TKQIANwIIQaCPEyAFQQhqNgIAQZyPEyAGNgIAQZiPEyADNgIAQaSPE0EANgIAIAVBGGohAANAIABBBzYCBCAAQQhqIQMgAEEEaiEAIAIgA0sNAAsgASAFRg0DIAUgBSgCBEF+cTYCBCABIAUgAWsiA0EBcjYCBCAFIAM2AgAgA0H/AU0EQCADQXhxQYCME2ohAAJ/QdiLEygCACICQQEgA0EDdnQiA3FFBEBB2IsTIAIgA3I2AgAgAAwBCyAAKAIICyECIAAgATYCCCACIAE2AgwgASAANgIMIAEgAjYCCAwEC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgACACciAFcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyABIAA2AhwgAUIANwIQIABBAnRBiI4TaiECAkBB3IsTKAIAIgVBASAAdCIGcUUEQEHcixMgBSAGcjYCACACIAE2AgAgASACNgIYDAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAIoAgAhBQNAIAUiAigCBEF4cSADRg0EIABBHXYhBSAAQQF0IQAgAiAFQQRxakEQaiIGKAIAIgUNAAsgBiABNgIAIAEgAjYCGAsgASABNgIMIAEgATYCCAwDCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAdBCGohAAwFCyACKAIIIgAgATYCDCACIAE2AgggAUEANgIYIAEgAjYCDCABIAA2AggLQeSLEygCACIAIARNDQBB5IsTIAAgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwDC0HoyhJBMDYCAEEAIQAMAgsCQCAHRQ0AAkAgBSgCHCICQQJ0QYiOE2oiACgCACAFRgRAIAAgAzYCACADDQFB3IsTIAhBfiACd3EiCDYCAAwCCyAHQRBBFCAHKAIQIAVGG2ogAzYCACADRQ0BCyADIAc2AhggBSgCECIABEAgAyAANgIQIAAgAzYCGAsgBSgCFCIARQ0AIAMgADYCFCAAIAM2AhgLAkAgAUEPTQRAIAUgASAEaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBEEDcjYCBCAEIAVqIgMgAUEBcjYCBCABIANqIAE2AgAgAUH/AU0EQCABQXhxQYCME2ohAAJ/QdiLEygCACICQQEgAUEDdnQiAXFFBEBB2IsTIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQAgAUH///8HTQRAIAFBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgACACciAEcmsiAEEBdCABIABBFWp2QQFxckEcaiEACyADIAA2AhwgA0IANwIQIABBAnRBiI4TaiECAkACQCAIQQEgAHQiBHFFBEBB3IsTIAQgCHI2AgAgAiADNgIAIAMgAjYCGAwBCyABQRkgAEEBdmtBACAAQR9HG3QhACACKAIAIQQDQCAEIgIoAgRBeHEgAUYNAiAAQR12IQQgAEEBdCEAIAIgBEEEcWpBEGoiBigCACIEDQALIAYgAzYCACADIAI2AhgLIAMgAzYCDCADIAM2AggMAQsgAigCCCIAIAM2AgwgAiADNgIIIANBADYCGCADIAI2AgwgAyAANgIICyAFQQhqIQAMAQsCQCAKRQ0AAkAgAygCHCICQQJ0QYiOE2oiACgCACADRgRAIAAgBTYCACAFDQFB3IsTIAlBfiACd3E2AgAMAgsgCkEQQRQgCigCECADRhtqIAU2AgAgBUUNAQsgBSAKNgIYIAMoAhAiAARAIAUgADYCECAAIAU2AhgLIAMoAhQiAEUNACAFIAA2AhQgACAFNgIYCwJAIAFBD00EQCADIAEgBGoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARBA3I2AgQgAyAEaiICIAFBAXI2AgQgASACaiABNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAAJ/QQEgCEEDdnQiBSAGcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCAANgIIIAUgADYCDCAAIAQ2AgwgACAFNgIIC0HsixMgAjYCAEHgixMgATYCAAsgA0EIaiEACyALQRBqJAAgAAvKDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB6IsTKAIASQ0BIAAgAWohAEHsixMoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgdBA3RBgIwTakYaIAQgAigCDCIBRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAwsgBCABNgIMIAEgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiA0cEQCACKAIIIgEgAzYCDCADIAE2AggMAQsCQCACQRRqIgEoAgAiBA0AIAJBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGIjhNqIgEoAgAgAkYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAM2AgAgA0UNAgsgAyAGNgIYIAIoAhAiAQRAIAMgATYCECABIAM2AhgLIAIoAhQiAUUNASADIAE2AhQgASADNgIYDAELIAUoAgQiAUEDcUEDRw0AQeCLEyAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB8IsTKAIAIAVGBEBB8IsTIAI2AgBB5IsTQeSLEygCACAAaiIANgIAIAIgAEEBcjYCBCACQeyLEygCAEcNA0HgixNBADYCAEHsixNBADYCAA8LQeyLEygCACAFRgRAQeyLEyACNgIAQeCLE0HgixMoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIHQQN0QYCME2pGGiAEIAUoAgwiAUYEQEHYixNB2IsTKAIAQX4gB3dxNgIADAILIAQgATYCDCABIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCIBQeiLEygCAEkaIAEgAzYCDCADIAE2AggMAQsCQCAFQRRqIgEoAgAiBA0AIAVBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGIjhNqIgEoAgAgBUYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAQRAIAMgATYCECABIAM2AhgLIAUoAhQiAUUNACADIAE2AhQgASADNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB7IsTKAIARw0BQeCLEyAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUGAjBNqIQECf0HYixMoAgAiBEEBIABBA3Z0IgBxRQRAQdiLEyAAIARyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiBCAEQYDgH2pBEHZBBHEiBHQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASAEciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyACIAE2AhwgAkIANwIQIAFBAnRBiI4TaiEEAkACQAJAQdyLEygCACIDQQEgAXQiBXFFBEBB3IsTIAMgBXI2AgAgBCACNgIAIAIgBDYCGAwBCyAAQRkgAUEBdmtBACABQR9HG3QhASAEKAIAIQMDQCADIgQoAgRBeHEgAEYNAiABQR12IQMgAUEBdCEBIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgAjYCACACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0H4ixNB+IsTKAIAQQFrIgJBfyACGzYCAAsLoAgBC38gAEUEQCABEMsBDwsgAUFATwRAQejKEkEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEDIABBCGsiBSgCBCIIQXhxIQICQCAIQQNxRQRAQQAgA0GAAkkNAhogA0EEaiACTQRAIAUhBCACIANrQbiPEygCAEEBdE0NAgtBAAwCCyACIAVqIQcCQCACIANPBEAgAiADayICQRBJDQEgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyACQQNyNgIEIAcgBygCBEEBcjYCBCADIAIQzgEMAQtB8IsTKAIAIAdGBEBB5IsTKAIAIAJqIgIgA00NAiAFIAhBAXEgA3JBAnI2AgQgAyAFaiIIIAIgA2siA0EBcjYCBEHkixMgAzYCAEHwixMgCDYCAAwBC0HsixMoAgAgB0YEQEHgixMoAgAgAmoiAiADSQ0CAkAgAiADayIEQRBPBEAgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyAEQQFyNgIEIAIgBWoiAiAENgIAIAIgAigCBEF+cTYCBAwBCyAFIAhBAXEgAnJBAnI2AgQgAiAFaiIDIAMoAgRBAXI2AgRBACEEQQAhAwtB7IsTIAM2AgBB4IsTIAQ2AgAMAQsgBygCBCIGQQJxDQEgBkF4cSACaiIJIANJDQEgCSADayELAkAgBkH/AU0EQCAHKAIIIgIgBkEDdiIMQQN0QYCME2pGGiACIAcoAgwiBEYEQEHYixNB2IsTKAIAQX4gDHdxNgIADAILIAIgBDYCDCAEIAI2AggMAQsgBygCGCEKAkAgByAHKAIMIgZHBEAgBygCCCICQeiLEygCAEkaIAIgBjYCDCAGIAI2AggMAQsCQCAHQRRqIgIoAgAiBA0AIAdBEGoiAigCACIEDQBBACEGDAELA0AgAiEMIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAxBADYCAAsgCkUNAAJAIAcoAhwiBEECdEGIjhNqIgIoAgAgB0YEQCACIAY2AgAgBg0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgCkEQQRQgCigCECAHRhtqIAY2AgAgBkUNAQsgBiAKNgIYIAcoAhAiAgRAIAYgAjYCECACIAY2AhgLIAcoAhQiAkUNACAGIAI2AhQgAiAGNgIYCyALQQ9NBEAgBSAIQQFxIAlyQQJyNgIEIAUgCWoiAyADKAIEQQFyNgIEDAELIAUgCEEBcSADckECcjYCBCADIAVqIgMgC0EDcjYCBCAFIAlqIgIgAigCBEEBcjYCBCADIAsQzgELIAUhBAsgBAsiBARAIARBCGoPCyABEMsBIgRFBEBBAA8LIAQgAEF8QXggAEEEaygCACIFQQNxGyAFQXhxaiIFIAEgASAFSxsQpgEaIAAQzAEgBAuJDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACICIAFqIQECQCAAIAJrIgBB7IsTKAIARwRAIAJB/wFNBEAgACgCCCIEIAJBA3YiB0EDdEGAjBNqRhogACgCDCICIARHDQJB2IsTQdiLEygCAEF+IAd3cTYCAAwDCyAAKAIYIQYCQCAAIAAoAgwiA0cEQCAAKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIABBFGoiAigCACIEDQAgAEEQaiICKAIAIgQNAEEAIQMMAQsDQCACIQcgBCIDQRRqIgIoAgAiBA0AIANBEGohAiADKAIQIgQNAAsgB0EANgIACyAGRQ0CAkAgACgCHCIEQQJ0QYiOE2oiAigCACAARgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwECyAGQRBBFCAGKAIQIABGG2ogAzYCACADRQ0DCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0CIAMgAjYCFCACIAM2AhgMAgsgBSgCBCICQQNxQQNHDQFB4IsTIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCyAEIAI2AgwgAiAENgIICwJAIAUoAgQiAkECcUUEQEHwixMoAgAgBUYEQEHwixMgADYCAEHkixNB5IsTKAIAIAFqIgE2AgAgACABQQFyNgIEIABB7IsTKAIARw0DQeCLE0EANgIAQeyLE0EANgIADwtB7IsTKAIAIAVGBEBB7IsTIAA2AgBB4IsTQeCLEygCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPCyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgdBA3RBgIwTakYaIAQgBSgCDCICRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAgsgBCACNgIMIAIgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiA0cEQCAFKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIAVBFGoiBCgCACICDQAgBUEQaiIEKAIAIgINAEEAIQMMAQsDQCAEIQcgAiIDQRRqIgQoAgAiAg0AIANBEGohBCADKAIQIgINAAsgB0EANgIACyAGRQ0AAkAgBSgCHCIEQQJ0QYiOE2oiAigCACAFRgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAzYCACADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHsixMoAgBHDQFB4IsTIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQXhxQYCME2ohAgJ/QdiLEygCACIEQQEgAUEDdnQiAXFFBEBB2IsTIAEgBHI2AgAgAgwBCyACKAIICyEBIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQR8hAiABQf///wdNBEAgAUEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIDIANBgIAPakEQdkECcSIDdEEPdiACIARyIANyayICQQF0IAEgAkEVanZBAXFyQRxqIQILIAAgAjYCHCAAQgA3AhAgAkECdEGIjhNqIQQCQAJAQdyLEygCACIDQQEgAnQiBXFFBEBB3IsTIAMgBXI2AgAgBCAANgIAIAAgBDYCGAwBCyABQRkgAkEBdmtBACACQR9HG3QhAiAEKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgADYCACAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1wCAX8BfgJAAn9BACAARQ0AGiAArSABrX4iA6ciAiAAIAFyQYCABEkNABpBfyACIANCIIinGwsiAhDLASIARQ0AIABBBGstAABBA3FFDQAgAEEAIAIQqAEaCyAAC1IBAn9B2L8SKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtB2L8SIAA2AgAgAQ8LQejKEkEwNgIAQX8LBAAjAAsGACAAJAALEAAjACAAa0FwcSIAJAAgAAsiAQF+IAEgAq0gA61CIIaEIAQgABEPACIFQiCIpyQBIAWnCwvFrRKnAQBBgAgL9xIBAAAAAgAAAAIAAAAFAAAABAAAAAAAAAABAAAAAQAAAAEAAAAGAAAABgAAAAEAAAACAAAAAgAAAAEAAAAAAAAABgAAAAEAAAABAAAABAAAAAQAAAABAAAABAAAAAQAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAgAAAAMAAAAEAAAABAAAAAEAAABZb3UgZGlkbid0IGNhbGwgb25pZ19pbml0aWFsaXplKCkgZXhwbGljaXRseQAtKyAgIDBYMHgAQWxudW0AbWlzbWF0Y2gAJWQuJWQuJWQAXQBFVUMtVFcAU2hpZnRfSklTAEVVQy1LUgBLT0k4LVIARVVDLUpQAE1PTgBVUy1BU0NJSQBVVEYtMTZMRQBVVEYtMzJMRQBVVEYtMTZCRQBVVEYtMzJCRQBJU08tODg1OS05AFVURi04AElTTy04ODU5LTgASVNPLTg4NTktNwBJU08tODg1OS0xNgBJU08tODg1OS02AEJpZzUASVNPLTg4NTktMTUASVNPLTg4NTktNQBJU08tODg1OS0xNABJU08tODg1OS00AElTTy04ODU5LTEzAElTTy04ODU5LTMASVNPLTg4NTktMgBDUDEyNTEASVNPLTg4NTktMTEASVNPLTg4NTktMQBHQjE4MDMwAElTTy04ODU5LTEwAE9uaWd1cnVtYSAlZC4lZC4lZCA6IENvcHlyaWdodCAoQykgMjAwMi0yMDE4IEsuS29zYWtvAG5vIHN1cHBvcnQgaW4gdGhpcyBjb25maWd1cmF0aW9uAHJlZ3VsYXIgZXhwcmVzc2lvbiBoYXMgJyVzJyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoACgBBgBsL0AgFAAEAAQABAAEAAQABAAEAAQAKAAoAAQABAAoAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADAAEAAcABAAEAAQABAAEAAQABQAFAAUABQAFAAUABQAGAAYABgAGAAYABgAGAAYABgAGAAUABQAFAAUABQAFAAUABgAGAAYABgAHAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAUABgAFAAUABQAFAAYABgAGAAYABwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAFAAUABQAFAAEAVAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAAxAAAALwAAADAAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAKgAAACkAAAArAAAALQAAACwAAAAuAAAAUwAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAAOQAAADoAAAA7AAAAPAAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABIAAAASQAAAFIAAABRAAAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/whACEAIQAhACEAIQAhACEAIQAxCCUIIQghCCEIIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACECEQqBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQbB4sHiweLB4sHiweLB4sHiweLB4oEGgQaBBoEGgQaBBoEGifKJ8onyifKJ8onyidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0oEGgQaBBoEGgUaBB4njieOJ44njieOJ44nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicKBBoEGgQaBBCEAAQdAlC+UMQQAAAGEAAABCAAAAYgAAAEMAAABjAAAARAAAAGQAAABFAAAAZQAAAEYAAABmAAAARwAAAGcAAABIAAAAaAAAAEkAAABpAAAASgAAAGoAAABLAAAAawAAAEwAAABsAAAATQAAAG0AAABOAAAAbgAAAE8AAABvAAAAUAAAAHAAAABRAAAAcQAAAFIAAAByAAAAUwAAAHMAAABUAAAAdAAAAFUAAAB1AAAAVgAAAHYAAABXAAAAdwAAAFgAAAB4AAAAWQAAAHkAAABaAAAAegAAAHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgaW52YWxpZABuZXN0ZWQgcmVwZWF0IG9wZXJhdG9yAHVubWF0Y2hlZCBjbG9zZSBwYXJlbnRoZXNpcwBlbmQgcGF0dGVybiB3aXRoIHVubWF0Y2hlZCBwYXJlbnRoZXNpcwBlbmQgcGF0dGVybiBpbiBncm91cAB1bmRlZmluZWQgZ3JvdXAgb3B0aW9uAGludmFsaWQgZ3JvdXAgb3B0aW9uAGludmFsaWQgUE9TSVggYnJhY2tldCB0eXBlAGludmFsaWQgcGF0dGVybiBpbiBsb29rLWJlaGluZABpbnZhbGlkIHJlcGVhdCByYW5nZSB7bG93ZXIsdXBwZXJ9AHRvbyBiaWcgbnVtYmVyAHRvbyBiaWcgbnVtYmVyIGZvciByZXBlYXQgcmFuZ2UAdXBwZXIgaXMgc21hbGxlciB0aGFuIGxvd2VyIGluIHJlcGVhdCByYW5nZQBlbXB0eSByYW5nZSBpbiBjaGFyIGNsYXNzAG1pc21hdGNoIG11bHRpYnl0ZSBjb2RlIGxlbmd0aCBpbiBjaGFyLWNsYXNzIHJhbmdlAHRvbyBtYW55IG11bHRpYnl0ZSBjb2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMgbm90IGluaXRpYWxpemVkAHVuZGVmaW5lZCBlcnJvciBjb2RlAC4uLgAlMDJ4AFx4JTAyeAAAAAEAQcAyCxUBAAAAAQAAAAEAAAABAAAAAQAAAAEAQeAyC3ALAAAAEwAAACUAAABDAAAAgwAAABsBAAAJAgAACQQAAAUIAAADEAAAGyAAACtAAAADgAAALQABAB0AAgADAAQAFQAIAAcAEAARACAADwBAAAkAgAArAAABIwAAAg8AAAQdAAAIAwAAEAsAACBVAABAAEHgMwvRZAhACEAIQAhACEAIQAhACEAIQIxCiUKIQohCiEIIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACECEQqBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQbB4sHiweLB4sHiweLB4sHiweLB4oEGgQaBBoEGgQaBBoEGifKJ8onyifKJ8onyidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0oEGgQaBBoEGgUaBB4njieOJ44njieOJ44nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicKBBoEGgQaBBCEAIAAgACAAIAAgAiAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAhAKgAaAAoACgAKAAoACgAKAAoADiMKABoACoAKAAoACgAKAAoBCgEKAA4jCgAKABoACgEOIwoAGgEKAQoBCgAaI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSgAKI0ojSiNKI0ojSiNKI04jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIwoADiMOIw4jDiMOIw4jDiMOIwCgAAAAoAAAAJAAAACwAAAAwAAAANAAAADQAAAA0AAAACAAAAIAAAACAAAAARAAAAIgAAACIAAAADAAAAJwAAACcAAAAQAAAALAAAACwAAAALAAAALgAAAC4AAAAMAAAAMAAAADkAAAAOAAAAOgAAADoAAAAKAAAAOwAAADsAAAALAAAAQQAAAFoAAAABAAAAXwAAAF8AAAAFAAAAYQAAAHoAAAABAAAAhQAAAIUAAAANAAAAqgAAAKoAAAABAAAArQAAAK0AAAAGAAAAtQAAALUAAAABAAAAtwAAALcAAAAKAAAAugAAALoAAAABAAAAwAAAANYAAAABAAAA2AAAAPYAAAABAAAA+AAAANcCAAABAAAA3gIAAP8CAAABAAAAAAMAAG8DAAAEAAAAcAMAAHQDAAABAAAAdgMAAHcDAAABAAAAegMAAH0DAAABAAAAfgMAAH4DAAALAAAAfwMAAH8DAAABAAAAhgMAAIYDAAABAAAAhwMAAIcDAAAKAAAAiAMAAIoDAAABAAAAjAMAAIwDAAABAAAAjgMAAKEDAAABAAAAowMAAPUDAAABAAAA9wMAAIEEAAABAAAAgwQAAIkEAAAEAAAAigQAAC8FAAABAAAAMQUAAFYFAAABAAAAWQUAAFwFAAABAAAAXgUAAF4FAAABAAAAXwUAAF8FAAAKAAAAYAUAAIgFAAABAAAAiQUAAIkFAAALAAAAigUAAIoFAAABAAAAkQUAAL0FAAAEAAAAvwUAAL8FAAAEAAAAwQUAAMIFAAAEAAAAxAUAAMUFAAAEAAAAxwUAAMcFAAAEAAAA0AUAAOoFAAAHAAAA7wUAAPIFAAAHAAAA8wUAAPMFAAABAAAA9AUAAPQFAAAKAAAAAAYAAAUGAAAGAAAADAYAAA0GAAALAAAAEAYAABoGAAAEAAAAHAYAABwGAAAGAAAAIAYAAEoGAAABAAAASwYAAF8GAAAEAAAAYAYAAGkGAAAOAAAAawYAAGsGAAAOAAAAbAYAAGwGAAALAAAAbgYAAG8GAAABAAAAcAYAAHAGAAAEAAAAcQYAANMGAAABAAAA1QYAANUGAAABAAAA1gYAANwGAAAEAAAA3QYAAN0GAAAGAAAA3wYAAOQGAAAEAAAA5QYAAOYGAAABAAAA5wYAAOgGAAAEAAAA6gYAAO0GAAAEAAAA7gYAAO8GAAABAAAA8AYAAPkGAAAOAAAA+gYAAPwGAAABAAAA/wYAAP8GAAABAAAADwcAAA8HAAAGAAAAEAcAABAHAAABAAAAEQcAABEHAAAEAAAAEgcAAC8HAAABAAAAMAcAAEoHAAAEAAAATQcAAKUHAAABAAAApgcAALAHAAAEAAAAsQcAALEHAAABAAAAwAcAAMkHAAAOAAAAygcAAOoHAAABAAAA6wcAAPMHAAAEAAAA9AcAAPUHAAABAAAA+AcAAPgHAAALAAAA+gcAAPoHAAABAAAA/QcAAP0HAAAEAAAAAAgAABUIAAABAAAAFggAABkIAAAEAAAAGggAABoIAAABAAAAGwgAACMIAAAEAAAAJAgAACQIAAABAAAAJQgAACcIAAAEAAAAKAgAACgIAAABAAAAKQgAAC0IAAAEAAAAQAgAAFgIAAABAAAAWQgAAFsIAAAEAAAAYAgAAGoIAAABAAAAcAgAAIcIAAABAAAAiQgAAI4IAAABAAAAkAgAAJEIAAAGAAAAmAgAAJ8IAAAEAAAAoAgAAMkIAAABAAAAyggAAOEIAAAEAAAA4ggAAOIIAAAGAAAA4wgAAAMJAAAEAAAABAkAADkJAAABAAAAOgkAADwJAAAEAAAAPQkAAD0JAAABAAAAPgkAAE8JAAAEAAAAUAkAAFAJAAABAAAAUQkAAFcJAAAEAAAAWAkAAGEJAAABAAAAYgkAAGMJAAAEAAAAZgkAAG8JAAAOAAAAcQkAAIAJAAABAAAAgQkAAIMJAAAEAAAAhQkAAIwJAAABAAAAjwkAAJAJAAABAAAAkwkAAKgJAAABAAAAqgkAALAJAAABAAAAsgkAALIJAAABAAAAtgkAALkJAAABAAAAvAkAALwJAAAEAAAAvQkAAL0JAAABAAAAvgkAAMQJAAAEAAAAxwkAAMgJAAAEAAAAywkAAM0JAAAEAAAAzgkAAM4JAAABAAAA1wkAANcJAAAEAAAA3AkAAN0JAAABAAAA3wkAAOEJAAABAAAA4gkAAOMJAAAEAAAA5gkAAO8JAAAOAAAA8AkAAPEJAAABAAAA/AkAAPwJAAABAAAA/gkAAP4JAAAEAAAAAQoAAAMKAAAEAAAABQoAAAoKAAABAAAADwoAABAKAAABAAAAEwoAACgKAAABAAAAKgoAADAKAAABAAAAMgoAADMKAAABAAAANQoAADYKAAABAAAAOAoAADkKAAABAAAAPAoAADwKAAAEAAAAPgoAAEIKAAAEAAAARwoAAEgKAAAEAAAASwoAAE0KAAAEAAAAUQoAAFEKAAAEAAAAWQoAAFwKAAABAAAAXgoAAF4KAAABAAAAZgoAAG8KAAAOAAAAcAoAAHEKAAAEAAAAcgoAAHQKAAABAAAAdQoAAHUKAAAEAAAAgQoAAIMKAAAEAAAAhQoAAI0KAAABAAAAjwoAAJEKAAABAAAAkwoAAKgKAAABAAAAqgoAALAKAAABAAAAsgoAALMKAAABAAAAtQoAALkKAAABAAAAvAoAALwKAAAEAAAAvQoAAL0KAAABAAAAvgoAAMUKAAAEAAAAxwoAAMkKAAAEAAAAywoAAM0KAAAEAAAA0AoAANAKAAABAAAA4AoAAOEKAAABAAAA4goAAOMKAAAEAAAA5goAAO8KAAAOAAAA+QoAAPkKAAABAAAA+goAAP8KAAAEAAAAAQsAAAMLAAAEAAAABQsAAAwLAAABAAAADwsAABALAAABAAAAEwsAACgLAAABAAAAKgsAADALAAABAAAAMgsAADMLAAABAAAANQsAADkLAAABAAAAPAsAADwLAAAEAAAAPQsAAD0LAAABAAAAPgsAAEQLAAAEAAAARwsAAEgLAAAEAAAASwsAAE0LAAAEAAAAVQsAAFcLAAAEAAAAXAsAAF0LAAABAAAAXwsAAGELAAABAAAAYgsAAGMLAAAEAAAAZgsAAG8LAAAOAAAAcQsAAHELAAABAAAAggsAAIILAAAEAAAAgwsAAIMLAAABAAAAhQsAAIoLAAABAAAAjgsAAJALAAABAAAAkgsAAJULAAABAAAAmQsAAJoLAAABAAAAnAsAAJwLAAABAAAAngsAAJ8LAAABAAAAowsAAKQLAAABAAAAqAsAAKoLAAABAAAArgsAALkLAAABAAAAvgsAAMILAAAEAAAAxgsAAMgLAAAEAAAAygsAAM0LAAAEAAAA0AsAANALAAABAAAA1wsAANcLAAAEAAAA5gsAAO8LAAAOAAAAAAwAAAQMAAAEAAAABQwAAAwMAAABAAAADgwAABAMAAABAAAAEgwAACgMAAABAAAAKgwAADkMAAABAAAAPAwAADwMAAAEAAAAPQwAAD0MAAABAAAAPgwAAEQMAAAEAAAARgwAAEgMAAAEAAAASgwAAE0MAAAEAAAAVQwAAFYMAAAEAAAAWAwAAFoMAAABAAAAXQwAAF0MAAABAAAAYAwAAGEMAAABAAAAYgwAAGMMAAAEAAAAZgwAAG8MAAAOAAAAgAwAAIAMAAABAAAAgQwAAIMMAAAEAAAAhQwAAIwMAAABAAAAjgwAAJAMAAABAAAAkgwAAKgMAAABAAAAqgwAALMMAAABAAAAtQwAALkMAAABAAAAvAwAALwMAAAEAAAAvQwAAL0MAAABAAAAvgwAAMQMAAAEAAAAxgwAAMgMAAAEAAAAygwAAM0MAAAEAAAA1QwAANYMAAAEAAAA3QwAAN4MAAABAAAA4AwAAOEMAAABAAAA4gwAAOMMAAAEAAAA5gwAAO8MAAAOAAAA8QwAAPIMAAABAAAAAA0AAAMNAAAEAAAABA0AAAwNAAABAAAADg0AABANAAABAAAAEg0AADoNAAABAAAAOw0AADwNAAAEAAAAPQ0AAD0NAAABAAAAPg0AAEQNAAAEAAAARg0AAEgNAAAEAAAASg0AAE0NAAAEAAAATg0AAE4NAAABAAAAVA0AAFYNAAABAAAAVw0AAFcNAAAEAAAAXw0AAGENAAABAAAAYg0AAGMNAAAEAAAAZg0AAG8NAAAOAAAAeg0AAH8NAAABAAAAgQ0AAIMNAAAEAAAAhQ0AAJYNAAABAAAAmg0AALENAAABAAAAsw0AALsNAAABAAAAvQ0AAL0NAAABAAAAwA0AAMYNAAABAAAAyg0AAMoNAAAEAAAAzw0AANQNAAAEAAAA1g0AANYNAAAEAAAA2A0AAN8NAAAEAAAA5g0AAO8NAAAOAAAA8g0AAPMNAAAEAAAAMQ4AADEOAAAEAAAANA4AADoOAAAEAAAARw4AAE4OAAAEAAAAUA4AAFkOAAAOAAAAsQ4AALEOAAAEAAAAtA4AALwOAAAEAAAAyA4AAM0OAAAEAAAA0A4AANkOAAAOAAAAAA8AAAAPAAABAAAAGA8AABkPAAAEAAAAIA8AACkPAAAOAAAANQ8AADUPAAAEAAAANw8AADcPAAAEAAAAOQ8AADkPAAAEAAAAPg8AAD8PAAAEAAAAQA8AAEcPAAABAAAASQ8AAGwPAAABAAAAcQ8AAIQPAAAEAAAAhg8AAIcPAAAEAAAAiA8AAIwPAAABAAAAjQ8AAJcPAAAEAAAAmQ8AALwPAAAEAAAAxg8AAMYPAAAEAAAAKxAAAD4QAAAEAAAAQBAAAEkQAAAOAAAAVhAAAFkQAAAEAAAAXhAAAGAQAAAEAAAAYhAAAGQQAAAEAAAAZxAAAG0QAAAEAAAAcRAAAHQQAAAEAAAAghAAAI0QAAAEAAAAjxAAAI8QAAAEAAAAkBAAAJkQAAAOAAAAmhAAAJ0QAAAEAAAAoBAAAMUQAAABAAAAxxAAAMcQAAABAAAAzRAAAM0QAAABAAAA0BAAAPoQAAABAAAA/BAAAEgSAAABAAAAShIAAE0SAAABAAAAUBIAAFYSAAABAAAAWBIAAFgSAAABAAAAWhIAAF0SAAABAAAAYBIAAIgSAAABAAAAihIAAI0SAAABAAAAkBIAALASAAABAAAAshIAALUSAAABAAAAuBIAAL4SAAABAAAAwBIAAMASAAABAAAAwhIAAMUSAAABAAAAyBIAANYSAAABAAAA2BIAABATAAABAAAAEhMAABUTAAABAAAAGBMAAFoTAAABAAAAXRMAAF8TAAAEAAAAgBMAAI8TAAABAAAAoBMAAPUTAAABAAAA+BMAAP0TAAABAAAAARQAAGwWAAABAAAAbxYAAH8WAAABAAAAgBYAAIAWAAARAAAAgRYAAJoWAAABAAAAoBYAAOoWAAABAAAA7hYAAPgWAAABAAAAABcAABEXAAABAAAAEhcAABUXAAAEAAAAHxcAADEXAAABAAAAMhcAADQXAAAEAAAAQBcAAFEXAAABAAAAUhcAAFMXAAAEAAAAYBcAAGwXAAABAAAAbhcAAHAXAAABAAAAchcAAHMXAAAEAAAAtBcAANMXAAAEAAAA3RcAAN0XAAAEAAAA4BcAAOkXAAAOAAAACxgAAA0YAAAEAAAADhgAAA4YAAAGAAAADxgAAA8YAAAEAAAAEBgAABkYAAAOAAAAIBgAAHgYAAABAAAAgBgAAIQYAAABAAAAhRgAAIYYAAAEAAAAhxgAAKgYAAABAAAAqRgAAKkYAAAEAAAAqhgAAKoYAAABAAAAsBgAAPUYAAABAAAAABkAAB4ZAAABAAAAIBkAACsZAAAEAAAAMBkAADsZAAAEAAAARhkAAE8ZAAAOAAAA0BkAANkZAAAOAAAAABoAABYaAAABAAAAFxoAABsaAAAEAAAAVRoAAF4aAAAEAAAAYBoAAHwaAAAEAAAAfxoAAH8aAAAEAAAAgBoAAIkaAAAOAAAAkBoAAJkaAAAOAAAAsBoAAM4aAAAEAAAAABsAAAQbAAAEAAAABRsAADMbAAABAAAANBsAAEQbAAAEAAAARRsAAEwbAAABAAAAUBsAAFkbAAAOAAAAaxsAAHMbAAAEAAAAgBsAAIIbAAAEAAAAgxsAAKAbAAABAAAAoRsAAK0bAAAEAAAArhsAAK8bAAABAAAAsBsAALkbAAAOAAAAuhsAAOUbAAABAAAA5hsAAPMbAAAEAAAAABwAACMcAAABAAAAJBwAADccAAAEAAAAQBwAAEkcAAAOAAAATRwAAE8cAAABAAAAUBwAAFkcAAAOAAAAWhwAAH0cAAABAAAAgBwAAIgcAAABAAAAkBwAALocAAABAAAAvRwAAL8cAAABAAAA0BwAANIcAAAEAAAA1BwAAOgcAAAEAAAA6RwAAOwcAAABAAAA7RwAAO0cAAAEAAAA7hwAAPMcAAABAAAA9BwAAPQcAAAEAAAA9RwAAPYcAAABAAAA9xwAAPkcAAAEAAAA+hwAAPocAAABAAAAAB0AAL8dAAABAAAAwB0AAP8dAAAEAAAAAB4AABUfAAABAAAAGB8AAB0fAAABAAAAIB8AAEUfAAABAAAASB8AAE0fAAABAAAAUB8AAFcfAAABAAAAWR8AAFkfAAABAAAAWx8AAFsfAAABAAAAXR8AAF0fAAABAAAAXx8AAH0fAAABAAAAgB8AALQfAAABAAAAth8AALwfAAABAAAAvh8AAL4fAAABAAAAwh8AAMQfAAABAAAAxh8AAMwfAAABAAAA0B8AANMfAAABAAAA1h8AANsfAAABAAAA4B8AAOwfAAABAAAA8h8AAPQfAAABAAAA9h8AAPwfAAABAAAAACAAAAYgAAARAAAACCAAAAogAAARAAAADCAAAAwgAAAEAAAADSAAAA0gAAASAAAADiAAAA8gAAAGAAAAGCAAABkgAAAMAAAAJCAAACQgAAAMAAAAJyAAACcgAAAKAAAAKCAAACkgAAANAAAAKiAAAC4gAAAGAAAALyAAAC8gAAAFAAAAPyAAAEAgAAAFAAAARCAAAEQgAAALAAAAVCAAAFQgAAAFAAAAXyAAAF8gAAARAAAAYCAAAGQgAAAGAAAAZiAAAG8gAAAGAAAAcSAAAHEgAAABAAAAfyAAAH8gAAABAAAAkCAAAJwgAAABAAAA0CAAAPAgAAAEAAAAAiEAAAIhAAABAAAAByEAAAchAAABAAAACiEAABMhAAABAAAAFSEAABUhAAABAAAAGSEAAB0hAAABAAAAJCEAACQhAAABAAAAJiEAACYhAAABAAAAKCEAACghAAABAAAAKiEAAC0hAAABAAAALyEAADkhAAABAAAAPCEAAD8hAAABAAAARSEAAEkhAAABAAAATiEAAE4hAAABAAAAYCEAAIghAAABAAAAtiQAAOkkAAABAAAAACwAAOQsAAABAAAA6ywAAO4sAAABAAAA7ywAAPEsAAAEAAAA8iwAAPMsAAABAAAAAC0AACUtAAABAAAAJy0AACctAAABAAAALS0AAC0tAAABAAAAMC0AAGctAAABAAAAby0AAG8tAAABAAAAfy0AAH8tAAAEAAAAgC0AAJYtAAABAAAAoC0AAKYtAAABAAAAqC0AAK4tAAABAAAAsC0AALYtAAABAAAAuC0AAL4tAAABAAAAwC0AAMYtAAABAAAAyC0AAM4tAAABAAAA0C0AANYtAAABAAAA2C0AAN4tAAABAAAA4C0AAP8tAAAEAAAALy4AAC8uAAABAAAAADAAAAAwAAARAAAABTAAAAUwAAABAAAAKjAAAC8wAAAEAAAAMTAAADUwAAAIAAAAOzAAADwwAAABAAAAmTAAAJowAAAEAAAAmzAAAJwwAAAIAAAAoDAAAPowAAAIAAAA/DAAAP8wAAAIAAAABTEAAC8xAAABAAAAMTEAAI4xAAABAAAAoDEAAL8xAAABAAAA8DEAAP8xAAAIAAAA0DIAAP4yAAAIAAAAADMAAFczAAAIAAAAAKAAAIykAAABAAAA0KQAAP2kAAABAAAAAKUAAAymAAABAAAAEKYAAB+mAAABAAAAIKYAACmmAAAOAAAAKqYAACumAAABAAAAQKYAAG6mAAABAAAAb6YAAHKmAAAEAAAAdKYAAH2mAAAEAAAAf6YAAJ2mAAABAAAAnqYAAJ+mAAAEAAAAoKYAAO+mAAABAAAA8KYAAPGmAAAEAAAACKcAAMqnAAABAAAA0KcAANGnAAABAAAA06cAANOnAAABAAAA1acAANmnAAABAAAA8qcAAAGoAAABAAAAAqgAAAKoAAAEAAAAA6gAAAWoAAABAAAABqgAAAaoAAAEAAAAB6gAAAqoAAABAAAAC6gAAAuoAAAEAAAADKgAACKoAAABAAAAI6gAACeoAAAEAAAALKgAACyoAAAEAAAAQKgAAHOoAAABAAAAgKgAAIGoAAAEAAAAgqgAALOoAAABAAAAtKgAAMWoAAAEAAAA0KgAANmoAAAOAAAA4KgAAPGoAAAEAAAA8qgAAPeoAAABAAAA+6gAAPuoAAABAAAA/agAAP6oAAABAAAA/6gAAP+oAAAEAAAAAKkAAAmpAAAOAAAACqkAACWpAAABAAAAJqkAAC2pAAAEAAAAMKkAAEapAAABAAAAR6kAAFOpAAAEAAAAYKkAAHypAAABAAAAgKkAAIOpAAAEAAAAhKkAALKpAAABAAAAs6kAAMCpAAAEAAAAz6kAAM+pAAABAAAA0KkAANmpAAAOAAAA5akAAOWpAAAEAAAA8KkAAPmpAAAOAAAAAKoAACiqAAABAAAAKaoAADaqAAAEAAAAQKoAAEKqAAABAAAAQ6oAAEOqAAAEAAAARKoAAEuqAAABAAAATKoAAE2qAAAEAAAAUKoAAFmqAAAOAAAAe6oAAH2qAAAEAAAAsKoAALCqAAAEAAAAsqoAALSqAAAEAAAAt6oAALiqAAAEAAAAvqoAAL+qAAAEAAAAwaoAAMGqAAAEAAAA4KoAAOqqAAABAAAA66oAAO+qAAAEAAAA8qoAAPSqAAABAAAA9aoAAPaqAAAEAAAAAasAAAarAAABAAAACasAAA6rAAABAAAAEasAABarAAABAAAAIKsAACarAAABAAAAKKsAAC6rAAABAAAAMKsAAGmrAAABAAAAcKsAAOKrAAABAAAA46sAAOqrAAAEAAAA7KsAAO2rAAAEAAAA8KsAAPmrAAAOAAAAAKwAAKPXAAABAAAAsNcAAMbXAAABAAAAy9cAAPvXAAABAAAAAPsAAAb7AAABAAAAE/sAABf7AAABAAAAHfsAAB37AAAHAAAAHvsAAB77AAAEAAAAH/sAACj7AAAHAAAAKvsAADb7AAAHAAAAOPsAADz7AAAHAAAAPvsAAD77AAAHAAAAQPsAAEH7AAAHAAAAQ/sAAET7AAAHAAAARvsAAE/7AAAHAAAAUPsAALH7AAABAAAA0/sAAD39AAABAAAAUP0AAI/9AAABAAAAkv0AAMf9AAABAAAA8P0AAPv9AAABAAAAAP4AAA/+AAAEAAAAEP4AABD+AAALAAAAE/4AABP+AAAKAAAAFP4AABT+AAALAAAAIP4AAC/+AAAEAAAAM/4AADT+AAAFAAAATf4AAE/+AAAFAAAAUP4AAFD+AAALAAAAUv4AAFL+AAAMAAAAVP4AAFT+AAALAAAAVf4AAFX+AAAKAAAAcP4AAHT+AAABAAAAdv4AAPz+AAABAAAA//4AAP/+AAAGAAAAB/8AAAf/AAAMAAAADP8AAAz/AAALAAAADv8AAA7/AAAMAAAAEP8AABn/AAAOAAAAGv8AABr/AAAKAAAAG/8AABv/AAALAAAAIf8AADr/AAABAAAAP/8AAD//AAAFAAAAQf8AAFr/AAABAAAAZv8AAJ3/AAAIAAAAnv8AAJ//AAAEAAAAoP8AAL7/AAABAAAAwv8AAMf/AAABAAAAyv8AAM//AAABAAAA0v8AANf/AAABAAAA2v8AANz/AAABAAAA+f8AAPv/AAAGAAAAAAABAAsAAQABAAAADQABACYAAQABAAAAKAABADoAAQABAAAAPAABAD0AAQABAAAAPwABAE0AAQABAAAAUAABAF0AAQABAAAAgAABAPoAAQABAAAAQAEBAHQBAQABAAAA/QEBAP0BAQAEAAAAgAIBAJwCAQABAAAAoAIBANACAQABAAAA4AIBAOACAQAEAAAAAAMBAB8DAQABAAAALQMBAEoDAQABAAAAUAMBAHUDAQABAAAAdgMBAHoDAQAEAAAAgAMBAJ0DAQABAAAAoAMBAMMDAQABAAAAyAMBAM8DAQABAAAA0QMBANUDAQABAAAAAAQBAJ0EAQABAAAAoAQBAKkEAQAOAAAAsAQBANMEAQABAAAA2AQBAPsEAQABAAAAAAUBACcFAQABAAAAMAUBAGMFAQABAAAAcAUBAHoFAQABAAAAfAUBAIoFAQABAAAAjAUBAJIFAQABAAAAlAUBAJUFAQABAAAAlwUBAKEFAQABAAAAowUBALEFAQABAAAAswUBALkFAQABAAAAuwUBALwFAQABAAAAAAYBADYHAQABAAAAQAcBAFUHAQABAAAAYAcBAGcHAQABAAAAgAcBAIUHAQABAAAAhwcBALAHAQABAAAAsgcBALoHAQABAAAAAAgBAAUIAQABAAAACAgBAAgIAQABAAAACggBADUIAQABAAAANwgBADgIAQABAAAAPAgBADwIAQABAAAAPwgBAFUIAQABAAAAYAgBAHYIAQABAAAAgAgBAJ4IAQABAAAA4AgBAPIIAQABAAAA9AgBAPUIAQABAAAAAAkBABUJAQABAAAAIAkBADkJAQABAAAAgAkBALcJAQABAAAAvgkBAL8JAQABAAAAAAoBAAAKAQABAAAAAQoBAAMKAQAEAAAABQoBAAYKAQAEAAAADAoBAA8KAQAEAAAAEAoBABMKAQABAAAAFQoBABcKAQABAAAAGQoBADUKAQABAAAAOAoBADoKAQAEAAAAPwoBAD8KAQAEAAAAYAoBAHwKAQABAAAAgAoBAJwKAQABAAAAwAoBAMcKAQABAAAAyQoBAOQKAQABAAAA5QoBAOYKAQAEAAAAAAsBADULAQABAAAAQAsBAFULAQABAAAAYAsBAHILAQABAAAAgAsBAJELAQABAAAAAAwBAEgMAQABAAAAgAwBALIMAQABAAAAwAwBAPIMAQABAAAAAA0BACMNAQABAAAAJA0BACcNAQAEAAAAMA0BADkNAQAOAAAAgA4BAKkOAQABAAAAqw4BAKwOAQAEAAAAsA4BALEOAQABAAAAAA8BABwPAQABAAAAJw8BACcPAQABAAAAMA8BAEUPAQABAAAARg8BAFAPAQAEAAAAcA8BAIEPAQABAAAAgg8BAIUPAQAEAAAAsA8BAMQPAQABAAAA4A8BAPYPAQABAAAAABABAAIQAQAEAAAAAxABADcQAQABAAAAOBABAEYQAQAEAAAAZhABAG8QAQAOAAAAcBABAHAQAQAEAAAAcRABAHIQAQABAAAAcxABAHQQAQAEAAAAdRABAHUQAQABAAAAfxABAIIQAQAEAAAAgxABAK8QAQABAAAAsBABALoQAQAEAAAAvRABAL0QAQAGAAAAwhABAMIQAQAEAAAAzRABAM0QAQAGAAAA0BABAOgQAQABAAAA8BABAPkQAQAOAAAAABEBAAIRAQAEAAAAAxEBACYRAQABAAAAJxEBADQRAQAEAAAANhEBAD8RAQAOAAAARBEBAEQRAQABAAAARREBAEYRAQAEAAAARxEBAEcRAQABAAAAUBEBAHIRAQABAAAAcxEBAHMRAQAEAAAAdhEBAHYRAQABAAAAgBEBAIIRAQAEAAAAgxEBALIRAQABAAAAsxEBAMARAQAEAAAAwREBAMQRAQABAAAAyREBAMwRAQAEAAAAzhEBAM8RAQAEAAAA0BEBANkRAQAOAAAA2hEBANoRAQABAAAA3BEBANwRAQABAAAAABIBABESAQABAAAAExIBACsSAQABAAAALBIBADcSAQAEAAAAPhIBAD4SAQAEAAAAgBIBAIYSAQABAAAAiBIBAIgSAQABAAAAihIBAI0SAQABAAAAjxIBAJ0SAQABAAAAnxIBAKgSAQABAAAAsBIBAN4SAQABAAAA3xIBAOoSAQAEAAAA8BIBAPkSAQAOAAAAABMBAAMTAQAEAAAABRMBAAwTAQABAAAADxMBABATAQABAAAAExMBACgTAQABAAAAKhMBADATAQABAAAAMhMBADMTAQABAAAANRMBADkTAQABAAAAOxMBADwTAQAEAAAAPRMBAD0TAQABAAAAPhMBAEQTAQAEAAAARxMBAEgTAQAEAAAASxMBAE0TAQAEAAAAUBMBAFATAQABAAAAVxMBAFcTAQAEAAAAXRMBAGETAQABAAAAYhMBAGMTAQAEAAAAZhMBAGwTAQAEAAAAcBMBAHQTAQAEAAAAABQBADQUAQABAAAANRQBAEYUAQAEAAAARxQBAEoUAQABAAAAUBQBAFkUAQAOAAAAXhQBAF4UAQAEAAAAXxQBAGEUAQABAAAAgBQBAK8UAQABAAAAsBQBAMMUAQAEAAAAxBQBAMUUAQABAAAAxxQBAMcUAQABAAAA0BQBANkUAQAOAAAAgBUBAK4VAQABAAAArxUBALUVAQAEAAAAuBUBAMAVAQAEAAAA2BUBANsVAQABAAAA3BUBAN0VAQAEAAAAABYBAC8WAQABAAAAMBYBAEAWAQAEAAAARBYBAEQWAQABAAAAUBYBAFkWAQAOAAAAgBYBAKoWAQABAAAAqxYBALcWAQAEAAAAuBYBALgWAQABAAAAwBYBAMkWAQAOAAAAHRcBACsXAQAEAAAAMBcBADkXAQAOAAAAABgBACsYAQABAAAALBgBADoYAQAEAAAAoBgBAN8YAQABAAAA4BgBAOkYAQAOAAAA/xgBAAYZAQABAAAACRkBAAkZAQABAAAADBkBABMZAQABAAAAFRkBABYZAQABAAAAGBkBAC8ZAQABAAAAMBkBADUZAQAEAAAANxkBADgZAQAEAAAAOxkBAD4ZAQAEAAAAPxkBAD8ZAQABAAAAQBkBAEAZAQAEAAAAQRkBAEEZAQABAAAAQhkBAEMZAQAEAAAAUBkBAFkZAQAOAAAAoBkBAKcZAQABAAAAqhkBANAZAQABAAAA0RkBANcZAQAEAAAA2hkBAOAZAQAEAAAA4RkBAOEZAQABAAAA4xkBAOMZAQABAAAA5BkBAOQZAQAEAAAAABoBAAAaAQABAAAAARoBAAoaAQAEAAAACxoBADIaAQABAAAAMxoBADkaAQAEAAAAOhoBADoaAQABAAAAOxoBAD4aAQAEAAAARxoBAEcaAQAEAAAAUBoBAFAaAQABAAAAURoBAFsaAQAEAAAAXBoBAIkaAQABAAAAihoBAJkaAQAEAAAAnRoBAJ0aAQABAAAAsBoBAPgaAQABAAAAABwBAAgcAQABAAAAChwBAC4cAQABAAAALxwBADYcAQAEAAAAOBwBAD8cAQAEAAAAQBwBAEAcAQABAAAAUBwBAFkcAQAOAAAAchwBAI8cAQABAAAAkhwBAKccAQAEAAAAqRwBALYcAQAEAAAAAB0BAAYdAQABAAAACB0BAAkdAQABAAAACx0BADAdAQABAAAAMR0BADYdAQAEAAAAOh0BADodAQAEAAAAPB0BAD0dAQAEAAAAPx0BAEUdAQAEAAAARh0BAEYdAQABAAAARx0BAEcdAQAEAAAAUB0BAFkdAQAOAAAAYB0BAGUdAQABAAAAZx0BAGgdAQABAAAAah0BAIkdAQABAAAAih0BAI4dAQAEAAAAkB0BAJEdAQAEAAAAkx0BAJcdAQAEAAAAmB0BAJgdAQABAAAAoB0BAKkdAQAOAAAA4B4BAPIeAQABAAAA8x4BAPYeAQAEAAAAsB8BALAfAQABAAAAACABAJkjAQABAAAAACQBAG4kAQABAAAAgCQBAEMlAQABAAAAkC8BAPAvAQABAAAAADABAC40AQABAAAAMDQBADg0AQAGAAAAAEQBAEZGAQABAAAAAGgBADhqAQABAAAAQGoBAF5qAQABAAAAYGoBAGlqAQAOAAAAcGoBAL5qAQABAAAAwGoBAMlqAQAOAAAA0GoBAO1qAQABAAAA8GoBAPRqAQAEAAAAAGsBAC9rAQABAAAAMGsBADZrAQAEAAAAQGsBAENrAQABAAAAUGsBAFlrAQAOAAAAY2sBAHdrAQABAAAAfWsBAI9rAQABAAAAQG4BAH9uAQABAAAAAG8BAEpvAQABAAAAT28BAE9vAQAEAAAAUG8BAFBvAQABAAAAUW8BAIdvAQAEAAAAj28BAJJvAQAEAAAAk28BAJ9vAQABAAAA4G8BAOFvAQABAAAA428BAONvAQABAAAA5G8BAORvAQAEAAAA8G8BAPFvAQAEAAAA8K8BAPOvAQAIAAAA9a8BAPuvAQAIAAAA/a8BAP6vAQAIAAAAALABAACwAQAIAAAAILEBACKxAQAIAAAAZLEBAGexAQAIAAAAALwBAGq8AQABAAAAcLwBAHy8AQABAAAAgLwBAIi8AQABAAAAkLwBAJm8AQABAAAAnbwBAJ68AQAEAAAAoLwBAKO8AQAGAAAAAM8BAC3PAQAEAAAAMM8BAEbPAQAEAAAAZdEBAGnRAQAEAAAAbdEBAHLRAQAEAAAAc9EBAHrRAQAGAAAAe9EBAILRAQAEAAAAhdEBAIvRAQAEAAAAqtEBAK3RAQAEAAAAQtIBAETSAQAEAAAAANQBAFTUAQABAAAAVtQBAJzUAQABAAAAntQBAJ/UAQABAAAAotQBAKLUAQABAAAApdQBAKbUAQABAAAAqdQBAKzUAQABAAAArtQBALnUAQABAAAAu9QBALvUAQABAAAAvdQBAMPUAQABAAAAxdQBAAXVAQABAAAAB9UBAArVAQABAAAADdUBABTVAQABAAAAFtUBABzVAQABAAAAHtUBADnVAQABAAAAO9UBAD7VAQABAAAAQNUBAETVAQABAAAARtUBAEbVAQABAAAAStUBAFDVAQABAAAAUtUBAKXWAQABAAAAqNYBAMDWAQABAAAAwtYBANrWAQABAAAA3NYBAPrWAQABAAAA/NYBABTXAQABAAAAFtcBADTXAQABAAAANtcBAE7XAQABAAAAUNcBAG7XAQABAAAAcNcBAIjXAQABAAAAitcBAKjXAQABAAAAqtcBAMLXAQABAAAAxNcBAMvXAQABAAAAztcBAP/XAQAOAAAAANoBADbaAQAEAAAAO9oBAGzaAQAEAAAAddoBAHXaAQAEAAAAhNoBAITaAQAEAAAAm9oBAJ/aAQAEAAAAodoBAK/aAQAEAAAAAN8BAB7fAQABAAAAAOABAAbgAQAEAAAACOABABjgAQAEAAAAG+ABACHgAQAEAAAAI+ABACTgAQAEAAAAJuABACrgAQAEAAAAAOEBACzhAQABAAAAMOEBADbhAQAEAAAAN+EBAD3hAQABAAAAQOEBAEnhAQAOAAAATuEBAE7hAQABAAAAkOIBAK3iAQABAAAAruIBAK7iAQAEAAAAwOIBAOviAQABAAAA7OIBAO/iAQAEAAAA8OIBAPniAQAOAAAA4OcBAObnAQABAAAA6OcBAOvnAQABAAAA7ecBAO7nAQABAAAA8OcBAP7nAQABAAAAAOgBAMToAQABAAAA0OgBANboAQAEAAAAAOkBAEPpAQABAAAAROkBAErpAQAEAAAAS+kBAEvpAQABAAAAUOkBAFnpAQAOAAAAAO4BAAPuAQABAAAABe4BAB/uAQABAAAAIe4BACLuAQABAAAAJO4BACTuAQABAAAAJ+4BACfuAQABAAAAKe4BADLuAQABAAAANO4BADfuAQABAAAAOe4BADnuAQABAAAAO+4BADvuAQABAAAAQu4BAELuAQABAAAAR+4BAEfuAQABAAAASe4BAEnuAQABAAAAS+4BAEvuAQABAAAATe4BAE/uAQABAAAAUe4BAFLuAQABAAAAVO4BAFTuAQABAAAAV+4BAFfuAQABAAAAWe4BAFnuAQABAAAAW+4BAFvuAQABAAAAXe4BAF3uAQABAAAAX+4BAF/uAQABAAAAYe4BAGLuAQABAAAAZO4BAGTuAQABAAAAZ+4BAGruAQABAAAAbO4BAHLuAQABAAAAdO4BAHfuAQABAAAAee4BAHzuAQABAAAAfu4BAH7uAQABAAAAgO4BAInuAQABAAAAi+4BAJvuAQABAAAAoe4BAKPuAQABAAAApe4BAKnuAQABAAAAq+4BALvuAQABAAAAMPEBAEnxAQABAAAAUPEBAGnxAQABAAAAcPEBAInxAQABAAAA5vEBAP/xAQAPAAAA+/MBAP/zAQAEAAAA8PsBAPn7AQAOAAAAAQAOAAEADgAGAAAAIAAOAH8ADgAEAAAAAAEOAO8BDgAEAEHEmAELn6wBCQAAAAMAAAAKAAAACgAAAAIAAAALAAAADAAAAAMAAAANAAAADQAAAAEAAAAOAAAAHwAAAAMAAAB/AAAAnwAAAAMAAACtAAAArQAAAAMAAAAAAwAAbwMAAAQAAACDBAAAiQQAAAQAAACRBQAAvQUAAAQAAAC/BQAAvwUAAAQAAADBBQAAwgUAAAQAAADEBQAAxQUAAAQAAADHBQAAxwUAAAQAAAAABgAABQYAAAUAAAAQBgAAGgYAAAQAAAAcBgAAHAYAAAMAAABLBgAAXwYAAAQAAABwBgAAcAYAAAQAAADWBgAA3AYAAAQAAADdBgAA3QYAAAUAAADfBgAA5AYAAAQAAADnBgAA6AYAAAQAAADqBgAA7QYAAAQAAAAPBwAADwcAAAUAAAARBwAAEQcAAAQAAAAwBwAASgcAAAQAAACmBwAAsAcAAAQAAADrBwAA8wcAAAQAAAD9BwAA/QcAAAQAAAAWCAAAGQgAAAQAAAAbCAAAIwgAAAQAAAAlCAAAJwgAAAQAAAApCAAALQgAAAQAAABZCAAAWwgAAAQAAACQCAAAkQgAAAUAAACYCAAAnwgAAAQAAADKCAAA4QgAAAQAAADiCAAA4ggAAAUAAADjCAAAAgkAAAQAAAADCQAAAwkAAAcAAAA6CQAAOgkAAAQAAAA7CQAAOwkAAAcAAAA8CQAAPAkAAAQAAAA+CQAAQAkAAAcAAABBCQAASAkAAAQAAABJCQAATAkAAAcAAABNCQAATQkAAAQAAABOCQAATwkAAAcAAABRCQAAVwkAAAQAAABiCQAAYwkAAAQAAACBCQAAgQkAAAQAAACCCQAAgwkAAAcAAAC8CQAAvAkAAAQAAAC+CQAAvgkAAAQAAAC/CQAAwAkAAAcAAADBCQAAxAkAAAQAAADHCQAAyAkAAAcAAADLCQAAzAkAAAcAAADNCQAAzQkAAAQAAADXCQAA1wkAAAQAAADiCQAA4wkAAAQAAAD+CQAA/gkAAAQAAAABCgAAAgoAAAQAAAADCgAAAwoAAAcAAAA8CgAAPAoAAAQAAAA+CgAAQAoAAAcAAABBCgAAQgoAAAQAAABHCgAASAoAAAQAAABLCgAATQoAAAQAAABRCgAAUQoAAAQAAABwCgAAcQoAAAQAAAB1CgAAdQoAAAQAAACBCgAAggoAAAQAAACDCgAAgwoAAAcAAAC8CgAAvAoAAAQAAAC+CgAAwAoAAAcAAADBCgAAxQoAAAQAAADHCgAAyAoAAAQAAADJCgAAyQoAAAcAAADLCgAAzAoAAAcAAADNCgAAzQoAAAQAAADiCgAA4woAAAQAAAD6CgAA/woAAAQAAAABCwAAAQsAAAQAAAACCwAAAwsAAAcAAAA8CwAAPAsAAAQAAAA+CwAAPwsAAAQAAABACwAAQAsAAAcAAABBCwAARAsAAAQAAABHCwAASAsAAAcAAABLCwAATAsAAAcAAABNCwAATQsAAAQAAABVCwAAVwsAAAQAAABiCwAAYwsAAAQAAACCCwAAggsAAAQAAAC+CwAAvgsAAAQAAAC/CwAAvwsAAAcAAADACwAAwAsAAAQAAADBCwAAwgsAAAcAAADGCwAAyAsAAAcAAADKCwAAzAsAAAcAAADNCwAAzQsAAAQAAADXCwAA1wsAAAQAAAAADAAAAAwAAAQAAAABDAAAAwwAAAcAAAAEDAAABAwAAAQAAAA8DAAAPAwAAAQAAAA+DAAAQAwAAAQAAABBDAAARAwAAAcAAABGDAAASAwAAAQAAABKDAAATQwAAAQAAABVDAAAVgwAAAQAAABiDAAAYwwAAAQAAACBDAAAgQwAAAQAAACCDAAAgwwAAAcAAAC8DAAAvAwAAAQAAAC+DAAAvgwAAAcAAAC/DAAAvwwAAAQAAADADAAAwQwAAAcAAADCDAAAwgwAAAQAAADDDAAAxAwAAAcAAADGDAAAxgwAAAQAAADHDAAAyAwAAAcAAADKDAAAywwAAAcAAADMDAAAzQwAAAQAAADVDAAA1gwAAAQAAADiDAAA4wwAAAQAAAAADQAAAQ0AAAQAAAACDQAAAw0AAAcAAAA7DQAAPA0AAAQAAAA+DQAAPg0AAAQAAAA/DQAAQA0AAAcAAABBDQAARA0AAAQAAABGDQAASA0AAAcAAABKDQAATA0AAAcAAABNDQAATQ0AAAQAAABODQAATg0AAAUAAABXDQAAVw0AAAQAAABiDQAAYw0AAAQAAACBDQAAgQ0AAAQAAACCDQAAgw0AAAcAAADKDQAAyg0AAAQAAADPDQAAzw0AAAQAAADQDQAA0Q0AAAcAAADSDQAA1A0AAAQAAADWDQAA1g0AAAQAAADYDQAA3g0AAAcAAADfDQAA3w0AAAQAAADyDQAA8w0AAAcAAAAxDgAAMQ4AAAQAAAAzDgAAMw4AAAcAAAA0DgAAOg4AAAQAAABHDgAATg4AAAQAAACxDgAAsQ4AAAQAAACzDgAAsw4AAAcAAAC0DgAAvA4AAAQAAADIDgAAzQ4AAAQAAAAYDwAAGQ8AAAQAAAA1DwAANQ8AAAQAAAA3DwAANw8AAAQAAAA5DwAAOQ8AAAQAAAA+DwAAPw8AAAcAAABxDwAAfg8AAAQAAAB/DwAAfw8AAAcAAACADwAAhA8AAAQAAACGDwAAhw8AAAQAAACNDwAAlw8AAAQAAACZDwAAvA8AAAQAAADGDwAAxg8AAAQAAAAtEAAAMBAAAAQAAAAxEAAAMRAAAAcAAAAyEAAANxAAAAQAAAA5EAAAOhAAAAQAAAA7EAAAPBAAAAcAAAA9EAAAPhAAAAQAAABWEAAAVxAAAAcAAABYEAAAWRAAAAQAAABeEAAAYBAAAAQAAABxEAAAdBAAAAQAAACCEAAAghAAAAQAAACEEAAAhBAAAAcAAACFEAAAhhAAAAQAAACNEAAAjRAAAAQAAACdEAAAnRAAAAQAAAAAEQAAXxEAAA0AAABgEQAApxEAABEAAACoEQAA/xEAABAAAABdEwAAXxMAAAQAAAASFwAAFBcAAAQAAAAVFwAAFRcAAAcAAAAyFwAAMxcAAAQAAAA0FwAANBcAAAcAAABSFwAAUxcAAAQAAAByFwAAcxcAAAQAAAC0FwAAtRcAAAQAAAC2FwAAthcAAAcAAAC3FwAAvRcAAAQAAAC+FwAAxRcAAAcAAADGFwAAxhcAAAQAAADHFwAAyBcAAAcAAADJFwAA0xcAAAQAAADdFwAA3RcAAAQAAAALGAAADRgAAAQAAAAOGAAADhgAAAMAAAAPGAAADxgAAAQAAACFGAAAhhgAAAQAAACpGAAAqRgAAAQAAAAgGQAAIhkAAAQAAAAjGQAAJhkAAAcAAAAnGQAAKBkAAAQAAAApGQAAKxkAAAcAAAAwGQAAMRkAAAcAAAAyGQAAMhkAAAQAAAAzGQAAOBkAAAcAAAA5GQAAOxkAAAQAAAAXGgAAGBoAAAQAAAAZGgAAGhoAAAcAAAAbGgAAGxoAAAQAAABVGgAAVRoAAAcAAABWGgAAVhoAAAQAAABXGgAAVxoAAAcAAABYGgAAXhoAAAQAAABgGgAAYBoAAAQAAABiGgAAYhoAAAQAAABlGgAAbBoAAAQAAABtGgAAchoAAAcAAABzGgAAfBoAAAQAAAB/GgAAfxoAAAQAAACwGgAAzhoAAAQAAAAAGwAAAxsAAAQAAAAEGwAABBsAAAcAAAA0GwAAOhsAAAQAAAA7GwAAOxsAAAcAAAA8GwAAPBsAAAQAAAA9GwAAQRsAAAcAAABCGwAAQhsAAAQAAABDGwAARBsAAAcAAABrGwAAcxsAAAQAAACAGwAAgRsAAAQAAACCGwAAghsAAAcAAAChGwAAoRsAAAcAAACiGwAApRsAAAQAAACmGwAApxsAAAcAAACoGwAAqRsAAAQAAACqGwAAqhsAAAcAAACrGwAArRsAAAQAAADmGwAA5hsAAAQAAADnGwAA5xsAAAcAAADoGwAA6RsAAAQAAADqGwAA7BsAAAcAAADtGwAA7RsAAAQAAADuGwAA7hsAAAcAAADvGwAA8RsAAAQAAADyGwAA8xsAAAcAAAAkHAAAKxwAAAcAAAAsHAAAMxwAAAQAAAA0HAAANRwAAAcAAAA2HAAANxwAAAQAAADQHAAA0hwAAAQAAADUHAAA4BwAAAQAAADhHAAA4RwAAAcAAADiHAAA6BwAAAQAAADtHAAA7RwAAAQAAAD0HAAA9BwAAAQAAAD3HAAA9xwAAAcAAAD4HAAA+RwAAAQAAADAHQAA/x0AAAQAAAALIAAACyAAAAMAAAAMIAAADCAAAAQAAAANIAAADSAAAAgAAAAOIAAADyAAAAMAAAAoIAAALiAAAAMAAABgIAAAbyAAAAMAAADQIAAA8CAAAAQAAADvLAAA8SwAAAQAAAB/LQAAfy0AAAQAAADgLQAA/y0AAAQAAAAqMAAALzAAAAQAAACZMAAAmjAAAAQAAABvpgAAcqYAAAQAAAB0pgAAfaYAAAQAAACepgAAn6YAAAQAAADwpgAA8aYAAAQAAAACqAAAAqgAAAQAAAAGqAAABqgAAAQAAAALqAAAC6gAAAQAAAAjqAAAJKgAAAcAAAAlqAAAJqgAAAQAAAAnqAAAJ6gAAAcAAAAsqAAALKgAAAQAAACAqAAAgagAAAcAAAC0qAAAw6gAAAcAAADEqAAAxagAAAQAAADgqAAA8agAAAQAAAD/qAAA/6gAAAQAAAAmqQAALakAAAQAAABHqQAAUakAAAQAAABSqQAAU6kAAAcAAABgqQAAfKkAAA0AAACAqQAAgqkAAAQAAACDqQAAg6kAAAcAAACzqQAAs6kAAAQAAAC0qQAAtakAAAcAAAC2qQAAuakAAAQAAAC6qQAAu6kAAAcAAAC8qQAAvakAAAQAAAC+qQAAwKkAAAcAAADlqQAA5akAAAQAAAApqgAALqoAAAQAAAAvqgAAMKoAAAcAAAAxqgAAMqoAAAQAAAAzqgAANKoAAAcAAAA1qgAANqoAAAQAAABDqgAAQ6oAAAQAAABMqgAATKoAAAQAAABNqgAATaoAAAcAAAB8qgAAfKoAAAQAAACwqgAAsKoAAAQAAACyqgAAtKoAAAQAAAC3qgAAuKoAAAQAAAC+qgAAv6oAAAQAAADBqgAAwaoAAAQAAADrqgAA66oAAAcAAADsqgAA7aoAAAQAAADuqgAA76oAAAcAAAD1qgAA9aoAAAcAAAD2qgAA9qoAAAQAAADjqwAA5KsAAAcAAADlqwAA5asAAAQAAADmqwAA56sAAAcAAADoqwAA6KsAAAQAAADpqwAA6qsAAAcAAADsqwAA7KsAAAcAAADtqwAA7asAAAQAAAAArAAAAKwAAA4AAAABrAAAG6wAAA8AAAAcrAAAHKwAAA4AAAAdrAAAN6wAAA8AAAA4rAAAOKwAAA4AAAA5rAAAU6wAAA8AAABUrAAAVKwAAA4AAABVrAAAb6wAAA8AAABwrAAAcKwAAA4AAABxrAAAi6wAAA8AAACMrAAAjKwAAA4AAACNrAAAp6wAAA8AAACorAAAqKwAAA4AAACprAAAw6wAAA8AAADErAAAxKwAAA4AAADFrAAA36wAAA8AAADgrAAA4KwAAA4AAADhrAAA+6wAAA8AAAD8rAAA/KwAAA4AAAD9rAAAF60AAA8AAAAYrQAAGK0AAA4AAAAZrQAAM60AAA8AAAA0rQAANK0AAA4AAAA1rQAAT60AAA8AAABQrQAAUK0AAA4AAABRrQAAa60AAA8AAABsrQAAbK0AAA4AAABtrQAAh60AAA8AAACIrQAAiK0AAA4AAACJrQAAo60AAA8AAACkrQAApK0AAA4AAAClrQAAv60AAA8AAADArQAAwK0AAA4AAADBrQAA260AAA8AAADcrQAA3K0AAA4AAADdrQAA960AAA8AAAD4rQAA+K0AAA4AAAD5rQAAE64AAA8AAAAUrgAAFK4AAA4AAAAVrgAAL64AAA8AAAAwrgAAMK4AAA4AAAAxrgAAS64AAA8AAABMrgAATK4AAA4AAABNrgAAZ64AAA8AAABorgAAaK4AAA4AAABprgAAg64AAA8AAACErgAAhK4AAA4AAACFrgAAn64AAA8AAACgrgAAoK4AAA4AAAChrgAAu64AAA8AAAC8rgAAvK4AAA4AAAC9rgAA164AAA8AAADYrgAA2K4AAA4AAADZrgAA864AAA8AAAD0rgAA9K4AAA4AAAD1rgAAD68AAA8AAAAQrwAAEK8AAA4AAAARrwAAK68AAA8AAAAsrwAALK8AAA4AAAAtrwAAR68AAA8AAABIrwAASK8AAA4AAABJrwAAY68AAA8AAABkrwAAZK8AAA4AAABlrwAAf68AAA8AAACArwAAgK8AAA4AAACBrwAAm68AAA8AAACcrwAAnK8AAA4AAACdrwAAt68AAA8AAAC4rwAAuK8AAA4AAAC5rwAA068AAA8AAADUrwAA1K8AAA4AAADVrwAA768AAA8AAADwrwAA8K8AAA4AAADxrwAAC7AAAA8AAAAMsAAADLAAAA4AAAANsAAAJ7AAAA8AAAAosAAAKLAAAA4AAAApsAAAQ7AAAA8AAABEsAAARLAAAA4AAABFsAAAX7AAAA8AAABgsAAAYLAAAA4AAABhsAAAe7AAAA8AAAB8sAAAfLAAAA4AAAB9sAAAl7AAAA8AAACYsAAAmLAAAA4AAACZsAAAs7AAAA8AAAC0sAAAtLAAAA4AAAC1sAAAz7AAAA8AAADQsAAA0LAAAA4AAADRsAAA67AAAA8AAADssAAA7LAAAA4AAADtsAAAB7EAAA8AAAAIsQAACLEAAA4AAAAJsQAAI7EAAA8AAAAksQAAJLEAAA4AAAAlsQAAP7EAAA8AAABAsQAAQLEAAA4AAABBsQAAW7EAAA8AAABcsQAAXLEAAA4AAABdsQAAd7EAAA8AAAB4sQAAeLEAAA4AAAB5sQAAk7EAAA8AAACUsQAAlLEAAA4AAACVsQAAr7EAAA8AAACwsQAAsLEAAA4AAACxsQAAy7EAAA8AAADMsQAAzLEAAA4AAADNsQAA57EAAA8AAADosQAA6LEAAA4AAADpsQAAA7IAAA8AAAAEsgAABLIAAA4AAAAFsgAAH7IAAA8AAAAgsgAAILIAAA4AAAAhsgAAO7IAAA8AAAA8sgAAPLIAAA4AAAA9sgAAV7IAAA8AAABYsgAAWLIAAA4AAABZsgAAc7IAAA8AAAB0sgAAdLIAAA4AAAB1sgAAj7IAAA8AAACQsgAAkLIAAA4AAACRsgAAq7IAAA8AAACssgAArLIAAA4AAACtsgAAx7IAAA8AAADIsgAAyLIAAA4AAADJsgAA47IAAA8AAADksgAA5LIAAA4AAADlsgAA/7IAAA8AAAAAswAAALMAAA4AAAABswAAG7MAAA8AAAAcswAAHLMAAA4AAAAdswAAN7MAAA8AAAA4swAAOLMAAA4AAAA5swAAU7MAAA8AAABUswAAVLMAAA4AAABVswAAb7MAAA8AAABwswAAcLMAAA4AAABxswAAi7MAAA8AAACMswAAjLMAAA4AAACNswAAp7MAAA8AAACoswAAqLMAAA4AAACpswAAw7MAAA8AAADEswAAxLMAAA4AAADFswAA37MAAA8AAADgswAA4LMAAA4AAADhswAA+7MAAA8AAAD8swAA/LMAAA4AAAD9swAAF7QAAA8AAAAYtAAAGLQAAA4AAAAZtAAAM7QAAA8AAAA0tAAANLQAAA4AAAA1tAAAT7QAAA8AAABQtAAAULQAAA4AAABRtAAAa7QAAA8AAABstAAAbLQAAA4AAABttAAAh7QAAA8AAACItAAAiLQAAA4AAACJtAAAo7QAAA8AAACktAAApLQAAA4AAACltAAAv7QAAA8AAADAtAAAwLQAAA4AAADBtAAA27QAAA8AAADctAAA3LQAAA4AAADdtAAA97QAAA8AAAD4tAAA+LQAAA4AAAD5tAAAE7UAAA8AAAAUtQAAFLUAAA4AAAAVtQAAL7UAAA8AAAAwtQAAMLUAAA4AAAAxtQAAS7UAAA8AAABMtQAATLUAAA4AAABNtQAAZ7UAAA8AAABotQAAaLUAAA4AAABptQAAg7UAAA8AAACEtQAAhLUAAA4AAACFtQAAn7UAAA8AAACgtQAAoLUAAA4AAAChtQAAu7UAAA8AAAC8tQAAvLUAAA4AAAC9tQAA17UAAA8AAADYtQAA2LUAAA4AAADZtQAA87UAAA8AAAD0tQAA9LUAAA4AAAD1tQAAD7YAAA8AAAAQtgAAELYAAA4AAAARtgAAK7YAAA8AAAAstgAALLYAAA4AAAAttgAAR7YAAA8AAABItgAASLYAAA4AAABJtgAAY7YAAA8AAABktgAAZLYAAA4AAABltgAAf7YAAA8AAACAtgAAgLYAAA4AAACBtgAAm7YAAA8AAACctgAAnLYAAA4AAACdtgAAt7YAAA8AAAC4tgAAuLYAAA4AAAC5tgAA07YAAA8AAADUtgAA1LYAAA4AAADVtgAA77YAAA8AAADwtgAA8LYAAA4AAADxtgAAC7cAAA8AAAAMtwAADLcAAA4AAAANtwAAJ7cAAA8AAAAotwAAKLcAAA4AAAAptwAAQ7cAAA8AAABEtwAARLcAAA4AAABFtwAAX7cAAA8AAABgtwAAYLcAAA4AAABhtwAAe7cAAA8AAAB8twAAfLcAAA4AAAB9twAAl7cAAA8AAACYtwAAmLcAAA4AAACZtwAAs7cAAA8AAAC0twAAtLcAAA4AAAC1twAAz7cAAA8AAADQtwAA0LcAAA4AAADRtwAA67cAAA8AAADstwAA7LcAAA4AAADttwAAB7gAAA8AAAAIuAAACLgAAA4AAAAJuAAAI7gAAA8AAAAkuAAAJLgAAA4AAAAluAAAP7gAAA8AAABAuAAAQLgAAA4AAABBuAAAW7gAAA8AAABcuAAAXLgAAA4AAABduAAAd7gAAA8AAAB4uAAAeLgAAA4AAAB5uAAAk7gAAA8AAACUuAAAlLgAAA4AAACVuAAAr7gAAA8AAACwuAAAsLgAAA4AAACxuAAAy7gAAA8AAADMuAAAzLgAAA4AAADNuAAA57gAAA8AAADouAAA6LgAAA4AAADpuAAAA7kAAA8AAAAEuQAABLkAAA4AAAAFuQAAH7kAAA8AAAAguQAAILkAAA4AAAAhuQAAO7kAAA8AAAA8uQAAPLkAAA4AAAA9uQAAV7kAAA8AAABYuQAAWLkAAA4AAABZuQAAc7kAAA8AAAB0uQAAdLkAAA4AAAB1uQAAj7kAAA8AAACQuQAAkLkAAA4AAACRuQAAq7kAAA8AAACsuQAArLkAAA4AAACtuQAAx7kAAA8AAADIuQAAyLkAAA4AAADJuQAA47kAAA8AAADkuQAA5LkAAA4AAADluQAA/7kAAA8AAAAAugAAALoAAA4AAAABugAAG7oAAA8AAAAcugAAHLoAAA4AAAAdugAAN7oAAA8AAAA4ugAAOLoAAA4AAAA5ugAAU7oAAA8AAABUugAAVLoAAA4AAABVugAAb7oAAA8AAABwugAAcLoAAA4AAABxugAAi7oAAA8AAACMugAAjLoAAA4AAACNugAAp7oAAA8AAACougAAqLoAAA4AAACpugAAw7oAAA8AAADEugAAxLoAAA4AAADFugAA37oAAA8AAADgugAA4LoAAA4AAADhugAA+7oAAA8AAAD8ugAA/LoAAA4AAAD9ugAAF7sAAA8AAAAYuwAAGLsAAA4AAAAZuwAAM7sAAA8AAAA0uwAANLsAAA4AAAA1uwAAT7sAAA8AAABQuwAAULsAAA4AAABRuwAAa7sAAA8AAABsuwAAbLsAAA4AAABtuwAAh7sAAA8AAACIuwAAiLsAAA4AAACJuwAAo7sAAA8AAACkuwAApLsAAA4AAACluwAAv7sAAA8AAADAuwAAwLsAAA4AAADBuwAA27sAAA8AAADcuwAA3LsAAA4AAADduwAA97sAAA8AAAD4uwAA+LsAAA4AAAD5uwAAE7wAAA8AAAAUvAAAFLwAAA4AAAAVvAAAL7wAAA8AAAAwvAAAMLwAAA4AAAAxvAAAS7wAAA8AAABMvAAATLwAAA4AAABNvAAAZ7wAAA8AAABovAAAaLwAAA4AAABpvAAAg7wAAA8AAACEvAAAhLwAAA4AAACFvAAAn7wAAA8AAACgvAAAoLwAAA4AAAChvAAAu7wAAA8AAAC8vAAAvLwAAA4AAAC9vAAA17wAAA8AAADYvAAA2LwAAA4AAADZvAAA87wAAA8AAAD0vAAA9LwAAA4AAAD1vAAAD70AAA8AAAAQvQAAEL0AAA4AAAARvQAAK70AAA8AAAAsvQAALL0AAA4AAAAtvQAAR70AAA8AAABIvQAASL0AAA4AAABJvQAAY70AAA8AAABkvQAAZL0AAA4AAABlvQAAf70AAA8AAACAvQAAgL0AAA4AAACBvQAAm70AAA8AAACcvQAAnL0AAA4AAACdvQAAt70AAA8AAAC4vQAAuL0AAA4AAAC5vQAA070AAA8AAADUvQAA1L0AAA4AAADVvQAA770AAA8AAADwvQAA8L0AAA4AAADxvQAAC74AAA8AAAAMvgAADL4AAA4AAAANvgAAJ74AAA8AAAAovgAAKL4AAA4AAAApvgAAQ74AAA8AAABEvgAARL4AAA4AAABFvgAAX74AAA8AAABgvgAAYL4AAA4AAABhvgAAe74AAA8AAAB8vgAAfL4AAA4AAAB9vgAAl74AAA8AAACYvgAAmL4AAA4AAACZvgAAs74AAA8AAAC0vgAAtL4AAA4AAAC1vgAAz74AAA8AAADQvgAA0L4AAA4AAADRvgAA674AAA8AAADsvgAA7L4AAA4AAADtvgAAB78AAA8AAAAIvwAACL8AAA4AAAAJvwAAI78AAA8AAAAkvwAAJL8AAA4AAAAlvwAAP78AAA8AAABAvwAAQL8AAA4AAABBvwAAW78AAA8AAABcvwAAXL8AAA4AAABdvwAAd78AAA8AAAB4vwAAeL8AAA4AAAB5vwAAk78AAA8AAACUvwAAlL8AAA4AAACVvwAAr78AAA8AAACwvwAAsL8AAA4AAACxvwAAy78AAA8AAADMvwAAzL8AAA4AAADNvwAA578AAA8AAADovwAA6L8AAA4AAADpvwAAA8AAAA8AAAAEwAAABMAAAA4AAAAFwAAAH8AAAA8AAAAgwAAAIMAAAA4AAAAhwAAAO8AAAA8AAAA8wAAAPMAAAA4AAAA9wAAAV8AAAA8AAABYwAAAWMAAAA4AAABZwAAAc8AAAA8AAAB0wAAAdMAAAA4AAAB1wAAAj8AAAA8AAACQwAAAkMAAAA4AAACRwAAAq8AAAA8AAACswAAArMAAAA4AAACtwAAAx8AAAA8AAADIwAAAyMAAAA4AAADJwAAA48AAAA8AAADkwAAA5MAAAA4AAADlwAAA/8AAAA8AAAAAwQAAAMEAAA4AAAABwQAAG8EAAA8AAAAcwQAAHMEAAA4AAAAdwQAAN8EAAA8AAAA4wQAAOMEAAA4AAAA5wQAAU8EAAA8AAABUwQAAVMEAAA4AAABVwQAAb8EAAA8AAABwwQAAcMEAAA4AAABxwQAAi8EAAA8AAACMwQAAjMEAAA4AAACNwQAAp8EAAA8AAACowQAAqMEAAA4AAACpwQAAw8EAAA8AAADEwQAAxMEAAA4AAADFwQAA38EAAA8AAADgwQAA4MEAAA4AAADhwQAA+8EAAA8AAAD8wQAA/MEAAA4AAAD9wQAAF8IAAA8AAAAYwgAAGMIAAA4AAAAZwgAAM8IAAA8AAAA0wgAANMIAAA4AAAA1wgAAT8IAAA8AAABQwgAAUMIAAA4AAABRwgAAa8IAAA8AAABswgAAbMIAAA4AAABtwgAAh8IAAA8AAACIwgAAiMIAAA4AAACJwgAAo8IAAA8AAACkwgAApMIAAA4AAAClwgAAv8IAAA8AAADAwgAAwMIAAA4AAADBwgAA28IAAA8AAADcwgAA3MIAAA4AAADdwgAA98IAAA8AAAD4wgAA+MIAAA4AAAD5wgAAE8MAAA8AAAAUwwAAFMMAAA4AAAAVwwAAL8MAAA8AAAAwwwAAMMMAAA4AAAAxwwAAS8MAAA8AAABMwwAATMMAAA4AAABNwwAAZ8MAAA8AAABowwAAaMMAAA4AAABpwwAAg8MAAA8AAACEwwAAhMMAAA4AAACFwwAAn8MAAA8AAACgwwAAoMMAAA4AAAChwwAAu8MAAA8AAAC8wwAAvMMAAA4AAAC9wwAA18MAAA8AAADYwwAA2MMAAA4AAADZwwAA88MAAA8AAAD0wwAA9MMAAA4AAAD1wwAAD8QAAA8AAAAQxAAAEMQAAA4AAAARxAAAK8QAAA8AAAAsxAAALMQAAA4AAAAtxAAAR8QAAA8AAABIxAAASMQAAA4AAABJxAAAY8QAAA8AAABkxAAAZMQAAA4AAABlxAAAf8QAAA8AAACAxAAAgMQAAA4AAACBxAAAm8QAAA8AAACcxAAAnMQAAA4AAACdxAAAt8QAAA8AAAC4xAAAuMQAAA4AAAC5xAAA08QAAA8AAADUxAAA1MQAAA4AAADVxAAA78QAAA8AAADwxAAA8MQAAA4AAADxxAAAC8UAAA8AAAAMxQAADMUAAA4AAAANxQAAJ8UAAA8AAAAoxQAAKMUAAA4AAAApxQAAQ8UAAA8AAABExQAARMUAAA4AAABFxQAAX8UAAA8AAABgxQAAYMUAAA4AAABhxQAAe8UAAA8AAAB8xQAAfMUAAA4AAAB9xQAAl8UAAA8AAACYxQAAmMUAAA4AAACZxQAAs8UAAA8AAAC0xQAAtMUAAA4AAAC1xQAAz8UAAA8AAADQxQAA0MUAAA4AAADRxQAA68UAAA8AAADsxQAA7MUAAA4AAADtxQAAB8YAAA8AAAAIxgAACMYAAA4AAAAJxgAAI8YAAA8AAAAkxgAAJMYAAA4AAAAlxgAAP8YAAA8AAABAxgAAQMYAAA4AAABBxgAAW8YAAA8AAABcxgAAXMYAAA4AAABdxgAAd8YAAA8AAAB4xgAAeMYAAA4AAAB5xgAAk8YAAA8AAACUxgAAlMYAAA4AAACVxgAAr8YAAA8AAACwxgAAsMYAAA4AAACxxgAAy8YAAA8AAADMxgAAzMYAAA4AAADNxgAA58YAAA8AAADoxgAA6MYAAA4AAADpxgAAA8cAAA8AAAAExwAABMcAAA4AAAAFxwAAH8cAAA8AAAAgxwAAIMcAAA4AAAAhxwAAO8cAAA8AAAA8xwAAPMcAAA4AAAA9xwAAV8cAAA8AAABYxwAAWMcAAA4AAABZxwAAc8cAAA8AAAB0xwAAdMcAAA4AAAB1xwAAj8cAAA8AAACQxwAAkMcAAA4AAACRxwAAq8cAAA8AAACsxwAArMcAAA4AAACtxwAAx8cAAA8AAADIxwAAyMcAAA4AAADJxwAA48cAAA8AAADkxwAA5McAAA4AAADlxwAA/8cAAA8AAAAAyAAAAMgAAA4AAAAByAAAG8gAAA8AAAAcyAAAHMgAAA4AAAAdyAAAN8gAAA8AAAA4yAAAOMgAAA4AAAA5yAAAU8gAAA8AAABUyAAAVMgAAA4AAABVyAAAb8gAAA8AAABwyAAAcMgAAA4AAABxyAAAi8gAAA8AAACMyAAAjMgAAA4AAACNyAAAp8gAAA8AAACoyAAAqMgAAA4AAACpyAAAw8gAAA8AAADEyAAAxMgAAA4AAADFyAAA38gAAA8AAADgyAAA4MgAAA4AAADhyAAA+8gAAA8AAAD8yAAA/MgAAA4AAAD9yAAAF8kAAA8AAAAYyQAAGMkAAA4AAAAZyQAAM8kAAA8AAAA0yQAANMkAAA4AAAA1yQAAT8kAAA8AAABQyQAAUMkAAA4AAABRyQAAa8kAAA8AAABsyQAAbMkAAA4AAABtyQAAh8kAAA8AAACIyQAAiMkAAA4AAACJyQAAo8kAAA8AAACkyQAApMkAAA4AAAClyQAAv8kAAA8AAADAyQAAwMkAAA4AAADByQAA28kAAA8AAADcyQAA3MkAAA4AAADdyQAA98kAAA8AAAD4yQAA+MkAAA4AAAD5yQAAE8oAAA8AAAAUygAAFMoAAA4AAAAVygAAL8oAAA8AAAAwygAAMMoAAA4AAAAxygAAS8oAAA8AAABMygAATMoAAA4AAABNygAAZ8oAAA8AAABoygAAaMoAAA4AAABpygAAg8oAAA8AAACEygAAhMoAAA4AAACFygAAn8oAAA8AAACgygAAoMoAAA4AAAChygAAu8oAAA8AAAC8ygAAvMoAAA4AAAC9ygAA18oAAA8AAADYygAA2MoAAA4AAADZygAA88oAAA8AAAD0ygAA9MoAAA4AAAD1ygAAD8sAAA8AAAAQywAAEMsAAA4AAAARywAAK8sAAA8AAAAsywAALMsAAA4AAAAtywAAR8sAAA8AAABIywAASMsAAA4AAABJywAAY8sAAA8AAABkywAAZMsAAA4AAABlywAAf8sAAA8AAACAywAAgMsAAA4AAACBywAAm8sAAA8AAACcywAAnMsAAA4AAACdywAAt8sAAA8AAAC4ywAAuMsAAA4AAAC5ywAA08sAAA8AAADUywAA1MsAAA4AAADVywAA78sAAA8AAADwywAA8MsAAA4AAADxywAAC8wAAA8AAAAMzAAADMwAAA4AAAANzAAAJ8wAAA8AAAAozAAAKMwAAA4AAAApzAAAQ8wAAA8AAABEzAAARMwAAA4AAABFzAAAX8wAAA8AAABgzAAAYMwAAA4AAABhzAAAe8wAAA8AAAB8zAAAfMwAAA4AAAB9zAAAl8wAAA8AAACYzAAAmMwAAA4AAACZzAAAs8wAAA8AAAC0zAAAtMwAAA4AAAC1zAAAz8wAAA8AAADQzAAA0MwAAA4AAADRzAAA68wAAA8AAADszAAA7MwAAA4AAADtzAAAB80AAA8AAAAIzQAACM0AAA4AAAAJzQAAI80AAA8AAAAkzQAAJM0AAA4AAAAlzQAAP80AAA8AAABAzQAAQM0AAA4AAABBzQAAW80AAA8AAABczQAAXM0AAA4AAABdzQAAd80AAA8AAAB4zQAAeM0AAA4AAAB5zQAAk80AAA8AAACUzQAAlM0AAA4AAACVzQAAr80AAA8AAACwzQAAsM0AAA4AAACxzQAAy80AAA8AAADMzQAAzM0AAA4AAADNzQAA580AAA8AAADozQAA6M0AAA4AAADpzQAAA84AAA8AAAAEzgAABM4AAA4AAAAFzgAAH84AAA8AAAAgzgAAIM4AAA4AAAAhzgAAO84AAA8AAAA8zgAAPM4AAA4AAAA9zgAAV84AAA8AAABYzgAAWM4AAA4AAABZzgAAc84AAA8AAAB0zgAAdM4AAA4AAAB1zgAAj84AAA8AAACQzgAAkM4AAA4AAACRzgAAq84AAA8AAACszgAArM4AAA4AAACtzgAAx84AAA8AAADIzgAAyM4AAA4AAADJzgAA484AAA8AAADkzgAA5M4AAA4AAADlzgAA/84AAA8AAAAAzwAAAM8AAA4AAAABzwAAG88AAA8AAAAczwAAHM8AAA4AAAAdzwAAN88AAA8AAAA4zwAAOM8AAA4AAAA5zwAAU88AAA8AAABUzwAAVM8AAA4AAABVzwAAb88AAA8AAABwzwAAcM8AAA4AAABxzwAAi88AAA8AAACMzwAAjM8AAA4AAACNzwAAp88AAA8AAACozwAAqM8AAA4AAACpzwAAw88AAA8AAADEzwAAxM8AAA4AAADFzwAA388AAA8AAADgzwAA4M8AAA4AAADhzwAA+88AAA8AAAD8zwAA/M8AAA4AAAD9zwAAF9AAAA8AAAAY0AAAGNAAAA4AAAAZ0AAAM9AAAA8AAAA00AAANNAAAA4AAAA10AAAT9AAAA8AAABQ0AAAUNAAAA4AAABR0AAAa9AAAA8AAABs0AAAbNAAAA4AAABt0AAAh9AAAA8AAACI0AAAiNAAAA4AAACJ0AAAo9AAAA8AAACk0AAApNAAAA4AAACl0AAAv9AAAA8AAADA0AAAwNAAAA4AAADB0AAA29AAAA8AAADc0AAA3NAAAA4AAADd0AAA99AAAA8AAAD40AAA+NAAAA4AAAD50AAAE9EAAA8AAAAU0QAAFNEAAA4AAAAV0QAAL9EAAA8AAAAw0QAAMNEAAA4AAAAx0QAAS9EAAA8AAABM0QAATNEAAA4AAABN0QAAZ9EAAA8AAABo0QAAaNEAAA4AAABp0QAAg9EAAA8AAACE0QAAhNEAAA4AAACF0QAAn9EAAA8AAACg0QAAoNEAAA4AAACh0QAAu9EAAA8AAAC80QAAvNEAAA4AAAC90QAA19EAAA8AAADY0QAA2NEAAA4AAADZ0QAA89EAAA8AAAD00QAA9NEAAA4AAAD10QAAD9IAAA8AAAAQ0gAAENIAAA4AAAAR0gAAK9IAAA8AAAAs0gAALNIAAA4AAAAt0gAAR9IAAA8AAABI0gAASNIAAA4AAABJ0gAAY9IAAA8AAABk0gAAZNIAAA4AAABl0gAAf9IAAA8AAACA0gAAgNIAAA4AAACB0gAAm9IAAA8AAACc0gAAnNIAAA4AAACd0gAAt9IAAA8AAAC40gAAuNIAAA4AAAC50gAA09IAAA8AAADU0gAA1NIAAA4AAADV0gAA79IAAA8AAADw0gAA8NIAAA4AAADx0gAAC9MAAA8AAAAM0wAADNMAAA4AAAAN0wAAJ9MAAA8AAAAo0wAAKNMAAA4AAAAp0wAAQ9MAAA8AAABE0wAARNMAAA4AAABF0wAAX9MAAA8AAABg0wAAYNMAAA4AAABh0wAAe9MAAA8AAAB80wAAfNMAAA4AAAB90wAAl9MAAA8AAACY0wAAmNMAAA4AAACZ0wAAs9MAAA8AAAC00wAAtNMAAA4AAAC10wAAz9MAAA8AAADQ0wAA0NMAAA4AAADR0wAA69MAAA8AAADs0wAA7NMAAA4AAADt0wAAB9QAAA8AAAAI1AAACNQAAA4AAAAJ1AAAI9QAAA8AAAAk1AAAJNQAAA4AAAAl1AAAP9QAAA8AAABA1AAAQNQAAA4AAABB1AAAW9QAAA8AAABc1AAAXNQAAA4AAABd1AAAd9QAAA8AAAB41AAAeNQAAA4AAAB51AAAk9QAAA8AAACU1AAAlNQAAA4AAACV1AAAr9QAAA8AAACw1AAAsNQAAA4AAACx1AAAy9QAAA8AAADM1AAAzNQAAA4AAADN1AAA59QAAA8AAADo1AAA6NQAAA4AAADp1AAAA9UAAA8AAAAE1QAABNUAAA4AAAAF1QAAH9UAAA8AAAAg1QAAINUAAA4AAAAh1QAAO9UAAA8AAAA81QAAPNUAAA4AAAA91QAAV9UAAA8AAABY1QAAWNUAAA4AAABZ1QAAc9UAAA8AAAB01QAAdNUAAA4AAAB11QAAj9UAAA8AAACQ1QAAkNUAAA4AAACR1QAAq9UAAA8AAACs1QAArNUAAA4AAACt1QAAx9UAAA8AAADI1QAAyNUAAA4AAADJ1QAA49UAAA8AAADk1QAA5NUAAA4AAADl1QAA/9UAAA8AAAAA1gAAANYAAA4AAAAB1gAAG9YAAA8AAAAc1gAAHNYAAA4AAAAd1gAAN9YAAA8AAAA41gAAONYAAA4AAAA51gAAU9YAAA8AAABU1gAAVNYAAA4AAABV1gAAb9YAAA8AAABw1gAAcNYAAA4AAABx1gAAi9YAAA8AAACM1gAAjNYAAA4AAACN1gAAp9YAAA8AAACo1gAAqNYAAA4AAACp1gAAw9YAAA8AAADE1gAAxNYAAA4AAADF1gAA39YAAA8AAADg1gAA4NYAAA4AAADh1gAA+9YAAA8AAAD81gAA/NYAAA4AAAD91gAAF9cAAA8AAAAY1wAAGNcAAA4AAAAZ1wAAM9cAAA8AAAA01wAANNcAAA4AAAA11wAAT9cAAA8AAABQ1wAAUNcAAA4AAABR1wAAa9cAAA8AAABs1wAAbNcAAA4AAABt1wAAh9cAAA8AAACI1wAAiNcAAA4AAACJ1wAAo9cAAA8AAACw1wAAxtcAABEAAADL1wAA+9cAABAAAAAe+wAAHvsAAAQAAAAA/gAAD/4AAAQAAAAg/gAAL/4AAAQAAAD//gAA//4AAAMAAACe/wAAn/8AAAQAAADw/wAA+/8AAAMAAAD9AQEA/QEBAAQAAADgAgEA4AIBAAQAAAB2AwEAegMBAAQAAAABCgEAAwoBAAQAAAAFCgEABgoBAAQAAAAMCgEADwoBAAQAAAA4CgEAOgoBAAQAAAA/CgEAPwoBAAQAAADlCgEA5goBAAQAAAAkDQEAJw0BAAQAAACrDgEArA4BAAQAAABGDwEAUA8BAAQAAACCDwEAhQ8BAAQAAAAAEAEAABABAAcAAAABEAEAARABAAQAAAACEAEAAhABAAcAAAA4EAEARhABAAQAAABwEAEAcBABAAQAAABzEAEAdBABAAQAAAB/EAEAgRABAAQAAACCEAEAghABAAcAAACwEAEAshABAAcAAACzEAEAthABAAQAAAC3EAEAuBABAAcAAAC5EAEAuhABAAQAAAC9EAEAvRABAAUAAADCEAEAwhABAAQAAADNEAEAzRABAAUAAAAAEQEAAhEBAAQAAAAnEQEAKxEBAAQAAAAsEQEALBEBAAcAAAAtEQEANBEBAAQAAABFEQEARhEBAAcAAABzEQEAcxEBAAQAAACAEQEAgREBAAQAAACCEQEAghEBAAcAAACzEQEAtREBAAcAAAC2EQEAvhEBAAQAAAC/EQEAwBEBAAcAAADCEQEAwxEBAAUAAADJEQEAzBEBAAQAAADOEQEAzhEBAAcAAADPEQEAzxEBAAQAAAAsEgEALhIBAAcAAAAvEgEAMRIBAAQAAAAyEgEAMxIBAAcAAAA0EgEANBIBAAQAAAA1EgEANRIBAAcAAAA2EgEANxIBAAQAAAA+EgEAPhIBAAQAAADfEgEA3xIBAAQAAADgEgEA4hIBAAcAAADjEgEA6hIBAAQAAAAAEwEAARMBAAQAAAACEwEAAxMBAAcAAAA7EwEAPBMBAAQAAAA+EwEAPhMBAAQAAAA/EwEAPxMBAAcAAABAEwEAQBMBAAQAAABBEwEARBMBAAcAAABHEwEASBMBAAcAAABLEwEATRMBAAcAAABXEwEAVxMBAAQAAABiEwEAYxMBAAcAAABmEwEAbBMBAAQAAABwEwEAdBMBAAQAAAA1FAEANxQBAAcAAAA4FAEAPxQBAAQAAABAFAEAQRQBAAcAAABCFAEARBQBAAQAAABFFAEARRQBAAcAAABGFAEARhQBAAQAAABeFAEAXhQBAAQAAACwFAEAsBQBAAQAAACxFAEAshQBAAcAAACzFAEAuBQBAAQAAAC5FAEAuRQBAAcAAAC6FAEAuhQBAAQAAAC7FAEAvBQBAAcAAAC9FAEAvRQBAAQAAAC+FAEAvhQBAAcAAAC/FAEAwBQBAAQAAADBFAEAwRQBAAcAAADCFAEAwxQBAAQAAACvFQEArxUBAAQAAACwFQEAsRUBAAcAAACyFQEAtRUBAAQAAAC4FQEAuxUBAAcAAAC8FQEAvRUBAAQAAAC+FQEAvhUBAAcAAAC/FQEAwBUBAAQAAADcFQEA3RUBAAQAAAAwFgEAMhYBAAcAAAAzFgEAOhYBAAQAAAA7FgEAPBYBAAcAAAA9FgEAPRYBAAQAAAA+FgEAPhYBAAcAAAA/FgEAQBYBAAQAAACrFgEAqxYBAAQAAACsFgEArBYBAAcAAACtFgEArRYBAAQAAACuFgEArxYBAAcAAACwFgEAtRYBAAQAAAC2FgEAthYBAAcAAAC3FgEAtxYBAAQAAAAdFwEAHxcBAAQAAAAiFwEAJRcBAAQAAAAmFwEAJhcBAAcAAAAnFwEAKxcBAAQAAAAsGAEALhgBAAcAAAAvGAEANxgBAAQAAAA4GAEAOBgBAAcAAAA5GAEAOhgBAAQAAAAwGQEAMBkBAAQAAAAxGQEANRkBAAcAAAA3GQEAOBkBAAcAAAA7GQEAPBkBAAQAAAA9GQEAPRkBAAcAAAA+GQEAPhkBAAQAAAA/GQEAPxkBAAUAAABAGQEAQBkBAAcAAABBGQEAQRkBAAUAAABCGQEAQhkBAAcAAABDGQEAQxkBAAQAAADRGQEA0xkBAAcAAADUGQEA1xkBAAQAAADaGQEA2xkBAAQAAADcGQEA3xkBAAcAAADgGQEA4BkBAAQAAADkGQEA5BkBAAcAAAABGgEAChoBAAQAAAAzGgEAOBoBAAQAAAA5GgEAORoBAAcAAAA6GgEAOhoBAAUAAAA7GgEAPhoBAAQAAABHGgEARxoBAAQAAABRGgEAVhoBAAQAAABXGgEAWBoBAAcAAABZGgEAWxoBAAQAAACEGgEAiRoBAAUAAACKGgEAlhoBAAQAAACXGgEAlxoBAAcAAACYGgEAmRoBAAQAAAAvHAEALxwBAAcAAAAwHAEANhwBAAQAAAA4HAEAPRwBAAQAAAA+HAEAPhwBAAcAAAA/HAEAPxwBAAQAAACSHAEApxwBAAQAAACpHAEAqRwBAAcAAACqHAEAsBwBAAQAAACxHAEAsRwBAAcAAACyHAEAsxwBAAQAAAC0HAEAtBwBAAcAAAC1HAEAthwBAAQAAAAxHQEANh0BAAQAAAA6HQEAOh0BAAQAAAA8HQEAPR0BAAQAAAA/HQEARR0BAAQAAABGHQEARh0BAAUAAABHHQEARx0BAAQAAACKHQEAjh0BAAcAAACQHQEAkR0BAAQAAACTHQEAlB0BAAcAAACVHQEAlR0BAAQAAACWHQEAlh0BAAcAAACXHQEAlx0BAAQAAADzHgEA9B4BAAQAAAD1HgEA9h4BAAcAAAAwNAEAODQBAAMAAADwagEA9GoBAAQAAAAwawEANmsBAAQAAABPbwEAT28BAAQAAABRbwEAh28BAAcAAACPbwEAkm8BAAQAAADkbwEA5G8BAAQAAADwbwEA8W8BAAcAAACdvAEAnrwBAAQAAACgvAEAo7wBAAMAAAAAzwEALc8BAAQAAAAwzwEARs8BAAQAAABl0QEAZdEBAAQAAABm0QEAZtEBAAcAAABn0QEAadEBAAQAAABt0QEAbdEBAAcAAABu0QEActEBAAQAAABz0QEAetEBAAMAAAB70QEAgtEBAAQAAACF0QEAi9EBAAQAAACq0QEArdEBAAQAAABC0gEARNIBAAQAAAAA2gEANtoBAAQAAAA72gEAbNoBAAQAAAB12gEAddoBAAQAAACE2gEAhNoBAAQAAACb2gEAn9oBAAQAAACh2gEAr9oBAAQAAAAA4AEABuABAAQAAAAI4AEAGOABAAQAAAAb4AEAIeABAAQAAAAj4AEAJOABAAQAAAAm4AEAKuABAAQAAAAw4QEANuEBAAQAAACu4gEAruIBAAQAAADs4gEA7+IBAAQAAADQ6AEA1ugBAAQAAABE6QEASukBAAQAAADm8QEA//EBAAYAAAD78wEA//MBAAQAAAAAAA4AHwAOAAMAAAAgAA4AfwAOAAQAAACAAA4A/wAOAAMAAAAAAQ4A7wEOAAQAAADwAQ4A/w8OAAMAAAABAAAACgAAAAoAAADSAgAAQQAAAFoAAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAwQIAAMYCAADRAgAA4AIAAOQCAADsAgAA7AIAAO4CAADuAgAARQMAAEUDAABwAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAsAUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABXBgAAWQYAAF8GAABuBgAA0wYAANUGAADcBgAA4QYAAOgGAADtBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAPwcAAE0HAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABcIAAAaCAAALAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAADUCAAA3wgAAOMIAADpCAAA8AgAADsJAAA9CQAATAkAAE4JAABQCQAAVQkAAGMJAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAADECQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA8AkAAPEJAAD8CQAA/AkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA+CgAAQgoAAEcKAABICgAASwoAAEwKAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABwCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMUKAADHCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4woAAPkKAAD8CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAFwLAABdCwAAXwsAAGMLAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADMCwAA0AsAANALAADXCwAA1wsAAAAMAAADDAAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAARAwAAEYMAABIDAAASgwAAEwMAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAADEDAAAxgwAAMgMAADKDAAAzAwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAPEMAADyDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAEYOAABNDgAATQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAABxDwAAgQ8AAIgPAACXDwAAmQ8AALwPAAAAEAAANhAAADgQAAA4EAAAOxAAAD8QAABQEAAAjxAAAJoQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAoBMAAPUTAAD4EwAA/RMAAAEUAABsFgAAbxYAAH8WAACBFgAAmhYAAKAWAADqFgAA7hYAAPgWAAAAFwAAExcAAB8XAAAzFwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAAsxcAALYXAADIFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAFAZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAAABoAABsaAAAgGgAAXhoAAGEaAAB0GgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAgBsAAKkbAACsGwAArxsAALobAADlGwAA5xsAAPEbAAAAHAAANhwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB0pgAAe6YAAH+mAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAWoAAAHqAAAJ6gAAECoAABzqAAAgKgAAMOoAADFqAAAxagAAPKoAAD3qAAA+6gAAPuoAAD9qAAA/6gAAAqpAAAqqQAAMKkAAFKpAABgqQAAfKkAAICpAACyqQAAtKkAAL+pAADPqQAAz6kAAOCpAADvqQAA+qkAAP6pAAAAqgAANqoAAECqAABNqgAAYKoAAHaqAAB6qgAAvqoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADvqgAA8qoAAPWqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADqqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AACH/AAA6/wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQBAAQEAdAEBAIACAQCcAgEAoAIBANACAQAAAwEAHwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQDRAwEA1QMBAAAEAQCdBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAYAgBAHYIAQCACAEAnggBAOAIAQDyCAEA9AgBAPUIAQAACQEAFQkBACAJAQA5CQEAgAkBALcJAQC+CQEAvwkBAAAKAQADCgEABQoBAAYKAQAMCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACcNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARRABAHEQAQB1EAEAghABALgQAQDCEAEAwhABANAQAQDoEAEAABEBADIRAQBEEQEARxEBAFARAQByEQEAdhEBAHYRAQCAEQEAvxEBAMERAQDEEQEAzhEBAM8RAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEANBIBADcSAQA3EgEAPhIBAD4SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCoEgEAsBIBAOgSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQBEEwEARxMBAEgTAQBLEwEATBMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAAAUAQBBFAEAQxQBAEUUAQBHFAEAShQBAF8UAQBhFAEAgBQBAMEUAQDEFAEAxRQBAMcUAQDHFAEAgBUBALUVAQC4FQEAvhUBANgVAQDdFQEAABYBAD4WAQBAFgEAQBYBAEQWAQBEFgEAgBYBALUWAQC4FgEAuBYBAAAXAQAaFwEAHRcBACoXAQBAFwEARhcBAAAYAQA4GAEAoBgBAN8YAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEAPBkBAD8ZAQBCGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDfGQEA4RkBAOEZAQDjGQEA5BkBAAAaAQAyGgEANRoBAD4aAQBQGgEAlxoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAD4cAQBAHAEAQBwBAHIcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEAQR0BAEMdAQBDHQEARh0BAEcdAQBgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCWHQEAmB0BAJgdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAEBrAQBDawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ68AQCevAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEfpAQBH6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAEHwxAILQggAAAAJAAAACQAAACAAAAAgAAAAoAAAAKAAAACAFgAAgBYAAAAgAAAKIAAALyAAAC8gAABfIAAAXyAAAAAwAAAAMABBwMUCCxECAAAAAAAAAB8AAAB/AAAAnwBB4MUCC/MDPgAAADAAAAA5AAAAYAYAAGkGAADwBgAA+QYAAMAHAADJBwAAZgkAAG8JAADmCQAA7wkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAOYLAADvCwAAZgwAAG8MAADmDAAA7wwAAGYNAABvDQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AACkPAABAEAAASRAAAJAQAACZEAAA4BcAAOkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANkZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAAAgpgAAKaYAANCoAADZqAAAAKkAAAmpAADQqQAA2akAAPCpAAD5qQAAUKoAAFmqAADwqwAA+asAABD/AAAZ/wAAoAQBAKkEAQAwDQEAOQ0BAGYQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA8BIBAPkSAQBQFAEAWRQBANAUAQDZFAEAUBYBAFkWAQDAFgEAyRYBADAXAQA5FwEA4BgBAOkYAQBQGQEAWRkBAFAcAQBZHAEAUB0BAFkdAQCgHQEAqR0BAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAM7XAQD/1wEAQOEBAEnhAQDw4gEA+eIBAFDpAQBZ6QEA8PsBAPn7AQBB4MkCC+NVvwIAACEAAAB+AAAAoQAAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAH8WAACBFgAAnBYAAKAWAAD4FgAAABcAABUXAAAfFwAANhcAAEAXAABTFwAAYBcAAGwXAABuFwAAcBcAAHIXAABzFwAAgBcAAN0XAADgFwAA6RcAAPAXAAD5FwAAABgAABkYAAAgGAAAeBgAAIAYAACqGAAAsBgAAPUYAAAAGQAAHhkAACAZAAArGQAAMBkAADsZAABAGQAAQBkAAEQZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAAGxoAAB4aAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAACwGgAAzhoAAAAbAABMGwAAUBsAAH4bAACAGwAA8xsAAPwbAAA3HAAAOxwAAEkcAABNHAAAiBwAAJAcAAC6HAAAvRwAAMccAADQHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AAMQfAADGHwAA0x8AANYfAADbHwAA3R8AAO8fAADyHwAA9B8AAPYfAAD+HwAACyAAACcgAAAqIAAALiAAADAgAABeIAAAYCAAAGQgAABmIAAAcSAAAHQgAACOIAAAkCAAAJwgAACgIAAAwCAAANAgAADwIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADzLAAA+SwAACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAcC0AAH8tAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAOAtAABdLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAABMAAAPzAAAEEwAACWMAAAmTAAAP8wAAAFMQAALzEAADExAACOMQAAkDEAAOMxAADwMQAAHjIAACAyAACMpAAAkKQAAMakAADQpAAAK6YAAECmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAALKgAADCoAAA5qAAAQKgAAHeoAACAqAAAxagAAM6oAADZqAAA4KgAAFOpAABfqQAAfKkAAICpAADNqQAAz6kAANmpAADeqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAFyqAADCqgAA26oAAPaqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAGurAABwqwAA7asAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAOAAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAAML7AADT+wAAj/0AAJL9AADH/QAAz/0AAM/9AADw/QAAGf4AACD+AABS/gAAVP4AAGb+AABo/gAAa/4AAHD+AAB0/gAAdv4AAPz+AAD//gAA//4AAAH/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AADg/wAA5v8AAOj/AADu/wAA+f8AAP3/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAAABAQACAQEABwEBADMBAQA3AQEAjgEBAJABAQCcAQEAoAEBAKABAQDQAQEA/QEBAIACAQCcAgEAoAIBANACAQDgAgEA+wIBAAADAQAjAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAnwMBAMMDAQDIAwEA1QMBAAAEAQCdBAEAoAQBAKkEAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAG8FAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBXCAEAnggBAKcIAQCvCAEA4AgBAPIIAQD0CAEA9QgBAPsIAQAbCQEAHwkBADkJAQA/CQEAPwkBAIAJAQC3CQEAvAkBAM8JAQDSCQEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAOAoBADoKAQA/CgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5goBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACcNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCrDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEAWQ8BAHAPAQCJDwEAsA8BAMsPAQDgDwEA9g8BAAAQAQBNEAEAUhABAHUQAQB/EAEAwhABAM0QAQDNEAEA0BABAOgQAQDwEAEA+RABAAARAQA0EQEANhEBAEcRAQBQEQEAdhEBAIARAQDfEQEA4REBAPQRAQAAEgEAERIBABMSAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBALASAQDqEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBADsTAQBEEwEARxMBAEgTAQBLEwEATRMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAGYTAQBsEwEAcBMBAHQTAQAAFAEAWxQBAF0UAQBhFAEAgBQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAN0VAQAAFgEARBYBAFAWAQBZFgEAYBYBAGwWAQCAFgEAuRYBAMAWAQDJFgEAABcBABoXAQAdFwEAKxcBADAXAQBGFwEAABgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDXGQEA2hkBAOQZAQAAGgEARxoBAFAaAQCiGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAmB0BAKAdAQCpHQEA4B4BAPgeAQCwHwEAsB8BAMAfAQDxHwEA/x8BAJkjAQAAJAEAbiQBAHAkAQB0JAEAgCQBAEMlAQCQLwEA8i8BAAAwAQAuNAEAMDQBADg0AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPBqAQD1agEAAGsBAEVrAQBQawEAWWsBAFtrAQBhawEAY2sBAHdrAQB9awEAj2sBAEBuAQCabgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAORvAQDwbwEA8W8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAULEBAFKxAQBksQEAZ7EBAHCxAQD7sgEAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCcvAEAo7wBAADPAQAtzwEAMM8BAEbPAQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEA6tEBAADSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQCL2gEAm9oBAJ/aAQCh2gEAr9oBAADfAQAe3wEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK7iAQDA4gEA+eIBAP/iAQD/4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAMfoAQDW6AEAAOkBAEvpAQBQ6QEAWekBAF7pAQBf6QEAcewBALTsAQAB7QEAPe0BAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAAPABACvwAQAw8AEAk/ABAKDwAQCu8AEAsfABAL/wAQDB8AEAz/ABANHwAQD18AEAAPEBAK3xAQDm8QEAAvIBABDyAQA78gEAQPIBAEjyAQBQ8gEAUfIBAGDyAQBl8gEAAPMBANf2AQDd9gEA7PYBAPD2AQD89gEAAPcBAHP3AQCA9wEA2PcBAOD3AQDr9wEA8PcBAPD3AQAA+AEAC/gBABD4AQBH+AEAUPgBAFn4AQBg+AEAh/gBAJD4AQCt+AEAsPgBALH4AQAA+QEAU/oBAGD6AQBt+gEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAPsBAJL7AQCU+wEAyvsBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwABAA4AAQAOACAADgB/AA4AAAEOAO8BDgAAAA8A/f8PAAAAEAD9/xAAAAAAAJwCAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPanAAD2pwAA+KcAAPqnAAAwqwAAWqsAAFyrAABoqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQCABwEAgAcBAIMHAQCFBwEAhwcBALAHAQCyBwEAugcBAMAMAQDyDAEAwBgBAN8YAQBgbgEAf24BABrUAQAz1AEATtQBAFTUAQBW1AEAZ9QBAILUAQCb1AEAttQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAM/UAQDq1AEAA9UBAB7VAQA31QEAUtUBAGvVAQCG1QEAn9UBALrVAQDT1QEA7tUBAAfWAQAi1gEAO9YBAFbWAQBv1gEAitYBAKXWAQDC1gEA2tYBANzWAQDh1gEA/NYBABTXAQAW1wEAG9cBADbXAQBO1wEAUNcBAFXXAQBw1wEAiNcBAIrXAQCP1wEAqtcBAMLXAQDE1wEAydcBAMvXAQDL1wEAAN8BAAnfAQAL3wEAHt8BACLpAQBD6QEAQdCfAwvjK7wCAAAgAAAAfgAAAKAAAAB3AwAAegMAAH8DAACEAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAALwUAADEFAABWBQAAWQUAAIoFAACNBQAAjwUAAJEFAADHBQAA0AUAAOoFAADvBQAA9AUAAAAGAAANBwAADwcAAEoHAABNBwAAsQcAAMAHAAD6BwAA/QcAAC0IAAAwCAAAPggAAEAIAABbCAAAXggAAF4IAABgCAAAaggAAHAIAACOCAAAkAgAAJEIAACYCAAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAAD+CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABZCgAAXAoAAF4KAABeCgAAZgoAAHYKAACBCgAAgwoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAALwKAADFCgAAxwoAAMkKAADLCgAAzQoAANAKAADQCgAA4AoAAOMKAADmCgAA8QoAAPkKAAD/CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAAD6CwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABPDQAAVA0AAGMNAABmDQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA9A0AAAEOAAA6DgAAPw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAA8AAEcPAABJDwAAbA8AAHEPAACXDwAAmQ8AALwPAAC+DwAAzA8AAM4PAADaDwAAABAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAFRcAAB8XAAA2FwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAA3RcAAOAXAADpFwAA8BcAAPkXAAAAGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEAZAABAGQAARBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAN4ZAAAbGgAAHhoAAF4aAABgGgAAfBoAAH8aAACJGgAAkBoAAJkaAACgGgAArRoAALAaAADOGgAAABsAAEwbAABQGwAAfhsAAIAbAADzGwAA/BsAADccAAA7HAAASRwAAE0cAACIHAAAkBwAALocAAC9HAAAxxwAANAcAAD6HAAAAB0AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHAywMLwgy9AAAAIQAAACMAAAAlAAAAKgAAACwAAAAvAAAAOgAAADsAAAA/AAAAQAAAAFsAAABdAAAAXwAAAF8AAAB7AAAAewAAAH0AAAB9AAAAoQAAAKEAAACnAAAApwAAAKsAAACrAAAAtgAAALcAAAC7AAAAuwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIoFAAC+BQAAvgUAAMAFAADABQAAwwUAAMMFAADGBQAAxgUAAPMFAAD0BQAACQYAAAoGAAAMBgAADQYAABsGAAAbBgAAHQYAAB8GAABqBgAAbQYAANQGAADUBgAAAAcAAA0HAAD3BwAA+QcAADAIAAA+CAAAXggAAF4IAABkCQAAZQkAAHAJAABwCQAA/QkAAP0JAAB2CgAAdgoAAPAKAADwCgAAdwwAAHcMAACEDAAAhAwAAPQNAAD0DQAATw4AAE8OAABaDgAAWw4AAAQPAAASDwAAFA8AABQPAAA6DwAAPQ8AAIUPAACFDwAA0A8AANQPAADZDwAA2g8AAEoQAABPEAAA+xAAAPsQAABgEwAAaBMAAAAUAAAAFAAAbhYAAG4WAACbFgAAnBYAAOsWAADtFgAANRcAADYXAADUFwAA1hcAANgXAADaFwAAABgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAECAAACcgAAAwIAAAQyAAAEUgAABRIAAAUyAAAF4gAAB9IAAAfiAAAI0gAACOIAAACCMAAAsjAAApIwAAKiMAAGgnAAB1JwAAxScAAMYnAADmJwAA7ycAAIMpAACYKQAA2CkAANspAAD8KQAA/SkAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAAuLgAAMC4AAE8uAABSLgAAXS4AAAEwAAADMAAACDAAABEwAAAUMAAAHzAAADAwAAAwMAAAPTAAAD0wAACgMAAAoDAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAAD79AAA//QAAEP4AABn+AAAw/gAAUv4AAFT+AABh/gAAY/4AAGP+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAACv8AAAz/AAAP/wAAGv8AABv/AAAf/wAAIP8AADv/AAA9/wAAP/8AAD//AABb/wAAW/8AAF3/AABd/wAAX/8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQCtDgEArQ4BAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABALsQAQC8EAEAvhABAMEQAQBAEQEAQxEBAHQRAQB1EQEAxREBAMgRAQDNEQEAzREBANsRAQDbEQEA3REBAN8RAQA4EgEAPRIBAKkSAQCpEgEASxQBAE8UAQBaFAEAWxQBAF0UAQBdFAEAxhQBAMYUAQDBFQEA1xUBAEEWAQBDFgEAYBYBAGwWAQC5FgEAuRYBADwXAQA+FwEAOxgBADsYAQBEGQEARhkBAOIZAQDiGQEAPxoBAEYaAQCaGgEAnBoBAJ4aAQCiGgEAQRwBAEUcAQBwHAEAcRwBAPceAQD4HgEA/x8BAP8fAQBwJAEAdCQBAPEvAQDyLwEAbmoBAG9qAQD1agEA9WoBADdrAQA7awEARGsBAERrAQCXbgEAmm4BAOJvAQDibwEAn7wBAJ+8AQCH2gEAi9oBAF7pAQBf6QEAAAAAAAoAAAAJAAAADQAAACAAAAAgAAAAhQAAAIUAAACgAAAAoAAAAIAWAACAFgAAACAAAAogAAAoIAAAKSAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAQZDYAwuzWIsCAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACeoAAAsqAAALKgAAECoAABzqAAAgKgAAMWoAADQqAAA2agAAOCoAAD3qAAA+6gAAPuoAAD9qAAALakAADCpAABTqQAAYKkAAHypAACAqQAAwKkAAM+pAADZqQAA4KkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABgqgAAdqoAAHqqAADCqgAA26oAAN2qAADgqgAA76oAAPKqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA6qsAAOyrAADtqwAA8KsAAPmrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAAPsAAAb7AAAT+wAAF/sAAB37AAAo+wAAKvsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AACx+wAA0/sAAD39AABQ/QAAj/0AAJL9AADH/QAA8P0AAPv9AAAA/gAAD/4AACD+AAAv/gAAM/4AADT+AABN/gAAT/4AAHD+AAB0/gAAdv4AAPz+AAAQ/wAAGf8AACH/AAA6/wAAP/8AAD//AABB/wAAWv8AAGb/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAEABAQB0AQEA/QEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAOACAQAAAwEAHwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQDRAwEA1QMBAAAEAQCdBAEAoAQBAKkEAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBgCAEAdggBAIAIAQCeCAEA4AgBAPIIAQD0CAEA9QgBAAAJAQAVCQEAIAkBADkJAQCACQEAtwkBAL4JAQC/CQEAAAoBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAD8KAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5goBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACcNAQAwDQEAOQ0BAIAOAQCpDgEAqw4BAKwOAQCwDgEAsQ4BAAAPAQAcDwEAJw8BACcPAQAwDwEAUA8BAHAPAQCFDwEAsA8BAMQPAQDgDwEA9g8BAAAQAQBGEAEAZhABAHUQAQB/EAEAuhABAMIQAQDCEAEA0BABAOgQAQDwEAEA+RABAAARAQA0EQEANhEBAD8RAQBEEQEARxEBAFARAQBzEQEAdhEBAHYRAQCAEQEAxBEBAMkRAQDMEQEAzhEBANoRAQDcEQEA3BEBAAASAQAREgEAExIBADcSAQA+EgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAEoUAQBQFAEAWRQBAF4UAQBhFAEAgBQBAMUUAQDHFAEAxxQBANAUAQDZFAEAgBUBALUVAQC4FQEAwBUBANgVAQDdFQEAABYBAEAWAQBEFgEARBYBAFAWAQBZFgEAgBYBALgWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEAORcBAEAXAQBGFwEAABgBADoYAQCgGAEA6RgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBDGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDXGQEA2hkBAOEZAQDjGQEA5BkBAAAaAQA+GgEARxoBAEcaAQBQGgEAmRoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAEAcAQBQHAEAWRwBAHIcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAmB0BAKAdAQCpHQEA4B4BAPYeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAHBqAQC+agEAwGoBAMlqAQDQagEA7WoBAPBqAQD0agEAAGsBADZrAQBAawEAQ2sBAFBrAQBZawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA5G8BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ28AQCevAEAAM8BAC3PAQAwzwEARs8BAGXRAQBp0QEAbdEBAHLRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQBC0gEARNIBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAM7XAQD/1wEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAN8BAB7fAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAOEBACzhAQAw4QEAPeEBAEDhAQBJ4QEATuEBAE7hAQCQ4gEAruIBAMDiAQD54gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBANDoAQDW6AEAAOkBAEvpAQBQ6QEAWekBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAQ4A7wEOAEHQsAQLozD4AgAAMAAAADkAAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABFAwAARQMAAHADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAFcGAABZBgAAaQYAAG4GAADTBgAA1QYAANwGAADhBgAA6AYAAO0GAAD8BgAA/wYAAP8GAAAQBwAAPwcAAE0HAACxBwAAwAcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABcIAAAaCAAALAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAADUCAAA3wgAAOMIAADpCAAA8AgAADsJAAA9CQAATAkAAE4JAABQCQAAVQkAAGMJAABmCQAAbwkAAHEJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAMQJAADHCQAAyAkAAMsJAADMCQAAzgkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABCCgAARwoAAEgKAABLCgAATAoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC9CgAAxQoAAMcKAADJCgAAywoAAMwKAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/AoAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAEQLAABHCwAASAsAAEsLAABMCwAAVgsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADMCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAMMAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAABEDAAARgwAAEgMAABKDAAATAwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAACADAAAgwwAAIUMAACMDAAAjgwAAJAMAACSDAAAqAwAAKoMAACzDAAAtQwAALkMAAC9DAAAxAwAAMYMAADIDAAAygwAAMwMAADVDAAA1gwAAN0MAADeDAAA4AwAAOMMAADmDAAA7wwAAPEMAADyDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABGDgAATQ4AAE0OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA0A4AANkOAADcDgAA3w4AAAAPAAAADwAAIA8AACkPAABADwAARw8AAEkPAABsDwAAcQ8AAIEPAACIDwAAlw8AAJkPAAC8DwAAABAAADYQAAA4EAAAOBAAADsQAABJEAAAUBAAAJ0QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAATFwAAHxcAADMXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAACzFwAAthcAAMgXAADXFwAA1xcAANwXAADcFwAA4BcAAOkXAAAQGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYRoAAHQaAACAGgAAiRoAAJAaAACZGgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAUBsAAFkbAACAGwAAqRsAAKwbAADlGwAA5xsAAPEbAAAAHAAANhwAAEAcAABJHAAATRwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAK6YAAECmAABupgAAdKYAAHumAAB/pgAA76YAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAAFqAAAB6gAACeoAABAqAAAc6gAAICoAADDqAAAxagAAMWoAADQqAAA2agAAPKoAAD3qAAA+6gAAPuoAAD9qAAAKqkAADCpAABSqQAAYKkAAHypAACAqQAAsqkAALSpAAC/qQAAz6kAANmpAADgqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAGCqAAB2qgAAeqoAAL6qAADAqgAAwKoAAMKqAADCqgAA26oAAN2qAADgqgAA76oAAPKqAAD1qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA6qsAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AABD/AAAZ/wAAIf8AADr/AABB/wAAWv8AAGb/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAEABAQB0AQEAgAIBAJwCAQCgAgEA0AIBAAADAQAfAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAoAMBAMMDAQDIAwEAzwMBANEDAQDVAwEAAAQBAJ0EAQCgBAEAqQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAYAoBAHwKAQCACgEAnAoBAMAKAQDHCgEAyQoBAOQKAQAACwEANQsBAEALAQBVCwEAYAsBAHILAQCACwEAkQsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAAANAQAnDQEAMA0BADkNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARRABAGYQAQBvEAEAcRABAHUQAQCCEAEAuBABAMIQAQDCEAEA0BABAOgQAQDwEAEA+RABAAARAQAyEQEANhEBAD8RAQBEEQEARxEBAFARAQByEQEAdhEBAHYRAQCAEQEAvxEBAMERAQDEEQEAzhEBANoRAQDcEQEA3BEBAAASAQAREgEAExIBADQSAQA3EgEANxIBAD4SAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqBIBALASAQDoEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQBEEwEARxMBAEgTAQBLEwEATBMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAAAUAQBBFAEAQxQBAEUUAQBHFAEAShQBAFAUAQBZFAEAXxQBAGEUAQCAFAEAwRQBAMQUAQDFFAEAxxQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAL4VAQDYFQEA3RUBAAAWAQA+FgEAQBYBAEAWAQBEFgEARBYBAFAWAQBZFgEAgBYBALUWAQC4FgEAuBYBAMAWAQDJFgEAABcBABoXAQAdFwEAKhcBADAXAQA5FwEAQBcBAEYXAQAAGAEAOBgBAKAYAQDpGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEANRkBADcZAQA4GQEAOxkBADwZAQA/GQEAQhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDfGQEA4RkBAOEZAQDjGQEA5BkBAAAaAQAyGgEANRoBAD4aAQBQGgEAlxoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAD4cAQBAHAEAQBwBAFAcAQBZHAEAchwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAB0BAAYdAQAIHQEACR0BAAsdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBBHQEAQx0BAEMdAQBGHQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAlh0BAJgdAQCYHQEAoB0BAKkdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAGBqAQBpagEAcGoBAL5qAQDAagEAyWoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAFBrAQBZawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ68AQCevAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAztcBAP/XAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADfhAQA94QEAQOEBAEnhAQBO4QEATuEBAJDiAQCt4gEAwOIBAOviAQDw4gEA+eIBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEfpAQBH6QEAS+kBAEvpAQBQ6QEAWekBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwABAAAAAAAAAH8AAAADAAAAAOkBAEvpAQBQ6QEAWekBAF7pAQBf6QEAAAAAAAMAAAAAFwEAGhcBAB0XAQArFwEAMBcBAEYXAQABAAAAAEQBAEZGAQABAAAAAAAAAP//EABBgOEEC/IDOQAAAAAGAAAEBgAABgYAAAsGAAANBgAAGgYAABwGAAAeBgAAIAYAAD8GAABBBgAASgYAAFYGAABvBgAAcQYAANwGAADeBgAA/wYAAFAHAAB/BwAAcAgAAI4IAACQCAAAkQgAAJgIAADhCAAA4wgAAP8IAABQ+wAAwvsAANP7AAA9/QAAQP0AAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AAP/9AABw/gAAdP4AAHb+AAD8/gAAYA4BAH4OAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAAAAAAAEAAAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAE/sAABf7AEGA5QQL0yu6AgAAAAAAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAJwWAACgFgAA+BYAAAAXAAAVFwAAHxcAADYXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADdFwAA4BcAAOkXAADwFwAA+RcAAAAYAAAZGAAAIBgAAHgYAACAGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAgGQAAKxkAADAZAAA7GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABsaAAAeGgAAXhoAAGAaAAB8GgAAfxoAAIkaAACQGgAAmRoAAKAaAACtGgAAsBoAAM4aAAAAGwAATBsAAFAbAAB+GwAAgBsAAPMbAAD8GwAANxwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0BwAAPocAAAAHQAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADYAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHgkAULEwIAAAAACwEANQsBADkLAQA/CwEAQYCRBQsSAgAAAAAbAABMGwAAUBsAAH4bAEGgkQULEwIAAACgpgAA96YAAABoAQA4agEAQcCRBQsTAgAAANBqAQDtagEA8GoBAPVqAQBB4JEFCxICAAAAwBsAAPMbAAD8GwAA/xsAQYCSBQtyDgAAAIAJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAEGAkwULIwQAAAAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAEGwkwULIgQAAAAcBgAAHAYAAA4gAAAPIAAAKiAAAC4gAABmIAAAaSAAQeCTBQtGAwAAAOoCAADrAgAABTEAAC8xAACgMQAAvzEAAAAAAAADAAAAABABAE0QAQBSEAEAdRABAH8QAQB/EAEAAQAAAAAoAAD/KABBsJQFC7csAgAAAAAaAAAbGgAAHhoAAB8aAAABAAAAQBcAAFMXAAC9AgAAAAAAAB8AAAB/AAAAnwAAAK0AAACtAAAAeAMAAHkDAACAAwAAgwMAAIsDAACLAwAAjQMAAI0DAACiAwAAogMAADAFAAAwBQAAVwUAAFgFAACLBQAAjAUAAJAFAACQBQAAyAUAAM8FAADrBQAA7gUAAPUFAAAFBgAAHAYAABwGAADdBgAA3QYAAA4HAAAPBwAASwcAAEwHAACyBwAAvwcAAPsHAAD8BwAALggAAC8IAAA/CAAAPwgAAFwIAABdCAAAXwgAAF8IAABrCAAAbwgAAI8IAACXCAAA4ggAAOIIAACECQAAhAkAAI0JAACOCQAAkQkAAJIJAACpCQAAqQkAALEJAACxCQAAswkAALUJAAC6CQAAuwkAAMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4AAIAOAACDDgAAgw4AAIUOAACFDgAAiw4AAIsOAACkDgAApA4AAKYOAACmDgAAvg4AAL8OAADFDgAAxQ4AAMcOAADHDgAAzg4AAM8OAADaDgAA2w4AAOAOAAD/DgAASA8AAEgPAABtDwAAcA8AAJgPAACYDwAAvQ8AAL0PAADNDwAAzQ8AANsPAAD/DwAAxhAAAMYQAADIEAAAzBAAAM4QAADPEAAASRIAAEkSAABOEgAATxIAAFcSAABXEgAAWRIAAFkSAABeEgAAXxIAAIkSAACJEgAAjhIAAI8SAACxEgAAsRIAALYSAAC3EgAAvxIAAL8SAADBEgAAwRIAAMYSAADHEgAA1xIAANcSAAAREwAAERMAABYTAAAXEwAAWxMAAFwTAAB9EwAAfxMAAJoTAACfEwAA9hMAAPcTAAD+EwAA/xMAAJ0WAACfFgAA+RYAAP8WAAAWFwAAHhcAADcXAAA/FwAAVBcAAF8XAABtFwAAbRcAAHEXAABxFwAAdBcAAH8XAADeFwAA3xcAAOoXAADvFwAA+hcAAP8XAAAOGAAADhgAABoYAAAfGAAAeRgAAH8YAACrGAAArxgAAPYYAAD/GAAAHxkAAB8ZAAAsGQAALxkAADwZAAA/GQAAQRkAAEMZAABuGQAAbxkAAHUZAAB/GQAArBkAAK8ZAADKGQAAzxkAANsZAADdGQAAHBoAAB0aAABfGgAAXxoAAH0aAAB+GgAAihoAAI8aAACaGgAAnxoAAK4aAACvGgAAzxoAAP8aAABNGwAATxsAAH8bAAB/GwAA9BsAAPsbAAA4HAAAOhwAAEocAABMHAAAiRwAAI8cAAC7HAAAvBwAAMgcAADPHAAA+xwAAP8cAAAWHwAAFx8AAB4fAAAfHwAARh8AAEcfAABOHwAATx8AAFgfAABYHwAAWh8AAFofAABcHwAAXB8AAF4fAABeHwAAfh8AAH8fAAC1HwAAtR8AAMUfAADFHwAA1B8AANUfAADcHwAA3B8AAPAfAADxHwAA9R8AAPUfAAD/HwAA/x8AAAsgAAAPIAAAKiAAAC4gAABgIAAAbyAAAHIgAABzIAAAjyAAAI8gAACdIAAAnyAAAMEgAADPIAAA8SAAAP8gAACMIQAAjyEAACckAAA/JAAASyQAAF8kAAB0KwAAdSsAAJYrAACWKwAA9CwAAPgsAAAmLQAAJi0AACgtAAAsLQAALi0AAC8tAABoLQAAbi0AAHEtAAB+LQAAly0AAJ8tAACnLQAApy0AAK8tAACvLQAAty0AALctAAC/LQAAvy0AAMctAADHLQAAzy0AAM8tAADXLQAA1y0AAN8tAADfLQAAXi4AAH8uAACaLgAAmi4AAPQuAAD/LgAA1i8AAO8vAAD8LwAA/y8AAEAwAABAMAAAlzAAAJgwAAAAMQAABDEAADAxAAAwMQAAjzEAAI8xAADkMQAA7zEAAB8yAAAfMgAAjaQAAI+kAADHpAAAz6QAACymAAA/pgAA+KYAAP+mAADLpwAAz6cAANKnAADSpwAA1KcAANSnAADapwAA8acAAC2oAAAvqAAAOqgAAD+oAAB4qAAAf6gAAMaoAADNqAAA2qgAAN+oAABUqQAAXqkAAH2pAAB/qQAAzqkAAM6pAADaqQAA3akAAP+pAAD/qQAAN6oAAD+qAABOqgAAT6oAAFqqAABbqgAAw6oAANqqAAD3qgAAAKsAAAerAAAIqwAAD6sAABCrAAAXqwAAH6sAACerAAAnqwAAL6sAAC+rAABsqwAAb6sAAO6rAADvqwAA+qsAAP+rAACk1wAAr9cAAMfXAADK1wAA/NcAAP/4AABu+gAAb/oAANr6AAD/+gAAB/sAABL7AAAY+wAAHPsAADf7AAA3+wAAPfsAAD37AAA/+wAAP/sAAEL7AABC+wAARfsAAEX7AADD+wAA0vsAAJD9AACR/QAAyP0AAM79AADQ/QAA7/0AABr+AAAf/gAAU/4AAFP+AABn/gAAZ/4AAGz+AABv/gAAdf4AAHX+AAD9/gAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD7/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQC9EAEAvRABAMMQAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQD/QwEAR0YBAP9nAQA5agEAP2oBAF9qAQBfagEAamoBAG1qAQC/agEAv2oBAMpqAQDPagEA7moBAO9qAQD2agEA/2oBAEZrAQBPawEAWmsBAFprAQBiawEAYmsBAHhrAQB8awEAkGsBAD9uAQCbbgEA/24BAEtvAQBObwEAiG8BAI5vAQCgbwEA328BAOVvAQDvbwEA8m8BAP9vAQD4hwEA/4cBANaMAQD/jAEACY0BAO+vAQD0rwEA9K8BAPyvAQD8rwEA/68BAP+vAQAjsQEAT7EBAFOxAQBjsQEAaLEBAG+xAQD8sgEA/7sBAGu8AQBvvAEAfbwBAH+8AQCJvAEAj7wBAJq8AQCbvAEAoLwBAP/OAQAuzwEAL88BAEfPAQBPzwEAxM8BAP/PAQD20AEA/9ABACfRAQAo0QEAc9EBAHrRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAP8ADgDwAQ4A//8QAAAAAAADAAAAABQAAH8WAACwGAAA9RgAALAaAQC/GgEAAQAAAKACAQDQAgEAQfDABQvTJKsBAAAnAAAAJwAAAC4AAAAuAAAAOgAAADoAAABeAAAAXgAAAGAAAABgAAAAqAAAAKgAAACtAAAArQAAAK8AAACvAAAAtAAAALQAAAC3AAAAuAAAALACAABvAwAAdAMAAHUDAAB6AwAAegMAAIQDAACFAwAAhwMAAIcDAACDBAAAiQQAAFkFAABZBQAAXwUAAF8FAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA9AUAAPQFAAAABgAABQYAABAGAAAaBgAAHAYAABwGAABABgAAQAYAAEsGAABfBgAAcAYAAHAGAADWBgAA3QYAAN8GAADoBgAA6gYAAO0GAAAPBwAADwcAABEHAAARBwAAMAcAAEoHAACmBwAAsAcAAOsHAAD1BwAA+gcAAPoHAAD9BwAA/QcAABYIAAAtCAAAWQgAAFsIAACICAAAiAgAAJAIAACRCAAAmAgAAJ8IAADJCAAAAgkAADoJAAA6CQAAPAkAADwJAABBCQAASAkAAE0JAABNCQAAUQkAAFcJAABiCQAAYwkAAHEJAABxCQAAgQkAAIEJAAC8CQAAvAkAAMEJAADECQAAzQkAAM0JAADiCQAA4wkAAP4JAAD+CQAAAQoAAAIKAAA8CgAAPAoAAEEKAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAcAoAAHEKAAB1CgAAdQoAAIEKAACCCgAAvAoAALwKAADBCgAAxQoAAMcKAADICgAAzQoAAM0KAADiCgAA4woAAPoKAAD/CgAAAQsAAAELAAA8CwAAPAsAAD8LAAA/CwAAQQsAAEQLAABNCwAATQsAAFULAABWCwAAYgsAAGMLAACCCwAAggsAAMALAADACwAAzQsAAM0LAAAADAAAAAwAAAQMAAAEDAAAPAwAADwMAAA+DAAAQAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAGIMAABjDAAAgQwAAIEMAAC8DAAAvAwAAL8MAAC/DAAAxgwAAMYMAADMDAAAzQwAAOIMAADjDAAAAA0AAAENAAA7DQAAPA0AAEENAABEDQAATQ0AAE0NAABiDQAAYw0AAIENAACBDQAAyg0AAMoNAADSDQAA1A0AANYNAADWDQAAMQ4AADEOAAA0DgAAOg4AAEYOAABODgAAsQ4AALEOAAC0DgAAvA4AAMYOAADGDgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAHEPAAB+DwAAgA8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AAC0QAAAwEAAAMhAAADcQAAA5EAAAOhAAAD0QAAA+EAAAWBAAAFkQAABeEAAAYBAAAHEQAAB0EAAAghAAAIIQAACFEAAAhhAAAI0QAACNEAAAnRAAAJ0QAAD8EAAA/BAAAF0TAABfEwAAEhcAABQXAAAyFwAAMxcAAFIXAABTFwAAchcAAHMXAAC0FwAAtRcAALcXAAC9FwAAxhcAAMYXAADJFwAA0xcAANcXAADXFwAA3RcAAN0XAAALGAAADxgAAEMYAABDGAAAhRgAAIYYAACpGAAAqRgAACAZAAAiGQAAJxkAACgZAAAyGQAAMhkAADkZAAA7GQAAFxoAABgaAAAbGgAAGxoAAFYaAABWGgAAWBoAAF4aAABgGgAAYBoAAGIaAABiGgAAZRoAAGwaAABzGgAAfBoAAH8aAAB/GgAApxoAAKcaAACwGgAAzhoAAAAbAAADGwAANBsAADQbAAA2GwAAOhsAADwbAAA8GwAAQhsAAEIbAABrGwAAcxsAAIAbAACBGwAAohsAAKUbAACoGwAAqRsAAKsbAACtGwAA5hsAAOYbAADoGwAA6RsAAO0bAADtGwAA7xsAAPEbAAAsHAAAMxwAADYcAAA3HAAAeBwAAH0cAADQHAAA0hwAANQcAADgHAAA4hwAAOgcAADtHAAA7RwAAPQcAAD0HAAA+BwAAPkcAAAsHQAAah0AAHgdAAB4HQAAmx0AAP8dAAC9HwAAvR8AAL8fAADBHwAAzR8AAM8fAADdHwAA3x8AAO0fAADvHwAA/R8AAP4fAAALIAAADyAAABggAAAZIAAAJCAAACQgAAAnIAAAJyAAACogAAAuIAAAYCAAAGQgAABmIAAAbyAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAfCwAAH0sAADvLAAA8SwAAG8tAABvLQAAfy0AAH8tAADgLQAA/y0AAC8uAAAvLgAABTAAAAUwAAAqMAAALTAAADEwAAA1MAAAOzAAADswAACZMAAAnjAAAPwwAAD+MAAAFaAAABWgAAD4pAAA/aQAAAymAAAMpgAAb6YAAHKmAAB0pgAAfaYAAH+mAAB/pgAAnKYAAJ+mAADwpgAA8aYAAACnAAAhpwAAcKcAAHCnAACIpwAAiqcAAPKnAAD0pwAA+KcAAPmnAAACqAAAAqgAAAaoAAAGqAAAC6gAAAuoAAAlqAAAJqgAACyoAAAsqAAAxKgAAMWoAADgqAAA8agAAP+oAAD/qAAAJqkAAC2pAABHqQAAUakAAICpAACCqQAAs6kAALOpAAC2qQAAuakAALypAAC9qQAAz6kAAM+pAADlqQAA5qkAACmqAAAuqgAAMaoAADKqAAA1qgAANqoAAEOqAABDqgAATKoAAEyqAABwqgAAcKoAAHyqAAB8qgAAsKoAALCqAACyqgAAtKoAALeqAAC4qgAAvqoAAL+qAADBqgAAwaoAAN2qAADdqgAA7KoAAO2qAADzqgAA9KoAAPaqAAD2qgAAW6sAAF+rAABpqwAAa6sAAOWrAADlqwAA6KsAAOirAADtqwAA7asAAB77AAAe+wAAsvsAAML7AAAA/gAAD/4AABP+AAAT/gAAIP4AAC/+AABS/gAAUv4AAFX+AABV/gAA//4AAP/+AAAH/wAAB/8AAA7/AAAO/wAAGv8AABr/AAA+/wAAPv8AAED/AABA/wAAcP8AAHD/AACe/wAAn/8AAOP/AADj/wAA+f8AAPv/AAD9AQEA/QEBAOACAQDgAgEAdgMBAHoDAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQA4CgEAOgoBAD8KAQA/CgEA5QoBAOYKAQAkDQEAJw0BAKsOAQCsDgEARg8BAFAPAQCCDwEAhQ8BAAEQAQABEAEAOBABAEYQAQBwEAEAcBABAHMQAQB0EAEAfxABAIEQAQCzEAEAthABALkQAQC6EAEAvRABAL0QAQDCEAEAwhABAM0QAQDNEAEAABEBAAIRAQAnEQEAKxEBAC0RAQA0EQEAcxEBAHMRAQCAEQEAgREBALYRAQC+EQEAyREBAMwRAQDPEQEAzxEBAC8SAQAxEgEANBIBADQSAQA2EgEANxIBAD4SAQA+EgEA3xIBAN8SAQDjEgEA6hIBAAATAQABEwEAOxMBADwTAQBAEwEAQBMBAGYTAQBsEwEAcBMBAHQTAQA4FAEAPxQBAEIUAQBEFAEARhQBAEYUAQBeFAEAXhQBALMUAQC4FAEAuhQBALoUAQC/FAEAwBQBAMIUAQDDFAEAshUBALUVAQC8FQEAvRUBAL8VAQDAFQEA3BUBAN0VAQAzFgEAOhYBAD0WAQA9FgEAPxYBAEAWAQCrFgEAqxYBAK0WAQCtFgEAsBYBALUWAQC3FgEAtxYBAB0XAQAfFwEAIhcBACUXAQAnFwEAKxcBAC8YAQA3GAEAORgBADoYAQA7GQEAPBkBAD4ZAQA+GQEAQxkBAEMZAQDUGQEA1xkBANoZAQDbGQEA4BkBAOAZAQABGgEAChoBADMaAQA4GgEAOxoBAD4aAQBHGgEARxoBAFEaAQBWGgEAWRoBAFsaAQCKGgEAlhoBAJgaAQCZGgEAMBwBADYcAQA4HAEAPRwBAD8cAQA/HAEAkhwBAKccAQCqHAEAsBwBALIcAQCzHAEAtRwBALYcAQAxHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARR0BAEcdAQBHHQEAkB0BAJEdAQCVHQEAlR0BAJcdAQCXHQEA8x4BAPQeAQAwNAEAODQBAPBqAQD0agEAMGsBADZrAQBAawEAQ2sBAE9vAQBPbwEAj28BAJ9vAQDgbwEA4W8BAONvAQDkbwEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAnbwBAJ68AQCgvAEAo7wBAADPAQAtzwEAMM8BAEbPAQBn0QEAadEBAHPRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABADDhAQA94QEAruIBAK7iAQDs4gEA7+IBANDoAQDW6AEAROkBAEvpAQD78wEA//MBAAEADgABAA4AIAAOAH8ADgAAAQ4A7wEOAAAAAACbAAAAQQAAAFoAAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAugEAALwBAAC/AQAAxAEAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHADAABzAwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAGAFAACIBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAAAHQAAvx0AAAAeAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADQhAAA5IQAAOSEAADwhAAA/IQAARSEAAEkhAABOIQAATiEAAGAhAAB/IQAAgyEAAIQhAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAECmAABtpgAAgKYAAJ2mAAAipwAAh6cAAIunAACOpwAAkKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAAD1pwAA9qcAAPinAAD6pwAAMKsAAFqrAABcqwAAaKsAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAACH/AAA6/wAAQf8AAFr/AAAABAEATwQBALAEAQDTBAEA2AQBAPsEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAgAcBAIAHAQCDBwEAhQcBAIcHAQCwBwEAsgcBALoHAQCADAEAsgwBAMAMAQDyDAEAoBgBAN8YAQBAbgEAf24BAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAADfAQAJ3wEAC98BAB7fAQAA6QEAQ+kBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAAAAAACAAAAMAUBAGMFAQBvBQEAbwUBAEHQ5QULwwEVAAAArQAAAK0AAAAABgAABQYAABwGAAAcBgAA3QYAAN0GAAAPBwAADwcAAJAIAACRCAAA4ggAAOIIAAAOGAAADhgAAAsgAAAPIAAAKiAAAC4gAABgIAAAZCAAAGYgAABvIAAA//4AAP/+AAD5/wAA+/8AAL0QAQC9EAEAzRABAM0QAQAwNAEAODQBAKC8AQCjvAEAc9EBAHrRAQABAA4AAQAOACAADgB/AA4AAAAAAAIAAAAAEQEANBEBADYRAQBHEQEAQaDnBQsiBAAAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAFyqAABfqgBB0OcFC/MmbgIAAEEAAABaAAAAtQAAALUAAADAAAAA1gAAANgAAADfAAAAAAEAAAABAAACAQAAAgEAAAQBAAAEAQAABgEAAAYBAAAIAQAACAEAAAoBAAAKAQAADAEAAAwBAAAOAQAADgEAABABAAAQAQAAEgEAABIBAAAUAQAAFAEAABYBAAAWAQAAGAEAABgBAAAaAQAAGgEAABwBAAAcAQAAHgEAAB4BAAAgAQAAIAEAACIBAAAiAQAAJAEAACQBAAAmAQAAJgEAACgBAAAoAQAAKgEAACoBAAAsAQAALAEAAC4BAAAuAQAAMAEAADABAAAyAQAAMgEAADQBAAA0AQAANgEAADYBAAA5AQAAOQEAADsBAAA7AQAAPQEAAD0BAAA/AQAAPwEAAEEBAABBAQAAQwEAAEMBAABFAQAARQEAAEcBAABHAQAASQEAAEoBAABMAQAATAEAAE4BAABOAQAAUAEAAFABAABSAQAAUgEAAFQBAABUAQAAVgEAAFYBAABYAQAAWAEAAFoBAABaAQAAXAEAAFwBAABeAQAAXgEAAGABAABgAQAAYgEAAGIBAABkAQAAZAEAAGYBAABmAQAAaAEAAGgBAABqAQAAagEAAGwBAABsAQAAbgEAAG4BAABwAQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh6QEAQdCOBgvDVYMAAABBAAAAWgAAAGEAAAB6AAAAtQAAALUAAADAAAAA1gAAANgAAAD2AAAA+AAAADcBAAA5AQAAjAEAAI4BAACaAQAAnAEAAKkBAACsAQAAuQEAALwBAAC9AQAAvwEAAL8BAADEAQAAIAIAACICAAAzAgAAOgIAAFQCAABWAgAAVwIAAFkCAABZAgAAWwIAAFwCAABgAgAAYQIAAGMCAABjAgAAZQIAAGYCAABoAgAAbAIAAG8CAABvAgAAcQIAAHICAAB1AgAAdQIAAH0CAAB9AgAAgAIAAIACAACCAgAAgwIAAIcCAACMAgAAkgIAAJICAACdAgAAngIAAEUDAABFAwAAcAMAAHMDAAB2AwAAdwMAAHsDAAB9AwAAfwMAAH8DAACGAwAAhgMAAIgDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAADRAwAA1QMAAPUDAAD3AwAA+wMAAP0DAACBBAAAigQAAC8FAAAxBQAAVgUAAGEFAACHBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAB5HQAAeR0AAH0dAAB9HQAAjh0AAI4dAAAAHgAAmx4AAJ4eAACeHgAAoB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAAAmIQAAJiEAACohAAArIQAAMiEAADIhAABOIQAATiEAAGAhAAB/IQAAgyEAAIQhAAC2JAAA6SQAAAAsAABwLAAAciwAAHMsAAB1LAAAdiwAAH4sAADjLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAECmAABtpgAAgKYAAJumAAAipwAAL6cAADKnAABvpwAAeacAAIenAACLpwAAjacAAJCnAACUpwAAlqcAAK6nAACwpwAAyqcAANCnAADRpwAA1qcAANmnAAD1pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAIf8AADr/AABB/wAAWv8AAAAEAQBPBAEAsAQBANMEAQDYBAEA+wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQCADAEAsgwBAMAMAQDyDAEAoBgBAN8YAQBAbgEAf24BAADpAQBD6QEAAAAAAGECAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA9AMAAPQDAAD3AwAA9wMAAPkDAAD6AwAA/QMAAC8EAABgBAAAYAQAAGIEAABiBAAAZAQAAGQEAABmBAAAZgQAAGgEAABoBAAAagQAAGoEAABsBAAAbAQAAG4EAABuBAAAcAQAAHAEAAByBAAAcgQAAHQEAAB0BAAAdgQAAHYEAAB4BAAAeAQAAHoEAAB6BAAAfAQAAHwEAAB+BAAAfgQAAIAEAACABAAAigQAAIoEAACMBAAAjAQAAI4EAACOBAAAkAQAAJAEAACSBAAAkgQAAJQEAACUBAAAlgQAAJYEAACYBAAAmAQAAJoEAACaBAAAnAQAAJwEAACeBAAAngQAAKAEAACgBAAAogQAAKIEAACkBAAApAQAAKYEAACmBAAAqAQAAKgEAACqBAAAqgQAAKwEAACsBAAArgQAAK4EAACwBAAAsAQAALIEAACyBAAAtAQAALQEAAC2BAAAtgQAALgEAAC4BAAAugQAALoEAAC8BAAAvAQAAL4EAAC+BAAAwAQAAMEEAADDBAAAwwQAAMUEAADFBAAAxwQAAMcEAADJBAAAyQQAAMsEAADLBAAAzQQAAM0EAADQBAAA0AQAANIEAADSBAAA1AQAANQEAADWBAAA1gQAANgEAADYBAAA2gQAANoEAADcBAAA3AQAAN4EAADeBAAA4AQAAOAEAADiBAAA4gQAAOQEAADkBAAA5gQAAOYEAADoBAAA6AQAAOoEAADqBAAA7AQAAOwEAADuBAAA7gQAAPAEAADwBAAA8gQAAPIEAAD0BAAA9AQAAPYEAAD2BAAA+AQAAPgEAAD6BAAA+gQAAPwEAAD8BAAA/gQAAP4EAAAABQAAAAUAAAIFAAACBQAABAUAAAQFAAAGBQAABgUAAAgFAAAIBQAACgUAAAoFAAAMBQAADAUAAA4FAAAOBQAAEAUAABAFAAASBQAAEgUAABQFAAAUBQAAFgUAABYFAAAYBQAAGAUAABoFAAAaBQAAHAUAABwFAAAeBQAAHgUAACAFAAAgBQAAIgUAACIFAAAkBQAAJAUAACYFAAAmBQAAKAUAACgFAAAqBQAAKgUAACwFAAAsBQAALgUAAC4FAAAxBQAAVgUAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAAKATAAD1EwAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAAOkBACHpAQAAAAAAcgIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxAEAAMQBAADGAQAAxwEAAMkBAADKAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADxAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADMCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAABUAgAAVgIAAFcCAABZAgAAWQIAAFsCAABcAgAAYAIAAGECAABjAgAAYwIAAGUCAABmAgAAaAIAAGwCAABvAgAAbwIAAHECAAByAgAAdQIAAHUCAAB9AgAAfQIAAIACAACAAgAAggIAAIMCAACHAgAAjAIAAJICAACSAgAAnQIAAJ4CAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPsDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGEFAACHBQAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwAAN8MAADfDAAA5AwAAOUMAADwDAAA8AwAAPMMAAD/DAAADQ0AAA0NAAARDQAAEQ0AAEUNAABFDQAASQ0AAEkNAABQDQAAUw0AAGQNAABlDQAAgA0AAIANAACEDQAAhA0AAJcNAACZDQAAsg0AALINAAC8DQAAvA0AAL4NAAC/DQAAxw0AAMkNAADLDQAAzg0AANUNAADVDQAA1w0AANcNAADgDQAA5Q0AAPANAADxDQAA9Q0AAAAOAAA7DgAAPg4AAFwOAACADgAAgw4AAIMOAACFDgAAhQ4AAIsOAACLDgAApA4AAKQOAACmDgAApg4AAL4OAAC/DgAAxQ4AAMUOAADHDgAAxw4AAM4OAADPDgAA2g4AANsOAADgDgAA/w4AAEgPAABIDwAAbQ8AAHAPAACYDwAAmA8AAL0PAAC9DwAAzQ8AAM0PAADbDwAA/w8AAMYQAADGEAAAyBAAAMwQAADOEAAAzxAAAEkSAABJEgAAThIAAE8SAABXEgAAVxIAAFkSAABZEgAAXhIAAF8SAACJEgAAiRIAAI4SAACPEgAAsRIAALESAAC2EgAAtxIAAL8SAAC/EgAAwRIAAMESAADGEgAAxxIAANcSAADXEgAAERMAABETAAAWEwAAFxMAAFsTAABcEwAAfRMAAH8TAACaEwAAnxMAAPYTAAD3EwAA/hMAAP8TAACdFgAAnxYAAPkWAAD/FgAAFhcAAB4XAAA3FwAAPxcAAFQXAABfFwAAbRcAAG0XAABxFwAAcRcAAHQXAAB/FwAA3hcAAN8XAADqFwAA7xcAAPoXAAD/FwAAGhgAAB8YAAB5GAAAfxgAAKsYAACvGAAA9hgAAP8YAAAfGQAAHxkAACwZAAAvGQAAPBkAAD8ZAABBGQAAQxkAAG4ZAABvGQAAdRkAAH8ZAACsGQAArxkAAMoZAADPGQAA2xkAAN0ZAAAcGgAAHRoAAF8aAABfGgAAfRoAAH4aAACKGgAAjxoAAJoaAACfGgAArhoAAK8aAADPGgAA/xoAAE0bAABPGwAAfxsAAH8bAAD0GwAA+xsAADgcAAA6HAAAShwAAEwcAACJHAAAjxwAALscAAC8HAAAyBwAAM8cAAD7HAAA/xwAABYfAAAXHwAAHh8AAB8fAABGHwAARx8AAE4fAABPHwAAWB8AAFgfAABaHwAAWh8AAFwfAABcHwAAXh8AAF4fAAB+HwAAfx8AALUfAAC1HwAAxR8AAMUfAADUHwAA1R8AANwfAADcHwAA8B8AAPEfAAD1HwAA9R8AAP8fAAD/HwAAZSAAAGUgAAByIAAAcyAAAI8gAACPIAAAnSAAAJ8gAADBIAAAzyAAAPEgAAD/IAAAjCEAAI8hAAAnJAAAPyQAAEskAABfJAAAdCsAAHUrAACWKwAAlisAAPQsAAD4LAAAJi0AACYtAAAoLQAALC0AAC4tAAAvLQAAaC0AAG4tAABxLQAAfi0AAJctAACfLQAApy0AAKctAACvLQAAry0AALctAAC3LQAAvy0AAL8tAADHLQAAxy0AAM8tAADPLQAA1y0AANctAADfLQAA3y0AAF4uAAB/LgAAmi4AAJouAAD0LgAA/y4AANYvAADvLwAA/C8AAP8vAABAMAAAQDAAAJcwAACYMAAAADEAAAQxAAAwMQAAMDEAAI8xAACPMQAA5DEAAO8xAAAfMgAAHzIAAI2kAACPpAAAx6QAAM+kAAAspgAAP6YAAPimAAD/pgAAy6cAAM+nAADSpwAA0qcAANSnAADUpwAA2qcAAPGnAAAtqAAAL6gAADqoAAA/qAAAeKgAAH+oAADGqAAAzagAANqoAADfqAAAVKkAAF6pAAB9qQAAf6kAAM6pAADOqQAA2qkAAN2pAAD/qQAA/6kAADeqAAA/qgAATqoAAE+qAABaqgAAW6oAAMOqAADaqgAA96oAAACrAAAHqwAACKsAAA+rAAAQqwAAF6sAAB+rAAAnqwAAJ6sAAC+rAAAvqwAAbKsAAG+rAADuqwAA76sAAPqrAAD/qwAApNcAAK/XAADH1wAAytcAAPzXAAD/1wAAbvoAAG/6AADa+gAA//oAAAf7AAAS+wAAGPsAABz7AAA3+wAAN/sAAD37AAA9+wAAP/sAAD/7AABC+wAAQvsAAEX7AABF+wAAw/sAANL7AACQ/QAAkf0AAMj9AADO/QAA0P0AAO/9AAAa/gAAH/4AAFP+AABT/gAAZ/4AAGf+AABs/gAAb/4AAHX+AAB1/gAA/f4AAP7+AAAA/wAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD4/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQDDEAEAzBABAM4QAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQAvNAEAOTQBAP9DAQBHRgEA/2cBADlqAQA/agEAX2oBAF9qAQBqagEAbWoBAL9qAQC/agEAymoBAM9qAQDuagEA72oBAPZqAQD/agEARmsBAE9rAQBaawEAWmsBAGJrAQBiawEAeGsBAHxrAQCQawEAP24BAJtuAQD/bgEAS28BAE5vAQCIbwEAjm8BAKBvAQDfbwEA5W8BAO9vAQDybwEA/28BAPiHAQD/hwEA1owBAP+MAQAJjQEA768BAPSvAQD0rwEA/K8BAPyvAQD/rwEA/68BACOxAQBPsQEAU7EBAGOxAQBosQEAb7EBAPyyAQD/uwEAa7wBAG+8AQB9vAEAf7wBAIm8AQCPvAEAmrwBAJu8AQCkvAEA/84BAC7PAQAvzwEAR88BAE/PAQDEzwEA/88BAPbQAQD/0AEAJ9EBACjRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAAAADgACAA4AHwAOAIAADgD/AA4A8AEOAP//DgD+/w8A//8PAP7/EAD//xAAQdC3BwuTCwMAAAAA4AAA//gAAAAADwD9/w8AAAAQAP3/EAAAAAAArgAAAAAAAABAAAAAWwAAAGAAAAB7AAAAqQAAAKsAAAC5AAAAuwAAAL8AAADXAAAA1wAAAPcAAAD3AAAAuQIAAN8CAADlAgAA6QIAAOwCAAD/AgAAdAMAAHQDAAB+AwAAfgMAAIUDAACFAwAAhwMAAIcDAAAFBgAABQYAAAwGAAAMBgAAGwYAABsGAAAfBgAAHwYAAEAGAABABgAA3QYAAN0GAADiCAAA4ggAAGQJAABlCQAAPw4AAD8OAADVDwAA2A8AAPsQAAD7EAAA6xYAAO0WAAA1FwAANhcAAAIYAAADGAAABRgAAAUYAADTHAAA0xwAAOEcAADhHAAA6RwAAOwcAADuHAAA8xwAAPUcAAD3HAAA+hwAAPocAAAAIAAACyAAAA4gAABkIAAAZiAAAHAgAAB0IAAAfiAAAIAgAACOIAAAoCAAAMAgAAAAIQAAJSEAACchAAApIQAALCEAADEhAAAzIQAATSEAAE8hAABfIQAAiSEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAP8nAAAAKQAAcysAAHYrAACVKwAAlysAAP8rAAAALgAAXS4AAPAvAAD7LwAAADAAAAQwAAAGMAAABjAAAAgwAAAgMAAAMDAAADcwAAA8MAAAPzAAAJswAACcMAAAoDAAAKAwAAD7MAAA/DAAAJAxAACfMQAAwDEAAOMxAAAgMgAAXzIAAH8yAADPMgAA/zIAAP8yAABYMwAA/zMAAMBNAAD/TQAAAKcAACGnAACIpwAAiqcAADCoAAA5qAAALqkAAC6pAADPqQAAz6kAAFurAABbqwAAaqsAAGurAAA+/QAAP/0AABD+AAAZ/gAAMP4AAFL+AABU/gAAZv4AAGj+AABr/gAA//4AAP/+AAAB/wAAIP8AADv/AABA/wAAW/8AAGX/AABw/wAAcP8AAJ7/AACf/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAEBAAIBAQAHAQEAMwEBADcBAQA/AQEAkAEBAJwBAQDQAQEA/AEBAOECAQD7AgEAoLwBAKO8AQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEAZtEBAGrRAQB60QEAg9EBAITRAQCM0QEAqdEBAK7RAQDq0QEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQD/1wEAcewBALTsAQAB7QEAPe0BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAP/xAQAB8gEAAvIBABDyAQA78gEAQPIBAEjyAQBQ8gEAUfIBAGDyAQBl8gEAAPMBANf2AQDd9gEA7PYBAPD2AQD89gEAAPcBAHP3AQCA9wEA2PcBAOD3AQDr9wEA8PcBAPD3AQAA+AEAC/gBABD4AQBH+AEAUPgBAFn4AQBg+AEAh/gBAJD4AQCt+AEAsPgBALH4AQAA+QEAU/oBAGD6AQBt+gEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAPsBAJL7AQCU+wEAyvsBAPD7AQD5+wEAAQAOAAEADgAgAA4AfwAOAEHwwgcLJgMAAADiAwAA7wMAAIAsAADzLAAA+SwAAP8sAAABAAAAANgAAP/fAEGgwwcLIwQAAAAAIAEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAEHQwwcLggEGAAAAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQA/CAEAAQAAAJAvAQDyLwEACAAAAAAEAACEBAAAhwQAAC8FAACAHAAAiBwAACsdAAArHQAAeB0AAHgdAADgLQAA/y0AAECmAACfpgAALv4AAC/+AEHgxAcLwgMXAAAALQAAAC0AAACKBQAAigUAAL4FAAC+BQAAABQAAAAUAAAGGAAABhgAABAgAAAVIAAAUyAAAFMgAAB7IAAAeyAAAIsgAACLIAAAEiIAABIiAAAXLgAAFy4AABouAAAaLgAAOi4AADsuAABALgAAQC4AAF0uAABdLgAAHDAAABwwAAAwMAAAMDAAAKAwAACgMAAAMf4AADL+AABY/gAAWP4AAGP+AABj/gAADf8AAA3/AACtDgEArQ4BAAAAAAARAAAArQAAAK0AAABPAwAATwMAABwGAAAcBgAAXxEAAGARAAC0FwAAtRcAAAsYAAAPGAAACyAAAA8gAAAqIAAALiAAAGAgAABvIAAAZDEAAGQxAAAA/gAAD/4AAP/+AAD//gAAoP8AAKD/AADw/wAA+P8AAKC8AQCjvAEAc9EBAHrRAQAAAA4A/w8OAAAAAAAIAAAASQEAAEkBAABzBgAAcwYAAHcPAAB3DwAAeQ8AAHkPAACjFwAApBcAAGogAABvIAAAKSMAACojAAABAA4AAQAOAAEAAAAABAEATwQBAAQAAAAACQAAUAkAAFUJAABjCQAAZgkAAH8JAADgqAAA/6gAQbDIBwuDDMAAAABeAAAAXgAAAGAAAABgAAAAqAAAAKgAAACvAAAArwAAALQAAAC0AAAAtwAAALgAAACwAgAATgMAAFADAABXAwAAXQMAAGIDAAB0AwAAdQMAAHoDAAB6AwAAhAMAAIUDAACDBAAAhwQAAFkFAABZBQAAkQUAAKEFAACjBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxAUAAEsGAABSBgAAVwYAAFgGAADfBgAA4AYAAOUGAADmBgAA6gYAAOwGAAAwBwAASgcAAKYHAACwBwAA6wcAAPUHAAAYCAAAGQgAAJgIAACfCAAAyQgAANIIAADjCAAA/ggAADwJAAA8CQAATQkAAE0JAABRCQAAVAkAAHEJAABxCQAAvAkAALwJAADNCQAAzQkAADwKAAA8CgAATQoAAE0KAAC8CgAAvAoAAM0KAADNCgAA/QoAAP8KAAA8CwAAPAsAAE0LAABNCwAAVQsAAFULAADNCwAAzQsAADwMAAA8DAAATQwAAE0MAAC8DAAAvAwAAM0MAADNDAAAOw0AADwNAABNDQAATQ0AAMoNAADKDQAARw4AAEwOAABODgAATg4AALoOAAC6DgAAyA4AAMwOAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAAA/DwAAgg8AAIQPAACGDwAAhw8AAMYPAADGDwAANxAAADcQAAA5EAAAOhAAAGMQAABkEAAAaRAAAG0QAACHEAAAjRAAAI8QAACPEAAAmhAAAJsQAABdEwAAXxMAABQXAAAVFwAAyRcAANMXAADdFwAA3RcAADkZAAA7GQAAdRoAAHwaAAB/GgAAfxoAALAaAAC+GgAAwRoAAMsaAAA0GwAANBsAAEQbAABEGwAAaxsAAHMbAACqGwAAqxsAADYcAAA3HAAAeBwAAH0cAADQHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD3HAAA+RwAACwdAABqHQAAxB0AAM8dAAD1HQAA/x0AAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAO8sAADxLAAALy4AAC8uAAAqMAAALzAAAJkwAACcMAAA/DAAAPwwAABvpgAAb6YAAHymAAB9pgAAf6YAAH+mAACcpgAAnaYAAPCmAADxpgAAAKcAACGnAACIpwAAiqcAAPinAAD5pwAAxKgAAMSoAADgqAAA8agAACupAAAuqQAAU6kAAFOpAACzqQAAs6kAAMCpAADAqQAA5akAAOWpAAB7qgAAfaoAAL+qAADCqgAA9qoAAPaqAABbqwAAX6sAAGmrAABrqwAA7KsAAO2rAAAe+wAAHvsAACD+AAAv/gAAPv8AAD7/AABA/wAAQP8AAHD/AABw/wAAnv8AAJ//AADj/wAA4/8AAOACAQDgAgEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEA5QoBAOYKAQAiDQEAJw0BAEYPAQBQDwEAgg8BAIUPAQBGEAEARhABAHAQAQBwEAEAuRABALoQAQAzEQEANBEBAHMRAQBzEQEAwBEBAMARAQDKEQEAzBEBADUSAQA2EgEA6RIBAOoSAQA8EwEAPBMBAE0TAQBNEwEAZhMBAGwTAQBwEwEAdBMBAEIUAQBCFAEARhQBAEYUAQDCFAEAwxQBAL8VAQDAFQEAPxYBAD8WAQC2FgEAtxYBACsXAQArFwEAORgBADoYAQA9GQEAPhkBAEMZAQBDGQEA4BkBAOAZAQA0GgEANBoBAEcaAQBHGgEAmRoBAJkaAQA/HAEAPxwBAEIdAQBCHQEARB0BAEUdAQCXHQEAlx0BAPBqAQD0agEAMGsBADZrAQCPbwEAn28BAPBvAQDxbwEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAAM8BAC3PAQAwzwEARs8BAGfRAQBp0QEAbdEBAHLRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBG6QEASOkBAErpAQBBwNQHC6MOCAAAAAAZAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBGGQEAUBkBAFkZAQABAAAAABgBADsYAQAFAAAAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCcvAEAn7wBAAAAAAACAAAAADABAC40AQAwNAEAODQBAAEAAAAABQEAJwUBAAEAAADgDwEA9g8BAAAAAACZAAAAIwAAACMAAAAqAAAAKgAAADAAAAA5AAAAqQAAAKkAAACuAAAArgAAADwgAAA8IAAASSAAAEkgAAAiIQAAIiEAADkhAAA5IQAAlCEAAJkhAACpIQAAqiEAABojAAAbIwAAKCMAACgjAADPIwAAzyMAAOkjAADzIwAA+CMAAPojAADCJAAAwiQAAKolAACrJQAAtiUAALYlAADAJQAAwCUAAPslAAD+JQAAACYAAAQmAAAOJgAADiYAABEmAAARJgAAFCYAABUmAAAYJgAAGCYAAB0mAAAdJgAAICYAACAmAAAiJgAAIyYAACYmAAAmJgAAKiYAAComAAAuJgAALyYAADgmAAA6JgAAQCYAAEAmAABCJgAAQiYAAEgmAABTJgAAXyYAAGAmAABjJgAAYyYAAGUmAABmJgAAaCYAAGgmAAB7JgAAeyYAAH4mAAB/JgAAkiYAAJcmAACZJgAAmSYAAJsmAACcJgAAoCYAAKEmAACnJgAApyYAAKomAACrJgAAsCYAALEmAAC9JgAAviYAAMQmAADFJgAAyCYAAMgmAADOJgAAzyYAANEmAADRJgAA0yYAANQmAADpJgAA6iYAAPAmAAD1JgAA9yYAAPomAAD9JgAA/SYAAAInAAACJwAABScAAAUnAAAIJwAADScAAA8nAAAPJwAAEicAABInAAAUJwAAFCcAABYnAAAWJwAAHScAAB0nAAAhJwAAIScAACgnAAAoJwAAMycAADQnAABEJwAARCcAAEcnAABHJwAATCcAAEwnAABOJwAATicAAFMnAABVJwAAVycAAFcnAABjJwAAZCcAAJUnAACXJwAAoScAAKEnAACwJwAAsCcAAL8nAAC/JwAANCkAADUpAAAFKwAABysAABsrAAAcKwAAUCsAAFArAABVKwAAVSsAADAwAAAwMAAAPTAAAD0wAACXMgAAlzIAAJkyAACZMgAABPABAATwAQDP8AEAz/ABAHDxAQBx8QEAfvEBAH/xAQCO8QEAjvEBAJHxAQCa8QEA5vEBAP/xAQAB8gEAAvIBABryAQAa8gEAL/IBAC/yAQAy8gEAOvIBAFDyAQBR8gEAAPMBACHzAQAk8wEAk/MBAJbzAQCX8wEAmfMBAJvzAQCe8wEA8PMBAPPzAQD18wEA9/MBAP30AQD/9AEAPfUBAEn1AQBO9QEAUPUBAGf1AQBv9QEAcPUBAHP1AQB69QEAh/UBAIf1AQCK9QEAjfUBAJD1AQCQ9QEAlfUBAJb1AQCk9QEApfUBAKj1AQCo9QEAsfUBALL1AQC89QEAvPUBAML1AQDE9QEA0fUBANP1AQDc9QEA3vUBAOH1AQDh9QEA4/UBAOP1AQDo9QEA6PUBAO/1AQDv9QEA8/UBAPP1AQD69QEAT/YBAID2AQDF9gEAy/YBANL2AQDV9gEA1/YBAN32AQDl9gEA6fYBAOn2AQDr9gEA7PYBAPD2AQDw9gEA8/YBAPz2AQDg9wEA6/cBAPD3AQDw9wEADPkBADr5AQA8+QEARfkBAEf5AQD/+QEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAAAAAAoAAAAjAAAAIwAAACoAAAAqAAAAMAAAADkAAAANIAAADSAAAOMgAADjIAAAD/4AAA/+AADm8QEA//EBAPvzAQD/8wEAsPkBALP5AQAgAA4AfwAOAAEAAAD78wEA//MBACgAAAAdJgAAHSYAAPkmAAD5JgAACicAAA0nAACF8wEAhfMBAMLzAQDE8wEAx/MBAMfzAQDK8wEAzPMBAEL0AQBD9AEARvQBAFD0AQBm9AEAePQBAHz0AQB89AEAgfQBAIP0AQCF9AEAh/QBAI/0AQCP9AEAkfQBAJH0AQCq9AEAqvQBAHT1AQB19QEAevUBAHr1AQCQ9QEAkPUBAJX1AQCW9QEARfYBAEf2AQBL9gEAT/YBAKP2AQCj9gEAtPYBALb2AQDA9gEAwPYBAMz2AQDM9gEADPkBAAz5AQAP+QEAD/kBABj5AQAf+QEAJvkBACb5AQAw+QEAOfkBADz5AQA++QEAd/kBAHf5AQC1+QEAtvkBALj5AQC5+QEAu/kBALv5AQDN+QEAz/kBANH5AQDd+QEAw/oBAMX6AQDw+gEA9voBAEHw4gcLwwdTAAAAGiMAABsjAADpIwAA7CMAAPAjAADwIwAA8yMAAPMjAAD9JQAA/iUAABQmAAAVJgAASCYAAFMmAAB/JgAAfyYAAJMmAACTJgAAoSYAAKEmAACqJgAAqyYAAL0mAAC+JgAAxCYAAMUmAADOJgAAziYAANQmAADUJgAA6iYAAOomAADyJgAA8yYAAPUmAAD1JgAA+iYAAPomAAD9JgAA/SYAAAUnAAAFJwAACicAAAsnAAAoJwAAKCcAAEwnAABMJwAATicAAE4nAABTJwAAVScAAFcnAABXJwAAlScAAJcnAACwJwAAsCcAAL8nAAC/JwAAGysAABwrAABQKwAAUCsAAFUrAABVKwAABPABAATwAQDP8AEAz/ABAI7xAQCO8QEAkfEBAJrxAQDm8QEA//EBAAHyAQAB8gEAGvIBABryAQAv8gEAL/IBADLyAQA28gEAOPIBADryAQBQ8gEAUfIBAADzAQAg8wEALfMBADXzAQA38wEAfPMBAH7zAQCT8wEAoPMBAMrzAQDP8wEA0/MBAODzAQDw8wEA9PMBAPTzAQD48wEAPvQBAED0AQBA9AEAQvQBAPz0AQD/9AEAPfUBAEv1AQBO9QEAUPUBAGf1AQB69QEAevUBAJX1AQCW9QEApPUBAKT1AQD79QEAT/YBAID2AQDF9gEAzPYBAMz2AQDQ9gEA0vYBANX2AQDX9gEA3fYBAN/2AQDr9gEA7PYBAPT2AQD89gEA4PcBAOv3AQDw9wEA8PcBAAz5AQA6+QEAPPkBAEX5AQBH+QEA//kBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAAAAAAkAAAAABIAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAfBMAAIATAACZEwAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAQcDqBwvzBE4AAACpAAAAqQAAAK4AAACuAAAAPCAAADwgAABJIAAASSAAACIhAAAiIQAAOSEAADkhAACUIQAAmSEAAKkhAACqIQAAGiMAABsjAAAoIwAAKCMAAIgjAACIIwAAzyMAAM8jAADpIwAA8yMAAPgjAAD6IwAAwiQAAMIkAACqJQAAqyUAALYlAAC2JQAAwCUAAMAlAAD7JQAA/iUAAAAmAAAFJgAAByYAABImAAAUJgAAhSYAAJAmAAAFJwAACCcAABInAAAUJwAAFCcAABYnAAAWJwAAHScAAB0nAAAhJwAAIScAACgnAAAoJwAAMycAADQnAABEJwAARCcAAEcnAABHJwAATCcAAEwnAABOJwAATicAAFMnAABVJwAAVycAAFcnAABjJwAAZycAAJUnAACXJwAAoScAAKEnAACwJwAAsCcAAL8nAAC/JwAANCkAADUpAAAFKwAABysAABsrAAAcKwAAUCsAAFArAABVKwAAVSsAADAwAAAwMAAAPTAAAD0wAACXMgAAlzIAAJkyAACZMgAAAPABAP/wAQAN8QEAD/EBAC/xAQAv8QEAbPEBAHHxAQB+8QEAf/EBAI7xAQCO8QEAkfEBAJrxAQCt8QEA5fEBAAHyAQAP8gEAGvIBABryAQAv8gEAL/IBADLyAQA68gEAPPIBAD/yAQBJ8gEA+vMBAAD0AQA99QEARvUBAE/2AQCA9gEA//YBAHT3AQB/9wEA1fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQD/+AEADPkBADr5AQA8+QEARfkBAEf5AQD/+gEAAPwBAP3/AQBBwO8HC+ICIQAAALcAAAC3AAAA0AIAANECAABABgAAQAYAAPoHAAD6BwAAVQsAAFULAABGDgAARg4AAMYOAADGDgAAChgAAAoYAABDGAAAQxgAAKcaAACnGgAANhwAADYcAAB7HAAAexwAAAUwAAAFMAAAMTAAADUwAACdMAAAnjAAAPwwAAD+MAAAFaAAABWgAAAMpgAADKYAAM+pAADPqQAA5qkAAOapAABwqgAAcKoAAN2qAADdqgAA86oAAPSqAABw/wAAcP8AAIEHAQCCBwEAXRMBAF0TAQDGFQEAyBUBAJgaAQCYGgEAQmsBAENrAQDgbwEA4W8BAONvAQDjbwEAPOEBAD3hAQBE6QEARukBAAAAAAAKAAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAA/xAAAJAcAAC6HAAAvRwAAL8cAAAALQAAJS0AACctAAAnLQAALS0AAC0tAEGw8gcLo1MGAAAAACwAAF8sAAAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAQAAADADAQBKAwEADwAAAAATAQADEwEABRMBAAwTAQAPEwEAEBMBABMTAQAoEwEAKhMBADATAQAyEwEAMxMBADUTAQA5EwEAPBMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBXEwEAVxMBAF0TAQBjEwEAZhMBAGwTAQBwEwEAdBMBAAAAAABdAwAAIAAAAH4AAACgAAAArAAAAK4AAAD/AgAAcAMAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAACCBAAAigQAAC8FAAAxBQAAVgUAAFkFAACKBQAAjQUAAI8FAAC+BQAAvgUAAMAFAADABQAAwwUAAMMFAADGBQAAxgUAANAFAADqBQAA7wUAAPQFAAAGBgAADwYAABsGAAAbBgAAHQYAAEoGAABgBgAAbwYAAHEGAADVBgAA3gYAAN4GAADlBgAA5gYAAOkGAADpBgAA7gYAAA0HAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMAHAADqBwAA9AcAAPoHAAD+BwAAFQgAABoIAAAaCAAAJAgAACQIAAAoCAAAKAgAADAIAAA+CAAAQAgAAFgIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACgCAAAyQgAAAMJAAA5CQAAOwkAADsJAAA9CQAAQAkAAEkJAABMCQAATgkAAFAJAABYCQAAYQkAAGQJAACACQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AANANAADRDQAA2A0AAN4NAADmDQAA7w0AAPINAAD0DQAAAQ4AADAOAAAyDgAAMw4AAD8OAABGDgAATw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsw4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANAOAADZDgAA3A4AAN8OAAAADwAAFw8AABoPAAA0DwAANg8AADYPAAA4DwAAOA8AADoPAABHDwAASQ8AAGwPAAB/DwAAfw8AAIUPAACFDwAAiA8AAIwPAAC+DwAAxQ8AAMcPAADMDwAAzg8AANoPAAAAEAAALBAAADEQAAAxEAAAOBAAADgQAAA7EAAAPBAAAD8QAABXEAAAWhAAAF0QAABhEAAAcBAAAHUQAACBEAAAgxAAAIQQAACHEAAAjBAAAI4QAACcEAAAnhAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABgEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAERcAABUXAAAVFwAAHxcAADEXAAA0FwAANhcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAAIAXAACzFwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAA1BcAANwXAADgFwAA6RcAAPAXAAD5FwAAABgAAAoYAAAQGAAAGRgAACAYAAB4GAAAgBgAAIQYAACHGAAAqBgAAKoYAACqGAAAsBgAAPUYAAAAGQAAHhkAACMZAAAmGQAAKRkAACsZAAAwGQAAMRkAADMZAAA4GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABYaAAAZGgAAGhoAAB4aAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAACAGgAAiRoAAJAaAACZGgAAoBoAAK0aAAAEGwAAMxsAADsbAAA7GwAAPRsAAEEbAABDGwAATBsAAFAbAABqGwAAdBsAAH4bAACCGwAAoRsAAKYbAACnGwAAqhsAAKobAACuGwAA5RsAAOcbAADnGwAA6hsAAOwbAADuGwAA7hsAAPIbAADzGwAA/BsAACscAAA0HAAANRwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0xwAANMcAADhHAAA4RwAAOkcAADsHAAA7hwAAPMcAAD1HAAA9xwAAPocAAD6HAAAAB0AAL8dAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAAAKIAAAECAAACcgAAAvIAAAXyAAAHAgAABxIAAAdCAAAI4gAACQIAAAnCAAAKAgAADAIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADuLAAA8iwAAPMsAAD5LAAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABwLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAAAC4AAF0uAACALgAAmS4AAJsuAADzLgAAAC8AANUvAADwLwAA+y8AAAAwAAApMAAAMDAAAD8wAABBMAAAljAAAJswAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAAbqYAAHOmAABzpgAAfqYAAJ2mAACgpgAA76YAAPKmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAAagAAAOoAAAFqAAAB6gAAAqoAAAMqAAAJKgAACeoAAArqAAAMKgAADmoAABAqAAAd6gAAICoAADDqAAAzqgAANmoAADyqAAA/qgAAACpAAAlqQAALqkAAEapAABSqQAAU6kAAF+pAAB8qQAAg6kAALKpAAC0qQAAtakAALqpAAC7qQAAvqkAAM2pAADPqQAA2akAAN6pAADkqQAA5qkAAP6pAAAAqgAAKKoAAC+qAAAwqgAAM6oAADSqAABAqgAAQqoAAESqAABLqgAATaoAAE2qAABQqgAAWaoAAFyqAAB7qgAAfaoAAK+qAACxqgAAsaoAALWqAAC2qgAAuaoAAL2qAADAqgAAwKoAAMKqAADCqgAA26oAAOuqAADuqgAA9aoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAa6sAAHCrAADkqwAA5qsAAOerAADpqwAA7KsAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAwvsAANP7AACP/QAAkv0AAMf9AADP/QAAz/0AAPD9AAD//QAAEP4AABn+AAAw/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAAAf8AAJ3/AACg/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPz/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQCAAgEAnAIBAKACAQDQAgEA4QIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHUDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBACgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5AoBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACMNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCtDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEARQ8BAFEPAQBZDwEAcA8BAIEPAQCGDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEAABABAAIQAQA3EAEARxABAE0QAQBSEAEAbxABAHEQAQByEAEAdRABAHUQAQCCEAEAshABALcQAQC4EAEAuxABALwQAQC+EAEAwRABANAQAQDoEAEA8BABAPkQAQADEQEAJhEBACwRAQAsEQEANhEBAEcRAQBQEQEAchEBAHQRAQB2EQEAghEBALURAQC/EQEAyBEBAM0RAQDOEQEA0BEBAN8RAQDhEQEA9BEBAAASAQAREgEAExIBAC4SAQAyEgEAMxIBADUSAQA1EgEAOBIBAD0SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCpEgEAsBIBAN4SAQDgEgEA4hIBAPASAQD5EgEAAhMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA9EwEAPRMBAD8TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBdEwEAYxMBAAAUAQA3FAEAQBQBAEEUAQBFFAEARRQBAEcUAQBbFAEAXRQBAF0UAQBfFAEAYRQBAIAUAQCvFAEAsRQBALIUAQC5FAEAuRQBALsUAQC8FAEAvhQBAL4UAQDBFAEAwRQBAMQUAQDHFAEA0BQBANkUAQCAFQEArhUBALAVAQCxFQEAuBUBALsVAQC+FQEAvhUBAMEVAQDbFQEAABYBADIWAQA7FgEAPBYBAD4WAQA+FgEAQRYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBAKoWAQCsFgEArBYBAK4WAQCvFgEAthYBALYWAQC4FgEAuRYBAMAWAQDJFgEAABcBABoXAQAgFwEAIRcBACYXAQAmFwEAMBcBAEYXAQAAGAEALhgBADgYAQA4GAEAOxgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQAxGQEANRkBADcZAQA4GQEAPRkBAD0ZAQA/GQEAQhkBAEQZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDTGQEA3BkBAN8ZAQDhGQEA5BkBAAAaAQAAGgEACxoBADIaAQA5GgEAOhoBAD8aAQBGGgEAUBoBAFAaAQBXGgEAWBoBAFwaAQCJGgEAlxoBAJcaAQCaGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEALxwBAD4cAQA+HAEAQBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAqRwBAKkcAQCxHAEAsRwBALQcAQC0HAEAAB0BAAYdAQAIHQEACR0BAAsdAQAwHQEARh0BAEYdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJMdAQCUHQEAlh0BAJYdAQCYHQEAmB0BAKAdAQCpHQEA4B4BAPIeAQD1HgEA+B4BALAfAQCwHwEAwB8BAPEfAQD/HwEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAJAvAQDyLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPVqAQD1agEAAGsBAC9rAQA3awEARWsBAFBrAQBZawEAW2sBAGFrAQBjawEAd2sBAH1rAQCPawEAQG4BAJpuAQAAbwEASm8BAFBvAQCHbwEAk28BAJ9vAQDgbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJy8AQCcvAEAn7wBAJ+8AQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEAZNEBAGbRAQBm0QEAatEBAG3RAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIvaAQAA3wEAHt8BAADhAQAs4QEAN+EBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK3iAQDA4gEA6+IBAPDiAQD54gEA/+IBAP/iAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEAx+gBAM/oAQAA6QEAQ+kBAEvpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAAAAAGEBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAvgkAAL4JAADBCQAAxAkAAM0JAADNCQAA1wkAANcJAADiCQAA4wkAAP4JAAD+CQAAAQoAAAIKAAA8CgAAPAoAAEEKAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAcAoAAHEKAAB1CgAAdQoAAIEKAACCCgAAvAoAALwKAADBCgAAxQoAAMcKAADICgAAzQoAAM0KAADiCgAA4woAAPoKAAD/CgAAAQsAAAELAAA8CwAAPAsAAD4LAAA/CwAAQQsAAEQLAABNCwAATQsAAFULAABXCwAAYgsAAGMLAACCCwAAggsAAL4LAAC+CwAAwAsAAMALAADNCwAAzQsAANcLAADXCwAAAAwAAAAMAAAEDAAABAwAADwMAAA8DAAAPgwAAEAMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACBDAAAvAwAALwMAAC/DAAAvwwAAMIMAADCDAAAxgwAAMYMAADMDAAAzQwAANUMAADWDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAPg0AAD4NAABBDQAARA0AAE0NAABNDQAAVw0AAFcNAABiDQAAYw0AAIENAACBDQAAyg0AAMoNAADPDQAAzw0AANINAADUDQAA1g0AANYNAADfDQAA3w0AADEOAAAxDgAANA4AADoOAABHDgAATg4AALEOAACxDgAAtA4AALwOAADIDgAAzQ4AABgPAAAZDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAcQ8AAH4PAACADwAAhA8AAIYPAACHDwAAjQ8AAJcPAACZDwAAvA8AAMYPAADGDwAALRAAADAQAAAyEAAANxAAADkQAAA6EAAAPRAAAD4QAABYEAAAWRAAAF4QAABgEAAAcRAAAHQQAACCEAAAghAAAIUQAACGEAAAjRAAAI0QAACdEAAAnRAAAF0TAABfEwAAEhcAABQXAAAyFwAAMxcAAFIXAABTFwAAchcAAHMXAAC0FwAAtRcAALcXAAC9FwAAxhcAAMYXAADJFwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAIhkAACcZAAAoGQAAMhkAADIZAAA5GQAAOxkAABcaAAAYGgAAGxoAABsaAABWGgAAVhoAAFgaAABeGgAAYBoAAGAaAABiGgAAYhoAAGUaAABsGgAAcxoAAHwaAAB/GgAAfxoAALAaAADOGgAAABsAAAMbAAA0GwAAOhsAADwbAAA8GwAAQhsAAEIbAABrGwAAcxsAAIAbAACBGwAAohsAAKUbAACoGwAAqRsAAKsbAACtGwAA5hsAAOYbAADoGwAA6RsAAO0bAADtGwAA7xsAAPEbAAAsHAAAMxwAADYcAAA3HAAA0BwAANIcAADUHAAA4BwAAOIcAADoHAAA7RwAAO0cAAD0HAAA9BwAAPgcAAD5HAAAwB0AAP8dAAAMIAAADCAAANAgAADwIAAA7ywAAPEsAAB/LQAAfy0AAOAtAAD/LQAAKjAAAC8wAACZMAAAmjAAAG+mAABypgAAdKYAAH2mAACepgAAn6YAAPCmAADxpgAAAqgAAAKoAAAGqAAABqgAAAuoAAALqAAAJagAACaoAAAsqAAALKgAAMSoAADFqAAA4KgAAPGoAAD/qAAA/6gAACapAAAtqQAAR6kAAFGpAACAqQAAgqkAALOpAACzqQAAtqkAALmpAAC8qQAAvakAAOWpAADlqQAAKaoAAC6qAAAxqgAAMqoAADWqAAA2qgAAQ6oAAEOqAABMqgAATKoAAHyqAAB8qgAAsKoAALCqAACyqgAAtKoAALeqAAC4qgAAvqoAAL+qAADBqgAAwaoAAOyqAADtqgAA9qoAAPaqAADlqwAA5asAAOirAADoqwAA7asAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AACe/wAAn/8AAP0BAQD9AQEA4AIBAOACAQB2AwEAegMBAAEKAQADCgEABQoBAAYKAQAMCgEADwoBADgKAQA6CgEAPwoBAD8KAQDlCgEA5goBACQNAQAnDQEAqw4BAKwOAQBGDwEAUA8BAIIPAQCFDwEAARABAAEQAQA4EAEARhABAHAQAQBwEAEAcxABAHQQAQB/EAEAgRABALMQAQC2EAEAuRABALoQAQDCEAEAwhABAAARAQACEQEAJxEBACsRAQAtEQEANBEBAHMRAQBzEQEAgBEBAIERAQC2EQEAvhEBAMkRAQDMEQEAzxEBAM8RAQAvEgEAMRIBADQSAQA0EgEANhIBADcSAQA+EgEAPhIBAN8SAQDfEgEA4xIBAOoSAQAAEwEAARMBADsTAQA8EwEAPhMBAD4TAQBAEwEAQBMBAFcTAQBXEwEAZhMBAGwTAQBwEwEAdBMBADgUAQA/FAEAQhQBAEQUAQBGFAEARhQBAF4UAQBeFAEAsBQBALAUAQCzFAEAuBQBALoUAQC6FAEAvRQBAL0UAQC/FAEAwBQBAMIUAQDDFAEArxUBAK8VAQCyFQEAtRUBALwVAQC9FQEAvxUBAMAVAQDcFQEA3RUBADMWAQA6FgEAPRYBAD0WAQA/FgEAQBYBAKsWAQCrFgEArRYBAK0WAQCwFgEAtRYBALcWAQC3FgEAHRcBAB8XAQAiFwEAJRcBACcXAQArFwEALxgBADcYAQA5GAEAOhgBADAZAQAwGQEAOxkBADwZAQA+GQEAPhkBAEMZAQBDGQEA1BkBANcZAQDaGQEA2xkBAOAZAQDgGQEAARoBAAoaAQAzGgEAOBoBADsaAQA+GgEARxoBAEcaAQBRGgEAVhoBAFkaAQBbGgEAihoBAJYaAQCYGgEAmRoBADAcAQA2HAEAOBwBAD0cAQA/HAEAPxwBAJIcAQCnHAEAqhwBALAcAQCyHAEAsxwBALUcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAJAdAQCRHQEAlR0BAJUdAQCXHQEAlx0BAPMeAQD0HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAj28BAJJvAQDkbwEA5G8BAJ28AQCevAEAAM8BAC3PAQAwzwEARs8BAGXRAQBl0QEAZ9EBAGnRAQBu0QEActEBAHvRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABADDhAQA24QEAruIBAK7iAQDs4gEA7+IBANDoAQDW6AEAROkBAErpAQAgAA4AfwAOAAABDgDvAQ4AAAAAADcAAABNCQAATQkAAM0JAADNCQAATQoAAE0KAADNCgAAzQoAAE0LAABNCwAAzQsAAM0LAABNDAAATQwAAM0MAADNDAAAOw0AADwNAABNDQAATQ0AAMoNAADKDQAAOg4AADoOAAC6DgAAug4AAIQPAACEDwAAORAAADoQAAAUFwAAFRcAADQXAAA0FwAA0hcAANIXAABgGgAAYBoAAEQbAABEGwAAqhsAAKsbAADyGwAA8xsAAH8tAAB/LQAABqgAAAaoAAAsqAAALKgAAMSoAADEqAAAU6kAAFOpAADAqQAAwKkAAPaqAAD2qgAA7asAAO2rAAA/CgEAPwoBAEYQAQBGEAEAcBABAHAQAQB/EAEAfxABALkQAQC5EAEAMxEBADQRAQDAEQEAwBEBADUSAQA1EgEA6hIBAOoSAQBNEwEATRMBAEIUAQBCFAEAwhQBAMIUAQC/FQEAvxUBAD8WAQA/FgEAthYBALYWAQArFwEAKxcBADkYAQA5GAEAPRkBAD4ZAQDgGQEA4BkBADQaAQA0GgEARxoBAEcaAQCZGgEAmRoBAD8cAQA/HAEARB0BAEUdAQCXHQEAlx0BAAAAAAAkAAAAcAMAAHMDAAB1AwAAdwMAAHoDAAB9AwAAfwMAAH8DAACEAwAAhAMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAOEDAADwAwAA/wMAACYdAAAqHQAAXR0AAGEdAABmHQAAah0AAL8dAAC/HQAAAB8AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAmIQAAJiEAAGWrAABlqwAAQAEBAI4BAQCgAQEAoAEBAADSAQBF0gEAQeDFCAtyDgAAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAEHgxggLMwYAAABgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCYHQEAoB0BAKkdAQBBoMcIC4IBEAAAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB2CgBBsMgIC6MBFAAAAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAAUwAAAFMAAABzAAAAcwAAAhMAAAKTAAADgwAAA7MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADibwEA428BAPBvAQDxbwEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBB4MkIC3IOAAAAABEAAP8RAAAuMAAALzAAADExAACOMQAAADIAAB4yAABgMgAAfjIAAGCpAAB8qQAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAoP8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AQeDKCAvCAQIAAAAADQEAJw0BADANAQA5DQEAAQAAACAXAAA0FwAAAwAAAOAIAQDyCAEA9AgBAPUIAQD7CAEA/wgBAAAAAAAJAAAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AABP+wAAAAAAAAYAAAAwAAAAOQAAAEEAAABGAAAAYQAAAGYAAAAQ/wAAGf8AACH/AAAm/wAAQf8AAEb/AEGwzAgLQgUAAABBMAAAljAAAJ0wAACfMAAAAbABAB+xAQBQsQEAUrEBAADyAQAA8gEAAQAAAKGkAADzpAAAAQAAAJ+CAADxggBBgM0IC1IKAAAALQAAAC0AAACtAAAArQAAAIoFAACKBQAABhgAAAYYAAAQIAAAESAAABcuAAAXLgAA+zAAAPswAABj/gAAY/4AAA3/AAAN/wAAZf8AAGX/AEHgzQgLwy8CAAAA8C8AAPEvAAD0LwAA+y8AAAEAAADyLwAA8y8AAPQCAAAwAAAAOQAAAEEAAABaAAAAXwAAAF8AAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC3AAAAtwAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAAAAAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAD1AwAA9wMAAIEEAACDBAAAhwQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABpBgAAbgYAANMGAADVBgAA3AYAAN8GAADoBgAA6gYAAPwGAAD/BgAA/wYAABAHAABKBwAATQcAALEHAADABwAA9QcAAPoHAAD6BwAA/QcAAP0HAAAACAAALQgAAEAIAABbCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAmAgAAOEIAADjCAAAYwkAAGYJAABvCQAAcQkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC8CQAAxAkAAMcJAADICQAAywkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAA/gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAA8AAAAPAAAYDwAAGQ8AACAPAAApDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAPg8AAEcPAABJDwAAbA8AAHEPAACEDwAAhg8AAJcPAACZDwAAvA8AAMYPAADGDwAAABAAAEkQAABQEAAAnRAAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAAD6EAAA/BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAXxMAAGkTAABxEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANoZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAvRoAAL8aAADOGgAAABsAAEwbAABQGwAAWRsAAGsbAABzGwAAgBsAAPMbAAAAHAAANxwAAEAcAABJHAAATRwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADQHAAA0hwAANQcAAD6HAAAAB0AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAAA/IAAAQCAAAFQgAABUIAAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAA0CAAANwgAADhIAAA4SAAAOUgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAYIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAAALAAA5CwAAOssAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAby0AAH8tAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAOAtAAD/LQAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAK6YAAECmAABvpgAAdKYAAH2mAAB/pgAA8aYAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAAnqAAALKgAACyoAABAqAAAc6gAAICoAADFqAAA0KgAANmoAADgqAAA96gAAPuoAAD7qAAA/agAAC2pAAAwqQAAU6kAAGCpAAB8qQAAgKkAAMCpAADPqQAA2akAAOCpAAD+qQAAAKoAADaqAABAqgAATaoAAFCqAABZqgAAYKoAAHaqAAB6qgAAwqoAANuqAADdqgAA4KoAAO+qAADyqgAA9qoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAWqsAAFyrAABpqwAAcKsAAOqrAADsqwAA7asAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAAP4AAA/+AAAg/gAAL/4AADP+AAA0/gAATf4AAE/+AABw/gAAdP4AAHb+AAD8/gAAEP8AABn/AAAh/wAAOv8AAD//AAA//wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQBAAQEAdAEBAP0BAQD9AQEAgAIBAJwCAQCgAgEA0AIBAOACAQDgAgEAAAMBAB8DAQAtAwEASgMBAFADAQB6AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAYAgBAHYIAQCACAEAnggBAOAIAQDyCAEA9AgBAPUIAQAACQEAFQkBACAJAQA5CQEAgAkBALcJAQC+CQEAvwkBAAAKAQADCgEABQoBAAYKAQAMCgEAEwoBABUKAQAXCgEAGQoBADUKAQA4CgEAOgoBAD8KAQA/CgEAYAoBAHwKAQCACgEAnAoBAMAKAQDHCgEAyQoBAOYKAQAACwEANQsBAEALAQBVCwEAYAsBAHILAQCACwEAkQsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAAANAQAnDQEAMA0BADkNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAFAPAQBwDwEAhQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARhABAGYQAQB1EAEAfxABALoQAQDCEAEAwhABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQA/EQEARBEBAEcRAQBQEQEAcxEBAHYRAQB2EQEAgBEBAMQRAQDJEQEAzBEBAM4RAQDaEQEA3BEBANwRAQAAEgEAERIBABMSAQA3EgEAPhIBAD4SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCoEgEAsBIBAOoSAQDwEgEA+RIBAAATAQADEwEABRMBAAwTAQAPEwEAEBMBABMTAQAoEwEAKhMBADATAQAyEwEAMxMBADUTAQA5EwEAOxMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBXEwEAVxMBAF0TAQBjEwEAZhMBAGwTAQBwEwEAdBMBAAAUAQBKFAEAUBQBAFkUAQBeFAEAYRQBAIAUAQDFFAEAxxQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAMAVAQDYFQEA3RUBAAAWAQBAFgEARBYBAEQWAQBQFgEAWRYBAIAWAQC4FgEAwBYBAMkWAQAAFwEAGhcBAB0XAQArFwEAMBcBADkXAQBAFwEARhcBAAAYAQA6GAEAoBgBAOkYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEAQxkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDhGQEA4xkBAOQZAQAAGgEAPhoBAEcaAQBHGgEAUBoBAJkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBAHAEAUBwBAFkcAQByHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD2HgEAsB8BALAfAQAAIAEAmSMBAAAkAQBuJAEAgCQBAEMlAQCQLwEA8C8BAAAwAQAuNAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBwagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9GoBAABrAQA2awEAQGsBAENrAQBQawEAWWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDhbwEA428BAORvAQDwbwEA8W8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAULEBAFKxAQBksQEAZ7EBAHCxAQD7sgEAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCdvAEAnrwBAADPAQAtzwEAMM8BAEbPAQBl0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAQtIBAETSAQAA1AEAVNQBAFbUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAudQBALvUAQC71AEAvdQBAMPUAQDF1AEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBAB7VAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBS1QEApdYBAKjWAQDA1gEAwtYBANrWAQDc1gEA+tYBAPzWAQAU1wEAFtcBADTXAQA21wEATtcBAFDXAQBu1wEAcNcBAIjXAQCK1wEAqNcBAKrXAQDC1wEAxNcBAMvXAQDO1wEA/9cBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADfAQAe3wEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBO4QEAkOIBAK7iAQDA4gEA+eIBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDQ6AEA1ugBAADpAQBL6QEAUOkBAFnpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAAEOAO8BDgBBsP0IC8MoiAIAAEEAAABaAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAHADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAADQBQAA6gUAAO8FAADyBQAAIAYAAEoGAABuBgAAbwYAAHEGAADTBgAA1QYAANUGAADlBgAA5gYAAO4GAADvBgAA+gYAAPwGAAD/BgAA/wYAABAHAAAQBwAAEgcAAC8HAABNBwAApQcAALEHAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABUIAAAaCAAAGggAACQIAAAkCAAAKAgAACgIAABACAAAWAgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAKAIAADJCAAABAkAADkJAAA9CQAAPQkAAFAJAABQCQAAWAkAAGEJAABxCQAAgAkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAAC9CQAAzgkAAM4JAADcCQAA3QkAAN8JAADhCQAA8AkAAPEJAAD8CQAA/AkAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAWQoAAFwKAABeCgAAXgoAAHIKAAB0CgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAL0KAADQCgAA0AoAAOAKAADhCgAA+QoAAPkKAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAFwLAABdCwAAXwsAAGELAABxCwAAcQsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAA0AsAANALAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAWAwAAFoMAABdDAAAXQwAAGAMAABhDAAAgAwAAIAMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL0MAADdDAAA3gwAAOAMAADhDAAA8QwAAPIMAAAEDQAADA0AAA4NAAAQDQAAEg0AADoNAAA9DQAAPQ0AAE4NAABODQAAVA0AAFYNAABfDQAAYQ0AAHoNAAB/DQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAAEOAAAwDgAAMg4AADMOAABADgAARg4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAsA4AALIOAACzDgAAvQ4AAL0OAADADgAAxA4AAMYOAADGDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAACIDwAAjA8AAAAQAAAqEAAAPxAAAD8QAABQEAAAVRAAAFoQAABdEAAAYRAAAGEQAABlEAAAZhAAAG4QAABwEAAAdRAAAIEQAACOEAAAjhAAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAAD6EAAA/BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAACAEwAAjxMAAKATAAD1EwAA+BMAAP0TAAABFAAAbBYAAG8WAAB/FgAAgRYAAJoWAACgFgAA6hYAAO4WAAD4FgAAABcAABEXAAAfFwAAMRcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAAIAXAACzFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAACnGgAApxoAAAUbAAAzGwAARRsAAEwbAACDGwAAoBsAAK4bAACvGwAAuhsAAOUbAAAAHAAAIxwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAAAB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABghAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAAAFMAAABzAAACEwAAApMAAAMTAAADUwAAA4MAAAPDAAAEEwAACWMAAAmzAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAAfpgAAKqYAACumAABApgAAbqYAAH+mAACdpgAAoKYAAO+mAAAXpwAAH6cAACKnAACIpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAAagAAAOoAAAFqAAAB6gAAAqoAAAMqAAAIqgAAECoAABzqAAAgqgAALOoAADyqAAA96gAAPuoAAD7qAAA/agAAP6oAAAKqQAAJakAADCpAABGqQAAYKkAAHypAACEqQAAsqkAAM+pAADPqQAA4KkAAOSpAADmqQAA76kAAPqpAAD+qQAAAKoAACiqAABAqgAAQqoAAESqAABLqgAAYKoAAHaqAAB6qgAAeqoAAH6qAACvqgAAsaoAALGqAAC1qgAAtqoAALmqAAC9qgAAwKoAAMCqAADCqgAAwqoAANuqAADdqgAA4KoAAOqqAADyqgAA9KoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAWqsAAFyrAABpqwAAcKsAAOKrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAAPsAAAb7AAAT+wAAF/sAAB37AAAd+wAAH/sAACj7AAAq+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAALH7AADT+wAAPf0AAFD9AACP/QAAkv0AAMf9AADw/QAA+/0AAHD+AAB0/gAAdv4AAPz+AAAh/wAAOv8AAEH/AABa/wAAZv8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEASgMBAFADAQB1AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBwagEAvmoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAUG8BAFBvAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4QEALOEBADfhAQA94QEATuEBAE7hAQCQ4gEAreIBAMDiAQDr4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAADpAQBD6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAEGApgkLswETAAAABjAAAAcwAAAhMAAAKTAAADgwAAA6MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADkbwEA5G8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAHCxAQD7sgEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAAAAAgAAAEAIAQBVCAEAVwgBAF8IAQBBwKcJC4MCHQAAAAADAABvAwAAhQQAAIYEAABLBgAAVQYAAHAGAABwBgAAUQkAAFQJAACwGgAAzhoAANAcAADSHAAA1BwAAOAcAADiHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD4HAAA+RwAAMAdAAD/HQAADCAAAA0gAADQIAAA8CAAACowAAAtMAAAmTAAAJowAAAA/gAAD/4AACD+AAAt/gAA/QEBAP0BAQDgAgEA4AIBADsTAQA7EwEAAM8BAC3PAQAwzwEARs8BAGfRAQBp0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAAAEOAO8BDgAAAAAAAgAAAGALAQByCwEAeAsBAH8LAQBB0KkJCxMCAAAAQAsBAFULAQBYCwEAXwsBAEHwqQkLJgMAAACAqQAAzakAANCpAADZqQAA3qkAAN+pAAABAAAADCAAAA0gAEGgqgkLEwIAAACAEAEAwhABAM0QAQDNEAEAQcCqCQuiAg0AAACADAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAAAAAANAAAAoTAAAPowAAD9MAAA/zAAAPAxAAD/MQAA0DIAAP4yAAAAMwAAVzMAAGb/AABv/wAAcf8AAJ3/AADwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAALABACCxAQAisQEAZLEBAGexAQAAAAAAAwAAAKGlAAD2pQAApqoAAK+qAACxqgAA3aoAAAAAAAAEAAAApgAAAK8AAACxAAAA3QAAAECDAAB+gwAAgIMAAJaDAEHwrAkLEgIAAAAAqQAALakAAC+pAAAvqQBBkK0JC0MIAAAAAAoBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAEHgrQkLEwIAAADkbwEA5G8BAACLAQDVjAEAQYCuCQsiBAAAAIAXAADdFwAA4BcAAOkXAADwFwAA+RcAAOAZAAD/GQBBsK4JCxMCAAAAABIBABESAQATEgEAPhIBAEHQrgkLEwIAAACwEgEA6hIBAPASAQD5EgEAQfCuCQvDKIgCAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABwAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAA0AUAAOoFAADvBQAA8gUAACAGAABKBgAAbgYAAG8GAABxBgAA0wYAANUGAADVBgAA5QYAAOYGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAA9AcAAPUHAAD6BwAA+gcAAAAIAAAVCAAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAAAQJAAA5CQAAPQkAAD0JAABQCQAAUAkAAFgJAABhCQAAcQkAAIAJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAPAJAADxCQAA/AkAAPwJAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAFkKAABcCgAAXgoAAF4KAAByCgAAdAoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAAC9CgAA0AoAANAKAADgCgAA4QoAAPkKAAD5CgAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAANALAADQCwAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAAPQwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAIAMAACADAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC9DAAA3QwAAN4MAADgDAAA4QwAAPEMAADyDAAABA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAABODQAATg0AAFQNAABWDQAAXw0AAGENAAB6DQAAfw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAAABDgAAMA4AADIOAAAzDgAAQA4AAEYOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsw4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADxFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANcXAADXFwAA3BcAANwXAAAgGAAAeBgAAIAYAACEGAAAhxgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAACnGgAApxoAAAUbAAAzGwAARRsAAEwbAACDGwAAoBsAAK4bAACvGwAAuhsAAOUbAAAAHAAAIxwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAAAB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAAC0hAAAvIQAAOSEAADwhAAA/IQAARSEAAEkhAABOIQAATiEAAIMhAACEIQAAACwAAOQsAADrLAAA7iwAAPIsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAby0AAIAtAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAC8uAAAvLgAABTAAAAYwAAAxMAAANTAAADswAAA8MAAAQTAAAJYwAACdMAAAnzAAAKEwAAD6MAAA/DAAAP8wAAAFMQAALzEAADExAACOMQAAoDEAAL8xAADwMQAA/zEAAAA0AAC/TQAAAE4AAIykAADQpAAA/aQAAAClAAAMpgAAEKYAAB+mAAAqpgAAK6YAAECmAABupgAAf6YAAJ2mAACgpgAA5aYAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAABqAAAA6gAAAWoAAAHqAAACqgAAAyoAAAiqAAAQKgAAHOoAACCqAAAs6gAAPKoAAD3qAAA+6gAAPuoAAD9qAAA/qgAAAqpAAAlqQAAMKkAAEapAABgqQAAfKkAAISpAACyqQAAz6kAAM+pAADgqQAA5KkAAOapAADvqQAA+qkAAP6pAAAAqgAAKKoAAECqAABCqgAARKoAAEuqAABgqgAAdqoAAHqqAAB6qgAAfqoAAK+qAACxqgAAsaoAALWqAAC2qgAAuaoAAL2qAADAqgAAwKoAAMKqAADCqgAA26oAAN2qAADgqgAA6qoAAPKqAAD0qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA4qsAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAAD5AABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAAB37AAAf+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AACH/AAA6/wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEAQAMBAEIDAQBJAwEAUAMBAHUDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAgCQBAEMlAQCQLwEA8C8BAAAwAQAuNAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAcGoBAL5qAQDQagEA7WoBAABrAQAvawEAQGsBAENrAQBjawEAd2sBAH1rAQCPawEAQG4BAH9uAQAAbwEASm8BAFBvAQBQbwEAk28BAJ9vAQDgbwEA4W8BAONvAQDjbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAADfAQAe3wEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEvpAQBL6QEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBBwNcJC/MIjgAAAEEAAABaAAAAYQAAAHoAAAC1AAAAtQAAAMAAAADWAAAA2AAAAPYAAAD4AAAAugEAALwBAAC/AQAAxAEAAJMCAACVAgAArwIAAHADAABzAwAAdgMAAHcDAAB7AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAGAFAACIBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAAAHQAAKx0AAGsdAAB3HQAAeR0AAJodAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA0IQAAOSEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAACDIQAAhCEAAAAsAAB7LAAAfiwAAOQsAADrLAAA7iwAAPIsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQKYAAG2mAACApgAAm6YAACKnAABvpwAAcacAAIenAACLpwAAjqcAAJCnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA9acAAPanAAD6pwAA+qcAADCrAABaqwAAYKsAAGirAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAEH/AABa/wAAAAQBAE8EAQCwBAEA0wQBANgEAQD7BAEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAIAMAQCyDAEAwAwBAPIMAQCgGAEA3xgBAEBuAQB/bgEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAAnfAQAL3wEAHt8BAADpAQBD6QEAQcDgCQuTAwsAAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAAAAACYAAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAuAIAAOACAADkAgAAAB0AACUdAAAsHQAAXB0AAGIdAABlHQAAax0AAHcdAAB5HQAAvh0AAAAeAAD/HgAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAKiEAACshAAAyIQAAMiEAAE4hAABOIQAAYCEAAIghAABgLAAAfywAACKnAACHpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAA/6cAADCrAABaqwAAXKsAAGSrAABmqwAAaasAAAD7AAAG+wAAIf8AADr/AABB/wAAWv8AAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAADfAQAe3wEAQeDjCQvDAQMAAAAAHAAANxwAADscAABJHAAATRwAAE8cAAAAAAAABQAAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEAZAABAGQAARBkAAE8ZAAAAAAAAAwAAAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAAAAAAAHAAAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAAAAAgAAANCkAAD/pAAAsB8BALAfAQBBsOUJC4JOkQIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADgBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACNAQAAkgEAAJIBAACVAQAAlQEAAJkBAACbAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAKoBAACrAQAArQEAAK0BAACwAQAAsAEAALQBAAC0AQAAtgEAALYBAAC5AQAAugEAAL0BAAC/AQAAxgEAAMYBAADJAQAAyQEAAMwBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPMBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIQIAACECAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADkCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAACTAgAAlQIAAK8CAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD8AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABgBQAAiAUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAAB0AACsdAABrHQAAdx0AAHkdAACaHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACdHgAAnx4AAJ8eAAChHgAAoR4AAKMeAACjHgAApR4AAKUeAACnHgAApx4AAKkeAACpHgAAqx4AAKseAACtHgAArR4AAK8eAACvHgAAsR4AALEeAACzHgAAsx4AALUeAAC1HgAAtx4AALceAAC5HgAAuR4AALseAAC7HgAAvR4AAL0eAAC/HgAAvx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPanAAD2pwAA+qcAAPqnAAAwqwAAWqsAAGCrAABoqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAa1AEAM9QBAE7UAQBU1AEAVtQBAGfUAQCC1AEAm9QBALbUAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQDP1AEA6tQBAAPVAQAe1QEAN9UBAFLVAQBr1QEAhtUBAJ/VAQC61QEA09UBAO7VAQAH1gEAItYBADvWAQBW1gEAb9YBAIrWAQCl1gEAwtYBANrWAQDc1gEA4dYBAPzWAQAU1wEAFtcBABvXAQA21wEATtcBAFDXAQBV1wEAcNcBAIjXAQCK1wEAj9cBAKrXAQDC1wEAxNcBAMnXAQDL1wEAy9cBAADfAQAJ3wEAC98BAB7fAQAi6QEAQ+kBAAAAAABFAAAAsAIAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAHQDAAB0AwAAegMAAHoDAABZBQAAWQUAAEAGAABABgAA5QYAAOYGAAD0BwAA9QcAAPoHAAD6BwAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAyQgAAMkIAABxCQAAcQkAAEYOAABGDgAAxg4AAMYOAAD8EAAA/BAAANcXAADXFwAAQxgAAEMYAACnGgAApxoAAHgcAAB9HAAALB0AAGodAAB4HQAAeB0AAJsdAAC/HQAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAfCwAAH0sAABvLQAAby0AAC8uAAAvLgAABTAAAAUwAAAxMAAANTAAADswAAA7MAAAnTAAAJ4wAAD8MAAA/jAAABWgAAAVoAAA+KQAAP2kAAAMpgAADKYAAH+mAAB/pgAAnKYAAJ2mAAAXpwAAH6cAAHCnAABwpwAAiKcAAIinAADypwAA9KcAAPinAAD5pwAAz6kAAM+pAADmqQAA5qkAAHCqAABwqgAA3aoAAN2qAADzqgAA9KoAAFyrAABfqwAAaasAAGmrAABw/wAAcP8AAJ7/AACf/wAAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAQGsBAENrAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQA34QEAPeEBAEvpAQBL6QEAAAAAAPUBAACqAAAAqgAAALoAAAC6AAAAuwEAALsBAADAAQAAwwEAAJQCAACUAgAA0AUAAOoFAADvBQAA8gUAACAGAAA/BgAAQQYAAEoGAABuBgAAbwYAAHEGAADTBgAA1QYAANUGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAAAAgAABUIAABACAAAWAgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAKAIAADICAAABAkAADkJAAA9CQAAPQkAAFAJAABQCQAAWAkAAGEJAAByCQAAgAkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAAC9CQAAzgkAAM4JAADcCQAA3QkAAN8JAADhCQAA8AkAAPEJAAD8CQAA/AkAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAWQoAAFwKAABeCgAAXgoAAHIKAAB0CgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAL0KAADQCgAA0AoAAOAKAADhCgAA+QoAAPkKAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAFwLAABdCwAAXwsAAGELAABxCwAAcQsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAA0AsAANALAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAWAwAAFoMAABdDAAAXQwAAGAMAABhDAAAgAwAAIAMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL0MAADdDAAA3gwAAOAMAADhDAAA8QwAAPIMAAAEDQAADA0AAA4NAAAQDQAAEg0AADoNAAA9DQAAPQ0AAE4NAABODQAAVA0AAFYNAABfDQAAYQ0AAHoNAAB/DQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAAEOAAAwDgAAMg4AADMOAABADgAARQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAsA4AALIOAACzDgAAvQ4AAL0OAADADgAAxA4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAAAAEQAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADxFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANwXAADcFwAAIBgAAEIYAABEGAAAeBgAAIAYAACEGAAAhxgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAAAFGwAAMxsAAEUbAABMGwAAgxsAAKAbAACuGwAArxsAALobAADlGwAAABwAACMcAABNHAAATxwAAFocAAB3HAAA6RwAAOwcAADuHAAA8xwAAPUcAAD2HAAA+hwAAPocAAA1IQAAOCEAADAtAABnLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAABjAAAAYwAAA8MAAAPDAAAEEwAACWMAAAnzAAAJ8wAAChMAAA+jAAAP8wAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAAAUoAAAFqAAAIykAADQpAAA96QAAAClAAALpgAAEKYAAB+mAAAqpgAAK6YAAG6mAABupgAAoKYAAOWmAACPpwAAj6cAAPenAAD3pwAA+6cAAAGoAAADqAAABagAAAeoAAAKqAAADKgAACKoAABAqAAAc6gAAIKoAACzqAAA8qgAAPeoAAD7qAAA+6gAAP2oAAD+qAAACqkAACWpAAAwqQAARqkAAGCpAAB8qQAAhKkAALKpAADgqQAA5KkAAOepAADvqQAA+qkAAP6pAAAAqgAAKKoAAECqAABCqgAARKoAAEuqAABgqgAAb6oAAHGqAAB2qgAAeqoAAHqqAAB+qgAAr6oAALGqAACxqgAAtaoAALaqAAC5qgAAvaoAAMCqAADAqgAAwqoAAMKqAADbqgAA3KoAAOCqAADqqgAA8qoAAPKqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAwKsAAOKrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAHfsAAB37AAAf+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AAGb/AABv/wAAcf8AAJ3/AACg/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEAQAMBAEIDAQBJAwEAUAMBAHUDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQBQBAEAnQQBAAAFAQAnBQEAMAUBAGMFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBgCAEAdggBAIAIAQCeCAEA4AgBAPIIAQD0CAEA9QgBAAAJAQAVCQEAIAkBADkJAQCACQEAtwkBAL4JAQC/CQEAAAoBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQA/GQEAPxkBAEEZAQBBGQEAoBkBAKcZAQCqGQEA0BkBAOEZAQDhGQEA4xkBAOMZAQAAGgEAABoBAAsaAQAyGgEAOhoBADoaAQBQGgEAUBoBAFwaAQCJGgEAnRoBAJ0aAQCwGgEA+BoBAAAcAQAIHAEAChwBAC4cAQBAHAEAQBwBAHIcAQCPHAEAAB0BAAYdAQAIHQEACR0BAAsdAQAwHQEARh0BAEYdAQBgHQEAZR0BAGcdAQBoHQEAah0BAIkdAQCYHQEAmB0BAOAeAQDyHgEAsB8BALAfAQAAIAEAmSMBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAGNrAQB3awEAfWsBAI9rAQAAbwEASm8BAFBvAQBQbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAArfAQAK3wEAAOEBACzhAQBO4QEATuEBAJDiAQCt4gEAwOIBAOviAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAAAABwAAAEAOAABEDgAAwA4AAMQOAAC1GQAAtxkAALoZAAC6GQAAtaoAALaqAAC5qgAAuaoAALuqAAC8qgAAAAAAAAoAAADFAQAAxQEAAMgBAADIAQAAywEAAMsBAADyAQAA8gEAAIgfAACPHwAAmB8AAJ8fAACoHwAArx8AALwfAAC8HwAAzB8AAMwfAAD8HwAA/B8AQcCzCgvTKIYCAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBAAEAAACAAgEAnAIBAAIAAAAgCQEAOQkBAD8JAQA/CQEAQaDcCgvzEisBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAMJAAA6CQAAPAkAAD4JAABPCQAAUQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvAkAALwJAAC+CQAAxAkAAMcJAADICQAAywkAAM0JAADXCQAA1wkAAOIJAADjCQAA/gkAAP4JAAABCgAAAwoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC8CgAAvAoAAL4KAADFCgAAxwoAAMkKAADLCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAwsAADwLAAA8CwAAPgsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABiCwAAYwsAAIILAACCCwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA1wsAANcLAAAADAAABAwAADwMAAA8DAAAPgwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvAwAALwMAAC+DAAAxAwAAMYMAADIDAAAygwAAM0MAADVDAAA1gwAAOIMAADjDAAAAA0AAAMNAAA7DQAAPA0AAD4NAABEDQAARg0AAEgNAABKDQAATQ0AAFcNAABXDQAAYg0AAGMNAACBDQAAgw0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAAA/DwAAcQ8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AACsQAAA+EAAAVhAAAFkQAABeEAAAYBAAAGIQAABkEAAAZxAAAG0QAABxEAAAdBAAAIIQAACNEAAAjxAAAI8QAACaEAAAnRAAAF0TAABfEwAAEhcAABUXAAAyFwAANBcAAFIXAABTFwAAchcAAHMXAAC0FwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAKxkAADAZAAA7GQAAFxoAABsaAABVGgAAXhoAAGAaAAB8GgAAfxoAAH8aAACwGgAAzhoAAAAbAAAEGwAANBsAAEQbAABrGwAAcxsAAIAbAACCGwAAoRsAAK0bAADmGwAA8xsAACQcAAA3HAAA0BwAANIcAADUHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD3HAAA+RwAAMAdAAD/HQAA0CAAAPAgAADvLAAA8SwAAH8tAAB/LQAA4C0AAP8tAAAqMAAALzAAAJkwAACaMAAAb6YAAHKmAAB0pgAAfaYAAJ6mAACfpgAA8KYAAPGmAAACqAAAAqgAAAaoAAAGqAAAC6gAAAuoAAAjqAAAJ6gAACyoAAAsqAAAgKgAAIGoAAC0qAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABTqQAAgKkAAIOpAACzqQAAwKkAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAv6oAAMGqAADBqgAA66oAAO+qAAD1qgAA9qoAAOOrAADqqwAA7KsAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AAD9AQEA/QEBAOACAQDgAgEAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQA4CgEAOgoBAD8KAQA/CgEA5QoBAOYKAQAkDQEAJw0BAKsOAQCsDgEARg8BAFAPAQCCDwEAhQ8BAAAQAQACEAEAOBABAEYQAQBwEAEAcBABAHMQAQB0EAEAfxABAIIQAQCwEAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEANBEBAEURAQBGEQEAcxEBAHMRAQCAEQEAghEBALMRAQDAEQEAyREBAMwRAQDOEQEAzxEBACwSAQA3EgEAPhIBAD4SAQDfEgEA6hIBAAATAQADEwEAOxMBADwTAQA+EwEARBMBAEcTAQBIEwEASxMBAE0TAQBXEwEAVxMBAGITAQBjEwEAZhMBAGwTAQBwEwEAdBMBADUUAQBGFAEAXhQBAF4UAQCwFAEAwxQBAK8VAQC1FQEAuBUBAMAVAQDcFQEA3RUBADAWAQBAFgEAqxYBALcWAQAdFwEAKxcBACwYAQA6GAEAMBkBADUZAQA3GQEAOBkBADsZAQA+GQEAQBkBAEAZAQBCGQEAQxkBANEZAQDXGQEA2hkBAOAZAQDkGQEA5BkBAAEaAQAKGgEAMxoBADkaAQA7GgEAPhoBAEcaAQBHGgEAURoBAFsaAQCKGgEAmRoBAC8cAQA2HAEAOBwBAD8cAQCSHAEApxwBAKkcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlx0BAPMeAQD2HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAUW8BAIdvAQCPbwEAkm8BAORvAQDkbwEA8G8BAPFvAQCdvAEAnrwBAADPAQAtzwEAMM8BAEbPAQBl0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAQtIBAETSAQAA2gEANtoBADvaAQBs2gEAddoBAHXaAQCE2gEAhNoBAJvaAQCf2gEAodoBAK/aAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAMOEBADbhAQCu4gEAruIBAOziAQDv4gEA0OgBANboAQBE6QEASukBAAABDgDvAQ4AAQAAAFARAQB2EQEAAQAAAOAeAQD4HgEAQaDvCgtSBwAAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAAAAAAAIAAABACAAAWwgAAF4IAABeCABBgPAKCxMCAAAAwAoBAOYKAQDrCgEA9goBAEGg8AoLswkDAAAAcBwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAAAAAAcAAAAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAAAAAACKAAAAKwAAACsAAAA8AAAAPgAAAF4AAABeAAAAfAAAAHwAAAB+AAAAfgAAAKwAAACsAAAAsQAAALEAAADXAAAA1wAAAPcAAAD3AAAA0AMAANIDAADVAwAA1QMAAPADAADxAwAA9AMAAPYDAAAGBgAACAYAABYgAAAWIAAAMiAAADQgAABAIAAAQCAAAEQgAABEIAAAUiAAAFIgAABhIAAAZCAAAHogAAB+IAAAiiAAAI4gAADQIAAA3CAAAOEgAADhIAAA5SAAAOYgAADrIAAA7yAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGCEAAB0hAAAkIQAAJCEAACghAAApIQAALCEAAC0hAAAvIQAAMSEAADMhAAA4IQAAPCEAAEkhAABLIQAASyEAAJAhAACnIQAAqSEAAK4hAACwIQAAsSEAALYhAAC3IQAAvCEAANshAADdIQAA3SEAAOQhAADlIQAA9CEAAP8iAAAIIwAACyMAACAjAAAhIwAAfCMAAHwjAACbIwAAtSMAALcjAAC3IwAA0CMAANAjAADcIwAA4iMAAKAlAAChJQAAriUAALclAAC8JQAAwSUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAPglAAD/JQAABSYAAAYmAABAJgAAQCYAAEImAABCJgAAYCYAAGMmAABtJgAAbyYAAMAnAAD/JwAAACkAAP8qAAAwKwAARCsAAEcrAABMKwAAKfsAACn7AABh/gAAZv4AAGj+AABo/gAAC/8AAAv/AAAc/wAAHv8AADz/AAA8/wAAPv8AAD7/AABc/wAAXP8AAF7/AABe/wAA4v8AAOL/AADp/wAA7P8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEA/9cBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAQeD5CgvHC7EAAAADCQAAAwkAADsJAAA7CQAAPgkAAEAJAABJCQAATAkAAE4JAABPCQAAggkAAIMJAAC+CQAAwAkAAMcJAADICQAAywkAAMwJAADXCQAA1wkAAAMKAAADCgAAPgoAAEAKAACDCgAAgwoAAL4KAADACgAAyQoAAMkKAADLCgAAzAoAAAILAAADCwAAPgsAAD4LAABACwAAQAsAAEcLAABICwAASwsAAEwLAABXCwAAVwsAAL4LAAC/CwAAwQsAAMILAADGCwAAyAsAAMoLAADMCwAA1wsAANcLAAABDAAAAwwAAEEMAABEDAAAggwAAIMMAAC+DAAAvgwAAMAMAADEDAAAxwwAAMgMAADKDAAAywwAANUMAADWDAAAAg0AAAMNAAA+DQAAQA0AAEYNAABIDQAASg0AAEwNAABXDQAAVw0AAIINAACDDQAAzw0AANENAADYDQAA3w0AAPINAADzDQAAPg8AAD8PAAB/DwAAfw8AACsQAAAsEAAAMRAAADEQAAA4EAAAOBAAADsQAAA8EAAAVhAAAFcQAABiEAAAZBAAAGcQAABtEAAAgxAAAIQQAACHEAAAjBAAAI8QAACPEAAAmhAAAJwQAAAVFwAAFRcAADQXAAA0FwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAAIxkAACYZAAApGQAAKxkAADAZAAAxGQAAMxkAADgZAAAZGgAAGhoAAFUaAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAAAEGwAABBsAADUbAAA1GwAAOxsAADsbAAA9GwAAQRsAAEMbAABEGwAAghsAAIIbAAChGwAAoRsAAKYbAACnGwAAqhsAAKobAADnGwAA5xsAAOobAADsGwAA7hsAAO4bAADyGwAA8xsAACQcAAArHAAANBwAADUcAADhHAAA4RwAAPccAAD3HAAALjAAAC8wAAAjqAAAJKgAACeoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAFKpAABTqQAAg6kAAIOpAAC0qQAAtakAALqpAAC7qQAAvqkAAMCpAAAvqgAAMKoAADOqAAA0qgAATaoAAE2qAAB7qgAAe6oAAH2qAAB9qgAA66oAAOuqAADuqgAA76oAAPWqAAD1qgAA46sAAOSrAADmqwAA56sAAOmrAADqqwAA7KsAAOyrAAAAEAEAABABAAIQAQACEAEAghABAIIQAQCwEAEAshABALcQAQC4EAEALBEBACwRAQBFEQEARhEBAIIRAQCCEQEAsxEBALURAQC/EQEAwBEBAM4RAQDOEQEALBIBAC4SAQAyEgEAMxIBADUSAQA1EgEA4BIBAOISAQACEwEAAxMBAD4TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAVxMBAFcTAQBiEwEAYxMBADUUAQA3FAEAQBQBAEEUAQBFFAEARRQBALAUAQCyFAEAuRQBALkUAQC7FAEAvhQBAMEUAQDBFAEArxUBALEVAQC4FQEAuxUBAL4VAQC+FQEAMBYBADIWAQA7FgEAPBYBAD4WAQA+FgEArBYBAKwWAQCuFgEArxYBALYWAQC2FgEAIBcBACEXAQAmFwEAJhcBACwYAQAuGAEAOBgBADgYAQAwGQEANRkBADcZAQA4GQEAPRkBAD0ZAQBAGQEAQBkBAEIZAQBCGQEA0RkBANMZAQDcGQEA3xkBAOQZAQDkGQEAORoBADkaAQBXGgEAWBoBAJcaAQCXGgEALxwBAC8cAQA+HAEAPhwBAKkcAQCpHAEAsRwBALEcAQC0HAEAtBwBAIodAQCOHQEAkx0BAJQdAQCWHQEAlh0BAPUeAQD2HgEAUW8BAIdvAQDwbwEA8W8BAGXRAQBm0QEAbdEBAHLRAQAAAAAABQAAAIgEAACJBAAAvhoAAL4aAADdIAAA4CAAAOIgAADkIAAAcKYAAHKmAAABAAAAQG4BAJpuAQBBsIULCzMDAAAA4KoAAPaqAADAqwAA7asAAPCrAAD5qwAAAAAAAAIAAAAA6AEAxOgBAMfoAQDW6AEAQfCFCwsnAwAAAKAJAQC3CQEAvAkBAM8JAQDSCQEA/wkBAAEAAACACQEAnwkBAEGghgsLoxUDAAAAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEAAAAAAFABAAAAAwAAbwMAAIMEAACHBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAwQkAAMQJAADNCQAAzQkAAOIJAADjCQAA/gkAAP4JAAABCgAAAgoAADwKAAA8CgAAQQoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIIKAAC8CgAAvAoAAMEKAADFCgAAxwoAAMgKAADNCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAQsAADwLAAA8CwAAPwsAAD8LAABBCwAARAsAAE0LAABNCwAAVQsAAFYLAABiCwAAYwsAAIILAACCCwAAwAsAAMALAADNCwAAzQsAAAAMAAAADAAABAwAAAQMAAA8DAAAPAwAAD4MAABADAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAYgwAAGMMAACBDAAAgQwAALwMAAC8DAAAvwwAAL8MAADGDAAAxgwAAMwMAADNDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAQQ0AAEQNAABNDQAATQ0AAGINAABjDQAAgQ0AAIENAADKDQAAyg0AANINAADUDQAA1g0AANYNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAHEPAAB+DwAAgA8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AAC0QAAAwEAAAMhAAADcQAAA5EAAAOhAAAD0QAAA+EAAAWBAAAFkQAABeEAAAYBAAAHEQAAB0EAAAghAAAIIQAACFEAAAhhAAAI0QAACNEAAAnRAAAJ0QAABdEwAAXxMAABIXAAAUFwAAMhcAADMXAABSFwAAUxcAAHIXAABzFwAAtBcAALUXAAC3FwAAvRcAAMYXAADGFwAAyRcAANMXAADdFwAA3RcAAAsYAAANGAAADxgAAA8YAACFGAAAhhgAAKkYAACpGAAAIBkAACIZAAAnGQAAKBkAADIZAAAyGQAAORkAADsZAAAXGgAAGBoAABsaAAAbGgAAVhoAAFYaAABYGgAAXhoAAGAaAABgGgAAYhoAAGIaAABlGgAAbBoAAHMaAAB8GgAAfxoAAH8aAACwGgAAvRoAAL8aAADOGgAAABsAAAMbAAA0GwAANBsAADYbAAA6GwAAPBsAADwbAABCGwAAQhsAAGsbAABzGwAAgBsAAIEbAACiGwAApRsAAKgbAACpGwAAqxsAAK0bAADmGwAA5hsAAOgbAADpGwAA7RsAAO0bAADvGwAA8RsAACwcAAAzHAAANhwAADccAADQHAAA0hwAANQcAADgHAAA4hwAAOgcAADtHAAA7RwAAPQcAAD0HAAA+BwAAPkcAADAHQAA/x0AANAgAADcIAAA4SAAAOEgAADlIAAA8CAAAO8sAADxLAAAfy0AAH8tAADgLQAA/y0AACowAAAtMAAAmTAAAJowAABvpgAAb6YAAHSmAAB9pgAAnqYAAJ+mAADwpgAA8aYAAAKoAAACqAAABqgAAAaoAAALqAAAC6gAACWoAAAmqAAALKgAACyoAADEqAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABRqQAAgKkAAIKpAACzqQAAs6kAALapAAC5qQAAvKkAAL2pAADlqQAA5akAACmqAAAuqgAAMaoAADKqAAA1qgAANqoAAEOqAABDqgAATKoAAEyqAAB8qgAAfKoAALCqAACwqgAAsqoAALSqAAC3qgAAuKoAAL6qAAC/qgAAwaoAAMGqAADsqgAA7aoAAPaqAAD2qgAA5asAAOWrAADoqwAA6KsAAO2rAADtqwAAHvsAAB77AAAA/gAAD/4AACD+AAAv/gAA/QEBAP0BAQDgAgEA4AIBAHYDAQB6AwEAAQoBAAMKAQAFCgEABgoBAAwKAQAPCgEAOAoBADoKAQA/CgEAPwoBAOUKAQDmCgEAJA0BACcNAQCrDgEArA4BAEYPAQBQDwEAgg8BAIUPAQABEAEAARABADgQAQBGEAEAcBABAHAQAQBzEAEAdBABAH8QAQCBEAEAsxABALYQAQC5EAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEAKxEBAC0RAQA0EQEAcxEBAHMRAQCAEQEAgREBALYRAQC+EQEAyREBAMwRAQDPEQEAzxEBAC8SAQAxEgEANBIBADQSAQA2EgEANxIBAD4SAQA+EgEA3xIBAN8SAQDjEgEA6hIBAAATAQABEwEAOxMBADwTAQBAEwEAQBMBAGYTAQBsEwEAcBMBAHQTAQA4FAEAPxQBAEIUAQBEFAEARhQBAEYUAQBeFAEAXhQBALMUAQC4FAEAuhQBALoUAQC/FAEAwBQBAMIUAQDDFAEAshUBALUVAQC8FQEAvRUBAL8VAQDAFQEA3BUBAN0VAQAzFgEAOhYBAD0WAQA9FgEAPxYBAEAWAQCrFgEAqxYBAK0WAQCtFgEAsBYBALUWAQC3FgEAtxYBAB0XAQAfFwEAIhcBACUXAQAnFwEAKxcBAC8YAQA3GAEAORgBADoYAQA7GQEAPBkBAD4ZAQA+GQEAQxkBAEMZAQDUGQEA1xkBANoZAQDbGQEA4BkBAOAZAQABGgEAChoBADMaAQA4GgEAOxoBAD4aAQBHGgEARxoBAFEaAQBWGgEAWRoBAFsaAQCKGgEAlhoBAJgaAQCZGgEAMBwBADYcAQA4HAEAPRwBAD8cAQA/HAEAkhwBAKccAQCqHAEAsBwBALIcAQCzHAEAtRwBALYcAQAxHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARR0BAEcdAQBHHQEAkB0BAJEdAQCVHQEAlR0BAJcdAQCXHQEA8x4BAPQeAQDwagEA9GoBADBrAQA2awEAT28BAE9vAQCPbwEAkm8BAORvAQDkbwEAnbwBAJ68AQAAzwEALc8BADDPAQBGzwEAZ9EBAGnRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQBC0gEARNIBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBK6QEAAAEOAO8BDgBB0JsLCxMCAAAAABYBAEQWAQBQFgEAWRYBAEHwmwsLMwYAAAAAGAAAARgAAAQYAAAEGAAABhgAABkYAAAgGAAAeBgAAIAYAACqGAAAYBYBAGwWAQBBsJwLC6MJAwAAAEBqAQBeagEAYGoBAGlqAQBuagEAb2oBAAAAAAAFAAAAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBAAAAAAADAAAAABAAAJ8QAADgqQAA/qkAAGCqAAB/qgAAAAAAAIYAAAAwAAAAOQAAALIAAACzAAAAuQAAALkAAAC8AAAAvgAAAGAGAABpBgAA8AYAAPkGAADABwAAyQcAAGYJAABvCQAA5gkAAO8JAAD0CQAA+QkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAHILAAB3CwAA5gsAAPILAABmDAAAbwwAAHgMAAB+DAAA5gwAAO8MAABYDQAAXg0AAGYNAAB4DQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AADMPAABAEAAASRAAAJAQAACZEAAAaRMAAHwTAADuFgAA8BYAAOAXAADpFwAA8BcAAPkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANoZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAgiEAAIUhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAAAHMAAABzAAACEwAAApMAAAODAAADowAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAgpgAAKaYAAOamAADvpgAAMKgAADWoAADQqAAA2agAAACpAAAJqQAA0KkAANmpAADwqQAA+akAAFCqAABZqgAA8KsAAPmrAAAQ/wAAGf8AAAcBAQAzAQEAQAEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQCgBAEAqQQBAFgIAQBfCAEAeQgBAH8IAQCnCAEArwgBAPsIAQD/CAEAFgkBABsJAQC8CQEAvQkBAMAJAQDPCQEA0gkBAP8JAQBACgEASAoBAH0KAQB+CgEAnQoBAJ8KAQDrCgEA7woBAFgLAQBfCwEAeAsBAH8LAQCpCwEArwsBAPoMAQD/DAEAMA0BADkNAQBgDgEAfg4BAB0PAQAmDwEAUQ8BAFQPAQDFDwEAyw8BAFIQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA4REBAPQRAQDwEgEA+RIBAFAUAQBZFAEA0BQBANkUAQBQFgEAWRYBAMAWAQDJFgEAMBcBADsXAQDgGAEA8hgBAFAZAQBZGQEAUBwBAGwcAQBQHQEAWR0BAKAdAQCpHQEAwB8BANQfAQAAJAEAbiQBAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAFtrAQBhawEAgG4BAJZuAQDg0gEA89IBAGDTAQB40wEAztcBAP/XAQBA4QEASeEBAPDiAQD54gEAx+gBAM/oAQBQ6QEAWekBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAPD7AQD5+wEAQeClCwsTAgAAAIAIAQCeCAEApwgBAK8IAQBBgKYLC0IDAAAAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAAAAAAAQAAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAA3xkAQdCmCwsTAgAAAAAUAQBbFAEAXRQBAGEUAQBB8KYLCxICAAAAwAcAAPoHAAD9BwAA/wcAQZCnCwtjDAAAAO4WAADwFgAAYCEAAIIhAACFIQAAiCEAAAcwAAAHMAAAITAAACkwAAA4MAAAOjAAAOamAADvpgAAQAEBAHQBAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQAAJAEAbiQBAEGAqAsL0wVHAAAAsgAAALMAAAC5AAAAuQAAALwAAAC+AAAA9AkAAPkJAAByCwAAdwsAAPALAADyCwAAeAwAAH4MAABYDQAAXg0AAHANAAB4DQAAKg8AADMPAABpEwAAfBMAAPAXAAD5FwAA2hkAANoZAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAXyEAAIkhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAwqAAANagAAAcBAQAzAQEAdQEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBYCAEAXwgBAHkIAQB/CAEApwgBAK8IAQD7CAEA/wgBABYJAQAbCQEAvAkBAL0JAQDACQEAzwkBANIJAQD/CQEAQAoBAEgKAQB9CgEAfgoBAJ0KAQCfCgEA6woBAO8KAQBYCwEAXwsBAHgLAQB/CwEAqQsBAK8LAQD6DAEA/wwBAGAOAQB+DgEAHQ8BACYPAQBRDwEAVA8BAMUPAQDLDwEAUhABAGUQAQDhEQEA9BEBADoXAQA7FwEA6hgBAPIYAQBaHAEAbBwBAMAfAQDUHwEAW2sBAGFrAQCAbgEAlm4BAODSAQDz0gEAYNMBAHjTAQDH6AEAz+gBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAAAAAAASAAAA0P0AAO/9AAD+/wAA//8AAP7/AQD//wEA/v8CAP//AgD+/wMA//8DAP7/BAD//wQA/v8FAP//BQD+/wYA//8GAP7/BwD//wcA/v8IAP//CAD+/wkA//8JAP7/CgD//woA/v8LAP//CwD+/wwA//8MAP7/DQD//w0A/v8OAP//DgD+/w8A//8PAP7/EAD//xAAQeCtCwsTAgAAAOFvAQDhbwEAcLEBAPuyAQBBgK4LC9MBBAAAAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAAQAAAIAWAACcFgAAAQAAAFAcAAB/HAAAAAAAAAMAAACADAEAsgwBAMAMAQDyDAEA+gwBAP8MAQAAAAAAAgAAAAADAQAjAwEALQMBAC8DAQABAAAAgAoBAJ8KAQABAAAAUAMBAHoDAQAAAAAAAgAAAKADAQDDAwEAyAMBANUDAQABAAAAAA8BACcPAQABAAAAYAoBAH8KAQABAAAAAAwBAEgMAQABAAAAcA8BAIkPAQBB4K8LC3IOAAAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAQeCwCwsTAgAAALAEAQDTBAEA2AQBAPsEAQBBgLELCxMCAAAAgAQBAJ0EAQCgBAEAqQQBAEGgsQsLohHpAAAARQMAAEUDAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAAEAYAABoGAABLBgAAVwYAAFkGAABfBgAAcAYAAHAGAADWBgAA3AYAAOEGAADkBgAA5wYAAOgGAADtBgAA7QYAABEHAAARBwAAMAcAAD8HAACmBwAAsAcAABYIAAAXCAAAGwgAACMIAAAlCAAAJwgAACkIAAAsCAAA1AgAAN8IAADjCAAA6QgAAPAIAAADCQAAOgkAADsJAAA+CQAATAkAAE4JAABPCQAAVQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvgkAAMQJAADHCQAAyAkAAMsJAADMCQAA1wkAANcJAADiCQAA4wkAAAEKAAADCgAAPgoAAEIKAABHCgAASAoAAEsKAABMCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC+CgAAxQoAAMcKAADJCgAAywoAAMwKAADiCgAA4woAAPoKAAD8CgAAAQsAAAMLAAA+CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAGILAABjCwAAggsAAIILAAC+CwAAwgsAAMYLAADICwAAygsAAMwLAADXCwAA1wsAAAAMAAADDAAAPgwAAEQMAABGDAAASAwAAEoMAABMDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvgwAAMQMAADGDAAAyAwAAMoMAADMDAAA1QwAANYMAADiDAAA4wwAAAANAAADDQAAPg0AAEQNAABGDQAASA0AAEoNAABMDQAAVw0AAFcNAABiDQAAYw0AAIENAACDDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAATQ4AAE0OAACxDgAAsQ4AALQOAAC5DgAAuw4AALwOAADNDgAAzQ4AAHEPAACBDwAAjQ8AAJcPAACZDwAAvA8AACsQAAA2EAAAOBAAADgQAAA7EAAAPhAAAFYQAABZEAAAXhAAAGAQAABiEAAAZBAAAGcQAABtEAAAcRAAAHQQAACCEAAAjRAAAI8QAACPEAAAmhAAAJ0QAAASFwAAExcAADIXAAAzFwAAUhcAAFMXAAByFwAAcxcAALYXAADIFwAAhRgAAIYYAACpGAAAqRgAACAZAAArGQAAMBkAADgZAAAXGgAAGxoAAFUaAABeGgAAYRoAAHQaAAC/GgAAwBoAAMwaAADOGgAAABsAAAQbAAA1GwAAQxsAAIAbAACCGwAAoRsAAKkbAACsGwAArRsAAOcbAADxGwAAJBwAADYcAADnHQAA9B0AALYkAADpJAAA4C0AAP8tAAB0pgAAe6YAAJ6mAACfpgAAAqgAAAKoAAALqAAAC6gAACOoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAMWoAADFqAAA/6gAAP+oAAAmqQAAKqkAAEepAABSqQAAgKkAAIOpAAC0qQAAv6kAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAvqoAAOuqAADvqgAA9aoAAPWqAADjqwAA6qsAAB77AAAe+wAAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQAkDQEAJw0BAKsOAQCsDgEAABABAAIQAQA4EAEARRABAHMQAQB0EAEAghABAIIQAQCwEAEAuBABAMIQAQDCEAEAABEBAAIRAQAnEQEAMhEBAEURAQBGEQEAgBEBAIIRAQCzEQEAvxEBAM4RAQDPEQEALBIBADQSAQA3EgEANxIBAD4SAQA+EgEA3xIBAOgSAQAAEwEAAxMBAD4TAQBEEwEARxMBAEgTAQBLEwEATBMBAFcTAQBXEwEAYhMBAGMTAQA1FAEAQRQBAEMUAQBFFAEAsBQBAMEUAQCvFQEAtRUBALgVAQC+FQEA3BUBAN0VAQAwFgEAPhYBAEAWAQBAFgEAqxYBALUWAQAdFwEAKhcBACwYAQA4GAEAMBkBADUZAQA3GQEAOBkBADsZAQA8GQEAQBkBAEAZAQBCGQEAQhkBANEZAQDXGQEA2hkBAN8ZAQDkGQEA5BkBAAEaAQAKGgEANRoBADkaAQA7GgEAPhoBAFEaAQBbGgEAihoBAJcaAQAvHAEANhwBADgcAQA+HAEAkhwBAKccAQCpHAEAthwBADEdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBBHQEAQx0BAEMdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlh0BAPMeAQD2HgEAT28BAE9vAQBRbwEAh28BAI9vAQCSbwEA8G8BAPFvAQCevAEAnrwBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQBH6QEAR+kBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAAAAAALAAAATwMAAE8DAABfEQAAYBEAALQXAAC1FwAAZSAAAGUgAABkMQAAZDEAAKD/AACg/wAA8P8AAPj/AAAAAA4AAAAOAAIADgAfAA4AgAAOAP8ADgDwAQ4A/w8OAAAAAAAZAAAAvgkAAL4JAADXCQAA1wkAAD4LAAA+CwAAVwsAAFcLAAC+CwAAvgsAANcLAADXCwAAwgwAAMIMAADVDAAA1gwAAD4NAAA+DQAAVw0AAFcNAADPDQAAzw0AAN8NAADfDQAANRsAADUbAAAMIAAADCAAAC4wAAAvMAAAnv8AAJ//AAA+EwEAPhMBAFcTAQBXEwEAsBQBALAUAQC9FAEAvRQBAK8VAQCvFQEAMBkBADAZAQBl0QEAZdEBAG7RAQBy0QEAIAAOAH8ADgAAAAAABAAAALcAAAC3AAAAhwMAAIcDAABpEwAAcRMAANoZAADaGQBB0MILCyIEAAAAhRgAAIYYAAAYIQAAGCEAAC4hAAAuIQAAmzAAAJwwAEGAwwsLwwEYAAAAqgAAAKoAAAC6AAAAugAAALACAAC4AgAAwAIAAMECAADgAgAA5AIAAEUDAABFAwAAegMAAHoDAAAsHQAAah0AAHgdAAB4HQAAmx0AAL8dAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAABwIQAAfyEAANAkAADpJAAAfCwAAH0sAACcpgAAnaYAAHCnAABwpwAA+KcAAPmnAABcqwAAX6sAAIAHAQCABwEAgwcBAIUHAQCHBwEAsAcBALIHAQC6BwEAQdDECwuzCIYAAABeAAAAXgAAANADAADSAwAA1QMAANUDAADwAwAA8QMAAPQDAAD1AwAAFiAAABYgAAAyIAAANCAAAEAgAABAIAAAYSAAAGQgAAB9IAAAfiAAAI0gAACOIAAA0CAAANwgAADhIAAA4SAAAOUgAADmIAAA6yAAAO8gAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAoIQAAKSEAACwhAAAtIQAALyEAADEhAAAzIQAAOCEAADwhAAA/IQAARSEAAEkhAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACnIQAAqSEAAK0hAACwIQAAsSEAALYhAAC3IQAAvCEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAANshAADdIQAA3SEAAOQhAADlIQAACCMAAAsjAAC0IwAAtSMAALcjAAC3IwAA0CMAANAjAADiIwAA4iMAAKAlAAChJQAAriUAALYlAAC8JQAAwCUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAAUmAAAGJgAAQCYAAEAmAABCJgAAQiYAAGAmAABjJgAAbSYAAG4mAADFJwAAxicAAOYnAADvJwAAgykAAJgpAADYKQAA2ykAAPwpAAD9KQAAYf4AAGH+AABj/gAAY/4AAGj+AABo/gAAPP8AADz/AAA+/wAAPv8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAM7XAQD/1wEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAQZDNCwtnBQAAAGAhAABvIQAAtiQAAM8kAAAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAABQAAAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQABAAAAYAgBAH8IAQBBgM4LC+IBHAAAACEAAAAvAAAAOgAAAEAAAABbAAAAXgAAAGAAAABgAAAAewAAAH4AAAChAAAApwAAAKkAAACpAAAAqwAAAKwAAACuAAAArgAAALAAAACxAAAAtgAAALYAAAC7AAAAuwAAAL8AAAC/AAAA1wAAANcAAAD3AAAA9wAAABAgAAAnIAAAMCAAAD4gAABBIAAAUyAAAFUgAABeIAAAkCEAAF8kAAAAJQAAdScAAJQnAAD/KwAAAC4AAH8uAAABMAAAAzAAAAgwAAAgMAAAMDAAADAwAAA+/QAAP/0AAEX+AABG/gBB8M8LCzcFAAAACQAAAA0AAAAgAAAAIAAAAIUAAACFAAAADiAAAA8gAAAoIAAAKSAAAAEAAADAGgEA+BoBAEGw0AsLMgYAAABfAAAAXwAAAD8gAABAIAAAVCAAAFQgAAAz/gAANP4AAE3+AABP/gAAP/8AAD//AEHw0AsLggYTAAAALQAAAC0AAACKBQAAigUAAL4FAAC+BQAAABQAAAAUAAAGGAAABhgAABAgAAAVIAAAFy4AABcuAAAaLgAAGi4AADouAAA7LgAAQC4AAEAuAABdLgAAXS4AABwwAAAcMAAAMDAAADAwAACgMAAAoDAAADH+AAAy/gAAWP4AAFj+AABj/gAAY/4AAA3/AAAN/wAArQ4BAK0OAQAAAAAATAAAACkAAAApAAAAXQAAAF0AAAB9AAAAfQAAADsPAAA7DwAAPQ8AAD0PAACcFgAAnBYAAEYgAABGIAAAfiAAAH4gAACOIAAAjiAAAAkjAAAJIwAACyMAAAsjAAAqIwAAKiMAAGknAABpJwAAaycAAGsnAABtJwAAbScAAG8nAABvJwAAcScAAHEnAABzJwAAcycAAHUnAAB1JwAAxicAAMYnAADnJwAA5ycAAOknAADpJwAA6ycAAOsnAADtJwAA7ScAAO8nAADvJwAAhCkAAIQpAACGKQAAhikAAIgpAACIKQAAiikAAIopAACMKQAAjCkAAI4pAACOKQAAkCkAAJApAACSKQAAkikAAJQpAACUKQAAlikAAJYpAACYKQAAmCkAANkpAADZKQAA2ykAANspAAD9KQAA/SkAACMuAAAjLgAAJS4AACUuAAAnLgAAJy4AACkuAAApLgAAVi4AAFYuAABYLgAAWC4AAFouAABaLgAAXC4AAFwuAAAJMAAACTAAAAswAAALMAAADTAAAA0wAAAPMAAADzAAABEwAAARMAAAFTAAABUwAAAXMAAAFzAAABkwAAAZMAAAGzAAABswAAAeMAAAHzAAAD79AAA+/QAAGP4AABj+AAA2/gAANv4AADj+AAA4/gAAOv4AADr+AAA8/gAAPP4AAD7+AAA+/gAAQP4AAED+AABC/gAAQv4AAET+AABE/gAASP4AAEj+AABa/gAAWv4AAFz+AABc/gAAXv4AAF7+AAAJ/wAACf8AAD3/AAA9/wAAXf8AAF3/AABg/wAAYP8AAGP/AABj/wBBgNcLC3MKAAAAuwAAALsAAAAZIAAAGSAAAB0gAAAdIAAAOiAAADogAAADLgAAAy4AAAUuAAAFLgAACi4AAAouAAANLgAADS4AAB0uAAAdLgAAIS4AACEuAAABAAAAQKgAAHeoAAACAAAAAAkBABsJAQAfCQEAHwkBAEGA2AsLpxMLAAAAqwAAAKsAAAAYIAAAGCAAABsgAAAcIAAAHyAAAB8gAAA5IAAAOSAAAAIuAAACLgAABC4AAAQuAAAJLgAACS4AAAwuAAAMLgAAHC4AABwuAAAgLgAAIC4AAAAAAAC5AAAAIQAAACMAAAAlAAAAJwAAACoAAAAqAAAALAAAACwAAAAuAAAALwAAADoAAAA7AAAAPwAAAEAAAABcAAAAXAAAAKEAAAChAAAApwAAAKcAAAC2AAAAtwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIkFAADABQAAwAUAAMMFAADDBQAAxgUAAMYFAADzBQAA9AUAAAkGAAAKBgAADAYAAA0GAAAbBgAAGwYAAB0GAAAfBgAAagYAAG0GAADUBgAA1AYAAAAHAAANBwAA9wcAAPkHAAAwCAAAPggAAF4IAABeCAAAZAkAAGUJAABwCQAAcAkAAP0JAAD9CQAAdgoAAHYKAADwCgAA8AoAAHcMAAB3DAAAhAwAAIQMAAD0DQAA9A0AAE8OAABPDgAAWg4AAFsOAAAEDwAAEg8AABQPAAAUDwAAhQ8AAIUPAADQDwAA1A8AANkPAADaDwAAShAAAE8QAAD7EAAA+xAAAGATAABoEwAAbhYAAG4WAADrFgAA7RYAADUXAAA2FwAA1BcAANYXAADYFwAA2hcAAAAYAAAFGAAABxgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAFiAAABcgAAAgIAAAJyAAADAgAAA4IAAAOyAAAD4gAABBIAAAQyAAAEcgAABRIAAAUyAAAFMgAABVIAAAXiAAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAABLgAABi4AAAguAAALLgAACy4AAA4uAAAWLgAAGC4AABkuAAAbLgAAGy4AAB4uAAAfLgAAKi4AAC4uAAAwLgAAOS4AADwuAAA/LgAAQS4AAEEuAABDLgAATy4AAFIuAABULgAAATAAAAMwAAA9MAAAPTAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAABD+AAAW/gAAGf4AABn+AAAw/gAAMP4AAEX+AABG/gAASf4AAEz+AABQ/gAAUv4AAFT+AABX/gAAX/4AAGH+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAAB/8AAAr/AAAK/wAADP8AAAz/AAAO/wAAD/8AABr/AAAb/wAAH/8AACD/AAA8/wAAPP8AAGH/AABh/wAAZP8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQBVDwEAWQ8BAIYPAQCJDwEARxABAE0QAQC7EAEAvBABAL4QAQDBEAEAQBEBAEMRAQB0EQEAdREBAMURAQDIEQEAzREBAM0RAQDbEQEA2xEBAN0RAQDfEQEAOBIBAD0SAQCpEgEAqRIBAEsUAQBPFAEAWhQBAFsUAQBdFAEAXRQBAMYUAQDGFAEAwRUBANcVAQBBFgEAQxYBAGAWAQBsFgEAuRYBALkWAQA8FwEAPhcBADsYAQA7GAEARBkBAEYZAQDiGQEA4hkBAD8aAQBGGgEAmhoBAJwaAQCeGgEAohoBAEEcAQBFHAEAcBwBAHEcAQD3HgEA+B4BAP8fAQD/HwEAcCQBAHQkAQDxLwEA8i8BAG5qAQBvagEA9WoBAPVqAQA3awEAO2sBAERrAQBEawEAl24BAJpuAQDibwEA4m8BAJ+8AQCfvAEAh9oBAIvaAQBe6QEAX+kBAAAAAAAHAAAAAAYAAAUGAADdBgAA3QYAAA8HAAAPBwAAkAgAAJEIAADiCAAA4ggAAL0QAQC9EAEAzRABAM0QAQAAAAAATwAAACgAAAAoAAAAWwAAAFsAAAB7AAAAewAAADoPAAA6DwAAPA8AADwPAACbFgAAmxYAABogAAAaIAAAHiAAAB4gAABFIAAARSAAAH0gAAB9IAAAjSAAAI0gAAAIIwAACCMAAAojAAAKIwAAKSMAACkjAABoJwAAaCcAAGonAABqJwAAbCcAAGwnAABuJwAAbicAAHAnAABwJwAAcicAAHInAAB0JwAAdCcAAMUnAADFJwAA5icAAOYnAADoJwAA6CcAAOonAADqJwAA7CcAAOwnAADuJwAA7icAAIMpAACDKQAAhSkAAIUpAACHKQAAhykAAIkpAACJKQAAiykAAIspAACNKQAAjSkAAI8pAACPKQAAkSkAAJEpAACTKQAAkykAAJUpAACVKQAAlykAAJcpAADYKQAA2CkAANopAADaKQAA/CkAAPwpAAAiLgAAIi4AACQuAAAkLgAAJi4AACYuAAAoLgAAKC4AAEIuAABCLgAAVS4AAFUuAABXLgAAVy4AAFkuAABZLgAAWy4AAFsuAAAIMAAACDAAAAowAAAKMAAADDAAAAwwAAAOMAAADjAAABAwAAAQMAAAFDAAABQwAAAWMAAAFjAAABgwAAAYMAAAGjAAABowAAAdMAAAHTAAAD/9AAA//QAAF/4AABf+AAA1/gAANf4AADf+AAA3/gAAOf4AADn+AAA7/gAAO/4AAD3+AAA9/gAAP/4AAD/+AABB/gAAQf4AAEP+AABD/gAAR/4AAEf+AABZ/gAAWf4AAFv+AABb/gAAXf4AAF3+AAAI/wAACP8AADv/AAA7/wAAW/8AAFv/AABf/wAAX/8AAGL/AABi/wAAAAAAAAMAAACACwEAkQsBAJkLAQCcCwEAqQsBAK8LAQAAAAAADQAAACIAAAAiAAAAJwAAACcAAACrAAAAqwAAALsAAAC7AAAAGCAAAB8gAAA5IAAAOiAAAEIuAABCLgAADDAAAA8wAAAdMAAAHzAAAEH+AABE/gAAAv8AAAL/AAAH/wAAB/8AAGL/AABj/wAAAAAAAAMAAACALgAAmS4AAJsuAADzLgAAAC8AANUvAAABAAAA5vEBAP/xAQBBsOsLCxICAAAAMKkAAFOpAABfqQAAX6kAQdDrCwsSAgAAAKAWAADqFgAA7hYAAPgWAEHw6wsL0w7qAAAAJAAAACQAAAArAAAAKwAAADwAAAA+AAAAXgAAAF4AAABgAAAAYAAAAHwAAAB8AAAAfgAAAH4AAACiAAAApgAAAKgAAACpAAAArAAAAKwAAACuAAAAsQAAALQAAAC0AAAAuAAAALgAAADXAAAA1wAAAPcAAAD3AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAAD2AwAA9gMAAIIEAACCBAAAjQUAAI8FAAAGBgAACAYAAAsGAAALBgAADgYAAA8GAADeBgAA3gYAAOkGAADpBgAA/QYAAP4GAAD2BwAA9gcAAP4HAAD/BwAAiAgAAIgIAADyCQAA8wkAAPoJAAD7CQAA8QoAAPEKAABwCwAAcAsAAPMLAAD6CwAAfwwAAH8MAABPDQAATw0AAHkNAAB5DQAAPw4AAD8OAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAA2xcAANsXAABAGQAAQBkAAN4ZAAD/GQAAYRsAAGobAAB0GwAAfBsAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAEQgAABEIAAAUiAAAFIgAAB6IAAAfCAAAIogAACMIAAAoCAAAMAgAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAYIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAAQCEAAEQhAABKIQAATSEAAE8hAABPIQAAiiEAAIshAACQIQAAByMAAAwjAAAoIwAAKyMAACYkAABAJAAASiQAAJwkAADpJAAAACUAAGcnAACUJwAAxCcAAMcnAADlJwAA8CcAAIIpAACZKQAA1ykAANwpAAD7KQAA/ikAAHMrAAB2KwAAlSsAAJcrAAD/KwAA5SwAAOosAABQLgAAUS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAABDAAAAQwAAASMAAAEzAAACAwAAAgMAAANjAAADcwAAA+MAAAPzAAAJswAACcMAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAAACnAAAWpwAAIKcAACGnAACJpwAAiqcAACioAAArqAAANqgAADmoAAB3qgAAeaoAAFurAABbqwAAaqsAAGurAAAp+wAAKfsAALL7AADC+wAAQP0AAE/9AADP/QAAz/0AAPz9AAD//QAAYv4AAGL+AABk/gAAZv4AAGn+AABp/gAABP8AAAT/AAAL/wAAC/8AABz/AAAe/wAAPv8AAD7/AABA/wAAQP8AAFz/AABc/wAAXv8AAF7/AADg/wAA5v8AAOj/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA8R8BADxrAQA/awEARWsBAEVrAQCcvAEAnLwBAFDPAQDDzwEAANABAPXQAQAA0QEAJtEBACnRAQBk0QEAatEBAGzRAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEAANMBAFbTAQDB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAP/iAQD/4gEArOwBAKzsAQCw7AEAsOwBAC7tAQAu7QEA8O4BAPHuAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA1/YBAN32AQDs9gEA8PYBAPz2AQAA9wEAc/cBAID3AQDY9wEA4PcBAOv3AQDw9wEA8PcBAAD4AQAL+AEAEPgBAEf4AQBQ+AEAWfgBAGD4AQCH+AEAkPgBAK34AQCw+AEAsfgBAAD5AQBT+gEAYPoBAG36AQBw+gEAdPoBAHj6AQB8+gEAgPoBAIb6AQCQ+gEArPoBALD6AQC6+gEAwPoBAMX6AQDQ+gEA2foBAOD6AQDn+gEA8PoBAPb6AQAA+wEAkvsBAJT7AQDK+wEAQdD6CwsSAgAAAAAIAAAtCAAAMAgAAD4IAEHw+gsLEgIAAACAqAAAxagAAM6oAADZqABBkPsLC8MGFQAAACQAAAAkAAAAogAAAKUAAACPBQAAjwUAAAsGAAALBgAA/gcAAP8HAADyCQAA8wkAAPsJAAD7CQAA8QoAAPEKAAD5CwAA+QsAAD8OAAA/DgAA2xcAANsXAACgIAAAwCAAADioAAA4qAAA/P0AAPz9AABp/gAAaf4AAAT/AAAE/wAA4P8AAOH/AADl/wAA5v8AAN0fAQDgHwEA/+IBAP/iAQCw7AEAsOwBAAAAAABPAAAAIQAAACEAAAAuAAAALgAAAD8AAAA/AAAAiQUAAIkFAAAdBgAAHwYAANQGAADUBgAAAAcAAAIHAAD5BwAA+QcAADcIAAA3CAAAOQgAADkIAAA9CAAAPggAAGQJAABlCQAAShAAAEsQAABiEwAAYhMAAGcTAABoEwAAbhYAAG4WAAA1FwAANhcAAAMYAAADGAAACRgAAAkYAABEGQAARRkAAKgaAACrGgAAWhsAAFsbAABeGwAAXxsAAH0bAAB+GwAAOxwAADwcAAB+HAAAfxwAADwgAAA9IAAARyAAAEkgAAAuLgAALi4AADwuAAA8LgAAUy4AAFQuAAACMAAAAjAAAP+kAAD/pAAADqYAAA+mAADzpgAA86YAAPemAAD3pgAAdqgAAHeoAADOqAAAz6gAAC+pAAAvqQAAyKkAAMmpAABdqgAAX6oAAPCqAADxqgAA66sAAOurAABS/gAAUv4AAFb+AABX/gAAAf8AAAH/AAAO/wAADv8AAB//AAAf/wAAYf8AAGH/AABWCgEAVwoBAFUPAQBZDwEAhg8BAIkPAQBHEAEASBABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAORIBADsSAQA8EgEAqRIBAKkSAQBLFAEATBQBAMIVAQDDFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQBBHAEAQhwBAPceAQD4HgEAbmoBAG9qAQD1agEA9WoBADdrAQA4awEARGsBAERrAQCYbgEAmG4BAJ+8AQCfvAEAiNoBAIjaAQABAAAAgBEBAN8RAQABAAAAUAQBAH8EAQBB4IEMCxMCAAAAgBUBALUVAQC4FQEA3RUBAEGAggwLkwcDAAAAANgBAIvaAQCb2gEAn9oBAKHaAQCv2gEAAAAAAA0AAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPQNAADhEQEA9BEBAAAAAAAfAAAAXgAAAF4AAABgAAAAYAAAAKgAAACoAAAArwAAAK8AAAC0AAAAtAAAALgAAAC4AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAACICAAAiAgAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAJswAACcMAAAAKcAABanAAAgpwAAIacAAImnAACKpwAAW6sAAFurAABqqwAAa6sAALL7AADC+wAAPv8AAD7/AABA/wAAQP8AAOP/AADj/wAA+/MBAP/zAQAAAAAAQAAAACsAAAArAAAAPAAAAD4AAAB8AAAAfAAAAH4AAAB+AAAArAAAAKwAAACxAAAAsQAAANcAAADXAAAA9wAAAPcAAAD2AwAA9gMAAAYGAAAIBgAARCAAAEQgAABSIAAAUiAAAHogAAB8IAAAiiAAAIwgAAAYIQAAGCEAAEAhAABEIQAASyEAAEshAACQIQAAlCEAAJohAACbIQAAoCEAAKAhAACjIQAAoyEAAKYhAACmIQAAriEAAK4hAADOIQAAzyEAANIhAADSIQAA1CEAANQhAAD0IQAA/yIAACAjAAAhIwAAfCMAAHwjAACbIwAAsyMAANwjAADhIwAAtyUAALclAADBJQAAwSUAAPglAAD/JQAAbyYAAG8mAADAJwAAxCcAAMcnAADlJwAA8CcAAP8nAAAAKQAAgikAAJkpAADXKQAA3CkAAPspAAD+KQAA/yoAADArAABEKwAARysAAEwrAAAp+wAAKfsAAGL+AABi/gAAZP4AAGb+AAAL/wAAC/8AABz/AAAe/wAAXP8AAFz/AABe/wAAXv8AAOL/AADi/wAA6f8AAOz/AADB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAPDuAQDx7gEAQaCJDAvTC7oAAACmAAAApgAAAKkAAACpAAAArgAAAK4AAACwAAAAsAAAAIIEAACCBAAAjQUAAI4FAAAOBgAADwYAAN4GAADeBgAA6QYAAOkGAAD9BgAA/gYAAPYHAAD2BwAA+gkAAPoJAABwCwAAcAsAAPMLAAD4CwAA+gsAAPoLAAB/DAAAfwwAAE8NAABPDQAAeQ0AAHkNAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAAQBkAAEAZAADeGQAA/xkAAGEbAABqGwAAdBsAAHwbAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAXIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAASiEAAEohAABMIQAATSEAAE8hAABPIQAAiiEAAIshAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACtIQAAryEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAAPMhAAAAIwAAByMAAAwjAAAfIwAAIiMAACgjAAArIwAAeyMAAH0jAACaIwAAtCMAANsjAADiIwAAJiQAAEAkAABKJAAAnCQAAOkkAAAAJQAAtiUAALglAADAJQAAwiUAAPclAAAAJgAAbiYAAHAmAABnJwAAlCcAAL8nAAAAKAAA/ygAAAArAAAvKwAARSsAAEYrAABNKwAAcysAAHYrAACVKwAAlysAAP8rAADlLAAA6iwAAFAuAABRLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAAEMAAABDAAABIwAAATMAAAIDAAACAwAAA2MAAANzAAAD4wAAA/MAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAACioAAArqAAANqgAADeoAAA5qAAAOagAAHeqAAB5qgAAQP0AAE/9AADP/QAAz/0AAP39AAD//QAA5P8AAOT/AADo/wAA6P8AAO3/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA3B8BAOEfAQDxHwEAPGsBAD9rAQBFawEARWsBAJy8AQCcvAEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAGTRAQBq0QEAbNEBAIPRAQCE0QEAjNEBAKnRAQCu0QEA6tEBAADSAQBB0gEARdIBAEXSAQAA0wEAVtMBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAKzsAQCs7AEALu0BAC7tAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA+vMBAAD0AQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQBBgJUMC/ICIAAAAGkAAABqAAAALwEAAC8BAABJAgAASQIAAGgCAABoAgAAnQIAAJ0CAACyAgAAsgIAAPMDAADzAwAAVgQAAFYEAABYBAAAWAQAAGIdAABiHQAAlh0AAJYdAACkHQAApB0AAKgdAACoHQAALR4AAC0eAADLHgAAyx4AAHEgAABxIAAASCEAAEkhAAB8LAAAfCwAACLUAQAj1AEAVtQBAFfUAQCK1AEAi9QBAL7UAQC/1AEA8tQBAPPUAQAm1QEAJ9UBAFrVAQBb1QEAjtUBAI/VAQDC1QEAw9UBAPbVAQD31QEAKtYBACvWAQBe1gEAX9YBAJLWAQCT1gEAGt8BABrfAQABAAAAMA8BAFkPAQACAAAA0BABAOgQAQDwEAEA+RABAAEAAABQGgEAohoBAAIAAACAGwAAvxsAAMAcAADHHAAAAQAAAACoAAAsqAAABAAAAAAHAAANBwAADwcAAEoHAABNBwAATwcAAGAIAABqCABBgJgMCxICAAAAABcAABUXAAAfFwAAHxcAQaCYDAsyAwAAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAAAAAAACAAAAUBkAAG0ZAABwGQAAdBkAQeCYDAtCBQAAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAAAAAAAAAgAAAICqAADCqgAA26oAAN+qAEGwmQwLEwIAAACAFgEAuRYBAMAWAQDJFgEAQdCZDAuTARIAAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA+gsAAMAfAQDxHwEA/x8BAP8fAQBB8JoMCxMCAAAAcGoBAL5qAQDAagEAyWoBAEGQmwwLIwQAAADgbwEA4G8BAABwAQD3hwEAAIgBAP+KAQAAjQEACI0BAEHAmwwL1gcNAAAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAH8MAAAAAAAAawAAACEAAAAhAAAALAAAACwAAAAuAAAALgAAADoAAAA7AAAAPwAAAD8AAAB+AwAAfgMAAIcDAACHAwAAiQUAAIkFAADDBQAAwwUAAAwGAAAMBgAAGwYAABsGAAAdBgAAHwYAANQGAADUBgAAAAcAAAoHAAAMBwAADAcAAPgHAAD5BwAAMAgAAD4IAABeCAAAXggAAGQJAABlCQAAWg4AAFsOAAAIDwAACA8AAA0PAAASDwAAShAAAEsQAABhEwAAaBMAAG4WAABuFgAA6xYAAO0WAAA1FwAANhcAANQXAADWFwAA2hcAANoXAAACGAAABRgAAAgYAAAJGAAARBkAAEUZAACoGgAAqxoAAFobAABbGwAAXRsAAF8bAAB9GwAAfhsAADscAAA/HAAAfhwAAH8cAAA8IAAAPSAAAEcgAABJIAAALi4AAC4uAAA8LgAAPC4AAEEuAABBLgAATC4AAEwuAABOLgAATy4AAFMuAABULgAAATAAAAIwAAD+pAAA/6QAAA2mAAAPpgAA86YAAPemAAB2qAAAd6gAAM6oAADPqAAAL6kAAC+pAADHqQAAyakAAF2qAABfqgAA36oAAN+qAADwqgAA8aoAAOurAADrqwAAUP4AAFL+AABU/gAAV/4AAAH/AAAB/wAADP8AAAz/AAAO/wAADv8AABr/AAAb/wAAH/8AAB//AABh/wAAYf8AAGT/AABk/wAAnwMBAJ8DAQDQAwEA0AMBAFcIAQBXCAEAHwkBAB8JAQBWCgEAVwoBAPAKAQD1CgEAOgsBAD8LAQCZCwEAnAsBAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAPBIBAKkSAQCpEgEASxQBAE0UAQBaFAEAWxQBAMIVAQDFFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQChGgEAohoBAEEcAQBDHAEAcRwBAHEcAQD3HgEA+B4BAHAkAQB0JAEAbmoBAG9qAQD1agEA9WoBADdrAQA5awEARGsBAERrAQCXbgEAmG4BAJ+8AQCfvAEAh9oBAIraAQABAAAAgAcAALEHAEGgowwLEgIAAAABDgAAOg4AAEAOAABbDgBBwKMMC5MBBwAAAAAPAABHDwAASQ8AAGwPAABxDwAAlw8AAJkPAAC8DwAAvg8AAMwPAADODwAA1A8AANkPAADaDwAAAAAAAAMAAAAwLQAAZy0AAG8tAABwLQAAfy0AAH8tAAAAAAAAAgAAAIAUAQDHFAEA0BQBANkUAQABAAAAkOIBAK7iAQACAAAAgAMBAJ0DAQCfAwEAnwMBAEHgpAwL8ywPAAAAADQAAL9NAAAATgAA/58AAA76AAAP+gAAEfoAABH6AAAT+gAAFPoAAB/6AAAf+gAAIfoAACH6AAAj+gAAJPoAACf6AAAp+gAAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAAAAwBKEwMAAAAAALgCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwAAN8MAADfDAAA5AwAAOUMAADwDAAA8AwAAPMMAAD/DAAADQ0AAA0NAAARDQAAEQ0AAEUNAABFDQAASQ0AAEkNAABQDQAAUw0AAGQNAABlDQAAgA0AAIANAACEDQAAhA0AAJcNAACZDQAAsg0AALINAAC8DQAAvA0AAL4NAAC/DQAAxw0AAMkNAADLDQAAzg0AANUNAADVDQAA1w0AANcNAADgDQAA5Q0AAPANAADxDQAA9Q0AAAAOAAA7DgAAPg4AAFwOAACADgAAgw4AAIMOAACFDgAAhQ4AAIsOAACLDgAApA4AAKQOAACmDgAApg4AAL4OAAC/DgAAxQ4AAMUOAADHDgAAxw4AAM4OAADPDgAA2g4AANsOAADgDgAA/w4AAEgPAABIDwAAbQ8AAHAPAACYDwAAmA8AAL0PAAC9DwAAzQ8AAM0PAADbDwAA/w8AAMYQAADGEAAAyBAAAMwQAADOEAAAzxAAAEkSAABJEgAAThIAAE8SAABXEgAAVxIAAFkSAABZEgAAXhIAAF8SAACJEgAAiRIAAI4SAACPEgAAsRIAALESAAC2EgAAtxIAAL8SAAC/EgAAwRIAAMESAADGEgAAxxIAANcSAADXEgAAERMAABETAAAWEwAAFxMAAFsTAABcEwAAfRMAAH8TAACaEwAAnxMAAPYTAAD3EwAA/hMAAP8TAACdFgAAnxYAAPkWAAD/FgAAFhcAAB4XAAA3FwAAPxcAAFQXAABfFwAAbRcAAG0XAABxFwAAcRcAAHQXAAB/FwAA3hcAAN8XAADqFwAA7xcAAPoXAAD/FwAAGhgAAB8YAAB5GAAAfxgAAKsYAACvGAAA9hgAAP8YAAAfGQAAHxkAACwZAAAvGQAAPBkAAD8ZAABBGQAAQxkAAG4ZAABvGQAAdRkAAH8ZAACsGQAArxkAAMoZAADPGQAA2xkAAN0ZAAAcGgAAHRoAAF8aAABfGgAAfRoAAH4aAACKGgAAjxoAAJoaAACfGgAArhoAAK8aAADPGgAA/xoAAE0bAABPGwAAfxsAAH8bAAD0GwAA+xsAADgcAAA6HAAAShwAAEwcAACJHAAAjxwAALscAAC8HAAAyBwAAM8cAAD7HAAA/xwAABYfAAAXHwAAHh8AAB8fAABGHwAARx8AAE4fAABPHwAAWB8AAFgfAABaHwAAWh8AAFwfAABcHwAAXh8AAF4fAAB+HwAAfx8AALUfAAC1HwAAxR8AAMUfAADUHwAA1R8AANwfAADcHwAA8B8AAPEfAAD1HwAA9R8AAP8fAAD/HwAAZSAAAGUgAAByIAAAcyAAAI8gAACPIAAAnSAAAJ8gAADBIAAAzyAAAPEgAAD/IAAAjCEAAI8hAAAnJAAAPyQAAEskAABfJAAAdCsAAHUrAACWKwAAlisAAPQsAAD4LAAAJi0AACYtAAAoLQAALC0AAC4tAAAvLQAAaC0AAG4tAABxLQAAfi0AAJctAACfLQAApy0AAKctAACvLQAAry0AALctAAC3LQAAvy0AAL8tAADHLQAAxy0AAM8tAADPLQAA1y0AANctAADfLQAA3y0AAF4uAAB/LgAAmi4AAJouAAD0LgAA/y4AANYvAADvLwAA/C8AAP8vAABAMAAAQDAAAJcwAACYMAAAADEAAAQxAAAwMQAAMDEAAI8xAACPMQAA5DEAAO8xAAAfMgAAHzIAAI2kAACPpAAAx6QAAM+kAAAspgAAP6YAAPimAAD/pgAAy6cAAM+nAADSpwAA0qcAANSnAADUpwAA2qcAAPGnAAAtqAAAL6gAADqoAAA/qAAAeKgAAH+oAADGqAAAzagAANqoAADfqAAAVKkAAF6pAAB9qQAAf6kAAM6pAADOqQAA2qkAAN2pAAD/qQAA/6kAADeqAAA/qgAATqoAAE+qAABaqgAAW6oAAMOqAADaqgAA96oAAACrAAAHqwAACKsAAA+rAAAQqwAAF6sAAB+rAAAnqwAAJ6sAAC+rAAAvqwAAbKsAAG+rAADuqwAA76sAAPqrAAD/qwAApNcAAK/XAADH1wAAytcAAPzXAAD/+AAAbvoAAG/6AADa+gAA//oAAAf7AAAS+wAAGPsAABz7AAA3+wAAN/sAAD37AAA9+wAAP/sAAD/7AABC+wAAQvsAAEX7AABF+wAAw/sAANL7AACQ/QAAkf0AAMj9AADO/QAA0P0AAO/9AAAa/gAAH/4AAFP+AABT/gAAZ/4AAGf+AABs/gAAb/4AAHX+AAB1/gAA/f4AAP7+AAAA/wAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD4/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQDDEAEAzBABAM4QAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQAvNAEAOTQBAP9DAQBHRgEA/2cBADlqAQA/agEAX2oBAF9qAQBqagEAbWoBAL9qAQC/agEAymoBAM9qAQDuagEA72oBAPZqAQD/agEARmsBAE9rAQBaawEAWmsBAGJrAQBiawEAeGsBAHxrAQCQawEAP24BAJtuAQD/bgEAS28BAE5vAQCIbwEAjm8BAKBvAQDfbwEA5W8BAO9vAQDybwEA/28BAPiHAQD/hwEA1owBAP+MAQAJjQEA768BAPSvAQD0rwEA/K8BAPyvAQD/rwEA/68BACOxAQBPsQEAU7EBAGOxAQBosQEAb7EBAPyyAQD/uwEAa7wBAG+8AQB9vAEAf7wBAIm8AQCPvAEAmrwBAJu8AQCkvAEA/84BAC7PAQAvzwEAR88BAE/PAQDEzwEA/88BAPbQAQD/0AEAJ9EBACjRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAAAADgACAA4AHwAOAIAADgD/AA4A8AEOAP//EAABAAAAAKUAACumAAAEAAAACxgAAA0YAAAPGAAADxgAAAD+AAAP/gAAAAEOAO8BDgBB4NEMC0MIAAAAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAEGw0gwLEwIAAADA4gEA+eIBAP/iAQD/4gEAQdDSDAsTAgAAAKAYAQDyGAEA/xgBAP8YAQBB8NIMC5JZ+wIAADAAAAA5AAAAQQAAAFoAAABfAAAAXwAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALcAAAC3AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB7AwAAfQMAAH8DAAB/AwAAhgMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIMEAACHBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAaRMAAHETAACAEwAAjxMAAKATAAD1EwAA+BMAAP0TAAABFAAAbBYAAG8WAAB/FgAAgRYAAJoWAACgFgAA6hYAAO4WAAD4FgAAABcAABUXAAAfFwAANBcAAEAXAABTFwAAYBcAAGwXAABuFwAAcBcAAHIXAABzFwAAgBcAANMXAADXFwAA1xcAANwXAADdFwAA4BcAAOkXAAALGAAADRgAAA8YAAAZGAAAIBgAAHgYAACAGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAgGQAAKxkAADAZAAA7GQAARhkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAAAaAAAbGgAAIBoAAF4aAABgGgAAfBoAAH8aAACJGgAAkBoAAJkaAACnGgAApxoAALAaAAC9GgAAvxoAAM4aAAAAGwAATBsAAFAbAABZGwAAaxsAAHMbAACAGwAA8xsAAAAcAAA3HAAAQBwAAEkcAABNHAAAfRwAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAANAcAADSHAAA1BwAAPocAAAAHQAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAD8gAABAIAAAVCAAAFQgAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAADQIAAA3CAAAOEgAADhIAAA5SAAAPAgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABghAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAAAAsAADkLAAA6ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABvLQAAfy0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAA4C0AAP8tAAAFMAAABzAAACEwAAAvMAAAMTAAADUwAAA4MAAAPDAAAEEwAACWMAAAmTAAAJowAACdMAAAnzAAAKEwAAD6MAAA/DAAAP8wAAAFMQAALzEAADExAACOMQAAoDEAAL8xAADwMQAA/zEAAAA0AAC/TQAAAE4AAIykAADQpAAA/aQAAAClAAAMpgAAEKYAACumAABApgAAb6YAAHSmAAB9pgAAf6YAAPGmAAAXpwAAH6cAACKnAACIpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAJ6gAACyoAAAsqAAAQKgAAHOoAACAqAAAxagAANCoAADZqAAA4KgAAPeoAAD7qAAA+6gAAP2oAAAtqQAAMKkAAFOpAABgqQAAfKkAAICpAADAqQAAz6kAANmpAADgqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAGCqAAB2qgAAeqoAAMKqAADbqgAA3aoAAOCqAADvqgAA8qoAAPaqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADqqwAA7KsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAAD5AABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAACj7AAAq+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAALH7AADT+wAAXfwAAGT8AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD5/QAAAP4AAA/+AAAg/gAAL/4AADP+AAA0/gAATf4AAE/+AABx/gAAcf4AAHP+AABz/gAAd/4AAHf+AAB5/gAAef4AAHv+AAB7/gAAff4AAH3+AAB//gAA/P4AABD/AAAZ/wAAIf8AADr/AAA//wAAP/8AAEH/AABa/wAAZv8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQD9AQEA/QEBAIACAQCcAgEAoAIBANACAQDgAgEA4AIBAAADAQAfAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAoAMBAMMDAQDIAwEAzwMBANEDAQDVAwEAAAQBAJ0EAQCgBAEAqQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAOAoBADoKAQA/CgEAPwoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDmCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAJw0BADANAQA5DQEAgA4BAKkOAQCrDgEArA4BALAOAQCxDgEAAA8BABwPAQAnDwEAJw8BADAPAQBQDwEAcA8BAIUPAQCwDwEAxA8BAOAPAQD2DwEAABABAEYQAQBmEAEAdRABAH8QAQC6EAEAwhABAMIQAQDQEAEA6BABAPAQAQD5EAEAABEBADQRAQA2EQEAPxEBAEQRAQBHEQEAUBEBAHMRAQB2EQEAdhEBAIARAQDEEQEAyREBAMwRAQDOEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEANxIBAD4SAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqBIBALASAQDqEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBADsTAQBEEwEARxMBAEgTAQBLEwEATRMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAGYTAQBsEwEAcBMBAHQTAQAAFAEAShQBAFAUAQBZFAEAXhQBAGEUAQCAFAEAxRQBAMcUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDAFQEA2BUBAN0VAQAAFgEAQBYBAEQWAQBEFgEAUBYBAFkWAQCAFgEAuBYBAMAWAQDJFgEAABcBABoXAQAdFwEAKxcBADAXAQA5FwEAQBcBAEYXAQAAGAEAOhgBAKAYAQDpGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEANRkBADcZAQA4GQEAOxkBAEMZAQBQGQEAWRkBAKAZAQCnGQEAqhkBANcZAQDaGQEA4RkBAOMZAQDkGQEAABoBAD4aAQBHGgEARxoBAFAaAQCZGgEAnRoBAJ0aAQCwGgEA+BoBAAAcAQAIHAEAChwBADYcAQA4HAEAQBwBAFAcAQBZHAEAchwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAB0BAAYdAQAIHQEACR0BAAsdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBHHQEAUB0BAFkdAQBgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCYHQEAoB0BAKkdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAGBqAQBpagEAcGoBAL5qAQDAagEAyWoBANBqAQDtagEA8GoBAPRqAQAAawEANmsBAEBrAQBDawEAUGsBAFlrAQBjawEAd2sBAH1rAQCPawEAQG4BAH9uAQAAbwEASm8BAE9vAQCHbwEAj28BAJ9vAQDgbwEA4W8BAONvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnbwBAJ68AQAAzwEALc8BADDPAQBGzwEAZdEBAGnRAQBt0QEActEBAHvRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAztcBAP/XAQAA2gEANtoBADvaAQBs2gEAddoBAHXaAQCE2gEAhNoBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEATuEBAJDiAQCu4gEAwOIBAPniAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEA0OgBANboAQAA6QEAS+kBAFDpAQBZ6QEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEA8PsBAPn7AQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAAABDgDvAQ4AAAAAAI8CAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABwAwAAdAMAAHYDAAB3AwAAewMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAA0AUAAOoFAADvBQAA8gUAACAGAABKBgAAbgYAAG8GAABxBgAA0wYAANUGAADVBgAA5QYAAOYGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAA9AcAAPUHAAD6BwAA+gcAAAAIAAAVCAAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAAAQJAAA5CQAAPQkAAD0JAABQCQAAUAkAAFgJAABhCQAAcQkAAIAJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAPAJAADxCQAA/AkAAPwJAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAFkKAABcCgAAXgoAAF4KAAByCgAAdAoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAAC9CgAA0AoAANAKAADgCgAA4QoAAPkKAAD5CgAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAANALAADQCwAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAAPQwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAIAMAACADAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC9DAAA3QwAAN4MAADgDAAA4QwAAPEMAADyDAAABA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAABODQAATg0AAFQNAABWDQAAXw0AAGENAAB6DQAAfw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAAABDgAAMA4AADIOAAAyDgAAQA4AAEYOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsg4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANcXAADXFwAA3BcAANwXAAAgGAAAeBgAAIAYAACoGAAAqhgAAKoYAACwGAAA9RgAAAAZAAAeGQAAUBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAAAAGgAAFhoAACAaAABUGgAApxoAAKcaAAAFGwAAMxsAAEUbAABMGwAAgxsAAKAbAACuGwAArxsAALobAADlGwAAABwAACMcAABNHAAATxwAAFocAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA6RwAAOwcAADuHAAA8xwAAPUcAAD2HAAA+hwAAPocAAAAHQAAvx0AAAAeAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAYIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAAALAAA5CwAAOssAADuLAAA8iwAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABvLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB/pgAAnaYAAKCmAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAGoAAADqAAABagAAAeoAAAKqAAADKgAACKoAABAqAAAc6gAAIKoAACzqAAA8qgAAPeoAAD7qAAA+6gAAP2oAAD+qAAACqkAACWpAAAwqQAARqkAAGCpAAB8qQAAhKkAALKpAADPqQAAz6kAAOCpAADkqQAA5qkAAO+pAAD6qQAA/qkAAACqAAAoqgAAQKoAAEKqAABEqgAAS6oAAGCqAAB2qgAAeqoAAHqqAAB+qgAAr6oAALGqAACxqgAAtaoAALaqAAC5qgAAvaoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADqqgAA8qoAAPSqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADiqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAAo+wAAKvsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AACx+wAA0/sAAF38AABk/AAAPf0AAFD9AACP/QAAkv0AAMf9AADw/QAA+f0AAHH+AABx/gAAc/4AAHP+AAB3/gAAd/4AAHn+AAB5/gAAe/4AAHv+AAB9/gAAff4AAH/+AAD8/gAAIf8AADr/AABB/wAAWv8AAGb/AACd/wAAoP8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEASgMBAFADAQB1AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBwagEAvmoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAUG8BAFBvAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4QEALOEBADfhAQA94QEATuEBAE7hAQCQ4gEAreIBAMDiAQDr4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAADpAQBD6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAAAAAAADAAAAgA4BAKkOAQCrDgEArQ4BALAOAQCxDgEAAAAAAAIAAAAAoAAAjKQAAJCkAADGpABBkKwNC2YIAAAAIAAAACAAAACgAAAAoAAAAIAWAACAFgAAACAAAAogAAAoIAAAKSAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAAAEAAAAAGgEARxoBAAEAAAAoIAAAKCAAAAEAAAApIAAAKSAAQYCtDQvDHQcAAAAgAAAAIAAAAKAAAACgAAAAgBYAAIAWAAAAIAAACiAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAAAEAAACAAAAA/wAAAAEAAAAAAQAAfwEAAAEAAACAAQAATwIAAAEAAABQAgAArwIAAAEAAACwAgAA/wIAAAEAAAAAAwAAbwMAAAEAAABwAwAA/wMAAAEAAAAABAAA/wQAAAEAAAAABQAALwUAAAEAAAAwBQAAjwUAAAEAAACQBQAA/wUAAAEAAAAABgAA/wYAAAEAAAAABwAATwcAAAEAAABQBwAAfwcAAAEAAACABwAAvwcAAAEAAADABwAA/wcAAAEAAAAACAAAPwgAAAEAAABACAAAXwgAAAEAAABgCAAAbwgAAAEAAABwCAAAnwgAAAEAAACgCAAA/wgAAAEAAAAACQAAfwkAAAEAAACACQAA/wkAAAEAAAAACgAAfwoAAAEAAACACgAA/woAAAEAAAAACwAAfwsAAAEAAACACwAA/wsAAAEAAAAADAAAfwwAAAEAAACADAAA/wwAAAEAAAAADQAAfw0AAAEAAACADQAA/w0AAAEAAAAADgAAfw4AAAEAAACADgAA/w4AAAEAAAAADwAA/w8AAAEAAAAAEAAAnxAAAAEAAACgEAAA/xAAAAEAAAAAEQAA/xEAAAEAAAAAEgAAfxMAAAEAAACAEwAAnxMAAAEAAACgEwAA/xMAAAEAAAAAFAAAfxYAAAEAAACAFgAAnxYAAAEAAACgFgAA/xYAAAEAAAAAFwAAHxcAAAEAAAAgFwAAPxcAAAEAAABAFwAAXxcAAAEAAABgFwAAfxcAAAEAAACAFwAA/xcAAAEAAAAAGAAArxgAAAEAAACwGAAA/xgAAAEAAAAAGQAATxkAAAEAAABQGQAAfxkAAAEAAACAGQAA3xkAAAEAAADgGQAA/xkAAAEAAAAAGgAAHxoAAAEAAAAgGgAArxoAAAEAAACwGgAA/xoAAAEAAAAAGwAAfxsAAAEAAACAGwAAvxsAAAEAAADAGwAA/xsAAAEAAAAAHAAATxwAAAEAAACAHAAAjxwAAAEAAACQHAAAvxwAAAEAAADAHAAAzxwAAAEAAADQHAAA/xwAAAEAAAAAHQAAfx0AAAEAAACAHQAAvx0AAAEAAADAHQAA/x0AAAEAAAAAHgAA/x4AAAEAAAAAHwAA/x8AAAEAAAAAIAAAbyAAAAEAAABwIAAAnyAAAAEAAACgIAAAzyAAAAEAAADQIAAA/yAAAAEAAAAAIQAATyEAAAEAAABQIQAAjyEAAAEAAACQIQAA/yEAAAEAAAAAIgAA/yIAAAEAAAAAIwAA/yMAAAEAAAAAJAAAPyQAAAEAAABAJAAAXyQAAAEAAABgJAAA/yQAAAEAAAAAJQAAfyUAAAEAAACAJQAAnyUAAAEAAACgJQAA/yUAAAEAAAAAJgAA/yYAAAEAAAAAJwAAvycAAAEAAADAJwAA7ycAAAEAAADwJwAA/ycAAAEAAAAAKQAAfykAAAEAAACAKQAA/ykAAAEAAAAAKgAA/yoAAAEAAAAAKwAA/ysAAAEAAAAALAAAXywAAAEAAABgLAAAfywAAAEAAACALAAA/ywAAAEAAAAALQAALy0AAAEAAAAwLQAAfy0AAAEAAACALQAA3y0AAAEAAADgLQAA/y0AAAEAAAAALgAAfy4AAAEAAACALgAA/y4AAAEAAAAALwAA3y8AAAEAAADwLwAA/y8AAAEAAAAAMAAAPzAAAAEAAABAMAAAnzAAAAEAAACgMAAA/zAAAAEAAAAAMQAALzEAAAEAAAAwMQAAjzEAAAEAAACQMQAAnzEAAAEAAACgMQAAvzEAAAEAAADAMQAA7zEAAAEAAADwMQAA/zEAAAEAAAAAMgAA/zIAAAEAAAAAMwAA/zMAAAEAAAAANAAAv00AAAEAAADATQAA/00AAAEAAAAATgAA/58AAAEAAAAAoAAAj6QAAAEAAACQpAAAz6QAAAEAAADQpAAA/6QAAAEAAAAApQAAP6YAAAEAAABApgAAn6YAAAEAAACgpgAA/6YAAAEAAAAApwAAH6cAAAEAAAAgpwAA/6cAAAEAAAAAqAAAL6gAAAEAAAAwqAAAP6gAAAEAAABAqAAAf6gAAAEAAACAqAAA36gAAAEAAADgqAAA/6gAAAEAAAAAqQAAL6kAAAEAAAAwqQAAX6kAAAEAAABgqQAAf6kAAAEAAACAqQAA36kAAAEAAADgqQAA/6kAAAEAAAAAqgAAX6oAAAEAAABgqgAAf6oAAAEAAACAqgAA36oAAAEAAADgqgAA/6oAAAEAAAAAqwAAL6sAAAEAAAAwqwAAb6sAAAEAAABwqwAAv6sAAAEAAADAqwAA/6sAAAEAAAAArAAAr9cAAAEAAACw1wAA/9cAAAEAAAAA2AAAf9sAAAEAAACA2wAA/9sAAAEAAAAA3AAA/98AAAEAAAAA4AAA//gAAAEAAAAA+QAA//oAAAEAAAAA+wAAT/sAAAEAAABQ+wAA//0AAAEAAAAA/gAAD/4AAAEAAAAQ/gAAH/4AAAEAAAAg/gAAL/4AAAEAAAAw/gAAT/4AAAEAAABQ/gAAb/4AAAEAAABw/gAA//4AAAEAAAAA/wAA7/8AAAEAAADw/wAA//8AAAEAAAAAAAEAfwABAAEAAACAAAEA/wABAAEAAAAAAQEAPwEBAAEAAABAAQEAjwEBAAEAAACQAQEAzwEBAAEAAADQAQEA/wEBAAEAAACAAgEAnwIBAAEAAACgAgEA3wIBAAEAAADgAgEA/wIBAAEAAAAAAwEALwMBAAEAAAAwAwEATwMBAAEAAABQAwEAfwMBAAEAAACAAwEAnwMBAAEAAACgAwEA3wMBAAEAAACABAEArwQBAAEAAACwBAEA/wQBAAEAAAAABQEALwUBAAEAAAAwBQEAbwUBAAEAAABwBQEAvwUBAAEAAAAABgEAfwcBAAEAAACABwEAvwcBAAEAAAAACAEAPwgBAAEAAABACAEAXwgBAAEAAACACAEArwgBAAEAAADgCAEA/wgBAAEAAAAACQEAHwkBAAEAAAAgCQEAPwkBAAEAAACgCQEA/wkBAAEAAAAACgEAXwoBAAEAAADACgEA/woBAAEAAAAACwEAPwsBAAEAAABACwEAXwsBAAEAAABgCwEAfwsBAAEAAACACwEArwsBAAEAAAAADAEATwwBAAEAAACADAEA/wwBAAEAAAAADQEAPw0BAAEAAABgDgEAfw4BAAEAAACADgEAvw4BAAEAAAAADwEALw8BAAEAAAAwDwEAbw8BAAEAAABwDwEArw8BAAEAAACwDwEA3w8BAAEAAADgDwEA/w8BAAEAAAAAEAEAfxABAAEAAACAEAEAzxABAAEAAADQEAEA/xABAAEAAAAAEQEATxEBAAEAAABQEQEAfxEBAAEAAADgEQEA/xEBAAEAAAAAEgEATxIBAAEAAACAEgEArxIBAAEAAACwEgEA/xIBAAEAAAAAEwEAfxMBAAEAAAAAFAEAfxQBAAEAAACAFAEA3xQBAAEAAACAFQEA/xUBAAEAAAAAFgEAXxYBAAEAAABgFgEAfxYBAAEAAACAFgEAzxYBAAEAAAAAFwEATxcBAAEAAAAAGAEATxgBAAEAAACgGAEA/xgBAAEAAAAAGQEAXxkBAAEAAACgGQEA/xkBAAEAAAAAGgEATxoBAAEAAABQGgEArxoBAAEAAACwGgEAvxoBAAEAAADAGgEA/xoBAAEAAAAAHAEAbxwBAAEAAABwHAEAvxwBAAEAAAAAHQEAXx0BAAEAAABgHQEArx0BAAEAAADgHgEA/x4BAAEAAACwHwEAvx8BAAEAAADAHwEA/x8BAAEAAAAAIAEA/yMBAAEAAAAAJAEAfyQBAAEAAACAJAEATyUBAAEAAACQLwEA/y8BAAEAAAAAMAEALzQBAAEAAAAwNAEAPzQBAAEAAAAARAEAf0YBAAEAAAAAaAEAP2oBAAEAAABAagEAb2oBAAEAAABwagEAz2oBAAEAAADQagEA/2oBAAEAAAAAawEAj2sBAAEAAABAbgEAn24BAAEAAAAAbwEAn28BAAEAAADgbwEA/28BAAEAAAAAcAEA/4cBAAEAAAAAiAEA/4oBAAEAAAAAiwEA/4wBAAEAAAAAjQEAf40BAAEAAADwrwEA/68BAAEAAAAAsAEA/7ABAAEAAAAAsQEAL7EBAAEAAAAwsQEAb7EBAAEAAABwsQEA/7IBAAEAAAAAvAEAn7wBAAEAAACgvAEAr7wBAAEAAAAAzwEAz88BAAEAAAAA0AEA/9ABAAEAAAAA0QEA/9EBAAEAAAAA0gEAT9IBAAEAAADg0gEA/9IBAAEAAAAA0wEAX9MBAAEAAABg0wEAf9MBAAEAAAAA1AEA/9cBAAEAAAAA2AEAr9oBAAEAAAAA3wEA/98BAAEAAAAA4AEAL+ABAAEAAAAA4QEAT+EBAAEAAACQ4gEAv+IBAAEAAADA4gEA/+IBAAEAAADg5wEA/+cBAAEAAAAA6AEA3+gBAAEAAAAA6QEAX+kBAAEAAABw7AEAv+wBAAEAAAAA7QEAT+0BAAEAAAAA7gEA/+4BAAEAAAAA8AEAL/ABAAEAAAAw8AEAn/ABAAEAAACg8AEA//ABAAEAAAAA8QEA//EBAAEAAAAA8gEA//IBAAEAAAAA8wEA//UBAAEAAAAA9gEAT/YBAAEAAABQ9gEAf/YBAAEAAACA9gEA//YBAAEAAAAA9wEAf/cBAAEAAACA9wEA//cBAAEAAAAA+AEA//gBAAEAAAAA+QEA//kBAAEAAAAA+gEAb/oBAAEAAABw+gEA//oBAAEAAAAA+wEA//sBAAEAAAAAAAIA36YCAAEAAAAApwIAP7cCAAEAAABAtwIAH7gCAAEAAAAguAIAr84CAAEAAACwzgIA7+sCAAEAAAAA+AIAH/oCAAEAAAAAAAMATxMDAAEAAAAAAA4AfwAOAAEAAAAAAQ4A7wEOAAEAAAAAAA8A//8PAAEAAAAAABAA//8QAEHQyg0LtJQCMwAAAOAvAADvLwAAAAIBAH8CAQDgAwEA/wMBAMAFAQD/BQEAwAcBAP8HAQCwCAEA3wgBAEAJAQB/CQEAoAoBAL8KAQCwCwEA/wsBAFAMAQB/DAEAQA0BAF8OAQDADgEA/w4BAFASAQB/EgEAgBMBAP8TAQDgFAEAfxUBANAWAQD/FgEAUBcBAP8XAQBQGAEAnxgBAGAZAQCfGQEAABsBAP8bAQDAHAEA/xwBALAdAQDfHgEAAB8BAK8fAQBQJQEAjy8BAEA0AQD/QwEAgEYBAP9nAQCQawEAP24BAKBuAQD/bgEAoG8BAN9vAQCAjQEA768BAACzAQD/uwEAsLwBAP/OAQDQzwEA/88BAFDSAQDf0gEAgNMBAP/TAQCw2gEA/94BADDgAQD/4AEAUOEBAI/iAQAA4wEA3+cBAODoAQD/6AEAYOkBAG/sAQDA7AEA/+wBAFDtAQD/7QEAAO8BAP/vAQAA/AEA//8BAOCmAgD/pgIA8OsCAP/3AgAg+gIA//8CAFATAwD//w0AgAAOAP8ADgDwAQ4A//8OAAAAAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAADzAP//AAD//wAA//8AAP//AAD//wAA//8AAAUAgQAKAA8B//8AAAwADgH//wAA//8AAP//AAAPAJ4A//8AAP//AAASADYAFQCPABoADgEfAJIA//8AAP//AAD//wAAJAAxAS4AKAD//wAAMQCGADQAfQA4AH0A//8AAD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVhdGlvbgBlZ3lwAGR1cGxveWFuAGluYm94ZHJhd2luZwBlZ3lwdGlhbmhpZXJvZ2x5cGhzAGluc3VwcGxlbWVudGFyeXByaXZhdGV1c2VhcmVhYgAAACEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRgAADoFiACQARMAOQZfBGADBwBhBQgAEAJnAAMAEACWBeYEOAC1AEYBfQINBRoDIQWpBQoABAAHACEYIRghGCEYAAA6BYgAkAETADkGXwRgAwcAYQUIABACZwADABAAlgXmBDgAtQBGAX0CDQUaAyEFqQUKAAQABwAhGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGABBkN8PC8UECQAHAAQAwwCSAAEAMAGcB5wHnAecB5wHnAcLAJwHnAecB00AnAecB0kAnAecB5wHnAdSAJwHnAecBwgAnAcCAAMAnAdPAEwCLwYUASgGRgIlBj4CcAY4AiAGAAAYBjICDgYpAgQGlgNtBpAD/wUPAvwFAQLCBSMC7gUYAucF+AHUBSEDTAbpAn8FkgJqBosCZwZcAj0GgQJiBlQC3gV7AlsGbQJTBoUEGgKqBBIC1wV8AZMFUwDNBYoDIgXbAYkBgQCFBZwDnwWzBUsFBwWVBDgEbgReAUQDJwXuAUMGGAAjBLoC3AWwA8cFoAObBYMD2gRaAxcARwUbAT8FuAG7BS8BtwXVAKIEzQCLBPMAeAS/ADoFyABnBP4DYgRNA0cEpQEzBMIALASjASMEzwCyBSQB4gQ/AKwFmgRDBmUCPwMBANQCMgWqATEFngEgBRAABQBbARcE5gEGAI8BowXaAbMBhAFwAiEA8AI3ARgFJQERBdwAxQLKAA0FeQEEBVAB+gTQAe8EWwAPBHkACwRRAAIERwAxA6QA2gKaAL0CbwCUAWUA9wOHAK8CMwChAnAB8QMKAWACPgDbA/4A8AP2AOMEuADfBJoC9QTIAdUEvwHtA+YDHAHZA9gEugPOBMIEuARgBcQErwDxBSwDkgAFA/kC0AOPAMgDYwEGAigAmQWDAH8E+wDuAJwHdwNpAJAFnAeMBV8AgQVLAHkFwQBvBRcAQQScB8MDVAB1BQ4AaAU1AD8G5QA3BgQBYgUtADAGIwEYAz8AQeDjDwuGBAQAAgAPAHwAAQAJACUFoAMdBYwDGgX4AFsA9QDFBdgAYwCrAMIFGgAVBXUD9QQ7A5AApwDBBXoAvQXpAgAAGwCxBSAApwXDAYMAmwELAwMAAAPPAJ0CzwEFAF8ABgTGAPsClQD7A6MF8wOgBT8CXwXzAiQA6AI3BBMFmAUIBUoElASPBY0D6AMsAtQCIQHCAMkChwW8AlQFrwLZBRgCswUQAnIC/QGTA+YBYwOvAcIClgJoAMYBMgOCAk4A4APPAAAFZgDuBLUCQQDlACoBjwAtAOIEnAF8BZIBZwUZAGAEeAIrAmYCWAVRAR0ARwFOBUkC2wTbAUgF8gBnA74D2gAHAywCxQQjA1UEpwDJA/AA0QSuAEkFggCeBXcArgQGANIFBwDIBU0HPAVfAD0BAAA5BU0HuwNCAKIAsgATATkAhQIMAaMCcwGzAx0AEQAGAKkDWgHDBJAEuwR7ACoFVgRgA8MDhwTkAioDZQJnBLUFhAOYAVcDWAJcAtMATAO4AEkDuQBBA7oBNgN8BSMDDgVTBFAELARCBB8DCwEqBCcEZgHXASYE7QECAR8EVAIZBDcC1AOsAB4DmwAaA+cAFgOIAAgETAATA1UAIQR8ABsEdACnAcoAGgS8ABwFigEYBH0B8QN3AbME3ALkA24BqAG5AVkBOgAyARIEfAMkAiMA6AT5AIIBAEHw5w8L9aEBOjk4NzY1NBAyOw87GTs7Ozs7OwM7Ozs7Ozs7Ozs7OzsxMC8uLSwrKjs7Ozs7Ozs7OxU7Ozs7Ozs7Ozs7Ozs7Ozs7Ajs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v////////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACgQBAIkNAQAKLAAALgoBAAoEAAAFBAEACh4AAFoHAQAKHwAAwwgBAAoBAAC6AAEAfQEAAF8BAQB9pwAAQgcBAH2rAABnBgEAhR8AAJoAAgCJHwAAhgACAIkBAABrAgEAhasAAH8GAQCJqwAAiwYBAIUcAAC6AwEAhQwBAMcOAQCJDAEA0w4BAIQsAAC+CgEA8x8AAGAAAgCEHgAAEggBAIQfAACVAAIAhAEAAGgBAQCEpwAAwAwBAISrAAB8BgEA7SwAAFELAQCEHAAAugMBAIQMAQDEDgEATB4AAL0HAQBMHwAAIwkBAEwBAAAXAQEATKcAAHsMAQBXAAAAQQABAEwAAAAfAAEAhKYAABsMAQCQLAAA0AoBAJAEAABUBAEAkB4AACQIAQCQHwAAqQACAJABAAB0AgEAkKcAAMkMAQCQqwAAoAYBAEymAADiCwEAkBwAALYFAQCQDAEA6A4BANsfAABiCQEA2wEAAMIBAQBXbgEA9g8BAExuAQDVDwEA2wAAAJwAAQD7HwAAdAkBAJCmAAAtDAEAsgQBAOkNAQCyLAAAAwsBALIEAACHBAEAsh4AAEgIAQCyHwAA+QACALIBAAC8AgEAsqcAAMUCAQCyqwAABgcBAPWnAAAXDQEAshwAABwGAQCyDAEATg8BALgEAQD7DQEAuCwAAAwLAQC4BAAAkAQBALgeAABRCAEAuB8AAHcJAQC4AQAAmAEBALinAAD2DAEAuKsAABgHAQB3qwAAVQYBALgcAAAuBgEApiwAAPEKAQCmBAAAdQQBAKYeAAA2CAEAph8AAO8AAgCmAQAApwIBAKanAADqDAEApqsAAOIGAQDpHwAAhgkBAKYcAAD4BQEApgwBACoPAQCkLAAA7goBAKQEAAByBAEApB4AADMIAQCkHwAA5QACAKQBAACGAQEApKcAAOcMAQCkqwAA3AYBAPEBAADjAQEApBwAAPIFAQCkDAEAJA8BAKAsAADoCgEAoAQAAGwEAQCgHgAALQgBAKAfAADRAAIAoAEAAIABAQCgpwAA4QwBAKCrAADQBgEA5x8AAC8AAwCgHAAA5gUBAKAMAQAYDwEAriwAAP0KAQCuBAAAgQQBAK4eAABCCAEArh8AAO8AAgCuAQAAswIBAK6nAACPAgEArqsAAPoGAQDjHwAAKQADAK4cAAAQBgEArgwBAEIPAQCsLAAA+goBAKwEAAB+BAEArB4AAD8IAQCsHwAA5QACAKwBAACMAQEArKcAAH0CAQCsqwAA9AYBAPsTAAA5BwEArBwAAAoGAQCsDAEAPA8BAKIsAADrCgEAogQAAG8EAQCiHgAAMAgBAKIfAADbAAIAogEAAIMBAQCipwAA5AwBAKKrAADWBgEAshAAAI0LAQCiHAAA7AUBAKIMAQAeDwEAshgBAIcPAQA9HwAADgkBAD0BAAACAQEAsAQBAOMNAQCwLAAAAAsBALAEAACEBAEAsB4AAEUIAQDdAAAAogABALgQAACfCwEAsKcAAMgCAQCwqwAAAAcBALgYAQCZDwEAsBwAABYGAQCwDAEASA8BANMEAQBMDgEA1x8AAB8AAwDXAQAAvAEBAKYQAABpCwEA0x8AABkAAwDTAQAAtgEBAKYYAQBjDwEAiQMAAOMCAQDTAAAAhwABAKosAAD3CgEAqgQAAHsEAQCqHgAAPAgBAKofAADbAAIApBAAAGMLAQCqpwAAhgIBAKqrAADuBgEApBgBAF0PAQCqHAAABAYBAKoMAQA2DwEAqCwAAPQKAQCoBAAAeAQBAKgeAAA5CAEAqB8AANEAAgCgEAAAVwsBAKinAADtDAEAqKsAAOgGAQCgGAEAUQ8BAKgcAAD+BQEAqAwBADAPAQDQBAEAQw4BANAsAAAwCwEA0AQAALQEAQDQHgAAdQgBAK4QAACBCwEAkAMAABkAAwDQpwAADg0BAK4YAQB7DwEA0AAAAH4AAQC+BAEADQ4BAL4sAAAVCwEAvgQAAJkEAQC+HgAAWggBAL4fAAAFAwEArBAAAHsLAQC+pwAA/wwBAL6rAAAqBwEArBgBAHUPAQC+HAAAOgYBAOssAABOCwEAbywAAFwCAQAKAgAABQIBAOsfAABuCQEAbx8AAEoJAQCiEAAAXQsBAPUDAAD2AgEAZywAAKkKAQCiGAEAVw8BAJgsAADcCgEAmAQAAGAEAQCYHgAAJgACAJgfAACpAAIAmAEAAHcBAQCYpwAA1QwBAJirAAC4BgEA/wMAANoCAQCYHAAAzgUBAJgMAQAADwEAsBAAAIcLAQBzqwAASQYBADf/AABfDQEAsBgBAIEPAQBfHwAAMgkBAKYDAAAwAwEAmKYAADkMAQBMAgAAVgIBAJYsAADZCgEAlgQAAF0EAQCWHgAAEAACAJYfAADHAAIAlgEAAIwCAQCWpwAA0gwBAJarAACyBgEApAMAACoDAQCWHAAAyAUBAJYMAQD6DgEA8QMAACIDAQCqEAAAdQsBAPcfAABDAAMA9wEAAJ4BAQCqGAEAbw8BAF9uAQAOEAEAlqYAADYMAQCgAwAAHgMBAOAsAABICwEA4AQAAMwEAQDgHgAAjQgBAKgQAABvCwEA4AEAAMsBAQBjLAAARQcBAKgYAQBpDwEAvAQBAAcOAQC8LAAAEgsBALwEAACWBAEAvB4AAFcIAQC8HwAAPgACALwBAACbAQEAvKcAAPwMAQC8qwAAJAcBALoEAQABDgEAuiwAAA8LAQC6BAAAkwQBALoeAABUCAEAuh8AAE0JAQDfAAAAGAACALqnAAD5DAEAuqsAAB4HAQC+EAAAsQsBALocAAA0BgEA+R8AAGgJAQC+GAEAqw8BALYEAQD1DQEAtiwAAAkLAQC2BAAAjQQBALYeAABOCAEAth8AADoAAgBlIQAAngkBALanAADzDAEAtqsAABIHAQBvIQAAvAkBALYcAAAoBgEAAgQBAHENAQACLAAAFgoBAAIEAADtAwEAAh4AAE4HAQBnIQAApAkBAAIBAACuAAEAsAMAACkAAwAK6QEALxABAMcEAQAoDgEAYSEAAJIJAQDHBAAApQQBAFkfAAApCQEAxx8AAA8AAwDHAQAApQEBAMenAAAIDQEAWQAAAEcAAQDHAAAAYwABAHUsAAC1CgEAlCwAANYKAQCUBAAAWgQBAJQeAAAqCAEAlB8AAL0AAgCUAQAAgAIBAHWrAABPBgEAlKsAAKwGAQCqAwAAPgMBAJQcAADCBQEAlAwBAPQOAQB9BQEAcw4BAAoFAAALBQEAWW4BAPwPAQBdHwAALwkBAIUFAQCLDgEAiQUBAJcOAQCUpgAAMwwBAKgDAAA3AwEAkiwAANMKAQCSBAAAVwQBAJIeAAAnCAEAkh8AALMAAgD///////8AAJKnAADMDAEAkqsAAKYGAQCEBQEAiA4BAJIcAAC8BQEAkgwBAO4OAQDQAwAA7AIBAGMhAACYCQEAvBAAAKsLAQA9AgAAegEBAF1uAQAIEAEAvBgBAKUPAQCSpgAAMAwBAEwFAACVBQEA////////AAD///////8AALoQAAClCwEA////////AAD5EwAAMwcBALoYAQCfDwEAkAUBAKkOAQCcLAAA4goBAJwEAABmBAEAuCQAAMgJAQCcHwAAvQACAJwBAACYAgEAnKcAANsMAQCcqwAAxAYBALYQAACZCwEAnBwAANoFAQCcDAEADA8BALYYAQCTDwEAhiwAAMEKAQCYAwAAAAMBAIYeAAAVCAEAhh8AAJ8AAgCGAQAAaAIBAIanAADDDAEAhqsAAIIGAQBHAQAAEQEBAIYcAADUAwEAhgwBAMoOAQBHAAAAEgABANkfAACACQEA2QEAAL8BAQD///////8AAMcQAADJCwEA2QAAAJYAAQCGpgAAHgwBAP0TAAA/BwEAdwUBAGQOAQCWAwAA+gIBALQEAQDvDQEAtCwAAAYLAQC0BAAAigQBALQeAABLCAEAtB8AADIAAgBHbgEAxg8BALSnAADwDAEAtKsAAAwHAQD3AwAAegMBALQcAAAiBgEAmiwAAN8KAQCaBAAAYwQBAJoeAAAAAAIAmh8AALMAAgD///////8AAJqnAADYDAEAmqsAAL4GAQDgAwAAXAMBAJocAADUBQEAmgwBAAYPAQA3BQAAVgUBAI4sAADNCgEAjgQAAFEEAQCOHgAAIQgBAI4fAACfAAIAjgEAAMUBAQCapgAAPAwBAI6rAACaBgEAPB4AAKUHAQA8HwAACwkBAI4MAQDiDgEAPKcAAGMMAQCKLAAAxwoBAIoEAABLBAEAih4AABsIAQCKHwAAiwACAIoBAABuAgEAjqYAACoMAQCKqwAAjgYBAPkDAAB0AwEArR8AAOoAAgCKDAEA1g4BAK2nAACVAgEArasAAPcGAQD///////8AAK0cAAANBgEArQwBAD8PAQCCLAAAuwoBAIqmAAAkDAEAgh4AAA8IAQCCHwAAiwACAIIBAABlAQEAgqcAAL0MAQCCqwAAdgYBAG0sAABfAgEAghwAAKwDAQCCDAEAvg4BAG0fAABECQEAcasAAEMGAQCALAAAuAoBAIAEAABIBAEAgB4AAAwIAQCAHwAAgQACAIKmAAAYDAEAgKcAALoMAQCAqwAAcAYBAD0FAABoBQEAgBwAAIYDAQCADAEAuA4BAP///////wAA/QMAANQCAQCNHwAAmgACAJQDAADzAgEAjacAAIMCAQCNqwAAlwYBAICmAAAVDAEAWx8AACwJAQCNDAEA3w4BALQQAACTCwEAxAQBAB8OAQDELAAAHgsBALQYAQCNDwEAxB4AAGMIAQDEHwAANgACAMQBAAChAQEAxKcAAM8MAQD///////8AAMQAAABZAAEAwgQBABkOAQDCLAAAGwsBAJIDAADsAgEAwh4AAGAIAQDCHwAA/QACAL4kAADaCQEAwqcAAAUNAQBbbgEAAhABAMIAAABTAAEAniwAAOUKAQCeBAAAaQQBAJ4eAAAYAAIAnh8AAMcAAgD///////8AAJ6nAADeDAEAnqsAAMoGAQACAgAA+QEBAJ4cAADgBQEAngwBABIPAQCMLAAAygoBAIwEAABOBAEAjB4AAB4IAQCMHwAAlQACADsfAAAICQEAOwEAAP8AAQCMqwAAlAYBAK0QAAB+CwEAnAMAABEDAQCMDAEA3A4BAK0YAQB4DwEA////////AACILAAAxAoBAP///////wAAiB4AABgIAQCIHwAAgQACAIymAAAnDAEA////////AACIqwAAiAYBAIYDAADdAgEAiBwAAN4LAQCIDAEA0A4BAEoeAAC6BwEASh8AAB0JAQBKAQAAFAEBAEqnAAB4DAEAbSEAALYJAQBKAAAAGAABAIimAAAhDAEAHAQBAL8NAQAcLAAAZAoBABwEAACmAwEAHB4AAHUHAQAcHwAA4QgBABwBAADVAAEAcwUBAFgOAQBKpgAA3gsBADX/AABZDQEAFgQBAK0NAQAWLAAAUgoBABYEAACUAwEAFh4AAGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8BAJWrAACvBgEA////////AACVHAAAxQUBAJUMAQD3DgEAkx8AALgAAgCTAQAAegIBAENuAQC6DwEAk6sAAKkGAQD///////8AAJMcAAC/BQEAkwwBAPEOAQDDEAAAwAsBAIMfAACQAAIAOh4AAKIHAQA6HwAABQkBAIOrAAB5BgEAOqcAAGAMAQCDHAAAtgMBAIMMAQDBDgEASR8AABoJAQBJAQAALgACAL8QAAC0CwEAMv8AAFANAQBJAAAAdxABAL8YAQCuDwEAvRAAAK4LAQBGAgAATQIBAH8sAABHAgEAvRgBAKgPAQCBHwAAhgACAIEBAABlAgEAfwEAADQAAQCBqwAAcwYBAH+rAABtBgEAgRwAAI0DAQCBDAEAuw4BAGYEAAAhBAEAZh4AAOUHAQBJbgEAzA8BAGYBAAA+AQEAZqcAAKIMAQD///////8AAFoeAADSBwEAwRAAALoLAQBaAQAALAEBAFqnAACQDAEAhwUBAJEOAQBaAAAASgABAIcFAABpAAIAMAIAADsCAQBYHgAAzwcBAGamAAAJDAEAWAEAACkBAQBYpwAAjQwBAEIeAACuBwEAWAAAAEQAAQBapgAA9wsBAEKnAABsDAEAcgUBAFUOAQBCAAAAAwABAE0FAACYBQEA////////AABabgEA/w8BAM8DAABNAwEAWKYAAPQLAQBEAgAAtgIBAP///////wAAcAUBAE8OAQBCpgAA0gsBAP///////wAAWG4BAPkPAQD///////8AAM4EAQA9DgEAziwAAC0LAQBCbgEAtw8BAM4eAAByCAEA+gQAAPMEAQD6HgAAtAgBAPofAABxCQEA+gEAAO0BAQDOAAAAeAABAEUFAACABQEA9AQAAOoEAQD0HgAAqwgBAPQfAABlAAIA9AEAAOcBAQAyAgAAPgIBAP///////wAAgyEAAL8JAQDsBAAA3gQBAOweAACfCAEA7B8AAIkJAQDsAQAA3QEBAHYDAADRAgEA8iwAAFQLAQDyBAAA5wQBAPIeAACoCAEA8h8AAAEBAgDyAQAA4wEBAOoEAADbBAEA6h4AAJwIAQDqHwAAawkBAOoBAADaAQEAIQQBAM4NAQAhLAAAcwoBACEEAAC2AwEAnwMAABsDAQDoBAAA2AQBAOgeAACZCAEA6B8AAIMJAQDoAQAA1wEBAP///////wAAPh4AAKgHAQA+HwAAEQkBAGYhAAChCQEAPqcAAGYMAQD///////8AAJ0DAAAVAwEA5gQAANUEAQDmHgAAlggBAOYfAABYAAIA5gEAANQBAQDkBAAA0gQBAOQeAACTCAEA5B8AAFAAAgDkAQAA0QEBADYeAACcBwEAmwMAAA4DAQA2AQAA+QABADanAABaDAEA3CwAAEILAQDcBAAAxgQBANweAACHCAEA////////AAD///////8AAEYFAACDBQEAmQMAAAUDAQDcAAAAnwABAEAeAACrBwEAUwAAADQAAQCVAwAA9gIBAECnAABpDAEAOv8AAGgNAQCLHwAAkAACAIsBAABuAQEAi6cAAMYMAQCLqwAAkQYBAJMDAADwAgEA+hMAADYHAQCLDAEA2Q4BAHgEAAA8BAEAeB4AAAAIAQBApgAAzwsBAHgBAACoAAEAU24BAOoPAQB4qwAAWAYBAHQEAAA2BAEAdB4AAPoHAQBAbgEAsQ8BAHQBAABTAQEAQQEAAAgBAQB0qwAATAYBAF4eAADYBwEAQQAAAAAAAQBeAQAAMgEBAF6nAACWDAEAXB4AANUHAQD///////8AAFwBAAAvAQEAXKcAAJMMAQAXBAEAsA0BABcsAABVCgEAFwQAAJcDAQB/AwAAdwMBAEQFAAB9BQEA////////AABepgAA/QsBAHkFAQBqDgEAQW4BALQPAQBDAgAAYgEBAFymAAD6CwEAzSQAAAcKAQBebgEACxABAFEAAAAuAAEAOB4AAJ8HAQA4HwAA/wgBAFxuAQAFEAEAOKcAAF0MAQAdBAEAwg0BAB0sAABnCgEAHQQAAKkDAQDMJAAABAoBAB0fAADkCAEAzyQAAA0KAQA0HgAAmQcBADIFAABHBQEANAEAAPYAAQA0pwAAVwwBAFFuAQDkDwEAKywAAJEKAQArBAAA2AMBAP///////wAAKx8AAPAIAQDLJAAAAQoBAE8AAAAoAAEA////////AAA6AgAAowoBABsEAQC8DQEAGywAAGEKAQAbBAAAowMBAMMkAADpCQEAGx8AAN4IAQD///////8AAMkkAAD7CQEAGQQBALYNAQAZLAAAWwoBABkEAACdAwEA0QQBAEYOAQAZHwAA2AgBAE9uAQDeDwEAvyQAAN0JAQD6AwAAfQMBANEBAACzAQEA////////AAC9JAAA1wkBANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQeGSEQshDgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAEGbkxELAQwAQaeTEQsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHVkxELARAAQeGTEQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGPlBELARIAQZuUEQseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHSlBELDhoAAAAaGhoAAAAAAAAJAEGDlRELARQAQY+VEQsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEG9lRELARYAQcmVEQvsARUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRnwtIGRpZCBub3QgbWF0Y2ggYWZ0ZXIgJS4zZiBtcwoACn5+fn5+fn5+fn5+fn5+fn5+fn5+CkVudGVyaW5nIGZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaDolLipzCgAtIHNlYXJjaE9uaWdSZWdFeHA6ICUuKnMKAExlYXZpbmcgZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoCgB8LSBtYXRjaGVkIGFmdGVyICUuM2YgbXMgYXQgYnl0ZSBvZmZzZXQgJWQKAEHAlxELEVbV9//Se+t32yughwAAAABcAEHolxEL2AHASwQAAQAAAAEAAAD/fwAAABAAABEAAAASAAAAEwAAABQAAAAAAAAABwgAAA0AAAAFAAAAZwgAAAEAAAAFAAAA2QgAAAIAAAAFAAAAIAkAAAMAAAAFAAAALgkAAAQAAAAFAAAAYQkAAAUAAAAFAAAAkAkAAAYAAAAFAAAAqAkAAAcAAAAFAAAA0wkAAAgAAAAFAAAAKgoAAAkAAAAFAAAAMAoAAAoAAAAFAAAAdwoAAAsAAAAGAAAAqAoAAA4AAAAFAAAAyAoAAAwAAAAEAAAAAAAAAP////8AQdCZEQsWiAsAAJ4LAAC3CwAA0gsAAPELAAAVDABB8JkRCyU6DAAAOgwAAJ4LAADxCwAA0gsAAGMMAACXDAAAAAAAQICWmAAUAEGgmhELAVQAQcCaEQuwAccEAAANAAAABQAAAIQGAAABAAAABQAAALkGAAACAAAABQAAACcHAAADAAAABQAAAH4HAAAEAAAABQAAAA0IAAAFAAAABQAAAEMIAAAGAAAABQAAALEIAAAHAAAABQAAAPkIAAAIAAAABQAAADoJAAAJAAAABQAAAFsJAAAKAAAABQAAAIkJAAALAAAABgAAALQJAAAOAAAABQAAAN8JAAAMAAAABAAAAAAAAAD/////AEGAnBEL5YMBYQAAAAEAAABBAAAAYgAAAAEAAABCAAAAYwAAAAEAAABDAAAAZAAAAAEAAABEAAAAZQAAAAEAAABFAAAAZgAAAAEAAABGAAAAZwAAAAEAAABHAAAAaAAAAAEAAABIAAAAagAAAAEAAABKAAAAawAAAAIAAABLAAAAKiEAAGwAAAABAAAATAAAAG0AAAABAAAATQAAAG4AAAABAAAATgAAAG8AAAABAAAATwAAAHAAAAABAAAAUAAAAHEAAAABAAAAUQAAAHIAAAABAAAAUgAAAHMAAAACAAAAUwAAAH8BAAB0AAAAAQAAAFQAAAB1AAAAAQAAAFUAAAB2AAAAAQAAAFYAAAB3AAAAAQAAAFcAAAB4AAAAAQAAAFgAAAB5AAAAAQAAAFkAAAB6AAAAAQAAAFoAAADgAAAAAQAAAMAAAADhAAAAAQAAAMEAAADiAAAAAQAAAMIAAADjAAAAAQAAAMMAAADkAAAAAQAAAMQAAADlAAAAAgAAAMUAAAArIQAA5gAAAAEAAADGAAAA5wAAAAEAAADHAAAA6AAAAAEAAADIAAAA6QAAAAEAAADJAAAA6gAAAAEAAADKAAAA6wAAAAEAAADLAAAA7AAAAAEAAADMAAAA7QAAAAEAAADNAAAA7gAAAAEAAADOAAAA7wAAAAEAAADPAAAA8AAAAAEAAADQAAAA8QAAAAEAAADRAAAA8gAAAAEAAADSAAAA8wAAAAEAAADTAAAA9AAAAAEAAADUAAAA9QAAAAEAAADVAAAA9gAAAAEAAADWAAAA+AAAAAEAAADYAAAA+QAAAAEAAADZAAAA+gAAAAEAAADaAAAA+wAAAAEAAADbAAAA/AAAAAEAAADcAAAA/QAAAAEAAADdAAAA/gAAAAEAAADeAAAA/wAAAAEAAAB4AQAAAQEAAAEAAAAAAQAAAwEAAAEAAAACAQAABQEAAAEAAAAEAQAABwEAAAEAAAAGAQAACQEAAAEAAAAIAQAACwEAAAEAAAAKAQAADQEAAAEAAAAMAQAADwEAAAEAAAAOAQAAEQEAAAEAAAAQAQAAEwEAAAEAAAASAQAAFQEAAAEAAAAUAQAAFwEAAAEAAAAWAQAAGQEAAAEAAAAYAQAAGwEAAAEAAAAaAQAAHQEAAAEAAAAcAQAAHwEAAAEAAAAeAQAAIQEAAAEAAAAgAQAAIwEAAAEAAAAiAQAAJQEAAAEAAAAkAQAAJwEAAAEAAAAmAQAAKQEAAAEAAAAoAQAAKwEAAAEAAAAqAQAALQEAAAEAAAAsAQAALwEAAAEAAAAuAQAAMwEAAAEAAAAyAQAANQEAAAEAAAA0AQAANwEAAAEAAAA2AQAAOgEAAAEAAAA5AQAAPAEAAAEAAAA7AQAAPgEAAAEAAAA9AQAAQAEAAAEAAAA/AQAAQgEAAAEAAABBAQAARAEAAAEAAABDAQAARgEAAAEAAABFAQAASAEAAAEAAABHAQAASwEAAAEAAABKAQAATQEAAAEAAABMAQAATwEAAAEAAABOAQAAUQEAAAEAAABQAQAAUwEAAAEAAABSAQAAVQEAAAEAAABUAQAAVwEAAAEAAABWAQAAWQEAAAEAAABYAQAAWwEAAAEAAABaAQAAXQEAAAEAAABcAQAAXwEAAAEAAABeAQAAYQEAAAEAAABgAQAAYwEAAAEAAABiAQAAZQEAAAEAAABkAQAAZwEAAAEAAABmAQAAaQEAAAEAAABoAQAAawEAAAEAAABqAQAAbQEAAAEAAABsAQAAbwEAAAEAAABuAQAAcQEAAAEAAABwAQAAcwEAAAEAAAByAQAAdQEAAAEAAAB0AQAAdwEAAAEAAAB2AQAAegEAAAEAAAB5AQAAfAEAAAEAAAB7AQAAfgEAAAEAAAB9AQAAgAEAAAEAAABDAgAAgwEAAAEAAACCAQAAhQEAAAEAAACEAQAAiAEAAAEAAACHAQAAjAEAAAEAAACLAQAAkgEAAAEAAACRAQAAlQEAAAEAAAD2AQAAmQEAAAEAAACYAQAAmgEAAAEAAAA9AgAAngEAAAEAAAAgAgAAoQEAAAEAAACgAQAAowEAAAEAAACiAQAApQEAAAEAAACkAQAAqAEAAAEAAACnAQAArQEAAAEAAACsAQAAsAEAAAEAAACvAQAAtAEAAAEAAACzAQAAtgEAAAEAAAC1AQAAuQEAAAEAAAC4AQAAvQEAAAEAAAC8AQAAvwEAAAEAAAD3AQAAxgEAAAIAAADEAQAAxQEAAMkBAAACAAAAxwEAAMgBAADMAQAAAgAAAMoBAADLAQAAzgEAAAEAAADNAQAA0AEAAAEAAADPAQAA0gEAAAEAAADRAQAA1AEAAAEAAADTAQAA1gEAAAEAAADVAQAA2AEAAAEAAADXAQAA2gEAAAEAAADZAQAA3AEAAAEAAADbAQAA3QEAAAEAAACOAQAA3wEAAAEAAADeAQAA4QEAAAEAAADgAQAA4wEAAAEAAADiAQAA5QEAAAEAAADkAQAA5wEAAAEAAADmAQAA6QEAAAEAAADoAQAA6wEAAAEAAADqAQAA7QEAAAEAAADsAQAA7wEAAAEAAADuAQAA8wEAAAIAAADxAQAA8gEAAPUBAAABAAAA9AEAAPkBAAABAAAA+AEAAPsBAAABAAAA+gEAAP0BAAABAAAA/AEAAP8BAAABAAAA/gEAAAECAAABAAAAAAIAAAMCAAABAAAAAgIAAAUCAAABAAAABAIAAAcCAAABAAAABgIAAAkCAAABAAAACAIAAAsCAAABAAAACgIAAA0CAAABAAAADAIAAA8CAAABAAAADgIAABECAAABAAAAEAIAABMCAAABAAAAEgIAABUCAAABAAAAFAIAABcCAAABAAAAFgIAABkCAAABAAAAGAIAABsCAAABAAAAGgIAAB0CAAABAAAAHAIAAB8CAAABAAAAHgIAACMCAAABAAAAIgIAACUCAAABAAAAJAIAACcCAAABAAAAJgIAACkCAAABAAAAKAIAACsCAAABAAAAKgIAAC0CAAABAAAALAIAAC8CAAABAAAALgIAADECAAABAAAAMAIAADMCAAABAAAAMgIAADwCAAABAAAAOwIAAD8CAAABAAAAfiwAAEACAAABAAAAfywAAEICAAABAAAAQQIAAEcCAAABAAAARgIAAEkCAAABAAAASAIAAEsCAAABAAAASgIAAE0CAAABAAAATAIAAE8CAAABAAAATgIAAFACAAABAAAAbywAAFECAAABAAAAbSwAAFICAAABAAAAcCwAAFMCAAABAAAAgQEAAFQCAAABAAAAhgEAAFYCAAABAAAAiQEAAFcCAAABAAAAigEAAFkCAAABAAAAjwEAAFsCAAABAAAAkAEAAFwCAAABAAAAq6cAAGACAAABAAAAkwEAAGECAAABAAAArKcAAGMCAAABAAAAlAEAAGUCAAABAAAAjacAAGYCAAABAAAAqqcAAGgCAAABAAAAlwEAAGkCAAABAAAAlgEAAGoCAAABAAAArqcAAGsCAAABAAAAYiwAAGwCAAABAAAAracAAG8CAAABAAAAnAEAAHECAAABAAAAbiwAAHICAAABAAAAnQEAAHUCAAABAAAAnwEAAH0CAAABAAAAZCwAAIACAAABAAAApgEAAIICAAABAAAAxacAAIMCAAABAAAAqQEAAIcCAAABAAAAsacAAIgCAAABAAAArgEAAIkCAAABAAAARAIAAIoCAAABAAAAsQEAAIsCAAABAAAAsgEAAIwCAAABAAAARQIAAJICAAABAAAAtwEAAJ0CAAABAAAAsqcAAJ4CAAABAAAAsKcAAHEDAAABAAAAcAMAAHMDAAABAAAAcgMAAHcDAAABAAAAdgMAAHsDAAABAAAA/QMAAHwDAAABAAAA/gMAAH0DAAABAAAA/wMAAKwDAAABAAAAhgMAAK0DAAABAAAAiAMAAK4DAAABAAAAiQMAAK8DAAABAAAAigMAALEDAAABAAAAkQMAALIDAAACAAAAkgMAANADAACzAwAAAQAAAJMDAAC0AwAAAQAAAJQDAAC1AwAAAgAAAJUDAAD1AwAAtgMAAAEAAACWAwAAtwMAAAEAAACXAwAAuAMAAAMAAACYAwAA0QMAAPQDAAC5AwAAAwAAAEUDAACZAwAAvh8AALoDAAACAAAAmgMAAPADAAC7AwAAAQAAAJsDAAC8AwAAAgAAALUAAACcAwAAvQMAAAEAAACdAwAAvgMAAAEAAACeAwAAvwMAAAEAAACfAwAAwAMAAAIAAACgAwAA1gMAAMEDAAACAAAAoQMAAPEDAADDAwAAAgAAAKMDAADCAwAAxAMAAAEAAACkAwAAxQMAAAEAAAClAwAAxgMAAAIAAACmAwAA1QMAAMcDAAABAAAApwMAAMgDAAABAAAAqAMAAMkDAAACAAAAqQMAACYhAADKAwAAAQAAAKoDAADLAwAAAQAAAKsDAADMAwAAAQAAAIwDAADNAwAAAQAAAI4DAADOAwAAAQAAAI8DAADXAwAAAQAAAM8DAADZAwAAAQAAANgDAADbAwAAAQAAANoDAADdAwAAAQAAANwDAADfAwAAAQAAAN4DAADhAwAAAQAAAOADAADjAwAAAQAAAOIDAADlAwAAAQAAAOQDAADnAwAAAQAAAOYDAADpAwAAAQAAAOgDAADrAwAAAQAAAOoDAADtAwAAAQAAAOwDAADvAwAAAQAAAO4DAADyAwAAAQAAAPkDAADzAwAAAQAAAH8DAAD4AwAAAQAAAPcDAAD7AwAAAQAAAPoDAAAwBAAAAQAAABAEAAAxBAAAAQAAABEEAAAyBAAAAgAAABIEAACAHAAAMwQAAAEAAAATBAAANAQAAAIAAAAUBAAAgRwAADUEAAABAAAAFQQAADYEAAABAAAAFgQAADcEAAABAAAAFwQAADgEAAABAAAAGAQAADkEAAABAAAAGQQAADoEAAABAAAAGgQAADsEAAABAAAAGwQAADwEAAABAAAAHAQAAD0EAAABAAAAHQQAAD4EAAACAAAAHgQAAIIcAAA/BAAAAQAAAB8EAABABAAAAQAAACAEAABBBAAAAgAAACEEAACDHAAAQgQAAAMAAAAiBAAAhBwAAIUcAABDBAAAAQAAACMEAABEBAAAAQAAACQEAABFBAAAAQAAACUEAABGBAAAAQAAACYEAABHBAAAAQAAACcEAABIBAAAAQAAACgEAABJBAAAAQAAACkEAABKBAAAAgAAACoEAACGHAAASwQAAAEAAAArBAAATAQAAAEAAAAsBAAATQQAAAEAAAAtBAAATgQAAAEAAAAuBAAATwQAAAEAAAAvBAAAUAQAAAEAAAAABAAAUQQAAAEAAAABBAAAUgQAAAEAAAACBAAAUwQAAAEAAAADBAAAVAQAAAEAAAAEBAAAVQQAAAEAAAAFBAAAVgQAAAEAAAAGBAAAVwQAAAEAAAAHBAAAWAQAAAEAAAAIBAAAWQQAAAEAAAAJBAAAWgQAAAEAAAAKBAAAWwQAAAEAAAALBAAAXAQAAAEAAAAMBAAAXQQAAAEAAAANBAAAXgQAAAEAAAAOBAAAXwQAAAEAAAAPBAAAYQQAAAEAAABgBAAAYwQAAAIAAABiBAAAhxwAAGUEAAABAAAAZAQAAGcEAAABAAAAZgQAAGkEAAABAAAAaAQAAGsEAAABAAAAagQAAG0EAAABAAAAbAQAAG8EAAABAAAAbgQAAHEEAAABAAAAcAQAAHMEAAABAAAAcgQAAHUEAAABAAAAdAQAAHcEAAABAAAAdgQAAHkEAAABAAAAeAQAAHsEAAABAAAAegQAAH0EAAABAAAAfAQAAH8EAAABAAAAfgQAAIEEAAABAAAAgAQAAIsEAAABAAAAigQAAI0EAAABAAAAjAQAAI8EAAABAAAAjgQAAJEEAAABAAAAkAQAAJMEAAABAAAAkgQAAJUEAAABAAAAlAQAAJcEAAABAAAAlgQAAJkEAAABAAAAmAQAAJsEAAABAAAAmgQAAJ0EAAABAAAAnAQAAJ8EAAABAAAAngQAAKEEAAABAAAAoAQAAKMEAAABAAAAogQAAKUEAAABAAAApAQAAKcEAAABAAAApgQAAKkEAAABAAAAqAQAAKsEAAABAAAAqgQAAK0EAAABAAAArAQAAK8EAAABAAAArgQAALEEAAABAAAAsAQAALMEAAABAAAAsgQAALUEAAABAAAAtAQAALcEAAABAAAAtgQAALkEAAABAAAAuAQAALsEAAABAAAAugQAAL0EAAABAAAAvAQAAL8EAAABAAAAvgQAAMIEAAABAAAAwQQAAMQEAAABAAAAwwQAAMYEAAABAAAAxQQAAMgEAAABAAAAxwQAAMoEAAABAAAAyQQAAMwEAAABAAAAywQAAM4EAAABAAAAzQQAAM8EAAABAAAAwAQAANEEAAABAAAA0AQAANMEAAABAAAA0gQAANUEAAABAAAA1AQAANcEAAABAAAA1gQAANkEAAABAAAA2AQAANsEAAABAAAA2gQAAN0EAAABAAAA3AQAAN8EAAABAAAA3gQAAOEEAAABAAAA4AQAAOMEAAABAAAA4gQAAOUEAAABAAAA5AQAAOcEAAABAAAA5gQAAOkEAAABAAAA6AQAAOsEAAABAAAA6gQAAO0EAAABAAAA7AQAAO8EAAABAAAA7gQAAPEEAAABAAAA8AQAAPMEAAABAAAA8gQAAPUEAAABAAAA9AQAAPcEAAABAAAA9gQAAPkEAAABAAAA+AQAAPsEAAABAAAA+gQAAP0EAAABAAAA/AQAAP8EAAABAAAA/gQAAAEFAAABAAAAAAUAAAMFAAABAAAAAgUAAAUFAAABAAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAABAAAAPB4AAD8eAAABAAAAPh4AAEEeAAABAAAAQB4AAEMeAAABAAAAQh4AAEUeAAABAAAARB4AAEceAAABAAAARh4AAEkeAAABAAAASB4AAEseAAABAAAASh4AAE0eAAABAAAATB4AAE8eAAABAAAATh4AAFEeAAABAAAAUB4AAFMeAAABAAAAUh4AAFUeAAABAAAAVB4AAFceAAABAAAAVh4AAFkeAAABAAAAWB4AAFseAAABAAAAWh4AAF0eAAABAAAAXB4AAF8eAAABAAAAXh4AAGEeAAACAAAAYB4AAJseAABjHgAAAQAAAGIeAABlHgAAAQAAAGQeAABnHgAAAQAAAGYeAABpHgAAAQAAAGgeAABrHgAAAQAAAGoeAABtHgAAAQAAAGweAABvHgAAAQAAAG4eAABxHgAAAQAAAHAeAABzHgAAAQAAAHIeAAB1HgAAAQAAAHQeAAB3HgAAAQAAAHYeAAB5HgAAAQAAAHgeAAB7HgAAAQAAAHoeAAB9HgAAAQAAAHweAAB/HgAAAQAAAH4eAACBHgAAAQAAAIAeAACDHgAAAQAAAIIeAACFHgAAAQAAAIQeAACHHgAAAQAAAIYeAACJHgAAAQAAAIgeAACLHgAAAQAAAIoeAACNHgAAAQAAAIweAACPHgAAAQAAAI4eAACRHgAAAQAAAJAeAACTHgAAAQAAAJIeAACVHgAAAQAAAJQeAAChHgAAAQAAAKAeAACjHgAAAQAAAKIeAAClHgAAAQAAAKQeAACnHgAAAQAAAKYeAACpHgAAAQAAAKgeAACrHgAAAQAAAKoeAACtHgAAAQAAAKweAACvHgAAAQAAAK4eAACxHgAAAQAAALAeAACzHgAAAQAAALIeAAC1HgAAAQAAALQeAAC3HgAAAQAAALYeAAC5HgAAAQAAALgeAAC7HgAAAQAAALoeAAC9HgAAAQAAALweAAC/HgAAAQAAAL4eAADBHgAAAQAAAMAeAADDHgAAAQAAAMIeAADFHgAAAQAAAMQeAADHHgAAAQAAAMYeAADJHgAAAQAAAMgeAADLHgAAAQAAAMoeAADNHgAAAQAAAMweAADPHgAAAQAAAM4eAADRHgAAAQAAANAeAADTHgAAAQAAANIeAADVHgAAAQAAANQeAADXHgAAAQAAANYeAADZHgAAAQAAANgeAADbHgAAAQAAANoeAADdHgAAAQAAANweAADfHgAAAQAAAN4eAADhHgAAAQAAAOAeAADjHgAAAQAAAOIeAADlHgAAAQAAAOQeAADnHgAAAQAAAOYeAADpHgAAAQAAAOgeAADrHgAAAQAAAOoeAADtHgAAAQAAAOweAADvHgAAAQAAAO4eAADxHgAAAQAAAPAeAADzHgAAAQAAAPIeAAD1HgAAAQAAAPQeAAD3HgAAAQAAAPYeAAD5HgAAAQAAAPgeAAD7HgAAAQAAAPoeAAD9HgAAAQAAAPweAAD/HgAAAQAAAP4eAAAAHwAAAQAAAAgfAAABHwAAAQAAAAkfAAACHwAAAQAAAAofAAADHwAAAQAAAAsfAAAEHwAAAQAAAAwfAAAFHwAAAQAAAA0fAAAGHwAAAQAAAA4fAAAHHwAAAQAAAA8fAAAQHwAAAQAAABgfAAARHwAAAQAAABkfAAASHwAAAQAAABofAAATHwAAAQAAABsfAAAUHwAAAQAAABwfAAAVHwAAAQAAAB0fAAAgHwAAAQAAACgfAAAhHwAAAQAAACkfAAAiHwAAAQAAACofAAAjHwAAAQAAACsfAAAkHwAAAQAAACwfAAAlHwAAAQAAAC0fAAAmHwAAAQAAAC4fAAAnHwAAAQAAAC8fAAAwHwAAAQAAADgfAAAxHwAAAQAAADkfAAAyHwAAAQAAADofAAAzHwAAAQAAADsfAAA0HwAAAQAAADwfAAA1HwAAAQAAAD0fAAA2HwAAAQAAAD4fAAA3HwAAAQAAAD8fAABAHwAAAQAAAEgfAABBHwAAAQAAAEkfAABCHwAAAQAAAEofAABDHwAAAQAAAEsfAABEHwAAAQAAAEwfAABFHwAAAQAAAE0fAABRHwAAAQAAAFkfAABTHwAAAQAAAFsfAABVHwAAAQAAAF0fAABXHwAAAQAAAF8fAABgHwAAAQAAAGgfAABhHwAAAQAAAGkfAABiHwAAAQAAAGofAABjHwAAAQAAAGsfAABkHwAAAQAAAGwfAABlHwAAAQAAAG0fAABmHwAAAQAAAG4fAABnHwAAAQAAAG8fAABwHwAAAQAAALofAABxHwAAAQAAALsfAAByHwAAAQAAAMgfAABzHwAAAQAAAMkfAAB0HwAAAQAAAMofAAB1HwAAAQAAAMsfAAB2HwAAAQAAANofAAB3HwAAAQAAANsfAAB4HwAAAQAAAPgfAAB5HwAAAQAAAPkfAAB6HwAAAQAAAOofAAB7HwAAAQAAAOsfAAB8HwAAAQAAAPofAAB9HwAAAQAAAPsfAACwHwAAAQAAALgfAACxHwAAAQAAALkfAADQHwAAAQAAANgfAADRHwAAAQAAANkfAADgHwAAAQAAAOgfAADhHwAAAQAAAOkfAADlHwAAAQAAAOwfAABOIQAAAQAAADIhAABwIQAAAQAAAGAhAABxIQAAAQAAAGEhAAByIQAAAQAAAGIhAABzIQAAAQAAAGMhAAB0IQAAAQAAAGQhAAB1IQAAAQAAAGUhAAB2IQAAAQAAAGYhAAB3IQAAAQAAAGchAAB4IQAAAQAAAGghAAB5IQAAAQAAAGkhAAB6IQAAAQAAAGohAAB7IQAAAQAAAGshAAB8IQAAAQAAAGwhAAB9IQAAAQAAAG0hAAB+IQAAAQAAAG4hAAB/IQAAAQAAAG8hAACEIQAAAQAAAIMhAADQJAAAAQAAALYkAADRJAAAAQAAALckAADSJAAAAQAAALgkAADTJAAAAQAAALkkAADUJAAAAQAAALokAADVJAAAAQAAALskAADWJAAAAQAAALwkAADXJAAAAQAAAL0kAADYJAAAAQAAAL4kAADZJAAAAQAAAL8kAADaJAAAAQAAAMAkAADbJAAAAQAAAMEkAADcJAAAAQAAAMIkAADdJAAAAQAAAMMkAADeJAAAAQAAAMQkAADfJAAAAQAAAMUkAADgJAAAAQAAAMYkAADhJAAAAQAAAMckAADiJAAAAQAAAMgkAADjJAAAAQAAAMkkAADkJAAAAQAAAMokAADlJAAAAQAAAMskAADmJAAAAQAAAMwkAADnJAAAAQAAAM0kAADoJAAAAQAAAM4kAADpJAAAAQAAAM8kAAAwLAAAAQAAAAAsAAAxLAAAAQAAAAEsAAAyLAAAAQAAAAIsAAAzLAAAAQAAAAMsAAA0LAAAAQAAAAQsAAA1LAAAAQAAAAUsAAA2LAAAAQAAAAYsAAA3LAAAAQAAAAcsAAA4LAAAAQAAAAgsAAA5LAAAAQAAAAksAAA6LAAAAQAAAAosAAA7LAAAAQAAAAssAAA8LAAAAQAAAAwsAAA9LAAAAQAAAA0sAAA+LAAAAQAAAA4sAAA/LAAAAQAAAA8sAABALAAAAQAAABAsAABBLAAAAQAAABEsAABCLAAAAQAAABIsAABDLAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADNLAAAAQAAAMwsAADPLAAAAQAAAM4sAADRLAAAAQAAANAsAADTLAAAAQAAANIsAADVLAAAAQAAANQsAADXLAAAAQAAANYsAADZLAAAAQAAANgsAADbLAAAAQAAANosAADdLAAAAQAAANwsAADfLAAAAQAAAN4sAADhLAAAAQAAAOAsAADjLAAAAQAAAOIsAADsLAAAAQAAAOssAADuLAAAAQAAAO0sAADzLAAAAQAAAPIsAAAALQAAAQAAAKAQAAABLQAAAQAAAKEQAAACLQAAAQAAAKIQAAADLQAAAQAAAKMQAAAELQAAAQAAAKQQAAAFLQAAAQAAAKUQAAAGLQAAAQAAAKYQAAAHLQAAAQAAAKcQAAAILQAAAQAAAKgQAAAJLQAAAQAAAKkQAAAKLQAAAQAAAKoQAAALLQAAAQAAAKsQAAAMLQAAAQAAAKwQAAANLQAAAQAAAK0QAAAOLQAAAQAAAK4QAAAPLQAAAQAAAK8QAAAQLQAAAQAAALAQAAARLQAAAQAAALEQAAASLQAAAQAAALIQAAATLQAAAQAAALMQAAAULQAAAQAAALQQAAAVLQAAAQAAALUQAAAWLQAAAQAAALYQAAAXLQAAAQAAALcQAAAYLQAAAQAAALgQAAAZLQAAAQAAALkQAAAaLQAAAQAAALoQAAAbLQAAAQAAALsQAAAcLQAAAQAAALwQAAAdLQAAAQAAAL0QAAAeLQAAAQAAAL4QAAAfLQAAAQAAAL8QAAAgLQAAAQAAAMAQAAAhLQAAAQAAAMEQAAAiLQAAAQAAAMIQAAAjLQAAAQAAAMMQAAAkLQAAAQAAAMQQAAAlLQAAAQAAAMUQAAAnLQAAAQAAAMcQAAAtLQAAAQAAAM0QAABBpgAAAQAAAECmAABDpgAAAQAAAEKmAABFpgAAAQAAAESmAABHpgAAAQAAAEamAABJpgAAAQAAAEimAABLpgAAAgAAAIgcAABKpgAATaYAAAEAAABMpgAAT6YAAAEAAABOpgAAUaYAAAEAAABQpgAAU6YAAAEAAABSpgAAVaYAAAEAAABUpgAAV6YAAAEAAABWpgAAWaYAAAEAAABYpgAAW6YAAAEAAABapgAAXaYAAAEAAABcpgAAX6YAAAEAAABepgAAYaYAAAEAAABgpgAAY6YAAAEAAABipgAAZaYAAAEAAABkpgAAZ6YAAAEAAABmpgAAaaYAAAEAAABopgAAa6YAAAEAAABqpgAAbaYAAAEAAABspgAAgaYAAAEAAACApgAAg6YAAAEAAACCpgAAhaYAAAEAAACEpgAAh6YAAAEAAACGpgAAiaYAAAEAAACIpgAAi6YAAAEAAACKpgAAjaYAAAEAAACMpgAAj6YAAAEAAACOpgAAkaYAAAEAAACQpgAAk6YAAAEAAACSpgAAlaYAAAEAAACUpgAAl6YAAAEAAACWpgAAmaYAAAEAAACYpgAAm6YAAAEAAACapgAAI6cAAAEAAAAipwAAJacAAAEAAAAkpwAAJ6cAAAEAAAAmpwAAKacAAAEAAAAopwAAK6cAAAEAAAAqpwAALacAAAEAAAAspwAAL6cAAAEAAAAupwAAM6cAAAEAAAAypwAANacAAAEAAAA0pwAAN6cAAAEAAAA2pwAAOacAAAEAAAA4pwAAO6cAAAEAAAA6pwAAPacAAAEAAAA8pwAAP6cAAAEAAAA+pwAAQacAAAEAAABApwAAQ6cAAAEAAABCpwAARacAAAEAAABEpwAAR6cAAAEAAABGpwAASacAAAEAAABIpwAAS6cAAAEAAABKpwAATacAAAEAAABMpwAAT6cAAAEAAABOpwAAUacAAAEAAABQpwAAU6cAAAEAAABSpwAAVacAAAEAAABUpwAAV6cAAAEAAABWpwAAWacAAAEAAABYpwAAW6cAAAEAAABapwAAXacAAAEAAABcpwAAX6cAAAEAAABepwAAYacAAAEAAABgpwAAY6cAAAEAAABipwAAZacAAAEAAABkpwAAZ6cAAAEAAABmpwAAaacAAAEAAABopwAAa6cAAAEAAABqpwAAbacAAAEAAABspwAAb6cAAAEAAABupwAAeqcAAAEAAAB5pwAAfKcAAAEAAAB7pwAAf6cAAAEAAAB+pwAAgacAAAEAAACApwAAg6cAAAEAAACCpwAAhacAAAEAAACEpwAAh6cAAAEAAACGpwAAjKcAAAEAAACLpwAAkacAAAEAAACQpwAAk6cAAAEAAACSpwAAlKcAAAEAAADEpwAAl6cAAAEAAACWpwAAmacAAAEAAACYpwAAm6cAAAEAAACapwAAnacAAAEAAACcpwAAn6cAAAEAAACepwAAoacAAAEAAACgpwAAo6cAAAEAAACipwAApacAAAEAAACkpwAAp6cAAAEAAACmpwAAqacAAAEAAACopwAAtacAAAEAAAC0pwAAt6cAAAEAAAC2pwAAuacAAAEAAAC4pwAAu6cAAAEAAAC6pwAAvacAAAEAAAC8pwAAv6cAAAEAAAC+pwAAwacAAAEAAADApwAAw6cAAAEAAADCpwAAyKcAAAEAAADHpwAAyqcAAAEAAADJpwAA0acAAAEAAADQpwAA16cAAAEAAADWpwAA2acAAAEAAADYpwAA9qcAAAEAAAD1pwAAU6sAAAEAAACzpwAAQf8AAAEAAAAh/wAAQv8AAAEAAAAi/wAAQ/8AAAEAAAAj/wAARP8AAAEAAAAk/wAARf8AAAEAAAAl/wAARv8AAAEAAAAm/wAAR/8AAAEAAAAn/wAASP8AAAEAAAAo/wAASf8AAAEAAAAp/wAASv8AAAEAAAAq/wAAS/8AAAEAAAAr/wAATP8AAAEAAAAs/wAATf8AAAEAAAAt/wAATv8AAAEAAAAu/wAAT/8AAAEAAAAv/wAAUP8AAAEAAAAw/wAAUf8AAAEAAAAx/wAAUv8AAAEAAAAy/wAAU/8AAAEAAAAz/wAAVP8AAAEAAAA0/wAAVf8AAAEAAAA1/wAAVv8AAAEAAAA2/wAAV/8AAAEAAAA3/wAAWP8AAAEAAAA4/wAAWf8AAAEAAAA5/wAAWv8AAAEAAAA6/wAAKAQBAAEAAAAABAEAKQQBAAEAAAABBAEAKgQBAAEAAAACBAEAKwQBAAEAAAADBAEALAQBAAEAAAAEBAEALQQBAAEAAAAFBAEALgQBAAEAAAAGBAEALwQBAAEAAAAHBAEAMAQBAAEAAAAIBAEAMQQBAAEAAAAJBAEAMgQBAAEAAAAKBAEAMwQBAAEAAAALBAEANAQBAAEAAAAMBAEANQQBAAEAAAANBAEANgQBAAEAAAAOBAEANwQBAAEAAAAPBAEAOAQBAAEAAAAQBAEAOQQBAAEAAAARBAEAOgQBAAEAAAASBAEAOwQBAAEAAAATBAEAPAQBAAEAAAAUBAEAPQQBAAEAAAAVBAEAPgQBAAEAAAAWBAEAPwQBAAEAAAAXBAEAQAQBAAEAAAAYBAEAQQQBAAEAAAAZBAEAQgQBAAEAAAAaBAEAQwQBAAEAAAAbBAEARAQBAAEAAAAcBAEARQQBAAEAAAAdBAEARgQBAAEAAAAeBAEARwQBAAEAAAAfBAEASAQBAAEAAAAgBAEASQQBAAEAAAAhBAEASgQBAAEAAAAiBAEASwQBAAEAAAAjBAEATAQBAAEAAAAkBAEATQQBAAEAAAAlBAEATgQBAAEAAAAmBAEATwQBAAEAAAAnBAEA2AQBAAEAAACwBAEA2QQBAAEAAACxBAEA2gQBAAEAAACyBAEA2wQBAAEAAACzBAEA3AQBAAEAAAC0BAEA3QQBAAEAAAC1BAEA3gQBAAEAAAC2BAEA3wQBAAEAAAC3BAEA4AQBAAEAAAC4BAEA4QQBAAEAAAC5BAEA4gQBAAEAAAC6BAEA4wQBAAEAAAC7BAEA5AQBAAEAAAC8BAEA5QQBAAEAAAC9BAEA5gQBAAEAAAC+BAEA5wQBAAEAAAC/BAEA6AQBAAEAAADABAEA6QQBAAEAAADBBAEA6gQBAAEAAADCBAEA6wQBAAEAAADDBAEA7AQBAAEAAADEBAEA7QQBAAEAAADFBAEA7gQBAAEAAADGBAEA7wQBAAEAAADHBAEA8AQBAAEAAADIBAEA8QQBAAEAAADJBAEA8gQBAAEAAADKBAEA8wQBAAEAAADLBAEA9AQBAAEAAADMBAEA9QQBAAEAAADNBAEA9gQBAAEAAADOBAEA9wQBAAEAAADPBAEA+AQBAAEAAADQBAEA+QQBAAEAAADRBAEA+gQBAAEAAADSBAEA+wQBAAEAAADTBAEAlwUBAAEAAABwBQEAmAUBAAEAAABxBQEAmQUBAAEAAAByBQEAmgUBAAEAAABzBQEAmwUBAAEAAAB0BQEAnAUBAAEAAAB1BQEAnQUBAAEAAAB2BQEAngUBAAEAAAB3BQEAnwUBAAEAAAB4BQEAoAUBAAEAAAB5BQEAoQUBAAEAAAB6BQEAowUBAAEAAAB8BQEApAUBAAEAAAB9BQEApQUBAAEAAAB+BQEApgUBAAEAAAB/BQEApwUBAAEAAACABQEAqAUBAAEAAACBBQEAqQUBAAEAAACCBQEAqgUBAAEAAACDBQEAqwUBAAEAAACEBQEArAUBAAEAAACFBQEArQUBAAEAAACGBQEArgUBAAEAAACHBQEArwUBAAEAAACIBQEAsAUBAAEAAACJBQEAsQUBAAEAAACKBQEAswUBAAEAAACMBQEAtAUBAAEAAACNBQEAtQUBAAEAAACOBQEAtgUBAAEAAACPBQEAtwUBAAEAAACQBQEAuAUBAAEAAACRBQEAuQUBAAEAAACSBQEAuwUBAAEAAACUBQEAvAUBAAEAAACVBQEAwAwBAAEAAACADAEAwQwBAAEAAACBDAEAwgwBAAEAAACCDAEAwwwBAAEAAACDDAEAxAwBAAEAAACEDAEAxQwBAAEAAACFDAEAxgwBAAEAAACGDAEAxwwBAAEAAACHDAEAyAwBAAEAAACIDAEAyQwBAAEAAACJDAEAygwBAAEAAACKDAEAywwBAAEAAACLDAEAzAwBAAEAAACMDAEAzQwBAAEAAACNDAEAzgwBAAEAAACODAEAzwwBAAEAAACPDAEA0AwBAAEAAACQDAEA0QwBAAEAAACRDAEA0gwBAAEAAACSDAEA0wwBAAEAAACTDAEA1AwBAAEAAACUDAEA1QwBAAEAAACVDAEA1gwBAAEAAACWDAEA1wwBAAEAAACXDAEA2AwBAAEAAACYDAEA2QwBAAEAAACZDAEA2gwBAAEAAACaDAEA2wwBAAEAAACbDAEA3AwBAAEAAACcDAEA3QwBAAEAAACdDAEA3gwBAAEAAACeDAEA3wwBAAEAAACfDAEA4AwBAAEAAACgDAEA4QwBAAEAAAChDAEA4gwBAAEAAACiDAEA4wwBAAEAAACjDAEA5AwBAAEAAACkDAEA5QwBAAEAAAClDAEA5gwBAAEAAACmDAEA5wwBAAEAAACnDAEA6AwBAAEAAACoDAEA6QwBAAEAAACpDAEA6gwBAAEAAACqDAEA6wwBAAEAAACrDAEA7AwBAAEAAACsDAEA7QwBAAEAAACtDAEA7gwBAAEAAACuDAEA7wwBAAEAAACvDAEA8AwBAAEAAACwDAEA8QwBAAEAAACxDAEA8gwBAAEAAACyDAEAwBgBAAEAAACgGAEAwRgBAAEAAAChGAEAwhgBAAEAAACiGAEAwxgBAAEAAACjGAEAxBgBAAEAAACkGAEAxRgBAAEAAAClGAEAxhgBAAEAAACmGAEAxxgBAAEAAACnGAEAyBgBAAEAAACoGAEAyRgBAAEAAACpGAEAyhgBAAEAAACqGAEAyxgBAAEAAACrGAEAzBgBAAEAAACsGAEAzRgBAAEAAACtGAEAzhgBAAEAAACuGAEAzxgBAAEAAACvGAEA0BgBAAEAAACwGAEA0RgBAAEAAACxGAEA0hgBAAEAAACyGAEA0xgBAAEAAACzGAEA1BgBAAEAAAC0GAEA1RgBAAEAAAC1GAEA1hgBAAEAAAC2GAEA1xgBAAEAAAC3GAEA2BgBAAEAAAC4GAEA2RgBAAEAAAC5GAEA2hgBAAEAAAC6GAEA2xgBAAEAAAC7GAEA3BgBAAEAAAC8GAEA3RgBAAEAAAC9GAEA3hgBAAEAAAC+GAEA3xgBAAEAAAC/GAEAYG4BAAEAAABAbgEAYW4BAAEAAABBbgEAYm4BAAEAAABCbgEAY24BAAEAAABDbgEAZG4BAAEAAABEbgEAZW4BAAEAAABFbgEAZm4BAAEAAABGbgEAZ24BAAEAAABHbgEAaG4BAAEAAABIbgEAaW4BAAEAAABJbgEAam4BAAEAAABKbgEAa24BAAEAAABLbgEAbG4BAAEAAABMbgEAbW4BAAEAAABNbgEAbm4BAAEAAABObgEAb24BAAEAAABPbgEAcG4BAAEAAABQbgEAcW4BAAEAAABRbgEAcm4BAAEAAABSbgEAc24BAAEAAABTbgEAdG4BAAEAAABUbgEAdW4BAAEAAABVbgEAdm4BAAEAAABWbgEAd24BAAEAAABXbgEAeG4BAAEAAABYbgEAeW4BAAEAAABZbgEAem4BAAEAAABabgEAe24BAAEAAABbbgEAfG4BAAEAAABcbgEAfW4BAAEAAABdbgEAfm4BAAEAAABebgEAf24BAAEAAABfbgEAIukBAAEAAAAA6QEAI+kBAAEAAAAB6QEAJOkBAAEAAAAC6QEAJekBAAEAAAAD6QEAJukBAAEAAAAE6QEAJ+kBAAEAAAAF6QEAKOkBAAEAAAAG6QEAKekBAAEAAAAH6QEAKukBAAEAAAAI6QEAK+kBAAEAAAAJ6QEALOkBAAEAAAAK6QEALekBAAEAAAAL6QEALukBAAEAAAAM6QEAL+kBAAEAAAAN6QEAMOkBAAEAAAAO6QEAMekBAAEAAAAP6QEAMukBAAEAAAAQ6QEAM+kBAAEAAAAR6QEANOkBAAEAAAAS6QEANekBAAEAAAAT6QEANukBAAEAAAAU6QEAN+kBAAEAAAAV6QEAOOkBAAEAAAAW6QEAOekBAAEAAAAX6QEAOukBAAEAAAAY6QEAO+kBAAEAAAAZ6QEAPOkBAAEAAAAa6QEAPekBAAEAAAAb6QEAPukBAAEAAAAc6QEAP+kBAAEAAAAd6QEAQOkBAAEAAAAe6QEAQekBAAEAAAAf6QEAQukBAAEAAAAg6QEAQ+kBAAEAAAAh6QEAaQAAAAEAAABJAEHwnxILoghhAAAAvgIAAAEAAACaHgAAZgAAAGYAAAABAAAAAPsAAGYAAABpAAAAAQAAAAH7AABmAAAAbAAAAAEAAAAC+wAAaAAAADEDAAABAAAAlh4AAGoAAAAMAwAAAQAAAPABAABzAAAAcwAAAAIAAADfAAAAnh4AAHMAAAB0AAAAAgAAAAX7AAAG+wAAdAAAAAgDAAABAAAAlx4AAHcAAAAKAwAAAQAAAJgeAAB5AAAACgMAAAEAAACZHgAAvAIAAG4AAAABAAAASQEAAKwDAAC5AwAAAQAAALQfAACuAwAAuQMAAAEAAADEHwAAsQMAAEIDAAABAAAAth8AALEDAAC5AwAAAgAAALMfAAC8HwAAtwMAAEIDAAABAAAAxh8AALcDAAC5AwAAAgAAAMMfAADMHwAAuQMAAEIDAAABAAAA1h8AAMEDAAATAwAAAQAAAOQfAADFAwAAEwMAAAEAAABQHwAAxQMAAEIDAAABAAAA5h8AAMkDAABCAwAAAQAAAPYfAADJAwAAuQMAAAIAAADzHwAA/B8AAM4DAAC5AwAAAQAAAPQfAABlBQAAggUAAAEAAACHBQAAdAUAAGUFAAABAAAAFPsAAHQFAABrBQAAAQAAABX7AAB0BQAAbQUAAAEAAAAX+wAAdAUAAHYFAAABAAAAE/sAAH4FAAB2BQAAAQAAABb7AAAAHwAAuQMAAAIAAACAHwAAiB8AAAEfAAC5AwAAAgAAAIEfAACJHwAAAh8AALkDAAACAAAAgh8AAIofAAADHwAAuQMAAAIAAACDHwAAix8AAAQfAAC5AwAAAgAAAIQfAACMHwAABR8AALkDAAACAAAAhR8AAI0fAAAGHwAAuQMAAAIAAACGHwAAjh8AAAcfAAC5AwAAAgAAAIcfAACPHwAAIB8AALkDAAACAAAAkB8AAJgfAAAhHwAAuQMAAAIAAACRHwAAmR8AACIfAAC5AwAAAgAAAJIfAACaHwAAIx8AALkDAAACAAAAkx8AAJsfAAAkHwAAuQMAAAIAAACUHwAAnB8AACUfAAC5AwAAAgAAAJUfAACdHwAAJh8AALkDAAACAAAAlh8AAJ4fAAAnHwAAuQMAAAIAAACXHwAAnx8AAGAfAAC5AwAAAgAAAKAfAACoHwAAYR8AALkDAAACAAAAoR8AAKkfAABiHwAAuQMAAAIAAACiHwAAqh8AAGMfAAC5AwAAAgAAAKMfAACrHwAAZB8AALkDAAACAAAApB8AAKwfAABlHwAAuQMAAAIAAAClHwAArR8AAGYfAAC5AwAAAgAAAKYfAACuHwAAZx8AALkDAAACAAAApx8AAK8fAABwHwAAuQMAAAEAAACyHwAAdB8AALkDAAABAAAAwh8AAHwfAAC5AwAAAQAAAPIfAABpAAAABwMAAAEAAAAwAQBBoKgSC8EVZgAAAGYAAABpAAAAAQAAAAP7AABmAAAAZgAAAGwAAAABAAAABPsAALEDAABCAwAAuQMAAAEAAAC3HwAAtwMAAEIDAAC5AwAAAQAAAMcfAAC5AwAACAMAAAADAAABAAAA0h8AALkDAAAIAwAAAQMAAAIAAACQAwAA0x8AALkDAAAIAwAAQgMAAAEAAADXHwAAxQMAAAgDAAAAAwAAAQAAAOIfAADFAwAACAMAAAEDAAACAAAAsAMAAOMfAADFAwAACAMAAEIDAAABAAAA5x8AAMUDAAATAwAAAAMAAAEAAABSHwAAxQMAABMDAAABAwAAAQAAAFQfAADFAwAAEwMAAEIDAAABAAAAVh8AAMkDAABCAwAAuQMAAAEAAAD3HwAAxIsAANCLAABwogAAwKIAAOCiAADgpAAA4LoAANDPAADA5QAAsOsAABDsAABwAAEAkAABAFAYAQAUMAEAcAABACAwAQBAMAEA0IsAAFwwAQBoMAEAgDABAFAyAQCAMgEAYEgBAIBIAQCgSAEAwEgBAOBIAQAASQEAgEkBALBJAQDgSQEAAEoBABxKAQAwSgEAREoBAFBKAQBAYAEAXGABAHBgAQDQbQEAsHIBAMCiAADQcgEAgHMBAKBzAQDQcwEAUIcBAHCLAQCAngEAILIBAMDFAQDcxQEA8MUBANDbAQDw2wEAcOEBAIzhAQCg4QEA0OEBAATiAQAQ4gEAYOIBACDjAQCw4wEA9OMBAADkAQAw5AEAQOoBAITqAQCQ6gEAwOoBANTqAQDg6gEA8OoBAMDvAQAU8AEAIPABAHDxAQAQ9AEAQPUBAMD3AQDQ+AEAMPkBAGT5AQBw+QEA8PkBAOAUAgDwHwIAsCECAOAiAgBgIwIAoCMCADAkAgDgJAIAYCUCAHQlAgCAJQIAoCUCAPAlAgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q="),A=>A.charCodeAt(0));const g=Q,E=async A=>WebAssembly.instantiate(g,A).then(B=>B.instance.exports);export{E as default}; diff --git a/index.html b/index.html new file mode 100644 index 0000000..c7e2018 --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <link rel="icon" type="image/svg" href="/assets/logo-kAxjPieW.svg" /> + <title>Element Plus Playground + + + + + +
+ +